diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index d81a58c9..38174cd0 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -32,7 +32,6 @@ "mrj-text-expand", "fantasy-calendar", "obsidian-icon-shortcodes", - "cooklang-obsidian", "obsidian-dialogue-plugin", "taskbone-ocr-plugin", "obsidian-journey-plugin", @@ -56,7 +55,7 @@ "extract-url", "obsidian-annotator", "obsidian-commits", - "obsidian-chartsview-plugin", "weather-fetcher", - "obsidian-memos" + "obsidian-memos", + "obsidian-tracker" ] \ No newline at end of file diff --git a/.obsidian/plugins/cooklang-obsidian/main.js b/.obsidian/plugins/cooklang-obsidian/main.js deleted file mode 100644 index dfad53d7..00000000 --- a/.obsidian/plugins/cooklang-obsidian/main.js +++ /dev/null @@ -1,4236 +0,0 @@ -/* -THIS IS A GENERATED/BUNDLED FILE BY ROLLUP -if you want to view the source visit the plugin's github repository -*/ - -'use strict'; - -var obsidian = require('obsidian'); - -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ - -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -var codemirror = CodeMirror; - -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - -function createCommonjsModule(fn) { - var module = { exports: {} }; - return fn(module, module.exports), module.exports; -} - -createCommonjsModule(function (module, exports) { -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: https://codemirror.net/LICENSE - -(function(mod) { - mod(codemirror); -})(function(CodeMirror) { - -CodeMirror.defineMode("cook", function() { - return { - token: function(stream, state) { - var sol = stream.sol() || state.afterSection; - var eol = stream.eol(); - - state.afterSection = false; - - if (sol) { - if (state.nextMultiline) { - state.inMultiline = true; - state.nextMultiline = false; - } else { - state.position = null; - } - } - - if (eol && ! state.nextMultiline) { - state.inMultiline = false; - state.position = null; - } - - if (sol) { - while(stream.eatSpace()) {} - } - - var ch = stream.next(); - - - if (sol && ch === ">") { - if (stream.eat(">")) { - state.position = "metadata-key"; - return "metadata" - } - } - if(state.position === "metadata"); - else if(state.position === "metadata-key") { - if(ch === ':') state.position = "metadata"; - } - else { - if (ch === "-") { - if (stream.eat("-")) { - stream.skipToEnd(); - return "comment"; - } - } - - if (stream.match(/\[-.+?-\]/)) - return "comment"; - - if(stream.match(/^@([^@#~]+?(?={))/)) - return "ingredient"; - else if(stream.match(/^@(.+?\b)/)) - return "ingredient"; - - if(stream.match(/^#([^@#~]+?(?={))/)) - return "cookware"; - else if(stream.match(/^#(.+?\b)/)) - return "cookware"; - - if(ch === '~'){ - state.position = "timer"; - return "formatting"; - } - if(ch === '{'){ - if(state.position != "timer") state.position = "measurement"; - return "formatting"; - } - if(ch === '}'){ - state.position = null; - return "formatting"; - } - if(ch === '%' && (state.position === "measurement" || state.position === "timer")){ - state.position = "unit"; - return "formatting"; - } - } - - return state.position; - }, - - startState: function() { - return { - formatting : false, - nextMultiline : false, // Is the next line multiline value - inMultiline : false, // Is the current line a multiline value - afterSection : false // Did we just open a section - }; - } - - }; -}); - -CodeMirror.defineMIME("text/x-cook", "cook"); -CodeMirror.defineMIME("text/x-cooklang", "cook"); - -}); -}); - -var cooklang = createCommonjsModule(function (module, exports) { -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Metadata = exports.Timer = exports.Cookware = exports.Ingredient = exports.Step = exports.Recipe = void 0; -const COMMENT_REGEX = /(--.*)|(\[-(.|\n)+?-\])/g; -const INGREDIENT_REGEX = /@(?:([^@#~]+?)(?:{(.*?)}|{\s*}))|@((?:[^@#~\s])+)/; -const COOKWARE_REGEX = /#(?:([^@#~]+?)(?:{\s*}))|#((?:[^@#~\s])+)/; -const TIMER_REGEX = /~([^@#~]*){([0-9]+(?:[\/|\.][0-9]+)?)%(.+?)}/; -const METADATA_REGEX = /^>>\s*(.*?):\s*(.*)$/; -// a base class containing the raw string -class base { - constructor(s) { - if (s instanceof Array) - this.raw = s[0]; - else if (typeof s === 'string') - this.raw = s; - else if ('raw' in s) - this.raw = s.raw; - } -} -class Recipe extends base { - constructor(s) { - var _a, _b; - super(s); - this.metadata = []; - this.ingredients = []; - this.cookware = []; - this.timers = []; - this.steps = []; - (_b = (_a = s === null || s === void 0 ? void 0 : s.replace(COMMENT_REGEX, '')) === null || _a === void 0 ? void 0 : _a.split('\n')) === null || _b === void 0 ? void 0 : _b.forEach(line => { - if (line.trim()) { - let l = new Step(line); - if (l.line.length != 0) { - if (l.line.length == 1 && l.line[0] instanceof Metadata) { - this.metadata.push(l.line[0]); - } - else { - l.line.forEach(b => { - if (b instanceof Ingredient) - this.ingredients.push(b); - else if (b instanceof Cookware) - this.cookware.push(b); - else if (b instanceof Timer) - this.timers.push(b); - }); - this.steps.push(l); - } - } - } - }); - } - calculateTotalTime() { - return this.timers.reduce((a, b) => a + (b.seconds || 0), 0); - } -} -exports.Recipe = Recipe; -// a single recipe step -class Step extends base { - constructor(s) { - super(s); - this.line = []; - if (s && typeof s === 'string') - this.line = this.parseLine(s); - else if (s) { - if ('line' in s) - this.line = s.line; - if ('image' in s) - this.image = s.image; - } - } - // parse a single line - parseLine(s) { - let match; - let b; - let line = []; - // if it's a metadata line, return that - if (match = METADATA_REGEX.exec(s)) { - return [new Metadata(match)]; - } - // if it has an ingredient, pull that out - else if (match = INGREDIENT_REGEX.exec(s)) { - b = new Ingredient(match); - } - // if it has an item of cookware, pull that out - else if (match = COOKWARE_REGEX.exec(s)) { - b = new Cookware(match); - } - // if it has a timer, pull that out - else if (match = TIMER_REGEX.exec(s)) { - b = new Timer(match); - } - // if we found something (ingredient, cookware, timer) - if (b && b.raw) { - // split the string up to get the string left and right of what we found - const split = s.split(b.raw); - // if the line doesn't start with what we matched, we need to parse the left side - if (!s.startsWith(b.raw)) - line.unshift(...this.parseLine(split[0])); - // add what we matched in the middle - line.push(b); - // if the line doesn't end with what we matched, we need to parse the right side - if (!s.endsWith(b.raw)) - line.push(...this.parseLine(split[1])); - return line; - } - // if it doesn't match any regular expressions, just return the whole string - return [s]; - } -} -exports.Step = Step; -// ingredients -class Ingredient extends base { - constructor(s) { - var _a; - super(s); - if (s instanceof Array || typeof s === 'string') { - const match = s instanceof Array ? s : INGREDIENT_REGEX.exec(s); - if (!match || match.length != 4) - throw `error parsing ingredient: '${s}'`; - this.name = (match[1] || match[3]).trim(); - const attrs = (_a = match[2]) === null || _a === void 0 ? void 0 : _a.split('%'); - this.amount = attrs && attrs.length > 0 ? attrs[0].trim() : "1"; - if (!this.amount) - this.amount = "1"; - this.quantity = this.amount ? stringToNumber(this.amount) : 1; - this.units = attrs && attrs.length > 1 ? attrs[1].trim() : ""; - } - else { - if ('name' in s) - this.name = s.name; - if ('amount' in s) - this.amount = s.amount; - if ('quantity' in s) - this.quantity = s.quantity; - if ('units' in s) - this.units = s.units; - } - } -} -exports.Ingredient = Ingredient; -// cookware -class Cookware extends base { - constructor(s) { - super(s); - if (s instanceof Array || typeof s === 'string') { - const match = s instanceof Array ? s : COOKWARE_REGEX.exec(s); - if (!match || match.length != 3) - throw `error parsing cookware: '${s}'`; - this.name = (match[1] || match[2]).trim(); - } - else { - if ('name' in s) - this.name = s.name; - } - } -} -exports.Cookware = Cookware; -// timer -class Timer extends base { - constructor(s) { - super(s); - if (s instanceof Array || typeof s === 'string') { - const match = s instanceof Array ? s : TIMER_REGEX.exec(s); - if (!match || match.length != 4) - throw `error parsing timer: '${s}'`; - this.name = match[1] ? match[1].trim() : ""; - this.amount = match[2] ? match[2].trim() : 0; - this.units = match[3] ? match[3].trim() : ""; - this.quantity = this.amount ? stringToNumber(this.amount) : 0; - this.seconds = Timer.getSeconds(this.quantity, this.units); - } - else { - if ('name' in s) - this.name = s.name; - if ('amount' in s) - this.amount = s.amount; - if ('quantity' in s) - this.quantity = s.quantity; - if ('units' in s) - this.units = s.units; - if ('seconds' in s) - this.seconds = s.seconds; - } - } - static getSeconds(amount, unit = 'm') { - let time = 0; - if (amount > 0) { - if (unit.toLowerCase().startsWith('s')) { - time = amount; - } - else if (unit.toLowerCase().startsWith('m')) { - time = amount * 60; - } - else if (unit.toLowerCase().startsWith('h')) { - time = amount * 60 * 60; - } - } - return time; - } -} -exports.Timer = Timer; -function stringToNumber(s) { - let amount = 0; - if (parseFloat(s) + '' == s) - amount = parseFloat(s); - else if (s.includes('/')) { - const split = s.split('/'); - if (split.length == 2) { - const num = parseFloat(split[0].trim()); - const den = parseFloat(split[1].trim()); - if (num + '' == split[0].trim() && den + '' == split[1].trim()) { - amount = num / den; - } - else - amount = NaN; - } - } - else - amount = NaN; - return amount; -} -// metadata -class Metadata extends base { - constructor(s) { - super(s); - if (s instanceof Array || typeof s === 'string') { - const match = s instanceof Array ? s : METADATA_REGEX.exec(s); - if (!match || match.length != 3) - throw `error parsing metadata: '${s}'`; - this.key = match[1].trim(); - this.value = match[2].trim(); - } - else { - if ('key' in s) - this.key = s.key; - if ('value' in s) - this.value = s.value; - } - } -} -exports.Metadata = Metadata; -}); - -/*! - * howler.js v2.2.3 - * howlerjs.com - * - * (c) 2013-2020, James Simpson of GoldFire Studios - * goldfirestudios.com - * - * MIT License - */ - -var howler = createCommonjsModule(function (module, exports) { -(function() { - - /** Global Methods **/ - /***************************************************************************/ - - /** - * Create the global controller. All contained methods and properties apply - * to all sounds that are currently playing or will be in the future. - */ - var HowlerGlobal = function() { - this.init(); - }; - HowlerGlobal.prototype = { - /** - * Initialize the global Howler object. - * @return {Howler} - */ - init: function() { - var self = this || Howler; - - // Create a global ID counter. - self._counter = 1000; - - // Pool of unlocked HTML5 Audio objects. - self._html5AudioPool = []; - self.html5PoolSize = 10; - - // Internal properties. - self._codecs = {}; - self._howls = []; - self._muted = false; - self._volume = 1; - self._canPlayEvent = 'canplaythrough'; - self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null; - - // Public properties. - self.masterGain = null; - self.noAudio = false; - self.usingWebAudio = true; - self.autoSuspend = true; - self.ctx = null; - - // Set to false to disable the auto audio unlocker. - self.autoUnlock = true; - - // Setup the various state values for global tracking. - self._setup(); - - return self; - }, - - /** - * Get/set the global volume for all sounds. - * @param {Float} vol Volume from 0.0 to 1.0. - * @return {Howler/Float} Returns self or current volume. - */ - volume: function(vol) { - var self = this || Howler; - vol = parseFloat(vol); - - // If we don't have an AudioContext created yet, run the setup. - if (!self.ctx) { - setupAudioContext(); - } - - if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) { - self._volume = vol; - - // Don't update any of the nodes if we are muted. - if (self._muted) { - return self; - } - - // When using Web Audio, we just need to adjust the master gain. - if (self.usingWebAudio) { - self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime); - } - - // Loop through and change volume for all HTML5 audio nodes. - for (var i=0; i=0; i--) { - self._howls[i].unload(); - } - - // Create a new AudioContext to make sure it is fully reset. - if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') { - self.ctx.close(); - self.ctx = null; - setupAudioContext(); - } - - return self; - }, - - /** - * Check for codec support of specific extension. - * @param {String} ext Audio file extention. - * @return {Boolean} - */ - codecs: function(ext) { - return (this || Howler)._codecs[ext.replace(/^x-/, '')]; - }, - - /** - * Setup various state values for global tracking. - * @return {Howler} - */ - _setup: function() { - var self = this || Howler; - - // Keeps track of the suspend/resume state of the AudioContext. - self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended'; - - // Automatically begin the 30-second suspend process - self._autoSuspend(); - - // Check if audio is available. - if (!self.usingWebAudio) { - // No audio is available on this system if noAudio is set to true. - if (typeof Audio !== 'undefined') { - try { - var test = new Audio(); - - // Check if the canplaythrough event is available. - if (typeof test.oncanplaythrough === 'undefined') { - self._canPlayEvent = 'canplay'; - } - } catch(e) { - self.noAudio = true; - } - } else { - self.noAudio = true; - } - } - - // Test to make sure audio isn't disabled in Internet Explorer. - try { - var test = new Audio(); - if (test.muted) { - self.noAudio = true; - } - } catch (e) {} - - // Check for supported codecs. - if (!self.noAudio) { - self._setupCodecs(); - } - - return self; - }, - - /** - * Check for browser support for various codecs and cache the results. - * @return {Howler} - */ - _setupCodecs: function() { - var self = this || Howler; - var audioTest = null; - - // Must wrap in a try/catch because IE11 in server mode throws an error. - try { - audioTest = (typeof Audio !== 'undefined') ? new Audio() : null; - } catch (err) { - return self; - } - - if (!audioTest || typeof audioTest.canPlayType !== 'function') { - return self; - } - - var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, ''); - - // Opera version <33 has mixed MP3 support, so we need to check for and block it. - var ua = self._navigator ? self._navigator.userAgent : ''; - var checkOpera = ua.match(/OPR\/([0-6].)/g); - var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33); - var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1; - var safariVersion = ua.match(/Version\/(.*?) /); - var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15); - - self._codecs = { - mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))), - mpeg: !!mpegTest, - opus: !!audioTest.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ''), - ogg: !!audioTest.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ''), - oga: !!audioTest.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ''), - wav: !!(audioTest.canPlayType('audio/wav; codecs="1"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''), - aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''), - caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''), - m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''), - m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''), - mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''), - weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, '')), - webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, '')), - dolby: !!audioTest.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ''), - flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '') - }; - - return self; - }, - - /** - * Some browsers/devices will only allow audio to be played after a user interaction. - * Attempt to automatically unlock audio on the first user interaction. - * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/ - * @return {Howler} - */ - _unlockAudio: function() { - var self = this || Howler; - - // Only run this if Web Audio is supported and it hasn't already been unlocked. - if (self._audioUnlocked || !self.ctx) { - return; - } - - self._audioUnlocked = false; - self.autoUnlock = false; - - // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views. - // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000. - // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate. - if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) { - self._mobileUnloaded = true; - self.unload(); - } - - // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per: - // http://stackoverflow.com/questions/24119684 - self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050); - - // Call this method on touch start to create and play a buffer, - // then check if the audio actually played to determine if - // audio has now been unlocked on iOS, Android, etc. - var unlock = function(e) { - // Create a pool of unlocked HTML5 Audio objects that can - // be used for playing sounds without user interaction. HTML5 - // Audio objects must be individually unlocked, as opposed - // to the WebAudio API which only needs a single activation. - // This must occur before WebAudio setup or the source.onended - // event will not fire. - while (self._html5AudioPool.length < self.html5PoolSize) { - try { - var audioNode = new Audio(); - - // Mark this Audio object as unlocked to ensure it can get returned - // to the unlocked pool when released. - audioNode._unlocked = true; - - // Add the audio node to the pool. - self._releaseHtml5Audio(audioNode); - } catch (e) { - self.noAudio = true; - break; - } - } - - // Loop through any assigned audio nodes and unlock them. - for (var i=0; i= 55. - if (typeof self.ctx.resume === 'function') { - self.ctx.resume(); - } - - // Setup a timeout to check that we are unlocked on the next event loop. - source.onended = function() { - source.disconnect(0); - - // Update the unlocked state and prevent this check from happening again. - self._audioUnlocked = true; - - // Remove the touch start listener. - document.removeEventListener('touchstart', unlock, true); - document.removeEventListener('touchend', unlock, true); - document.removeEventListener('click', unlock, true); - document.removeEventListener('keydown', unlock, true); - - // Let all sounds know that audio has been unlocked. - for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000); - var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek); - var timeout = (duration * 1000) / Math.abs(sound._rate); - var start = self._sprite[sprite][0] / 1000; - var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000; - sound._sprite = sprite; - - // Mark the sound as ended instantly so that this async playback - // doesn't get grabbed by another call to play while this one waits to start. - sound._ended = false; - - // Update the parameters of the sound. - var setParams = function() { - sound._paused = false; - sound._seek = seek; - sound._start = start; - sound._stop = stop; - sound._loop = !!(sound._loop || self._sprite[sprite][2]); - }; - - // End the sound instantly if seek is at the end. - if (seek >= stop) { - self._ended(sound); - return; - } - - // Begin the actual playback. - var node = sound._node; - if (self._webAudio) { - // Fire this when the sound is ready to play to begin Web Audio playback. - var playWebAudio = function() { - self._playLock = false; - setParams(); - self._refreshBuffer(sound); - - // Setup the playback params. - var vol = (sound._muted || self._muted) ? 0 : sound._volume; - node.gain.setValueAtTime(vol, Howler.ctx.currentTime); - sound._playStart = Howler.ctx.currentTime; - - // Play the sound using the supported method. - if (typeof node.bufferSource.start === 'undefined') { - sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration); - } else { - sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration); - } - - // Start a new timer if none is present. - if (timeout !== Infinity) { - self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout); - } - - if (!internal) { - setTimeout(function() { - self._emit('play', sound._id); - self._loadQueue(); - }, 0); - } - }; - - if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') { - playWebAudio(); - } else { - self._playLock = true; - - // Wait for the audio context to resume before playing. - self.once('resume', playWebAudio); - - // Cancel the end timer. - self._clearTimer(sound._id); - } - } else { - // Fire this when the sound is ready to play to begin HTML5 Audio playback. - var playHtml5 = function() { - node.currentTime = seek; - node.muted = sound._muted || self._muted || Howler._muted || node.muted; - node.volume = sound._volume * Howler.volume(); - node.playbackRate = sound._rate; - - // Some browsers will throw an error if this is called without user interaction. - try { - var play = node.play(); - - // Support older browsers that don't support promises, and thus don't have this issue. - if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) { - // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause(). - self._playLock = true; - - // Set param values immediately. - setParams(); - - // Releases the lock and executes queued actions. - play - .then(function() { - self._playLock = false; - node._unlocked = true; - if (!internal) { - self._emit('play', sound._id); - } else { - self._loadQueue(); - } - }) - .catch(function() { - self._playLock = false; - self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' + - 'on mobile devices and Chrome where playback was not within a user interaction.'); - - // Reset the ended and paused values. - sound._ended = true; - sound._paused = true; - }); - } else if (!internal) { - self._playLock = false; - setParams(); - self._emit('play', sound._id); - } - - // Setting rate before playing won't work in IE, so we set it again here. - node.playbackRate = sound._rate; - - // If the node is still paused, then we can assume there was a playback issue. - if (node.paused) { - self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' + - 'on mobile devices and Chrome where playback was not within a user interaction.'); - return; - } - - // Setup the end timer on sprites or listen for the ended event. - if (sprite !== '__default' || sound._loop) { - self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout); - } else { - self._endTimers[sound._id] = function() { - // Fire ended on this audio node. - self._ended(sound); - - // Clear this listener. - node.removeEventListener('ended', self._endTimers[sound._id], false); - }; - node.addEventListener('ended', self._endTimers[sound._id], false); - } - } catch (err) { - self._emit('playerror', sound._id, err); - } - }; - - // If this is streaming audio, make sure the src is set and load again. - if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') { - node.src = self._src; - node.load(); - } - - // Play immediately if ready, or wait for the 'canplaythrough'e vent. - var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS); - if (node.readyState >= 3 || loadedNoReadyState) { - playHtml5(); - } else { - self._playLock = true; - self._state = 'loading'; - - var listener = function() { - self._state = 'loaded'; - - // Begin playback. - playHtml5(); - - // Clear this listener. - node.removeEventListener(Howler._canPlayEvent, listener, false); - }; - node.addEventListener(Howler._canPlayEvent, listener, false); - - // Cancel the end timer. - self._clearTimer(sound._id); - } - } - - return sound._id; - }, - - /** - * Pause playback and save current position. - * @param {Number} id The sound ID (empty to pause all in group). - * @return {Howl} - */ - pause: function(id) { - var self = this; - - // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable. - if (self._state !== 'loaded' || self._playLock) { - self._queue.push({ - event: 'pause', - action: function() { - self.pause(id); - } - }); - - return self; - } - - // If no id is passed, get all ID's to be paused. - var ids = self._getSoundIds(id); - - for (var i=0; i Returns the group's volume value. - * volume(id) -> Returns the sound id's current volume. - * volume(vol) -> Sets the volume of all sounds in this Howl group. - * volume(vol, id) -> Sets the volume of passed sound id. - * @return {Howl/Number} Returns self or current volume. - */ - volume: function() { - var self = this; - var args = arguments; - var vol, id; - - // Determine the values based on arguments. - if (args.length === 0) { - // Return the value of the groups' volume. - return self._volume; - } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') { - // First check if this is an ID, and if not, assume it is a new volume. - var ids = self._getSoundIds(); - var index = ids.indexOf(args[0]); - if (index >= 0) { - id = parseInt(args[0], 10); - } else { - vol = parseFloat(args[0]); - } - } else if (args.length >= 2) { - vol = parseFloat(args[0]); - id = parseInt(args[1], 10); - } - - // Update the volume or return the current volume. - var sound; - if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) { - // If the sound hasn't loaded, add it to the load queue to change volume when capable. - if (self._state !== 'loaded'|| self._playLock) { - self._queue.push({ - event: 'volume', - action: function() { - self.volume.apply(self, args); - } - }); - - return self; - } - - // Set the group volume. - if (typeof id === 'undefined') { - self._volume = vol; - } - - // Update one or all volumes. - id = self._getSoundIds(id); - for (var i=0; i 0) ? len / steps : len); - var lastTick = Date.now(); - - // Store the value being faded to. - sound._fadeTo = to; - - // Update the volume value on each interval tick. - sound._interval = setInterval(function() { - // Update the volume based on the time since the last tick. - var tick = (Date.now() - lastTick) / len; - lastTick = Date.now(); - vol += diff * tick; - - // Round to within 2 decimal points. - vol = Math.round(vol * 100) / 100; - - // Make sure the volume is in the right bounds. - if (diff < 0) { - vol = Math.max(to, vol); - } else { - vol = Math.min(to, vol); - } - - // Change the volume. - if (self._webAudio) { - sound._volume = vol; - } else { - self.volume(vol, sound._id, true); - } - - // Set the group's volume. - if (isGroup) { - self._volume = vol; - } - - // When the fade is complete, stop it and fire event. - if ((to < from && vol <= to) || (to > from && vol >= to)) { - clearInterval(sound._interval); - sound._interval = null; - sound._fadeTo = null; - self.volume(to, sound._id); - self._emit('fade', sound._id); - } - }, stepLen); - }, - - /** - * Internal method that stops the currently playing fade when - * a new fade starts, volume is changed or the sound is stopped. - * @param {Number} id The sound id. - * @return {Howl} - */ - _stopFade: function(id) { - var self = this; - var sound = self._soundById(id); - - if (sound && sound._interval) { - if (self._webAudio) { - sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime); - } - - clearInterval(sound._interval); - sound._interval = null; - self.volume(sound._fadeTo, id); - sound._fadeTo = null; - self._emit('fade', id); - } - - return self; - }, - - /** - * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments. - * loop() -> Returns the group's loop value. - * loop(id) -> Returns the sound id's loop value. - * loop(loop) -> Sets the loop value for all sounds in this Howl group. - * loop(loop, id) -> Sets the loop value of passed sound id. - * @return {Howl/Boolean} Returns self or current loop value. - */ - loop: function() { - var self = this; - var args = arguments; - var loop, id, sound; - - // Determine the values for loop and id. - if (args.length === 0) { - // Return the grou's loop value. - return self._loop; - } else if (args.length === 1) { - if (typeof args[0] === 'boolean') { - loop = args[0]; - self._loop = loop; - } else { - // Return this sound's loop value. - sound = self._soundById(parseInt(args[0], 10)); - return sound ? sound._loop : false; - } - } else if (args.length === 2) { - loop = args[0]; - id = parseInt(args[1], 10); - } - - // If no id is passed, get all ID's to be looped. - var ids = self._getSoundIds(id); - for (var i=0; i Returns the first sound node's current playback rate. - * rate(id) -> Returns the sound id's current playback rate. - * rate(rate) -> Sets the playback rate of all sounds in this Howl group. - * rate(rate, id) -> Sets the playback rate of passed sound id. - * @return {Howl/Number} Returns self or the current playback rate. - */ - rate: function() { - var self = this; - var args = arguments; - var rate, id; - - // Determine the values based on arguments. - if (args.length === 0) { - // We will simply return the current rate of the first node. - id = self._sounds[0]._id; - } else if (args.length === 1) { - // First check if this is an ID, and if not, assume it is a new rate value. - var ids = self._getSoundIds(); - var index = ids.indexOf(args[0]); - if (index >= 0) { - id = parseInt(args[0], 10); - } else { - rate = parseFloat(args[0]); - } - } else if (args.length === 2) { - rate = parseFloat(args[0]); - id = parseInt(args[1], 10); - } - - // Update the playback rate or return the current value. - var sound; - if (typeof rate === 'number') { - // If the sound hasn't loaded, add it to the load queue to change playback rate when capable. - if (self._state !== 'loaded' || self._playLock) { - self._queue.push({ - event: 'rate', - action: function() { - self.rate.apply(self, args); - } - }); - - return self; - } - - // Set the group rate. - if (typeof id === 'undefined') { - self._rate = rate; - } - - // Update one or all volumes. - id = self._getSoundIds(id); - for (var i=0; i Returns the first sound node's current seek position. - * seek(id) -> Returns the sound id's current seek position. - * seek(seek) -> Sets the seek position of the first sound node. - * seek(seek, id) -> Sets the seek position of passed sound id. - * @return {Howl/Number} Returns self or the current seek position. - */ - seek: function() { - var self = this; - var args = arguments; - var seek, id; - - // Determine the values based on arguments. - if (args.length === 0) { - // We will simply return the current position of the first node. - if (self._sounds.length) { - id = self._sounds[0]._id; - } - } else if (args.length === 1) { - // First check if this is an ID, and if not, assume it is a new seek position. - var ids = self._getSoundIds(); - var index = ids.indexOf(args[0]); - if (index >= 0) { - id = parseInt(args[0], 10); - } else if (self._sounds.length) { - id = self._sounds[0]._id; - seek = parseFloat(args[0]); - } - } else if (args.length === 2) { - seek = parseFloat(args[0]); - id = parseInt(args[1], 10); - } - - // If there is no ID, bail out. - if (typeof id === 'undefined') { - return 0; - } - - // If the sound hasn't loaded, add it to the load queue to seek when capable. - if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) { - self._queue.push({ - event: 'seek', - action: function() { - self.seek.apply(self, args); - } - }); - - return self; - } - - // Get the sound. - var sound = self._soundById(id); - - if (sound) { - if (typeof seek === 'number' && seek >= 0) { - // Pause the sound and update position for restarting playback. - var playing = self.playing(id); - if (playing) { - self.pause(id, true); - } - - // Move the position of the track and cancel timer. - sound._seek = seek; - sound._ended = false; - self._clearTimer(id); - - // Update the seek position for HTML5 Audio. - if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) { - sound._node.currentTime = seek; - } - - // Seek and emit when ready. - var seekAndEmit = function() { - // Restart the playback if the sound was playing. - if (playing) { - self.play(id, true); - } - - self._emit('seek', id); - }; - - // Wait for the play lock to be unset before emitting (HTML5 Audio). - if (playing && !self._webAudio) { - var emitSeek = function() { - if (!self._playLock) { - seekAndEmit(); - } else { - setTimeout(emitSeek, 0); - } - }; - setTimeout(emitSeek, 0); - } else { - seekAndEmit(); - } - } else { - if (self._webAudio) { - var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0; - var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0; - return sound._seek + (rateSeek + realTime * Math.abs(sound._rate)); - } else { - return sound._node.currentTime; - } - } - } - - return self; - }, - - /** - * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not. - * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked. - * @return {Boolean} True if playing and false if not. - */ - playing: function(id) { - var self = this; - - // Check the passed sound ID (if any). - if (typeof id === 'number') { - var sound = self._soundById(id); - return sound ? !sound._paused : false; - } - - // Otherwise, loop through all sounds and check if any are playing. - for (var i=0; i= 0) { - Howler._howls.splice(index, 1); - } - - // Delete this sound from the cache (if no other Howl is using it). - var remCache = true; - for (i=0; i= 0) { - remCache = false; - break; - } - } - - if (cache && remCache) { - delete cache[self._src]; - } - - // Clear global errors. - Howler.noAudio = false; - - // Clear out `self`. - self._state = 'unloaded'; - self._sounds = []; - self = null; - - return null; - }, - - /** - * Listen to a custom event. - * @param {String} event Event name. - * @param {Function} fn Listener to call. - * @param {Number} id (optional) Only listen to events for this sound. - * @param {Number} once (INTERNAL) Marks event to fire only once. - * @return {Howl} - */ - on: function(event, fn, id, once) { - var self = this; - var events = self['_on' + event]; - - if (typeof fn === 'function') { - events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn}); - } - - return self; - }, - - /** - * Remove a custom event. Call without parameters to remove all events. - * @param {String} event Event name. - * @param {Function} fn Listener to remove. Leave empty to remove all. - * @param {Number} id (optional) Only remove events for this sound. - * @return {Howl} - */ - off: function(event, fn, id) { - var self = this; - var events = self['_on' + event]; - var i = 0; - - // Allow passing just an event and ID. - if (typeof fn === 'number') { - id = fn; - fn = null; - } - - if (fn || id) { - // Loop through event store and remove the passed function. - for (i=0; i=0; i--) { - // Only fire the listener if the correct ID is used. - if (!events[i].id || events[i].id === id || event === 'load') { - setTimeout(function(fn) { - fn.call(this, id, msg); - }.bind(self, events[i].fn), 0); - - // If this event was setup with `once`, remove it. - if (events[i].once) { - self.off(event, events[i].fn, events[i].id); - } - } - } - - // Pass the event type into load queue so that it can continue stepping. - self._loadQueue(event); - - return self; - }, - - /** - * Queue of actions initiated before the sound has loaded. - * These will be called in sequence, with the next only firing - * after the previous has finished executing (even if async like play). - * @return {Howl} - */ - _loadQueue: function(event) { - var self = this; - - if (self._queue.length > 0) { - var task = self._queue[0]; - - // Remove this task if a matching event was passed. - if (task.event === event) { - self._queue.shift(); - self._loadQueue(); - } - - // Run the task if no event type is passed. - if (!event) { - task.action(); - } - } - - return self; - }, - - /** - * Fired when playback ends at the end of the duration. - * @param {Sound} sound The sound object to work with. - * @return {Howl} - */ - _ended: function(sound) { - var self = this; - var sprite = sound._sprite; - - // If we are using IE and there was network latency we may be clipping - // audio before it completes playing. Lets check the node to make sure it - // believes it has completed, before ending the playback. - if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) { - setTimeout(self._ended.bind(self, sound), 100); - return self; - } - - // Should this sound loop? - var loop = !!(sound._loop || self._sprite[sprite][2]); - - // Fire the ended event. - self._emit('end', sound._id); - - // Restart the playback for HTML5 Audio loop. - if (!self._webAudio && loop) { - self.stop(sound._id, true).play(sound._id); - } - - // Restart this timer if on a Web Audio loop. - if (self._webAudio && loop) { - self._emit('play', sound._id); - sound._seek = sound._start || 0; - sound._rateSeek = 0; - sound._playStart = Howler.ctx.currentTime; - - var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate); - self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout); - } - - // Mark the node as paused. - if (self._webAudio && !loop) { - sound._paused = true; - sound._ended = true; - sound._seek = sound._start || 0; - sound._rateSeek = 0; - self._clearTimer(sound._id); - - // Clean up the buffer source. - self._cleanBuffer(sound._node); - - // Attempt to auto-suspend AudioContext if no sounds are still playing. - Howler._autoSuspend(); - } - - // When using a sprite, end the track. - if (!self._webAudio && !loop) { - self.stop(sound._id, true); - } - - return self; - }, - - /** - * Clear the end timer for a sound playback. - * @param {Number} id The sound ID. - * @return {Howl} - */ - _clearTimer: function(id) { - var self = this; - - if (self._endTimers[id]) { - // Clear the timeout or remove the ended listener. - if (typeof self._endTimers[id] !== 'function') { - clearTimeout(self._endTimers[id]); - } else { - var sound = self._soundById(id); - if (sound && sound._node) { - sound._node.removeEventListener('ended', self._endTimers[id], false); - } - } - - delete self._endTimers[id]; - } - - return self; - }, - - /** - * Return the sound identified by this ID, or return null. - * @param {Number} id Sound ID - * @return {Object} Sound object or null. - */ - _soundById: function(id) { - var self = this; - - // Loop through all sounds and find the one with this ID. - for (var i=0; i=0; i--) { - if (cnt <= limit) { - return; - } - - if (self._sounds[i]._ended) { - // Disconnect the audio source when using Web Audio. - if (self._webAudio && self._sounds[i]._node) { - self._sounds[i]._node.disconnect(0); - } - - // Remove sounds until we have the pool size. - self._sounds.splice(i, 1); - cnt--; - } - } - }, - - /** - * Get all ID's from the sounds pool. - * @param {Number} id Only return one ID if one is passed. - * @return {Array} Array of IDs. - */ - _getSoundIds: function(id) { - var self = this; - - if (typeof id === 'undefined') { - var ids = []; - for (var i=0; i= 0; - - if (Howler._scratchBuffer && node.bufferSource) { - node.bufferSource.onended = null; - node.bufferSource.disconnect(0); - if (isIOS) { - try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {} - } - } - node.bufferSource = null; - - return self; - }, - - /** - * Set the source to a 0-second silence to stop any downloading (except in IE). - * @param {Object} node Audio node to clear. - */ - _clearSound: function(node) { - var checkIE = /MSIE |Trident\//.test(Howler._navigator && Howler._navigator.userAgent); - if (!checkIE) { - node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA'; - } - } - }; - - /** Single Sound Methods **/ - /***************************************************************************/ - - /** - * Setup the sound object, which each node attached to a Howl group is contained in. - * @param {Object} howl The Howl parent group. - */ - var Sound = function(howl) { - this._parent = howl; - this.init(); - }; - Sound.prototype = { - /** - * Initialize a new Sound object. - * @return {Sound} - */ - init: function() { - var self = this; - var parent = self._parent; - - // Setup the default parameters. - self._muted = parent._muted; - self._loop = parent._loop; - self._volume = parent._volume; - self._rate = parent._rate; - self._seek = 0; - self._paused = true; - self._ended = true; - self._sprite = '__default'; - - // Generate a unique ID for this sound. - self._id = ++Howler._counter; - - // Add itself to the parent's pool. - parent._sounds.push(self); - - // Create the new node. - self.create(); - - return self; - }, - - /** - * Create and setup a new sound object, whether HTML5 Audio or Web Audio. - * @return {Sound} - */ - create: function() { - var self = this; - var parent = self._parent; - var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume; - - if (parent._webAudio) { - // Create the gain node for controlling volume (the source will connect to this). - self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain(); - self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime); - self._node.paused = true; - self._node.connect(Howler.masterGain); - } else if (!Howler.noAudio) { - // Get an unlocked Audio object from the pool. - self._node = Howler._obtainHtml5Audio(); - - // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror). - self._errorFn = self._errorListener.bind(self); - self._node.addEventListener('error', self._errorFn, false); - - // Listen for 'canplaythrough' event to let us know the sound is ready. - self._loadFn = self._loadListener.bind(self); - self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false); - - // Listen for the 'ended' event on the sound to account for edge-case where - // a finite sound has a duration of Infinity. - self._endFn = self._endListener.bind(self); - self._node.addEventListener('ended', self._endFn, false); - - // Setup the new audio node. - self._node.src = parent._src; - self._node.preload = parent._preload === true ? 'auto' : parent._preload; - self._node.volume = volume * Howler.volume(); - - // Begin loading the source. - self._node.load(); - } - - return self; - }, - - /** - * Reset the parameters of this sound to the original state (for recycle). - * @return {Sound} - */ - reset: function() { - var self = this; - var parent = self._parent; - - // Reset all of the parameters of this sound. - self._muted = parent._muted; - self._loop = parent._loop; - self._volume = parent._volume; - self._rate = parent._rate; - self._seek = 0; - self._rateSeek = 0; - self._paused = true; - self._ended = true; - self._sprite = '__default'; - - // Generate a new ID so that it isn't confused with the previous sound. - self._id = ++Howler._counter; - - return self; - }, - - /** - * HTML5 Audio error listener callback. - */ - _errorListener: function() { - var self = this; - - // Fire an error event and pass back the code. - self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0); - - // Clear the event listener. - self._node.removeEventListener('error', self._errorFn, false); - }, - - /** - * HTML5 Audio canplaythrough listener callback. - */ - _loadListener: function() { - var self = this; - var parent = self._parent; - - // Round up the duration to account for the lower precision in HTML5 Audio. - parent._duration = Math.ceil(self._node.duration * 10) / 10; - - // Setup a sprite if none is defined. - if (Object.keys(parent._sprite).length === 0) { - parent._sprite = {__default: [0, parent._duration * 1000]}; - } - - if (parent._state !== 'loaded') { - parent._state = 'loaded'; - parent._emit('load'); - parent._loadQueue(); - } - - // Clear the event listener. - self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false); - }, - - /** - * HTML5 Audio ended listener callback. - */ - _endListener: function() { - var self = this; - var parent = self._parent; - - // Only handle the `ended`` event if the duration is Infinity. - if (parent._duration === Infinity) { - // Update the parent duration to match the real audio duration. - // Round up the duration to account for the lower precision in HTML5 Audio. - parent._duration = Math.ceil(self._node.duration * 10) / 10; - - // Update the sprite that corresponds to the real duration. - if (parent._sprite.__default[1] === Infinity) { - parent._sprite.__default[1] = parent._duration * 1000; - } - - // Run the regular ended method. - parent._ended(self); - } - - // Clear the event listener since the duration is now correct. - self._node.removeEventListener('ended', self._endFn, false); - } - }; - - /** Helper Methods **/ - /***************************************************************************/ - - var cache = {}; - - /** - * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API). - * @param {Howl} self - */ - var loadBuffer = function(self) { - var url = self._src; - - // Check if the buffer has already been cached and use it instead. - if (cache[url]) { - // Set the duration from the cache. - self._duration = cache[url].duration; - - // Load the sound into this Howl. - loadSound(self); - - return; - } - - if (/^data:[^;]+;base64,/.test(url)) { - // Decode the base64 data URI without XHR, since some browsers don't support it. - var data = atob(url.split(',')[1]); - var dataView = new Uint8Array(data.length); - for (var i=0; i 0) { - cache[self._src] = buffer; - loadSound(self, buffer); - } else { - error(); - } - }; - - // Decode the buffer into an audio source. - if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) { - Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error); - } else { - Howler.ctx.decodeAudioData(arraybuffer, success, error); - } - }; - - /** - * Sound is now loaded, so finish setting everything up and fire the loaded event. - * @param {Howl} self - * @param {Object} buffer The decoded buffer sound source. - */ - var loadSound = function(self, buffer) { - // Set the duration. - if (buffer && !self._duration) { - self._duration = buffer.duration; - } - - // Setup a sprite if none is defined. - if (Object.keys(self._sprite).length === 0) { - self._sprite = {__default: [0, self._duration * 1000]}; - } - - // Fire the loaded event. - if (self._state !== 'loaded') { - self._state = 'loaded'; - self._emit('load'); - self._loadQueue(); - } - }; - - /** - * Setup the audio context when available, or switch to HTML5 Audio mode. - */ - var setupAudioContext = function() { - // If we have already detected that Web Audio isn't supported, don't run this step again. - if (!Howler.usingWebAudio) { - return; - } - - // Check if we are using Web Audio and setup the AudioContext if we are. - try { - if (typeof AudioContext !== 'undefined') { - Howler.ctx = new AudioContext(); - } else if (typeof webkitAudioContext !== 'undefined') { - Howler.ctx = new webkitAudioContext(); - } else { - Howler.usingWebAudio = false; - } - } catch(e) { - Howler.usingWebAudio = false; - } - - // If the audio context creation still failed, set using web audio to false. - if (!Howler.ctx) { - Howler.usingWebAudio = false; - } - - // Check if a webview is being used on iOS8 or earlier (rather than the browser). - // If it is, disable Web Audio as it causes crashing. - var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform)); - var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/); - var version = appVersion ? parseInt(appVersion[1], 10) : null; - if (iOS && version && version < 9) { - var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase()); - if (Howler._navigator && !safari) { - Howler.usingWebAudio = false; - } - } - - // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage). - if (Howler.usingWebAudio) { - Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain(); - Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime); - Howler.masterGain.connect(Howler.ctx.destination); - } - - // Re-run the setup on Howler. - Howler._setup(); - }; - - // Add support for CommonJS libraries such as browserify. - { - exports.Howler = Howler; - exports.Howl = Howl; - } - - // Add to global in Node.js (for testing, etc). - if (typeof commonjsGlobal !== 'undefined') { - commonjsGlobal.HowlerGlobal = HowlerGlobal; - commonjsGlobal.Howler = Howler; - commonjsGlobal.Howl = Howl; - commonjsGlobal.Sound = Sound; - } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused. - window.HowlerGlobal = HowlerGlobal; - window.Howler = Howler; - window.Howl = Howl; - window.Sound = Sound; - } -})(); - - -/*! - * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. - * - * howler.js v2.2.3 - * howlerjs.com - * - * (c) 2013-2020, James Simpson of GoldFire Studios - * goldfirestudios.com - * - * MIT License - */ - -(function() { - - // Setup default properties. - HowlerGlobal.prototype._pos = [0, 0, 0]; - HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0]; - - /** Global Methods **/ - /***************************************************************************/ - - /** - * Helper method to update the stereo panning position of all current Howls. - * Future Howls will not use this value unless explicitly set. - * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right. - * @return {Howler/Number} Self or current stereo panning value. - */ - HowlerGlobal.prototype.stereo = function(pan) { - var self = this; - - // Stop right here if not using Web Audio. - if (!self.ctx || !self.ctx.listener) { - return self; - } - - // Loop through all Howls and update their stereo panning. - for (var i=self._howls.length-1; i>=0; i--) { - self._howls[i].stereo(pan); - } - - return self; - }; - - /** - * Get/set the position of the listener in 3D cartesian space. Sounds using - * 3D position will be relative to the listener's position. - * @param {Number} x The x-position of the listener. - * @param {Number} y The y-position of the listener. - * @param {Number} z The z-position of the listener. - * @return {Howler/Array} Self or current listener position. - */ - HowlerGlobal.prototype.pos = function(x, y, z) { - var self = this; - - // Stop right here if not using Web Audio. - if (!self.ctx || !self.ctx.listener) { - return self; - } - - // Set the defaults for optional 'y' & 'z'. - y = (typeof y !== 'number') ? self._pos[1] : y; - z = (typeof z !== 'number') ? self._pos[2] : z; - - if (typeof x === 'number') { - self._pos = [x, y, z]; - - if (typeof self.ctx.listener.positionX !== 'undefined') { - self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1); - self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1); - self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1); - } else { - self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]); - } - } else { - return self._pos; - } - - return self; - }; - - /** - * Get/set the direction the listener is pointing in the 3D cartesian space. - * A front and up vector must be provided. The front is the direction the - * face of the listener is pointing, and up is the direction the top of the - * listener is pointing. Thus, these values are expected to be at right angles - * from each other. - * @param {Number} x The x-orientation of the listener. - * @param {Number} y The y-orientation of the listener. - * @param {Number} z The z-orientation of the listener. - * @param {Number} xUp The x-orientation of the top of the listener. - * @param {Number} yUp The y-orientation of the top of the listener. - * @param {Number} zUp The z-orientation of the top of the listener. - * @return {Howler/Array} Returns self or the current orientation vectors. - */ - HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) { - var self = this; - - // Stop right here if not using Web Audio. - if (!self.ctx || !self.ctx.listener) { - return self; - } - - // Set the defaults for optional 'y' & 'z'. - var or = self._orientation; - y = (typeof y !== 'number') ? or[1] : y; - z = (typeof z !== 'number') ? or[2] : z; - xUp = (typeof xUp !== 'number') ? or[3] : xUp; - yUp = (typeof yUp !== 'number') ? or[4] : yUp; - zUp = (typeof zUp !== 'number') ? or[5] : zUp; - - if (typeof x === 'number') { - self._orientation = [x, y, z, xUp, yUp, zUp]; - - if (typeof self.ctx.listener.forwardX !== 'undefined') { - self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1); - self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1); - self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1); - self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1); - self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1); - self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1); - } else { - self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp); - } - } else { - return or; - } - - return self; - }; - - /** Group Methods **/ - /***************************************************************************/ - - /** - * Add new properties to the core init. - * @param {Function} _super Core init method. - * @return {Howl} - */ - Howl.prototype.init = (function(_super) { - return function(o) { - var self = this; - - // Setup user-defined default properties. - self._orientation = o.orientation || [1, 0, 0]; - self._stereo = o.stereo || null; - self._pos = o.pos || null; - self._pannerAttr = { - coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360, - coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360, - coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0, - distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse', - maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000, - panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF', - refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1, - rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1 - }; - - // Setup event listeners. - self._onstereo = o.onstereo ? [{fn: o.onstereo}] : []; - self._onpos = o.onpos ? [{fn: o.onpos}] : []; - self._onorientation = o.onorientation ? [{fn: o.onorientation}] : []; - - // Complete initilization with howler.js core's init function. - return _super.call(this, o); - }; - })(Howl.prototype.init); - - /** - * Get/set the stereo panning of the audio source for this sound or all in the group. - * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right. - * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated. - * @return {Howl/Number} Returns self or the current stereo panning value. - */ - Howl.prototype.stereo = function(pan, id) { - var self = this; - - // Stop right here if not using Web Audio. - if (!self._webAudio) { - return self; - } - - // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable. - if (self._state !== 'loaded') { - self._queue.push({ - event: 'stereo', - action: function() { - self.stereo(pan, id); - } - }); - - return self; - } - - // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist. - var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo'; - - // Setup the group's stereo panning if no ID is passed. - if (typeof id === 'undefined') { - // Return the group's stereo panning if no parameters are passed. - if (typeof pan === 'number') { - self._stereo = pan; - self._pos = [pan, 0, 0]; - } else { - return self._stereo; - } - } - - // Change the streo panning of one or all sounds in group. - var ids = self._getSoundIds(id); - for (var i=0; i Returns the group's values. - * pannerAttr(id) -> Returns the sound id's values. - * pannerAttr(o) -> Set's the values of all sounds in this Howl group. - * pannerAttr(o, id) -> Set's the values of passed sound id. - * - * Attributes: - * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees, - * inside of which there will be no volume reduction. - * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees, - * outside of which the volume will be reduced to a constant value of `coneOuterGain`. - * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the - * `coneOuterAngle`. It is a linear value in the range `[0, 1]`. - * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from - * listener. Can be `linear`, `inverse` or `exponential. - * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume - * will not be reduced any further. - * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener. - * This is simply a variable of the distance model and has a different effect depending on which model - * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance. - * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a - * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]` - * with `inverse` and `exponential`. - * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio. - * Can be `HRTF` or `equalpower`. - * - * @return {Howl/Object} Returns self or current panner attributes. - */ - Howl.prototype.pannerAttr = function() { - var self = this; - var args = arguments; - var o, id, sound; - - // Stop right here if not using Web Audio. - if (!self._webAudio) { - return self; - } - - // Determine the values based on arguments. - if (args.length === 0) { - // Return the group's panner attribute values. - return self._pannerAttr; - } else if (args.length === 1) { - if (typeof args[0] === 'object') { - o = args[0]; - - // Set the grou's panner attribute values. - if (typeof id === 'undefined') { - if (!o.pannerAttr) { - o.pannerAttr = { - coneInnerAngle: o.coneInnerAngle, - coneOuterAngle: o.coneOuterAngle, - coneOuterGain: o.coneOuterGain, - distanceModel: o.distanceModel, - maxDistance: o.maxDistance, - refDistance: o.refDistance, - rolloffFactor: o.rolloffFactor, - panningModel: o.panningModel - }; - } - - self._pannerAttr = { - coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle, - coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle, - coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain, - distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel, - maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance, - refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance, - rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor, - panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel - }; - } - } else { - // Return this sound's panner attribute values. - sound = self._soundById(parseInt(args[0], 10)); - return sound ? sound._pannerAttr : self._pannerAttr; - } - } else if (args.length === 2) { - o = args[0]; - id = parseInt(args[1], 10); - } - - // Update the values of the specified sounds. - var ids = self._getSoundIds(id); - for (var i=0; i { - this.requestSave(); - }); - // add the action to switch between source and preview mode - this.changeModeButton = this.addAction('lines-of-text', 'Preview (Ctrl+Click to open in new pane)', (evt) => this.switchMode(evt), 17); - // undocumented: Get the current default view mode to switch to - let defaultViewMode = this.app.vault.getConfig('defaultViewMode'); - this.setState(Object.assign(Object.assign({}, this.getState()), { mode: defaultViewMode }), {}); - } - getState() { - return super.getState(); - } - setState(state, result) { - // console.log(state); - return super.setState(state, result).then(() => { - if (state.mode) - this.switchMode(state.mode); - }); - } - // function to switch between source and preview mode - switchMode(arg) { - let mode = arg; - // if force mode not provided, switch to opposite of current mode - if (!mode || mode instanceof MouseEvent) - mode = this.currentView === 'source' ? 'preview' : 'source'; - if (arg instanceof MouseEvent) { - if (obsidian.Keymap.isModEvent(arg)) { - this.app.workspace.duplicateLeaf(this.leaf).then(() => { - var _a, _b; - const viewState = (_a = this.app.workspace.activeLeaf) === null || _a === void 0 ? void 0 : _a.getViewState(); - if (viewState) { - viewState.state = Object.assign(Object.assign({}, viewState.state), { mode: mode }); - (_b = this.app.workspace.activeLeaf) === null || _b === void 0 ? void 0 : _b.setViewState(viewState); - } - }); - } - else { - this.setState(Object.assign(Object.assign({}, this.getState()), { mode: mode }), {}); - } - } - else { - // switch to preview mode - if (mode === 'preview') { - this.currentView = 'preview'; - obsidian.setIcon(this.changeModeButton, 'pencil'); - this.changeModeButton.setAttribute('aria-label', 'Edit (Ctrl+Click to edit in new pane)'); - this.renderPreview(this.recipe); - this.previewEl.style.setProperty('display', 'block'); - this.sourceEl.style.setProperty('display', 'none'); - } - // switch to source mode - else { - this.currentView = 'source'; - obsidian.setIcon(this.changeModeButton, 'lines-of-text'); - this.changeModeButton.setAttribute('aria-label', 'Preview (Ctrl+Click to open in new pane)'); - this.previewEl.style.setProperty('display', 'none'); - this.sourceEl.style.setProperty('display', 'block'); - this.editor.refresh(); - } - } - } - // get the data for save - getViewData() { - this.data = this.editor.getValue(); - // may as well parse the recipe while we're here. - this.recipe = new cooklang.Recipe(this.data); - return this.data; - } - // load the data into the view - setViewData(data, clear) { - return __awaiter(this, void 0, void 0, function* () { - this.data = data; - if (clear) { - this.editor.swapDoc(CodeMirror.Doc(data, "text/x-cook")); - this.editor.clearHistory(); - } - this.editor.setValue(data); - this.recipe = new cooklang.Recipe(data); - // if we're in preview view, also render that - if (this.currentView === 'preview') - this.renderPreview(this.recipe); - }); - } - // clear the editor, etc - clear() { - this.previewEl.empty(); - this.editor.setValue(''); - this.editor.clearHistory(); - this.recipe = new cooklang.Recipe(); - this.data = null; - } - getDisplayText() { - if (this.file) - return this.file.basename; - else - return "Cooklang (no file)"; - } - canAcceptExtension(extension) { - return extension == 'cook'; - } - getViewType() { - return "cook"; - } - // when the view is resized, refresh CodeMirror (thanks Licat!) - onResize() { - this.editor.refresh(); - } - // icon for the view - getIcon() { - return "document-cook"; - } - // render the preview view - renderPreview(recipe) { - // clear the preview before adding the rest - this.previewEl.empty(); - // we can't render what we don't have... - if (!recipe) - return; - if (this.settings.showImages) { - // add any files following the cooklang conventions to the recipe object - // https://org/docs/spec/#adding-pictures - const otherFiles = this.file.parent.children.filter(f => (f instanceof obsidian.TFile) && (f.basename == this.file.basename || f.basename.startsWith(this.file.basename + '.')) && f.name != this.file.name); - otherFiles.forEach(f => { - // convention specifies JPEGs and PNGs. Added GIFs as well. Why not? - if (f.extension == "jpg" || f.extension == "jpeg" || f.extension == "png" || f.extension == "gif") { - // main recipe image - if (f.basename == this.file.basename) - recipe.image = f; - else { - const split = f.basename.split('.'); - // individual step images - let s; - if (split.length == 2 && (s = parseInt(split[1])) >= 0 && s < recipe.steps.length) { - recipe.steps[s].image = f; - } - } - } - }); - // if there is a main image, put it as a banner image at the top - if (recipe.image) { - const img = this.previewEl.createEl('img', { cls: 'main-image' }); - img.src = this.app.vault.getResourcePath(recipe.image); - } - } - if (this.settings.showIngredientList) { - // Add the Ingredients header - this.previewEl.createEl('h2', { cls: 'ingredients-header', text: 'Ingredients' }); - // Add the ingredients list - const ul = this.previewEl.createEl('ul', { cls: 'ingredients' }); - recipe.ingredients.forEach(ingredient => { - const li = ul.createEl('li'); - if (ingredient.amount !== null) { - li.createEl('span', { cls: 'amount', text: ingredient.amount }); - li.appendText(' '); - } - if (ingredient.units !== null) { - li.createEl('span', { cls: 'unit', text: ingredient.units }); - li.appendText(' '); - } - li.appendText(ingredient.name); - }); - } - if (this.settings.showCookwareList) { - // Add the Cookware header - this.previewEl.createEl('h2', { cls: 'cookware-header', text: 'Cookware' }); - // Add the Cookware list - const ul = this.previewEl.createEl('ul', { cls: 'cookware' }); - recipe.cookware.forEach(item => { - ul.createEl('li', { text: item.name }); - }); - } - if (this.settings.showTimersList) { - // Add the Cookware header - this.previewEl.createEl('h2', { cls: 'timers-header', text: 'Timers' }); - // Add the Cookware list - const ul = this.previewEl.createEl('ul', { cls: 'timers' }); - recipe.timers.forEach(item => { - const li = ul.createEl('li'); - const a = li.createEl('a', { cls: 'timer', attr: { 'data-timer': item.seconds } }); - if (item.name) { - a.createEl('span', { cls: 'timer-name', text: item.name }); - a.appendText(' '); - } - a.appendText('('); - if (item.amount !== null) { - a.createEl('span', { cls: 'amount', text: item.amount }); - a.appendText(' '); - } - if (item.units !== null) { - a.createEl('span', { cls: 'unit', text: item.units }); - } - a.appendText(')'); - a.addEventListener('click', (ev) => { - //@ts-ignore - const timerSeconds = parseFloat(a.dataset.timer); - this.makeTimer(a, timerSeconds, item.name); - }); - }); - } - if (this.settings.showTotalTime) { - let time = recipe.calculateTotalTime(); - if (time > 0) { - // Add the Timers header - this.previewEl.createEl('h2', { cls: 'time-header', text: 'Total Time' }); - this.previewEl.createEl('p', { cls: 'time', text: this.formatTime(time) }); - } - } - // add the method header - this.previewEl.createEl('h2', { cls: 'method-header', text: 'Method' }); - // add the method list - const mol = this.previewEl.createEl('ol', { cls: 'method' }); - recipe.steps.forEach(step => { - const mli = mol.createEl('li'); - const mp = mli.createEl('p'); - step.line.forEach(s => { - if (typeof s === "string") - mp.append(s); - else if (s instanceof cooklang.Ingredient) { - const ispan = mp.createSpan({ cls: 'ingredient' }); - if (this.settings.showQuantitiesInline) { - if (s.amount) { - ispan.createSpan({ cls: 'amount', text: s.amount }); - ispan.appendText(' '); - } - if (s.units) { - ispan.createSpan({ cls: 'unit', text: s.units }); - ispan.appendText(' '); - } - } - ispan.appendText(s.name); - } - else if (s instanceof cooklang.Cookware) { - mp.createSpan({ cls: 'ingredient', text: s.name }); - } - else if (s instanceof cooklang.Timer) { - const containerSpan = mp.createSpan(); - const tspan = containerSpan.createSpan({ cls: 'timer', attr: { 'data-timer': s.seconds } }); - tspan.createSpan({ cls: 'time-amount', text: s.amount }); - tspan.appendText(' '); - tspan.createSpan({ cls: 'time-unit', text: s.units }); - if (this.settings.showTimersInline) { - tspan.addEventListener('click', (ev) => { - //@ts-ignore - const timerSeconds = parseFloat(tspan.dataset.timer); - this.makeTimer(tspan, timerSeconds, s.name); - }); - } - } - }); - if (this.settings.showImages && step.image) { - const img = mli.createEl('img', { cls: 'method-image' }); - img.src = this.app.vault.getResourcePath(step.image); - } - }); - } - makeTimer(el, seconds, name) { - var _a; - if (el.nextElementSibling && el.nextElementSibling.hasClass('countdown')) { - // this timer already exists. Play/pause it? - el.nextElementSibling.querySelector('button:first-child').click(); - return; - } - const timerAudioId = this.settings.timersTick ? (_a = this.timerAudio) === null || _a === void 0 ? void 0 : _a.play() : null; - const timerContainerEl = el.createSpan({ cls: 'countdown' }); - if (el.nextSibling) - el.parentElement.insertBefore(el.nextSibling, timerContainerEl); - else - el.parentElement.appendChild(timerContainerEl); - const pauseEl = timerContainerEl.createEl('button', { text: 'pause', cls: 'pause-button' }); - const stopEl = timerContainerEl.createEl('button', { text: 'stop', cls: 'stop-button' }); - const timerEl = timerContainerEl.createSpan({ text: this.formatTimeForTimer(seconds), attr: { 'data-percent': 100 } }); - let end = new Date(new Date().getTime() + (seconds * 1000)); - let interval; - let stop = () => { - var _a; - if (this.settings.timersTick) - (_a = this.timerAudio) === null || _a === void 0 ? void 0 : _a.stop(timerAudioId); - clearInterval(interval); - timerContainerEl.remove(); - }; - interval = setInterval(this.updateTimer.bind(this), 500, timerEl, seconds, end, stop, name); - let paused = false; - let remaining = null; - pauseEl.addEventListener('click', (ev) => { - var _a, _b; - if (paused) { - end = new Date(new Date().getTime() + remaining); - this.updateTimer(timerEl, seconds, end, stop, name); - interval = setInterval(this.updateTimer.bind(this), 500, timerEl, seconds, end, stop, name); - if (this.settings.timersTick) - (_a = this.timerAudio) === null || _a === void 0 ? void 0 : _a.play(timerAudioId); - pauseEl.setText('pause'); - pauseEl.className = 'pause-button'; - paused = false; - } - else { - clearInterval(interval); - remaining = end.getTime() - new Date().getTime(); - if (this.settings.timersTick) - (_b = this.timerAudio) === null || _b === void 0 ? void 0 : _b.pause(timerAudioId); - pauseEl.setText('resume'); - pauseEl.className = 'resume-button'; - paused = true; - } - }); - stopEl.addEventListener('click', () => stop()); - } - updateTimer(el, totalSeconds, end, stop, name) { - var _a; - const now = new Date(); - const time = (end.getTime() - now.getTime()) / 1000; - if (time <= 0) { - new obsidian.Notice(name ? `${name} timer has finished!` : `Timer has finished!`); - if (this.settings.timersRing) - (_a = this.alarmAudio) === null || _a === void 0 ? void 0 : _a.play(); - stop(); - } - el.setText(this.formatTimeForTimer(time)); - el.setAttr('data-percent', Math.floor((time / totalSeconds) * 100)); - } - formatTime(time, showSeconds = false) { - let seconds = Math.floor(time % 60); - let minutes = Math.floor(time / 60); - let hours = Math.floor(minutes / 60); - minutes = minutes % 60; - let result = ""; - if (hours > 0) - result += hours + " hours "; - if (minutes > 0) - result += minutes + " minutes "; - if (showSeconds && seconds > 0) - result += seconds + " seconds "; - return result; - } - formatTimeForTimer(time) { - let seconds = Math.floor(time % 60); - let minutes = Math.floor(time / 60); - let hours = Math.floor(minutes / 60); - minutes = minutes % 60; - let result = ""; - if (hours > 0) - result += hours; - if (hours > 0 && minutes >= 0) - result += ":"; - if (hours > 0 && minutes >= 0 && minutes < 10) - result += "0"; - if (minutes > 0) - result += minutes; - if (minutes > 0) - result += ":"; - if (minutes > 0 && seconds >= 0 && seconds < 10) - result += "0"; - if (seconds >= 0) - result += seconds; - return result; - } -} - -class CookLangSettings { - constructor() { - this.showImages = true; - this.showIngredientList = true; - this.showCookwareList = true; - this.showTimersList = false; - this.showTotalTime = true; - this.showTimersInline = true; - this.showQuantitiesInline = false; - this.timersTick = true; - this.timersRing = true; - } -} -class CookSettingsTab extends obsidian.PluginSettingTab { - constructor(app, plugin) { - super(app, plugin); - this.plugin = plugin; - } - display() { - let { containerEl } = this; - containerEl.empty(); - new obsidian.Setting(containerEl) - .setName('Preview Options') - .setHeading(); - new obsidian.Setting(containerEl) - .setName('Show images') - .setDesc('Show images in the recipe (see https://cooklang.org/docs/spec/#adding-pictures)') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.showImages) - .onChange((value) => { - this.plugin.settings.showImages = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Show ingredient list') - .setDesc('Show the list of ingredients at the top of the recipe') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.showIngredientList) - .onChange((value) => { - this.plugin.settings.showIngredientList = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Show cookware list') - .setDesc('Show the list of cookware at the top of the recipe') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.showCookwareList) - .onChange((value) => { - this.plugin.settings.showCookwareList = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Show quantities inline') - .setDesc('Show the ingredient quantities inline in the recipe method') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.showQuantitiesInline) - .onChange((value) => { - this.plugin.settings.showQuantitiesInline = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Show timers list') - .setDesc('Show the list of timers at the top of the recipe') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.showTimersList) - .onChange((value) => { - this.plugin.settings.showTimersList = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Inline interactive timers') - .setDesc('Allow clicking on a time in a recipe method to start a timer') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.showTimersInline) - .onChange((value) => { - this.plugin.settings.showTimersInline = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Show total time') - .setDesc('Show the total of all timers at the top of the recipe') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.showTotalTime) - .onChange((value) => { - this.plugin.settings.showTotalTime = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Running Timers Tick') - .setDesc('Play a ticking sound while a timer is running') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.timersTick) - .onChange((value) => { - this.plugin.settings.timersTick = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - new obsidian.Setting(containerEl) - .setName('Alarm When Timers End') - .setDesc('Play a ring sound when a running timer finishes') - .addToggle(toggle => toggle - .setValue(this.plugin.settings.timersRing) - .onChange((value) => { - this.plugin.settings.timersRing = value; - this.plugin.saveData(this.plugin.settings); - this.plugin.reloadCookViews(); - })); - } -} - -class CookPlugin extends obsidian.Plugin { - constructor() { - super(...arguments); - this.cookFileCreator = () => __awaiter(this, void 0, void 0, function* () { - var _a, _b; - let newFileFolderPath = null; - const newFileLocation = this.app.vault.getConfig('newFileLocation'); - if (!newFileLocation || newFileLocation === "root") { - newFileFolderPath = '/'; - } - else if (newFileLocation === "current") { - newFileFolderPath = (_b = (_a = this.app.workspace.getActiveFile()) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.path; - } - else { - newFileFolderPath = this.app.vault.getConfig('newFileFolderPath'); - } - if (!newFileFolderPath) - newFileFolderPath = '/'; - else if (!newFileFolderPath.endsWith('/')) - newFileFolderPath += '/'; - const originalPath = newFileFolderPath; - newFileFolderPath = newFileFolderPath + 'Untitled.cook'; - let i = 0; - while (this.app.vault.getAbstractFileByPath(newFileFolderPath)) { - newFileFolderPath = `${originalPath}Untitled ${++i}.cook`; - } - const newFile = yield this.app.vault.create(newFileFolderPath, ''); - return newFile; - }); - // function to create the view - this.cookViewCreator = (leaf) => { - return new CookView(leaf, this.settings); - }; - // this function provides the icon for the document - // I added a modification of the CookLang icon with no colours or shadows - this.addDocumentIcon = (extension) => { - obsidian.addIcon(`document-${extension}`, ` - - - - - - - `); - }; - } - onload() { - const _super = Object.create(null, { - onload: { get: () => super.onload } - }); - return __awaiter(this, void 0, void 0, function* () { - _super.onload.call(this); - this.settings = Object.assign(new CookLangSettings(), yield this.loadData()); - // register a custom icon - this.addDocumentIcon("cook"); - // register the view and extensions - this.registerView("cook", this.cookViewCreator); - this.registerExtensions(["cook"], "cook"); - this.addSettingTab(new CookSettingsTab(this.app, this)); - // commands: - // - Create new recipe - // - Create recipe in new pane - // - Convert markdown file to `.cook` - this.addCommand({ - id: "create-cook", - name: "Create new recipe", - callback: () => __awaiter(this, void 0, void 0, function* () { - const newFile = yield this.cookFileCreator(); - this.app.workspace.getLeaf().openFile(newFile); - }) - }); - this.addCommand({ - id: "create-cook-new-pane", - name: "Create recipe in new pane", - callback: () => __awaiter(this, void 0, void 0, function* () { - const newFile = yield this.cookFileCreator(); - yield this.app.workspace.getLeaf(true).openFile(newFile); - }) - }); - // register the convert to cook command - this.addCommand({ - id: "convert-to-cook", - name: "Convert markdown file to `.cook`", - checkCallback: (checking) => { - const file = this.app.workspace.getActiveFile(); - const isMd = file.extension === "md"; - if (checking) { - return isMd; - } - else if (isMd) { - // replace last instance of .md with .cook - this.app.vault.rename(file, file.path.replace(/\.md$/, ".cook")).then(() => { - this.app.workspace.activeLeaf.openFile(file); - }); - } - } - }); - }); - } - reloadCookViews() { - this.app.workspace.getLeavesOfType('cook').forEach(leaf => { - if (leaf.view instanceof CookView) { - leaf.view.settings = this.settings; - if (leaf.view.recipe) - leaf.view.renderPreview(leaf.view.recipe); - } - }); - } -} - -module.exports = CookPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9saWIvY29kZW1pcnJvci5qcyIsInNyYy9tb2RlL2Nvb2svY29vay5qcyIsIm5vZGVfbW9kdWxlcy9jb29rbGFuZy9kaXN0L2Nvb2tsYW5nLmpzIiwibm9kZV9tb2R1bGVzL2hvd2xlci9kaXN0L2hvd2xlci5qcyIsInNyYy9hbGFybS5tcDMiLCJzcmMvdGltZXIubXAzIiwic3JjL2Nvb2tWaWV3LnRzIiwic3JjL3NldHRpbmdzLnRzIiwic3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbInJlcXVpcmUkJDAiLCJnbG9iYWwiLCJUZXh0RmlsZVZpZXciLCJIb3dsIiwiS2V5bWFwIiwic2V0SWNvbiIsIlJlY2lwZSIsIlRGaWxlIiwiSW5ncmVkaWVudCIsIkNvb2t3YXJlIiwiVGltZXIiLCJOb3RpY2UiLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyIsIlBsdWdpbiIsImFkZEljb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF1REE7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMs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O0FBQ0E7QUFDQSxNQUFNLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7QUFDM0MsTUFBTSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVFLE1BQU0sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztBQUNyQyxNQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUM7QUFDcEMsTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO0FBQ25DLE1BQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUMvQixNQUFNLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ3RHLE1BQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUMvQixNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7QUFDcEMsTUFBTSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUMzRCxNQUFNLElBQUksQ0FBQyxJQUFJLEdBQUc7QUFDbEIsUUFBUSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLO0FBQzVELFFBQVEsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSTtBQUM5RCxRQUFRLGVBQWUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLEtBQUs7QUFDdkYsT0FBTyxDQUFDO0FBQ1I7QUFDQTtBQUNBLE1BQU0sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFDekIsTUFBTSxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztBQUMvQixNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDM0IsTUFBTSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQzdCO0FBQ0E7QUFDQSxNQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNuRCxNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0RCxNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0RCxNQUFNLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNyRSxNQUFNLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNyRSxNQUFNLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN6RCxNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0RCxNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0RCxNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0RCxNQUFNLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM1RCxNQUFNLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFB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QUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDOUUsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQy9CLFdBQVc7QUFDWCxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0EsTUFBTSxPQUFPLElBQUksQ0FBQztBQUNsQixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxFQUFFLFNBQVMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDbEMsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFDdEI7QUFDQTtBQUNBLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoQztBQUNBLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQUssRUFBRSxTQUFTLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFO0FBQ3BDLE1BQU0sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLE1BQU0sSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztBQUN2QztBQUNBO0FBQ0EsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0M7QUFDQSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxF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QUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFDcEI7QUFDQTtBQUNBLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtBQUN6QyxNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkQ7QUFDQSxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFO0FBQy9CLE1BQU0sSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUI7QUFDQSxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO0FBQzlELFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQy9GLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQy9GLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxD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R0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQztBQUNoQyxNQUFNLElBQUksQ0FBQyxXQUFXLEdBQUc7QUFDekIsUUFBUSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsY0FBYyxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUc7QUFDeEYsUUFBUSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsY0FBYyxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUc7QUFDeEYsUUFBUSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsYUFBYSxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUM7QUFDbkYsUUFBUSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsYUFBYSxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLFNBQVM7QUFDM0YsUUFBUSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxHQUFHLEtBQUs7QUFDakYsUUFBUSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsWUFBWSxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLE1BQU07QUFDckYsUUFBUSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUM7QUFDN0UsUUFBUSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsYUFBYSxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUM7QUFDbkYsT0FBTyxDQUFDO0FBQ1I7QUFDQTtBQUNBLE1BQU0sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzVELE1BQU0sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ25ELE1BQU0sSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzNFO0FBQ0E7QUFDQSxNQUFNLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEMsS0FBSyxDQUFDO0FBQ04sR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRTtBQUM1QyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztBQUNwQjtBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUN6QixNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO0FBQ2xDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkIsUUFBUSxLQUFLLEVBQUUsUUFBUTtBQUN2QixRQUFRLE1BQU0sRUFBRSxXQUFXO0FBQzNCLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDL0IsU0FBUztBQUNULE9BQU8sQ0FBQyxDQUFDO0FBQ1Q7QUFDQSxNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxJQUFJLFVBQVUsR0FBRyxDQUFDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsS0FBSyxXQUFXLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQztBQUNuRztBQUNBO0FBQ0EsSUFBSSxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtBQUNuQztBQUNBLE1BQU0sSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7QUFDbkMsUUFBUSxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUMzQixRQUFRLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLE9BQU8sTUFBTTtBQUNiLFFBQVEsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQzVCLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNwQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3JDO0FBQ0EsTUFBTSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsTUFBTSxJQUFJLEtBQUssRUFBRTtBQUNqQixRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO0FBQ3JDLFVBQVUsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDOUIsVUFBVSxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuQztBQUNBLFVBQVUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO0FBQzNCO0FBQ0EsWUFBWSxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDMUQ7QUFDQTtBQUNBLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUN0RCxjQUFjLFdBQVcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDN0MsYUFBYTtBQUNiO0FBQ0EsWUFBWSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7QUFDMUMsY0FBYyxJQUFJLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO0FBQ2xFLGdCQUFnQixLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDcEYsZ0JBQWdCLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNsRixnQkFBZ0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xGLGVBQWUsTUFBTTtBQUNyQixnQkFBZ0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyRCxlQUFlO0FBQ2YsYUFBYSxNQUFNO0FBQ25CLGNBQWMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzVFLGFBQWE7QUFDYixXQUFXO0FBQ1g7QUFDQSxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQyxTQUFTLE1BQU07QUFDZixVQUFVLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUMvQixTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxJQUFJLENBQUM7QUFDaEIsR0FBRyxDQUFDO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtBQUM3QyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztBQUNwQjtBQUNBO0FBQ0EsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUN6QixNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQ2xCLEtBQUs7QUFDTDtBQUNBO0FBQ0EsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO0FBQ2xDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkIsUUFBUSxLQUFLLEVBQUUsS0FBSztBQUNwQixRQUFRLE1BQU0sRUFBRSxXQUFXO0FBQzNCLFVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNoQyxTQUFTO0FBQ1QsT0FBTyxDQUFDLENBQUM7QUFDVDtBQUNBLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUMzQztBQUNBO0FBQ0EsSUFBSSxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtBQUNuQztBQUNBLE1BQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7QUFDakMsUUFBUSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM5QixPQUFPLE1BQU07QUFDYixRQUFRLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztBQUN6QixPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDcEMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNyQztBQUNBLE1BQU0sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQztBQUNBLE1BQU0sSUFBSSxLQUFLLEVBQUU7QUFDakIsUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtBQUNuQyxVQUFVLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pDO0FBQ0EsVUFBVSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7QUFDM0I7QUFDQSxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ3JELGNBQWMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM1QyxhQUFhO0FBQ2I7QUFDQSxZQUFZLElBQUksT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7QUFDaEUsY0FBYyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDaEYsY0FBYyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDaEYsY0FBYyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDaEYsYUFBYSxNQUFNO0FBQ25CLGNBQWMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqRCxhQUFhO0FBQ2IsV0FBVztBQUNYO0FBQ0EsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkMsU0FBUyxNQUFNO0FBQ2YsVUFBVSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDNUIsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLEdBQUcsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0FBQ3JELElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BCO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO0FBQ3pCLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7QUFDbEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztBQUN2QixRQUFRLEtBQUssRUFBRSxhQUFhO0FBQzVCLFFBQVEsTUFBTSxFQUFFLFdBQVc7QUFDM0IsVUFBVSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLFNBQVM7QUFDVCxPQUFPLENBQUMsQ0FBQztBQUNUO0FBQ0EsTUFBTSxPQUFPLElBQUksQ0FBQztBQUNsQixLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNEO0FBQ0E7QUFDQSxJQUFJLElBQUksT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFO0FBQ25DO0FBQ0EsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtBQUNqQyxRQUFRLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLE9BQU8sTUFBTTtBQUNiLFFBQVEsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQ2pDLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNwQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3JDO0FBQ0EsTUFBTSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsTUFBTSxJQUFJLEtBQUssRUFBRTtBQUNqQixRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFO0FBQ25DLFVBQVUsS0FBSyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekM7QUFDQSxVQUFVLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtBQUMzQjtBQUNBLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDaEM7QUFDQSxjQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO0FBQy9CLGdCQUFnQixLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkQsZUFBZTtBQUNmO0FBQ0EsY0FBYyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzVDLGFBQWE7QUFDYjtBQUNBLFlBQVksSUFBSSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtBQUNuRSxjQUFjLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNuRixjQUFjLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNuRixjQUFjLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNuRixhQUFhLE1BQU07QUFDbkIsY0FBYyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BELGFBQWE7QUFDYixXQUFXO0FBQ1g7QUFDQSxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQyxTQUFTLE1BQU07QUFDZixVQUFVLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQztBQUNwQyxTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxJQUFJLENBQUM7QUFDaEIsR0FBRyxDQUFDO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLFdBQVc7QUFDekMsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFDcEIsSUFBSSxJQUFJLElBQUksR0FBRyxTQUFTLENBQUM7QUFDekIsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDO0FBQ3JCO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO0FBQ3pCLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDM0I7QUFDQSxNQUFNLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztBQUM5QixLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNsQyxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO0FBQ3ZDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQjtBQUNBO0FBQ0EsUUFBUSxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtBQUN2QyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO0FBQzdCLFlBQVksQ0FBQyxDQUFDLFVBQVUsR0FBRztBQUMzQixjQUFjLGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYztBQUM5QyxjQUFjLGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYztBQUM5QyxjQUFjLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUM1QyxjQUFjLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUM1QyxjQUFjLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztBQUN4QyxjQUFjLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztBQUN4QyxjQUFjLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUM1QyxjQUFjLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWTtBQUMxQyxhQUFhLENBQUM7QUFDZCxXQUFXO0FBQ1g7QUFDQSxVQUFVLElBQUksQ0FBQyxXQUFXLEdBQUc7QUFDN0IsWUFBWSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsS0FBSyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWU7QUFDbkksWUFBWSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsS0FBSyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWU7QUFDbkksWUFBWSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWM7QUFDL0gsWUFBWSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWM7QUFDL0gsWUFBWSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsS0FBSyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVk7QUFDdkgsWUFBWSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsS0FBSyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVk7QUFDdkgs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 diff --git a/.obsidian/plugins/cooklang-obsidian/manifest.json b/.obsidian/plugins/cooklang-obsidian/manifest.json deleted file mode 100644 index f767d8c1..00000000 --- a/.obsidian/plugins/cooklang-obsidian/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "cooklang-obsidian", - "name": "CookLang Editor", - "author": "death_au", - "authorUrl": "https://github.com/deathau", - "description": "Edit and display CookLang recipes in Obsidian", - "isDesktopOnly": false, - "version": "0.3.0", - "minAppVersion": "0.10.12" -} \ No newline at end of file diff --git a/.obsidian/plugins/cooklang-obsidian/styles.css b/.obsidian/plugins/cooklang-obsidian/styles.css deleted file mode 100644 index eab95041..00000000 --- a/.obsidian/plugins/cooklang-obsidian/styles.css +++ /dev/null @@ -1,102 +0,0 @@ -.workspace-leaf-content[data-type=cook] .view-content { - font-family: inherit; -} -.workspace-leaf-content[data-type=cook] .cook-preview-view, -.workspace-leaf-content[data-type=cook] .cook-source-view { - max-width: 700px; - margin-left: auto; - margin-right: auto; -} -.workspace-leaf-content[data-type=cook] .main-image { - width: 100vw; - aspect-ratio: 1.618; - object-fit: cover; -} -.workspace-leaf-content[data-type=cook] .method-image { - display: block; - margin-top: 1em; - max-width: 100%; - max-height: 16vw; -} -.workspace-leaf-content[data-type=cook] ul.ingredients, -.workspace-leaf-content[data-type=cook] ul.cookware { - column-count: 2; -} -.workspace-leaf-content[data-type=cook] ol.method { - margin-left: 0; - padding-right: 0; - list-style-type: none; - padding: 0; -} -.workspace-leaf-content[data-type=cook] ol.method > li { - counter-increment: step-counter; -} -.workspace-leaf-content[data-type=cook] ol.method > li::before { - content: "Step " counter(step-counter); - font-weight: 600; - display: block; - font-size: 1.17em; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; -} -.workspace-leaf-content[data-type=cook] span.time, -.workspace-leaf-content[data-type=cook] span.ingredient, -.workspace-leaf-content[data-type=cook] span.cookware { - font-weight: 600; -} -.workspace-leaf-content[data-type=cook] .cm-ingredient, -.workspace-leaf-content[data-type=cook] .cm-cookware { - color: var(--text-accent); - font-weight: 600; -} -.workspace-leaf-content[data-type=cook] .cm-formatting { - color: var(--text-faint); -} -.workspace-leaf-content[data-type=cook] .cm-measurement, -.workspace-leaf-content[data-type=cook] .cm-timer, -.workspace-leaf-content[data-type=cook] .cm-unit { - color: var(--text-muted); -} -.workspace-leaf-content[data-type=cook] .cm-metadata, -.workspace-leaf-content[data-type=cook] .cm-metadata-key { - font-family: var(--font-monospace); -} -.workspace-leaf-content[data-type=cook] .cm-metadata-key { - font-weight: 600; -} -.workspace-leaf-content[data-type=cook] .countdown { - margin-left: 12px; -} -.workspace-leaf-content[data-type=cook] .countdown .resume-button + button + span { - color: var(--text-faint); -} -.workspace-leaf-content[data-type=cook] .countdown .pause-button, -.workspace-leaf-content[data-type=cook] .countdown .resume-button, -.workspace-leaf-content[data-type=cook] .countdown .stop-button { - font-size: 0; - padding: 6px; -} -.workspace-leaf-content[data-type=cook] .countdown .pause-button::before { - --svg:url("data:image/svg+xml,"); -} -.workspace-leaf-content[data-type=cook] .countdown .resume-button::before { - --svg:url("data:image/svg+xml,"); -} -.workspace-leaf-content[data-type=cook] .countdown .stop-button::before { - --svg:url("data:image/svg+xml,"); -} -.workspace-leaf-content[data-type=cook] .countdown .pause-button::before, -.workspace-leaf-content[data-type=cook] .countdown .resume-button::before, -.workspace-leaf-content[data-type=cook] .countdown .stop-button::before { - content: ""; - background-color: var(--text-normal); - -webkit-mask: var(--svg); - mask: var(--svg); - -webkit-mask-size: cover; - mask-size: cover; - display: inline-block; - height: 16px; - width: 16px; -} \ No newline at end of file diff --git a/.obsidian/plugins/customizable-page-header-buttons/data.json b/.obsidian/plugins/customizable-page-header-buttons/data.json index 1fff9c90..90524d3e 100644 --- a/.obsidian/plugins/customizable-page-header-buttons/data.json +++ b/.obsidian/plugins/customizable-page-header-buttons/data.json @@ -1,11 +1,5 @@ { "enabledButtons": [ - { - "id": "rss-reader:rss-refresh", - "icon": "feather-rss", - "name": "RSS Reader: Refresh feeds", - "showButtons": "both" - }, { "id": "templater-obsidian:insert-templater", "icon": "feather-feather", @@ -23,6 +17,12 @@ "icon": "feather-map-pin", "name": "Map View: Convert Selection to Geolocation", "showButtons": "both" + }, + { + "id": "weather-fetcher:weather-insert", + "icon": "weather", + "name": "Weather Fetcher: Insert current weather", + "showButtons": "both" } ], "desktop": false diff --git a/.obsidian/plugins/fantasy-calendar/data.json b/.obsidian/plugins/fantasy-calendar/data.json index bb459cff..d2a2e70b 100644 --- a/.obsidian/plugins/fantasy-calendar/data.json +++ b/.obsidian/plugins/fantasy-calendar/data.json @@ -724,7 +724,12 @@ "month": 0, "day": 30 }, - "category": "ID_3b8a489a19da" + "category": "ID_3b8a489a19da", + "end": { + "year": 2022, + "month": 0, + "day": 30 + } }, { "id": "ID_7be9fa4a18db", @@ -1004,12 +1009,7 @@ "month": 1, "day": 5 }, - "category": "ID_3b8a489a19da", - "end": { - "year": 2022, - "month": 1, - "day": 5 - } + "category": "ID_3b8a489a19da" }, { "id": "ID_389b5acb89b8", diff --git a/.obsidian/plugins/longform/main.js b/.obsidian/plugins/longform/main.js index 70065726..23ff88fa 100644 --- a/.obsidian/plugins/longform/main.js +++ b/.obsidian/plugins/longform/main.js @@ -32,5293 +32,9795 @@ function __awaiter(thisArg, _arguments, P, generator) { }); } -function noop() { } -function assign(tar, src) { - // @ts-ignore - for (const k in src) - tar[k] = src[k]; - return tar; -} -function run(fn) { - return fn(); -} -function blank_object() { - return Object.create(null); -} -function run_all(fns) { - fns.forEach(run); +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); } -function is_function(thing) { - return typeof thing === 'function'; + +var isObject_1 = isObject; + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function createCommonjsModule(fn) { + var module = { exports: {} }; + return fn(module, module.exports), module.exports; } -function safe_not_equal(a, b) { - return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + +/** Detect free variable `global` from Node.js. */ + +var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; + +var _freeGlobal = freeGlobal; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = _freeGlobal || freeSelf || Function('return this')(); + +var _root = root; + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function() { + return _root.Date.now(); +}; + +var now_1 = now; + +/** Used to match a single whitespace character. */ +var reWhitespace = /\s/; + +/** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ +function trimmedEndIndex(string) { + var index = string.length; + + while (index-- && reWhitespace.test(string.charAt(index))) {} + return index; } -function is_empty(obj) { - return Object.keys(obj).length === 0; + +var _trimmedEndIndex = trimmedEndIndex; + +/** Used to match leading whitespace. */ +var reTrimStart = /^\s+/; + +/** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ +function baseTrim(string) { + return string + ? string.slice(0, _trimmedEndIndex(string) + 1).replace(reTrimStart, '') + : string; } -function subscribe(store, ...callbacks) { - if (store == null) { - return noop; + +var _baseTrim = baseTrim; + +/** Built-in value references. */ +var Symbol$1 = _root.Symbol; + +var _Symbol = Symbol$1; + +/** Used for built-in method references. */ +var objectProto$f = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$c = objectProto$f.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString$1 = objectProto$f.toString; + +/** Built-in value references. */ +var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty$c.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; + + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; } - const unsub = store.subscribe(...callbacks); - return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; + } + return result; } -function get_store_value(store) { - let value; - subscribe(store, _ => value = _)(); - return value; + +var _getRawTag = getRawTag; + +/** Used for built-in method references. */ +var objectProto$e = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto$e.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); } -function component_subscribe(component, store, callback) { - component.$$.on_destroy.push(subscribe(store, callback)); + +var _objectToString = objectToString; + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? _getRawTag(value) + : _objectToString(value); } -function create_slot(definition, ctx, $$scope, fn) { - if (definition) { - const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); - return definition[0](slot_ctx); - } + +var _baseGetTag = baseGetTag; + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; } -function get_slot_context(definition, ctx, $$scope, fn) { - return definition[1] && fn - ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) - : $$scope.ctx; + +var isObjectLike_1 = isObjectLike; + +/** `Object#toString` result references. */ +var symbolTag$3 = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike_1(value) && _baseGetTag(value) == symbolTag$3); } -function get_slot_changes(definition, $$scope, dirty, fn) { - if (definition[2] && fn) { - const lets = definition[2](fn(dirty)); - if ($$scope.dirty === undefined) { - return lets; - } - if (typeof lets === 'object') { - const merged = []; - const len = Math.max($$scope.dirty.length, lets.length); - for (let i = 0; i < len; i += 1) { - merged[i] = $$scope.dirty[i] | lets[i]; - } - return merged; - } - return $$scope.dirty | lets; - } - return $$scope.dirty; + +var isSymbol_1 = isSymbol; + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol_1(value)) { + return NAN; + } + if (isObject_1(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject_1(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = _baseTrim(value); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); } -function update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) { - const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn); - if (slot_changes) { - const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); - slot.p(slot_context, slot_changes); + +var toNumber_1 = toNumber; + +/** Error message constants. */ +var FUNC_ERROR_TEXT$1 = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax$1 = Math.max, + nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce$1(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT$1); + } + wait = toNumber_1(wait) || 0; + if (isObject_1(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax$1(toNumber_1(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now_1(); + if (shouldInvoke(time)) { + return trailingEdge(time); } -} -function exclude_internal_props(props) { - const result = {}; - for (const k in props) - if (k[0] !== '$') - result[k] = props[k]; + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; return result; -} -function set_store_value(store, ret, value = ret) { - store.set(value); - return ret; -} + } -function append(target, node) { - target.appendChild(node); -} -function insert(target, node, anchor) { - target.insertBefore(node, anchor || null); -} -function detach(node) { - node.parentNode.removeChild(node); -} -function destroy_each(iterations, detaching) { - for (let i = 0; i < iterations.length; i += 1) { - if (iterations[i]) - iterations[i].d(detaching); + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); } -} -function element(name) { - return document.createElement(name); -} -function text(data) { - return document.createTextNode(data); -} -function space() { - return text(' '); -} -function empty() { - return text(''); -} -function listen(node, event, handler, options) { - node.addEventListener(event, handler, options); - return () => node.removeEventListener(event, handler, options); -} -function prevent_default(fn) { - return function (event) { - event.preventDefault(); - // @ts-ignore - return fn.call(this, event); - }; -} -function attr(node, attribute, value) { - if (value == null) - node.removeAttribute(attribute); - else if (node.getAttribute(attribute) !== value) - node.setAttribute(attribute, value); -} -function children(element) { - return Array.from(element.childNodes); -} -function set_data(text, data) { - data = '' + data; - if (text.wholeText !== data) - text.data = data; -} -function set_input_value(input, value) { - input.value = value == null ? '' : value; -} -function select_option(select, value) { - for (let i = 0; i < select.options.length; i += 1) { - const option = select.options[i]; - if (option.__value === value) { - option.selected = true; - return; - } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now_1()); + } + + function debounced() { + var time = now_1(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } } -} -function select_value(select) { - const selected_option = select.querySelector(':checked') || select.options[0]; - return selected_option && selected_option.__value; -} -function toggle_class(element, name, toggle) { - element.classList[toggle ? 'add' : 'remove'](name); -} -function custom_event(type, detail) { - const e = document.createEvent('CustomEvent'); - e.initCustomEvent(type, false, false, detail); - return e; + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; } -let current_component; -function set_current_component(component) { - current_component = component; -} -function get_current_component() { - if (!current_component) - throw new Error('Function called outside component initialization'); - return current_component; -} -function onMount(fn) { - get_current_component().$$.on_mount.push(fn); -} -function onDestroy(fn) { - get_current_component().$$.on_destroy.push(fn); -} -function createEventDispatcher() { - const component = get_current_component(); - return (type, detail) => { - const callbacks = component.$$.callbacks[type]; - if (callbacks) { - // TODO are there situations where events could be dispatched - // in a server (non-DOM) environment? - const event = custom_event(type, detail); - callbacks.slice().forEach(fn => { - fn.call(component, event); - }); - } - }; -} -function setContext(key, context) { - get_current_component().$$.context.set(key, context); -} -function getContext(key) { - return get_current_component().$$.context.get(key); -} +var debounce_1 = debounce$1; -const dirty_components = []; -const binding_callbacks = []; -const render_callbacks = []; -const flush_callbacks = []; -const resolved_promise = Promise.resolve(); -let update_scheduled = false; -function schedule_update() { - if (!update_scheduled) { - update_scheduled = true; - resolved_promise.then(flush); - } +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +var isArray_1 = isArray; + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray_1(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol_1(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); } -function add_render_callback(fn) { - render_callbacks.push(fn); -} -function add_flush_callback(fn) { - flush_callbacks.push(fn); -} -let flushing = false; -const seen_callbacks = new Set(); -function flush() { - if (flushing) - return; - flushing = true; - do { - // first, call beforeUpdate functions - // and update components - for (let i = 0; i < dirty_components.length; i += 1) { - const component = dirty_components[i]; - set_current_component(component); - update(component.$$); - } - set_current_component(null); - dirty_components.length = 0; - while (binding_callbacks.length) - binding_callbacks.pop()(); - // then, once components are updated, call - // afterUpdate functions. This may cause - // subsequent updates... - for (let i = 0; i < render_callbacks.length; i += 1) { - const callback = render_callbacks[i]; - if (!seen_callbacks.has(callback)) { - // ...so guard against infinite loops - seen_callbacks.add(callback); - callback(); - } - } - render_callbacks.length = 0; - } while (dirty_components.length); - while (flush_callbacks.length) { - flush_callbacks.pop()(); - } - update_scheduled = false; - flushing = false; - seen_callbacks.clear(); + +var _isKey = isKey; + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag$2 = '[object Function]', + genTag$1 = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject_1(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = _baseGetTag(value); + return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag; } -function update($$) { - if ($$.fragment !== null) { - $$.update(); - run_all($$.before_update); - const dirty = $$.dirty; - $$.dirty = [-1]; - $$.fragment && $$.fragment.p($$.ctx, dirty); - $$.after_update.forEach(add_render_callback); - } + +var isFunction_1 = isFunction; + +/** Used to detect overreaching core-js shims. */ +var coreJsData = _root['__core-js_shared__']; + +var _coreJsData = coreJsData; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); } -const outroing = new Set(); -let outros; -function group_outros() { - outros = { - r: 0, - c: [], - p: outros // parent group - }; + +var _isMasked = isMasked; + +/** Used for built-in method references. */ +var funcProto$2 = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString$2 = funcProto$2.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString$2.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; } -function check_outros() { - if (!outros.r) { - run_all(outros.c); - } - outros = outros.p; + +var _toSource = toSource; + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto$1 = Function.prototype, + objectProto$d = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString$1 = funcProto$1.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty$b = objectProto$d.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString$1.call(hasOwnProperty$b).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject_1(value) || _isMasked(value)) { + return false; + } + var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; + return pattern.test(_toSource(value)); } -function transition_in(block, local) { - if (block && block.i) { - outroing.delete(block); - block.i(local); - } + +var _baseIsNative = baseIsNative; + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; } -function transition_out(block, local, detach, callback) { - if (block && block.o) { - if (outroing.has(block)) - return; - outroing.add(block); - outros.c.push(() => { - outroing.delete(block); - if (callback) { - if (detach) - block.d(1); - callback(); - } - }); - block.o(local); - } + +var _getValue = getValue; + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = _getValue(object, key); + return _baseIsNative(value) ? value : undefined; } -const globals = (typeof window !== 'undefined' - ? window - : typeof globalThis !== 'undefined' - ? globalThis - : global); -function outro_and_destroy_block(block, lookup) { - transition_out(block, 1, 1, () => { - lookup.delete(block.key); - }); -} -function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { - let o = old_blocks.length; - let n = list.length; - let i = o; - const old_indexes = {}; - while (i--) - old_indexes[old_blocks[i].key] = i; - const new_blocks = []; - const new_lookup = new Map(); - const deltas = new Map(); - i = n; - while (i--) { - const child_ctx = get_context(ctx, list, i); - const key = get_key(child_ctx); - let block = lookup.get(key); - if (!block) { - block = create_each_block(key, child_ctx); - block.c(); - } - else if (dynamic) { - block.p(child_ctx, dirty); - } - new_lookup.set(key, new_blocks[i] = block); - if (key in old_indexes) - deltas.set(key, Math.abs(i - old_indexes[key])); - } - const will_move = new Set(); - const did_move = new Set(); - function insert(block) { - transition_in(block, 1); - block.m(node, next); - lookup.set(block.key, block); - next = block.first; - n--; - } - while (o && n) { - const new_block = new_blocks[n - 1]; - const old_block = old_blocks[o - 1]; - const new_key = new_block.key; - const old_key = old_block.key; - if (new_block === old_block) { - // do nothing - next = new_block.first; - o--; - n--; - } - else if (!new_lookup.has(old_key)) { - // remove old block - destroy(old_block, lookup); - o--; - } - else if (!lookup.has(new_key) || will_move.has(new_key)) { - insert(new_block); - } - else if (did_move.has(old_key)) { - o--; - } - else if (deltas.get(new_key) > deltas.get(old_key)) { - did_move.add(new_key); - insert(new_block); - } - else { - will_move.add(old_key); - o--; - } - } - while (o--) { - const old_block = old_blocks[o]; - if (!new_lookup.has(old_block.key)) - destroy(old_block, lookup); - } - while (n) - insert(new_blocks[n - 1]); - return new_blocks; +var _getNative = getNative; + +/* Built-in method references that are verified to be native. */ +var nativeCreate = _getNative(Object, 'create'); + +var _nativeCreate = nativeCreate; + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; + this.size = 0; } -function bind(component, name, callback) { - const index = component.$$.props[name]; - if (index !== undefined) { - component.$$.bound[index] = callback; - callback(component.$$.ctx[index]); - } -} -function create_component(block) { - block && block.c(); -} -function mount_component(component, target, anchor, customElement) { - const { fragment, on_mount, on_destroy, after_update } = component.$$; - fragment && fragment.m(target, anchor); - if (!customElement) { - // onMount happens before the initial afterUpdate - add_render_callback(() => { - const new_on_destroy = on_mount.map(run).filter(is_function); - if (on_destroy) { - on_destroy.push(...new_on_destroy); - } - else { - // Edge case - component was destroyed immediately, - // most likely as a result of a binding initialising - run_all(new_on_destroy); - } - component.$$.on_mount = []; - }); - } - after_update.forEach(add_render_callback); -} -function destroy_component(component, detaching) { - const $$ = component.$$; - if ($$.fragment !== null) { - run_all($$.on_destroy); - $$.fragment && $$.fragment.d(detaching); - // TODO null out other refs, including component.$$ (but need to - // preserve final state?) - $$.on_destroy = $$.fragment = null; - $$.ctx = []; - } -} -function make_dirty(component, i) { - if (component.$$.dirty[0] === -1) { - dirty_components.push(component); - schedule_update(); - component.$$.dirty.fill(0); - } - component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); -} -function init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) { - const parent_component = current_component; - set_current_component(component); - const $$ = component.$$ = { - fragment: null, - ctx: null, - // state - props, - update: noop, - not_equal, - bound: blank_object(), - // lifecycle - on_mount: [], - on_destroy: [], - on_disconnect: [], - before_update: [], - after_update: [], - context: new Map(parent_component ? parent_component.$$.context : options.context || []), - // everything else - callbacks: blank_object(), - dirty, - skip_bound: false - }; - let ready = false; - $$.ctx = instance - ? instance(component, options.props || {}, (i, ret, ...rest) => { - const value = rest.length ? rest[0] : ret; - if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { - if (!$$.skip_bound && $$.bound[i]) - $$.bound[i](value); - if (ready) - make_dirty(component, i); - } - return ret; - }) - : []; - $$.update(); - ready = true; - run_all($$.before_update); - // `false` as a special case of no DOM component - $$.fragment = create_fragment ? create_fragment($$.ctx) : false; - if (options.target) { - if (options.hydrate) { - const nodes = children(options.target); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - $$.fragment && $$.fragment.l(nodes); - nodes.forEach(detach); - } - else { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - $$.fragment && $$.fragment.c(); - } - if (options.intro) - transition_in(component.$$.fragment); - mount_component(component, options.target, options.anchor, options.customElement); - flush(); - } - set_current_component(parent_component); -} +var _hashClear = hashClear; + /** - * Base class for Svelte components. Used when dev=false. + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ -class SvelteComponent { - $destroy() { - destroy_component(this, 1); - this.$destroy = noop; - } - $on(type, callback) { - const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); - callbacks.push(callback); - return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) - callbacks.splice(index, 1); - }; - } - $set($$props) { - if (this.$$set && !is_empty($$props)) { - this.$$.skip_bound = true; - this.$$set($$props); - this.$$.skip_bound = false; - } - } +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; } -const subscriber_queue = []; +var _hashDelete = hashDelete; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto$c = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$a = objectProto$c.hasOwnProperty; + /** - * Creates a `Readable` store that allows reading by subscription. - * @param value initial value - * @param {StartStopNotifier}start start and stop notifications for subscriptions + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. */ -function readable(value, start) { - return { - subscribe: writable(value, start).subscribe - }; +function hashGet(key) { + var data = this.__data__; + if (_nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? undefined : result; + } + return hasOwnProperty$a.call(data, key) ? data[key] : undefined; } + +var _hashGet = hashGet; + +/** Used for built-in method references. */ +var objectProto$b = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$9 = objectProto$b.hasOwnProperty; + /** - * Create a `Writable` store that allows both updating and reading by subscription. - * @param {*=}value initial value - * @param {StartStopNotifier=}start start and stop notifications for subscriptions - */ -function writable(value, start = noop) { - let stop; - const subscribers = []; - function set(new_value) { - if (safe_not_equal(value, new_value)) { - value = new_value; - if (stop) { // store is ready - const run_queue = !subscriber_queue.length; - for (let i = 0; i < subscribers.length; i += 1) { - const s = subscribers[i]; - s[1](); - subscriber_queue.push(s, value); - } - if (run_queue) { - for (let i = 0; i < subscriber_queue.length; i += 2) { - subscriber_queue[i][0](subscriber_queue[i + 1]); - } - subscriber_queue.length = 0; - } - } - } - } - function update(fn) { - set(fn(value)); - } - function subscribe(run, invalidate = noop) { - const subscriber = [run, invalidate]; - subscribers.push(subscriber); - if (subscribers.length === 1) { - stop = start(set) || noop; - } - run(value); - return () => { - const index = subscribers.indexOf(subscriber); - if (index !== -1) { - subscribers.splice(index, 1); - } - if (subscribers.length === 0) { - stop(); - stop = null; - } - }; - } - return { set, update, subscribe }; -} -function derived(stores, fn, initial_value) { - const single = !Array.isArray(stores); - const stores_array = single - ? [stores] - : stores; - const auto = fn.length < 2; - return readable(initial_value, (set) => { - let inited = false; - const values = []; - let pending = 0; - let cleanup = noop; - const sync = () => { - if (pending) { - return; - } - cleanup(); - const result = fn(single ? values[0] : values, set); - if (auto) { - set(result); - } - else { - cleanup = is_function(result) ? result : noop; - } - }; - const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { - values[i] = value; - pending &= ~(1 << i); - if (inited) { - sync(); - } - }, () => { - pending |= (1 << i); - })); - inited = true; - sync(); - return function stop() { - run_all(unsubscribers); - cleanup(); - }; - }); + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$9.call(data, key); } -const ICON_NAME = "longform"; -const ICON_SVG = ''; - -const LONGFORM_CURRENT_PLUGIN_DATA_VERSION = 1; -const LONGFORM_CURRENT_INDEX_VERSION = 1; -var ProjectLoadError; -(function (ProjectLoadError) { - ProjectLoadError[ProjectLoadError["None"] = 0] = "None"; - ProjectLoadError["MissingMetadata"] = "This project\u2019s metadata is either missing or invalid. Please check its index file. If all else fails, you can reset all project tracking in settings and re-mark folders as Longform projects."; -})(ProjectLoadError || (ProjectLoadError = {})); -const DEFAULT_SETTINGS = { - version: LONGFORM_CURRENT_PLUGIN_DATA_VERSION, - projects: {}, - selectedProject: null, - selectedDraft: null, -}; - -// Writable stores -const initialized = writable(false); -const pluginSettings = writable(DEFAULT_SETTINGS); -const projectMetadata = writable({}); -const currentProjectPath = writable(null); -const currentDraftPath = writable(null); -const activeFile = writable(null); -// Derived stores -const projects = derived([pluginSettings, projectMetadata], ([$pluginSettings, $projectMetadata]) => { - const p = {}; - Object.keys($pluginSettings.projects).forEach((projectPath) => { - if ($projectMetadata[projectPath]) { - p[projectPath] = Object.assign(Object.assign(Object.assign({}, $pluginSettings.projects[projectPath]), $projectMetadata[projectPath]), { error: ProjectLoadError.None }); - } - else { - p[projectPath] = Object.assign(Object.assign({}, $pluginSettings.projects[projectPath]), { version: -1, drafts: [], error: ProjectLoadError.MissingMetadata }); - } - }); - return p; -}); -const currentProject = derived([projects, currentProjectPath], ([$projects, $currentProjectPath]) => { - const project = $projects[$currentProjectPath]; - return project || null; -}); -const currentDraft = derived([currentProject, currentDraftPath], ([$currentProject, $currentDraftPath]) => { - if (!$currentProject || !$currentProject.drafts || !$currentDraftPath) { - return null; - } - return ($currentProject.drafts.find((d) => d.folder === $currentDraftPath) || null); -}); - -function compile(vault, projectPath, draftName, targetPath, options) { - return __awaiter(this, void 0, void 0, function* () { - // Grab draft path and metadata - const projectSettings = get_store_value(pluginSettings).projects[projectPath]; - if (!projectSettings) { - console.error(`[Longform] No tracked project at ${projectPath} exists for compilation.`); - return; - } - const scenePath = (scene) => obsidian.normalizePath(`${projectPath}/${projectSettings.draftsPath}/${draftName}/${scene}.md`); - const draftMetadata = get_store_value(projectMetadata)[projectPath].drafts.find((d) => d.folder === draftName); - if (!draftMetadata) { - console.error(`[Longform] No draft named ${draftName} exists in ${projectPath} for compilation.`); - return; - } - let result = ""; - const report = (status, complete) => { - console.log(`[Longform] ${status}`); - options.reportProgress(status, complete); - }; - for (const scene of draftMetadata.scenes) { - const path = scenePath(scene); - const sceneContents = yield vault.adapter.read(path); - report(`Compiling ${path}…`, false); - if (options.includeHeaders) { - result += `# ${scene}\n\n`; - } - result += `${sceneContents}\n\n`; - } - const finalTarget = targetPath.endsWith(".md") - ? targetPath - : targetPath + ".md"; - report(`Writing compile result to ${finalTarget}`, false); - yield vault.adapter.write(finalTarget, result); - report(`Compiled ${draftName} to ${finalTarget}`, true); - }); -} +var _hashHas = hashHas; -/* src/view/compile/CompileView.svelte generated by Svelte v3.38.2 */ +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; -function add_css$8() { - var style = element("style"); - style.id = "svelte-1vu6mjk-style"; - style.textContent = ".explanation.svelte-1vu6mjk{font-size:10px;line-height:12px}.compile-container.svelte-1vu6mjk{border-top:1px solid var(--text-muted)}.compile-option.svelte-1vu6mjk{margin:12px 0}label.svelte-1vu6mjk{font-size:12px;color:var(--text-muted)}#compile-target-path.svelte-1vu6mjk{width:100%;font-size:14px;line-height:20px}#compile-target-path.invalid.svelte-1vu6mjk{color:var(--text-error)}.compile-button.svelte-1vu6mjk{background-color:var(--interactive-accent);color:var(--text-on-accent)}.compile-button.svelte-1vu6mjk:disabled{background-color:var(--text-muted);color:var(--text-faint)}.compile-status.svelte-1vu6mjk{color:var(--interactive-success);font-size:10px;line-height:12px}"; - append(document.head, style); +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED$1 : value; + return this; } -// (51:0) {#if $currentProject && $currentDraft} -function create_if_block$5(ctx) { - let div2; - let div0; - let label0; - let t1; - let input0; - let t2; - let p0; - let t4; - let t5; - let div1; - let label1; - let t7; - let input1; - let t8; - let p1; - let t10; - let button; - let t11; - let button_disabled_value; - let t12; - let mounted; - let dispose; - let if_block0 = /*error*/ ctx[3] && create_if_block_2$2(ctx); - let if_block1 = /*status*/ ctx[2].length > 0 && create_if_block_1$3(ctx); - - return { - c() { - div2 = element("div"); - div0 = element("div"); - label0 = element("label"); - label0.textContent = "Write compiled result to:"; - t1 = space(); - input0 = element("input"); - t2 = space(); - p0 = element("p"); - p0.textContent = "The parent folders of this path must already exist in your vault."; - t4 = space(); - if (if_block0) if_block0.c(); - t5 = space(); - div1 = element("div"); - label1 = element("label"); - label1.textContent = "Add note titles as chapter headings"; - t7 = space(); - input1 = element("input"); - t8 = space(); - p1 = element("p"); - p1.textContent = "When selected, this option inserts a # tag with each note’s title above\n that note’s contents in the compilation result."; - t10 = space(); - button = element("button"); - t11 = text("Compile!"); - t12 = space(); - if (if_block1) if_block1.c(); - attr(label0, "for", "compile-target"); - attr(label0, "class", "svelte-1vu6mjk"); - attr(input0, "id", "compile-target-path"); - attr(input0, "name", "compile-target"); - attr(input0, "type", "text"); - attr(input0, "placeholder", "vault/path/to/compiled-note"); - attr(input0, "class", "svelte-1vu6mjk"); - toggle_class(input0, "invalid", !!/*error*/ ctx[3]); - attr(p0, "class", "explanation svelte-1vu6mjk"); - attr(div0, "class", "compile-option svelte-1vu6mjk"); - attr(label1, "for", "include-headers"); - attr(label1, "class", "svelte-1vu6mjk"); - attr(input1, "type", "checkbox"); - attr(input1, "name", "include-headers"); - attr(p1, "class", "explanation svelte-1vu6mjk"); - attr(div1, "class", "compile-option svelte-1vu6mjk"); - attr(button, "class", "compile-button svelte-1vu6mjk"); - button.disabled = button_disabled_value = /*targetPath*/ ctx[0].length === 0 || !!/*error*/ ctx[3]; - attr(div2, "class", "compile-container svelte-1vu6mjk"); - }, - m(target, anchor) { - insert(target, div2, anchor); - append(div2, div0); - append(div0, label0); - append(div0, t1); - append(div0, input0); - set_input_value(input0, /*targetPath*/ ctx[0]); - append(div0, t2); - append(div0, p0); - append(div0, t4); - if (if_block0) if_block0.m(div0, null); - append(div2, t5); - append(div2, div1); - append(div1, label1); - append(div1, t7); - append(div1, input1); - input1.checked = /*includeHeaders*/ ctx[1]; - append(div1, t8); - append(div1, p1); - append(div2, t10); - append(div2, button); - append(button, t11); - append(div2, t12); - if (if_block1) if_block1.m(div2, null); +var _hashSet = hashSet; - if (!mounted) { - dispose = [ - listen(input0, "input", /*input0_input_handler*/ ctx[7]), - listen(input1, "change", /*input1_change_handler*/ ctx[8]), - listen(button, "click", /*doCompile*/ ctx[6]) - ]; +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; - mounted = true; - } - }, - p(ctx, dirty) { - if (dirty & /*targetPath*/ 1 && input0.value !== /*targetPath*/ ctx[0]) { - set_input_value(input0, /*targetPath*/ ctx[0]); - } + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} - if (dirty & /*error*/ 8) { - toggle_class(input0, "invalid", !!/*error*/ ctx[3]); - } +// Add methods to `Hash`. +Hash.prototype.clear = _hashClear; +Hash.prototype['delete'] = _hashDelete; +Hash.prototype.get = _hashGet; +Hash.prototype.has = _hashHas; +Hash.prototype.set = _hashSet; - if (/*error*/ ctx[3]) { - if (if_block0) { - if_block0.p(ctx, dirty); - } else { - if_block0 = create_if_block_2$2(ctx); - if_block0.c(); - if_block0.m(div0, null); - } - } else if (if_block0) { - if_block0.d(1); - if_block0 = null; - } +var _Hash = Hash; - if (dirty & /*includeHeaders*/ 2) { - input1.checked = /*includeHeaders*/ ctx[1]; - } +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} - if (dirty & /*targetPath, error*/ 9 && button_disabled_value !== (button_disabled_value = /*targetPath*/ ctx[0].length === 0 || !!/*error*/ ctx[3])) { - button.disabled = button_disabled_value; - } +var _listCacheClear = listCacheClear; - if (/*status*/ ctx[2].length > 0) { - if (if_block1) { - if_block1.p(ctx, dirty); - } else { - if_block1 = create_if_block_1$3(ctx); - if_block1.c(); - if_block1.m(div2, null); - } - } else if (if_block1) { - if_block1.d(1); - if_block1 = null; - } - }, - d(detaching) { - if (detaching) detach(div2); - if (if_block0) if_block0.d(); - if (if_block1) if_block1.d(); - mounted = false; - run_all(dispose); - } - }; +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); } -// (66:6) {#if error} -function create_if_block_2$2(ctx) { - let p; - let t; +var eq_1 = eq; - return { - c() { - p = element("p"); - t = text(/*error*/ ctx[3]); - }, - m(target, anchor) { - insert(target, p, anchor); - append(p, t); - }, - p(ctx, dirty) { - if (dirty & /*error*/ 8) set_data(t, /*error*/ ctx[3]); - }, - d(detaching) { - if (detaching) detach(p); - } - }; +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq_1(array[length][0], key)) { + return length; + } + } + return -1; } -// (88:4) {#if status.length > 0} -function create_if_block_1$3(ctx) { - let p; - let t; - - return { - c() { - p = element("p"); - t = text(/*status*/ ctx[2]); - attr(p, "class", "compile-status svelte-1vu6mjk"); - }, - m(target, anchor) { - insert(target, p, anchor); - append(p, t); - }, - p(ctx, dirty) { - if (dirty & /*status*/ 4) set_data(t, /*status*/ ctx[2]); - }, - d(detaching) { - if (detaching) detach(p); - } - }; -} +var _assocIndexOf = assocIndexOf; -function create_fragment$b(ctx) { - let p; - let t3; - let if_block_anchor; - let if_block = /*$currentProject*/ ctx[4] && /*$currentDraft*/ ctx[5] && create_if_block$5(ctx); +/** Used for built-in method references. */ +var arrayProto = Array.prototype; - return { - c() { - p = element("p"); +/** Built-in value references. */ +var splice = arrayProto.splice; - p.innerHTML = `Compilation is a work in progress. While I plan to add support for many custom workflows, for now you can use - the Compile feature to stitch all the scenes in a draft together into one big - note.`; +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); - t3 = space(); - if (if_block) if_block.c(); - if_block_anchor = empty(); - attr(p, "class", "explanation svelte-1vu6mjk"); - }, - m(target, anchor) { - insert(target, p, anchor); - insert(target, t3, anchor); - if (if_block) if_block.m(target, anchor); - insert(target, if_block_anchor, anchor); - }, - p(ctx, [dirty]) { - if (/*$currentProject*/ ctx[4] && /*$currentDraft*/ ctx[5]) { - if (if_block) { - if_block.p(ctx, dirty); - } else { - if_block = create_if_block$5(ctx); - if_block.c(); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - } else if (if_block) { - if_block.d(1); - if_block = null; - } - }, - i: noop, - o: noop, - d(detaching) { - if (detaching) detach(p); - if (detaching) detach(t3); - if (if_block) if_block.d(detaching); - if (detaching) detach(if_block_anchor); - } - }; + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; } -function instance$b($$self, $$props, $$invalidate) { - let $currentProjectPath; - let $pluginSettings; - let $currentDraftPath; - let $currentProject; - let $currentDraft; - component_subscribe($$self, currentProjectPath, $$value => $$invalidate(9, $currentProjectPath = $$value)); - component_subscribe($$self, pluginSettings, $$value => $$invalidate(10, $pluginSettings = $$value)); - component_subscribe($$self, currentDraftPath, $$value => $$invalidate(11, $currentDraftPath = $$value)); - component_subscribe($$self, currentProject, $$value => $$invalidate(4, $currentProject = $$value)); - component_subscribe($$self, currentDraft, $$value => $$invalidate(5, $currentDraft = $$value)); - let targetPath = ""; - - if ($currentProjectPath && $pluginSettings.projects[$currentProjectPath]) { - const draftsFolder = $pluginSettings.projects[$currentProjectPath].draftsPath; - targetPath = obsidian.normalizePath(`${$currentProjectPath}/${draftsFolder}/${$currentDraftPath}-compiled`); - } +var _listCacheDelete = listCacheDelete; - let includeHeaders = false; - let status = ""; - const getVault = getContext("getVault"); +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); - function doCompile() { - compile(getVault(), $currentProjectPath, $currentDraftPath, targetPath, { - includeHeaders, - reportProgress: (_status, complete) => { - $$invalidate(2, status = _status); - - if (complete) { - setTimeout( - () => { - $$invalidate(2, status = ""); - }, - 5000 - ); - } - } - }); - } + return index < 0 ? undefined : data[index][1]; +} - let error = null; +var _listCacheGet = listCacheGet; - function input0_input_handler() { - targetPath = this.value; - $$invalidate(0, targetPath); - } +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return _assocIndexOf(this.__data__, key) > -1; +} - function input1_change_handler() { - includeHeaders = this.checked; - $$invalidate(1, includeHeaders); - } +var _listCacheHas = listCacheHas; - $$self.$$.update = () => { - if ($$self.$$.dirty & /*targetPath*/ 1) { - { - if (targetPath.length === 0) { - $$invalidate(3, error = null); - } else if (targetPath.split("/").slice(-1)[0].match(/[\/\\:]/g)) { - $$invalidate(3, error = "A file cannot contain the characters: \\ / :"); - } else { - $$invalidate(3, error = null); - } - } - } - }; +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = _assocIndexOf(data, key); - return [ - targetPath, - includeHeaders, - status, - error, - $currentProject, - $currentDraft, - doCompile, - input0_input_handler, - input1_change_handler - ]; + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; } -class CompileView extends SvelteComponent { - constructor(options) { - super(); - if (!document.getElementById("svelte-1vu6mjk-style")) add_css$8(); - init(this, options, instance$b, create_fragment$b, safe_not_equal, {}); - } -} - -/* src/view/tabs/Tabs.svelte generated by Svelte v3.38.2 */ - -function create_fragment$a(ctx) { - let div; - let current; - const default_slot_template = /*#slots*/ ctx[1].default; - const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[0], null); - - return { - c() { - div = element("div"); - if (default_slot) default_slot.c(); - attr(div, "class", "tabs"); - }, - m(target, anchor) { - insert(target, div, anchor); +var _listCacheSet = listCacheSet; - if (default_slot) { - default_slot.m(div, null); - } +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; - current = true; - }, - p(ctx, [dirty]) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ 1)) { - update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[0], dirty, null, null); - } - } - }, - i(local) { - if (current) return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) detach(div); - if (default_slot) default_slot.d(detaching); - } - }; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } } -const TABS = {}; - -function instance$a($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const tabs = []; - const panels = []; - const selectedTab = writable(null); - const selectedPanel = writable(null); - - setContext(TABS, { - registerTab: tab => { - tabs.push(tab); - selectedTab.update(current => current || tab); +// Add methods to `ListCache`. +ListCache.prototype.clear = _listCacheClear; +ListCache.prototype['delete'] = _listCacheDelete; +ListCache.prototype.get = _listCacheGet; +ListCache.prototype.has = _listCacheHas; +ListCache.prototype.set = _listCacheSet; - onDestroy(() => { - const i = tabs.indexOf(tab); - tabs.splice(i, 1); +var _ListCache = ListCache; - selectedTab.update(current => current === tab - ? tabs[i] || tabs[tabs.length - 1] - : current); - }); - }, - registerPanel: panel => { - panels.push(panel); - selectedPanel.update(current => current || panel); +/* Built-in method references that are verified to be native. */ +var Map$1 = _getNative(_root, 'Map'); - onDestroy(() => { - const i = panels.indexOf(panel); - panels.splice(i, 1); +var _Map = Map$1; - selectedPanel.update(current => current === panel - ? panels[i] || panels[panels.length - 1] - : current); - }); - }, - selectTab: tab => { - const i = tabs.indexOf(tab); - selectedTab.set(tab); - selectedPanel.set(panels[i]); - }, - selectedTab, - selectedPanel - }); +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new _Hash, + 'map': new (_Map || _ListCache), + 'string': new _Hash + }; +} - $$self.$$set = $$props => { - if ("$$scope" in $$props) $$invalidate(0, $$scope = $$props.$$scope); - }; +var _mapCacheClear = mapCacheClear; - return [$$scope, slots]; +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); } -class Tabs extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance$a, create_fragment$a, safe_not_equal, {}); - } +var _isKeyable = isKeyable; + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return _isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; } -/* src/view/tabs/TabList.svelte generated by Svelte v3.38.2 */ +var _getMapData = getMapData; -function add_css$7() { - var style = element("style"); - style.id = "svelte-1bo97vk-style"; - style.textContent = ".tab-list.svelte-1bo97vk{margin:4px 8px;border-bottom:1px solid var(--text-muted)}"; - append(document.head, style); +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = _getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; } -function create_fragment$9(ctx) { - let div; - let current; - const default_slot_template = /*#slots*/ ctx[1].default; - const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[0], null); +var _mapCacheDelete = mapCacheDelete; - return { - c() { - div = element("div"); - if (default_slot) default_slot.c(); - attr(div, "class", "tab-list svelte-1bo97vk"); - }, - m(target, anchor) { - insert(target, div, anchor); +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return _getMapData(this, key).get(key); +} - if (default_slot) { - default_slot.m(div, null); - } +var _mapCacheGet = mapCacheGet; - current = true; - }, - p(ctx, [dirty]) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ 1)) { - update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[0], dirty, null, null); - } - } - }, - i(local) { - if (current) return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) detach(div); - if (default_slot) default_slot.d(detaching); - } - }; +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return _getMapData(this, key).has(key); } -function instance$9($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; +var _mapCacheHas = mapCacheHas; - $$self.$$set = $$props => { - if ("$$scope" in $$props) $$invalidate(0, $$scope = $$props.$$scope); - }; +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = _getMapData(this, key), + size = data.size; - return [$$scope, slots]; + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; } -class TabList extends SvelteComponent { - constructor(options) { - super(); - if (!document.getElementById("svelte-1bo97vk-style")) add_css$7(); - init(this, options, instance$9, create_fragment$9, safe_not_equal, {}); - } -} +var _mapCacheSet = mapCacheSet; -/* src/view/tabs/TabPanel.svelte generated by Svelte v3.38.2 */ +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; -function add_css$6() { - var style = element("style"); - style.id = "svelte-11pvpwl-style"; - style.textContent = ".tab-panel-container.svelte-11pvpwl{padding:0 8px}"; - append(document.head, style); + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } } -// (11:0) {#if $selectedPanel === panel} -function create_if_block$4(ctx) { - let div; - let current; - const default_slot_template = /*#slots*/ ctx[4].default; - const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[3], null); +// Add methods to `MapCache`. +MapCache.prototype.clear = _mapCacheClear; +MapCache.prototype['delete'] = _mapCacheDelete; +MapCache.prototype.get = _mapCacheGet; +MapCache.prototype.has = _mapCacheHas; +MapCache.prototype.set = _mapCacheSet; - return { - c() { - div = element("div"); - if (default_slot) default_slot.c(); - attr(div, "class", "tab-panel-container svelte-11pvpwl"); - }, - m(target, anchor) { - insert(target, div, anchor); +var _MapCache = MapCache; - if (default_slot) { - default_slot.m(div, null); - } +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; - current = true; - }, - p(ctx, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ 8)) { - update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[3], dirty, null, null); - } - } - }, - i(local) { - if (current) return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) detach(div); - if (default_slot) default_slot.d(detaching); - } - }; +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || _MapCache); + return memoized; } -function create_fragment$8(ctx) { - let if_block_anchor; - let current; - let if_block = /*$selectedPanel*/ ctx[0] === /*panel*/ ctx[1] && create_if_block$4(ctx); +// Expose `MapCache`. +memoize.Cache = _MapCache; - return { - c() { - if (if_block) if_block.c(); - if_block_anchor = empty(); - }, - m(target, anchor) { - if (if_block) if_block.m(target, anchor); - insert(target, if_block_anchor, anchor); - current = true; - }, - p(ctx, [dirty]) { - if (/*$selectedPanel*/ ctx[0] === /*panel*/ ctx[1]) { - if (if_block) { - if_block.p(ctx, dirty); +var memoize_1 = memoize; - if (dirty & /*$selectedPanel*/ 1) { - transition_in(if_block, 1); - } - } else { - if_block = create_if_block$4(ctx); - if_block.c(); - transition_in(if_block, 1); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - } else if (if_block) { - group_outros(); +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; - transition_out(if_block, 1, 1, () => { - if_block = null; - }); +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize_1(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); - check_outros(); - } - }, - i(local) { - if (current) return; - transition_in(if_block); - current = true; - }, - o(local) { - transition_out(if_block); - current = false; - }, - d(detaching) { - if (if_block) if_block.d(detaching); - if (detaching) detach(if_block_anchor); - } - }; + var cache = result.cache; + return result; } -function instance$8($$self, $$props, $$invalidate) { - let $selectedPanel; - let { $$slots: slots = {}, $$scope } = $$props; - const panel = {}; - const { registerPanel, selectedPanel } = getContext(TABS); - component_subscribe($$self, selectedPanel, value => $$invalidate(0, $selectedPanel = value)); - registerPanel(panel); +var _memoizeCapped = memoizeCapped; - $$self.$$set = $$props => { - if ("$$scope" in $$props) $$invalidate(3, $$scope = $$props.$$scope); - }; +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - return [$selectedPanel, panel, selectedPanel, $$scope, slots]; -} +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; -class TabPanel extends SvelteComponent { - constructor(options) { - super(); - if (!document.getElementById("svelte-11pvpwl-style")) add_css$6(); - init(this, options, instance$8, create_fragment$8, safe_not_equal, {}); - } -} +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = _memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); -/* src/view/tabs/Tab.svelte generated by Svelte v3.38.2 */ +var _stringToPath = stringToPath; + +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); -function add_css$5() { - var style = element("style"); - style.id = "svelte-htpziy-style"; - style.textContent = "button.svelte-htpziy{background:none;border:none;border-bottom:none;border-radius:0;margin:0;color:var(--interactive-accent)}.selected.svelte-htpziy{border-bottom:2px solid var(--text-muted);color:var(--text-accent)}"; - append(document.head, style); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; } -function create_fragment$7(ctx) { - let button; - let current; - let mounted; - let dispose; - const default_slot_template = /*#slots*/ ctx[5].default; - const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[4], null); +var _arrayMap = arrayMap; - return { - c() { - button = element("button"); - if (default_slot) default_slot.c(); - attr(button, "class", "svelte-htpziy"); - toggle_class(button, "selected", /*$selectedTab*/ ctx[0] === /*tab*/ ctx[1]); - }, - m(target, anchor) { - insert(target, button, anchor); +/** Used as references for various `Number` constants. */ +var INFINITY$1 = 1 / 0; - if (default_slot) { - default_slot.m(button, null); - } +/** Used to convert symbols to primitives and strings. */ +var symbolProto$2 = _Symbol ? _Symbol.prototype : undefined, + symbolToString = symbolProto$2 ? symbolProto$2.toString : undefined; - current = true; +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray_1(value)) { + // Recursively convert values (susceptible to call stack limits). + return _arrayMap(value, baseToString) + ''; + } + if (isSymbol_1(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; +} - if (!mounted) { - dispose = listen(button, "click", /*click_handler*/ ctx[6]); - mounted = true; - } - }, - p(ctx, [dirty]) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ 16)) { - update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[4], dirty, null, null); - } - } +var _baseToString = baseToString; - if (dirty & /*$selectedTab, tab*/ 3) { - toggle_class(button, "selected", /*$selectedTab*/ ctx[0] === /*tab*/ ctx[1]); - } - }, - i(local) { - if (current) return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) detach(button); - if (default_slot) default_slot.d(detaching); - mounted = false; - dispose(); - } - }; +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : _baseToString(value); } -function instance$7($$self, $$props, $$invalidate) { - let $selectedTab; - let { $$slots: slots = {}, $$scope } = $$props; - const tab = {}; - const { registerTab, selectTab, selectedTab } = getContext(TABS); - component_subscribe($$self, selectedTab, value => $$invalidate(0, $selectedTab = value)); - registerTab(tab); - const click_handler = () => selectTab(tab); - - $$self.$$set = $$props => { - if ("$$scope" in $$props) $$invalidate(4, $$scope = $$props.$$scope); - }; - - return [$selectedTab, tab, selectTab, selectedTab, $$scope, slots, click_handler]; -} - -class Tab extends SvelteComponent { - constructor(options) { - super(); - if (!document.getElementById("svelte-htpziy-style")) add_css$5(); - init(this, options, instance$7, create_fragment$7, safe_not_equal, {}); - } -} +var toString_1 = toString; -/**! - * Sortable 1.14.0 - * @author RubaXa - * @author owenm - * @license MIT +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. */ -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function castPath(value, object) { + if (isArray_1(value)) { + return value; + } + return _isKey(value, object) ? [value] : _stringToPath(toString_1(value)); +} - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); +var _castPath = castPath; - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; - keys.push.apply(keys, symbols); +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol_1(value)) { + return value; } - - return keys; + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; +var _toKey = toKey; - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty$1(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = _castPath(path, object); - return target; + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[_toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; } -function _typeof(obj) { - "@babel/helpers - typeof"; +var _baseGet = baseGet; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } +var defineProperty = (function() { + try { + var func = _getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); - return _typeof(obj); -} +var _defineProperty$1 = defineProperty; -function _defineProperty$1(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && _defineProperty$1) { + _defineProperty$1(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true }); } else { - obj[key] = value; + object[key] = value; } - - return obj; } -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; +var _baseAssignValue = baseAssignValue; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } +/** Used for built-in method references. */ +var objectProto$a = Object.prototype; - return target; - }; +/** Used to check objects for own properties. */ +var hasOwnProperty$8 = objectProto$a.hasOwnProperty; - return _extends.apply(this, arguments); +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty$8.call(object, key) && eq_1(objValue, value)) || + (value === undefined && !(key in object))) { + _baseAssignValue(object, key, value); + } } -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; +var _assignValue = assignValue; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER$1 = 9007199254740991; - return target; +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER$1 : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); } -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; +var _isIndex = isIndex; - var target = _objectWithoutPropertiesLoose(source, excluded); +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject_1(object)) { + return object; + } + path = _castPath(path, object); - var key, i; + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + while (nested != null && ++index < length) { + var key = _toKey(path[index]), + newValue = value; - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; } - } - return target; + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject_1(objValue) + ? objValue + : (_isIndex(path[index + 1]) ? [] : {}); + } + } + _assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; } -var version = "1.14.0"; +var _baseSet = baseSet; -function userAgent(pattern) { - if (typeof window !== 'undefined' && window.navigator) { - return !! /*@__PURE__*/navigator.userAgent.match(pattern); +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ +function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = _baseGet(object, path); + + if (predicate(value, path)) { + _baseSet(result, _castPath(path, object), value); + } } + return result; } -var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); -var Edge = userAgent(/Edge/i); -var FireFox = userAgent(/firefox/i); -var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); -var IOS = userAgent(/iP(ad|od|hone)/i); -var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); - -var captureMode = { - capture: false, - passive: false -}; +var _basePickBy = basePickBy; -function on(el, event, fn) { - el.addEventListener(event, fn, !IE11OrLess && captureMode); +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); } -function off(el, event, fn) { - el.removeEventListener(event, fn, !IE11OrLess && captureMode); -} +var _baseHasIn = baseHasIn; -function matches( -/**HTMLElement*/ -el, -/**String*/ -selector) { - if (!selector) return; - selector[0] === '>' && (selector = selector.substring(1)); +/** `Object#toString` result references. */ +var argsTag$3 = '[object Arguments]'; - if (el) { - try { - if (el.matches) { - return el.matches(selector); - } else if (el.msMatchesSelector) { - return el.msMatchesSelector(selector); - } else if (el.webkitMatchesSelector) { - return el.webkitMatchesSelector(selector); - } - } catch (_) { - return false; - } - } - - return false; +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike_1(value) && _baseGetTag(value) == argsTag$3; } -function getParentOrHost(el) { - return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; -} +var _baseIsArguments = baseIsArguments; -function closest( -/**HTMLElement*/ -el, -/**String*/ -selector, -/**HTMLElement*/ -ctx, includeCTX) { - if (el) { - ctx = ctx || document; +/** Used for built-in method references. */ +var objectProto$9 = Object.prototype; - do { - if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) { - return el; - } +/** Used to check objects for own properties. */ +var hasOwnProperty$7 = objectProto$9.hasOwnProperty; - if (el === ctx) break; - /* jshint boss:true */ - } while (el = getParentOrHost(el)); - } +/** Built-in value references. */ +var propertyIsEnumerable$1 = objectProto$9.propertyIsEnumerable; - return null; -} +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) { + return isObjectLike_1(value) && hasOwnProperty$7.call(value, 'callee') && + !propertyIsEnumerable$1.call(value, 'callee'); +}; -var R_SPACE = /\s+/g; +var isArguments_1 = isArguments; -function toggleClass(el, name, state) { - if (el && name) { - if (el.classList) { - el.classList[state ? 'add' : 'remove'](name); - } else { - var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' '); - el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' '); - } - } +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } -function css(el, prop, val) { - var style = el && el.style; +var isLength_1 = isLength; - if (style) { - if (val === void 0) { - if (document.defaultView && document.defaultView.getComputedStyle) { - val = document.defaultView.getComputedStyle(el, ''); - } else if (el.currentStyle) { - val = el.currentStyle; - } +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = _castPath(path, object); - return prop === void 0 ? val : val[prop]; - } else { - if (!(prop in style) && prop.indexOf('webkit') === -1) { - prop = '-webkit-' + prop; - } + var index = -1, + length = path.length, + result = false; - style[prop] = val + (typeof val === 'string' ? '' : 'px'); + while (++index < length) { + var key = _toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; } + object = object[key]; + } + if (result || ++index != length) { + return result; } + length = object == null ? 0 : object.length; + return !!length && isLength_1(length) && _isIndex(key, length) && + (isArray_1(object) || isArguments_1(object)); } -function matrix(el, selfOnly) { - var appliedTransforms = ''; +var _hasPath = hasPath; - if (typeof el === 'string') { - appliedTransforms = el; - } else { - do { - var transform = css(el, 'transform'); +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && _hasPath(object, path, _baseHasIn); +} - if (transform && transform !== 'none') { - appliedTransforms = transform + ' ' + appliedTransforms; - } - /* jshint boss:true */ +var hasIn_1 = hasIn; - } while (!selfOnly && (el = el.parentNode)); +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ +function basePick(object, paths) { + return _basePickBy(object, paths, function(value, path) { + return hasIn_1(object, path); + }); +} + +var _basePick = basePick; + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; } + return array; +} - var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; - /*jshint -W056 */ +var _arrayPush = arrayPush; - return matrixFn && new matrixFn(appliedTransforms); +/** Built-in value references. */ +var spreadableSymbol = _Symbol ? _Symbol.isConcatSpreadable : undefined; + +/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ +function isFlattenable(value) { + return isArray_1(value) || isArguments_1(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); } -function find(ctx, tagName, iterator) { - if (ctx) { - var list = ctx.getElementsByTagName(tagName), - i = 0, - n = list.length; +var _isFlattenable = isFlattenable; - if (iterator) { - for (; i < n; i++) { - iterator(list[i], i); +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = _isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + _arrayPush(result, value); } + } else if (!isStrict) { + result[result.length] = value; } - - return list; } - - return []; + return result; } -function getWindowScrollingElement() { - var scrollingElement = document.scrollingElement; +var _baseFlatten = baseFlatten; - if (scrollingElement) { - return scrollingElement; - } else { - return document.documentElement; - } -} /** - * Returns the "bounding client rect" of given element - * @param {HTMLElement} el The element whose boundingClientRect is wanted - * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container - * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr - * @param {[Boolean]} undoScale Whether the container's scale() should be undone - * @param {[HTMLElement]} container The parent the element will be placed in - * @return {Object} The boundingClientRect of el, with specified adjustments + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] */ +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? _baseFlatten(array, 1) : []; +} +var flatten_1 = flatten; -function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { - if (!el.getBoundingClientRect && el !== window) return; - var elRect, top, left, bottom, right, height, width; - - if (el !== window && el.parentNode && el !== getWindowScrollingElement()) { - elRect = el.getBoundingClientRect(); - top = elRect.top; - left = elRect.left; - bottom = elRect.bottom; - right = elRect.right; - height = elRect.height; - width = elRect.width; - } else { - top = 0; - left = 0; - bottom = window.innerHeight; - right = window.innerWidth; - height = window.innerHeight; - width = window.innerWidth; +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); } + return func.apply(thisArg, args); +} - if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { - // Adjust for translate() - container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312) - // Not needed on <= IE11 - - if (!IE11OrLess) { - do { - if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) { - var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container +var _apply = apply; - top -= containerRect.top + parseInt(css(container, 'border-top-width')); - left -= containerRect.left + parseInt(css(container, 'border-left-width')); - bottom = top + elRect.height; - right = left + elRect.width; - break; - } - /* jshint boss:true */ +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; - } while (container = container.parentNode); +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; } - } - - if (undoScale && el !== window) { - // Adjust for scale() - var elMatrix = matrix(container || el), - scaleX = elMatrix && elMatrix.a, - scaleY = elMatrix && elMatrix.d; - - if (elMatrix) { - top /= scaleY; - left /= scaleX; - width /= scaleX; - height /= scaleY; - bottom = top + height; - right = left + width; + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; } - } - - return { - top: top, - left: left, - bottom: bottom, - right: right, - width: width, - height: height + otherArgs[start] = transform(array); + return _apply(func, this, otherArgs); }; } -/** - * Checks if a side of an element is scrolled past a side of its parents - * @param {HTMLElement} el The element who's side being scrolled out of view is in question - * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom') - * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom') - * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element - */ - - -function isScrolledPast(el, elSide, parentSide) { - var parent = getParentAutoScrollElement(el, true), - elSideVal = getRect(el)[elSide]; - /* jshint boss:true */ - - while (parent) { - var parentSideVal = getRect(parent)[parentSide], - visible = void 0; - - if (parentSide === 'top' || parentSide === 'left') { - visible = elSideVal >= parentSideVal; - } else { - visible = elSideVal <= parentSideVal; - } - if (!visible) return parent; - if (parent === getWindowScrollingElement()) break; - parent = getParentAutoScrollElement(parent, false); - } +var _overRest = overRest; - return false; -} /** - * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible) - * and non-draggable elements - * @param {HTMLElement} el The parent element - * @param {Number} childNum The index of the child - * @param {Object} options Parent Sortable's options - * @return {HTMLElement} The child at index childNum, or null if not found + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true */ +function constant(value) { + return function() { + return value; + }; +} +var constant_1 = constant; -function getChild(el, childNum, options, includeDragEl) { - var currentChild = 0, - i = 0, - children = el.children; - - while (i < children.length) { - if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) { - if (currentChild === childNum) { - return children[i]; - } - - currentChild++; - } - - i++; - } - - return null; -} /** - * Gets the last child in the el, ignoring ghostEl or invisible elements (clones) - * @param {HTMLElement} el Parent element - * @param {selector} selector Any other elements that should be ignored - * @return {HTMLElement} The last child, ignoring ghostEl + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true */ +function identity(value) { + return value; +} +var identity_1 = identity; -function lastChild(el, selector) { - var last = el.lastElementChild; - - while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) { - last = last.previousElementSibling; - } - - return last || null; -} /** - * Returns the index of an element within its parent for a selected set of - * elements - * @param {HTMLElement} el - * @param {selector} selector - * @return {number} + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. */ +var baseSetToString = !_defineProperty$1 ? identity_1 : function(func, string) { + return _defineProperty$1(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant_1(string), + 'writable': true + }); +}; +var _baseSetToString = baseSetToString; -function index(el, selector) { - var index = 0; - - if (!el || !el.parentNode) { - return -1; - } - /* jshint boss:true */ - +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; - while (el = el.previousElementSibling) { - if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) { - index++; - } - } +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; - return index; -} /** - * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements. - * The value is returned in real pixels. - * @param {HTMLElement} el - * @return {Array} Offsets in the format of [left, top] + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} +var _shortOut = shortOut; -function getRelativeScrollOffset(el) { - var offsetLeft = 0, - offsetTop = 0, - winScroller = getWindowScrollingElement(); +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = _shortOut(_baseSetToString); - if (el) { - do { - var elMatrix = matrix(el), - scaleX = elMatrix.a, - scaleY = elMatrix.d; - offsetLeft += el.scrollLeft * scaleX; - offsetTop += el.scrollTop * scaleY; - } while (el !== winScroller && (el = el.parentNode)); - } +var _setToString = setToString; - return [offsetLeft, offsetTop]; -} /** - * Returns the index of the object within the given array - * @param {Array} arr Array that may or may not hold the object - * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find - * @return {Number} The index of the object in the array, or -1 + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. */ +function flatRest(func) { + return _setToString(_overRest(func, undefined, flatten_1), func + ''); +} +var _flatRest = flatRest; -function indexOfObject(arr, obj) { - for (var i in arr) { - if (!arr.hasOwnProperty(i)) continue; +/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ +var pick = _flatRest(function(object, paths) { + return object == null ? {} : _basePick(object, paths); +}); - for (var key in obj) { - if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i); - } - } +var pick_1 = pick; - return -1; +function noop() { } +function assign(tar, src) { + // @ts-ignore + for (const k in src) + tar[k] = src[k]; + return tar; } - -function getParentAutoScrollElement(el, includeSelf) { - // skip to window - if (!el || !el.getBoundingClientRect) return getWindowScrollingElement(); - var elem = el; - var gotSelf = false; - - do { - // we don't need to get elem css if it isn't even overflowing in the first place (performance) - if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { - var elemCSS = css(elem); - - if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) { - if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement(); - if (gotSelf || includeSelf) return elem; - gotSelf = true; - } - } - /* jshint boss:true */ - - } while (elem = elem.parentNode); - - return getWindowScrollingElement(); +function run(fn) { + return fn(); } - -function extend(dst, src) { - if (dst && src) { - for (var key in src) { - if (src.hasOwnProperty(key)) { - dst[key] = src[key]; - } - } - } - - return dst; +function blank_object() { + return Object.create(null); } - -function isRectEqual(rect1, rect2) { - return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); +function run_all(fns) { + fns.forEach(run); } - -var _throttleTimeout; - -function throttle(callback, ms) { - return function () { - if (!_throttleTimeout) { - var args = arguments, - _this = this; - - if (args.length === 1) { - callback.call(_this, args[0]); - } else { - callback.apply(_this, args); - } - - _throttleTimeout = setTimeout(function () { - _throttleTimeout = void 0; - }, ms); - } - }; +function is_function(thing) { + return typeof thing === 'function'; } - -function scrollBy(el, x, y) { - el.scrollLeft += x; - el.scrollTop += y; +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); } - -function clone(el) { - var Polymer = window.Polymer; - var $ = window.jQuery || window.Zepto; - - if (Polymer && Polymer.dom) { - return Polymer.dom(el).cloneNode(true); - } else if ($) { - return $(el).clone(true)[0]; - } else { - return el.cloneNode(true); - } +function is_empty(obj) { + return Object.keys(obj).length === 0; } - -var expando = 'Sortable' + new Date().getTime(); - -function AnimationStateManager() { - var animationStates = [], - animationCallbackId; - return { - captureAnimationState: function captureAnimationState() { - animationStates = []; - if (!this.options.animation) return; - var children = [].slice.call(this.el.children); - children.forEach(function (child) { - if (css(child, 'display') === 'none' || child === Sortable.ghost) return; - animationStates.push({ - target: child, - rect: getRect(child) - }); - - var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation - - - if (child.thisAnimationDuration) { - var childMatrix = matrix(child, true); - - if (childMatrix) { - fromRect.top -= childMatrix.f; - fromRect.left -= childMatrix.e; - } - } - - child.fromRect = fromRect; - }); - }, - addAnimationState: function addAnimationState(state) { - animationStates.push(state); - }, - removeAnimationState: function removeAnimationState(target) { - animationStates.splice(indexOfObject(animationStates, { - target: target - }), 1); - }, - animateAll: function animateAll(callback) { - var _this = this; - - if (!this.options.animation) { - clearTimeout(animationCallbackId); - if (typeof callback === 'function') callback(); - return; - } - - var animating = false, - animationTime = 0; - animationStates.forEach(function (state) { - var time = 0, - target = state.target, - fromRect = target.fromRect, - toRect = getRect(target), - prevFromRect = target.prevFromRect, - prevToRect = target.prevToRect, - animatingRect = state.rect, - targetMatrix = matrix(target, true); - - if (targetMatrix) { - // Compensate for current animation - toRect.top -= targetMatrix.f; - toRect.left -= targetMatrix.e; - } - - target.toRect = toRect; - - if (target.thisAnimationDuration) { - // Could also check if animatingRect is between fromRect and toRect - if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect - (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { - // If returning to same place as started from animation and on same axis - time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); - } - } // if fromRect != toRect: animate - - - if (!isRectEqual(toRect, fromRect)) { - target.prevFromRect = fromRect; - target.prevToRect = toRect; - - if (!time) { - time = _this.options.animation; - } - - _this.animate(target, animatingRect, toRect, time); - } - - if (time) { - animating = true; - animationTime = Math.max(animationTime, time); - clearTimeout(target.animationResetTimer); - target.animationResetTimer = setTimeout(function () { - target.animationTime = 0; - target.prevFromRect = null; - target.fromRect = null; - target.prevToRect = null; - target.thisAnimationDuration = null; - }, time); - target.thisAnimationDuration = time; - } - }); - clearTimeout(animationCallbackId); - - if (!animating) { - if (typeof callback === 'function') callback(); - } else { - animationCallbackId = setTimeout(function () { - if (typeof callback === 'function') callback(); - }, animationTime); - } - - animationStates = []; - }, - animate: function animate(target, currentRect, toRect, duration) { - if (duration) { - css(target, 'transition', ''); - css(target, 'transform', ''); - var elMatrix = matrix(this.el), - scaleX = elMatrix && elMatrix.a, - scaleY = elMatrix && elMatrix.d, - translateX = (currentRect.left - toRect.left) / (scaleX || 1), - translateY = (currentRect.top - toRect.top) / (scaleY || 1); - target.animatingX = !!translateX; - target.animatingY = !!translateY; - css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)'); - this.forRepaintDummy = repaint(target); // repaint - - css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : '')); - css(target, 'transform', 'translate3d(0,0,0)'); - typeof target.animated === 'number' && clearTimeout(target.animated); - target.animated = setTimeout(function () { - css(target, 'transition', ''); - css(target, 'transform', ''); - target.animated = false; - target.animatingX = false; - target.animatingY = false; - }, duration); - } +function subscribe(store, ...callbacks) { + if (store == null) { + return noop; } - }; + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; } - -function repaint(target) { - return target.offsetWidth; +function get_store_value(store) { + let value; + subscribe(store, _ => value = _)(); + return value; } - -function calculateRealTime(animatingRect, fromRect, toRect, options) { - return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; +function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); } - -var plugins = []; -var defaults = { - initializeByDefault: true -}; -var PluginManager = { - mount: function mount(plugin) { - // Set default static properties - for (var option in defaults) { - if (defaults.hasOwnProperty(option) && !(option in plugin)) { - plugin[option] = defaults[option]; - } +function create_slot(definition, ctx, $$scope, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); + return definition[0](slot_ctx); } - - plugins.forEach(function (p) { - if (p.pluginName === plugin.pluginName) { - throw "Sortable: Cannot mount plugin ".concat(plugin.pluginName, " more than once"); +} +function get_slot_context(definition, ctx, $$scope, fn) { + return definition[1] && fn + ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) + : $$scope.ctx; +} +function get_slot_changes(definition, $$scope, dirty, fn) { + if (definition[2] && fn) { + const lets = definition[2](fn(dirty)); + if ($$scope.dirty === undefined) { + return lets; + } + if (typeof lets === 'object') { + const merged = []; + const len = Math.max($$scope.dirty.length, lets.length); + for (let i = 0; i < len; i += 1) { + merged[i] = $$scope.dirty[i] | lets[i]; + } + return merged; + } + return $$scope.dirty | lets; + } + return $$scope.dirty; +} +function update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) { + if (slot_changes) { + const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); + slot.p(slot_context, slot_changes); + } +} +function get_all_dirty_from_scope($$scope) { + if ($$scope.ctx.length > 32) { + const dirty = []; + const length = $$scope.ctx.length / 32; + for (let i = 0; i < length; i++) { + dirty[i] = -1; + } + return dirty; + } + return -1; +} +function exclude_internal_props(props) { + const result = {}; + for (const k in props) + if (k[0] !== '$') + result[k] = props[k]; + return result; +} +function set_store_value(store, ret, value) { + store.set(value); + return ret; +} +function action_destroyer(action_result) { + return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; +} +function append(target, node) { + target.appendChild(node); +} +function append_styles(target, style_sheet_id, styles) { + const append_styles_to = get_root_for_style(target); + if (!append_styles_to.getElementById(style_sheet_id)) { + const style = element('style'); + style.id = style_sheet_id; + style.textContent = styles; + append_stylesheet(append_styles_to, style); + } +} +function get_root_for_style(node) { + if (!node) + return document; + const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root && root.host) { + return root; + } + return node.ownerDocument; +} +function append_stylesheet(node, style) { + append(node.head || node, style); +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + node.parentNode.removeChild(node); +} +function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } +} +function element(name) { + return document.createElement(name); +} +function text(data) { + return document.createTextNode(data); +} +function space() { + return text(' '); +} +function empty() { + return text(''); +} +function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); +} +function prevent_default(fn) { + return function (event) { + event.preventDefault(); + // @ts-ignore + return fn.call(this, event); + }; +} +function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); +} +function set_attributes(node, attributes) { + // @ts-ignore + const descriptors = Object.getOwnPropertyDescriptors(node.__proto__); + for (const key in attributes) { + if (attributes[key] == null) { + node.removeAttribute(key); + } + else if (key === 'style') { + node.style.cssText = attributes[key]; + } + else if (key === '__value') { + node.value = node[key] = attributes[key]; + } + else if (descriptors[key] && descriptors[key].set) { + node[key] = attributes[key]; + } + else { + attr(node, key, attributes[key]); + } + } +} +function children(element) { + return Array.from(element.childNodes); +} +function set_data(text, data) { + data = '' + data; + if (text.wholeText !== data) + text.data = data; +} +function set_input_value(input, value) { + input.value = value == null ? '' : value; +} +function set_style(node, key, value, important) { + node.style.setProperty(key, value, important ? 'important' : ''); +} +function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + if (option.__value === value) { + option.selected = true; + return; + } + } + select.selectedIndex = -1; // no option should be selected +} +function select_value(select) { + const selected_option = select.querySelector(':checked') || select.options[0]; + return selected_option && selected_option.__value; +} +function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); +} +function custom_event(type, detail, bubbles = false) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, bubbles, false, detail); + return e; +} + +let current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error('Function called outside component initialization'); + return current_component; +} +function onMount(fn) { + get_current_component().$$.on_mount.push(fn); +} +function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); +} +function createEventDispatcher() { + const component = get_current_component(); + return (type, detail) => { + const callbacks = component.$$.callbacks[type]; + if (callbacks) { + // TODO are there situations where events could be dispatched + // in a server (non-DOM) environment? + const event = custom_event(type, detail); + callbacks.slice().forEach(fn => { + fn.call(component, event); + }); + } + }; +} +function setContext(key, context) { + get_current_component().$$.context.set(key, context); +} +function getContext(key) { + return get_current_component().$$.context.get(key); +} + +const dirty_components = []; +const binding_callbacks = []; +const render_callbacks = []; +const flush_callbacks = []; +const resolved_promise = Promise.resolve(); +let update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn) { + render_callbacks.push(fn); +} +function add_flush_callback(fn) { + flush_callbacks.push(fn); +} +let flushing = false; +const seen_callbacks = new Set(); +function flush() { + if (flushing) + return; + flushing = true; + do { + // first, call beforeUpdate functions + // and update components + for (let i = 0; i < dirty_components.length; i += 1) { + const component = dirty_components[i]; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + // ...so guard against infinite loops + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + flushing = false; + seen_callbacks.clear(); +} +function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } +} +const outroing = new Set(); +let outros; +function group_outros() { + outros = { + r: 0, + c: [], + p: outros // parent group + }; +} +function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; +} +function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } +} +function transition_out(block, local, detach, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach) + block.d(1); + callback(); + } + }); + block.o(local); + } +} +function outro_and_destroy_block(block, lookup) { + transition_out(block, 1, 1, () => { + lookup.delete(block.key); + }); +} +function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { + let o = old_blocks.length; + let n = list.length; + let i = o; + const old_indexes = {}; + while (i--) + old_indexes[old_blocks[i].key] = i; + const new_blocks = []; + const new_lookup = new Map(); + const deltas = new Map(); + i = n; + while (i--) { + const child_ctx = get_context(ctx, list, i); + const key = get_key(child_ctx); + let block = lookup.get(key); + if (!block) { + block = create_each_block(key, child_ctx); + block.c(); + } + else if (dynamic) { + block.p(child_ctx, dirty); + } + new_lookup.set(key, new_blocks[i] = block); + if (key in old_indexes) + deltas.set(key, Math.abs(i - old_indexes[key])); + } + const will_move = new Set(); + const did_move = new Set(); + function insert(block) { + transition_in(block, 1); + block.m(node, next); + lookup.set(block.key, block); + next = block.first; + n--; + } + while (o && n) { + const new_block = new_blocks[n - 1]; + const old_block = old_blocks[o - 1]; + const new_key = new_block.key; + const old_key = old_block.key; + if (new_block === old_block) { + // do nothing + next = new_block.first; + o--; + n--; + } + else if (!new_lookup.has(old_key)) { + // remove old block + destroy(old_block, lookup); + o--; + } + else if (!lookup.has(new_key) || will_move.has(new_key)) { + insert(new_block); + } + else if (did_move.has(old_key)) { + o--; + } + else if (deltas.get(new_key) > deltas.get(old_key)) { + did_move.add(new_key); + insert(new_block); + } + else { + will_move.add(old_key); + o--; + } + } + while (o--) { + const old_block = old_blocks[o]; + if (!new_lookup.has(old_block.key)) + destroy(old_block, lookup); + } + while (n) + insert(new_blocks[n - 1]); + return new_blocks; +} + +function get_spread_update(levels, updates) { + const update = {}; + const to_null_out = {}; + const accounted_for = { $$scope: 1 }; + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + if (n) { + for (const key in o) { + if (!(key in n)) + to_null_out[key] = 1; + } + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + levels[i] = n; + } + else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + for (const key in to_null_out) { + if (!(key in update)) + update[key] = undefined; + } + return update; +} + +function bind(component, name, callback) { + const index = component.$$.props[name]; + if (index !== undefined) { + component.$$.bound[index] = callback; + callback(component.$$.ctx[index]); + } +} +function create_component(block) { + block && block.c(); +} +function mount_component(component, target, anchor, customElement) { + const { fragment, on_mount, on_destroy, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + // onMount happens before the initial afterUpdate + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } + else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); +} +function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } +} +function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); +} +function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: null, + // state + props, + update: noop, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles && append_styles($$.root); + let ready = false; + $$.ctx = instance + ? instance(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) + : []; + $$.update(); + ready = true; + run_all($$.before_update); + // `false` as a special case of no DOM component + $$.fragment = create_fragment ? create_fragment($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + const nodes = children(options.target); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } + else { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + flush(); + } + set_current_component(parent_component); +} +/** + * Base class for Svelte components. Used when dev=false. + */ +class SvelteComponent { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } +} + +const subscriber_queue = []; +/** + * Creates a `Readable` store that allows reading by subscription. + * @param value initial value + * @param {StartStopNotifier}start start and stop notifications for subscriptions + */ +function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; +} +/** + * Create a `Writable` store that allows both updating and reading by subscription. + * @param {*=}value initial value + * @param {StartStopNotifier=}start start and stop notifications for subscriptions + */ +function writable(value, start = noop) { + let stop; + const subscribers = new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { // store is ready + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set) || noop; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; +} +function derived(stores, fn, initial_value) { + const single = !Array.isArray(stores); + const stores_array = single + ? [stores] + : stores; + const auto = fn.length < 2; + return readable(initial_value, (set) => { + let inited = false; + const values = []; + let pending = 0; + let cleanup = noop; + const sync = () => { + if (pending) { + return; + } + cleanup(); + const result = fn(single ? values[0] : values, set); + if (auto) { + set(result); + } + else { + cleanup = is_function(result) ? result : noop; + } + }; + const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { + values[i] = value; + pending &= ~(1 << i); + if (inited) { + sync(); + } + }, () => { + pending |= (1 << i); + })); + inited = true; + sync(); + return function stop() { + run_all(unsubscribers); + cleanup(); + }; + }); +} + +const LONGFORM_CURRENT_PLUGIN_DATA_VERSION = 2; +const LONGFORM_CURRENT_INDEX_VERSION = 1; +var ProjectLoadError; +(function (ProjectLoadError) { + ProjectLoadError[ProjectLoadError["None"] = 0] = "None"; + ProjectLoadError["MissingMetadata"] = "This project\u2019s metadata is either missing or invalid. Please check its index file. If all else fails, you can reset all project tracking in settings and re-mark folders as Longform projects."; +})(ProjectLoadError || (ProjectLoadError = {})); +const DEFAULT_SETTINGS = { + version: LONGFORM_CURRENT_PLUGIN_DATA_VERSION, + projects: {}, + selectedProject: null, + selectedDraft: null, + workflows: null, + userScriptFolder: null, +}; +const TRACKED_SETTINGS_PATHS = [ + "version", + "projects", + "selectedProject", + "selectedDraft", + "userScriptFolder", +]; + +// Writable stores +const initialized = writable(false); +const pluginSettings = writable(null); +const projectMetadata = writable({}); +const currentProjectPath = writable(null); +const currentDraftPath = writable(null); +const activeFile = writable(null); +const workflows = writable({}); +const userScriptSteps = writable(null); +// Derived stores +const projects = derived([pluginSettings, projectMetadata], ([$pluginSettings, $projectMetadata]) => { + const p = {}; + Object.keys($pluginSettings.projects).forEach((projectPath) => { + if ($projectMetadata[projectPath]) { + p[projectPath] = Object.assign(Object.assign(Object.assign({}, $pluginSettings.projects[projectPath]), $projectMetadata[projectPath]), { error: ProjectLoadError.None }); + } + else { + p[projectPath] = Object.assign(Object.assign({}, $pluginSettings.projects[projectPath]), { version: -1, workflow: null, drafts: [], error: ProjectLoadError.MissingMetadata }); + } + }); + return p; +}); +const currentProject = derived([projects, currentProjectPath], ([$projects, $currentProjectPath]) => { + const project = $projects[$currentProjectPath]; + return project || null; +}); +const currentDraft = derived([currentProject, currentDraftPath], ([$currentProject, $currentDraftPath]) => { + if (!$currentProject || !$currentProject.drafts || !$currentDraftPath) { + return null; + } + return ($currentProject.drafts.find((d) => d.folder === $currentDraftPath) || null); +}); +// Compile stores +const currentWorkflow = derived([workflows, projectMetadata, currentProjectPath], ([$workflows, $projectMetadata, $currentProjectPath]) => { + const metadata = $projectMetadata[$currentProjectPath]; + if (metadata) { + const currentWorkflowName = $projectMetadata[$currentProjectPath].workflow; + if (currentWorkflowName) { + const workflow = $workflows[currentWorkflowName]; + return workflow; + } + return null; + } + return null; +}); + +var CompileStepKind; +(function (CompileStepKind) { + /** Takes an array of scene files, processes them in some way, and outputs an array of scene files. */ + CompileStepKind["Scene"] = "Scene"; + /** Takes an array of scene files and processes them such that the output is a single manuscript file. */ + CompileStepKind["Join"] = "Join"; + /** Takes a single manuscript file, processes it in some way, and outputs a single manuscript file. */ + CompileStepKind["Manuscript"] = "Manuscript"; +})(CompileStepKind || (CompileStepKind = {})); +function formatStepKind(k) { + switch (k) { + case CompileStepKind.Scene: + return "Scene"; + case CompileStepKind.Join: + return "Join"; + case CompileStepKind.Manuscript: + return "Manuscript"; + } +} +function explainStepKind(k) { + switch (k) { + case CompileStepKind.Scene: + return "Runs on every scene in your manuscript and outputs the resulting scenes."; + case CompileStepKind.Join: + return "Accepts all scenes as input and outputs a single manuscript."; + case CompileStepKind.Manuscript: + return "Runs once on your compiled manuscript."; + } +} +var CompileStepOptionType; +(function (CompileStepOptionType) { + CompileStepOptionType[CompileStepOptionType["Boolean"] = 0] = "Boolean"; + CompileStepOptionType[CompileStepOptionType["Text"] = 1] = "Text"; +})(CompileStepOptionType || (CompileStepOptionType = {})); +function makeBuiltinStep(v, isScript = false) { + return Object.assign(Object.assign({}, v), { description: Object.assign(Object.assign({}, v.description), { canonicalID: v.id, isScript: isScript }), optionValues: v.description.options.reduce((agg, opt) => { + return Object.assign(Object.assign({}, agg), { [opt.id]: opt.default }); + }, {}) }); +} +function typeMismatchError(expected, got, context) { + return new Error(`[Longform] A compile step received a type it did not expect. It expected "${expected}", but got "${got}" with step kind "${context.kind}"`); +} +const PLACEHOLDER_MISSING_STEP = { + id: "placeholder-missing-step", + description: { + canonicalID: "placeholder-missing-step", + name: "", + description: "", + isScript: false, + availableKinds: [], + options: [], + }, + optionValues: {}, + compile: (a) => a, +}; + +function formatOptionValues(values) { + const formattedOptions = {}; + for (const key of Object.keys(values)) { + let v = values[key]; + if (typeof v === "string") { + v = v.split("\\n").join("\n"); + } + formattedOptions[key] = v; + } + return formattedOptions; +} +function compile(app, projectPath, draftName, workflow, kinds, statusCallback) { + return __awaiter(this, void 0, void 0, function* () { + // Grab draft path and metadata + const projectSettings = get_store_value(pluginSettings).projects[projectPath]; + if (!projectSettings) { + const error = `No tracked project at ${projectPath} exists for compilation.`; + console.error(`[Longform] ${error}`); + statusCallback({ + kind: "CompileStatusError", + error, + }); + return; + } + const scenePath = (scene) => obsidian.normalizePath(`${projectPath}/${projectSettings.draftsPath}/${draftName}/${scene}.md`); + const draftMetadata = get_store_value(projectMetadata)[projectPath].drafts.find((d) => d.folder === draftName); + if (!draftMetadata) { + const error = `No draft named ${draftName} exists in ${projectPath} for compilation.`; + console.error(`[Longform] ${error}`); + statusCallback({ + kind: "CompileStatusError", + error, + }); + return; + } + let currentInput = []; + // Build initial inputs + for (const scene of draftMetadata.scenes) { + const path = scenePath(scene); + const contents = yield app.vault.adapter.read(path); + const metadata = app.metadataCache.getCache(path); + currentInput.push({ + path, + name: scene, + contents, + metadata, + }); + } + for (let index = 0; index < workflow.steps.length; index++) { + const step = workflow.steps[index]; + const kind = index < kinds.length ? kinds[index] : null; + if (kind === null) { + const error = `No step kind data for step at position ${index}.`; + console.error(`[Longform] ${error}`); + statusCallback({ + kind: "CompileStatusError", + error, + }); + return; + } + const context = { + kind, + optionValues: formatOptionValues(step.optionValues), + projectPath, + app, + }; + console.log(`[Longform] Running compile step ${step.description.name} with context:`, context); + statusCallback({ + kind: "CompileStatusStep", + stepIndex: index, + totalSteps: workflow.steps.length, + stepKind: kind, + }); + // TODO: how to enforce typings here? + try { + currentInput = yield step.compile(currentInput, context); + } + catch (error) { + console.error("[Longform]", error); + statusCallback({ + kind: "CompileStatusError", + error: `${error}`, + }); + return; + } + } + console.log(`[Longform] Compile workflow "${workflow.name}" finished with final result:`, currentInput); + statusCallback({ + kind: "CompileStatusSuccess", + }); + }); +} +const DEFAULT_WORKFLOWS = { + "Default Workflow": { + name: "Default Workflow", + description: "A starter workflow. Feel free to edit, rename, or delete it and create your own.", + steps: [ + { + id: "strip-frontmatter", + optionValues: {}, + }, + { + id: "remove-links", + optionValues: { + "remove-wikilinks": true, + "remove-external-links": true, + }, + }, + { + id: "prepend-title", + optionValues: { + format: "## $1", + separator: "\n\n", + }, + }, + { + id: "concatenate-text", + optionValues: { + separator: "\\n\\n---\\n\\n", + }, + }, + { + id: "write-to-note", + optionValues: { + target: "manuscript.md", + "open-after": true, + }, + }, + ], + }, +}; + +const ConcatenateTextStep = makeBuiltinStep({ + id: "concatenate-text", + description: { + name: "Concatenate Text", + description: "Combines all scenes together in order into a manuscript.", + availableKinds: [CompileStepKind.Join], + options: [ + { + id: "separator", + name: "Separator", + description: "Text to put between joined scenes.", + type: CompileStepOptionType.Text, + default: "\n\n", + }, + ], + }, + compile(input, context) { + if (!Array.isArray(input)) { + throw typeMismatchError("string[]", typeof input, context); + } + const separator = context.optionValues["separator"]; + return { + contents: input.map((i) => i.contents).join(separator), + }; + }, +}); + +const PrependTitleStep = makeBuiltinStep({ + id: "prepend-title", + description: { + name: "Prepend Title", + description: "Prepends the scene title to the scene text.", + availableKinds: [CompileStepKind.Scene], + options: [ + { + id: "format", + name: "Title Format", + description: "Format of title. $1 will be replaced with title. $2, if present, will be replaced with scene number.", + type: CompileStepOptionType.Text, + default: "$1", + }, + { + id: "separator", + name: "Separator", + description: "Text to put between title and scene text.", + type: CompileStepOptionType.Text, + default: "\n\n", + }, + ], + }, + compile(input, context) { + const format = context.optionValues["format"]; + const separator = context.optionValues["separator"]; + return input.map((sceneInput, index) => { + const title = format + .replace("$1", sceneInput.name) + .replace("$2", `${index + 1}`); + const contents = `${title}${separator}${sceneInput.contents}`; + return Object.assign(Object.assign({}, sceneInput), { contents }); + }); + }, +}); + +const MARKDOWN_COMMENTS_REGEX = /%%([\s\S]*?)%%/gm; +const HTML_COMMENTS_REGEX = //gm; +const RemoveCommentsStep = makeBuiltinStep({ + id: "remove-comments", + description: { + name: "Remove Comments", + description: "Removes markdown and/or html comments.", + availableKinds: [CompileStepKind.Scene, CompileStepKind.Manuscript], + options: [ + { + id: "remove-markdown-comments", + name: "Remove Markdown Comments", + description: "Remove markdown-style comments (%% text %%)", + type: CompileStepOptionType.Boolean, + default: true, + }, + { + id: "remove-html-comments", + name: "Remove HTML Comments", + description: "Remove HTML-style comments ()", + type: CompileStepOptionType.Boolean, + default: true, + }, + ], + }, + compile(input, context) { + const removeMarkdownComments = context.optionValues["remove-markdown-comments"]; + const removeHTMLComments = context.optionValues["remove-html-comments"]; + const replaceComments = (contents) => { + if (removeMarkdownComments) { + contents = contents.replace(MARKDOWN_COMMENTS_REGEX, () => ""); + } + if (removeHTMLComments) { + contents = contents.replace(HTML_COMMENTS_REGEX, () => ""); + } + return contents; + }; + if (context.kind === CompileStepKind.Scene) { + return input.map((sceneInput) => { + const contents = replaceComments(sceneInput.contents); + return Object.assign(Object.assign({}, sceneInput), { contents }); + }); + } + else { + return Object.assign(Object.assign({}, input), { contents: replaceComments(input.contents) }); + } + }, +}); + +const WIKILINKS_REGEX = /\[\[([^[|]+)(|[^[]+)?\]\]/gm; +const EXTERNAL_LINKS_REGEX = /\[([^[]+)\](\(.*\))/gm; +const RemoveLinksStep = makeBuiltinStep({ + id: "remove-links", + description: { + name: "Remove Links", + description: "Removes wiki and/or external links.", + availableKinds: [CompileStepKind.Scene, CompileStepKind.Manuscript], + options: [ + { + id: "remove-wikilinks", + name: "Remove Wikilinks", + description: "Remove brackets from [[wikilinks]].", + type: CompileStepOptionType.Boolean, + default: true, + }, + { + id: "remove-external-links", + name: "Remove External Links", + description: "Remove external links, leaving only the anchor text.", + type: CompileStepOptionType.Boolean, + default: true, + }, + ], + }, + compile(input, context) { + const removeWikilinks = context.optionValues["remove-wikilinks"]; + const removeExternalLinks = context.optionValues["remove-external-links"]; + const replaceLinks = (contents) => { + if (removeWikilinks) { + contents = contents.replace(WIKILINKS_REGEX, (_match, p1, p2) => { + if (p2) { + return p2.slice(1); + } + else { + return p1; + } + }); + } + if (removeExternalLinks) { + contents = contents.replace(EXTERNAL_LINKS_REGEX, (_match, p1) => p1); + } + return contents; + }; + if (context.kind === CompileStepKind.Scene) { + return input.map((sceneInput) => { + const contents = replaceLinks(sceneInput.contents); + return Object.assign(Object.assign({}, sceneInput), { contents }); + }); + } + else { + return Object.assign(Object.assign({}, input), { contents: replaceLinks(input.contents) }); + } + }, +}); + +const STRIKETHROUGH_REGEX = /~~(.*?)~~/gm; +const RemoveStrikethroughsStep = makeBuiltinStep({ + id: "remove-strikethroughs", + description: { + name: "Remove Strikethroughs", + description: "Removes struck-through ~~text~~.", + availableKinds: [CompileStepKind.Scene, CompileStepKind.Manuscript], + options: [], + }, + compile(input, context) { + if (context.kind === CompileStepKind.Scene) { + return input.map((sceneInput) => { + return Object.assign(Object.assign({}, sceneInput), { contents: sceneInput.contents.replace(STRIKETHROUGH_REGEX, () => "") }); + }); + } + else { + return Object.assign(Object.assign({}, input), { contents: input.contents.replace(STRIKETHROUGH_REGEX, () => "") }); + } + }, +}); + +const StripFrontmatterStep = makeBuiltinStep({ + id: "strip-frontmatter", + description: { + name: "Strip Frontmatter", + description: "Removes the YAML frontmatter section from the scene or manuscript.", + availableKinds: [CompileStepKind.Scene, CompileStepKind.Manuscript], + options: [], + }, + compile(input, context) { + if (context.kind === CompileStepKind.Scene) { + return input.map((sceneInput) => { + const contents = sceneInput.contents.replace(/^---(.*?\n)*---\n*/gm, ""); + return Object.assign(Object.assign({}, sceneInput), { contents }); + }); + } + else { + return Object.assign(Object.assign({}, input), { contents: input.contents.replace(/^---(.*?\n)*---\n*/gm, "") }); + } + }, +}); + +const WriteToNoteStep = makeBuiltinStep({ + id: "write-to-note", + description: { + name: "Save as Note", + description: "Saves your manuscript as a note in your vault.", + availableKinds: [CompileStepKind.Manuscript], + options: [ + { + id: "target", + name: "Output path", + description: "Path for the created manuscript note, relative to your project.", + type: CompileStepOptionType.Text, + default: "manuscript.md", + }, + { + id: "open-after", + name: "Open Compiled Manuscript", + description: "If checked, open the compiled manuscript in a new pane.", + type: CompileStepOptionType.Boolean, + default: true, + }, + ], + }, + compile(input, context) { + return __awaiter(this, void 0, void 0, function* () { + if (context.kind !== CompileStepKind.Manuscript) { + throw new Error("Cannot write non-manuscript as note."); + } + else { + const target = context.optionValues["target"]; + const openAfter = context.optionValues["open-after"]; + if (!target || target.length == 0) { + throw new Error("Invalid path for Save as Note."); + } + const file = target.endsWith(".md") ? target : target + ".md"; + const path = obsidian.normalizePath(`${context.projectPath}/${file}`); + const pathComponents = path.split("/"); + pathComponents.pop(); + try { + yield context.app.vault.createFolder(pathComponents.join("/")); + } + catch (e) { + // do nothing, folder already existed + } + yield context.app.vault.adapter.write(path, input.contents); + if (openAfter) { + context.app.workspace.openLinkText(path, "/", true); + } + return input; + } + }); + }, +}); + +const BUILTIN_STEPS = [ + ConcatenateTextStep, + PrependTitleStep, + RemoveCommentsStep, + RemoveLinksStep, + RemoveStrikethroughsStep, + StripFrontmatterStep, + WriteToNoteStep, +]; + +/* src/view/compile/add-step-modal/AddStepModal.svelte generated by Svelte v3.43.1 */ + +function add_css$b(target) { + append_styles(target, "svelte-voc2lx", ".longform-steps-grid.svelte-voc2lx.svelte-voc2lx{display:grid;grid-template-columns:1fr 1fr;gap:1rem;grid-auto-rows:auto}.longform-compile-step.svelte-voc2lx.svelte-voc2lx{cursor:pointer;grid-column:auto;grid-row:auto;background-color:var(--background-secondary);border:2px solid var(--background-modifier-border);border-radius:1rem;padding:0.5rem}.longform-compile-step.svelte-voc2lx.svelte-voc2lx:hover{border:2px solid var(--text-accent);background-color:var(--background-modifier-form-field)}.longform-compile-step.svelte-voc2lx h3.svelte-voc2lx{padding:8px 0;margin:0}.longform-compile-step.svelte-voc2lx .longform-step-kind-pill.svelte-voc2lx{background-color:var(--text-accent);color:var(--text-on-accent);border-radius:10px;font-size:0.7rem;font-weight:bold;padding:0.25rem;margin-right:0.25rem;height:1.2rem}"); +} + +function get_each_context$5(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[9] = list[i]; + return child_ctx; +} + +function get_each_context_1$1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[12] = list[i]; + return child_ctx; +} + +function get_each_context_2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[9] = list[i]; + return child_ctx; +} + +function get_each_context_3(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[12] = list[i]; + return child_ctx; +} + +// (31:10) {#each step.description.availableKinds as kind} +function create_each_block_3(ctx) { + let span; + let t_value = formatStepKind(/*kind*/ ctx[12]) + ""; + let t; + let span_title_value; + + return { + c() { + span = element("span"); + t = text(t_value); + attr(span, "class", "longform-step-kind-pill svelte-voc2lx"); + attr(span, "title", span_title_value = explainStepKind(/*kind*/ ctx[12])); + }, + m(target, anchor) { + insert(target, span, anchor); + append(span, t); + }, + p: noop, + d(detaching) { + if (detaching) detach(span); + } + }; +} + +// (27:4) {#each BUILTIN_STEPS as step} +function create_each_block_2(ctx) { + let div1; + let h3; + let t0_value = /*step*/ ctx[9].description.name + ""; + let t0; + let t1; + let div0; + let t2; + let p; + let t3_value = /*step*/ ctx[9].description.description + ""; + let t3; + let t4; + let mounted; + let dispose; + let each_value_3 = /*step*/ ctx[9].description.availableKinds; + let each_blocks = []; + + for (let i = 0; i < each_value_3.length; i += 1) { + each_blocks[i] = create_each_block_3(get_each_context_3(ctx, each_value_3, i)); + } + + function click_handler() { + return /*click_handler*/ ctx[2](/*step*/ ctx[9]); + } + + return { + c() { + div1 = element("div"); + h3 = element("h3"); + t0 = text(t0_value); + t1 = space(); + div0 = element("div"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t2 = space(); + p = element("p"); + t3 = text(t3_value); + t4 = space(); + attr(h3, "class", "svelte-voc2lx"); + attr(div0, "class", "longform-step-pill-container"); + attr(div1, "class", "longform-compile-step svelte-voc2lx"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append(div1, h3); + append(h3, t0); + append(div1, t1); + append(div1, div0); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div0, null); + } + + append(div0, t2); + append(div0, p); + append(p, t3); + append(div1, t4); + + if (!mounted) { + dispose = listen(div1, "click", click_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + + if (dirty & /*explainStepKind, BUILTIN_STEPS, formatStepKind*/ 0) { + each_value_3 = /*step*/ ctx[9].description.availableKinds; + let i; + + for (i = 0; i < each_value_3.length; i += 1) { + const child_ctx = get_each_context_3(ctx, each_value_3, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_3(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(div0, t2); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value_3.length; + } + }, + d(detaching) { + if (detaching) detach(div1); + destroy_each(each_blocks, detaching); + mounted = false; + dispose(); + } + }; +} + +// (41:2) {#if $userScriptSteps} +function create_if_block$7(ctx) { + let h2; + let t1; + let div; + let each_value = /*$userScriptSteps*/ ctx[0]; + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$5(get_each_context$5(ctx, each_value, i)); + } + + return { + c() { + h2 = element("h2"); + h2.textContent = "User Script Steps"; + t1 = space(); + div = element("div"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + attr(div, "class", "longform-steps-grid svelte-voc2lx"); + }, + m(target, anchor) { + insert(target, h2, anchor); + insert(target, t1, anchor); + insert(target, div, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div, null); + } + }, + p(ctx, dirty) { + if (dirty & /*onStepClick, $userScriptSteps, explainStepKind, formatStepKind*/ 3) { + each_value = /*$userScriptSteps*/ ctx[0]; + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$5(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block$5(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(div, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value.length; + } + }, + d(detaching) { + if (detaching) detach(h2); + if (detaching) detach(t1); + if (detaching) detach(div); + destroy_each(each_blocks, detaching); + } + }; +} + +// (48:12) {#each step.description.availableKinds as kind} +function create_each_block_1$1(ctx) { + let span; + let t_value = formatStepKind(/*kind*/ ctx[12]) + ""; + let t; + let span_title_value; + + return { + c() { + span = element("span"); + t = text(t_value); + attr(span, "class", "longform-step-kind-pill svelte-voc2lx"); + attr(span, "title", span_title_value = explainStepKind(/*kind*/ ctx[12])); + }, + m(target, anchor) { + insert(target, span, anchor); + append(span, t); + }, + p(ctx, dirty) { + if (dirty & /*$userScriptSteps*/ 1 && t_value !== (t_value = formatStepKind(/*kind*/ ctx[12]) + "")) set_data(t, t_value); + + if (dirty & /*$userScriptSteps*/ 1 && span_title_value !== (span_title_value = explainStepKind(/*kind*/ ctx[12]))) { + attr(span, "title", span_title_value); + } + }, + d(detaching) { + if (detaching) detach(span); + } + }; +} + +// (44:6) {#each $userScriptSteps as step} +function create_each_block$5(ctx) { + let div1; + let h3; + let t0_value = /*step*/ ctx[9].description.name + ""; + let t0; + let t1; + let div0; + let t2; + let p; + let t3_value = /*step*/ ctx[9].description.description + ""; + let t3; + let t4; + let mounted; + let dispose; + let each_value_1 = /*step*/ ctx[9].description.availableKinds; + let each_blocks = []; + + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1$1(get_each_context_1$1(ctx, each_value_1, i)); + } + + function click_handler_1() { + return /*click_handler_1*/ ctx[3](/*step*/ ctx[9]); + } + + return { + c() { + div1 = element("div"); + h3 = element("h3"); + t0 = text(t0_value); + t1 = space(); + div0 = element("div"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t2 = space(); + p = element("p"); + t3 = text(t3_value); + t4 = space(); + attr(h3, "class", "svelte-voc2lx"); + attr(div0, "class", "longform-step-pill-container"); + attr(div1, "class", "longform-compile-step svelte-voc2lx"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append(div1, h3); + append(h3, t0); + append(div1, t1); + append(div1, div0); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div0, null); + } + + append(div0, t2); + append(div0, p); + append(p, t3); + append(div1, t4); + + if (!mounted) { + dispose = listen(div1, "click", click_handler_1); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (dirty & /*$userScriptSteps*/ 1 && t0_value !== (t0_value = /*step*/ ctx[9].description.name + "")) set_data(t0, t0_value); + + if (dirty & /*explainStepKind, $userScriptSteps, formatStepKind*/ 1) { + each_value_1 = /*step*/ ctx[9].description.availableKinds; + let i; + + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1$1(ctx, each_value_1, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_1$1(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(div0, t2); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value_1.length; + } + + if (dirty & /*$userScriptSteps*/ 1 && t3_value !== (t3_value = /*step*/ ctx[9].description.description + "")) set_data(t3, t3_value); + }, + d(detaching) { + if (detaching) detach(div1); + destroy_each(each_blocks, detaching); + mounted = false; + dispose(); + } + }; +} + +function create_fragment$e(ctx) { + let div1; + let p; + let t1; + let h2; + let t3; + let div0; + let t4; + let each_value_2 = BUILTIN_STEPS; + let each_blocks = []; + + for (let i = 0; i < each_value_2.length; i += 1) { + each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); + } + + let if_block = /*$userScriptSteps*/ ctx[0] && create_if_block$7(ctx); + + return { + c() { + div1 = element("div"); + p = element("p"); + p.textContent = "Choose a step from the following options to add to your current compile\n workflow."; + t1 = space(); + h2 = element("h2"); + h2.textContent = "Built-in Steps"; + t3 = space(); + div0 = element("div"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t4 = space(); + if (if_block) if_block.c(); + attr(div0, "class", "longform-steps-grid svelte-voc2lx"); + attr(div1, "class", "longform-add-step-modal-contents"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append(div1, p); + append(div1, t1); + append(div1, h2); + append(div1, t3); + append(div1, div0); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div0, null); + } + + append(div1, t4); + if (if_block) if_block.m(div1, null); + }, + p(ctx, [dirty]) { + if (dirty & /*onStepClick, BUILTIN_STEPS, explainStepKind, formatStepKind*/ 2) { + each_value_2 = BUILTIN_STEPS; + let i; + + for (i = 0; i < each_value_2.length; i += 1) { + const child_ctx = get_each_context_2(ctx, each_value_2, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_2(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(div0, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value_2.length; + } + + if (/*$userScriptSteps*/ ctx[0]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$7(ctx); + if_block.c(); + if_block.m(div1, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(div1); + destroy_each(each_blocks, detaching); + if (if_block) if_block.d(); + } + }; +} + +function instance$e($$self, $$props, $$invalidate) { + let $workflows; + let $currentProjectPath; + let $projectMetadata; + let $currentWorkflow; + let $userScriptSteps; + component_subscribe($$self, workflows, $$value => $$invalidate(4, $workflows = $$value)); + component_subscribe($$self, currentProjectPath, $$value => $$invalidate(5, $currentProjectPath = $$value)); + component_subscribe($$self, projectMetadata, $$value => $$invalidate(6, $projectMetadata = $$value)); + component_subscribe($$self, currentWorkflow, $$value => $$invalidate(7, $currentWorkflow = $$value)); + component_subscribe($$self, userScriptSteps, $$value => $$invalidate(0, $userScriptSteps = $$value)); + const close = getContext("close"); + + function onStepClick(step) { + // Inject the current epoch into the step ID to allow + // multiple same-typed steps. + const newWorkflow = Object.assign(Object.assign({}, $currentWorkflow), { + steps: [ + ...$currentWorkflow.steps, + Object.assign(Object.assign({}, step), { id: `${step.id}-${Date.now()}` }) + ] + }); + + const currentWorkflowName = $projectMetadata[$currentProjectPath].workflow; + set_store_value(workflows, $workflows[currentWorkflowName] = newWorkflow, $workflows); + close(); + } + + const click_handler = step => onStepClick(step); + const click_handler_1 = step => onStepClick(step); + return [$userScriptSteps, onStepClick, click_handler, click_handler_1]; +} + +class AddStepModal extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$e, create_fragment$e, safe_not_equal, {}, add_css$b); + } +} + +class AddStepModalContainer extends obsidian.Modal { + constructor(app) { + super(app); + } + onOpen() { + const { contentEl } = this; + contentEl.createEl("h1", { text: "Add Compile Step to Workfow" }); + const entrypoint = contentEl.createDiv("longform-add-step-root"); + const context = new Map(); + context.set("close", () => this.close()); + this.contents = new AddStepModal({ + target: entrypoint, + context, + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +} + +class ConfirmActionModal extends obsidian.Modal { + constructor(app, title, explanation, yesText, yesAction, noText = "Cancel", noAction = () => this.close()) { + super(app); + this.title = title; + this.explanation = explanation; + this.yesText = yesText; + this.yesAction = yesAction; + this.noText = noText; + this.noAction = noAction; + } + onOpen() { + const { contentEl } = this; + contentEl.createEl("h1", { text: this.title }); + contentEl.createEl("p", { text: this.explanation }); + new obsidian.ButtonComponent(contentEl) + .setButtonText(this.noText) + .onClick(this.noAction); + new obsidian.ButtonComponent(contentEl) + .setButtonText(this.yesText) + .setWarning() + .onClick(() => { + this.yesAction(); + this.close(); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +} + +const ICON_NAME = "longform"; +const ICON_SVG = ''; + +/* src/view/compile/CompileStepView.svelte generated by Svelte v3.43.1 */ + +function add_css$a(target) { + append_styles(target, "svelte-4icvr1", ".longform-compile-step.svelte-4icvr1.svelte-4icvr1{background-color:var(--background-modifier-form-field);border-radius:5px;padding:0.25rem 0.25rem 0.75rem 0.25rem;margin-bottom:1rem}.longform-compile-step-title-outer.svelte-4icvr1.svelte-4icvr1{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.longform-compile-step-title-container.svelte-4icvr1.svelte-4icvr1{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}.longform-compile-step-title-container.svelte-4icvr1 h4.svelte-4icvr1{display:inline-block;margin:0 0.5rem 0 0;padding:0}.longform-compile-step-title-container.svelte-4icvr1 .longform-step-kind-pill.svelte-4icvr1{display:flex;justify-content:center;align-items:center;background-color:var(--text-accent);color:var(--text-on-accent);border-radius:10px;font-size:0.7rem;font-weight:bold;padding:0.25rem;margin-right:0.25rem;height:1.2rem}.longform-remove-step-button.svelte-4icvr1.svelte-4icvr1{display:flex;width:20px;margin:0;align-items:center;justify-content:center;font-weight:bold}.longform-compile-step.svelte-4icvr1 p.svelte-4icvr1{margin:0;padding:0}.longform-compile-step-description.svelte-4icvr1.svelte-4icvr1{font-size:80%;color:var(--text-muted);margin-top:2px}.longform-compile-step-options.svelte-4icvr1.svelte-4icvr1{padding-left:0.5rem;border-left:1px solid var(--interactive-accent)}.longform-compile-step-option.svelte-4icvr1.svelte-4icvr1{margin-top:0.5rem}.longform-compile-step-option.svelte-4icvr1 label.svelte-4icvr1{display:block;font-weight:600;font-size:0.8rem}.longform-compile-step-option.svelte-4icvr1 input.svelte-4icvr1{color:var(--text-accent)}.longform-compile-step-checkbox-container.svelte-4icvr1.svelte-4icvr1{display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.longform-compile-step-option.svelte-4icvr1 input[type=\"text\"].svelte-4icvr1{color:var(--text-accent);margin:0 0 4px 0}.longform-compile-step-option.svelte-4icvr1 input[type=\"checkbox\"].svelte-4icvr1{color:var(--text-accent);margin:0 0.5rem 2px 0}.longform-compile-step-option.svelte-4icvr1 input.svelte-4icvr1:focus{color:var(--text-accent-hover)}.longform-compile-step-option-description.svelte-4icvr1.svelte-4icvr1{font-size:0.8rem;line-height:0.9rem;color:var(--text-faint)}.longform-compile-step-error-container.svelte-4icvr1.svelte-4icvr1{margin-top:0.5rem}.longform-compile-step-error.svelte-4icvr1.svelte-4icvr1{color:var(--text-error);font-size:0.8rem;line-height:0.9rem}"); +} + +function get_each_context$4(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[8] = list[i]; + child_ctx[9] = list; + child_ctx[10] = i; + return child_ctx; +} + +// (31:2) {:else} +function create_else_block$2(ctx) { + let div1; + let div0; + let h4; + let t0; + let t1; + let t2_value = /*step*/ ctx[0].description.name + ""; + let t2; + let t3; + let t4; + let button; + let t6; + let p; + let t7_value = /*step*/ ctx[0].description.description + ""; + let t7; + let t8; + let div2; + let t9; + let if_block1_anchor; + let mounted; + let dispose; + let if_block0 = /*calculatedKind*/ ctx[2] !== null && create_if_block_3$3(ctx); + let each_value = /*step*/ ctx[0].description.options; + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$4(get_each_context$4(ctx, each_value, i)); + } + + let if_block1 = /*error*/ ctx[3] && create_if_block_1$4(ctx); + + return { + c() { + div1 = element("div"); + div0 = element("div"); + h4 = element("h4"); + t0 = text(/*ordinal*/ ctx[1]); + t1 = text(". "); + t2 = text(t2_value); + t3 = space(); + if (if_block0) if_block0.c(); + t4 = space(); + button = element("button"); + button.textContent = "X"; + t6 = space(); + p = element("p"); + t7 = text(t7_value); + t8 = space(); + div2 = element("div"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t9 = space(); + if (if_block1) if_block1.c(); + if_block1_anchor = empty(); + attr(h4, "class", "svelte-4icvr1"); + attr(div0, "class", "longform-compile-step-title-container svelte-4icvr1"); + attr(button, "class", "longform-remove-step-button svelte-4icvr1"); + attr(div1, "class", "longform-compile-step-title-outer svelte-4icvr1"); + attr(p, "class", "longform-compile-step-description svelte-4icvr1"); + attr(div2, "class", "longform-compile-step-options svelte-4icvr1"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append(div1, div0); + append(div0, h4); + append(h4, t0); + append(h4, t1); + append(h4, t2); + append(div0, t3); + if (if_block0) if_block0.m(div0, null); + append(div1, t4); + append(div1, button); + insert(target, t6, anchor); + insert(target, p, anchor); + append(p, t7); + insert(target, t8, anchor); + insert(target, div2, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div2, null); + } + + insert(target, t9, anchor); + if (if_block1) if_block1.m(target, anchor); + insert(target, if_block1_anchor, anchor); + + if (!mounted) { + dispose = listen(button, "click", /*removeStep*/ ctx[4]); + mounted = true; + } + }, + p(ctx, dirty) { + if (dirty & /*ordinal*/ 2) set_data(t0, /*ordinal*/ ctx[1]); + if (dirty & /*step*/ 1 && t2_value !== (t2_value = /*step*/ ctx[0].description.name + "")) set_data(t2, t2_value); + + if (/*calculatedKind*/ ctx[2] !== null) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_3$3(ctx); + if_block0.c(); + if_block0.m(div0, null); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (dirty & /*step*/ 1 && t7_value !== (t7_value = /*step*/ ctx[0].description.description + "")) set_data(t7, t7_value); + + if (dirty & /*step, CompileStepOptionType*/ 1) { + each_value = /*step*/ ctx[0].description.options; + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$4(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block$4(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(div2, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value.length; + } + + if (/*error*/ ctx[3]) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block_1$4(ctx); + if_block1.c(); + if_block1.m(if_block1_anchor.parentNode, if_block1_anchor); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + }, + d(detaching) { + if (detaching) detach(div1); + if (if_block0) if_block0.d(); + if (detaching) detach(t6); + if (detaching) detach(p); + if (detaching) detach(t8); + if (detaching) detach(div2); + destroy_each(each_blocks, detaching); + if (detaching) detach(t9); + if (if_block1) if_block1.d(detaching); + if (detaching) detach(if_block1_anchor); + mounted = false; + dispose(); + } + }; +} + +// (15:2) {#if step.description.canonicalID === PLACEHOLDER_MISSING_STEP.description.canonicalID} +function create_if_block$6(ctx) { + let div1; + let div0; + let t1; + let button; + let t3; + let div2; + let mounted; + let dispose; + + return { + c() { + div1 = element("div"); + div0 = element("div"); + div0.innerHTML = `

Invalid Step

`; + t1 = space(); + button = element("button"); + button.textContent = "X"; + t3 = space(); + div2 = element("div"); + + div2.innerHTML = `

This workflow contains a step that could not be loaded. Please delete + the step to be able to run this workflow. If you’re on mobile, this may + be a user script step that did not load.

`; + + attr(div0, "class", "longform-compile-step-title-container svelte-4icvr1"); + attr(button, "class", "longform-remove-step-button svelte-4icvr1"); + attr(div1, "class", "longform-compile-step-title-outer svelte-4icvr1"); + attr(div2, "class", "longform-compile-step-error-container svelte-4icvr1"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append(div1, div0); + append(div1, t1); + append(div1, button); + insert(target, t3, anchor); + insert(target, div2, anchor); + + if (!mounted) { + dispose = listen(button, "click", /*removeStep*/ ctx[4]); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) detach(div1); + if (detaching) detach(t3); + if (detaching) detach(div2); + mounted = false; + dispose(); + } + }; +} + +// (35:8) {#if calculatedKind !== null} +function create_if_block_3$3(ctx) { + let div; + let t_value = formatStepKind(/*calculatedKind*/ ctx[2]) + ""; + let t; + let div_title_value; + + return { + c() { + div = element("div"); + t = text(t_value); + attr(div, "class", "longform-step-kind-pill svelte-4icvr1"); + attr(div, "title", div_title_value = explainStepKind(/*calculatedKind*/ ctx[2])); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t); + }, + p(ctx, dirty) { + if (dirty & /*calculatedKind*/ 4 && t_value !== (t_value = formatStepKind(/*calculatedKind*/ ctx[2]) + "")) set_data(t, t_value); + + if (dirty & /*calculatedKind*/ 4 && div_title_value !== (div_title_value = explainStepKind(/*calculatedKind*/ ctx[2]))) { + attr(div, "title", div_title_value); + } + }, + d(detaching) { + if (detaching) detach(div); + } + }; +} + +// (62:10) {:else} +function create_else_block_1$1(ctx) { + let div; + let input; + let input_id_value; + let t0; + let label; + let t1_value = /*option*/ ctx[8].name + ""; + let t1; + let label_for_value; + let mounted; + let dispose; + + function input_change_handler() { + /*input_change_handler*/ ctx[6].call(input, /*option*/ ctx[8]); + } + + return { + c() { + div = element("div"); + input = element("input"); + t0 = space(); + label = element("label"); + t1 = text(t1_value); + attr(input, "id", input_id_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id); + attr(input, "type", "checkbox"); + attr(input, "class", "svelte-4icvr1"); + attr(label, "for", label_for_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id); + attr(label, "class", "svelte-4icvr1"); + attr(div, "class", "longform-compile-step-checkbox-container svelte-4icvr1"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, input); + input.checked = /*step*/ ctx[0].optionValues[/*option*/ ctx[8].id]; + append(div, t0); + append(div, label); + append(label, t1); + + if (!mounted) { + dispose = listen(input, "change", input_change_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + + if (dirty & /*step*/ 1 && input_id_value !== (input_id_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id)) { + attr(input, "id", input_id_value); + } + + if (dirty & /*step*/ 1) { + input.checked = /*step*/ ctx[0].optionValues[/*option*/ ctx[8].id]; + } + + if (dirty & /*step*/ 1 && t1_value !== (t1_value = /*option*/ ctx[8].name + "")) set_data(t1, t1_value); + + if (dirty & /*step*/ 1 && label_for_value !== (label_for_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id)) { + attr(label, "for", label_for_value); + } + }, + d(detaching) { + if (detaching) detach(div); + mounted = false; + dispose(); + } + }; +} + +// (54:10) {#if option.type === CompileStepOptionType.Text} +function create_if_block_2$3(ctx) { + let label; + let t0_value = /*option*/ ctx[8].name + ""; + let t0; + let label_for_value; + let t1; + let input; + let input_id_value; + let input_placeholder_value; + let mounted; + let dispose; + + function input_input_handler() { + /*input_input_handler*/ ctx[5].call(input, /*option*/ ctx[8]); + } + + return { + c() { + label = element("label"); + t0 = text(t0_value); + t1 = space(); + input = element("input"); + attr(label, "for", label_for_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id); + attr(label, "class", "svelte-4icvr1"); + attr(input, "id", input_id_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id); + attr(input, "type", "text"); + attr(input, "placeholder", input_placeholder_value = /*option*/ ctx[8].default.replace(/\n/g, "\\n")); + attr(input, "class", "svelte-4icvr1"); + }, + m(target, anchor) { + insert(target, label, anchor); + append(label, t0); + insert(target, t1, anchor); + insert(target, input, anchor); + set_input_value(input, /*step*/ ctx[0].optionValues[/*option*/ ctx[8].id]); + + if (!mounted) { + dispose = listen(input, "input", input_input_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (dirty & /*step*/ 1 && t0_value !== (t0_value = /*option*/ ctx[8].name + "")) set_data(t0, t0_value); + + if (dirty & /*step*/ 1 && label_for_value !== (label_for_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id)) { + attr(label, "for", label_for_value); + } + + if (dirty & /*step*/ 1 && input_id_value !== (input_id_value = /*step*/ ctx[0].id + "-" + /*option*/ ctx[8].id)) { + attr(input, "id", input_id_value); + } + + if (dirty & /*step*/ 1 && input_placeholder_value !== (input_placeholder_value = /*option*/ ctx[8].default.replace(/\n/g, "\\n"))) { + attr(input, "placeholder", input_placeholder_value); + } + + if (dirty & /*step*/ 1 && input.value !== /*step*/ ctx[0].optionValues[/*option*/ ctx[8].id]) { + set_input_value(input, /*step*/ ctx[0].optionValues[/*option*/ ctx[8].id]); + } + }, + d(detaching) { + if (detaching) detach(label); + if (detaching) detach(t1); + if (detaching) detach(input); + mounted = false; + dispose(); + } + }; +} + +// (52:6) {#each step.description.options as option} +function create_each_block$4(ctx) { + let div; + let t0; + let p; + let t1_value = /*option*/ ctx[8].description + ""; + let t1; + let t2; + + function select_block_type_1(ctx, dirty) { + if (/*option*/ ctx[8].type === CompileStepOptionType.Text) return create_if_block_2$3; + return create_else_block_1$1; + } + + let current_block_type = select_block_type_1(ctx); + let if_block = current_block_type(ctx); + + return { + c() { + div = element("div"); + if_block.c(); + t0 = space(); + p = element("p"); + t1 = text(t1_value); + t2 = space(); + attr(p, "class", "longform-compile-step-option-description svelte-4icvr1"); + attr(div, "class", "longform-compile-step-option svelte-4icvr1"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_block.m(div, null); + append(div, t0); + append(div, p); + append(p, t1); + append(div, t2); + }, + p(ctx, dirty) { + if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) { + if_block.p(ctx, dirty); + } else { + if_block.d(1); + if_block = current_block_type(ctx); + + if (if_block) { + if_block.c(); + if_block.m(div, t0); + } + } + + if (dirty & /*step*/ 1 && t1_value !== (t1_value = /*option*/ ctx[8].description + "")) set_data(t1, t1_value); + }, + d(detaching) { + if (detaching) detach(div); + if_block.d(); + } + }; +} + +// (78:4) {#if error} +function create_if_block_1$4(ctx) { + let div; + let p; + let t; + + return { + c() { + div = element("div"); + p = element("p"); + t = text(/*error*/ ctx[3]); + attr(p, "class", "longform-compile-step-error svelte-4icvr1"); + attr(div, "class", "longform-compile-step-error-container svelte-4icvr1"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, p); + append(p, t); + }, + p(ctx, dirty) { + if (dirty & /*error*/ 8) set_data(t, /*error*/ ctx[3]); + }, + d(detaching) { + if (detaching) detach(div); + } + }; +} + +function create_fragment$d(ctx) { + let div; + + function select_block_type(ctx, dirty) { + if (/*step*/ ctx[0].description.canonicalID === PLACEHOLDER_MISSING_STEP.description.canonicalID) return create_if_block$6; + return create_else_block$2; + } + + let current_block_type = select_block_type(ctx); + let if_block = current_block_type(ctx); + + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "longform-compile-step svelte-4icvr1"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_block.m(div, null); + }, + p(ctx, [dirty]) { + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { + if_block.p(ctx, dirty); + } else { + if_block.d(1); + if_block = current_block_type(ctx); + + if (if_block) { + if_block.c(); + if_block.m(div, null); + } + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(div); + if_block.d(); + } + }; +} + +function instance$d($$self, $$props, $$invalidate) { + let { step } = $$props; + let { ordinal } = $$props; + let { calculatedKind } = $$props; + let { error } = $$props; + const dispatch = createEventDispatcher(); + + function removeStep() { + dispatch("removeStep"); + } + + function input_input_handler(option) { + step.optionValues[option.id] = this.value; + $$invalidate(0, step); + } + + function input_change_handler(option) { + step.optionValues[option.id] = this.checked; + $$invalidate(0, step); + } + + $$self.$$set = $$props => { + if ('step' in $$props) $$invalidate(0, step = $$props.step); + if ('ordinal' in $$props) $$invalidate(1, ordinal = $$props.ordinal); + if ('calculatedKind' in $$props) $$invalidate(2, calculatedKind = $$props.calculatedKind); + if ('error' in $$props) $$invalidate(3, error = $$props.error); + }; + + return [ + step, + ordinal, + calculatedKind, + error, + removeStep, + input_input_handler, + input_change_handler + ]; +} + +class CompileStepView extends SvelteComponent { + constructor(options) { + super(); + + init( + this, + options, + instance$d, + create_fragment$d, + safe_not_equal, + { + step: 0, + ordinal: 1, + calculatedKind: 2, + error: 3 + }, + add_css$a + ); + } +} + +/**! + * Sortable 1.14.0 + * @author RubaXa + * @author owenm + * @license MIT + */ +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = _objectWithoutPropertiesLoose(source, excluded); + + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +var version = "1.14.0"; + +function userAgent(pattern) { + if (typeof window !== 'undefined' && window.navigator) { + return !! /*@__PURE__*/navigator.userAgent.match(pattern); + } +} + +var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); +var Edge = userAgent(/Edge/i); +var FireFox = userAgent(/firefox/i); +var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); +var IOS = userAgent(/iP(ad|od|hone)/i); +var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); + +var captureMode = { + capture: false, + passive: false +}; + +function on(el, event, fn) { + el.addEventListener(event, fn, !IE11OrLess && captureMode); +} + +function off(el, event, fn) { + el.removeEventListener(event, fn, !IE11OrLess && captureMode); +} + +function matches( +/**HTMLElement*/ +el, +/**String*/ +selector) { + if (!selector) return; + selector[0] === '>' && (selector = selector.substring(1)); + + if (el) { + try { + if (el.matches) { + return el.matches(selector); + } else if (el.msMatchesSelector) { + return el.msMatchesSelector(selector); + } else if (el.webkitMatchesSelector) { + return el.webkitMatchesSelector(selector); + } + } catch (_) { + return false; + } + } + + return false; +} + +function getParentOrHost(el) { + return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; +} + +function closest( +/**HTMLElement*/ +el, +/**String*/ +selector, +/**HTMLElement*/ +ctx, includeCTX) { + if (el) { + ctx = ctx || document; + + do { + if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) { + return el; + } + + if (el === ctx) break; + /* jshint boss:true */ + } while (el = getParentOrHost(el)); + } + + return null; +} + +var R_SPACE = /\s+/g; + +function toggleClass(el, name, state) { + if (el && name) { + if (el.classList) { + el.classList[state ? 'add' : 'remove'](name); + } else { + var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' '); + el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' '); + } + } +} + +function css(el, prop, val) { + var style = el && el.style; + + if (style) { + if (val === void 0) { + if (document.defaultView && document.defaultView.getComputedStyle) { + val = document.defaultView.getComputedStyle(el, ''); + } else if (el.currentStyle) { + val = el.currentStyle; + } + + return prop === void 0 ? val : val[prop]; + } else { + if (!(prop in style) && prop.indexOf('webkit') === -1) { + prop = '-webkit-' + prop; + } + + style[prop] = val + (typeof val === 'string' ? '' : 'px'); + } + } +} + +function matrix(el, selfOnly) { + var appliedTransforms = ''; + + if (typeof el === 'string') { + appliedTransforms = el; + } else { + do { + var transform = css(el, 'transform'); + + if (transform && transform !== 'none') { + appliedTransforms = transform + ' ' + appliedTransforms; + } + /* jshint boss:true */ + + } while (!selfOnly && (el = el.parentNode)); + } + + var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; + /*jshint -W056 */ + + return matrixFn && new matrixFn(appliedTransforms); +} + +function find(ctx, tagName, iterator) { + if (ctx) { + var list = ctx.getElementsByTagName(tagName), + i = 0, + n = list.length; + + if (iterator) { + for (; i < n; i++) { + iterator(list[i], i); + } + } + + return list; + } + + return []; +} + +function getWindowScrollingElement() { + var scrollingElement = document.scrollingElement; + + if (scrollingElement) { + return scrollingElement; + } else { + return document.documentElement; + } +} +/** + * Returns the "bounding client rect" of given element + * @param {HTMLElement} el The element whose boundingClientRect is wanted + * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container + * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr + * @param {[Boolean]} undoScale Whether the container's scale() should be undone + * @param {[HTMLElement]} container The parent the element will be placed in + * @return {Object} The boundingClientRect of el, with specified adjustments + */ + + +function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { + if (!el.getBoundingClientRect && el !== window) return; + var elRect, top, left, bottom, right, height, width; + + if (el !== window && el.parentNode && el !== getWindowScrollingElement()) { + elRect = el.getBoundingClientRect(); + top = elRect.top; + left = elRect.left; + bottom = elRect.bottom; + right = elRect.right; + height = elRect.height; + width = elRect.width; + } else { + top = 0; + left = 0; + bottom = window.innerHeight; + right = window.innerWidth; + height = window.innerHeight; + width = window.innerWidth; + } + + if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { + // Adjust for translate() + container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312) + // Not needed on <= IE11 + + if (!IE11OrLess) { + do { + if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) { + var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container + + top -= containerRect.top + parseInt(css(container, 'border-top-width')); + left -= containerRect.left + parseInt(css(container, 'border-left-width')); + bottom = top + elRect.height; + right = left + elRect.width; + break; + } + /* jshint boss:true */ + + } while (container = container.parentNode); + } + } + + if (undoScale && el !== window) { + // Adjust for scale() + var elMatrix = matrix(container || el), + scaleX = elMatrix && elMatrix.a, + scaleY = elMatrix && elMatrix.d; + + if (elMatrix) { + top /= scaleY; + left /= scaleX; + width /= scaleX; + height /= scaleY; + bottom = top + height; + right = left + width; + } + } + + return { + top: top, + left: left, + bottom: bottom, + right: right, + width: width, + height: height + }; +} +/** + * Checks if a side of an element is scrolled past a side of its parents + * @param {HTMLElement} el The element who's side being scrolled out of view is in question + * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom') + * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom') + * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element + */ + + +function isScrolledPast(el, elSide, parentSide) { + var parent = getParentAutoScrollElement(el, true), + elSideVal = getRect(el)[elSide]; + /* jshint boss:true */ + + while (parent) { + var parentSideVal = getRect(parent)[parentSide], + visible = void 0; + + if (parentSide === 'top' || parentSide === 'left') { + visible = elSideVal >= parentSideVal; + } else { + visible = elSideVal <= parentSideVal; + } + + if (!visible) return parent; + if (parent === getWindowScrollingElement()) break; + parent = getParentAutoScrollElement(parent, false); + } + + return false; +} +/** + * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible) + * and non-draggable elements + * @param {HTMLElement} el The parent element + * @param {Number} childNum The index of the child + * @param {Object} options Parent Sortable's options + * @return {HTMLElement} The child at index childNum, or null if not found + */ + + +function getChild(el, childNum, options, includeDragEl) { + var currentChild = 0, + i = 0, + children = el.children; + + while (i < children.length) { + if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) { + if (currentChild === childNum) { + return children[i]; + } + + currentChild++; + } + + i++; + } + + return null; +} +/** + * Gets the last child in the el, ignoring ghostEl or invisible elements (clones) + * @param {HTMLElement} el Parent element + * @param {selector} selector Any other elements that should be ignored + * @return {HTMLElement} The last child, ignoring ghostEl + */ + + +function lastChild(el, selector) { + var last = el.lastElementChild; + + while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) { + last = last.previousElementSibling; + } + + return last || null; +} +/** + * Returns the index of an element within its parent for a selected set of + * elements + * @param {HTMLElement} el + * @param {selector} selector + * @return {number} + */ + + +function index(el, selector) { + var index = 0; + + if (!el || !el.parentNode) { + return -1; + } + /* jshint boss:true */ + + + while (el = el.previousElementSibling) { + if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) { + index++; + } + } + + return index; +} +/** + * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements. + * The value is returned in real pixels. + * @param {HTMLElement} el + * @return {Array} Offsets in the format of [left, top] + */ + + +function getRelativeScrollOffset(el) { + var offsetLeft = 0, + offsetTop = 0, + winScroller = getWindowScrollingElement(); + + if (el) { + do { + var elMatrix = matrix(el), + scaleX = elMatrix.a, + scaleY = elMatrix.d; + offsetLeft += el.scrollLeft * scaleX; + offsetTop += el.scrollTop * scaleY; + } while (el !== winScroller && (el = el.parentNode)); + } + + return [offsetLeft, offsetTop]; +} +/** + * Returns the index of the object within the given array + * @param {Array} arr Array that may or may not hold the object + * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find + * @return {Number} The index of the object in the array, or -1 + */ + + +function indexOfObject(arr, obj) { + for (var i in arr) { + if (!arr.hasOwnProperty(i)) continue; + + for (var key in obj) { + if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i); + } + } + + return -1; +} + +function getParentAutoScrollElement(el, includeSelf) { + // skip to window + if (!el || !el.getBoundingClientRect) return getWindowScrollingElement(); + var elem = el; + var gotSelf = false; + + do { + // we don't need to get elem css if it isn't even overflowing in the first place (performance) + if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { + var elemCSS = css(elem); + + if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) { + if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement(); + if (gotSelf || includeSelf) return elem; + gotSelf = true; + } + } + /* jshint boss:true */ + + } while (elem = elem.parentNode); + + return getWindowScrollingElement(); +} + +function extend(dst, src) { + if (dst && src) { + for (var key in src) { + if (src.hasOwnProperty(key)) { + dst[key] = src[key]; + } + } + } + + return dst; +} + +function isRectEqual(rect1, rect2) { + return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); +} + +var _throttleTimeout; + +function throttle(callback, ms) { + return function () { + if (!_throttleTimeout) { + var args = arguments, + _this = this; + + if (args.length === 1) { + callback.call(_this, args[0]); + } else { + callback.apply(_this, args); + } + + _throttleTimeout = setTimeout(function () { + _throttleTimeout = void 0; + }, ms); + } + }; +} + +function scrollBy(el, x, y) { + el.scrollLeft += x; + el.scrollTop += y; +} + +function clone(el) { + var Polymer = window.Polymer; + var $ = window.jQuery || window.Zepto; + + if (Polymer && Polymer.dom) { + return Polymer.dom(el).cloneNode(true); + } else if ($) { + return $(el).clone(true)[0]; + } else { + return el.cloneNode(true); + } +} + +var expando = 'Sortable' + new Date().getTime(); + +function AnimationStateManager() { + var animationStates = [], + animationCallbackId; + return { + captureAnimationState: function captureAnimationState() { + animationStates = []; + if (!this.options.animation) return; + var children = [].slice.call(this.el.children); + children.forEach(function (child) { + if (css(child, 'display') === 'none' || child === Sortable.ghost) return; + animationStates.push({ + target: child, + rect: getRect(child) + }); + + var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation + + + if (child.thisAnimationDuration) { + var childMatrix = matrix(child, true); + + if (childMatrix) { + fromRect.top -= childMatrix.f; + fromRect.left -= childMatrix.e; + } + } + + child.fromRect = fromRect; + }); + }, + addAnimationState: function addAnimationState(state) { + animationStates.push(state); + }, + removeAnimationState: function removeAnimationState(target) { + animationStates.splice(indexOfObject(animationStates, { + target: target + }), 1); + }, + animateAll: function animateAll(callback) { + var _this = this; + + if (!this.options.animation) { + clearTimeout(animationCallbackId); + if (typeof callback === 'function') callback(); + return; + } + + var animating = false, + animationTime = 0; + animationStates.forEach(function (state) { + var time = 0, + target = state.target, + fromRect = target.fromRect, + toRect = getRect(target), + prevFromRect = target.prevFromRect, + prevToRect = target.prevToRect, + animatingRect = state.rect, + targetMatrix = matrix(target, true); + + if (targetMatrix) { + // Compensate for current animation + toRect.top -= targetMatrix.f; + toRect.left -= targetMatrix.e; + } + + target.toRect = toRect; + + if (target.thisAnimationDuration) { + // Could also check if animatingRect is between fromRect and toRect + if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect + (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { + // If returning to same place as started from animation and on same axis + time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); + } + } // if fromRect != toRect: animate + + + if (!isRectEqual(toRect, fromRect)) { + target.prevFromRect = fromRect; + target.prevToRect = toRect; + + if (!time) { + time = _this.options.animation; + } + + _this.animate(target, animatingRect, toRect, time); + } + + if (time) { + animating = true; + animationTime = Math.max(animationTime, time); + clearTimeout(target.animationResetTimer); + target.animationResetTimer = setTimeout(function () { + target.animationTime = 0; + target.prevFromRect = null; + target.fromRect = null; + target.prevToRect = null; + target.thisAnimationDuration = null; + }, time); + target.thisAnimationDuration = time; + } + }); + clearTimeout(animationCallbackId); + + if (!animating) { + if (typeof callback === 'function') callback(); + } else { + animationCallbackId = setTimeout(function () { + if (typeof callback === 'function') callback(); + }, animationTime); + } + + animationStates = []; + }, + animate: function animate(target, currentRect, toRect, duration) { + if (duration) { + css(target, 'transition', ''); + css(target, 'transform', ''); + var elMatrix = matrix(this.el), + scaleX = elMatrix && elMatrix.a, + scaleY = elMatrix && elMatrix.d, + translateX = (currentRect.left - toRect.left) / (scaleX || 1), + translateY = (currentRect.top - toRect.top) / (scaleY || 1); + target.animatingX = !!translateX; + target.animatingY = !!translateY; + css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)'); + this.forRepaintDummy = repaint(target); // repaint + + css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : '')); + css(target, 'transform', 'translate3d(0,0,0)'); + typeof target.animated === 'number' && clearTimeout(target.animated); + target.animated = setTimeout(function () { + css(target, 'transition', ''); + css(target, 'transform', ''); + target.animated = false; + target.animatingX = false; + target.animatingY = false; + }, duration); + } + } + }; +} + +function repaint(target) { + return target.offsetWidth; +} + +function calculateRealTime(animatingRect, fromRect, toRect, options) { + return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; +} + +var plugins = []; +var defaults = { + initializeByDefault: true +}; +var PluginManager = { + mount: function mount(plugin) { + // Set default static properties + for (var option in defaults) { + if (defaults.hasOwnProperty(option) && !(option in plugin)) { + plugin[option] = defaults[option]; + } + } + + plugins.forEach(function (p) { + if (p.pluginName === plugin.pluginName) { + throw "Sortable: Cannot mount plugin ".concat(plugin.pluginName, " more than once"); + } + }); + plugins.push(plugin); + }, + pluginEvent: function pluginEvent(eventName, sortable, evt) { + var _this = this; + + this.eventCanceled = false; + + evt.cancel = function () { + _this.eventCanceled = true; + }; + + var eventNameGlobal = eventName + 'Global'; + plugins.forEach(function (plugin) { + if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable + + if (sortable[plugin.pluginName][eventNameGlobal]) { + sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({ + sortable: sortable + }, evt)); + } // Only fire plugin event if plugin is enabled in this sortable, + // and plugin has event defined + + + if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) { + sortable[plugin.pluginName][eventName](_objectSpread2({ + sortable: sortable + }, evt)); + } + }); + }, + initializePlugins: function initializePlugins(sortable, el, defaults, options) { + plugins.forEach(function (plugin) { + var pluginName = plugin.pluginName; + if (!sortable.options[pluginName] && !plugin.initializeByDefault) return; + var initialized = new plugin(sortable, el, sortable.options); + initialized.sortable = sortable; + initialized.options = sortable.options; + sortable[pluginName] = initialized; // Add default options from plugin + + _extends(defaults, initialized.defaults); + }); + + for (var option in sortable.options) { + if (!sortable.options.hasOwnProperty(option)) continue; + var modified = this.modifyOption(sortable, option, sortable.options[option]); + + if (typeof modified !== 'undefined') { + sortable.options[option] = modified; + } + } + }, + getEventProperties: function getEventProperties(name, sortable) { + var eventProperties = {}; + plugins.forEach(function (plugin) { + if (typeof plugin.eventProperties !== 'function') return; + + _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name)); + }); + return eventProperties; + }, + modifyOption: function modifyOption(sortable, name, value) { + var modifiedValue; + plugins.forEach(function (plugin) { + // Plugin must exist on the Sortable + if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin + + if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') { + modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value); + } + }); + return modifiedValue; + } +}; + +function dispatchEvent(_ref) { + var sortable = _ref.sortable, + rootEl = _ref.rootEl, + name = _ref.name, + targetEl = _ref.targetEl, + cloneEl = _ref.cloneEl, + toEl = _ref.toEl, + fromEl = _ref.fromEl, + oldIndex = _ref.oldIndex, + newIndex = _ref.newIndex, + oldDraggableIndex = _ref.oldDraggableIndex, + newDraggableIndex = _ref.newDraggableIndex, + originalEvent = _ref.originalEvent, + putSortable = _ref.putSortable, + extraEventProperties = _ref.extraEventProperties; + sortable = sortable || rootEl && rootEl[expando]; + if (!sortable) return; + var evt, + options = sortable.options, + onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature + + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent(name, { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent('Event'); + evt.initEvent(name, true, true); + } + + evt.to = toEl || rootEl; + evt.from = fromEl || rootEl; + evt.item = targetEl || rootEl; + evt.clone = cloneEl; + evt.oldIndex = oldIndex; + evt.newIndex = newIndex; + evt.oldDraggableIndex = oldDraggableIndex; + evt.newDraggableIndex = newDraggableIndex; + evt.originalEvent = originalEvent; + evt.pullMode = putSortable ? putSortable.lastPutMode : undefined; + + var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable)); + + for (var option in allEventProperties) { + evt[option] = allEventProperties[option]; + } + + if (rootEl) { + rootEl.dispatchEvent(evt); + } + + if (options[onName]) { + options[onName].call(sortable, evt); + } +} + +var _excluded = ["evt"]; + +var pluginEvent = function pluginEvent(eventName, sortable) { + var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, + originalEvent = _ref.evt, + data = _objectWithoutProperties(_ref, _excluded); + + PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({ + dragEl: dragEl, + parentEl: parentEl, + ghostEl: ghostEl, + rootEl: rootEl, + nextEl: nextEl, + lastDownEl: lastDownEl, + cloneEl: cloneEl, + cloneHidden: cloneHidden, + dragStarted: moved, + putSortable: putSortable, + activeSortable: Sortable.active, + originalEvent: originalEvent, + oldIndex: oldIndex, + oldDraggableIndex: oldDraggableIndex, + newIndex: newIndex, + newDraggableIndex: newDraggableIndex, + hideGhostForTarget: _hideGhostForTarget, + unhideGhostForTarget: _unhideGhostForTarget, + cloneNowHidden: function cloneNowHidden() { + cloneHidden = true; + }, + cloneNowShown: function cloneNowShown() { + cloneHidden = false; + }, + dispatchSortableEvent: function dispatchSortableEvent(name) { + _dispatchEvent({ + sortable: sortable, + name: name, + originalEvent: originalEvent + }); + } + }, data)); +}; + +function _dispatchEvent(info) { + dispatchEvent(_objectSpread2({ + putSortable: putSortable, + cloneEl: cloneEl, + targetEl: dragEl, + rootEl: rootEl, + oldIndex: oldIndex, + oldDraggableIndex: oldDraggableIndex, + newIndex: newIndex, + newDraggableIndex: newDraggableIndex + }, info)); +} + +var dragEl, + parentEl, + ghostEl, + rootEl, + nextEl, + lastDownEl, + cloneEl, + cloneHidden, + oldIndex, + newIndex, + oldDraggableIndex, + newDraggableIndex, + activeGroup, + putSortable, + awaitingDragStarted = false, + ignoreNextClick = false, + sortables = [], + tapEvt, + touchEvt, + lastDx, + lastDy, + tapDistanceLeft, + tapDistanceTop, + moved, + lastTarget, + lastDirection, + pastFirstInvertThresh = false, + isCircumstantialInvert = false, + targetMoveDistance, + // For positioning ghost absolutely +ghostRelativeParent, + ghostRelativeParentInitialScroll = [], + // (left, top) +_silent = false, + savedInputChecked = []; +/** @const */ + +var documentExists = typeof document !== 'undefined', + PositionGhostAbsolutely = IOS, + CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float', + // This will not pass for IE9, because IE9 DnD only works on anchors +supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'), + supportCssPointerEvents = function () { + if (!documentExists) return; // false when <= IE11 + + if (IE11OrLess) { + return false; + } + + var el = document.createElement('x'); + el.style.cssText = 'pointer-events:auto'; + return el.style.pointerEvents === 'auto'; +}(), + _detectDirection = function _detectDirection(el, options) { + var elCSS = css(el), + elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), + child1 = getChild(el, 0, options), + child2 = getChild(el, 1, options), + firstChildCSS = child1 && css(child1), + secondChildCSS = child2 && css(child2), + firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, + secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; + + if (elCSS.display === 'flex') { + return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal'; + } + + if (elCSS.display === 'grid') { + return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal'; + } + + if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== 'none') { + var touchingSideChild2 = firstChildCSS["float"] === 'left' ? 'left' : 'right'; + return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal'; + } + + return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal'; +}, + _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) { + var dragElS1Opp = vertical ? dragRect.left : dragRect.top, + dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, + dragElOppLength = vertical ? dragRect.width : dragRect.height, + targetS1Opp = vertical ? targetRect.left : targetRect.top, + targetS2Opp = vertical ? targetRect.right : targetRect.bottom, + targetOppLength = vertical ? targetRect.width : targetRect.height; + return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; +}, + +/** + * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold. + * @param {Number} x X position + * @param {Number} y Y position + * @return {HTMLElement} Element of the first found nearest Sortable + */ +_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) { + var ret; + sortables.some(function (sortable) { + var threshold = sortable[expando].options.emptyInsertThreshold; + if (!threshold || lastChild(sortable)) return; + var rect = getRect(sortable), + insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, + insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; + + if (insideHorizontally && insideVertically) { + return ret = sortable; + } + }); + return ret; +}, + _prepareGroup = function _prepareGroup(options) { + function toFn(value, pull) { + return function (to, from, dragEl, evt) { + var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; + + if (value == null && (pull || sameGroup)) { + // Default pull value + // Default pull and put value if same group + return true; + } else if (value == null || value === false) { + return false; + } else if (pull && value === 'clone') { + return value; + } else if (typeof value === 'function') { + return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt); + } else { + var otherGroup = (pull ? to : from).options.group.name; + return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; + } + }; + } + + var group = {}; + var originalGroup = options.group; + + if (!originalGroup || _typeof(originalGroup) != 'object') { + originalGroup = { + name: originalGroup + }; + } + + group.name = originalGroup.name; + group.checkPull = toFn(originalGroup.pull, true); + group.checkPut = toFn(originalGroup.put); + group.revertClone = originalGroup.revertClone; + options.group = group; +}, + _hideGhostForTarget = function _hideGhostForTarget() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, 'display', 'none'); + } +}, + _unhideGhostForTarget = function _unhideGhostForTarget() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, 'display', ''); + } +}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position + + +if (documentExists) { + document.addEventListener('click', function (evt) { + if (ignoreNextClick) { + evt.preventDefault(); + evt.stopPropagation && evt.stopPropagation(); + evt.stopImmediatePropagation && evt.stopImmediatePropagation(); + ignoreNextClick = false; + return false; + } + }, true); +} + +var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) { + if (dragEl) { + evt = evt.touches ? evt.touches[0] : evt; + + var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); + + if (nearest) { + // Create imitation event + var event = {}; + + for (var i in evt) { + if (evt.hasOwnProperty(i)) { + event[i] = evt[i]; + } + } + + event.target = event.rootEl = nearest; + event.preventDefault = void 0; + event.stopPropagation = void 0; + + nearest[expando]._onDragOver(event); + } + } +}; + +var _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) { + if (dragEl) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + } +}; +/** + * @class Sortable + * @param {HTMLElement} el + * @param {Object} [options] + */ + + +function Sortable(el, options) { + if (!(el && el.nodeType && el.nodeType === 1)) { + throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); + } + + this.el = el; // root element + + this.options = options = _extends({}, options); // Export instance + + el[expando] = this; + var defaults = { + group: null, + sort: true, + disabled: false, + store: null, + handle: null, + draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*', + swapThreshold: 1, + // percentage; 0 <= x <= 1 + invertSwap: false, + // invert always + invertedSwapThreshold: null, + // will be set to same as swapThreshold if default + removeCloneOnHide: true, + direction: function direction() { + return _detectDirection(el, this.options); + }, + ghostClass: 'sortable-ghost', + chosenClass: 'sortable-chosen', + dragClass: 'sortable-drag', + ignore: 'a, img', + filter: null, + preventOnFilter: true, + animation: 0, + easing: null, + setData: function setData(dataTransfer, dragEl) { + dataTransfer.setData('Text', dragEl.textContent); + }, + dropBubble: false, + dragoverBubble: false, + dataIdAttr: 'data-id', + delay: 0, + delayOnTouchOnly: false, + touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, + forceFallback: false, + fallbackClass: 'sortable-fallback', + fallbackOnBody: false, + fallbackTolerance: 0, + fallbackOffset: { + x: 0, + y: 0 + }, + supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari, + emptyInsertThreshold: 5 + }; + PluginManager.initializePlugins(this, el, defaults); // Set default options + + for (var name in defaults) { + !(name in options) && (options[name] = defaults[name]); + } + + _prepareGroup(options); // Bind all private methods + + + for (var fn in this) { + if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { + this[fn] = this[fn].bind(this); + } + } // Setup drag mode + + + this.nativeDraggable = options.forceFallback ? false : supportDraggable; + + if (this.nativeDraggable) { + // Touch start threshold cannot be greater than the native dragstart threshold + this.options.touchStartThreshold = 1; + } // Bind events + + + if (options.supportPointer) { + on(el, 'pointerdown', this._onTapStart); + } else { + on(el, 'mousedown', this._onTapStart); + on(el, 'touchstart', this._onTapStart); + } + + if (this.nativeDraggable) { + on(el, 'dragover', this); + on(el, 'dragenter', this); + } + + sortables.push(this.el); // Restore sorting + + options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager + + _extends(this, AnimationStateManager()); +} + +Sortable.prototype = +/** @lends Sortable.prototype */ +{ + constructor: Sortable, + _isOutsideThisEl: function _isOutsideThisEl(target) { + if (!this.el.contains(target) && target !== this.el) { + lastTarget = null; + } + }, + _getDirection: function _getDirection(evt, target) { + return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; + }, + _onTapStart: function _onTapStart( + /** Event|TouchEvent */ + evt) { + if (!evt.cancelable) return; + + var _this = this, + el = this.el, + options = this.options, + preventOnFilter = options.preventOnFilter, + type = evt.type, + touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt, + target = (touch || evt).target, + originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, + filter = options.filter; + + _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group. + + + if (dragEl) { + return; + } + + if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { + return; // only left button and enabled + } // cancel dnd if original target is content editable + + + if (originalTarget.isContentEditable) { + return; + } // Safari ignores further event handling after mousedown + + + if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') { + return; + } + + target = closest(target, options.draggable, el, false); + + if (target && target.animated) { + return; + } + + if (lastDownEl === target) { + // Ignoring duplicate `down` + return; + } // Get the index of the dragged element within its parent + + + oldIndex = index(target); + oldDraggableIndex = index(target, options.draggable); // Check filter + + if (typeof filter === 'function') { + if (filter.call(this, evt, target, this)) { + _dispatchEvent({ + sortable: _this, + rootEl: originalTarget, + name: 'filter', + targetEl: target, + toEl: el, + fromEl: el + }); + + pluginEvent('filter', _this, { + evt: evt + }); + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; // cancel dnd + } + } else if (filter) { + filter = filter.split(',').some(function (criteria) { + criteria = closest(originalTarget, criteria.trim(), el, false); + + if (criteria) { + _dispatchEvent({ + sortable: _this, + rootEl: criteria, + name: 'filter', + targetEl: target, + fromEl: el, + toEl: el + }); + + pluginEvent('filter', _this, { + evt: evt + }); + return true; + } + }); + + if (filter) { + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; // cancel dnd + } + } + + if (options.handle && !closest(originalTarget, options.handle, el, false)) { + return; + } // Prepare `dragstart` + + + this._prepareDragStart(evt, touch, target); + }, + _prepareDragStart: function _prepareDragStart( + /** Event */ + evt, + /** Touch */ + touch, + /** HTMLElement */ + target) { + var _this = this, + el = _this.el, + options = _this.options, + ownerDocument = el.ownerDocument, + dragStartFn; + + if (target && !dragEl && target.parentNode === el) { + var dragRect = getRect(target); + rootEl = el; + dragEl = target; + parentEl = dragEl.parentNode; + nextEl = dragEl.nextSibling; + lastDownEl = target; + activeGroup = options.group; + Sortable.dragged = dragEl; + tapEvt = { + target: dragEl, + clientX: (touch || evt).clientX, + clientY: (touch || evt).clientY + }; + tapDistanceLeft = tapEvt.clientX - dragRect.left; + tapDistanceTop = tapEvt.clientY - dragRect.top; + this._lastX = (touch || evt).clientX; + this._lastY = (touch || evt).clientY; + dragEl.style['will-change'] = 'all'; + + dragStartFn = function dragStartFn() { + pluginEvent('delayEnded', _this, { + evt: evt + }); + + if (Sortable.eventCanceled) { + _this._onDrop(); + + return; + } // Delayed drag has been triggered + // we can re-enable the events: touchmove/mousemove + + + _this._disableDelayedDragEvents(); + + if (!FireFox && _this.nativeDraggable) { + dragEl.draggable = true; + } // Bind the events: dragstart/dragend + + + _this._triggerDragStart(evt, touch); // Drag start event + + + _dispatchEvent({ + sortable: _this, + name: 'choose', + originalEvent: evt + }); // Chosen item + + + toggleClass(dragEl, options.chosenClass, true); + }; // Disable "draggable" + + + options.ignore.split(',').forEach(function (criteria) { + find(dragEl, criteria.trim(), _disableDraggable); + }); + on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent); + on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent); + on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent); + on(ownerDocument, 'mouseup', _this._onDrop); + on(ownerDocument, 'touchend', _this._onDrop); + on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox) + + if (FireFox && this.nativeDraggable) { + this.options.touchStartThreshold = 4; + dragEl.draggable = true; + } + + pluginEvent('delayStart', this, { + evt: evt + }); // Delay is impossible for native DnD in Edge or IE + + if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { + if (Sortable.eventCanceled) { + this._onDrop(); + + return; + } // If the user moves the pointer or let go the click or touch + // before the delay has been reached: + // disable the delayed drag + + + on(ownerDocument, 'mouseup', _this._disableDelayedDrag); + on(ownerDocument, 'touchend', _this._disableDelayedDrag); + on(ownerDocument, 'touchcancel', _this._disableDelayedDrag); + on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler); + on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler); + options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler); + _this._dragStartTimer = setTimeout(dragStartFn, options.delay); + } else { + dragStartFn(); + } + } + }, + _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( + /** TouchEvent|PointerEvent **/ + e) { + var touch = e.touches ? e.touches[0] : e; + + if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { + this._disableDelayedDrag(); + } + }, + _disableDelayedDrag: function _disableDelayedDrag() { + dragEl && _disableDraggable(dragEl); + clearTimeout(this._dragStartTimer); + + this._disableDelayedDragEvents(); + }, + _disableDelayedDragEvents: function _disableDelayedDragEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, 'mouseup', this._disableDelayedDrag); + off(ownerDocument, 'touchend', this._disableDelayedDrag); + off(ownerDocument, 'touchcancel', this._disableDelayedDrag); + off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler); + off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler); + off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler); + }, + _triggerDragStart: function _triggerDragStart( + /** Event */ + evt, + /** Touch */ + touch) { + touch = touch || evt.pointerType == 'touch' && evt; + + if (!this.nativeDraggable || touch) { + if (this.options.supportPointer) { + on(document, 'pointermove', this._onTouchMove); + } else if (touch) { + on(document, 'touchmove', this._onTouchMove); + } else { + on(document, 'mousemove', this._onTouchMove); + } + } else { + on(dragEl, 'dragend', this); + on(rootEl, 'dragstart', this._onDragStart); + } + + try { + if (document.selection) { + // Timeout neccessary for IE9 + _nextTick(function () { + document.selection.empty(); + }); + } else { + window.getSelection().removeAllRanges(); + } + } catch (err) {} + }, + _dragStarted: function _dragStarted(fallback, evt) { + + awaitingDragStarted = false; + + if (rootEl && dragEl) { + pluginEvent('dragStarted', this, { + evt: evt + }); + + if (this.nativeDraggable) { + on(document, 'dragover', _checkOutsideTargetEl); + } + + var options = this.options; // Apply effect + + !fallback && toggleClass(dragEl, options.dragClass, false); + toggleClass(dragEl, options.ghostClass, true); + Sortable.active = this; + fallback && this._appendGhost(); // Drag start event + + _dispatchEvent({ + sortable: this, + name: 'start', + originalEvent: evt + }); + } else { + this._nulling(); + } + }, + _emulateDragOver: function _emulateDragOver() { + if (touchEvt) { + this._lastX = touchEvt.clientX; + this._lastY = touchEvt.clientY; + + _hideGhostForTarget(); + + var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + var parent = target; + + while (target && target.shadowRoot) { + target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + if (target === parent) break; + parent = target; + } + + dragEl.parentNode[expando]._isOutsideThisEl(target); + + if (parent) { + do { + if (parent[expando]) { + var inserted = void 0; + inserted = parent[expando]._onDragOver({ + clientX: touchEvt.clientX, + clientY: touchEvt.clientY, + target: target, + rootEl: parent + }); + + if (inserted && !this.options.dragoverBubble) { + break; + } + } + + target = parent; // store last element + } + /* jshint boss:true */ + while (parent = parent.parentNode); + } + + _unhideGhostForTarget(); + } + }, + _onTouchMove: function _onTouchMove( + /**TouchEvent*/ + evt) { + if (tapEvt) { + var options = this.options, + fallbackTolerance = options.fallbackTolerance, + fallbackOffset = options.fallbackOffset, + touch = evt.touches ? evt.touches[0] : evt, + ghostMatrix = ghostEl && matrix(ghostEl, true), + scaleX = ghostEl && ghostMatrix && ghostMatrix.a, + scaleY = ghostEl && ghostMatrix && ghostMatrix.d, + relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), + dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), + dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging + + if (!Sortable.active && !awaitingDragStarted) { + if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { + return; + } + + this._onDragStart(evt, true); + } + + if (ghostEl) { + if (ghostMatrix) { + ghostMatrix.e += dx - (lastDx || 0); + ghostMatrix.f += dy - (lastDy || 0); + } else { + ghostMatrix = { + a: 1, + b: 0, + c: 0, + d: 1, + e: dx, + f: dy + }; + } + + var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); + css(ghostEl, 'webkitTransform', cssMatrix); + css(ghostEl, 'mozTransform', cssMatrix); + css(ghostEl, 'msTransform', cssMatrix); + css(ghostEl, 'transform', cssMatrix); + lastDx = dx; + lastDy = dy; + touchEvt = touch; + } + + evt.cancelable && evt.preventDefault(); + } + }, + _appendGhost: function _appendGhost() { + // Bug if using scale(): https://stackoverflow.com/questions/2637058 + // Not being adjusted for + if (!ghostEl) { + var container = this.options.fallbackOnBody ? document.body : rootEl, + rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), + options = this.options; // Position absolutely + + if (PositionGhostAbsolutely) { + // Get relatively positioned parent + ghostRelativeParent = container; + + while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) { + ghostRelativeParent = ghostRelativeParent.parentNode; + } + + if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { + if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement(); + rect.top += ghostRelativeParent.scrollTop; + rect.left += ghostRelativeParent.scrollLeft; + } else { + ghostRelativeParent = getWindowScrollingElement(); + } + + ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); + } + + ghostEl = dragEl.cloneNode(true); + toggleClass(ghostEl, options.ghostClass, false); + toggleClass(ghostEl, options.fallbackClass, true); + toggleClass(ghostEl, options.dragClass, true); + css(ghostEl, 'transition', ''); + css(ghostEl, 'transform', ''); + css(ghostEl, 'box-sizing', 'border-box'); + css(ghostEl, 'margin', 0); + css(ghostEl, 'top', rect.top); + css(ghostEl, 'left', rect.left); + css(ghostEl, 'width', rect.width); + css(ghostEl, 'height', rect.height); + css(ghostEl, 'opacity', '0.8'); + css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed'); + css(ghostEl, 'zIndex', '100000'); + css(ghostEl, 'pointerEvents', 'none'); + Sortable.ghost = ghostEl; + container.appendChild(ghostEl); // Set transform-origin + + css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%'); + } + }, + _onDragStart: function _onDragStart( + /**Event*/ + evt, + /**boolean*/ + fallback) { + var _this = this; + + var dataTransfer = evt.dataTransfer; + var options = _this.options; + pluginEvent('dragStart', this, { + evt: evt + }); + + if (Sortable.eventCanceled) { + this._onDrop(); + + return; + } + + pluginEvent('setupClone', this); + + if (!Sortable.eventCanceled) { + cloneEl = clone(dragEl); + cloneEl.draggable = false; + cloneEl.style['will-change'] = ''; + + this._hideClone(); + + toggleClass(cloneEl, this.options.chosenClass, false); + Sortable.clone = cloneEl; + } // #1143: IFrame support workaround + + + _this.cloneId = _nextTick(function () { + pluginEvent('clone', _this); + if (Sortable.eventCanceled) return; + + if (!_this.options.removeCloneOnHide) { + rootEl.insertBefore(cloneEl, dragEl); } + + _this._hideClone(); + + _dispatchEvent({ + sortable: _this, + name: 'clone' + }); }); - plugins.push(plugin); + !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events + + if (fallback) { + ignoreNextClick = true; + _this._loopId = setInterval(_this._emulateDragOver, 50); + } else { + // Undo what was set in _prepareDragStart before drag started + off(document, 'mouseup', _this._onDrop); + off(document, 'touchend', _this._onDrop); + off(document, 'touchcancel', _this._onDrop); + + if (dataTransfer) { + dataTransfer.effectAllowed = 'move'; + options.setData && options.setData.call(_this, dataTransfer, dragEl); + } + + on(document, 'drop', _this); // #1276 fix: + + css(dragEl, 'transform', 'translateZ(0)'); + } + + awaitingDragStarted = true; + _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt)); + on(document, 'selectstart', _this); + moved = true; + + if (Safari) { + css(document.body, 'user-select', 'none'); + } }, - pluginEvent: function pluginEvent(eventName, sortable, evt) { - var _this = this; + // Returns true - if no further action is needed (either inserted or another condition) + _onDragOver: function _onDragOver( + /**Event*/ + evt) { + var el = this.el, + target = evt.target, + dragRect, + targetRect, + revert, + options = this.options, + group = options.group, + activeSortable = Sortable.active, + isOwner = activeGroup === group, + canSort = options.sort, + fromSortable = putSortable || activeSortable, + vertical, + _this = this, + completedFired = false; - this.eventCanceled = false; + if (_silent) return; - evt.cancel = function () { - _this.eventCanceled = true; - }; + function dragOverEvent(name, extra) { + pluginEvent(name, _this, _objectSpread2({ + evt: evt, + isOwner: isOwner, + axis: vertical ? 'vertical' : 'horizontal', + revert: revert, + dragRect: dragRect, + targetRect: targetRect, + canSort: canSort, + fromSortable: fromSortable, + target: target, + completed: completed, + onMove: function onMove(target, after) { + return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after); + }, + changed: changed + }, extra)); + } // Capture animation state - var eventNameGlobal = eventName + 'Global'; - plugins.forEach(function (plugin) { - if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable - if (sortable[plugin.pluginName][eventNameGlobal]) { - sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({ - sortable: sortable - }, evt)); - } // Only fire plugin event if plugin is enabled in this sortable, - // and plugin has event defined + function capture() { + dragOverEvent('dragOverAnimationCapture'); + _this.captureAnimationState(); - if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) { - sortable[plugin.pluginName][eventName](_objectSpread2({ - sortable: sortable - }, evt)); + if (_this !== fromSortable) { + fromSortable.captureAnimationState(); } - }); - }, - initializePlugins: function initializePlugins(sortable, el, defaults, options) { - plugins.forEach(function (plugin) { - var pluginName = plugin.pluginName; - if (!sortable.options[pluginName] && !plugin.initializeByDefault) return; - var initialized = new plugin(sortable, el, sortable.options); - initialized.sortable = sortable; - initialized.options = sortable.options; - sortable[pluginName] = initialized; // Add default options from plugin + } // Return invocation when dragEl is inserted (or completed) - _extends(defaults, initialized.defaults); - }); - for (var option in sortable.options) { - if (!sortable.options.hasOwnProperty(option)) continue; - var modified = this.modifyOption(sortable, option, sortable.options[option]); + function completed(insertion) { + dragOverEvent('dragOverCompleted', { + insertion: insertion + }); - if (typeof modified !== 'undefined') { - sortable.options[option] = modified; + if (insertion) { + // Clones must be hidden before folding animation to capture dragRectAbsolute properly + if (isOwner) { + activeSortable._hideClone(); + } else { + activeSortable._showClone(_this); + } + + if (_this !== fromSortable) { + // Set ghost class to new sortable's ghost class + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); + toggleClass(dragEl, options.ghostClass, true); + } + + if (putSortable !== _this && _this !== Sortable.active) { + putSortable = _this; + } else if (_this === Sortable.active && putSortable) { + putSortable = null; + } // Animation + + + if (fromSortable === _this) { + _this._ignoreWhileAnimating = target; + } + + _this.animateAll(function () { + dragOverEvent('dragOverAnimationComplete'); + _this._ignoreWhileAnimating = null; + }); + + if (_this !== fromSortable) { + fromSortable.animateAll(); + fromSortable._ignoreWhileAnimating = null; + } + } // Null lastTarget if it is not inside a previously swapped element + + + if (target === dragEl && !dragEl.animated || target === el && !target.animated) { + lastTarget = null; + } // no bubbling and not fallback + + + if (!options.dragoverBubble && !evt.rootEl && target !== document) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted + + + !insertion && nearestEmptyInsertDetectEvent(evt); } + + !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); + return completedFired = true; + } // Call when dragEl has been inserted + + + function changed() { + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + + _dispatchEvent({ + sortable: _this, + name: 'change', + toEl: el, + newIndex: newIndex, + newDraggableIndex: newDraggableIndex, + originalEvent: evt + }); } - }, - getEventProperties: function getEventProperties(name, sortable) { - var eventProperties = {}; - plugins.forEach(function (plugin) { - if (typeof plugin.eventProperties !== 'function') return; - _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name)); - }); - return eventProperties; - }, - modifyOption: function modifyOption(sortable, name, value) { - var modifiedValue; - plugins.forEach(function (plugin) { - // Plugin must exist on the Sortable - if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin + if (evt.preventDefault !== void 0) { + evt.cancelable && evt.preventDefault(); + } + + target = closest(target, options.draggable, el, true); + dragOverEvent('dragOver'); + if (Sortable.eventCanceled) return completedFired; + + if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { + return completed(false); + } + + ignoreNextClick = false; + + if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list + : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { + vertical = this._getDirection(evt, target) === 'vertical'; + dragRect = getRect(dragEl); + dragOverEvent('dragOverValid'); + if (Sortable.eventCanceled) return completedFired; + + if (revert) { + parentEl = rootEl; // actualization + + capture(); + + this._hideClone(); + + dragOverEvent('revert'); + + if (!Sortable.eventCanceled) { + if (nextEl) { + rootEl.insertBefore(dragEl, nextEl); + } else { + rootEl.appendChild(dragEl); + } + } + + return completed(true); + } + + var elLastChild = lastChild(el, options.draggable); + + if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { + // Insert to end of list + // If already at end of list: Do not insert + if (elLastChild === dragEl) { + return completed(false); + } // if there is a last element, it is the target - if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') { - modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value); - } - }); - return modifiedValue; - } -}; -function dispatchEvent(_ref) { - var sortable = _ref.sortable, - rootEl = _ref.rootEl, - name = _ref.name, - targetEl = _ref.targetEl, - cloneEl = _ref.cloneEl, - toEl = _ref.toEl, - fromEl = _ref.fromEl, - oldIndex = _ref.oldIndex, - newIndex = _ref.newIndex, - oldDraggableIndex = _ref.oldDraggableIndex, - newDraggableIndex = _ref.newDraggableIndex, - originalEvent = _ref.originalEvent, - putSortable = _ref.putSortable, - extraEventProperties = _ref.extraEventProperties; - sortable = sortable || rootEl && rootEl[expando]; - if (!sortable) return; - var evt, - options = sortable.options, - onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature + if (elLastChild && el === evt.target) { + target = elLastChild; + } - if (window.CustomEvent && !IE11OrLess && !Edge) { - evt = new CustomEvent(name, { - bubbles: true, - cancelable: true - }); - } else { - evt = document.createEvent('Event'); - evt.initEvent(name, true, true); - } + if (target) { + targetRect = getRect(target); + } - evt.to = toEl || rootEl; - evt.from = fromEl || rootEl; - evt.item = targetEl || rootEl; - evt.clone = cloneEl; - evt.oldIndex = oldIndex; - evt.newIndex = newIndex; - evt.oldDraggableIndex = oldDraggableIndex; - evt.newDraggableIndex = newDraggableIndex; - evt.originalEvent = originalEvent; - evt.pullMode = putSortable ? putSortable.lastPutMode : undefined; + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { + capture(); + el.appendChild(dragEl); + parentEl = el; // actualization - var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable)); + changed(); + return completed(true); + } + } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) { + // Insert to start of list + var firstChild = getChild(el, 0, options, true); - for (var option in allEventProperties) { - evt[option] = allEventProperties[option]; - } + if (firstChild === dragEl) { + return completed(false); + } - if (rootEl) { - rootEl.dispatchEvent(evt); - } + target = firstChild; + targetRect = getRect(target); - if (options[onName]) { - options[onName].call(sortable, evt); - } -} + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) { + capture(); + el.insertBefore(dragEl, firstChild); + parentEl = el; // actualization -var _excluded = ["evt"]; + changed(); + return completed(true); + } + } else if (target.parentNode === el) { + targetRect = getRect(target); + var direction = 0, + targetBeforeFirstSwap, + differentLevel = dragEl.parentNode !== el, + differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), + side1 = vertical ? 'top' : 'left', + scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'), + scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; -var pluginEvent = function pluginEvent(eventName, sortable) { - var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - originalEvent = _ref.evt, - data = _objectWithoutProperties(_ref, _excluded); + if (lastTarget !== target) { + targetBeforeFirstSwap = targetRect[side1]; + pastFirstInvertThresh = false; + isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; + } - PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({ - dragEl: dragEl, - parentEl: parentEl, - ghostEl: ghostEl, - rootEl: rootEl, - nextEl: nextEl, - lastDownEl: lastDownEl, - cloneEl: cloneEl, - cloneHidden: cloneHidden, - dragStarted: moved, - putSortable: putSortable, - activeSortable: Sortable.active, - originalEvent: originalEvent, - oldIndex: oldIndex, - oldDraggableIndex: oldDraggableIndex, - newIndex: newIndex, - newDraggableIndex: newDraggableIndex, - hideGhostForTarget: _hideGhostForTarget, - unhideGhostForTarget: _unhideGhostForTarget, - cloneNowHidden: function cloneNowHidden() { - cloneHidden = true; - }, - cloneNowShown: function cloneNowShown() { - cloneHidden = false; - }, - dispatchSortableEvent: function dispatchSortableEvent(name) { - _dispatchEvent({ - sortable: sortable, - name: name, - originalEvent: originalEvent - }); - } - }, data)); -}; + direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); + var sibling; -function _dispatchEvent(info) { - dispatchEvent(_objectSpread2({ - putSortable: putSortable, - cloneEl: cloneEl, - targetEl: dragEl, - rootEl: rootEl, - oldIndex: oldIndex, - oldDraggableIndex: oldDraggableIndex, - newIndex: newIndex, - newDraggableIndex: newDraggableIndex - }, info)); -} + if (direction !== 0) { + // Check if target is beside dragEl in respective direction (ignoring hidden elements) + var dragIndex = index(dragEl); -var dragEl, - parentEl, - ghostEl, - rootEl, - nextEl, - lastDownEl, - cloneEl, - cloneHidden, - oldIndex, - newIndex, - oldDraggableIndex, - newDraggableIndex, - activeGroup, - putSortable, - awaitingDragStarted = false, - ignoreNextClick = false, - sortables = [], - tapEvt, - touchEvt, - lastDx, - lastDy, - tapDistanceLeft, - tapDistanceTop, - moved, - lastTarget, - lastDirection, - pastFirstInvertThresh = false, - isCircumstantialInvert = false, - targetMoveDistance, - // For positioning ghost absolutely -ghostRelativeParent, - ghostRelativeParentInitialScroll = [], - // (left, top) -_silent = false, - savedInputChecked = []; -/** @const */ + do { + dragIndex -= direction; + sibling = parentEl.children[dragIndex]; + } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl)); + } // If dragEl is already beside target: Do not insert -var documentExists = typeof document !== 'undefined', - PositionGhostAbsolutely = IOS, - CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float', - // This will not pass for IE9, because IE9 DnD only works on anchors -supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'), - supportCssPointerEvents = function () { - if (!documentExists) return; // false when <= IE11 - if (IE11OrLess) { - return false; - } + if (direction === 0 || sibling === target) { + return completed(false); + } - var el = document.createElement('x'); - el.style.cssText = 'pointer-events:auto'; - return el.style.pointerEvents === 'auto'; -}(), - _detectDirection = function _detectDirection(el, options) { - var elCSS = css(el), - elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), - child1 = getChild(el, 0, options), - child2 = getChild(el, 1, options), - firstChildCSS = child1 && css(child1), - secondChildCSS = child2 && css(child2), - firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, - secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; + lastTarget = target; + lastDirection = direction; + var nextSibling = target.nextElementSibling, + after = false; + after = direction === 1; - if (elCSS.display === 'flex') { - return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal'; - } + var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); - if (elCSS.display === 'grid') { - return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal'; - } + if (moveVector !== false) { + if (moveVector === 1 || moveVector === -1) { + after = moveVector === 1; + } + + _silent = true; + setTimeout(_unsilent, 30); + capture(); + + if (after && !nextSibling) { + el.appendChild(dragEl); + } else { + target.parentNode.insertBefore(dragEl, after ? nextSibling : target); + } // Undo chrome's scroll adjustment (has no effect on other browsers) - if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== 'none') { - var touchingSideChild2 = firstChildCSS["float"] === 'left' ? 'left' : 'right'; - return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal'; - } - return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal'; -}, - _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) { - var dragElS1Opp = vertical ? dragRect.left : dragRect.top, - dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, - dragElOppLength = vertical ? dragRect.width : dragRect.height, - targetS1Opp = vertical ? targetRect.left : targetRect.top, - targetS2Opp = vertical ? targetRect.right : targetRect.bottom, - targetOppLength = vertical ? targetRect.width : targetRect.height; - return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; -}, + if (scrolledPastTop) { + scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); + } -/** - * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold. - * @param {Number} x X position - * @param {Number} y Y position - * @return {HTMLElement} Element of the first found nearest Sortable - */ -_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) { - var ret; - sortables.some(function (sortable) { - var threshold = sortable[expando].options.emptyInsertThreshold; - if (!threshold || lastChild(sortable)) return; - var rect = getRect(sortable), - insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, - insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; + parentEl = dragEl.parentNode; // actualization + // must be done before animation - if (insideHorizontally && insideVertically) { - return ret = sortable; - } - }); - return ret; -}, - _prepareGroup = function _prepareGroup(options) { - function toFn(value, pull) { - return function (to, from, dragEl, evt) { - var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; + if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) { + targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); + } - if (value == null && (pull || sameGroup)) { - // Default pull value - // Default pull and put value if same group - return true; - } else if (value == null || value === false) { - return false; - } else if (pull && value === 'clone') { - return value; - } else if (typeof value === 'function') { - return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt); - } else { - var otherGroup = (pull ? to : from).options.group.name; - return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; + changed(); + return completed(true); + } } - }; - } - var group = {}; - var originalGroup = options.group; + if (el.contains(dragEl)) { + return completed(false); + } + } - if (!originalGroup || _typeof(originalGroup) != 'object') { - originalGroup = { - name: originalGroup - }; - } + return false; + }, + _ignoreWhileAnimating: null, + _offMoveEvents: function _offMoveEvents() { + off(document, 'mousemove', this._onTouchMove); + off(document, 'touchmove', this._onTouchMove); + off(document, 'pointermove', this._onTouchMove); + off(document, 'dragover', nearestEmptyInsertDetectEvent); + off(document, 'mousemove', nearestEmptyInsertDetectEvent); + off(document, 'touchmove', nearestEmptyInsertDetectEvent); + }, + _offUpEvents: function _offUpEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, 'mouseup', this._onDrop); + off(ownerDocument, 'touchend', this._onDrop); + off(ownerDocument, 'pointerup', this._onDrop); + off(ownerDocument, 'touchcancel', this._onDrop); + off(document, 'selectstart', this); + }, + _onDrop: function _onDrop( + /**Event*/ + evt) { + var el = this.el, + options = this.options; // Get the index of the dragged element within its parent - group.name = originalGroup.name; - group.checkPull = toFn(originalGroup.pull, true); - group.checkPut = toFn(originalGroup.put); - group.revertClone = originalGroup.revertClone; - options.group = group; -}, - _hideGhostForTarget = function _hideGhostForTarget() { - if (!supportCssPointerEvents && ghostEl) { - css(ghostEl, 'display', 'none'); - } -}, - _unhideGhostForTarget = function _unhideGhostForTarget() { - if (!supportCssPointerEvents && ghostEl) { - css(ghostEl, 'display', ''); - } -}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + pluginEvent('drop', this, { + evt: evt + }); + parentEl = dragEl && dragEl.parentNode; // Get again after plugin event + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); -if (documentExists) { - document.addEventListener('click', function (evt) { - if (ignoreNextClick) { - evt.preventDefault(); - evt.stopPropagation && evt.stopPropagation(); - evt.stopImmediatePropagation && evt.stopImmediatePropagation(); - ignoreNextClick = false; - return false; + if (Sortable.eventCanceled) { + this._nulling(); + + return; } - }, true); -} -var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) { - if (dragEl) { - evt = evt.touches ? evt.touches[0] : evt; + awaitingDragStarted = false; + isCircumstantialInvert = false; + pastFirstInvertThresh = false; + clearInterval(this._loopId); + clearTimeout(this._dragStartTimer); - var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); + _cancelNextTick(this.cloneId); - if (nearest) { - // Create imitation event - var event = {}; + _cancelNextTick(this._dragStartId); // Unbind events - for (var i in evt) { - if (evt.hasOwnProperty(i)) { - event[i] = evt[i]; - } - } - event.target = event.rootEl = nearest; - event.preventDefault = void 0; - event.stopPropagation = void 0; + if (this.nativeDraggable) { + off(document, 'drop', this); + off(el, 'dragstart', this._onDragStart); + } - nearest[expando]._onDragOver(event); + this._offMoveEvents(); + + this._offUpEvents(); + + if (Safari) { + css(document.body, 'user-select', ''); } - } -}; -var _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) { - if (dragEl) { - dragEl.parentNode[expando]._isOutsideThisEl(evt.target); - } -}; -/** - * @class Sortable - * @param {HTMLElement} el - * @param {Object} [options] - */ + css(dragEl, 'transform', ''); + if (evt) { + if (moved) { + evt.cancelable && evt.preventDefault(); + !options.dropBubble && evt.stopPropagation(); + } -function Sortable(el, options) { - if (!(el && el.nodeType && el.nodeType === 1)) { - throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); - } + ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); - this.el = el; // root element + if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') { + // Remove clone(s) + cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); + } - this.options = options = _extends({}, options); // Export instance + if (dragEl) { + if (this.nativeDraggable) { + off(dragEl, 'dragend', this); + } - el[expando] = this; - var defaults = { - group: null, - sort: true, - disabled: false, - store: null, - handle: null, - draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*', - swapThreshold: 1, - // percentage; 0 <= x <= 1 - invertSwap: false, - // invert always - invertedSwapThreshold: null, - // will be set to same as swapThreshold if default - removeCloneOnHide: true, - direction: function direction() { - return _detectDirection(el, this.options); - }, - ghostClass: 'sortable-ghost', - chosenClass: 'sortable-chosen', - dragClass: 'sortable-drag', - ignore: 'a, img', - filter: null, - preventOnFilter: true, - animation: 0, - easing: null, - setData: function setData(dataTransfer, dragEl) { - dataTransfer.setData('Text', dragEl.textContent); - }, - dropBubble: false, - dragoverBubble: false, - dataIdAttr: 'data-id', - delay: 0, - delayOnTouchOnly: false, - touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, - forceFallback: false, - fallbackClass: 'sortable-fallback', - fallbackOnBody: false, - fallbackTolerance: 0, - fallbackOffset: { - x: 0, - y: 0 - }, - supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari, - emptyInsertThreshold: 5 - }; - PluginManager.initializePlugins(this, el, defaults); // Set default options + _disableDraggable(dragEl); - for (var name in defaults) { - !(name in options) && (options[name] = defaults[name]); - } + dragEl.style['will-change'] = ''; // Remove classes + // ghostClass is added in dragStarted + + if (moved && !awaitingDragStarted) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); + } - _prepareGroup(options); // Bind all private methods + toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event + _dispatchEvent({ + sortable: this, + name: 'unchoose', + toEl: parentEl, + newIndex: null, + newDraggableIndex: null, + originalEvent: evt + }); - for (var fn in this) { - if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { - this[fn] = this[fn].bind(this); - } - } // Setup drag mode + if (rootEl !== parentEl) { + if (newIndex >= 0) { + // Add event + _dispatchEvent({ + rootEl: parentEl, + name: 'add', + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); // Remove event - this.nativeDraggable = options.forceFallback ? false : supportDraggable; + _dispatchEvent({ + sortable: this, + name: 'remove', + toEl: parentEl, + originalEvent: evt + }); // drag from one list and drop into another - if (this.nativeDraggable) { - // Touch start threshold cannot be greater than the native dragstart threshold - this.options.touchStartThreshold = 1; - } // Bind events + _dispatchEvent({ + rootEl: parentEl, + name: 'sort', + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); - if (options.supportPointer) { - on(el, 'pointerdown', this._onTapStart); - } else { - on(el, 'mousedown', this._onTapStart); - on(el, 'touchstart', this._onTapStart); - } + _dispatchEvent({ + sortable: this, + name: 'sort', + toEl: parentEl, + originalEvent: evt + }); + } - if (this.nativeDraggable) { - on(el, 'dragover', this); - on(el, 'dragenter', this); - } + putSortable && putSortable.save(); + } else { + if (newIndex !== oldIndex) { + if (newIndex >= 0) { + // drag & drop within the same list + _dispatchEvent({ + sortable: this, + name: 'update', + toEl: parentEl, + originalEvent: evt + }); - sortables.push(this.el); // Restore sorting + _dispatchEvent({ + sortable: this, + name: 'sort', + toEl: parentEl, + originalEvent: evt + }); + } + } + } - options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager + if (Sortable.active) { + /* jshint eqnull:true */ + if (newIndex == null || newIndex === -1) { + newIndex = oldIndex; + newDraggableIndex = oldDraggableIndex; + } - _extends(this, AnimationStateManager()); -} + _dispatchEvent({ + sortable: this, + name: 'end', + toEl: parentEl, + originalEvent: evt + }); // Save sorting -Sortable.prototype = -/** @lends Sortable.prototype */ -{ - constructor: Sortable, - _isOutsideThisEl: function _isOutsideThisEl(target) { - if (!this.el.contains(target) && target !== this.el) { - lastTarget = null; + + this.save(); + } + } } + + this._nulling(); }, - _getDirection: function _getDirection(evt, target) { - return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; + _nulling: function _nulling() { + pluginEvent('nulling', this); + rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; + savedInputChecked.forEach(function (el) { + el.checked = true; + }); + savedInputChecked.length = lastDx = lastDy = 0; }, - _onTapStart: function _onTapStart( - /** Event|TouchEvent */ + handleEvent: function handleEvent( + /**Event*/ evt) { - if (!evt.cancelable) return; - - var _this = this, - el = this.el, - options = this.options, - preventOnFilter = options.preventOnFilter, - type = evt.type, - touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt, - target = (touch || evt).target, - originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, - filter = options.filter; + switch (evt.type) { + case 'drop': + case 'dragend': + this._onDrop(evt); - _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group. + break; + case 'dragenter': + case 'dragover': + if (dragEl) { + this._onDragOver(evt); - if (dragEl) { - return; - } + _globalDragOver(evt); + } - if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { - return; // only left button and enabled - } // cancel dnd if original target is content editable + break; + case 'selectstart': + evt.preventDefault(); + break; + } + }, - if (originalTarget.isContentEditable) { - return; - } // Safari ignores further event handling after mousedown + /** + * Serializes the item into an array of string. + * @returns {String[]} + */ + toArray: function toArray() { + var order = [], + el, + children = this.el.children, + i = 0, + n = children.length, + options = this.options; + for (; i < n; i++) { + el = children[i]; - if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') { - return; + if (closest(el, options.draggable, this.el, false)) { + order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); + } } - target = closest(target, options.draggable, el, false); - - if (target && target.animated) { - return; - } + return order; + }, - if (lastDownEl === target) { - // Ignoring duplicate `down` - return; - } // Get the index of the dragged element within its parent + /** + * Sorts the elements according to the array. + * @param {String[]} order order of the items + */ + sort: function sort(order, useAnimation) { + var items = {}, + rootEl = this.el; + this.toArray().forEach(function (id, i) { + var el = rootEl.children[i]; + if (closest(el, this.options.draggable, rootEl, false)) { + items[id] = el; + } + }, this); + useAnimation && this.captureAnimationState(); + order.forEach(function (id) { + if (items[id]) { + rootEl.removeChild(items[id]); + rootEl.appendChild(items[id]); + } + }); + useAnimation && this.animateAll(); + }, - oldIndex = index(target); - oldDraggableIndex = index(target, options.draggable); // Check filter + /** + * Save the current sorting + */ + save: function save() { + var store = this.options.store; + store && store.set && store.set(this); + }, - if (typeof filter === 'function') { - if (filter.call(this, evt, target, this)) { - _dispatchEvent({ - sortable: _this, - rootEl: originalTarget, - name: 'filter', - targetEl: target, - toEl: el, - fromEl: el - }); + /** + * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. + * @param {HTMLElement} el + * @param {String} [selector] default: `options.draggable` + * @returns {HTMLElement|null} + */ + closest: function closest$1(el, selector) { + return closest(el, selector || this.options.draggable, this.el, false); + }, - pluginEvent('filter', _this, { - evt: evt - }); - preventOnFilter && evt.cancelable && evt.preventDefault(); - return; // cancel dnd - } - } else if (filter) { - filter = filter.split(',').some(function (criteria) { - criteria = closest(originalTarget, criteria.trim(), el, false); + /** + * Set/get option + * @param {string} name + * @param {*} [value] + * @returns {*} + */ + option: function option(name, value) { + var options = this.options; - if (criteria) { - _dispatchEvent({ - sortable: _this, - rootEl: criteria, - name: 'filter', - targetEl: target, - fromEl: el, - toEl: el - }); + if (value === void 0) { + return options[name]; + } else { + var modifiedValue = PluginManager.modifyOption(this, name, value); - pluginEvent('filter', _this, { - evt: evt - }); - return true; - } - }); + if (typeof modifiedValue !== 'undefined') { + options[name] = modifiedValue; + } else { + options[name] = value; + } - if (filter) { - preventOnFilter && evt.cancelable && evt.preventDefault(); - return; // cancel dnd + if (name === 'group') { + _prepareGroup(options); } } + }, - if (options.handle && !closest(originalTarget, options.handle, el, false)) { - return; - } // Prepare `dragstart` + /** + * Destroy + */ + destroy: function destroy() { + pluginEvent('destroy', this); + var el = this.el; + el[expando] = null; + off(el, 'mousedown', this._onTapStart); + off(el, 'touchstart', this._onTapStart); + off(el, 'pointerdown', this._onTapStart); + + if (this.nativeDraggable) { + off(el, 'dragover', this); + off(el, 'dragenter', this); + } // Remove draggable attributes - this._prepareDragStart(evt, touch, target); + Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) { + el.removeAttribute('draggable'); + }); + + this._onDrop(); + + this._disableDelayedDragEvents(); + + sortables.splice(sortables.indexOf(this.el), 1); + this.el = el = null; }, - _prepareDragStart: function _prepareDragStart( - /** Event */ - evt, - /** Touch */ - touch, - /** HTMLElement */ - target) { - var _this = this, - el = _this.el, - options = _this.options, - ownerDocument = el.ownerDocument, - dragStartFn; + _hideClone: function _hideClone() { + if (!cloneHidden) { + pluginEvent('hideClone', this); + if (Sortable.eventCanceled) return; + css(cloneEl, 'display', 'none'); - if (target && !dragEl && target.parentNode === el) { - var dragRect = getRect(target); - rootEl = el; - dragEl = target; - parentEl = dragEl.parentNode; - nextEl = dragEl.nextSibling; - lastDownEl = target; - activeGroup = options.group; - Sortable.dragged = dragEl; - tapEvt = { - target: dragEl, - clientX: (touch || evt).clientX, - clientY: (touch || evt).clientY - }; - tapDistanceLeft = tapEvt.clientX - dragRect.left; - tapDistanceTop = tapEvt.clientY - dragRect.top; - this._lastX = (touch || evt).clientX; - this._lastY = (touch || evt).clientY; - dragEl.style['will-change'] = 'all'; + if (this.options.removeCloneOnHide && cloneEl.parentNode) { + cloneEl.parentNode.removeChild(cloneEl); + } - dragStartFn = function dragStartFn() { - pluginEvent('delayEnded', _this, { - evt: evt - }); + cloneHidden = true; + } + }, + _showClone: function _showClone(putSortable) { + if (putSortable.lastPutMode !== 'clone') { + this._hideClone(); - if (Sortable.eventCanceled) { - _this._onDrop(); + return; + } - return; - } // Delayed drag has been triggered - // we can re-enable the events: touchmove/mousemove + if (cloneHidden) { + pluginEvent('showClone', this); + if (Sortable.eventCanceled) return; // show clone at dragEl or original position + if (dragEl.parentNode == rootEl && !this.options.group.revertClone) { + rootEl.insertBefore(cloneEl, dragEl); + } else if (nextEl) { + rootEl.insertBefore(cloneEl, nextEl); + } else { + rootEl.appendChild(cloneEl); + } - _this._disableDelayedDragEvents(); + if (this.options.group.revertClone) { + this.animate(dragEl, cloneEl); + } - if (!FireFox && _this.nativeDraggable) { - dragEl.draggable = true; - } // Bind the events: dragstart/dragend + css(cloneEl, 'display', ''); + cloneHidden = false; + } + } +}; +function _globalDragOver( +/**Event*/ +evt) { + if (evt.dataTransfer) { + evt.dataTransfer.dropEffect = 'move'; + } - _this._triggerDragStart(evt, touch); // Drag start event + evt.cancelable && evt.preventDefault(); +} +function _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { + var evt, + sortable = fromEl[expando], + onMoveFn = sortable.options.onMove, + retVal; // Support for new CustomEvent feature - _dispatchEvent({ - sortable: _this, - name: 'choose', - originalEvent: evt - }); // Chosen item + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent('move', { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent('Event'); + evt.initEvent('move', true, true); + } + evt.to = toEl; + evt.from = fromEl; + evt.dragged = dragEl; + evt.draggedRect = dragRect; + evt.related = targetEl || toEl; + evt.relatedRect = targetRect || getRect(toEl); + evt.willInsertAfter = willInsertAfter; + evt.originalEvent = originalEvent; + fromEl.dispatchEvent(evt); - toggleClass(dragEl, options.chosenClass, true); - }; // Disable "draggable" + if (onMoveFn) { + retVal = onMoveFn.call(sortable, evt, originalEvent); + } + return retVal; +} - options.ignore.split(',').forEach(function (criteria) { - find(dragEl, criteria.trim(), _disableDraggable); - }); - on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent); - on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent); - on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent); - on(ownerDocument, 'mouseup', _this._onDrop); - on(ownerDocument, 'touchend', _this._onDrop); - on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox) +function _disableDraggable(el) { + el.draggable = false; +} - if (FireFox && this.nativeDraggable) { - this.options.touchStartThreshold = 4; - dragEl.draggable = true; - } +function _unsilent() { + _silent = false; +} - pluginEvent('delayStart', this, { - evt: evt - }); // Delay is impossible for native DnD in Edge or IE +function _ghostIsFirst(evt, vertical, sortable) { + var rect = getRect(getChild(sortable.el, 0, sortable.options, true)); + var spacer = 10; + return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left; +} - if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { - if (Sortable.eventCanceled) { - this._onDrop(); +function _ghostIsLast(evt, vertical, sortable) { + var rect = getRect(lastChild(sortable.el, sortable.options.draggable)); + var spacer = 10; + return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer; +} - return; - } // If the user moves the pointer or let go the click or touch - // before the delay has been reached: - // disable the delayed drag +function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { + var mouseOnAxis = vertical ? evt.clientY : evt.clientX, + targetLength = vertical ? targetRect.height : targetRect.width, + targetS1 = vertical ? targetRect.top : targetRect.left, + targetS2 = vertical ? targetRect.bottom : targetRect.right, + invert = false; + if (!invertSwap) { + // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold + if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { + // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2 + // check if past first invert threshold on side opposite of lastDirection + if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { + // past first invert threshold, do not restrict inverted threshold to dragEl shadow + pastFirstInvertThresh = true; + } - on(ownerDocument, 'mouseup', _this._disableDelayedDrag); - on(ownerDocument, 'touchend', _this._disableDelayedDrag); - on(ownerDocument, 'touchcancel', _this._disableDelayedDrag); - on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler); - on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler); - options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler); - _this._dragStartTimer = setTimeout(dragStartFn, options.delay); + if (!pastFirstInvertThresh) { + // dragEl shadow (target move distance shadow) + if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow + : mouseOnAxis > targetS2 - targetMoveDistance) { + return -lastDirection; + } } else { - dragStartFn(); + invert = true; + } + } else { + // Regular + if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { + return _getInsertDirection(target); } } - }, - _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( - /** TouchEvent|PointerEvent **/ - e) { - var touch = e.touches ? e.touches[0] : e; + } - if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { - this._disableDelayedDrag(); + invert = invert || invertSwap; + + if (invert) { + // Invert of regular + if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { + return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; } - }, - _disableDelayedDrag: function _disableDelayedDrag() { - dragEl && _disableDraggable(dragEl); - clearTimeout(this._dragStartTimer); + } - this._disableDelayedDragEvents(); - }, - _disableDelayedDragEvents: function _disableDelayedDragEvents() { - var ownerDocument = this.el.ownerDocument; - off(ownerDocument, 'mouseup', this._disableDelayedDrag); - off(ownerDocument, 'touchend', this._disableDelayedDrag); - off(ownerDocument, 'touchcancel', this._disableDelayedDrag); - off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler); - off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler); - off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler); - }, - _triggerDragStart: function _triggerDragStart( - /** Event */ - evt, - /** Touch */ - touch) { - touch = touch || evt.pointerType == 'touch' && evt; + return 0; +} +/** + * Gets the direction dragEl must be swapped relative to target in order to make it + * seem that dragEl has been "inserted" into that element's position + * @param {HTMLElement} target The target whose position dragEl is being inserted at + * @return {Number} Direction dragEl must be swapped + */ - if (!this.nativeDraggable || touch) { - if (this.options.supportPointer) { - on(document, 'pointermove', this._onTouchMove); - } else if (touch) { - on(document, 'touchmove', this._onTouchMove); - } else { - on(document, 'mousemove', this._onTouchMove); - } - } else { - on(dragEl, 'dragend', this); - on(rootEl, 'dragstart', this._onDragStart); - } - try { - if (document.selection) { - // Timeout neccessary for IE9 - _nextTick(function () { - document.selection.empty(); - }); - } else { - window.getSelection().removeAllRanges(); - } - } catch (err) {} - }, - _dragStarted: function _dragStarted(fallback, evt) { +function _getInsertDirection(target) { + if (index(dragEl) < index(target)) { + return 1; + } else { + return -1; + } +} +/** + * Generate id + * @param {HTMLElement} el + * @returns {String} + * @private + */ - awaitingDragStarted = false; - if (rootEl && dragEl) { - pluginEvent('dragStarted', this, { - evt: evt - }); +function _generateId(el) { + var str = el.tagName + el.className + el.src + el.href + el.textContent, + i = str.length, + sum = 0; - if (this.nativeDraggable) { - on(document, 'dragover', _checkOutsideTargetEl); - } + while (i--) { + sum += str.charCodeAt(i); + } - var options = this.options; // Apply effect + return sum.toString(36); +} - !fallback && toggleClass(dragEl, options.dragClass, false); - toggleClass(dragEl, options.ghostClass, true); - Sortable.active = this; - fallback && this._appendGhost(); // Drag start event +function _saveInputCheckedState(root) { + savedInputChecked.length = 0; + var inputs = root.getElementsByTagName('input'); + var idx = inputs.length; - _dispatchEvent({ - sortable: this, - name: 'start', - originalEvent: evt - }); - } else { - this._nulling(); + while (idx--) { + var el = inputs[idx]; + el.checked && savedInputChecked.push(el); + } +} + +function _nextTick(fn) { + return setTimeout(fn, 0); +} + +function _cancelNextTick(id) { + return clearTimeout(id); +} // Fixed #973: + + +if (documentExists) { + on(document, 'touchmove', function (evt) { + if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { + evt.preventDefault(); } + }); +} // Export utils + + +Sortable.utils = { + on: on, + off: off, + css: css, + find: find, + is: function is(el, selector) { + return !!closest(el, selector, el, false); }, - _emulateDragOver: function _emulateDragOver() { - if (touchEvt) { - this._lastX = touchEvt.clientX; - this._lastY = touchEvt.clientY; + extend: extend, + throttle: throttle, + closest: closest, + toggleClass: toggleClass, + clone: clone, + index: index, + nextTick: _nextTick, + cancelNextTick: _cancelNextTick, + detectDirection: _detectDirection, + getChild: getChild +}; +/** + * Get the Sortable instance of an element + * @param {HTMLElement} element The element + * @return {Sortable|undefined} The instance of Sortable + */ - _hideGhostForTarget(); +Sortable.get = function (element) { + return element[expando]; +}; +/** + * Mount a plugin to Sortable + * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted + */ - var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); - var parent = target; - while (target && target.shadowRoot) { - target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); - if (target === parent) break; - parent = target; - } +Sortable.mount = function () { + for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) { + plugins[_key] = arguments[_key]; + } - dragEl.parentNode[expando]._isOutsideThisEl(target); + if (plugins[0].constructor === Array) plugins = plugins[0]; + plugins.forEach(function (plugin) { + if (!plugin.prototype || !plugin.prototype.constructor) { + throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin)); + } - if (parent) { - do { - if (parent[expando]) { - var inserted = void 0; - inserted = parent[expando]._onDragOver({ - clientX: touchEvt.clientX, - clientY: touchEvt.clientY, - target: target, - rootEl: parent - }); + if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils); + PluginManager.mount(plugin); + }); +}; +/** + * Create sortable instance + * @param {HTMLElement} el + * @param {Object} [options] + */ - if (inserted && !this.options.dragoverBubble) { - break; - } - } - target = parent; // store last element - } - /* jshint boss:true */ - while (parent = parent.parentNode); - } +Sortable.create = function (el, options) { + return new Sortable(el, options); +}; // Export - _unhideGhostForTarget(); - } - }, - _onTouchMove: function _onTouchMove( - /**TouchEvent*/ - evt) { - if (tapEvt) { - var options = this.options, - fallbackTolerance = options.fallbackTolerance, - fallbackOffset = options.fallbackOffset, - touch = evt.touches ? evt.touches[0] : evt, - ghostMatrix = ghostEl && matrix(ghostEl, true), - scaleX = ghostEl && ghostMatrix && ghostMatrix.a, - scaleY = ghostEl && ghostMatrix && ghostMatrix.d, - relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), - dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), - dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging - if (!Sortable.active && !awaitingDragStarted) { - if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { - return; - } +Sortable.version = version; - this._onDragStart(evt, true); - } +var drop = function drop(_ref) { + var originalEvent = _ref.originalEvent, + putSortable = _ref.putSortable, + dragEl = _ref.dragEl, + activeSortable = _ref.activeSortable, + dispatchSortableEvent = _ref.dispatchSortableEvent, + hideGhostForTarget = _ref.hideGhostForTarget, + unhideGhostForTarget = _ref.unhideGhostForTarget; + if (!originalEvent) return; + var toSortable = putSortable || activeSortable; + hideGhostForTarget(); + var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; + var target = document.elementFromPoint(touch.clientX, touch.clientY); + unhideGhostForTarget(); - if (ghostEl) { - if (ghostMatrix) { - ghostMatrix.e += dx - (lastDx || 0); - ghostMatrix.f += dy - (lastDy || 0); - } else { - ghostMatrix = { - a: 1, - b: 0, - c: 0, - d: 1, - e: dx, - f: dy - }; - } + if (toSortable && !toSortable.el.contains(target)) { + dispatchSortableEvent('spill'); + this.onSpill({ + dragEl: dragEl, + putSortable: putSortable + }); + } +}; - var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); - css(ghostEl, 'webkitTransform', cssMatrix); - css(ghostEl, 'mozTransform', cssMatrix); - css(ghostEl, 'msTransform', cssMatrix); - css(ghostEl, 'transform', cssMatrix); - lastDx = dx; - lastDy = dy; - touchEvt = touch; - } +function Revert() {} - evt.cancelable && evt.preventDefault(); - } +Revert.prototype = { + startIndex: null, + dragStart: function dragStart(_ref2) { + var oldDraggableIndex = _ref2.oldDraggableIndex; + this.startIndex = oldDraggableIndex; }, - _appendGhost: function _appendGhost() { - // Bug if using scale(): https://stackoverflow.com/questions/2637058 - // Not being adjusted for - if (!ghostEl) { - var container = this.options.fallbackOnBody ? document.body : rootEl, - rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), - options = this.options; // Position absolutely - - if (PositionGhostAbsolutely) { - // Get relatively positioned parent - ghostRelativeParent = container; + onSpill: function onSpill(_ref3) { + var dragEl = _ref3.dragEl, + putSortable = _ref3.putSortable; + this.sortable.captureAnimationState(); - while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) { - ghostRelativeParent = ghostRelativeParent.parentNode; - } + if (putSortable) { + putSortable.captureAnimationState(); + } - if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { - if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement(); - rect.top += ghostRelativeParent.scrollTop; - rect.left += ghostRelativeParent.scrollLeft; - } else { - ghostRelativeParent = getWindowScrollingElement(); - } + var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); - ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); - } + if (nextSibling) { + this.sortable.el.insertBefore(dragEl, nextSibling); + } else { + this.sortable.el.appendChild(dragEl); + } - ghostEl = dragEl.cloneNode(true); - toggleClass(ghostEl, options.ghostClass, false); - toggleClass(ghostEl, options.fallbackClass, true); - toggleClass(ghostEl, options.dragClass, true); - css(ghostEl, 'transition', ''); - css(ghostEl, 'transform', ''); - css(ghostEl, 'box-sizing', 'border-box'); - css(ghostEl, 'margin', 0); - css(ghostEl, 'top', rect.top); - css(ghostEl, 'left', rect.left); - css(ghostEl, 'width', rect.width); - css(ghostEl, 'height', rect.height); - css(ghostEl, 'opacity', '0.8'); - css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed'); - css(ghostEl, 'zIndex', '100000'); - css(ghostEl, 'pointerEvents', 'none'); - Sortable.ghost = ghostEl; - container.appendChild(ghostEl); // Set transform-origin + this.sortable.animateAll(); - css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%'); + if (putSortable) { + putSortable.animateAll(); } }, - _onDragStart: function _onDragStart( - /**Event*/ - evt, - /**boolean*/ - fallback) { - var _this = this; + drop: drop +}; - var dataTransfer = evt.dataTransfer; - var options = _this.options; - pluginEvent('dragStart', this, { - evt: evt - }); +_extends(Revert, { + pluginName: 'revertOnSpill' +}); - if (Sortable.eventCanceled) { - this._onDrop(); +function Remove() {} - return; - } +Remove.prototype = { + onSpill: function onSpill(_ref4) { + var dragEl = _ref4.dragEl, + putSortable = _ref4.putSortable; + var parentSortable = putSortable || this.sortable; + parentSortable.captureAnimationState(); + dragEl.parentNode && dragEl.parentNode.removeChild(dragEl); + parentSortable.animateAll(); + }, + drop: drop +}; - pluginEvent('setupClone', this); +_extends(Remove, { + pluginName: 'removeOnSpill' +}); - if (!Sortable.eventCanceled) { - cloneEl = clone(dragEl); - cloneEl.draggable = false; - cloneEl.style['will-change'] = ''; +/* src/view/sortable/SortableList.svelte generated by Svelte v3.43.1 */ - this._hideClone(); +function get_each_context$3(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[10] = list[i]; + return child_ctx; +} - toggleClass(cloneEl, this.options.chosenClass, false); - Sortable.clone = cloneEl; - } // #1143: IFrame support workaround +const get_default_slot_changes = dirty => ({ item: dirty & /*items*/ 1 }); +const get_default_slot_context = ctx => ({ item: /*item*/ ctx[10] }); +// (31:2) {#each items as item (item.id)} +function create_each_block$3(key_1, ctx) { + let li; + let t; + let li_data_id_value; + let current; + const default_slot_template = /*#slots*/ ctx[5].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[4], get_default_slot_context); - _this.cloneId = _nextTick(function () { - pluginEvent('clone', _this); - if (Sortable.eventCanceled) return; + return { + key: key_1, + first: null, + c() { + li = element("li"); + if (default_slot) default_slot.c(); + t = space(); + attr(li, "data-id", li_data_id_value = /*item*/ ctx[10].id); + this.first = li; + }, + m(target, anchor) { + insert(target, li, anchor); - if (!_this.options.removeCloneOnHide) { - rootEl.insertBefore(cloneEl, dragEl); - } + if (default_slot) { + default_slot.m(li, null); + } - _this._hideClone(); + append(li, t); + current = true; + }, + p(new_ctx, dirty) { + ctx = new_ctx; - _dispatchEvent({ - sortable: _this, - name: 'clone' - }); - }); - !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope, items*/ 17)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[4], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[4]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[4], dirty, get_default_slot_changes), + get_default_slot_context + ); + } + } - if (fallback) { - ignoreNextClick = true; - _this._loopId = setInterval(_this._emulateDragOver, 50); - } else { - // Undo what was set in _prepareDragStart before drag started - off(document, 'mouseup', _this._onDrop); - off(document, 'touchend', _this._onDrop); - off(document, 'touchcancel', _this._onDrop); + if (!current || dirty & /*items*/ 1 && li_data_id_value !== (li_data_id_value = /*item*/ ctx[10].id)) { + attr(li, "data-id", li_data_id_value); + } + }, + i(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o(local) { + transition_out(default_slot, local); + current = false; + }, + d(detaching) { + if (detaching) detach(li); + if (default_slot) default_slot.d(detaching); + } + }; +} - if (dataTransfer) { - dataTransfer.effectAllowed = 'move'; - options.setData && options.setData.call(_this, dataTransfer, dragEl); - } +function create_fragment$c(ctx) { + let ul; + let each_blocks = []; + let each_1_lookup = new Map(); + let ul_class_value; + let current; + let each_value = /*items*/ ctx[0]; + const get_key = ctx => /*item*/ ctx[10].id; - on(document, 'drop', _this); // #1276 fix: + for (let i = 0; i < each_value.length; i += 1) { + let child_ctx = get_each_context$3(ctx, each_value, i); + let key = get_key(child_ctx); + each_1_lookup.set(key, each_blocks[i] = create_each_block$3(key, child_ctx)); + } - css(dragEl, 'transform', 'translateZ(0)'); - } + return { + c() { + ul = element("ul"); - awaitingDragStarted = true; - _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt)); - on(document, 'selectstart', _this); - moved = true; + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + attr(ul, "class", ul_class_value = /*$$props*/ ctx[2].class); + }, + m(target, anchor) { + insert(target, ul, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(ul, null); + } - if (Safari) { - css(document.body, 'user-select', 'none'); - } - }, - // Returns true - if no further action is needed (either inserted or another condition) - _onDragOver: function _onDragOver( - /**Event*/ - evt) { - var el = this.el, - target = evt.target, - dragRect, - targetRect, - revert, - options = this.options, - group = options.group, - activeSortable = Sortable.active, - isOwner = activeGroup === group, - canSort = options.sort, - fromSortable = putSortable || activeSortable, - vertical, - _this = this, - completedFired = false; + /*ul_binding*/ ctx[6](ul); + current = true; + }, + p(ctx, [dirty]) { + if (dirty & /*items, $$scope*/ 17) { + each_value = /*items*/ ctx[0]; + group_outros(); + each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, ul, outro_and_destroy_block, create_each_block$3, null, get_each_context$3); + check_outros(); + } - if (_silent) return; + if (!current || dirty & /*$$props*/ 4 && ul_class_value !== (ul_class_value = /*$$props*/ ctx[2].class)) { + attr(ul, "class", ul_class_value); + } + }, + i(local) { + if (current) return; - function dragOverEvent(name, extra) { - pluginEvent(name, _this, _objectSpread2({ - evt: evt, - isOwner: isOwner, - axis: vertical ? 'vertical' : 'horizontal', - revert: revert, - dragRect: dragRect, - targetRect: targetRect, - canSort: canSort, - fromSortable: fromSortable, - target: target, - completed: completed, - onMove: function onMove(target, after) { - return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after); - }, - changed: changed - }, extra)); - } // Capture animation state + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } - function capture() { - dragOverEvent('dragOverAnimationCapture'); + current = false; + }, + d(detaching) { + if (detaching) detach(ul); - _this.captureAnimationState(); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].d(); + } - if (_this !== fromSortable) { - fromSortable.captureAnimationState(); - } - } // Return invocation when dragEl is inserted (or completed) + /*ul_binding*/ ctx[6](null); + } + }; +} +function instance$c($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + let { items = [] } = $$props; + let { sortableOptions = {} } = $$props; - function completed(insertion) { - dragOverEvent('dragOverCompleted', { - insertion: insertion - }); + // Prepare sortable bits. Set up a dispatcher for sort events, + // and proxy the store.set function to fire it. + const dispatcher = createEventDispatcher(); - if (insertion) { - // Clones must be hidden before folding animation to capture dragRectAbsolute properly - if (isOwner) { - activeSortable._hideClone(); - } else { - activeSortable._showClone(_this); - } + sortableOptions = Object.assign({}, sortableOptions); - if (_this !== fromSortable) { - // Set ghost class to new sortable's ghost class - toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); - toggleClass(dragEl, options.ghostClass, true); - } + sortableOptions.store = sortableOptions.store || { + set: () => { + + }, + get: sortable => sortable.toArray() + }; - if (putSortable !== _this && _this !== Sortable.active) { - putSortable = _this; - } else if (_this === Sortable.active && putSortable) { - putSortable = null; - } // Animation + const oldStoreSet = sortableOptions.store.set; + sortableOptions.store.set = sortable => { + const sortedItems = sortable.toArray().map(k => items.find(i => i.id === k)); + dispatcher("orderChanged", sortedItems); + oldStoreSet(sortable); + }; - if (fromSortable === _this) { - _this._ignoreWhileAnimating = target; - } + let listElement; - _this.animateAll(function () { - dragOverEvent('dragOverAnimationComplete'); - _this._ignoreWhileAnimating = null; - }); + onMount(() => { + Sortable.create(listElement, sortableOptions); + }); - if (_this !== fromSortable) { - fromSortable.animateAll(); - fromSortable._ignoreWhileAnimating = null; - } - } // Null lastTarget if it is not inside a previously swapped element + function ul_binding($$value) { + binding_callbacks[$$value ? 'unshift' : 'push'](() => { + listElement = $$value; + $$invalidate(1, listElement); + }); + } + $$self.$$set = $$new_props => { + $$invalidate(2, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); + if ('items' in $$new_props) $$invalidate(0, items = $$new_props.items); + if ('sortableOptions' in $$new_props) $$invalidate(3, sortableOptions = $$new_props.sortableOptions); + if ('$$scope' in $$new_props) $$invalidate(4, $$scope = $$new_props.$$scope); + }; - if (target === dragEl && !dragEl.animated || target === el && !target.animated) { - lastTarget = null; - } // no bubbling and not fallback + $$props = exclude_internal_props($$props); + return [items, listElement, $$props, sortableOptions, $$scope, slots, ul_binding]; +} +class SortableList extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$c, create_fragment$c, safe_not_equal, { items: 0, sortableOptions: 3 }); + } +} - if (!options.dragoverBubble && !evt.rootEl && target !== document) { - dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new _ListCache; + this.size = 0; +} +var _stackClear = stackClear; - !insertion && nearestEmptyInsertDetectEvent(evt); - } +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); - !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); - return completedFired = true; - } // Call when dragEl has been inserted + this.size = data.size; + return result; +} +var _stackDelete = stackDelete; - function changed() { - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} - _dispatchEvent({ - sortable: _this, - name: 'change', - toEl: el, - newIndex: newIndex, - newDraggableIndex: newDraggableIndex, - originalEvent: evt - }); - } +var _stackGet = stackGet; - if (evt.preventDefault !== void 0) { - evt.cancelable && evt.preventDefault(); - } +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} - target = closest(target, options.draggable, el, true); - dragOverEvent('dragOver'); - if (Sortable.eventCanceled) return completedFired; +var _stackHas = stackHas; - if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { - return completed(false); +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof _ListCache) { + var pairs = data.__data__; + if (!_Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; } + data = this.__data__ = new _MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} - ignoreNextClick = false; +var _stackSet = stackSet; - if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list - : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { - vertical = this._getDirection(evt, target) === 'vertical'; - dragRect = getRect(dragEl); - dragOverEvent('dragOverValid'); - if (Sortable.eventCanceled) return completedFired; +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new _ListCache(entries); + this.size = data.size; +} - if (revert) { - parentEl = rootEl; // actualization +// Add methods to `Stack`. +Stack.prototype.clear = _stackClear; +Stack.prototype['delete'] = _stackDelete; +Stack.prototype.get = _stackGet; +Stack.prototype.has = _stackHas; +Stack.prototype.set = _stackSet; - capture(); +var _Stack = Stack; - this._hideClone(); +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; - dragOverEvent('revert'); + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} - if (!Sortable.eventCanceled) { - if (nextEl) { - rootEl.insertBefore(dragEl, nextEl); - } else { - rootEl.appendChild(dragEl); - } - } +var _arrayEach = arrayEach; - return completed(true); - } +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); - var elLastChild = lastChild(el, options.draggable); + var index = -1, + length = props.length; - if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { - // Insert to end of list - // If already at end of list: Do not insert - if (elLastChild === dragEl) { - return completed(false); - } // if there is a last element, it is the target + while (++index < length) { + var key = props[index]; + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; - if (elLastChild && el === evt.target) { - target = elLastChild; - } + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + _baseAssignValue(object, key, newValue); + } else { + _assignValue(object, key, newValue); + } + } + return object; +} - if (target) { - targetRect = getRect(target); - } +var _copyObject = copyObject; - if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { - capture(); - el.appendChild(dragEl); - parentEl = el; // actualization +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); - changed(); - return completed(true); - } - } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) { - // Insert to start of list - var firstChild = getChild(el, 0, options, true); + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} - if (firstChild === dragEl) { - return completed(false); - } +var _baseTimes = baseTimes; - target = firstChild; - targetRect = getRect(target); +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} - if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) { - capture(); - el.insertBefore(dragEl, firstChild); - parentEl = el; // actualization +var stubFalse_1 = stubFalse; - changed(); - return completed(true); - } - } else if (target.parentNode === el) { - targetRect = getRect(target); - var direction = 0, - targetBeforeFirstSwap, - differentLevel = dragEl.parentNode !== el, - differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), - side1 = vertical ? 'top' : 'left', - scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'), - scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; +var isBuffer_1 = createCommonjsModule(function (module, exports) { +/** Detect free variable `exports`. */ +var freeExports = exports && !exports.nodeType && exports; - if (lastTarget !== target) { - targetBeforeFirstSwap = targetRect[side1]; - pastFirstInvertThresh = false; - isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; - } +/** Detect free variable `module`. */ +var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); - var sibling; +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; - if (direction !== 0) { - // Check if target is beside dragEl in respective direction (ignoring hidden elements) - var dragIndex = index(dragEl); +/** Built-in value references. */ +var Buffer = moduleExports ? _root.Buffer : undefined; - do { - dragIndex -= direction; - sibling = parentEl.children[dragIndex]; - } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl)); - } // If dragEl is already beside target: Do not insert +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse_1; +module.exports = isBuffer; +}); - if (direction === 0 || sibling === target) { - return completed(false); - } +/** `Object#toString` result references. */ +var argsTag$2 = '[object Arguments]', + arrayTag$2 = '[object Array]', + boolTag$3 = '[object Boolean]', + dateTag$3 = '[object Date]', + errorTag$2 = '[object Error]', + funcTag$1 = '[object Function]', + mapTag$5 = '[object Map]', + numberTag$3 = '[object Number]', + objectTag$4 = '[object Object]', + regexpTag$3 = '[object RegExp]', + setTag$5 = '[object Set]', + stringTag$3 = '[object String]', + weakMapTag$2 = '[object WeakMap]'; - lastTarget = target; - lastDirection = direction; - var nextSibling = target.nextElementSibling, - after = false; - after = direction === 1; +var arrayBufferTag$3 = '[object ArrayBuffer]', + dataViewTag$4 = '[object DataView]', + float32Tag$2 = '[object Float32Array]', + float64Tag$2 = '[object Float64Array]', + int8Tag$2 = '[object Int8Array]', + int16Tag$2 = '[object Int16Array]', + int32Tag$2 = '[object Int32Array]', + uint8Tag$2 = '[object Uint8Array]', + uint8ClampedTag$2 = '[object Uint8ClampedArray]', + uint16Tag$2 = '[object Uint16Array]', + uint32Tag$2 = '[object Uint32Array]'; - var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = +typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = +typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = +typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = +typedArrayTags[uint32Tag$2] = true; +typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = +typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = +typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = +typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = +typedArrayTags[mapTag$5] = typedArrayTags[numberTag$3] = +typedArrayTags[objectTag$4] = typedArrayTags[regexpTag$3] = +typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = +typedArrayTags[weakMapTag$2] = false; - if (moveVector !== false) { - if (moveVector === 1 || moveVector === -1) { - after = moveVector === 1; - } +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike_1(value) && + isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)]; +} - _silent = true; - setTimeout(_unsilent, 30); - capture(); +var _baseIsTypedArray = baseIsTypedArray; - if (after && !nextSibling) { - el.appendChild(dragEl); - } else { - target.parentNode.insertBefore(dragEl, after ? nextSibling : target); - } // Undo chrome's scroll adjustment (has no effect on other browsers) +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} +var _baseUnary = baseUnary; - if (scrolledPastTop) { - scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); - } +var _nodeUtil = createCommonjsModule(function (module, exports) { +/** Detect free variable `exports`. */ +var freeExports = exports && !exports.nodeType && exports; - parentEl = dragEl.parentNode; // actualization - // must be done before animation +/** Detect free variable `module`. */ +var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) { - targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); - } +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; - changed(); - return completed(true); - } - } +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && _freeGlobal.process; - if (el.contains(dragEl)) { - return completed(false); - } - } +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; - return false; - }, - _ignoreWhileAnimating: null, - _offMoveEvents: function _offMoveEvents() { - off(document, 'mousemove', this._onTouchMove); - off(document, 'touchmove', this._onTouchMove); - off(document, 'pointermove', this._onTouchMove); - off(document, 'dragover', nearestEmptyInsertDetectEvent); - off(document, 'mousemove', nearestEmptyInsertDetectEvent); - off(document, 'touchmove', nearestEmptyInsertDetectEvent); - }, - _offUpEvents: function _offUpEvents() { - var ownerDocument = this.el.ownerDocument; - off(ownerDocument, 'mouseup', this._onDrop); - off(ownerDocument, 'touchend', this._onDrop); - off(ownerDocument, 'pointerup', this._onDrop); - off(ownerDocument, 'touchcancel', this._onDrop); - off(document, 'selectstart', this); - }, - _onDrop: function _onDrop( - /**Event*/ - evt) { - var el = this.el, - options = this.options; // Get the index of the dragged element within its parent + if (types) { + return types; + } - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); - pluginEvent('drop', this, { - evt: evt - }); - parentEl = dragEl && dragEl.parentNode; // Get again after plugin event + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); +module.exports = nodeUtil; +}); - if (Sortable.eventCanceled) { - this._nulling(); +/* Node.js helper references. */ +var nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray; - return; - } +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray; - awaitingDragStarted = false; - isCircumstantialInvert = false; - pastFirstInvertThresh = false; - clearInterval(this._loopId); - clearTimeout(this._dragStartTimer); +var isTypedArray_1 = isTypedArray; - _cancelNextTick(this.cloneId); +/** Used for built-in method references. */ +var objectProto$8 = Object.prototype; - _cancelNextTick(this._dragStartId); // Unbind events +/** Used to check objects for own properties. */ +var hasOwnProperty$6 = objectProto$8.hasOwnProperty; +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray_1(value), + isArg = !isArr && isArguments_1(value), + isBuff = !isArr && !isArg && isBuffer_1(value), + isType = !isArr && !isArg && !isBuff && isTypedArray_1(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? _baseTimes(value.length, String) : [], + length = result.length; - if (this.nativeDraggable) { - off(document, 'drop', this); - off(el, 'dragstart', this._onDragStart); + for (var key in value) { + if ((inherited || hasOwnProperty$6.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + _isIndex(key, length) + ))) { + result.push(key); } + } + return result; +} - this._offMoveEvents(); +var _arrayLikeKeys = arrayLikeKeys; - this._offUpEvents(); +/** Used for built-in method references. */ +var objectProto$7 = Object.prototype; - if (Safari) { - css(document.body, 'user-select', ''); - } +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$7; - css(dragEl, 'transform', ''); + return value === proto; +} - if (evt) { - if (moved) { - evt.cancelable && evt.preventDefault(); - !options.dropBubble && evt.stopPropagation(); - } +var _isPrototype = isPrototype; - ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} - if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') { - // Remove clone(s) - cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); - } +var _overArg = overArg; - if (dragEl) { - if (this.nativeDraggable) { - off(dragEl, 'dragend', this); - } +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = _overArg(Object.keys, Object); - _disableDraggable(dragEl); +var _nativeKeys = nativeKeys; - dragEl.style['will-change'] = ''; // Remove classes - // ghostClass is added in dragStarted +/** Used for built-in method references. */ +var objectProto$6 = Object.prototype; - if (moved && !awaitingDragStarted) { - toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); - } +/** Used to check objects for own properties. */ +var hasOwnProperty$5 = objectProto$6.hasOwnProperty; - toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!_isPrototype(object)) { + return _nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty$5.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} - _dispatchEvent({ - sortable: this, - name: 'unchoose', - toEl: parentEl, - newIndex: null, - newDraggableIndex: null, - originalEvent: evt - }); +var _baseKeys = baseKeys; - if (rootEl !== parentEl) { - if (newIndex >= 0) { - // Add event - _dispatchEvent({ - rootEl: parentEl, - name: 'add', - toEl: parentEl, - fromEl: rootEl, - originalEvent: evt - }); // Remove event +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength_1(value.length) && !isFunction_1(value); +} +var isArrayLike_1 = isArrayLike; - _dispatchEvent({ - sortable: this, - name: 'remove', - toEl: parentEl, - originalEvent: evt - }); // drag from one list and drop into another +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object); +} +var keys_1 = keys; - _dispatchEvent({ - rootEl: parentEl, - name: 'sort', - toEl: parentEl, - fromEl: rootEl, - originalEvent: evt - }); +/** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return object && _copyObject(source, keys_1(source), object); +} - _dispatchEvent({ - sortable: this, - name: 'sort', - toEl: parentEl, - originalEvent: evt - }); - } +var _baseAssign = baseAssign; - putSortable && putSortable.save(); - } else { - if (newIndex !== oldIndex) { - if (newIndex >= 0) { - // drag & drop within the same list - _dispatchEvent({ - sortable: this, - name: 'update', - toEl: parentEl, - originalEvent: evt - }); +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} - _dispatchEvent({ - sortable: this, - name: 'sort', - toEl: parentEl, - originalEvent: evt - }); - } - } - } +var _nativeKeysIn = nativeKeysIn; - if (Sortable.active) { - /* jshint eqnull:true */ - if (newIndex == null || newIndex === -1) { - newIndex = oldIndex; - newDraggableIndex = oldDraggableIndex; - } +/** Used for built-in method references. */ +var objectProto$5 = Object.prototype; - _dispatchEvent({ - sortable: this, - name: 'end', - toEl: parentEl, - originalEvent: evt - }); // Save sorting +/** Used to check objects for own properties. */ +var hasOwnProperty$4 = objectProto$5.hasOwnProperty; +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject_1(object)) { + return _nativeKeysIn(object); + } + var isProto = _isPrototype(object), + result = []; - this.save(); - } - } + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty$4.call(object, key)))) { + result.push(key); } + } + return result; +} - this._nulling(); - }, - _nulling: function _nulling() { - pluginEvent('nulling', this); - rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; - savedInputChecked.forEach(function (el) { - el.checked = true; - }); - savedInputChecked.length = lastDx = lastDy = 0; - }, - handleEvent: function handleEvent( - /**Event*/ - evt) { - switch (evt.type) { - case 'drop': - case 'dragend': - this._onDrop(evt); - - break; +var _baseKeysIn = baseKeysIn; - case 'dragenter': - case 'dragover': - if (dragEl) { - this._onDragOver(evt); +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike_1(object) ? _arrayLikeKeys(object, true) : _baseKeysIn(object); +} - _globalDragOver(evt); - } +var keysIn_1 = keysIn; - break; +/** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssignIn(object, source) { + return object && _copyObject(source, keysIn_1(source), object); +} - case 'selectstart': - evt.preventDefault(); - break; - } - }, +var _baseAssignIn = baseAssignIn; - /** - * Serializes the item into an array of string. - * @returns {String[]} - */ - toArray: function toArray() { - var order = [], - el, - children = this.el.children, - i = 0, - n = children.length, - options = this.options; +var _cloneBuffer = createCommonjsModule(function (module, exports) { +/** Detect free variable `exports`. */ +var freeExports = exports && !exports.nodeType && exports; - for (; i < n; i++) { - el = children[i]; +/** Detect free variable `module`. */ +var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - if (closest(el, options.draggable, this.el, false)) { - order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); - } - } +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; - return order; - }, +/** Built-in value references. */ +var Buffer = moduleExports ? _root.Buffer : undefined, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; - /** - * Sorts the elements according to the array. - * @param {String[]} order order of the items - */ - sort: function sort(order, useAnimation) { - var items = {}, - rootEl = this.el; - this.toArray().forEach(function (id, i) { - var el = rootEl.children[i]; +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - if (closest(el, this.options.draggable, rootEl, false)) { - items[id] = el; - } - }, this); - useAnimation && this.captureAnimationState(); - order.forEach(function (id) { - if (items[id]) { - rootEl.removeChild(items[id]); - rootEl.appendChild(items[id]); - } - }); - useAnimation && this.animateAll(); - }, + buffer.copy(result); + return result; +} - /** - * Save the current sorting - */ - save: function save() { - var store = this.options.store; - store && store.set && store.set(this); - }, +module.exports = cloneBuffer; +}); - /** - * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. - * @param {HTMLElement} el - * @param {String} [selector] default: `options.draggable` - * @returns {HTMLElement|null} - */ - closest: function closest$1(el, selector) { - return closest(el, selector || this.options.draggable, this.el, false); - }, +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; - /** - * Set/get option - * @param {string} name - * @param {*} [value] - * @returns {*} - */ - option: function option(name, value) { - var options = this.options; + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} - if (value === void 0) { - return options[name]; - } else { - var modifiedValue = PluginManager.modifyOption(this, name, value); +var _copyArray = copyArray; - if (typeof modifiedValue !== 'undefined') { - options[name] = modifiedValue; - } else { - options[name] = value; - } +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; - if (name === 'group') { - _prepareGroup(options); - } + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; } - }, + } + return result; +} - /** - * Destroy - */ - destroy: function destroy() { - pluginEvent('destroy', this); - var el = this.el; - el[expando] = null; - off(el, 'mousedown', this._onTapStart); - off(el, 'touchstart', this._onTapStart); - off(el, 'pointerdown', this._onTapStart); +var _arrayFilter = arrayFilter; - if (this.nativeDraggable) { - off(el, 'dragover', this); - off(el, 'dragenter', this); - } // Remove draggable attributes +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} +var stubArray_1 = stubArray; - Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) { - el.removeAttribute('draggable'); - }); +/** Used for built-in method references. */ +var objectProto$4 = Object.prototype; - this._onDrop(); +/** Built-in value references. */ +var propertyIsEnumerable = objectProto$4.propertyIsEnumerable; - this._disableDelayedDragEvents(); +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols$1 = Object.getOwnPropertySymbols; - sortables.splice(sortables.indexOf(this.el), 1); - this.el = el = null; - }, - _hideClone: function _hideClone() { - if (!cloneHidden) { - pluginEvent('hideClone', this); - if (Sortable.eventCanceled) return; - css(cloneEl, 'display', 'none'); +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols$1 ? stubArray_1 : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return _arrayFilter(nativeGetSymbols$1(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; - if (this.options.removeCloneOnHide && cloneEl.parentNode) { - cloneEl.parentNode.removeChild(cloneEl); - } +var _getSymbols = getSymbols; - cloneHidden = true; - } - }, - _showClone: function _showClone(putSortable) { - if (putSortable.lastPutMode !== 'clone') { - this._hideClone(); +/** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbols(source, object) { + return _copyObject(source, _getSymbols(source), object); +} - return; - } +var _copySymbols = copySymbols; - if (cloneHidden) { - pluginEvent('showClone', this); - if (Sortable.eventCanceled) return; // show clone at dragEl or original position +/** Built-in value references. */ +var getPrototype = _overArg(Object.getPrototypeOf, Object); - if (dragEl.parentNode == rootEl && !this.options.group.revertClone) { - rootEl.insertBefore(cloneEl, dragEl); - } else if (nextEl) { - rootEl.insertBefore(cloneEl, nextEl); - } else { - rootEl.appendChild(cloneEl); - } +var _getPrototype = getPrototype; - if (this.options.group.revertClone) { - this.animate(dragEl, cloneEl); - } +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; - css(cloneEl, 'display', ''); - cloneHidden = false; - } +/** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbolsIn = !nativeGetSymbols ? stubArray_1 : function(object) { + var result = []; + while (object) { + _arrayPush(result, _getSymbols(object)); + object = _getPrototype(object); } + return result; }; -function _globalDragOver( -/**Event*/ -evt) { - if (evt.dataTransfer) { - evt.dataTransfer.dropEffect = 'move'; - } +var _getSymbolsIn = getSymbolsIn; - evt.cancelable && evt.preventDefault(); +/** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbolsIn(source, object) { + return _copyObject(source, _getSymbolsIn(source), object); } -function _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { - var evt, - sortable = fromEl[expando], - onMoveFn = sortable.options.onMove, - retVal; // Support for new CustomEvent feature - - if (window.CustomEvent && !IE11OrLess && !Edge) { - evt = new CustomEvent('move', { - bubbles: true, - cancelable: true - }); - } else { - evt = document.createEvent('Event'); - evt.initEvent('move', true, true); - } +var _copySymbolsIn = copySymbolsIn; - evt.to = toEl; - evt.from = fromEl; - evt.dragged = dragEl; - evt.draggedRect = dragRect; - evt.related = targetEl || toEl; - evt.relatedRect = targetRect || getRect(toEl); - evt.willInsertAfter = willInsertAfter; - evt.originalEvent = originalEvent; - fromEl.dispatchEvent(evt); +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object)); +} - if (onMoveFn) { - retVal = onMoveFn.call(sortable, evt, originalEvent); - } +var _baseGetAllKeys = baseGetAllKeys; - return retVal; +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return _baseGetAllKeys(object, keys_1, _getSymbols); } -function _disableDraggable(el) { - el.draggable = false; -} +var _getAllKeys = getAllKeys; -function _unsilent() { - _silent = false; +/** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeysIn(object) { + return _baseGetAllKeys(object, keysIn_1, _getSymbolsIn); } -function _ghostIsFirst(evt, vertical, sortable) { - var rect = getRect(getChild(sortable.el, 0, sortable.options, true)); - var spacer = 10; - return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left; -} +var _getAllKeysIn = getAllKeysIn; -function _ghostIsLast(evt, vertical, sortable) { - var rect = getRect(lastChild(sortable.el, sortable.options.draggable)); - var spacer = 10; - return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer; -} +/* Built-in method references that are verified to be native. */ +var DataView = _getNative(_root, 'DataView'); -function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { - var mouseOnAxis = vertical ? evt.clientY : evt.clientX, - targetLength = vertical ? targetRect.height : targetRect.width, - targetS1 = vertical ? targetRect.top : targetRect.left, - targetS2 = vertical ? targetRect.bottom : targetRect.right, - invert = false; +var _DataView = DataView; - if (!invertSwap) { - // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold - if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { - // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2 - // check if past first invert threshold on side opposite of lastDirection - if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { - // past first invert threshold, do not restrict inverted threshold to dragEl shadow - pastFirstInvertThresh = true; - } +/* Built-in method references that are verified to be native. */ +var Promise$1 = _getNative(_root, 'Promise'); - if (!pastFirstInvertThresh) { - // dragEl shadow (target move distance shadow) - if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow - : mouseOnAxis > targetS2 - targetMoveDistance) { - return -lastDirection; - } - } else { - invert = true; - } - } else { - // Regular - if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { - return _getInsertDirection(target); - } - } - } +var _Promise = Promise$1; - invert = invert || invertSwap; +/* Built-in method references that are verified to be native. */ +var Set$1 = _getNative(_root, 'Set'); - if (invert) { - // Invert of regular - if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { - return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; - } - } +var _Set = Set$1; + +/* Built-in method references that are verified to be native. */ +var WeakMap = _getNative(_root, 'WeakMap'); + +var _WeakMap = WeakMap; + +/** `Object#toString` result references. */ +var mapTag$4 = '[object Map]', + objectTag$3 = '[object Object]', + promiseTag = '[object Promise]', + setTag$4 = '[object Set]', + weakMapTag$1 = '[object WeakMap]'; + +var dataViewTag$3 = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = _toSource(_DataView), + mapCtorString = _toSource(_Map), + promiseCtorString = _toSource(_Promise), + setCtorString = _toSource(_Set), + weakMapCtorString = _toSource(_WeakMap); - return 0; -} /** - * Gets the direction dragEl must be swapped relative to target in order to make it - * seem that dragEl has been "inserted" into that element's position - * @param {HTMLElement} target The target whose position dragEl is being inserted at - * @return {Number} Direction dragEl must be swapped + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. */ +var getTag = _baseGetTag; +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$3) || + (_Map && getTag(new _Map) != mapTag$4) || + (_Promise && getTag(_Promise.resolve()) != promiseTag) || + (_Set && getTag(new _Set) != setTag$4) || + (_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) { + getTag = function(value) { + var result = _baseGetTag(value), + Ctor = result == objectTag$3 ? value.constructor : undefined, + ctorString = Ctor ? _toSource(Ctor) : ''; -function _getInsertDirection(target) { - if (index(dragEl) < index(target)) { - return 1; - } else { - return -1; - } + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag$3; + case mapCtorString: return mapTag$4; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag$4; + case weakMapCtorString: return weakMapTag$1; + } + } + return result; + }; } + +var _getTag = getTag; + +/** Used for built-in method references. */ +var objectProto$3 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + /** - * Generate id - * @param {HTMLElement} el - * @returns {String} + * Initializes an array clone. + * * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. */ +function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty$3.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; +} +var _initCloneArray = initCloneArray; -function _generateId(el) { - var str = el.tagName + el.className + el.src + el.href + el.textContent, - i = str.length, - sum = 0; +/** Built-in value references. */ +var Uint8Array = _root.Uint8Array; - while (i--) { - sum += str.charCodeAt(i); - } +var _Uint8Array = Uint8Array; - return sum.toString(36); +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new _Uint8Array(result).set(new _Uint8Array(arrayBuffer)); + return result; } -function _saveInputCheckedState(root) { - savedInputChecked.length = 0; - var inputs = root.getElementsByTagName('input'); - var idx = inputs.length; +var _cloneArrayBuffer = cloneArrayBuffer; - while (idx--) { - var el = inputs[idx]; - el.checked && savedInputChecked.push(el); - } +/** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ +function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? _cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); } -function _nextTick(fn) { - return setTimeout(fn, 0); -} +var _cloneDataView = cloneDataView; -function _cancelNextTick(id) { - return clearTimeout(id); -} // Fixed #973: +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; +/** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ +function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; +} -if (documentExists) { - on(document, 'touchmove', function (evt) { - if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { - evt.preventDefault(); - } - }); -} // Export utils +var _cloneRegExp = cloneRegExp; +/** Used to convert symbols to primitives and strings. */ +var symbolProto$1 = _Symbol ? _Symbol.prototype : undefined, + symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : undefined; -Sortable.utils = { - on: on, - off: off, - css: css, - find: find, - is: function is(el, selector) { - return !!closest(el, selector, el, false); - }, - extend: extend, - throttle: throttle, - closest: closest, - toggleClass: toggleClass, - clone: clone, - index: index, - nextTick: _nextTick, - cancelNextTick: _cancelNextTick, - detectDirection: _detectDirection, - getChild: getChild -}; /** - * Get the Sortable instance of an element - * @param {HTMLElement} element The element - * @return {Sortable|undefined} The instance of Sortable + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. */ +function cloneSymbol(symbol) { + return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {}; +} + +var _cloneSymbol = cloneSymbol; -Sortable.get = function (element) { - return element[expando]; -}; /** - * Mount a plugin to Sortable - * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? _cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} +var _cloneTypedArray = cloneTypedArray; -Sortable.mount = function () { - for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) { - plugins[_key] = arguments[_key]; - } +/** `Object#toString` result references. */ +var boolTag$2 = '[object Boolean]', + dateTag$2 = '[object Date]', + mapTag$3 = '[object Map]', + numberTag$2 = '[object Number]', + regexpTag$2 = '[object RegExp]', + setTag$3 = '[object Set]', + stringTag$2 = '[object String]', + symbolTag$2 = '[object Symbol]'; - if (plugins[0].constructor === Array) plugins = plugins[0]; - plugins.forEach(function (plugin) { - if (!plugin.prototype || !plugin.prototype.constructor) { - throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin)); - } +var arrayBufferTag$2 = '[object ArrayBuffer]', + dataViewTag$2 = '[object DataView]', + float32Tag$1 = '[object Float32Array]', + float64Tag$1 = '[object Float64Array]', + int8Tag$1 = '[object Int8Array]', + int16Tag$1 = '[object Int16Array]', + int32Tag$1 = '[object Int32Array]', + uint8Tag$1 = '[object Uint8Array]', + uint8ClampedTag$1 = '[object Uint8ClampedArray]', + uint16Tag$1 = '[object Uint16Array]', + uint32Tag$1 = '[object Uint32Array]'; - if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils); - PluginManager.mount(plugin); - }); -}; /** - * Create sortable instance - * @param {HTMLElement} el - * @param {Object} [options] + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. */ +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag$2: + return _cloneArrayBuffer(object); + case boolTag$2: + case dateTag$2: + return new Ctor(+object); -Sortable.create = function (el, options) { - return new Sortable(el, options); -}; // Export + case dataViewTag$2: + return _cloneDataView(object, isDeep); + case float32Tag$1: case float64Tag$1: + case int8Tag$1: case int16Tag$1: case int32Tag$1: + case uint8Tag$1: case uint8ClampedTag$1: case uint16Tag$1: case uint32Tag$1: + return _cloneTypedArray(object, isDeep); -Sortable.version = version; + case mapTag$3: + return new Ctor; -var drop = function drop(_ref) { - var originalEvent = _ref.originalEvent, - putSortable = _ref.putSortable, - dragEl = _ref.dragEl, - activeSortable = _ref.activeSortable, - dispatchSortableEvent = _ref.dispatchSortableEvent, - hideGhostForTarget = _ref.hideGhostForTarget, - unhideGhostForTarget = _ref.unhideGhostForTarget; - if (!originalEvent) return; - var toSortable = putSortable || activeSortable; - hideGhostForTarget(); - var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; - var target = document.elementFromPoint(touch.clientX, touch.clientY); - unhideGhostForTarget(); + case numberTag$2: + case stringTag$2: + return new Ctor(object); - if (toSortable && !toSortable.el.contains(target)) { - dispatchSortableEvent('spill'); - this.onSpill({ - dragEl: dragEl, - putSortable: putSortable - }); - } -}; + case regexpTag$2: + return _cloneRegExp(object); -function Revert() {} + case setTag$3: + return new Ctor; -Revert.prototype = { - startIndex: null, - dragStart: function dragStart(_ref2) { - var oldDraggableIndex = _ref2.oldDraggableIndex; - this.startIndex = oldDraggableIndex; - }, - onSpill: function onSpill(_ref3) { - var dragEl = _ref3.dragEl, - putSortable = _ref3.putSortable; - this.sortable.captureAnimationState(); + case symbolTag$2: + return _cloneSymbol(object); + } +} - if (putSortable) { - putSortable.captureAnimationState(); - } +var _initCloneByTag = initCloneByTag; - var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); +/** Built-in value references. */ +var objectCreate = Object.create; - if (nextSibling) { - this.sortable.el.insertBefore(dragEl, nextSibling); - } else { - this.sortable.el.appendChild(dragEl); +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject_1(proto)) { + return {}; } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); - this.sortable.animateAll(); - - if (putSortable) { - putSortable.animateAll(); - } - }, - drop: drop -}; +var _baseCreate = baseCreate; -_extends(Revert, { - pluginName: 'revertOnSpill' -}); +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !_isPrototype(object)) + ? _baseCreate(_getPrototype(object)) + : {}; +} -function Remove() {} +var _initCloneObject = initCloneObject; -Remove.prototype = { - onSpill: function onSpill(_ref4) { - var dragEl = _ref4.dragEl, - putSortable = _ref4.putSortable; - var parentSortable = putSortable || this.sortable; - parentSortable.captureAnimationState(); - dragEl.parentNode && dragEl.parentNode.removeChild(dragEl); - parentSortable.animateAll(); - }, - drop: drop -}; +/** `Object#toString` result references. */ +var mapTag$2 = '[object Map]'; -_extends(Remove, { - pluginName: 'removeOnSpill' -}); +/** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ +function baseIsMap(value) { + return isObjectLike_1(value) && _getTag(value) == mapTag$2; +} -/* src/view/sortable/SortableList.svelte generated by Svelte v3.38.2 */ +var _baseIsMap = baseIsMap; -function get_each_context$2(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[10] = list[i]; - return child_ctx; -} +/* Node.js helper references. */ +var nodeIsMap = _nodeUtil && _nodeUtil.isMap; -const get_default_slot_changes = dirty => ({ item: dirty & /*items*/ 1 }); -const get_default_slot_context = ctx => ({ item: /*item*/ ctx[10] }); +/** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ +var isMap = nodeIsMap ? _baseUnary(nodeIsMap) : _baseIsMap; -// (33:2) {#each items as item (item.id)} -function create_each_block$2(key_1, ctx) { - let li; - let t; - let li_data_id_value; - let current; - const default_slot_template = /*#slots*/ ctx[5].default; - const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[4], get_default_slot_context); +var isMap_1 = isMap; - return { - key: key_1, - first: null, - c() { - li = element("li"); - if (default_slot) default_slot.c(); - t = space(); - attr(li, "data-id", li_data_id_value = /*item*/ ctx[10].id); - this.first = li; - }, - m(target, anchor) { - insert(target, li, anchor); +/** `Object#toString` result references. */ +var setTag$2 = '[object Set]'; - if (default_slot) { - default_slot.m(li, null); - } +/** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ +function baseIsSet(value) { + return isObjectLike_1(value) && _getTag(value) == setTag$2; +} - append(li, t); - current = true; - }, - p(new_ctx, dirty) { - ctx = new_ctx; +var _baseIsSet = baseIsSet; - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope, items*/ 17)) { - update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[4], dirty, get_default_slot_changes, get_default_slot_context); - } - } +/* Node.js helper references. */ +var nodeIsSet = _nodeUtil && _nodeUtil.isSet; - if (!current || dirty & /*items*/ 1 && li_data_id_value !== (li_data_id_value = /*item*/ ctx[10].id)) { - attr(li, "data-id", li_data_id_value); - } - }, - i(local) { - if (current) return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) detach(li); - if (default_slot) default_slot.d(detaching); - } - }; -} +/** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ +var isSet = nodeIsSet ? _baseUnary(nodeIsSet) : _baseIsSet; -function create_fragment$6(ctx) { - let ul; - let each_blocks = []; - let each_1_lookup = new Map(); - let ul_class_value; - let current; - let each_value = /*items*/ ctx[0]; - const get_key = ctx => /*item*/ ctx[10].id; +var isSet_1 = isSet; - for (let i = 0; i < each_value.length; i += 1) { - let child_ctx = get_each_context$2(ctx, each_value, i); - let key = get_key(child_ctx); - each_1_lookup.set(key, each_blocks[i] = create_each_block$2(key, child_ctx)); - } +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG$2 = 1, + CLONE_FLAT_FLAG$1 = 2, + CLONE_SYMBOLS_FLAG$2 = 4; - return { - c() { - ul = element("ul"); +/** `Object#toString` result references. */ +var argsTag$1 = '[object Arguments]', + arrayTag$1 = '[object Array]', + boolTag$1 = '[object Boolean]', + dateTag$1 = '[object Date]', + errorTag$1 = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag$1 = '[object Map]', + numberTag$1 = '[object Number]', + objectTag$2 = '[object Object]', + regexpTag$1 = '[object RegExp]', + setTag$1 = '[object Set]', + stringTag$1 = '[object String]', + symbolTag$1 = '[object Symbol]', + weakMapTag = '[object WeakMap]'; - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } +var arrayBufferTag$1 = '[object ArrayBuffer]', + dataViewTag$1 = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; - attr(ul, "class", ul_class_value = /*$$props*/ ctx[2].class); - }, - m(target, anchor) { - insert(target, ul, anchor); +/** Used to identify `toStringTag` values supported by `_.clone`. */ +var cloneableTags = {}; +cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = +cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = +cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = +cloneableTags[float32Tag] = cloneableTags[float64Tag] = +cloneableTags[int8Tag] = cloneableTags[int16Tag] = +cloneableTags[int32Tag] = cloneableTags[mapTag$1] = +cloneableTags[numberTag$1] = cloneableTags[objectTag$2] = +cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = +cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = +cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = +cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag$1] = cloneableTags[funcTag] = +cloneableTags[weakMapTag] = false; - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(ul, null); - } +/** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ +function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG$2, + isFlat = bitmask & CLONE_FLAT_FLAG$1, + isFull = bitmask & CLONE_SYMBOLS_FLAG$2; - /*ul_binding*/ ctx[6](ul); - current = true; - }, - p(ctx, [dirty]) { - if (dirty & /*items, $$scope*/ 17) { - each_value = /*items*/ ctx[0]; - group_outros(); - each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, ul, outro_and_destroy_block, create_each_block$2, null, get_each_context$2); - check_outros(); - } + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject_1(value)) { + return value; + } + var isArr = isArray_1(value); + if (isArr) { + result = _initCloneArray(value); + if (!isDeep) { + return _copyArray(value, result); + } + } else { + var tag = _getTag(value), + isFunc = tag == funcTag || tag == genTag; - if (!current || dirty & /*$$props*/ 4 && ul_class_value !== (ul_class_value = /*$$props*/ ctx[2].class)) { - attr(ul, "class", ul_class_value); - } - }, - i(local) { - if (current) return; + if (isBuffer_1(value)) { + return _cloneBuffer(value, isDeep); + } + if (tag == objectTag$2 || tag == argsTag$1 || (isFunc && !object)) { + result = (isFlat || isFunc) ? {} : _initCloneObject(value); + if (!isDeep) { + return isFlat + ? _copySymbolsIn(value, _baseAssignIn(result, value)) + : _copySymbols(value, _baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = _initCloneByTag(value, tag, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new _Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); - for (let i = 0; i < each_value.length; i += 1) { - transition_in(each_blocks[i]); - } + if (isSet_1(value)) { + value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap_1(value)) { + value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + } - current = true; - }, - o(local) { - for (let i = 0; i < each_blocks.length; i += 1) { - transition_out(each_blocks[i]); - } + var keysFunc = isFull + ? (isFlat ? _getAllKeysIn : _getAllKeys) + : (isFlat ? keysIn_1 : keys_1); - current = false; - }, - d(detaching) { - if (detaching) detach(ul); + var props = isArr ? undefined : keysFunc(value); + _arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + _assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; +} - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].d(); - } +var _baseClone = baseClone; - /*ul_binding*/ ctx[6](null); - } - }; +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ +function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; } -function instance$6($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - - let { items = [] } = $$props; - let { sortableOptions = {} } = $$props; +var last_1 = last; - // Prepare sortable bits. Set up a dispatcher for sort events, - // and proxy the store.set function to fire it. - const dispatcher = createEventDispatcher(); +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ +function baseSlice(array, start, end) { + var index = -1, + length = array.length; - sortableOptions = Object.assign({}, sortableOptions); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; - sortableOptions.store = sortableOptions.store || { - set: () => { - - }, - get: sortable => sortable.toArray() - }; + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; +} - const oldStoreSet = sortableOptions.store.set; +var _baseSlice = baseSlice; - sortableOptions.store.set = sortable => { - const sortedItems = sortable.toArray().map(k => items.find(i => i.id === k)); - dispatcher("orderChanged", sortedItems); - oldStoreSet(sortable); - }; +/** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ +function parent(object, path) { + return path.length < 2 ? object : _baseGet(object, _baseSlice(path, 0, -1)); +} - let listElement; +var _parent = parent; - onMount(() => { - Sortable.create(listElement, sortableOptions); - }); +/** + * The base implementation of `_.unset`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The property path to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + */ +function baseUnset(object, path) { + path = _castPath(path, object); + object = _parent(object, path); + return object == null || delete object[_toKey(last_1(path))]; +} - function ul_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - listElement = $$value; - $$invalidate(1, listElement); - }); - } +var _baseUnset = baseUnset; - $$self.$$set = $$new_props => { - $$invalidate(2, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("items" in $$new_props) $$invalidate(0, items = $$new_props.items); - if ("sortableOptions" in $$new_props) $$invalidate(3, sortableOptions = $$new_props.sortableOptions); - if ("$$scope" in $$new_props) $$invalidate(4, $$scope = $$new_props.$$scope); - }; +/** `Object#toString` result references. */ +var objectTag$1 = '[object Object]'; - $$props = exclude_internal_props($$props); - return [items, listElement, $$props, sortableOptions, $$scope, slots, ul_binding]; -} +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto$2 = Object.prototype; -class SortableList extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance$6, create_fragment$6, safe_not_equal, { items: 0, sortableOptions: 3 }); - } -} +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; -/* src/view/explorer/DraftList.svelte generated by Svelte v3.38.2 */ +/** Used to check objects for own properties. */ +var hasOwnProperty$2 = objectProto$2.hasOwnProperty; -const { document: document_1$1 } = globals; +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); -function add_css$4() { - var style = element("style"); - style.id = "svelte-1jmafs-style"; - style.textContent = "#draft-list.svelte-1jmafs.svelte-1jmafs{margin:4px 0px}#draft-list.svelte-1jmafs .sortable-draft-list{list-style-type:none;padding:0px;margin:0px}.draft-container.svelte-1jmafs.svelte-1jmafs{display:flex;border:1px solid transparent;border-radius:3px;cursor:pointer;color:var(--text-muted);font-size:14px;line-height:20px;white-space:nowrap;padding:2px 0px}.selected.svelte-1jmafs.svelte-1jmafs,.svelte-1jmafs:not(.dragging) .draft-container.svelte-1jmafs:hover{background-color:var(--background-secondary-alt);color:var(--text-normal)}.draft-container.svelte-1jmafs.svelte-1jmafs:active{background-color:inherit;color:var(--text-muted)}.draft-ghost{background-color:var(--interactive-accent-hover);color:var(--text-on-accent)}"; - append(document_1$1.head, style); +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike_1(value) || _baseGetTag(value) != objectTag$1) { + return false; + } + var proto = _getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty$2.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; } -// (89:2) -function create_default_slot$2(ctx) { - let div; - let t_value = /*item*/ ctx[18].name + ""; - let t; - let div_data_draft_path_value; - let div_contenteditable_value; - let mounted; - let dispose; +var isPlainObject_1 = isPlainObject; - function click_handler() { - return /*click_handler*/ ctx[11](/*item*/ ctx[18]); - } +/** + * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain + * objects. + * + * @private + * @param {*} value The value to inspect. + * @param {string} key The key of the property to inspect. + * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. + */ +function customOmitClone(value) { + return isPlainObject_1(value) ? undefined : value; +} - return { - c() { - div = element("div"); - t = text(t_value); - attr(div, "class", "draft-container svelte-1jmafs"); - attr(div, "data-draft-path", div_data_draft_path_value = /*item*/ ctx[18].id); - attr(div, "contenteditable", div_contenteditable_value = /*item*/ ctx[18].id === /*editingPath*/ ctx[2]); - toggle_class(div, "selected", /*$currentDraftPath*/ ctx[3] && /*$currentDraftPath*/ ctx[3] === /*item*/ ctx[18].id); - }, - m(target, anchor) { - insert(target, div, anchor); - append(div, t); +var _customOmitClone = customOmitClone; - if (!mounted) { - dispose = [ - listen(div, "click", click_handler), - listen(div, "contextmenu", prevent_default(/*onContext*/ ctx[7])), - listen(div, "keydown", function () { - if (is_function(/*item*/ ctx[18].id === /*editingPath*/ ctx[2] - ? /*onKeydown*/ ctx[8] - : null)) (/*item*/ ctx[18].id === /*editingPath*/ ctx[2] - ? /*onKeydown*/ ctx[8] - : null).apply(this, arguments); - }), - listen(div, "blur", function () { - if (is_function(/*item*/ ctx[18].id === /*editingPath*/ ctx[2] - ? /*onBlur*/ ctx[9] - : null)) (/*item*/ ctx[18].id === /*editingPath*/ ctx[2] - ? /*onBlur*/ ctx[9] - : null).apply(this, arguments); - }) - ]; +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG$1 = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG$1 = 4; - mounted = true; - } - }, - p(new_ctx, dirty) { - ctx = new_ctx; - if (dirty & /*item*/ 262144 && t_value !== (t_value = /*item*/ ctx[18].name + "")) set_data(t, t_value); +/** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to omit. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } + */ +var omit = _flatRest(function(object, paths) { + var result = {}; + if (object == null) { + return result; + } + var isDeep = false; + paths = _arrayMap(paths, function(path) { + path = _castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + _copyObject(object, _getAllKeysIn(object), result); + if (isDeep) { + result = _baseClone(result, CLONE_DEEP_FLAG$1 | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG$1, _customOmitClone); + } + var length = paths.length; + while (length--) { + _baseUnset(result, paths[length]); + } + return result; +}); - if (dirty & /*item*/ 262144 && div_data_draft_path_value !== (div_data_draft_path_value = /*item*/ ctx[18].id)) { - attr(div, "data-draft-path", div_data_draft_path_value); - } +var omit_1 = omit; - if (dirty & /*item, editingPath*/ 262148 && div_contenteditable_value !== (div_contenteditable_value = /*item*/ ctx[18].id === /*editingPath*/ ctx[2])) { - attr(div, "contenteditable", div_contenteditable_value); - } +/* src/view/components/AutoTextArea.svelte generated by Svelte v3.43.1 */ - if (dirty & /*$currentDraftPath, item*/ 262152) { - toggle_class(div, "selected", /*$currentDraftPath*/ ctx[3] && /*$currentDraftPath*/ ctx[3] === /*item*/ ctx[18].id); - } - }, - d(detaching) { - if (detaching) detach(div); - mounted = false; - run_all(dispose); - } - }; +function add_css$9(target) { + append_styles(target, "svelte-15olgdc", ".container.svelte-15olgdc{position:relative}pre.svelte-15olgdc,textarea.svelte-15olgdc{font-family:inherit;padding:0.5rem;box-sizing:border-box;border:none;line-height:1.2;overflow:hidden}textarea.svelte-15olgdc{position:absolute;width:100%;height:100%;top:0;resize:none}"); } -function create_fragment$5(ctx) { +function create_fragment$b(ctx) { let div; - let sortablelist; - let updating_items; - let current; - - function sortablelist_items_binding(value) { - /*sortablelist_items_binding*/ ctx[12](value); - } - - let sortablelist_props = { - sortableOptions: /*sortableOptions*/ ctx[4], - class: "sortable-draft-list", - $$slots: { - default: [ - create_default_slot$2, - ({ item }) => ({ 18: item }), - ({ item }) => item ? 262144 : 0 - ] - }, - $$scope: { ctx } - }; + let pre; + let t0_value = /*value*/ ctx[0] + "\n" + ""; + let t0; + let t1; + let textarea; + let mounted; + let dispose; + let textarea_levels = [/*props*/ ctx[3]]; + let textarea_data = {}; - if (/*items*/ ctx[0] !== void 0) { - sortablelist_props.items = /*items*/ ctx[0]; + for (let i = 0; i < textarea_levels.length; i += 1) { + textarea_data = assign(textarea_data, textarea_levels[i]); } - sortablelist = new SortableList({ props: sortablelist_props }); - binding_callbacks.push(() => bind(sortablelist, "items", sortablelist_items_binding)); - sortablelist.$on("orderChanged", /*itemOrderChanged*/ ctx[5]); - return { c() { div = element("div"); - create_component(sortablelist.$$.fragment); - attr(div, "id", "draft-list"); - attr(div, "class", "svelte-1jmafs"); - toggle_class(div, "dragging", /*isSorting*/ ctx[1]); + pre = element("pre"); + t0 = text(t0_value); + t1 = space(); + textarea = element("textarea"); + attr(pre, "aria-hidden", "true"); + set_style(pre, "min-height", /*minHeight*/ ctx[2]); + set_style(pre, "max-height", /*maxHeight*/ ctx[1]); + attr(pre, "class", "svelte-15olgdc"); + set_attributes(textarea, textarea_data); + toggle_class(textarea, "svelte-15olgdc", true); + attr(div, "class", "container svelte-15olgdc"); }, m(target, anchor) { insert(target, div, anchor); - mount_component(sortablelist, div, null); - current = true; + append(div, pre); + append(pre, t0); + append(div, t1); + append(div, textarea); + if (textarea.autofocus) textarea.focus(); + set_input_value(textarea, /*value*/ ctx[0]); + + if (!mounted) { + dispose = listen(textarea, "input", /*textarea_input_handler*/ ctx[6]); + mounted = true; + } }, p(ctx, [dirty]) { - const sortablelist_changes = {}; + if (dirty & /*value*/ 1 && t0_value !== (t0_value = /*value*/ ctx[0] + "\n" + "")) set_data(t0, t0_value); - if (dirty & /*$$scope, item, editingPath, $currentDraftPath*/ 786444) { - sortablelist_changes.$$scope = { dirty, ctx }; + if (dirty & /*minHeight*/ 4) { + set_style(pre, "min-height", /*minHeight*/ ctx[2]); } - if (!updating_items && dirty & /*items*/ 1) { - updating_items = true; - sortablelist_changes.items = /*items*/ ctx[0]; - add_flush_callback(() => updating_items = false); + if (dirty & /*maxHeight*/ 2) { + set_style(pre, "max-height", /*maxHeight*/ ctx[1]); } - sortablelist.$set(sortablelist_changes); + set_attributes(textarea, textarea_data = get_spread_update(textarea_levels, [/*props*/ ctx[3]])); - if (dirty & /*isSorting*/ 2) { - toggle_class(div, "dragging", /*isSorting*/ ctx[1]); + if (dirty & /*value*/ 1) { + set_input_value(textarea, /*value*/ ctx[0]); } + + toggle_class(textarea, "svelte-15olgdc", true); }, - i(local) { - if (current) return; - transition_in(sortablelist.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(sortablelist.$$.fragment, local); - current = false; - }, + i: noop, + o: noop, d(detaching) { if (detaching) detach(div); - destroy_component(sortablelist); + mounted = false; + dispose(); } }; } -function selectElementContents(el) { - var range = document.createRange(); - range.selectNodeContents(el); - var sel = window.getSelection(); - sel.removeAllRanges(); - sel.addRange(range); -} - -function instance$5($$self, $$props, $$invalidate) { - let $currentProject; - let $projectMetadata; - let $currentProjectPath; - let $currentDraftPath; - component_subscribe($$self, currentProject, $$value => $$invalidate(10, $currentProject = $$value)); - component_subscribe($$self, projectMetadata, $$value => $$invalidate(13, $projectMetadata = $$value)); - component_subscribe($$self, currentProjectPath, $$value => $$invalidate(14, $currentProjectPath = $$value)); - component_subscribe($$self, currentDraftPath, $$value => $$invalidate(3, $currentDraftPath = $$value)); - - let items; - - // Track sort state for styling, set sorting options - let isSorting = false; - - const sortableOptions = { - animation: 150, - ghostClass: "draft-ghost", - onStart: () => { - $$invalidate(1, isSorting = true); - }, - onEnd: () => { - $$invalidate(1, isSorting = false); - } - }; - - // Called when sorting ends an the item order has been updated. - // Reorder scenes according and set into the store. - function itemOrderChanged(event) { - // Reorder metadata accounts to this new order - const reorderedDrafts = [...$currentProject.drafts].sort((a, b) => { - const aIndex = event.detail.findIndex(d => d.id === a.folder); - const bIndex = event.detail.findIndex(d => d.id === b.folder); - return aIndex - bIndex; - }); - - set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].drafts = reorderedDrafts, $projectMetadata); - } - - function onItemClick(path) { - if (path) { - set_store_value(currentDraftPath, $currentDraftPath = path, $currentDraftPath); - } - } - - let editingPath = null; - const showRenameDraftMenu = getContext("showRenameDraftMenu"); - - function onContext(event) { - const { x, y } = event; - const element = document.elementFromPoint(x, y); - - showRenameDraftMenu(x, y, () => { - if (element && element instanceof HTMLElement) { - const draftPath = element.dataset.draftPath; - $$invalidate(2, editingPath = draftPath); - setTimeout(() => selectElementContents(element), 0); - } - }); +function instance$b($$self, $$props, $$invalidate) { + let minHeight; + let maxHeight; + let { value = "" } = $$props; + let { minRows = 1 } = $$props; + let { maxRows } = $$props; + const props = omit_1($$props, ["children", "$$slots", "$$scope"]); + + function textarea_input_handler() { + value = this.value; + $$invalidate(0, value); } - const renameFolder = getContext("renameFolder"); - const makeDraftPath = getContext("makeDraftPath"); - - function onKeydown(event) { - if (editingPath && event.target instanceof HTMLElement) { - if (event.key === "Enter") { - const oldPath = makeDraftPath(editingPath); - const newPath = makeDraftPath(event.target.innerText); - renameFolder(oldPath, newPath); - $$invalidate(2, editingPath = null); - return false; - } else if (event.key === "Escape") { - event.target.blur(); - return false; - } - } - - return true; - } + $$self.$$set = $$new_props => { + $$invalidate(7, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); + if ('value' in $$new_props) $$invalidate(0, value = $$new_props.value); + if ('minRows' in $$new_props) $$invalidate(4, minRows = $$new_props.minRows); + if ('maxRows' in $$new_props) $$invalidate(5, maxRows = $$new_props.maxRows); + }; - function onBlur(event) { - if (event.target instanceof HTMLElement) { - event.target.innerText = editingPath; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*minRows*/ 16) { + $$invalidate(2, minHeight = `${minRows * 1.2}rem`); } - $$invalidate(2, editingPath = null); - } - - const click_handler = item => onItemClick(item.id); - - function sortablelist_items_binding(value) { - items = value; - ($$invalidate(0, items), $$invalidate(10, $currentProject)); - } - - $$self.$$.update = () => { - if ($$self.$$.dirty & /*$currentProject*/ 1024) { - { - $$invalidate(0, items = $currentProject - ? $currentProject.drafts.map(d => ({ id: d.folder, name: d.name })) - : []); - } + if ($$self.$$.dirty & /*maxRows*/ 32) { + $$invalidate(1, maxHeight = maxRows ? `${1 + maxRows * 1.2}rem` : `auto`); } }; - return [ - items, - isSorting, - editingPath, - $currentDraftPath, - sortableOptions, - itemOrderChanged, - onItemClick, - onContext, - onKeydown, - onBlur, - $currentProject, - click_handler, - sortablelist_items_binding - ]; + $$props = exclude_internal_props($$props); + return [value, maxHeight, minHeight, props, minRows, maxRows, textarea_input_handler]; } -class DraftList extends SvelteComponent { +class AutoTextArea extends SvelteComponent { constructor(options) { super(); - if (!document_1$1.getElementById("svelte-1jmafs-style")) add_css$4(); - init(this, options, instance$5, create_fragment$5, safe_not_equal, {}); + init(this, options, instance$b, create_fragment$b, safe_not_equal, { value: 0, minRows: 4, maxRows: 5 }, add_css$9); } } -/* src/view/explorer/NewDraftField.svelte generated by Svelte v3.38.2 */ +/* src/view/compile/CompileView.svelte generated by Svelte v3.43.1 */ -function add_css$3() { - var style = element("style"); - style.id = "svelte-1wkli4h-style"; - style.textContent = ".new-draft-container.svelte-1wkli4h{margin:0;border-top:1px solid var(--text-muted);padding:4px 0}#new-draft.svelte-1wkli4h{padding:0;border:0;background:inherit;font-size:14px;line-height:20px;width:100%}#new-draft.invalid.svelte-1wkli4h{color:var(--text-error)}#new-draft.svelte-1wkli4h::placeholder{font-style:italic}.draft-description.svelte-1wkli4h{font-size:10px;line-height:12px;color:var(--text-muted)}"; - append(document.head, style); +function add_css$8(target) { + append_styles(target, "svelte-1ylbuwy", ".longform-workflow-picker-container.svelte-1ylbuwy.svelte-1ylbuwy{margin-bottom:2rem;padding:0.5rem 0;border-bottom:1px solid var(--background-modifier-border);display:flex;flex-direction:column}.longform-workflow-picker.svelte-1ylbuwy.svelte-1ylbuwy{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:0.5rem}.longform-workflow-picker.svelte-1ylbuwy .longform-hint.svelte-1ylbuwy{font-size:1rem}select.svelte-1ylbuwy.svelte-1ylbuwy{background-color:transparent;border:none;padding:5px 0;margin:0;font-family:inherit;font-size:inherit;cursor:inherit;line-height:inherit;outline:none}.select.svelte-1ylbuwy.svelte-1ylbuwy{cursor:pointer}.select.svelte-1ylbuwy>select.svelte-1ylbuwy{color:var(--text-accent)}.select.svelte-1ylbuwy>select.svelte-1ylbuwy:hover{text-decoration:underline;color:var(--text-accent-hover)}.longform-compile-container.svelte-1ylbuwy .longform-sortable-step-list{list-style-type:none;padding:0px;margin:0px}.options-button.svelte-1ylbuwy.svelte-1ylbuwy{background-color:var(--background-secondary-alt);color:var(--text-accent)}.options-button.svelte-1ylbuwy.svelte-1ylbuwy:hover{background-color:var(--background-primary);color:var(--text-accent-hover)}.add-step-container.svelte-1ylbuwy.svelte-1ylbuwy{display:flex;flex-direction:row;align-items:center;justify-content:center}.add-step-container.svelte-1ylbuwy button.svelte-1ylbuwy{font-weight:bold;color:var(--text-accent)}.add-step-container.svelte-1ylbuwy button.svelte-1ylbuwy:hover{text-decoration:underline;color:var(--text-accent-hover)}.compile-button.svelte-1ylbuwy.svelte-1ylbuwy{font-weight:bold;background-color:var(--interactive-accent);color:var(--text-on-accent)}.compile-button.svelte-1ylbuwy.svelte-1ylbuwy:hover{background-color:var(--interactive-accent-hover);color:var(--text-on-accent)}.compile-button.svelte-1ylbuwy.svelte-1ylbuwy:disabled{background-color:var(--text-muted);color:var(--text-faint)}.longform-compile-run-container.svelte-1ylbuwy.svelte-1ylbuwy{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:2rem}.longform-compile-run-container.svelte-1ylbuwy .compile-status.svelte-1ylbuwy{color:var(--text-muted)}.compile-status-error{color:var(--text-error) !important}.compile-status-success{color:var(--interactive-success) !important}.step-ghost{background-color:var(--interactive-accent-hover);color:var(--text-on-accent)}"); } -function get_each_context$1(ctx, list, i) { +function get_each_context$2(ctx, list, i) { const child_ctx = ctx.slice(); - child_ctx[16] = list[i]; + child_ctx[49] = list[i]; return child_ctx; } -// (77:2) {#if error} -function create_if_block_3$1(ctx) { - let p; - let t; - - return { - c() { - p = element("p"); - t = text(/*error*/ ctx[4]); - }, - m(target, anchor) { - insert(target, p, anchor); - append(p, t); - }, - p(ctx, dirty) { - if (dirty & /*error*/ 16) set_data(t, /*error*/ ctx[4]); - }, - d(detaching) { - if (detaching) detach(p); - } - }; -} - -// (80:2) {#if newDraftName.length > 0} -function create_if_block$3(ctx) { - let select; - let option; +// (254:0) {#if $currentProject && $currentDraft} +function create_if_block$5(ctx) { + let div3; + let div1; + let div0; + let t0; let t1; + let t2; let p; - let mounted; - let dispose; - let each_value = /*$currentProject*/ ctx[1].drafts; - let each_blocks = []; - - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block$1(get_each_context$1(ctx, each_value, i)); - } + let t12; + let div2; + let current; function select_block_type(ctx, dirty) { - if (/*newDraftName*/ ctx[0] && /*copyFromDraft*/ ctx[3]) return create_if_block_1$2; - if (/*newDraftName*/ ctx[0]) return create_if_block_2$1; + if (/*workflowInputState*/ ctx[7] !== "hidden") return create_if_block_5; + return create_else_block$1; } let current_block_type = select_block_type(ctx); - let if_block = current_block_type && current_block_type(ctx); + let if_block0 = current_block_type(ctx); + let if_block1 = /*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]] && create_if_block_4(ctx); + let if_block2 = /*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]] && create_if_block_2$2(ctx); + let if_block3 = /*$currentWorkflow*/ ctx[2] && /*$currentWorkflow*/ ctx[2].steps.length > 0 && create_if_block_1$3(ctx); return { c() { - select = element("select"); - option = element("option"); - option.textContent = "Empty Draft"; - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - + div3 = element("div"); + div1 = element("div"); + div0 = element("div"); + if_block0.c(); + t0 = space(); + if (if_block1) if_block1.c(); t1 = space(); + if (if_block2) if_block2.c(); + t2 = space(); p = element("p"); - if (if_block) if_block.c(); - option.__value = null; - option.value = option.__value; - attr(select, "name", "copyFrom"); - if (/*copyFromDraft*/ ctx[3] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[9].call(select)); - attr(p, "class", "draft-description svelte-1wkli4h"); - }, - m(target, anchor) { - insert(target, select, anchor); - append(select, option); - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(select, null); - } - select_option(select, /*copyFromDraft*/ ctx[3]); - insert(target, t1, anchor); - insert(target, p, anchor); - if (if_block) if_block.m(p, null); + p.innerHTML = `Compile workflows run their steps in order.
Scene workflows + run once per scene.
Join workflows run once and combine the + rest of your scene steps into a single manuscript.
Manuscript + steps run once on the joined manuscript.
Drag to rearrange. + Documentation here.`; - if (!mounted) { - dispose = listen(select, "change", /*select_change_handler*/ ctx[9]); - mounted = true; - } + t12 = space(); + div2 = element("div"); + if (if_block3) if_block3.c(); + attr(div0, "class", "longform-workflow-picker svelte-1ylbuwy"); + attr(div1, "class", "longform-workflow-picker-container svelte-1ylbuwy"); + attr(div2, "class", "longform-compile-run-container svelte-1ylbuwy"); + attr(div3, "class", "longform-compile-container svelte-1ylbuwy"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append(div3, div1); + append(div1, div0); + if_block0.m(div0, null); + append(div1, t0); + if (if_block1) if_block1.m(div1, null); + append(div3, t1); + if (if_block2) if_block2.m(div3, null); + append(div3, t2); + append(div3, p); + append(div3, t12); + append(div3, div2); + if (if_block3) if_block3.m(div2, null); + current = true; }, p(ctx, dirty) { - if (dirty & /*$currentProject*/ 2) { - each_value = /*$currentProject*/ ctx[1].drafts; - let i; - - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context$1(ctx, each_value, i); + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0.d(1); + if_block0 = current_block_type(ctx); - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - } else { - each_blocks[i] = create_each_block$1(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(select, null); - } + if (if_block0) { + if_block0.c(); + if_block0.m(div0, null); } + } - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); + if (/*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]]) { + if (if_block1) { + if_block1.p(ctx, dirty); + + if (dirty[0] & /*$workflows, currentWorkflowName*/ 18) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_4(ctx); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div1, null); } + } else if (if_block1) { + group_outros(); - each_blocks.length = each_value.length; - } + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); - if (dirty & /*copyFromDraft, $currentProject*/ 10) { - select_option(select, /*copyFromDraft*/ ctx[3]); + check_outros(); } - if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { - if_block.p(ctx, dirty); - } else { - if (if_block) if_block.d(1); - if_block = current_block_type && current_block_type(ctx); + if (/*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]]) { + if (if_block2) { + if_block2.p(ctx, dirty); - if (if_block) { - if_block.c(); - if_block.m(p, null); + if (dirty[0] & /*$workflows, currentWorkflowName*/ 18) { + transition_in(if_block2, 1); + } + } else { + if_block2 = create_if_block_2$2(ctx); + if_block2.c(); + transition_in(if_block2, 1); + if_block2.m(div3, t2); } - } - }, - d(detaching) { - if (detaching) detach(select); - destroy_each(each_blocks, detaching); - if (detaching) detach(t1); - if (detaching) detach(p); - - if (if_block) { - if_block.d(); - } + } else if (if_block2) { + group_outros(); - mounted = false; - dispose(); - } - }; -} + transition_out(if_block2, 1, 1, () => { + if_block2 = null; + }); -// (83:6) {#each $currentProject.drafts as draftOption} -function create_each_block$1(ctx) { - let option; - let t_value = `Copy of ${/*draftOption*/ ctx[16].name}` + ""; - let t; - let option_value_value; + check_outros(); + } - return { - c() { - option = element("option"); - t = text(t_value); - option.__value = option_value_value = /*draftOption*/ ctx[16].folder; - option.value = option.__value; + if (/*$currentWorkflow*/ ctx[2] && /*$currentWorkflow*/ ctx[2].steps.length > 0) { + if (if_block3) { + if_block3.p(ctx, dirty); + } else { + if_block3 = create_if_block_1$3(ctx); + if_block3.c(); + if_block3.m(div2, null); + } + } else if (if_block3) { + if_block3.d(1); + if_block3 = null; + } }, - m(target, anchor) { - insert(target, option, anchor); - append(option, t); + i(local) { + if (current) return; + transition_in(if_block1); + transition_in(if_block2); + current = true; }, - p(ctx, dirty) { - if (dirty & /*$currentProject*/ 2 && t_value !== (t_value = `Copy of ${/*draftOption*/ ctx[16].name}` + "")) set_data(t, t_value); - - if (dirty & /*$currentProject*/ 2 && option_value_value !== (option_value_value = /*draftOption*/ ctx[16].folder)) { - option.__value = option_value_value; - option.value = option.__value; - } + o(local) { + transition_out(if_block1); + transition_out(if_block2); + current = false; }, d(detaching) { - if (detaching) detach(option); + if (detaching) detach(div3); + if_block0.d(); + if (if_block1) if_block1.d(); + if (if_block2) if_block2.d(); + if (if_block3) if_block3.d(); } }; } -// (92:29) -function create_if_block_2$1(ctx) { +// (277:8) {:else} +function create_else_block$1(ctx) { let t0; - let t1; + let button; + let mounted; + let dispose; - return { - c() { - t0 = text(/*newDraftName*/ ctx[0]); - t1 = text(" will start as an empty folder."); - }, - m(target, anchor) { - insert(target, t0, anchor); - insert(target, t1, anchor); - }, - p(ctx, dirty) { - if (dirty & /*newDraftName*/ 1) set_data(t0, /*newDraftName*/ ctx[0]); - }, - d(detaching) { - if (detaching) detach(t0); - if (detaching) detach(t1); - } - }; -} + function select_block_type_1(ctx, dirty) { + if (/*allWorkflowNames*/ ctx[0].length == 0) return create_if_block_6; + return create_else_block_1; + } -// (90:6) {#if newDraftName && copyFromDraft} -function create_if_block_1$2(ctx) { - let t0; - let t1; - let t2; - let t3; + let current_block_type = select_block_type_1(ctx); + let if_block = current_block_type(ctx); return { c() { - t0 = text(/*newDraftName*/ ctx[0]); - t1 = text(" will start as a copy of "); - t2 = text(/*copyFromDraft*/ ctx[3]); - t3 = text("."); + if_block.c(); + t0 = space(); + button = element("button"); + button.textContent = "▼"; + attr(button, "class", "options-button svelte-1ylbuwy"); + attr(button, "title", "Workflow Actions"); }, m(target, anchor) { + if_block.m(target, anchor); insert(target, t0, anchor); - insert(target, t1, anchor); - insert(target, t2, anchor); - insert(target, t3, anchor); + insert(target, button, anchor); + /*button_binding*/ ctx[32](button); + + if (!mounted) { + dispose = listen(button, "click", /*click_handler*/ ctx[33]); + mounted = true; + } }, p(ctx, dirty) { - if (dirty & /*newDraftName*/ 1) set_data(t0, /*newDraftName*/ ctx[0]); - if (dirty & /*copyFromDraft*/ 8) set_data(t2, /*copyFromDraft*/ ctx[3]); + if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) { + if_block.p(ctx, dirty); + } else { + if_block.d(1); + if_block = current_block_type(ctx); + + if (if_block) { + if_block.c(); + if_block.m(t0.parentNode, t0); + } + } }, d(detaching) { + if_block.d(detaching); if (detaching) detach(t0); - if (detaching) detach(t1); - if (detaching) detach(t2); - if (detaching) detach(t3); + if (detaching) detach(button); + /*button_binding*/ ctx[32](null); + mounted = false; + dispose(); } }; } -function create_fragment$4(ctx) { - let div; +// (258:8) {#if workflowInputState !== "hidden"} +function create_if_block_5(ctx) { let input; - let t0; - let t1; + let input_placeholder_value; let mounted; let dispose; - let if_block0 = /*error*/ ctx[4] && create_if_block_3$1(ctx); - let if_block1 = /*newDraftName*/ ctx[0].length > 0 && create_if_block$3(ctx); return { c() { - div = element("div"); input = element("input"); - t0 = space(); - if (if_block0) if_block0.c(); - t1 = space(); - if (if_block1) if_block1.c(); - attr(input, "id", "new-draft"); attr(input, "type", "text"); - attr(input, "placeholder", "New Draft…"); - attr(input, "class", "svelte-1wkli4h"); - toggle_class(input, "invalid", !!/*error*/ ctx[4]); - attr(div, "class", "new-draft-container svelte-1wkli4h"); + + attr(input, "placeholder", input_placeholder_value = /*workflowInputState*/ ctx[7] == "new" + ? "New Workflow…" + : "My Cool Workflow"); }, m(target, anchor) { - insert(target, div, anchor); - append(div, input); - set_input_value(input, /*newDraftName*/ ctx[0]); - /*input_binding*/ ctx[7](input); - append(div, t0); - if (if_block0) if_block0.m(div, null); - append(div, t1); - if (if_block1) if_block1.m(div, null); + insert(target, input, anchor); + set_input_value(input, /*workflowInputValue*/ ctx[8]); + /*input_binding*/ ctx[29](input); if (!mounted) { dispose = [ - listen(input, "input", /*input_input_handler*/ ctx[6]), - listen(input, "keydown", /*keydown_handler*/ ctx[8]) + listen(input, "input", /*input_input_handler*/ ctx[28]), + listen(input, "keydown", /*keydown_handler*/ ctx[30]), + action_destroyer(focusOnInit.call(null, input)) ]; mounted = true; } }, - p(ctx, [dirty]) { - if (dirty & /*newDraftName*/ 1 && input.value !== /*newDraftName*/ ctx[0]) { - set_input_value(input, /*newDraftName*/ ctx[0]); - } - - if (dirty & /*error*/ 16) { - toggle_class(input, "invalid", !!/*error*/ ctx[4]); - } - - if (/*error*/ ctx[4]) { - if (if_block0) { - if_block0.p(ctx, dirty); - } else { - if_block0 = create_if_block_3$1(ctx); - if_block0.c(); - if_block0.m(div, t1); - } - } else if (if_block0) { - if_block0.d(1); - if_block0 = null; + p(ctx, dirty) { + if (dirty[0] & /*workflowInputState*/ 128 && input_placeholder_value !== (input_placeholder_value = /*workflowInputState*/ ctx[7] == "new" + ? "New Workflow…" + : "My Cool Workflow")) { + attr(input, "placeholder", input_placeholder_value); } - if (/*newDraftName*/ ctx[0].length > 0) { - if (if_block1) { - if_block1.p(ctx, dirty); - } else { - if_block1 = create_if_block$3(ctx); - if_block1.c(); - if_block1.m(div, null); - } - } else if (if_block1) { - if_block1.d(1); - if_block1 = null; + if (dirty[0] & /*workflowInputValue*/ 256 && input.value !== /*workflowInputValue*/ ctx[8]) { + set_input_value(input, /*workflowInputValue*/ ctx[8]); } }, - i: noop, - o: noop, d(detaching) { - if (detaching) detach(div); - /*input_binding*/ ctx[7](null); - if (if_block0) if_block0.d(); - if (if_block1) if_block1.d(); + if (detaching) detach(input); + /*input_binding*/ ctx[29](null); mounted = false; run_all(dispose); } }; } -function instance$4($$self, $$props, $$invalidate) { - let $currentProject; - let $currentDraftPath; - let $projectMetadata; - let $currentProjectPath; - component_subscribe($$self, currentProject, $$value => $$invalidate(1, $currentProject = $$value)); - component_subscribe($$self, currentDraftPath, $$value => $$invalidate(10, $currentDraftPath = $$value)); - component_subscribe($$self, projectMetadata, $$value => $$invalidate(11, $projectMetadata = $$value)); - component_subscribe($$self, currentProjectPath, $$value => $$invalidate(12, $currentProjectPath = $$value)); - const makeDraftPath = getContext("makeDraftPath"); - const makeScenePath = getContext("makeScenePath"); - let newDraftName = ""; - let newDraftInput; - let copyFromDraft = null; - let error = null; - const onNewDraft = getContext("onNewDraft"); +// (280:10) {:else} +function create_else_block_1(ctx) { + let div; + let select; + let mounted; + let dispose; + let each_value = /*allWorkflowNames*/ ctx[0]; + let each_blocks = []; - function onNewDraftEnter() { - return __awaiter(this, void 0, void 0, function* () { - if (newDraftName.length > 0 && !error) { - const draftPath = makeDraftPath(newDraftName); + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$2(get_each_context$2(ctx, each_value, i)); + } - if (draftPath) { - let copying = []; - let newDraftSceneOrder; + return { + c() { + div = element("div"); + select = element("select"); - if (copyFromDraft) { - const sourceDraft = $currentProject.drafts.find(d => d.folder === copyFromDraft); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } - if (sourceDraft) { - newDraftSceneOrder = sourceDraft.scenes; + attr(select, "id", "longform-workflows"); + attr(select, "class", "svelte-1ylbuwy"); + if (/*$projectMetadata*/ ctx[5][/*$currentProjectPath*/ ctx[3]].workflow === void 0) add_render_callback(() => /*select_change_handler*/ ctx[31].call(select)); + attr(div, "class", "select svelte-1ylbuwy"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, select); - copying = sourceDraft.scenes.map(s => ({ - from: makeScenePath(s, sourceDraft.folder), - to: makeScenePath(s, newDraftName) - })); - } - } + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(select, null); + } - yield onNewDraft(draftPath, copying); - set_store_value(currentDraftPath, $currentDraftPath = newDraftName, $currentDraftPath); + select_option(select, /*$projectMetadata*/ ctx[5][/*$currentProjectPath*/ ctx[3]].workflow); - if (copyFromDraft && newDraftSceneOrder) { - const newDraftIndex = $projectMetadata[$currentProjectPath].drafts.findIndex(d => d.folder === newDraftName); + if (!mounted) { + dispose = listen(select, "change", /*select_change_handler*/ ctx[31]); + mounted = true; + } + }, + p(ctx, dirty) { + if (dirty[0] & /*allWorkflowNames*/ 1) { + each_value = /*allWorkflowNames*/ ctx[0]; + let i; - if (newDraftIndex >= 0) { - const newDraft = $projectMetadata[$currentProjectPath].drafts[newDraftIndex]; - newDraft.scenes = newDraftSceneOrder; - set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].drafts[newDraftIndex] = newDraft, $projectMetadata); - } + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$2(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block$2(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(select, null); } + } - $$invalidate(0, newDraftName = ""); + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); } + + each_blocks.length = each_value.length; } - }); - } - function input_input_handler() { - newDraftName = this.value; - $$invalidate(0, newDraftName); - } + if (dirty[0] & /*$projectMetadata, $currentProjectPath, allWorkflowNames*/ 41) { + select_option(select, /*$projectMetadata*/ ctx[5][/*$currentProjectPath*/ ctx[3]].workflow); + } + }, + d(detaching) { + if (detaching) detach(div); + destroy_each(each_blocks, detaching); + mounted = false; + dispose(); + } + }; +} - function input_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - newDraftInput = $$value; - $$invalidate(2, newDraftInput); - }); - } +// (278:10) {#if allWorkflowNames.length == 0} +function create_if_block_6(ctx) { + let span; - const keydown_handler = e => { - if (e.key === "Enter") { - onNewDraftEnter(); - } else if (e.key === "Escape") { - $$invalidate(0, newDraftName = ""); - newDraftInput.blur(); + return { + c() { + span = element("span"); + span.textContent = "Create a new workflow to begin →"; + attr(span, "class", "longform-hint svelte-1ylbuwy"); + }, + m(target, anchor) { + insert(target, span, anchor); + }, + p: noop, + d(detaching) { + if (detaching) detach(span); } }; +} - function select_change_handler() { - copyFromDraft = select_value(this); - $$invalidate(3, copyFromDraft); - } +// (286:16) {#each allWorkflowNames as workflowOption} +function create_each_block$2(ctx) { + let option; + let t_value = /*workflowOption*/ ctx[49] + ""; + let t; + let option_value_value; - $$self.$$.update = () => { - if ($$self.$$.dirty & /*newDraftName, $currentProject*/ 3) { - { - if (newDraftName.length === 0) { - $$invalidate(4, error = null); - } else if ($currentProject.drafts.find(d => d.folder === newDraftName)) { - $$invalidate(4, error = "A draft with this name already exists."); - } else if (newDraftName.match(/[\/\\:]/g)) { - $$invalidate(4, error = "A draft name cannot contain the characters: \\ / :"); - } else { - $$invalidate(4, error = null); - } + return { + c() { + option = element("option"); + t = text(t_value); + option.__value = option_value_value = /*workflowOption*/ ctx[49]; + option.value = option.__value; + }, + m(target, anchor) { + insert(target, option, anchor); + append(option, t); + }, + p(ctx, dirty) { + if (dirty[0] & /*allWorkflowNames*/ 1 && t_value !== (t_value = /*workflowOption*/ ctx[49] + "")) set_data(t, t_value); + + if (dirty[0] & /*allWorkflowNames*/ 1 && option_value_value !== (option_value_value = /*workflowOption*/ ctx[49])) { + option.__value = option_value_value; + option.value = option.__value; } + }, + d(detaching) { + if (detaching) detach(option); } }; - - return [ - newDraftName, - $currentProject, - newDraftInput, - copyFromDraft, - error, - onNewDraftEnter, - input_input_handler, - input_binding, - keydown_handler, - select_change_handler - ]; } -class NewDraftField extends SvelteComponent { - constructor(options) { - super(); - if (!document.getElementById("svelte-1wkli4h-style")) add_css$3(); - init(this, options, instance$4, create_fragment$4, safe_not_equal, {}); +// (308:6) {#if $workflows[currentWorkflowName]} +function create_if_block_4(ctx) { + let autotextarea; + let updating_value; + let current; + + function autotextarea_value_binding(value) { + /*autotextarea_value_binding*/ ctx[34](value); } -} -/* src/view/explorer/NewSceneField.svelte generated by Svelte v3.38.2 */ + let autotextarea_props = { + placeholder: "Click here to leave a description of your workflow…", + minRows: 2, + maxRows: 5 + }; -function add_css$2() { - var style = element("style"); - style.id = "svelte-1lq63fp-style"; - style.textContent = ".new-scene-container.svelte-1lq63fp{margin:0;border-top:1px solid var(--text-muted);padding:4px 0}#new-scene.svelte-1lq63fp{padding:0;border:0;background:inherit;font-size:14px;line-height:20px;width:100%}#new-scene.invalid.svelte-1lq63fp{color:var(--text-error)}#new-scene.svelte-1lq63fp::placeholder{font-style:italic}"; - append(document.head, style); -} + if (/*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]].description !== void 0) { + autotextarea_props.value = /*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]].description; + } -// (50:2) {#if error} -function create_if_block$2(ctx) { - let p; - let t; + autotextarea = new AutoTextArea({ props: autotextarea_props }); + binding_callbacks.push(() => bind(autotextarea, 'value', autotextarea_value_binding)); return { c() { - p = element("p"); - t = text(/*error*/ ctx[2]); + create_component(autotextarea.$$.fragment); }, m(target, anchor) { - insert(target, p, anchor); - append(p, t); + mount_component(autotextarea, target, anchor); + current = true; }, p(ctx, dirty) { - if (dirty & /*error*/ 4) set_data(t, /*error*/ ctx[2]); + const autotextarea_changes = {}; + + if (!updating_value && dirty[0] & /*$workflows, currentWorkflowName*/ 18) { + updating_value = true; + autotextarea_changes.value = /*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]].description; + add_flush_callback(() => updating_value = false); + } + + autotextarea.$set(autotextarea_changes); + }, + i(local) { + if (current) return; + transition_in(autotextarea.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(autotextarea.$$.fragment, local); + current = false; }, d(detaching) { - if (detaching) detach(p); + destroy_component(autotextarea, detaching); } }; } -function create_fragment$3(ctx) { - let div; - let input; +// (317:4) {#if $workflows[currentWorkflowName]} +function create_if_block_2$2(ctx) { + let sortablelist; + let updating_items; let t; - let mounted; - let dispose; - let if_block = /*error*/ ctx[2] && create_if_block$2(ctx); + let div; + let show_if = Object.keys(/*$workflows*/ ctx[4]).length > 0; + let current; + + function sortablelist_items_binding(value) { + /*sortablelist_items_binding*/ ctx[37](value); + } + + let sortablelist_props = { + sortableOptions: /*sortableOptions*/ ctx[23], + class: "longform-sortable-step-list", + $$slots: { + default: [ + create_default_slot$3, + ({ item }) => ({ 48: item }), + ({ item }) => [0, item ? 131072 : 0] + ] + }, + $$scope: { ctx } + }; + + if (/*items*/ ctx[14] !== void 0) { + sortablelist_props.items = /*items*/ ctx[14]; + } + + sortablelist = new SortableList({ props: sortablelist_props }); + binding_callbacks.push(() => bind(sortablelist, 'items', sortablelist_items_binding)); + sortablelist.$on("orderChanged", /*itemOrderChanged*/ ctx[24]); + let if_block = show_if && create_if_block_3$2(ctx); return { c() { - div = element("div"); - input = element("input"); + create_component(sortablelist.$$.fragment); t = space(); + div = element("div"); if (if_block) if_block.c(); - attr(input, "id", "new-scene"); - attr(input, "type", "text"); - attr(input, "placeholder", "New Scene…"); - attr(input, "class", "svelte-1lq63fp"); - toggle_class(input, "invalid", !!/*error*/ ctx[2]); - attr(div, "class", "new-scene-container svelte-1lq63fp"); + attr(div, "class", "add-step-container svelte-1ylbuwy"); }, m(target, anchor) { + mount_component(sortablelist, target, anchor); + insert(target, t, anchor); insert(target, div, anchor); - append(div, input); - set_input_value(input, /*newSceneName*/ ctx[0]); - /*input_binding*/ ctx[6](input); - append(div, t); if (if_block) if_block.m(div, null); - - if (!mounted) { - dispose = [ - listen(input, "input", /*input_input_handler*/ ctx[5]), - listen(input, "keydown", /*keydown_handler*/ ctx[7]) - ]; - - mounted = true; - } + current = true; }, - p(ctx, [dirty]) { - if (dirty & /*newSceneName*/ 1 && input.value !== /*newSceneName*/ ctx[0]) { - set_input_value(input, /*newSceneName*/ ctx[0]); + p(ctx, dirty) { + const sortablelist_changes = {}; + + if (dirty[0] & /*$workflows, currentWorkflowName, $currentWorkflow*/ 22 | dirty[1] & /*$$scope, item*/ 2228224) { + sortablelist_changes.$$scope = { dirty, ctx }; } - if (dirty & /*error*/ 4) { - toggle_class(input, "invalid", !!/*error*/ ctx[2]); + if (!updating_items && dirty[0] & /*items*/ 16384) { + updating_items = true; + sortablelist_changes.items = /*items*/ ctx[14]; + add_flush_callback(() => updating_items = false); } - if (/*error*/ ctx[2]) { + sortablelist.$set(sortablelist_changes); + if (dirty[0] & /*$workflows*/ 16) show_if = Object.keys(/*$workflows*/ ctx[4]).length > 0; + + if (show_if) { if (if_block) { if_block.p(ctx, dirty); } else { - if_block = create_if_block$2(ctx); + if_block = create_if_block_3$2(ctx); if_block.c(); if_block.m(div, null); } @@ -5327,4974 +9829,6581 @@ function create_fragment$3(ctx) { if_block = null; } }, - i: noop, - o: noop, + i(local) { + if (current) return; + transition_in(sortablelist.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(sortablelist.$$.fragment, local); + current = false; + }, d(detaching) { + destroy_component(sortablelist, detaching); + if (detaching) detach(t); if (detaching) detach(div); - /*input_binding*/ ctx[6](null); if (if_block) if_block.d(); - mounted = false; - run_all(dispose); } }; } -function instance$3($$self, $$props, $$invalidate) { - let $currentDraft; - component_subscribe($$self, currentDraft, $$value => $$invalidate(4, $currentDraft = $$value)); - let newSceneName = ""; - let newSceneInput; - let error = null; - const makeScenePath = getContext("makeScenePath"); - const onNewScene = getContext("onNewScene"); - - function onNewSceneEnter() { - if (newSceneName.length > 0 && !error) { - const scenePath = makeScenePath(newSceneName); - - if (scenePath) { - onNewScene(scenePath); - $$invalidate(0, newSceneName = ""); - } - } - } +// (318:6) +function create_default_slot$3(ctx) { + let compilestepview; + let updating_step; + let current; - function input_input_handler() { - newSceneName = this.value; - $$invalidate(0, newSceneName); + function compilestepview_step_binding(value) { + /*compilestepview_step_binding*/ ctx[35](value, /*item*/ ctx[48]); } - function input_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - newSceneInput = $$value; - $$invalidate(1, newSceneInput); - }); + function removeStep_handler() { + return /*removeStep_handler*/ ctx[36](/*item*/ ctx[48]); } - const keydown_handler = e => { - if (e.key === "Enter") { - onNewSceneEnter(); - } else if (e.key === "Escape") { - $$invalidate(0, newSceneName = ""); - newSceneInput.blur(); - } - }; - - $$self.$$.update = () => { - if ($$self.$$.dirty & /*newSceneName, $currentDraft*/ 17) { - { - if (newSceneName.length === 0) { - $$invalidate(2, error = null); - } else if ($currentDraft.scenes.contains(newSceneName)) { - $$invalidate(2, error = "A scene with this name already exists in this draft."); - } else if (newSceneName.match(/[\/\\:]/g)) { - $$invalidate(2, error = "A scene name cannot contain the characters: \\ / :"); - } else { - $$invalidate(2, error = null); - } - } - } + let compilestepview_props = { + ordinal: /*item*/ ctx[48].index + 1, + calculatedKind: /*kindAtIndex*/ ctx[21](/*item*/ ctx[48].index), + error: /*errorAtIndex*/ ctx[22](/*item*/ ctx[48].index) }; - return [ - newSceneName, - newSceneInput, - error, - onNewSceneEnter, - $currentDraft, - input_input_handler, - input_binding, - keydown_handler - ]; -} - -class NewSceneField extends SvelteComponent { - constructor(options) { - super(); - if (!document.getElementById("svelte-1lq63fp-style")) add_css$2(); - init(this, options, instance$3, create_fragment$3, safe_not_equal, {}); + if (/*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]].steps[/*item*/ ctx[48].index] !== void 0) { + compilestepview_props.step = /*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]].steps[/*item*/ ctx[48].index]; } -} - -/* src/view/explorer/ProjectPicker.svelte generated by Svelte v3.38.2 */ - -function add_css$1() { - var style = element("style"); - style.id = "svelte-23avsr-style"; - style.textContent = "#project-picker-container.svelte-23avsr.svelte-23avsr{margin-bottom:8px}select.svelte-23avsr.svelte-23avsr{background-color:transparent;border:none;padding:0;margin:0;width:100%;font-family:inherit;font-size:inherit;cursor:inherit;line-height:inherit;outline:none}.select.svelte-23avsr.svelte-23avsr{cursor:pointer}.select.svelte-23avsr>select.svelte-23avsr{color:var(--text-accent)}.select.svelte-23avsr>select.svelte-23avsr:hover{text-decoration:underline;color:var(--text-accent-hover)}#project-picker.svelte-23avsr.svelte-23avsr{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}.right-arrow.svelte-23avsr.svelte-23avsr{display:grid}.right-arrow.svelte-23avsr.svelte-23avsr::after{content:\"\";width:0.8em;height:0.5em;background-color:var(--text-muted);clip-path:polygon(50% 0%, 50% 100%, 100% 50%)}.current-draft-path.svelte-23avsr.svelte-23avsr{color:var(--text-muted);font-size:10px;padding:0 8px;line-height:12px}.project-error.svelte-23avsr.svelte-23avsr{color:var(--text-error);font-size:12px;line-height:14px}"; - append(document.head, style); -} - -function get_each_context(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[8] = list[i]; - return child_ctx; -} - -function get_each_context_1(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[11] = list[i]; - return child_ctx; -} -// (54:2) {:else} -function create_else_block(ctx) { - let p; + compilestepview = new CompileStepView({ props: compilestepview_props }); + binding_callbacks.push(() => bind(compilestepview, 'step', compilestepview_step_binding)); + compilestepview.$on("removeStep", removeStep_handler); return { c() { - p = element("p"); - p.textContent = "To use Longform, start by marking a folder as a Longform project by\n right-clicking it and selecting \"Mark as Longform project.\""; + create_component(compilestepview.$$.fragment); }, m(target, anchor) { - insert(target, p, anchor); + mount_component(compilestepview, target, anchor); + current = true; + }, + p(new_ctx, dirty) { + ctx = new_ctx; + const compilestepview_changes = {}; + if (dirty[1] & /*item*/ 131072) compilestepview_changes.ordinal = /*item*/ ctx[48].index + 1; + if (dirty[1] & /*item*/ 131072) compilestepview_changes.calculatedKind = /*kindAtIndex*/ ctx[21](/*item*/ ctx[48].index); + if (dirty[1] & /*item*/ 131072) compilestepview_changes.error = /*errorAtIndex*/ ctx[22](/*item*/ ctx[48].index); + + if (!updating_step && dirty[0] & /*$workflows, currentWorkflowName*/ 18 | dirty[1] & /*item*/ 131072) { + updating_step = true; + compilestepview_changes.step = /*$workflows*/ ctx[4][/*currentWorkflowName*/ ctx[1]].steps[/*item*/ ctx[48].index]; + add_flush_callback(() => updating_step = false); + } + + compilestepview.$set(compilestepview_changes); + }, + i(local) { + if (current) return; + transition_in(compilestepview.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(compilestepview.$$.fragment, local); + current = false; }, - p: noop, d(detaching) { - if (detaching) detach(p); + destroy_component(compilestepview, detaching); } }; } -// (27:2) {#if projectOptions.length > 0} -function create_if_block_1$1(ctx) { - let div1; - let div0; - let select; - let t0; - let t1; - let if_block1_anchor; +// (342:8) {#if Object.keys($workflows).length > 0} +function create_if_block_3$2(ctx) { + let button; let mounted; let dispose; - let each_value_1 = /*projectOptions*/ ctx[2]; - let each_blocks = []; - - for (let i = 0; i < each_value_1.length; i += 1) { - each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); - } - - let if_block0 = /*$currentDraftPath*/ ctx[1] && /*$currentProject*/ ctx[0] && /*$currentProject*/ ctx[0].drafts && create_if_block_3(ctx); - let if_block1 = /*$currentDraftPath*/ ctx[1] && create_if_block_2(ctx); return { c() { - div1 = element("div"); - div0 = element("div"); - select = element("select"); - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - - t0 = space(); - if (if_block0) if_block0.c(); - t1 = space(); - if (if_block1) if_block1.c(); - if_block1_anchor = empty(); - attr(select, "name", "projects"); - attr(select, "class", "svelte-23avsr"); - if (/*$currentProjectPath*/ ctx[3] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[6].call(select)); - attr(div0, "class", "select svelte-23avsr"); - attr(div0, "id", "select-projects"); - attr(div1, "id", "project-picker"); - attr(div1, "class", "svelte-23avsr"); + button = element("button"); + button.textContent = "+ Add Step"; + attr(button, "class", "svelte-1ylbuwy"); }, m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - append(div0, select); - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(select, null); - } - - select_option(select, /*$currentProjectPath*/ ctx[3]); - append(div1, t0); - if (if_block0) if_block0.m(div1, null); - insert(target, t1, anchor); - if (if_block1) if_block1.m(target, anchor); - insert(target, if_block1_anchor, anchor); + insert(target, button, anchor); if (!mounted) { - dispose = listen(select, "change", /*select_change_handler*/ ctx[6]); + dispose = listen(button, "click", /*addStep*/ ctx[20]); mounted = true; } }, - p(ctx, dirty) { - if (dirty & /*projectOptions*/ 4) { - each_value_1 = /*projectOptions*/ ctx[2]; - let i; - - for (i = 0; i < each_value_1.length; i += 1) { - const child_ctx = get_each_context_1(ctx, each_value_1, i); - - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - } else { - each_blocks[i] = create_each_block_1(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(select, null); - } - } + p: noop, + d(detaching) { + if (detaching) detach(button); + mounted = false; + dispose(); + } + }; +} - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } +// (359:6) {#if $currentWorkflow && $currentWorkflow.steps.length > 0} +function create_if_block_1$3(ctx) { + let button; + let t0; + let button_disabled_value; + let button_aria_label_value; + let t1; + let span; - each_blocks.length = each_value_1.length; - } + let t2_value = (/*validation*/ ctx[13].error === /*WorkflowError*/ ctx[12].Valid + ? /*defaultCompileStatus*/ ctx[11] + : /*validation*/ ctx[13].error) + ""; - if (dirty & /*$currentProjectPath, projectOptions*/ 12) { - select_option(select, /*$currentProjectPath*/ ctx[3]); - } + let t2; + let mounted; + let dispose; - if (/*$currentDraftPath*/ ctx[1] && /*$currentProject*/ ctx[0] && /*$currentProject*/ ctx[0].drafts) { - if (if_block0) { - if_block0.p(ctx, dirty); - } else { - if_block0 = create_if_block_3(ctx); - if_block0.c(); - if_block0.m(div1, null); - } - } else if (if_block0) { - if_block0.d(1); - if_block0 = null; + return { + c() { + button = element("button"); + t0 = text("Compile"); + t1 = space(); + span = element("span"); + t2 = text(t2_value); + attr(button, "class", "compile-button svelte-1ylbuwy"); + button.disabled = button_disabled_value = /*validation*/ ctx[13].error !== /*WorkflowError*/ ctx[12].Valid; + attr(button, "aria-label", button_aria_label_value = /*validation*/ ctx[13].error); + attr(span, "class", "compile-status svelte-1ylbuwy"); + }, + m(target, anchor) { + insert(target, button, anchor); + append(button, t0); + insert(target, t1, anchor); + insert(target, span, anchor); + append(span, t2); + /*span_binding*/ ctx[38](span); + + if (!mounted) { + dispose = listen(button, "click", /*doCompile*/ ctx[25]); + mounted = true; + } + }, + p(ctx, dirty) { + if (dirty[0] & /*validation, WorkflowError*/ 12288 && button_disabled_value !== (button_disabled_value = /*validation*/ ctx[13].error !== /*WorkflowError*/ ctx[12].Valid)) { + button.disabled = button_disabled_value; } - if (/*$currentDraftPath*/ ctx[1]) { - if (if_block1) { - if_block1.p(ctx, dirty); - } else { - if_block1 = create_if_block_2(ctx); - if_block1.c(); - if_block1.m(if_block1_anchor.parentNode, if_block1_anchor); - } - } else if (if_block1) { - if_block1.d(1); - if_block1 = null; + if (dirty[0] & /*validation*/ 8192 && button_aria_label_value !== (button_aria_label_value = /*validation*/ ctx[13].error)) { + attr(button, "aria-label", button_aria_label_value); } + + if (dirty[0] & /*validation, WorkflowError, defaultCompileStatus*/ 14336 && t2_value !== (t2_value = (/*validation*/ ctx[13].error === /*WorkflowError*/ ctx[12].Valid + ? /*defaultCompileStatus*/ ctx[11] + : /*validation*/ ctx[13].error) + "")) set_data(t2, t2_value); }, d(detaching) { - if (detaching) detach(div1); - destroy_each(each_blocks, detaching); - if (if_block0) if_block0.d(); + if (detaching) detach(button); if (detaching) detach(t1); - if (if_block1) if_block1.d(detaching); - if (detaching) detach(if_block1_anchor); + if (detaching) detach(span); + /*span_binding*/ ctx[38](null); mounted = false; dispose(); } }; } -// (31:10) {#each projectOptions as projectOption} -function create_each_block_1(ctx) { - let option; - let t_value = /*projectOption*/ ctx[11].name + ""; - let t; - let option_value_value; +function create_fragment$a(ctx) { + let if_block_anchor; + let current; + let if_block = /*$currentProject*/ ctx[15] && /*$currentDraft*/ ctx[16] && create_if_block$5(ctx); return { c() { - option = element("option"); - t = text(t_value); - attr(option, "class", "projectOption"); - option.__value = option_value_value = /*projectOption*/ ctx[11].path; - option.value = option.__value; + if (if_block) if_block.c(); + if_block_anchor = empty(); }, m(target, anchor) { - insert(target, option, anchor); - append(option, t); + if (if_block) if_block.m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; }, p(ctx, dirty) { - if (dirty & /*projectOptions*/ 4 && t_value !== (t_value = /*projectOption*/ ctx[11].name + "")) set_data(t, t_value); + if (/*$currentProject*/ ctx[15] && /*$currentDraft*/ ctx[16]) { + if (if_block) { + if_block.p(ctx, dirty); - if (dirty & /*projectOptions*/ 4 && option_value_value !== (option_value_value = /*projectOption*/ ctx[11].path)) { - option.__value = option_value_value; - option.value = option.__value; + if (dirty[0] & /*$currentProject, $currentDraft*/ 98304) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$5(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); } }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, d(detaching) { - if (detaching) detach(option); + if (if_block) if_block.d(detaching); + if (detaching) detach(if_block_anchor); } }; } -// (38:6) {#if $currentDraftPath && $currentProject && $currentProject.drafts} -function create_if_block_3(ctx) { - let span; - let t; - let div; - let select; - let mounted; - let dispose; - let each_value = /*$currentProject*/ ctx[0].drafts; - let each_blocks = []; +function focusOnInit(el) { + el.focus(); +} - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); +function instance$a($$self, $$props, $$invalidate) { + let $currentWorkflow; + let $currentDraftPath; + let $currentProjectPath; + let $workflows; + let $projectMetadata; + let $currentProject; + let $currentDraft; + component_subscribe($$self, currentWorkflow, $$value => $$invalidate(2, $currentWorkflow = $$value)); + component_subscribe($$self, currentDraftPath, $$value => $$invalidate(40, $currentDraftPath = $$value)); + component_subscribe($$self, currentProjectPath, $$value => $$invalidate(3, $currentProjectPath = $$value)); + component_subscribe($$self, workflows, $$value => $$invalidate(4, $workflows = $$value)); + component_subscribe($$self, projectMetadata, $$value => $$invalidate(5, $projectMetadata = $$value)); + component_subscribe($$self, currentProject, $$value => $$invalidate(15, $currentProject = $$value)); + component_subscribe($$self, currentDraft, $$value => $$invalidate(16, $currentDraft = $$value)); + var _a; + let workflowContextButton; + let workflowInputState = "hidden"; + let workflowInputValue = ""; + let workflowInput; + let allWorkflowNames = []; + let currentWorkflowName = null; + let compileStatus; + let defaultCompileStatus; + let isDeletingWorkflow = false; + const showConfirmModal = getContext("showConfirmModal"); + const showCompileActionsMenu = getContext("showCompileActionsMenu"); + + function workflowAction(type) { + if (type == "new") { + $$invalidate(7, workflowInputState = "new"); + } else if (type == "rename") { + $$invalidate(8, workflowInputValue = currentWorkflowName); + $$invalidate(7, workflowInputState = "rename"); + } else if (type == "delete") { + showConfirmModal(`Delete ${currentWorkflowName}?`, "Really delete this workflow? This can’t be undone.", "Delete", () => { + $$invalidate(27, isDeletingWorkflow = true); + const toDelete = currentWorkflowName; + const remaining = allWorkflowNames.filter(n => n != toDelete); + + if (remaining.length > 0) { + set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].workflow = remaining[0], $projectMetadata); + } else { + set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].workflow = null, $projectMetadata); + } + + set_store_value(workflows, $workflows = delete $workflows[toDelete] && $workflows, $workflows); + $$invalidate(27, isDeletingWorkflow = false); + }); + } } - return { - c() { - span = element("span"); - t = space(); - div = element("div"); - select = element("select"); + function onWorkflowInputEnter() { + if (workflowInputValue.length == 0) { + return; + } - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } + if (workflowInputState == "new") { + set_store_value( + workflows, + $workflows[workflowInputValue] = { + name: workflowInputValue, + description: "", + steps: [] + }, + $workflows + ); + } else if (workflowInputState == "rename") { + const workflow = $workflows[currentWorkflowName]; + set_store_value(workflows, $workflows[workflowInputValue] = workflow, $workflows); + set_store_value(workflows, $workflows = delete $workflows[currentWorkflowName] && $workflows, $workflows); + } - attr(span, "class", "right-arrow svelte-23avsr"); - attr(select, "name", "drafts"); - attr(select, "class", "svelte-23avsr"); - if (/*$currentDraftPath*/ ctx[1] === void 0) add_render_callback(() => /*select_change_handler_1*/ ctx[7].call(select)); - attr(div, "class", "select svelte-23avsr"); - attr(div, "id", "select-drafts"); - }, - m(target, anchor) { - insert(target, span, anchor); - insert(target, t, anchor); - insert(target, div, anchor); - append(div, select); + set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].workflow = workflowInputValue, $projectMetadata); + $$invalidate(8, workflowInputValue = ""); + $$invalidate(7, workflowInputState = "hidden"); + } - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(select, null); - } + // VALIDATION + const openCompileStepMenu = getContext("openCompileStepMenu"); - select_option(select, /*$currentDraftPath*/ ctx[1]); + function addStep() { + openCompileStepMenu(); + } - if (!mounted) { - dispose = listen(select, "change", /*select_change_handler_1*/ ctx[7]); - mounted = true; - } - }, - p(ctx, dirty) { - if (dirty & /*$currentProject*/ 1) { - each_value = /*$currentProject*/ ctx[0].drafts; - let i; + var WorkflowError; - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context(ctx, each_value, i); + (function (WorkflowError) { + WorkflowError["Valid"] = ""; + WorkflowError["BadFirstStep"] = "The first step must be of Scene or Join type; compilation begins with all scenes as input."; + WorkflowError["MissingJoinStep"] = "A Manuscript step must occur after a Join step; Manuscript steps run on a single file, not all scenes."; + WorkflowError["ScenesStepPostJoin"] = "A Scene or Join step cannot occur after a Join step; at this point in the workflow, steps must operate on a single file."; + WorkflowError["UnloadedStep"] = "This workflow contains a step that could not be loaded. Please delete or replace it."; + })(WorkflowError || (WorkflowError = {})); - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); + function calculateWorkflow(workflow) { + if (!workflow) { + return; + } + + let currentKind = null; + let calculatedKinds = []; + + for (let stepPosition = 0; stepPosition < workflow.steps.length; stepPosition++) { + const step = workflow.steps[stepPosition]; + const kinds = step.description.availableKinds; + const hasSceneKind = kinds.includes(CompileStepKind.Scene); + const hasJoinKind = kinds.includes(CompileStepKind.Join); + + if (step.description.canonicalID === PLACEHOLDER_MISSING_STEP.description.canonicalID) { + return [ + { + error: WorkflowError.UnloadedStep, + stepPosition + }, + calculatedKinds + ]; + } + + // Calculate the next step kind + if (!currentKind) { + // First step calculation + if (hasJoinKind) { + currentKind = CompileStepKind.Join; + } else if (hasSceneKind) { + currentKind = CompileStepKind.Scene; + } else { + return [ + { + error: WorkflowError.BadFirstStep, + stepPosition + }, + calculatedKinds + ]; + } + } else { + // Subsequent step calculations + if (!calculatedKinds.includes(CompileStepKind.Join)) { + // We're pre-join, all kinds must be scene or join + if (hasJoinKind) { + currentKind = CompileStepKind.Join; + } else if (hasSceneKind) { + currentKind = CompileStepKind.Scene; } else { - each_blocks[i] = create_each_block(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(select, null); + return [ + { + error: WorkflowError.MissingJoinStep, + stepPosition + }, + calculatedKinds + ]; + } + } else { + // We're post-join, all kinds must be of type manuscript + if (kinds.includes(CompileStepKind.Manuscript)) { + currentKind = CompileStepKind.Manuscript; + } else { + return [ + { + error: WorkflowError.ScenesStepPostJoin, + stepPosition + }, + calculatedKinds + ]; } } + } - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } + calculatedKinds.push(currentKind); + } - each_blocks.length = each_value.length; - } + return [ + { + error: WorkflowError.Valid, + stepPosition: 0 + }, + calculatedKinds + ]; + } - if (dirty & /*$currentDraftPath, $currentProject*/ 3) { - select_option(select, /*$currentDraftPath*/ ctx[1]); - } - }, - d(detaching) { - if (detaching) detach(span); - if (detaching) detach(t); - if (detaching) detach(div); - destroy_each(each_blocks, detaching); - mounted = false; - dispose(); + const VALID = { + error: WorkflowError.Valid, + stepPosition: 0 + }; + + let validation = VALID; + let calculatedKinds = []; + + function kindAtIndex(index) { + return index < calculatedKinds.length + ? calculatedKinds[index] + : null; + } + + function errorAtIndex(index) { + if (validation.error !== WorkflowError.Valid && validation.stepPosition === index) { + return validation.error; } + + return null; + } + + let items; + + const sortableOptions = { + animation: 150, + ghostClass: "step-ghost", + dragClass: "step-drag" }; -} -// (42:12) {#each $currentProject.drafts as draftOption} -function create_each_block(ctx) { - let option; - let t_value = /*draftOption*/ ctx[8].name + ""; - let t; - let option_value_value; + // Called when sorting ends an the item order has been updated. + function itemOrderChanged(event) { + const newWorkflow = Object.assign(Object.assign({}, $currentWorkflow), { + steps: event.detail.map(({ index }) => $currentWorkflow.steps[index]) + }); + + set_store_value(workflows, $workflows[currentWorkflowName] = newWorkflow, $workflows); + } + + function onCompileStatusChange(status) { + if (status.kind == "CompileStatusError") { + $$invalidate(10, compileStatus.innerText = `${status.error}. See dev console for more details.`, compileStatus); + compileStatus.classList.add("compile-status-error"); + restoreDefaultStatusAfter(10000); + } else if (status.kind == "CompileStatusStep") { + $$invalidate(10, compileStatus.innerText = `Step ${status.stepIndex + 1}/${status.totalSteps} (${formatStepKind(status.stepKind)})`, compileStatus); + } else if (status.kind == "CompileStatusSuccess") { + $$invalidate(10, compileStatus.innerText = "Compiled manuscript.", compileStatus); + compileStatus.classList.add("compile-status-success"); + restoreDefaultStatusAfter(); + } else { + $$invalidate(10, compileStatus.innerText = "default??", compileStatus); + } + } + + function restoreDefaultStatusAfter(ms = 3000) { + setTimeout( + () => { + $$invalidate(10, compileStatus.innerText = defaultCompileStatus, compileStatus); + compileStatus.classList.remove("compile-status-error"); + compileStatus.classList.remove("compile-status-success"); + }, + ms + ); + } + + const compile = getContext("compile"); + + function doCompile() { + compile($currentProjectPath, $currentDraftPath, $currentWorkflow, calculatedKinds, onCompileStatusChange); + } + + function input_input_handler() { + workflowInputValue = this.value; + $$invalidate(8, workflowInputValue); + } + + function input_binding($$value) { + binding_callbacks[$$value ? 'unshift' : 'push'](() => { + workflowInput = $$value; + $$invalidate(9, workflowInput); + }); + } + + const keydown_handler = e => { + if (e.key === "Enter" && workflowInputValue.length > 0) { + onWorkflowInputEnter(); + } else if (e.key === "Escape") { + $$invalidate(8, workflowInputValue = ""); + workflowInput.blur(); + $$invalidate(7, workflowInputState = "hidden"); + } + }; + + function select_change_handler() { + $projectMetadata[$currentProjectPath].workflow = select_value(this); + projectMetadata.set($projectMetadata); + (($$invalidate(0, allWorkflowNames), $$invalidate(4, $workflows)), $$invalidate(26, _a)); + } + + function button_binding($$value) { + binding_callbacks[$$value ? 'unshift' : 'push'](() => { + workflowContextButton = $$value; + $$invalidate(6, workflowContextButton); + }); + } + + const click_handler = () => { + const rect = workflowContextButton.getBoundingClientRect(); + showCompileActionsMenu(rect.x, rect.y, currentWorkflowName, workflowAction); + }; + + function autotextarea_value_binding(value) { + if ($$self.$$.not_equal($workflows[currentWorkflowName].description, value)) { + $workflows[currentWorkflowName].description = value; + workflows.set($workflows); + } + } + + function compilestepview_step_binding(value, item) { + if ($$self.$$.not_equal($workflows[currentWorkflowName].steps[item.index], value)) { + $workflows[currentWorkflowName].steps[item.index] = value; + workflows.set($workflows); + } + } + + const removeStep_handler = item => { + const newWorkflow = { + ...$currentWorkflow, + steps: $currentWorkflow.steps.filter((_e, index) => item.index !== index) + }; + + set_store_value(workflows, $workflows[currentWorkflowName] = newWorkflow, $workflows); + }; + + function sortablelist_items_binding(value) { + items = value; + ($$invalidate(14, items), $$invalidate(2, $currentWorkflow)); + } + + function span_binding($$value) { + binding_callbacks[$$value ? 'unshift' : 'push'](() => { + compileStatus = $$value; + $$invalidate(10, compileStatus); + }); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty[0] & /*$workflows, _a*/ 67108880) { + // WORKFLOW MANAGEMENT + $$invalidate(0, allWorkflowNames = $$invalidate(26, _a = Object.keys($workflows).sort()) !== null && _a !== void 0 + ? _a + : []); + } + + if ($$self.$$.dirty[0] & /*$projectMetadata, $currentProjectPath, isDeletingWorkflow, currentWorkflowName, allWorkflowNames*/ 134217771) { + { + const metadata = $projectMetadata[$currentProjectPath]; + + $$invalidate(1, currentWorkflowName = metadata === null || metadata === void 0 + ? void 0 + : metadata.workflow); + + if (!isDeletingWorkflow && metadata && !currentWorkflowName && allWorkflowNames.length > 0) { + set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].workflow = allWorkflowNames[0], $projectMetadata); + } + } + } - return { - c() { - option = element("option"); - t = text(t_value); - option.__value = option_value_value = /*draftOption*/ ctx[8].folder; - option.value = option.__value; - }, - m(target, anchor) { - insert(target, option, anchor); - append(option, t); - }, - p(ctx, dirty) { - if (dirty & /*$currentProject*/ 1 && t_value !== (t_value = /*draftOption*/ ctx[8].name + "")) set_data(t, t_value); + if ($$self.$$.dirty[0] & /*$currentWorkflow*/ 4) { + { + if ($currentWorkflow) { + $$invalidate(13, [validation, calculatedKinds] = calculateWorkflow($currentWorkflow), validation); + } else { + $$invalidate(13, validation = VALID); + calculatedKinds = []; + } + } + } - if (dirty & /*$currentProject*/ 1 && option_value_value !== (option_value_value = /*draftOption*/ ctx[8].folder)) { - option.__value = option_value_value; - option.value = option.__value; + if ($$self.$$.dirty[0] & /*$currentWorkflow*/ 4) { + { + $$invalidate(14, items = $currentWorkflow + ? $currentWorkflow.steps.map((step, index) => ({ id: step.id, index })) + : []); } - }, - d(detaching) { - if (detaching) detach(option); + } + + if ($$self.$$.dirty[0] & /*$currentWorkflow*/ 4) { + // COMPILATION + $$invalidate(11, defaultCompileStatus = `Will run ${$currentWorkflow ? $currentWorkflow.steps.length : 0} steps.`); } }; + + return [ + allWorkflowNames, + currentWorkflowName, + $currentWorkflow, + $currentProjectPath, + $workflows, + $projectMetadata, + workflowContextButton, + workflowInputState, + workflowInputValue, + workflowInput, + compileStatus, + defaultCompileStatus, + WorkflowError, + validation, + items, + $currentProject, + $currentDraft, + showCompileActionsMenu, + workflowAction, + onWorkflowInputEnter, + addStep, + kindAtIndex, + errorAtIndex, + sortableOptions, + itemOrderChanged, + doCompile, + _a, + isDeletingWorkflow, + input_input_handler, + input_binding, + keydown_handler, + select_change_handler, + button_binding, + click_handler, + autotextarea_value_binding, + compilestepview_step_binding, + removeStep_handler, + sortablelist_items_binding, + span_binding + ]; } -// (49:4) {#if $currentDraftPath} -function create_if_block_2(ctx) { +class CompileView extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$a, create_fragment$a, safe_not_equal, {}, add_css$8, [-1, -1]); + } +} + +/* src/view/tabs/Tabs.svelte generated by Svelte v3.43.1 */ + +function create_fragment$9(ctx) { let div; - let t_value = obsidian.normalizePath(`${/*$currentProjectPath*/ ctx[3]}/${/*$currentDraftPath*/ ctx[1]}`) + ""; - let t; + let current; + const default_slot_template = /*#slots*/ ctx[1].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[0], null); return { c() { div = element("div"); - t = text(t_value); - attr(div, "class", "current-draft-path svelte-23avsr"); + if (default_slot) default_slot.c(); + attr(div, "class", "tabs"); }, m(target, anchor) { insert(target, div, anchor); - append(div, t); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; }, - p(ctx, dirty) { - if (dirty & /*$currentProjectPath, $currentDraftPath*/ 10 && t_value !== (t_value = obsidian.normalizePath(`${/*$currentProjectPath*/ ctx[3]}/${/*$currentDraftPath*/ ctx[1]}`) + "")) set_data(t, t_value); + p(ctx, [dirty]) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 1)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[0], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[0]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[0], dirty, null), + null + ); + } + } + }, + i(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o(local) { + transition_out(default_slot, local); + current = false; }, d(detaching) { if (detaching) detach(div); + if (default_slot) default_slot.d(detaching); } }; } -// (60:2) {#if $currentProject && $currentProject.error} -function create_if_block$1(ctx) { - let p; - let t_value = /*$currentProject*/ ctx[0].error + ""; - let t; +const TABS = {}; - return { - c() { - p = element("p"); - t = text(t_value); - attr(p, "class", "project-error svelte-23avsr"); +function instance$9($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + const tabs = []; + const panels = []; + const selectedTab = writable(null); + const selectedPanel = writable(null); + + setContext(TABS, { + registerTab: tab => { + tabs.push(tab); + selectedTab.update(current => current || tab); + + onDestroy(() => { + const i = tabs.indexOf(tab); + tabs.splice(i, 1); + + selectedTab.update(current => current === tab + ? tabs[i] || tabs[tabs.length - 1] + : current); + }); }, - m(target, anchor) { - insert(target, p, anchor); - append(p, t); + registerPanel: panel => { + panels.push(panel); + selectedPanel.update(current => current || panel); + + onDestroy(() => { + const i = panels.indexOf(panel); + panels.splice(i, 1); + + selectedPanel.update(current => current === panel + ? panels[i] || panels[panels.length - 1] + : current); + }); }, - p(ctx, dirty) { - if (dirty & /*$currentProject*/ 1 && t_value !== (t_value = /*$currentProject*/ ctx[0].error + "")) set_data(t, t_value); + selectTab: tab => { + const i = tabs.indexOf(tab); + selectedTab.set(tab); + selectedPanel.set(panels[i]); }, - d(detaching) { - if (detaching) detach(p); - } + selectedTab, + selectedPanel + }); + + $$self.$$set = $$props => { + if ('$$scope' in $$props) $$invalidate(0, $$scope = $$props.$$scope); }; -} -function create_fragment$2(ctx) { - let div; - let t; + return [$$scope, slots]; +} - function select_block_type(ctx, dirty) { - if (/*projectOptions*/ ctx[2].length > 0) return create_if_block_1$1; - return create_else_block; +class Tabs extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$9, create_fragment$9, safe_not_equal, {}); } +} - let current_block_type = select_block_type(ctx); - let if_block0 = current_block_type(ctx); - let if_block1 = /*$currentProject*/ ctx[0] && /*$currentProject*/ ctx[0].error && create_if_block$1(ctx); +/* src/view/tabs/TabList.svelte generated by Svelte v3.43.1 */ + +function add_css$7(target) { + append_styles(target, "svelte-1bo97vk", ".tab-list.svelte-1bo97vk{margin:4px 8px;border-bottom:1px solid var(--text-muted)}"); +} + +function create_fragment$8(ctx) { + let div; + let current; + const default_slot_template = /*#slots*/ ctx[1].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[0], null); return { c() { div = element("div"); - if_block0.c(); - t = space(); - if (if_block1) if_block1.c(); - attr(div, "id", "project-picker-container"); - attr(div, "class", "svelte-23avsr"); + if (default_slot) default_slot.c(); + attr(div, "class", "tab-list svelte-1bo97vk"); }, m(target, anchor) { insert(target, div, anchor); - if_block0.m(div, null); - append(div, t); - if (if_block1) if_block1.m(div, null); - }, - p(ctx, [dirty]) { - if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block0) { - if_block0.p(ctx, dirty); - } else { - if_block0.d(1); - if_block0 = current_block_type(ctx); - if (if_block0) { - if_block0.c(); - if_block0.m(div, t); - } + if (default_slot) { + default_slot.m(div, null); } - if (/*$currentProject*/ ctx[0] && /*$currentProject*/ ctx[0].error) { - if (if_block1) { - if_block1.p(ctx, dirty); - } else { - if_block1 = create_if_block$1(ctx); - if_block1.c(); - if_block1.m(div, null); + current = true; + }, + p(ctx, [dirty]) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 1)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[0], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[0]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[0], dirty, null), + null + ); } - } else if (if_block1) { - if_block1.d(1); - if_block1 = null; } }, - i: noop, - o: noop, + i(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o(local) { + transition_out(default_slot, local); + current = false; + }, d(detaching) { if (detaching) detach(div); - if_block0.d(); - if (if_block1) if_block1.d(); + if (default_slot) default_slot.d(detaching); } }; -} - -function instance$2($$self, $$props, $$invalidate) { - let $projects; - let $initialized; - let $currentProject; - let $currentDraftPath; - let $currentProjectPath; - component_subscribe($$self, projects, $$value => $$invalidate(4, $projects = $$value)); - component_subscribe($$self, initialized, $$value => $$invalidate(5, $initialized = $$value)); - component_subscribe($$self, currentProject, $$value => $$invalidate(0, $currentProject = $$value)); - component_subscribe($$self, currentDraftPath, $$value => $$invalidate(1, $currentDraftPath = $$value)); - component_subscribe($$self, currentProjectPath, $$value => $$invalidate(3, $currentProjectPath = $$value)); - let projectOptions = []; - - function select_change_handler() { - $currentProjectPath = select_value(this); - currentProjectPath.set($currentProjectPath); - ($$invalidate(2, projectOptions), $$invalidate(4, $projects)); - } - - function select_change_handler_1() { - $currentDraftPath = select_value(this); - currentDraftPath.set($currentDraftPath); - } - - $$self.$$.update = () => { - if ($$self.$$.dirty & /*$projects*/ 16) { - { - $$invalidate(2, projectOptions = Object.keys($projects).map(path => ({ name: path.split("/").slice(-1)[0], path }))); - } - } - - if ($$self.$$.dirty & /*$initialized, $currentProject, $currentDraftPath*/ 35) { - // Recover if you've changed projects and there's no matching draft folder - // by setting the current draft to the last one in the project. - if ($initialized && $currentProject && !$currentProject.drafts.find(d => d.folder === $currentDraftPath)) { - const drafts = $currentProject.drafts; - - if (drafts.length > 0) { - set_store_value(currentDraftPath, $currentDraftPath = drafts[drafts.length - 1].folder, $currentDraftPath); - } else { - set_store_value(currentDraftPath, $currentDraftPath = null, $currentDraftPath); - } - } - } +} + +function instance$8($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + + $$self.$$set = $$props => { + if ('$$scope' in $$props) $$invalidate(0, $$scope = $$props.$$scope); }; - return [ - $currentProject, - $currentDraftPath, - projectOptions, - $currentProjectPath, - $projects, - $initialized, - select_change_handler, - select_change_handler_1 - ]; + return [$$scope, slots]; } -class ProjectPicker extends SvelteComponent { +class TabList extends SvelteComponent { constructor(options) { super(); - if (!document.getElementById("svelte-23avsr-style")) add_css$1(); - init(this, options, instance$2, create_fragment$2, safe_not_equal, {}); + init(this, options, instance$8, create_fragment$8, safe_not_equal, {}, add_css$7); } } -/* src/view/explorer/SceneList.svelte generated by Svelte v3.38.2 */ - -const { document: document_1 } = globals; +/* src/view/tabs/TabPanel.svelte generated by Svelte v3.43.1 */ -function add_css() { - var style = element("style"); - style.id = "svelte-1wlkmbt-style"; - style.textContent = "#scene-list.svelte-1wlkmbt.svelte-1wlkmbt{margin:4px 0px}#scene-list.svelte-1wlkmbt .sortable-scene-list{list-style-type:none;padding:0px;margin:0px}.scene-container.svelte-1wlkmbt.svelte-1wlkmbt{display:flex;border:1px solid transparent;border-radius:3px;cursor:pointer;color:var(--text-muted);font-size:14px;line-height:20px;white-space:nowrap;padding:2px 0px}.selected.svelte-1wlkmbt.svelte-1wlkmbt,.svelte-1wlkmbt:not(.dragging) .scene-container.svelte-1wlkmbt:hover{background-color:var(--background-secondary-alt);color:var(--text-normal)}.scene-container.svelte-1wlkmbt.svelte-1wlkmbt:active{background-color:inherit;color:var(--text-muted)}.scene-ghost{background-color:var(--interactive-accent-hover);color:var(--text-on-accent)}"; - append(document_1.head, style); +function add_css$6(target) { + append_styles(target, "svelte-11pvpwl", ".tab-panel-container.svelte-11pvpwl{padding:0 8px}"); } -// (57:2) -function create_default_slot$1(ctx) { +// (11:0) {#if $selectedPanel === panel} +function create_if_block$4(ctx) { let div; - let t_value = /*item*/ ctx[16].name + ""; - let t; - let div_data_scene_path_value; - let mounted; - let dispose; - - function click_handler(...args) { - return /*click_handler*/ ctx[8](/*item*/ ctx[16], ...args); - } + let current; + const default_slot_template = /*#slots*/ ctx[4].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[3], null); return { c() { div = element("div"); - t = text(t_value); - attr(div, "class", "scene-container svelte-1wlkmbt"); - attr(div, "data-scene-path", div_data_scene_path_value = /*item*/ ctx[16].path); - toggle_class(div, "selected", /*$activeFile*/ ctx[2] && /*$activeFile*/ ctx[2].path === /*item*/ ctx[16].path); + if (default_slot) default_slot.c(); + attr(div, "class", "tab-panel-container svelte-11pvpwl"); }, m(target, anchor) { insert(target, div, anchor); - append(div, t); - - if (!mounted) { - dispose = [ - listen(div, "click", click_handler), - listen(div, "contextmenu", prevent_default(/*onContext*/ ctx[6])) - ]; - mounted = true; - } - }, - p(new_ctx, dirty) { - ctx = new_ctx; - if (dirty & /*item*/ 65536 && t_value !== (t_value = /*item*/ ctx[16].name + "")) set_data(t, t_value); - - if (dirty & /*item*/ 65536 && div_data_scene_path_value !== (div_data_scene_path_value = /*item*/ ctx[16].path)) { - attr(div, "data-scene-path", div_data_scene_path_value); + if (default_slot) { + default_slot.m(div, null); } - if (dirty & /*$activeFile, item*/ 65540) { - toggle_class(div, "selected", /*$activeFile*/ ctx[2] && /*$activeFile*/ ctx[2].path === /*item*/ ctx[16].path); + current = true; + }, + p(ctx, dirty) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 8)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[3], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[3]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[3], dirty, null), + null + ); + } } }, + i(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o(local) { + transition_out(default_slot, local); + current = false; + }, d(detaching) { if (detaching) detach(div); - mounted = false; - run_all(dispose); + if (default_slot) default_slot.d(detaching); } }; } -function create_fragment$1(ctx) { - let div; - let sortablelist; - let updating_items; +function create_fragment$7(ctx) { + let if_block_anchor; let current; - - function sortablelist_items_binding(value) { - /*sortablelist_items_binding*/ ctx[9](value); - } - - let sortablelist_props = { - sortableOptions: /*sortableOptions*/ ctx[3], - class: "sortable-scene-list", - $$slots: { - default: [ - create_default_slot$1, - ({ item }) => ({ 16: item }), - ({ item }) => item ? 65536 : 0 - ] - }, - $$scope: { ctx } - }; - - if (/*items*/ ctx[0] !== void 0) { - sortablelist_props.items = /*items*/ ctx[0]; - } - - sortablelist = new SortableList({ props: sortablelist_props }); - binding_callbacks.push(() => bind(sortablelist, "items", sortablelist_items_binding)); - sortablelist.$on("orderChanged", /*itemOrderChanged*/ ctx[4]); + let if_block = /*$selectedPanel*/ ctx[0] === /*panel*/ ctx[1] && create_if_block$4(ctx); return { c() { - div = element("div"); - create_component(sortablelist.$$.fragment); - attr(div, "id", "scene-list"); - attr(div, "class", "svelte-1wlkmbt"); - toggle_class(div, "dragging", /*isSorting*/ ctx[1]); + if (if_block) if_block.c(); + if_block_anchor = empty(); }, m(target, anchor) { - insert(target, div, anchor); - mount_component(sortablelist, div, null); + if (if_block) if_block.m(target, anchor); + insert(target, if_block_anchor, anchor); current = true; }, p(ctx, [dirty]) { - const sortablelist_changes = {}; - - if (dirty & /*$$scope, item, $activeFile*/ 196612) { - sortablelist_changes.$$scope = { dirty, ctx }; - } + if (/*$selectedPanel*/ ctx[0] === /*panel*/ ctx[1]) { + if (if_block) { + if_block.p(ctx, dirty); - if (!updating_items && dirty & /*items*/ 1) { - updating_items = true; - sortablelist_changes.items = /*items*/ ctx[0]; - add_flush_callback(() => updating_items = false); - } + if (dirty & /*$selectedPanel*/ 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$4(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); - sortablelist.$set(sortablelist_changes); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); - if (dirty & /*isSorting*/ 2) { - toggle_class(div, "dragging", /*isSorting*/ ctx[1]); + check_outros(); } }, i(local) { if (current) return; - transition_in(sortablelist.$$.fragment, local); + transition_in(if_block); current = true; }, o(local) { - transition_out(sortablelist.$$.fragment, local); + transition_out(if_block); current = false; }, d(detaching) { - if (detaching) detach(div); - destroy_component(sortablelist); + if (if_block) if_block.d(detaching); + if (detaching) detach(if_block_anchor); } }; } -function instance$1($$self, $$props, $$invalidate) { - let $currentDraft; - let $projectMetadata; - let $currentProjectPath; - let $currentDraftPath; - let $activeFile; - component_subscribe($$self, currentDraft, $$value => $$invalidate(7, $currentDraft = $$value)); - component_subscribe($$self, projectMetadata, $$value => $$invalidate(10, $projectMetadata = $$value)); - component_subscribe($$self, currentProjectPath, $$value => $$invalidate(11, $currentProjectPath = $$value)); - component_subscribe($$self, currentDraftPath, $$value => $$invalidate(12, $currentDraftPath = $$value)); - component_subscribe($$self, activeFile, $$value => $$invalidate(2, $activeFile = $$value)); - - - // Function to make paths from scene names - const makeScenePath = getContext("makeScenePath"); - - let items; - - // Track sort state for styling, set sorting options - let isSorting = false; - - const sortableOptions = { - animation: 150, - ghostClass: "scene-ghost", - onStart: () => { - $$invalidate(1, isSorting = true); - }, - onEnd: () => { - $$invalidate(1, isSorting = false); - } - }; - - // Called when sorting ends an the item order has been updated. - // Reorder scenes according and set into the store. - function itemOrderChanged(event) { - const currentDraftIndex = $projectMetadata[$currentProjectPath].drafts.findIndex(d => d.folder === $currentDraftPath); - set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].drafts[currentDraftIndex].scenes = event.detail.map(d => d.name), $projectMetadata); - } - - // Grab the click context function and call it when a valid scene is clicked. - const onSceneClick = getContext("onSceneClick"); - - function onItemClick(path, event) { - if (path) { - onSceneClick(path, event.metaKey); - } - } - - // Grab the right-click context function and call it if the right-click - // happened on a scene element with a valid path. - const onContextClick = getContext("onContextClick"); - - function onContext(event) { - const { x, y } = event; - const element = document.elementFromPoint(x, y); - const scenePath = element && element instanceof HTMLElement && element.dataset.scenePath; - - if (scenePath) { - onContextClick(scenePath, x, y); - } - } - - const click_handler = (item, e) => typeof item.path === "string" - ? onItemClick(item.path, e) - : {}; - - function sortablelist_items_binding(value) { - items = value; - ($$invalidate(0, items), $$invalidate(7, $currentDraft)); - } +function instance$7($$self, $$props, $$invalidate) { + let $selectedPanel; + let { $$slots: slots = {}, $$scope } = $$props; + const panel = {}; + const { registerPanel, selectedPanel } = getContext(TABS); + component_subscribe($$self, selectedPanel, value => $$invalidate(0, $selectedPanel = value)); + registerPanel(panel); - $$self.$$.update = () => { - if ($$self.$$.dirty & /*$currentDraft*/ 128) { - { - $$invalidate(0, items = $currentDraft - ? $currentDraft.scenes.map(s => ({ id: s, name: s, path: makeScenePath(s) })) - : []); - } - } + $$self.$$set = $$props => { + if ('$$scope' in $$props) $$invalidate(3, $$scope = $$props.$$scope); }; - return [ - items, - isSorting, - $activeFile, - sortableOptions, - itemOrderChanged, - onItemClick, - onContext, - $currentDraft, - click_handler, - sortablelist_items_binding - ]; + return [$selectedPanel, panel, selectedPanel, $$scope, slots]; } -class SceneList extends SvelteComponent { +class TabPanel extends SvelteComponent { constructor(options) { super(); - if (!document_1.getElementById("svelte-1wlkmbt-style")) add_css(); - init(this, options, instance$1, create_fragment$1, safe_not_equal, {}); + init(this, options, instance$7, create_fragment$7, safe_not_equal, {}, add_css$6); } } -/* src/view/explorer/ExplorerView.svelte generated by Svelte v3.38.2 */ +/* src/view/tabs/Tab.svelte generated by Svelte v3.43.1 */ -function create_default_slot_7(ctx) { - let t; +function add_css$5(target) { + append_styles(target, "svelte-htpziy", "button.svelte-htpziy{background:none;border:none;border-bottom:none;border-radius:0;margin:0;color:var(--interactive-accent)}.selected.svelte-htpziy{border-bottom:2px solid var(--text-muted);color:var(--text-accent)}"); +} + +function create_fragment$6(ctx) { + let button; + let current; + let mounted; + let dispose; + const default_slot_template = /*#slots*/ ctx[5].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[4], null); return { c() { - t = text("Scenes"); + button = element("button"); + if (default_slot) default_slot.c(); + attr(button, "class", "svelte-htpziy"); + toggle_class(button, "selected", /*$selectedTab*/ ctx[0] === /*tab*/ ctx[1]); }, m(target, anchor) { - insert(target, t, anchor); - }, - d(detaching) { - if (detaching) detach(t); - } - }; -} + insert(target, button, anchor); -// (35:4) -function create_default_slot_6(ctx) { - let t; + if (default_slot) { + default_slot.m(button, null); + } - return { - c() { - t = text("Drafts"); + current = true; + + if (!mounted) { + dispose = listen(button, "click", /*click_handler*/ ctx[6]); + mounted = true; + } }, - m(target, anchor) { - insert(target, t, anchor); + p(ctx, [dirty]) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 16)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[4], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[4]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[4], dirty, null), + null + ); + } + } + + if (dirty & /*$selectedTab, tab*/ 3) { + toggle_class(button, "selected", /*$selectedTab*/ ctx[0] === /*tab*/ ctx[1]); + } + }, + i(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o(local) { + transition_out(default_slot, local); + current = false; }, d(detaching) { - if (detaching) detach(t); + if (detaching) detach(button); + if (default_slot) default_slot.d(detaching); + mounted = false; + dispose(); } }; } -// (36:4) -function create_default_slot_5(ctx) { - let t; +function instance$6($$self, $$props, $$invalidate) { + let $selectedTab; + let { $$slots: slots = {}, $$scope } = $$props; + const tab = {}; + const { registerTab, selectTab, selectedTab } = getContext(TABS); + component_subscribe($$self, selectedTab, value => $$invalidate(0, $selectedTab = value)); + registerTab(tab); + const click_handler = () => selectTab(tab); - return { - c() { - t = text("Compile"); - }, - m(target, anchor) { - insert(target, t, anchor); - }, - d(detaching) { - if (detaching) detach(t); - } + $$self.$$set = $$props => { + if ('$$scope' in $$props) $$invalidate(4, $$scope = $$props.$$scope); }; + + return [$selectedTab, tab, selectTab, selectedTab, $$scope, slots, click_handler]; } -// (33:2) -function create_default_slot_4(ctx) { - let tab0; - let t0; - let tab1; - let t1; - let tab2; - let current; +class Tab extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$6, create_fragment$6, safe_not_equal, {}, add_css$5); + } +} - tab0 = new Tab({ - props: { - $$slots: { default: [create_default_slot_7] }, - $$scope: { ctx } - } - }); +/* src/view/explorer/DraftList.svelte generated by Svelte v3.43.1 */ - tab1 = new Tab({ - props: { - $$slots: { default: [create_default_slot_6] }, - $$scope: { ctx } - } - }); +function add_css$4(target) { + append_styles(target, "svelte-1jmafs", "#draft-list.svelte-1jmafs.svelte-1jmafs{margin:4px 0px}#draft-list.svelte-1jmafs .sortable-draft-list{list-style-type:none;padding:0px;margin:0px}.draft-container.svelte-1jmafs.svelte-1jmafs{display:flex;border:1px solid transparent;border-radius:3px;cursor:pointer;color:var(--text-muted);font-size:14px;line-height:20px;white-space:nowrap;padding:2px 0px}.selected.svelte-1jmafs.svelte-1jmafs,.svelte-1jmafs:not(.dragging) .draft-container.svelte-1jmafs:hover{background-color:var(--background-secondary-alt);color:var(--text-normal)}.draft-container.svelte-1jmafs.svelte-1jmafs:active{background-color:inherit;color:var(--text-muted)}.draft-ghost{background-color:var(--interactive-accent-hover);color:var(--text-on-accent)}"); +} - tab2 = new Tab({ - props: { - $$slots: { default: [create_default_slot_5] }, - $$scope: { ctx } - } - }); +// (88:2) +function create_default_slot$2(ctx) { + let div; + let t_value = /*item*/ ctx[18].name + ""; + let t; + let div_data_draft_path_value; + let div_contenteditable_value; + let mounted; + let dispose; + + function click_handler() { + return /*click_handler*/ ctx[11](/*item*/ ctx[18]); + } return { c() { - create_component(tab0.$$.fragment); - t0 = space(); - create_component(tab1.$$.fragment); - t1 = space(); - create_component(tab2.$$.fragment); + div = element("div"); + t = text(t_value); + attr(div, "class", "draft-container svelte-1jmafs"); + attr(div, "data-draft-path", div_data_draft_path_value = /*item*/ ctx[18].id); + attr(div, "contenteditable", div_contenteditable_value = /*item*/ ctx[18].id === /*editingPath*/ ctx[2]); + toggle_class(div, "selected", /*$currentDraftPath*/ ctx[3] && /*$currentDraftPath*/ ctx[3] === /*item*/ ctx[18].id); }, m(target, anchor) { - mount_component(tab0, target, anchor); - insert(target, t0, anchor); - mount_component(tab1, target, anchor); - insert(target, t1, anchor); - mount_component(tab2, target, anchor); - current = true; - }, - p(ctx, dirty) { - const tab0_changes = {}; - - if (dirty & /*$$scope*/ 128) { - tab0_changes.$$scope = { dirty, ctx }; - } + insert(target, div, anchor); + append(div, t); - tab0.$set(tab0_changes); - const tab1_changes = {}; + if (!mounted) { + dispose = [ + listen(div, "click", click_handler), + listen(div, "contextmenu", prevent_default(/*onContext*/ ctx[7])), + listen(div, "keydown", function () { + if (is_function(/*item*/ ctx[18].id === /*editingPath*/ ctx[2] + ? /*onKeydown*/ ctx[8] + : null)) (/*item*/ ctx[18].id === /*editingPath*/ ctx[2] + ? /*onKeydown*/ ctx[8] + : null).apply(this, arguments); + }), + listen(div, "blur", function () { + if (is_function(/*item*/ ctx[18].id === /*editingPath*/ ctx[2] + ? /*onBlur*/ ctx[9] + : null)) (/*item*/ ctx[18].id === /*editingPath*/ ctx[2] + ? /*onBlur*/ ctx[9] + : null).apply(this, arguments); + }) + ]; - if (dirty & /*$$scope*/ 128) { - tab1_changes.$$scope = { dirty, ctx }; + mounted = true; } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (dirty & /*item*/ 262144 && t_value !== (t_value = /*item*/ ctx[18].name + "")) set_data(t, t_value); - tab1.$set(tab1_changes); - const tab2_changes = {}; + if (dirty & /*item*/ 262144 && div_data_draft_path_value !== (div_data_draft_path_value = /*item*/ ctx[18].id)) { + attr(div, "data-draft-path", div_data_draft_path_value); + } - if (dirty & /*$$scope*/ 128) { - tab2_changes.$$scope = { dirty, ctx }; + if (dirty & /*item, editingPath*/ 262148 && div_contenteditable_value !== (div_contenteditable_value = /*item*/ ctx[18].id === /*editingPath*/ ctx[2])) { + attr(div, "contenteditable", div_contenteditable_value); } - tab2.$set(tab2_changes); - }, - i(local) { - if (current) return; - transition_in(tab0.$$.fragment, local); - transition_in(tab1.$$.fragment, local); - transition_in(tab2.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(tab0.$$.fragment, local); - transition_out(tab1.$$.fragment, local); - transition_out(tab2.$$.fragment, local); - current = false; + if (dirty & /*$currentDraftPath, item*/ 262152) { + toggle_class(div, "selected", /*$currentDraftPath*/ ctx[3] && /*$currentDraftPath*/ ctx[3] === /*item*/ ctx[18].id); + } }, d(detaching) { - destroy_component(tab0, detaching); - if (detaching) detach(t0); - destroy_component(tab1, detaching); - if (detaching) detach(t1); - destroy_component(tab2, detaching); + if (detaching) detach(div); + mounted = false; + run_all(dispose); } }; } -// (39:4) {#if $currentDraft} -function create_if_block_1(ctx) { - let scenelist; - let t; - let newscenefield; +function create_fragment$5(ctx) { + let div; + let sortablelist; + let updating_items; let current; - scenelist = new SceneList({}); - newscenefield = new NewSceneField({}); + + function sortablelist_items_binding(value) { + /*sortablelist_items_binding*/ ctx[12](value); + } + + let sortablelist_props = { + sortableOptions: /*sortableOptions*/ ctx[4], + class: "sortable-draft-list", + $$slots: { + default: [ + create_default_slot$2, + ({ item }) => ({ 18: item }), + ({ item }) => item ? 262144 : 0 + ] + }, + $$scope: { ctx } + }; + + if (/*items*/ ctx[0] !== void 0) { + sortablelist_props.items = /*items*/ ctx[0]; + } + + sortablelist = new SortableList({ props: sortablelist_props }); + binding_callbacks.push(() => bind(sortablelist, 'items', sortablelist_items_binding)); + sortablelist.$on("orderChanged", /*itemOrderChanged*/ ctx[5]); return { c() { - create_component(scenelist.$$.fragment); - t = space(); - create_component(newscenefield.$$.fragment); + div = element("div"); + create_component(sortablelist.$$.fragment); + attr(div, "id", "draft-list"); + attr(div, "class", "svelte-1jmafs"); + toggle_class(div, "dragging", /*isSorting*/ ctx[1]); }, m(target, anchor) { - mount_component(scenelist, target, anchor); - insert(target, t, anchor); - mount_component(newscenefield, target, anchor); + insert(target, div, anchor); + mount_component(sortablelist, div, null); current = true; }, + p(ctx, [dirty]) { + const sortablelist_changes = {}; + + if (dirty & /*$$scope, item, editingPath, $currentDraftPath*/ 786444) { + sortablelist_changes.$$scope = { dirty, ctx }; + } + + if (!updating_items && dirty & /*items*/ 1) { + updating_items = true; + sortablelist_changes.items = /*items*/ ctx[0]; + add_flush_callback(() => updating_items = false); + } + + sortablelist.$set(sortablelist_changes); + + if (dirty & /*isSorting*/ 2) { + toggle_class(div, "dragging", /*isSorting*/ ctx[1]); + } + }, i(local) { if (current) return; - transition_in(scenelist.$$.fragment, local); - transition_in(newscenefield.$$.fragment, local); + transition_in(sortablelist.$$.fragment, local); current = true; }, o(local) { - transition_out(scenelist.$$.fragment, local); - transition_out(newscenefield.$$.fragment, local); + transition_out(sortablelist.$$.fragment, local); current = false; }, d(detaching) { - destroy_component(scenelist, detaching); - if (detaching) detach(t); - destroy_component(newscenefield, detaching); + if (detaching) detach(div); + destroy_component(sortablelist); } }; } -// (38:2) -function create_default_slot_3(ctx) { - let if_block_anchor; - let current; - let if_block = /*$currentDraft*/ ctx[0] && create_if_block_1(); +function selectElementContents(el) { + var range = document.createRange(); + range.selectNodeContents(el); + var sel = window.getSelection(); + sel.removeAllRanges(); + sel.addRange(range); +} - return { - c() { - if (if_block) if_block.c(); - if_block_anchor = empty(); - }, - m(target, anchor) { - if (if_block) if_block.m(target, anchor); - insert(target, if_block_anchor, anchor); - current = true; +function instance$5($$self, $$props, $$invalidate) { + let $currentDraftPath; + let $currentProjectPath; + let $projectMetadata; + let $currentProject; + component_subscribe($$self, currentDraftPath, $$value => $$invalidate(3, $currentDraftPath = $$value)); + component_subscribe($$self, currentProjectPath, $$value => $$invalidate(13, $currentProjectPath = $$value)); + component_subscribe($$self, projectMetadata, $$value => $$invalidate(14, $projectMetadata = $$value)); + component_subscribe($$self, currentProject, $$value => $$invalidate(10, $currentProject = $$value)); + let items; + + // Track sort state for styling, set sorting options + let isSorting = false; + + const sortableOptions = { + animation: 150, + ghostClass: "draft-ghost", + onStart: () => { + $$invalidate(1, isSorting = true); }, - p(ctx, dirty) { - if (/*$currentDraft*/ ctx[0]) { - if (if_block) { - if (dirty & /*$currentDraft*/ 1) { - transition_in(if_block, 1); - } - } else { - if_block = create_if_block_1(); - if_block.c(); - transition_in(if_block, 1); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - } else if (if_block) { - group_outros(); + onEnd: () => { + $$invalidate(1, isSorting = false); + } + }; - transition_out(if_block, 1, 1, () => { - if_block = null; - }); + // Called when sorting ends an the item order has been updated. + // Reorder scenes according and set into the store. + function itemOrderChanged(event) { + // Reorder metadata accounts to this new order + const reorderedDrafts = [...$currentProject.drafts].sort((a, b) => { + const aIndex = event.detail.findIndex(d => d.id === a.folder); + const bIndex = event.detail.findIndex(d => d.id === b.folder); + return aIndex - bIndex; + }); - check_outros(); + set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].drafts = reorderedDrafts, $projectMetadata); + } + + function onItemClick(path) { + if (path) { + set_store_value(currentDraftPath, $currentDraftPath = path, $currentDraftPath); + } + } + + let editingPath = null; + const showRenameDraftMenu = getContext("showRenameDraftMenu"); + + function onContext(event) { + const { x, y } = event; + const element = document.elementFromPoint(x, y); + + showRenameDraftMenu(x, y, () => { + if (element && element instanceof HTMLElement) { + const draftPath = element.dataset.draftPath; + $$invalidate(2, editingPath = draftPath); + setTimeout(() => selectElementContents(element), 0); + } + }); + } + + const renameFolder = getContext("renameFolder"); + const makeDraftPath = getContext("makeDraftPath"); + + function onKeydown(event) { + if (editingPath && event.target instanceof HTMLElement) { + if (event.key === "Enter") { + const oldPath = makeDraftPath(editingPath); + const newPath = makeDraftPath(event.target.innerText); + renameFolder(oldPath, newPath); + $$invalidate(2, editingPath = null); + return false; + } else if (event.key === "Escape") { + event.target.blur(); + return false; + } + } + + return true; + } + + function onBlur(event) { + if (event.target instanceof HTMLElement) { + event.target.innerText = editingPath; + } + + $$invalidate(2, editingPath = null); + } + + const click_handler = item => onItemClick(item.id); + + function sortablelist_items_binding(value) { + items = value; + ($$invalidate(0, items), $$invalidate(10, $currentProject)); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*$currentProject*/ 1024) { + { + $$invalidate(0, items = $currentProject + ? $currentProject.drafts.map(d => ({ id: d.folder, name: d.name })) + : []); } - }, - i(local) { - if (current) return; - transition_in(if_block); - current = true; - }, - o(local) { - transition_out(if_block); - current = false; - }, - d(detaching) { - if (if_block) if_block.d(detaching); - if (detaching) detach(if_block_anchor); } }; + + return [ + items, + isSorting, + editingPath, + $currentDraftPath, + sortableOptions, + itemOrderChanged, + onItemClick, + onContext, + onKeydown, + onBlur, + $currentProject, + click_handler, + sortablelist_items_binding + ]; } -// (45:4) {#if $currentProject} -function create_if_block(ctx) { - let draftlist; +class DraftList extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$5, create_fragment$5, safe_not_equal, {}, add_css$4); + } +} + +/* src/view/explorer/NewDraftField.svelte generated by Svelte v3.43.1 */ + +function add_css$3(target) { + append_styles(target, "svelte-1wkli4h", ".new-draft-container.svelte-1wkli4h{margin:0;border-top:1px solid var(--text-muted);padding:4px 0}#new-draft.svelte-1wkli4h{padding:0;border:0;background:inherit;font-size:14px;line-height:20px;width:100%}#new-draft.invalid.svelte-1wkli4h{color:var(--text-error)}#new-draft.svelte-1wkli4h::placeholder{font-style:italic}.draft-description.svelte-1wkli4h{font-size:10px;line-height:12px;color:var(--text-muted)}"); +} + +function get_each_context$1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[16] = list[i]; + return child_ctx; +} + +// (77:2) {#if error} +function create_if_block_3$1(ctx) { + let p; let t; - let newdraftfield; - let current; - draftlist = new DraftList({}); - newdraftfield = new NewDraftField({}); return { c() { - create_component(draftlist.$$.fragment); - t = space(); - create_component(newdraftfield.$$.fragment); + p = element("p"); + t = text(/*error*/ ctx[4]); }, m(target, anchor) { - mount_component(draftlist, target, anchor); - insert(target, t, anchor); - mount_component(newdraftfield, target, anchor); - current = true; - }, - i(local) { - if (current) return; - transition_in(draftlist.$$.fragment, local); - transition_in(newdraftfield.$$.fragment, local); - current = true; + insert(target, p, anchor); + append(p, t); }, - o(local) { - transition_out(draftlist.$$.fragment, local); - transition_out(newdraftfield.$$.fragment, local); - current = false; + p(ctx, dirty) { + if (dirty & /*error*/ 16) set_data(t, /*error*/ ctx[4]); }, d(detaching) { - destroy_component(draftlist, detaching); - if (detaching) detach(t); - destroy_component(newdraftfield, detaching); + if (detaching) detach(p); } }; } -// (44:2) -function create_default_slot_2(ctx) { - let if_block_anchor; - let current; - let if_block = /*$currentProject*/ ctx[1] && create_if_block(); +// (80:2) {#if newDraftName.length > 0} +function create_if_block$3(ctx) { + let select; + let option; + let option_value_value; + let t1; + let p; + let mounted; + let dispose; + let each_value = /*$currentProject*/ ctx[1].drafts; + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$1(get_each_context$1(ctx, each_value, i)); + } + + function select_block_type(ctx, dirty) { + if (/*newDraftName*/ ctx[0] && /*copyFromDraft*/ ctx[3]) return create_if_block_1$2; + if (/*newDraftName*/ ctx[0]) return create_if_block_2$1; + } + + let current_block_type = select_block_type(ctx); + let if_block = current_block_type && current_block_type(ctx); return { c() { + select = element("select"); + option = element("option"); + option.textContent = "Empty Draft"; + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t1 = space(); + p = element("p"); if (if_block) if_block.c(); - if_block_anchor = empty(); + option.__value = option_value_value = null; + option.value = option.__value; + attr(select, "name", "copyFrom"); + if (/*copyFromDraft*/ ctx[3] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[9].call(select)); + attr(p, "class", "draft-description svelte-1wkli4h"); }, m(target, anchor) { - if (if_block) if_block.m(target, anchor); - insert(target, if_block_anchor, anchor); - current = true; + insert(target, select, anchor); + append(select, option); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(select, null); + } + + select_option(select, /*copyFromDraft*/ ctx[3]); + insert(target, t1, anchor); + insert(target, p, anchor); + if (if_block) if_block.m(p, null); + + if (!mounted) { + dispose = listen(select, "change", /*select_change_handler*/ ctx[9]); + mounted = true; + } }, p(ctx, dirty) { - if (/*$currentProject*/ ctx[1]) { - if (if_block) { - if (dirty & /*$currentProject*/ 2) { - transition_in(if_block, 1); + if (dirty & /*$currentProject*/ 2) { + each_value = /*$currentProject*/ ctx[1].drafts; + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$1(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block$1(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(select, null); } - } else { - if_block = create_if_block(); - if_block.c(); - transition_in(if_block, 1); - if_block.m(if_block_anchor.parentNode, if_block_anchor); } - } else if (if_block) { - group_outros(); - transition_out(if_block, 1, 1, () => { - if_block = null; - }); + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } - check_outros(); + each_blocks.length = each_value.length; + } + + if (dirty & /*copyFromDraft, $currentProject*/ 10) { + select_option(select, /*copyFromDraft*/ ctx[3]); + } + + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { + if_block.p(ctx, dirty); + } else { + if (if_block) if_block.d(1); + if_block = current_block_type && current_block_type(ctx); + + if (if_block) { + if_block.c(); + if_block.m(p, null); + } } - }, - i(local) { - if (current) return; - transition_in(if_block); - current = true; - }, - o(local) { - transition_out(if_block); - current = false; }, d(detaching) { - if (if_block) if_block.d(detaching); - if (detaching) detach(if_block_anchor); + if (detaching) detach(select); + destroy_each(each_blocks, detaching); + if (detaching) detach(t1); + if (detaching) detach(p); + + if (if_block) { + if_block.d(); + } + + mounted = false; + dispose(); } }; } -// (50:2) -function create_default_slot_1(ctx) { - let compileview; - let current; - compileview = new CompileView({}); +// (83:6) {#each $currentProject.drafts as draftOption} +function create_each_block$1(ctx) { + let option; + let t_value = `Copy of ${/*draftOption*/ ctx[16].name}` + ""; + let t; + let option_value_value; return { c() { - create_component(compileview.$$.fragment); + option = element("option"); + t = text(t_value); + option.__value = option_value_value = /*draftOption*/ ctx[16].folder; + option.value = option.__value; }, m(target, anchor) { - mount_component(compileview, target, anchor); - current = true; - }, - i(local) { - if (current) return; - transition_in(compileview.$$.fragment, local); - current = true; + insert(target, option, anchor); + append(option, t); }, - o(local) { - transition_out(compileview.$$.fragment, local); - current = false; + p(ctx, dirty) { + if (dirty & /*$currentProject*/ 2 && t_value !== (t_value = `Copy of ${/*draftOption*/ ctx[16].name}` + "")) set_data(t, t_value); + + if (dirty & /*$currentProject*/ 2 && option_value_value !== (option_value_value = /*draftOption*/ ctx[16].folder)) { + option.__value = option_value_value; + option.value = option.__value; + } }, d(detaching) { - destroy_component(compileview, detaching); + if (detaching) detach(option); } }; } -// (32:0) -function create_default_slot(ctx) { - let tablist; +// (92:29) +function create_if_block_2$1(ctx) { let t0; - let tabpanel0; let t1; - let tabpanel1; - let t2; - let tabpanel2; - let current; - - tablist = new TabList({ - props: { - $$slots: { default: [create_default_slot_4] }, - $$scope: { ctx } - } - }); - - tabpanel0 = new TabPanel({ - props: { - $$slots: { default: [create_default_slot_3] }, - $$scope: { ctx } - } - }); - - tabpanel1 = new TabPanel({ - props: { - $$slots: { default: [create_default_slot_2] }, - $$scope: { ctx } - } - }); - - tabpanel2 = new TabPanel({ - props: { - $$slots: { default: [create_default_slot_1] }, - $$scope: { ctx } - } - }); return { c() { - create_component(tablist.$$.fragment); - t0 = space(); - create_component(tabpanel0.$$.fragment); - t1 = space(); - create_component(tabpanel1.$$.fragment); - t2 = space(); - create_component(tabpanel2.$$.fragment); + t0 = text(/*newDraftName*/ ctx[0]); + t1 = text(" will start as an empty folder."); }, m(target, anchor) { - mount_component(tablist, target, anchor); insert(target, t0, anchor); - mount_component(tabpanel0, target, anchor); insert(target, t1, anchor); - mount_component(tabpanel1, target, anchor); - insert(target, t2, anchor); - mount_component(tabpanel2, target, anchor); - current = true; }, p(ctx, dirty) { - const tablist_changes = {}; - - if (dirty & /*$$scope*/ 128) { - tablist_changes.$$scope = { dirty, ctx }; - } - - tablist.$set(tablist_changes); - const tabpanel0_changes = {}; - - if (dirty & /*$$scope, $currentDraft*/ 129) { - tabpanel0_changes.$$scope = { dirty, ctx }; - } - - tabpanel0.$set(tabpanel0_changes); - const tabpanel1_changes = {}; - - if (dirty & /*$$scope, $currentProject*/ 130) { - tabpanel1_changes.$$scope = { dirty, ctx }; - } - - tabpanel1.$set(tabpanel1_changes); - const tabpanel2_changes = {}; + if (dirty & /*newDraftName*/ 1) set_data(t0, /*newDraftName*/ ctx[0]); + }, + d(detaching) { + if (detaching) detach(t0); + if (detaching) detach(t1); + } + }; +} - if (dirty & /*$$scope*/ 128) { - tabpanel2_changes.$$scope = { dirty, ctx }; - } +// (90:6) {#if newDraftName && copyFromDraft} +function create_if_block_1$2(ctx) { + let t0; + let t1; + let t2; + let t3; - tabpanel2.$set(tabpanel2_changes); + return { + c() { + t0 = text(/*newDraftName*/ ctx[0]); + t1 = text(" will start as a copy of "); + t2 = text(/*copyFromDraft*/ ctx[3]); + t3 = text("."); }, - i(local) { - if (current) return; - transition_in(tablist.$$.fragment, local); - transition_in(tabpanel0.$$.fragment, local); - transition_in(tabpanel1.$$.fragment, local); - transition_in(tabpanel2.$$.fragment, local); - current = true; + m(target, anchor) { + insert(target, t0, anchor); + insert(target, t1, anchor); + insert(target, t2, anchor); + insert(target, t3, anchor); }, - o(local) { - transition_out(tablist.$$.fragment, local); - transition_out(tabpanel0.$$.fragment, local); - transition_out(tabpanel1.$$.fragment, local); - transition_out(tabpanel2.$$.fragment, local); - current = false; + p(ctx, dirty) { + if (dirty & /*newDraftName*/ 1) set_data(t0, /*newDraftName*/ ctx[0]); + if (dirty & /*copyFromDraft*/ 8) set_data(t2, /*copyFromDraft*/ ctx[3]); }, d(detaching) { - destroy_component(tablist, detaching); if (detaching) detach(t0); - destroy_component(tabpanel0, detaching); if (detaching) detach(t1); - destroy_component(tabpanel1, detaching); if (detaching) detach(t2); - destroy_component(tabpanel2, detaching); + if (detaching) detach(t3); } }; } -function create_fragment(ctx) { - let projectpicker; - let t; - let tabs; - let current; - projectpicker = new ProjectPicker({}); - - tabs = new Tabs({ - props: { - $$slots: { default: [create_default_slot] }, - $$scope: { ctx } - } - }); +function create_fragment$4(ctx) { + let div; + let input; + let t0; + let t1; + let mounted; + let dispose; + let if_block0 = /*error*/ ctx[4] && create_if_block_3$1(ctx); + let if_block1 = /*newDraftName*/ ctx[0].length > 0 && create_if_block$3(ctx); return { c() { - create_component(projectpicker.$$.fragment); - t = space(); - create_component(tabs.$$.fragment); + div = element("div"); + input = element("input"); + t0 = space(); + if (if_block0) if_block0.c(); + t1 = space(); + if (if_block1) if_block1.c(); + attr(input, "id", "new-draft"); + attr(input, "type", "text"); + attr(input, "placeholder", "New Draft…"); + attr(input, "class", "svelte-1wkli4h"); + toggle_class(input, "invalid", !!/*error*/ ctx[4]); + attr(div, "class", "new-draft-container svelte-1wkli4h"); }, m(target, anchor) { - mount_component(projectpicker, target, anchor); - insert(target, t, anchor); - mount_component(tabs, target, anchor); - current = true; + insert(target, div, anchor); + append(div, input); + set_input_value(input, /*newDraftName*/ ctx[0]); + /*input_binding*/ ctx[7](input); + append(div, t0); + if (if_block0) if_block0.m(div, null); + append(div, t1); + if (if_block1) if_block1.m(div, null); + + if (!mounted) { + dispose = [ + listen(input, "input", /*input_input_handler*/ ctx[6]), + listen(input, "keydown", /*keydown_handler*/ ctx[8]) + ]; + + mounted = true; + } }, p(ctx, [dirty]) { - const tabs_changes = {}; + if (dirty & /*newDraftName*/ 1 && input.value !== /*newDraftName*/ ctx[0]) { + set_input_value(input, /*newDraftName*/ ctx[0]); + } - if (dirty & /*$$scope, $currentProject, $currentDraft*/ 131) { - tabs_changes.$$scope = { dirty, ctx }; + if (dirty & /*error*/ 16) { + toggle_class(input, "invalid", !!/*error*/ ctx[4]); } - tabs.$set(tabs_changes); - }, - i(local) { - if (current) return; - transition_in(projectpicker.$$.fragment, local); - transition_in(tabs.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(projectpicker.$$.fragment, local); - transition_out(tabs.$$.fragment, local); - current = false; + if (/*error*/ ctx[4]) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_3$1(ctx); + if_block0.c(); + if_block0.m(div, t1); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (/*newDraftName*/ ctx[0].length > 0) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block$3(ctx); + if_block1.c(); + if_block1.m(div, null); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } }, + i: noop, + o: noop, d(detaching) { - destroy_component(projectpicker, detaching); - if (detaching) detach(t); - destroy_component(tabs, detaching); + if (detaching) detach(div); + /*input_binding*/ ctx[7](null); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + mounted = false; + run_all(dispose); } }; } -function instance($$self, $$props, $$invalidate) { +function instance$4($$self, $$props, $$invalidate) { let $currentProjectPath; - let $pluginSettings; + let $projectMetadata; let $currentDraftPath; - let $currentDraft; let $currentProject; - component_subscribe($$self, currentProjectPath, $$value => $$invalidate(2, $currentProjectPath = $$value)); - component_subscribe($$self, pluginSettings, $$value => $$invalidate(3, $pluginSettings = $$value)); - component_subscribe($$self, currentDraftPath, $$value => $$invalidate(4, $currentDraftPath = $$value)); - component_subscribe($$self, currentDraft, $$value => $$invalidate(0, $currentDraft = $$value)); + component_subscribe($$self, currentProjectPath, $$value => $$invalidate(10, $currentProjectPath = $$value)); + component_subscribe($$self, projectMetadata, $$value => $$invalidate(11, $projectMetadata = $$value)); + component_subscribe($$self, currentDraftPath, $$value => $$invalidate(12, $currentDraftPath = $$value)); component_subscribe($$self, currentProject, $$value => $$invalidate(1, $currentProject = $$value)); + const makeDraftPath = getContext("makeDraftPath"); + const makeScenePath = getContext("makeScenePath"); + let newDraftName = ""; + let newDraftInput; + let copyFromDraft = null; + let error = null; + const onNewDraft = getContext("onNewDraft"); - function makeDraftPath(name) { - if ($currentProjectPath) { - const draftsFolder = $pluginSettings.projects[$currentProjectPath].draftsPath; - return obsidian.normalizePath(`${$currentProjectPath}/${draftsFolder}/${name}/`); - } + function onNewDraftEnter() { + return __awaiter(this, void 0, void 0, function* () { + if (newDraftName.length > 0 && !error) { + const draftPath = makeDraftPath(newDraftName); - return null; + if (draftPath) { + let copying = []; + let newDraftSceneOrder; + + if (copyFromDraft) { + const sourceDraft = $currentProject.drafts.find(d => d.folder === copyFromDraft); + + if (sourceDraft) { + newDraftSceneOrder = sourceDraft.scenes; + + copying = sourceDraft.scenes.map(s => ({ + from: makeScenePath(s, sourceDraft.folder), + to: makeScenePath(s, newDraftName) + })); + } + } + + yield onNewDraft(draftPath, copying); + set_store_value(currentDraftPath, $currentDraftPath = newDraftName, $currentDraftPath); + + if (copyFromDraft && newDraftSceneOrder) { + const newDraftIndex = $projectMetadata[$currentProjectPath].drafts.findIndex(d => d.folder === newDraftName); + + if (newDraftIndex >= 0) { + const newDraft = $projectMetadata[$currentProjectPath].drafts[newDraftIndex]; + newDraft.scenes = newDraftSceneOrder; + set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].drafts[newDraftIndex] = newDraft, $projectMetadata); + } + } + + $$invalidate(0, newDraftName = ""); + } + } + }); } - setContext("makeDraftPath", makeDraftPath); + function input_input_handler() { + newDraftName = this.value; + $$invalidate(0, newDraftName); + } - // Create a fully-qualified path to a scene from its name. - function makeScenePath(name, draft) { - const draftPath = makeDraftPath(draft || $currentDraftPath); + function input_binding($$value) { + binding_callbacks[$$value ? 'unshift' : 'push'](() => { + newDraftInput = $$value; + $$invalidate(2, newDraftInput); + }); + } - if (draftPath) { - return obsidian.normalizePath(`${draftPath}/${name}.md`); + const keydown_handler = e => { + if (e.key === "Enter") { + onNewDraftEnter(); + } else if (e.key === "Escape") { + $$invalidate(0, newDraftName = ""); + newDraftInput.blur(); + } + }; + + function select_change_handler() { + copyFromDraft = select_value(this); + $$invalidate(3, copyFromDraft); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*newDraftName, $currentProject*/ 3) { + { + if (newDraftName.length === 0) { + $$invalidate(4, error = null); + } else if ($currentProject.drafts.find(d => d.folder === newDraftName)) { + $$invalidate(4, error = "A draft with this name already exists."); + } else if (newDraftName.match(/[\/\\:]/g)) { + $$invalidate(4, error = "A draft name cannot contain the characters: \\ / :"); + } else { + $$invalidate(4, error = null); + } + } } + }; - return null; - } - - setContext("makeScenePath", makeScenePath); - return [$currentDraft, $currentProject]; + return [ + newDraftName, + $currentProject, + newDraftInput, + copyFromDraft, + error, + onNewDraftEnter, + input_input_handler, + input_binding, + keydown_handler, + select_change_handler + ]; } -class ExplorerView extends SvelteComponent { +class NewDraftField extends SvelteComponent { constructor(options) { super(); - init(this, options, instance, create_fragment, safe_not_equal, {}); + init(this, options, instance$4, create_fragment$4, safe_not_equal, {}, add_css$3); } } -const VIEW_TYPE_LONGFORM_EXPLORER = "VIEW_TYPE_LONGFORM_EXPLORER"; -class ExplorerPane extends obsidian.ItemView { - constructor(leaf) { - super(leaf); - } - getViewType() { - return VIEW_TYPE_LONGFORM_EXPLORER; - } - getDisplayText() { - return "Longform"; - } - getIcon() { - return ICON_NAME; - } - onOpen() { - return __awaiter(this, void 0, void 0, function* () { - const context = new Map(); - // Context function for opening scene notes on click - context.set("onSceneClick", (path, newLeaf) => { - this.app.workspace.openLinkText(path, "/", newLeaf); - }); - // Context function for creating new scene notes given a path - context.set("onNewScene", (path) => __awaiter(this, void 0, void 0, function* () { - yield this.app.vault.create(path, ""); - this.app.workspace.openLinkText(path, "/", false); - })); - // Context function for creating new draft folders given a path - context.set("onNewDraft", (path, copying) => __awaiter(this, void 0, void 0, function* () { - if (copying) { - yield this.app.vault.createFolder(path); - // do copy - for (const toCopy of copying) { - yield this.app.vault.adapter.copy(toCopy.from, toCopy.to); - } - } - else { - yield this.app.vault.createFolder(path); - } - })); - // Context function for showing a right-click menu - context.set("onContextClick", (path, x, y) => { - const file = this.app.vault.getAbstractFileByPath(path); - if (!file) { - return; - } - const menu = new obsidian.Menu(this.app); - menu.addItem((item) => { - item.setTitle("Delete"); - item.setIcon("trash"); - item.onClick(() => __awaiter(this, void 0, void 0, function* () { - if (file) { - yield this.app.vault.trash(file, true); - } - })); - }); - menu.addItem((item) => { - item.setTitle("Open in new pane"); - item.setIcon("vertical-split"); - item.onClick(() => this.app.workspace.openLinkText(path, "/", true)); - }); - // Triggering this event lets other apps insert menu items - // including Obsidian, giving us lots of stuff for free. - this.app.workspace.trigger("file-menu", menu, file, "longform"); - menu.showAtPosition({ x, y }); - }); - context.set("showRenameDraftMenu", (x, y, action) => { - const menu = new obsidian.Menu(this.app); - menu.addItem((item) => { - item.setTitle("Rename"); - item.setIcon("pencil"); - item.onClick(action); - }); - menu.showAtPosition({ x, y }); - }); - context.set("renameFolder", (oldPath, newPath) => { - this.app.vault.adapter.rename(oldPath, newPath); - }); - context.set("getVault", () => this.app.vault); - this.explorerView = new ExplorerView({ - target: this.contentEl, - context, - }); - }); - } - onClose() { - return __awaiter(this, void 0, void 0, function* () { - if (this.explorerView) { - this.explorerView.$destroy(); - } - }); - } -} +/* src/view/explorer/NewSceneField.svelte generated by Svelte v3.43.1 */ -class AddProjectModal extends obsidian.Modal { - constructor(app, plugin, path) { - super(app); - this.plugin = plugin; - this.path = path; - } - onOpen() { - const { contentEl } = this; - const title = document.createElement("h1"); - title.setText("Add to Longform"); - contentEl.appendChild(title); - const indexFileField = this.addField(contentEl, "Index File Name", "Index", "Index", "A project’s index file acts as storage for all the metadata necessary to make a Longform project work. You can edit it (it’s Markdown), but Longform will mostly be reading and writing it directly."); - const draftsFolderField = this.addField(contentEl, "Drafts Folder Name", "Drafts/", "Drafts/", "Every folder inside your drafts folder is a single draft of your project. You can name drafts whatever you’d like: Drafts/1/, Drafts/First Draft/, etc. Each draft folder will hold the individual files (scenes) that make up your project. Scenes are ordered manually. Other folders and files in the project are always reachable in the Obsidian file explorer."); - const doAdd = () => __awaiter(this, void 0, void 0, function* () { - const indexFile = indexFileField.getValue(); - const draftsPath = draftsFolderField.getValue(); - yield this.plugin.markPathAsProject(this.path, { - path: this.path, - indexFile, - draftsPath, - }); - this.close(); - }); - const saveButton = new obsidian.ButtonComponent(contentEl) - .setButtonText("Add to Longform") - .onClick(doAdd); - saveButton.buttonEl.id = "longform-add-button"; - indexFileField.inputEl.focus(); - } - onClose() { - const { contentEl } = this; - contentEl.empty(); - } - addField(rootEl, label, placeholder, value = "", description = "") { - const inputId = label.replace(" ", "-").toLowerCase(); - const container = document.createElement("div"); - container.style.display = "flex"; - container.style.flexDirection = "row"; - container.style.justifyContent = "space-between"; - container.style.alignContent = "center"; - rootEl.appendChild(container); - const labelEl = document.createElement("label"); - labelEl.setText(label); - labelEl.htmlFor = inputId; - labelEl.style.display = "flex"; - labelEl.style.alignItems = "center"; - labelEl.style.marginRight = "12px"; - container.appendChild(labelEl); - const field = new obsidian.TextComponent(container).setPlaceholder(placeholder); - field.inputEl.value = value; - field.inputEl.style.flexGrow = "1"; - field.inputEl.id = inputId; - if (description.length > 0) { - const descriptionEl = document.createElement("p"); - descriptionEl.setText(description); - descriptionEl.style.color = "var(--text-muted)"; - rootEl.appendChild(descriptionEl); - } - return field; - } +function add_css$2(target) { + append_styles(target, "svelte-1lq63fp", ".new-scene-container.svelte-1lq63fp{margin:0;border-top:1px solid var(--text-muted);padding:4px 0}#new-scene.svelte-1lq63fp{padding:0;border:0;background:inherit;font-size:14px;line-height:20px;width:100%}#new-scene.invalid.svelte-1lq63fp{color:var(--text-error)}#new-scene.svelte-1lq63fp::placeholder{font-style:italic}"); } -const WARNING = ` -This file is managed by Longform. Please avoid editing it directly; doing so will almost certainly confuse the plugin, and may cause a loss of data. +// (50:2) {#if error} +function create_if_block$2(ctx) { + let p; + let t; -Longform uses this file to organize your folders and notes into a project. For more details, please see [The Index File](https://github.com/kevboh/longform#the-index-file) section of the plugin’s README. -`; -const EmptyIndexFileMetadata = { - version: LONGFORM_CURRENT_INDEX_VERSION, - drafts: [ - { - name: "Draft 1", - folder: "Draft 1", - scenes: [], - }, - ], -}; -function indexBodyFor(state) { - const body = obsidian.stringifyYaml(state); - return `---\n${body}---\n\n${WARNING}\n`; -} -function buildDraftsLookup(drafts) { - return drafts.reduce((agg, d) => { - agg[d.folder] = d; - return agg; - }, {}); + return { + c() { + p = element("p"); + t = text(/*error*/ ctx[2]); + }, + m(target, anchor) { + insert(target, p, anchor); + append(p, t); + }, + p(ctx, dirty) { + if (dirty & /*error*/ 4) set_data(t, /*error*/ ctx[2]); + }, + d(detaching) { + if (detaching) detach(p); + } + }; } -function addProject(path, project, settings) { - return Object.assign(Object.assign({}, settings), { projects: Object.assign(Object.assign({}, settings.projects), { [path]: project }) }); -} -function removeProject(path, settings) { - const newSettings = settings; - delete newSettings.projects[path]; - return newSettings; -} -function isLongformProject(path, settings) { - return !!settings.projects[path]; -} -function isInLongformProject(path, settings) { - return !!Object.keys(settings.projects).find((p) => path.startsWith(p)); -} -function indexFilePath(project) { - return obsidian.normalizePath(`${project.path}/${project.indexFile}.md`); -} +function create_fragment$3(ctx) { + let div; + let input; + let t; + let mounted; + let dispose; + let if_block = /*error*/ ctx[2] && create_if_block$2(ctx); -/** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; - this.size = 0; -} + return { + c() { + div = element("div"); + input = element("input"); + t = space(); + if (if_block) if_block.c(); + attr(input, "id", "new-scene"); + attr(input, "type", "text"); + attr(input, "placeholder", "New Scene…"); + attr(input, "class", "svelte-1lq63fp"); + toggle_class(input, "invalid", !!/*error*/ ctx[2]); + attr(div, "class", "new-scene-container svelte-1lq63fp"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, input); + set_input_value(input, /*newSceneName*/ ctx[0]); + /*input_binding*/ ctx[6](input); + append(div, t); + if (if_block) if_block.m(div, null); -var _listCacheClear = listCacheClear; + if (!mounted) { + dispose = [ + listen(input, "input", /*input_input_handler*/ ctx[5]), + listen(input, "keydown", /*keydown_handler*/ ctx[7]) + ]; -/** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ -function eq(value, other) { - return value === other || (value !== value && other !== other); -} + mounted = true; + } + }, + p(ctx, [dirty]) { + if (dirty & /*newSceneName*/ 1 && input.value !== /*newSceneName*/ ctx[0]) { + set_input_value(input, /*newSceneName*/ ctx[0]); + } -var eq_1 = eq; + if (dirty & /*error*/ 4) { + toggle_class(input, "invalid", !!/*error*/ ctx[2]); + } -/** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq_1(array[length][0], key)) { - return length; - } - } - return -1; + if (/*error*/ ctx[2]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$2(ctx); + if_block.c(); + if_block.m(div, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(div); + /*input_binding*/ ctx[6](null); + if (if_block) if_block.d(); + mounted = false; + run_all(dispose); + } + }; } -var _assocIndexOf = assocIndexOf; +function instance$3($$self, $$props, $$invalidate) { + let $currentDraft; + component_subscribe($$self, currentDraft, $$value => $$invalidate(4, $currentDraft = $$value)); + let newSceneName = ""; + let newSceneInput; + let error = null; + const makeScenePath = getContext("makeScenePath"); + const onNewScene = getContext("onNewScene"); -/** Used for built-in method references. */ -var arrayProto = Array.prototype; + function onNewSceneEnter() { + if (newSceneName.length > 0 && !error) { + const scenePath = makeScenePath(newSceneName); -/** Built-in value references. */ -var splice = arrayProto.splice; + if (scenePath) { + onNewScene(scenePath); + $$invalidate(0, newSceneName = ""); + } + } + } -/** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function listCacheDelete(key) { - var data = this.__data__, - index = _assocIndexOf(data, key); + function input_input_handler() { + newSceneName = this.value; + $$invalidate(0, newSceneName); + } - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; -} + function input_binding($$value) { + binding_callbacks[$$value ? 'unshift' : 'push'](() => { + newSceneInput = $$value; + $$invalidate(1, newSceneInput); + }); + } -var _listCacheDelete = listCacheDelete; + const keydown_handler = e => { + if (e.key === "Enter") { + onNewSceneEnter(); + } else if (e.key === "Escape") { + $$invalidate(0, newSceneName = ""); + newSceneInput.blur(); + } + }; -/** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function listCacheGet(key) { - var data = this.__data__, - index = _assocIndexOf(data, key); + $$self.$$.update = () => { + if ($$self.$$.dirty & /*newSceneName, $currentDraft*/ 17) { + { + if (newSceneName.length === 0) { + $$invalidate(2, error = null); + } else if ($currentDraft.scenes.contains(newSceneName)) { + $$invalidate(2, error = "A scene with this name already exists in this draft."); + } else if (newSceneName.match(/[\/\\:]/g)) { + $$invalidate(2, error = "A scene name cannot contain the characters: \\ / :"); + } else { + $$invalidate(2, error = null); + } + } + } + }; - return index < 0 ? undefined : data[index][1]; + return [ + newSceneName, + newSceneInput, + error, + onNewSceneEnter, + $currentDraft, + input_input_handler, + input_binding, + keydown_handler + ]; } -var _listCacheGet = listCacheGet; - -/** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function listCacheHas(key) { - return _assocIndexOf(this.__data__, key) > -1; +class NewSceneField extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$3, create_fragment$3, safe_not_equal, {}, add_css$2); + } } -var _listCacheHas = listCacheHas; +/* src/view/explorer/ProjectPicker.svelte generated by Svelte v3.43.1 */ -/** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ -function listCacheSet(key, value) { - var data = this.__data__, - index = _assocIndexOf(data, key); +function add_css$1(target) { + append_styles(target, "svelte-23avsr", "#project-picker-container.svelte-23avsr.svelte-23avsr{margin-bottom:8px}select.svelte-23avsr.svelte-23avsr{background-color:transparent;border:none;padding:0;margin:0;width:100%;font-family:inherit;font-size:inherit;cursor:inherit;line-height:inherit;outline:none}.select.svelte-23avsr.svelte-23avsr{cursor:pointer}.select.svelte-23avsr>select.svelte-23avsr{color:var(--text-accent)}.select.svelte-23avsr>select.svelte-23avsr:hover{text-decoration:underline;color:var(--text-accent-hover)}#project-picker.svelte-23avsr.svelte-23avsr{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}.right-arrow.svelte-23avsr.svelte-23avsr{display:grid}.right-arrow.svelte-23avsr.svelte-23avsr::after{content:\"\";width:0.8em;height:0.5em;background-color:var(--text-muted);clip-path:polygon(50% 0%, 50% 100%, 100% 50%)}.current-draft-path.svelte-23avsr.svelte-23avsr{color:var(--text-muted);font-size:10px;padding:0 8px;line-height:12px}.project-error.svelte-23avsr.svelte-23avsr{color:var(--text-error);font-size:12px;line-height:14px}"); +} - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; +function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[8] = list[i]; + return child_ctx; +} + +function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[11] = list[i]; + return child_ctx; } -var _listCacheSet = listCacheSet; - -/** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; +// (54:2) {:else} +function create_else_block(ctx) { + let p; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } + return { + c() { + p = element("p"); + p.textContent = "To use Longform, start by marking a folder as a Longform project by\n right-clicking it and selecting \"Mark as Longform project.\""; + }, + m(target, anchor) { + insert(target, p, anchor); + }, + p: noop, + d(detaching) { + if (detaching) detach(p); + } + }; } -// Add methods to `ListCache`. -ListCache.prototype.clear = _listCacheClear; -ListCache.prototype['delete'] = _listCacheDelete; -ListCache.prototype.get = _listCacheGet; -ListCache.prototype.has = _listCacheHas; -ListCache.prototype.set = _listCacheSet; +// (27:2) {#if projectOptions.length > 0} +function create_if_block_1$1(ctx) { + let div1; + let div0; + let select; + let t0; + let t1; + let if_block1_anchor; + let mounted; + let dispose; + let each_value_1 = /*projectOptions*/ ctx[2]; + let each_blocks = []; -var _ListCache = ListCache; + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } -/** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ -function stackClear() { - this.__data__ = new _ListCache; - this.size = 0; -} + let if_block0 = /*$currentDraftPath*/ ctx[0] && /*$currentProject*/ ctx[1] && /*$currentProject*/ ctx[1].drafts && create_if_block_3(ctx); + let if_block1 = /*$currentDraftPath*/ ctx[0] && create_if_block_2(ctx); -var _stackClear = stackClear; + return { + c() { + div1 = element("div"); + div0 = element("div"); + select = element("select"); -/** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } - this.size = data.size; - return result; -} + t0 = space(); + if (if_block0) if_block0.c(); + t1 = space(); + if (if_block1) if_block1.c(); + if_block1_anchor = empty(); + attr(select, "name", "projects"); + attr(select, "class", "svelte-23avsr"); + if (/*$currentProjectPath*/ ctx[3] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[6].call(select)); + attr(div0, "class", "select svelte-23avsr"); + attr(div0, "id", "select-projects"); + attr(div1, "id", "project-picker"); + attr(div1, "class", "svelte-23avsr"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append(div1, div0); + append(div0, select); -var _stackDelete = stackDelete; + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(select, null); + } -/** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function stackGet(key) { - return this.__data__.get(key); -} + select_option(select, /*$currentProjectPath*/ ctx[3]); + append(div1, t0); + if (if_block0) if_block0.m(div1, null); + insert(target, t1, anchor); + if (if_block1) if_block1.m(target, anchor); + insert(target, if_block1_anchor, anchor); -var _stackGet = stackGet; + if (!mounted) { + dispose = listen(select, "change", /*select_change_handler*/ ctx[6]); + mounted = true; + } + }, + p(ctx, dirty) { + if (dirty & /*projectOptions*/ 4) { + each_value_1 = /*projectOptions*/ ctx[2]; + let i; -/** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function stackHas(key) { - return this.__data__.has(key); -} + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx, each_value_1, i); -var _stackHas = stackHas; + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(select, null); + } + } -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } -function createCommonjsModule(fn) { - var module = { exports: {} }; - return fn(module, module.exports), module.exports; -} + each_blocks.length = each_value_1.length; + } -/** Detect free variable `global` from Node.js. */ + if (dirty & /*$currentProjectPath, projectOptions*/ 12) { + select_option(select, /*$currentProjectPath*/ ctx[3]); + } -var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; + if (/*$currentDraftPath*/ ctx[0] && /*$currentProject*/ ctx[1] && /*$currentProject*/ ctx[1].drafts) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_3(ctx); + if_block0.c(); + if_block0.m(div1, null); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } -var _freeGlobal = freeGlobal; + if (/*$currentDraftPath*/ ctx[0]) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block_2(ctx); + if_block1.c(); + if_block1.m(if_block1_anchor.parentNode, if_block1_anchor); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + }, + d(detaching) { + if (detaching) detach(div1); + destroy_each(each_blocks, detaching); + if (if_block0) if_block0.d(); + if (detaching) detach(t1); + if (if_block1) if_block1.d(detaching); + if (detaching) detach(if_block1_anchor); + mounted = false; + dispose(); + } + }; +} -/** Detect free variable `self`. */ -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +// (31:10) {#each projectOptions as projectOption} +function create_each_block_1(ctx) { + let option; + let t_value = /*projectOption*/ ctx[11].name + ""; + let t; + let option_value_value; -/** Used as a reference to the global object. */ -var root = _freeGlobal || freeSelf || Function('return this')(); + return { + c() { + option = element("option"); + t = text(t_value); + attr(option, "class", "projectOption"); + option.__value = option_value_value = /*projectOption*/ ctx[11].path; + option.value = option.__value; + }, + m(target, anchor) { + insert(target, option, anchor); + append(option, t); + }, + p(ctx, dirty) { + if (dirty & /*projectOptions*/ 4 && t_value !== (t_value = /*projectOption*/ ctx[11].name + "")) set_data(t, t_value); -var _root = root; + if (dirty & /*projectOptions*/ 4 && option_value_value !== (option_value_value = /*projectOption*/ ctx[11].path)) { + option.__value = option_value_value; + option.value = option.__value; + } + }, + d(detaching) { + if (detaching) detach(option); + } + }; +} -/** Built-in value references. */ -var Symbol$1 = _root.Symbol; +// (38:6) {#if $currentDraftPath && $currentProject && $currentProject.drafts} +function create_if_block_3(ctx) { + let span; + let t; + let div; + let select; + let mounted; + let dispose; + let each_value = /*$currentProject*/ ctx[1].drafts; + let each_blocks = []; -var _Symbol = Symbol$1; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } -/** Used for built-in method references. */ -var objectProto$e = Object.prototype; + return { + c() { + span = element("span"); + t = space(); + div = element("div"); + select = element("select"); -/** Used to check objects for own properties. */ -var hasOwnProperty$b = objectProto$e.hasOwnProperty; + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString$1 = objectProto$e.toString; + attr(span, "class", "right-arrow svelte-23avsr"); + attr(select, "name", "drafts"); + attr(select, "class", "svelte-23avsr"); + if (/*$currentDraftPath*/ ctx[0] === void 0) add_render_callback(() => /*select_change_handler_1*/ ctx[7].call(select)); + attr(div, "class", "select svelte-23avsr"); + attr(div, "id", "select-drafts"); + }, + m(target, anchor) { + insert(target, span, anchor); + insert(target, t, anchor); + insert(target, div, anchor); + append(div, select); -/** Built-in value references. */ -var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined; + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(select, null); + } -/** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ -function getRawTag(value) { - var isOwn = hasOwnProperty$b.call(value, symToStringTag$1), - tag = value[symToStringTag$1]; + select_option(select, /*$currentDraftPath*/ ctx[0]); - try { - value[symToStringTag$1] = undefined; - var unmasked = true; - } catch (e) {} + if (!mounted) { + dispose = listen(select, "change", /*select_change_handler_1*/ ctx[7]); + mounted = true; + } + }, + p(ctx, dirty) { + if (dirty & /*$currentProject*/ 2) { + each_value = /*$currentProject*/ ctx[1].drafts; + let i; - var result = nativeObjectToString$1.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag$1] = tag; - } else { - delete value[symToStringTag$1]; - } - } - return result; -} + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx, each_value, i); -var _getRawTag = getRawTag; + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(select, null); + } + } -/** Used for built-in method references. */ -var objectProto$d = Object.prototype; + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var nativeObjectToString = objectProto$d.toString; + each_blocks.length = each_value.length; + } -/** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ -function objectToString(value) { - return nativeObjectToString.call(value); + if (dirty & /*$currentDraftPath, $currentProject*/ 3) { + select_option(select, /*$currentDraftPath*/ ctx[0]); + } + }, + d(detaching) { + if (detaching) detach(span); + if (detaching) detach(t); + if (detaching) detach(div); + destroy_each(each_blocks, detaching); + mounted = false; + dispose(); + } + }; } -var _objectToString = objectToString; - -/** `Object#toString` result references. */ -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; +// (42:12) {#each $currentProject.drafts as draftOption} +function create_each_block(ctx) { + let option; + let t_value = /*draftOption*/ ctx[8].name + ""; + let t; + let option_value_value; -/** Built-in value references. */ -var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; + return { + c() { + option = element("option"); + t = text(t_value); + option.__value = option_value_value = /*draftOption*/ ctx[8].folder; + option.value = option.__value; + }, + m(target, anchor) { + insert(target, option, anchor); + append(option, t); + }, + p(ctx, dirty) { + if (dirty & /*$currentProject*/ 2 && t_value !== (t_value = /*draftOption*/ ctx[8].name + "")) set_data(t, t_value); -/** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? _getRawTag(value) - : _objectToString(value); + if (dirty & /*$currentProject*/ 2 && option_value_value !== (option_value_value = /*draftOption*/ ctx[8].folder)) { + option.__value = option_value_value; + option.value = option.__value; + } + }, + d(detaching) { + if (detaching) detach(option); + } + }; } -var _baseGetTag = baseGetTag; +// (49:4) {#if $currentDraftPath} +function create_if_block_2(ctx) { + let div; + let t_value = obsidian.normalizePath(`${/*$currentProjectPath*/ ctx[3]}/${/*$currentDraftPath*/ ctx[0]}`) + ""; + let t; -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); + return { + c() { + div = element("div"); + t = text(t_value); + attr(div, "class", "current-draft-path svelte-23avsr"); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t); + }, + p(ctx, dirty) { + if (dirty & /*$currentProjectPath, $currentDraftPath*/ 9 && t_value !== (t_value = obsidian.normalizePath(`${/*$currentProjectPath*/ ctx[3]}/${/*$currentDraftPath*/ ctx[0]}`) + "")) set_data(t, t_value); + }, + d(detaching) { + if (detaching) detach(div); + } + }; } -var isObject_1 = isObject; - -/** `Object#toString` result references. */ -var asyncTag = '[object AsyncFunction]', - funcTag$2 = '[object Function]', - genTag$1 = '[object GeneratorFunction]', - proxyTag = '[object Proxy]'; +// (60:2) {#if $currentProject && $currentProject.error} +function create_if_block$1(ctx) { + let p; + let t_value = /*$currentProject*/ ctx[1].error + ""; + let t; -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - if (!isObject_1(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = _baseGetTag(value); - return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag; + return { + c() { + p = element("p"); + t = text(t_value); + attr(p, "class", "project-error svelte-23avsr"); + }, + m(target, anchor) { + insert(target, p, anchor); + append(p, t); + }, + p(ctx, dirty) { + if (dirty & /*$currentProject*/ 2 && t_value !== (t_value = /*$currentProject*/ ctx[1].error + "")) set_data(t, t_value); + }, + d(detaching) { + if (detaching) detach(p); + } + }; } -var isFunction_1 = isFunction; - -/** Used to detect overreaching core-js shims. */ -var coreJsData = _root['__core-js_shared__']; - -var _coreJsData = coreJsData; - -/** Used to detect methods masquerading as native. */ -var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; -}()); +function create_fragment$2(ctx) { + let div; + let t; -/** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ -function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); -} + function select_block_type(ctx, dirty) { + if (/*projectOptions*/ ctx[2].length > 0) return create_if_block_1$1; + return create_else_block; + } -var _isMasked = isMasked; + let current_block_type = select_block_type(ctx); + let if_block0 = current_block_type(ctx); + let if_block1 = /*$currentProject*/ ctx[1] && /*$currentProject*/ ctx[1].error && create_if_block$1(ctx); -/** Used for built-in method references. */ -var funcProto$1 = Function.prototype; + return { + c() { + div = element("div"); + if_block0.c(); + t = space(); + if (if_block1) if_block1.c(); + attr(div, "id", "project-picker-container"); + attr(div, "class", "svelte-23avsr"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_block0.m(div, null); + append(div, t); + if (if_block1) if_block1.m(div, null); + }, + p(ctx, [dirty]) { + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0.d(1); + if_block0 = current_block_type(ctx); -/** Used to resolve the decompiled source of functions. */ -var funcToString$1 = funcProto$1.toString; + if (if_block0) { + if_block0.c(); + if_block0.m(div, t); + } + } -/** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ -function toSource(func) { - if (func != null) { - try { - return funcToString$1.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; + if (/*$currentProject*/ ctx[1] && /*$currentProject*/ ctx[1].error) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block$1(ctx); + if_block1.c(); + if_block1.m(div, null); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) detach(div); + if_block0.d(); + if (if_block1) if_block1.d(); + } + }; } -var _toSource = toSource; - -/** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +function instance$2($$self, $$props, $$invalidate) { + let $currentDraftPath; + let $currentProject; + let $initialized; + let $projects; + let $currentProjectPath; + component_subscribe($$self, currentDraftPath, $$value => $$invalidate(0, $currentDraftPath = $$value)); + component_subscribe($$self, currentProject, $$value => $$invalidate(1, $currentProject = $$value)); + component_subscribe($$self, initialized, $$value => $$invalidate(4, $initialized = $$value)); + component_subscribe($$self, projects, $$value => $$invalidate(5, $projects = $$value)); + component_subscribe($$self, currentProjectPath, $$value => $$invalidate(3, $currentProjectPath = $$value)); + let projectOptions = []; -/** Used to detect host constructors (Safari). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; + function select_change_handler() { + $currentProjectPath = select_value(this); + currentProjectPath.set($currentProjectPath); + ($$invalidate(2, projectOptions), $$invalidate(5, $projects)); + } -/** Used for built-in method references. */ -var funcProto = Function.prototype, - objectProto$c = Object.prototype; + function select_change_handler_1() { + $currentDraftPath = select_value(this); + currentDraftPath.set($currentDraftPath); + } -/** Used to resolve the decompiled source of functions. */ -var funcToString = funcProto.toString; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*$projects*/ 32) { + { + $$invalidate(2, projectOptions = Object.keys($projects).map(path => ({ name: path.split("/").slice(-1)[0], path }))); + } + } -/** Used to check objects for own properties. */ -var hasOwnProperty$a = objectProto$c.hasOwnProperty; + if ($$self.$$.dirty & /*$initialized, $currentProject, $currentDraftPath*/ 19) { + // Recover if you've changed projects and there's no matching draft folder + // by setting the current draft to the last one in the project. + if ($initialized && $currentProject && !$currentProject.drafts.find(d => d.folder === $currentDraftPath)) { + const drafts = $currentProject.drafts; -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty$a).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); + if (drafts.length > 0) { + set_store_value(currentDraftPath, $currentDraftPath = drafts[drafts.length - 1].folder, $currentDraftPath); + } else { + set_store_value(currentDraftPath, $currentDraftPath = null, $currentDraftPath); + } + } + } + }; -/** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ -function baseIsNative(value) { - if (!isObject_1(value) || _isMasked(value)) { - return false; - } - var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; - return pattern.test(_toSource(value)); + return [ + $currentDraftPath, + $currentProject, + projectOptions, + $currentProjectPath, + $initialized, + $projects, + select_change_handler, + select_change_handler_1 + ]; } -var _baseIsNative = baseIsNative; - -/** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ -function getValue(object, key) { - return object == null ? undefined : object[key]; +class ProjectPicker extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$2, create_fragment$2, safe_not_equal, {}, add_css$1); + } } -var _getValue = getValue; +/* src/view/explorer/SceneList.svelte generated by Svelte v3.43.1 */ -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = _getValue(object, key); - return _baseIsNative(value) ? value : undefined; +function add_css(target) { + append_styles(target, "svelte-1wlkmbt", "#scene-list.svelte-1wlkmbt.svelte-1wlkmbt{margin:4px 0px}#scene-list.svelte-1wlkmbt .sortable-scene-list{list-style-type:none;padding:0px;margin:0px}.scene-container.svelte-1wlkmbt.svelte-1wlkmbt{display:flex;border:1px solid transparent;border-radius:3px;cursor:pointer;color:var(--text-muted);font-size:14px;line-height:20px;white-space:nowrap;padding:2px 0px}.selected.svelte-1wlkmbt.svelte-1wlkmbt,.svelte-1wlkmbt:not(.dragging) .scene-container.svelte-1wlkmbt:hover{background-color:var(--background-secondary-alt);color:var(--text-normal)}.scene-container.svelte-1wlkmbt.svelte-1wlkmbt:active{background-color:inherit;color:var(--text-muted)}.scene-ghost{background-color:var(--interactive-accent-hover);color:var(--text-on-accent)}"); } -var _getNative = getNative; - -/* Built-in method references that are verified to be native. */ -var Map$1 = _getNative(_root, 'Map'); +// (56:2) +function create_default_slot$1(ctx) { + let div; + let t_value = /*item*/ ctx[16].name + ""; + let t; + let div_data_scene_path_value; + let mounted; + let dispose; -var _Map = Map$1; + function click_handler(...args) { + return /*click_handler*/ ctx[8](/*item*/ ctx[16], ...args); + } -/* Built-in method references that are verified to be native. */ -var nativeCreate = _getNative(Object, 'create'); + return { + c() { + div = element("div"); + t = text(t_value); + attr(div, "class", "scene-container svelte-1wlkmbt"); + attr(div, "data-scene-path", div_data_scene_path_value = /*item*/ ctx[16].path); + toggle_class(div, "selected", /*$activeFile*/ ctx[2] && /*$activeFile*/ ctx[2].path === /*item*/ ctx[16].path); + }, + m(target, anchor) { + insert(target, div, anchor); + append(div, t); -var _nativeCreate = nativeCreate; + if (!mounted) { + dispose = [ + listen(div, "click", click_handler), + listen(div, "contextmenu", prevent_default(/*onContext*/ ctx[6])) + ]; -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ -function hashClear() { - this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; - this.size = 0; -} + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (dirty & /*item*/ 65536 && t_value !== (t_value = /*item*/ ctx[16].name + "")) set_data(t, t_value); -var _hashClear = hashClear; + if (dirty & /*item*/ 65536 && div_data_scene_path_value !== (div_data_scene_path_value = /*item*/ ctx[16].path)) { + attr(div, "data-scene-path", div_data_scene_path_value); + } -/** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; + if (dirty & /*$activeFile, item*/ 65540) { + toggle_class(div, "selected", /*$activeFile*/ ctx[2] && /*$activeFile*/ ctx[2].path === /*item*/ ctx[16].path); + } + }, + d(detaching) { + if (detaching) detach(div); + mounted = false; + run_all(dispose); + } + }; } -var _hashDelete = hashDelete; +function create_fragment$1(ctx) { + let div; + let sortablelist; + let updating_items; + let current; -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; + function sortablelist_items_binding(value) { + /*sortablelist_items_binding*/ ctx[9](value); + } -/** Used for built-in method references. */ -var objectProto$b = Object.prototype; + let sortablelist_props = { + sortableOptions: /*sortableOptions*/ ctx[3], + class: "sortable-scene-list", + $$slots: { + default: [ + create_default_slot$1, + ({ item }) => ({ 16: item }), + ({ item }) => item ? 65536 : 0 + ] + }, + $$scope: { ctx } + }; -/** Used to check objects for own properties. */ -var hasOwnProperty$9 = objectProto$b.hasOwnProperty; + if (/*items*/ ctx[0] !== void 0) { + sortablelist_props.items = /*items*/ ctx[0]; + } -/** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function hashGet(key) { - var data = this.__data__; - if (_nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED$2 ? undefined : result; - } - return hasOwnProperty$9.call(data, key) ? data[key] : undefined; -} + sortablelist = new SortableList({ props: sortablelist_props }); + binding_callbacks.push(() => bind(sortablelist, 'items', sortablelist_items_binding)); + sortablelist.$on("orderChanged", /*itemOrderChanged*/ ctx[4]); -var _hashGet = hashGet; + return { + c() { + div = element("div"); + create_component(sortablelist.$$.fragment); + attr(div, "id", "scene-list"); + attr(div, "class", "svelte-1wlkmbt"); + toggle_class(div, "dragging", /*isSorting*/ ctx[1]); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(sortablelist, div, null); + current = true; + }, + p(ctx, [dirty]) { + const sortablelist_changes = {}; -/** Used for built-in method references. */ -var objectProto$a = Object.prototype; + if (dirty & /*$$scope, item, $activeFile*/ 196612) { + sortablelist_changes.$$scope = { dirty, ctx }; + } -/** Used to check objects for own properties. */ -var hasOwnProperty$8 = objectProto$a.hasOwnProperty; + if (!updating_items && dirty & /*items*/ 1) { + updating_items = true; + sortablelist_changes.items = /*items*/ ctx[0]; + add_flush_callback(() => updating_items = false); + } -/** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function hashHas(key) { - var data = this.__data__; - return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$8.call(data, key); + sortablelist.$set(sortablelist_changes); + + if (dirty & /*isSorting*/ 2) { + toggle_class(div, "dragging", /*isSorting*/ ctx[1]); + } + }, + i(local) { + if (current) return; + transition_in(sortablelist.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(sortablelist.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) detach(div); + destroy_component(sortablelist); + } + }; } -var _hashHas = hashHas; +function instance$1($$self, $$props, $$invalidate) { + let $currentProjectPath; + let $projectMetadata; + let $currentDraftPath; + let $currentDraft; + let $activeFile; + component_subscribe($$self, currentProjectPath, $$value => $$invalidate(10, $currentProjectPath = $$value)); + component_subscribe($$self, projectMetadata, $$value => $$invalidate(11, $projectMetadata = $$value)); + component_subscribe($$self, currentDraftPath, $$value => $$invalidate(12, $currentDraftPath = $$value)); + component_subscribe($$self, currentDraft, $$value => $$invalidate(7, $currentDraft = $$value)); + component_subscribe($$self, activeFile, $$value => $$invalidate(2, $activeFile = $$value)); + const makeScenePath = getContext("makeScenePath"); + let items; -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; + // Track sort state for styling, set sorting options + let isSorting = false; -/** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ -function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED$1 : value; - return this; -} + const sortableOptions = { + animation: 150, + ghostClass: "scene-ghost", + onStart: () => { + $$invalidate(1, isSorting = true); + }, + onEnd: () => { + $$invalidate(1, isSorting = false); + } + }; -var _hashSet = hashSet; + // Called when sorting ends an the item order has been updated. + // Reorder scenes according and set into the store. + function itemOrderChanged(event) { + const currentDraftIndex = $projectMetadata[$currentProjectPath].drafts.findIndex(d => d.folder === $currentDraftPath); + set_store_value(projectMetadata, $projectMetadata[$currentProjectPath].drafts[currentDraftIndex].scenes = event.detail.map(d => d.name), $projectMetadata); + } -/** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; + // Grab the click context function and call it when a valid scene is clicked. + const onSceneClick = getContext("onSceneClick"); - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} + function onItemClick(path, event) { + if (path) { + onSceneClick(path, event.metaKey); + } + } -// Add methods to `Hash`. -Hash.prototype.clear = _hashClear; -Hash.prototype['delete'] = _hashDelete; -Hash.prototype.get = _hashGet; -Hash.prototype.has = _hashHas; -Hash.prototype.set = _hashSet; + // Grab the right-click context function and call it if the right-click + // happened on a scene element with a valid path. + const onContextClick = getContext("onContextClick"); -var _Hash = Hash; + function onContext(event) { + const { x, y } = event; + const element = document.elementFromPoint(x, y); + const scenePath = element && element instanceof HTMLElement && element.dataset.scenePath; -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ -function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new _Hash, - 'map': new (_Map || _ListCache), - 'string': new _Hash - }; -} + if (scenePath) { + onContextClick(scenePath, x, y); + } + } -var _mapCacheClear = mapCacheClear; + const click_handler = (item, e) => typeof item.path === "string" + ? onItemClick(item.path, e) + : {}; + + function sortablelist_items_binding(value) { + items = value; + ($$invalidate(0, items), $$invalidate(7, $currentDraft)); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*$currentDraft*/ 128) { + { + $$invalidate(0, items = $currentDraft + ? $currentDraft.scenes.map(s => ({ id: s, name: s, path: makeScenePath(s) })) + : []); + } + } + }; -/** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ -function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); + return [ + items, + isSorting, + $activeFile, + sortableOptions, + itemOrderChanged, + onItemClick, + onContext, + $currentDraft, + click_handler, + sortablelist_items_binding + ]; } -var _isKeyable = isKeyable; - -/** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ -function getMapData(map, key) { - var data = map.__data__; - return _isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; +class SceneList extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance$1, create_fragment$1, safe_not_equal, {}, add_css); + } } -var _getMapData = getMapData; +/* src/view/explorer/ExplorerView.svelte generated by Svelte v3.43.1 */ -/** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ -function mapCacheDelete(key) { - var result = _getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; +function create_default_slot_7(ctx) { + let t; + + return { + c() { + t = text("Scenes"); + }, + m(target, anchor) { + insert(target, t, anchor); + }, + d(detaching) { + if (detaching) detach(t); + } + }; } -var _mapCacheDelete = mapCacheDelete; +// (35:4) +function create_default_slot_6(ctx) { + let t; -/** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function mapCacheGet(key) { - return _getMapData(this, key).get(key); + return { + c() { + t = text("Drafts"); + }, + m(target, anchor) { + insert(target, t, anchor); + }, + d(detaching) { + if (detaching) detach(t); + } + }; } -var _mapCacheGet = mapCacheGet; +// (36:4) +function create_default_slot_5(ctx) { + let t; -/** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function mapCacheHas(key) { - return _getMapData(this, key).has(key); + return { + c() { + t = text("Compile"); + }, + m(target, anchor) { + insert(target, t, anchor); + }, + d(detaching) { + if (detaching) detach(t); + } + }; } -var _mapCacheHas = mapCacheHas; +// (33:2) +function create_default_slot_4(ctx) { + let tab0; + let t0; + let tab1; + let t1; + let tab2; + let current; -/** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ -function mapCacheSet(key, value) { - var data = _getMapData(this, key), - size = data.size; + tab0 = new Tab({ + props: { + $$slots: { default: [create_default_slot_7] }, + $$scope: { ctx } + } + }); - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; -} + tab1 = new Tab({ + props: { + $$slots: { default: [create_default_slot_6] }, + $$scope: { ctx } + } + }); -var _mapCacheSet = mapCacheSet; + tab2 = new Tab({ + props: { + $$slots: { default: [create_default_slot_5] }, + $$scope: { ctx } + } + }); -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; + return { + c() { + create_component(tab0.$$.fragment); + t0 = space(); + create_component(tab1.$$.fragment); + t1 = space(); + create_component(tab2.$$.fragment); + }, + m(target, anchor) { + mount_component(tab0, target, anchor); + insert(target, t0, anchor); + mount_component(tab1, target, anchor); + insert(target, t1, anchor); + mount_component(tab2, target, anchor); + current = true; + }, + p(ctx, dirty) { + const tab0_changes = {}; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} + if (dirty & /*$$scope*/ 128) { + tab0_changes.$$scope = { dirty, ctx }; + } -// Add methods to `MapCache`. -MapCache.prototype.clear = _mapCacheClear; -MapCache.prototype['delete'] = _mapCacheDelete; -MapCache.prototype.get = _mapCacheGet; -MapCache.prototype.has = _mapCacheHas; -MapCache.prototype.set = _mapCacheSet; + tab0.$set(tab0_changes); + const tab1_changes = {}; -var _MapCache = MapCache; + if (dirty & /*$$scope*/ 128) { + tab1_changes.$$scope = { dirty, ctx }; + } -/** Used as the size to enable large array optimizations. */ -var LARGE_ARRAY_SIZE = 200; + tab1.$set(tab1_changes); + const tab2_changes = {}; -/** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ -function stackSet(key, value) { - var data = this.__data__; - if (data instanceof _ListCache) { - var pairs = data.__data__; - if (!_Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new _MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; + if (dirty & /*$$scope*/ 128) { + tab2_changes.$$scope = { dirty, ctx }; + } + + tab2.$set(tab2_changes); + }, + i(local) { + if (current) return; + transition_in(tab0.$$.fragment, local); + transition_in(tab1.$$.fragment, local); + transition_in(tab2.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(tab0.$$.fragment, local); + transition_out(tab1.$$.fragment, local); + transition_out(tab2.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(tab0, detaching); + if (detaching) detach(t0); + destroy_component(tab1, detaching); + if (detaching) detach(t1); + destroy_component(tab2, detaching); + } + }; } -var _stackSet = stackSet; +// (39:4) {#if $currentDraft} +function create_if_block_1(ctx) { + let scenelist; + let t; + let newscenefield; + let current; + scenelist = new SceneList({}); + newscenefield = new NewSceneField({}); -/** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ -function Stack(entries) { - var data = this.__data__ = new _ListCache(entries); - this.size = data.size; + return { + c() { + create_component(scenelist.$$.fragment); + t = space(); + create_component(newscenefield.$$.fragment); + }, + m(target, anchor) { + mount_component(scenelist, target, anchor); + insert(target, t, anchor); + mount_component(newscenefield, target, anchor); + current = true; + }, + i(local) { + if (current) return; + transition_in(scenelist.$$.fragment, local); + transition_in(newscenefield.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(scenelist.$$.fragment, local); + transition_out(newscenefield.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(scenelist, detaching); + if (detaching) detach(t); + destroy_component(newscenefield, detaching); + } + }; } -// Add methods to `Stack`. -Stack.prototype.clear = _stackClear; -Stack.prototype['delete'] = _stackDelete; -Stack.prototype.get = _stackGet; -Stack.prototype.has = _stackHas; -Stack.prototype.set = _stackSet; +// (38:2) +function create_default_slot_3(ctx) { + let if_block_anchor; + let current; + let if_block = /*$currentDraft*/ ctx[0] && create_if_block_1(); -var _Stack = Stack; + return { + c() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx, dirty) { + if (/*$currentDraft*/ ctx[0]) { + if (if_block) { + if (dirty & /*$currentDraft*/ 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_1(); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; + transition_out(if_block, 1, 1, () => { + if_block = null; + }); -/** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; + check_outros(); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach(if_block_anchor); + } + }; } -var _setCacheAdd = setCacheAdd; +// (45:4) {#if $currentProject} +function create_if_block(ctx) { + let draftlist; + let t; + let newdraftfield; + let current; + draftlist = new DraftList({}); + newdraftfield = new NewDraftField({}); -/** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ -function setCacheHas(value) { - return this.__data__.has(value); + return { + c() { + create_component(draftlist.$$.fragment); + t = space(); + create_component(newdraftfield.$$.fragment); + }, + m(target, anchor) { + mount_component(draftlist, target, anchor); + insert(target, t, anchor); + mount_component(newdraftfield, target, anchor); + current = true; + }, + i(local) { + if (current) return; + transition_in(draftlist.$$.fragment, local); + transition_in(newdraftfield.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(draftlist.$$.fragment, local); + transition_out(newdraftfield.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(draftlist, detaching); + if (detaching) detach(t); + destroy_component(newdraftfield, detaching); + } + }; } -var _setCacheHas = setCacheHas; +// (44:2) +function create_default_slot_2(ctx) { + let if_block_anchor; + let current; + let if_block = /*$currentProject*/ ctx[1] && create_if_block(); -/** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ -function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; + return { + c() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx, dirty) { + if (/*$currentProject*/ ctx[1]) { + if (if_block) { + if (dirty & /*$currentProject*/ 2) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block(); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); - this.__data__ = new _MapCache; - while (++index < length) { - this.add(values[index]); - } + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach(if_block_anchor); + } + }; } -// Add methods to `SetCache`. -SetCache.prototype.add = SetCache.prototype.push = _setCacheAdd; -SetCache.prototype.has = _setCacheHas; - -var _SetCache = SetCache; - -/** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ -function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; +// (50:2) +function create_default_slot_1(ctx) { + let compileview; + let current; + compileview = new CompileView({}); - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; + return { + c() { + create_component(compileview.$$.fragment); + }, + m(target, anchor) { + mount_component(compileview, target, anchor); + current = true; + }, + i(local) { + if (current) return; + transition_in(compileview.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(compileview.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(compileview, detaching); + } + }; } -var _arraySome = arraySome; +// (32:0) +function create_default_slot(ctx) { + let tablist; + let t0; + let tabpanel0; + let t1; + let tabpanel1; + let t2; + let tabpanel2; + let current; -/** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function cacheHas(cache, key) { - return cache.has(key); -} + tablist = new TabList({ + props: { + $$slots: { default: [create_default_slot_4] }, + $$scope: { ctx } + } + }); -var _cacheHas = cacheHas; + tabpanel0 = new TabPanel({ + props: { + $$slots: { default: [create_default_slot_3] }, + $$scope: { ctx } + } + }); -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG$3 = 1, - COMPARE_UNORDERED_FLAG$1 = 2; + tabpanel1 = new TabPanel({ + props: { + $$slots: { default: [create_default_slot_2] }, + $$scope: { ctx } + } + }); -/** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ -function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, - arrLength = array.length, - othLength = other.length; + tabpanel2 = new TabPanel({ + props: { + $$slots: { default: [create_default_slot_1] }, + $$scope: { ctx } + } + }); - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - // Check that cyclic values are equal. - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG$1) ? new _SetCache : undefined; + return { + c() { + create_component(tablist.$$.fragment); + t0 = space(); + create_component(tabpanel0.$$.fragment); + t1 = space(); + create_component(tabpanel1.$$.fragment); + t2 = space(); + create_component(tabpanel2.$$.fragment); + }, + m(target, anchor) { + mount_component(tablist, target, anchor); + insert(target, t0, anchor); + mount_component(tabpanel0, target, anchor); + insert(target, t1, anchor); + mount_component(tabpanel1, target, anchor); + insert(target, t2, anchor); + mount_component(tabpanel2, target, anchor); + current = true; + }, + p(ctx, dirty) { + const tablist_changes = {}; - stack.set(array, other); - stack.set(other, array); + if (dirty & /*$$scope*/ 128) { + tablist_changes.$$scope = { dirty, ctx }; + } - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; + tablist.$set(tablist_changes); + const tabpanel0_changes = {}; - if (customizer) { - var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!_arraySome(other, function(othValue, othIndex) { - if (!_cacheHas(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; - } - } - stack['delete'](array); - stack['delete'](other); - return result; -} + if (dirty & /*$$scope, $currentDraft*/ 129) { + tabpanel0_changes.$$scope = { dirty, ctx }; + } -var _equalArrays = equalArrays; + tabpanel0.$set(tabpanel0_changes); + const tabpanel1_changes = {}; -/** Built-in value references. */ -var Uint8Array = _root.Uint8Array; + if (dirty & /*$$scope, $currentProject*/ 130) { + tabpanel1_changes.$$scope = { dirty, ctx }; + } -var _Uint8Array = Uint8Array; + tabpanel1.$set(tabpanel1_changes); + const tabpanel2_changes = {}; -/** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ -function mapToArray(map) { - var index = -1, - result = Array(map.size); + if (dirty & /*$$scope*/ 128) { + tabpanel2_changes.$$scope = { dirty, ctx }; + } - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; + tabpanel2.$set(tabpanel2_changes); + }, + i(local) { + if (current) return; + transition_in(tablist.$$.fragment, local); + transition_in(tabpanel0.$$.fragment, local); + transition_in(tabpanel1.$$.fragment, local); + transition_in(tabpanel2.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(tablist.$$.fragment, local); + transition_out(tabpanel0.$$.fragment, local); + transition_out(tabpanel1.$$.fragment, local); + transition_out(tabpanel2.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(tablist, detaching); + if (detaching) detach(t0); + destroy_component(tabpanel0, detaching); + if (detaching) detach(t1); + destroy_component(tabpanel1, detaching); + if (detaching) detach(t2); + destroy_component(tabpanel2, detaching); + } + }; } -var _mapToArray = mapToArray; +function create_fragment(ctx) { + let projectpicker; + let t; + let tabs; + let current; + projectpicker = new ProjectPicker({}); -/** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ -function setToArray(set) { - var index = -1, - result = Array(set.size); + tabs = new Tabs({ + props: { + $$slots: { default: [create_default_slot] }, + $$scope: { ctx } + } + }); - set.forEach(function(value) { - result[++index] = value; - }); - return result; -} + return { + c() { + create_component(projectpicker.$$.fragment); + t = space(); + create_component(tabs.$$.fragment); + }, + m(target, anchor) { + mount_component(projectpicker, target, anchor); + insert(target, t, anchor); + mount_component(tabs, target, anchor); + current = true; + }, + p(ctx, [dirty]) { + const tabs_changes = {}; -var _setToArray = setToArray; + if (dirty & /*$$scope, $currentProject, $currentDraft*/ 131) { + tabs_changes.$$scope = { dirty, ctx }; + } -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG$2 = 1, - COMPARE_UNORDERED_FLAG = 2; + tabs.$set(tabs_changes); + }, + i(local) { + if (current) return; + transition_in(projectpicker.$$.fragment, local); + transition_in(tabs.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(projectpicker.$$.fragment, local); + transition_out(tabs.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(projectpicker, detaching); + if (detaching) detach(t); + destroy_component(tabs, detaching); + } + }; +} -/** `Object#toString` result references. */ -var boolTag$3 = '[object Boolean]', - dateTag$3 = '[object Date]', - errorTag$2 = '[object Error]', - mapTag$5 = '[object Map]', - numberTag$3 = '[object Number]', - regexpTag$3 = '[object RegExp]', - setTag$5 = '[object Set]', - stringTag$3 = '[object String]', - symbolTag$2 = '[object Symbol]'; +function instance($$self, $$props, $$invalidate) { + let $currentDraftPath; + let $currentProjectPath; + let $pluginSettings; + let $currentDraft; + let $currentProject; + component_subscribe($$self, currentDraftPath, $$value => $$invalidate(2, $currentDraftPath = $$value)); + component_subscribe($$self, currentProjectPath, $$value => $$invalidate(3, $currentProjectPath = $$value)); + component_subscribe($$self, pluginSettings, $$value => $$invalidate(4, $pluginSettings = $$value)); + component_subscribe($$self, currentDraft, $$value => $$invalidate(0, $currentDraft = $$value)); + component_subscribe($$self, currentProject, $$value => $$invalidate(1, $currentProject = $$value)); -var arrayBufferTag$3 = '[object ArrayBuffer]', - dataViewTag$4 = '[object DataView]'; + function makeDraftPath(name) { + if ($currentProjectPath) { + const draftsFolder = $pluginSettings.projects[$currentProjectPath].draftsPath; + return obsidian.normalizePath(`${$currentProjectPath}/${draftsFolder}/${name}/`); + } -/** Used to convert symbols to primitives and strings. */ -var symbolProto$1 = _Symbol ? _Symbol.prototype : undefined, - symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : undefined; + return null; + } -/** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ -function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag$4: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; + setContext("makeDraftPath", makeDraftPath); - case arrayBufferTag$3: - if ((object.byteLength != other.byteLength) || - !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) { - return false; - } - return true; + // Create a fully-qualified path to a scene from its name. + function makeScenePath(name, draft) { + const draftPath = makeDraftPath(draft || $currentDraftPath); - case boolTag$3: - case dateTag$3: - case numberTag$3: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq_1(+object, +other); + if (draftPath) { + return obsidian.normalizePath(`${draftPath}/${name}.md`); + } - case errorTag$2: - return object.name == other.name && object.message == other.message; + return null; + } - case regexpTag$3: - case stringTag$3: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); + setContext("makeScenePath", makeScenePath); + return [$currentDraft, $currentProject]; +} - case mapTag$5: - var convert = _mapToArray; +class ExplorerView extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance, create_fragment, safe_not_equal, {}); + } +} + +const VIEW_TYPE_LONGFORM_EXPLORER = "VIEW_TYPE_LONGFORM_EXPLORER"; +class ExplorerPane extends obsidian.ItemView { + constructor(leaf) { + super(leaf); + } + getViewType() { + return VIEW_TYPE_LONGFORM_EXPLORER; + } + getDisplayText() { + return "Longform"; + } + getIcon() { + return ICON_NAME; + } + onOpen() { + return __awaiter(this, void 0, void 0, function* () { + const context = new Map(); + // Context function for showing a generic confirmation modal + context.set("showConfirmModal", (title, description, yesText, yesAction, noText = undefined, noAction = undefined) => { + new ConfirmActionModal(this.app, title, description, yesText, yesAction, noText, noAction).open(); + }); + // Context function for opening scene notes on click + context.set("onSceneClick", (path, newLeaf) => { + this.app.workspace.openLinkText(path, "/", newLeaf); + }); + // Context function for creating new scene notes given a path + context.set("onNewScene", (path) => __awaiter(this, void 0, void 0, function* () { + yield this.app.vault.create(path, ""); + this.app.workspace.openLinkText(path, "/", false); + })); + // Context function for creating new draft folders given a path + context.set("onNewDraft", (path, copying) => __awaiter(this, void 0, void 0, function* () { + if (copying) { + yield this.app.vault.createFolder(path); + // do copy + for (const toCopy of copying) { + yield this.app.vault.adapter.copy(toCopy.from, toCopy.to); + } + } + else { + yield this.app.vault.createFolder(path); + } + })); + // Context function for showing a right-click menu + context.set("onContextClick", (path, x, y) => { + const file = this.app.vault.getAbstractFileByPath(path); + if (!file) { + return; + } + const menu = new obsidian.Menu(this.app); + menu.addItem((item) => { + item.setTitle("Delete"); + item.setIcon("trash"); + item.onClick(() => __awaiter(this, void 0, void 0, function* () { + if (file) { + yield this.app.vault.trash(file, true); + } + })); + }); + menu.addItem((item) => { + item.setTitle("Open in new pane"); + item.setIcon("vertical-split"); + item.onClick(() => this.app.workspace.openLinkText(path, "/", true)); + }); + // Triggering this event lets other apps insert menu items + // including Obsidian, giving us lots of stuff for free. + this.app.workspace.trigger("file-menu", menu, file, "longform"); + menu.showAtPosition({ x, y }); + }); + context.set("showRenameDraftMenu", (x, y, action) => { + const menu = new obsidian.Menu(this.app); + menu.addItem((item) => { + item.setTitle("Rename"); + item.setIcon("pencil"); + item.onClick(action); + }); + menu.showAtPosition({ x, y }); + }); + context.set("renameFolder", (oldPath, newPath) => { + this.app.vault.adapter.rename(oldPath, newPath); + }); + context.set("compile", (projectPath, draftName, workflow, kinds, statusCallback) => { + compile(this.app, projectPath, draftName, workflow, kinds, statusCallback); + }); + context.set("openCompileStepMenu", () => new AddStepModalContainer(this.app).open()); + context.set("showCompileActionsMenu", (x, y, currentWorkflowName, action) => { + const menu = new obsidian.Menu(this.app); + menu.addItem((item) => { + item.setTitle("Add new workflow"); + item.setIcon("plus-with-circle"); + item.onClick(() => action("new")); + }); + if (currentWorkflowName) { + menu.addItem((item) => { + item.setTitle(`Rename "${currentWorkflowName}"`); + item.setIcon("pencil"); + item.onClick(() => action("rename")); + }); + menu.addItem((item) => { + item.setTitle(`Delete "${currentWorkflowName}"`); + item.setIcon("trash"); + item.onClick(() => action("delete")); + }); + } + menu.showAtPosition({ x, y }); + }); + this.explorerView = new ExplorerView({ + target: this.contentEl, + context, + }); + }); + } + onClose() { + return __awaiter(this, void 0, void 0, function* () { + if (this.explorerView) { + this.explorerView.$destroy(); + } + }); + } +} - case setTag$5: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2; - convert || (convert = _setToArray); +class AddProjectModal extends obsidian.Modal { + constructor(app, plugin, path) { + super(app); + this.plugin = plugin; + this.path = path; + } + onOpen() { + const { contentEl } = this; + const title = document.createElement("h1"); + title.setText("Add to Longform"); + contentEl.appendChild(title); + const indexFileField = this.addField(contentEl, "Index File Name", "Index", "Index", "A project’s index file acts as storage for all the metadata necessary to make a Longform project work. You can edit it (it’s Markdown), but Longform will mostly be reading and writing it directly."); + const draftsFolderField = this.addField(contentEl, "Drafts Folder Name", "Drafts/", "Drafts/", "Every folder inside your drafts folder is a single draft of your project. You can name drafts whatever you’d like: Drafts/1/, Drafts/First Draft/, etc. Each draft folder will hold the individual files (scenes) that make up your project. Scenes are ordered manually. Other folders and files in the project are always reachable in the Obsidian file explorer."); + const doAdd = () => __awaiter(this, void 0, void 0, function* () { + const indexFile = indexFileField.getValue(); + const draftsPath = draftsFolderField.getValue(); + yield this.plugin.markPathAsProject(this.path, { + path: this.path, + indexFile, + draftsPath, + }); + this.close(); + }); + const saveButton = new obsidian.ButtonComponent(contentEl) + .setButtonText("Add to Longform") + .onClick(doAdd); + saveButton.buttonEl.id = "longform-add-button"; + indexFileField.inputEl.focus(); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } + addField(rootEl, label, placeholder, value = "", description = "") { + const inputId = label.replace(" ", "-").toLowerCase(); + const container = document.createElement("div"); + container.style.display = "flex"; + container.style.flexDirection = "row"; + container.style.justifyContent = "space-between"; + container.style.alignContent = "center"; + rootEl.appendChild(container); + const labelEl = document.createElement("label"); + labelEl.setText(label); + labelEl.htmlFor = inputId; + labelEl.style.display = "flex"; + labelEl.style.alignItems = "center"; + labelEl.style.marginRight = "12px"; + container.appendChild(labelEl); + const field = new obsidian.TextComponent(container).setPlaceholder(placeholder); + field.inputEl.value = value; + field.inputEl.style.flexGrow = "1"; + field.inputEl.id = inputId; + if (description.length > 0) { + const descriptionEl = document.createElement("p"); + descriptionEl.setText(description); + descriptionEl.style.color = "var(--text-muted)"; + rootEl.appendChild(descriptionEl); + } + return field; + } +} - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; +function addProject(path, project, settings) { + return Object.assign(Object.assign({}, settings), { projects: Object.assign(Object.assign({}, settings.projects), { [path]: project }) }); +} +function removeProject(path, settings) { + const newSettings = settings; + delete newSettings.projects[path]; + return newSettings; +} +function isLongformProject(path, settings) { + return settings && !!settings.projects[path]; +} +function isInLongformProject(path, settings) { + return (settings && !!Object.keys(settings.projects).find((p) => path.startsWith(p))); +} +function indexFilePath(project) { + return obsidian.normalizePath(`${project.path}/${project.indexFile}.md`); +} - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; +const WARNING = ` +This file is managed by Longform. Please avoid editing it directly; doing so will almost certainly confuse the plugin, and may cause a loss of data. - case symbolTag$2: - if (symbolValueOf$1) { - return symbolValueOf$1.call(object) == symbolValueOf$1.call(other); - } - } - return false; +Longform uses this file to organize your folders and notes into a project. For more details, please see [The Index File](https://github.com/kevboh/longform#the-index-file) section of the plugin’s README. +`; +const EmptyIndexFileMetadata = { + version: LONGFORM_CURRENT_INDEX_VERSION, + workflow: null, + drafts: [ + { + name: "Draft 1", + folder: "Draft 1", + scenes: [], + }, + ], +}; +function indexBodyFor(state) { + if (!state) { + return null; + } + const body = obsidian.stringifyYaml(state); + if (!body || body === "undefined") { + return null; + } + return `---\n${body}---\n\n${WARNING}\n`; +} +function buildDraftsLookup(drafts) { + return drafts.reduce((agg, d) => { + agg[d.folder] = d; + return agg; + }, {}); } -var _equalByTag = equalByTag; +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** - * Appends the elements of `values` to `array`. + * Adds `value` to the array cache. * * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. */ -function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; } -var _arrayPush = arrayPush; - -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ -var isArray = Array.isArray; - -var isArray_1 = isArray; +var _setCacheAdd = setCacheAdd; /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. + * Checks if `value` is in the array cache. * * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. */ -function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object)); +function setCacheHas(value) { + return this.__data__.has(value); } -var _baseGetAllKeys = baseGetAllKeys; +var _setCacheHas = setCacheHas; /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. + * + * Creates an array cache object to store unique values. * * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. + * @constructor + * @param {Array} [values] The values to cache. */ -function arrayFilter(array, predicate) { +function SetCache(values) { var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; + length = values == null ? 0 : values.length; + this.__data__ = new _MapCache; while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } + this.add(values[index]); } - return result; } -var _arrayFilter = arrayFilter; +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = _setCacheAdd; +SetCache.prototype.has = _setCacheHas; + +var _SetCache = SetCache; /** - * This method returns a new empty array. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. - * @example - * - * var arrays = _.times(2, _.stubArray); - * - * console.log(arrays); - * // => [[], []] + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. * - * console.log(arrays[0] === arrays[1]); - * // => false - */ -function stubArray() { - return []; -} - -var stubArray_1 = stubArray; - -/** Used for built-in method references. */ -var objectProto$9 = Object.prototype; + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; -/** Built-in value references. */ -var propertyIsEnumerable$1 = objectProto$9.propertyIsEnumerable; + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeGetSymbols$1 = Object.getOwnPropertySymbols; +var _arraySome = arraySome; /** - * Creates an array of the own enumerable symbols of `object`. + * Checks if a `cache` value for `key` exists. * * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ -var getSymbols = !nativeGetSymbols$1 ? stubArray_1 : function(object) { - if (object == null) { - return []; - } - object = Object(object); - return _arrayFilter(nativeGetSymbols$1(object), function(symbol) { - return propertyIsEnumerable$1.call(object, symbol); - }); -}; +function cacheHas(cache, key) { + return cache.has(key); +} -var _getSymbols = getSymbols; +var _cacheHas = cacheHas; + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG$3 = 1, + COMPARE_UNORDERED_FLAG$1 = 2; /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. * * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ -function baseTimes(n, iteratee) { +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } var index = -1, - result = Array(n); + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG$1) ? new _SetCache : undefined; - while (++index < n) { - result[index] = iteratee(index); + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!_arraySome(other, function(othValue, othIndex) { + if (!_cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } } + stack['delete'](array); + stack['delete'](other); return result; } -var _baseTimes = baseTimes; +var _equalArrays = equalArrays; /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false + * Converts `map` to its key-value pairs. * - * _.isObjectLike(null); - * // => false + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. */ -function isObjectLike(value) { - return value != null && typeof value == 'object'; -} +function mapToArray(map) { + var index = -1, + result = Array(map.size); -var isObjectLike_1 = isObjectLike; + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} -/** `Object#toString` result references. */ -var argsTag$3 = '[object Arguments]'; +var _mapToArray = mapToArray; /** - * The base implementation of `_.isArguments`. + * Converts `set` to an array of its values. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. */ -function baseIsArguments(value) { - return isObjectLike_1(value) && _baseGetTag(value) == argsTag$3; -} +function setToArray(set) { + var index = -1, + result = Array(set.size); -var _baseIsArguments = baseIsArguments; + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} -/** Used for built-in method references. */ -var objectProto$8 = Object.prototype; +var _setToArray = setToArray; -/** Used to check objects for own properties. */ -var hasOwnProperty$7 = objectProto$8.hasOwnProperty; +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG$2 = 1, + COMPARE_UNORDERED_FLAG = 2; -/** Built-in value references. */ -var propertyIsEnumerable = objectProto$8.propertyIsEnumerable; +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ -var isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) { - return isObjectLike_1(value) && hasOwnProperty$7.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); -}; +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; -var isArguments_1 = isArguments; +/** Used to convert symbols to primitives and strings. */ +var symbolProto = _Symbol ? _Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; /** - * This method returns `false`. + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. * - * _.times(2, _.stubFalse); - * // => [false, false] + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ -function stubFalse() { - return false; -} +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) { + return false; + } + return true; -var stubFalse_1 = stubFalse; + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq_1(+object, +other); -var isBuffer_1 = createCommonjsModule(function (module, exports) { -/** Detect free variable `exports`. */ -var freeExports = exports && !exports.nodeType && exports; + case errorTag: + return object.name == other.name && object.message == other.message; -/** Detect free variable `module`. */ -var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); -/** Detect the popular CommonJS extension `module.exports`. */ -var moduleExports = freeModule && freeModule.exports === freeExports; + case mapTag: + var convert = _mapToArray; -/** Built-in value references. */ -var Buffer = moduleExports ? _root.Buffer : undefined; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2; + convert || (convert = _setToArray); -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; -/** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ -var isBuffer = nativeIsBuffer || stubFalse_1; + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; -module.exports = isBuffer; -}); + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER$1 = 9007199254740991; +var _equalByTag = equalByTag; -/** Used to detect unsigned integer values. */ -var reIsUint = /^(?:0|[1-9]\d*)$/; +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG$1 = 1; + +/** Used for built-in method references. */ +var objectProto$1 = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; /** - * Checks if `value` is a valid array-like index. + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. * * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ -function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER$1 : length; +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1, + objProps = _getAllKeys(object), + objLength = objProps.length, + othProps = _getAllKeys(other), + othLength = othProps.length; - return !!length && - (type == 'number' || - (type != 'symbol' && reIsUint.test(value))) && - (value > -1 && value % 1 == 0 && value < length); + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; } -var _isIndex = isIndex; +var _equalObjects = equalObjects; -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. * - * _.isLength('3'); - * // => false + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray_1(object), + othIsArr = isArray_1(other), + objTag = objIsArr ? arrayTag : _getTag(object), + othTag = othIsArr ? arrayTag : _getTag(other); -var isLength_1 = isLength; + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; -/** `Object#toString` result references. */ -var argsTag$2 = '[object Arguments]', - arrayTag$2 = '[object Array]', - boolTag$2 = '[object Boolean]', - dateTag$2 = '[object Date]', - errorTag$1 = '[object Error]', - funcTag$1 = '[object Function]', - mapTag$4 = '[object Map]', - numberTag$2 = '[object Number]', - objectTag$3 = '[object Object]', - regexpTag$2 = '[object RegExp]', - setTag$4 = '[object Set]', - stringTag$2 = '[object String]', - weakMapTag$2 = '[object WeakMap]'; + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; -var arrayBufferTag$2 = '[object ArrayBuffer]', - dataViewTag$3 = '[object DataView]', - float32Tag$2 = '[object Float32Array]', - float64Tag$2 = '[object Float64Array]', - int8Tag$2 = '[object Int8Array]', - int16Tag$2 = '[object Int16Array]', - int32Tag$2 = '[object Int32Array]', - uint8Tag$2 = '[object Uint8Array]', - uint8ClampedTag$2 = '[object Uint8ClampedArray]', - uint16Tag$2 = '[object Uint16Array]', - uint32Tag$2 = '[object Uint32Array]'; + if (isSameTag && isBuffer_1(object)) { + if (!isBuffer_1(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new _Stack); + return (objIsArr || isTypedArray_1(object)) + ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; -/** Used to identify `toStringTag` values of typed arrays. */ -var typedArrayTags = {}; -typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = -typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = -typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = -typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = -typedArrayTags[uint32Tag$2] = true; -typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = -typedArrayTags[arrayBufferTag$2] = typedArrayTags[boolTag$2] = -typedArrayTags[dataViewTag$3] = typedArrayTags[dateTag$2] = -typedArrayTags[errorTag$1] = typedArrayTags[funcTag$1] = -typedArrayTags[mapTag$4] = typedArrayTags[numberTag$2] = -typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$2] = -typedArrayTags[setTag$4] = typedArrayTags[stringTag$2] = -typedArrayTags[weakMapTag$2] = false; + stack || (stack = new _Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new _Stack); + return _equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +var _baseIsEqualDeep = baseIsEqualDeep; /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ -function baseIsTypedArray(value) { - return isObjectLike_1(value) && - isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)]; +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike_1(value) && !isObjectLike_1(other))) { + return value !== value && other !== other; + } + return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } -var _baseIsTypedArray = baseIsTypedArray; +var _baseIsEqual = baseIsEqual; /** - * The base implementation of `_.unary` without support for storing metadata. + * Performs a deep comparison between two values to determine if they are + * equivalent. * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false */ -function baseUnary(func) { - return function(value) { - return func(value); - }; +function isEqual(value, other) { + return _baseIsEqual(value, other); } -var _baseUnary = baseUnary; - -var _nodeUtil = createCommonjsModule(function (module, exports) { -/** Detect free variable `exports`. */ -var freeExports = exports && !exports.nodeType && exports; - -/** Detect free variable `module`. */ -var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - -/** Detect the popular CommonJS extension `module.exports`. */ -var moduleExports = freeModule && freeModule.exports === freeExports; - -/** Detect free variable `process` from Node.js. */ -var freeProcess = moduleExports && _freeGlobal.process; - -/** Used to access faster Node.js helpers. */ -var nodeUtil = (function() { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; - - if (types) { - return types; - } - - // Legacy `process.binding('util')` for Node.js < 10. - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} -}()); - -module.exports = nodeUtil; -}); +var isEqual_1 = isEqual; -/* Node.js helper references. */ -var nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray; +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_SYMBOLS_FLAG = 4; /** - * Checks if `value` is classified as a typed array. + * This method is like `_.clone` except that it recursively clones `value`. * * @static * @memberOf _ - * @since 3.0.0 + * @since 1.0.0 * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone * @example * - * _.isTypedArray(new Uint8Array); - * // => true + * var objects = [{ 'a': 1 }, { 'b': 2 }]; * - * _.isTypedArray([]); + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); * // => false */ -var isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray; - -var isTypedArray_1 = isTypedArray; - -/** Used for built-in method references. */ -var objectProto$7 = Object.prototype; +function cloneDeep(value) { + return _baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); +} -/** Used to check objects for own properties. */ -var hasOwnProperty$6 = objectProto$7.hasOwnProperty; +var cloneDeep_1 = cloneDeep; /** - * Creates an array of the enumerable property names of the array-like `value`. + * Observes all known project index files and keeps their frontmatters + * in sync with the corresponding store. * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. + * Store updates are written to disk, and file edits are set to the store. + * + * When index files have invalid frontmatter, e.g. you're mid-edit, updates + * are ignored. This class must have `destroy()` called on plugin unload + * to avoid leaking store subscriptions. */ -function arrayLikeKeys(value, inherited) { - var isArr = isArray_1(value), - isArg = !isArr && isArguments_1(value), - isBuff = !isArr && !isArg && isBuffer_1(value), - isType = !isArr && !isArg && !isBuff && isTypedArray_1(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? _baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty$6.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - _isIndex(key, length) - ))) { - result.push(key); +class IndexMetadataObserver { + constructor(app) { + this.ignoreNextMetadataUpdate = true; + this.lastKnownMetadataState = {}; + this.vault = app.vault; + this.cache = app.metadataCache; + // Load project/index file paths + this.unsubscribeSettings = pluginSettings.subscribe((settings) => { + const indexPaths = []; + Object.keys(settings.projects).forEach((projectPath) => { + const project = settings.projects[projectPath]; + indexPaths.push({ + projectPath, + indexPath: indexFilePath(project), + }); + }); + this.watchedIndexPaths = indexPaths; + // Load existing projects' metadata + const allMetadata = {}; + this.watchedIndexPaths.forEach((paths) => { + const metadata = this.cache.getCache(paths.indexPath); + // Sometimes this can be undefined, especially if you're creating a new project. + // In that case, we'll get the metadata event later, so it's okay to skip it here. + if (metadata) { + const frontmatter = metadata.frontmatter; + allMetadata[paths.projectPath] = filterMetadata(frontmatter); + } + }); + this.lastKnownMetadataState = cloneDeep_1(allMetadata); + if (this.unsubscribeMetadata) { + this.ignoreNextMetadataUpdate = true; + } + projectMetadata.set(allMetadata); + }); + // Pass store metadata changes (ie longform app changes) + // back to the index file + this.unsubscribeMetadata = projectMetadata.subscribe((value) => { + if (!this.ignoreNextMetadataUpdate) { + this.metadataStoreChanged(value); + } + this.ignoreNextMetadataUpdate = false; + this.lastKnownMetadataState = cloneDeep_1(value); + }); + } + destroy() { + this.unsubscribeSettings(); + this.unsubscribeMetadata(); + } + metadataCacheChanged(file) { + // Is this a file we're watching? + const paths = this.watchedIndexPaths.find((p) => p.indexPath === file.path); + if (paths) { + const fileMetadata = this.cache.getFileCache(file); + // Ignore missing or invalid YAML results, file likely mid-edit + if (!fileMetadata || !fileMetadata.frontmatter) { + return; + } + const newProjectMetadata = fileMetadata.frontmatter; + this.ignoreNextMetadataUpdate = true; + projectMetadata.update((value) => { + const v = value; + v[paths.projectPath] = filterMetadata(newProjectMetadata); + this.lastKnownMetadataState = cloneDeep_1(v); + return v; + }); + } + } + metadataStoreChanged(value) { + const lastKnownProjectPaths = Object.keys(this.lastKnownMetadataState); + Object.keys(value).forEach((projectPath) => { + const isKnownPath = lastKnownProjectPaths.contains(projectPath); + const paths = this.watchedIndexPaths.find((p) => p.projectPath === projectPath); + const newIndexMetadata = value[projectPath]; + const isNew = !isKnownPath || + !isEqual_1(this.lastKnownMetadataState[projectPath], newIndexMetadata); + if (paths && isNew) { + const contents = indexBodyFor(newIndexMetadata); + if (contents) { + this.vault.adapter.write(paths.indexPath, contents); + } + } + }); + this.lastKnownMetadataState = cloneDeep_1(value); } - } - return result; } - -var _arrayLikeKeys = arrayLikeKeys; - -/** Used for built-in method references. */ -var objectProto$6 = Object.prototype; - -/** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ -function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$6; - - return value === proto; +function filterMetadata(metadata) { + // Ideally TypeScript would do this for me, but that seems to be impossible. + // Instead, we have to manually strip out anything we know isn't a property of the type. + return { + version: metadata.version, + workflow: metadata.workflow, + drafts: metadata.drafts, + }; } -var _isPrototype = isPrototype; - -/** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ -function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; +var DraftsMembership; +(function (DraftsMembership) { + DraftsMembership[DraftsMembership["Draft"] = 0] = "Draft"; + DraftsMembership[DraftsMembership["Scene"] = 1] = "Scene"; + DraftsMembership[DraftsMembership["None"] = 2] = "None"; +})(DraftsMembership || (DraftsMembership = {})); +function membership(abstractFile, draftsPath) { + if (abstractFile instanceof obsidian.TFolder && + abstractFile.parent && + abstractFile.parent.path === draftsPath) { + return DraftsMembership.Draft; + } + else if (abstractFile instanceof obsidian.TFile && + abstractFile.parent && + abstractFile.parent.parent && + abstractFile.parent.parent.path === draftsPath) { + return DraftsMembership.Scene; + } + return DraftsMembership.None; +} +class FolderObserver { + constructor(app) { + this.vault = app.vault; + // Load project paths + this.unsubscribeSettings = pluginSettings.subscribe((settings) => { + this.watchedDraftFolders = Object.keys(settings.projects).map((projectPath) => ({ + draftsPath: obsidian.normalizePath(`${projectPath}/${settings.projects[projectPath].draftsPath}`), + projectPath, + })); + }); + } + loadProjects(renameInfo) { + const toStore = {}; + this.watchedDraftFolders.forEach(({ draftsPath, projectPath }) => { + toStore[projectPath] = {}; + const folder = this.vault.getAbstractFileByPath(draftsPath); + if (!(folder instanceof obsidian.TFolder)) { + return; + } + // Recurse all watched projects' draft folders. + // Because recursion, we know drafts will be encountered before their children. + obsidian.Vault.recurseChildren(folder, (abstractFile) => { + const status = membership(abstractFile, draftsPath); + if (status === DraftsMembership.Draft) { + toStore[projectPath][abstractFile.name] = []; + // We only care about folders if they're draft folders + } + else if (status === DraftsMembership.Scene && + abstractFile instanceof obsidian.TFile) { + // We only care about files if they're members of a draft + toStore[projectPath][abstractFile.parent.name].push(abstractFile.basename); + } + }); + }); + projectMetadata.update((metadata) => { + // Sync files on disk with scenes in metadata; + // Existing files are sorted by scene order, + // new ones are added to the bottom. + let newMetadata = cloneDeep_1(metadata); + // javascript is stupid. + // eslint-disable-next-line + const functionalSplice = (arr, index, value) => { + const v = [...arr]; + v.splice(index, 1, value); + return v; + }; + const cleanlyReplaceDraft = (meta, _projectPath, _draftIndex, _draft) => (Object.assign(Object.assign({}, meta), { [_projectPath]: Object.assign(Object.assign({}, meta[_projectPath]), { drafts: functionalSplice(newMetadata[_projectPath].drafts, _draftIndex, _draft) }) })); + Object.keys(toStore).forEach((projectPath) => { + // Handle cases where the metadata cache hasn't caught up to disk yet + // and thus no project exists there at all. + if (!newMetadata[projectPath]) { + return; + } + // If a draft has been renamed, sub in the renamed draft in metadata + if (renameInfo && renameInfo.newFile instanceof obsidian.TFolder) { + const oldFolder = renameInfo.oldPath.split("/").slice(-1)[0]; + const newFolder = renameInfo.newFile.name; + const draftIndex = newMetadata[projectPath].drafts.findIndex((d) => d.folder === oldFolder); + if (draftIndex >= 0) { + const draft = newMetadata[projectPath].drafts[draftIndex]; + newMetadata = cleanlyReplaceDraft(newMetadata, projectPath, draftIndex, Object.assign(Object.assign({}, draft), { folder: newFolder, name: newFolder })); + } + } + const metadataLookup = buildDraftsLookup(newMetadata[projectPath].drafts); + Object.keys(toStore[projectPath]).forEach((draftPath) => { + const metadataDraft = metadataLookup[draftPath]; + const metadataScenes = metadataDraft ? metadataDraft.scenes : []; + const fileScenes = toStore[projectPath][draftPath]; + const existingScenes = []; + metadataScenes.forEach((s) => { + if (fileScenes.contains(s)) { + // Retain existing scene + existingScenes.push(s); + } + else if (renameInfo && + renameInfo.newFile instanceof obsidian.TFile && + fileScenes.contains(renameInfo.newFile.basename)) { + // Swap in a renamed file if it matches the full path + const f = this.watchedDraftFolders.find((f) => f.projectPath === projectPath); + if (f && + obsidian.normalizePath(`${f.draftsPath}/${draftPath}/${s}.md`) === + renameInfo.oldPath) { + existingScenes.push(renameInfo.newFile.basename); + } + } + }); + const newScenes = fileScenes.filter((s) => !existingScenes.contains(s)); + const scenes = [...existingScenes, ...newScenes]; + const draftIndex = newMetadata[projectPath].drafts.findIndex((d) => d.folder === draftPath); + if (draftIndex >= 0) { + const draft = newMetadata[projectPath].drafts[draftIndex]; + newMetadata = cleanlyReplaceDraft(newMetadata, projectPath, draftIndex, Object.assign(Object.assign({}, draft), { scenes })); + } + else { + const draft = { + name: draftPath, + folder: draftPath, + scenes, + }; + newMetadata = cleanlyReplaceDraft(newMetadata, projectPath, newMetadata[projectPath].drafts.length, draft); + } + }); + // Delete any orphaned drafts that are in metadata but no longer on disk + const fileDrafts = Object.keys(toStore[projectPath]); + newMetadata = Object.assign(Object.assign({}, newMetadata), { [projectPath]: Object.assign(Object.assign({}, newMetadata[projectPath]), { drafts: newMetadata[projectPath].drafts.filter((d) => fileDrafts.contains(d.folder)) }) }); + }); + return newMetadata; + }); + } + destroy() { + this.unsubscribeSettings(); + } + fileCreated(abstractFile) { + const status = this.anyMembership(abstractFile); + if (status === DraftsMembership.None) { + return; + } + // We could do this more intelligently by making minimal edits to the store, + // but for now let's just recalculate it. It's not clear to me yet how expensive + // recursing children is. + this.loadProjects(); + } + fileDeleted(abstractFile) { + // We can't do normal status test here because a deleted file's parent is null. + const reload = !!this.watchedDraftFolders.find(({ draftsPath }) => abstractFile.path.startsWith(draftsPath)); + if (!reload) { + return; + } + // We could do this more intelligently by making minimal edits to the store, + // but for now let's just recalculate it. It's not clear to me yet how expensive + // recursing children is. + this.loadProjects(); + } + fileRenamed(abstractFile, oldPath) { + const newPath = abstractFile.path; + // First handle any project renames, as those happen in settings + const folder = this.watchedDraftFolders.find((f) => f.projectPath === oldPath); + if (folder) { + console.log("[Longform] A project has been renamed; updating caches…"); + pluginSettings.update((s) => { + const projects = s.projects; + const project = s.projects[oldPath]; + project.path = newPath; + projects[newPath] = project; + delete s.projects[oldPath]; + let selectedProject = s.selectedProject; + if (selectedProject === oldPath) { + selectedProject = newPath; + } + const newSettings = Object.assign(Object.assign({}, s), { selectedProject, + projects }); + return newSettings; + }); + currentProjectPath.update((p) => { + if (p === oldPath) { + return newPath; + } + return p; + }); + projectMetadata.update((m) => { + const project = m[oldPath]; + m[newPath] = project; + delete m[oldPath]; + return m; + }); + return; + } + const status = this.anyMembership(abstractFile, oldPath); + if (status === DraftsMembership.None) { + return; + } + // If the current draft was renamed, update that store first. + if (status === DraftsMembership.Draft && + oldPath.endsWith(get_store_value(currentDraftPath))) { + currentDraftPath.set(abstractFile.name); + } + // We could do this more intelligently by making minimal edits to the store, + // but for now let's just recalculate it. It's not clear to me yet how expensive + // recursing children is. + this.loadProjects({ newFile: abstractFile, oldPath }); + } + anyMembership(abstractFile, oldPath) { + for (const { draftsPath } of this.watchedDraftFolders) { + if (oldPath && oldPath.startsWith(draftsPath)) { + return oldPath.endsWith(".md") + ? DraftsMembership.Scene + : DraftsMembership.Draft; + } + const status = membership(abstractFile, draftsPath); + if (status !== DraftsMembership.None) { + return status; + } + } + return DraftsMembership.None; + } } -var _overArg = overArg; - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeKeys = _overArg(Object.keys, Object); - -var _nativeKeys = nativeKeys; - -/** Used for built-in method references. */ -var objectProto$5 = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty$5 = objectProto$5.hasOwnProperty; - -/** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function baseKeys(object) { - if (!_isPrototype(object)) { - return _nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty$5.call(object, key) && key != 'constructor') { - result.push(key); - } +var top = 'top'; +var bottom = 'bottom'; +var right = 'right'; +var left = 'left'; +var auto = 'auto'; +var basePlacements = [top, bottom, right, left]; +var start = 'start'; +var end = 'end'; +var clippingParents = 'clippingParents'; +var viewport = 'viewport'; +var popper = 'popper'; +var reference = 'reference'; +var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); +}, []); +var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); +}, []); // modifiers that need to read the DOM + +var beforeRead = 'beforeRead'; +var read = 'read'; +var afterRead = 'afterRead'; // pure-logic modifiers + +var beforeMain = 'beforeMain'; +var main = 'main'; +var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + +var beforeWrite = 'beforeWrite'; +var write = 'write'; +var afterWrite = 'afterWrite'; +var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + +function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; +} + +function getWindow(node) { + if (node == null) { + return window; } - return result; -} -var _baseKeys = baseKeys; + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength_1(value.length) && !isFunction_1(value); + return node; } -var isArrayLike_1 = isArrayLike; - -/** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ -function keys(object) { - return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object); +function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; } -var keys_1 = keys; - -/** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ -function getAllKeys(object) { - return _baseGetAllKeys(object, keys_1, _getSymbols); +function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; } -var _getAllKeys = getAllKeys; - -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG$1 = 1; - -/** Used for built-in method references. */ -var objectProto$4 = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty$4 = objectProto$4.hasOwnProperty; - -/** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ -function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1, - objProps = _getAllKeys(object), - objLength = objProps.length, - othProps = _getAllKeys(other), - othLength = othProps.length; - - if (objLength != othLength && !isPartial) { +function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { return false; } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty$4.call(other, key))) { - return false; - } - } - // Check that cyclic values are equal. - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; } -var _equalObjects = equalObjects; - -/* Built-in method references that are verified to be native. */ -var DataView = _getNative(_root, 'DataView'); - -var _DataView = DataView; - -/* Built-in method references that are verified to be native. */ -var Promise$1 = _getNative(_root, 'Promise'); - -var _Promise = Promise$1; - -/* Built-in method references that are verified to be native. */ -var Set$1 = _getNative(_root, 'Set'); - -var _Set = Set$1; - -/* Built-in method references that are verified to be native. */ -var WeakMap = _getNative(_root, 'WeakMap'); - -var _WeakMap = WeakMap; - -/** `Object#toString` result references. */ -var mapTag$3 = '[object Map]', - objectTag$2 = '[object Object]', - promiseTag = '[object Promise]', - setTag$3 = '[object Set]', - weakMapTag$1 = '[object WeakMap]'; +// and applies them to the HTMLElements such as popper and arrow -var dataViewTag$2 = '[object DataView]'; +function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements -/** Used to detect maps, sets, and weakmaps. */ -var dataViewCtorString = _toSource(_DataView), - mapCtorString = _toSource(_Map), - promiseCtorString = _toSource(_Promise), - setCtorString = _toSource(_Set), - weakMapCtorString = _toSource(_WeakMap); + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] -/** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ -var getTag = _baseGetTag; -// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. -if ((_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$2) || - (_Map && getTag(new _Map) != mapTag$3) || - (_Promise && getTag(_Promise.resolve()) != promiseTag) || - (_Set && getTag(new _Set) != setTag$3) || - (_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) { - getTag = function(value) { - var result = _baseGetTag(value), - Ctor = result == objectTag$2 ? value.constructor : undefined, - ctorString = Ctor ? _toSource(Ctor) : ''; + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag$2; - case mapCtorString: return mapTag$3; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag$3; - case weakMapCtorString: return weakMapTag$1; + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); } - } - return result; - }; + }); + }); } -var _getTag = getTag; +function effect$2(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG = 1; + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements -/** `Object#toString` result references. */ -var argsTag$1 = '[object Arguments]', - arrayTag$1 = '[object Array]', - objectTag$1 = '[object Object]'; + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } -/** Used for built-in method references. */ -var objectProto$3 = Object.prototype; + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; +} // eslint-disable-next-line import/no-unused-modules -/** Used to check objects for own properties. */ -var hasOwnProperty$3 = objectProto$3.hasOwnProperty; -/** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ -function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray_1(object), - othIsArr = isArray_1(other), - objTag = objIsArr ? arrayTag$1 : _getTag(object), - othTag = othIsArr ? arrayTag$1 : _getTag(other); +var applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect$2, + requires: ['computeStyles'] +}; - objTag = objTag == argsTag$1 ? objectTag$1 : objTag; - othTag = othTag == argsTag$1 ? objectTag$1 : othTag; +function getBasePlacement(placement) { + return placement.split('-')[0]; +} - var objIsObj = objTag == objectTag$1, - othIsObj = othTag == objectTag$1, - isSameTag = objTag == othTag; +var max = Math.max; +var min = Math.min; +var round = Math.round; - if (isSameTag && isBuffer_1(object)) { - if (!isBuffer_1(other)) { - return false; - } - objIsArr = true; - objIsObj = false; +function getBoundingClientRect(element, includeScale) { + if (includeScale === void 0) { + includeScale = false; } - if (isSameTag && !objIsObj) { - stack || (stack = new _Stack); - return (objIsArr || isTypedArray_1(object)) - ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty$3.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty$3.call(other, '__wrapped__'); - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; + var rect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; - stack || (stack = new _Stack); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + if (isHTMLElement(element) && includeScale) { + var offsetHeight = element.offsetHeight; + var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale + // Fallback to 1 in case both values are `0` + + if (offsetWidth > 0) { + scaleX = round(rect.width) / offsetWidth || 1; + } + + if (offsetHeight > 0) { + scaleY = round(rect.height) / offsetHeight || 1; } } - if (!isSameTag) { - return false; - } - stack || (stack = new _Stack); - return _equalObjects(object, other, bitmask, customizer, equalFunc, stack); + + return { + width: rect.width / scaleX, + height: rect.height / scaleY, + top: rect.top / scaleY, + right: rect.right / scaleX, + bottom: rect.bottom / scaleY, + left: rect.left / scaleX, + x: rect.left / scaleX, + y: rect.top / scaleY + }; } -var _baseIsEqualDeep = baseIsEqualDeep; +// means it doesn't take into account transforms. -/** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ -function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike_1(value) && !isObjectLike_1(other))) { - return value !== value && other !== other; +function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; } - return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); -} -var _baseIsEqual = baseIsEqual; + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } -/** - * Performs a deep comparison between two values to determine if they are - * equivalent. - * - * **Note:** This method supports comparing arrays, array buffers, booleans, - * date objects, error objects, maps, numbers, `Object` objects, regexes, - * sets, strings, symbols, and typed arrays. `Object` objects are compared - * by their own, not inherited, enumerable properties. Functions and DOM - * nodes are compared by strict equality, i.e. `===`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.isEqual(object, other); - * // => true - * - * object === other; - * // => false - */ -function isEqual(value, other) { - return _baseIsEqual(value, other); + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; } -var isEqual_1 = isEqual; +function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method -/** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ -function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; -} + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... -var _arrayEach = arrayEach; -var defineProperty = (function() { - try { - var func = _getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} -}()); + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false -var _defineProperty = defineProperty; -/** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ -function baseAssignValue(object, key, value) { - if (key == '__proto__' && _defineProperty) { - _defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; - } + return false; } -var _baseAssignValue = baseAssignValue; +function getComputedStyle(element) { + return getWindow(element).getComputedStyle(element); +} -/** Used for built-in method references. */ -var objectProto$2 = Object.prototype; +function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; +} -/** Used to check objects for own properties. */ -var hasOwnProperty$2 = objectProto$2.hasOwnProperty; +function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; +} -/** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ -function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty$2.call(object, key) && eq_1(objValue, value)) || - (value === undefined && !(key in object))) { - _baseAssignValue(object, key, value); +function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); } -var _assignValue = assignValue; +function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle(element).position === 'fixed') { + return null; + } -/** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ -function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); + return element.offsetParent; +} // `.offsetParent` reports `null` for fixed elements, while absolute elements +// return the containing block - var index = -1, - length = props.length; - while (++index < length) { - var key = props[index]; +function getContainingBlock(element) { + var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1; + var isIE = navigator.userAgent.indexOf('Trident') !== -1; - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; + if (isIE && isHTMLElement(element)) { + // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport + var elementCss = getComputedStyle(element); - if (newValue === undefined) { - newValue = source[key]; + if (elementCss.position === 'fixed') { + return null; } - if (isNew) { - _baseAssignValue(object, key, newValue); + } + + var currentNode = getParentNode(element); + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; } else { - _assignValue(object, key, newValue); + currentNode = currentNode.parentNode; } } - return object; + + return null; +} // Gets the closest ancestor positioned element. Handles some edge cases, +// such as table ancestors and cross browser bugs. + + +function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; } -var _copyObject = copyObject; +function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; +} -/** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ -function baseAssign(object, source) { - return object && _copyObject(source, keys_1(source), object); +function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); +} +function withinMaxClamp(min, value, max) { + var v = within(min, value, max); + return v > max ? max : v; +} + +function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; } -var _baseAssign = baseAssign; +function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); +} -/** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } +function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); +} + +var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); +}; + +function arrow(_ref) { + var _state$modifiersData$; + + var state = _ref.state, + name = _ref.name, + options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? 'height' : 'width'; + + if (!arrowElement || !popperOffsets) { + return; } - return result; + + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === 'y' ? top : left; + var maxProp = axis === 'y' ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is + // outside of the popper bounds + + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = within(min, center, max); // Prevents breaking syntax highlighting... + + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); } -var _nativeKeysIn = nativeKeysIn; +function effect$1(_ref2) { + var state = _ref2.state, + options = _ref2.options; + var _options$element = options.element, + arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; -/** Used for built-in method references. */ -var objectProto$1 = Object.prototype; + if (arrowElement == null) { + return; + } // CSS selector -/** Used to check objects for own properties. */ -var hasOwnProperty$1 = objectProto$1.hasOwnProperty; -/** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function baseKeysIn(object) { - if (!isObject_1(object)) { - return _nativeKeysIn(object); + if (typeof arrowElement === 'string') { + arrowElement = state.elements.popper.querySelector(arrowElement); + + if (!arrowElement) { + return; + } } - var isProto = _isPrototype(object), - result = []; - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty$1.call(object, key)))) { - result.push(key); + if (process.env.NODE_ENV !== "production") { + if (!isHTMLElement(arrowElement)) { + console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' ')); } } - return result; -} -var _baseKeysIn = baseKeysIn; + if (!contains(state.elements.popper, arrowElement)) { + if (process.env.NODE_ENV !== "production") { + console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', 'element.'].join(' ')); + } -/** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ -function keysIn(object) { - return isArrayLike_1(object) ? _arrayLikeKeys(object, true) : _baseKeysIn(object); + return; + } + + state.elements.arrow = arrowElement; +} // eslint-disable-next-line import/no-unused-modules + + +var arrow$1 = { + name: 'arrow', + enabled: true, + phase: 'main', + fn: arrow, + effect: effect$1, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'] +}; + +function getVariation(placement) { + return placement.split('-')[1]; } -var keysIn_1 = keysIn; +var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' +}; // Round the offsets to the nearest suitable subpixel based on the DPR. +// Zooming can change the DPR, but it seems to report a value that will +// cleanly divide the values into the appropriate subpixels. -/** - * The base implementation of `_.assignIn` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ -function baseAssignIn(object, source) { - return object && _copyObject(source, keysIn_1(source), object); +function roundOffsetsByDPR(_ref) { + var x = _ref.x, + y = _ref.y; + var win = window; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; } -var _baseAssignIn = baseAssignIn; +function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + variation = _ref2.variation, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets, + isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, + x = _offsets$x === void 0 ? 0 : _offsets$x, + _offsets$y = offsets.y, + y = _offsets$y === void 0 ? 0 : _offsets$y; + + var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ + x: x, + y: y + }) : { + x: x, + y: y + }; -var _cloneBuffer = createCommonjsModule(function (module, exports) { -/** Detect free variable `exports`. */ -var freeExports = exports && !exports.nodeType && exports; + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it -/** Detect free variable `module`. */ -var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; -/** Detect the popular CommonJS extension `module.exports`. */ -var moduleExports = freeModule && freeModule.exports === freeExports; + offsetParent = offsetParent; -/** Built-in value references. */ -var Buffer = moduleExports ? _root.Buffer : undefined, - allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] + offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } -/** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ -function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] + offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } } - var length = buffer.length, - result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - buffer.copy(result); - return result; -} + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); -module.exports = cloneBuffer; -}); + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x: x, + y: y + }) : { + x: x, + y: y + }; -/** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ -function copyArray(source, array) { - var index = -1, - length = source.length; + x = _ref4.x; + y = _ref4.y; - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; -} + if (gpuAcceleration) { + var _Object$assign; -var _copyArray = copyArray; + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } -/** - * Copies own symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ -function copySymbols(source, object) { - return _copyObject(source, _getSymbols(source), object); + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); } -var _copySymbols = copySymbols; +function computeStyles(_ref5) { + var state = _ref5.state, + options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; -/** Built-in value references. */ -var getPrototype = _overArg(Object.getPrototypeOf, Object); + if (process.env.NODE_ENV !== "production") { + var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || ''; -var _getPrototype = getPrototype; + if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) { + return transitionProperty.indexOf(property) >= 0; + })) { + console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: "transform", "top", "right", "bottom", "left".', '\n\n', 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\n\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' ')); + } + } -/* Built-in method references for those with the same name as other `lodash` methods. */ -var nativeGetSymbols = Object.getOwnPropertySymbols; + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration, + isFixed: state.options.strategy === 'fixed' + }; -/** - * Creates an array of the own and inherited enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ -var getSymbolsIn = !nativeGetSymbols ? stubArray_1 : function(object) { - var result = []; - while (object) { - _arrayPush(result, _getSymbols(object)); - object = _getPrototype(object); + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); } - return result; + + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } + + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement + }); +} // eslint-disable-next-line import/no-unused-modules + + +var computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} }; -var _getSymbolsIn = getSymbolsIn; +var passive = { + passive: true +}; -/** - * Copies own and inherited symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ -function copySymbolsIn(source, object) { - return _copyObject(source, _getSymbolsIn(source), object); -} +function effect(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } -var _copySymbolsIn = copySymbolsIn; + if (resize) { + window.addEventListener('resize', instance.update, passive); + } -/** - * Creates an array of own and inherited enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ -function getAllKeysIn(object) { - return _baseGetAllKeys(object, keysIn_1, _getSymbolsIn); -} + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); + } -var _getAllKeysIn = getAllKeysIn; + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; +} // eslint-disable-next-line import/no-unused-modules -/** Used for built-in method references. */ -var objectProto = Object.prototype; -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; +var eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect, + data: {} +}; -/** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ -function initCloneArray(array) { - var length = array.length, - result = new array.constructor(length); +var hash$1 = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' +}; +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash$1[matched]; + }); +} - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; +var hash = { + start: 'end', + end: 'start' +}; +function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function (matched) { + return hash[matched]; + }); +} + +function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; +} + +function getWindowScrollBarX(element) { + // If has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; +} + +function getViewportRect(element) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper + // can be obscured underneath it. + // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even + // if it isn't open, so if this isn't available, the popper will be detected + // to overflow the bottom of the screen too early. + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently) + // In Chrome, it returns a value very close to 0 (+/-) but contains rounding + // errors due to floating point numbers, so we need to check precision. + // Safari returns a number <= 0, usually < -1 when pinch-zoomed + // Feature detection fails in mobile emulation mode in Chrome. + // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < + // 0.001 + // Fallback here: "Not Safari" userAgent + + if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } } - return result; + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; } -var _initCloneArray = initCloneArray; +// of the `` and `` rect bounds if horizontally scrollable -/** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ -function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new _Uint8Array(result).set(new _Uint8Array(arrayBuffer)); - return result; -} +function getDocumentRect(element) { + var _element$ownerDocumen; -var _cloneArrayBuffer = cloneArrayBuffer; + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; -/** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ -function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? _cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); -} + if (getComputedStyle(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } -var _cloneDataView = cloneDataView; + return { + width: width, + height: height, + x: x, + y: y + }; +} -/** Used to match `RegExp` flags from their coerced string values. */ -var reFlags = /\w*$/; +function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; -/** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ -function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); } -var _cloneRegExp = cloneRegExp; +function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } -/** Used to convert symbols to primitives and strings. */ -var symbolProto = _Symbol ? _Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } -/** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ -function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; + return getScrollParent(getParentNode(node)); } -var _cloneSymbol = cloneSymbol; +/* +given a DOM element, return the list of all scroll parents, up the list of ancesors +until we get to the top window object. This list is what we attach scroll listeners +to, because if any of these parent elements scroll, we'll need to re-calculate the +reference element's position. +*/ -/** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ -function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? _cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); -} +function listScrollParents(element, list) { + var _element$ownerDocumen; -var _cloneTypedArray = cloneTypedArray; + if (list === void 0) { + list = []; + } -/** `Object#toString` result references. */ -var boolTag$1 = '[object Boolean]', - dateTag$1 = '[object Date]', - mapTag$2 = '[object Map]', - numberTag$1 = '[object Number]', - regexpTag$1 = '[object RegExp]', - setTag$2 = '[object Set]', - stringTag$1 = '[object String]', - symbolTag$1 = '[object Symbol]'; + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); +} + +function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); +} -var arrayBufferTag$1 = '[object ArrayBuffer]', - dataViewTag$1 = '[object DataView]', - float32Tag$1 = '[object Float32Array]', - float64Tag$1 = '[object Float64Array]', - int8Tag$1 = '[object Int8Array]', - int16Tag$1 = '[object Int16Array]', - int32Tag$1 = '[object Int32Array]', - uint8Tag$1 = '[object Uint8Array]', - uint8ClampedTag$1 = '[object Uint8ClampedArray]', - uint16Tag$1 = '[object Uint16Array]', - uint32Tag$1 = '[object Uint32Array]'; +function getInnerBoundingClientRect(element) { + var rect = getBoundingClientRect(element); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; +} -/** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ -function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag$1: - return _cloneArrayBuffer(object); +function getClientRectFromMixedType(element, clippingParent) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); +} // A "clipping parent" is an overflowable container with the characteristic of +// clipping (or hiding) overflowing elements with a position different from +// `initial` - case boolTag$1: - case dateTag$1: - return new Ctor(+object); - case dataViewTag$1: - return _cloneDataView(object, isDeep); +function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; - case float32Tag$1: case float64Tag$1: - case int8Tag$1: case int16Tag$1: case int32Tag$1: - case uint8Tag$1: case uint8ClampedTag$1: case uint16Tag$1: case uint32Tag$1: - return _cloneTypedArray(object, isDeep); + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 - case mapTag$2: - return new Ctor; - case numberTag$1: - case stringTag$1: - return new Ctor(object); + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); +} // Gets the maximum area that the element is visible in due to any number of +// clipping parents + + +function getClippingRect(element, boundary, rootBoundary) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; +} + +function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; - case regexpTag$1: - return _cloneRegExp(object); + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; - case setTag$2: - return new Ctor; + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; - case symbolTag$1: - return _cloneSymbol(object); + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; } -} -var _initCloneByTag = initCloneByTag; + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; -/** Built-in value references. */ -var objectCreate = Object.create; + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; -/** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ -var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject_1(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object; - object.prototype = undefined; - return result; - }; -}()); + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; -var _baseCreate = baseCreate; + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } + } -/** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ -function initCloneObject(object) { - return (typeof object.constructor == 'function' && !_isPrototype(object)) - ? _baseCreate(_getPrototype(object)) - : {}; + return offsets; } -var _initCloneObject = initCloneObject; +function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } -/** `Object#toString` result references. */ -var mapTag$1 = '[object Map]'; + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } -/** - * The base implementation of `_.isMap` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - */ -function baseIsMap(value) { - return isObjectLike_1(value) && _getTag(value) == mapTag$1; + return overflowOffsets; } -var _baseIsMap = baseIsMap; - -/* Node.js helper references. */ -var nodeIsMap = _nodeUtil && _nodeUtil.isMap; - -/** - * Checks if `value` is classified as a `Map` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - * @example - * - * _.isMap(new Map); - * // => true - * - * _.isMap(new WeakMap); - * // => false - */ -var isMap = nodeIsMap ? _baseUnary(nodeIsMap) : _baseIsMap; +function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } -var isMap_1 = isMap; + var _options = options, + placement = _options.placement, + boundary = _options.boundary, + rootBoundary = _options.rootBoundary, + padding = _options.padding, + flipVariations = _options.flipVariations, + _options$allowedAutoP = _options.allowedAutoPlacements, + allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { + return getVariation(placement) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function (placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; + }); -/** `Object#toString` result references. */ -var setTag$1 = '[object Set]'; + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; -/** - * The base implementation of `_.isSet` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - */ -function baseIsSet(value) { - return isObjectLike_1(value) && _getTag(value) == setTag$1; + if (process.env.NODE_ENV !== "production") { + console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(' ')); + } + } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... + + + var overflows = allowedPlacements.reduce(function (acc, placement) { + acc[placement] = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding + })[getBasePlacement(placement)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function (a, b) { + return overflows[a] - overflows[b]; + }); } -var _baseIsSet = baseIsSet; - -/* Node.js helper references. */ -var nodeIsSet = _nodeUtil && _nodeUtil.isSet; +function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } -/** - * Checks if `value` is classified as a `Set` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - * @example - * - * _.isSet(new Set); - * // => true - * - * _.isSet(new WeakSet); - * // => false - */ -var isSet = nodeIsSet ? _baseUnary(nodeIsSet) : _baseIsSet; + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; +} -var isSet_1 = isSet; +function flip(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; -/** Used to compose bitmasks for cloning. */ -var CLONE_DEEP_FLAG$1 = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG$1 = 4; + if (state.modifiersData[name]._skip) { + return; + } -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - weakMapTag = '[object WeakMap]'; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, + specifiedFallbackPlacements = options.fallbackPlacements, + padding = options.padding, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + _options$flipVariatio = options.flipVariations, + flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, + allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { + return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + flipVariations: flipVariations, + allowedAutoPlacements: allowedAutoPlacements + }) : placement); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + + var _basePlacement = getBasePlacement(placement); + + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? 'width' : 'height'; + var overflow = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + altBoundary: altBoundary, + padding: padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; -var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } -/** Used to identify `toStringTag` values supported by `_.clone`. */ -var cloneableTags = {}; -cloneableTags[argsTag] = cloneableTags[arrayTag] = -cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = -cloneableTags[boolTag] = cloneableTags[dateTag] = -cloneableTags[float32Tag] = cloneableTags[float64Tag] = -cloneableTags[int8Tag] = cloneableTags[int16Tag] = -cloneableTags[int32Tag] = cloneableTags[mapTag] = -cloneableTags[numberTag] = cloneableTags[objectTag] = -cloneableTags[regexpTag] = cloneableTags[setTag] = -cloneableTags[stringTag] = cloneableTags[symbolTag] = -cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = -cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; -cloneableTags[errorTag] = cloneableTags[funcTag] = -cloneableTags[weakMapTag] = false; + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; -/** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} bitmask The bitmask flags. - * 1 - Deep clone - * 2 - Flatten inherited properties - * 4 - Clone symbols - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ -function baseClone(value, bitmask, customizer, key, object, stack) { - var result, - isDeep = bitmask & CLONE_DEEP_FLAG$1, - isFlat = bitmask & CLONE_FLAT_FLAG, - isFull = bitmask & CLONE_SYMBOLS_FLAG$1; + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject_1(value)) { - return value; - } - var isArr = isArray_1(value); - if (isArr) { - result = _initCloneArray(value); - if (!isDeep) { - return _copyArray(value, result); + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); } - } else { - var tag = _getTag(value), - isFunc = tag == funcTag || tag == genTag; - if (isBuffer_1(value)) { - return _cloneBuffer(value, isDeep); + if (checks.every(function (check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = (isFlat || isFunc) ? {} : _initCloneObject(value); - if (!isDeep) { - return isFlat - ? _copySymbolsIn(value, _baseAssignIn(result, value)) - : _copySymbols(value, _baseAssign(result, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; + + checksMap.set(placement, checks); + } + + if (makeFallbackChecks) { + // `2` may be desired in some cases – research later + var numberOfChecks = flipVariations ? 3 : 1; + + var _loop = function _loop(_i) { + var fittingPlacement = placements.find(function (placement) { + var checks = checksMap.get(placement); + + if (checks) { + return checks.slice(0, _i).every(function (check) { + return check; + }); + } + }); + + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; } - result = _initCloneByTag(value, tag, isDeep); + }; + + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + + if (_ret === "break") break; } } - // Check for circular references and return its corresponding clone. - stack || (stack = new _Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; + + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; } - stack.set(value, result); +} // eslint-disable-next-line import/no-unused-modules - if (isSet_1(value)) { - value.forEach(function(subValue) { - result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap_1(value)) { - value.forEach(function(subValue, key) { - result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); + +var flip$1 = { + name: 'flip', + enabled: true, + phase: 'main', + fn: flip, + requiresIfExists: ['offset'], + data: { + _skip: false } +}; - var keysFunc = isFull - ? (isFlat ? _getAllKeysIn : _getAllKeys) - : (isFlat ? keysIn_1 : keys_1); +function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } - var props = isArr ? undefined : keysFunc(value); - _arrayEach(props || value, function(subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; - } - // Recursively populate clone (susceptible to call stack limits). - _assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; +} + +function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function (side) { + return overflow[side] >= 0; }); - return result; } -var _baseClone = baseClone; +function hide(_ref) { + var state = _ref.state, + name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: 'reference' + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets: referenceClippingOffsets, + popperEscapeOffsets: popperEscapeOffsets, + isReferenceHidden: isReferenceHidden, + hasPopperEscaped: hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-reference-hidden': isReferenceHidden, + 'data-popper-escaped': hasPopperEscaped + }); +} // eslint-disable-next-line import/no-unused-modules -/** Used to compose bitmasks for cloning. */ -var CLONE_DEEP_FLAG = 1, - CLONE_SYMBOLS_FLAG = 4; -/** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @see _.clone - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ -function cloneDeep(value) { - return _baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); +var hide$1 = { + name: 'hide', + enabled: true, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: hide +}; + +function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + + var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { + placement: placement + })) : offset, + skidding = _ref[0], + distance = _ref[1]; + + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; } -var cloneDeep_1 = cloneDeep; +function offset(_ref2) { + var state = _ref2.state, + options = _ref2.options, + name = _ref2.name; + var _options$offset = options.offset, + offset = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function (acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }, {}); + var _data$state$placement = data[state.placement], + x = _data$state$placement.x, + y = _data$state$placement.y; + + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } -/** - * Observes all known project index files and keeps their frontmatters - * in sync with the corresponding store. - * - * Store updates are written to disk, and file edits are set to the store. - * - * When index files have invalid frontmatter, e.g. you're mid-edit, updates - * are ignored. This class must have `destroy()` called on plugin unload - * to avoid leaking store subscriptions. - */ -class IndexMetadataObserver { - constructor(app) { - this.ignoreNextMetadataUpdate = true; - this.lastKnownMetadataState = {}; - this.vault = app.vault; - this.cache = app.metadataCache; - // Load project/index file paths - this.unsubscribeSettings = pluginSettings.subscribe((settings) => { - const indexPaths = []; - Object.keys(settings.projects).forEach((projectPath) => { - const project = settings.projects[projectPath]; - indexPaths.push({ - projectPath, - indexPath: indexFilePath(project), - }); - }); - this.watchedIndexPaths = indexPaths; - // Load existing projects' metadata - const allMetadata = {}; - this.watchedIndexPaths.forEach((paths) => { - const metadata = this.cache.getCache(paths.indexPath); - // Sometimes this can be undefined, especially if you're creating a new project. - // In that case, we'll get the metadata event later, so it's okay to skip it here. - if (metadata) { - const frontmatter = metadata.frontmatter; - allMetadata[paths.projectPath] = filterMetadata(frontmatter); - } - }); - this.lastKnownMetadataState = cloneDeep_1(allMetadata); - if (this.unsubscribeMetadata) { - this.ignoreNextMetadataUpdate = true; - } - projectMetadata.set(allMetadata); - }); - // Pass store metadata changes (ie longform app changes) - // back to the index file - this.unsubscribeMetadata = projectMetadata.subscribe((value) => { - if (!this.ignoreNextMetadataUpdate) { - this.metadataStoreChanged(value); - } - this.ignoreNextMetadataUpdate = false; - this.lastKnownMetadataState = cloneDeep_1(value); - }); + state.modifiersData[name] = data; +} // eslint-disable-next-line import/no-unused-modules + + +var offset$1 = { + name: 'offset', + enabled: true, + phase: 'main', + requires: ['popperOffsets'], + fn: offset +}; + +function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); +} // eslint-disable-next-line import/no-unused-modules + + +var popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} +}; + +function getAltAxis(axis) { + return axis === 'x' ? 'y' : 'x'; +} + +function preventOverflow(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + padding = options.padding, + _options$tether = options.tether, + tether = _options$tether === void 0 ? true : _options$tether, + _options$tetherOffset = options.tetherOffset, + tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + altBoundary: altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + + if (!popperOffsets) { + return; + } + + if (checkMainAxis) { + var _offsetModifierState$; + + var mainSide = mainAxis === 'y' ? top : left; + var altSide = mainAxis === 'y' ? bottom : right; + var len = mainAxis === 'y' ? 'height' : 'width'; + var offset = popperOffsets[mainAxis]; + var min$1 = offset + overflow[mainSide]; + var max$1 = offset - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go + // outside the reference bounds + + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want + // to include its full size in the calculation. If the reference is small + // and near the edge of a boundary, the popper can overflow even if the + // reference is not overflowing as well (e.g. virtual elements with no + // width or height) + + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset + maxOffset - offsetModifierValue; + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } + + if (checkAltAxis) { + var _offsetModifierState$2; + + var _mainSide = mainAxis === 'x' ? top : left; + + var _altSide = mainAxis === 'x' ? bottom : right; + + var _offset = popperOffsets[altAxis]; + + var _len = altAxis === 'y' ? 'height' : 'width'; + + var _min = _offset + overflow[_mainSide]; + + var _max = _offset - overflow[_altSide]; + + var isOriginSide = [top, left].indexOf(basePlacement) !== -1; + + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + + var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + + state.modifiersData[name] = data; +} // eslint-disable-next-line import/no-unused-modules + + +var preventOverflow$1 = { + name: 'preventOverflow', + enabled: true, + phase: 'main', + fn: preventOverflow, + requiresIfExists: ['offset'] +}; + +function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; +} + +function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } +} + +function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = round(rect.width) / element.offsetWidth || 1; + var scaleY = round(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; +} // Returns the composite rect of an element relative to its offsetParent. +// Composite means it takes into account transforms as well as layout. + + +function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); } - destroy() { - this.unsubscribeSettings(); - this.unsubscribeMetadata(); + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); } - metadataCacheChanged(file) { - // Is this a file we're watching? - const paths = this.watchedIndexPaths.find((p) => p.indexPath === file.path); - if (paths) { - const fileMetadata = this.cache.getFileCache(file); - // Ignore missing or invalid YAML results, file likely mid-edit - if (!fileMetadata || !fileMetadata.frontmatter) { - return; - } - const newProjectMetadata = fileMetadata.frontmatter; - this.ignoreNextMetadataUpdate = true; - projectMetadata.update((value) => { - const v = value; - v[paths.projectPath] = filterMetadata(newProjectMetadata); - this.lastKnownMetadataState = cloneDeep_1(v); - return v; - }); + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; +} + +function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); } - metadataStoreChanged(value) { - const lastKnownProjectPaths = Object.keys(this.lastKnownMetadataState); - Object.keys(value).forEach((projectPath) => { - const isKnownPath = lastKnownProjectPaths.contains(projectPath); - const paths = this.watchedIndexPaths.find((p) => p.projectPath === projectPath); - const newIndexMetadata = value[projectPath]; - const isNew = !isKnownPath || - !isEqual_1(this.lastKnownMetadataState[projectPath], newIndexMetadata); - if (paths && isNew) { - const contents = indexBodyFor(newIndexMetadata); - this.vault.adapter.write(paths.indexPath, contents); - } + }); + return result; +} + +function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); +} + +function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); }); - this.lastKnownMetadataState = cloneDeep_1(value); + }); } + + return pending; + }; } -function filterMetadata(metadata) { - // Ideally TypeScript would do this for me, but that seems to be impossible. - // Instead, we have to manually strip out anything we know isn't a property of the type. - return { - version: metadata.version, - drafts: metadata.drafts, - }; + +function format(str) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return [].concat(args).reduce(function (p, c) { + return p.replace(/%s/, c); + }, str); +} + +var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s'; +var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available'; +var VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options']; +function validateModifiers(modifiers) { + modifiers.forEach(function (modifier) { + [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)` + .filter(function (value, index, self) { + return self.indexOf(value) === index; + }).forEach(function (key) { + switch (key) { + case 'name': + if (typeof modifier.name !== 'string') { + console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', "\"" + String(modifier.name) + "\"")); + } + + break; + + case 'enabled': + if (typeof modifier.enabled !== 'boolean') { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', "\"" + String(modifier.enabled) + "\"")); + } + + break; + + case 'phase': + if (modifierPhases.indexOf(modifier.phase) < 0) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(', '), "\"" + String(modifier.phase) + "\"")); + } + + break; + + case 'fn': + if (typeof modifier.fn !== 'function') { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', "\"" + String(modifier.fn) + "\"")); + } + + break; + + case 'effect': + if (modifier.effect != null && typeof modifier.effect !== 'function') { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', "\"" + String(modifier.fn) + "\"")); + } + + break; + + case 'requires': + if (modifier.requires != null && !Array.isArray(modifier.requires)) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', "\"" + String(modifier.requires) + "\"")); + } + + break; + + case 'requiresIfExists': + if (!Array.isArray(modifier.requiresIfExists)) { + console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', "\"" + String(modifier.requiresIfExists) + "\"")); + } + + break; + + case 'options': + case 'data': + break; + + default: + console.error("PopperJS: an invalid property has been provided to the \"" + modifier.name + "\" modifier, valid properties are " + VALID_PROPERTIES.map(function (s) { + return "\"" + s + "\""; + }).join(', ') + "; but \"" + key + "\" was provided."); + } + + modifier.requires && modifier.requires.forEach(function (requirement) { + if (modifiers.find(function (mod) { + return mod.name === requirement; + }) == null) { + console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement)); + } + }); + }); + }); } -var DraftsMembership; -(function (DraftsMembership) { - DraftsMembership[DraftsMembership["Draft"] = 0] = "Draft"; - DraftsMembership[DraftsMembership["Scene"] = 1] = "Scene"; - DraftsMembership[DraftsMembership["None"] = 2] = "None"; -})(DraftsMembership || (DraftsMembership = {})); -function membership(abstractFile, draftsPath) { - if (abstractFile instanceof obsidian.TFolder && - abstractFile.parent && - abstractFile.parent.path === draftsPath) { - return DraftsMembership.Draft; - } - else if (abstractFile instanceof obsidian.TFile && - abstractFile.parent && - abstractFile.parent.parent && - abstractFile.parent.parent.path === draftsPath) { - return DraftsMembership.Scene; +function uniqueBy(arr, fn) { + var identifiers = new Set(); + return arr.filter(function (item) { + var identifier = fn(item); + + if (!identifiers.has(identifier)) { + identifiers.add(identifier); + return true; } - return DraftsMembership.None; + }); } -class FolderObserver { - constructor(app) { - this.vault = app.vault; - // Load project paths - this.unsubscribeSettings = pluginSettings.subscribe((settings) => { - this.watchedDraftFolders = Object.keys(settings.projects).map((projectPath) => ({ - draftsPath: obsidian.normalizePath(`${projectPath}/${settings.projects[projectPath].draftsPath}`), - projectPath, - })); - }); - } - loadProjects(renameInfo) { - const toStore = {}; - this.watchedDraftFolders.forEach(({ draftsPath, projectPath }) => { - toStore[projectPath] = {}; - const folder = this.vault.getAbstractFileByPath(draftsPath); - if (!(folder instanceof obsidian.TFolder)) { - return; - } - // Recurse all watched projects' draft folders. - // Because recursion, we know drafts will be encountered before their children. - obsidian.Vault.recurseChildren(folder, (abstractFile) => { - const status = membership(abstractFile, draftsPath); - if (status === DraftsMembership.Draft) { - toStore[projectPath][abstractFile.name] = []; - // We only care about folders if they're draft folders - } - else if (status === DraftsMembership.Scene && - abstractFile instanceof obsidian.TFile) { - // We only care about files if they're members of a draft - toStore[projectPath][abstractFile.parent.name].push(abstractFile.basename); - } - }); - }); - projectMetadata.update((metadata) => { - // Sync files on disk with scenes in metadata; - // Existing files are sorted by scene order, - // new ones are added to the bottom. - let newMetadata = cloneDeep_1(metadata); - // javascript is stupid. - // eslint-disable-next-line - const functionalSplice = (arr, index, value) => { - const v = [...arr]; - v.splice(index, 1, value); - return v; - }; - const cleanlyReplaceDraft = (meta, _projectPath, _draftIndex, _draft) => (Object.assign(Object.assign({}, meta), { [_projectPath]: Object.assign(Object.assign({}, meta[_projectPath]), { drafts: functionalSplice(newMetadata[_projectPath].drafts, _draftIndex, _draft) }) })); - Object.keys(toStore).forEach((projectPath) => { - // Handle cases where the metadata cache hasn't caught up to disk yet - // and thus no project exists there at all. - if (!newMetadata[projectPath]) { - return; - } - // If a draft has been renamed, sub in the renamed draft in metadata - if (renameInfo && renameInfo.newFile instanceof obsidian.TFolder) { - const oldFolder = renameInfo.oldPath.split("/").slice(-1)[0]; - const newFolder = renameInfo.newFile.name; - const draftIndex = newMetadata[projectPath].drafts.findIndex((d) => d.folder === oldFolder); - if (draftIndex >= 0) { - const draft = newMetadata[projectPath].drafts[draftIndex]; - newMetadata = cleanlyReplaceDraft(newMetadata, projectPath, draftIndex, Object.assign(Object.assign({}, draft), { folder: newFolder, name: newFolder })); - } - } - const metadataLookup = buildDraftsLookup(newMetadata[projectPath].drafts); - Object.keys(toStore[projectPath]).forEach((draftPath) => { - const metadataDraft = metadataLookup[draftPath]; - const metadataScenes = metadataDraft ? metadataDraft.scenes : []; - const fileScenes = toStore[projectPath][draftPath]; - const existingScenes = []; - metadataScenes.forEach((s) => { - if (fileScenes.contains(s)) { - // Retain existing scene - existingScenes.push(s); - } - else if (renameInfo && - renameInfo.newFile instanceof obsidian.TFile && - fileScenes.contains(renameInfo.newFile.basename)) { - // Swap in a renamed file if it matches the full path - const f = this.watchedDraftFolders.find((f) => f.projectPath === projectPath); - if (f && - obsidian.normalizePath(`${f.draftsPath}/${draftPath}/${s}.md`) === - renameInfo.oldPath) { - existingScenes.push(renameInfo.newFile.basename); - } - } - }); - const newScenes = fileScenes.filter((s) => !existingScenes.contains(s)); - const scenes = [...existingScenes, ...newScenes]; - const draftIndex = newMetadata[projectPath].drafts.findIndex((d) => d.folder === draftPath); - if (draftIndex >= 0) { - const draft = newMetadata[projectPath].drafts[draftIndex]; - newMetadata = cleanlyReplaceDraft(newMetadata, projectPath, draftIndex, Object.assign(Object.assign({}, draft), { scenes })); - } - else { - const draft = { - name: draftPath, - folder: draftPath, - scenes, - }; - newMetadata = cleanlyReplaceDraft(newMetadata, projectPath, newMetadata[projectPath].drafts.length, draft); - } - }); - // Delete any orphaned drafts that are in metadata but no longer on disk - const fileDrafts = Object.keys(toStore[projectPath]); - newMetadata = Object.assign(Object.assign({}, newMetadata), { [projectPath]: Object.assign(Object.assign({}, newMetadata[projectPath]), { drafts: newMetadata[projectPath].drafts.filter((d) => fileDrafts.contains(d.folder)) }) }); + +function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); +} + +var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.'; +var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.'; +var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' +}; + +function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); +} + +function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); // Validate the provided modifiers so that the consumer will get warned + // if one of the modifiers is invalid for any reason + + if (process.env.NODE_ENV !== "production") { + var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) { + var name = _ref.name; + return name; + }); + validateModifiers(modifiers); + + if (getBasePlacement(state.options.placement) === auto) { + var flipModifier = state.orderedModifiers.find(function (_ref2) { + var name = _ref2.name; + return name === 'flip'; }); - return newMetadata; + + if (!flipModifier) { + console.error(['Popper: "auto" placements require the "flip" modifier be', 'present and enabled to work.'].join(' ')); + } + } + + var _getComputedStyle = getComputedStyle(popper), + marginTop = _getComputedStyle.marginTop, + marginRight = _getComputedStyle.marginRight, + marginBottom = _getComputedStyle.marginBottom, + marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can + // cause bugs with positioning, so we'll warn the consumer + + + if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) { + return parseFloat(margin); + })) { + console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' ')); + } + } + + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + if (process.env.NODE_ENV !== "production") { + console.error(INVALID_ELEMENT_ERROR); + } + + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + var __debug_loops__ = 0; + + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (process.env.NODE_ENV !== "production") { + __debug_loops__ += 1; + + if (__debug_loops__ > 100) { + console.error(INFINITE_LOOP_ERROR); + break; + } + } + + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + if (process.env.NODE_ENV !== "production") { + console.error(INVALID_ELEMENT_ERROR); + } + + return instance; } - destroy() { - this.unsubscribeSettings(); + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref3) { + var name = _ref3.name, + _ref3$options = _ref3.options, + options = _ref3$options === void 0 ? {} : _ref3$options, + effect = _ref3.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); } - fileCreated(abstractFile) { - const status = this.anyMembership(abstractFile); - if (status === DraftsMembership.None) { - return; + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; +} + +var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; +var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers +}); // eslint-disable-next-line import/no-unused-modules + +// Credits go to Liam's Periodic Notes Plugin: https://github.com/liamcain/obsidian-periodic-notes +const wrapAround = (value, size) => { + return ((value % size) + size) % size; +}; +class Suggest { + constructor(owner, containerEl, scope) { + this.owner = owner; + this.containerEl = containerEl; + containerEl.on("click", ".suggestion-item", this.onSuggestionClick.bind(this)); + containerEl.on("mousemove", ".suggestion-item", this.onSuggestionMouseover.bind(this)); + scope.register([], "ArrowUp", (event) => { + if (!event.isComposing) { + this.setSelectedItem(this.selectedItem - 1, true); + return false; + } + }); + scope.register([], "ArrowDown", (event) => { + if (!event.isComposing) { + this.setSelectedItem(this.selectedItem + 1, true); + return false; + } + }); + scope.register([], "Enter", (event) => { + if (!event.isComposing) { + this.useSelectedItem(event); + return false; + } + }); + } + onSuggestionClick(event, el) { + event.preventDefault(); + const item = this.suggestions.indexOf(el); + this.setSelectedItem(item, false); + this.useSelectedItem(event); + } + onSuggestionMouseover(_event, el) { + const item = this.suggestions.indexOf(el); + this.setSelectedItem(item, false); + } + setSuggestions(values) { + this.containerEl.empty(); + const suggestionEls = []; + values.forEach((value) => { + const suggestionEl = this.containerEl.createDiv("suggestion-item"); + this.owner.renderSuggestion(value, suggestionEl); + suggestionEls.push(suggestionEl); + }); + this.values = values; + this.suggestions = suggestionEls; + this.setSelectedItem(0, false); + } + useSelectedItem(event) { + const currentValue = this.values[this.selectedItem]; + if (currentValue) { + this.owner.selectSuggestion(currentValue, event); } - // We could do this more intelligently by making minimal edits to the store, - // but for now let's just recalculate it. It's not clear to me yet how expensive - // recursing children is. - this.loadProjects(); } - fileDeleted(abstractFile) { - // We can't do normal status test here because a deleted file's parent is null. - const reload = !!this.watchedDraftFolders.find(({ draftsPath }) => abstractFile.path.startsWith(draftsPath)); - if (!reload) { - return; + setSelectedItem(selectedIndex, scrollIntoView) { + const normalizedIndex = wrapAround(selectedIndex, this.suggestions.length); + const prevSelectedSuggestion = this.suggestions[this.selectedItem]; + const selectedSuggestion = this.suggestions[normalizedIndex]; + prevSelectedSuggestion === null || prevSelectedSuggestion === void 0 ? void 0 : prevSelectedSuggestion.removeClass("is-selected"); + selectedSuggestion === null || selectedSuggestion === void 0 ? void 0 : selectedSuggestion.addClass("is-selected"); + this.selectedItem = normalizedIndex; + if (scrollIntoView) { + selectedSuggestion.scrollIntoView(false); } - // We could do this more intelligently by making minimal edits to the store, - // but for now let's just recalculate it. It's not clear to me yet how expensive - // recursing children is. - this.loadProjects(); } - fileRenamed(abstractFile, oldPath) { - const newPath = abstractFile.path; - // First handle any project renames, as those happen in settings - const folder = this.watchedDraftFolders.find((f) => f.projectPath === oldPath); - if (folder) { - console.log("[Longform] A project has been renamed; updating caches…"); - pluginSettings.update((s) => { - const projects = s.projects; - const project = s.projects[oldPath]; - project.path = newPath; - projects[newPath] = project; - delete s.projects[oldPath]; - let selectedProject = s.selectedProject; - if (selectedProject === oldPath) { - selectedProject = newPath; - } - const newSettings = Object.assign(Object.assign({}, s), { selectedProject, - projects }); - return newSettings; - }); - currentProjectPath.update((p) => { - if (p === oldPath) { - return newPath; - } - return p; - }); - projectMetadata.update((m) => { - const project = m[oldPath]; - m[newPath] = project; - delete m[oldPath]; - return m; - }); +} +class TextInputSuggest { + constructor(app, inputEl) { + this.app = app; + this.inputEl = inputEl; + this.scope = new obsidian.Scope(); + this.suggestEl = createDiv("suggestion-container"); + const suggestion = this.suggestEl.createDiv("suggestion"); + this.suggest = new Suggest(this, suggestion, this.scope); + this.scope.register([], "Escape", this.close.bind(this)); + this.inputEl.addEventListener("input", this.onInputChanged.bind(this)); + this.inputEl.addEventListener("focus", this.onInputChanged.bind(this)); + this.inputEl.addEventListener("blur", this.close.bind(this)); + this.suggestEl.on("mousedown", ".suggestion-container", (event) => { + event.preventDefault(); + }); + } + onInputChanged() { + const inputStr = this.inputEl.value; + const suggestions = this.getSuggestions(inputStr); + if (!suggestions) { + this.close(); return; } - const status = this.anyMembership(abstractFile, oldPath); - if (status === DraftsMembership.None) { - return; + if (suggestions.length > 0) { + this.suggest.setSuggestions(suggestions); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.open(this.app.dom.appContainerEl, this.inputEl); } - // If the current draft was renamed, update that store first. - if (status === DraftsMembership.Draft && - oldPath.endsWith(get_store_value(currentDraftPath))) { - currentDraftPath.set(abstractFile.name); + else { + this.close(); } - // We could do this more intelligently by making minimal edits to the store, - // but for now let's just recalculate it. It's not clear to me yet how expensive - // recursing children is. - this.loadProjects({ newFile: abstractFile, oldPath }); } - anyMembership(abstractFile, oldPath) { - for (const { draftsPath } of this.watchedDraftFolders) { - if (oldPath && oldPath.startsWith(draftsPath)) { - return oldPath.endsWith(".md") - ? DraftsMembership.Scene - : DraftsMembership.Draft; - } - const status = membership(abstractFile, draftsPath); - if (status !== DraftsMembership.None) { - return status; + open(container, inputEl) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.app.keymap.pushScope(this.scope); + container.appendChild(this.suggestEl); + this.popper = createPopper(inputEl, this.suggestEl, { + placement: "bottom-start", + modifiers: [ + { + name: "sameWidth", + enabled: true, + fn: ({ state, instance }) => { + // Note: positioning needs to be calculated twice - + // first pass - positioning it according to the width of the popper + // second pass - position it with the width bound to the reference element + // we need to early exit to avoid an infinite loop + const targetWidth = `${state.rects.reference.width}px`; + if (state.styles.popper.width === targetWidth) { + return; + } + state.styles.popper.width = targetWidth; + instance.update(); + }, + phase: "beforeWrite", + requires: ["computeStyles"], + }, + ], + }); + } + close() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.app.keymap.popScope(this.scope); + this.suggest.setSuggestions([]); + if (this.popper) + this.popper.destroy(); + this.suggestEl.detach(); + } +} + +// Credits go to Liam's Periodic Notes Plugin: https://github.com/liamcain/obsidian-periodic-notes +class FolderSuggest extends TextInputSuggest { + getSuggestions(inputStr) { + const abstractFiles = this.app.vault.getAllLoadedFiles(); + const folders = []; + const lowerCaseInputStr = inputStr.toLowerCase(); + abstractFiles.forEach((folder) => { + if (folder instanceof obsidian.TFolder && + folder.path.toLowerCase().contains(lowerCaseInputStr)) { + folders.push(folder); } - } - return DraftsMembership.None; + }); + return folders; + } + renderSuggestion(file, el) { + el.setText(file.path); + } + selectSuggestion(file) { + this.inputEl.value = file.path; + this.inputEl.trigger("input"); + this.close(); } } @@ -10306,7 +16415,66 @@ class LongformSettingsTab extends obsidian.PluginSettingTab { display() { const { containerEl } = this; containerEl.empty(); - containerEl.createEl("h2", { text: "Longform" }); + new obsidian.Setting(containerEl).setName("User Script Steps").setHeading(); + new obsidian.Setting(containerEl) + .setName("User Script Step Folder") + .setDesc(".js files in this folder will be available as User Script Steps in the Compile panel.") + .addSearch((cb) => { + new FolderSuggest(this.app, cb.inputEl); + cb.setPlaceholder("my/script/steps/") + .setValue(get_store_value(pluginSettings).userScriptFolder) + .onChange((v) => { + pluginSettings.update((s) => (Object.assign(Object.assign({}, s), { userScriptFolder: v }))); + }); + }); + this.stepsSummary = containerEl.createSpan(); + this.stepsList = containerEl.createEl("ul", { + cls: "longform-settings-user-steps", + }); + this.unsubscribeUserScripts = userScriptSteps.subscribe((steps) => { + if (steps && steps.length > 0) { + this.stepsSummary.innerText = `Loaded ${steps.length} step${steps.length !== 1 ? "s" : ""}:`; + } + else { + this.stepsSummary.innerText = "No steps loaded."; + } + if (this.stepsList) { + this.stepsList.empty(); + if (steps) { + steps.forEach((s) => { + const stepEl = this.stepsList.createEl("li"); + stepEl.createSpan({ + text: s.description.name, + cls: "longform-settings-user-step-name", + }); + stepEl.createSpan({ + text: `(${s.description.canonicalID})`, + cls: "longform-settings-user-step-id", + }); + }); + } + } + }); + containerEl.createEl("p", { cls: "setting-item-description" }, (el) => { + el.innerHTML = + "User Script Steps are automatically loaded from this folder. Changes to .js files in this folder are synced with Longform after a slight delay. If your script does not appear here or in the Compile tab, you may have an error in your script—check the dev console for it."; + }); + new obsidian.Setting(containerEl).setName("Debugging").setHeading(); + new obsidian.Setting(containerEl) + .setDesc("Removes all projects from Longform. Useful for debugging issues. No notes will be lost.") + .addButton((cb) => { + cb.setButtonText("Untrack All Projects") + .setWarning() + .onClick(() => __awaiter(this, void 0, void 0, function* () { + console.log("[Longform] Resetting plugin data to: ", DEFAULT_SETTINGS); + pluginSettings.set(DEFAULT_SETTINGS); + currentProjectPath.set(null); + currentDraftPath.set(null); + this.plugin.cachedSettings = get_store_value(pluginSettings); + yield this.plugin.saveSettings(); + })); + }); + new obsidian.Setting(containerEl).setName("Credits").setHeading(); containerEl.createEl("p", {}, (el) => { el.innerHTML = 'Longform written and maintained by Kevin Barrett.'; @@ -10319,30 +16487,191 @@ class LongformSettingsTab extends obsidian.PluginSettingTab { el.innerHTML = 'Icon made by Zlatko Najdenovski from www.flaticon.com.'; }); - containerEl.createEl("hr"); - containerEl.createEl("p", { - text: "If you find Longform to be misbehaving (logging errors in console, not syncing changes to index files) you can try resetting tracked projects. This will cause Longform to “forget” that various project folders in your vault should be watched and managed by Longform. You can then re-mark those folders as Longform projects by right-clicking them in the file explorer. You will not lose any notes.", - }); - containerEl.createEl("button", { - text: "Untrack All Projects", - title: "Click to have Longform untrack all projects.", - }, (el) => { - el.classList.add("longform-settings-destructive-button"); - el.onclick = () => __awaiter(this, void 0, void 0, function* () { - console.log("[Longform] Resetting plugin data to: ", DEFAULT_SETTINGS); - pluginSettings.set(DEFAULT_SETTINGS); - currentProjectPath.set(null); - currentDraftPath.set(null); - this.plugin.cachedSettings = get_store_value(pluginSettings); - yield this.plugin.saveSettings(); + } + hide() { + this.unsubscribeUserScripts(); + } +} + +/** + * Prepare a workflow for storage as json. + * @param workflow The workflow to serialize. + * @requires serialized An array of `SerializedStep`s that can be safely saved as json. + */ +function serializeWorkflow(workflow) { + const serialized = workflow.steps.map((step) => ({ + id: step.description.canonicalID, + optionValues: step.optionValues, + })); + return { + name: workflow.name, + description: workflow.description, + steps: serialized, + }; +} +function lookupStep(id, userSteps = []) { + const builtIn = BUILTIN_STEPS.find((s) => s.id === id); + if (builtIn) { + return builtIn; + } + const userStep = userSteps.find((s) => s.id === id); + if (userStep) { + return userStep; + } + return PLACEHOLDER_MISSING_STEP; +} +/** + * Deserializes an array of JSON-compatible steps into one that can be run as a workflow. + * @param steps The JSON-compatible steps to deserialize. + * @returns deserialized Array of `CompileStep`s to use as a workflow. + */ +function deserializeWorkflow(w) { + var _a; + const userSteps = (_a = get_store_value(userScriptSteps)) !== null && _a !== void 0 ? _a : []; + const deserialized = Object.assign(Object.assign({}, w), { steps: w.steps.map((s) => { + const step = lookupStep(s.id, userSteps); + return Object.assign(Object.assign({}, step), { optionValues: s.optionValues }); + }) }); + return deserialized; +} + +const DEBOUNCE_SCRIPT_LOAD_DELAY_MS = 10000; +/** + * Watches the user's script folder and loads the scripts it finds there. + */ +class UserScriptObserver { + constructor(vault, userScriptFolder) { + this.initializedSteps = false; + this.vault = vault; + this.userScriptFolder = userScriptFolder; + this.onScriptModify = debounce_1(() => { + console.log(`[Longform] File in user script folder modified, reloading scripts…`); + this.loadUserSteps(); + }, DEBOUNCE_SCRIPT_LOAD_DELAY_MS); + } + destroy() { + this.unsubscribeScriptFolder(); + } + beginObserving() { + if (this.unsubscribeScriptFolder) { + this.unsubscribeScriptFolder(); + } + this.unsubscribeScriptFolder = pluginSettings.subscribe((s) => __awaiter(this, void 0, void 0, function* () { + if (this.initializedSteps && + s.userScriptFolder === this.userScriptFolder) { + return; + } + const valid = yield this.vault.adapter.exists(s.userScriptFolder); + if (!valid) { + return; + } + this.userScriptFolder = s.userScriptFolder; + if (this.userScriptFolder) { + yield this.loadUserSteps(); + } + else { + userScriptSteps.set(null); + console.log("[Longform] Cleared user script steps."); + } + })); + } + loadUserSteps() { + return __awaiter(this, void 0, void 0, function* () { + if (!this.userScriptFolder) { + return; + } + const valid = yield this.vault.adapter.exists(this.userScriptFolder); + if (!valid) { + return; + } + // Get all .js files in folder + const { files } = yield this.vault.adapter.list(this.userScriptFolder); + const scripts = files.filter((f) => f.endsWith("js")); + const userSteps = []; + for (const file of scripts) { + try { + const step = yield this.loadScript(file); + userSteps.push(step); + } + catch (e) { + console.error(`[Longform] skipping user script ${file} due to error:`, e); + } + } + console.log(`[Longform] Loaded ${userSteps.length} user script steps.`); + userScriptSteps.set(userSteps); + this.initializedSteps = true; + // if workflows have loaded, merge in user steps to get updated values + const _workflows = get_store_value(workflows); + const workflowNames = Object.keys(_workflows); + const mergedWorkflows = {}; + workflowNames.forEach((name) => { + const workflow = _workflows[name]; + const workflowSteps = workflow.steps.map((step) => { + const userStep = userSteps.find((u) => step.description.canonicalID === u.description.canonicalID); + if (userStep) { + let mergedStep = Object.assign(Object.assign({}, userStep), { id: step.id, optionValues: userStep.optionValues }); + // Copy existing step's option values into the merged step + for (const key of Object.keys(step.optionValues)) { + if (mergedStep.optionValues[key]) { + mergedStep = Object.assign(Object.assign({}, mergedStep), { optionValues: Object.assign(Object.assign({}, mergedStep.optionValues), { [key]: step.optionValues[key] }) }); + } + } + return mergedStep; + } + else { + return step; + } + }); + mergedWorkflows[name] = Object.assign(Object.assign({}, workflow), { steps: workflowSteps }); }); + workflows.set(mergedWorkflows); + return userSteps; + }); + } + loadScript(path) { + return __awaiter(this, void 0, void 0, function* () { + const js = yield this.vault.adapter.read(path); + // eslint-disable-next-line prefer-const + let _require = (s) => { + return window.require && window.require(s); + }; + // eslint-disable-next-line prefer-const + let exports = {}; + // eslint-disable-next-line prefer-const + let module = { + exports, + }; + const evaluateScript = window.eval("(function anonymous(require, module, exports){" + js + "\n})"); + evaluateScript(_require, module, exports); + const loadedStep = exports["default"] || module.exports; + if (!loadedStep) { + console.error(`[Longform] Failed to load user script ${path}. No exports detected.`); + throw new Error(`Failed to load user script ${path}. No exports detected.`); + } + const step = makeBuiltinStep(Object.assign(Object.assign({}, loadedStep), { id: path, description: Object.assign(Object.assign({}, loadedStep.description), { availableKinds: loadedStep.description.availableKinds.map((v) => CompileStepKind[v]), options: loadedStep.description.options.map((o) => (Object.assign(Object.assign({}, o), { type: CompileStepOptionType[o.type] }))) }) }), true); + return Object.assign(Object.assign({}, step), { id: path, description: Object.assign(Object.assign({}, step.description), { canonicalID: path, isScript: true }) }); }); } + fileEventCallback(file) { + if (this.userScriptFolder && + file.path.endsWith("js") && + ((file.parent && file.parent.path == this.userScriptFolder) || + (file.parent === null && file.path.startsWith(this.userScriptFolder)))) { + this.onScriptModify(); + } + } } const LONGFORM_LEAF_CLASS = "longform-leaf"; // TODO: Try and abstract away more logic from actual plugin hooks here class LongformPlugin extends obsidian.Plugin { + constructor() { + super(...arguments); + // Local mirror of the pluginSettings store + // since this class does a lot of ad-hoc settings fetching. + // More efficient than a lot of get() calls. + this.cachedSettings = null; + } onload() { return __awaiter(this, void 0, void 0, function* () { console.log(`[Longform] Starting Longform ${this.manifest.version}…`); @@ -10379,9 +16708,17 @@ class LongformPlugin extends obsidian.Plugin { } })); // Settings - this.unsubscribeSettings = pluginSettings.subscribe((value) => { + this.unsubscribeSettings = pluginSettings.subscribe((value) => __awaiter(this, void 0, void 0, function* () { + let shouldSave = false; + if (this.cachedSettings && + this.cachedSettings.userScriptFolder !== value.userScriptFolder) { + shouldSave = true; + } this.cachedSettings = value; - }); + if (shouldSave) { + yield this.saveSettings(); + } + })); yield this.loadSettings(); this.addSettingTab(new LongformSettingsTab(this.app, this)); this.app.workspace.onLayoutReady(this.postLayoutInit.bind(this)); @@ -10428,9 +16765,11 @@ class LongformPlugin extends obsidian.Plugin { onunload() { this.metadataObserver.destroy(); this.foldersObserver.destroy(); + this.userScriptObserver.destroy(); this.unsubscribeSettings(); this.unsubscribeCurrentProjectPath(); this.unsubscribeCurrentDraftPath(); + this.unsubscribeWorkflows(); this.app.workspace .getLeavesOfType(VIEW_TYPE_LONGFORM_EXPLORER) .forEach((leaf) => leaf.detach()); @@ -10438,14 +16777,38 @@ class LongformPlugin extends obsidian.Plugin { loadSettings() { return __awaiter(this, void 0, void 0, function* () { const settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); - pluginSettings.set(settings); - currentDraftPath.set(settings.selectedDraft); - currentProjectPath.set(settings.selectedProject); + const _pluginSettings = pick_1(settings, TRACKED_SETTINGS_PATHS); + pluginSettings.set(_pluginSettings); + currentDraftPath.set(_pluginSettings.selectedDraft); + currentProjectPath.set(_pluginSettings.selectedProject); + // We load user scripts imperatively first to cover cases where we need to deserialize + // workflows that may contain them. + const userScriptFolder = settings["userScriptFolder"]; + this.userScriptObserver = new UserScriptObserver(this.app.vault, userScriptFolder); + yield this.userScriptObserver.loadUserSteps(); + let _workflows = settings["workflows"]; + if (!_workflows) { + console.log("[Longform] No workflows found; adding default workflow."); + _workflows = DEFAULT_WORKFLOWS; + } + const deserializedWorkflows = {}; + Object.entries(_workflows).forEach(([key, value]) => { + deserializedWorkflows[key] = deserializeWorkflow(value); + }); + workflows.set(deserializedWorkflows); }); } saveSettings() { return __awaiter(this, void 0, void 0, function* () { - yield this.saveData(this.cachedSettings); + if (!this.cachedSettings) { + return; + } + const _workflows = get_store_value(workflows); + const serializedWorkflows = {}; + Object.entries(_workflows).forEach(([key, value]) => { + serializedWorkflows[key] = serializeWorkflow(value); + }); + yield this.saveData(Object.assign(Object.assign({}, this.cachedSettings), { workflows: serializedWorkflows })); }); } promptToAddProject(path) { @@ -10458,7 +16821,11 @@ class LongformPlugin extends obsidian.Plugin { const indexFilePath = obsidian.normalizePath(`${path}/${project.indexFile}.md`); let indexFile = this.app.vault.getAbstractFileByPath(indexFilePath); if (!indexFile) { - const contents = indexBodyFor(EmptyIndexFileMetadata); + let contents = indexBodyFor(EmptyIndexFileMetadata); + if (!contents) { + console.error("[Longform] Unable to initialize index file."); + contents = ""; + } indexFile = yield this.app.vault.create(indexFilePath, contents); } const draftsFolderPath = obsidian.normalizePath(`${path}/${project.draftsPath}`); @@ -10489,6 +16856,7 @@ class LongformPlugin extends obsidian.Plugin { postLayoutInit() { this.metadataObserver = new IndexMetadataObserver(this.app); this.foldersObserver = new FolderObserver(this.app); + this.userScriptObserver.beginObserving(); this.watchProjects(); this.unsubscribeCurrentProjectPath = currentProjectPath.subscribe((selectedProject) => __awaiter(this, void 0, void 0, function* () { if (!get_store_value(initialized)) { @@ -10505,10 +16873,19 @@ class LongformPlugin extends obsidian.Plugin { } pluginSettings.update((s) => (Object.assign(Object.assign({}, s), { selectedDraft }))); // Force cached settings update immediately for save to work - // test this.cachedSettings = get_store_value(pluginSettings); yield this.saveSettings(); })); + // Workflows + const saveWorkflows = debounce_1(() => { + this.saveSettings(); + }, 3000); + this.unsubscribeWorkflows = workflows.subscribe(() => { + if (!get_store_value(initialized)) { + return; + } + saveWorkflows(); + }); this.initLeaf(); initialized.set(true); } @@ -10522,9 +16899,19 @@ class LongformPlugin extends obsidian.Plugin { } watchProjects() { this.foldersObserver.loadProjects(); - this.registerEvent(this.app.vault.on("create", this.foldersObserver.fileCreated.bind(this.foldersObserver))); - this.registerEvent(this.app.vault.on("delete", this.foldersObserver.fileDeleted.bind(this.foldersObserver))); - this.registerEvent(this.app.vault.on("rename", this.foldersObserver.fileRenamed.bind(this.foldersObserver))); + this.registerEvent(this.app.vault.on("modify", this.userScriptObserver.fileEventCallback.bind(this.userScriptObserver))); + this.registerEvent(this.app.vault.on("create", (file) => { + this.foldersObserver.fileCreated.bind(this.foldersObserver)(file); + this.userScriptObserver.fileEventCallback.bind(this.userScriptObserver)(file); + })); + this.registerEvent(this.app.vault.on("delete", (file) => { + this.foldersObserver.fileDeleted.bind(this.foldersObserver)(file); + this.userScriptObserver.fileEventCallback.bind(this.userScriptObserver)(file); + })); + this.registerEvent(this.app.vault.on("rename", (file, oldPath) => { + this.foldersObserver.fileRenamed.bind(this.foldersObserver)(file, oldPath); + this.userScriptObserver.fileEventCallback.bind(this.userScriptObserver)(file); + })); this.registerEvent(this.app.metadataCache.on("changed", this.metadataObserver.metadataCacheChanged.bind(this.metadataObserver))); console.log(`[Longform] Loaded and watching projects.`); } diff --git a/.obsidian/plugins/longform/manifest.json b/.obsidian/plugins/longform/manifest.json index 2385a285..4da42ad6 100644 --- a/.obsidian/plugins/longform/manifest.json +++ b/.obsidian/plugins/longform/manifest.json @@ -1,7 +1,7 @@ { "id": "longform", "name": "Longform", - "version": "1.0.3", + "version": "1.1.0", "minAppVersion": "0.12.11", "description": "Write novels, screenplays, and other long projects in Obsidian.", "author": "Kevin Barrett", diff --git a/.obsidian/plugins/longform/styles.css b/.obsidian/plugins/longform/styles.css index f10c2ba2..c8dfdf15 100644 --- a/.obsidian/plugins/longform/styles.css +++ b/.obsidian/plugins/longform/styles.css @@ -1,8 +1,16 @@ -.longform-settings-destructive-button { +.longform-settings-user-steps { + padding-inline-start: 1rem; + margin-block-start: 0; + margin-block-end: 0; +} + +.longform-settings-user-step-name { color: var(--text-normal); - background-color: var(--text-error) !important; + font-size: 0.8rem; } -.longform-settings-destructive-button:hover { - background-color: var(--text-error-hover) !important; +.longform-settings-user-step-id { + margin-left: 0.5rem; + color: var(--text-muted); + font-size: 0.8rem; } diff --git a/.obsidian/plugins/obsidian-activity-history/data.json b/.obsidian/plugins/obsidian-activity-history/data.json index e7134caa..f7d6a3b8 100644 --- a/.obsidian/plugins/obsidian-activity-history/data.json +++ b/.obsidian/plugins/obsidian-activity-history/data.json @@ -13,7 +13,7 @@ { "path": "/", "date": "2022-01-23", - "size": 786235 + "size": 788498 } ], "activityHistory": [ @@ -82,7 +82,7 @@ }, { "date": "2022-01-23", - "value": 1603 + "value": 3880 } ] } diff --git a/.obsidian/plugins/obsidian-admonition/data.json b/.obsidian/plugins/obsidian-admonition/data.json index 579acdce..2ada0f42 100644 --- a/.obsidian/plugins/obsidian-admonition/data.json +++ b/.obsidian/plugins/obsidian-admonition/data.json @@ -117,7 +117,7 @@ }, "syntaxHighlight": false, "copyButton": true, - "version": "6.9.6", + "version": "6.9.7", "autoCollapse": false, "defaultCollapseType": "open", "syncLinks": true, diff --git a/.obsidian/plugins/obsidian-admonition/main.js b/.obsidian/plugins/obsidian-admonition/main.js index 2c108c8d..df0252b7 100644 --- a/.obsidian/plugins/obsidian-admonition/main.js +++ b/.obsidian/plugins/obsidian-admonition/main.js @@ -14964,7 +14964,7 @@ var ObsidianAdmonition = class extends import_obsidian6.Plugin { const firstLine = text[section.lineStart]; if (!/^> \[!.+\]/.test(firstLine)) return; - const [, type, title, col] = firstLine.match(/^> \[!(\w+)(?:: (.+))?\](x|\+|\-)?/) ?? []; + const [, type, title, col] = firstLine.match(/^> \[!(\w+)(?::[ ]?(.+))?\](x|\+|\-)?/) ?? []; if (!type || !this.admonitions[type]) return; let collapse; diff --git a/.obsidian/plugins/obsidian-admonition/manifest.json b/.obsidian/plugins/obsidian-admonition/manifest.json index 81ab22f8..ee0b1474 100644 --- a/.obsidian/plugins/obsidian-admonition/manifest.json +++ b/.obsidian/plugins/obsidian-admonition/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-admonition", "name": "Admonition", - "version": "6.9.6", + "version": "6.9.7", "minAppVersion": "0.11.0", "description": "Admonition block-styled content for Obsidian.md", "author": "Jeremy Valentine", diff --git a/.obsidian/plugins/obsidian-chartsview-plugin/main.js b/.obsidian/plugins/obsidian-chartsview-plugin/main.js deleted file mode 100644 index 8363743a..00000000 --- a/.obsidian/plugins/obsidian-chartsview-plugin/main.js +++ /dev/null @@ -1,143729 +0,0 @@ -/* -THIS IS A GENERATED/BUNDLED FILE BY ESBUILD -if you want to view the source, please visit the github repository of this plugin -*/ - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __defProps = Object.defineProperties; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropDescs = Object.getOwnPropertyDescriptors; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getOwnPropSymbols = Object.getOwnPropertySymbols; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __propIsEnum = Object.prototype.propertyIsEnumerable; -var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2; -var __spreadValues = (a4, b10) => { - for (var prop in b10 || (b10 = {})) - if (__hasOwnProp.call(b10, prop)) - __defNormalProp(a4, prop, b10[prop]); - if (__getOwnPropSymbols) - for (var prop of __getOwnPropSymbols(b10)) { - if (__propIsEnum.call(b10, prop)) - __defNormalProp(a4, prop, b10[prop]); - } - return a4; -}; -var __spreadProps = (a4, b10) => __defProps(a4, __getOwnPropDescs(b10)); -var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); -var __esm = (fn2, res) => function __init() { - return fn2 && (res = (0, fn2[Object.keys(fn2)[0]])(fn2 = 0)), res; -}; -var __commonJS = (cb, mod3) => function __require() { - return mod3 || (0, cb[Object.keys(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports; -}; -var __export = (target, all) => { - __markAsModule(target); - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __reExport = (target, module2, desc) => { - if (module2 && typeof module2 === "object" || typeof module2 === "function") { - for (let key of __getOwnPropNames(module2)) - if (!__hasOwnProp.call(target, key) && key !== "default") - __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); - } - return target; -}; -var __toModule = (module2) => { - return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); -}; -var __async = (__this, __arguments, generator) => { - return new Promise((resolve, reject) => { - var fulfilled = (value2) => { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - }; - var rejected = (value2) => { - try { - step(generator.throw(value2)); - } catch (e4) { - reject(e4); - } - }; - var step = (x6) => x6.done ? resolve(x6.value) : Promise.resolve(x6.value).then(fulfilled, rejected); - step((generator = generator.apply(__this, __arguments)).next()); - }); -}; - -// node_modules/preact/dist/preact.module.js -function a(n3, l4) { - for (var u3 in l4) - n3[u3] = l4[u3]; - return n3; -} -function h(n3) { - var l4 = n3.parentNode; - l4 && l4.removeChild(n3); -} -function v(l4, u3, i4) { - var t4, r4, o3, f3 = {}; - for (o3 in u3) - o3 == "key" ? t4 = u3[o3] : o3 == "ref" ? r4 = u3[o3] : f3[o3] = u3[o3]; - if (arguments.length > 2 && (f3.children = arguments.length > 3 ? n2.call(arguments, 2) : i4), typeof l4 == "function" && l4.defaultProps != null) - for (o3 in l4.defaultProps) - f3[o3] === void 0 && (f3[o3] = l4.defaultProps[o3]); - return y(l4, f3, t4, r4, null); -} -function y(n3, i4, t4, r4, o3) { - var f3 = { type: n3, props: i4, key: t4, ref: r4, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: o3 == null ? ++u : o3 }; - return o3 == null && l2.vnode != null && l2.vnode(f3), f3; -} -function p2() { - return { current: null }; -} -function d(n3) { - return n3.children; -} -function _(n3, l4) { - this.props = n3, this.context = l4; -} -function k(n3, l4) { - if (l4 == null) - return n3.__ ? k(n3.__, n3.__.__k.indexOf(n3) + 1) : null; - for (var u3; l4 < n3.__k.length; l4++) - if ((u3 = n3.__k[l4]) != null && u3.__e != null) - return u3.__e; - return typeof n3.type == "function" ? k(n3) : null; -} -function b(n3) { - var l4, u3; - if ((n3 = n3.__) != null && n3.__c != null) { - for (n3.__e = n3.__c.base = null, l4 = 0; l4 < n3.__k.length; l4++) - if ((u3 = n3.__k[l4]) != null && u3.__e != null) { - n3.__e = n3.__c.base = u3.__e; - break; - } - return b(n3); - } -} -function m(n3) { - (!n3.__d && (n3.__d = true) && t2.push(n3) && !g.__r++ || o !== l2.debounceRendering) && ((o = l2.debounceRendering) || r2)(g); -} -function g() { - for (var n3; g.__r = t2.length; ) - n3 = t2.sort(function(n4, l4) { - return n4.__v.__b - l4.__v.__b; - }), t2 = [], n3.some(function(n4) { - var l4, u3, i4, t4, r4, o3; - n4.__d && (r4 = (t4 = (l4 = n4).__v).__e, (o3 = l4.__P) && (u3 = [], (i4 = a({}, t4)).__v = t4.__v + 1, j(o3, t4, i4, l4.__n, o3.ownerSVGElement !== void 0, t4.__h != null ? [r4] : null, u3, r4 == null ? k(t4) : r4, t4.__h), z(u3, t4), t4.__e != r4 && b(t4))); - }); -} -function w(n3, l4, u3, i4, t4, r4, o3, f3, s4, a4) { - var h3, v3, p4, _8, b10, m4, g4, w4 = i4 && i4.__k || c2, A4 = w4.length; - for (u3.__k = [], h3 = 0; h3 < l4.length; h3++) - if ((_8 = u3.__k[h3] = (_8 = l4[h3]) == null || typeof _8 == "boolean" ? null : typeof _8 == "string" || typeof _8 == "number" || typeof _8 == "bigint" ? y(null, _8, null, null, _8) : Array.isArray(_8) ? y(d, { children: _8 }, null, null, null) : _8.__b > 0 ? y(_8.type, _8.props, _8.key, null, _8.__v) : _8) != null) { - if (_8.__ = u3, _8.__b = u3.__b + 1, (p4 = w4[h3]) === null || p4 && _8.key == p4.key && _8.type === p4.type) - w4[h3] = void 0; - else - for (v3 = 0; v3 < A4; v3++) { - if ((p4 = w4[v3]) && _8.key == p4.key && _8.type === p4.type) { - w4[v3] = void 0; - break; - } - p4 = null; - } - j(n3, _8, p4 = p4 || e2, t4, r4, o3, f3, s4, a4), b10 = _8.__e, (v3 = _8.ref) && p4.ref != v3 && (g4 || (g4 = []), p4.ref && g4.push(p4.ref, null, _8), g4.push(v3, _8.__c || b10, _8)), b10 != null ? (m4 == null && (m4 = b10), typeof _8.type == "function" && _8.__k === p4.__k ? _8.__d = s4 = x(_8, s4, n3) : s4 = P(n3, _8, p4, w4, b10, s4), typeof u3.type == "function" && (u3.__d = s4)) : s4 && p4.__e == s4 && s4.parentNode != n3 && (s4 = k(p4)); - } - for (u3.__e = m4, h3 = A4; h3--; ) - w4[h3] != null && (typeof u3.type == "function" && w4[h3].__e != null && w4[h3].__e == u3.__d && (u3.__d = k(i4, h3 + 1)), N(w4[h3], w4[h3])); - if (g4) - for (h3 = 0; h3 < g4.length; h3++) - M(g4[h3], g4[++h3], g4[++h3]); -} -function x(n3, l4, u3) { - for (var i4, t4 = n3.__k, r4 = 0; t4 && r4 < t4.length; r4++) - (i4 = t4[r4]) && (i4.__ = n3, l4 = typeof i4.type == "function" ? x(i4, l4, u3) : P(u3, i4, i4, t4, i4.__e, l4)); - return l4; -} -function A(n3, l4) { - return l4 = l4 || [], n3 == null || typeof n3 == "boolean" || (Array.isArray(n3) ? n3.some(function(n4) { - A(n4, l4); - }) : l4.push(n3)), l4; -} -function P(n3, l4, u3, i4, t4, r4) { - var o3, f3, e4; - if (l4.__d !== void 0) - o3 = l4.__d, l4.__d = void 0; - else if (u3 == null || t4 != r4 || t4.parentNode == null) - n: - if (r4 == null || r4.parentNode !== n3) - n3.appendChild(t4), o3 = null; - else { - for (f3 = r4, e4 = 0; (f3 = f3.nextSibling) && e4 < i4.length; e4 += 2) - if (f3 == t4) - break n; - n3.insertBefore(t4, r4), o3 = r4; - } - return o3 !== void 0 ? o3 : t4.nextSibling; -} -function C(n3, l4, u3, i4, t4) { - var r4; - for (r4 in u3) - r4 === "children" || r4 === "key" || r4 in l4 || H(n3, r4, null, u3[r4], i4); - for (r4 in l4) - t4 && typeof l4[r4] != "function" || r4 === "children" || r4 === "key" || r4 === "value" || r4 === "checked" || u3[r4] === l4[r4] || H(n3, r4, l4[r4], u3[r4], i4); -} -function $(n3, l4, u3) { - l4[0] === "-" ? n3.setProperty(l4, u3) : n3[l4] = u3 == null ? "" : typeof u3 != "number" || s2.test(l4) ? u3 : u3 + "px"; -} -function H(n3, l4, u3, i4, t4) { - var r4; - n: - if (l4 === "style") - if (typeof u3 == "string") - n3.style.cssText = u3; - else { - if (typeof i4 == "string" && (n3.style.cssText = i4 = ""), i4) - for (l4 in i4) - u3 && l4 in u3 || $(n3.style, l4, ""); - if (u3) - for (l4 in u3) - i4 && u3[l4] === i4[l4] || $(n3.style, l4, u3[l4]); - } - else if (l4[0] === "o" && l4[1] === "n") - r4 = l4 !== (l4 = l4.replace(/Capture$/, "")), l4 = l4.toLowerCase() in n3 ? l4.toLowerCase().slice(2) : l4.slice(2), n3.l || (n3.l = {}), n3.l[l4 + r4] = u3, u3 ? i4 || n3.addEventListener(l4, r4 ? T : I, r4) : n3.removeEventListener(l4, r4 ? T : I, r4); - else if (l4 !== "dangerouslySetInnerHTML") { - if (t4) - l4 = l4.replace(/xlink[H:h]/, "h").replace(/sName$/, "s"); - else if (l4 !== "href" && l4 !== "list" && l4 !== "form" && l4 !== "tabIndex" && l4 !== "download" && l4 in n3) - try { - n3[l4] = u3 == null ? "" : u3; - break n; - } catch (n4) { - } - typeof u3 == "function" || (u3 != null && (u3 !== false || l4[0] === "a" && l4[1] === "r") ? n3.setAttribute(l4, u3) : n3.removeAttribute(l4)); - } -} -function I(n3) { - this.l[n3.type + false](l2.event ? l2.event(n3) : n3); -} -function T(n3) { - this.l[n3.type + true](l2.event ? l2.event(n3) : n3); -} -function j(n3, u3, i4, t4, r4, o3, f3, e4, c5) { - var s4, h3, v3, y5, p4, k4, b10, m4, g4, x6, A4, P4 = u3.type; - if (u3.constructor !== void 0) - return null; - i4.__h != null && (c5 = i4.__h, e4 = u3.__e = i4.__e, u3.__h = null, o3 = [e4]), (s4 = l2.__b) && s4(u3); - try { - n: - if (typeof P4 == "function") { - if (m4 = u3.props, g4 = (s4 = P4.contextType) && t4[s4.__c], x6 = s4 ? g4 ? g4.props.value : s4.__ : t4, i4.__c ? b10 = (h3 = u3.__c = i4.__c).__ = h3.__E : ("prototype" in P4 && P4.prototype.render ? u3.__c = h3 = new P4(m4, x6) : (u3.__c = h3 = new _(m4, x6), h3.constructor = P4, h3.render = O), g4 && g4.sub(h3), h3.props = m4, h3.state || (h3.state = {}), h3.context = x6, h3.__n = t4, v3 = h3.__d = true, h3.__h = []), h3.__s == null && (h3.__s = h3.state), P4.getDerivedStateFromProps != null && (h3.__s == h3.state && (h3.__s = a({}, h3.__s)), a(h3.__s, P4.getDerivedStateFromProps(m4, h3.__s))), y5 = h3.props, p4 = h3.state, v3) - P4.getDerivedStateFromProps == null && h3.componentWillMount != null && h3.componentWillMount(), h3.componentDidMount != null && h3.__h.push(h3.componentDidMount); - else { - if (P4.getDerivedStateFromProps == null && m4 !== y5 && h3.componentWillReceiveProps != null && h3.componentWillReceiveProps(m4, x6), !h3.__e && h3.shouldComponentUpdate != null && h3.shouldComponentUpdate(m4, h3.__s, x6) === false || u3.__v === i4.__v) { - h3.props = m4, h3.state = h3.__s, u3.__v !== i4.__v && (h3.__d = false), h3.__v = u3, u3.__e = i4.__e, u3.__k = i4.__k, u3.__k.forEach(function(n4) { - n4 && (n4.__ = u3); - }), h3.__h.length && f3.push(h3); - break n; - } - h3.componentWillUpdate != null && h3.componentWillUpdate(m4, h3.__s, x6), h3.componentDidUpdate != null && h3.__h.push(function() { - h3.componentDidUpdate(y5, p4, k4); - }); - } - h3.context = x6, h3.props = m4, h3.state = h3.__s, (s4 = l2.__r) && s4(u3), h3.__d = false, h3.__v = u3, h3.__P = n3, s4 = h3.render(h3.props, h3.state, h3.context), h3.state = h3.__s, h3.getChildContext != null && (t4 = a(a({}, t4), h3.getChildContext())), v3 || h3.getSnapshotBeforeUpdate == null || (k4 = h3.getSnapshotBeforeUpdate(y5, p4)), A4 = s4 != null && s4.type === d && s4.key == null ? s4.props.children : s4, w(n3, Array.isArray(A4) ? A4 : [A4], u3, i4, t4, r4, o3, f3, e4, c5), h3.base = u3.__e, u3.__h = null, h3.__h.length && f3.push(h3), b10 && (h3.__E = h3.__ = null), h3.__e = false; - } else - o3 == null && u3.__v === i4.__v ? (u3.__k = i4.__k, u3.__e = i4.__e) : u3.__e = L(i4.__e, u3, i4, t4, r4, o3, f3, c5); - (s4 = l2.diffed) && s4(u3); - } catch (n4) { - u3.__v = null, (c5 || o3 != null) && (u3.__e = e4, u3.__h = !!c5, o3[o3.indexOf(e4)] = null), l2.__e(n4, u3, i4); - } -} -function z(n3, u3) { - l2.__c && l2.__c(u3, n3), n3.some(function(u4) { - try { - n3 = u4.__h, u4.__h = [], n3.some(function(n4) { - n4.call(u4); - }); - } catch (n4) { - l2.__e(n4, u4.__v); - } - }); -} -function L(l4, u3, i4, t4, r4, o3, f3, c5) { - var s4, a4, v3, y5 = i4.props, p4 = u3.props, d3 = u3.type, _8 = 0; - if (d3 === "svg" && (r4 = true), o3 != null) { - for (; _8 < o3.length; _8++) - if ((s4 = o3[_8]) && "setAttribute" in s4 == !!d3 && (d3 ? s4.localName === d3 : s4.nodeType === 3)) { - l4 = s4, o3[_8] = null; - break; - } - } - if (l4 == null) { - if (d3 === null) - return document.createTextNode(p4); - l4 = r4 ? document.createElementNS("http://www.w3.org/2000/svg", d3) : document.createElement(d3, p4.is && p4), o3 = null, c5 = false; - } - if (d3 === null) - y5 === p4 || c5 && l4.data === p4 || (l4.data = p4); - else { - if (o3 = o3 && n2.call(l4.childNodes), a4 = (y5 = i4.props || e2).dangerouslySetInnerHTML, v3 = p4.dangerouslySetInnerHTML, !c5) { - if (o3 != null) - for (y5 = {}, _8 = 0; _8 < l4.attributes.length; _8++) - y5[l4.attributes[_8].name] = l4.attributes[_8].value; - (v3 || a4) && (v3 && (a4 && v3.__html == a4.__html || v3.__html === l4.innerHTML) || (l4.innerHTML = v3 && v3.__html || "")); - } - if (C(l4, p4, y5, r4, c5), v3) - u3.__k = []; - else if (_8 = u3.props.children, w(l4, Array.isArray(_8) ? _8 : [_8], u3, i4, t4, r4 && d3 !== "foreignObject", o3, f3, o3 ? o3[0] : i4.__k && k(i4, 0), c5), o3 != null) - for (_8 = o3.length; _8--; ) - o3[_8] != null && h(o3[_8]); - c5 || ("value" in p4 && (_8 = p4.value) !== void 0 && (_8 !== y5.value || _8 !== l4.value || d3 === "progress" && !_8) && H(l4, "value", _8, y5.value, false), "checked" in p4 && (_8 = p4.checked) !== void 0 && _8 !== l4.checked && H(l4, "checked", _8, y5.checked, false)); - } - return l4; -} -function M(n3, u3, i4) { - try { - typeof n3 == "function" ? n3(u3) : n3.current = u3; - } catch (n4) { - l2.__e(n4, i4); - } -} -function N(n3, u3, i4) { - var t4, r4; - if (l2.unmount && l2.unmount(n3), (t4 = n3.ref) && (t4.current && t4.current !== n3.__e || M(t4, null, u3)), (t4 = n3.__c) != null) { - if (t4.componentWillUnmount) - try { - t4.componentWillUnmount(); - } catch (n4) { - l2.__e(n4, u3); - } - t4.base = t4.__P = null; - } - if (t4 = n3.__k) - for (r4 = 0; r4 < t4.length; r4++) - t4[r4] && N(t4[r4], u3, typeof n3.type != "function"); - i4 || n3.__e == null || h(n3.__e), n3.__e = n3.__d = void 0; -} -function O(n3, l4, u3) { - return this.constructor(n3, u3); -} -function S(u3, i4, t4) { - var r4, o3, f3; - l2.__ && l2.__(u3, i4), o3 = (r4 = typeof t4 == "function") ? null : t4 && t4.__k || i4.__k, f3 = [], j(i4, u3 = (!r4 && t4 || i4).__k = v(d, null, [u3]), o3 || e2, e2, i4.ownerSVGElement !== void 0, !r4 && t4 ? [t4] : o3 ? null : i4.firstChild ? n2.call(i4.childNodes) : null, f3, !r4 && t4 ? t4 : o3 ? o3.__e : i4.firstChild, r4), z(f3, u3); -} -function q(n3, l4) { - S(n3, l4, q); -} -function B(l4, u3, i4) { - var t4, r4, o3, f3 = a({}, l4.props); - for (o3 in u3) - o3 == "key" ? t4 = u3[o3] : o3 == "ref" ? r4 = u3[o3] : f3[o3] = u3[o3]; - return arguments.length > 2 && (f3.children = arguments.length > 3 ? n2.call(arguments, 2) : i4), y(l4.type, f3, t4 || l4.key, r4 || l4.ref, null); -} -function D(n3, l4) { - var u3 = { __c: l4 = "__cC" + f++, __: n3, Consumer: function(n4, l5) { - return n4.children(l5); - }, Provider: function(n4) { - var u4, i4; - return this.getChildContext || (u4 = [], (i4 = {})[l4] = this, this.getChildContext = function() { - return i4; - }, this.shouldComponentUpdate = function(n5) { - this.props.value !== n5.value && u4.some(m); - }, this.sub = function(n5) { - u4.push(n5); - var l5 = n5.componentWillUnmount; - n5.componentWillUnmount = function() { - u4.splice(u4.indexOf(n5), 1), l5 && l5.call(n5); - }; - }), n4.children; - } }; - return u3.Provider.__ = u3.Consumer.contextType = u3; -} -var n2, l2, u, i2, t2, r2, o, f, e2, c2, s2; -var init_preact_module = __esm({ - "node_modules/preact/dist/preact.module.js"() { - e2 = {}; - c2 = []; - s2 = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; - n2 = c2.slice, l2 = { __e: function(n3, l4) { - for (var u3, i4, t4; l4 = l4.__; ) - if ((u3 = l4.__c) && !u3.__) - try { - if ((i4 = u3.constructor) && i4.getDerivedStateFromError != null && (u3.setState(i4.getDerivedStateFromError(n3)), t4 = u3.__d), u3.componentDidCatch != null && (u3.componentDidCatch(n3), t4 = u3.__d), t4) - return u3.__E = u3; - } catch (l5) { - n3 = l5; - } - throw n3; - } }, u = 0, i2 = function(n3) { - return n3 != null && n3.constructor === void 0; - }, _.prototype.setState = function(n3, l4) { - var u3; - u3 = this.__s != null && this.__s !== this.state ? this.__s : this.__s = a({}, this.state), typeof n3 == "function" && (n3 = n3(a({}, u3), this.props)), n3 && a(u3, n3), n3 != null && this.__v && (l4 && this.__h.push(l4), m(this)); - }, _.prototype.forceUpdate = function(n3) { - this.__v && (this.__e = true, n3 && this.__h.push(n3), m(this)); - }, _.prototype.render = d, t2 = [], r2 = typeof Promise == "function" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, g.__r = 0, f = 0; - } -}); - -// node_modules/preact/hooks/dist/hooks.module.js -function m2(t4, r4) { - l2.__h && l2.__h(u2, t4, o2 || r4), o2 = 0; - var i4 = u2.__H || (u2.__H = { __: [], __h: [] }); - return t4 >= i4.__.length && i4.__.push({}), i4.__[t4]; -} -function l3(n3) { - return o2 = 1, p3(w2, n3); -} -function p3(n3, r4, o3) { - var i4 = m2(t3++, 2); - return i4.t = n3, i4.__c || (i4.__ = [o3 ? o3(r4) : w2(void 0, r4), function(n4) { - var t4 = i4.t(i4.__[0], n4); - i4.__[0] !== t4 && (i4.__ = [t4, i4.__[1]], i4.__c.setState({})); - }], i4.__c = u2), i4.__; -} -function y2(r4, o3) { - var i4 = m2(t3++, 3); - !l2.__s && k2(i4.__H, o3) && (i4.__ = r4, i4.__H = o3, u2.__H.__h.push(i4)); -} -function h2(r4, o3) { - var i4 = m2(t3++, 4); - !l2.__s && k2(i4.__H, o3) && (i4.__ = r4, i4.__H = o3, u2.__h.push(i4)); -} -function s3(n3) { - return o2 = 5, d2(function() { - return { current: n3 }; - }, []); -} -function _2(n3, t4, u3) { - o2 = 6, h2(function() { - typeof n3 == "function" ? n3(t4()) : n3 && (n3.current = t4()); - }, u3 == null ? u3 : u3.concat(n3)); -} -function d2(n3, u3) { - var r4 = m2(t3++, 7); - return k2(r4.__H, u3) && (r4.__ = n3(), r4.__H = u3, r4.__h = n3), r4.__; -} -function A2(n3, t4) { - return o2 = 8, d2(function() { - return n3; - }, t4); -} -function F(n3) { - var r4 = u2.context[n3.__c], o3 = m2(t3++, 9); - return o3.c = n3, r4 ? (o3.__ == null && (o3.__ = true, r4.sub(u2)), r4.props.value) : n3.__; -} -function T2(t4, u3) { - l2.useDebugValue && l2.useDebugValue(u3 ? u3(t4) : t4); -} -function q2(n3) { - var r4 = m2(t3++, 10), o3 = l3(); - return r4.__ = n3, u2.componentDidCatch || (u2.componentDidCatch = function(n4) { - r4.__ && r4.__(n4), o3[1](n4); - }), [o3[0], function() { - o3[1](void 0); - }]; -} -function x2() { - var t4; - for (i3.sort(function(n3, t5) { - return n3.__v.__b - t5.__v.__b; - }); t4 = i3.pop(); ) - if (t4.__P) - try { - t4.__H.__h.forEach(g2), t4.__H.__h.forEach(j2), t4.__H.__h = []; - } catch (u3) { - t4.__H.__h = [], l2.__e(u3, t4.__v); - } -} -function g2(n3) { - var t4 = u2, r4 = n3.__c; - typeof r4 == "function" && (n3.__c = void 0, r4()), u2 = t4; -} -function j2(n3) { - var t4 = u2; - n3.__c = n3.__(), u2 = t4; -} -function k2(n3, t4) { - return !n3 || n3.length !== t4.length || t4.some(function(t5, u3) { - return t5 !== n3[u3]; - }); -} -function w2(n3, t4) { - return typeof t4 == "function" ? t4(n3) : t4; -} -var t3, u2, r3, o2, i3, c3, f2, e3, a2, v2, b2; -var init_hooks_module = __esm({ - "node_modules/preact/hooks/dist/hooks.module.js"() { - init_preact_module(); - o2 = 0; - i3 = []; - c3 = l2.__b; - f2 = l2.__r; - e3 = l2.diffed; - a2 = l2.__c; - v2 = l2.unmount; - l2.__b = function(n3) { - u2 = null, c3 && c3(n3); - }, l2.__r = function(n3) { - f2 && f2(n3), t3 = 0; - var r4 = (u2 = n3.__c).__H; - r4 && (r4.__h.forEach(g2), r4.__h.forEach(j2), r4.__h = []); - }, l2.diffed = function(t4) { - e3 && e3(t4); - var o3 = t4.__c; - o3 && o3.__H && o3.__H.__h.length && (i3.push(o3) !== 1 && r3 === l2.requestAnimationFrame || ((r3 = l2.requestAnimationFrame) || function(n3) { - var t5, u3 = function() { - clearTimeout(r4), b2 && cancelAnimationFrame(t5), setTimeout(n3); - }, r4 = setTimeout(u3, 100); - b2 && (t5 = requestAnimationFrame(u3)); - })(x2)), u2 = null; - }, l2.__c = function(t4, u3) { - u3.some(function(t5) { - try { - t5.__h.forEach(g2), t5.__h = t5.__h.filter(function(n3) { - return !n3.__ || j2(n3); - }); - } catch (r4) { - u3.some(function(n3) { - n3.__h && (n3.__h = []); - }), u3 = [], l2.__e(r4, t5.__v); - } - }), a2 && a2(t4, u3); - }, l2.unmount = function(t4) { - v2 && v2(t4); - var u3, r4 = t4.__c; - r4 && r4.__H && (r4.__H.__.forEach(function(n3) { - try { - g2(n3); - } catch (n4) { - u3 = n4; - } - }), u3 && l2.__e(u3, r4.__v)); - }; - b2 = typeof requestAnimationFrame == "function"; - } -}); - -// node_modules/preact/compat/dist/compat.module.js -var compat_module_exports = {}; -__export(compat_module_exports, { - Children: () => k3, - Component: () => _, - Fragment: () => d, - PureComponent: () => E, - StrictMode: () => fn, - Suspense: () => L2, - SuspenseList: () => M2, - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => X, - cloneElement: () => rn, - createContext: () => D, - createElement: () => v, - createFactory: () => tn, - createPortal: () => W, - createRef: () => p2, - default: () => compat_module_default, - findDOMNode: () => on, - flushSync: () => cn, - forwardRef: () => x3, - hydrate: () => $2, - isValidElement: () => en, - lazy: () => F2, - memo: () => g3, - render: () => B2, - unmountComponentAtNode: () => un, - unstable_batchedUpdates: () => ln, - useCallback: () => A2, - useContext: () => F, - useDebugValue: () => T2, - useEffect: () => y2, - useErrorBoundary: () => q2, - useImperativeHandle: () => _2, - useLayoutEffect: () => h2, - useMemo: () => d2, - useReducer: () => p3, - useRef: () => s3, - useState: () => l3, - version: () => nn -}); -function S2(n3, t4) { - for (var e4 in t4) - n3[e4] = t4[e4]; - return n3; -} -function C2(n3, t4) { - for (var e4 in n3) - if (e4 !== "__source" && !(e4 in t4)) - return true; - for (var r4 in t4) - if (r4 !== "__source" && n3[r4] !== t4[r4]) - return true; - return false; -} -function E(n3) { - this.props = n3; -} -function g3(n3, t4) { - function e4(n4) { - var e6 = this.props.ref, r5 = e6 == n4.ref; - return !r5 && e6 && (e6.call ? e6(null) : e6.current = null), t4 ? !t4(this.props, n4) || !r5 : C2(this.props, n4); - } - function r4(t5) { - return this.shouldComponentUpdate = e4, v(n3, t5); - } - return r4.displayName = "Memo(" + (n3.displayName || n3.name) + ")", r4.prototype.isReactComponent = true, r4.__f = true, r4; -} -function x3(n3) { - function t4(t5, e4) { - var r4 = S2({}, t5); - return delete r4.ref, n3(r4, (e4 = t5.ref || e4) && (typeof e4 != "object" || "current" in e4) ? e4 : null); - } - return t4.$$typeof = R, t4.render = t4, t4.prototype.isReactComponent = t4.__f = true, t4.displayName = "ForwardRef(" + (n3.displayName || n3.name) + ")", t4; -} -function L2() { - this.__u = 0, this.t = null, this.__b = null; -} -function U(n3) { - var t4 = n3.__.__c; - return t4 && t4.__e && t4.__e(n3); -} -function F2(n3) { - var t4, e4, r4; - function u3(u4) { - if (t4 || (t4 = n3()).then(function(n4) { - e4 = n4.default || n4; - }, function(n4) { - r4 = n4; - }), r4) - throw r4; - if (!e4) - throw t4; - return v(e4, u4); - } - return u3.displayName = "Lazy", u3.__f = true, u3; -} -function M2() { - this.u = null, this.o = null; -} -function D2(n3) { - return this.getChildContext = function() { - return n3.context; - }, n3.children; -} -function I2(n3) { - var t4 = this, e4 = n3.i; - t4.componentWillUnmount = function() { - S(null, t4.l), t4.l = null, t4.i = null; - }, t4.i && t4.i !== e4 && t4.componentWillUnmount(), n3.__v ? (t4.l || (t4.i = e4, t4.l = { nodeType: 1, parentNode: e4, childNodes: [], appendChild: function(n4) { - this.childNodes.push(n4), t4.i.appendChild(n4); - }, insertBefore: function(n4, e6) { - this.childNodes.push(n4), t4.i.appendChild(n4); - }, removeChild: function(n4) { - this.childNodes.splice(this.childNodes.indexOf(n4) >>> 1, 1), t4.i.removeChild(n4); - } }), S(v(D2, { context: t4.context }, n3.__v), t4.l)) : t4.l && t4.componentWillUnmount(); -} -function W(n3, t4) { - return v(I2, { __v: n3, i: t4 }); -} -function B2(n3, t4, e4) { - return t4.__k == null && (t4.textContent = ""), S(n3, t4), typeof e4 == "function" && e4(), n3 ? n3.__c : null; -} -function $2(n3, t4, e4) { - return q(n3, t4), typeof e4 == "function" && e4(), n3 ? n3.__c : null; -} -function Z() { -} -function Y() { - return this.cancelBubble; -} -function q3() { - return this.defaultPrevented; -} -function tn(n3) { - return v.bind(null, n3); -} -function en(n3) { - return !!n3 && n3.$$typeof === j3; -} -function rn(n3) { - return en(n3) ? B.apply(null, arguments) : n3; -} -function un(n3) { - return !!n3.__k && (S(null, n3), true); -} -function on(n3) { - return n3 && (n3.base || n3.nodeType === 1 && n3) || null; -} -var w3, R, N2, k3, A3, O2, T3, j3, P2, V, z2, H2, G, J, K, Q, X, nn, ln, cn, fn, compat_module_default; -var init_compat_module = __esm({ - "node_modules/preact/compat/dist/compat.module.js"() { - init_hooks_module(); - init_hooks_module(); - init_preact_module(); - init_preact_module(); - (E.prototype = new _()).isPureReactComponent = true, E.prototype.shouldComponentUpdate = function(n3, t4) { - return C2(this.props, n3) || C2(this.state, t4); - }; - w3 = l2.__b; - l2.__b = function(n3) { - n3.type && n3.type.__f && n3.ref && (n3.props.ref = n3.ref, n3.ref = null), w3 && w3(n3); - }; - R = typeof Symbol != "undefined" && Symbol.for && Symbol.for("react.forward_ref") || 3911; - N2 = function(n3, t4) { - return n3 == null ? null : A(A(n3).map(t4)); - }; - k3 = { map: N2, forEach: N2, count: function(n3) { - return n3 ? A(n3).length : 0; - }, only: function(n3) { - var t4 = A(n3); - if (t4.length !== 1) - throw "Children.only"; - return t4[0]; - }, toArray: A }; - A3 = l2.__e; - l2.__e = function(n3, t4, e4) { - if (n3.then) { - for (var r4, u3 = t4; u3 = u3.__; ) - if ((r4 = u3.__c) && r4.__c) - return t4.__e == null && (t4.__e = e4.__e, t4.__k = e4.__k), r4.__c(n3, t4); - } - A3(n3, t4, e4); - }; - O2 = l2.unmount; - l2.unmount = function(n3) { - var t4 = n3.__c; - t4 && t4.__R && t4.__R(), t4 && n3.__h === true && (n3.type = null), O2 && O2(n3); - }, (L2.prototype = new _()).__c = function(n3, t4) { - var e4 = t4.__c, r4 = this; - r4.t == null && (r4.t = []), r4.t.push(e4); - var u3 = U(r4.__v), o3 = false, i4 = function() { - o3 || (o3 = true, e4.__R = null, u3 ? u3(l4) : l4()); - }; - e4.__R = i4; - var l4 = function() { - if (!--r4.__u) { - if (r4.state.__e) { - var n4 = r4.state.__e; - r4.__v.__k[0] = function n5(t6, e6, r5) { - return t6 && (t6.__v = null, t6.__k = t6.__k && t6.__k.map(function(t7) { - return n5(t7, e6, r5); - }), t6.__c && t6.__c.__P === e6 && (t6.__e && r5.insertBefore(t6.__e, t6.__d), t6.__c.__e = true, t6.__c.__P = r5)), t6; - }(n4, n4.__c.__P, n4.__c.__O); - } - var t5; - for (r4.setState({ __e: r4.__b = null }); t5 = r4.t.pop(); ) - t5.forceUpdate(); - } - }, c5 = t4.__h === true; - r4.__u++ || c5 || r4.setState({ __e: r4.__b = r4.__v.__k[0] }), n3.then(i4, i4); - }, L2.prototype.componentWillUnmount = function() { - this.t = []; - }, L2.prototype.render = function(n3, t4) { - if (this.__b) { - if (this.__v.__k) { - var e4 = document.createElement("div"), r4 = this.__v.__k[0].__c; - this.__v.__k[0] = function n4(t5, e6, r5) { - return t5 && (t5.__c && t5.__c.__H && (t5.__c.__H.__.forEach(function(n5) { - typeof n5.__c == "function" && n5.__c(); - }), t5.__c.__H = null), (t5 = S2({}, t5)).__c != null && (t5.__c.__P === r5 && (t5.__c.__P = e6), t5.__c = null), t5.__k = t5.__k && t5.__k.map(function(t6) { - return n4(t6, e6, r5); - })), t5; - }(this.__b, e4, r4.__O = r4.__P); - } - this.__b = null; - } - var u3 = t4.__e && v(d, null, n3.fallback); - return u3 && (u3.__h = null), [v(d, null, t4.__e ? null : n3.children), u3]; - }; - T3 = function(n3, t4, e4) { - if (++e4[1] === e4[0] && n3.o.delete(t4), n3.props.revealOrder && (n3.props.revealOrder[0] !== "t" || !n3.o.size)) - for (e4 = n3.u; e4; ) { - for (; e4.length > 3; ) - e4.pop()(); - if (e4[1] < e4[0]) - break; - n3.u = e4 = e4[2]; - } - }; - (M2.prototype = new _()).__e = function(n3) { - var t4 = this, e4 = U(t4.__v), r4 = t4.o.get(n3); - return r4[0]++, function(u3) { - var o3 = function() { - t4.props.revealOrder ? (r4.push(u3), T3(t4, n3, r4)) : u3(); - }; - e4 ? e4(o3) : o3(); - }; - }, M2.prototype.render = function(n3) { - this.u = null, this.o = new Map(); - var t4 = A(n3.children); - n3.revealOrder && n3.revealOrder[0] === "b" && t4.reverse(); - for (var e4 = t4.length; e4--; ) - this.o.set(t4[e4], this.u = [1, 0, this.u]); - return n3.children; - }, M2.prototype.componentDidUpdate = M2.prototype.componentDidMount = function() { - var n3 = this; - this.o.forEach(function(t4, e4) { - T3(n3, e4, t4); - }); - }; - j3 = typeof Symbol != "undefined" && Symbol.for && Symbol.for("react.element") || 60103; - P2 = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/; - V = typeof document != "undefined"; - z2 = function(n3) { - return (typeof Symbol != "undefined" && typeof Symbol() == "symbol" ? /fil|che|rad/i : /fil|che|ra/i).test(n3); - }; - _.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(n3) { - Object.defineProperty(_.prototype, n3, { configurable: true, get: function() { - return this["UNSAFE_" + n3]; - }, set: function(t4) { - Object.defineProperty(this, n3, { configurable: true, writable: true, value: t4 }); - } }); - }); - H2 = l2.event; - l2.event = function(n3) { - return H2 && (n3 = H2(n3)), n3.persist = Z, n3.isPropagationStopped = Y, n3.isDefaultPrevented = q3, n3.nativeEvent = n3; - }; - J = { configurable: true, get: function() { - return this.class; - } }; - K = l2.vnode; - l2.vnode = function(n3) { - var t4 = n3.type, e4 = n3.props, r4 = e4; - if (typeof t4 == "string") { - var u3 = t4.indexOf("-") === -1; - for (var o3 in r4 = {}, e4) { - var i4 = e4[o3]; - V && o3 === "children" && t4 === "noscript" || o3 === "value" && "defaultValue" in e4 && i4 == null || (o3 === "defaultValue" && "value" in e4 && e4.value == null ? o3 = "value" : o3 === "download" && i4 === true ? i4 = "" : /ondoubleclick/i.test(o3) ? o3 = "ondblclick" : /^onchange(textarea|input)/i.test(o3 + t4) && !z2(e4.type) ? o3 = "oninput" : /^onfocus$/i.test(o3) ? o3 = "onfocusin" : /^onblur$/i.test(o3) ? o3 = "onfocusout" : /^on(Ani|Tra|Tou|BeforeInp)/.test(o3) ? o3 = o3.toLowerCase() : u3 && P2.test(o3) ? o3 = o3.replace(/[A-Z0-9]/, "-$&").toLowerCase() : i4 === null && (i4 = void 0), r4[o3] = i4); - } - t4 == "select" && r4.multiple && Array.isArray(r4.value) && (r4.value = A(e4.children).forEach(function(n4) { - n4.props.selected = r4.value.indexOf(n4.props.value) != -1; - })), t4 == "select" && r4.defaultValue != null && (r4.value = A(e4.children).forEach(function(n4) { - n4.props.selected = r4.multiple ? r4.defaultValue.indexOf(n4.props.value) != -1 : r4.defaultValue == n4.props.value; - })), n3.props = r4, e4.class != e4.className && (J.enumerable = "className" in e4, e4.className != null && (r4.class = e4.className), Object.defineProperty(r4, "className", J)); - } - n3.$$typeof = j3, K && K(n3); - }; - Q = l2.__r; - l2.__r = function(n3) { - Q && Q(n3), G = n3.__c; - }; - X = { ReactCurrentDispatcher: { current: { readContext: function(n3) { - return G.__n[n3.__c].props.value; - } } } }; - nn = "17.0.2"; - ln = function(n3, t4) { - return n3(t4); - }; - cn = function(n3, t4) { - return n3(t4); - }; - fn = d; - compat_module_default = { useState: l3, useReducer: p3, useEffect: y2, useLayoutEffect: h2, useRef: s3, useImperativeHandle: _2, useMemo: d2, useCallback: A2, useContext: F, useDebugValue: T2, version: "17.0.2", Children: k3, render: B2, hydrate: $2, unmountComponentAtNode: un, createPortal: W, createElement: v, createContext: D, createFactory: tn, cloneElement: rn, createRef: p2, Fragment: d, isValidElement: en, findDOMNode: on, Component: _, PureComponent: E, memo: g3, forwardRef: x3, flushSync: cn, unstable_batchedUpdates: ln, StrictMode: d, Suspense: L2, SuspenseList: M2, lazy: F2, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: X }; - } -}); - -// node_modules/tslib/tslib.js -var require_tslib = __commonJS({ - "node_modules/tslib/tslib.js"(exports, module2) { - var __extends15; - var __assign30; - var __rest46; - var __decorate4; - var __param4; - var __metadata4; - var __awaiter7; - var __generator5; - var __exportStar4; - var __values4; - var __read4; - var __spread4; - var __spreadArrays4; - var __spreadArray4; - var __await4; - var __asyncGenerator4; - var __asyncDelegator4; - var __asyncValues4; - var __makeTemplateObject4; - var __importStar4; - var __importDefault4; - var __classPrivateFieldGet4; - var __classPrivateFieldSet4; - var __createBinding4; - (function(factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function(exports2) { - factory(createExporter(root, createExporter(exports2))); - }); - } else if (typeof module2 === "object" && typeof module2.exports === "object") { - factory(createExporter(root, createExporter(module2.exports))); - } else { - factory(createExporter(root)); - } - function createExporter(exports2, previous) { - if (exports2 !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports2, "__esModule", { value: true }); - } else { - exports2.__esModule = true; - } - } - return function(id, v3) { - return exports2[id] = previous ? previous(id, v3) : v3; - }; - } - })(function(exporter) { - var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b10) { - d3.__proto__ = b10; - } || function(d3, b10) { - for (var p4 in b10) - if (Object.prototype.hasOwnProperty.call(b10, p4)) - d3[p4] = b10[p4]; - }; - __extends15 = function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; - __assign30 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - __rest46 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; - }; - __decorate4 = function(decorators, target, key, desc) { - var c5 = arguments.length, r4 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d3; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") - r4 = Reflect.decorate(decorators, target, key, desc); - else - for (var i4 = decorators.length - 1; i4 >= 0; i4--) - if (d3 = decorators[i4]) - r4 = (c5 < 3 ? d3(r4) : c5 > 3 ? d3(target, key, r4) : d3(target, key)) || r4; - return c5 > 3 && r4 && Object.defineProperty(target, key, r4), r4; - }; - __param4 = function(paramIndex, decorator) { - return function(target, key) { - decorator(target, key, paramIndex); - }; - }; - __metadata4 = function(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") - return Reflect.metadata(metadataKey, metadataValue); - }; - __awaiter7 = function(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve) { - resolve(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e4) { - reject(e4); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - __generator5 = function(thisArg, body) { - var _8 = { label: 0, sent: function() { - if (t4[0] & 1) - throw t4[1]; - return t4[1]; - }, trys: [], ops: [] }, f3, y5, t4, g4; - return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { - return this; - }), g4; - function verb(n3) { - return function(v3) { - return step([n3, v3]); - }; - } - function step(op) { - if (f3) - throw new TypeError("Generator is already executing."); - while (_8) - try { - if (f3 = 1, y5 && (t4 = op[0] & 2 ? y5["return"] : op[0] ? y5["throw"] || ((t4 = y5["return"]) && t4.call(y5), 0) : y5.next) && !(t4 = t4.call(y5, op[1])).done) - return t4; - if (y5 = 0, t4) - op = [op[0] & 2, t4.value]; - switch (op[0]) { - case 0: - case 1: - t4 = op; - break; - case 4: - _8.label++; - return { value: op[1], done: false }; - case 5: - _8.label++; - y5 = op[1]; - op = [0]; - continue; - case 7: - op = _8.ops.pop(); - _8.trys.pop(); - continue; - default: - if (!(t4 = _8.trys, t4 = t4.length > 0 && t4[t4.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _8 = 0; - continue; - } - if (op[0] === 3 && (!t4 || op[1] > t4[0] && op[1] < t4[3])) { - _8.label = op[1]; - break; - } - if (op[0] === 6 && _8.label < t4[1]) { - _8.label = t4[1]; - t4 = op; - break; - } - if (t4 && _8.label < t4[2]) { - _8.label = t4[2]; - _8.ops.push(op); - break; - } - if (t4[2]) - _8.ops.pop(); - _8.trys.pop(); - continue; - } - op = body.call(thisArg, _8); - } catch (e4) { - op = [6, e4]; - y5 = 0; - } finally { - f3 = t4 = 0; - } - if (op[0] & 5) - throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - __exportStar4 = function(m4, o3) { - for (var p4 in m4) - if (p4 !== "default" && !Object.prototype.hasOwnProperty.call(o3, p4)) - __createBinding4(o3, m4, p4); - }; - __createBinding4 = Object.create ? function(o3, m4, k4, k22) { - if (k22 === void 0) - k22 = k4; - Object.defineProperty(o3, k22, { enumerable: true, get: function() { - return m4[k4]; - } }); - } : function(o3, m4, k4, k22) { - if (k22 === void 0) - k22 = k4; - o3[k22] = m4[k4]; - }; - __values4 = function(o3) { - var s4 = typeof Symbol === "function" && Symbol.iterator, m4 = s4 && o3[s4], i4 = 0; - if (m4) - return m4.call(o3); - if (o3 && typeof o3.length === "number") - return { - next: function() { - if (o3 && i4 >= o3.length) - o3 = void 0; - return { value: o3 && o3[i4++], done: !o3 }; - } - }; - throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - __read4 = function(o3, n3) { - var m4 = typeof Symbol === "function" && o3[Symbol.iterator]; - if (!m4) - return o3; - var i4 = m4.call(o3), r4, ar = [], e4; - try { - while ((n3 === void 0 || n3-- > 0) && !(r4 = i4.next()).done) - ar.push(r4.value); - } catch (error) { - e4 = { error }; - } finally { - try { - if (r4 && !r4.done && (m4 = i4["return"])) - m4.call(i4); - } finally { - if (e4) - throw e4.error; - } - } - return ar; - }; - __spread4 = function() { - for (var ar = [], i4 = 0; i4 < arguments.length; i4++) - ar = ar.concat(__read4(arguments[i4])); - return ar; - }; - __spreadArrays4 = function() { - for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++) - s4 += arguments[i4].length; - for (var r4 = Array(s4), k4 = 0, i4 = 0; i4 < il; i4++) - for (var a4 = arguments[i4], j4 = 0, jl = a4.length; j4 < jl; j4++, k4++) - r4[k4] = a4[j4]; - return r4; - }; - __spreadArray4 = function(to, from, pack2) { - if (pack2 || arguments.length === 2) - for (var i4 = 0, l4 = from.length, ar; i4 < l4; i4++) { - if (ar || !(i4 in from)) { - if (!ar) - ar = Array.prototype.slice.call(from, 0, i4); - ar[i4] = from[i4]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - }; - __await4 = function(v3) { - return this instanceof __await4 ? (this.v = v3, this) : new __await4(v3); - }; - __asyncGenerator4 = function(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g4 = generator.apply(thisArg, _arguments || []), i4, q4 = []; - return i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { - return this; - }, i4; - function verb(n3) { - if (g4[n3]) - i4[n3] = function(v3) { - return new Promise(function(a4, b10) { - q4.push([n3, v3, a4, b10]) > 1 || resume(n3, v3); - }); - }; - } - function resume(n3, v3) { - try { - step(g4[n3](v3)); - } catch (e4) { - settle(q4[0][3], e4); - } - } - function step(r4) { - r4.value instanceof __await4 ? Promise.resolve(r4.value.v).then(fulfill, reject) : settle(q4[0][2], r4); - } - function fulfill(value2) { - resume("next", value2); - } - function reject(value2) { - resume("throw", value2); - } - function settle(f3, v3) { - if (f3(v3), q4.shift(), q4.length) - resume(q4[0][0], q4[0][1]); - } - }; - __asyncDelegator4 = function(o3) { - var i4, p4; - return i4 = {}, verb("next"), verb("throw", function(e4) { - throw e4; - }), verb("return"), i4[Symbol.iterator] = function() { - return this; - }, i4; - function verb(n3, f3) { - i4[n3] = o3[n3] ? function(v3) { - return (p4 = !p4) ? { value: __await4(o3[n3](v3)), done: n3 === "return" } : f3 ? f3(v3) : v3; - } : f3; - } - }; - __asyncValues4 = function(o3) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var m4 = o3[Symbol.asyncIterator], i4; - return m4 ? m4.call(o3) : (o3 = typeof __values4 === "function" ? __values4(o3) : o3[Symbol.iterator](), i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { - return this; - }, i4); - function verb(n3) { - i4[n3] = o3[n3] && function(v3) { - return new Promise(function(resolve, reject) { - v3 = o3[n3](v3), settle(resolve, reject, v3.done, v3.value); - }); - }; - } - function settle(resolve, reject, d3, v3) { - Promise.resolve(v3).then(function(v4) { - resolve({ value: v4, done: d3 }); - }, reject); - } - }; - __makeTemplateObject4 = function(cooked, raw) { - if (Object.defineProperty) { - Object.defineProperty(cooked, "raw", { value: raw }); - } else { - cooked.raw = raw; - } - return cooked; - }; - var __setModuleDefault = Object.create ? function(o3, v3) { - Object.defineProperty(o3, "default", { enumerable: true, value: v3 }); - } : function(o3, v3) { - o3["default"] = v3; - }; - __importStar4 = function(mod3) { - if (mod3 && mod3.__esModule) - return mod3; - var result = {}; - if (mod3 != null) { - for (var k4 in mod3) - if (k4 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k4)) - __createBinding4(result, mod3, k4); - } - __setModuleDefault(result, mod3); - return result; - }; - __importDefault4 = function(mod3) { - return mod3 && mod3.__esModule ? mod3 : { "default": mod3 }; - }; - __classPrivateFieldGet4 = function(receiver, state2, kind, f3) { - if (kind === "a" && !f3) - throw new TypeError("Private accessor was defined without a getter"); - if (typeof state2 === "function" ? receiver !== state2 || !f3 : !state2.has(receiver)) - throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f3 : kind === "a" ? f3.call(receiver) : f3 ? f3.value : state2.get(receiver); - }; - __classPrivateFieldSet4 = function(receiver, state2, value2, kind, f3) { - if (kind === "m") - throw new TypeError("Private method is not writable"); - if (kind === "a" && !f3) - throw new TypeError("Private accessor was defined without a setter"); - if (typeof state2 === "function" ? receiver !== state2 || !f3 : !state2.has(receiver)) - throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return kind === "a" ? f3.call(receiver, value2) : f3 ? f3.value = value2 : state2.set(receiver, value2), value2; - }; - exporter("__extends", __extends15); - exporter("__assign", __assign30); - exporter("__rest", __rest46); - exporter("__decorate", __decorate4); - exporter("__param", __param4); - exporter("__metadata", __metadata4); - exporter("__awaiter", __awaiter7); - exporter("__generator", __generator5); - exporter("__exportStar", __exportStar4); - exporter("__createBinding", __createBinding4); - exporter("__values", __values4); - exporter("__read", __read4); - exporter("__spread", __spread4); - exporter("__spreadArrays", __spreadArrays4); - exporter("__spreadArray", __spreadArray4); - exporter("__await", __await4); - exporter("__asyncGenerator", __asyncGenerator4); - exporter("__asyncDelegator", __asyncDelegator4); - exporter("__asyncValues", __asyncValues4); - exporter("__makeTemplateObject", __makeTemplateObject4); - exporter("__importStar", __importStar4); - exporter("__importDefault", __importDefault4); - exporter("__classPrivateFieldGet", __classPrivateFieldGet4); - exporter("__classPrivateFieldSet", __classPrivateFieldSet4); - }); - } -}); - -// node_modules/@antv/adjust/node_modules/tslib/tslib.js -var require_tslib2 = __commonJS({ - "node_modules/@antv/adjust/node_modules/tslib/tslib.js"(exports, module2) { - var __extends15; - var __assign30; - var __rest46; - var __decorate4; - var __param4; - var __metadata4; - var __awaiter7; - var __generator5; - var __exportStar4; - var __values4; - var __read4; - var __spread4; - var __spreadArrays4; - var __await4; - var __asyncGenerator4; - var __asyncDelegator4; - var __asyncValues4; - var __makeTemplateObject4; - var __importStar4; - var __importDefault4; - var __classPrivateFieldGet4; - var __classPrivateFieldSet4; - var __createBinding4; - (function(factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function(exports2) { - factory(createExporter(root, createExporter(exports2))); - }); - } else if (typeof module2 === "object" && typeof module2.exports === "object") { - factory(createExporter(root, createExporter(module2.exports))); - } else { - factory(createExporter(root)); - } - function createExporter(exports2, previous) { - if (exports2 !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports2, "__esModule", { value: true }); - } else { - exports2.__esModule = true; - } - } - return function(id, v3) { - return exports2[id] = previous ? previous(id, v3) : v3; - }; - } - })(function(exporter) { - var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b10) { - d3.__proto__ = b10; - } || function(d3, b10) { - for (var p4 in b10) - if (b10.hasOwnProperty(p4)) - d3[p4] = b10[p4]; - }; - __extends15 = function(d3, b10) { - extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; - __assign30 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - __rest46 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; - }; - __decorate4 = function(decorators, target, key, desc) { - var c5 = arguments.length, r4 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d3; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") - r4 = Reflect.decorate(decorators, target, key, desc); - else - for (var i4 = decorators.length - 1; i4 >= 0; i4--) - if (d3 = decorators[i4]) - r4 = (c5 < 3 ? d3(r4) : c5 > 3 ? d3(target, key, r4) : d3(target, key)) || r4; - return c5 > 3 && r4 && Object.defineProperty(target, key, r4), r4; - }; - __param4 = function(paramIndex, decorator) { - return function(target, key) { - decorator(target, key, paramIndex); - }; - }; - __metadata4 = function(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") - return Reflect.metadata(metadataKey, metadataValue); - }; - __awaiter7 = function(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve) { - resolve(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e4) { - reject(e4); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - __generator5 = function(thisArg, body) { - var _8 = { label: 0, sent: function() { - if (t4[0] & 1) - throw t4[1]; - return t4[1]; - }, trys: [], ops: [] }, f3, y5, t4, g4; - return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { - return this; - }), g4; - function verb(n3) { - return function(v3) { - return step([n3, v3]); - }; - } - function step(op) { - if (f3) - throw new TypeError("Generator is already executing."); - while (_8) - try { - if (f3 = 1, y5 && (t4 = op[0] & 2 ? y5["return"] : op[0] ? y5["throw"] || ((t4 = y5["return"]) && t4.call(y5), 0) : y5.next) && !(t4 = t4.call(y5, op[1])).done) - return t4; - if (y5 = 0, t4) - op = [op[0] & 2, t4.value]; - switch (op[0]) { - case 0: - case 1: - t4 = op; - break; - case 4: - _8.label++; - return { value: op[1], done: false }; - case 5: - _8.label++; - y5 = op[1]; - op = [0]; - continue; - case 7: - op = _8.ops.pop(); - _8.trys.pop(); - continue; - default: - if (!(t4 = _8.trys, t4 = t4.length > 0 && t4[t4.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _8 = 0; - continue; - } - if (op[0] === 3 && (!t4 || op[1] > t4[0] && op[1] < t4[3])) { - _8.label = op[1]; - break; - } - if (op[0] === 6 && _8.label < t4[1]) { - _8.label = t4[1]; - t4 = op; - break; - } - if (t4 && _8.label < t4[2]) { - _8.label = t4[2]; - _8.ops.push(op); - break; - } - if (t4[2]) - _8.ops.pop(); - _8.trys.pop(); - continue; - } - op = body.call(thisArg, _8); - } catch (e4) { - op = [6, e4]; - y5 = 0; - } finally { - f3 = t4 = 0; - } - if (op[0] & 5) - throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - __createBinding4 = function(o3, m4, k4, k22) { - if (k22 === void 0) - k22 = k4; - o3[k22] = m4[k4]; - }; - __exportStar4 = function(m4, exports2) { - for (var p4 in m4) - if (p4 !== "default" && !exports2.hasOwnProperty(p4)) - exports2[p4] = m4[p4]; - }; - __values4 = function(o3) { - var s4 = typeof Symbol === "function" && Symbol.iterator, m4 = s4 && o3[s4], i4 = 0; - if (m4) - return m4.call(o3); - if (o3 && typeof o3.length === "number") - return { - next: function() { - if (o3 && i4 >= o3.length) - o3 = void 0; - return { value: o3 && o3[i4++], done: !o3 }; - } - }; - throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - __read4 = function(o3, n3) { - var m4 = typeof Symbol === "function" && o3[Symbol.iterator]; - if (!m4) - return o3; - var i4 = m4.call(o3), r4, ar = [], e4; - try { - while ((n3 === void 0 || n3-- > 0) && !(r4 = i4.next()).done) - ar.push(r4.value); - } catch (error) { - e4 = { error }; - } finally { - try { - if (r4 && !r4.done && (m4 = i4["return"])) - m4.call(i4); - } finally { - if (e4) - throw e4.error; - } - } - return ar; - }; - __spread4 = function() { - for (var ar = [], i4 = 0; i4 < arguments.length; i4++) - ar = ar.concat(__read4(arguments[i4])); - return ar; - }; - __spreadArrays4 = function() { - for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++) - s4 += arguments[i4].length; - for (var r4 = Array(s4), k4 = 0, i4 = 0; i4 < il; i4++) - for (var a4 = arguments[i4], j4 = 0, jl = a4.length; j4 < jl; j4++, k4++) - r4[k4] = a4[j4]; - return r4; - }; - __await4 = function(v3) { - return this instanceof __await4 ? (this.v = v3, this) : new __await4(v3); - }; - __asyncGenerator4 = function(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g4 = generator.apply(thisArg, _arguments || []), i4, q4 = []; - return i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { - return this; - }, i4; - function verb(n3) { - if (g4[n3]) - i4[n3] = function(v3) { - return new Promise(function(a4, b10) { - q4.push([n3, v3, a4, b10]) > 1 || resume(n3, v3); - }); - }; - } - function resume(n3, v3) { - try { - step(g4[n3](v3)); - } catch (e4) { - settle(q4[0][3], e4); - } - } - function step(r4) { - r4.value instanceof __await4 ? Promise.resolve(r4.value.v).then(fulfill, reject) : settle(q4[0][2], r4); - } - function fulfill(value2) { - resume("next", value2); - } - function reject(value2) { - resume("throw", value2); - } - function settle(f3, v3) { - if (f3(v3), q4.shift(), q4.length) - resume(q4[0][0], q4[0][1]); - } - }; - __asyncDelegator4 = function(o3) { - var i4, p4; - return i4 = {}, verb("next"), verb("throw", function(e4) { - throw e4; - }), verb("return"), i4[Symbol.iterator] = function() { - return this; - }, i4; - function verb(n3, f3) { - i4[n3] = o3[n3] ? function(v3) { - return (p4 = !p4) ? { value: __await4(o3[n3](v3)), done: n3 === "return" } : f3 ? f3(v3) : v3; - } : f3; - } - }; - __asyncValues4 = function(o3) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var m4 = o3[Symbol.asyncIterator], i4; - return m4 ? m4.call(o3) : (o3 = typeof __values4 === "function" ? __values4(o3) : o3[Symbol.iterator](), i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { - return this; - }, i4); - function verb(n3) { - i4[n3] = o3[n3] && function(v3) { - return new Promise(function(resolve, reject) { - v3 = o3[n3](v3), settle(resolve, reject, v3.done, v3.value); - }); - }; - } - function settle(resolve, reject, d3, v3) { - Promise.resolve(v3).then(function(v4) { - resolve({ value: v4, done: d3 }); - }, reject); - } - }; - __makeTemplateObject4 = function(cooked, raw) { - if (Object.defineProperty) { - Object.defineProperty(cooked, "raw", { value: raw }); - } else { - cooked.raw = raw; - } - return cooked; - }; - __importStar4 = function(mod3) { - if (mod3 && mod3.__esModule) - return mod3; - var result = {}; - if (mod3 != null) { - for (var k4 in mod3) - if (Object.hasOwnProperty.call(mod3, k4)) - result[k4] = mod3[k4]; - } - result["default"] = mod3; - return result; - }; - __importDefault4 = function(mod3) { - return mod3 && mod3.__esModule ? mod3 : { "default": mod3 }; - }; - __classPrivateFieldGet4 = function(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); - }; - __classPrivateFieldSet4 = function(receiver, privateMap, value2) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value2); - return value2; - }; - exporter("__extends", __extends15); - exporter("__assign", __assign30); - exporter("__rest", __rest46); - exporter("__decorate", __decorate4); - exporter("__param", __param4); - exporter("__metadata", __metadata4); - exporter("__awaiter", __awaiter7); - exporter("__generator", __generator5); - exporter("__exportStar", __exportStar4); - exporter("__createBinding", __createBinding4); - exporter("__values", __values4); - exporter("__read", __read4); - exporter("__spread", __spread4); - exporter("__spreadArrays", __spreadArrays4); - exporter("__await", __await4); - exporter("__asyncGenerator", __asyncGenerator4); - exporter("__asyncDelegator", __asyncDelegator4); - exporter("__asyncValues", __asyncValues4); - exporter("__makeTemplateObject", __makeTemplateObject4); - exporter("__importStar", __importStar4); - exporter("__importDefault", __importDefault4); - exporter("__classPrivateFieldGet", __classPrivateFieldGet4); - exporter("__classPrivateFieldSet", __classPrivateFieldSet4); - }); - } -}); - -// node_modules/@antv/attr/node_modules/tslib/tslib.js -var require_tslib3 = __commonJS({ - "node_modules/@antv/attr/node_modules/tslib/tslib.js"(exports, module2) { - var __extends15; - var __assign30; - var __rest46; - var __decorate4; - var __param4; - var __metadata4; - var __awaiter7; - var __generator5; - var __exportStar4; - var __values4; - var __read4; - var __spread4; - var __spreadArrays4; - var __await4; - var __asyncGenerator4; - var __asyncDelegator4; - var __asyncValues4; - var __makeTemplateObject4; - var __importStar4; - var __importDefault4; - var __classPrivateFieldGet4; - var __classPrivateFieldSet4; - var __createBinding4; - (function(factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function(exports2) { - factory(createExporter(root, createExporter(exports2))); - }); - } else if (typeof module2 === "object" && typeof module2.exports === "object") { - factory(createExporter(root, createExporter(module2.exports))); - } else { - factory(createExporter(root)); - } - function createExporter(exports2, previous) { - if (exports2 !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports2, "__esModule", { value: true }); - } else { - exports2.__esModule = true; - } - } - return function(id, v3) { - return exports2[id] = previous ? previous(id, v3) : v3; - }; - } - })(function(exporter) { - var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b10) { - d3.__proto__ = b10; - } || function(d3, b10) { - for (var p4 in b10) - if (b10.hasOwnProperty(p4)) - d3[p4] = b10[p4]; - }; - __extends15 = function(d3, b10) { - extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; - __assign30 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - __rest46 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; - }; - __decorate4 = function(decorators, target, key, desc) { - var c5 = arguments.length, r4 = c5 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d3; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") - r4 = Reflect.decorate(decorators, target, key, desc); - else - for (var i4 = decorators.length - 1; i4 >= 0; i4--) - if (d3 = decorators[i4]) - r4 = (c5 < 3 ? d3(r4) : c5 > 3 ? d3(target, key, r4) : d3(target, key)) || r4; - return c5 > 3 && r4 && Object.defineProperty(target, key, r4), r4; - }; - __param4 = function(paramIndex, decorator) { - return function(target, key) { - decorator(target, key, paramIndex); - }; - }; - __metadata4 = function(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") - return Reflect.metadata(metadataKey, metadataValue); - }; - __awaiter7 = function(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve) { - resolve(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e4) { - reject(e4); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - __generator5 = function(thisArg, body) { - var _8 = { label: 0, sent: function() { - if (t4[0] & 1) - throw t4[1]; - return t4[1]; - }, trys: [], ops: [] }, f3, y5, t4, g4; - return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { - return this; - }), g4; - function verb(n3) { - return function(v3) { - return step([n3, v3]); - }; - } - function step(op) { - if (f3) - throw new TypeError("Generator is already executing."); - while (_8) - try { - if (f3 = 1, y5 && (t4 = op[0] & 2 ? y5["return"] : op[0] ? y5["throw"] || ((t4 = y5["return"]) && t4.call(y5), 0) : y5.next) && !(t4 = t4.call(y5, op[1])).done) - return t4; - if (y5 = 0, t4) - op = [op[0] & 2, t4.value]; - switch (op[0]) { - case 0: - case 1: - t4 = op; - break; - case 4: - _8.label++; - return { value: op[1], done: false }; - case 5: - _8.label++; - y5 = op[1]; - op = [0]; - continue; - case 7: - op = _8.ops.pop(); - _8.trys.pop(); - continue; - default: - if (!(t4 = _8.trys, t4 = t4.length > 0 && t4[t4.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _8 = 0; - continue; - } - if (op[0] === 3 && (!t4 || op[1] > t4[0] && op[1] < t4[3])) { - _8.label = op[1]; - break; - } - if (op[0] === 6 && _8.label < t4[1]) { - _8.label = t4[1]; - t4 = op; - break; - } - if (t4 && _8.label < t4[2]) { - _8.label = t4[2]; - _8.ops.push(op); - break; - } - if (t4[2]) - _8.ops.pop(); - _8.trys.pop(); - continue; - } - op = body.call(thisArg, _8); - } catch (e4) { - op = [6, e4]; - y5 = 0; - } finally { - f3 = t4 = 0; - } - if (op[0] & 5) - throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - __createBinding4 = function(o3, m4, k4, k22) { - if (k22 === void 0) - k22 = k4; - o3[k22] = m4[k4]; - }; - __exportStar4 = function(m4, exports2) { - for (var p4 in m4) - if (p4 !== "default" && !exports2.hasOwnProperty(p4)) - exports2[p4] = m4[p4]; - }; - __values4 = function(o3) { - var s4 = typeof Symbol === "function" && Symbol.iterator, m4 = s4 && o3[s4], i4 = 0; - if (m4) - return m4.call(o3); - if (o3 && typeof o3.length === "number") - return { - next: function() { - if (o3 && i4 >= o3.length) - o3 = void 0; - return { value: o3 && o3[i4++], done: !o3 }; - } - }; - throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - __read4 = function(o3, n3) { - var m4 = typeof Symbol === "function" && o3[Symbol.iterator]; - if (!m4) - return o3; - var i4 = m4.call(o3), r4, ar = [], e4; - try { - while ((n3 === void 0 || n3-- > 0) && !(r4 = i4.next()).done) - ar.push(r4.value); - } catch (error) { - e4 = { error }; - } finally { - try { - if (r4 && !r4.done && (m4 = i4["return"])) - m4.call(i4); - } finally { - if (e4) - throw e4.error; - } - } - return ar; - }; - __spread4 = function() { - for (var ar = [], i4 = 0; i4 < arguments.length; i4++) - ar = ar.concat(__read4(arguments[i4])); - return ar; - }; - __spreadArrays4 = function() { - for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++) - s4 += arguments[i4].length; - for (var r4 = Array(s4), k4 = 0, i4 = 0; i4 < il; i4++) - for (var a4 = arguments[i4], j4 = 0, jl = a4.length; j4 < jl; j4++, k4++) - r4[k4] = a4[j4]; - return r4; - }; - __await4 = function(v3) { - return this instanceof __await4 ? (this.v = v3, this) : new __await4(v3); - }; - __asyncGenerator4 = function(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g4 = generator.apply(thisArg, _arguments || []), i4, q4 = []; - return i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { - return this; - }, i4; - function verb(n3) { - if (g4[n3]) - i4[n3] = function(v3) { - return new Promise(function(a4, b10) { - q4.push([n3, v3, a4, b10]) > 1 || resume(n3, v3); - }); - }; - } - function resume(n3, v3) { - try { - step(g4[n3](v3)); - } catch (e4) { - settle(q4[0][3], e4); - } - } - function step(r4) { - r4.value instanceof __await4 ? Promise.resolve(r4.value.v).then(fulfill, reject) : settle(q4[0][2], r4); - } - function fulfill(value2) { - resume("next", value2); - } - function reject(value2) { - resume("throw", value2); - } - function settle(f3, v3) { - if (f3(v3), q4.shift(), q4.length) - resume(q4[0][0], q4[0][1]); - } - }; - __asyncDelegator4 = function(o3) { - var i4, p4; - return i4 = {}, verb("next"), verb("throw", function(e4) { - throw e4; - }), verb("return"), i4[Symbol.iterator] = function() { - return this; - }, i4; - function verb(n3, f3) { - i4[n3] = o3[n3] ? function(v3) { - return (p4 = !p4) ? { value: __await4(o3[n3](v3)), done: n3 === "return" } : f3 ? f3(v3) : v3; - } : f3; - } - }; - __asyncValues4 = function(o3) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var m4 = o3[Symbol.asyncIterator], i4; - return m4 ? m4.call(o3) : (o3 = typeof __values4 === "function" ? __values4(o3) : o3[Symbol.iterator](), i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { - return this; - }, i4); - function verb(n3) { - i4[n3] = o3[n3] && function(v3) { - return new Promise(function(resolve, reject) { - v3 = o3[n3](v3), settle(resolve, reject, v3.done, v3.value); - }); - }; - } - function settle(resolve, reject, d3, v3) { - Promise.resolve(v3).then(function(v4) { - resolve({ value: v4, done: d3 }); - }, reject); - } - }; - __makeTemplateObject4 = function(cooked, raw) { - if (Object.defineProperty) { - Object.defineProperty(cooked, "raw", { value: raw }); - } else { - cooked.raw = raw; - } - return cooked; - }; - __importStar4 = function(mod3) { - if (mod3 && mod3.__esModule) - return mod3; - var result = {}; - if (mod3 != null) { - for (var k4 in mod3) - if (Object.hasOwnProperty.call(mod3, k4)) - result[k4] = mod3[k4]; - } - result["default"] = mod3; - return result; - }; - __importDefault4 = function(mod3) { - return mod3 && mod3.__esModule ? mod3 : { "default": mod3 }; - }; - __classPrivateFieldGet4 = function(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); - }; - __classPrivateFieldSet4 = function(receiver, privateMap, value2) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value2); - return value2; - }; - exporter("__extends", __extends15); - exporter("__assign", __assign30); - exporter("__rest", __rest46); - exporter("__decorate", __decorate4); - exporter("__param", __param4); - exporter("__metadata", __metadata4); - exporter("__awaiter", __awaiter7); - exporter("__generator", __generator5); - exporter("__exportStar", __exportStar4); - exporter("__createBinding", __createBinding4); - exporter("__values", __values4); - exporter("__read", __read4); - exporter("__spread", __spread4); - exporter("__spreadArrays", __spreadArrays4); - exporter("__await", __await4); - exporter("__asyncGenerator", __asyncGenerator4); - exporter("__asyncDelegator", __asyncDelegator4); - exporter("__asyncValues", __asyncValues4); - exporter("__makeTemplateObject", __makeTemplateObject4); - exporter("__importStar", __importStar4); - exporter("__importDefault", __importDefault4); - exporter("__classPrivateFieldGet", __classPrivateFieldGet4); - exporter("__classPrivateFieldSet", __classPrivateFieldSet4); - }); - } -}); - -// node_modules/size-sensor/lib/id.js -var require_id = __commonJS({ - "node_modules/size-sensor/lib/id.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = void 0; - var id = 1; - var _default2 = function _default3() { - return "".concat(id++); - }; - exports["default"] = _default2; - } -}); - -// node_modules/size-sensor/lib/debounce.js -var require_debounce = __commonJS({ - "node_modules/size-sensor/lib/debounce.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = void 0; - var _default2 = function _default3(fn2) { - var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 60; - var timer3 = null; - return function() { - var _this = this; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - clearTimeout(timer3); - timer3 = setTimeout(function() { - fn2.apply(_this, args); - }, delay); - }; - }; - exports["default"] = _default2; - } -}); - -// node_modules/size-sensor/lib/constant.js -var require_constant = __commonJS({ - "node_modules/size-sensor/lib/constant.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.SensorTabIndex = exports.SensorClassName = exports.SizeSensorId = void 0; - var SizeSensorId = "size-sensor-id"; - exports.SizeSensorId = SizeSensorId; - var SensorClassName = "size-sensor-object"; - exports.SensorClassName = SensorClassName; - var SensorTabIndex = "-1"; - exports.SensorTabIndex = SensorTabIndex; - } -}); - -// node_modules/size-sensor/lib/sensors/object.js -var require_object = __commonJS({ - "node_modules/size-sensor/lib/sensors/object.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.createSensor = void 0; - var _debounce = _interopRequireDefault(require_debounce()); - var _constant = require_constant(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var createSensor = function createSensor2(element) { - var sensor = void 0; - var listeners = []; - var newSensor = function newSensor2() { - if (getComputedStyle(element).position === "static") { - element.style.position = "relative"; - } - var obj = document.createElement("object"); - obj.onload = function() { - obj.contentDocument.defaultView.addEventListener("resize", resizeListener); - resizeListener(); - }; - obj.style.display = "block"; - obj.style.position = "absolute"; - obj.style.top = "0"; - obj.style.left = "0"; - obj.style.height = "100%"; - obj.style.width = "100%"; - obj.style.overflow = "hidden"; - obj.style.pointerEvents = "none"; - obj.style.zIndex = "-1"; - obj.style.opacity = "0"; - obj.setAttribute("class", _constant.SensorClassName); - obj.setAttribute("tabindex", _constant.SensorTabIndex); - obj.type = "text/html"; - element.appendChild(obj); - obj.data = "about:blank"; - return obj; - }; - var resizeListener = (0, _debounce["default"])(function() { - listeners.forEach(function(listener) { - listener(element); - }); - }); - var bind3 = function bind4(cb) { - if (!sensor) { - sensor = newSensor(); - } - if (listeners.indexOf(cb) === -1) { - listeners.push(cb); - } - }; - var destroy = function destroy2() { - if (sensor && sensor.parentNode) { - if (sensor.contentDocument) { - sensor.contentDocument.defaultView.removeEventListener("resize", resizeListener); - } - sensor.parentNode.removeChild(sensor); - sensor = void 0; - listeners = []; - } - }; - var unbind2 = function unbind3(cb) { - var idx = listeners.indexOf(cb); - if (idx !== -1) { - listeners.splice(idx, 1); - } - if (listeners.length === 0 && sensor) { - destroy(); - } - }; - return { - element, - bind: bind3, - destroy, - unbind: unbind2 - }; - }; - exports.createSensor = createSensor; - } -}); - -// node_modules/size-sensor/lib/sensors/resizeObserver.js -var require_resizeObserver = __commonJS({ - "node_modules/size-sensor/lib/sensors/resizeObserver.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.createSensor = void 0; - var _debounce = _interopRequireDefault(require_debounce()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var createSensor = function createSensor2(element) { - var sensor = void 0; - var listeners = []; - var resizeListener = (0, _debounce["default"])(function() { - listeners.forEach(function(listener) { - listener(element); - }); - }); - var newSensor = function newSensor2() { - var s4 = new ResizeObserver(resizeListener); - s4.observe(element); - resizeListener(); - return s4; - }; - var bind3 = function bind4(cb) { - if (!sensor) { - sensor = newSensor(); - } - if (listeners.indexOf(cb) === -1) { - listeners.push(cb); - } - }; - var destroy = function destroy2() { - sensor.disconnect(); - listeners = []; - sensor = void 0; - }; - var unbind2 = function unbind3(cb) { - var idx = listeners.indexOf(cb); - if (idx !== -1) { - listeners.splice(idx, 1); - } - if (listeners.length === 0 && sensor) { - destroy(); - } - }; - return { - element, - bind: bind3, - destroy, - unbind: unbind2 - }; - }; - exports.createSensor = createSensor; - } -}); - -// node_modules/size-sensor/lib/sensors/index.js -var require_sensors = __commonJS({ - "node_modules/size-sensor/lib/sensors/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.createSensor = void 0; - var _object = require_object(); - var _resizeObserver = require_resizeObserver(); - var createSensor = typeof ResizeObserver !== "undefined" ? _resizeObserver.createSensor : _object.createSensor; - exports.createSensor = createSensor; - } -}); - -// node_modules/size-sensor/lib/sensorPool.js -var require_sensorPool = __commonJS({ - "node_modules/size-sensor/lib/sensorPool.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.removeSensor = exports.getSensor = void 0; - var _id = _interopRequireDefault(require_id()); - var _sensors = require_sensors(); - var _constant = require_constant(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var Sensors = {}; - var getSensor = function getSensor2(element) { - var sensorId = element.getAttribute(_constant.SizeSensorId); - if (sensorId && Sensors[sensorId]) { - return Sensors[sensorId]; - } - var newId = (0, _id["default"])(); - element.setAttribute(_constant.SizeSensorId, newId); - var sensor = (0, _sensors.createSensor)(element); - Sensors[newId] = sensor; - return sensor; - }; - exports.getSensor = getSensor; - var removeSensor = function removeSensor2(sensor) { - var sensorId = sensor.element.getAttribute(_constant.SizeSensorId); - sensor.element.removeAttribute(_constant.SizeSensorId); - sensor.destroy(); - if (sensorId && Sensors[sensorId]) { - delete Sensors[sensorId]; - } - }; - exports.removeSensor = removeSensor; - } -}); - -// node_modules/size-sensor/lib/index.js -var require_lib = __commonJS({ - "node_modules/size-sensor/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.ver = exports.clear = exports.bind = void 0; - var _sensorPool = require_sensorPool(); - var bind3 = function bind4(element, cb) { - var sensor = (0, _sensorPool.getSensor)(element); - sensor.bind(cb); - return function() { - sensor.unbind(cb); - }; - }; - exports.bind = bind3; - var clear = function clear2(element) { - var sensor = (0, _sensorPool.getSensor)(element); - (0, _sensorPool.removeSensor)(sensor); - }; - exports.clear = clear; - var ver = "1.0.1"; - exports.ver = ver; - } -}); - -// node_modules/d3-regression/dist/d3-regression.js -var require_d3_regression = __commonJS({ - "node_modules/d3-regression/dist/d3-regression.js"(exports, module2) { - (function(global2, factory) { - typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = global2 || self, factory(global2.d3 = {})); - })(exports, function(exports2) { - "use strict"; - function _slicedToArray2(arr, i4) { - return _arrayWithHoles2(arr) || _iterableToArrayLimit2(arr, i4) || _nonIterableRest2(); - } - function _arrayWithHoles2(arr) { - if (Array.isArray(arr)) - return arr; - } - function _iterableToArrayLimit2(arr, i4) { - var _arr = []; - var _n = true; - var _d = false; - var _e = void 0; - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i4 && _arr.length === i4) - break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) - _i["return"](); - } finally { - if (_d) - throw _e; - } - } - return _arr; - } - function _nonIterableRest2() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - function points(data3, x6, y5, sort2) { - data3 = data3.filter(function(d4, i5) { - var u3 = x6(d4, i5), v3 = y5(d4, i5); - return u3 != null && isFinite(u3) && v3 != null && isFinite(v3); - }); - if (sort2) { - data3.sort(function(a4, b10) { - return x6(a4) - x6(b10); - }); - } - var n3 = data3.length, X2 = new Float64Array(n3), Y2 = new Float64Array(n3); - var ux = 0, uy = 0, xv, yv, d3; - for (var i4 = 0; i4 < n3; ) { - d3 = data3[i4]; - X2[i4] = xv = +x6(d3, i4, data3); - Y2[i4] = yv = +y5(d3, i4, data3); - ++i4; - ux += (xv - ux) / i4; - uy += (yv - uy) / i4; - } - for (var _i = 0; _i < n3; ++_i) { - X2[_i] -= ux; - Y2[_i] -= uy; - } - return [X2, Y2, ux, uy]; - } - function visitPoints(data3, x6, y5, cb) { - var iterations = 0; - for (var i4 = 0, n3 = data3.length; i4 < n3; i4++) { - var d3 = data3[i4], dx = +x6(d3, i4, data3), dy = +y5(d3, i4, data3); - if (dx != null && isFinite(dx) && dy != null && isFinite(dy)) { - cb(dx, dy, iterations++); - } - } - } - function determination(data3, x6, y5, uY, predict) { - var SSE = 0, SST = 0; - visitPoints(data3, x6, y5, function(dx, dy) { - var sse = dy - predict(dx), sst = dy - uY; - SSE += sse * sse; - SST += sst * sst; - }); - return 1 - SSE / SST; - } - function angle3(line2) { - return Math.atan2(line2[1][1] - line2[0][1], line2[1][0] - line2[0][0]) * 180 / Math.PI; - } - function midpoint(line2) { - return [(line2[0][0] + line2[1][0]) / 2, (line2[0][1] + line2[1][1]) / 2]; - } - function interpose(xmin, xmax, predict) { - var l4 = Math.log(xmax - xmin) * Math.LOG10E + 1 | 0; - var precision = 1 * Math.pow(10, -l4 / 2 - 1), maxIter = 1e4; - var points2 = [px(xmin), px(xmax)], iter = 0; - while (find4(points2) && iter < maxIter) { - } - return points2; - function px(x6) { - return [x6, predict(x6)]; - } - function find4(points3) { - iter++; - var n3 = points3.length; - var found = false; - for (var i4 = 0; i4 < n3 - 1; i4++) { - var p0 = points3[i4], p1 = points3[i4 + 1], m4 = midpoint([p0, p1]), mp = px(m4[0]), a0 = angle3([p0, m4]), a1 = angle3([p0, mp]), a4 = Math.abs(a0 - a1); - if (a4 > precision) { - points3.splice(i4 + 1, 0, mp); - found = true; - } - } - return found; - } - } - function ols(uX, uY, uXY, uX2) { - var delta = uX2 - uX * uX, slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta, intercept = uY - slope * uX; - return [intercept, slope]; - } - function exponential2() { - var x6 = function x7(d3) { - return d3[0]; - }, y5 = function y6(d3) { - return d3[1]; - }, domain; - function exponential3(data3) { - var n3 = 0, Y2 = 0, YL = 0, XY = 0, XYL = 0, X2Y = 0, xmin = domain ? +domain[0] : Infinity, xmax = domain ? +domain[1] : -Infinity; - visitPoints(data3, x6, y5, function(dx, dy) { - var ly = Math.log(dy), xy = dx * dy; - ++n3; - Y2 += (dy - Y2) / n3; - XY += (xy - XY) / n3; - X2Y += (dx * xy - X2Y) / n3; - YL += (dy * ly - YL) / n3; - XYL += (xy * ly - XYL) / n3; - if (!domain) { - if (dx < xmin) - xmin = dx; - if (dx > xmax) - xmax = dx; - } - }); - var _ols = ols(XY / Y2, YL / Y2, XYL / Y2, X2Y / Y2), _ols2 = _slicedToArray2(_ols, 2), a4 = _ols2[0], b10 = _ols2[1]; - a4 = Math.exp(a4); - var fn2 = function fn3(x7) { - return a4 * Math.exp(b10 * x7); - }, out = interpose(xmin, xmax, fn2); - out.a = a4; - out.b = b10; - out.predict = fn2; - out.rSquared = determination(data3, x6, y5, Y2, fn2); - return out; - } - exponential3.domain = function(arr) { - return arguments.length ? (domain = arr, exponential3) : domain; - }; - exponential3.x = function(fn2) { - return arguments.length ? (x6 = fn2, exponential3) : x6; - }; - exponential3.y = function(fn2) { - return arguments.length ? (y5 = fn2, exponential3) : y5; - }; - return exponential3; - } - function linear4() { - var x6 = function x7(d3) { - return d3[0]; - }, y5 = function y6(d3) { - return d3[1]; - }, domain; - function linear5(data3) { - var n3 = 0, X2 = 0, Y2 = 0, XY = 0, X22 = 0, xmin = domain ? +domain[0] : Infinity, xmax = domain ? +domain[1] : -Infinity; - visitPoints(data3, x6, y5, function(dx, dy) { - ++n3; - X2 += (dx - X2) / n3; - Y2 += (dy - Y2) / n3; - XY += (dx * dy - XY) / n3; - X22 += (dx * dx - X22) / n3; - if (!domain) { - if (dx < xmin) - xmin = dx; - if (dx > xmax) - xmax = dx; - } - }); - var _ols = ols(X2, Y2, XY, X22), _ols2 = _slicedToArray2(_ols, 2), intercept = _ols2[0], slope = _ols2[1], fn2 = function fn3(x7) { - return slope * x7 + intercept; - }, out = [[xmin, fn2(xmin)], [xmax, fn2(xmax)]]; - out.a = slope; - out.b = intercept; - out.predict = fn2; - out.rSquared = determination(data3, x6, y5, Y2, fn2); - return out; - } - linear5.domain = function(arr) { - return arguments.length ? (domain = arr, linear5) : domain; - }; - linear5.x = function(fn2) { - return arguments.length ? (x6 = fn2, linear5) : x6; - }; - linear5.y = function(fn2) { - return arguments.length ? (y5 = fn2, linear5) : y5; - }; - return linear5; - } - function median(arr) { - arr.sort(function(a4, b10) { - return a4 - b10; - }); - var i4 = arr.length / 2; - return i4 % 1 === 0 ? (arr[i4 - 1] + arr[i4]) / 2 : arr[Math.floor(i4)]; - } - var maxiters = 2, epsilon = 1e-12; - function loess() { - var x6 = function x7(d3) { - return d3[0]; - }, y5 = function y6(d3) { - return d3[1]; - }, bandwidth = 0.3; - function loess2(data3) { - var _points = points(data3, x6, y5, true), _points2 = _slicedToArray2(_points, 4), xv = _points2[0], yv = _points2[1], ux = _points2[2], uy = _points2[3], n3 = xv.length, bw = Math.max(2, ~~(bandwidth * n3)), yhat = new Float64Array(n3), residuals = new Float64Array(n3), robustWeights = new Float64Array(n3).fill(1); - for (var iter = -1; ++iter <= maxiters; ) { - var interval3 = [0, bw - 1]; - for (var i4 = 0; i4 < n3; ++i4) { - var dx = xv[i4], i0 = interval3[0], i1 = interval3[1], edge2 = dx - xv[i0] > xv[i1] - dx ? i0 : i1; - var W2 = 0, X2 = 0, Y2 = 0, XY = 0, X22 = 0, denom = 1 / Math.abs(xv[edge2] - dx || 1); - for (var k4 = i0; k4 <= i1; ++k4) { - var xk = xv[k4], yk = yv[k4], w4 = tricube(Math.abs(dx - xk) * denom) * robustWeights[k4], xkw = xk * w4; - W2 += w4; - X2 += xkw; - Y2 += yk * w4; - XY += yk * xkw; - X22 += xk * xkw; - } - var _ols = ols(X2 / W2, Y2 / W2, XY / W2, X22 / W2), _ols2 = _slicedToArray2(_ols, 2), a4 = _ols2[0], b10 = _ols2[1]; - yhat[i4] = a4 + b10 * dx; - residuals[i4] = Math.abs(yv[i4] - yhat[i4]); - updateInterval(xv, i4 + 1, interval3); - } - if (iter === maxiters) { - break; - } - var medianResidual = median(residuals); - if (Math.abs(medianResidual) < epsilon) - break; - for (var _i = 0, arg, _w; _i < n3; ++_i) { - arg = residuals[_i] / (6 * medianResidual); - robustWeights[_i] = arg >= 1 ? epsilon : (_w = 1 - arg * arg) * _w; - } - } - return output(xv, yhat, ux, uy); - } - loess2.bandwidth = function(bw) { - return arguments.length ? (bandwidth = bw, loess2) : bandwidth; - }; - loess2.x = function(fn2) { - return arguments.length ? (x6 = fn2, loess2) : x6; - }; - loess2.y = function(fn2) { - return arguments.length ? (y5 = fn2, loess2) : y5; - }; - return loess2; - } - function tricube(x6) { - return (x6 = 1 - x6 * x6 * x6) * x6 * x6; - } - function updateInterval(xv, i4, interval3) { - var val = xv[i4], left2 = interval3[0], right2 = interval3[1] + 1; - if (right2 >= xv.length) - return; - while (i4 > left2 && xv[right2] - val <= val - xv[left2]) { - interval3[0] = ++left2; - interval3[1] = right2; - ++right2; - } - } - function output(xv, yhat, ux, uy) { - var n3 = xv.length, out = []; - var i4 = 0, cnt = 0, prev = [], v3; - for (; i4 < n3; ++i4) { - v3 = xv[i4] + ux; - if (prev[0] === v3) { - prev[1] += (yhat[i4] - prev[1]) / ++cnt; - } else { - cnt = 0; - prev[1] += uy; - prev = [v3, yhat[i4]]; - out.push(prev); - } - } - prev[1] += uy; - return out; - } - function logarithmic() { - var x6 = function x7(d3) { - return d3[0]; - }, y5 = function y6(d3) { - return d3[1]; - }, base = Math.E, domain; - function logarithmic2(data3) { - var n3 = 0, X2 = 0, Y2 = 0, XY = 0, X22 = 0, xmin = domain ? +domain[0] : Infinity, xmax = domain ? +domain[1] : -Infinity, lb = Math.log(base); - visitPoints(data3, x6, y5, function(dx, dy) { - var lx = Math.log(dx) / lb; - ++n3; - X2 += (lx - X2) / n3; - Y2 += (dy - Y2) / n3; - XY += (lx * dy - XY) / n3; - X22 += (lx * lx - X22) / n3; - if (!domain) { - if (dx < xmin) - xmin = dx; - if (dx > xmax) - xmax = dx; - } - }); - var _ols = ols(X2, Y2, XY, X22), _ols2 = _slicedToArray2(_ols, 2), intercept = _ols2[0], slope = _ols2[1], fn2 = function fn3(x7) { - return slope * Math.log(x7) / lb + intercept; - }, out = interpose(xmin, xmax, fn2); - out.a = slope; - out.b = intercept; - out.predict = fn2; - out.rSquared = determination(data3, x6, y5, Y2, fn2); - return out; - } - logarithmic2.domain = function(arr) { - return arguments.length ? (domain = arr, logarithmic2) : domain; - }; - logarithmic2.x = function(fn2) { - return arguments.length ? (x6 = fn2, logarithmic2) : x6; - }; - logarithmic2.y = function(fn2) { - return arguments.length ? (y5 = fn2, logarithmic2) : y5; - }; - logarithmic2.base = function(n3) { - return arguments.length ? (base = n3, logarithmic2) : base; - }; - return logarithmic2; - } - function quad() { - var x6 = function x7(d3) { - return d3[0]; - }, y5 = function y6(d3) { - return d3[1]; - }, domain; - function quadratic(data3) { - var _points = points(data3, x6, y5), _points2 = _slicedToArray2(_points, 4), xv = _points2[0], yv = _points2[1], ux = _points2[2], uy = _points2[3], n3 = xv.length; - var X2 = 0, X3 = 0, X4 = 0, XY = 0, X2Y = 0, i4, dx, dy, x22; - for (i4 = 0; i4 < n3; ) { - dx = xv[i4]; - dy = yv[i4++]; - x22 = dx * dx; - X2 += (x22 - X2) / i4; - X3 += (x22 * dx - X3) / i4; - X4 += (x22 * x22 - X4) / i4; - XY += (dx * dy - XY) / i4; - X2Y += (x22 * dy - X2Y) / i4; - } - var Y2 = 0, n0 = 0, xmin = domain ? +domain[0] : Infinity, xmax = domain ? +domain[1] : -Infinity; - visitPoints(data3, x6, y5, function(dx2, dy2) { - n0++; - Y2 += (dy2 - Y2) / n0; - if (!domain) { - if (dx2 < xmin) - xmin = dx2; - if (dx2 > xmax) - xmax = dx2; - } - }); - var X2X2 = X4 - X2 * X2, d3 = X2 * X2X2 - X3 * X3, a4 = (X2Y * X2 - XY * X3) / d3, b10 = (XY * X2X2 - X2Y * X3) / d3, c5 = -a4 * X2, fn2 = function fn3(x7) { - x7 = x7 - ux; - return a4 * x7 * x7 + b10 * x7 + c5 + uy; - }; - var out = interpose(xmin, xmax, fn2); - out.a = a4; - out.b = b10 - 2 * a4 * ux; - out.c = c5 - b10 * ux + a4 * ux * ux + uy; - out.predict = fn2; - out.rSquared = determination(data3, x6, y5, Y2, fn2); - return out; - } - quadratic.domain = function(arr) { - return arguments.length ? (domain = arr, quadratic) : domain; - }; - quadratic.x = function(fn2) { - return arguments.length ? (x6 = fn2, quadratic) : x6; - }; - quadratic.y = function(fn2) { - return arguments.length ? (y5 = fn2, quadratic) : y5; - }; - return quadratic; - } - function polynomial() { - var x6 = function x7(d3) { - return d3[0]; - }, y5 = function y6(d3) { - return d3[1]; - }, order2 = 3, domain; - function polynomial2(data3) { - if (order2 === 1) { - var o3 = linear4().x(x6).y(y5).domain(domain)(data3); - o3.coefficients = [o3.b, o3.a]; - delete o3.a; - delete o3.b; - return o3; - } - if (order2 === 2) { - var _o = quad().x(x6).y(y5).domain(domain)(data3); - _o.coefficients = [_o.c, _o.b, _o.a]; - delete _o.a; - delete _o.b; - delete _o.c; - return _o; - } - var _points = points(data3, x6, y5), _points2 = _slicedToArray2(_points, 4), xv = _points2[0], yv = _points2[1], ux = _points2[2], uy = _points2[3], n3 = xv.length, lhs = [], rhs = [], k4 = order2 + 1; - var Y2 = 0, n0 = 0, xmin = domain ? +domain[0] : Infinity, xmax = domain ? +domain[1] : -Infinity; - visitPoints(data3, x6, y5, function(dx, dy) { - ++n0; - Y2 += (dy - Y2) / n0; - if (!domain) { - if (dx < xmin) - xmin = dx; - if (dx > xmax) - xmax = dx; - } - }); - var i4, j4, l4, v3, c5; - for (i4 = 0; i4 < k4; ++i4) { - for (l4 = 0, v3 = 0; l4 < n3; ++l4) { - v3 += Math.pow(xv[l4], i4) * yv[l4]; - } - lhs.push(v3); - c5 = new Float64Array(k4); - for (j4 = 0; j4 < k4; ++j4) { - for (l4 = 0, v3 = 0; l4 < n3; ++l4) { - v3 += Math.pow(xv[l4], i4 + j4); - } - c5[j4] = v3; - } - rhs.push(c5); - } - rhs.push(lhs); - var coef = gaussianElimination(rhs), fn2 = function fn3(x7) { - x7 -= ux; - var y6 = uy + coef[0] + coef[1] * x7 + coef[2] * x7 * x7; - for (i4 = 3; i4 < k4; ++i4) { - y6 += coef[i4] * Math.pow(x7, i4); - } - return y6; - }, out = interpose(xmin, xmax, fn2); - out.coefficients = uncenter(k4, coef, -ux, uy); - out.predict = fn2; - out.rSquared = determination(data3, x6, y5, Y2, fn2); - return out; - } - polynomial2.domain = function(arr) { - return arguments.length ? (domain = arr, polynomial2) : domain; - }; - polynomial2.x = function(fn2) { - return arguments.length ? (x6 = fn2, polynomial2) : x6; - }; - polynomial2.y = function(fn2) { - return arguments.length ? (y5 = fn2, polynomial2) : y5; - }; - polynomial2.order = function(n3) { - return arguments.length ? (order2 = n3, polynomial2) : order2; - }; - return polynomial2; - } - function uncenter(k4, a4, x6, y5) { - var z3 = Array(k4); - var i4, j4, v3, c5; - for (i4 = 0; i4 < k4; ++i4) { - z3[i4] = 0; - } - for (i4 = k4 - 1; i4 >= 0; --i4) { - v3 = a4[i4]; - c5 = 1; - z3[i4] += v3; - for (j4 = 1; j4 <= i4; ++j4) { - c5 *= (i4 + 1 - j4) / j4; - z3[i4 - j4] += v3 * Math.pow(x6, j4) * c5; - } - } - z3[0] += y5; - return z3; - } - function gaussianElimination(matrix) { - var n3 = matrix.length - 1, coef = []; - var i4, j4, k4, r4, t4; - for (i4 = 0; i4 < n3; ++i4) { - r4 = i4; - for (j4 = i4 + 1; j4 < n3; ++j4) { - if (Math.abs(matrix[i4][j4]) > Math.abs(matrix[i4][r4])) { - r4 = j4; - } - } - for (k4 = i4; k4 < n3 + 1; ++k4) { - t4 = matrix[k4][i4]; - matrix[k4][i4] = matrix[k4][r4]; - matrix[k4][r4] = t4; - } - for (j4 = i4 + 1; j4 < n3; ++j4) { - for (k4 = n3; k4 >= i4; k4--) { - matrix[k4][j4] -= matrix[k4][i4] * matrix[i4][j4] / matrix[i4][i4]; - } - } - } - for (j4 = n3 - 1; j4 >= 0; --j4) { - t4 = 0; - for (k4 = j4 + 1; k4 < n3; ++k4) { - t4 += matrix[k4][j4] * coef[k4]; - } - coef[j4] = (matrix[n3][j4] - t4) / matrix[j4][j4]; - } - return coef; - } - function power() { - var x6 = function x7(d3) { - return d3[0]; - }, y5 = function y6(d3) { - return d3[1]; - }, domain; - function power2(data3) { - var n3 = 0, X2 = 0, Y2 = 0, XY = 0, X22 = 0, YS = 0, xmin = domain ? +domain[0] : Infinity, xmax = domain ? +domain[1] : -Infinity; - visitPoints(data3, x6, y5, function(dx, dy) { - var lx = Math.log(dx), ly = Math.log(dy); - ++n3; - X2 += (lx - X2) / n3; - Y2 += (ly - Y2) / n3; - XY += (lx * ly - XY) / n3; - X22 += (lx * lx - X22) / n3; - YS += (dy - YS) / n3; - if (!domain) { - if (dx < xmin) - xmin = dx; - if (dx > xmax) - xmax = dx; - } - }); - var _ols = ols(X2, Y2, XY, X22), _ols2 = _slicedToArray2(_ols, 2), a4 = _ols2[0], b10 = _ols2[1]; - a4 = Math.exp(a4); - var fn2 = function fn3(x7) { - return a4 * Math.pow(x7, b10); - }, out = interpose(xmin, xmax, fn2); - out.a = a4; - out.b = b10; - out.predict = fn2; - out.rSquared = determination(data3, x6, y5, YS, fn2); - return out; - } - power2.domain = function(arr) { - return arguments.length ? (domain = arr, power2) : domain; - }; - power2.x = function(fn2) { - return arguments.length ? (x6 = fn2, power2) : x6; - }; - power2.y = function(fn2) { - return arguments.length ? (y5 = fn2, power2) : y5; - }; - return power2; - } - exports2.regressionExp = exponential2; - exports2.regressionLinear = linear4; - exports2.regressionLoess = loess; - exports2.regressionLog = logarithmic; - exports2.regressionPoly = polynomial; - exports2.regressionPow = power; - exports2.regressionQuad = quad; - Object.defineProperty(exports2, "__esModule", { value: true }); - }); - } -}); - -// node_modules/pdfast/src/helper.js -var require_helper = __commonJS({ - "node_modules/pdfast/src/helper.js"(exports, module2) { - "use strict"; - var self2 = module2.exports; - module2.exports.isNumber = function(x6) { - return typeof x6 === "number"; - }; - module2.exports.findMin = function(arr) { - if (arr.length === 0) { - return Infinity; - } - var curr = arr[0]; - for (var i4 = 1; i4 < arr.length; i4++) { - curr = Math.min(curr, arr[i4]); - } - return curr; - }; - module2.exports.findMax = function(arr) { - if (arr.length === 0) { - return -Infinity; - } - var curr = arr[0]; - for (var i4 = 1; i4 < arr.length; i4++) { - curr = Math.max(curr, arr[i4]); - } - return curr; - }; - module2.exports.findMinMulti = function(arr) { - var curr = self2.findMin(arr[0]); - for (var i4 = 1; i4 < arr.length; i4++) { - curr = Math.min(curr, self2.findMin(arr[i4])); - } - return curr; - }; - module2.exports.findMaxMulti = function(arr) { - var curr = self2.findMax(arr[0]); - for (var i4 = 1; i4 < arr.length; i4++) { - curr = Math.max(curr, self2.findMax(arr[i4])); - } - return curr; - }; - module2.exports.inside = function(min7, max8, x6) { - return min7 <= x6 && x6 <= max8; - }; - } -}); - -// node_modules/pdfast/src/index.js -var require_src = __commonJS({ - "node_modules/pdfast/src/index.js"(exports, module2) { - "use strict"; - var DEFAULT_SIZE2 = 50; - var DEFAULT_WIDTH = 2; - var LN_2 = Math.log(2); - var self2 = module2.exports; - var helper2 = require_helper(); - function kernel(x6) { - return 1 - Math.abs(x6); - } - module2.exports.getUnifiedMinMax = function(arr, options) { - return self2.getUnifiedMinMaxMulti([arr], options); - }; - module2.exports.getUnifiedMinMaxMulti = function(arrMulti, options) { - options = options || {}; - var relaxMin = false; - var relaxMax = false; - var width2 = helper2.isNumber(options.width) ? options.width : DEFAULT_WIDTH; - var size2 = helper2.isNumber(options.size) ? options.size : DEFAULT_SIZE2; - var min7 = helper2.isNumber(options.min) ? options.min : (relaxMin = true, helper2.findMinMulti(arrMulti)); - var max8 = helper2.isNumber(options.max) ? options.max : (relaxMax = true, helper2.findMaxMulti(arrMulti)); - var range = max8 - min7; - var step = range / (size2 - 1); - if (relaxMin) { - min7 = min7 - 2 * width2 * step; - } - if (relaxMax) { - max8 = max8 + 2 * width2 * step; - } - return { - min: min7, - max: max8 - }; - }; - module2.exports.create = function(arr, options) { - options = options || {}; - if (!arr || arr.length === 0) { - return []; - } - var size2 = helper2.isNumber(options.size) ? options.size : DEFAULT_SIZE2; - var width2 = helper2.isNumber(options.width) ? options.width : DEFAULT_WIDTH; - var normalizedMinMax = self2.getUnifiedMinMax(arr, { - size: size2, - width: width2, - min: options.min, - max: options.max - }); - var min7 = normalizedMinMax.min; - var max8 = normalizedMinMax.max; - var range = max8 - min7; - var step = range / (size2 - 1); - if (range === 0) { - return [{ x: min7, y: 1 }]; - } - var buckets = []; - for (var i4 = 0; i4 < size2; i4++) { - buckets.push({ - x: min7 + i4 * step, - y: 0 - }); - } - var xToBucket = function(x6) { - return Math.floor((x6 - min7) / step); - }; - var partialArea = generatePartialAreas(kernel, width2); - var fullArea = partialArea[width2]; - var c5 = partialArea[width2 - 1] - partialArea[width2 - 2]; - var initalValue = 0; - arr.forEach(function(x6) { - var bucket = xToBucket(x6); - if (bucket + width2 < 0 || bucket - width2 >= buckets.length) { - return; - } - var start = Math.max(bucket - width2, 0); - var mid2 = bucket; - var end2 = Math.min(bucket + width2, buckets.length - 1); - var leftBlockCount = start - (bucket - width2); - var rightBlockCount = bucket + width2 - end2; - var spilledAreaLeft = partialArea[-width2 - 1 + leftBlockCount] || 0; - var spilledAreaRight = partialArea[-width2 - 1 + rightBlockCount] || 0; - var weight = fullArea / (fullArea - spilledAreaLeft - spilledAreaRight); - if (leftBlockCount > 0) { - initalValue += weight * (leftBlockCount - 1) * c5; - } - var startGradPos = Math.max(0, bucket - width2 + 1); - if (helper2.inside(0, buckets.length - 1, startGradPos)) { - buckets[startGradPos].y += weight * 1 * c5; - } - if (helper2.inside(0, buckets.length - 1, mid2 + 1)) { - buckets[mid2 + 1].y -= weight * 2 * c5; - } - if (helper2.inside(0, buckets.length - 1, end2 + 1)) { - buckets[end2 + 1].y += weight * 1 * c5; - } - }); - var accumulator = initalValue; - var gradAccumulator = 0; - var area2 = 0; - buckets.forEach(function(bucket) { - gradAccumulator += bucket.y; - accumulator += gradAccumulator; - bucket.y = accumulator; - area2 += accumulator; - }); - if (area2 > 0) { - buckets.forEach(function(bucket) { - bucket.y /= area2; - }); - } - return buckets; - }; - function generatePartialAreas(kernel2, width2) { - var partialAreas = {}; - var accumulator = 0; - for (var i4 = -width2; i4 <= width2; i4++) { - accumulator += kernel2(i4 / width2); - partialAreas[i4] = accumulator; - } - return partialAreas; - } - module2.exports.getExpectedValueFromPdf = function(pdf2) { - if (!pdf2 || pdf2.length === 0) { - return void 0; - } - var expected = 0; - pdf2.forEach(function(obj) { - expected += obj.x * obj.y; - }); - return expected; - }; - module2.exports.getXWithLeftTailArea = function(pdf2, area2) { - if (!pdf2 || pdf2.length === 0) { - return void 0; - } - var accumulator = 0; - var last2 = 0; - for (var i4 = 0; i4 < pdf2.length; i4++) { - last2 = i4; - accumulator += pdf2[i4].y; - if (accumulator >= area2) { - break; - } - } - return pdf2[last2].x; - }; - module2.exports.getPerplexity = function(pdf2) { - if (!pdf2 || pdf2.length === 0) { - return void 0; - } - var entropy = 0; - pdf2.forEach(function(obj) { - var ln3 = Math.log(obj.y); - if (isFinite(ln3)) { - entropy += obj.y * ln3; - } - }); - entropy = -entropy / LN_2; - return Math.pow(2, entropy); - }; - } -}); - -// node_modules/fmin/build/fmin.js -var require_fmin = __commonJS({ - "node_modules/fmin/build/fmin.js"(exports, module2) { - (function(global2, factory) { - typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : factory(global2.fmin = global2.fmin || {}); - })(exports, function(exports2) { - "use strict"; - function bisect2(f3, a4, b10, parameters) { - parameters = parameters || {}; - var maxIterations = parameters.maxIterations || 100, tolerance3 = parameters.tolerance || 1e-10, fA = f3(a4), fB = f3(b10), delta = b10 - a4; - if (fA * fB > 0) { - throw "Initial bisect points must have opposite signs"; - } - if (fA === 0) - return a4; - if (fB === 0) - return b10; - for (var i4 = 0; i4 < maxIterations; ++i4) { - delta /= 2; - var mid2 = a4 + delta, fMid = f3(mid2); - if (fMid * fA >= 0) { - a4 = mid2; - } - if (Math.abs(delta) < tolerance3 || fMid === 0) { - return mid2; - } - } - return a4 + delta; - } - function zeros2(x6) { - var r4 = new Array(x6); - for (var i4 = 0; i4 < x6; ++i4) { - r4[i4] = 0; - } - return r4; - } - function zerosM2(x6, y5) { - return zeros2(x6).map(function() { - return zeros2(y5); - }); - } - function dot7(a4, b10) { - var ret = 0; - for (var i4 = 0; i4 < a4.length; ++i4) { - ret += a4[i4] * b10[i4]; - } - return ret; - } - function norm22(a4) { - return Math.sqrt(dot7(a4, a4)); - } - function scale12(ret, value2, c5) { - for (var i4 = 0; i4 < value2.length; ++i4) { - ret[i4] = value2[i4] * c5; - } - } - function weightedSum(ret, w1, v1, w22, v22) { - for (var j4 = 0; j4 < ret.length; ++j4) { - ret[j4] = w1 * v1[j4] + w22 * v22[j4]; - } - } - function nelderMead3(f3, x0, parameters) { - parameters = parameters || {}; - var maxIterations = parameters.maxIterations || x0.length * 200, nonZeroDelta = parameters.nonZeroDelta || 1.05, zeroDelta = parameters.zeroDelta || 1e-3, minErrorDelta = parameters.minErrorDelta || 1e-6, minTolerance = parameters.minErrorDelta || 1e-5, rho = parameters.rho !== void 0 ? parameters.rho : 1, chi = parameters.chi !== void 0 ? parameters.chi : 2, psi = parameters.psi !== void 0 ? parameters.psi : -0.5, sigma = parameters.sigma !== void 0 ? parameters.sigma : 0.5, maxDiff; - var N3 = x0.length, simplex = new Array(N3 + 1); - simplex[0] = x0; - simplex[0].fx = f3(x0); - simplex[0].id = 0; - for (var i4 = 0; i4 < N3; ++i4) { - var point2 = x0.slice(); - point2[i4] = point2[i4] ? point2[i4] * nonZeroDelta : zeroDelta; - simplex[i4 + 1] = point2; - simplex[i4 + 1].fx = f3(point2); - simplex[i4 + 1].id = i4 + 1; - } - function updateSimplex(value2) { - for (var i5 = 0; i5 < value2.length; i5++) { - simplex[N3][i5] = value2[i5]; - } - simplex[N3].fx = value2.fx; - } - var sortOrder = function(a4, b10) { - return a4.fx - b10.fx; - }; - var centroid = x0.slice(), reflected = x0.slice(), contracted = x0.slice(), expanded = x0.slice(); - for (var iteration = 0; iteration < maxIterations; ++iteration) { - simplex.sort(sortOrder); - if (parameters.history) { - var sortedSimplex = simplex.map(function(x6) { - var state2 = x6.slice(); - state2.fx = x6.fx; - state2.id = x6.id; - return state2; - }); - sortedSimplex.sort(function(a4, b10) { - return a4.id - b10.id; - }); - parameters.history.push({ - x: simplex[0].slice(), - fx: simplex[0].fx, - simplex: sortedSimplex - }); - } - maxDiff = 0; - for (i4 = 0; i4 < N3; ++i4) { - maxDiff = Math.max(maxDiff, Math.abs(simplex[0][i4] - simplex[1][i4])); - } - if (Math.abs(simplex[0].fx - simplex[N3].fx) < minErrorDelta && maxDiff < minTolerance) { - break; - } - for (i4 = 0; i4 < N3; ++i4) { - centroid[i4] = 0; - for (var j4 = 0; j4 < N3; ++j4) { - centroid[i4] += simplex[j4][i4]; - } - centroid[i4] /= N3; - } - var worst = simplex[N3]; - weightedSum(reflected, 1 + rho, centroid, -rho, worst); - reflected.fx = f3(reflected); - if (reflected.fx < simplex[0].fx) { - weightedSum(expanded, 1 + chi, centroid, -chi, worst); - expanded.fx = f3(expanded); - if (expanded.fx < reflected.fx) { - updateSimplex(expanded); - } else { - updateSimplex(reflected); - } - } else if (reflected.fx >= simplex[N3 - 1].fx) { - var shouldReduce = false; - if (reflected.fx > worst.fx) { - weightedSum(contracted, 1 + psi, centroid, -psi, worst); - contracted.fx = f3(contracted); - if (contracted.fx < worst.fx) { - updateSimplex(contracted); - } else { - shouldReduce = true; - } - } else { - weightedSum(contracted, 1 - psi * rho, centroid, psi * rho, worst); - contracted.fx = f3(contracted); - if (contracted.fx < reflected.fx) { - updateSimplex(contracted); - } else { - shouldReduce = true; - } - } - if (shouldReduce) { - if (sigma >= 1) - break; - for (i4 = 1; i4 < simplex.length; ++i4) { - weightedSum(simplex[i4], 1 - sigma, simplex[0], sigma, simplex[i4]); - simplex[i4].fx = f3(simplex[i4]); - } - } - } else { - updateSimplex(reflected); - } - } - simplex.sort(sortOrder); - return { - fx: simplex[0].fx, - x: simplex[0] - }; - } - function wolfeLineSearch(f3, pk, current, next, a4, c1, c22) { - var phi0 = current.fx, phiPrime0 = dot7(current.fxprime, pk), phi2 = phi0, phi_old = phi0, phiPrime = phiPrime0, a0 = 0; - a4 = a4 || 1; - c1 = c1 || 1e-6; - c22 = c22 || 0.1; - function zoom2(a_lo, a_high, phi_lo) { - for (var iteration2 = 0; iteration2 < 16; ++iteration2) { - a4 = (a_lo + a_high) / 2; - weightedSum(next.x, 1, current.x, a4, pk); - phi2 = next.fx = f3(next.x, next.fxprime); - phiPrime = dot7(next.fxprime, pk); - if (phi2 > phi0 + c1 * a4 * phiPrime0 || phi2 >= phi_lo) { - a_high = a4; - } else { - if (Math.abs(phiPrime) <= -c22 * phiPrime0) { - return a4; - } - if (phiPrime * (a_high - a_lo) >= 0) { - a_high = a_lo; - } - a_lo = a4; - phi_lo = phi2; - } - } - return 0; - } - for (var iteration = 0; iteration < 10; ++iteration) { - weightedSum(next.x, 1, current.x, a4, pk); - phi2 = next.fx = f3(next.x, next.fxprime); - phiPrime = dot7(next.fxprime, pk); - if (phi2 > phi0 + c1 * a4 * phiPrime0 || iteration && phi2 >= phi_old) { - return zoom2(a0, a4, phi_old); - } - if (Math.abs(phiPrime) <= -c22 * phiPrime0) { - return a4; - } - if (phiPrime >= 0) { - return zoom2(a4, a0, phi2); - } - phi_old = phi2; - a0 = a4; - a4 *= 2; - } - return a4; - } - function conjugateGradient2(f3, initial, params) { - var current = { x: initial.slice(), fx: 0, fxprime: initial.slice() }, next = { x: initial.slice(), fx: 0, fxprime: initial.slice() }, yk = initial.slice(), pk, temp, a4 = 1, maxIterations; - params = params || {}; - maxIterations = params.maxIterations || initial.length * 20; - current.fx = f3(current.x, current.fxprime); - pk = current.fxprime.slice(); - scale12(pk, current.fxprime, -1); - for (var i4 = 0; i4 < maxIterations; ++i4) { - a4 = wolfeLineSearch(f3, pk, current, next, a4); - if (params.history) { - params.history.push({ - x: current.x.slice(), - fx: current.fx, - fxprime: current.fxprime.slice(), - alpha: a4 - }); - } - if (!a4) { - scale12(pk, current.fxprime, -1); - } else { - weightedSum(yk, 1, next.fxprime, -1, current.fxprime); - var delta_k = dot7(current.fxprime, current.fxprime), beta_k = Math.max(0, dot7(yk, next.fxprime) / delta_k); - weightedSum(pk, beta_k, pk, -1, next.fxprime); - temp = current; - current = next; - next = temp; - } - if (norm22(current.fxprime) <= 1e-5) { - break; - } - } - if (params.history) { - params.history.push({ - x: current.x.slice(), - fx: current.fx, - fxprime: current.fxprime.slice(), - alpha: a4 - }); - } - return current; - } - function gradientDescent(f3, initial, params) { - params = params || {}; - var maxIterations = params.maxIterations || initial.length * 100, learnRate = params.learnRate || 1e-3, current = { x: initial.slice(), fx: 0, fxprime: initial.slice() }; - for (var i4 = 0; i4 < maxIterations; ++i4) { - current.fx = f3(current.x, current.fxprime); - if (params.history) { - params.history.push({ - x: current.x.slice(), - fx: current.fx, - fxprime: current.fxprime.slice() - }); - } - weightedSum(current.x, 1, current.x, -learnRate, current.fxprime); - if (norm22(current.fxprime) <= 1e-5) { - break; - } - } - return current; - } - function gradientDescentLineSearch(f3, initial, params) { - params = params || {}; - var current = { x: initial.slice(), fx: 0, fxprime: initial.slice() }, next = { x: initial.slice(), fx: 0, fxprime: initial.slice() }, maxIterations = params.maxIterations || initial.length * 100, learnRate = params.learnRate || 1, pk = initial.slice(), c1 = params.c1 || 1e-3, c22 = params.c2 || 0.1, temp, functionCalls = []; - if (params.history) { - var inner = f3; - f3 = function(x6, fxprime) { - functionCalls.push(x6.slice()); - return inner(x6, fxprime); - }; - } - current.fx = f3(current.x, current.fxprime); - for (var i4 = 0; i4 < maxIterations; ++i4) { - scale12(pk, current.fxprime, -1); - learnRate = wolfeLineSearch(f3, pk, current, next, learnRate, c1, c22); - if (params.history) { - params.history.push({ - x: current.x.slice(), - fx: current.fx, - fxprime: current.fxprime.slice(), - functionCalls, - learnRate, - alpha: learnRate - }); - functionCalls = []; - } - temp = current; - current = next; - next = temp; - if (learnRate === 0 || norm22(current.fxprime) < 1e-5) - break; - } - return current; - } - exports2.bisect = bisect2; - exports2.nelderMead = nelderMead3; - exports2.conjugateGradient = conjugateGradient2; - exports2.gradientDescent = gradientDescent; - exports2.gradientDescentLineSearch = gradientDescentLineSearch; - exports2.zeros = zeros2; - exports2.zerosM = zerosM2; - exports2.norm2 = norm22; - exports2.weightedSum = weightedSum; - exports2.scale = scale12; - }); - } -}); - -// node_modules/color-name/index.js -var require_color_name = __commonJS({ - "node_modules/color-name/index.js"(exports, module2) { - "use strict"; - module2.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] - }; - } -}); - -// node_modules/is-arrayish/index.js -var require_is_arrayish = __commonJS({ - "node_modules/is-arrayish/index.js"(exports, module2) { - module2.exports = function isArrayish(obj) { - if (!obj || typeof obj === "string") { - return false; - } - return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && (obj.splice instanceof Function || Object.getOwnPropertyDescriptor(obj, obj.length - 1) && obj.constructor.name !== "String"); - }; - } -}); - -// node_modules/simple-swizzle/index.js -var require_simple_swizzle = __commonJS({ - "node_modules/simple-swizzle/index.js"(exports, module2) { - "use strict"; - var isArrayish = require_is_arrayish(); - var concat = Array.prototype.concat; - var slice = Array.prototype.slice; - var swizzle = module2.exports = function swizzle2(args) { - var results = []; - for (var i4 = 0, len5 = args.length; i4 < len5; i4++) { - var arg = args[i4]; - if (isArrayish(arg)) { - results = concat.call(results, slice.call(arg)); - } else { - results.push(arg); - } - } - return results; - }; - swizzle.wrap = function(fn2) { - return function() { - return fn2(swizzle(arguments)); - }; - }; - } -}); - -// node_modules/color-string/index.js -var require_color_string = __commonJS({ - "node_modules/color-string/index.js"(exports, module2) { - var colorNames = require_color_name(); - var swizzle = require_simple_swizzle(); - var hasOwnProperty4 = Object.hasOwnProperty; - var reverseNames = {}; - for (name in colorNames) { - if (hasOwnProperty4.call(colorNames, name)) { - reverseNames[colorNames[name]] = name; - } - } - var name; - var cs = module2.exports = { - to: {}, - get: {} - }; - cs.get = function(string) { - var prefix2 = string.substring(0, 3).toLowerCase(); - var val; - var model; - switch (prefix2) { - case "hsl": - val = cs.get.hsl(string); - model = "hsl"; - break; - case "hwb": - val = cs.get.hwb(string); - model = "hwb"; - break; - default: - val = cs.get.rgb(string); - model = "rgb"; - break; - } - if (!val) { - return null; - } - return { model, value: val }; - }; - cs.get.rgb = function(string) { - if (!string) { - return null; - } - var abbr = /^#([a-f0-9]{3,4})$/i; - var hex2 = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; - var rgba2 = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; - var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; - var keyword = /^(\w+)$/; - var rgb2 = [0, 0, 0, 1]; - var match; - var i4; - var hexAlpha; - if (match = string.match(hex2)) { - hexAlpha = match[2]; - match = match[1]; - for (i4 = 0; i4 < 3; i4++) { - var i22 = i4 * 2; - rgb2[i4] = parseInt(match.slice(i22, i22 + 2), 16); - } - if (hexAlpha) { - rgb2[3] = parseInt(hexAlpha, 16) / 255; - } - } else if (match = string.match(abbr)) { - match = match[1]; - hexAlpha = match[3]; - for (i4 = 0; i4 < 3; i4++) { - rgb2[i4] = parseInt(match[i4] + match[i4], 16); - } - if (hexAlpha) { - rgb2[3] = parseInt(hexAlpha + hexAlpha, 16) / 255; - } - } else if (match = string.match(rgba2)) { - for (i4 = 0; i4 < 3; i4++) { - rgb2[i4] = parseInt(match[i4 + 1], 0); - } - if (match[4]) { - if (match[5]) { - rgb2[3] = parseFloat(match[4]) * 0.01; - } else { - rgb2[3] = parseFloat(match[4]); - } - } - } else if (match = string.match(per)) { - for (i4 = 0; i4 < 3; i4++) { - rgb2[i4] = Math.round(parseFloat(match[i4 + 1]) * 2.55); - } - if (match[4]) { - if (match[5]) { - rgb2[3] = parseFloat(match[4]) * 0.01; - } else { - rgb2[3] = parseFloat(match[4]); - } - } - } else if (match = string.match(keyword)) { - if (match[1] === "transparent") { - return [0, 0, 0, 0]; - } - if (!hasOwnProperty4.call(colorNames, match[1])) { - return null; - } - rgb2 = colorNames[match[1]]; - rgb2[3] = 1; - return rgb2; - } else { - return null; - } - for (i4 = 0; i4 < 3; i4++) { - rgb2[i4] = clamp2(rgb2[i4], 0, 255); - } - rgb2[3] = clamp2(rgb2[3], 0, 1); - return rgb2; - }; - cs.get.hsl = function(string) { - if (!string) { - return null; - } - var hsl2 = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; - var match = string.match(hsl2); - if (match) { - var alpha = parseFloat(match[4]); - var h3 = (parseFloat(match[1]) % 360 + 360) % 360; - var s4 = clamp2(parseFloat(match[2]), 0, 100); - var l4 = clamp2(parseFloat(match[3]), 0, 100); - var a4 = clamp2(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h3, s4, l4, a4]; - } - return null; - }; - cs.get.hwb = function(string) { - if (!string) { - return null; - } - var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; - var match = string.match(hwb); - if (match) { - var alpha = parseFloat(match[4]); - var h3 = (parseFloat(match[1]) % 360 + 360) % 360; - var w4 = clamp2(parseFloat(match[2]), 0, 100); - var b10 = clamp2(parseFloat(match[3]), 0, 100); - var a4 = clamp2(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h3, w4, b10, a4]; - } - return null; - }; - cs.to.hex = function() { - var rgba2 = swizzle(arguments); - return "#" + hexDouble(rgba2[0]) + hexDouble(rgba2[1]) + hexDouble(rgba2[2]) + (rgba2[3] < 1 ? hexDouble(Math.round(rgba2[3] * 255)) : ""); - }; - cs.to.rgb = function() { - var rgba2 = swizzle(arguments); - return rgba2.length < 4 || rgba2[3] === 1 ? "rgb(" + Math.round(rgba2[0]) + ", " + Math.round(rgba2[1]) + ", " + Math.round(rgba2[2]) + ")" : "rgba(" + Math.round(rgba2[0]) + ", " + Math.round(rgba2[1]) + ", " + Math.round(rgba2[2]) + ", " + rgba2[3] + ")"; - }; - cs.to.rgb.percent = function() { - var rgba2 = swizzle(arguments); - var r4 = Math.round(rgba2[0] / 255 * 100); - var g4 = Math.round(rgba2[1] / 255 * 100); - var b10 = Math.round(rgba2[2] / 255 * 100); - return rgba2.length < 4 || rgba2[3] === 1 ? "rgb(" + r4 + "%, " + g4 + "%, " + b10 + "%)" : "rgba(" + r4 + "%, " + g4 + "%, " + b10 + "%, " + rgba2[3] + ")"; - }; - cs.to.hsl = function() { - var hsla2 = swizzle(arguments); - return hsla2.length < 4 || hsla2[3] === 1 ? "hsl(" + hsla2[0] + ", " + hsla2[1] + "%, " + hsla2[2] + "%)" : "hsla(" + hsla2[0] + ", " + hsla2[1] + "%, " + hsla2[2] + "%, " + hsla2[3] + ")"; - }; - cs.to.hwb = function() { - var hwba = swizzle(arguments); - var a4 = ""; - if (hwba.length >= 4 && hwba[3] !== 1) { - a4 = ", " + hwba[3]; - } - return "hwb(" + hwba[0] + ", " + hwba[1] + "%, " + hwba[2] + "%" + a4 + ")"; - }; - cs.to.keyword = function(rgb2) { - return reverseNames[rgb2.slice(0, 3)]; - }; - function clamp2(num, min7, max8) { - return Math.min(Math.max(min7, num), max8); - } - function hexDouble(num) { - var str8 = Math.round(num).toString(16).toUpperCase(); - return str8.length < 2 ? "0" + str8 : str8; - } - } -}); - -// node_modules/color-convert/conversions.js -var require_conversions = __commonJS({ - "node_modules/color-convert/conversions.js"(exports, module2) { - var cssKeywords = require_color_name(); - var reverseKeywords = {}; - for (key in cssKeywords) { - if (cssKeywords.hasOwnProperty(key)) { - reverseKeywords[cssKeywords[key]] = key; - } - } - var key; - var convert = module2.exports = { - rgb: { channels: 3, labels: "rgb" }, - hsl: { channels: 3, labels: "hsl" }, - hsv: { channels: 3, labels: "hsv" }, - hwb: { channels: 3, labels: "hwb" }, - cmyk: { channels: 4, labels: "cmyk" }, - xyz: { channels: 3, labels: "xyz" }, - lab: { channels: 3, labels: "lab" }, - lch: { channels: 3, labels: "lch" }, - hex: { channels: 1, labels: ["hex"] }, - keyword: { channels: 1, labels: ["keyword"] }, - ansi16: { channels: 1, labels: ["ansi16"] }, - ansi256: { channels: 1, labels: ["ansi256"] }, - hcg: { channels: 3, labels: ["h", "c", "g"] }, - apple: { channels: 3, labels: ["r16", "g16", "b16"] }, - gray: { channels: 1, labels: ["gray"] } - }; - for (model in convert) { - if (convert.hasOwnProperty(model)) { - if (!("channels" in convert[model])) { - throw new Error("missing channels property: " + model); - } - if (!("labels" in convert[model])) { - throw new Error("missing channel labels property: " + model); - } - if (convert[model].labels.length !== convert[model].channels) { - throw new Error("channel and label counts mismatch: " + model); - } - channels = convert[model].channels; - labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], "channels", { value: channels }); - Object.defineProperty(convert[model], "labels", { value: labels }); - } - } - var channels; - var labels; - var model; - convert.rgb.hsl = function(rgb2) { - var r4 = rgb2[0] / 255; - var g4 = rgb2[1] / 255; - var b10 = rgb2[2] / 255; - var min7 = Math.min(r4, g4, b10); - var max8 = Math.max(r4, g4, b10); - var delta = max8 - min7; - var h3; - var s4; - var l4; - if (max8 === min7) { - h3 = 0; - } else if (r4 === max8) { - h3 = (g4 - b10) / delta; - } else if (g4 === max8) { - h3 = 2 + (b10 - r4) / delta; - } else if (b10 === max8) { - h3 = 4 + (r4 - g4) / delta; - } - h3 = Math.min(h3 * 60, 360); - if (h3 < 0) { - h3 += 360; - } - l4 = (min7 + max8) / 2; - if (max8 === min7) { - s4 = 0; - } else if (l4 <= 0.5) { - s4 = delta / (max8 + min7); - } else { - s4 = delta / (2 - max8 - min7); - } - return [h3, s4 * 100, l4 * 100]; - }; - convert.rgb.hsv = function(rgb2) { - var rdif; - var gdif; - var bdif; - var h3; - var s4; - var r4 = rgb2[0] / 255; - var g4 = rgb2[1] / 255; - var b10 = rgb2[2] / 255; - var v3 = Math.max(r4, g4, b10); - var diff2 = v3 - Math.min(r4, g4, b10); - var diffc = function(c5) { - return (v3 - c5) / 6 / diff2 + 1 / 2; - }; - if (diff2 === 0) { - h3 = s4 = 0; - } else { - s4 = diff2 / v3; - rdif = diffc(r4); - gdif = diffc(g4); - bdif = diffc(b10); - if (r4 === v3) { - h3 = bdif - gdif; - } else if (g4 === v3) { - h3 = 1 / 3 + rdif - bdif; - } else if (b10 === v3) { - h3 = 2 / 3 + gdif - rdif; - } - if (h3 < 0) { - h3 += 1; - } else if (h3 > 1) { - h3 -= 1; - } - } - return [ - h3 * 360, - s4 * 100, - v3 * 100 - ]; - }; - convert.rgb.hwb = function(rgb2) { - var r4 = rgb2[0]; - var g4 = rgb2[1]; - var b10 = rgb2[2]; - var h3 = convert.rgb.hsl(rgb2)[0]; - var w4 = 1 / 255 * Math.min(r4, Math.min(g4, b10)); - b10 = 1 - 1 / 255 * Math.max(r4, Math.max(g4, b10)); - return [h3, w4 * 100, b10 * 100]; - }; - convert.rgb.cmyk = function(rgb2) { - var r4 = rgb2[0] / 255; - var g4 = rgb2[1] / 255; - var b10 = rgb2[2] / 255; - var c5; - var m4; - var y5; - var k4; - k4 = Math.min(1 - r4, 1 - g4, 1 - b10); - c5 = (1 - r4 - k4) / (1 - k4) || 0; - m4 = (1 - g4 - k4) / (1 - k4) || 0; - y5 = (1 - b10 - k4) / (1 - k4) || 0; - return [c5 * 100, m4 * 100, y5 * 100, k4 * 100]; - }; - function comparativeDistance(x6, y5) { - return Math.pow(x6[0] - y5[0], 2) + Math.pow(x6[1] - y5[1], 2) + Math.pow(x6[2] - y5[2], 2); - } - convert.rgb.keyword = function(rgb2) { - var reversed = reverseKeywords[rgb2]; - if (reversed) { - return reversed; - } - var currentClosestDistance = Infinity; - var currentClosestKeyword; - for (var keyword in cssKeywords) { - if (cssKeywords.hasOwnProperty(keyword)) { - var value2 = cssKeywords[keyword]; - var distance15 = comparativeDistance(rgb2, value2); - if (distance15 < currentClosestDistance) { - currentClosestDistance = distance15; - currentClosestKeyword = keyword; - } - } - } - return currentClosestKeyword; - }; - convert.keyword.rgb = function(keyword) { - return cssKeywords[keyword]; - }; - convert.rgb.xyz = function(rgb2) { - var r4 = rgb2[0] / 255; - var g4 = rgb2[1] / 255; - var b10 = rgb2[2] / 255; - r4 = r4 > 0.04045 ? Math.pow((r4 + 0.055) / 1.055, 2.4) : r4 / 12.92; - g4 = g4 > 0.04045 ? Math.pow((g4 + 0.055) / 1.055, 2.4) : g4 / 12.92; - b10 = b10 > 0.04045 ? Math.pow((b10 + 0.055) / 1.055, 2.4) : b10 / 12.92; - var x6 = r4 * 0.4124 + g4 * 0.3576 + b10 * 0.1805; - var y5 = r4 * 0.2126 + g4 * 0.7152 + b10 * 0.0722; - var z3 = r4 * 0.0193 + g4 * 0.1192 + b10 * 0.9505; - return [x6 * 100, y5 * 100, z3 * 100]; - }; - convert.rgb.lab = function(rgb2) { - var xyz = convert.rgb.xyz(rgb2); - var x6 = xyz[0]; - var y5 = xyz[1]; - var z3 = xyz[2]; - var l4; - var a4; - var b10; - x6 /= 95.047; - y5 /= 100; - z3 /= 108.883; - x6 = x6 > 8856e-6 ? Math.pow(x6, 1 / 3) : 7.787 * x6 + 16 / 116; - y5 = y5 > 8856e-6 ? Math.pow(y5, 1 / 3) : 7.787 * y5 + 16 / 116; - z3 = z3 > 8856e-6 ? Math.pow(z3, 1 / 3) : 7.787 * z3 + 16 / 116; - l4 = 116 * y5 - 16; - a4 = 500 * (x6 - y5); - b10 = 200 * (y5 - z3); - return [l4, a4, b10]; - }; - convert.hsl.rgb = function(hsl2) { - var h3 = hsl2[0] / 360; - var s4 = hsl2[1] / 100; - var l4 = hsl2[2] / 100; - var t1; - var t22; - var t32; - var rgb2; - var val; - if (s4 === 0) { - val = l4 * 255; - return [val, val, val]; - } - if (l4 < 0.5) { - t22 = l4 * (1 + s4); - } else { - t22 = l4 + s4 - l4 * s4; - } - t1 = 2 * l4 - t22; - rgb2 = [0, 0, 0]; - for (var i4 = 0; i4 < 3; i4++) { - t32 = h3 + 1 / 3 * -(i4 - 1); - if (t32 < 0) { - t32++; - } - if (t32 > 1) { - t32--; - } - if (6 * t32 < 1) { - val = t1 + (t22 - t1) * 6 * t32; - } else if (2 * t32 < 1) { - val = t22; - } else if (3 * t32 < 2) { - val = t1 + (t22 - t1) * (2 / 3 - t32) * 6; - } else { - val = t1; - } - rgb2[i4] = val * 255; - } - return rgb2; - }; - convert.hsl.hsv = function(hsl2) { - var h3 = hsl2[0]; - var s4 = hsl2[1] / 100; - var l4 = hsl2[2] / 100; - var smin = s4; - var lmin = Math.max(l4, 0.01); - var sv; - var v3; - l4 *= 2; - s4 *= l4 <= 1 ? l4 : 2 - l4; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v3 = (l4 + s4) / 2; - sv = l4 === 0 ? 2 * smin / (lmin + smin) : 2 * s4 / (l4 + s4); - return [h3, sv * 100, v3 * 100]; - }; - convert.hsv.rgb = function(hsv) { - var h3 = hsv[0] / 60; - var s4 = hsv[1] / 100; - var v3 = hsv[2] / 100; - var hi = Math.floor(h3) % 6; - var f3 = h3 - Math.floor(h3); - var p4 = 255 * v3 * (1 - s4); - var q4 = 255 * v3 * (1 - s4 * f3); - var t4 = 255 * v3 * (1 - s4 * (1 - f3)); - v3 *= 255; - switch (hi) { - case 0: - return [v3, t4, p4]; - case 1: - return [q4, v3, p4]; - case 2: - return [p4, v3, t4]; - case 3: - return [p4, q4, v3]; - case 4: - return [t4, p4, v3]; - case 5: - return [v3, p4, q4]; - } - }; - convert.hsv.hsl = function(hsv) { - var h3 = hsv[0]; - var s4 = hsv[1] / 100; - var v3 = hsv[2] / 100; - var vmin = Math.max(v3, 0.01); - var lmin; - var sl; - var l4; - l4 = (2 - s4) * v3; - lmin = (2 - s4) * vmin; - sl = s4 * vmin; - sl /= lmin <= 1 ? lmin : 2 - lmin; - sl = sl || 0; - l4 /= 2; - return [h3, sl * 100, l4 * 100]; - }; - convert.hwb.rgb = function(hwb) { - var h3 = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl = hwb[2] / 100; - var ratio = wh + bl; - var i4; - var v3; - var f3; - var n3; - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } - i4 = Math.floor(6 * h3); - v3 = 1 - bl; - f3 = 6 * h3 - i4; - if ((i4 & 1) !== 0) { - f3 = 1 - f3; - } - n3 = wh + f3 * (v3 - wh); - var r4; - var g4; - var b10; - switch (i4) { - default: - case 6: - case 0: - r4 = v3; - g4 = n3; - b10 = wh; - break; - case 1: - r4 = n3; - g4 = v3; - b10 = wh; - break; - case 2: - r4 = wh; - g4 = v3; - b10 = n3; - break; - case 3: - r4 = wh; - g4 = n3; - b10 = v3; - break; - case 4: - r4 = n3; - g4 = wh; - b10 = v3; - break; - case 5: - r4 = v3; - g4 = wh; - b10 = n3; - break; - } - return [r4 * 255, g4 * 255, b10 * 255]; - }; - convert.cmyk.rgb = function(cmyk) { - var c5 = cmyk[0] / 100; - var m4 = cmyk[1] / 100; - var y5 = cmyk[2] / 100; - var k4 = cmyk[3] / 100; - var r4; - var g4; - var b10; - r4 = 1 - Math.min(1, c5 * (1 - k4) + k4); - g4 = 1 - Math.min(1, m4 * (1 - k4) + k4); - b10 = 1 - Math.min(1, y5 * (1 - k4) + k4); - return [r4 * 255, g4 * 255, b10 * 255]; - }; - convert.xyz.rgb = function(xyz) { - var x6 = xyz[0] / 100; - var y5 = xyz[1] / 100; - var z3 = xyz[2] / 100; - var r4; - var g4; - var b10; - r4 = x6 * 3.2406 + y5 * -1.5372 + z3 * -0.4986; - g4 = x6 * -0.9689 + y5 * 1.8758 + z3 * 0.0415; - b10 = x6 * 0.0557 + y5 * -0.204 + z3 * 1.057; - r4 = r4 > 31308e-7 ? 1.055 * Math.pow(r4, 1 / 2.4) - 0.055 : r4 * 12.92; - g4 = g4 > 31308e-7 ? 1.055 * Math.pow(g4, 1 / 2.4) - 0.055 : g4 * 12.92; - b10 = b10 > 31308e-7 ? 1.055 * Math.pow(b10, 1 / 2.4) - 0.055 : b10 * 12.92; - r4 = Math.min(Math.max(0, r4), 1); - g4 = Math.min(Math.max(0, g4), 1); - b10 = Math.min(Math.max(0, b10), 1); - return [r4 * 255, g4 * 255, b10 * 255]; - }; - convert.xyz.lab = function(xyz) { - var x6 = xyz[0]; - var y5 = xyz[1]; - var z3 = xyz[2]; - var l4; - var a4; - var b10; - x6 /= 95.047; - y5 /= 100; - z3 /= 108.883; - x6 = x6 > 8856e-6 ? Math.pow(x6, 1 / 3) : 7.787 * x6 + 16 / 116; - y5 = y5 > 8856e-6 ? Math.pow(y5, 1 / 3) : 7.787 * y5 + 16 / 116; - z3 = z3 > 8856e-6 ? Math.pow(z3, 1 / 3) : 7.787 * z3 + 16 / 116; - l4 = 116 * y5 - 16; - a4 = 500 * (x6 - y5); - b10 = 200 * (y5 - z3); - return [l4, a4, b10]; - }; - convert.lab.xyz = function(lab) { - var l4 = lab[0]; - var a4 = lab[1]; - var b10 = lab[2]; - var x6; - var y5; - var z3; - y5 = (l4 + 16) / 116; - x6 = a4 / 500 + y5; - z3 = y5 - b10 / 200; - var y22 = Math.pow(y5, 3); - var x22 = Math.pow(x6, 3); - var z22 = Math.pow(z3, 3); - y5 = y22 > 8856e-6 ? y22 : (y5 - 16 / 116) / 7.787; - x6 = x22 > 8856e-6 ? x22 : (x6 - 16 / 116) / 7.787; - z3 = z22 > 8856e-6 ? z22 : (z3 - 16 / 116) / 7.787; - x6 *= 95.047; - y5 *= 100; - z3 *= 108.883; - return [x6, y5, z3]; - }; - convert.lab.lch = function(lab) { - var l4 = lab[0]; - var a4 = lab[1]; - var b10 = lab[2]; - var hr; - var h3; - var c5; - hr = Math.atan2(b10, a4); - h3 = hr * 360 / 2 / Math.PI; - if (h3 < 0) { - h3 += 360; - } - c5 = Math.sqrt(a4 * a4 + b10 * b10); - return [l4, c5, h3]; - }; - convert.lch.lab = function(lch) { - var l4 = lch[0]; - var c5 = lch[1]; - var h3 = lch[2]; - var a4; - var b10; - var hr; - hr = h3 / 360 * 2 * Math.PI; - a4 = c5 * Math.cos(hr); - b10 = c5 * Math.sin(hr); - return [l4, a4, b10]; - }; - convert.rgb.ansi16 = function(args) { - var r4 = args[0]; - var g4 = args[1]; - var b10 = args[2]; - var value2 = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; - value2 = Math.round(value2 / 50); - if (value2 === 0) { - return 30; - } - var ansi = 30 + (Math.round(b10 / 255) << 2 | Math.round(g4 / 255) << 1 | Math.round(r4 / 255)); - if (value2 === 2) { - ansi += 60; - } - return ansi; - }; - convert.hsv.ansi16 = function(args) { - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); - }; - convert.rgb.ansi256 = function(args) { - var r4 = args[0]; - var g4 = args[1]; - var b10 = args[2]; - if (r4 === g4 && g4 === b10) { - if (r4 < 8) { - return 16; - } - if (r4 > 248) { - return 231; - } - return Math.round((r4 - 8) / 247 * 24) + 232; - } - var ansi = 16 + 36 * Math.round(r4 / 255 * 5) + 6 * Math.round(g4 / 255 * 5) + Math.round(b10 / 255 * 5); - return ansi; - }; - convert.ansi16.rgb = function(args) { - var color4 = args % 10; - if (color4 === 0 || color4 === 7) { - if (args > 50) { - color4 += 3.5; - } - color4 = color4 / 10.5 * 255; - return [color4, color4, color4]; - } - var mult = (~~(args > 50) + 1) * 0.5; - var r4 = (color4 & 1) * mult * 255; - var g4 = (color4 >> 1 & 1) * mult * 255; - var b10 = (color4 >> 2 & 1) * mult * 255; - return [r4, g4, b10]; - }; - convert.ansi256.rgb = function(args) { - if (args >= 232) { - var c5 = (args - 232) * 10 + 8; - return [c5, c5, c5]; - } - args -= 16; - var rem; - var r4 = Math.floor(args / 36) / 5 * 255; - var g4 = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b10 = rem % 6 / 5 * 255; - return [r4, g4, b10]; - }; - convert.rgb.hex = function(args) { - var integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); - var string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.hex.rgb = function(args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } - var colorString = match[0]; - if (match[0].length === 3) { - colorString = colorString.split("").map(function(char) { - return char + char; - }).join(""); - } - var integer = parseInt(colorString, 16); - var r4 = integer >> 16 & 255; - var g4 = integer >> 8 & 255; - var b10 = integer & 255; - return [r4, g4, b10]; - }; - convert.rgb.hcg = function(rgb2) { - var r4 = rgb2[0] / 255; - var g4 = rgb2[1] / 255; - var b10 = rgb2[2] / 255; - var max8 = Math.max(Math.max(r4, g4), b10); - var min7 = Math.min(Math.min(r4, g4), b10); - var chroma = max8 - min7; - var grayscale; - var hue; - if (chroma < 1) { - grayscale = min7 / (1 - chroma); - } else { - grayscale = 0; - } - if (chroma <= 0) { - hue = 0; - } else if (max8 === r4) { - hue = (g4 - b10) / chroma % 6; - } else if (max8 === g4) { - hue = 2 + (b10 - r4) / chroma; - } else { - hue = 4 + (r4 - g4) / chroma + 4; - } - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; - }; - convert.hsl.hcg = function(hsl2) { - var s4 = hsl2[1] / 100; - var l4 = hsl2[2] / 100; - var c5 = 1; - var f3 = 0; - if (l4 < 0.5) { - c5 = 2 * s4 * l4; - } else { - c5 = 2 * s4 * (1 - l4); - } - if (c5 < 1) { - f3 = (l4 - 0.5 * c5) / (1 - c5); - } - return [hsl2[0], c5 * 100, f3 * 100]; - }; - convert.hsv.hcg = function(hsv) { - var s4 = hsv[1] / 100; - var v3 = hsv[2] / 100; - var c5 = s4 * v3; - var f3 = 0; - if (c5 < 1) { - f3 = (v3 - c5) / (1 - c5); - } - return [hsv[0], c5 * 100, f3 * 100]; - }; - convert.hcg.rgb = function(hcg) { - var h3 = hcg[0] / 360; - var c5 = hcg[1] / 100; - var g4 = hcg[2] / 100; - if (c5 === 0) { - return [g4 * 255, g4 * 255, g4 * 255]; - } - var pure = [0, 0, 0]; - var hi = h3 % 1 * 6; - var v3 = hi % 1; - var w4 = 1 - v3; - var mg = 0; - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; - pure[1] = v3; - pure[2] = 0; - break; - case 1: - pure[0] = w4; - pure[1] = 1; - pure[2] = 0; - break; - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v3; - break; - case 3: - pure[0] = 0; - pure[1] = w4; - pure[2] = 1; - break; - case 4: - pure[0] = v3; - pure[1] = 0; - pure[2] = 1; - break; - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w4; - } - mg = (1 - c5) * g4; - return [ - (c5 * pure[0] + mg) * 255, - (c5 * pure[1] + mg) * 255, - (c5 * pure[2] + mg) * 255 - ]; - }; - convert.hcg.hsv = function(hcg) { - var c5 = hcg[1] / 100; - var g4 = hcg[2] / 100; - var v3 = c5 + g4 * (1 - c5); - var f3 = 0; - if (v3 > 0) { - f3 = c5 / v3; - } - return [hcg[0], f3 * 100, v3 * 100]; - }; - convert.hcg.hsl = function(hcg) { - var c5 = hcg[1] / 100; - var g4 = hcg[2] / 100; - var l4 = g4 * (1 - c5) + 0.5 * c5; - var s4 = 0; - if (l4 > 0 && l4 < 0.5) { - s4 = c5 / (2 * l4); - } else if (l4 >= 0.5 && l4 < 1) { - s4 = c5 / (2 * (1 - l4)); - } - return [hcg[0], s4 * 100, l4 * 100]; - }; - convert.hcg.hwb = function(hcg) { - var c5 = hcg[1] / 100; - var g4 = hcg[2] / 100; - var v3 = c5 + g4 * (1 - c5); - return [hcg[0], (v3 - c5) * 100, (1 - v3) * 100]; - }; - convert.hwb.hcg = function(hwb) { - var w4 = hwb[1] / 100; - var b10 = hwb[2] / 100; - var v3 = 1 - b10; - var c5 = v3 - w4; - var g4 = 0; - if (c5 < 1) { - g4 = (v3 - c5) / (1 - c5); - } - return [hwb[0], c5 * 100, g4 * 100]; - }; - convert.apple.rgb = function(apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; - }; - convert.rgb.apple = function(rgb2) { - return [rgb2[0] / 255 * 65535, rgb2[1] / 255 * 65535, rgb2[2] / 255 * 65535]; - }; - convert.gray.rgb = function(args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; - }; - convert.gray.hsl = convert.gray.hsv = function(args) { - return [0, 0, args[0]]; - }; - convert.gray.hwb = function(gray) { - return [0, 100, gray[0]]; - }; - convert.gray.cmyk = function(gray) { - return [0, 0, 0, gray[0]]; - }; - convert.gray.lab = function(gray) { - return [gray[0], 0, 0]; - }; - convert.gray.hex = function(gray) { - var val = Math.round(gray[0] / 100 * 255) & 255; - var integer = (val << 16) + (val << 8) + val; - var string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.rgb.gray = function(rgb2) { - var val = (rgb2[0] + rgb2[1] + rgb2[2]) / 3; - return [val / 255 * 100]; - }; - } -}); - -// node_modules/color-convert/route.js -var require_route = __commonJS({ - "node_modules/color-convert/route.js"(exports, module2) { - var conversions = require_conversions(); - function buildGraph() { - var graph = {}; - var models = Object.keys(conversions); - for (var len5 = models.length, i4 = 0; i4 < len5; i4++) { - graph[models[i4]] = { - distance: -1, - parent: null - }; - } - return graph; - } - function deriveBFS(fromModel) { - var graph = buildGraph(); - var queue = [fromModel]; - graph[fromModel].distance = 0; - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); - for (var len5 = adjacents.length, i4 = 0; i4 < len5; i4++) { - var adjacent = adjacents[i4]; - var node = graph[adjacent]; - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - return graph; - } - function link(from, to) { - return function(args) { - return to(from(args)); - }; - } - function wrapConversion(toModel, graph) { - var path = [graph[toModel].parent, toModel]; - var fn2 = conversions[graph[toModel].parent][toModel]; - var cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn2 = link(conversions[graph[cur].parent][cur], fn2); - cur = graph[cur].parent; - } - fn2.conversion = path; - return fn2; - } - module2.exports = function(fromModel) { - var graph = deriveBFS(fromModel); - var conversion = {}; - var models = Object.keys(graph); - for (var len5 = models.length, i4 = 0; i4 < len5; i4++) { - var toModel = models[i4]; - var node = graph[toModel]; - if (node.parent === null) { - continue; - } - conversion[toModel] = wrapConversion(toModel, graph); - } - return conversion; - }; - } -}); - -// node_modules/color-convert/index.js -var require_color_convert = __commonJS({ - "node_modules/color-convert/index.js"(exports, module2) { - var conversions = require_conversions(); - var route = require_route(); - var convert = {}; - var models = Object.keys(conversions); - function wrapRaw(fn2) { - var wrappedFn = function(args) { - if (args === void 0 || args === null) { - return args; - } - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - return fn2(args); - }; - if ("conversion" in fn2) { - wrappedFn.conversion = fn2.conversion; - } - return wrappedFn; - } - function wrapRounded(fn2) { - var wrappedFn = function(args) { - if (args === void 0 || args === null) { - return args; - } - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - var result = fn2(args); - if (typeof result === "object") { - for (var len5 = result.length, i4 = 0; i4 < len5; i4++) { - result[i4] = Math.round(result[i4]); - } - } - return result; - }; - if ("conversion" in fn2) { - wrappedFn.conversion = fn2.conversion; - } - return wrappedFn; - } - models.forEach(function(fromModel) { - convert[fromModel] = {}; - Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }); - Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels }); - var routes = route(fromModel); - var routeModels = Object.keys(routes); - routeModels.forEach(function(toModel) { - var fn2 = routes[toModel]; - convert[fromModel][toModel] = wrapRounded(fn2); - convert[fromModel][toModel].raw = wrapRaw(fn2); - }); - }); - module2.exports = convert; - } -}); - -// node_modules/color/index.js -var require_color = __commonJS({ - "node_modules/color/index.js"(exports, module2) { - "use strict"; - var colorString = require_color_string(); - var convert = require_color_convert(); - var _slice = [].slice; - var skippedModels = [ - "keyword", - "gray", - "hex" - ]; - var hashedModelKeys = {}; - Object.keys(convert).forEach(function(model) { - hashedModelKeys[_slice.call(convert[model].labels).sort().join("")] = model; - }); - var limiters = {}; - function Color3(obj, model) { - if (!(this instanceof Color3)) { - return new Color3(obj, model); - } - if (model && model in skippedModels) { - model = null; - } - if (model && !(model in convert)) { - throw new Error("Unknown model: " + model); - } - var i4; - var channels; - if (obj == null) { - this.model = "rgb"; - this.color = [0, 0, 0]; - this.valpha = 1; - } else if (obj instanceof Color3) { - this.model = obj.model; - this.color = obj.color.slice(); - this.valpha = obj.valpha; - } else if (typeof obj === "string") { - var result = colorString.get(obj); - if (result === null) { - throw new Error("Unable to parse color from string: " + obj); - } - this.model = result.model; - channels = convert[this.model].channels; - this.color = result.value.slice(0, channels); - this.valpha = typeof result.value[channels] === "number" ? result.value[channels] : 1; - } else if (obj.length) { - this.model = model || "rgb"; - channels = convert[this.model].channels; - var newArr = _slice.call(obj, 0, channels); - this.color = zeroArray2(newArr, channels); - this.valpha = typeof obj[channels] === "number" ? obj[channels] : 1; - } else if (typeof obj === "number") { - obj &= 16777215; - this.model = "rgb"; - this.color = [ - obj >> 16 & 255, - obj >> 8 & 255, - obj & 255 - ]; - this.valpha = 1; - } else { - this.valpha = 1; - var keys2 = Object.keys(obj); - if ("alpha" in obj) { - keys2.splice(keys2.indexOf("alpha"), 1); - this.valpha = typeof obj.alpha === "number" ? obj.alpha : 0; - } - var hashedKeys = keys2.sort().join(""); - if (!(hashedKeys in hashedModelKeys)) { - throw new Error("Unable to parse color from object: " + JSON.stringify(obj)); - } - this.model = hashedModelKeys[hashedKeys]; - var labels = convert[this.model].labels; - var color4 = []; - for (i4 = 0; i4 < labels.length; i4++) { - color4.push(obj[labels[i4]]); - } - this.color = zeroArray2(color4); - } - if (limiters[this.model]) { - channels = convert[this.model].channels; - for (i4 = 0; i4 < channels; i4++) { - var limit = limiters[this.model][i4]; - if (limit) { - this.color[i4] = limit(this.color[i4]); - } - } - } - this.valpha = Math.max(0, Math.min(1, this.valpha)); - if (Object.freeze) { - Object.freeze(this); - } - } - Color3.prototype = { - toString: function() { - return this.string(); - }, - toJSON: function() { - return this[this.model](); - }, - string: function(places) { - var self2 = this.model in colorString.to ? this : this.rgb(); - self2 = self2.round(typeof places === "number" ? places : 1); - var args = self2.valpha === 1 ? self2.color : self2.color.concat(this.valpha); - return colorString.to[self2.model](args); - }, - percentString: function(places) { - var self2 = this.rgb().round(typeof places === "number" ? places : 1); - var args = self2.valpha === 1 ? self2.color : self2.color.concat(this.valpha); - return colorString.to.rgb.percent(args); - }, - array: function() { - return this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha); - }, - object: function() { - var result = {}; - var channels = convert[this.model].channels; - var labels = convert[this.model].labels; - for (var i4 = 0; i4 < channels; i4++) { - result[labels[i4]] = this.color[i4]; - } - if (this.valpha !== 1) { - result.alpha = this.valpha; - } - return result; - }, - unitArray: function() { - var rgb2 = this.rgb().color; - rgb2[0] /= 255; - rgb2[1] /= 255; - rgb2[2] /= 255; - if (this.valpha !== 1) { - rgb2.push(this.valpha); - } - return rgb2; - }, - unitObject: function() { - var rgb2 = this.rgb().object(); - rgb2.r /= 255; - rgb2.g /= 255; - rgb2.b /= 255; - if (this.valpha !== 1) { - rgb2.alpha = this.valpha; - } - return rgb2; - }, - round: function(places) { - places = Math.max(places || 0, 0); - return new Color3(this.color.map(roundToPlace(places)).concat(this.valpha), this.model); - }, - alpha: function(val) { - if (arguments.length) { - return new Color3(this.color.concat(Math.max(0, Math.min(1, val))), this.model); - } - return this.valpha; - }, - red: getset("rgb", 0, maxfn(255)), - green: getset("rgb", 1, maxfn(255)), - blue: getset("rgb", 2, maxfn(255)), - hue: getset(["hsl", "hsv", "hsl", "hwb", "hcg"], 0, function(val) { - return (val % 360 + 360) % 360; - }), - saturationl: getset("hsl", 1, maxfn(100)), - lightness: getset("hsl", 2, maxfn(100)), - saturationv: getset("hsv", 1, maxfn(100)), - value: getset("hsv", 2, maxfn(100)), - chroma: getset("hcg", 1, maxfn(100)), - gray: getset("hcg", 2, maxfn(100)), - white: getset("hwb", 1, maxfn(100)), - wblack: getset("hwb", 2, maxfn(100)), - cyan: getset("cmyk", 0, maxfn(100)), - magenta: getset("cmyk", 1, maxfn(100)), - yellow: getset("cmyk", 2, maxfn(100)), - black: getset("cmyk", 3, maxfn(100)), - x: getset("xyz", 0, maxfn(100)), - y: getset("xyz", 1, maxfn(100)), - z: getset("xyz", 2, maxfn(100)), - l: getset("lab", 0, maxfn(100)), - a: getset("lab", 1), - b: getset("lab", 2), - keyword: function(val) { - if (arguments.length) { - return new Color3(val); - } - return convert[this.model].keyword(this.color); - }, - hex: function(val) { - if (arguments.length) { - return new Color3(val); - } - return colorString.to.hex(this.rgb().round().color); - }, - rgbNumber: function() { - var rgb2 = this.rgb().color; - return (rgb2[0] & 255) << 16 | (rgb2[1] & 255) << 8 | rgb2[2] & 255; - }, - luminosity: function() { - var rgb2 = this.rgb().color; - var lum = []; - for (var i4 = 0; i4 < rgb2.length; i4++) { - var chan = rgb2[i4] / 255; - lum[i4] = chan <= 0.03928 ? chan / 12.92 : Math.pow((chan + 0.055) / 1.055, 2.4); - } - return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; - }, - contrast: function(color22) { - var lum1 = this.luminosity(); - var lum2 = color22.luminosity(); - if (lum1 > lum2) { - return (lum1 + 0.05) / (lum2 + 0.05); - } - return (lum2 + 0.05) / (lum1 + 0.05); - }, - level: function(color22) { - var contrastRatio = this.contrast(color22); - if (contrastRatio >= 7.1) { - return "AAA"; - } - return contrastRatio >= 4.5 ? "AA" : ""; - }, - isDark: function() { - var rgb2 = this.rgb().color; - var yiq = (rgb2[0] * 299 + rgb2[1] * 587 + rgb2[2] * 114) / 1e3; - return yiq < 128; - }, - isLight: function() { - return !this.isDark(); - }, - negate: function() { - var rgb2 = this.rgb(); - for (var i4 = 0; i4 < 3; i4++) { - rgb2.color[i4] = 255 - rgb2.color[i4]; - } - return rgb2; - }, - lighten: function(ratio) { - var hsl2 = this.hsl(); - hsl2.color[2] += hsl2.color[2] * ratio; - return hsl2; - }, - darken: function(ratio) { - var hsl2 = this.hsl(); - hsl2.color[2] -= hsl2.color[2] * ratio; - return hsl2; - }, - saturate: function(ratio) { - var hsl2 = this.hsl(); - hsl2.color[1] += hsl2.color[1] * ratio; - return hsl2; - }, - desaturate: function(ratio) { - var hsl2 = this.hsl(); - hsl2.color[1] -= hsl2.color[1] * ratio; - return hsl2; - }, - whiten: function(ratio) { - var hwb = this.hwb(); - hwb.color[1] += hwb.color[1] * ratio; - return hwb; - }, - blacken: function(ratio) { - var hwb = this.hwb(); - hwb.color[2] += hwb.color[2] * ratio; - return hwb; - }, - grayscale: function() { - var rgb2 = this.rgb().color; - var val = rgb2[0] * 0.3 + rgb2[1] * 0.59 + rgb2[2] * 0.11; - return Color3.rgb(val, val, val); - }, - fade: function(ratio) { - return this.alpha(this.valpha - this.valpha * ratio); - }, - opaquer: function(ratio) { - return this.alpha(this.valpha + this.valpha * ratio); - }, - rotate: function(degrees) { - var hsl2 = this.hsl(); - var hue = hsl2.color[0]; - hue = (hue + degrees) % 360; - hue = hue < 0 ? 360 + hue : hue; - hsl2.color[0] = hue; - return hsl2; - }, - mix: function(mixinColor, weight) { - if (!mixinColor || !mixinColor.rgb) { - throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); - } - var color1 = mixinColor.rgb(); - var color22 = this.rgb(); - var p4 = weight === void 0 ? 0.5 : weight; - var w4 = 2 * p4 - 1; - var a4 = color1.alpha() - color22.alpha(); - var w1 = ((w4 * a4 === -1 ? w4 : (w4 + a4) / (1 + w4 * a4)) + 1) / 2; - var w22 = 1 - w1; - return Color3.rgb(w1 * color1.red() + w22 * color22.red(), w1 * color1.green() + w22 * color22.green(), w1 * color1.blue() + w22 * color22.blue(), color1.alpha() * p4 + color22.alpha() * (1 - p4)); - } - }; - Object.keys(convert).forEach(function(model) { - if (skippedModels.indexOf(model) !== -1) { - return; - } - var channels = convert[model].channels; - Color3.prototype[model] = function() { - if (this.model === model) { - return new Color3(this); - } - if (arguments.length) { - return new Color3(arguments, model); - } - var newAlpha = typeof arguments[channels] === "number" ? channels : this.valpha; - return new Color3(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model); - }; - Color3[model] = function(color4) { - if (typeof color4 === "number") { - color4 = zeroArray2(_slice.call(arguments), channels); - } - return new Color3(color4, model); - }; - }); - function roundTo(num, places) { - return Number(num.toFixed(places)); - } - function roundToPlace(places) { - return function(num) { - return roundTo(num, places); - }; - } - function getset(model, channel, modifier) { - model = Array.isArray(model) ? model : [model]; - model.forEach(function(m4) { - (limiters[m4] || (limiters[m4] = []))[channel] = modifier; - }); - model = model[0]; - return function(val) { - var result; - if (arguments.length) { - if (modifier) { - val = modifier(val); - } - result = this[model](); - result.color[channel] = val; - return result; - } - result = this[model]().color[channel]; - if (modifier) { - result = modifier(result); - } - return result; - }; - } - function maxfn(max8) { - return function(v3) { - return Math.max(0, Math.min(max8, v3)); - }; - } - function assertArray(val) { - return Array.isArray(val) ? val : [val]; - } - function zeroArray2(arr, length5) { - for (var i4 = 0; i4 < length5; i4++) { - if (typeof arr[i4] !== "number") { - arr[i4] = 0; - } - } - return arr; - } - module2.exports = Color3; - } -}); - -// node_modules/tinycolor2/tinycolor.js -var require_tinycolor = __commonJS({ - "node_modules/tinycolor2/tinycolor.js"(exports, module2) { - (function(Math2) { - var trimLeft = /^\s+/, trimRight = /\s+$/, tinyCounter = 0, mathRound = Math2.round, mathMin = Math2.min, mathMax = Math2.max, mathRandom = Math2.random; - function tinycolor2(color4, opts) { - color4 = color4 ? color4 : ""; - opts = opts || {}; - if (color4 instanceof tinycolor2) { - return color4; - } - if (!(this instanceof tinycolor2)) { - return new tinycolor2(color4, opts); - } - var rgb2 = inputToRGB(color4); - this._originalInput = color4, this._r = rgb2.r, this._g = rgb2.g, this._b = rgb2.b, this._a = rgb2.a, this._roundA = mathRound(100 * this._a) / 100, this._format = opts.format || rgb2.format; - this._gradientType = opts.gradientType; - if (this._r < 1) { - this._r = mathRound(this._r); - } - if (this._g < 1) { - this._g = mathRound(this._g); - } - if (this._b < 1) { - this._b = mathRound(this._b); - } - this._ok = rgb2.ok; - this._tc_id = tinyCounter++; - } - tinycolor2.prototype = { - isDark: function() { - return this.getBrightness() < 128; - }, - isLight: function() { - return !this.isDark(); - }, - isValid: function() { - return this._ok; - }, - getOriginalInput: function() { - return this._originalInput; - }, - getFormat: function() { - return this._format; - }, - getAlpha: function() { - return this._a; - }, - getBrightness: function() { - var rgb2 = this.toRgb(); - return (rgb2.r * 299 + rgb2.g * 587 + rgb2.b * 114) / 1e3; - }, - getLuminance: function() { - var rgb2 = this.toRgb(); - var RsRGB, GsRGB, BsRGB, R3, G2, B3; - RsRGB = rgb2.r / 255; - GsRGB = rgb2.g / 255; - BsRGB = rgb2.b / 255; - if (RsRGB <= 0.03928) { - R3 = RsRGB / 12.92; - } else { - R3 = Math2.pow((RsRGB + 0.055) / 1.055, 2.4); - } - if (GsRGB <= 0.03928) { - G2 = GsRGB / 12.92; - } else { - G2 = Math2.pow((GsRGB + 0.055) / 1.055, 2.4); - } - if (BsRGB <= 0.03928) { - B3 = BsRGB / 12.92; - } else { - B3 = Math2.pow((BsRGB + 0.055) / 1.055, 2.4); - } - return 0.2126 * R3 + 0.7152 * G2 + 0.0722 * B3; - }, - setAlpha: function(value2) { - this._a = boundAlpha(value2); - this._roundA = mathRound(100 * this._a) / 100; - return this; - }, - toHsv: function() { - var hsv = rgbToHsv(this._r, this._g, this._b); - return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; - }, - toHsvString: function() { - var hsv = rgbToHsv(this._r, this._g, this._b); - var h3 = mathRound(hsv.h * 360), s4 = mathRound(hsv.s * 100), v3 = mathRound(hsv.v * 100); - return this._a == 1 ? "hsv(" + h3 + ", " + s4 + "%, " + v3 + "%)" : "hsva(" + h3 + ", " + s4 + "%, " + v3 + "%, " + this._roundA + ")"; - }, - toHsl: function() { - var hsl2 = rgbToHsl(this._r, this._g, this._b); - return { h: hsl2.h * 360, s: hsl2.s, l: hsl2.l, a: this._a }; - }, - toHslString: function() { - var hsl2 = rgbToHsl(this._r, this._g, this._b); - var h3 = mathRound(hsl2.h * 360), s4 = mathRound(hsl2.s * 100), l4 = mathRound(hsl2.l * 100); - return this._a == 1 ? "hsl(" + h3 + ", " + s4 + "%, " + l4 + "%)" : "hsla(" + h3 + ", " + s4 + "%, " + l4 + "%, " + this._roundA + ")"; - }, - toHex: function(allow3Char) { - return rgbToHex(this._r, this._g, this._b, allow3Char); - }, - toHexString: function(allow3Char) { - return "#" + this.toHex(allow3Char); - }, - toHex8: function(allow4Char) { - return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); - }, - toHex8String: function(allow4Char) { - return "#" + this.toHex8(allow4Char); - }, - toRgb: function() { - return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; - }, - toRgbString: function() { - return this._a == 1 ? "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; - }, - toPercentageRgb: function() { - return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; - }, - toPercentageRgbString: function() { - return this._a == 1 ? "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; - }, - toName: function() { - if (this._a === 0) { - return "transparent"; - } - if (this._a < 1) { - return false; - } - return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; - }, - toFilter: function(secondColor) { - var hex8String = "#" + rgbaToArgbHex(this._r, this._g, this._b, this._a); - var secondHex8String = hex8String; - var gradientType = this._gradientType ? "GradientType = 1, " : ""; - if (secondColor) { - var s4 = tinycolor2(secondColor); - secondHex8String = "#" + rgbaToArgbHex(s4._r, s4._g, s4._b, s4._a); - } - return "progid:DXImageTransform.Microsoft.gradient(" + gradientType + "startColorstr=" + hex8String + ",endColorstr=" + secondHex8String + ")"; - }, - toString: function(format2) { - var formatSet = !!format2; - format2 = format2 || this._format; - var formattedString = false; - var hasAlpha = this._a < 1 && this._a >= 0; - var needsAlphaFormat = !formatSet && hasAlpha && (format2 === "hex" || format2 === "hex6" || format2 === "hex3" || format2 === "hex4" || format2 === "hex8" || format2 === "name"); - if (needsAlphaFormat) { - if (format2 === "name" && this._a === 0) { - return this.toName(); - } - return this.toRgbString(); - } - if (format2 === "rgb") { - formattedString = this.toRgbString(); - } - if (format2 === "prgb") { - formattedString = this.toPercentageRgbString(); - } - if (format2 === "hex" || format2 === "hex6") { - formattedString = this.toHexString(); - } - if (format2 === "hex3") { - formattedString = this.toHexString(true); - } - if (format2 === "hex4") { - formattedString = this.toHex8String(true); - } - if (format2 === "hex8") { - formattedString = this.toHex8String(); - } - if (format2 === "name") { - formattedString = this.toName(); - } - if (format2 === "hsl") { - formattedString = this.toHslString(); - } - if (format2 === "hsv") { - formattedString = this.toHsvString(); - } - return formattedString || this.toHexString(); - }, - clone: function() { - return tinycolor2(this.toString()); - }, - _applyModification: function(fn2, args) { - var color4 = fn2.apply(null, [this].concat([].slice.call(args))); - this._r = color4._r; - this._g = color4._g; - this._b = color4._b; - this.setAlpha(color4._a); - return this; - }, - lighten: function() { - return this._applyModification(lighten, arguments); - }, - brighten: function() { - return this._applyModification(brighten, arguments); - }, - darken: function() { - return this._applyModification(darken, arguments); - }, - desaturate: function() { - return this._applyModification(desaturate, arguments); - }, - saturate: function() { - return this._applyModification(saturate, arguments); - }, - greyscale: function() { - return this._applyModification(greyscale, arguments); - }, - spin: function() { - return this._applyModification(spin, arguments); - }, - _applyCombination: function(fn2, args) { - return fn2.apply(null, [this].concat([].slice.call(args))); - }, - analogous: function() { - return this._applyCombination(analogous, arguments); - }, - complement: function() { - return this._applyCombination(complement, arguments); - }, - monochromatic: function() { - return this._applyCombination(monochromatic, arguments); - }, - splitcomplement: function() { - return this._applyCombination(splitcomplement, arguments); - }, - triad: function() { - return this._applyCombination(triad, arguments); - }, - tetrad: function() { - return this._applyCombination(tetrad, arguments); - } - }; - tinycolor2.fromRatio = function(color4, opts) { - if (typeof color4 == "object") { - var newColor = {}; - for (var i4 in color4) { - if (color4.hasOwnProperty(i4)) { - if (i4 === "a") { - newColor[i4] = color4[i4]; - } else { - newColor[i4] = convertToPercentage(color4[i4]); - } - } - } - color4 = newColor; - } - return tinycolor2(color4, opts); - }; - function inputToRGB(color4) { - var rgb2 = { r: 0, g: 0, b: 0 }; - var a4 = 1; - var s4 = null; - var v3 = null; - var l4 = null; - var ok = false; - var format2 = false; - if (typeof color4 == "string") { - color4 = stringInputToObject(color4); - } - if (typeof color4 == "object") { - if (isValidCSSUnit(color4.r) && isValidCSSUnit(color4.g) && isValidCSSUnit(color4.b)) { - rgb2 = rgbToRgb(color4.r, color4.g, color4.b); - ok = true; - format2 = String(color4.r).substr(-1) === "%" ? "prgb" : "rgb"; - } else if (isValidCSSUnit(color4.h) && isValidCSSUnit(color4.s) && isValidCSSUnit(color4.v)) { - s4 = convertToPercentage(color4.s); - v3 = convertToPercentage(color4.v); - rgb2 = hsvToRgb(color4.h, s4, v3); - ok = true; - format2 = "hsv"; - } else if (isValidCSSUnit(color4.h) && isValidCSSUnit(color4.s) && isValidCSSUnit(color4.l)) { - s4 = convertToPercentage(color4.s); - l4 = convertToPercentage(color4.l); - rgb2 = hslToRgb(color4.h, s4, l4); - ok = true; - format2 = "hsl"; - } - if (color4.hasOwnProperty("a")) { - a4 = color4.a; - } - } - a4 = boundAlpha(a4); - return { - ok, - format: color4.format || format2, - r: mathMin(255, mathMax(rgb2.r, 0)), - g: mathMin(255, mathMax(rgb2.g, 0)), - b: mathMin(255, mathMax(rgb2.b, 0)), - a: a4 - }; - } - function rgbToRgb(r4, g4, b10) { - return { - r: bound01(r4, 255) * 255, - g: bound01(g4, 255) * 255, - b: bound01(b10, 255) * 255 - }; - } - function rgbToHsl(r4, g4, b10) { - r4 = bound01(r4, 255); - g4 = bound01(g4, 255); - b10 = bound01(b10, 255); - var max8 = mathMax(r4, g4, b10), min7 = mathMin(r4, g4, b10); - var h3, s4, l4 = (max8 + min7) / 2; - if (max8 == min7) { - h3 = s4 = 0; - } else { - var d3 = max8 - min7; - s4 = l4 > 0.5 ? d3 / (2 - max8 - min7) : d3 / (max8 + min7); - switch (max8) { - case r4: - h3 = (g4 - b10) / d3 + (g4 < b10 ? 6 : 0); - break; - case g4: - h3 = (b10 - r4) / d3 + 2; - break; - case b10: - h3 = (r4 - g4) / d3 + 4; - break; - } - h3 /= 6; - } - return { h: h3, s: s4, l: l4 }; - } - function hslToRgb(h3, s4, l4) { - var r4, g4, b10; - h3 = bound01(h3, 360); - s4 = bound01(s4, 100); - l4 = bound01(l4, 100); - function hue2rgb(p5, q5, t4) { - if (t4 < 0) - t4 += 1; - if (t4 > 1) - t4 -= 1; - if (t4 < 1 / 6) - return p5 + (q5 - p5) * 6 * t4; - if (t4 < 1 / 2) - return q5; - if (t4 < 2 / 3) - return p5 + (q5 - p5) * (2 / 3 - t4) * 6; - return p5; - } - if (s4 === 0) { - r4 = g4 = b10 = l4; - } else { - var q4 = l4 < 0.5 ? l4 * (1 + s4) : l4 + s4 - l4 * s4; - var p4 = 2 * l4 - q4; - r4 = hue2rgb(p4, q4, h3 + 1 / 3); - g4 = hue2rgb(p4, q4, h3); - b10 = hue2rgb(p4, q4, h3 - 1 / 3); - } - return { r: r4 * 255, g: g4 * 255, b: b10 * 255 }; - } - function rgbToHsv(r4, g4, b10) { - r4 = bound01(r4, 255); - g4 = bound01(g4, 255); - b10 = bound01(b10, 255); - var max8 = mathMax(r4, g4, b10), min7 = mathMin(r4, g4, b10); - var h3, s4, v3 = max8; - var d3 = max8 - min7; - s4 = max8 === 0 ? 0 : d3 / max8; - if (max8 == min7) { - h3 = 0; - } else { - switch (max8) { - case r4: - h3 = (g4 - b10) / d3 + (g4 < b10 ? 6 : 0); - break; - case g4: - h3 = (b10 - r4) / d3 + 2; - break; - case b10: - h3 = (r4 - g4) / d3 + 4; - break; - } - h3 /= 6; - } - return { h: h3, s: s4, v: v3 }; - } - function hsvToRgb(h3, s4, v3) { - h3 = bound01(h3, 360) * 6; - s4 = bound01(s4, 100); - v3 = bound01(v3, 100); - var i4 = Math2.floor(h3), f3 = h3 - i4, p4 = v3 * (1 - s4), q4 = v3 * (1 - f3 * s4), t4 = v3 * (1 - (1 - f3) * s4), mod3 = i4 % 6, r4 = [v3, q4, p4, p4, t4, v3][mod3], g4 = [t4, v3, v3, q4, p4, p4][mod3], b10 = [p4, p4, t4, v3, v3, q4][mod3]; - return { r: r4 * 255, g: g4 * 255, b: b10 * 255 }; - } - function rgbToHex(r4, g4, b10, allow3Char) { - var hex2 = [ - pad2(mathRound(r4).toString(16)), - pad2(mathRound(g4).toString(16)), - pad2(mathRound(b10).toString(16)) - ]; - if (allow3Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1)) { - return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0); - } - return hex2.join(""); - } - function rgbaToHex(r4, g4, b10, a4, allow4Char) { - var hex2 = [ - pad2(mathRound(r4).toString(16)), - pad2(mathRound(g4).toString(16)), - pad2(mathRound(b10).toString(16)), - pad2(convertDecimalToHex(a4)) - ]; - if (allow4Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1) && hex2[3].charAt(0) == hex2[3].charAt(1)) { - return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0) + hex2[3].charAt(0); - } - return hex2.join(""); - } - function rgbaToArgbHex(r4, g4, b10, a4) { - var hex2 = [ - pad2(convertDecimalToHex(a4)), - pad2(mathRound(r4).toString(16)), - pad2(mathRound(g4).toString(16)), - pad2(mathRound(b10).toString(16)) - ]; - return hex2.join(""); - } - tinycolor2.equals = function(color1, color22) { - if (!color1 || !color22) { - return false; - } - return tinycolor2(color1).toRgbString() == tinycolor2(color22).toRgbString(); - }; - tinycolor2.random = function() { - return tinycolor2.fromRatio({ - r: mathRandom(), - g: mathRandom(), - b: mathRandom() - }); - }; - function desaturate(color4, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl2 = tinycolor2(color4).toHsl(); - hsl2.s -= amount / 100; - hsl2.s = clamp01(hsl2.s); - return tinycolor2(hsl2); - } - function saturate(color4, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl2 = tinycolor2(color4).toHsl(); - hsl2.s += amount / 100; - hsl2.s = clamp01(hsl2.s); - return tinycolor2(hsl2); - } - function greyscale(color4) { - return tinycolor2(color4).desaturate(100); - } - function lighten(color4, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl2 = tinycolor2(color4).toHsl(); - hsl2.l += amount / 100; - hsl2.l = clamp01(hsl2.l); - return tinycolor2(hsl2); - } - function brighten(color4, amount) { - amount = amount === 0 ? 0 : amount || 10; - var rgb2 = tinycolor2(color4).toRgb(); - rgb2.r = mathMax(0, mathMin(255, rgb2.r - mathRound(255 * -(amount / 100)))); - rgb2.g = mathMax(0, mathMin(255, rgb2.g - mathRound(255 * -(amount / 100)))); - rgb2.b = mathMax(0, mathMin(255, rgb2.b - mathRound(255 * -(amount / 100)))); - return tinycolor2(rgb2); - } - function darken(color4, amount) { - amount = amount === 0 ? 0 : amount || 10; - var hsl2 = tinycolor2(color4).toHsl(); - hsl2.l -= amount / 100; - hsl2.l = clamp01(hsl2.l); - return tinycolor2(hsl2); - } - function spin(color4, amount) { - var hsl2 = tinycolor2(color4).toHsl(); - var hue = (hsl2.h + amount) % 360; - hsl2.h = hue < 0 ? 360 + hue : hue; - return tinycolor2(hsl2); - } - function complement(color4) { - var hsl2 = tinycolor2(color4).toHsl(); - hsl2.h = (hsl2.h + 180) % 360; - return tinycolor2(hsl2); - } - function triad(color4) { - var hsl2 = tinycolor2(color4).toHsl(); - var h3 = hsl2.h; - return [ - tinycolor2(color4), - tinycolor2({ h: (h3 + 120) % 360, s: hsl2.s, l: hsl2.l }), - tinycolor2({ h: (h3 + 240) % 360, s: hsl2.s, l: hsl2.l }) - ]; - } - function tetrad(color4) { - var hsl2 = tinycolor2(color4).toHsl(); - var h3 = hsl2.h; - return [ - tinycolor2(color4), - tinycolor2({ h: (h3 + 90) % 360, s: hsl2.s, l: hsl2.l }), - tinycolor2({ h: (h3 + 180) % 360, s: hsl2.s, l: hsl2.l }), - tinycolor2({ h: (h3 + 270) % 360, s: hsl2.s, l: hsl2.l }) - ]; - } - function splitcomplement(color4) { - var hsl2 = tinycolor2(color4).toHsl(); - var h3 = hsl2.h; - return [ - tinycolor2(color4), - tinycolor2({ h: (h3 + 72) % 360, s: hsl2.s, l: hsl2.l }), - tinycolor2({ h: (h3 + 216) % 360, s: hsl2.s, l: hsl2.l }) - ]; - } - function analogous(color4, results, slices) { - results = results || 6; - slices = slices || 30; - var hsl2 = tinycolor2(color4).toHsl(); - var part = 360 / slices; - var ret = [tinycolor2(color4)]; - for (hsl2.h = (hsl2.h - (part * results >> 1) + 720) % 360; --results; ) { - hsl2.h = (hsl2.h + part) % 360; - ret.push(tinycolor2(hsl2)); - } - return ret; - } - function monochromatic(color4, results) { - results = results || 6; - var hsv = tinycolor2(color4).toHsv(); - var h3 = hsv.h, s4 = hsv.s, v3 = hsv.v; - var ret = []; - var modification = 1 / results; - while (results--) { - ret.push(tinycolor2({ h: h3, s: s4, v: v3 })); - v3 = (v3 + modification) % 1; - } - return ret; - } - tinycolor2.mix = function(color1, color22, amount) { - amount = amount === 0 ? 0 : amount || 50; - var rgb1 = tinycolor2(color1).toRgb(); - var rgb2 = tinycolor2(color22).toRgb(); - var p4 = amount / 100; - var rgba2 = { - r: (rgb2.r - rgb1.r) * p4 + rgb1.r, - g: (rgb2.g - rgb1.g) * p4 + rgb1.g, - b: (rgb2.b - rgb1.b) * p4 + rgb1.b, - a: (rgb2.a - rgb1.a) * p4 + rgb1.a - }; - return tinycolor2(rgba2); - }; - tinycolor2.readability = function(color1, color22) { - var c1 = tinycolor2(color1); - var c22 = tinycolor2(color22); - return (Math2.max(c1.getLuminance(), c22.getLuminance()) + 0.05) / (Math2.min(c1.getLuminance(), c22.getLuminance()) + 0.05); - }; - tinycolor2.isReadable = function(color1, color22, wcag2) { - var readability = tinycolor2.readability(color1, color22); - var wcag2Parms, out; - out = false; - wcag2Parms = validateWCAG2Parms(wcag2); - switch (wcag2Parms.level + wcag2Parms.size) { - case "AAsmall": - case "AAAlarge": - out = readability >= 4.5; - break; - case "AAlarge": - out = readability >= 3; - break; - case "AAAsmall": - out = readability >= 7; - break; - } - return out; - }; - tinycolor2.mostReadable = function(baseColor, colorList, args) { - var bestColor = null; - var bestScore = 0; - var readability; - var includeFallbackColors, level, size2; - args = args || {}; - includeFallbackColors = args.includeFallbackColors; - level = args.level; - size2 = args.size; - for (var i4 = 0; i4 < colorList.length; i4++) { - readability = tinycolor2.readability(baseColor, colorList[i4]); - if (readability > bestScore) { - bestScore = readability; - bestColor = tinycolor2(colorList[i4]); - } - } - if (tinycolor2.isReadable(baseColor, bestColor, { "level": level, "size": size2 }) || !includeFallbackColors) { - return bestColor; - } else { - args.includeFallbackColors = false; - return tinycolor2.mostReadable(baseColor, ["#fff", "#000"], args); - } - }; - var names = tinycolor2.names = { - aliceblue: "f0f8ff", - antiquewhite: "faebd7", - aqua: "0ff", - aquamarine: "7fffd4", - azure: "f0ffff", - beige: "f5f5dc", - bisque: "ffe4c4", - black: "000", - blanchedalmond: "ffebcd", - blue: "00f", - blueviolet: "8a2be2", - brown: "a52a2a", - burlywood: "deb887", - burntsienna: "ea7e5d", - cadetblue: "5f9ea0", - chartreuse: "7fff00", - chocolate: "d2691e", - coral: "ff7f50", - cornflowerblue: "6495ed", - cornsilk: "fff8dc", - crimson: "dc143c", - cyan: "0ff", - darkblue: "00008b", - darkcyan: "008b8b", - darkgoldenrod: "b8860b", - darkgray: "a9a9a9", - darkgreen: "006400", - darkgrey: "a9a9a9", - darkkhaki: "bdb76b", - darkmagenta: "8b008b", - darkolivegreen: "556b2f", - darkorange: "ff8c00", - darkorchid: "9932cc", - darkred: "8b0000", - darksalmon: "e9967a", - darkseagreen: "8fbc8f", - darkslateblue: "483d8b", - darkslategray: "2f4f4f", - darkslategrey: "2f4f4f", - darkturquoise: "00ced1", - darkviolet: "9400d3", - deeppink: "ff1493", - deepskyblue: "00bfff", - dimgray: "696969", - dimgrey: "696969", - dodgerblue: "1e90ff", - firebrick: "b22222", - floralwhite: "fffaf0", - forestgreen: "228b22", - fuchsia: "f0f", - gainsboro: "dcdcdc", - ghostwhite: "f8f8ff", - gold: "ffd700", - goldenrod: "daa520", - gray: "808080", - green: "008000", - greenyellow: "adff2f", - grey: "808080", - honeydew: "f0fff0", - hotpink: "ff69b4", - indianred: "cd5c5c", - indigo: "4b0082", - ivory: "fffff0", - khaki: "f0e68c", - lavender: "e6e6fa", - lavenderblush: "fff0f5", - lawngreen: "7cfc00", - lemonchiffon: "fffacd", - lightblue: "add8e6", - lightcoral: "f08080", - lightcyan: "e0ffff", - lightgoldenrodyellow: "fafad2", - lightgray: "d3d3d3", - lightgreen: "90ee90", - lightgrey: "d3d3d3", - lightpink: "ffb6c1", - lightsalmon: "ffa07a", - lightseagreen: "20b2aa", - lightskyblue: "87cefa", - lightslategray: "789", - lightslategrey: "789", - lightsteelblue: "b0c4de", - lightyellow: "ffffe0", - lime: "0f0", - limegreen: "32cd32", - linen: "faf0e6", - magenta: "f0f", - maroon: "800000", - mediumaquamarine: "66cdaa", - mediumblue: "0000cd", - mediumorchid: "ba55d3", - mediumpurple: "9370db", - mediumseagreen: "3cb371", - mediumslateblue: "7b68ee", - mediumspringgreen: "00fa9a", - mediumturquoise: "48d1cc", - mediumvioletred: "c71585", - midnightblue: "191970", - mintcream: "f5fffa", - mistyrose: "ffe4e1", - moccasin: "ffe4b5", - navajowhite: "ffdead", - navy: "000080", - oldlace: "fdf5e6", - olive: "808000", - olivedrab: "6b8e23", - orange: "ffa500", - orangered: "ff4500", - orchid: "da70d6", - palegoldenrod: "eee8aa", - palegreen: "98fb98", - paleturquoise: "afeeee", - palevioletred: "db7093", - papayawhip: "ffefd5", - peachpuff: "ffdab9", - peru: "cd853f", - pink: "ffc0cb", - plum: "dda0dd", - powderblue: "b0e0e6", - purple: "800080", - rebeccapurple: "663399", - red: "f00", - rosybrown: "bc8f8f", - royalblue: "4169e1", - saddlebrown: "8b4513", - salmon: "fa8072", - sandybrown: "f4a460", - seagreen: "2e8b57", - seashell: "fff5ee", - sienna: "a0522d", - silver: "c0c0c0", - skyblue: "87ceeb", - slateblue: "6a5acd", - slategray: "708090", - slategrey: "708090", - snow: "fffafa", - springgreen: "00ff7f", - steelblue: "4682b4", - tan: "d2b48c", - teal: "008080", - thistle: "d8bfd8", - tomato: "ff6347", - turquoise: "40e0d0", - violet: "ee82ee", - wheat: "f5deb3", - white: "fff", - whitesmoke: "f5f5f5", - yellow: "ff0", - yellowgreen: "9acd32" - }; - var hexNames = tinycolor2.hexNames = flip(names); - function flip(o3) { - var flipped = {}; - for (var i4 in o3) { - if (o3.hasOwnProperty(i4)) { - flipped[o3[i4]] = i4; - } - } - return flipped; - } - function boundAlpha(a4) { - a4 = parseFloat(a4); - if (isNaN(a4) || a4 < 0 || a4 > 1) { - a4 = 1; - } - return a4; - } - function bound01(n3, max8) { - if (isOnePointZero(n3)) { - n3 = "100%"; - } - var processPercent = isPercentage(n3); - n3 = mathMin(max8, mathMax(0, parseFloat(n3))); - if (processPercent) { - n3 = parseInt(n3 * max8, 10) / 100; - } - if (Math2.abs(n3 - max8) < 1e-6) { - return 1; - } - return n3 % max8 / parseFloat(max8); - } - function clamp01(val) { - return mathMin(1, mathMax(0, val)); - } - function parseIntFromHex(val) { - return parseInt(val, 16); - } - function isOnePointZero(n3) { - return typeof n3 == "string" && n3.indexOf(".") != -1 && parseFloat(n3) === 1; - } - function isPercentage(n3) { - return typeof n3 === "string" && n3.indexOf("%") != -1; - } - function pad2(c5) { - return c5.length == 1 ? "0" + c5 : "" + c5; - } - function convertToPercentage(n3) { - if (n3 <= 1) { - n3 = n3 * 100 + "%"; - } - return n3; - } - function convertDecimalToHex(d3) { - return Math2.round(parseFloat(d3) * 255).toString(16); - } - function convertHexToDecimal(h3) { - return parseIntFromHex(h3) / 255; - } - var matchers = function() { - var CSS_INTEGER = "[-\\+]?\\d+%?"; - var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; - var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; - var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; - var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; - return { - CSS_UNIT: new RegExp(CSS_UNIT), - rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), - rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), - hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), - hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), - hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), - hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), - hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, - hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ - }; - }(); - function isValidCSSUnit(color4) { - return !!matchers.CSS_UNIT.exec(color4); - } - function stringInputToObject(color4) { - color4 = color4.replace(trimLeft, "").replace(trimRight, "").toLowerCase(); - var named9 = false; - if (names[color4]) { - color4 = names[color4]; - named9 = true; - } else if (color4 == "transparent") { - return { r: 0, g: 0, b: 0, a: 0, format: "name" }; - } - var match; - if (match = matchers.rgb.exec(color4)) { - return { r: match[1], g: match[2], b: match[3] }; - } - if (match = matchers.rgba.exec(color4)) { - return { r: match[1], g: match[2], b: match[3], a: match[4] }; - } - if (match = matchers.hsl.exec(color4)) { - return { h: match[1], s: match[2], l: match[3] }; - } - if (match = matchers.hsla.exec(color4)) { - return { h: match[1], s: match[2], l: match[3], a: match[4] }; - } - if (match = matchers.hsv.exec(color4)) { - return { h: match[1], s: match[2], v: match[3] }; - } - if (match = matchers.hsva.exec(color4)) { - return { h: match[1], s: match[2], v: match[3], a: match[4] }; - } - if (match = matchers.hex8.exec(color4)) { - return { - r: parseIntFromHex(match[1]), - g: parseIntFromHex(match[2]), - b: parseIntFromHex(match[3]), - a: convertHexToDecimal(match[4]), - format: named9 ? "name" : "hex8" - }; - } - if (match = matchers.hex6.exec(color4)) { - return { - r: parseIntFromHex(match[1]), - g: parseIntFromHex(match[2]), - b: parseIntFromHex(match[3]), - format: named9 ? "name" : "hex" - }; - } - if (match = matchers.hex4.exec(color4)) { - return { - r: parseIntFromHex(match[1] + "" + match[1]), - g: parseIntFromHex(match[2] + "" + match[2]), - b: parseIntFromHex(match[3] + "" + match[3]), - a: convertHexToDecimal(match[4] + "" + match[4]), - format: named9 ? "name" : "hex8" - }; - } - if (match = matchers.hex3.exec(color4)) { - return { - r: parseIntFromHex(match[1] + "" + match[1]), - g: parseIntFromHex(match[2] + "" + match[2]), - b: parseIntFromHex(match[3] + "" + match[3]), - format: named9 ? "name" : "hex" - }; - } - return false; - } - function validateWCAG2Parms(parms) { - var level, size2; - parms = parms || { "level": "AA", "size": "small" }; - level = (parms.level || "AA").toUpperCase(); - size2 = (parms.size || "small").toLowerCase(); - if (level !== "AA" && level !== "AAA") { - level = "AA"; - } - if (size2 !== "small" && size2 !== "large") { - size2 = "small"; - } - return { "level": level, "size": size2 }; - } - if (typeof module2 !== "undefined" && module2.exports) { - module2.exports = tinycolor2; - } else if (typeof define === "function" && define.amd) { - define(function() { - return tinycolor2; - }); - } else { - window.tinycolor = tinycolor2; - } - })(Math); - } -}); - -// node_modules/lodash/lodash.js -var require_lodash = __commonJS({ - "node_modules/lodash/lodash.js"(exports, module2) { - (function() { - var undefined2; - var VERSION2 = "4.17.21"; - var LARGE_ARRAY_SIZE = 200; - var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - var MAX_MEMOIZE_SIZE = 500; - var PLACEHOLDER = "__lodash_placeholder__"; - var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; - var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; - var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; - var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; - var HOT_COUNT = 800, HOT_SPAN = 16; - var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; - var INFINITY = 1 / 0, MAX_SAFE_INTEGER4 = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0; - var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - var wrapFlags = [ - ["ary", WRAP_ARY_FLAG], - ["bind", WRAP_BIND_FLAG], - ["bindKey", WRAP_BIND_KEY_FLAG], - ["curry", WRAP_CURRY_FLAG], - ["curryRight", WRAP_CURRY_RIGHT_FLAG], - ["flip", WRAP_FLIP_FLAG], - ["partial", WRAP_PARTIAL_FLAG], - ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], - ["rearg", WRAP_REARG_FLAG] - ]; - var argsTag4 = "[object Arguments]", arrayTag4 = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag4 = "[object Boolean]", dateTag4 = "[object Date]", domExcTag = "[object DOMException]", errorTag4 = "[object Error]", funcTag4 = "[object Function]", genTag = "[object GeneratorFunction]", mapTag4 = "[object Map]", numberTag4 = "[object Number]", nullTag = "[object Null]", objectTag4 = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag4 = "[object RegExp]", setTag5 = "[object Set]", stringTag4 = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag4 = "[object WeakMap]", weakSetTag = "[object WeakSet]"; - var arrayBufferTag4 = "[object ArrayBuffer]", dataViewTag4 = "[object DataView]", float32Tag4 = "[object Float32Array]", float64Tag4 = "[object Float64Array]", int8Tag4 = "[object Int8Array]", int16Tag4 = "[object Int16Array]", int32Tag4 = "[object Int32Array]", uint8Tag4 = "[object Uint8Array]", uint8ClampedTag4 = "[object Uint8ClampedArray]", uint16Tag4 = "[object Uint16Array]", uint32Tag4 = "[object Uint32Array]"; - var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); - var reTrimStart = /^\s+/; - var reWhitespace = /\s/; - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; - var reEscapeChar = /\\(\\)?/g; - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - var reFlags = /\w*$/; - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - var reIsBinary = /^0b[01]+$/i; - var reIsHostCtor = /^\[object .+?Constructor\]$/; - var reIsOctal = /^0o[0-7]+$/i; - var reIsUint = /^(?:0|[1-9]\d*)$/; - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - var reNoMatch = /($^)/; - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; - var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; - var reApos = RegExp(rsApos, "g"); - var reComboMark = RegExp(rsCombo, "g"); - var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); - var reUnicodeWord = RegExp([ - rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", - rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", - rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, - rsUpper + "+" + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji - ].join("|"), "g"); - var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - var contextProps = [ - "Array", - "Buffer", - "DataView", - "Date", - "Error", - "Float32Array", - "Float64Array", - "Function", - "Int8Array", - "Int16Array", - "Int32Array", - "Map", - "Math", - "Object", - "Promise", - "RegExp", - "Set", - "String", - "Symbol", - "TypeError", - "Uint8Array", - "Uint8ClampedArray", - "Uint16Array", - "Uint32Array", - "WeakMap", - "_", - "clearTimeout", - "isFinite", - "parseInt", - "setTimeout" - ]; - var templateCounter = -1; - var typedArrayTags4 = {}; - typedArrayTags4[float32Tag4] = typedArrayTags4[float64Tag4] = typedArrayTags4[int8Tag4] = typedArrayTags4[int16Tag4] = typedArrayTags4[int32Tag4] = typedArrayTags4[uint8Tag4] = typedArrayTags4[uint8ClampedTag4] = typedArrayTags4[uint16Tag4] = typedArrayTags4[uint32Tag4] = true; - typedArrayTags4[argsTag4] = typedArrayTags4[arrayTag4] = typedArrayTags4[arrayBufferTag4] = typedArrayTags4[boolTag4] = typedArrayTags4[dataViewTag4] = typedArrayTags4[dateTag4] = typedArrayTags4[errorTag4] = typedArrayTags4[funcTag4] = typedArrayTags4[mapTag4] = typedArrayTags4[numberTag4] = typedArrayTags4[objectTag4] = typedArrayTags4[regexpTag4] = typedArrayTags4[setTag5] = typedArrayTags4[stringTag4] = typedArrayTags4[weakMapTag4] = false; - var cloneableTags = {}; - cloneableTags[argsTag4] = cloneableTags[arrayTag4] = cloneableTags[arrayBufferTag4] = cloneableTags[dataViewTag4] = cloneableTags[boolTag4] = cloneableTags[dateTag4] = cloneableTags[float32Tag4] = cloneableTags[float64Tag4] = cloneableTags[int8Tag4] = cloneableTags[int16Tag4] = cloneableTags[int32Tag4] = cloneableTags[mapTag4] = cloneableTags[numberTag4] = cloneableTags[objectTag4] = cloneableTags[regexpTag4] = cloneableTags[setTag5] = cloneableTags[stringTag4] = cloneableTags[symbolTag] = cloneableTags[uint8Tag4] = cloneableTags[uint8ClampedTag4] = cloneableTags[uint16Tag4] = cloneableTags[uint32Tag4] = true; - cloneableTags[errorTag4] = cloneableTags[funcTag4] = cloneableTags[weakMapTag4] = false; - var deburredLetters = { - "\xC0": "A", - "\xC1": "A", - "\xC2": "A", - "\xC3": "A", - "\xC4": "A", - "\xC5": "A", - "\xE0": "a", - "\xE1": "a", - "\xE2": "a", - "\xE3": "a", - "\xE4": "a", - "\xE5": "a", - "\xC7": "C", - "\xE7": "c", - "\xD0": "D", - "\xF0": "d", - "\xC8": "E", - "\xC9": "E", - "\xCA": "E", - "\xCB": "E", - "\xE8": "e", - "\xE9": "e", - "\xEA": "e", - "\xEB": "e", - "\xCC": "I", - "\xCD": "I", - "\xCE": "I", - "\xCF": "I", - "\xEC": "i", - "\xED": "i", - "\xEE": "i", - "\xEF": "i", - "\xD1": "N", - "\xF1": "n", - "\xD2": "O", - "\xD3": "O", - "\xD4": "O", - "\xD5": "O", - "\xD6": "O", - "\xD8": "O", - "\xF2": "o", - "\xF3": "o", - "\xF4": "o", - "\xF5": "o", - "\xF6": "o", - "\xF8": "o", - "\xD9": "U", - "\xDA": "U", - "\xDB": "U", - "\xDC": "U", - "\xF9": "u", - "\xFA": "u", - "\xFB": "u", - "\xFC": "u", - "\xDD": "Y", - "\xFD": "y", - "\xFF": "y", - "\xC6": "Ae", - "\xE6": "ae", - "\xDE": "Th", - "\xFE": "th", - "\xDF": "ss", - "\u0100": "A", - "\u0102": "A", - "\u0104": "A", - "\u0101": "a", - "\u0103": "a", - "\u0105": "a", - "\u0106": "C", - "\u0108": "C", - "\u010A": "C", - "\u010C": "C", - "\u0107": "c", - "\u0109": "c", - "\u010B": "c", - "\u010D": "c", - "\u010E": "D", - "\u0110": "D", - "\u010F": "d", - "\u0111": "d", - "\u0112": "E", - "\u0114": "E", - "\u0116": "E", - "\u0118": "E", - "\u011A": "E", - "\u0113": "e", - "\u0115": "e", - "\u0117": "e", - "\u0119": "e", - "\u011B": "e", - "\u011C": "G", - "\u011E": "G", - "\u0120": "G", - "\u0122": "G", - "\u011D": "g", - "\u011F": "g", - "\u0121": "g", - "\u0123": "g", - "\u0124": "H", - "\u0126": "H", - "\u0125": "h", - "\u0127": "h", - "\u0128": "I", - "\u012A": "I", - "\u012C": "I", - "\u012E": "I", - "\u0130": "I", - "\u0129": "i", - "\u012B": "i", - "\u012D": "i", - "\u012F": "i", - "\u0131": "i", - "\u0134": "J", - "\u0135": "j", - "\u0136": "K", - "\u0137": "k", - "\u0138": "k", - "\u0139": "L", - "\u013B": "L", - "\u013D": "L", - "\u013F": "L", - "\u0141": "L", - "\u013A": "l", - "\u013C": "l", - "\u013E": "l", - "\u0140": "l", - "\u0142": "l", - "\u0143": "N", - "\u0145": "N", - "\u0147": "N", - "\u014A": "N", - "\u0144": "n", - "\u0146": "n", - "\u0148": "n", - "\u014B": "n", - "\u014C": "O", - "\u014E": "O", - "\u0150": "O", - "\u014D": "o", - "\u014F": "o", - "\u0151": "o", - "\u0154": "R", - "\u0156": "R", - "\u0158": "R", - "\u0155": "r", - "\u0157": "r", - "\u0159": "r", - "\u015A": "S", - "\u015C": "S", - "\u015E": "S", - "\u0160": "S", - "\u015B": "s", - "\u015D": "s", - "\u015F": "s", - "\u0161": "s", - "\u0162": "T", - "\u0164": "T", - "\u0166": "T", - "\u0163": "t", - "\u0165": "t", - "\u0167": "t", - "\u0168": "U", - "\u016A": "U", - "\u016C": "U", - "\u016E": "U", - "\u0170": "U", - "\u0172": "U", - "\u0169": "u", - "\u016B": "u", - "\u016D": "u", - "\u016F": "u", - "\u0171": "u", - "\u0173": "u", - "\u0174": "W", - "\u0175": "w", - "\u0176": "Y", - "\u0177": "y", - "\u0178": "Y", - "\u0179": "Z", - "\u017B": "Z", - "\u017D": "Z", - "\u017A": "z", - "\u017C": "z", - "\u017E": "z", - "\u0132": "IJ", - "\u0133": "ij", - "\u0152": "Oe", - "\u0153": "oe", - "\u0149": "'n", - "\u017F": "s" - }; - var htmlEscapes = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'" - }; - var htmlUnescapes = { - "&": "&", - "<": "<", - ">": ">", - """: '"', - "'": "'" - }; - var stringEscapes = { - "\\": "\\", - "'": "'", - "\n": "n", - "\r": "r", - "\u2028": "u2028", - "\u2029": "u2029" - }; - var freeParseFloat = parseFloat, freeParseInt = parseInt; - var freeGlobal = typeof global == "object" && global && global.Object === Object && global; - var freeSelf = typeof self == "object" && self && self.Object === Object && self; - var root = freeGlobal || freeSelf || Function("return this")(); - var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; - var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2; - var moduleExports = freeModule && freeModule.exports === freeExports; - var freeProcess = moduleExports && freeGlobal.process; - var nodeUtil = function() { - try { - var types2 = freeModule && freeModule.require && freeModule.require("util").types; - if (types2) { - return types2; - } - return freeProcess && freeProcess.binding && freeProcess.binding("util"); - } catch (e4) { - } - }(); - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - function apply(func, thisArg, args) { - switch (args.length) { - case 0: - return func.call(thisArg); - case 1: - return func.call(thisArg, args[0]); - case 2: - return func.call(thisArg, args[0], args[1]); - case 3: - return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - function arrayAggregator(array, setter, iteratee, accumulator) { - var index2 = -1, length5 = array == null ? 0 : array.length; - while (++index2 < length5) { - var value2 = array[index2]; - setter(accumulator, value2, iteratee(value2), array); - } - return accumulator; - } - function arrayEach(array, iteratee) { - var index2 = -1, length5 = array == null ? 0 : array.length; - while (++index2 < length5) { - if (iteratee(array[index2], index2, array) === false) { - break; - } - } - return array; - } - function arrayEachRight(array, iteratee) { - var length5 = array == null ? 0 : array.length; - while (length5--) { - if (iteratee(array[length5], length5, array) === false) { - break; - } - } - return array; - } - function arrayEvery(array, predicate) { - var index2 = -1, length5 = array == null ? 0 : array.length; - while (++index2 < length5) { - if (!predicate(array[index2], index2, array)) { - return false; - } - } - return true; - } - function arrayFilter(array, predicate) { - var index2 = -1, length5 = array == null ? 0 : array.length, resIndex = 0, result = []; - while (++index2 < length5) { - var value2 = array[index2]; - if (predicate(value2, index2, array)) { - result[resIndex++] = value2; - } - } - return result; - } - function arrayIncludes(array, value2) { - var length5 = array == null ? 0 : array.length; - return !!length5 && baseIndexOf(array, value2, 0) > -1; - } - function arrayIncludesWith(array, value2, comparator) { - var index2 = -1, length5 = array == null ? 0 : array.length; - while (++index2 < length5) { - if (comparator(value2, array[index2])) { - return true; - } - } - return false; - } - function arrayMap(array, iteratee) { - var index2 = -1, length5 = array == null ? 0 : array.length, result = Array(length5); - while (++index2 < length5) { - result[index2] = iteratee(array[index2], index2, array); - } - return result; - } - function arrayPush(array, values2) { - var index2 = -1, length5 = values2.length, offset = array.length; - while (++index2 < length5) { - array[offset + index2] = values2[index2]; - } - return array; - } - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index2 = -1, length5 = array == null ? 0 : array.length; - if (initAccum && length5) { - accumulator = array[++index2]; - } - while (++index2 < length5) { - accumulator = iteratee(accumulator, array[index2], index2, array); - } - return accumulator; - } - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length5 = array == null ? 0 : array.length; - if (initAccum && length5) { - accumulator = array[--length5]; - } - while (length5--) { - accumulator = iteratee(accumulator, array[length5], length5, array); - } - return accumulator; - } - function arraySome(array, predicate) { - var index2 = -1, length5 = array == null ? 0 : array.length; - while (++index2 < length5) { - if (predicate(array[index2], index2, array)) { - return true; - } - } - return false; - } - var asciiSize = baseProperty("length"); - function asciiToArray(string) { - return string.split(""); - } - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function(value2, key, collection2) { - if (predicate(value2, key, collection2)) { - result = key; - return false; - } - }); - return result; - } - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length5 = array.length, index2 = fromIndex + (fromRight ? 1 : -1); - while (fromRight ? index2-- : ++index2 < length5) { - if (predicate(array[index2], index2, array)) { - return index2; - } - } - return -1; - } - function baseIndexOf(array, value2, fromIndex) { - return value2 === value2 ? strictIndexOf(array, value2, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); - } - function baseIndexOfWith(array, value2, fromIndex, comparator) { - var index2 = fromIndex - 1, length5 = array.length; - while (++index2 < length5) { - if (comparator(array[index2], value2)) { - return index2; - } - } - return -1; - } - function baseIsNaN(value2) { - return value2 !== value2; - } - function baseMean(array, iteratee) { - var length5 = array == null ? 0 : array.length; - return length5 ? baseSum(array, iteratee) / length5 : NAN; - } - function baseProperty(key) { - return function(object) { - return object == null ? undefined2 : object[key]; - }; - } - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined2 : object[key]; - }; - } - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value2, index2, collection2) { - accumulator = initAccum ? (initAccum = false, value2) : iteratee(accumulator, value2, index2, collection2); - }); - return accumulator; - } - function baseSortBy(array, comparer) { - var length5 = array.length; - array.sort(comparer); - while (length5--) { - array[length5] = array[length5].value; - } - return array; - } - function baseSum(array, iteratee) { - var result, index2 = -1, length5 = array.length; - while (++index2 < length5) { - var current = iteratee(array[index2]); - if (current !== undefined2) { - result = result === undefined2 ? current : result + current; - } - } - return result; - } - function baseTimes(n3, iteratee) { - var index2 = -1, result = Array(n3); - while (++index2 < n3) { - result[index2] = iteratee(index2); - } - return result; - } - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); - } - function baseTrim(string) { - return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; - } - function baseUnary(func) { - return function(value2) { - return func(value2); - }; - } - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - function cacheHas(cache3, key) { - return cache3.has(key); - } - function charsStartIndex(strSymbols, chrSymbols) { - var index2 = -1, length5 = strSymbols.length; - while (++index2 < length5 && baseIndexOf(chrSymbols, strSymbols[index2], 0) > -1) { - } - return index2; - } - function charsEndIndex(strSymbols, chrSymbols) { - var index2 = strSymbols.length; - while (index2-- && baseIndexOf(chrSymbols, strSymbols[index2], 0) > -1) { - } - return index2; - } - function countHolders(array, placeholder) { - var length5 = array.length, result = 0; - while (length5--) { - if (array[length5] === placeholder) { - ++result; - } - } - return result; - } - var deburrLetter = basePropertyOf(deburredLetters); - var escapeHtmlChar = basePropertyOf(htmlEscapes); - function escapeStringChar(chr) { - return "\\" + stringEscapes[chr]; - } - function getValue3(object, key) { - return object == null ? undefined2 : object[key]; - } - function hasUnicode(string) { - return reHasUnicode.test(string); - } - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - function iteratorToArray(iterator) { - var data3, result = []; - while (!(data3 = iterator.next()).done) { - result.push(data3.value); - } - return result; - } - function mapToArray(map6) { - var index2 = -1, result = Array(map6.size); - map6.forEach(function(value2, key) { - result[++index2] = [key, value2]; - }); - return result; - } - function overArg(func, transform18) { - return function(arg) { - return func(transform18(arg)); - }; - } - function replaceHolders(array, placeholder) { - var index2 = -1, length5 = array.length, resIndex = 0, result = []; - while (++index2 < length5) { - var value2 = array[index2]; - if (value2 === placeholder || value2 === PLACEHOLDER) { - array[index2] = PLACEHOLDER; - result[resIndex++] = index2; - } - } - return result; - } - function setToArray(set10) { - var index2 = -1, result = Array(set10.size); - set10.forEach(function(value2) { - result[++index2] = value2; - }); - return result; - } - function setToPairs(set10) { - var index2 = -1, result = Array(set10.size); - set10.forEach(function(value2) { - result[++index2] = [value2, value2]; - }); - return result; - } - function strictIndexOf(array, value2, fromIndex) { - var index2 = fromIndex - 1, length5 = array.length; - while (++index2 < length5) { - if (array[index2] === value2) { - return index2; - } - } - return -1; - } - function strictLastIndexOf(array, value2, fromIndex) { - var index2 = fromIndex + 1; - while (index2--) { - if (array[index2] === value2) { - return index2; - } - } - return index2; - } - function stringSize(string) { - return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); - } - function stringToArray(string) { - return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); - } - function trimmedEndIndex(string) { - var index2 = string.length; - while (index2-- && reWhitespace.test(string.charAt(index2))) { - } - return index2; - } - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - var runInContext = function runInContext2(context) { - context = context == null ? root : _8.defaults(root.Object(), context, _8.pick(root, contextProps)); - var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError; - var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto5 = Object2.prototype; - var coreJsData = context["__core-js_shared__"]; - var funcToString = funcProto.toString; - var hasOwnProperty4 = objectProto5.hasOwnProperty; - var idCounter = 0; - var maskSrcKey = function() { - var uid2 = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); - return uid2 ? "Symbol(src)_1." + uid2 : ""; - }(); - var nativeObjectToString = objectProto5.toString; - var objectCtorString = funcToString.call(Object2); - var oldDash = root._; - var reIsNative = RegExp2("^" + funcToString.call(hasOwnProperty4).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); - var Buffer3 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer3 ? Buffer3.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto5.propertyIsEnumerable, splice3 = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; - var defineProperty = function() { - try { - var func = getNative(Object2, "defineProperty"); - func({}, "", {}); - return func; - } catch (e4) { - } - }(); - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer3 ? Buffer3.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; - var DataView2 = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); - var metaMap = WeakMap2 && new WeakMap2(); - var realNames = {}; - var dataViewCtorString = toSource(DataView2), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); - var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; - function lodash(value2) { - if (isObjectLike6(value2) && !isArray3(value2) && !(value2 instanceof LazyWrapper)) { - if (value2 instanceof LodashWrapper) { - return value2; - } - if (hasOwnProperty4.call(value2, "__wrapped__")) { - return wrapperClone(value2); - } - } - return new LodashWrapper(value2); - } - var baseCreate = function() { - function object() { - } - return function(proto) { - if (!isObject4(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result2 = new object(); - object.prototype = undefined2; - return result2; - }; - }(); - function baseLodash() { - } - function LodashWrapper(value2, chainAll) { - this.__wrapped__ = value2; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined2; - } - lodash.templateSettings = { - "escape": reEscape, - "evaluate": reEvaluate, - "interpolate": reInterpolate, - "variable": "", - "imports": { - "_": lodash - } - }; - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - function LazyWrapper(value2) { - this.__wrapped__ = value2; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - function lazyClone() { - var result2 = new LazyWrapper(this.__wrapped__); - result2.__actions__ = copyArray(this.__actions__); - result2.__dir__ = this.__dir__; - result2.__filtered__ = this.__filtered__; - result2.__iteratees__ = copyArray(this.__iteratees__); - result2.__takeCount__ = this.__takeCount__; - result2.__views__ = copyArray(this.__views__); - return result2; - } - function lazyReverse() { - if (this.__filtered__) { - var result2 = new LazyWrapper(this); - result2.__dir__ = -1; - result2.__filtered__ = true; - } else { - result2 = this.clone(); - result2.__dir__ *= -1; - } - return result2; - } - function lazyValue() { - var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray3(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end2 = view.end, length5 = end2 - start, index2 = isRight ? end2 : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length5, this.__takeCount__); - if (!isArr || !isRight && arrLength == length5 && takeCount == length5) { - return baseWrapperValue(array, this.__actions__); - } - var result2 = []; - outer: - while (length5-- && resIndex < takeCount) { - index2 += dir; - var iterIndex = -1, value2 = array[index2]; - while (++iterIndex < iterLength) { - var data3 = iteratees[iterIndex], iteratee2 = data3.iteratee, type2 = data3.type, computed = iteratee2(value2); - if (type2 == LAZY_MAP_FLAG) { - value2 = computed; - } else if (!computed) { - if (type2 == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result2[resIndex++] = value2; - } - return result2; - } - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - function Hash(entries) { - var index2 = -1, length5 = entries == null ? 0 : entries.length; - this.clear(); - while (++index2 < length5) { - var entry = entries[index2]; - this.set(entry[0], entry[1]); - } - } - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - function hashDelete(key) { - var result2 = this.has(key) && delete this.__data__[key]; - this.size -= result2 ? 1 : 0; - return result2; - } - function hashGet(key) { - var data3 = this.__data__; - if (nativeCreate) { - var result2 = data3[key]; - return result2 === HASH_UNDEFINED ? undefined2 : result2; - } - return hasOwnProperty4.call(data3, key) ? data3[key] : undefined2; - } - function hashHas(key) { - var data3 = this.__data__; - return nativeCreate ? data3[key] !== undefined2 : hasOwnProperty4.call(data3, key); - } - function hashSet(key, value2) { - var data3 = this.__data__; - this.size += this.has(key) ? 0 : 1; - data3[key] = nativeCreate && value2 === undefined2 ? HASH_UNDEFINED : value2; - return this; - } - Hash.prototype.clear = hashClear; - Hash.prototype["delete"] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - function ListCache(entries) { - var index2 = -1, length5 = entries == null ? 0 : entries.length; - this.clear(); - while (++index2 < length5) { - var entry = entries[index2]; - this.set(entry[0], entry[1]); - } - } - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - function listCacheDelete(key) { - var data3 = this.__data__, index2 = assocIndexOf(data3, key); - if (index2 < 0) { - return false; - } - var lastIndex = data3.length - 1; - if (index2 == lastIndex) { - data3.pop(); - } else { - splice3.call(data3, index2, 1); - } - --this.size; - return true; - } - function listCacheGet(key) { - var data3 = this.__data__, index2 = assocIndexOf(data3, key); - return index2 < 0 ? undefined2 : data3[index2][1]; - } - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - function listCacheSet(key, value2) { - var data3 = this.__data__, index2 = assocIndexOf(data3, key); - if (index2 < 0) { - ++this.size; - data3.push([key, value2]); - } else { - data3[index2][1] = value2; - } - return this; - } - ListCache.prototype.clear = listCacheClear; - ListCache.prototype["delete"] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - function MapCache(entries) { - var index2 = -1, length5 = entries == null ? 0 : entries.length; - this.clear(); - while (++index2 < length5) { - var entry = entries[index2]; - this.set(entry[0], entry[1]); - } - } - function mapCacheClear() { - this.size = 0; - this.__data__ = { - "hash": new Hash(), - "map": new (Map2 || ListCache)(), - "string": new Hash() - }; - } - function mapCacheDelete(key) { - var result2 = getMapData(this, key)["delete"](key); - this.size -= result2 ? 1 : 0; - return result2; - } - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - function mapCacheSet(key, value2) { - var data3 = getMapData(this, key), size3 = data3.size; - data3.set(key, value2); - this.size += data3.size == size3 ? 0 : 1; - return this; - } - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype["delete"] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - function SetCache(values3) { - var index2 = -1, length5 = values3 == null ? 0 : values3.length; - this.__data__ = new MapCache(); - while (++index2 < length5) { - this.add(values3[index2]); - } - } - function setCacheAdd(value2) { - this.__data__.set(value2, HASH_UNDEFINED); - return this; - } - function setCacheHas(value2) { - return this.__data__.has(value2); - } - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - function Stack3(entries) { - var data3 = this.__data__ = new ListCache(entries); - this.size = data3.size; - } - function stackClear() { - this.__data__ = new ListCache(); - this.size = 0; - } - function stackDelete(key) { - var data3 = this.__data__, result2 = data3["delete"](key); - this.size = data3.size; - return result2; - } - function stackGet(key) { - return this.__data__.get(key); - } - function stackHas(key) { - return this.__data__.has(key); - } - function stackSet(key, value2) { - var data3 = this.__data__; - if (data3 instanceof ListCache) { - var pairs2 = data3.__data__; - if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1) { - pairs2.push([key, value2]); - this.size = ++data3.size; - return this; - } - data3 = this.__data__ = new MapCache(pairs2); - } - data3.set(key, value2); - this.size = data3.size; - return this; - } - Stack3.prototype.clear = stackClear; - Stack3.prototype["delete"] = stackDelete; - Stack3.prototype.get = stackGet; - Stack3.prototype.has = stackHas; - Stack3.prototype.set = stackSet; - function arrayLikeKeys(value2, inherited) { - var isArr = isArray3(value2), isArg = !isArr && isArguments(value2), isBuff = !isArr && !isArg && isBuffer(value2), isType6 = !isArr && !isArg && !isBuff && isTypedArray4(value2), skipIndexes = isArr || isArg || isBuff || isType6, result2 = skipIndexes ? baseTimes(value2.length, String2) : [], length5 = result2.length; - for (var key in value2) { - if ((inherited || hasOwnProperty4.call(value2, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType6 && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length5)))) { - result2.push(key); - } - } - return result2; - } - function arraySample(array) { - var length5 = array.length; - return length5 ? array[baseRandom(0, length5 - 1)] : undefined2; - } - function arraySampleSize(array, n3) { - return shuffleSelf(copyArray(array), baseClamp(n3, 0, array.length)); - } - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - function assignMergeValue(object, key, value2) { - if (value2 !== undefined2 && !eq(object[key], value2) || value2 === undefined2 && !(key in object)) { - baseAssignValue(object, key, value2); - } - } - function assignValue(object, key, value2) { - var objValue = object[key]; - if (!(hasOwnProperty4.call(object, key) && eq(objValue, value2)) || value2 === undefined2 && !(key in object)) { - baseAssignValue(object, key, value2); - } - } - function assocIndexOf(array, key) { - var length5 = array.length; - while (length5--) { - if (eq(array[length5][0], key)) { - return length5; - } - } - return -1; - } - function baseAggregator(collection, setter, iteratee2, accumulator) { - baseEach(collection, function(value2, key, collection2) { - setter(accumulator, value2, iteratee2(value2), collection2); - }); - return accumulator; - } - function baseAssign(object, source) { - return object && copyObject(source, keys2(source), object); - } - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - function baseAssignValue(object, key, value2) { - if (key == "__proto__" && defineProperty) { - defineProperty(object, key, { - "configurable": true, - "enumerable": true, - "value": value2, - "writable": true - }); - } else { - object[key] = value2; - } - } - function baseAt(object, paths) { - var index2 = -1, length5 = paths.length, result2 = Array2(length5), skip = object == null; - while (++index2 < length5) { - result2[index2] = skip ? undefined2 : get3(object, paths[index2]); - } - return result2; - } - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined2) { - number = number <= upper ? number : upper; - } - if (lower !== undefined2) { - number = number >= lower ? number : lower; - } - } - return number; - } - function baseClone(value2, bitmask, customizer, key, object, stack) { - var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; - if (customizer) { - result2 = object ? customizer(value2, key, object, stack) : customizer(value2); - } - if (result2 !== undefined2) { - return result2; - } - if (!isObject4(value2)) { - return value2; - } - var isArr = isArray3(value2); - if (isArr) { - result2 = initCloneArray(value2); - if (!isDeep) { - return copyArray(value2, result2); - } - } else { - var tag = getTag(value2), isFunc = tag == funcTag4 || tag == genTag; - if (isBuffer(value2)) { - return cloneBuffer(value2, isDeep); - } - if (tag == objectTag4 || tag == argsTag4 || isFunc && !object) { - result2 = isFlat || isFunc ? {} : initCloneObject(value2); - if (!isDeep) { - return isFlat ? copySymbolsIn(value2, baseAssignIn(result2, value2)) : copySymbols(value2, baseAssign(result2, value2)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value2 : {}; - } - result2 = initCloneByTag(value2, tag, isDeep); - } - } - stack || (stack = new Stack3()); - var stacked = stack.get(value2); - if (stacked) { - return stacked; - } - stack.set(value2, result2); - if (isSet(value2)) { - value2.forEach(function(subValue) { - result2.add(baseClone(subValue, bitmask, customizer, subValue, value2, stack)); - }); - } else if (isMap(value2)) { - value2.forEach(function(subValue, key2) { - result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value2, stack)); - }); - } - var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys2; - var props = isArr ? undefined2 : keysFunc(value2); - arrayEach(props || value2, function(subValue, key2) { - if (props) { - key2 = subValue; - subValue = value2[key2]; - } - assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value2, stack)); - }); - return result2; - } - function baseConforms(source) { - var props = keys2(source); - return function(object) { - return baseConformsTo(object, source, props); - }; - } - function baseConformsTo(object, source, props) { - var length5 = props.length; - if (object == null) { - return !length5; - } - object = Object2(object); - while (length5--) { - var key = props[length5], predicate = source[key], value2 = object[key]; - if (value2 === undefined2 && !(key in object) || !predicate(value2)) { - return false; - } - } - return true; - } - function baseDelay(func, wait, args) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return setTimeout2(function() { - func.apply(undefined2, args); - }, wait); - } - function baseDifference(array, values3, iteratee2, comparator) { - var index2 = -1, includes2 = arrayIncludes, isCommon = true, length5 = array.length, result2 = [], valuesLength = values3.length; - if (!length5) { - return result2; - } - if (iteratee2) { - values3 = arrayMap(values3, baseUnary(iteratee2)); - } - if (comparator) { - includes2 = arrayIncludesWith; - isCommon = false; - } else if (values3.length >= LARGE_ARRAY_SIZE) { - includes2 = cacheHas; - isCommon = false; - values3 = new SetCache(values3); - } - outer: - while (++index2 < length5) { - var value2 = array[index2], computed = iteratee2 == null ? value2 : iteratee2(value2); - value2 = comparator || value2 !== 0 ? value2 : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values3[valuesIndex] === computed) { - continue outer; - } - } - result2.push(value2); - } else if (!includes2(values3, computed, comparator)) { - result2.push(value2); - } - } - return result2; - } - var baseEach = createBaseEach(baseForOwn); - var baseEachRight = createBaseEach(baseForOwnRight, true); - function baseEvery(collection, predicate) { - var result2 = true; - baseEach(collection, function(value2, index2, collection2) { - result2 = !!predicate(value2, index2, collection2); - return result2; - }); - return result2; - } - function baseExtremum(array, iteratee2, comparator) { - var index2 = -1, length5 = array.length; - while (++index2 < length5) { - var value2 = array[index2], current = iteratee2(value2); - if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) { - var computed = current, result2 = value2; - } - } - return result2; - } - function baseFill(array, value2, start, end2) { - var length5 = array.length; - start = toInteger(start); - if (start < 0) { - start = -start > length5 ? 0 : length5 + start; - } - end2 = end2 === undefined2 || end2 > length5 ? length5 : toInteger(end2); - if (end2 < 0) { - end2 += length5; - } - end2 = start > end2 ? 0 : toLength(end2); - while (start < end2) { - array[start++] = value2; - } - return array; - } - function baseFilter(collection, predicate) { - var result2 = []; - baseEach(collection, function(value2, index2, collection2) { - if (predicate(value2, index2, collection2)) { - result2.push(value2); - } - }); - return result2; - } - function baseFlatten(array, depth, predicate, isStrict, result2) { - var index2 = -1, length5 = array.length; - predicate || (predicate = isFlattenable); - result2 || (result2 = []); - while (++index2 < length5) { - var value2 = array[index2]; - if (depth > 0 && predicate(value2)) { - if (depth > 1) { - baseFlatten(value2, depth - 1, predicate, isStrict, result2); - } else { - arrayPush(result2, value2); - } - } else if (!isStrict) { - result2[result2.length] = value2; - } - } - return result2; - } - var baseFor = createBaseFor(); - var baseForRight = createBaseFor(true); - function baseForOwn(object, iteratee2) { - return object && baseFor(object, iteratee2, keys2); - } - function baseForOwnRight(object, iteratee2) { - return object && baseForRight(object, iteratee2, keys2); - } - function baseFunctions(object, props) { - return arrayFilter(props, function(key) { - return isFunction2(object[key]); - }); - } - function baseGet(object, path) { - path = castPath(path, object); - var index2 = 0, length5 = path.length; - while (object != null && index2 < length5) { - object = object[toKey(path[index2++])]; - } - return index2 && index2 == length5 ? object : undefined2; - } - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result2 = keysFunc(object); - return isArray3(object) ? result2 : arrayPush(result2, symbolsFunc(object)); - } - function baseGetTag(value2) { - if (value2 == null) { - return value2 === undefined2 ? undefinedTag : nullTag; - } - return symToStringTag && symToStringTag in Object2(value2) ? getRawTag(value2) : objectToString4(value2); - } - function baseGt(value2, other2) { - return value2 > other2; - } - function baseHas(object, key) { - return object != null && hasOwnProperty4.call(object, key); - } - function baseHasIn(object, key) { - return object != null && key in Object2(object); - } - function baseInRange(number, start, end2) { - return number >= nativeMin(start, end2) && number < nativeMax(start, end2); - } - function baseIntersection(arrays, iteratee2, comparator) { - var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length5 = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee2) { - array = arrayMap(array, baseUnary(iteratee2)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee2 || length5 >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; - } - array = arrays[0]; - var index2 = -1, seen = caches[0]; - outer: - while (++index2 < length5 && result2.length < maxLength) { - var value2 = array[index2], computed = iteratee2 ? iteratee2(value2) : value2; - value2 = comparator || value2 !== 0 ? value2 : 0; - if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { - othIndex = othLength; - while (--othIndex) { - var cache3 = caches[othIndex]; - if (!(cache3 ? cacheHas(cache3, computed) : includes2(arrays[othIndex], computed, comparator))) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result2.push(value2); - } - } - return result2; - } - function baseInverter(object, setter, iteratee2, accumulator) { - baseForOwn(object, function(value2, key, object2) { - setter(accumulator, iteratee2(value2), key, object2); - }); - return accumulator; - } - function baseInvoke(object, path, args) { - path = castPath(path, object); - object = parent(object, path); - var func = object == null ? object : object[toKey(last2(path))]; - return func == null ? undefined2 : apply(func, object, args); - } - function baseIsArguments(value2) { - return isObjectLike6(value2) && baseGetTag(value2) == argsTag4; - } - function baseIsArrayBuffer(value2) { - return isObjectLike6(value2) && baseGetTag(value2) == arrayBufferTag4; - } - function baseIsDate(value2) { - return isObjectLike6(value2) && baseGetTag(value2) == dateTag4; - } - function baseIsEqual(value2, other2, bitmask, customizer, stack) { - if (value2 === other2) { - return true; - } - if (value2 == null || other2 == null || !isObjectLike6(value2) && !isObjectLike6(other2)) { - return value2 !== value2 && other2 !== other2; - } - return baseIsEqualDeep(value2, other2, bitmask, customizer, baseIsEqual, stack); - } - function baseIsEqualDeep(object, other2, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray3(object), othIsArr = isArray3(other2), objTag = objIsArr ? arrayTag4 : getTag(object), othTag = othIsArr ? arrayTag4 : getTag(other2); - objTag = objTag == argsTag4 ? objectTag4 : objTag; - othTag = othTag == argsTag4 ? objectTag4 : othTag; - var objIsObj = objTag == objectTag4, othIsObj = othTag == objectTag4, isSameTag = objTag == othTag; - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other2)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack3()); - return objIsArr || isTypedArray4(object) ? equalArrays(object, other2, bitmask, customizer, equalFunc, stack) : equalByTag(object, other2, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty4.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty4.call(other2, "__wrapped__"); - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other2.value() : other2; - stack || (stack = new Stack3()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack3()); - return equalObjects(object, other2, bitmask, customizer, equalFunc, stack); - } - function baseIsMap(value2) { - return isObjectLike6(value2) && getTag(value2) == mapTag4; - } - function baseIsMatch(object, source, matchData, customizer) { - var index2 = matchData.length, length5 = index2, noCustomizer = !customizer; - if (object == null) { - return !length5; - } - object = Object2(object); - while (index2--) { - var data3 = matchData[index2]; - if (noCustomizer && data3[2] ? data3[1] !== object[data3[0]] : !(data3[0] in object)) { - return false; - } - } - while (++index2 < length5) { - data3 = matchData[index2]; - var key = data3[0], objValue = object[key], srcValue = data3[1]; - if (noCustomizer && data3[2]) { - if (objValue === undefined2 && !(key in object)) { - return false; - } - } else { - var stack = new Stack3(); - if (customizer) { - var result2 = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { - return false; - } - } - } - return true; - } - function baseIsNative(value2) { - if (!isObject4(value2) || isMasked(value2)) { - return false; - } - var pattern2 = isFunction2(value2) ? reIsNative : reIsHostCtor; - return pattern2.test(toSource(value2)); - } - function baseIsRegExp(value2) { - return isObjectLike6(value2) && baseGetTag(value2) == regexpTag4; - } - function baseIsSet(value2) { - return isObjectLike6(value2) && getTag(value2) == setTag5; - } - function baseIsTypedArray4(value2) { - return isObjectLike6(value2) && isLength4(value2.length) && !!typedArrayTags4[baseGetTag(value2)]; - } - function baseIteratee(value2) { - if (typeof value2 == "function") { - return value2; - } - if (value2 == null) { - return identity5; - } - if (typeof value2 == "object") { - return isArray3(value2) ? baseMatchesProperty(value2[0], value2[1]) : baseMatches(value2); - } - return property(value2); - } - function baseKeys(object) { - if (!isPrototype2(object)) { - return nativeKeys(object); - } - var result2 = []; - for (var key in Object2(object)) { - if (hasOwnProperty4.call(object, key) && key != "constructor") { - result2.push(key); - } - } - return result2; - } - function baseKeysIn(object) { - if (!isObject4(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype2(object), result2 = []; - for (var key in object) { - if (!(key == "constructor" && (isProto || !hasOwnProperty4.call(object, key)))) { - result2.push(key); - } - } - return result2; - } - function baseLt(value2, other2) { - return value2 < other2; - } - function baseMap(collection, iteratee2) { - var index2 = -1, result2 = isArrayLike2(collection) ? Array2(collection.length) : []; - baseEach(collection, function(value2, key, collection2) { - result2[++index2] = iteratee2(value2, key, collection2); - }); - return result2; - } - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get3(object, path); - return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function(srcValue, key) { - stack || (stack = new Stack3()); - if (isObject4(srcValue)) { - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } else { - var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; - if (newValue === undefined2) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; - var isCommon = newValue === undefined2; - if (isCommon) { - var isArr = isArray3(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray4(srcValue); - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray3(objValue)) { - newValue = objValue; - } else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } else { - newValue = []; - } - } else if (isPlainObject3(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } else if (!isObject4(objValue) || isFunction2(objValue)) { - newValue = initCloneObject(srcValue); - } - } else { - isCommon = false; - } - } - if (isCommon) { - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack["delete"](srcValue); - } - assignMergeValue(object, key, newValue); - } - function baseNth(array, n3) { - var length5 = array.length; - if (!length5) { - return; - } - n3 += n3 < 0 ? length5 : 0; - return isIndex(n3, length5) ? array[n3] : undefined2; - } - function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap(iteratees, function(iteratee2) { - if (isArray3(iteratee2)) { - return function(value2) { - return baseGet(value2, iteratee2.length === 1 ? iteratee2[0] : iteratee2); - }; - } - return iteratee2; - }); - } else { - iteratees = [identity5]; - } - var index2 = -1; - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - var result2 = baseMap(collection, function(value2, key, collection2) { - var criteria = arrayMap(iteratees, function(iteratee2) { - return iteratee2(value2); - }); - return { "criteria": criteria, "index": ++index2, "value": value2 }; - }); - return baseSortBy(result2, function(object, other2) { - return compareMultiple(object, other2, orders); - }); - } - function basePick(object, paths) { - return basePickBy(object, paths, function(value2, path) { - return hasIn(object, path); - }); - } - function basePickBy(object, paths, predicate) { - var index2 = -1, length5 = paths.length, result2 = {}; - while (++index2 < length5) { - var path = paths[index2], value2 = baseGet(object, path); - if (predicate(value2, path)) { - baseSet(result2, castPath(path, object), value2); - } - } - return result2; - } - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } - function basePullAll(array, values3, iteratee2, comparator) { - var indexOf4 = comparator ? baseIndexOfWith : baseIndexOf, index2 = -1, length5 = values3.length, seen = array; - if (array === values3) { - values3 = copyArray(values3); - } - if (iteratee2) { - seen = arrayMap(array, baseUnary(iteratee2)); - } - while (++index2 < length5) { - var fromIndex = 0, value2 = values3[index2], computed = iteratee2 ? iteratee2(value2) : value2; - while ((fromIndex = indexOf4(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice3.call(seen, fromIndex, 1); - } - splice3.call(array, fromIndex, 1); - } - } - return array; - } - function basePullAt(array, indexes) { - var length5 = array ? indexes.length : 0, lastIndex = length5 - 1; - while (length5--) { - var index2 = indexes[length5]; - if (length5 == lastIndex || index2 !== previous) { - var previous = index2; - if (isIndex(index2)) { - splice3.call(array, index2, 1); - } else { - baseUnset(array, index2); - } - } - } - return array; - } - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - function baseRange(start, end2, step, fromRight) { - var index2 = -1, length5 = nativeMax(nativeCeil((end2 - start) / (step || 1)), 0), result2 = Array2(length5); - while (length5--) { - result2[fromRight ? length5 : ++index2] = start; - start += step; - } - return result2; - } - function baseRepeat(string, n3) { - var result2 = ""; - if (!string || n3 < 1 || n3 > MAX_SAFE_INTEGER4) { - return result2; - } - do { - if (n3 % 2) { - result2 += string; - } - n3 = nativeFloor(n3 / 2); - if (n3) { - string += string; - } - } while (n3); - return result2; - } - function baseRest(func, start) { - return setToString(overRest(func, start, identity5), func + ""); - } - function baseSample(collection) { - return arraySample(values2(collection)); - } - function baseSampleSize(collection, n3) { - var array = values2(collection); - return shuffleSelf(array, baseClamp(n3, 0, array.length)); - } - function baseSet(object, path, value2, customizer) { - if (!isObject4(object)) { - return object; - } - path = castPath(path, object); - var index2 = -1, length5 = path.length, lastIndex = length5 - 1, nested = object; - while (nested != null && ++index2 < length5) { - var key = toKey(path[index2]), newValue = value2; - if (key === "__proto__" || key === "constructor" || key === "prototype") { - return object; - } - if (index2 != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined2; - if (newValue === undefined2) { - newValue = isObject4(objValue) ? objValue : isIndex(path[index2 + 1]) ? [] : {}; - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - var baseSetData = !metaMap ? identity5 : function(func, data3) { - metaMap.set(func, data3); - return func; - }; - var baseSetToString = !defineProperty ? identity5 : function(func, string) { - return defineProperty(func, "toString", { - "configurable": true, - "enumerable": false, - "value": constant2(string), - "writable": true - }); - }; - function baseShuffle(collection) { - return shuffleSelf(values2(collection)); - } - function baseSlice(array, start, end2) { - var index2 = -1, length5 = array.length; - if (start < 0) { - start = -start > length5 ? 0 : length5 + start; - } - end2 = end2 > length5 ? length5 : end2; - if (end2 < 0) { - end2 += length5; - } - length5 = start > end2 ? 0 : end2 - start >>> 0; - start >>>= 0; - var result2 = Array2(length5); - while (++index2 < length5) { - result2[index2] = array[index2 + start]; - } - return result2; - } - function baseSome(collection, predicate) { - var result2; - baseEach(collection, function(value2, index2, collection2) { - result2 = predicate(value2, index2, collection2); - return !result2; - }); - return !!result2; - } - function baseSortedIndex(array, value2, retHighest) { - var low = 0, high = array == null ? low : array.length; - if (typeof value2 == "number" && value2 === value2 && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid2 = low + high >>> 1, computed = array[mid2]; - if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value2 : computed < value2)) { - low = mid2 + 1; - } else { - high = mid2; - } - } - return high; - } - return baseSortedIndexBy(array, value2, identity5, retHighest); - } - function baseSortedIndexBy(array, value2, iteratee2, retHighest) { - var low = 0, high = array == null ? 0 : array.length; - if (high === 0) { - return 0; - } - value2 = iteratee2(value2); - var valIsNaN = value2 !== value2, valIsNull = value2 === null, valIsSymbol = isSymbol(value2), valIsUndefined = value2 === undefined2; - while (low < high) { - var mid2 = nativeFloor((low + high) / 2), computed = iteratee2(array[mid2]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? computed <= value2 : computed < value2; - } - if (setLow) { - low = mid2 + 1; - } else { - high = mid2; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - function baseSortedUniq(array, iteratee2) { - var index2 = -1, length5 = array.length, resIndex = 0, result2 = []; - while (++index2 < length5) { - var value2 = array[index2], computed = iteratee2 ? iteratee2(value2) : value2; - if (!index2 || !eq(computed, seen)) { - var seen = computed; - result2[resIndex++] = value2 === 0 ? 0 : value2; - } - } - return result2; - } - function baseToNumber(value2) { - if (typeof value2 == "number") { - return value2; - } - if (isSymbol(value2)) { - return NAN; - } - return +value2; - } - function baseToString(value2) { - if (typeof value2 == "string") { - return value2; - } - if (isArray3(value2)) { - return arrayMap(value2, baseToString) + ""; - } - if (isSymbol(value2)) { - return symbolToString ? symbolToString.call(value2) : ""; - } - var result2 = value2 + ""; - return result2 == "0" && 1 / value2 == -INFINITY ? "-0" : result2; - } - function baseUniq(array, iteratee2, comparator) { - var index2 = -1, includes2 = arrayIncludes, length5 = array.length, isCommon = true, result2 = [], seen = result2; - if (comparator) { - isCommon = false; - includes2 = arrayIncludesWith; - } else if (length5 >= LARGE_ARRAY_SIZE) { - var set11 = iteratee2 ? null : createSet(array); - if (set11) { - return setToArray(set11); - } - isCommon = false; - includes2 = cacheHas; - seen = new SetCache(); - } else { - seen = iteratee2 ? [] : result2; - } - outer: - while (++index2 < length5) { - var value2 = array[index2], computed = iteratee2 ? iteratee2(value2) : value2; - value2 = comparator || value2 !== 0 ? value2 : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee2) { - seen.push(computed); - } - result2.push(value2); - } else if (!includes2(seen, computed, comparator)) { - if (seen !== result2) { - seen.push(computed); - } - result2.push(value2); - } - } - return result2; - } - function baseUnset(object, path) { - path = castPath(path, object); - object = parent(object, path); - return object == null || delete object[toKey(last2(path))]; - } - function baseUpdate2(object, path, updater, customizer) { - return baseSet(object, path, updater(baseGet(object, path)), customizer); - } - function baseWhile(array, predicate, isDrop, fromRight) { - var length5 = array.length, index2 = fromRight ? length5 : -1; - while ((fromRight ? index2-- : ++index2 < length5) && predicate(array[index2], index2, array)) { - } - return isDrop ? baseSlice(array, fromRight ? 0 : index2, fromRight ? index2 + 1 : length5) : baseSlice(array, fromRight ? index2 + 1 : 0, fromRight ? length5 : index2); - } - function baseWrapperValue(value2, actions) { - var result2 = value2; - if (result2 instanceof LazyWrapper) { - result2 = result2.value(); - } - return arrayReduce(actions, function(result3, action) { - return action.func.apply(action.thisArg, arrayPush([result3], action.args)); - }, result2); - } - function baseXor(arrays, iteratee2, comparator) { - var length5 = arrays.length; - if (length5 < 2) { - return length5 ? baseUniq(arrays[0]) : []; - } - var index2 = -1, result2 = Array2(length5); - while (++index2 < length5) { - var array = arrays[index2], othIndex = -1; - while (++othIndex < length5) { - if (othIndex != index2) { - result2[index2] = baseDifference(result2[index2] || array, arrays[othIndex], iteratee2, comparator); - } - } - } - return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); - } - function baseZipObject(props, values3, assignFunc) { - var index2 = -1, length5 = props.length, valsLength = values3.length, result2 = {}; - while (++index2 < length5) { - var value2 = index2 < valsLength ? values3[index2] : undefined2; - assignFunc(result2, props[index2], value2); - } - return result2; - } - function castArrayLikeObject(value2) { - return isArrayLikeObject(value2) ? value2 : []; - } - function castFunction(value2) { - return typeof value2 == "function" ? value2 : identity5; - } - function castPath(value2, object) { - if (isArray3(value2)) { - return value2; - } - return isKey(value2, object) ? [value2] : stringToPath(toString7(value2)); - } - var castRest = baseRest; - function castSlice(array, start, end2) { - var length5 = array.length; - end2 = end2 === undefined2 ? length5 : end2; - return !start && end2 >= length5 ? array : baseSlice(array, start, end2); - } - var clearTimeout2 = ctxClearTimeout || function(id) { - return root.clearTimeout(id); - }; - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length5 = buffer.length, result2 = allocUnsafe ? allocUnsafe(length5) : new buffer.constructor(length5); - buffer.copy(result2); - return result2; - } - function cloneArrayBuffer(arrayBuffer) { - var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); - return result2; - } - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - function cloneRegExp(regexp) { - var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result2.lastIndex = regexp.lastIndex; - return result2; - } - function cloneSymbol(symbol) { - return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; - } - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - function compareAscending(value2, other2) { - if (value2 !== other2) { - var valIsDefined = value2 !== undefined2, valIsNull = value2 === null, valIsReflexive = value2 === value2, valIsSymbol = isSymbol(value2); - var othIsDefined = other2 !== undefined2, othIsNull = other2 === null, othIsReflexive = other2 === other2, othIsSymbol = isSymbol(other2); - if (!othIsNull && !othIsSymbol && !valIsSymbol && value2 > other2 || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { - return 1; - } - if (!valIsNull && !valIsSymbol && !othIsSymbol && value2 < other2 || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { - return -1; - } - } - return 0; - } - function compareMultiple(object, other2, orders) { - var index2 = -1, objCriteria = object.criteria, othCriteria = other2.criteria, length5 = objCriteria.length, ordersLength = orders.length; - while (++index2 < length5) { - var result2 = compareAscending(objCriteria[index2], othCriteria[index2]); - if (result2) { - if (index2 >= ordersLength) { - return result2; - } - var order2 = orders[index2]; - return result2 * (order2 == "desc" ? -1 : 1); - } - } - return object.index - other2.index; - } - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; - while (++leftIndex < leftLength) { - result2[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result2[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result2[leftIndex++] = args[argsIndex++]; - } - return result2; - } - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; - while (++argsIndex < rangeLength) { - result2[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result2[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result2[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result2; - } - function copyArray(source, array) { - var index2 = -1, length5 = source.length; - array || (array = Array2(length5)); - while (++index2 < length5) { - array[index2] = source[index2]; - } - return array; - } - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - var index2 = -1, length5 = props.length; - while (++index2 < length5) { - var key = props[index2]; - var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; - if (newValue === undefined2) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - function createAggregator(setter, initializer) { - return function(collection, iteratee2) { - var func = isArray3(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; - return func(collection, setter, getIteratee(iteratee2, 2), accumulator); - }; - } - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index2 = -1, length5 = sources.length, customizer = length5 > 1 ? sources[length5 - 1] : undefined2, guard = length5 > 2 ? sources[2] : undefined2; - customizer = assigner.length > 3 && typeof customizer == "function" ? (length5--, customizer) : undefined2; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length5 < 3 ? undefined2 : customizer; - length5 = 1; - } - object = Object2(object); - while (++index2 < length5) { - var source = sources[index2]; - if (source) { - assigner(object, source, index2, customizer); - } - } - return object; - }); - } - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee2) { - if (collection == null) { - return collection; - } - if (!isArrayLike2(collection)) { - return eachFunc(collection, iteratee2); - } - var length5 = collection.length, index2 = fromRight ? length5 : -1, iterable = Object2(collection); - while (fromRight ? index2-- : ++index2 < length5) { - if (iteratee2(iterable[index2], index2, iterable) === false) { - break; - } - } - return collection; - }; - } - function createBaseFor(fromRight) { - return function(object, iteratee2, keysFunc) { - var index2 = -1, iterable = Object2(object), props = keysFunc(object), length5 = props.length; - while (length5--) { - var key = props[fromRight ? length5 : ++index2]; - if (iteratee2(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); - function wrapper() { - var fn2 = this && this !== root && this instanceof wrapper ? Ctor : func; - return fn2.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - function createCaseFirst(methodName) { - return function(string) { - string = toString7(string); - var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2; - var chr = strSymbols ? strSymbols[0] : string.charAt(0); - var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); - return chr[methodName]() + trailing; - }; - } - function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); - }; - } - function createCtor(Ctor) { - return function() { - var args = arguments; - switch (args.length) { - case 0: - return new Ctor(); - case 1: - return new Ctor(args[0]); - case 2: - return new Ctor(args[0], args[1]); - case 3: - return new Ctor(args[0], args[1], args[2]); - case 4: - return new Ctor(args[0], args[1], args[2], args[3]); - case 5: - return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); - return isObject4(result2) ? result2 : thisBinding; - }; - } - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - function wrapper() { - var length5 = arguments.length, args = Array2(length5), index2 = length5, placeholder = getHolder(wrapper); - while (index2--) { - args[index2] = arguments[index2]; - } - var holders = length5 < 3 && args[0] !== placeholder && args[length5 - 1] !== placeholder ? [] : replaceHolders(args, placeholder); - length5 -= holders.length; - if (length5 < arity) { - return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined2, args, holders, undefined2, undefined2, arity - length5); - } - var fn2 = this && this !== root && this instanceof wrapper ? Ctor : func; - return apply(fn2, this, args); - } - return wrapper; - } - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object2(collection); - if (!isArrayLike2(collection)) { - var iteratee2 = getIteratee(predicate, 3); - collection = keys2(collection); - predicate = function(key) { - return iteratee2(iterable[key], key, iterable); - }; - } - var index2 = findIndexFunc(collection, predicate, fromIndex); - return index2 > -1 ? iterable[iteratee2 ? collection[index2] : index2] : undefined2; - }; - } - function createFlow(fromRight) { - return flatRest(function(funcs) { - var length5 = funcs.length, index2 = length5, prereq = LodashWrapper.prototype.thru; - if (fromRight) { - funcs.reverse(); - } - while (index2--) { - var func = funcs[index2]; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == "wrapper") { - var wrapper = new LodashWrapper([], true); - } - } - index2 = wrapper ? index2 : length5; - while (++index2 < length5) { - func = funcs[index2]; - var funcName = getFuncName(func), data3 = funcName == "wrapper" ? getData(func) : undefined2; - if (data3 && isLaziable(data3[0]) && data3[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data3[4].length && data3[9] == 1) { - wrapper = wrapper[getFuncName(data3[0])].apply(wrapper, data3[3]); - } else { - wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); - } - } - return function() { - var args = arguments, value2 = args[0]; - if (wrapper && args.length == 1 && isArray3(value2)) { - return wrapper.plant(value2).value(); - } - var index3 = 0, result2 = length5 ? funcs[index3].apply(this, args) : value2; - while (++index3 < length5) { - result2 = funcs[index3].call(this, result2); - } - return result2; - }; - }); - } - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); - function wrapper() { - var length5 = arguments.length, args = Array2(length5), index2 = length5; - while (index2--) { - args[index2] = arguments[index2]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length5 -= holdersCount; - if (isCurried && length5 < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary2, arity - length5); - } - var thisBinding = isBind ? thisArg : this, fn2 = isBindKey ? thisBinding[func] : func; - length5 = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length5 > 1) { - args.reverse(); - } - if (isAry && ary2 < length5) { - args.length = ary2; - } - if (this && this !== root && this instanceof wrapper) { - fn2 = Ctor || createCtor(fn2); - } - return fn2.apply(thisBinding, args); - } - return wrapper; - } - function createInverter(setter, toIteratee) { - return function(object, iteratee2) { - return baseInverter(object, setter, toIteratee(iteratee2), {}); - }; - } - function createMathOperation(operator, defaultValue) { - return function(value2, other2) { - var result2; - if (value2 === undefined2 && other2 === undefined2) { - return defaultValue; - } - if (value2 !== undefined2) { - result2 = value2; - } - if (other2 !== undefined2) { - if (result2 === undefined2) { - return other2; - } - if (typeof value2 == "string" || typeof other2 == "string") { - value2 = baseToString(value2); - other2 = baseToString(other2); - } else { - value2 = baseToNumber(value2); - other2 = baseToNumber(other2); - } - result2 = operator(value2, other2); - } - return result2; - }; - } - function createOver(arrayFunc) { - return flatRest(function(iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee2) { - return apply(iteratee2, thisArg, args); - }); - }); - }); - } - function createPadding(length5, chars) { - chars = chars === undefined2 ? " " : baseToString(chars); - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length5) : chars; - } - var result2 = baseRepeat(chars, nativeCeil(length5 / stringSize(chars))); - return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length5).join("") : result2.slice(0, length5); - } - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); - function wrapper() { - var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn2 = this && this !== root && this instanceof wrapper ? Ctor : func; - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn2, isBind ? thisArg : this, args); - } - return wrapper; - } - function createRange(fromRight) { - return function(start, end2, step) { - if (step && typeof step != "number" && isIterateeCall(start, end2, step)) { - end2 = step = undefined2; - } - start = toFinite(start); - if (end2 === undefined2) { - end2 = start; - start = 0; - } else { - end2 = toFinite(end2); - } - step = step === undefined2 ? start < end2 ? 1 : -1 : toFinite(step); - return baseRange(start, end2, step, fromRight); - }; - } - function createRelationalOperation(operator) { - return function(value2, other2) { - if (!(typeof value2 == "string" && typeof other2 == "string")) { - value2 = toNumber(value2); - other2 = toNumber(other2); - } - return operator(value2, other2); - }; - } - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; - bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); - } - var newData = [ - func, - bitmask, - thisArg, - newPartials, - newHolders, - newPartialsRight, - newHoldersRight, - argPos, - ary2, - arity - ]; - var result2 = wrapFunc.apply(undefined2, newData); - if (isLaziable(func)) { - setData(result2, newData); - } - result2.placeholder = placeholder; - return setWrapToString(result2, func, bitmask); - } - function createRound(methodName) { - var func = Math2[methodName]; - return function(number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision && nativeIsFinite(number)) { - var pair = (toString7(number) + "e").split("e"), value2 = func(pair[0] + "e" + (+pair[1] + precision)); - pair = (toString7(value2) + "e").split("e"); - return +(pair[0] + "e" + (+pair[1] - precision)); - } - return func(number); - }; - } - var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop2 : function(values3) { - return new Set2(values3); - }; - function createToPairs(keysFunc) { - return function(object) { - var tag = getTag(object); - if (tag == mapTag4) { - return mapToArray(object); - } - if (tag == setTag5) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - var length5 = partials ? partials.length : 0; - if (!length5) { - bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); - partials = holders = undefined2; - } - ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); - arity = arity === undefined2 ? arity : toInteger(arity); - length5 -= holders ? holders.length : 0; - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, holdersRight = holders; - partials = holders = undefined2; - } - var data3 = isBindKey ? undefined2 : getData(func); - var newData = [ - func, - bitmask, - thisArg, - partials, - holders, - partialsRight, - holdersRight, - argPos, - ary2, - arity - ]; - if (data3) { - mergeData(newData, data3); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length5, 0); - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result2 = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result2 = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result2 = createPartial(func, bitmask, thisArg, partials); - } else { - result2 = createHybrid.apply(undefined2, newData); - } - var setter = data3 ? baseSetData : setData; - return setWrapToString(setter(result2, newData), func, bitmask); - } - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined2 || eq(objValue, objectProto5[key]) && !hasOwnProperty4.call(object, key)) { - return srcValue; - } - return objValue; - } - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject4(objValue) && isObject4(srcValue)) { - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); - stack["delete"](srcValue); - } - return objValue; - } - function customOmitClone(value2) { - return isPlainObject3(value2) ? undefined2 : value2; - } - function equalArrays(array, other2, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other2.length; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - var arrStacked = stack.get(array); - var othStacked = stack.get(other2); - if (arrStacked && othStacked) { - return arrStacked == other2 && othStacked == array; - } - var index2 = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; - stack.set(array, other2); - stack.set(other2, array); - while (++index2 < arrLength) { - var arrValue = array[index2], othValue = other2[index2]; - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index2, other2, array, stack) : customizer(arrValue, othValue, index2, array, other2, stack); - } - if (compared !== undefined2) { - if (compared) { - continue; - } - result2 = false; - break; - } - if (seen) { - if (!arraySome(other2, function(othValue2, othIndex) { - if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result2 = false; - break; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - result2 = false; - break; - } - } - stack["delete"](array); - stack["delete"](other2); - return result2; - } - function equalByTag(object, other2, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag4: - if (object.byteLength != other2.byteLength || object.byteOffset != other2.byteOffset) { - return false; - } - object = object.buffer; - other2 = other2.buffer; - case arrayBufferTag4: - if (object.byteLength != other2.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other2))) { - return false; - } - return true; - case boolTag4: - case dateTag4: - case numberTag4: - return eq(+object, +other2); - case errorTag4: - return object.name == other2.name && object.message == other2.message; - case regexpTag4: - case stringTag4: - return object == other2 + ""; - case mapTag4: - var convert = mapToArray; - case setTag5: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - if (object.size != other2.size && !isPartial) { - return false; - } - var stacked = stack.get(object); - if (stacked) { - return stacked == other2; - } - bitmask |= COMPARE_UNORDERED_FLAG; - stack.set(object, other2); - var result2 = equalArrays(convert(object), convert(other2), bitmask, customizer, equalFunc, stack); - stack["delete"](object); - return result2; - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other2); - } - } - return false; - } - function equalObjects(object, other2, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other2), othLength = othProps.length; - if (objLength != othLength && !isPartial) { - return false; - } - var index2 = objLength; - while (index2--) { - var key = objProps[index2]; - if (!(isPartial ? key in other2 : hasOwnProperty4.call(other2, key))) { - return false; - } - } - var objStacked = stack.get(object); - var othStacked = stack.get(other2); - if (objStacked && othStacked) { - return objStacked == other2 && othStacked == object; - } - var result2 = true; - stack.set(object, other2); - stack.set(other2, object); - var skipCtor = isPartial; - while (++index2 < objLength) { - key = objProps[index2]; - var objValue = object[key], othValue = other2[key]; - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other2, object, stack) : customizer(objValue, othValue, key, object, other2, stack); - } - if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { - result2 = false; - break; - } - skipCtor || (skipCtor = key == "constructor"); - } - if (result2 && !skipCtor) { - var objCtor = object.constructor, othCtor = other2.constructor; - if (objCtor != othCtor && ("constructor" in object && "constructor" in other2) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { - result2 = false; - } - } - stack["delete"](object); - stack["delete"](other2); - return result2; - } - function flatRest(func) { - return setToString(overRest(func, undefined2, flatten2), func + ""); - } - function getAllKeys(object) { - return baseGetAllKeys(object, keys2, getSymbols); - } - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - var getData = !metaMap ? noop2 : function(func) { - return metaMap.get(func); - }; - function getFuncName(func) { - var result2 = func.name + "", array = realNames[result2], length5 = hasOwnProperty4.call(realNames, result2) ? array.length : 0; - while (length5--) { - var data3 = array[length5], otherFunc = data3.func; - if (otherFunc == null || otherFunc == func) { - return data3.name; - } - } - return result2; - } - function getHolder(func) { - var object = hasOwnProperty4.call(lodash, "placeholder") ? lodash : func; - return object.placeholder; - } - function getIteratee() { - var result2 = lodash.iteratee || iteratee; - result2 = result2 === iteratee ? baseIteratee : result2; - return arguments.length ? result2(arguments[0], arguments[1]) : result2; - } - function getMapData(map7, key) { - var data3 = map7.__data__; - return isKeyable(key) ? data3[typeof key == "string" ? "string" : "hash"] : data3.map; - } - function getMatchData(object) { - var result2 = keys2(object), length5 = result2.length; - while (length5--) { - var key = result2[length5], value2 = object[key]; - result2[length5] = [key, value2, isStrictComparable(value2)]; - } - return result2; - } - function getNative(object, key) { - var value2 = getValue3(object, key); - return baseIsNative(value2) ? value2 : undefined2; - } - function getRawTag(value2) { - var isOwn = hasOwnProperty4.call(value2, symToStringTag), tag = value2[symToStringTag]; - try { - value2[symToStringTag] = undefined2; - var unmasked = true; - } catch (e4) { - } - var result2 = nativeObjectToString.call(value2); - if (unmasked) { - if (isOwn) { - value2[symToStringTag] = tag; - } else { - delete value2[symToStringTag]; - } - } - return result2; - } - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object2(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result2 = []; - while (object) { - arrayPush(result2, getSymbols(object)); - object = getPrototype(object); - } - return result2; - }; - var getTag = baseGetTag; - if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag4 || Map2 && getTag(new Map2()) != mapTag4 || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag5 || WeakMap2 && getTag(new WeakMap2()) != weakMapTag4) { - getTag = function(value2) { - var result2 = baseGetTag(value2), Ctor = result2 == objectTag4 ? value2.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag4; - case mapCtorString: - return mapTag4; - case promiseCtorString: - return promiseTag; - case setCtorString: - return setTag5; - case weakMapCtorString: - return weakMapTag4; - } - } - return result2; - }; - } - function getView(start, end2, transforms) { - var index2 = -1, length5 = transforms.length; - while (++index2 < length5) { - var data3 = transforms[index2], size3 = data3.size; - switch (data3.type) { - case "drop": - start += size3; - break; - case "dropRight": - end2 -= size3; - break; - case "take": - end2 = nativeMin(end2, start + size3); - break; - case "takeRight": - start = nativeMax(start, end2 - size3); - break; - } - } - return { "start": start, "end": end2 }; - } - function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; - } - function hasPath2(object, path, hasFunc) { - path = castPath(path, object); - var index2 = -1, length5 = path.length, result2 = false; - while (++index2 < length5) { - var key = toKey(path[index2]); - if (!(result2 = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result2 || ++index2 != length5) { - return result2; - } - length5 = object == null ? 0 : object.length; - return !!length5 && isLength4(length5) && isIndex(key, length5) && (isArray3(object) || isArguments(object)); - } - function initCloneArray(array) { - var length5 = array.length, result2 = new array.constructor(length5); - if (length5 && typeof array[0] == "string" && hasOwnProperty4.call(array, "index")) { - result2.index = array.index; - result2.input = array.input; - } - return result2; - } - function initCloneObject(object) { - return typeof object.constructor == "function" && !isPrototype2(object) ? baseCreate(getPrototype(object)) : {}; - } - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag4: - return cloneArrayBuffer(object); - case boolTag4: - case dateTag4: - return new Ctor(+object); - case dataViewTag4: - return cloneDataView(object, isDeep); - case float32Tag4: - case float64Tag4: - case int8Tag4: - case int16Tag4: - case int32Tag4: - case uint8Tag4: - case uint8ClampedTag4: - case uint16Tag4: - case uint32Tag4: - return cloneTypedArray(object, isDeep); - case mapTag4: - return new Ctor(); - case numberTag4: - case stringTag4: - return new Ctor(object); - case regexpTag4: - return cloneRegExp(object); - case setTag5: - return new Ctor(); - case symbolTag: - return cloneSymbol(object); - } - } - function insertWrapDetails(source, details) { - var length5 = details.length; - if (!length5) { - return source; - } - var lastIndex = length5 - 1; - details[lastIndex] = (length5 > 1 ? "& " : "") + details[lastIndex]; - details = details.join(length5 > 2 ? ", " : " "); - return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); - } - function isFlattenable(value2) { - return isArray3(value2) || isArguments(value2) || !!(spreadableSymbol && value2 && value2[spreadableSymbol]); - } - function isIndex(value2, length5) { - var type2 = typeof value2; - length5 = length5 == null ? MAX_SAFE_INTEGER4 : length5; - return !!length5 && (type2 == "number" || type2 != "symbol" && reIsUint.test(value2)) && (value2 > -1 && value2 % 1 == 0 && value2 < length5); - } - function isIterateeCall(value2, index2, object) { - if (!isObject4(object)) { - return false; - } - var type2 = typeof index2; - if (type2 == "number" ? isArrayLike2(object) && isIndex(index2, object.length) : type2 == "string" && index2 in object) { - return eq(object[index2], value2); - } - return false; - } - function isKey(value2, object) { - if (isArray3(value2)) { - return false; - } - var type2 = typeof value2; - if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value2 == null || isSymbol(value2)) { - return true; - } - return reIsPlainProp.test(value2) || !reIsDeepProp.test(value2) || object != null && value2 in Object2(object); - } - function isKeyable(value2) { - var type2 = typeof value2; - return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value2 !== "__proto__" : value2 === null; - } - function isLaziable(func) { - var funcName = getFuncName(func), other2 = lodash[funcName]; - if (typeof other2 != "function" || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other2) { - return true; - } - var data3 = getData(other2); - return !!data3 && func === data3[0]; - } - function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; - } - var isMaskable = coreJsData ? isFunction2 : stubFalse; - function isPrototype2(value2) { - var Ctor = value2 && value2.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto5; - return value2 === proto; - } - function isStrictComparable(value2) { - return value2 === value2 && !isObject4(value2); - } - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object)); - }; - } - function memoizeCapped(func) { - var result2 = memoize(func, function(key) { - if (cache3.size === MAX_MEMOIZE_SIZE) { - cache3.clear(); - } - return key; - }); - var cache3 = result2.cache; - return result2; - } - function mergeData(data3, source) { - var bitmask = data3[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data3[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; - if (!(isCommon || isCombo)) { - return data3; - } - if (srcBitmask & WRAP_BIND_FLAG) { - data3[2] = source[2]; - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - var value2 = source[3]; - if (value2) { - var partials = data3[3]; - data3[3] = partials ? composeArgs(partials, value2, source[4]) : value2; - data3[4] = partials ? replaceHolders(data3[3], PLACEHOLDER) : source[4]; - } - value2 = source[5]; - if (value2) { - partials = data3[5]; - data3[5] = partials ? composeArgsRight(partials, value2, source[6]) : value2; - data3[6] = partials ? replaceHolders(data3[5], PLACEHOLDER) : source[6]; - } - value2 = source[7]; - if (value2) { - data3[7] = value2; - } - if (srcBitmask & WRAP_ARY_FLAG) { - data3[8] = data3[8] == null ? source[8] : nativeMin(data3[8], source[8]); - } - if (data3[9] == null) { - data3[9] = source[9]; - } - data3[0] = source[0]; - data3[1] = newBitmask; - return data3; - } - function nativeKeysIn(object) { - var result2 = []; - if (object != null) { - for (var key in Object2(object)) { - result2.push(key); - } - } - return result2; - } - function objectToString4(value2) { - return nativeObjectToString.call(value2); - } - function overRest(func, start, transform19) { - start = nativeMax(start === undefined2 ? func.length - 1 : start, 0); - return function() { - var args = arguments, index2 = -1, length5 = nativeMax(args.length - start, 0), array = Array2(length5); - while (++index2 < length5) { - array[index2] = args[start + index2]; - } - index2 = -1; - var otherArgs = Array2(start + 1); - while (++index2 < start) { - otherArgs[index2] = args[index2]; - } - otherArgs[start] = transform19(array); - return apply(func, this, otherArgs); - }; - } - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - function reorder(array, indexes) { - var arrLength = array.length, length5 = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); - while (length5--) { - var index2 = indexes[length5]; - array[length5] = isIndex(index2, arrLength) ? oldArray[index2] : undefined2; - } - return array; - } - function safeGet(object, key) { - if (key === "constructor" && typeof object[key] === "function") { - return; - } - if (key == "__proto__") { - return; - } - return object[key]; - } - var setData = shortOut(baseSetData); - var setTimeout2 = ctxSetTimeout || function(func, wait) { - return root.setTimeout(func, wait); - }; - var setToString = shortOut(baseSetToString); - function setWrapToString(wrapper, reference, bitmask) { - var source = reference + ""; - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - function shortOut(func) { - var count2 = 0, lastCalled = 0; - return function() { - var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); - lastCalled = stamp; - if (remaining > 0) { - if (++count2 >= HOT_COUNT) { - return arguments[0]; - } - } else { - count2 = 0; - } - return func.apply(undefined2, arguments); - }; - } - function shuffleSelf(array, size3) { - var index2 = -1, length5 = array.length, lastIndex = length5 - 1; - size3 = size3 === undefined2 ? length5 : size3; - while (++index2 < size3) { - var rand = baseRandom(index2, lastIndex), value2 = array[rand]; - array[rand] = array[index2]; - array[index2] = value2; - } - array.length = size3; - return array; - } - var stringToPath = memoizeCapped(function(string) { - var result2 = []; - if (string.charCodeAt(0) === 46) { - result2.push(""); - } - string.replace(rePropName, function(match, number, quote, subString) { - result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); - }); - return result2; - }); - function toKey(value2) { - if (typeof value2 == "string" || isSymbol(value2)) { - return value2; - } - var result2 = value2 + ""; - return result2 == "0" && 1 / value2 == -INFINITY ? "-0" : result2; - } - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e4) { - } - try { - return func + ""; - } catch (e4) { - } - } - return ""; - } - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function(pair) { - var value2 = "_." + pair[0]; - if (bitmask & pair[1] && !arrayIncludes(details, value2)) { - details.push(value2); - } - }); - return details.sort(); - } - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result2.__actions__ = copyArray(wrapper.__actions__); - result2.__index__ = wrapper.__index__; - result2.__values__ = wrapper.__values__; - return result2; - } - function chunk(array, size3, guard) { - if (guard ? isIterateeCall(array, size3, guard) : size3 === undefined2) { - size3 = 1; - } else { - size3 = nativeMax(toInteger(size3), 0); - } - var length5 = array == null ? 0 : array.length; - if (!length5 || size3 < 1) { - return []; - } - var index2 = 0, resIndex = 0, result2 = Array2(nativeCeil(length5 / size3)); - while (index2 < length5) { - result2[resIndex++] = baseSlice(array, index2, index2 += size3); - } - return result2; - } - function compact(array) { - var index2 = -1, length5 = array == null ? 0 : array.length, resIndex = 0, result2 = []; - while (++index2 < length5) { - var value2 = array[index2]; - if (value2) { - result2[resIndex++] = value2; - } - } - return result2; - } - function concat() { - var length5 = arguments.length; - if (!length5) { - return []; - } - var args = Array2(length5 - 1), array = arguments[0], index2 = length5; - while (index2--) { - args[index2 - 1] = arguments[index2]; - } - return arrayPush(isArray3(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - var difference2 = baseRest(function(array, values3) { - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true)) : []; - }); - var differenceBy = baseRest(function(array, values3) { - var iteratee2 = last2(values3); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; - }); - var differenceWith = baseRest(function(array, values3) { - var comparator = last2(values3); - if (isArrayLikeObject(comparator)) { - comparator = undefined2; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values3, 1, isArrayLikeObject, true), undefined2, comparator) : []; - }); - function drop(array, n3, guard) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return []; - } - n3 = guard || n3 === undefined2 ? 1 : toInteger(n3); - return baseSlice(array, n3 < 0 ? 0 : n3, length5); - } - function dropRight(array, n3, guard) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return []; - } - n3 = guard || n3 === undefined2 ? 1 : toInteger(n3); - n3 = length5 - n3; - return baseSlice(array, 0, n3 < 0 ? 0 : n3); - } - function dropRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; - } - function dropWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; - } - function fill(array, value2, start, end2) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return []; - } - if (start && typeof start != "number" && isIterateeCall(array, value2, start)) { - start = 0; - end2 = length5; - } - return baseFill(array, value2, start, end2); - } - function findIndex2(array, predicate, fromIndex) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return -1; - } - var index2 = fromIndex == null ? 0 : toInteger(fromIndex); - if (index2 < 0) { - index2 = nativeMax(length5 + index2, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index2); - } - function findLastIndex(array, predicate, fromIndex) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return -1; - } - var index2 = length5 - 1; - if (fromIndex !== undefined2) { - index2 = toInteger(fromIndex); - index2 = fromIndex < 0 ? nativeMax(length5 + index2, 0) : nativeMin(index2, length5 - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index2, true); - } - function flatten2(array) { - var length5 = array == null ? 0 : array.length; - return length5 ? baseFlatten(array, 1) : []; - } - function flattenDeep(array) { - var length5 = array == null ? 0 : array.length; - return length5 ? baseFlatten(array, INFINITY) : []; - } - function flattenDepth(array, depth) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return []; - } - depth = depth === undefined2 ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - function fromPairs(pairs2) { - var index2 = -1, length5 = pairs2 == null ? 0 : pairs2.length, result2 = {}; - while (++index2 < length5) { - var pair = pairs2[index2]; - result2[pair[0]] = pair[1]; - } - return result2; - } - function head2(array) { - return array && array.length ? array[0] : undefined2; - } - function indexOf3(array, value2, fromIndex) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return -1; - } - var index2 = fromIndex == null ? 0 : toInteger(fromIndex); - if (index2 < 0) { - index2 = nativeMax(length5 + index2, 0); - } - return baseIndexOf(array, value2, index2); - } - function initial(array) { - var length5 = array == null ? 0 : array.length; - return length5 ? baseSlice(array, 0, -1) : []; - } - var intersection2 = baseRest(function(arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; - }); - var intersectionBy = baseRest(function(arrays) { - var iteratee2 = last2(arrays), mapped = arrayMap(arrays, castArrayLikeObject); - if (iteratee2 === last2(mapped)) { - iteratee2 = undefined2; - } else { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; - }); - var intersectionWith = baseRest(function(arrays) { - var comparator = last2(arrays), mapped = arrayMap(arrays, castArrayLikeObject); - comparator = typeof comparator == "function" ? comparator : undefined2; - if (comparator) { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; - }); - function join(array, separator) { - return array == null ? "" : nativeJoin.call(array, separator); - } - function last2(array) { - var length5 = array == null ? 0 : array.length; - return length5 ? array[length5 - 1] : undefined2; - } - function lastIndexOf(array, value2, fromIndex) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return -1; - } - var index2 = length5; - if (fromIndex !== undefined2) { - index2 = toInteger(fromIndex); - index2 = index2 < 0 ? nativeMax(length5 + index2, 0) : nativeMin(index2, length5 - 1); - } - return value2 === value2 ? strictLastIndexOf(array, value2, index2) : baseFindIndex(array, baseIsNaN, index2, true); - } - function nth(array, n3) { - return array && array.length ? baseNth(array, toInteger(n3)) : undefined2; - } - var pull = baseRest(pullAll); - function pullAll(array, values3) { - return array && array.length && values3 && values3.length ? basePullAll(array, values3) : array; - } - function pullAllBy(array, values3, iteratee2) { - return array && array.length && values3 && values3.length ? basePullAll(array, values3, getIteratee(iteratee2, 2)) : array; - } - function pullAllWith(array, values3, comparator) { - return array && array.length && values3 && values3.length ? basePullAll(array, values3, undefined2, comparator) : array; - } - var pullAt3 = flatRest(function(array, indexes) { - var length5 = array == null ? 0 : array.length, result2 = baseAt(array, indexes); - basePullAt(array, arrayMap(indexes, function(index2) { - return isIndex(index2, length5) ? +index2 : index2; - }).sort(compareAscending)); - return result2; - }); - function remove2(array, predicate) { - var result2 = []; - if (!(array && array.length)) { - return result2; - } - var index2 = -1, indexes = [], length5 = array.length; - predicate = getIteratee(predicate, 3); - while (++index2 < length5) { - var value2 = array[index2]; - if (predicate(value2, index2, array)) { - result2.push(value2); - indexes.push(index2); - } - } - basePullAt(array, indexes); - return result2; - } - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - function slice(array, start, end2) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return []; - } - if (end2 && typeof end2 != "number" && isIterateeCall(array, start, end2)) { - start = 0; - end2 = length5; - } else { - start = start == null ? 0 : toInteger(start); - end2 = end2 === undefined2 ? length5 : toInteger(end2); - } - return baseSlice(array, start, end2); - } - function sortedIndex(array, value2) { - return baseSortedIndex(array, value2); - } - function sortedIndexBy(array, value2, iteratee2) { - return baseSortedIndexBy(array, value2, getIteratee(iteratee2, 2)); - } - function sortedIndexOf(array, value2) { - var length5 = array == null ? 0 : array.length; - if (length5) { - var index2 = baseSortedIndex(array, value2); - if (index2 < length5 && eq(array[index2], value2)) { - return index2; - } - } - return -1; - } - function sortedLastIndex(array, value2) { - return baseSortedIndex(array, value2, true); - } - function sortedLastIndexBy(array, value2, iteratee2) { - return baseSortedIndexBy(array, value2, getIteratee(iteratee2, 2), true); - } - function sortedLastIndexOf(array, value2) { - var length5 = array == null ? 0 : array.length; - if (length5) { - var index2 = baseSortedIndex(array, value2, true) - 1; - if (eq(array[index2], value2)) { - return index2; - } - } - return -1; - } - function sortedUniq(array) { - return array && array.length ? baseSortedUniq(array) : []; - } - function sortedUniqBy(array, iteratee2) { - return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; - } - function tail(array) { - var length5 = array == null ? 0 : array.length; - return length5 ? baseSlice(array, 1, length5) : []; - } - function take(array, n3, guard) { - if (!(array && array.length)) { - return []; - } - n3 = guard || n3 === undefined2 ? 1 : toInteger(n3); - return baseSlice(array, 0, n3 < 0 ? 0 : n3); - } - function takeRight(array, n3, guard) { - var length5 = array == null ? 0 : array.length; - if (!length5) { - return []; - } - n3 = guard || n3 === undefined2 ? 1 : toInteger(n3); - n3 = length5 - n3; - return baseSlice(array, n3 < 0 ? 0 : n3, length5); - } - function takeRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; - } - function takeWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; - } - var union = baseRest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - var unionBy = baseRest(function(arrays) { - var iteratee2 = last2(arrays); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); - }); - var unionWith = baseRest(function(arrays) { - var comparator = last2(arrays); - comparator = typeof comparator == "function" ? comparator : undefined2; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); - }); - function uniq5(array) { - return array && array.length ? baseUniq(array) : []; - } - function uniqBy(array, iteratee2) { - return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; - } - function uniqWith(array, comparator) { - comparator = typeof comparator == "function" ? comparator : undefined2; - return array && array.length ? baseUniq(array, undefined2, comparator) : []; - } - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length5 = 0; - array = arrayFilter(array, function(group2) { - if (isArrayLikeObject(group2)) { - length5 = nativeMax(group2.length, length5); - return true; - } - }); - return baseTimes(length5, function(index2) { - return arrayMap(array, baseProperty(index2)); - }); - } - function unzipWith(array, iteratee2) { - if (!(array && array.length)) { - return []; - } - var result2 = unzip(array); - if (iteratee2 == null) { - return result2; - } - return arrayMap(result2, function(group2) { - return apply(iteratee2, undefined2, group2); - }); - } - var without = baseRest(function(array, values3) { - return isArrayLikeObject(array) ? baseDifference(array, values3) : []; - }); - var xor = baseRest(function(arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - var xorBy = baseRest(function(arrays) { - var iteratee2 = last2(arrays); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); - }); - var xorWith = baseRest(function(arrays) { - var comparator = last2(arrays); - comparator = typeof comparator == "function" ? comparator : undefined2; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); - }); - var zip = baseRest(unzip); - function zipObject2(props, values3) { - return baseZipObject(props || [], values3 || [], assignValue); - } - function zipObjectDeep(props, values3) { - return baseZipObject(props || [], values3 || [], baseSet); - } - var zipWith = baseRest(function(arrays) { - var length5 = arrays.length, iteratee2 = length5 > 1 ? arrays[length5 - 1] : undefined2; - iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; - return unzipWith(arrays, iteratee2); - }); - function chain(value2) { - var result2 = lodash(value2); - result2.__chain__ = true; - return result2; - } - function tap(value2, interceptor) { - interceptor(value2); - return value2; - } - function thru(value2, interceptor) { - return interceptor(value2); - } - var wrapperAt = flatRest(function(paths) { - var length5 = paths.length, start = length5 ? paths[0] : 0, value2 = this.__wrapped__, interceptor = function(object) { - return baseAt(object, paths); - }; - if (length5 > 1 || this.__actions__.length || !(value2 instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value2 = value2.slice(start, +start + (length5 ? 1 : 0)); - value2.__actions__.push({ - "func": thru, - "args": [interceptor], - "thisArg": undefined2 - }); - return new LodashWrapper(value2, this.__chain__).thru(function(array) { - if (length5 && !array.length) { - array.push(undefined2); - } - return array; - }); - }); - function wrapperChain() { - return chain(this); - } - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - function wrapperNext() { - if (this.__values__ === undefined2) { - this.__values__ = toArray2(this.value()); - } - var done = this.__index__ >= this.__values__.length, value2 = done ? undefined2 : this.__values__[this.__index__++]; - return { "done": done, "value": value2 }; - } - function wrapperToIterator() { - return this; - } - function wrapperPlant(value2) { - var result2, parent2 = this; - while (parent2 instanceof baseLodash) { - var clone11 = wrapperClone(parent2); - clone11.__index__ = 0; - clone11.__values__ = undefined2; - if (result2) { - previous.__wrapped__ = clone11; - } else { - result2 = clone11; - } - var previous = clone11; - parent2 = parent2.__wrapped__; - } - previous.__wrapped__ = value2; - return result2; - } - function wrapperReverse() { - var value2 = this.__wrapped__; - if (value2 instanceof LazyWrapper) { - var wrapped = value2; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - "func": thru, - "args": [reverse], - "thisArg": undefined2 - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - var countBy = createAggregator(function(result2, value2, key) { - if (hasOwnProperty4.call(result2, key)) { - ++result2[key]; - } else { - baseAssignValue(result2, key, 1); - } - }); - function every2(collection, predicate, guard) { - var func = isArray3(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined2; - } - return func(collection, getIteratee(predicate, 3)); - } - function filter2(collection, predicate) { - var func = isArray3(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - var find4 = createFind(findIndex2); - var findLast = createFind(findLastIndex); - function flatMap(collection, iteratee2) { - return baseFlatten(map6(collection, iteratee2), 1); - } - function flatMapDeep(collection, iteratee2) { - return baseFlatten(map6(collection, iteratee2), INFINITY); - } - function flatMapDepth(collection, iteratee2, depth) { - depth = depth === undefined2 ? 1 : toInteger(depth); - return baseFlatten(map6(collection, iteratee2), depth); - } - function forEach4(collection, iteratee2) { - var func = isArray3(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee2, 3)); - } - function forEachRight(collection, iteratee2) { - var func = isArray3(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee2, 3)); - } - var groupBy2 = createAggregator(function(result2, value2, key) { - if (hasOwnProperty4.call(result2, key)) { - result2[key].push(value2); - } else { - baseAssignValue(result2, key, [value2]); - } - }); - function includes(collection, value2, fromIndex, guard) { - collection = isArrayLike2(collection) ? collection : values2(collection); - fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; - var length5 = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length5 + fromIndex, 0); - } - return isString2(collection) ? fromIndex <= length5 && collection.indexOf(value2, fromIndex) > -1 : !!length5 && baseIndexOf(collection, value2, fromIndex) > -1; - } - var invokeMap = baseRest(function(collection, path, args) { - var index2 = -1, isFunc = typeof path == "function", result2 = isArrayLike2(collection) ? Array2(collection.length) : []; - baseEach(collection, function(value2) { - result2[++index2] = isFunc ? apply(path, value2, args) : baseInvoke(value2, path, args); - }); - return result2; - }); - var keyBy = createAggregator(function(result2, value2, key) { - baseAssignValue(result2, key, value2); - }); - function map6(collection, iteratee2) { - var func = isArray3(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee2, 3)); - } - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray3(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined2 : orders; - if (!isArray3(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - var partition3 = createAggregator(function(result2, value2, key) { - result2[key ? 0 : 1].push(value2); - }, function() { - return [[], []]; - }); - function reduce2(collection, iteratee2, accumulator) { - var func = isArray3(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); - } - function reduceRight(collection, iteratee2, accumulator) { - var func = isArray3(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); - } - function reject(collection, predicate) { - var func = isArray3(collection) ? arrayFilter : baseFilter; - return func(collection, negate4(getIteratee(predicate, 3))); - } - function sample(collection) { - var func = isArray3(collection) ? arraySample : baseSample; - return func(collection); - } - function sampleSize(collection, n3, guard) { - if (guard ? isIterateeCall(collection, n3, guard) : n3 === undefined2) { - n3 = 1; - } else { - n3 = toInteger(n3); - } - var func = isArray3(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n3); - } - function shuffle3(collection) { - var func = isArray3(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - function size2(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike2(collection)) { - return isString2(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag4 || tag == setTag5) { - return collection.size; - } - return baseKeys(collection).length; - } - function some2(collection, predicate, guard) { - var func = isArray3(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined2; - } - return func(collection, getIteratee(predicate, 3)); - } - var sortBy2 = baseRest(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length5 = iteratees.length; - if (length5 > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length5 > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - var now2 = ctxNow || function() { - return root.Date.now(); - }; - function after(n3, func) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - n3 = toInteger(n3); - return function() { - if (--n3 < 1) { - return func.apply(this, arguments); - } - }; - } - function ary(func, n3, guard) { - n3 = guard ? undefined2 : n3; - n3 = func && n3 == null ? func.length : n3; - return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n3); - } - function before(n3, func) { - var result2; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - n3 = toInteger(n3); - return function() { - if (--n3 > 0) { - result2 = func.apply(this, arguments); - } - if (n3 <= 1) { - func = undefined2; - } - return result2; - }; - } - var bind3 = baseRest(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind3)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - var bindKey = baseRest(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - function curry(func, arity, guard) { - arity = guard ? undefined2 : arity; - var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); - result2.placeholder = curry.placeholder; - return result2; - } - function curryRight(func, arity, guard) { - arity = guard ? undefined2 : arity; - var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); - result2.placeholder = curryRight.placeholder; - return result2; - } - function debounce2(func, wait, options) { - var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject4(options)) { - leading = !!options.leading; - maxing = "maxWait" in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - function invokeFunc(time2) { - var args = lastArgs, thisArg = lastThis; - lastArgs = lastThis = undefined2; - lastInvokeTime = time2; - result2 = func.apply(thisArg, args); - return result2; - } - function leadingEdge(time2) { - lastInvokeTime = time2; - timerId = setTimeout2(timerExpired, wait); - return leading ? invokeFunc(time2) : result2; - } - function remainingWait(time2) { - var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; - return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; - } - function shouldInvoke(time2) { - var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime; - return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time2 = now2(); - if (shouldInvoke(time2)) { - return trailingEdge(time2); - } - timerId = setTimeout2(timerExpired, remainingWait(time2)); - } - function trailingEdge(time2) { - timerId = undefined2; - if (trailing && lastArgs) { - return invokeFunc(time2); - } - lastArgs = lastThis = undefined2; - return result2; - } - function cancel() { - if (timerId !== undefined2) { - clearTimeout2(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined2; - } - function flush() { - return timerId === undefined2 ? result2 : trailingEdge(now2()); - } - function debounced() { - var time2 = now2(), isInvoking = shouldInvoke(time2); - lastArgs = arguments; - lastThis = this; - lastCallTime = time2; - if (isInvoking) { - if (timerId === undefined2) { - return leadingEdge(lastCallTime); - } - if (maxing) { - clearTimeout2(timerId); - timerId = setTimeout2(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined2) { - timerId = setTimeout2(timerExpired, wait); - } - return result2; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - var defer = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - function memoize(func, resolver) { - if (typeof func != "function" || resolver != null && typeof resolver != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache3 = memoized.cache; - if (cache3.has(key)) { - return cache3.get(key); - } - var result2 = func.apply(this, args); - memoized.cache = cache3.set(key, result2) || cache3; - return result2; - }; - memoized.cache = new (memoize.Cache || MapCache)(); - return memoized; - } - memoize.Cache = MapCache; - function negate4(predicate) { - if (typeof predicate != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return function() { - var args = arguments; - switch (args.length) { - case 0: - return !predicate.call(this); - case 1: - return !predicate.call(this, args[0]); - case 2: - return !predicate.call(this, args[0], args[1]); - case 3: - return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - function once(func) { - return before(2, func); - } - var overArgs = castRest(function(func, transforms) { - transforms = transforms.length == 1 && isArray3(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - var funcsLength = transforms.length; - return baseRest(function(args) { - var index2 = -1, length5 = nativeMin(args.length, funcsLength); - while (++index2 < length5) { - args[index2] = transforms[index2].call(this, args[index2]); - } - return apply(func, this, args); - }); - }); - var partial = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); - }); - var partialRight = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); - }); - var rearg = flatRest(function(func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); - }); - function rest(func, start) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - start = start === undefined2 ? start : toInteger(start); - return baseRest(func, start); - } - function spread(func, start) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function(args) { - var array = args[start], otherArgs = castSlice(args, 0, start); - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - function throttle(func, wait, options) { - var leading = true, trailing = true; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - if (isObject4(options)) { - leading = "leading" in options ? !!options.leading : leading; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - return debounce2(func, wait, { - "leading": leading, - "maxWait": wait, - "trailing": trailing - }); - } - function unary(func) { - return ary(func, 1); - } - function wrap(value2, wrapper) { - return partial(castFunction(wrapper), value2); - } - function castArray() { - if (!arguments.length) { - return []; - } - var value2 = arguments[0]; - return isArray3(value2) ? value2 : [value2]; - } - function clone10(value2) { - return baseClone(value2, CLONE_SYMBOLS_FLAG); - } - function cloneWith(value2, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseClone(value2, CLONE_SYMBOLS_FLAG, customizer); - } - function cloneDeep(value2) { - return baseClone(value2, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - function cloneDeepWith(value2, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseClone(value2, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys2(source)); - } - function eq(value2, other2) { - return value2 === other2 || value2 !== value2 && other2 !== other2; - } - var gt = createRelationalOperation(baseGt); - var gte = createRelationalOperation(function(value2, other2) { - return value2 >= other2; - }); - var isArguments = baseIsArguments(function() { - return arguments; - }()) ? baseIsArguments : function(value2) { - return isObjectLike6(value2) && hasOwnProperty4.call(value2, "callee") && !propertyIsEnumerable.call(value2, "callee"); - }; - var isArray3 = Array2.isArray; - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - function isArrayLike2(value2) { - return value2 != null && isLength4(value2.length) && !isFunction2(value2); - } - function isArrayLikeObject(value2) { - return isObjectLike6(value2) && isArrayLike2(value2); - } - function isBoolean3(value2) { - return value2 === true || value2 === false || isObjectLike6(value2) && baseGetTag(value2) == boolTag4; - } - var isBuffer = nativeIsBuffer || stubFalse; - var isDate2 = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - function isElement2(value2) { - return isObjectLike6(value2) && value2.nodeType === 1 && !isPlainObject3(value2); - } - function isEmpty2(value2) { - if (value2 == null) { - return true; - } - if (isArrayLike2(value2) && (isArray3(value2) || typeof value2 == "string" || typeof value2.splice == "function" || isBuffer(value2) || isTypedArray4(value2) || isArguments(value2))) { - return !value2.length; - } - var tag = getTag(value2); - if (tag == mapTag4 || tag == setTag5) { - return !value2.size; - } - if (isPrototype2(value2)) { - return !baseKeys(value2).length; - } - for (var key in value2) { - if (hasOwnProperty4.call(value2, key)) { - return false; - } - } - return true; - } - function isEqual3(value2, other2) { - return baseIsEqual(value2, other2); - } - function isEqualWith(value2, other2, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - var result2 = customizer ? customizer(value2, other2) : undefined2; - return result2 === undefined2 ? baseIsEqual(value2, other2, undefined2, customizer) : !!result2; - } - function isError(value2) { - if (!isObjectLike6(value2)) { - return false; - } - var tag = baseGetTag(value2); - return tag == errorTag4 || tag == domExcTag || typeof value2.message == "string" && typeof value2.name == "string" && !isPlainObject3(value2); - } - function isFinite2(value2) { - return typeof value2 == "number" && nativeIsFinite(value2); - } - function isFunction2(value2) { - if (!isObject4(value2)) { - return false; - } - var tag = baseGetTag(value2); - return tag == funcTag4 || tag == genTag || tag == asyncTag || tag == proxyTag; - } - function isInteger3(value2) { - return typeof value2 == "number" && value2 == toInteger(value2); - } - function isLength4(value2) { - return typeof value2 == "number" && value2 > -1 && value2 % 1 == 0 && value2 <= MAX_SAFE_INTEGER4; - } - function isObject4(value2) { - var type2 = typeof value2; - return value2 != null && (type2 == "object" || type2 == "function"); - } - function isObjectLike6(value2) { - return value2 != null && typeof value2 == "object"; - } - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - function isMatch2(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - function isNaN6(value2) { - return isNumber7(value2) && value2 != +value2; - } - function isNative(value2) { - if (isMaskable(value2)) { - throw new Error2(CORE_ERROR_TEXT); - } - return baseIsNative(value2); - } - function isNull3(value2) { - return value2 === null; - } - function isNil2(value2) { - return value2 == null; - } - function isNumber7(value2) { - return typeof value2 == "number" || isObjectLike6(value2) && baseGetTag(value2) == numberTag4; - } - function isPlainObject3(value2) { - if (!isObjectLike6(value2) || baseGetTag(value2) != objectTag4) { - return false; - } - var proto = getPrototype(value2); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty4.call(proto, "constructor") && proto.constructor; - return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; - } - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - function isSafeInteger(value2) { - return isInteger3(value2) && value2 >= -MAX_SAFE_INTEGER4 && value2 <= MAX_SAFE_INTEGER4; - } - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - function isString2(value2) { - return typeof value2 == "string" || !isArray3(value2) && isObjectLike6(value2) && baseGetTag(value2) == stringTag4; - } - function isSymbol(value2) { - return typeof value2 == "symbol" || isObjectLike6(value2) && baseGetTag(value2) == symbolTag; - } - var isTypedArray4 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray4; - function isUndefined2(value2) { - return value2 === undefined2; - } - function isWeakMap(value2) { - return isObjectLike6(value2) && getTag(value2) == weakMapTag4; - } - function isWeakSet(value2) { - return isObjectLike6(value2) && baseGetTag(value2) == weakSetTag; - } - var lt = createRelationalOperation(baseLt); - var lte = createRelationalOperation(function(value2, other2) { - return value2 <= other2; - }); - function toArray2(value2) { - if (!value2) { - return []; - } - if (isArrayLike2(value2)) { - return isString2(value2) ? stringToArray(value2) : copyArray(value2); - } - if (symIterator && value2[symIterator]) { - return iteratorToArray(value2[symIterator]()); - } - var tag = getTag(value2), func = tag == mapTag4 ? mapToArray : tag == setTag5 ? setToArray : values2; - return func(value2); - } - function toFinite(value2) { - if (!value2) { - return value2 === 0 ? value2 : 0; - } - value2 = toNumber(value2); - if (value2 === INFINITY || value2 === -INFINITY) { - var sign = value2 < 0 ? -1 : 1; - return sign * MAX_INTEGER; - } - return value2 === value2 ? value2 : 0; - } - function toInteger(value2) { - var result2 = toFinite(value2), remainder = result2 % 1; - return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; - } - function toLength(value2) { - return value2 ? baseClamp(toInteger(value2), 0, MAX_ARRAY_LENGTH) : 0; - } - function toNumber(value2) { - if (typeof value2 == "number") { - return value2; - } - if (isSymbol(value2)) { - return NAN; - } - if (isObject4(value2)) { - var other2 = typeof value2.valueOf == "function" ? value2.valueOf() : value2; - value2 = isObject4(other2) ? other2 + "" : other2; - } - if (typeof value2 != "string") { - return value2 === 0 ? value2 : +value2; - } - value2 = baseTrim(value2); - var isBinary2 = reIsBinary.test(value2); - return isBinary2 || reIsOctal.test(value2) ? freeParseInt(value2.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value2) ? NAN : +value2; - } - function toPlainObject(value2) { - return copyObject(value2, keysIn(value2)); - } - function toSafeInteger(value2) { - return value2 ? baseClamp(toInteger(value2), -MAX_SAFE_INTEGER4, MAX_SAFE_INTEGER4) : value2 === 0 ? value2 : 0; - } - function toString7(value2) { - return value2 == null ? "" : baseToString(value2); - } - var assign2 = createAssigner(function(object, source) { - if (isPrototype2(source) || isArrayLike2(source)) { - copyObject(source, keys2(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty4.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - var assignIn = createAssigner(function(object, source) { - copyObject(source, keysIn(source), object); - }); - var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - var assignWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keys2(source), object, customizer); - }); - var at = flatRest(baseAt); - function create8(prototype, properties) { - var result2 = baseCreate(prototype); - return properties == null ? result2 : baseAssign(result2, properties); - } - var defaults = baseRest(function(object, sources) { - object = Object2(object); - var index2 = -1; - var length5 = sources.length; - var guard = length5 > 2 ? sources[2] : undefined2; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length5 = 1; - } - while (++index2 < length5) { - var source = sources[index2]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value2 = object[key]; - if (value2 === undefined2 || eq(value2, objectProto5[key]) && !hasOwnProperty4.call(object, key)) { - object[key] = source[key]; - } - } - } - return object; - }); - var defaultsDeep = baseRest(function(args) { - args.push(undefined2, customDefaultsMerge); - return apply(mergeWith, undefined2, args); - }); - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - function forIn(object, iteratee2) { - return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); - } - function forInRight(object, iteratee2) { - return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); - } - function forOwn(object, iteratee2) { - return object && baseForOwn(object, getIteratee(iteratee2, 3)); - } - function forOwnRight(object, iteratee2) { - return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); - } - function functions(object) { - return object == null ? [] : baseFunctions(object, keys2(object)); - } - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - function get3(object, path, defaultValue) { - var result2 = object == null ? undefined2 : baseGet(object, path); - return result2 === undefined2 ? defaultValue : result2; - } - function has(object, path) { - return object != null && hasPath2(object, path, baseHas); - } - function hasIn(object, path) { - return object != null && hasPath2(object, path, baseHasIn); - } - var invert5 = createInverter(function(result2, value2, key) { - if (value2 != null && typeof value2.toString != "function") { - value2 = nativeObjectToString.call(value2); - } - result2[value2] = key; - }, constant2(identity5)); - var invertBy = createInverter(function(result2, value2, key) { - if (value2 != null && typeof value2.toString != "function") { - value2 = nativeObjectToString.call(value2); - } - if (hasOwnProperty4.call(result2, value2)) { - result2[value2].push(key); - } else { - result2[value2] = [key]; - } - }, getIteratee); - var invoke = baseRest(baseInvoke); - function keys2(object) { - return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object); - } - function keysIn(object) { - return isArrayLike2(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - function mapKeys(object, iteratee2) { - var result2 = {}; - iteratee2 = getIteratee(iteratee2, 3); - baseForOwn(object, function(value2, key, object2) { - baseAssignValue(result2, iteratee2(value2, key, object2), value2); - }); - return result2; - } - function mapValues(object, iteratee2) { - var result2 = {}; - iteratee2 = getIteratee(iteratee2, 3); - baseForOwn(object, function(value2, key, object2) { - baseAssignValue(result2, key, iteratee2(value2, key, object2)); - }); - return result2; - } - var merge3 = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - var omit2 = flatRest(function(object, paths) { - var result2 = {}; - if (object == null) { - return result2; - } - var isDeep = false; - paths = arrayMap(paths, function(path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result2); - if (isDeep) { - result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length5 = paths.length; - while (length5--) { - baseUnset(result2, paths[length5]); - } - return result2; - }); - function omitBy(object, predicate) { - return pickBy(object, negate4(getIteratee(predicate))); - } - var pick2 = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); - function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function(prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function(value2, path) { - return predicate(value2, path[0]); - }); - } - function result(object, path, defaultValue) { - path = castPath(path, object); - var index2 = -1, length5 = path.length; - if (!length5) { - length5 = 1; - object = undefined2; - } - while (++index2 < length5) { - var value2 = object == null ? undefined2 : object[toKey(path[index2])]; - if (value2 === undefined2) { - index2 = length5; - value2 = defaultValue; - } - object = isFunction2(value2) ? value2.call(object) : value2; - } - return object; - } - function set10(object, path, value2) { - return object == null ? object : baseSet(object, path, value2); - } - function setWith(object, path, value2, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return object == null ? object : baseSet(object, path, value2, customizer); - } - var toPairs = createToPairs(keys2); - var toPairsIn = createToPairs(keysIn); - function transform18(object, iteratee2, accumulator) { - var isArr = isArray3(object), isArrLike = isArr || isBuffer(object) || isTypedArray4(object); - iteratee2 = getIteratee(iteratee2, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor() : []; - } else if (isObject4(object)) { - accumulator = isFunction2(Ctor) ? baseCreate(getPrototype(object)) : {}; - } else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function(value2, index2, object2) { - return iteratee2(accumulator, value2, index2, object2); - }); - return accumulator; - } - function unset(object, path) { - return object == null ? true : baseUnset(object, path); - } - function update15(object, path, updater) { - return object == null ? object : baseUpdate2(object, path, castFunction(updater)); - } - function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return object == null ? object : baseUpdate2(object, path, castFunction(updater), customizer); - } - function values2(object) { - return object == null ? [] : baseValues(object, keys2(object)); - } - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - function clamp2(number, lower, upper) { - if (upper === undefined2) { - upper = lower; - lower = undefined2; - } - if (upper !== undefined2) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined2) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - function inRange(number, start, end2) { - start = toFinite(start); - if (end2 === undefined2) { - end2 = start; - start = 0; - } else { - end2 = toFinite(end2); - } - number = toNumber(number); - return baseInRange(number, start, end2); - } - function random5(lower, upper, floating) { - if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined2; - } - if (floating === undefined2) { - if (typeof upper == "boolean") { - floating = upper; - upper = undefined2; - } else if (typeof lower == "boolean") { - floating = lower; - lower = undefined2; - } - } - if (lower === undefined2 && upper === undefined2) { - lower = 0; - upper = 1; - } else { - lower = toFinite(lower); - if (upper === undefined2) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); - } - return baseRandom(lower, upper); - } - var camelCase = createCompounder(function(result2, word2, index2) { - word2 = word2.toLowerCase(); - return result2 + (index2 ? capitalize(word2) : word2); - }); - function capitalize(string) { - return upperFirst2(toString7(string).toLowerCase()); - } - function deburr(string) { - string = toString7(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); - } - function endsWith(string, target, position2) { - string = toString7(string); - target = baseToString(target); - var length5 = string.length; - position2 = position2 === undefined2 ? length5 : baseClamp(toInteger(position2), 0, length5); - var end2 = position2; - position2 -= target.length; - return position2 >= 0 && string.slice(position2, end2) == target; - } - function escape(string) { - string = toString7(string); - return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; - } - function escapeRegExp(string) { - string = toString7(string); - return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; - } - var kebabCase2 = createCompounder(function(result2, word2, index2) { - return result2 + (index2 ? "-" : "") + word2.toLowerCase(); - }); - var lowerCase2 = createCompounder(function(result2, word2, index2) { - return result2 + (index2 ? " " : "") + word2.toLowerCase(); - }); - var lowerFirst = createCaseFirst("toLowerCase"); - function pad2(string, length5, chars) { - string = toString7(string); - length5 = toInteger(length5); - var strLength = length5 ? stringSize(string) : 0; - if (!length5 || strLength >= length5) { - return string; - } - var mid2 = (length5 - strLength) / 2; - return createPadding(nativeFloor(mid2), chars) + string + createPadding(nativeCeil(mid2), chars); - } - function padEnd2(string, length5, chars) { - string = toString7(string); - length5 = toInteger(length5); - var strLength = length5 ? stringSize(string) : 0; - return length5 && strLength < length5 ? string + createPadding(length5 - strLength, chars) : string; - } - function padStart2(string, length5, chars) { - string = toString7(string); - length5 = toInteger(length5); - var strLength = length5 ? stringSize(string) : 0; - return length5 && strLength < length5 ? createPadding(length5 - strLength, chars) + string : string; - } - function parseInt2(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString7(string).replace(reTrimStart, ""), radix || 0); - } - function repeat2(string, n3, guard) { - if (guard ? isIterateeCall(string, n3, guard) : n3 === undefined2) { - n3 = 1; - } else { - n3 = toInteger(n3); - } - return baseRepeat(toString7(string), n3); - } - function replace() { - var args = arguments, string = toString7(args[0]); - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - var snakeCase = createCompounder(function(result2, word2, index2) { - return result2 + (index2 ? "_" : "") + word2.toLowerCase(); - }); - function split(string, separator, limit) { - if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) { - separator = limit = undefined2; - } - limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString7(string); - if (string && (typeof separator == "string" || separator != null && !isRegExp(separator))) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - var startCase = createCompounder(function(result2, word2, index2) { - return result2 + (index2 ? " " : "") + upperFirst2(word2); - }); - function startsWith(string, target, position2) { - string = toString7(string); - position2 = position2 == null ? 0 : baseClamp(toInteger(position2), 0, string.length); - target = baseToString(target); - return string.slice(position2, position2 + target.length) == target; - } - function template2(string, options, guard) { - var settings = lodash.templateSettings; - if (guard && isIterateeCall(string, options, guard)) { - options = undefined2; - } - string = toString7(string); - options = assignInWith({}, options, settings, customDefaultsAssignIn); - var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys2(imports), importsValues = baseValues(imports, importsKeys); - var isEscaping, isEvaluating, index2 = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '"; - var reDelimiters = RegExp2((options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", "g"); - var sourceURL = "//# sourceURL=" + (hasOwnProperty4.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; - string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { - interpolateValue || (interpolateValue = esTemplateValue); - source += string.slice(index2, offset).replace(reUnescapedString, escapeStringChar); - if (escapeValue) { - isEscaping = true; - source += "' +\n__e(" + escapeValue + ") +\n'"; - } - if (evaluateValue) { - isEvaluating = true; - source += "';\n" + evaluateValue + ";\n__p += '"; - } - if (interpolateValue) { - source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; - } - index2 = offset + match.length; - return match; - }); - source += "';\n"; - var variable = hasOwnProperty4.call(options, "variable") && options.variable; - if (!variable) { - source = "with (obj) {\n" + source + "\n}\n"; - } else if (reForbiddenIdentifierChars.test(variable)) { - throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); - } - source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); - source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; - var result2 = attempt(function() { - return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); - }); - result2.source = source; - if (isError(result2)) { - throw result2; - } - return result2; - } - function toLower(value2) { - return toString7(value2).toLowerCase(); - } - function toUpper(value2) { - return toString7(value2).toUpperCase(); - } - function trim(string, chars, guard) { - string = toString7(string); - if (string && (guard || chars === undefined2)) { - return baseTrim(string); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end2 = charsEndIndex(strSymbols, chrSymbols) + 1; - return castSlice(strSymbols, start, end2).join(""); - } - function trimEnd(string, chars, guard) { - string = toString7(string); - if (string && (guard || chars === undefined2)) { - return string.slice(0, trimmedEndIndex(string) + 1); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), end2 = charsEndIndex(strSymbols, stringToArray(chars)) + 1; - return castSlice(strSymbols, 0, end2).join(""); - } - function trimStart(string, chars, guard) { - string = toString7(string); - if (string && (guard || chars === undefined2)) { - return string.replace(reTrimStart, ""); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars)); - return castSlice(strSymbols, start).join(""); - } - function truncate(string, options) { - var length5 = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; - if (isObject4(options)) { - var separator = "separator" in options ? options.separator : separator; - length5 = "length" in options ? toInteger(options.length) : length5; - omission = "omission" in options ? baseToString(options.omission) : omission; - } - string = toString7(string); - var strLength = string.length; - if (hasUnicode(string)) { - var strSymbols = stringToArray(string); - strLength = strSymbols.length; - } - if (length5 >= strLength) { - return string; - } - var end2 = length5 - stringSize(omission); - if (end2 < 1) { - return omission; - } - var result2 = strSymbols ? castSlice(strSymbols, 0, end2).join("") : string.slice(0, end2); - if (separator === undefined2) { - return result2 + omission; - } - if (strSymbols) { - end2 += result2.length - end2; - } - if (isRegExp(separator)) { - if (string.slice(end2).search(separator)) { - var match, substring = result2; - if (!separator.global) { - separator = RegExp2(separator.source, toString7(reFlags.exec(separator)) + "g"); - } - separator.lastIndex = 0; - while (match = separator.exec(substring)) { - var newEnd = match.index; - } - result2 = result2.slice(0, newEnd === undefined2 ? end2 : newEnd); - } - } else if (string.indexOf(baseToString(separator), end2) != end2) { - var index2 = result2.lastIndexOf(separator); - if (index2 > -1) { - result2 = result2.slice(0, index2); - } - } - return result2 + omission; - } - function unescape(string) { - string = toString7(string); - return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; - } - var upperCase = createCompounder(function(result2, word2, index2) { - return result2 + (index2 ? " " : "") + word2.toUpperCase(); - }); - var upperFirst2 = createCaseFirst("toUpperCase"); - function words(string, pattern2, guard) { - string = toString7(string); - pattern2 = guard ? undefined2 : pattern2; - if (pattern2 === undefined2) { - return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); - } - return string.match(pattern2) || []; - } - var attempt = baseRest(function(func, args) { - try { - return apply(func, undefined2, args); - } catch (e4) { - return isError(e4) ? e4 : new Error2(e4); - } - }); - var bindAll = flatRest(function(object, methodNames) { - arrayEach(methodNames, function(key) { - key = toKey(key); - baseAssignValue(object, key, bind3(object[key], object)); - }); - return object; - }); - function cond(pairs2) { - var length5 = pairs2 == null ? 0 : pairs2.length, toIteratee = getIteratee(); - pairs2 = !length5 ? [] : arrayMap(pairs2, function(pair) { - if (typeof pair[1] != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return [toIteratee(pair[0]), pair[1]]; - }); - return baseRest(function(args) { - var index2 = -1; - while (++index2 < length5) { - var pair = pairs2[index2]; - if (apply(pair[0], this, args)) { - return apply(pair[1], this, args); - } - } - }); - } - function conforms(source) { - return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); - } - function constant2(value2) { - return function() { - return value2; - }; - } - function defaultTo(value2, defaultValue) { - return value2 == null || value2 !== value2 ? defaultValue : value2; - } - var flow2 = createFlow(); - var flowRight = createFlow(true); - function identity5(value2) { - return value2; - } - function iteratee(func) { - return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); - } - function matches(source) { - return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); - } - function matchesProperty(path, srcValue) { - return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); - } - var method = baseRest(function(path, args) { - return function(object) { - return baseInvoke(object, path, args); - }; - }); - var methodOf = baseRest(function(object, args) { - return function(path) { - return baseInvoke(object, path, args); - }; - }); - function mixin(object, source, options) { - var props = keys2(source), methodNames = baseFunctions(source, props); - if (options == null && !(isObject4(source) && (methodNames.length || !props.length))) { - options = source; - source = object; - object = this; - methodNames = baseFunctions(source, keys2(source)); - } - var chain2 = !(isObject4(options) && "chain" in options) || !!options.chain, isFunc = isFunction2(object); - arrayEach(methodNames, function(methodName) { - var func = source[methodName]; - object[methodName] = func; - if (isFunc) { - object.prototype[methodName] = function() { - var chainAll = this.__chain__; - if (chain2 || chainAll) { - var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__); - actions.push({ "func": func, "args": arguments, "thisArg": object }); - result2.__chain__ = chainAll; - return result2; - } - return func.apply(object, arrayPush([this.value()], arguments)); - }; - } - }); - return object; - } - function noConflict() { - if (root._ === this) { - root._ = oldDash; - } - return this; - } - function noop2() { - } - function nthArg(n3) { - n3 = toInteger(n3); - return baseRest(function(args) { - return baseNth(args, n3); - }); - } - var over = createOver(arrayMap); - var overEvery = createOver(arrayEvery); - var overSome = createOver(arraySome); - function property(path) { - return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); - } - function propertyOf(object) { - return function(path) { - return object == null ? undefined2 : baseGet(object, path); - }; - } - var range = createRange(); - var rangeRight = createRange(true); - function stubArray() { - return []; - } - function stubFalse() { - return false; - } - function stubObject() { - return {}; - } - function stubString() { - return ""; - } - function stubTrue() { - return true; - } - function times(n3, iteratee2) { - n3 = toInteger(n3); - if (n3 < 1 || n3 > MAX_SAFE_INTEGER4) { - return []; - } - var index2 = MAX_ARRAY_LENGTH, length5 = nativeMin(n3, MAX_ARRAY_LENGTH); - iteratee2 = getIteratee(iteratee2); - n3 -= MAX_ARRAY_LENGTH; - var result2 = baseTimes(length5, iteratee2); - while (++index2 < n3) { - iteratee2(index2); - } - return result2; - } - function toPath(value2) { - if (isArray3(value2)) { - return arrayMap(value2, toKey); - } - return isSymbol(value2) ? [value2] : copyArray(stringToPath(toString7(value2))); - } - function uniqueId5(prefix2) { - var id = ++idCounter; - return toString7(prefix2) + id; - } - var add8 = createMathOperation(function(augend, addend) { - return augend + addend; - }, 0); - var ceil4 = createRound("ceil"); - var divide4 = createMathOperation(function(dividend, divisor) { - return dividend / divisor; - }, 1); - var floor4 = createRound("floor"); - function max8(array) { - return array && array.length ? baseExtremum(array, identity5, baseGt) : undefined2; - } - function maxBy(array, iteratee2) { - return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; - } - function mean(array) { - return baseMean(array, identity5); - } - function meanBy(array, iteratee2) { - return baseMean(array, getIteratee(iteratee2, 2)); - } - function min7(array) { - return array && array.length ? baseExtremum(array, identity5, baseLt) : undefined2; - } - function minBy2(array, iteratee2) { - return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; - } - var multiply7 = createMathOperation(function(multiplier, multiplicand) { - return multiplier * multiplicand; - }, 1); - var round5 = createRound("round"); - var subtract6 = createMathOperation(function(minuend, subtrahend) { - return minuend - subtrahend; - }, 0); - function sum(array) { - return array && array.length ? baseSum(array, identity5) : 0; - } - function sumBy2(array, iteratee2) { - return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; - } - lodash.after = after; - lodash.ary = ary; - lodash.assign = assign2; - lodash.assignIn = assignIn; - lodash.assignInWith = assignInWith; - lodash.assignWith = assignWith; - lodash.at = at; - lodash.before = before; - lodash.bind = bind3; - lodash.bindAll = bindAll; - lodash.bindKey = bindKey; - lodash.castArray = castArray; - lodash.chain = chain; - lodash.chunk = chunk; - lodash.compact = compact; - lodash.concat = concat; - lodash.cond = cond; - lodash.conforms = conforms; - lodash.constant = constant2; - lodash.countBy = countBy; - lodash.create = create8; - lodash.curry = curry; - lodash.curryRight = curryRight; - lodash.debounce = debounce2; - lodash.defaults = defaults; - lodash.defaultsDeep = defaultsDeep; - lodash.defer = defer; - lodash.delay = delay; - lodash.difference = difference2; - lodash.differenceBy = differenceBy; - lodash.differenceWith = differenceWith; - lodash.drop = drop; - lodash.dropRight = dropRight; - lodash.dropRightWhile = dropRightWhile; - lodash.dropWhile = dropWhile; - lodash.fill = fill; - lodash.filter = filter2; - lodash.flatMap = flatMap; - lodash.flatMapDeep = flatMapDeep; - lodash.flatMapDepth = flatMapDepth; - lodash.flatten = flatten2; - lodash.flattenDeep = flattenDeep; - lodash.flattenDepth = flattenDepth; - lodash.flip = flip; - lodash.flow = flow2; - lodash.flowRight = flowRight; - lodash.fromPairs = fromPairs; - lodash.functions = functions; - lodash.functionsIn = functionsIn; - lodash.groupBy = groupBy2; - lodash.initial = initial; - lodash.intersection = intersection2; - lodash.intersectionBy = intersectionBy; - lodash.intersectionWith = intersectionWith; - lodash.invert = invert5; - lodash.invertBy = invertBy; - lodash.invokeMap = invokeMap; - lodash.iteratee = iteratee; - lodash.keyBy = keyBy; - lodash.keys = keys2; - lodash.keysIn = keysIn; - lodash.map = map6; - lodash.mapKeys = mapKeys; - lodash.mapValues = mapValues; - lodash.matches = matches; - lodash.matchesProperty = matchesProperty; - lodash.memoize = memoize; - lodash.merge = merge3; - lodash.mergeWith = mergeWith; - lodash.method = method; - lodash.methodOf = methodOf; - lodash.mixin = mixin; - lodash.negate = negate4; - lodash.nthArg = nthArg; - lodash.omit = omit2; - lodash.omitBy = omitBy; - lodash.once = once; - lodash.orderBy = orderBy; - lodash.over = over; - lodash.overArgs = overArgs; - lodash.overEvery = overEvery; - lodash.overSome = overSome; - lodash.partial = partial; - lodash.partialRight = partialRight; - lodash.partition = partition3; - lodash.pick = pick2; - lodash.pickBy = pickBy; - lodash.property = property; - lodash.propertyOf = propertyOf; - lodash.pull = pull; - lodash.pullAll = pullAll; - lodash.pullAllBy = pullAllBy; - lodash.pullAllWith = pullAllWith; - lodash.pullAt = pullAt3; - lodash.range = range; - lodash.rangeRight = rangeRight; - lodash.rearg = rearg; - lodash.reject = reject; - lodash.remove = remove2; - lodash.rest = rest; - lodash.reverse = reverse; - lodash.sampleSize = sampleSize; - lodash.set = set10; - lodash.setWith = setWith; - lodash.shuffle = shuffle3; - lodash.slice = slice; - lodash.sortBy = sortBy2; - lodash.sortedUniq = sortedUniq; - lodash.sortedUniqBy = sortedUniqBy; - lodash.split = split; - lodash.spread = spread; - lodash.tail = tail; - lodash.take = take; - lodash.takeRight = takeRight; - lodash.takeRightWhile = takeRightWhile; - lodash.takeWhile = takeWhile; - lodash.tap = tap; - lodash.throttle = throttle; - lodash.thru = thru; - lodash.toArray = toArray2; - lodash.toPairs = toPairs; - lodash.toPairsIn = toPairsIn; - lodash.toPath = toPath; - lodash.toPlainObject = toPlainObject; - lodash.transform = transform18; - lodash.unary = unary; - lodash.union = union; - lodash.unionBy = unionBy; - lodash.unionWith = unionWith; - lodash.uniq = uniq5; - lodash.uniqBy = uniqBy; - lodash.uniqWith = uniqWith; - lodash.unset = unset; - lodash.unzip = unzip; - lodash.unzipWith = unzipWith; - lodash.update = update15; - lodash.updateWith = updateWith; - lodash.values = values2; - lodash.valuesIn = valuesIn; - lodash.without = without; - lodash.words = words; - lodash.wrap = wrap; - lodash.xor = xor; - lodash.xorBy = xorBy; - lodash.xorWith = xorWith; - lodash.zip = zip; - lodash.zipObject = zipObject2; - lodash.zipObjectDeep = zipObjectDeep; - lodash.zipWith = zipWith; - lodash.entries = toPairs; - lodash.entriesIn = toPairsIn; - lodash.extend = assignIn; - lodash.extendWith = assignInWith; - mixin(lodash, lodash); - lodash.add = add8; - lodash.attempt = attempt; - lodash.camelCase = camelCase; - lodash.capitalize = capitalize; - lodash.ceil = ceil4; - lodash.clamp = clamp2; - lodash.clone = clone10; - lodash.cloneDeep = cloneDeep; - lodash.cloneDeepWith = cloneDeepWith; - lodash.cloneWith = cloneWith; - lodash.conformsTo = conformsTo; - lodash.deburr = deburr; - lodash.defaultTo = defaultTo; - lodash.divide = divide4; - lodash.endsWith = endsWith; - lodash.eq = eq; - lodash.escape = escape; - lodash.escapeRegExp = escapeRegExp; - lodash.every = every2; - lodash.find = find4; - lodash.findIndex = findIndex2; - lodash.findKey = findKey; - lodash.findLast = findLast; - lodash.findLastIndex = findLastIndex; - lodash.findLastKey = findLastKey; - lodash.floor = floor4; - lodash.forEach = forEach4; - lodash.forEachRight = forEachRight; - lodash.forIn = forIn; - lodash.forInRight = forInRight; - lodash.forOwn = forOwn; - lodash.forOwnRight = forOwnRight; - lodash.get = get3; - lodash.gt = gt; - lodash.gte = gte; - lodash.has = has; - lodash.hasIn = hasIn; - lodash.head = head2; - lodash.identity = identity5; - lodash.includes = includes; - lodash.indexOf = indexOf3; - lodash.inRange = inRange; - lodash.invoke = invoke; - lodash.isArguments = isArguments; - lodash.isArray = isArray3; - lodash.isArrayBuffer = isArrayBuffer; - lodash.isArrayLike = isArrayLike2; - lodash.isArrayLikeObject = isArrayLikeObject; - lodash.isBoolean = isBoolean3; - lodash.isBuffer = isBuffer; - lodash.isDate = isDate2; - lodash.isElement = isElement2; - lodash.isEmpty = isEmpty2; - lodash.isEqual = isEqual3; - lodash.isEqualWith = isEqualWith; - lodash.isError = isError; - lodash.isFinite = isFinite2; - lodash.isFunction = isFunction2; - lodash.isInteger = isInteger3; - lodash.isLength = isLength4; - lodash.isMap = isMap; - lodash.isMatch = isMatch2; - lodash.isMatchWith = isMatchWith; - lodash.isNaN = isNaN6; - lodash.isNative = isNative; - lodash.isNil = isNil2; - lodash.isNull = isNull3; - lodash.isNumber = isNumber7; - lodash.isObject = isObject4; - lodash.isObjectLike = isObjectLike6; - lodash.isPlainObject = isPlainObject3; - lodash.isRegExp = isRegExp; - lodash.isSafeInteger = isSafeInteger; - lodash.isSet = isSet; - lodash.isString = isString2; - lodash.isSymbol = isSymbol; - lodash.isTypedArray = isTypedArray4; - lodash.isUndefined = isUndefined2; - lodash.isWeakMap = isWeakMap; - lodash.isWeakSet = isWeakSet; - lodash.join = join; - lodash.kebabCase = kebabCase2; - lodash.last = last2; - lodash.lastIndexOf = lastIndexOf; - lodash.lowerCase = lowerCase2; - lodash.lowerFirst = lowerFirst; - lodash.lt = lt; - lodash.lte = lte; - lodash.max = max8; - lodash.maxBy = maxBy; - lodash.mean = mean; - lodash.meanBy = meanBy; - lodash.min = min7; - lodash.minBy = minBy2; - lodash.stubArray = stubArray; - lodash.stubFalse = stubFalse; - lodash.stubObject = stubObject; - lodash.stubString = stubString; - lodash.stubTrue = stubTrue; - lodash.multiply = multiply7; - lodash.nth = nth; - lodash.noConflict = noConflict; - lodash.noop = noop2; - lodash.now = now2; - lodash.pad = pad2; - lodash.padEnd = padEnd2; - lodash.padStart = padStart2; - lodash.parseInt = parseInt2; - lodash.random = random5; - lodash.reduce = reduce2; - lodash.reduceRight = reduceRight; - lodash.repeat = repeat2; - lodash.replace = replace; - lodash.result = result; - lodash.round = round5; - lodash.runInContext = runInContext2; - lodash.sample = sample; - lodash.size = size2; - lodash.snakeCase = snakeCase; - lodash.some = some2; - lodash.sortedIndex = sortedIndex; - lodash.sortedIndexBy = sortedIndexBy; - lodash.sortedIndexOf = sortedIndexOf; - lodash.sortedLastIndex = sortedLastIndex; - lodash.sortedLastIndexBy = sortedLastIndexBy; - lodash.sortedLastIndexOf = sortedLastIndexOf; - lodash.startCase = startCase; - lodash.startsWith = startsWith; - lodash.subtract = subtract6; - lodash.sum = sum; - lodash.sumBy = sumBy2; - lodash.template = template2; - lodash.times = times; - lodash.toFinite = toFinite; - lodash.toInteger = toInteger; - lodash.toLength = toLength; - lodash.toLower = toLower; - lodash.toNumber = toNumber; - lodash.toSafeInteger = toSafeInteger; - lodash.toString = toString7; - lodash.toUpper = toUpper; - lodash.trim = trim; - lodash.trimEnd = trimEnd; - lodash.trimStart = trimStart; - lodash.truncate = truncate; - lodash.unescape = unescape; - lodash.uniqueId = uniqueId5; - lodash.upperCase = upperCase; - lodash.upperFirst = upperFirst2; - lodash.each = forEach4; - lodash.eachRight = forEachRight; - lodash.first = head2; - mixin(lodash, function() { - var source = {}; - baseForOwn(lodash, function(func, methodName) { - if (!hasOwnProperty4.call(lodash.prototype, methodName)) { - source[methodName] = func; - } - }); - return source; - }(), { "chain": false }); - lodash.VERSION = VERSION2; - arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { - lodash[methodName].placeholder = lodash; - }); - arrayEach(["drop", "take"], function(methodName, index2) { - LazyWrapper.prototype[methodName] = function(n3) { - n3 = n3 === undefined2 ? 1 : nativeMax(toInteger(n3), 0); - var result2 = this.__filtered__ && !index2 ? new LazyWrapper(this) : this.clone(); - if (result2.__filtered__) { - result2.__takeCount__ = nativeMin(n3, result2.__takeCount__); - } else { - result2.__views__.push({ - "size": nativeMin(n3, MAX_ARRAY_LENGTH), - "type": methodName + (result2.__dir__ < 0 ? "Right" : "") - }); - } - return result2; - }; - LazyWrapper.prototype[methodName + "Right"] = function(n3) { - return this.reverse()[methodName](n3).reverse(); - }; - }); - arrayEach(["filter", "map", "takeWhile"], function(methodName, index2) { - var type2 = index2 + 1, isFilter = type2 == LAZY_FILTER_FLAG || type2 == LAZY_WHILE_FLAG; - LazyWrapper.prototype[methodName] = function(iteratee2) { - var result2 = this.clone(); - result2.__iteratees__.push({ - "iteratee": getIteratee(iteratee2, 3), - "type": type2 - }); - result2.__filtered__ = result2.__filtered__ || isFilter; - return result2; - }; - }); - arrayEach(["head", "last"], function(methodName, index2) { - var takeName = "take" + (index2 ? "Right" : ""); - LazyWrapper.prototype[methodName] = function() { - return this[takeName](1).value()[0]; - }; - }); - arrayEach(["initial", "tail"], function(methodName, index2) { - var dropName = "drop" + (index2 ? "" : "Right"); - LazyWrapper.prototype[methodName] = function() { - return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); - }; - }); - LazyWrapper.prototype.compact = function() { - return this.filter(identity5); - }; - LazyWrapper.prototype.find = function(predicate) { - return this.filter(predicate).head(); - }; - LazyWrapper.prototype.findLast = function(predicate) { - return this.reverse().find(predicate); - }; - LazyWrapper.prototype.invokeMap = baseRest(function(path, args) { - if (typeof path == "function") { - return new LazyWrapper(this); - } - return this.map(function(value2) { - return baseInvoke(value2, path, args); - }); - }); - LazyWrapper.prototype.reject = function(predicate) { - return this.filter(negate4(getIteratee(predicate))); - }; - LazyWrapper.prototype.slice = function(start, end2) { - start = toInteger(start); - var result2 = this; - if (result2.__filtered__ && (start > 0 || end2 < 0)) { - return new LazyWrapper(result2); - } - if (start < 0) { - result2 = result2.takeRight(-start); - } else if (start) { - result2 = result2.drop(start); - } - if (end2 !== undefined2) { - end2 = toInteger(end2); - result2 = end2 < 0 ? result2.dropRight(-end2) : result2.take(end2 - start); - } - return result2; - }; - LazyWrapper.prototype.takeRightWhile = function(predicate) { - return this.reverse().takeWhile(predicate).reverse(); - }; - LazyWrapper.prototype.toArray = function() { - return this.take(MAX_ARRAY_LENGTH); - }; - baseForOwn(LazyWrapper.prototype, function(func, methodName) { - var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); - if (!lodashFunc) { - return; - } - lodash.prototype[methodName] = function() { - var value2 = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value2 instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray3(value2); - var interceptor = function(value3) { - var result3 = lodashFunc.apply(lodash, arrayPush([value3], args)); - return isTaker && chainAll ? result3[0] : result3; - }; - if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { - isLazy = useLazy = false; - } - var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; - if (!retUnwrapped && useLazy) { - value2 = onlyLazy ? value2 : new LazyWrapper(this); - var result2 = func.apply(value2, args); - result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 }); - return new LodashWrapper(result2, chainAll); - } - if (isUnwrapped && onlyLazy) { - return func.apply(this, args); - } - result2 = this.thru(interceptor); - return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; - }; - }); - arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { - var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); - lodash.prototype[methodName] = function() { - var args = arguments; - if (retUnwrapped && !this.__chain__) { - var value2 = this.value(); - return func.apply(isArray3(value2) ? value2 : [], args); - } - return this[chainName](function(value3) { - return func.apply(isArray3(value3) ? value3 : [], args); - }); - }; - }); - baseForOwn(LazyWrapper.prototype, function(func, methodName) { - var lodashFunc = lodash[methodName]; - if (lodashFunc) { - var key = lodashFunc.name + ""; - if (!hasOwnProperty4.call(realNames, key)) { - realNames[key] = []; - } - realNames[key].push({ "name": methodName, "func": lodashFunc }); - } - }); - realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ - "name": "wrapper", - "func": undefined2 - }]; - LazyWrapper.prototype.clone = lazyClone; - LazyWrapper.prototype.reverse = lazyReverse; - LazyWrapper.prototype.value = lazyValue; - lodash.prototype.at = wrapperAt; - lodash.prototype.chain = wrapperChain; - lodash.prototype.commit = wrapperCommit; - lodash.prototype.next = wrapperNext; - lodash.prototype.plant = wrapperPlant; - lodash.prototype.reverse = wrapperReverse; - lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; - lodash.prototype.first = lodash.prototype.head; - if (symIterator) { - lodash.prototype[symIterator] = wrapperToIterator; - } - return lodash; - }; - var _8 = runInContext(); - if (typeof define == "function" && typeof define.amd == "object" && define.amd) { - root._ = _8; - define(function() { - return _8; - }); - } else if (freeModule) { - (freeModule.exports = _8)._ = _8; - freeExports._ = _8; - } else { - root._ = _8; - } - }).call(exports); - } -}); - -// node_modules/@dagrejs/graphlib/lib/lodash.js -var require_lodash2 = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/lodash.js"(exports, module2) { - var lodash; - if (typeof require === "function") { - try { - lodash = require_lodash(); - } catch (e4) { - } - } - if (!lodash) { - lodash = window._; - } - module2.exports = lodash; - } -}); - -// node_modules/@dagrejs/graphlib/lib/graph.js -var require_graph = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/graph.js"(exports, module2) { - "use strict"; - var _8 = require_lodash2(); - module2.exports = Graph10; - var DEFAULT_EDGE_NAME = "\0"; - var GRAPH_NODE = "\0"; - var EDGE_KEY_DELIM = ""; - function Graph10(opts) { - this._isDirected = _8.has(opts, "directed") ? opts.directed : true; - this._isMultigraph = _8.has(opts, "multigraph") ? opts.multigraph : false; - this._isCompound = _8.has(opts, "compound") ? opts.compound : false; - this._label = void 0; - this._defaultNodeLabelFn = _8.constant(void 0); - this._defaultEdgeLabelFn = _8.constant(void 0); - this._nodes = {}; - if (this._isCompound) { - this._parent = {}; - this._children = {}; - this._children[GRAPH_NODE] = {}; - } - this._in = {}; - this._preds = {}; - this._out = {}; - this._sucs = {}; - this._edgeObjs = {}; - this._edgeLabels = {}; - } - Graph10.prototype._nodeCount = 0; - Graph10.prototype._edgeCount = 0; - Graph10.prototype.isDirected = function() { - return this._isDirected; - }; - Graph10.prototype.isMultigraph = function() { - return this._isMultigraph; - }; - Graph10.prototype.isCompound = function() { - return this._isCompound; - }; - Graph10.prototype.setGraph = function(label17) { - this._label = label17; - return this; - }; - Graph10.prototype.graph = function() { - return this._label; - }; - Graph10.prototype.setDefaultNodeLabel = function(newDefault) { - if (!_8.isFunction(newDefault)) { - newDefault = _8.constant(newDefault); - } - this._defaultNodeLabelFn = newDefault; - return this; - }; - Graph10.prototype.nodeCount = function() { - return this._nodeCount; - }; - Graph10.prototype.nodes = function() { - return _8.keys(this._nodes); - }; - Graph10.prototype.sources = function() { - return _8.filter(this.nodes(), _8.bind(function(v3) { - return _8.isEmpty(this._in[v3]); - }, this)); - }; - Graph10.prototype.sinks = function() { - return _8.filter(this.nodes(), _8.bind(function(v3) { - return _8.isEmpty(this._out[v3]); - }, this)); - }; - Graph10.prototype.setNodes = function(vs, value2) { - var args = arguments; - _8.each(vs, _8.bind(function(v3) { - if (args.length > 1) { - this.setNode(v3, value2); - } else { - this.setNode(v3); - } - }, this)); - return this; - }; - Graph10.prototype.setNode = function(v3, value2) { - if (_8.has(this._nodes, v3)) { - if (arguments.length > 1) { - this._nodes[v3] = value2; - } - return this; - } - this._nodes[v3] = arguments.length > 1 ? value2 : this._defaultNodeLabelFn(v3); - if (this._isCompound) { - this._parent[v3] = GRAPH_NODE; - this._children[v3] = {}; - this._children[GRAPH_NODE][v3] = true; - } - this._in[v3] = {}; - this._preds[v3] = {}; - this._out[v3] = {}; - this._sucs[v3] = {}; - ++this._nodeCount; - return this; - }; - Graph10.prototype.node = function(v3) { - return this._nodes[v3]; - }; - Graph10.prototype.hasNode = function(v3) { - return _8.has(this._nodes, v3); - }; - Graph10.prototype.removeNode = function(v3) { - var self2 = this; - if (_8.has(this._nodes, v3)) { - var removeEdge = function(e4) { - self2.removeEdge(self2._edgeObjs[e4]); - }; - delete this._nodes[v3]; - if (this._isCompound) { - this._removeFromParentsChildList(v3); - delete this._parent[v3]; - _8.each(this.children(v3), _8.bind(function(child) { - this.setParent(child); - }, this)); - delete this._children[v3]; - } - _8.each(_8.keys(this._in[v3]), removeEdge); - delete this._in[v3]; - delete this._preds[v3]; - _8.each(_8.keys(this._out[v3]), removeEdge); - delete this._out[v3]; - delete this._sucs[v3]; - --this._nodeCount; - } - return this; - }; - Graph10.prototype.setParent = function(v3, parent) { - if (!this._isCompound) { - throw new Error("Cannot set parent in a non-compound graph"); - } - if (_8.isUndefined(parent)) { - parent = GRAPH_NODE; - } else { - parent += ""; - for (var ancestor = parent; !_8.isUndefined(ancestor); ancestor = this.parent(ancestor)) { - if (ancestor === v3) { - throw new Error("Setting " + parent + " as parent of " + v3 + " would create create a cycle"); - } - } - this.setNode(parent); - } - this.setNode(v3); - this._removeFromParentsChildList(v3); - this._parent[v3] = parent; - this._children[parent][v3] = true; - return this; - }; - Graph10.prototype._removeFromParentsChildList = function(v3) { - delete this._children[this._parent[v3]][v3]; - }; - Graph10.prototype.parent = function(v3) { - if (this._isCompound) { - var parent = this._parent[v3]; - if (parent !== GRAPH_NODE) { - return parent; - } - } - }; - Graph10.prototype.children = function(v3) { - if (_8.isUndefined(v3)) { - v3 = GRAPH_NODE; - } - if (this._isCompound) { - var children = this._children[v3]; - if (children) { - return _8.keys(children); - } - } else if (v3 === GRAPH_NODE) { - return this.nodes(); - } else if (this.hasNode(v3)) { - return []; - } - }; - Graph10.prototype.predecessors = function(v3) { - var predsV = this._preds[v3]; - if (predsV) { - return _8.keys(predsV); - } - }; - Graph10.prototype.successors = function(v3) { - var sucsV = this._sucs[v3]; - if (sucsV) { - return _8.keys(sucsV); - } - }; - Graph10.prototype.neighbors = function(v3) { - var preds = this.predecessors(v3); - if (preds) { - return _8.union(preds, this.successors(v3)); - } - }; - Graph10.prototype.isLeaf = function(v3) { - var neighbors; - if (this.isDirected()) { - neighbors = this.successors(v3); - } else { - neighbors = this.neighbors(v3); - } - return neighbors.length === 0; - }; - Graph10.prototype.filterNodes = function(filter2) { - var copy8 = new this.constructor({ - directed: this._isDirected, - multigraph: this._isMultigraph, - compound: this._isCompound - }); - copy8.setGraph(this.graph()); - _8.each(this._nodes, _8.bind(function(value2, v3) { - if (filter2(v3)) { - copy8.setNode(v3, value2); - } - }, this)); - _8.each(this._edgeObjs, _8.bind(function(e4) { - if (copy8.hasNode(e4.v) && copy8.hasNode(e4.w)) { - copy8.setEdge(e4, this.edge(e4)); - } - }, this)); - var self2 = this; - var parents = {}; - function findParent(v3) { - var parent = self2.parent(v3); - if (parent === void 0 || copy8.hasNode(parent)) { - parents[v3] = parent; - return parent; - } else if (parent in parents) { - return parents[parent]; - } else { - return findParent(parent); - } - } - if (this._isCompound) { - _8.each(copy8.nodes(), function(v3) { - copy8.setParent(v3, findParent(v3)); - }); - } - return copy8; - }; - Graph10.prototype.setDefaultEdgeLabel = function(newDefault) { - if (!_8.isFunction(newDefault)) { - newDefault = _8.constant(newDefault); - } - this._defaultEdgeLabelFn = newDefault; - return this; - }; - Graph10.prototype.edgeCount = function() { - return this._edgeCount; - }; - Graph10.prototype.edges = function() { - return _8.values(this._edgeObjs); - }; - Graph10.prototype.setPath = function(vs, value2) { - var self2 = this, args = arguments; - _8.reduce(vs, function(v3, w4) { - if (args.length > 1) { - self2.setEdge(v3, w4, value2); - } else { - self2.setEdge(v3, w4); - } - return w4; - }); - return this; - }; - Graph10.prototype.setEdge = function() { - var v3, w4, name, value2, valueSpecified = false, arg0 = arguments[0]; - if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) { - v3 = arg0.v; - w4 = arg0.w; - name = arg0.name; - if (arguments.length === 2) { - value2 = arguments[1]; - valueSpecified = true; - } - } else { - v3 = arg0; - w4 = arguments[1]; - name = arguments[3]; - if (arguments.length > 2) { - value2 = arguments[2]; - valueSpecified = true; - } - } - v3 = "" + v3; - w4 = "" + w4; - if (!_8.isUndefined(name)) { - name = "" + name; - } - var e4 = edgeArgsToId(this._isDirected, v3, w4, name); - if (_8.has(this._edgeLabels, e4)) { - if (valueSpecified) { - this._edgeLabels[e4] = value2; - } - return this; - } - if (!_8.isUndefined(name) && !this._isMultigraph) { - throw new Error("Cannot set a named edge when isMultigraph = false"); - } - this.setNode(v3); - this.setNode(w4); - this._edgeLabels[e4] = valueSpecified ? value2 : this._defaultEdgeLabelFn(v3, w4, name); - var edgeObj = edgeArgsToObj(this._isDirected, v3, w4, name); - v3 = edgeObj.v; - w4 = edgeObj.w; - Object.freeze(edgeObj); - this._edgeObjs[e4] = edgeObj; - incrementOrInitEntry(this._preds[w4], v3); - incrementOrInitEntry(this._sucs[v3], w4); - this._in[w4][e4] = edgeObj; - this._out[v3][e4] = edgeObj; - this._edgeCount++; - return this; - }; - Graph10.prototype.edge = function(v3, w4, name) { - var e4 = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v3, w4, name); - return this._edgeLabels[e4]; - }; - Graph10.prototype.hasEdge = function(v3, w4, name) { - var e4 = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v3, w4, name); - return _8.has(this._edgeLabels, e4); - }; - Graph10.prototype.removeEdge = function(v3, w4, name) { - var e4 = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v3, w4, name), edge2 = this._edgeObjs[e4]; - if (edge2) { - v3 = edge2.v; - w4 = edge2.w; - delete this._edgeLabels[e4]; - delete this._edgeObjs[e4]; - decrementOrRemoveEntry(this._preds[w4], v3); - decrementOrRemoveEntry(this._sucs[v3], w4); - delete this._in[w4][e4]; - delete this._out[v3][e4]; - this._edgeCount--; - } - return this; - }; - Graph10.prototype.inEdges = function(v3, u3) { - var inV = this._in[v3]; - if (inV) { - var edges = _8.values(inV); - if (!u3) { - return edges; - } - return _8.filter(edges, function(edge2) { - return edge2.v === u3; - }); - } - }; - Graph10.prototype.outEdges = function(v3, w4) { - var outV = this._out[v3]; - if (outV) { - var edges = _8.values(outV); - if (!w4) { - return edges; - } - return _8.filter(edges, function(edge2) { - return edge2.w === w4; - }); - } - }; - Graph10.prototype.nodeEdges = function(v3, w4) { - var inEdges = this.inEdges(v3, w4); - if (inEdges) { - return inEdges.concat(this.outEdges(v3, w4)); - } - }; - function incrementOrInitEntry(map6, k4) { - if (map6[k4]) { - map6[k4]++; - } else { - map6[k4] = 1; - } - } - function decrementOrRemoveEntry(map6, k4) { - if (!--map6[k4]) { - delete map6[k4]; - } - } - function edgeArgsToId(isDirected, v_, w_, name) { - var v3 = "" + v_; - var w4 = "" + w_; - if (!isDirected && v3 > w4) { - var tmp = v3; - v3 = w4; - w4 = tmp; - } - return v3 + EDGE_KEY_DELIM + w4 + EDGE_KEY_DELIM + (_8.isUndefined(name) ? DEFAULT_EDGE_NAME : name); - } - function edgeArgsToObj(isDirected, v_, w_, name) { - var v3 = "" + v_; - var w4 = "" + w_; - if (!isDirected && v3 > w4) { - var tmp = v3; - v3 = w4; - w4 = tmp; - } - var edgeObj = { v: v3, w: w4 }; - if (name) { - edgeObj.name = name; - } - return edgeObj; - } - function edgeObjToId(isDirected, edgeObj) { - return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name); - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/version.js -var require_version = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/version.js"(exports, module2) { - module2.exports = "2.1.4"; - } -}); - -// node_modules/@dagrejs/graphlib/lib/index.js -var require_lib2 = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/index.js"(exports, module2) { - module2.exports = { - Graph: require_graph(), - version: require_version() - }; - } -}); - -// node_modules/@dagrejs/graphlib/lib/json.js -var require_json = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/json.js"(exports, module2) { - var _8 = require_lodash2(); - var Graph10 = require_graph(); - module2.exports = { - write, - read - }; - function write(g4) { - var json2 = { - options: { - directed: g4.isDirected(), - multigraph: g4.isMultigraph(), - compound: g4.isCompound() - }, - nodes: writeNodes(g4), - edges: writeEdges(g4) - }; - if (!_8.isUndefined(g4.graph())) { - json2.value = _8.clone(g4.graph()); - } - return json2; - } - function writeNodes(g4) { - return _8.map(g4.nodes(), function(v3) { - var nodeValue = g4.node(v3), parent = g4.parent(v3), node = { v: v3 }; - if (!_8.isUndefined(nodeValue)) { - node.value = nodeValue; - } - if (!_8.isUndefined(parent)) { - node.parent = parent; - } - return node; - }); - } - function writeEdges(g4) { - return _8.map(g4.edges(), function(e4) { - var edgeValue = g4.edge(e4), edge2 = { v: e4.v, w: e4.w }; - if (!_8.isUndefined(e4.name)) { - edge2.name = e4.name; - } - if (!_8.isUndefined(edgeValue)) { - edge2.value = edgeValue; - } - return edge2; - }); - } - function read(json2) { - var g4 = new Graph10(json2.options).setGraph(json2.value); - _8.each(json2.nodes, function(entry) { - g4.setNode(entry.v, entry.value); - if (entry.parent) { - g4.setParent(entry.v, entry.parent); - } - }); - _8.each(json2.edges, function(entry) { - g4.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value); - }); - return g4; - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/components.js -var require_components = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/components.js"(exports, module2) { - var _8 = require_lodash2(); - module2.exports = components; - function components(g4) { - var visited = {}, cmpts = [], cmpt; - function dfs2(v3) { - if (_8.has(visited, v3)) - return; - visited[v3] = true; - cmpt.push(v3); - _8.each(g4.successors(v3), dfs2); - _8.each(g4.predecessors(v3), dfs2); - } - _8.each(g4.nodes(), function(v3) { - cmpt = []; - dfs2(v3); - if (cmpt.length) { - cmpts.push(cmpt); - } - }); - return cmpts; - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/data/priority-queue.js -var require_priority_queue = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/data/priority-queue.js"(exports, module2) { - var _8 = require_lodash2(); - module2.exports = PriorityQueue; - function PriorityQueue() { - this._arr = []; - this._keyIndices = {}; - } - PriorityQueue.prototype.size = function() { - return this._arr.length; - }; - PriorityQueue.prototype.keys = function() { - return this._arr.map(function(x6) { - return x6.key; - }); - }; - PriorityQueue.prototype.has = function(key) { - return _8.has(this._keyIndices, key); - }; - PriorityQueue.prototype.priority = function(key) { - var index2 = this._keyIndices[key]; - if (index2 !== void 0) { - return this._arr[index2].priority; - } - }; - PriorityQueue.prototype.min = function() { - if (this.size() === 0) { - throw new Error("Queue underflow"); - } - return this._arr[0].key; - }; - PriorityQueue.prototype.add = function(key, priority) { - var keyIndices = this._keyIndices; - key = String(key); - if (!_8.has(keyIndices, key)) { - var arr = this._arr; - var index2 = arr.length; - keyIndices[key] = index2; - arr.push({ key, priority }); - this._decrease(index2); - return true; - } - return false; - }; - PriorityQueue.prototype.removeMin = function() { - this._swap(0, this._arr.length - 1); - var min7 = this._arr.pop(); - delete this._keyIndices[min7.key]; - this._heapify(0); - return min7.key; - }; - PriorityQueue.prototype.decrease = function(key, priority) { - var index2 = this._keyIndices[key]; - if (priority > this._arr[index2].priority) { - throw new Error("New priority is greater than current priority. Key: " + key + " Old: " + this._arr[index2].priority + " New: " + priority); - } - this._arr[index2].priority = priority; - this._decrease(index2); - }; - PriorityQueue.prototype._heapify = function(i4) { - var arr = this._arr; - var l4 = 2 * i4, r4 = l4 + 1, largest = i4; - if (l4 < arr.length) { - largest = arr[l4].priority < arr[largest].priority ? l4 : largest; - if (r4 < arr.length) { - largest = arr[r4].priority < arr[largest].priority ? r4 : largest; - } - if (largest !== i4) { - this._swap(i4, largest); - this._heapify(largest); - } - } - }; - PriorityQueue.prototype._decrease = function(index2) { - var arr = this._arr; - var priority = arr[index2].priority; - var parent; - while (index2 !== 0) { - parent = index2 >> 1; - if (arr[parent].priority < priority) { - break; - } - this._swap(index2, parent); - index2 = parent; - } - }; - PriorityQueue.prototype._swap = function(i4, j4) { - var arr = this._arr; - var keyIndices = this._keyIndices; - var origArrI = arr[i4]; - var origArrJ = arr[j4]; - arr[i4] = origArrJ; - arr[j4] = origArrI; - keyIndices[origArrJ.key] = i4; - keyIndices[origArrI.key] = j4; - }; - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/dijkstra.js -var require_dijkstra = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/dijkstra.js"(exports, module2) { - var _8 = require_lodash2(); - var PriorityQueue = require_priority_queue(); - module2.exports = dijkstra3; - var DEFAULT_WEIGHT_FUNC = _8.constant(1); - function dijkstra3(g4, source, weightFn, edgeFn) { - return runDijkstra(g4, String(source), weightFn || DEFAULT_WEIGHT_FUNC, edgeFn || function(v3) { - return g4.outEdges(v3); - }); - } - function runDijkstra(g4, source, weightFn, edgeFn) { - var results = {}, pq = new PriorityQueue(), v3, vEntry; - var updateNeighbors = function(edge2) { - var w4 = edge2.v !== v3 ? edge2.v : edge2.w, wEntry = results[w4], weight = weightFn(edge2), distance15 = vEntry.distance + weight; - if (weight < 0) { - throw new Error("dijkstra does not allow negative edge weights. Bad edge: " + edge2 + " Weight: " + weight); - } - if (distance15 < wEntry.distance) { - wEntry.distance = distance15; - wEntry.predecessor = v3; - pq.decrease(w4, distance15); - } - }; - g4.nodes().forEach(function(v4) { - var distance15 = v4 === source ? 0 : Number.POSITIVE_INFINITY; - results[v4] = { distance: distance15 }; - pq.add(v4, distance15); - }); - while (pq.size() > 0) { - v3 = pq.removeMin(); - vEntry = results[v3]; - if (vEntry.distance === Number.POSITIVE_INFINITY) { - break; - } - edgeFn(v3).forEach(updateNeighbors); - } - return results; - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/dijkstra-all.js -var require_dijkstra_all = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/dijkstra-all.js"(exports, module2) { - var dijkstra3 = require_dijkstra(); - var _8 = require_lodash2(); - module2.exports = dijkstraAll; - function dijkstraAll(g4, weightFunc, edgeFunc) { - return _8.transform(g4.nodes(), function(acc, v3) { - acc[v3] = dijkstra3(g4, v3, weightFunc, edgeFunc); - }, {}); - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/tarjan.js -var require_tarjan = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/tarjan.js"(exports, module2) { - var _8 = require_lodash2(); - module2.exports = tarjan; - function tarjan(g4) { - var index2 = 0, stack = [], visited = {}, results = []; - function dfs2(v3) { - var entry = visited[v3] = { - onStack: true, - lowlink: index2, - index: index2++ - }; - stack.push(v3); - g4.successors(v3).forEach(function(w5) { - if (!_8.has(visited, w5)) { - dfs2(w5); - entry.lowlink = Math.min(entry.lowlink, visited[w5].lowlink); - } else if (visited[w5].onStack) { - entry.lowlink = Math.min(entry.lowlink, visited[w5].index); - } - }); - if (entry.lowlink === entry.index) { - var cmpt = [], w4; - do { - w4 = stack.pop(); - visited[w4].onStack = false; - cmpt.push(w4); - } while (v3 !== w4); - results.push(cmpt); - } - } - g4.nodes().forEach(function(v3) { - if (!_8.has(visited, v3)) { - dfs2(v3); - } - }); - return results; - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/find-cycles.js -var require_find_cycles = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/find-cycles.js"(exports, module2) { - var _8 = require_lodash2(); - var tarjan = require_tarjan(); - module2.exports = findCycles; - function findCycles(g4) { - return _8.filter(tarjan(g4), function(cmpt) { - return cmpt.length > 1 || cmpt.length === 1 && g4.hasEdge(cmpt[0], cmpt[0]); - }); - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/floyd-warshall.js -var require_floyd_warshall = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/floyd-warshall.js"(exports, module2) { - var _8 = require_lodash2(); - module2.exports = floydWarshall6; - var DEFAULT_WEIGHT_FUNC = _8.constant(1); - function floydWarshall6(g4, weightFn, edgeFn) { - return runFloydWarshall(g4, weightFn || DEFAULT_WEIGHT_FUNC, edgeFn || function(v3) { - return g4.outEdges(v3); - }); - } - function runFloydWarshall(g4, weightFn, edgeFn) { - var results = {}, nodes = g4.nodes(); - nodes.forEach(function(v3) { - results[v3] = {}; - results[v3][v3] = { distance: 0 }; - nodes.forEach(function(w4) { - if (v3 !== w4) { - results[v3][w4] = { distance: Number.POSITIVE_INFINITY }; - } - }); - edgeFn(v3).forEach(function(edge2) { - var w4 = edge2.v === v3 ? edge2.w : edge2.v, d3 = weightFn(edge2); - results[v3][w4] = { distance: d3, predecessor: v3 }; - }); - }); - nodes.forEach(function(k4) { - var rowK = results[k4]; - nodes.forEach(function(i4) { - var rowI = results[i4]; - nodes.forEach(function(j4) { - var ik = rowI[k4]; - var kj = rowK[j4]; - var ij = rowI[j4]; - var altDistance = ik.distance + kj.distance; - if (altDistance < ij.distance) { - ij.distance = altDistance; - ij.predecessor = kj.predecessor; - } - }); - }); - }); - return results; - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/topsort.js -var require_topsort = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/topsort.js"(exports, module2) { - var _8 = require_lodash2(); - module2.exports = topsort; - topsort.CycleException = CycleException; - function topsort(g4) { - var visited = {}, stack = {}, results = []; - function visit(node) { - if (_8.has(stack, node)) { - throw new CycleException(); - } - if (!_8.has(visited, node)) { - stack[node] = true; - visited[node] = true; - _8.each(g4.predecessors(node), visit); - delete stack[node]; - results.push(node); - } - } - _8.each(g4.sinks(), visit); - if (_8.size(visited) !== g4.nodeCount()) { - throw new CycleException(); - } - return results; - } - function CycleException() { - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/is-acyclic.js -var require_is_acyclic = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/is-acyclic.js"(exports, module2) { - var topsort = require_topsort(); - module2.exports = isAcyclic; - function isAcyclic(g4) { - try { - topsort(g4); - } catch (e4) { - if (e4 instanceof topsort.CycleException) { - return false; - } - throw e4; - } - return true; - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/dfs.js -var require_dfs = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/dfs.js"(exports, module2) { - var _8 = require_lodash2(); - module2.exports = dfs2; - function dfs2(g4, vs, order2) { - if (!_8.isArray(vs)) { - vs = [vs]; - } - var navigation = (g4.isDirected() ? g4.successors : g4.neighbors).bind(g4); - var acc = [], visited = {}; - _8.each(vs, function(v3) { - if (!g4.hasNode(v3)) { - throw new Error("Graph does not have node: " + v3); - } - doDfs(g4, v3, order2 === "post", visited, navigation, acc); - }); - return acc; - } - function doDfs(g4, v3, postorder3, visited, navigation, acc) { - if (!_8.has(visited, v3)) { - visited[v3] = true; - if (!postorder3) { - acc.push(v3); - } - _8.each(navigation(v3), function(w4) { - doDfs(g4, w4, postorder3, visited, navigation, acc); - }); - if (postorder3) { - acc.push(v3); - } - } - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/postorder.js -var require_postorder = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/postorder.js"(exports, module2) { - var dfs2 = require_dfs(); - module2.exports = postorder3; - function postorder3(g4, vs) { - return dfs2(g4, vs, "post"); - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/preorder.js -var require_preorder = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/preorder.js"(exports, module2) { - var dfs2 = require_dfs(); - module2.exports = preorder2; - function preorder2(g4, vs) { - return dfs2(g4, vs, "pre"); - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/prim.js -var require_prim = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/prim.js"(exports, module2) { - var _8 = require_lodash2(); - var Graph10 = require_graph(); - var PriorityQueue = require_priority_queue(); - module2.exports = prim; - function prim(g4, weightFunc) { - var result = new Graph10(), parents = {}, pq = new PriorityQueue(), v3; - function updateNeighbors(edge2) { - var w4 = edge2.v === v3 ? edge2.w : edge2.v, pri = pq.priority(w4); - if (pri !== void 0) { - var edgeWeight = weightFunc(edge2); - if (edgeWeight < pri) { - parents[w4] = v3; - pq.decrease(w4, edgeWeight); - } - } - } - if (g4.nodeCount() === 0) { - return result; - } - _8.each(g4.nodes(), function(v4) { - pq.add(v4, Number.POSITIVE_INFINITY); - result.setNode(v4); - }); - pq.decrease(g4.nodes()[0], 0); - var init = false; - while (pq.size() > 0) { - v3 = pq.removeMin(); - if (_8.has(parents, v3)) { - result.setEdge(v3, parents[v3]); - } else if (init) { - throw new Error("Input graph is not connected: " + g4); - } else { - init = true; - } - g4.nodeEdges(v3).forEach(updateNeighbors); - } - return result; - } - } -}); - -// node_modules/@dagrejs/graphlib/lib/alg/index.js -var require_alg = __commonJS({ - "node_modules/@dagrejs/graphlib/lib/alg/index.js"(exports, module2) { - module2.exports = { - components: require_components(), - dijkstra: require_dijkstra(), - dijkstraAll: require_dijkstra_all(), - findCycles: require_find_cycles(), - floydWarshall: require_floyd_warshall(), - isAcyclic: require_is_acyclic(), - postorder: require_postorder(), - preorder: require_preorder(), - prim: require_prim(), - tarjan: require_tarjan(), - topsort: require_topsort() - }; - } -}); - -// node_modules/@dagrejs/graphlib/index.js -var require_graphlib = __commonJS({ - "node_modules/@dagrejs/graphlib/index.js"(exports, module2) { - var lib = require_lib2(); - module2.exports = { - Graph: lib.Graph, - json: require_json(), - alg: require_alg(), - version: lib.version - }; - } -}); - -// node_modules/regenerator-runtime/runtime.js -var require_runtime = __commonJS({ - "node_modules/regenerator-runtime/runtime.js"(exports, module2) { - var runtime = function(exports2) { - "use strict"; - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined2; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define2(obj, key, value2) { - Object.defineProperty(obj, key, { - value: value2, - enumerable: true, - configurable: true, - writable: true - }); - return obj[key]; - } - try { - define2({}, ""); - } catch (err) { - define2 = function(obj, key, value2) { - return obj[key] = value2; - }; - } - function wrap(innerFn, outerFn, self2, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context2(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self2, context); - return generator; - } - exports2.wrap = wrap; - function tryCatch(fn2, obj, arg) { - try { - return { type: "normal", arg: fn2.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - function Generator() { - } - function GeneratorFunction() { - } - function GeneratorFunctionPrototype() { - } - var IteratorPrototype = {}; - define2(IteratorPrototype, iteratorSymbol, function() { - return this; - }); - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values2([]))); - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = GeneratorFunctionPrototype; - define2(Gp, "constructor", GeneratorFunctionPrototype); - define2(GeneratorFunctionPrototype, "constructor", GeneratorFunction); - GeneratorFunction.displayName = define2(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - define2(prototype, method, function(arg) { - return this._invoke(method, arg); - }); - }); - } - exports2.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - exports2.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - define2(genFun, toStringTagSymbol, "GeneratorFunction"); - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - exports2.awrap = function(arg) { - return { __await: arg }; - }; - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value2 = result.value; - if (value2 && typeof value2 === "object" && hasOwn.call(value2, "__await")) { - return PromiseImpl.resolve(value2.__await).then(function(value3) { - invoke("next", value3, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - return PromiseImpl.resolve(value2).then(function(unwrapped) { - result.value = unwrapped; - resolve(result); - }, function(error) { - return invoke("throw", error, resolve, reject); - }); - } - } - var previousPromise; - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - this._invoke = enqueue; - } - defineIteratorMethods(AsyncIterator.prototype); - define2(AsyncIterator.prototype, asyncIteratorSymbol, function() { - return this; - }); - exports2.AsyncIterator = AsyncIterator; - exports2.async = function(innerFn, outerFn, self2, tryLocsList, PromiseImpl) { - if (PromiseImpl === void 0) - PromiseImpl = Promise; - var iter = new AsyncIterator(wrap(innerFn, outerFn, self2, tryLocsList), PromiseImpl); - return exports2.isGeneratorFunction(outerFn) ? iter : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - function makeInvokeMethod(innerFn, self2, context) { - var state2 = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state2 === GenStateExecuting) { - throw new Error("Generator is already running"); - } - if (state2 === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - return doneResult(); - } - context.method = method; - context.arg = arg; - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) - continue; - return delegateResult; - } - } - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state2 === GenStateSuspendedStart) { - state2 = GenStateCompleted; - throw context.arg; - } - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - state2 = GenStateExecuting; - var record = tryCatch(innerFn, self2, context); - if (record.type === "normal") { - state2 = context.done ? GenStateCompleted : GenStateSuspendedYield; - if (record.arg === ContinueSentinel) { - continue; - } - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state2 = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined2) { - context.delegate = null; - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined2; - maybeInvokeDelegate(delegate, context); - if (context.method === "throw") { - return ContinueSentinel; - } - } - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - return ContinueSentinel; - } - var record = tryCatch(method, delegate.iterator, context.arg); - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - var info = record.arg; - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined2; - } - } else { - return info; - } - context.delegate = null; - return ContinueSentinel; - } - defineIteratorMethods(Gp); - define2(Gp, toStringTagSymbol, "Generator"); - define2(Gp, iteratorSymbol, function() { - return this; - }); - define2(Gp, "toString", function() { - return "[object Generator]"; - }); - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - if (1 in locs) { - entry.catchLoc = locs[1]; - } - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - function Context2(tryLocsList) { - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - exports2.keys = function(object) { - var keys2 = []; - for (var key in object) { - keys2.push(key); - } - keys2.reverse(); - return function next() { - while (keys2.length) { - var key2 = keys2.pop(); - if (key2 in object) { - next.value = key2; - next.done = false; - return next; - } - } - next.done = true; - return next; - }; - }; - function values2(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - if (typeof iterable.next === "function") { - return iterable; - } - if (!isNaN(iterable.length)) { - var i4 = -1, next = function next2() { - while (++i4 < iterable.length) { - if (hasOwn.call(iterable, i4)) { - next2.value = iterable[i4]; - next2.done = false; - return next2; - } - } - next2.value = undefined2; - next2.done = true; - return next2; - }; - return next.next = next; - } - } - return { next: doneResult }; - } - exports2.values = values2; - function doneResult() { - return { value: undefined2, done: true }; - } - Context2.prototype = { - constructor: Context2, - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined2; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined2; - this.tryEntries.forEach(resetTryEntry); - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined2; - } - } - } - }, - stop: function() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - return this.rval; - }, - dispatchException: function(exception2) { - if (this.done) { - throw exception2; - } - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception2; - context.next = loc; - if (caught) { - context.method = "next"; - context.arg = undefined2; - } - return !!caught; - } - for (var i4 = this.tryEntries.length - 1; i4 >= 0; --i4) { - var entry = this.tryEntries[i4]; - var record = entry.completion; - if (entry.tryLoc === "root") { - return handle("end"); - } - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function(type2, arg) { - for (var i4 = this.tryEntries.length - 1; i4 >= 0; --i4) { - var entry = this.tryEntries[i4]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - if (finallyEntry && (type2 === "break" || type2 === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type2; - record.arg = arg; - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - return this.complete(record); - }, - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - return ContinueSentinel; - }, - finish: function(finallyLoc) { - for (var i4 = this.tryEntries.length - 1; i4 >= 0; --i4) { - var entry = this.tryEntries[i4]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function(tryLoc) { - for (var i4 = this.tryEntries.length - 1; i4 >= 0; --i4) { - var entry = this.tryEntries[i4]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values2(iterable), - resultName, - nextLoc - }; - if (this.method === "next") { - this.arg = undefined2; - } - return ContinueSentinel; - } - }; - return exports2; - }(typeof module2 === "object" ? module2.exports : {}); - try { - regeneratorRuntime = runtime; - } catch (accidentalStrictMode) { - if (typeof globalThis === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); - } - } - } -}); - -// node_modules/@babel/runtime/regenerator/index.js -var require_regenerator = __commonJS({ - "node_modules/@babel/runtime/regenerator/index.js"(exports, module2) { - module2.exports = require_runtime(); - } -}); - -// node_modules/inversify/lib/constants/metadata_keys.js -var require_metadata_keys = __commonJS({ - "node_modules/inversify/lib/constants/metadata_keys.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.NON_CUSTOM_TAG_KEYS = exports.POST_CONSTRUCT = exports.DESIGN_PARAM_TYPES = exports.PARAM_TYPES = exports.TAGGED_PROP = exports.TAGGED = exports.MULTI_INJECT_TAG = exports.INJECT_TAG = exports.OPTIONAL_TAG = exports.UNMANAGED_TAG = exports.NAME_TAG = exports.NAMED_TAG = void 0; - exports.NAMED_TAG = "named"; - exports.NAME_TAG = "name"; - exports.UNMANAGED_TAG = "unmanaged"; - exports.OPTIONAL_TAG = "optional"; - exports.INJECT_TAG = "inject"; - exports.MULTI_INJECT_TAG = "multi_inject"; - exports.TAGGED = "inversify:tagged"; - exports.TAGGED_PROP = "inversify:tagged_props"; - exports.PARAM_TYPES = "inversify:paramtypes"; - exports.DESIGN_PARAM_TYPES = "design:paramtypes"; - exports.POST_CONSTRUCT = "post_construct"; - function getNonCustomTagKeys() { - return [ - exports.INJECT_TAG, - exports.MULTI_INJECT_TAG, - exports.NAME_TAG, - exports.UNMANAGED_TAG, - exports.NAMED_TAG, - exports.OPTIONAL_TAG - ]; - } - exports.NON_CUSTOM_TAG_KEYS = getNonCustomTagKeys(); - } -}); - -// node_modules/inversify/lib/constants/literal_types.js -var require_literal_types = __commonJS({ - "node_modules/inversify/lib/constants/literal_types.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.TargetTypeEnum = exports.BindingTypeEnum = exports.BindingScopeEnum = void 0; - var BindingScopeEnum = { - Request: "Request", - Singleton: "Singleton", - Transient: "Transient" - }; - exports.BindingScopeEnum = BindingScopeEnum; - var BindingTypeEnum = { - ConstantValue: "ConstantValue", - Constructor: "Constructor", - DynamicValue: "DynamicValue", - Factory: "Factory", - Function: "Function", - Instance: "Instance", - Invalid: "Invalid", - Provider: "Provider" - }; - exports.BindingTypeEnum = BindingTypeEnum; - var TargetTypeEnum = { - ClassProperty: "ClassProperty", - ConstructorArgument: "ConstructorArgument", - Variable: "Variable" - }; - exports.TargetTypeEnum = TargetTypeEnum; - } -}); - -// node_modules/inversify/lib/utils/id.js -var require_id2 = __commonJS({ - "node_modules/inversify/lib/utils/id.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.id = void 0; - var idCounter = 0; - function id() { - return idCounter++; - } - exports.id = id; - } -}); - -// node_modules/inversify/lib/bindings/binding.js -var require_binding = __commonJS({ - "node_modules/inversify/lib/bindings/binding.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Binding = void 0; - var literal_types_1 = require_literal_types(); - var id_1 = require_id2(); - var Binding = function() { - function Binding2(serviceIdentifier, scope) { - this.id = id_1.id(); - this.activated = false; - this.serviceIdentifier = serviceIdentifier; - this.scope = scope; - this.type = literal_types_1.BindingTypeEnum.Invalid; - this.constraint = function(request) { - return true; - }; - this.implementationType = null; - this.cache = null; - this.factory = null; - this.provider = null; - this.onActivation = null; - this.dynamicValue = null; - } - Binding2.prototype.clone = function() { - var clone10 = new Binding2(this.serviceIdentifier, this.scope); - clone10.activated = clone10.scope === literal_types_1.BindingScopeEnum.Singleton ? this.activated : false; - clone10.implementationType = this.implementationType; - clone10.dynamicValue = this.dynamicValue; - clone10.scope = this.scope; - clone10.type = this.type; - clone10.factory = this.factory; - clone10.provider = this.provider; - clone10.constraint = this.constraint; - clone10.onActivation = this.onActivation; - clone10.cache = this.cache; - return clone10; - }; - return Binding2; - }(); - exports.Binding = Binding; - } -}); - -// node_modules/inversify/lib/constants/error_msgs.js -var require_error_msgs = __commonJS({ - "node_modules/inversify/lib/constants/error_msgs.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.STACK_OVERFLOW = exports.CIRCULAR_DEPENDENCY_IN_FACTORY = exports.POST_CONSTRUCT_ERROR = exports.MULTIPLE_POST_CONSTRUCT_METHODS = exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = exports.ARGUMENTS_LENGTH_MISMATCH = exports.INVALID_DECORATOR_OPERATION = exports.INVALID_TO_SELF_VALUE = exports.INVALID_FUNCTION_BINDING = exports.INVALID_MIDDLEWARE_RETURN = exports.NO_MORE_SNAPSHOTS_AVAILABLE = exports.INVALID_BINDING_TYPE = exports.NOT_IMPLEMENTED = exports.CIRCULAR_DEPENDENCY = exports.UNDEFINED_INJECT_ANNOTATION = exports.MISSING_INJECT_ANNOTATION = exports.MISSING_INJECTABLE_ANNOTATION = exports.NOT_REGISTERED = exports.CANNOT_UNBIND = exports.AMBIGUOUS_MATCH = exports.KEY_NOT_FOUND = exports.NULL_ARGUMENT = exports.DUPLICATED_METADATA = exports.DUPLICATED_INJECTABLE_DECORATOR = void 0; - exports.DUPLICATED_INJECTABLE_DECORATOR = "Cannot apply @injectable decorator multiple times."; - exports.DUPLICATED_METADATA = "Metadata key was used more than once in a parameter:"; - exports.NULL_ARGUMENT = "NULL argument"; - exports.KEY_NOT_FOUND = "Key Not Found"; - exports.AMBIGUOUS_MATCH = "Ambiguous match found for serviceIdentifier:"; - exports.CANNOT_UNBIND = "Could not unbind serviceIdentifier:"; - exports.NOT_REGISTERED = "No matching bindings found for serviceIdentifier:"; - exports.MISSING_INJECTABLE_ANNOTATION = "Missing required @injectable annotation in:"; - exports.MISSING_INJECT_ANNOTATION = "Missing required @inject or @multiInject annotation in:"; - var UNDEFINED_INJECT_ANNOTATION = function(name) { - return "@inject called with undefined this could mean that the class " + name + " has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation."; - }; - exports.UNDEFINED_INJECT_ANNOTATION = UNDEFINED_INJECT_ANNOTATION; - exports.CIRCULAR_DEPENDENCY = "Circular dependency found:"; - exports.NOT_IMPLEMENTED = "Sorry, this feature is not fully implemented yet."; - exports.INVALID_BINDING_TYPE = "Invalid binding type:"; - exports.NO_MORE_SNAPSHOTS_AVAILABLE = "No snapshot available to restore."; - exports.INVALID_MIDDLEWARE_RETURN = "Invalid return type in middleware. Middleware must return!"; - exports.INVALID_FUNCTION_BINDING = "Value provided to function binding must be a function!"; - exports.INVALID_TO_SELF_VALUE = "The toSelf function can only be applied when a constructor is used as service identifier"; - exports.INVALID_DECORATOR_OPERATION = "The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property."; - var ARGUMENTS_LENGTH_MISMATCH = function() { - var values2 = []; - for (var _i = 0; _i < arguments.length; _i++) { - values2[_i] = arguments[_i]; - } - return "The number of constructor arguments in the derived class " + (values2[0] + " must be >= than the number of constructor arguments of its base class."); - }; - exports.ARGUMENTS_LENGTH_MISMATCH = ARGUMENTS_LENGTH_MISMATCH; - exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = "Invalid Container constructor argument. Container options must be an object."; - exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = "Invalid Container option. Default scope must be a string ('singleton' or 'transient')."; - exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = "Invalid Container option. Auto bind injectable must be a boolean"; - exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = "Invalid Container option. Skip base check must be a boolean"; - exports.MULTIPLE_POST_CONSTRUCT_METHODS = "Cannot apply @postConstruct decorator multiple times in the same class"; - var POST_CONSTRUCT_ERROR = function() { - var values2 = []; - for (var _i = 0; _i < arguments.length; _i++) { - values2[_i] = arguments[_i]; - } - return "@postConstruct error in class " + values2[0] + ": " + values2[1]; - }; - exports.POST_CONSTRUCT_ERROR = POST_CONSTRUCT_ERROR; - var CIRCULAR_DEPENDENCY_IN_FACTORY = function() { - var values2 = []; - for (var _i = 0; _i < arguments.length; _i++) { - values2[_i] = arguments[_i]; - } - return "It looks like there is a circular dependency " + ("in one of the '" + values2[0] + "' bindings. Please investigate bindings with") + ("service identifier '" + values2[1] + "'."); - }; - exports.CIRCULAR_DEPENDENCY_IN_FACTORY = CIRCULAR_DEPENDENCY_IN_FACTORY; - exports.STACK_OVERFLOW = "Maximum call stack size exceeded"; - } -}); - -// node_modules/inversify/lib/planning/metadata_reader.js -var require_metadata_reader = __commonJS({ - "node_modules/inversify/lib/planning/metadata_reader.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MetadataReader = void 0; - var METADATA_KEY = require_metadata_keys(); - var MetadataReader = function() { - function MetadataReader2() { - } - MetadataReader2.prototype.getConstructorMetadata = function(constructorFunc) { - var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc); - var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc); - return { - compilerGeneratedMetadata, - userGeneratedMetadata: userGeneratedMetadata || {} - }; - }; - MetadataReader2.prototype.getPropertiesMetadata = function(constructorFunc) { - var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || []; - return userGeneratedMetadata; - }; - return MetadataReader2; - }(); - exports.MetadataReader = MetadataReader; - } -}); - -// node_modules/inversify/lib/bindings/binding_count.js -var require_binding_count = __commonJS({ - "node_modules/inversify/lib/bindings/binding_count.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BindingCount = void 0; - var BindingCount = { - MultipleBindingsAvailable: 2, - NoBindingsAvailable: 0, - OnlyOneBindingAvailable: 1 - }; - exports.BindingCount = BindingCount; - } -}); - -// node_modules/inversify/lib/utils/exceptions.js -var require_exceptions = __commonJS({ - "node_modules/inversify/lib/utils/exceptions.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.isStackOverflowExeption = void 0; - var ERROR_MSGS = require_error_msgs(); - function isStackOverflowExeption(error) { - return error instanceof RangeError || error.message === ERROR_MSGS.STACK_OVERFLOW; - } - exports.isStackOverflowExeption = isStackOverflowExeption; - } -}); - -// node_modules/inversify/lib/utils/serialization.js -var require_serialization = __commonJS({ - "node_modules/inversify/lib/utils/serialization.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.circularDependencyToException = exports.listMetadataForTarget = exports.listRegisteredBindingsForServiceIdentifier = exports.getServiceIdentifierAsString = exports.getFunctionName = void 0; - var ERROR_MSGS = require_error_msgs(); - function getServiceIdentifierAsString(serviceIdentifier) { - if (typeof serviceIdentifier === "function") { - var _serviceIdentifier = serviceIdentifier; - return _serviceIdentifier.name; - } else if (typeof serviceIdentifier === "symbol") { - return serviceIdentifier.toString(); - } else { - var _serviceIdentifier = serviceIdentifier; - return _serviceIdentifier; - } - } - exports.getServiceIdentifierAsString = getServiceIdentifierAsString; - function listRegisteredBindingsForServiceIdentifier(container2, serviceIdentifier, getBindings) { - var registeredBindingsList = ""; - var registeredBindings = getBindings(container2, serviceIdentifier); - if (registeredBindings.length !== 0) { - registeredBindingsList = "\nRegistered bindings:"; - registeredBindings.forEach(function(binding) { - var name = "Object"; - if (binding.implementationType !== null) { - name = getFunctionName(binding.implementationType); - } - registeredBindingsList = registeredBindingsList + "\n " + name; - if (binding.constraint.metaData) { - registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData; - } - }); - } - return registeredBindingsList; - } - exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier; - function alreadyDependencyChain(request, serviceIdentifier) { - if (request.parentRequest === null) { - return false; - } else if (request.parentRequest.serviceIdentifier === serviceIdentifier) { - return true; - } else { - return alreadyDependencyChain(request.parentRequest, serviceIdentifier); - } - } - function dependencyChainToString(request) { - function _createStringArr(req, result) { - if (result === void 0) { - result = []; - } - var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier); - result.push(serviceIdentifier); - if (req.parentRequest !== null) { - return _createStringArr(req.parentRequest, result); - } - return result; - } - var stringArr = _createStringArr(request); - return stringArr.reverse().join(" --> "); - } - function circularDependencyToException(request) { - request.childRequests.forEach(function(childRequest) { - if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) { - var services = dependencyChainToString(childRequest); - throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services); - } else { - circularDependencyToException(childRequest); - } - }); - } - exports.circularDependencyToException = circularDependencyToException; - function listMetadataForTarget(serviceIdentifierString, target) { - if (target.isTagged() || target.isNamed()) { - var m_1 = ""; - var namedTag = target.getNamedTag(); - var otherTags = target.getCustomTags(); - if (namedTag !== null) { - m_1 += namedTag.toString() + "\n"; - } - if (otherTags !== null) { - otherTags.forEach(function(tag) { - m_1 += tag.toString() + "\n"; - }); - } - return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1; - } else { - return " " + serviceIdentifierString; - } - } - exports.listMetadataForTarget = listMetadataForTarget; - function getFunctionName(v3) { - if (v3.name) { - return v3.name; - } else { - var name_1 = v3.toString(); - var match = name_1.match(/^function\s*([^\s(]+)/); - return match ? match[1] : "Anonymous function: " + name_1; - } - } - exports.getFunctionName = getFunctionName; - } -}); - -// node_modules/inversify/lib/planning/context.js -var require_context = __commonJS({ - "node_modules/inversify/lib/planning/context.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Context = void 0; - var id_1 = require_id2(); - var Context2 = function() { - function Context3(container2) { - this.id = id_1.id(); - this.container = container2; - } - Context3.prototype.addPlan = function(plan) { - this.plan = plan; - }; - Context3.prototype.setCurrentRequest = function(currentRequest) { - this.currentRequest = currentRequest; - }; - return Context3; - }(); - exports.Context = Context2; - } -}); - -// node_modules/inversify/lib/planning/metadata.js -var require_metadata = __commonJS({ - "node_modules/inversify/lib/planning/metadata.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Metadata = void 0; - var METADATA_KEY = require_metadata_keys(); - var Metadata = function() { - function Metadata2(key, value2) { - this.key = key; - this.value = value2; - } - Metadata2.prototype.toString = function() { - if (this.key === METADATA_KEY.NAMED_TAG) { - return "named: " + this.value.toString() + " "; - } else { - return "tagged: { key:" + this.key.toString() + ", value: " + this.value + " }"; - } - }; - return Metadata2; - }(); - exports.Metadata = Metadata; - } -}); - -// node_modules/inversify/lib/planning/plan.js -var require_plan = __commonJS({ - "node_modules/inversify/lib/planning/plan.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Plan = void 0; - var Plan = function() { - function Plan2(parentContext, rootRequest) { - this.parentContext = parentContext; - this.rootRequest = rootRequest; - } - return Plan2; - }(); - exports.Plan = Plan; - } -}); - -// node_modules/inversify/lib/annotation/decorator_utils.js -var require_decorator_utils = __commonJS({ - "node_modules/inversify/lib/annotation/decorator_utils.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.tagProperty = exports.tagParameter = exports.decorate = void 0; - var ERROR_MSGS = require_error_msgs(); - var METADATA_KEY = require_metadata_keys(); - function tagParameter(annotationTarget, propertyName, parameterIndex, metadata) { - var metadataKey = METADATA_KEY.TAGGED; - _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex); - } - exports.tagParameter = tagParameter; - function tagProperty(annotationTarget, propertyName, metadata) { - var metadataKey = METADATA_KEY.TAGGED_PROP; - _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata); - } - exports.tagProperty = tagProperty; - function _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) { - var paramsOrPropertiesMetadata = {}; - var isParameterDecorator = typeof parameterIndex === "number"; - var key = parameterIndex !== void 0 && isParameterDecorator ? parameterIndex.toString() : propertyName; - if (isParameterDecorator && propertyName !== void 0) { - throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION); - } - if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) { - paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget); - } - var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key]; - if (!Array.isArray(paramOrPropertyMetadata)) { - paramOrPropertyMetadata = []; - } else { - for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) { - var m4 = paramOrPropertyMetadata_1[_i]; - if (m4.key === metadata.key) { - throw new Error(ERROR_MSGS.DUPLICATED_METADATA + " " + m4.key.toString()); - } - } - } - paramOrPropertyMetadata.push(metadata); - paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata; - Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget); - } - function _decorate(decorators, target) { - Reflect.decorate(decorators, target); - } - function _param(paramIndex, decorator) { - return function(target, key) { - decorator(target, key, paramIndex); - }; - } - function decorate(decorator, target, parameterIndex) { - if (typeof parameterIndex === "number") { - _decorate([_param(parameterIndex, decorator)], target); - } else if (typeof parameterIndex === "string") { - Reflect.decorate([decorator], target, parameterIndex); - } else { - _decorate([decorator], target); - } - } - exports.decorate = decorate; - } -}); - -// node_modules/inversify/lib/annotation/inject.js -var require_inject = __commonJS({ - "node_modules/inversify/lib/annotation/inject.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.inject = exports.LazyServiceIdentifer = void 0; - var error_msgs_1 = require_error_msgs(); - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - var decorator_utils_1 = require_decorator_utils(); - var LazyServiceIdentifer = function() { - function LazyServiceIdentifer2(cb) { - this._cb = cb; - } - LazyServiceIdentifer2.prototype.unwrap = function() { - return this._cb(); - }; - return LazyServiceIdentifer2; - }(); - exports.LazyServiceIdentifer = LazyServiceIdentifer; - function inject24(serviceIdentifier) { - return function(target, targetKey, index2) { - if (serviceIdentifier === void 0) { - throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name)); - } - var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier); - if (typeof index2 === "number") { - decorator_utils_1.tagParameter(target, targetKey, index2, metadata); - } else { - decorator_utils_1.tagProperty(target, targetKey, metadata); - } - }; - } - exports.inject = inject24; - } -}); - -// node_modules/inversify/lib/planning/queryable_string.js -var require_queryable_string = __commonJS({ - "node_modules/inversify/lib/planning/queryable_string.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.QueryableString = void 0; - var QueryableString = function() { - function QueryableString2(str8) { - this.str = str8; - } - QueryableString2.prototype.startsWith = function(searchString) { - return this.str.indexOf(searchString) === 0; - }; - QueryableString2.prototype.endsWith = function(searchString) { - var reverseString = ""; - var reverseSearchString = searchString.split("").reverse().join(""); - reverseString = this.str.split("").reverse().join(""); - return this.startsWith.call({ str: reverseString }, reverseSearchString); - }; - QueryableString2.prototype.contains = function(searchString) { - return this.str.indexOf(searchString) !== -1; - }; - QueryableString2.prototype.equals = function(compareString) { - return this.str === compareString; - }; - QueryableString2.prototype.value = function() { - return this.str; - }; - return QueryableString2; - }(); - exports.QueryableString = QueryableString; - } -}); - -// node_modules/inversify/lib/planning/target.js -var require_target = __commonJS({ - "node_modules/inversify/lib/planning/target.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Target = void 0; - var METADATA_KEY = require_metadata_keys(); - var id_1 = require_id2(); - var metadata_1 = require_metadata(); - var queryable_string_1 = require_queryable_string(); - var Target2 = function() { - function Target3(type2, name, serviceIdentifier, namedOrTagged) { - this.id = id_1.id(); - this.type = type2; - this.serviceIdentifier = serviceIdentifier; - this.name = new queryable_string_1.QueryableString(name || ""); - this.metadata = new Array(); - var metadataItem = null; - if (typeof namedOrTagged === "string") { - metadataItem = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged); - } else if (namedOrTagged instanceof metadata_1.Metadata) { - metadataItem = namedOrTagged; - } - if (metadataItem !== null) { - this.metadata.push(metadataItem); - } - } - Target3.prototype.hasTag = function(key) { - for (var _i = 0, _a6 = this.metadata; _i < _a6.length; _i++) { - var m4 = _a6[_i]; - if (m4.key === key) { - return true; - } - } - return false; - }; - Target3.prototype.isArray = function() { - return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG); - }; - Target3.prototype.matchesArray = function(name) { - return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name); - }; - Target3.prototype.isNamed = function() { - return this.hasTag(METADATA_KEY.NAMED_TAG); - }; - Target3.prototype.isTagged = function() { - return this.metadata.some(function(metadata) { - return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function(key) { - return metadata.key !== key; - }); - }); - }; - Target3.prototype.isOptional = function() { - return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true); - }; - Target3.prototype.getNamedTag = function() { - if (this.isNamed()) { - return this.metadata.filter(function(m4) { - return m4.key === METADATA_KEY.NAMED_TAG; - })[0]; - } - return null; - }; - Target3.prototype.getCustomTags = function() { - if (this.isTagged()) { - return this.metadata.filter(function(metadata) { - return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function(key) { - return metadata.key !== key; - }); - }); - } else { - return null; - } - }; - Target3.prototype.matchesNamedTag = function(name) { - return this.matchesTag(METADATA_KEY.NAMED_TAG)(name); - }; - Target3.prototype.matchesTag = function(key) { - var _this = this; - return function(value2) { - for (var _i = 0, _a6 = _this.metadata; _i < _a6.length; _i++) { - var m4 = _a6[_i]; - if (m4.key === key && m4.value === value2) { - return true; - } - } - return false; - }; - }; - return Target3; - }(); - exports.Target = Target2; - } -}); - -// node_modules/inversify/lib/planning/reflection_utils.js -var require_reflection_utils = __commonJS({ - "node_modules/inversify/lib/planning/reflection_utils.js"(exports) { - "use strict"; - var __spreadArray4 = exports && exports.__spreadArray || function(to, from) { - for (var i4 = 0, il = from.length, j4 = to.length; i4 < il; i4++, j4++) - to[j4] = from[i4]; - return to; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getFunctionName = exports.getBaseClassDependencyCount = exports.getDependencies = void 0; - var inject_1 = require_inject(); - var ERROR_MSGS = require_error_msgs(); - var literal_types_1 = require_literal_types(); - var METADATA_KEY = require_metadata_keys(); - var serialization_1 = require_serialization(); - Object.defineProperty(exports, "getFunctionName", { enumerable: true, get: function() { - return serialization_1.getFunctionName; - } }); - var target_1 = require_target(); - function getDependencies(metadataReader, func) { - var constructorName = serialization_1.getFunctionName(func); - var targets = getTargets(metadataReader, constructorName, func, false); - return targets; - } - exports.getDependencies = getDependencies; - function getTargets(metadataReader, constructorName, func, isBaseClass) { - var metadata = metadataReader.getConstructorMetadata(func); - var serviceIdentifiers = metadata.compilerGeneratedMetadata; - if (serviceIdentifiers === void 0) { - var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + " " + constructorName + "."; - throw new Error(msg); - } - var constructorArgsMetadata = metadata.userGeneratedMetadata; - var keys2 = Object.keys(constructorArgsMetadata); - var hasUserDeclaredUnknownInjections = func.length === 0 && keys2.length > 0; - var hasOptionalParameters = keys2.length > func.length; - var iterations = hasUserDeclaredUnknownInjections || hasOptionalParameters ? keys2.length : func.length; - var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations); - var propertyTargets = getClassPropsAsTargets(metadataReader, func); - var targets = __spreadArray4(__spreadArray4([], constructorTargets), propertyTargets); - return targets; - } - function getConstructorArgsAsTarget(index2, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) { - var targetMetadata = constructorArgsMetadata[index2.toString()] || []; - var metadata = formatTargetMetadata(targetMetadata); - var isManaged = metadata.unmanaged !== true; - var serviceIdentifier = serviceIdentifiers[index2]; - var injectIdentifier = metadata.inject || metadata.multiInject; - serviceIdentifier = injectIdentifier ? injectIdentifier : serviceIdentifier; - if (serviceIdentifier instanceof inject_1.LazyServiceIdentifer) { - serviceIdentifier = serviceIdentifier.unwrap(); - } - if (isManaged) { - var isObject4 = serviceIdentifier === Object; - var isFunction2 = serviceIdentifier === Function; - var isUndefined2 = serviceIdentifier === void 0; - var isUnknownType = isObject4 || isFunction2 || isUndefined2; - if (!isBaseClass && isUnknownType) { - var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + " argument " + index2 + " in class " + constructorName + "."; - throw new Error(msg); - } - var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier); - target.metadata = targetMetadata; - return target; - } - return null; - } - function getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) { - var targets = []; - for (var i4 = 0; i4 < iterations; i4++) { - var index2 = i4; - var target = getConstructorArgsAsTarget(index2, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata); - if (target !== null) { - targets.push(target); - } - } - return targets; - } - function getClassPropsAsTargets(metadataReader, constructorFunc) { - var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc); - var targets = []; - var keys2 = Object.keys(classPropsMetadata); - for (var _i = 0, keys_1 = keys2; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - var targetMetadata = classPropsMetadata[key]; - var metadata = formatTargetMetadata(classPropsMetadata[key]); - var targetName = metadata.targetName || key; - var serviceIdentifier = metadata.inject || metadata.multiInject; - var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, targetName, serviceIdentifier); - target.metadata = targetMetadata; - targets.push(target); - } - var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor; - if (baseConstructor !== Object) { - var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor); - targets = __spreadArray4(__spreadArray4([], targets), baseTargets); - } - return targets; - } - function getBaseClassDependencyCount(metadataReader, func) { - var baseConstructor = Object.getPrototypeOf(func.prototype).constructor; - if (baseConstructor !== Object) { - var baseConstructorName = serialization_1.getFunctionName(baseConstructor); - var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true); - var metadata = targets.map(function(t4) { - return t4.metadata.filter(function(m4) { - return m4.key === METADATA_KEY.UNMANAGED_TAG; - }); - }); - var unmanagedCount = [].concat.apply([], metadata).length; - var dependencyCount = targets.length - unmanagedCount; - if (dependencyCount > 0) { - return dependencyCount; - } else { - return getBaseClassDependencyCount(metadataReader, baseConstructor); - } - } else { - return 0; - } - } - exports.getBaseClassDependencyCount = getBaseClassDependencyCount; - function formatTargetMetadata(targetMetadata) { - var targetMetadataMap = {}; - targetMetadata.forEach(function(m4) { - targetMetadataMap[m4.key.toString()] = m4.value; - }); - return { - inject: targetMetadataMap[METADATA_KEY.INJECT_TAG], - multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG], - targetName: targetMetadataMap[METADATA_KEY.NAME_TAG], - unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG] - }; - } - } -}); - -// node_modules/inversify/lib/planning/request.js -var require_request = __commonJS({ - "node_modules/inversify/lib/planning/request.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Request = void 0; - var id_1 = require_id2(); - var Request = function() { - function Request2(serviceIdentifier, parentContext, parentRequest, bindings, target) { - this.id = id_1.id(); - this.serviceIdentifier = serviceIdentifier; - this.parentContext = parentContext; - this.parentRequest = parentRequest; - this.target = target; - this.childRequests = []; - this.bindings = Array.isArray(bindings) ? bindings : [bindings]; - this.requestScope = parentRequest === null ? new Map() : null; - } - Request2.prototype.addChildRequest = function(serviceIdentifier, bindings, target) { - var child = new Request2(serviceIdentifier, this.parentContext, this, bindings, target); - this.childRequests.push(child); - return child; - }; - return Request2; - }(); - exports.Request = Request; - } -}); - -// node_modules/inversify/lib/planning/planner.js -var require_planner = __commonJS({ - "node_modules/inversify/lib/planning/planner.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getBindingDictionary = exports.createMockRequest = exports.plan = void 0; - var binding_count_1 = require_binding_count(); - var ERROR_MSGS = require_error_msgs(); - var literal_types_1 = require_literal_types(); - var METADATA_KEY = require_metadata_keys(); - var exceptions_1 = require_exceptions(); - var serialization_1 = require_serialization(); - var context_1 = require_context(); - var metadata_1 = require_metadata(); - var plan_1 = require_plan(); - var reflection_utils_1 = require_reflection_utils(); - var request_1 = require_request(); - var target_1 = require_target(); - function getBindingDictionary(cntnr) { - return cntnr._bindingDictionary; - } - exports.getBindingDictionary = getBindingDictionary; - function _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value2) { - var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG; - var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier); - var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata); - if (key !== void 0) { - var tagMetadata = new metadata_1.Metadata(key, value2); - target.metadata.push(tagMetadata); - } - return target; - } - function _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) { - var bindings = getBindings(context.container, target.serviceIdentifier); - var activeBindings = []; - if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable && context.container.options.autoBindInjectable && typeof target.serviceIdentifier === "function" && metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) { - context.container.bind(target.serviceIdentifier).toSelf(); - bindings = getBindings(context.container, target.serviceIdentifier); - } - if (!avoidConstraints) { - activeBindings = bindings.filter(function(binding) { - var request = new request_1.Request(binding.serviceIdentifier, context, parentRequest, binding, target); - return binding.constraint(request); - }); - } else { - activeBindings = bindings; - } - _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container); - return activeBindings; - } - function _validateActiveBindingCount(serviceIdentifier, bindings, target, container2) { - switch (bindings.length) { - case binding_count_1.BindingCount.NoBindingsAvailable: - if (target.isOptional()) { - return bindings; - } else { - var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier); - var msg = ERROR_MSGS.NOT_REGISTERED; - msg += serialization_1.listMetadataForTarget(serviceIdentifierString, target); - msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container2, serviceIdentifierString, getBindings); - throw new Error(msg); - } - case binding_count_1.BindingCount.OnlyOneBindingAvailable: - if (!target.isArray()) { - return bindings; - } - case binding_count_1.BindingCount.MultipleBindingsAvailable: - default: - if (!target.isArray()) { - var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier); - var msg = ERROR_MSGS.AMBIGUOUS_MATCH + " " + serviceIdentifierString; - msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container2, serviceIdentifierString, getBindings); - throw new Error(msg); - } else { - return bindings; - } - } - } - function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) { - var activeBindings; - var childRequest; - if (parentRequest === null) { - activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target); - childRequest = new request_1.Request(serviceIdentifier, context, null, activeBindings, target); - var thePlan = new plan_1.Plan(context, childRequest); - context.addPlan(thePlan); - } else { - activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target); - childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target); - } - activeBindings.forEach(function(binding) { - var subChildRequest = null; - if (target.isArray()) { - subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target); - } else { - if (binding.cache) { - return; - } - subChildRequest = childRequest; - } - if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) { - var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType); - if (!context.container.options.skipBaseClassChecks) { - var baseClassDependencyCount = reflection_utils_1.getBaseClassDependencyCount(metadataReader, binding.implementationType); - if (dependencies.length < baseClassDependencyCount) { - var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(reflection_utils_1.getFunctionName(binding.implementationType)); - throw new Error(error); - } - } - dependencies.forEach(function(dependency) { - _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency); - }); - } - }); - } - function getBindings(container2, serviceIdentifier) { - var bindings = []; - var bindingDictionary = getBindingDictionary(container2); - if (bindingDictionary.hasKey(serviceIdentifier)) { - bindings = bindingDictionary.get(serviceIdentifier); - } else if (container2.parent !== null) { - bindings = getBindings(container2.parent, serviceIdentifier); - } - return bindings; - } - function plan(metadataReader, container2, isMultiInject, targetType, serviceIdentifier, key, value2, avoidConstraints) { - if (avoidConstraints === void 0) { - avoidConstraints = false; - } - var context = new context_1.Context(container2); - var target = _createTarget(isMultiInject, targetType, serviceIdentifier, "", key, value2); - try { - _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target); - return context; - } catch (error) { - if (exceptions_1.isStackOverflowExeption(error)) { - if (context.plan) { - serialization_1.circularDependencyToException(context.plan.rootRequest); - } - } - throw error; - } - } - exports.plan = plan; - function createMockRequest(container2, serviceIdentifier, key, value2) { - var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, "", serviceIdentifier, new metadata_1.Metadata(key, value2)); - var context = new context_1.Context(container2); - var request = new request_1.Request(serviceIdentifier, context, null, [], target); - return request; - } - exports.createMockRequest = createMockRequest; - } -}); - -// node_modules/inversify/lib/resolution/instantiation.js -var require_instantiation = __commonJS({ - "node_modules/inversify/lib/resolution/instantiation.js"(exports) { - "use strict"; - var __spreadArray4 = exports && exports.__spreadArray || function(to, from) { - for (var i4 = 0, il = from.length, j4 = to.length; i4 < il; i4++, j4++) - to[j4] = from[i4]; - return to; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.resolveInstance = void 0; - var error_msgs_1 = require_error_msgs(); - var literal_types_1 = require_literal_types(); - var METADATA_KEY = require_metadata_keys(); - function _injectProperties(instance, childRequests, resolveRequest) { - var propertyInjectionsRequests = childRequests.filter(function(childRequest) { - return childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ClassProperty; - }); - var propertyInjections = propertyInjectionsRequests.map(resolveRequest); - propertyInjectionsRequests.forEach(function(r4, index2) { - var propertyName = ""; - propertyName = r4.target.name.value(); - var injection = propertyInjections[index2]; - instance[propertyName] = injection; - }); - return instance; - } - function _createInstance(Func, injections) { - return new (Func.bind.apply(Func, __spreadArray4([void 0], injections)))(); - } - function _postConstruct(constr, result) { - if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) { - var data3 = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr); - try { - result[data3.value](); - } catch (e4) { - throw new Error(error_msgs_1.POST_CONSTRUCT_ERROR(constr.name, e4.message)); - } - } - } - function resolveInstance(constr, childRequests, resolveRequest) { - var result = null; - if (childRequests.length > 0) { - var constructorInjectionsRequests = childRequests.filter(function(childRequest) { - return childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ConstructorArgument; - }); - var constructorInjections = constructorInjectionsRequests.map(resolveRequest); - result = _createInstance(constr, constructorInjections); - result = _injectProperties(result, childRequests, resolveRequest); - } else { - result = new constr(); - } - _postConstruct(constr, result); - return result; - } - exports.resolveInstance = resolveInstance; - } -}); - -// node_modules/inversify/lib/resolution/resolver.js -var require_resolver = __commonJS({ - "node_modules/inversify/lib/resolution/resolver.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.resolve = void 0; - var ERROR_MSGS = require_error_msgs(); - var literal_types_1 = require_literal_types(); - var exceptions_1 = require_exceptions(); - var serialization_1 = require_serialization(); - var instantiation_1 = require_instantiation(); - var invokeFactory = function(factoryType, serviceIdentifier, fn2) { - try { - return fn2(); - } catch (error) { - if (exceptions_1.isStackOverflowExeption(error)) { - throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString())); - } else { - throw error; - } - } - }; - var _resolveRequest = function(requestScope) { - return function(request) { - request.parentContext.setCurrentRequest(request); - var bindings = request.bindings; - var childRequests = request.childRequests; - var targetIsAnArray = request.target && request.target.isArray(); - var targetParentIsNotAnArray = !request.parentRequest || !request.parentRequest.target || !request.target || !request.parentRequest.target.matchesArray(request.target.serviceIdentifier); - if (targetIsAnArray && targetParentIsNotAnArray) { - return childRequests.map(function(childRequest) { - var _f = _resolveRequest(requestScope); - return _f(childRequest); - }); - } else { - var result = null; - if (request.target.isOptional() && bindings.length === 0) { - return void 0; - } - var binding_1 = bindings[0]; - var isSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Singleton; - var isRequestSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Request; - if (isSingleton && binding_1.activated) { - return binding_1.cache; - } - if (isRequestSingleton && requestScope !== null && requestScope.has(binding_1.id)) { - return requestScope.get(binding_1.id); - } - if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) { - result = binding_1.cache; - binding_1.activated = true; - } else if (binding_1.type === literal_types_1.BindingTypeEnum.Function) { - result = binding_1.cache; - binding_1.activated = true; - } else if (binding_1.type === literal_types_1.BindingTypeEnum.Constructor) { - result = binding_1.implementationType; - } else if (binding_1.type === literal_types_1.BindingTypeEnum.DynamicValue && binding_1.dynamicValue !== null) { - result = invokeFactory("toDynamicValue", binding_1.serviceIdentifier, function() { - return binding_1.dynamicValue(request.parentContext); - }); - } else if (binding_1.type === literal_types_1.BindingTypeEnum.Factory && binding_1.factory !== null) { - result = invokeFactory("toFactory", binding_1.serviceIdentifier, function() { - return binding_1.factory(request.parentContext); - }); - } else if (binding_1.type === literal_types_1.BindingTypeEnum.Provider && binding_1.provider !== null) { - result = invokeFactory("toProvider", binding_1.serviceIdentifier, function() { - return binding_1.provider(request.parentContext); - }); - } else if (binding_1.type === literal_types_1.BindingTypeEnum.Instance && binding_1.implementationType !== null) { - result = instantiation_1.resolveInstance(binding_1.implementationType, childRequests, _resolveRequest(requestScope)); - } else { - var serviceIdentifier = serialization_1.getServiceIdentifierAsString(request.serviceIdentifier); - throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifier); - } - if (typeof binding_1.onActivation === "function") { - result = binding_1.onActivation(request.parentContext, result); - } - if (isSingleton) { - binding_1.cache = result; - binding_1.activated = true; - } - if (isRequestSingleton && requestScope !== null && !requestScope.has(binding_1.id)) { - requestScope.set(binding_1.id, result); - } - return result; - } - }; - }; - function resolve(context) { - var _f = _resolveRequest(context.plan.rootRequest.requestScope); - return _f(context.plan.rootRequest); - } - exports.resolve = resolve; - } -}); - -// node_modules/inversify/lib/syntax/constraint_helpers.js -var require_constraint_helpers = __commonJS({ - "node_modules/inversify/lib/syntax/constraint_helpers.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.typeConstraint = exports.namedConstraint = exports.taggedConstraint = exports.traverseAncerstors = void 0; - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - var traverseAncerstors = function(request, constraint) { - var parent = request.parentRequest; - if (parent !== null) { - return constraint(parent) ? true : traverseAncerstors(parent, constraint); - } else { - return false; - } - }; - exports.traverseAncerstors = traverseAncerstors; - var taggedConstraint = function(key) { - return function(value2) { - var constraint = function(request) { - return request !== null && request.target !== null && request.target.matchesTag(key)(value2); - }; - constraint.metaData = new metadata_1.Metadata(key, value2); - return constraint; - }; - }; - exports.taggedConstraint = taggedConstraint; - var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG); - exports.namedConstraint = namedConstraint; - var typeConstraint = function(type2) { - return function(request) { - var binding = null; - if (request !== null) { - binding = request.bindings[0]; - if (typeof type2 === "string") { - var serviceIdentifier = binding.serviceIdentifier; - return serviceIdentifier === type2; - } else { - var constructor = request.bindings[0].implementationType; - return type2 === constructor; - } - } - return false; - }; - }; - exports.typeConstraint = typeConstraint; - } -}); - -// node_modules/inversify/lib/syntax/binding_when_syntax.js -var require_binding_when_syntax = __commonJS({ - "node_modules/inversify/lib/syntax/binding_when_syntax.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BindingWhenSyntax = void 0; - var binding_on_syntax_1 = require_binding_on_syntax(); - var constraint_helpers_1 = require_constraint_helpers(); - var BindingWhenSyntax = function() { - function BindingWhenSyntax2(binding) { - this._binding = binding; - } - BindingWhenSyntax2.prototype.when = function(constraint) { - this._binding.constraint = constraint; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenTargetNamed = function(name) { - this._binding.constraint = constraint_helpers_1.namedConstraint(name); - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenTargetIsDefault = function() { - this._binding.constraint = function(request) { - var targetIsDefault = request.target !== null && !request.target.isNamed() && !request.target.isTagged(); - return targetIsDefault; - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenTargetTagged = function(tag, value2) { - this._binding.constraint = constraint_helpers_1.taggedConstraint(tag)(value2); - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenInjectedInto = function(parent) { - this._binding.constraint = function(request) { - return constraint_helpers_1.typeConstraint(parent)(request.parentRequest); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenParentNamed = function(name) { - this._binding.constraint = function(request) { - return constraint_helpers_1.namedConstraint(name)(request.parentRequest); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenParentTagged = function(tag, value2) { - this._binding.constraint = function(request) { - return constraint_helpers_1.taggedConstraint(tag)(value2)(request.parentRequest); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenAnyAncestorIs = function(ancestor) { - this._binding.constraint = function(request) { - return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor)); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenNoAncestorIs = function(ancestor) { - this._binding.constraint = function(request) { - return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor)); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenAnyAncestorNamed = function(name) { - this._binding.constraint = function(request) { - return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name)); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenNoAncestorNamed = function(name) { - this._binding.constraint = function(request) { - return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name)); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenAnyAncestorTagged = function(tag, value2) { - this._binding.constraint = function(request) { - return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value2)); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenNoAncestorTagged = function(tag, value2) { - this._binding.constraint = function(request) { - return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value2)); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenAnyAncestorMatches = function(constraint) { - this._binding.constraint = function(request) { - return constraint_helpers_1.traverseAncerstors(request, constraint); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - BindingWhenSyntax2.prototype.whenNoAncestorMatches = function(constraint) { - this._binding.constraint = function(request) { - return !constraint_helpers_1.traverseAncerstors(request, constraint); - }; - return new binding_on_syntax_1.BindingOnSyntax(this._binding); - }; - return BindingWhenSyntax2; - }(); - exports.BindingWhenSyntax = BindingWhenSyntax; - } -}); - -// node_modules/inversify/lib/syntax/binding_on_syntax.js -var require_binding_on_syntax = __commonJS({ - "node_modules/inversify/lib/syntax/binding_on_syntax.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BindingOnSyntax = void 0; - var binding_when_syntax_1 = require_binding_when_syntax(); - var BindingOnSyntax = function() { - function BindingOnSyntax2(binding) { - this._binding = binding; - } - BindingOnSyntax2.prototype.onActivation = function(handler) { - this._binding.onActivation = handler; - return new binding_when_syntax_1.BindingWhenSyntax(this._binding); - }; - return BindingOnSyntax2; - }(); - exports.BindingOnSyntax = BindingOnSyntax; - } -}); - -// node_modules/inversify/lib/syntax/binding_when_on_syntax.js -var require_binding_when_on_syntax = __commonJS({ - "node_modules/inversify/lib/syntax/binding_when_on_syntax.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BindingWhenOnSyntax = void 0; - var binding_on_syntax_1 = require_binding_on_syntax(); - var binding_when_syntax_1 = require_binding_when_syntax(); - var BindingWhenOnSyntax = function() { - function BindingWhenOnSyntax2(binding) { - this._binding = binding; - this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding); - this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding); - } - BindingWhenOnSyntax2.prototype.when = function(constraint) { - return this._bindingWhenSyntax.when(constraint); - }; - BindingWhenOnSyntax2.prototype.whenTargetNamed = function(name) { - return this._bindingWhenSyntax.whenTargetNamed(name); - }; - BindingWhenOnSyntax2.prototype.whenTargetIsDefault = function() { - return this._bindingWhenSyntax.whenTargetIsDefault(); - }; - BindingWhenOnSyntax2.prototype.whenTargetTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenTargetTagged(tag, value2); - }; - BindingWhenOnSyntax2.prototype.whenInjectedInto = function(parent) { - return this._bindingWhenSyntax.whenInjectedInto(parent); - }; - BindingWhenOnSyntax2.prototype.whenParentNamed = function(name) { - return this._bindingWhenSyntax.whenParentNamed(name); - }; - BindingWhenOnSyntax2.prototype.whenParentTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenParentTagged(tag, value2); - }; - BindingWhenOnSyntax2.prototype.whenAnyAncestorIs = function(ancestor) { - return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor); - }; - BindingWhenOnSyntax2.prototype.whenNoAncestorIs = function(ancestor) { - return this._bindingWhenSyntax.whenNoAncestorIs(ancestor); - }; - BindingWhenOnSyntax2.prototype.whenAnyAncestorNamed = function(name) { - return this._bindingWhenSyntax.whenAnyAncestorNamed(name); - }; - BindingWhenOnSyntax2.prototype.whenAnyAncestorTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value2); - }; - BindingWhenOnSyntax2.prototype.whenNoAncestorNamed = function(name) { - return this._bindingWhenSyntax.whenNoAncestorNamed(name); - }; - BindingWhenOnSyntax2.prototype.whenNoAncestorTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value2); - }; - BindingWhenOnSyntax2.prototype.whenAnyAncestorMatches = function(constraint) { - return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint); - }; - BindingWhenOnSyntax2.prototype.whenNoAncestorMatches = function(constraint) { - return this._bindingWhenSyntax.whenNoAncestorMatches(constraint); - }; - BindingWhenOnSyntax2.prototype.onActivation = function(handler) { - return this._bindingOnSyntax.onActivation(handler); - }; - return BindingWhenOnSyntax2; - }(); - exports.BindingWhenOnSyntax = BindingWhenOnSyntax; - } -}); - -// node_modules/inversify/lib/syntax/binding_in_syntax.js -var require_binding_in_syntax = __commonJS({ - "node_modules/inversify/lib/syntax/binding_in_syntax.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BindingInSyntax = void 0; - var literal_types_1 = require_literal_types(); - var binding_when_on_syntax_1 = require_binding_when_on_syntax(); - var BindingInSyntax = function() { - function BindingInSyntax2(binding) { - this._binding = binding; - } - BindingInSyntax2.prototype.inRequestScope = function() { - this._binding.scope = literal_types_1.BindingScopeEnum.Request; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - BindingInSyntax2.prototype.inSingletonScope = function() { - this._binding.scope = literal_types_1.BindingScopeEnum.Singleton; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - BindingInSyntax2.prototype.inTransientScope = function() { - this._binding.scope = literal_types_1.BindingScopeEnum.Transient; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - return BindingInSyntax2; - }(); - exports.BindingInSyntax = BindingInSyntax; - } -}); - -// node_modules/inversify/lib/syntax/binding_in_when_on_syntax.js -var require_binding_in_when_on_syntax = __commonJS({ - "node_modules/inversify/lib/syntax/binding_in_when_on_syntax.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BindingInWhenOnSyntax = void 0; - var binding_in_syntax_1 = require_binding_in_syntax(); - var binding_on_syntax_1 = require_binding_on_syntax(); - var binding_when_syntax_1 = require_binding_when_syntax(); - var BindingInWhenOnSyntax = function() { - function BindingInWhenOnSyntax2(binding) { - this._binding = binding; - this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding); - this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding); - this._bindingInSyntax = new binding_in_syntax_1.BindingInSyntax(binding); - } - BindingInWhenOnSyntax2.prototype.inRequestScope = function() { - return this._bindingInSyntax.inRequestScope(); - }; - BindingInWhenOnSyntax2.prototype.inSingletonScope = function() { - return this._bindingInSyntax.inSingletonScope(); - }; - BindingInWhenOnSyntax2.prototype.inTransientScope = function() { - return this._bindingInSyntax.inTransientScope(); - }; - BindingInWhenOnSyntax2.prototype.when = function(constraint) { - return this._bindingWhenSyntax.when(constraint); - }; - BindingInWhenOnSyntax2.prototype.whenTargetNamed = function(name) { - return this._bindingWhenSyntax.whenTargetNamed(name); - }; - BindingInWhenOnSyntax2.prototype.whenTargetIsDefault = function() { - return this._bindingWhenSyntax.whenTargetIsDefault(); - }; - BindingInWhenOnSyntax2.prototype.whenTargetTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenTargetTagged(tag, value2); - }; - BindingInWhenOnSyntax2.prototype.whenInjectedInto = function(parent) { - return this._bindingWhenSyntax.whenInjectedInto(parent); - }; - BindingInWhenOnSyntax2.prototype.whenParentNamed = function(name) { - return this._bindingWhenSyntax.whenParentNamed(name); - }; - BindingInWhenOnSyntax2.prototype.whenParentTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenParentTagged(tag, value2); - }; - BindingInWhenOnSyntax2.prototype.whenAnyAncestorIs = function(ancestor) { - return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor); - }; - BindingInWhenOnSyntax2.prototype.whenNoAncestorIs = function(ancestor) { - return this._bindingWhenSyntax.whenNoAncestorIs(ancestor); - }; - BindingInWhenOnSyntax2.prototype.whenAnyAncestorNamed = function(name) { - return this._bindingWhenSyntax.whenAnyAncestorNamed(name); - }; - BindingInWhenOnSyntax2.prototype.whenAnyAncestorTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value2); - }; - BindingInWhenOnSyntax2.prototype.whenNoAncestorNamed = function(name) { - return this._bindingWhenSyntax.whenNoAncestorNamed(name); - }; - BindingInWhenOnSyntax2.prototype.whenNoAncestorTagged = function(tag, value2) { - return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value2); - }; - BindingInWhenOnSyntax2.prototype.whenAnyAncestorMatches = function(constraint) { - return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint); - }; - BindingInWhenOnSyntax2.prototype.whenNoAncestorMatches = function(constraint) { - return this._bindingWhenSyntax.whenNoAncestorMatches(constraint); - }; - BindingInWhenOnSyntax2.prototype.onActivation = function(handler) { - return this._bindingOnSyntax.onActivation(handler); - }; - return BindingInWhenOnSyntax2; - }(); - exports.BindingInWhenOnSyntax = BindingInWhenOnSyntax; - } -}); - -// node_modules/inversify/lib/syntax/binding_to_syntax.js -var require_binding_to_syntax = __commonJS({ - "node_modules/inversify/lib/syntax/binding_to_syntax.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BindingToSyntax = void 0; - var ERROR_MSGS = require_error_msgs(); - var literal_types_1 = require_literal_types(); - var binding_in_when_on_syntax_1 = require_binding_in_when_on_syntax(); - var binding_when_on_syntax_1 = require_binding_when_on_syntax(); - var BindingToSyntax = function() { - function BindingToSyntax2(binding) { - this._binding = binding; - } - BindingToSyntax2.prototype.to = function(constructor) { - this._binding.type = literal_types_1.BindingTypeEnum.Instance; - this._binding.implementationType = constructor; - return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding); - }; - BindingToSyntax2.prototype.toSelf = function() { - if (typeof this._binding.serviceIdentifier !== "function") { - throw new Error("" + ERROR_MSGS.INVALID_TO_SELF_VALUE); - } - var self2 = this._binding.serviceIdentifier; - return this.to(self2); - }; - BindingToSyntax2.prototype.toConstantValue = function(value2) { - this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue; - this._binding.cache = value2; - this._binding.dynamicValue = null; - this._binding.implementationType = null; - this._binding.scope = literal_types_1.BindingScopeEnum.Singleton; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - BindingToSyntax2.prototype.toDynamicValue = function(func) { - this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue; - this._binding.cache = null; - this._binding.dynamicValue = func; - this._binding.implementationType = null; - return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding); - }; - BindingToSyntax2.prototype.toConstructor = function(constructor) { - this._binding.type = literal_types_1.BindingTypeEnum.Constructor; - this._binding.implementationType = constructor; - this._binding.scope = literal_types_1.BindingScopeEnum.Singleton; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - BindingToSyntax2.prototype.toFactory = function(factory) { - this._binding.type = literal_types_1.BindingTypeEnum.Factory; - this._binding.factory = factory; - this._binding.scope = literal_types_1.BindingScopeEnum.Singleton; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - BindingToSyntax2.prototype.toFunction = function(func) { - if (typeof func !== "function") { - throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING); - } - var bindingWhenOnSyntax = this.toConstantValue(func); - this._binding.type = literal_types_1.BindingTypeEnum.Function; - this._binding.scope = literal_types_1.BindingScopeEnum.Singleton; - return bindingWhenOnSyntax; - }; - BindingToSyntax2.prototype.toAutoFactory = function(serviceIdentifier) { - this._binding.type = literal_types_1.BindingTypeEnum.Factory; - this._binding.factory = function(context) { - var autofactory = function() { - return context.container.get(serviceIdentifier); - }; - return autofactory; - }; - this._binding.scope = literal_types_1.BindingScopeEnum.Singleton; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - BindingToSyntax2.prototype.toProvider = function(provider) { - this._binding.type = literal_types_1.BindingTypeEnum.Provider; - this._binding.provider = provider; - this._binding.scope = literal_types_1.BindingScopeEnum.Singleton; - return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding); - }; - BindingToSyntax2.prototype.toService = function(service) { - this.toDynamicValue(function(context) { - return context.container.get(service); - }); - }; - return BindingToSyntax2; - }(); - exports.BindingToSyntax = BindingToSyntax; - } -}); - -// node_modules/inversify/lib/container/container_snapshot.js -var require_container_snapshot = __commonJS({ - "node_modules/inversify/lib/container/container_snapshot.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ContainerSnapshot = void 0; - var ContainerSnapshot = function() { - function ContainerSnapshot2() { - } - ContainerSnapshot2.of = function(bindings, middleware) { - var snapshot = new ContainerSnapshot2(); - snapshot.bindings = bindings; - snapshot.middleware = middleware; - return snapshot; - }; - return ContainerSnapshot2; - }(); - exports.ContainerSnapshot = ContainerSnapshot; - } -}); - -// node_modules/inversify/lib/container/lookup.js -var require_lookup = __commonJS({ - "node_modules/inversify/lib/container/lookup.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Lookup = void 0; - var ERROR_MSGS = require_error_msgs(); - var Lookup = function() { - function Lookup2() { - this._map = new Map(); - } - Lookup2.prototype.getMap = function() { - return this._map; - }; - Lookup2.prototype.add = function(serviceIdentifier, value2) { - if (serviceIdentifier === null || serviceIdentifier === void 0) { - throw new Error(ERROR_MSGS.NULL_ARGUMENT); - } - if (value2 === null || value2 === void 0) { - throw new Error(ERROR_MSGS.NULL_ARGUMENT); - } - var entry = this._map.get(serviceIdentifier); - if (entry !== void 0) { - entry.push(value2); - this._map.set(serviceIdentifier, entry); - } else { - this._map.set(serviceIdentifier, [value2]); - } - }; - Lookup2.prototype.get = function(serviceIdentifier) { - if (serviceIdentifier === null || serviceIdentifier === void 0) { - throw new Error(ERROR_MSGS.NULL_ARGUMENT); - } - var entry = this._map.get(serviceIdentifier); - if (entry !== void 0) { - return entry; - } else { - throw new Error(ERROR_MSGS.KEY_NOT_FOUND); - } - }; - Lookup2.prototype.remove = function(serviceIdentifier) { - if (serviceIdentifier === null || serviceIdentifier === void 0) { - throw new Error(ERROR_MSGS.NULL_ARGUMENT); - } - if (!this._map.delete(serviceIdentifier)) { - throw new Error(ERROR_MSGS.KEY_NOT_FOUND); - } - }; - Lookup2.prototype.removeByCondition = function(condition) { - var _this = this; - this._map.forEach(function(entries, key) { - var updatedEntries = entries.filter(function(entry) { - return !condition(entry); - }); - if (updatedEntries.length > 0) { - _this._map.set(key, updatedEntries); - } else { - _this._map.delete(key); - } - }); - }; - Lookup2.prototype.hasKey = function(serviceIdentifier) { - if (serviceIdentifier === null || serviceIdentifier === void 0) { - throw new Error(ERROR_MSGS.NULL_ARGUMENT); - } - return this._map.has(serviceIdentifier); - }; - Lookup2.prototype.clone = function() { - var copy8 = new Lookup2(); - this._map.forEach(function(value2, key) { - value2.forEach(function(b10) { - return copy8.add(key, b10.clone()); - }); - }); - return copy8; - }; - Lookup2.prototype.traverse = function(func) { - this._map.forEach(function(value2, key) { - func(key, value2); - }); - }; - return Lookup2; - }(); - exports.Lookup = Lookup; - } -}); - -// node_modules/inversify/lib/container/container.js -var require_container = __commonJS({ - "node_modules/inversify/lib/container/container.js"(exports) { - "use strict"; - var __awaiter7 = exports && exports.__awaiter || function(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve) { - resolve(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e4) { - reject(e4); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var __generator5 = exports && exports.__generator || function(thisArg, body) { - var _8 = { label: 0, sent: function() { - if (t4[0] & 1) - throw t4[1]; - return t4[1]; - }, trys: [], ops: [] }, f3, y5, t4, g4; - return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { - return this; - }), g4; - function verb(n3) { - return function(v3) { - return step([n3, v3]); - }; - } - function step(op) { - if (f3) - throw new TypeError("Generator is already executing."); - while (_8) - try { - if (f3 = 1, y5 && (t4 = op[0] & 2 ? y5["return"] : op[0] ? y5["throw"] || ((t4 = y5["return"]) && t4.call(y5), 0) : y5.next) && !(t4 = t4.call(y5, op[1])).done) - return t4; - if (y5 = 0, t4) - op = [op[0] & 2, t4.value]; - switch (op[0]) { - case 0: - case 1: - t4 = op; - break; - case 4: - _8.label++; - return { value: op[1], done: false }; - case 5: - _8.label++; - y5 = op[1]; - op = [0]; - continue; - case 7: - op = _8.ops.pop(); - _8.trys.pop(); - continue; - default: - if (!(t4 = _8.trys, t4 = t4.length > 0 && t4[t4.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _8 = 0; - continue; - } - if (op[0] === 3 && (!t4 || op[1] > t4[0] && op[1] < t4[3])) { - _8.label = op[1]; - break; - } - if (op[0] === 6 && _8.label < t4[1]) { - _8.label = t4[1]; - t4 = op; - break; - } - if (t4 && _8.label < t4[2]) { - _8.label = t4[2]; - _8.ops.push(op); - break; - } - if (t4[2]) - _8.ops.pop(); - _8.trys.pop(); - continue; - } - op = body.call(thisArg, _8); - } catch (e4) { - op = [6, e4]; - y5 = 0; - } finally { - f3 = t4 = 0; - } - if (op[0] & 5) - throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - var __spreadArray4 = exports && exports.__spreadArray || function(to, from) { - for (var i4 = 0, il = from.length, j4 = to.length; i4 < il; i4++, j4++) - to[j4] = from[i4]; - return to; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Container = void 0; - var binding_1 = require_binding(); - var ERROR_MSGS = require_error_msgs(); - var literal_types_1 = require_literal_types(); - var METADATA_KEY = require_metadata_keys(); - var metadata_reader_1 = require_metadata_reader(); - var planner_1 = require_planner(); - var resolver_1 = require_resolver(); - var binding_to_syntax_1 = require_binding_to_syntax(); - var id_1 = require_id2(); - var serialization_1 = require_serialization(); - var container_snapshot_1 = require_container_snapshot(); - var lookup_1 = require_lookup(); - var Container3 = function() { - function Container4(containerOptions) { - this._appliedMiddleware = []; - var options = containerOptions || {}; - if (typeof options !== "object") { - throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT); - } - if (options.defaultScope === void 0) { - options.defaultScope = literal_types_1.BindingScopeEnum.Transient; - } else if (options.defaultScope !== literal_types_1.BindingScopeEnum.Singleton && options.defaultScope !== literal_types_1.BindingScopeEnum.Transient && options.defaultScope !== literal_types_1.BindingScopeEnum.Request) { - throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE); - } - if (options.autoBindInjectable === void 0) { - options.autoBindInjectable = false; - } else if (typeof options.autoBindInjectable !== "boolean") { - throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE); - } - if (options.skipBaseClassChecks === void 0) { - options.skipBaseClassChecks = false; - } else if (typeof options.skipBaseClassChecks !== "boolean") { - throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK); - } - this.options = { - autoBindInjectable: options.autoBindInjectable, - defaultScope: options.defaultScope, - skipBaseClassChecks: options.skipBaseClassChecks - }; - this.id = id_1.id(); - this._bindingDictionary = new lookup_1.Lookup(); - this._snapshots = []; - this._middleware = null; - this.parent = null; - this._metadataReader = new metadata_reader_1.MetadataReader(); - } - Container4.merge = function(container1, container2) { - var container3 = []; - for (var _i = 2; _i < arguments.length; _i++) { - container3[_i - 2] = arguments[_i]; - } - var container4 = new Container4(); - var targetContainers = __spreadArray4([container1, container2], container3).map(function(targetContainer) { - return planner_1.getBindingDictionary(targetContainer); - }); - var bindingDictionary = planner_1.getBindingDictionary(container4); - function copyDictionary(origin, destination) { - origin.traverse(function(key, value2) { - value2.forEach(function(binding) { - destination.add(binding.serviceIdentifier, binding.clone()); - }); - }); - } - targetContainers.forEach(function(targetBindingDictionary) { - copyDictionary(targetBindingDictionary, bindingDictionary); - }); - return container4; - }; - Container4.prototype.load = function() { - var modules = []; - for (var _i = 0; _i < arguments.length; _i++) { - modules[_i] = arguments[_i]; - } - var getHelpers = this._getContainerModuleHelpersFactory(); - for (var _a6 = 0, modules_1 = modules; _a6 < modules_1.length; _a6++) { - var currentModule = modules_1[_a6]; - var containerModuleHelpers = getHelpers(currentModule.id); - currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction); - } - }; - Container4.prototype.loadAsync = function() { - var modules = []; - for (var _i = 0; _i < arguments.length; _i++) { - modules[_i] = arguments[_i]; - } - return __awaiter7(this, void 0, void 0, function() { - var getHelpers, _a6, modules_2, currentModule, containerModuleHelpers; - return __generator5(this, function(_b) { - switch (_b.label) { - case 0: - getHelpers = this._getContainerModuleHelpersFactory(); - _a6 = 0, modules_2 = modules; - _b.label = 1; - case 1: - if (!(_a6 < modules_2.length)) - return [3, 4]; - currentModule = modules_2[_a6]; - containerModuleHelpers = getHelpers(currentModule.id); - return [4, currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction)]; - case 2: - _b.sent(); - _b.label = 3; - case 3: - _a6++; - return [3, 1]; - case 4: - return [2]; - } - }); - }); - }; - Container4.prototype.unload = function() { - var _this = this; - var modules = []; - for (var _i = 0; _i < arguments.length; _i++) { - modules[_i] = arguments[_i]; - } - var conditionFactory = function(expected) { - return function(item) { - return item.moduleId === expected; - }; - }; - modules.forEach(function(module3) { - var condition = conditionFactory(module3.id); - _this._bindingDictionary.removeByCondition(condition); - }); - }; - Container4.prototype.bind = function(serviceIdentifier) { - var scope = this.options.defaultScope || literal_types_1.BindingScopeEnum.Transient; - var binding = new binding_1.Binding(serviceIdentifier, scope); - this._bindingDictionary.add(serviceIdentifier, binding); - return new binding_to_syntax_1.BindingToSyntax(binding); - }; - Container4.prototype.rebind = function(serviceIdentifier) { - this.unbind(serviceIdentifier); - return this.bind(serviceIdentifier); - }; - Container4.prototype.unbind = function(serviceIdentifier) { - try { - this._bindingDictionary.remove(serviceIdentifier); - } catch (e4) { - throw new Error(ERROR_MSGS.CANNOT_UNBIND + " " + serialization_1.getServiceIdentifierAsString(serviceIdentifier)); - } - }; - Container4.prototype.unbindAll = function() { - this._bindingDictionary = new lookup_1.Lookup(); - }; - Container4.prototype.isBound = function(serviceIdentifier) { - var bound = this._bindingDictionary.hasKey(serviceIdentifier); - if (!bound && this.parent) { - bound = this.parent.isBound(serviceIdentifier); - } - return bound; - }; - Container4.prototype.isBoundNamed = function(serviceIdentifier, named9) { - return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named9); - }; - Container4.prototype.isBoundTagged = function(serviceIdentifier, key, value2) { - var bound = false; - if (this._bindingDictionary.hasKey(serviceIdentifier)) { - var bindings = this._bindingDictionary.get(serviceIdentifier); - var request_1 = planner_1.createMockRequest(this, serviceIdentifier, key, value2); - bound = bindings.some(function(b10) { - return b10.constraint(request_1); - }); - } - if (!bound && this.parent) { - bound = this.parent.isBoundTagged(serviceIdentifier, key, value2); - } - return bound; - }; - Container4.prototype.snapshot = function() { - this._snapshots.push(container_snapshot_1.ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware)); - }; - Container4.prototype.restore = function() { - var snapshot = this._snapshots.pop(); - if (snapshot === void 0) { - throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE); - } - this._bindingDictionary = snapshot.bindings; - this._middleware = snapshot.middleware; - }; - Container4.prototype.createChild = function(containerOptions) { - var child = new Container4(containerOptions || this.options); - child.parent = this; - return child; - }; - Container4.prototype.applyMiddleware = function() { - var middlewares = []; - for (var _i = 0; _i < arguments.length; _i++) { - middlewares[_i] = arguments[_i]; - } - this._appliedMiddleware = this._appliedMiddleware.concat(middlewares); - var initial = this._middleware ? this._middleware : this._planAndResolve(); - this._middleware = middlewares.reduce(function(prev, curr) { - return curr(prev); - }, initial); - }; - Container4.prototype.applyCustomMetadataReader = function(metadataReader) { - this._metadataReader = metadataReader; - }; - Container4.prototype.get = function(serviceIdentifier) { - return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier); - }; - Container4.prototype.getTagged = function(serviceIdentifier, key, value2) { - return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value2); - }; - Container4.prototype.getNamed = function(serviceIdentifier, named9) { - return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named9); - }; - Container4.prototype.getAll = function(serviceIdentifier) { - return this._get(true, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier); - }; - Container4.prototype.getAllTagged = function(serviceIdentifier, key, value2) { - return this._get(false, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value2); - }; - Container4.prototype.getAllNamed = function(serviceIdentifier, named9) { - return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named9); - }; - Container4.prototype.resolve = function(constructorFunction) { - var tempContainer = this.createChild(); - tempContainer.bind(constructorFunction).toSelf(); - this._appliedMiddleware.forEach(function(m4) { - tempContainer.applyMiddleware(m4); - }); - return tempContainer.get(constructorFunction); - }; - Container4.prototype._getContainerModuleHelpersFactory = function() { - var _this = this; - var setModuleId = function(bindingToSyntax, moduleId) { - bindingToSyntax._binding.moduleId = moduleId; - }; - var getBindFunction = function(moduleId) { - return function(serviceIdentifier) { - var _bind = _this.bind.bind(_this); - var bindingToSyntax = _bind(serviceIdentifier); - setModuleId(bindingToSyntax, moduleId); - return bindingToSyntax; - }; - }; - var getUnbindFunction = function(moduleId) { - return function(serviceIdentifier) { - var _unbind = _this.unbind.bind(_this); - _unbind(serviceIdentifier); - }; - }; - var getIsboundFunction = function(moduleId) { - return function(serviceIdentifier) { - var _isBound = _this.isBound.bind(_this); - return _isBound(serviceIdentifier); - }; - }; - var getRebindFunction = function(moduleId) { - return function(serviceIdentifier) { - var _rebind = _this.rebind.bind(_this); - var bindingToSyntax = _rebind(serviceIdentifier); - setModuleId(bindingToSyntax, moduleId); - return bindingToSyntax; - }; - }; - return function(mId) { - return { - bindFunction: getBindFunction(mId), - isboundFunction: getIsboundFunction(mId), - rebindFunction: getRebindFunction(mId), - unbindFunction: getUnbindFunction(mId) - }; - }; - }; - Container4.prototype._get = function(avoidConstraints, isMultiInject, targetType, serviceIdentifier, key, value2) { - var result = null; - var defaultArgs = { - avoidConstraints, - contextInterceptor: function(context) { - return context; - }, - isMultiInject, - key, - serviceIdentifier, - targetType, - value: value2 - }; - if (this._middleware) { - result = this._middleware(defaultArgs); - if (result === void 0 || result === null) { - throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN); - } - } else { - result = this._planAndResolve()(defaultArgs); - } - return result; - }; - Container4.prototype._planAndResolve = function() { - var _this = this; - return function(args) { - var context = planner_1.plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints); - context = args.contextInterceptor(context); - var result = resolver_1.resolve(context); - return result; - }; - }; - return Container4; - }(); - exports.Container = Container3; - } -}); - -// node_modules/inversify/lib/container/container_module.js -var require_container_module = __commonJS({ - "node_modules/inversify/lib/container/container_module.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.AsyncContainerModule = exports.ContainerModule = void 0; - var id_1 = require_id2(); - var ContainerModule = function() { - function ContainerModule2(registry) { - this.id = id_1.id(); - this.registry = registry; - } - return ContainerModule2; - }(); - exports.ContainerModule = ContainerModule; - var AsyncContainerModule = function() { - function AsyncContainerModule2(registry) { - this.id = id_1.id(); - this.registry = registry; - } - return AsyncContainerModule2; - }(); - exports.AsyncContainerModule = AsyncContainerModule; - } -}); - -// node_modules/inversify/lib/annotation/injectable.js -var require_injectable = __commonJS({ - "node_modules/inversify/lib/annotation/injectable.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.injectable = void 0; - var ERRORS_MSGS = require_error_msgs(); - var METADATA_KEY = require_metadata_keys(); - function injectable35() { - return function(target) { - if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) { - throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR); - } - var types2 = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || []; - Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types2, target); - return target; - }; - } - exports.injectable = injectable35; - } -}); - -// node_modules/inversify/lib/annotation/tagged.js -var require_tagged = __commonJS({ - "node_modules/inversify/lib/annotation/tagged.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.tagged = void 0; - var metadata_1 = require_metadata(); - var decorator_utils_1 = require_decorator_utils(); - function tagged(metadataKey, metadataValue) { - return function(target, targetKey, index2) { - var metadata = new metadata_1.Metadata(metadataKey, metadataValue); - if (typeof index2 === "number") { - decorator_utils_1.tagParameter(target, targetKey, index2, metadata); - } else { - decorator_utils_1.tagProperty(target, targetKey, metadata); - } - }; - } - exports.tagged = tagged; - } -}); - -// node_modules/inversify/lib/annotation/named.js -var require_named = __commonJS({ - "node_modules/inversify/lib/annotation/named.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.named = void 0; - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - var decorator_utils_1 = require_decorator_utils(); - function named9(name) { - return function(target, targetKey, index2) { - var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name); - if (typeof index2 === "number") { - decorator_utils_1.tagParameter(target, targetKey, index2, metadata); - } else { - decorator_utils_1.tagProperty(target, targetKey, metadata); - } - }; - } - exports.named = named9; - } -}); - -// node_modules/inversify/lib/annotation/optional.js -var require_optional = __commonJS({ - "node_modules/inversify/lib/annotation/optional.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.optional = void 0; - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - var decorator_utils_1 = require_decorator_utils(); - function optional2() { - return function(target, targetKey, index2) { - var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true); - if (typeof index2 === "number") { - decorator_utils_1.tagParameter(target, targetKey, index2, metadata); - } else { - decorator_utils_1.tagProperty(target, targetKey, metadata); - } - }; - } - exports.optional = optional2; - } -}); - -// node_modules/inversify/lib/annotation/unmanaged.js -var require_unmanaged = __commonJS({ - "node_modules/inversify/lib/annotation/unmanaged.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.unmanaged = void 0; - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - var decorator_utils_1 = require_decorator_utils(); - function unmanaged() { - return function(target, targetKey, index2) { - var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true); - decorator_utils_1.tagParameter(target, targetKey, index2, metadata); - }; - } - exports.unmanaged = unmanaged; - } -}); - -// node_modules/inversify/lib/annotation/multi_inject.js -var require_multi_inject = __commonJS({ - "node_modules/inversify/lib/annotation/multi_inject.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.multiInject = void 0; - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - var decorator_utils_1 = require_decorator_utils(); - function multiInject(serviceIdentifier) { - return function(target, targetKey, index2) { - var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier); - if (typeof index2 === "number") { - decorator_utils_1.tagParameter(target, targetKey, index2, metadata); - } else { - decorator_utils_1.tagProperty(target, targetKey, metadata); - } - }; - } - exports.multiInject = multiInject; - } -}); - -// node_modules/inversify/lib/annotation/target_name.js -var require_target_name = __commonJS({ - "node_modules/inversify/lib/annotation/target_name.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.targetName = void 0; - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - var decorator_utils_1 = require_decorator_utils(); - function targetName(name) { - return function(target, targetKey, index2) { - var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name); - decorator_utils_1.tagParameter(target, targetKey, index2, metadata); - }; - } - exports.targetName = targetName; - } -}); - -// node_modules/inversify/lib/annotation/post_construct.js -var require_post_construct = __commonJS({ - "node_modules/inversify/lib/annotation/post_construct.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.postConstruct = void 0; - var ERRORS_MSGS = require_error_msgs(); - var METADATA_KEY = require_metadata_keys(); - var metadata_1 = require_metadata(); - function postConstruct() { - return function(target, propertyKey, descriptor) { - var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey); - if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) { - throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS); - } - Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor); - }; - } - exports.postConstruct = postConstruct; - } -}); - -// node_modules/inversify/lib/utils/binding_utils.js -var require_binding_utils = __commonJS({ - "node_modules/inversify/lib/utils/binding_utils.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.multiBindToService = void 0; - var multiBindToService = function(container2) { - return function(service) { - return function() { - var types2 = []; - for (var _i = 0; _i < arguments.length; _i++) { - types2[_i] = arguments[_i]; - } - return types2.forEach(function(t4) { - return container2.bind(t4).toService(service); - }); - }; - }; - }; - exports.multiBindToService = multiBindToService; - } -}); - -// node_modules/inversify/lib/inversify.js -var require_inversify = __commonJS({ - "node_modules/inversify/lib/inversify.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.multiBindToService = exports.getServiceIdentifierAsString = exports.typeConstraint = exports.namedConstraint = exports.taggedConstraint = exports.traverseAncerstors = exports.decorate = exports.id = exports.MetadataReader = exports.postConstruct = exports.targetName = exports.multiInject = exports.unmanaged = exports.optional = exports.LazyServiceIdentifer = exports.inject = exports.named = exports.tagged = exports.injectable = exports.ContainerModule = exports.AsyncContainerModule = exports.TargetTypeEnum = exports.BindingTypeEnum = exports.BindingScopeEnum = exports.Container = exports.METADATA_KEY = void 0; - var keys2 = require_metadata_keys(); - exports.METADATA_KEY = keys2; - var container_1 = require_container(); - Object.defineProperty(exports, "Container", { enumerable: true, get: function() { - return container_1.Container; - } }); - var literal_types_1 = require_literal_types(); - Object.defineProperty(exports, "BindingScopeEnum", { enumerable: true, get: function() { - return literal_types_1.BindingScopeEnum; - } }); - Object.defineProperty(exports, "BindingTypeEnum", { enumerable: true, get: function() { - return literal_types_1.BindingTypeEnum; - } }); - Object.defineProperty(exports, "TargetTypeEnum", { enumerable: true, get: function() { - return literal_types_1.TargetTypeEnum; - } }); - var container_module_1 = require_container_module(); - Object.defineProperty(exports, "AsyncContainerModule", { enumerable: true, get: function() { - return container_module_1.AsyncContainerModule; - } }); - Object.defineProperty(exports, "ContainerModule", { enumerable: true, get: function() { - return container_module_1.ContainerModule; - } }); - var injectable_1 = require_injectable(); - Object.defineProperty(exports, "injectable", { enumerable: true, get: function() { - return injectable_1.injectable; - } }); - var tagged_1 = require_tagged(); - Object.defineProperty(exports, "tagged", { enumerable: true, get: function() { - return tagged_1.tagged; - } }); - var named_1 = require_named(); - Object.defineProperty(exports, "named", { enumerable: true, get: function() { - return named_1.named; - } }); - var inject_1 = require_inject(); - Object.defineProperty(exports, "inject", { enumerable: true, get: function() { - return inject_1.inject; - } }); - Object.defineProperty(exports, "LazyServiceIdentifer", { enumerable: true, get: function() { - return inject_1.LazyServiceIdentifer; - } }); - var optional_1 = require_optional(); - Object.defineProperty(exports, "optional", { enumerable: true, get: function() { - return optional_1.optional; - } }); - var unmanaged_1 = require_unmanaged(); - Object.defineProperty(exports, "unmanaged", { enumerable: true, get: function() { - return unmanaged_1.unmanaged; - } }); - var multi_inject_1 = require_multi_inject(); - Object.defineProperty(exports, "multiInject", { enumerable: true, get: function() { - return multi_inject_1.multiInject; - } }); - var target_name_1 = require_target_name(); - Object.defineProperty(exports, "targetName", { enumerable: true, get: function() { - return target_name_1.targetName; - } }); - var post_construct_1 = require_post_construct(); - Object.defineProperty(exports, "postConstruct", { enumerable: true, get: function() { - return post_construct_1.postConstruct; - } }); - var metadata_reader_1 = require_metadata_reader(); - Object.defineProperty(exports, "MetadataReader", { enumerable: true, get: function() { - return metadata_reader_1.MetadataReader; - } }); - var id_1 = require_id2(); - Object.defineProperty(exports, "id", { enumerable: true, get: function() { - return id_1.id; - } }); - var decorator_utils_1 = require_decorator_utils(); - Object.defineProperty(exports, "decorate", { enumerable: true, get: function() { - return decorator_utils_1.decorate; - } }); - var constraint_helpers_1 = require_constraint_helpers(); - Object.defineProperty(exports, "traverseAncerstors", { enumerable: true, get: function() { - return constraint_helpers_1.traverseAncerstors; - } }); - Object.defineProperty(exports, "taggedConstraint", { enumerable: true, get: function() { - return constraint_helpers_1.taggedConstraint; - } }); - Object.defineProperty(exports, "namedConstraint", { enumerable: true, get: function() { - return constraint_helpers_1.namedConstraint; - } }); - Object.defineProperty(exports, "typeConstraint", { enumerable: true, get: function() { - return constraint_helpers_1.typeConstraint; - } }); - var serialization_1 = require_serialization(); - Object.defineProperty(exports, "getServiceIdentifierAsString", { enumerable: true, get: function() { - return serialization_1.getServiceIdentifierAsString; - } }); - var binding_utils_1 = require_binding_utils(); - Object.defineProperty(exports, "multiBindToService", { enumerable: true, get: function() { - return binding_utils_1.multiBindToService; - } }); - } -}); - -// node_modules/inversify-inject-decorators/lib/decorators.js -var require_decorators = __commonJS({ - "node_modules/inversify-inject-decorators/lib/decorators.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var INJECTION = Symbol.for("INJECTION"); - function _proxyGetter(proto, key, resolve, doCache) { - function getter() { - if (doCache && !Reflect.hasMetadata(INJECTION, this, key)) { - Reflect.defineMetadata(INJECTION, resolve(), this, key); - } - if (Reflect.hasMetadata(INJECTION, this, key)) { - return Reflect.getMetadata(INJECTION, this, key); - } else { - return resolve(); - } - } - function setter(newVal) { - Reflect.defineMetadata(INJECTION, newVal, this, key); - } - Object.defineProperty(proto, key, { - configurable: true, - enumerable: true, - get: getter, - set: setter - }); - } - function makePropertyInjectDecorator(container2, doCache) { - return function(serviceIdentifier) { - return function(proto, key) { - var resolve = function() { - return container2.get(serviceIdentifier); - }; - _proxyGetter(proto, key, resolve, doCache); - }; - }; - } - exports.makePropertyInjectDecorator = makePropertyInjectDecorator; - function makePropertyInjectNamedDecorator(container2, doCache) { - return function(serviceIdentifier, named9) { - return function(proto, key) { - var resolve = function() { - return container2.getNamed(serviceIdentifier, named9); - }; - _proxyGetter(proto, key, resolve, doCache); - }; - }; - } - exports.makePropertyInjectNamedDecorator = makePropertyInjectNamedDecorator; - function makePropertyInjectTaggedDecorator(container2, doCache) { - return function(serviceIdentifier, key, value2) { - return function(proto, propertyName) { - var resolve = function() { - return container2.getTagged(serviceIdentifier, key, value2); - }; - _proxyGetter(proto, propertyName, resolve, doCache); - }; - }; - } - exports.makePropertyInjectTaggedDecorator = makePropertyInjectTaggedDecorator; - function makePropertyMultiInjectDecorator(container2, doCache) { - return function(serviceIdentifier) { - return function(proto, key) { - var resolve = function() { - return container2.getAll(serviceIdentifier); - }; - _proxyGetter(proto, key, resolve, doCache); - }; - }; - } - exports.makePropertyMultiInjectDecorator = makePropertyMultiInjectDecorator; - } -}); - -// node_modules/inversify-inject-decorators/lib/index.js -var require_lib3 = __commonJS({ - "node_modules/inversify-inject-decorators/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var decorators_1 = require_decorators(); - function getDecorators2(container2, doCache) { - if (doCache === void 0) { - doCache = true; - } - var lazyInject2 = decorators_1.makePropertyInjectDecorator(container2, doCache); - var lazyInjectNamed = decorators_1.makePropertyInjectNamedDecorator(container2, doCache); - var lazyInjectTagged = decorators_1.makePropertyInjectTaggedDecorator(container2, doCache); - var lazyMultiInject2 = decorators_1.makePropertyMultiInjectDecorator(container2, doCache); - return { - lazyInject: lazyInject2, - lazyInjectNamed, - lazyInjectTagged, - lazyMultiInject: lazyMultiInject2 - }; - } - exports.default = getDecorators2; - } -}); - -// node_modules/@webgpu/types/dist/constants.js -var require_constants = __commonJS({ - "node_modules/@webgpu/types/dist/constants.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ExtensionName; - (function(ExtensionName2) { - ExtensionName2["TextureCompressionBC"] = "texture-compression-bc"; - })(ExtensionName = exports.ExtensionName || (exports.ExtensionName = {})); - var AddressMode; - (function(AddressMode2) { - AddressMode2["ClampToEdge"] = "clamp-to-edge"; - AddressMode2["Repeat"] = "repeat"; - AddressMode2["MirrorRepeat"] = "mirror-repeat"; - })(AddressMode = exports.AddressMode || (exports.AddressMode = {})); - var BindingType2; - (function(BindingType3) { - BindingType3["UniformBuffer"] = "uniform-buffer"; - BindingType3["StorageBuffer"] = "storage-buffer"; - BindingType3["ReadonlyStorageBuffer"] = "readonly-storage-buffer"; - BindingType3["Sampler"] = "sampler"; - BindingType3["ComparisonSampler"] = "comparison-sampler"; - BindingType3["SampledTexture"] = "sampled-texture"; - BindingType3["ReadonlyStorageTexture"] = "readonly-storage-texture"; - BindingType3["WriteonlyStorageTexture"] = "writeonly-storage-texture"; - })(BindingType2 = exports.BindingType || (exports.BindingType = {})); - var BlendFactor2; - (function(BlendFactor3) { - BlendFactor3["Zero"] = "zero"; - BlendFactor3["One"] = "one"; - BlendFactor3["SrcColor"] = "src-color"; - BlendFactor3["OneMinusSrcColor"] = "one-minus-src-color"; - BlendFactor3["SrcAlpha"] = "src-alpha"; - BlendFactor3["OneMinusSrcAlpha"] = "one-minus-src-alpha"; - BlendFactor3["DstColor"] = "dst-color"; - BlendFactor3["OneMinusDstColor"] = "one-minus-dst-color"; - BlendFactor3["DstAlpha"] = "dst-alpha"; - BlendFactor3["OneMinusDstAlpha"] = "one-minus-dst-alpha"; - BlendFactor3["SrcAlphaSaturated"] = "src-alpha-saturated"; - BlendFactor3["BlendColor"] = "blend-color"; - BlendFactor3["OneMinusBlendColor"] = "one-minus-blend-color"; - })(BlendFactor2 = exports.BlendFactor || (exports.BlendFactor = {})); - var BlendOperation2; - (function(BlendOperation3) { - BlendOperation3["Add"] = "add"; - BlendOperation3["Subtract"] = "subtract"; - BlendOperation3["ReverseSubtract"] = "reverse-subtract"; - BlendOperation3["Min"] = "min"; - BlendOperation3["Max"] = "max"; - })(BlendOperation2 = exports.BlendOperation || (exports.BlendOperation = {})); - var CompareFunction2; - (function(CompareFunction3) { - CompareFunction3["Never"] = "never"; - CompareFunction3["Less"] = "less"; - CompareFunction3["Equal"] = "equal"; - CompareFunction3["LessEqual"] = "less-equal"; - CompareFunction3["Greater"] = "greater"; - CompareFunction3["NotEqual"] = "not-equal"; - CompareFunction3["GreaterEqual"] = "greater-equal"; - CompareFunction3["Always"] = "always"; - })(CompareFunction2 = exports.CompareFunction || (exports.CompareFunction = {})); - var CullMode3; - (function(CullMode4) { - CullMode4["None"] = "none"; - CullMode4["Front"] = "front"; - CullMode4["Back"] = "back"; - })(CullMode3 = exports.CullMode || (exports.CullMode = {})); - var FilterMode; - (function(FilterMode2) { - FilterMode2["Nearest"] = "nearest"; - FilterMode2["Linear"] = "linear"; - })(FilterMode = exports.FilterMode || (exports.FilterMode = {})); - var FrontFace2; - (function(FrontFace3) { - FrontFace3["CCW"] = "ccw"; - FrontFace3["CW"] = "cw"; - })(FrontFace2 = exports.FrontFace || (exports.FrontFace = {})); - var IndexFormat2; - (function(IndexFormat3) { - IndexFormat3["Uint16"] = "uint16"; - IndexFormat3["Uint32"] = "uint32"; - })(IndexFormat2 = exports.IndexFormat || (exports.IndexFormat = {})); - var InputStepMode; - (function(InputStepMode2) { - InputStepMode2["Vertex"] = "vertex"; - InputStepMode2["Instance"] = "instance"; - })(InputStepMode = exports.InputStepMode || (exports.InputStepMode = {})); - var LoadOp2; - (function(LoadOp3) { - LoadOp3["Load"] = "load"; - })(LoadOp2 = exports.LoadOp || (exports.LoadOp = {})); - var PrimitiveTopology2; - (function(PrimitiveTopology3) { - PrimitiveTopology3["PointList"] = "point-list"; - PrimitiveTopology3["LineList"] = "line-list"; - PrimitiveTopology3["LineStrip"] = "line-strip"; - PrimitiveTopology3["TriangleList"] = "triangle-list"; - PrimitiveTopology3["TriangleStrip"] = "triangle-strip"; - })(PrimitiveTopology2 = exports.PrimitiveTopology || (exports.PrimitiveTopology = {})); - var StencilOperation2; - (function(StencilOperation3) { - StencilOperation3["Keep"] = "keep"; - StencilOperation3["Zero"] = "zero"; - StencilOperation3["Replace"] = "replace"; - StencilOperation3["Invert"] = "invert"; - StencilOperation3["IncrementClamp"] = "increment-clamp"; - StencilOperation3["DecrementClamp"] = "decrement-clamp"; - StencilOperation3["IncrementWrap"] = "increment-wrap"; - StencilOperation3["DecrementWrap"] = "decrement-wrap"; - })(StencilOperation2 = exports.StencilOperation || (exports.StencilOperation = {})); - var StoreOp2; - (function(StoreOp3) { - StoreOp3["Store"] = "store"; - StoreOp3["Clear"] = "clear"; - })(StoreOp2 = exports.StoreOp || (exports.StoreOp = {})); - var TextureDimension3; - (function(TextureDimension4) { - TextureDimension4["E1d"] = "1d"; - TextureDimension4["E2d"] = "2d"; - TextureDimension4["E3d"] = "3d"; - })(TextureDimension3 = exports.TextureDimension || (exports.TextureDimension = {})); - var TextureFormat6; - (function(TextureFormat7) { - TextureFormat7["R8Unorm"] = "r8unorm"; - TextureFormat7["R8Snorm"] = "r8snorm"; - TextureFormat7["R8Uint"] = "r8uint"; - TextureFormat7["R8Sint"] = "r8sint"; - TextureFormat7["R16Uint"] = "r16uint"; - TextureFormat7["R16Sint"] = "r16sint"; - TextureFormat7["R16Float"] = "r16float"; - TextureFormat7["RG8Unorm"] = "rg8unorm"; - TextureFormat7["RG8Snorm"] = "rg8snorm"; - TextureFormat7["RG8Uint"] = "rg8uint"; - TextureFormat7["RG8Sint"] = "rg8sint"; - TextureFormat7["R32Uint"] = "r32uint"; - TextureFormat7["R32Sint"] = "r32sint"; - TextureFormat7["R32Float"] = "r32float"; - TextureFormat7["RG16Uint"] = "rg16uint"; - TextureFormat7["RG16Sint"] = "rg16sint"; - TextureFormat7["RG16Float"] = "rg16float"; - TextureFormat7["RGBA8Unorm"] = "rgba8unorm"; - TextureFormat7["RGBA8UnormSRGB"] = "rgba8unorm-srgb"; - TextureFormat7["RGBA8Snorm"] = "rgba8snorm"; - TextureFormat7["RGBA8Uint"] = "rgba8uint"; - TextureFormat7["RGBA8Sint"] = "rgba8sint"; - TextureFormat7["BGRA8Unorm"] = "bgra8unorm"; - TextureFormat7["BGRA8UnormSRGB"] = "bgra8unorm-srgb"; - TextureFormat7["RGB10A2Unorm"] = "rgb10a2unorm"; - TextureFormat7["RG11B10Float"] = "rg11b10float"; - TextureFormat7["RG32Uint"] = "rg32uint"; - TextureFormat7["RG32Sint"] = "rg32sint"; - TextureFormat7["RG32Float"] = "rg32float"; - TextureFormat7["RGBA16Uint"] = "rgba16uint"; - TextureFormat7["RGBA16Sint"] = "rgba16sint"; - TextureFormat7["RGBA16Float"] = "rgba16float"; - TextureFormat7["RGBA32Uint"] = "rgba32uint"; - TextureFormat7["RGBA32Sint"] = "rgba32sint"; - TextureFormat7["RGBA32Float"] = "rgba32float"; - TextureFormat7["Depth32Float"] = "depth32float"; - TextureFormat7["Depth24Plus"] = "depth24plus"; - TextureFormat7["Depth24PlusStencil8"] = "depth24plus-stencil8"; - })(TextureFormat6 = exports.TextureFormat || (exports.TextureFormat = {})); - var TextureComponentType; - (function(TextureComponentType2) { - TextureComponentType2["Float"] = "float"; - TextureComponentType2["Sint"] = "sint"; - TextureComponentType2["Uint"] = "uint"; - })(TextureComponentType = exports.TextureComponentType || (exports.TextureComponentType = {})); - var TextureViewDimension2; - (function(TextureViewDimension3) { - TextureViewDimension3["E1d"] = "1d"; - TextureViewDimension3["E2d"] = "2d"; - TextureViewDimension3["E2dArray"] = "2d-array"; - TextureViewDimension3["Cube"] = "cube"; - TextureViewDimension3["CubeArray"] = "cube-array"; - TextureViewDimension3["E3d"] = "3d"; - })(TextureViewDimension2 = exports.TextureViewDimension || (exports.TextureViewDimension = {})); - var VertexFormat; - (function(VertexFormat2) { - VertexFormat2["Uchar2"] = "uchar2"; - VertexFormat2["Uchar4"] = "uchar4"; - VertexFormat2["Char2"] = "char2"; - VertexFormat2["Char4"] = "char4"; - VertexFormat2["Uchar2Norm"] = "uchar2norm"; - VertexFormat2["Uchar4Norm"] = "uchar4norm"; - VertexFormat2["Char2Norm"] = "char2norm"; - VertexFormat2["Char4Norm"] = "char4norm"; - VertexFormat2["Ushort2"] = "ushort2"; - VertexFormat2["Ushort4"] = "ushort4"; - VertexFormat2["Short2"] = "short2"; - VertexFormat2["Short4"] = "short4"; - VertexFormat2["Ushort2Norm"] = "ushort2norm"; - VertexFormat2["Ushort4Norm"] = "ushort4norm"; - VertexFormat2["Short2Norm"] = "short2norm"; - VertexFormat2["Short4Norm"] = "short4norm"; - VertexFormat2["Half2"] = "half2"; - VertexFormat2["Half4"] = "half4"; - VertexFormat2["Float"] = "float"; - VertexFormat2["Float2"] = "float2"; - VertexFormat2["Float3"] = "float3"; - VertexFormat2["Float4"] = "float4"; - VertexFormat2["Uint"] = "uint"; - VertexFormat2["Uint2"] = "uint2"; - VertexFormat2["Uint3"] = "uint3"; - VertexFormat2["Uint4"] = "uint4"; - VertexFormat2["Int"] = "int"; - VertexFormat2["Int2"] = "int2"; - VertexFormat2["Int3"] = "int3"; - VertexFormat2["Int4"] = "int4"; - })(VertexFormat = exports.VertexFormat || (exports.VertexFormat = {})); - var TextureAspect2; - (function(TextureAspect3) { - TextureAspect3["All"] = "all"; - TextureAspect3["StencilOnly"] = "stencil-only"; - TextureAspect3["DepthOnly"] = "depth-only"; - })(TextureAspect2 = exports.TextureAspect || (exports.TextureAspect = {})); - var CompilationMessageType; - (function(CompilationMessageType2) { - CompilationMessageType2["Error"] = "error"; - CompilationMessageType2["Warning"] = "warning"; - CompilationMessageType2["Info"] = "info"; - })(CompilationMessageType = exports.CompilationMessageType || (exports.CompilationMessageType = {})); - var QueryType; - (function(QueryType2) { - QueryType2["Occlusion"] = "occlusion"; - })(QueryType = exports.QueryType || (exports.QueryType = {})); - var BufferUsage5; - (function(BufferUsage6) { - BufferUsage6[BufferUsage6["MapRead"] = 1] = "MapRead"; - BufferUsage6[BufferUsage6["MapWrite"] = 2] = "MapWrite"; - BufferUsage6[BufferUsage6["CopySrc"] = 4] = "CopySrc"; - BufferUsage6[BufferUsage6["CopyDst"] = 8] = "CopyDst"; - BufferUsage6[BufferUsage6["Index"] = 16] = "Index"; - BufferUsage6[BufferUsage6["Vertex"] = 32] = "Vertex"; - BufferUsage6[BufferUsage6["Uniform"] = 64] = "Uniform"; - BufferUsage6[BufferUsage6["Storage"] = 128] = "Storage"; - BufferUsage6[BufferUsage6["Indirect"] = 256] = "Indirect"; - BufferUsage6[BufferUsage6["QueryResolve"] = 512] = "QueryResolve"; - })(BufferUsage5 = exports.BufferUsage || (exports.BufferUsage = {})); - var ColorWrite2; - (function(ColorWrite3) { - ColorWrite3[ColorWrite3["Red"] = 1] = "Red"; - ColorWrite3[ColorWrite3["Green"] = 2] = "Green"; - ColorWrite3[ColorWrite3["Blue"] = 4] = "Blue"; - ColorWrite3[ColorWrite3["Alpha"] = 8] = "Alpha"; - ColorWrite3[ColorWrite3["All"] = 15] = "All"; - })(ColorWrite2 = exports.ColorWrite || (exports.ColorWrite = {})); - var ShaderStage2; - (function(ShaderStage3) { - ShaderStage3[ShaderStage3["Vertex"] = 1] = "Vertex"; - ShaderStage3[ShaderStage3["Fragment"] = 2] = "Fragment"; - ShaderStage3[ShaderStage3["Compute"] = 4] = "Compute"; - })(ShaderStage2 = exports.ShaderStage || (exports.ShaderStage = {})); - var TextureUsage3; - (function(TextureUsage4) { - TextureUsage4[TextureUsage4["CopySrc"] = 1] = "CopySrc"; - TextureUsage4[TextureUsage4["CopyDst"] = 2] = "CopyDst"; - TextureUsage4[TextureUsage4["Sampled"] = 4] = "Sampled"; - TextureUsage4[TextureUsage4["Storage"] = 8] = "Storage"; - TextureUsage4[TextureUsage4["OutputAttachment"] = 16] = "OutputAttachment"; - })(TextureUsage3 = exports.TextureUsage || (exports.TextureUsage = {})); - var MapMode2; - (function(MapMode3) { - MapMode3[MapMode3["Read"] = 1] = "Read"; - MapMode3[MapMode3["Write"] = 2] = "Write"; - })(MapMode2 = exports.MapMode || (exports.MapMode = {})); - } -}); - -// node_modules/regl/dist/regl.js -var require_regl = __commonJS({ - "node_modules/regl/dist/regl.js"(exports, module2) { - (function(global2, factory) { - typeof exports === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.createREGL = factory(); - })(exports, function() { - "use strict"; - var isTypedArray4 = function(x6) { - return x6 instanceof Uint8Array || x6 instanceof Uint16Array || x6 instanceof Uint32Array || x6 instanceof Int8Array || x6 instanceof Int16Array || x6 instanceof Int32Array || x6 instanceof Float32Array || x6 instanceof Float64Array || x6 instanceof Uint8ClampedArray; - }; - var extend4 = function(base, opts) { - var keys2 = Object.keys(opts); - for (var i4 = 0; i4 < keys2.length; ++i4) { - base[keys2[i4]] = opts[keys2[i4]]; - } - return base; - }; - var endl = "\n"; - function decodeB64(str8) { - if (typeof atob !== "undefined") { - return atob(str8); - } - return "base64:" + str8; - } - function raise(message) { - var error = new Error("(regl) " + message); - console.error(error); - throw error; - } - function check(pred, message) { - if (!pred) { - raise(message); - } - } - function encolon(message) { - if (message) { - return ": " + message; - } - return ""; - } - function checkParameter(param, possibilities, message) { - if (!(param in possibilities)) { - raise("unknown parameter (" + param + ")" + encolon(message) + ". possible values: " + Object.keys(possibilities).join()); - } - } - function checkIsTypedArray(data3, message) { - if (!isTypedArray4(data3)) { - raise("invalid parameter type" + encolon(message) + ". must be a typed array"); - } - } - function standardTypeEh(value2, type2) { - switch (type2) { - case "number": - return typeof value2 === "number"; - case "object": - return typeof value2 === "object"; - case "string": - return typeof value2 === "string"; - case "boolean": - return typeof value2 === "boolean"; - case "function": - return typeof value2 === "function"; - case "undefined": - return typeof value2 === "undefined"; - case "symbol": - return typeof value2 === "symbol"; - } - } - function checkTypeOf(value2, type2, message) { - if (!standardTypeEh(value2, type2)) { - raise("invalid parameter type" + encolon(message) + ". expected " + type2 + ", got " + typeof value2); - } - } - function checkNonNegativeInt(value2, message) { - if (!(value2 >= 0 && (value2 | 0) === value2)) { - raise("invalid parameter type, (" + value2 + ")" + encolon(message) + ". must be a nonnegative integer"); - } - } - function checkOneOf(value2, list, message) { - if (list.indexOf(value2) < 0) { - raise("invalid value" + encolon(message) + ". must be one of: " + list); - } - } - var constructorKeys = [ - "gl", - "canvas", - "container", - "attributes", - "pixelRatio", - "extensions", - "optionalExtensions", - "profile", - "onDone" - ]; - function checkConstructor(obj) { - Object.keys(obj).forEach(function(key) { - if (constructorKeys.indexOf(key) < 0) { - raise('invalid regl constructor argument "' + key + '". must be one of ' + constructorKeys); - } - }); - } - function leftPad(str8, n3) { - str8 = str8 + ""; - while (str8.length < n3) { - str8 = " " + str8; - } - return str8; - } - function ShaderFile() { - this.name = "unknown"; - this.lines = []; - this.index = {}; - this.hasErrors = false; - } - function ShaderLine(number, line3) { - this.number = number; - this.line = line3; - this.errors = []; - } - function ShaderError(fileNumber, lineNumber, message) { - this.file = fileNumber; - this.line = lineNumber; - this.message = message; - } - function guessCommand() { - var error = new Error(); - var stack = (error.stack || error).toString(); - var pat = /compileProcedure.*\n\s*at.*\((.*)\)/.exec(stack); - if (pat) { - return pat[1]; - } - var pat2 = /compileProcedure.*\n\s*at\s+(.*)(\n|$)/.exec(stack); - if (pat2) { - return pat2[1]; - } - return "unknown"; - } - function guessCallSite() { - var error = new Error(); - var stack = (error.stack || error).toString(); - var pat = /at REGLCommand.*\n\s+at.*\((.*)\)/.exec(stack); - if (pat) { - return pat[1]; - } - var pat2 = /at REGLCommand.*\n\s+at\s+(.*)\n/.exec(stack); - if (pat2) { - return pat2[1]; - } - return "unknown"; - } - function parseSource(source, command) { - var lines2 = source.split("\n"); - var lineNumber = 1; - var fileNumber = 0; - var files = { - unknown: new ShaderFile(), - 0: new ShaderFile() - }; - files.unknown.name = files[0].name = command || guessCommand(); - files.unknown.lines.push(new ShaderLine(0, "")); - for (var i4 = 0; i4 < lines2.length; ++i4) { - var line3 = lines2[i4]; - var parts = /^\s*#\s*(\w+)\s+(.+)\s*$/.exec(line3); - if (parts) { - switch (parts[1]) { - case "line": - var lineNumberInfo = /(\d+)(\s+\d+)?/.exec(parts[2]); - if (lineNumberInfo) { - lineNumber = lineNumberInfo[1] | 0; - if (lineNumberInfo[2]) { - fileNumber = lineNumberInfo[2] | 0; - if (!(fileNumber in files)) { - files[fileNumber] = new ShaderFile(); - } - } - } - break; - case "define": - var nameInfo = /SHADER_NAME(_B64)?\s+(.*)$/.exec(parts[2]); - if (nameInfo) { - files[fileNumber].name = nameInfo[1] ? decodeB64(nameInfo[2]) : nameInfo[2]; - } - break; - } - } - files[fileNumber].lines.push(new ShaderLine(lineNumber++, line3)); - } - Object.keys(files).forEach(function(fileNumber2) { - var file = files[fileNumber2]; - file.lines.forEach(function(line4) { - file.index[line4.number] = line4; - }); - }); - return files; - } - function parseErrorLog(errLog) { - var result = []; - errLog.split("\n").forEach(function(errMsg) { - if (errMsg.length < 5) { - return; - } - var parts = /^ERROR:\s+(\d+):(\d+):\s*(.*)$/.exec(errMsg); - if (parts) { - result.push(new ShaderError(parts[1] | 0, parts[2] | 0, parts[3].trim())); - } else if (errMsg.length > 0) { - result.push(new ShaderError("unknown", 0, errMsg)); - } - }); - return result; - } - function annotateFiles(files, errors) { - errors.forEach(function(error) { - var file = files[error.file]; - if (file) { - var line3 = file.index[error.line]; - if (line3) { - line3.errors.push(error); - file.hasErrors = true; - return; - } - } - files.unknown.hasErrors = true; - files.unknown.lines[0].errors.push(error); - }); - } - function checkShaderError(gl2, shader, source, type2, command) { - if (!gl2.getShaderParameter(shader, gl2.COMPILE_STATUS)) { - var errLog = gl2.getShaderInfoLog(shader); - var typeName = type2 === gl2.FRAGMENT_SHADER ? "fragment" : "vertex"; - checkCommandType(source, "string", typeName + " shader source must be a string", command); - var files = parseSource(source, command); - var errors = parseErrorLog(errLog); - annotateFiles(files, errors); - Object.keys(files).forEach(function(fileNumber) { - var file = files[fileNumber]; - if (!file.hasErrors) { - return; - } - var strings = [""]; - var styles = [""]; - function push(str8, style) { - strings.push(str8); - styles.push(style || ""); - } - push("file number " + fileNumber + ": " + file.name + "\n", "color:red;text-decoration:underline;font-weight:bold"); - file.lines.forEach(function(line3) { - if (line3.errors.length > 0) { - push(leftPad(line3.number, 4) + "| ", "background-color:yellow; font-weight:bold"); - push(line3.line + endl, "color:red; background-color:yellow; font-weight:bold"); - var offset = 0; - line3.errors.forEach(function(error) { - var message = error.message; - var token2 = /^\s*'(.*)'\s*:\s*(.*)$/.exec(message); - if (token2) { - var tokenPat = token2[1]; - message = token2[2]; - switch (tokenPat) { - case "assign": - tokenPat = "="; - break; - } - offset = Math.max(line3.line.indexOf(tokenPat, offset), 0); - } else { - offset = 0; - } - push(leftPad("| ", 6)); - push(leftPad("^^^", offset + 3) + endl, "font-weight:bold"); - push(leftPad("| ", 6)); - push(message + endl, "font-weight:bold"); - }); - push(leftPad("| ", 6) + endl); - } else { - push(leftPad(line3.number, 4) + "| "); - push(line3.line + endl, "color:red"); - } - }); - if (typeof document !== "undefined" && !window.chrome) { - styles[0] = strings.join("%c"); - console.log.apply(console, styles); - } else { - console.log(strings.join("")); - } - }); - check.raise("Error compiling " + typeName + " shader, " + files[0].name); - } - } - function checkLinkError(gl2, program, fragShader, vertShader, command) { - if (!gl2.getProgramParameter(program, gl2.LINK_STATUS)) { - var errLog = gl2.getProgramInfoLog(program); - var fragParse = parseSource(fragShader, command); - var vertParse = parseSource(vertShader, command); - var header = 'Error linking program with vertex shader, "' + vertParse[0].name + '", and fragment shader "' + fragParse[0].name + '"'; - if (typeof document !== "undefined") { - console.log("%c" + header + endl + "%c" + errLog, "color:red;text-decoration:underline;font-weight:bold", "color:red"); - } else { - console.log(header + endl + errLog); - } - check.raise(header); - } - } - function saveCommandRef(object) { - object._commandRef = guessCommand(); - } - function saveDrawCommandInfo(opts, uniforms, attributes, stringStore) { - saveCommandRef(opts); - function id(str8) { - if (str8) { - return stringStore.id(str8); - } - return 0; - } - opts._fragId = id(opts.static.frag); - opts._vertId = id(opts.static.vert); - function addProps(dict, set10) { - Object.keys(set10).forEach(function(u3) { - dict[stringStore.id(u3)] = true; - }); - } - var uniformSet = opts._uniformSet = {}; - addProps(uniformSet, uniforms.static); - addProps(uniformSet, uniforms.dynamic); - var attributeSet = opts._attributeSet = {}; - addProps(attributeSet, attributes.static); - addProps(attributeSet, attributes.dynamic); - opts._hasCount = "count" in opts.static || "count" in opts.dynamic || "elements" in opts.static || "elements" in opts.dynamic; - } - function commandRaise(message, command) { - var callSite = guessCallSite(); - raise(message + " in command " + (command || guessCommand()) + (callSite === "unknown" ? "" : " called from " + callSite)); - } - function checkCommand(pred, message, command) { - if (!pred) { - commandRaise(message, command || guessCommand()); - } - } - function checkParameterCommand(param, possibilities, message, command) { - if (!(param in possibilities)) { - commandRaise("unknown parameter (" + param + ")" + encolon(message) + ". possible values: " + Object.keys(possibilities).join(), command || guessCommand()); - } - } - function checkCommandType(value2, type2, message, command) { - if (!standardTypeEh(value2, type2)) { - commandRaise("invalid parameter type" + encolon(message) + ". expected " + type2 + ", got " + typeof value2, command || guessCommand()); - } - } - function checkOptional(block) { - block(); - } - function checkFramebufferFormat(attachment, texFormats, rbFormats) { - if (attachment.texture) { - checkOneOf(attachment.texture._texture.internalformat, texFormats, "unsupported texture format for attachment"); - } else { - checkOneOf(attachment.renderbuffer._renderbuffer.format, rbFormats, "unsupported renderbuffer format for attachment"); - } - } - var GL_CLAMP_TO_EDGE = 33071; - var GL_NEAREST = 9728; - var GL_NEAREST_MIPMAP_NEAREST = 9984; - var GL_LINEAR_MIPMAP_NEAREST = 9985; - var GL_NEAREST_MIPMAP_LINEAR = 9986; - var GL_LINEAR_MIPMAP_LINEAR = 9987; - var GL_BYTE = 5120; - var GL_UNSIGNED_BYTE = 5121; - var GL_SHORT = 5122; - var GL_UNSIGNED_SHORT = 5123; - var GL_INT = 5124; - var GL_UNSIGNED_INT = 5125; - var GL_FLOAT = 5126; - var GL_UNSIGNED_SHORT_4_4_4_4 = 32819; - var GL_UNSIGNED_SHORT_5_5_5_1 = 32820; - var GL_UNSIGNED_SHORT_5_6_5 = 33635; - var GL_UNSIGNED_INT_24_8_WEBGL = 34042; - var GL_HALF_FLOAT_OES = 36193; - var TYPE_SIZE = {}; - TYPE_SIZE[GL_BYTE] = TYPE_SIZE[GL_UNSIGNED_BYTE] = 1; - TYPE_SIZE[GL_SHORT] = TYPE_SIZE[GL_UNSIGNED_SHORT] = TYPE_SIZE[GL_HALF_FLOAT_OES] = TYPE_SIZE[GL_UNSIGNED_SHORT_5_6_5] = TYPE_SIZE[GL_UNSIGNED_SHORT_4_4_4_4] = TYPE_SIZE[GL_UNSIGNED_SHORT_5_5_5_1] = 2; - TYPE_SIZE[GL_INT] = TYPE_SIZE[GL_UNSIGNED_INT] = TYPE_SIZE[GL_FLOAT] = TYPE_SIZE[GL_UNSIGNED_INT_24_8_WEBGL] = 4; - function pixelSize(type2, channels) { - if (type2 === GL_UNSIGNED_SHORT_5_5_5_1 || type2 === GL_UNSIGNED_SHORT_4_4_4_4 || type2 === GL_UNSIGNED_SHORT_5_6_5) { - return 2; - } else if (type2 === GL_UNSIGNED_INT_24_8_WEBGL) { - return 4; - } else { - return TYPE_SIZE[type2] * channels; - } - } - function isPow2(v3) { - return !(v3 & v3 - 1) && !!v3; - } - function checkTexture2D(info, mipData, limits) { - var i4; - var w4 = mipData.width; - var h3 = mipData.height; - var c5 = mipData.channels; - check(w4 > 0 && w4 <= limits.maxTextureSize && h3 > 0 && h3 <= limits.maxTextureSize, "invalid texture shape"); - if (info.wrapS !== GL_CLAMP_TO_EDGE || info.wrapT !== GL_CLAMP_TO_EDGE) { - check(isPow2(w4) && isPow2(h3), "incompatible wrap mode for texture, both width and height must be power of 2"); - } - if (mipData.mipmask === 1) { - if (w4 !== 1 && h3 !== 1) { - check(info.minFilter !== GL_NEAREST_MIPMAP_NEAREST && info.minFilter !== GL_NEAREST_MIPMAP_LINEAR && info.minFilter !== GL_LINEAR_MIPMAP_NEAREST && info.minFilter !== GL_LINEAR_MIPMAP_LINEAR, "min filter requires mipmap"); - } - } else { - check(isPow2(w4) && isPow2(h3), "texture must be a square power of 2 to support mipmapping"); - check(mipData.mipmask === (w4 << 1) - 1, "missing or incomplete mipmap data"); - } - if (mipData.type === GL_FLOAT) { - if (limits.extensions.indexOf("oes_texture_float_linear") < 0) { - check(info.minFilter === GL_NEAREST && info.magFilter === GL_NEAREST, "filter not supported, must enable oes_texture_float_linear"); - } - check(!info.genMipmaps, "mipmap generation not supported with float textures"); - } - var mipimages = mipData.images; - for (i4 = 0; i4 < 16; ++i4) { - if (mipimages[i4]) { - var mw = w4 >> i4; - var mh = h3 >> i4; - check(mipData.mipmask & 1 << i4, "missing mipmap data"); - var img = mipimages[i4]; - check(img.width === mw && img.height === mh, "invalid shape for mip images"); - check(img.format === mipData.format && img.internalformat === mipData.internalformat && img.type === mipData.type, "incompatible type for mip image"); - if (img.compressed) { - } else if (img.data) { - var rowSize = Math.ceil(pixelSize(img.type, c5) * mw / img.unpackAlignment) * img.unpackAlignment; - check(img.data.byteLength === rowSize * mh, "invalid data for image, buffer size is inconsistent with image format"); - } else if (img.element) { - } else if (img.copy) { - } - } else if (!info.genMipmaps) { - check((mipData.mipmask & 1 << i4) === 0, "extra mipmap data"); - } - } - if (mipData.compressed) { - check(!info.genMipmaps, "mipmap generation for compressed images not supported"); - } - } - function checkTextureCube(texture, info, faces, limits) { - var w4 = texture.width; - var h3 = texture.height; - var c5 = texture.channels; - check(w4 > 0 && w4 <= limits.maxTextureSize && h3 > 0 && h3 <= limits.maxTextureSize, "invalid texture shape"); - check(w4 === h3, "cube map must be square"); - check(info.wrapS === GL_CLAMP_TO_EDGE && info.wrapT === GL_CLAMP_TO_EDGE, "wrap mode not supported by cube map"); - for (var i4 = 0; i4 < faces.length; ++i4) { - var face = faces[i4]; - check(face.width === w4 && face.height === h3, "inconsistent cube map face shape"); - if (info.genMipmaps) { - check(!face.compressed, "can not generate mipmap for compressed textures"); - check(face.mipmask === 1, "can not specify mipmaps and generate mipmaps"); - } else { - } - var mipmaps = face.images; - for (var j4 = 0; j4 < 16; ++j4) { - var img = mipmaps[j4]; - if (img) { - var mw = w4 >> j4; - var mh = h3 >> j4; - check(face.mipmask & 1 << j4, "missing mipmap data"); - check(img.width === mw && img.height === mh, "invalid shape for mip images"); - check(img.format === texture.format && img.internalformat === texture.internalformat && img.type === texture.type, "incompatible type for mip image"); - if (img.compressed) { - } else if (img.data) { - check(img.data.byteLength === mw * mh * Math.max(pixelSize(img.type, c5), img.unpackAlignment), "invalid data for image, buffer size is inconsistent with image format"); - } else if (img.element) { - } else if (img.copy) { - } - } - } - } - } - var check$1 = extend4(check, { - optional: checkOptional, - raise, - commandRaise, - command: checkCommand, - parameter: checkParameter, - commandParameter: checkParameterCommand, - constructor: checkConstructor, - type: checkTypeOf, - commandType: checkCommandType, - isTypedArray: checkIsTypedArray, - nni: checkNonNegativeInt, - oneOf: checkOneOf, - shaderError: checkShaderError, - linkError: checkLinkError, - callSite: guessCallSite, - saveCommandRef, - saveDrawInfo: saveDrawCommandInfo, - framebufferFormat: checkFramebufferFormat, - guessCommand, - texture2D: checkTexture2D, - textureCube: checkTextureCube - }); - var VARIABLE_COUNTER = 0; - var DYN_FUNC = 0; - var DYN_CONSTANT = 5; - var DYN_ARRAY = 6; - function DynamicVariable(type2, data3) { - this.id = VARIABLE_COUNTER++; - this.type = type2; - this.data = data3; - } - function escapeStr(str8) { - return str8.replace(/\\/g, "\\\\").replace(/"/g, '\\"'); - } - function splitParts(str8) { - if (str8.length === 0) { - return []; - } - var firstChar = str8.charAt(0); - var lastChar = str8.charAt(str8.length - 1); - if (str8.length > 1 && firstChar === lastChar && (firstChar === '"' || firstChar === "'")) { - return ['"' + escapeStr(str8.substr(1, str8.length - 2)) + '"']; - } - var parts = /\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(str8); - if (parts) { - return splitParts(str8.substr(0, parts.index)).concat(splitParts(parts[1])).concat(splitParts(str8.substr(parts.index + parts[0].length))); - } - var subparts = str8.split("."); - if (subparts.length === 1) { - return ['"' + escapeStr(str8) + '"']; - } - var result = []; - for (var i4 = 0; i4 < subparts.length; ++i4) { - result = result.concat(splitParts(subparts[i4])); - } - return result; - } - function toAccessorString(str8) { - return "[" + splitParts(str8).join("][") + "]"; - } - function defineDynamic(type2, data3) { - return new DynamicVariable(type2, toAccessorString(data3 + "")); - } - function isDynamic(x6) { - return typeof x6 === "function" && !x6._reglType || x6 instanceof DynamicVariable; - } - function unbox(x6, path) { - if (typeof x6 === "function") { - return new DynamicVariable(DYN_FUNC, x6); - } else if (typeof x6 === "number" || typeof x6 === "boolean") { - return new DynamicVariable(DYN_CONSTANT, x6); - } else if (Array.isArray(x6)) { - return new DynamicVariable(DYN_ARRAY, x6.map((y5, i4) => unbox(y5, path + "[" + i4 + "]"))); - } else if (x6 instanceof DynamicVariable) { - return x6; - } - check$1(false, "invalid option type in uniform " + path); - } - var dynamic = { - DynamicVariable, - define: defineDynamic, - isDynamic, - unbox, - accessor: toAccessorString - }; - var raf = { - next: typeof requestAnimationFrame === "function" ? function(cb) { - return requestAnimationFrame(cb); - } : function(cb) { - return setTimeout(cb, 16); - }, - cancel: typeof cancelAnimationFrame === "function" ? function(raf2) { - return cancelAnimationFrame(raf2); - } : clearTimeout - }; - var clock2 = typeof performance !== "undefined" && performance.now ? function() { - return performance.now(); - } : function() { - return +new Date(); - }; - function createStringStore() { - var stringIds = { "": 0 }; - var stringValues = [""]; - return { - id: function(str8) { - var result = stringIds[str8]; - if (result) { - return result; - } - result = stringIds[str8] = stringValues.length; - stringValues.push(str8); - return result; - }, - str: function(id) { - return stringValues[id]; - } - }; - } - function createCanvas2(element, onDone, pixelRatio) { - var canvas = document.createElement("canvas"); - extend4(canvas.style, { - border: 0, - margin: 0, - padding: 0, - top: 0, - left: 0 - }); - element.appendChild(canvas); - if (element === document.body) { - canvas.style.position = "absolute"; - extend4(element.style, { - margin: 0, - padding: 0 - }); - } - function resize() { - var w4 = window.innerWidth; - var h3 = window.innerHeight; - if (element !== document.body) { - var bounds = element.getBoundingClientRect(); - w4 = bounds.right - bounds.left; - h3 = bounds.bottom - bounds.top; - } - canvas.width = pixelRatio * w4; - canvas.height = pixelRatio * h3; - extend4(canvas.style, { - width: w4 + "px", - height: h3 + "px" - }); - } - var resizeObserver; - if (element !== document.body && typeof ResizeObserver === "function") { - resizeObserver = new ResizeObserver(function() { - setTimeout(resize); - }); - resizeObserver.observe(element); - } else { - window.addEventListener("resize", resize, false); - } - function onDestroy() { - if (resizeObserver) { - resizeObserver.disconnect(); - } else { - window.removeEventListener("resize", resize); - } - element.removeChild(canvas); - } - resize(); - return { - canvas, - onDestroy - }; - } - function createContext(canvas, contextAttributes) { - function get3(name) { - try { - return canvas.getContext(name, contextAttributes); - } catch (e4) { - return null; - } - } - return get3("webgl") || get3("experimental-webgl") || get3("webgl-experimental"); - } - function isHTMLElement(obj) { - return typeof obj.nodeName === "string" && typeof obj.appendChild === "function" && typeof obj.getBoundingClientRect === "function"; - } - function isWebGLContext(obj) { - return typeof obj.drawArrays === "function" || typeof obj.drawElements === "function"; - } - function parseExtensions(input) { - if (typeof input === "string") { - return input.split(); - } - check$1(Array.isArray(input), "invalid extension array"); - return input; - } - function getElement(desc) { - if (typeof desc === "string") { - check$1(typeof document !== "undefined", "not supported outside of DOM"); - return document.querySelector(desc); - } - return desc; - } - function parseArgs(args_) { - var args = args_ || {}; - var element, container2, canvas, gl2; - var contextAttributes = {}; - var extensions = []; - var optionalExtensions = []; - var pixelRatio = typeof window === "undefined" ? 1 : window.devicePixelRatio; - var profile = false; - var onDone = function(err) { - if (err) { - check$1.raise(err); - } - }; - var onDestroy = function() { - }; - if (typeof args === "string") { - check$1(typeof document !== "undefined", "selector queries only supported in DOM enviroments"); - element = document.querySelector(args); - check$1(element, "invalid query string for element"); - } else if (typeof args === "object") { - if (isHTMLElement(args)) { - element = args; - } else if (isWebGLContext(args)) { - gl2 = args; - canvas = gl2.canvas; - } else { - check$1.constructor(args); - if ("gl" in args) { - gl2 = args.gl; - } else if ("canvas" in args) { - canvas = getElement(args.canvas); - } else if ("container" in args) { - container2 = getElement(args.container); - } - if ("attributes" in args) { - contextAttributes = args.attributes; - check$1.type(contextAttributes, "object", "invalid context attributes"); - } - if ("extensions" in args) { - extensions = parseExtensions(args.extensions); - } - if ("optionalExtensions" in args) { - optionalExtensions = parseExtensions(args.optionalExtensions); - } - if ("onDone" in args) { - check$1.type(args.onDone, "function", "invalid or missing onDone callback"); - onDone = args.onDone; - } - if ("profile" in args) { - profile = !!args.profile; - } - if ("pixelRatio" in args) { - pixelRatio = +args.pixelRatio; - check$1(pixelRatio > 0, "invalid pixel ratio"); - } - } - } else { - check$1.raise("invalid arguments to regl"); - } - if (element) { - if (element.nodeName.toLowerCase() === "canvas") { - canvas = element; - } else { - container2 = element; - } - } - if (!gl2) { - if (!canvas) { - check$1(typeof document !== "undefined", "must manually specify webgl context outside of DOM environments"); - var result = createCanvas2(container2 || document.body, onDone, pixelRatio); - if (!result) { - return null; - } - canvas = result.canvas; - onDestroy = result.onDestroy; - } - if (contextAttributes.premultipliedAlpha === void 0) - contextAttributes.premultipliedAlpha = true; - gl2 = createContext(canvas, contextAttributes); - } - if (!gl2) { - onDestroy(); - onDone("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"); - return null; - } - return { - gl: gl2, - canvas, - container: container2, - extensions, - optionalExtensions, - pixelRatio, - profile, - onDone, - onDestroy - }; - } - function createExtensionCache(gl2, config) { - var extensions = {}; - function tryLoadExtension(name_) { - check$1.type(name_, "string", "extension name must be string"); - var name2 = name_.toLowerCase(); - var ext; - try { - ext = extensions[name2] = gl2.getExtension(name2); - } catch (e4) { - } - return !!ext; - } - for (var i4 = 0; i4 < config.extensions.length; ++i4) { - var name = config.extensions[i4]; - if (!tryLoadExtension(name)) { - config.onDestroy(); - config.onDone('"' + name + '" extension is not supported by the current WebGL context, try upgrading your system or a different browser'); - return null; - } - } - config.optionalExtensions.forEach(tryLoadExtension); - return { - extensions, - restore: function() { - Object.keys(extensions).forEach(function(name2) { - if (extensions[name2] && !tryLoadExtension(name2)) { - throw new Error("(regl): error restoring extension " + name2); - } - }); - } - }; - } - function loop(n3, f3) { - var result = Array(n3); - for (var i4 = 0; i4 < n3; ++i4) { - result[i4] = f3(i4); - } - return result; - } - var GL_BYTE$1 = 5120; - var GL_UNSIGNED_BYTE$2 = 5121; - var GL_SHORT$1 = 5122; - var GL_UNSIGNED_SHORT$1 = 5123; - var GL_INT$1 = 5124; - var GL_UNSIGNED_INT$1 = 5125; - var GL_FLOAT$2 = 5126; - function nextPow16(v3) { - for (var i4 = 16; i4 <= 1 << 28; i4 *= 16) { - if (v3 <= i4) { - return i4; - } - } - return 0; - } - function log22(v3) { - var r4, shift; - r4 = (v3 > 65535) << 4; - v3 >>>= r4; - shift = (v3 > 255) << 3; - v3 >>>= shift; - r4 |= shift; - shift = (v3 > 15) << 2; - v3 >>>= shift; - r4 |= shift; - shift = (v3 > 3) << 1; - v3 >>>= shift; - r4 |= shift; - return r4 | v3 >> 1; - } - function createPool() { - var bufferPool = loop(8, function() { - return []; - }); - function alloc(n3) { - var sz = nextPow16(n3); - var bin = bufferPool[log22(sz) >> 2]; - if (bin.length > 0) { - return bin.pop(); - } - return new ArrayBuffer(sz); - } - function free(buf) { - bufferPool[log22(buf.byteLength) >> 2].push(buf); - } - function allocType(type2, n3) { - var result = null; - switch (type2) { - case GL_BYTE$1: - result = new Int8Array(alloc(n3), 0, n3); - break; - case GL_UNSIGNED_BYTE$2: - result = new Uint8Array(alloc(n3), 0, n3); - break; - case GL_SHORT$1: - result = new Int16Array(alloc(2 * n3), 0, n3); - break; - case GL_UNSIGNED_SHORT$1: - result = new Uint16Array(alloc(2 * n3), 0, n3); - break; - case GL_INT$1: - result = new Int32Array(alloc(4 * n3), 0, n3); - break; - case GL_UNSIGNED_INT$1: - result = new Uint32Array(alloc(4 * n3), 0, n3); - break; - case GL_FLOAT$2: - result = new Float32Array(alloc(4 * n3), 0, n3); - break; - default: - return null; - } - if (result.length !== n3) { - return result.subarray(0, n3); - } - return result; - } - function freeType(array) { - free(array.buffer); - } - return { - alloc, - free, - allocType, - freeType - }; - } - var pool = createPool(); - pool.zero = createPool(); - var GL_SUBPIXEL_BITS = 3408; - var GL_RED_BITS = 3410; - var GL_GREEN_BITS = 3411; - var GL_BLUE_BITS = 3412; - var GL_ALPHA_BITS = 3413; - var GL_DEPTH_BITS = 3414; - var GL_STENCIL_BITS = 3415; - var GL_ALIASED_POINT_SIZE_RANGE = 33901; - var GL_ALIASED_LINE_WIDTH_RANGE = 33902; - var GL_MAX_TEXTURE_SIZE = 3379; - var GL_MAX_VIEWPORT_DIMS = 3386; - var GL_MAX_VERTEX_ATTRIBS = 34921; - var GL_MAX_VERTEX_UNIFORM_VECTORS = 36347; - var GL_MAX_VARYING_VECTORS = 36348; - var GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661; - var GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660; - var GL_MAX_TEXTURE_IMAGE_UNITS = 34930; - var GL_MAX_FRAGMENT_UNIFORM_VECTORS = 36349; - var GL_MAX_CUBE_MAP_TEXTURE_SIZE = 34076; - var GL_MAX_RENDERBUFFER_SIZE = 34024; - var GL_VENDOR = 7936; - var GL_RENDERER = 7937; - var GL_VERSION = 7938; - var GL_SHADING_LANGUAGE_VERSION = 35724; - var GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047; - var GL_MAX_COLOR_ATTACHMENTS_WEBGL = 36063; - var GL_MAX_DRAW_BUFFERS_WEBGL = 34852; - var GL_TEXTURE_2D = 3553; - var GL_TEXTURE_CUBE_MAP = 34067; - var GL_TEXTURE_CUBE_MAP_POSITIVE_X = 34069; - var GL_TEXTURE0 = 33984; - var GL_RGBA = 6408; - var GL_FLOAT$1 = 5126; - var GL_UNSIGNED_BYTE$1 = 5121; - var GL_FRAMEBUFFER = 36160; - var GL_FRAMEBUFFER_COMPLETE = 36053; - var GL_COLOR_ATTACHMENT0 = 36064; - var GL_COLOR_BUFFER_BIT$1 = 16384; - var wrapLimits = function(gl2, extensions) { - var maxAnisotropic = 1; - if (extensions.ext_texture_filter_anisotropic) { - maxAnisotropic = gl2.getParameter(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT); - } - var maxDrawbuffers = 1; - var maxColorAttachments = 1; - if (extensions.webgl_draw_buffers) { - maxDrawbuffers = gl2.getParameter(GL_MAX_DRAW_BUFFERS_WEBGL); - maxColorAttachments = gl2.getParameter(GL_MAX_COLOR_ATTACHMENTS_WEBGL); - } - var readFloat = !!extensions.oes_texture_float; - if (readFloat) { - var readFloatTexture = gl2.createTexture(); - gl2.bindTexture(GL_TEXTURE_2D, readFloatTexture); - gl2.texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_FLOAT$1, null); - var fbo = gl2.createFramebuffer(); - gl2.bindFramebuffer(GL_FRAMEBUFFER, fbo); - gl2.framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, readFloatTexture, 0); - gl2.bindTexture(GL_TEXTURE_2D, null); - if (gl2.checkFramebufferStatus(GL_FRAMEBUFFER) !== GL_FRAMEBUFFER_COMPLETE) - readFloat = false; - else { - gl2.viewport(0, 0, 1, 1); - gl2.clearColor(1, 0, 0, 1); - gl2.clear(GL_COLOR_BUFFER_BIT$1); - var pixels = pool.allocType(GL_FLOAT$1, 4); - gl2.readPixels(0, 0, 1, 1, GL_RGBA, GL_FLOAT$1, pixels); - if (gl2.getError()) - readFloat = false; - else { - gl2.deleteFramebuffer(fbo); - gl2.deleteTexture(readFloatTexture); - readFloat = pixels[0] === 1; - } - pool.freeType(pixels); - } - } - var isIE = typeof navigator !== "undefined" && (/MSIE/.test(navigator.userAgent) || /Trident\//.test(navigator.appVersion) || /Edge/.test(navigator.userAgent)); - var npotTextureCube = true; - if (!isIE) { - var cubeTexture = gl2.createTexture(); - var data3 = pool.allocType(GL_UNSIGNED_BYTE$1, 36); - gl2.activeTexture(GL_TEXTURE0); - gl2.bindTexture(GL_TEXTURE_CUBE_MAP, cubeTexture); - gl2.texImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGBA, 3, 3, 0, GL_RGBA, GL_UNSIGNED_BYTE$1, data3); - pool.freeType(data3); - gl2.bindTexture(GL_TEXTURE_CUBE_MAP, null); - gl2.deleteTexture(cubeTexture); - npotTextureCube = !gl2.getError(); - } - return { - colorBits: [ - gl2.getParameter(GL_RED_BITS), - gl2.getParameter(GL_GREEN_BITS), - gl2.getParameter(GL_BLUE_BITS), - gl2.getParameter(GL_ALPHA_BITS) - ], - depthBits: gl2.getParameter(GL_DEPTH_BITS), - stencilBits: gl2.getParameter(GL_STENCIL_BITS), - subpixelBits: gl2.getParameter(GL_SUBPIXEL_BITS), - extensions: Object.keys(extensions).filter(function(ext) { - return !!extensions[ext]; - }), - maxAnisotropic, - maxDrawbuffers, - maxColorAttachments, - pointSizeDims: gl2.getParameter(GL_ALIASED_POINT_SIZE_RANGE), - lineWidthDims: gl2.getParameter(GL_ALIASED_LINE_WIDTH_RANGE), - maxViewportDims: gl2.getParameter(GL_MAX_VIEWPORT_DIMS), - maxCombinedTextureUnits: gl2.getParameter(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS), - maxCubeMapSize: gl2.getParameter(GL_MAX_CUBE_MAP_TEXTURE_SIZE), - maxRenderbufferSize: gl2.getParameter(GL_MAX_RENDERBUFFER_SIZE), - maxTextureUnits: gl2.getParameter(GL_MAX_TEXTURE_IMAGE_UNITS), - maxTextureSize: gl2.getParameter(GL_MAX_TEXTURE_SIZE), - maxAttributes: gl2.getParameter(GL_MAX_VERTEX_ATTRIBS), - maxVertexUniforms: gl2.getParameter(GL_MAX_VERTEX_UNIFORM_VECTORS), - maxVertexTextureUnits: gl2.getParameter(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS), - maxVaryingVectors: gl2.getParameter(GL_MAX_VARYING_VECTORS), - maxFragmentUniforms: gl2.getParameter(GL_MAX_FRAGMENT_UNIFORM_VECTORS), - glsl: gl2.getParameter(GL_SHADING_LANGUAGE_VERSION), - renderer: gl2.getParameter(GL_RENDERER), - vendor: gl2.getParameter(GL_VENDOR), - version: gl2.getParameter(GL_VERSION), - readFloat, - npotTextureCube - }; - }; - function isNDArrayLike(obj) { - return !!obj && typeof obj === "object" && Array.isArray(obj.shape) && Array.isArray(obj.stride) && typeof obj.offset === "number" && obj.shape.length === obj.stride.length && (Array.isArray(obj.data) || isTypedArray4(obj.data)); - } - var values2 = function(obj) { - return Object.keys(obj).map(function(key) { - return obj[key]; - }); - }; - var flattenUtils = { - shape: arrayShape$1, - flatten: flattenArray - }; - function flatten1D(array, nx, out) { - for (var i4 = 0; i4 < nx; ++i4) { - out[i4] = array[i4]; - } - } - function flatten2D(array, nx, ny, out) { - var ptr = 0; - for (var i4 = 0; i4 < nx; ++i4) { - var row = array[i4]; - for (var j4 = 0; j4 < ny; ++j4) { - out[ptr++] = row[j4]; - } - } - } - function flatten3D(array, nx, ny, nz, out, ptr_) { - var ptr = ptr_; - for (var i4 = 0; i4 < nx; ++i4) { - var row = array[i4]; - for (var j4 = 0; j4 < ny; ++j4) { - var col = row[j4]; - for (var k4 = 0; k4 < nz; ++k4) { - out[ptr++] = col[k4]; - } - } - } - } - function flattenRec(array, shape, level, out, ptr) { - var stride = 1; - for (var i4 = level + 1; i4 < shape.length; ++i4) { - stride *= shape[i4]; - } - var n3 = shape[level]; - if (shape.length - level === 4) { - var nx = shape[level + 1]; - var ny = shape[level + 2]; - var nz = shape[level + 3]; - for (i4 = 0; i4 < n3; ++i4) { - flatten3D(array[i4], nx, ny, nz, out, ptr); - ptr += stride; - } - } else { - for (i4 = 0; i4 < n3; ++i4) { - flattenRec(array[i4], shape, level + 1, out, ptr); - ptr += stride; - } - } - } - function flattenArray(array, shape, type2, out_) { - var sz = 1; - if (shape.length) { - for (var i4 = 0; i4 < shape.length; ++i4) { - sz *= shape[i4]; - } - } else { - sz = 0; - } - var out = out_ || pool.allocType(type2, sz); - switch (shape.length) { - case 0: - break; - case 1: - flatten1D(array, shape[0], out); - break; - case 2: - flatten2D(array, shape[0], shape[1], out); - break; - case 3: - flatten3D(array, shape[0], shape[1], shape[2], out, 0); - break; - default: - flattenRec(array, shape, 0, out, 0); - } - return out; - } - function arrayShape$1(array_) { - var shape = []; - for (var array = array_; array.length; array = array[0]) { - shape.push(array.length); - } - return shape; - } - var arrayTypes = { - "[object Int8Array]": 5120, - "[object Int16Array]": 5122, - "[object Int32Array]": 5124, - "[object Uint8Array]": 5121, - "[object Uint8ClampedArray]": 5121, - "[object Uint16Array]": 5123, - "[object Uint32Array]": 5125, - "[object Float32Array]": 5126, - "[object Float64Array]": 5121, - "[object ArrayBuffer]": 5121 - }; - var int8 = 5120; - var int16 = 5122; - var int32 = 5124; - var uint8 = 5121; - var uint16 = 5123; - var uint32 = 5125; - var float2 = 5126; - var float32 = 5126; - var glTypes = { - int8, - int16, - int32, - uint8, - uint16, - uint32, - float: float2, - float32 - }; - var dynamic$1 = 35048; - var stream = 35040; - var usageTypes = { - dynamic: dynamic$1, - stream, - "static": 35044 - }; - var arrayFlatten = flattenUtils.flatten; - var arrayShape = flattenUtils.shape; - var GL_STATIC_DRAW = 35044; - var GL_STREAM_DRAW = 35040; - var GL_UNSIGNED_BYTE$3 = 5121; - var GL_FLOAT$3 = 5126; - var DTYPES_SIZES = []; - DTYPES_SIZES[5120] = 1; - DTYPES_SIZES[5122] = 2; - DTYPES_SIZES[5124] = 4; - DTYPES_SIZES[5121] = 1; - DTYPES_SIZES[5123] = 2; - DTYPES_SIZES[5125] = 4; - DTYPES_SIZES[5126] = 4; - function typedArrayCode(data3) { - return arrayTypes[Object.prototype.toString.call(data3)] | 0; - } - function copyArray(out, inp) { - for (var i4 = 0; i4 < inp.length; ++i4) { - out[i4] = inp[i4]; - } - } - function transpose5(result, data3, shapeX, shapeY, strideX, strideY, offset) { - var ptr = 0; - for (var i4 = 0; i4 < shapeX; ++i4) { - for (var j4 = 0; j4 < shapeY; ++j4) { - result[ptr++] = data3[strideX * i4 + strideY * j4 + offset]; - } - } - } - function wrapBufferState(gl2, stats2, config, destroyBuffer) { - var bufferCount = 0; - var bufferSet = {}; - function REGLBuffer(type2) { - this.id = bufferCount++; - this.buffer = gl2.createBuffer(); - this.type = type2; - this.usage = GL_STATIC_DRAW; - this.byteLength = 0; - this.dimension = 1; - this.dtype = GL_UNSIGNED_BYTE$3; - this.persistentData = null; - if (config.profile) { - this.stats = { size: 0 }; - } - } - REGLBuffer.prototype.bind = function() { - gl2.bindBuffer(this.type, this.buffer); - }; - REGLBuffer.prototype.destroy = function() { - destroy(this); - }; - var streamPool = []; - function createStream(type2, data3) { - var buffer = streamPool.pop(); - if (!buffer) { - buffer = new REGLBuffer(type2); - } - buffer.bind(); - initBufferFromData(buffer, data3, GL_STREAM_DRAW, 0, 1, false); - return buffer; - } - function destroyStream(stream$$1) { - streamPool.push(stream$$1); - } - function initBufferFromTypedArray(buffer, data3, usage) { - buffer.byteLength = data3.byteLength; - gl2.bufferData(buffer.type, data3, usage); - } - function initBufferFromData(buffer, data3, usage, dtype, dimension, persist) { - var shape; - buffer.usage = usage; - if (Array.isArray(data3)) { - buffer.dtype = dtype || GL_FLOAT$3; - if (data3.length > 0) { - var flatData; - if (Array.isArray(data3[0])) { - shape = arrayShape(data3); - var dim = 1; - for (var i4 = 1; i4 < shape.length; ++i4) { - dim *= shape[i4]; - } - buffer.dimension = dim; - flatData = arrayFlatten(data3, shape, buffer.dtype); - initBufferFromTypedArray(buffer, flatData, usage); - if (persist) { - buffer.persistentData = flatData; - } else { - pool.freeType(flatData); - } - } else if (typeof data3[0] === "number") { - buffer.dimension = dimension; - var typedData = pool.allocType(buffer.dtype, data3.length); - copyArray(typedData, data3); - initBufferFromTypedArray(buffer, typedData, usage); - if (persist) { - buffer.persistentData = typedData; - } else { - pool.freeType(typedData); - } - } else if (isTypedArray4(data3[0])) { - buffer.dimension = data3[0].length; - buffer.dtype = dtype || typedArrayCode(data3[0]) || GL_FLOAT$3; - flatData = arrayFlatten(data3, [data3.length, data3[0].length], buffer.dtype); - initBufferFromTypedArray(buffer, flatData, usage); - if (persist) { - buffer.persistentData = flatData; - } else { - pool.freeType(flatData); - } - } else { - check$1.raise("invalid buffer data"); - } - } - } else if (isTypedArray4(data3)) { - buffer.dtype = dtype || typedArrayCode(data3); - buffer.dimension = dimension; - initBufferFromTypedArray(buffer, data3, usage); - if (persist) { - buffer.persistentData = new Uint8Array(new Uint8Array(data3.buffer)); - } - } else if (isNDArrayLike(data3)) { - shape = data3.shape; - var stride = data3.stride; - var offset = data3.offset; - var shapeX = 0; - var shapeY = 0; - var strideX = 0; - var strideY = 0; - if (shape.length === 1) { - shapeX = shape[0]; - shapeY = 1; - strideX = stride[0]; - strideY = 0; - } else if (shape.length === 2) { - shapeX = shape[0]; - shapeY = shape[1]; - strideX = stride[0]; - strideY = stride[1]; - } else { - check$1.raise("invalid shape"); - } - buffer.dtype = dtype || typedArrayCode(data3.data) || GL_FLOAT$3; - buffer.dimension = shapeY; - var transposeData2 = pool.allocType(buffer.dtype, shapeX * shapeY); - transpose5(transposeData2, data3.data, shapeX, shapeY, strideX, strideY, offset); - initBufferFromTypedArray(buffer, transposeData2, usage); - if (persist) { - buffer.persistentData = transposeData2; - } else { - pool.freeType(transposeData2); - } - } else if (data3 instanceof ArrayBuffer) { - buffer.dtype = GL_UNSIGNED_BYTE$3; - buffer.dimension = dimension; - initBufferFromTypedArray(buffer, data3, usage); - if (persist) { - buffer.persistentData = new Uint8Array(new Uint8Array(data3)); - } - } else { - check$1.raise("invalid buffer data"); - } - } - function destroy(buffer) { - stats2.bufferCount--; - destroyBuffer(buffer); - var handle = buffer.buffer; - check$1(handle, "buffer must not be deleted already"); - gl2.deleteBuffer(handle); - buffer.buffer = null; - delete bufferSet[buffer.id]; - } - function createBuffer(options, type2, deferInit, persistent) { - stats2.bufferCount++; - var buffer = new REGLBuffer(type2); - bufferSet[buffer.id] = buffer; - function reglBuffer(options2) { - var usage = GL_STATIC_DRAW; - var data3 = null; - var byteLength = 0; - var dtype = 0; - var dimension = 1; - if (Array.isArray(options2) || isTypedArray4(options2) || isNDArrayLike(options2) || options2 instanceof ArrayBuffer) { - data3 = options2; - } else if (typeof options2 === "number") { - byteLength = options2 | 0; - } else if (options2) { - check$1.type(options2, "object", "buffer arguments must be an object, a number or an array"); - if ("data" in options2) { - check$1(data3 === null || Array.isArray(data3) || isTypedArray4(data3) || isNDArrayLike(data3), "invalid data for buffer"); - data3 = options2.data; - } - if ("usage" in options2) { - check$1.parameter(options2.usage, usageTypes, "invalid buffer usage"); - usage = usageTypes[options2.usage]; - } - if ("type" in options2) { - check$1.parameter(options2.type, glTypes, "invalid buffer type"); - dtype = glTypes[options2.type]; - } - if ("dimension" in options2) { - check$1.type(options2.dimension, "number", "invalid dimension"); - dimension = options2.dimension | 0; - } - if ("length" in options2) { - check$1.nni(byteLength, "buffer length must be a nonnegative integer"); - byteLength = options2.length | 0; - } - } - buffer.bind(); - if (!data3) { - if (byteLength) - gl2.bufferData(buffer.type, byteLength, usage); - buffer.dtype = dtype || GL_UNSIGNED_BYTE$3; - buffer.usage = usage; - buffer.dimension = dimension; - buffer.byteLength = byteLength; - } else { - initBufferFromData(buffer, data3, usage, dtype, dimension, persistent); - } - if (config.profile) { - buffer.stats.size = buffer.byteLength * DTYPES_SIZES[buffer.dtype]; - } - return reglBuffer; - } - function setSubData(data3, offset) { - check$1(offset + data3.byteLength <= buffer.byteLength, "invalid buffer subdata call, buffer is too small. Can't write data of size " + data3.byteLength + " starting from offset " + offset + " to a buffer of size " + buffer.byteLength); - gl2.bufferSubData(buffer.type, offset, data3); - } - function subdata(data3, offset_) { - var offset = (offset_ || 0) | 0; - var shape; - buffer.bind(); - if (isTypedArray4(data3) || data3 instanceof ArrayBuffer) { - setSubData(data3, offset); - } else if (Array.isArray(data3)) { - if (data3.length > 0) { - if (typeof data3[0] === "number") { - var converted = pool.allocType(buffer.dtype, data3.length); - copyArray(converted, data3); - setSubData(converted, offset); - pool.freeType(converted); - } else if (Array.isArray(data3[0]) || isTypedArray4(data3[0])) { - shape = arrayShape(data3); - var flatData = arrayFlatten(data3, shape, buffer.dtype); - setSubData(flatData, offset); - pool.freeType(flatData); - } else { - check$1.raise("invalid buffer data"); - } - } - } else if (isNDArrayLike(data3)) { - shape = data3.shape; - var stride = data3.stride; - var shapeX = 0; - var shapeY = 0; - var strideX = 0; - var strideY = 0; - if (shape.length === 1) { - shapeX = shape[0]; - shapeY = 1; - strideX = stride[0]; - strideY = 0; - } else if (shape.length === 2) { - shapeX = shape[0]; - shapeY = shape[1]; - strideX = stride[0]; - strideY = stride[1]; - } else { - check$1.raise("invalid shape"); - } - var dtype = Array.isArray(data3.data) ? buffer.dtype : typedArrayCode(data3.data); - var transposeData2 = pool.allocType(dtype, shapeX * shapeY); - transpose5(transposeData2, data3.data, shapeX, shapeY, strideX, strideY, data3.offset); - setSubData(transposeData2, offset); - pool.freeType(transposeData2); - } else { - check$1.raise("invalid data for buffer subdata"); - } - return reglBuffer; - } - if (!deferInit) { - reglBuffer(options); - } - reglBuffer._reglType = "buffer"; - reglBuffer._buffer = buffer; - reglBuffer.subdata = subdata; - if (config.profile) { - reglBuffer.stats = buffer.stats; - } - reglBuffer.destroy = function() { - destroy(buffer); - }; - return reglBuffer; - } - function restoreBuffers() { - values2(bufferSet).forEach(function(buffer) { - buffer.buffer = gl2.createBuffer(); - gl2.bindBuffer(buffer.type, buffer.buffer); - gl2.bufferData(buffer.type, buffer.persistentData || buffer.byteLength, buffer.usage); - }); - } - if (config.profile) { - stats2.getTotalBufferSize = function() { - var total = 0; - Object.keys(bufferSet).forEach(function(key) { - total += bufferSet[key].stats.size; - }); - return total; - }; - } - return { - create: createBuffer, - createStream, - destroyStream, - clear: function() { - values2(bufferSet).forEach(destroy); - streamPool.forEach(destroy); - }, - getBuffer: function(wrapper) { - if (wrapper && wrapper._buffer instanceof REGLBuffer) { - return wrapper._buffer; - } - return null; - }, - restore: restoreBuffers, - _initBuffer: initBufferFromData - }; - } - var points = 0; - var point2 = 0; - var lines = 1; - var line2 = 1; - var triangles = 4; - var triangle3 = 4; - var primTypes = { - points, - point: point2, - lines, - line: line2, - triangles, - triangle: triangle3, - "line loop": 2, - "line strip": 3, - "triangle strip": 5, - "triangle fan": 6 - }; - var GL_POINTS = 0; - var GL_LINES = 1; - var GL_TRIANGLES = 4; - var GL_BYTE$2 = 5120; - var GL_UNSIGNED_BYTE$4 = 5121; - var GL_SHORT$2 = 5122; - var GL_UNSIGNED_SHORT$2 = 5123; - var GL_INT$2 = 5124; - var GL_UNSIGNED_INT$2 = 5125; - var GL_ELEMENT_ARRAY_BUFFER = 34963; - var GL_STREAM_DRAW$1 = 35040; - var GL_STATIC_DRAW$1 = 35044; - function wrapElementsState(gl2, extensions, bufferState, stats2) { - var elementSet = {}; - var elementCount = 0; - var elementTypes = { - "uint8": GL_UNSIGNED_BYTE$4, - "uint16": GL_UNSIGNED_SHORT$2 - }; - if (extensions.oes_element_index_uint) { - elementTypes.uint32 = GL_UNSIGNED_INT$2; - } - function REGLElementBuffer(buffer) { - this.id = elementCount++; - elementSet[this.id] = this; - this.buffer = buffer; - this.primType = GL_TRIANGLES; - this.vertCount = 0; - this.type = 0; - } - REGLElementBuffer.prototype.bind = function() { - this.buffer.bind(); - }; - var bufferPool = []; - function createElementStream(data3) { - var result = bufferPool.pop(); - if (!result) { - result = new REGLElementBuffer(bufferState.create(null, GL_ELEMENT_ARRAY_BUFFER, true, false)._buffer); - } - initElements(result, data3, GL_STREAM_DRAW$1, -1, -1, 0, 0); - return result; - } - function destroyElementStream(elements) { - bufferPool.push(elements); - } - function initElements(elements, data3, usage, prim, count2, byteLength, type2) { - elements.buffer.bind(); - var dtype; - if (data3) { - var predictedType = type2; - if (!type2 && (!isTypedArray4(data3) || isNDArrayLike(data3) && !isTypedArray4(data3.data))) { - predictedType = extensions.oes_element_index_uint ? GL_UNSIGNED_INT$2 : GL_UNSIGNED_SHORT$2; - } - bufferState._initBuffer(elements.buffer, data3, usage, predictedType, 3); - } else { - gl2.bufferData(GL_ELEMENT_ARRAY_BUFFER, byteLength, usage); - elements.buffer.dtype = dtype || GL_UNSIGNED_BYTE$4; - elements.buffer.usage = usage; - elements.buffer.dimension = 3; - elements.buffer.byteLength = byteLength; - } - dtype = type2; - if (!type2) { - switch (elements.buffer.dtype) { - case GL_UNSIGNED_BYTE$4: - case GL_BYTE$2: - dtype = GL_UNSIGNED_BYTE$4; - break; - case GL_UNSIGNED_SHORT$2: - case GL_SHORT$2: - dtype = GL_UNSIGNED_SHORT$2; - break; - case GL_UNSIGNED_INT$2: - case GL_INT$2: - dtype = GL_UNSIGNED_INT$2; - break; - default: - check$1.raise("unsupported type for element array"); - } - elements.buffer.dtype = dtype; - } - elements.type = dtype; - check$1(dtype !== GL_UNSIGNED_INT$2 || !!extensions.oes_element_index_uint, "32 bit element buffers not supported, enable oes_element_index_uint first"); - var vertCount = count2; - if (vertCount < 0) { - vertCount = elements.buffer.byteLength; - if (dtype === GL_UNSIGNED_SHORT$2) { - vertCount >>= 1; - } else if (dtype === GL_UNSIGNED_INT$2) { - vertCount >>= 2; - } - } - elements.vertCount = vertCount; - var primType = prim; - if (prim < 0) { - primType = GL_TRIANGLES; - var dimension = elements.buffer.dimension; - if (dimension === 1) - primType = GL_POINTS; - if (dimension === 2) - primType = GL_LINES; - if (dimension === 3) - primType = GL_TRIANGLES; - } - elements.primType = primType; - } - function destroyElements(elements) { - stats2.elementsCount--; - check$1(elements.buffer !== null, "must not double destroy elements"); - delete elementSet[elements.id]; - elements.buffer.destroy(); - elements.buffer = null; - } - function createElements(options, persistent) { - var buffer = bufferState.create(null, GL_ELEMENT_ARRAY_BUFFER, true); - var elements = new REGLElementBuffer(buffer._buffer); - stats2.elementsCount++; - function reglElements(options2) { - if (!options2) { - buffer(); - elements.primType = GL_TRIANGLES; - elements.vertCount = 0; - elements.type = GL_UNSIGNED_BYTE$4; - } else if (typeof options2 === "number") { - buffer(options2); - elements.primType = GL_TRIANGLES; - elements.vertCount = options2 | 0; - elements.type = GL_UNSIGNED_BYTE$4; - } else { - var data3 = null; - var usage = GL_STATIC_DRAW$1; - var primType = -1; - var vertCount = -1; - var byteLength = 0; - var dtype = 0; - if (Array.isArray(options2) || isTypedArray4(options2) || isNDArrayLike(options2)) { - data3 = options2; - } else { - check$1.type(options2, "object", "invalid arguments for elements"); - if ("data" in options2) { - data3 = options2.data; - check$1(Array.isArray(data3) || isTypedArray4(data3) || isNDArrayLike(data3), "invalid data for element buffer"); - } - if ("usage" in options2) { - check$1.parameter(options2.usage, usageTypes, "invalid element buffer usage"); - usage = usageTypes[options2.usage]; - } - if ("primitive" in options2) { - check$1.parameter(options2.primitive, primTypes, "invalid element buffer primitive"); - primType = primTypes[options2.primitive]; - } - if ("count" in options2) { - check$1(typeof options2.count === "number" && options2.count >= 0, "invalid vertex count for elements"); - vertCount = options2.count | 0; - } - if ("type" in options2) { - check$1.parameter(options2.type, elementTypes, "invalid buffer type"); - dtype = elementTypes[options2.type]; - } - if ("length" in options2) { - byteLength = options2.length | 0; - } else { - byteLength = vertCount; - if (dtype === GL_UNSIGNED_SHORT$2 || dtype === GL_SHORT$2) { - byteLength *= 2; - } else if (dtype === GL_UNSIGNED_INT$2 || dtype === GL_INT$2) { - byteLength *= 4; - } - } - } - initElements(elements, data3, usage, primType, vertCount, byteLength, dtype); - } - return reglElements; - } - reglElements(options); - reglElements._reglType = "elements"; - reglElements._elements = elements; - reglElements.subdata = function(data3, offset) { - buffer.subdata(data3, offset); - return reglElements; - }; - reglElements.destroy = function() { - destroyElements(elements); - }; - return reglElements; - } - return { - create: createElements, - createStream: createElementStream, - destroyStream: destroyElementStream, - getElements: function(elements) { - if (typeof elements === "function" && elements._elements instanceof REGLElementBuffer) { - return elements._elements; - } - return null; - }, - clear: function() { - values2(elementSet).forEach(destroyElements); - } - }; - } - var FLOAT = new Float32Array(1); - var INT = new Uint32Array(FLOAT.buffer); - var GL_UNSIGNED_SHORT$4 = 5123; - function convertToHalfFloat(array) { - var ushorts = pool.allocType(GL_UNSIGNED_SHORT$4, array.length); - for (var i4 = 0; i4 < array.length; ++i4) { - if (isNaN(array[i4])) { - ushorts[i4] = 65535; - } else if (array[i4] === Infinity) { - ushorts[i4] = 31744; - } else if (array[i4] === -Infinity) { - ushorts[i4] = 64512; - } else { - FLOAT[0] = array[i4]; - var x6 = INT[0]; - var sgn = x6 >>> 31 << 15; - var exp2 = (x6 << 1 >>> 24) - 127; - var frac = x6 >> 13 & (1 << 10) - 1; - if (exp2 < -24) { - ushorts[i4] = sgn; - } else if (exp2 < -14) { - var s4 = -14 - exp2; - ushorts[i4] = sgn + (frac + (1 << 10) >> s4); - } else if (exp2 > 15) { - ushorts[i4] = sgn + 31744; - } else { - ushorts[i4] = sgn + (exp2 + 15 << 10) + frac; - } - } - } - return ushorts; - } - function isArrayLike2(s4) { - return Array.isArray(s4) || isTypedArray4(s4); - } - var isPow2$1 = function(v3) { - return !(v3 & v3 - 1) && !!v3; - }; - var GL_COMPRESSED_TEXTURE_FORMATS = 34467; - var GL_TEXTURE_2D$1 = 3553; - var GL_TEXTURE_CUBE_MAP$1 = 34067; - var GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 = 34069; - var GL_RGBA$1 = 6408; - var GL_ALPHA = 6406; - var GL_RGB = 6407; - var GL_LUMINANCE = 6409; - var GL_LUMINANCE_ALPHA = 6410; - var GL_RGBA4 = 32854; - var GL_RGB5_A1 = 32855; - var GL_RGB565 = 36194; - var GL_UNSIGNED_SHORT_4_4_4_4$1 = 32819; - var GL_UNSIGNED_SHORT_5_5_5_1$1 = 32820; - var GL_UNSIGNED_SHORT_5_6_5$1 = 33635; - var GL_UNSIGNED_INT_24_8_WEBGL$1 = 34042; - var GL_DEPTH_COMPONENT = 6402; - var GL_DEPTH_STENCIL = 34041; - var GL_SRGB_EXT = 35904; - var GL_SRGB_ALPHA_EXT = 35906; - var GL_HALF_FLOAT_OES$1 = 36193; - var GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 33776; - var GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777; - var GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778; - var GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779; - var GL_COMPRESSED_RGB_ATC_WEBGL = 35986; - var GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987; - var GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798; - var GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840; - var GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841; - var GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842; - var GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843; - var GL_COMPRESSED_RGB_ETC1_WEBGL = 36196; - var GL_UNSIGNED_BYTE$5 = 5121; - var GL_UNSIGNED_SHORT$3 = 5123; - var GL_UNSIGNED_INT$3 = 5125; - var GL_FLOAT$4 = 5126; - var GL_TEXTURE_WRAP_S = 10242; - var GL_TEXTURE_WRAP_T = 10243; - var GL_REPEAT = 10497; - var GL_CLAMP_TO_EDGE$1 = 33071; - var GL_MIRRORED_REPEAT = 33648; - var GL_TEXTURE_MAG_FILTER = 10240; - var GL_TEXTURE_MIN_FILTER = 10241; - var GL_NEAREST$1 = 9728; - var GL_LINEAR = 9729; - var GL_NEAREST_MIPMAP_NEAREST$1 = 9984; - var GL_LINEAR_MIPMAP_NEAREST$1 = 9985; - var GL_NEAREST_MIPMAP_LINEAR$1 = 9986; - var GL_LINEAR_MIPMAP_LINEAR$1 = 9987; - var GL_GENERATE_MIPMAP_HINT = 33170; - var GL_DONT_CARE = 4352; - var GL_FASTEST = 4353; - var GL_NICEST = 4354; - var GL_TEXTURE_MAX_ANISOTROPY_EXT = 34046; - var GL_UNPACK_ALIGNMENT = 3317; - var GL_UNPACK_FLIP_Y_WEBGL = 37440; - var GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441; - var GL_UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443; - var GL_BROWSER_DEFAULT_WEBGL = 37444; - var GL_TEXTURE0$1 = 33984; - var MIPMAP_FILTERS = [ - GL_NEAREST_MIPMAP_NEAREST$1, - GL_NEAREST_MIPMAP_LINEAR$1, - GL_LINEAR_MIPMAP_NEAREST$1, - GL_LINEAR_MIPMAP_LINEAR$1 - ]; - var CHANNELS_FORMAT = [ - 0, - GL_LUMINANCE, - GL_LUMINANCE_ALPHA, - GL_RGB, - GL_RGBA$1 - ]; - var FORMAT_CHANNELS = {}; - FORMAT_CHANNELS[GL_LUMINANCE] = FORMAT_CHANNELS[GL_ALPHA] = FORMAT_CHANNELS[GL_DEPTH_COMPONENT] = 1; - FORMAT_CHANNELS[GL_DEPTH_STENCIL] = FORMAT_CHANNELS[GL_LUMINANCE_ALPHA] = 2; - FORMAT_CHANNELS[GL_RGB] = FORMAT_CHANNELS[GL_SRGB_EXT] = 3; - FORMAT_CHANNELS[GL_RGBA$1] = FORMAT_CHANNELS[GL_SRGB_ALPHA_EXT] = 4; - function objectName(str8) { - return "[object " + str8 + "]"; - } - var CANVAS_CLASS = objectName("HTMLCanvasElement"); - var OFFSCREENCANVAS_CLASS = objectName("OffscreenCanvas"); - var CONTEXT2D_CLASS = objectName("CanvasRenderingContext2D"); - var BITMAP_CLASS = objectName("ImageBitmap"); - var IMAGE_CLASS = objectName("HTMLImageElement"); - var VIDEO_CLASS = objectName("HTMLVideoElement"); - var PIXEL_CLASSES = Object.keys(arrayTypes).concat([ - CANVAS_CLASS, - OFFSCREENCANVAS_CLASS, - CONTEXT2D_CLASS, - BITMAP_CLASS, - IMAGE_CLASS, - VIDEO_CLASS - ]); - var TYPE_SIZES = []; - TYPE_SIZES[GL_UNSIGNED_BYTE$5] = 1; - TYPE_SIZES[GL_FLOAT$4] = 4; - TYPE_SIZES[GL_HALF_FLOAT_OES$1] = 2; - TYPE_SIZES[GL_UNSIGNED_SHORT$3] = 2; - TYPE_SIZES[GL_UNSIGNED_INT$3] = 4; - var FORMAT_SIZES_SPECIAL = []; - FORMAT_SIZES_SPECIAL[GL_RGBA4] = 2; - FORMAT_SIZES_SPECIAL[GL_RGB5_A1] = 2; - FORMAT_SIZES_SPECIAL[GL_RGB565] = 2; - FORMAT_SIZES_SPECIAL[GL_DEPTH_STENCIL] = 4; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_S3TC_DXT1_EXT] = 0.5; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT1_EXT] = 0.5; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT3_EXT] = 1; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT5_EXT] = 1; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ATC_WEBGL] = 0.5; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 1; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 1; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 0.5; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 0.25; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 0.5; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 0.25; - FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ETC1_WEBGL] = 0.5; - function isNumericArray(arr) { - return Array.isArray(arr) && (arr.length === 0 || typeof arr[0] === "number"); - } - function isRectArray(arr) { - if (!Array.isArray(arr)) { - return false; - } - var width2 = arr.length; - if (width2 === 0 || !isArrayLike2(arr[0])) { - return false; - } - return true; - } - function classString(x6) { - return Object.prototype.toString.call(x6); - } - function isCanvasElement(object) { - return classString(object) === CANVAS_CLASS; - } - function isOffscreenCanvas(object) { - return classString(object) === OFFSCREENCANVAS_CLASS; - } - function isContext2D(object) { - return classString(object) === CONTEXT2D_CLASS; - } - function isBitmap(object) { - return classString(object) === BITMAP_CLASS; - } - function isImageElement(object) { - return classString(object) === IMAGE_CLASS; - } - function isVideoElement(object) { - return classString(object) === VIDEO_CLASS; - } - function isPixelData(object) { - if (!object) { - return false; - } - var className = classString(object); - if (PIXEL_CLASSES.indexOf(className) >= 0) { - return true; - } - return isNumericArray(object) || isRectArray(object) || isNDArrayLike(object); - } - function typedArrayCode$1(data3) { - return arrayTypes[Object.prototype.toString.call(data3)] | 0; - } - function convertData(result, data3) { - var n3 = data3.length; - switch (result.type) { - case GL_UNSIGNED_BYTE$5: - case GL_UNSIGNED_SHORT$3: - case GL_UNSIGNED_INT$3: - case GL_FLOAT$4: - var converted = pool.allocType(result.type, n3); - converted.set(data3); - result.data = converted; - break; - case GL_HALF_FLOAT_OES$1: - result.data = convertToHalfFloat(data3); - break; - default: - check$1.raise("unsupported texture type, must specify a typed array"); - } - } - function preConvert(image, n3) { - return pool.allocType(image.type === GL_HALF_FLOAT_OES$1 ? GL_FLOAT$4 : image.type, n3); - } - function postConvert(image, data3) { - if (image.type === GL_HALF_FLOAT_OES$1) { - image.data = convertToHalfFloat(data3); - pool.freeType(data3); - } else { - image.data = data3; - } - } - function transposeData(image, array, strideX, strideY, strideC, offset) { - var w4 = image.width; - var h3 = image.height; - var c5 = image.channels; - var n3 = w4 * h3 * c5; - var data3 = preConvert(image, n3); - var p4 = 0; - for (var i4 = 0; i4 < h3; ++i4) { - for (var j4 = 0; j4 < w4; ++j4) { - for (var k4 = 0; k4 < c5; ++k4) { - data3[p4++] = array[strideX * j4 + strideY * i4 + strideC * k4 + offset]; - } - } - } - postConvert(image, data3); - } - function getTextureSize(format2, type2, width2, height, isMipmap, isCube) { - var s4; - if (typeof FORMAT_SIZES_SPECIAL[format2] !== "undefined") { - s4 = FORMAT_SIZES_SPECIAL[format2]; - } else { - s4 = FORMAT_CHANNELS[format2] * TYPE_SIZES[type2]; - } - if (isCube) { - s4 *= 6; - } - if (isMipmap) { - var total = 0; - var w4 = width2; - while (w4 >= 1) { - total += s4 * w4 * w4; - w4 /= 2; - } - return total; - } else { - return s4 * width2 * height; - } - } - function createTextureSet(gl2, extensions, limits, reglPoll, contextState, stats2, config) { - var mipmapHint = { - "don't care": GL_DONT_CARE, - "dont care": GL_DONT_CARE, - "nice": GL_NICEST, - "fast": GL_FASTEST - }; - var wrapModes = { - "repeat": GL_REPEAT, - "clamp": GL_CLAMP_TO_EDGE$1, - "mirror": GL_MIRRORED_REPEAT - }; - var magFilters = { - "nearest": GL_NEAREST$1, - "linear": GL_LINEAR - }; - var minFilters = extend4({ - "mipmap": GL_LINEAR_MIPMAP_LINEAR$1, - "nearest mipmap nearest": GL_NEAREST_MIPMAP_NEAREST$1, - "linear mipmap nearest": GL_LINEAR_MIPMAP_NEAREST$1, - "nearest mipmap linear": GL_NEAREST_MIPMAP_LINEAR$1, - "linear mipmap linear": GL_LINEAR_MIPMAP_LINEAR$1 - }, magFilters); - var colorSpace = { - "none": 0, - "browser": GL_BROWSER_DEFAULT_WEBGL - }; - var textureTypes = { - "uint8": GL_UNSIGNED_BYTE$5, - "rgba4": GL_UNSIGNED_SHORT_4_4_4_4$1, - "rgb565": GL_UNSIGNED_SHORT_5_6_5$1, - "rgb5 a1": GL_UNSIGNED_SHORT_5_5_5_1$1 - }; - var textureFormats = { - "alpha": GL_ALPHA, - "luminance": GL_LUMINANCE, - "luminance alpha": GL_LUMINANCE_ALPHA, - "rgb": GL_RGB, - "rgba": GL_RGBA$1, - "rgba4": GL_RGBA4, - "rgb5 a1": GL_RGB5_A1, - "rgb565": GL_RGB565 - }; - var compressedTextureFormats = {}; - if (extensions.ext_srgb) { - textureFormats.srgb = GL_SRGB_EXT; - textureFormats.srgba = GL_SRGB_ALPHA_EXT; - } - if (extensions.oes_texture_float) { - textureTypes.float32 = textureTypes.float = GL_FLOAT$4; - } - if (extensions.oes_texture_half_float) { - textureTypes["float16"] = textureTypes["half float"] = GL_HALF_FLOAT_OES$1; - } - if (extensions.webgl_depth_texture) { - extend4(textureFormats, { - "depth": GL_DEPTH_COMPONENT, - "depth stencil": GL_DEPTH_STENCIL - }); - extend4(textureTypes, { - "uint16": GL_UNSIGNED_SHORT$3, - "uint32": GL_UNSIGNED_INT$3, - "depth stencil": GL_UNSIGNED_INT_24_8_WEBGL$1 - }); - } - if (extensions.webgl_compressed_texture_s3tc) { - extend4(compressedTextureFormats, { - "rgb s3tc dxt1": GL_COMPRESSED_RGB_S3TC_DXT1_EXT, - "rgba s3tc dxt1": GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, - "rgba s3tc dxt3": GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, - "rgba s3tc dxt5": GL_COMPRESSED_RGBA_S3TC_DXT5_EXT - }); - } - if (extensions.webgl_compressed_texture_atc) { - extend4(compressedTextureFormats, { - "rgb atc": GL_COMPRESSED_RGB_ATC_WEBGL, - "rgba atc explicit alpha": GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL, - "rgba atc interpolated alpha": GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL - }); - } - if (extensions.webgl_compressed_texture_pvrtc) { - extend4(compressedTextureFormats, { - "rgb pvrtc 4bppv1": GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, - "rgb pvrtc 2bppv1": GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG, - "rgba pvrtc 4bppv1": GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, - "rgba pvrtc 2bppv1": GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG - }); - } - if (extensions.webgl_compressed_texture_etc1) { - compressedTextureFormats["rgb etc1"] = GL_COMPRESSED_RGB_ETC1_WEBGL; - } - var supportedCompressedFormats = Array.prototype.slice.call(gl2.getParameter(GL_COMPRESSED_TEXTURE_FORMATS)); - Object.keys(compressedTextureFormats).forEach(function(name) { - var format2 = compressedTextureFormats[name]; - if (supportedCompressedFormats.indexOf(format2) >= 0) { - textureFormats[name] = format2; - } - }); - var supportedFormats = Object.keys(textureFormats); - limits.textureFormats = supportedFormats; - var textureFormatsInvert = []; - Object.keys(textureFormats).forEach(function(key) { - var val = textureFormats[key]; - textureFormatsInvert[val] = key; - }); - var textureTypesInvert = []; - Object.keys(textureTypes).forEach(function(key) { - var val = textureTypes[key]; - textureTypesInvert[val] = key; - }); - var magFiltersInvert = []; - Object.keys(magFilters).forEach(function(key) { - var val = magFilters[key]; - magFiltersInvert[val] = key; - }); - var minFiltersInvert = []; - Object.keys(minFilters).forEach(function(key) { - var val = minFilters[key]; - minFiltersInvert[val] = key; - }); - var wrapModesInvert = []; - Object.keys(wrapModes).forEach(function(key) { - var val = wrapModes[key]; - wrapModesInvert[val] = key; - }); - var colorFormats = supportedFormats.reduce(function(color4, key) { - var glenum = textureFormats[key]; - if (glenum === GL_LUMINANCE || glenum === GL_ALPHA || glenum === GL_LUMINANCE || glenum === GL_LUMINANCE_ALPHA || glenum === GL_DEPTH_COMPONENT || glenum === GL_DEPTH_STENCIL || extensions.ext_srgb && (glenum === GL_SRGB_EXT || glenum === GL_SRGB_ALPHA_EXT)) { - color4[glenum] = glenum; - } else if (glenum === GL_RGB5_A1 || key.indexOf("rgba") >= 0) { - color4[glenum] = GL_RGBA$1; - } else { - color4[glenum] = GL_RGB; - } - return color4; - }, {}); - function TexFlags() { - this.internalformat = GL_RGBA$1; - this.format = GL_RGBA$1; - this.type = GL_UNSIGNED_BYTE$5; - this.compressed = false; - this.premultiplyAlpha = false; - this.flipY = false; - this.unpackAlignment = 1; - this.colorSpace = GL_BROWSER_DEFAULT_WEBGL; - this.width = 0; - this.height = 0; - this.channels = 0; - } - function copyFlags(result, other2) { - result.internalformat = other2.internalformat; - result.format = other2.format; - result.type = other2.type; - result.compressed = other2.compressed; - result.premultiplyAlpha = other2.premultiplyAlpha; - result.flipY = other2.flipY; - result.unpackAlignment = other2.unpackAlignment; - result.colorSpace = other2.colorSpace; - result.width = other2.width; - result.height = other2.height; - result.channels = other2.channels; - } - function parseFlags2(flags, options) { - if (typeof options !== "object" || !options) { - return; - } - if ("premultiplyAlpha" in options) { - check$1.type(options.premultiplyAlpha, "boolean", "invalid premultiplyAlpha"); - flags.premultiplyAlpha = options.premultiplyAlpha; - } - if ("flipY" in options) { - check$1.type(options.flipY, "boolean", "invalid texture flip"); - flags.flipY = options.flipY; - } - if ("alignment" in options) { - check$1.oneOf(options.alignment, [1, 2, 4, 8], "invalid texture unpack alignment"); - flags.unpackAlignment = options.alignment; - } - if ("colorSpace" in options) { - check$1.parameter(options.colorSpace, colorSpace, "invalid colorSpace"); - flags.colorSpace = colorSpace[options.colorSpace]; - } - if ("type" in options) { - var type2 = options.type; - check$1(extensions.oes_texture_float || !(type2 === "float" || type2 === "float32"), "you must enable the OES_texture_float extension in order to use floating point textures."); - check$1(extensions.oes_texture_half_float || !(type2 === "half float" || type2 === "float16"), "you must enable the OES_texture_half_float extension in order to use 16-bit floating point textures."); - check$1(extensions.webgl_depth_texture || !(type2 === "uint16" || type2 === "uint32" || type2 === "depth stencil"), "you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."); - check$1.parameter(type2, textureTypes, "invalid texture type"); - flags.type = textureTypes[type2]; - } - var w4 = flags.width; - var h3 = flags.height; - var c5 = flags.channels; - var hasChannels = false; - if ("shape" in options) { - check$1(Array.isArray(options.shape) && options.shape.length >= 2, "shape must be an array"); - w4 = options.shape[0]; - h3 = options.shape[1]; - if (options.shape.length === 3) { - c5 = options.shape[2]; - check$1(c5 > 0 && c5 <= 4, "invalid number of channels"); - hasChannels = true; - } - check$1(w4 >= 0 && w4 <= limits.maxTextureSize, "invalid width"); - check$1(h3 >= 0 && h3 <= limits.maxTextureSize, "invalid height"); - } else { - if ("radius" in options) { - w4 = h3 = options.radius; - check$1(w4 >= 0 && w4 <= limits.maxTextureSize, "invalid radius"); - } - if ("width" in options) { - w4 = options.width; - check$1(w4 >= 0 && w4 <= limits.maxTextureSize, "invalid width"); - } - if ("height" in options) { - h3 = options.height; - check$1(h3 >= 0 && h3 <= limits.maxTextureSize, "invalid height"); - } - if ("channels" in options) { - c5 = options.channels; - check$1(c5 > 0 && c5 <= 4, "invalid number of channels"); - hasChannels = true; - } - } - flags.width = w4 | 0; - flags.height = h3 | 0; - flags.channels = c5 | 0; - var hasFormat = false; - if ("format" in options) { - var formatStr = options.format; - check$1(extensions.webgl_depth_texture || !(formatStr === "depth" || formatStr === "depth stencil"), "you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."); - check$1.parameter(formatStr, textureFormats, "invalid texture format"); - var internalformat = flags.internalformat = textureFormats[formatStr]; - flags.format = colorFormats[internalformat]; - if (formatStr in textureTypes) { - if (!("type" in options)) { - flags.type = textureTypes[formatStr]; - } - } - if (formatStr in compressedTextureFormats) { - flags.compressed = true; - } - hasFormat = true; - } - if (!hasChannels && hasFormat) { - flags.channels = FORMAT_CHANNELS[flags.format]; - } else if (hasChannels && !hasFormat) { - if (flags.channels !== CHANNELS_FORMAT[flags.format]) { - flags.format = flags.internalformat = CHANNELS_FORMAT[flags.channels]; - } - } else if (hasFormat && hasChannels) { - check$1(flags.channels === FORMAT_CHANNELS[flags.format], "number of channels inconsistent with specified format"); - } - } - function setFlags(flags) { - gl2.pixelStorei(GL_UNPACK_FLIP_Y_WEBGL, flags.flipY); - gl2.pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL, flags.premultiplyAlpha); - gl2.pixelStorei(GL_UNPACK_COLORSPACE_CONVERSION_WEBGL, flags.colorSpace); - gl2.pixelStorei(GL_UNPACK_ALIGNMENT, flags.unpackAlignment); - } - function TexImage() { - TexFlags.call(this); - this.xOffset = 0; - this.yOffset = 0; - this.data = null; - this.needsFree = false; - this.element = null; - this.needsCopy = false; - } - function parseImage(image, options) { - var data3 = null; - if (isPixelData(options)) { - data3 = options; - } else if (options) { - check$1.type(options, "object", "invalid pixel data type"); - parseFlags2(image, options); - if ("x" in options) { - image.xOffset = options.x | 0; - } - if ("y" in options) { - image.yOffset = options.y | 0; - } - if (isPixelData(options.data)) { - data3 = options.data; - } - } - check$1(!image.compressed || data3 instanceof Uint8Array, "compressed texture data must be stored in a uint8array"); - if (options.copy) { - check$1(!data3, "can not specify copy and data field for the same texture"); - var viewW = contextState.viewportWidth; - var viewH = contextState.viewportHeight; - image.width = image.width || viewW - image.xOffset; - image.height = image.height || viewH - image.yOffset; - image.needsCopy = true; - check$1(image.xOffset >= 0 && image.xOffset < viewW && image.yOffset >= 0 && image.yOffset < viewH && image.width > 0 && image.width <= viewW && image.height > 0 && image.height <= viewH, "copy texture read out of bounds"); - } else if (!data3) { - image.width = image.width || 1; - image.height = image.height || 1; - image.channels = image.channels || 4; - } else if (isTypedArray4(data3)) { - image.channels = image.channels || 4; - image.data = data3; - if (!("type" in options) && image.type === GL_UNSIGNED_BYTE$5) { - image.type = typedArrayCode$1(data3); - } - } else if (isNumericArray(data3)) { - image.channels = image.channels || 4; - convertData(image, data3); - image.alignment = 1; - image.needsFree = true; - } else if (isNDArrayLike(data3)) { - var array = data3.data; - if (!Array.isArray(array) && image.type === GL_UNSIGNED_BYTE$5) { - image.type = typedArrayCode$1(array); - } - var shape = data3.shape; - var stride = data3.stride; - var shapeX, shapeY, shapeC, strideX, strideY, strideC; - if (shape.length === 3) { - shapeC = shape[2]; - strideC = stride[2]; - } else { - check$1(shape.length === 2, "invalid ndarray pixel data, must be 2 or 3D"); - shapeC = 1; - strideC = 1; - } - shapeX = shape[0]; - shapeY = shape[1]; - strideX = stride[0]; - strideY = stride[1]; - image.alignment = 1; - image.width = shapeX; - image.height = shapeY; - image.channels = shapeC; - image.format = image.internalformat = CHANNELS_FORMAT[shapeC]; - image.needsFree = true; - transposeData(image, array, strideX, strideY, strideC, data3.offset); - } else if (isCanvasElement(data3) || isOffscreenCanvas(data3) || isContext2D(data3)) { - if (isCanvasElement(data3) || isOffscreenCanvas(data3)) { - image.element = data3; - } else { - image.element = data3.canvas; - } - image.width = image.element.width; - image.height = image.element.height; - image.channels = 4; - } else if (isBitmap(data3)) { - image.element = data3; - image.width = data3.width; - image.height = data3.height; - image.channels = 4; - } else if (isImageElement(data3)) { - image.element = data3; - image.width = data3.naturalWidth; - image.height = data3.naturalHeight; - image.channels = 4; - } else if (isVideoElement(data3)) { - image.element = data3; - image.width = data3.videoWidth; - image.height = data3.videoHeight; - image.channels = 4; - } else if (isRectArray(data3)) { - var w4 = image.width || data3[0].length; - var h3 = image.height || data3.length; - var c5 = image.channels; - if (isArrayLike2(data3[0][0])) { - c5 = c5 || data3[0][0].length; - } else { - c5 = c5 || 1; - } - var arrayShape2 = flattenUtils.shape(data3); - var n3 = 1; - for (var dd = 0; dd < arrayShape2.length; ++dd) { - n3 *= arrayShape2[dd]; - } - var allocData = preConvert(image, n3); - flattenUtils.flatten(data3, arrayShape2, "", allocData); - postConvert(image, allocData); - image.alignment = 1; - image.width = w4; - image.height = h3; - image.channels = c5; - image.format = image.internalformat = CHANNELS_FORMAT[c5]; - image.needsFree = true; - } - if (image.type === GL_FLOAT$4) { - check$1(limits.extensions.indexOf("oes_texture_float") >= 0, "oes_texture_float extension not enabled"); - } else if (image.type === GL_HALF_FLOAT_OES$1) { - check$1(limits.extensions.indexOf("oes_texture_half_float") >= 0, "oes_texture_half_float extension not enabled"); - } - } - function setImage(info, target, miplevel) { - var element = info.element; - var data3 = info.data; - var internalformat = info.internalformat; - var format2 = info.format; - var type2 = info.type; - var width2 = info.width; - var height = info.height; - setFlags(info); - if (element) { - gl2.texImage2D(target, miplevel, format2, format2, type2, element); - } else if (info.compressed) { - gl2.compressedTexImage2D(target, miplevel, internalformat, width2, height, 0, data3); - } else if (info.needsCopy) { - reglPoll(); - gl2.copyTexImage2D(target, miplevel, format2, info.xOffset, info.yOffset, width2, height, 0); - } else { - gl2.texImage2D(target, miplevel, format2, width2, height, 0, format2, type2, data3 || null); - } - } - function setSubImage(info, target, x6, y5, miplevel) { - var element = info.element; - var data3 = info.data; - var internalformat = info.internalformat; - var format2 = info.format; - var type2 = info.type; - var width2 = info.width; - var height = info.height; - setFlags(info); - if (element) { - gl2.texSubImage2D(target, miplevel, x6, y5, format2, type2, element); - } else if (info.compressed) { - gl2.compressedTexSubImage2D(target, miplevel, x6, y5, internalformat, width2, height, data3); - } else if (info.needsCopy) { - reglPoll(); - gl2.copyTexSubImage2D(target, miplevel, x6, y5, info.xOffset, info.yOffset, width2, height); - } else { - gl2.texSubImage2D(target, miplevel, x6, y5, width2, height, format2, type2, data3); - } - } - var imagePool = []; - function allocImage() { - return imagePool.pop() || new TexImage(); - } - function freeImage(image) { - if (image.needsFree) { - pool.freeType(image.data); - } - TexImage.call(image); - imagePool.push(image); - } - function MipMap() { - TexFlags.call(this); - this.genMipmaps = false; - this.mipmapHint = GL_DONT_CARE; - this.mipmask = 0; - this.images = Array(16); - } - function parseMipMapFromShape(mipmap, width2, height) { - var img = mipmap.images[0] = allocImage(); - mipmap.mipmask = 1; - img.width = mipmap.width = width2; - img.height = mipmap.height = height; - img.channels = mipmap.channels = 4; - } - function parseMipMapFromObject(mipmap, options) { - var imgData = null; - if (isPixelData(options)) { - imgData = mipmap.images[0] = allocImage(); - copyFlags(imgData, mipmap); - parseImage(imgData, options); - mipmap.mipmask = 1; - } else { - parseFlags2(mipmap, options); - if (Array.isArray(options.mipmap)) { - var mipData = options.mipmap; - for (var i4 = 0; i4 < mipData.length; ++i4) { - imgData = mipmap.images[i4] = allocImage(); - copyFlags(imgData, mipmap); - imgData.width >>= i4; - imgData.height >>= i4; - parseImage(imgData, mipData[i4]); - mipmap.mipmask |= 1 << i4; - } - } else { - imgData = mipmap.images[0] = allocImage(); - copyFlags(imgData, mipmap); - parseImage(imgData, options); - mipmap.mipmask = 1; - } - } - copyFlags(mipmap, mipmap.images[0]); - if (mipmap.compressed && (mipmap.internalformat === GL_COMPRESSED_RGB_S3TC_DXT1_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT1_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT3_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)) { - check$1(mipmap.width % 4 === 0 && mipmap.height % 4 === 0, "for compressed texture formats, mipmap level 0 must have width and height that are a multiple of 4"); - } - } - function setMipMap(mipmap, target) { - var images = mipmap.images; - for (var i4 = 0; i4 < images.length; ++i4) { - if (!images[i4]) { - return; - } - setImage(images[i4], target, i4); - } - } - var mipPool = []; - function allocMipMap() { - var result = mipPool.pop() || new MipMap(); - TexFlags.call(result); - result.mipmask = 0; - for (var i4 = 0; i4 < 16; ++i4) { - result.images[i4] = null; - } - return result; - } - function freeMipMap(mipmap) { - var images = mipmap.images; - for (var i4 = 0; i4 < images.length; ++i4) { - if (images[i4]) { - freeImage(images[i4]); - } - images[i4] = null; - } - mipPool.push(mipmap); - } - function TexInfo() { - this.minFilter = GL_NEAREST$1; - this.magFilter = GL_NEAREST$1; - this.wrapS = GL_CLAMP_TO_EDGE$1; - this.wrapT = GL_CLAMP_TO_EDGE$1; - this.anisotropic = 1; - this.genMipmaps = false; - this.mipmapHint = GL_DONT_CARE; - } - function parseTexInfo(info, options) { - if ("min" in options) { - var minFilter = options.min; - check$1.parameter(minFilter, minFilters); - info.minFilter = minFilters[minFilter]; - if (MIPMAP_FILTERS.indexOf(info.minFilter) >= 0 && !("faces" in options)) { - info.genMipmaps = true; - } - } - if ("mag" in options) { - var magFilter = options.mag; - check$1.parameter(magFilter, magFilters); - info.magFilter = magFilters[magFilter]; - } - var wrapS = info.wrapS; - var wrapT = info.wrapT; - if ("wrap" in options) { - var wrap = options.wrap; - if (typeof wrap === "string") { - check$1.parameter(wrap, wrapModes); - wrapS = wrapT = wrapModes[wrap]; - } else if (Array.isArray(wrap)) { - check$1.parameter(wrap[0], wrapModes); - check$1.parameter(wrap[1], wrapModes); - wrapS = wrapModes[wrap[0]]; - wrapT = wrapModes[wrap[1]]; - } - } else { - if ("wrapS" in options) { - var optWrapS = options.wrapS; - check$1.parameter(optWrapS, wrapModes); - wrapS = wrapModes[optWrapS]; - } - if ("wrapT" in options) { - var optWrapT = options.wrapT; - check$1.parameter(optWrapT, wrapModes); - wrapT = wrapModes[optWrapT]; - } - } - info.wrapS = wrapS; - info.wrapT = wrapT; - if ("anisotropic" in options) { - var anisotropic = options.anisotropic; - check$1(typeof anisotropic === "number" && anisotropic >= 1 && anisotropic <= limits.maxAnisotropic, "aniso samples must be between 1 and "); - info.anisotropic = options.anisotropic; - } - if ("mipmap" in options) { - var hasMipMap = false; - switch (typeof options.mipmap) { - case "string": - check$1.parameter(options.mipmap, mipmapHint, "invalid mipmap hint"); - info.mipmapHint = mipmapHint[options.mipmap]; - info.genMipmaps = true; - hasMipMap = true; - break; - case "boolean": - hasMipMap = info.genMipmaps = options.mipmap; - break; - case "object": - check$1(Array.isArray(options.mipmap), "invalid mipmap type"); - info.genMipmaps = false; - hasMipMap = true; - break; - default: - check$1.raise("invalid mipmap type"); - } - if (hasMipMap && !("min" in options)) { - info.minFilter = GL_NEAREST_MIPMAP_NEAREST$1; - } - } - } - function setTexInfo(info, target) { - gl2.texParameteri(target, GL_TEXTURE_MIN_FILTER, info.minFilter); - gl2.texParameteri(target, GL_TEXTURE_MAG_FILTER, info.magFilter); - gl2.texParameteri(target, GL_TEXTURE_WRAP_S, info.wrapS); - gl2.texParameteri(target, GL_TEXTURE_WRAP_T, info.wrapT); - if (extensions.ext_texture_filter_anisotropic) { - gl2.texParameteri(target, GL_TEXTURE_MAX_ANISOTROPY_EXT, info.anisotropic); - } - if (info.genMipmaps) { - gl2.hint(GL_GENERATE_MIPMAP_HINT, info.mipmapHint); - gl2.generateMipmap(target); - } - } - var textureCount = 0; - var textureSet = {}; - var numTexUnits = limits.maxTextureUnits; - var textureUnits = Array(numTexUnits).map(function() { - return null; - }); - function REGLTexture(target) { - TexFlags.call(this); - this.mipmask = 0; - this.internalformat = GL_RGBA$1; - this.id = textureCount++; - this.refCount = 1; - this.target = target; - this.texture = gl2.createTexture(); - this.unit = -1; - this.bindCount = 0; - this.texInfo = new TexInfo(); - if (config.profile) { - this.stats = { size: 0 }; - } - } - function tempBind(texture) { - gl2.activeTexture(GL_TEXTURE0$1); - gl2.bindTexture(texture.target, texture.texture); - } - function tempRestore() { - var prev = textureUnits[0]; - if (prev) { - gl2.bindTexture(prev.target, prev.texture); - } else { - gl2.bindTexture(GL_TEXTURE_2D$1, null); - } - } - function destroy(texture) { - var handle = texture.texture; - check$1(handle, "must not double destroy texture"); - var unit = texture.unit; - var target = texture.target; - if (unit >= 0) { - gl2.activeTexture(GL_TEXTURE0$1 + unit); - gl2.bindTexture(target, null); - textureUnits[unit] = null; - } - gl2.deleteTexture(handle); - texture.texture = null; - texture.params = null; - texture.pixels = null; - texture.refCount = 0; - delete textureSet[texture.id]; - stats2.textureCount--; - } - extend4(REGLTexture.prototype, { - bind: function() { - var texture = this; - texture.bindCount += 1; - var unit = texture.unit; - if (unit < 0) { - for (var i4 = 0; i4 < numTexUnits; ++i4) { - var other2 = textureUnits[i4]; - if (other2) { - if (other2.bindCount > 0) { - continue; - } - other2.unit = -1; - } - textureUnits[i4] = texture; - unit = i4; - break; - } - if (unit >= numTexUnits) { - check$1.raise("insufficient number of texture units"); - } - if (config.profile && stats2.maxTextureUnits < unit + 1) { - stats2.maxTextureUnits = unit + 1; - } - texture.unit = unit; - gl2.activeTexture(GL_TEXTURE0$1 + unit); - gl2.bindTexture(texture.target, texture.texture); - } - return unit; - }, - unbind: function() { - this.bindCount -= 1; - }, - decRef: function() { - if (--this.refCount <= 0) { - destroy(this); - } - } - }); - function createTexture2D(a4, b10) { - var texture = new REGLTexture(GL_TEXTURE_2D$1); - textureSet[texture.id] = texture; - stats2.textureCount++; - function reglTexture2D(a5, b11) { - var texInfo = texture.texInfo; - TexInfo.call(texInfo); - var mipData = allocMipMap(); - if (typeof a5 === "number") { - if (typeof b11 === "number") { - parseMipMapFromShape(mipData, a5 | 0, b11 | 0); - } else { - parseMipMapFromShape(mipData, a5 | 0, a5 | 0); - } - } else if (a5) { - check$1.type(a5, "object", "invalid arguments to regl.texture"); - parseTexInfo(texInfo, a5); - parseMipMapFromObject(mipData, a5); - } else { - parseMipMapFromShape(mipData, 1, 1); - } - if (texInfo.genMipmaps) { - mipData.mipmask = (mipData.width << 1) - 1; - } - texture.mipmask = mipData.mipmask; - copyFlags(texture, mipData); - check$1.texture2D(texInfo, mipData, limits); - texture.internalformat = mipData.internalformat; - reglTexture2D.width = mipData.width; - reglTexture2D.height = mipData.height; - tempBind(texture); - setMipMap(mipData, GL_TEXTURE_2D$1); - setTexInfo(texInfo, GL_TEXTURE_2D$1); - tempRestore(); - freeMipMap(mipData); - if (config.profile) { - texture.stats.size = getTextureSize(texture.internalformat, texture.type, mipData.width, mipData.height, texInfo.genMipmaps, false); - } - reglTexture2D.format = textureFormatsInvert[texture.internalformat]; - reglTexture2D.type = textureTypesInvert[texture.type]; - reglTexture2D.mag = magFiltersInvert[texInfo.magFilter]; - reglTexture2D.min = minFiltersInvert[texInfo.minFilter]; - reglTexture2D.wrapS = wrapModesInvert[texInfo.wrapS]; - reglTexture2D.wrapT = wrapModesInvert[texInfo.wrapT]; - return reglTexture2D; - } - function subimage(image, x_, y_, level_) { - check$1(!!image, "must specify image data"); - var x6 = x_ | 0; - var y5 = y_ | 0; - var level = level_ | 0; - var imageData = allocImage(); - copyFlags(imageData, texture); - imageData.width = 0; - imageData.height = 0; - parseImage(imageData, image); - imageData.width = imageData.width || (texture.width >> level) - x6; - imageData.height = imageData.height || (texture.height >> level) - y5; - check$1(texture.type === imageData.type && texture.format === imageData.format && texture.internalformat === imageData.internalformat, "incompatible format for texture.subimage"); - check$1(x6 >= 0 && y5 >= 0 && x6 + imageData.width <= texture.width && y5 + imageData.height <= texture.height, "texture.subimage write out of bounds"); - check$1(texture.mipmask & 1 << level, "missing mipmap data"); - check$1(imageData.data || imageData.element || imageData.needsCopy, "missing image data"); - tempBind(texture); - setSubImage(imageData, GL_TEXTURE_2D$1, x6, y5, level); - tempRestore(); - freeImage(imageData); - return reglTexture2D; - } - function resize(w_, h_) { - var w4 = w_ | 0; - var h3 = h_ | 0 || w4; - if (w4 === texture.width && h3 === texture.height) { - return reglTexture2D; - } - reglTexture2D.width = texture.width = w4; - reglTexture2D.height = texture.height = h3; - tempBind(texture); - for (var i4 = 0; texture.mipmask >> i4; ++i4) { - var _w = w4 >> i4; - var _h = h3 >> i4; - if (!_w || !_h) - break; - gl2.texImage2D(GL_TEXTURE_2D$1, i4, texture.format, _w, _h, 0, texture.format, texture.type, null); - } - tempRestore(); - if (config.profile) { - texture.stats.size = getTextureSize(texture.internalformat, texture.type, w4, h3, false, false); - } - return reglTexture2D; - } - reglTexture2D(a4, b10); - reglTexture2D.subimage = subimage; - reglTexture2D.resize = resize; - reglTexture2D._reglType = "texture2d"; - reglTexture2D._texture = texture; - if (config.profile) { - reglTexture2D.stats = texture.stats; - } - reglTexture2D.destroy = function() { - texture.decRef(); - }; - return reglTexture2D; - } - function createTextureCube(a0, a1, a22, a32, a4, a5) { - var texture = new REGLTexture(GL_TEXTURE_CUBE_MAP$1); - textureSet[texture.id] = texture; - stats2.cubeCount++; - var faces = new Array(6); - function reglTextureCube(a02, a12, a23, a33, a42, a52) { - var i4; - var texInfo = texture.texInfo; - TexInfo.call(texInfo); - for (i4 = 0; i4 < 6; ++i4) { - faces[i4] = allocMipMap(); - } - if (typeof a02 === "number" || !a02) { - var s4 = a02 | 0 || 1; - for (i4 = 0; i4 < 6; ++i4) { - parseMipMapFromShape(faces[i4], s4, s4); - } - } else if (typeof a02 === "object") { - if (a12) { - parseMipMapFromObject(faces[0], a02); - parseMipMapFromObject(faces[1], a12); - parseMipMapFromObject(faces[2], a23); - parseMipMapFromObject(faces[3], a33); - parseMipMapFromObject(faces[4], a42); - parseMipMapFromObject(faces[5], a52); - } else { - parseTexInfo(texInfo, a02); - parseFlags2(texture, a02); - if ("faces" in a02) { - var faceInput = a02.faces; - check$1(Array.isArray(faceInput) && faceInput.length === 6, "cube faces must be a length 6 array"); - for (i4 = 0; i4 < 6; ++i4) { - check$1(typeof faceInput[i4] === "object" && !!faceInput[i4], "invalid input for cube map face"); - copyFlags(faces[i4], texture); - parseMipMapFromObject(faces[i4], faceInput[i4]); - } - } else { - for (i4 = 0; i4 < 6; ++i4) { - parseMipMapFromObject(faces[i4], a02); - } - } - } - } else { - check$1.raise("invalid arguments to cube map"); - } - copyFlags(texture, faces[0]); - if (!limits.npotTextureCube) { - check$1(isPow2$1(texture.width) && isPow2$1(texture.height), "your browser does not support non power or two texture dimensions"); - } - if (texInfo.genMipmaps) { - texture.mipmask = (faces[0].width << 1) - 1; - } else { - texture.mipmask = faces[0].mipmask; - } - check$1.textureCube(texture, texInfo, faces, limits); - texture.internalformat = faces[0].internalformat; - reglTextureCube.width = faces[0].width; - reglTextureCube.height = faces[0].height; - tempBind(texture); - for (i4 = 0; i4 < 6; ++i4) { - setMipMap(faces[i4], GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i4); - } - setTexInfo(texInfo, GL_TEXTURE_CUBE_MAP$1); - tempRestore(); - if (config.profile) { - texture.stats.size = getTextureSize(texture.internalformat, texture.type, reglTextureCube.width, reglTextureCube.height, texInfo.genMipmaps, true); - } - reglTextureCube.format = textureFormatsInvert[texture.internalformat]; - reglTextureCube.type = textureTypesInvert[texture.type]; - reglTextureCube.mag = magFiltersInvert[texInfo.magFilter]; - reglTextureCube.min = minFiltersInvert[texInfo.minFilter]; - reglTextureCube.wrapS = wrapModesInvert[texInfo.wrapS]; - reglTextureCube.wrapT = wrapModesInvert[texInfo.wrapT]; - for (i4 = 0; i4 < 6; ++i4) { - freeMipMap(faces[i4]); - } - return reglTextureCube; - } - function subimage(face, image, x_, y_, level_) { - check$1(!!image, "must specify image data"); - check$1(typeof face === "number" && face === (face | 0) && face >= 0 && face < 6, "invalid face"); - var x6 = x_ | 0; - var y5 = y_ | 0; - var level = level_ | 0; - var imageData = allocImage(); - copyFlags(imageData, texture); - imageData.width = 0; - imageData.height = 0; - parseImage(imageData, image); - imageData.width = imageData.width || (texture.width >> level) - x6; - imageData.height = imageData.height || (texture.height >> level) - y5; - check$1(texture.type === imageData.type && texture.format === imageData.format && texture.internalformat === imageData.internalformat, "incompatible format for texture.subimage"); - check$1(x6 >= 0 && y5 >= 0 && x6 + imageData.width <= texture.width && y5 + imageData.height <= texture.height, "texture.subimage write out of bounds"); - check$1(texture.mipmask & 1 << level, "missing mipmap data"); - check$1(imageData.data || imageData.element || imageData.needsCopy, "missing image data"); - tempBind(texture); - setSubImage(imageData, GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + face, x6, y5, level); - tempRestore(); - freeImage(imageData); - return reglTextureCube; - } - function resize(radius_) { - var radius = radius_ | 0; - if (radius === texture.width) { - return; - } - reglTextureCube.width = texture.width = radius; - reglTextureCube.height = texture.height = radius; - tempBind(texture); - for (var i4 = 0; i4 < 6; ++i4) { - for (var j4 = 0; texture.mipmask >> j4; ++j4) { - gl2.texImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i4, j4, texture.format, radius >> j4, radius >> j4, 0, texture.format, texture.type, null); - } - } - tempRestore(); - if (config.profile) { - texture.stats.size = getTextureSize(texture.internalformat, texture.type, reglTextureCube.width, reglTextureCube.height, false, true); - } - return reglTextureCube; - } - reglTextureCube(a0, a1, a22, a32, a4, a5); - reglTextureCube.subimage = subimage; - reglTextureCube.resize = resize; - reglTextureCube._reglType = "textureCube"; - reglTextureCube._texture = texture; - if (config.profile) { - reglTextureCube.stats = texture.stats; - } - reglTextureCube.destroy = function() { - texture.decRef(); - }; - return reglTextureCube; - } - function destroyTextures() { - for (var i4 = 0; i4 < numTexUnits; ++i4) { - gl2.activeTexture(GL_TEXTURE0$1 + i4); - gl2.bindTexture(GL_TEXTURE_2D$1, null); - textureUnits[i4] = null; - } - values2(textureSet).forEach(destroy); - stats2.cubeCount = 0; - stats2.textureCount = 0; - } - if (config.profile) { - stats2.getTotalTextureSize = function() { - var total = 0; - Object.keys(textureSet).forEach(function(key) { - total += textureSet[key].stats.size; - }); - return total; - }; - } - function restoreTextures() { - for (var i4 = 0; i4 < numTexUnits; ++i4) { - var tex = textureUnits[i4]; - if (tex) { - tex.bindCount = 0; - tex.unit = -1; - textureUnits[i4] = null; - } - } - values2(textureSet).forEach(function(texture) { - texture.texture = gl2.createTexture(); - gl2.bindTexture(texture.target, texture.texture); - for (var i5 = 0; i5 < 32; ++i5) { - if ((texture.mipmask & 1 << i5) === 0) { - continue; - } - if (texture.target === GL_TEXTURE_2D$1) { - gl2.texImage2D(GL_TEXTURE_2D$1, i5, texture.internalformat, texture.width >> i5, texture.height >> i5, 0, texture.internalformat, texture.type, null); - } else { - for (var j4 = 0; j4 < 6; ++j4) { - gl2.texImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + j4, i5, texture.internalformat, texture.width >> i5, texture.height >> i5, 0, texture.internalformat, texture.type, null); - } - } - } - setTexInfo(texture.texInfo, texture.target); - }); - } - function refreshTextures() { - for (var i4 = 0; i4 < numTexUnits; ++i4) { - var tex = textureUnits[i4]; - if (tex) { - tex.bindCount = 0; - tex.unit = -1; - textureUnits[i4] = null; - } - gl2.activeTexture(GL_TEXTURE0$1 + i4); - gl2.bindTexture(GL_TEXTURE_2D$1, null); - gl2.bindTexture(GL_TEXTURE_CUBE_MAP$1, null); - } - } - return { - create2D: createTexture2D, - createCube: createTextureCube, - clear: destroyTextures, - getTexture: function(wrapper) { - return null; - }, - restore: restoreTextures, - refresh: refreshTextures - }; - } - var GL_RENDERBUFFER = 36161; - var GL_RGBA4$1 = 32854; - var GL_RGB5_A1$1 = 32855; - var GL_RGB565$1 = 36194; - var GL_DEPTH_COMPONENT16 = 33189; - var GL_STENCIL_INDEX8 = 36168; - var GL_DEPTH_STENCIL$1 = 34041; - var GL_SRGB8_ALPHA8_EXT = 35907; - var GL_RGBA32F_EXT = 34836; - var GL_RGBA16F_EXT = 34842; - var GL_RGB16F_EXT = 34843; - var FORMAT_SIZES = []; - FORMAT_SIZES[GL_RGBA4$1] = 2; - FORMAT_SIZES[GL_RGB5_A1$1] = 2; - FORMAT_SIZES[GL_RGB565$1] = 2; - FORMAT_SIZES[GL_DEPTH_COMPONENT16] = 2; - FORMAT_SIZES[GL_STENCIL_INDEX8] = 1; - FORMAT_SIZES[GL_DEPTH_STENCIL$1] = 4; - FORMAT_SIZES[GL_SRGB8_ALPHA8_EXT] = 4; - FORMAT_SIZES[GL_RGBA32F_EXT] = 16; - FORMAT_SIZES[GL_RGBA16F_EXT] = 8; - FORMAT_SIZES[GL_RGB16F_EXT] = 6; - function getRenderbufferSize(format2, width2, height) { - return FORMAT_SIZES[format2] * width2 * height; - } - var wrapRenderbuffers = function(gl2, extensions, limits, stats2, config) { - var formatTypes = { - "rgba4": GL_RGBA4$1, - "rgb565": GL_RGB565$1, - "rgb5 a1": GL_RGB5_A1$1, - "depth": GL_DEPTH_COMPONENT16, - "stencil": GL_STENCIL_INDEX8, - "depth stencil": GL_DEPTH_STENCIL$1 - }; - if (extensions.ext_srgb) { - formatTypes["srgba"] = GL_SRGB8_ALPHA8_EXT; - } - if (extensions.ext_color_buffer_half_float) { - formatTypes["rgba16f"] = GL_RGBA16F_EXT; - formatTypes["rgb16f"] = GL_RGB16F_EXT; - } - if (extensions.webgl_color_buffer_float) { - formatTypes["rgba32f"] = GL_RGBA32F_EXT; - } - var formatTypesInvert = []; - Object.keys(formatTypes).forEach(function(key) { - var val = formatTypes[key]; - formatTypesInvert[val] = key; - }); - var renderbufferCount = 0; - var renderbufferSet = {}; - function REGLRenderbuffer(renderbuffer) { - this.id = renderbufferCount++; - this.refCount = 1; - this.renderbuffer = renderbuffer; - this.format = GL_RGBA4$1; - this.width = 0; - this.height = 0; - if (config.profile) { - this.stats = { size: 0 }; - } - } - REGLRenderbuffer.prototype.decRef = function() { - if (--this.refCount <= 0) { - destroy(this); - } - }; - function destroy(rb) { - var handle = rb.renderbuffer; - check$1(handle, "must not double destroy renderbuffer"); - gl2.bindRenderbuffer(GL_RENDERBUFFER, null); - gl2.deleteRenderbuffer(handle); - rb.renderbuffer = null; - rb.refCount = 0; - delete renderbufferSet[rb.id]; - stats2.renderbufferCount--; - } - function createRenderbuffer(a4, b10) { - var renderbuffer = new REGLRenderbuffer(gl2.createRenderbuffer()); - renderbufferSet[renderbuffer.id] = renderbuffer; - stats2.renderbufferCount++; - function reglRenderbuffer(a5, b11) { - var w4 = 0; - var h3 = 0; - var format2 = GL_RGBA4$1; - if (typeof a5 === "object" && a5) { - var options = a5; - if ("shape" in options) { - var shape = options.shape; - check$1(Array.isArray(shape) && shape.length >= 2, "invalid renderbuffer shape"); - w4 = shape[0] | 0; - h3 = shape[1] | 0; - } else { - if ("radius" in options) { - w4 = h3 = options.radius | 0; - } - if ("width" in options) { - w4 = options.width | 0; - } - if ("height" in options) { - h3 = options.height | 0; - } - } - if ("format" in options) { - check$1.parameter(options.format, formatTypes, "invalid renderbuffer format"); - format2 = formatTypes[options.format]; - } - } else if (typeof a5 === "number") { - w4 = a5 | 0; - if (typeof b11 === "number") { - h3 = b11 | 0; - } else { - h3 = w4; - } - } else if (!a5) { - w4 = h3 = 1; - } else { - check$1.raise("invalid arguments to renderbuffer constructor"); - } - check$1(w4 > 0 && h3 > 0 && w4 <= limits.maxRenderbufferSize && h3 <= limits.maxRenderbufferSize, "invalid renderbuffer size"); - if (w4 === renderbuffer.width && h3 === renderbuffer.height && format2 === renderbuffer.format) { - return; - } - reglRenderbuffer.width = renderbuffer.width = w4; - reglRenderbuffer.height = renderbuffer.height = h3; - renderbuffer.format = format2; - gl2.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer); - gl2.renderbufferStorage(GL_RENDERBUFFER, format2, w4, h3); - check$1(gl2.getError() === 0, "invalid render buffer format"); - if (config.profile) { - renderbuffer.stats.size = getRenderbufferSize(renderbuffer.format, renderbuffer.width, renderbuffer.height); - } - reglRenderbuffer.format = formatTypesInvert[renderbuffer.format]; - return reglRenderbuffer; - } - function resize(w_, h_) { - var w4 = w_ | 0; - var h3 = h_ | 0 || w4; - if (w4 === renderbuffer.width && h3 === renderbuffer.height) { - return reglRenderbuffer; - } - check$1(w4 > 0 && h3 > 0 && w4 <= limits.maxRenderbufferSize && h3 <= limits.maxRenderbufferSize, "invalid renderbuffer size"); - reglRenderbuffer.width = renderbuffer.width = w4; - reglRenderbuffer.height = renderbuffer.height = h3; - gl2.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer); - gl2.renderbufferStorage(GL_RENDERBUFFER, renderbuffer.format, w4, h3); - check$1(gl2.getError() === 0, "invalid render buffer format"); - if (config.profile) { - renderbuffer.stats.size = getRenderbufferSize(renderbuffer.format, renderbuffer.width, renderbuffer.height); - } - return reglRenderbuffer; - } - reglRenderbuffer(a4, b10); - reglRenderbuffer.resize = resize; - reglRenderbuffer._reglType = "renderbuffer"; - reglRenderbuffer._renderbuffer = renderbuffer; - if (config.profile) { - reglRenderbuffer.stats = renderbuffer.stats; - } - reglRenderbuffer.destroy = function() { - renderbuffer.decRef(); - }; - return reglRenderbuffer; - } - if (config.profile) { - stats2.getTotalRenderbufferSize = function() { - var total = 0; - Object.keys(renderbufferSet).forEach(function(key) { - total += renderbufferSet[key].stats.size; - }); - return total; - }; - } - function restoreRenderbuffers() { - values2(renderbufferSet).forEach(function(rb) { - rb.renderbuffer = gl2.createRenderbuffer(); - gl2.bindRenderbuffer(GL_RENDERBUFFER, rb.renderbuffer); - gl2.renderbufferStorage(GL_RENDERBUFFER, rb.format, rb.width, rb.height); - }); - gl2.bindRenderbuffer(GL_RENDERBUFFER, null); - } - return { - create: createRenderbuffer, - clear: function() { - values2(renderbufferSet).forEach(destroy); - }, - restore: restoreRenderbuffers - }; - }; - var GL_FRAMEBUFFER$1 = 36160; - var GL_RENDERBUFFER$1 = 36161; - var GL_TEXTURE_2D$2 = 3553; - var GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 = 34069; - var GL_COLOR_ATTACHMENT0$1 = 36064; - var GL_DEPTH_ATTACHMENT = 36096; - var GL_STENCIL_ATTACHMENT = 36128; - var GL_DEPTH_STENCIL_ATTACHMENT = 33306; - var GL_FRAMEBUFFER_COMPLETE$1 = 36053; - var GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054; - var GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055; - var GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057; - var GL_FRAMEBUFFER_UNSUPPORTED = 36061; - var GL_HALF_FLOAT_OES$2 = 36193; - var GL_UNSIGNED_BYTE$6 = 5121; - var GL_FLOAT$5 = 5126; - var GL_RGB$1 = 6407; - var GL_RGBA$2 = 6408; - var GL_DEPTH_COMPONENT$1 = 6402; - var colorTextureFormatEnums = [ - GL_RGB$1, - GL_RGBA$2 - ]; - var textureFormatChannels = []; - textureFormatChannels[GL_RGBA$2] = 4; - textureFormatChannels[GL_RGB$1] = 3; - var textureTypeSizes = []; - textureTypeSizes[GL_UNSIGNED_BYTE$6] = 1; - textureTypeSizes[GL_FLOAT$5] = 4; - textureTypeSizes[GL_HALF_FLOAT_OES$2] = 2; - var GL_RGBA4$2 = 32854; - var GL_RGB5_A1$2 = 32855; - var GL_RGB565$2 = 36194; - var GL_DEPTH_COMPONENT16$1 = 33189; - var GL_STENCIL_INDEX8$1 = 36168; - var GL_DEPTH_STENCIL$2 = 34041; - var GL_SRGB8_ALPHA8_EXT$1 = 35907; - var GL_RGBA32F_EXT$1 = 34836; - var GL_RGBA16F_EXT$1 = 34842; - var GL_RGB16F_EXT$1 = 34843; - var colorRenderbufferFormatEnums = [ - GL_RGBA4$2, - GL_RGB5_A1$2, - GL_RGB565$2, - GL_SRGB8_ALPHA8_EXT$1, - GL_RGBA16F_EXT$1, - GL_RGB16F_EXT$1, - GL_RGBA32F_EXT$1 - ]; - var statusCode = {}; - statusCode[GL_FRAMEBUFFER_COMPLETE$1] = "complete"; - statusCode[GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT] = "incomplete attachment"; - statusCode[GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS] = "incomplete dimensions"; - statusCode[GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT] = "incomplete, missing attachment"; - statusCode[GL_FRAMEBUFFER_UNSUPPORTED] = "unsupported"; - function wrapFBOState(gl2, extensions, limits, textureState, renderbufferState, stats2) { - var framebufferState = { - cur: null, - next: null, - dirty: false, - setFBO: null - }; - var colorTextureFormats = ["rgba"]; - var colorRenderbufferFormats = ["rgba4", "rgb565", "rgb5 a1"]; - if (extensions.ext_srgb) { - colorRenderbufferFormats.push("srgba"); - } - if (extensions.ext_color_buffer_half_float) { - colorRenderbufferFormats.push("rgba16f", "rgb16f"); - } - if (extensions.webgl_color_buffer_float) { - colorRenderbufferFormats.push("rgba32f"); - } - var colorTypes = ["uint8"]; - if (extensions.oes_texture_half_float) { - colorTypes.push("half float", "float16"); - } - if (extensions.oes_texture_float) { - colorTypes.push("float", "float32"); - } - function FramebufferAttachment(target, texture, renderbuffer) { - this.target = target; - this.texture = texture; - this.renderbuffer = renderbuffer; - var w4 = 0; - var h3 = 0; - if (texture) { - w4 = texture.width; - h3 = texture.height; - } else if (renderbuffer) { - w4 = renderbuffer.width; - h3 = renderbuffer.height; - } - this.width = w4; - this.height = h3; - } - function decRef(attachment) { - if (attachment) { - if (attachment.texture) { - attachment.texture._texture.decRef(); - } - if (attachment.renderbuffer) { - attachment.renderbuffer._renderbuffer.decRef(); - } - } - } - function incRefAndCheckShape(attachment, width2, height) { - if (!attachment) { - return; - } - if (attachment.texture) { - var texture = attachment.texture._texture; - var tw = Math.max(1, texture.width); - var th = Math.max(1, texture.height); - check$1(tw === width2 && th === height, "inconsistent width/height for supplied texture"); - texture.refCount += 1; - } else { - var renderbuffer = attachment.renderbuffer._renderbuffer; - check$1(renderbuffer.width === width2 && renderbuffer.height === height, "inconsistent width/height for renderbuffer"); - renderbuffer.refCount += 1; - } - } - function attach(location, attachment) { - if (attachment) { - if (attachment.texture) { - gl2.framebufferTexture2D(GL_FRAMEBUFFER$1, location, attachment.target, attachment.texture._texture.texture, 0); - } else { - gl2.framebufferRenderbuffer(GL_FRAMEBUFFER$1, location, GL_RENDERBUFFER$1, attachment.renderbuffer._renderbuffer.renderbuffer); - } - } - } - function parseAttachment(attachment) { - var target = GL_TEXTURE_2D$2; - var texture = null; - var renderbuffer = null; - var data3 = attachment; - if (typeof attachment === "object") { - data3 = attachment.data; - if ("target" in attachment) { - target = attachment.target | 0; - } - } - check$1.type(data3, "function", "invalid attachment data"); - var type2 = data3._reglType; - if (type2 === "texture2d") { - texture = data3; - check$1(target === GL_TEXTURE_2D$2); - } else if (type2 === "textureCube") { - texture = data3; - check$1(target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 && target < GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 + 6, "invalid cube map target"); - } else if (type2 === "renderbuffer") { - renderbuffer = data3; - target = GL_RENDERBUFFER$1; - } else { - check$1.raise("invalid regl object for attachment"); - } - return new FramebufferAttachment(target, texture, renderbuffer); - } - function allocAttachment(width2, height, isTexture, format2, type2) { - if (isTexture) { - var texture = textureState.create2D({ - width: width2, - height, - format: format2, - type: type2 - }); - texture._texture.refCount = 0; - return new FramebufferAttachment(GL_TEXTURE_2D$2, texture, null); - } else { - var rb = renderbufferState.create({ - width: width2, - height, - format: format2 - }); - rb._renderbuffer.refCount = 0; - return new FramebufferAttachment(GL_RENDERBUFFER$1, null, rb); - } - } - function unwrapAttachment(attachment) { - return attachment && (attachment.texture || attachment.renderbuffer); - } - function resizeAttachment(attachment, w4, h3) { - if (attachment) { - if (attachment.texture) { - attachment.texture.resize(w4, h3); - } else if (attachment.renderbuffer) { - attachment.renderbuffer.resize(w4, h3); - } - attachment.width = w4; - attachment.height = h3; - } - } - var framebufferCount = 0; - var framebufferSet = {}; - function REGLFramebuffer() { - this.id = framebufferCount++; - framebufferSet[this.id] = this; - this.framebuffer = gl2.createFramebuffer(); - this.width = 0; - this.height = 0; - this.colorAttachments = []; - this.depthAttachment = null; - this.stencilAttachment = null; - this.depthStencilAttachment = null; - } - function decFBORefs(framebuffer) { - framebuffer.colorAttachments.forEach(decRef); - decRef(framebuffer.depthAttachment); - decRef(framebuffer.stencilAttachment); - decRef(framebuffer.depthStencilAttachment); - } - function destroy(framebuffer) { - var handle = framebuffer.framebuffer; - check$1(handle, "must not double destroy framebuffer"); - gl2.deleteFramebuffer(handle); - framebuffer.framebuffer = null; - stats2.framebufferCount--; - delete framebufferSet[framebuffer.id]; - } - function updateFramebuffer(framebuffer) { - var i4; - gl2.bindFramebuffer(GL_FRAMEBUFFER$1, framebuffer.framebuffer); - var colorAttachments = framebuffer.colorAttachments; - for (i4 = 0; i4 < colorAttachments.length; ++i4) { - attach(GL_COLOR_ATTACHMENT0$1 + i4, colorAttachments[i4]); - } - for (i4 = colorAttachments.length; i4 < limits.maxColorAttachments; ++i4) { - gl2.framebufferTexture2D(GL_FRAMEBUFFER$1, GL_COLOR_ATTACHMENT0$1 + i4, GL_TEXTURE_2D$2, null, 0); - } - gl2.framebufferTexture2D(GL_FRAMEBUFFER$1, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D$2, null, 0); - gl2.framebufferTexture2D(GL_FRAMEBUFFER$1, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D$2, null, 0); - gl2.framebufferTexture2D(GL_FRAMEBUFFER$1, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D$2, null, 0); - attach(GL_DEPTH_ATTACHMENT, framebuffer.depthAttachment); - attach(GL_STENCIL_ATTACHMENT, framebuffer.stencilAttachment); - attach(GL_DEPTH_STENCIL_ATTACHMENT, framebuffer.depthStencilAttachment); - var status = gl2.checkFramebufferStatus(GL_FRAMEBUFFER$1); - if (!gl2.isContextLost() && status !== GL_FRAMEBUFFER_COMPLETE$1) { - check$1.raise("framebuffer configuration not supported, status = " + statusCode[status]); - } - gl2.bindFramebuffer(GL_FRAMEBUFFER$1, framebufferState.next ? framebufferState.next.framebuffer : null); - framebufferState.cur = framebufferState.next; - gl2.getError(); - } - function createFBO(a0, a1) { - var framebuffer = new REGLFramebuffer(); - stats2.framebufferCount++; - function reglFramebuffer(a4, b10) { - var i4; - check$1(framebufferState.next !== framebuffer, "can not update framebuffer which is currently in use"); - var width2 = 0; - var height = 0; - var needsDepth = true; - var needsStencil = true; - var colorBuffer = null; - var colorTexture = true; - var colorFormat = "rgba"; - var colorType = "uint8"; - var colorCount = 1; - var depthBuffer = null; - var stencilBuffer = null; - var depthStencilBuffer = null; - var depthStencilTexture = false; - if (typeof a4 === "number") { - width2 = a4 | 0; - height = b10 | 0 || width2; - } else if (!a4) { - width2 = height = 1; - } else { - check$1.type(a4, "object", "invalid arguments for framebuffer"); - var options = a4; - if ("shape" in options) { - var shape = options.shape; - check$1(Array.isArray(shape) && shape.length >= 2, "invalid shape for framebuffer"); - width2 = shape[0]; - height = shape[1]; - } else { - if ("radius" in options) { - width2 = height = options.radius; - } - if ("width" in options) { - width2 = options.width; - } - if ("height" in options) { - height = options.height; - } - } - if ("color" in options || "colors" in options) { - colorBuffer = options.color || options.colors; - if (Array.isArray(colorBuffer)) { - check$1(colorBuffer.length === 1 || extensions.webgl_draw_buffers, "multiple render targets not supported"); - } - } - if (!colorBuffer) { - if ("colorCount" in options) { - colorCount = options.colorCount | 0; - check$1(colorCount > 0, "invalid color buffer count"); - } - if ("colorTexture" in options) { - colorTexture = !!options.colorTexture; - colorFormat = "rgba4"; - } - if ("colorType" in options) { - colorType = options.colorType; - if (!colorTexture) { - if (colorType === "half float" || colorType === "float16") { - check$1(extensions.ext_color_buffer_half_float, "you must enable EXT_color_buffer_half_float to use 16-bit render buffers"); - colorFormat = "rgba16f"; - } else if (colorType === "float" || colorType === "float32") { - check$1(extensions.webgl_color_buffer_float, "you must enable WEBGL_color_buffer_float in order to use 32-bit floating point renderbuffers"); - colorFormat = "rgba32f"; - } - } else { - check$1(extensions.oes_texture_float || !(colorType === "float" || colorType === "float32"), "you must enable OES_texture_float in order to use floating point framebuffer objects"); - check$1(extensions.oes_texture_half_float || !(colorType === "half float" || colorType === "float16"), "you must enable OES_texture_half_float in order to use 16-bit floating point framebuffer objects"); - } - check$1.oneOf(colorType, colorTypes, "invalid color type"); - } - if ("colorFormat" in options) { - colorFormat = options.colorFormat; - if (colorTextureFormats.indexOf(colorFormat) >= 0) { - colorTexture = true; - } else if (colorRenderbufferFormats.indexOf(colorFormat) >= 0) { - colorTexture = false; - } else { - if (colorTexture) { - check$1.oneOf(options.colorFormat, colorTextureFormats, "invalid color format for texture"); - } else { - check$1.oneOf(options.colorFormat, colorRenderbufferFormats, "invalid color format for renderbuffer"); - } - } - } - } - if ("depthTexture" in options || "depthStencilTexture" in options) { - depthStencilTexture = !!(options.depthTexture || options.depthStencilTexture); - check$1(!depthStencilTexture || extensions.webgl_depth_texture, "webgl_depth_texture extension not supported"); - } - if ("depth" in options) { - if (typeof options.depth === "boolean") { - needsDepth = options.depth; - } else { - depthBuffer = options.depth; - needsStencil = false; - } - } - if ("stencil" in options) { - if (typeof options.stencil === "boolean") { - needsStencil = options.stencil; - } else { - stencilBuffer = options.stencil; - needsDepth = false; - } - } - if ("depthStencil" in options) { - if (typeof options.depthStencil === "boolean") { - needsDepth = needsStencil = options.depthStencil; - } else { - depthStencilBuffer = options.depthStencil; - needsDepth = false; - needsStencil = false; - } - } - } - var colorAttachments = null; - var depthAttachment = null; - var stencilAttachment = null; - var depthStencilAttachment = null; - if (Array.isArray(colorBuffer)) { - colorAttachments = colorBuffer.map(parseAttachment); - } else if (colorBuffer) { - colorAttachments = [parseAttachment(colorBuffer)]; - } else { - colorAttachments = new Array(colorCount); - for (i4 = 0; i4 < colorCount; ++i4) { - colorAttachments[i4] = allocAttachment(width2, height, colorTexture, colorFormat, colorType); - } - } - check$1(extensions.webgl_draw_buffers || colorAttachments.length <= 1, "you must enable the WEBGL_draw_buffers extension in order to use multiple color buffers."); - check$1(colorAttachments.length <= limits.maxColorAttachments, "too many color attachments, not supported"); - width2 = width2 || colorAttachments[0].width; - height = height || colorAttachments[0].height; - if (depthBuffer) { - depthAttachment = parseAttachment(depthBuffer); - } else if (needsDepth && !needsStencil) { - depthAttachment = allocAttachment(width2, height, depthStencilTexture, "depth", "uint32"); - } - if (stencilBuffer) { - stencilAttachment = parseAttachment(stencilBuffer); - } else if (needsStencil && !needsDepth) { - stencilAttachment = allocAttachment(width2, height, false, "stencil", "uint8"); - } - if (depthStencilBuffer) { - depthStencilAttachment = parseAttachment(depthStencilBuffer); - } else if (!depthBuffer && !stencilBuffer && needsStencil && needsDepth) { - depthStencilAttachment = allocAttachment(width2, height, depthStencilTexture, "depth stencil", "depth stencil"); - } - check$1(!!depthBuffer + !!stencilBuffer + !!depthStencilBuffer <= 1, "invalid framebuffer configuration, can specify exactly one depth/stencil attachment"); - var commonColorAttachmentSize = null; - for (i4 = 0; i4 < colorAttachments.length; ++i4) { - incRefAndCheckShape(colorAttachments[i4], width2, height); - check$1(!colorAttachments[i4] || colorAttachments[i4].texture && colorTextureFormatEnums.indexOf(colorAttachments[i4].texture._texture.format) >= 0 || colorAttachments[i4].renderbuffer && colorRenderbufferFormatEnums.indexOf(colorAttachments[i4].renderbuffer._renderbuffer.format) >= 0, "framebuffer color attachment " + i4 + " is invalid"); - if (colorAttachments[i4] && colorAttachments[i4].texture) { - var colorAttachmentSize = textureFormatChannels[colorAttachments[i4].texture._texture.format] * textureTypeSizes[colorAttachments[i4].texture._texture.type]; - if (commonColorAttachmentSize === null) { - commonColorAttachmentSize = colorAttachmentSize; - } else { - check$1(commonColorAttachmentSize === colorAttachmentSize, "all color attachments much have the same number of bits per pixel."); - } - } - } - incRefAndCheckShape(depthAttachment, width2, height); - check$1(!depthAttachment || depthAttachment.texture && depthAttachment.texture._texture.format === GL_DEPTH_COMPONENT$1 || depthAttachment.renderbuffer && depthAttachment.renderbuffer._renderbuffer.format === GL_DEPTH_COMPONENT16$1, "invalid depth attachment for framebuffer object"); - incRefAndCheckShape(stencilAttachment, width2, height); - check$1(!stencilAttachment || stencilAttachment.renderbuffer && stencilAttachment.renderbuffer._renderbuffer.format === GL_STENCIL_INDEX8$1, "invalid stencil attachment for framebuffer object"); - incRefAndCheckShape(depthStencilAttachment, width2, height); - check$1(!depthStencilAttachment || depthStencilAttachment.texture && depthStencilAttachment.texture._texture.format === GL_DEPTH_STENCIL$2 || depthStencilAttachment.renderbuffer && depthStencilAttachment.renderbuffer._renderbuffer.format === GL_DEPTH_STENCIL$2, "invalid depth-stencil attachment for framebuffer object"); - decFBORefs(framebuffer); - framebuffer.width = width2; - framebuffer.height = height; - framebuffer.colorAttachments = colorAttachments; - framebuffer.depthAttachment = depthAttachment; - framebuffer.stencilAttachment = stencilAttachment; - framebuffer.depthStencilAttachment = depthStencilAttachment; - reglFramebuffer.color = colorAttachments.map(unwrapAttachment); - reglFramebuffer.depth = unwrapAttachment(depthAttachment); - reglFramebuffer.stencil = unwrapAttachment(stencilAttachment); - reglFramebuffer.depthStencil = unwrapAttachment(depthStencilAttachment); - reglFramebuffer.width = framebuffer.width; - reglFramebuffer.height = framebuffer.height; - updateFramebuffer(framebuffer); - return reglFramebuffer; - } - function resize(w_, h_) { - check$1(framebufferState.next !== framebuffer, "can not resize a framebuffer which is currently in use"); - var w4 = Math.max(w_ | 0, 1); - var h3 = Math.max(h_ | 0 || w4, 1); - if (w4 === framebuffer.width && h3 === framebuffer.height) { - return reglFramebuffer; - } - var colorAttachments = framebuffer.colorAttachments; - for (var i4 = 0; i4 < colorAttachments.length; ++i4) { - resizeAttachment(colorAttachments[i4], w4, h3); - } - resizeAttachment(framebuffer.depthAttachment, w4, h3); - resizeAttachment(framebuffer.stencilAttachment, w4, h3); - resizeAttachment(framebuffer.depthStencilAttachment, w4, h3); - framebuffer.width = reglFramebuffer.width = w4; - framebuffer.height = reglFramebuffer.height = h3; - updateFramebuffer(framebuffer); - return reglFramebuffer; - } - reglFramebuffer(a0, a1); - return extend4(reglFramebuffer, { - resize, - _reglType: "framebuffer", - _framebuffer: framebuffer, - destroy: function() { - destroy(framebuffer); - decFBORefs(framebuffer); - }, - use: function(block) { - framebufferState.setFBO({ - framebuffer: reglFramebuffer - }, block); - } - }); - } - function createCubeFBO(options) { - var faces = Array(6); - function reglFramebufferCube(a4) { - var i4; - check$1(faces.indexOf(framebufferState.next) < 0, "can not update framebuffer which is currently in use"); - var params = { - color: null - }; - var radius = 0; - var colorBuffer = null; - var colorFormat = "rgba"; - var colorType = "uint8"; - var colorCount = 1; - if (typeof a4 === "number") { - radius = a4 | 0; - } else if (!a4) { - radius = 1; - } else { - check$1.type(a4, "object", "invalid arguments for framebuffer"); - var options2 = a4; - if ("shape" in options2) { - var shape = options2.shape; - check$1(Array.isArray(shape) && shape.length >= 2, "invalid shape for framebuffer"); - check$1(shape[0] === shape[1], "cube framebuffer must be square"); - radius = shape[0]; - } else { - if ("radius" in options2) { - radius = options2.radius | 0; - } - if ("width" in options2) { - radius = options2.width | 0; - if ("height" in options2) { - check$1(options2.height === radius, "must be square"); - } - } else if ("height" in options2) { - radius = options2.height | 0; - } - } - if ("color" in options2 || "colors" in options2) { - colorBuffer = options2.color || options2.colors; - if (Array.isArray(colorBuffer)) { - check$1(colorBuffer.length === 1 || extensions.webgl_draw_buffers, "multiple render targets not supported"); - } - } - if (!colorBuffer) { - if ("colorCount" in options2) { - colorCount = options2.colorCount | 0; - check$1(colorCount > 0, "invalid color buffer count"); - } - if ("colorType" in options2) { - check$1.oneOf(options2.colorType, colorTypes, "invalid color type"); - colorType = options2.colorType; - } - if ("colorFormat" in options2) { - colorFormat = options2.colorFormat; - check$1.oneOf(options2.colorFormat, colorTextureFormats, "invalid color format for texture"); - } - } - if ("depth" in options2) { - params.depth = options2.depth; - } - if ("stencil" in options2) { - params.stencil = options2.stencil; - } - if ("depthStencil" in options2) { - params.depthStencil = options2.depthStencil; - } - } - var colorCubes; - if (colorBuffer) { - if (Array.isArray(colorBuffer)) { - colorCubes = []; - for (i4 = 0; i4 < colorBuffer.length; ++i4) { - colorCubes[i4] = colorBuffer[i4]; - } - } else { - colorCubes = [colorBuffer]; - } - } else { - colorCubes = Array(colorCount); - var cubeMapParams = { - radius, - format: colorFormat, - type: colorType - }; - for (i4 = 0; i4 < colorCount; ++i4) { - colorCubes[i4] = textureState.createCube(cubeMapParams); - } - } - params.color = Array(colorCubes.length); - for (i4 = 0; i4 < colorCubes.length; ++i4) { - var cube = colorCubes[i4]; - check$1(typeof cube === "function" && cube._reglType === "textureCube", "invalid cube map"); - radius = radius || cube.width; - check$1(cube.width === radius && cube.height === radius, "invalid cube map shape"); - params.color[i4] = { - target: GL_TEXTURE_CUBE_MAP_POSITIVE_X$2, - data: colorCubes[i4] - }; - } - for (i4 = 0; i4 < 6; ++i4) { - for (var j4 = 0; j4 < colorCubes.length; ++j4) { - params.color[j4].target = GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 + i4; - } - if (i4 > 0) { - params.depth = faces[0].depth; - params.stencil = faces[0].stencil; - params.depthStencil = faces[0].depthStencil; - } - if (faces[i4]) { - faces[i4](params); - } else { - faces[i4] = createFBO(params); - } - } - return extend4(reglFramebufferCube, { - width: radius, - height: radius, - color: colorCubes - }); - } - function resize(radius_) { - var i4; - var radius = radius_ | 0; - check$1(radius > 0 && radius <= limits.maxCubeMapSize, "invalid radius for cube fbo"); - if (radius === reglFramebufferCube.width) { - return reglFramebufferCube; - } - var colors = reglFramebufferCube.color; - for (i4 = 0; i4 < colors.length; ++i4) { - colors[i4].resize(radius); - } - for (i4 = 0; i4 < 6; ++i4) { - faces[i4].resize(radius); - } - reglFramebufferCube.width = reglFramebufferCube.height = radius; - return reglFramebufferCube; - } - reglFramebufferCube(options); - return extend4(reglFramebufferCube, { - faces, - resize, - _reglType: "framebufferCube", - destroy: function() { - faces.forEach(function(f3) { - f3.destroy(); - }); - } - }); - } - function restoreFramebuffers() { - framebufferState.cur = null; - framebufferState.next = null; - framebufferState.dirty = true; - values2(framebufferSet).forEach(function(fb) { - fb.framebuffer = gl2.createFramebuffer(); - updateFramebuffer(fb); - }); - } - return extend4(framebufferState, { - getFramebuffer: function(object) { - if (typeof object === "function" && object._reglType === "framebuffer") { - var fbo = object._framebuffer; - if (fbo instanceof REGLFramebuffer) { - return fbo; - } - } - return null; - }, - create: createFBO, - createCube: createCubeFBO, - clear: function() { - values2(framebufferSet).forEach(destroy); - }, - restore: restoreFramebuffers - }); - } - var GL_FLOAT$6 = 5126; - var GL_ARRAY_BUFFER$1 = 34962; - function AttributeRecord() { - this.state = 0; - this.x = 0; - this.y = 0; - this.z = 0; - this.w = 0; - this.buffer = null; - this.size = 0; - this.normalized = false; - this.type = GL_FLOAT$6; - this.offset = 0; - this.stride = 0; - this.divisor = 0; - } - function wrapAttributeState(gl2, extensions, limits, stats2, bufferState) { - var NUM_ATTRIBUTES = limits.maxAttributes; - var attributeBindings = new Array(NUM_ATTRIBUTES); - for (var i4 = 0; i4 < NUM_ATTRIBUTES; ++i4) { - attributeBindings[i4] = new AttributeRecord(); - } - var vaoCount = 0; - var vaoSet = {}; - var state2 = { - Record: AttributeRecord, - scope: {}, - state: attributeBindings, - currentVAO: null, - targetVAO: null, - restore: extVAO() ? restoreVAO : function() { - }, - createVAO, - getVAO, - destroyBuffer, - setVAO: extVAO() ? setVAOEXT : setVAOEmulated, - clear: extVAO() ? destroyVAOEXT : function() { - } - }; - function destroyBuffer(buffer) { - for (var i5 = 0; i5 < attributeBindings.length; ++i5) { - var record = attributeBindings[i5]; - if (record.buffer === buffer) { - gl2.disableVertexAttribArray(i5); - record.buffer = null; - } - } - } - function extVAO() { - return extensions.oes_vertex_array_object; - } - function extInstanced() { - return extensions.angle_instanced_arrays; - } - function getVAO(vao) { - if (typeof vao === "function" && vao._vao) { - return vao._vao; - } - return null; - } - function setVAOEXT(vao) { - if (vao === state2.currentVAO) { - return; - } - var ext = extVAO(); - if (vao) { - ext.bindVertexArrayOES(vao.vao); - } else { - ext.bindVertexArrayOES(null); - } - state2.currentVAO = vao; - } - function setVAOEmulated(vao) { - if (vao === state2.currentVAO) { - return; - } - if (vao) { - vao.bindAttrs(); - } else { - var exti = extInstanced(); - for (var i5 = 0; i5 < attributeBindings.length; ++i5) { - var binding = attributeBindings[i5]; - if (binding.buffer) { - gl2.enableVertexAttribArray(i5); - gl2.vertexAttribPointer(i5, binding.size, binding.type, binding.normalized, binding.stride, binding.offfset); - if (exti && binding.divisor) { - exti.vertexAttribDivisorANGLE(i5, binding.divisor); - } - } else { - gl2.disableVertexAttribArray(i5); - gl2.vertexAttrib4f(i5, binding.x, binding.y, binding.z, binding.w); - } - } - } - state2.currentVAO = vao; - } - function destroyVAOEXT() { - values2(vaoSet).forEach(function(vao) { - vao.destroy(); - }); - } - function REGLVAO() { - this.id = ++vaoCount; - this.attributes = []; - var extension = extVAO(); - if (extension) { - this.vao = extension.createVertexArrayOES(); - } else { - this.vao = null; - } - vaoSet[this.id] = this; - this.buffers = []; - } - REGLVAO.prototype.bindAttrs = function() { - var exti = extInstanced(); - var attributes = this.attributes; - for (var i5 = 0; i5 < attributes.length; ++i5) { - var attr = attributes[i5]; - if (attr.buffer) { - gl2.enableVertexAttribArray(i5); - gl2.bindBuffer(GL_ARRAY_BUFFER$1, attr.buffer.buffer); - gl2.vertexAttribPointer(i5, attr.size, attr.type, attr.normalized, attr.stride, attr.offset); - if (exti && attr.divisor) { - exti.vertexAttribDivisorANGLE(i5, attr.divisor); - } - } else { - gl2.disableVertexAttribArray(i5); - gl2.vertexAttrib4f(i5, attr.x, attr.y, attr.z, attr.w); - } - } - for (var j4 = attributes.length; j4 < NUM_ATTRIBUTES; ++j4) { - gl2.disableVertexAttribArray(j4); - } - }; - REGLVAO.prototype.refresh = function() { - var ext = extVAO(); - if (ext) { - ext.bindVertexArrayOES(this.vao); - this.bindAttrs(); - state2.currentVAO = this; - } - }; - REGLVAO.prototype.destroy = function() { - if (this.vao) { - var extension = extVAO(); - if (this === state2.currentVAO) { - state2.currentVAO = null; - extension.bindVertexArrayOES(null); - } - extension.deleteVertexArrayOES(this.vao); - this.vao = null; - } - if (vaoSet[this.id]) { - delete vaoSet[this.id]; - stats2.vaoCount -= 1; - } - }; - function restoreVAO() { - var ext = extVAO(); - if (ext) { - values2(vaoSet).forEach(function(vao) { - vao.refresh(); - }); - } - } - function createVAO(_attr) { - var vao = new REGLVAO(); - stats2.vaoCount += 1; - function updateVAO(attributes) { - check$1(Array.isArray(attributes), "arguments to vertex array constructor must be an array"); - check$1(attributes.length < NUM_ATTRIBUTES, "too many attributes"); - check$1(attributes.length > 0, "must specify at least one attribute"); - var bufUpdated = {}; - var nattributes = vao.attributes; - nattributes.length = attributes.length; - for (var i5 = 0; i5 < attributes.length; ++i5) { - var spec = attributes[i5]; - var rec = nattributes[i5] = new AttributeRecord(); - var data3 = spec.data || spec; - if (Array.isArray(data3) || isTypedArray4(data3) || isNDArrayLike(data3)) { - var buf; - if (vao.buffers[i5]) { - buf = vao.buffers[i5]; - if (isTypedArray4(data3) && buf._buffer.byteLength >= data3.byteLength) { - buf.subdata(data3); - } else { - buf.destroy(); - vao.buffers[i5] = null; - } - } - if (!vao.buffers[i5]) { - buf = vao.buffers[i5] = bufferState.create(spec, GL_ARRAY_BUFFER$1, false, true); - } - rec.buffer = bufferState.getBuffer(buf); - rec.size = rec.buffer.dimension | 0; - rec.normalized = false; - rec.type = rec.buffer.dtype; - rec.offset = 0; - rec.stride = 0; - rec.divisor = 0; - rec.state = 1; - bufUpdated[i5] = 1; - } else if (bufferState.getBuffer(spec)) { - rec.buffer = bufferState.getBuffer(spec); - rec.size = rec.buffer.dimension | 0; - rec.normalized = false; - rec.type = rec.buffer.dtype; - rec.offset = 0; - rec.stride = 0; - rec.divisor = 0; - rec.state = 1; - } else if (bufferState.getBuffer(spec.buffer)) { - rec.buffer = bufferState.getBuffer(spec.buffer); - rec.size = (+spec.size || rec.buffer.dimension) | 0; - rec.normalized = !!spec.normalized || false; - if ("type" in spec) { - check$1.parameter(spec.type, glTypes, "invalid buffer type"); - rec.type = glTypes[spec.type]; - } else { - rec.type = rec.buffer.dtype; - } - rec.offset = (spec.offset || 0) | 0; - rec.stride = (spec.stride || 0) | 0; - rec.divisor = (spec.divisor || 0) | 0; - rec.state = 1; - check$1(rec.size >= 1 && rec.size <= 4, "size must be between 1 and 4"); - check$1(rec.offset >= 0, "invalid offset"); - check$1(rec.stride >= 0 && rec.stride <= 255, "stride must be between 0 and 255"); - check$1(rec.divisor >= 0, "divisor must be positive"); - check$1(!rec.divisor || !!extensions.angle_instanced_arrays, "ANGLE_instanced_arrays must be enabled to use divisor"); - } else if ("x" in spec) { - check$1(i5 > 0, "first attribute must not be a constant"); - rec.x = +spec.x || 0; - rec.y = +spec.y || 0; - rec.z = +spec.z || 0; - rec.w = +spec.w || 0; - rec.state = 2; - } else { - check$1(false, "invalid attribute spec for location " + i5); - } - } - for (var j4 = 0; j4 < vao.buffers.length; ++j4) { - if (!bufUpdated[j4] && vao.buffers[j4]) { - vao.buffers[j4].destroy(); - vao.buffers[j4] = null; - } - } - vao.refresh(); - return updateVAO; - } - updateVAO.destroy = function() { - for (var j4 = 0; j4 < vao.buffers.length; ++j4) { - if (vao.buffers[j4]) { - vao.buffers[j4].destroy(); - } - } - vao.buffers.length = 0; - vao.destroy(); - }; - updateVAO._vao = vao; - updateVAO._reglType = "vao"; - return updateVAO(_attr); - } - return state2; - } - var GL_FRAGMENT_SHADER = 35632; - var GL_VERTEX_SHADER = 35633; - var GL_ACTIVE_UNIFORMS = 35718; - var GL_ACTIVE_ATTRIBUTES = 35721; - function wrapShaderState(gl2, stringStore, stats2, config) { - var fragShaders = {}; - var vertShaders = {}; - function ActiveInfo(name, id, location, info) { - this.name = name; - this.id = id; - this.location = location; - this.info = info; - } - function insertActiveInfo(list, info) { - for (var i4 = 0; i4 < list.length; ++i4) { - if (list[i4].id === info.id) { - list[i4].location = info.location; - return; - } - } - list.push(info); - } - function getShader(type2, id, command) { - var cache3 = type2 === GL_FRAGMENT_SHADER ? fragShaders : vertShaders; - var shader = cache3[id]; - if (!shader) { - var source = stringStore.str(id); - shader = gl2.createShader(type2); - gl2.shaderSource(shader, source); - gl2.compileShader(shader); - check$1.shaderError(gl2, shader, source, type2, command); - cache3[id] = shader; - } - return shader; - } - var programCache = {}; - var programList = []; - var PROGRAM_COUNTER = 0; - function REGLProgram(fragId, vertId) { - this.id = PROGRAM_COUNTER++; - this.fragId = fragId; - this.vertId = vertId; - this.program = null; - this.uniforms = []; - this.attributes = []; - this.refCount = 1; - if (config.profile) { - this.stats = { - uniformsCount: 0, - attributesCount: 0 - }; - } - } - function linkProgram(desc, command, attributeLocations) { - var i4, info; - var fragShader = getShader(GL_FRAGMENT_SHADER, desc.fragId); - var vertShader = getShader(GL_VERTEX_SHADER, desc.vertId); - var program = desc.program = gl2.createProgram(); - gl2.attachShader(program, fragShader); - gl2.attachShader(program, vertShader); - if (attributeLocations) { - for (i4 = 0; i4 < attributeLocations.length; ++i4) { - var binding = attributeLocations[i4]; - gl2.bindAttribLocation(program, binding[0], binding[1]); - } - } - gl2.linkProgram(program); - check$1.linkError(gl2, program, stringStore.str(desc.fragId), stringStore.str(desc.vertId), command); - var numUniforms = gl2.getProgramParameter(program, GL_ACTIVE_UNIFORMS); - if (config.profile) { - desc.stats.uniformsCount = numUniforms; - } - var uniforms = desc.uniforms; - for (i4 = 0; i4 < numUniforms; ++i4) { - info = gl2.getActiveUniform(program, i4); - if (info) { - if (info.size > 1) { - for (var j4 = 0; j4 < info.size; ++j4) { - var name = info.name.replace("[0]", "[" + j4 + "]"); - insertActiveInfo(uniforms, new ActiveInfo(name, stringStore.id(name), gl2.getUniformLocation(program, name), info)); - } - } else { - insertActiveInfo(uniforms, new ActiveInfo(info.name, stringStore.id(info.name), gl2.getUniformLocation(program, info.name), info)); - } - } - } - var numAttributes = gl2.getProgramParameter(program, GL_ACTIVE_ATTRIBUTES); - if (config.profile) { - desc.stats.attributesCount = numAttributes; - } - var attributes = desc.attributes; - for (i4 = 0; i4 < numAttributes; ++i4) { - info = gl2.getActiveAttrib(program, i4); - if (info) { - insertActiveInfo(attributes, new ActiveInfo(info.name, stringStore.id(info.name), gl2.getAttribLocation(program, info.name), info)); - } - } - } - if (config.profile) { - stats2.getMaxUniformsCount = function() { - var m4 = 0; - programList.forEach(function(desc) { - if (desc.stats.uniformsCount > m4) { - m4 = desc.stats.uniformsCount; - } - }); - return m4; - }; - stats2.getMaxAttributesCount = function() { - var m4 = 0; - programList.forEach(function(desc) { - if (desc.stats.attributesCount > m4) { - m4 = desc.stats.attributesCount; - } - }); - return m4; - }; - } - function restoreShaders() { - fragShaders = {}; - vertShaders = {}; - for (var i4 = 0; i4 < programList.length; ++i4) { - linkProgram(programList[i4], null, programList[i4].attributes.map(function(info) { - return [info.location, info.name]; - })); - } - } - return { - clear: function() { - var deleteShader = gl2.deleteShader.bind(gl2); - values2(fragShaders).forEach(deleteShader); - fragShaders = {}; - values2(vertShaders).forEach(deleteShader); - vertShaders = {}; - programList.forEach(function(desc) { - gl2.deleteProgram(desc.program); - }); - programList.length = 0; - programCache = {}; - stats2.shaderCount = 0; - }, - program: function(vertId, fragId, command, attribLocations) { - check$1.command(vertId >= 0, "missing vertex shader", command); - check$1.command(fragId >= 0, "missing fragment shader", command); - var cache3 = programCache[fragId]; - if (!cache3) { - cache3 = programCache[fragId] = {}; - } - var prevProgram = cache3[vertId]; - if (prevProgram) { - prevProgram.refCount++; - if (!attribLocations) { - return prevProgram; - } - } - var program = new REGLProgram(fragId, vertId); - stats2.shaderCount++; - linkProgram(program, command, attribLocations); - if (!prevProgram) { - cache3[vertId] = program; - } - programList.push(program); - return extend4(program, { - destroy: function() { - program.refCount--; - if (program.refCount <= 0) { - gl2.deleteProgram(program.program); - var idx = programList.indexOf(program); - programList.splice(idx, 1); - stats2.shaderCount--; - } - if (cache3[program.vertId].refCount <= 0) { - gl2.deleteShader(vertShaders[program.vertId]); - delete vertShaders[program.vertId]; - delete programCache[program.fragId][program.vertId]; - } - if (!Object.keys(programCache[program.fragId]).length) { - gl2.deleteShader(fragShaders[program.fragId]); - delete fragShaders[program.fragId]; - delete programCache[program.fragId]; - } - } - }); - }, - restore: restoreShaders, - shader: getShader, - frag: -1, - vert: -1 - }; - } - var GL_RGBA$3 = 6408; - var GL_UNSIGNED_BYTE$7 = 5121; - var GL_PACK_ALIGNMENT = 3333; - var GL_FLOAT$7 = 5126; - function wrapReadPixels(gl2, framebufferState, reglPoll, context, glAttributes, extensions, limits) { - function readPixelsImpl(input) { - var type2; - if (framebufferState.next === null) { - check$1(glAttributes.preserveDrawingBuffer, 'you must create a webgl context with "preserveDrawingBuffer":true in order to read pixels from the drawing buffer'); - type2 = GL_UNSIGNED_BYTE$7; - } else { - check$1(framebufferState.next.colorAttachments[0].texture !== null, "You cannot read from a renderbuffer"); - type2 = framebufferState.next.colorAttachments[0].texture._texture.type; - if (extensions.oes_texture_float) { - check$1(type2 === GL_UNSIGNED_BYTE$7 || type2 === GL_FLOAT$7, "Reading from a framebuffer is only allowed for the types 'uint8' and 'float'"); - if (type2 === GL_FLOAT$7) { - check$1(limits.readFloat, "Reading 'float' values is not permitted in your browser. For a fallback, please see: https://www.npmjs.com/package/glsl-read-float"); - } - } else { - check$1(type2 === GL_UNSIGNED_BYTE$7, "Reading from a framebuffer is only allowed for the type 'uint8'"); - } - } - var x6 = 0; - var y5 = 0; - var width2 = context.framebufferWidth; - var height = context.framebufferHeight; - var data3 = null; - if (isTypedArray4(input)) { - data3 = input; - } else if (input) { - check$1.type(input, "object", "invalid arguments to regl.read()"); - x6 = input.x | 0; - y5 = input.y | 0; - check$1(x6 >= 0 && x6 < context.framebufferWidth, "invalid x offset for regl.read"); - check$1(y5 >= 0 && y5 < context.framebufferHeight, "invalid y offset for regl.read"); - width2 = (input.width || context.framebufferWidth - x6) | 0; - height = (input.height || context.framebufferHeight - y5) | 0; - data3 = input.data || null; - } - if (data3) { - if (type2 === GL_UNSIGNED_BYTE$7) { - check$1(data3 instanceof Uint8Array, "buffer must be 'Uint8Array' when reading from a framebuffer of type 'uint8'"); - } else if (type2 === GL_FLOAT$7) { - check$1(data3 instanceof Float32Array, "buffer must be 'Float32Array' when reading from a framebuffer of type 'float'"); - } - } - check$1(width2 > 0 && width2 + x6 <= context.framebufferWidth, "invalid width for read pixels"); - check$1(height > 0 && height + y5 <= context.framebufferHeight, "invalid height for read pixels"); - reglPoll(); - var size2 = width2 * height * 4; - if (!data3) { - if (type2 === GL_UNSIGNED_BYTE$7) { - data3 = new Uint8Array(size2); - } else if (type2 === GL_FLOAT$7) { - data3 = data3 || new Float32Array(size2); - } - } - check$1.isTypedArray(data3, "data buffer for regl.read() must be a typedarray"); - check$1(data3.byteLength >= size2, "data buffer for regl.read() too small"); - gl2.pixelStorei(GL_PACK_ALIGNMENT, 4); - gl2.readPixels(x6, y5, width2, height, GL_RGBA$3, type2, data3); - return data3; - } - function readPixelsFBO(options) { - var result; - framebufferState.setFBO({ - framebuffer: options.framebuffer - }, function() { - result = readPixelsImpl(options); - }); - return result; - } - function readPixels(options) { - if (!options || !("framebuffer" in options)) { - return readPixelsImpl(options); - } else { - return readPixelsFBO(options); - } - } - return readPixels; - } - function slice(x6) { - return Array.prototype.slice.call(x6); - } - function join(x6) { - return slice(x6).join(""); - } - function createEnvironment() { - var varCounter = 0; - var linkedNames = []; - var linkedValues = []; - function link(value2) { - for (var i4 = 0; i4 < linkedValues.length; ++i4) { - if (linkedValues[i4] === value2) { - return linkedNames[i4]; - } - } - var name = "g" + varCounter++; - linkedNames.push(name); - linkedValues.push(value2); - return name; - } - function block() { - var code = []; - function push() { - code.push.apply(code, slice(arguments)); - } - var vars = []; - function def() { - var name = "v" + varCounter++; - vars.push(name); - if (arguments.length > 0) { - code.push(name, "="); - code.push.apply(code, slice(arguments)); - code.push(";"); - } - return name; - } - return extend4(push, { - def, - toString: function() { - return join([ - vars.length > 0 ? "var " + vars.join(",") + ";" : "", - join(code) - ]); - } - }); - } - function scope() { - var entry = block(); - var exit = block(); - var entryToString = entry.toString; - var exitToString = exit.toString; - function save(object, prop) { - exit(object, prop, "=", entry.def(object, prop), ";"); - } - return extend4(function() { - entry.apply(entry, slice(arguments)); - }, { - def: entry.def, - entry, - exit, - save, - set: function(object, prop, value2) { - save(object, prop); - entry(object, prop, "=", value2, ";"); - }, - toString: function() { - return entryToString() + exitToString(); - } - }); - } - function conditional() { - var pred = join(arguments); - var thenBlock = scope(); - var elseBlock = scope(); - var thenToString = thenBlock.toString; - var elseToString = elseBlock.toString; - return extend4(thenBlock, { - then: function() { - thenBlock.apply(thenBlock, slice(arguments)); - return this; - }, - else: function() { - elseBlock.apply(elseBlock, slice(arguments)); - return this; - }, - toString: function() { - var elseClause = elseToString(); - if (elseClause) { - elseClause = "else{" + elseClause + "}"; - } - return join([ - "if(", - pred, - "){", - thenToString(), - "}", - elseClause - ]); - } - }); - } - var globalBlock = block(); - var procedures = {}; - function proc(name, count2) { - var args = []; - function arg() { - var name2 = "a" + args.length; - args.push(name2); - return name2; - } - count2 = count2 || 0; - for (var i4 = 0; i4 < count2; ++i4) { - arg(); - } - var body = scope(); - var bodyToString = body.toString; - var result = procedures[name] = extend4(body, { - arg, - toString: function() { - return join([ - "function(", - args.join(), - "){", - bodyToString(), - "}" - ]); - } - }); - return result; - } - function compile() { - var code = [ - '"use strict";', - globalBlock, - "return {" - ]; - Object.keys(procedures).forEach(function(name) { - code.push('"', name, '":', procedures[name].toString(), ","); - }); - code.push("}"); - var src = join(code).replace(/;/g, ";\n").replace(/}/g, "}\n").replace(/{/g, "{\n"); - var proc2 = Function.apply(null, linkedNames.concat(src)); - return proc2.apply(null, linkedValues); - } - return { - global: globalBlock, - link, - block, - proc, - scope, - cond: conditional, - compile - }; - } - var CUTE_COMPONENTS = "xyzw".split(""); - var GL_UNSIGNED_BYTE$8 = 5121; - var ATTRIB_STATE_POINTER = 1; - var ATTRIB_STATE_CONSTANT = 2; - var DYN_FUNC$1 = 0; - var DYN_PROP$1 = 1; - var DYN_CONTEXT$1 = 2; - var DYN_STATE$1 = 3; - var DYN_THUNK = 4; - var DYN_CONSTANT$1 = 5; - var DYN_ARRAY$1 = 6; - var S_DITHER = "dither"; - var S_BLEND_ENABLE = "blend.enable"; - var S_BLEND_COLOR = "blend.color"; - var S_BLEND_EQUATION = "blend.equation"; - var S_BLEND_FUNC = "blend.func"; - var S_DEPTH_ENABLE = "depth.enable"; - var S_DEPTH_FUNC = "depth.func"; - var S_DEPTH_RANGE = "depth.range"; - var S_DEPTH_MASK = "depth.mask"; - var S_COLOR_MASK = "colorMask"; - var S_CULL_ENABLE = "cull.enable"; - var S_CULL_FACE = "cull.face"; - var S_FRONT_FACE = "frontFace"; - var S_LINE_WIDTH = "lineWidth"; - var S_POLYGON_OFFSET_ENABLE = "polygonOffset.enable"; - var S_POLYGON_OFFSET_OFFSET = "polygonOffset.offset"; - var S_SAMPLE_ALPHA = "sample.alpha"; - var S_SAMPLE_ENABLE = "sample.enable"; - var S_SAMPLE_COVERAGE = "sample.coverage"; - var S_STENCIL_ENABLE = "stencil.enable"; - var S_STENCIL_MASK = "stencil.mask"; - var S_STENCIL_FUNC = "stencil.func"; - var S_STENCIL_OPFRONT = "stencil.opFront"; - var S_STENCIL_OPBACK = "stencil.opBack"; - var S_SCISSOR_ENABLE = "scissor.enable"; - var S_SCISSOR_BOX = "scissor.box"; - var S_VIEWPORT = "viewport"; - var S_PROFILE = "profile"; - var S_FRAMEBUFFER = "framebuffer"; - var S_VERT = "vert"; - var S_FRAG = "frag"; - var S_ELEMENTS = "elements"; - var S_PRIMITIVE = "primitive"; - var S_COUNT = "count"; - var S_OFFSET = "offset"; - var S_INSTANCES = "instances"; - var S_VAO = "vao"; - var SUFFIX_WIDTH = "Width"; - var SUFFIX_HEIGHT = "Height"; - var S_FRAMEBUFFER_WIDTH = S_FRAMEBUFFER + SUFFIX_WIDTH; - var S_FRAMEBUFFER_HEIGHT = S_FRAMEBUFFER + SUFFIX_HEIGHT; - var S_VIEWPORT_WIDTH = S_VIEWPORT + SUFFIX_WIDTH; - var S_VIEWPORT_HEIGHT = S_VIEWPORT + SUFFIX_HEIGHT; - var S_DRAWINGBUFFER = "drawingBuffer"; - var S_DRAWINGBUFFER_WIDTH = S_DRAWINGBUFFER + SUFFIX_WIDTH; - var S_DRAWINGBUFFER_HEIGHT = S_DRAWINGBUFFER + SUFFIX_HEIGHT; - var NESTED_OPTIONS = [ - S_BLEND_FUNC, - S_BLEND_EQUATION, - S_STENCIL_FUNC, - S_STENCIL_OPFRONT, - S_STENCIL_OPBACK, - S_SAMPLE_COVERAGE, - S_VIEWPORT, - S_SCISSOR_BOX, - S_POLYGON_OFFSET_OFFSET - ]; - var GL_ARRAY_BUFFER$2 = 34962; - var GL_ELEMENT_ARRAY_BUFFER$1 = 34963; - var GL_FRAGMENT_SHADER$1 = 35632; - var GL_VERTEX_SHADER$1 = 35633; - var GL_TEXTURE_2D$3 = 3553; - var GL_TEXTURE_CUBE_MAP$2 = 34067; - var GL_CULL_FACE = 2884; - var GL_BLEND = 3042; - var GL_DITHER = 3024; - var GL_STENCIL_TEST = 2960; - var GL_DEPTH_TEST = 2929; - var GL_SCISSOR_TEST = 3089; - var GL_POLYGON_OFFSET_FILL = 32823; - var GL_SAMPLE_ALPHA_TO_COVERAGE = 32926; - var GL_SAMPLE_COVERAGE = 32928; - var GL_FLOAT$8 = 5126; - var GL_FLOAT_VEC2 = 35664; - var GL_FLOAT_VEC3 = 35665; - var GL_FLOAT_VEC4 = 35666; - var GL_INT$3 = 5124; - var GL_INT_VEC2 = 35667; - var GL_INT_VEC3 = 35668; - var GL_INT_VEC4 = 35669; - var GL_BOOL = 35670; - var GL_BOOL_VEC2 = 35671; - var GL_BOOL_VEC3 = 35672; - var GL_BOOL_VEC4 = 35673; - var GL_FLOAT_MAT2 = 35674; - var GL_FLOAT_MAT3 = 35675; - var GL_FLOAT_MAT4 = 35676; - var GL_SAMPLER_2D = 35678; - var GL_SAMPLER_CUBE = 35680; - var GL_TRIANGLES$1 = 4; - var GL_FRONT = 1028; - var GL_BACK = 1029; - var GL_CW = 2304; - var GL_CCW = 2305; - var GL_MIN_EXT = 32775; - var GL_MAX_EXT = 32776; - var GL_ALWAYS = 519; - var GL_KEEP = 7680; - var GL_ZERO = 0; - var GL_ONE = 1; - var GL_FUNC_ADD = 32774; - var GL_LESS = 513; - var GL_FRAMEBUFFER$2 = 36160; - var GL_COLOR_ATTACHMENT0$2 = 36064; - var blendFuncs = { - "0": 0, - "1": 1, - "zero": 0, - "one": 1, - "src color": 768, - "one minus src color": 769, - "src alpha": 770, - "one minus src alpha": 771, - "dst color": 774, - "one minus dst color": 775, - "dst alpha": 772, - "one minus dst alpha": 773, - "constant color": 32769, - "one minus constant color": 32770, - "constant alpha": 32771, - "one minus constant alpha": 32772, - "src alpha saturate": 776 - }; - var invalidBlendCombinations = [ - "constant color, constant alpha", - "one minus constant color, constant alpha", - "constant color, one minus constant alpha", - "one minus constant color, one minus constant alpha", - "constant alpha, constant color", - "constant alpha, one minus constant color", - "one minus constant alpha, constant color", - "one minus constant alpha, one minus constant color" - ]; - var compareFuncs = { - "never": 512, - "less": 513, - "<": 513, - "equal": 514, - "=": 514, - "==": 514, - "===": 514, - "lequal": 515, - "<=": 515, - "greater": 516, - ">": 516, - "notequal": 517, - "!=": 517, - "!==": 517, - "gequal": 518, - ">=": 518, - "always": 519 - }; - var stencilOps = { - "0": 0, - "zero": 0, - "keep": 7680, - "replace": 7681, - "increment": 7682, - "decrement": 7683, - "increment wrap": 34055, - "decrement wrap": 34056, - "invert": 5386 - }; - var shaderType = { - "frag": GL_FRAGMENT_SHADER$1, - "vert": GL_VERTEX_SHADER$1 - }; - var orientationType = { - "cw": GL_CW, - "ccw": GL_CCW - }; - function isBufferArgs(x6) { - return Array.isArray(x6) || isTypedArray4(x6) || isNDArrayLike(x6); - } - function sortState(state2) { - return state2.sort(function(a4, b10) { - if (a4 === S_VIEWPORT) { - return -1; - } else if (b10 === S_VIEWPORT) { - return 1; - } - return a4 < b10 ? -1 : 1; - }); - } - function Declaration(thisDep, contextDep, propDep, append) { - this.thisDep = thisDep; - this.contextDep = contextDep; - this.propDep = propDep; - this.append = append; - } - function isStatic(decl) { - return decl && !(decl.thisDep || decl.contextDep || decl.propDep); - } - function createStaticDecl(append) { - return new Declaration(false, false, false, append); - } - function createDynamicDecl(dyn, append) { - var type2 = dyn.type; - if (type2 === DYN_FUNC$1) { - var numArgs = dyn.data.length; - return new Declaration(true, numArgs >= 1, numArgs >= 2, append); - } else if (type2 === DYN_THUNK) { - var data3 = dyn.data; - return new Declaration(data3.thisDep, data3.contextDep, data3.propDep, append); - } else if (type2 === DYN_CONSTANT$1) { - return new Declaration(false, false, false, append); - } else if (type2 === DYN_ARRAY$1) { - var thisDep = false; - var contextDep = false; - var propDep = false; - for (var i4 = 0; i4 < dyn.data.length; ++i4) { - var subDyn = dyn.data[i4]; - if (subDyn.type === DYN_PROP$1) { - propDep = true; - } else if (subDyn.type === DYN_CONTEXT$1) { - contextDep = true; - } else if (subDyn.type === DYN_STATE$1) { - thisDep = true; - } else if (subDyn.type === DYN_FUNC$1) { - thisDep = true; - var subArgs = subDyn.data; - if (subArgs >= 1) { - contextDep = true; - } - if (subArgs >= 2) { - propDep = true; - } - } else if (subDyn.type === DYN_THUNK) { - thisDep = thisDep || subDyn.data.thisDep; - contextDep = contextDep || subDyn.data.contextDep; - propDep = propDep || subDyn.data.propDep; - } - } - return new Declaration(thisDep, contextDep, propDep, append); - } else { - return new Declaration(type2 === DYN_STATE$1, type2 === DYN_CONTEXT$1, type2 === DYN_PROP$1, append); - } - } - var SCOPE_DECL = new Declaration(false, false, false, function() { - }); - function reglCore(gl2, stringStore, extensions, limits, bufferState, elementState, textureState, framebufferState, uniformState, attributeState, shaderState, drawState, contextState, timer3, config) { - var AttributeRecord2 = attributeState.Record; - var blendEquations = { - "add": 32774, - "subtract": 32778, - "reverse subtract": 32779 - }; - if (extensions.ext_blend_minmax) { - blendEquations.min = GL_MIN_EXT; - blendEquations.max = GL_MAX_EXT; - } - var extInstancing = extensions.angle_instanced_arrays; - var extDrawBuffers = extensions.webgl_draw_buffers; - var currentState = { - dirty: true, - profile: config.profile - }; - var nextState = {}; - var GL_STATE_NAMES = []; - var GL_FLAGS = {}; - var GL_VARIABLES = {}; - function propName(name) { - return name.replace(".", "_"); - } - function stateFlag(sname, cap, init) { - var name = propName(sname); - GL_STATE_NAMES.push(sname); - nextState[name] = currentState[name] = !!init; - GL_FLAGS[name] = cap; - } - function stateVariable(sname, func, init) { - var name = propName(sname); - GL_STATE_NAMES.push(sname); - if (Array.isArray(init)) { - currentState[name] = init.slice(); - nextState[name] = init.slice(); - } else { - currentState[name] = nextState[name] = init; - } - GL_VARIABLES[name] = func; - } - stateFlag(S_DITHER, GL_DITHER); - stateFlag(S_BLEND_ENABLE, GL_BLEND); - stateVariable(S_BLEND_COLOR, "blendColor", [0, 0, 0, 0]); - stateVariable(S_BLEND_EQUATION, "blendEquationSeparate", [GL_FUNC_ADD, GL_FUNC_ADD]); - stateVariable(S_BLEND_FUNC, "blendFuncSeparate", [GL_ONE, GL_ZERO, GL_ONE, GL_ZERO]); - stateFlag(S_DEPTH_ENABLE, GL_DEPTH_TEST, true); - stateVariable(S_DEPTH_FUNC, "depthFunc", GL_LESS); - stateVariable(S_DEPTH_RANGE, "depthRange", [0, 1]); - stateVariable(S_DEPTH_MASK, "depthMask", true); - stateVariable(S_COLOR_MASK, S_COLOR_MASK, [true, true, true, true]); - stateFlag(S_CULL_ENABLE, GL_CULL_FACE); - stateVariable(S_CULL_FACE, "cullFace", GL_BACK); - stateVariable(S_FRONT_FACE, S_FRONT_FACE, GL_CCW); - stateVariable(S_LINE_WIDTH, S_LINE_WIDTH, 1); - stateFlag(S_POLYGON_OFFSET_ENABLE, GL_POLYGON_OFFSET_FILL); - stateVariable(S_POLYGON_OFFSET_OFFSET, "polygonOffset", [0, 0]); - stateFlag(S_SAMPLE_ALPHA, GL_SAMPLE_ALPHA_TO_COVERAGE); - stateFlag(S_SAMPLE_ENABLE, GL_SAMPLE_COVERAGE); - stateVariable(S_SAMPLE_COVERAGE, "sampleCoverage", [1, false]); - stateFlag(S_STENCIL_ENABLE, GL_STENCIL_TEST); - stateVariable(S_STENCIL_MASK, "stencilMask", -1); - stateVariable(S_STENCIL_FUNC, "stencilFunc", [GL_ALWAYS, 0, -1]); - stateVariable(S_STENCIL_OPFRONT, "stencilOpSeparate", [GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP]); - stateVariable(S_STENCIL_OPBACK, "stencilOpSeparate", [GL_BACK, GL_KEEP, GL_KEEP, GL_KEEP]); - stateFlag(S_SCISSOR_ENABLE, GL_SCISSOR_TEST); - stateVariable(S_SCISSOR_BOX, "scissor", [0, 0, gl2.drawingBufferWidth, gl2.drawingBufferHeight]); - stateVariable(S_VIEWPORT, S_VIEWPORT, [0, 0, gl2.drawingBufferWidth, gl2.drawingBufferHeight]); - var sharedState = { - gl: gl2, - context: contextState, - strings: stringStore, - next: nextState, - current: currentState, - draw: drawState, - elements: elementState, - buffer: bufferState, - shader: shaderState, - attributes: attributeState.state, - vao: attributeState, - uniforms: uniformState, - framebuffer: framebufferState, - extensions, - timer: timer3, - isBufferArgs - }; - var sharedConstants = { - primTypes, - compareFuncs, - blendFuncs, - blendEquations, - stencilOps, - glTypes, - orientationType - }; - check$1.optional(function() { - sharedState.isArrayLike = isArrayLike2; - }); - if (extDrawBuffers) { - sharedConstants.backBuffer = [GL_BACK]; - sharedConstants.drawBuffer = loop(limits.maxDrawbuffers, function(i4) { - if (i4 === 0) { - return [0]; - } - return loop(i4, function(j4) { - return GL_COLOR_ATTACHMENT0$2 + j4; - }); - }); - } - var drawCallCounter = 0; - function createREGLEnvironment() { - var env = createEnvironment(); - var link = env.link; - var global2 = env.global; - env.id = drawCallCounter++; - env.batchId = "0"; - var SHARED = link(sharedState); - var shared = env.shared = { - props: "a0" - }; - Object.keys(sharedState).forEach(function(prop) { - shared[prop] = global2.def(SHARED, ".", prop); - }); - check$1.optional(function() { - env.CHECK = link(check$1); - env.commandStr = check$1.guessCommand(); - env.command = link(env.commandStr); - env.assert = function(block, pred, message) { - block("if(!(", pred, "))", this.CHECK, ".commandRaise(", link(message), ",", this.command, ");"); - }; - sharedConstants.invalidBlendCombinations = invalidBlendCombinations; - }); - var nextVars = env.next = {}; - var currentVars = env.current = {}; - Object.keys(GL_VARIABLES).forEach(function(variable) { - if (Array.isArray(currentState[variable])) { - nextVars[variable] = global2.def(shared.next, ".", variable); - currentVars[variable] = global2.def(shared.current, ".", variable); - } - }); - var constants = env.constants = {}; - Object.keys(sharedConstants).forEach(function(name) { - constants[name] = global2.def(JSON.stringify(sharedConstants[name])); - }); - env.invoke = function(block, x6) { - switch (x6.type) { - case DYN_FUNC$1: - var argList = [ - "this", - shared.context, - shared.props, - env.batchId - ]; - return block.def(link(x6.data), ".call(", argList.slice(0, Math.max(x6.data.length + 1, 4)), ")"); - case DYN_PROP$1: - return block.def(shared.props, x6.data); - case DYN_CONTEXT$1: - return block.def(shared.context, x6.data); - case DYN_STATE$1: - return block.def("this", x6.data); - case DYN_THUNK: - x6.data.append(env, block); - return x6.data.ref; - case DYN_CONSTANT$1: - return x6.data.toString(); - case DYN_ARRAY$1: - return x6.data.map(function(y5) { - return env.invoke(block, y5); - }); - } - }; - env.attribCache = {}; - var scopeAttribs = {}; - env.scopeAttrib = function(name) { - var id = stringStore.id(name); - if (id in scopeAttribs) { - return scopeAttribs[id]; - } - var binding = attributeState.scope[id]; - if (!binding) { - binding = attributeState.scope[id] = new AttributeRecord2(); - } - var result = scopeAttribs[id] = link(binding); - return result; - }; - return env; - } - function parseProfile(options) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - var profileEnable; - if (S_PROFILE in staticOptions) { - var value2 = !!staticOptions[S_PROFILE]; - profileEnable = createStaticDecl(function(env, scope) { - return value2; - }); - profileEnable.enable = value2; - } else if (S_PROFILE in dynamicOptions) { - var dyn = dynamicOptions[S_PROFILE]; - profileEnable = createDynamicDecl(dyn, function(env, scope) { - return env.invoke(scope, dyn); - }); - } - return profileEnable; - } - function parseFramebuffer(options, env) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - if (S_FRAMEBUFFER in staticOptions) { - var framebuffer = staticOptions[S_FRAMEBUFFER]; - if (framebuffer) { - framebuffer = framebufferState.getFramebuffer(framebuffer); - check$1.command(framebuffer, "invalid framebuffer object"); - return createStaticDecl(function(env2, block) { - var FRAMEBUFFER = env2.link(framebuffer); - var shared = env2.shared; - block.set(shared.framebuffer, ".next", FRAMEBUFFER); - var CONTEXT = shared.context; - block.set(CONTEXT, "." + S_FRAMEBUFFER_WIDTH, FRAMEBUFFER + ".width"); - block.set(CONTEXT, "." + S_FRAMEBUFFER_HEIGHT, FRAMEBUFFER + ".height"); - return FRAMEBUFFER; - }); - } else { - return createStaticDecl(function(env2, scope) { - var shared = env2.shared; - scope.set(shared.framebuffer, ".next", "null"); - var CONTEXT = shared.context; - scope.set(CONTEXT, "." + S_FRAMEBUFFER_WIDTH, CONTEXT + "." + S_DRAWINGBUFFER_WIDTH); - scope.set(CONTEXT, "." + S_FRAMEBUFFER_HEIGHT, CONTEXT + "." + S_DRAWINGBUFFER_HEIGHT); - return "null"; - }); - } - } else if (S_FRAMEBUFFER in dynamicOptions) { - var dyn = dynamicOptions[S_FRAMEBUFFER]; - return createDynamicDecl(dyn, function(env2, scope) { - var FRAMEBUFFER_FUNC = env2.invoke(scope, dyn); - var shared = env2.shared; - var FRAMEBUFFER_STATE = shared.framebuffer; - var FRAMEBUFFER = scope.def(FRAMEBUFFER_STATE, ".getFramebuffer(", FRAMEBUFFER_FUNC, ")"); - check$1.optional(function() { - env2.assert(scope, "!" + FRAMEBUFFER_FUNC + "||" + FRAMEBUFFER, "invalid framebuffer object"); - }); - scope.set(FRAMEBUFFER_STATE, ".next", FRAMEBUFFER); - var CONTEXT = shared.context; - scope.set(CONTEXT, "." + S_FRAMEBUFFER_WIDTH, FRAMEBUFFER + "?" + FRAMEBUFFER + ".width:" + CONTEXT + "." + S_DRAWINGBUFFER_WIDTH); - scope.set(CONTEXT, "." + S_FRAMEBUFFER_HEIGHT, FRAMEBUFFER + "?" + FRAMEBUFFER + ".height:" + CONTEXT + "." + S_DRAWINGBUFFER_HEIGHT); - return FRAMEBUFFER; - }); - } else { - return null; - } - } - function parseViewportScissor(options, framebuffer, env) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - function parseBox(param) { - if (param in staticOptions) { - var box2 = staticOptions[param]; - check$1.commandType(box2, "object", "invalid " + param, env.commandStr); - var isStatic2 = true; - var x6 = box2.x | 0; - var y5 = box2.y | 0; - var w4, h3; - if ("width" in box2) { - w4 = box2.width | 0; - check$1.command(w4 >= 0, "invalid " + param, env.commandStr); - } else { - isStatic2 = false; - } - if ("height" in box2) { - h3 = box2.height | 0; - check$1.command(h3 >= 0, "invalid " + param, env.commandStr); - } else { - isStatic2 = false; - } - return new Declaration(!isStatic2 && framebuffer && framebuffer.thisDep, !isStatic2 && framebuffer && framebuffer.contextDep, !isStatic2 && framebuffer && framebuffer.propDep, function(env2, scope) { - var CONTEXT = env2.shared.context; - var BOX_W = w4; - if (!("width" in box2)) { - BOX_W = scope.def(CONTEXT, ".", S_FRAMEBUFFER_WIDTH, "-", x6); - } - var BOX_H = h3; - if (!("height" in box2)) { - BOX_H = scope.def(CONTEXT, ".", S_FRAMEBUFFER_HEIGHT, "-", y5); - } - return [x6, y5, BOX_W, BOX_H]; - }); - } else if (param in dynamicOptions) { - var dynBox = dynamicOptions[param]; - var result = createDynamicDecl(dynBox, function(env2, scope) { - var BOX = env2.invoke(scope, dynBox); - check$1.optional(function() { - env2.assert(scope, BOX + "&&typeof " + BOX + '==="object"', "invalid " + param); - }); - var CONTEXT = env2.shared.context; - var BOX_X = scope.def(BOX, ".x|0"); - var BOX_Y = scope.def(BOX, ".y|0"); - var BOX_W = scope.def('"width" in ', BOX, "?", BOX, ".width|0:", "(", CONTEXT, ".", S_FRAMEBUFFER_WIDTH, "-", BOX_X, ")"); - var BOX_H = scope.def('"height" in ', BOX, "?", BOX, ".height|0:", "(", CONTEXT, ".", S_FRAMEBUFFER_HEIGHT, "-", BOX_Y, ")"); - check$1.optional(function() { - env2.assert(scope, BOX_W + ">=0&&" + BOX_H + ">=0", "invalid " + param); - }); - return [BOX_X, BOX_Y, BOX_W, BOX_H]; - }); - if (framebuffer) { - result.thisDep = result.thisDep || framebuffer.thisDep; - result.contextDep = result.contextDep || framebuffer.contextDep; - result.propDep = result.propDep || framebuffer.propDep; - } - return result; - } else if (framebuffer) { - return new Declaration(framebuffer.thisDep, framebuffer.contextDep, framebuffer.propDep, function(env2, scope) { - var CONTEXT = env2.shared.context; - return [ - 0, - 0, - scope.def(CONTEXT, ".", S_FRAMEBUFFER_WIDTH), - scope.def(CONTEXT, ".", S_FRAMEBUFFER_HEIGHT) - ]; - }); - } else { - return null; - } - } - var viewport = parseBox(S_VIEWPORT); - if (viewport) { - var prevViewport = viewport; - viewport = new Declaration(viewport.thisDep, viewport.contextDep, viewport.propDep, function(env2, scope) { - var VIEWPORT = prevViewport.append(env2, scope); - var CONTEXT = env2.shared.context; - scope.set(CONTEXT, "." + S_VIEWPORT_WIDTH, VIEWPORT[2]); - scope.set(CONTEXT, "." + S_VIEWPORT_HEIGHT, VIEWPORT[3]); - return VIEWPORT; - }); - } - return { - viewport, - scissor_box: parseBox(S_SCISSOR_BOX) - }; - } - function parseAttribLocations(options, attributes) { - var staticOptions = options.static; - var staticProgram = typeof staticOptions[S_FRAG] === "string" && typeof staticOptions[S_VERT] === "string"; - if (staticProgram) { - if (Object.keys(attributes.dynamic).length > 0) { - return null; - } - var staticAttributes = attributes.static; - var sAttributes = Object.keys(staticAttributes); - if (sAttributes.length > 0 && typeof staticAttributes[sAttributes[0]] === "number") { - var bindings = []; - for (var i4 = 0; i4 < sAttributes.length; ++i4) { - check$1(typeof staticAttributes[sAttributes[i4]] === "number", "must specify all vertex attribute locations when using vaos"); - bindings.push([staticAttributes[sAttributes[i4]] | 0, sAttributes[i4]]); - } - return bindings; - } - } - return null; - } - function parseProgram(options, env, attribLocations) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - function parseShader(name) { - if (name in staticOptions) { - var id = stringStore.id(staticOptions[name]); - check$1.optional(function() { - shaderState.shader(shaderType[name], id, check$1.guessCommand()); - }); - var result = createStaticDecl(function() { - return id; - }); - result.id = id; - return result; - } else if (name in dynamicOptions) { - var dyn = dynamicOptions[name]; - return createDynamicDecl(dyn, function(env2, scope) { - var str8 = env2.invoke(scope, dyn); - var id2 = scope.def(env2.shared.strings, ".id(", str8, ")"); - check$1.optional(function() { - scope(env2.shared.shader, ".shader(", shaderType[name], ",", id2, ",", env2.command, ");"); - }); - return id2; - }); - } - return null; - } - var frag = parseShader(S_FRAG); - var vert = parseShader(S_VERT); - var program = null; - var progVar; - if (isStatic(frag) && isStatic(vert)) { - program = shaderState.program(vert.id, frag.id, null, attribLocations); - progVar = createStaticDecl(function(env2, scope) { - return env2.link(program); - }); - } else { - progVar = new Declaration(frag && frag.thisDep || vert && vert.thisDep, frag && frag.contextDep || vert && vert.contextDep, frag && frag.propDep || vert && vert.propDep, function(env2, scope) { - var SHADER_STATE = env2.shared.shader; - var fragId; - if (frag) { - fragId = frag.append(env2, scope); - } else { - fragId = scope.def(SHADER_STATE, ".", S_FRAG); - } - var vertId; - if (vert) { - vertId = vert.append(env2, scope); - } else { - vertId = scope.def(SHADER_STATE, ".", S_VERT); - } - var progDef = SHADER_STATE + ".program(" + vertId + "," + fragId; - check$1.optional(function() { - progDef += "," + env2.command; - }); - return scope.def(progDef + ")"); - }); - } - return { - frag, - vert, - progVar, - program - }; - } - function parseDraw(options, env) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - function parseElements() { - if (S_ELEMENTS in staticOptions) { - var elements2 = staticOptions[S_ELEMENTS]; - if (isBufferArgs(elements2)) { - elements2 = elementState.getElements(elementState.create(elements2, true)); - } else if (elements2) { - elements2 = elementState.getElements(elements2); - check$1.command(elements2, "invalid elements", env.commandStr); - } - var result = createStaticDecl(function(env2, scope) { - if (elements2) { - var result2 = env2.link(elements2); - env2.ELEMENTS = result2; - return result2; - } - env2.ELEMENTS = null; - return null; - }); - result.value = elements2; - return result; - } else if (S_ELEMENTS in dynamicOptions) { - var dyn = dynamicOptions[S_ELEMENTS]; - return createDynamicDecl(dyn, function(env2, scope) { - var shared = env2.shared; - var IS_BUFFER_ARGS = shared.isBufferArgs; - var ELEMENT_STATE2 = shared.elements; - var elementDefn = env2.invoke(scope, dyn); - var elements3 = scope.def("null"); - var elementStream = scope.def(IS_BUFFER_ARGS, "(", elementDefn, ")"); - var ifte = env2.cond(elementStream).then(elements3, "=", ELEMENT_STATE2, ".createStream(", elementDefn, ");").else(elements3, "=", ELEMENT_STATE2, ".getElements(", elementDefn, ");"); - check$1.optional(function() { - env2.assert(ifte.else, "!" + elementDefn + "||" + elements3, "invalid elements"); - }); - scope.entry(ifte); - scope.exit(env2.cond(elementStream).then(ELEMENT_STATE2, ".destroyStream(", elements3, ");")); - env2.ELEMENTS = elements3; - return elements3; - }); - } - return null; - } - var elements = parseElements(); - function parsePrimitive() { - if (S_PRIMITIVE in staticOptions) { - var primitive = staticOptions[S_PRIMITIVE]; - check$1.commandParameter(primitive, primTypes, "invalid primitve", env.commandStr); - return createStaticDecl(function(env2, scope) { - return primTypes[primitive]; - }); - } else if (S_PRIMITIVE in dynamicOptions) { - var dynPrimitive = dynamicOptions[S_PRIMITIVE]; - return createDynamicDecl(dynPrimitive, function(env2, scope) { - var PRIM_TYPES = env2.constants.primTypes; - var prim = env2.invoke(scope, dynPrimitive); - check$1.optional(function() { - env2.assert(scope, prim + " in " + PRIM_TYPES, "invalid primitive, must be one of " + Object.keys(primTypes)); - }); - return scope.def(PRIM_TYPES, "[", prim, "]"); - }); - } else if (elements) { - if (isStatic(elements)) { - if (elements.value) { - return createStaticDecl(function(env2, scope) { - return scope.def(env2.ELEMENTS, ".primType"); - }); - } else { - return createStaticDecl(function() { - return GL_TRIANGLES$1; - }); - } - } else { - return new Declaration(elements.thisDep, elements.contextDep, elements.propDep, function(env2, scope) { - var elements2 = env2.ELEMENTS; - return scope.def(elements2, "?", elements2, ".primType:", GL_TRIANGLES$1); - }); - } - } - return null; - } - function parseParam(param, isOffset) { - if (param in staticOptions) { - var value2 = staticOptions[param] | 0; - check$1.command(!isOffset || value2 >= 0, "invalid " + param, env.commandStr); - return createStaticDecl(function(env2, scope) { - if (isOffset) { - env2.OFFSET = value2; - } - return value2; - }); - } else if (param in dynamicOptions) { - var dynValue = dynamicOptions[param]; - return createDynamicDecl(dynValue, function(env2, scope) { - var result = env2.invoke(scope, dynValue); - if (isOffset) { - env2.OFFSET = result; - check$1.optional(function() { - env2.assert(scope, result + ">=0", "invalid " + param); - }); - } - return result; - }); - } else if (isOffset && elements) { - return createStaticDecl(function(env2, scope) { - env2.OFFSET = "0"; - return 0; - }); - } - return null; - } - var OFFSET = parseParam(S_OFFSET, true); - function parseVertCount() { - if (S_COUNT in staticOptions) { - var count2 = staticOptions[S_COUNT] | 0; - check$1.command(typeof count2 === "number" && count2 >= 0, "invalid vertex count", env.commandStr); - return createStaticDecl(function() { - return count2; - }); - } else if (S_COUNT in dynamicOptions) { - var dynCount = dynamicOptions[S_COUNT]; - return createDynamicDecl(dynCount, function(env2, scope) { - var result2 = env2.invoke(scope, dynCount); - check$1.optional(function() { - env2.assert(scope, "typeof " + result2 + '==="number"&&' + result2 + ">=0&&" + result2 + "===(" + result2 + "|0)", "invalid vertex count"); - }); - return result2; - }); - } else if (elements) { - if (isStatic(elements)) { - if (elements) { - if (OFFSET) { - return new Declaration(OFFSET.thisDep, OFFSET.contextDep, OFFSET.propDep, function(env2, scope) { - var result2 = scope.def(env2.ELEMENTS, ".vertCount-", env2.OFFSET); - check$1.optional(function() { - env2.assert(scope, result2 + ">=0", "invalid vertex offset/element buffer too small"); - }); - return result2; - }); - } else { - return createStaticDecl(function(env2, scope) { - return scope.def(env2.ELEMENTS, ".vertCount"); - }); - } - } else { - var result = createStaticDecl(function() { - return -1; - }); - check$1.optional(function() { - result.MISSING = true; - }); - return result; - } - } else { - var variable = new Declaration(elements.thisDep || OFFSET.thisDep, elements.contextDep || OFFSET.contextDep, elements.propDep || OFFSET.propDep, function(env2, scope) { - var elements2 = env2.ELEMENTS; - if (env2.OFFSET) { - return scope.def(elements2, "?", elements2, ".vertCount-", env2.OFFSET, ":-1"); - } - return scope.def(elements2, "?", elements2, ".vertCount:-1"); - }); - check$1.optional(function() { - variable.DYNAMIC = true; - }); - return variable; - } - } - return null; - } - return { - elements, - primitive: parsePrimitive(), - count: parseVertCount(), - instances: parseParam(S_INSTANCES, false), - offset: OFFSET - }; - } - function parseGLState(options, env) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - var STATE = {}; - GL_STATE_NAMES.forEach(function(prop) { - var param = propName(prop); - function parseParam(parseStatic, parseDynamic) { - if (prop in staticOptions) { - var value2 = parseStatic(staticOptions[prop]); - STATE[param] = createStaticDecl(function() { - return value2; - }); - } else if (prop in dynamicOptions) { - var dyn = dynamicOptions[prop]; - STATE[param] = createDynamicDecl(dyn, function(env2, scope) { - return parseDynamic(env2, scope, env2.invoke(scope, dyn)); - }); - } - } - switch (prop) { - case S_CULL_ENABLE: - case S_BLEND_ENABLE: - case S_DITHER: - case S_STENCIL_ENABLE: - case S_DEPTH_ENABLE: - case S_SCISSOR_ENABLE: - case S_POLYGON_OFFSET_ENABLE: - case S_SAMPLE_ALPHA: - case S_SAMPLE_ENABLE: - case S_DEPTH_MASK: - return parseParam(function(value2) { - check$1.commandType(value2, "boolean", prop, env.commandStr); - return value2; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, "typeof " + value2 + '==="boolean"', "invalid flag " + prop, env2.commandStr); - }); - return value2; - }); - case S_DEPTH_FUNC: - return parseParam(function(value2) { - check$1.commandParameter(value2, compareFuncs, "invalid " + prop, env.commandStr); - return compareFuncs[value2]; - }, function(env2, scope, value2) { - var COMPARE_FUNCS = env2.constants.compareFuncs; - check$1.optional(function() { - env2.assert(scope, value2 + " in " + COMPARE_FUNCS, "invalid " + prop + ", must be one of " + Object.keys(compareFuncs)); - }); - return scope.def(COMPARE_FUNCS, "[", value2, "]"); - }); - case S_DEPTH_RANGE: - return parseParam(function(value2) { - check$1.command(isArrayLike2(value2) && value2.length === 2 && typeof value2[0] === "number" && typeof value2[1] === "number" && value2[0] <= value2[1], "depth range is 2d array", env.commandStr); - return value2; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, env2.shared.isArrayLike + "(" + value2 + ")&&" + value2 + ".length===2&&typeof " + value2 + '[0]==="number"&&typeof ' + value2 + '[1]==="number"&&' + value2 + "[0]<=" + value2 + "[1]", "depth range must be a 2d array"); - }); - var Z_NEAR = scope.def("+", value2, "[0]"); - var Z_FAR = scope.def("+", value2, "[1]"); - return [Z_NEAR, Z_FAR]; - }); - case S_BLEND_FUNC: - return parseParam(function(value2) { - check$1.commandType(value2, "object", "blend.func", env.commandStr); - var srcRGB = "srcRGB" in value2 ? value2.srcRGB : value2.src; - var srcAlpha = "srcAlpha" in value2 ? value2.srcAlpha : value2.src; - var dstRGB = "dstRGB" in value2 ? value2.dstRGB : value2.dst; - var dstAlpha = "dstAlpha" in value2 ? value2.dstAlpha : value2.dst; - check$1.commandParameter(srcRGB, blendFuncs, param + ".srcRGB", env.commandStr); - check$1.commandParameter(srcAlpha, blendFuncs, param + ".srcAlpha", env.commandStr); - check$1.commandParameter(dstRGB, blendFuncs, param + ".dstRGB", env.commandStr); - check$1.commandParameter(dstAlpha, blendFuncs, param + ".dstAlpha", env.commandStr); - check$1.command(invalidBlendCombinations.indexOf(srcRGB + ", " + dstRGB) === -1, "unallowed blending combination (srcRGB, dstRGB) = (" + srcRGB + ", " + dstRGB + ")", env.commandStr); - return [ - blendFuncs[srcRGB], - blendFuncs[dstRGB], - blendFuncs[srcAlpha], - blendFuncs[dstAlpha] - ]; - }, function(env2, scope, value2) { - var BLEND_FUNCS = env2.constants.blendFuncs; - check$1.optional(function() { - env2.assert(scope, value2 + "&&typeof " + value2 + '==="object"', "invalid blend func, must be an object"); - }); - function read(prefix2, suffix) { - var func = scope.def('"', prefix2, suffix, '" in ', value2, "?", value2, ".", prefix2, suffix, ":", value2, ".", prefix2); - check$1.optional(function() { - env2.assert(scope, func + " in " + BLEND_FUNCS, "invalid " + prop + "." + prefix2 + suffix + ", must be one of " + Object.keys(blendFuncs)); - }); - return func; - } - var srcRGB = read("src", "RGB"); - var dstRGB = read("dst", "RGB"); - check$1.optional(function() { - var INVALID_BLEND_COMBINATIONS = env2.constants.invalidBlendCombinations; - env2.assert(scope, INVALID_BLEND_COMBINATIONS + ".indexOf(" + srcRGB + '+", "+' + dstRGB + ") === -1 ", "unallowed blending combination for (srcRGB, dstRGB)"); - }); - var SRC_RGB = scope.def(BLEND_FUNCS, "[", srcRGB, "]"); - var SRC_ALPHA = scope.def(BLEND_FUNCS, "[", read("src", "Alpha"), "]"); - var DST_RGB = scope.def(BLEND_FUNCS, "[", dstRGB, "]"); - var DST_ALPHA = scope.def(BLEND_FUNCS, "[", read("dst", "Alpha"), "]"); - return [SRC_RGB, DST_RGB, SRC_ALPHA, DST_ALPHA]; - }); - case S_BLEND_EQUATION: - return parseParam(function(value2) { - if (typeof value2 === "string") { - check$1.commandParameter(value2, blendEquations, "invalid " + prop, env.commandStr); - return [ - blendEquations[value2], - blendEquations[value2] - ]; - } else if (typeof value2 === "object") { - check$1.commandParameter(value2.rgb, blendEquations, prop + ".rgb", env.commandStr); - check$1.commandParameter(value2.alpha, blendEquations, prop + ".alpha", env.commandStr); - return [ - blendEquations[value2.rgb], - blendEquations[value2.alpha] - ]; - } else { - check$1.commandRaise("invalid blend.equation", env.commandStr); - } - }, function(env2, scope, value2) { - var BLEND_EQUATIONS = env2.constants.blendEquations; - var RGB = scope.def(); - var ALPHA = scope.def(); - var ifte = env2.cond("typeof ", value2, '==="string"'); - check$1.optional(function() { - function checkProp(block, name, value3) { - env2.assert(block, value3 + " in " + BLEND_EQUATIONS, "invalid " + name + ", must be one of " + Object.keys(blendEquations)); - } - checkProp(ifte.then, prop, value2); - env2.assert(ifte.else, value2 + "&&typeof " + value2 + '==="object"', "invalid " + prop); - checkProp(ifte.else, prop + ".rgb", value2 + ".rgb"); - checkProp(ifte.else, prop + ".alpha", value2 + ".alpha"); - }); - ifte.then(RGB, "=", ALPHA, "=", BLEND_EQUATIONS, "[", value2, "];"); - ifte.else(RGB, "=", BLEND_EQUATIONS, "[", value2, ".rgb];", ALPHA, "=", BLEND_EQUATIONS, "[", value2, ".alpha];"); - scope(ifte); - return [RGB, ALPHA]; - }); - case S_BLEND_COLOR: - return parseParam(function(value2) { - check$1.command(isArrayLike2(value2) && value2.length === 4, "blend.color must be a 4d array", env.commandStr); - return loop(4, function(i4) { - return +value2[i4]; - }); - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, env2.shared.isArrayLike + "(" + value2 + ")&&" + value2 + ".length===4", "blend.color must be a 4d array"); - }); - return loop(4, function(i4) { - return scope.def("+", value2, "[", i4, "]"); - }); - }); - case S_STENCIL_MASK: - return parseParam(function(value2) { - check$1.commandType(value2, "number", param, env.commandStr); - return value2 | 0; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, "typeof " + value2 + '==="number"', "invalid stencil.mask"); - }); - return scope.def(value2, "|0"); - }); - case S_STENCIL_FUNC: - return parseParam(function(value2) { - check$1.commandType(value2, "object", param, env.commandStr); - var cmp = value2.cmp || "keep"; - var ref = value2.ref || 0; - var mask = "mask" in value2 ? value2.mask : -1; - check$1.commandParameter(cmp, compareFuncs, prop + ".cmp", env.commandStr); - check$1.commandType(ref, "number", prop + ".ref", env.commandStr); - check$1.commandType(mask, "number", prop + ".mask", env.commandStr); - return [ - compareFuncs[cmp], - ref, - mask - ]; - }, function(env2, scope, value2) { - var COMPARE_FUNCS = env2.constants.compareFuncs; - check$1.optional(function() { - function assert() { - env2.assert(scope, Array.prototype.join.call(arguments, ""), "invalid stencil.func"); - } - assert(value2 + "&&typeof ", value2, '==="object"'); - assert('!("cmp" in ', value2, ")||(", value2, ".cmp in ", COMPARE_FUNCS, ")"); - }); - var cmp = scope.def('"cmp" in ', value2, "?", COMPARE_FUNCS, "[", value2, ".cmp]", ":", GL_KEEP); - var ref = scope.def(value2, ".ref|0"); - var mask = scope.def('"mask" in ', value2, "?", value2, ".mask|0:-1"); - return [cmp, ref, mask]; - }); - case S_STENCIL_OPFRONT: - case S_STENCIL_OPBACK: - return parseParam(function(value2) { - check$1.commandType(value2, "object", param, env.commandStr); - var fail = value2.fail || "keep"; - var zfail = value2.zfail || "keep"; - var zpass = value2.zpass || "keep"; - check$1.commandParameter(fail, stencilOps, prop + ".fail", env.commandStr); - check$1.commandParameter(zfail, stencilOps, prop + ".zfail", env.commandStr); - check$1.commandParameter(zpass, stencilOps, prop + ".zpass", env.commandStr); - return [ - prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT, - stencilOps[fail], - stencilOps[zfail], - stencilOps[zpass] - ]; - }, function(env2, scope, value2) { - var STENCIL_OPS = env2.constants.stencilOps; - check$1.optional(function() { - env2.assert(scope, value2 + "&&typeof " + value2 + '==="object"', "invalid " + prop); - }); - function read(name) { - check$1.optional(function() { - env2.assert(scope, '!("' + name + '" in ' + value2 + ")||(" + value2 + "." + name + " in " + STENCIL_OPS + ")", "invalid " + prop + "." + name + ", must be one of " + Object.keys(stencilOps)); - }); - return scope.def('"', name, '" in ', value2, "?", STENCIL_OPS, "[", value2, ".", name, "]:", GL_KEEP); - } - return [ - prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT, - read("fail"), - read("zfail"), - read("zpass") - ]; - }); - case S_POLYGON_OFFSET_OFFSET: - return parseParam(function(value2) { - check$1.commandType(value2, "object", param, env.commandStr); - var factor = value2.factor | 0; - var units = value2.units | 0; - check$1.commandType(factor, "number", param + ".factor", env.commandStr); - check$1.commandType(units, "number", param + ".units", env.commandStr); - return [factor, units]; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, value2 + "&&typeof " + value2 + '==="object"', "invalid " + prop); - }); - var FACTOR = scope.def(value2, ".factor|0"); - var UNITS = scope.def(value2, ".units|0"); - return [FACTOR, UNITS]; - }); - case S_CULL_FACE: - return parseParam(function(value2) { - var face = 0; - if (value2 === "front") { - face = GL_FRONT; - } else if (value2 === "back") { - face = GL_BACK; - } - check$1.command(!!face, param, env.commandStr); - return face; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, value2 + '==="front"||' + value2 + '==="back"', "invalid cull.face"); - }); - return scope.def(value2, '==="front"?', GL_FRONT, ":", GL_BACK); - }); - case S_LINE_WIDTH: - return parseParam(function(value2) { - check$1.command(typeof value2 === "number" && value2 >= limits.lineWidthDims[0] && value2 <= limits.lineWidthDims[1], "invalid line width, must be a positive number between " + limits.lineWidthDims[0] + " and " + limits.lineWidthDims[1], env.commandStr); - return value2; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, "typeof " + value2 + '==="number"&&' + value2 + ">=" + limits.lineWidthDims[0] + "&&" + value2 + "<=" + limits.lineWidthDims[1], "invalid line width"); - }); - return value2; - }); - case S_FRONT_FACE: - return parseParam(function(value2) { - check$1.commandParameter(value2, orientationType, param, env.commandStr); - return orientationType[value2]; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, value2 + '==="cw"||' + value2 + '==="ccw"', "invalid frontFace, must be one of cw,ccw"); - }); - return scope.def(value2 + '==="cw"?' + GL_CW + ":" + GL_CCW); - }); - case S_COLOR_MASK: - return parseParam(function(value2) { - check$1.command(isArrayLike2(value2) && value2.length === 4, "color.mask must be length 4 array", env.commandStr); - return value2.map(function(v3) { - return !!v3; - }); - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, env2.shared.isArrayLike + "(" + value2 + ")&&" + value2 + ".length===4", "invalid color.mask"); - }); - return loop(4, function(i4) { - return "!!" + value2 + "[" + i4 + "]"; - }); - }); - case S_SAMPLE_COVERAGE: - return parseParam(function(value2) { - check$1.command(typeof value2 === "object" && value2, param, env.commandStr); - var sampleValue = "value" in value2 ? value2.value : 1; - var sampleInvert = !!value2.invert; - check$1.command(typeof sampleValue === "number" && sampleValue >= 0 && sampleValue <= 1, "sample.coverage.value must be a number between 0 and 1", env.commandStr); - return [sampleValue, sampleInvert]; - }, function(env2, scope, value2) { - check$1.optional(function() { - env2.assert(scope, value2 + "&&typeof " + value2 + '==="object"', "invalid sample.coverage"); - }); - var VALUE = scope.def('"value" in ', value2, "?+", value2, ".value:1"); - var INVERT = scope.def("!!", value2, ".invert"); - return [VALUE, INVERT]; - }); - } - }); - return STATE; - } - function parseUniforms(uniforms, env) { - var staticUniforms = uniforms.static; - var dynamicUniforms = uniforms.dynamic; - var UNIFORMS = {}; - Object.keys(staticUniforms).forEach(function(name) { - var value2 = staticUniforms[name]; - var result; - if (typeof value2 === "number" || typeof value2 === "boolean") { - result = createStaticDecl(function() { - return value2; - }); - } else if (typeof value2 === "function") { - var reglType = value2._reglType; - if (reglType === "texture2d" || reglType === "textureCube") { - result = createStaticDecl(function(env2) { - return env2.link(value2); - }); - } else if (reglType === "framebuffer" || reglType === "framebufferCube") { - check$1.command(value2.color.length > 0, 'missing color attachment for framebuffer sent to uniform "' + name + '"', env.commandStr); - result = createStaticDecl(function(env2) { - return env2.link(value2.color[0]); - }); - } else { - check$1.commandRaise('invalid data for uniform "' + name + '"', env.commandStr); - } - } else if (isArrayLike2(value2)) { - result = createStaticDecl(function(env2) { - var ITEM = env2.global.def("[", loop(value2.length, function(i4) { - check$1.command(typeof value2[i4] === "number" || typeof value2[i4] === "boolean", "invalid uniform " + name, env2.commandStr); - return value2[i4]; - }), "]"); - return ITEM; - }); - } else { - check$1.commandRaise('invalid or missing data for uniform "' + name + '"', env.commandStr); - } - result.value = value2; - UNIFORMS[name] = result; - }); - Object.keys(dynamicUniforms).forEach(function(key) { - var dyn = dynamicUniforms[key]; - UNIFORMS[key] = createDynamicDecl(dyn, function(env2, scope) { - return env2.invoke(scope, dyn); - }); - }); - return UNIFORMS; - } - function parseAttributes(attributes, env) { - var staticAttributes = attributes.static; - var dynamicAttributes = attributes.dynamic; - var attributeDefs = {}; - Object.keys(staticAttributes).forEach(function(attribute) { - var value2 = staticAttributes[attribute]; - var id = stringStore.id(attribute); - var record = new AttributeRecord2(); - if (isBufferArgs(value2)) { - record.state = ATTRIB_STATE_POINTER; - record.buffer = bufferState.getBuffer(bufferState.create(value2, GL_ARRAY_BUFFER$2, false, true)); - record.type = 0; - } else { - var buffer = bufferState.getBuffer(value2); - if (buffer) { - record.state = ATTRIB_STATE_POINTER; - record.buffer = buffer; - record.type = 0; - } else { - check$1.command(typeof value2 === "object" && value2, "invalid data for attribute " + attribute, env.commandStr); - if ("constant" in value2) { - var constant2 = value2.constant; - record.buffer = "null"; - record.state = ATTRIB_STATE_CONSTANT; - if (typeof constant2 === "number") { - record.x = constant2; - } else { - check$1.command(isArrayLike2(constant2) && constant2.length > 0 && constant2.length <= 4, "invalid constant for attribute " + attribute, env.commandStr); - CUTE_COMPONENTS.forEach(function(c5, i4) { - if (i4 < constant2.length) { - record[c5] = constant2[i4]; - } - }); - } - } else { - if (isBufferArgs(value2.buffer)) { - buffer = bufferState.getBuffer(bufferState.create(value2.buffer, GL_ARRAY_BUFFER$2, false, true)); - } else { - buffer = bufferState.getBuffer(value2.buffer); - } - check$1.command(!!buffer, 'missing buffer for attribute "' + attribute + '"', env.commandStr); - var offset = value2.offset | 0; - check$1.command(offset >= 0, 'invalid offset for attribute "' + attribute + '"', env.commandStr); - var stride = value2.stride | 0; - check$1.command(stride >= 0 && stride < 256, 'invalid stride for attribute "' + attribute + '", must be integer betweeen [0, 255]', env.commandStr); - var size2 = value2.size | 0; - check$1.command(!("size" in value2) || size2 > 0 && size2 <= 4, 'invalid size for attribute "' + attribute + '", must be 1,2,3,4', env.commandStr); - var normalized = !!value2.normalized; - var type2 = 0; - if ("type" in value2) { - check$1.commandParameter(value2.type, glTypes, "invalid type for attribute " + attribute, env.commandStr); - type2 = glTypes[value2.type]; - } - var divisor = value2.divisor | 0; - if ("divisor" in value2) { - check$1.command(divisor === 0 || extInstancing, 'cannot specify divisor for attribute "' + attribute + '", instancing not supported', env.commandStr); - check$1.command(divisor >= 0, 'invalid divisor for attribute "' + attribute + '"', env.commandStr); - } - check$1.optional(function() { - var command = env.commandStr; - var VALID_KEYS = [ - "buffer", - "offset", - "divisor", - "normalized", - "type", - "size", - "stride" - ]; - Object.keys(value2).forEach(function(prop) { - check$1.command(VALID_KEYS.indexOf(prop) >= 0, 'unknown parameter "' + prop + '" for attribute pointer "' + attribute + '" (valid parameters are ' + VALID_KEYS + ")", command); - }); - }); - record.buffer = buffer; - record.state = ATTRIB_STATE_POINTER; - record.size = size2; - record.normalized = normalized; - record.type = type2 || buffer.dtype; - record.offset = offset; - record.stride = stride; - record.divisor = divisor; - } - } - } - attributeDefs[attribute] = createStaticDecl(function(env2, scope) { - var cache3 = env2.attribCache; - if (id in cache3) { - return cache3[id]; - } - var result = { - isStream: false - }; - Object.keys(record).forEach(function(key) { - result[key] = record[key]; - }); - if (record.buffer) { - result.buffer = env2.link(record.buffer); - result.type = result.type || result.buffer + ".dtype"; - } - cache3[id] = result; - return result; - }); - }); - Object.keys(dynamicAttributes).forEach(function(attribute) { - var dyn = dynamicAttributes[attribute]; - function appendAttributeCode(env2, block) { - var VALUE = env2.invoke(block, dyn); - var shared = env2.shared; - var constants = env2.constants; - var IS_BUFFER_ARGS = shared.isBufferArgs; - var BUFFER_STATE = shared.buffer; - check$1.optional(function() { - env2.assert(block, VALUE + "&&(typeof " + VALUE + '==="object"||typeof ' + VALUE + '==="function")&&(' + IS_BUFFER_ARGS + "(" + VALUE + ")||" + BUFFER_STATE + ".getBuffer(" + VALUE + ")||" + BUFFER_STATE + ".getBuffer(" + VALUE + ".buffer)||" + IS_BUFFER_ARGS + "(" + VALUE + '.buffer)||("constant" in ' + VALUE + "&&(typeof " + VALUE + '.constant==="number"||' + shared.isArrayLike + "(" + VALUE + ".constant))))", 'invalid dynamic attribute "' + attribute + '"'); - }); - var result = { - isStream: block.def(false) - }; - var defaultRecord = new AttributeRecord2(); - defaultRecord.state = ATTRIB_STATE_POINTER; - Object.keys(defaultRecord).forEach(function(key) { - result[key] = block.def("" + defaultRecord[key]); - }); - var BUFFER = result.buffer; - var TYPE = result.type; - block("if(", IS_BUFFER_ARGS, "(", VALUE, ")){", result.isStream, "=true;", BUFFER, "=", BUFFER_STATE, ".createStream(", GL_ARRAY_BUFFER$2, ",", VALUE, ");", TYPE, "=", BUFFER, ".dtype;", "}else{", BUFFER, "=", BUFFER_STATE, ".getBuffer(", VALUE, ");", "if(", BUFFER, "){", TYPE, "=", BUFFER, ".dtype;", '}else if("constant" in ', VALUE, "){", result.state, "=", ATTRIB_STATE_CONSTANT, ";", "if(typeof " + VALUE + '.constant === "number"){', result[CUTE_COMPONENTS[0]], "=", VALUE, ".constant;", CUTE_COMPONENTS.slice(1).map(function(n3) { - return result[n3]; - }).join("="), "=0;", "}else{", CUTE_COMPONENTS.map(function(name, i4) { - return result[name] + "=" + VALUE + ".constant.length>" + i4 + "?" + VALUE + ".constant[" + i4 + "]:0;"; - }).join(""), "}}else{", "if(", IS_BUFFER_ARGS, "(", VALUE, ".buffer)){", BUFFER, "=", BUFFER_STATE, ".createStream(", GL_ARRAY_BUFFER$2, ",", VALUE, ".buffer);", "}else{", BUFFER, "=", BUFFER_STATE, ".getBuffer(", VALUE, ".buffer);", "}", TYPE, '="type" in ', VALUE, "?", constants.glTypes, "[", VALUE, ".type]:", BUFFER, ".dtype;", result.normalized, "=!!", VALUE, ".normalized;"); - function emitReadRecord(name) { - block(result[name], "=", VALUE, ".", name, "|0;"); - } - emitReadRecord("size"); - emitReadRecord("offset"); - emitReadRecord("stride"); - emitReadRecord("divisor"); - block("}}"); - block.exit("if(", result.isStream, "){", BUFFER_STATE, ".destroyStream(", BUFFER, ");", "}"); - return result; - } - attributeDefs[attribute] = createDynamicDecl(dyn, appendAttributeCode); - }); - return attributeDefs; - } - function parseVAO(options, env) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - if (S_VAO in staticOptions) { - var vao = staticOptions[S_VAO]; - if (vao !== null && attributeState.getVAO(vao) === null) { - vao = attributeState.createVAO(vao); - } - return createStaticDecl(function(env2) { - return env2.link(attributeState.getVAO(vao)); - }); - } else if (S_VAO in dynamicOptions) { - var dyn = dynamicOptions[S_VAO]; - return createDynamicDecl(dyn, function(env2, scope) { - var vaoRef = env2.invoke(scope, dyn); - return scope.def(env2.shared.vao + ".getVAO(" + vaoRef + ")"); - }); - } - return null; - } - function parseContext(context) { - var staticContext = context.static; - var dynamicContext = context.dynamic; - var result = {}; - Object.keys(staticContext).forEach(function(name) { - var value2 = staticContext[name]; - result[name] = createStaticDecl(function(env, scope) { - if (typeof value2 === "number" || typeof value2 === "boolean") { - return "" + value2; - } else { - return env.link(value2); - } - }); - }); - Object.keys(dynamicContext).forEach(function(name) { - var dyn = dynamicContext[name]; - result[name] = createDynamicDecl(dyn, function(env, scope) { - return env.invoke(scope, dyn); - }); - }); - return result; - } - function parseArguments(options, attributes, uniforms, context, env) { - var staticOptions = options.static; - var dynamicOptions = options.dynamic; - check$1.optional(function() { - var KEY_NAMES = [ - S_FRAMEBUFFER, - S_VERT, - S_FRAG, - S_ELEMENTS, - S_PRIMITIVE, - S_OFFSET, - S_COUNT, - S_INSTANCES, - S_PROFILE, - S_VAO - ].concat(GL_STATE_NAMES); - function checkKeys(dict) { - Object.keys(dict).forEach(function(key) { - check$1.command(KEY_NAMES.indexOf(key) >= 0, 'unknown parameter "' + key + '"', env.commandStr); - }); - } - checkKeys(staticOptions); - checkKeys(dynamicOptions); - }); - var attribLocations = parseAttribLocations(options, attributes); - var framebuffer = parseFramebuffer(options, env); - var viewportAndScissor = parseViewportScissor(options, framebuffer, env); - var draw4 = parseDraw(options, env); - var state2 = parseGLState(options, env); - var shader = parseProgram(options, env, attribLocations); - function copyBox(name) { - var defn = viewportAndScissor[name]; - if (defn) { - state2[name] = defn; - } - } - copyBox(S_VIEWPORT); - copyBox(propName(S_SCISSOR_BOX)); - var dirty = Object.keys(state2).length > 0; - var result = { - framebuffer, - draw: draw4, - shader, - state: state2, - dirty, - scopeVAO: null, - drawVAO: null, - useVAO: false, - attributes: {} - }; - result.profile = parseProfile(options, env); - result.uniforms = parseUniforms(uniforms, env); - result.drawVAO = result.scopeVAO = parseVAO(options, env); - if (!result.drawVAO && shader.program && !attribLocations && extensions.angle_instanced_arrays) { - var useVAO = true; - var staticBindings = shader.program.attributes.map(function(attr) { - var binding = attributes.static[attr]; - useVAO = useVAO && !!binding; - return binding; - }); - if (useVAO && staticBindings.length > 0) { - var vao = attributeState.getVAO(attributeState.createVAO(staticBindings)); - result.drawVAO = new Declaration(null, null, null, function(env2, scope) { - return env2.link(vao); - }); - result.useVAO = true; - } - } - if (attribLocations) { - result.useVAO = true; - } else { - result.attributes = parseAttributes(attributes, env); - } - result.context = parseContext(context, env); - return result; - } - function emitContext(env, scope, context) { - var shared = env.shared; - var CONTEXT = shared.context; - var contextEnter = env.scope(); - Object.keys(context).forEach(function(name) { - scope.save(CONTEXT, "." + name); - var defn = context[name]; - var value2 = defn.append(env, scope); - if (Array.isArray(value2)) { - contextEnter(CONTEXT, ".", name, "=[", value2.join(), "];"); - } else { - contextEnter(CONTEXT, ".", name, "=", value2, ";"); - } - }); - scope(contextEnter); - } - function emitPollFramebuffer(env, scope, framebuffer, skipCheck) { - var shared = env.shared; - var GL = shared.gl; - var FRAMEBUFFER_STATE = shared.framebuffer; - var EXT_DRAW_BUFFERS; - if (extDrawBuffers) { - EXT_DRAW_BUFFERS = scope.def(shared.extensions, ".webgl_draw_buffers"); - } - var constants = env.constants; - var DRAW_BUFFERS = constants.drawBuffer; - var BACK_BUFFER = constants.backBuffer; - var NEXT; - if (framebuffer) { - NEXT = framebuffer.append(env, scope); - } else { - NEXT = scope.def(FRAMEBUFFER_STATE, ".next"); - } - if (!skipCheck) { - scope("if(", NEXT, "!==", FRAMEBUFFER_STATE, ".cur){"); - } - scope("if(", NEXT, "){", GL, ".bindFramebuffer(", GL_FRAMEBUFFER$2, ",", NEXT, ".framebuffer);"); - if (extDrawBuffers) { - scope(EXT_DRAW_BUFFERS, ".drawBuffersWEBGL(", DRAW_BUFFERS, "[", NEXT, ".colorAttachments.length]);"); - } - scope("}else{", GL, ".bindFramebuffer(", GL_FRAMEBUFFER$2, ",null);"); - if (extDrawBuffers) { - scope(EXT_DRAW_BUFFERS, ".drawBuffersWEBGL(", BACK_BUFFER, ");"); - } - scope("}", FRAMEBUFFER_STATE, ".cur=", NEXT, ";"); - if (!skipCheck) { - scope("}"); - } - } - function emitPollState(env, scope, args) { - var shared = env.shared; - var GL = shared.gl; - var CURRENT_VARS = env.current; - var NEXT_VARS = env.next; - var CURRENT_STATE = shared.current; - var NEXT_STATE = shared.next; - var block = env.cond(CURRENT_STATE, ".dirty"); - GL_STATE_NAMES.forEach(function(prop) { - var param = propName(prop); - if (param in args.state) { - return; - } - var NEXT, CURRENT; - if (param in NEXT_VARS) { - NEXT = NEXT_VARS[param]; - CURRENT = CURRENT_VARS[param]; - var parts = loop(currentState[param].length, function(i4) { - return block.def(NEXT, "[", i4, "]"); - }); - block(env.cond(parts.map(function(p4, i4) { - return p4 + "!==" + CURRENT + "[" + i4 + "]"; - }).join("||")).then(GL, ".", GL_VARIABLES[param], "(", parts, ");", parts.map(function(p4, i4) { - return CURRENT + "[" + i4 + "]=" + p4; - }).join(";"), ";")); - } else { - NEXT = block.def(NEXT_STATE, ".", param); - var ifte = env.cond(NEXT, "!==", CURRENT_STATE, ".", param); - block(ifte); - if (param in GL_FLAGS) { - ifte(env.cond(NEXT).then(GL, ".enable(", GL_FLAGS[param], ");").else(GL, ".disable(", GL_FLAGS[param], ");"), CURRENT_STATE, ".", param, "=", NEXT, ";"); - } else { - ifte(GL, ".", GL_VARIABLES[param], "(", NEXT, ");", CURRENT_STATE, ".", param, "=", NEXT, ";"); - } - } - }); - if (Object.keys(args.state).length === 0) { - block(CURRENT_STATE, ".dirty=false;"); - } - scope(block); - } - function emitSetOptions(env, scope, options, filter2) { - var shared = env.shared; - var CURRENT_VARS = env.current; - var CURRENT_STATE = shared.current; - var GL = shared.gl; - sortState(Object.keys(options)).forEach(function(param) { - var defn = options[param]; - if (filter2 && !filter2(defn)) { - return; - } - var variable = defn.append(env, scope); - if (GL_FLAGS[param]) { - var flag = GL_FLAGS[param]; - if (isStatic(defn)) { - if (variable) { - scope(GL, ".enable(", flag, ");"); - } else { - scope(GL, ".disable(", flag, ");"); - } - } else { - scope(env.cond(variable).then(GL, ".enable(", flag, ");").else(GL, ".disable(", flag, ");")); - } - scope(CURRENT_STATE, ".", param, "=", variable, ";"); - } else if (isArrayLike2(variable)) { - var CURRENT = CURRENT_VARS[param]; - scope(GL, ".", GL_VARIABLES[param], "(", variable, ");", variable.map(function(v3, i4) { - return CURRENT + "[" + i4 + "]=" + v3; - }).join(";"), ";"); - } else { - scope(GL, ".", GL_VARIABLES[param], "(", variable, ");", CURRENT_STATE, ".", param, "=", variable, ";"); - } - }); - } - function injectExtensions(env, scope) { - if (extInstancing) { - env.instancing = scope.def(env.shared.extensions, ".angle_instanced_arrays"); - } - } - function emitProfile(env, scope, args, useScope, incrementCounter) { - var shared = env.shared; - var STATS = env.stats; - var CURRENT_STATE = shared.current; - var TIMER = shared.timer; - var profileArg = args.profile; - function perfCounter() { - if (typeof performance === "undefined") { - return "Date.now()"; - } else { - return "performance.now()"; - } - } - var CPU_START, QUERY_COUNTER; - function emitProfileStart(block) { - CPU_START = scope.def(); - block(CPU_START, "=", perfCounter(), ";"); - if (typeof incrementCounter === "string") { - block(STATS, ".count+=", incrementCounter, ";"); - } else { - block(STATS, ".count++;"); - } - if (timer3) { - if (useScope) { - QUERY_COUNTER = scope.def(); - block(QUERY_COUNTER, "=", TIMER, ".getNumPendingQueries();"); - } else { - block(TIMER, ".beginQuery(", STATS, ");"); - } - } - } - function emitProfileEnd(block) { - block(STATS, ".cpuTime+=", perfCounter(), "-", CPU_START, ";"); - if (timer3) { - if (useScope) { - block(TIMER, ".pushScopeStats(", QUERY_COUNTER, ",", TIMER, ".getNumPendingQueries(),", STATS, ");"); - } else { - block(TIMER, ".endQuery();"); - } - } - } - function scopeProfile(value2) { - var prev = scope.def(CURRENT_STATE, ".profile"); - scope(CURRENT_STATE, ".profile=", value2, ";"); - scope.exit(CURRENT_STATE, ".profile=", prev, ";"); - } - var USE_PROFILE; - if (profileArg) { - if (isStatic(profileArg)) { - if (profileArg.enable) { - emitProfileStart(scope); - emitProfileEnd(scope.exit); - scopeProfile("true"); - } else { - scopeProfile("false"); - } - return; - } - USE_PROFILE = profileArg.append(env, scope); - scopeProfile(USE_PROFILE); - } else { - USE_PROFILE = scope.def(CURRENT_STATE, ".profile"); - } - var start = env.block(); - emitProfileStart(start); - scope("if(", USE_PROFILE, "){", start, "}"); - var end2 = env.block(); - emitProfileEnd(end2); - scope.exit("if(", USE_PROFILE, "){", end2, "}"); - } - function emitAttributes(env, scope, args, attributes, filter2) { - var shared = env.shared; - function typeLength(x6) { - switch (x6) { - case GL_FLOAT_VEC2: - case GL_INT_VEC2: - case GL_BOOL_VEC2: - return 2; - case GL_FLOAT_VEC3: - case GL_INT_VEC3: - case GL_BOOL_VEC3: - return 3; - case GL_FLOAT_VEC4: - case GL_INT_VEC4: - case GL_BOOL_VEC4: - return 4; - default: - return 1; - } - } - function emitBindAttribute(ATTRIBUTE, size2, record) { - var GL = shared.gl; - var LOCATION = scope.def(ATTRIBUTE, ".location"); - var BINDING = scope.def(shared.attributes, "[", LOCATION, "]"); - var STATE = record.state; - var BUFFER = record.buffer; - var CONST_COMPONENTS = [ - record.x, - record.y, - record.z, - record.w - ]; - var COMMON_KEYS = [ - "buffer", - "normalized", - "offset", - "stride" - ]; - function emitBuffer() { - scope("if(!", BINDING, ".buffer){", GL, ".enableVertexAttribArray(", LOCATION, ");}"); - var TYPE = record.type; - var SIZE; - if (!record.size) { - SIZE = size2; - } else { - SIZE = scope.def(record.size, "||", size2); - } - scope("if(", BINDING, ".type!==", TYPE, "||", BINDING, ".size!==", SIZE, "||", COMMON_KEYS.map(function(key) { - return BINDING + "." + key + "!==" + record[key]; - }).join("||"), "){", GL, ".bindBuffer(", GL_ARRAY_BUFFER$2, ",", BUFFER, ".buffer);", GL, ".vertexAttribPointer(", [ - LOCATION, - SIZE, - TYPE, - record.normalized, - record.stride, - record.offset - ], ");", BINDING, ".type=", TYPE, ";", BINDING, ".size=", SIZE, ";", COMMON_KEYS.map(function(key) { - return BINDING + "." + key + "=" + record[key] + ";"; - }).join(""), "}"); - if (extInstancing) { - var DIVISOR = record.divisor; - scope("if(", BINDING, ".divisor!==", DIVISOR, "){", env.instancing, ".vertexAttribDivisorANGLE(", [LOCATION, DIVISOR], ");", BINDING, ".divisor=", DIVISOR, ";}"); - } - } - function emitConstant() { - scope("if(", BINDING, ".buffer){", GL, ".disableVertexAttribArray(", LOCATION, ");", BINDING, ".buffer=null;", "}if(", CUTE_COMPONENTS.map(function(c5, i4) { - return BINDING + "." + c5 + "!==" + CONST_COMPONENTS[i4]; - }).join("||"), "){", GL, ".vertexAttrib4f(", LOCATION, ",", CONST_COMPONENTS, ");", CUTE_COMPONENTS.map(function(c5, i4) { - return BINDING + "." + c5 + "=" + CONST_COMPONENTS[i4] + ";"; - }).join(""), "}"); - } - if (STATE === ATTRIB_STATE_POINTER) { - emitBuffer(); - } else if (STATE === ATTRIB_STATE_CONSTANT) { - emitConstant(); - } else { - scope("if(", STATE, "===", ATTRIB_STATE_POINTER, "){"); - emitBuffer(); - scope("}else{"); - emitConstant(); - scope("}"); - } - } - attributes.forEach(function(attribute) { - var name = attribute.name; - var arg = args.attributes[name]; - var record; - if (arg) { - if (!filter2(arg)) { - return; - } - record = arg.append(env, scope); - } else { - if (!filter2(SCOPE_DECL)) { - return; - } - var scopeAttrib = env.scopeAttrib(name); - check$1.optional(function() { - env.assert(scope, scopeAttrib + ".state", "missing attribute " + name); - }); - record = {}; - Object.keys(new AttributeRecord2()).forEach(function(key) { - record[key] = scope.def(scopeAttrib, ".", key); - }); - } - emitBindAttribute(env.link(attribute), typeLength(attribute.info.type), record); - }); - } - function emitUniforms(env, scope, args, uniforms, filter2) { - var shared = env.shared; - var GL = shared.gl; - var infix; - for (var i4 = 0; i4 < uniforms.length; ++i4) { - var uniform = uniforms[i4]; - var name = uniform.name; - var type2 = uniform.info.type; - var arg = args.uniforms[name]; - var UNIFORM = env.link(uniform); - var LOCATION = UNIFORM + ".location"; - var VALUE; - if (arg) { - if (!filter2(arg)) { - continue; - } - if (isStatic(arg)) { - var value2 = arg.value; - check$1.command(value2 !== null && typeof value2 !== "undefined", 'missing uniform "' + name + '"', env.commandStr); - if (type2 === GL_SAMPLER_2D || type2 === GL_SAMPLER_CUBE) { - check$1.command(typeof value2 === "function" && (type2 === GL_SAMPLER_2D && (value2._reglType === "texture2d" || value2._reglType === "framebuffer") || type2 === GL_SAMPLER_CUBE && (value2._reglType === "textureCube" || value2._reglType === "framebufferCube")), "invalid texture for uniform " + name, env.commandStr); - var TEX_VALUE = env.link(value2._texture || value2.color[0]._texture); - scope(GL, ".uniform1i(", LOCATION, ",", TEX_VALUE + ".bind());"); - scope.exit(TEX_VALUE, ".unbind();"); - } else if (type2 === GL_FLOAT_MAT2 || type2 === GL_FLOAT_MAT3 || type2 === GL_FLOAT_MAT4) { - check$1.optional(function() { - check$1.command(isArrayLike2(value2), "invalid matrix for uniform " + name, env.commandStr); - check$1.command(type2 === GL_FLOAT_MAT2 && value2.length === 4 || type2 === GL_FLOAT_MAT3 && value2.length === 9 || type2 === GL_FLOAT_MAT4 && value2.length === 16, "invalid length for matrix uniform " + name, env.commandStr); - }); - var MAT_VALUE = env.global.def("new Float32Array([" + Array.prototype.slice.call(value2) + "])"); - var dim = 2; - if (type2 === GL_FLOAT_MAT3) { - dim = 3; - } else if (type2 === GL_FLOAT_MAT4) { - dim = 4; - } - scope(GL, ".uniformMatrix", dim, "fv(", LOCATION, ",false,", MAT_VALUE, ");"); - } else { - switch (type2) { - case GL_FLOAT$8: - check$1.commandType(value2, "number", "uniform " + name, env.commandStr); - infix = "1f"; - break; - case GL_FLOAT_VEC2: - check$1.command(isArrayLike2(value2) && value2.length === 2, "uniform " + name, env.commandStr); - infix = "2f"; - break; - case GL_FLOAT_VEC3: - check$1.command(isArrayLike2(value2) && value2.length === 3, "uniform " + name, env.commandStr); - infix = "3f"; - break; - case GL_FLOAT_VEC4: - check$1.command(isArrayLike2(value2) && value2.length === 4, "uniform " + name, env.commandStr); - infix = "4f"; - break; - case GL_BOOL: - check$1.commandType(value2, "boolean", "uniform " + name, env.commandStr); - infix = "1i"; - break; - case GL_INT$3: - check$1.commandType(value2, "number", "uniform " + name, env.commandStr); - infix = "1i"; - break; - case GL_BOOL_VEC2: - check$1.command(isArrayLike2(value2) && value2.length === 2, "uniform " + name, env.commandStr); - infix = "2i"; - break; - case GL_INT_VEC2: - check$1.command(isArrayLike2(value2) && value2.length === 2, "uniform " + name, env.commandStr); - infix = "2i"; - break; - case GL_BOOL_VEC3: - check$1.command(isArrayLike2(value2) && value2.length === 3, "uniform " + name, env.commandStr); - infix = "3i"; - break; - case GL_INT_VEC3: - check$1.command(isArrayLike2(value2) && value2.length === 3, "uniform " + name, env.commandStr); - infix = "3i"; - break; - case GL_BOOL_VEC4: - check$1.command(isArrayLike2(value2) && value2.length === 4, "uniform " + name, env.commandStr); - infix = "4i"; - break; - case GL_INT_VEC4: - check$1.command(isArrayLike2(value2) && value2.length === 4, "uniform " + name, env.commandStr); - infix = "4i"; - break; - } - scope(GL, ".uniform", infix, "(", LOCATION, ",", isArrayLike2(value2) ? Array.prototype.slice.call(value2) : value2, ");"); - } - continue; - } else { - VALUE = arg.append(env, scope); - } - } else { - if (!filter2(SCOPE_DECL)) { - continue; - } - VALUE = scope.def(shared.uniforms, "[", stringStore.id(name), "]"); - } - if (type2 === GL_SAMPLER_2D) { - check$1(!Array.isArray(VALUE), "must specify a scalar prop for textures"); - scope("if(", VALUE, "&&", VALUE, '._reglType==="framebuffer"){', VALUE, "=", VALUE, ".color[0];", "}"); - } else if (type2 === GL_SAMPLER_CUBE) { - check$1(!Array.isArray(VALUE), "must specify a scalar prop for cube maps"); - scope("if(", VALUE, "&&", VALUE, '._reglType==="framebufferCube"){', VALUE, "=", VALUE, ".color[0];", "}"); - } - check$1.optional(function() { - function emitCheck(pred, message) { - env.assert(scope, pred, 'bad data or missing for uniform "' + name + '". ' + message); - } - function checkType(type3) { - check$1(!Array.isArray(VALUE), "must not specify an array type for uniform"); - emitCheck("typeof " + VALUE + '==="' + type3 + '"', "invalid type, expected " + type3); - } - function checkVector(n3, type3) { - if (Array.isArray(VALUE)) { - check$1(VALUE.length === n3, "must have length " + n3); - } else { - emitCheck(shared.isArrayLike + "(" + VALUE + ")&&" + VALUE + ".length===" + n3, "invalid vector, should have length " + n3, env.commandStr); - } - } - function checkTexture(target) { - check$1(!Array.isArray(VALUE), "must not specify a value type"); - emitCheck("typeof " + VALUE + '==="function"&&' + VALUE + '._reglType==="texture' + (target === GL_TEXTURE_2D$3 ? "2d" : "Cube") + '"', "invalid texture type", env.commandStr); - } - switch (type2) { - case GL_INT$3: - checkType("number"); - break; - case GL_INT_VEC2: - checkVector(2, "number"); - break; - case GL_INT_VEC3: - checkVector(3, "number"); - break; - case GL_INT_VEC4: - checkVector(4, "number"); - break; - case GL_FLOAT$8: - checkType("number"); - break; - case GL_FLOAT_VEC2: - checkVector(2, "number"); - break; - case GL_FLOAT_VEC3: - checkVector(3, "number"); - break; - case GL_FLOAT_VEC4: - checkVector(4, "number"); - break; - case GL_BOOL: - checkType("boolean"); - break; - case GL_BOOL_VEC2: - checkVector(2, "boolean"); - break; - case GL_BOOL_VEC3: - checkVector(3, "boolean"); - break; - case GL_BOOL_VEC4: - checkVector(4, "boolean"); - break; - case GL_FLOAT_MAT2: - checkVector(4, "number"); - break; - case GL_FLOAT_MAT3: - checkVector(9, "number"); - break; - case GL_FLOAT_MAT4: - checkVector(16, "number"); - break; - case GL_SAMPLER_2D: - checkTexture(GL_TEXTURE_2D$3); - break; - case GL_SAMPLER_CUBE: - checkTexture(GL_TEXTURE_CUBE_MAP$2); - break; - } - }); - var unroll = 1; - switch (type2) { - case GL_SAMPLER_2D: - case GL_SAMPLER_CUBE: - var TEX = scope.def(VALUE, "._texture"); - scope(GL, ".uniform1i(", LOCATION, ",", TEX, ".bind());"); - scope.exit(TEX, ".unbind();"); - continue; - case GL_INT$3: - case GL_BOOL: - infix = "1i"; - break; - case GL_INT_VEC2: - case GL_BOOL_VEC2: - infix = "2i"; - unroll = 2; - break; - case GL_INT_VEC3: - case GL_BOOL_VEC3: - infix = "3i"; - unroll = 3; - break; - case GL_INT_VEC4: - case GL_BOOL_VEC4: - infix = "4i"; - unroll = 4; - break; - case GL_FLOAT$8: - infix = "1f"; - break; - case GL_FLOAT_VEC2: - infix = "2f"; - unroll = 2; - break; - case GL_FLOAT_VEC3: - infix = "3f"; - unroll = 3; - break; - case GL_FLOAT_VEC4: - infix = "4f"; - unroll = 4; - break; - case GL_FLOAT_MAT2: - infix = "Matrix2fv"; - break; - case GL_FLOAT_MAT3: - infix = "Matrix3fv"; - break; - case GL_FLOAT_MAT4: - infix = "Matrix4fv"; - break; - } - scope(GL, ".uniform", infix, "(", LOCATION, ","); - if (infix.charAt(0) === "M") { - var matSize = Math.pow(type2 - GL_FLOAT_MAT2 + 2, 2); - var STORAGE = env.global.def("new Float32Array(", matSize, ")"); - if (Array.isArray(VALUE)) { - scope("false,(", loop(matSize, function(i5) { - return STORAGE + "[" + i5 + "]=" + VALUE[i5]; - }), ",", STORAGE, ")"); - } else { - scope("false,(Array.isArray(", VALUE, ")||", VALUE, " instanceof Float32Array)?", VALUE, ":(", loop(matSize, function(i5) { - return STORAGE + "[" + i5 + "]=" + VALUE + "[" + i5 + "]"; - }), ",", STORAGE, ")"); - } - } else if (unroll > 1) { - scope(loop(unroll, function(i5) { - return Array.isArray(VALUE) ? VALUE[i5] : VALUE + "[" + i5 + "]"; - })); - } else { - check$1(!Array.isArray(VALUE), "uniform value must not be an array"); - scope(VALUE); - } - scope(");"); - } - } - function emitDraw(env, outer, inner, args) { - var shared = env.shared; - var GL = shared.gl; - var DRAW_STATE = shared.draw; - var drawOptions = args.draw; - function emitElements() { - var defn = drawOptions.elements; - var ELEMENTS2; - var scope = outer; - if (defn) { - if (defn.contextDep && args.contextDynamic || defn.propDep) { - scope = inner; - } - ELEMENTS2 = defn.append(env, scope); - } else { - ELEMENTS2 = scope.def(DRAW_STATE, ".", S_ELEMENTS); - } - if (ELEMENTS2) { - scope("if(" + ELEMENTS2 + ")" + GL + ".bindBuffer(" + GL_ELEMENT_ARRAY_BUFFER$1 + "," + ELEMENTS2 + ".buffer.buffer);"); - } - return ELEMENTS2; - } - function emitCount() { - var defn = drawOptions.count; - var COUNT2; - var scope = outer; - if (defn) { - if (defn.contextDep && args.contextDynamic || defn.propDep) { - scope = inner; - } - COUNT2 = defn.append(env, scope); - check$1.optional(function() { - if (defn.MISSING) { - env.assert(outer, "false", "missing vertex count"); - } - if (defn.DYNAMIC) { - env.assert(scope, COUNT2 + ">=0", "missing vertex count"); - } - }); - } else { - COUNT2 = scope.def(DRAW_STATE, ".", S_COUNT); - check$1.optional(function() { - env.assert(scope, COUNT2 + ">=0", "missing vertex count"); - }); - } - return COUNT2; - } - var ELEMENTS = emitElements(); - function emitValue(name) { - var defn = drawOptions[name]; - if (defn) { - if (defn.contextDep && args.contextDynamic || defn.propDep) { - return defn.append(env, inner); - } else { - return defn.append(env, outer); - } - } else { - return outer.def(DRAW_STATE, ".", name); - } - } - var PRIMITIVE = emitValue(S_PRIMITIVE); - var OFFSET = emitValue(S_OFFSET); - var COUNT = emitCount(); - if (typeof COUNT === "number") { - if (COUNT === 0) { - return; - } - } else { - inner("if(", COUNT, "){"); - inner.exit("}"); - } - var INSTANCES, EXT_INSTANCING; - if (extInstancing) { - INSTANCES = emitValue(S_INSTANCES); - EXT_INSTANCING = env.instancing; - } - var ELEMENT_TYPE = ELEMENTS + ".type"; - var elementsStatic = drawOptions.elements && isStatic(drawOptions.elements); - function emitInstancing() { - function drawElements() { - inner(EXT_INSTANCING, ".drawElementsInstancedANGLE(", [ - PRIMITIVE, - COUNT, - ELEMENT_TYPE, - OFFSET + "<<((" + ELEMENT_TYPE + "-" + GL_UNSIGNED_BYTE$8 + ")>>1)", - INSTANCES - ], ");"); - } - function drawArrays() { - inner(EXT_INSTANCING, ".drawArraysInstancedANGLE(", [PRIMITIVE, OFFSET, COUNT, INSTANCES], ");"); - } - if (ELEMENTS) { - if (!elementsStatic) { - inner("if(", ELEMENTS, "){"); - drawElements(); - inner("}else{"); - drawArrays(); - inner("}"); - } else { - drawElements(); - } - } else { - drawArrays(); - } - } - function emitRegular() { - function drawElements() { - inner(GL + ".drawElements(" + [ - PRIMITIVE, - COUNT, - ELEMENT_TYPE, - OFFSET + "<<((" + ELEMENT_TYPE + "-" + GL_UNSIGNED_BYTE$8 + ")>>1)" - ] + ");"); - } - function drawArrays() { - inner(GL + ".drawArrays(" + [PRIMITIVE, OFFSET, COUNT] + ");"); - } - if (ELEMENTS) { - if (!elementsStatic) { - inner("if(", ELEMENTS, "){"); - drawElements(); - inner("}else{"); - drawArrays(); - inner("}"); - } else { - drawElements(); - } - } else { - drawArrays(); - } - } - if (extInstancing && (typeof INSTANCES !== "number" || INSTANCES >= 0)) { - if (typeof INSTANCES === "string") { - inner("if(", INSTANCES, ">0){"); - emitInstancing(); - inner("}else if(", INSTANCES, "<0){"); - emitRegular(); - inner("}"); - } else { - emitInstancing(); - } - } else { - emitRegular(); - } - } - function createBody(emitBody, parentEnv, args, program, count2) { - var env = createREGLEnvironment(); - var scope = env.proc("body", count2); - check$1.optional(function() { - env.commandStr = parentEnv.commandStr; - env.command = env.link(parentEnv.commandStr); - }); - if (extInstancing) { - env.instancing = scope.def(env.shared.extensions, ".angle_instanced_arrays"); - } - emitBody(env, scope, args, program); - return env.compile().body; - } - function emitDrawBody(env, draw4, args, program) { - injectExtensions(env, draw4); - if (args.useVAO) { - if (args.drawVAO) { - draw4(env.shared.vao, ".setVAO(", args.drawVAO.append(env, draw4), ");"); - } else { - draw4(env.shared.vao, ".setVAO(", env.shared.vao, ".targetVAO);"); - } - } else { - draw4(env.shared.vao, ".setVAO(null);"); - emitAttributes(env, draw4, args, program.attributes, function() { - return true; - }); - } - emitUniforms(env, draw4, args, program.uniforms, function() { - return true; - }); - emitDraw(env, draw4, draw4, args); - } - function emitDrawProc(env, args) { - var draw4 = env.proc("draw", 1); - injectExtensions(env, draw4); - emitContext(env, draw4, args.context); - emitPollFramebuffer(env, draw4, args.framebuffer); - emitPollState(env, draw4, args); - emitSetOptions(env, draw4, args.state); - emitProfile(env, draw4, args, false, true); - var program = args.shader.progVar.append(env, draw4); - draw4(env.shared.gl, ".useProgram(", program, ".program);"); - if (args.shader.program) { - emitDrawBody(env, draw4, args, args.shader.program); - } else { - draw4(env.shared.vao, ".setVAO(null);"); - var drawCache = env.global.def("{}"); - var PROG_ID = draw4.def(program, ".id"); - var CACHED_PROC = draw4.def(drawCache, "[", PROG_ID, "]"); - draw4(env.cond(CACHED_PROC).then(CACHED_PROC, ".call(this,a0);").else(CACHED_PROC, "=", drawCache, "[", PROG_ID, "]=", env.link(function(program2) { - return createBody(emitDrawBody, env, args, program2, 1); - }), "(", program, ");", CACHED_PROC, ".call(this,a0);")); - } - if (Object.keys(args.state).length > 0) { - draw4(env.shared.current, ".dirty=true;"); - } - } - function emitBatchDynamicShaderBody(env, scope, args, program) { - env.batchId = "a1"; - injectExtensions(env, scope); - function all() { - return true; - } - emitAttributes(env, scope, args, program.attributes, all); - emitUniforms(env, scope, args, program.uniforms, all); - emitDraw(env, scope, scope, args); - } - function emitBatchBody(env, scope, args, program) { - injectExtensions(env, scope); - var contextDynamic = args.contextDep; - var BATCH_ID = scope.def(); - var PROP_LIST = "a0"; - var NUM_PROPS = "a1"; - var PROPS = scope.def(); - env.shared.props = PROPS; - env.batchId = BATCH_ID; - var outer = env.scope(); - var inner = env.scope(); - scope(outer.entry, "for(", BATCH_ID, "=0;", BATCH_ID, "<", NUM_PROPS, ";++", BATCH_ID, "){", PROPS, "=", PROP_LIST, "[", BATCH_ID, "];", inner, "}", outer.exit); - function isInnerDefn(defn) { - return defn.contextDep && contextDynamic || defn.propDep; - } - function isOuterDefn(defn) { - return !isInnerDefn(defn); - } - if (args.needsContext) { - emitContext(env, inner, args.context); - } - if (args.needsFramebuffer) { - emitPollFramebuffer(env, inner, args.framebuffer); - } - emitSetOptions(env, inner, args.state, isInnerDefn); - if (args.profile && isInnerDefn(args.profile)) { - emitProfile(env, inner, args, false, true); - } - if (!program) { - var progCache = env.global.def("{}"); - var PROGRAM = args.shader.progVar.append(env, inner); - var PROG_ID = inner.def(PROGRAM, ".id"); - var CACHED_PROC = inner.def(progCache, "[", PROG_ID, "]"); - inner(env.shared.gl, ".useProgram(", PROGRAM, ".program);", "if(!", CACHED_PROC, "){", CACHED_PROC, "=", progCache, "[", PROG_ID, "]=", env.link(function(program2) { - return createBody(emitBatchDynamicShaderBody, env, args, program2, 2); - }), "(", PROGRAM, ");}", CACHED_PROC, ".call(this,a0[", BATCH_ID, "],", BATCH_ID, ");"); - } else { - if (args.useVAO) { - if (args.drawVAO) { - if (isInnerDefn(args.drawVAO)) { - inner(env.shared.vao, ".setVAO(", args.drawVAO.append(env, inner), ");"); - } else { - outer(env.shared.vao, ".setVAO(", args.drawVAO.append(env, outer), ");"); - } - } else { - outer(env.shared.vao, ".setVAO(", env.shared.vao, ".targetVAO);"); - } - } else { - outer(env.shared.vao, ".setVAO(null);"); - emitAttributes(env, outer, args, program.attributes, isOuterDefn); - emitAttributes(env, inner, args, program.attributes, isInnerDefn); - } - emitUniforms(env, outer, args, program.uniforms, isOuterDefn); - emitUniforms(env, inner, args, program.uniforms, isInnerDefn); - emitDraw(env, outer, inner, args); - } - } - function emitBatchProc(env, args) { - var batch = env.proc("batch", 2); - env.batchId = "0"; - injectExtensions(env, batch); - var contextDynamic = false; - var needsContext = true; - Object.keys(args.context).forEach(function(name) { - contextDynamic = contextDynamic || args.context[name].propDep; - }); - if (!contextDynamic) { - emitContext(env, batch, args.context); - needsContext = false; - } - var framebuffer = args.framebuffer; - var needsFramebuffer = false; - if (framebuffer) { - if (framebuffer.propDep) { - contextDynamic = needsFramebuffer = true; - } else if (framebuffer.contextDep && contextDynamic) { - needsFramebuffer = true; - } - if (!needsFramebuffer) { - emitPollFramebuffer(env, batch, framebuffer); - } - } else { - emitPollFramebuffer(env, batch, null); - } - if (args.state.viewport && args.state.viewport.propDep) { - contextDynamic = true; - } - function isInnerDefn(defn) { - return defn.contextDep && contextDynamic || defn.propDep; - } - emitPollState(env, batch, args); - emitSetOptions(env, batch, args.state, function(defn) { - return !isInnerDefn(defn); - }); - if (!args.profile || !isInnerDefn(args.profile)) { - emitProfile(env, batch, args, false, "a1"); - } - args.contextDep = contextDynamic; - args.needsContext = needsContext; - args.needsFramebuffer = needsFramebuffer; - var progDefn = args.shader.progVar; - if (progDefn.contextDep && contextDynamic || progDefn.propDep) { - emitBatchBody(env, batch, args, null); - } else { - var PROGRAM = progDefn.append(env, batch); - batch(env.shared.gl, ".useProgram(", PROGRAM, ".program);"); - if (args.shader.program) { - emitBatchBody(env, batch, args, args.shader.program); - } else { - batch(env.shared.vao, ".setVAO(null);"); - var batchCache = env.global.def("{}"); - var PROG_ID = batch.def(PROGRAM, ".id"); - var CACHED_PROC = batch.def(batchCache, "[", PROG_ID, "]"); - batch(env.cond(CACHED_PROC).then(CACHED_PROC, ".call(this,a0,a1);").else(CACHED_PROC, "=", batchCache, "[", PROG_ID, "]=", env.link(function(program) { - return createBody(emitBatchBody, env, args, program, 2); - }), "(", PROGRAM, ");", CACHED_PROC, ".call(this,a0,a1);")); - } - } - if (Object.keys(args.state).length > 0) { - batch(env.shared.current, ".dirty=true;"); - } - } - function emitScopeProc(env, args) { - var scope = env.proc("scope", 3); - env.batchId = "a2"; - var shared = env.shared; - var CURRENT_STATE = shared.current; - emitContext(env, scope, args.context); - if (args.framebuffer) { - args.framebuffer.append(env, scope); - } - sortState(Object.keys(args.state)).forEach(function(name) { - var defn = args.state[name]; - var value2 = defn.append(env, scope); - if (isArrayLike2(value2)) { - value2.forEach(function(v3, i4) { - scope.set(env.next[name], "[" + i4 + "]", v3); - }); - } else { - scope.set(shared.next, "." + name, value2); - } - }); - emitProfile(env, scope, args, true, true); - [S_ELEMENTS, S_OFFSET, S_COUNT, S_INSTANCES, S_PRIMITIVE].forEach(function(opt) { - var variable = args.draw[opt]; - if (!variable) { - return; - } - scope.set(shared.draw, "." + opt, "" + variable.append(env, scope)); - }); - Object.keys(args.uniforms).forEach(function(opt) { - var value2 = args.uniforms[opt].append(env, scope); - if (Array.isArray(value2)) { - value2 = "[" + value2.join() + "]"; - } - scope.set(shared.uniforms, "[" + stringStore.id(opt) + "]", value2); - }); - Object.keys(args.attributes).forEach(function(name) { - var record = args.attributes[name].append(env, scope); - var scopeAttrib = env.scopeAttrib(name); - Object.keys(new AttributeRecord2()).forEach(function(prop) { - scope.set(scopeAttrib, "." + prop, record[prop]); - }); - }); - if (args.scopeVAO) { - scope.set(shared.vao, ".targetVAO", args.scopeVAO.append(env, scope)); - } - function saveShader(name) { - var shader = args.shader[name]; - if (shader) { - scope.set(shared.shader, "." + name, shader.append(env, scope)); - } - } - saveShader(S_VERT); - saveShader(S_FRAG); - if (Object.keys(args.state).length > 0) { - scope(CURRENT_STATE, ".dirty=true;"); - scope.exit(CURRENT_STATE, ".dirty=true;"); - } - scope("a1(", env.shared.context, ",a0,", env.batchId, ");"); - } - function isDynamicObject(object) { - if (typeof object !== "object" || isArrayLike2(object)) { - return; - } - var props = Object.keys(object); - for (var i4 = 0; i4 < props.length; ++i4) { - if (dynamic.isDynamic(object[props[i4]])) { - return true; - } - } - return false; - } - function splatObject(env, options, name) { - var object = options.static[name]; - if (!object || !isDynamicObject(object)) { - return; - } - var globals = env.global; - var keys2 = Object.keys(object); - var thisDep = false; - var contextDep = false; - var propDep = false; - var objectRef = env.global.def("{}"); - keys2.forEach(function(key) { - var value2 = object[key]; - if (dynamic.isDynamic(value2)) { - if (typeof value2 === "function") { - value2 = object[key] = dynamic.unbox(value2); - } - var deps = createDynamicDecl(value2, null); - thisDep = thisDep || deps.thisDep; - propDep = propDep || deps.propDep; - contextDep = contextDep || deps.contextDep; - } else { - globals(objectRef, ".", key, "="); - switch (typeof value2) { - case "number": - globals(value2); - break; - case "string": - globals('"', value2, '"'); - break; - case "object": - if (Array.isArray(value2)) { - globals("[", value2.join(), "]"); - } - break; - default: - globals(env.link(value2)); - break; - } - globals(";"); - } - }); - function appendBlock(env2, block) { - keys2.forEach(function(key) { - var value2 = object[key]; - if (!dynamic.isDynamic(value2)) { - return; - } - var ref = env2.invoke(block, value2); - block(objectRef, ".", key, "=", ref, ";"); - }); - } - options.dynamic[name] = new dynamic.DynamicVariable(DYN_THUNK, { - thisDep, - contextDep, - propDep, - ref: objectRef, - append: appendBlock - }); - delete options.static[name]; - } - function compileCommand(options, attributes, uniforms, context, stats2) { - var env = createREGLEnvironment(); - env.stats = env.link(stats2); - Object.keys(attributes.static).forEach(function(key) { - splatObject(env, attributes, key); - }); - NESTED_OPTIONS.forEach(function(name) { - splatObject(env, options, name); - }); - var args = parseArguments(options, attributes, uniforms, context, env); - emitDrawProc(env, args); - emitScopeProc(env, args); - emitBatchProc(env, args); - return extend4(env.compile(), { - destroy: function() { - args.shader.program.destroy(); - } - }); - } - return { - next: nextState, - current: currentState, - procs: function() { - var env = createREGLEnvironment(); - var poll = env.proc("poll"); - var refresh = env.proc("refresh"); - var common2 = env.block(); - poll(common2); - refresh(common2); - var shared = env.shared; - var GL = shared.gl; - var NEXT_STATE = shared.next; - var CURRENT_STATE = shared.current; - common2(CURRENT_STATE, ".dirty=false;"); - emitPollFramebuffer(env, poll); - emitPollFramebuffer(env, refresh, null, true); - var INSTANCING; - if (extInstancing) { - INSTANCING = env.link(extInstancing); - } - if (extensions.oes_vertex_array_object) { - refresh(env.link(extensions.oes_vertex_array_object), ".bindVertexArrayOES(null);"); - } - for (var i4 = 0; i4 < limits.maxAttributes; ++i4) { - var BINDING = refresh.def(shared.attributes, "[", i4, "]"); - var ifte = env.cond(BINDING, ".buffer"); - ifte.then(GL, ".enableVertexAttribArray(", i4, ");", GL, ".bindBuffer(", GL_ARRAY_BUFFER$2, ",", BINDING, ".buffer.buffer);", GL, ".vertexAttribPointer(", i4, ",", BINDING, ".size,", BINDING, ".type,", BINDING, ".normalized,", BINDING, ".stride,", BINDING, ".offset);").else(GL, ".disableVertexAttribArray(", i4, ");", GL, ".vertexAttrib4f(", i4, ",", BINDING, ".x,", BINDING, ".y,", BINDING, ".z,", BINDING, ".w);", BINDING, ".buffer=null;"); - refresh(ifte); - if (extInstancing) { - refresh(INSTANCING, ".vertexAttribDivisorANGLE(", i4, ",", BINDING, ".divisor);"); - } - } - refresh(env.shared.vao, ".currentVAO=null;", env.shared.vao, ".setVAO(", env.shared.vao, ".targetVAO);"); - Object.keys(GL_FLAGS).forEach(function(flag) { - var cap = GL_FLAGS[flag]; - var NEXT = common2.def(NEXT_STATE, ".", flag); - var block = env.block(); - block("if(", NEXT, "){", GL, ".enable(", cap, ")}else{", GL, ".disable(", cap, ")}", CURRENT_STATE, ".", flag, "=", NEXT, ";"); - refresh(block); - poll("if(", NEXT, "!==", CURRENT_STATE, ".", flag, "){", block, "}"); - }); - Object.keys(GL_VARIABLES).forEach(function(name) { - var func = GL_VARIABLES[name]; - var init = currentState[name]; - var NEXT, CURRENT; - var block = env.block(); - block(GL, ".", func, "("); - if (isArrayLike2(init)) { - var n3 = init.length; - NEXT = env.global.def(NEXT_STATE, ".", name); - CURRENT = env.global.def(CURRENT_STATE, ".", name); - block(loop(n3, function(i5) { - return NEXT + "[" + i5 + "]"; - }), ");", loop(n3, function(i5) { - return CURRENT + "[" + i5 + "]=" + NEXT + "[" + i5 + "];"; - }).join("")); - poll("if(", loop(n3, function(i5) { - return NEXT + "[" + i5 + "]!==" + CURRENT + "[" + i5 + "]"; - }).join("||"), "){", block, "}"); - } else { - NEXT = common2.def(NEXT_STATE, ".", name); - CURRENT = common2.def(CURRENT_STATE, ".", name); - block(NEXT, ");", CURRENT_STATE, ".", name, "=", NEXT, ";"); - poll("if(", NEXT, "!==", CURRENT, "){", block, "}"); - } - refresh(block); - }); - return env.compile(); - }(), - compile: compileCommand - }; - } - function stats() { - return { - vaoCount: 0, - bufferCount: 0, - elementsCount: 0, - framebufferCount: 0, - shaderCount: 0, - textureCount: 0, - cubeCount: 0, - renderbufferCount: 0, - maxTextureUnits: 0 - }; - } - var GL_QUERY_RESULT_EXT = 34918; - var GL_QUERY_RESULT_AVAILABLE_EXT = 34919; - var GL_TIME_ELAPSED_EXT = 35007; - var createTimer = function(gl2, extensions) { - if (!extensions.ext_disjoint_timer_query) { - return null; - } - var queryPool = []; - function allocQuery() { - return queryPool.pop() || extensions.ext_disjoint_timer_query.createQueryEXT(); - } - function freeQuery(query) { - queryPool.push(query); - } - var pendingQueries = []; - function beginQuery(stats2) { - var query = allocQuery(); - extensions.ext_disjoint_timer_query.beginQueryEXT(GL_TIME_ELAPSED_EXT, query); - pendingQueries.push(query); - pushScopeStats(pendingQueries.length - 1, pendingQueries.length, stats2); - } - function endQuery() { - extensions.ext_disjoint_timer_query.endQueryEXT(GL_TIME_ELAPSED_EXT); - } - function PendingStats() { - this.startQueryIndex = -1; - this.endQueryIndex = -1; - this.sum = 0; - this.stats = null; - } - var pendingStatsPool = []; - function allocPendingStats() { - return pendingStatsPool.pop() || new PendingStats(); - } - function freePendingStats(pendingStats2) { - pendingStatsPool.push(pendingStats2); - } - var pendingStats = []; - function pushScopeStats(start, end2, stats2) { - var ps = allocPendingStats(); - ps.startQueryIndex = start; - ps.endQueryIndex = end2; - ps.sum = 0; - ps.stats = stats2; - pendingStats.push(ps); - } - var timeSum = []; - var queryPtr = []; - function update15() { - var ptr, i4; - var n3 = pendingQueries.length; - if (n3 === 0) { - return; - } - queryPtr.length = Math.max(queryPtr.length, n3 + 1); - timeSum.length = Math.max(timeSum.length, n3 + 1); - timeSum[0] = 0; - queryPtr[0] = 0; - var queryTime = 0; - ptr = 0; - for (i4 = 0; i4 < pendingQueries.length; ++i4) { - var query = pendingQueries[i4]; - if (extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_AVAILABLE_EXT)) { - queryTime += extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_EXT); - freeQuery(query); - } else { - pendingQueries[ptr++] = query; - } - timeSum[i4 + 1] = queryTime; - queryPtr[i4 + 1] = ptr; - } - pendingQueries.length = ptr; - ptr = 0; - for (i4 = 0; i4 < pendingStats.length; ++i4) { - var stats2 = pendingStats[i4]; - var start = stats2.startQueryIndex; - var end2 = stats2.endQueryIndex; - stats2.sum += timeSum[end2] - timeSum[start]; - var startPtr = queryPtr[start]; - var endPtr = queryPtr[end2]; - if (endPtr === startPtr) { - stats2.stats.gpuTime += stats2.sum / 1e6; - freePendingStats(stats2); - } else { - stats2.startQueryIndex = startPtr; - stats2.endQueryIndex = endPtr; - pendingStats[ptr++] = stats2; - } - } - pendingStats.length = ptr; - } - return { - beginQuery, - endQuery, - pushScopeStats, - update: update15, - getNumPendingQueries: function() { - return pendingQueries.length; - }, - clear: function() { - queryPool.push.apply(queryPool, pendingQueries); - for (var i4 = 0; i4 < queryPool.length; i4++) { - extensions.ext_disjoint_timer_query.deleteQueryEXT(queryPool[i4]); - } - pendingQueries.length = 0; - queryPool.length = 0; - }, - restore: function() { - pendingQueries.length = 0; - queryPool.length = 0; - } - }; - }; - var GL_COLOR_BUFFER_BIT = 16384; - var GL_DEPTH_BUFFER_BIT = 256; - var GL_STENCIL_BUFFER_BIT = 1024; - var GL_ARRAY_BUFFER = 34962; - var CONTEXT_LOST_EVENT = "webglcontextlost"; - var CONTEXT_RESTORED_EVENT = "webglcontextrestored"; - var DYN_PROP = 1; - var DYN_CONTEXT = 2; - var DYN_STATE = 3; - function find4(haystack, needle) { - for (var i4 = 0; i4 < haystack.length; ++i4) { - if (haystack[i4] === needle) { - return i4; - } - } - return -1; - } - function wrapREGL(args) { - var config = parseArgs(args); - if (!config) { - return null; - } - var gl2 = config.gl; - var glAttributes = gl2.getContextAttributes(); - var contextLost = gl2.isContextLost(); - var extensionState = createExtensionCache(gl2, config); - if (!extensionState) { - return null; - } - var stringStore = createStringStore(); - var stats$$1 = stats(); - var extensions = extensionState.extensions; - var timer3 = createTimer(gl2, extensions); - var START_TIME = clock2(); - var WIDTH = gl2.drawingBufferWidth; - var HEIGHT = gl2.drawingBufferHeight; - var contextState = { - tick: 0, - time: 0, - viewportWidth: WIDTH, - viewportHeight: HEIGHT, - framebufferWidth: WIDTH, - framebufferHeight: HEIGHT, - drawingBufferWidth: WIDTH, - drawingBufferHeight: HEIGHT, - pixelRatio: config.pixelRatio - }; - var uniformState = {}; - var drawState = { - elements: null, - primitive: 4, - count: -1, - offset: 0, - instances: -1 - }; - var limits = wrapLimits(gl2, extensions); - var bufferState = wrapBufferState(gl2, stats$$1, config, destroyBuffer); - var attributeState = wrapAttributeState(gl2, extensions, limits, stats$$1, bufferState); - function destroyBuffer(buffer) { - return attributeState.destroyBuffer(buffer); - } - var elementState = wrapElementsState(gl2, extensions, bufferState, stats$$1); - var shaderState = wrapShaderState(gl2, stringStore, stats$$1, config); - var textureState = createTextureSet(gl2, extensions, limits, function() { - core2.procs.poll(); - }, contextState, stats$$1, config); - var renderbufferState = wrapRenderbuffers(gl2, extensions, limits, stats$$1, config); - var framebufferState = wrapFBOState(gl2, extensions, limits, textureState, renderbufferState, stats$$1); - var core2 = reglCore(gl2, stringStore, extensions, limits, bufferState, elementState, textureState, framebufferState, uniformState, attributeState, shaderState, drawState, contextState, timer3, config); - var readPixels = wrapReadPixels(gl2, framebufferState, core2.procs.poll, contextState, glAttributes, extensions, limits); - var nextState = core2.next; - var canvas = gl2.canvas; - var rafCallbacks = []; - var lossCallbacks = []; - var restoreCallbacks = []; - var destroyCallbacks = [config.onDestroy]; - var activeRAF = null; - function handleRAF() { - if (rafCallbacks.length === 0) { - if (timer3) { - timer3.update(); - } - activeRAF = null; - return; - } - activeRAF = raf.next(handleRAF); - poll(); - for (var i4 = rafCallbacks.length - 1; i4 >= 0; --i4) { - var cb = rafCallbacks[i4]; - if (cb) { - cb(contextState, null, 0); - } - } - gl2.flush(); - if (timer3) { - timer3.update(); - } - } - function startRAF() { - if (!activeRAF && rafCallbacks.length > 0) { - activeRAF = raf.next(handleRAF); - } - } - function stopRAF() { - if (activeRAF) { - raf.cancel(handleRAF); - activeRAF = null; - } - } - function handleContextLoss(event) { - event.preventDefault(); - contextLost = true; - stopRAF(); - lossCallbacks.forEach(function(cb) { - cb(); - }); - } - function handleContextRestored(event) { - gl2.getError(); - contextLost = false; - extensionState.restore(); - shaderState.restore(); - bufferState.restore(); - textureState.restore(); - renderbufferState.restore(); - framebufferState.restore(); - attributeState.restore(); - if (timer3) { - timer3.restore(); - } - core2.procs.refresh(); - startRAF(); - restoreCallbacks.forEach(function(cb) { - cb(); - }); - } - if (canvas) { - canvas.addEventListener(CONTEXT_LOST_EVENT, handleContextLoss, false); - canvas.addEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored, false); - } - function destroy() { - rafCallbacks.length = 0; - stopRAF(); - if (canvas) { - canvas.removeEventListener(CONTEXT_LOST_EVENT, handleContextLoss); - canvas.removeEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored); - } - shaderState.clear(); - framebufferState.clear(); - renderbufferState.clear(); - textureState.clear(); - elementState.clear(); - bufferState.clear(); - attributeState.clear(); - if (timer3) { - timer3.clear(); - } - destroyCallbacks.forEach(function(cb) { - cb(); - }); - } - function compileProcedure(options) { - check$1(!!options, "invalid args to regl({...})"); - check$1.type(options, "object", "invalid args to regl({...})"); - function flattenNestedOptions(options2) { - var result = extend4({}, options2); - delete result.uniforms; - delete result.attributes; - delete result.context; - delete result.vao; - if ("stencil" in result && result.stencil.op) { - result.stencil.opBack = result.stencil.opFront = result.stencil.op; - delete result.stencil.op; - } - function merge3(name) { - if (name in result) { - var child = result[name]; - delete result[name]; - Object.keys(child).forEach(function(prop) { - result[name + "." + prop] = child[prop]; - }); - } - } - merge3("blend"); - merge3("depth"); - merge3("cull"); - merge3("stencil"); - merge3("polygonOffset"); - merge3("scissor"); - merge3("sample"); - if ("vao" in options2) { - result.vao = options2.vao; - } - return result; - } - function separateDynamic(object, useArrays) { - var staticItems = {}; - var dynamicItems = {}; - Object.keys(object).forEach(function(option) { - var value2 = object[option]; - if (dynamic.isDynamic(value2)) { - dynamicItems[option] = dynamic.unbox(value2, option); - return; - } else if (useArrays && Array.isArray(value2)) { - for (var i4 = 0; i4 < value2.length; ++i4) { - if (dynamic.isDynamic(value2[i4])) { - dynamicItems[option] = dynamic.unbox(value2, option); - return; - } - } - } - staticItems[option] = value2; - }); - return { - dynamic: dynamicItems, - static: staticItems - }; - } - var context = separateDynamic(options.context || {}, true); - var uniforms = separateDynamic(options.uniforms || {}, true); - var attributes = separateDynamic(options.attributes || {}, false); - var opts = separateDynamic(flattenNestedOptions(options), false); - var stats$$12 = { - gpuTime: 0, - cpuTime: 0, - count: 0 - }; - var compiled = core2.compile(opts, attributes, uniforms, context, stats$$12); - var draw4 = compiled.draw; - var batch = compiled.batch; - var scope = compiled.scope; - var EMPTY_ARRAY = []; - function reserve(count2) { - while (EMPTY_ARRAY.length < count2) { - EMPTY_ARRAY.push(null); - } - return EMPTY_ARRAY; - } - function REGLCommand(args2, body) { - var i4; - if (contextLost) { - check$1.raise("context lost"); - } - if (typeof args2 === "function") { - return scope.call(this, null, args2, 0); - } else if (typeof body === "function") { - if (typeof args2 === "number") { - for (i4 = 0; i4 < args2; ++i4) { - scope.call(this, null, body, i4); - } - } else if (Array.isArray(args2)) { - for (i4 = 0; i4 < args2.length; ++i4) { - scope.call(this, args2[i4], body, i4); - } - } else { - return scope.call(this, args2, body, 0); - } - } else if (typeof args2 === "number") { - if (args2 > 0) { - return batch.call(this, reserve(args2 | 0), args2 | 0); - } - } else if (Array.isArray(args2)) { - if (args2.length) { - return batch.call(this, args2, args2.length); - } - } else { - return draw4.call(this, args2); - } - } - return extend4(REGLCommand, { - stats: stats$$12, - destroy: function() { - compiled.destroy(); - } - }); - } - var setFBO = framebufferState.setFBO = compileProcedure({ - framebuffer: dynamic.define.call(null, DYN_PROP, "framebuffer") - }); - function clearImpl(_8, options) { - var clearFlags = 0; - core2.procs.poll(); - var c5 = options.color; - if (c5) { - gl2.clearColor(+c5[0] || 0, +c5[1] || 0, +c5[2] || 0, +c5[3] || 0); - clearFlags |= GL_COLOR_BUFFER_BIT; - } - if ("depth" in options) { - gl2.clearDepth(+options.depth); - clearFlags |= GL_DEPTH_BUFFER_BIT; - } - if ("stencil" in options) { - gl2.clearStencil(options.stencil | 0); - clearFlags |= GL_STENCIL_BUFFER_BIT; - } - check$1(!!clearFlags, "called regl.clear with no buffer specified"); - gl2.clear(clearFlags); - } - function clear(options) { - check$1(typeof options === "object" && options, "regl.clear() takes an object as input"); - if ("framebuffer" in options) { - if (options.framebuffer && options.framebuffer_reglType === "framebufferCube") { - for (var i4 = 0; i4 < 6; ++i4) { - setFBO(extend4({ - framebuffer: options.framebuffer.faces[i4] - }, options), clearImpl); - } - } else { - setFBO(options, clearImpl); - } - } else { - clearImpl(null, options); - } - } - function frame2(cb) { - check$1.type(cb, "function", "regl.frame() callback must be a function"); - rafCallbacks.push(cb); - function cancel() { - var i4 = find4(rafCallbacks, cb); - check$1(i4 >= 0, "cannot cancel a frame twice"); - function pendingCancel() { - var index2 = find4(rafCallbacks, pendingCancel); - rafCallbacks[index2] = rafCallbacks[rafCallbacks.length - 1]; - rafCallbacks.length -= 1; - if (rafCallbacks.length <= 0) { - stopRAF(); - } - } - rafCallbacks[i4] = pendingCancel; - } - startRAF(); - return { - cancel - }; - } - function pollViewport() { - var viewport = nextState.viewport; - var scissorBox = nextState.scissor_box; - viewport[0] = viewport[1] = scissorBox[0] = scissorBox[1] = 0; - contextState.viewportWidth = contextState.framebufferWidth = contextState.drawingBufferWidth = viewport[2] = scissorBox[2] = gl2.drawingBufferWidth; - contextState.viewportHeight = contextState.framebufferHeight = contextState.drawingBufferHeight = viewport[3] = scissorBox[3] = gl2.drawingBufferHeight; - } - function poll() { - contextState.tick += 1; - contextState.time = now2(); - pollViewport(); - core2.procs.poll(); - } - function refresh() { - textureState.refresh(); - pollViewport(); - core2.procs.refresh(); - if (timer3) { - timer3.update(); - } - } - function now2() { - return (clock2() - START_TIME) / 1e3; - } - refresh(); - function addListener(event, callback) { - check$1.type(callback, "function", "listener callback must be a function"); - var callbacks; - switch (event) { - case "frame": - return frame2(callback); - case "lost": - callbacks = lossCallbacks; - break; - case "restore": - callbacks = restoreCallbacks; - break; - case "destroy": - callbacks = destroyCallbacks; - break; - default: - check$1.raise("invalid event, must be one of frame,lost,restore,destroy"); - } - callbacks.push(callback); - return { - cancel: function() { - for (var i4 = 0; i4 < callbacks.length; ++i4) { - if (callbacks[i4] === callback) { - callbacks[i4] = callbacks[callbacks.length - 1]; - callbacks.pop(); - return; - } - } - } - }; - } - var regl2 = extend4(compileProcedure, { - clear, - prop: dynamic.define.bind(null, DYN_PROP), - context: dynamic.define.bind(null, DYN_CONTEXT), - this: dynamic.define.bind(null, DYN_STATE), - draw: compileProcedure({}), - buffer: function(options) { - return bufferState.create(options, GL_ARRAY_BUFFER, false, false); - }, - elements: function(options) { - return elementState.create(options, false); - }, - texture: textureState.create2D, - cube: textureState.createCube, - renderbuffer: renderbufferState.create, - framebuffer: framebufferState.create, - framebufferCube: framebufferState.createCube, - vao: attributeState.createVAO, - attributes: glAttributes, - frame: frame2, - on: addListener, - limits, - hasExtension: function(name) { - return limits.extensions.indexOf(name.toLowerCase()) >= 0; - }, - read: readPixels, - destroy, - _gl: gl2, - _refresh: refresh, - poll: function() { - poll(); - if (timer3) { - timer3.update(); - } - }, - now: now2, - stats: stats$$1 - }); - config.onDone(null, regl2); - return regl2; - } - return wrapREGL; - }); - } -}); - -// node_modules/gl-vec2/epsilon.js -var require_epsilon = __commonJS({ - "node_modules/gl-vec2/epsilon.js"(exports, module2) { - module2.exports = 1e-6; - } -}); - -// node_modules/gl-vec2/create.js -var require_create = __commonJS({ - "node_modules/gl-vec2/create.js"(exports, module2) { - module2.exports = create8; - function create8() { - var out = new Float32Array(2); - out[0] = 0; - out[1] = 0; - return out; - } - } -}); - -// node_modules/gl-vec2/clone.js -var require_clone = __commonJS({ - "node_modules/gl-vec2/clone.js"(exports, module2) { - module2.exports = clone10; - function clone10(a4) { - var out = new Float32Array(2); - out[0] = a4[0]; - out[1] = a4[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/fromValues.js -var require_fromValues = __commonJS({ - "node_modules/gl-vec2/fromValues.js"(exports, module2) { - module2.exports = fromValues7; - function fromValues7(x6, y5) { - var out = new Float32Array(2); - out[0] = x6; - out[1] = y5; - return out; - } - } -}); - -// node_modules/gl-vec2/copy.js -var require_copy = __commonJS({ - "node_modules/gl-vec2/copy.js"(exports, module2) { - module2.exports = copy8; - function copy8(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/set.js -var require_set = __commonJS({ - "node_modules/gl-vec2/set.js"(exports, module2) { - module2.exports = set10; - function set10(out, x6, y5) { - out[0] = x6; - out[1] = y5; - return out; - } - } -}); - -// node_modules/gl-vec2/equals.js -var require_equals = __commonJS({ - "node_modules/gl-vec2/equals.js"(exports, module2) { - module2.exports = equals7; - var EPSILON3 = require_epsilon(); - function equals7(a4, b10) { - var a0 = a4[0]; - var a1 = a4[1]; - var b02 = b10[0]; - var b12 = b10[1]; - return Math.abs(a0 - b02) <= EPSILON3 * Math.max(1, Math.abs(a0), Math.abs(b02)) && Math.abs(a1 - b12) <= EPSILON3 * Math.max(1, Math.abs(a1), Math.abs(b12)); - } - } -}); - -// node_modules/gl-vec2/exactEquals.js -var require_exactEquals = __commonJS({ - "node_modules/gl-vec2/exactEquals.js"(exports, module2) { - module2.exports = exactEquals7; - function exactEquals7(a4, b10) { - return a4[0] === b10[0] && a4[1] === b10[1]; - } - } -}); - -// node_modules/gl-vec2/add.js -var require_add = __commonJS({ - "node_modules/gl-vec2/add.js"(exports, module2) { - module2.exports = add8; - function add8(out, a4, b10) { - out[0] = a4[0] + b10[0]; - out[1] = a4[1] + b10[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/subtract.js -var require_subtract = __commonJS({ - "node_modules/gl-vec2/subtract.js"(exports, module2) { - module2.exports = subtract6; - function subtract6(out, a4, b10) { - out[0] = a4[0] - b10[0]; - out[1] = a4[1] - b10[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/sub.js -var require_sub = __commonJS({ - "node_modules/gl-vec2/sub.js"(exports, module2) { - module2.exports = require_subtract(); - } -}); - -// node_modules/gl-vec2/multiply.js -var require_multiply = __commonJS({ - "node_modules/gl-vec2/multiply.js"(exports, module2) { - module2.exports = multiply7; - function multiply7(out, a4, b10) { - out[0] = a4[0] * b10[0]; - out[1] = a4[1] * b10[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/mul.js -var require_mul = __commonJS({ - "node_modules/gl-vec2/mul.js"(exports, module2) { - module2.exports = require_multiply(); - } -}); - -// node_modules/gl-vec2/divide.js -var require_divide = __commonJS({ - "node_modules/gl-vec2/divide.js"(exports, module2) { - module2.exports = divide4; - function divide4(out, a4, b10) { - out[0] = a4[0] / b10[0]; - out[1] = a4[1] / b10[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/div.js -var require_div = __commonJS({ - "node_modules/gl-vec2/div.js"(exports, module2) { - module2.exports = require_divide(); - } -}); - -// node_modules/gl-vec2/inverse.js -var require_inverse = __commonJS({ - "node_modules/gl-vec2/inverse.js"(exports, module2) { - module2.exports = inverse4; - function inverse4(out, a4) { - out[0] = 1 / a4[0]; - out[1] = 1 / a4[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/min.js -var require_min = __commonJS({ - "node_modules/gl-vec2/min.js"(exports, module2) { - module2.exports = min7; - function min7(out, a4, b10) { - out[0] = Math.min(a4[0], b10[0]); - out[1] = Math.min(a4[1], b10[1]); - return out; - } - } -}); - -// node_modules/gl-vec2/max.js -var require_max = __commonJS({ - "node_modules/gl-vec2/max.js"(exports, module2) { - module2.exports = max8; - function max8(out, a4, b10) { - out[0] = Math.max(a4[0], b10[0]); - out[1] = Math.max(a4[1], b10[1]); - return out; - } - } -}); - -// node_modules/gl-vec2/rotate.js -var require_rotate = __commonJS({ - "node_modules/gl-vec2/rotate.js"(exports, module2) { - module2.exports = rotate8; - function rotate8(out, a4, angle3) { - var c5 = Math.cos(angle3), s4 = Math.sin(angle3); - var x6 = a4[0], y5 = a4[1]; - out[0] = x6 * c5 - y5 * s4; - out[1] = x6 * s4 + y5 * c5; - return out; - } - } -}); - -// node_modules/gl-vec2/floor.js -var require_floor = __commonJS({ - "node_modules/gl-vec2/floor.js"(exports, module2) { - module2.exports = floor4; - function floor4(out, a4) { - out[0] = Math.floor(a4[0]); - out[1] = Math.floor(a4[1]); - return out; - } - } -}); - -// node_modules/gl-vec2/ceil.js -var require_ceil = __commonJS({ - "node_modules/gl-vec2/ceil.js"(exports, module2) { - module2.exports = ceil4; - function ceil4(out, a4) { - out[0] = Math.ceil(a4[0]); - out[1] = Math.ceil(a4[1]); - return out; - } - } -}); - -// node_modules/gl-vec2/round.js -var require_round = __commonJS({ - "node_modules/gl-vec2/round.js"(exports, module2) { - module2.exports = round5; - function round5(out, a4) { - out[0] = Math.round(a4[0]); - out[1] = Math.round(a4[1]); - return out; - } - } -}); - -// node_modules/gl-vec2/scale.js -var require_scale = __commonJS({ - "node_modules/gl-vec2/scale.js"(exports, module2) { - module2.exports = scale12; - function scale12(out, a4, b10) { - out[0] = a4[0] * b10; - out[1] = a4[1] * b10; - return out; - } - } -}); - -// node_modules/gl-vec2/scaleAndAdd.js -var require_scaleAndAdd = __commonJS({ - "node_modules/gl-vec2/scaleAndAdd.js"(exports, module2) { - module2.exports = scaleAndAdd4; - function scaleAndAdd4(out, a4, b10, scale12) { - out[0] = a4[0] + b10[0] * scale12; - out[1] = a4[1] + b10[1] * scale12; - return out; - } - } -}); - -// node_modules/gl-vec2/distance.js -var require_distance = __commonJS({ - "node_modules/gl-vec2/distance.js"(exports, module2) { - module2.exports = distance15; - function distance15(a4, b10) { - var x6 = b10[0] - a4[0], y5 = b10[1] - a4[1]; - return Math.sqrt(x6 * x6 + y5 * y5); - } - } -}); - -// node_modules/gl-vec2/dist.js -var require_dist = __commonJS({ - "node_modules/gl-vec2/dist.js"(exports, module2) { - module2.exports = require_distance(); - } -}); - -// node_modules/gl-vec2/squaredDistance.js -var require_squaredDistance = __commonJS({ - "node_modules/gl-vec2/squaredDistance.js"(exports, module2) { - module2.exports = squaredDistance4; - function squaredDistance4(a4, b10) { - var x6 = b10[0] - a4[0], y5 = b10[1] - a4[1]; - return x6 * x6 + y5 * y5; - } - } -}); - -// node_modules/gl-vec2/sqrDist.js -var require_sqrDist = __commonJS({ - "node_modules/gl-vec2/sqrDist.js"(exports, module2) { - module2.exports = require_squaredDistance(); - } -}); - -// node_modules/gl-vec2/length.js -var require_length = __commonJS({ - "node_modules/gl-vec2/length.js"(exports, module2) { - module2.exports = length5; - function length5(a4) { - var x6 = a4[0], y5 = a4[1]; - return Math.sqrt(x6 * x6 + y5 * y5); - } - } -}); - -// node_modules/gl-vec2/len.js -var require_len = __commonJS({ - "node_modules/gl-vec2/len.js"(exports, module2) { - module2.exports = require_length(); - } -}); - -// node_modules/gl-vec2/squaredLength.js -var require_squaredLength = __commonJS({ - "node_modules/gl-vec2/squaredLength.js"(exports, module2) { - module2.exports = squaredLength5; - function squaredLength5(a4) { - var x6 = a4[0], y5 = a4[1]; - return x6 * x6 + y5 * y5; - } - } -}); - -// node_modules/gl-vec2/sqrLen.js -var require_sqrLen = __commonJS({ - "node_modules/gl-vec2/sqrLen.js"(exports, module2) { - module2.exports = require_squaredLength(); - } -}); - -// node_modules/gl-vec2/negate.js -var require_negate = __commonJS({ - "node_modules/gl-vec2/negate.js"(exports, module2) { - module2.exports = negate4; - function negate4(out, a4) { - out[0] = -a4[0]; - out[1] = -a4[1]; - return out; - } - } -}); - -// node_modules/gl-vec2/normalize.js -var require_normalize = __commonJS({ - "node_modules/gl-vec2/normalize.js"(exports, module2) { - module2.exports = normalize5; - function normalize5(out, a4) { - var x6 = a4[0], y5 = a4[1]; - var len5 = x6 * x6 + y5 * y5; - if (len5 > 0) { - len5 = 1 / Math.sqrt(len5); - out[0] = a4[0] * len5; - out[1] = a4[1] * len5; - } - return out; - } - } -}); - -// node_modules/gl-vec2/dot.js -var require_dot = __commonJS({ - "node_modules/gl-vec2/dot.js"(exports, module2) { - module2.exports = dot7; - function dot7(a4, b10) { - return a4[0] * b10[0] + a4[1] * b10[1]; - } - } -}); - -// node_modules/gl-vec2/cross.js -var require_cross = __commonJS({ - "node_modules/gl-vec2/cross.js"(exports, module2) { - module2.exports = cross6; - function cross6(out, a4, b10) { - var z3 = a4[0] * b10[1] - a4[1] * b10[0]; - out[0] = out[1] = 0; - out[2] = z3; - return out; - } - } -}); - -// node_modules/gl-vec2/lerp.js -var require_lerp = __commonJS({ - "node_modules/gl-vec2/lerp.js"(exports, module2) { - module2.exports = lerp6; - function lerp6(out, a4, b10, t4) { - var ax = a4[0], ay = a4[1]; - out[0] = ax + t4 * (b10[0] - ax); - out[1] = ay + t4 * (b10[1] - ay); - return out; - } - } -}); - -// node_modules/gl-vec2/random.js -var require_random = __commonJS({ - "node_modules/gl-vec2/random.js"(exports, module2) { - module2.exports = random5; - function random5(out, scale12) { - scale12 = scale12 || 1; - var r4 = Math.random() * 2 * Math.PI; - out[0] = Math.cos(r4) * scale12; - out[1] = Math.sin(r4) * scale12; - return out; - } - } -}); - -// node_modules/gl-vec2/transformMat2.js -var require_transformMat2 = __commonJS({ - "node_modules/gl-vec2/transformMat2.js"(exports, module2) { - module2.exports = transformMat22; - function transformMat22(out, a4, m4) { - var x6 = a4[0], y5 = a4[1]; - out[0] = m4[0] * x6 + m4[2] * y5; - out[1] = m4[1] * x6 + m4[3] * y5; - return out; - } - } -}); - -// node_modules/gl-vec2/transformMat2d.js -var require_transformMat2d = __commonJS({ - "node_modules/gl-vec2/transformMat2d.js"(exports, module2) { - module2.exports = transformMat2d2; - function transformMat2d2(out, a4, m4) { - var x6 = a4[0], y5 = a4[1]; - out[0] = m4[0] * x6 + m4[2] * y5 + m4[4]; - out[1] = m4[1] * x6 + m4[3] * y5 + m4[5]; - return out; - } - } -}); - -// node_modules/gl-vec2/transformMat3.js -var require_transformMat3 = __commonJS({ - "node_modules/gl-vec2/transformMat3.js"(exports, module2) { - module2.exports = transformMat33; - function transformMat33(out, a4, m4) { - var x6 = a4[0], y5 = a4[1]; - out[0] = m4[0] * x6 + m4[3] * y5 + m4[6]; - out[1] = m4[1] * x6 + m4[4] * y5 + m4[7]; - return out; - } - } -}); - -// node_modules/gl-vec2/transformMat4.js -var require_transformMat4 = __commonJS({ - "node_modules/gl-vec2/transformMat4.js"(exports, module2) { - module2.exports = transformMat44; - function transformMat44(out, a4, m4) { - var x6 = a4[0], y5 = a4[1]; - out[0] = m4[0] * x6 + m4[4] * y5 + m4[12]; - out[1] = m4[1] * x6 + m4[5] * y5 + m4[13]; - return out; - } - } -}); - -// node_modules/gl-vec2/forEach.js -var require_forEach = __commonJS({ - "node_modules/gl-vec2/forEach.js"(exports, module2) { - module2.exports = forEach4; - var vec = require_create()(); - function forEach4(a4, stride, offset, count2, fn2, arg) { - var i4, l4; - if (!stride) { - stride = 2; - } - if (!offset) { - offset = 0; - } - if (count2) { - l4 = Math.min(count2 * stride + offset, a4.length); - } else { - l4 = a4.length; - } - for (i4 = offset; i4 < l4; i4 += stride) { - vec[0] = a4[i4]; - vec[1] = a4[i4 + 1]; - fn2(vec, vec, arg); - a4[i4] = vec[0]; - a4[i4 + 1] = vec[1]; - } - return a4; - } - } -}); - -// node_modules/gl-vec2/limit.js -var require_limit = __commonJS({ - "node_modules/gl-vec2/limit.js"(exports, module2) { - module2.exports = limit; - function limit(out, a4, max8) { - var mSq = a4[0] * a4[0] + a4[1] * a4[1]; - if (mSq > max8 * max8) { - var n3 = Math.sqrt(mSq); - out[0] = a4[0] / n3 * max8; - out[1] = a4[1] / n3 * max8; - } else { - out[0] = a4[0]; - out[1] = a4[1]; - } - return out; - } - } -}); - -// node_modules/gl-vec2/index.js -var require_gl_vec2 = __commonJS({ - "node_modules/gl-vec2/index.js"(exports, module2) { - module2.exports = { - EPSILON: require_epsilon(), - create: require_create(), - clone: require_clone(), - fromValues: require_fromValues(), - copy: require_copy(), - set: require_set(), - equals: require_equals(), - exactEquals: require_exactEquals(), - add: require_add(), - subtract: require_subtract(), - sub: require_sub(), - multiply: require_multiply(), - mul: require_mul(), - divide: require_divide(), - div: require_div(), - inverse: require_inverse(), - min: require_min(), - max: require_max(), - rotate: require_rotate(), - floor: require_floor(), - ceil: require_ceil(), - round: require_round(), - scale: require_scale(), - scaleAndAdd: require_scaleAndAdd(), - distance: require_distance(), - dist: require_dist(), - squaredDistance: require_squaredDistance(), - sqrDist: require_sqrDist(), - length: require_length(), - len: require_len(), - squaredLength: require_squaredLength(), - sqrLen: require_sqrLen(), - negate: require_negate(), - normalize: require_normalize(), - dot: require_dot(), - cross: require_cross(), - lerp: require_lerp(), - random: require_random(), - transformMat2: require_transformMat2(), - transformMat2d: require_transformMat2d(), - transformMat3: require_transformMat3(), - transformMat4: require_transformMat4(), - forEach: require_forEach(), - limit: require_limit() - }; - } -}); - -// node_modules/polyline-miter-util/index.js -var require_polyline_miter_util = __commonJS({ - "node_modules/polyline-miter-util/index.js"(exports, module2) { - var add8 = require_add(); - var set10 = require_set(); - var normalize5 = require_normalize(); - var subtract6 = require_subtract(); - var dot7 = require_dot(); - var tmp = [0, 0]; - module2.exports.computeMiter = function computeMiter2(tangent, miter, lineA, lineB, halfThick) { - add8(tangent, lineA, lineB); - normalize5(tangent, tangent); - set10(miter, -tangent[1], tangent[0]); - set10(tmp, -lineA[1], lineA[0]); - return halfThick / dot7(miter, tmp); - }; - module2.exports.normal = function normal2(out, dir) { - set10(out, -dir[1], dir[0]); - return out; - }; - module2.exports.direction = function direction5(out, a4, b10) { - subtract6(out, a4, b10); - normalize5(out, out); - return out; - }; - } -}); - -// node_modules/@antv/hierarchy/build/hierarchy.js -var require_hierarchy = __commonJS({ - "node_modules/@antv/hierarchy/build/hierarchy.js"(exports, module2) { - (function webpackUniversalModuleDefinition(root, factory) { - if (typeof exports === "object" && typeof module2 === "object") - module2.exports = factory(); - else if (typeof define === "function" && define.amd) - define([], factory); - else if (typeof exports === "object") - exports["Hierarchy"] = factory(); - else - root["Hierarchy"] = factory(); - })(typeof self !== "undefined" ? self : exports, function() { - return function(modules) { - var installedModules = {}; - function __webpack_require__(moduleId) { - if (installedModules[moduleId]) { - return installedModules[moduleId].exports; - } - var module3 = installedModules[moduleId] = { - i: moduleId, - l: false, - exports: {} - }; - modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); - module3.l = true; - return module3.exports; - } - __webpack_require__.m = modules; - __webpack_require__.c = installedModules; - __webpack_require__.d = function(exports2, name, getter) { - if (!__webpack_require__.o(exports2, name)) { - Object.defineProperty(exports2, name, { - configurable: false, - enumerable: true, - get: getter - }); - } - }; - __webpack_require__.n = function(module3) { - var getter = module3 && module3.__esModule ? function getDefault4() { - return module3["default"]; - } : function getModuleExports() { - return module3; - }; - __webpack_require__.d(getter, "a", getter); - return getter; - }; - __webpack_require__.o = function(object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - __webpack_require__.p = ""; - return __webpack_require__(__webpack_require__.s = 31); - }([ - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - __webpack_exports__["a"] = function(value2) { - return Array.isArray ? Array.isArray(value2) : Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(value2, "Array"); - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var isArrayLike2 = function(value2) { - return value2 !== null && typeof value2 !== "function" && isFinite(value2.length); - }; - __webpack_exports__["a"] = isArrayLike2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_1__is_object__ = __webpack_require__(13); - function each3(elements, func) { - if (!elements) { - return; - } - var rst; - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(elements)) { - for (var i4 = 0, len5 = elements.length; i4 < len5; i4++) { - rst = func(elements[i4], i4); - if (rst === false) { - break; - } - } - } else if (Object(__WEBPACK_IMPORTED_MODULE_1__is_object__["a"])(elements)) { - for (var k4 in elements) { - if (elements.hasOwnProperty(k4)) { - rst = func(elements[k4], k4); - if (rst === false) { - break; - } - } - } - } - } - __webpack_exports__["a"] = each3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - __webpack_exports__["a"] = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(value2, "Function"); - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var toString7 = {}.toString; - var isType6 = function(value2, type2) { - return toString7.call(value2) === "[object " + type2 + "]"; - }; - __webpack_exports__["a"] = isType6; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - var isNumber7 = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(value2, "Number"); - }; - __webpack_exports__["a"] = isNumber7; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var isNil2 = function(value2) { - return value2 === null || value2 === void 0; - }; - __webpack_exports__["a"] = isNil2; - }, - function(module3, exports2, __webpack_require__) { - var _require = __webpack_require__(33), mix2 = _require.mix; - module3.exports = { - assign: mix2 - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - __webpack_exports__["a"] = function(str8) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(str8, "String"); - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_object_like__ = __webpack_require__(15); - var __WEBPACK_IMPORTED_MODULE_1__is_type__ = __webpack_require__(4); - var isPlainObject3 = function(value2) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_object_like__["a"])(value2) || !Object(__WEBPACK_IMPORTED_MODULE_1__is_type__["a"])(value2, "Object")) { - return false; - } - if (Object.getPrototypeOf(value2) === null) { - return true; - } - var proto = value2; - while (Object.getPrototypeOf(proto) !== null) { - proto = Object.getPrototypeOf(proto); - } - return Object.getPrototypeOf(value2) === proto; - }; - __webpack_exports__["a"] = isPlainObject3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_nil__ = __webpack_require__(6); - __webpack_exports__["a"] = function(value2) { - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_nil__["a"])(value2)) - return ""; - return value2.toString(); - }; - }, - function(module3, exports2, __webpack_require__) { - var hierarchy2 = __webpack_require__(18); - var Layout2 = /* @__PURE__ */ function() { - function Layout3(root, options) { - if (options === void 0) { - options = {}; - } - var me = this; - me.options = options; - me.rootNode = hierarchy2(root, options); - } - var _proto = Layout3.prototype; - _proto.execute = function execute() { - throw new Error("please override this method"); - }; - return Layout3; - }(); - module3.exports = Layout2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array_like__ = __webpack_require__(1); - var contains2 = function(arr, value2) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_array_like__["a"])(arr)) { - return false; - } - return arr.indexOf(value2) > -1; - }; - __webpack_exports__["a"] = contains2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = function(value2) { - var type2 = typeof value2; - return value2 !== null && type2 === "object" || type2 === "function"; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_array_like__ = __webpack_require__(1); - var filter2 = function(arr, func) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_array_like__["a"])(arr)) { - return arr; - } - var result = []; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(arr, function(value2, index2) { - if (func(value2, index2)) { - result.push(value2); - } - }); - return result; - }; - __webpack_exports__["a"] = filter2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var isObjectLike6 = function(value2) { - return typeof value2 === "object" && value2 !== null; - }; - __webpack_exports__["a"] = isObjectLike6; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = mix2; - function _mix2(dist4, obj) { - for (var key in obj) { - if (obj.hasOwnProperty(key) && key !== "constructor" && obj[key] !== void 0) { - dist4[key] = obj[key]; - } - } - } - function mix2(dist4, src1, src2, src3) { - if (src1) - _mix2(dist4, src1); - if (src2) - _mix2(dist4, src2); - if (src3) - _mix2(dist4, src3); - return dist4; - } - }, - function(module3, exports2, __webpack_require__) { - var separateTree = __webpack_require__(30); - var VALID_DIRECTIONS = [ - "LR", - "RL", - "TB", - "BT", - "H", - "V" - ]; - var HORIZONTAL_DIRECTIONS = ["LR", "RL", "H"]; - var isHorizontal2 = function isHorizontal3(direction5) { - return HORIZONTAL_DIRECTIONS.indexOf(direction5) > -1; - }; - var DEFAULT_DIRECTION = VALID_DIRECTIONS[0]; - module3.exports = function(root, options, layoutAlgrithm) { - var direction5 = options.direction || DEFAULT_DIRECTION; - options.isHorizontal = isHorizontal2(direction5); - if (direction5 && VALID_DIRECTIONS.indexOf(direction5) === -1) { - throw new TypeError("Invalid direction: " + direction5); - } - if (direction5 === VALID_DIRECTIONS[0]) { - layoutAlgrithm(root, options); - } else if (direction5 === VALID_DIRECTIONS[1]) { - layoutAlgrithm(root, options); - root.right2left(); - } else if (direction5 === VALID_DIRECTIONS[2]) { - layoutAlgrithm(root, options); - } else if (direction5 === VALID_DIRECTIONS[3]) { - layoutAlgrithm(root, options); - root.bottom2top(); - } else if (direction5 === VALID_DIRECTIONS[4] || direction5 === VALID_DIRECTIONS[5]) { - var _separateTree = separateTree(root, options), left2 = _separateTree.left, right2 = _separateTree.right; - layoutAlgrithm(left2, options); - layoutAlgrithm(right2, options); - options.isHorizontal ? left2.right2left() : left2.bottom2top(); - right2.translate(left2.x - right2.x, left2.y - right2.y); - root.x = left2.x; - root.y = right2.y; - var bb = root.getBoundingBox(); - if (options.isHorizontal) { - if (bb.top < 0) { - root.translate(0, -bb.top); - } - } else { - if (bb.left < 0) { - root.translate(-bb.left, 0); - } - } - } - var fixedRoot = options.fixedRoot; - if (fixedRoot === void 0) - fixedRoot = true; - if (fixedRoot) { - root.translate(-(root.x + root.width / 2 + root.hgap), -(root.y + root.height / 2 + root.vgap)); - } - return root; - }; - }, - function(module3, exports2, __webpack_require__) { - var util = __webpack_require__(7); - var PEM = 18; - var DEFAULT_HEIGHT = PEM * 2; - var DEFAULT_GAP = PEM; - var DEFAULT_OPTIONS37 = { - getId: function getId4(d3) { - return d3.id || d3.name; - }, - getPreH: function getPreH(d3) { - return d3.preH || 0; - }, - getPreV: function getPreV(d3) { - return d3.preV || 0; - }, - getHGap: function getHGap4(d3) { - return d3.hgap || DEFAULT_GAP; - }, - getVGap: function getVGap4(d3) { - return d3.vgap || DEFAULT_GAP; - }, - getChildren: function getChildren(d3) { - return d3.children; - }, - getHeight: function getHeight6(d3) { - return d3.height || DEFAULT_HEIGHT; - }, - getWidth: function getWidth4(d3) { - var label17 = d3.label || " "; - return d3.width || label17.split("").length * PEM; - } - }; - function Node5(data3, options) { - var me = this; - me.vgap = me.hgap = 0; - if (data3 instanceof Node5) - return data3; - me.data = data3; - var hgap = options.getHGap(data3); - var vgap = options.getVGap(data3); - me.preH = options.getPreH(data3); - me.preV = options.getPreV(data3); - me.width = options.getWidth(data3); - me.height = options.getHeight(data3); - me.width += me.preH; - me.height += me.preV; - me.id = options.getId(data3); - me.x = me.y = 0; - me.depth = 0; - if (!me.children) { - me.children = []; - } - me.addGap(hgap, vgap); - return me; - } - util.assign(Node5.prototype, { - isRoot: function isRoot() { - return this.depth === 0; - }, - isLeaf: function isLeaf() { - return this.children.length === 0; - }, - addGap: function addGap(hgap, vgap) { - var me = this; - me.hgap += hgap; - me.vgap += vgap; - me.width += 2 * hgap; - me.height += 2 * vgap; - }, - eachNode: function eachNode(callback) { - var me = this; - var nodes = [me]; - var current; - while (current = nodes.shift()) { - callback(current); - nodes = current.children.concat(nodes); - } - }, - DFTraverse: function DFTraverse(callback) { - this.eachNode(callback); - }, - BFTraverse: function BFTraverse(callback) { - var me = this; - var nodes = [me]; - var current; - while (current = nodes.shift()) { - callback(current); - nodes = nodes.concat(current.children); - } - }, - getBoundingBox: function getBoundingBox2() { - var bb = { - left: Number.MAX_VALUE, - top: Number.MAX_VALUE, - width: 0, - height: 0 - }; - this.eachNode(function(node) { - bb.left = Math.min(bb.left, node.x); - bb.top = Math.min(bb.top, node.y); - bb.width = Math.max(bb.width, node.x + node.width); - bb.height = Math.max(bb.height, node.y + node.height); - }); - return bb; - }, - translate: function translate6(tx, ty) { - if (tx === void 0) { - tx = 0; - } - if (ty === void 0) { - ty = 0; - } - this.eachNode(function(node) { - node.x += tx; - node.y += ty; - node.x += node.preH; - node.y += node.preV; - }); - }, - right2left: function right2left() { - var me = this; - var bb = me.getBoundingBox(); - me.eachNode(function(node) { - node.x = node.x - (node.x - bb.left) * 2 - node.width; - }); - me.translate(bb.width, 0); - }, - bottom2top: function bottom2top() { - var me = this; - var bb = me.getBoundingBox(); - me.eachNode(function(node) { - node.y = node.y - (node.y - bb.top) * 2 - node.height; - }); - me.translate(0, bb.height); - } - }); - function hierarchy2(data3, options, isolated) { - if (options === void 0) { - options = {}; - } - options = util.assign({}, DEFAULT_OPTIONS37, options); - var root = new Node5(data3, options); - var nodes = [root]; - var node; - if (!isolated && !data3.collapsed) { - while (node = nodes.shift()) { - if (!node.data.collapsed) { - var children = options.getChildren(node.data); - var length5 = children ? children.length : 0; - node.children = new Array(length5); - if (children && length5) { - for (var i4 = 0; i4 < length5; i4++) { - var child = new Node5(children[i4], options); - node.children[i4] = child; - nodes.push(child); - child.parent = node; - child.depth = node.depth + 1; - } - } - } - } - } - return root; - } - module3.exports = hierarchy2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_nil__ = __webpack_require__(6); - var __WEBPACK_IMPORTED_MODULE_1__keys__ = __webpack_require__(20); - function isMatch2(obj, attrs) { - var _keys = Object(__WEBPACK_IMPORTED_MODULE_1__keys__["a"])(attrs); - var length5 = _keys.length; - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_nil__["a"])(obj)) - return !length5; - for (var i4 = 0; i4 < length5; i4 += 1) { - var key = _keys[i4]; - if (attrs[key] !== obj[key] || !(key in obj)) { - return false; - } - } - return true; - } - __webpack_exports__["a"] = isMatch2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_function__ = __webpack_require__(3); - var keys2 = Object.keys ? function(obj) { - return Object.keys(obj); - } : function(obj) { - var result = []; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(obj, function(value2, key) { - if (!(Object(__WEBPACK_IMPORTED_MODULE_1__is_function__["a"])(obj) && key === "prototype")) { - result.push(key); - } - }); - return result; - }; - __webpack_exports__["a"] = keys2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array_like__ = __webpack_require__(1); - var splice3 = Array.prototype.splice; - var pullAt3 = function pullAt4(arr, indexes) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_array_like__["a"])(arr)) { - return []; - } - var length5 = arr ? indexes.length : 0; - var last2 = length5 - 1; - while (length5--) { - var previous = void 0; - var index2 = indexes[length5]; - if (length5 === last2 || index2 !== previous) { - previous = index2; - splice3.call(arr, index2, 1); - } - } - return arr; - }; - __webpack_exports__["a"] = pullAt3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__contains__ = __webpack_require__(12); - var __WEBPACK_IMPORTED_MODULE_1__each__ = __webpack_require__(2); - var uniq5 = function(arr) { - var resultArr = []; - Object(__WEBPACK_IMPORTED_MODULE_1__each__["a"])(arr, function(item) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__contains__["a"])(resultArr, item)) { - resultArr.push(item); - } - }); - return resultArr; - }; - __webpack_exports__["a"] = uniq5; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_1__is_function__ = __webpack_require__(3); - var __WEBPACK_IMPORTED_MODULE_2__group_by__ = __webpack_require__(24); - var groupToMap2 = function(data3, condition) { - if (!condition) { - return { - 0: data3 - }; - } - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_function__["a"])(condition)) { - var paramsCondition_1 = Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(condition) ? condition : condition.replace(/\s+/g, "").split("*"); - condition = function(row) { - var unique = "_"; - for (var i4 = 0, l4 = paramsCondition_1.length; i4 < l4; i4++) { - unique += row[paramsCondition_1[i4]] && row[paramsCondition_1[i4]].toString(); - } - return unique; - }; - } - var groups = Object(__WEBPACK_IMPORTED_MODULE_2__group_by__["a"])(data3, condition); - return groups; - }; - __webpack_exports__["a"] = groupToMap2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_2__is_function__ = __webpack_require__(3); - var hasOwnProperty4 = Object.prototype.hasOwnProperty; - function groupBy2(data3, condition) { - if (!condition || !Object(__WEBPACK_IMPORTED_MODULE_1__is_array__["a"])(data3)) { - return {}; - } - var result = {}; - var predicate = Object(__WEBPACK_IMPORTED_MODULE_2__is_function__["a"])(condition) ? condition : function(item) { - return item[condition]; - }; - var key; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(data3, function(item) { - key = predicate(item); - if (hasOwnProperty4.call(result, key)) { - result[key].push(item); - } else { - result[key] = [item]; - } - }); - return result; - } - __webpack_exports__["a"] = groupBy2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = function(obj, key) { - return obj.hasOwnProperty(key); - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_function__ = __webpack_require__(3); - var values2 = Object.values ? function(obj) { - return Object.values(obj); - } : function(obj) { - var result = []; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(obj, function(value2, key) { - if (!(Object(__WEBPACK_IMPORTED_MODULE_1__is_function__["a"])(obj) && key === "prototype")) { - result.push(value2); - } - }); - return result; - }; - __webpack_exports__["a"] = values2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var toString7 = {}.toString; - var getType3 = function(value2) { - return toString7.call(value2).replace(/^\[object /, "").replace(/]$/, ""); - }; - __webpack_exports__["a"] = getType3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var objectProto5 = Object.prototype; - var isPrototype2 = function(value2) { - var Ctor = value2 && value2.constructor; - var proto = typeof Ctor === "function" && Ctor.prototype || objectProto5; - return value2 === proto; - }; - __webpack_exports__["a"] = isPrototype2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_object_like__ = __webpack_require__(15); - var __WEBPACK_IMPORTED_MODULE_1__is_array_like__ = __webpack_require__(1); - var __WEBPACK_IMPORTED_MODULE_2__is_string__ = __webpack_require__(8); - var isEqual3 = function(value2, other2) { - if (value2 === other2) { - return true; - } - if (!value2 || !other2) { - return false; - } - if (Object(__WEBPACK_IMPORTED_MODULE_2__is_string__["a"])(value2) || Object(__WEBPACK_IMPORTED_MODULE_2__is_string__["a"])(other2)) { - return false; - } - if (Object(__WEBPACK_IMPORTED_MODULE_1__is_array_like__["a"])(value2) || Object(__WEBPACK_IMPORTED_MODULE_1__is_array_like__["a"])(other2)) { - if (value2.length !== other2.length) { - return false; - } - var rst = true; - for (var i4 = 0; i4 < value2.length; i4++) { - rst = isEqual3(value2[i4], other2[i4]); - if (!rst) { - break; - } - } - return rst; - } - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_object_like__["a"])(value2) || Object(__WEBPACK_IMPORTED_MODULE_0__is_object_like__["a"])(other2)) { - var valueKeys = Object.keys(value2); - var otherKeys = Object.keys(other2); - if (valueKeys.length !== otherKeys.length) { - return false; - } - var rst = true; - for (var i4 = 0; i4 < valueKeys.length; i4++) { - rst = isEqual3(value2[valueKeys[i4]], other2[valueKeys[i4]]); - if (!rst) { - break; - } - } - return rst; - } - return false; - }; - __webpack_exports__["a"] = isEqual3; - }, - function(module3, exports2, __webpack_require__) { - var hierarchy2 = __webpack_require__(18); - module3.exports = function(root, options) { - var left2 = hierarchy2(root.data, options, true); - var right2 = hierarchy2(root.data, options, true); - var treeSize = root.children.length; - var rightTreeSize = Math.round(treeSize / 2); - var getSide = options.getSide || function(child2, index2) { - if (index2 < rightTreeSize) { - return "right"; - } - return "left"; - }; - for (var i4 = 0; i4 < treeSize; i4++) { - var child = root.children[i4]; - var side = getSide(child, i4); - if (side === "right") { - right2.children.push(child); - } else { - left2.children.push(child); - } - } - left2.eachNode(function(node) { - if (!node.isRoot()) { - node.side = "left"; - } - }); - right2.eachNode(function(node) { - if (!node.isRoot()) { - node.side = "right"; - } - }); - return { - left: left2, - right: right2 - }; - }; - }, - function(module3, exports2, __webpack_require__) { - var hierarchy2 = { - compactBox: __webpack_require__(32), - dendrogram: __webpack_require__(114), - indented: __webpack_require__(116), - mindmap: __webpack_require__(118) - }; - module3.exports = hierarchy2; - }, - function(module3, exports2, __webpack_require__) { - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - var TreeLayout = __webpack_require__(11); - var nonLayeredTidyTree = __webpack_require__(113); - var doTreeLayout = __webpack_require__(17); - var util = __webpack_require__(7); - var CompactBoxTreeLayout = /* @__PURE__ */ function(_TreeLayout) { - _inheritsLoose(CompactBoxTreeLayout2, _TreeLayout); - function CompactBoxTreeLayout2() { - return _TreeLayout.apply(this, arguments) || this; - } - var _proto = CompactBoxTreeLayout2.prototype; - _proto.execute = function execute() { - var me = this; - return doTreeLayout(me.rootNode, me.options, nonLayeredTidyTree); - }; - return CompactBoxTreeLayout2; - }(TreeLayout); - var DEFAULT_OPTIONS37 = {}; - function compactBoxLayout(root, options) { - options = util.assign({}, DEFAULT_OPTIONS37, options); - return new CompactBoxTreeLayout(root, options).execute(); - } - module3.exports = compactBoxLayout; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); - var __WEBPACK_IMPORTED_MODULE_0__contains__ = __webpack_require__(12); - __webpack_require__.d(__webpack_exports__, "contains", function() { - return __WEBPACK_IMPORTED_MODULE_0__contains__["a"]; - }); - __webpack_require__.d(__webpack_exports__, "includes", function() { - return __WEBPACK_IMPORTED_MODULE_0__contains__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_1__difference__ = __webpack_require__(34); - __webpack_require__.d(__webpack_exports__, "difference", function() { - return __WEBPACK_IMPORTED_MODULE_1__difference__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_2__find__ = __webpack_require__(35); - __webpack_require__.d(__webpack_exports__, "find", function() { - return __WEBPACK_IMPORTED_MODULE_2__find__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_3__find_index__ = __webpack_require__(36); - __webpack_require__.d(__webpack_exports__, "findIndex", function() { - return __WEBPACK_IMPORTED_MODULE_3__find_index__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_4__first_value__ = __webpack_require__(37); - __webpack_require__.d(__webpack_exports__, "firstValue", function() { - return __WEBPACK_IMPORTED_MODULE_4__first_value__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_5__flatten__ = __webpack_require__(38); - __webpack_require__.d(__webpack_exports__, "flatten", function() { - return __WEBPACK_IMPORTED_MODULE_5__flatten__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_6__flatten_deep__ = __webpack_require__(39); - __webpack_require__.d(__webpack_exports__, "flattenDeep", function() { - return __WEBPACK_IMPORTED_MODULE_6__flatten_deep__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_7__get_range__ = __webpack_require__(40); - __webpack_require__.d(__webpack_exports__, "getRange", function() { - return __WEBPACK_IMPORTED_MODULE_7__get_range__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_8__pull__ = __webpack_require__(41); - __webpack_require__.d(__webpack_exports__, "pull", function() { - return __WEBPACK_IMPORTED_MODULE_8__pull__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_9__pull_at__ = __webpack_require__(21); - __webpack_require__.d(__webpack_exports__, "pullAt", function() { - return __WEBPACK_IMPORTED_MODULE_9__pull_at__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_10__reduce__ = __webpack_require__(42); - __webpack_require__.d(__webpack_exports__, "reduce", function() { - return __WEBPACK_IMPORTED_MODULE_10__reduce__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_11__remove__ = __webpack_require__(43); - __webpack_require__.d(__webpack_exports__, "remove", function() { - return __WEBPACK_IMPORTED_MODULE_11__remove__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_12__sort_by__ = __webpack_require__(44); - __webpack_require__.d(__webpack_exports__, "sortBy", function() { - return __WEBPACK_IMPORTED_MODULE_12__sort_by__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_13__union__ = __webpack_require__(45); - __webpack_require__.d(__webpack_exports__, "union", function() { - return __WEBPACK_IMPORTED_MODULE_13__union__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_14__uniq__ = __webpack_require__(22); - __webpack_require__.d(__webpack_exports__, "uniq", function() { - return __WEBPACK_IMPORTED_MODULE_14__uniq__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_15__values_of_key__ = __webpack_require__(46); - __webpack_require__.d(__webpack_exports__, "valuesOfKey", function() { - return __WEBPACK_IMPORTED_MODULE_15__values_of_key__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_16__head__ = __webpack_require__(47); - __webpack_require__.d(__webpack_exports__, "head", function() { - return __WEBPACK_IMPORTED_MODULE_16__head__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_17__last__ = __webpack_require__(48); - __webpack_require__.d(__webpack_exports__, "last", function() { - return __WEBPACK_IMPORTED_MODULE_17__last__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_18__starts_with__ = __webpack_require__(49); - __webpack_require__.d(__webpack_exports__, "startsWith", function() { - return __WEBPACK_IMPORTED_MODULE_18__starts_with__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_19__ends_with__ = __webpack_require__(50); - __webpack_require__.d(__webpack_exports__, "endsWith", function() { - return __WEBPACK_IMPORTED_MODULE_19__ends_with__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_20__filter__ = __webpack_require__(14); - __webpack_require__.d(__webpack_exports__, "filter", function() { - return __WEBPACK_IMPORTED_MODULE_20__filter__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_21__every__ = __webpack_require__(51); - __webpack_require__.d(__webpack_exports__, "every", function() { - return __WEBPACK_IMPORTED_MODULE_21__every__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_22__some__ = __webpack_require__(52); - __webpack_require__.d(__webpack_exports__, "some", function() { - return __WEBPACK_IMPORTED_MODULE_22__some__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_23__group__ = __webpack_require__(53); - __webpack_require__.d(__webpack_exports__, "group", function() { - return __WEBPACK_IMPORTED_MODULE_23__group__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_24__group_by__ = __webpack_require__(24); - __webpack_require__.d(__webpack_exports__, "groupBy", function() { - return __WEBPACK_IMPORTED_MODULE_24__group_by__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_25__group_to_map__ = __webpack_require__(23); - __webpack_require__.d(__webpack_exports__, "groupToMap", function() { - return __WEBPACK_IMPORTED_MODULE_25__group_to_map__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_26__get_wrap_behavior__ = __webpack_require__(54); - __webpack_require__.d(__webpack_exports__, "getWrapBehavior", function() { - return __WEBPACK_IMPORTED_MODULE_26__get_wrap_behavior__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_27__wrap_behavior__ = __webpack_require__(55); - __webpack_require__.d(__webpack_exports__, "wrapBehavior", function() { - return __WEBPACK_IMPORTED_MODULE_27__wrap_behavior__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_28__number2color__ = __webpack_require__(56); - __webpack_require__.d(__webpack_exports__, "number2color", function() { - return __WEBPACK_IMPORTED_MODULE_28__number2color__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_29__parse_radius__ = __webpack_require__(57); - __webpack_require__.d(__webpack_exports__, "parseRadius", function() { - return __WEBPACK_IMPORTED_MODULE_29__parse_radius__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_30__clamp__ = __webpack_require__(58); - __webpack_require__.d(__webpack_exports__, "clamp", function() { - return __WEBPACK_IMPORTED_MODULE_30__clamp__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_31__fixed_base__ = __webpack_require__(59); - __webpack_require__.d(__webpack_exports__, "fixedBase", function() { - return __WEBPACK_IMPORTED_MODULE_31__fixed_base__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_32__is_decimal__ = __webpack_require__(60); - __webpack_require__.d(__webpack_exports__, "isDecimal", function() { - return __WEBPACK_IMPORTED_MODULE_32__is_decimal__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_33__is_even__ = __webpack_require__(61); - __webpack_require__.d(__webpack_exports__, "isEven", function() { - return __WEBPACK_IMPORTED_MODULE_33__is_even__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_34__is_integer__ = __webpack_require__(62); - __webpack_require__.d(__webpack_exports__, "isInteger", function() { - return __WEBPACK_IMPORTED_MODULE_34__is_integer__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_35__is_negative__ = __webpack_require__(63); - __webpack_require__.d(__webpack_exports__, "isNegative", function() { - return __WEBPACK_IMPORTED_MODULE_35__is_negative__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_36__is_number_equal__ = __webpack_require__(64); - __webpack_require__.d(__webpack_exports__, "isNumberEqual", function() { - return __WEBPACK_IMPORTED_MODULE_36__is_number_equal__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_37__is_odd__ = __webpack_require__(65); - __webpack_require__.d(__webpack_exports__, "isOdd", function() { - return __WEBPACK_IMPORTED_MODULE_37__is_odd__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_38__is_positive__ = __webpack_require__(66); - __webpack_require__.d(__webpack_exports__, "isPositive", function() { - return __WEBPACK_IMPORTED_MODULE_38__is_positive__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_39__max_by__ = __webpack_require__(67); - __webpack_require__.d(__webpack_exports__, "maxBy", function() { - return __WEBPACK_IMPORTED_MODULE_39__max_by__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_40__min_by__ = __webpack_require__(68); - __webpack_require__.d(__webpack_exports__, "minBy", function() { - return __WEBPACK_IMPORTED_MODULE_40__min_by__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_41__mod__ = __webpack_require__(69); - __webpack_require__.d(__webpack_exports__, "mod", function() { - return __WEBPACK_IMPORTED_MODULE_41__mod__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_42__to_degree__ = __webpack_require__(70); - __webpack_require__.d(__webpack_exports__, "toDegree", function() { - return __WEBPACK_IMPORTED_MODULE_42__to_degree__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_43__to_integer__ = __webpack_require__(71); - __webpack_require__.d(__webpack_exports__, "toInteger", function() { - return __WEBPACK_IMPORTED_MODULE_43__to_integer__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_44__to_radian__ = __webpack_require__(72); - __webpack_require__.d(__webpack_exports__, "toRadian", function() { - return __WEBPACK_IMPORTED_MODULE_44__to_radian__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_45__for_in__ = __webpack_require__(73); - __webpack_require__.d(__webpack_exports__, "forIn", function() { - return __WEBPACK_IMPORTED_MODULE_45__for_in__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_46__has__ = __webpack_require__(25); - __webpack_require__.d(__webpack_exports__, "has", function() { - return __WEBPACK_IMPORTED_MODULE_46__has__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_47__has_key__ = __webpack_require__(74); - __webpack_require__.d(__webpack_exports__, "hasKey", function() { - return __WEBPACK_IMPORTED_MODULE_47__has_key__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_48__has_value__ = __webpack_require__(75); - __webpack_require__.d(__webpack_exports__, "hasValue", function() { - return __WEBPACK_IMPORTED_MODULE_48__has_value__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_49__keys__ = __webpack_require__(20); - __webpack_require__.d(__webpack_exports__, "keys", function() { - return __WEBPACK_IMPORTED_MODULE_49__keys__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_50__is_match__ = __webpack_require__(19); - __webpack_require__.d(__webpack_exports__, "isMatch", function() { - return __WEBPACK_IMPORTED_MODULE_50__is_match__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_51__values__ = __webpack_require__(26); - __webpack_require__.d(__webpack_exports__, "values", function() { - return __WEBPACK_IMPORTED_MODULE_51__values__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_52__lower_case__ = __webpack_require__(76); - __webpack_require__.d(__webpack_exports__, "lowerCase", function() { - return __WEBPACK_IMPORTED_MODULE_52__lower_case__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_53__lower_first__ = __webpack_require__(77); - __webpack_require__.d(__webpack_exports__, "lowerFirst", function() { - return __WEBPACK_IMPORTED_MODULE_53__lower_first__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_54__substitute__ = __webpack_require__(78); - __webpack_require__.d(__webpack_exports__, "substitute", function() { - return __WEBPACK_IMPORTED_MODULE_54__substitute__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_55__upper_case__ = __webpack_require__(79); - __webpack_require__.d(__webpack_exports__, "upperCase", function() { - return __WEBPACK_IMPORTED_MODULE_55__upper_case__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_56__upper_first__ = __webpack_require__(80); - __webpack_require__.d(__webpack_exports__, "upperFirst", function() { - return __WEBPACK_IMPORTED_MODULE_56__upper_first__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_57__get_type__ = __webpack_require__(27); - __webpack_require__.d(__webpack_exports__, "getType", function() { - return __WEBPACK_IMPORTED_MODULE_57__get_type__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_58__is_arguments__ = __webpack_require__(81); - __webpack_require__.d(__webpack_exports__, "isArguments", function() { - return __WEBPACK_IMPORTED_MODULE_58__is_arguments__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_59__is_array__ = __webpack_require__(0); - __webpack_require__.d(__webpack_exports__, "isArray", function() { - return __WEBPACK_IMPORTED_MODULE_59__is_array__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_60__is_array_like__ = __webpack_require__(1); - __webpack_require__.d(__webpack_exports__, "isArrayLike", function() { - return __WEBPACK_IMPORTED_MODULE_60__is_array_like__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_61__is_boolean__ = __webpack_require__(82); - __webpack_require__.d(__webpack_exports__, "isBoolean", function() { - return __WEBPACK_IMPORTED_MODULE_61__is_boolean__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_62__is_date__ = __webpack_require__(83); - __webpack_require__.d(__webpack_exports__, "isDate", function() { - return __WEBPACK_IMPORTED_MODULE_62__is_date__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_63__is_error__ = __webpack_require__(84); - __webpack_require__.d(__webpack_exports__, "isError", function() { - return __WEBPACK_IMPORTED_MODULE_63__is_error__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_64__is_function__ = __webpack_require__(3); - __webpack_require__.d(__webpack_exports__, "isFunction", function() { - return __WEBPACK_IMPORTED_MODULE_64__is_function__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_65__is_finite__ = __webpack_require__(85); - __webpack_require__.d(__webpack_exports__, "isFinite", function() { - return __WEBPACK_IMPORTED_MODULE_65__is_finite__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_66__is_nil__ = __webpack_require__(6); - __webpack_require__.d(__webpack_exports__, "isNil", function() { - return __WEBPACK_IMPORTED_MODULE_66__is_nil__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_67__is_null__ = __webpack_require__(86); - __webpack_require__.d(__webpack_exports__, "isNull", function() { - return __WEBPACK_IMPORTED_MODULE_67__is_null__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_68__is_number__ = __webpack_require__(5); - __webpack_require__.d(__webpack_exports__, "isNumber", function() { - return __WEBPACK_IMPORTED_MODULE_68__is_number__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_69__is_object__ = __webpack_require__(13); - __webpack_require__.d(__webpack_exports__, "isObject", function() { - return __WEBPACK_IMPORTED_MODULE_69__is_object__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_70__is_object_like__ = __webpack_require__(15); - __webpack_require__.d(__webpack_exports__, "isObjectLike", function() { - return __WEBPACK_IMPORTED_MODULE_70__is_object_like__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_71__is_plain_object__ = __webpack_require__(9); - __webpack_require__.d(__webpack_exports__, "isPlainObject", function() { - return __WEBPACK_IMPORTED_MODULE_71__is_plain_object__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_72__is_prototype__ = __webpack_require__(28); - __webpack_require__.d(__webpack_exports__, "isPrototype", function() { - return __WEBPACK_IMPORTED_MODULE_72__is_prototype__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_73__is_reg_exp__ = __webpack_require__(87); - __webpack_require__.d(__webpack_exports__, "isRegExp", function() { - return __WEBPACK_IMPORTED_MODULE_73__is_reg_exp__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_74__is_string__ = __webpack_require__(8); - __webpack_require__.d(__webpack_exports__, "isString", function() { - return __WEBPACK_IMPORTED_MODULE_74__is_string__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_75__is_type__ = __webpack_require__(4); - __webpack_require__.d(__webpack_exports__, "isType", function() { - return __WEBPACK_IMPORTED_MODULE_75__is_type__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_76__is_undefined__ = __webpack_require__(88); - __webpack_require__.d(__webpack_exports__, "isUndefined", function() { - return __WEBPACK_IMPORTED_MODULE_76__is_undefined__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_77__is_element__ = __webpack_require__(89); - __webpack_require__.d(__webpack_exports__, "isElement", function() { - return __WEBPACK_IMPORTED_MODULE_77__is_element__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_78__request_animation_frame__ = __webpack_require__(90); - __webpack_require__.d(__webpack_exports__, "requestAnimationFrame", function() { - return __WEBPACK_IMPORTED_MODULE_78__request_animation_frame__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_79__clear_animation_frame__ = __webpack_require__(91); - __webpack_require__.d(__webpack_exports__, "clearAnimationFrame", function() { - return __WEBPACK_IMPORTED_MODULE_79__clear_animation_frame__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_80__augment__ = __webpack_require__(92); - __webpack_require__.d(__webpack_exports__, "augment", function() { - return __WEBPACK_IMPORTED_MODULE_80__augment__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_81__clone__ = __webpack_require__(93); - __webpack_require__.d(__webpack_exports__, "clone", function() { - return __WEBPACK_IMPORTED_MODULE_81__clone__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_82__debounce__ = __webpack_require__(94); - __webpack_require__.d(__webpack_exports__, "debounce", function() { - return __WEBPACK_IMPORTED_MODULE_82__debounce__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_83__memoize__ = __webpack_require__(95); - __webpack_require__.d(__webpack_exports__, "memoize", function() { - return __WEBPACK_IMPORTED_MODULE_83__memoize__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_84__deep_mix__ = __webpack_require__(96); - __webpack_require__.d(__webpack_exports__, "deepMix", function() { - return __WEBPACK_IMPORTED_MODULE_84__deep_mix__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_85__each__ = __webpack_require__(2); - __webpack_require__.d(__webpack_exports__, "each", function() { - return __WEBPACK_IMPORTED_MODULE_85__each__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_86__extend__ = __webpack_require__(97); - __webpack_require__.d(__webpack_exports__, "extend", function() { - return __WEBPACK_IMPORTED_MODULE_86__extend__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_87__index_of__ = __webpack_require__(98); - __webpack_require__.d(__webpack_exports__, "indexOf", function() { - return __WEBPACK_IMPORTED_MODULE_87__index_of__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_88__is_empty__ = __webpack_require__(99); - __webpack_require__.d(__webpack_exports__, "isEmpty", function() { - return __WEBPACK_IMPORTED_MODULE_88__is_empty__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_89__is_equal__ = __webpack_require__(29); - __webpack_require__.d(__webpack_exports__, "isEqual", function() { - return __WEBPACK_IMPORTED_MODULE_89__is_equal__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_90__is_equal_with__ = __webpack_require__(100); - __webpack_require__.d(__webpack_exports__, "isEqualWith", function() { - return __WEBPACK_IMPORTED_MODULE_90__is_equal_with__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_91__map__ = __webpack_require__(101); - __webpack_require__.d(__webpack_exports__, "map", function() { - return __WEBPACK_IMPORTED_MODULE_91__map__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_92__map_values__ = __webpack_require__(102); - __webpack_require__.d(__webpack_exports__, "mapValues", function() { - return __WEBPACK_IMPORTED_MODULE_92__map_values__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_93__mix__ = __webpack_require__(16); - __webpack_require__.d(__webpack_exports__, "mix", function() { - return __WEBPACK_IMPORTED_MODULE_93__mix__["a"]; - }); - __webpack_require__.d(__webpack_exports__, "assign", function() { - return __WEBPACK_IMPORTED_MODULE_93__mix__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_94__get__ = __webpack_require__(103); - __webpack_require__.d(__webpack_exports__, "get", function() { - return __WEBPACK_IMPORTED_MODULE_94__get__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_95__set__ = __webpack_require__(104); - __webpack_require__.d(__webpack_exports__, "set", function() { - return __WEBPACK_IMPORTED_MODULE_95__set__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_96__pick__ = __webpack_require__(105); - __webpack_require__.d(__webpack_exports__, "pick", function() { - return __WEBPACK_IMPORTED_MODULE_96__pick__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_97__throttle__ = __webpack_require__(106); - __webpack_require__.d(__webpack_exports__, "throttle", function() { - return __WEBPACK_IMPORTED_MODULE_97__throttle__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_98__to_array__ = __webpack_require__(107); - __webpack_require__.d(__webpack_exports__, "toArray", function() { - return __WEBPACK_IMPORTED_MODULE_98__to_array__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_99__to_string__ = __webpack_require__(10); - __webpack_require__.d(__webpack_exports__, "toString", function() { - return __WEBPACK_IMPORTED_MODULE_99__to_string__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_100__unique_id__ = __webpack_require__(108); - __webpack_require__.d(__webpack_exports__, "uniqueId", function() { - return __WEBPACK_IMPORTED_MODULE_100__unique_id__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_101__noop__ = __webpack_require__(109); - __webpack_require__.d(__webpack_exports__, "noop", function() { - return __WEBPACK_IMPORTED_MODULE_101__noop__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_102__identity__ = __webpack_require__(110); - __webpack_require__.d(__webpack_exports__, "identity", function() { - return __WEBPACK_IMPORTED_MODULE_102__identity__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_103__size__ = __webpack_require__(111); - __webpack_require__.d(__webpack_exports__, "size", function() { - return __WEBPACK_IMPORTED_MODULE_103__size__["a"]; - }); - var __WEBPACK_IMPORTED_MODULE_104__cache__ = __webpack_require__(112); - __webpack_require__.d(__webpack_exports__, "Cache", function() { - return __WEBPACK_IMPORTED_MODULE_104__cache__["a"]; - }); - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__filter__ = __webpack_require__(14); - var __WEBPACK_IMPORTED_MODULE_1__contains__ = __webpack_require__(12); - var difference2 = function(arr, values2) { - if (values2 === void 0) { - values2 = []; - } - return Object(__WEBPACK_IMPORTED_MODULE_0__filter__["a"])(arr, function(value2) { - return !Object(__WEBPACK_IMPORTED_MODULE_1__contains__["a"])(values2, value2); - }); - }; - __webpack_exports__["a"] = difference2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_function__ = __webpack_require__(3); - var __WEBPACK_IMPORTED_MODULE_1__is_match__ = __webpack_require__(19); - var __WEBPACK_IMPORTED_MODULE_2__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_3__is_plain_object__ = __webpack_require__(9); - function find4(arr, predicate) { - if (!Object(__WEBPACK_IMPORTED_MODULE_2__is_array__["a"])(arr)) - return null; - var _predicate; - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_function__["a"])(predicate)) { - _predicate = predicate; - } - if (Object(__WEBPACK_IMPORTED_MODULE_3__is_plain_object__["a"])(predicate)) { - _predicate = function(a4) { - return Object(__WEBPACK_IMPORTED_MODULE_1__is_match__["a"])(a4, predicate); - }; - } - if (_predicate) { - for (var i4 = 0; i4 < arr.length; i4 += 1) { - if (_predicate(arr[i4])) { - return arr[i4]; - } - } - } - return null; - } - __webpack_exports__["a"] = find4; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - function findIndex2(arr, predicate, fromIndex) { - if (fromIndex === void 0) { - fromIndex = 0; - } - for (var i4 = fromIndex; i4 < arr.length; i4++) { - if (predicate(arr[i4], i4)) { - return i4; - } - } - return -1; - } - __webpack_exports__["a"] = findIndex2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_nil__ = __webpack_require__(6); - var __WEBPACK_IMPORTED_MODULE_1__is_array__ = __webpack_require__(0); - var firstValue2 = function(data3, name) { - var rst = null; - for (var i4 = 0; i4 < data3.length; i4++) { - var obj = data3[i4]; - var value2 = obj[name]; - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_nil__["a"])(value2)) { - if (Object(__WEBPACK_IMPORTED_MODULE_1__is_array__["a"])(value2)) { - rst = value2[0]; - } else { - rst = value2; - } - break; - } - } - return rst; - }; - __webpack_exports__["a"] = firstValue2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var flatten2 = function(arr) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(arr)) { - return []; - } - var rst = []; - for (var i4 = 0; i4 < arr.length; i4++) { - rst = rst.concat(arr[i4]); - } - return rst; - }; - __webpack_exports__["a"] = flatten2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var flattenDeep = function(arr, result) { - if (result === void 0) { - result = []; - } - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(arr)) { - result.push(arr); - } else { - for (var i4 = 0; i4 < arr.length; i4 += 1) { - flattenDeep(arr[i4], result); - } - } - return result; - }; - __webpack_exports__["a"] = flattenDeep; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_1__filter__ = __webpack_require__(14); - var getRange2 = function(values2) { - values2 = Object(__WEBPACK_IMPORTED_MODULE_1__filter__["a"])(values2, function(v3) { - return !isNaN(v3); - }); - if (!values2.length) { - return { - min: 0, - max: 0 - }; - } - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(values2[0])) { - var tmp = []; - for (var i4 = 0; i4 < values2.length; i4++) { - tmp = tmp.concat(values2[i4]); - } - values2 = tmp; - } - var max8 = Math.max.apply(null, values2); - var min7 = Math.min.apply(null, values2); - return { - min: min7, - max: max8 - }; - }; - __webpack_exports__["a"] = getRange2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var arrPrototype2 = Array.prototype; - var splice3 = arrPrototype2.splice; - var indexOf3 = arrPrototype2.indexOf; - var pull = function(arr) { - var values2 = []; - for (var _i = 1; _i < arguments.length; _i++) { - values2[_i - 1] = arguments[_i]; - } - for (var i4 = 0; i4 < values2.length; i4++) { - var value2 = values2[i4]; - var fromIndex = -1; - while ((fromIndex = indexOf3.call(arr, value2)) > -1) { - splice3.call(arr, fromIndex, 1); - } - } - return arr; - }; - __webpack_exports__["a"] = pull; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_2__is_plain_object__ = __webpack_require__(9); - var reduce2 = function(arr, fn2, init) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_array__["a"])(arr) && !Object(__WEBPACK_IMPORTED_MODULE_2__is_plain_object__["a"])(arr)) { - return arr; - } - var result = init; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(arr, function(data3, i4) { - result = fn2(result, data3, i4); - }); - return result; - }; - __webpack_exports__["a"] = reduce2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array_like__ = __webpack_require__(1); - var __WEBPACK_IMPORTED_MODULE_1__pull_at__ = __webpack_require__(21); - var remove2 = function(arr, predicate) { - var result = []; - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_array_like__["a"])(arr)) { - return result; - } - var i4 = -1; - var indexes = []; - var length5 = arr.length; - while (++i4 < length5) { - var value2 = arr[i4]; - if (predicate(value2, i4, arr)) { - result.push(value2); - indexes.push(i4); - } - } - Object(__WEBPACK_IMPORTED_MODULE_1__pull_at__["a"])(arr, indexes); - return result; - }; - __webpack_exports__["a"] = remove2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_1__is_string__ = __webpack_require__(8); - var __WEBPACK_IMPORTED_MODULE_2__is_function__ = __webpack_require__(3); - function sortBy2(arr, key) { - var comparer; - if (Object(__WEBPACK_IMPORTED_MODULE_2__is_function__["a"])(key)) { - comparer = function(a4, b10) { - return key(a4) - key(b10); - }; - } else { - var keys_1 = []; - if (Object(__WEBPACK_IMPORTED_MODULE_1__is_string__["a"])(key)) { - keys_1.push(key); - } else if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(key)) { - keys_1 = key; - } - comparer = function(a4, b10) { - for (var i4 = 0; i4 < keys_1.length; i4 += 1) { - var prop = keys_1[i4]; - if (a4[prop] > b10[prop]) { - return 1; - } - if (a4[prop] < b10[prop]) { - return -1; - } - } - return 0; - }; - } - arr.sort(comparer); - return arr; - } - __webpack_exports__["a"] = sortBy2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__uniq__ = __webpack_require__(22); - var union = function() { - var sources = []; - for (var _i = 0; _i < arguments.length; _i++) { - sources[_i] = arguments[_i]; - } - return Object(__WEBPACK_IMPORTED_MODULE_0__uniq__["a"])([].concat.apply([], sources)); - }; - __webpack_exports__["a"] = union; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_2__is_nil__ = __webpack_require__(6); - __webpack_exports__["a"] = function(data3, name) { - var rst = []; - var tmpMap = {}; - data3.forEach(function(obj) { - var value2 = obj[name]; - if (!Object(__WEBPACK_IMPORTED_MODULE_2__is_nil__["a"])(value2)) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_array__["a"])(value2)) { - value2 = [value2]; - } - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(value2, function(val) { - if (!tmpMap[val]) { - rst.push(val); - tmpMap[val] = true; - } - }); - } - }); - return rst; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = head2; - var __WEBPACK_IMPORTED_MODULE_0__is_array_like__ = __webpack_require__(1); - function head2(o3) { - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array_like__["a"])(o3)) { - return o3[0]; - } - return void 0; - } - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = last2; - var __WEBPACK_IMPORTED_MODULE_0__is_array_like__ = __webpack_require__(1); - function last2(o3) { - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array_like__["a"])(o3)) { - var arr = o3; - return arr[arr.length - 1]; - } - return void 0; - } - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_1__is_string__ = __webpack_require__(8); - function startsWith(arr, e4) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(arr) || Object(__WEBPACK_IMPORTED_MODULE_1__is_string__["a"])(arr) ? arr[0] === e4 : false; - } - __webpack_exports__["a"] = startsWith; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_1__is_string__ = __webpack_require__(8); - function endsWith(arr, e4) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(arr) || Object(__WEBPACK_IMPORTED_MODULE_1__is_string__["a"])(arr) ? arr[arr.length - 1] === e4 : false; - } - __webpack_exports__["a"] = endsWith; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var every2 = function(arr, func) { - for (var i4 = 0; i4 < arr.length; i4++) { - if (!func(arr[i4], i4)) - return false; - } - return true; - }; - __webpack_exports__["a"] = every2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var some2 = function(arr, func) { - for (var i4 = 0; i4 < arr.length; i4++) { - if (func(arr[i4], i4)) - return true; - } - return false; - }; - __webpack_exports__["a"] = some2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__group_to_map__ = __webpack_require__(23); - __webpack_exports__["a"] = function(data3, condition) { - if (!condition) { - return [data3]; - } - var groups = Object(__WEBPACK_IMPORTED_MODULE_0__group_to_map__["a"])(data3, condition); - var array = []; - for (var i4 in groups) { - array.push(groups[i4]); - } - return array; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - function getWrapBehavior(obj, action) { - return obj["_wrap_" + action]; - } - __webpack_exports__["a"] = getWrapBehavior; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - function wrapBehavior2(obj, action) { - if (obj["_wrap_" + action]) { - return obj["_wrap_" + action]; - } - var method = function(e4) { - obj[action](e4); - }; - obj["_wrap_" + action] = method; - return method; - } - __webpack_exports__["a"] = wrapBehavior2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var numColorCache = {}; - function numberToColor(num) { - var color4 = numColorCache[num]; - if (!color4) { - var str8 = num.toString(16); - for (var i4 = str8.length; i4 < 6; i4++) { - str8 = "0" + str8; - } - color4 = "#" + str8; - numColorCache[num] = color4; - } - return color4; - } - __webpack_exports__["a"] = numberToColor; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - function parseRadius4(radius) { - var r1 = 0, r22 = 0, r32 = 0, r4 = 0; - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(radius)) { - if (radius.length === 1) { - r1 = r22 = r32 = r4 = radius[0]; - } else if (radius.length === 2) { - r1 = r32 = radius[0]; - r22 = r4 = radius[1]; - } else if (radius.length === 3) { - r1 = radius[0]; - r22 = r4 = radius[1]; - r32 = radius[2]; - } else { - r1 = radius[0]; - r22 = radius[1]; - r32 = radius[2]; - r4 = radius[3]; - } - } else { - r1 = r22 = r32 = r4 = radius; - } - return { - r1, - r2: r22, - r3: r32, - r4 - }; - } - __webpack_exports__["a"] = parseRadius4; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var clamp2 = function(a4, min7, max8) { - if (a4 < min7) { - return min7; - } else if (a4 > max8) { - return max8; - } - return a4; - }; - __webpack_exports__["a"] = clamp2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var fixedBase2 = function(v3, base) { - var str8 = base.toString(); - var index2 = str8.indexOf("."); - if (index2 === -1) { - return Math.round(v3); - } - var length5 = str8.substr(index2 + 1).length; - if (length5 > 20) { - length5 = 20; - } - return parseFloat(v3.toFixed(length5)); - }; - __webpack_exports__["a"] = fixedBase2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_number__ = __webpack_require__(5); - var isDecimal = function(num) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_number__["a"])(num) && num % 1 !== 0; - }; - __webpack_exports__["a"] = isDecimal; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_number__ = __webpack_require__(5); - var isEven = function(num) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_number__["a"])(num) && num % 2 === 0; - }; - __webpack_exports__["a"] = isEven; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_number__ = __webpack_require__(5); - var isInteger3 = Number.isInteger ? Number.isInteger : function(num) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_number__["a"])(num) && num % 1 === 0; - }; - __webpack_exports__["a"] = isInteger3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_number__ = __webpack_require__(5); - var isNegative = function(num) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_number__["a"])(num) && num < 0; - }; - __webpack_exports__["a"] = isNegative; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = isNumberEqual3; - var PRECISION2 = 1e-5; - function isNumberEqual3(a4, b10, precision) { - if (precision === void 0) { - precision = PRECISION2; - } - return Math.abs(a4 - b10) < precision; - } - ; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_number__ = __webpack_require__(5); - var isOdd = function(num) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_number__["a"])(num) && num % 2 !== 0; - }; - __webpack_exports__["a"] = isOdd; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_number__ = __webpack_require__(5); - var isPositive = function(num) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_number__["a"])(num) && num > 0; - }; - __webpack_exports__["a"] = isPositive; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_2__is_function__ = __webpack_require__(3); - __webpack_exports__["a"] = function(arr, fn2) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_array__["a"])(arr)) { - return void 0; - } - var max8 = arr[0]; - var maxData; - if (Object(__WEBPACK_IMPORTED_MODULE_2__is_function__["a"])(fn2)) { - maxData = fn2(arr[0]); - } else { - maxData = arr[0][fn2]; - } - var data3; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(arr, function(val) { - if (Object(__WEBPACK_IMPORTED_MODULE_2__is_function__["a"])(fn2)) { - data3 = fn2(val); - } else { - data3 = val[fn2]; - } - if (data3 > maxData) { - max8 = val; - maxData = data3; - } - }); - return max8; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_2__is_function__ = __webpack_require__(3); - __webpack_exports__["a"] = function(arr, fn2) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_array__["a"])(arr)) { - return void 0; - } - var min7 = arr[0]; - var minData; - if (Object(__WEBPACK_IMPORTED_MODULE_2__is_function__["a"])(fn2)) { - minData = fn2(arr[0]); - } else { - minData = arr[0][fn2]; - } - var data3; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(arr, function(val) { - if (Object(__WEBPACK_IMPORTED_MODULE_2__is_function__["a"])(fn2)) { - data3 = fn2(val); - } else { - data3 = val[fn2]; - } - if (data3 < minData) { - min7 = val; - minData = data3; - } - }); - return min7; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var mod3 = function(n3, m4) { - return (n3 % m4 + m4) % m4; - }; - __webpack_exports__["a"] = mod3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var DEGREE2 = 180 / Math.PI; - var toDegree = function(radian) { - return DEGREE2 * radian; - }; - __webpack_exports__["a"] = toDegree; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = parseInt; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var RADIAN2 = Math.PI / 180; - var toRadian2 = function(degree4) { - return RADIAN2 * degree4; - }; - __webpack_exports__["a"] = toRadian2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - __webpack_exports__["a"] = __WEBPACK_IMPORTED_MODULE_0__each__["a"]; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__has__ = __webpack_require__(25); - __webpack_exports__["a"] = __WEBPACK_IMPORTED_MODULE_0__has__["a"]; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__contains__ = __webpack_require__(12); - var __WEBPACK_IMPORTED_MODULE_1__values__ = __webpack_require__(26); - __webpack_exports__["a"] = function(obj, value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__contains__["a"])(Object(__WEBPACK_IMPORTED_MODULE_1__values__["a"])(obj), value2); - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__to_string__ = __webpack_require__(10); - var lowerCase2 = function(str8) { - return Object(__WEBPACK_IMPORTED_MODULE_0__to_string__["a"])(str8).toLowerCase(); - }; - __webpack_exports__["a"] = lowerCase2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__to_string__ = __webpack_require__(10); - var lowerFirst = function(value2) { - var str8 = Object(__WEBPACK_IMPORTED_MODULE_0__to_string__["a"])(value2); - return str8.charAt(0).toLowerCase() + str8.substring(1); - }; - __webpack_exports__["a"] = lowerFirst; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - function substitute4(str8, o3) { - if (!str8 || !o3) { - return str8; - } - return str8.replace(/\\?\{([^{}]+)\}/g, function(match, name) { - if (match.charAt(0) === "\\") { - return match.slice(1); - } - return o3[name] === void 0 ? "" : o3[name]; - }); - } - __webpack_exports__["a"] = substitute4; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__to_string__ = __webpack_require__(10); - var upperCase = function(str8) { - return Object(__WEBPACK_IMPORTED_MODULE_0__to_string__["a"])(str8).toUpperCase(); - }; - __webpack_exports__["a"] = upperCase; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__to_string__ = __webpack_require__(10); - var upperFirst2 = function(value2) { - var str8 = Object(__WEBPACK_IMPORTED_MODULE_0__to_string__["a"])(value2); - return str8.charAt(0).toUpperCase() + str8.substring(1); - }; - __webpack_exports__["a"] = upperFirst2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - var isArguments = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(value2, "Arguments"); - }; - __webpack_exports__["a"] = isArguments; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - var isBoolean3 = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(value2, "Boolean"); - }; - __webpack_exports__["a"] = isBoolean3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - var isDate2 = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(value2, "Date"); - }; - __webpack_exports__["a"] = isDate2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - var isError = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(value2, "Error"); - }; - __webpack_exports__["a"] = isError; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_number__ = __webpack_require__(5); - __webpack_exports__["a"] = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_number__["a"])(value2) && isFinite(value2); - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var isNull3 = function(value2) { - return value2 === null; - }; - __webpack_exports__["a"] = isNull3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_type__ = __webpack_require__(4); - var isRegExp = function(str8) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_type__["a"])(str8, "RegExp"); - }; - __webpack_exports__["a"] = isRegExp; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var isUndefined2 = function(value2) { - return value2 === void 0; - }; - __webpack_exports__["a"] = isUndefined2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var isElement2 = function(o3) { - return o3 instanceof Element || o3 instanceof HTMLDocument; - }; - __webpack_exports__["a"] = isElement2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = requestAnimationFrame4; - function requestAnimationFrame4(fn2) { - var method = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || function(f3) { - return setTimeout(f3, 16); - }; - return method(fn2); - } - ; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = cancelAnimationFrame4; - function cancelAnimationFrame4(handler) { - var method = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.msCancelAnimationFrame || clearTimeout; - method(handler); - } - ; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__mix__ = __webpack_require__(16); - var __WEBPACK_IMPORTED_MODULE_1__is_function__ = __webpack_require__(3); - var augment = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var c5 = args[0]; - for (var i4 = 1; i4 < args.length; i4++) { - var obj = args[i4]; - if (Object(__WEBPACK_IMPORTED_MODULE_1__is_function__["a"])(obj)) { - obj = obj.prototype; - } - Object(__WEBPACK_IMPORTED_MODULE_0__mix__["a"])(c5.prototype, obj); - } - }; - __webpack_exports__["a"] = augment; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var clone10 = function(obj) { - if (typeof obj !== "object" || obj === null) { - return obj; - } - var rst; - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(obj)) { - rst = []; - for (var i4 = 0, l4 = obj.length; i4 < l4; i4++) { - if (typeof obj[i4] === "object" && obj[i4] != null) { - rst[i4] = clone10(obj[i4]); - } else { - rst[i4] = obj[i4]; - } - } - } else { - rst = {}; - for (var k4 in obj) { - if (typeof obj[k4] === "object" && obj[k4] != null) { - rst[k4] = clone10(obj[k4]); - } else { - rst[k4] = obj[k4]; - } - } - } - return rst; - }; - __webpack_exports__["a"] = clone10; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - function debounce2(func, wait, immediate) { - var timeout2; - return function() { - var context = this, args = arguments; - var later = function() { - timeout2 = null; - if (!immediate) { - func.apply(context, args); - } - }; - var callNow = immediate && !timeout2; - clearTimeout(timeout2); - timeout2 = setTimeout(later, wait); - if (callNow) { - func.apply(context, args); - } - }; - } - __webpack_exports__["a"] = debounce2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_function__ = __webpack_require__(3); - __webpack_exports__["a"] = function(f3, resolver) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_function__["a"])(f3)) { - throw new TypeError("Expected a function"); - } - var memoized = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var key = resolver ? resolver.apply(this, args) : args[0]; - var cache3 = memoized.cache; - if (cache3.has(key)) { - return cache3.get(key); - } - var result = f3.apply(this, args); - cache3.set(key, result); - return result; - }; - memoized.cache = new Map(); - return memoized; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array__ = __webpack_require__(0); - var __WEBPACK_IMPORTED_MODULE_1__is_plain_object__ = __webpack_require__(9); - var MAX_MIX_LEVEL3 = 5; - function _deepMix2(dist4, src, level, maxLevel) { - level = level || 0; - maxLevel = maxLevel || MAX_MIX_LEVEL3; - for (var key in src) { - if (src.hasOwnProperty(key)) { - var value2 = src[key]; - if (value2 !== null && Object(__WEBPACK_IMPORTED_MODULE_1__is_plain_object__["a"])(value2)) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_plain_object__["a"])(dist4[key])) { - dist4[key] = {}; - } - if (level < maxLevel) { - _deepMix2(dist4[key], value2, level + 1, maxLevel); - } else { - dist4[key] = src[key]; - } - } else if (Object(__WEBPACK_IMPORTED_MODULE_0__is_array__["a"])(value2)) { - dist4[key] = []; - dist4[key] = dist4[key].concat(value2); - } else if (value2 !== void 0) { - dist4[key] = value2; - } - } - } - } - var deepMix2 = function(rst) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - for (var i4 = 0; i4 < args.length; i4 += 1) { - _deepMix2(rst, args[i4]); - } - return rst; - }; - __webpack_exports__["a"] = deepMix2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__mix__ = __webpack_require__(16); - var __WEBPACK_IMPORTED_MODULE_1__is_function__ = __webpack_require__(3); - var extend4 = function(subclass, superclass, overrides, staticOverrides) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_function__["a"])(superclass)) { - overrides = superclass; - superclass = subclass; - subclass = function() { - }; - } - var create8 = Object.create ? function(proto, c5) { - return Object.create(proto, { - constructor: { - value: c5 - } - }); - } : function(proto, c5) { - function Tmp() { - } - Tmp.prototype = proto; - var o3 = new Tmp(); - o3.constructor = c5; - return o3; - }; - var superObj = create8(superclass.prototype, subclass); - subclass.prototype = Object(__WEBPACK_IMPORTED_MODULE_0__mix__["a"])(superObj, subclass.prototype); - subclass.superclass = create8(superclass.prototype, superclass); - Object(__WEBPACK_IMPORTED_MODULE_0__mix__["a"])(superObj, overrides); - Object(__WEBPACK_IMPORTED_MODULE_0__mix__["a"])(subclass, staticOverrides); - return subclass; - }; - __webpack_exports__["a"] = extend4; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array_like__ = __webpack_require__(1); - var indexOf3 = function(arr, obj) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_array_like__["a"])(arr)) { - return -1; - } - var m4 = Array.prototype.indexOf; - if (m4) { - return m4.call(arr, obj); - } - var index2 = -1; - for (var i4 = 0; i4 < arr.length; i4++) { - if (arr[i4] === obj) { - index2 = i4; - break; - } - } - return index2; - }; - __webpack_exports__["a"] = indexOf3; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_nil__ = __webpack_require__(6); - var __WEBPACK_IMPORTED_MODULE_1__is_array_like__ = __webpack_require__(1); - var __WEBPACK_IMPORTED_MODULE_2__get_type__ = __webpack_require__(27); - var __WEBPACK_IMPORTED_MODULE_3__is_prototype__ = __webpack_require__(28); - var hasOwnProperty4 = Object.prototype.hasOwnProperty; - function isEmpty2(value2) { - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_nil__["a"])(value2)) { - return true; - } - if (Object(__WEBPACK_IMPORTED_MODULE_1__is_array_like__["a"])(value2)) { - return !value2.length; - } - var type2 = Object(__WEBPACK_IMPORTED_MODULE_2__get_type__["a"])(value2); - if (type2 === "Map" || type2 === "Set") { - return !value2.size; - } - if (Object(__WEBPACK_IMPORTED_MODULE_3__is_prototype__["a"])(value2)) { - return !Object.keys(value2).length; - } - for (var key in value2) { - if (hasOwnProperty4.call(value2, key)) { - return false; - } - } - return true; - } - __webpack_exports__["a"] = isEmpty2; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_function__ = __webpack_require__(3); - var __WEBPACK_IMPORTED_MODULE_1__is_equal__ = __webpack_require__(29); - __webpack_exports__["a"] = function(value2, other2, fn2) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_function__["a"])(fn2)) { - return Object(__WEBPACK_IMPORTED_MODULE_1__is_equal__["a"])(value2, other2); - } - return !!fn2(value2, other2); - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_array_like__ = __webpack_require__(1); - var map6 = function(arr, func) { - if (!Object(__WEBPACK_IMPORTED_MODULE_1__is_array_like__["a"])(arr)) { - return arr; - } - var result = []; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(arr, function(value2, index2) { - result.push(func(value2, index2)); - }); - return result; - }; - __webpack_exports__["a"] = map6; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_nil__ = __webpack_require__(6); - var __WEBPACK_IMPORTED_MODULE_1__is_object__ = __webpack_require__(13); - var identity5 = function(v3) { - return v3; - }; - __webpack_exports__["a"] = function(object, func) { - if (func === void 0) { - func = identity5; - } - var r4 = {}; - if (Object(__WEBPACK_IMPORTED_MODULE_1__is_object__["a"])(object) && !Object(__WEBPACK_IMPORTED_MODULE_0__is_nil__["a"])(object)) { - Object.keys(object).forEach(function(key) { - r4[key] = func(object[key], key); - }); - } - return r4; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_string__ = __webpack_require__(8); - __webpack_exports__["a"] = function(obj, key, defaultValue) { - var p4 = 0; - var keyArr = Object(__WEBPACK_IMPORTED_MODULE_0__is_string__["a"])(key) ? key.split(".") : key; - while (obj && p4 < keyArr.length) { - obj = obj[keyArr[p4++]]; - } - return obj === void 0 || p4 < keyArr.length ? defaultValue : obj; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_object__ = __webpack_require__(13); - var __WEBPACK_IMPORTED_MODULE_1__is_string__ = __webpack_require__(8); - var __WEBPACK_IMPORTED_MODULE_2__is_number__ = __webpack_require__(5); - __webpack_exports__["a"] = function(obj, path, value2) { - var o3 = obj; - var keyArr = Object(__WEBPACK_IMPORTED_MODULE_1__is_string__["a"])(path) ? path.split(".") : path; - keyArr.forEach(function(key, idx) { - if (idx < keyArr.length - 1) { - if (!Object(__WEBPACK_IMPORTED_MODULE_0__is_object__["a"])(o3[key])) { - o3[key] = Object(__WEBPACK_IMPORTED_MODULE_2__is_number__["a"])(keyArr[idx + 1]) ? [] : {}; - } - o3 = o3[key]; - } else { - o3[key] = value2; - } - }); - return obj; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__each__ = __webpack_require__(2); - var __WEBPACK_IMPORTED_MODULE_1__is_plain_object__ = __webpack_require__(9); - var hasOwnProperty4 = Object.prototype.hasOwnProperty; - __webpack_exports__["a"] = function(object, keys2) { - if (object === null || !Object(__WEBPACK_IMPORTED_MODULE_1__is_plain_object__["a"])(object)) { - return {}; - } - var result = {}; - Object(__WEBPACK_IMPORTED_MODULE_0__each__["a"])(keys2, function(key) { - if (hasOwnProperty4.call(object, key)) { - result[key] = object[key]; - } - }); - return result; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = function(func, wait, options) { - var timeout2, context, args, result; - var previous = 0; - if (!options) - options = {}; - var later = function() { - previous = options.leading === false ? 0 : Date.now(); - timeout2 = null; - result = func.apply(context, args); - if (!timeout2) - context = args = null; - }; - var throttled = function() { - var now2 = Date.now(); - if (!previous && options.leading === false) - previous = now2; - var remaining = wait - (now2 - previous); - context = this; - args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout2) { - clearTimeout(timeout2); - timeout2 = null; - } - previous = now2; - result = func.apply(context, args); - if (!timeout2) - context = args = null; - } else if (!timeout2 && options.trailing !== false) { - timeout2 = setTimeout(later, remaining); - } - return result; - }; - throttled.cancel = function() { - clearTimeout(timeout2); - previous = 0; - timeout2 = context = args = null; - }; - return throttled; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var __WEBPACK_IMPORTED_MODULE_0__is_array_like__ = __webpack_require__(1); - __webpack_exports__["a"] = function(value2) { - return Object(__WEBPACK_IMPORTED_MODULE_0__is_array_like__["a"])(value2) ? Array.prototype.slice.call(value2) : []; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var map6 = {}; - __webpack_exports__["a"] = function(prefix2) { - prefix2 = prefix2 || "g"; - if (!map6[prefix2]) { - map6[prefix2] = 1; - } else { - map6[prefix2] += 1; - } - return prefix2 + map6[prefix2]; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = function() { - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = function(v3) { - return v3; - }; - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - __webpack_exports__["a"] = size2; - var __WEBPACK_IMPORTED_MODULE_0__is_nil__ = __webpack_require__(6); - var __WEBPACK_IMPORTED_MODULE_1__is_array_like__ = __webpack_require__(1); - function size2(o3) { - if (Object(__WEBPACK_IMPORTED_MODULE_0__is_nil__["a"])(o3)) { - return 0; - } - if (Object(__WEBPACK_IMPORTED_MODULE_1__is_array_like__["a"])(o3)) { - return o3.length; - } - return Object.keys(o3).length; - } - }, - function(module3, __webpack_exports__, __webpack_require__) { - "use strict"; - var default_12 = function() { - function default_13() { - this.map = {}; - } - default_13.prototype.has = function(key) { - return this.map[key] !== void 0; - }; - default_13.prototype.get = function(key, def) { - var v3 = this.map[key]; - return v3 === void 0 ? def : v3; - }; - default_13.prototype.set = function(key, value2) { - this.map[key] = value2; - }; - default_13.prototype.clear = function() { - this.map = {}; - }; - default_13.prototype.delete = function(key) { - delete this.map[key]; - }; - default_13.prototype.size = function() { - return Object.keys(this.map).length; - }; - return default_13; - }(); - __webpack_exports__["a"] = default_12; - }, - function(module3, exports2) { - function WrappedTree(w4, h3, y5, c5) { - if (c5 === void 0) { - c5 = []; - } - var me = this; - me.w = w4 || 0; - me.h = h3 || 0; - me.y = y5 || 0; - me.x = 0; - me.c = c5 || []; - me.cs = c5.length; - me.prelim = 0; - me.mod = 0; - me.shift = 0; - me.change = 0; - me.tl = null; - me.tr = null; - me.el = null; - me.er = null; - me.msel = 0; - me.mser = 0; - } - WrappedTree.fromNode = function(root, isHorizontal2) { - if (!root) - return null; - var children = []; - root.children.forEach(function(child) { - children.push(WrappedTree.fromNode(child, isHorizontal2)); - }); - if (isHorizontal2) - return new WrappedTree(root.height, root.width, root.x, children); - return new WrappedTree(root.width, root.height, root.y, children); - }; - function moveRight(node, move3, isHorizontal2) { - if (isHorizontal2) { - node.y += move3; - } else { - node.x += move3; - } - node.children.forEach(function(child) { - moveRight(child, move3, isHorizontal2); - }); - } - function getMin(node, isHorizontal2) { - var res = isHorizontal2 ? node.y : node.x; - node.children.forEach(function(child) { - res = Math.min(getMin(child, isHorizontal2), res); - }); - return res; - } - function normalize5(node, isHorizontal2) { - var min7 = getMin(node, isHorizontal2); - moveRight(node, -min7, isHorizontal2); - } - function convertBack(converted, root, isHorizontal2) { - if (isHorizontal2) { - root.y = converted.x; - } else { - root.x = converted.x; - } - converted.c.forEach(function(child, i4) { - convertBack(child, root.children[i4], isHorizontal2); - }); - } - function layer(node, isHorizontal2, d3) { - if (d3 === void 0) { - d3 = 0; - } - if (isHorizontal2) { - node.x = d3; - d3 += node.width; - } else { - node.y = d3; - d3 += node.height; - } - node.children.forEach(function(child) { - layer(child, isHorizontal2, d3); - }); - } - module3.exports = function(root, options) { - if (options === void 0) { - options = {}; - } - var isHorizontal2 = options.isHorizontal; - function firstWalk(t4) { - if (t4.cs === 0) { - setExtremes(t4); - return; - } - firstWalk(t4.c[0]); - var ih = updateIYL(bottom(t4.c[0].el), 0, null); - for (var i4 = 1; i4 < t4.cs; ++i4) { - firstWalk(t4.c[i4]); - var min7 = bottom(t4.c[i4].er); - separate(t4, i4, ih); - ih = updateIYL(min7, i4, ih); - } - positionRoot(t4); - setExtremes(t4); - } - function setExtremes(t4) { - if (t4.cs === 0) { - t4.el = t4; - t4.er = t4; - t4.msel = t4.mser = 0; - } else { - t4.el = t4.c[0].el; - t4.msel = t4.c[0].msel; - t4.er = t4.c[t4.cs - 1].er; - t4.mser = t4.c[t4.cs - 1].mser; - } - } - function separate(t4, i4, ih) { - var sr = t4.c[i4 - 1]; - var mssr = sr.mod; - var cl = t4.c[i4]; - var mscl = cl.mod; - while (sr !== null && cl !== null) { - if (bottom(sr) > ih.low) - ih = ih.nxt; - var dist4 = mssr + sr.prelim + sr.w - (mscl + cl.prelim); - if (dist4 > 0) { - mscl += dist4; - moveSubtree2(t4, i4, ih.index, dist4); - } - var sy = bottom(sr); - var cy = bottom(cl); - if (sy <= cy) { - sr = nextRightContour(sr); - if (sr !== null) - mssr += sr.mod; - } - if (sy >= cy) { - cl = nextLeftContour(cl); - if (cl !== null) - mscl += cl.mod; - } - } - if (!sr && !!cl) { - setLeftThread(t4, i4, cl, mscl); - } else if (!!sr && !cl) { - setRightThread(t4, i4, sr, mssr); - } - } - function moveSubtree2(t4, i4, si, dist4) { - t4.c[i4].mod += dist4; - t4.c[i4].msel += dist4; - t4.c[i4].mser += dist4; - distributeExtra(t4, i4, si, dist4); - } - function nextLeftContour(t4) { - return t4.cs === 0 ? t4.tl : t4.c[0]; - } - function nextRightContour(t4) { - return t4.cs === 0 ? t4.tr : t4.c[t4.cs - 1]; - } - function bottom(t4) { - return t4.y + t4.h; - } - function setLeftThread(t4, i4, cl, modsumcl) { - var li = t4.c[0].el; - li.tl = cl; - var diff2 = modsumcl - cl.mod - t4.c[0].msel; - li.mod += diff2; - li.prelim -= diff2; - t4.c[0].el = t4.c[i4].el; - t4.c[0].msel = t4.c[i4].msel; - } - function setRightThread(t4, i4, sr, modsumsr) { - var ri = t4.c[i4].er; - ri.tr = sr; - var diff2 = modsumsr - sr.mod - t4.c[i4].mser; - ri.mod += diff2; - ri.prelim -= diff2; - t4.c[i4].er = t4.c[i4 - 1].er; - t4.c[i4].mser = t4.c[i4 - 1].mser; - } - function positionRoot(t4) { - t4.prelim = (t4.c[0].prelim + t4.c[0].mod + t4.c[t4.cs - 1].mod + t4.c[t4.cs - 1].prelim + t4.c[t4.cs - 1].w) / 2 - t4.w / 2; - } - function secondWalk(t4, modsum) { - modsum += t4.mod; - t4.x = t4.prelim + modsum; - addChildSpacing(t4); - for (var i4 = 0; i4 < t4.cs; i4++) { - secondWalk(t4.c[i4], modsum); - } - } - function distributeExtra(t4, i4, si, dist4) { - if (si !== i4 - 1) { - var nr = i4 - si; - t4.c[si + 1].shift += dist4 / nr; - t4.c[i4].shift -= dist4 / nr; - t4.c[i4].change -= dist4 - dist4 / nr; - } - } - function addChildSpacing(t4) { - var d3 = 0; - var modsumdelta = 0; - for (var i4 = 0; i4 < t4.cs; i4++) { - d3 += t4.c[i4].shift; - modsumdelta += d3 + t4.c[i4].change; - t4.c[i4].mod += modsumdelta; - } - } - function updateIYL(low, index2, ih) { - while (ih !== null && low >= ih.low) { - ih = ih.nxt; - } - return { - low, - index: index2, - nxt: ih - }; - } - layer(root, isHorizontal2); - var wt = WrappedTree.fromNode(root, isHorizontal2); - firstWalk(wt); - secondWalk(wt, 0); - convertBack(wt, root, isHorizontal2); - normalize5(root, isHorizontal2); - return root; - }; - }, - function(module3, exports2, __webpack_require__) { - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - var TreeLayout = __webpack_require__(11); - var dendrogram = __webpack_require__(115); - var doTreeLayout = __webpack_require__(17); - var util = __webpack_require__(7); - var DendrogramLayout = /* @__PURE__ */ function(_TreeLayout) { - _inheritsLoose(DendrogramLayout2, _TreeLayout); - function DendrogramLayout2() { - return _TreeLayout.apply(this, arguments) || this; - } - var _proto = DendrogramLayout2.prototype; - _proto.execute = function execute() { - var me = this; - me.rootNode.width = 0; - return doTreeLayout(me.rootNode, me.options, dendrogram); - }; - return DendrogramLayout2; - }(TreeLayout); - var DEFAULT_OPTIONS37 = {}; - function dendrogramLayout(root, options) { - options = util.assign({}, DEFAULT_OPTIONS37, options); - return new DendrogramLayout(root, options).execute(); - } - module3.exports = dendrogramLayout; - }, - function(module3, exports2, __webpack_require__) { - var util = __webpack_require__(7); - function WrappedTree(height, children) { - if (height === void 0) { - height = 0; - } - if (children === void 0) { - children = []; - } - var me = this; - me.x = me.y = 0; - me.leftChild = me.rightChild = null; - me.height = 0; - me.children = children; - } - var DEFAULT_OPTIONS37 = { - isHorizontal: true, - nodeSep: 20, - nodeSize: 20, - rankSep: 200, - subTreeSep: 10 - }; - function convertBack(converted, root, isHorizontal2) { - if (isHorizontal2) { - root.x = converted.x; - root.y = converted.y; - } else { - root.x = converted.y; - root.y = converted.x; - } - converted.children.forEach(function(child, i4) { - convertBack(child, root.children[i4], isHorizontal2); - }); - } - module3.exports = function(root, options) { - if (options === void 0) { - options = {}; - } - options = util.assign({}, DEFAULT_OPTIONS37, options); - var maxDepth = 0; - function wrappedTreeFromNode(n3) { - if (!n3) - return null; - n3.width = 0; - if (n3.depth && n3.depth > maxDepth) { - maxDepth = n3.depth; - } - var children = n3.children; - var childrenCount = children.length; - var t4 = new WrappedTree(n3.height, []); - children.forEach(function(child, i4) { - var childWT = wrappedTreeFromNode(child); - t4.children.push(childWT); - if (i4 === 0) { - t4.leftChild = childWT; - } - if (i4 === childrenCount - 1) { - t4.rightChild = childWT; - } - }); - t4.originNode = n3; - t4.isLeaf = n3.isLeaf(); - return t4; - } - function getDrawingDepth(t4) { - if (t4.isLeaf || t4.children.length === 0) { - t4.drawingDepth = maxDepth; - } else { - var depths = t4.children.map(function(child) { - return getDrawingDepth(child); - }); - var minChildDepth = Math.min.apply(null, depths); - t4.drawingDepth = minChildDepth - 1; - } - return t4.drawingDepth; - } - var prevLeaf; - function position2(t4) { - t4.x = t4.drawingDepth * options.rankSep; - if (t4.isLeaf) { - t4.y = 0; - if (prevLeaf) { - t4.y = prevLeaf.y + prevLeaf.height + options.nodeSep; - if (t4.originNode.parent !== prevLeaf.originNode.parent) { - t4.y += options.subTreeSep; - } - } - prevLeaf = t4; - } else { - t4.children.forEach(function(child) { - position2(child); - }); - t4.y = (t4.leftChild.y + t4.rightChild.y) / 2; - } - } - var wt = wrappedTreeFromNode(root); - getDrawingDepth(wt); - position2(wt); - convertBack(wt, root, options.isHorizontal); - return root; - }; - }, - function(module3, exports2, __webpack_require__) { - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - var TreeLayout = __webpack_require__(11); - var indentedTree = __webpack_require__(117); - var separateTree = __webpack_require__(30); - var util = __webpack_require__(7); - var VALID_DIRECTIONS = [ - "LR", - "RL", - "H" - ]; - var DEFAULT_DIRECTION = VALID_DIRECTIONS[0]; - var IndentedLayout = /* @__PURE__ */ function(_TreeLayout) { - _inheritsLoose(IndentedLayout2, _TreeLayout); - function IndentedLayout2() { - return _TreeLayout.apply(this, arguments) || this; - } - var _proto = IndentedLayout2.prototype; - _proto.execute = function execute() { - var me = this; - var options = me.options; - var root = me.rootNode; - options.isHorizontal = true; - var _options$indent = options.indent, indent2 = _options$indent === void 0 ? 20 : _options$indent, _options$dropCap = options.dropCap, dropCap = _options$dropCap === void 0 ? true : _options$dropCap; - var direction5 = options.direction || DEFAULT_DIRECTION; - if (direction5 && VALID_DIRECTIONS.indexOf(direction5) === -1) { - throw new TypeError("Invalid direction: " + direction5); - } - if (direction5 === VALID_DIRECTIONS[0]) { - indentedTree(root, indent2, dropCap); - } else if (direction5 === VALID_DIRECTIONS[1]) { - indentedTree(root, indent2, dropCap); - root.right2left(); - } else if (direction5 === VALID_DIRECTIONS[2]) { - var _separateTree = separateTree(root, options), left2 = _separateTree.left, right2 = _separateTree.right; - indentedTree(left2, indent2, dropCap); - left2.right2left(); - indentedTree(right2, indent2, dropCap); - var bbox = left2.getBoundingBox(); - right2.translate(bbox.width, 0); - root.x = right2.x - root.width / 2; - } - return root; - }; - return IndentedLayout2; - }(TreeLayout); - var DEFAULT_OPTIONS37 = {}; - function indentedLayout(root, options) { - options = util.assign({}, DEFAULT_OPTIONS37, options); - return new IndentedLayout(root, options).execute(); - } - module3.exports = indentedLayout; - }, - function(module3, exports2) { - function positionNode(node, previousNode, indent2, dropCap) { - var displacementX = typeof indent2 === "function" ? indent2(node) : indent2 * node.depth; - if (!dropCap) { - try { - if (node.id === node.parent.children[0].id) { - node.x += displacementX; - node.y = previousNode ? previousNode.y : 0; - return; - } - } catch (e4) { - } - } - node.x += displacementX; - node.y = previousNode ? previousNode.y + previousNode.height : 0; - return; - } - module3.exports = function(root, indent2, dropCap) { - var previousNode = null; - root.eachNode(function(node) { - positionNode(node, previousNode, indent2, dropCap); - previousNode = node; - }); - }; - }, - function(module3, exports2, __webpack_require__) { - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - var TreeLayout = __webpack_require__(11); - var mindmap = __webpack_require__(119); - var doTreeLayout = __webpack_require__(17); - var util = __webpack_require__(7); - var MindmapLayout = /* @__PURE__ */ function(_TreeLayout) { - _inheritsLoose(MindmapLayout2, _TreeLayout); - function MindmapLayout2() { - return _TreeLayout.apply(this, arguments) || this; - } - var _proto = MindmapLayout2.prototype; - _proto.execute = function execute() { - var me = this; - return doTreeLayout(me.rootNode, me.options, mindmap); - }; - return MindmapLayout2; - }(TreeLayout); - var DEFAULT_OPTIONS37 = {}; - function mindmapLayout(root, options) { - options = util.assign({}, DEFAULT_OPTIONS37, options); - return new MindmapLayout(root, options).execute(); - } - module3.exports = mindmapLayout; - }, - function(module3, exports2, __webpack_require__) { - var util = __webpack_require__(7); - function secondWalk(node, options) { - var totalHeight = 0; - if (!node.children.length) { - totalHeight = node.height; - } else { - node.children.forEach(function(c5) { - totalHeight += secondWalk(c5, options); - }); - } - node._subTreeSep = options.getSubTreeSep(node.data); - node.totalHeight = Math.max(node.height, totalHeight) + 2 * node._subTreeSep; - return node.totalHeight; - } - function thirdWalk(node) { - var children = node.children; - var len5 = children.length; - if (len5) { - children.forEach(function(c5) { - thirdWalk(c5); - }); - var first = children[0]; - var last2 = children[len5 - 1]; - var childrenHeight = last2.y - first.y + last2.height; - var childrenTotalHeight = 0; - children.forEach(function(child) { - childrenTotalHeight += child.totalHeight; - }); - if (childrenHeight > node.height) { - node.y = first.y + childrenHeight / 2 - node.height / 2; - } else if (children.length !== 1 || node.height > childrenTotalHeight) { - var offset = node.y + (node.height - childrenHeight) / 2 - first.y; - children.forEach(function(c5) { - c5.translate(0, offset); - }); - } else { - node.y = (first.y + first.height / 2 + last2.y + last2.height / 2) / 2 - node.height / 2; - } - } - } - var DEFAULT_OPTIONS37 = { - getSubTreeSep: function getSubTreeSep() { - return 0; - } - }; - module3.exports = function(root, options) { - if (options === void 0) { - options = {}; - } - options = util.assign({}, DEFAULT_OPTIONS37, options); - root.parent = { - x: 0, - width: 0, - height: 0, - y: 0 - }; - root.BFTraverse(function(node) { - node.x = node.parent.x + node.parent.width; - }); - root.parent = null; - secondWalk(root, options); - root.startY = 0; - root.y = root.totalHeight / 2 - root.height / 2; - root.eachNode(function(node) { - var children = node.children; - var len5 = children.length; - if (len5) { - var first = children[0]; - first.startY = node.startY + node._subTreeSep; - if (len5 === 1) { - first.y = node.y + node.height / 2 - first.height / 2; - } else { - first.y = first.startY + first.totalHeight / 2 - first.height / 2; - for (var i4 = 1; i4 < len5; i4++) { - var c5 = children[i4]; - c5.startY = children[i4 - 1].startY + children[i4 - 1].totalHeight; - c5.y = c5.startY + c5.totalHeight / 2 - c5.height / 2; - } - } - } - }); - thirdWalk(root); - }; - } - ]); - }); - } -}); - -// node_modules/insert-css/index.js -var require_insert_css = __commonJS({ - "node_modules/insert-css/index.js"(exports, module2) { - var containers = []; - var styleElements = []; - var usage = "insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options])."; - function insertCss4(css, options) { - options = options || {}; - if (css === void 0) { - throw new Error(usage); - } - var position2 = options.prepend === true ? "prepend" : "append"; - var container2 = options.container !== void 0 ? options.container : document.querySelector("head"); - var containerId = containers.indexOf(container2); - if (containerId === -1) { - containerId = containers.push(container2) - 1; - styleElements[containerId] = {}; - } - var styleElement; - if (styleElements[containerId] !== void 0 && styleElements[containerId][position2] !== void 0) { - styleElement = styleElements[containerId][position2]; - } else { - styleElement = styleElements[containerId][position2] = createStyleElement(); - if (position2 === "prepend") { - container2.insertBefore(styleElement, container2.childNodes[0]); - } else { - container2.appendChild(styleElement); - } - } - if (css.charCodeAt(0) === 65279) { - css = css.substr(1, css.length); - } - if (styleElement.styleSheet) { - styleElement.styleSheet.cssText += css; - } else { - styleElement.textContent += css; - } - return styleElement; - } - function createStyleElement() { - var styleElement = document.createElement("style"); - styleElement.setAttribute("type", "text/css"); - return styleElement; - } - module2.exports = insertCss4; - module2.exports.insertCss = insertCss4; - } -}); - -// node_modules/react/index.js -var require_react = __commonJS({ - "node_modules/react/index.js"(exports, module2) { - module2.exports = (init_compat_module(), compat_module_exports); - } -}); - -// node_modules/@ant-design/charts/lib/errorBoundary/index.js -var require_errorBoundary = __commonJS({ - "node_modules/@ant-design/charts/lib/errorBoundary/index.js"(exports) { - "use strict"; - var __extends15 = exports && exports.__extends || function() { - var extendStatics = function(d3, b10) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - }; - return extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; - }(); - var __createBinding4 = exports && exports.__createBinding || (Object.create ? function(o3, m4, k4, k22) { - if (k22 === void 0) - k22 = k4; - Object.defineProperty(o3, k22, { enumerable: true, get: function() { - return m4[k4]; - } }); - } : function(o3, m4, k4, k22) { - if (k22 === void 0) - k22 = k4; - o3[k22] = m4[k4]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o3, v3) { - Object.defineProperty(o3, "default", { enumerable: true, value: v3 }); - } : function(o3, v3) { - o3["default"] = v3; - }); - var __importStar4 = exports && exports.__importStar || function(mod3) { - if (mod3 && mod3.__esModule) - return mod3; - var result = {}; - if (mod3 != null) { - for (var k4 in mod3) - if (k4 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k4)) - __createBinding4(result, mod3, k4); - } - __setModuleDefault(result, mod3); - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var react_1 = __importStar4(require_react()); - var ErrorBoundary3 = function(_super) { - __extends15(ErrorBoundary4, _super); - function ErrorBoundary4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.state = { - hasError: false - }; - _this.renderError = function(e4) { - var errorTemplate = _this.props.errorTemplate; - switch (e4) { - default: - return errorTemplate && typeof errorTemplate === "function" ? errorTemplate(e4) : react_1.default.createElement("h5", null, "\u7EC4\u4EF6\u51FA\u9519\u4E86\uFF0C\u8BF7\u6838\u67E5\u540E\u91CD\u8BD5\uFF1A ", e4.message); - } - }; - return _this; - } - ErrorBoundary4.getDerivedStateFromError = function(error) { - return { hasError: true, error }; - }; - ErrorBoundary4.getDerivedStateFromProps = function(nextProps, state2) { - if (state2.children !== nextProps.children) { - return { - children: nextProps.children, - hasError: false, - error: void 0 - }; - } - return null; - }; - ErrorBoundary4.prototype.render = function() { - if (this.state.hasError) { - return this.renderError(this.state.error); - } - return react_1.default.createElement(react_1.Fragment, null, this.props.children); - }; - return ErrorBoundary4; - }(react_1.default.Component); - exports.default = ErrorBoundary3; - } -}); - -// node_modules/papaparse/papaparse.min.js -var require_papaparse_min = __commonJS({ - "node_modules/papaparse/papaparse.min.js"(exports, module2) { - !function(e4, t4) { - typeof define == "function" && define.amd ? define([], t4) : typeof module2 == "object" && typeof exports != "undefined" ? module2.exports = t4() : e4.Papa = t4(); - }(exports, function s4() { - "use strict"; - var f3 = typeof self != "undefined" ? self : typeof window != "undefined" ? window : f3 !== void 0 ? f3 : {}; - var n3 = !f3.document && !!f3.postMessage, o3 = n3 && /blob:/i.test((f3.location || {}).protocol), a4 = {}, h3 = 0, b10 = { parse: function(e4, t4) { - var i5 = (t4 = t4 || {}).dynamicTyping || false; - M3(i5) && (t4.dynamicTypingFunction = i5, i5 = {}); - if (t4.dynamicTyping = i5, t4.transform = !!M3(t4.transform) && t4.transform, t4.worker && b10.WORKERS_SUPPORTED) { - var r4 = function() { - if (!b10.WORKERS_SUPPORTED) - return false; - var e6 = (i6 = f3.URL || f3.webkitURL || null, r5 = s4.toString(), b10.BLOB_URL || (b10.BLOB_URL = i6.createObjectURL(new Blob(["(", r5, ")();"], { type: "text/javascript" })))), t5 = new f3.Worker(e6); - var i6, r5; - return t5.onmessage = _8, t5.id = h3++, a4[t5.id] = t5; - }(); - return r4.userStep = t4.step, r4.userChunk = t4.chunk, r4.userComplete = t4.complete, r4.userError = t4.error, t4.step = M3(t4.step), t4.chunk = M3(t4.chunk), t4.complete = M3(t4.complete), t4.error = M3(t4.error), delete t4.worker, void r4.postMessage({ input: e4, config: t4, workerId: r4.id }); - } - var n4 = null; - b10.NODE_STREAM_INPUT, typeof e4 == "string" ? n4 = t4.download ? new l4(t4) : new p4(t4) : e4.readable === true && M3(e4.read) && M3(e4.on) ? n4 = new g4(t4) : (f3.File && e4 instanceof File || e4 instanceof Object) && (n4 = new c5(t4)); - return n4.stream(e4); - }, unparse: function(e4, t4) { - var n4 = false, _9 = true, m5 = ",", y6 = "\r\n", s5 = '"', a5 = s5 + s5, i5 = false, r4 = null, o4 = false; - !function() { - if (typeof t4 != "object") - return; - typeof t4.delimiter != "string" || b10.BAD_DELIMITERS.filter(function(e6) { - return t4.delimiter.indexOf(e6) !== -1; - }).length || (m5 = t4.delimiter); - (typeof t4.quotes == "boolean" || typeof t4.quotes == "function" || Array.isArray(t4.quotes)) && (n4 = t4.quotes); - typeof t4.skipEmptyLines != "boolean" && typeof t4.skipEmptyLines != "string" || (i5 = t4.skipEmptyLines); - typeof t4.newline == "string" && (y6 = t4.newline); - typeof t4.quoteChar == "string" && (s5 = t4.quoteChar); - typeof t4.header == "boolean" && (_9 = t4.header); - if (Array.isArray(t4.columns)) { - if (t4.columns.length === 0) - throw new Error("Option columns is empty"); - r4 = t4.columns; - } - t4.escapeChar !== void 0 && (a5 = t4.escapeChar + s5); - typeof t4.escapeFormulae == "boolean" && (o4 = t4.escapeFormulae); - }(); - var h4 = new RegExp(j4(s5), "g"); - typeof e4 == "string" && (e4 = JSON.parse(e4)); - if (Array.isArray(e4)) { - if (!e4.length || Array.isArray(e4[0])) - return u4(null, e4, i5); - if (typeof e4[0] == "object") - return u4(r4 || Object.keys(e4[0]), e4, i5); - } else if (typeof e4 == "object") - return typeof e4.data == "string" && (e4.data = JSON.parse(e4.data)), Array.isArray(e4.data) && (e4.fields || (e4.fields = e4.meta && e4.meta.fields), e4.fields || (e4.fields = Array.isArray(e4.data[0]) ? e4.fields : typeof e4.data[0] == "object" ? Object.keys(e4.data[0]) : []), Array.isArray(e4.data[0]) || typeof e4.data[0] == "object" || (e4.data = [e4.data])), u4(e4.fields || [], e4.data || [], i5); - throw new Error("Unable to serialize unrecognized input"); - function u4(e6, t5, i6) { - var r5 = ""; - typeof e6 == "string" && (e6 = JSON.parse(e6)), typeof t5 == "string" && (t5 = JSON.parse(t5)); - var n5 = Array.isArray(e6) && 0 < e6.length, s6 = !Array.isArray(t5[0]); - if (n5 && _9) { - for (var a6 = 0; a6 < e6.length; a6++) - 0 < a6 && (r5 += m5), r5 += v4(e6[a6], a6); - 0 < t5.length && (r5 += y6); - } - for (var o5 = 0; o5 < t5.length; o5++) { - var h5 = n5 ? e6.length : t5[o5].length, u5 = false, f4 = n5 ? Object.keys(t5[o5]).length === 0 : t5[o5].length === 0; - if (i6 && !n5 && (u5 = i6 === "greedy" ? t5[o5].join("").trim() === "" : t5[o5].length === 1 && t5[o5][0].length === 0), i6 === "greedy" && n5) { - for (var d4 = [], l5 = 0; l5 < h5; l5++) { - var c6 = s6 ? e6[l5] : l5; - d4.push(t5[o5][c6]); - } - u5 = d4.join("").trim() === ""; - } - if (!u5) { - for (var p5 = 0; p5 < h5; p5++) { - 0 < p5 && !f4 && (r5 += m5); - var g5 = n5 && s6 ? e6[p5] : p5; - r5 += v4(t5[o5][g5], p5); - } - o5 < t5.length - 1 && (!i6 || 0 < h5 && !f4) && (r5 += y6); - } - } - return r5; - } - function v4(e6, t5) { - if (e6 == null) - return ""; - if (e6.constructor === Date) - return JSON.stringify(e6).slice(1, 25); - o4 === true && typeof e6 == "string" && e6.match(/^[=+\-@].*$/) !== null && (e6 = "'" + e6); - var i6 = e6.toString().replace(h4, a5), r5 = typeof n4 == "boolean" && n4 || typeof n4 == "function" && n4(e6, t5) || Array.isArray(n4) && n4[t5] || function(e7, t6) { - for (var i7 = 0; i7 < t6.length; i7++) - if (-1 < e7.indexOf(t6[i7])) - return true; - return false; - }(i6, b10.BAD_DELIMITERS) || -1 < i6.indexOf(m5) || i6.charAt(0) === " " || i6.charAt(i6.length - 1) === " "; - return r5 ? s5 + i6 + s5 : i6; - } - } }; - if (b10.RECORD_SEP = String.fromCharCode(30), b10.UNIT_SEP = String.fromCharCode(31), b10.BYTE_ORDER_MARK = "\uFEFF", b10.BAD_DELIMITERS = ["\r", "\n", '"', b10.BYTE_ORDER_MARK], b10.WORKERS_SUPPORTED = !n3 && !!f3.Worker, b10.NODE_STREAM_INPUT = 1, b10.LocalChunkSize = 10485760, b10.RemoteChunkSize = 5242880, b10.DefaultDelimiter = ",", b10.Parser = E2, b10.ParserHandle = i4, b10.NetworkStreamer = l4, b10.FileStreamer = c5, b10.StringStreamer = p4, b10.ReadableStreamStreamer = g4, f3.jQuery) { - var d3 = f3.jQuery; - d3.fn.parse = function(o4) { - var i5 = o4.config || {}, h4 = []; - return this.each(function(e6) { - if (!(d3(this).prop("tagName").toUpperCase() === "INPUT" && d3(this).attr("type").toLowerCase() === "file" && f3.FileReader) || !this.files || this.files.length === 0) - return true; - for (var t4 = 0; t4 < this.files.length; t4++) - h4.push({ file: this.files[t4], inputElem: this, instanceConfig: d3.extend({}, i5) }); - }), e4(), this; - function e4() { - if (h4.length !== 0) { - var e6, t4, i6, r4, n4 = h4[0]; - if (M3(o4.before)) { - var s5 = o4.before(n4.file, n4.inputElem); - if (typeof s5 == "object") { - if (s5.action === "abort") - return e6 = "AbortError", t4 = n4.file, i6 = n4.inputElem, r4 = s5.reason, void (M3(o4.error) && o4.error({ name: e6 }, t4, i6, r4)); - if (s5.action === "skip") - return void u4(); - typeof s5.config == "object" && (n4.instanceConfig = d3.extend(n4.instanceConfig, s5.config)); - } else if (s5 === "skip") - return void u4(); - } - var a5 = n4.instanceConfig.complete; - n4.instanceConfig.complete = function(e7) { - M3(a5) && a5(e7, n4.file, n4.inputElem), u4(); - }, b10.parse(n4.file, n4.instanceConfig); - } else - M3(o4.complete) && o4.complete(); - } - function u4() { - h4.splice(0, 1), e4(); - } - }; - } - function u3(e4) { - this._handle = null, this._finished = false, this._completed = false, this._halted = false, this._input = null, this._baseIndex = 0, this._partialLine = "", this._rowCount = 0, this._start = 0, this._nextChunk = null, this.isFirstChunk = true, this._completeResults = { data: [], errors: [], meta: {} }, function(e6) { - var t4 = w4(e6); - t4.chunkSize = parseInt(t4.chunkSize), e6.step || e6.chunk || (t4.chunkSize = null); - this._handle = new i4(t4), (this._handle.streamer = this)._config = t4; - }.call(this, e4), this.parseChunk = function(e6, t4) { - if (this.isFirstChunk && M3(this._config.beforeFirstChunk)) { - var i5 = this._config.beforeFirstChunk(e6); - i5 !== void 0 && (e6 = i5); - } - this.isFirstChunk = false, this._halted = false; - var r4 = this._partialLine + e6; - this._partialLine = ""; - var n4 = this._handle.parse(r4, this._baseIndex, !this._finished); - if (!this._handle.paused() && !this._handle.aborted()) { - var s5 = n4.meta.cursor; - this._finished || (this._partialLine = r4.substring(s5 - this._baseIndex), this._baseIndex = s5), n4 && n4.data && (this._rowCount += n4.data.length); - var a5 = this._finished || this._config.preview && this._rowCount >= this._config.preview; - if (o3) - f3.postMessage({ results: n4, workerId: b10.WORKER_ID, finished: a5 }); - else if (M3(this._config.chunk) && !t4) { - if (this._config.chunk(n4, this._handle), this._handle.paused() || this._handle.aborted()) - return void (this._halted = true); - n4 = void 0, this._completeResults = void 0; - } - return this._config.step || this._config.chunk || (this._completeResults.data = this._completeResults.data.concat(n4.data), this._completeResults.errors = this._completeResults.errors.concat(n4.errors), this._completeResults.meta = n4.meta), this._completed || !a5 || !M3(this._config.complete) || n4 && n4.meta.aborted || (this._config.complete(this._completeResults, this._input), this._completed = true), a5 || n4 && n4.meta.paused || this._nextChunk(), n4; - } - this._halted = true; - }, this._sendError = function(e6) { - M3(this._config.error) ? this._config.error(e6) : o3 && this._config.error && f3.postMessage({ workerId: b10.WORKER_ID, error: e6, finished: false }); - }; - } - function l4(e4) { - var r4; - (e4 = e4 || {}).chunkSize || (e4.chunkSize = b10.RemoteChunkSize), u3.call(this, e4), this._nextChunk = n3 ? function() { - this._readChunk(), this._chunkLoaded(); - } : function() { - this._readChunk(); - }, this.stream = function(e6) { - this._input = e6, this._nextChunk(); - }, this._readChunk = function() { - if (this._finished) - this._chunkLoaded(); - else { - if (r4 = new XMLHttpRequest(), this._config.withCredentials && (r4.withCredentials = this._config.withCredentials), n3 || (r4.onload = v3(this._chunkLoaded, this), r4.onerror = v3(this._chunkError, this)), r4.open(this._config.downloadRequestBody ? "POST" : "GET", this._input, !n3), this._config.downloadRequestHeaders) { - var e6 = this._config.downloadRequestHeaders; - for (var t4 in e6) - r4.setRequestHeader(t4, e6[t4]); - } - if (this._config.chunkSize) { - var i5 = this._start + this._config.chunkSize - 1; - r4.setRequestHeader("Range", "bytes=" + this._start + "-" + i5); - } - try { - r4.send(this._config.downloadRequestBody); - } catch (e7) { - this._chunkError(e7.message); - } - n3 && r4.status === 0 && this._chunkError(); - } - }, this._chunkLoaded = function() { - r4.readyState === 4 && (r4.status < 200 || 400 <= r4.status ? this._chunkError() : (this._start += this._config.chunkSize ? this._config.chunkSize : r4.responseText.length, this._finished = !this._config.chunkSize || this._start >= function(e6) { - var t4 = e6.getResponseHeader("Content-Range"); - if (t4 === null) - return -1; - return parseInt(t4.substring(t4.lastIndexOf("/") + 1)); - }(r4), this.parseChunk(r4.responseText))); - }, this._chunkError = function(e6) { - var t4 = r4.statusText || e6; - this._sendError(new Error(t4)); - }; - } - function c5(e4) { - var r4, n4; - (e4 = e4 || {}).chunkSize || (e4.chunkSize = b10.LocalChunkSize), u3.call(this, e4); - var s5 = typeof FileReader != "undefined"; - this.stream = function(e6) { - this._input = e6, n4 = e6.slice || e6.webkitSlice || e6.mozSlice, s5 ? ((r4 = new FileReader()).onload = v3(this._chunkLoaded, this), r4.onerror = v3(this._chunkError, this)) : r4 = new FileReaderSync(), this._nextChunk(); - }, this._nextChunk = function() { - this._finished || this._config.preview && !(this._rowCount < this._config.preview) || this._readChunk(); - }, this._readChunk = function() { - var e6 = this._input; - if (this._config.chunkSize) { - var t4 = Math.min(this._start + this._config.chunkSize, this._input.size); - e6 = n4.call(e6, this._start, t4); - } - var i5 = r4.readAsText(e6, this._config.encoding); - s5 || this._chunkLoaded({ target: { result: i5 } }); - }, this._chunkLoaded = function(e6) { - this._start += this._config.chunkSize, this._finished = !this._config.chunkSize || this._start >= this._input.size, this.parseChunk(e6.target.result); - }, this._chunkError = function() { - this._sendError(r4.error); - }; - } - function p4(e4) { - var i5; - u3.call(this, e4 = e4 || {}), this.stream = function(e6) { - return i5 = e6, this._nextChunk(); - }, this._nextChunk = function() { - if (!this._finished) { - var e6, t4 = this._config.chunkSize; - return t4 ? (e6 = i5.substring(0, t4), i5 = i5.substring(t4)) : (e6 = i5, i5 = ""), this._finished = !i5, this.parseChunk(e6); - } - }; - } - function g4(e4) { - u3.call(this, e4 = e4 || {}); - var t4 = [], i5 = true, r4 = false; - this.pause = function() { - u3.prototype.pause.apply(this, arguments), this._input.pause(); - }, this.resume = function() { - u3.prototype.resume.apply(this, arguments), this._input.resume(); - }, this.stream = function(e6) { - this._input = e6, this._input.on("data", this._streamData), this._input.on("end", this._streamEnd), this._input.on("error", this._streamError); - }, this._checkIsFinished = function() { - r4 && t4.length === 1 && (this._finished = true); - }, this._nextChunk = function() { - this._checkIsFinished(), t4.length ? this.parseChunk(t4.shift()) : i5 = true; - }, this._streamData = v3(function(e6) { - try { - t4.push(typeof e6 == "string" ? e6 : e6.toString(this._config.encoding)), i5 && (i5 = false, this._checkIsFinished(), this.parseChunk(t4.shift())); - } catch (e7) { - this._streamError(e7); - } - }, this), this._streamError = v3(function(e6) { - this._streamCleanUp(), this._sendError(e6); - }, this), this._streamEnd = v3(function() { - this._streamCleanUp(), r4 = true, this._streamData(""); - }, this), this._streamCleanUp = v3(function() { - this._input.removeListener("data", this._streamData), this._input.removeListener("end", this._streamEnd), this._input.removeListener("error", this._streamError); - }, this); - } - function i4(m5) { - var a5, o4, h4, r4 = Math.pow(2, 53), n4 = -r4, s5 = /^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/, u4 = /^(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))$/, t4 = this, i5 = 0, f4 = 0, d4 = false, e4 = false, l5 = [], c6 = { data: [], errors: [], meta: {} }; - if (M3(m5.step)) { - var p5 = m5.step; - m5.step = function(e6) { - if (c6 = e6, _9()) - g5(); - else { - if (g5(), c6.data.length === 0) - return; - i5 += e6.data.length, m5.preview && i5 > m5.preview ? o4.abort() : (c6.data = c6.data[0], p5(c6, t4)); - } - }; - } - function y6(e6) { - return m5.skipEmptyLines === "greedy" ? e6.join("").trim() === "" : e6.length === 1 && e6[0].length === 0; - } - function g5() { - if (c6 && h4 && (k4("Delimiter", "UndetectableDelimiter", "Unable to auto-detect delimiting character; defaulted to '" + b10.DefaultDelimiter + "'"), h4 = false), m5.skipEmptyLines) - for (var e6 = 0; e6 < c6.data.length; e6++) - y6(c6.data[e6]) && c6.data.splice(e6--, 1); - return _9() && function() { - if (!c6) - return; - function e7(e8, t6) { - M3(m5.transformHeader) && (e8 = m5.transformHeader(e8, t6)), l5.push(e8); - } - if (Array.isArray(c6.data[0])) { - for (var t5 = 0; _9() && t5 < c6.data.length; t5++) - c6.data[t5].forEach(e7); - c6.data.splice(0, 1); - } else - c6.data.forEach(e7); - }(), function() { - if (!c6 || !m5.header && !m5.dynamicTyping && !m5.transform) - return c6; - function e7(e8, t6) { - var i6, r5 = m5.header ? {} : []; - for (i6 = 0; i6 < e8.length; i6++) { - var n5 = i6, s6 = e8[i6]; - m5.header && (n5 = i6 >= l5.length ? "__parsed_extra" : l5[i6]), m5.transform && (s6 = m5.transform(s6, n5)), s6 = v4(n5, s6), n5 === "__parsed_extra" ? (r5[n5] = r5[n5] || [], r5[n5].push(s6)) : r5[n5] = s6; - } - return m5.header && (i6 > l5.length ? k4("FieldMismatch", "TooManyFields", "Too many fields: expected " + l5.length + " fields but parsed " + i6, f4 + t6) : i6 < l5.length && k4("FieldMismatch", "TooFewFields", "Too few fields: expected " + l5.length + " fields but parsed " + i6, f4 + t6)), r5; - } - var t5 = 1; - !c6.data.length || Array.isArray(c6.data[0]) ? (c6.data = c6.data.map(e7), t5 = c6.data.length) : c6.data = e7(c6.data, 0); - m5.header && c6.meta && (c6.meta.fields = l5); - return f4 += t5, c6; - }(); - } - function _9() { - return m5.header && l5.length === 0; - } - function v4(e6, t5) { - return i6 = e6, m5.dynamicTypingFunction && m5.dynamicTyping[i6] === void 0 && (m5.dynamicTyping[i6] = m5.dynamicTypingFunction(i6)), (m5.dynamicTyping[i6] || m5.dynamicTyping) === true ? t5 === "true" || t5 === "TRUE" || t5 !== "false" && t5 !== "FALSE" && (function(e7) { - if (s5.test(e7)) { - var t6 = parseFloat(e7); - if (n4 < t6 && t6 < r4) - return true; - } - return false; - }(t5) ? parseFloat(t5) : u4.test(t5) ? new Date(t5) : t5 === "" ? null : t5) : t5; - var i6; - } - function k4(e6, t5, i6, r5) { - var n5 = { type: e6, code: t5, message: i6 }; - r5 !== void 0 && (n5.row = r5), c6.errors.push(n5); - } - this.parse = function(e6, t5, i6) { - var r5 = m5.quoteChar || '"'; - if (m5.newline || (m5.newline = function(e7, t6) { - e7 = e7.substring(0, 1048576); - var i7 = new RegExp(j4(t6) + "([^]*?)" + j4(t6), "gm"), r6 = (e7 = e7.replace(i7, "")).split("\r"), n6 = e7.split("\n"), s7 = 1 < n6.length && n6[0].length < r6[0].length; - if (r6.length === 1 || s7) - return "\n"; - for (var a6 = 0, o5 = 0; o5 < r6.length; o5++) - r6[o5][0] === "\n" && a6++; - return a6 >= r6.length / 2 ? "\r\n" : "\r"; - }(e6, r5)), h4 = false, m5.delimiter) - M3(m5.delimiter) && (m5.delimiter = m5.delimiter(e6), c6.meta.delimiter = m5.delimiter); - else { - var n5 = function(e7, t6, i7, r6, n6) { - var s7, a6, o5, h5; - n6 = n6 || [",", " ", "|", ";", b10.RECORD_SEP, b10.UNIT_SEP]; - for (var u5 = 0; u5 < n6.length; u5++) { - var f5 = n6[u5], d5 = 0, l6 = 0, c7 = 0; - o5 = void 0; - for (var p6 = new E2({ comments: r6, delimiter: f5, newline: t6, preview: 10 }).parse(e7), g6 = 0; g6 < p6.data.length; g6++) - if (i7 && y6(p6.data[g6])) - c7++; - else { - var _10 = p6.data[g6].length; - l6 += _10, o5 !== void 0 ? 0 < _10 && (d5 += Math.abs(_10 - o5), o5 = _10) : o5 = _10; - } - 0 < p6.data.length && (l6 /= p6.data.length - c7), (a6 === void 0 || d5 <= a6) && (h5 === void 0 || h5 < l6) && 1.99 < l6 && (a6 = d5, s7 = f5, h5 = l6); - } - return { successful: !!(m5.delimiter = s7), bestDelimiter: s7 }; - }(e6, m5.newline, m5.skipEmptyLines, m5.comments, m5.delimitersToGuess); - n5.successful ? m5.delimiter = n5.bestDelimiter : (h4 = true, m5.delimiter = b10.DefaultDelimiter), c6.meta.delimiter = m5.delimiter; - } - var s6 = w4(m5); - return m5.preview && m5.header && s6.preview++, a5 = e6, o4 = new E2(s6), c6 = o4.parse(a5, t5, i6), g5(), d4 ? { meta: { paused: true } } : c6 || { meta: { paused: false } }; - }, this.paused = function() { - return d4; - }, this.pause = function() { - d4 = true, o4.abort(), a5 = M3(m5.chunk) ? "" : a5.substring(o4.getCharIndex()); - }, this.resume = function() { - t4.streamer._halted ? (d4 = false, t4.streamer.parseChunk(a5, true)) : setTimeout(t4.resume, 3); - }, this.aborted = function() { - return e4; - }, this.abort = function() { - e4 = true, o4.abort(), c6.meta.aborted = true, M3(m5.complete) && m5.complete(c6), a5 = ""; - }; - } - function j4(e4) { - return e4.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); - } - function E2(e4) { - var S3, O3 = (e4 = e4 || {}).delimiter, x6 = e4.newline, I3 = e4.comments, T5 = e4.step, D3 = e4.preview, A4 = e4.fastMode, L3 = S3 = e4.quoteChar === void 0 ? '"' : e4.quoteChar; - if (e4.escapeChar !== void 0 && (L3 = e4.escapeChar), (typeof O3 != "string" || -1 < b10.BAD_DELIMITERS.indexOf(O3)) && (O3 = ","), I3 === O3) - throw new Error("Comment character same as delimiter"); - I3 === true ? I3 = "#" : (typeof I3 != "string" || -1 < b10.BAD_DELIMITERS.indexOf(I3)) && (I3 = false), x6 !== "\n" && x6 !== "\r" && x6 !== "\r\n" && (x6 = "\n"); - var F3 = 0, z3 = false; - this.parse = function(r4, t4, i5) { - if (typeof r4 != "string") - throw new Error("Input must be a string"); - var n4 = r4.length, e6 = O3.length, s5 = x6.length, a5 = I3.length, o4 = M3(T5), h4 = [], u4 = [], f4 = [], d4 = F3 = 0; - if (!r4) - return C3(); - if (A4 || A4 !== false && r4.indexOf(S3) === -1) { - for (var l5 = r4.split(x6), c6 = 0; c6 < l5.length; c6++) { - if (f4 = l5[c6], F3 += f4.length, c6 !== l5.length - 1) - F3 += x6.length; - else if (i5) - return C3(); - if (!I3 || f4.substring(0, a5) !== I3) { - if (o4) { - if (h4 = [], k4(f4.split(O3)), R3(), z3) - return C3(); - } else - k4(f4.split(O3)); - if (D3 && D3 <= c6) - return h4 = h4.slice(0, D3), C3(true); - } - } - return C3(); - } - for (var p5 = r4.indexOf(O3, F3), g5 = r4.indexOf(x6, F3), _9 = new RegExp(j4(L3) + j4(S3), "g"), m5 = r4.indexOf(S3, F3); ; ) - if (r4[F3] !== S3) - if (I3 && f4.length === 0 && r4.substring(F3, F3 + a5) === I3) { - if (g5 === -1) - return C3(); - F3 = g5 + s5, g5 = r4.indexOf(x6, F3), p5 = r4.indexOf(O3, F3); - } else if (p5 !== -1 && (p5 < g5 || g5 === -1)) - f4.push(r4.substring(F3, p5)), F3 = p5 + e6, p5 = r4.indexOf(O3, F3); - else { - if (g5 === -1) - break; - if (f4.push(r4.substring(F3, g5)), w5(g5 + s5), o4 && (R3(), z3)) - return C3(); - if (D3 && h4.length >= D3) - return C3(true); - } - else - for (m5 = F3, F3++; ; ) { - if ((m5 = r4.indexOf(S3, m5 + 1)) === -1) - return i5 || u4.push({ type: "Quotes", code: "MissingQuotes", message: "Quoted field unterminated", row: h4.length, index: F3 }), E3(); - if (m5 === n4 - 1) - return E3(r4.substring(F3, m5).replace(_9, S3)); - if (S3 !== L3 || r4[m5 + 1] !== L3) { - if (S3 === L3 || m5 === 0 || r4[m5 - 1] !== L3) { - p5 !== -1 && p5 < m5 + 1 && (p5 = r4.indexOf(O3, m5 + 1)), g5 !== -1 && g5 < m5 + 1 && (g5 = r4.indexOf(x6, m5 + 1)); - var y6 = b11(g5 === -1 ? p5 : Math.min(p5, g5)); - if (r4[m5 + 1 + y6] === O3) { - f4.push(r4.substring(F3, m5).replace(_9, S3)), r4[F3 = m5 + 1 + y6 + e6] !== S3 && (m5 = r4.indexOf(S3, F3)), p5 = r4.indexOf(O3, F3), g5 = r4.indexOf(x6, F3); - break; - } - var v4 = b11(g5); - if (r4.substring(m5 + 1 + v4, m5 + 1 + v4 + s5) === x6) { - if (f4.push(r4.substring(F3, m5).replace(_9, S3)), w5(m5 + 1 + v4 + s5), p5 = r4.indexOf(O3, F3), m5 = r4.indexOf(S3, F3), o4 && (R3(), z3)) - return C3(); - if (D3 && h4.length >= D3) - return C3(true); - break; - } - u4.push({ type: "Quotes", code: "InvalidQuotes", message: "Trailing quote on quoted field is malformed", row: h4.length, index: F3 }), m5++; - } - } else - m5++; - } - return E3(); - function k4(e7) { - h4.push(e7), d4 = F3; - } - function b11(e7) { - var t5 = 0; - if (e7 !== -1) { - var i6 = r4.substring(m5 + 1, e7); - i6 && i6.trim() === "" && (t5 = i6.length); - } - return t5; - } - function E3(e7) { - return i5 || (e7 === void 0 && (e7 = r4.substring(F3)), f4.push(e7), F3 = n4, k4(f4), o4 && R3()), C3(); - } - function w5(e7) { - F3 = e7, k4(f4), f4 = [], g5 = r4.indexOf(x6, F3); - } - function C3(e7) { - return { data: h4, errors: u4, meta: { delimiter: O3, linebreak: x6, aborted: z3, truncated: !!e7, cursor: d4 + (t4 || 0) } }; - } - function R3() { - T5(C3()), h4 = [], u4 = []; - } - }, this.abort = function() { - z3 = true; - }, this.getCharIndex = function() { - return F3; - }; - } - function _8(e4) { - var t4 = e4.data, i5 = a4[t4.workerId], r4 = false; - if (t4.error) - i5.userError(t4.error, t4.file); - else if (t4.results && t4.results.data) { - var n4 = { abort: function() { - r4 = true, m4(t4.workerId, { data: [], errors: [], meta: { aborted: true } }); - }, pause: y5, resume: y5 }; - if (M3(i5.userStep)) { - for (var s5 = 0; s5 < t4.results.data.length && (i5.userStep({ data: t4.results.data[s5], errors: t4.results.errors, meta: t4.results.meta }, n4), !r4); s5++) - ; - delete t4.results; - } else - M3(i5.userChunk) && (i5.userChunk(t4.results, n4, t4.file), delete t4.results); - } - t4.finished && !r4 && m4(t4.workerId, t4.results); - } - function m4(e4, t4) { - var i5 = a4[e4]; - M3(i5.userComplete) && i5.userComplete(t4), i5.terminate(), delete a4[e4]; - } - function y5() { - throw new Error("Not implemented."); - } - function w4(e4) { - if (typeof e4 != "object" || e4 === null) - return e4; - var t4 = Array.isArray(e4) ? [] : {}; - for (var i5 in e4) - t4[i5] = w4(e4[i5]); - return t4; - } - function v3(e4, t4) { - return function() { - e4.apply(t4, arguments); - }; - } - function M3(e4) { - return typeof e4 == "function"; - } - return o3 && (f3.onmessage = function(e4) { - var t4 = e4.data; - b10.WORKER_ID === void 0 && t4 && (b10.WORKER_ID = t4.workerId); - if (typeof t4.input == "string") - f3.postMessage({ workerId: b10.WORKER_ID, results: b10.parse(t4.input, t4.config), finished: true }); - else if (f3.File && t4.input instanceof File || t4.input instanceof Object) { - var i5 = b10.parse(t4.input, t4.config); - i5 && f3.postMessage({ workerId: b10.WORKER_ID, results: i5, finished: true }); - } - }), (l4.prototype = Object.create(u3.prototype)).constructor = l4, (c5.prototype = Object.create(u3.prototype)).constructor = c5, (p4.prototype = Object.create(p4.prototype)).constructor = p4, (g4.prototype = Object.create(u3.prototype)).constructor = g4, b10; - }); - } -}); - -// node_modules/obsidian-dataview/lib/index.js -var require_lib4 = __commonJS({ - "node_modules/obsidian-dataview/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - require("obsidian"); - var getAPI = (app) => { - var _a6; - if (app) - return (_a6 = app.plugins.plugins.dataview) === null || _a6 === void 0 ? void 0 : _a6.api; - else - return window["DataviewAPI"]; - }; - var isPluginEnabled = (app) => app.plugins.enabledPlugins.has("dataview"); - exports.getAPI = getAPI; - exports.isPluginEnabled = isPluginEnabled; - } -}); - -// src/main.tsx -__export(exports, { - default: () => ChartsViewPlugin -}); - -// node_modules/file-select-dialog/dist/file-select-dialog.esm.js -var e = class extends Error { -}; -var t = class extends e { -}; -var n = class extends e { -}; -var c = (e4, t4 = ",") => e4.join(t4); -var l = { accept: "*", multiple: false, strict: false }; -var r = (e4) => { - const { accept: t4, multiple: n3, strict: r4 } = __spreadValues(__spreadValues({}, l), e4), i4 = p({ multiple: n3, accept: Array.isArray(t4) ? c(t4) : t4 }); - return new Promise((e6) => { - i4.onchange = () => { - e6(s(i4.files, n3, r4)), i4.remove(); - }, i4.click(); - }); -}; -var s = (e4, c5, l4) => new Promise((r4, s4) => { - if (!e4) - return s4(new t()); - const p4 = i(e4, c5, l4); - if (!p4) - return s4(new n()); - r4(p4); -}); -var i = (e4, t4, n3) => !t4 && n3 ? e4.length === 1 ? e4[0] : null : e4.length ? e4 : null; -var p = ({ accept: e4, multiple: t4 }) => { - const n3 = document.createElement("input"); - return n3.type = "file", n3.multiple = t4, n3.accept = e4, n3; -}; - -// node_modules/js-yaml/dist/js-yaml.mjs -function isNothing(subject) { - return typeof subject === "undefined" || subject === null; -} -function isObject(subject) { - return typeof subject === "object" && subject !== null; -} -function toArray(sequence) { - if (Array.isArray(sequence)) - return sequence; - else if (isNothing(sequence)) - return []; - return [sequence]; -} -function extend(target, source) { - var index2, length5, key, sourceKeys; - if (source) { - sourceKeys = Object.keys(source); - for (index2 = 0, length5 = sourceKeys.length; index2 < length5; index2 += 1) { - key = sourceKeys[index2]; - target[key] = source[key]; - } - } - return target; -} -function repeat(string, count2) { - var result = "", cycle; - for (cycle = 0; cycle < count2; cycle += 1) { - result += string; - } - return result; -} -function isNegativeZero(number) { - return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; -} -var isNothing_1 = isNothing; -var isObject_1 = isObject; -var toArray_1 = toArray; -var repeat_1 = repeat; -var isNegativeZero_1 = isNegativeZero; -var extend_1 = extend; -var common = { - isNothing: isNothing_1, - isObject: isObject_1, - toArray: toArray_1, - repeat: repeat_1, - isNegativeZero: isNegativeZero_1, - extend: extend_1 -}; -function formatError(exception2, compact) { - var where = "", message = exception2.reason || "(unknown reason)"; - if (!exception2.mark) - return message; - if (exception2.mark.name) { - where += 'in "' + exception2.mark.name + '" '; - } - where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; - if (!compact && exception2.mark.snippet) { - where += "\n\n" + exception2.mark.snippet; - } - return message + " " + where; -} -function YAMLException$1(reason, mark) { - Error.call(this); - this.name = "YAMLException"; - this.reason = reason; - this.mark = mark; - this.message = formatError(this, false); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack || ""; - } -} -YAMLException$1.prototype = Object.create(Error.prototype); -YAMLException$1.prototype.constructor = YAMLException$1; -YAMLException$1.prototype.toString = function toString(compact) { - return this.name + ": " + formatError(this, compact); -}; -var exception = YAMLException$1; -function getLine(buffer, lineStart, lineEnd, position2, maxLineLength) { - var head2 = ""; - var tail = ""; - var maxHalfLength = Math.floor(maxLineLength / 2) - 1; - if (position2 - lineStart > maxHalfLength) { - head2 = " ... "; - lineStart = position2 - maxHalfLength + head2.length; - } - if (lineEnd - position2 > maxHalfLength) { - tail = " ..."; - lineEnd = position2 + maxHalfLength - tail.length; - } - return { - str: head2 + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail, - pos: position2 - lineStart + head2.length - }; -} -function padStart(string, max8) { - return common.repeat(" ", max8 - string.length) + string; -} -function makeSnippet(mark, options) { - options = Object.create(options || null); - if (!mark.buffer) - return null; - if (!options.maxLength) - options.maxLength = 79; - if (typeof options.indent !== "number") - options.indent = 1; - if (typeof options.linesBefore !== "number") - options.linesBefore = 3; - if (typeof options.linesAfter !== "number") - options.linesAfter = 2; - var re = /\r?\n|\r|\0/g; - var lineStarts = [0]; - var lineEnds = []; - var match; - var foundLineNo = -1; - while (match = re.exec(mark.buffer)) { - lineEnds.push(match.index); - lineStarts.push(match.index + match[0].length); - if (mark.position <= match.index && foundLineNo < 0) { - foundLineNo = lineStarts.length - 2; - } - } - if (foundLineNo < 0) - foundLineNo = lineStarts.length - 1; - var result = "", i4, line2; - var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; - var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); - for (i4 = 1; i4 <= options.linesBefore; i4++) { - if (foundLineNo - i4 < 0) - break; - line2 = getLine(mark.buffer, lineStarts[foundLineNo - i4], lineEnds[foundLineNo - i4], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i4]), maxLineLength); - result = common.repeat(" ", options.indent) + padStart((mark.line - i4 + 1).toString(), lineNoLength) + " | " + line2.str + "\n" + result; - } - line2 = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); - result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line2.str + "\n"; - result += common.repeat("-", options.indent + lineNoLength + 3 + line2.pos) + "^\n"; - for (i4 = 1; i4 <= options.linesAfter; i4++) { - if (foundLineNo + i4 >= lineEnds.length) - break; - line2 = getLine(mark.buffer, lineStarts[foundLineNo + i4], lineEnds[foundLineNo + i4], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i4]), maxLineLength); - result += common.repeat(" ", options.indent) + padStart((mark.line + i4 + 1).toString(), lineNoLength) + " | " + line2.str + "\n"; - } - return result.replace(/\n$/, ""); -} -var snippet = makeSnippet; -var TYPE_CONSTRUCTOR_OPTIONS = [ - "kind", - "multi", - "resolve", - "construct", - "instanceOf", - "predicate", - "represent", - "representName", - "defaultStyle", - "styleAliases" -]; -var YAML_NODE_KINDS = [ - "scalar", - "sequence", - "mapping" -]; -function compileStyleAliases(map6) { - var result = {}; - if (map6 !== null) { - Object.keys(map6).forEach(function(style) { - map6[style].forEach(function(alias) { - result[String(alias)] = style; - }); - }); - } - return result; -} -function Type$1(tag, options) { - options = options || {}; - Object.keys(options).forEach(function(name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - this.options = options; - this.tag = tag; - this.kind = options["kind"] || null; - this.resolve = options["resolve"] || function() { - return true; - }; - this.construct = options["construct"] || function(data3) { - return data3; - }; - this.instanceOf = options["instanceOf"] || null; - this.predicate = options["predicate"] || null; - this.represent = options["represent"] || null; - this.representName = options["representName"] || null; - this.defaultStyle = options["defaultStyle"] || null; - this.multi = options["multi"] || false; - this.styleAliases = compileStyleAliases(options["styleAliases"] || null); - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} -var type = Type$1; -function compileList(schema3, name) { - var result = []; - schema3[name].forEach(function(currentType) { - var newIndex = result.length; - result.forEach(function(previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { - newIndex = previousIndex; - } - }); - result[newIndex] = currentType; - }); - return result; -} -function compileMap() { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {}, - multi: { - scalar: [], - sequence: [], - mapping: [], - fallback: [] - } - }, index2, length5; - function collectType(type2) { - if (type2.multi) { - result.multi[type2.kind].push(type2); - result.multi["fallback"].push(type2); - } else { - result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; - } - } - for (index2 = 0, length5 = arguments.length; index2 < length5; index2 += 1) { - arguments[index2].forEach(collectType); - } - return result; -} -function Schema$1(definition) { - return this.extend(definition); -} -Schema$1.prototype.extend = function extend2(definition) { - var implicit = []; - var explicit = []; - if (definition instanceof type) { - explicit.push(definition); - } else if (Array.isArray(definition)) { - explicit = explicit.concat(definition); - } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { - if (definition.implicit) - implicit = implicit.concat(definition.implicit); - if (definition.explicit) - explicit = explicit.concat(definition.explicit); - } else { - throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); - } - implicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - if (type$1.loadKind && type$1.loadKind !== "scalar") { - throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); - } - if (type$1.multi) { - throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); - } - }); - explicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - }); - var result = Object.create(Schema$1.prototype); - result.implicit = (this.implicit || []).concat(implicit); - result.explicit = (this.explicit || []).concat(explicit); - result.compiledImplicit = compileList(result, "implicit"); - result.compiledExplicit = compileList(result, "explicit"); - result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); - return result; -}; -var schema = Schema$1; -var str = new type("tag:yaml.org,2002:str", { - kind: "scalar", - construct: function(data3) { - return data3 !== null ? data3 : ""; - } -}); -var seq = new type("tag:yaml.org,2002:seq", { - kind: "sequence", - construct: function(data3) { - return data3 !== null ? data3 : []; - } -}); -var map = new type("tag:yaml.org,2002:map", { - kind: "mapping", - construct: function(data3) { - return data3 !== null ? data3 : {}; - } -}); -var failsafe = new schema({ - explicit: [ - str, - seq, - map - ] -}); -function resolveYamlNull(data3) { - if (data3 === null) - return true; - var max8 = data3.length; - return max8 === 1 && data3 === "~" || max8 === 4 && (data3 === "null" || data3 === "Null" || data3 === "NULL"); -} -function constructYamlNull() { - return null; -} -function isNull(object) { - return object === null; -} -var _null = new type("tag:yaml.org,2002:null", { - kind: "scalar", - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function() { - return "~"; - }, - lowercase: function() { - return "null"; - }, - uppercase: function() { - return "NULL"; - }, - camelcase: function() { - return "Null"; - }, - empty: function() { - return ""; - } - }, - defaultStyle: "lowercase" -}); -function resolveYamlBoolean(data3) { - if (data3 === null) - return false; - var max8 = data3.length; - return max8 === 4 && (data3 === "true" || data3 === "True" || data3 === "TRUE") || max8 === 5 && (data3 === "false" || data3 === "False" || data3 === "FALSE"); -} -function constructYamlBoolean(data3) { - return data3 === "true" || data3 === "True" || data3 === "TRUE"; -} -function isBoolean(object) { - return Object.prototype.toString.call(object) === "[object Boolean]"; -} -var bool = new type("tag:yaml.org,2002:bool", { - kind: "scalar", - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function(object) { - return object ? "true" : "false"; - }, - uppercase: function(object) { - return object ? "TRUE" : "FALSE"; - }, - camelcase: function(object) { - return object ? "True" : "False"; - } - }, - defaultStyle: "lowercase" -}); -function isHexCode(c5) { - return 48 <= c5 && c5 <= 57 || 65 <= c5 && c5 <= 70 || 97 <= c5 && c5 <= 102; -} -function isOctCode(c5) { - return 48 <= c5 && c5 <= 55; -} -function isDecCode(c5) { - return 48 <= c5 && c5 <= 57; -} -function resolveYamlInteger(data3) { - if (data3 === null) - return false; - var max8 = data3.length, index2 = 0, hasDigits = false, ch2; - if (!max8) - return false; - ch2 = data3[index2]; - if (ch2 === "-" || ch2 === "+") { - ch2 = data3[++index2]; - } - if (ch2 === "0") { - if (index2 + 1 === max8) - return true; - ch2 = data3[++index2]; - if (ch2 === "b") { - index2++; - for (; index2 < max8; index2++) { - ch2 = data3[index2]; - if (ch2 === "_") - continue; - if (ch2 !== "0" && ch2 !== "1") - return false; - hasDigits = true; - } - return hasDigits && ch2 !== "_"; - } - if (ch2 === "x") { - index2++; - for (; index2 < max8; index2++) { - ch2 = data3[index2]; - if (ch2 === "_") - continue; - if (!isHexCode(data3.charCodeAt(index2))) - return false; - hasDigits = true; - } - return hasDigits && ch2 !== "_"; - } - if (ch2 === "o") { - index2++; - for (; index2 < max8; index2++) { - ch2 = data3[index2]; - if (ch2 === "_") - continue; - if (!isOctCode(data3.charCodeAt(index2))) - return false; - hasDigits = true; - } - return hasDigits && ch2 !== "_"; - } - } - if (ch2 === "_") - return false; - for (; index2 < max8; index2++) { - ch2 = data3[index2]; - if (ch2 === "_") - continue; - if (!isDecCode(data3.charCodeAt(index2))) { - return false; - } - hasDigits = true; - } - if (!hasDigits || ch2 === "_") - return false; - return true; -} -function constructYamlInteger(data3) { - var value2 = data3, sign = 1, ch2; - if (value2.indexOf("_") !== -1) { - value2 = value2.replace(/_/g, ""); - } - ch2 = value2[0]; - if (ch2 === "-" || ch2 === "+") { - if (ch2 === "-") - sign = -1; - value2 = value2.slice(1); - ch2 = value2[0]; - } - if (value2 === "0") - return 0; - if (ch2 === "0") { - if (value2[1] === "b") - return sign * parseInt(value2.slice(2), 2); - if (value2[1] === "x") - return sign * parseInt(value2.slice(2), 16); - if (value2[1] === "o") - return sign * parseInt(value2.slice(2), 8); - } - return sign * parseInt(value2, 10); -} -function isInteger(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); -} -var int = new type("tag:yaml.org,2002:int", { - kind: "scalar", - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function(obj) { - return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); - }, - octal: function(obj) { - return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); - }, - decimal: function(obj) { - return obj.toString(10); - }, - hexadecimal: function(obj) { - return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); - } - }, - defaultStyle: "decimal", - styleAliases: { - binary: [2, "bin"], - octal: [8, "oct"], - decimal: [10, "dec"], - hexadecimal: [16, "hex"] - } -}); -var YAML_FLOAT_PATTERN = new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"); -function resolveYamlFloat(data3) { - if (data3 === null) - return false; - if (!YAML_FLOAT_PATTERN.test(data3) || data3[data3.length - 1] === "_") { - return false; - } - return true; -} -function constructYamlFloat(data3) { - var value2, sign; - value2 = data3.replace(/_/g, "").toLowerCase(); - sign = value2[0] === "-" ? -1 : 1; - if ("+-".indexOf(value2[0]) >= 0) { - value2 = value2.slice(1); - } - if (value2 === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } else if (value2 === ".nan") { - return NaN; - } - return sign * parseFloat(value2, 10); -} -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; -function representYamlFloat(object, style) { - var res; - if (isNaN(object)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (common.isNegativeZero(object)) { - return "-0.0"; - } - res = object.toString(10); - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; -} -function isFloat(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); -} -var float = new type("tag:yaml.org,2002:float", { - kind: "scalar", - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: "lowercase" -}); -var json = failsafe.extend({ - implicit: [ - _null, - bool, - int, - float - ] -}); -var core = json; -var YAML_DATE_REGEXP = new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"); -var YAML_TIMESTAMP_REGEXP = new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"); -function resolveYamlTimestamp(data3) { - if (data3 === null) - return false; - if (YAML_DATE_REGEXP.exec(data3) !== null) - return true; - if (YAML_TIMESTAMP_REGEXP.exec(data3) !== null) - return true; - return false; -} -function constructYamlTimestamp(data3) { - var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match = YAML_DATE_REGEXP.exec(data3); - if (match === null) - match = YAML_TIMESTAMP_REGEXP.exec(data3); - if (match === null) - throw new Error("Date resolve error"); - year = +match[1]; - month = +match[2] - 1; - day = +match[3]; - if (!match[4]) { - return new Date(Date.UTC(year, month, day)); - } - hour = +match[4]; - minute = +match[5]; - second = +match[6]; - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { - fraction += "0"; - } - fraction = +fraction; - } - if (match[9]) { - tz_hour = +match[10]; - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 6e4; - if (match[9] === "-") - delta = -delta; - } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - if (delta) - date.setTime(date.getTime() - delta); - return date; -} -function representYamlTimestamp(object) { - return object.toISOString(); -} -var timestamp = new type("tag:yaml.org,2002:timestamp", { - kind: "scalar", - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); -function resolveYamlMerge(data3) { - return data3 === "<<" || data3 === null; -} -var merge = new type("tag:yaml.org,2002:merge", { - kind: "scalar", - resolve: resolveYamlMerge -}); -var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; -function resolveYamlBinary(data3) { - if (data3 === null) - return false; - var code, idx, bitlen = 0, max8 = data3.length, map6 = BASE64_MAP; - for (idx = 0; idx < max8; idx++) { - code = map6.indexOf(data3.charAt(idx)); - if (code > 64) - continue; - if (code < 0) - return false; - bitlen += 6; - } - return bitlen % 8 === 0; -} -function constructYamlBinary(data3) { - var idx, tailbits, input = data3.replace(/[\r\n=]/g, ""), max8 = input.length, map6 = BASE64_MAP, bits = 0, result = []; - for (idx = 0; idx < max8; idx++) { - if (idx % 4 === 0 && idx) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } - bits = bits << 6 | map6.indexOf(input.charAt(idx)); - } - tailbits = max8 % 4 * 6; - if (tailbits === 0) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } else if (tailbits === 18) { - result.push(bits >> 10 & 255); - result.push(bits >> 2 & 255); - } else if (tailbits === 12) { - result.push(bits >> 4 & 255); - } - return new Uint8Array(result); -} -function representYamlBinary(object) { - var result = "", bits = 0, idx, tail, max8 = object.length, map6 = BASE64_MAP; - for (idx = 0; idx < max8; idx++) { - if (idx % 3 === 0 && idx) { - result += map6[bits >> 18 & 63]; - result += map6[bits >> 12 & 63]; - result += map6[bits >> 6 & 63]; - result += map6[bits & 63]; - } - bits = (bits << 8) + object[idx]; - } - tail = max8 % 3; - if (tail === 0) { - result += map6[bits >> 18 & 63]; - result += map6[bits >> 12 & 63]; - result += map6[bits >> 6 & 63]; - result += map6[bits & 63]; - } else if (tail === 2) { - result += map6[bits >> 10 & 63]; - result += map6[bits >> 4 & 63]; - result += map6[bits << 2 & 63]; - result += map6[64]; - } else if (tail === 1) { - result += map6[bits >> 2 & 63]; - result += map6[bits << 4 & 63]; - result += map6[64]; - result += map6[64]; - } - return result; -} -function isBinary(obj) { - return Object.prototype.toString.call(obj) === "[object Uint8Array]"; -} -var binary = new type("tag:yaml.org,2002:binary", { - kind: "scalar", - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); -var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; -var _toString$2 = Object.prototype.toString; -function resolveYamlOmap(data3) { - if (data3 === null) - return true; - var objectKeys = [], index2, length5, pair, pairKey, pairHasKey, object = data3; - for (index2 = 0, length5 = object.length; index2 < length5; index2 += 1) { - pair = object[index2]; - pairHasKey = false; - if (_toString$2.call(pair) !== "[object Object]") - return false; - for (pairKey in pair) { - if (_hasOwnProperty$3.call(pair, pairKey)) { - if (!pairHasKey) - pairHasKey = true; - else - return false; - } - } - if (!pairHasKey) - return false; - if (objectKeys.indexOf(pairKey) === -1) - objectKeys.push(pairKey); - else - return false; - } - return true; -} -function constructYamlOmap(data3) { - return data3 !== null ? data3 : []; -} -var omap = new type("tag:yaml.org,2002:omap", { - kind: "sequence", - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); -var _toString$1 = Object.prototype.toString; -function resolveYamlPairs(data3) { - if (data3 === null) - return true; - var index2, length5, pair, keys2, result, object = data3; - result = new Array(object.length); - for (index2 = 0, length5 = object.length; index2 < length5; index2 += 1) { - pair = object[index2]; - if (_toString$1.call(pair) !== "[object Object]") - return false; - keys2 = Object.keys(pair); - if (keys2.length !== 1) - return false; - result[index2] = [keys2[0], pair[keys2[0]]]; - } - return true; -} -function constructYamlPairs(data3) { - if (data3 === null) - return []; - var index2, length5, pair, keys2, result, object = data3; - result = new Array(object.length); - for (index2 = 0, length5 = object.length; index2 < length5; index2 += 1) { - pair = object[index2]; - keys2 = Object.keys(pair); - result[index2] = [keys2[0], pair[keys2[0]]]; - } - return result; -} -var pairs = new type("tag:yaml.org,2002:pairs", { - kind: "sequence", - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); -var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; -function resolveYamlSet(data3) { - if (data3 === null) - return true; - var key, object = data3; - for (key in object) { - if (_hasOwnProperty$2.call(object, key)) { - if (object[key] !== null) - return false; - } - } - return true; -} -function constructYamlSet(data3) { - return data3 !== null ? data3 : {}; -} -var set = new type("tag:yaml.org,2002:set", { - kind: "mapping", - resolve: resolveYamlSet, - construct: constructYamlSet -}); -var _default = core.extend({ - implicit: [ - timestamp, - merge - ], - explicit: [ - binary, - omap, - pairs, - set - ] -}); -var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; -function _class(obj) { - return Object.prototype.toString.call(obj); -} -function is_EOL(c5) { - return c5 === 10 || c5 === 13; -} -function is_WHITE_SPACE(c5) { - return c5 === 9 || c5 === 32; -} -function is_WS_OR_EOL(c5) { - return c5 === 9 || c5 === 32 || c5 === 10 || c5 === 13; -} -function is_FLOW_INDICATOR(c5) { - return c5 === 44 || c5 === 91 || c5 === 93 || c5 === 123 || c5 === 125; -} -function fromHexCode(c5) { - var lc; - if (48 <= c5 && c5 <= 57) { - return c5 - 48; - } - lc = c5 | 32; - if (97 <= lc && lc <= 102) { - return lc - 97 + 10; - } - return -1; -} -function escapedHexLen(c5) { - if (c5 === 120) { - return 2; - } - if (c5 === 117) { - return 4; - } - if (c5 === 85) { - return 8; - } - return 0; -} -function fromDecimalCode(c5) { - if (48 <= c5 && c5 <= 57) { - return c5 - 48; - } - return -1; -} -function simpleEscapeSequence(c5) { - return c5 === 48 ? "\0" : c5 === 97 ? "\x07" : c5 === 98 ? "\b" : c5 === 116 ? " " : c5 === 9 ? " " : c5 === 110 ? "\n" : c5 === 118 ? "\v" : c5 === 102 ? "\f" : c5 === 114 ? "\r" : c5 === 101 ? "" : c5 === 32 ? " " : c5 === 34 ? '"' : c5 === 47 ? "/" : c5 === 92 ? "\\" : c5 === 78 ? "\x85" : c5 === 95 ? "\xA0" : c5 === 76 ? "\u2028" : c5 === 80 ? "\u2029" : ""; -} -function charFromCodepoint(c5) { - if (c5 <= 65535) { - return String.fromCharCode(c5); - } - return String.fromCharCode((c5 - 65536 >> 10) + 55296, (c5 - 65536 & 1023) + 56320); -} -var simpleEscapeCheck = new Array(256); -var simpleEscapeMap = new Array(256); -for (i4 = 0; i4 < 256; i4++) { - simpleEscapeCheck[i4] = simpleEscapeSequence(i4) ? 1 : 0; - simpleEscapeMap[i4] = simpleEscapeSequence(i4); -} -var i4; -function State$1(input, options) { - this.input = input; - this.filename = options["filename"] || null; - this.schema = options["schema"] || _default; - this.onWarning = options["onWarning"] || null; - this.legacy = options["legacy"] || false; - this.json = options["json"] || false; - this.listener = options["listener"] || null; - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - this.firstTabInLine = -1; - this.documents = []; -} -function generateError(state2, message) { - var mark = { - name: state2.filename, - buffer: state2.input.slice(0, -1), - position: state2.position, - line: state2.line, - column: state2.position - state2.lineStart - }; - mark.snippet = snippet(mark); - return new exception(message, mark); -} -function throwError(state2, message) { - throw generateError(state2, message); -} -function throwWarning(state2, message) { - if (state2.onWarning) { - state2.onWarning.call(null, generateError(state2, message)); - } -} -var directiveHandlers = { - YAML: function handleYamlDirective(state2, name, args) { - var match, major, minor; - if (state2.version !== null) { - throwError(state2, "duplication of %YAML directive"); - } - if (args.length !== 1) { - throwError(state2, "YAML directive accepts exactly one argument"); - } - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - if (match === null) { - throwError(state2, "ill-formed argument of the YAML directive"); - } - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - if (major !== 1) { - throwError(state2, "unacceptable YAML version of the document"); - } - state2.version = args[0]; - state2.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - throwWarning(state2, "unsupported YAML version of the document"); - } - }, - TAG: function handleTagDirective(state2, name, args) { - var handle, prefix2; - if (args.length !== 2) { - throwError(state2, "TAG directive accepts exactly two arguments"); - } - handle = args[0]; - prefix2 = args[1]; - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state2, "ill-formed tag handle (first argument) of the TAG directive"); - } - if (_hasOwnProperty$1.call(state2.tagMap, handle)) { - throwError(state2, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - if (!PATTERN_TAG_URI.test(prefix2)) { - throwError(state2, "ill-formed tag prefix (second argument) of the TAG directive"); - } - try { - prefix2 = decodeURIComponent(prefix2); - } catch (err) { - throwError(state2, "tag prefix is malformed: " + prefix2); - } - state2.tagMap[handle] = prefix2; - } -}; -function captureSegment(state2, start, end2, checkJson) { - var _position, _length, _character, _result; - if (start < end2) { - _result = state2.input.slice(start, end2); - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { - throwError(state2, "expected valid JSON character"); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state2, "the stream contains non-printable characters"); - } - state2.result += _result; - } -} -function mergeMappings(state2, destination, source, overridableKeys) { - var sourceKeys, key, index2, quantity; - if (!common.isObject(source)) { - throwError(state2, "cannot merge mappings; the provided source object is unacceptable"); - } - sourceKeys = Object.keys(source); - for (index2 = 0, quantity = sourceKeys.length; index2 < quantity; index2 += 1) { - key = sourceKeys[index2]; - if (!_hasOwnProperty$1.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} -function storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { - var index2, quantity; - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - for (index2 = 0, quantity = keyNode.length; index2 < quantity; index2 += 1) { - if (Array.isArray(keyNode[index2])) { - throwError(state2, "nested arrays are not supported inside keys"); - } - if (typeof keyNode === "object" && _class(keyNode[index2]) === "[object Object]") { - keyNode[index2] = "[object Object]"; - } - } - } - if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { - keyNode = "[object Object]"; - } - keyNode = String(keyNode); - if (_result === null) { - _result = {}; - } - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for (index2 = 0, quantity = valueNode.length; index2 < quantity; index2 += 1) { - mergeMappings(state2, _result, valueNode[index2], overridableKeys); - } - } else { - mergeMappings(state2, _result, valueNode, overridableKeys); - } - } else { - if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { - state2.line = startLine || state2.line; - state2.lineStart = startLineStart || state2.lineStart; - state2.position = startPos || state2.position; - throwError(state2, "duplicated mapping key"); - } - if (keyNode === "__proto__") { - Object.defineProperty(_result, keyNode, { - configurable: true, - enumerable: true, - writable: true, - value: valueNode - }); - } else { - _result[keyNode] = valueNode; - } - delete overridableKeys[keyNode]; - } - return _result; -} -function readLineBreak(state2) { - var ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 === 10) { - state2.position++; - } else if (ch2 === 13) { - state2.position++; - if (state2.input.charCodeAt(state2.position) === 10) { - state2.position++; - } - } else { - throwError(state2, "a line break is expected"); - } - state2.line += 1; - state2.lineStart = state2.position; - state2.firstTabInLine = -1; -} -function skipSeparationSpace(state2, allowComments, checkIndent) { - var lineBreaks = 0, ch2 = state2.input.charCodeAt(state2.position); - while (ch2 !== 0) { - while (is_WHITE_SPACE(ch2)) { - if (ch2 === 9 && state2.firstTabInLine === -1) { - state2.firstTabInLine = state2.position; - } - ch2 = state2.input.charCodeAt(++state2.position); - } - if (allowComments && ch2 === 35) { - do { - ch2 = state2.input.charCodeAt(++state2.position); - } while (ch2 !== 10 && ch2 !== 13 && ch2 !== 0); - } - if (is_EOL(ch2)) { - readLineBreak(state2); - ch2 = state2.input.charCodeAt(state2.position); - lineBreaks++; - state2.lineIndent = 0; - while (ch2 === 32) { - state2.lineIndent++; - ch2 = state2.input.charCodeAt(++state2.position); - } - } else { - break; - } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) { - throwWarning(state2, "deficient indentation"); - } - return lineBreaks; -} -function testDocumentSeparator(state2) { - var _position = state2.position, ch2; - ch2 = state2.input.charCodeAt(_position); - if ((ch2 === 45 || ch2 === 46) && ch2 === state2.input.charCodeAt(_position + 1) && ch2 === state2.input.charCodeAt(_position + 2)) { - _position += 3; - ch2 = state2.input.charCodeAt(_position); - if (ch2 === 0 || is_WS_OR_EOL(ch2)) { - return true; - } - } - return false; -} -function writeFoldedLines(state2, count2) { - if (count2 === 1) { - state2.result += " "; - } else if (count2 > 1) { - state2.result += common.repeat("\n", count2 - 1); - } -} -function readPlainScalar(state2, nodeIndent, withinFlowCollection) { - var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (is_WS_OR_EOL(ch2) || is_FLOW_INDICATOR(ch2) || ch2 === 35 || ch2 === 38 || ch2 === 42 || ch2 === 33 || ch2 === 124 || ch2 === 62 || ch2 === 39 || ch2 === 34 || ch2 === 37 || ch2 === 64 || ch2 === 96) { - return false; - } - if (ch2 === 63 || ch2 === 45) { - following = state2.input.charCodeAt(state2.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - state2.kind = "scalar"; - state2.result = ""; - captureStart = captureEnd = state2.position; - hasPendingContent = false; - while (ch2 !== 0) { - if (ch2 === 58) { - following = state2.input.charCodeAt(state2.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - } else if (ch2 === 35) { - preceding = state2.input.charCodeAt(state2.position - 1); - if (is_WS_OR_EOL(preceding)) { - break; - } - } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch2)) { - break; - } else if (is_EOL(ch2)) { - _line = state2.line; - _lineStart = state2.lineStart; - _lineIndent = state2.lineIndent; - skipSeparationSpace(state2, false, -1); - if (state2.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch2 = state2.input.charCodeAt(state2.position); - continue; - } else { - state2.position = captureEnd; - state2.line = _line; - state2.lineStart = _lineStart; - state2.lineIndent = _lineIndent; - break; - } - } - if (hasPendingContent) { - captureSegment(state2, captureStart, captureEnd, false); - writeFoldedLines(state2, state2.line - _line); - captureStart = captureEnd = state2.position; - hasPendingContent = false; - } - if (!is_WHITE_SPACE(ch2)) { - captureEnd = state2.position + 1; - } - ch2 = state2.input.charCodeAt(++state2.position); - } - captureSegment(state2, captureStart, captureEnd, false); - if (state2.result) { - return true; - } - state2.kind = _kind; - state2.result = _result; - return false; -} -function readSingleQuotedScalar(state2, nodeIndent) { - var ch2, captureStart, captureEnd; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 !== 39) { - return false; - } - state2.kind = "scalar"; - state2.result = ""; - state2.position++; - captureStart = captureEnd = state2.position; - while ((ch2 = state2.input.charCodeAt(state2.position)) !== 0) { - if (ch2 === 39) { - captureSegment(state2, captureStart, state2.position, true); - ch2 = state2.input.charCodeAt(++state2.position); - if (ch2 === 39) { - captureStart = state2.position; - state2.position++; - captureEnd = state2.position; - } else { - return true; - } - } else if (is_EOL(ch2)) { - captureSegment(state2, captureStart, captureEnd, true); - writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); - captureStart = captureEnd = state2.position; - } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { - throwError(state2, "unexpected end of the document within a single quoted scalar"); - } else { - state2.position++; - captureEnd = state2.position; - } - } - throwError(state2, "unexpected end of the stream within a single quoted scalar"); -} -function readDoubleQuotedScalar(state2, nodeIndent) { - var captureStart, captureEnd, hexLength, hexResult, tmp, ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 !== 34) { - return false; - } - state2.kind = "scalar"; - state2.result = ""; - state2.position++; - captureStart = captureEnd = state2.position; - while ((ch2 = state2.input.charCodeAt(state2.position)) !== 0) { - if (ch2 === 34) { - captureSegment(state2, captureStart, state2.position, true); - state2.position++; - return true; - } else if (ch2 === 92) { - captureSegment(state2, captureStart, state2.position, true); - ch2 = state2.input.charCodeAt(++state2.position); - if (is_EOL(ch2)) { - skipSeparationSpace(state2, false, nodeIndent); - } else if (ch2 < 256 && simpleEscapeCheck[ch2]) { - state2.result += simpleEscapeMap[ch2]; - state2.position++; - } else if ((tmp = escapedHexLen(ch2)) > 0) { - hexLength = tmp; - hexResult = 0; - for (; hexLength > 0; hexLength--) { - ch2 = state2.input.charCodeAt(++state2.position); - if ((tmp = fromHexCode(ch2)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - throwError(state2, "expected hexadecimal character"); - } - } - state2.result += charFromCodepoint(hexResult); - state2.position++; - } else { - throwError(state2, "unknown escape sequence"); - } - captureStart = captureEnd = state2.position; - } else if (is_EOL(ch2)) { - captureSegment(state2, captureStart, captureEnd, true); - writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); - captureStart = captureEnd = state2.position; - } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { - throwError(state2, "unexpected end of the document within a double quoted scalar"); - } else { - state2.position++; - captureEnd = state2.position; - } - } - throwError(state2, "unexpected end of the stream within a double quoted scalar"); -} -function readFlowCollection(state2, nodeIndent) { - var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = Object.create(null), keyNode, keyTag, valueNode, ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 === 91) { - terminator = 93; - isMapping = false; - _result = []; - } else if (ch2 === 123) { - terminator = 125; - isMapping = true; - _result = {}; - } else { - return false; - } - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = _result; - } - ch2 = state2.input.charCodeAt(++state2.position); - while (ch2 !== 0) { - skipSeparationSpace(state2, true, nodeIndent); - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 === terminator) { - state2.position++; - state2.tag = _tag; - state2.anchor = _anchor; - state2.kind = isMapping ? "mapping" : "sequence"; - state2.result = _result; - return true; - } else if (!readNext) { - throwError(state2, "missed comma between flow collection entries"); - } else if (ch2 === 44) { - throwError(state2, "expected the node content, but found ','"); - } - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - if (ch2 === 63) { - following = state2.input.charCodeAt(state2.position + 1); - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state2.position++; - skipSeparationSpace(state2, true, nodeIndent); - } - } - _line = state2.line; - _lineStart = state2.lineStart; - _pos = state2.position; - composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state2.tag; - keyNode = state2.result; - skipSeparationSpace(state2, true, nodeIndent); - ch2 = state2.input.charCodeAt(state2.position); - if ((isExplicitPair || state2.line === _line) && ch2 === 58) { - isPair = true; - ch2 = state2.input.charCodeAt(++state2.position); - skipSeparationSpace(state2, true, nodeIndent); - composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state2.result; - } - if (isMapping) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); - } else if (isPair) { - _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); - } else { - _result.push(keyNode); - } - skipSeparationSpace(state2, true, nodeIndent); - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 === 44) { - readNext = true; - ch2 = state2.input.charCodeAt(++state2.position); - } else { - readNext = false; - } - } - throwError(state2, "unexpected end of the stream within a flow collection"); -} -function readBlockScalar(state2, nodeIndent) { - var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 === 124) { - folding = false; - } else if (ch2 === 62) { - folding = true; - } else { - return false; - } - state2.kind = "scalar"; - state2.result = ""; - while (ch2 !== 0) { - ch2 = state2.input.charCodeAt(++state2.position); - if (ch2 === 43 || ch2 === 45) { - if (CHOMPING_CLIP === chomping) { - chomping = ch2 === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state2, "repeat of a chomping mode identifier"); - } - } else if ((tmp = fromDecimalCode(ch2)) >= 0) { - if (tmp === 0) { - throwError(state2, "bad explicit indentation width of a block scalar; it cannot be less than one"); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state2, "repeat of an indentation width identifier"); - } - } else { - break; - } - } - if (is_WHITE_SPACE(ch2)) { - do { - ch2 = state2.input.charCodeAt(++state2.position); - } while (is_WHITE_SPACE(ch2)); - if (ch2 === 35) { - do { - ch2 = state2.input.charCodeAt(++state2.position); - } while (!is_EOL(ch2) && ch2 !== 0); - } - } - while (ch2 !== 0) { - readLineBreak(state2); - state2.lineIndent = 0; - ch2 = state2.input.charCodeAt(state2.position); - while ((!detectedIndent || state2.lineIndent < textIndent) && ch2 === 32) { - state2.lineIndent++; - ch2 = state2.input.charCodeAt(++state2.position); - } - if (!detectedIndent && state2.lineIndent > textIndent) { - textIndent = state2.lineIndent; - } - if (is_EOL(ch2)) { - emptyLines++; - continue; - } - if (state2.lineIndent < textIndent) { - if (chomping === CHOMPING_KEEP) { - state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { - state2.result += "\n"; - } - } - break; - } - if (folding) { - if (is_WHITE_SPACE(ch2)) { - atMoreIndented = true; - state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (atMoreIndented) { - atMoreIndented = false; - state2.result += common.repeat("\n", emptyLines + 1); - } else if (emptyLines === 0) { - if (didReadContent) { - state2.result += " "; - } - } else { - state2.result += common.repeat("\n", emptyLines); - } - } else { - state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state2.position; - while (!is_EOL(ch2) && ch2 !== 0) { - ch2 = state2.input.charCodeAt(++state2.position); - } - captureSegment(state2, captureStart, state2.position, false); - } - return true; -} -function readBlockSequence(state2, nodeIndent) { - var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch2; - if (state2.firstTabInLine !== -1) - return false; - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = _result; - } - ch2 = state2.input.charCodeAt(state2.position); - while (ch2 !== 0) { - if (state2.firstTabInLine !== -1) { - state2.position = state2.firstTabInLine; - throwError(state2, "tab characters must not be used in indentation"); - } - if (ch2 !== 45) { - break; - } - following = state2.input.charCodeAt(state2.position + 1); - if (!is_WS_OR_EOL(following)) { - break; - } - detected = true; - state2.position++; - if (skipSeparationSpace(state2, true, -1)) { - if (state2.lineIndent <= nodeIndent) { - _result.push(null); - ch2 = state2.input.charCodeAt(state2.position); - continue; - } - } - _line = state2.line; - composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state2.result); - skipSeparationSpace(state2, true, -1); - ch2 = state2.input.charCodeAt(state2.position); - if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch2 !== 0) { - throwError(state2, "bad indentation of a sequence entry"); - } else if (state2.lineIndent < nodeIndent) { - break; - } - } - if (detected) { - state2.tag = _tag; - state2.anchor = _anchor; - state2.kind = "sequence"; - state2.result = _result; - return true; - } - return false; -} -function readBlockMapping(state2, nodeIndent, flowIndent) { - var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch2; - if (state2.firstTabInLine !== -1) - return false; - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = _result; - } - ch2 = state2.input.charCodeAt(state2.position); - while (ch2 !== 0) { - if (!atExplicitKey && state2.firstTabInLine !== -1) { - state2.position = state2.firstTabInLine; - throwError(state2, "tab characters must not be used in indentation"); - } - following = state2.input.charCodeAt(state2.position + 1); - _line = state2.line; - if ((ch2 === 63 || ch2 === 58) && is_WS_OR_EOL(following)) { - if (ch2 === 63) { - if (atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - atExplicitKey = false; - allowCompact = true; - } else { - throwError(state2, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); - } - state2.position += 1; - ch2 = following; - } else { - _keyLine = state2.line; - _keyLineStart = state2.lineStart; - _keyPos = state2.position; - if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - break; - } - if (state2.line === _line) { - ch2 = state2.input.charCodeAt(state2.position); - while (is_WHITE_SPACE(ch2)) { - ch2 = state2.input.charCodeAt(++state2.position); - } - if (ch2 === 58) { - ch2 = state2.input.charCodeAt(++state2.position); - if (!is_WS_OR_EOL(ch2)) { - throwError(state2, "a whitespace character is expected after the key-value separator within a block mapping"); - } - if (atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state2.tag; - keyNode = state2.result; - } else if (detected) { - throwError(state2, "can not read an implicit mapping pair; a colon is missed"); - } else { - state2.tag = _tag; - state2.anchor = _anchor; - return true; - } - } else if (detected) { - throwError(state2, "can not read a block mapping entry; a multiline key may not be an implicit key"); - } else { - state2.tag = _tag; - state2.anchor = _anchor; - return true; - } - } - if (state2.line === _line || state2.lineIndent > nodeIndent) { - if (atExplicitKey) { - _keyLine = state2.line; - _keyLineStart = state2.lineStart; - _keyPos = state2.position; - } - if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state2.result; - } else { - valueNode = state2.result; - } - } - if (!atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - skipSeparationSpace(state2, true, -1); - ch2 = state2.input.charCodeAt(state2.position); - } - if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch2 !== 0) { - throwError(state2, "bad indentation of a mapping entry"); - } else if (state2.lineIndent < nodeIndent) { - break; - } - } - if (atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - } - if (detected) { - state2.tag = _tag; - state2.anchor = _anchor; - state2.kind = "mapping"; - state2.result = _result; - } - return detected; -} -function readTagProperty(state2) { - var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 !== 33) - return false; - if (state2.tag !== null) { - throwError(state2, "duplication of a tag property"); - } - ch2 = state2.input.charCodeAt(++state2.position); - if (ch2 === 60) { - isVerbatim = true; - ch2 = state2.input.charCodeAt(++state2.position); - } else if (ch2 === 33) { - isNamed = true; - tagHandle = "!!"; - ch2 = state2.input.charCodeAt(++state2.position); - } else { - tagHandle = "!"; - } - _position = state2.position; - if (isVerbatim) { - do { - ch2 = state2.input.charCodeAt(++state2.position); - } while (ch2 !== 0 && ch2 !== 62); - if (state2.position < state2.length) { - tagName = state2.input.slice(_position, state2.position); - ch2 = state2.input.charCodeAt(++state2.position); - } else { - throwError(state2, "unexpected end of the stream within a verbatim tag"); - } - } else { - while (ch2 !== 0 && !is_WS_OR_EOL(ch2)) { - if (ch2 === 33) { - if (!isNamed) { - tagHandle = state2.input.slice(_position - 1, state2.position + 1); - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state2, "named tag handle cannot contain such characters"); - } - isNamed = true; - _position = state2.position + 1; - } else { - throwError(state2, "tag suffix cannot contain exclamation marks"); - } - } - ch2 = state2.input.charCodeAt(++state2.position); - } - tagName = state2.input.slice(_position, state2.position); - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state2, "tag suffix cannot contain flow indicator characters"); - } - } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state2, "tag name cannot contain such characters: " + tagName); - } - try { - tagName = decodeURIComponent(tagName); - } catch (err) { - throwError(state2, "tag name is malformed: " + tagName); - } - if (isVerbatim) { - state2.tag = tagName; - } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) { - state2.tag = state2.tagMap[tagHandle] + tagName; - } else if (tagHandle === "!") { - state2.tag = "!" + tagName; - } else if (tagHandle === "!!") { - state2.tag = "tag:yaml.org,2002:" + tagName; - } else { - throwError(state2, 'undeclared tag handle "' + tagHandle + '"'); - } - return true; -} -function readAnchorProperty(state2) { - var _position, ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 !== 38) - return false; - if (state2.anchor !== null) { - throwError(state2, "duplication of an anchor property"); - } - ch2 = state2.input.charCodeAt(++state2.position); - _position = state2.position; - while (ch2 !== 0 && !is_WS_OR_EOL(ch2) && !is_FLOW_INDICATOR(ch2)) { - ch2 = state2.input.charCodeAt(++state2.position); - } - if (state2.position === _position) { - throwError(state2, "name of an anchor node must contain at least one character"); - } - state2.anchor = state2.input.slice(_position, state2.position); - return true; -} -function readAlias(state2) { - var _position, alias, ch2; - ch2 = state2.input.charCodeAt(state2.position); - if (ch2 !== 42) - return false; - ch2 = state2.input.charCodeAt(++state2.position); - _position = state2.position; - while (ch2 !== 0 && !is_WS_OR_EOL(ch2) && !is_FLOW_INDICATOR(ch2)) { - ch2 = state2.input.charCodeAt(++state2.position); - } - if (state2.position === _position) { - throwError(state2, "name of an alias node must contain at least one character"); - } - alias = state2.input.slice(_position, state2.position); - if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) { - throwError(state2, 'unidentified alias "' + alias + '"'); - } - state2.result = state2.anchorMap[alias]; - skipSeparationSpace(state2, true, -1); - return true; -} -function composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; - if (state2.listener !== null) { - state2.listener("open", state2); - } - state2.tag = null; - state2.anchor = null; - state2.kind = null; - state2.result = null; - allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; - if (allowToSeek) { - if (skipSeparationSpace(state2, true, -1)) { - atNewLine = true; - if (state2.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state2.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state2.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - if (indentStatus === 1) { - while (readTagProperty(state2) || readAnchorProperty(state2)) { - if (skipSeparationSpace(state2, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - if (state2.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state2.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state2.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - blockIndent = state2.position - state2.lineStart; - if (indentStatus === 1) { - if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) { - hasContent = true; - } else { - if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) { - hasContent = true; - } else if (readAlias(state2)) { - hasContent = true; - if (state2.tag !== null || state2.anchor !== null) { - throwError(state2, "alias node should not have any properties"); - } - } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - if (state2.tag === null) { - state2.tag = "?"; - } - } - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - } - } else if (indentStatus === 0) { - hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent); - } - } - if (state2.tag === null) { - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - } else if (state2.tag === "?") { - if (state2.result !== null && state2.kind !== "scalar") { - throwError(state2, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state2.kind + '"'); - } - for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type2 = state2.implicitTypes[typeIndex]; - if (type2.resolve(state2.result)) { - state2.result = type2.construct(state2.result); - state2.tag = type2.tag; - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - break; - } - } - } else if (state2.tag !== "!") { - if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || "fallback"], state2.tag)) { - type2 = state2.typeMap[state2.kind || "fallback"][state2.tag]; - } else { - type2 = null; - typeList = state2.typeMap.multi[state2.kind || "fallback"]; - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { - if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { - type2 = typeList[typeIndex]; - break; - } - } - } - if (!type2) { - throwError(state2, "unknown tag !<" + state2.tag + ">"); - } - if (state2.result !== null && type2.kind !== state2.kind) { - throwError(state2, "unacceptable node kind for !<" + state2.tag + '> tag; it should be "' + type2.kind + '", not "' + state2.kind + '"'); - } - if (!type2.resolve(state2.result, state2.tag)) { - throwError(state2, "cannot resolve a node with !<" + state2.tag + "> explicit tag"); - } else { - state2.result = type2.construct(state2.result, state2.tag); - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - } - } - if (state2.listener !== null) { - state2.listener("close", state2); - } - return state2.tag !== null || state2.anchor !== null || hasContent; -} -function readDocument(state2) { - var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch2; - state2.version = null; - state2.checkLineBreaks = state2.legacy; - state2.tagMap = Object.create(null); - state2.anchorMap = Object.create(null); - while ((ch2 = state2.input.charCodeAt(state2.position)) !== 0) { - skipSeparationSpace(state2, true, -1); - ch2 = state2.input.charCodeAt(state2.position); - if (state2.lineIndent > 0 || ch2 !== 37) { - break; - } - hasDirectives = true; - ch2 = state2.input.charCodeAt(++state2.position); - _position = state2.position; - while (ch2 !== 0 && !is_WS_OR_EOL(ch2)) { - ch2 = state2.input.charCodeAt(++state2.position); - } - directiveName = state2.input.slice(_position, state2.position); - directiveArgs = []; - if (directiveName.length < 1) { - throwError(state2, "directive name must not be less than one character in length"); - } - while (ch2 !== 0) { - while (is_WHITE_SPACE(ch2)) { - ch2 = state2.input.charCodeAt(++state2.position); - } - if (ch2 === 35) { - do { - ch2 = state2.input.charCodeAt(++state2.position); - } while (ch2 !== 0 && !is_EOL(ch2)); - break; - } - if (is_EOL(ch2)) - break; - _position = state2.position; - while (ch2 !== 0 && !is_WS_OR_EOL(ch2)) { - ch2 = state2.input.charCodeAt(++state2.position); - } - directiveArgs.push(state2.input.slice(_position, state2.position)); - } - if (ch2 !== 0) - readLineBreak(state2); - if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state2, directiveName, directiveArgs); - } else { - throwWarning(state2, 'unknown document directive "' + directiveName + '"'); - } - } - skipSeparationSpace(state2, true, -1); - if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) { - state2.position += 3; - skipSeparationSpace(state2, true, -1); - } else if (hasDirectives) { - throwError(state2, "directives end mark is expected"); - } - composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state2, true, -1); - if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) { - throwWarning(state2, "non-ASCII line breaks are interpreted as content"); - } - state2.documents.push(state2.result); - if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { - if (state2.input.charCodeAt(state2.position) === 46) { - state2.position += 3; - skipSeparationSpace(state2, true, -1); - } - return; - } - if (state2.position < state2.length - 1) { - throwError(state2, "end of the stream or a document separator is expected"); - } else { - return; - } -} -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - if (input.length !== 0) { - if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { - input += "\n"; - } - if (input.charCodeAt(0) === 65279) { - input = input.slice(1); - } - } - var state2 = new State$1(input, options); - var nullpos = input.indexOf("\0"); - if (nullpos !== -1) { - state2.position = nullpos; - throwError(state2, "null byte is not allowed in input"); - } - state2.input += "\0"; - while (state2.input.charCodeAt(state2.position) === 32) { - state2.lineIndent += 1; - state2.position += 1; - } - while (state2.position < state2.length - 1) { - readDocument(state2); - } - return state2.documents; -} -function loadAll$1(input, iterator, options) { - if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") { - options = iterator; - iterator = null; - } - var documents = loadDocuments(input, options); - if (typeof iterator !== "function") { - return documents; - } - for (var index2 = 0, length5 = documents.length; index2 < length5; index2 += 1) { - iterator(documents[index2]); - } -} -function load$1(input, options) { - var documents = loadDocuments(input, options); - if (documents.length === 0) { - return void 0; - } else if (documents.length === 1) { - return documents[0]; - } - throw new exception("expected a single document in the stream, but found more"); -} -var loadAll_1 = loadAll$1; -var load_1 = load$1; -var loader = { - loadAll: loadAll_1, - load: load_1 -}; -var _toString = Object.prototype.toString; -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var CHAR_BOM = 65279; -var CHAR_TAB = 9; -var CHAR_LINE_FEED = 10; -var CHAR_CARRIAGE_RETURN = 13; -var CHAR_SPACE = 32; -var CHAR_EXCLAMATION = 33; -var CHAR_DOUBLE_QUOTE = 34; -var CHAR_SHARP = 35; -var CHAR_PERCENT = 37; -var CHAR_AMPERSAND = 38; -var CHAR_SINGLE_QUOTE = 39; -var CHAR_ASTERISK = 42; -var CHAR_COMMA = 44; -var CHAR_MINUS = 45; -var CHAR_COLON = 58; -var CHAR_EQUALS = 61; -var CHAR_GREATER_THAN = 62; -var CHAR_QUESTION = 63; -var CHAR_COMMERCIAL_AT = 64; -var CHAR_LEFT_SQUARE_BRACKET = 91; -var CHAR_RIGHT_SQUARE_BRACKET = 93; -var CHAR_GRAVE_ACCENT = 96; -var CHAR_LEFT_CURLY_BRACKET = 123; -var CHAR_VERTICAL_LINE = 124; -var CHAR_RIGHT_CURLY_BRACKET = 125; -var ESCAPE_SEQUENCES = {}; -ESCAPE_SEQUENCES[0] = "\\0"; -ESCAPE_SEQUENCES[7] = "\\a"; -ESCAPE_SEQUENCES[8] = "\\b"; -ESCAPE_SEQUENCES[9] = "\\t"; -ESCAPE_SEQUENCES[10] = "\\n"; -ESCAPE_SEQUENCES[11] = "\\v"; -ESCAPE_SEQUENCES[12] = "\\f"; -ESCAPE_SEQUENCES[13] = "\\r"; -ESCAPE_SEQUENCES[27] = "\\e"; -ESCAPE_SEQUENCES[34] = '\\"'; -ESCAPE_SEQUENCES[92] = "\\\\"; -ESCAPE_SEQUENCES[133] = "\\N"; -ESCAPE_SEQUENCES[160] = "\\_"; -ESCAPE_SEQUENCES[8232] = "\\L"; -ESCAPE_SEQUENCES[8233] = "\\P"; -var DEPRECATED_BOOLEANS_SYNTAX = [ - "y", - "Y", - "yes", - "Yes", - "YES", - "on", - "On", - "ON", - "n", - "N", - "no", - "No", - "NO", - "off", - "Off", - "OFF" -]; -var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; -function compileStyleMap(schema3, map6) { - var result, keys2, index2, length5, tag, style, type2; - if (map6 === null) - return {}; - result = {}; - keys2 = Object.keys(map6); - for (index2 = 0, length5 = keys2.length; index2 < length5; index2 += 1) { - tag = keys2[index2]; - style = String(map6[tag]); - if (tag.slice(0, 2) === "!!") { - tag = "tag:yaml.org,2002:" + tag.slice(2); - } - type2 = schema3.compiledTypeMap["fallback"][tag]; - if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) { - style = type2.styleAliases[style]; - } - result[tag] = style; - } - return result; -} -function encodeHex(character) { - var string, handle, length5; - string = character.toString(16).toUpperCase(); - if (character <= 255) { - handle = "x"; - length5 = 2; - } else if (character <= 65535) { - handle = "u"; - length5 = 4; - } else if (character <= 4294967295) { - handle = "U"; - length5 = 8; - } else { - throw new exception("code point within a string may not be greater than 0xFFFFFFFF"); - } - return "\\" + handle + common.repeat("0", length5 - string.length) + string; -} -var QUOTING_TYPE_SINGLE = 1; -var QUOTING_TYPE_DOUBLE = 2; -function State(options) { - this.schema = options["schema"] || _default; - this.indent = Math.max(1, options["indent"] || 2); - this.noArrayIndent = options["noArrayIndent"] || false; - this.skipInvalid = options["skipInvalid"] || false; - this.flowLevel = common.isNothing(options["flowLevel"]) ? -1 : options["flowLevel"]; - this.styleMap = compileStyleMap(this.schema, options["styles"] || null); - this.sortKeys = options["sortKeys"] || false; - this.lineWidth = options["lineWidth"] || 80; - this.noRefs = options["noRefs"] || false; - this.noCompatMode = options["noCompatMode"] || false; - this.condenseFlow = options["condenseFlow"] || false; - this.quotingType = options["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; - this.forceQuotes = options["forceQuotes"] || false; - this.replacer = typeof options["replacer"] === "function" ? options["replacer"] : null; - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - this.tag = null; - this.result = ""; - this.duplicates = []; - this.usedDuplicates = null; -} -function indentString(string, spaces) { - var ind = common.repeat(" ", spaces), position2 = 0, next = -1, result = "", line2, length5 = string.length; - while (position2 < length5) { - next = string.indexOf("\n", position2); - if (next === -1) { - line2 = string.slice(position2); - position2 = length5; - } else { - line2 = string.slice(position2, next + 1); - position2 = next + 1; - } - if (line2.length && line2 !== "\n") - result += ind; - result += line2; - } - return result; -} -function generateNextLine(state2, level) { - return "\n" + common.repeat(" ", state2.indent * level); -} -function testImplicitResolving(state2, str8) { - var index2, length5, type2; - for (index2 = 0, length5 = state2.implicitTypes.length; index2 < length5; index2 += 1) { - type2 = state2.implicitTypes[index2]; - if (type2.resolve(str8)) { - return true; - } - } - return false; -} -function isWhitespace(c5) { - return c5 === CHAR_SPACE || c5 === CHAR_TAB; -} -function isPrintable(c5) { - return 32 <= c5 && c5 <= 126 || 161 <= c5 && c5 <= 55295 && c5 !== 8232 && c5 !== 8233 || 57344 <= c5 && c5 <= 65533 && c5 !== CHAR_BOM || 65536 <= c5 && c5 <= 1114111; -} -function isNsCharOrWhitespace(c5) { - return isPrintable(c5) && c5 !== CHAR_BOM && c5 !== CHAR_CARRIAGE_RETURN && c5 !== CHAR_LINE_FEED; -} -function isPlainSafe(c5, prev, inblock) { - var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c5); - var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c5); - return (inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace && c5 !== CHAR_COMMA && c5 !== CHAR_LEFT_SQUARE_BRACKET && c5 !== CHAR_RIGHT_SQUARE_BRACKET && c5 !== CHAR_LEFT_CURLY_BRACKET && c5 !== CHAR_RIGHT_CURLY_BRACKET) && c5 !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c5 === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar; -} -function isPlainSafeFirst(c5) { - return isPrintable(c5) && c5 !== CHAR_BOM && !isWhitespace(c5) && c5 !== CHAR_MINUS && c5 !== CHAR_QUESTION && c5 !== CHAR_COLON && c5 !== CHAR_COMMA && c5 !== CHAR_LEFT_SQUARE_BRACKET && c5 !== CHAR_RIGHT_SQUARE_BRACKET && c5 !== CHAR_LEFT_CURLY_BRACKET && c5 !== CHAR_RIGHT_CURLY_BRACKET && c5 !== CHAR_SHARP && c5 !== CHAR_AMPERSAND && c5 !== CHAR_ASTERISK && c5 !== CHAR_EXCLAMATION && c5 !== CHAR_VERTICAL_LINE && c5 !== CHAR_EQUALS && c5 !== CHAR_GREATER_THAN && c5 !== CHAR_SINGLE_QUOTE && c5 !== CHAR_DOUBLE_QUOTE && c5 !== CHAR_PERCENT && c5 !== CHAR_COMMERCIAL_AT && c5 !== CHAR_GRAVE_ACCENT; -} -function isPlainSafeLast(c5) { - return !isWhitespace(c5) && c5 !== CHAR_COLON; -} -function codePointAt(string, pos) { - var first = string.charCodeAt(pos), second; - if (first >= 55296 && first <= 56319 && pos + 1 < string.length) { - second = string.charCodeAt(pos + 1); - if (second >= 56320 && second <= 57343) { - return (first - 55296) * 1024 + second - 56320 + 65536; - } - } - return first; -} -function needIndentIndicator(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} -var STYLE_PLAIN = 1; -var STYLE_SINGLE = 2; -var STYLE_LITERAL = 3; -var STYLE_FOLDED = 4; -var STYLE_DOUBLE = 5; -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) { - var i4; - var char = 0; - var prevChar = null; - var hasLineBreak = false; - var hasFoldableLine = false; - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; - var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1)); - if (singleLineOnly || forceQuotes) { - for (i4 = 0; i4 < string.length; char >= 65536 ? i4 += 2 : i4++) { - char = codePointAt(string, i4); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - } else { - for (i4 = 0; i4 < string.length; char >= 65536 ? i4 += 2 : i4++) { - char = codePointAt(string, i4); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || i4 - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "; - previousLineBreak = i4; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i4 - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "); - } - if (!hasLineBreak && !hasFoldableLine) { - if (plain && !forceQuotes && !testAmbiguousType(string)) { - return STYLE_PLAIN; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; - } - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; - } - if (!forceQuotes) { - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; -} -function writeScalar(state2, string, level, iskey, inblock) { - state2.dump = function() { - if (string.length === 0) { - return state2.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; - } - if (!state2.noCompatMode) { - if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { - return state2.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string + '"' : "'" + string + "'"; - } - } - var indent2 = state2.indent * Math.max(1, level); - var lineWidth = state2.lineWidth === -1 ? -1 : Math.max(Math.min(state2.lineWidth, 40), state2.lineWidth - indent2); - var singleLineOnly = iskey || state2.flowLevel > -1 && level >= state2.flowLevel; - function testAmbiguity(string2) { - return testImplicitResolving(state2, string2); - } - switch (chooseScalarStyle(string, singleLineOnly, state2.indent, lineWidth, testAmbiguity, state2.quotingType, state2.forceQuotes && !iskey, inblock)) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return "|" + blockHeader(string, state2.indent) + dropEndingNewline(indentString(string, indent2)); - case STYLE_FOLDED: - return ">" + blockHeader(string, state2.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent2)); - case STYLE_DOUBLE: - return '"' + escapeString(string) + '"'; - default: - throw new exception("impossible error: invalid scalar style"); - } - }(); -} -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ""; - var clip = string[string.length - 1] === "\n"; - var keep = clip && (string[string.length - 2] === "\n" || string === "\n"); - var chomp = keep ? "+" : clip ? "" : "-"; - return indentIndicator + chomp + "\n"; -} -function dropEndingNewline(string) { - return string[string.length - 1] === "\n" ? string.slice(0, -1) : string; -} -function foldString(string, width2) { - var lineRe = /(\n+)([^\n]*)/g; - var result = function() { - var nextLF = string.indexOf("\n"); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width2); - }(); - var prevMoreIndented = string[0] === "\n" || string[0] === " "; - var moreIndented; - var match; - while (match = lineRe.exec(string)) { - var prefix2 = match[1], line2 = match[2]; - moreIndented = line2[0] === " "; - result += prefix2 + (!prevMoreIndented && !moreIndented && line2 !== "" ? "\n" : "") + foldLine(line2, width2); - prevMoreIndented = moreIndented; - } - return result; -} -function foldLine(line2, width2) { - if (line2 === "" || line2[0] === " ") - return line2; - var breakRe = / [^ ]/g; - var match; - var start = 0, end2, curr = 0, next = 0; - var result = ""; - while (match = breakRe.exec(line2)) { - next = match.index; - if (next - start > width2) { - end2 = curr > start ? curr : next; - result += "\n" + line2.slice(start, end2); - start = end2 + 1; - } - curr = next; - } - result += "\n"; - if (line2.length - start > width2 && curr > start) { - result += line2.slice(start, curr) + "\n" + line2.slice(curr + 1); - } else { - result += line2.slice(start); - } - return result.slice(1); -} -function escapeString(string) { - var result = ""; - var char = 0; - var escapeSeq; - for (var i4 = 0; i4 < string.length; char >= 65536 ? i4 += 2 : i4++) { - char = codePointAt(string, i4); - escapeSeq = ESCAPE_SEQUENCES[char]; - if (!escapeSeq && isPrintable(char)) { - result += string[i4]; - if (char >= 65536) - result += string[i4 + 1]; - } else { - result += escapeSeq || encodeHex(char); - } - } - return result; -} -function writeFlowSequence(state2, level, object) { - var _result = "", _tag = state2.tag, index2, length5, value2; - for (index2 = 0, length5 = object.length; index2 < length5; index2 += 1) { - value2 = object[index2]; - if (state2.replacer) { - value2 = state2.replacer.call(object, String(index2), value2); - } - if (writeNode(state2, level, value2, false, false) || typeof value2 === "undefined" && writeNode(state2, level, null, false, false)) { - if (_result !== "") - _result += "," + (!state2.condenseFlow ? " " : ""); - _result += state2.dump; - } - } - state2.tag = _tag; - state2.dump = "[" + _result + "]"; -} -function writeBlockSequence(state2, level, object, compact) { - var _result = "", _tag = state2.tag, index2, length5, value2; - for (index2 = 0, length5 = object.length; index2 < length5; index2 += 1) { - value2 = object[index2]; - if (state2.replacer) { - value2 = state2.replacer.call(object, String(index2), value2); - } - if (writeNode(state2, level + 1, value2, true, true, false, true) || typeof value2 === "undefined" && writeNode(state2, level + 1, null, true, true, false, true)) { - if (!compact || _result !== "") { - _result += generateNextLine(state2, level); - } - if (state2.dump && CHAR_LINE_FEED === state2.dump.charCodeAt(0)) { - _result += "-"; - } else { - _result += "- "; - } - _result += state2.dump; - } - } - state2.tag = _tag; - state2.dump = _result || "[]"; -} -function writeFlowMapping(state2, level, object) { - var _result = "", _tag = state2.tag, objectKeyList = Object.keys(object), index2, length5, objectKey, objectValue, pairBuffer; - for (index2 = 0, length5 = objectKeyList.length; index2 < length5; index2 += 1) { - pairBuffer = ""; - if (_result !== "") - pairBuffer += ", "; - if (state2.condenseFlow) - pairBuffer += '"'; - objectKey = objectKeyList[index2]; - objectValue = object[objectKey]; - if (state2.replacer) { - objectValue = state2.replacer.call(object, objectKey, objectValue); - } - if (!writeNode(state2, level, objectKey, false, false)) { - continue; - } - if (state2.dump.length > 1024) - pairBuffer += "? "; - pairBuffer += state2.dump + (state2.condenseFlow ? '"' : "") + ":" + (state2.condenseFlow ? "" : " "); - if (!writeNode(state2, level, objectValue, false, false)) { - continue; - } - pairBuffer += state2.dump; - _result += pairBuffer; - } - state2.tag = _tag; - state2.dump = "{" + _result + "}"; -} -function writeBlockMapping(state2, level, object, compact) { - var _result = "", _tag = state2.tag, objectKeyList = Object.keys(object), index2, length5, objectKey, objectValue, explicitPair, pairBuffer; - if (state2.sortKeys === true) { - objectKeyList.sort(); - } else if (typeof state2.sortKeys === "function") { - objectKeyList.sort(state2.sortKeys); - } else if (state2.sortKeys) { - throw new exception("sortKeys must be a boolean or a function"); - } - for (index2 = 0, length5 = objectKeyList.length; index2 < length5; index2 += 1) { - pairBuffer = ""; - if (!compact || _result !== "") { - pairBuffer += generateNextLine(state2, level); - } - objectKey = objectKeyList[index2]; - objectValue = object[objectKey]; - if (state2.replacer) { - objectValue = state2.replacer.call(object, objectKey, objectValue); - } - if (!writeNode(state2, level + 1, objectKey, true, true, true)) { - continue; - } - explicitPair = state2.tag !== null && state2.tag !== "?" || state2.dump && state2.dump.length > 1024; - if (explicitPair) { - if (state2.dump && CHAR_LINE_FEED === state2.dump.charCodeAt(0)) { - pairBuffer += "?"; - } else { - pairBuffer += "? "; - } - } - pairBuffer += state2.dump; - if (explicitPair) { - pairBuffer += generateNextLine(state2, level); - } - if (!writeNode(state2, level + 1, objectValue, true, explicitPair)) { - continue; - } - if (state2.dump && CHAR_LINE_FEED === state2.dump.charCodeAt(0)) { - pairBuffer += ":"; - } else { - pairBuffer += ": "; - } - pairBuffer += state2.dump; - _result += pairBuffer; - } - state2.tag = _tag; - state2.dump = _result || "{}"; -} -function detectType(state2, object, explicit) { - var _result, typeList, index2, length5, type2, style; - typeList = explicit ? state2.explicitTypes : state2.implicitTypes; - for (index2 = 0, length5 = typeList.length; index2 < length5; index2 += 1) { - type2 = typeList[index2]; - if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === "object" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) { - if (explicit) { - if (type2.multi && type2.representName) { - state2.tag = type2.representName(object); - } else { - state2.tag = type2.tag; - } - } else { - state2.tag = "?"; - } - if (type2.represent) { - style = state2.styleMap[type2.tag] || type2.defaultStyle; - if (_toString.call(type2.represent) === "[object Function]") { - _result = type2.represent(object, style); - } else if (_hasOwnProperty.call(type2.represent, style)) { - _result = type2.represent[style](object, style); - } else { - throw new exception("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style'); - } - state2.dump = _result; - } - return true; - } - } - return false; -} -function writeNode(state2, level, object, block, compact, iskey, isblockseq) { - state2.tag = null; - state2.dump = object; - if (!detectType(state2, object, false)) { - detectType(state2, object, true); - } - var type2 = _toString.call(state2.dump); - var inblock = block; - var tagStr; - if (block) { - block = state2.flowLevel < 0 || state2.flowLevel > level; - } - var objectOrArray = type2 === "[object Object]" || type2 === "[object Array]", duplicateIndex, duplicate; - if (objectOrArray) { - duplicateIndex = state2.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - if (state2.tag !== null && state2.tag !== "?" || duplicate || state2.indent !== 2 && level > 0) { - compact = false; - } - if (duplicate && state2.usedDuplicates[duplicateIndex]) { - state2.dump = "*ref_" + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state2.usedDuplicates[duplicateIndex]) { - state2.usedDuplicates[duplicateIndex] = true; - } - if (type2 === "[object Object]") { - if (block && Object.keys(state2.dump).length !== 0) { - writeBlockMapping(state2, level, state2.dump, compact); - if (duplicate) { - state2.dump = "&ref_" + duplicateIndex + state2.dump; - } - } else { - writeFlowMapping(state2, level, state2.dump); - if (duplicate) { - state2.dump = "&ref_" + duplicateIndex + " " + state2.dump; - } - } - } else if (type2 === "[object Array]") { - if (block && state2.dump.length !== 0) { - if (state2.noArrayIndent && !isblockseq && level > 0) { - writeBlockSequence(state2, level - 1, state2.dump, compact); - } else { - writeBlockSequence(state2, level, state2.dump, compact); - } - if (duplicate) { - state2.dump = "&ref_" + duplicateIndex + state2.dump; - } - } else { - writeFlowSequence(state2, level, state2.dump); - if (duplicate) { - state2.dump = "&ref_" + duplicateIndex + " " + state2.dump; - } - } - } else if (type2 === "[object String]") { - if (state2.tag !== "?") { - writeScalar(state2, state2.dump, level, iskey, inblock); - } - } else if (type2 === "[object Undefined]") { - return false; - } else { - if (state2.skipInvalid) - return false; - throw new exception("unacceptable kind of an object to dump " + type2); - } - if (state2.tag !== null && state2.tag !== "?") { - tagStr = encodeURI(state2.tag[0] === "!" ? state2.tag.slice(1) : state2.tag).replace(/!/g, "%21"); - if (state2.tag[0] === "!") { - tagStr = "!" + tagStr; - } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") { - tagStr = "!!" + tagStr.slice(18); - } else { - tagStr = "!<" + tagStr + ">"; - } - state2.dump = tagStr + " " + state2.dump; - } - } - return true; -} -function getDuplicateReferences(object, state2) { - var objects = [], duplicatesIndexes = [], index2, length5; - inspectNode(object, objects, duplicatesIndexes); - for (index2 = 0, length5 = duplicatesIndexes.length; index2 < length5; index2 += 1) { - state2.duplicates.push(objects[duplicatesIndexes[index2]]); - } - state2.usedDuplicates = new Array(length5); -} -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, index2, length5; - if (object !== null && typeof object === "object") { - index2 = objects.indexOf(object); - if (index2 !== -1) { - if (duplicatesIndexes.indexOf(index2) === -1) { - duplicatesIndexes.push(index2); - } - } else { - objects.push(object); - if (Array.isArray(object)) { - for (index2 = 0, length5 = object.length; index2 < length5; index2 += 1) { - inspectNode(object[index2], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - for (index2 = 0, length5 = objectKeyList.length; index2 < length5; index2 += 1) { - inspectNode(object[objectKeyList[index2]], objects, duplicatesIndexes); - } - } - } - } -} -function dump$1(input, options) { - options = options || {}; - var state2 = new State(options); - if (!state2.noRefs) - getDuplicateReferences(input, state2); - var value2 = input; - if (state2.replacer) { - value2 = state2.replacer.call({ "": value2 }, "", value2); - } - if (writeNode(state2, 0, value2, true, true)) - return state2.dump + "\n"; - return ""; -} -var dump_1 = dump$1; -var dumper = { - dump: dump_1 -}; -function renamed(from, to) { - return function() { - throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default."); - }; -} -var Type = type; -var Schema = schema; -var FAILSAFE_SCHEMA = failsafe; -var JSON_SCHEMA = json; -var CORE_SCHEMA = core; -var DEFAULT_SCHEMA = _default; -var load = loader.load; -var loadAll = loader.loadAll; -var dump = dumper.dump; -var YAMLException = exception; -var types = { - binary, - float, - map, - null: _null, - pairs, - set, - timestamp, - bool, - int, - merge, - omap, - seq, - str -}; -var safeLoad = renamed("safeLoad", "load"); -var safeLoadAll = renamed("safeLoadAll", "loadAll"); -var safeDump = renamed("safeDump", "dump"); -var jsYaml = { - Type, - Schema, - FAILSAFE_SCHEMA, - JSON_SCHEMA, - CORE_SCHEMA, - DEFAULT_SCHEMA, - load, - loadAll, - dump, - YAMLException, - types, - safeLoad, - safeLoadAll, - safeDump -}; -var js_yaml_default = jsYaml; - -// node_modules/react/index.mjs -init_compat_module(); -init_compat_module(); - -// node_modules/react-dom/index.mjs -init_compat_module(); -init_compat_module(); - -// src/main.tsx -var import_obsidian5 = __toModule(require("obsidian")); - -// node_modules/@antv/g2/esm/index.js -var esm_exports3 = {}; -__export(esm_exports3, { - Action: () => base_default12, - BRUSH_FILTER_EVENTS: () => EVENTS3, - Chart: () => chart_default, - ComponentController: () => Controller, - Coordinate: () => base_default7, - DIRECTION: () => DIRECTION, - ELEMENT_RANGE_HIGHLIGHT_EVENTS: () => EVENTS2, - Element: () => element_default2, - Event: () => event_default, - Facet: () => Facet, - Geometry: () => base_default13, - GeometryLabel: () => base_default14, - Interaction: () => interaction_default, - InteractionAction: () => base_default12, - LAYER: () => LAYER, - Scale: () => base_default4, - TooltipController: () => tooltip_default, - Util: () => Util, - VERSION: () => VERSION, - VIEW_LIFE_CIRCLE: () => VIEW_LIFE_CIRCLE, - View: () => view_default, - getActionClass: () => getActionClass, - getAnimation: () => getAnimation, - getEngine: () => getEngine, - getFacet: () => getFacet, - getGeometryLabel: () => getGeometryLabel, - getGeometryLabelLayout: () => getGeometryLabelLayout, - getInteraction: () => getInteraction, - getShapeFactory: () => getShapeFactory, - getTheme: () => getTheme, - registerAction: () => registerAction, - registerAnimation: () => registerAnimation, - registerComponentController: () => registerComponentController, - registerEngine: () => registerEngine, - registerFacet: () => registerFacet, - registerGeometry: () => registerGeometry, - registerGeometryLabel: () => registerGeometryLabel, - registerGeometryLabelLayout: () => registerGeometryLabelLayout, - registerInteraction: () => registerInteraction, - registerShape: () => registerShape, - registerShapeFactory: () => registerShapeFactory, - registerTheme: () => registerTheme -}); - -// node_modules/tslib/modules/index.js -var import_tslib = __toModule(require_tslib()); -var { - __extends, - __assign, - __rest, - __decorate, - __param, - __metadata, - __awaiter, - __generator, - __exportStar, - __createBinding, - __values, - __read, - __spread, - __spreadArrays, - __spreadArray, - __await, - __asyncGenerator, - __asyncDelegator, - __asyncValues, - __makeTemplateObject, - __importStar, - __importDefault, - __classPrivateFieldGet, - __classPrivateFieldSet -} = import_tslib.default; - -// node_modules/@antv/util/esm/is-array-like.js -var isArrayLike = function(value2) { - return value2 !== null && typeof value2 !== "function" && isFinite(value2.length); -}; -var is_array_like_default = isArrayLike; - -// node_modules/@antv/util/esm/contains.js -var contains = function(arr, value2) { - if (!is_array_like_default(arr)) { - return false; - } - return arr.indexOf(value2) > -1; -}; -var contains_default = contains; - -// node_modules/@antv/util/esm/filter.js -var filter = function(arr, func) { - if (!is_array_like_default(arr)) { - return arr; - } - var result = []; - for (var index2 = 0; index2 < arr.length; index2++) { - var value2 = arr[index2]; - if (func(value2, index2)) { - result.push(value2); - } - } - return result; -}; -var filter_default = filter; - -// node_modules/@antv/util/esm/difference.js -var difference = function(arr, values2) { - if (values2 === void 0) { - values2 = []; - } - return filter_default(arr, function(value2) { - return !contains_default(values2, value2); - }); -}; -var difference_default = difference; - -// node_modules/@antv/util/esm/is-type.js -var toString2 = {}.toString; -var isType = function(value2, type2) { - return toString2.call(value2) === "[object " + type2 + "]"; -}; -var is_type_default = isType; - -// node_modules/@antv/util/esm/is-function.js -var is_function_default = function(value2) { - return is_type_default(value2, "Function"); -}; - -// node_modules/@antv/util/esm/is-nil.js -var isNil = function(value2) { - return value2 === null || value2 === void 0; -}; -var is_nil_default = isNil; - -// node_modules/@antv/util/esm/is-array.js -var is_array_default = function(value2) { - return Array.isArray ? Array.isArray(value2) : is_type_default(value2, "Array"); -}; - -// node_modules/@antv/util/esm/is-object.js -var is_object_default = function(value2) { - var type2 = typeof value2; - return value2 !== null && type2 === "object" || type2 === "function"; -}; - -// node_modules/@antv/util/esm/each.js -function each(elements, func) { - if (!elements) { - return; - } - var rst; - if (is_array_default(elements)) { - for (var i4 = 0, len5 = elements.length; i4 < len5; i4++) { - rst = func(elements[i4], i4); - if (rst === false) { - break; - } - } - } else if (is_object_default(elements)) { - for (var k4 in elements) { - if (elements.hasOwnProperty(k4)) { - rst = func(elements[k4], k4); - if (rst === false) { - break; - } - } - } - } -} -var each_default = each; - -// node_modules/@antv/util/esm/keys.js -var keys = Object.keys ? function(obj) { - return Object.keys(obj); -} : function(obj) { - var result = []; - each_default(obj, function(value2, key) { - if (!(is_function_default(obj) && key === "prototype")) { - result.push(key); - } - }); - return result; -}; -var keys_default = keys; - -// node_modules/@antv/util/esm/is-match.js -function isMatch(obj, attrs) { - var _keys = keys_default(attrs); - var length5 = _keys.length; - if (is_nil_default(obj)) - return !length5; - for (var i4 = 0; i4 < length5; i4 += 1) { - var key = _keys[i4]; - if (attrs[key] !== obj[key] || !(key in obj)) { - return false; - } - } - return true; -} -var is_match_default = isMatch; - -// node_modules/@antv/util/esm/is-object-like.js -var isObjectLike = function(value2) { - return typeof value2 === "object" && value2 !== null; -}; -var is_object_like_default = isObjectLike; - -// node_modules/@antv/util/esm/is-plain-object.js -var isPlainObject = function(value2) { - if (!is_object_like_default(value2) || !is_type_default(value2, "Object")) { - return false; - } - if (Object.getPrototypeOf(value2) === null) { - return true; - } - var proto = value2; - while (Object.getPrototypeOf(proto) !== null) { - proto = Object.getPrototypeOf(proto); - } - return Object.getPrototypeOf(value2) === proto; -}; -var is_plain_object_default = isPlainObject; - -// node_modules/@antv/util/esm/find.js -function find(arr, predicate) { - if (!is_array_default(arr)) - return null; - var _predicate; - if (is_function_default(predicate)) { - _predicate = predicate; - } - if (is_plain_object_default(predicate)) { - _predicate = function(a4) { - return is_match_default(a4, predicate); - }; - } - if (_predicate) { - for (var i4 = 0; i4 < arr.length; i4 += 1) { - if (_predicate(arr[i4])) { - return arr[i4]; - } - } - } - return null; -} -var find_default = find; - -// node_modules/@antv/util/esm/find-index.js -function findIndex(arr, predicate, fromIndex) { - if (fromIndex === void 0) { - fromIndex = 0; - } - for (var i4 = fromIndex; i4 < arr.length; i4++) { - if (predicate(arr[i4], i4)) { - return i4; - } - } - return -1; -} -var find_index_default = findIndex; - -// node_modules/@antv/util/esm/first-value.js -var firstValue = function(data3, name) { - var rst = null; - for (var i4 = 0; i4 < data3.length; i4++) { - var obj = data3[i4]; - var value2 = obj[name]; - if (!is_nil_default(value2)) { - if (is_array_default(value2)) { - rst = value2[0]; - } else { - rst = value2; - } - break; - } - } - return rst; -}; -var first_value_default = firstValue; - -// node_modules/@antv/util/esm/flatten.js -var flatten = function(arr) { - if (!is_array_default(arr)) { - return []; - } - var rst = []; - for (var i4 = 0; i4 < arr.length; i4++) { - rst = rst.concat(arr[i4]); - } - return rst; -}; -var flatten_default = flatten; - -// node_modules/@antv/util/esm/max.js -var max_default = function(arr) { - if (!is_array_default(arr)) { - return void 0; - } - return arr.reduce(function(prev, curr) { - return Math.max(prev, curr); - }, arr[0]); -}; - -// node_modules/@antv/util/esm/min.js -var min_default = function(arr) { - if (!is_array_default(arr)) { - return void 0; - } - return arr.reduce(function(prev, curr) { - return Math.min(prev, curr); - }, arr[0]); -}; - -// node_modules/@antv/util/esm/get-range.js -var getRange = function(values2) { - var filterValues = values2.filter(function(v3) { - return !isNaN(v3); - }); - if (!filterValues.length) { - return { - min: 0, - max: 0 - }; - } - if (is_array_default(values2[0])) { - var tmp = []; - for (var i4 = 0; i4 < values2.length; i4++) { - tmp = tmp.concat(values2[i4]); - } - filterValues = tmp; - } - var max8 = max_default(filterValues); - var min7 = min_default(filterValues); - return { - min: min7, - max: max8 - }; -}; -var get_range_default = getRange; - -// node_modules/@antv/util/esm/pull.js -var arrPrototype = Array.prototype; -var splice = arrPrototype.splice; -var indexOf = arrPrototype.indexOf; - -// node_modules/@antv/util/esm/pull-at.js -var splice2 = Array.prototype.splice; -var pullAt = function pullAt2(arr, indexes) { - if (!is_array_like_default(arr)) { - return []; - } - var length5 = arr ? indexes.length : 0; - var last2 = length5 - 1; - while (length5--) { - var previous = void 0; - var index2 = indexes[length5]; - if (length5 === last2 || index2 !== previous) { - previous = index2; - splice2.call(arr, index2, 1); - } - } - return arr; -}; -var pull_at_default = pullAt; - -// node_modules/@antv/util/esm/reduce.js -var reduce = function(arr, fn2, init) { - if (!is_array_default(arr) && !is_plain_object_default(arr)) { - return arr; - } - var result = init; - each_default(arr, function(data3, i4) { - result = fn2(result, data3, i4); - }); - return result; -}; -var reduce_default = reduce; - -// node_modules/@antv/util/esm/remove.js -var remove = function(arr, predicate) { - var result = []; - if (!is_array_like_default(arr)) { - return result; - } - var i4 = -1; - var indexes = []; - var length5 = arr.length; - while (++i4 < length5) { - var value2 = arr[i4]; - if (predicate(value2, i4, arr)) { - result.push(value2); - indexes.push(i4); - } - } - pull_at_default(arr, indexes); - return result; -}; -var remove_default = remove; - -// node_modules/@antv/util/esm/is-string.js -var is_string_default = function(str8) { - return is_type_default(str8, "String"); -}; - -// node_modules/@antv/util/esm/sort-by.js -function sortBy(arr, key) { - var comparer; - if (is_function_default(key)) { - comparer = function(a4, b10) { - return key(a4) - key(b10); - }; - } else { - var keys_1 = []; - if (is_string_default(key)) { - keys_1.push(key); - } else if (is_array_default(key)) { - keys_1 = key; - } - comparer = function(a4, b10) { - for (var i4 = 0; i4 < keys_1.length; i4 += 1) { - var prop = keys_1[i4]; - if (a4[prop] > b10[prop]) { - return 1; - } - if (a4[prop] < b10[prop]) { - return -1; - } - } - return 0; - }; - } - arr.sort(comparer); - return arr; -} -var sort_by_default = sortBy; - -// node_modules/@antv/util/esm/uniq.js -function uniq(arr, cache3) { - if (cache3 === void 0) { - cache3 = new Map(); - } - var r4 = []; - if (Array.isArray(arr)) { - for (var i4 = 0, len5 = arr.length; i4 < len5; i4++) { - var item = arr[i4]; - if (!cache3.has(item)) { - r4.push(item); - cache3.set(item, true); - } - } - } - return r4; -} - -// node_modules/@antv/util/esm/values-of-key.js -var values_of_key_default = function(data3, name) { - var rst = []; - var tmpMap = {}; - for (var i4 = 0; i4 < data3.length; i4++) { - var obj = data3[i4]; - var value2 = obj[name]; - if (!is_nil_default(value2)) { - if (!is_array_default(value2)) { - value2 = [value2]; - } - for (var j4 = 0; j4 < value2.length; j4++) { - var val = value2[j4]; - if (!tmpMap[val]) { - rst.push(val); - tmpMap[val] = true; - } - } - } - } - return rst; -}; - -// node_modules/@antv/util/esm/head.js -function head(o3) { - if (is_array_like_default(o3)) { - return o3[0]; - } - return void 0; -} - -// node_modules/@antv/util/esm/last.js -function last(o3) { - if (is_array_like_default(o3)) { - var arr = o3; - return arr[arr.length - 1]; - } - return void 0; -} - -// node_modules/@antv/util/esm/every.js -var every = function(arr, func) { - for (var i4 = 0; i4 < arr.length; i4++) { - if (!func(arr[i4], i4)) - return false; - } - return true; -}; -var every_default = every; - -// node_modules/@antv/util/esm/some.js -var some = function(arr, func) { - for (var i4 = 0; i4 < arr.length; i4++) { - if (func(arr[i4], i4)) - return true; - } - return false; -}; -var some_default = some; - -// node_modules/@antv/util/esm/group-by.js -var hasOwnProperty = Object.prototype.hasOwnProperty; -function groupBy(data3, condition) { - if (!condition || !is_array_default(data3)) { - return {}; - } - var result = {}; - var predicate = is_function_default(condition) ? condition : function(item2) { - return item2[condition]; - }; - var key; - for (var i4 = 0; i4 < data3.length; i4++) { - var item = data3[i4]; - key = predicate(item); - if (hasOwnProperty.call(result, key)) { - result[key].push(item); - } else { - result[key] = [item]; - } - } - return result; -} -var group_by_default = groupBy; - -// node_modules/@antv/util/esm/group-to-map.js -function groupToMap(data3, condition) { - if (!condition) { - return { - 0: data3 - }; - } - if (!is_function_default(condition)) { - var paramscondition_1 = is_array_default(condition) ? condition : condition.replace(/\s+/g, "").split("*"); - condition = function(row) { - var unique = "_"; - for (var i4 = 0, l4 = paramscondition_1.length; i4 < l4; i4++) { - unique += row[paramscondition_1[i4]] && row[paramscondition_1[i4]].toString(); - } - return unique; - }; - } - return group_by_default(data3, condition); -} - -// node_modules/@antv/util/esm/group.js -var group_default = function(data3, condition) { - if (!condition) { - return [data3]; - } - var groups = groupToMap(data3, condition); - var array = []; - for (var i4 in groups) { - array.push(groups[i4]); - } - return array; -}; - -// node_modules/@antv/util/esm/wrap-behavior.js -function wrapBehavior(obj, action) { - if (obj["_wrap_" + action]) { - return obj["_wrap_" + action]; - } - var method = function(e4) { - obj[action](e4); - }; - obj["_wrap_" + action] = method; - return method; -} -var wrap_behavior_default = wrapBehavior; - -// node_modules/@antv/util/esm/clamp.js -var clamp = function(a4, min7, max8) { - if (a4 < min7) { - return min7; - } else if (a4 > max8) { - return max8; - } - return a4; -}; -var clamp_default = clamp; - -// node_modules/@antv/util/esm/fixed-base.js -var fixedBase = function(v3, base) { - var str8 = base.toString(); - var index2 = str8.indexOf("."); - if (index2 === -1) { - return Math.round(v3); - } - var length5 = str8.substr(index2 + 1).length; - if (length5 > 20) { - length5 = 20; - } - return parseFloat(v3.toFixed(length5)); -}; -var fixed_base_default = fixedBase; - -// node_modules/@antv/util/esm/is-number.js -var isNumber = function(value2) { - return is_type_default(value2, "Number"); -}; -var is_number_default = isNumber; - -// node_modules/@antv/util/esm/is-integer.js -var isInteger2 = Number.isInteger ? Number.isInteger : function(num) { - return is_number_default(num) && num % 1 === 0; -}; - -// node_modules/@antv/util/esm/is-number-equal.js -var PRECISION = 1e-5; -function isNumberEqual(a4, b10, precision) { - if (precision === void 0) { - precision = PRECISION; - } - return Math.abs(a4 - b10) < precision; -} - -// node_modules/@antv/util/esm/max-by.js -var max_by_default = function(arr, fn2) { - if (!is_array_default(arr)) { - return void 0; - } - var maxItem; - var max8 = -Infinity; - for (var i4 = 0; i4 < arr.length; i4++) { - var item = arr[i4]; - var v3 = is_function_default(fn2) ? fn2(item) : item[fn2]; - if (v3 > max8) { - maxItem = item; - max8 = v3; - } - } - return maxItem; -}; - -// node_modules/@antv/util/esm/min-by.js -var min_by_default = function(arr, fn2) { - if (!is_array_default(arr)) { - return void 0; - } - var minItem; - var min7 = Infinity; - for (var i4 = 0; i4 < arr.length; i4++) { - var item = arr[i4]; - var v3 = is_function_default(fn2) ? fn2(item) : item[fn2]; - if (v3 < min7) { - minItem = item; - min7 = v3; - } - } - return minItem; -}; - -// node_modules/@antv/util/esm/mod.js -var mod = function(n3, m4) { - return (n3 % m4 + m4) % m4; -}; -var mod_default = mod; - -// node_modules/@antv/util/esm/to-degree.js -var DEGREE = 180 / Math.PI; - -// node_modules/@antv/util/esm/to-radian.js -var RADIAN = Math.PI / 180; -var toRadian = function(degree4) { - return RADIAN * degree4; -}; -var to_radian_default = toRadian; - -// node_modules/@antv/util/esm/for-in.js -var for_in_default = each_default; - -// node_modules/@antv/util/esm/has.js -var has_default = function(obj, key) { - return obj.hasOwnProperty(key); -}; - -// node_modules/@antv/util/esm/has-key.js -var has_key_default = has_default; - -// node_modules/@antv/util/esm/values.js -var values = Object.values ? function(obj) { - return Object.values(obj); -} : function(obj) { - var result = []; - each_default(obj, function(value2, key) { - if (!(is_function_default(obj) && key === "prototype")) { - result.push(value2); - } - }); - return result; -}; -var values_default = values; - -// node_modules/@antv/util/esm/to-string.js -var to_string_default = function(value2) { - if (is_nil_default(value2)) - return ""; - return value2.toString(); -}; - -// node_modules/@antv/util/esm/lower-case.js -var lowerCase = function(str8) { - return to_string_default(str8).toLowerCase(); -}; -var lower_case_default = lowerCase; - -// node_modules/@antv/util/esm/substitute.js -function substitute(str8, o3) { - if (!str8 || !o3) { - return str8; - } - return str8.replace(/\\?\{([^{}]+)\}/g, function(match, name) { - if (match.charAt(0) === "\\") { - return match.slice(1); - } - return o3[name] === void 0 ? "" : o3[name]; - }); -} -var substitute_default = substitute; - -// node_modules/@antv/util/esm/upper-first.js -var upperFirst = function(value2) { - var str8 = to_string_default(value2); - return str8.charAt(0).toUpperCase() + str8.substring(1); -}; -var upper_first_default = upperFirst; - -// node_modules/@antv/util/esm/get-type.js -var toString3 = {}.toString; -var getType = function(value2) { - return toString3.call(value2).replace(/^\[object /, "").replace(/]$/, ""); -}; -var get_type_default = getType; - -// node_modules/@antv/util/esm/is-boolean.js -var isBoolean2 = function(value2) { - return is_type_default(value2, "Boolean"); -}; -var is_boolean_default = isBoolean2; - -// node_modules/@antv/util/esm/is-date.js -var isDate = function(value2) { - return is_type_default(value2, "Date"); -}; -var is_date_default = isDate; - -// node_modules/@antv/util/esm/is-null.js -var isNull2 = function(value2) { - return value2 === null; -}; -var is_null_default = isNull2; - -// node_modules/@antv/util/esm/is-prototype.js -var objectProto = Object.prototype; -var isPrototype = function(value2) { - var Ctor = value2 && value2.constructor; - var proto = typeof Ctor === "function" && Ctor.prototype || objectProto; - return value2 === proto; -}; -var is_prototype_default = isPrototype; - -// node_modules/@antv/util/esm/is-undefined.js -var isUndefined = function(value2) { - return value2 === void 0; -}; -var is_undefined_default = isUndefined; - -// node_modules/@antv/util/esm/is-element.js -var isElement = function(o3) { - return o3 instanceof Element || o3 instanceof HTMLDocument; -}; -var is_element_default = isElement; - -// node_modules/@antv/util/esm/request-animation-frame.js -function requestAnimationFrame2(fn2) { - var method = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || function(f3) { - return setTimeout(f3, 16); - }; - return method(fn2); -} - -// node_modules/@antv/util/esm/clear-animation-frame.js -function cancelAnimationFrame2(handler) { - var method = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.msCancelAnimationFrame || clearTimeout; - method(handler); -} - -// node_modules/@antv/util/esm/mix.js -function _mix(dist4, obj) { - for (var key in obj) { - if (obj.hasOwnProperty(key) && key !== "constructor" && obj[key] !== void 0) { - dist4[key] = obj[key]; - } - } -} -function mix(dist4, src1, src2, src3) { - if (src1) - _mix(dist4, src1); - if (src2) - _mix(dist4, src2); - if (src3) - _mix(dist4, src3); - return dist4; -} - -// node_modules/@antv/util/esm/clone.js -var clone = function(obj) { - if (typeof obj !== "object" || obj === null) { - return obj; - } - var rst; - if (is_array_default(obj)) { - rst = []; - for (var i4 = 0, l4 = obj.length; i4 < l4; i4++) { - if (typeof obj[i4] === "object" && obj[i4] != null) { - rst[i4] = clone(obj[i4]); - } else { - rst[i4] = obj[i4]; - } - } - } else { - rst = {}; - for (var k4 in obj) { - if (typeof obj[k4] === "object" && obj[k4] != null) { - rst[k4] = clone(obj[k4]); - } else { - rst[k4] = obj[k4]; - } - } - } - return rst; -}; -var clone_default = clone; - -// node_modules/@antv/util/esm/debounce.js -function debounce(func, wait, immediate) { - var timeout2; - return function() { - var context = this, args = arguments; - var later = function() { - timeout2 = null; - if (!immediate) { - func.apply(context, args); - } - }; - var callNow = immediate && !timeout2; - clearTimeout(timeout2); - timeout2 = setTimeout(later, wait); - if (callNow) { - func.apply(context, args); - } - }; -} -var debounce_default = debounce; - -// node_modules/@antv/util/esm/memoize.js -var memoize_default = function(f3, resolver) { - if (!is_function_default(f3)) { - throw new TypeError("Expected a function"); - } - var memoized = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var key = resolver ? resolver.apply(this, args) : args[0]; - var cache3 = memoized.cache; - if (cache3.has(key)) { - return cache3.get(key); - } - var result = f3.apply(this, args); - cache3.set(key, result); - return result; - }; - memoized.cache = new Map(); - return memoized; -}; - -// node_modules/@antv/util/esm/deep-mix.js -var MAX_MIX_LEVEL = 5; -function _deepMix(dist4, src, level, maxLevel) { - level = level || 0; - maxLevel = maxLevel || MAX_MIX_LEVEL; - for (var key in src) { - if (src.hasOwnProperty(key)) { - var value2 = src[key]; - if (value2 !== null && is_plain_object_default(value2)) { - if (!is_plain_object_default(dist4[key])) { - dist4[key] = {}; - } - if (level < maxLevel) { - _deepMix(dist4[key], value2, level + 1, maxLevel); - } else { - dist4[key] = src[key]; - } - } else if (is_array_default(value2)) { - dist4[key] = []; - dist4[key] = dist4[key].concat(value2); - } else if (value2 !== void 0) { - dist4[key] = value2; - } - } - } -} -var deepMix = function(rst) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - for (var i4 = 0; i4 < args.length; i4 += 1) { - _deepMix(rst, args[i4]); - } - return rst; -}; -var deep_mix_default = deepMix; - -// node_modules/@antv/util/esm/index-of.js -var indexOf2 = function(arr, obj) { - if (!is_array_like_default(arr)) { - return -1; - } - var m4 = Array.prototype.indexOf; - if (m4) { - return m4.call(arr, obj); - } - var index2 = -1; - for (var i4 = 0; i4 < arr.length; i4++) { - if (arr[i4] === obj) { - index2 = i4; - break; - } - } - return index2; -}; -var index_of_default = indexOf2; - -// node_modules/@antv/util/esm/is-empty.js -var hasOwnProperty2 = Object.prototype.hasOwnProperty; -function isEmpty(value2) { - if (is_nil_default(value2)) { - return true; - } - if (is_array_like_default(value2)) { - return !value2.length; - } - var type2 = get_type_default(value2); - if (type2 === "Map" || type2 === "Set") { - return !value2.size; - } - if (is_prototype_default(value2)) { - return !Object.keys(value2).length; - } - for (var key in value2) { - if (hasOwnProperty2.call(value2, key)) { - return false; - } - } - return true; -} -var is_empty_default = isEmpty; - -// node_modules/@antv/util/esm/is-equal.js -var isEqual = function(value2, other2) { - if (value2 === other2) { - return true; - } - if (!value2 || !other2) { - return false; - } - if (is_string_default(value2) || is_string_default(other2)) { - return false; - } - if (is_array_like_default(value2) || is_array_like_default(other2)) { - if (value2.length !== other2.length) { - return false; - } - var rst = true; - for (var i4 = 0; i4 < value2.length; i4++) { - rst = isEqual(value2[i4], other2[i4]); - if (!rst) { - break; - } - } - return rst; - } - if (is_object_like_default(value2) || is_object_like_default(other2)) { - var valueKeys = Object.keys(value2); - var otherKeys = Object.keys(other2); - if (valueKeys.length !== otherKeys.length) { - return false; - } - var rst = true; - for (var i4 = 0; i4 < valueKeys.length; i4++) { - rst = isEqual(value2[valueKeys[i4]], other2[valueKeys[i4]]); - if (!rst) { - break; - } - } - return rst; - } - return false; -}; -var is_equal_default = isEqual; - -// node_modules/@antv/util/esm/map.js -var map2 = function(arr, func) { - if (!is_array_like_default(arr)) { - return arr; - } - var result = []; - for (var index2 = 0; index2 < arr.length; index2++) { - var value2 = arr[index2]; - result.push(func(value2, index2)); - } - return result; -}; -var map_default = map2; - -// node_modules/@antv/util/esm/map-values.js -var identity = function(v3) { - return v3; -}; -var map_values_default = function(object, func) { - if (func === void 0) { - func = identity; - } - var r4 = {}; - if (is_object_default(object) && !is_nil_default(object)) { - Object.keys(object).forEach(function(key) { - r4[key] = func(object[key], key); - }); - } - return r4; -}; - -// node_modules/@antv/util/esm/get.js -var get_default = function(obj, key, defaultValue) { - var p4 = 0; - var keyArr = is_string_default(key) ? key.split(".") : key; - while (obj && p4 < keyArr.length) { - obj = obj[keyArr[p4++]]; - } - return obj === void 0 || p4 < keyArr.length ? defaultValue : obj; -}; - -// node_modules/@antv/util/esm/set.js -var set_default = function(obj, path, value2) { - var o3 = obj; - var keyArr = is_string_default(path) ? path.split(".") : path; - keyArr.forEach(function(key, idx) { - if (idx < keyArr.length - 1) { - if (!is_object_default(o3[key])) { - o3[key] = is_number_default(keyArr[idx + 1]) ? [] : {}; - } - o3 = o3[key]; - } else { - o3[key] = value2; - } - }); - return obj; -}; - -// node_modules/@antv/util/esm/pick.js -var hasOwnProperty3 = Object.prototype.hasOwnProperty; -var pick_default = function(object, keys2) { - if (object === null || !is_plain_object_default(object)) { - return {}; - } - var result = {}; - each_default(keys2, function(key) { - if (hasOwnProperty3.call(object, key)) { - result[key] = object[key]; - } - }); - return result; -}; - -// node_modules/@antv/util/esm/omit.js -var omit_default = function(obj, keys2) { - return reduce_default(obj, function(r4, curr, key) { - if (!keys2.includes(key)) { - r4[key] = curr; - } - return r4; - }, {}); -}; - -// node_modules/@antv/util/esm/throttle.js -var throttle_default = function(func, wait, options) { - var timeout2, context, args, result; - var previous = 0; - if (!options) - options = {}; - var later = function() { - previous = options.leading === false ? 0 : Date.now(); - timeout2 = null; - result = func.apply(context, args); - if (!timeout2) - context = args = null; - }; - var throttled = function() { - var now2 = Date.now(); - if (!previous && options.leading === false) - previous = now2; - var remaining = wait - (now2 - previous); - context = this; - args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout2) { - clearTimeout(timeout2); - timeout2 = null; - } - previous = now2; - result = func.apply(context, args); - if (!timeout2) - context = args = null; - } else if (!timeout2 && options.trailing !== false) { - timeout2 = setTimeout(later, remaining); - } - return result; - }; - throttled.cancel = function() { - clearTimeout(timeout2); - previous = 0; - timeout2 = context = args = null; - }; - return throttled; -}; - -// node_modules/@antv/util/esm/to-array.js -var to_array_default = function(value2) { - return is_array_like_default(value2) ? Array.prototype.slice.call(value2) : []; -}; - -// node_modules/@antv/util/esm/unique-id.js -var map3 = {}; -var unique_id_default = function(prefix2) { - prefix2 = prefix2 || "g"; - if (!map3[prefix2]) { - map3[prefix2] = 1; - } else { - map3[prefix2] += 1; - } - return prefix2 + map3[prefix2]; -}; - -// node_modules/@antv/util/esm/noop.js -var noop_default = function() { -}; - -// node_modules/@antv/util/esm/size.js -function size(o3) { - if (is_nil_default(o3)) { - return 0; - } - if (is_array_like_default(o3)) { - return o3.length; - } - return Object.keys(o3).length; -} - -// node_modules/@antv/util/esm/measure-text-width.js -var ctx; -var measure_text_width_default = memoize_default(function(text, font) { - if (font === void 0) { - font = {}; - } - var fontSize = font.fontSize, fontFamily = font.fontFamily, fontWeight = font.fontWeight, fontStyle = font.fontStyle, fontVariant = font.fontVariant; - if (!ctx) { - ctx = document.createElement("canvas").getContext("2d"); - } - ctx.font = [fontStyle, fontVariant, fontWeight, fontSize + "px", fontFamily].join(" "); - return ctx.measureText(is_string_default(text) ? text : "").width; -}, function(text, font) { - if (font === void 0) { - font = {}; - } - return __spreadArrays([text], values_default(font)).join(""); -}); - -// node_modules/@antv/util/esm/get-ellipsis-text.js -var get_ellipsis_text_default = function(text, maxWidth, font, str8) { - if (str8 === void 0) { - str8 = "..."; - } - var STEP = 16; - var PLACEHOLDER_WIDTH = measure_text_width_default(str8, font); - var leftText = !is_string_default(text) ? to_string_default(text) : text; - var leftWidth = maxWidth; - var r4 = []; - var currentText; - var currentWidth; - if (measure_text_width_default(text, font) <= maxWidth) { - return text; - } - while (true) { - currentText = leftText.substr(0, STEP); - currentWidth = measure_text_width_default(currentText, font); - if (currentWidth + PLACEHOLDER_WIDTH > leftWidth) { - if (currentWidth > leftWidth) { - break; - } - } - r4.push(currentText); - leftWidth -= currentWidth; - leftText = leftText.substr(STEP); - if (!leftText) { - return r4.join(""); - } - } - while (true) { - currentText = leftText.substr(0, 1); - currentWidth = measure_text_width_default(currentText, font); - if (currentWidth + PLACEHOLDER_WIDTH > leftWidth) { - break; - } - r4.push(currentText); - leftWidth -= currentWidth; - leftText = leftText.substr(1); - if (!leftText) { - return r4.join(""); - } - } - return "" + r4.join("") + str8; -}; - -// node_modules/@antv/util/esm/cache.js -var default_1 = function() { - function default_12() { - this.map = {}; - } - default_12.prototype.has = function(key) { - return this.map[key] !== void 0; - }; - default_12.prototype.get = function(key, def) { - var v3 = this.map[key]; - return v3 === void 0 ? def : v3; - }; - default_12.prototype.set = function(key, value2) { - this.map[key] = value2; - }; - default_12.prototype.clear = function() { - this.map = {}; - }; - default_12.prototype.delete = function(key) { - delete this.map[key]; - }; - default_12.prototype.size = function() { - return Object.keys(this.map).length; - }; - return default_12; -}(); -var cache_default = default_1; - -// node_modules/@antv/g2/esm/constant.js -var LAYER; -(function(LAYER2) { - LAYER2["FORE"] = "fore"; - LAYER2["MID"] = "mid"; - LAYER2["BG"] = "bg"; -})(LAYER || (LAYER = {})); -var DIRECTION; -(function(DIRECTION2) { - DIRECTION2["TOP"] = "top"; - DIRECTION2["TOP_LEFT"] = "top-left"; - DIRECTION2["TOP_RIGHT"] = "top-right"; - DIRECTION2["RIGHT"] = "right"; - DIRECTION2["RIGHT_TOP"] = "right-top"; - DIRECTION2["RIGHT_BOTTOM"] = "right-bottom"; - DIRECTION2["LEFT"] = "left"; - DIRECTION2["LEFT_TOP"] = "left-top"; - DIRECTION2["LEFT_BOTTOM"] = "left-bottom"; - DIRECTION2["BOTTOM"] = "bottom"; - DIRECTION2["BOTTOM_LEFT"] = "bottom-left"; - DIRECTION2["BOTTOM_RIGHT"] = "bottom-right"; - DIRECTION2["RADIUS"] = "radius"; - DIRECTION2["CIRCLE"] = "circle"; - DIRECTION2["NONE"] = "none"; -})(DIRECTION || (DIRECTION = {})); -var COMPONENT_TYPE; -(function(COMPONENT_TYPE2) { - COMPONENT_TYPE2["AXIS"] = "axis"; - COMPONENT_TYPE2["GRID"] = "grid"; - COMPONENT_TYPE2["LEGEND"] = "legend"; - COMPONENT_TYPE2["TOOLTIP"] = "tooltip"; - COMPONENT_TYPE2["ANNOTATION"] = "annotation"; - COMPONENT_TYPE2["SLIDER"] = "slider"; - COMPONENT_TYPE2["SCROLLBAR"] = "scrollbar"; - COMPONENT_TYPE2["OTHER"] = "other"; -})(COMPONENT_TYPE || (COMPONENT_TYPE = {})); -var GROUP_Z_INDEX = { - FORE: 3, - MID: 2, - BG: 1 -}; -var VIEW_LIFE_CIRCLE; -(function(VIEW_LIFE_CIRCLE2) { - VIEW_LIFE_CIRCLE2["BEFORE_RENDER"] = "beforerender"; - VIEW_LIFE_CIRCLE2["AFTER_RENDER"] = "afterrender"; - VIEW_LIFE_CIRCLE2["BEFORE_PAINT"] = "beforepaint"; - VIEW_LIFE_CIRCLE2["AFTER_PAINT"] = "afterpaint"; - VIEW_LIFE_CIRCLE2["BEFORE_CHANGE_DATA"] = "beforechangedata"; - VIEW_LIFE_CIRCLE2["AFTER_CHANGE_DATA"] = "afterchangedata"; - VIEW_LIFE_CIRCLE2["BEFORE_CLEAR"] = "beforeclear"; - VIEW_LIFE_CIRCLE2["AFTER_CLEAR"] = "afterclear"; - VIEW_LIFE_CIRCLE2["BEFORE_DESTROY"] = "beforedestroy"; - VIEW_LIFE_CIRCLE2["BEFORE_CHANGE_SIZE"] = "beforechangesize"; - VIEW_LIFE_CIRCLE2["AFTER_CHANGE_SIZE"] = "afterchangesize"; -})(VIEW_LIFE_CIRCLE || (VIEW_LIFE_CIRCLE = {})); -var GEOMETRY_LIFE_CIRCLE; -(function(GEOMETRY_LIFE_CIRCLE2) { - GEOMETRY_LIFE_CIRCLE2["BEFORE_DRAW_ANIMATE"] = "beforeanimate"; - GEOMETRY_LIFE_CIRCLE2["AFTER_DRAW_ANIMATE"] = "afteranimate"; -})(GEOMETRY_LIFE_CIRCLE || (GEOMETRY_LIFE_CIRCLE = {})); -var PLOT_EVENTS; -(function(PLOT_EVENTS2) { - PLOT_EVENTS2["MOUSE_ENTER"] = "plot:mouseenter"; - PLOT_EVENTS2["MOUSE_DOWN"] = "plot:mousedown"; - PLOT_EVENTS2["MOUSE_MOVE"] = "plot:mousemove"; - PLOT_EVENTS2["MOUSE_UP"] = "plot:mouseup"; - PLOT_EVENTS2["MOUSE_LEAVE"] = "plot:mouseleave"; - PLOT_EVENTS2["TOUCH_START"] = "plot:touchstart"; - PLOT_EVENTS2["TOUCH_MOVE"] = "plot:touchmove"; - PLOT_EVENTS2["TOUCH_END"] = "plot:touchend"; - PLOT_EVENTS2["TOUCH_CANCEL"] = "plot:touchcancel"; - PLOT_EVENTS2["CLICK"] = "plot:click"; - PLOT_EVENTS2["DBLCLICK"] = "plot:dblclick"; - PLOT_EVENTS2["CONTEXTMENU"] = "plot:contextmenu"; - PLOT_EVENTS2["LEAVE"] = "plot:leave"; - PLOT_EVENTS2["ENTER"] = "plot:enter"; -})(PLOT_EVENTS || (PLOT_EVENTS = {})); -var ELEMENT_STATE; -(function(ELEMENT_STATE2) { - ELEMENT_STATE2["ACTIVE"] = "active"; - ELEMENT_STATE2["INACTIVE"] = "inactive"; - ELEMENT_STATE2["SELECTED"] = "selected"; - ELEMENT_STATE2["DEFAULT"] = "default"; -})(ELEMENT_STATE || (ELEMENT_STATE = {})); -var GROUP_ATTRS = ["color", "shape", "size"]; -var FIELD_ORIGIN = "_origin"; -var MIN_CHART_WIDTH = 1; -var MIN_CHART_HEIGHT = 1; -var COMPONENT_MAX_VIEW_PERCENTAGE = 0.25; - -// node_modules/@antv/g2/esm/engine/index.js -var ENGINES = {}; -function getEngine(name) { - var G2 = ENGINES[name]; - if (!G2) { - throw new Error("G engine '".concat(name, "' is not exist, please register it at first.")); - } - return G2; -} -function registerEngine(name, engine) { - ENGINES[name] = engine; -} - -// node_modules/@antv/dom-util/esm/add-event-listener.js -function addEventListener(target, eventType, callback) { - if (target) { - if (typeof target.addEventListener === "function") { - target.addEventListener(eventType, callback, false); - return { - remove: function() { - target.removeEventListener(eventType, callback, false); - } - }; - } - if (typeof target.attachEvent === "function") { - target.attachEvent("on" + eventType, callback); - return { - remove: function() { - target.detachEvent("on" + eventType, callback); - } - }; - } - } -} - -// node_modules/@antv/dom-util/esm/create-dom.js -var TABLE; -var TABLE_TR; -var FRAGMENT_REG; -var CONTAINERS; -function initConstants() { - TABLE = document.createElement("table"); - TABLE_TR = document.createElement("tr"); - FRAGMENT_REG = /^\s*<(\w+|!)[^>]*>/; - CONTAINERS = { - tr: document.createElement("tbody"), - tbody: TABLE, - thead: TABLE, - tfoot: TABLE, - td: TABLE_TR, - th: TABLE_TR, - "*": document.createElement("div") - }; -} -function createDom(str8) { - if (!TABLE) { - initConstants(); - } - var name = FRAGMENT_REG.test(str8) && RegExp.$1; - if (!name || !(name in CONTAINERS)) { - name = "*"; - } - var container2 = CONTAINERS[name]; - str8 = str8.replace(/(^\s*)|(\s*$)/g, ""); - container2.innerHTML = "" + str8; - var dom = container2.childNodes[0]; - container2.removeChild(dom); - return dom; -} - -// node_modules/@antv/dom-util/esm/get-style.js -function getStyle(dom, name, defaultValue) { - var v3; - try { - v3 = window.getComputedStyle ? window.getComputedStyle(dom, null)[name] : dom.style[name]; - } catch (e4) { - } finally { - v3 = v3 === void 0 ? defaultValue : v3; - } - return v3; -} - -// node_modules/@antv/dom-util/esm/get-height.js -function getHeight(el, defaultValue) { - var height = getStyle(el, "height", defaultValue); - if (height === "auto") { - height = el.offsetHeight; - } - return parseFloat(height); -} - -// node_modules/@antv/dom-util/esm/get-outer-height.js -function getOuterHeight(el, defaultValue) { - var height = getHeight(el, defaultValue); - var bTop = parseFloat(getStyle(el, "borderTopWidth")) || 0; - var pTop = parseFloat(getStyle(el, "paddingTop")) || 0; - var pBottom = parseFloat(getStyle(el, "paddingBottom")) || 0; - var bBottom = parseFloat(getStyle(el, "borderBottomWidth")) || 0; - var mTop = parseFloat(getStyle(el, "marginTop")) || 0; - var mBottom = parseFloat(getStyle(el, "marginBottom")) || 0; - return height + bTop + bBottom + pTop + pBottom + mTop + mBottom; -} - -// node_modules/@antv/dom-util/esm/get-width.js -function getHeight2(el, defaultValue) { - var width2 = getStyle(el, "width", defaultValue); - if (width2 === "auto") { - width2 = el.offsetWidth; - } - return parseFloat(width2); -} - -// node_modules/@antv/dom-util/esm/get-outer-width.js -function getOuterWidth(el, defaultValue) { - var width2 = getHeight2(el, defaultValue); - var bLeft = parseFloat(getStyle(el, "borderLeftWidth")) || 0; - var pLeft = parseFloat(getStyle(el, "paddingLeft")) || 0; - var pRight = parseFloat(getStyle(el, "paddingRight")) || 0; - var bRight = parseFloat(getStyle(el, "borderRightWidth")) || 0; - var mRight = parseFloat(getStyle(el, "marginRight")) || 0; - var mLeft = parseFloat(getStyle(el, "marginLeft")) || 0; - return width2 + bLeft + bRight + pLeft + pRight + mLeft + mRight; -} - -// node_modules/@antv/dom-util/esm/modify-css.js -function modifyCSS(dom, css) { - if (dom) { - for (var key in css) { - if (css.hasOwnProperty(key)) { - dom.style[key] = css[key]; - } - } - } - return dom; -} - -// node_modules/@antv/g2/esm/util/dom.js -function getElementSize(ele) { - var style = getComputedStyle(ele); - return { - width: (ele.clientWidth || parseInt(style.width, 10)) - parseInt(style.paddingLeft, 10) - parseInt(style.paddingRight, 10), - height: (ele.clientHeight || parseInt(style.height, 10)) - parseInt(style.paddingTop, 10) - parseInt(style.paddingBottom, 10) - }; -} -function isNumber2(v3) { - return typeof v3 === "number" && !isNaN(v3); -} -function getChartSize(ele, autoFit, width2, height) { - var w4 = width2; - var h3 = height; - if (autoFit) { - var size2 = getElementSize(ele); - w4 = size2.width ? size2.width : w4; - h3 = size2.height ? size2.height : h3; - } - return { - width: Math.max(isNumber2(w4) ? w4 : MIN_CHART_WIDTH, MIN_CHART_WIDTH), - height: Math.max(isNumber2(h3) ? h3 : MIN_CHART_HEIGHT, MIN_CHART_HEIGHT) - }; -} -function removeDom(dom) { - var parent = dom.parentNode; - if (parent) { - parent.removeChild(dom); - } -} - -// node_modules/@antv/event-emitter/esm/index.js -var WILDCARD = "*"; -var EventEmitter = function() { - function EventEmitter2() { - this._events = {}; - } - EventEmitter2.prototype.on = function(evt, callback, once) { - if (!this._events[evt]) { - this._events[evt] = []; - } - this._events[evt].push({ - callback, - once: !!once - }); - return this; - }; - EventEmitter2.prototype.once = function(evt, callback) { - this.on(evt, callback, true); - return this; - }; - EventEmitter2.prototype.emit = function(evt) { - var _this = this; - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var events = this._events[evt] || []; - var wildcardEvents = this._events[WILDCARD] || []; - var doEmit = function(es) { - var length5 = es.length; - for (var i4 = 0; i4 < length5; i4++) { - if (!es[i4]) { - continue; - } - var _a6 = es[i4], callback = _a6.callback, once = _a6.once; - if (once) { - es.splice(i4, 1); - if (es.length === 0) { - delete _this._events[evt]; - } - length5--; - i4--; - } - callback.apply(_this, args); - } - }; - doEmit(events); - doEmit(wildcardEvents); - }; - EventEmitter2.prototype.off = function(evt, callback) { - if (!evt) { - this._events = {}; - } else { - if (!callback) { - delete this._events[evt]; - } else { - var events = this._events[evt] || []; - var length_1 = events.length; - for (var i4 = 0; i4 < length_1; i4++) { - if (events[i4].callback === callback) { - events.splice(i4, 1); - length_1--; - i4--; - } - } - if (events.length === 0) { - delete this._events[evt]; - } - } - } - return this; - }; - EventEmitter2.prototype.getEvents = function() { - return this._events; - }; - return EventEmitter2; -}(); -var esm_default = EventEmitter; - -// node_modules/@antv/g2/esm/base.js -var Base = function(_super) { - __extends(Base4, _super); - function Base4(cfg) { - var _this = _super.call(this) || this; - _this.destroyed = false; - var _a6 = cfg.visible, visible = _a6 === void 0 ? true : _a6; - _this.visible = visible; - return _this; - } - Base4.prototype.show = function() { - var visible = this.visible; - if (!visible) { - this.changeVisible(true); - } - }; - Base4.prototype.hide = function() { - var visible = this.visible; - if (visible) { - this.changeVisible(false); - } - }; - Base4.prototype.destroy = function() { - this.off(); - this.destroyed = true; - }; - Base4.prototype.changeVisible = function(visible) { - if (this.visible === visible) { - return; - } - this.visible = visible; - }; - return Base4; -}(esm_default); -var base_default = Base; - -// node_modules/@antv/g-base/esm/util/path.js -var path_exports = {}; -__export(path_exports, { - catmullRomToBezier: () => catmullRomToBezier, - fillPath: () => fillPath, - fillPathByDiff: () => fillPathByDiff, - formatPath: () => formatPath, - intersection: () => intersection, - parsePathArray: () => parsePathArray, - parsePathString: () => parsePathString, - pathToAbsolute: () => pathToAbsolute, - pathToCurve: () => pathToCurve, - rectPath: () => rectPath -}); -var SPACES = " \n\v\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029"; -var PATH_COMMAND = new RegExp("([a-z])[" + SPACES + ",]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[" + SPACES + "]*,?[" + SPACES + "]*)+)", "ig"); -var PATH_VALUES = new RegExp("(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[" + SPACES + "]*,?[" + SPACES + "]*", "ig"); -var parsePathString = function(pathString) { - if (!pathString) { - return null; - } - if (is_array_default(pathString)) { - return pathString; - } - var paramCounts = { - a: 7, - c: 6, - o: 2, - h: 1, - l: 2, - m: 2, - r: 4, - q: 4, - s: 4, - t: 2, - v: 1, - u: 3, - z: 0 - }; - var data3 = []; - String(pathString).replace(PATH_COMMAND, function(a4, b10, c5) { - var params = []; - var name = b10.toLowerCase(); - c5.replace(PATH_VALUES, function(a5, b11) { - b11 && params.push(+b11); - }); - if (name === "m" && params.length > 2) { - data3.push([b10].concat(params.splice(0, 2))); - name = "l"; - b10 = b10 === "m" ? "l" : "L"; - } - if (name === "o" && params.length === 1) { - data3.push([b10, params[0]]); - } - if (name === "r") { - data3.push([b10].concat(params)); - } else { - while (params.length >= paramCounts[name]) { - data3.push([b10].concat(params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - } - return pathString; - }); - return data3; -}; -var catmullRomToBezier = function(crp, z3) { - var d3 = []; - for (var i4 = 0, iLen = crp.length; iLen - 2 * !z3 > i4; i4 += 2) { - var p4 = [ - { - x: +crp[i4 - 2], - y: +crp[i4 - 1] - }, - { - x: +crp[i4], - y: +crp[i4 + 1] - }, - { - x: +crp[i4 + 2], - y: +crp[i4 + 3] - }, - { - x: +crp[i4 + 4], - y: +crp[i4 + 5] - } - ]; - if (z3) { - if (!i4) { - p4[0] = { - x: +crp[iLen - 2], - y: +crp[iLen - 1] - }; - } else if (iLen - 4 === i4) { - p4[3] = { - x: +crp[0], - y: +crp[1] - }; - } else if (iLen - 2 === i4) { - p4[2] = { - x: +crp[0], - y: +crp[1] - }; - p4[3] = { - x: +crp[2], - y: +crp[3] - }; - } - } else { - if (iLen - 4 === i4) { - p4[3] = p4[2]; - } else if (!i4) { - p4[0] = { - x: +crp[i4], - y: +crp[i4 + 1] - }; - } - } - d3.push([ - "C", - (-p4[0].x + 6 * p4[1].x + p4[2].x) / 6, - (-p4[0].y + 6 * p4[1].y + p4[2].y) / 6, - (p4[1].x + 6 * p4[2].x - p4[3].x) / 6, - (p4[1].y + 6 * p4[2].y - p4[3].y) / 6, - p4[2].x, - p4[2].y - ]); - } - return d3; -}; -var ellipsePath = function(x6, y5, rx, ry, a4) { - var res = []; - if (a4 === null && ry === null) { - ry = rx; - } - x6 = +x6; - y5 = +y5; - rx = +rx; - ry = +ry; - if (a4 !== null) { - var rad = Math.PI / 180; - var x1 = x6 + rx * Math.cos(-ry * rad); - var x22 = x6 + rx * Math.cos(-a4 * rad); - var y1 = y5 + rx * Math.sin(-ry * rad); - var y22 = y5 + rx * Math.sin(-a4 * rad); - res = [ - ["M", x1, y1], - ["A", rx, rx, 0, +(a4 - ry > 180), 0, x22, y22] - ]; - } else { - res = [["M", x6, y5], ["m", 0, -ry], ["a", rx, ry, 0, 1, 1, 0, 2 * ry], ["a", rx, ry, 0, 1, 1, 0, -2 * ry], ["z"]]; - } - return res; -}; -var pathToAbsolute = function(pathArray) { - pathArray = parsePathString(pathArray); - if (!pathArray || !pathArray.length) { - return [["M", 0, 0]]; - } - var res = []; - var x6 = 0; - var y5 = 0; - var mx = 0; - var my = 0; - var start = 0; - var pa0; - var dots; - if (pathArray[0][0] === "M") { - x6 = +pathArray[0][1]; - y5 = +pathArray[0][2]; - mx = x6; - my = y5; - start++; - res[0] = ["M", x6, y5]; - } - var crz = pathArray.length === 3 && pathArray[0][0] === "M" && pathArray[1][0].toUpperCase() === "R" && pathArray[2][0].toUpperCase() === "Z"; - for (var r4 = void 0, pa = void 0, i4 = start, ii = pathArray.length; i4 < ii; i4++) { - res.push(r4 = []); - pa = pathArray[i4]; - pa0 = pa[0]; - if (pa0 !== pa0.toUpperCase()) { - r4[0] = pa0.toUpperCase(); - switch (r4[0]) { - case "A": - r4[1] = pa[1]; - r4[2] = pa[2]; - r4[3] = pa[3]; - r4[4] = pa[4]; - r4[5] = pa[5]; - r4[6] = +pa[6] + x6; - r4[7] = +pa[7] + y5; - break; - case "V": - r4[1] = +pa[1] + y5; - break; - case "H": - r4[1] = +pa[1] + x6; - break; - case "R": - dots = [x6, y5].concat(pa.slice(1)); - for (var j4 = 2, jj = dots.length; j4 < jj; j4++) { - dots[j4] = +dots[j4] + x6; - dots[++j4] = +dots[j4] + y5; - } - res.pop(); - res = res.concat(catmullRomToBezier(dots, crz)); - break; - case "O": - res.pop(); - dots = ellipsePath(x6, y5, pa[1], pa[2]); - dots.push(dots[0]); - res = res.concat(dots); - break; - case "U": - res.pop(); - res = res.concat(ellipsePath(x6, y5, pa[1], pa[2], pa[3])); - r4 = ["U"].concat(res[res.length - 1].slice(-2)); - break; - case "M": - mx = +pa[1] + x6; - my = +pa[2] + y5; - break; - default: - for (var j4 = 1, jj = pa.length; j4 < jj; j4++) { - r4[j4] = +pa[j4] + (j4 % 2 ? x6 : y5); - } - } - } else if (pa0 === "R") { - dots = [x6, y5].concat(pa.slice(1)); - res.pop(); - res = res.concat(catmullRomToBezier(dots, crz)); - r4 = ["R"].concat(pa.slice(-2)); - } else if (pa0 === "O") { - res.pop(); - dots = ellipsePath(x6, y5, pa[1], pa[2]); - dots.push(dots[0]); - res = res.concat(dots); - } else if (pa0 === "U") { - res.pop(); - res = res.concat(ellipsePath(x6, y5, pa[1], pa[2], pa[3])); - r4 = ["U"].concat(res[res.length - 1].slice(-2)); - } else { - for (var k4 = 0, kk = pa.length; k4 < kk; k4++) { - r4[k4] = pa[k4]; - } - } - pa0 = pa0.toUpperCase(); - if (pa0 !== "O") { - switch (r4[0]) { - case "Z": - x6 = +mx; - y5 = +my; - break; - case "H": - x6 = r4[1]; - break; - case "V": - y5 = r4[1]; - break; - case "M": - mx = r4[r4.length - 2]; - my = r4[r4.length - 1]; - break; - default: - x6 = r4[r4.length - 2]; - y5 = r4[r4.length - 1]; - } - } - } - return res; -}; -var l2c = function(x1, y1, x22, y22) { - return [x1, y1, x22, y22, x22, y22]; -}; -var q2c = function(x1, y1, ax, ay, x22, y22) { - var _13 = 1 / 3; - var _23 = 2 / 3; - return [_13 * x1 + _23 * ax, _13 * y1 + _23 * ay, _13 * x22 + _23 * ax, _13 * y22 + _23 * ay, x22, y22]; -}; -var a2c = function(x1, y1, rx, ry, angle3, large_arc_flag, sweep_flag, x22, y22, recursive) { - if (rx === ry) { - rx += 1; - } - var _120 = Math.PI * 120 / 180; - var rad = Math.PI / 180 * (+angle3 || 0); - var res = []; - var xy; - var f1; - var f22; - var cx; - var cy; - var rotate8 = function(x7, y6, rad2) { - var X2 = x7 * Math.cos(rad2) - y6 * Math.sin(rad2); - var Y2 = x7 * Math.sin(rad2) + y6 * Math.cos(rad2); - return { - x: X2, - y: Y2 - }; - }; - if (!recursive) { - xy = rotate8(x1, y1, -rad); - x1 = xy.x; - y1 = xy.y; - xy = rotate8(x22, y22, -rad); - x22 = xy.x; - y22 = xy.y; - if (x1 === x22 && y1 === y22) { - x22 += 1; - y22 += 1; - } - var x6 = (x1 - x22) / 2; - var y5 = (y1 - y22) / 2; - var h3 = x6 * x6 / (rx * rx) + y5 * y5 / (ry * ry); - if (h3 > 1) { - h3 = Math.sqrt(h3); - rx = h3 * rx; - ry = h3 * ry; - } - var rx2 = rx * rx; - var ry2 = ry * ry; - var k4 = (large_arc_flag === sweep_flag ? -1 : 1) * Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y5 * y5 - ry2 * x6 * x6) / (rx2 * y5 * y5 + ry2 * x6 * x6))); - cx = k4 * rx * y5 / ry + (x1 + x22) / 2; - cy = k4 * -ry * x6 / rx + (y1 + y22) / 2; - f1 = Math.asin(((y1 - cy) / ry).toFixed(9)); - f22 = Math.asin(((y22 - cy) / ry).toFixed(9)); - f1 = x1 < cx ? Math.PI - f1 : f1; - f22 = x22 < cx ? Math.PI - f22 : f22; - f1 < 0 && (f1 = Math.PI * 2 + f1); - f22 < 0 && (f22 = Math.PI * 2 + f22); - if (sweep_flag && f1 > f22) { - f1 = f1 - Math.PI * 2; - } - if (!sweep_flag && f22 > f1) { - f22 = f22 - Math.PI * 2; - } - } else { - f1 = recursive[0]; - f22 = recursive[1]; - cx = recursive[2]; - cy = recursive[3]; - } - var df = f22 - f1; - if (Math.abs(df) > _120) { - var f2old = f22; - var x2old = x22; - var y2old = y22; - f22 = f1 + _120 * (sweep_flag && f22 > f1 ? 1 : -1); - x22 = cx + rx * Math.cos(f22); - y22 = cy + ry * Math.sin(f22); - res = a2c(x22, y22, rx, ry, angle3, 0, sweep_flag, x2old, y2old, [f22, f2old, cx, cy]); - } - df = f22 - f1; - var c1 = Math.cos(f1); - var s1 = Math.sin(f1); - var c22 = Math.cos(f22); - var s22 = Math.sin(f22); - var t4 = Math.tan(df / 4); - var hx = 4 / 3 * rx * t4; - var hy = 4 / 3 * ry * t4; - var m1 = [x1, y1]; - var m22 = [x1 + hx * s1, y1 - hy * c1]; - var m32 = [x22 + hx * s22, y22 - hy * c22]; - var m4 = [x22, y22]; - m22[0] = 2 * m1[0] - m22[0]; - m22[1] = 2 * m1[1] - m22[1]; - if (recursive) { - return [m22, m32, m4].concat(res); - } - res = [m22, m32, m4].concat(res).join().split(","); - var newres = []; - for (var i4 = 0, ii = res.length; i4 < ii; i4++) { - newres[i4] = i4 % 2 ? rotate8(res[i4 - 1], res[i4], rad).y : rotate8(res[i4], res[i4 + 1], rad).x; - } - return newres; -}; -var pathToCurve = function(path, path2) { - var p4 = pathToAbsolute(path); - var p22 = path2 && pathToAbsolute(path2); - var attrs = { - x: 0, - y: 0, - bx: 0, - by: 0, - X: 0, - Y: 0, - qx: null, - qy: null - }; - var attrs2 = { - x: 0, - y: 0, - bx: 0, - by: 0, - X: 0, - Y: 0, - qx: null, - qy: null - }; - var pcoms1 = []; - var pcoms2 = []; - var pfirst = ""; - var pcom = ""; - var ii; - var processPath = function(path3, d3, pcom2) { - var nx; - var ny; - if (!path3) { - return ["C", d3.x, d3.y, d3.x, d3.y, d3.x, d3.y]; - } - !(path3[0] in { - T: 1, - Q: 1 - }) && (d3.qx = d3.qy = null); - switch (path3[0]) { - case "M": - d3.X = path3[1]; - d3.Y = path3[2]; - break; - case "A": - path3 = ["C"].concat(a2c.apply(0, [d3.x, d3.y].concat(path3.slice(1)))); - break; - case "S": - if (pcom2 === "C" || pcom2 === "S") { - nx = d3.x * 2 - d3.bx; - ny = d3.y * 2 - d3.by; - } else { - nx = d3.x; - ny = d3.y; - } - path3 = ["C", nx, ny].concat(path3.slice(1)); - break; - case "T": - if (pcom2 === "Q" || pcom2 === "T") { - d3.qx = d3.x * 2 - d3.qx; - d3.qy = d3.y * 2 - d3.qy; - } else { - d3.qx = d3.x; - d3.qy = d3.y; - } - path3 = ["C"].concat(q2c(d3.x, d3.y, d3.qx, d3.qy, path3[1], path3[2])); - break; - case "Q": - d3.qx = path3[1]; - d3.qy = path3[2]; - path3 = ["C"].concat(q2c(d3.x, d3.y, path3[1], path3[2], path3[3], path3[4])); - break; - case "L": - path3 = ["C"].concat(l2c(d3.x, d3.y, path3[1], path3[2])); - break; - case "H": - path3 = ["C"].concat(l2c(d3.x, d3.y, path3[1], d3.y)); - break; - case "V": - path3 = ["C"].concat(l2c(d3.x, d3.y, d3.x, path3[1])); - break; - case "Z": - path3 = ["C"].concat(l2c(d3.x, d3.y, d3.X, d3.Y)); - break; - default: - break; - } - return path3; - }; - var fixArc = function(pp, i5) { - if (pp[i5].length > 7) { - pp[i5].shift(); - var pi2 = pp[i5]; - while (pi2.length) { - pcoms1[i5] = "A"; - p22 && (pcoms2[i5] = "A"); - pp.splice(i5++, 0, ["C"].concat(pi2.splice(0, 6))); - } - pp.splice(i5, 1); - ii = Math.max(p4.length, p22 && p22.length || 0); - } - }; - var fixM = function(path1, path22, a1, a22, i5) { - if (path1 && path22 && path1[i5][0] === "M" && path22[i5][0] !== "M") { - path22.splice(i5, 0, ["M", a22.x, a22.y]); - a1.bx = 0; - a1.by = 0; - a1.x = path1[i5][1]; - a1.y = path1[i5][2]; - ii = Math.max(p4.length, p22 && p22.length || 0); - } - }; - ii = Math.max(p4.length, p22 && p22.length || 0); - for (var i4 = 0; i4 < ii; i4++) { - p4[i4] && (pfirst = p4[i4][0]); - if (pfirst !== "C") { - pcoms1[i4] = pfirst; - i4 && (pcom = pcoms1[i4 - 1]); - } - p4[i4] = processPath(p4[i4], attrs, pcom); - if (pcoms1[i4] !== "A" && pfirst === "C") - pcoms1[i4] = "C"; - fixArc(p4, i4); - if (p22) { - p22[i4] && (pfirst = p22[i4][0]); - if (pfirst !== "C") { - pcoms2[i4] = pfirst; - i4 && (pcom = pcoms2[i4 - 1]); - } - p22[i4] = processPath(p22[i4], attrs2, pcom); - if (pcoms2[i4] !== "A" && pfirst === "C") { - pcoms2[i4] = "C"; - } - fixArc(p22, i4); - } - fixM(p4, p22, attrs, attrs2, i4); - fixM(p22, p4, attrs2, attrs, i4); - var seg = p4[i4]; - var seg2 = p22 && p22[i4]; - var seglen = seg.length; - var seg2len = p22 && seg2.length; - attrs.x = seg[seglen - 2]; - attrs.y = seg[seglen - 1]; - attrs.bx = parseFloat(seg[seglen - 4]) || attrs.x; - attrs.by = parseFloat(seg[seglen - 3]) || attrs.y; - attrs2.bx = p22 && (parseFloat(seg2[seg2len - 4]) || attrs2.x); - attrs2.by = p22 && (parseFloat(seg2[seg2len - 3]) || attrs2.y); - attrs2.x = p22 && seg2[seg2len - 2]; - attrs2.y = p22 && seg2[seg2len - 1]; - } - return p22 ? [p4, p22] : p4; -}; -var p2s = /,?([a-z]),?/gi; -var parsePathArray = function(path) { - return path.join(",").replace(p2s, "$1"); -}; -var base3 = function(t4, p1, p22, p32, p4) { - var t1 = -3 * p1 + 9 * p22 - 9 * p32 + 3 * p4; - var t22 = t4 * t1 + 6 * p1 - 12 * p22 + 6 * p32; - return t4 * t22 - 3 * p1 + 3 * p22; -}; -var bezlen = function(x1, y1, x22, y22, x32, y32, x42, y42, z3) { - if (z3 === null) { - z3 = 1; - } - z3 = z3 > 1 ? 1 : z3 < 0 ? 0 : z3; - var z22 = z3 / 2; - var n3 = 12; - var Tvalues = [ - -0.1252, - 0.1252, - -0.3678, - 0.3678, - -0.5873, - 0.5873, - -0.7699, - 0.7699, - -0.9041, - 0.9041, - -0.9816, - 0.9816 - ]; - var Cvalues = [0.2491, 0.2491, 0.2335, 0.2335, 0.2032, 0.2032, 0.1601, 0.1601, 0.1069, 0.1069, 0.0472, 0.0472]; - var sum = 0; - for (var i4 = 0; i4 < n3; i4++) { - var ct = z22 * Tvalues[i4] + z22; - var xbase = base3(ct, x1, x22, x32, x42); - var ybase = base3(ct, y1, y22, y32, y42); - var comb = xbase * xbase + ybase * ybase; - sum += Cvalues[i4] * Math.sqrt(comb); - } - return z22 * sum; -}; -var curveDim = function(x0, y0, x1, y1, x22, y22, x32, y32) { - var tvalues = []; - var bounds = [[], []]; - var a4; - var b10; - var c5; - var t4; - for (var i4 = 0; i4 < 2; ++i4) { - if (i4 === 0) { - b10 = 6 * x0 - 12 * x1 + 6 * x22; - a4 = -3 * x0 + 9 * x1 - 9 * x22 + 3 * x32; - c5 = 3 * x1 - 3 * x0; - } else { - b10 = 6 * y0 - 12 * y1 + 6 * y22; - a4 = -3 * y0 + 9 * y1 - 9 * y22 + 3 * y32; - c5 = 3 * y1 - 3 * y0; - } - if (Math.abs(a4) < 1e-12) { - if (Math.abs(b10) < 1e-12) { - continue; - } - t4 = -c5 / b10; - if (t4 > 0 && t4 < 1) { - tvalues.push(t4); - } - continue; - } - var b2ac = b10 * b10 - 4 * c5 * a4; - var sqrtb2ac = Math.sqrt(b2ac); - if (b2ac < 0) { - continue; - } - var t1 = (-b10 + sqrtb2ac) / (2 * a4); - if (t1 > 0 && t1 < 1) { - tvalues.push(t1); - } - var t22 = (-b10 - sqrtb2ac) / (2 * a4); - if (t22 > 0 && t22 < 1) { - tvalues.push(t22); - } - } - var j4 = tvalues.length; - var jlen = j4; - var mt; - while (j4--) { - t4 = tvalues[j4]; - mt = 1 - t4; - bounds[0][j4] = mt * mt * mt * x0 + 3 * mt * mt * t4 * x1 + 3 * mt * t4 * t4 * x22 + t4 * t4 * t4 * x32; - bounds[1][j4] = mt * mt * mt * y0 + 3 * mt * mt * t4 * y1 + 3 * mt * t4 * t4 * y22 + t4 * t4 * t4 * y32; - } - bounds[0][jlen] = x0; - bounds[1][jlen] = y0; - bounds[0][jlen + 1] = x32; - bounds[1][jlen + 1] = y32; - bounds[0].length = bounds[1].length = jlen + 2; - return { - min: { - x: Math.min.apply(0, bounds[0]), - y: Math.min.apply(0, bounds[1]) - }, - max: { - x: Math.max.apply(0, bounds[0]), - y: Math.max.apply(0, bounds[1]) - } - }; -}; -var intersect = function(x1, y1, x22, y22, x32, y32, x42, y42) { - if (Math.max(x1, x22) < Math.min(x32, x42) || Math.min(x1, x22) > Math.max(x32, x42) || Math.max(y1, y22) < Math.min(y32, y42) || Math.min(y1, y22) > Math.max(y32, y42)) { - return; - } - var nx = (x1 * y22 - y1 * x22) * (x32 - x42) - (x1 - x22) * (x32 * y42 - y32 * x42); - var ny = (x1 * y22 - y1 * x22) * (y32 - y42) - (y1 - y22) * (x32 * y42 - y32 * x42); - var denominator = (x1 - x22) * (y32 - y42) - (y1 - y22) * (x32 - x42); - if (!denominator) { - return; - } - var px = nx / denominator; - var py = ny / denominator; - var px2 = +px.toFixed(2); - var py2 = +py.toFixed(2); - if (px2 < +Math.min(x1, x22).toFixed(2) || px2 > +Math.max(x1, x22).toFixed(2) || px2 < +Math.min(x32, x42).toFixed(2) || px2 > +Math.max(x32, x42).toFixed(2) || py2 < +Math.min(y1, y22).toFixed(2) || py2 > +Math.max(y1, y22).toFixed(2) || py2 < +Math.min(y32, y42).toFixed(2) || py2 > +Math.max(y32, y42).toFixed(2)) { - return; - } - return { - x: px, - y: py - }; -}; -var isPointInsideBBox = function(bbox, x6, y5) { - return x6 >= bbox.x && x6 <= bbox.x + bbox.width && y5 >= bbox.y && y5 <= bbox.y + bbox.height; -}; -var rectPath = function(x6, y5, w4, h3, r4) { - if (r4) { - return [ - ["M", +x6 + +r4, y5], - ["l", w4 - r4 * 2, 0], - ["a", r4, r4, 0, 0, 1, r4, r4], - ["l", 0, h3 - r4 * 2], - ["a", r4, r4, 0, 0, 1, -r4, r4], - ["l", r4 * 2 - w4, 0], - ["a", r4, r4, 0, 0, 1, -r4, -r4], - ["l", 0, r4 * 2 - h3], - ["a", r4, r4, 0, 0, 1, r4, -r4], - ["z"] - ]; - } - var res = [["M", x6, y5], ["l", w4, 0], ["l", 0, h3], ["l", -w4, 0], ["z"]]; - res.parsePathArray = parsePathArray; - return res; -}; -var box = function(x6, y5, width2, height) { - if (x6 === null) { - x6 = y5 = width2 = height = 0; - } - if (y5 === null) { - y5 = x6.y; - width2 = x6.width; - height = x6.height; - x6 = x6.x; - } - return { - x: x6, - y: y5, - width: width2, - w: width2, - height, - h: height, - x2: x6 + width2, - y2: y5 + height, - cx: x6 + width2 / 2, - cy: y5 + height / 2, - r1: Math.min(width2, height) / 2, - r2: Math.max(width2, height) / 2, - r0: Math.sqrt(width2 * width2 + height * height) / 2, - path: rectPath(x6, y5, width2, height), - vb: [x6, y5, width2, height].join(" ") - }; -}; -var isBBoxIntersect = function(bbox1, bbox2) { - bbox1 = box(bbox1); - bbox2 = box(bbox2); - return isPointInsideBBox(bbox2, bbox1.x, bbox1.y) || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y) || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2) || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2) || isPointInsideBBox(bbox1, bbox2.x, bbox2.y) || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y) || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2) || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2) || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x) && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y); -}; -var bezierBBox = function(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) { - if (!is_array_default(p1x)) { - p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y]; - } - var bbox = curveDim.apply(null, p1x); - return box(bbox.min.x, bbox.min.y, bbox.max.x - bbox.min.x, bbox.max.y - bbox.min.y); -}; -var findDotsAtSegment = function(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t4) { - var t1 = 1 - t4; - var t13 = Math.pow(t1, 3); - var t12 = Math.pow(t1, 2); - var t22 = t4 * t4; - var t32 = t22 * t4; - var x6 = t13 * p1x + t12 * 3 * t4 * c1x + t1 * 3 * t4 * t4 * c2x + t32 * p2x; - var y5 = t13 * p1y + t12 * 3 * t4 * c1y + t1 * 3 * t4 * t4 * c2y + t32 * p2y; - var mx = p1x + 2 * t4 * (c1x - p1x) + t22 * (c2x - 2 * c1x + p1x); - var my = p1y + 2 * t4 * (c1y - p1y) + t22 * (c2y - 2 * c1y + p1y); - var nx = c1x + 2 * t4 * (c2x - c1x) + t22 * (p2x - 2 * c2x + c1x); - var ny = c1y + 2 * t4 * (c2y - c1y) + t22 * (p2y - 2 * c2y + c1y); - var ax = t1 * p1x + t4 * c1x; - var ay = t1 * p1y + t4 * c1y; - var cx = t1 * c2x + t4 * p2x; - var cy = t1 * c2y + t4 * p2y; - var alpha = 90 - Math.atan2(mx - nx, my - ny) * 180 / Math.PI; - return { - x: x6, - y: y5, - m: { - x: mx, - y: my - }, - n: { - x: nx, - y: ny - }, - start: { - x: ax, - y: ay - }, - end: { - x: cx, - y: cy - }, - alpha - }; -}; -var interHelper = function(bez1, bez2, justCount) { - var bbox1 = bezierBBox(bez1); - var bbox2 = bezierBBox(bez2); - if (!isBBoxIntersect(bbox1, bbox2)) { - return justCount ? 0 : []; - } - var l1 = bezlen.apply(0, bez1); - var l22 = bezlen.apply(0, bez2); - var n1 = ~~(l1 / 8); - var n22 = ~~(l22 / 8); - var dots1 = []; - var dots2 = []; - var xy = {}; - var res = justCount ? 0 : []; - for (var i4 = 0; i4 < n1 + 1; i4++) { - var d3 = findDotsAtSegment.apply(0, bez1.concat(i4 / n1)); - dots1.push({ - x: d3.x, - y: d3.y, - t: i4 / n1 - }); - } - for (var i4 = 0; i4 < n22 + 1; i4++) { - var d3 = findDotsAtSegment.apply(0, bez2.concat(i4 / n22)); - dots2.push({ - x: d3.x, - y: d3.y, - t: i4 / n22 - }); - } - for (var i4 = 0; i4 < n1; i4++) { - for (var j4 = 0; j4 < n22; j4++) { - var di = dots1[i4]; - var di1 = dots1[i4 + 1]; - var dj = dots2[j4]; - var dj1 = dots2[j4 + 1]; - var ci = Math.abs(di1.x - di.x) < 1e-3 ? "y" : "x"; - var cj = Math.abs(dj1.x - dj.x) < 1e-3 ? "y" : "x"; - var is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y); - if (is) { - if (xy[is.x.toFixed(4)] === is.y.toFixed(4)) { - continue; - } - xy[is.x.toFixed(4)] = is.y.toFixed(4); - var t1 = di.t + Math.abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t); - var t22 = dj.t + Math.abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t); - if (t1 >= 0 && t1 <= 1 && t22 >= 0 && t22 <= 1) { - if (justCount) { - res += 1; - } else { - res.push({ - x: is.x, - y: is.y, - t1, - t2: t22 - }); - } - } - } - } - } - return res; -}; -var interPathHelper = function(path1, path2, justCount) { - path1 = pathToCurve(path1); - path2 = pathToCurve(path2); - var x1; - var y1; - var x22; - var y22; - var x1m; - var y1m; - var x2m; - var y2m; - var bez1; - var bez2; - var res = justCount ? 0 : []; - for (var i4 = 0, ii = path1.length; i4 < ii; i4++) { - var pi2 = path1[i4]; - if (pi2[0] === "M") { - x1 = x1m = pi2[1]; - y1 = y1m = pi2[2]; - } else { - if (pi2[0] === "C") { - bez1 = [x1, y1].concat(pi2.slice(1)); - x1 = bez1[6]; - y1 = bez1[7]; - } else { - bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m]; - x1 = x1m; - y1 = y1m; - } - for (var j4 = 0, jj = path2.length; j4 < jj; j4++) { - var pj = path2[j4]; - if (pj[0] === "M") { - x22 = x2m = pj[1]; - y22 = y2m = pj[2]; - } else { - if (pj[0] === "C") { - bez2 = [x22, y22].concat(pj.slice(1)); - x22 = bez2[6]; - y22 = bez2[7]; - } else { - bez2 = [x22, y22, x22, y22, x2m, y2m, x2m, y2m]; - x22 = x2m; - y22 = y2m; - } - var intr = interHelper(bez1, bez2, justCount); - if (justCount) { - res += intr; - } else { - for (var k4 = 0, kk = intr.length; k4 < kk; k4++) { - intr[k4].segment1 = i4; - intr[k4].segment2 = j4; - intr[k4].bez1 = bez1; - intr[k4].bez2 = bez2; - } - res = res.concat(intr); - } - } - } - } - } - return res; -}; -var intersection = function(path1, path2) { - return interPathHelper(path1, path2); -}; -function decasteljau(points, t4) { - var left2 = []; - var right2 = []; - function recurse(points2, t5) { - if (points2.length === 1) { - left2.push(points2[0]); - right2.push(points2[0]); - } else { - var middlePoints = []; - for (var i4 = 0; i4 < points2.length - 1; i4++) { - if (i4 === 0) { - left2.push(points2[0]); - } - if (i4 === points2.length - 2) { - right2.push(points2[i4 + 1]); - } - middlePoints[i4] = [ - (1 - t5) * points2[i4][0] + t5 * points2[i4 + 1][0], - (1 - t5) * points2[i4][1] + t5 * points2[i4 + 1][1] - ]; - } - recurse(middlePoints, t5); - } - } - if (points.length) { - recurse(points, t4); - } - return { left: left2, right: right2.reverse() }; -} -function splitCurve(start, end2, count2) { - var points = [[start[1], start[2]]]; - count2 = count2 || 2; - var segments = []; - if (end2[0] === "A") { - points.push(end2[6]); - points.push(end2[7]); - } else if (end2[0] === "C") { - points.push([end2[1], end2[2]]); - points.push([end2[3], end2[4]]); - points.push([end2[5], end2[6]]); - } else if (end2[0] === "S" || end2[0] === "Q") { - points.push([end2[1], end2[2]]); - points.push([end2[3], end2[4]]); - } else { - points.push([end2[1], end2[2]]); - } - var leftSegments = points; - var t4 = 1 / count2; - for (var i4 = 0; i4 < count2 - 1; i4++) { - var rt = t4 / (1 - t4 * i4); - var split = decasteljau(leftSegments, rt); - segments.push(split.left); - leftSegments = split.right; - } - segments.push(leftSegments); - var result = segments.map(function(segment) { - var cmd = []; - if (segment.length === 4) { - cmd.push("C"); - cmd = cmd.concat(segment[2]); - } - if (segment.length >= 3) { - if (segment.length === 3) { - cmd.push("Q"); - } - cmd = cmd.concat(segment[1]); - } - if (segment.length === 2) { - cmd.push("L"); - } - cmd = cmd.concat(segment[segment.length - 1]); - return cmd; - }); - return result; -} -var splitSegment = function(start, end2, count2) { - if (count2 === 1) { - return [[].concat(start)]; - } - var segments = []; - if (end2[0] === "L" || end2[0] === "C" || end2[0] === "Q") { - segments = segments.concat(splitCurve(start, end2, count2)); - } else { - var temp = [].concat(start); - if (temp[0] === "M") { - temp[0] = "L"; - } - for (var i4 = 0; i4 <= count2 - 1; i4++) { - segments.push(temp); - } - } - return segments; -}; -var fillPath = function(source, target) { - if (source.length === 1) { - return source; - } - var sourceLen = source.length - 1; - var targetLen = target.length - 1; - var ratio = sourceLen / targetLen; - var segmentsToFill = []; - if (source.length === 1 && source[0][0] === "M") { - for (var i4 = 0; i4 < targetLen - sourceLen; i4++) { - source.push(source[0]); - } - return source; - } - for (var i4 = 0; i4 < targetLen; i4++) { - var index2 = Math.floor(ratio * i4); - segmentsToFill[index2] = (segmentsToFill[index2] || 0) + 1; - } - var filled = segmentsToFill.reduce(function(filled2, count2, i5) { - if (i5 === sourceLen) { - return filled2.concat(source[sourceLen]); - } - return filled2.concat(splitSegment(source[i5], source[i5 + 1], count2)); - }, []); - filled.unshift(source[0]); - if (target[targetLen] === "Z" || target[targetLen] === "z") { - filled.push("Z"); - } - return filled; -}; -var isEqual2 = function(obj1, obj2) { - if (obj1.length !== obj2.length) { - return false; - } - var result = true; - each_default(obj1, function(item, i4) { - if (item !== obj2[i4]) { - result = false; - return false; - } - }); - return result; -}; -function getMinDiff(del, add8, modify) { - var type2 = null; - var min7 = modify; - if (add8 < min7) { - min7 = add8; - type2 = "add"; - } - if (del < min7) { - min7 = del; - type2 = "del"; - } - return { - type: type2, - min: min7 - }; -} -var levenshteinDistance = function(source, target) { - var sourceLen = source.length; - var targetLen = target.length; - var sourceSegment; - var targetSegment; - var temp = 0; - if (sourceLen === 0 || targetLen === 0) { - return null; - } - var dist4 = []; - for (var i4 = 0; i4 <= sourceLen; i4++) { - dist4[i4] = []; - dist4[i4][0] = { min: i4 }; - } - for (var j4 = 0; j4 <= targetLen; j4++) { - dist4[0][j4] = { min: j4 }; - } - for (var i4 = 1; i4 <= sourceLen; i4++) { - sourceSegment = source[i4 - 1]; - for (var j4 = 1; j4 <= targetLen; j4++) { - targetSegment = target[j4 - 1]; - if (isEqual2(sourceSegment, targetSegment)) { - temp = 0; - } else { - temp = 1; - } - var del = dist4[i4 - 1][j4].min + 1; - var add8 = dist4[i4][j4 - 1].min + 1; - var modify = dist4[i4 - 1][j4 - 1].min + temp; - dist4[i4][j4] = getMinDiff(del, add8, modify); - } - } - return dist4; -}; -var fillPathByDiff = function(source, target) { - var diffMatrix = levenshteinDistance(source, target); - var sourceLen = source.length; - var targetLen = target.length; - var changes = []; - var index2 = 1; - var minPos = 1; - if (diffMatrix[sourceLen][targetLen].min !== sourceLen) { - for (var i4 = 1; i4 <= sourceLen; i4++) { - var min7 = diffMatrix[i4][i4].min; - minPos = i4; - for (var j4 = index2; j4 <= targetLen; j4++) { - if (diffMatrix[i4][j4].min < min7) { - min7 = diffMatrix[i4][j4].min; - minPos = j4; - } - } - index2 = minPos; - if (diffMatrix[i4][index2].type) { - changes.push({ index: i4 - 1, type: diffMatrix[i4][index2].type }); - } - } - for (var i4 = changes.length - 1; i4 >= 0; i4--) { - index2 = changes[i4].index; - if (changes[i4].type === "add") { - source.splice(index2, 0, [].concat(source[index2])); - } else { - source.splice(index2, 1); - } - } - } - sourceLen = source.length; - var diff2 = targetLen - sourceLen; - if (sourceLen < targetLen) { - for (var i4 = 0; i4 < diff2; i4++) { - if (source[sourceLen - 1][0] === "z" || source[sourceLen - 1][0] === "Z") { - source.splice(sourceLen - 2, 0, source[sourceLen - 2]); - } else { - source.push(source[sourceLen - 1]); - } - sourceLen += 1; - } - } - return source; -}; -function _splitPoints(points, former, count2) { - var result = [].concat(points); - var index2; - var t4 = 1 / (count2 + 1); - var formerEnd = _getSegmentPoints(former)[0]; - for (var i4 = 1; i4 <= count2; i4++) { - t4 *= i4; - index2 = Math.floor(points.length * t4); - if (index2 === 0) { - result.unshift([formerEnd[0] * t4 + points[index2][0] * (1 - t4), formerEnd[1] * t4 + points[index2][1] * (1 - t4)]); - } else { - result.splice(index2, 0, [ - formerEnd[0] * t4 + points[index2][0] * (1 - t4), - formerEnd[1] * t4 + points[index2][1] * (1 - t4) - ]); - } - } - return result; -} -function _getSegmentPoints(segment) { - var points = []; - switch (segment[0]) { - case "M": - points.push([segment[1], segment[2]]); - break; - case "L": - points.push([segment[1], segment[2]]); - break; - case "A": - points.push([segment[6], segment[7]]); - break; - case "Q": - points.push([segment[3], segment[4]]); - points.push([segment[1], segment[2]]); - break; - case "T": - points.push([segment[1], segment[2]]); - break; - case "C": - points.push([segment[5], segment[6]]); - points.push([segment[1], segment[2]]); - points.push([segment[3], segment[4]]); - break; - case "S": - points.push([segment[3], segment[4]]); - points.push([segment[1], segment[2]]); - break; - case "H": - points.push([segment[1], segment[1]]); - break; - case "V": - points.push([segment[1], segment[1]]); - break; - default: - } - return points; -} -var formatPath = function(fromPath, toPath) { - if (fromPath.length <= 1) { - return fromPath; - } - var points; - for (var i4 = 0; i4 < toPath.length; i4++) { - if (fromPath[i4][0] !== toPath[i4][0]) { - points = _getSegmentPoints(fromPath[i4]); - switch (toPath[i4][0]) { - case "M": - fromPath[i4] = ["M"].concat(points[0]); - break; - case "L": - fromPath[i4] = ["L"].concat(points[0]); - break; - case "A": - fromPath[i4] = [].concat(toPath[i4]); - fromPath[i4][6] = points[0][0]; - fromPath[i4][7] = points[0][1]; - break; - case "Q": - if (points.length < 2) { - if (i4 > 0) { - points = _splitPoints(points, fromPath[i4 - 1], 1); - } else { - fromPath[i4] = toPath[i4]; - break; - } - } - fromPath[i4] = ["Q"].concat(points.reduce(function(arr, i5) { - return arr.concat(i5); - }, [])); - break; - case "T": - fromPath[i4] = ["T"].concat(points[0]); - break; - case "C": - if (points.length < 3) { - if (i4 > 0) { - points = _splitPoints(points, fromPath[i4 - 1], 2); - } else { - fromPath[i4] = toPath[i4]; - break; - } - } - fromPath[i4] = ["C"].concat(points.reduce(function(arr, i5) { - return arr.concat(i5); - }, [])); - break; - case "S": - if (points.length < 2) { - if (i4 > 0) { - points = _splitPoints(points, fromPath[i4 - 1], 1); - } else { - fromPath[i4] = toPath[i4]; - break; - } - } - fromPath[i4] = ["S"].concat(points.reduce(function(arr, i5) { - return arr.concat(i5); - }, [])); - break; - default: - fromPath[i4] = toPath[i4]; - } - } - } - return fromPath; -}; - -// node_modules/@antv/g-base/esm/event/graph-event.js -var GraphEvent = function() { - function GraphEvent2(type2, event) { - this.bubbles = true; - this.target = null; - this.currentTarget = null; - this.delegateTarget = null; - this.delegateObject = null; - this.defaultPrevented = false; - this.propagationStopped = false; - this.shape = null; - this.fromShape = null; - this.toShape = null; - this.propagationPath = []; - this.type = type2; - this.name = type2; - this.originalEvent = event; - this.timeStamp = event.timeStamp; - } - GraphEvent2.prototype.preventDefault = function() { - this.defaultPrevented = true; - if (this.originalEvent.preventDefault) { - this.originalEvent.preventDefault(); - } - }; - GraphEvent2.prototype.stopPropagation = function() { - this.propagationStopped = true; - }; - GraphEvent2.prototype.toString = function() { - var type2 = this.type; - return "[Event (type=" + type2 + ")]"; - }; - GraphEvent2.prototype.save = function() { - }; - GraphEvent2.prototype.restore = function() { - }; - return GraphEvent2; -}(); -var graph_event_default = GraphEvent; - -// node_modules/@antv/g-base/esm/util/util.js -function removeFromArray(arr, obj) { - var index2 = arr.indexOf(obj); - if (index2 !== -1) { - arr.splice(index2, 1); - } -} -var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined"; -function isParent(container2, shape) { - if (container2.isCanvas()) { - return true; - } - var parent = shape.getParent(); - var isParent2 = false; - while (parent) { - if (parent === container2) { - isParent2 = true; - break; - } - parent = parent.getParent(); - } - return isParent2; -} -function isAllowCapture(element) { - return element.cfg.visible && element.cfg.capture; -} - -// node_modules/@antv/g-base/esm/abstract/base.js -var Base2 = function(_super) { - __extends(Base4, _super); - function Base4(cfg) { - var _this = _super.call(this) || this; - _this.destroyed = false; - var defaultCfg2 = _this.getDefaultCfg(); - _this.cfg = mix(defaultCfg2, cfg); - return _this; - } - Base4.prototype.getDefaultCfg = function() { - return {}; - }; - Base4.prototype.get = function(name) { - return this.cfg[name]; - }; - Base4.prototype.set = function(name, value2) { - this.cfg[name] = value2; - }; - Base4.prototype.destroy = function() { - this.cfg = { - destroyed: true - }; - this.off(); - this.destroyed = true; - }; - return Base4; -}(esm_default); -var base_default2 = Base2; - -// node_modules/detect-browser/es/index.js -var __spreadArray2 = function(to, from, pack2) { - if (pack2 || arguments.length === 2) - for (var i4 = 0, l4 = from.length, ar; i4 < l4; i4++) { - if (ar || !(i4 in from)) { - if (!ar) - ar = Array.prototype.slice.call(from, 0, i4); - ar[i4] = from[i4]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -var BrowserInfo = function() { - function BrowserInfo2(name, version3, os) { - this.name = name; - this.version = version3; - this.os = os; - this.type = "browser"; - } - return BrowserInfo2; -}(); -var NodeInfo = function() { - function NodeInfo2(version3) { - this.version = version3; - this.type = "node"; - this.name = "node"; - this.os = process.platform; - } - return NodeInfo2; -}(); -var SearchBotDeviceInfo = function() { - function SearchBotDeviceInfo2(name, version3, os, bot) { - this.name = name; - this.version = version3; - this.os = os; - this.bot = bot; - this.type = "bot-device"; - } - return SearchBotDeviceInfo2; -}(); -var BotInfo = function() { - function BotInfo2() { - this.type = "bot"; - this.bot = true; - this.name = "bot"; - this.version = null; - this.os = null; - } - return BotInfo2; -}(); -var ReactNativeInfo = function() { - function ReactNativeInfo2() { - this.type = "react-native"; - this.name = "react-native"; - this.version = null; - this.os = null; - } - return ReactNativeInfo2; -}(); -var SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/; -var SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/; -var REQUIRED_VERSION_PARTS = 3; -var userAgentRules = [ - ["aol", /AOLShield\/([0-9\._]+)/], - ["edge", /Edge\/([0-9\._]+)/], - ["edge-ios", /EdgiOS\/([0-9\._]+)/], - ["yandexbrowser", /YaBrowser\/([0-9\._]+)/], - ["kakaotalk", /KAKAOTALK\s([0-9\.]+)/], - ["samsung", /SamsungBrowser\/([0-9\.]+)/], - ["silk", /\bSilk\/([0-9._-]+)\b/], - ["miui", /MiuiBrowser\/([0-9\.]+)$/], - ["beaker", /BeakerBrowser\/([0-9\.]+)/], - ["edge-chromium", /EdgA?\/([0-9\.]+)/], - [ - "chromium-webview", - /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/ - ], - ["chrome", /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], - ["phantomjs", /PhantomJS\/([0-9\.]+)(:?\s|$)/], - ["crios", /CriOS\/([0-9\.]+)(:?\s|$)/], - ["firefox", /Firefox\/([0-9\.]+)(?:\s|$)/], - ["fxios", /FxiOS\/([0-9\.]+)/], - ["opera-mini", /Opera Mini.*Version\/([0-9\.]+)/], - ["opera", /Opera\/([0-9\.]+)(?:\s|$)/], - ["opera", /OPR\/([0-9\.]+)(:?\s|$)/], - ["pie", /^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/], - ["pie", /^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/], - ["netfront", /^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/], - ["ie", /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], - ["ie", /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], - ["ie", /MSIE\s(7\.0)/], - ["bb10", /BB10;\sTouch.*Version\/([0-9\.]+)/], - ["android", /Android\s([0-9\.]+)/], - ["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/], - ["safari", /Version\/([0-9\._]+).*Safari/], - ["facebook", /FB[AS]V\/([0-9\.]+)/], - ["instagram", /Instagram\s([0-9\.]+)/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Mobile/], - ["ios-webview", /AppleWebKit\/([0-9\.]+).*Gecko\)$/], - ["curl", /^curl\/([0-9\.]+)$/], - ["searchbot", SEARCHBOX_UA_REGEX] -]; -var operatingSystemRules = [ - ["iOS", /iP(hone|od|ad)/], - ["Android OS", /Android/], - ["BlackBerry OS", /BlackBerry|BB10/], - ["Windows Mobile", /IEMobile/], - ["Amazon OS", /Kindle/], - ["Windows 3.11", /Win16/], - ["Windows 95", /(Windows 95)|(Win95)|(Windows_95)/], - ["Windows 98", /(Windows 98)|(Win98)/], - ["Windows 2000", /(Windows NT 5.0)|(Windows 2000)/], - ["Windows XP", /(Windows NT 5.1)|(Windows XP)/], - ["Windows Server 2003", /(Windows NT 5.2)/], - ["Windows Vista", /(Windows NT 6.0)/], - ["Windows 7", /(Windows NT 6.1)/], - ["Windows 8", /(Windows NT 6.2)/], - ["Windows 8.1", /(Windows NT 6.3)/], - ["Windows 10", /(Windows NT 10.0)/], - ["Windows ME", /Windows ME/], - ["Windows CE", /Windows CE|WinCE|Microsoft Pocket Internet Explorer/], - ["Open BSD", /OpenBSD/], - ["Sun OS", /SunOS/], - ["Chrome OS", /CrOS/], - ["Linux", /(Linux)|(X11)/], - ["Mac OS", /(Mac_PowerPC)|(Macintosh)/], - ["QNX", /QNX/], - ["BeOS", /BeOS/], - ["OS/2", /OS\/2/] -]; -function detect(userAgent) { - if (!!userAgent) { - return parseUserAgent(userAgent); - } - if (typeof document === "undefined" && typeof navigator !== "undefined" && navigator.product === "ReactNative") { - return new ReactNativeInfo(); - } - if (typeof navigator !== "undefined") { - return parseUserAgent(navigator.userAgent); - } - return getNodeVersion(); -} -function matchUserAgent(ua) { - return ua !== "" && userAgentRules.reduce(function(matched, _a6) { - var browser2 = _a6[0], regex = _a6[1]; - if (matched) { - return matched; - } - var uaMatch = regex.exec(ua); - return !!uaMatch && [browser2, uaMatch]; - }, false); -} -function parseUserAgent(ua) { - var matchedRule = matchUserAgent(ua); - if (!matchedRule) { - return null; - } - var name = matchedRule[0], match = matchedRule[1]; - if (name === "searchbot") { - return new BotInfo(); - } - var versionParts = match[1] && match[1].split(".").join("_").split("_").slice(0, 3); - if (versionParts) { - if (versionParts.length < REQUIRED_VERSION_PARTS) { - versionParts = __spreadArray2(__spreadArray2([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true); - } - } else { - versionParts = []; - } - var version3 = versionParts.join("."); - var os = detectOS(ua); - var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua); - if (searchBotMatch && searchBotMatch[1]) { - return new SearchBotDeviceInfo(name, version3, os, searchBotMatch[1]); - } - return new BrowserInfo(name, version3, os); -} -function detectOS(ua) { - for (var ii = 0, count2 = operatingSystemRules.length; ii < count2; ii++) { - var _a6 = operatingSystemRules[ii], os = _a6[0], regex = _a6[1]; - var match = regex.exec(ua); - if (match) { - return os; - } - } - return null; -} -function getNodeVersion() { - var isNode = typeof process !== "undefined" && process.version; - return isNode ? new NodeInfo(process.version.slice(1)) : null; -} -function createVersionParts(count2) { - var output = []; - for (var ii = 0; ii < count2; ii++) { - output.push("0"); - } - return output; -} - -// node_modules/gl-matrix/esm/common.js -var EPSILON = 1e-6; -var ARRAY_TYPE = typeof Float32Array !== "undefined" ? Float32Array : Array; -var RANDOM = Math.random; -var degree = Math.PI / 180; -if (!Math.hypot) - Math.hypot = function() { - var y5 = 0, i4 = arguments.length; - while (i4--) { - y5 += arguments[i4] * arguments[i4]; - } - return Math.sqrt(y5); - }; - -// node_modules/gl-matrix/esm/mat3.js -var mat3_exports = {}; -__export(mat3_exports, { - add: () => add, - adjoint: () => adjoint, - clone: () => clone2, - copy: () => copy, - create: () => create, - determinant: () => determinant, - equals: () => equals, - exactEquals: () => exactEquals, - frob: () => frob, - fromMat2d: () => fromMat2d, - fromMat4: () => fromMat4, - fromQuat: () => fromQuat, - fromRotation: () => fromRotation, - fromScaling: () => fromScaling, - fromTranslation: () => fromTranslation, - fromValues: () => fromValues, - identity: () => identity2, - invert: () => invert, - mul: () => mul, - multiply: () => multiply, - multiplyScalar: () => multiplyScalar, - multiplyScalarAndAdd: () => multiplyScalarAndAdd, - normalFromMat4: () => normalFromMat4, - projection: () => projection, - rotate: () => rotate, - scale: () => scale, - set: () => set2, - str: () => str2, - sub: () => sub, - subtract: () => subtract, - translate: () => translate, - transpose: () => transpose -}); -function create() { - var out = new ARRAY_TYPE(9); - if (ARRAY_TYPE != Float32Array) { - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[5] = 0; - out[6] = 0; - out[7] = 0; - } - out[0] = 1; - out[4] = 1; - out[8] = 1; - return out; -} -function fromMat4(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[4]; - out[4] = a4[5]; - out[5] = a4[6]; - out[6] = a4[8]; - out[7] = a4[9]; - out[8] = a4[10]; - return out; -} -function clone2(a4) { - var out = new ARRAY_TYPE(9); - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[3]; - out[4] = a4[4]; - out[5] = a4[5]; - out[6] = a4[6]; - out[7] = a4[7]; - out[8] = a4[8]; - return out; -} -function copy(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[3]; - out[4] = a4[4]; - out[5] = a4[5]; - out[6] = a4[6]; - out[7] = a4[7]; - out[8] = a4[8]; - return out; -} -function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) { - var out = new ARRAY_TYPE(9); - out[0] = m00; - out[1] = m01; - out[2] = m02; - out[3] = m10; - out[4] = m11; - out[5] = m12; - out[6] = m20; - out[7] = m21; - out[8] = m22; - return out; -} -function set2(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) { - out[0] = m00; - out[1] = m01; - out[2] = m02; - out[3] = m10; - out[4] = m11; - out[5] = m12; - out[6] = m20; - out[7] = m21; - out[8] = m22; - return out; -} -function identity2(out) { - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 1; - out[5] = 0; - out[6] = 0; - out[7] = 0; - out[8] = 1; - return out; -} -function transpose(out, a4) { - if (out === a4) { - var a01 = a4[1], a02 = a4[2], a12 = a4[5]; - out[1] = a4[3]; - out[2] = a4[6]; - out[3] = a01; - out[5] = a4[7]; - out[6] = a02; - out[7] = a12; - } else { - out[0] = a4[0]; - out[1] = a4[3]; - out[2] = a4[6]; - out[3] = a4[1]; - out[4] = a4[4]; - out[5] = a4[7]; - out[6] = a4[2]; - out[7] = a4[5]; - out[8] = a4[8]; - } - return out; -} -function invert(out, a4) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2]; - var a10 = a4[3], a11 = a4[4], a12 = a4[5]; - var a20 = a4[6], a21 = a4[7], a22 = a4[8]; - var b01 = a22 * a11 - a12 * a21; - var b11 = -a22 * a10 + a12 * a20; - var b21 = a21 * a10 - a11 * a20; - var det = a00 * b01 + a01 * b11 + a02 * b21; - if (!det) { - return null; - } - det = 1 / det; - out[0] = b01 * det; - out[1] = (-a22 * a01 + a02 * a21) * det; - out[2] = (a12 * a01 - a02 * a11) * det; - out[3] = b11 * det; - out[4] = (a22 * a00 - a02 * a20) * det; - out[5] = (-a12 * a00 + a02 * a10) * det; - out[6] = b21 * det; - out[7] = (-a21 * a00 + a01 * a20) * det; - out[8] = (a11 * a00 - a01 * a10) * det; - return out; -} -function adjoint(out, a4) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2]; - var a10 = a4[3], a11 = a4[4], a12 = a4[5]; - var a20 = a4[6], a21 = a4[7], a22 = a4[8]; - out[0] = a11 * a22 - a12 * a21; - out[1] = a02 * a21 - a01 * a22; - out[2] = a01 * a12 - a02 * a11; - out[3] = a12 * a20 - a10 * a22; - out[4] = a00 * a22 - a02 * a20; - out[5] = a02 * a10 - a00 * a12; - out[6] = a10 * a21 - a11 * a20; - out[7] = a01 * a20 - a00 * a21; - out[8] = a00 * a11 - a01 * a10; - return out; -} -function determinant(a4) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2]; - var a10 = a4[3], a11 = a4[4], a12 = a4[5]; - var a20 = a4[6], a21 = a4[7], a22 = a4[8]; - return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20); -} -function multiply(out, a4, b10) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2]; - var a10 = a4[3], a11 = a4[4], a12 = a4[5]; - var a20 = a4[6], a21 = a4[7], a22 = a4[8]; - var b00 = b10[0], b01 = b10[1], b02 = b10[2]; - var b102 = b10[3], b11 = b10[4], b12 = b10[5]; - var b20 = b10[6], b21 = b10[7], b222 = b10[8]; - out[0] = b00 * a00 + b01 * a10 + b02 * a20; - out[1] = b00 * a01 + b01 * a11 + b02 * a21; - out[2] = b00 * a02 + b01 * a12 + b02 * a22; - out[3] = b102 * a00 + b11 * a10 + b12 * a20; - out[4] = b102 * a01 + b11 * a11 + b12 * a21; - out[5] = b102 * a02 + b11 * a12 + b12 * a22; - out[6] = b20 * a00 + b21 * a10 + b222 * a20; - out[7] = b20 * a01 + b21 * a11 + b222 * a21; - out[8] = b20 * a02 + b21 * a12 + b222 * a22; - return out; -} -function translate(out, a4, v3) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2], a10 = a4[3], a11 = a4[4], a12 = a4[5], a20 = a4[6], a21 = a4[7], a22 = a4[8], x6 = v3[0], y5 = v3[1]; - out[0] = a00; - out[1] = a01; - out[2] = a02; - out[3] = a10; - out[4] = a11; - out[5] = a12; - out[6] = x6 * a00 + y5 * a10 + a20; - out[7] = x6 * a01 + y5 * a11 + a21; - out[8] = x6 * a02 + y5 * a12 + a22; - return out; -} -function rotate(out, a4, rad) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2], a10 = a4[3], a11 = a4[4], a12 = a4[5], a20 = a4[6], a21 = a4[7], a22 = a4[8], s4 = Math.sin(rad), c5 = Math.cos(rad); - out[0] = c5 * a00 + s4 * a10; - out[1] = c5 * a01 + s4 * a11; - out[2] = c5 * a02 + s4 * a12; - out[3] = c5 * a10 - s4 * a00; - out[4] = c5 * a11 - s4 * a01; - out[5] = c5 * a12 - s4 * a02; - out[6] = a20; - out[7] = a21; - out[8] = a22; - return out; -} -function scale(out, a4, v3) { - var x6 = v3[0], y5 = v3[1]; - out[0] = x6 * a4[0]; - out[1] = x6 * a4[1]; - out[2] = x6 * a4[2]; - out[3] = y5 * a4[3]; - out[4] = y5 * a4[4]; - out[5] = y5 * a4[5]; - out[6] = a4[6]; - out[7] = a4[7]; - out[8] = a4[8]; - return out; -} -function fromTranslation(out, v3) { - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 1; - out[5] = 0; - out[6] = v3[0]; - out[7] = v3[1]; - out[8] = 1; - return out; -} -function fromRotation(out, rad) { - var s4 = Math.sin(rad), c5 = Math.cos(rad); - out[0] = c5; - out[1] = s4; - out[2] = 0; - out[3] = -s4; - out[4] = c5; - out[5] = 0; - out[6] = 0; - out[7] = 0; - out[8] = 1; - return out; -} -function fromScaling(out, v3) { - out[0] = v3[0]; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = v3[1]; - out[5] = 0; - out[6] = 0; - out[7] = 0; - out[8] = 1; - return out; -} -function fromMat2d(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = 0; - out[3] = a4[2]; - out[4] = a4[3]; - out[5] = 0; - out[6] = a4[4]; - out[7] = a4[5]; - out[8] = 1; - return out; -} -function fromQuat(out, q4) { - var x6 = q4[0], y5 = q4[1], z3 = q4[2], w4 = q4[3]; - var x22 = x6 + x6; - var y22 = y5 + y5; - var z22 = z3 + z3; - var xx = x6 * x22; - var yx = y5 * x22; - var yy = y5 * y22; - var zx = z3 * x22; - var zy = z3 * y22; - var zz = z3 * z22; - var wx = w4 * x22; - var wy = w4 * y22; - var wz = w4 * z22; - out[0] = 1 - yy - zz; - out[3] = yx - wz; - out[6] = zx + wy; - out[1] = yx + wz; - out[4] = 1 - xx - zz; - out[7] = zy - wx; - out[2] = zx - wy; - out[5] = zy + wx; - out[8] = 1 - xx - yy; - return out; -} -function normalFromMat4(out, a4) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2], a03 = a4[3]; - var a10 = a4[4], a11 = a4[5], a12 = a4[6], a13 = a4[7]; - var a20 = a4[8], a21 = a4[9], a22 = a4[10], a23 = a4[11]; - var a30 = a4[12], a31 = a4[13], a32 = a4[14], a33 = a4[15]; - var b00 = a00 * a11 - a01 * a10; - var b01 = a00 * a12 - a02 * a10; - var b02 = a00 * a13 - a03 * a10; - var b03 = a01 * a12 - a02 * a11; - var b04 = a01 * a13 - a03 * a11; - var b05 = a02 * a13 - a03 * a12; - var b06 = a20 * a31 - a21 * a30; - var b07 = a20 * a32 - a22 * a30; - var b08 = a20 * a33 - a23 * a30; - var b09 = a21 * a32 - a22 * a31; - var b10 = a21 * a33 - a23 * a31; - var b11 = a22 * a33 - a23 * a32; - var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; - if (!det) { - return null; - } - det = 1 / det; - out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; - out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det; - out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det; - out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det; - out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det; - out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det; - out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det; - out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det; - out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det; - return out; -} -function projection(out, width2, height) { - out[0] = 2 / width2; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = -2 / height; - out[5] = 0; - out[6] = -1; - out[7] = 1; - out[8] = 1; - return out; -} -function str2(a4) { - return "mat3(" + a4[0] + ", " + a4[1] + ", " + a4[2] + ", " + a4[3] + ", " + a4[4] + ", " + a4[5] + ", " + a4[6] + ", " + a4[7] + ", " + a4[8] + ")"; -} -function frob(a4) { - return Math.hypot(a4[0], a4[1], a4[2], a4[3], a4[4], a4[5], a4[6], a4[7], a4[8]); -} -function add(out, a4, b10) { - out[0] = a4[0] + b10[0]; - out[1] = a4[1] + b10[1]; - out[2] = a4[2] + b10[2]; - out[3] = a4[3] + b10[3]; - out[4] = a4[4] + b10[4]; - out[5] = a4[5] + b10[5]; - out[6] = a4[6] + b10[6]; - out[7] = a4[7] + b10[7]; - out[8] = a4[8] + b10[8]; - return out; -} -function subtract(out, a4, b10) { - out[0] = a4[0] - b10[0]; - out[1] = a4[1] - b10[1]; - out[2] = a4[2] - b10[2]; - out[3] = a4[3] - b10[3]; - out[4] = a4[4] - b10[4]; - out[5] = a4[5] - b10[5]; - out[6] = a4[6] - b10[6]; - out[7] = a4[7] - b10[7]; - out[8] = a4[8] - b10[8]; - return out; -} -function multiplyScalar(out, a4, b10) { - out[0] = a4[0] * b10; - out[1] = a4[1] * b10; - out[2] = a4[2] * b10; - out[3] = a4[3] * b10; - out[4] = a4[4] * b10; - out[5] = a4[5] * b10; - out[6] = a4[6] * b10; - out[7] = a4[7] * b10; - out[8] = a4[8] * b10; - return out; -} -function multiplyScalarAndAdd(out, a4, b10, scale12) { - out[0] = a4[0] + b10[0] * scale12; - out[1] = a4[1] + b10[1] * scale12; - out[2] = a4[2] + b10[2] * scale12; - out[3] = a4[3] + b10[3] * scale12; - out[4] = a4[4] + b10[4] * scale12; - out[5] = a4[5] + b10[5] * scale12; - out[6] = a4[6] + b10[6] * scale12; - out[7] = a4[7] + b10[7] * scale12; - out[8] = a4[8] + b10[8] * scale12; - return out; -} -function exactEquals(a4, b10) { - return a4[0] === b10[0] && a4[1] === b10[1] && a4[2] === b10[2] && a4[3] === b10[3] && a4[4] === b10[4] && a4[5] === b10[5] && a4[6] === b10[6] && a4[7] === b10[7] && a4[8] === b10[8]; -} -function equals(a4, b10) { - var a0 = a4[0], a1 = a4[1], a22 = a4[2], a32 = a4[3], a42 = a4[4], a5 = a4[5], a6 = a4[6], a7 = a4[7], a8 = a4[8]; - var b02 = b10[0], b12 = b10[1], b23 = b10[2], b32 = b10[3], b42 = b10[4], b52 = b10[5], b62 = b10[6], b72 = b10[7], b82 = b10[8]; - return Math.abs(a0 - b02) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b02)) && Math.abs(a1 - b12) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b12)) && Math.abs(a22 - b23) <= EPSILON * Math.max(1, Math.abs(a22), Math.abs(b23)) && Math.abs(a32 - b32) <= EPSILON * Math.max(1, Math.abs(a32), Math.abs(b32)) && Math.abs(a42 - b42) <= EPSILON * Math.max(1, Math.abs(a42), Math.abs(b42)) && Math.abs(a5 - b52) <= EPSILON * Math.max(1, Math.abs(a5), Math.abs(b52)) && Math.abs(a6 - b62) <= EPSILON * Math.max(1, Math.abs(a6), Math.abs(b62)) && Math.abs(a7 - b72) <= EPSILON * Math.max(1, Math.abs(a7), Math.abs(b72)) && Math.abs(a8 - b82) <= EPSILON * Math.max(1, Math.abs(a8), Math.abs(b82)); -} -var mul = multiply; -var sub = subtract; - -// node_modules/gl-matrix/esm/mat4.js -var mat4_exports = {}; -__export(mat4_exports, { - add: () => add2, - adjoint: () => adjoint2, - clone: () => clone3, - copy: () => copy2, - create: () => create2, - determinant: () => determinant2, - equals: () => equals2, - exactEquals: () => exactEquals2, - frob: () => frob2, - fromQuat: () => fromQuat3, - fromQuat2: () => fromQuat2, - fromRotation: () => fromRotation2, - fromRotationTranslation: () => fromRotationTranslation, - fromRotationTranslationScale: () => fromRotationTranslationScale, - fromRotationTranslationScaleOrigin: () => fromRotationTranslationScaleOrigin, - fromScaling: () => fromScaling2, - fromTranslation: () => fromTranslation2, - fromValues: () => fromValues2, - fromXRotation: () => fromXRotation, - fromYRotation: () => fromYRotation, - fromZRotation: () => fromZRotation, - frustum: () => frustum, - getRotation: () => getRotation, - getScaling: () => getScaling, - getTranslation: () => getTranslation, - identity: () => identity3, - invert: () => invert2, - lookAt: () => lookAt, - mul: () => mul2, - multiply: () => multiply2, - multiplyScalar: () => multiplyScalar2, - multiplyScalarAndAdd: () => multiplyScalarAndAdd2, - ortho: () => ortho, - orthoNO: () => orthoNO, - orthoZO: () => orthoZO, - perspective: () => perspective, - perspectiveFromFieldOfView: () => perspectiveFromFieldOfView, - perspectiveNO: () => perspectiveNO, - perspectiveZO: () => perspectiveZO, - rotate: () => rotate2, - rotateX: () => rotateX, - rotateY: () => rotateY, - rotateZ: () => rotateZ, - scale: () => scale2, - set: () => set3, - str: () => str3, - sub: () => sub2, - subtract: () => subtract2, - targetTo: () => targetTo, - translate: () => translate2, - transpose: () => transpose2 -}); -function create2() { - var out = new ARRAY_TYPE(16); - if (ARRAY_TYPE != Float32Array) { - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - } - out[0] = 1; - out[5] = 1; - out[10] = 1; - out[15] = 1; - return out; -} -function clone3(a4) { - var out = new ARRAY_TYPE(16); - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[3]; - out[4] = a4[4]; - out[5] = a4[5]; - out[6] = a4[6]; - out[7] = a4[7]; - out[8] = a4[8]; - out[9] = a4[9]; - out[10] = a4[10]; - out[11] = a4[11]; - out[12] = a4[12]; - out[13] = a4[13]; - out[14] = a4[14]; - out[15] = a4[15]; - return out; -} -function copy2(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[3]; - out[4] = a4[4]; - out[5] = a4[5]; - out[6] = a4[6]; - out[7] = a4[7]; - out[8] = a4[8]; - out[9] = a4[9]; - out[10] = a4[10]; - out[11] = a4[11]; - out[12] = a4[12]; - out[13] = a4[13]; - out[14] = a4[14]; - out[15] = a4[15]; - return out; -} -function fromValues2(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) { - var out = new ARRAY_TYPE(16); - out[0] = m00; - out[1] = m01; - out[2] = m02; - out[3] = m03; - out[4] = m10; - out[5] = m11; - out[6] = m12; - out[7] = m13; - out[8] = m20; - out[9] = m21; - out[10] = m22; - out[11] = m23; - out[12] = m30; - out[13] = m31; - out[14] = m32; - out[15] = m33; - return out; -} -function set3(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) { - out[0] = m00; - out[1] = m01; - out[2] = m02; - out[3] = m03; - out[4] = m10; - out[5] = m11; - out[6] = m12; - out[7] = m13; - out[8] = m20; - out[9] = m21; - out[10] = m22; - out[11] = m23; - out[12] = m30; - out[13] = m31; - out[14] = m32; - out[15] = m33; - return out; -} -function identity3(out) { - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = 1; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[10] = 1; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - out[15] = 1; - return out; -} -function transpose2(out, a4) { - if (out === a4) { - var a01 = a4[1], a02 = a4[2], a03 = a4[3]; - var a12 = a4[6], a13 = a4[7]; - var a23 = a4[11]; - out[1] = a4[4]; - out[2] = a4[8]; - out[3] = a4[12]; - out[4] = a01; - out[6] = a4[9]; - out[7] = a4[13]; - out[8] = a02; - out[9] = a12; - out[11] = a4[14]; - out[12] = a03; - out[13] = a13; - out[14] = a23; - } else { - out[0] = a4[0]; - out[1] = a4[4]; - out[2] = a4[8]; - out[3] = a4[12]; - out[4] = a4[1]; - out[5] = a4[5]; - out[6] = a4[9]; - out[7] = a4[13]; - out[8] = a4[2]; - out[9] = a4[6]; - out[10] = a4[10]; - out[11] = a4[14]; - out[12] = a4[3]; - out[13] = a4[7]; - out[14] = a4[11]; - out[15] = a4[15]; - } - return out; -} -function invert2(out, a4) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2], a03 = a4[3]; - var a10 = a4[4], a11 = a4[5], a12 = a4[6], a13 = a4[7]; - var a20 = a4[8], a21 = a4[9], a22 = a4[10], a23 = a4[11]; - var a30 = a4[12], a31 = a4[13], a32 = a4[14], a33 = a4[15]; - var b00 = a00 * a11 - a01 * a10; - var b01 = a00 * a12 - a02 * a10; - var b02 = a00 * a13 - a03 * a10; - var b03 = a01 * a12 - a02 * a11; - var b04 = a01 * a13 - a03 * a11; - var b05 = a02 * a13 - a03 * a12; - var b06 = a20 * a31 - a21 * a30; - var b07 = a20 * a32 - a22 * a30; - var b08 = a20 * a33 - a23 * a30; - var b09 = a21 * a32 - a22 * a31; - var b10 = a21 * a33 - a23 * a31; - var b11 = a22 * a33 - a23 * a32; - var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; - if (!det) { - return null; - } - det = 1 / det; - out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; - out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det; - out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det; - out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det; - out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det; - out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det; - out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det; - out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det; - out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det; - out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det; - out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det; - out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det; - out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det; - out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det; - out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det; - out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det; - return out; -} -function adjoint2(out, a4) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2], a03 = a4[3]; - var a10 = a4[4], a11 = a4[5], a12 = a4[6], a13 = a4[7]; - var a20 = a4[8], a21 = a4[9], a22 = a4[10], a23 = a4[11]; - var a30 = a4[12], a31 = a4[13], a32 = a4[14], a33 = a4[15]; - out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22); - out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22)); - out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12); - out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12)); - out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22)); - out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22); - out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12)); - out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12); - out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21); - out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21)); - out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11); - out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11)); - out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21)); - out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21); - out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11)); - out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11); - return out; -} -function determinant2(a4) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2], a03 = a4[3]; - var a10 = a4[4], a11 = a4[5], a12 = a4[6], a13 = a4[7]; - var a20 = a4[8], a21 = a4[9], a22 = a4[10], a23 = a4[11]; - var a30 = a4[12], a31 = a4[13], a32 = a4[14], a33 = a4[15]; - var b00 = a00 * a11 - a01 * a10; - var b01 = a00 * a12 - a02 * a10; - var b02 = a00 * a13 - a03 * a10; - var b03 = a01 * a12 - a02 * a11; - var b04 = a01 * a13 - a03 * a11; - var b05 = a02 * a13 - a03 * a12; - var b06 = a20 * a31 - a21 * a30; - var b07 = a20 * a32 - a22 * a30; - var b08 = a20 * a33 - a23 * a30; - var b09 = a21 * a32 - a22 * a31; - var b10 = a21 * a33 - a23 * a31; - var b11 = a22 * a33 - a23 * a32; - return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; -} -function multiply2(out, a4, b10) { - var a00 = a4[0], a01 = a4[1], a02 = a4[2], a03 = a4[3]; - var a10 = a4[4], a11 = a4[5], a12 = a4[6], a13 = a4[7]; - var a20 = a4[8], a21 = a4[9], a22 = a4[10], a23 = a4[11]; - var a30 = a4[12], a31 = a4[13], a32 = a4[14], a33 = a4[15]; - var b02 = b10[0], b12 = b10[1], b23 = b10[2], b32 = b10[3]; - out[0] = b02 * a00 + b12 * a10 + b23 * a20 + b32 * a30; - out[1] = b02 * a01 + b12 * a11 + b23 * a21 + b32 * a31; - out[2] = b02 * a02 + b12 * a12 + b23 * a22 + b32 * a32; - out[3] = b02 * a03 + b12 * a13 + b23 * a23 + b32 * a33; - b02 = b10[4]; - b12 = b10[5]; - b23 = b10[6]; - b32 = b10[7]; - out[4] = b02 * a00 + b12 * a10 + b23 * a20 + b32 * a30; - out[5] = b02 * a01 + b12 * a11 + b23 * a21 + b32 * a31; - out[6] = b02 * a02 + b12 * a12 + b23 * a22 + b32 * a32; - out[7] = b02 * a03 + b12 * a13 + b23 * a23 + b32 * a33; - b02 = b10[8]; - b12 = b10[9]; - b23 = b10[10]; - b32 = b10[11]; - out[8] = b02 * a00 + b12 * a10 + b23 * a20 + b32 * a30; - out[9] = b02 * a01 + b12 * a11 + b23 * a21 + b32 * a31; - out[10] = b02 * a02 + b12 * a12 + b23 * a22 + b32 * a32; - out[11] = b02 * a03 + b12 * a13 + b23 * a23 + b32 * a33; - b02 = b10[12]; - b12 = b10[13]; - b23 = b10[14]; - b32 = b10[15]; - out[12] = b02 * a00 + b12 * a10 + b23 * a20 + b32 * a30; - out[13] = b02 * a01 + b12 * a11 + b23 * a21 + b32 * a31; - out[14] = b02 * a02 + b12 * a12 + b23 * a22 + b32 * a32; - out[15] = b02 * a03 + b12 * a13 + b23 * a23 + b32 * a33; - return out; -} -function translate2(out, a4, v3) { - var x6 = v3[0], y5 = v3[1], z3 = v3[2]; - var a00, a01, a02, a03; - var a10, a11, a12, a13; - var a20, a21, a22, a23; - if (a4 === out) { - out[12] = a4[0] * x6 + a4[4] * y5 + a4[8] * z3 + a4[12]; - out[13] = a4[1] * x6 + a4[5] * y5 + a4[9] * z3 + a4[13]; - out[14] = a4[2] * x6 + a4[6] * y5 + a4[10] * z3 + a4[14]; - out[15] = a4[3] * x6 + a4[7] * y5 + a4[11] * z3 + a4[15]; - } else { - a00 = a4[0]; - a01 = a4[1]; - a02 = a4[2]; - a03 = a4[3]; - a10 = a4[4]; - a11 = a4[5]; - a12 = a4[6]; - a13 = a4[7]; - a20 = a4[8]; - a21 = a4[9]; - a22 = a4[10]; - a23 = a4[11]; - out[0] = a00; - out[1] = a01; - out[2] = a02; - out[3] = a03; - out[4] = a10; - out[5] = a11; - out[6] = a12; - out[7] = a13; - out[8] = a20; - out[9] = a21; - out[10] = a22; - out[11] = a23; - out[12] = a00 * x6 + a10 * y5 + a20 * z3 + a4[12]; - out[13] = a01 * x6 + a11 * y5 + a21 * z3 + a4[13]; - out[14] = a02 * x6 + a12 * y5 + a22 * z3 + a4[14]; - out[15] = a03 * x6 + a13 * y5 + a23 * z3 + a4[15]; - } - return out; -} -function scale2(out, a4, v3) { - var x6 = v3[0], y5 = v3[1], z3 = v3[2]; - out[0] = a4[0] * x6; - out[1] = a4[1] * x6; - out[2] = a4[2] * x6; - out[3] = a4[3] * x6; - out[4] = a4[4] * y5; - out[5] = a4[5] * y5; - out[6] = a4[6] * y5; - out[7] = a4[7] * y5; - out[8] = a4[8] * z3; - out[9] = a4[9] * z3; - out[10] = a4[10] * z3; - out[11] = a4[11] * z3; - out[12] = a4[12]; - out[13] = a4[13]; - out[14] = a4[14]; - out[15] = a4[15]; - return out; -} -function rotate2(out, a4, rad, axis22) { - var x6 = axis22[0], y5 = axis22[1], z3 = axis22[2]; - var len5 = Math.hypot(x6, y5, z3); - var s4, c5, t4; - var a00, a01, a02, a03; - var a10, a11, a12, a13; - var a20, a21, a22, a23; - var b00, b01, b02; - var b10, b11, b12; - var b20, b21, b222; - if (len5 < EPSILON) { - return null; - } - len5 = 1 / len5; - x6 *= len5; - y5 *= len5; - z3 *= len5; - s4 = Math.sin(rad); - c5 = Math.cos(rad); - t4 = 1 - c5; - a00 = a4[0]; - a01 = a4[1]; - a02 = a4[2]; - a03 = a4[3]; - a10 = a4[4]; - a11 = a4[5]; - a12 = a4[6]; - a13 = a4[7]; - a20 = a4[8]; - a21 = a4[9]; - a22 = a4[10]; - a23 = a4[11]; - b00 = x6 * x6 * t4 + c5; - b01 = y5 * x6 * t4 + z3 * s4; - b02 = z3 * x6 * t4 - y5 * s4; - b10 = x6 * y5 * t4 - z3 * s4; - b11 = y5 * y5 * t4 + c5; - b12 = z3 * y5 * t4 + x6 * s4; - b20 = x6 * z3 * t4 + y5 * s4; - b21 = y5 * z3 * t4 - x6 * s4; - b222 = z3 * z3 * t4 + c5; - out[0] = a00 * b00 + a10 * b01 + a20 * b02; - out[1] = a01 * b00 + a11 * b01 + a21 * b02; - out[2] = a02 * b00 + a12 * b01 + a22 * b02; - out[3] = a03 * b00 + a13 * b01 + a23 * b02; - out[4] = a00 * b10 + a10 * b11 + a20 * b12; - out[5] = a01 * b10 + a11 * b11 + a21 * b12; - out[6] = a02 * b10 + a12 * b11 + a22 * b12; - out[7] = a03 * b10 + a13 * b11 + a23 * b12; - out[8] = a00 * b20 + a10 * b21 + a20 * b222; - out[9] = a01 * b20 + a11 * b21 + a21 * b222; - out[10] = a02 * b20 + a12 * b21 + a22 * b222; - out[11] = a03 * b20 + a13 * b21 + a23 * b222; - if (a4 !== out) { - out[12] = a4[12]; - out[13] = a4[13]; - out[14] = a4[14]; - out[15] = a4[15]; - } - return out; -} -function rotateX(out, a4, rad) { - var s4 = Math.sin(rad); - var c5 = Math.cos(rad); - var a10 = a4[4]; - var a11 = a4[5]; - var a12 = a4[6]; - var a13 = a4[7]; - var a20 = a4[8]; - var a21 = a4[9]; - var a22 = a4[10]; - var a23 = a4[11]; - if (a4 !== out) { - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[3]; - out[12] = a4[12]; - out[13] = a4[13]; - out[14] = a4[14]; - out[15] = a4[15]; - } - out[4] = a10 * c5 + a20 * s4; - out[5] = a11 * c5 + a21 * s4; - out[6] = a12 * c5 + a22 * s4; - out[7] = a13 * c5 + a23 * s4; - out[8] = a20 * c5 - a10 * s4; - out[9] = a21 * c5 - a11 * s4; - out[10] = a22 * c5 - a12 * s4; - out[11] = a23 * c5 - a13 * s4; - return out; -} -function rotateY(out, a4, rad) { - var s4 = Math.sin(rad); - var c5 = Math.cos(rad); - var a00 = a4[0]; - var a01 = a4[1]; - var a02 = a4[2]; - var a03 = a4[3]; - var a20 = a4[8]; - var a21 = a4[9]; - var a22 = a4[10]; - var a23 = a4[11]; - if (a4 !== out) { - out[4] = a4[4]; - out[5] = a4[5]; - out[6] = a4[6]; - out[7] = a4[7]; - out[12] = a4[12]; - out[13] = a4[13]; - out[14] = a4[14]; - out[15] = a4[15]; - } - out[0] = a00 * c5 - a20 * s4; - out[1] = a01 * c5 - a21 * s4; - out[2] = a02 * c5 - a22 * s4; - out[3] = a03 * c5 - a23 * s4; - out[8] = a00 * s4 + a20 * c5; - out[9] = a01 * s4 + a21 * c5; - out[10] = a02 * s4 + a22 * c5; - out[11] = a03 * s4 + a23 * c5; - return out; -} -function rotateZ(out, a4, rad) { - var s4 = Math.sin(rad); - var c5 = Math.cos(rad); - var a00 = a4[0]; - var a01 = a4[1]; - var a02 = a4[2]; - var a03 = a4[3]; - var a10 = a4[4]; - var a11 = a4[5]; - var a12 = a4[6]; - var a13 = a4[7]; - if (a4 !== out) { - out[8] = a4[8]; - out[9] = a4[9]; - out[10] = a4[10]; - out[11] = a4[11]; - out[12] = a4[12]; - out[13] = a4[13]; - out[14] = a4[14]; - out[15] = a4[15]; - } - out[0] = a00 * c5 + a10 * s4; - out[1] = a01 * c5 + a11 * s4; - out[2] = a02 * c5 + a12 * s4; - out[3] = a03 * c5 + a13 * s4; - out[4] = a10 * c5 - a00 * s4; - out[5] = a11 * c5 - a01 * s4; - out[6] = a12 * c5 - a02 * s4; - out[7] = a13 * c5 - a03 * s4; - return out; -} -function fromTranslation2(out, v3) { - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = 1; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[10] = 1; - out[11] = 0; - out[12] = v3[0]; - out[13] = v3[1]; - out[14] = v3[2]; - out[15] = 1; - return out; -} -function fromScaling2(out, v3) { - out[0] = v3[0]; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = v3[1]; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[10] = v3[2]; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - out[15] = 1; - return out; -} -function fromRotation2(out, rad, axis22) { - var x6 = axis22[0], y5 = axis22[1], z3 = axis22[2]; - var len5 = Math.hypot(x6, y5, z3); - var s4, c5, t4; - if (len5 < EPSILON) { - return null; - } - len5 = 1 / len5; - x6 *= len5; - y5 *= len5; - z3 *= len5; - s4 = Math.sin(rad); - c5 = Math.cos(rad); - t4 = 1 - c5; - out[0] = x6 * x6 * t4 + c5; - out[1] = y5 * x6 * t4 + z3 * s4; - out[2] = z3 * x6 * t4 - y5 * s4; - out[3] = 0; - out[4] = x6 * y5 * t4 - z3 * s4; - out[5] = y5 * y5 * t4 + c5; - out[6] = z3 * y5 * t4 + x6 * s4; - out[7] = 0; - out[8] = x6 * z3 * t4 + y5 * s4; - out[9] = y5 * z3 * t4 - x6 * s4; - out[10] = z3 * z3 * t4 + c5; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - out[15] = 1; - return out; -} -function fromXRotation(out, rad) { - var s4 = Math.sin(rad); - var c5 = Math.cos(rad); - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = c5; - out[6] = s4; - out[7] = 0; - out[8] = 0; - out[9] = -s4; - out[10] = c5; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - out[15] = 1; - return out; -} -function fromYRotation(out, rad) { - var s4 = Math.sin(rad); - var c5 = Math.cos(rad); - out[0] = c5; - out[1] = 0; - out[2] = -s4; - out[3] = 0; - out[4] = 0; - out[5] = 1; - out[6] = 0; - out[7] = 0; - out[8] = s4; - out[9] = 0; - out[10] = c5; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - out[15] = 1; - return out; -} -function fromZRotation(out, rad) { - var s4 = Math.sin(rad); - var c5 = Math.cos(rad); - out[0] = c5; - out[1] = s4; - out[2] = 0; - out[3] = 0; - out[4] = -s4; - out[5] = c5; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[10] = 1; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - out[15] = 1; - return out; -} -function fromRotationTranslation(out, q4, v3) { - var x6 = q4[0], y5 = q4[1], z3 = q4[2], w4 = q4[3]; - var x22 = x6 + x6; - var y22 = y5 + y5; - var z22 = z3 + z3; - var xx = x6 * x22; - var xy = x6 * y22; - var xz = x6 * z22; - var yy = y5 * y22; - var yz = y5 * z22; - var zz = z3 * z22; - var wx = w4 * x22; - var wy = w4 * y22; - var wz = w4 * z22; - out[0] = 1 - (yy + zz); - out[1] = xy + wz; - out[2] = xz - wy; - out[3] = 0; - out[4] = xy - wz; - out[5] = 1 - (xx + zz); - out[6] = yz + wx; - out[7] = 0; - out[8] = xz + wy; - out[9] = yz - wx; - out[10] = 1 - (xx + yy); - out[11] = 0; - out[12] = v3[0]; - out[13] = v3[1]; - out[14] = v3[2]; - out[15] = 1; - return out; -} -function fromQuat2(out, a4) { - var translation = new ARRAY_TYPE(3); - var bx = -a4[0], by = -a4[1], bz = -a4[2], bw = a4[3], ax = a4[4], ay = a4[5], az = a4[6], aw = a4[7]; - var magnitude = bx * bx + by * by + bz * bz + bw * bw; - if (magnitude > 0) { - translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude; - translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude; - translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude; - } else { - translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2; - translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2; - translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2; - } - fromRotationTranslation(out, a4, translation); - return out; -} -function getTranslation(out, mat) { - out[0] = mat[12]; - out[1] = mat[13]; - out[2] = mat[14]; - return out; -} -function getScaling(out, mat) { - var m11 = mat[0]; - var m12 = mat[1]; - var m13 = mat[2]; - var m21 = mat[4]; - var m22 = mat[5]; - var m23 = mat[6]; - var m31 = mat[8]; - var m32 = mat[9]; - var m33 = mat[10]; - out[0] = Math.hypot(m11, m12, m13); - out[1] = Math.hypot(m21, m22, m23); - out[2] = Math.hypot(m31, m32, m33); - return out; -} -function getRotation(out, mat) { - var scaling = new ARRAY_TYPE(3); - getScaling(scaling, mat); - var is1 = 1 / scaling[0]; - var is2 = 1 / scaling[1]; - var is3 = 1 / scaling[2]; - var sm11 = mat[0] * is1; - var sm12 = mat[1] * is2; - var sm13 = mat[2] * is3; - var sm21 = mat[4] * is1; - var sm22 = mat[5] * is2; - var sm23 = mat[6] * is3; - var sm31 = mat[8] * is1; - var sm32 = mat[9] * is2; - var sm33 = mat[10] * is3; - var trace = sm11 + sm22 + sm33; - var S3 = 0; - if (trace > 0) { - S3 = Math.sqrt(trace + 1) * 2; - out[3] = 0.25 * S3; - out[0] = (sm23 - sm32) / S3; - out[1] = (sm31 - sm13) / S3; - out[2] = (sm12 - sm21) / S3; - } else if (sm11 > sm22 && sm11 > sm33) { - S3 = Math.sqrt(1 + sm11 - sm22 - sm33) * 2; - out[3] = (sm23 - sm32) / S3; - out[0] = 0.25 * S3; - out[1] = (sm12 + sm21) / S3; - out[2] = (sm31 + sm13) / S3; - } else if (sm22 > sm33) { - S3 = Math.sqrt(1 + sm22 - sm11 - sm33) * 2; - out[3] = (sm31 - sm13) / S3; - out[0] = (sm12 + sm21) / S3; - out[1] = 0.25 * S3; - out[2] = (sm23 + sm32) / S3; - } else { - S3 = Math.sqrt(1 + sm33 - sm11 - sm22) * 2; - out[3] = (sm12 - sm21) / S3; - out[0] = (sm31 + sm13) / S3; - out[1] = (sm23 + sm32) / S3; - out[2] = 0.25 * S3; - } - return out; -} -function fromRotationTranslationScale(out, q4, v3, s4) { - var x6 = q4[0], y5 = q4[1], z3 = q4[2], w4 = q4[3]; - var x22 = x6 + x6; - var y22 = y5 + y5; - var z22 = z3 + z3; - var xx = x6 * x22; - var xy = x6 * y22; - var xz = x6 * z22; - var yy = y5 * y22; - var yz = y5 * z22; - var zz = z3 * z22; - var wx = w4 * x22; - var wy = w4 * y22; - var wz = w4 * z22; - var sx = s4[0]; - var sy = s4[1]; - var sz = s4[2]; - out[0] = (1 - (yy + zz)) * sx; - out[1] = (xy + wz) * sx; - out[2] = (xz - wy) * sx; - out[3] = 0; - out[4] = (xy - wz) * sy; - out[5] = (1 - (xx + zz)) * sy; - out[6] = (yz + wx) * sy; - out[7] = 0; - out[8] = (xz + wy) * sz; - out[9] = (yz - wx) * sz; - out[10] = (1 - (xx + yy)) * sz; - out[11] = 0; - out[12] = v3[0]; - out[13] = v3[1]; - out[14] = v3[2]; - out[15] = 1; - return out; -} -function fromRotationTranslationScaleOrigin(out, q4, v3, s4, o3) { - var x6 = q4[0], y5 = q4[1], z3 = q4[2], w4 = q4[3]; - var x22 = x6 + x6; - var y22 = y5 + y5; - var z22 = z3 + z3; - var xx = x6 * x22; - var xy = x6 * y22; - var xz = x6 * z22; - var yy = y5 * y22; - var yz = y5 * z22; - var zz = z3 * z22; - var wx = w4 * x22; - var wy = w4 * y22; - var wz = w4 * z22; - var sx = s4[0]; - var sy = s4[1]; - var sz = s4[2]; - var ox = o3[0]; - var oy = o3[1]; - var oz = o3[2]; - var out0 = (1 - (yy + zz)) * sx; - var out1 = (xy + wz) * sx; - var out2 = (xz - wy) * sx; - var out4 = (xy - wz) * sy; - var out5 = (1 - (xx + zz)) * sy; - var out6 = (yz + wx) * sy; - var out8 = (xz + wy) * sz; - var out9 = (yz - wx) * sz; - var out10 = (1 - (xx + yy)) * sz; - out[0] = out0; - out[1] = out1; - out[2] = out2; - out[3] = 0; - out[4] = out4; - out[5] = out5; - out[6] = out6; - out[7] = 0; - out[8] = out8; - out[9] = out9; - out[10] = out10; - out[11] = 0; - out[12] = v3[0] + ox - (out0 * ox + out4 * oy + out8 * oz); - out[13] = v3[1] + oy - (out1 * ox + out5 * oy + out9 * oz); - out[14] = v3[2] + oz - (out2 * ox + out6 * oy + out10 * oz); - out[15] = 1; - return out; -} -function fromQuat3(out, q4) { - var x6 = q4[0], y5 = q4[1], z3 = q4[2], w4 = q4[3]; - var x22 = x6 + x6; - var y22 = y5 + y5; - var z22 = z3 + z3; - var xx = x6 * x22; - var yx = y5 * x22; - var yy = y5 * y22; - var zx = z3 * x22; - var zy = z3 * y22; - var zz = z3 * z22; - var wx = w4 * x22; - var wy = w4 * y22; - var wz = w4 * z22; - out[0] = 1 - yy - zz; - out[1] = yx + wz; - out[2] = zx - wy; - out[3] = 0; - out[4] = yx - wz; - out[5] = 1 - xx - zz; - out[6] = zy + wx; - out[7] = 0; - out[8] = zx + wy; - out[9] = zy - wx; - out[10] = 1 - xx - yy; - out[11] = 0; - out[12] = 0; - out[13] = 0; - out[14] = 0; - out[15] = 1; - return out; -} -function frustum(out, left2, right2, bottom, top, near2, far) { - var rl = 1 / (right2 - left2); - var tb = 1 / (top - bottom); - var nf = 1 / (near2 - far); - out[0] = near2 * 2 * rl; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = near2 * 2 * tb; - out[6] = 0; - out[7] = 0; - out[8] = (right2 + left2) * rl; - out[9] = (top + bottom) * tb; - out[10] = (far + near2) * nf; - out[11] = -1; - out[12] = 0; - out[13] = 0; - out[14] = far * near2 * 2 * nf; - out[15] = 0; - return out; -} -function perspectiveNO(out, fovy, aspect, near2, far) { - var f3 = 1 / Math.tan(fovy / 2), nf; - out[0] = f3 / aspect; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = f3; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[11] = -1; - out[12] = 0; - out[13] = 0; - out[15] = 0; - if (far != null && far !== Infinity) { - nf = 1 / (near2 - far); - out[10] = (far + near2) * nf; - out[14] = 2 * far * near2 * nf; - } else { - out[10] = -1; - out[14] = -2 * near2; - } - return out; -} -var perspective = perspectiveNO; -function perspectiveZO(out, fovy, aspect, near2, far) { - var f3 = 1 / Math.tan(fovy / 2), nf; - out[0] = f3 / aspect; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = f3; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[11] = -1; - out[12] = 0; - out[13] = 0; - out[15] = 0; - if (far != null && far !== Infinity) { - nf = 1 / (near2 - far); - out[10] = far * nf; - out[14] = far * near2 * nf; - } else { - out[10] = -1; - out[14] = -near2; - } - return out; -} -function perspectiveFromFieldOfView(out, fov, near2, far) { - var upTan = Math.tan(fov.upDegrees * Math.PI / 180); - var downTan = Math.tan(fov.downDegrees * Math.PI / 180); - var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180); - var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180); - var xScale = 2 / (leftTan + rightTan); - var yScale = 2 / (upTan + downTan); - out[0] = xScale; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = yScale; - out[6] = 0; - out[7] = 0; - out[8] = -((leftTan - rightTan) * xScale * 0.5); - out[9] = (upTan - downTan) * yScale * 0.5; - out[10] = far / (near2 - far); - out[11] = -1; - out[12] = 0; - out[13] = 0; - out[14] = far * near2 / (near2 - far); - out[15] = 0; - return out; -} -function orthoNO(out, left2, right2, bottom, top, near2, far) { - var lr = 1 / (left2 - right2); - var bt = 1 / (bottom - top); - var nf = 1 / (near2 - far); - out[0] = -2 * lr; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = -2 * bt; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[10] = 2 * nf; - out[11] = 0; - out[12] = (left2 + right2) * lr; - out[13] = (top + bottom) * bt; - out[14] = (far + near2) * nf; - out[15] = 1; - return out; -} -var ortho = orthoNO; -function orthoZO(out, left2, right2, bottom, top, near2, far) { - var lr = 1 / (left2 - right2); - var bt = 1 / (bottom - top); - var nf = 1 / (near2 - far); - out[0] = -2 * lr; - out[1] = 0; - out[2] = 0; - out[3] = 0; - out[4] = 0; - out[5] = -2 * bt; - out[6] = 0; - out[7] = 0; - out[8] = 0; - out[9] = 0; - out[10] = nf; - out[11] = 0; - out[12] = (left2 + right2) * lr; - out[13] = (top + bottom) * bt; - out[14] = near2 * nf; - out[15] = 1; - return out; -} -function lookAt(out, eye, center2, up) { - var x0, x1, x22, y0, y1, y22, z0, z1, z22, len5; - var eyex = eye[0]; - var eyey = eye[1]; - var eyez = eye[2]; - var upx = up[0]; - var upy = up[1]; - var upz = up[2]; - var centerx = center2[0]; - var centery = center2[1]; - var centerz = center2[2]; - if (Math.abs(eyex - centerx) < EPSILON && Math.abs(eyey - centery) < EPSILON && Math.abs(eyez - centerz) < EPSILON) { - return identity3(out); - } - z0 = eyex - centerx; - z1 = eyey - centery; - z22 = eyez - centerz; - len5 = 1 / Math.hypot(z0, z1, z22); - z0 *= len5; - z1 *= len5; - z22 *= len5; - x0 = upy * z22 - upz * z1; - x1 = upz * z0 - upx * z22; - x22 = upx * z1 - upy * z0; - len5 = Math.hypot(x0, x1, x22); - if (!len5) { - x0 = 0; - x1 = 0; - x22 = 0; - } else { - len5 = 1 / len5; - x0 *= len5; - x1 *= len5; - x22 *= len5; - } - y0 = z1 * x22 - z22 * x1; - y1 = z22 * x0 - z0 * x22; - y22 = z0 * x1 - z1 * x0; - len5 = Math.hypot(y0, y1, y22); - if (!len5) { - y0 = 0; - y1 = 0; - y22 = 0; - } else { - len5 = 1 / len5; - y0 *= len5; - y1 *= len5; - y22 *= len5; - } - out[0] = x0; - out[1] = y0; - out[2] = z0; - out[3] = 0; - out[4] = x1; - out[5] = y1; - out[6] = z1; - out[7] = 0; - out[8] = x22; - out[9] = y22; - out[10] = z22; - out[11] = 0; - out[12] = -(x0 * eyex + x1 * eyey + x22 * eyez); - out[13] = -(y0 * eyex + y1 * eyey + y22 * eyez); - out[14] = -(z0 * eyex + z1 * eyey + z22 * eyez); - out[15] = 1; - return out; -} -function targetTo(out, eye, target, up) { - var eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2]; - var z0 = eyex - target[0], z1 = eyey - target[1], z22 = eyez - target[2]; - var len5 = z0 * z0 + z1 * z1 + z22 * z22; - if (len5 > 0) { - len5 = 1 / Math.sqrt(len5); - z0 *= len5; - z1 *= len5; - z22 *= len5; - } - var x0 = upy * z22 - upz * z1, x1 = upz * z0 - upx * z22, x22 = upx * z1 - upy * z0; - len5 = x0 * x0 + x1 * x1 + x22 * x22; - if (len5 > 0) { - len5 = 1 / Math.sqrt(len5); - x0 *= len5; - x1 *= len5; - x22 *= len5; - } - out[0] = x0; - out[1] = x1; - out[2] = x22; - out[3] = 0; - out[4] = z1 * x22 - z22 * x1; - out[5] = z22 * x0 - z0 * x22; - out[6] = z0 * x1 - z1 * x0; - out[7] = 0; - out[8] = z0; - out[9] = z1; - out[10] = z22; - out[11] = 0; - out[12] = eyex; - out[13] = eyey; - out[14] = eyez; - out[15] = 1; - return out; -} -function str3(a4) { - return "mat4(" + a4[0] + ", " + a4[1] + ", " + a4[2] + ", " + a4[3] + ", " + a4[4] + ", " + a4[5] + ", " + a4[6] + ", " + a4[7] + ", " + a4[8] + ", " + a4[9] + ", " + a4[10] + ", " + a4[11] + ", " + a4[12] + ", " + a4[13] + ", " + a4[14] + ", " + a4[15] + ")"; -} -function frob2(a4) { - return Math.hypot(a4[0], a4[1], a4[2], a4[3], a4[4], a4[5], a4[6], a4[7], a4[8], a4[9], a4[10], a4[11], a4[12], a4[13], a4[14], a4[15]); -} -function add2(out, a4, b10) { - out[0] = a4[0] + b10[0]; - out[1] = a4[1] + b10[1]; - out[2] = a4[2] + b10[2]; - out[3] = a4[3] + b10[3]; - out[4] = a4[4] + b10[4]; - out[5] = a4[5] + b10[5]; - out[6] = a4[6] + b10[6]; - out[7] = a4[7] + b10[7]; - out[8] = a4[8] + b10[8]; - out[9] = a4[9] + b10[9]; - out[10] = a4[10] + b10[10]; - out[11] = a4[11] + b10[11]; - out[12] = a4[12] + b10[12]; - out[13] = a4[13] + b10[13]; - out[14] = a4[14] + b10[14]; - out[15] = a4[15] + b10[15]; - return out; -} -function subtract2(out, a4, b10) { - out[0] = a4[0] - b10[0]; - out[1] = a4[1] - b10[1]; - out[2] = a4[2] - b10[2]; - out[3] = a4[3] - b10[3]; - out[4] = a4[4] - b10[4]; - out[5] = a4[5] - b10[5]; - out[6] = a4[6] - b10[6]; - out[7] = a4[7] - b10[7]; - out[8] = a4[8] - b10[8]; - out[9] = a4[9] - b10[9]; - out[10] = a4[10] - b10[10]; - out[11] = a4[11] - b10[11]; - out[12] = a4[12] - b10[12]; - out[13] = a4[13] - b10[13]; - out[14] = a4[14] - b10[14]; - out[15] = a4[15] - b10[15]; - return out; -} -function multiplyScalar2(out, a4, b10) { - out[0] = a4[0] * b10; - out[1] = a4[1] * b10; - out[2] = a4[2] * b10; - out[3] = a4[3] * b10; - out[4] = a4[4] * b10; - out[5] = a4[5] * b10; - out[6] = a4[6] * b10; - out[7] = a4[7] * b10; - out[8] = a4[8] * b10; - out[9] = a4[9] * b10; - out[10] = a4[10] * b10; - out[11] = a4[11] * b10; - out[12] = a4[12] * b10; - out[13] = a4[13] * b10; - out[14] = a4[14] * b10; - out[15] = a4[15] * b10; - return out; -} -function multiplyScalarAndAdd2(out, a4, b10, scale12) { - out[0] = a4[0] + b10[0] * scale12; - out[1] = a4[1] + b10[1] * scale12; - out[2] = a4[2] + b10[2] * scale12; - out[3] = a4[3] + b10[3] * scale12; - out[4] = a4[4] + b10[4] * scale12; - out[5] = a4[5] + b10[5] * scale12; - out[6] = a4[6] + b10[6] * scale12; - out[7] = a4[7] + b10[7] * scale12; - out[8] = a4[8] + b10[8] * scale12; - out[9] = a4[9] + b10[9] * scale12; - out[10] = a4[10] + b10[10] * scale12; - out[11] = a4[11] + b10[11] * scale12; - out[12] = a4[12] + b10[12] * scale12; - out[13] = a4[13] + b10[13] * scale12; - out[14] = a4[14] + b10[14] * scale12; - out[15] = a4[15] + b10[15] * scale12; - return out; -} -function exactEquals2(a4, b10) { - return a4[0] === b10[0] && a4[1] === b10[1] && a4[2] === b10[2] && a4[3] === b10[3] && a4[4] === b10[4] && a4[5] === b10[5] && a4[6] === b10[6] && a4[7] === b10[7] && a4[8] === b10[8] && a4[9] === b10[9] && a4[10] === b10[10] && a4[11] === b10[11] && a4[12] === b10[12] && a4[13] === b10[13] && a4[14] === b10[14] && a4[15] === b10[15]; -} -function equals2(a4, b10) { - var a0 = a4[0], a1 = a4[1], a22 = a4[2], a32 = a4[3]; - var a42 = a4[4], a5 = a4[5], a6 = a4[6], a7 = a4[7]; - var a8 = a4[8], a9 = a4[9], a10 = a4[10], a11 = a4[11]; - var a12 = a4[12], a13 = a4[13], a14 = a4[14], a15 = a4[15]; - var b02 = b10[0], b12 = b10[1], b23 = b10[2], b32 = b10[3]; - var b42 = b10[4], b52 = b10[5], b62 = b10[6], b72 = b10[7]; - var b82 = b10[8], b92 = b10[9], b102 = b10[10], b11 = b10[11]; - var b122 = b10[12], b13 = b10[13], b14 = b10[14], b15 = b10[15]; - return Math.abs(a0 - b02) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b02)) && Math.abs(a1 - b12) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b12)) && Math.abs(a22 - b23) <= EPSILON * Math.max(1, Math.abs(a22), Math.abs(b23)) && Math.abs(a32 - b32) <= EPSILON * Math.max(1, Math.abs(a32), Math.abs(b32)) && Math.abs(a42 - b42) <= EPSILON * Math.max(1, Math.abs(a42), Math.abs(b42)) && Math.abs(a5 - b52) <= EPSILON * Math.max(1, Math.abs(a5), Math.abs(b52)) && Math.abs(a6 - b62) <= EPSILON * Math.max(1, Math.abs(a6), Math.abs(b62)) && Math.abs(a7 - b72) <= EPSILON * Math.max(1, Math.abs(a7), Math.abs(b72)) && Math.abs(a8 - b82) <= EPSILON * Math.max(1, Math.abs(a8), Math.abs(b82)) && Math.abs(a9 - b92) <= EPSILON * Math.max(1, Math.abs(a9), Math.abs(b92)) && Math.abs(a10 - b102) <= EPSILON * Math.max(1, Math.abs(a10), Math.abs(b102)) && Math.abs(a11 - b11) <= EPSILON * Math.max(1, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b122) <= EPSILON * Math.max(1, Math.abs(a12), Math.abs(b122)) && Math.abs(a13 - b13) <= EPSILON * Math.max(1, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= EPSILON * Math.max(1, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= EPSILON * Math.max(1, Math.abs(a15), Math.abs(b15)); -} -var mul2 = multiply2; -var sub2 = subtract2; - -// node_modules/gl-matrix/esm/quat.js -var quat_exports = {}; -__export(quat_exports, { - add: () => add5, - calculateW: () => calculateW, - clone: () => clone6, - conjugate: () => conjugate, - copy: () => copy5, - create: () => create5, - dot: () => dot3, - equals: () => equals5, - exactEquals: () => exactEquals5, - exp: () => exp, - fromEuler: () => fromEuler, - fromMat3: () => fromMat3, - fromValues: () => fromValues5, - getAngle: () => getAngle, - getAxisAngle: () => getAxisAngle, - identity: () => identity4, - invert: () => invert3, - len: () => len3, - length: () => length3, - lerp: () => lerp3, - ln: () => ln2, - mul: () => mul5, - multiply: () => multiply5, - normalize: () => normalize3, - pow: () => pow, - random: () => random3, - rotateX: () => rotateX3, - rotateY: () => rotateY3, - rotateZ: () => rotateZ3, - rotationTo: () => rotationTo, - scale: () => scale5, - set: () => set6, - setAxes: () => setAxes, - setAxisAngle: () => setAxisAngle, - slerp: () => slerp, - sqlerp: () => sqlerp, - sqrLen: () => sqrLen3, - squaredLength: () => squaredLength3, - str: () => str6 -}); - -// node_modules/gl-matrix/esm/vec3.js -var vec3_exports = {}; -__export(vec3_exports, { - add: () => add3, - angle: () => angle, - bezier: () => bezier, - ceil: () => ceil, - clone: () => clone4, - copy: () => copy3, - create: () => create3, - cross: () => cross, - dist: () => dist, - distance: () => distance, - div: () => div, - divide: () => divide, - dot: () => dot, - equals: () => equals3, - exactEquals: () => exactEquals3, - floor: () => floor, - forEach: () => forEach, - fromValues: () => fromValues3, - hermite: () => hermite, - inverse: () => inverse, - len: () => len, - length: () => length, - lerp: () => lerp, - max: () => max, - min: () => min, - mul: () => mul3, - multiply: () => multiply3, - negate: () => negate, - normalize: () => normalize, - random: () => random, - rotateX: () => rotateX2, - rotateY: () => rotateY2, - rotateZ: () => rotateZ2, - round: () => round, - scale: () => scale3, - scaleAndAdd: () => scaleAndAdd, - set: () => set4, - sqrDist: () => sqrDist, - sqrLen: () => sqrLen, - squaredDistance: () => squaredDistance, - squaredLength: () => squaredLength, - str: () => str4, - sub: () => sub3, - subtract: () => subtract3, - transformMat3: () => transformMat3, - transformMat4: () => transformMat4, - transformQuat: () => transformQuat, - zero: () => zero -}); -function create3() { - var out = new ARRAY_TYPE(3); - if (ARRAY_TYPE != Float32Array) { - out[0] = 0; - out[1] = 0; - out[2] = 0; - } - return out; -} -function clone4(a4) { - var out = new ARRAY_TYPE(3); - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - return out; -} -function length(a4) { - var x6 = a4[0]; - var y5 = a4[1]; - var z3 = a4[2]; - return Math.hypot(x6, y5, z3); -} -function fromValues3(x6, y5, z3) { - var out = new ARRAY_TYPE(3); - out[0] = x6; - out[1] = y5; - out[2] = z3; - return out; -} -function copy3(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - return out; -} -function set4(out, x6, y5, z3) { - out[0] = x6; - out[1] = y5; - out[2] = z3; - return out; -} -function add3(out, a4, b10) { - out[0] = a4[0] + b10[0]; - out[1] = a4[1] + b10[1]; - out[2] = a4[2] + b10[2]; - return out; -} -function subtract3(out, a4, b10) { - out[0] = a4[0] - b10[0]; - out[1] = a4[1] - b10[1]; - out[2] = a4[2] - b10[2]; - return out; -} -function multiply3(out, a4, b10) { - out[0] = a4[0] * b10[0]; - out[1] = a4[1] * b10[1]; - out[2] = a4[2] * b10[2]; - return out; -} -function divide(out, a4, b10) { - out[0] = a4[0] / b10[0]; - out[1] = a4[1] / b10[1]; - out[2] = a4[2] / b10[2]; - return out; -} -function ceil(out, a4) { - out[0] = Math.ceil(a4[0]); - out[1] = Math.ceil(a4[1]); - out[2] = Math.ceil(a4[2]); - return out; -} -function floor(out, a4) { - out[0] = Math.floor(a4[0]); - out[1] = Math.floor(a4[1]); - out[2] = Math.floor(a4[2]); - return out; -} -function min(out, a4, b10) { - out[0] = Math.min(a4[0], b10[0]); - out[1] = Math.min(a4[1], b10[1]); - out[2] = Math.min(a4[2], b10[2]); - return out; -} -function max(out, a4, b10) { - out[0] = Math.max(a4[0], b10[0]); - out[1] = Math.max(a4[1], b10[1]); - out[2] = Math.max(a4[2], b10[2]); - return out; -} -function round(out, a4) { - out[0] = Math.round(a4[0]); - out[1] = Math.round(a4[1]); - out[2] = Math.round(a4[2]); - return out; -} -function scale3(out, a4, b10) { - out[0] = a4[0] * b10; - out[1] = a4[1] * b10; - out[2] = a4[2] * b10; - return out; -} -function scaleAndAdd(out, a4, b10, scale12) { - out[0] = a4[0] + b10[0] * scale12; - out[1] = a4[1] + b10[1] * scale12; - out[2] = a4[2] + b10[2] * scale12; - return out; -} -function distance(a4, b10) { - var x6 = b10[0] - a4[0]; - var y5 = b10[1] - a4[1]; - var z3 = b10[2] - a4[2]; - return Math.hypot(x6, y5, z3); -} -function squaredDistance(a4, b10) { - var x6 = b10[0] - a4[0]; - var y5 = b10[1] - a4[1]; - var z3 = b10[2] - a4[2]; - return x6 * x6 + y5 * y5 + z3 * z3; -} -function squaredLength(a4) { - var x6 = a4[0]; - var y5 = a4[1]; - var z3 = a4[2]; - return x6 * x6 + y5 * y5 + z3 * z3; -} -function negate(out, a4) { - out[0] = -a4[0]; - out[1] = -a4[1]; - out[2] = -a4[2]; - return out; -} -function inverse(out, a4) { - out[0] = 1 / a4[0]; - out[1] = 1 / a4[1]; - out[2] = 1 / a4[2]; - return out; -} -function normalize(out, a4) { - var x6 = a4[0]; - var y5 = a4[1]; - var z3 = a4[2]; - var len5 = x6 * x6 + y5 * y5 + z3 * z3; - if (len5 > 0) { - len5 = 1 / Math.sqrt(len5); - } - out[0] = a4[0] * len5; - out[1] = a4[1] * len5; - out[2] = a4[2] * len5; - return out; -} -function dot(a4, b10) { - return a4[0] * b10[0] + a4[1] * b10[1] + a4[2] * b10[2]; -} -function cross(out, a4, b10) { - var ax = a4[0], ay = a4[1], az = a4[2]; - var bx = b10[0], by = b10[1], bz = b10[2]; - out[0] = ay * bz - az * by; - out[1] = az * bx - ax * bz; - out[2] = ax * by - ay * bx; - return out; -} -function lerp(out, a4, b10, t4) { - var ax = a4[0]; - var ay = a4[1]; - var az = a4[2]; - out[0] = ax + t4 * (b10[0] - ax); - out[1] = ay + t4 * (b10[1] - ay); - out[2] = az + t4 * (b10[2] - az); - return out; -} -function hermite(out, a4, b10, c5, d3, t4) { - var factorTimes2 = t4 * t4; - var factor1 = factorTimes2 * (2 * t4 - 3) + 1; - var factor2 = factorTimes2 * (t4 - 2) + t4; - var factor3 = factorTimes2 * (t4 - 1); - var factor4 = factorTimes2 * (3 - 2 * t4); - out[0] = a4[0] * factor1 + b10[0] * factor2 + c5[0] * factor3 + d3[0] * factor4; - out[1] = a4[1] * factor1 + b10[1] * factor2 + c5[1] * factor3 + d3[1] * factor4; - out[2] = a4[2] * factor1 + b10[2] * factor2 + c5[2] * factor3 + d3[2] * factor4; - return out; -} -function bezier(out, a4, b10, c5, d3, t4) { - var inverseFactor = 1 - t4; - var inverseFactorTimesTwo = inverseFactor * inverseFactor; - var factorTimes2 = t4 * t4; - var factor1 = inverseFactorTimesTwo * inverseFactor; - var factor2 = 3 * t4 * inverseFactorTimesTwo; - var factor3 = 3 * factorTimes2 * inverseFactor; - var factor4 = factorTimes2 * t4; - out[0] = a4[0] * factor1 + b10[0] * factor2 + c5[0] * factor3 + d3[0] * factor4; - out[1] = a4[1] * factor1 + b10[1] * factor2 + c5[1] * factor3 + d3[1] * factor4; - out[2] = a4[2] * factor1 + b10[2] * factor2 + c5[2] * factor3 + d3[2] * factor4; - return out; -} -function random(out, scale12) { - scale12 = scale12 || 1; - var r4 = RANDOM() * 2 * Math.PI; - var z3 = RANDOM() * 2 - 1; - var zScale = Math.sqrt(1 - z3 * z3) * scale12; - out[0] = Math.cos(r4) * zScale; - out[1] = Math.sin(r4) * zScale; - out[2] = z3 * scale12; - return out; -} -function transformMat4(out, a4, m4) { - var x6 = a4[0], y5 = a4[1], z3 = a4[2]; - var w4 = m4[3] * x6 + m4[7] * y5 + m4[11] * z3 + m4[15]; - w4 = w4 || 1; - out[0] = (m4[0] * x6 + m4[4] * y5 + m4[8] * z3 + m4[12]) / w4; - out[1] = (m4[1] * x6 + m4[5] * y5 + m4[9] * z3 + m4[13]) / w4; - out[2] = (m4[2] * x6 + m4[6] * y5 + m4[10] * z3 + m4[14]) / w4; - return out; -} -function transformMat3(out, a4, m4) { - var x6 = a4[0], y5 = a4[1], z3 = a4[2]; - out[0] = x6 * m4[0] + y5 * m4[3] + z3 * m4[6]; - out[1] = x6 * m4[1] + y5 * m4[4] + z3 * m4[7]; - out[2] = x6 * m4[2] + y5 * m4[5] + z3 * m4[8]; - return out; -} -function transformQuat(out, a4, q4) { - var qx = q4[0], qy = q4[1], qz = q4[2], qw = q4[3]; - var x6 = a4[0], y5 = a4[1], z3 = a4[2]; - var uvx = qy * z3 - qz * y5, uvy = qz * x6 - qx * z3, uvz = qx * y5 - qy * x6; - var uuvx = qy * uvz - qz * uvy, uuvy = qz * uvx - qx * uvz, uuvz = qx * uvy - qy * uvx; - var w22 = qw * 2; - uvx *= w22; - uvy *= w22; - uvz *= w22; - uuvx *= 2; - uuvy *= 2; - uuvz *= 2; - out[0] = x6 + uvx + uuvx; - out[1] = y5 + uvy + uuvy; - out[2] = z3 + uvz + uuvz; - return out; -} -function rotateX2(out, a4, b10, rad) { - var p4 = [], r4 = []; - p4[0] = a4[0] - b10[0]; - p4[1] = a4[1] - b10[1]; - p4[2] = a4[2] - b10[2]; - r4[0] = p4[0]; - r4[1] = p4[1] * Math.cos(rad) - p4[2] * Math.sin(rad); - r4[2] = p4[1] * Math.sin(rad) + p4[2] * Math.cos(rad); - out[0] = r4[0] + b10[0]; - out[1] = r4[1] + b10[1]; - out[2] = r4[2] + b10[2]; - return out; -} -function rotateY2(out, a4, b10, rad) { - var p4 = [], r4 = []; - p4[0] = a4[0] - b10[0]; - p4[1] = a4[1] - b10[1]; - p4[2] = a4[2] - b10[2]; - r4[0] = p4[2] * Math.sin(rad) + p4[0] * Math.cos(rad); - r4[1] = p4[1]; - r4[2] = p4[2] * Math.cos(rad) - p4[0] * Math.sin(rad); - out[0] = r4[0] + b10[0]; - out[1] = r4[1] + b10[1]; - out[2] = r4[2] + b10[2]; - return out; -} -function rotateZ2(out, a4, b10, rad) { - var p4 = [], r4 = []; - p4[0] = a4[0] - b10[0]; - p4[1] = a4[1] - b10[1]; - p4[2] = a4[2] - b10[2]; - r4[0] = p4[0] * Math.cos(rad) - p4[1] * Math.sin(rad); - r4[1] = p4[0] * Math.sin(rad) + p4[1] * Math.cos(rad); - r4[2] = p4[2]; - out[0] = r4[0] + b10[0]; - out[1] = r4[1] + b10[1]; - out[2] = r4[2] + b10[2]; - return out; -} -function angle(a4, b10) { - var ax = a4[0], ay = a4[1], az = a4[2], bx = b10[0], by = b10[1], bz = b10[2], mag1 = Math.sqrt(ax * ax + ay * ay + az * az), mag2 = Math.sqrt(bx * bx + by * by + bz * bz), mag = mag1 * mag2, cosine = mag && dot(a4, b10) / mag; - return Math.acos(Math.min(Math.max(cosine, -1), 1)); -} -function zero(out) { - out[0] = 0; - out[1] = 0; - out[2] = 0; - return out; -} -function str4(a4) { - return "vec3(" + a4[0] + ", " + a4[1] + ", " + a4[2] + ")"; -} -function exactEquals3(a4, b10) { - return a4[0] === b10[0] && a4[1] === b10[1] && a4[2] === b10[2]; -} -function equals3(a4, b10) { - var a0 = a4[0], a1 = a4[1], a22 = a4[2]; - var b02 = b10[0], b12 = b10[1], b23 = b10[2]; - return Math.abs(a0 - b02) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b02)) && Math.abs(a1 - b12) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b12)) && Math.abs(a22 - b23) <= EPSILON * Math.max(1, Math.abs(a22), Math.abs(b23)); -} -var sub3 = subtract3; -var mul3 = multiply3; -var div = divide; -var dist = distance; -var sqrDist = squaredDistance; -var len = length; -var sqrLen = squaredLength; -var forEach = function() { - var vec = create3(); - return function(a4, stride, offset, count2, fn2, arg) { - var i4, l4; - if (!stride) { - stride = 3; - } - if (!offset) { - offset = 0; - } - if (count2) { - l4 = Math.min(count2 * stride + offset, a4.length); - } else { - l4 = a4.length; - } - for (i4 = offset; i4 < l4; i4 += stride) { - vec[0] = a4[i4]; - vec[1] = a4[i4 + 1]; - vec[2] = a4[i4 + 2]; - fn2(vec, vec, arg); - a4[i4] = vec[0]; - a4[i4 + 1] = vec[1]; - a4[i4 + 2] = vec[2]; - } - return a4; - }; -}(); - -// node_modules/gl-matrix/esm/vec4.js -var vec4_exports = {}; -__export(vec4_exports, { - add: () => add4, - ceil: () => ceil2, - clone: () => clone5, - copy: () => copy4, - create: () => create4, - cross: () => cross2, - dist: () => dist2, - distance: () => distance2, - div: () => div2, - divide: () => divide2, - dot: () => dot2, - equals: () => equals4, - exactEquals: () => exactEquals4, - floor: () => floor2, - forEach: () => forEach2, - fromValues: () => fromValues4, - inverse: () => inverse2, - len: () => len2, - length: () => length2, - lerp: () => lerp2, - max: () => max2, - min: () => min2, - mul: () => mul4, - multiply: () => multiply4, - negate: () => negate2, - normalize: () => normalize2, - random: () => random2, - round: () => round2, - scale: () => scale4, - scaleAndAdd: () => scaleAndAdd2, - set: () => set5, - sqrDist: () => sqrDist2, - sqrLen: () => sqrLen2, - squaredDistance: () => squaredDistance2, - squaredLength: () => squaredLength2, - str: () => str5, - sub: () => sub4, - subtract: () => subtract4, - transformMat4: () => transformMat42, - transformQuat: () => transformQuat2, - zero: () => zero2 -}); -function create4() { - var out = new ARRAY_TYPE(4); - if (ARRAY_TYPE != Float32Array) { - out[0] = 0; - out[1] = 0; - out[2] = 0; - out[3] = 0; - } - return out; -} -function clone5(a4) { - var out = new ARRAY_TYPE(4); - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[3]; - return out; -} -function fromValues4(x6, y5, z3, w4) { - var out = new ARRAY_TYPE(4); - out[0] = x6; - out[1] = y5; - out[2] = z3; - out[3] = w4; - return out; -} -function copy4(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - out[2] = a4[2]; - out[3] = a4[3]; - return out; -} -function set5(out, x6, y5, z3, w4) { - out[0] = x6; - out[1] = y5; - out[2] = z3; - out[3] = w4; - return out; -} -function add4(out, a4, b10) { - out[0] = a4[0] + b10[0]; - out[1] = a4[1] + b10[1]; - out[2] = a4[2] + b10[2]; - out[3] = a4[3] + b10[3]; - return out; -} -function subtract4(out, a4, b10) { - out[0] = a4[0] - b10[0]; - out[1] = a4[1] - b10[1]; - out[2] = a4[2] - b10[2]; - out[3] = a4[3] - b10[3]; - return out; -} -function multiply4(out, a4, b10) { - out[0] = a4[0] * b10[0]; - out[1] = a4[1] * b10[1]; - out[2] = a4[2] * b10[2]; - out[3] = a4[3] * b10[3]; - return out; -} -function divide2(out, a4, b10) { - out[0] = a4[0] / b10[0]; - out[1] = a4[1] / b10[1]; - out[2] = a4[2] / b10[2]; - out[3] = a4[3] / b10[3]; - return out; -} -function ceil2(out, a4) { - out[0] = Math.ceil(a4[0]); - out[1] = Math.ceil(a4[1]); - out[2] = Math.ceil(a4[2]); - out[3] = Math.ceil(a4[3]); - return out; -} -function floor2(out, a4) { - out[0] = Math.floor(a4[0]); - out[1] = Math.floor(a4[1]); - out[2] = Math.floor(a4[2]); - out[3] = Math.floor(a4[3]); - return out; -} -function min2(out, a4, b10) { - out[0] = Math.min(a4[0], b10[0]); - out[1] = Math.min(a4[1], b10[1]); - out[2] = Math.min(a4[2], b10[2]); - out[3] = Math.min(a4[3], b10[3]); - return out; -} -function max2(out, a4, b10) { - out[0] = Math.max(a4[0], b10[0]); - out[1] = Math.max(a4[1], b10[1]); - out[2] = Math.max(a4[2], b10[2]); - out[3] = Math.max(a4[3], b10[3]); - return out; -} -function round2(out, a4) { - out[0] = Math.round(a4[0]); - out[1] = Math.round(a4[1]); - out[2] = Math.round(a4[2]); - out[3] = Math.round(a4[3]); - return out; -} -function scale4(out, a4, b10) { - out[0] = a4[0] * b10; - out[1] = a4[1] * b10; - out[2] = a4[2] * b10; - out[3] = a4[3] * b10; - return out; -} -function scaleAndAdd2(out, a4, b10, scale12) { - out[0] = a4[0] + b10[0] * scale12; - out[1] = a4[1] + b10[1] * scale12; - out[2] = a4[2] + b10[2] * scale12; - out[3] = a4[3] + b10[3] * scale12; - return out; -} -function distance2(a4, b10) { - var x6 = b10[0] - a4[0]; - var y5 = b10[1] - a4[1]; - var z3 = b10[2] - a4[2]; - var w4 = b10[3] - a4[3]; - return Math.hypot(x6, y5, z3, w4); -} -function squaredDistance2(a4, b10) { - var x6 = b10[0] - a4[0]; - var y5 = b10[1] - a4[1]; - var z3 = b10[2] - a4[2]; - var w4 = b10[3] - a4[3]; - return x6 * x6 + y5 * y5 + z3 * z3 + w4 * w4; -} -function length2(a4) { - var x6 = a4[0]; - var y5 = a4[1]; - var z3 = a4[2]; - var w4 = a4[3]; - return Math.hypot(x6, y5, z3, w4); -} -function squaredLength2(a4) { - var x6 = a4[0]; - var y5 = a4[1]; - var z3 = a4[2]; - var w4 = a4[3]; - return x6 * x6 + y5 * y5 + z3 * z3 + w4 * w4; -} -function negate2(out, a4) { - out[0] = -a4[0]; - out[1] = -a4[1]; - out[2] = -a4[2]; - out[3] = -a4[3]; - return out; -} -function inverse2(out, a4) { - out[0] = 1 / a4[0]; - out[1] = 1 / a4[1]; - out[2] = 1 / a4[2]; - out[3] = 1 / a4[3]; - return out; -} -function normalize2(out, a4) { - var x6 = a4[0]; - var y5 = a4[1]; - var z3 = a4[2]; - var w4 = a4[3]; - var len5 = x6 * x6 + y5 * y5 + z3 * z3 + w4 * w4; - if (len5 > 0) { - len5 = 1 / Math.sqrt(len5); - } - out[0] = x6 * len5; - out[1] = y5 * len5; - out[2] = z3 * len5; - out[3] = w4 * len5; - return out; -} -function dot2(a4, b10) { - return a4[0] * b10[0] + a4[1] * b10[1] + a4[2] * b10[2] + a4[3] * b10[3]; -} -function cross2(out, u3, v3, w4) { - var A4 = v3[0] * w4[1] - v3[1] * w4[0], B3 = v3[0] * w4[2] - v3[2] * w4[0], C3 = v3[0] * w4[3] - v3[3] * w4[0], D3 = v3[1] * w4[2] - v3[2] * w4[1], E2 = v3[1] * w4[3] - v3[3] * w4[1], F3 = v3[2] * w4[3] - v3[3] * w4[2]; - var G2 = u3[0]; - var H3 = u3[1]; - var I3 = u3[2]; - var J2 = u3[3]; - out[0] = H3 * F3 - I3 * E2 + J2 * D3; - out[1] = -(G2 * F3) + I3 * C3 - J2 * B3; - out[2] = G2 * E2 - H3 * C3 + J2 * A4; - out[3] = -(G2 * D3) + H3 * B3 - I3 * A4; - return out; -} -function lerp2(out, a4, b10, t4) { - var ax = a4[0]; - var ay = a4[1]; - var az = a4[2]; - var aw = a4[3]; - out[0] = ax + t4 * (b10[0] - ax); - out[1] = ay + t4 * (b10[1] - ay); - out[2] = az + t4 * (b10[2] - az); - out[3] = aw + t4 * (b10[3] - aw); - return out; -} -function random2(out, scale12) { - scale12 = scale12 || 1; - var v1, v22, v3, v4; - var s1, s22; - do { - v1 = RANDOM() * 2 - 1; - v22 = RANDOM() * 2 - 1; - s1 = v1 * v1 + v22 * v22; - } while (s1 >= 1); - do { - v3 = RANDOM() * 2 - 1; - v4 = RANDOM() * 2 - 1; - s22 = v3 * v3 + v4 * v4; - } while (s22 >= 1); - var d3 = Math.sqrt((1 - s1) / s22); - out[0] = scale12 * v1; - out[1] = scale12 * v22; - out[2] = scale12 * v3 * d3; - out[3] = scale12 * v4 * d3; - return out; -} -function transformMat42(out, a4, m4) { - var x6 = a4[0], y5 = a4[1], z3 = a4[2], w4 = a4[3]; - out[0] = m4[0] * x6 + m4[4] * y5 + m4[8] * z3 + m4[12] * w4; - out[1] = m4[1] * x6 + m4[5] * y5 + m4[9] * z3 + m4[13] * w4; - out[2] = m4[2] * x6 + m4[6] * y5 + m4[10] * z3 + m4[14] * w4; - out[3] = m4[3] * x6 + m4[7] * y5 + m4[11] * z3 + m4[15] * w4; - return out; -} -function transformQuat2(out, a4, q4) { - var x6 = a4[0], y5 = a4[1], z3 = a4[2]; - var qx = q4[0], qy = q4[1], qz = q4[2], qw = q4[3]; - var ix = qw * x6 + qy * z3 - qz * y5; - var iy = qw * y5 + qz * x6 - qx * z3; - var iz = qw * z3 + qx * y5 - qy * x6; - var iw = -qx * x6 - qy * y5 - qz * z3; - out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy; - out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz; - out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx; - out[3] = a4[3]; - return out; -} -function zero2(out) { - out[0] = 0; - out[1] = 0; - out[2] = 0; - out[3] = 0; - return out; -} -function str5(a4) { - return "vec4(" + a4[0] + ", " + a4[1] + ", " + a4[2] + ", " + a4[3] + ")"; -} -function exactEquals4(a4, b10) { - return a4[0] === b10[0] && a4[1] === b10[1] && a4[2] === b10[2] && a4[3] === b10[3]; -} -function equals4(a4, b10) { - var a0 = a4[0], a1 = a4[1], a22 = a4[2], a32 = a4[3]; - var b02 = b10[0], b12 = b10[1], b23 = b10[2], b32 = b10[3]; - return Math.abs(a0 - b02) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b02)) && Math.abs(a1 - b12) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b12)) && Math.abs(a22 - b23) <= EPSILON * Math.max(1, Math.abs(a22), Math.abs(b23)) && Math.abs(a32 - b32) <= EPSILON * Math.max(1, Math.abs(a32), Math.abs(b32)); -} -var sub4 = subtract4; -var mul4 = multiply4; -var div2 = divide2; -var dist2 = distance2; -var sqrDist2 = squaredDistance2; -var len2 = length2; -var sqrLen2 = squaredLength2; -var forEach2 = function() { - var vec = create4(); - return function(a4, stride, offset, count2, fn2, arg) { - var i4, l4; - if (!stride) { - stride = 4; - } - if (!offset) { - offset = 0; - } - if (count2) { - l4 = Math.min(count2 * stride + offset, a4.length); - } else { - l4 = a4.length; - } - for (i4 = offset; i4 < l4; i4 += stride) { - vec[0] = a4[i4]; - vec[1] = a4[i4 + 1]; - vec[2] = a4[i4 + 2]; - vec[3] = a4[i4 + 3]; - fn2(vec, vec, arg); - a4[i4] = vec[0]; - a4[i4 + 1] = vec[1]; - a4[i4 + 2] = vec[2]; - a4[i4 + 3] = vec[3]; - } - return a4; - }; -}(); - -// node_modules/gl-matrix/esm/quat.js -function create5() { - var out = new ARRAY_TYPE(4); - if (ARRAY_TYPE != Float32Array) { - out[0] = 0; - out[1] = 0; - out[2] = 0; - } - out[3] = 1; - return out; -} -function identity4(out) { - out[0] = 0; - out[1] = 0; - out[2] = 0; - out[3] = 1; - return out; -} -function setAxisAngle(out, axis22, rad) { - rad = rad * 0.5; - var s4 = Math.sin(rad); - out[0] = s4 * axis22[0]; - out[1] = s4 * axis22[1]; - out[2] = s4 * axis22[2]; - out[3] = Math.cos(rad); - return out; -} -function getAxisAngle(out_axis, q4) { - var rad = Math.acos(q4[3]) * 2; - var s4 = Math.sin(rad / 2); - if (s4 > EPSILON) { - out_axis[0] = q4[0] / s4; - out_axis[1] = q4[1] / s4; - out_axis[2] = q4[2] / s4; - } else { - out_axis[0] = 1; - out_axis[1] = 0; - out_axis[2] = 0; - } - return rad; -} -function getAngle(a4, b10) { - var dotproduct = dot3(a4, b10); - return Math.acos(2 * dotproduct * dotproduct - 1); -} -function multiply5(out, a4, b10) { - var ax = a4[0], ay = a4[1], az = a4[2], aw = a4[3]; - var bx = b10[0], by = b10[1], bz = b10[2], bw = b10[3]; - out[0] = ax * bw + aw * bx + ay * bz - az * by; - out[1] = ay * bw + aw * by + az * bx - ax * bz; - out[2] = az * bw + aw * bz + ax * by - ay * bx; - out[3] = aw * bw - ax * bx - ay * by - az * bz; - return out; -} -function rotateX3(out, a4, rad) { - rad *= 0.5; - var ax = a4[0], ay = a4[1], az = a4[2], aw = a4[3]; - var bx = Math.sin(rad), bw = Math.cos(rad); - out[0] = ax * bw + aw * bx; - out[1] = ay * bw + az * bx; - out[2] = az * bw - ay * bx; - out[3] = aw * bw - ax * bx; - return out; -} -function rotateY3(out, a4, rad) { - rad *= 0.5; - var ax = a4[0], ay = a4[1], az = a4[2], aw = a4[3]; - var by = Math.sin(rad), bw = Math.cos(rad); - out[0] = ax * bw - az * by; - out[1] = ay * bw + aw * by; - out[2] = az * bw + ax * by; - out[3] = aw * bw - ay * by; - return out; -} -function rotateZ3(out, a4, rad) { - rad *= 0.5; - var ax = a4[0], ay = a4[1], az = a4[2], aw = a4[3]; - var bz = Math.sin(rad), bw = Math.cos(rad); - out[0] = ax * bw + ay * bz; - out[1] = ay * bw - ax * bz; - out[2] = az * bw + aw * bz; - out[3] = aw * bw - az * bz; - return out; -} -function calculateW(out, a4) { - var x6 = a4[0], y5 = a4[1], z3 = a4[2]; - out[0] = x6; - out[1] = y5; - out[2] = z3; - out[3] = Math.sqrt(Math.abs(1 - x6 * x6 - y5 * y5 - z3 * z3)); - return out; -} -function exp(out, a4) { - var x6 = a4[0], y5 = a4[1], z3 = a4[2], w4 = a4[3]; - var r4 = Math.sqrt(x6 * x6 + y5 * y5 + z3 * z3); - var et = Math.exp(w4); - var s4 = r4 > 0 ? et * Math.sin(r4) / r4 : 0; - out[0] = x6 * s4; - out[1] = y5 * s4; - out[2] = z3 * s4; - out[3] = et * Math.cos(r4); - return out; -} -function ln2(out, a4) { - var x6 = a4[0], y5 = a4[1], z3 = a4[2], w4 = a4[3]; - var r4 = Math.sqrt(x6 * x6 + y5 * y5 + z3 * z3); - var t4 = r4 > 0 ? Math.atan2(r4, w4) / r4 : 0; - out[0] = x6 * t4; - out[1] = y5 * t4; - out[2] = z3 * t4; - out[3] = 0.5 * Math.log(x6 * x6 + y5 * y5 + z3 * z3 + w4 * w4); - return out; -} -function pow(out, a4, b10) { - ln2(out, a4); - scale5(out, out, b10); - exp(out, out); - return out; -} -function slerp(out, a4, b10, t4) { - var ax = a4[0], ay = a4[1], az = a4[2], aw = a4[3]; - var bx = b10[0], by = b10[1], bz = b10[2], bw = b10[3]; - var omega, cosom, sinom, scale0, scale1; - cosom = ax * bx + ay * by + az * bz + aw * bw; - if (cosom < 0) { - cosom = -cosom; - bx = -bx; - by = -by; - bz = -bz; - bw = -bw; - } - if (1 - cosom > EPSILON) { - omega = Math.acos(cosom); - sinom = Math.sin(omega); - scale0 = Math.sin((1 - t4) * omega) / sinom; - scale1 = Math.sin(t4 * omega) / sinom; - } else { - scale0 = 1 - t4; - scale1 = t4; - } - out[0] = scale0 * ax + scale1 * bx; - out[1] = scale0 * ay + scale1 * by; - out[2] = scale0 * az + scale1 * bz; - out[3] = scale0 * aw + scale1 * bw; - return out; -} -function random3(out) { - var u1 = RANDOM(); - var u22 = RANDOM(); - var u3 = RANDOM(); - var sqrt1MinusU1 = Math.sqrt(1 - u1); - var sqrtU1 = Math.sqrt(u1); - out[0] = sqrt1MinusU1 * Math.sin(2 * Math.PI * u22); - out[1] = sqrt1MinusU1 * Math.cos(2 * Math.PI * u22); - out[2] = sqrtU1 * Math.sin(2 * Math.PI * u3); - out[3] = sqrtU1 * Math.cos(2 * Math.PI * u3); - return out; -} -function invert3(out, a4) { - var a0 = a4[0], a1 = a4[1], a22 = a4[2], a32 = a4[3]; - var dot7 = a0 * a0 + a1 * a1 + a22 * a22 + a32 * a32; - var invDot = dot7 ? 1 / dot7 : 0; - out[0] = -a0 * invDot; - out[1] = -a1 * invDot; - out[2] = -a22 * invDot; - out[3] = a32 * invDot; - return out; -} -function conjugate(out, a4) { - out[0] = -a4[0]; - out[1] = -a4[1]; - out[2] = -a4[2]; - out[3] = a4[3]; - return out; -} -function fromMat3(out, m4) { - var fTrace = m4[0] + m4[4] + m4[8]; - var fRoot; - if (fTrace > 0) { - fRoot = Math.sqrt(fTrace + 1); - out[3] = 0.5 * fRoot; - fRoot = 0.5 / fRoot; - out[0] = (m4[5] - m4[7]) * fRoot; - out[1] = (m4[6] - m4[2]) * fRoot; - out[2] = (m4[1] - m4[3]) * fRoot; - } else { - var i4 = 0; - if (m4[4] > m4[0]) - i4 = 1; - if (m4[8] > m4[i4 * 3 + i4]) - i4 = 2; - var j4 = (i4 + 1) % 3; - var k4 = (i4 + 2) % 3; - fRoot = Math.sqrt(m4[i4 * 3 + i4] - m4[j4 * 3 + j4] - m4[k4 * 3 + k4] + 1); - out[i4] = 0.5 * fRoot; - fRoot = 0.5 / fRoot; - out[3] = (m4[j4 * 3 + k4] - m4[k4 * 3 + j4]) * fRoot; - out[j4] = (m4[j4 * 3 + i4] + m4[i4 * 3 + j4]) * fRoot; - out[k4] = (m4[k4 * 3 + i4] + m4[i4 * 3 + k4]) * fRoot; - } - return out; -} -function fromEuler(out, x6, y5, z3) { - var halfToRad = 0.5 * Math.PI / 180; - x6 *= halfToRad; - y5 *= halfToRad; - z3 *= halfToRad; - var sx = Math.sin(x6); - var cx = Math.cos(x6); - var sy = Math.sin(y5); - var cy = Math.cos(y5); - var sz = Math.sin(z3); - var cz = Math.cos(z3); - out[0] = sx * cy * cz - cx * sy * sz; - out[1] = cx * sy * cz + sx * cy * sz; - out[2] = cx * cy * sz - sx * sy * cz; - out[3] = cx * cy * cz + sx * sy * sz; - return out; -} -function str6(a4) { - return "quat(" + a4[0] + ", " + a4[1] + ", " + a4[2] + ", " + a4[3] + ")"; -} -var clone6 = clone5; -var fromValues5 = fromValues4; -var copy5 = copy4; -var set6 = set5; -var add5 = add4; -var mul5 = multiply5; -var scale5 = scale4; -var dot3 = dot2; -var lerp3 = lerp2; -var length3 = length2; -var len3 = length3; -var squaredLength3 = squaredLength2; -var sqrLen3 = squaredLength3; -var normalize3 = normalize2; -var exactEquals5 = exactEquals4; -var equals5 = equals4; -var rotationTo = function() { - var tmpvec3 = create3(); - var xUnitVec3 = fromValues3(1, 0, 0); - var yUnitVec3 = fromValues3(0, 1, 0); - return function(out, a4, b10) { - var dot7 = dot(a4, b10); - if (dot7 < -0.999999) { - cross(tmpvec3, xUnitVec3, a4); - if (len(tmpvec3) < 1e-6) - cross(tmpvec3, yUnitVec3, a4); - normalize(tmpvec3, tmpvec3); - setAxisAngle(out, tmpvec3, Math.PI); - return out; - } else if (dot7 > 0.999999) { - out[0] = 0; - out[1] = 0; - out[2] = 0; - out[3] = 1; - return out; - } else { - cross(tmpvec3, a4, b10); - out[0] = tmpvec3[0]; - out[1] = tmpvec3[1]; - out[2] = tmpvec3[2]; - out[3] = 1 + dot7; - return normalize3(out, out); - } - }; -}(); -var sqlerp = function() { - var temp1 = create5(); - var temp2 = create5(); - return function(out, a4, b10, c5, d3, t4) { - slerp(temp1, a4, d3, t4); - slerp(temp2, b10, c5, t4); - slerp(out, temp1, temp2, 2 * t4 * (1 - t4)); - return out; - }; -}(); -var setAxes = function() { - var matr = create(); - return function(out, view, right2, up) { - matr[0] = right2[0]; - matr[3] = right2[1]; - matr[6] = right2[2]; - matr[1] = up[0]; - matr[4] = up[1]; - matr[7] = up[2]; - matr[2] = -view[0]; - matr[5] = -view[1]; - matr[8] = -view[2]; - return normalize3(out, fromMat3(out, matr)); - }; -}(); - -// node_modules/gl-matrix/esm/vec2.js -var vec2_exports = {}; -__export(vec2_exports, { - add: () => add6, - angle: () => angle2, - ceil: () => ceil3, - clone: () => clone7, - copy: () => copy6, - create: () => create6, - cross: () => cross3, - dist: () => dist3, - distance: () => distance3, - div: () => div3, - divide: () => divide3, - dot: () => dot4, - equals: () => equals6, - exactEquals: () => exactEquals6, - floor: () => floor3, - forEach: () => forEach3, - fromValues: () => fromValues6, - inverse: () => inverse3, - len: () => len4, - length: () => length4, - lerp: () => lerp4, - max: () => max3, - min: () => min3, - mul: () => mul6, - multiply: () => multiply6, - negate: () => negate3, - normalize: () => normalize4, - random: () => random4, - rotate: () => rotate3, - round: () => round3, - scale: () => scale6, - scaleAndAdd: () => scaleAndAdd3, - set: () => set7, - sqrDist: () => sqrDist3, - sqrLen: () => sqrLen4, - squaredDistance: () => squaredDistance3, - squaredLength: () => squaredLength4, - str: () => str7, - sub: () => sub5, - subtract: () => subtract5, - transformMat2: () => transformMat2, - transformMat2d: () => transformMat2d, - transformMat3: () => transformMat32, - transformMat4: () => transformMat43, - zero: () => zero3 -}); -function create6() { - var out = new ARRAY_TYPE(2); - if (ARRAY_TYPE != Float32Array) { - out[0] = 0; - out[1] = 0; - } - return out; -} -function clone7(a4) { - var out = new ARRAY_TYPE(2); - out[0] = a4[0]; - out[1] = a4[1]; - return out; -} -function fromValues6(x6, y5) { - var out = new ARRAY_TYPE(2); - out[0] = x6; - out[1] = y5; - return out; -} -function copy6(out, a4) { - out[0] = a4[0]; - out[1] = a4[1]; - return out; -} -function set7(out, x6, y5) { - out[0] = x6; - out[1] = y5; - return out; -} -function add6(out, a4, b10) { - out[0] = a4[0] + b10[0]; - out[1] = a4[1] + b10[1]; - return out; -} -function subtract5(out, a4, b10) { - out[0] = a4[0] - b10[0]; - out[1] = a4[1] - b10[1]; - return out; -} -function multiply6(out, a4, b10) { - out[0] = a4[0] * b10[0]; - out[1] = a4[1] * b10[1]; - return out; -} -function divide3(out, a4, b10) { - out[0] = a4[0] / b10[0]; - out[1] = a4[1] / b10[1]; - return out; -} -function ceil3(out, a4) { - out[0] = Math.ceil(a4[0]); - out[1] = Math.ceil(a4[1]); - return out; -} -function floor3(out, a4) { - out[0] = Math.floor(a4[0]); - out[1] = Math.floor(a4[1]); - return out; -} -function min3(out, a4, b10) { - out[0] = Math.min(a4[0], b10[0]); - out[1] = Math.min(a4[1], b10[1]); - return out; -} -function max3(out, a4, b10) { - out[0] = Math.max(a4[0], b10[0]); - out[1] = Math.max(a4[1], b10[1]); - return out; -} -function round3(out, a4) { - out[0] = Math.round(a4[0]); - out[1] = Math.round(a4[1]); - return out; -} -function scale6(out, a4, b10) { - out[0] = a4[0] * b10; - out[1] = a4[1] * b10; - return out; -} -function scaleAndAdd3(out, a4, b10, scale12) { - out[0] = a4[0] + b10[0] * scale12; - out[1] = a4[1] + b10[1] * scale12; - return out; -} -function distance3(a4, b10) { - var x6 = b10[0] - a4[0], y5 = b10[1] - a4[1]; - return Math.hypot(x6, y5); -} -function squaredDistance3(a4, b10) { - var x6 = b10[0] - a4[0], y5 = b10[1] - a4[1]; - return x6 * x6 + y5 * y5; -} -function length4(a4) { - var x6 = a4[0], y5 = a4[1]; - return Math.hypot(x6, y5); -} -function squaredLength4(a4) { - var x6 = a4[0], y5 = a4[1]; - return x6 * x6 + y5 * y5; -} -function negate3(out, a4) { - out[0] = -a4[0]; - out[1] = -a4[1]; - return out; -} -function inverse3(out, a4) { - out[0] = 1 / a4[0]; - out[1] = 1 / a4[1]; - return out; -} -function normalize4(out, a4) { - var x6 = a4[0], y5 = a4[1]; - var len5 = x6 * x6 + y5 * y5; - if (len5 > 0) { - len5 = 1 / Math.sqrt(len5); - } - out[0] = a4[0] * len5; - out[1] = a4[1] * len5; - return out; -} -function dot4(a4, b10) { - return a4[0] * b10[0] + a4[1] * b10[1]; -} -function cross3(out, a4, b10) { - var z3 = a4[0] * b10[1] - a4[1] * b10[0]; - out[0] = out[1] = 0; - out[2] = z3; - return out; -} -function lerp4(out, a4, b10, t4) { - var ax = a4[0], ay = a4[1]; - out[0] = ax + t4 * (b10[0] - ax); - out[1] = ay + t4 * (b10[1] - ay); - return out; -} -function random4(out, scale12) { - scale12 = scale12 || 1; - var r4 = RANDOM() * 2 * Math.PI; - out[0] = Math.cos(r4) * scale12; - out[1] = Math.sin(r4) * scale12; - return out; -} -function transformMat2(out, a4, m4) { - var x6 = a4[0], y5 = a4[1]; - out[0] = m4[0] * x6 + m4[2] * y5; - out[1] = m4[1] * x6 + m4[3] * y5; - return out; -} -function transformMat2d(out, a4, m4) { - var x6 = a4[0], y5 = a4[1]; - out[0] = m4[0] * x6 + m4[2] * y5 + m4[4]; - out[1] = m4[1] * x6 + m4[3] * y5 + m4[5]; - return out; -} -function transformMat32(out, a4, m4) { - var x6 = a4[0], y5 = a4[1]; - out[0] = m4[0] * x6 + m4[3] * y5 + m4[6]; - out[1] = m4[1] * x6 + m4[4] * y5 + m4[7]; - return out; -} -function transformMat43(out, a4, m4) { - var x6 = a4[0]; - var y5 = a4[1]; - out[0] = m4[0] * x6 + m4[4] * y5 + m4[12]; - out[1] = m4[1] * x6 + m4[5] * y5 + m4[13]; - return out; -} -function rotate3(out, a4, b10, rad) { - var p0 = a4[0] - b10[0], p1 = a4[1] - b10[1], sinC = Math.sin(rad), cosC = Math.cos(rad); - out[0] = p0 * cosC - p1 * sinC + b10[0]; - out[1] = p0 * sinC + p1 * cosC + b10[1]; - return out; -} -function angle2(a4, b10) { - var x1 = a4[0], y1 = a4[1], x22 = b10[0], y22 = b10[1], mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x22 * x22 + y22 * y22), cosine = mag && (x1 * x22 + y1 * y22) / mag; - return Math.acos(Math.min(Math.max(cosine, -1), 1)); -} -function zero3(out) { - out[0] = 0; - out[1] = 0; - return out; -} -function str7(a4) { - return "vec2(" + a4[0] + ", " + a4[1] + ")"; -} -function exactEquals6(a4, b10) { - return a4[0] === b10[0] && a4[1] === b10[1]; -} -function equals6(a4, b10) { - var a0 = a4[0], a1 = a4[1]; - var b02 = b10[0], b12 = b10[1]; - return Math.abs(a0 - b02) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b02)) && Math.abs(a1 - b12) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b12)); -} -var len4 = length4; -var sub5 = subtract5; -var mul6 = multiply6; -var div3 = divide3; -var dist3 = distance3; -var sqrDist3 = squaredDistance3; -var sqrLen4 = squaredLength4; -var forEach3 = function() { - var vec = create6(); - return function(a4, stride, offset, count2, fn2, arg) { - var i4, l4; - if (!stride) { - stride = 2; - } - if (!offset) { - offset = 0; - } - if (count2) { - l4 = Math.min(count2 * stride + offset, a4.length); - } else { - l4 = a4.length; - } - for (i4 = offset; i4 < l4; i4 += stride) { - vec[0] = a4[i4]; - vec[1] = a4[i4 + 1]; - fn2(vec, vec, arg); - a4[i4] = vec[0]; - a4[i4 + 1] = vec[1]; - } - return a4; - }; -}(); - -// node_modules/@antv/matrix-util/esm/ext.js -var ext_exports = {}; -__export(ext_exports, { - angleTo: () => angleTo, - direction: () => direction, - leftRotate: () => leftRotate, - leftScale: () => leftScale, - leftTranslate: () => leftTranslate, - transform: () => transform, - vertical: () => vertical -}); -function leftTranslate(out, a4, v3) { - var transMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromTranslation(transMat, v3); - return mat3_exports.multiply(out, transMat, a4); -} -function leftRotate(out, a4, rad) { - var rotateMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromRotation(rotateMat, rad); - return mat3_exports.multiply(out, rotateMat, a4); -} -function leftScale(out, a4, v3) { - var scaleMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromScaling(scaleMat, v3); - return mat3_exports.multiply(out, scaleMat, a4); -} -function leftMultiply(out, a4, a1) { - return mat3_exports.multiply(out, a1, a4); -} -function transform(m4, actions) { - var matrix = m4 ? [].concat(m4) : [1, 0, 0, 0, 1, 0, 0, 0, 1]; - for (var i4 = 0, len5 = actions.length; i4 < len5; i4++) { - var action = actions[i4]; - switch (action[0]) { - case "t": - leftTranslate(matrix, matrix, [action[1], action[2]]); - break; - case "s": - leftScale(matrix, matrix, [action[1], action[2]]); - break; - case "r": - leftRotate(matrix, matrix, action[1]); - break; - case "m": - leftMultiply(matrix, matrix, action[1]); - break; - default: - break; - } - } - return matrix; -} -function direction(v1, v22) { - return v1[0] * v22[1] - v22[0] * v1[1]; -} -function angleTo(v1, v22, direct) { - var ang = vec2_exports.angle(v1, v22); - var angleLargeThanPI = direction(v1, v22) >= 0; - if (direct) { - if (angleLargeThanPI) { - return Math.PI * 2 - ang; - } - return ang; - } - if (angleLargeThanPI) { - return ang; - } - return Math.PI * 2 - ang; -} -function vertical(out, v3, flag) { - if (flag) { - out[0] = v3[1]; - out[1] = -1 * v3[0]; - } else { - out[0] = -1 * v3[1]; - out[1] = v3[0]; - } - return out; -} - -// node_modules/@antv/g-base/esm/util/matrix.js -function multiplyMatrix(a4, b10) { - var out = []; - var a00 = a4[0]; - var a01 = a4[1]; - var a02 = a4[2]; - var a10 = a4[3]; - var a11 = a4[4]; - var a12 = a4[5]; - var a20 = a4[6]; - var a21 = a4[7]; - var a22 = a4[8]; - var b00 = b10[0]; - var b01 = b10[1]; - var b02 = b10[2]; - var b102 = b10[3]; - var b11 = b10[4]; - var b12 = b10[5]; - var b20 = b10[6]; - var b21 = b10[7]; - var b222 = b10[8]; - out[0] = b00 * a00 + b01 * a10 + b02 * a20; - out[1] = b00 * a01 + b01 * a11 + b02 * a21; - out[2] = b00 * a02 + b01 * a12 + b02 * a22; - out[3] = b102 * a00 + b11 * a10 + b12 * a20; - out[4] = b102 * a01 + b11 * a11 + b12 * a21; - out[5] = b102 * a02 + b11 * a12 + b12 * a22; - out[6] = b20 * a00 + b21 * a10 + b222 * a20; - out[7] = b20 * a01 + b21 * a11 + b222 * a21; - out[8] = b20 * a02 + b21 * a12 + b222 * a22; - return out; -} -function multiplyVec2(m4, v3) { - var out = []; - var x6 = v3[0]; - var y5 = v3[1]; - out[0] = m4[0] * x6 + m4[3] * y5 + m4[6]; - out[1] = m4[1] * x6 + m4[4] * y5 + m4[7]; - return out; -} -function invert4(a4) { - var out = []; - var a00 = a4[0]; - var a01 = a4[1]; - var a02 = a4[2]; - var a10 = a4[3]; - var a11 = a4[4]; - var a12 = a4[5]; - var a20 = a4[6]; - var a21 = a4[7]; - var a22 = a4[8]; - var b01 = a22 * a11 - a12 * a21; - var b11 = -a22 * a10 + a12 * a20; - var b21 = a21 * a10 - a11 * a20; - var det = a00 * b01 + a01 * b11 + a02 * b21; - if (!det) { - return null; - } - det = 1 / det; - out[0] = b01 * det; - out[1] = (-a22 * a01 + a02 * a21) * det; - out[2] = (a12 * a01 - a02 * a11) * det; - out[3] = b11 * det; - out[4] = (a22 * a00 - a02 * a20) * det; - out[5] = (-a12 * a00 + a02 * a10) * det; - out[6] = b21 * det; - out[7] = (-a21 * a00 + a01 * a20) * det; - out[8] = (a11 * a00 - a01 * a10) * det; - return out; -} - -// node_modules/@antv/g-base/esm/abstract/element.js -var transform2 = ext_exports.transform; -var MATRIX = "matrix"; -var CLONE_CFGS = ["zIndex", "capture", "visible", "type"]; -var RESERVED_PORPS = ["repeat"]; -var DELEGATION_SPLIT = ":"; -var WILDCARD2 = "*"; -function _cloneArrayAttr(arr) { - var result = []; - for (var i4 = 0; i4 < arr.length; i4++) { - if (is_array_default(arr[i4])) { - result.push([].concat(arr[i4])); - } else { - result.push(arr[i4]); - } - } - return result; -} -function getFormatFromAttrs(toAttrs, shape) { - var fromAttrs = {}; - var attrs = shape.attrs; - for (var k4 in toAttrs) { - fromAttrs[k4] = attrs[k4]; - } - return fromAttrs; -} -function getFormatToAttrs(props, shape) { - var toAttrs = {}; - var attrs = shape.attr(); - each_default(props, function(v3, k4) { - if (RESERVED_PORPS.indexOf(k4) === -1 && !is_equal_default(attrs[k4], v3)) { - toAttrs[k4] = v3; - } - }); - return toAttrs; -} -function checkExistedAttrs(animations, animation7) { - if (animation7.onFrame) { - return animations; - } - var startTime = animation7.startTime, delay = animation7.delay, duration = animation7.duration; - var hasOwnProperty4 = Object.prototype.hasOwnProperty; - each_default(animations, function(item) { - if (startTime + delay < item.startTime + item.delay + item.duration && duration > item.delay) { - each_default(animation7.toAttrs, function(v3, k4) { - if (hasOwnProperty4.call(item.toAttrs, k4)) { - delete item.toAttrs[k4]; - delete item.fromAttrs[k4]; - } - }); - } - }); - return animations; -} -var Element2 = function(_super) { - __extends(Element4, _super); - function Element4(cfg) { - var _this = _super.call(this, cfg) || this; - _this.attrs = {}; - var attrs = _this.getDefaultAttrs(); - mix(attrs, cfg.attrs); - _this.attrs = attrs; - _this.initAttrs(attrs); - _this.initAnimate(); - return _this; - } - Element4.prototype.getDefaultCfg = function() { - return { - visible: true, - capture: true, - zIndex: 0 - }; - }; - Element4.prototype.getDefaultAttrs = function() { - return { - matrix: this.getDefaultMatrix(), - opacity: 1 - }; - }; - Element4.prototype.onCanvasChange = function(changeType) { - }; - Element4.prototype.initAttrs = function(attrs) { - }; - Element4.prototype.initAnimate = function() { - this.set("animable", true); - this.set("animating", false); - }; - Element4.prototype.isGroup = function() { - return false; - }; - Element4.prototype.getParent = function() { - return this.get("parent"); - }; - Element4.prototype.getCanvas = function() { - return this.get("canvas"); - }; - Element4.prototype.attr = function() { - var _a6; - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var name = args[0], value2 = args[1]; - if (!name) - return this.attrs; - if (is_object_default(name)) { - for (var k4 in name) { - this.setAttr(k4, name[k4]); - } - this.afterAttrsChange(name); - return this; - } - if (args.length === 2) { - this.setAttr(name, value2); - this.afterAttrsChange((_a6 = {}, _a6[name] = value2, _a6)); - return this; - } - return this.attrs[name]; - }; - Element4.prototype.isClipped = function(refX, refY) { - var clip = this.getClip(); - return clip && !clip.isHit(refX, refY); - }; - Element4.prototype.setAttr = function(name, value2) { - var originValue = this.attrs[name]; - if (originValue !== value2) { - this.attrs[name] = value2; - this.onAttrChange(name, value2, originValue); - } - }; - Element4.prototype.onAttrChange = function(name, value2, originValue) { - if (name === "matrix") { - this.set("totalMatrix", null); - } - }; - Element4.prototype.afterAttrsChange = function(targetAttrs) { - if (this.cfg.isClipShape) { - var applyTo = this.cfg.applyTo; - if (applyTo) { - applyTo.onCanvasChange("clip"); - } - } else { - this.onCanvasChange("attr"); - } - }; - Element4.prototype.show = function() { - this.set("visible", true); - this.onCanvasChange("show"); - return this; - }; - Element4.prototype.hide = function() { - this.set("visible", false); - this.onCanvasChange("hide"); - return this; - }; - Element4.prototype.setZIndex = function(zIndex) { - this.set("zIndex", zIndex); - var parent = this.getParent(); - if (parent) { - parent.sort(); - } - return this; - }; - Element4.prototype.toFront = function() { - var parent = this.getParent(); - if (!parent) { - return; - } - var children = parent.getChildren(); - var el = this.get("el"); - var index2 = children.indexOf(this); - children.splice(index2, 1); - children.push(this); - this.onCanvasChange("zIndex"); - }; - Element4.prototype.toBack = function() { - var parent = this.getParent(); - if (!parent) { - return; - } - var children = parent.getChildren(); - var el = this.get("el"); - var index2 = children.indexOf(this); - children.splice(index2, 1); - children.unshift(this); - this.onCanvasChange("zIndex"); - }; - Element4.prototype.remove = function(destroy) { - if (destroy === void 0) { - destroy = true; - } - var parent = this.getParent(); - if (parent) { - removeFromArray(parent.getChildren(), this); - if (!parent.get("clearing")) { - this.onCanvasChange("remove"); - } - } else { - this.onCanvasChange("remove"); - } - if (destroy) { - this.destroy(); - } - }; - Element4.prototype.resetMatrix = function() { - this.attr(MATRIX, this.getDefaultMatrix()); - this.onCanvasChange("matrix"); - }; - Element4.prototype.getMatrix = function() { - return this.attr(MATRIX); - }; - Element4.prototype.setMatrix = function(m4) { - this.attr(MATRIX, m4); - this.onCanvasChange("matrix"); - }; - Element4.prototype.getTotalMatrix = function() { - var totalMatrix = this.cfg.totalMatrix; - if (!totalMatrix) { - var currentMatrix = this.attr("matrix"); - var parentMatrix = this.cfg.parentMatrix; - if (parentMatrix && currentMatrix) { - totalMatrix = multiplyMatrix(parentMatrix, currentMatrix); - } else { - totalMatrix = currentMatrix || parentMatrix; - } - this.set("totalMatrix", totalMatrix); - } - return totalMatrix; - }; - Element4.prototype.applyMatrix = function(matrix) { - var currentMatrix = this.attr("matrix"); - var totalMatrix = null; - if (matrix && currentMatrix) { - totalMatrix = multiplyMatrix(matrix, currentMatrix); - } else { - totalMatrix = currentMatrix || matrix; - } - this.set("totalMatrix", totalMatrix); - this.set("parentMatrix", matrix); - }; - Element4.prototype.getDefaultMatrix = function() { - return null; - }; - Element4.prototype.applyToMatrix = function(v3) { - var matrix = this.attr("matrix"); - if (matrix) { - return multiplyVec2(matrix, v3); - } - return v3; - }; - Element4.prototype.invertFromMatrix = function(v3) { - var matrix = this.attr("matrix"); - if (matrix) { - var invertMatrix3 = invert4(matrix); - if (invertMatrix3) { - return multiplyVec2(invertMatrix3, v3); - } - } - return v3; - }; - Element4.prototype.setClip = function(clipCfg) { - var canvas = this.getCanvas(); - var clipShape = null; - if (clipCfg) { - var ShapeBase4 = this.getShapeBase(); - var shapeType = upper_first_default(clipCfg.type); - var Cons = ShapeBase4[shapeType]; - if (Cons) { - clipShape = new Cons({ - type: clipCfg.type, - isClipShape: true, - applyTo: this, - attrs: clipCfg.attrs, - canvas - }); - } - } - this.set("clipShape", clipShape); - this.onCanvasChange("clip"); - return clipShape; - }; - Element4.prototype.getClip = function() { - var clipShape = this.cfg.clipShape; - if (!clipShape) { - return null; - } - return clipShape; - }; - Element4.prototype.clone = function() { - var _this = this; - var originAttrs = this.attrs; - var attrs = {}; - each_default(originAttrs, function(i4, k4) { - if (is_array_default(originAttrs[k4])) { - attrs[k4] = _cloneArrayAttr(originAttrs[k4]); - } else { - attrs[k4] = originAttrs[k4]; - } - }); - var cons = this.constructor; - var clone10 = new cons({ attrs }); - each_default(CLONE_CFGS, function(cfgName) { - clone10.set(cfgName, _this.get(cfgName)); - }); - return clone10; - }; - Element4.prototype.destroy = function() { - var destroyed = this.destroyed; - if (destroyed) { - return; - } - this.attrs = {}; - _super.prototype.destroy.call(this); - }; - Element4.prototype.isAnimatePaused = function() { - return this.get("_pause").isPaused; - }; - Element4.prototype.animate = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (!this.get("timeline") && !this.get("canvas")) { - return; - } - this.set("animating", true); - var timeline = this.get("timeline"); - if (!timeline) { - timeline = this.get("canvas").get("timeline"); - this.set("timeline", timeline); - } - var animations = this.get("animations") || []; - if (!timeline.timer) { - timeline.initTimer(); - } - var toAttrs = args[0], duration = args[1], _a6 = args[2], easing = _a6 === void 0 ? "easeLinear" : _a6, _b = args[3], callback = _b === void 0 ? noop_default : _b, _c = args[4], delay = _c === void 0 ? 0 : _c; - var onFrame; - var repeat2; - var pauseCallback; - var resumeCallback; - var animateCfg; - if (is_function_default(toAttrs)) { - onFrame = toAttrs; - toAttrs = {}; - } else if (is_object_default(toAttrs) && toAttrs.onFrame) { - onFrame = toAttrs.onFrame; - repeat2 = toAttrs.repeat; - } - if (is_object_default(duration)) { - animateCfg = duration; - duration = animateCfg.duration; - easing = animateCfg.easing || "easeLinear"; - delay = animateCfg.delay || 0; - repeat2 = animateCfg.repeat || repeat2 || false; - callback = animateCfg.callback || noop_default; - pauseCallback = animateCfg.pauseCallback || noop_default; - resumeCallback = animateCfg.resumeCallback || noop_default; - } else { - if (is_number_default(callback)) { - delay = callback; - callback = null; - } - if (is_function_default(easing)) { - callback = easing; - easing = "easeLinear"; - } else { - easing = easing || "easeLinear"; - } - } - var formatToAttrs = getFormatToAttrs(toAttrs, this); - var animation7 = { - fromAttrs: getFormatFromAttrs(formatToAttrs, this), - toAttrs: formatToAttrs, - duration, - easing, - repeat: repeat2, - callback, - pauseCallback, - resumeCallback, - delay, - startTime: timeline.getTime(), - id: unique_id_default(), - onFrame, - pathFormatted: false - }; - if (animations.length > 0) { - animations = checkExistedAttrs(animations, animation7); - } else { - timeline.addAnimator(this); - } - animations.push(animation7); - this.set("animations", animations); - this.set("_pause", { isPaused: false }); - }; - Element4.prototype.stopAnimate = function(toEnd) { - var _this = this; - if (toEnd === void 0) { - toEnd = true; - } - var animations = this.get("animations"); - each_default(animations, function(animation7) { - if (toEnd) { - if (animation7.onFrame) { - _this.attr(animation7.onFrame(1)); - } else { - _this.attr(animation7.toAttrs); - } - } - if (animation7.callback) { - animation7.callback(); - } - }); - this.set("animating", false); - this.set("animations", []); - }; - Element4.prototype.pauseAnimate = function() { - var timeline = this.get("timeline"); - var animations = this.get("animations"); - var pauseTime = timeline.getTime(); - each_default(animations, function(animation7) { - animation7._paused = true; - animation7._pauseTime = pauseTime; - if (animation7.pauseCallback) { - animation7.pauseCallback(); - } - }); - this.set("_pause", { - isPaused: true, - pauseTime - }); - return this; - }; - Element4.prototype.resumeAnimate = function() { - var timeline = this.get("timeline"); - var current = timeline.getTime(); - var animations = this.get("animations"); - var pauseTime = this.get("_pause").pauseTime; - each_default(animations, function(animation7) { - animation7.startTime = animation7.startTime + (current - pauseTime); - animation7._paused = false; - animation7._pauseTime = null; - if (animation7.resumeCallback) { - animation7.resumeCallback(); - } - }); - this.set("_pause", { - isPaused: false - }); - this.set("animations", animations); - return this; - }; - Element4.prototype.emitDelegation = function(type2, eventObj) { - var _this = this; - var paths = eventObj.propagationPath; - var events = this.getEvents(); - var relativeShape; - if (type2 === "mouseenter") { - relativeShape = eventObj.fromShape; - } else if (type2 === "mouseleave") { - relativeShape = eventObj.toShape; - } - var _loop_1 = function(i5) { - var element = paths[i5]; - var name_1 = element.get("name"); - if (name_1) { - if ((element.isGroup() || element.isCanvas && element.isCanvas()) && relativeShape && isParent(element, relativeShape)) { - return "break"; - } - if (is_array_default(name_1)) { - each_default(name_1, function(subName) { - _this.emitDelegateEvent(element, subName, eventObj); - }); - } else { - this_1.emitDelegateEvent(element, name_1, eventObj); - } - } - }; - var this_1 = this; - for (var i4 = 0; i4 < paths.length; i4++) { - var state_1 = _loop_1(i4); - if (state_1 === "break") - break; - } - }; - Element4.prototype.emitDelegateEvent = function(element, name, eventObj) { - var events = this.getEvents(); - var eventName = name + DELEGATION_SPLIT + eventObj.type; - if (events[eventName] || events[WILDCARD2]) { - eventObj.name = eventName; - eventObj.currentTarget = element; - eventObj.delegateTarget = this; - eventObj.delegateObject = element.get("delegateObject"); - this.emit(eventName, eventObj); - } - }; - Element4.prototype.translate = function(translateX, translateY) { - if (translateX === void 0) { - translateX = 0; - } - if (translateY === void 0) { - translateY = 0; - } - var matrix = this.getMatrix(); - var newMatrix = transform2(matrix, [["t", translateX, translateY]]); - this.setMatrix(newMatrix); - return this; - }; - Element4.prototype.move = function(targetX, targetY) { - var x6 = this.attr("x") || 0; - var y5 = this.attr("y") || 0; - this.translate(targetX - x6, targetY - y5); - return this; - }; - Element4.prototype.moveTo = function(targetX, targetY) { - return this.move(targetX, targetY); - }; - Element4.prototype.scale = function(ratioX, ratioY) { - var matrix = this.getMatrix(); - var newMatrix = transform2(matrix, [["s", ratioX, ratioY || ratioX]]); - this.setMatrix(newMatrix); - return this; - }; - Element4.prototype.rotate = function(radian) { - var matrix = this.getMatrix(); - var newMatrix = transform2(matrix, [["r", radian]]); - this.setMatrix(newMatrix); - return this; - }; - Element4.prototype.rotateAtStart = function(rotate8) { - var _a6 = this.attr(), x6 = _a6.x, y5 = _a6.y; - var matrix = this.getMatrix(); - var newMatrix = transform2(matrix, [ - ["t", -x6, -y5], - ["r", rotate8], - ["t", x6, y5] - ]); - this.setMatrix(newMatrix); - return this; - }; - Element4.prototype.rotateAtPoint = function(x6, y5, rotate8) { - var matrix = this.getMatrix(); - var newMatrix = transform2(matrix, [ - ["t", -x6, -y5], - ["r", rotate8], - ["t", x6, y5] - ]); - this.setMatrix(newMatrix); - return this; - }; - return Element4; -}(base_default2); -var element_default = Element2; - -// node_modules/@antv/g-base/esm/abstract/container.js -var SHAPE_MAP = {}; -var INDEX = "_INDEX"; -function setCanvas(element, canvas) { - element.set("canvas", canvas); - if (element.isGroup()) { - var children = element.get("children"); - if (children.length) { - children.forEach(function(child) { - setCanvas(child, canvas); - }); - } - } -} -function setTimeline(element, timeline) { - element.set("timeline", timeline); - if (element.isGroup()) { - var children = element.get("children"); - if (children.length) { - children.forEach(function(child) { - setTimeline(child, timeline); - }); - } - } -} -function removeChild(container2, element, destroy) { - if (destroy === void 0) { - destroy = true; - } - if (destroy) { - element.destroy(); - } else { - element.set("parent", null); - element.set("canvas", null); - } - removeFromArray(container2.getChildren(), element); -} -function getComparer(compare4) { - return function(left2, right2) { - var result = compare4(left2, right2); - return result === 0 ? left2[INDEX] - right2[INDEX] : result; - }; -} -var Container = function(_super) { - __extends(Container3, _super); - function Container3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Container3.prototype.isCanvas = function() { - return false; - }; - Container3.prototype.getBBox = function() { - var minX = Infinity; - var maxX = -Infinity; - var minY = Infinity; - var maxY2 = -Infinity; - var xArr = []; - var yArr = []; - var children = this.getChildren().filter(function(child) { - return child.get("visible") && (!child.isGroup() || child.isGroup() && child.getChildren().length > 0); - }); - if (children.length > 0) { - each_default(children, function(child) { - var box3 = child.getBBox(); - xArr.push(box3.minX, box3.maxX); - yArr.push(box3.minY, box3.maxY); - }); - minX = min_default(xArr); - maxX = max_default(xArr); - minY = min_default(yArr); - maxY2 = max_default(yArr); - } else { - minX = 0; - maxX = 0; - minY = 0; - maxY2 = 0; - } - var box2 = { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; - return box2; - }; - Container3.prototype.getCanvasBBox = function() { - var minX = Infinity; - var maxX = -Infinity; - var minY = Infinity; - var maxY2 = -Infinity; - var xArr = []; - var yArr = []; - var children = this.getChildren().filter(function(child) { - return child.get("visible") && (!child.isGroup() || child.isGroup() && child.getChildren().length > 0); - }); - if (children.length > 0) { - each_default(children, function(child) { - var box3 = child.getCanvasBBox(); - xArr.push(box3.minX, box3.maxX); - yArr.push(box3.minY, box3.maxY); - }); - minX = min_default(xArr); - maxX = max_default(xArr); - minY = min_default(yArr); - maxY2 = max_default(yArr); - } else { - minX = 0; - maxX = 0; - minY = 0; - maxY2 = 0; - } - var box2 = { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; - return box2; - }; - Container3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - cfg["children"] = []; - return cfg; - }; - Container3.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - if (name === "matrix") { - var totalMatrix = this.getTotalMatrix(); - this._applyChildrenMarix(totalMatrix); - } - }; - Container3.prototype.applyMatrix = function(matrix) { - var preTotalMatrix = this.getTotalMatrix(); - _super.prototype.applyMatrix.call(this, matrix); - var totalMatrix = this.getTotalMatrix(); - if (totalMatrix === preTotalMatrix) { - return; - } - this._applyChildrenMarix(totalMatrix); - }; - Container3.prototype._applyChildrenMarix = function(totalMatrix) { - var children = this.getChildren(); - each_default(children, function(child) { - child.applyMatrix(totalMatrix); - }); - }; - Container3.prototype.addShape = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var type2 = args[0]; - var cfg = args[1]; - if (is_object_default(type2)) { - cfg = type2; - } else { - cfg["type"] = type2; - } - var shapeType = SHAPE_MAP[cfg.type]; - if (!shapeType) { - shapeType = upper_first_default(cfg.type); - SHAPE_MAP[cfg.type] = shapeType; - } - var ShapeBase4 = this.getShapeBase(); - var shape = new ShapeBase4[shapeType](cfg); - this.add(shape); - return shape; - }; - Container3.prototype.addGroup = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var groupClass = args[0], cfg = args[1]; - var group2; - if (is_function_default(groupClass)) { - if (cfg) { - group2 = new groupClass(cfg); - } else { - group2 = new groupClass({ - parent: this - }); - } - } else { - var tmpCfg = groupClass || {}; - var TmpGroupClass = this.getGroupBase(); - group2 = new TmpGroupClass(tmpCfg); - } - this.add(group2); - return group2; - }; - Container3.prototype.getCanvas = function() { - var canvas; - if (this.isCanvas()) { - canvas = this; - } else { - canvas = this.get("canvas"); - } - return canvas; - }; - Container3.prototype.getShape = function(x6, y5, ev) { - if (!isAllowCapture(this)) { - return null; - } - var children = this.getChildren(); - var shape; - if (!this.isCanvas()) { - var v3 = [x6, y5, 1]; - v3 = this.invertFromMatrix(v3); - if (!this.isClipped(v3[0], v3[1])) { - shape = this._findShape(children, v3[0], v3[1], ev); - } - } else { - shape = this._findShape(children, x6, y5, ev); - } - return shape; - }; - Container3.prototype._findShape = function(children, x6, y5, ev) { - var shape = null; - for (var i4 = children.length - 1; i4 >= 0; i4--) { - var child = children[i4]; - if (isAllowCapture(child)) { - if (child.isGroup()) { - shape = child.getShape(x6, y5, ev); - } else if (child.isHit(x6, y5)) { - shape = child; - } - } - if (shape) { - break; - } - } - return shape; - }; - Container3.prototype.add = function(element) { - var canvas = this.getCanvas(); - var children = this.getChildren(); - var timeline = this.get("timeline"); - var preParent = element.getParent(); - if (preParent) { - removeChild(preParent, element, false); - } - element.set("parent", this); - if (canvas) { - setCanvas(element, canvas); - } - if (timeline) { - setTimeline(element, timeline); - } - children.push(element); - element.onCanvasChange("add"); - this._applyElementMatrix(element); - }; - Container3.prototype._applyElementMatrix = function(element) { - var totalMatrix = this.getTotalMatrix(); - if (totalMatrix) { - element.applyMatrix(totalMatrix); - } - }; - Container3.prototype.getChildren = function() { - return this.get("children"); - }; - Container3.prototype.sort = function() { - var children = this.getChildren(); - each_default(children, function(child, index2) { - child[INDEX] = index2; - return child; - }); - children.sort(getComparer(function(obj1, obj2) { - return obj1.get("zIndex") - obj2.get("zIndex"); - })); - this.onCanvasChange("sort"); - }; - Container3.prototype.clear = function() { - this.set("clearing", true); - if (this.destroyed) { - return; - } - var children = this.getChildren(); - for (var i4 = children.length - 1; i4 >= 0; i4--) { - children[i4].destroy(); - } - this.set("children", []); - this.onCanvasChange("clear"); - this.set("clearing", false); - }; - Container3.prototype.destroy = function() { - if (this.get("destroyed")) { - return; - } - this.clear(); - _super.prototype.destroy.call(this); - }; - Container3.prototype.getFirst = function() { - return this.getChildByIndex(0); - }; - Container3.prototype.getLast = function() { - var children = this.getChildren(); - return this.getChildByIndex(children.length - 1); - }; - Container3.prototype.getChildByIndex = function(index2) { - var children = this.getChildren(); - return children[index2]; - }; - Container3.prototype.getCount = function() { - var children = this.getChildren(); - return children.length; - }; - Container3.prototype.contain = function(element) { - var children = this.getChildren(); - return children.indexOf(element) > -1; - }; - Container3.prototype.removeChild = function(element, destroy) { - if (destroy === void 0) { - destroy = true; - } - if (this.contain(element)) { - element.remove(destroy); - } - }; - Container3.prototype.findAll = function(fn2) { - var rst = []; - var children = this.getChildren(); - each_default(children, function(element) { - if (fn2(element)) { - rst.push(element); - } - if (element.isGroup()) { - rst = rst.concat(element.findAll(fn2)); - } - }); - return rst; - }; - Container3.prototype.find = function(fn2) { - var rst = null; - var children = this.getChildren(); - each_default(children, function(element) { - if (fn2(element)) { - rst = element; - } else if (element.isGroup()) { - rst = element.find(fn2); - } - if (rst) { - return false; - } - }); - return rst; - }; - Container3.prototype.findById = function(id) { - return this.find(function(element) { - return element.get("id") === id; - }); - }; - Container3.prototype.findByClassName = function(className) { - return this.find(function(element) { - return element.get("className") === className; - }); - }; - Container3.prototype.findAllByName = function(name) { - return this.findAll(function(element) { - return element.get("name") === name; - }); - }; - return Container3; -}(element_default); -var container_default = Container; - -// node_modules/d3-timer/src/timer.js -var frame = 0; -var timeout = 0; -var interval = 0; -var pokeDelay = 1e3; -var taskHead; -var taskTail; -var clockLast = 0; -var clockNow = 0; -var clockSkew = 0; -var clock = typeof performance === "object" && performance.now ? performance : Date; -var setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f3) { - setTimeout(f3, 17); -}; -function now() { - return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); -} -function clearNow() { - clockNow = 0; -} -function Timer() { - this._call = this._time = this._next = null; -} -Timer.prototype = timer.prototype = { - constructor: Timer, - restart: function(callback, delay, time2) { - if (typeof callback !== "function") - throw new TypeError("callback is not a function"); - time2 = (time2 == null ? now() : +time2) + (delay == null ? 0 : +delay); - if (!this._next && taskTail !== this) { - if (taskTail) - taskTail._next = this; - else - taskHead = this; - taskTail = this; - } - this._call = callback; - this._time = time2; - sleep(); - }, - stop: function() { - if (this._call) { - this._call = null; - this._time = Infinity; - sleep(); - } - } -}; -function timer(callback, delay, time2) { - var t4 = new Timer(); - t4.restart(callback, delay, time2); - return t4; -} -function timerFlush() { - now(); - ++frame; - var t4 = taskHead, e4; - while (t4) { - if ((e4 = clockNow - t4._time) >= 0) - t4._call.call(null, e4); - t4 = t4._next; - } - --frame; -} -function wake() { - clockNow = (clockLast = clock.now()) + clockSkew; - frame = timeout = 0; - try { - timerFlush(); - } finally { - frame = 0; - nap(); - clockNow = 0; - } -} -function poke() { - var now2 = clock.now(), delay = now2 - clockLast; - if (delay > pokeDelay) - clockSkew -= delay, clockLast = now2; -} -function nap() { - var t0, t1 = taskHead, t22, time2 = Infinity; - while (t1) { - if (t1._call) { - if (time2 > t1._time) - time2 = t1._time; - t0 = t1, t1 = t1._next; - } else { - t22 = t1._next, t1._next = null; - t1 = t0 ? t0._next = t22 : taskHead = t22; - } - } - taskTail = t0; - sleep(time2); -} -function sleep(time2) { - if (frame) - return; - if (timeout) - timeout = clearTimeout(timeout); - var delay = time2 - clockNow; - if (delay > 24) { - if (time2 < Infinity) - timeout = setTimeout(wake, time2 - clock.now() - clockSkew); - if (interval) - interval = clearInterval(interval); - } else { - if (!interval) - clockLast = clock.now(), interval = setInterval(poke, pokeDelay); - frame = 1, setFrame(wake); - } -} - -// node_modules/d3-ease/src/index.js -var src_exports = {}; -__export(src_exports, { - easeBack: () => backInOut, - easeBackIn: () => backIn, - easeBackInOut: () => backInOut, - easeBackOut: () => backOut, - easeBounce: () => bounceOut, - easeBounceIn: () => bounceIn, - easeBounceInOut: () => bounceInOut, - easeBounceOut: () => bounceOut, - easeCircle: () => circleInOut, - easeCircleIn: () => circleIn, - easeCircleInOut: () => circleInOut, - easeCircleOut: () => circleOut, - easeCubic: () => cubicInOut, - easeCubicIn: () => cubicIn, - easeCubicInOut: () => cubicInOut, - easeCubicOut: () => cubicOut, - easeElastic: () => elasticOut, - easeElasticIn: () => elasticIn, - easeElasticInOut: () => elasticInOut, - easeElasticOut: () => elasticOut, - easeExp: () => expInOut, - easeExpIn: () => expIn, - easeExpInOut: () => expInOut, - easeExpOut: () => expOut, - easeLinear: () => linear, - easePoly: () => polyInOut, - easePolyIn: () => polyIn, - easePolyInOut: () => polyInOut, - easePolyOut: () => polyOut, - easeQuad: () => quadInOut, - easeQuadIn: () => quadIn, - easeQuadInOut: () => quadInOut, - easeQuadOut: () => quadOut, - easeSin: () => sinInOut, - easeSinIn: () => sinIn, - easeSinInOut: () => sinInOut, - easeSinOut: () => sinOut -}); - -// node_modules/d3-ease/src/linear.js -function linear(t4) { - return +t4; -} - -// node_modules/d3-ease/src/quad.js -function quadIn(t4) { - return t4 * t4; -} -function quadOut(t4) { - return t4 * (2 - t4); -} -function quadInOut(t4) { - return ((t4 *= 2) <= 1 ? t4 * t4 : --t4 * (2 - t4) + 1) / 2; -} - -// node_modules/d3-ease/src/cubic.js -function cubicIn(t4) { - return t4 * t4 * t4; -} -function cubicOut(t4) { - return --t4 * t4 * t4 + 1; -} -function cubicInOut(t4) { - return ((t4 *= 2) <= 1 ? t4 * t4 * t4 : (t4 -= 2) * t4 * t4 + 2) / 2; -} - -// node_modules/d3-ease/src/poly.js -var exponent = 3; -var polyIn = function custom(e4) { - e4 = +e4; - function polyIn2(t4) { - return Math.pow(t4, e4); - } - polyIn2.exponent = custom; - return polyIn2; -}(exponent); -var polyOut = function custom2(e4) { - e4 = +e4; - function polyOut2(t4) { - return 1 - Math.pow(1 - t4, e4); - } - polyOut2.exponent = custom2; - return polyOut2; -}(exponent); -var polyInOut = function custom3(e4) { - e4 = +e4; - function polyInOut2(t4) { - return ((t4 *= 2) <= 1 ? Math.pow(t4, e4) : 2 - Math.pow(2 - t4, e4)) / 2; - } - polyInOut2.exponent = custom3; - return polyInOut2; -}(exponent); - -// node_modules/d3-ease/src/sin.js -var pi = Math.PI; -var halfPi = pi / 2; -function sinIn(t4) { - return +t4 === 1 ? 1 : 1 - Math.cos(t4 * halfPi); -} -function sinOut(t4) { - return Math.sin(t4 * halfPi); -} -function sinInOut(t4) { - return (1 - Math.cos(pi * t4)) / 2; -} - -// node_modules/d3-ease/src/math.js -function tpmt(x6) { - return (Math.pow(2, -10 * x6) - 9765625e-10) * 1.0009775171065494; -} - -// node_modules/d3-ease/src/exp.js -function expIn(t4) { - return tpmt(1 - +t4); -} -function expOut(t4) { - return 1 - tpmt(t4); -} -function expInOut(t4) { - return ((t4 *= 2) <= 1 ? tpmt(1 - t4) : 2 - tpmt(t4 - 1)) / 2; -} - -// node_modules/d3-ease/src/circle.js -function circleIn(t4) { - return 1 - Math.sqrt(1 - t4 * t4); -} -function circleOut(t4) { - return Math.sqrt(1 - --t4 * t4); -} -function circleInOut(t4) { - return ((t4 *= 2) <= 1 ? 1 - Math.sqrt(1 - t4 * t4) : Math.sqrt(1 - (t4 -= 2) * t4) + 1) / 2; -} - -// node_modules/d3-ease/src/bounce.js -var b1 = 4 / 11; -var b22 = 6 / 11; -var b3 = 8 / 11; -var b4 = 3 / 4; -var b5 = 9 / 11; -var b6 = 10 / 11; -var b7 = 15 / 16; -var b8 = 21 / 22; -var b9 = 63 / 64; -var b0 = 1 / b1 / b1; -function bounceIn(t4) { - return 1 - bounceOut(1 - t4); -} -function bounceOut(t4) { - return (t4 = +t4) < b1 ? b0 * t4 * t4 : t4 < b3 ? b0 * (t4 -= b22) * t4 + b4 : t4 < b6 ? b0 * (t4 -= b5) * t4 + b7 : b0 * (t4 -= b8) * t4 + b9; -} -function bounceInOut(t4) { - return ((t4 *= 2) <= 1 ? 1 - bounceOut(1 - t4) : bounceOut(t4 - 1) + 1) / 2; -} - -// node_modules/d3-ease/src/back.js -var overshoot = 1.70158; -var backIn = function custom4(s4) { - s4 = +s4; - function backIn2(t4) { - return (t4 = +t4) * t4 * (s4 * (t4 - 1) + t4); - } - backIn2.overshoot = custom4; - return backIn2; -}(overshoot); -var backOut = function custom5(s4) { - s4 = +s4; - function backOut2(t4) { - return --t4 * t4 * ((t4 + 1) * s4 + t4) + 1; - } - backOut2.overshoot = custom5; - return backOut2; -}(overshoot); -var backInOut = function custom6(s4) { - s4 = +s4; - function backInOut2(t4) { - return ((t4 *= 2) < 1 ? t4 * t4 * ((s4 + 1) * t4 - s4) : (t4 -= 2) * t4 * ((s4 + 1) * t4 + s4) + 2) / 2; - } - backInOut2.overshoot = custom6; - return backInOut2; -}(overshoot); - -// node_modules/d3-ease/src/elastic.js -var tau = 2 * Math.PI; -var amplitude = 1; -var period = 0.3; -var elasticIn = function custom7(a4, p4) { - var s4 = Math.asin(1 / (a4 = Math.max(1, a4))) * (p4 /= tau); - function elasticIn2(t4) { - return a4 * tpmt(- --t4) * Math.sin((s4 - t4) / p4); - } - elasticIn2.amplitude = function(a5) { - return custom7(a5, p4 * tau); - }; - elasticIn2.period = function(p5) { - return custom7(a4, p5); - }; - return elasticIn2; -}(amplitude, period); -var elasticOut = function custom8(a4, p4) { - var s4 = Math.asin(1 / (a4 = Math.max(1, a4))) * (p4 /= tau); - function elasticOut2(t4) { - return 1 - a4 * tpmt(t4 = +t4) * Math.sin((t4 + s4) / p4); - } - elasticOut2.amplitude = function(a5) { - return custom8(a5, p4 * tau); - }; - elasticOut2.period = function(p5) { - return custom8(a4, p5); - }; - return elasticOut2; -}(amplitude, period); -var elasticInOut = function custom9(a4, p4) { - var s4 = Math.asin(1 / (a4 = Math.max(1, a4))) * (p4 /= tau); - function elasticInOut2(t4) { - return ((t4 = t4 * 2 - 1) < 0 ? a4 * tpmt(-t4) * Math.sin((s4 - t4) / p4) : 2 - a4 * tpmt(t4) * Math.sin((s4 + t4) / p4)) / 2; - } - elasticInOut2.amplitude = function(a5) { - return custom9(a5, p4 * tau); - }; - elasticInOut2.period = function(p5) { - return custom9(a4, p5); - }; - return elasticInOut2; -}(amplitude, period); - -// node_modules/d3-color/src/define.js -function define_default(constructor, factory, prototype) { - constructor.prototype = factory.prototype = prototype; - prototype.constructor = constructor; -} -function extend3(parent, definition) { - var prototype = Object.create(parent.prototype); - for (var key in definition) - prototype[key] = definition[key]; - return prototype; -} - -// node_modules/d3-color/src/color.js -function Color() { -} -var darker = 0.7; -var brighter = 1 / darker; -var reI = "\\s*([+-]?\\d+)\\s*"; -var reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*"; -var reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*"; -var reHex = /^#([0-9a-f]{3,8})$/; -var reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"); -var reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"); -var reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"); -var reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"); -var reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"); -var reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); -var named = { - 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 -}; -define_default(Color, color, { - copy: function(channels) { - return Object.assign(new this.constructor(), this, channels); - }, - displayable: function() { - return this.rgb().displayable(); - }, - hex: color_formatHex, - formatHex: color_formatHex, - formatHsl: color_formatHsl, - formatRgb: color_formatRgb, - toString: color_formatRgb -}); -function color_formatHex() { - return this.rgb().formatHex(); -} -function color_formatHsl() { - return hslConvert(this).formatHsl(); -} -function color_formatRgb() { - return this.rgb().formatRgb(); -} -function color(format2) { - var m4, l4; - format2 = (format2 + "").trim().toLowerCase(); - return (m4 = reHex.exec(format2)) ? (l4 = m4[1].length, m4 = parseInt(m4[1], 16), l4 === 6 ? rgbn(m4) : l4 === 3 ? new Rgb(m4 >> 8 & 15 | m4 >> 4 & 240, m4 >> 4 & 15 | m4 & 240, (m4 & 15) << 4 | m4 & 15, 1) : l4 === 8 ? rgba(m4 >> 24 & 255, m4 >> 16 & 255, m4 >> 8 & 255, (m4 & 255) / 255) : l4 === 4 ? rgba(m4 >> 12 & 15 | m4 >> 8 & 240, m4 >> 8 & 15 | m4 >> 4 & 240, m4 >> 4 & 15 | m4 & 240, ((m4 & 15) << 4 | m4 & 15) / 255) : null) : (m4 = reRgbInteger.exec(format2)) ? new Rgb(m4[1], m4[2], m4[3], 1) : (m4 = reRgbPercent.exec(format2)) ? new Rgb(m4[1] * 255 / 100, m4[2] * 255 / 100, m4[3] * 255 / 100, 1) : (m4 = reRgbaInteger.exec(format2)) ? rgba(m4[1], m4[2], m4[3], m4[4]) : (m4 = reRgbaPercent.exec(format2)) ? rgba(m4[1] * 255 / 100, m4[2] * 255 / 100, m4[3] * 255 / 100, m4[4]) : (m4 = reHslPercent.exec(format2)) ? hsla(m4[1], m4[2] / 100, m4[3] / 100, 1) : (m4 = reHslaPercent.exec(format2)) ? hsla(m4[1], m4[2] / 100, m4[3] / 100, m4[4]) : named.hasOwnProperty(format2) ? rgbn(named[format2]) : format2 === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; -} -function rgbn(n3) { - return new Rgb(n3 >> 16 & 255, n3 >> 8 & 255, n3 & 255, 1); -} -function rgba(r4, g4, b10, a4) { - if (a4 <= 0) - r4 = g4 = b10 = NaN; - return new Rgb(r4, g4, b10, a4); -} -function rgbConvert(o3) { - if (!(o3 instanceof Color)) - o3 = color(o3); - if (!o3) - return new Rgb(); - o3 = o3.rgb(); - return new Rgb(o3.r, o3.g, o3.b, o3.opacity); -} -function rgb(r4, g4, b10, opacity) { - return arguments.length === 1 ? rgbConvert(r4) : new Rgb(r4, g4, b10, opacity == null ? 1 : opacity); -} -function Rgb(r4, g4, b10, opacity) { - this.r = +r4; - this.g = +g4; - this.b = +b10; - this.opacity = +opacity; -} -define_default(Rgb, rgb, extend3(Color, { - brighter: function(k4) { - k4 = k4 == null ? brighter : Math.pow(brighter, k4); - return new Rgb(this.r * k4, this.g * k4, this.b * k4, this.opacity); - }, - darker: function(k4) { - k4 = k4 == null ? darker : Math.pow(darker, k4); - return new Rgb(this.r * k4, this.g * k4, this.b * k4, this.opacity); - }, - rgb: function() { - return this; - }, - displayable: function() { - return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); - }, - hex: rgb_formatHex, - formatHex: rgb_formatHex, - formatRgb: rgb_formatRgb, - toString: rgb_formatRgb -})); -function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); -} -function rgb_formatRgb() { - var a4 = this.opacity; - a4 = isNaN(a4) ? 1 : Math.max(0, Math.min(1, a4)); - return (a4 === 1 ? "rgb(" : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a4 === 1 ? ")" : ", " + a4 + ")"); -} -function hex(value2) { - value2 = Math.max(0, Math.min(255, Math.round(value2) || 0)); - return (value2 < 16 ? "0" : "") + value2.toString(16); -} -function hsla(h3, s4, l4, a4) { - if (a4 <= 0) - h3 = s4 = l4 = NaN; - else if (l4 <= 0 || l4 >= 1) - h3 = s4 = NaN; - else if (s4 <= 0) - h3 = NaN; - return new Hsl(h3, s4, l4, a4); -} -function hslConvert(o3) { - if (o3 instanceof Hsl) - return new Hsl(o3.h, o3.s, o3.l, o3.opacity); - if (!(o3 instanceof Color)) - o3 = color(o3); - if (!o3) - return new Hsl(); - if (o3 instanceof Hsl) - return o3; - o3 = o3.rgb(); - var r4 = o3.r / 255, g4 = o3.g / 255, b10 = o3.b / 255, min7 = Math.min(r4, g4, b10), max8 = Math.max(r4, g4, b10), h3 = NaN, s4 = max8 - min7, l4 = (max8 + min7) / 2; - if (s4) { - if (r4 === max8) - h3 = (g4 - b10) / s4 + (g4 < b10) * 6; - else if (g4 === max8) - h3 = (b10 - r4) / s4 + 2; - else - h3 = (r4 - g4) / s4 + 4; - s4 /= l4 < 0.5 ? max8 + min7 : 2 - max8 - min7; - h3 *= 60; - } else { - s4 = l4 > 0 && l4 < 1 ? 0 : h3; - } - return new Hsl(h3, s4, l4, o3.opacity); -} -function hsl(h3, s4, l4, opacity) { - return arguments.length === 1 ? hslConvert(h3) : new Hsl(h3, s4, l4, opacity == null ? 1 : opacity); -} -function Hsl(h3, s4, l4, opacity) { - this.h = +h3; - this.s = +s4; - this.l = +l4; - this.opacity = +opacity; -} -define_default(Hsl, hsl, extend3(Color, { - brighter: function(k4) { - k4 = k4 == null ? brighter : Math.pow(brighter, k4); - return new Hsl(this.h, this.s, this.l * k4, this.opacity); - }, - darker: function(k4) { - k4 = k4 == null ? darker : Math.pow(darker, k4); - return new Hsl(this.h, this.s, this.l * k4, this.opacity); - }, - rgb: function() { - var h3 = this.h % 360 + (this.h < 0) * 360, s4 = isNaN(h3) || isNaN(this.s) ? 0 : this.s, l4 = this.l, m22 = l4 + (l4 < 0.5 ? l4 : 1 - l4) * s4, m1 = 2 * l4 - m22; - return new Rgb(hsl2rgb(h3 >= 240 ? h3 - 240 : h3 + 120, m1, m22), hsl2rgb(h3, m1, m22), hsl2rgb(h3 < 120 ? h3 + 240 : h3 - 120, m1, m22), this.opacity); - }, - displayable: function() { - return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); - }, - formatHsl: function() { - var a4 = this.opacity; - a4 = isNaN(a4) ? 1 : Math.max(0, Math.min(1, a4)); - return (a4 === 1 ? "hsl(" : "hsla(") + (this.h || 0) + ", " + (this.s || 0) * 100 + "%, " + (this.l || 0) * 100 + "%" + (a4 === 1 ? ")" : ", " + a4 + ")"); - } -})); -function hsl2rgb(h3, m1, m22) { - return (h3 < 60 ? m1 + (m22 - m1) * h3 / 60 : h3 < 180 ? m22 : h3 < 240 ? m1 + (m22 - m1) * (240 - h3) / 60 : m1) * 255; -} - -// node_modules/d3-interpolate/src/basis.js -function basis(t1, v0, v1, v22, v3) { - var t22 = t1 * t1, t32 = t22 * t1; - return ((1 - 3 * t1 + 3 * t22 - t32) * v0 + (4 - 6 * t22 + 3 * t32) * v1 + (1 + 3 * t1 + 3 * t22 - 3 * t32) * v22 + t32 * v3) / 6; -} -function basis_default(values2) { - var n3 = values2.length - 1; - return function(t4) { - var i4 = t4 <= 0 ? t4 = 0 : t4 >= 1 ? (t4 = 1, n3 - 1) : Math.floor(t4 * n3), v1 = values2[i4], v22 = values2[i4 + 1], v0 = i4 > 0 ? values2[i4 - 1] : 2 * v1 - v22, v3 = i4 < n3 - 1 ? values2[i4 + 2] : 2 * v22 - v1; - return basis((t4 - i4 / n3) * n3, v0, v1, v22, v3); - }; -} - -// node_modules/d3-interpolate/src/basisClosed.js -function basisClosed_default(values2) { - var n3 = values2.length; - return function(t4) { - var i4 = Math.floor(((t4 %= 1) < 0 ? ++t4 : t4) * n3), v0 = values2[(i4 + n3 - 1) % n3], v1 = values2[i4 % n3], v22 = values2[(i4 + 1) % n3], v3 = values2[(i4 + 2) % n3]; - return basis((t4 - i4 / n3) * n3, v0, v1, v22, v3); - }; -} - -// node_modules/d3-interpolate/src/constant.js -function constant_default(x6) { - return function() { - return x6; - }; -} - -// node_modules/d3-interpolate/src/color.js -function linear2(a4, d3) { - return function(t4) { - return a4 + t4 * d3; - }; -} -function exponential(a4, b10, y5) { - return a4 = Math.pow(a4, y5), b10 = Math.pow(b10, y5) - a4, y5 = 1 / y5, function(t4) { - return Math.pow(a4 + t4 * b10, y5); - }; -} -function gamma(y5) { - return (y5 = +y5) === 1 ? nogamma : function(a4, b10) { - return b10 - a4 ? exponential(a4, b10, y5) : constant_default(isNaN(a4) ? b10 : a4); - }; -} -function nogamma(a4, b10) { - var d3 = b10 - a4; - return d3 ? linear2(a4, d3) : constant_default(isNaN(a4) ? b10 : a4); -} - -// node_modules/d3-interpolate/src/rgb.js -var rgb_default = function rgbGamma(y5) { - var color4 = gamma(y5); - function rgb2(start, end2) { - var r4 = color4((start = rgb(start)).r, (end2 = rgb(end2)).r), g4 = color4(start.g, end2.g), b10 = color4(start.b, end2.b), opacity = nogamma(start.opacity, end2.opacity); - return function(t4) { - start.r = r4(t4); - start.g = g4(t4); - start.b = b10(t4); - start.opacity = opacity(t4); - return start + ""; - }; - } - rgb2.gamma = rgbGamma; - return rgb2; -}(1); -function rgbSpline(spline) { - return function(colors) { - var n3 = colors.length, r4 = new Array(n3), g4 = new Array(n3), b10 = new Array(n3), i4, color4; - for (i4 = 0; i4 < n3; ++i4) { - color4 = rgb(colors[i4]); - r4[i4] = color4.r || 0; - g4[i4] = color4.g || 0; - b10[i4] = color4.b || 0; - } - r4 = spline(r4); - g4 = spline(g4); - b10 = spline(b10); - color4.opacity = 1; - return function(t4) { - color4.r = r4(t4); - color4.g = g4(t4); - color4.b = b10(t4); - return color4 + ""; - }; - }; -} -var rgbBasis = rgbSpline(basis_default); -var rgbBasisClosed = rgbSpline(basisClosed_default); - -// node_modules/d3-interpolate/src/numberArray.js -function numberArray_default(a4, b10) { - if (!b10) - b10 = []; - var n3 = a4 ? Math.min(b10.length, a4.length) : 0, c5 = b10.slice(), i4; - return function(t4) { - for (i4 = 0; i4 < n3; ++i4) - c5[i4] = a4[i4] * (1 - t4) + b10[i4] * t4; - return c5; - }; -} -function isNumberArray(x6) { - return ArrayBuffer.isView(x6) && !(x6 instanceof DataView); -} - -// node_modules/d3-interpolate/src/array.js -function array_default(a4, b10) { - return (isNumberArray(b10) ? numberArray_default : genericArray)(a4, b10); -} -function genericArray(a4, b10) { - var nb = b10 ? b10.length : 0, na = a4 ? Math.min(nb, a4.length) : 0, x6 = new Array(na), c5 = new Array(nb), i4; - for (i4 = 0; i4 < na; ++i4) - x6[i4] = value_default(a4[i4], b10[i4]); - for (; i4 < nb; ++i4) - c5[i4] = b10[i4]; - return function(t4) { - for (i4 = 0; i4 < na; ++i4) - c5[i4] = x6[i4](t4); - return c5; - }; -} - -// node_modules/d3-interpolate/src/date.js -function date_default(a4, b10) { - var d3 = new Date(); - return a4 = +a4, b10 = +b10, function(t4) { - return d3.setTime(a4 * (1 - t4) + b10 * t4), d3; - }; -} - -// node_modules/d3-interpolate/src/number.js -function number_default(a4, b10) { - return a4 = +a4, b10 = +b10, function(t4) { - return a4 * (1 - t4) + b10 * t4; - }; -} - -// node_modules/d3-interpolate/src/object.js -function object_default(a4, b10) { - var i4 = {}, c5 = {}, k4; - if (a4 === null || typeof a4 !== "object") - a4 = {}; - if (b10 === null || typeof b10 !== "object") - b10 = {}; - for (k4 in b10) { - if (k4 in a4) { - i4[k4] = value_default(a4[k4], b10[k4]); - } else { - c5[k4] = b10[k4]; - } - } - return function(t4) { - for (k4 in i4) - c5[k4] = i4[k4](t4); - return c5; - }; -} - -// node_modules/d3-interpolate/src/string.js -var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g; -var reB = new RegExp(reA.source, "g"); -function zero4(b10) { - return function() { - return b10; - }; -} -function one(b10) { - return function(t4) { - return b10(t4) + ""; - }; -} -function string_default(a4, b10) { - var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i4 = -1, s4 = [], q4 = []; - a4 = a4 + "", b10 = b10 + ""; - while ((am = reA.exec(a4)) && (bm = reB.exec(b10))) { - if ((bs = bm.index) > bi) { - bs = b10.slice(bi, bs); - if (s4[i4]) - s4[i4] += bs; - else - s4[++i4] = bs; - } - if ((am = am[0]) === (bm = bm[0])) { - if (s4[i4]) - s4[i4] += bm; - else - s4[++i4] = bm; - } else { - s4[++i4] = null; - q4.push({ i: i4, x: number_default(am, bm) }); - } - bi = reB.lastIndex; - } - if (bi < b10.length) { - bs = b10.slice(bi); - if (s4[i4]) - s4[i4] += bs; - else - s4[++i4] = bs; - } - return s4.length < 2 ? q4[0] ? one(q4[0].x) : zero4(b10) : (b10 = q4.length, function(t4) { - for (var i5 = 0, o3; i5 < b10; ++i5) - s4[(o3 = q4[i5]).i] = o3.x(t4); - return s4.join(""); - }); -} - -// node_modules/d3-interpolate/src/value.js -function value_default(a4, b10) { - var t4 = typeof b10, c5; - return b10 == null || t4 === "boolean" ? constant_default(b10) : (t4 === "number" ? number_default : t4 === "string" ? (c5 = color(b10)) ? (b10 = c5, rgb_default) : string_default : b10 instanceof color ? rgb_default : b10 instanceof Date ? date_default : isNumberArray(b10) ? numberArray_default : Array.isArray(b10) ? genericArray : typeof b10.valueOf !== "function" && typeof b10.toString !== "function" || isNaN(b10) ? object_default : number_default)(a4, b10); -} - -// node_modules/@antv/g-base/esm/util/color.js -var isColorProp = function(prop) { - return ["fill", "stroke", "fillStyle", "strokeStyle"].includes(prop); -}; -var isGradientColor = function(val) { - return /^[r,R,L,l]{1}[\s]*\(/.test(val); -}; - -// node_modules/@antv/g-base/esm/animate/timeline.js -var IDENTITY_MATRIX = [1, 0, 0, 0, 1, 0, 0, 0, 1]; -function _update(shape, animation7, ratio) { - var cProps = {}; - var fromAttrs = animation7.fromAttrs, toAttrs = animation7.toAttrs; - if (shape.destroyed) { - return; - } - var interf; - for (var k4 in toAttrs) { - if (!is_equal_default(fromAttrs[k4], toAttrs[k4])) { - if (k4 === "path") { - var toPath = toAttrs[k4]; - var fromPath = fromAttrs[k4]; - if (toPath.length > fromPath.length) { - toPath = parsePathString(toAttrs[k4]); - fromPath = parsePathString(fromAttrs[k4]); - fromPath = fillPathByDiff(fromPath, toPath); - fromPath = formatPath(fromPath, toPath); - animation7.fromAttrs.path = fromPath; - animation7.toAttrs.path = toPath; - } else if (!animation7.pathFormatted) { - toPath = parsePathString(toAttrs[k4]); - fromPath = parsePathString(fromAttrs[k4]); - fromPath = formatPath(fromPath, toPath); - animation7.fromAttrs.path = fromPath; - animation7.toAttrs.path = toPath; - animation7.pathFormatted = true; - } - cProps[k4] = []; - for (var i4 = 0; i4 < toPath.length; i4++) { - var toPathPoint = toPath[i4]; - var fromPathPoint = fromPath[i4]; - var cPathPoint = []; - for (var j4 = 0; j4 < toPathPoint.length; j4++) { - if (is_number_default(toPathPoint[j4]) && fromPathPoint && is_number_default(fromPathPoint[j4])) { - interf = value_default(fromPathPoint[j4], toPathPoint[j4]); - cPathPoint.push(interf(ratio)); - } else { - cPathPoint.push(toPathPoint[j4]); - } - } - cProps[k4].push(cPathPoint); - } - } else if (k4 === "matrix") { - var matrixFn = array_default(fromAttrs[k4] || IDENTITY_MATRIX, toAttrs[k4] || IDENTITY_MATRIX); - var currentMatrix = matrixFn(ratio); - cProps[k4] = currentMatrix; - } else if (isColorProp(k4) && isGradientColor(toAttrs[k4])) { - cProps[k4] = toAttrs[k4]; - } else if (!is_function_default(toAttrs[k4])) { - interf = value_default(fromAttrs[k4], toAttrs[k4]); - cProps[k4] = interf(ratio); - } - } - } - shape.attr(cProps); -} -function update(shape, animation7, elapsed) { - var startTime = animation7.startTime, delay = animation7.delay; - if (elapsed < startTime + delay || animation7._paused) { - return false; - } - var ratio; - var duration = animation7.duration; - var easing = animation7.easing; - elapsed = elapsed - startTime - animation7.delay; - if (animation7.repeat) { - ratio = elapsed % duration / duration; - ratio = src_exports[easing](ratio); - } else { - ratio = elapsed / duration; - if (ratio < 1) { - ratio = src_exports[easing](ratio); - } else { - if (animation7.onFrame) { - shape.attr(animation7.onFrame(1)); - } else { - shape.attr(animation7.toAttrs); - } - return true; - } - } - if (animation7.onFrame) { - var attrs = animation7.onFrame(ratio); - shape.attr(attrs); - } else { - _update(shape, animation7, ratio); - } - return false; -} -var Timeline = function() { - function Timeline2(canvas) { - this.animators = []; - this.current = 0; - this.timer = null; - this.canvas = canvas; - } - Timeline2.prototype.initTimer = function() { - var _this = this; - var isFinished = false; - var shape; - var animations; - var animation7; - this.timer = timer(function(elapsed) { - _this.current = elapsed; - if (_this.animators.length > 0) { - for (var i4 = _this.animators.length - 1; i4 >= 0; i4--) { - shape = _this.animators[i4]; - if (shape.destroyed) { - _this.removeAnimator(i4); - continue; - } - if (!shape.isAnimatePaused()) { - animations = shape.get("animations"); - for (var j4 = animations.length - 1; j4 >= 0; j4--) { - animation7 = animations[j4]; - isFinished = update(shape, animation7, elapsed); - if (isFinished) { - animations.splice(j4, 1); - isFinished = false; - if (animation7.callback) { - animation7.callback(); - } - } - } - } - if (animations.length === 0) { - _this.removeAnimator(i4); - } - } - var autoDraw = _this.canvas.get("autoDraw"); - if (!autoDraw) { - _this.canvas.draw(); - } - } - }); - }; - Timeline2.prototype.addAnimator = function(shape) { - this.animators.push(shape); - }; - Timeline2.prototype.removeAnimator = function(index2) { - this.animators.splice(index2, 1); - }; - Timeline2.prototype.isAnimating = function() { - return !!this.animators.length; - }; - Timeline2.prototype.stop = function() { - if (this.timer) { - this.timer.stop(); - } - }; - Timeline2.prototype.stopAllAnimations = function(toEnd) { - if (toEnd === void 0) { - toEnd = true; - } - this.animators.forEach(function(animator) { - animator.stopAnimate(toEnd); - }); - this.animators = []; - this.canvas.draw(); - }; - Timeline2.prototype.getTime = function() { - return this.current; - }; - return Timeline2; -}(); -var timeline_default = Timeline; - -// node_modules/@antv/g-base/esm/event/event-contoller.js -var CLICK_OFFSET = 40; -var LEFT_BTN_CODE = 0; -var EVENTS = [ - "mousedown", - "mouseup", - "dblclick", - "mouseout", - "mouseover", - "mousemove", - "mouseleave", - "mouseenter", - "touchstart", - "touchmove", - "touchend", - "dragenter", - "dragover", - "dragleave", - "drop", - "contextmenu", - "mousewheel" -]; -function emitTargetEvent(target, type2, eventObj) { - eventObj.name = type2; - eventObj.target = target; - eventObj.currentTarget = target; - eventObj.delegateTarget = target; - target.emit(type2, eventObj); -} -function bubbleEvent(container2, type2, eventObj) { - if (eventObj.bubbles) { - var relativeShape = void 0; - var isOverEvent = false; - if (type2 === "mouseenter") { - relativeShape = eventObj.fromShape; - isOverEvent = true; - } else if (type2 === "mouseleave") { - isOverEvent = true; - relativeShape = eventObj.toShape; - } - if (container2.isCanvas() && isOverEvent) { - return; - } - if (relativeShape && isParent(container2, relativeShape)) { - eventObj.bubbles = false; - return; - } - eventObj.name = type2; - eventObj.currentTarget = container2; - eventObj.delegateTarget = container2; - container2.emit(type2, eventObj); - } -} -var EventController = function() { - function EventController4(cfg) { - var _this = this; - this.draggingShape = null; - this.dragging = false; - this.currentShape = null; - this.mousedownShape = null; - this.mousedownPoint = null; - this._eventCallback = function(ev) { - var type2 = ev.type; - _this._triggerEvent(type2, ev); - }; - this._onDocumentMove = function(ev) { - var canvas = _this.canvas; - var el = canvas.get("el"); - if (el !== ev.target) { - if (_this.dragging || _this.currentShape) { - var pointInfo = _this._getPointInfo(ev); - if (_this.dragging) { - _this._emitEvent("drag", ev, pointInfo, _this.draggingShape); - } - } - } - }; - this._onDocumentMouseUp = function(ev) { - var canvas = _this.canvas; - var el = canvas.get("el"); - if (el !== ev.target) { - if (_this.dragging) { - var pointInfo = _this._getPointInfo(ev); - if (_this.draggingShape) { - _this._emitEvent("drop", ev, pointInfo, null); - } - _this._emitEvent("dragend", ev, pointInfo, _this.draggingShape); - _this._afterDrag(_this.draggingShape, pointInfo, ev); - } - } - }; - this.canvas = cfg.canvas; - } - EventController4.prototype.init = function() { - this._bindEvents(); - }; - EventController4.prototype._bindEvents = function() { - var _this = this; - var el = this.canvas.get("el"); - each_default(EVENTS, function(eventName) { - el.addEventListener(eventName, _this._eventCallback); - }); - if (document) { - document.addEventListener("mousemove", this._onDocumentMove); - document.addEventListener("mouseup", this._onDocumentMouseUp); - } - }; - EventController4.prototype._clearEvents = function() { - var _this = this; - var el = this.canvas.get("el"); - each_default(EVENTS, function(eventName) { - el.removeEventListener(eventName, _this._eventCallback); - }); - if (document) { - document.removeEventListener("mousemove", this._onDocumentMove); - document.removeEventListener("mouseup", this._onDocumentMouseUp); - } - }; - EventController4.prototype._getEventObj = function(type2, event, point2, target, fromShape, toShape) { - var eventObj = new graph_event_default(type2, event); - eventObj.fromShape = fromShape; - eventObj.toShape = toShape; - eventObj.x = point2.x; - eventObj.y = point2.y; - eventObj.clientX = point2.clientX; - eventObj.clientY = point2.clientY; - eventObj.propagationPath.push(target); - return eventObj; - }; - EventController4.prototype._getShape = function(point2, ev) { - return this.canvas.getShape(point2.x, point2.y, ev); - }; - EventController4.prototype._getPointInfo = function(ev) { - var canvas = this.canvas; - var clientPoint = canvas.getClientByEvent(ev); - var point2 = canvas.getPointByEvent(ev); - return { - x: point2.x, - y: point2.y, - clientX: clientPoint.x, - clientY: clientPoint.y - }; - }; - EventController4.prototype._triggerEvent = function(type2, ev) { - var pointInfo = this._getPointInfo(ev); - var shape = this._getShape(pointInfo, ev); - var method = this["_on" + type2]; - var leaveCanvas = false; - if (method) { - method.call(this, pointInfo, shape, ev); - } else { - var preShape = this.currentShape; - if (type2 === "mouseenter" || type2 === "dragenter" || type2 === "mouseover") { - this._emitEvent(type2, ev, pointInfo, null, null, shape); - if (shape) { - this._emitEvent(type2, ev, pointInfo, shape, null, shape); - } - if (type2 === "mouseenter" && this.draggingShape) { - this._emitEvent("dragenter", ev, pointInfo, null); - } - } else if (type2 === "mouseleave" || type2 === "dragleave" || type2 === "mouseout") { - leaveCanvas = true; - if (preShape) { - this._emitEvent(type2, ev, pointInfo, preShape, preShape, null); - } - this._emitEvent(type2, ev, pointInfo, null, preShape, null); - if (type2 === "mouseleave" && this.draggingShape) { - this._emitEvent("dragleave", ev, pointInfo, null); - } - } else { - this._emitEvent(type2, ev, pointInfo, shape, null, null); - } - } - if (!leaveCanvas) { - this.currentShape = shape; - } - if (shape && !shape.get("destroyed")) { - var canvas = this.canvas; - var el = canvas.get("el"); - el.style.cursor = shape.attr("cursor") || canvas.get("cursor"); - } - }; - EventController4.prototype._onmousedown = function(pointInfo, shape, event) { - if (event.button === LEFT_BTN_CODE) { - this.mousedownShape = shape; - this.mousedownPoint = pointInfo; - this.mousedownTimeStamp = event.timeStamp; - } - this._emitEvent("mousedown", event, pointInfo, shape, null, null); - }; - EventController4.prototype._emitMouseoverEvents = function(event, pointInfo, fromShape, toShape) { - var el = this.canvas.get("el"); - if (fromShape !== toShape) { - if (fromShape) { - this._emitEvent("mouseout", event, pointInfo, fromShape, fromShape, toShape); - this._emitEvent("mouseleave", event, pointInfo, fromShape, fromShape, toShape); - if (!toShape || toShape.get("destroyed")) { - el.style.cursor = this.canvas.get("cursor"); - } - } - if (toShape) { - this._emitEvent("mouseover", event, pointInfo, toShape, fromShape, toShape); - this._emitEvent("mouseenter", event, pointInfo, toShape, fromShape, toShape); - } - } - }; - EventController4.prototype._emitDragoverEvents = function(event, pointInfo, fromShape, toShape, isCanvasEmit) { - if (toShape) { - if (toShape !== fromShape) { - if (fromShape) { - this._emitEvent("dragleave", event, pointInfo, fromShape, fromShape, toShape); - } - this._emitEvent("dragenter", event, pointInfo, toShape, fromShape, toShape); - } - if (!isCanvasEmit) { - this._emitEvent("dragover", event, pointInfo, toShape); - } - } else if (fromShape) { - this._emitEvent("dragleave", event, pointInfo, fromShape, fromShape, toShape); - } - if (isCanvasEmit) { - this._emitEvent("dragover", event, pointInfo, toShape); - } - }; - EventController4.prototype._afterDrag = function(draggingShape, pointInfo, event) { - if (draggingShape) { - draggingShape.set("capture", true); - this.draggingShape = null; - } - this.dragging = false; - var shape = this._getShape(pointInfo, event); - if (shape !== draggingShape) { - this._emitMouseoverEvents(event, pointInfo, draggingShape, shape); - } - this.currentShape = shape; - }; - EventController4.prototype._onmouseup = function(pointInfo, shape, event) { - if (event.button === LEFT_BTN_CODE) { - var draggingShape = this.draggingShape; - if (this.dragging) { - if (draggingShape) { - this._emitEvent("drop", event, pointInfo, shape); - } - this._emitEvent("dragend", event, pointInfo, draggingShape); - this._afterDrag(draggingShape, pointInfo, event); - } else { - this._emitEvent("mouseup", event, pointInfo, shape); - if (shape === this.mousedownShape) { - this._emitEvent("click", event, pointInfo, shape); - } - this.mousedownShape = null; - this.mousedownPoint = null; - } - } - }; - EventController4.prototype._ondragover = function(pointInfo, shape, event) { - event.preventDefault(); - var preShape = this.currentShape; - this._emitDragoverEvents(event, pointInfo, preShape, shape, true); - }; - EventController4.prototype._onmousemove = function(pointInfo, shape, event) { - var canvas = this.canvas; - var preShape = this.currentShape; - var draggingShape = this.draggingShape; - if (this.dragging) { - if (draggingShape) { - this._emitDragoverEvents(event, pointInfo, preShape, shape, false); - } - this._emitEvent("drag", event, pointInfo, draggingShape); - } else { - var mousedownPoint = this.mousedownPoint; - if (mousedownPoint) { - var mousedownShape = this.mousedownShape; - var now2 = event.timeStamp; - var timeWindow = now2 - this.mousedownTimeStamp; - var dx = mousedownPoint.clientX - pointInfo.clientX; - var dy = mousedownPoint.clientY - pointInfo.clientY; - var dist4 = dx * dx + dy * dy; - if (timeWindow > 120 || dist4 > CLICK_OFFSET) { - if (mousedownShape && mousedownShape.get("draggable")) { - draggingShape = this.mousedownShape; - draggingShape.set("capture", false); - this.draggingShape = draggingShape; - this.dragging = true; - this._emitEvent("dragstart", event, pointInfo, draggingShape); - this.mousedownShape = null; - this.mousedownPoint = null; - } else if (!mousedownShape && canvas.get("draggable")) { - this.dragging = true; - this._emitEvent("dragstart", event, pointInfo, null); - this.mousedownShape = null; - this.mousedownPoint = null; - } else { - this._emitMouseoverEvents(event, pointInfo, preShape, shape); - this._emitEvent("mousemove", event, pointInfo, shape); - } - } else { - this._emitMouseoverEvents(event, pointInfo, preShape, shape); - this._emitEvent("mousemove", event, pointInfo, shape); - } - } else { - this._emitMouseoverEvents(event, pointInfo, preShape, shape); - this._emitEvent("mousemove", event, pointInfo, shape); - } - } - }; - EventController4.prototype._emitEvent = function(type2, event, pointInfo, shape, fromShape, toShape) { - var eventObj = this._getEventObj(type2, event, pointInfo, shape, fromShape, toShape); - if (shape) { - eventObj.shape = shape; - emitTargetEvent(shape, type2, eventObj); - var parent_1 = shape.getParent(); - while (parent_1) { - parent_1.emitDelegation(type2, eventObj); - if (!eventObj.propagationStopped) { - bubbleEvent(parent_1, type2, eventObj); - } - eventObj.propagationPath.push(parent_1); - parent_1 = parent_1.getParent(); - } - } else { - var canvas = this.canvas; - emitTargetEvent(canvas, type2, eventObj); - } - }; - EventController4.prototype.destroy = function() { - this._clearEvents(); - this.canvas = null; - this.currentShape = null; - this.draggingShape = null; - this.mousedownPoint = null; - this.mousedownShape = null; - this.mousedownTimeStamp = null; - }; - return EventController4; -}(); -var event_contoller_default = EventController; - -// node_modules/@antv/g-base/esm/abstract/canvas.js -var PX_SUFFIX = "px"; -var browser = detect(); -var isFirefox = browser && browser.name === "firefox"; -var Canvas = function(_super) { - __extends(Canvas4, _super); - function Canvas4(cfg) { - var _this = _super.call(this, cfg) || this; - _this.initContainer(); - _this.initDom(); - _this.initEvents(); - _this.initTimeline(); - return _this; - } - Canvas4.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - cfg["cursor"] = "default"; - cfg["supportCSSTransform"] = false; - return cfg; - }; - Canvas4.prototype.initContainer = function() { - var container2 = this.get("container"); - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - this.set("container", container2); - } - }; - Canvas4.prototype.initDom = function() { - var el = this.createDom(); - this.set("el", el); - var container2 = this.get("container"); - container2.appendChild(el); - this.setDOMSize(this.get("width"), this.get("height")); - }; - Canvas4.prototype.initEvents = function() { - var eventController = new event_contoller_default({ - canvas: this - }); - eventController.init(); - this.set("eventController", eventController); - }; - Canvas4.prototype.initTimeline = function() { - var timeline = new timeline_default(this); - this.set("timeline", timeline); - }; - Canvas4.prototype.setDOMSize = function(width2, height) { - var el = this.get("el"); - if (isBrowser) { - el.style.width = width2 + PX_SUFFIX; - el.style.height = height + PX_SUFFIX; - } - }; - Canvas4.prototype.changeSize = function(width2, height) { - this.setDOMSize(width2, height); - this.set("width", width2); - this.set("height", height); - this.onCanvasChange("changeSize"); - }; - Canvas4.prototype.getRenderer = function() { - return this.get("renderer"); - }; - Canvas4.prototype.getCursor = function() { - return this.get("cursor"); - }; - Canvas4.prototype.setCursor = function(cursor) { - this.set("cursor", cursor); - var el = this.get("el"); - if (isBrowser && el) { - el.style.cursor = cursor; - } - }; - Canvas4.prototype.getPointByEvent = function(ev) { - var supportCSSTransform = this.get("supportCSSTransform"); - if (supportCSSTransform) { - if (isFirefox && !is_nil_default(ev.layerX) && ev.layerX !== ev.offsetX) { - return { - x: ev.layerX, - y: ev.layerY - }; - } - if (!is_nil_default(ev.offsetX)) { - return { - x: ev.offsetX, - y: ev.offsetY - }; - } - } - var _a6 = this.getClientByEvent(ev), clientX = _a6.x, clientY = _a6.y; - return this.getPointByClient(clientX, clientY); - }; - Canvas4.prototype.getClientByEvent = function(ev) { - var clientInfo = ev; - if (ev.touches) { - if (ev.type === "touchend") { - clientInfo = ev.changedTouches[0]; - } else { - clientInfo = ev.touches[0]; - } - } - return { - x: clientInfo.clientX, - y: clientInfo.clientY - }; - }; - Canvas4.prototype.getPointByClient = function(clientX, clientY) { - var el = this.get("el"); - var bbox = el.getBoundingClientRect(); - return { - x: clientX - bbox.left, - y: clientY - bbox.top - }; - }; - Canvas4.prototype.getClientByPoint = function(x6, y5) { - var el = this.get("el"); - var bbox = el.getBoundingClientRect(); - return { - x: x6 + bbox.left, - y: y5 + bbox.top - }; - }; - Canvas4.prototype.draw = function() { - }; - Canvas4.prototype.removeDom = function() { - var el = this.get("el"); - el.parentNode.removeChild(el); - }; - Canvas4.prototype.clearEvents = function() { - var eventController = this.get("eventController"); - eventController.destroy(); - }; - Canvas4.prototype.isCanvas = function() { - return true; - }; - Canvas4.prototype.getParent = function() { - return null; - }; - Canvas4.prototype.destroy = function() { - var timeline = this.get("timeline"); - if (this.get("destroyed")) { - return; - } - this.clear(); - if (timeline) { - timeline.stop(); - } - this.clearEvents(); - this.removeDom(); - _super.prototype.destroy.call(this); - }; - return Canvas4; -}(container_default); -var canvas_default = Canvas; - -// node_modules/@antv/g-base/esm/abstract/group.js -var AbstractGroup = function(_super) { - __extends(AbstractGroup2, _super); - function AbstractGroup2() { - return _super !== null && _super.apply(this, arguments) || this; - } - AbstractGroup2.prototype.isGroup = function() { - return true; - }; - AbstractGroup2.prototype.isEntityGroup = function() { - return false; - }; - AbstractGroup2.prototype.clone = function() { - var clone10 = _super.prototype.clone.call(this); - var children = this.getChildren(); - for (var i4 = 0; i4 < children.length; i4++) { - var child = children[i4]; - clone10.add(child.clone()); - } - return clone10; - }; - return AbstractGroup2; -}(container_default); -var group_default2 = AbstractGroup; - -// node_modules/@antv/g-base/esm/abstract/shape.js -var AbstractShape = function(_super) { - __extends(AbstractShape2, _super); - function AbstractShape2(cfg) { - return _super.call(this, cfg) || this; - } - AbstractShape2.prototype._isInBBox = function(refX, refY) { - var bbox = this.getBBox(); - return bbox.minX <= refX && bbox.maxX >= refX && bbox.minY <= refY && bbox.maxY >= refY; - }; - AbstractShape2.prototype.afterAttrsChange = function(targetAttrs) { - _super.prototype.afterAttrsChange.call(this, targetAttrs); - this.clearCacheBBox(); - }; - AbstractShape2.prototype.getBBox = function() { - var bbox = this.cfg.bbox; - if (!bbox) { - bbox = this.calculateBBox(); - this.set("bbox", bbox); - } - return bbox; - }; - AbstractShape2.prototype.getCanvasBBox = function() { - var canvasBBox = this.cfg.canvasBBox; - if (!canvasBBox) { - canvasBBox = this.calculateCanvasBBox(); - this.set("canvasBBox", canvasBBox); - } - return canvasBBox; - }; - AbstractShape2.prototype.applyMatrix = function(matrix) { - _super.prototype.applyMatrix.call(this, matrix); - this.set("canvasBBox", null); - }; - AbstractShape2.prototype.calculateCanvasBBox = function() { - var bbox = this.getBBox(); - var totalMatrix = this.getTotalMatrix(); - var minX = bbox.minX, minY = bbox.minY, maxX = bbox.maxX, maxY2 = bbox.maxY; - if (totalMatrix) { - var topLeft = multiplyVec2(totalMatrix, [bbox.minX, bbox.minY]); - var topRight = multiplyVec2(totalMatrix, [bbox.maxX, bbox.minY]); - var bottomLeft = multiplyVec2(totalMatrix, [bbox.minX, bbox.maxY]); - var bottomRight = multiplyVec2(totalMatrix, [bbox.maxX, bbox.maxY]); - minX = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]); - maxX = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]); - minY = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]); - maxY2 = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]); - } - var attrs = this.attrs; - if (attrs.shadowColor) { - var _a6 = attrs.shadowBlur, shadowBlur = _a6 === void 0 ? 0 : _a6, _b = attrs.shadowOffsetX, shadowOffsetX = _b === void 0 ? 0 : _b, _c = attrs.shadowOffsetY, shadowOffsetY = _c === void 0 ? 0 : _c; - var shadowLeft = minX - shadowBlur + shadowOffsetX; - var shadowRight = maxX + shadowBlur + shadowOffsetX; - var shadowTop = minY - shadowBlur + shadowOffsetY; - var shadowBottom = maxY2 + shadowBlur + shadowOffsetY; - minX = Math.min(minX, shadowLeft); - maxX = Math.max(maxX, shadowRight); - minY = Math.min(minY, shadowTop); - maxY2 = Math.max(maxY2, shadowBottom); - } - return { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; - }; - AbstractShape2.prototype.clearCacheBBox = function() { - this.set("bbox", null); - this.set("canvasBBox", null); - }; - AbstractShape2.prototype.isClipShape = function() { - return this.get("isClipShape"); - }; - AbstractShape2.prototype.isInShape = function(refX, refY) { - return false; - }; - AbstractShape2.prototype.isOnlyHitBox = function() { - return false; - }; - AbstractShape2.prototype.isHit = function(x6, y5) { - var startArrowShape = this.get("startArrowShape"); - var endArrowShape = this.get("endArrowShape"); - var vec = [x6, y5, 1]; - vec = this.invertFromMatrix(vec); - var refX = vec[0], refY = vec[1]; - var inBBox = this._isInBBox(refX, refY); - if (this.isOnlyHitBox()) { - return inBBox; - } - if (inBBox && !this.isClipped(refX, refY)) { - if (this.isInShape(refX, refY)) { - return true; - } - if (startArrowShape && startArrowShape.isHit(refX, refY)) { - return true; - } - if (endArrowShape && endArrowShape.isHit(refX, refY)) { - return true; - } - } - return false; - }; - return AbstractShape2; -}(element_default); -var shape_default = AbstractShape; - -// node_modules/@antv/g-base/esm/bbox/register.js -var cache = new Map(); -function register(type2, method) { - cache.set(type2, method); -} -function getMethod(type2) { - return cache.get(type2); -} - -// node_modules/@antv/g-base/esm/bbox/rect.js -function rect_default(shape) { - var attrs = shape.attr(); - var x6 = attrs.x, y5 = attrs.y, width2 = attrs.width, height = attrs.height; - return { - x: x6, - y: y5, - width: width2, - height - }; -} - -// node_modules/@antv/g-base/esm/bbox/circle.js -function circle_default(shape) { - var _a6 = shape.attr(), x6 = _a6.x, y5 = _a6.y, r4 = _a6.r; - return { - x: x6 - r4, - y: y5 - r4, - width: r4 * 2, - height: r4 * 2 - }; -} - -// node_modules/@antv/g-math/esm/util.js -var util_exports = {}; -__export(util_exports, { - distance: () => distance4, - getBBoxByArray: () => getBBoxByArray, - getBBoxRange: () => getBBoxRange, - isNumberEqual: () => isNumberEqual2, - piMod: () => piMod -}); -function minNum(array) { - return Math.min.apply(null, array); -} -function maxNum(array) { - return Math.max.apply(null, array); -} -function distance4(x1, y1, x22, y22) { - var dx = x1 - x22; - var dy = y1 - y22; - return Math.sqrt(dx * dx + dy * dy); -} -function isNumberEqual2(v1, v22) { - return Math.abs(v1 - v22) < 1e-3; -} -function getBBoxByArray(xArr, yArr) { - var minX = minNum(xArr); - var minY = minNum(yArr); - var maxX = maxNum(xArr); - var maxY2 = maxNum(yArr); - return { - x: minX, - y: minY, - width: maxX - minX, - height: maxY2 - minY - }; -} -function getBBoxRange(x1, y1, x22, y22) { - return { - minX: minNum([x1, x22]), - maxX: maxNum([x1, x22]), - minY: minNum([y1, y22]), - maxY: maxNum([y1, y22]) - }; -} -function piMod(angle3) { - return (angle3 + Math.PI * 2) % (Math.PI * 2); -} - -// node_modules/@antv/g-math/esm/line.js -var line_default = { - box: function(x1, y1, x22, y22) { - return getBBoxByArray([x1, x22], [y1, y22]); - }, - length: function(x1, y1, x22, y22) { - return distance4(x1, y1, x22, y22); - }, - pointAt: function(x1, y1, x22, y22, t4) { - return { - x: (1 - t4) * x1 + t4 * x22, - y: (1 - t4) * y1 + t4 * y22 - }; - }, - pointDistance: function(x1, y1, x22, y22, x6, y5) { - var cross6 = (x22 - x1) * (x6 - x1) + (y22 - y1) * (y5 - y1); - if (cross6 < 0) { - return distance4(x1, y1, x6, y5); - } - var lengthSquare = (x22 - x1) * (x22 - x1) + (y22 - y1) * (y22 - y1); - if (cross6 > lengthSquare) { - return distance4(x22, y22, x6, y5); - } - return this.pointToLine(x1, y1, x22, y22, x6, y5); - }, - pointToLine: function(x1, y1, x22, y22, x6, y5) { - var d3 = [x22 - x1, y22 - y1]; - if (exactEquals6(d3, [0, 0])) { - return Math.sqrt((x6 - x1) * (x6 - x1) + (y5 - y1) * (y5 - y1)); - } - var u3 = [-d3[1], d3[0]]; - normalize4(u3, u3); - var a4 = [x6 - x1, y5 - y1]; - return Math.abs(dot4(a4, u3)); - }, - tangentAngle: function(x1, y1, x22, y22) { - return Math.atan2(y22 - y1, x22 - x1); - } -}; - -// node_modules/@antv/g-math/esm/bezier.js -var EPSILON2 = 1e-4; -function nearestPoint(xArr, yArr, x6, y5, tCallback, length5) { - var t4; - var d3 = Infinity; - var v0 = [x6, y5]; - var segNum = 20; - if (length5 && length5 > 200) { - segNum = length5 / 10; - } - var increaseRate = 1 / segNum; - var interval3 = increaseRate / 10; - for (var i4 = 0; i4 <= segNum; i4++) { - var _t = i4 * increaseRate; - var v1 = [tCallback.apply(null, xArr.concat([_t])), tCallback.apply(null, yArr.concat([_t]))]; - var d1 = distance4(v0[0], v0[1], v1[0], v1[1]); - if (d1 < d3) { - t4 = _t; - d3 = d1; - } - } - if (t4 === 0) { - return { - x: xArr[0], - y: yArr[0] - }; - } - if (t4 === 1) { - var count2 = xArr.length; - return { - x: xArr[count2 - 1], - y: yArr[count2 - 1] - }; - } - d3 = Infinity; - for (var i4 = 0; i4 < 32; i4++) { - if (interval3 < EPSILON2) { - break; - } - var prev = t4 - interval3; - var next = t4 + interval3; - var v1 = [tCallback.apply(null, xArr.concat([prev])), tCallback.apply(null, yArr.concat([prev]))]; - var d1 = distance4(v0[0], v0[1], v1[0], v1[1]); - if (prev >= 0 && d1 < d3) { - t4 = prev; - d3 = d1; - } else { - var v22 = [tCallback.apply(null, xArr.concat([next])), tCallback.apply(null, yArr.concat([next]))]; - var d22 = distance4(v0[0], v0[1], v22[0], v22[1]); - if (next <= 1 && d22 < d3) { - t4 = next; - d3 = d22; - } else { - interval3 *= 0.5; - } - } - } - return { - x: tCallback.apply(null, xArr.concat([t4])), - y: tCallback.apply(null, yArr.concat([t4])) - }; -} -function snapLength(xArr, yArr) { - var totalLength = 0; - var count2 = xArr.length; - for (var i4 = 0; i4 < count2; i4++) { - var x6 = xArr[i4]; - var y5 = yArr[i4]; - var nextX = xArr[(i4 + 1) % count2]; - var nextY = yArr[(i4 + 1) % count2]; - totalLength += distance4(x6, y5, nextX, nextY); - } - return totalLength / 2; -} - -// node_modules/@antv/g-math/esm/quadratic.js -function quadraticAt(p0, p1, p22, t4) { - var onet = 1 - t4; - return onet * onet * p0 + 2 * t4 * onet * p1 + t4 * t4 * p22; -} -function extrema(p0, p1, p22) { - var a4 = p0 + p22 - 2 * p1; - if (isNumberEqual2(a4, 0)) { - return [0.5]; - } - var rst = (p0 - p1) / a4; - if (rst <= 1 && rst >= 0) { - return [rst]; - } - return []; -} -function derivativeAt(p0, p1, p22, t4) { - return 2 * (1 - t4) * (p1 - p0) + 2 * t4 * (p22 - p1); -} -function divideQuadratic(x1, y1, x22, y22, x32, y32, t4) { - var xt = quadraticAt(x1, x22, x32, t4); - var yt = quadraticAt(y1, y22, y32, t4); - var controlPoint1 = line_default.pointAt(x1, y1, x22, y22, t4); - var controlPoint2 = line_default.pointAt(x22, y22, x32, y32, t4); - return [ - [x1, y1, controlPoint1.x, controlPoint1.y, xt, yt], - [xt, yt, controlPoint2.x, controlPoint2.y, x32, y32] - ]; -} -function quadraticLength(x1, y1, x22, y22, x32, y32, iterationCount) { - if (iterationCount === 0) { - return (distance4(x1, y1, x22, y22) + distance4(x22, y22, x32, y32) + distance4(x1, y1, x32, y32)) / 2; - } - var quadratics = divideQuadratic(x1, y1, x22, y22, x32, y32, 0.5); - var left2 = quadratics[0]; - var right2 = quadratics[1]; - left2.push(iterationCount - 1); - right2.push(iterationCount - 1); - return quadraticLength.apply(null, left2) + quadraticLength.apply(null, right2); -} -var quadratic_default = { - box: function(x1, y1, x22, y22, x32, y32) { - var xExtrema2 = extrema(x1, x22, x32)[0]; - var yExtrema2 = extrema(y1, y22, y32)[0]; - var xArr = [x1, x32]; - var yArr = [y1, y32]; - if (xExtrema2 !== void 0) { - xArr.push(quadraticAt(x1, x22, x32, xExtrema2)); - } - if (yExtrema2 !== void 0) { - yArr.push(quadraticAt(y1, y22, y32, yExtrema2)); - } - return getBBoxByArray(xArr, yArr); - }, - length: function(x1, y1, x22, y22, x32, y32) { - return quadraticLength(x1, y1, x22, y22, x32, y32, 3); - }, - nearestPoint: function(x1, y1, x22, y22, x32, y32, x0, y0) { - return nearestPoint([x1, x22, x32], [y1, y22, y32], x0, y0, quadraticAt); - }, - pointDistance: function(x1, y1, x22, y22, x32, y32, x0, y0) { - var point2 = this.nearestPoint(x1, y1, x22, y22, x32, y32, x0, y0); - return distance4(point2.x, point2.y, x0, y0); - }, - interpolationAt: quadraticAt, - pointAt: function(x1, y1, x22, y22, x32, y32, t4) { - return { - x: quadraticAt(x1, x22, x32, t4), - y: quadraticAt(y1, y22, y32, t4) - }; - }, - divide: function(x1, y1, x22, y22, x32, y32, t4) { - return divideQuadratic(x1, y1, x22, y22, x32, y32, t4); - }, - tangentAngle: function(x1, y1, x22, y22, x32, y32, t4) { - var dx = derivativeAt(x1, x22, x32, t4); - var dy = derivativeAt(y1, y22, y32, t4); - var angle3 = Math.atan2(dy, dx); - return piMod(angle3); - } -}; - -// node_modules/@antv/g-math/esm/cubic.js -function cubicAt(p0, p1, p22, p32, t4) { - var onet = 1 - t4; - return onet * onet * onet * p0 + 3 * p1 * t4 * onet * onet + 3 * p22 * t4 * t4 * onet + p32 * t4 * t4 * t4; -} -function derivativeAt2(p0, p1, p22, p32, t4) { - var onet = 1 - t4; - return 3 * (onet * onet * (p1 - p0) + 2 * onet * t4 * (p22 - p1) + t4 * t4 * (p32 - p22)); -} -function extrema2(p0, p1, p22, p32) { - var a4 = -3 * p0 + 9 * p1 - 9 * p22 + 3 * p32; - var b10 = 6 * p0 - 12 * p1 + 6 * p22; - var c5 = 3 * p1 - 3 * p0; - var extremas = []; - var t1; - var t22; - var discSqrt; - if (isNumberEqual2(a4, 0)) { - if (!isNumberEqual2(b10, 0)) { - t1 = -c5 / b10; - if (t1 >= 0 && t1 <= 1) { - extremas.push(t1); - } - } - } else { - var disc = b10 * b10 - 4 * a4 * c5; - if (isNumberEqual2(disc, 0)) { - extremas.push(-b10 / (2 * a4)); - } else if (disc > 0) { - discSqrt = Math.sqrt(disc); - t1 = (-b10 + discSqrt) / (2 * a4); - t22 = (-b10 - discSqrt) / (2 * a4); - if (t1 >= 0 && t1 <= 1) { - extremas.push(t1); - } - if (t22 >= 0 && t22 <= 1) { - extremas.push(t22); - } - } - } - return extremas; -} -function divideCubic(x1, y1, x22, y22, x32, y32, x42, y42, t4) { - var xt = cubicAt(x1, x22, x32, x42, t4); - var yt = cubicAt(y1, y22, y32, y42, t4); - var c1 = line_default.pointAt(x1, y1, x22, y22, t4); - var c22 = line_default.pointAt(x22, y22, x32, y32, t4); - var c32 = line_default.pointAt(x32, y32, x42, y42, t4); - var c12 = line_default.pointAt(c1.x, c1.y, c22.x, c22.y, t4); - var c23 = line_default.pointAt(c22.x, c22.y, c32.x, c32.y, t4); - return [ - [x1, y1, c1.x, c1.y, c12.x, c12.y, xt, yt], - [xt, yt, c23.x, c23.y, c32.x, c32.y, x42, y42] - ]; -} -function cubicLength(x1, y1, x22, y22, x32, y32, x42, y42, iterationCount) { - if (iterationCount === 0) { - return snapLength([x1, x22, x32, x42], [y1, y22, y32, y42]); - } - var cubics = divideCubic(x1, y1, x22, y22, x32, y32, x42, y42, 0.5); - var left2 = cubics[0]; - var right2 = cubics[1]; - left2.push(iterationCount - 1); - right2.push(iterationCount - 1); - return cubicLength.apply(null, left2) + cubicLength.apply(null, right2); -} -var cubic_default = { - extrema: extrema2, - box: function(x1, y1, x22, y22, x32, y32, x42, y42) { - var xArr = [x1, x42]; - var yArr = [y1, y42]; - var xExtrema2 = extrema2(x1, x22, x32, x42); - var yExtrema2 = extrema2(y1, y22, y32, y42); - for (var i4 = 0; i4 < xExtrema2.length; i4++) { - xArr.push(cubicAt(x1, x22, x32, x42, xExtrema2[i4])); - } - for (var i4 = 0; i4 < yExtrema2.length; i4++) { - yArr.push(cubicAt(y1, y22, y32, y42, yExtrema2[i4])); - } - return getBBoxByArray(xArr, yArr); - }, - length: function(x1, y1, x22, y22, x32, y32, x42, y42) { - return cubicLength(x1, y1, x22, y22, x32, y32, x42, y42, 3); - }, - nearestPoint: function(x1, y1, x22, y22, x32, y32, x42, y42, x0, y0, length5) { - return nearestPoint([x1, x22, x32, x42], [y1, y22, y32, y42], x0, y0, cubicAt, length5); - }, - pointDistance: function(x1, y1, x22, y22, x32, y32, x42, y42, x0, y0, length5) { - var point2 = this.nearestPoint(x1, y1, x22, y22, x32, y32, x42, y42, x0, y0, length5); - return distance4(point2.x, point2.y, x0, y0); - }, - interpolationAt: cubicAt, - pointAt: function(x1, y1, x22, y22, x32, y32, x42, y42, t4) { - return { - x: cubicAt(x1, x22, x32, x42, t4), - y: cubicAt(y1, y22, y32, y42, t4) - }; - }, - divide: function(x1, y1, x22, y22, x32, y32, x42, y42, t4) { - return divideCubic(x1, y1, x22, y22, x32, y32, x42, y42, t4); - }, - tangentAngle: function(x1, y1, x22, y22, x32, y32, x42, y42, t4) { - var dx = derivativeAt2(x1, x22, x32, x42, t4); - var dy = derivativeAt2(y1, y22, y32, y42, t4); - return piMod(Math.atan2(dy, dx)); - } -}; - -// node_modules/@antv/g-math/esm/ellipse.js -function copysign(v1, v22) { - var absv = Math.abs(v1); - return v22 > 0 ? absv : absv * -1; -} -var ellipse_default = { - box: function(x6, y5, rx, ry) { - return { - x: x6 - rx, - y: y5 - ry, - width: rx * 2, - height: ry * 2 - }; - }, - length: function(x6, y5, rx, ry) { - return Math.PI * (3 * (rx + ry) - Math.sqrt((3 * rx + ry) * (rx + 3 * ry))); - }, - nearestPoint: function(x6, y5, rx, ry, x0, y0) { - var a4 = rx; - var b10 = ry; - if (a4 === 0 || b10 === 0) { - return { - x: x6, - y: y5 - }; - } - var relativeX = x0 - x6; - var relativeY = y0 - y5; - var px = Math.abs(relativeX); - var py = Math.abs(relativeY); - var squareA = a4 * a4; - var squareB = b10 * b10; - var t4 = Math.PI / 4; - var nearestX; - var nearestY; - for (var i4 = 0; i4 < 4; i4++) { - nearestX = a4 * Math.cos(t4); - nearestY = b10 * Math.sin(t4); - var ex = (squareA - squareB) * Math.pow(Math.cos(t4), 3) / a4; - var ey = (squareB - squareA) * Math.pow(Math.sin(t4), 3) / b10; - var rx1 = nearestX - ex; - var ry1 = nearestY - ey; - var qx = px - ex; - var qy = py - ey; - var r4 = Math.hypot(ry1, rx1); - var q4 = Math.hypot(qy, qx); - var delta_c = r4 * Math.asin((rx1 * qy - ry1 * qx) / (r4 * q4)); - var delta_t = delta_c / Math.sqrt(squareA + squareB - nearestX * nearestX - nearestY * nearestY); - t4 += delta_t; - t4 = Math.min(Math.PI / 2, Math.max(0, t4)); - } - return { - x: x6 + copysign(nearestX, relativeX), - y: y5 + copysign(nearestY, relativeY) - }; - }, - pointDistance: function(x6, y5, rx, ry, x0, y0) { - var nearestPoint2 = this.nearestPoint(x6, y5, rx, ry, x0, y0); - return distance4(nearestPoint2.x, nearestPoint2.y, x0, y0); - }, - pointAt: function(x6, y5, rx, ry, t4) { - var angle3 = 2 * Math.PI * t4; - return { - x: x6 + rx * Math.cos(angle3), - y: y5 + ry * Math.sin(angle3) - }; - }, - tangentAngle: function(x6, y5, rx, ry, t4) { - var angle3 = 2 * Math.PI * t4; - var tangentAngle = Math.atan2(ry * Math.cos(angle3), -rx * Math.sin(angle3)); - return piMod(tangentAngle); - } -}; - -// node_modules/@antv/g-math/esm/arc.js -function derivativeXAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle3) { - return -1 * rx * Math.cos(xRotation) * Math.sin(angle3) - ry * Math.sin(xRotation) * Math.cos(angle3); -} -function derivativeYAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle3) { - return -1 * rx * Math.sin(xRotation) * Math.sin(angle3) + ry * Math.cos(xRotation) * Math.cos(angle3); -} -function xExtrema(rx, ry, xRotation) { - return Math.atan(-ry / rx * Math.tan(xRotation)); -} -function yExtrema(rx, ry, xRotation) { - return Math.atan(ry / (rx * Math.tan(xRotation))); -} -function xAt(cx, cy, rx, ry, xRotation, angle3) { - return rx * Math.cos(xRotation) * Math.cos(angle3) - ry * Math.sin(xRotation) * Math.sin(angle3) + cx; -} -function yAt(cx, cy, rx, ry, xRotation, angle3) { - return rx * Math.sin(xRotation) * Math.cos(angle3) + ry * Math.cos(xRotation) * Math.sin(angle3) + cy; -} -function getAngle2(rx, ry, x0, y0) { - var angle3 = Math.atan2(y0 * rx, x0 * ry); - return (angle3 + Math.PI * 2) % (Math.PI * 2); -} -function getPoint(rx, ry, angle3) { - return { - x: rx * Math.cos(angle3), - y: ry * Math.sin(angle3) - }; -} -function rotate4(x6, y5, angle3) { - var cos3 = Math.cos(angle3); - var sin3 = Math.sin(angle3); - return [x6 * cos3 - y5 * sin3, x6 * sin3 + y5 * cos3]; -} -var arc_default = { - box: function(cx, cy, rx, ry, xRotation, startAngle, endAngle) { - var xDim = xExtrema(rx, ry, xRotation); - var minX = Infinity; - var maxX = -Infinity; - var xs = [startAngle, endAngle]; - for (var i4 = -Math.PI * 2; i4 <= Math.PI * 2; i4 += Math.PI) { - var xAngle = xDim + i4; - if (startAngle < endAngle) { - if (startAngle < xAngle && xAngle < endAngle) { - xs.push(xAngle); - } - } else { - if (endAngle < xAngle && xAngle < startAngle) { - xs.push(xAngle); - } - } - } - for (var i4 = 0; i4 < xs.length; i4++) { - var x6 = xAt(cx, cy, rx, ry, xRotation, xs[i4]); - if (x6 < minX) { - minX = x6; - } - if (x6 > maxX) { - maxX = x6; - } - } - var yDim = yExtrema(rx, ry, xRotation); - var minY = Infinity; - var maxY2 = -Infinity; - var ys = [startAngle, endAngle]; - for (var i4 = -Math.PI * 2; i4 <= Math.PI * 2; i4 += Math.PI) { - var yAngle = yDim + i4; - if (startAngle < endAngle) { - if (startAngle < yAngle && yAngle < endAngle) { - ys.push(yAngle); - } - } else { - if (endAngle < yAngle && yAngle < startAngle) { - ys.push(yAngle); - } - } - } - for (var i4 = 0; i4 < ys.length; i4++) { - var y5 = yAt(cx, cy, rx, ry, xRotation, ys[i4]); - if (y5 < minY) { - minY = y5; - } - if (y5 > maxY2) { - maxY2 = y5; - } - } - return { - x: minX, - y: minY, - width: maxX - minX, - height: maxY2 - minY - }; - }, - length: function(cx, cy, rx, ry, xRotation, startAngle, endAngle) { - }, - nearestPoint: function(cx, cy, rx, ry, xRotation, startAngle, endAngle, x0, y0) { - var relativeVector = rotate4(x0 - cx, y0 - cy, -xRotation); - var x1 = relativeVector[0], y1 = relativeVector[1]; - var relativePoint = ellipse_default.nearestPoint(0, 0, rx, ry, x1, y1); - var angle3 = getAngle2(rx, ry, relativePoint.x, relativePoint.y); - if (angle3 < startAngle) { - relativePoint = getPoint(rx, ry, startAngle); - } else if (angle3 > endAngle) { - relativePoint = getPoint(rx, ry, endAngle); - } - var vector = rotate4(relativePoint.x, relativePoint.y, xRotation); - return { - x: vector[0] + cx, - y: vector[1] + cy - }; - }, - pointDistance: function(cx, cy, rx, ry, xRotation, startAngle, endAngle, x0, y0) { - var nearestPoint2 = this.nearestPoint(cx, cy, rx, ry, x0, y0); - return distance4(nearestPoint2.x, nearestPoint2.y, x0, y0); - }, - pointAt: function(cx, cy, rx, ry, xRotation, startAngle, endAngle, t4) { - var angle3 = (endAngle - startAngle) * t4 + startAngle; - return { - x: xAt(cx, cy, rx, ry, xRotation, angle3), - y: yAt(cx, cy, rx, ry, xRotation, angle3) - }; - }, - tangentAngle: function(cx, cy, rx, ry, xRotation, startAngle, endAngle, t4) { - var angle3 = (endAngle - startAngle) * t4 + startAngle; - var dx = derivativeXAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle3); - var dy = derivativeYAt(cx, cy, rx, ry, xRotation, startAngle, endAngle, angle3); - return piMod(Math.atan2(dy, dx)); - } -}; - -// node_modules/@antv/g-math/esm/segments.js -function analyzePoints(points) { - var totalLength = 0; - var segments = []; - for (var i4 = 0; i4 < points.length - 1; i4++) { - var from = points[i4]; - var to = points[i4 + 1]; - var length_1 = distance4(from[0], from[1], to[0], to[1]); - var seg = { - from, - to, - length: length_1 - }; - segments.push(seg); - totalLength += length_1; - } - return { segments, totalLength }; -} -function lengthOfSegment(points) { - if (points.length < 2) { - return 0; - } - var totalLength = 0; - for (var i4 = 0; i4 < points.length - 1; i4++) { - var from = points[i4]; - var to = points[i4 + 1]; - totalLength += distance4(from[0], from[1], to[0], to[1]); - } - return totalLength; -} -function pointAtSegments(points, t4) { - if (t4 > 1 || t4 < 0 || points.length < 2) { - return null; - } - var _a6 = analyzePoints(points), segments = _a6.segments, totalLength = _a6.totalLength; - if (totalLength === 0) { - return { - x: points[0][0], - y: points[0][1] - }; - } - var startRatio = 0; - var point2 = null; - for (var i4 = 0; i4 < segments.length; i4++) { - var seg = segments[i4]; - var from = seg.from, to = seg.to; - var currentRatio = seg.length / totalLength; - if (t4 >= startRatio && t4 <= startRatio + currentRatio) { - var localRatio = (t4 - startRatio) / currentRatio; - point2 = line_default.pointAt(from[0], from[1], to[0], to[1], localRatio); - break; - } - startRatio += currentRatio; - } - return point2; -} -function angleAtSegments(points, t4) { - if (t4 > 1 || t4 < 0 || points.length < 2) { - return 0; - } - var _a6 = analyzePoints(points), segments = _a6.segments, totalLength = _a6.totalLength; - var startRatio = 0; - var angle3 = 0; - for (var i4 = 0; i4 < segments.length; i4++) { - var seg = segments[i4]; - var from = seg.from, to = seg.to; - var currentRatio = seg.length / totalLength; - if (t4 >= startRatio && t4 <= startRatio + currentRatio) { - angle3 = Math.atan2(to[1] - from[1], to[0] - from[0]); - break; - } - startRatio += currentRatio; - } - return angle3; -} -function distanceAtSegment(points, x6, y5) { - var minDistance = Infinity; - for (var i4 = 0; i4 < points.length - 1; i4++) { - var point2 = points[i4]; - var nextPoint = points[i4 + 1]; - var distance_1 = line_default.pointDistance(point2[0], point2[1], nextPoint[0], nextPoint[1], x6, y5); - if (distance_1 < minDistance) { - minDistance = distance_1; - } - } - return minDistance; -} - -// node_modules/@antv/g-math/esm/polyline.js -var polyline_default = { - box: function(points) { - var xArr = []; - var yArr = []; - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - xArr.push(point2[0]); - yArr.push(point2[1]); - } - return getBBoxByArray(xArr, yArr); - }, - length: function(points) { - return lengthOfSegment(points); - }, - pointAt: function(points, t4) { - return pointAtSegments(points, t4); - }, - pointDistance: function(points, x6, y5) { - return distanceAtSegment(points, x6, y5); - }, - tangentAngle: function(points, t4) { - return angleAtSegments(points, t4); - } -}; - -// node_modules/@antv/g-base/esm/bbox/util.js -function mergeBBox(bbox1, bbox2) { - if (!bbox1 || !bbox2) { - return bbox1 || bbox2; - } - return { - minX: Math.min(bbox1.minX, bbox2.minX), - minY: Math.min(bbox1.minY, bbox2.minY), - maxX: Math.max(bbox1.maxX, bbox2.maxX), - maxY: Math.max(bbox1.maxY, bbox2.maxY) - }; -} -function mergeArrowBBox(shape, bbox) { - var startArrowShape = shape.get("startArrowShape"); - var endArrowShape = shape.get("endArrowShape"); - var startArrowBBox = null; - var endArrowBBox = null; - if (startArrowShape) { - startArrowBBox = startArrowShape.getCanvasBBox(); - bbox = mergeBBox(bbox, startArrowBBox); - } - if (endArrowShape) { - endArrowBBox = endArrowShape.getCanvasBBox(); - bbox = mergeBBox(bbox, endArrowBBox); - } - return bbox; -} - -// node_modules/@antv/g-base/esm/bbox/polyline.js -function polyline_default2(shape) { - var attrs = shape.attr(); - var points = attrs.points; - var xArr = []; - var yArr = []; - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - xArr.push(point2[0]); - yArr.push(point2[1]); - } - var _a6 = util_exports.getBBoxByArray(xArr, yArr), x6 = _a6.x, y5 = _a6.y, width2 = _a6.width, height = _a6.height; - var bbox = { - minX: x6, - minY: y5, - maxX: x6 + width2, - maxY: y5 + height - }; - bbox = mergeArrowBBox(shape, bbox); - return { - x: bbox.minX, - y: bbox.minY, - width: bbox.maxX - bbox.minX, - height: bbox.maxY - bbox.minY - }; -} - -// node_modules/@antv/g-base/esm/bbox/polygon.js -function polygon_default2(shape) { - var attrs = shape.attr(); - var points = attrs.points; - var xArr = []; - var yArr = []; - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - xArr.push(point2[0]); - yArr.push(point2[1]); - } - return util_exports.getBBoxByArray(xArr, yArr); -} - -// node_modules/@antv/g-base/esm/util/offscreen.js -var offScreenCtx = null; -function getOffScreenContext() { - if (!offScreenCtx) { - var canvas = document.createElement("canvas"); - canvas.width = 1; - canvas.height = 1; - offScreenCtx = canvas.getContext("2d"); - } - return offScreenCtx; -} - -// node_modules/@antv/g-base/esm/util/text.js -function getTextHeight(text, fontSize, lineHeight) { - var lineCount = 1; - if (is_string_default(text)) { - lineCount = text.split("\n").length; - } - if (lineCount > 1) { - var spaceingY = getLineSpaceing(fontSize, lineHeight); - return fontSize * lineCount + spaceingY * (lineCount - 1); - } - return fontSize; -} -function getLineSpaceing(fontSize, lineHeight) { - return lineHeight ? lineHeight - fontSize : fontSize * 0.14; -} -function getTextWidth(text, font) { - var context = getOffScreenContext(); - var width2 = 0; - if (is_nil_default(text) || text === "") { - return width2; - } - context.save(); - context.font = font; - if (is_string_default(text) && text.includes("\n")) { - var textArr = text.split("\n"); - each_default(textArr, function(subText) { - var measureWidth = context.measureText(subText).width; - if (width2 < measureWidth) { - width2 = measureWidth; - } - }); - } else { - width2 = context.measureText(text).width; - } - context.restore(); - return width2; -} -function assembleFont(attrs) { - var fontSize = attrs.fontSize, fontFamily = attrs.fontFamily, fontWeight = attrs.fontWeight, fontStyle = attrs.fontStyle, fontVariant = attrs.fontVariant; - return [fontStyle, fontVariant, fontWeight, fontSize + "px", fontFamily].join(" ").trim(); -} - -// node_modules/@antv/g-base/esm/bbox/text.js -function text_default(shape) { - var attrs = shape.attr(); - var x6 = attrs.x, y5 = attrs.y, text = attrs.text, fontSize = attrs.fontSize, lineHeight = attrs.lineHeight; - var font = attrs.font; - if (!font) { - font = assembleFont(attrs); - } - var width2 = getTextWidth(text, font); - var bbox; - if (!width2) { - bbox = { - x: x6, - y: y5, - width: 0, - height: 0 - }; - } else { - var textAlign = attrs.textAlign, textBaseline = attrs.textBaseline; - var height = getTextHeight(text, fontSize, lineHeight); - var point2 = { - x: x6, - y: y5 - height - }; - if (textAlign) { - if (textAlign === "end" || textAlign === "right") { - point2.x -= width2; - } else if (textAlign === "center") { - point2.x -= width2 / 2; - } - } - if (textBaseline) { - if (textBaseline === "top") { - point2.y += height; - } else if (textBaseline === "middle") { - point2.y += height / 2; - } - } - bbox = { - x: point2.x, - y: point2.y, - width: width2, - height - }; - } - return bbox; -} - -// node_modules/@antv/path-util/esm/parse-path.js -var regexTags = /[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/ig; -var regexDot = /[^\s\,]+/ig; -function parsePath(p4) { - var path = p4 || []; - if (is_array_default(path)) { - return path; - } - if (is_string_default(path)) { - path = path.match(regexTags); - each_default(path, function(item, index2) { - item = item.match(regexDot); - if (item[0].length > 1) { - var tag = item[0].charAt(0); - item.splice(1, 0, item[0].substr(1)); - item[0] = tag; - } - each_default(item, function(sub6, i4) { - if (!isNaN(sub6)) { - item[i4] = +sub6; - } - }); - path[index2] = item; - }); - return path; - } -} -var parse_path_default = parsePath; - -// node_modules/@antv/path-util/esm/catmull-rom-2-bezier.js -function smoothBezier(points, smooth, isLoop, constraint) { - var cps = []; - var hasConstraint = !!constraint; - var prevPoint; - var nextPoint; - var min7; - var max8; - var nextCp0; - var cp1; - var cp0; - if (hasConstraint) { - min7 = constraint[0], max8 = constraint[1]; - for (var i4 = 0, l4 = points.length; i4 < l4; i4 += 1) { - var point2 = points[i4]; - min7 = vec2_exports.min([0, 0], min7, point2); - max8 = vec2_exports.max([0, 0], max8, point2); - } - } - for (var i4 = 0, len5 = points.length; i4 < len5; i4 += 1) { - var point2 = points[i4]; - if (i4 === 0 && !isLoop) { - cp0 = point2; - } else if (i4 === len5 - 1 && !isLoop) { - cp1 = point2; - cps.push(cp0); - cps.push(cp1); - } else { - var prevIdx = [i4 ? i4 - 1 : len5 - 1, i4 - 1][isLoop ? 0 : 1]; - prevPoint = points[prevIdx]; - nextPoint = points[isLoop ? (i4 + 1) % len5 : i4 + 1]; - var v3 = [0, 0]; - v3 = vec2_exports.sub(v3, nextPoint, prevPoint); - v3 = vec2_exports.scale(v3, v3, smooth); - var d0 = vec2_exports.distance(point2, prevPoint); - var d1 = vec2_exports.distance(point2, nextPoint); - var sum = d0 + d1; - if (sum !== 0) { - d0 /= sum; - d1 /= sum; - } - var v1 = vec2_exports.scale([0, 0], v3, -d0); - var v22 = vec2_exports.scale([0, 0], v3, d1); - cp1 = vec2_exports.add([0, 0], point2, v1); - nextCp0 = vec2_exports.add([0, 0], point2, v22); - nextCp0 = vec2_exports.min([0, 0], nextCp0, vec2_exports.max([0, 0], nextPoint, point2)); - nextCp0 = vec2_exports.max([0, 0], nextCp0, vec2_exports.min([0, 0], nextPoint, point2)); - v1 = vec2_exports.sub([0, 0], nextCp0, point2); - v1 = vec2_exports.scale([0, 0], v1, -d0 / d1); - cp1 = vec2_exports.add([0, 0], point2, v1); - cp1 = vec2_exports.min([0, 0], cp1, vec2_exports.max([0, 0], prevPoint, point2)); - cp1 = vec2_exports.max([0, 0], cp1, vec2_exports.min([0, 0], prevPoint, point2)); - v22 = vec2_exports.sub([0, 0], point2, cp1); - v22 = vec2_exports.scale([0, 0], v22, d1 / d0); - nextCp0 = vec2_exports.add([0, 0], point2, v22); - if (hasConstraint) { - cp1 = vec2_exports.max([0, 0], cp1, min7); - cp1 = vec2_exports.min([0, 0], cp1, max8); - nextCp0 = vec2_exports.max([0, 0], nextCp0, min7); - nextCp0 = vec2_exports.min([0, 0], nextCp0, max8); - } - cps.push(cp0); - cps.push(cp1); - cp0 = nextCp0; - } - } - if (isLoop) { - cps.push(cps.shift()); - } - return cps; -} -function catmullRom2Bezier(crp, z3, constraint) { - if (z3 === void 0) { - z3 = false; - } - if (constraint === void 0) { - constraint = [ - [0, 0], - [1, 1] - ]; - } - var isLoop = !!z3; - var pointList = []; - for (var i4 = 0, l4 = crp.length; i4 < l4; i4 += 2) { - pointList.push([crp[i4], crp[i4 + 1]]); - } - var controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint); - var len5 = pointList.length; - var d1 = []; - var cp1; - var cp2; - var p4; - for (var i4 = 0; i4 < len5 - 1; i4 += 1) { - cp1 = controlPointList[i4 * 2]; - cp2 = controlPointList[i4 * 2 + 1]; - p4 = pointList[i4 + 1]; - d1.push(["C", cp1[0], cp1[1], cp2[0], cp2[1], p4[0], p4[1]]); - } - if (isLoop) { - cp1 = controlPointList[len5]; - cp2 = controlPointList[len5 + 1]; - p4 = pointList[0]; - d1.push(["C", cp1[0], cp1[1], cp2[0], cp2[1], p4[0], p4[1]]); - } - return d1; -} -var catmull_rom_2_bezier_default = catmullRom2Bezier; - -// node_modules/@antv/path-util/esm/parse-path-string.js -var SPACES2 = " \n\v\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029"; -var PATH_COMMAND2 = new RegExp("([a-z])[" + SPACES2 + ",]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[" + SPACES2 + "]*,?[" + SPACES2 + "]*)+)", "ig"); -var PATH_VALUES2 = new RegExp("(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[" + SPACES2 + "]*,?[" + SPACES2 + "]*", "ig"); -function parsePathString2(pathString) { - if (!pathString) { - return null; - } - if (is_array_default(pathString)) { - return pathString; - } - var paramCounts = { - a: 7, - c: 6, - o: 2, - h: 1, - l: 2, - m: 2, - r: 4, - q: 4, - s: 4, - t: 2, - v: 1, - u: 3, - z: 0 - }; - var data3 = []; - String(pathString).replace(PATH_COMMAND2, function(a4, b10, c5) { - var params = []; - var name = b10.toLowerCase(); - c5.replace(PATH_VALUES2, function(a5, b11) { - b11 && params.push(+b11); - }); - if (name === "m" && params.length > 2) { - data3.push([b10].concat(params.splice(0, 2))); - name = "l"; - b10 = b10 === "m" ? "l" : "L"; - } - if (name === "o" && params.length === 1) { - data3.push([b10, params[0]]); - } - if (name === "r") { - data3.push([b10].concat(params)); - } else { - while (params.length >= paramCounts[name]) { - data3.push([b10].concat(params.splice(0, paramCounts[name]))); - if (!paramCounts[name]) { - break; - } - } - } - return ""; - }); - return data3; -} - -// node_modules/@antv/path-util/esm/path-2-absolute.js -var REGEX_MD = /[a-z]/; -function toSymmetry(p4, c5) { - return [ - c5[0] + (c5[0] - p4[0]), - c5[1] + (c5[1] - p4[1]) - ]; -} -function pathToAbsolute2(pathString) { - var pathArray = parsePathString2(pathString); - if (!pathArray || !pathArray.length) { - return [ - ["M", 0, 0] - ]; - } - var needProcess = false; - for (var i4 = 0; i4 < pathArray.length; i4++) { - var cmd = pathArray[i4][0]; - if (REGEX_MD.test(cmd) || ["V", "H", "T", "S"].indexOf(cmd) >= 0) { - needProcess = true; - break; - } - } - if (!needProcess) { - return pathArray; - } - var res = []; - var x6 = 0; - var y5 = 0; - var mx = 0; - var my = 0; - var start = 0; - var pa0; - var dots; - var first = pathArray[0]; - if (first[0] === "M" || first[0] === "m") { - x6 = +first[1]; - y5 = +first[2]; - mx = x6; - my = y5; - start++; - res[0] = ["M", x6, y5]; - } - for (var i4 = start, ii = pathArray.length; i4 < ii; i4++) { - var pa = pathArray[i4]; - var preParams = res[i4 - 1]; - var r4 = []; - var cmd = pa[0]; - var upCmd = cmd.toUpperCase(); - if (cmd !== upCmd) { - r4[0] = upCmd; - switch (upCmd) { - case "A": - r4[1] = pa[1]; - r4[2] = pa[2]; - r4[3] = pa[3]; - r4[4] = pa[4]; - r4[5] = pa[5]; - r4[6] = +pa[6] + x6; - r4[7] = +pa[7] + y5; - break; - case "V": - r4[1] = +pa[1] + y5; - break; - case "H": - r4[1] = +pa[1] + x6; - break; - case "M": - mx = +pa[1] + x6; - my = +pa[2] + y5; - r4[1] = mx; - r4[2] = my; - break; - default: - for (var j4 = 1, jj = pa.length; j4 < jj; j4++) { - r4[j4] = +pa[j4] + (j4 % 2 ? x6 : y5); - } - } - } else { - r4 = pathArray[i4]; - } - switch (upCmd) { - case "Z": - x6 = +mx; - y5 = +my; - break; - case "H": - x6 = r4[1]; - r4 = ["L", x6, y5]; - break; - case "V": - y5 = r4[1]; - r4 = ["L", x6, y5]; - break; - case "T": - x6 = r4[1]; - y5 = r4[2]; - var symetricT = toSymmetry([preParams[1], preParams[2]], [preParams[3], preParams[4]]); - r4 = ["Q", symetricT[0], symetricT[1], x6, y5]; - break; - case "S": - x6 = r4[r4.length - 2]; - y5 = r4[r4.length - 1]; - var length_1 = preParams.length; - var symetricS = toSymmetry([preParams[length_1 - 4], preParams[length_1 - 3]], [preParams[length_1 - 2], preParams[length_1 - 1]]); - r4 = ["C", symetricS[0], symetricS[1], r4[1], r4[2], x6, y5]; - break; - case "M": - mx = r4[r4.length - 2]; - my = r4[r4.length - 1]; - break; - default: - x6 = r4[r4.length - 2]; - y5 = r4[r4.length - 1]; - } - res.push(r4); - } - return res; -} - -// node_modules/@antv/path-util/esm/process/arc-2-cubic.js -var TAU = Math.PI * 2; - -// node_modules/@antv/path-util/esm/get-arc-params.js -function vMag(v3) { - return Math.sqrt(v3[0] * v3[0] + v3[1] * v3[1]); -} -function vRatio(u3, v3) { - return vMag(u3) * vMag(v3) ? (u3[0] * v3[0] + u3[1] * v3[1]) / (vMag(u3) * vMag(v3)) : 1; -} -function vAngle(u3, v3) { - return (u3[0] * v3[1] < u3[1] * v3[0] ? -1 : 1) * Math.acos(vRatio(u3, v3)); -} -function isSamePoint(point1, point2) { - return point1[0] === point2[0] && point1[1] === point2[1]; -} -function getArcParams(startPoint, params) { - var rx = params[1]; - var ry = params[2]; - var xRotation = mod_default(to_radian_default(params[3]), Math.PI * 2); - var arcFlag = params[4]; - var sweepFlag = params[5]; - var x1 = startPoint[0]; - var y1 = startPoint[1]; - var x22 = params[6]; - var y22 = params[7]; - var xp = Math.cos(xRotation) * (x1 - x22) / 2 + Math.sin(xRotation) * (y1 - y22) / 2; - var yp = -1 * Math.sin(xRotation) * (x1 - x22) / 2 + Math.cos(xRotation) * (y1 - y22) / 2; - var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); - if (lambda > 1) { - rx *= Math.sqrt(lambda); - ry *= Math.sqrt(lambda); - } - var diff2 = rx * rx * (yp * yp) + ry * ry * (xp * xp); - var f3 = diff2 ? Math.sqrt((rx * rx * (ry * ry) - diff2) / diff2) : 1; - if (arcFlag === sweepFlag) { - f3 *= -1; - } - if (isNaN(f3)) { - f3 = 0; - } - var cxp = ry ? f3 * rx * yp / ry : 0; - var cyp = rx ? f3 * -ry * xp / rx : 0; - var cx = (x1 + x22) / 2 + Math.cos(xRotation) * cxp - Math.sin(xRotation) * cyp; - var cy = (y1 + y22) / 2 + Math.sin(xRotation) * cxp + Math.cos(xRotation) * cyp; - var u3 = [(xp - cxp) / rx, (yp - cyp) / ry]; - var v3 = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; - var theta = vAngle([1, 0], u3); - var dTheta = vAngle(u3, v3); - if (vRatio(u3, v3) <= -1) { - dTheta = Math.PI; - } - if (vRatio(u3, v3) >= 1) { - dTheta = 0; - } - if (sweepFlag === 0 && dTheta > 0) { - dTheta = dTheta - 2 * Math.PI; - } - if (sweepFlag === 1 && dTheta < 0) { - dTheta = dTheta + 2 * Math.PI; - } - return { - cx, - cy, - rx: isSamePoint(startPoint, [x22, y22]) ? 0 : rx, - ry: isSamePoint(startPoint, [x22, y22]) ? 0 : ry, - startAngle: theta, - endAngle: theta + dTheta, - xRotation, - arcFlag, - sweepFlag - }; -} - -// node_modules/@antv/path-util/esm/path-2-segments.js -function toSymmetry2(point2, center2) { - return [center2[0] + (center2[0] - point2[0]), center2[1] + (center2[1] - point2[1])]; -} -function getSegments(path) { - path = parse_path_default(path); - var segments = []; - var currentPoint = null; - var nextParams = null; - var startMovePoint = null; - var lastStartMovePointIndex = 0; - var count2 = path.length; - for (var i4 = 0; i4 < count2; i4++) { - var params = path[i4]; - nextParams = path[i4 + 1]; - var command = params[0]; - var segment = { - command, - prePoint: currentPoint, - params, - startTangent: null, - endTangent: null - }; - switch (command) { - case "M": - startMovePoint = [params[1], params[2]]; - lastStartMovePointIndex = i4; - break; - case "A": - var arcParams = getArcParams(currentPoint, params); - segment["arcParams"] = arcParams; - break; - default: - break; - } - if (command === "Z") { - currentPoint = startMovePoint; - nextParams = path[lastStartMovePointIndex + 1]; - } else { - var len5 = params.length; - currentPoint = [params[len5 - 2], params[len5 - 1]]; - } - if (nextParams && nextParams[0] === "Z") { - nextParams = path[lastStartMovePointIndex]; - if (segments[lastStartMovePointIndex]) { - segments[lastStartMovePointIndex].prePoint = currentPoint; - } - } - segment["currentPoint"] = currentPoint; - if (segments[lastStartMovePointIndex] && isSamePoint(currentPoint, segments[lastStartMovePointIndex].currentPoint)) { - segments[lastStartMovePointIndex].prePoint = segment.prePoint; - } - var nextPoint = nextParams ? [nextParams[nextParams.length - 2], nextParams[nextParams.length - 1]] : null; - segment["nextPoint"] = nextPoint; - var prePoint = segment.prePoint; - if (["L", "H", "V"].includes(command)) { - segment.startTangent = [prePoint[0] - currentPoint[0], prePoint[1] - currentPoint[1]]; - segment.endTangent = [currentPoint[0] - prePoint[0], currentPoint[1] - prePoint[1]]; - } else if (command === "Q") { - var cp = [params[1], params[2]]; - segment.startTangent = [prePoint[0] - cp[0], prePoint[1] - cp[1]]; - segment.endTangent = [currentPoint[0] - cp[0], currentPoint[1] - cp[1]]; - } else if (command === "T") { - var preSegment = segments[i4 - 1]; - var cp = toSymmetry2(preSegment.currentPoint, prePoint); - if (preSegment.command === "Q") { - segment.command = "Q"; - segment.startTangent = [prePoint[0] - cp[0], prePoint[1] - cp[1]]; - segment.endTangent = [currentPoint[0] - cp[0], currentPoint[1] - cp[1]]; - } else { - segment.command = "TL"; - segment.startTangent = [prePoint[0] - currentPoint[0], prePoint[1] - currentPoint[1]]; - segment.endTangent = [currentPoint[0] - prePoint[0], currentPoint[1] - prePoint[1]]; - } - } else if (command === "C") { - var cp1 = [params[1], params[2]]; - var cp2 = [params[3], params[4]]; - segment.startTangent = [prePoint[0] - cp1[0], prePoint[1] - cp1[1]]; - segment.endTangent = [currentPoint[0] - cp2[0], currentPoint[1] - cp2[1]]; - if (segment.startTangent[0] === 0 && segment.startTangent[1] === 0) { - segment.startTangent = [cp1[0] - cp2[0], cp1[1] - cp2[1]]; - } - if (segment.endTangent[0] === 0 && segment.endTangent[1] === 0) { - segment.endTangent = [cp2[0] - cp1[0], cp2[1] - cp1[1]]; - } - } else if (command === "S") { - var preSegment = segments[i4 - 1]; - var cp1 = toSymmetry2(preSegment.currentPoint, prePoint); - var cp2 = [params[1], params[2]]; - if (preSegment.command === "C") { - segment.command = "C"; - segment.startTangent = [prePoint[0] - cp1[0], prePoint[1] - cp1[1]]; - segment.endTangent = [currentPoint[0] - cp2[0], currentPoint[1] - cp2[1]]; - } else { - segment.command = "SQ"; - segment.startTangent = [prePoint[0] - cp2[0], prePoint[1] - cp2[1]]; - segment.endTangent = [currentPoint[0] - cp2[0], currentPoint[1] - cp2[1]]; - } - } else if (command === "A") { - var d3 = 1e-3; - var _a6 = segment["arcParams"] || {}, _b = _a6.cx, cx = _b === void 0 ? 0 : _b, _c = _a6.cy, cy = _c === void 0 ? 0 : _c, _d = _a6.rx, rx = _d === void 0 ? 0 : _d, _e = _a6.ry, ry = _e === void 0 ? 0 : _e, _f = _a6.sweepFlag, sweepFlag = _f === void 0 ? 0 : _f, _g = _a6.startAngle, startAngle = _g === void 0 ? 0 : _g, _h = _a6.endAngle, endAngle = _h === void 0 ? 0 : _h; - if (sweepFlag === 0) { - d3 *= -1; - } - var dx1 = rx * Math.cos(startAngle - d3) + cx; - var dy1 = ry * Math.sin(startAngle - d3) + cy; - segment.startTangent = [dx1 - startMovePoint[0], dy1 - startMovePoint[1]]; - var dx2 = rx * Math.cos(startAngle + endAngle + d3) + cx; - var dy2 = ry * Math.sin(startAngle + endAngle - d3) + cy; - segment.endTangent = [prePoint[0] - dx2, prePoint[1] - dy2]; - } - segments.push(segment); - } - return segments; -} - -// node_modules/@antv/path-util/esm/get-line-intersect.js -var isBetween = function(value2, min7, max8) { - return value2 >= min7 && value2 <= max8; -}; -function getLineIntersect(p0, p1, p22, p32) { - var tolerance3 = 1e-3; - var E2 = { - x: p22.x - p0.x, - y: p22.y - p0.y - }; - var D0 = { - x: p1.x - p0.x, - y: p1.y - p0.y - }; - var D1 = { - x: p32.x - p22.x, - y: p32.y - p22.y - }; - var kross = D0.x * D1.y - D0.y * D1.x; - var sqrKross = kross * kross; - var sqrLen0 = D0.x * D0.x + D0.y * D0.y; - var sqrLen1 = D1.x * D1.x + D1.y * D1.y; - var point2 = null; - if (sqrKross > tolerance3 * sqrLen0 * sqrLen1) { - var s4 = (E2.x * D1.y - E2.y * D1.x) / kross; - var t4 = (E2.x * D0.y - E2.y * D0.x) / kross; - if (isBetween(s4, 0, 1) && isBetween(t4, 0, 1)) { - point2 = { - x: p0.x + s4 * D0.x, - y: p0.y + s4 * D0.y - }; - } - } - return point2; -} - -// node_modules/@antv/path-util/esm/point-in-polygon.js -var tolerance = 1e-6; -function dcmp(x6) { - if (Math.abs(x6) < tolerance) { - return 0; - } - return x6 < 0 ? -1 : 1; -} -function onSegment(p1, p22, q4) { - if ((q4[0] - p1[0]) * (p22[1] - p1[1]) === (p22[0] - p1[0]) * (q4[1] - p1[1]) && Math.min(p1[0], p22[0]) <= q4[0] && q4[0] <= Math.max(p1[0], p22[0]) && Math.min(p1[1], p22[1]) <= q4[1] && q4[1] <= Math.max(p1[1], p22[1])) { - return true; - } - return false; -} -function isInPolygon(points, x6, y5) { - var isHit = false; - var n3 = points.length; - if (n3 <= 2) { - return false; - } - for (var i4 = 0; i4 < n3; i4++) { - var p1 = points[i4]; - var p22 = points[(i4 + 1) % n3]; - if (onSegment(p1, p22, [x6, y5])) { - return true; - } - if (dcmp(p1[1] - y5) > 0 !== dcmp(p22[1] - y5) > 0 && dcmp(x6 - (y5 - p1[1]) * (p1[0] - p22[0]) / (p1[1] - p22[1]) - p1[0]) < 0) { - isHit = !isHit; - } - } - return isHit; -} - -// node_modules/@antv/path-util/esm/is-polygons-intersect.js -function parseToLines(points) { - var lines = []; - var count2 = points.length; - for (var i4 = 0; i4 < count2 - 1; i4++) { - var point2 = points[i4]; - var next = points[i4 + 1]; - lines.push({ - from: { - x: point2[0], - y: point2[1] - }, - to: { - x: next[0], - y: next[1] - } - }); - } - if (lines.length > 1) { - var first = points[0]; - var last2 = points[count2 - 1]; - lines.push({ - from: { - x: last2[0], - y: last2[1] - }, - to: { - x: first[0], - y: first[1] - } - }); - } - return lines; -} -function lineIntersectPolygon(lines, line2) { - var isIntersect2 = false; - each_default(lines, function(l4) { - if (getLineIntersect(l4.from, l4.to, line2.from, line2.to)) { - isIntersect2 = true; - return false; - } - }); - return isIntersect2; -} -function getBBox(points) { - var xArr = points.map(function(p4) { - return p4[0]; - }); - var yArr = points.map(function(p4) { - return p4[1]; - }); - return { - minX: Math.min.apply(null, xArr), - maxX: Math.max.apply(null, xArr), - minY: Math.min.apply(null, yArr), - maxY: Math.max.apply(null, yArr) - }; -} -function intersectBBox(box1, box2) { - return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY); -} -function isPolygonsIntersect(points1, points2) { - if (points1.length < 2 || points2.length < 2) { - return false; - } - var bbox1 = getBBox(points1); - var bbox2 = getBBox(points2); - if (!intersectBBox(bbox1, bbox2)) { - return false; - } - var isIn = false; - each_default(points2, function(point2) { - if (isInPolygon(points1, point2[0], point2[1])) { - isIn = true; - return false; - } - }); - if (isIn) { - return true; - } - each_default(points1, function(point2) { - if (isInPolygon(points2, point2[0], point2[1])) { - isIn = true; - return false; - } - }); - if (isIn) { - return true; - } - var lines1 = parseToLines(points1); - var lines2 = parseToLines(points2); - var isIntersect2 = false; - each_default(lines2, function(line2) { - if (lineIntersectPolygon(lines1, line2)) { - isIntersect2 = true; - return false; - } - }); - return isIntersect2; -} - -// node_modules/@antv/g-base/esm/bbox/path.js -function getPathBox(segments, lineWidth) { - var xArr = []; - var yArr = []; - var segmentsWithAngle = []; - for (var i4 = 0; i4 < segments.length; i4++) { - var segment = segments[i4]; - var currentPoint = segment.currentPoint, params = segment.params, prePoint = segment.prePoint; - var box2 = void 0; - switch (segment.command) { - case "Q": - box2 = quadratic_default.box(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4]); - break; - case "C": - box2 = cubic_default.box(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4], params[5], params[6]); - break; - case "A": - var arcParams = segment.arcParams; - box2 = arc_default.box(arcParams.cx, arcParams.cy, arcParams.rx, arcParams.ry, arcParams.xRotation, arcParams.startAngle, arcParams.endAngle); - break; - default: - xArr.push(currentPoint[0]); - yArr.push(currentPoint[1]); - break; - } - if (box2) { - segment.box = box2; - xArr.push(box2.x, box2.x + box2.width); - yArr.push(box2.y, box2.y + box2.height); - } - if (lineWidth && (segment.command === "L" || segment.command === "M") && segment.prePoint && segment.nextPoint) { - segmentsWithAngle.push(segment); - } - } - xArr = xArr.filter(function(item) { - return !Number.isNaN(item); - }); - yArr = yArr.filter(function(item) { - return !Number.isNaN(item); - }); - var minX = min_default(xArr); - var minY = min_default(yArr); - var maxX = max_default(xArr); - var maxY2 = max_default(yArr); - if (segmentsWithAngle.length === 0) { - return { - x: minX, - y: minY, - width: maxX - minX, - height: maxY2 - minY - }; - } - for (var i4 = 0; i4 < segmentsWithAngle.length; i4++) { - var segment = segmentsWithAngle[i4]; - var currentPoint = segment.currentPoint; - var extra = void 0; - if (currentPoint[0] === minX) { - extra = getExtraFromSegmentWithAngle(segment, lineWidth); - minX = minX - extra.xExtra; - } else if (currentPoint[0] === maxX) { - extra = getExtraFromSegmentWithAngle(segment, lineWidth); - maxX = maxX + extra.xExtra; - } - if (currentPoint[1] === minY) { - extra = getExtraFromSegmentWithAngle(segment, lineWidth); - minY = minY - extra.yExtra; - } else if (currentPoint[1] === maxY2) { - extra = getExtraFromSegmentWithAngle(segment, lineWidth); - maxY2 = maxY2 + extra.yExtra; - } - } - return { - x: minX, - y: minY, - width: maxX - minX, - height: maxY2 - minY - }; -} -function getExtraFromSegmentWithAngle(segment, lineWidth) { - var prePoint = segment.prePoint, currentPoint = segment.currentPoint, nextPoint = segment.nextPoint; - var currentAndPre = Math.pow(currentPoint[0] - prePoint[0], 2) + Math.pow(currentPoint[1] - prePoint[1], 2); - var currentAndNext = Math.pow(currentPoint[0] - nextPoint[0], 2) + Math.pow(currentPoint[1] - nextPoint[1], 2); - var preAndNext = Math.pow(prePoint[0] - nextPoint[0], 2) + Math.pow(prePoint[1] - nextPoint[1], 2); - var currentAngle = Math.acos((currentAndPre + currentAndNext - preAndNext) / (2 * Math.sqrt(currentAndPre) * Math.sqrt(currentAndNext))); - if (!currentAngle || Math.sin(currentAngle) === 0 || isNumberEqual(currentAngle, 0)) { - return { - xExtra: 0, - yExtra: 0 - }; - } - var xAngle = Math.abs(Math.atan2(nextPoint[1] - currentPoint[1], nextPoint[0] - currentPoint[0])); - var yAngle = Math.abs(Math.atan2(nextPoint[0] - currentPoint[0], nextPoint[1] - currentPoint[1])); - xAngle = xAngle > Math.PI / 2 ? Math.PI - xAngle : xAngle; - yAngle = yAngle > Math.PI / 2 ? Math.PI - yAngle : yAngle; - var extra = { - xExtra: Math.cos(currentAngle / 2 - xAngle) * (lineWidth / 2 * (1 / Math.sin(currentAngle / 2))) - lineWidth / 2 || 0, - yExtra: Math.cos(yAngle - currentAngle / 2) * (lineWidth / 2 * (1 / Math.sin(currentAngle / 2))) - lineWidth / 2 || 0 - }; - return extra; -} -function path_default(shape) { - var attrs = shape.attr(); - var path = attrs.path, stroke = attrs.stroke; - var lineWidth = stroke ? attrs.lineWidth : 0; - var segments = shape.get("segments") || getSegments(path); - var _a6 = getPathBox(segments, lineWidth), x6 = _a6.x, y5 = _a6.y, width2 = _a6.width, height = _a6.height; - var bbox = { - minX: x6, - minY: y5, - maxX: x6 + width2, - maxY: y5 + height - }; - bbox = mergeArrowBBox(shape, bbox); - return { - x: bbox.minX, - y: bbox.minY, - width: bbox.maxX - bbox.minX, - height: bbox.maxY - bbox.minY - }; -} - -// node_modules/@antv/g-base/esm/bbox/line.js -function line_default2(shape) { - var attrs = shape.attr(); - var x1 = attrs.x1, y1 = attrs.y1, x22 = attrs.x2, y22 = attrs.y2; - var minX = Math.min(x1, x22); - var maxX = Math.max(x1, x22); - var minY = Math.min(y1, y22); - var maxY2 = Math.max(y1, y22); - var bbox = { - minX, - maxX, - minY, - maxY: maxY2 - }; - bbox = mergeArrowBBox(shape, bbox); - return { - x: bbox.minX, - y: bbox.minY, - width: bbox.maxX - bbox.minX, - height: bbox.maxY - bbox.minY - }; -} - -// node_modules/@antv/g-base/esm/bbox/ellipse.js -function ellipse_default2(shape) { - var attrs = shape.attr(); - var x6 = attrs.x, y5 = attrs.y, rx = attrs.rx, ry = attrs.ry; - return { - x: x6 - rx, - y: y5 - ry, - width: rx * 2, - height: ry * 2 - }; -} - -// node_modules/@antv/g-base/esm/bbox/index.js -register("rect", rect_default); -register("image", rect_default); -register("circle", circle_default); -register("marker", circle_default); -register("polyline", polyline_default2); -register("polygon", polygon_default2); -register("text", text_default); -register("path", path_default); -register("line", line_default2); -register("ellipse", ellipse_default2); - -// node_modules/@antv/adjust/esm/constant.js -var DEFAULT_Y = 0; -var MARGIN_RATIO = 1 / 2; -var DODGE_RATIO = 1 / 2; -var GAP = 0.05; - -// node_modules/@antv/adjust/esm/adjusts/adjust.js -var Adjust = function() { - function Adjust2(cfg) { - var xField = cfg.xField, yField = cfg.yField, _a6 = cfg.adjustNames, adjustNames = _a6 === void 0 ? ["x", "y"] : _a6; - this.adjustNames = adjustNames; - this.xField = xField; - this.yField = yField; - } - Adjust2.prototype.isAdjust = function(dim) { - return this.adjustNames.indexOf(dim) >= 0; - }; - Adjust2.prototype.getAdjustRange = function(dim, dimValue, values2) { - var yField = this.yField; - var index2 = values2.indexOf(dimValue); - var length5 = values2.length; - var pre; - var next; - if (!yField && this.isAdjust("y")) { - pre = 0; - next = 1; - } else if (length5 > 1) { - pre = values2[index2 === 0 ? 0 : index2 - 1]; - next = values2[index2 === length5 - 1 ? length5 - 1 : index2 + 1]; - if (index2 !== 0) { - pre += (dimValue - pre) / 2; - } else { - pre -= (next - dimValue) / 2; - } - if (index2 !== length5 - 1) { - next -= (next - dimValue) / 2; - } else { - next += (dimValue - values2[length5 - 2]) / 2; - } - } else { - pre = dimValue === 0 ? 0 : dimValue - 0.5; - next = dimValue === 0 ? 1 : dimValue + 0.5; - } - return { - pre, - next - }; - }; - Adjust2.prototype.adjustData = function(groupedDataArray, mergedData) { - var _this = this; - var dimValuesMap = this.getDimValues(mergedData); - each_default(groupedDataArray, function(dataArray, index2) { - each_default(dimValuesMap, function(values2, dim) { - _this.adjustDim(dim, values2, dataArray, index2); - }); - }); - }; - Adjust2.prototype.groupData = function(data3, dim) { - each_default(data3, function(record) { - if (record[dim] === void 0) { - record[dim] = DEFAULT_Y; - } - }); - return group_by_default(data3, dim); - }; - Adjust2.prototype.adjustDim = function(dim, values2, data3, index2) { - }; - Adjust2.prototype.getDimValues = function(mergedData) { - var _a6 = this, xField = _a6.xField, yField = _a6.yField; - var dimValuesMap = {}; - var dims = []; - if (xField && this.isAdjust("x")) { - dims.push(xField); - } - if (yField && this.isAdjust("y")) { - dims.push(yField); - } - dims.forEach(function(dim2) { - dimValuesMap[dim2] = values_of_key_default(mergedData, dim2).sort(function(v1, v22) { - return v1 - v22; - }); - }); - if (!yField && this.isAdjust("y")) { - var dim = "y"; - dimValuesMap[dim] = [DEFAULT_Y, 1]; - } - return dimValuesMap; - }; - return Adjust2; -}(); -var adjust_default = Adjust; - -// node_modules/@antv/adjust/esm/factory.js -var ADJUST_MAP = {}; -var getAdjust = function(type2) { - return ADJUST_MAP[type2.toLowerCase()]; -}; -var registerAdjust = function(type2, ctor) { - if (getAdjust(type2)) { - throw new Error("Adjust type '" + type2 + "' existed."); - } - ADJUST_MAP[type2.toLowerCase()] = ctor; -}; - -// node_modules/@antv/adjust/node_modules/tslib/modules/index.js -var import_tslib10 = __toModule(require_tslib2()); -var { - __extends: __extends2, - __assign: __assign2, - __rest: __rest2, - __decorate: __decorate2, - __param: __param2, - __metadata: __metadata2, - __awaiter: __awaiter2, - __generator: __generator2, - __exportStar: __exportStar2, - __createBinding: __createBinding2, - __values: __values2, - __read: __read2, - __spread: __spread2, - __spreadArrays: __spreadArrays2, - __await: __await2, - __asyncGenerator: __asyncGenerator2, - __asyncDelegator: __asyncDelegator2, - __asyncValues: __asyncValues2, - __makeTemplateObject: __makeTemplateObject2, - __importStar: __importStar2, - __importDefault: __importDefault2, - __classPrivateFieldGet: __classPrivateFieldGet2, - __classPrivateFieldSet: __classPrivateFieldSet2 -} = import_tslib10.default; - -// node_modules/@antv/adjust/esm/adjusts/dodge.js -var Dodge = function(_super) { - __extends2(Dodge2, _super); - function Dodge2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.cacheMap = {}; - _this.adjustDataArray = []; - _this.mergeData = []; - var _a6 = cfg.marginRatio, marginRatio = _a6 === void 0 ? MARGIN_RATIO : _a6, _b = cfg.dodgeRatio, dodgeRatio = _b === void 0 ? DODGE_RATIO : _b, dodgeBy = cfg.dodgeBy, intervalPadding = cfg.intervalPadding, dodgePadding = cfg.dodgePadding, xDimensionLength = cfg.xDimensionLength, groupNum = cfg.groupNum, defaultSize = cfg.defaultSize, maxColumnWidth = cfg.maxColumnWidth, minColumnWidth = cfg.minColumnWidth, columnWidthRatio = cfg.columnWidthRatio; - _this.marginRatio = marginRatio; - _this.dodgeRatio = dodgeRatio; - _this.dodgeBy = dodgeBy; - _this.intervalPadding = intervalPadding; - _this.dodgePadding = dodgePadding; - _this.xDimensionLegenth = xDimensionLength; - _this.groupNum = groupNum; - _this.defaultSize = defaultSize; - _this.maxColumnWidth = maxColumnWidth; - _this.minColumnWidth = minColumnWidth; - _this.columnWidthRatio = columnWidthRatio; - return _this; - } - Dodge2.prototype.process = function(groupDataArray) { - var groupedDataArray = clone_default(groupDataArray); - var mergeData = flatten_default(groupedDataArray); - var dodgeBy = this.dodgeBy; - var adjustDataArray = dodgeBy ? group_default(mergeData, dodgeBy) : groupedDataArray; - this.cacheMap = {}; - this.adjustDataArray = adjustDataArray; - this.mergeData = mergeData; - this.adjustData(adjustDataArray, mergeData); - this.adjustDataArray = []; - this.mergeData = []; - return groupedDataArray; - }; - Dodge2.prototype.adjustDim = function(dim, values2, data3, frameIndex) { - var _this = this; - var map6 = this.getDistribution(dim); - var groupData = this.groupData(data3, dim); - each_default(groupData, function(group2, key) { - var range; - if (values2.length === 1) { - range = { - pre: values2[0] - 1, - next: values2[0] + 1 - }; - } else { - range = _this.getAdjustRange(dim, parseFloat(key), values2); - } - each_default(group2, function(d3) { - var value2 = d3[dim]; - var valueArr = map6[value2]; - var valIndex = valueArr.indexOf(frameIndex); - d3[dim] = _this.getDodgeOffset(range, valIndex, valueArr.length); - }); - }); - return []; - }; - Dodge2.prototype.getDodgeOffset = function(range, idx, len5) { - var _a6 = this, dodgeRatio = _a6.dodgeRatio, marginRatio = _a6.marginRatio, intervalPadding = _a6.intervalPadding, dodgePadding = _a6.dodgePadding; - var pre = range.pre, next = range.next; - var tickLength = next - pre; - var position2; - if (!is_nil_default(intervalPadding) && is_nil_default(dodgePadding) && intervalPadding >= 0) { - var offset = this.getIntervalOnlyOffset(len5, idx); - position2 = pre + offset; - } else if (!is_nil_default(dodgePadding) && is_nil_default(intervalPadding) && dodgePadding >= 0) { - var offset = this.getDodgeOnlyOffset(len5, idx); - position2 = pre + offset; - } else if (!is_nil_default(intervalPadding) && !is_nil_default(dodgePadding) && intervalPadding >= 0 && dodgePadding >= 0) { - var offset = this.getIntervalAndDodgeOffset(len5, idx); - position2 = pre + offset; - } else { - var width2 = tickLength * dodgeRatio / len5; - var margin = marginRatio * width2; - var offset = 1 / 2 * (tickLength - len5 * width2 - (len5 - 1) * margin) + ((idx + 1) * width2 + idx * margin) - 1 / 2 * width2 - 1 / 2 * tickLength; - position2 = (pre + next) / 2 + offset; - } - return position2; - }; - Dodge2.prototype.getIntervalOnlyOffset = function(len5, idx) { - var _a6 = this, defaultSize = _a6.defaultSize, intervalPadding = _a6.intervalPadding, xDimensionLegenth = _a6.xDimensionLegenth, groupNum = _a6.groupNum, dodgeRatio = _a6.dodgeRatio, maxColumnWidth = _a6.maxColumnWidth, minColumnWidth = _a6.minColumnWidth, columnWidthRatio = _a6.columnWidthRatio; - var normalizedIntervalPadding = intervalPadding / xDimensionLegenth; - var normalizedDodgePadding = (1 - (groupNum - 1) * normalizedIntervalPadding) / groupNum * dodgeRatio / (len5 - 1); - var geomWidth = ((1 - normalizedIntervalPadding * (groupNum - 1)) / groupNum - normalizedDodgePadding * (len5 - 1)) / len5; - geomWidth = !is_nil_default(columnWidthRatio) ? 1 / groupNum / len5 * columnWidthRatio : geomWidth; - if (!is_nil_default(maxColumnWidth)) { - var normalizedMaxWidht = maxColumnWidth / xDimensionLegenth; - geomWidth = Math.min(geomWidth, normalizedMaxWidht); - } - if (!is_nil_default(minColumnWidth)) { - var normalizedMinWidht = minColumnWidth / xDimensionLegenth; - geomWidth = Math.max(geomWidth, normalizedMinWidht); - } - geomWidth = defaultSize ? defaultSize / xDimensionLegenth : geomWidth; - normalizedDodgePadding = ((1 - (groupNum - 1) * normalizedIntervalPadding) / groupNum - len5 * geomWidth) / (len5 - 1); - var offset = ((1 / 2 + idx) * geomWidth + idx * normalizedDodgePadding + 1 / 2 * normalizedIntervalPadding) * groupNum - normalizedIntervalPadding / 2; - return offset; - }; - Dodge2.prototype.getDodgeOnlyOffset = function(len5, idx) { - var _a6 = this, defaultSize = _a6.defaultSize, dodgePadding = _a6.dodgePadding, xDimensionLegenth = _a6.xDimensionLegenth, groupNum = _a6.groupNum, marginRatio = _a6.marginRatio, maxColumnWidth = _a6.maxColumnWidth, minColumnWidth = _a6.minColumnWidth, columnWidthRatio = _a6.columnWidthRatio; - var normalizedDodgePadding = dodgePadding / xDimensionLegenth; - var normalizedIntervalPadding = 1 * marginRatio / (groupNum - 1); - var geomWidth = ((1 - normalizedIntervalPadding * (groupNum - 1)) / groupNum - normalizedDodgePadding * (len5 - 1)) / len5; - geomWidth = columnWidthRatio ? 1 / groupNum / len5 * columnWidthRatio : geomWidth; - if (!is_nil_default(maxColumnWidth)) { - var normalizedMaxWidht = maxColumnWidth / xDimensionLegenth; - geomWidth = Math.min(geomWidth, normalizedMaxWidht); - } - if (!is_nil_default(minColumnWidth)) { - var normalizedMinWidht = minColumnWidth / xDimensionLegenth; - geomWidth = Math.max(geomWidth, normalizedMinWidht); - } - geomWidth = defaultSize ? defaultSize / xDimensionLegenth : geomWidth; - normalizedIntervalPadding = (1 - (geomWidth * len5 + normalizedDodgePadding * (len5 - 1)) * groupNum) / (groupNum - 1); - var offset = ((1 / 2 + idx) * geomWidth + idx * normalizedDodgePadding + 1 / 2 * normalizedIntervalPadding) * groupNum - normalizedIntervalPadding / 2; - return offset; - }; - Dodge2.prototype.getIntervalAndDodgeOffset = function(len5, idx) { - var _a6 = this, intervalPadding = _a6.intervalPadding, dodgePadding = _a6.dodgePadding, xDimensionLegenth = _a6.xDimensionLegenth, groupNum = _a6.groupNum; - var normalizedIntervalPadding = intervalPadding / xDimensionLegenth; - var normalizedDodgePadding = dodgePadding / xDimensionLegenth; - var geomWidth = ((1 - normalizedIntervalPadding * (groupNum - 1)) / groupNum - normalizedDodgePadding * (len5 - 1)) / len5; - var offset = ((1 / 2 + idx) * geomWidth + idx * normalizedDodgePadding + 1 / 2 * normalizedIntervalPadding) * groupNum - normalizedIntervalPadding / 2; - return offset; - }; - Dodge2.prototype.getDistribution = function(dim) { - var groupedDataArray = this.adjustDataArray; - var cacheMap = this.cacheMap; - var map6 = cacheMap[dim]; - if (!map6) { - map6 = {}; - each_default(groupedDataArray, function(data3, index2) { - var values2 = values_of_key_default(data3, dim); - if (!values2.length) { - values2.push(0); - } - each_default(values2, function(val) { - if (!map6[val]) { - map6[val] = []; - } - map6[val].push(index2); - }); - }); - cacheMap[dim] = map6; - } - return map6; - }; - return Dodge2; -}(adjust_default); -var dodge_default = Dodge; - -// node_modules/@antv/adjust/esm/adjusts/jitter.js -function randomNumber(min7, max8) { - return (max8 - min7) * Math.random() + min7; -} -var Jitter = function(_super) { - __extends2(Jitter2, _super); - function Jitter2() { - return _super !== null && _super.apply(this, arguments) || this; - } - Jitter2.prototype.process = function(groupDataArray) { - var groupedDataArray = clone_default(groupDataArray); - var mergeData = flatten_default(groupedDataArray); - this.adjustData(groupedDataArray, mergeData); - return groupedDataArray; - }; - Jitter2.prototype.adjustDim = function(dim, values2, dataArray) { - var _this = this; - var groupDataArray = this.groupData(dataArray, dim); - return each_default(groupDataArray, function(data3, dimValue) { - return _this.adjustGroup(data3, dim, parseFloat(dimValue), values2); - }); - }; - Jitter2.prototype.getAdjustOffset = function(range) { - var pre = range.pre, next = range.next; - var margin = (next - pre) * GAP; - return randomNumber(pre + margin, next - margin); - }; - Jitter2.prototype.adjustGroup = function(group2, dim, dimValue, values2) { - var _this = this; - var range = this.getAdjustRange(dim, dimValue, values2); - each_default(group2, function(data3) { - data3[dim] = _this.getAdjustOffset(range); - }); - return group2; - }; - return Jitter2; -}(adjust_default); -var jitter_default = Jitter; - -// node_modules/@antv/adjust/esm/adjusts/stack.js -var Cache = cache_default; -var Stack = function(_super) { - __extends2(Stack3, _super); - function Stack3(cfg) { - var _this = _super.call(this, cfg) || this; - var _a6 = cfg.adjustNames, adjustNames = _a6 === void 0 ? ["y"] : _a6, _b = cfg.height, height = _b === void 0 ? NaN : _b, _c = cfg.size, size2 = _c === void 0 ? 10 : _c, _d = cfg.reverseOrder, reverseOrder = _d === void 0 ? false : _d; - _this.adjustNames = adjustNames; - _this.height = height; - _this.size = size2; - _this.reverseOrder = reverseOrder; - return _this; - } - Stack3.prototype.process = function(groupDataArray) { - var _a6 = this, yField = _a6.yField, reverseOrder = _a6.reverseOrder; - var d3 = yField ? this.processStack(groupDataArray) : this.processOneDimStack(groupDataArray); - return reverseOrder ? this.reverse(d3) : d3; - }; - Stack3.prototype.reverse = function(groupedDataArray) { - return groupedDataArray.slice(0).reverse(); - }; - Stack3.prototype.processStack = function(groupDataArray) { - var _a6 = this, xField = _a6.xField, yField = _a6.yField, reverseOrder = _a6.reverseOrder; - var groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray; - var positive = new Cache(); - var negative = new Cache(); - return groupedDataArray.map(function(dataArray) { - return dataArray.map(function(data3) { - var _a7; - var x6 = get_default(data3, xField, 0); - var y5 = get_default(data3, [yField]); - var xKey = x6.toString(); - y5 = is_array_default(y5) ? y5[1] : y5; - if (!is_nil_default(y5)) { - var cache3 = y5 >= 0 ? positive : negative; - if (!cache3.has(xKey)) { - cache3.set(xKey, 0); - } - var xValue = cache3.get(xKey); - var newXValue = y5 + xValue; - cache3.set(xKey, newXValue); - return __assign2(__assign2({}, data3), (_a7 = {}, _a7[yField] = [xValue, newXValue], _a7)); - } - return data3; - }); - }); - }; - Stack3.prototype.processOneDimStack = function(groupDataArray) { - var _this = this; - var _a6 = this, xField = _a6.xField, height = _a6.height, reverseOrder = _a6.reverseOrder; - var yField = "y"; - var groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray; - var cache3 = new Cache(); - return groupedDataArray.map(function(dataArray) { - return dataArray.map(function(data3) { - var _a7; - var size2 = _this.size; - var xValue = data3[xField]; - var stackHeight = size2 * 2 / height; - if (!cache3.has(xValue)) { - cache3.set(xValue, stackHeight / 2); - } - var stackValue = cache3.get(xValue); - cache3.set(xValue, stackValue + stackHeight); - return __assign2(__assign2({}, data3), (_a7 = {}, _a7[yField] = stackValue, _a7)); - }); - }); - }; - return Stack3; -}(adjust_default); -var stack_default = Stack; - -// node_modules/@antv/adjust/esm/adjusts/symmetric.js -var Symmetric = function(_super) { - __extends2(Symmetric2, _super); - function Symmetric2() { - return _super !== null && _super.apply(this, arguments) || this; - } - Symmetric2.prototype.process = function(groupDataArray) { - var mergeData = flatten_default(groupDataArray); - var _a6 = this, xField = _a6.xField, yField = _a6.yField; - var cache3 = this.getXValuesMaxMap(mergeData); - var max8 = Math.max.apply(Math, Object.keys(cache3).map(function(key) { - return cache3[key]; - })); - return map_default(groupDataArray, function(dataArray) { - return map_default(dataArray, function(data3) { - var _a7, _b; - var yValue = data3[yField]; - var xValue = data3[xField]; - if (is_array_default(yValue)) { - var off_1 = (max8 - cache3[xValue]) / 2; - return __assign2(__assign2({}, data3), (_a7 = {}, _a7[yField] = map_default(yValue, function(y5) { - return off_1 + y5; - }), _a7)); - } - var offset = (max8 - yValue) / 2; - return __assign2(__assign2({}, data3), (_b = {}, _b[yField] = [offset, yValue + offset], _b)); - }); - }); - }; - Symmetric2.prototype.getXValuesMaxMap = function(mergeData) { - var _this = this; - var _a6 = this, xField = _a6.xField, yField = _a6.yField; - var groupDataArray = group_by_default(mergeData, function(data3) { - return data3[xField]; - }); - return map_values_default(groupDataArray, function(dataArray) { - return _this.getDimMaxValue(dataArray, yField); - }); - }; - Symmetric2.prototype.getDimMaxValue = function(mergeData, dim) { - var dimValues = map_default(mergeData, function(data3) { - return get_default(data3, dim, []); - }); - var flattenValues = flatten_default(dimValues); - return Math.max.apply(Math, flattenValues); - }; - return Symmetric2; -}(adjust_default); -var symmetric_default = Symmetric; - -// node_modules/@antv/adjust/esm/index.js -registerAdjust("Dodge", dodge_default); -registerAdjust("Jitter", jitter_default); -registerAdjust("Stack", stack_default); -registerAdjust("Symmetric", symmetric_default); - -// node_modules/@antv/attr/esm/attributes/base.js -var toScaleString = function(scale12, value2) { - if (is_string_default(value2)) { - return value2; - } - return scale12.invert(scale12.scale(value2)); -}; -var Attribute = function() { - function Attribute2(cfg) { - this.names = []; - this.scales = []; - this.linear = false; - this.values = []; - this.callback = function() { - return []; - }; - this._parseCfg(cfg); - } - Attribute2.prototype.mapping = function() { - var _this = this; - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - var values2 = params.map(function(param, idx) { - return _this._toOriginParam(param, _this.scales[idx]); - }); - return this.callback.apply(this, values2); - }; - Attribute2.prototype.getLinearValue = function(percent2) { - var steps = this.values.length - 1; - var step = Math.floor(steps * percent2); - var leftPercent = steps * percent2 - step; - var start = this.values[step]; - var end2 = step === steps ? start : this.values[step + 1]; - return start + (end2 - start) * leftPercent; - }; - Attribute2.prototype.getNames = function() { - var scales = this.scales; - var names = this.names; - var length5 = Math.min(scales.length, names.length); - var rst = []; - for (var i4 = 0; i4 < length5; i4 += 1) { - rst.push(names[i4]); - } - return rst; - }; - Attribute2.prototype.getFields = function() { - return this.scales.map(function(scale12) { - return scale12.field; - }); - }; - Attribute2.prototype.getScale = function(name) { - return this.scales[this.names.indexOf(name)]; - }; - Attribute2.prototype.defaultCallback = function() { - var _this = this; - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - if (params.length === 0) { - return this.values; - } - return params.map(function(param, idx) { - var scale12 = _this.scales[idx]; - return scale12.type === "identity" ? scale12.values[0] : _this._getAttributeValue(scale12, param); - }); - }; - Attribute2.prototype._parseCfg = function(cfg) { - var _this = this; - var _a6 = cfg.type, type2 = _a6 === void 0 ? "base" : _a6, _b = cfg.names, names = _b === void 0 ? [] : _b, _c = cfg.scales, scales = _c === void 0 ? [] : _c, _d = cfg.values, values2 = _d === void 0 ? [] : _d, callback = cfg.callback; - this.type = type2; - this.scales = scales; - this.values = values2; - this.names = names; - this.callback = function() { - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - if (callback) { - var ret = callback.apply(void 0, params); - if (!is_nil_default(ret)) { - return [ret]; - } - } - return _this.defaultCallback.apply(_this, params); - }; - }; - Attribute2.prototype._getAttributeValue = function(scale12, value2) { - if (scale12.isCategory && !this.linear) { - var idx = scale12.translate(value2); - return this.values[idx % this.values.length]; - } - var percent2 = scale12.scale(value2); - return this.getLinearValue(percent2); - }; - Attribute2.prototype._toOriginParam = function(param, scale12) { - return !scale12.isLinear ? is_array_default(param) ? param.map(function(p4) { - return toScaleString(scale12, p4); - }) : toScaleString(scale12, param) : param; - }; - return Attribute2; -}(); -var base_default3 = Attribute; - -// node_modules/@antv/attr/node_modules/tslib/modules/index.js -var import_tslib15 = __toModule(require_tslib3()); -var { - __extends: __extends3, - __assign: __assign3, - __rest: __rest3, - __decorate: __decorate3, - __param: __param3, - __metadata: __metadata3, - __awaiter: __awaiter3, - __generator: __generator3, - __exportStar: __exportStar3, - __createBinding: __createBinding3, - __values: __values3, - __read: __read3, - __spread: __spread3, - __spreadArrays: __spreadArrays3, - __await: __await3, - __asyncGenerator: __asyncGenerator3, - __asyncDelegator: __asyncDelegator3, - __asyncValues: __asyncValues3, - __makeTemplateObject: __makeTemplateObject3, - __importStar: __importStar3, - __importDefault: __importDefault3, - __classPrivateFieldGet: __classPrivateFieldGet3, - __classPrivateFieldSet: __classPrivateFieldSet3 -} = import_tslib15.default; - -// node_modules/@antv/color-util/esm/index.js -var RGB_REG = /rgba?\(([\s.,0-9]+)\)/; -var regexLG = /^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i; -var regexRG = /^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i; -var regexColorStop = /[\d.]+:(#[^\s]+|[^\)]+\))/gi; -var isGradientColor2 = function(val) { - return /^[r,R,L,l]{1}[\s]*\(/.test(val); -}; -var createTmp = function() { - var i4 = document.createElement("i"); - i4.title = "Web Colour Picker"; - i4.style.display = "none"; - document.body.appendChild(i4); - return i4; -}; -var getValue = function(start, end2, percent2, index2) { - return start[index2] + (end2[index2] - start[index2]) * percent2; -}; -function arr2rgb(arr) { - return "#" + toHex(arr[0]) + toHex(arr[1]) + toHex(arr[2]); -} -var rgb2arr = function(str8) { - return [ - parseInt(str8.substr(1, 2), 16), - parseInt(str8.substr(3, 2), 16), - parseInt(str8.substr(5, 2), 16) - ]; -}; -var toHex = function(value2) { - var x16Value = Math.round(value2).toString(16); - return x16Value.length === 1 ? "0" + x16Value : x16Value; -}; -var calColor = function(points, percent2) { - var fixedPercent = isNaN(Number(percent2)) || percent2 < 0 ? 0 : percent2 > 1 ? 1 : Number(percent2); - var steps = points.length - 1; - var step = Math.floor(steps * fixedPercent); - var left2 = steps * fixedPercent - step; - var start = points[step]; - var end2 = step === steps ? start : points[step + 1]; - return arr2rgb([ - getValue(start, end2, left2, 0), - getValue(start, end2, left2, 1), - getValue(start, end2, left2, 2) - ]); -}; -var iEl; -var toRGB = function(color4) { - if (color4[0] === "#" && color4.length === 7) { - return color4; - } - if (!iEl) { - iEl = createTmp(); - } - iEl.style.color = color4; - var rst = document.defaultView.getComputedStyle(iEl, "").getPropertyValue("color"); - var matches = RGB_REG.exec(rst); - var cArray = matches[1].split(/\s*,\s*/).map(function(s4) { - return Number(s4); - }); - rst = arr2rgb(cArray); - return rst; -}; -var gradient = function(colors) { - var colorArray = is_string_default(colors) ? colors.split("-") : colors; - var points = map_default(colorArray, function(color4) { - return rgb2arr(color4.indexOf("#") === -1 ? toRGB(color4) : color4); - }); - return function(percent2) { - return calColor(points, percent2); - }; -}; -var toCSSGradient = function(gradientColor) { - if (isGradientColor2(gradientColor)) { - var cssColor_1; - var steps = void 0; - if (gradientColor[0] === "l") { - var arr = regexLG.exec(gradientColor); - var angle3 = +arr[1] + 90; - steps = arr[2]; - cssColor_1 = "linear-gradient(" + angle3 + "deg, "; - } else if (gradientColor[0] === "r") { - cssColor_1 = "radial-gradient("; - var arr = regexRG.exec(gradientColor); - steps = arr[4]; - } - var colorStops_1 = steps.match(regexColorStop); - each_default(colorStops_1, function(item, index2) { - var itemArr = item.split(":"); - cssColor_1 += itemArr[1] + " " + itemArr[0] * 100 + "%"; - if (index2 !== colorStops_1.length - 1) { - cssColor_1 += ", "; - } - }); - cssColor_1 += ")"; - return cssColor_1; - } - return gradientColor; -}; -var esm_default2 = { - rgb2arr, - gradient, - toRGB: memoize_default(toRGB), - toCSSGradient -}; - -// node_modules/@antv/attr/esm/attributes/color.js -var Color2 = function(_super) { - __extends3(Color3, _super); - function Color3(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "color"; - _this.names = ["color"]; - if (is_string_default(_this.values)) { - _this.linear = true; - } - _this.gradient = esm_default2.gradient(_this.values); - return _this; - } - Color3.prototype.getLinearValue = function(percent2) { - return this.gradient(percent2); - }; - return Color3; -}(base_default3); -var color_default = Color2; - -// node_modules/@antv/attr/esm/attributes/opacity.js -var Opacity = function(_super) { - __extends3(Opacity2, _super); - function Opacity2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "opacity"; - _this.names = ["opacity"]; - return _this; - } - return Opacity2; -}(base_default3); -var opacity_default = Opacity; - -// node_modules/@antv/attr/esm/attributes/position.js -var Position = function(_super) { - __extends3(Position2, _super); - function Position2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.names = ["x", "y"]; - _this.type = "position"; - return _this; - } - Position2.prototype.mapping = function(x6, y5) { - var _a6 = this.scales, scaleX = _a6[0], scaleY = _a6[1]; - if (is_nil_default(x6) || is_nil_default(y5)) { - return []; - } - return [ - is_array_default(x6) ? x6.map(function(xi) { - return scaleX.scale(xi); - }) : scaleX.scale(x6), - is_array_default(y5) ? y5.map(function(yi) { - return scaleY.scale(yi); - }) : scaleY.scale(y5) - ]; - }; - return Position2; -}(base_default3); -var position_default = Position; - -// node_modules/@antv/attr/esm/attributes/shape.js -var Shape = function(_super) { - __extends3(Shape3, _super); - function Shape3(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "shape"; - _this.names = ["shape"]; - return _this; - } - Shape3.prototype.getLinearValue = function(percent2) { - var idx = Math.round((this.values.length - 1) * percent2); - return this.values[idx]; - }; - return Shape3; -}(base_default3); -var shape_default2 = Shape; - -// node_modules/@antv/attr/esm/attributes/size.js -var Size = function(_super) { - __extends3(Size2, _super); - function Size2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "size"; - _this.names = ["size"]; - return _this; - } - return Size2; -}(base_default3); -var size_default = Size; - -// node_modules/@antv/scale/esm/tick-method/register.js -var methodCache = {}; -function getTickMethod(key) { - return methodCache[key]; -} -function registerTickMethod(key, method) { - methodCache[key] = method; -} - -// node_modules/@antv/scale/esm/base.js -var Scale = function() { - function Scale2(cfg) { - this.type = "base"; - this.isCategory = false; - this.isLinear = false; - this.isContinuous = false; - this.isIdentity = false; - this.values = []; - this.range = [0, 1]; - this.ticks = []; - this.__cfg__ = cfg; - this.initCfg(); - this.init(); - } - Scale2.prototype.translate = function(v3) { - return v3; - }; - Scale2.prototype.change = function(cfg) { - mix(this.__cfg__, cfg); - this.init(); - }; - Scale2.prototype.clone = function() { - return this.constructor(this.__cfg__); - }; - Scale2.prototype.getTicks = function() { - var _this = this; - return map_default(this.ticks, function(tick, idx) { - if (is_object_default(tick)) { - return tick; - } - return { - text: _this.getText(tick, idx), - tickValue: tick, - value: _this.scale(tick) - }; - }); - }; - Scale2.prototype.getText = function(value2, key) { - var formatter = this.formatter; - var res = formatter ? formatter(value2, key) : value2; - if (is_nil_default(res) || !is_function_default(res.toString)) { - return ""; - } - return res.toString(); - }; - Scale2.prototype.getConfig = function(key) { - return this.__cfg__[key]; - }; - Scale2.prototype.init = function() { - mix(this, this.__cfg__); - this.setDomain(); - if (is_empty_default(this.getConfig("ticks"))) { - this.ticks = this.calculateTicks(); - } - }; - Scale2.prototype.initCfg = function() { - }; - Scale2.prototype.setDomain = function() { - }; - Scale2.prototype.calculateTicks = function() { - var tickMethod = this.tickMethod; - var ticks = []; - if (is_string_default(tickMethod)) { - var method = getTickMethod(tickMethod); - if (!method) { - throw new Error("There is no method to to calculate ticks!"); - } - ticks = method(this); - } else if (is_function_default(tickMethod)) { - ticks = tickMethod(this); - } - return ticks; - }; - Scale2.prototype.rangeMin = function() { - return this.range[0]; - }; - Scale2.prototype.rangeMax = function() { - return this.range[1]; - }; - Scale2.prototype.calcPercent = function(value2, min7, max8) { - if (is_number_default(value2)) { - return (value2 - min7) / (max8 - min7); - } - return NaN; - }; - Scale2.prototype.calcValue = function(percent2, min7, max8) { - return min7 + percent2 * (max8 - min7); - }; - return Scale2; -}(); -var base_default4 = Scale; - -// node_modules/@antv/scale/esm/category/base.js -var Category = function(_super) { - __extends(Category3, _super); - function Category3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "cat"; - _this.isCategory = true; - return _this; - } - Category3.prototype.buildIndexMap = function() { - if (!this.translateIndexMap) { - this.translateIndexMap = new Map(); - for (var i4 = 0; i4 < this.values.length; i4++) { - this.translateIndexMap.set(this.values[i4], i4); - } - } - }; - Category3.prototype.translate = function(value2) { - this.buildIndexMap(); - var idx = this.translateIndexMap.get(value2); - if (idx === void 0) { - idx = is_number_default(value2) ? value2 : NaN; - } - return idx; - }; - Category3.prototype.scale = function(value2) { - var order2 = this.translate(value2); - var percent2 = this.calcPercent(order2, this.min, this.max); - return this.calcValue(percent2, this.rangeMin(), this.rangeMax()); - }; - Category3.prototype.invert = function(scaledValue) { - var domainRange = this.max - this.min; - var percent2 = this.calcPercent(scaledValue, this.rangeMin(), this.rangeMax()); - var idx = Math.round(domainRange * percent2) + this.min; - if (idx < this.min || idx > this.max) { - return NaN; - } - return this.values[idx]; - }; - Category3.prototype.getText = function(value2) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var v3 = value2; - if (is_number_default(value2) && !this.values.includes(value2)) { - v3 = this.values[v3]; - } - return _super.prototype.getText.apply(this, __spreadArray([v3], args, false)); - }; - Category3.prototype.initCfg = function() { - this.tickMethod = "cat"; - }; - Category3.prototype.setDomain = function() { - if (is_nil_default(this.getConfig("min"))) { - this.min = 0; - } - if (is_nil_default(this.getConfig("max"))) { - var size2 = this.values.length; - this.max = size2 > 1 ? size2 - 1 : size2; - } - if (this.translateIndexMap) { - this.translateIndexMap = void 0; - } - }; - return Category3; -}(base_default4); -var base_default5 = Category; - -// node_modules/fecha/lib/fecha.js -var fecha_exports = {}; -__export(fecha_exports, { - assign: () => assign, - default: () => fecha_default, - defaultI18n: () => defaultI18n, - format: () => format, - parse: () => parse, - setGlobalDateI18n: () => setGlobalDateI18n, - setGlobalDateMasks: () => setGlobalDateMasks -}); -var token = /d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g; -var twoDigitsOptional = "[1-9]\\d?"; -var twoDigits = "\\d\\d"; -var threeDigits = "\\d{3}"; -var fourDigits = "\\d{4}"; -var word = "[^\\s]+"; -var literal = /\[([^]*?)\]/gm; -function shorten(arr, sLen) { - var newArr = []; - for (var i4 = 0, len5 = arr.length; i4 < len5; i4++) { - newArr.push(arr[i4].substr(0, sLen)); - } - return newArr; -} -var monthUpdate = function(arrName) { - return function(v3, i18n) { - var lowerCaseArr = i18n[arrName].map(function(v4) { - return v4.toLowerCase(); - }); - var index2 = lowerCaseArr.indexOf(v3.toLowerCase()); - if (index2 > -1) { - return index2; - } - return null; - }; -}; -function assign(origObj) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - for (var _a6 = 0, args_1 = args; _a6 < args_1.length; _a6++) { - var obj = args_1[_a6]; - for (var key in obj) { - origObj[key] = obj[key]; - } - } - return origObj; -} -var dayNames = [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" -]; -var monthNames = [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" -]; -var monthNamesShort = shorten(monthNames, 3); -var dayNamesShort = shorten(dayNames, 3); -var defaultI18n = { - dayNamesShort, - dayNames, - monthNamesShort, - monthNames, - amPm: ["am", "pm"], - DoFn: function(dayOfMonth) { - return dayOfMonth + ["th", "st", "nd", "rd"][dayOfMonth % 10 > 3 ? 0 : (dayOfMonth - dayOfMonth % 10 !== 10 ? 1 : 0) * dayOfMonth % 10]; - } -}; -var globalI18n = assign({}, defaultI18n); -var setGlobalDateI18n = function(i18n) { - return globalI18n = assign(globalI18n, i18n); -}; -var regexEscape = function(str8) { - return str8.replace(/[|\\{()[^$+*?.-]/g, "\\$&"); -}; -var pad = function(val, len5) { - if (len5 === void 0) { - len5 = 2; - } - val = String(val); - while (val.length < len5) { - val = "0" + val; - } - return val; -}; -var formatFlags = { - D: function(dateObj) { - return String(dateObj.getDate()); - }, - DD: function(dateObj) { - return pad(dateObj.getDate()); - }, - Do: function(dateObj, i18n) { - return i18n.DoFn(dateObj.getDate()); - }, - d: function(dateObj) { - return String(dateObj.getDay()); - }, - dd: function(dateObj) { - return pad(dateObj.getDay()); - }, - ddd: function(dateObj, i18n) { - return i18n.dayNamesShort[dateObj.getDay()]; - }, - dddd: function(dateObj, i18n) { - return i18n.dayNames[dateObj.getDay()]; - }, - M: function(dateObj) { - return String(dateObj.getMonth() + 1); - }, - MM: function(dateObj) { - return pad(dateObj.getMonth() + 1); - }, - MMM: function(dateObj, i18n) { - return i18n.monthNamesShort[dateObj.getMonth()]; - }, - MMMM: function(dateObj, i18n) { - return i18n.monthNames[dateObj.getMonth()]; - }, - YY: function(dateObj) { - return pad(String(dateObj.getFullYear()), 4).substr(2); - }, - YYYY: function(dateObj) { - return pad(dateObj.getFullYear(), 4); - }, - h: function(dateObj) { - return String(dateObj.getHours() % 12 || 12); - }, - hh: function(dateObj) { - return pad(dateObj.getHours() % 12 || 12); - }, - H: function(dateObj) { - return String(dateObj.getHours()); - }, - HH: function(dateObj) { - return pad(dateObj.getHours()); - }, - m: function(dateObj) { - return String(dateObj.getMinutes()); - }, - mm: function(dateObj) { - return pad(dateObj.getMinutes()); - }, - s: function(dateObj) { - return String(dateObj.getSeconds()); - }, - ss: function(dateObj) { - return pad(dateObj.getSeconds()); - }, - S: function(dateObj) { - return String(Math.round(dateObj.getMilliseconds() / 100)); - }, - SS: function(dateObj) { - return pad(Math.round(dateObj.getMilliseconds() / 10), 2); - }, - SSS: function(dateObj) { - return pad(dateObj.getMilliseconds(), 3); - }, - a: function(dateObj, i18n) { - return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1]; - }, - A: function(dateObj, i18n) { - return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase(); - }, - ZZ: function(dateObj) { - var offset = dateObj.getTimezoneOffset(); - return (offset > 0 ? "-" : "+") + pad(Math.floor(Math.abs(offset) / 60) * 100 + Math.abs(offset) % 60, 4); - }, - Z: function(dateObj) { - var offset = dateObj.getTimezoneOffset(); - return (offset > 0 ? "-" : "+") + pad(Math.floor(Math.abs(offset) / 60), 2) + ":" + pad(Math.abs(offset) % 60, 2); - } -}; -var monthParse = function(v3) { - return +v3 - 1; -}; -var emptyDigits = [null, twoDigitsOptional]; -var emptyWord = [null, word]; -var amPm = [ - "isPm", - word, - function(v3, i18n) { - var val = v3.toLowerCase(); - if (val === i18n.amPm[0]) { - return 0; - } else if (val === i18n.amPm[1]) { - return 1; - } - return null; - } -]; -var timezoneOffset = [ - "timezoneOffset", - "[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?", - function(v3) { - var parts = (v3 + "").match(/([+-]|\d\d)/gi); - if (parts) { - var minutes = +parts[1] * 60 + parseInt(parts[2], 10); - return parts[0] === "+" ? minutes : -minutes; - } - return 0; - } -]; -var parseFlags = { - D: ["day", twoDigitsOptional], - DD: ["day", twoDigits], - Do: ["day", twoDigitsOptional + word, function(v3) { - return parseInt(v3, 10); - }], - M: ["month", twoDigitsOptional, monthParse], - MM: ["month", twoDigits, monthParse], - YY: [ - "year", - twoDigits, - function(v3) { - var now2 = new Date(); - var cent = +("" + now2.getFullYear()).substr(0, 2); - return +("" + (+v3 > 68 ? cent - 1 : cent) + v3); - } - ], - h: ["hour", twoDigitsOptional, void 0, "isPm"], - hh: ["hour", twoDigits, void 0, "isPm"], - H: ["hour", twoDigitsOptional], - HH: ["hour", twoDigits], - m: ["minute", twoDigitsOptional], - mm: ["minute", twoDigits], - s: ["second", twoDigitsOptional], - ss: ["second", twoDigits], - YYYY: ["year", fourDigits], - S: ["millisecond", "\\d", function(v3) { - return +v3 * 100; - }], - SS: ["millisecond", twoDigits, function(v3) { - return +v3 * 10; - }], - SSS: ["millisecond", threeDigits], - d: emptyDigits, - dd: emptyDigits, - ddd: emptyWord, - dddd: emptyWord, - MMM: ["month", word, monthUpdate("monthNamesShort")], - MMMM: ["month", word, monthUpdate("monthNames")], - a: amPm, - A: amPm, - ZZ: timezoneOffset, - Z: timezoneOffset -}; -var globalMasks = { - default: "ddd MMM DD YYYY HH:mm:ss", - shortDate: "M/D/YY", - mediumDate: "MMM D, YYYY", - longDate: "MMMM D, YYYY", - fullDate: "dddd, MMMM D, YYYY", - isoDate: "YYYY-MM-DD", - isoDateTime: "YYYY-MM-DDTHH:mm:ssZ", - shortTime: "HH:mm", - mediumTime: "HH:mm:ss", - longTime: "HH:mm:ss.SSS" -}; -var setGlobalDateMasks = function(masks) { - return assign(globalMasks, masks); -}; -var format = function(dateObj, mask, i18n) { - if (mask === void 0) { - mask = globalMasks["default"]; - } - if (i18n === void 0) { - i18n = {}; - } - if (typeof dateObj === "number") { - dateObj = new Date(dateObj); - } - if (Object.prototype.toString.call(dateObj) !== "[object Date]" || isNaN(dateObj.getTime())) { - throw new Error("Invalid Date pass to format"); - } - mask = globalMasks[mask] || mask; - var literals = []; - mask = mask.replace(literal, function($0, $1) { - literals.push($1); - return "@@@"; - }); - var combinedI18nSettings = assign(assign({}, globalI18n), i18n); - mask = mask.replace(token, function($0) { - return formatFlags[$0](dateObj, combinedI18nSettings); - }); - return mask.replace(/@@@/g, function() { - return literals.shift(); - }); -}; -function parse(dateStr, format2, i18n) { - if (i18n === void 0) { - i18n = {}; - } - if (typeof format2 !== "string") { - throw new Error("Invalid format in fecha parse"); - } - format2 = globalMasks[format2] || format2; - if (dateStr.length > 1e3) { - return null; - } - var today = new Date(); - var dateInfo = { - year: today.getFullYear(), - month: 0, - day: 1, - hour: 0, - minute: 0, - second: 0, - millisecond: 0, - isPm: null, - timezoneOffset: null - }; - var parseInfo = []; - var literals = []; - var newFormat = format2.replace(literal, function($0, $1) { - literals.push(regexEscape($1)); - return "@@@"; - }); - var specifiedFields = {}; - var requiredFields = {}; - newFormat = regexEscape(newFormat).replace(token, function($0) { - var info = parseFlags[$0]; - var field7 = info[0], regex = info[1], requiredField = info[3]; - if (specifiedFields[field7]) { - throw new Error("Invalid format. " + field7 + " specified twice in format"); - } - specifiedFields[field7] = true; - if (requiredField) { - requiredFields[requiredField] = true; - } - parseInfo.push(info); - return "(" + regex + ")"; - }); - Object.keys(requiredFields).forEach(function(field7) { - if (!specifiedFields[field7]) { - throw new Error("Invalid format. " + field7 + " is required in specified format"); - } - }); - newFormat = newFormat.replace(/@@@/g, function() { - return literals.shift(); - }); - var matches = dateStr.match(new RegExp(newFormat, "i")); - if (!matches) { - return null; - } - var combinedI18nSettings = assign(assign({}, globalI18n), i18n); - for (var i4 = 1; i4 < matches.length; i4++) { - var _a6 = parseInfo[i4 - 1], field6 = _a6[0], parser = _a6[2]; - var value2 = parser ? parser(matches[i4], combinedI18nSettings) : +matches[i4]; - if (value2 == null) { - return null; - } - dateInfo[field6] = value2; - } - if (dateInfo.isPm === 1 && dateInfo.hour != null && +dateInfo.hour !== 12) { - dateInfo.hour = +dateInfo.hour + 12; - } else if (dateInfo.isPm === 0 && +dateInfo.hour === 12) { - dateInfo.hour = 0; - } - var dateWithoutTZ = new Date(dateInfo.year, dateInfo.month, dateInfo.day, dateInfo.hour, dateInfo.minute, dateInfo.second, dateInfo.millisecond); - var validateFields = [ - ["month", "getMonth"], - ["day", "getDate"], - ["hour", "getHours"], - ["minute", "getMinutes"], - ["second", "getSeconds"] - ]; - for (var i4 = 0, len5 = validateFields.length; i4 < len5; i4++) { - if (specifiedFields[validateFields[i4][0]] && dateInfo[validateFields[i4][0]] !== dateWithoutTZ[validateFields[i4][1]]()) { - return null; - } - } - if (dateInfo.timezoneOffset == null) { - return dateWithoutTZ; - } - return new Date(Date.UTC(dateInfo.year, dateInfo.month, dateInfo.day, dateInfo.hour, dateInfo.minute - dateInfo.timezoneOffset, dateInfo.second, dateInfo.millisecond)); -} -var fecha = { - format, - parse, - defaultI18n, - setGlobalDateI18n, - setGlobalDateMasks -}; -var fecha_default = fecha; - -// node_modules/@antv/scale/esm/util/bisector.js -function bisector_default(getter) { - return function(a4, x6, _lo, _hi) { - var lo = is_nil_default(_lo) ? 0 : _lo; - var hi = is_nil_default(_hi) ? a4.length : _hi; - while (lo < hi) { - var mid2 = lo + hi >>> 1; - if (getter(a4[mid2]) > x6) { - hi = mid2; - } else { - lo = mid2 + 1; - } - } - return lo; - }; -} - -// node_modules/@antv/scale/esm/util/time.js -var FORMAT_METHOD = "format"; -function timeFormat(time2, mask) { - var method = fecha_exports[FORMAT_METHOD] || fecha_default[FORMAT_METHOD]; - return method(time2, mask); -} -function toTimeStamp(value2) { - if (is_string_default(value2)) { - if (value2.indexOf("T") > 0) { - value2 = new Date(value2).getTime(); - } else { - value2 = new Date(value2.replace(/-/gi, "/")).getTime(); - } - } - if (is_date_default(value2)) { - value2 = value2.getTime(); - } - return value2; -} -var SECOND = 1e3; -var MINUTE = 60 * SECOND; -var HOUR = 60 * MINUTE; -var DAY = 24 * HOUR; -var MONTH = DAY * 31; -var YEAR = DAY * 365; -var intervals = [ - ["HH:mm:ss", SECOND], - ["HH:mm:ss", SECOND * 10], - ["HH:mm:ss", SECOND * 30], - ["HH:mm", MINUTE], - ["HH:mm", MINUTE * 10], - ["HH:mm", MINUTE * 30], - ["HH", HOUR], - ["HH", HOUR * 6], - ["HH", HOUR * 12], - ["YYYY-MM-DD", DAY], - ["YYYY-MM-DD", DAY * 4], - ["YYYY-WW", DAY * 7], - ["YYYY-MM", MONTH], - ["YYYY-MM", MONTH * 4], - ["YYYY-MM", MONTH * 6], - ["YYYY", DAY * 380] -]; -function getTickInterval(min7, max8, tickCount) { - var target = (max8 - min7) / tickCount; - var idx = bisector_default(function(o3) { - return o3[1]; - })(intervals, target) - 1; - var interval3 = intervals[idx]; - if (idx < 0) { - interval3 = intervals[0]; - } else if (idx >= intervals.length) { - interval3 = last(intervals); - } - return interval3; -} - -// node_modules/@antv/scale/esm/category/time.js -var TimeCat = function(_super) { - __extends(TimeCat2, _super); - function TimeCat2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "timeCat"; - return _this; - } - TimeCat2.prototype.translate = function(value2) { - value2 = toTimeStamp(value2); - var index2 = this.values.indexOf(value2); - if (index2 === -1) { - if (is_number_default(value2) && value2 < this.values.length) { - index2 = value2; - } else { - index2 = NaN; - } - } - return index2; - }; - TimeCat2.prototype.getText = function(value2, tickIndex) { - var index2 = this.translate(value2); - if (index2 > -1) { - var result = this.values[index2]; - var formatter = this.formatter; - result = formatter ? formatter(result, tickIndex) : timeFormat(result, this.mask); - return result; - } - return value2; - }; - TimeCat2.prototype.initCfg = function() { - this.tickMethod = "time-cat"; - this.mask = "YYYY-MM-DD"; - this.tickCount = 7; - }; - TimeCat2.prototype.setDomain = function() { - var values2 = this.values; - each_default(values2, function(v3, i4) { - values2[i4] = toTimeStamp(v3); - }); - values2.sort(function(v1, v22) { - return v1 - v22; - }); - _super.prototype.setDomain.call(this); - }; - return TimeCat2; -}(base_default5); -var time_default = TimeCat; - -// node_modules/@antv/scale/esm/continuous/base.js -var Continuous = function(_super) { - __extends(Continuous2, _super); - function Continuous2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.isContinuous = true; - return _this; - } - Continuous2.prototype.scale = function(value2) { - if (is_nil_default(value2)) { - return NaN; - } - var rangeMin = this.rangeMin(); - var rangeMax = this.rangeMax(); - var max8 = this.max; - var min7 = this.min; - if (max8 === min7) { - return rangeMin; - } - var percent2 = this.getScalePercent(value2); - return rangeMin + percent2 * (rangeMax - rangeMin); - }; - Continuous2.prototype.init = function() { - _super.prototype.init.call(this); - var ticks = this.ticks; - var firstTick = head(ticks); - var lastTick = last(ticks); - if (firstTick < this.min) { - this.min = firstTick; - } - if (lastTick > this.max) { - this.max = lastTick; - } - if (!is_nil_default(this.minLimit)) { - this.min = firstTick; - } - if (!is_nil_default(this.maxLimit)) { - this.max = lastTick; - } - }; - Continuous2.prototype.setDomain = function() { - var _a6 = get_range_default(this.values), min7 = _a6.min, max8 = _a6.max; - if (is_nil_default(this.min)) { - this.min = min7; - } - if (is_nil_default(this.max)) { - this.max = max8; - } - if (this.min > this.max) { - this.min = min7; - this.max = max8; - } - }; - Continuous2.prototype.calculateTicks = function() { - var _this = this; - var ticks = _super.prototype.calculateTicks.call(this); - if (!this.nice) { - ticks = filter_default(ticks, function(tick) { - return tick >= _this.min && tick <= _this.max; - }); - } - return ticks; - }; - Continuous2.prototype.getScalePercent = function(value2) { - var max8 = this.max; - var min7 = this.min; - return (value2 - min7) / (max8 - min7); - }; - Continuous2.prototype.getInvertPercent = function(value2) { - return (value2 - this.rangeMin()) / (this.rangeMax() - this.rangeMin()); - }; - return Continuous2; -}(base_default4); -var base_default6 = Continuous; - -// node_modules/@antv/scale/esm/continuous/linear.js -var Linear = function(_super) { - __extends(Linear2, _super); - function Linear2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "linear"; - _this.isLinear = true; - return _this; - } - Linear2.prototype.invert = function(value2) { - var percent2 = this.getInvertPercent(value2); - return this.min + percent2 * (this.max - this.min); - }; - Linear2.prototype.initCfg = function() { - this.tickMethod = "wilkinson-extended"; - this.nice = false; - }; - return Linear2; -}(base_default6); -var linear_default = Linear; - -// node_modules/@antv/scale/esm/util/math.js -function calBase(a4, b10) { - var e4 = Math.E; - var value2; - if (b10 >= 0) { - value2 = Math.pow(e4, Math.log(b10) / a4); - } else { - value2 = Math.pow(e4, Math.log(-b10) / a4) * -1; - } - return value2; -} -function log(a4, b10) { - if (a4 === 1) { - return 1; - } - return Math.log(b10) / Math.log(a4); -} -function getLogPositiveMin(values2, base, max8) { - if (is_nil_default(max8)) { - max8 = Math.max.apply(null, values2); - } - var positiveMin = max8; - each_default(values2, function(value2) { - if (value2 > 0 && value2 < positiveMin) { - positiveMin = value2; - } - }); - if (positiveMin === max8) { - positiveMin = max8 / base; - } - if (positiveMin > 1) { - positiveMin = 1; - } - return positiveMin; -} - -// node_modules/@antv/scale/esm/continuous/log.js -var Log = function(_super) { - __extends(Log2, _super); - function Log2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "log"; - return _this; - } - Log2.prototype.invert = function(value2) { - var base = this.base; - var max8 = log(base, this.max); - var rangeMin = this.rangeMin(); - var range = this.rangeMax() - rangeMin; - var min7; - var positiveMin = this.positiveMin; - if (positiveMin) { - if (value2 === 0) { - return 0; - } - min7 = log(base, positiveMin / base); - var appendPercent = 1 / (max8 - min7) * range; - if (value2 < appendPercent) { - return value2 / appendPercent * positiveMin; - } - } else { - min7 = log(base, this.min); - } - var percent2 = (value2 - rangeMin) / range; - var tmp = percent2 * (max8 - min7) + min7; - return Math.pow(base, tmp); - }; - Log2.prototype.initCfg = function() { - this.tickMethod = "log"; - this.base = 10; - this.tickCount = 6; - this.nice = true; - }; - Log2.prototype.setDomain = function() { - _super.prototype.setDomain.call(this); - var min7 = this.min; - if (min7 < 0) { - throw new Error("When you use log scale, the minimum value must be greater than zero!"); - } - if (min7 === 0) { - this.positiveMin = getLogPositiveMin(this.values, this.base, this.max); - } - }; - Log2.prototype.getScalePercent = function(value2) { - var max8 = this.max; - var min7 = this.min; - if (max8 === min7) { - return 0; - } - if (value2 <= 0) { - return 0; - } - var base = this.base; - var positiveMin = this.positiveMin; - if (positiveMin) { - min7 = positiveMin * 1 / base; - } - var percent2; - if (value2 < positiveMin) { - percent2 = value2 / positiveMin / (log(base, max8) - log(base, min7)); - } else { - percent2 = (log(base, value2) - log(base, min7)) / (log(base, max8) - log(base, min7)); - } - return percent2; - }; - return Log2; -}(base_default6); -var log_default = Log; - -// node_modules/@antv/scale/esm/continuous/pow.js -var Pow = function(_super) { - __extends(Pow2, _super); - function Pow2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "pow"; - return _this; - } - Pow2.prototype.invert = function(value2) { - var percent2 = this.getInvertPercent(value2); - var exponent2 = this.exponent; - var max8 = calBase(exponent2, this.max); - var min7 = calBase(exponent2, this.min); - var tmp = percent2 * (max8 - min7) + min7; - var factor = tmp >= 0 ? 1 : -1; - return Math.pow(tmp, exponent2) * factor; - }; - Pow2.prototype.initCfg = function() { - this.tickMethod = "pow"; - this.exponent = 2; - this.tickCount = 5; - this.nice = true; - }; - Pow2.prototype.getScalePercent = function(value2) { - var max8 = this.max; - var min7 = this.min; - if (max8 === min7) { - return 0; - } - var exponent2 = this.exponent; - var percent2 = (calBase(exponent2, value2) - calBase(exponent2, min7)) / (calBase(exponent2, max8) - calBase(exponent2, min7)); - return percent2; - }; - return Pow2; -}(base_default6); -var pow_default = Pow; - -// node_modules/@antv/scale/esm/continuous/time.js -var Time = function(_super) { - __extends(Time2, _super); - function Time2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "time"; - return _this; - } - Time2.prototype.getText = function(value2, index2) { - var numberValue = this.translate(value2); - var formatter = this.formatter; - return formatter ? formatter(numberValue, index2) : timeFormat(numberValue, this.mask); - }; - Time2.prototype.scale = function(value2) { - var v3 = value2; - if (is_string_default(v3) || is_date_default(v3)) { - v3 = this.translate(v3); - } - return _super.prototype.scale.call(this, v3); - }; - Time2.prototype.translate = function(v3) { - return toTimeStamp(v3); - }; - Time2.prototype.initCfg = function() { - this.tickMethod = "time-pretty"; - this.mask = "YYYY-MM-DD"; - this.tickCount = 7; - this.nice = false; - }; - Time2.prototype.setDomain = function() { - var values2 = this.values; - var minConfig = this.getConfig("min"); - var maxConfig = this.getConfig("max"); - if (!is_nil_default(minConfig) || !is_number_default(minConfig)) { - this.min = this.translate(this.min); - } - if (!is_nil_default(maxConfig) || !is_number_default(maxConfig)) { - this.max = this.translate(this.max); - } - if (values2 && values2.length) { - var timeStamps_1 = []; - var min_1 = Infinity; - var secondMin_1 = min_1; - var max_1 = 0; - each_default(values2, function(v3) { - var timeStamp = toTimeStamp(v3); - if (isNaN(timeStamp)) { - throw new TypeError("Invalid Time: " + v3 + " in time scale!"); - } - if (min_1 > timeStamp) { - secondMin_1 = min_1; - min_1 = timeStamp; - } else if (secondMin_1 > timeStamp) { - secondMin_1 = timeStamp; - } - if (max_1 < timeStamp) { - max_1 = timeStamp; - } - timeStamps_1.push(timeStamp); - }); - if (values2.length > 1) { - this.minTickInterval = secondMin_1 - min_1; - } - if (is_nil_default(minConfig)) { - this.min = min_1; - } - if (is_nil_default(maxConfig)) { - this.max = max_1; - } - } - }; - return Time2; -}(linear_default); -var time_default2 = Time; - -// node_modules/@antv/scale/esm/continuous/quantize.js -var Quantize = function(_super) { - __extends(Quantize2, _super); - function Quantize2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "quantize"; - return _this; - } - Quantize2.prototype.invert = function(value2) { - var ticks = this.ticks; - var length5 = ticks.length; - var percent2 = this.getInvertPercent(value2); - var minIndex = Math.floor(percent2 * (length5 - 1)); - if (minIndex >= length5 - 1) { - return last(ticks); - } - if (minIndex < 0) { - return head(ticks); - } - var minTick = ticks[minIndex]; - var nextTick = ticks[minIndex + 1]; - var minIndexPercent = minIndex / (length5 - 1); - var maxIndexPercent = (minIndex + 1) / (length5 - 1); - return minTick + (percent2 - minIndexPercent) / (maxIndexPercent - minIndexPercent) * (nextTick - minTick); - }; - Quantize2.prototype.initCfg = function() { - this.tickMethod = "r-pretty"; - this.tickCount = 5; - this.nice = true; - }; - Quantize2.prototype.calculateTicks = function() { - var ticks = _super.prototype.calculateTicks.call(this); - if (!this.nice) { - if (last(ticks) !== this.max) { - ticks.push(this.max); - } - if (head(ticks) !== this.min) { - ticks.unshift(this.min); - } - } - return ticks; - }; - Quantize2.prototype.getScalePercent = function(value2) { - var ticks = this.ticks; - if (value2 < head(ticks)) { - return 0; - } - if (value2 > last(ticks)) { - return 1; - } - var minIndex = 0; - each_default(ticks, function(tick, index2) { - if (value2 >= tick) { - minIndex = index2; - } else { - return false; - } - }); - return minIndex / (ticks.length - 1); - }; - return Quantize2; -}(base_default6); -var quantize_default = Quantize; - -// node_modules/@antv/scale/esm/continuous/quantile.js -var Quantile = function(_super) { - __extends(Quantile2, _super); - function Quantile2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "quantile"; - return _this; - } - Quantile2.prototype.initCfg = function() { - this.tickMethod = "quantile"; - this.tickCount = 5; - this.nice = true; - }; - return Quantile2; -}(quantize_default); -var quantile_default = Quantile; - -// node_modules/@antv/scale/esm/factory.js -var map4 = {}; -function getClass(key) { - return map4[key]; -} -function registerClass(key, cls) { - if (getClass(key)) { - throw new Error("type '" + key + "' existed."); - } - map4[key] = cls; -} - -// node_modules/@antv/scale/esm/identity/index.js -var Identity = function(_super) { - __extends(Identity2, _super); - function Identity2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "identity"; - _this.isIdentity = true; - return _this; - } - Identity2.prototype.calculateTicks = function() { - return this.values; - }; - Identity2.prototype.scale = function(value2) { - if (this.values[0] !== value2 && is_number_default(value2)) { - return value2; - } - return this.range[0]; - }; - Identity2.prototype.invert = function(value2) { - var range = this.range; - if (value2 < range[0] || value2 > range[1]) { - return NaN; - } - return this.values[0]; - }; - return Identity2; -}(base_default4); -var identity_default2 = Identity; - -// node_modules/@antv/scale/esm/util/pretty-number.js -function prettyNumber(n3) { - return Math.abs(n3) < 1e-15 ? n3 : parseFloat(n3.toFixed(15)); -} - -// node_modules/@antv/scale/esm/util/extended.js -var DEFAULT_Q = [1, 5, 2, 2.5, 4, 3]; -var eps = Number.EPSILON * 100; -function mod2(n3, m4) { - return (n3 % m4 + m4) % m4; -} -function round4(n3) { - return Math.round(n3 * 1e12) / 1e12; -} -function simplicity(q4, Q2, j4, lmin, lmax, lstep) { - var n3 = size(Q2); - var i4 = index_of_default(Q2, q4); - var v3 = 0; - var m4 = mod2(lmin, lstep); - if ((m4 < eps || lstep - m4 < eps) && lmin <= 0 && lmax >= 0) { - v3 = 1; - } - return 1 - i4 / (n3 - 1) - j4 + v3; -} -function simplicityMax(q4, Q2, j4) { - var n3 = size(Q2); - var i4 = index_of_default(Q2, q4); - var v3 = 1; - return 1 - i4 / (n3 - 1) - j4 + v3; -} -function density(k4, m4, dMin, dMax, lMin, lMax) { - var r4 = (k4 - 1) / (lMax - lMin); - var rt = (m4 - 1) / (Math.max(lMax, dMax) - Math.min(dMin, lMin)); - return 2 - Math.max(r4 / rt, rt / r4); -} -function densityMax(k4, m4) { - if (k4 >= m4) { - return 2 - (k4 - 1) / (m4 - 1); - } - return 1; -} -function coverage(dMin, dMax, lMin, lMax) { - var range = dMax - dMin; - return 1 - 0.5 * (Math.pow(dMax - lMax, 2) + Math.pow(dMin - lMin, 2)) / Math.pow(0.1 * range, 2); -} -function coverageMax(dMin, dMax, span) { - var range = dMax - dMin; - if (span > range) { - var half = (span - range) / 2; - return 1 - Math.pow(half, 2) / Math.pow(0.1 * range, 2); - } - return 1; -} -function legibility() { - return 1; -} -function extended(dMin, dMax, n3, onlyLoose, Q2, w4) { - if (n3 === void 0) { - n3 = 5; - } - if (onlyLoose === void 0) { - onlyLoose = true; - } - if (Q2 === void 0) { - Q2 = DEFAULT_Q; - } - if (w4 === void 0) { - w4 = [0.25, 0.2, 0.5, 0.05]; - } - var m4 = n3 < 0 ? 0 : Math.round(n3); - if (Number.isNaN(dMin) || Number.isNaN(dMax) || typeof dMin !== "number" || typeof dMax !== "number" || !m4) { - return { - min: 0, - max: 0, - ticks: [] - }; - } - if (dMax - dMin < 1e-15 || m4 === 1) { - return { - min: dMin, - max: dMax, - ticks: [dMin] - }; - } - var best = { - score: -2, - lmin: 0, - lmax: 0, - lstep: 0 - }; - var j4 = 1; - while (j4 < Infinity) { - for (var i4 = 0; i4 < Q2.length; i4 += 1) { - var q4 = Q2[i4]; - var sm = simplicityMax(q4, Q2, j4); - if (w4[0] * sm + w4[1] + w4[2] + w4[3] < best.score) { - j4 = Infinity; - break; - } - var k4 = 2; - while (k4 < Infinity) { - var dm = densityMax(k4, m4); - if (w4[0] * sm + w4[1] + w4[2] * dm + w4[3] < best.score) { - break; - } - var delta = (dMax - dMin) / (k4 + 1) / j4 / q4; - var z3 = Math.ceil(Math.log10(delta)); - while (z3 < Infinity) { - var step = j4 * q4 * Math.pow(10, z3); - var cm = coverageMax(dMin, dMax, step * (k4 - 1)); - if (w4[0] * sm + w4[1] * cm + w4[2] * dm + w4[3] < best.score) { - break; - } - var minStart = Math.floor(dMax / step) * j4 - (k4 - 1) * j4; - var maxStart = Math.ceil(dMin / step) * j4; - if (minStart <= maxStart) { - var count2 = maxStart - minStart; - for (var i_1 = 0; i_1 <= count2; i_1 += 1) { - var start = minStart + i_1; - var lMin = start * (step / j4); - var lMax = lMin + step * (k4 - 1); - var lStep = step; - var s4 = simplicity(q4, Q2, j4, lMin, lMax, lStep); - var c5 = coverage(dMin, dMax, lMin, lMax); - var g4 = density(k4, m4, dMin, dMax, lMin, lMax); - var l4 = legibility(); - var score2 = w4[0] * s4 + w4[1] * c5 + w4[2] * g4 + w4[3] * l4; - if (score2 > best.score && (!onlyLoose || lMin <= dMin && lMax >= dMax)) { - best.lmin = lMin; - best.lmax = lMax; - best.lstep = lStep; - best.score = score2; - } - } - } - z3 += 1; - } - k4 += 1; - } - } - j4 += 1; - } - var lmax = prettyNumber(best.lmax); - var lmin = prettyNumber(best.lmin); - var lstep = prettyNumber(best.lstep); - var tickCount = Math.floor(round4((lmax - lmin) / lstep)) + 1; - var ticks = new Array(tickCount); - ticks[0] = prettyNumber(lmin); - for (var i4 = 1; i4 < tickCount; i4++) { - ticks[i4] = prettyNumber(ticks[i4 - 1] + lstep); - } - return { - min: Math.min(dMin, head(ticks)), - max: Math.max(dMax, last(ticks)), - ticks - }; -} - -// node_modules/@antv/scale/esm/tick-method/cat.js -function calculateCatTicks(cfg) { - var values2 = cfg.values, tickInterval = cfg.tickInterval, tickCount = cfg.tickCount; - var ticks = values2; - if (is_number_default(tickInterval)) { - return filter_default(ticks, function(__, i4) { - return i4 % tickInterval === 0; - }); - } - var min7 = cfg.min, max8 = cfg.max; - if (is_nil_default(min7)) { - min7 = 0; - } - if (is_nil_default(max8)) { - max8 = values2.length - 1; - } - if (is_number_default(tickCount) && tickCount < max8 - min7) { - var ticks_1 = extended(min7, max8, tickCount, false, [1, 2, 5, 3, 4, 7, 6, 8, 9]).ticks; - var valid = filter_default(ticks_1, function(tick) { - return tick >= min7 && tick <= max8; - }); - return valid.map(function(index2) { - return values2[index2]; - }); - } - return values2.slice(min7, max8 + 1); -} - -// node_modules/@antv/scale/esm/util/d3-linear.js -function d3Linear(cfg) { - var min7 = cfg.min, max8 = cfg.max, nice = cfg.nice, tickCount = cfg.tickCount; - var linear4 = new D3Linear(); - linear4.domain([min7, max8]); - if (nice) { - linear4.nice(tickCount); - } - return linear4.ticks(tickCount); -} -var DEFAULT_COUNT = 5; -var e10 = Math.sqrt(50); -var e5 = Math.sqrt(10); -var e22 = Math.sqrt(2); -var D3Linear = function() { - function D3Linear2() { - this._domain = [0, 1]; - } - D3Linear2.prototype.domain = function(domain) { - if (domain) { - this._domain = Array.from(domain, Number); - return this; - } - return this._domain.slice(); - }; - D3Linear2.prototype.nice = function(count2) { - var _a6, _b; - if (count2 === void 0) { - count2 = DEFAULT_COUNT; - } - var d3 = this._domain.slice(); - var i0 = 0; - var i1 = this._domain.length - 1; - var start = this._domain[i0]; - var stop = this._domain[i1]; - var step; - if (stop < start) { - _a6 = [stop, start], start = _a6[0], stop = _a6[1]; - _b = [i1, i0], i0 = _b[0], i1 = _b[1]; - } - step = tickIncrement(start, stop, count2); - if (step > 0) { - start = Math.floor(start / step) * step; - stop = Math.ceil(stop / step) * step; - step = tickIncrement(start, stop, count2); - } else if (step < 0) { - start = Math.ceil(start * step) / step; - stop = Math.floor(stop * step) / step; - step = tickIncrement(start, stop, count2); - } - if (step > 0) { - d3[i0] = Math.floor(start / step) * step; - d3[i1] = Math.ceil(stop / step) * step; - this.domain(d3); - } else if (step < 0) { - d3[i0] = Math.ceil(start * step) / step; - d3[i1] = Math.floor(stop * step) / step; - this.domain(d3); - } - return this; - }; - D3Linear2.prototype.ticks = function(count2) { - if (count2 === void 0) { - count2 = DEFAULT_COUNT; - } - return d3ArrayTicks(this._domain[0], this._domain[this._domain.length - 1], count2 || DEFAULT_COUNT); - }; - return D3Linear2; -}(); -function d3ArrayTicks(start, stop, count2) { - var reverse; - var i4 = -1; - var n3; - var ticks; - var step; - stop = +stop, start = +start, count2 = +count2; - if (start === stop && count2 > 0) { - return [start]; - } - if (reverse = stop < start) { - n3 = start, start = stop, stop = n3; - } - if ((step = tickIncrement(start, stop, count2)) === 0 || !isFinite(step)) { - return []; - } - if (step > 0) { - start = Math.ceil(start / step); - stop = Math.floor(stop / step); - ticks = new Array(n3 = Math.ceil(stop - start + 1)); - while (++i4 < n3) { - ticks[i4] = (start + i4) * step; - } - } else { - start = Math.floor(start * step); - stop = Math.ceil(stop * step); - ticks = new Array(n3 = Math.ceil(start - stop + 1)); - while (++i4 < n3) { - ticks[i4] = (start - i4) / step; - } - } - if (reverse) { - ticks.reverse(); - } - return ticks; -} -function tickIncrement(start, stop, count2) { - var step = (stop - start) / Math.max(0, count2); - var power = Math.floor(Math.log(step) / Math.LN10); - var error = step / Math.pow(10, power); - return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e22 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e22 ? 2 : 1); -} - -// node_modules/@antv/scale/esm/util/interval.js -function snapMultiple(v3, base, snapType) { - var div4; - if (snapType === "ceil") { - div4 = Math.ceil(v3 / base); - } else if (snapType === "floor") { - div4 = Math.floor(v3 / base); - } else { - div4 = Math.round(v3 / base); - } - return div4 * base; -} -function intervalTicks(min7, max8, interval3) { - var minTick = snapMultiple(min7, interval3, "floor"); - var maxTick = snapMultiple(max8, interval3, "ceil"); - minTick = fixed_base_default(minTick, interval3); - maxTick = fixed_base_default(maxTick, interval3); - var ticks = []; - for (var i4 = minTick; i4 <= maxTick; i4 = i4 + interval3) { - var tickValue = fixed_base_default(i4, interval3); - ticks.push(tickValue); - } - return { - min: minTick, - max: maxTick, - ticks - }; -} - -// node_modules/@antv/scale/esm/util/strict-limit.js -function strictLimit(cfg, defaultMin, defaultMax) { - var _a6; - var minLimit = cfg.minLimit, maxLimit = cfg.maxLimit, min7 = cfg.min, max8 = cfg.max, _b = cfg.tickCount, tickCount = _b === void 0 ? 5 : _b; - var tickMin = is_nil_default(minLimit) ? is_nil_default(defaultMin) ? min7 : defaultMin : minLimit; - var tickMax = is_nil_default(maxLimit) ? is_nil_default(defaultMax) ? max8 : defaultMax : maxLimit; - if (tickMin > tickMax) { - _a6 = [tickMin, tickMax], tickMax = _a6[0], tickMin = _a6[1]; - } - if (tickCount <= 2) { - return [tickMin, tickMax]; - } - var step = (tickMax - tickMin) / (tickCount - 1); - var ticks = []; - for (var i4 = 0; i4 < tickCount; i4++) { - ticks.push(tickMin + step * i4); - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/d3-linear.js -function d3LinearTickMethod(cfg) { - var min7 = cfg.min, max8 = cfg.max, tickInterval = cfg.tickInterval, minLimit = cfg.minLimit, maxLimit = cfg.maxLimit; - var ticks = d3Linear(cfg); - if (!is_nil_default(minLimit) || !is_nil_default(maxLimit)) { - return strictLimit(cfg, head(ticks), last(ticks)); - } - if (tickInterval) { - return intervalTicks(min7, max8, tickInterval).ticks; - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/linear.js -function linear3(cfg) { - var min7 = cfg.min, max8 = cfg.max, tickCount = cfg.tickCount, nice = cfg.nice, tickInterval = cfg.tickInterval, minLimit = cfg.minLimit, maxLimit = cfg.maxLimit; - var ticks = extended(min7, max8, tickCount, nice).ticks; - if (!is_nil_default(minLimit) || !is_nil_default(maxLimit)) { - return strictLimit(cfg, head(ticks), last(ticks)); - } - if (tickInterval) { - return intervalTicks(min7, max8, tickInterval).ticks; - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/log.js -function calculateLogTicks(cfg) { - var base = cfg.base, tickCount = cfg.tickCount, min7 = cfg.min, max8 = cfg.max, values2 = cfg.values; - var minTick; - var maxTick = log(base, max8); - if (min7 > 0) { - minTick = Math.floor(log(base, min7)); - } else { - var positiveMin = getLogPositiveMin(values2, base, max8); - minTick = Math.floor(log(base, positiveMin)); - } - var count2 = maxTick - minTick; - var avg2 = Math.ceil(count2 / tickCount); - var ticks = []; - for (var i4 = minTick; i4 < maxTick + avg2; i4 = i4 + avg2) { - ticks.push(Math.pow(base, i4)); - } - if (min7 <= 0) { - ticks.unshift(0); - } - return ticks; -} - -// node_modules/@antv/scale/esm/util/pretty.js -function pretty(min7, max8, m4) { - if (m4 === void 0) { - m4 = 5; - } - if (min7 === max8) { - return { - max: max8, - min: min7, - ticks: [min7] - }; - } - var n3 = m4 < 0 ? 0 : Math.round(m4); - if (n3 === 0) - return { max: max8, min: min7, ticks: [] }; - var h3 = 1.5; - var h5 = 0.5 + 1.5 * h3; - var d3 = max8 - min7; - var c5 = d3 / n3; - var base = Math.pow(10, Math.floor(Math.log10(c5))); - var unit = base; - if (2 * base - c5 < h3 * (c5 - unit)) { - unit = 2 * base; - if (5 * base - c5 < h5 * (c5 - unit)) { - unit = 5 * base; - if (10 * base - c5 < h3 * (c5 - unit)) { - unit = 10 * base; - } - } - } - var nu = Math.ceil(max8 / unit); - var ns = Math.floor(min7 / unit); - var hi = Math.max(nu * unit, max8); - var lo = Math.min(ns * unit, min7); - var size2 = Math.floor((hi - lo) / unit) + 1; - var ticks = new Array(size2); - for (var i4 = 0; i4 < size2; i4++) { - ticks[i4] = prettyNumber(lo + i4 * unit); - } - return { - min: lo, - max: hi, - ticks - }; -} - -// node_modules/@antv/scale/esm/tick-method/pow.js -function calculatePowTicks(cfg) { - var exponent2 = cfg.exponent, tickCount = cfg.tickCount; - var max8 = Math.ceil(calBase(exponent2, cfg.max)); - var min7 = Math.floor(calBase(exponent2, cfg.min)); - var ticks = pretty(min7, max8, tickCount).ticks; - return ticks.map(function(tick) { - var factor = tick >= 0 ? 1 : -1; - return Math.pow(tick, exponent2) * factor; - }); -} - -// node_modules/@antv/scale/esm/tick-method/quantile.js -function quantileSorted(x6, p4) { - var idx = x6.length * p4; - if (p4 === 1) { - return x6[x6.length - 1]; - } else if (p4 === 0) { - return x6[0]; - } else if (idx % 1 !== 0) { - return x6[Math.ceil(idx) - 1]; - } else if (x6.length % 2 === 0) { - return (x6[idx - 1] + x6[idx]) / 2; - } else { - return x6[idx]; - } -} -function calculateTicks(cfg) { - var tickCount = cfg.tickCount, values2 = cfg.values; - if (!values2 || !values2.length) { - return []; - } - var sorted = values2.slice().sort(function(a4, b10) { - return a4 - b10; - }); - var ticks = []; - for (var i4 = 0; i4 < tickCount; i4++) { - var p4 = i4 / (tickCount - 1); - ticks.push(quantileSorted(sorted, p4)); - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/r-prettry.js -function linearPretty(cfg) { - var min7 = cfg.min, max8 = cfg.max, tickCount = cfg.tickCount, tickInterval = cfg.tickInterval, minLimit = cfg.minLimit, maxLimit = cfg.maxLimit; - var ticks = pretty(min7, max8, tickCount).ticks; - if (!is_nil_default(minLimit) || !is_nil_default(maxLimit)) { - return strictLimit(cfg, head(ticks), last(ticks)); - } - if (tickInterval) { - return intervalTicks(min7, max8, tickInterval).ticks; - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/time.js -function calculateTimeTicks(cfg) { - var min7 = cfg.min, max8 = cfg.max, minTickInterval = cfg.minTickInterval; - var tickInterval = cfg.tickInterval; - var tickCount = cfg.tickCount; - if (tickInterval) { - tickCount = Math.ceil((max8 - min7) / tickInterval); - } else { - tickInterval = getTickInterval(min7, max8, tickCount)[1]; - var count2 = (max8 - min7) / tickInterval; - var ratio = count2 / tickCount; - if (ratio > 1) { - tickInterval = tickInterval * Math.ceil(ratio); - } - if (minTickInterval && tickInterval < minTickInterval) { - tickInterval = minTickInterval; - } - } - var ticks = []; - for (var i4 = min7; i4 < max8 + tickInterval; i4 += tickInterval) { - ticks.push(i4); - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/time-cat.js -function calculateTimeCatTicks(cfg) { - var ticks = calculateCatTicks(cfg); - var lastValue = last(cfg.values); - if (lastValue !== last(ticks)) { - ticks.push(lastValue); - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/time-pretty.js -function getYear(date) { - return new Date(date).getFullYear(); -} -function createYear(year) { - return new Date(year, 0, 1).getTime(); -} -function getMonth(date) { - return new Date(date).getMonth(); -} -function diffMonth(min7, max8) { - var minYear = getYear(min7); - var maxYear = getYear(max8); - var minMonth = getMonth(min7); - var maxMonth = getMonth(max8); - return (maxYear - minYear) * 12 + (maxMonth - minMonth) % 12; -} -function creatMonth(year, month) { - return new Date(year, month, 1).getTime(); -} -function diffDay(min7, max8) { - return Math.ceil((max8 - min7) / DAY); -} -function diffHour(min7, max8) { - return Math.ceil((max8 - min7) / HOUR); -} -function diffMinus(min7, max8) { - return Math.ceil((max8 - min7) / (60 * 1e3)); -} -function timePretty(cfg) { - var min7 = cfg.min, max8 = cfg.max, minTickInterval = cfg.minTickInterval, tickCount = cfg.tickCount; - var tickInterval = cfg.tickInterval; - var ticks = []; - if (!tickInterval) { - tickInterval = (max8 - min7) / tickCount; - if (minTickInterval && tickInterval < minTickInterval) { - tickInterval = minTickInterval; - } - } - var minYear = getYear(min7); - if (tickInterval > YEAR) { - var maxYear = getYear(max8); - var yearInterval = Math.ceil(tickInterval / YEAR); - for (var i4 = minYear; i4 <= maxYear + yearInterval; i4 = i4 + yearInterval) { - ticks.push(createYear(i4)); - } - } else if (tickInterval > MONTH) { - var monthInterval = Math.ceil(tickInterval / MONTH); - var mmMoth = getMonth(min7); - var dMonths = diffMonth(min7, max8); - for (var i4 = 0; i4 <= dMonths + monthInterval; i4 = i4 + monthInterval) { - ticks.push(creatMonth(minYear, i4 + mmMoth)); - } - } else if (tickInterval > DAY) { - var date = new Date(min7); - var year = date.getFullYear(); - var month = date.getMonth(); - var mday = date.getDate(); - var day = Math.ceil(tickInterval / DAY); - var ddays = diffDay(min7, max8); - for (var i4 = 0; i4 < ddays + day; i4 = i4 + day) { - ticks.push(new Date(year, month, mday + i4).getTime()); - } - } else if (tickInterval > HOUR) { - var date = new Date(min7); - var year = date.getFullYear(); - var month = date.getMonth(); - var day = date.getDate(); - var hour = date.getHours(); - var hours = Math.ceil(tickInterval / HOUR); - var dHours = diffHour(min7, max8); - for (var i4 = 0; i4 <= dHours + hours; i4 = i4 + hours) { - ticks.push(new Date(year, month, day, hour + i4).getTime()); - } - } else if (tickInterval > MINUTE) { - var dMinus = diffMinus(min7, max8); - var minutes = Math.ceil(tickInterval / MINUTE); - for (var i4 = 0; i4 <= dMinus + minutes; i4 = i4 + minutes) { - ticks.push(min7 + i4 * MINUTE); - } - } else { - var interval3 = tickInterval; - if (interval3 < SECOND) { - interval3 = SECOND; - } - var minSecond = Math.floor(min7 / SECOND) * SECOND; - var dSeconds = Math.ceil((max8 - min7) / SECOND); - var seconds = Math.ceil(interval3 / SECOND); - for (var i4 = 0; i4 < dSeconds + seconds; i4 = i4 + seconds) { - ticks.push(minSecond + i4 * SECOND); - } - } - if (ticks.length >= 512) { - console.warn("Notice: current ticks length(" + ticks.length + ') >= 512, may cause performance issues, even out of memory. Because of the configure "tickInterval"(in milliseconds, current is ' + tickInterval + ") is too small, increase the value to solve the problem!"); - } - return ticks; -} - -// node_modules/@antv/scale/esm/tick-method/index.js -registerTickMethod("cat", calculateCatTicks); -registerTickMethod("time-cat", calculateTimeCatTicks); -registerTickMethod("wilkinson-extended", linear3); -registerTickMethod("r-pretty", linearPretty); -registerTickMethod("time", calculateTimeTicks); -registerTickMethod("time-pretty", timePretty); -registerTickMethod("log", calculateLogTicks); -registerTickMethod("pow", calculatePowTicks); -registerTickMethod("quantile", calculateTicks); -registerTickMethod("d3-linear", d3LinearTickMethod); - -// node_modules/@antv/scale/esm/index.js -registerClass("cat", base_default5); -registerClass("category", base_default5); -registerClass("identity", identity_default2); -registerClass("linear", linear_default); -registerClass("log", log_default); -registerClass("pow", pow_default); -registerClass("time", time_default2); -registerClass("timeCat", time_default); -registerClass("quantize", quantize_default); -registerClass("quantile", quantile_default); - -// node_modules/@antv/attr/esm/factory.js -var ATTRIBUTE_MAP = {}; -var getAttribute = function(type2) { - return ATTRIBUTE_MAP[type2.toLowerCase()]; -}; -var registerAttribute = function(type2, ctor) { - if (getAttribute(type2)) { - throw new Error("Attribute type '" + type2 + "' existed."); - } - ATTRIBUTE_MAP[type2.toLowerCase()] = ctor; -}; - -// node_modules/@antv/attr/esm/index.js -registerAttribute("Color", color_default); -registerAttribute("Opacity", opacity_default); -registerAttribute("Position", position_default); -registerAttribute("Shape", shape_default2); -registerAttribute("Size", size_default); - -// node_modules/@antv/coord/esm/coord/base.js -var Coordinate = function() { - function Coordinate2(cfg) { - this.type = "coordinate"; - this.isRect = false; - this.isHelix = false; - this.isPolar = false; - this.isReflectX = false; - this.isReflectY = false; - var start = cfg.start, end2 = cfg.end, _a6 = cfg.matrix, matrix = _a6 === void 0 ? [1, 0, 0, 0, 1, 0, 0, 0, 1] : _a6, _b = cfg.isTransposed, isTransposed = _b === void 0 ? false : _b; - this.start = start; - this.end = end2; - this.matrix = matrix; - this.originalMatrix = __spreadArray([], matrix); - this.isTransposed = isTransposed; - } - Coordinate2.prototype.initial = function() { - this.center = { - x: (this.start.x + this.end.x) / 2, - y: (this.start.y + this.end.y) / 2 - }; - this.width = Math.abs(this.end.x - this.start.x); - this.height = Math.abs(this.end.y - this.start.y); - }; - Coordinate2.prototype.update = function(cfg) { - mix(this, cfg); - this.initial(); - }; - Coordinate2.prototype.convertDim = function(percent2, dim) { - var _a6; - var _b = this[dim], start = _b.start, end2 = _b.end; - if (this.isReflect(dim)) { - _a6 = [end2, start], start = _a6[0], end2 = _a6[1]; - } - return start + percent2 * (end2 - start); - }; - Coordinate2.prototype.invertDim = function(value2, dim) { - var _a6; - var _b = this[dim], start = _b.start, end2 = _b.end; - if (this.isReflect(dim)) { - _a6 = [end2, start], start = _a6[0], end2 = _a6[1]; - } - return (value2 - start) / (end2 - start); - }; - Coordinate2.prototype.applyMatrix = function(x6, y5, tag) { - if (tag === void 0) { - tag = 0; - } - var matrix = this.matrix; - var vector = [x6, y5, tag]; - vec3_exports.transformMat3(vector, vector, matrix); - return vector; - }; - Coordinate2.prototype.invertMatrix = function(x6, y5, tag) { - if (tag === void 0) { - tag = 0; - } - var matrix = this.matrix; - var inverted = mat3_exports.invert([0, 0, 0, 0, 0, 0, 0, 0, 0], matrix); - var vector = [x6, y5, tag]; - if (inverted) { - vec3_exports.transformMat3(vector, vector, inverted); - } - return vector; - }; - Coordinate2.prototype.convert = function(point2) { - var _a6 = this.convertPoint(point2), x6 = _a6.x, y5 = _a6.y; - var vector = this.applyMatrix(x6, y5, 1); - return { - x: vector[0], - y: vector[1] - }; - }; - Coordinate2.prototype.invert = function(point2) { - var vector = this.invertMatrix(point2.x, point2.y, 1); - return this.invertPoint({ - x: vector[0], - y: vector[1] - }); - }; - Coordinate2.prototype.rotate = function(radian) { - var matrix = this.matrix; - var center2 = this.center; - ext_exports.leftTranslate(matrix, matrix, [-center2.x, -center2.y]); - ext_exports.leftRotate(matrix, matrix, radian); - ext_exports.leftTranslate(matrix, matrix, [center2.x, center2.y]); - return this; - }; - Coordinate2.prototype.reflect = function(dim) { - if (dim === "x") { - this.isReflectX = !this.isReflectX; - } else { - this.isReflectY = !this.isReflectY; - } - return this; - }; - Coordinate2.prototype.scale = function(s1, s22) { - var matrix = this.matrix; - var center2 = this.center; - ext_exports.leftTranslate(matrix, matrix, [-center2.x, -center2.y]); - ext_exports.leftScale(matrix, matrix, [s1, s22]); - ext_exports.leftTranslate(matrix, matrix, [center2.x, center2.y]); - return this; - }; - Coordinate2.prototype.translate = function(x6, y5) { - var matrix = this.matrix; - ext_exports.leftTranslate(matrix, matrix, [x6, y5]); - return this; - }; - Coordinate2.prototype.transpose = function() { - this.isTransposed = !this.isTransposed; - return this; - }; - Coordinate2.prototype.getCenter = function() { - return this.center; - }; - Coordinate2.prototype.getWidth = function() { - return this.width; - }; - Coordinate2.prototype.getHeight = function() { - return this.height; - }; - Coordinate2.prototype.getRadius = function() { - return this.radius; - }; - Coordinate2.prototype.isReflect = function(dim) { - return dim === "x" ? this.isReflectX : this.isReflectY; - }; - Coordinate2.prototype.resetMatrix = function(matrix) { - this.matrix = matrix ? matrix : __spreadArray([], this.originalMatrix); - }; - return Coordinate2; -}(); -var base_default7 = Coordinate; - -// node_modules/@antv/coord/esm/coord/cartesian.js -var Cartesian = function(_super) { - __extends(Cartesian2, _super); - function Cartesian2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.isRect = true; - _this.type = "cartesian"; - _this.initial(); - return _this; - } - Cartesian2.prototype.initial = function() { - _super.prototype.initial.call(this); - var start = this.start; - var end2 = this.end; - this.x = { - start: start.x, - end: end2.x - }; - this.y = { - start: start.y, - end: end2.y - }; - }; - Cartesian2.prototype.convertPoint = function(point2) { - var _a6; - var x6 = point2.x, y5 = point2.y; - if (this.isTransposed) { - _a6 = [y5, x6], x6 = _a6[0], y5 = _a6[1]; - } - return { - x: this.convertDim(x6, "x"), - y: this.convertDim(y5, "y") - }; - }; - Cartesian2.prototype.invertPoint = function(point2) { - var _a6; - var x6 = this.invertDim(point2.x, "x"); - var y5 = this.invertDim(point2.y, "y"); - if (this.isTransposed) { - _a6 = [y5, x6], x6 = _a6[0], y5 = _a6[1]; - } - return { x: x6, y: y5 }; - }; - return Cartesian2; -}(base_default7); -var cartesian_default = Cartesian; - -// node_modules/@antv/coord/esm/coord/helix.js -var Helix = function(_super) { - __extends(Helix2, _super); - function Helix2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.isHelix = true; - _this.type = "helix"; - var _a6 = cfg.startAngle, startAngle = _a6 === void 0 ? 1.25 * Math.PI : _a6, _b = cfg.endAngle, endAngle = _b === void 0 ? 7.25 * Math.PI : _b, _c = cfg.innerRadius, innerRadius = _c === void 0 ? 0 : _c, radius = cfg.radius; - _this.startAngle = startAngle; - _this.endAngle = endAngle; - _this.innerRadius = innerRadius; - _this.radius = radius; - _this.initial(); - return _this; - } - Helix2.prototype.initial = function() { - _super.prototype.initial.call(this); - var index2 = (this.endAngle - this.startAngle) / (2 * Math.PI) + 1; - var maxRadius = Math.min(this.width, this.height) / 2; - if (this.radius && this.radius >= 0 && this.radius <= 1) { - maxRadius = maxRadius * this.radius; - } - this.d = Math.floor(maxRadius * (1 - this.innerRadius) / index2); - this.a = this.d / (Math.PI * 2); - this.x = { - start: this.startAngle, - end: this.endAngle - }; - this.y = { - start: this.innerRadius * maxRadius, - end: this.innerRadius * maxRadius + this.d * 0.99 - }; - }; - Helix2.prototype.convertPoint = function(point2) { - var _a6; - var x6 = point2.x, y5 = point2.y; - if (this.isTransposed) { - _a6 = [y5, x6], x6 = _a6[0], y5 = _a6[1]; - } - var thi = this.convertDim(x6, "x"); - var r4 = this.a * thi; - var newY = this.convertDim(y5, "y"); - return { - x: this.center.x + Math.cos(thi) * (r4 + newY), - y: this.center.y + Math.sin(thi) * (r4 + newY) - }; - }; - Helix2.prototype.invertPoint = function(point2) { - var _a6; - var d3 = this.d + this.y.start; - var v3 = vec2_exports.subtract([0, 0], [point2.x, point2.y], [this.center.x, this.center.y]); - var thi = ext_exports.angleTo(v3, [1, 0], true); - var rMin = thi * this.a; - if (vec2_exports.length(v3) < rMin) { - rMin = vec2_exports.length(v3); - } - var index2 = Math.floor((vec2_exports.length(v3) - rMin) / d3); - thi = 2 * index2 * Math.PI + thi; - var r4 = this.a * thi; - var newY = vec2_exports.length(v3) - r4; - newY = isNumberEqual(newY, 0) ? 0 : newY; - var x6 = this.invertDim(thi, "x"); - var y5 = this.invertDim(newY, "y"); - x6 = isNumberEqual(x6, 0) ? 0 : x6; - y5 = isNumberEqual(y5, 0) ? 0 : y5; - if (this.isTransposed) { - _a6 = [y5, x6], x6 = _a6[0], y5 = _a6[1]; - } - return { x: x6, y: y5 }; - }; - return Helix2; -}(base_default7); -var helix_default = Helix; - -// node_modules/@antv/coord/esm/coord/polar.js -var Polar = function(_super) { - __extends(Polar2, _super); - function Polar2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.isPolar = true; - _this.type = "polar"; - var _a6 = cfg.startAngle, startAngle = _a6 === void 0 ? -Math.PI / 2 : _a6, _b = cfg.endAngle, endAngle = _b === void 0 ? Math.PI * 3 / 2 : _b, _c = cfg.innerRadius, innerRadius = _c === void 0 ? 0 : _c, radius = cfg.radius; - _this.startAngle = startAngle; - _this.endAngle = endAngle; - _this.innerRadius = innerRadius; - _this.radius = radius; - _this.initial(); - return _this; - } - Polar2.prototype.initial = function() { - _super.prototype.initial.call(this); - while (this.endAngle < this.startAngle) { - this.endAngle += Math.PI * 2; - } - var oneBox = this.getOneBox(); - var oneWidth = oneBox.maxX - oneBox.minX; - var oneHeight = oneBox.maxY - oneBox.minY; - var left2 = Math.abs(oneBox.minX) / oneWidth; - var top = Math.abs(oneBox.minY) / oneHeight; - var maxRadius; - if (this.height / oneHeight > this.width / oneWidth) { - maxRadius = this.width / oneWidth; - this.circleCenter = { - x: this.center.x - (0.5 - left2) * this.width, - y: this.center.y - (0.5 - top) * maxRadius * oneHeight - }; - } else { - maxRadius = this.height / oneHeight; - this.circleCenter = { - x: this.center.x - (0.5 - left2) * maxRadius * oneWidth, - y: this.center.y - (0.5 - top) * this.height - }; - } - this.polarRadius = this.radius; - if (!this.radius) { - this.polarRadius = maxRadius; - } else if (this.radius > 0 && this.radius <= 1) { - this.polarRadius = maxRadius * this.radius; - } else if (this.radius <= 0 || this.radius > maxRadius) { - this.polarRadius = maxRadius; - } - this.x = { - start: this.startAngle, - end: this.endAngle - }; - this.y = { - start: this.innerRadius * this.polarRadius, - end: this.polarRadius - }; - }; - Polar2.prototype.getRadius = function() { - return this.polarRadius; - }; - Polar2.prototype.convertPoint = function(point2) { - var _a6; - var center2 = this.getCenter(); - var x6 = point2.x, y5 = point2.y; - if (this.isTransposed) { - _a6 = [y5, x6], x6 = _a6[0], y5 = _a6[1]; - } - x6 = this.convertDim(x6, "x"); - y5 = this.convertDim(y5, "y"); - return { - x: center2.x + Math.cos(x6) * y5, - y: center2.y + Math.sin(x6) * y5 - }; - }; - Polar2.prototype.invertPoint = function(point2) { - var _a6; - var center2 = this.getCenter(); - var vPoint = [point2.x - center2.x, point2.y - center2.y]; - var _b = this, startAngle = _b.startAngle, endAngle = _b.endAngle; - if (this.isReflect("x")) { - _a6 = [endAngle, startAngle], startAngle = _a6[0], endAngle = _a6[1]; - } - var m4 = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - ext_exports.leftRotate(m4, m4, startAngle); - var vStart3 = [1, 0, 0]; - vec3_exports.transformMat3(vStart3, vStart3, m4); - var vStart2 = [vStart3[0], vStart3[1]]; - var angle3 = ext_exports.angleTo(vStart2, vPoint, endAngle < startAngle); - if (isNumberEqual(angle3, Math.PI * 2)) { - angle3 = 0; - } - var radius = vec2_exports.length(vPoint); - var xPercent = angle3 / (endAngle - startAngle); - xPercent = endAngle - startAngle > 0 ? xPercent : -xPercent; - var yPercent = this.invertDim(radius, "y"); - var rst = { x: 0, y: 0 }; - rst.x = this.isTransposed ? yPercent : xPercent; - rst.y = this.isTransposed ? xPercent : yPercent; - return rst; - }; - Polar2.prototype.getCenter = function() { - return this.circleCenter; - }; - Polar2.prototype.getOneBox = function() { - var startAngle = this.startAngle; - var endAngle = this.endAngle; - if (Math.abs(endAngle - startAngle) >= Math.PI * 2) { - return { - minX: -1, - maxX: 1, - minY: -1, - maxY: 1 - }; - } - var xs = [0, Math.cos(startAngle), Math.cos(endAngle)]; - var ys = [0, Math.sin(startAngle), Math.sin(endAngle)]; - for (var i4 = Math.min(startAngle, endAngle); i4 < Math.max(startAngle, endAngle); i4 += Math.PI / 18) { - xs.push(Math.cos(i4)); - ys.push(Math.sin(i4)); - } - return { - minX: Math.min.apply(Math, xs), - maxX: Math.max.apply(Math, xs), - minY: Math.min.apply(Math, ys), - maxY: Math.max.apply(Math, ys) - }; - }; - return Polar2; -}(base_default7); -var polar_default = Polar; - -// node_modules/@antv/coord/esm/factory.js -var COORDINATE_MAP = {}; -var getCoordinate = function(type2) { - return COORDINATE_MAP[type2.toLowerCase()]; -}; -var registerCoordinate = function(type2, ctor) { - COORDINATE_MAP[type2.toLowerCase()] = ctor; -}; - -// node_modules/@antv/coord/esm/index.js -registerCoordinate("rect", cartesian_default); -registerCoordinate("cartesian", cartesian_default); -registerCoordinate("polar", polar_default); -registerCoordinate("helix", helix_default); - -// node_modules/@antv/component/esm/annotation/index.js -var annotation_exports = {}; -__export(annotation_exports, { - Arc: () => arc_default2, - DataMarker: () => data_marker_default, - DataRegion: () => data_region_default, - Html: () => html_default, - Image: () => image_default, - Line: () => line_default3, - Region: () => region_default, - RegionFilter: () => region_filter_default, - Shape: () => shape_default3, - Text: () => text_default2 -}); - -// node_modules/@antv/component/esm/util/event.js -function propagationDelegate(group2, eventName, eventObject) { - var event = new graph_event_default(eventName, eventObject); - event.target = group2; - event.propagationPath.push(group2); - group2.emitDelegation(eventName, event); - var parent = group2.getParent(); - while (parent) { - parent.emitDelegation(eventName, event); - event.propagationPath.push(parent); - parent = parent.getParent(); - } -} - -// node_modules/@antv/component/esm/util/matrix.js -var identityMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; -function getMatrixByAngle(point2, angle3, matrix) { - if (matrix === void 0) { - matrix = identityMatrix; - } - if (!angle3) { - return null; - } - var m4 = ext_exports.transform(matrix, [ - ["t", -point2.x, -point2.y], - ["r", angle3], - ["t", point2.x, point2.y] - ]); - return m4; -} -function getMatrixByTranslate(point2, currentMatrix) { - if (!point2.x && !point2.y) { - return null; - } - return ext_exports.transform(currentMatrix || identityMatrix, [["t", point2.x, point2.y]]); -} -function getAngleByMatrix(matrix) { - var xVector = [1, 0, 0]; - var out = [0, 0, 0]; - vec3_exports.transformMat3(out, xVector, matrix); - return Math.atan2(out[1], out[0]); -} -function multiplyVec22(matrix, v3) { - var out = [0, 0]; - vec2_exports.transformMat3(out, v3, matrix); - return out; -} -function applyMatrix2BBox(matrix, bbox) { - var topLeft = multiplyVec22(matrix, [bbox.minX, bbox.minY]); - var topRight = multiplyVec22(matrix, [bbox.maxX, bbox.minY]); - var bottomLeft = multiplyVec22(matrix, [bbox.minX, bbox.maxY]); - var bottomRight = multiplyVec22(matrix, [bbox.maxX, bbox.maxY]); - var minX = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]); - var maxX = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]); - var minY = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]); - var maxY2 = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]); - return { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; -} -function applyRotate(shape, rotate8, x6, y5) { - if (rotate8) { - var matrix = getMatrixByAngle({ x: x6, y: y5 }, rotate8, shape.getMatrix()); - shape.setMatrix(matrix); - } -} -function applyTranslate(shape, x6, y5) { - var translateMatrix = getMatrixByTranslate({ x: x6, y: y5 }); - shape.attr("matrix", translateMatrix); -} - -// node_modules/@antv/component/esm/util/util.js -function formatPadding(padding3) { - var top = 0; - var left2 = 0; - var right2 = 0; - var bottom = 0; - if (is_number_default(padding3)) { - top = left2 = right2 = bottom = padding3; - } else if (is_array_default(padding3)) { - top = padding3[0]; - right2 = !is_nil_default(padding3[1]) ? padding3[1] : padding3[0]; - bottom = !is_nil_default(padding3[2]) ? padding3[2] : padding3[0]; - left2 = !is_nil_default(padding3[3]) ? padding3[3] : right2; - } - return [top, right2, bottom, left2]; -} -function clearDom(container2) { - var children = container2.childNodes; - var length5 = children.length; - for (var i4 = length5 - 1; i4 >= 0; i4--) { - container2.removeChild(children[i4]); - } -} -function hasClass(elements, cName) { - return !!elements.className.match(new RegExp("(\\s|^)" + cName + "(\\s|$)")); -} -function regionToBBox(region) { - var start = region.start, end2 = region.end; - var minX = Math.min(start.x, end2.x); - var minY = Math.min(start.y, end2.y); - var maxX = Math.max(start.x, end2.x); - var maxY2 = Math.max(start.y, end2.y); - return { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; -} -function pointsToBBox(points) { - var xs = points.map(function(point2) { - return point2.x; - }); - var ys = points.map(function(point2) { - return point2.y; - }); - var minX = Math.min.apply(Math, xs); - var minY = Math.min.apply(Math, ys); - var maxX = Math.max.apply(Math, xs); - var maxY2 = Math.max.apply(Math, ys); - return { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; -} -function createBBox(x6, y5, width2, height) { - var maxX = x6 + width2; - var maxY2 = y5 + height; - return { - x: x6, - y: y5, - width: width2, - height, - minX: x6, - minY: y5, - maxX: isNaN(maxX) ? 0 : maxX, - maxY: isNaN(maxY2) ? 0 : maxY2 - }; -} -function getValueByPercent(min7, max8, percent2) { - return (1 - percent2) * min7 + max8 * percent2; -} -function getCirclePoint(center2, radius, angle3) { - return { - x: center2.x + Math.cos(angle3) * radius, - y: center2.y + Math.sin(angle3) * radius - }; -} -function distance5(p1, p22) { - var dx = p22.x - p1.x; - var dy = p22.y - p1.y; - return Math.sqrt(dx * dx + dy * dy); -} -var near = function(x6, y5, e4) { - if (e4 === void 0) { - e4 = Math.pow(Number.EPSILON, 0.5); - } - return [x6, y5].includes(Infinity) ? Math.abs(x6) === Math.abs(y5) : Math.abs(x6 - y5) < e4; -}; -function intersectBBox2(box1, box2) { - var minX = Math.max(box1.minX, box2.minX); - var minY = Math.max(box1.minY, box2.minY); - var maxX = Math.min(box1.maxX, box2.maxX); - var maxY2 = Math.min(box1.maxY, box2.maxY); - return createBBox(minX, minY, maxX - minX, maxY2 - minY); -} -function getBBoxWithClip(element) { - var clipShape = element.getClip(); - var clipBBox = clipShape && clipShape.getBBox(); - var bbox; - if (!element.isGroup()) { - bbox = element.getBBox(); - } else { - var minX_1 = Infinity; - var maxX_1 = -Infinity; - var minY_1 = Infinity; - var maxY_1 = -Infinity; - var children = element.getChildren(); - if (children.length > 0) { - each_default(children, function(child) { - if (child.get("visible")) { - if (child.isGroup() && child.get("children").length === 0) { - return true; - } - var box2 = getBBoxWithClip(child); - var leftTop = child.applyToMatrix([box2.minX, box2.minY, 1]); - var leftBottom = child.applyToMatrix([box2.minX, box2.maxY, 1]); - var rightTop = child.applyToMatrix([box2.maxX, box2.minY, 1]); - var rightBottom = child.applyToMatrix([box2.maxX, box2.maxY, 1]); - var boxMinX = Math.min(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0]); - var boxMaxX = Math.max(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0]); - var boxMinY = Math.min(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1]); - var boxMaxY = Math.max(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1]); - if (boxMinX < minX_1) { - minX_1 = boxMinX; - } - if (boxMaxX > maxX_1) { - maxX_1 = boxMaxX; - } - if (boxMinY < minY_1) { - minY_1 = boxMinY; - } - if (boxMaxY > maxY_1) { - maxY_1 = boxMaxY; - } - } - }); - } else { - minX_1 = 0; - maxX_1 = 0; - minY_1 = 0; - maxY_1 = 0; - } - bbox = createBBox(minX_1, minY_1, maxX_1 - minX_1, maxY_1 - minY_1); - } - if (clipBBox) { - return intersectBBox2(bbox, clipBBox); - } else { - return bbox; - } -} -function updateClip(element, newElement) { - if (!element.getClip() && !newElement.getClip()) { - return; - } - var newClipShape = newElement.getClip(); - if (!newClipShape) { - element.setClip(null); - return; - } - var clipCfg = { - type: newClipShape.get("type"), - attrs: newClipShape.attr() - }; - element.setClip(clipCfg); -} -function toPx(number) { - return number + "px"; -} -function getTextPoint(start, end2, position2, offset) { - var lineLength = distance5(start, end2); - var offsetPercent = offset / lineLength; - var percent2 = 0; - if (position2 === "start") { - percent2 = 0 - offsetPercent; - } else if (position2 === "end") { - percent2 = 1 + offsetPercent; - } - return { - x: getValueByPercent(start.x, end2.x, percent2), - y: getValueByPercent(start.y, end2.y, percent2) - }; -} - -// node_modules/@antv/component/esm/abstract/component.js -var LOCATION_FIELD_MAP = { - none: [], - point: ["x", "y"], - region: ["start", "end"], - points: ["points"], - circle: ["center", "radius", "startAngle", "endAngle"] -}; -var Component = function(_super) { - __extends(Component4, _super); - function Component4(cfg) { - var _this = _super.call(this, cfg) || this; - _this.initCfg(); - return _this; - } - Component4.prototype.getDefaultCfg = function() { - return { - id: "", - name: "", - type: "", - locationType: "none", - offsetX: 0, - offsetY: 0, - animate: false, - capture: true, - updateAutoRender: false, - animateOption: { - appear: null, - update: { - duration: 400, - easing: "easeQuadInOut" - }, - enter: { - duration: 400, - easing: "easeQuadInOut" - }, - leave: { - duration: 350, - easing: "easeQuadIn" - } - }, - events: null, - defaultCfg: {}, - visible: true - }; - }; - Component4.prototype.clear = function() { - }; - Component4.prototype.update = function(cfg) { - var _this = this; - var defaultCfg2 = this.get("defaultCfg") || {}; - each_default(cfg, function(value2, name) { - var originCfg = _this.get(name); - var newCfg = value2; - if (originCfg !== value2) { - if (is_object_default(value2) && defaultCfg2[name]) { - newCfg = deep_mix_default({}, defaultCfg2[name], value2); - } - _this.set(name, newCfg); - } - }); - this.updateInner(cfg); - this.afterUpdate(cfg); - }; - Component4.prototype.updateInner = function(cfg) { - }; - Component4.prototype.afterUpdate = function(cfg) { - if (has_key_default(cfg, "visible")) { - if (cfg.visible) { - this.show(); - } else { - this.hide(); - } - } - if (has_key_default(cfg, "capture")) { - this.setCapture(cfg.capture); - } - }; - Component4.prototype.getLayoutBBox = function() { - return this.getBBox(); - }; - Component4.prototype.getLocationType = function() { - return this.get("locationType"); - }; - Component4.prototype.getOffset = function() { - return { - offsetX: this.get("offsetX"), - offsetY: this.get("offsetY") - }; - }; - Component4.prototype.setOffset = function(offsetX, offsetY) { - this.update({ - offsetX, - offsetY - }); - }; - Component4.prototype.setLocation = function(cfg) { - var location = __assign({}, cfg); - this.update(location); - }; - Component4.prototype.getLocation = function() { - var _this = this; - var location = {}; - var locationType = this.get("locationType"); - var fields = LOCATION_FIELD_MAP[locationType]; - each_default(fields, function(field6) { - location[field6] = _this.get(field6); - }); - return location; - }; - Component4.prototype.isList = function() { - return false; - }; - Component4.prototype.isSlider = function() { - return false; - }; - Component4.prototype.init = function() { - }; - Component4.prototype.initCfg = function() { - var _this = this; - var defaultCfg2 = this.get("defaultCfg"); - each_default(defaultCfg2, function(value2, name) { - var cfg = _this.get(name); - if (is_object_default(cfg)) { - var newCfg = deep_mix_default({}, value2, cfg); - _this.set(name, newCfg); - } - }); - }; - return Component4; -}(base_default2); -var component_default = Component; - -// node_modules/@antv/component/esm/abstract/group-component.js -var STATUS_UPDATE = "update_status"; -var COPY_PROPERTIES = ["visible", "tip", "delegateObject"]; -var COPY_PROPERTIES_EXCLUDES = ["container", "group", "shapesMap", "isRegister", "isUpdating", "destroyed"]; -var GroupComponent = function(_super) { - __extends(GroupComponent2, _super); - function GroupComponent2() { - return _super !== null && _super.apply(this, arguments) || this; - } - GroupComponent2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { - container: null, - shapesMap: {}, - group: null, - capture: true, - isRegister: false, - isUpdating: false, - isInit: true - }); - }; - GroupComponent2.prototype.remove = function() { - this.clear(); - var group2 = this.get("group"); - group2.remove(); - }; - GroupComponent2.prototype.clear = function() { - var group2 = this.get("group"); - group2.clear(); - this.set("shapesMap", {}); - this.clearOffScreenCache(); - this.set("isInit", true); - }; - GroupComponent2.prototype.getChildComponentById = function(id) { - var group2 = this.getElementById(id); - var inst = group2 && group2.get("component"); - return inst; - }; - GroupComponent2.prototype.getElementById = function(id) { - return this.get("shapesMap")[id]; - }; - GroupComponent2.prototype.getElementByLocalId = function(localId) { - var id = this.getElementId(localId); - return this.getElementById(id); - }; - GroupComponent2.prototype.getElementsByName = function(name) { - var rst = []; - each_default(this.get("shapesMap"), function(elem) { - if (elem.get("name") === name) { - rst.push(elem); - } - }); - return rst; - }; - GroupComponent2.prototype.getContainer = function() { - return this.get("container"); - }; - GroupComponent2.prototype.updateInner = function(cfg) { - this.offScreenRender(); - if (this.get("updateAutoRender")) { - this.render(); - } - }; - GroupComponent2.prototype.render = function() { - var offScreenGroup = this.get("offScreenGroup"); - if (!offScreenGroup) { - offScreenGroup = this.offScreenRender(); - } - var group2 = this.get("group"); - this.updateElements(offScreenGroup, group2); - this.deleteElements(); - this.applyOffset(); - if (!this.get("eventInitted")) { - this.initEvent(); - this.set("eventInitted", true); - } - this.set("isInit", false); - }; - GroupComponent2.prototype.show = function() { - var group2 = this.get("group"); - group2.show(); - this.set("visible", true); - }; - GroupComponent2.prototype.hide = function() { - var group2 = this.get("group"); - group2.hide(); - this.set("visible", false); - }; - GroupComponent2.prototype.setCapture = function(capture) { - var group2 = this.get("group"); - group2.set("capture", capture); - this.set("capture", capture); - }; - GroupComponent2.prototype.destroy = function() { - this.removeEvent(); - this.remove(); - _super.prototype.destroy.call(this); - }; - GroupComponent2.prototype.getBBox = function() { - return this.get("group").getCanvasBBox(); - }; - GroupComponent2.prototype.getLayoutBBox = function() { - var group2 = this.get("group"); - var bbox = this.getInnerLayoutBBox(); - var matrix = group2.getTotalMatrix(); - if (matrix) { - bbox = applyMatrix2BBox(matrix, bbox); - } - return bbox; - }; - GroupComponent2.prototype.on = function(evt, callback, once) { - var group2 = this.get("group"); - group2.on(evt, callback, once); - return this; - }; - GroupComponent2.prototype.off = function(evt, callback) { - var group2 = this.get("group"); - group2 && group2.off(evt, callback); - return this; - }; - GroupComponent2.prototype.emit = function(eventName, eventObject) { - var group2 = this.get("group"); - group2.emit(eventName, eventObject); - }; - GroupComponent2.prototype.init = function() { - _super.prototype.init.call(this); - if (!this.get("group")) { - this.initGroup(); - } - this.offScreenRender(); - }; - GroupComponent2.prototype.getInnerLayoutBBox = function() { - return this.get("offScreenBBox") || this.get("group").getBBox(); - }; - GroupComponent2.prototype.delegateEmit = function(eventName, eventObject) { - var group2 = this.get("group"); - eventObject.target = group2; - group2.emit(eventName, eventObject); - propagationDelegate(group2, eventName, eventObject); - }; - GroupComponent2.prototype.createOffScreenGroup = function() { - var group2 = this.get("group"); - var GroupClass = group2.getGroupBase(); - var newGroup = new GroupClass({ - delegateObject: this.getDelegateObject() - }); - return newGroup; - }; - GroupComponent2.prototype.applyOffset = function() { - var offsetX = this.get("offsetX"); - var offsetY = this.get("offsetY"); - this.moveElementTo(this.get("group"), { - x: offsetX, - y: offsetY - }); - }; - GroupComponent2.prototype.initGroup = function() { - var container2 = this.get("container"); - this.set("group", container2.addGroup({ - id: this.get("id"), - name: this.get("name"), - capture: this.get("capture"), - visible: this.get("visible"), - isComponent: true, - component: this, - delegateObject: this.getDelegateObject() - })); - }; - GroupComponent2.prototype.offScreenRender = function() { - this.clearOffScreenCache(); - var offScreenGroup = this.createOffScreenGroup(); - this.renderInner(offScreenGroup); - this.set("offScreenGroup", offScreenGroup); - this.set("offScreenBBox", getBBoxWithClip(offScreenGroup)); - return offScreenGroup; - }; - GroupComponent2.prototype.addGroup = function(parent, cfg) { - this.appendDelegateObject(parent, cfg); - var group2 = parent.addGroup(cfg); - if (this.get("isRegister")) { - this.registerElement(group2); - } - return group2; - }; - GroupComponent2.prototype.addShape = function(parent, cfg) { - this.appendDelegateObject(parent, cfg); - var shape = parent.addShape(cfg); - if (this.get("isRegister")) { - this.registerElement(shape); - } - return shape; - }; - GroupComponent2.prototype.addComponent = function(parent, cfg) { - var id = cfg.id, Ctor = cfg.component, restCfg = __rest(cfg, ["id", "component"]); - var inst = new Ctor(__assign(__assign({}, restCfg), { id, container: parent, updateAutoRender: this.get("updateAutoRender") })); - inst.init(); - inst.render(); - if (this.get("isRegister")) { - this.registerElement(inst.get("group")); - } - return inst; - }; - GroupComponent2.prototype.initEvent = function() { - }; - GroupComponent2.prototype.removeEvent = function() { - var group2 = this.get("group"); - group2.off(); - }; - GroupComponent2.prototype.getElementId = function(localId) { - var id = this.get("id"); - var name = this.get("name"); - return id + "-" + name + "-" + localId; - }; - GroupComponent2.prototype.registerElement = function(element) { - var id = element.get("id"); - this.get("shapesMap")[id] = element; - }; - GroupComponent2.prototype.unregisterElement = function(element) { - var id = element.get("id"); - delete this.get("shapesMap")[id]; - }; - GroupComponent2.prototype.moveElementTo = function(element, point2) { - var matrix = getMatrixByTranslate(point2); - element.attr("matrix", matrix); - }; - GroupComponent2.prototype.addAnimation = function(elmentName, newElement, animateCfg) { - var originOpacity = newElement.attr("opacity"); - if (is_nil_default(originOpacity)) { - originOpacity = 1; - } - newElement.attr("opacity", 0); - newElement.animate({ opacity: originOpacity }, animateCfg); - }; - GroupComponent2.prototype.removeAnimation = function(elementName, originElement, animateCfg) { - originElement.animate({ opacity: 0 }, animateCfg); - }; - GroupComponent2.prototype.updateAnimation = function(elementName, originElement, newAttrs, animateCfg) { - originElement.animate(newAttrs, animateCfg); - }; - GroupComponent2.prototype.updateElements = function(newGroup, originGroup) { - var _this = this; - var animate = this.get("animate"); - var animateOption = this.get("animateOption"); - var children = newGroup.getChildren().slice(0); - var preElement; - each_default(children, function(element) { - var elementId = element.get("id"); - var originElement = _this.getElementById(elementId); - var elementName = element.get("name"); - if (originElement) { - if (element.get("isComponent")) { - var childComponent = element.get("component"); - var origChildComponent = originElement.get("component"); - var newCfg = pick_default(childComponent.cfg, difference_default(keys_default(childComponent.cfg), COPY_PROPERTIES_EXCLUDES)); - origChildComponent.update(newCfg); - originElement.set(STATUS_UPDATE, "update"); - } else { - var replaceAttrs = _this.getReplaceAttrs(originElement, element); - if (animate && animateOption.update) { - _this.updateAnimation(elementName, originElement, replaceAttrs, animateOption.update); - } else { - originElement.attr(replaceAttrs); - } - if (element.isGroup()) { - _this.updateElements(element, originElement); - } - each_default(COPY_PROPERTIES, function(name) { - originElement.set(name, element.get(name)); - }); - updateClip(originElement, element); - preElement = originElement; - originElement.set(STATUS_UPDATE, "update"); - } - } else { - originGroup.add(element); - var siblings = originGroup.getChildren(); - siblings.splice(siblings.length - 1, 1); - if (preElement) { - var index2 = siblings.indexOf(preElement); - siblings.splice(index2 + 1, 0, element); - } else { - siblings.unshift(element); - } - _this.registerElement(element); - element.set(STATUS_UPDATE, "add"); - if (element.get("isComponent")) { - var childComponent = element.get("component"); - childComponent.set("container", originGroup); - } else if (element.isGroup()) { - _this.registerNewGroup(element); - } - preElement = element; - if (animate) { - var animateCfg = _this.get("isInit") ? animateOption.appear : animateOption.enter; - if (animateCfg) { - _this.addAnimation(elementName, element, animateCfg); - } - } - } - }); - }; - GroupComponent2.prototype.clearUpdateStatus = function(group2) { - var children = group2.getChildren(); - each_default(children, function(el) { - el.set(STATUS_UPDATE, null); - }); - }; - GroupComponent2.prototype.clearOffScreenCache = function() { - var offScreenGroup = this.get("offScreenGroup"); - if (offScreenGroup) { - offScreenGroup.destroy(); - } - this.set("offScreenGroup", null); - this.set("offScreenBBox", null); - }; - GroupComponent2.prototype.getDelegateObject = function() { - var _a6; - var name = this.get("name"); - var delegateObject = (_a6 = {}, _a6[name] = this, _a6.component = this, _a6); - return delegateObject; - }; - GroupComponent2.prototype.appendDelegateObject = function(parent, cfg) { - var parentObject = parent.get("delegateObject"); - if (!cfg.delegateObject) { - cfg.delegateObject = {}; - } - mix(cfg.delegateObject, parentObject); - }; - GroupComponent2.prototype.getReplaceAttrs = function(originElement, newElement) { - var originAttrs = originElement.attr(); - var newAttrs = newElement.attr(); - each_default(originAttrs, function(v3, k4) { - if (newAttrs[k4] === void 0) { - newAttrs[k4] = void 0; - } - }); - return newAttrs; - }; - GroupComponent2.prototype.registerNewGroup = function(group2) { - var _this = this; - var children = group2.getChildren(); - each_default(children, function(element) { - _this.registerElement(element); - element.set(STATUS_UPDATE, "add"); - if (element.isGroup()) { - _this.registerNewGroup(element); - } - }); - }; - GroupComponent2.prototype.deleteElements = function() { - var _this = this; - var shapesMap = this.get("shapesMap"); - var deleteArray = []; - each_default(shapesMap, function(element, id) { - if (!element.get(STATUS_UPDATE) || element.destroyed) { - deleteArray.push([id, element]); - } else { - element.set(STATUS_UPDATE, null); - } - }); - var animate = this.get("animate"); - var animateOption = this.get("animateOption"); - each_default(deleteArray, function(item) { - var id = item[0], element = item[1]; - if (!element.destroyed) { - var elementName = element.get("name"); - if (animate && animateOption.leave) { - var callbackAnimCfg = mix({ - callback: function() { - _this.removeElement(element); - } - }, animateOption.leave); - _this.removeAnimation(elementName, element, callbackAnimCfg); - } else { - _this.removeElement(element); - } - } - delete shapesMap[id]; - }); - }; - GroupComponent2.prototype.removeElement = function(element) { - if (element.get("isGroup")) { - var component2 = element.get("component"); - if (component2) { - component2.destroy(); - } - } - element.remove(); - }; - return GroupComponent2; -}(component_default); -var group_component_default = GroupComponent; - -// node_modules/@antv/component/esm/util/text.js -var ELLIPSIS_CODE = "\u2026"; -function strLen(str8) { - var len5 = 0; - for (var i4 = 0; i4 < str8.length; i4++) { - len5 += charAtLength(str8, i4); - } - return len5; -} -function charAtLength(str8, i4) { - if (str8.charCodeAt(i4) > 0 && str8.charCodeAt(i4) < 128) { - return 1; - } else { - return 2; - } -} -function ellipsisString(str8, reseveLength, position2) { - if (position2 === void 0) { - position2 = "tail"; - } - var count2 = str8.length; - var rst = ""; - if (position2 === "tail") { - for (var i4 = 0, index2 = 0; i4 < reseveLength; ) { - var charLength = charAtLength(str8, index2); - if (i4 + charLength <= reseveLength) { - rst += str8[index2]; - i4 += charAtLength(str8, index2); - index2++; - } else { - break; - } - } - rst += ELLIPSIS_CODE; - } else if (position2 === "head") { - for (var i4 = 0, index2 = count2 - 1; i4 < reseveLength; ) { - var charLength = charAtLength(str8, index2); - if (i4 + charLength <= reseveLength) { - rst += str8[index2]; - i4 += charAtLength(str8, index2); - index2--; - } else { - break; - } - } - rst = ELLIPSIS_CODE + rst; - } else { - var startStr = ""; - var endStr = ""; - for (var i4 = 0, startIndex = 0, endIndex = count2 - 1; i4 < reseveLength; ) { - var startCodeLen = charAtLength(str8, startIndex); - var hasAdd = false; - if (startCodeLen + i4 <= reseveLength) { - startStr += str8[startIndex]; - startIndex++; - i4 += startCodeLen; - hasAdd = true; - } - var endCodeLen = charAtLength(str8, endIndex); - if (endCodeLen + i4 <= reseveLength) { - endStr = str8[endIndex] + endStr; - i4 += endCodeLen; - endIndex--; - hasAdd = true; - } - if (!hasAdd) { - break; - } - } - rst = startStr + ELLIPSIS_CODE + endStr; - } - return rst; -} - -// node_modules/@antv/component/esm/util/label.js -var ELLIPSIS_CODE2 = "\u2026"; -var ELLIPSIS_CODE_LENGTH = 2; -var OPTIMIZE_THRESHOLD = 400; -function getMaxLabelWidthOptimized(labels) { - var texts = labels.map(function(label17) { - var text = label17.attr("text"); - return is_nil_default(text) ? "" : "" + text; - }); - var maxLen = 0; - var maxIdx = 0; - for (var i4 = 0; i4 < texts.length; i4 += 1) { - var len5 = 0; - for (var j4 = 0; j4 <= texts[i4].length; j4 += 1) { - var code = texts[i4].charCodeAt(j4); - if (code >= 19968 && code <= 40869) { - len5 += 2; - } else { - len5 += 1; - } - } - if (len5 > maxLen) { - maxLen = len5; - maxIdx = i4; - } - } - return labels[maxIdx].getBBox().width; -} -function getMaxLabelWidth(labels) { - if (labels.length > OPTIMIZE_THRESHOLD) { - return getMaxLabelWidthOptimized(labels); - } - var max8 = 0; - each_default(labels, function(label17) { - var bbox = label17.getBBox(); - var width2 = bbox.width; - if (max8 < width2) { - max8 = width2; - } - }); - return max8; -} -function getLabelLength(isVertical2, label17) { - var bbox = label17.getCanvasBBox(); - return isVertical2 ? bbox.width : bbox.height; -} -function ellipsisLabel(isVertical2, label17, limitLength, position2) { - var _a6; - if (position2 === void 0) { - position2 = "tail"; - } - var text = (_a6 = label17.attr("text")) !== null && _a6 !== void 0 ? _a6 : ""; - if (position2 === "tail") { - var font = pick_default(label17.attr(), ["fontSize", "fontFamily", "fontWeight", "fontStyle", "fontVariant"]); - var ellipsisText = get_ellipsis_text_default(text, limitLength, font, "\u2026"); - if (text !== ellipsisText) { - label17.attr("text", ellipsisText); - label17.set("tip", text); - return true; - } - label17.set("tip", null); - return false; - } - var labelLength = getLabelLength(isVertical2, label17); - var codeLength = strLen(text); - var ellipsisFlag = false; - if (limitLength < labelLength) { - var reserveLength = Math.floor(limitLength / labelLength * codeLength) - ELLIPSIS_CODE_LENGTH; - var newText = void 0; - if (reserveLength >= 0) { - newText = ellipsisString(text, reserveLength, position2); - } else { - newText = ELLIPSIS_CODE2; - } - if (newText) { - label17.attr("text", newText); - ellipsisFlag = true; - } - } - if (ellipsisFlag) { - label17.set("tip", text); - } else { - label17.set("tip", null); - } - return ellipsisFlag; -} - -// node_modules/@antv/component/esm/util/graphic.js -function renderTag(container2, tagCfg) { - var x6 = tagCfg.x, y5 = tagCfg.y, content = tagCfg.content, style = tagCfg.style, id = tagCfg.id, name = tagCfg.name, rotate8 = tagCfg.rotate, maxLength = tagCfg.maxLength, autoEllipsis = tagCfg.autoEllipsis, isVertical2 = tagCfg.isVertical, ellipsisPosition = tagCfg.ellipsisPosition, background = tagCfg.background; - var tagGroup = container2.addGroup({ - id: id + "-group", - name: name + "-group", - attrs: { - x: x6, - y: y5 - } - }); - var text = tagGroup.addShape({ - type: "text", - id, - name, - attrs: __assign({ x: 0, y: 0, text: content }, style) - }); - var padding3 = formatPadding(get_default(background, "padding", 0)); - if (maxLength && autoEllipsis) { - var maxTextLength = maxLength - (padding3[1] + padding3[3]); - ellipsisLabel(!isVertical2, text, maxTextLength, ellipsisPosition); - } - if (background) { - var backgroundStyle = get_default(background, "style", {}); - var _a6 = text.getCanvasBBox(), minX = _a6.minX, minY = _a6.minY, width2 = _a6.width, height = _a6.height; - var tagBg = tagGroup.addShape("rect", { - id: id + "-bg", - name: id + "-bg", - attrs: __assign({ x: minX - padding3[3], y: minY - padding3[0], width: width2 + padding3[1] + padding3[3], height: height + padding3[0] + padding3[2] }, backgroundStyle) - }); - tagBg.toBack(); - } - applyTranslate(tagGroup, x6, y5); - applyRotate(tagGroup, rotate8, x6, y5); -} - -// node_modules/@antv/component/esm/util/theme.js -var theme_default = { - fontFamily: '\n BlinkMacSystemFont, "Segoe UI", Roboto,"Helvetica Neue",\n Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",\n SimSun, "sans-serif"', - textColor: "#2C3542", - activeTextColor: "#333333", - uncheckedColor: "#D8D8D8", - lineColor: "#416180", - regionColor: "#CCD7EB", - verticalAxisRotate: -Math.PI / 4, - horizontalAxisRotate: Math.PI / 4 -}; - -// node_modules/@antv/component/esm/annotation/line.js -var LineAnnotation = function(_super) { - __extends(LineAnnotation2, _super); - function LineAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - LineAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "line", locationType: "region", start: null, end: null, style: {}, text: null, defaultCfg: { - style: { - fill: theme_default.textColor, - fontSize: 12, - textAlign: "center", - textBaseline: "bottom", - fontFamily: theme_default.fontFamily - }, - text: { - position: "center", - autoRotate: true, - content: null, - offsetX: 0, - offsetY: 0, - style: { - stroke: theme_default.lineColor, - lineWidth: 1 - } - } - } }); - }; - LineAnnotation2.prototype.renderInner = function(group2) { - this.renderLine(group2); - if (this.get("text")) { - this.renderLabel(group2); - } - }; - LineAnnotation2.prototype.renderLine = function(group2) { - var start = this.get("start"); - var end2 = this.get("end"); - var style = this.get("style"); - this.addShape(group2, { - type: "line", - id: this.getElementId("line"), - name: "annotation-line", - attrs: __assign({ x1: start.x, y1: start.y, x2: end2.x, y2: end2.y }, style) - }); - }; - LineAnnotation2.prototype.getLabelPoint = function(start, end2, position2) { - var percent2; - if (position2 === "start") { - percent2 = 0; - } else if (position2 === "center") { - percent2 = 0.5; - } else if (is_string_default(position2) && position2.indexOf("%") !== -1) { - percent2 = parseInt(position2, 10) / 100; - } else if (is_number_default(position2)) { - percent2 = position2; - } else { - percent2 = 1; - } - if (percent2 > 1 || percent2 < 0) { - percent2 = 1; - } - return { - x: getValueByPercent(start.x, end2.x, percent2), - y: getValueByPercent(start.y, end2.y, percent2) - }; - }; - LineAnnotation2.prototype.renderLabel = function(group2) { - var text = this.get("text"); - var start = this.get("start"); - var end2 = this.get("end"); - var position2 = text.position, content = text.content, style = text.style, offsetX = text.offsetX, offsetY = text.offsetY, autoRotate = text.autoRotate, maxLength = text.maxLength, autoEllipsis = text.autoEllipsis, ellipsisPosition = text.ellipsisPosition, background = text.background, _a6 = text.isVertical, isVertical2 = _a6 === void 0 ? false : _a6; - var point2 = this.getLabelPoint(start, end2, position2); - var x6 = point2.x + offsetX; - var y5 = point2.y + offsetY; - var cfg = { - id: this.getElementId("line-text"), - name: "annotation-line-text", - x: x6, - y: y5, - content, - style, - maxLength, - autoEllipsis, - ellipsisPosition, - background, - isVertical: isVertical2 - }; - if (autoRotate) { - var vector = [end2.x - start.x, end2.y - start.y]; - cfg.rotate = Math.atan2(vector[1], vector[0]); - } - renderTag(group2, cfg); - }; - return LineAnnotation2; -}(group_component_default); -var line_default3 = LineAnnotation; - -// node_modules/@antv/component/esm/annotation/text.js -var TextAnnotation = function(_super) { - __extends(TextAnnotation2, _super); - function TextAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - TextAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "text", locationType: "point", x: 0, y: 0, content: "", rotate: null, style: {}, background: null, maxLength: null, autoEllipsis: true, isVertical: false, ellipsisPosition: "tail", defaultCfg: { - style: { - fill: theme_default.textColor, - fontSize: 12, - textAlign: "center", - textBaseline: "middle", - fontFamily: theme_default.fontFamily - } - } }); - }; - TextAnnotation2.prototype.setLocation = function(location) { - this.set("x", location.x); - this.set("y", location.y); - this.resetLocation(); - }; - TextAnnotation2.prototype.renderInner = function(group2) { - var _a6 = this.getLocation(), x6 = _a6.x, y5 = _a6.y; - var content = this.get("content"); - var style = this.get("style"); - var id = this.getElementId("text"); - var name = this.get("name") + "-text"; - var maxLength = this.get("maxLength"); - var autoEllipsis = this.get("autoEllipsis"); - var isVertical2 = this.get("isVertical"); - var ellipsisPosition = this.get("ellipsisPosition"); - var background = this.get("background"); - var rotate8 = this.get("rotate"); - var cfg = { - id, - name, - x: x6, - y: y5, - content, - style, - maxLength, - autoEllipsis, - isVertical: isVertical2, - ellipsisPosition, - background, - rotate: rotate8 - }; - renderTag(group2, cfg); - }; - TextAnnotation2.prototype.resetLocation = function() { - var textGroup = this.getElementByLocalId("text-group"); - if (textGroup) { - var _a6 = this.getLocation(), x6 = _a6.x, y5 = _a6.y; - var rotate8 = this.get("rotate"); - applyTranslate(textGroup, x6, y5); - applyRotate(textGroup, rotate8, x6, y5); - } - }; - return TextAnnotation2; -}(group_component_default); -var text_default2 = TextAnnotation; - -// node_modules/@antv/component/esm/annotation/arc.js -var ArcAnnotation = function(_super) { - __extends(ArcAnnotation2, _super); - function ArcAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ArcAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "arc", locationType: "circle", center: null, radius: 100, startAngle: -Math.PI / 2, endAngle: Math.PI * 3 / 2, style: { - stroke: "#999", - lineWidth: 1 - } }); - }; - ArcAnnotation2.prototype.renderInner = function(group2) { - this.renderArc(group2); - }; - ArcAnnotation2.prototype.getArcPath = function() { - var _a6 = this.getLocation(), center2 = _a6.center, radius = _a6.radius, startAngle = _a6.startAngle, endAngle = _a6.endAngle; - var startPoint = getCirclePoint(center2, radius, startAngle); - var endPoint = getCirclePoint(center2, radius, endAngle); - var largeFlag = endAngle - startAngle > Math.PI ? 1 : 0; - var path = [["M", startPoint.x, startPoint.y]]; - if (endAngle - startAngle === Math.PI * 2) { - var middlePoint = getCirclePoint(center2, radius, startAngle + Math.PI); - path.push(["A", radius, radius, 0, largeFlag, 1, middlePoint.x, middlePoint.y]); - path.push(["A", radius, radius, 0, largeFlag, 1, endPoint.x, endPoint.y]); - } else { - path.push(["A", radius, radius, 0, largeFlag, 1, endPoint.x, endPoint.y]); - } - return path; - }; - ArcAnnotation2.prototype.renderArc = function(group2) { - var path = this.getArcPath(); - var style = this.get("style"); - this.addShape(group2, { - type: "path", - id: this.getElementId("arc"), - name: "annotation-arc", - attrs: __assign({ path }, style) - }); - }; - return ArcAnnotation2; -}(group_component_default); -var arc_default2 = ArcAnnotation; - -// node_modules/@antv/component/esm/annotation/region.js -var RegionAnnotation = function(_super) { - __extends(RegionAnnotation2, _super); - function RegionAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - RegionAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "region", locationType: "region", start: null, end: null, style: {}, defaultCfg: { - style: { - lineWidth: 0, - fill: theme_default.regionColor, - opacity: 0.4 - } - } }); - }; - RegionAnnotation2.prototype.renderInner = function(group2) { - this.renderRegion(group2); - }; - RegionAnnotation2.prototype.renderRegion = function(group2) { - var start = this.get("start"); - var end2 = this.get("end"); - var style = this.get("style"); - var bbox = regionToBBox({ start, end: end2 }); - this.addShape(group2, { - type: "rect", - id: this.getElementId("region"), - name: "annotation-region", - attrs: __assign({ x: bbox.x, y: bbox.y, width: bbox.width, height: bbox.height }, style) - }); - }; - return RegionAnnotation2; -}(group_component_default); -var region_default = RegionAnnotation; - -// node_modules/@antv/component/esm/annotation/image.js -var ImageAnnotation = function(_super) { - __extends(ImageAnnotation2, _super); - function ImageAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ImageAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "image", locationType: "region", start: null, end: null, src: null, style: {} }); - }; - ImageAnnotation2.prototype.renderInner = function(group2) { - this.renderImage(group2); - }; - ImageAnnotation2.prototype.getImageAttrs = function() { - var start = this.get("start"); - var end2 = this.get("end"); - var style = this.get("style"); - var bbox = regionToBBox({ start, end: end2 }); - var src = this.get("src"); - return __assign({ x: bbox.x, y: bbox.y, img: src, width: bbox.width, height: bbox.height }, style); - }; - ImageAnnotation2.prototype.renderImage = function(group2) { - this.addShape(group2, { - type: "image", - id: this.getElementId("image"), - name: "annotation-image", - attrs: this.getImageAttrs() - }); - }; - return ImageAnnotation2; -}(group_component_default); -var image_default = ImageAnnotation; - -// node_modules/@antv/component/esm/annotation/data-marker.js -var DataMarkerAnnotation = function(_super) { - __extends(DataMarkerAnnotation2, _super); - function DataMarkerAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - DataMarkerAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "dataMarker", locationType: "point", x: 0, y: 0, point: {}, line: {}, text: {}, direction: "upward", autoAdjust: true, coordinateBBox: null, defaultCfg: { - point: { - display: true, - style: { - r: 3, - fill: "#FFFFFF", - stroke: "#1890FF", - lineWidth: 2 - } - }, - line: { - display: true, - length: 20, - style: { - stroke: theme_default.lineColor, - lineWidth: 1 - } - }, - text: { - content: "", - display: true, - style: { - fill: theme_default.textColor, - opacity: 0.65, - fontSize: 12, - textAlign: "start", - fontFamily: theme_default.fontFamily - } - } - } }); - }; - DataMarkerAnnotation2.prototype.renderInner = function(group2) { - if (get_default(this.get("line"), "display")) { - this.renderLine(group2); - } - if (get_default(this.get("text"), "display")) { - this.renderText(group2); - } - if (get_default(this.get("point"), "display")) { - this.renderPoint(group2); - } - if (this.get("autoAdjust")) { - this.autoAdjust(group2); - } - }; - DataMarkerAnnotation2.prototype.applyOffset = function() { - this.moveElementTo(this.get("group"), { - x: this.get("x") + this.get("offsetX"), - y: this.get("y") + this.get("offsetY") - }); - }; - DataMarkerAnnotation2.prototype.renderPoint = function(group2) { - var point2 = this.getShapeAttrs().point; - this.addShape(group2, { - type: "circle", - id: this.getElementId("point"), - name: "annotation-point", - attrs: point2 - }); - }; - DataMarkerAnnotation2.prototype.renderLine = function(group2) { - var line2 = this.getShapeAttrs().line; - this.addShape(group2, { - type: "path", - id: this.getElementId("line"), - name: "annotation-line", - attrs: line2 - }); - }; - DataMarkerAnnotation2.prototype.renderText = function(group2) { - var textAttrs = this.getShapeAttrs().text; - var x6 = textAttrs.x, y5 = textAttrs.y, text = textAttrs.text, style = __rest(textAttrs, ["x", "y", "text"]); - var _a6 = this.get("text"), background = _a6.background, maxLength = _a6.maxLength, autoEllipsis = _a6.autoEllipsis, isVertival = _a6.isVertival, ellipsisPosition = _a6.ellipsisPosition; - var tagCfg = { - x: x6, - y: y5, - id: this.getElementId("text"), - name: "annotation-text", - content: text, - style, - background, - maxLength, - autoEllipsis, - isVertival, - ellipsisPosition - }; - renderTag(group2, tagCfg); - }; - DataMarkerAnnotation2.prototype.autoAdjust = function(group2) { - var direction5 = this.get("direction"); - var x6 = this.get("x"); - var y5 = this.get("y"); - var lineLength = get_default(this.get("line"), "length", 0); - var coordinateBBox = this.get("coordinateBBox"); - var _a6 = group2.getBBox(), minX = _a6.minX, maxX = _a6.maxX, minY = _a6.minY, maxY2 = _a6.maxY; - var textGroup = group2.findById(this.getElementId("text-group")); - var textShape = group2.findById(this.getElementId("text")); - var lineShape = group2.findById(this.getElementId("line")); - if (!coordinateBBox) { - return; - } - if (textGroup) { - if (x6 + minX <= coordinateBBox.minX) { - var overflow = coordinateBBox.minX - (x6 + minX); - applyTranslate(textGroup, textGroup.attr("x") + overflow, textGroup.attr("y")); - } - if (x6 + maxX >= coordinateBBox.maxX) { - var overflow = x6 + maxX - coordinateBBox.maxX; - applyTranslate(textGroup, textGroup.attr("x") - overflow, textGroup.attr("y")); - } - } - if (direction5 === "upward" && y5 + minY <= coordinateBBox.minY || direction5 !== "upward" && y5 + maxY2 >= coordinateBBox.maxY) { - var textBaseline = void 0; - var factor = void 0; - if (direction5 === "upward" && y5 + minY <= coordinateBBox.minY) { - textBaseline = "top"; - factor = 1; - } else { - textBaseline = "bottom"; - factor = -1; - } - textShape.attr("textBaseline", textBaseline); - if (lineShape) { - lineShape.attr("path", [ - ["M", 0, 0], - ["L", 0, lineLength * factor] - ]); - } - applyTranslate(textGroup, textGroup.attr("x"), (lineLength + 2) * factor); - } - }; - DataMarkerAnnotation2.prototype.getShapeAttrs = function() { - var lineDisplay = get_default(this.get("line"), "display"); - var pointStyle = get_default(this.get("point"), "style", {}); - var lineStyle = get_default(this.get("line"), "style", {}); - var textStyle2 = get_default(this.get("text"), "style", {}); - var direction5 = this.get("direction"); - var lineLength = lineDisplay ? get_default(this.get("line"), "length", 0) : 0; - var factor = direction5 === "upward" ? -1 : 1; - return { - point: __assign({ x: 0, y: 0 }, pointStyle), - line: __assign({ path: [ - ["M", 0, 0], - ["L", 0, lineLength * factor] - ] }, lineStyle), - text: __assign({ x: 0, y: (lineLength + 2) * factor, text: get_default(this.get("text"), "content", ""), textBaseline: direction5 === "upward" ? "bottom" : "top" }, textStyle2) - }; - }; - return DataMarkerAnnotation2; -}(group_component_default); -var data_marker_default = DataMarkerAnnotation; - -// node_modules/@antv/component/esm/annotation/data-region.js -var DataRegionAnnotation = function(_super) { - __extends(DataRegionAnnotation2, _super); - function DataRegionAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - DataRegionAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "dataRegion", locationType: "points", points: [], lineLength: 0, region: {}, text: {}, defaultCfg: { - region: { - style: { - lineWidth: 0, - fill: theme_default.regionColor, - opacity: 0.4 - } - }, - text: { - content: "", - style: { - textAlign: "center", - textBaseline: "bottom", - fontSize: 12, - fill: theme_default.textColor, - fontFamily: theme_default.fontFamily - } - } - } }); - }; - DataRegionAnnotation2.prototype.renderInner = function(group2) { - var regionStyle = get_default(this.get("region"), "style", {}); - var textStyle2 = get_default(this.get("text"), "style", {}); - var lineLength = this.get("lineLength") || 0; - var points = this.get("points"); - if (!points.length) { - return; - } - var bbox = pointsToBBox(points); - var path = []; - path.push(["M", points[0].x, bbox.minY - lineLength]); - points.forEach(function(point2) { - path.push(["L", point2.x, point2.y]); - }); - path.push(["L", points[points.length - 1].x, points[points.length - 1].y - lineLength]); - this.addShape(group2, { - type: "path", - id: this.getElementId("region"), - name: "annotation-region", - attrs: __assign({ path }, regionStyle) - }); - var textCfg = __assign({ id: this.getElementId("text"), name: "annotation-text", x: (bbox.minX + bbox.maxX) / 2, y: bbox.minY - lineLength }, this.get("text")); - renderTag(group2, textCfg); - }; - return DataRegionAnnotation2; -}(group_component_default); -var data_region_default = DataRegionAnnotation; - -// node_modules/@antv/component/esm/annotation/region-filter.js -var RegionFilterAnnotation = function(_super) { - __extends(RegionFilterAnnotation2, _super); - function RegionFilterAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - RegionFilterAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "regionFilter", locationType: "region", start: null, end: null, color: null, shape: [] }); - }; - RegionFilterAnnotation2.prototype.renderInner = function(group2) { - var _this = this; - var start = this.get("start"); - var end2 = this.get("end"); - var layer = this.addGroup(group2, { - id: this.getElementId("region-filter"), - capture: false - }); - each_default(this.get("shapes"), function(shape, shapeIdx) { - var type2 = shape.get("type"); - var attrs = clone_default(shape.attr()); - _this.adjustShapeAttrs(attrs); - _this.addShape(layer, { - id: _this.getElementId("shape-" + type2 + "-" + shapeIdx), - capture: false, - type: type2, - attrs - }); - }); - var clipBBox = regionToBBox({ start, end: end2 }); - layer.setClip({ - type: "rect", - attrs: { - x: clipBBox.minX, - y: clipBBox.minY, - width: clipBBox.width, - height: clipBBox.height - } - }); - }; - RegionFilterAnnotation2.prototype.adjustShapeAttrs = function(attr) { - var color4 = this.get("color"); - if (attr.fill) { - attr.fill = attr.fillStyle = color4; - } - attr.stroke = attr.strokeStyle = color4; - }; - return RegionFilterAnnotation2; -}(group_component_default); -var region_filter_default = RegionFilterAnnotation; - -// node_modules/@antv/component/esm/annotation/shape.js -var ShapeAnnotation = function(_super) { - __extends(ShapeAnnotation2, _super); - function ShapeAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ShapeAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "shape", draw: noop_default }); - }; - ShapeAnnotation2.prototype.renderInner = function(group2) { - var render = this.get("render"); - if (is_function_default(render)) { - render(group2); - } - }; - return ShapeAnnotation2; -}(group_component_default); -var shape_default3 = ShapeAnnotation; - -// node_modules/@antv/component/esm/abstract/html-component.js -var HtmlComponent = function(_super) { - __extends(HtmlComponent2, _super); - function HtmlComponent2() { - return _super !== null && _super.apply(this, arguments) || this; - } - HtmlComponent2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { container: null, containerTpl: "
", updateAutoRender: true, containerClassName: "", parent: null }); - }; - HtmlComponent2.prototype.getContainer = function() { - return this.get("container"); - }; - HtmlComponent2.prototype.show = function() { - var container2 = this.get("container"); - container2.style.display = ""; - this.set("visible", true); - }; - HtmlComponent2.prototype.hide = function() { - var container2 = this.get("container"); - container2.style.display = "none"; - this.set("visible", false); - }; - HtmlComponent2.prototype.setCapture = function(capture) { - var container2 = this.getContainer(); - var value2 = capture ? "auto" : "none"; - container2.style.pointerEvents = value2; - this.set("capture", capture); - }; - HtmlComponent2.prototype.getBBox = function() { - var container2 = this.getContainer(); - var x6 = parseFloat(container2.style.left) || 0; - var y5 = parseFloat(container2.style.top) || 0; - return createBBox(x6, y5, container2.clientWidth, container2.clientHeight); - }; - HtmlComponent2.prototype.clear = function() { - var container2 = this.get("container"); - clearDom(container2); - }; - HtmlComponent2.prototype.destroy = function() { - this.removeEvent(); - this.removeDom(); - _super.prototype.destroy.call(this); - }; - HtmlComponent2.prototype.init = function() { - _super.prototype.init.call(this); - this.initContainer(); - this.initDom(); - this.resetStyles(); - this.applyStyles(); - this.initEvent(); - this.initCapture(); - this.initVisible(); - }; - HtmlComponent2.prototype.initCapture = function() { - this.setCapture(this.get("capture")); - }; - HtmlComponent2.prototype.initVisible = function() { - if (!this.get("visible")) { - this.hide(); - } else { - this.show(); - } - }; - HtmlComponent2.prototype.initDom = function() { - }; - HtmlComponent2.prototype.initContainer = function() { - var container2 = this.get("container"); - if (is_nil_default(container2)) { - container2 = this.createDom(); - var parent_1 = this.get("parent"); - if (is_string_default(parent_1)) { - parent_1 = document.getElementById(parent_1); - this.set("parent", parent_1); - } - parent_1.appendChild(container2); - this.set("container", container2); - } else if (is_string_default(container2)) { - container2 = document.getElementById(container2); - this.set("container", container2); - } - if (!this.get("parent")) { - this.set("parent", container2.parentNode); - } - }; - HtmlComponent2.prototype.resetStyles = function() { - var style = this.get("domStyles"); - var defaultStyles = this.get("defaultStyles"); - if (!style) { - style = defaultStyles; - } else { - style = deep_mix_default({}, defaultStyles, style); - } - this.set("domStyles", style); - }; - HtmlComponent2.prototype.applyStyles = function() { - var domStyles = this.get("domStyles"); - if (!domStyles) { - return; - } - var container2 = this.getContainer(); - this.applyChildrenStyles(container2, domStyles); - var containerClassName = this.get("containerClassName"); - if (containerClassName && hasClass(container2, containerClassName)) { - var containerCss = domStyles[containerClassName]; - modifyCSS(container2, containerCss); - } - }; - HtmlComponent2.prototype.applyChildrenStyles = function(element, styles) { - each_default(styles, function(style, name) { - var elements = element.getElementsByClassName(name); - each_default(elements, function(el) { - modifyCSS(el, style); - }); - }); - }; - HtmlComponent2.prototype.applyStyle = function(cssName, dom) { - var domStyles = this.get("domStyles"); - modifyCSS(dom, domStyles[cssName]); - }; - HtmlComponent2.prototype.createDom = function() { - var containerTpl = this.get("containerTpl"); - return createDom(containerTpl); - }; - HtmlComponent2.prototype.initEvent = function() { - }; - HtmlComponent2.prototype.removeDom = function() { - var container2 = this.get("container"); - container2 && container2.parentNode && container2.parentNode.removeChild(container2); - }; - HtmlComponent2.prototype.removeEvent = function() { - }; - HtmlComponent2.prototype.updateInner = function(cfg) { - if (has_key_default(cfg, "domStyles")) { - this.resetStyles(); - this.applyStyles(); - } - this.resetPosition(); - }; - HtmlComponent2.prototype.resetPosition = function() { - }; - ; - return HtmlComponent2; -}(component_default); -var html_component_default = HtmlComponent; - -// node_modules/@antv/component/esm/annotation/html.js -var HtmlAnnotation = function(_super) { - __extends(HtmlAnnotation2, _super); - function HtmlAnnotation2() { - return _super !== null && _super.apply(this, arguments) || this; - } - HtmlAnnotation2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "annotation", type: "html", locationType: "point", x: 0, y: 0, containerTpl: '
', alignX: "left", alignY: "top", html: "", zIndex: 7 }); - }; - HtmlAnnotation2.prototype.render = function() { - var container2 = this.getContainer(); - var html = this.get("html"); - clearDom(container2); - var rst = is_function_default(html) ? html(container2) : html; - if (is_element_default(rst)) { - container2.appendChild(rst); - } else if (is_string_default(rst)) { - container2.appendChild(createDom(rst)); - } - this.resetPosition(); - }; - HtmlAnnotation2.prototype.resetPosition = function() { - var container2 = this.getContainer(); - var _a6 = this.getLocation(), x6 = _a6.x, y5 = _a6.y; - var alignX = this.get("alignX"); - var alignY = this.get("alignY"); - var offsetX = this.get("offsetX"); - var offsetY = this.get("offsetY"); - var domWidth = getOuterWidth(container2); - var domHeight = getOuterHeight(container2); - var position2 = { - x: x6, - y: y5 - }; - if (alignX === "middle") { - position2.x -= Math.round(domWidth / 2); - } else if (alignX === "right") { - position2.x -= Math.round(domWidth); - } - if (alignY === "middle") { - position2.y -= Math.round(domHeight / 2); - } else if (alignY === "bottom") { - position2.y -= Math.round(domHeight); - } - if (offsetX) { - position2.x += offsetX; - } - if (offsetY) { - position2.y += offsetY; - } - modifyCSS(container2, { - position: "absolute", - left: position2.x + "px", - top: position2.y + "px", - zIndex: this.get("zIndex") - }); - }; - return HtmlAnnotation2; -}(html_component_default); -var html_default = HtmlAnnotation; - -// node_modules/@antv/component/esm/axis/index.js -var axis_exports = {}; -__export(axis_exports, { - Base: () => base_default8, - Circle: () => circle_default2, - Line: () => line_default4 -}); - -// node_modules/@antv/component/esm/util/state.js -function getStatesStyle(item, elementName, stateStyles) { - var styleName = elementName + "Style"; - var styles = null; - each_default(stateStyles, function(v3, state2) { - if (item[state2] && v3[styleName]) { - if (!styles) { - styles = {}; - } - mix(styles, v3[styleName]); - } - }); - return styles; -} - -// node_modules/@antv/component/esm/axis/base.js -var AxisBase = function(_super) { - __extends(AxisBase2, _super); - function AxisBase2() { - return _super !== null && _super.apply(this, arguments) || this; - } - AxisBase2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { - name: "axis", - ticks: [], - line: {}, - tickLine: {}, - subTickLine: null, - title: null, - label: {}, - verticalFactor: 1, - verticalLimitLength: null, - overlapOrder: ["autoRotate", "autoEllipsis", "autoHide"], - tickStates: {}, - optimize: {}, - defaultCfg: { - line: { - style: { - lineWidth: 1, - stroke: theme_default.lineColor - } - }, - tickLine: { - style: { - lineWidth: 1, - stroke: theme_default.lineColor - }, - alignTick: true, - length: 5, - displayWithLabel: true - }, - subTickLine: { - style: { - lineWidth: 1, - stroke: theme_default.lineColor - }, - count: 4, - length: 2 - }, - label: { - autoRotate: true, - autoHide: false, - autoEllipsis: false, - style: { - fontSize: 12, - fill: theme_default.textColor, - fontFamily: theme_default.fontFamily, - fontWeight: "normal" - }, - offset: 10, - offsetX: 0, - offsetY: 0 - }, - title: { - autoRotate: true, - spacing: 5, - position: "center", - style: { - fontSize: 12, - fill: theme_default.textColor, - textBaseline: "middle", - fontFamily: theme_default.fontFamily, - textAlign: "center" - } - }, - tickStates: { - active: { - labelStyle: { - fontWeight: 500 - }, - tickLineStyle: { - lineWidth: 2 - } - }, - inactive: { - labelStyle: { - fill: theme_default.uncheckedColor - } - } - }, - optimize: { - enable: true, - threshold: 400 - } - }, - theme: {} - }); - }; - AxisBase2.prototype.renderInner = function(group2) { - if (this.get("line")) { - this.drawLine(group2); - } - this.drawTicks(group2); - if (this.get("title")) { - this.drawTitle(group2); - } - }; - AxisBase2.prototype.isList = function() { - return true; - }; - AxisBase2.prototype.getItems = function() { - return this.get("ticks"); - }; - AxisBase2.prototype.setItems = function(items) { - this.update({ - ticks: items - }); - }; - AxisBase2.prototype.updateItem = function(item, cfg) { - mix(item, cfg); - this.clear(); - this.render(); - }; - AxisBase2.prototype.clearItems = function() { - var itemGroup = this.getElementByLocalId("label-group"); - itemGroup && itemGroup.clear(); - }; - AxisBase2.prototype.setItemState = function(item, state2, value2) { - item[state2] = value2; - this.updateTickStates(item); - }; - AxisBase2.prototype.hasState = function(item, state2) { - return !!item[state2]; - }; - AxisBase2.prototype.getItemStates = function(item) { - var tickStates = this.get("tickStates"); - var rst = []; - each_default(tickStates, function(v3, k4) { - if (item[k4]) { - rst.push(k4); - } - }); - return rst; - }; - AxisBase2.prototype.clearItemsState = function(state2) { - var _this = this; - var items = this.getItemsByState(state2); - each_default(items, function(item) { - _this.setItemState(item, state2, false); - }); - }; - AxisBase2.prototype.getItemsByState = function(state2) { - var _this = this; - var items = this.getItems(); - return filter_default(items, function(item) { - return _this.hasState(item, state2); - }); - }; - AxisBase2.prototype.getSidePoint = function(point2, offset) { - var self2 = this; - var vector = self2.getSideVector(offset, point2); - return { - x: point2.x + vector[0], - y: point2.y + vector[1] - }; - }; - AxisBase2.prototype.getTextAnchor = function(vector) { - var align; - if (isNumberEqual(vector[0], 0)) { - align = "center"; - } else if (vector[0] > 0) { - align = "start"; - } else if (vector[0] < 0) { - align = "end"; - } - return align; - }; - AxisBase2.prototype.getTextBaseline = function(vector) { - var base; - if (isNumberEqual(vector[1], 0)) { - base = "middle"; - } else if (vector[1] > 0) { - base = "top"; - } else if (vector[1] < 0) { - base = "bottom"; - } - return base; - }; - AxisBase2.prototype.processOverlap = function(labelGroup) { - }; - AxisBase2.prototype.drawLine = function(group2) { - var path = this.getLinePath(); - var line2 = this.get("line"); - this.addShape(group2, { - type: "path", - id: this.getElementId("line"), - name: "axis-line", - attrs: mix({ - path - }, line2.style) - }); - }; - AxisBase2.prototype.getTickLineItems = function(ticks) { - var _this = this; - var tickLineItems = []; - var tickLine = this.get("tickLine"); - var alignTick = tickLine.alignTick; - var tickLineLength = tickLine.length; - var tickSegment = 1; - var tickCount = ticks.length; - if (tickCount >= 2) { - tickSegment = ticks[1].value - ticks[0].value; - } - each_default(ticks, function(tick) { - var point2 = tick.point; - if (!alignTick) { - point2 = _this.getTickPoint(tick.value - tickSegment / 2); - } - var endPoint = _this.getSidePoint(point2, tickLineLength); - tickLineItems.push({ - startPoint: point2, - tickValue: tick.value, - endPoint, - tickId: tick.id, - id: "tickline-" + tick.id - }); - }); - return tickLineItems; - }; - AxisBase2.prototype.getSubTickLineItems = function(tickLineItems) { - var subTickLineItems = []; - var subTickLine = this.get("subTickLine"); - var subCount = subTickLine.count; - var tickLineCount = tickLineItems.length; - if (tickLineCount >= 2) { - for (var i4 = 0; i4 < tickLineCount - 1; i4++) { - var pre = tickLineItems[i4]; - var next = tickLineItems[i4 + 1]; - for (var j4 = 0; j4 < subCount; j4++) { - var percent2 = (j4 + 1) / (subCount + 1); - var tickValue = (1 - percent2) * pre.tickValue + percent2 * next.tickValue; - var point2 = this.getTickPoint(tickValue); - var endPoint = this.getSidePoint(point2, subTickLine.length); - subTickLineItems.push({ - startPoint: point2, - endPoint, - tickValue, - id: "sub-" + pre.id + "-" + j4 - }); - } - } - } - return subTickLineItems; - }; - AxisBase2.prototype.getTickLineAttrs = function(tickItem, type2, index2, tickItems) { - var style = this.get(type2).style; - var item = { - points: [tickItem.startPoint, tickItem.endPoint] - }; - var defaultTickLineStyle = get_default(this.get("theme"), ["tickLine", "style"], {}); - style = is_function_default(style) ? mix({}, defaultTickLineStyle, style(item, index2, tickItems)) : style; - var startPoint = tickItem.startPoint, endPoint = tickItem.endPoint; - return __assign({ x1: startPoint.x, y1: startPoint.y, x2: endPoint.x, y2: endPoint.y }, style); - }; - AxisBase2.prototype.drawTick = function(tickItem, tickLineGroup, type2, index2, tickItems) { - this.addShape(tickLineGroup, { - type: "line", - id: this.getElementId(tickItem.id), - name: "axis-" + type2, - attrs: this.getTickLineAttrs(tickItem, type2, index2, tickItems) - }); - }; - AxisBase2.prototype.drawTickLines = function(group2) { - var _this = this; - var ticks = this.get("ticks"); - var subTickLine = this.get("subTickLine"); - var tickLineItems = this.getTickLineItems(ticks); - var tickLineGroup = this.addGroup(group2, { - name: "axis-tickline-group", - id: this.getElementId("tickline-group") - }); - var tickCfg = this.get("tickLine"); - each_default(tickLineItems, function(item, index2) { - if (tickCfg.displayWithLabel) { - var labelId = _this.getElementId("label-" + item.tickId); - if (group2.findById(labelId)) { - _this.drawTick(item, tickLineGroup, "tickLine", index2, tickLineItems); - } - } else { - _this.drawTick(item, tickLineGroup, "tickLine", index2, tickLineItems); - } - }); - if (subTickLine) { - var subTickLineItems_1 = this.getSubTickLineItems(tickLineItems); - each_default(subTickLineItems_1, function(item, index2) { - _this.drawTick(item, tickLineGroup, "subTickLine", index2, subTickLineItems_1); - }); - } - }; - AxisBase2.prototype.processTicks = function() { - var _this = this; - var ticks = this.get("ticks"); - each_default(ticks, function(tick) { - tick.point = _this.getTickPoint(tick.value); - if (is_nil_default(tick.id)) { - tick.id = tick.name; - } - }); - }; - AxisBase2.prototype.drawTicks = function(group2) { - var _this = this; - this.optimizeTicks(); - this.processTicks(); - if (this.get("label")) { - this.drawLabels(group2); - } - if (this.get("tickLine")) { - this.drawTickLines(group2); - } - var ticks = this.get("ticks"); - each_default(ticks, function(tick) { - _this.applyTickStates(tick, group2); - }); - }; - AxisBase2.prototype.optimizeTicks = function() { - var optimize = this.get("optimize"); - var ticks = this.get("ticks"); - if (optimize && optimize.enable && optimize.threshold > 0) { - var len5 = size(ticks); - if (len5 > optimize.threshold) { - var page_1 = Math.ceil(len5 / optimize.threshold); - var optimizedTicks = ticks.filter(function(tick, idx) { - return idx % page_1 === 0; - }); - this.set("ticks", optimizedTicks); - this.set("originalTicks", ticks); - } - } - }; - AxisBase2.prototype.getLabelAttrs = function(tick, index2, ticks) { - var labelCfg = this.get("label"); - var offset = labelCfg.offset, offsetX = labelCfg.offsetX, offsetY = labelCfg.offsetY, rotate8 = labelCfg.rotate, formatter = labelCfg.formatter; - var point2 = this.getSidePoint(tick.point, offset); - var vector = this.getSideVector(offset, point2); - var text = formatter ? formatter(tick.name, tick, index2) : tick.name; - var style = labelCfg.style; - style = is_function_default(style) ? get_default(this.get("theme"), ["label", "style"], {}) : style; - var attrs = mix({ - x: point2.x + offsetX, - y: point2.y + offsetY, - text, - textAlign: this.getTextAnchor(vector), - textBaseline: this.getTextBaseline(vector) - }, style); - if (rotate8) { - attrs.matrix = getMatrixByAngle(point2, rotate8); - } - return attrs; - }; - AxisBase2.prototype.drawLabels = function(group2) { - var _this = this; - var ticks = this.get("ticks"); - var labelGroup = this.addGroup(group2, { - name: "axis-label-group", - id: this.getElementId("label-group") - }); - each_default(ticks, function(tick, index2) { - _this.addShape(labelGroup, { - type: "text", - name: "axis-label", - id: _this.getElementId("label-" + tick.id), - attrs: _this.getLabelAttrs(tick, index2, ticks), - delegateObject: { - tick, - item: tick, - index: index2 - } - }); - }); - this.processOverlap(labelGroup); - var labels = labelGroup.getChildren(); - var defaultLabelStyle3 = get_default(this.get("theme"), ["label", "style"], {}); - var _a6 = this.get("label"), style = _a6.style, formatter = _a6.formatter; - if (is_function_default(style)) { - var afterProcessTicks_1 = labels.map(function(label17) { - return get_default(label17.get("delegateObject"), "tick"); - }); - each_default(labels, function(label17, index2) { - var tick = label17.get("delegateObject").tick; - var text = formatter ? formatter(tick.name, tick, index2) : tick.name; - var newStyle = mix({}, defaultLabelStyle3, style(text, index2, afterProcessTicks_1)); - label17.attr(newStyle); - }); - } - }; - AxisBase2.prototype.getTitleAttrs = function() { - var titleCfg = this.get("title"); - var style = titleCfg.style, position2 = titleCfg.position, offset = titleCfg.offset, _a6 = titleCfg.spacing, spacing = _a6 === void 0 ? 0 : _a6, autoRotate = titleCfg.autoRotate; - var titleHeight = style.fontSize; - var percent2 = 0.5; - if (position2 === "start") { - percent2 = 0; - } else if (position2 === "end") { - percent2 = 1; - } - var point2 = this.getTickPoint(percent2); - var titlePoint = this.getSidePoint(point2, offset || spacing + titleHeight / 2); - var attrs = mix({ - x: titlePoint.x, - y: titlePoint.y, - text: titleCfg.text - }, style); - var rotate8 = titleCfg.rotate; - var angle3 = rotate8; - if (is_nil_default(rotate8) && autoRotate) { - var vector = this.getAxisVector(point2); - var v1 = [1, 0]; - angle3 = ext_exports.angleTo(vector, v1, true); - } - if (angle3) { - var matrix = getMatrixByAngle(titlePoint, angle3); - attrs.matrix = matrix; - } - return attrs; - }; - AxisBase2.prototype.drawTitle = function(group2) { - this.addShape(group2, { - type: "text", - id: this.getElementId("title"), - name: "axis-title", - attrs: this.getTitleAttrs() - }); - }; - AxisBase2.prototype.applyTickStates = function(tick, group2) { - var states = this.getItemStates(tick); - if (states.length) { - var tickStates = this.get("tickStates"); - var labelId = this.getElementId("label-" + tick.id); - var labelShape = group2.findById(labelId); - if (labelShape) { - var labelStateStyle = getStatesStyle(tick, "label", tickStates); - labelStateStyle && labelShape.attr(labelStateStyle); - } - var tickLineId = this.getElementId("tickline-" + tick.id); - var tickLineShape = group2.findById(tickLineId); - if (tickLineShape) { - var tickLineStateStyle = getStatesStyle(tick, "tickLine", tickStates); - tickLineStateStyle && tickLineShape.attr(tickLineStateStyle); - } - } - }; - AxisBase2.prototype.updateTickStates = function(tick) { - var states = this.getItemStates(tick); - var tickStates = this.get("tickStates"); - var labelCfg = this.get("label"); - var labelShape = this.getElementByLocalId("label-" + tick.id); - var tickLineCfg = this.get("tickLine"); - var tickLineShape = this.getElementByLocalId("tickline-" + tick.id); - if (states.length) { - if (labelShape) { - var labelStateStyle = getStatesStyle(tick, "label", tickStates); - labelStateStyle && labelShape.attr(labelStateStyle); - } - if (tickLineShape) { - var tickLineStateStyle = getStatesStyle(tick, "tickLine", tickStates); - tickLineStateStyle && tickLineShape.attr(tickLineStateStyle); - } - } else { - if (labelShape) { - labelShape.attr(labelCfg.style); - } - if (tickLineShape) { - tickLineShape.attr(tickLineCfg.style); - } - } - }; - return AxisBase2; -}(group_component_default); -var base_default8 = AxisBase; - -// node_modules/@antv/component/esm/axis/overlap/index.js -var overlap_exports = {}; -__export(overlap_exports, { - autoEllipsis: () => auto_ellipsis_exports, - autoHide: () => auto_hide_exports, - autoRotate: () => auto_rotate_exports -}); - -// node_modules/@antv/component/esm/axis/overlap/auto-ellipsis.js -var auto_ellipsis_exports = {}; -__export(auto_ellipsis_exports, { - ellipsisHead: () => ellipsisHead, - ellipsisMiddle: () => ellipsisMiddle, - ellipsisTail: () => ellipsisTail, - getDefault: () => getDefault -}); -function ellipseLabels(isVertical2, labelGroup, limitLength, position2) { - var children = labelGroup.getChildren(); - var ellipsisFlag = false; - each_default(children, function(label17) { - var rst = ellipsisLabel(isVertical2, label17, limitLength, position2); - ellipsisFlag = ellipsisFlag || rst; - }); - return ellipsisFlag; -} -function getDefault() { - return ellipsisTail; -} -function ellipsisHead(isVertical2, labelGroup, limitLength) { - return ellipseLabels(isVertical2, labelGroup, limitLength, "head"); -} -function ellipsisTail(isVertical2, labelGroup, limitLength) { - return ellipseLabels(isVertical2, labelGroup, limitLength, "tail"); -} -function ellipsisMiddle(isVertical2, labelGroup, limitLength) { - return ellipseLabels(isVertical2, labelGroup, limitLength, "middle"); -} - -// node_modules/@antv/component/esm/axis/overlap/auto-hide.js -var auto_hide_exports = {}; -__export(auto_hide_exports, { - equidistance: () => equidistance, - equidistanceWithReverseBoth: () => equidistanceWithReverseBoth, - getDefault: () => getDefault2, - reserveBoth: () => reserveBoth, - reserveFirst: () => reserveFirst, - reserveLast: () => reserveLast -}); -function isRotate(label17) { - var matrix = label17.attr("matrix"); - return matrix && matrix[0] !== 1; -} -function getRotateAngle(label17) { - var angle3 = isRotate(label17) ? getAngleByMatrix(label17.attr("matrix")) : 0; - return angle3 % 360; -} -function isOverlap(isVertical2, first, second, minGap) { - var overlap2 = false; - var angle3 = getRotateAngle(first); - var distance15 = isVertical2 ? Math.abs(second.attr("y") - first.attr("y")) : Math.abs(second.attr("x") - first.attr("x")); - var prevBBox = (isVertical2 ? second.attr("y") > first.attr("y") : second.attr("x") > first.attr("x")) ? first.getBBox() : second.getBBox(); - if (isVertical2) { - var ratio = Math.abs(Math.cos(angle3)); - if (near(ratio, 0, Math.PI / 180)) { - overlap2 = prevBBox.width + minGap > distance15; - } else { - overlap2 = prevBBox.height / ratio + minGap > distance15; - } - } else { - var ratio = Math.abs(Math.sin(angle3)); - if (near(ratio, 0, Math.PI / 180)) { - overlap2 = prevBBox.width + minGap > distance15; - } else { - overlap2 = prevBBox.height / ratio + minGap > distance15; - } - } - return overlap2; -} -function reserveOne(isVertical2, labelsGroup, reversed, autoHideCfg) { - var minGap = (autoHideCfg === null || autoHideCfg === void 0 ? void 0 : autoHideCfg.minGap) || 0; - var labels = labelsGroup.getChildren().slice().filter(function(item) { - return item.get("visible"); - }); - if (!labels.length) { - return false; - } - var hasHide = false; - if (reversed) { - labels.reverse(); - } - var count2 = labels.length; - var first = labels[0]; - var prev = first; - for (var i4 = 1; i4 < count2; i4++) { - var label17 = labels[i4]; - var curBBox = label17.getBBox(); - var isHide = isOverlap(isVertical2, prev, label17, minGap); - if (isHide) { - label17.hide(); - hasHide = true; - } else { - prev = label17; - } - } - return hasHide; -} -function parityHide(isVertical2, labelsGroup, autoHideCfg) { - var minGap = (autoHideCfg === null || autoHideCfg === void 0 ? void 0 : autoHideCfg.minGap) || 0; - var labels = labelsGroup.getChildren().slice(); - if (labels.length < 2) { - return false; - } - var hasHide = false; - var first = labels[0]; - var firstBBox = first.getBBox(); - var second = labels[1]; - var count2 = labels.length; - var angle3 = getRotateAngle(first); - var distance15 = isVertical2 ? Math.abs(second.attr("y") - first.attr("y")) : Math.abs(second.attr("x") - first.attr("x")); - var interval3 = 0; - if (isVertical2) { - var ratio = Math.abs(Math.cos(angle3)); - if (near(ratio, 0, Math.PI / 180)) { - var maxWidth = getMaxLabelWidth(labels); - interval3 = (maxWidth + minGap) / distance15; - } else { - interval3 = (firstBBox.height / ratio + minGap) / distance15; - } - } else { - var ratio = Math.abs(Math.sin(angle3)); - if (near(ratio, 0, Math.PI / 180)) { - var maxWidth = getMaxLabelWidth(labels); - interval3 = (maxWidth + minGap) / distance15; - } else { - interval3 = (firstBBox.height / ratio + minGap) / distance15; - } - } - if (interval3 > 1) { - interval3 = Math.ceil(interval3); - for (var i4 = 0; i4 < count2; i4++) { - if (i4 % interval3 !== 0) { - labels[i4].hide(); - hasHide = true; - } - } - } - return hasHide; -} -function getDefault2() { - return equidistance; -} -function reserveFirst(isVertical2, labelsGroup, limitLength, autoHideCfg) { - return reserveOne(isVertical2, labelsGroup, false, autoHideCfg); -} -function reserveLast(isVertical2, labelsGroup, limitLength, autoHideCfg) { - return reserveOne(isVertical2, labelsGroup, true, autoHideCfg); -} -function reserveBoth(isVertical2, labelsGroup, limitLength, autoHideCfg) { - var minGap = (autoHideCfg === null || autoHideCfg === void 0 ? void 0 : autoHideCfg.minGap) || 0; - var labels = labelsGroup.getChildren().slice(); - if (labels.length <= 2) { - return false; - } - var hasHide = false; - var count2 = labels.length; - var first = labels[0]; - var last2 = labels[count2 - 1]; - var preLabel = first; - for (var i4 = 1; i4 < count2 - 1; i4++) { - var label17 = labels[i4]; - var curBBox = label17.getBBox(); - var isHide = isOverlap(isVertical2, preLabel, label17, minGap); - if (isHide) { - label17.hide(); - hasHide = true; - } else { - preLabel = label17; - } - } - var overlap2 = isOverlap(isVertical2, preLabel, last2, minGap); - if (overlap2) { - preLabel.hide(); - hasHide = true; - } - return hasHide; -} -function equidistance(isVertical2, labelsGroup, limitLength, autoHideCfg) { - var hasHide = parityHide(isVertical2, labelsGroup, autoHideCfg); - if (reserveOne(isVertical2, labelsGroup, false)) { - hasHide = true; - } - return hasHide; -} -function equidistanceWithReverseBoth(isVertical2, labelsGroup, limitLength, autoHideCfg) { - var labels = labelsGroup.getChildren().slice(); - var hasHide = parityHide(isVertical2, labelsGroup, autoHideCfg); - if (labels.length > 2) { - var first = labels[0]; - var last2 = labels[labels.length - 1]; - if (!first.get("visible")) { - first.show(); - if (reserveOne(isVertical2, labelsGroup, false, autoHideCfg)) { - hasHide = true; - } - } - if (!last2.get("visible")) { - last2.show(); - if (reserveOne(isVertical2, labelsGroup, true, autoHideCfg)) { - hasHide = true; - } - } - } - return hasHide; -} - -// node_modules/@antv/component/esm/axis/overlap/auto-rotate.js -var auto_rotate_exports = {}; -__export(auto_rotate_exports, { - fixedAngle: () => fixedAngle, - getDefault: () => getDefault3, - unfixedAngle: () => unfixedAngle -}); -function setLabelsAngle(labels, angle3) { - each_default(labels, function(label17) { - var x6 = label17.attr("x"); - var y5 = label17.attr("y"); - var matrix = getMatrixByAngle({ x: x6, y: y5 }, angle3); - label17.attr("matrix", matrix); - }); -} -function labelRotate(isVertical2, labelsGroup, limitLength, getAngle6) { - var labels = labelsGroup.getChildren(); - if (!labels.length) { - return false; - } - if (!isVertical2 && labels.length < 2) { - return false; - } - var maxWidth = getMaxLabelWidth(labels); - var isOverlap2 = false; - if (isVertical2) { - isOverlap2 = !!limitLength && maxWidth > limitLength; - } else { - var tickWidth = Math.abs(labels[1].attr("x") - labels[0].attr("x")); - isOverlap2 = maxWidth > tickWidth; - } - if (isOverlap2) { - var angle3 = getAngle6(limitLength, maxWidth); - setLabelsAngle(labels, angle3); - } - return isOverlap2; -} -function getDefault3() { - return fixedAngle; -} -function fixedAngle(isVertical2, labelsGroup, limitLength, customRotate) { - return labelRotate(isVertical2, labelsGroup, limitLength, function() { - if (is_number_default(customRotate)) { - return customRotate; - } - return isVertical2 ? theme_default.verticalAxisRotate : theme_default.horizontalAxisRotate; - }); -} -function unfixedAngle(isVertical2, labelsGroup, limitLength) { - return labelRotate(isVertical2, labelsGroup, limitLength, function(length5, maxWidth) { - if (!length5) { - return isVertical2 ? theme_default.verticalAxisRotate : theme_default.horizontalAxisRotate; - } - if (isVertical2) { - return -Math.acos(length5 / maxWidth); - } else { - var angle3 = 0; - if (length5 > maxWidth) { - angle3 = Math.PI / 4; - } else { - angle3 = Math.asin(length5 / maxWidth); - if (angle3 > Math.PI / 4) { - angle3 = Math.PI / 4; - } - } - return angle3; - } - }); -} - -// node_modules/@antv/component/esm/axis/line.js -var Line = function(_super) { - __extends(Line9, _super); - function Line9() { - return _super !== null && _super.apply(this, arguments) || this; - } - Line9.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { - type: "line", - locationType: "region", - start: null, - end: null - }); - }; - Line9.prototype.getLinePath = function() { - var start = this.get("start"); - var end2 = this.get("end"); - var path = []; - path.push(["M", start.x, start.y]); - path.push(["L", end2.x, end2.y]); - return path; - }; - Line9.prototype.getInnerLayoutBBox = function() { - var start = this.get("start"); - var end2 = this.get("end"); - var bbox = _super.prototype.getInnerLayoutBBox.call(this); - var minX = Math.min(start.x, end2.x, bbox.x); - var minY = Math.min(start.y, end2.y, bbox.y); - var maxX = Math.max(start.x, end2.x, bbox.maxX); - var maxY2 = Math.max(start.y, end2.y, bbox.maxY); - return { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; - }; - Line9.prototype.isVertical = function() { - var start = this.get("start"); - var end2 = this.get("end"); - return isNumberEqual(start.x, end2.x); - }; - Line9.prototype.isHorizontal = function() { - var start = this.get("start"); - var end2 = this.get("end"); - return isNumberEqual(start.y, end2.y); - }; - Line9.prototype.getTickPoint = function(tickValue) { - var self2 = this; - var start = self2.get("start"); - var end2 = self2.get("end"); - var regionX = end2.x - start.x; - var regionY = end2.y - start.y; - return { - x: start.x + regionX * tickValue, - y: start.y + regionY * tickValue - }; - }; - Line9.prototype.getSideVector = function(offset) { - var axisVector = this.getAxisVector(); - var normal2 = vec2_exports.normalize([0, 0], axisVector); - var factor = this.get("verticalFactor"); - var verticalVector = [normal2[1], normal2[0] * -1]; - return vec2_exports.scale([0, 0], verticalVector, offset * factor); - }; - Line9.prototype.getAxisVector = function() { - var start = this.get("start"); - var end2 = this.get("end"); - return [end2.x - start.x, end2.y - start.y]; - }; - Line9.prototype.processOverlap = function(labelGroup) { - var _this = this; - var isVertical2 = this.isVertical(); - var isHorizontal2 = this.isHorizontal(); - if (!isVertical2 && !isHorizontal2) { - return; - } - var labelCfg = this.get("label"); - var titleCfg = this.get("title"); - var verticalLimitLength = this.get("verticalLimitLength"); - var labelOffset = labelCfg.offset; - var limitLength = verticalLimitLength; - var titleHeight = 0; - var titleSpacing = 0; - if (titleCfg) { - titleHeight = titleCfg.style.fontSize; - titleSpacing = titleCfg.spacing; - } - if (limitLength) { - limitLength = limitLength - labelOffset - titleSpacing - titleHeight; - } - var overlapOrder = this.get("overlapOrder"); - each_default(overlapOrder, function(name) { - if (labelCfg[name] && _this.canProcessOverlap(name)) { - _this.autoProcessOverlap(name, labelCfg[name], labelGroup, limitLength); - } - }); - if (titleCfg) { - if (is_nil_default(titleCfg.offset)) { - var bbox = labelGroup.getCanvasBBox(); - var length_1 = isVertical2 ? bbox.width : bbox.height; - titleCfg.offset = labelOffset + length_1 + titleSpacing + titleHeight / 2; - } - } - }; - Line9.prototype.canProcessOverlap = function(name) { - var labelCfg = this.get("label"); - if (name === "autoRotate") { - return is_nil_default(labelCfg.rotate); - } - return true; - }; - Line9.prototype.autoProcessOverlap = function(name, value2, labelGroup, limitLength) { - var _this = this; - var isVertical2 = this.isVertical(); - var hasAdjusted = false; - var util = overlap_exports[name]; - if (value2 === true) { - var labelCfg = this.get("label"); - hasAdjusted = util.getDefault()(isVertical2, labelGroup, limitLength); - } else if (is_function_default(value2)) { - hasAdjusted = value2(isVertical2, labelGroup, limitLength); - } else if (is_object_default(value2)) { - var overlapCfg = value2; - if (util[overlapCfg.type]) { - hasAdjusted = util[overlapCfg.type](isVertical2, labelGroup, limitLength, overlapCfg.cfg); - } - } else if (util[value2]) { - hasAdjusted = util[value2](isVertical2, labelGroup, limitLength); - } - if (name === "autoRotate") { - if (hasAdjusted) { - var labels = labelGroup.getChildren(); - var verticalFactor_1 = this.get("verticalFactor"); - each_default(labels, function(label17) { - var textAlign = label17.attr("textAlign"); - if (textAlign === "center") { - var newAlign = verticalFactor_1 > 0 ? "end" : "start"; - label17.attr("textAlign", newAlign); - } - }); - } - } else if (name === "autoHide") { - var children = labelGroup.getChildren().slice(0); - each_default(children, function(label17) { - if (!label17.get("visible")) { - if (_this.get("isRegister")) { - _this.unregisterElement(label17); - } - label17.remove(); - } - }); - } - }; - return Line9; -}(base_default8); -var line_default4 = Line; - -// node_modules/@antv/component/esm/axis/circle.js -var Circle = function(_super) { - __extends(Circle6, _super); - function Circle6() { - return _super !== null && _super.apply(this, arguments) || this; - } - Circle6.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { type: "circle", locationType: "circle", center: null, radius: null, startAngle: -Math.PI / 2, endAngle: Math.PI * 3 / 2 }); - }; - Circle6.prototype.getLinePath = function() { - var center2 = this.get("center"); - var x6 = center2.x; - var y5 = center2.y; - var rx = this.get("radius"); - var ry = rx; - var startAngle = this.get("startAngle"); - var endAngle = this.get("endAngle"); - var path = []; - if (Math.abs(endAngle - startAngle) === Math.PI * 2) { - path = [["M", x6, y5 - ry], ["A", rx, ry, 0, 1, 1, x6, y5 + ry], ["A", rx, ry, 0, 1, 1, x6, y5 - ry], ["Z"]]; - } else { - var startPoint = this.getCirclePoint(startAngle); - var endPoint = this.getCirclePoint(endAngle); - var large = Math.abs(endAngle - startAngle) > Math.PI ? 1 : 0; - var sweep = startAngle > endAngle ? 0 : 1; - path = [ - ["M", x6, y5], - ["L", startPoint.x, startPoint.y], - ["A", rx, ry, 0, large, sweep, endPoint.x, endPoint.y], - ["L", x6, y5] - ]; - } - return path; - }; - Circle6.prototype.getTickPoint = function(tickValue) { - var startAngle = this.get("startAngle"); - var endAngle = this.get("endAngle"); - var angle3 = startAngle + (endAngle - startAngle) * tickValue; - return this.getCirclePoint(angle3); - }; - Circle6.prototype.getSideVector = function(offset, point2) { - var center2 = this.get("center"); - var vector = [point2.x - center2.x, point2.y - center2.y]; - var factor = this.get("verticalFactor"); - var vecLen = vec2_exports.length(vector); - vec2_exports.scale(vector, vector, factor * offset / vecLen); - return vector; - }; - Circle6.prototype.getAxisVector = function(point2) { - var center2 = this.get("center"); - var vector = [point2.x - center2.x, point2.y - center2.y]; - return [vector[1], -1 * vector[0]]; - }; - Circle6.prototype.getCirclePoint = function(angle3, radius) { - var center2 = this.get("center"); - radius = radius || this.get("radius"); - return { - x: center2.x + Math.cos(angle3) * radius, - y: center2.y + Math.sin(angle3) * radius - }; - }; - Circle6.prototype.canProcessOverlap = function(name) { - var labelCfg = this.get("label"); - if (name === "autoRotate") { - return is_nil_default(labelCfg.rotate); - } - return true; - }; - Circle6.prototype.processOverlap = function(labelGroup) { - var _this = this; - var labelCfg = this.get("label"); - var titleCfg = this.get("title"); - var verticalLimitLength = this.get("verticalLimitLength"); - var labelOffset = labelCfg.offset; - var limitLength = verticalLimitLength; - var titleHeight = 0; - var titleSpacing = 0; - if (titleCfg) { - titleHeight = titleCfg.style.fontSize; - titleSpacing = titleCfg.spacing; - } - if (limitLength) { - limitLength = limitLength - labelOffset - titleSpacing - titleHeight; - } - var overlapOrder = this.get("overlapOrder"); - each_default(overlapOrder, function(name) { - if (labelCfg[name] && _this.canProcessOverlap(name)) { - _this.autoProcessOverlap(name, labelCfg[name], labelGroup, limitLength); - } - }); - if (titleCfg) { - if (is_nil_default(titleCfg.offset)) { - var length_1 = labelGroup.getCanvasBBox().height; - titleCfg.offset = labelOffset + length_1 + titleSpacing + titleHeight / 2; - } - } - }; - Circle6.prototype.autoProcessOverlap = function(name, value2, labelGroup, limitLength) { - var _this = this; - var hasAdjusted = false; - var util = overlap_exports[name]; - if (limitLength > 0) { - if (value2 === true) { - hasAdjusted = util.getDefault()(false, labelGroup, limitLength); - } else if (is_function_default(value2)) { - hasAdjusted = value2(false, labelGroup, limitLength); - } else if (is_object_default(value2)) { - var overlapCfg = value2; - if (util[overlapCfg.type]) { - hasAdjusted = util[overlapCfg.type](false, labelGroup, limitLength, overlapCfg.cfg); - } - } else if (util[value2]) { - hasAdjusted = util[value2](false, labelGroup, limitLength); - } - } - if (name === "autoRotate") { - if (hasAdjusted) { - var labels = labelGroup.getChildren(); - var verticalFactor_1 = this.get("verticalFactor"); - each_default(labels, function(label17) { - var textAlign = label17.attr("textAlign"); - if (textAlign === "center") { - var newAlign = verticalFactor_1 > 0 ? "end" : "start"; - label17.attr("textAlign", newAlign); - } - }); - } - } else if (name === "autoHide") { - var children = labelGroup.getChildren().slice(0); - each_default(children, function(label17) { - if (!label17.get("visible")) { - if (_this.get("isRegister")) { - _this.unregisterElement(label17); - } - label17.remove(); - } - }); - } - }; - return Circle6; -}(base_default8); -var circle_default2 = Circle; - -// node_modules/@antv/component/esm/crosshair/index.js -var crosshair_exports = {}; -__export(crosshair_exports, { - Base: () => base_default9, - Circle: () => circle_default3, - Html: () => html_default2, - Line: () => line_default5 -}); - -// node_modules/@antv/component/esm/crosshair/base.js -var CrosshairBase = function(_super) { - __extends(CrosshairBase2, _super); - function CrosshairBase2() { - return _super !== null && _super.apply(this, arguments) || this; - } - CrosshairBase2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "crosshair", type: "base", line: {}, text: null, textBackground: {}, capture: false, defaultCfg: { - line: { - style: { - lineWidth: 1, - stroke: theme_default.lineColor - } - }, - text: { - position: "start", - offset: 10, - autoRotate: false, - content: null, - style: { - fill: theme_default.textColor, - textAlign: "center", - textBaseline: "middle", - fontFamily: theme_default.fontFamily - } - }, - textBackground: { - padding: 5, - style: { - stroke: theme_default.lineColor - } - } - } }); - }; - CrosshairBase2.prototype.renderInner = function(group2) { - if (this.get("line")) { - this.renderLine(group2); - } - if (this.get("text")) { - this.renderText(group2); - this.renderBackground(group2); - } - }; - CrosshairBase2.prototype.renderText = function(group2) { - var text = this.get("text"); - var style = text.style, autoRotate = text.autoRotate, content = text.content; - if (!is_nil_default(content)) { - var textPoint = this.getTextPoint(); - var matrix = null; - if (autoRotate) { - var angle3 = this.getRotateAngle(); - matrix = getMatrixByAngle(textPoint, angle3); - } - this.addShape(group2, { - type: "text", - name: "crosshair-text", - id: this.getElementId("text"), - attrs: __assign(__assign(__assign({}, textPoint), { text: content, matrix }), style) - }); - } - }; - CrosshairBase2.prototype.renderLine = function(group2) { - var path = this.getLinePath(); - var line2 = this.get("line"); - var style = line2.style; - this.addShape(group2, { - type: "path", - name: "crosshair-line", - id: this.getElementId("line"), - attrs: __assign({ path }, style) - }); - }; - CrosshairBase2.prototype.renderBackground = function(group2) { - var textId = this.getElementId("text"); - var textShape = group2.findById(textId); - var textBackground = this.get("textBackground"); - if (textBackground && textShape) { - var textBBox = textShape.getBBox(); - var padding3 = formatPadding(textBackground.padding); - var style = textBackground.style; - var backgroundShape = this.addShape(group2, { - type: "rect", - name: "crosshair-text-background", - id: this.getElementId("text-background"), - attrs: __assign({ x: textBBox.x - padding3[3], y: textBBox.y - padding3[0], width: textBBox.width + padding3[1] + padding3[3], height: textBBox.height + padding3[0] + padding3[2], matrix: textShape.attr("matrix") }, style) - }); - backgroundShape.toBack(); - } - }; - return CrosshairBase2; -}(group_component_default); -var base_default9 = CrosshairBase; - -// node_modules/@antv/component/esm/crosshair/line.js -var LineCrosshair = function(_super) { - __extends(LineCrosshair3, _super); - function LineCrosshair3() { - return _super !== null && _super.apply(this, arguments) || this; - } - LineCrosshair3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { type: "line", locationType: "region", start: null, end: null }); - }; - LineCrosshair3.prototype.getRotateAngle = function() { - var _a6 = this.getLocation(), start = _a6.start, end2 = _a6.end; - var position2 = this.get("text").position; - var angle3 = Math.atan2(end2.y - start.y, end2.x - start.x); - var tangentAngle = position2 === "start" ? angle3 - Math.PI / 2 : angle3 + Math.PI / 2; - return tangentAngle; - }; - LineCrosshair3.prototype.getTextPoint = function() { - var _a6 = this.getLocation(), start = _a6.start, end2 = _a6.end; - var _b = this.get("text"), position2 = _b.position, offset = _b.offset; - return getTextPoint(start, end2, position2, offset); - }; - LineCrosshair3.prototype.getLinePath = function() { - var _a6 = this.getLocation(), start = _a6.start, end2 = _a6.end; - return [ - ["M", start.x, start.y], - ["L", end2.x, end2.y] - ]; - }; - return LineCrosshair3; -}(base_default9); -var line_default5 = LineCrosshair; - -// node_modules/@antv/component/esm/crosshair/circle.js -var LineCrosshair2 = function(_super) { - __extends(LineCrosshair3, _super); - function LineCrosshair3() { - return _super !== null && _super.apply(this, arguments) || this; - } - LineCrosshair3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { type: "circle", locationType: "circle", center: null, radius: 100, startAngle: -Math.PI / 2, endAngle: Math.PI * 3 / 2 }); - }; - LineCrosshair3.prototype.getRotateAngle = function() { - var _a6 = this.getLocation(), startAngle = _a6.startAngle, endAngle = _a6.endAngle; - var position2 = this.get("text").position; - var tangentAngle = position2 === "start" ? startAngle + Math.PI / 2 : endAngle - Math.PI / 2; - return tangentAngle; - }; - LineCrosshair3.prototype.getTextPoint = function() { - var text = this.get("text"); - var position2 = text.position, offset = text.offset; - var _a6 = this.getLocation(), center2 = _a6.center, radius = _a6.radius, startAngle = _a6.startAngle, endAngle = _a6.endAngle; - var angle3 = position2 === "start" ? startAngle : endAngle; - var tangentAngle = this.getRotateAngle() - Math.PI; - var point2 = getCirclePoint(center2, radius, angle3); - var offsetX = Math.cos(tangentAngle) * offset; - var offsetY = Math.sin(tangentAngle) * offset; - return { - x: point2.x + offsetX, - y: point2.y + offsetY - }; - }; - LineCrosshair3.prototype.getLinePath = function() { - var _a6 = this.getLocation(), center2 = _a6.center, radius = _a6.radius, startAngle = _a6.startAngle, endAngle = _a6.endAngle; - var path = null; - if (endAngle - startAngle === Math.PI * 2) { - var x6 = center2.x, y5 = center2.y; - path = [ - ["M", x6, y5 - radius], - ["A", radius, radius, 0, 1, 1, x6, y5 + radius], - ["A", radius, radius, 0, 1, 1, x6, y5 - radius], - ["Z"] - ]; - } else { - var startPoint = getCirclePoint(center2, radius, startAngle); - var endPoint = getCirclePoint(center2, radius, endAngle); - var large = Math.abs(endAngle - startAngle) > Math.PI ? 1 : 0; - var sweep = startAngle > endAngle ? 0 : 1; - path = [ - ["M", startPoint.x, startPoint.y], - ["A", radius, radius, 0, large, sweep, endPoint.x, endPoint.y] - ]; - } - return path; - }; - return LineCrosshair3; -}(base_default9); -var circle_default3 = LineCrosshair2; - -// node_modules/@antv/component/esm/crosshair/css-const.js -var CONTAINER_CLASS = "g2-crosshair"; -var CROSSHAIR_LINE = CONTAINER_CLASS + "-line"; -var CROSSHAIR_TEXT = CONTAINER_CLASS + "-text"; - -// node_modules/@antv/component/esm/crosshair/html-theme.js -var _a; -var html_theme_default = (_a = {}, _a["" + CONTAINER_CLASS] = { - position: "relative" -}, _a["" + CROSSHAIR_LINE] = { - position: "absolute", - backgroundColor: "rgba(0, 0, 0, 0.25)" -}, _a["" + CROSSHAIR_TEXT] = { - position: "absolute", - color: theme_default.textColor, - fontFamily: theme_default.fontFamily -}, _a); - -// node_modules/@antv/component/esm/crosshair/html.js -var HtmlCrosshair = function(_super) { - __extends(HtmlCrosshair2, _super); - function HtmlCrosshair2() { - return _super !== null && _super.apply(this, arguments) || this; - } - HtmlCrosshair2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "crosshair", type: "html", locationType: "region", start: { x: 0, y: 0 }, end: { x: 0, y: 0 }, capture: false, text: null, containerTpl: '
', crosshairTpl: '
', textTpl: '{content}', domStyles: null, containerClassName: CONTAINER_CLASS, defaultStyles: html_theme_default, defaultCfg: { - text: { - position: "start", - content: null, - align: "center", - offset: 10 - } - } }); - }; - HtmlCrosshair2.prototype.render = function() { - this.resetText(); - this.resetPosition(); - }; - HtmlCrosshair2.prototype.initCrossHair = function() { - var container2 = this.getContainer(); - var crosshairTpl = this.get("crosshairTpl"); - var crosshairEl = createDom(crosshairTpl); - container2.appendChild(crosshairEl); - this.applyStyle(CROSSHAIR_LINE, crosshairEl); - this.set("crosshairEl", crosshairEl); - }; - HtmlCrosshair2.prototype.getTextPoint = function() { - var _a6 = this.getLocation(), start = _a6.start, end2 = _a6.end; - var _b = this.get("text"), position2 = _b.position, offset = _b.offset; - return getTextPoint(start, end2, position2, offset); - }; - HtmlCrosshair2.prototype.resetText = function() { - var text = this.get("text"); - var textEl = this.get("textEl"); - if (text) { - var content = text.content; - if (!textEl) { - var container2 = this.getContainer(); - var textTpl = substitute_default(this.get("textTpl"), text); - textEl = createDom(textTpl); - container2.appendChild(textEl); - this.applyStyle(CROSSHAIR_TEXT, textEl); - this.set("textEl", textEl); - } - textEl.innerHTML = content; - } else if (textEl) { - textEl.remove(); - } - }; - HtmlCrosshair2.prototype.isVertical = function(start, end2) { - return start.x === end2.x; - }; - HtmlCrosshair2.prototype.resetPosition = function() { - var crosshairEl = this.get("crosshairEl"); - if (!crosshairEl) { - this.initCrossHair(); - crosshairEl = this.get("crosshairEl"); - } - var start = this.get("start"); - var end2 = this.get("end"); - var minX = Math.min(start.x, end2.x); - var minY = Math.min(start.y, end2.y); - if (this.isVertical(start, end2)) { - modifyCSS(crosshairEl, { - width: "1px", - height: toPx(Math.abs(end2.y - start.y)) - }); - } else { - modifyCSS(crosshairEl, { - height: "1px", - width: toPx(Math.abs(end2.x - start.x)) - }); - } - modifyCSS(crosshairEl, { - top: toPx(minY), - left: toPx(minX) - }); - this.alignText(); - }; - HtmlCrosshair2.prototype.alignText = function() { - var textEl = this.get("textEl"); - if (textEl) { - var align = this.get("text").align; - var clientWidth = textEl.clientWidth; - var point2 = this.getTextPoint(); - switch (align) { - case "center": - point2.x = point2.x - clientWidth / 2; - break; - case "right": - point2.x = point2.x - clientWidth; - case "left": - break; - } - modifyCSS(textEl, { - top: toPx(point2.y), - left: toPx(point2.x) - }); - } - }; - HtmlCrosshair2.prototype.updateInner = function(cfg) { - if (has_key_default(cfg, "text")) { - this.resetText(); - } - _super.prototype.updateInner.call(this, cfg); - }; - return HtmlCrosshair2; -}(html_component_default); -var html_default2 = HtmlCrosshair; - -// node_modules/@antv/component/esm/grid/index.js -var grid_exports = {}; -__export(grid_exports, { - Base: () => base_default10, - Circle: () => circle_default4, - Line: () => line_default6 -}); - -// node_modules/@antv/component/esm/grid/base.js -var GridBase = function(_super) { - __extends(GridBase2, _super); - function GridBase2() { - return _super !== null && _super.apply(this, arguments) || this; - } - GridBase2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "grid", line: {}, alternateColor: null, capture: false, items: [], closed: false, defaultCfg: { - line: { - type: "line", - style: { - lineWidth: 1, - stroke: theme_default.lineColor - } - } - } }); - }; - GridBase2.prototype.getLineType = function() { - var line2 = this.get("line") || this.get("defaultCfg").line; - return line2.type; - }; - GridBase2.prototype.renderInner = function(group2) { - this.drawGrid(group2); - }; - GridBase2.prototype.getAlternatePath = function(prePoints, points) { - var regionPath = this.getGridPath(prePoints); - var reversePoints = points.slice(0).reverse(); - var nextPath = this.getGridPath(reversePoints, true); - var closed = this.get("closed"); - if (closed) { - regionPath = regionPath.concat(nextPath); - } else { - nextPath[0][0] = "L"; - regionPath = regionPath.concat(nextPath); - regionPath.push(["Z"]); - } - return regionPath; - }; - GridBase2.prototype.getPathStyle = function() { - return this.get("line").style; - }; - GridBase2.prototype.drawGrid = function(group2) { - var _this = this; - var line2 = this.get("line"); - var items = this.get("items"); - var alternateColor = this.get("alternateColor"); - var preItem = null; - each_default(items, function(item, index2) { - var id = item.id || index2; - if (line2) { - var style = _this.getPathStyle(); - style = is_function_default(style) ? style(item, index2, items) : style; - var lineId = _this.getElementId("line-" + id); - var gridPath = _this.getGridPath(item.points); - _this.addShape(group2, { - type: "path", - name: "grid-line", - id: lineId, - attrs: mix({ - path: gridPath - }, style) - }); - } - if (alternateColor && index2 > 0) { - var regionId = _this.getElementId("region-" + id); - var isEven = index2 % 2 === 0; - if (is_string_default(alternateColor)) { - if (isEven) { - _this.drawAlternateRegion(regionId, group2, preItem.points, item.points, alternateColor); - } - } else { - var color4 = isEven ? alternateColor[1] : alternateColor[0]; - _this.drawAlternateRegion(regionId, group2, preItem.points, item.points, color4); - } - } - preItem = item; - }); - }; - GridBase2.prototype.drawAlternateRegion = function(id, group2, prePoints, points, color4) { - var regionPath = this.getAlternatePath(prePoints, points); - this.addShape(group2, { - type: "path", - id, - name: "grid-region", - attrs: { - path: regionPath, - fill: color4 - } - }); - }; - return GridBase2; -}(group_component_default); -var base_default10 = GridBase; - -// node_modules/@antv/component/esm/grid/circle.js -function distance6(x1, y1, x22, y22) { - var dx = x22 - x1; - var dy = y22 - y1; - return Math.sqrt(dx * dx + dy * dy); -} -var Circle2 = function(_super) { - __extends(Circle6, _super); - function Circle6() { - return _super !== null && _super.apply(this, arguments) || this; - } - Circle6.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { - type: "circle", - center: null, - closed: true - }); - }; - Circle6.prototype.getGridPath = function(points, reversed) { - var lineType = this.getLineType(); - var closed = this.get("closed"); - var path = []; - if (points.length) { - if (lineType === "circle") { - var center2 = this.get("center"); - var firstPoint = points[0]; - var radius_1 = distance6(center2.x, center2.y, firstPoint.x, firstPoint.y); - var sweepFlag_1 = reversed ? 0 : 1; - if (closed) { - path.push(["M", center2.x, center2.y - radius_1]); - path.push(["A", radius_1, radius_1, 0, 0, sweepFlag_1, center2.x, center2.y + radius_1]); - path.push(["A", radius_1, radius_1, 0, 0, sweepFlag_1, center2.x, center2.y - radius_1]); - path.push(["Z"]); - } else { - each_default(points, function(point2, index2) { - if (index2 === 0) { - path.push(["M", point2.x, point2.y]); - } else { - path.push(["A", radius_1, radius_1, 0, 0, sweepFlag_1, point2.x, point2.y]); - } - }); - } - } else { - each_default(points, function(point2, index2) { - if (index2 === 0) { - path.push(["M", point2.x, point2.y]); - } else { - path.push(["L", point2.x, point2.y]); - } - }); - if (closed) { - path.push(["Z"]); - } - } - } - return path; - }; - return Circle6; -}(base_default10); -var circle_default4 = Circle2; - -// node_modules/@antv/component/esm/grid/line.js -var Line2 = function(_super) { - __extends(Line9, _super); - function Line9() { - return _super !== null && _super.apply(this, arguments) || this; - } - Line9.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { type: "line" }); - }; - Line9.prototype.getGridPath = function(points) { - var path = []; - each_default(points, function(point2, index2) { - if (index2 === 0) { - path.push(["M", point2.x, point2.y]); - } else { - path.push(["L", point2.x, point2.y]); - } - }); - return path; - }; - return Line9; -}(base_default10); -var line_default6 = Line2; - -// node_modules/@antv/component/esm/legend/index.js -var legend_exports = {}; -__export(legend_exports, { - Base: () => base_default11, - Category: () => category_default, - Continuous: () => continuous_default -}); - -// node_modules/@antv/component/esm/legend/base.js -var LegendBase = function(_super) { - __extends(LegendBase2, _super); - function LegendBase2() { - return _super !== null && _super.apply(this, arguments) || this; - } - LegendBase2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { - name: "legend", - layout: "horizontal", - locationType: "point", - x: 0, - y: 0, - offsetX: 0, - offsetY: 0, - title: null, - background: null - }); - }; - LegendBase2.prototype.getLayoutBBox = function() { - var bbox = _super.prototype.getLayoutBBox.call(this); - var maxWidth = this.get("maxWidth"); - var maxHeight = this.get("maxHeight"); - var width2 = bbox.width, height = bbox.height; - if (maxWidth) { - width2 = Math.min(width2, maxWidth); - } - if (maxHeight) { - height = Math.min(height, maxHeight); - } - return createBBox(bbox.minX, bbox.minY, width2, height); - }; - LegendBase2.prototype.setLocation = function(cfg) { - this.set("x", cfg.x); - this.set("y", cfg.y); - this.resetLocation(); - }; - LegendBase2.prototype.resetLocation = function() { - var x6 = this.get("x"); - var y5 = this.get("y"); - var offsetX = this.get("offsetX"); - var offsetY = this.get("offsetY"); - this.moveElementTo(this.get("group"), { - x: x6 + offsetX, - y: y5 + offsetY - }); - }; - LegendBase2.prototype.applyOffset = function() { - this.resetLocation(); - }; - LegendBase2.prototype.getDrawPoint = function() { - return this.get("currentPoint"); - }; - LegendBase2.prototype.setDrawPoint = function(point2) { - return this.set("currentPoint", point2); - }; - LegendBase2.prototype.renderInner = function(group2) { - this.resetDraw(); - if (this.get("title")) { - this.drawTitle(group2); - } - this.drawLegendContent(group2); - if (this.get("background")) { - this.drawBackground(group2); - } - }; - LegendBase2.prototype.drawBackground = function(group2) { - var background = this.get("background"); - var bbox = group2.getBBox(); - var padding3 = formatPadding(background.padding); - var attrs = __assign({ - x: 0, - y: 0, - width: bbox.width + padding3[1] + padding3[3], - height: bbox.height + padding3[0] + padding3[2] - }, background.style); - var backgroundShape = this.addShape(group2, { - type: "rect", - id: this.getElementId("background"), - name: "legend-background", - attrs - }); - backgroundShape.toBack(); - }; - LegendBase2.prototype.drawTitle = function(group2) { - var currentPoint = this.get("currentPoint"); - var titleCfg = this.get("title"); - var spacing = titleCfg.spacing, style = titleCfg.style, text = titleCfg.text; - var shape = this.addShape(group2, { - type: "text", - id: this.getElementId("title"), - name: "legend-title", - attrs: __assign({ text, x: currentPoint.x, y: currentPoint.y }, style) - }); - var bbox = shape.getBBox(); - this.set("currentPoint", { x: currentPoint.x, y: bbox.maxY + spacing }); - }; - LegendBase2.prototype.resetDraw = function() { - var background = this.get("background"); - var currentPoint = { x: 0, y: 0 }; - if (background) { - var padding3 = formatPadding(background.padding); - currentPoint.x = padding3[3]; - currentPoint.y = padding3[0]; - } - this.set("currentPoint", currentPoint); - }; - return LegendBase2; -}(group_component_default); -var base_default11 = LegendBase; - -// node_modules/@antv/component/esm/legend/category.js -var DEFAULT_PAGE_NAVIGATOR = { - marker: { - style: { - inactiveFill: "#000", - inactiveOpacity: 0.45, - fill: "#000", - opacity: 1, - size: 12 - } - }, - text: { - style: { - fill: "#ccc", - fontSize: 12 - } - } -}; -var textStyle = { - fill: theme_default.textColor, - fontSize: 12, - textAlign: "start", - textBaseline: "middle", - fontFamily: theme_default.fontFamily, - fontWeight: "normal", - lineHeight: 12 -}; -var RIGHT_ARROW_NAME = "navigation-arrow-right"; -var LEFT_ARROW_NAME = "navigation-arrow-left"; -var ROTATE_MAP = { - right: 90 * Math.PI / 180, - left: (360 - 90) * Math.PI / 180, - up: 0, - down: 180 * Math.PI / 180 -}; -var Category2 = function(_super) { - __extends(Category3, _super); - function Category3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.currentPageIndex = 1; - _this.totalPagesCnt = 1; - _this.pageWidth = 0; - _this.pageHeight = 0; - _this.startX = 0; - _this.startY = 0; - _this.onNavigationBack = function() { - var itemGroup = _this.getElementByLocalId("item-group"); - if (_this.currentPageIndex > 1) { - _this.currentPageIndex -= 1; - _this.updateNavigation(); - var matrix = _this.getCurrentNavigationMatrix(); - if (_this.get("animate")) { - itemGroup.animate({ - matrix - }, 100); - } else { - itemGroup.attr({ matrix }); - } - } - }; - _this.onNavigationAfter = function() { - var itemGroup = _this.getElementByLocalId("item-group"); - if (_this.currentPageIndex < _this.totalPagesCnt) { - _this.currentPageIndex += 1; - _this.updateNavigation(); - var matrix = _this.getCurrentNavigationMatrix(); - if (_this.get("animate")) { - itemGroup.animate({ - matrix - }, 100); - } else { - itemGroup.attr({ matrix }); - } - } - }; - return _this; - } - Category3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "legend", type: "category", itemSpacing: 24, itemMarginBottom: 8, maxItemWidth: null, itemWidth: null, itemHeight: null, itemName: {}, itemValue: null, maxWidth: null, maxHeight: null, marker: {}, radio: null, items: [], itemStates: {}, itemBackground: {}, pageNavigator: {}, defaultCfg: { - title: { - spacing: 5, - style: { - fill: theme_default.textColor, - fontSize: 12, - textAlign: "start", - textBaseline: "top" - } - }, - background: { - padding: 5, - style: { - stroke: theme_default.lineColor - } - }, - itemBackground: { - style: { - opacity: 0, - fill: "#fff" - } - }, - pageNavigator: DEFAULT_PAGE_NAVIGATOR, - itemName: { - spacing: 16, - style: textStyle - }, - marker: { - spacing: 8, - style: { - r: 6, - symbol: "circle" - } - }, - itemValue: { - alignRight: false, - formatter: null, - style: textStyle, - spacing: 6 - }, - itemStates: { - active: { - nameStyle: { - opacity: 0.8 - } - }, - unchecked: { - nameStyle: { - fill: theme_default.uncheckedColor - }, - markerStyle: { - fill: theme_default.uncheckedColor, - stroke: theme_default.uncheckedColor - } - }, - inactive: { - nameStyle: { - fill: theme_default.uncheckedColor - }, - markerStyle: { - opacity: 0.2 - } - } - } - } }); - }; - Category3.prototype.isList = function() { - return true; - }; - Category3.prototype.getItems = function() { - return this.get("items"); - }; - Category3.prototype.setItems = function(items) { - this.update({ - items - }); - }; - Category3.prototype.updateItem = function(item, cfg) { - mix(item, cfg); - this.clear(); - this.render(); - }; - Category3.prototype.clearItems = function() { - var itemGroup = this.getElementByLocalId("item-group"); - itemGroup && itemGroup.clear(); - }; - Category3.prototype.setItemState = function(item, state2, value2) { - item[state2] = value2; - var itemElement = this.getElementByLocalId("item-" + item.id); - if (itemElement) { - var items = this.getItems(); - var index2 = items.indexOf(item); - var offsetGroup = this.createOffScreenGroup(); - var newElement = this.drawItem(item, index2, this.getItemHeight(), offsetGroup); - this.updateElements(newElement, itemElement); - this.clearUpdateStatus(itemElement); - } - }; - Category3.prototype.hasState = function(item, state2) { - return !!item[state2]; - }; - Category3.prototype.getItemStates = function(item) { - var itemStates = this.get("itemStates"); - var rst = []; - each_default(itemStates, function(v3, k4) { - if (item[k4]) { - rst.push(k4); - } - }); - return rst; - }; - Category3.prototype.clearItemsState = function(state2) { - var _this = this; - var items = this.getItemsByState(state2); - each_default(items, function(item) { - _this.setItemState(item, state2, false); - }); - }; - Category3.prototype.getItemsByState = function(state2) { - var _this = this; - var items = this.getItems(); - return filter_default(items, function(item) { - return _this.hasState(item, state2); - }); - }; - Category3.prototype.drawLegendContent = function(group2) { - this.processItems(); - this.drawItems(group2); - }; - Category3.prototype.processItems = function() { - var items = this.get("items"); - each_default(items, function(item) { - if (!item.id) { - item.id = item.name; - } - }); - }; - Category3.prototype.drawItems = function(group2) { - var _this = this; - var itemContainerGroup = this.addGroup(group2, { - id: this.getElementId("item-container-group"), - name: "legend-item-container-group" - }); - var itemGroup = this.addGroup(itemContainerGroup, { - id: this.getElementId("item-group"), - name: "legend-item-group" - }); - var itemHeight = this.getItemHeight(); - var itemWidth = this.get("itemWidth"); - var itemSpacing = this.get("itemSpacing"); - var itemMarginBottom = this.get("itemMarginBottom"); - var currentPoint = this.get("currentPoint"); - var startX = currentPoint.x; - var startY = currentPoint.y; - var layout6 = this.get("layout"); - var items = this.get("items"); - var wrapped = false; - var pageWidth = 0; - var maxWidth = this.get("maxWidth"); - var maxHeight = this.get("maxHeight"); - each_default(items, function(item, index2) { - var subGroup = _this.drawItem(item, index2, itemHeight, itemGroup); - var bbox = subGroup.getBBox(); - var width2 = itemWidth || bbox.width; - if (width2 > pageWidth) { - pageWidth = width2; - } - if (layout6 === "horizontal") { - if (maxWidth && maxWidth < currentPoint.x + width2 - startX) { - wrapped = true; - currentPoint.x = startX; - currentPoint.y += itemHeight + itemMarginBottom; - } - _this.moveElementTo(subGroup, currentPoint); - currentPoint.x += width2 + itemSpacing; - } else { - if (maxHeight && maxHeight < currentPoint.y + itemHeight + itemMarginBottom - startY) { - wrapped = true; - currentPoint.x += pageWidth + itemSpacing; - currentPoint.y = startY; - pageWidth = 0; - } - _this.moveElementTo(subGroup, currentPoint); - currentPoint.y += itemHeight + itemMarginBottom; - } - }); - if (wrapped && this.get("flipPage")) { - this.pageHeight = 0; - this.pageWidth = 0; - this.totalPagesCnt = 1; - this.startX = startX; - this.startY = startY; - this.adjustNavigation(group2, itemGroup); - } - }; - Category3.prototype.getItemHeight = function() { - var itemHeight = this.get("itemHeight"); - if (!itemHeight) { - var style_1 = (this.get("itemName") || {}).style; - if (is_function_default(style_1)) { - var items_1 = this.getItems(); - items_1.forEach(function(item, index2) { - var fontSize = __assign(__assign({}, textStyle), style_1(item, index2, items_1)).fontSize; - if (itemHeight < fontSize) { - itemHeight = fontSize; - } - }); - } else if (style_1) { - itemHeight = style_1.fontSize; - } - } - return itemHeight; - }; - Category3.prototype.drawMarker = function(container2, markerCfg, item, itemHeight) { - var markerAttrs = __assign(__assign(__assign({ x: 0, y: itemHeight / 2 }, markerCfg.style), { symbol: get_default(item.marker, "symbol", "circle") }), get_default(item.marker, "style", {})); - var shape = this.addShape(container2, { - type: "marker", - id: this.getElementId("item-" + item.id + "-marker"), - name: "legend-item-marker", - attrs: markerAttrs - }); - var bbox = shape.getBBox(); - shape.attr("x", bbox.width / 2); - var _a6 = shape.attr(), stroke = _a6.stroke, fill = _a6.fill; - if (stroke) { - shape.set("isStroke", true); - } - if (fill) { - shape.set("isFill", true); - } - return shape; - }; - Category3.prototype.drawItemText = function(container2, textName, cfg, item, itemHeight, xPosition, index2) { - var formatter = cfg.formatter; - var style = cfg.style; - var attrs = __assign(__assign({ x: xPosition, y: itemHeight / 2, text: formatter ? formatter(item[textName], item, index2) : item[textName] }, textStyle), is_function_default(style) ? style(item, index2, this.getItems()) : style); - return this.addShape(container2, { - type: "text", - id: this.getElementId("item-" + item.id + "-" + textName), - name: "legend-item-" + textName, - attrs - }); - }; - Category3.prototype.drawRadio = function(container2, style, item, itemHeight, x6) { - var r4 = itemHeight / 2; - var lineWidth = r4 * 3.6 / 8; - var _a6 = [x6 + r4, itemHeight / 2 - r4], x0 = _a6[0], y0 = _a6[1]; - var _b = [x0 + r4, y0 + r4], x1 = _b[0], y1 = _b[1]; - var _c = [x0, y1 + r4], x22 = _c[0], y22 = _c[1]; - var _d = [x6, y0 + r4], x32 = _d[0], y32 = _d[1]; - var showRadio = item.showRadio; - var attrs = __assign(__assign({ path: [ - ["M", x0, y0], - ["A", r4, r4, 0, 0, 1, x1, y1], - ["L", x1 - lineWidth, y1], - ["L", x1, y1], - ["A", r4, r4, 0, 0, 1, x22, y22], - ["L", x22, y22 - lineWidth], - ["L", x22, y22], - ["A", r4, r4, 0, 0, 1, x32, y32], - ["L", x32 + lineWidth, y32], - ["L", x32, y32], - ["A", r4, r4, 0, 0, 1, x0, y0], - ["L", x0, y0 + lineWidth] - ], stroke: "#000000", fill: "#ffffff" }, style), { opacity: showRadio ? 0.45 : 0 }); - return this.addShape(container2, { - type: "path", - id: this.getElementId("item-" + item.id + "-radio"), - name: "legend-item-radio", - attrs - }); - }; - Category3.prototype.drawItem = function(item, index2, itemHeight, itemGroup) { - var groupId = "item-" + item.id; - var subContainer = this.addGroup(itemGroup, { - name: "legend-item-container", - id: this.getElementId("item-container-" + groupId), - delegateObject: { - item, - index: index2 - } - }); - var subGroup = this.addGroup(subContainer, { - name: "legend-item", - id: this.getElementId(groupId), - delegateObject: { - item, - index: index2 - } - }); - var marker = this.get("marker"); - var itemName = this.get("itemName"); - var itemValue = this.get("itemValue"); - var itemBackground = this.get("itemBackground"); - var radio = this.get("radio"); - var itemWidth = this.getLimitItemWidth(); - var curX = 0; - if (marker) { - var markerShape = this.drawMarker(subGroup, marker, item, itemHeight); - var spacing = marker.spacing; - var itemMarkerSpacing = get_default(item, ["marker", "spacing"]); - if (is_number_default(itemMarkerSpacing)) { - spacing = itemMarkerSpacing; - } - curX = markerShape.getBBox().maxX + spacing; - } - if (itemName) { - var nameShape = this.drawItemText(subGroup, "name", itemName, item, itemHeight, curX, index2); - if (itemWidth) { - ellipsisLabel(true, nameShape, clamp_default(itemWidth - curX, 0, itemWidth)); - } - curX = nameShape.getBBox().maxX + itemName.spacing; - } - if (itemValue) { - var valueShape = this.drawItemText(subGroup, "value", itemValue, item, itemHeight, curX, index2); - if (itemWidth) { - if (itemValue.alignRight) { - valueShape.attr({ - textAlign: "right", - x: itemWidth - }); - ellipsisLabel(true, valueShape, clamp_default(itemWidth - curX, 0, itemWidth), "head"); - } else { - ellipsisLabel(true, valueShape, clamp_default(itemWidth - curX, 0, itemWidth)); - } - } - curX = valueShape.getBBox().maxX + itemValue.spacing; - } - if (radio) { - this.drawRadio(subGroup, radio, item, itemHeight, curX); - } - if (itemBackground) { - var bbox = subGroup.getBBox(); - var backShape = this.addShape(subGroup, { - type: "rect", - name: "legend-item-background", - id: this.getElementId(groupId + "-background"), - attrs: __assign({ x: 0, y: 0, width: bbox.width, height: itemHeight }, itemBackground.style) - }); - backShape.toBack(); - } - this.applyItemStates(item, subGroup); - return subGroup; - }; - Category3.prototype.adjustNavigation = function(container2, itemGroup) { - var _this = this; - var startX = this.startX; - var startY = this.startY; - var layout6 = this.get("layout"); - var subGroups = itemGroup.findAll(function(item) { - return item.get("name") === "legend-item"; - }); - var maxWidth = this.get("maxWidth"); - var maxHeight = this.get("maxHeight"); - var itemWidth = this.get("itemWidth"); - var itemSpacing = this.get("itemSpacing"); - var itemHeight = this.getItemHeight(); - var pageNavigator = deep_mix_default({}, DEFAULT_PAGE_NAVIGATOR, this.get("pageNavigator")); - var navigation = this.drawNavigation(container2, layout6, "00/00", pageNavigator); - var navigationBBox = navigation.getBBox(); - var currentPoint = { x: startX, y: startY }; - var pages = 1; - var widthLimit = 0; - var pageWidth = 0; - var maxItemWidth = 0; - var itemMarginBottom = this.get("itemMarginBottom"); - if (layout6 === "horizontal") { - var maxRow = this.get("maxRow") || 1; - var maxRowHeight_1 = itemHeight + (maxRow === 1 ? 0 : itemMarginBottom); - this.pageHeight = maxRowHeight_1 * maxRow; - each_default(subGroups, function(item) { - var bbox = item.getBBox(); - var width2 = itemWidth || bbox.width; - if (widthLimit && widthLimit < currentPoint.x + width2 + itemSpacing || maxWidth < currentPoint.x + width2 + itemSpacing + navigationBBox.width) { - if (pages === 1) { - widthLimit = currentPoint.x + itemSpacing; - _this.pageWidth = widthLimit; - _this.moveElementTo(navigation, { - x: maxWidth - itemSpacing - navigationBBox.width - navigationBBox.minX, - y: currentPoint.y + itemHeight / 2 - navigationBBox.height / 2 - navigationBBox.minY - }); - } - pages += 1; - currentPoint.x = startX; - currentPoint.y += maxRowHeight_1; - } - _this.moveElementTo(item, currentPoint); - item.getParent().setClip({ - type: "rect", - attrs: { - x: currentPoint.x, - y: currentPoint.y, - width: width2 + itemSpacing, - height: itemHeight - } - }); - currentPoint.x += width2 + itemSpacing; - }); - } else { - each_default(subGroups, function(item) { - var bbox = item.getBBox(); - if (bbox.width > pageWidth) { - pageWidth = bbox.width; - } - }); - maxItemWidth = pageWidth; - pageWidth += itemSpacing; - if (maxWidth) { - pageWidth = Math.min(maxWidth, pageWidth); - maxItemWidth = Math.min(maxWidth, maxItemWidth); - } - this.pageWidth = pageWidth; - this.pageHeight = maxHeight - Math.max(navigationBBox.height, itemHeight + itemMarginBottom); - var cntPerPage_1 = Math.floor(this.pageHeight / (itemHeight + itemMarginBottom)); - each_default(subGroups, function(item, index2) { - if (index2 !== 0 && index2 % cntPerPage_1 === 0) { - pages += 1; - currentPoint.x += pageWidth; - currentPoint.y = startY; - } - _this.moveElementTo(item, currentPoint); - item.getParent().setClip({ - type: "rect", - attrs: { - x: currentPoint.x, - y: currentPoint.y, - width: pageWidth, - height: itemHeight - } - }); - currentPoint.y += itemHeight + itemMarginBottom; - }); - this.totalPagesCnt = pages; - this.moveElementTo(navigation, { - x: startX + maxItemWidth / 2 - navigationBBox.width / 2 - navigationBBox.minX, - y: maxHeight - navigationBBox.height - navigationBBox.minY - }); - } - if (this.pageHeight && this.pageWidth) { - itemGroup.getParent().setClip({ - type: "rect", - attrs: { - x: this.startX, - y: this.startY, - width: this.pageWidth, - height: this.pageHeight - } - }); - } - if (layout6 === "horizontal" && this.get("maxRow")) { - this.totalPagesCnt = Math.ceil(pages / this.get("maxRow")); - } else { - this.totalPagesCnt = pages; - } - if (this.currentPageIndex > this.totalPagesCnt) { - this.currentPageIndex = 1; - } - this.updateNavigation(navigation); - itemGroup.attr("matrix", this.getCurrentNavigationMatrix()); - }; - Category3.prototype.drawNavigation = function(group2, layout6, text, styleCfg) { - var currentPoint = { x: 0, y: 0 }; - var subGroup = this.addGroup(group2, { - id: this.getElementId("navigation-group"), - name: "legend-navigation" - }); - var _a6 = get_default(styleCfg.marker, "style", {}), _b = _a6.size, size2 = _b === void 0 ? 12 : _b, arrowStyle = __rest(_a6, ["size"]); - var leftArrow = this.drawArrow(subGroup, currentPoint, LEFT_ARROW_NAME, layout6 === "horizontal" ? "up" : "left", size2, arrowStyle); - leftArrow.on("click", this.onNavigationBack); - var leftArrowBBox = leftArrow.getBBox(); - currentPoint.x += leftArrowBBox.width + 2; - var textShape = this.addShape(subGroup, { - type: "text", - id: this.getElementId("navigation-text"), - name: "navigation-text", - attrs: __assign({ x: currentPoint.x, y: currentPoint.y + size2 / 2, text, textBaseline: "middle" }, get_default(styleCfg.text, "style")) - }); - var textBBox = textShape.getBBox(); - currentPoint.x += textBBox.width + 2; - var rightArrow = this.drawArrow(subGroup, currentPoint, RIGHT_ARROW_NAME, layout6 === "horizontal" ? "down" : "right", size2, arrowStyle); - rightArrow.on("click", this.onNavigationAfter); - return subGroup; - }; - Category3.prototype.updateNavigation = function(navigation) { - var pageNavigator = deep_mix_default({}, DEFAULT_PAGE_NAVIGATOR, this.get("pageNavigator")); - var _a6 = pageNavigator.marker.style, fill = _a6.fill, opacity = _a6.opacity, inactiveFill = _a6.inactiveFill, inactiveOpacity = _a6.inactiveOpacity; - var text = this.currentPageIndex + "/" + this.totalPagesCnt; - var textShape = navigation ? navigation.getChildren()[1] : this.getElementByLocalId("navigation-text"); - var leftArrow = navigation ? navigation.findById(this.getElementId(LEFT_ARROW_NAME)) : this.getElementByLocalId(LEFT_ARROW_NAME); - var rightArrow = navigation ? navigation.findById(this.getElementId(RIGHT_ARROW_NAME)) : this.getElementByLocalId(RIGHT_ARROW_NAME); - textShape.attr("text", text); - leftArrow.attr("opacity", this.currentPageIndex === 1 ? inactiveOpacity : opacity); - leftArrow.attr("fill", this.currentPageIndex === 1 ? inactiveFill : fill); - leftArrow.attr("cursor", this.currentPageIndex === 1 ? "not-allowed" : "pointer"); - rightArrow.attr("opacity", this.currentPageIndex === this.totalPagesCnt ? inactiveOpacity : opacity); - rightArrow.attr("fill", this.currentPageIndex === this.totalPagesCnt ? inactiveFill : fill); - rightArrow.attr("cursor", this.currentPageIndex === this.totalPagesCnt ? "not-allowed" : "pointer"); - var cursorX = leftArrow.getBBox().maxX + 2; - textShape.attr("x", cursorX); - cursorX += textShape.getBBox().width + 2; - this.updateArrowPath(rightArrow, { x: cursorX, y: 0 }); - }; - Category3.prototype.drawArrow = function(group2, currentPoint, name, direction5, size2, style) { - var x6 = currentPoint.x, y5 = currentPoint.y; - var shape = this.addShape(group2, { - type: "path", - id: this.getElementId(name), - name, - attrs: __assign({ - size: size2, - direction: direction5, - path: [["M", x6 + size2 / 2, y5], ["L", x6, y5 + size2], ["L", x6 + size2, y5 + size2], ["Z"]], - cursor: "pointer" - }, style) - }); - shape.attr("matrix", getMatrixByAngle({ x: x6 + size2 / 2, y: y5 + size2 / 2 }, ROTATE_MAP[direction5])); - return shape; - }; - Category3.prototype.updateArrowPath = function(arrow, point2) { - var x6 = point2.x, y5 = point2.y; - var _a6 = arrow.attr(), size2 = _a6.size, direction5 = _a6.direction; - var matrix = getMatrixByAngle({ x: x6 + size2 / 2, y: y5 + size2 / 2 }, ROTATE_MAP[direction5]); - arrow.attr("path", [["M", x6 + size2 / 2, y5], ["L", x6, y5 + size2], ["L", x6 + size2, y5 + size2], ["Z"]]); - arrow.attr("matrix", matrix); - }; - Category3.prototype.getCurrentNavigationMatrix = function() { - var _a6 = this, currentPageIndex = _a6.currentPageIndex, pageWidth = _a6.pageWidth, pageHeight = _a6.pageHeight; - var layout6 = this.get("layout"); - var translate6 = layout6 === "horizontal" ? { - x: 0, - y: pageHeight * (1 - currentPageIndex) - } : { - x: pageWidth * (1 - currentPageIndex), - y: 0 - }; - return getMatrixByTranslate(translate6); - }; - Category3.prototype.applyItemStates = function(item, subGroup) { - var states = this.getItemStates(item); - var hasStates = states.length > 0; - if (hasStates) { - var children = subGroup.getChildren(); - var itemStates_1 = this.get("itemStates"); - each_default(children, function(element) { - var name = element.get("name"); - var elName = name.split("-")[2]; - var statesStyle = getStatesStyle(item, elName, itemStates_1); - if (statesStyle) { - element.attr(statesStyle); - if (elName === "marker" && !(element.get("isStroke") && element.get("isFill"))) { - if (element.get("isStroke")) { - element.attr("fill", null); - } - if (element.get("isFill")) { - element.attr("stroke", null); - } - } - } - }); - } - }; - Category3.prototype.getLimitItemWidth = function() { - var itemWidth = this.get("itemWidth"); - var maxItemWidth = this.get("maxItemWidth"); - if (maxItemWidth) { - if (itemWidth) { - maxItemWidth = itemWidth <= maxItemWidth ? itemWidth : maxItemWidth; - } - } else if (itemWidth) { - maxItemWidth = itemWidth; - } - return maxItemWidth; - }; - return Category3; -}(base_default11); -var category_default = Category2; - -// node_modules/@antv/component/esm/legend/continuous.js -var HANDLER_HEIGHT_RATIO = 1.4; -var HANDLER_TRIANGLE_RATIO = 0.4; -var ContinueLegend = function(_super) { - __extends(ContinueLegend2, _super); - function ContinueLegend2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ContinueLegend2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { type: "continue", min: 0, max: 100, value: null, colors: [], track: {}, rail: {}, label: {}, handler: {}, slidable: true, tip: null, step: null, maxWidth: null, maxHeight: null, defaultCfg: { - label: { - align: "rail", - spacing: 5, - formatter: null, - style: { - fontSize: 12, - fill: theme_default.textColor, - textBaseline: "middle", - fontFamily: theme_default.fontFamily - } - }, - handler: { - size: 10, - style: { - fill: "#fff", - stroke: "#333" - } - }, - track: {}, - rail: { - type: "color", - size: 20, - defaultLength: 100, - style: { - fill: "#DCDEE2" - } - }, - title: { - spacing: 5, - style: { - fill: theme_default.textColor, - fontSize: 12, - textAlign: "start", - textBaseline: "top" - } - } - } }); - }; - ContinueLegend2.prototype.isSlider = function() { - return true; - }; - ContinueLegend2.prototype.getValue = function() { - return this.getCurrentValue(); - }; - ContinueLegend2.prototype.getRange = function() { - return { - min: this.get("min"), - max: this.get("max") - }; - }; - ContinueLegend2.prototype.setRange = function(min7, max8) { - this.update({ - min: min7, - max: max8 - }); - }; - ContinueLegend2.prototype.setValue = function(value2) { - var originValue = this.getValue(); - this.set("value", value2); - var group2 = this.get("group"); - this.resetTrackClip(); - if (this.get("slidable")) { - this.resetHandlers(group2); - } - this.delegateEmit("valuechanged", { - originValue, - value: value2 - }); - }; - ContinueLegend2.prototype.initEvent = function() { - var group2 = this.get("group"); - this.bindSliderEvent(group2); - this.bindRailEvent(group2); - this.bindTrackEvent(group2); - }; - ContinueLegend2.prototype.drawLegendContent = function(group2) { - this.drawRail(group2); - this.drawLabels(group2); - this.fixedElements(group2); - this.resetTrack(group2); - this.resetTrackClip(group2); - if (this.get("slidable")) { - this.resetHandlers(group2); - } - }; - ContinueLegend2.prototype.bindSliderEvent = function(group2) { - this.bindHandlersEvent(group2); - }; - ContinueLegend2.prototype.bindHandlersEvent = function(group2) { - var _this = this; - group2.on("legend-handler-min:drag", function(ev) { - var minValue = _this.getValueByCanvasPoint(ev.x, ev.y); - var currentValue = _this.getCurrentValue(); - var maxValue = currentValue[1]; - if (maxValue < minValue) { - maxValue = minValue; - } - _this.setValue([minValue, maxValue]); - }); - group2.on("legend-handler-max:drag", function(ev) { - var maxValue = _this.getValueByCanvasPoint(ev.x, ev.y); - var currentValue = _this.getCurrentValue(); - var minValue = currentValue[0]; - if (minValue > maxValue) { - minValue = maxValue; - } - _this.setValue([minValue, maxValue]); - }); - }; - ContinueLegend2.prototype.bindRailEvent = function(group2) { - }; - ContinueLegend2.prototype.bindTrackEvent = function(group2) { - var _this = this; - var prePoint = null; - group2.on("legend-track:dragstart", function(ev) { - prePoint = { - x: ev.x, - y: ev.y - }; - }); - group2.on("legend-track:drag", function(ev) { - if (!prePoint) { - return; - } - var preValue = _this.getValueByCanvasPoint(prePoint.x, prePoint.y); - var curValue = _this.getValueByCanvasPoint(ev.x, ev.y); - var currentValue = _this.getCurrentValue(); - var curDiff = currentValue[1] - currentValue[0]; - var range = _this.getRange(); - var dValue = curValue - preValue; - if (dValue < 0) { - if (currentValue[0] + dValue > range.min) { - _this.setValue([currentValue[0] + dValue, currentValue[1] + dValue]); - } else { - _this.setValue([range.min, range.min + curDiff]); - } - } else if (dValue > 0) { - if (dValue > 0 && currentValue[1] + dValue < range.max) { - _this.setValue([currentValue[0] + dValue, currentValue[1] + dValue]); - } else { - _this.setValue([range.max - curDiff, range.max]); - } - } - prePoint = { - x: ev.x, - y: ev.y - }; - }); - group2.on("legend-track:dragend", function(ev) { - prePoint = null; - }); - }; - ContinueLegend2.prototype.drawLabels = function(group2) { - this.drawLabel("min", group2); - this.drawLabel("max", group2); - }; - ContinueLegend2.prototype.drawLabel = function(name, group2) { - var labelCfg = this.get("label"); - var style = labelCfg.style; - var labelAlign = labelCfg.align; - var labelFormatter = labelCfg.formatter; - var value2 = this.get(name); - var alignAttrs = this.getLabelAlignAttrs(name, labelAlign); - var localId = "label-" + name; - this.addShape(group2, { - type: "text", - id: this.getElementId(localId), - name: "legend-label-" + name, - attrs: __assign(__assign({ x: 0, y: 0, text: is_function_default(labelFormatter) ? labelFormatter(value2) : value2 }, style), alignAttrs) - }); - }; - ContinueLegend2.prototype.getLabelAlignAttrs = function(name, align) { - var isVertical2 = this.isVertical(); - var textAlign = "center"; - var textBaseline = "middle"; - if (isVertical2) { - textAlign = "start"; - if (align !== "rail") { - if (name === "min") { - textBaseline = "top"; - } else { - textBaseline = "bottom"; - } - } else { - textBaseline = "top"; - } - } else { - if (align !== "rail") { - textBaseline = "top"; - if (name === "min") { - textAlign = "start"; - } else { - textAlign = "end"; - } - } else { - textAlign = "start"; - textBaseline = "middle"; - } - } - return { - textAlign, - textBaseline - }; - }; - ContinueLegend2.prototype.getRailPath = function(x6, y5, w4, h3) { - var railCfg = this.get("rail"); - var size2 = railCfg.size, defaultLength = railCfg.defaultLength, type2 = railCfg.type; - var isVertical2 = this.isVertical(); - var length5 = defaultLength; - var width2 = w4; - var height = h3; - if (!width2) { - width2 = isVertical2 ? size2 : length5; - } - if (!height) { - height = isVertical2 ? length5 : size2; - } - var path = []; - if (type2 === "color") { - path.push(["M", x6, y5]); - path.push(["L", x6 + width2, y5]); - path.push(["L", x6 + width2, y5 + height]); - path.push(["L", x6, y5 + height]); - path.push(["Z"]); - } else { - path.push(["M", x6 + width2, y5]); - path.push(["L", x6 + width2, y5 + height]); - path.push(["L", x6, y5 + height]); - path.push(["Z"]); - } - return path; - }; - ContinueLegend2.prototype.drawRail = function(group2) { - var railCfg = this.get("rail"); - var style = railCfg.style; - this.addShape(group2, { - type: "path", - id: this.getElementId("rail"), - name: "legend-rail", - attrs: __assign({ path: this.getRailPath(0, 0) }, style) - }); - }; - ContinueLegend2.prototype.getTrackColor = function(colors) { - var count2 = colors.length; - if (!count2) { - return null; - } - if (count2 === 1) { - return colors[0]; - } - var color4; - if (this.isVertical()) { - color4 = "l(90)"; - } else { - color4 = "l(0)"; - } - for (var i4 = 0; i4 < count2; i4++) { - var percent2 = i4 / (count2 - 1); - color4 += " " + percent2 + ":" + colors[i4]; - } - return color4; - }; - ContinueLegend2.prototype.getTrackPath = function(group2) { - var railShape = this.getRailShape(group2); - var path = railShape.attr("path"); - return clone_default(path); - }; - ContinueLegend2.prototype.getClipTrackAttrs = function(group2) { - var value2 = this.getCurrentValue(); - var min7 = value2[0], max8 = value2[1]; - var railBBox = this.getRailBBox(group2); - var startPoint = this.getPointByValue(min7, group2); - var endPoint = this.getPointByValue(max8, group2); - var isVertical2 = this.isVertical(); - var x6; - var y5; - var width2; - var height; - if (isVertical2) { - x6 = railBBox.minX; - y5 = startPoint.y; - width2 = railBBox.width; - height = endPoint.y - startPoint.y; - } else { - x6 = startPoint.x; - y5 = railBBox.minY; - width2 = endPoint.x - startPoint.x; - height = railBBox.height; - } - return { - x: x6, - y: y5, - width: width2, - height - }; - }; - ContinueLegend2.prototype.getTrackAttrs = function(group2) { - var trackCfg = this.get("track"); - var colors = this.get("colors"); - var path = this.getTrackPath(group2); - return mix({ - path, - fill: this.getTrackColor(colors) - }, trackCfg.style); - }; - ContinueLegend2.prototype.resetTrackClip = function(group2) { - var container2 = group2 || this.get("group"); - var trackId = this.getElementId("track"); - var trackShape = container2.findById(trackId); - var clipShape = trackShape.getClip(); - var attrs = this.getClipTrackAttrs(group2); - if (!clipShape) { - trackShape.setClip({ - type: "rect", - attrs - }); - } else { - clipShape.attr(attrs); - } - }; - ContinueLegend2.prototype.resetTrack = function(group2) { - var trackId = this.getElementId("track"); - var trackShape = group2.findById(trackId); - var trackAttrs = this.getTrackAttrs(group2); - if (trackShape) { - trackShape.attr(trackAttrs); - } else { - this.addShape(group2, { - type: "path", - id: trackId, - draggable: this.get("slidable"), - name: "legend-track", - attrs: trackAttrs - }); - } - }; - ContinueLegend2.prototype.getPointByValue = function(value2, group2) { - var _a6 = this.getRange(), min7 = _a6.min, max8 = _a6.max; - var percent2 = (value2 - min7) / (max8 - min7); - var bbox = this.getRailBBox(group2); - var isVertcal = this.isVertical(); - var point2 = { x: 0, y: 0 }; - if (isVertcal) { - point2.x = bbox.minX + bbox.width / 2; - point2.y = getValueByPercent(bbox.minY, bbox.maxY, percent2); - } else { - point2.x = getValueByPercent(bbox.minX, bbox.maxX, percent2); - point2.y = bbox.minY + bbox.height / 2; - } - return point2; - }; - ContinueLegend2.prototype.getRailShape = function(group2) { - var container2 = group2 || this.get("group"); - return container2.findById(this.getElementId("rail")); - }; - ContinueLegend2.prototype.getRailBBox = function(group2) { - var railShape = this.getRailShape(group2); - var bbox = railShape.getBBox(); - return bbox; - }; - ContinueLegend2.prototype.getRailCanvasBBox = function() { - var container2 = this.get("group"); - var railShape = container2.findById(this.getElementId("rail")); - var bbox = railShape.getCanvasBBox(); - return bbox; - }; - ContinueLegend2.prototype.isVertical = function() { - return this.get("layout") === "vertical"; - }; - ContinueLegend2.prototype.getValueByCanvasPoint = function(x6, y5) { - var _a6 = this.getRange(), min7 = _a6.min, max8 = _a6.max; - var bbox = this.getRailCanvasBBox(); - var isVertcal = this.isVertical(); - var step = this.get("step"); - var percent2; - if (isVertcal) { - percent2 = (y5 - bbox.minY) / bbox.height; - } else { - percent2 = (x6 - bbox.minX) / bbox.width; - } - var value2 = getValueByPercent(min7, max8, percent2); - if (step) { - var count2 = Math.round((value2 - min7) / step); - value2 = min7 + count2 * step; - } - if (value2 > max8) { - value2 = max8; - } - if (value2 < min7) { - value2 = min7; - } - return value2; - }; - ContinueLegend2.prototype.getCurrentValue = function() { - var value2 = this.get("value"); - if (!value2) { - var values2 = this.get("values"); - if (!values2) { - return [this.get("min"), this.get("max")]; - } - return [Math.max(Math.min.apply(Math, __spreadArrays(values2, [this.get("max")])), this.get("min")), Math.min(Math.max.apply(Math, __spreadArrays(values2, [this.get("min")])), this.get("max"))]; - } - return value2; - }; - ContinueLegend2.prototype.resetHandlers = function(group2) { - var currentValue = this.getCurrentValue(); - var min7 = currentValue[0], max8 = currentValue[1]; - this.resetHandler(group2, "min", min7); - this.resetHandler(group2, "max", max8); - }; - ContinueLegend2.prototype.getHandlerPath = function(handlerCfg, point2) { - var isVertical2 = this.isVertical(); - var path = []; - var width2 = handlerCfg.size; - var x6 = point2.x, y5 = point2.y; - var height = width2 * HANDLER_HEIGHT_RATIO; - var halfWidth = width2 / 2; - var oneSixthWidth = width2 / 6; - if (isVertical2) { - var triangleX = x6 + height * HANDLER_TRIANGLE_RATIO; - path.push(["M", x6, y5]); - path.push(["L", triangleX, y5 + halfWidth]); - path.push(["L", x6 + height, y5 + halfWidth]); - path.push(["L", x6 + height, y5 - halfWidth]); - path.push(["L", triangleX, y5 - halfWidth]); - path.push(["Z"]); - path.push(["M", triangleX, y5 + oneSixthWidth]); - path.push(["L", x6 + height - 2, y5 + oneSixthWidth]); - path.push(["M", triangleX, y5 - oneSixthWidth]); - path.push(["L", x6 + height - 2, y5 - oneSixthWidth]); - } else { - var triangleY = y5 + height * HANDLER_TRIANGLE_RATIO; - path.push(["M", x6, y5]); - path.push(["L", x6 - halfWidth, triangleY]); - path.push(["L", x6 - halfWidth, y5 + height]); - path.push(["L", x6 + halfWidth, y5 + height]); - path.push(["L", x6 + halfWidth, triangleY]); - path.push(["Z"]); - path.push(["M", x6 - oneSixthWidth, triangleY]); - path.push(["L", x6 - oneSixthWidth, y5 + height - 2]); - path.push(["M", x6 + oneSixthWidth, triangleY]); - path.push(["L", x6 + oneSixthWidth, y5 + height - 2]); - } - return path; - }; - ContinueLegend2.prototype.resetHandler = function(group2, name, value2) { - var point2 = this.getPointByValue(value2, group2); - var handlerCfg = this.get("handler"); - var path = this.getHandlerPath(handlerCfg, point2); - var id = this.getElementId("handler-" + name); - var handlerShape = group2.findById(id); - var isVertical2 = this.isVertical(); - if (handlerShape) { - handlerShape.attr("path", path); - } else { - this.addShape(group2, { - type: "path", - name: "legend-handler-" + name, - draggable: true, - id, - attrs: __assign(__assign({ path }, handlerCfg.style), { cursor: isVertical2 ? "ns-resize" : "ew-resize" }) - }); - } - }; - ContinueLegend2.prototype.fixedElements = function(group2) { - var railShape = group2.findById(this.getElementId("rail")); - var minLabel = group2.findById(this.getElementId("label-min")); - var maxLabel = group2.findById(this.getElementId("label-max")); - var startPoint = this.getDrawPoint(); - if (this.isVertical()) { - this.fixedVertail(minLabel, maxLabel, railShape, startPoint); - } else { - this.fixedHorizontal(minLabel, maxLabel, railShape, startPoint); - } - }; - ContinueLegend2.prototype.fitRailLength = function(minLabelBBox, maxLabelBBox, railBBox, railShape) { - var isVertical2 = this.isVertical(); - var lengthField = isVertical2 ? "height" : "width"; - var labelCfg = this.get("label"); - var labelAlign = labelCfg.align; - var spacing = labelCfg.spacing; - var maxLength = this.get("max" + upper_first_default(lengthField)); - if (maxLength) { - var elementsLength = labelAlign === "rail" ? railBBox[lengthField] + minLabelBBox[lengthField] + maxLabelBBox[lengthField] + spacing * 2 : railBBox[lengthField]; - var diff2 = elementsLength - maxLength; - if (diff2 > 0) { - this.changeRailLength(railShape, lengthField, railBBox[lengthField] - diff2); - } - } - }; - ContinueLegend2.prototype.changeRailLength = function(railShape, lengthField, length5) { - var bbox = railShape.getBBox(); - var path; - if (lengthField === "height") { - path = this.getRailPath(bbox.x, bbox.y, bbox.width, length5); - } else { - path = this.getRailPath(bbox.x, bbox.y, length5, bbox.height); - } - railShape.attr("path", path); - }; - ContinueLegend2.prototype.changeRailPosition = function(railShape, x6, y5) { - var bbox = railShape.getBBox(); - var path = this.getRailPath(x6, y5, bbox.width, bbox.height); - railShape.attr("path", path); - }; - ContinueLegend2.prototype.fixedHorizontal = function(minLabel, maxLabel, railShape, startPoint) { - var labelCfg = this.get("label"); - var labelAlign = labelCfg.align; - var spacing = labelCfg.spacing; - var railBBox = railShape.getBBox(); - var minLabelBBox = minLabel.getBBox(); - var maxLabelBBox = maxLabel.getBBox(); - var railHeight = railBBox.height; - this.fitRailLength(minLabelBBox, maxLabelBBox, railBBox, railShape); - railBBox = railShape.getBBox(); - if (labelAlign === "rail") { - minLabel.attr({ - x: startPoint.x, - y: startPoint.y + railHeight / 2 - }); - this.changeRailPosition(railShape, startPoint.x + minLabelBBox.width + spacing, startPoint.y); - maxLabel.attr({ - x: startPoint.x + minLabelBBox.width + railBBox.width + spacing * 2, - y: startPoint.y + railHeight / 2 - }); - } else if (labelAlign === "top") { - minLabel.attr({ - x: startPoint.x, - y: startPoint.y - }); - maxLabel.attr({ - x: startPoint.x + railBBox.width, - y: startPoint.y - }); - this.changeRailPosition(railShape, startPoint.x, startPoint.y + minLabelBBox.height + spacing); - } else { - this.changeRailPosition(railShape, startPoint.x, startPoint.y); - minLabel.attr({ - x: startPoint.x, - y: startPoint.y + railBBox.height + spacing - }); - maxLabel.attr({ - x: startPoint.x + railBBox.width, - y: startPoint.y + railBBox.height + spacing - }); - } - }; - ContinueLegend2.prototype.fixedVertail = function(minLabel, maxLabel, railShape, startPoint) { - var labelCfg = this.get("label"); - var labelAlign = labelCfg.align; - var spacing = labelCfg.spacing; - var railBBox = railShape.getBBox(); - var minLabelBBox = minLabel.getBBox(); - var maxLabelBBox = maxLabel.getBBox(); - this.fitRailLength(minLabelBBox, maxLabelBBox, railBBox, railShape); - railBBox = railShape.getBBox(); - if (labelAlign === "rail") { - minLabel.attr({ - x: startPoint.x, - y: startPoint.y - }); - this.changeRailPosition(railShape, startPoint.x, startPoint.y + minLabelBBox.height + spacing); - maxLabel.attr({ - x: startPoint.x, - y: startPoint.y + minLabelBBox.height + railBBox.height + spacing * 2 - }); - } else if (labelAlign === "right") { - minLabel.attr({ - x: startPoint.x + railBBox.width + spacing, - y: startPoint.y - }); - this.changeRailPosition(railShape, startPoint.x, startPoint.y); - maxLabel.attr({ - x: startPoint.x + railBBox.width + spacing, - y: startPoint.y + railBBox.height - }); - } else { - var maxLabelWidth = Math.max(minLabelBBox.width, maxLabelBBox.width); - minLabel.attr({ - x: startPoint.x, - y: startPoint.y - }); - this.changeRailPosition(railShape, startPoint.x + maxLabelWidth + spacing, startPoint.y); - maxLabel.attr({ - x: startPoint.x, - y: startPoint.y + railBBox.height - }); - } - }; - return ContinueLegend2; -}(base_default11); -var continuous_default = ContinueLegend; - -// node_modules/@antv/component/esm/tooltip/index.js -var tooltip_exports = {}; -__export(tooltip_exports, { - Html: () => html_default3 -}); - -// node_modules/@antv/component/esm/tooltip/css-const.js -var css_const_exports = {}; -__export(css_const_exports, { - CONTAINER_CLASS: () => CONTAINER_CLASS2, - CROSSHAIR_X: () => CROSSHAIR_X, - CROSSHAIR_Y: () => CROSSHAIR_Y, - LIST_CLASS: () => LIST_CLASS, - LIST_ITEM_CLASS: () => LIST_ITEM_CLASS, - MARKER_CLASS: () => MARKER_CLASS, - NAME_CLASS: () => NAME_CLASS, - TITLE_CLASS: () => TITLE_CLASS, - VALUE_CLASS: () => VALUE_CLASS -}); -var CONTAINER_CLASS2 = "g2-tooltip"; -var TITLE_CLASS = "g2-tooltip-title"; -var LIST_CLASS = "g2-tooltip-list"; -var LIST_ITEM_CLASS = "g2-tooltip-list-item"; -var MARKER_CLASS = "g2-tooltip-marker"; -var VALUE_CLASS = "g2-tooltip-value"; -var NAME_CLASS = "g2-tooltip-name"; -var CROSSHAIR_X = "g2-tooltip-crosshair-x"; -var CROSSHAIR_Y = "g2-tooltip-crosshair-y"; - -// node_modules/@antv/component/esm/tooltip/html-theme.js -var _a2; -var html_theme_default2 = (_a2 = {}, _a2["" + CONTAINER_CLASS2] = { - position: "absolute", - visibility: "visible", - zIndex: 8, - transition: "visibility 0.2s cubic-bezier(0.23, 1, 0.32, 1), left 0.4s cubic-bezier(0.23, 1, 0.32, 1), top 0.4s cubic-bezier(0.23, 1, 0.32, 1)", - backgroundColor: "rgba(255, 255, 255, 0.9)", - boxShadow: "0px 0px 10px #aeaeae", - borderRadius: "3px", - color: "rgb(87, 87, 87)", - fontSize: "12px", - fontFamily: theme_default.fontFamily, - lineHeight: "20px", - padding: "10px 10px 6px 10px" -}, _a2["" + TITLE_CLASS] = { - marginBottom: "4px" -}, _a2["" + LIST_CLASS] = { - margin: "0px", - listStyleType: "none", - padding: "0px" -}, _a2["" + LIST_ITEM_CLASS] = { - listStyleType: "none", - marginBottom: "4px" -}, _a2["" + MARKER_CLASS] = { - width: "8px", - height: "8px", - borderRadius: "50%", - display: "inline-block", - marginRight: "8px" -}, _a2["" + VALUE_CLASS] = { - display: "inline-block", - float: "right", - marginLeft: "30px" -}, _a2["" + CROSSHAIR_X] = { - position: "absolute", - width: "1px", - backgroundColor: "rgba(0, 0, 0, 0.25)" -}, _a2["" + CROSSHAIR_Y] = { - position: "absolute", - height: "1px", - backgroundColor: "rgba(0, 0, 0, 0.25)" -}, _a2); - -// node_modules/@antv/component/esm/util/align.js -function getOutSides(x6, y5, width2, height, limitBox) { - var hits = { - left: x6 < limitBox.x, - right: x6 + width2 > limitBox.x + limitBox.width, - top: y5 < limitBox.y, - bottom: y5 + height > limitBox.y + limitBox.height - }; - return hits; -} -function getPointByPosition(x6, y5, offset, width2, height, position2) { - var px = x6; - var py = y5; - switch (position2) { - case "left": - px = x6 - width2 - offset; - py = y5 - height / 2; - break; - case "right": - px = x6 + offset; - py = y5 - height / 2; - break; - case "top": - px = x6 - width2 / 2; - py = y5 - height - offset; - break; - case "bottom": - px = x6 - width2 / 2; - py = y5 + offset; - break; - default: - px = x6 + offset; - py = y5 - height - offset; - break; - } - return { - x: px, - y: py - }; -} -function getAlignPoint(x6, y5, offset, width2, height, position2, limitBox) { - var point2 = getPointByPosition(x6, y5, offset, width2, height, position2); - if (limitBox) { - var outSides = getOutSides(point2.x, point2.y, width2, height, limitBox); - if (position2 === "auto") { - if (outSides.right) { - point2.x = Math.max(0, x6 - width2 - offset); - } - if (outSides.top) { - point2.y = Math.max(0, y5 - height - offset); - } - } else if (position2 === "top" || position2 === "bottom") { - if (outSides.left) { - point2.x = limitBox.x; - } - if (outSides.right) { - point2.x = limitBox.x + limitBox.width - width2; - } - if (position2 === "top" && outSides.top) { - point2.y = y5 + offset; - } - if (position2 === "bottom" && outSides.bottom) { - point2.y = y5 - height - offset; - } - } else { - if (outSides.top) { - point2.y = limitBox.y; - } - if (outSides.bottom) { - point2.y = limitBox.y + limitBox.height - height; - } - if (position2 === "left" && outSides.left) { - point2.x = x6 + offset; - } - if (position2 === "right" && outSides.right) { - point2.x = x6 - width2 - offset; - } - } - } - return point2; -} - -// node_modules/@antv/component/esm/tooltip/html.js -function hasOneKey(obj, keys2) { - var result = false; - each_default(keys2, function(key) { - if (has_key_default(obj, key)) { - result = true; - return false; - } - }); - return result; -} -var Tooltip = function(_super) { - __extends(Tooltip5, _super); - function Tooltip5() { - return _super !== null && _super.apply(this, arguments) || this; - } - Tooltip5.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { - name: "tooltip", - type: "html", - x: 0, - y: 0, - items: [], - customContent: null, - containerTpl: '
    ', - itemTpl: '
  • \n \n {name}:\n {value}\n
  • ', - xCrosshairTpl: '
    ', - yCrosshairTpl: '
    ', - title: null, - showTitle: true, - region: null, - crosshairsRegion: null, - containerClassName: CONTAINER_CLASS2, - crosshairs: null, - offset: 10, - position: "right", - domStyles: null, - defaultStyles: html_theme_default2 - }); - }; - Tooltip5.prototype.render = function() { - if (this.get("customContent")) { - this.renderCustomContent(); - } else { - this.resetTitle(); - this.renderItems(); - } - this.resetPosition(); - }; - Tooltip5.prototype.clear = function() { - this.clearCrosshairs(); - this.setTitle(""); - this.clearItemDoms(); - }; - Tooltip5.prototype.show = function() { - var container2 = this.getContainer(); - if (!container2 || this.destroyed) { - return; - } - this.set("visible", true); - modifyCSS(container2, { - visibility: "visible" - }); - this.setCrossHairsVisible(true); - }; - Tooltip5.prototype.hide = function() { - var container2 = this.getContainer(); - if (!container2 || this.destroyed) { - return; - } - this.set("visible", false); - modifyCSS(container2, { - visibility: "hidden" - }); - this.setCrossHairsVisible(false); - }; - Tooltip5.prototype.getLocation = function() { - return { x: this.get("x"), y: this.get("y") }; - }; - Tooltip5.prototype.setLocation = function(point2) { - this.set("x", point2.x); - this.set("y", point2.y); - this.resetPosition(); - }; - Tooltip5.prototype.setCrossHairsVisible = function(visible) { - var display = visible ? "" : "none"; - var xCrosshairDom = this.get("xCrosshairDom"); - var yCrosshairDom = this.get("yCrosshairDom"); - xCrosshairDom && modifyCSS(xCrosshairDom, { - display - }); - yCrosshairDom && modifyCSS(yCrosshairDom, { - display - }); - }; - Tooltip5.prototype.initContainer = function() { - _super.prototype.initContainer.call(this); - if (this.get("customContent")) { - if (this.get("container")) { - this.get("container").remove(); - } - var container2 = this.getHtmlContentNode(); - this.get("parent").appendChild(container2); - this.set("container", container2); - this.resetStyles(); - this.applyStyles(); - } - }; - Tooltip5.prototype.updateInner = function(cfg) { - if (this.get("customContent")) { - this.renderCustomContent(); - } else { - if (hasOneKey(cfg, ["title", "showTitle"])) { - this.resetTitle(); - } - if (has_key_default(cfg, "items")) { - this.renderItems(); - } - } - _super.prototype.updateInner.call(this, cfg); - }; - Tooltip5.prototype.initDom = function() { - this.cacheDoms(); - }; - Tooltip5.prototype.removeDom = function() { - _super.prototype.removeDom.call(this); - this.clearCrosshairs(); - }; - Tooltip5.prototype.resetPosition = function() { - var x6 = this.get("x"); - var y5 = this.get("y"); - var offset = this.get("offset"); - var _a6 = this.getOffset(), offsetX = _a6.offsetX, offsetY = _a6.offsetY; - var position2 = this.get("position"); - var region = this.get("region"); - var container2 = this.getContainer(); - var bbox = this.getBBox(); - var width2 = bbox.width, height = bbox.height; - var limitBox; - if (region) { - limitBox = regionToBBox(region); - } - var point2 = getAlignPoint(x6, y5, offset, width2, height, position2, limitBox); - modifyCSS(container2, { - left: toPx(point2.x + offsetX), - top: toPx(point2.y + offsetY) - }); - this.resetCrosshairs(); - }; - Tooltip5.prototype.renderCustomContent = function() { - var node = this.getHtmlContentNode(); - var parent = this.get("parent"); - var curContainer = this.get("container"); - if (curContainer && curContainer.parentNode === parent) { - parent.replaceChild(node, curContainer); - } else { - parent.appendChild(node); - } - this.set("container", node); - this.resetStyles(); - this.applyStyles(); - }; - Tooltip5.prototype.getHtmlContentNode = function() { - var node; - var customContent = this.get("customContent"); - if (customContent) { - var elem = customContent(this.get("title"), this.get("items")); - if (is_element_default(elem)) { - node = elem; - } else { - node = createDom(elem); - } - } - return node; - }; - Tooltip5.prototype.cacheDoms = function() { - var container2 = this.getContainer(); - var titleDom = container2.getElementsByClassName(TITLE_CLASS)[0]; - var listDom = container2.getElementsByClassName(LIST_CLASS)[0]; - this.set("titleDom", titleDom); - this.set("listDom", listDom); - }; - Tooltip5.prototype.resetTitle = function() { - var title = this.get("title"); - var showTitle = this.get("showTitle"); - if (showTitle && title) { - this.setTitle(title); - } else { - this.setTitle(""); - } - }; - Tooltip5.prototype.setTitle = function(text) { - var titleDom = this.get("titleDom"); - if (titleDom) { - titleDom.innerText = text; - } - }; - Tooltip5.prototype.resetCrosshairs = function() { - var crosshairsRegion = this.get("crosshairsRegion"); - var crosshairs = this.get("crosshairs"); - if (!crosshairsRegion || !crosshairs) { - this.clearCrosshairs(); - } else { - var crosshairBox = regionToBBox(crosshairsRegion); - var xCrosshairDom = this.get("xCrosshairDom"); - var yCrosshairDom = this.get("yCrosshairDom"); - if (crosshairs === "x") { - this.resetCrosshair("x", crosshairBox); - if (yCrosshairDom) { - yCrosshairDom.remove(); - this.set("yCrosshairDom", null); - } - } else if (crosshairs === "y") { - this.resetCrosshair("y", crosshairBox); - if (xCrosshairDom) { - xCrosshairDom.remove(); - this.set("xCrosshairDom", null); - } - } else { - this.resetCrosshair("x", crosshairBox); - this.resetCrosshair("y", crosshairBox); - } - this.setCrossHairsVisible(this.get("visible")); - } - }; - Tooltip5.prototype.resetCrosshair = function(name, bbox) { - var croshairDom = this.checkCrosshair(name); - var value2 = this.get(name); - if (name === "x") { - modifyCSS(croshairDom, { - left: toPx(value2), - top: toPx(bbox.y), - height: toPx(bbox.height) - }); - } else { - modifyCSS(croshairDom, { - top: toPx(value2), - left: toPx(bbox.x), - width: toPx(bbox.width) - }); - } - }; - Tooltip5.prototype.checkCrosshair = function(name) { - var domName = name + "CrosshairDom"; - var tplName = name + "CrosshairTpl"; - var constName = "CROSSHAIR_" + name.toUpperCase(); - var styleName = css_const_exports[constName]; - var croshairDom = this.get(domName); - var parent = this.get("parent"); - if (!croshairDom) { - croshairDom = createDom(this.get(tplName)); - this.applyStyle(styleName, croshairDom); - parent.appendChild(croshairDom); - this.set(domName, croshairDom); - } - return croshairDom; - }; - Tooltip5.prototype.renderItems = function() { - this.clearItemDoms(); - var items = this.get("items"); - var itemTpl = this.get("itemTpl"); - var listDom = this.get("listDom"); - if (listDom) { - each_default(items, function(item) { - var color4 = esm_default2.toCSSGradient(item.color); - var substituteObj = __assign(__assign({}, item), { color: color4 }); - var domStr = substitute_default(itemTpl, substituteObj); - var itemDom = createDom(domStr); - listDom.appendChild(itemDom); - }); - this.applyChildrenStyles(listDom, this.get("domStyles")); - } - }; - Tooltip5.prototype.clearItemDoms = function() { - if (this.get("listDom")) { - clearDom(this.get("listDom")); - } - }; - Tooltip5.prototype.clearCrosshairs = function() { - var xCrosshairDom = this.get("xCrosshairDom"); - var yCrosshairDom = this.get("yCrosshairDom"); - xCrosshairDom && xCrosshairDom.remove(); - yCrosshairDom && yCrosshairDom.remove(); - this.set("xCrosshairDom", null); - this.set("yCrosshairDom", null); - }; - return Tooltip5; -}(html_component_default); -var html_default3 = Tooltip; - -// node_modules/@antv/component/esm/trend/constant.js -var BACKGROUND_STYLE = { - opacity: 0 -}; -var LINE_STYLE = { - stroke: "#C5C5C5", - strokeOpacity: 0.85 -}; -var AREA_STYLE = { - fill: "#CACED4", - opacity: 0.85 -}; - -// node_modules/@antv/component/esm/trend/path.js -function pointsToPath(points) { - return map_default(points, function(p4, idx) { - var command = idx === 0 ? "M" : "L"; - var x6 = p4[0], y5 = p4[1]; - return [command, x6, y5]; - }); -} -function getLinePath(points) { - return pointsToPath(points); -} -function getSmoothLinePath(points) { - if (points.length <= 2) { - return getLinePath(points); - } - var data3 = []; - each_default(points, function(p4) { - if (!is_equal_default(p4, data3.slice(data3.length - 2))) { - data3.push(p4[0], p4[1]); - } - }); - var path = catmull_rom_2_bezier_default(data3, false); - var _a6 = head(points), x6 = _a6[0], y5 = _a6[1]; - path.unshift(["M", x6, y5]); - return path; -} -function dataToPath(data3, width2, height, smooth) { - if (smooth === void 0) { - smooth = true; - } - var y5 = new linear_default({ - values: data3 - }); - var x6 = new base_default5({ - values: map_default(data3, function(v3, idx) { - return idx; - }) - }); - var points = map_default(data3, function(v3, idx) { - return [x6.scale(idx) * width2, height - y5.scale(v3) * height]; - }); - return smooth ? getSmoothLinePath(points) : getLinePath(points); -} -function getAreaLineY(data3, height) { - var y5 = new linear_default({ - values: data3 - }); - var lineY = Math.max(0, y5.min); - return height - y5.scale(lineY) * height; -} -function linePathToAreaPath(path, width2, height, data3) { - var areaPath = __spreadArrays(path); - var lineYPx = getAreaLineY(data3, height); - areaPath.push(["L", width2, lineYPx]); - areaPath.push(["L", 0, lineYPx]); - areaPath.push(["Z"]); - return areaPath; -} - -// node_modules/@antv/component/esm/trend/trend.js -var Trend = function(_super) { - __extends(Trend3, _super); - function Trend3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Trend3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "trend", x: 0, y: 0, width: 200, height: 16, smooth: true, isArea: false, data: [], backgroundStyle: BACKGROUND_STYLE, lineStyle: LINE_STYLE, areaStyle: AREA_STYLE }); - }; - Trend3.prototype.renderInner = function(group2) { - var _a6 = this.cfg, width2 = _a6.width, height = _a6.height, data3 = _a6.data, smooth = _a6.smooth, isArea = _a6.isArea, backgroundStyle = _a6.backgroundStyle, lineStyle = _a6.lineStyle, areaStyle = _a6.areaStyle; - this.addShape(group2, { - id: this.getElementId("background"), - type: "rect", - attrs: __assign({ - x: 0, - y: 0, - width: width2, - height - }, backgroundStyle) - }); - var path = dataToPath(data3, width2, height, smooth); - this.addShape(group2, { - id: this.getElementId("line"), - type: "path", - attrs: __assign({ path }, lineStyle) - }); - if (isArea) { - var areaPath = linePathToAreaPath(path, width2, height, data3); - this.addShape(group2, { - id: this.getElementId("area"), - type: "path", - attrs: __assign({ path: areaPath }, areaStyle) - }); - } - }; - Trend3.prototype.applyOffset = function() { - var _a6 = this.cfg, x6 = _a6.x, y5 = _a6.y; - this.moveElementTo(this.get("group"), { - x: x6, - y: y5 - }); - }; - return Trend3; -}(group_component_default); - -// node_modules/@antv/component/esm/slider/handler.js -var DEFAULT_HANDLER_STYLE = { - fill: "#F7F7F7", - stroke: "#BFBFBF", - radius: 2, - opacity: 1, - cursor: "ew-resize", - highLightFill: "#FFF" -}; -var Handler = function(_super) { - __extends(Handler3, _super); - function Handler3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Handler3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "handler", x: 0, y: 0, width: 10, height: 24, style: DEFAULT_HANDLER_STYLE }); - }; - Handler3.prototype.renderInner = function(group2) { - var _a6 = this.cfg, width2 = _a6.width, height = _a6.height, style = _a6.style; - var fill = style.fill, stroke = style.stroke, radius = style.radius, opacity = style.opacity, cursor = style.cursor; - this.addShape(group2, { - type: "rect", - id: this.getElementId("background"), - attrs: { - x: 0, - y: 0, - width: width2, - height, - fill, - stroke, - radius, - opacity, - cursor - } - }); - var x1 = 1 / 3 * width2; - var x22 = 2 / 3 * width2; - var y1 = 1 / 4 * height; - var y22 = 3 / 4 * height; - this.addShape(group2, { - id: this.getElementId("line-left"), - type: "line", - attrs: { - x1, - y1, - x2: x1, - y2: y22, - stroke, - cursor - } - }); - this.addShape(group2, { - id: this.getElementId("line-right"), - type: "line", - attrs: { - x1: x22, - y1, - x2: x22, - y2: y22, - stroke, - cursor - } - }); - }; - Handler3.prototype.applyOffset = function() { - this.moveElementTo(this.get("group"), { - x: this.get("x"), - y: this.get("y") - }); - }; - Handler3.prototype.initEvent = function() { - this.bindEvents(); - }; - Handler3.prototype.bindEvents = function() { - var _this = this; - this.get("group").on("mouseenter", function() { - var highLightFill = _this.get("style").highLightFill; - _this.getElementByLocalId("background").attr("fill", highLightFill); - _this.draw(); - }); - this.get("group").on("mouseleave", function() { - var fill = _this.get("style").fill; - _this.getElementByLocalId("background").attr("fill", fill); - _this.draw(); - }); - }; - Handler3.prototype.draw = function() { - var canvas = this.get("container").get("canvas"); - if (canvas) { - canvas.draw(); - } - }; - return Handler3; -}(group_component_default); - -// node_modules/@antv/component/esm/slider/constant.js -var BACKGROUND_STYLE2 = { - fill: "#416180", - opacity: 0.05 -}; -var FOREGROUND_STYLE = { - fill: "#5B8FF9", - opacity: 0.15, - cursor: "move" -}; -var DEFAULT_HANDLER_WIDTH = 10; -var HANDLER_STYLE = { - width: DEFAULT_HANDLER_WIDTH, - height: 24 -}; -var TEXT_STYLE = { - textBaseline: "middle", - fill: "#000", - opacity: 0.45 -}; -var SLIDER_CHANGE = "sliderchange"; - -// node_modules/@antv/component/esm/slider/slider.js -var Slider = function(_super) { - __extends(Slider3, _super); - function Slider3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.onMouseDown = function(target) { - return function(e4) { - _this.currentTarget = target; - var event = e4.originalEvent; - event.stopPropagation(); - event.preventDefault(); - _this.prevX = get_default(event, "touches.0.pageX", event.pageX); - _this.prevY = get_default(event, "touches.0.pageY", event.pageY); - var containerDOM = _this.getContainerDOM(); - containerDOM.addEventListener("mousemove", _this.onMouseMove); - containerDOM.addEventListener("mouseup", _this.onMouseUp); - containerDOM.addEventListener("mouseleave", _this.onMouseUp); - containerDOM.addEventListener("touchmove", _this.onMouseMove); - containerDOM.addEventListener("touchend", _this.onMouseUp); - containerDOM.addEventListener("touchcancel", _this.onMouseUp); - }; - }; - _this.onMouseMove = function(event) { - var width2 = _this.cfg.width; - var originValue = [_this.get("start"), _this.get("end")]; - event.stopPropagation(); - event.preventDefault(); - var x6 = get_default(event, "touches.0.pageX", event.pageX); - var y5 = get_default(event, "touches.0.pageY", event.pageY); - var offsetX = x6 - _this.prevX; - var offsetXRange = _this.adjustOffsetRange(offsetX / width2); - _this.updateStartEnd(offsetXRange); - _this.updateUI(_this.getElementByLocalId("foreground"), _this.getElementByLocalId("minText"), _this.getElementByLocalId("maxText")); - _this.prevX = x6; - _this.prevY = y5; - _this.draw(); - _this.emit(SLIDER_CHANGE, [_this.get("start"), _this.get("end")].sort()); - _this.delegateEmit("valuechanged", { - originValue, - value: [_this.get("start"), _this.get("end")] - }); - }; - _this.onMouseUp = function() { - if (_this.currentTarget) { - _this.currentTarget = void 0; - } - var containerDOM = _this.getContainerDOM(); - if (containerDOM) { - containerDOM.removeEventListener("mousemove", _this.onMouseMove); - containerDOM.removeEventListener("mouseup", _this.onMouseUp); - containerDOM.removeEventListener("mouseleave", _this.onMouseUp); - containerDOM.removeEventListener("touchmove", _this.onMouseMove); - containerDOM.removeEventListener("touchend", _this.onMouseUp); - containerDOM.removeEventListener("touchcancel", _this.onMouseUp); - } - }; - return _this; - } - Slider3.prototype.setRange = function(min7, max8) { - this.set("minLimit", min7); - this.set("maxLimit", max8); - var oldStart = this.get("start"); - var oldEnd = this.get("end"); - var newStart = clamp_default(oldStart, min7, max8); - var newEnd = clamp_default(oldEnd, min7, max8); - if (!this.get("isInit") && (oldStart !== newStart || oldEnd !== newEnd)) { - this.setValue([newStart, newEnd]); - } - }; - Slider3.prototype.getRange = function() { - return { - min: this.get("minLimit") || 0, - max: this.get("maxLimit") || 1 - }; - }; - Slider3.prototype.setValue = function(value2) { - var range = this.getRange(); - if (is_array_default(value2) && value2.length === 2) { - var originValue = [this.get("start"), this.get("end")]; - this.update({ - start: clamp_default(value2[0], range.min, range.max), - end: clamp_default(value2[1], range.min, range.max) - }); - if (!this.get("updateAutoRender")) { - this.render(); - } - this.delegateEmit("valuechanged", { - originValue, - value: value2 - }); - } - }; - Slider3.prototype.getValue = function() { - return [this.get("start"), this.get("end")]; - }; - Slider3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "slider", x: 0, y: 0, width: 100, height: 16, backgroundStyle: {}, foregroundStyle: {}, handlerStyle: {}, textStyle: {}, defaultCfg: { - backgroundStyle: BACKGROUND_STYLE2, - foregroundStyle: FOREGROUND_STYLE, - handlerStyle: HANDLER_STYLE, - textStyle: TEXT_STYLE - } }); - }; - Slider3.prototype.update = function(cfg) { - var start = cfg.start, end2 = cfg.end; - var validCfg = __assign({}, cfg); - if (!is_nil_default(start)) { - validCfg.start = clamp_default(start, 0, 1); - } - if (!is_nil_default(end2)) { - validCfg.end = clamp_default(end2, 0, 1); - } - _super.prototype.update.call(this, validCfg); - this.minHandler = this.getChildComponentById(this.getElementId("minHandler")); - this.maxHandler = this.getChildComponentById(this.getElementId("maxHandler")); - this.trend = this.getChildComponentById(this.getElementId("trend")); - }; - Slider3.prototype.init = function() { - this.set("start", clamp_default(this.get("start"), 0, 1)); - this.set("end", clamp_default(this.get("end"), 0, 1)); - _super.prototype.init.call(this); - }; - Slider3.prototype.render = function() { - _super.prototype.render.call(this); - this.updateUI(this.getElementByLocalId("foreground"), this.getElementByLocalId("minText"), this.getElementByLocalId("maxText")); - }; - Slider3.prototype.renderInner = function(group2) { - var _a6 = this.cfg, start = _a6.start, end2 = _a6.end, width2 = _a6.width, height = _a6.height, _b = _a6.trendCfg, trendCfg = _b === void 0 ? {} : _b, minText = _a6.minText, maxText = _a6.maxText, _c = _a6.backgroundStyle, backgroundStyle = _c === void 0 ? {} : _c, _d = _a6.foregroundStyle, foregroundStyle = _d === void 0 ? {} : _d, _e = _a6.textStyle, textStyle2 = _e === void 0 ? {} : _e; - var handlerStyle = deep_mix_default({}, DEFAULT_HANDLER_STYLE, this.cfg.handlerStyle); - var min7 = start * width2; - var max8 = end2 * width2; - if (size(get_default(trendCfg, "data"))) { - this.trend = this.addComponent(group2, __assign({ - component: Trend, - id: this.getElementId("trend"), - x: 0, - y: 0, - width: width2, - height - }, trendCfg)); - } - this.addShape(group2, { - id: this.getElementId("background"), - type: "rect", - attrs: __assign({ - x: 0, - y: 0, - width: width2, - height - }, backgroundStyle) - }); - var minTextShape = this.addShape(group2, { - id: this.getElementId("minText"), - type: "text", - attrs: __assign({ - y: height / 2, - textAlign: "right", - text: minText, - silent: false - }, textStyle2) - }); - var maxTextShape = this.addShape(group2, { - id: this.getElementId("maxText"), - type: "text", - attrs: __assign({ - y: height / 2, - textAlign: "left", - text: maxText, - silent: false - }, textStyle2) - }); - var foregroundShape = this.addShape(group2, { - id: this.getElementId("foreground"), - name: "foreground", - type: "rect", - attrs: __assign({ - y: 0, - height - }, foregroundStyle) - }); - var handlerWidth = get_default(handlerStyle, "width", DEFAULT_HANDLER_WIDTH); - var handlerHeight = get_default(handlerStyle, "height", 24); - this.minHandler = this.addComponent(group2, { - component: Handler, - id: this.getElementId("minHandler"), - name: "handler-min", - x: 0, - y: (height - handlerHeight) / 2, - width: handlerWidth, - height: handlerHeight, - cursor: "ew-resize", - style: handlerStyle - }); - this.maxHandler = this.addComponent(group2, { - component: Handler, - id: this.getElementId("maxHandler"), - name: "handler-max", - x: 0, - y: (height - handlerHeight) / 2, - width: handlerWidth, - height: handlerHeight, - cursor: "ew-resize", - style: handlerStyle - }); - }; - Slider3.prototype.applyOffset = function() { - this.moveElementTo(this.get("group"), { - x: this.get("x"), - y: this.get("y") - }); - }; - Slider3.prototype.initEvent = function() { - this.bindEvents(); - }; - Slider3.prototype.updateUI = function(foregroundShape, minTextShape, maxTextShape) { - var _a6 = this.cfg, start = _a6.start, end2 = _a6.end, width2 = _a6.width, minText = _a6.minText, maxText = _a6.maxText, handlerStyle = _a6.handlerStyle, height = _a6.height; - var min7 = start * width2; - var max8 = end2 * width2; - if (this.trend) { - this.trend.update({ - width: width2, - height - }); - if (!this.get("updateAutoRender")) { - this.trend.render(); - } - } - foregroundShape.attr("x", min7); - foregroundShape.attr("width", max8 - min7); - var handlerWidth = get_default(handlerStyle, "width", DEFAULT_HANDLER_WIDTH); - minTextShape.attr("text", minText); - maxTextShape.attr("text", maxText); - var _b = this._dodgeText([min7, max8], minTextShape, maxTextShape), minAttrs = _b[0], maxAttrs = _b[1]; - if (this.minHandler) { - this.minHandler.update({ - x: min7 - handlerWidth / 2 - }); - if (!this.get("updateAutoRender")) { - this.minHandler.render(); - } - } - each_default(minAttrs, function(v3, k4) { - return minTextShape.attr(k4, v3); - }); - if (this.maxHandler) { - this.maxHandler.update({ - x: max8 - handlerWidth / 2 - }); - if (!this.get("updateAutoRender")) { - this.maxHandler.render(); - } - } - each_default(maxAttrs, function(v3, k4) { - return maxTextShape.attr(k4, v3); - }); - }; - Slider3.prototype.bindEvents = function() { - var group2 = this.get("group"); - group2.on("handler-min:mousedown", this.onMouseDown("minHandler")); - group2.on("handler-min:touchstart", this.onMouseDown("minHandler")); - group2.on("handler-max:mousedown", this.onMouseDown("maxHandler")); - group2.on("handler-max:touchstart", this.onMouseDown("maxHandler")); - var foreground = group2.findById(this.getElementId("foreground")); - foreground.on("mousedown", this.onMouseDown("foreground")); - foreground.on("touchstart", this.onMouseDown("foreground")); - }; - Slider3.prototype.adjustOffsetRange = function(offsetRange) { - var _a6 = this.cfg, start = _a6.start, end2 = _a6.end; - switch (this.currentTarget) { - case "minHandler": { - var min7 = 0 - start; - var max8 = 1 - start; - return Math.min(max8, Math.max(min7, offsetRange)); - } - case "maxHandler": { - var min7 = 0 - end2; - var max8 = 1 - end2; - return Math.min(max8, Math.max(min7, offsetRange)); - } - case "foreground": { - var min7 = 0 - start; - var max8 = 1 - end2; - return Math.min(max8, Math.max(min7, offsetRange)); - } - } - }; - Slider3.prototype.updateStartEnd = function(offsetRange) { - var _a6 = this.cfg, start = _a6.start, end2 = _a6.end; - switch (this.currentTarget) { - case "minHandler": - start += offsetRange; - break; - case "maxHandler": - end2 += offsetRange; - break; - case "foreground": - start += offsetRange; - end2 += offsetRange; - break; - } - this.set("start", start); - this.set("end", end2); - }; - Slider3.prototype._dodgeText = function(range, minTextShape, maxTextShape) { - var _a6, _b; - var _c = this.cfg, handlerStyle = _c.handlerStyle, width2 = _c.width; - var PADDING2 = 2; - var handlerWidth = get_default(handlerStyle, "width", DEFAULT_HANDLER_WIDTH); - var min7 = range[0], max8 = range[1]; - var sorted = false; - if (min7 > max8) { - _a6 = [max8, min7], min7 = _a6[0], max8 = _a6[1]; - _b = [maxTextShape, minTextShape], minTextShape = _b[0], maxTextShape = _b[1]; - sorted = true; - } - var minBBox = minTextShape.getBBox(); - var maxBBox = maxTextShape.getBBox(); - var minAttrs = minBBox.width > min7 - PADDING2 ? { x: min7 + handlerWidth / 2 + PADDING2, textAlign: "left" } : { x: min7 - handlerWidth / 2 - PADDING2, textAlign: "right" }; - var maxAttrs = maxBBox.width > width2 - max8 - PADDING2 ? { x: max8 - handlerWidth / 2 - PADDING2, textAlign: "right" } : { x: max8 + handlerWidth / 2 + PADDING2, textAlign: "left" }; - return !sorted ? [minAttrs, maxAttrs] : [maxAttrs, minAttrs]; - }; - Slider3.prototype.draw = function() { - var container2 = this.get("container"); - var canvas = container2 && container2.get("canvas"); - if (canvas) { - canvas.draw(); - } - }; - Slider3.prototype.getContainerDOM = function() { - var container2 = this.get("container"); - var canvas = container2 && container2.get("canvas"); - return canvas && canvas.get("container"); - }; - return Slider3; -}(group_component_default); - -// node_modules/@antv/component/esm/scrollbar/scrollbar.js -var DEFAULT_STYLE = { - trackColor: "rgba(0,0,0,0)", - thumbColor: "rgba(0,0,0,0.15)", - size: 8, - lineCap: "round" -}; -var DEFAULT_THEME = { - default: DEFAULT_STYLE, - hover: { - thumbColor: "rgba(0,0,0,0.2)" - } -}; -var Scrollbar = function(_super) { - __extends(Scrollbar3, _super); - function Scrollbar3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.clearEvents = noop_default; - _this.onStartEvent = function(isMobile) { - return function(e4) { - _this.isMobile = isMobile; - e4.originalEvent.preventDefault(); - var clientX = isMobile ? get_default(e4.originalEvent, "touches.0.clientX") : e4.clientX; - var clientY = isMobile ? get_default(e4.originalEvent, "touches.0.clientY") : e4.clientY; - _this.startPos = _this.cfg.isHorizontal ? clientX : clientY; - _this.bindLaterEvent(); - }; - }; - _this.bindLaterEvent = function() { - var containerDOM = _this.getContainerDOM(); - var events = []; - if (_this.isMobile) { - events = [ - addEventListener(containerDOM, "touchmove", _this.onMouseMove), - addEventListener(containerDOM, "touchend", _this.onMouseUp), - addEventListener(containerDOM, "touchcancel", _this.onMouseUp) - ]; - } else { - events = [ - addEventListener(containerDOM, "mousemove", _this.onMouseMove), - addEventListener(containerDOM, "mouseup", _this.onMouseUp), - addEventListener(containerDOM, "mouseleave", _this.onMouseUp) - ]; - } - _this.clearEvents = function() { - events.forEach(function(e4) { - e4.remove(); - }); - }; - }; - _this.onMouseMove = function(e4) { - var _a6 = _this.cfg, isHorizontal2 = _a6.isHorizontal, thumbOffset = _a6.thumbOffset; - e4.preventDefault(); - var clientX = _this.isMobile ? get_default(e4, "touches.0.clientX") : e4.clientX; - var clientY = _this.isMobile ? get_default(e4, "touches.0.clientY") : e4.clientY; - var endPos = isHorizontal2 ? clientX : clientY; - var diff2 = endPos - _this.startPos; - _this.startPos = endPos; - _this.updateThumbOffset(thumbOffset + diff2); - }; - _this.onMouseUp = function(e4) { - e4.preventDefault(); - _this.clearEvents(); - }; - _this.onTrackClick = function(e4) { - var _a6 = _this.cfg, isHorizontal2 = _a6.isHorizontal, x6 = _a6.x, y5 = _a6.y, thumbLen = _a6.thumbLen; - var containerDOM = _this.getContainerDOM(); - var rect3 = containerDOM.getBoundingClientRect(); - var clientX = e4.clientX, clientY = e4.clientY; - var offset = isHorizontal2 ? clientX - rect3.left - x6 - thumbLen / 2 : clientY - rect3.top - y5 - thumbLen / 2; - var newOffset = _this.validateRange(offset); - _this.updateThumbOffset(newOffset); - }; - _this.onThumbMouseOver = function() { - var thumbColor = _this.cfg.theme.hover.thumbColor; - _this.getElementByLocalId("thumb").attr("stroke", thumbColor); - _this.draw(); - }; - _this.onThumbMouseOut = function() { - var thumbColor = _this.cfg.theme.default.thumbColor; - _this.getElementByLocalId("thumb").attr("stroke", thumbColor); - _this.draw(); - }; - return _this; - } - Scrollbar3.prototype.setRange = function(min7, max8) { - this.set("minLimit", min7); - this.set("maxLimit", max8); - var curValue = this.getValue(); - var newValue = clamp_default(curValue, min7, max8); - if (curValue !== newValue && !this.get("isInit")) { - this.setValue(newValue); - } - }; - Scrollbar3.prototype.getRange = function() { - var min7 = this.get("minLimit") || 0; - var max8 = this.get("maxLimit") || 1; - return { min: min7, max: max8 }; - }; - Scrollbar3.prototype.setValue = function(value2) { - var range = this.getRange(); - var originalValue = this.getValue(); - this.update({ - thumbOffset: (this.get("trackLen") - this.get("thumbLen")) * clamp_default(value2, range.min, range.max) - }); - this.delegateEmit("valuechange", { - originalValue, - value: this.getValue() - }); - }; - Scrollbar3.prototype.getValue = function() { - return clamp_default(this.get("thumbOffset") / (this.get("trackLen") - this.get("thumbLen")), 0, 1); - }; - Scrollbar3.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - return __assign(__assign({}, cfg), { name: "scrollbar", isHorizontal: true, minThumbLen: 20, thumbOffset: 0, theme: DEFAULT_THEME }); - }; - Scrollbar3.prototype.renderInner = function(group2) { - this.renderTrackShape(group2); - this.renderThumbShape(group2); - }; - Scrollbar3.prototype.applyOffset = function() { - this.moveElementTo(this.get("group"), { - x: this.get("x"), - y: this.get("y") - }); - }; - Scrollbar3.prototype.initEvent = function() { - this.bindEvents(); - }; - Scrollbar3.prototype.renderTrackShape = function(group2) { - var _a6 = this.cfg, trackLen = _a6.trackLen, _b = _a6.theme, theme4 = _b === void 0 ? { default: {} } : _b; - var _c = deep_mix_default({}, DEFAULT_THEME, theme4).default, lineCap = _c.lineCap, trackColor = _c.trackColor, themeSize = _c.size; - var size2 = get_default(this.cfg, "size", themeSize); - var attrs = this.get("isHorizontal") ? { - x1: 0 + size2 / 2, - y1: size2 / 2, - x2: trackLen - size2 / 2, - y2: size2 / 2, - lineWidth: size2, - stroke: trackColor, - lineCap - } : { - x1: size2 / 2, - y1: 0 + size2 / 2, - x2: size2 / 2, - y2: trackLen - size2 / 2, - lineWidth: size2, - stroke: trackColor, - lineCap - }; - return this.addShape(group2, { - id: this.getElementId("track"), - name: "track", - type: "line", - attrs - }); - }; - Scrollbar3.prototype.renderThumbShape = function(group2) { - var _a6 = this.cfg, thumbOffset = _a6.thumbOffset, thumbLen = _a6.thumbLen, theme4 = _a6.theme; - var _b = deep_mix_default({}, DEFAULT_THEME, theme4).default, themeSize = _b.size, lineCap = _b.lineCap, thumbColor = _b.thumbColor; - var size2 = get_default(this.cfg, "size", themeSize); - var attrs = this.get("isHorizontal") ? { - x1: thumbOffset + size2 / 2, - y1: size2 / 2, - x2: thumbOffset + thumbLen - size2 / 2, - y2: size2 / 2, - lineWidth: size2, - stroke: thumbColor, - lineCap, - cursor: "default" - } : { - x1: size2 / 2, - y1: thumbOffset + size2 / 2, - x2: size2 / 2, - y2: thumbOffset + thumbLen - size2 / 2, - lineWidth: size2, - stroke: thumbColor, - lineCap, - cursor: "default" - }; - return this.addShape(group2, { - id: this.getElementId("thumb"), - name: "thumb", - type: "line", - attrs - }); - }; - Scrollbar3.prototype.bindEvents = function() { - var group2 = this.get("group"); - group2.on("mousedown", this.onStartEvent(false)); - group2.on("mouseup", this.onMouseUp); - group2.on("touchstart", this.onStartEvent(true)); - group2.on("touchend", this.onMouseUp); - var trackShape = group2.findById(this.getElementId("track")); - trackShape.on("click", this.onTrackClick); - var thumbShape = group2.findById(this.getElementId("thumb")); - thumbShape.on("mouseover", this.onThumbMouseOver); - thumbShape.on("mouseout", this.onThumbMouseOut); - }; - Scrollbar3.prototype.getContainerDOM = function() { - var container2 = this.get("container"); - var canvas = container2 && container2.get("canvas"); - return canvas && canvas.get("container"); - }; - Scrollbar3.prototype.validateRange = function(offset) { - var _a6 = this.cfg, thumbLen = _a6.thumbLen, trackLen = _a6.trackLen; - var newOffset = offset; - if (offset + thumbLen > trackLen) { - newOffset = trackLen - thumbLen; - } else if (offset + thumbLen < thumbLen) { - newOffset = 0; - } - return newOffset; - }; - Scrollbar3.prototype.draw = function() { - var container2 = this.get("container"); - var canvas = container2 && container2.get("canvas"); - if (canvas) { - canvas.draw(); - } - }; - Scrollbar3.prototype.updateThumbOffset = function(offset) { - var _a6 = this.cfg, thumbOffset = _a6.thumbOffset, isHorizontal2 = _a6.isHorizontal, thumbLen = _a6.thumbLen, size2 = _a6.size; - var newOffset = this.validateRange(offset); - if (newOffset === thumbOffset) { - return; - } - var thumbShape = this.getElementByLocalId("thumb"); - if (isHorizontal2) { - thumbShape.attr({ - x1: newOffset + size2 / 2, - x2: newOffset + thumbLen - size2 / 2 - }); - } else { - thumbShape.attr({ - y1: newOffset + size2 / 2, - y2: newOffset + thumbLen - size2 / 2 - }); - } - this.emitOffsetChange(newOffset); - }; - Scrollbar3.prototype.emitOffsetChange = function(offset) { - var _a6 = this.cfg, originalValue = _a6.thumbOffset, trackLen = _a6.trackLen, thumbLen = _a6.thumbLen; - this.cfg.thumbOffset = offset; - this.emit("scrollchange", { - thumbOffset: offset, - ratio: clamp_default(offset / (trackLen - thumbLen), 0, 1) - }); - this.delegateEmit("valuechange", { - originalValue, - value: offset - }); - }; - return Scrollbar3; -}(group_component_default); - -// node_modules/@antv/g2/esm/dependents.js -var LineAxis = axis_exports.Line; -var CircleAxis = axis_exports.Circle; -var LineGrid = grid_exports.Line; -var CircleGrid = grid_exports.Circle; -var CategoryLegend = legend_exports.Category; -var ContinuousLegend = legend_exports.Continuous; -var HtmlTooltip = tooltip_exports.Html; - -// node_modules/@antv/g2/esm/util/graphics.js -function getPointsBox(points) { - if (is_empty_default(points)) { - return null; - } - var minX = points[0].x; - var maxX = points[0].x; - var minY = points[0].y; - var maxY2 = points[0].y; - each_default(points, function(point2) { - minX = minX > point2.x ? point2.x : minX; - maxX = maxX < point2.x ? point2.x : maxX; - minY = minY > point2.y ? point2.y : minY; - maxY2 = maxY2 < point2.y ? point2.y : maxY2; - }); - return { - minX, - maxX, - minY, - maxY: maxY2, - centerX: (minX + maxX) / 2, - centerY: (minY + maxY2) / 2 - }; -} -function uniqueValues(array) { - return Array.from(new Set(array)).length === 1; -} -function mid(array) { - return (min_default(array) + max_default(array)) / 2; -} -function polarToCartesian(centerX, centerY, radius, angleInRadian) { - return { - x: centerX + radius * Math.cos(angleInRadian), - y: centerY + radius * Math.sin(angleInRadian) - }; -} -function getSectorPath(centerX, centerY, radius, startAngleInRadian, endAngleInRadian, innerRadius) { - if (innerRadius === void 0) { - innerRadius = 0; - } - var start = polarToCartesian(centerX, centerY, radius, startAngleInRadian); - var end2 = polarToCartesian(centerX, centerY, radius, endAngleInRadian); - var innerStart = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian); - var innerEnd = polarToCartesian(centerX, centerY, innerRadius, endAngleInRadian); - if (endAngleInRadian - startAngleInRadian === Math.PI * 2) { - var middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI); - var innerMiddlePoint = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian + Math.PI); - var circlePathCommands = [ - ["M", start.x, start.y], - ["A", radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y], - ["A", radius, radius, 0, 1, 1, end2.x, end2.y], - ["M", innerStart.x, innerStart.y] - ]; - if (innerRadius) { - circlePathCommands.push(["A", innerRadius, innerRadius, 0, 1, 0, innerMiddlePoint.x, innerMiddlePoint.y]); - circlePathCommands.push(["A", innerRadius, innerRadius, 0, 1, 0, innerEnd.x, innerEnd.y]); - } - circlePathCommands.push(["M", start.x, start.y]); - circlePathCommands.push(["Z"]); - return circlePathCommands; - } - var arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1; - var sectorPathCommands = [ - ["M", start.x, start.y], - ["A", radius, radius, 0, arcSweep, 1, end2.x, end2.y], - ["L", innerEnd.x, innerEnd.y] - ]; - if (innerRadius) { - sectorPathCommands.push(["A", innerRadius, innerRadius, 0, arcSweep, 0, innerStart.x, innerStart.y]); - } - sectorPathCommands.push(["L", start.x, start.y]); - sectorPathCommands.push(["Z"]); - return sectorPathCommands; -} -function getArcPath(centerX, centerY, radius, startAngleInRadian, endAngleInRadian) { - var start = polarToCartesian(centerX, centerY, radius, startAngleInRadian); - var end2 = polarToCartesian(centerX, centerY, radius, endAngleInRadian); - if (isNumberEqual(endAngleInRadian - startAngleInRadian, Math.PI * 2)) { - var middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI); - return [ - ["M", start.x, start.y], - ["A", radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y], - ["A", radius, radius, 0, 1, 1, start.x, start.y], - ["A", radius, radius, 0, 1, 0, middlePoint.x, middlePoint.y], - ["A", radius, radius, 0, 1, 0, start.x, start.y], - ["Z"] - ]; - } - var arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1; - return [ - ["M", start.x, start.y], - ["A", radius, radius, 0, arcSweep, 1, end2.x, end2.y] - ]; -} -function getAngle3(shapeModel, coordinate11) { - var points = shapeModel.points; - var box2 = getPointsBox(points); - var endAngle; - var startAngle; - var coordStartAngle = coordinate11.startAngle, coordEndAngle = coordinate11.endAngle; - var diffAngle = coordEndAngle - coordStartAngle; - if (coordinate11.isTransposed) { - endAngle = box2.maxY * diffAngle; - startAngle = box2.minY * diffAngle; - } else { - endAngle = box2.maxX * diffAngle; - startAngle = box2.minX * diffAngle; - } - endAngle += coordStartAngle; - startAngle += coordStartAngle; - return { - startAngle, - endAngle - }; -} -function getPolygonCentroid(xs, ys) { - if (is_number_default(xs) && is_number_default(ys)) { - return [xs, ys]; - } - xs = xs; - ys = ys; - if (uniqueValues(xs) || uniqueValues(ys)) - return [mid(xs), mid(ys)]; - var i4 = -1; - var x6 = 0; - var y5 = 0; - var former; - var current = xs.length - 1; - var diff2; - var k4 = 0; - while (++i4 < xs.length) { - former = current; - current = i4; - k4 += diff2 = xs[former] * ys[current] - xs[current] * ys[former]; - x6 += (xs[former] + xs[current]) * diff2; - y5 += (ys[former] + ys[current]) * diff2; - } - k4 *= 3; - return [x6 / k4, y5 / k4]; -} -function getReplaceAttrs(sourceShape, targetShape) { - var originAttrs = sourceShape.attr(); - var newAttrs = targetShape.attr(); - each_default(originAttrs, function(v3, k4) { - if (newAttrs[k4] === void 0) { - newAttrs[k4] = void 0; - } - }); - return newAttrs; -} - -// node_modules/@antv/g2/esm/util/helper.js -function isBetween2(value2, start, end2) { - var min7 = Math.min(start, end2); - var max8 = Math.max(start, end2); - return value2 >= min7 && value2 <= max8; -} -function padEnd(source, targetLength, padValue) { - if (is_string_default(source)) { - return source.padEnd(targetLength, padValue); - } else if (is_array_default(source)) { - var sourceLength = source.length; - if (sourceLength < targetLength) { - var diff2 = targetLength - sourceLength; - for (var i4 = 0; i4 < diff2; i4++) { - source.push(padValue); - } - } - } - return source; -} -function omit(obj, keys2) { - if (typeof obj === "object") { - keys2.forEach(function(key) { - delete obj[key]; - }); - } - return obj; -} -function uniq2(sourceArray, targetArray, map6) { - if (targetArray === void 0) { - targetArray = []; - } - if (map6 === void 0) { - map6 = new Map(); - } - for (var _i = 0, sourceArray_1 = sourceArray; _i < sourceArray_1.length; _i++) { - var source = sourceArray_1[_i]; - if (!map6.has(source)) { - targetArray.push(source); - map6.set(source, true); - } - } - return targetArray; -} - -// node_modules/@antv/g2/esm/util/bbox.js -var BBox = function() { - function BBox2(x6, y5, width2, height) { - if (x6 === void 0) { - x6 = 0; - } - if (y5 === void 0) { - y5 = 0; - } - if (width2 === void 0) { - width2 = 0; - } - if (height === void 0) { - height = 0; - } - this.x = x6; - this.y = y5; - this.height = height; - this.width = width2; - } - BBox2.fromRange = function(minX, minY, maxX, maxY2) { - return new BBox2(minX, minY, maxX - minX, maxY2 - minY); - }; - BBox2.fromObject = function(bbox) { - return new BBox2(bbox.minX, bbox.minY, bbox.width, bbox.height); - }; - Object.defineProperty(BBox2.prototype, "minX", { - get: function() { - return this.x; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "maxX", { - get: function() { - return this.x + this.width; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "minY", { - get: function() { - return this.y; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "maxY", { - get: function() { - return this.y + this.height; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "tl", { - get: function() { - return { x: this.x, y: this.y }; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "tr", { - get: function() { - return { x: this.maxX, y: this.y }; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "bl", { - get: function() { - return { x: this.x, y: this.maxY }; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "br", { - get: function() { - return { x: this.maxX, y: this.maxY }; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "top", { - get: function() { - return { - x: this.x + this.width / 2, - y: this.minY - }; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "right", { - get: function() { - return { - x: this.maxX, - y: this.y + this.height / 2 - }; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "bottom", { - get: function() { - return { - x: this.x + this.width / 2, - y: this.maxY - }; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(BBox2.prototype, "left", { - get: function() { - return { - x: this.minX, - y: this.y + this.height / 2 - }; - }, - enumerable: false, - configurable: true - }); - BBox2.prototype.isEqual = function(bbox) { - return this.x === bbox.x && this.y === bbox.y && this.width === bbox.width && this.height === bbox.height; - }; - BBox2.prototype.contains = function(child) { - return child.minX >= this.minX && child.maxX <= this.maxX && child.minY >= this.minY && child.maxY <= this.maxY; - }; - BBox2.prototype.clone = function() { - return new BBox2(this.x, this.y, this.width, this.height); - }; - BBox2.prototype.add = function() { - var subBBox = []; - for (var _i = 0; _i < arguments.length; _i++) { - subBBox[_i] = arguments[_i]; - } - var bbox = this.clone(); - each_default(subBBox, function(b10) { - bbox.x = Math.min(b10.x, bbox.x); - bbox.y = Math.min(b10.y, bbox.y); - bbox.width = Math.max(b10.maxX, bbox.maxX) - bbox.x; - bbox.height = Math.max(b10.maxY, bbox.maxY) - bbox.y; - }); - return bbox; - }; - BBox2.prototype.merge = function() { - var subBBox = []; - for (var _i = 0; _i < arguments.length; _i++) { - subBBox[_i] = arguments[_i]; - } - var bbox = this.clone(); - each_default(subBBox, function(b10) { - bbox.x = Math.max(b10.x, bbox.x); - bbox.y = Math.max(b10.y, bbox.y); - bbox.width = Math.min(b10.maxX, bbox.maxX) - bbox.x; - bbox.height = Math.min(b10.maxY, bbox.maxY) - bbox.y; - }); - return bbox; - }; - BBox2.prototype.cut = function(subBBox, direction5) { - var width2 = subBBox.width; - var height = subBBox.height; - switch (direction5) { - case DIRECTION.TOP: - case DIRECTION.TOP_LEFT: - case DIRECTION.TOP_RIGHT: - return BBox2.fromRange(this.minX, this.minY + height, this.maxX, this.maxY); - case DIRECTION.RIGHT: - case DIRECTION.RIGHT_TOP: - case DIRECTION.RIGHT_BOTTOM: - return BBox2.fromRange(this.minX, this.minY, this.maxX - width2, this.maxY); - case DIRECTION.BOTTOM: - case DIRECTION.BOTTOM_LEFT: - case DIRECTION.BOTTOM_RIGHT: - return BBox2.fromRange(this.minX, this.minY, this.maxX, this.maxY - height); - case DIRECTION.LEFT: - case DIRECTION.LEFT_TOP: - case DIRECTION.LEFT_BOTTOM: - return BBox2.fromRange(this.minX + width2, this.minY, this.maxX, this.maxY); - default: - return this; - } - }; - BBox2.prototype.shrink = function(gap) { - var top = gap[0], right2 = gap[1], bottom = gap[2], left2 = gap[3]; - return new BBox2(this.x + left2, this.y + top, this.width - left2 - right2, this.height - top - bottom); - }; - BBox2.prototype.expand = function(gap) { - var top = gap[0], right2 = gap[1], bottom = gap[2], left2 = gap[3]; - return new BBox2(this.x - left2, this.y - top, this.width + left2 + right2, this.height + top + bottom); - }; - BBox2.prototype.exceed = function(bbox) { - return [ - Math.max(-this.minY + bbox.minY, 0), - Math.max(this.maxX - bbox.maxX, 0), - Math.max(this.maxY - bbox.maxY, 0), - Math.max(-this.minX + bbox.minX, 0) - ]; - }; - BBox2.prototype.collide = function(bbox) { - return this.minX < bbox.maxX && this.maxX > bbox.minX && this.minY < bbox.maxY && this.maxY > bbox.minY; - }; - BBox2.prototype.size = function() { - return this.width * this.height; - }; - BBox2.prototype.isPointIn = function(p4) { - return p4.x >= this.minX && p4.x <= this.maxX && p4.y >= this.minY && p4.y <= this.maxY; - }; - return BBox2; -}(); -function toPoints(bbox) { - return [ - [bbox.minX, bbox.minY], - [bbox.maxX, bbox.minY], - [bbox.maxX, bbox.maxY], - [bbox.minX, bbox.maxY] - ]; -} - -// node_modules/@antv/g2/esm/util/coordinate.js -function getXDimensionLength(coordinate11) { - if (coordinate11.isPolar && !coordinate11.isTransposed) { - return (coordinate11.endAngle - coordinate11.startAngle) * coordinate11.getRadius(); - } - var start = coordinate11.convert({ x: 0, y: 0 }); - var end2 = coordinate11.convert({ x: 1, y: 0 }); - return Math.sqrt(Math.pow(end2.x - start.x, 2) + Math.pow(end2.y - start.y, 2)); -} -function isFullCircle(coordinate11) { - if (coordinate11.isPolar) { - var startAngle = coordinate11.startAngle, endAngle = coordinate11.endAngle; - return endAngle - startAngle === Math.PI * 2; - } - return false; -} -function getDistanceToCenter(coordinate11, point2) { - var center2 = coordinate11.getCenter(); - return Math.sqrt(Math.pow(point2.x - center2.x, 2) + Math.pow(point2.y - center2.y, 2)); -} -function isPointInCoordinate(coordinate11, point2) { - var result = false; - if (coordinate11) { - if (coordinate11.type === "theta") { - var start = coordinate11.start, end2 = coordinate11.end; - result = isBetween2(point2.x, start.x, end2.x) && isBetween2(point2.y, start.y, end2.y); - } else { - var invertPoint = coordinate11.invert(point2); - result = isBetween2(invertPoint.x, 0, 1) && isBetween2(invertPoint.y, 0, 1); - } - } - return result; -} -function getAngleByPoint(coordinate11, point2) { - var center2 = coordinate11.getCenter(); - return Math.atan2(point2.y - center2.y, point2.x - center2.x); -} -function getCoordinateClipCfg(coordinate11, margin) { - if (margin === void 0) { - margin = 0; - } - var start = coordinate11.start, end2 = coordinate11.end; - var width2 = coordinate11.getWidth(); - var height = coordinate11.getHeight(); - if (coordinate11.isPolar) { - var startAngle_1 = coordinate11.startAngle, endAngle_1 = coordinate11.endAngle; - var center_1 = coordinate11.getCenter(); - var radius_1 = coordinate11.getRadius(); - return { - type: "path", - startState: { - path: getSectorPath(center_1.x, center_1.y, radius_1 + margin, startAngle_1, startAngle_1) - }, - endState: function(ratio) { - var diff2 = (endAngle_1 - startAngle_1) * ratio + startAngle_1; - var path = getSectorPath(center_1.x, center_1.y, radius_1 + margin, startAngle_1, diff2); - return { - path - }; - }, - attrs: { - path: getSectorPath(center_1.x, center_1.y, radius_1 + margin, startAngle_1, endAngle_1) - } - }; - } - var endState; - if (coordinate11.isTransposed) { - endState = { - height: height + margin * 2 - }; - } else { - endState = { - width: width2 + margin * 2 - }; - } - return { - type: "rect", - startState: { - x: start.x - margin, - y: end2.y - margin, - width: coordinate11.isTransposed ? width2 + margin * 2 : 0, - height: coordinate11.isTransposed ? 0 : height + margin * 2 - }, - endState, - attrs: { - x: start.x - margin, - y: end2.y - margin, - width: width2 + margin * 2, - height: height + margin * 2 - } - }; -} -function getCoordinateBBox(coordinate11, margin) { - if (margin === void 0) { - margin = 0; - } - var start = coordinate11.start, end2 = coordinate11.end; - var width2 = coordinate11.getWidth(); - var height = coordinate11.getHeight(); - var minX = Math.min(start.x, end2.x); - var minY = Math.min(start.y, end2.y); - return BBox.fromRange(minX - margin, minY - margin, minX + width2 + margin, minY + height + margin); -} - -// node_modules/@antv/g2/esm/util/scale.js -var dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]+)0?2\2(?:29))(\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/; -function getDefaultType(value2) { - var type2 = "linear"; - if (dateRegex.test(value2)) { - type2 = "timeCat"; - } else if (is_string_default(value2)) { - type2 = "cat"; - } - return type2; -} -function createScaleByField(field6, data3, scaleDef) { - var validData = data3 || []; - if (is_number_default(field6) || is_nil_default(first_value_default(validData, field6)) && is_empty_default(scaleDef)) { - var Identity2 = getClass("identity"); - return new Identity2({ - field: field6.toString(), - values: [field6] - }); - } - var values2 = values_of_key_default(validData, field6); - var type2 = get_default(scaleDef, "type", getDefaultType(values2[0])); - var ScaleCtor = getClass(type2); - return new ScaleCtor(__assign({ field: field6, values: values2 }, scaleDef)); -} -function syncScale(scale12, newScale) { - if (scale12.type !== "identity" && newScale.type !== "identity") { - var obj = {}; - for (var k4 in newScale) { - if (Object.prototype.hasOwnProperty.call(newScale, k4)) { - obj[k4] = newScale[k4]; - } - } - scale12.change(obj); - } -} -function getName(scale12) { - return scale12.alias || scale12.field; -} -function getDefaultCategoryScaleRange(scale12, coordinate11, theme4) { - var values2 = scale12.values; - var count2 = values2.length; - var range; - if (count2 === 1) { - range = [0.5, 1]; - } else { - var widthRatio = 1; - var offset = 0; - if (isFullCircle(coordinate11)) { - if (!coordinate11.isTransposed) { - range = [0, 1 - 1 / count2]; - } else { - widthRatio = get_default(theme4, "widthRatio.multiplePie", 1 / 1.3); - offset = 1 / count2 * widthRatio; - range = [offset / 2, 1 - offset / 2]; - } - } else { - offset = 1 / count2 / 2; - range = [offset, 1 - offset]; - } - } - return range; -} -function getMaxScale(scale12) { - var values2 = scale12.values.filter(function(item) { - return !is_nil_default(item) && !isNaN(item); - }); - return Math.max.apply(Math, __spreadArray(__spreadArray([], values2, false), [is_nil_default(scale12.max) ? -Infinity : scale12.max], false)); -} - -// node_modules/@antv/g2/esm/util/axis.js -function getLineAxisRelativeRegion(direction5) { - var start; - var end2; - switch (direction5) { - case DIRECTION.TOP: - start = { x: 0, y: 1 }; - end2 = { x: 1, y: 1 }; - break; - case DIRECTION.RIGHT: - start = { x: 1, y: 0 }; - end2 = { x: 1, y: 1 }; - break; - case DIRECTION.BOTTOM: - start = { x: 0, y: 0 }; - end2 = { x: 1, y: 0 }; - break; - case DIRECTION.LEFT: - start = { x: 0, y: 0 }; - end2 = { x: 0, y: 1 }; - break; - default: - start = end2 = { x: 0, y: 0 }; - } - return { start, end: end2 }; -} -function getCircleAxisRelativeRegion(coordinate11) { - var start; - var end2; - if (coordinate11.isTransposed) { - start = { - x: 0, - y: 0 - }; - end2 = { - x: 1, - y: 0 - }; - } else { - start = { - x: 0, - y: 0 - }; - end2 = { - x: 0, - y: 1 - }; - } - return { start, end: end2 }; -} -function getAxisRegion(coordinate11, direction5) { - var region = { start: { x: 0, y: 0 }, end: { x: 0, y: 0 } }; - if (coordinate11.isRect) { - region = getLineAxisRelativeRegion(direction5); - } else if (coordinate11.isPolar) { - region = getCircleAxisRelativeRegion(coordinate11); - } - var start = region.start, end2 = region.end; - return { - start: coordinate11.convert(start), - end: coordinate11.convert(end2) - }; -} -function isVertical(region) { - var start = region.start, end2 = region.end; - return start.x === end2.x; -} -function getAxisFactorByRegion(region, center2) { - var start = region.start, end2 = region.end; - var isAxisVertical = isVertical(region); - if (isAxisVertical) { - if ((start.y - end2.y) * (center2.x - start.x) > 0) { - return 1; - } else { - return -1; - } - } else { - if ((end2.x - start.x) * (start.y - center2.y) > 0) { - return -1; - } else { - return 1; - } - } -} -function getAxisThemeCfg(theme4, direction5) { - var axisTheme = get_default(theme4, ["components", "axis"], {}); - return deep_mix_default({}, get_default(axisTheme, ["common"], {}), deep_mix_default({}, get_default(axisTheme, [direction5], {}))); -} -function getAxisTitleOptions(theme4, direction5, axisOptions) { - var axisTheme = get_default(theme4, ["components", "axis"], {}); - return deep_mix_default({}, get_default(axisTheme, ["common", "title"], {}), deep_mix_default({}, get_default(axisTheme, [direction5, "title"], {})), axisOptions); -} -function getCircleAxisCenterRadius(coordinate11) { - var x6 = coordinate11.x, y5 = coordinate11.y, center2 = coordinate11.circleCenter; - var isReflectY = y5.start > y5.end; - var start = coordinate11.isTransposed ? coordinate11.convert({ - x: isReflectY ? 0 : 1, - y: 0 - }) : coordinate11.convert({ - x: 0, - y: isReflectY ? 0 : 1 - }); - var startVector = [start.x - center2.x, start.y - center2.y]; - var normalVector = [1, 0]; - var startAngle = start.y > center2.y ? vec2_exports.angle(startVector, normalVector) : vec2_exports.angle(startVector, normalVector) * -1; - var endAngle = startAngle + (x6.end - x6.start); - var radius = Math.sqrt(Math.pow(start.x - center2.x, 2) + Math.pow(start.y - center2.y, 2)); - return { - center: center2, - radius, - startAngle, - endAngle - }; -} -function getAxisOption(axes, field6) { - if (is_boolean_default(axes)) { - return axes === false ? false : {}; - } - return get_default(axes, [field6]); -} -function getAxisDirection(axisOption, def) { - return get_default(axisOption, "position", def); -} -function getAxisTitleText(scale12, axisOption) { - return get_default(axisOption, ["title", "text"], getName(scale12)); -} - -// node_modules/@antv/g2/esm/facet/facet.js -var Facet = function() { - function Facet3(view, cfg) { - this.destroyed = false; - this.facets = []; - this.view = view; - this.cfg = deep_mix_default({}, this.getDefaultCfg(), cfg); - } - Facet3.prototype.init = function() { - if (!this.container) { - this.container = this.createContainer(); - } - var data3 = this.view.getData(); - this.facets = this.generateFacets(data3); - }; - Facet3.prototype.render = function() { - this.renderViews(); - }; - Facet3.prototype.update = function() { - }; - Facet3.prototype.clear = function() { - this.clearFacetViews(); - }; - Facet3.prototype.destroy = function() { - this.clear(); - if (this.container) { - this.container.remove(true); - this.container = void 0; - } - this.destroyed = true; - this.view = void 0; - this.facets = []; - }; - Facet3.prototype.facetToView = function(facet) { - var region = facet.region, data3 = facet.data, _a6 = facet.padding, padding3 = _a6 === void 0 ? this.cfg.padding : _a6; - var view = this.view.createView({ - region, - padding: padding3 - }); - view.data(data3 || []); - facet.view = view; - this.beforeEachView(view, facet); - var eachView = this.cfg.eachView; - if (eachView) { - eachView(view, facet); - } - this.afterEachView(view, facet); - return view; - }; - Facet3.prototype.createContainer = function() { - var foregroundGroup = this.view.getLayer(LAYER.FORE); - return foregroundGroup.addGroup(); - }; - Facet3.prototype.renderViews = function() { - this.createFacetViews(); - }; - Facet3.prototype.createFacetViews = function() { - var _this = this; - return this.facets.map(function(facet) { - return _this.facetToView(facet); - }); - }; - Facet3.prototype.clearFacetViews = function() { - var _this = this; - each_default(this.facets, function(facet) { - if (facet.view) { - _this.view.removeView(facet.view); - facet.view = void 0; - } - }); - }; - Facet3.prototype.parseSpacing = function() { - var _a6 = this.view.viewBBox, width2 = _a6.width, height = _a6.height; - var spacing = this.cfg.spacing; - return spacing.map(function(s4, idx) { - if (is_number_default(s4)) - return s4 / (idx === 0 ? width2 : height); - else - return parseFloat(s4) / 100; - }); - }; - Facet3.prototype.getFieldValues = function(data3, field6) { - var rst = []; - var cache3 = {}; - each_default(data3, function(d3) { - var value2 = d3[field6]; - if (!is_nil_default(value2) && !cache3[value2]) { - rst.push(value2); - cache3[value2] = true; - } - }); - return rst; - }; - Facet3.prototype.getRegion = function(rows, cols, xIndex, yIndex) { - var _a6 = this.parseSpacing(), xSpacing = _a6[0], ySpacing = _a6[1]; - var xRatio = (1 + xSpacing) / (cols === 0 ? 1 : cols) - xSpacing; - var yRatio = (1 + ySpacing) / (rows === 0 ? 1 : rows) - ySpacing; - var start = { - x: (xRatio + xSpacing) * xIndex, - y: (yRatio + ySpacing) * yIndex - }; - var end2 = { - x: start.x + xRatio, - y: start.y + yRatio - }; - return { start, end: end2 }; - }; - Facet3.prototype.getDefaultCfg = function() { - return { - eachView: void 0, - showTitle: true, - spacing: [0, 0], - padding: 10, - fields: [] - }; - }; - Facet3.prototype.getDefaultTitleCfg = function() { - var fontFamily = this.view.getTheme().fontFamily; - return { - style: { - fontSize: 14, - fill: "#666", - fontFamily - } - }; - }; - Facet3.prototype.processAxis = function(view, facet) { - var options = view.getOptions(); - var coordinateOption = options.coordinate; - var geometries = view.geometries; - var coordinateType = get_default(coordinateOption, "type", "rect"); - if (coordinateType === "rect" && geometries.length) { - if (is_nil_default(options.axes)) { - options.axes = {}; - } - var axes = options.axes; - var _a6 = geometries[0].getXYFields(), x6 = _a6[0], y5 = _a6[1]; - var xOption = getAxisOption(axes, x6); - var yOption = getAxisOption(axes, y5); - if (xOption !== false) { - options.axes[x6] = this.getXAxisOption(x6, axes, xOption, facet); - } - if (yOption !== false) { - options.axes[y5] = this.getYAxisOption(y5, axes, yOption, facet); - } - } - }; - Facet3.prototype.getFacetDataFilter = function(conditions) { - return function(datum) { - return every_default(conditions, function(condition) { - var field6 = condition.field, value2 = condition.value; - if (!is_nil_default(value2) && field6) { - return datum[field6] === value2; - } - return true; - }); - }; - }; - return Facet3; -}(); - -// node_modules/@antv/g2/esm/facet/index.js -var Facets = {}; -var getFacet = function(type2) { - return Facets[lower_case_default(type2)]; -}; -var registerFacet = function(type2, ctor) { - Facets[lower_case_default(type2)] = ctor; -}; - -// node_modules/@antv/g2/esm/interaction/action/base.js -var Action = function() { - function Action2(context, cfg) { - this.context = context; - this.cfg = cfg; - context.addAction(this); - } - Action2.prototype.applyCfg = function(cfg) { - mix(this, cfg); - }; - Action2.prototype.init = function() { - this.applyCfg(this.cfg); - }; - Action2.prototype.destroy = function() { - this.context.removeAction(this); - this.context = null; - }; - return Action2; -}(); -var base_default12 = Action; - -// node_modules/@antv/g2/esm/interaction/action/callback.js -var CallbackAction = function(_super) { - __extends(CallbackAction2, _super); - function CallbackAction2() { - return _super !== null && _super.apply(this, arguments) || this; - } - CallbackAction2.prototype.execute = function() { - if (this.callback) { - this.callback(this.context); - } - }; - CallbackAction2.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.callback = null; - }; - return CallbackAction2; -}(base_default12); -var callback_default = CallbackAction; - -// node_modules/@antv/g2/esm/interaction/action/register.js -var ActionCache = {}; -function createAction(actionName, context) { - var actionOption = ActionCache[actionName]; - var action = null; - if (actionOption) { - var ActionClass = actionOption.ActionClass, cfg = actionOption.cfg; - action = new ActionClass(context, cfg); - action.name = actionName; - action.init(); - } - return action; -} -function getActionClass(actionName) { - var actionOption = ActionCache[actionName]; - return get_default(actionOption, "ActionClass"); -} -function registerAction(actionName, ActionClass, cfg) { - ActionCache[actionName] = { - ActionClass, - cfg - }; -} -function createCallbackAction(callback, context) { - var action = new callback_default(context); - action.callback = callback; - action.name = "callback"; - return action; -} - -// node_modules/@antv/g2/esm/geometry/shape/util/path.js -function _points2path(points, isInCircle) { - var path = []; - if (points.length) { - path.push(["M", points[0].x, points[0].y]); - for (var i4 = 1, length_1 = points.length; i4 < length_1; i4 += 1) { - var item = points[i4]; - path.push(["L", item.x, item.y]); - } - if (isInCircle) { - path.push(["Z"]); - } - } - return path; -} -function _convertArr(arr, coord2) { - var tmp = [arr[0]]; - for (var i4 = 1, len5 = arr.length; i4 < len5; i4 = i4 + 2) { - var point2 = coord2.convert({ - x: arr[i4], - y: arr[i4 + 1] - }); - tmp.push(point2.x, point2.y); - } - return tmp; -} -function _convertArcPath(path, coord2) { - var isTransposed = coord2.isTransposed; - var r4 = path[1]; - var x6 = path[6]; - var y5 = path[7]; - var point2 = coord2.convert({ x: x6, y: y5 }); - var direction5 = isTransposed ? 0 : 1; - return ["A", r4, r4, 0, 0, direction5, point2.x, point2.y]; -} -function _convertPolarPath(pre, cur, coord2) { - var isTransposed = coord2.isTransposed, startAngle = coord2.startAngle, endAngle = coord2.endAngle; - var prePoint = pre[0].toLowerCase() === "a" ? { - x: pre[6], - y: pre[7] - } : { - x: pre[1], - y: pre[2] - }; - var curPoint = { - x: cur[1], - y: cur[2] - }; - var rst = []; - var xDim = isTransposed ? "y" : "x"; - var angleRange = Math.abs(curPoint[xDim] - prePoint[xDim]) * (endAngle - startAngle); - var direction5 = curPoint[xDim] >= prePoint[xDim] ? 1 : 0; - var flag = angleRange > Math.PI ? 1 : 0; - var convertPoint = coord2.convert(curPoint); - var r4 = getDistanceToCenter(coord2, convertPoint); - if (r4 >= 0.5) { - if (angleRange === Math.PI * 2) { - var middlePoint = { - x: (curPoint.x + prePoint.x) / 2, - y: (curPoint.y + prePoint.y) / 2 - }; - var middleConvertPoint = coord2.convert(middlePoint); - rst.push(["A", r4, r4, 0, flag, direction5, middleConvertPoint.x, middleConvertPoint.y]); - rst.push(["A", r4, r4, 0, flag, direction5, convertPoint.x, convertPoint.y]); - } else { - rst.push(["A", r4, r4, 0, flag, direction5, convertPoint.x, convertPoint.y]); - } - } - return rst; -} -function _filterFullCirleLine(path) { - each_default(path, function(subPath, index2) { - var cur = subPath; - if (cur[0].toLowerCase() === "a") { - var pre = path[index2 - 1]; - var next = path[index2 + 1]; - if (next && next[0].toLowerCase() === "a") { - if (pre && pre[0].toLowerCase() === "l") { - pre[0] = "M"; - } - } else if (pre && pre[0].toLowerCase() === "a") { - if (next && next[0].toLowerCase() === "l") { - next[0] = "M"; - } - } - } - }); -} -var smoothBezier2 = function(points, smooth, isLoop, constraint) { - var cps = []; - var hasConstraint = !!constraint; - var prevPoint; - var nextPoint; - var min7; - var max8; - var nextCp0; - var cp1; - var cp0; - if (hasConstraint) { - min7 = constraint[0], max8 = constraint[1]; - for (var i4 = 0, l4 = points.length; i4 < l4; i4++) { - var point2 = points[i4]; - min7 = vec2_exports.min([0, 0], min7, point2); - max8 = vec2_exports.max([0, 0], max8, point2); - } - } - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var point2 = points[i4]; - if (i4 === 0 && !isLoop) { - cp0 = point2; - } else if (i4 === len5 - 1 && !isLoop) { - cp1 = point2; - cps.push(cp0); - cps.push(cp1); - } else { - prevPoint = points[isLoop ? i4 ? i4 - 1 : len5 - 1 : i4 - 1]; - nextPoint = points[isLoop ? (i4 + 1) % len5 : i4 + 1]; - var v3 = [0, 0]; - v3 = vec2_exports.sub(v3, nextPoint, prevPoint); - v3 = vec2_exports.scale(v3, v3, smooth); - var d0 = vec2_exports.distance(point2, prevPoint); - var d1 = vec2_exports.distance(point2, nextPoint); - var sum = d0 + d1; - if (sum !== 0) { - d0 /= sum; - d1 /= sum; - } - var v1 = vec2_exports.scale([0, 0], v3, -d0); - var v22 = vec2_exports.scale([0, 0], v3, d1); - cp1 = vec2_exports.add([0, 0], point2, v1); - nextCp0 = vec2_exports.add([0, 0], point2, v22); - nextCp0 = vec2_exports.min([0, 0], nextCp0, vec2_exports.max([0, 0], nextPoint, point2)); - nextCp0 = vec2_exports.max([0, 0], nextCp0, vec2_exports.min([0, 0], nextPoint, point2)); - v1 = vec2_exports.sub([0, 0], nextCp0, point2); - v1 = vec2_exports.scale([0, 0], v1, -d0 / d1); - cp1 = vec2_exports.add([0, 0], point2, v1); - cp1 = vec2_exports.min([0, 0], cp1, vec2_exports.max([0, 0], prevPoint, point2)); - cp1 = vec2_exports.max([0, 0], cp1, vec2_exports.min([0, 0], prevPoint, point2)); - v22 = vec2_exports.sub([0, 0], point2, cp1); - v22 = vec2_exports.scale([0, 0], v22, d1 / d0); - nextCp0 = vec2_exports.add([0, 0], point2, v22); - if (hasConstraint) { - cp1 = vec2_exports.max([0, 0], cp1, min7); - cp1 = vec2_exports.min([0, 0], cp1, max8); - nextCp0 = vec2_exports.max([0, 0], nextCp0, min7); - nextCp0 = vec2_exports.min([0, 0], nextCp0, max8); - } - cps.push(cp0); - cps.push(cp1); - cp0 = nextCp0; - } - } - if (isLoop) { - cps.push(cps.shift()); - } - return cps; -}; -function catmullRom2bezier(crp, z3, constraint) { - var isLoop = !!z3; - var pointList = []; - for (var i4 = 0, l4 = crp.length; i4 < l4; i4 += 2) { - pointList.push([crp[i4], crp[i4 + 1]]); - } - var controlPointList = smoothBezier2(pointList, 0.4, isLoop, constraint); - var len5 = pointList.length; - var d1 = []; - var cp1; - var cp2; - var p4; - for (var i4 = 0; i4 < len5 - 1; i4++) { - cp1 = controlPointList[i4 * 2]; - cp2 = controlPointList[i4 * 2 + 1]; - p4 = pointList[i4 + 1]; - d1.push(["C", cp1[0], cp1[1], cp2[0], cp2[1], p4[0], p4[1]]); - } - if (isLoop) { - cp1 = controlPointList[len5]; - cp2 = controlPointList[len5 + 1]; - p4 = pointList[0]; - d1.push(["C", cp1[0], cp1[1], cp2[0], cp2[1], p4[0], p4[1]]); - } - return d1; -} -function getLinePath2(points, isInCircle) { - return _points2path(points, isInCircle); -} -function getSplinePath(points, isInCircle, constaint) { - var data3 = []; - var first = points[0]; - var prePoint = null; - if (points.length <= 2) { - return getLinePath2(points, isInCircle); - } - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var point2 = points[i4]; - if (!prePoint || !(prePoint.x === point2.x && prePoint.y === point2.y)) { - data3.push(point2.x); - data3.push(point2.y); - prePoint = point2; - } - } - var constraint = constaint || [ - [0, 0], - [1, 1] - ]; - var splinePath2 = catmullRom2bezier(data3, isInCircle, constraint); - splinePath2.unshift(["M", first.x, first.y]); - return splinePath2; -} -function convertNormalPath(coord2, path) { - var tmp = []; - each_default(path, function(subPath) { - var action = subPath[0]; - switch (action.toLowerCase()) { - case "m": - case "l": - case "c": - tmp.push(_convertArr(subPath, coord2)); - break; - case "a": - tmp.push(_convertArcPath(subPath, coord2)); - break; - case "z": - default: - tmp.push(subPath); - break; - } - }); - return tmp; -} -function convertPolarPath(coord2, path) { - var tmp = []; - var pre; - var cur; - var transposed; - var equals7; - each_default(path, function(subPath, index2) { - var action = subPath[0]; - switch (action.toLowerCase()) { - case "m": - case "c": - case "q": - tmp.push(_convertArr(subPath, coord2)); - break; - case "l": - pre = path[index2 - 1]; - cur = subPath; - transposed = coord2.isTransposed; - equals7 = transposed ? pre[pre.length - 2] === cur[1] : pre[pre.length - 1] === cur[2]; - if (equals7) { - tmp = tmp.concat(_convertPolarPath(pre, cur, coord2)); - } else { - tmp.push(_convertArr(subPath, coord2)); - } - break; - case "a": - tmp.push(_convertArcPath(subPath, coord2)); - break; - case "z": - default: - tmp.push(subPath); - break; - } - }); - _filterFullCirleLine(tmp); - return tmp; -} - -// node_modules/@antv/g2/esm/interaction/action/util.js -function getMaskBBox(context, tolerance3) { - var event = context.event; - var maskShape = event.target; - var maskBBox = maskShape.getCanvasBBox(); - if (!(maskBBox.width >= tolerance3 || maskBBox.height >= tolerance3)) { - return null; - } - return maskBBox; -} -function getMaskPath(context, tolerance3) { - var event = context.event; - var maskShape = event.target; - var maskBBox = maskShape.getCanvasBBox(); - if (!(maskBBox.width >= tolerance3 || maskBBox.height >= tolerance3)) { - return null; - } - return maskShape.attr("path"); -} -function getCurrentElement(context) { - var event = context.event; - var element; - var target = event.target; - if (target) { - element = target.get("element"); - } - return element; -} -function getDelegationObject(context) { - var event = context.event; - var target = event.target; - var delegateObject; - if (target) { - delegateObject = target.get("delegateObject"); - } - return delegateObject; -} -function isElementChange(context) { - var event = context.event.gEvent; - if (event && event.fromShape && event.toShape && event.fromShape.get("element") === event.toShape.get("element")) { - return false; - } - return true; -} -function isList(delegateObject) { - return delegateObject && delegateObject.component && delegateObject.component.isList(); -} -function isSlider(delegateObject) { - return delegateObject && delegateObject.component && delegateObject.component.isSlider(); -} -function isMask(context) { - var event = context.event; - var target = event.target; - return target && target.get("name") === "mask"; -} -function getMaskedElements(context, tolerance3) { - var target = context.event.target; - if (target.get("type") === "path") { - var maskPath = getMaskPath(context, tolerance3); - if (!maskPath) { - return; - } - return getElementsByPath(context.view, maskPath); - } - var maskBBox = getMaskBBox(context, tolerance3); - if (!maskBBox) { - return null; - } - return getIntersectElements(context.view, maskBBox); -} -function getSiblingMaskElements(context, sibling, tolerance3) { - var maskBBox = getMaskBBox(context, tolerance3); - if (!maskBBox) { - return null; - } - var view = context.view; - var start = getSiblingPoint(view, sibling, { x: maskBBox.x, y: maskBBox.y }); - var end2 = getSiblingPoint(view, sibling, { x: maskBBox.maxX, y: maskBBox.maxY }); - var box2 = { - minX: start.x, - minY: start.y, - maxX: end2.x, - maxY: end2.y - }; - return getIntersectElements(sibling, box2); -} -function getElements(view) { - var geometries = view.geometries; - var rst = []; - each_default(geometries, function(geom) { - var elements = geom.elements; - rst = rst.concat(elements); - }); - if (view.views && view.views.length) { - each_default(view.views, function(subView) { - rst = rst.concat(getElements(subView)); - }); - } - return rst; -} -function getElementsByField(view, field6, value2) { - var elements = getElements(view); - return elements.filter(function(el) { - return getElementValue(el, field6) === value2; - }); -} -function getElementsByState(view, stateName) { - var geometries = view.geometries; - var rst = []; - each_default(geometries, function(geom) { - var elements = geom.getElementsBy(function(el) { - return el.hasState(stateName); - }); - rst = rst.concat(elements); - }); - return rst; -} -function getElementValue(element, field6) { - var model = element.getModel(); - var record = model.data; - var value2; - if (is_array_default(record)) { - value2 = record[0][field6]; - } else { - value2 = record[field6]; - } - return value2; -} -function intersectRect(box1, box2) { - return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY); -} -function getIntersectElements(view, box2) { - var elements = getElements(view); - var rst = []; - each_default(elements, function(el) { - var shape = el.shape; - var shapeBBox = shape.getCanvasBBox(); - if (intersectRect(box2, shapeBBox)) { - rst.push(el); - } - }); - return rst; -} -function pathToPoints(path) { - var points = []; - each_default(path, function(seg) { - var command = seg[0]; - if (command !== "A") { - for (var i4 = 1; i4 < seg.length; i4 = i4 + 2) { - points.push([seg[i4], seg[i4 + 1]]); - } - } else { - var length_1 = seg.length; - points.push([seg[length_1 - 2], seg[length_1 - 1]]); - } - }); - return points; -} -function getElementsByPath(view, path) { - var elements = getElements(view); - var points = pathToPoints(path); - var rst = elements.filter(function(el) { - var shape = el.shape; - var shapePoints; - if (shape.get("type") === "path") { - shapePoints = pathToPoints(shape.attr("path")); - } else { - var shapeBBox = shape.getCanvasBBox(); - shapePoints = toPoints(shapeBBox); - } - return isPolygonsIntersect(points, shapePoints); - }); - return rst; -} -function getComponents(view) { - return view.getComponents().map(function(co) { - return co.component; - }); -} -function distance7(p1, p22) { - var dx = p22.x - p1.x; - var dy = p22.y - p1.y; - return Math.sqrt(dx * dx + dy * dy); -} -function getSpline(points, z3) { - if (points.length <= 2) { - return getLinePath2(points, false); - } - var first = points[0]; - var arr = []; - each_default(points, function(point2) { - arr.push(point2.x); - arr.push(point2.y); - }); - var path = catmullRom2bezier(arr, z3, null); - path.unshift(["M", first.x, first.y]); - return path; -} -function isInBox(box2, point2) { - return box2.x <= point2.x && box2.maxX >= point2.x && box2.y <= point2.y && box2.maxY > point2.y; -} -function getSilbings(view) { - var parent = view.parent; - var siblings = null; - if (parent) { - siblings = parent.views.filter(function(sub6) { - return sub6 !== view; - }); - } - return siblings; -} -function point2Normalize(view, point2) { - var coord2 = view.getCoordinate(); - return coord2.invert(point2); -} -function getSiblingPoint(view, sibling, point2) { - var normalPoint = point2Normalize(view, point2); - return sibling.getCoordinate().convert(normalPoint); -} -function isInRecords(records, record, xFiled, yField) { - var isIn = false; - each_default(records, function(r4) { - if (r4[xFiled] === record[xFiled] && r4[yField] === record[yField]) { - isIn = true; - return false; - } - }); - return isIn; -} -function getScaleByField(view, field6) { - var scale12 = view.getScaleByField(field6); - if (!scale12 && view.views) { - each_default(view.views, function(subView) { - scale12 = getScaleByField(subView, field6); - if (scale12) { - return false; - } - }); - } - return scale12; -} - -// node_modules/@antv/g2/esm/interaction/context.js -var Context = function() { - function Context2(view) { - this.actions = []; - this.event = null; - this.cacheMap = {}; - this.view = view; - } - Context2.prototype.cache = function() { - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - if (params.length === 1) { - return this.cacheMap[params[0]]; - } else if (params.length === 2) { - this.cacheMap[params[0]] = params[1]; - } - }; - Context2.prototype.getAction = function(name) { - return this.actions.find(function(action) { - return action.name === name; - }); - }; - Context2.prototype.addAction = function(action) { - this.actions.push(action); - }; - Context2.prototype.removeAction = function(action) { - var actions = this.actions; - var index2 = this.actions.indexOf(action); - if (index2 >= 0) { - actions.splice(index2, 1); - } - }; - Context2.prototype.getCurrentPoint = function() { - var event = this.event; - if (event) { - if (event.target instanceof HTMLElement) { - var canvas = this.view.getCanvas(); - var point2 = canvas.getPointByClient(event.clientX, event.clientY); - return point2; - } else { - return { - x: event.x, - y: event.y - }; - } - } - return null; - }; - Context2.prototype.getCurrentShape = function() { - return get_default(this.event, ["gEvent", "shape"]); - }; - Context2.prototype.isInPlot = function() { - var point2 = this.getCurrentPoint(); - if (point2) { - return this.view.isPointInPlot(point2); - } - return false; - }; - Context2.prototype.isInShape = function(name) { - var shape = this.getCurrentShape(); - if (shape) { - return shape.get("name") === name; - } - return false; - }; - Context2.prototype.isInComponent = function(name) { - var components = getComponents(this.view); - var point2 = this.getCurrentPoint(); - if (point2) { - return !!components.find(function(component2) { - var bbox = component2.getBBox(); - if (name) { - return component2.get("name") === name && isInBox(bbox, point2); - } else { - return isInBox(bbox, point2); - } - }); - } - return false; - }; - Context2.prototype.destroy = function() { - each_default(this.actions.slice(), function(action) { - action.destroy(); - }); - this.view = null; - this.event = null; - this.actions = null; - this.cacheMap = null; - }; - return Context2; -}(); -var context_default = Context; - -// node_modules/@antv/g2/esm/interaction/interaction.js -var Interaction = function() { - function Interaction2(view, cfg) { - this.view = view; - this.cfg = cfg; - } - Interaction2.prototype.init = function() { - this.initEvents(); - }; - Interaction2.prototype.initEvents = function() { - }; - Interaction2.prototype.clearEvents = function() { - }; - Interaction2.prototype.destroy = function() { - this.clearEvents(); - }; - return Interaction2; -}(); -var interaction_default = Interaction; - -// node_modules/@antv/g2/esm/interaction/grammar-interaction.js -function parseAction(actionStr, context, arg) { - var arr = actionStr.split(":"); - var actionName = arr[0]; - var action = context.getAction(actionName) || createAction(actionName, context); - if (!action) { - throw new Error("There is no action named ".concat(actionName)); - } - var methodName = arr[1]; - return { - action, - methodName, - arg - }; -} -function executeAction(actionObject) { - var action = actionObject.action, methodName = actionObject.methodName, arg = actionObject.arg; - if (action[methodName]) { - action[methodName](arg); - } else { - throw new Error("Action(".concat(action.name, ") doesn't have a method called ").concat(methodName)); - } -} -var STEP_NAMES = { - START: "start", - SHOW_ENABLE: "showEnable", - END: "end", - ROLLBACK: "rollback", - PROCESSING: "processing" -}; -var GrammarInteraction = function(_super) { - __extends(GrammarInteraction2, _super); - function GrammarInteraction2(view, steps) { - var _this = _super.call(this, view, steps) || this; - _this.callbackCaches = {}; - _this.emitCaches = {}; - _this.steps = steps; - return _this; - } - GrammarInteraction2.prototype.init = function() { - this.initContext(); - _super.prototype.init.call(this); - }; - GrammarInteraction2.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.steps = null; - if (this.context) { - this.context.destroy(); - this.context = null; - } - this.callbackCaches = null; - this.view = null; - }; - GrammarInteraction2.prototype.initEvents = function() { - var _this = this; - each_default(this.steps, function(stepArr, stepName) { - each_default(stepArr, function(step) { - var callback = _this.getActionCallback(stepName, step); - if (callback) { - _this.bindEvent(step.trigger, callback); - } - }); - }); - }; - GrammarInteraction2.prototype.clearEvents = function() { - var _this = this; - each_default(this.steps, function(stepArr, stepName) { - each_default(stepArr, function(step) { - var callback = _this.getActionCallback(stepName, step); - if (callback) { - _this.offEvent(step.trigger, callback); - } - }); - }); - }; - GrammarInteraction2.prototype.initContext = function() { - var view = this.view; - var context = new context_default(view); - this.context = context; - var steps = this.steps; - each_default(steps, function(subSteps) { - each_default(subSteps, function(step) { - if (is_function_default(step.action)) { - step.actionObject = { - action: createCallbackAction(step.action, context), - methodName: "execute" - }; - } else if (is_string_default(step.action)) { - step.actionObject = parseAction(step.action, context, step.arg); - } else if (is_array_default(step.action)) { - var actionArr = step.action; - var argArr_1 = is_array_default(step.arg) ? step.arg : [step.arg]; - step.actionObject = []; - each_default(actionArr, function(actionStr, idx) { - step.actionObject.push(parseAction(actionStr, context, argArr_1[idx])); - }); - } - }); - }); - }; - GrammarInteraction2.prototype.isAllowStep = function(stepName) { - var currentStepName = this.currentStepName; - var steps = this.steps; - if (currentStepName === stepName) { - return true; - } - if (stepName === STEP_NAMES.SHOW_ENABLE) { - return true; - } - if (stepName === STEP_NAMES.PROCESSING) { - return currentStepName === STEP_NAMES.START; - } - if (stepName === STEP_NAMES.START) { - return currentStepName !== STEP_NAMES.PROCESSING; - } - if (stepName === STEP_NAMES.END) { - return currentStepName === STEP_NAMES.PROCESSING || currentStepName === STEP_NAMES.START; - } - if (stepName === STEP_NAMES.ROLLBACK) { - if (steps[STEP_NAMES.END]) { - return currentStepName === STEP_NAMES.END; - } else if (currentStepName === STEP_NAMES.START) { - return true; - } - } - return false; - }; - GrammarInteraction2.prototype.isAllowExecute = function(stepName, step) { - if (this.isAllowStep(stepName)) { - var key = this.getKey(stepName, step); - if (step.once && this.emitCaches[key]) { - return false; - } - if (step.isEnable) { - return step.isEnable(this.context); - } - return true; - } - return false; - }; - GrammarInteraction2.prototype.enterStep = function(stepName) { - this.currentStepName = stepName; - this.emitCaches = {}; - }; - GrammarInteraction2.prototype.afterExecute = function(stepName, step) { - if (stepName !== STEP_NAMES.SHOW_ENABLE && this.currentStepName !== stepName) { - this.enterStep(stepName); - } - var key = this.getKey(stepName, step); - this.emitCaches[key] = true; - }; - GrammarInteraction2.prototype.getKey = function(stepName, step) { - return stepName + step.trigger + step.action; - }; - GrammarInteraction2.prototype.getActionCallback = function(stepName, step) { - var _this = this; - var context = this.context; - var callbackCaches = this.callbackCaches; - var actionObject = step.actionObject; - if (step.action && actionObject) { - var key = this.getKey(stepName, step); - if (!callbackCaches[key]) { - var actionCallback = function(event) { - context.event = event; - if (_this.isAllowExecute(stepName, step)) { - if (is_array_default(actionObject)) { - each_default(actionObject, function(obj) { - context.event = event; - executeAction(obj); - }); - } else { - context.event = event; - executeAction(actionObject); - } - _this.afterExecute(stepName, step); - if (step.callback) { - context.event = event; - step.callback(context); - } - } else { - context.event = null; - } - }; - if (step.debounce) { - callbackCaches[key] = debounce_default(actionCallback, step.debounce.wait, step.debounce.immediate); - } else if (step.throttle) { - callbackCaches[key] = throttle_default(actionCallback, step.throttle.wait, { - leading: step.throttle.leading, - trailing: step.throttle.trailing - }); - } else { - callbackCaches[key] = actionCallback; - } - } - return callbackCaches[key]; - } - return null; - }; - GrammarInteraction2.prototype.bindEvent = function(eventName, callback) { - var nameArr = eventName.split(":"); - if (nameArr[0] === "window") { - window.addEventListener(nameArr[1], callback); - } else if (nameArr[0] === "document") { - document.addEventListener(nameArr[1], callback); - } else { - this.view.on(eventName, callback); - } - }; - GrammarInteraction2.prototype.offEvent = function(eventName, callback) { - var nameArr = eventName.split(":"); - if (nameArr[0] === "window") { - window.removeEventListener(nameArr[1], callback); - } else if (nameArr[0] === "document") { - document.removeEventListener(nameArr[1], callback); - } else { - this.view.off(eventName, callback); - } - }; - return GrammarInteraction2; -}(interaction_default); -var grammar_interaction_default = GrammarInteraction; - -// node_modules/@antv/g2/esm/interaction/index.js -var Interactions = {}; -function getInteraction(name) { - return Interactions[lower_case_default(name)]; -} -function registerInteraction(name, interaction8) { - Interactions[lower_case_default(name)] = interaction8; -} -function createInteraction(name, view, cfg) { - var interaciton = getInteraction(name); - if (!interaciton) { - return null; - } - if (is_plain_object_default(interaciton)) { - var steps = mix(clone_default(interaciton), cfg); - return new grammar_interaction_default(view, steps); - } else { - var cls = interaciton; - return new cls(view, cfg); - } -} - -// node_modules/@antv/g2/esm/theme/util/create-by-style-sheet.js -function createAxisStyles(styleSheet) { - return { - title: { - autoRotate: true, - position: "center", - spacing: styleSheet.axisTitleSpacing, - style: { - fill: styleSheet.axisTitleTextFillColor, - fontSize: styleSheet.axisTitleTextFontSize, - lineHeight: styleSheet.axisTitleTextLineHeight, - textBaseline: "middle", - fontFamily: styleSheet.fontFamily - } - }, - label: { - autoRotate: false, - autoEllipsis: false, - autoHide: { type: "equidistance", cfg: { minGap: 6 } }, - offset: styleSheet.axisLabelOffset, - style: { - fill: styleSheet.axisLabelFillColor, - fontSize: styleSheet.axisLabelFontSize, - lineHeight: styleSheet.axisLabelLineHeight, - fontFamily: styleSheet.fontFamily - } - }, - line: { - style: { - lineWidth: styleSheet.axisLineBorder, - stroke: styleSheet.axisLineBorderColor - } - }, - grid: { - line: { - type: "line", - style: { - stroke: styleSheet.axisGridBorderColor, - lineWidth: styleSheet.axisGridBorder, - lineDash: styleSheet.axisGridLineDash - } - }, - alignTick: true, - animate: true - }, - tickLine: { - style: { - lineWidth: styleSheet.axisTickLineBorder, - stroke: styleSheet.axisTickLineBorderColor - }, - alignTick: true, - length: styleSheet.axisTickLineLength - }, - subTickLine: null, - animate: true - }; -} -function createLegendStyles(styleSheet) { - return { - title: null, - marker: { - symbol: "circle", - spacing: styleSheet.legendMarkerSpacing, - style: { - r: styleSheet.legendCircleMarkerSize, - fill: styleSheet.legendMarkerColor - } - }, - itemName: { - spacing: 5, - style: { - fill: styleSheet.legendItemNameFillColor, - fontFamily: styleSheet.fontFamily, - fontSize: styleSheet.legendItemNameFontSize, - lineHeight: styleSheet.legendItemNameLineHeight, - fontWeight: styleSheet.legendItemNameFontWeight, - textAlign: "start", - textBaseline: "middle" - } - }, - itemStates: { - active: { - nameStyle: { - opacity: 0.8 - } - }, - unchecked: { - nameStyle: { - fill: "#D8D8D8" - }, - markerStyle: { - fill: "#D8D8D8", - stroke: "#D8D8D8" - } - }, - inactive: { - nameStyle: { - fill: "#D8D8D8" - }, - markerStyle: { - opacity: 0.2 - } - } - }, - flipPage: true, - pageNavigator: { - marker: { - style: { - size: styleSheet.legendPageNavigatorMarkerSize, - inactiveFill: styleSheet.legendPageNavigatorMarkerInactiveFillColor, - inactiveOpacity: styleSheet.legendPageNavigatorMarkerInactiveFillOpacity, - fill: styleSheet.legendPageNavigatorMarkerFillColor, - opacity: styleSheet.legendPageNavigatorMarkerFillOpacity - } - }, - text: { - style: { - fill: styleSheet.legendPageNavigatorTextFillColor, - fontSize: styleSheet.legendPageNavigatorTextFontSize - } - } - }, - animate: false, - maxItemWidth: 200, - itemSpacing: styleSheet.legendItemSpacing, - itemMarginBottom: styleSheet.legendItemMarginBottom, - padding: styleSheet.legendPadding - }; -} -function createThemeByStyleSheet(styleSheet) { - var _a6; - var shapeStyles = { - point: { - default: { - fill: styleSheet.pointFillColor, - r: styleSheet.pointSize, - stroke: styleSheet.pointBorderColor, - lineWidth: styleSheet.pointBorder, - fillOpacity: styleSheet.pointFillOpacity - }, - active: { - stroke: styleSheet.pointActiveBorderColor, - lineWidth: styleSheet.pointActiveBorder - }, - selected: { - stroke: styleSheet.pointSelectedBorderColor, - lineWidth: styleSheet.pointSelectedBorder - }, - inactive: { - fillOpacity: styleSheet.pointInactiveFillOpacity, - strokeOpacity: styleSheet.pointInactiveBorderOpacity - } - }, - hollowPoint: { - default: { - fill: styleSheet.hollowPointFillColor, - lineWidth: styleSheet.hollowPointBorder, - stroke: styleSheet.hollowPointBorderColor, - strokeOpacity: styleSheet.hollowPointBorderOpacity, - r: styleSheet.hollowPointSize - }, - active: { - stroke: styleSheet.hollowPointActiveBorderColor, - strokeOpacity: styleSheet.hollowPointActiveBorderOpacity - }, - selected: { - lineWidth: styleSheet.hollowPointSelectedBorder, - stroke: styleSheet.hollowPointSelectedBorderColor, - strokeOpacity: styleSheet.hollowPointSelectedBorderOpacity - }, - inactive: { - strokeOpacity: styleSheet.hollowPointInactiveBorderOpacity - } - }, - area: { - default: { - fill: styleSheet.areaFillColor, - fillOpacity: styleSheet.areaFillOpacity, - stroke: null - }, - active: { - fillOpacity: styleSheet.areaActiveFillOpacity - }, - selected: { - fillOpacity: styleSheet.areaSelectedFillOpacity - }, - inactive: { - fillOpacity: styleSheet.areaInactiveFillOpacity - } - }, - hollowArea: { - default: { - fill: null, - stroke: styleSheet.hollowAreaBorderColor, - lineWidth: styleSheet.hollowAreaBorder, - strokeOpacity: styleSheet.hollowAreaBorderOpacity - }, - active: { - fill: null, - lineWidth: styleSheet.hollowAreaActiveBorder - }, - selected: { - fill: null, - lineWidth: styleSheet.hollowAreaSelectedBorder - }, - inactive: { - strokeOpacity: styleSheet.hollowAreaInactiveBorderOpacity - } - }, - interval: { - default: { - fill: styleSheet.intervalFillColor, - fillOpacity: styleSheet.intervalFillOpacity - }, - active: { - stroke: styleSheet.intervalActiveBorderColor, - lineWidth: styleSheet.intervalActiveBorder - }, - selected: { - stroke: styleSheet.intervalSelectedBorderColor, - lineWidth: styleSheet.intervalSelectedBorder - }, - inactive: { - fillOpacity: styleSheet.intervalInactiveFillOpacity, - strokeOpacity: styleSheet.intervalInactiveBorderOpacity - } - }, - hollowInterval: { - default: { - fill: styleSheet.hollowIntervalFillColor, - stroke: styleSheet.hollowIntervalBorderColor, - lineWidth: styleSheet.hollowIntervalBorder, - strokeOpacity: styleSheet.hollowIntervalBorderOpacity - }, - active: { - stroke: styleSheet.hollowIntervalActiveBorderColor, - lineWidth: styleSheet.hollowIntervalActiveBorder, - strokeOpacity: styleSheet.hollowIntervalActiveBorderOpacity - }, - selected: { - stroke: styleSheet.hollowIntervalSelectedBorderColor, - lineWidth: styleSheet.hollowIntervalSelectedBorder, - strokeOpacity: styleSheet.hollowIntervalSelectedBorderOpacity - }, - inactive: { - stroke: styleSheet.hollowIntervalInactiveBorderColor, - lineWidth: styleSheet.hollowIntervalInactiveBorder, - strokeOpacity: styleSheet.hollowIntervalInactiveBorderOpacity - } - }, - line: { - default: { - stroke: styleSheet.lineBorderColor, - lineWidth: styleSheet.lineBorder, - strokeOpacity: styleSheet.lineBorderOpacity, - fill: null, - lineAppendWidth: 10, - lineCap: "round", - lineJoin: "round" - }, - active: { - lineWidth: styleSheet.lineActiveBorder - }, - selected: { - lineWidth: styleSheet.lineSelectedBorder - }, - inactive: { - strokeOpacity: styleSheet.lineInactiveBorderOpacity - } - } - }; - var axisStyles = createAxisStyles(styleSheet); - var legendStyles = createLegendStyles(styleSheet); - return { - background: styleSheet.backgroundColor, - defaultColor: styleSheet.brandColor, - subColor: styleSheet.subColor, - semanticRed: styleSheet.paletteSemanticRed, - semanticGreen: styleSheet.paletteSemanticGreen, - padding: "auto", - fontFamily: styleSheet.fontFamily, - columnWidthRatio: 1 / 2, - maxColumnWidth: null, - minColumnWidth: null, - roseWidthRatio: 0.9999999, - multiplePieWidthRatio: 1 / 1.3, - colors10: styleSheet.paletteQualitative10, - colors20: styleSheet.paletteQualitative20, - sequenceColors: styleSheet.paletteSequence, - shapes: { - point: [ - "hollow-circle", - "hollow-square", - "hollow-bowtie", - "hollow-diamond", - "hollow-hexagon", - "hollow-triangle", - "hollow-triangle-down", - "circle", - "square", - "bowtie", - "diamond", - "hexagon", - "triangle", - "triangle-down", - "cross", - "tick", - "plus", - "hyphen", - "line" - ], - line: ["line", "dash", "dot", "smooth"], - area: ["area", "smooth", "line", "smooth-line"], - interval: ["rect", "hollow-rect", "line", "tick"] - }, - sizes: [1, 10], - geometries: { - interval: { - rect: { - default: { - style: shapeStyles.interval.default - }, - active: { - style: shapeStyles.interval.active - }, - inactive: { - style: shapeStyles.interval.inactive - }, - selected: { - style: function(element) { - var coordinate11 = element.geometry.coordinate; - if (coordinate11.isPolar && coordinate11.isTransposed) { - var _a7 = getAngle3(element.getModel(), coordinate11), startAngle = _a7.startAngle, endAngle = _a7.endAngle; - var middleAngle = (startAngle + endAngle) / 2; - var r4 = 7.5; - var x6 = r4 * Math.cos(middleAngle); - var y5 = r4 * Math.sin(middleAngle); - return { - matrix: ext_exports.transform(null, [["t", x6, y5]]) - }; - } - return shapeStyles.interval.selected; - } - } - }, - "hollow-rect": { - default: { - style: shapeStyles.hollowInterval.default - }, - active: { - style: shapeStyles.hollowInterval.active - }, - inactive: { - style: shapeStyles.hollowInterval.inactive - }, - selected: { - style: shapeStyles.hollowInterval.selected - } - }, - line: { - default: { - style: shapeStyles.hollowInterval.default - }, - active: { - style: shapeStyles.hollowInterval.active - }, - inactive: { - style: shapeStyles.hollowInterval.inactive - }, - selected: { - style: shapeStyles.hollowInterval.selected - } - }, - tick: { - default: { - style: shapeStyles.hollowInterval.default - }, - active: { - style: shapeStyles.hollowInterval.active - }, - inactive: { - style: shapeStyles.hollowInterval.inactive - }, - selected: { - style: shapeStyles.hollowInterval.selected - } - }, - funnel: { - default: { - style: shapeStyles.interval.default - }, - active: { - style: shapeStyles.interval.active - }, - inactive: { - style: shapeStyles.interval.inactive - }, - selected: { - style: shapeStyles.interval.selected - } - }, - pyramid: { - default: { - style: shapeStyles.interval.default - }, - active: { - style: shapeStyles.interval.active - }, - inactive: { - style: shapeStyles.interval.inactive - }, - selected: { - style: shapeStyles.interval.selected - } - } - }, - line: { - line: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - dot: { - default: { - style: __assign(__assign({}, shapeStyles.line.default), { lineCap: null, lineDash: [1, 1] }) - }, - active: { - style: __assign(__assign({}, shapeStyles.line.active), { lineCap: null, lineDash: [1, 1] }) - }, - inactive: { - style: __assign(__assign({}, shapeStyles.line.inactive), { lineCap: null, lineDash: [1, 1] }) - }, - selected: { - style: __assign(__assign({}, shapeStyles.line.selected), { lineCap: null, lineDash: [1, 1] }) - } - }, - dash: { - default: { - style: __assign(__assign({}, shapeStyles.line.default), { lineCap: null, lineDash: [5.5, 1] }) - }, - active: { - style: __assign(__assign({}, shapeStyles.line.active), { lineCap: null, lineDash: [5.5, 1] }) - }, - inactive: { - style: __assign(__assign({}, shapeStyles.line.inactive), { lineCap: null, lineDash: [5.5, 1] }) - }, - selected: { - style: __assign(__assign({}, shapeStyles.line.selected), { lineCap: null, lineDash: [5.5, 1] }) - } - }, - smooth: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - hv: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - vh: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - hvh: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - vhv: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - } - }, - polygon: { - polygon: { - default: { - style: shapeStyles.interval.default - }, - active: { - style: shapeStyles.interval.active - }, - inactive: { - style: shapeStyles.interval.inactive - }, - selected: { - style: shapeStyles.interval.selected - } - } - }, - point: { - circle: { - default: { - style: shapeStyles.point.default - }, - active: { - style: shapeStyles.point.active - }, - inactive: { - style: shapeStyles.point.inactive - }, - selected: { - style: shapeStyles.point.selected - } - }, - square: { - default: { - style: shapeStyles.point.default - }, - active: { - style: shapeStyles.point.active - }, - inactive: { - style: shapeStyles.point.inactive - }, - selected: { - style: shapeStyles.point.selected - } - }, - bowtie: { - default: { - style: shapeStyles.point.default - }, - active: { - style: shapeStyles.point.active - }, - inactive: { - style: shapeStyles.point.inactive - }, - selected: { - style: shapeStyles.point.selected - } - }, - diamond: { - default: { - style: shapeStyles.point.default - }, - active: { - style: shapeStyles.point.active - }, - inactive: { - style: shapeStyles.point.inactive - }, - selected: { - style: shapeStyles.point.selected - } - }, - hexagon: { - default: { - style: shapeStyles.point.default - }, - active: { - style: shapeStyles.point.active - }, - inactive: { - style: shapeStyles.point.inactive - }, - selected: { - style: shapeStyles.point.selected - } - }, - triangle: { - default: { - style: shapeStyles.point.default - }, - active: { - style: shapeStyles.point.active - }, - inactive: { - style: shapeStyles.point.inactive - }, - selected: { - style: shapeStyles.point.selected - } - }, - "triangle-down": { - default: { - style: shapeStyles.point.default - }, - active: { - style: shapeStyles.point.active - }, - inactive: { - style: shapeStyles.point.inactive - }, - selected: { - style: shapeStyles.point.selected - } - }, - "hollow-circle": { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - "hollow-square": { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - "hollow-bowtie": { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - "hollow-diamond": { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - "hollow-hexagon": { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - "hollow-triangle": { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - "hollow-triangle-down": { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - cross: { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - tick: { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - plus: { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - hyphen: { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - }, - line: { - default: { - style: shapeStyles.hollowPoint.default - }, - active: { - style: shapeStyles.hollowPoint.active - }, - inactive: { - style: shapeStyles.hollowPoint.inactive - }, - selected: { - style: shapeStyles.hollowPoint.selected - } - } - }, - area: { - area: { - default: { - style: shapeStyles.area.default - }, - active: { - style: shapeStyles.area.active - }, - inactive: { - style: shapeStyles.area.inactive - }, - selected: { - style: shapeStyles.area.selected - } - }, - smooth: { - default: { - style: shapeStyles.area.default - }, - active: { - style: shapeStyles.area.active - }, - inactive: { - style: shapeStyles.area.inactive - }, - selected: { - style: shapeStyles.area.selected - } - }, - line: { - default: { - style: shapeStyles.hollowArea.default - }, - active: { - style: shapeStyles.hollowArea.active - }, - inactive: { - style: shapeStyles.hollowArea.inactive - }, - selected: { - style: shapeStyles.hollowArea.selected - } - }, - "smooth-line": { - default: { - style: shapeStyles.hollowArea.default - }, - active: { - style: shapeStyles.hollowArea.active - }, - inactive: { - style: shapeStyles.hollowArea.inactive - }, - selected: { - style: shapeStyles.hollowArea.selected - } - } - }, - schema: { - candle: { - default: { - style: shapeStyles.hollowInterval.default - }, - active: { - style: shapeStyles.hollowInterval.active - }, - inactive: { - style: shapeStyles.hollowInterval.inactive - }, - selected: { - style: shapeStyles.hollowInterval.selected - } - }, - box: { - default: { - style: shapeStyles.hollowInterval.default - }, - active: { - style: shapeStyles.hollowInterval.active - }, - inactive: { - style: shapeStyles.hollowInterval.inactive - }, - selected: { - style: shapeStyles.hollowInterval.selected - } - } - }, - edge: { - line: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - vhv: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - smooth: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - arc: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - } - }, - violin: { - violin: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - smooth: { - default: { - style: shapeStyles.line.default - }, - active: { - style: shapeStyles.line.active - }, - inactive: { - style: shapeStyles.line.inactive - }, - selected: { - style: shapeStyles.line.selected - } - }, - hollow: { - default: { - style: shapeStyles.hollowArea.default - }, - active: { - style: shapeStyles.hollowArea.active - }, - inactive: { - style: shapeStyles.hollowArea.inactive - }, - selected: { - style: shapeStyles.hollowArea.selected - } - }, - "hollow-smooth": { - default: { - style: shapeStyles.hollowArea.default - }, - active: { - style: shapeStyles.hollowArea.active - }, - inactive: { - style: shapeStyles.hollowArea.inactive - }, - selected: { - style: shapeStyles.hollowArea.selected - } - } - } - }, - components: { - axis: { - common: axisStyles, - top: { - position: "top", - grid: null, - title: null, - verticalLimitLength: 1 / 2 - }, - bottom: { - position: "bottom", - grid: null, - title: null, - verticalLimitLength: 1 / 2 - }, - left: { - position: "left", - title: null, - line: null, - tickLine: null, - verticalLimitLength: 1 / 3 - }, - right: { - position: "right", - title: null, - line: null, - tickLine: null, - verticalLimitLength: 1 / 3 - }, - circle: { - title: null, - grid: deep_mix_default({}, axisStyles.grid, { line: { type: "line" } }) - }, - radius: { - title: null, - grid: deep_mix_default({}, axisStyles.grid, { line: { type: "circle" } }) - } - }, - legend: { - common: legendStyles, - right: { - layout: "vertical", - padding: styleSheet.legendVerticalPadding - }, - left: { - layout: "vertical", - padding: styleSheet.legendVerticalPadding - }, - top: { - layout: "horizontal", - padding: styleSheet.legendHorizontalPadding - }, - bottom: { - layout: "horizontal", - padding: styleSheet.legendHorizontalPadding - }, - continuous: { - title: null, - background: null, - track: {}, - rail: { - type: "color", - size: styleSheet.sliderRailHeight, - defaultLength: styleSheet.sliderRailWidth, - style: { - fill: styleSheet.sliderRailFillColor, - stroke: styleSheet.sliderRailBorderColor, - lineWidth: styleSheet.sliderRailBorder - } - }, - label: { - align: "rail", - spacing: 4, - formatter: null, - style: { - fill: styleSheet.sliderLabelTextFillColor, - fontSize: styleSheet.sliderLabelTextFontSize, - lineHeight: styleSheet.sliderLabelTextLineHeight, - textBaseline: "middle", - fontFamily: styleSheet.fontFamily - } - }, - handler: { - size: styleSheet.sliderHandlerWidth, - style: { - fill: styleSheet.sliderHandlerFillColor, - stroke: styleSheet.sliderHandlerBorderColor - } - }, - slidable: true, - padding: legendStyles.padding - } - }, - tooltip: { - showContent: true, - follow: true, - showCrosshairs: false, - showMarkers: true, - shared: false, - enterable: false, - position: "auto", - marker: { - symbol: "circle", - stroke: "#fff", - shadowBlur: 10, - shadowOffsetX: 0, - shadowOffsetY: 0, - shadowColor: "rgba(0,0,0,0.09)", - lineWidth: 2, - r: 4 - }, - crosshairs: { - line: { - style: { - stroke: styleSheet.tooltipCrosshairsBorderColor, - lineWidth: styleSheet.tooltipCrosshairsBorder - } - }, - text: null, - textBackground: { - padding: 2, - style: { - fill: "rgba(0, 0, 0, 0.25)", - lineWidth: 0, - stroke: null - } - }, - follow: false - }, - domStyles: (_a6 = {}, _a6["".concat(css_const_exports.CONTAINER_CLASS)] = { - position: "absolute", - visibility: "hidden", - zIndex: 8, - transition: "left 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s, top 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s", - backgroundColor: styleSheet.tooltipContainerFillColor, - opacity: styleSheet.tooltipContainerFillOpacity, - boxShadow: styleSheet.tooltipContainerShadow, - borderRadius: "".concat(styleSheet.tooltipContainerBorderRadius, "px"), - color: styleSheet.tooltipTextFillColor, - fontSize: "".concat(styleSheet.tooltipTextFontSize, "px"), - fontFamily: styleSheet.fontFamily, - lineHeight: "".concat(styleSheet.tooltipTextLineHeight, "px"), - padding: "0 12px 0 12px" - }, _a6["".concat(css_const_exports.TITLE_CLASS)] = { - marginBottom: "12px", - marginTop: "12px" - }, _a6["".concat(css_const_exports.LIST_CLASS)] = { - margin: 0, - listStyleType: "none", - padding: 0 - }, _a6["".concat(css_const_exports.LIST_ITEM_CLASS)] = { - listStyleType: "none", - padding: 0, - marginBottom: "12px", - marginTop: "12px", - marginLeft: 0, - marginRight: 0 - }, _a6["".concat(css_const_exports.MARKER_CLASS)] = { - width: "8px", - height: "8px", - borderRadius: "50%", - display: "inline-block", - marginRight: "8px" - }, _a6["".concat(css_const_exports.VALUE_CLASS)] = { - display: "inline-block", - float: "right", - marginLeft: "30px" - }, _a6) - }, - annotation: { - arc: { - style: { - stroke: styleSheet.annotationArcBorderColor, - lineWidth: styleSheet.annotationArcBorder - }, - animate: true - }, - line: { - style: { - stroke: styleSheet.annotationLineBorderColor, - lineDash: styleSheet.annotationLineDash, - lineWidth: styleSheet.annotationLineBorder - }, - text: { - position: "start", - autoRotate: true, - style: { - fill: styleSheet.annotationTextFillColor, - stroke: styleSheet.annotationTextBorderColor, - lineWidth: styleSheet.annotationTextBorder, - fontSize: styleSheet.annotationTextFontSize, - textAlign: "start", - fontFamily: styleSheet.fontFamily, - textBaseline: "bottom" - } - }, - animate: true - }, - text: { - style: { - fill: styleSheet.annotationTextFillColor, - stroke: styleSheet.annotationTextBorderColor, - lineWidth: styleSheet.annotationTextBorder, - fontSize: styleSheet.annotationTextFontSize, - textBaseline: "middle", - textAlign: "start", - fontFamily: styleSheet.fontFamily - }, - animate: true - }, - region: { - top: false, - style: { - lineWidth: styleSheet.annotationRegionBorder, - stroke: styleSheet.annotationRegionBorderColor, - fill: styleSheet.annotationRegionFillColor, - fillOpacity: styleSheet.annotationRegionFillOpacity - }, - animate: true - }, - image: { - top: false, - animate: true - }, - dataMarker: { - top: true, - point: { - style: { - r: 3, - stroke: styleSheet.brandColor, - lineWidth: 2 - } - }, - line: { - style: { - stroke: styleSheet.annotationLineBorderColor, - lineWidth: styleSheet.annotationLineBorder - }, - length: styleSheet.annotationDataMarkerLineLength - }, - text: { - style: { - textAlign: "start", - fill: styleSheet.annotationTextFillColor, - stroke: styleSheet.annotationTextBorderColor, - lineWidth: styleSheet.annotationTextBorder, - fontSize: styleSheet.annotationTextFontSize, - fontFamily: styleSheet.fontFamily - } - }, - direction: "upward", - autoAdjust: true, - animate: true - }, - dataRegion: { - style: { - region: { - fill: styleSheet.annotationRegionFillColor, - fillOpacity: styleSheet.annotationRegionFillOpacity - }, - text: { - textAlign: "center", - textBaseline: "bottom", - fill: styleSheet.annotationTextFillColor, - stroke: styleSheet.annotationTextBorderColor, - lineWidth: styleSheet.annotationTextBorder, - fontSize: styleSheet.annotationTextFontSize, - fontFamily: styleSheet.fontFamily - } - }, - animate: true - } - }, - slider: { - common: { - padding: [8, 8, 8, 8], - backgroundStyle: { - fill: styleSheet.cSliderBackgroundFillColor, - opacity: styleSheet.cSliderBackgroundFillOpacity - }, - foregroundStyle: { - fill: styleSheet.cSliderForegroundFillColor, - opacity: styleSheet.cSliderForegroundFillOpacity - }, - handlerStyle: { - width: styleSheet.cSliderHandlerWidth, - height: styleSheet.cSliderHandlerHeight, - fill: styleSheet.cSliderHandlerFillColor, - opacity: styleSheet.cSliderHandlerFillOpacity, - stroke: styleSheet.cSliderHandlerBorderColor, - lineWidth: styleSheet.cSliderHandlerBorder, - radius: styleSheet.cSliderHandlerBorderRadius, - highLightFill: styleSheet.cSliderHandlerHighlightFillColor - }, - textStyle: { - fill: styleSheet.cSliderTextFillColor, - opacity: styleSheet.cSliderTextFillOpacity, - fontSize: styleSheet.cSliderTextFontSize, - lineHeight: styleSheet.cSliderTextLineHeight, - fontWeight: styleSheet.cSliderTextFontWeight, - stroke: styleSheet.cSliderTextBorderColor, - lineWidth: styleSheet.cSliderTextBorder - } - } - }, - scrollbar: { - common: { - padding: [8, 8, 8, 8] - }, - default: { - style: { - trackColor: styleSheet.scrollbarTrackFillColor, - thumbColor: styleSheet.scrollbarThumbFillColor - } - }, - hover: { - style: { - thumbColor: styleSheet.scrollbarThumbHighlightFillColor - } - } - } - }, - labels: { - offset: 12, - style: { - fill: styleSheet.labelFillColor, - fontSize: styleSheet.labelFontSize, - fontFamily: styleSheet.fontFamily, - stroke: styleSheet.labelBorderColor, - lineWidth: styleSheet.labelBorder - }, - fillColorDark: styleSheet.labelFillColorDark, - fillColorLight: styleSheet.labelFillColorLight, - autoRotate: true - }, - innerLabels: { - style: { - fill: styleSheet.innerLabelFillColor, - fontSize: styleSheet.innerLabelFontSize, - fontFamily: styleSheet.fontFamily, - stroke: styleSheet.innerLabelBorderColor, - lineWidth: styleSheet.innerLabelBorder - }, - autoRotate: true - }, - overflowLabels: { - style: { - fill: styleSheet.overflowLabelFillColor, - fontSize: styleSheet.overflowLabelFontSize, - fontFamily: styleSheet.fontFamily, - stroke: styleSheet.overflowLabelBorderColor, - lineWidth: styleSheet.overflowLabelBorder - } - }, - pieLabels: { - labelHeight: 14, - offset: 10, - labelLine: { - style: { - lineWidth: styleSheet.labelLineBorder - } - }, - autoRotate: true - } - }; -} - -// node_modules/@antv/g2/esm/theme/style-sheet/light.js -var BLACK_COLORS = { - 100: "#000", - 95: "#0D0D0D", - 85: "#262626", - 65: "#595959", - 45: "#8C8C8C", - 25: "#BFBFBF", - 15: "#D9D9D9", - 6: "#F0F0F0" -}; -var WHITE_COLORS = { - 100: "#FFFFFF", - 95: "#F2F2F2", - 85: "#D9D9D9", - 65: "#A6A6A6", - 45: "#737373", - 25: "#404040", - 15: "#262626", - 6: "#0F0F0F" -}; -var QUALITATIVE_10 = [ - "#5B8FF9", - "#5AD8A6", - "#5D7092", - "#F6BD16", - "#6F5EF9", - "#6DC8EC", - "#945FB9", - "#FF9845", - "#1E9493", - "#FF99C3" -]; -var QUALITATIVE_20 = [ - "#5B8FF9", - "#CDDDFD", - "#5AD8A6", - "#CDF3E4", - "#5D7092", - "#CED4DE", - "#F6BD16", - "#FCEBB9", - "#6F5EF9", - "#D3CEFD", - "#6DC8EC", - "#D3EEF9", - "#945FB9", - "#DECFEA", - "#FF9845", - "#FFE0C7", - "#1E9493", - "#BBDEDE", - "#FF99C3", - "#FFE0ED" -]; -var SINGLE_SEQUENCE = [ - "#B8E1FF", - "#9AC5FF", - "#7DAAFF", - "#5B8FF9", - "#3D76DD", - "#085EC0", - "#0047A5", - "#00318A", - "#001D70" -]; -var createLightStyleSheet = function(cfg) { - if (cfg === void 0) { - cfg = {}; - } - var _a6 = cfg.backgroundColor, backgroundColor = _a6 === void 0 ? "transparent" : _a6, _b = cfg.subColor, subColor = _b === void 0 ? "rgba(0,0,0,0.05)" : _b, _c = cfg.paletteQualitative10, paletteQualitative10 = _c === void 0 ? QUALITATIVE_10 : _c, _d = cfg.paletteQualitative20, paletteQualitative20 = _d === void 0 ? QUALITATIVE_20 : _d, _e = cfg.paletteSemanticRed, paletteSemanticRed = _e === void 0 ? "#F4664A" : _e, _f = cfg.paletteSemanticGreen, paletteSemanticGreen = _f === void 0 ? "#30BF78" : _f, _g = cfg.paletteSemanticYellow, paletteSemanticYellow = _g === void 0 ? "#FAAD14" : _g, _h = cfg.paletteSequence, paletteSequence = _h === void 0 ? SINGLE_SEQUENCE : _h, _j = cfg.fontFamily, fontFamily = _j === void 0 ? '"Segoe UI", Roboto, "Helvetica Neue", Arial,\n "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",\n "Noto Color Emoji"' : _j; - var _k = cfg.brandColor, brandColor = _k === void 0 ? paletteQualitative10[0] : _k; - return { - backgroundColor, - brandColor, - subColor, - paletteQualitative10, - paletteQualitative20, - paletteSemanticRed, - paletteSemanticGreen, - paletteSemanticYellow, - paletteSequence, - fontFamily, - axisLineBorderColor: BLACK_COLORS[25], - axisLineBorder: 1, - axisLineDash: null, - axisTitleTextFillColor: BLACK_COLORS[65], - axisTitleTextFontSize: 12, - axisTitleTextLineHeight: 12, - axisTitleTextFontWeight: "normal", - axisTitleSpacing: 12, - axisTickLineBorderColor: BLACK_COLORS[25], - axisTickLineLength: 4, - axisTickLineBorder: 1, - axisSubTickLineBorderColor: BLACK_COLORS[15], - axisSubTickLineLength: 2, - axisSubTickLineBorder: 1, - axisLabelFillColor: BLACK_COLORS[45], - axisLabelFontSize: 12, - axisLabelLineHeight: 12, - axisLabelFontWeight: "normal", - axisLabelOffset: 8, - axisGridBorderColor: BLACK_COLORS[15], - axisGridBorder: 1, - axisGridLineDash: null, - legendTitleTextFillColor: BLACK_COLORS[45], - legendTitleTextFontSize: 12, - legendTitleTextLineHeight: 21, - legendTitleTextFontWeight: "normal", - legendMarkerColor: brandColor, - legendMarkerSpacing: 8, - legendMarkerSize: 4, - legendCircleMarkerSize: 4, - legendSquareMarkerSize: 4, - legendLineMarkerSize: 5, - legendItemNameFillColor: BLACK_COLORS[65], - legendItemNameFontSize: 12, - legendItemNameLineHeight: 12, - legendItemNameFontWeight: "normal", - legendItemSpacing: 24, - legendItemMarginBottom: 12, - legendPadding: [8, 8, 8, 8], - legendHorizontalPadding: [8, 0, 8, 0], - legendVerticalPadding: [0, 8, 0, 8], - legendPageNavigatorMarkerSize: 12, - legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[100], - legendPageNavigatorMarkerInactiveFillOpacity: 0.45, - legendPageNavigatorMarkerFillColor: BLACK_COLORS[100], - legendPageNavigatorMarkerFillOpacity: 1, - legendPageNavigatorTextFillColor: BLACK_COLORS[45], - legendPageNavigatorTextFontSize: 12, - sliderRailFillColor: BLACK_COLORS[15], - sliderRailBorder: 0, - sliderRailBorderColor: null, - sliderRailWidth: 100, - sliderRailHeight: 12, - sliderLabelTextFillColor: BLACK_COLORS[45], - sliderLabelTextFontSize: 12, - sliderLabelTextLineHeight: 12, - sliderLabelTextFontWeight: "normal", - sliderHandlerFillColor: BLACK_COLORS[6], - sliderHandlerWidth: 10, - sliderHandlerHeight: 14, - sliderHandlerBorder: 1, - sliderHandlerBorderColor: BLACK_COLORS[25], - annotationArcBorderColor: BLACK_COLORS[15], - annotationArcBorder: 1, - annotationLineBorderColor: BLACK_COLORS[25], - annotationLineBorder: 1, - annotationLineDash: null, - annotationTextFillColor: BLACK_COLORS[65], - annotationTextFontSize: 12, - annotationTextLineHeight: 12, - annotationTextFontWeight: "normal", - annotationTextBorderColor: null, - annotationTextBorder: 0, - annotationRegionFillColor: BLACK_COLORS[100], - annotationRegionFillOpacity: 0.06, - annotationRegionBorder: 0, - annotationRegionBorderColor: null, - annotationDataMarkerLineLength: 16, - tooltipCrosshairsBorderColor: BLACK_COLORS[25], - tooltipCrosshairsBorder: 1, - tooltipCrosshairsLineDash: null, - tooltipContainerFillColor: "rgb(255, 255, 255)", - tooltipContainerFillOpacity: 0.95, - tooltipContainerShadow: "0px 0px 10px #aeaeae", - tooltipContainerBorderRadius: 3, - tooltipTextFillColor: BLACK_COLORS[65], - tooltipTextFontSize: 12, - tooltipTextLineHeight: 12, - tooltipTextFontWeight: "bold", - labelFillColor: BLACK_COLORS[65], - labelFillColorDark: "#2c3542", - labelFillColorLight: "#ffffff", - labelFontSize: 12, - labelLineHeight: 12, - labelFontWeight: "normal", - labelBorderColor: null, - labelBorder: 0, - innerLabelFillColor: WHITE_COLORS[100], - innerLabelFontSize: 12, - innerLabelLineHeight: 12, - innerLabelFontWeight: "normal", - innerLabelBorderColor: null, - innerLabelBorder: 0, - overflowLabelFillColor: BLACK_COLORS[65], - overflowLabelFontSize: 12, - overflowLabelLineHeight: 12, - overflowLabelFontWeight: "normal", - overflowLabelBorderColor: WHITE_COLORS[100], - overflowLabelBorder: 1, - labelLineBorder: 1, - labelLineBorderColor: BLACK_COLORS[25], - cSliderRailHieght: 16, - cSliderBackgroundFillColor: "#416180", - cSliderBackgroundFillOpacity: 0.05, - cSliderForegroundFillColor: "#5B8FF9", - cSliderForegroundFillOpacity: 0.15, - cSliderHandlerHeight: 24, - cSliderHandlerWidth: 10, - cSliderHandlerFillColor: "#F7F7F7", - cSliderHandlerFillOpacity: 1, - cSliderHandlerHighlightFillColor: "#FFF", - cSliderHandlerBorderColor: "#BFBFBF", - cSliderHandlerBorder: 1, - cSliderHandlerBorderRadius: 2, - cSliderTextFillColor: "#000", - cSliderTextFillOpacity: 0.45, - cSliderTextFontSize: 12, - cSliderTextLineHeight: 12, - cSliderTextFontWeight: "normal", - cSliderTextBorderColor: null, - cSliderTextBorder: 0, - scrollbarTrackFillColor: "rgba(0,0,0,0)", - scrollbarThumbFillColor: "rgba(0,0,0,0.15)", - scrollbarThumbHighlightFillColor: "rgba(0,0,0,0.2)", - pointFillColor: brandColor, - pointFillOpacity: 0.95, - pointSize: 4, - pointBorder: 1, - pointBorderColor: WHITE_COLORS[100], - pointBorderOpacity: 1, - pointActiveBorderColor: BLACK_COLORS[100], - pointSelectedBorder: 2, - pointSelectedBorderColor: BLACK_COLORS[100], - pointInactiveFillOpacity: 0.3, - pointInactiveBorderOpacity: 0.3, - hollowPointSize: 4, - hollowPointBorder: 1, - hollowPointBorderColor: brandColor, - hollowPointBorderOpacity: 0.95, - hollowPointFillColor: WHITE_COLORS[100], - hollowPointActiveBorder: 1, - hollowPointActiveBorderColor: BLACK_COLORS[100], - hollowPointActiveBorderOpacity: 1, - hollowPointSelectedBorder: 2, - hollowPointSelectedBorderColor: BLACK_COLORS[100], - hollowPointSelectedBorderOpacity: 1, - hollowPointInactiveBorderOpacity: 0.3, - lineBorder: 2, - lineBorderColor: brandColor, - lineBorderOpacity: 1, - lineActiveBorder: 3, - lineSelectedBorder: 3, - lineInactiveBorderOpacity: 0.3, - areaFillColor: brandColor, - areaFillOpacity: 0.25, - areaActiveFillColor: brandColor, - areaActiveFillOpacity: 0.5, - areaSelectedFillColor: brandColor, - areaSelectedFillOpacity: 0.5, - areaInactiveFillOpacity: 0.3, - hollowAreaBorderColor: brandColor, - hollowAreaBorder: 2, - hollowAreaBorderOpacity: 1, - hollowAreaActiveBorder: 3, - hollowAreaActiveBorderColor: BLACK_COLORS[100], - hollowAreaSelectedBorder: 3, - hollowAreaSelectedBorderColor: BLACK_COLORS[100], - hollowAreaInactiveBorderOpacity: 0.3, - intervalFillColor: brandColor, - intervalFillOpacity: 0.95, - intervalActiveBorder: 1, - intervalActiveBorderColor: BLACK_COLORS[100], - intervalActiveBorderOpacity: 1, - intervalSelectedBorder: 2, - intervalSelectedBorderColor: BLACK_COLORS[100], - intervalSelectedBorderOpacity: 1, - intervalInactiveBorderOpacity: 0.3, - intervalInactiveFillOpacity: 0.3, - hollowIntervalBorder: 2, - hollowIntervalBorderColor: brandColor, - hollowIntervalBorderOpacity: 1, - hollowIntervalFillColor: WHITE_COLORS[100], - hollowIntervalActiveBorder: 2, - hollowIntervalActiveBorderColor: BLACK_COLORS[100], - hollowIntervalSelectedBorder: 3, - hollowIntervalSelectedBorderColor: BLACK_COLORS[100], - hollowIntervalSelectedBorderOpacity: 1, - hollowIntervalInactiveBorderOpacity: 0.3 - }; -}; -var antvLight = createLightStyleSheet(); - -// node_modules/@antv/g2/esm/theme/util/create-theme.js -function createTheme(themeCfg) { - var _a6 = themeCfg.styleSheet, styleSheetCfg = _a6 === void 0 ? {} : _a6, themeObject = __rest(themeCfg, ["styleSheet"]); - var styleSheet = createLightStyleSheet(styleSheetCfg); - return deep_mix_default({}, createThemeByStyleSheet(styleSheet), themeObject); -} - -// node_modules/@antv/g2/esm/theme/index.js -var defaultTheme = createTheme({}); -var Themes = { - default: defaultTheme -}; -function getTheme(theme4) { - return get_default(Themes, lower_case_default(theme4), Themes.default); -} -function registerTheme(theme4, value2) { - Themes[lower_case_default(theme4)] = createTheme(value2); -} - -// node_modules/@antv/g2/esm/util/tooltip.js -function snapEqual(v1, v22, scale12) { - var value1 = scale12.translate(v1); - var value2 = scale12.translate(v22); - return isNumberEqual(value1, value2); -} -function getXValueByPoint(point2, geometry35) { - var coordinate11 = geometry35.coordinate; - var xScale = geometry35.getXScale(); - var range = xScale.range; - var rangeMax = range[range.length - 1]; - var rangeMin = range[0]; - var invertPoint = coordinate11.invert(point2); - var xValue = invertPoint.x; - if (coordinate11.isPolar && xValue > (1 + rangeMax) / 2) { - xValue = rangeMin; - } - return xScale.translate(xScale.invert(xValue)); -} -function filterYValue(data3, point2, geometry35) { - var coordinate11 = geometry35.coordinate; - var yScale = geometry35.getYScale(); - var yField = yScale.field; - var invertPoint = coordinate11.invert(point2); - var yValue = yScale.invert(invertPoint.y); - var result = find_default(data3, function(obj) { - var originData = obj[FIELD_ORIGIN]; - return originData[yField][0] <= yValue && originData[yField][1] >= yValue; - }); - return result || data3[data3.length - 1]; -} -var getXDistance = memoize_default(function(scale12) { - if (scale12.isCategory) { - return 1; - } - var scaleValues = scale12.values; - var length5 = scaleValues.length; - var min7 = scale12.translate(scaleValues[0]); - var max8 = min7; - for (var index2 = 0; index2 < length5; index2++) { - var value2 = scaleValues[index2]; - var numericValue = scale12.translate(value2); - if (numericValue < min7) { - min7 = numericValue; - } - if (numericValue > max8) { - max8 = numericValue; - } - } - return (max8 - min7) / (length5 - 1); -}); -function getTooltipTitle(originData, geometry35, title) { - var positionAttr = geometry35.getAttribute("position"); - var fields = positionAttr.getFields(); - var scales = geometry35.scales; - var titleField = is_function_default(title) || !title ? fields[0] : title; - var titleScale = scales[titleField]; - var tooltipTitle = titleScale ? titleScale.getText(originData[titleField]) : originData[titleField] || titleField; - return is_function_default(title) ? title(tooltipTitle, originData) : tooltipTitle; -} -function getAttributesForLegend(geometry35) { - var attributes = values_default(geometry35.attributes); - return filter_default(attributes, function(attribute) { - return contains_default(GROUP_ATTRS, attribute.type); - }); -} -function getTooltipValueScale(geometry35) { - var attributes = getAttributesForLegend(geometry35); - var scale12; - for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) { - var attribute = attributes_1[_i]; - var tmpScale = attribute.getScale(attribute.type); - if (tmpScale && tmpScale.isLinear) { - scale12 = tmpScale; - break; - } - } - var xScale = geometry35.getXScale(); - var yScale = geometry35.getYScale(); - return scale12 || yScale || xScale; -} -function getTooltipValue(originData, valueScale) { - var field6 = valueScale.field; - var value2 = originData[field6]; - if (is_array_default(value2)) { - var texts = value2.map(function(eachValue) { - return valueScale.getText(eachValue); - }); - return texts.join("-"); - } - return valueScale.getText(value2); -} -function getTooltipName(originData, geometry35) { - var nameScale; - var groupScales = geometry35.getGroupScales(); - if (groupScales.length) { - nameScale = groupScales[0]; - } - if (nameScale) { - var field6 = nameScale.field; - return nameScale.getText(originData[field6]); - } - var valueScale = getTooltipValueScale(geometry35); - return getName(valueScale); -} -function findDataByPoint(point2, data3, geometry35) { - if (data3.length === 0) { - return null; - } - var geometryType = geometry35.type; - var xScale = geometry35.getXScale(); - var yScale = geometry35.getYScale(); - var xField = xScale.field; - var yField = yScale.field; - var rst = null; - if (geometryType === "heatmap" || geometryType === "point") { - var coordinate11 = geometry35.coordinate; - var invertPoint = coordinate11.invert(point2); - var x6 = xScale.invert(invertPoint.x); - var y5 = yScale.invert(invertPoint.y); - var min7 = Infinity; - for (var index2 = 0; index2 < data3.length; index2++) { - var obj = data3[index2]; - var originData = obj[FIELD_ORIGIN]; - var range = Math.pow(originData[xField] - x6, 2) + Math.pow(originData[yField] - y5, 2); - if (range < min7) { - min7 = range; - rst = obj; - } - } - return rst; - } - var first = data3[0]; - var last2 = data3[data3.length - 1]; - var xValue = getXValueByPoint(point2, geometry35); - var firstXValue = first[FIELD_ORIGIN][xField]; - var firstYValue = first[FIELD_ORIGIN][yField]; - var lastXValue = last2[FIELD_ORIGIN][xField]; - var isYArray = yScale.isLinear && is_array_default(firstYValue); - if (is_array_default(firstXValue)) { - for (var index2 = 0; index2 < data3.length; index2++) { - var record = data3[index2]; - var originData = record[FIELD_ORIGIN]; - if (xScale.translate(originData[xField][0]) <= xValue && xScale.translate(originData[xField][1]) >= xValue) { - if (isYArray) { - if (!is_array_default(rst)) { - rst = []; - } - rst.push(record); - } else { - rst = record; - break; - } - } - } - if (is_array_default(rst)) { - rst = filterYValue(rst, point2, geometry35); - } - } else { - var next = void 0; - if (!xScale.isLinear && xScale.type !== "timeCat") { - for (var index2 = 0; index2 < data3.length; index2++) { - var record = data3[index2]; - var originData = record[FIELD_ORIGIN]; - if (snapEqual(originData[xField], xValue, xScale)) { - if (isYArray) { - if (!is_array_default(rst)) { - rst = []; - } - rst.push(record); - } else { - rst = record; - break; - } - } else if (xScale.translate(originData[xField]) <= xValue) { - last2 = record; - next = data3[index2 + 1]; - } - } - if (is_array_default(rst)) { - rst = filterYValue(rst, point2, geometry35); - } - } else { - if ((xValue > xScale.translate(lastXValue) || xValue < xScale.translate(firstXValue)) && (xValue > xScale.max || xValue < xScale.min)) { - return null; - } - var firstIdx = 0; - var lastIdx = data3.length - 1; - var middleIdx = void 0; - while (firstIdx <= lastIdx) { - middleIdx = Math.floor((firstIdx + lastIdx) / 2); - var item = data3[middleIdx][FIELD_ORIGIN][xField]; - if (snapEqual(item, xValue, xScale)) { - return data3[middleIdx]; - } - if (xScale.translate(item) <= xScale.translate(xValue)) { - firstIdx = middleIdx + 1; - last2 = data3[middleIdx]; - next = data3[middleIdx + 1]; - } else { - if (lastIdx === 0) { - last2 = data3[0]; - } - lastIdx = middleIdx - 1; - } - } - } - if (last2 && next) { - if (Math.abs(xScale.translate(last2[FIELD_ORIGIN][xField]) - xValue) > Math.abs(xScale.translate(next[FIELD_ORIGIN][xField]) - xValue)) { - last2 = next; - } - } - } - var distance15 = getXDistance(geometry35.getXScale()); - if (!rst && Math.abs(xScale.translate(last2[FIELD_ORIGIN][xField]) - xValue) <= distance15 / 2) { - rst = last2; - } - return rst; -} -function getTooltipItems(data3, geometry35, title, showNil) { - if (title === void 0) { - title = ""; - } - if (showNil === void 0) { - showNil = false; - } - var originData = data3[FIELD_ORIGIN]; - var tooltipTitle = getTooltipTitle(originData, geometry35, title); - var tooltipOption = geometry35.tooltipOption; - var defaultColor = geometry35.theme.defaultColor; - var items = []; - var name; - var value2; - function addItem(itemName, itemValue) { - if (showNil || !is_nil_default(itemValue) && itemValue !== "") { - var item = { - title: tooltipTitle, - data: originData, - mappingData: data3, - name: itemName, - value: itemValue, - color: data3.color || defaultColor, - marker: true - }; - items.push(item); - } - } - if (is_object_default(tooltipOption)) { - var fields = tooltipOption.fields, callback = tooltipOption.callback; - if (callback) { - var callbackParams = fields.map(function(field7) { - return data3[FIELD_ORIGIN][field7]; - }); - var cfg = callback.apply(void 0, callbackParams); - var itemCfg = __assign({ data: data3[FIELD_ORIGIN], mappingData: data3, title: tooltipTitle, color: data3.color || defaultColor, marker: true }, cfg); - items.push(itemCfg); - } else { - var scales = geometry35.scales; - for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) { - var field6 = fields_1[_i]; - if (!is_nil_default(originData[field6])) { - var scale12 = scales[field6]; - name = getName(scale12); - value2 = scale12.getText(originData[field6]); - addItem(name, value2); - } - } - } - } else { - var valueScale = getTooltipValueScale(geometry35); - value2 = getTooltipValue(originData, valueScale); - name = getTooltipName(originData, geometry35); - addItem(name, value2); - } - return items; -} -function getTooltipItemsByFindData(geometry35, point2, title, tooltipCfg) { - var showNil = tooltipCfg.showNil; - var result = []; - var dataArray = geometry35.dataArray; - if (!is_empty_default(dataArray)) { - geometry35.sort(dataArray); - for (var _i = 0, dataArray_1 = dataArray; _i < dataArray_1.length; _i++) { - var data3 = dataArray_1[_i]; - var record = findDataByPoint(point2, data3, geometry35); - if (record) { - var elementId = geometry35.getElementId(record); - var element = geometry35.elementsMap[elementId]; - if (geometry35.type === "heatmap" || element.visible) { - var items = getTooltipItems(record, geometry35, title, showNil); - if (items.length) { - result.push(items); - } - } - } - } - } - return result; -} -function getTooltipItemsByHitShape(geometry35, point2, title, tooltipCfg) { - var showNil = tooltipCfg.showNil; - var result = []; - var container2 = geometry35.container; - var shape = container2.getShape(point2.x, point2.y); - if (shape && shape.get("visible") && shape.get("origin")) { - var mappingData = shape.get("origin").mappingData; - var items = getTooltipItems(mappingData, geometry35, title, showNil); - if (items.length) { - result.push(items); - } - } - return result; -} -function findItemsFromView(view, point2, tooltipCfg) { - var result = []; - var geometries = view.geometries; - var shared = tooltipCfg.shared, title = tooltipCfg.title, reversed = tooltipCfg.reversed; - for (var _i = 0, geometries_1 = geometries; _i < geometries_1.length; _i++) { - var geometry35 = geometries_1[_i]; - if (geometry35.visible && geometry35.tooltipOption !== false) { - var geometryType = geometry35.type; - var tooltipItems = void 0; - if (["point", "edge", "polygon"].includes(geometryType)) { - tooltipItems = getTooltipItemsByHitShape(geometry35, point2, title, tooltipCfg); - } else if (["area", "line", "path", "heatmap"].includes(geometryType)) { - tooltipItems = getTooltipItemsByFindData(geometry35, point2, title, tooltipCfg); - } else { - if (shared !== false) { - tooltipItems = getTooltipItemsByFindData(geometry35, point2, title, tooltipCfg); - } else { - tooltipItems = getTooltipItemsByHitShape(geometry35, point2, title, tooltipCfg); - } - } - if (tooltipItems.length) { - if (reversed) { - tooltipItems.reverse(); - } - result.push(tooltipItems); - } - } - } - return result; -} -function findItemsFromViewRecurisive(view, point2, tooltipCfg) { - var result = findItemsFromView(view, point2, tooltipCfg); - for (var _i = 0, _a6 = view.views; _i < _a6.length; _i++) { - var childView = _a6[_i]; - result = result.concat(findItemsFromView(childView, point2, tooltipCfg)); - } - return result; -} - -// node_modules/@antv/g2/esm/util/padding.js -function isAutoPadding(padding3) { - return !is_number_default(padding3) && !is_array_default(padding3); -} -function parsePadding(padding3) { - if (padding3 === void 0) { - padding3 = 0; - } - var paddingArray = is_array_default(padding3) ? padding3 : [padding3]; - switch (paddingArray.length) { - case 0: - paddingArray = [0, 0, 0, 0]; - break; - case 1: - paddingArray = new Array(4).fill(paddingArray[0]); - break; - case 2: - paddingArray = __spreadArray(__spreadArray([], paddingArray, true), paddingArray, true); - break; - case 3: - paddingArray = __spreadArray(__spreadArray([], paddingArray, true), [paddingArray[1]], false); - break; - default: - paddingArray = paddingArray.slice(0, 4); - break; - } - return paddingArray; -} - -// node_modules/@antv/g2/esm/chart/controller/index.js -var LOAD_COMPONENT_CONTROLLERS = {}; -function registerComponentController(name, plugin) { - LOAD_COMPONENT_CONTROLLERS[name] = plugin; -} -function getComponentControllerNames() { - return Object.keys(LOAD_COMPONENT_CONTROLLERS); -} -function getComponentController(name) { - return LOAD_COMPONENT_CONTROLLERS[name]; -} - -// node_modules/@antv/g2/esm/chart/controller/coordinate.js -var CoordinateController = function() { - function CoordinateController2(option) { - this.option = this.wrapperOption(option); - } - CoordinateController2.prototype.update = function(option) { - this.option = this.wrapperOption(option); - return this; - }; - CoordinateController2.prototype.hasAction = function(actionName) { - var actions = this.option.actions; - return some_default(actions, function(action) { - return action[0] === actionName; - }); - }; - CoordinateController2.prototype.create = function(start, end2) { - var _a6 = this.option, type2 = _a6.type, cfg = _a6.cfg; - var isTheta = type2 === "theta"; - var props = __assign({ start, end: end2 }, cfg); - var C3 = getCoordinate(isTheta ? "polar" : type2); - this.coordinate = new C3(props); - this.coordinate.type = type2; - if (isTheta) { - if (!this.hasAction("transpose")) { - this.transpose(); - } - } - this.execActions(); - return this.coordinate; - }; - CoordinateController2.prototype.adjust = function(start, end2) { - this.coordinate.update({ - start, - end: end2 - }); - this.coordinate.resetMatrix(); - this.execActions(["scale", "rotate", "translate"]); - return this.coordinate; - }; - CoordinateController2.prototype.rotate = function(angle3) { - this.option.actions.push(["rotate", angle3]); - return this; - }; - CoordinateController2.prototype.reflect = function(dim) { - this.option.actions.push(["reflect", dim]); - return this; - }; - CoordinateController2.prototype.scale = function(sx, sy) { - this.option.actions.push(["scale", sx, sy]); - return this; - }; - CoordinateController2.prototype.transpose = function() { - this.option.actions.push(["transpose"]); - return this; - }; - CoordinateController2.prototype.getOption = function() { - return this.option; - }; - CoordinateController2.prototype.getCoordinate = function() { - return this.coordinate; - }; - CoordinateController2.prototype.wrapperOption = function(option) { - return __assign({ type: "rect", actions: [], cfg: {} }, option); - }; - CoordinateController2.prototype.execActions = function(includeActions) { - var _this = this; - var actions = this.option.actions; - each_default(actions, function(action) { - var _a6; - var actionName = action[0], args = action.slice(1); - var shouldExec = is_nil_default(includeActions) ? true : includeActions.includes(actionName); - if (shouldExec) { - (_a6 = _this.coordinate)[actionName].apply(_a6, args); - } - }); - }; - return CoordinateController2; -}(); -var coordinate_default = CoordinateController; - -// node_modules/@antv/g2/esm/chart/event.js -var Event = function() { - function Event2(view, gEvent, data3) { - this.view = view; - this.gEvent = gEvent; - this.data = data3; - this.type = gEvent.type; - } - Event2.fromData = function(view, type2, data3) { - return new Event2(view, new graph_event_default(type2, {}), data3); - }; - Object.defineProperty(Event2.prototype, "target", { - get: function() { - return this.gEvent.target; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Event2.prototype, "event", { - get: function() { - return this.gEvent.originalEvent; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Event2.prototype, "x", { - get: function() { - return this.gEvent.x; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Event2.prototype, "y", { - get: function() { - return this.gEvent.y; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Event2.prototype, "clientX", { - get: function() { - return this.gEvent.clientX; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Event2.prototype, "clientY", { - get: function() { - return this.gEvent.clientY; - }, - enumerable: false, - configurable: true - }); - Event2.prototype.toString = function() { - return "[Event (type=".concat(this.type, ")]"); - }; - Event2.prototype.clone = function() { - return new Event2(this.view, this.gEvent, this.data); - }; - return Event2; -}(); -var event_default = Event; - -// node_modules/@antv/g2/esm/chart/layout/index.js -function defaultLayout(view) { - var axis22 = view.getController("axis"); - var legend18 = view.getController("legend"); - var annotation4 = view.getController("annotation"); - var slider3 = view.getController("slider"); - var scrollbar2 = view.getController("scrollbar"); - [axis22, slider3, scrollbar2, legend18, annotation4].forEach(function(controller) { - if (controller) { - controller.layout(); - } - }); -} - -// node_modules/@antv/g2/esm/chart/util/scale-pool.js -var ScalePool = function() { - function ScalePool2() { - this.scales = new Map(); - this.syncScales = new Map(); - } - ScalePool2.prototype.createScale = function(field6, data3, scaleDef, key) { - var finalScaleDef = scaleDef; - var cacheScaleMeta = this.getScaleMeta(key); - if (data3.length === 0 && cacheScaleMeta) { - var cacheScale = cacheScaleMeta.scale; - var cacheScaleDef = { - type: cacheScale.type - }; - if (cacheScale.isCategory) { - cacheScaleDef.values = cacheScale.values; - } - finalScaleDef = deep_mix_default(cacheScaleDef, cacheScaleMeta.scaleDef, scaleDef); - } - var scale12 = createScaleByField(field6, data3, finalScaleDef); - this.cacheScale(scale12, scaleDef, key); - return scale12; - }; - ScalePool2.prototype.sync = function(coordinate11, theme4) { - var _this = this; - this.syncScales.forEach(function(scaleKeys, syncKey) { - var min7 = Number.MAX_SAFE_INTEGER; - var max8 = Number.MIN_SAFE_INTEGER; - var values2 = []; - each_default(scaleKeys, function(key) { - var scale12 = _this.getScale(key); - max8 = is_number_default(scale12.max) ? Math.max(max8, scale12.max) : max8; - min7 = is_number_default(scale12.min) ? Math.min(min7, scale12.min) : min7; - each_default(scale12.values, function(v3) { - if (!values2.includes(v3)) { - values2.push(v3); - } - }); - }); - each_default(scaleKeys, function(key) { - var scale12 = _this.getScale(key); - if (scale12.isContinuous) { - scale12.change({ - min: min7, - max: max8, - values: values2 - }); - } else if (scale12.isCategory) { - var range = scale12.range; - var cacheScaleMeta = _this.getScaleMeta(key); - if (values2 && !get_default(cacheScaleMeta, ["scaleDef", "range"])) { - range = getDefaultCategoryScaleRange(deep_mix_default({}, scale12, { - values: values2 - }), coordinate11, theme4); - } - scale12.change({ - values: values2, - range - }); - } - }); - }); - }; - ScalePool2.prototype.cacheScale = function(scale12, scaleDef, key) { - var sm = this.getScaleMeta(key); - if (sm && sm.scale.type === scale12.type) { - syncScale(sm.scale, scale12); - sm.scaleDef = scaleDef; - } else { - sm = { - key, - scale: scale12, - scaleDef - }; - this.scales.set(key, sm); - } - var syncKey = this.getSyncKey(sm); - sm.syncKey = syncKey; - this.removeFromSyncScales(key); - if (syncKey) { - var scaleKeys = this.syncScales.get(syncKey); - if (!scaleKeys) { - scaleKeys = []; - this.syncScales.set(syncKey, scaleKeys); - } - scaleKeys.push(key); - } - }; - ScalePool2.prototype.getScale = function(key) { - var scaleMeta = this.getScaleMeta(key); - if (!scaleMeta) { - var field6 = last(key.split("-")); - var scaleKeys = this.syncScales.get(field6); - if (scaleKeys && scaleKeys.length) { - scaleMeta = this.getScaleMeta(scaleKeys[0]); - } - } - return scaleMeta && scaleMeta.scale; - }; - ScalePool2.prototype.deleteScale = function(key) { - var scaleMeta = this.getScaleMeta(key); - if (scaleMeta) { - var syncKey = scaleMeta.syncKey; - var scaleKeys = this.syncScales.get(syncKey); - if (scaleKeys && scaleKeys.length) { - var idx = scaleKeys.indexOf(key); - if (idx !== -1) { - scaleKeys.splice(idx, 1); - } - } - } - this.scales.delete(key); - }; - ScalePool2.prototype.clear = function() { - this.scales.clear(); - this.syncScales.clear(); - }; - ScalePool2.prototype.removeFromSyncScales = function(key) { - var _this = this; - this.syncScales.forEach(function(scaleKeys, syncKey) { - var idx = scaleKeys.indexOf(key); - if (idx !== -1) { - scaleKeys.splice(idx, 1); - if (scaleKeys.length === 0) { - _this.syncScales.delete(syncKey); - } - return false; - } - }); - }; - ScalePool2.prototype.getSyncKey = function(sm) { - var scale12 = sm.scale, scaleDef = sm.scaleDef; - var field6 = scale12.field; - var sync = get_default(scaleDef, ["sync"]); - return sync === true ? field6 : sync === false ? void 0 : sync; - }; - ScalePool2.prototype.getScaleMeta = function(key) { - return this.scales.get(key); - }; - return ScalePool2; -}(); - -// node_modules/@antv/g2/esm/chart/layout/padding-cal.js -var PaddingCal = function() { - function PaddingCal2(top, right2, bottom, left2) { - if (top === void 0) { - top = 0; - } - if (right2 === void 0) { - right2 = 0; - } - if (bottom === void 0) { - bottom = 0; - } - if (left2 === void 0) { - left2 = 0; - } - this.top = top; - this.right = right2; - this.bottom = bottom; - this.left = left2; - } - PaddingCal2.instance = function(top, right2, bottom, left2) { - if (top === void 0) { - top = 0; - } - if (right2 === void 0) { - right2 = 0; - } - if (bottom === void 0) { - bottom = 0; - } - if (left2 === void 0) { - left2 = 0; - } - return new PaddingCal2(top, right2, bottom, left2); - }; - PaddingCal2.prototype.max = function(padding3) { - var top = padding3[0], right2 = padding3[1], bottom = padding3[2], left2 = padding3[3]; - this.top = Math.max(this.top, top); - this.right = Math.max(this.right, right2); - this.bottom = Math.max(this.bottom, bottom); - this.left = Math.max(this.left, left2); - return this; - }; - PaddingCal2.prototype.shrink = function(padding3) { - var top = padding3[0], right2 = padding3[1], bottom = padding3[2], left2 = padding3[3]; - this.top += top; - this.right += right2; - this.bottom += bottom; - this.left += left2; - return this; - }; - PaddingCal2.prototype.inc = function(bbox, direction5) { - var width2 = bbox.width, height = bbox.height; - switch (direction5) { - case DIRECTION.TOP: - case DIRECTION.TOP_LEFT: - case DIRECTION.TOP_RIGHT: - this.top += height; - break; - case DIRECTION.RIGHT: - case DIRECTION.RIGHT_TOP: - case DIRECTION.RIGHT_BOTTOM: - this.right += width2; - break; - case DIRECTION.BOTTOM: - case DIRECTION.BOTTOM_LEFT: - case DIRECTION.BOTTOM_RIGHT: - this.bottom += height; - break; - case DIRECTION.LEFT: - case DIRECTION.LEFT_TOP: - case DIRECTION.LEFT_BOTTOM: - this.left += width2; - break; - default: - break; - } - return this; - }; - PaddingCal2.prototype.getPadding = function() { - return [this.top, this.right, this.bottom, this.left]; - }; - PaddingCal2.prototype.clone = function() { - return new (PaddingCal2.bind.apply(PaddingCal2, __spreadArray([void 0], this.getPadding(), false)))(); - }; - return PaddingCal2; -}(); - -// node_modules/@antv/g2/esm/chart/layout/auto.js -function calculatePadding(view) { - var padding3 = view.padding; - if (!isAutoPadding(padding3)) { - return new (PaddingCal.bind.apply(PaddingCal, __spreadArray([void 0], parsePadding(padding3), false)))(); - } - var viewBBox = view.viewBBox; - var paddingCal = new PaddingCal(); - var axisComponents = []; - var paddingComponents = []; - var otherComponents = []; - each_default(view.getComponents(), function(co) { - var type2 = co.type; - if (type2 === COMPONENT_TYPE.AXIS) { - axisComponents.push(co); - } else if ([COMPONENT_TYPE.LEGEND, COMPONENT_TYPE.SLIDER, COMPONENT_TYPE.SCROLLBAR].includes(type2)) { - paddingComponents.push(co); - } else if (type2 !== COMPONENT_TYPE.GRID && type2 !== COMPONENT_TYPE.TOOLTIP) { - otherComponents.push(co); - } - }); - each_default(axisComponents, function(co) { - var component2 = co.component; - var bboxObject = component2.getLayoutBBox(); - var componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height); - var exceed = componentBBox.exceed(viewBBox); - paddingCal.max(exceed); - }); - each_default(paddingComponents, function(co) { - var component2 = co.component, direction5 = co.direction; - var bboxObject = component2.getLayoutBBox(); - var componentPadding = component2.get("padding"); - var componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(componentPadding); - paddingCal.inc(componentBBox, direction5); - }); - each_default(otherComponents, function(co) { - var component2 = co.component, direction5 = co.direction; - var bboxObject = component2.getLayoutBBox(); - var componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height); - paddingCal.inc(componentBBox, direction5); - }); - return paddingCal; -} - -// node_modules/@antv/g2/esm/chart/util/sync-view-padding.js -function defaultSyncViewPadding(chart, views, PC) { - var syncPadding = PC.instance(); - views.forEach(function(v3) { - v3.autoPadding = syncPadding.max(v3.autoPadding.getPadding()); - }); -} - -// node_modules/@antv/g2/esm/chart/view.js -var View = function(_super) { - __extends(View3, _super); - function View3(props) { - var _this = _super.call(this, { visible: props.visible }) || this; - _this.views = []; - _this.geometries = []; - _this.controllers = []; - _this.interactions = {}; - _this.limitInPlot = false; - _this.options = { - data: [], - animate: true - }; - _this.usedControllers = getComponentControllerNames(); - _this.scalePool = new ScalePool(); - _this.layoutFunc = defaultLayout; - _this.isPreMouseInPlot = false; - _this.isDataChanged = false; - _this.isCoordinateChanged = false; - _this.createdScaleKeys = new Map(); - _this.onCanvasEvent = function(evt) { - var name = evt.name; - if (!name.includes(":")) { - var e4 = _this.createViewEvent(evt); - _this.doPlotEvent(e4); - _this.emit(name, e4); - } - }; - _this.onDelegateEvents = function(evt) { - var name = evt.name; - if (!name.includes(":")) { - return; - } - var e4 = _this.createViewEvent(evt); - _this.emit(name, e4); - }; - var _a6 = props.id, id = _a6 === void 0 ? unique_id_default("view") : _a6, parent = props.parent, canvas = props.canvas, backgroundGroup = props.backgroundGroup, middleGroup = props.middleGroup, foregroundGroup = props.foregroundGroup, _b = props.region, region = _b === void 0 ? { start: { x: 0, y: 0 }, end: { x: 1, y: 1 } } : _b, padding3 = props.padding, appendPadding = props.appendPadding, theme4 = props.theme, options = props.options, limitInPlot5 = props.limitInPlot, syncViewPadding2 = props.syncViewPadding; - _this.parent = parent; - _this.canvas = canvas; - _this.backgroundGroup = backgroundGroup; - _this.middleGroup = middleGroup; - _this.foregroundGroup = foregroundGroup; - _this.region = region; - _this.padding = padding3; - _this.appendPadding = appendPadding; - _this.options = __assign(__assign({}, _this.options), options); - _this.limitInPlot = limitInPlot5; - _this.id = id; - _this.syncViewPadding = syncViewPadding2; - _this.themeObject = is_object_default(theme4) ? deep_mix_default({}, getTheme("default"), createTheme(theme4)) : getTheme(theme4); - _this.init(); - return _this; - } - View3.prototype.setLayout = function(layout6) { - this.layoutFunc = layout6; - }; - View3.prototype.init = function() { - this.calculateViewBBox(); - this.initEvents(); - this.initComponentController(); - this.initOptions(); - }; - View3.prototype.render = function(isUpdate, payload) { - if (isUpdate === void 0) { - isUpdate = false; - } - this.emit(VIEW_LIFE_CIRCLE.BEFORE_RENDER, event_default.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_RENDER, payload)); - this.paint(isUpdate); - this.emit(VIEW_LIFE_CIRCLE.AFTER_RENDER, event_default.fromData(this, VIEW_LIFE_CIRCLE.AFTER_RENDER, payload)); - if (this.visible === false) { - this.changeVisible(false); - } - }; - View3.prototype.clear = function() { - var _this = this; - this.emit(VIEW_LIFE_CIRCLE.BEFORE_CLEAR); - this.filteredData = []; - this.coordinateInstance = void 0; - this.isDataChanged = false; - this.isCoordinateChanged = false; - var geometries = this.geometries; - for (var i4 = 0; i4 < geometries.length; i4++) { - geometries[i4].clear(); - geometries[i4].container.remove(true); - geometries[i4].labelsContainer.remove(true); - } - this.geometries = []; - var controllers = this.controllers; - for (var i4 = 0; i4 < controllers.length; i4++) { - if (controllers[i4].name === "annotation") { - controllers[i4].clear(true); - } else { - controllers[i4].clear(); - } - } - this.createdScaleKeys.forEach(function(v3, k4) { - _this.getRootView().scalePool.deleteScale(k4); - }); - this.createdScaleKeys.clear(); - var views = this.views; - for (var i4 = 0; i4 < views.length; i4++) { - views[i4].clear(); - } - this.emit(VIEW_LIFE_CIRCLE.AFTER_CLEAR); - }; - View3.prototype.destroy = function() { - this.emit(VIEW_LIFE_CIRCLE.BEFORE_DESTROY); - var interactions = this.interactions; - each_default(interactions, function(interaction8) { - if (interaction8) { - interaction8.destroy(); - } - }); - this.clear(); - var controllers = this.controllers; - for (var i4 = 0, len5 = controllers.length; i4 < len5; i4++) { - var controller = controllers[i4]; - controller.destroy(); - } - this.backgroundGroup.remove(true); - this.middleGroup.remove(true); - this.foregroundGroup.remove(true); - _super.prototype.destroy.call(this); - }; - View3.prototype.changeVisible = function(visible) { - _super.prototype.changeVisible.call(this, visible); - var geometries = this.geometries; - for (var i4 = 0, len5 = geometries.length; i4 < len5; i4++) { - var geometry35 = geometries[i4]; - geometry35.changeVisible(visible); - } - var controllers = this.controllers; - for (var i4 = 0, len5 = controllers.length; i4 < len5; i4++) { - var controller = controllers[i4]; - controller.changeVisible(visible); - } - this.foregroundGroup.set("visible", visible); - this.middleGroup.set("visible", visible); - this.backgroundGroup.set("visible", visible); - this.getCanvas().draw(); - return this; - }; - View3.prototype.data = function(data3) { - set_default(this.options, "data", data3); - this.isDataChanged = true; - return this; - }; - View3.prototype.source = function(data3) { - console.warn("This method will be removed at G2 V4.1. Please use chart.data() instead."); - return this.data(data3); - }; - View3.prototype.filter = function(field6, condition) { - if (is_function_default(condition)) { - set_default(this.options, ["filters", field6], condition); - return this; - } - if (!condition && get_default(this.options, ["filters", field6])) { - delete this.options.filters[field6]; - } - return this; - }; - View3.prototype.axis = function(field6, axisOption) { - if (is_boolean_default(field6)) { - set_default(this.options, ["axes"], field6); - } else { - set_default(this.options, ["axes", field6], axisOption); - } - return this; - }; - View3.prototype.legend = function(field6, legendOption) { - if (is_boolean_default(field6)) { - set_default(this.options, ["legends"], field6); - } else if (is_string_default(field6)) { - set_default(this.options, ["legends", field6], legendOption); - if (is_plain_object_default(legendOption) && (legendOption === null || legendOption === void 0 ? void 0 : legendOption.selected)) { - set_default(this.options, ["filters", field6], function(name) { - var _a6; - return (_a6 = legendOption === null || legendOption === void 0 ? void 0 : legendOption.selected[name]) !== null && _a6 !== void 0 ? _a6 : true; - }); - } - } else { - set_default(this.options, ["legends"], field6); - } - return this; - }; - View3.prototype.scale = function(field6, scaleOption) { - var _this = this; - if (is_string_default(field6)) { - set_default(this.options, ["scales", field6], scaleOption); - } else if (is_object_default(field6)) { - each_default(field6, function(v3, k4) { - set_default(_this.options, ["scales", k4], v3); - }); - } - return this; - }; - View3.prototype.tooltip = function(cfg) { - set_default(this.options, "tooltip", cfg); - return this; - }; - View3.prototype.annotation = function() { - return this.getController("annotation"); - }; - View3.prototype.guide = function() { - console.warn("This method will be removed at G2 V4.1. Please use chart.annotation() instead."); - return this.annotation(); - }; - View3.prototype.coordinate = function(type2, coordinateCfg) { - if (is_string_default(type2)) { - set_default(this.options, "coordinate", { type: type2, cfg: coordinateCfg }); - } else { - set_default(this.options, "coordinate", type2); - } - this.coordinateController.update(this.options.coordinate); - return this.coordinateController; - }; - View3.prototype.coord = function(type2, coordinateCfg) { - console.warn("This method will be removed at G2 V4.1. Please use chart.coordinate() instead."); - return this.coordinate(type2, coordinateCfg); - }; - View3.prototype.facet = function(type2, cfg) { - if (this.facetInstance) { - this.facetInstance.destroy(); - } - var Ctor = getFacet(type2); - if (!Ctor) { - throw new Error("facet '".concat(type2, "' is not exist!")); - } - this.facetInstance = new Ctor(this, __assign(__assign({}, cfg), { type: type2 })); - return this; - }; - View3.prototype.animate = function(status) { - set_default(this.options, "animate", status); - return this; - }; - View3.prototype.updateOptions = function(options) { - this.clear(); - mix(this.options, options); - this.views.forEach(function(view) { - return view.destroy(); - }); - this.views = []; - this.initOptions(); - this.coordinateBBox = this.viewBBox; - return this; - }; - View3.prototype.option = function(name, opt) { - if (View3.prototype[name]) { - throw new Error(`Can't use built in variable name "`.concat(name, '", please change another one.')); - } - set_default(this.options, name, opt); - return this; - }; - View3.prototype.theme = function(theme4) { - this.themeObject = is_object_default(theme4) ? deep_mix_default({}, this.themeObject, createTheme(theme4)) : getTheme(theme4); - return this; - }; - View3.prototype.interaction = function(name, cfg) { - var existInteraction = this.interactions[name]; - if (existInteraction) { - existInteraction.destroy(); - } - var interaction8 = createInteraction(name, this, cfg); - if (interaction8) { - interaction8.init(); - this.interactions[name] = interaction8; - } - return this; - }; - View3.prototype.removeInteraction = function(name) { - var existInteraction = this.interactions[name]; - if (existInteraction) { - existInteraction.destroy(); - this.interactions[name] = void 0; - } - }; - View3.prototype.changeData = function(data3) { - this.isDataChanged = true; - this.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, event_default.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null)); - this.data(data3); - this.paint(true); - var views = this.views; - for (var i4 = 0, len5 = views.length; i4 < len5; i4++) { - var view = views[i4]; - view.changeData(data3); - } - this.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, event_default.fromData(this, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null)); - }; - View3.prototype.createView = function(cfg) { - if (this.parent && this.parent.parent) { - console.warn("The view nesting recursive feature will be removed at G2 V4.1. Please avoid to use it."); - } - var sharedOptions = { - data: this.options.data, - scales: clone_default(this.options.scales), - axes: clone_default(this.options.axes), - coordinate: clone_default(this.coordinateController.getOption()), - tooltip: clone_default(this.options.tooltip), - legends: clone_default(this.options.legends), - animate: this.options.animate, - visible: this.visible - }; - var v3 = new View3(__assign(__assign({ - parent: this, - canvas: this.canvas, - backgroundGroup: this.backgroundGroup.addGroup({ zIndex: GROUP_Z_INDEX.BG }), - middleGroup: this.middleGroup.addGroup({ zIndex: GROUP_Z_INDEX.MID }), - foregroundGroup: this.foregroundGroup.addGroup({ zIndex: GROUP_Z_INDEX.FORE }), - theme: this.themeObject, - padding: this.padding - }, cfg), { options: __assign(__assign({}, sharedOptions), get_default(cfg, "options", {})) })); - this.views.push(v3); - return v3; - }; - View3.prototype.view = function(cfg) { - console.warn("This method will be removed at G2 V4.1. Please use chart.createView() instead."); - return this.createView(cfg); - }; - View3.prototype.removeView = function(view) { - var removedView = remove_default(this.views, function(v3) { - return v3 === view; - })[0]; - if (removedView) { - removedView.destroy(); - } - return removedView; - }; - View3.prototype.getCoordinate = function() { - return this.coordinateInstance; - }; - View3.prototype.getTheme = function() { - return this.themeObject; - }; - View3.prototype.getXScale = function() { - var g4 = this.geometries[0]; - return g4 ? g4.getXScale() : null; - }; - View3.prototype.getYScales = function() { - var tmpMap = {}; - var yScales = []; - this.geometries.forEach(function(g4) { - var yScale = g4.getYScale(); - var field6 = yScale.field; - if (!tmpMap[field6]) { - tmpMap[field6] = true; - yScales.push(yScale); - } - }); - return yScales; - }; - View3.prototype.getScalesByDim = function(dimType) { - var geometries = this.geometries; - var scales = {}; - for (var i4 = 0, len5 = geometries.length; i4 < len5; i4++) { - var geometry35 = geometries[i4]; - var scale12 = dimType === "x" ? geometry35.getXScale() : geometry35.getYScale(); - if (scale12 && !scales[scale12.field]) { - scales[scale12.field] = scale12; - } - } - return scales; - }; - View3.prototype.getScale = function(field6, key) { - var defaultKey = key ? key : this.getScaleKey(field6); - return this.getRootView().scalePool.getScale(defaultKey); - }; - View3.prototype.getScaleByField = function(field6, key) { - return this.getScale(field6, key); - }; - View3.prototype.getOptions = function() { - return this.options; - }; - View3.prototype.getData = function() { - return this.filteredData; - }; - View3.prototype.getOriginalData = function() { - return this.options.data; - }; - View3.prototype.getPadding = function() { - return this.autoPadding.getPadding(); - }; - View3.prototype.getGeometries = function() { - return this.geometries; - }; - View3.prototype.getElements = function() { - return reduce_default(this.geometries, function(elements, geometry35) { - return elements.concat(geometry35.getElements()); - }, []); - }; - View3.prototype.getElementsBy = function(condition) { - return this.getElements().filter(function(el) { - return condition(el); - }); - }; - View3.prototype.getLayer = function(layer) { - return layer === LAYER.BG ? this.backgroundGroup : layer === LAYER.MID ? this.middleGroup : layer === LAYER.FORE ? this.foregroundGroup : this.foregroundGroup; - }; - View3.prototype.isPointInPlot = function(point2) { - return isPointInCoordinate(this.getCoordinate(), point2); - }; - View3.prototype.getLegendAttributes = function() { - return flatten_default(this.geometries.map(function(g4) { - return g4.getGroupAttributes(); - })); - }; - View3.prototype.getGroupScales = function() { - var scales = this.geometries.map(function(g4) { - return g4.getGroupScales(); - }); - return uniq2(flatten_default(scales)); - }; - View3.prototype.getCanvas = function() { - return this.getRootView().canvas; - }; - View3.prototype.getRootView = function() { - var v3 = this; - while (true) { - if (v3.parent) { - v3 = v3.parent; - continue; - } - break; - } - return v3; - }; - View3.prototype.getXY = function(data3) { - var coordinate11 = this.getCoordinate(); - var xScales = this.getScalesByDim("x"); - var yScales = this.getScalesByDim("y"); - var x6; - var y5; - each_default(data3, function(value2, key) { - if (xScales[key]) { - x6 = xScales[key].scale(value2); - } - if (yScales[key]) { - y5 = yScales[key].scale(value2); - } - }); - if (!is_nil_default(x6) && !is_nil_default(y5)) { - return coordinate11.convert({ x: x6, y: y5 }); - } - }; - View3.prototype.getController = function(name) { - return find_default(this.controllers, function(c5) { - return c5.name === name; - }); - }; - View3.prototype.showTooltip = function(point2) { - var tooltip10 = this.getController("tooltip"); - if (tooltip10) { - tooltip10.showTooltip(point2); - } - return this; - }; - View3.prototype.hideTooltip = function() { - var tooltip10 = this.getController("tooltip"); - if (tooltip10) { - tooltip10.hideTooltip(); - } - return this; - }; - View3.prototype.lockTooltip = function() { - var tooltip10 = this.getController("tooltip"); - if (tooltip10) { - tooltip10.lockTooltip(); - } - return this; - }; - View3.prototype.unlockTooltip = function() { - var tooltip10 = this.getController("tooltip"); - if (tooltip10) { - tooltip10.unlockTooltip(); - } - return this; - }; - View3.prototype.isTooltipLocked = function() { - var tooltip10 = this.getController("tooltip"); - return tooltip10 && tooltip10.isTooltipLocked(); - }; - View3.prototype.getTooltipItems = function(point2) { - var tooltip10 = this.getController("tooltip"); - return tooltip10 ? tooltip10.getTooltipItems(point2) : []; - }; - View3.prototype.getSnapRecords = function(point2) { - var geometries = this.geometries; - var rst = []; - for (var i4 = 0, len5 = geometries.length; i4 < len5; i4++) { - var geom = geometries[i4]; - var dataArray = geom.dataArray; - geom.sort(dataArray); - var record = void 0; - for (var j4 = 0, dataLen = dataArray.length; j4 < dataLen; j4++) { - var data3 = dataArray[j4]; - record = findDataByPoint(point2, data3, geom); - if (record) { - rst.push(record); - } - } - } - var views = this.views; - for (var i4 = 0, len5 = views.length; i4 < len5; i4++) { - var view = views[i4]; - var snapRecords = view.getSnapRecords(point2); - rst = rst.concat(snapRecords); - } - return rst; - }; - View3.prototype.getComponents = function() { - var components = []; - var controllers = this.controllers; - for (var i4 = 0, len5 = controllers.length; i4 < len5; i4++) { - var controller = controllers[i4]; - components = components.concat(controller.getComponents()); - } - return components; - }; - View3.prototype.filterData = function(data3) { - var filters = this.options.filters; - if (size(filters) === 0) { - return data3; - } - return filter_default(data3, function(datum, idx) { - var fields = Object.keys(filters); - return fields.every(function(field6) { - var condition = filters[field6]; - return condition(datum[field6], datum, idx); - }); - }); - }; - View3.prototype.filterFieldData = function(field6, data3) { - var filters = this.options.filters; - var condition = get_default(filters, field6); - if (is_undefined_default(condition)) { - return data3; - } - return data3.filter(function(datum, idx) { - return condition(datum[field6], datum, idx); - }); - }; - View3.prototype.adjustCoordinate = function() { - var _a6 = this.getCoordinate(), curStart = _a6.start, curEnd = _a6.end; - var start = this.coordinateBBox.bl; - var end2 = this.coordinateBBox.tr; - if (is_equal_default(curStart, start) && is_equal_default(curEnd, end2)) { - this.isCoordinateChanged = false; - return; - } - this.isCoordinateChanged = true; - this.coordinateInstance = this.coordinateController.adjust(start, end2); - }; - View3.prototype.paint = function(isUpdate) { - this.renderDataRecursive(isUpdate); - this.syncScale(); - this.emit(VIEW_LIFE_CIRCLE.BEFORE_PAINT); - this.renderPaddingRecursive(isUpdate); - this.renderLayoutRecursive(isUpdate); - this.renderBackgroundStyleShape(); - this.renderPaintRecursive(isUpdate); - this.emit(VIEW_LIFE_CIRCLE.AFTER_PAINT); - this.isDataChanged = false; - }; - View3.prototype.renderBackgroundStyleShape = function() { - if (this.parent) { - return; - } - var background = get_default(this.themeObject, "background"); - if (background) { - if (!this.backgroundStyleRectShape) { - this.backgroundStyleRectShape = this.backgroundGroup.addShape("rect", { - attrs: {}, - zIndex: -1, - capture: false - }); - this.backgroundStyleRectShape.toBack(); - } - var _a6 = this.viewBBox, x6 = _a6.x, y5 = _a6.y, width2 = _a6.width, height = _a6.height; - this.backgroundStyleRectShape.attr({ - fill: background, - x: x6, - y: y5, - width: width2, - height - }); - } else { - if (this.backgroundStyleRectShape) { - this.backgroundStyleRectShape.remove(true); - this.backgroundStyleRectShape = void 0; - } - } - }; - View3.prototype.renderPaddingRecursive = function(isUpdate) { - this.calculateViewBBox(); - this.adjustCoordinate(); - this.initComponents(isUpdate); - this.autoPadding = calculatePadding(this).shrink(parsePadding(this.appendPadding)); - this.coordinateBBox = this.viewBBox.shrink(this.autoPadding.getPadding()); - this.adjustCoordinate(); - var views = this.views; - for (var i4 = 0, len5 = views.length; i4 < len5; i4++) { - var view = views[i4]; - view.renderPaddingRecursive(isUpdate); - } - }; - View3.prototype.renderLayoutRecursive = function(isUpdate) { - var syncViewPaddingFn = this.syncViewPadding === true ? defaultSyncViewPadding : is_function_default(this.syncViewPadding) ? this.syncViewPadding : void 0; - if (syncViewPaddingFn) { - syncViewPaddingFn(this, this.views, PaddingCal); - this.views.forEach(function(v3) { - v3.coordinateBBox = v3.viewBBox.shrink(v3.autoPadding.getPadding()); - v3.adjustCoordinate(); - }); - } - this.doLayout(); - var views = this.views; - for (var i4 = 0, len5 = views.length; i4 < len5; i4++) { - var view = views[i4]; - view.renderLayoutRecursive(isUpdate); - } - }; - View3.prototype.renderPaintRecursive = function(isUpdate) { - var middleGroup = this.middleGroup; - if (this.limitInPlot) { - var _a6 = getCoordinateClipCfg(this.coordinateInstance), type2 = _a6.type, attrs = _a6.attrs; - middleGroup.setClip({ - type: type2, - attrs - }); - } else { - middleGroup.setClip(void 0); - } - this.paintGeometries(isUpdate); - this.renderComponents(isUpdate); - var views = this.views; - for (var i4 = 0, len5 = views.length; i4 < len5; i4++) { - var view = views[i4]; - view.renderPaintRecursive(isUpdate); - } - }; - View3.prototype.createScale = function(field6, data3, scaleDef, key) { - var currentScaleDef = get_default(this.options.scales, [field6]); - var mergedScaleDef = __assign(__assign({}, currentScaleDef), scaleDef); - if (this.parent) { - return this.parent.createScale(field6, data3, mergedScaleDef, key); - } - return this.scalePool.createScale(field6, data3, mergedScaleDef, key); - }; - View3.prototype.renderDataRecursive = function(isUpdate) { - this.doFilterData(); - this.createCoordinate(); - this.initGeometries(isUpdate); - this.renderFacet(isUpdate); - var views = this.views; - for (var i4 = 0, len5 = views.length; i4 < len5; i4++) { - var view = views[i4]; - view.renderDataRecursive(isUpdate); - } - }; - View3.prototype.calculateViewBBox = function() { - var x6; - var y5; - var width2; - var height; - if (this.parent) { - var bbox = this.parent.coordinateBBox; - x6 = bbox.x; - y5 = bbox.y; - width2 = bbox.width; - height = bbox.height; - } else { - x6 = 0; - y5 = 0; - width2 = this.canvas.get("width"); - height = this.canvas.get("height"); - } - var _a6 = this.region, start = _a6.start, end2 = _a6.end; - var viewBBox = new BBox(x6 + width2 * start.x, y5 + height * start.y, width2 * (end2.x - start.x), height * (end2.y - start.y)); - if (!this.viewBBox || !this.viewBBox.isEqual(viewBBox)) { - this.viewBBox = new BBox(x6 + width2 * start.x, y5 + height * start.y, width2 * (end2.x - start.x), height * (end2.y - start.y)); - } - this.coordinateBBox = this.viewBBox; - }; - View3.prototype.initEvents = function() { - this.foregroundGroup.on("*", this.onDelegateEvents); - this.middleGroup.on("*", this.onDelegateEvents); - this.backgroundGroup.on("*", this.onDelegateEvents); - this.canvas.on("*", this.onCanvasEvent); - }; - View3.prototype.initComponentController = function() { - var usedControllers = this.usedControllers; - for (var i4 = 0, len5 = usedControllers.length; i4 < len5; i4++) { - var controllerName = usedControllers[i4]; - var Ctor = getComponentController(controllerName); - if (Ctor) { - this.controllers.push(new Ctor(this)); - } - } - }; - View3.prototype.createViewEvent = function(evt) { - var shape = evt.shape, name = evt.name; - var data3 = shape ? shape.get("origin") : null; - var e4 = new event_default(this, evt, data3); - e4.type = name; - return e4; - }; - View3.prototype.doPlotEvent = function(e4) { - var type2 = e4.type, x6 = e4.x, y5 = e4.y; - var point2 = { x: x6, y: y5 }; - var ALL_EVENTS = [ - "mousedown", - "mouseup", - "mousemove", - "mouseleave", - "mousewheel", - "touchstart", - "touchmove", - "touchend", - "touchcancel", - "click", - "dblclick", - "contextmenu" - ]; - if (ALL_EVENTS.includes(type2)) { - var currentInPlot = this.isPointInPlot(point2); - var newEvent = e4.clone(); - if (currentInPlot) { - var TYPE = "plot:".concat(type2); - newEvent.type = TYPE; - this.emit(TYPE, newEvent); - if (type2 === "mouseleave" || type2 === "touchend") { - this.isPreMouseInPlot = false; - } - } - if (type2 === "mousemove" || type2 === "touchmove") { - if (this.isPreMouseInPlot && !currentInPlot) { - if (type2 === "mousemove") { - newEvent.type = PLOT_EVENTS.MOUSE_LEAVE; - this.emit(PLOT_EVENTS.MOUSE_LEAVE, newEvent); - } - newEvent.type = PLOT_EVENTS.LEAVE; - this.emit(PLOT_EVENTS.LEAVE, newEvent); - } else if (!this.isPreMouseInPlot && currentInPlot) { - if (type2 === "mousemove") { - newEvent.type = PLOT_EVENTS.MOUSE_ENTER; - this.emit(PLOT_EVENTS.MOUSE_ENTER, newEvent); - } - newEvent.type = PLOT_EVENTS.ENTER; - this.emit(PLOT_EVENTS.ENTER, newEvent); - } - this.isPreMouseInPlot = currentInPlot; - } else if (type2 === "mouseleave" || type2 === "touchend") { - if (this.isPreMouseInPlot) { - if (type2 === "mouseleave") { - newEvent.type = PLOT_EVENTS.MOUSE_LEAVE; - this.emit(PLOT_EVENTS.MOUSE_LEAVE, newEvent); - } - newEvent.type = PLOT_EVENTS.LEAVE; - this.emit(PLOT_EVENTS.LEAVE, newEvent); - this.isPreMouseInPlot = false; - } - } - } - }; - View3.prototype.doFilterData = function() { - var data3 = this.options.data; - this.filteredData = this.filterData(data3); - }; - View3.prototype.initGeometries = function(isUpdate) { - this.createOrUpdateScales(); - var coordinate11 = this.getCoordinate(); - var scaleDefs = get_default(this.options, "scales", {}); - var geometries = this.geometries; - for (var i4 = 0, len5 = geometries.length; i4 < len5; i4++) { - var geometry35 = geometries[i4]; - geometry35.scales = this.getGeometryScales(); - var cfg = { - coordinate: coordinate11, - scaleDefs, - data: this.filteredData, - theme: this.themeObject, - isDataChanged: this.isDataChanged, - isCoordinateChanged: this.isCoordinateChanged - }; - if (isUpdate) { - geometry35.update(cfg); - } else { - geometry35.init(cfg); - } - } - this.adjustScales(); - }; - View3.prototype.createOrUpdateScales = function() { - var fields = this.getScaleFields(); - var groupedFields = this.getGroupedFields(); - var _a6 = this.getOptions(), data3 = _a6.data, _b = _a6.scales, scales = _b === void 0 ? {} : _b; - var filteredData = this.filteredData; - for (var i4 = 0, len5 = fields.length; i4 < len5; i4++) { - var field6 = fields[i4]; - var scaleDef = scales[field6]; - var key = this.getScaleKey(field6); - this.createScale(field6, groupedFields.includes(field6) ? data3 : filteredData, scaleDef, key); - this.createdScaleKeys.set(key, true); - } - }; - View3.prototype.syncScale = function() { - this.getRootView().scalePool.sync(this.getCoordinate(), this.theme); - }; - View3.prototype.getGeometryScales = function() { - var fields = this.getScaleFields(); - var scales = {}; - for (var i4 = 0; i4 < fields.length; i4++) { - var field6 = fields[i4]; - scales[field6] = this.getScaleByField(field6); - } - return scales; - }; - View3.prototype.getScaleFields = function() { - var fields = []; - var tmpMap = new Map(); - var geometries = this.geometries; - for (var i4 = 0; i4 < geometries.length; i4++) { - var geometry35 = geometries[i4]; - var geometryScales = geometry35.getScaleFields(); - uniq2(geometryScales, fields, tmpMap); - } - return fields; - }; - View3.prototype.getGroupedFields = function() { - var fields = []; - var tmpMap = new Map(); - var geometries = this.geometries; - for (var i4 = 0; i4 < geometries.length; i4++) { - var geometry35 = geometries[i4]; - var groupFields = geometry35.getGroupFields(); - uniq2(groupFields, fields, tmpMap); - } - return fields; - }; - View3.prototype.adjustScales = function() { - this.adjustCategoryScaleRange(); - }; - View3.prototype.adjustCategoryScaleRange = function() { - var _this = this; - var xyScales = __spreadArray([this.getXScale()], this.getYScales(), true).filter(function(e4) { - return !!e4; - }); - var coordinate11 = this.getCoordinate(); - var scaleOptions = this.options.scales; - each_default(xyScales, function(scale12) { - var field6 = scale12.field, values2 = scale12.values, isCategory = scale12.isCategory, isIdentity = scale12.isIdentity; - if (isCategory || isIdentity) { - if (values2 && !get_default(scaleOptions, [field6, "range"])) { - scale12.range = getDefaultCategoryScaleRange(scale12, coordinate11, _this.theme); - } - } - }); - }; - View3.prototype.initComponents = function(isUpdate) { - var controllers = this.controllers; - for (var i4 = 0; i4 < controllers.length; i4++) { - var controller = controllers[i4]; - if (isUpdate) { - controller.update(); - } else { - controller.clear(); - controller.render(); - } - } - }; - View3.prototype.doLayout = function() { - this.layoutFunc(this); - }; - View3.prototype.createCoordinate = function() { - var start = this.coordinateBBox.bl; - var end2 = this.coordinateBBox.tr; - this.coordinateInstance = this.coordinateController.create(start, end2); - }; - View3.prototype.paintGeometries = function(isUpdate) { - var doAnimation = this.options.animate; - var coordinate11 = this.getCoordinate(); - var canvasRegion = { - x: this.viewBBox.x, - y: this.viewBBox.y, - minX: this.viewBBox.minX, - minY: this.viewBBox.minY, - maxX: this.viewBBox.maxX, - maxY: this.viewBBox.maxY, - width: this.viewBBox.width, - height: this.viewBBox.height - }; - var geometries = this.geometries; - for (var i4 = 0; i4 < geometries.length; i4++) { - var geometry35 = geometries[i4]; - geometry35.coordinate = coordinate11; - geometry35.canvasRegion = canvasRegion; - if (!doAnimation) { - geometry35.animate(false); - } - geometry35.paint(isUpdate); - } - }; - View3.prototype.renderComponents = function(isUpdate) { - for (var i4 = 0; i4 < this.getComponents().length; i4++) { - var co = this.getComponents()[i4]; - co.component.render(); - } - }; - View3.prototype.renderFacet = function(isUpdate) { - if (this.facetInstance) { - if (isUpdate) { - this.facetInstance.update(); - } else { - this.facetInstance.clear(); - this.facetInstance.init(); - this.facetInstance.render(); - } - } - }; - View3.prototype.initOptions = function() { - var _this = this; - var _a6 = this.options, _b = _a6.geometries, geometries = _b === void 0 ? [] : _b, _c = _a6.interactions, interactions = _c === void 0 ? [] : _c, _d = _a6.views, views = _d === void 0 ? [] : _d, _e = _a6.annotations, annotations = _e === void 0 ? [] : _e, coordinate11 = _a6.coordinate, events = _a6.events, facets = _a6.facets; - if (this.coordinateController) { - coordinate11 && this.coordinateController.update(coordinate11); - } else { - this.coordinateController = new coordinate_default(coordinate11); - } - for (var i4 = 0; i4 < geometries.length; i4++) { - var geometryOption = geometries[i4]; - this.createGeometry(geometryOption); - } - for (var j4 = 0; j4 < interactions.length; j4++) { - var interactionOption = interactions[j4]; - var type2 = interactionOption.type, cfg = interactionOption.cfg; - this.interaction(type2, cfg); - } - for (var k4 = 0; k4 < views.length; k4++) { - var viewOption = views[k4]; - this.createView(viewOption); - } - var annotationComponent = this.getController("annotation"); - for (var l4 = 0; l4 < annotations.length; l4++) { - var annotationOption = annotations[l4]; - annotationComponent.annotation(annotationOption); - } - if (events) { - each_default(events, function(eventCallback, eventName) { - _this.on(eventName, eventCallback); - }); - } - if (facets) { - each_default(facets, function(facet) { - var type3 = facet.type, rest = __rest(facet, ["type"]); - _this.facet(type3, rest); - }); - } - }; - View3.prototype.createGeometry = function(geometryOption) { - var type2 = geometryOption.type, _a6 = geometryOption.cfg, cfg = _a6 === void 0 ? {} : _a6; - if (this[type2]) { - var geometry_1 = this[type2](cfg); - each_default(geometryOption, function(v3, k4) { - if (is_function_default(geometry_1[k4])) { - geometry_1[k4](v3); - } - }); - } - }; - View3.prototype.getScaleKey = function(field6) { - return "".concat(this.id, "-").concat(field6); - }; - return View3; -}(base_default); -function registerGeometry(name, Ctor) { - View.prototype[name.toLowerCase()] = function(cfg) { - if (cfg === void 0) { - cfg = {}; - } - var props = __assign({ - container: this.middleGroup.addGroup(), - labelsContainer: this.foregroundGroup.addGroup() - }, cfg); - var geometry35 = new Ctor(props); - this.geometries.push(geometry35); - return geometry35; - }; -} -var view_default = View; - -// node_modules/@antv/g2/esm/chart/chart.js -var Chart = function(_super) { - __extends(Chart3, _super); - function Chart3(props) { - var _this = this; - var container2 = props.container, width2 = props.width, height = props.height, _a6 = props.autoFit, autoFit = _a6 === void 0 ? false : _a6, padding3 = props.padding, appendPadding = props.appendPadding, _b = props.renderer, renderer = _b === void 0 ? "canvas" : _b, pixelRatio = props.pixelRatio, _c = props.localRefresh, localRefresh = _c === void 0 ? true : _c, _d = props.visible, visible = _d === void 0 ? true : _d, _e = props.supportCSSTransform, supportCSSTransform = _e === void 0 ? false : _e, _f = props.defaultInteractions, defaultInteractions = _f === void 0 ? ["tooltip", "legend-filter", "legend-active", "continuous-filter", "ellipsis-text"] : _f, options = props.options, limitInPlot5 = props.limitInPlot, theme4 = props.theme, syncViewPadding2 = props.syncViewPadding; - var ele = is_string_default(container2) ? document.getElementById(container2) : container2; - var wrapperElement = createDom('
    '); - ele.appendChild(wrapperElement); - var size2 = getChartSize(ele, autoFit, width2, height); - var G2 = getEngine(renderer); - var canvas = new G2.Canvas(__assign({ container: wrapperElement, pixelRatio, localRefresh, supportCSSTransform }, size2)); - _this = _super.call(this, { - parent: null, - canvas, - backgroundGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.BG }), - middleGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.MID }), - foregroundGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.FORE }), - padding: padding3, - appendPadding, - visible, - options, - limitInPlot: limitInPlot5, - theme: theme4, - syncViewPadding: syncViewPadding2 - }) || this; - _this.onResize = debounce_default(function() { - _this.forceFit(); - }, 300); - _this.ele = ele; - _this.canvas = canvas; - _this.width = size2.width; - _this.height = size2.height; - _this.autoFit = autoFit; - _this.localRefresh = localRefresh; - _this.renderer = renderer; - _this.wrapperElement = wrapperElement; - _this.updateCanvasStyle(); - _this.bindAutoFit(); - _this.initDefaultInteractions(defaultInteractions); - return _this; - } - Chart3.prototype.initDefaultInteractions = function(interactions) { - var _this = this; - each_default(interactions, function(interaction8) { - _this.interaction(interaction8); - }); - }; - Chart3.prototype.aria = function(ariaOption) { - var ATTR = "aria-label"; - if (ariaOption === false) { - this.ele.removeAttribute(ATTR); - } else { - this.ele.setAttribute(ATTR, ariaOption.label); - } - }; - Chart3.prototype.changeSize = function(width2, height) { - if (this.width === width2 && this.height === height) { - return this; - } - this.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE); - this.width = width2; - this.height = height; - this.canvas.changeSize(width2, height); - this.render(true); - this.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_SIZE); - return this; - }; - Chart3.prototype.clear = function() { - _super.prototype.clear.call(this); - this.aria(false); - }; - Chart3.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.unbindAutoFit(); - this.canvas.destroy(); - removeDom(this.wrapperElement); - this.wrapperElement = null; - }; - Chart3.prototype.changeVisible = function(visible) { - _super.prototype.changeVisible.call(this, visible); - this.wrapperElement.style.display = visible ? "" : "none"; - return this; - }; - Chart3.prototype.forceFit = function() { - if (!this.destroyed) { - var _a6 = getChartSize(this.ele, true, this.width, this.height), width2 = _a6.width, height = _a6.height; - this.changeSize(width2, height); - } - }; - Chart3.prototype.updateCanvasStyle = function() { - modifyCSS(this.canvas.get("el"), { - display: "inline-block", - verticalAlign: "middle" - }); - }; - Chart3.prototype.bindAutoFit = function() { - if (this.autoFit) { - window.addEventListener("resize", this.onResize); - } - }; - Chart3.prototype.unbindAutoFit = function() { - if (this.autoFit) { - window.removeEventListener("resize", this.onResize); - } - }; - return Chart3; -}(view_default); -var chart_default = Chart; - -// node_modules/@antv/g2/esm/chart/controller/base.js -var Controller = function() { - function Controller2(view) { - this.visible = true; - this.components = []; - this.view = view; - } - Controller2.prototype.clear = function(includeOption) { - each_default(this.components, function(co) { - co.component.destroy(); - }); - this.components = []; - }; - Controller2.prototype.destroy = function() { - this.clear(); - }; - Controller2.prototype.getComponents = function() { - return this.components; - }; - Controller2.prototype.changeVisible = function(visible) { - if (this.visible === visible) { - return; - } - this.components.forEach(function(co) { - if (visible) { - co.component.show(); - } else { - co.component.hide(); - } - }); - this.visible = visible; - }; - return Controller2; -}(); - -// node_modules/@antv/g2/esm/chart/controller/tooltip.js -function uniq3(items) { - var uniqItems = []; - var _loop_1 = function(index3) { - var item = items[index3]; - var result = find_default(uniqItems, function(subItem) { - return subItem.color === item.color && subItem.name === item.name && subItem.value === item.value && subItem.title === item.title; - }); - if (!result) { - uniqItems.push(item); - } - }; - for (var index2 = 0; index2 < items.length; index2++) { - _loop_1(index2); - } - return uniqItems; -} -var Tooltip2 = function(_super) { - __extends(Tooltip5, _super); - function Tooltip5() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.isLocked = false; - return _this; - } - Object.defineProperty(Tooltip5.prototype, "name", { - get: function() { - return "tooltip"; - }, - enumerable: false, - configurable: true - }); - Tooltip5.prototype.init = function() { - }; - Tooltip5.prototype.isVisible = function() { - var option = this.view.getOptions().tooltip; - return option !== false; - }; - Tooltip5.prototype.render = function() { - }; - Tooltip5.prototype.showTooltip = function(point2) { - this.point = point2; - if (!this.isVisible()) { - return; - } - var view = this.view; - var items = this.getTooltipItems(point2); - if (!items.length) { - this.hideTooltip(); - return; - } - var title = this.getTitle(items); - var dataPoint = { - x: items[0].x, - y: items[0].y - }; - view.emit("tooltip:show", event_default.fromData(view, "tooltip:show", __assign({ items, title }, point2))); - var cfg = this.getTooltipCfg(); - var follow = cfg.follow, showMarkers = cfg.showMarkers, showCrosshairs = cfg.showCrosshairs, showContent = cfg.showContent, marker = cfg.marker; - var lastItems = this.items; - var lastTitle = this.title; - if (!is_equal_default(lastTitle, title) || !is_equal_default(lastItems, items)) { - view.emit("tooltip:change", event_default.fromData(view, "tooltip:change", __assign({ items, title }, point2))); - if (is_function_default(showContent) ? showContent(items) : showContent) { - if (!this.tooltip) { - this.renderTooltip(); - } - this.tooltip.update(mix({}, cfg, { - items: this.getItemsAfterProcess(items), - title - }, follow ? point2 : {})); - this.tooltip.show(); - } - if (showMarkers) { - this.renderTooltipMarkers(items, marker); - } - } else { - if (this.tooltip && follow) { - this.tooltip.update(point2); - this.tooltip.show(); - } - if (this.tooltipMarkersGroup) { - this.tooltipMarkersGroup.show(); - } - } - this.items = items; - this.title = title; - if (showCrosshairs) { - var isCrosshairsFollowCursor = get_default(cfg, ["crosshairs", "follow"], false); - this.renderCrosshairs(isCrosshairsFollowCursor ? point2 : dataPoint, cfg); - } - }; - Tooltip5.prototype.hideTooltip = function() { - var follow = this.getTooltipCfg().follow; - if (!follow) { - this.point = null; - return; - } - var tooltipMarkersGroup = this.tooltipMarkersGroup; - if (tooltipMarkersGroup) { - tooltipMarkersGroup.hide(); - } - var xCrosshair = this.xCrosshair; - var yCrosshair = this.yCrosshair; - if (xCrosshair) { - xCrosshair.hide(); - } - if (yCrosshair) { - yCrosshair.hide(); - } - var tooltip10 = this.tooltip; - if (tooltip10) { - tooltip10.hide(); - } - this.view.emit("tooltip:hide", event_default.fromData(this.view, "tooltip:hide", {})); - this.point = null; - }; - Tooltip5.prototype.lockTooltip = function() { - this.isLocked = true; - if (this.tooltip) { - this.tooltip.setCapture(true); - } - }; - Tooltip5.prototype.unlockTooltip = function() { - this.isLocked = false; - var cfg = this.getTooltipCfg(); - if (this.tooltip) { - this.tooltip.setCapture(cfg.capture); - } - }; - Tooltip5.prototype.isTooltipLocked = function() { - return this.isLocked; - }; - Tooltip5.prototype.clear = function() { - var _a6 = this, tooltip10 = _a6.tooltip, xCrosshair = _a6.xCrosshair, yCrosshair = _a6.yCrosshair, tooltipMarkersGroup = _a6.tooltipMarkersGroup; - if (tooltip10) { - tooltip10.hide(); - tooltip10.clear(); - } - if (xCrosshair) { - xCrosshair.clear(); - } - if (yCrosshair) { - yCrosshair.clear(); - } - if (tooltipMarkersGroup) { - tooltipMarkersGroup.clear(); - } - if (tooltip10 === null || tooltip10 === void 0 ? void 0 : tooltip10.get("customContent")) { - this.tooltip.destroy(); - this.tooltip = null; - } - this.title = null; - this.items = null; - }; - Tooltip5.prototype.destroy = function() { - if (this.tooltip) { - this.tooltip.destroy(); - } - if (this.xCrosshair) { - this.xCrosshair.destroy(); - } - if (this.yCrosshair) { - this.yCrosshair.destroy(); - } - if (this.guideGroup) { - this.guideGroup.remove(true); - } - this.reset(); - }; - Tooltip5.prototype.reset = function() { - this.items = null; - this.title = null; - this.tooltipMarkersGroup = null; - this.tooltipCrosshairsGroup = null; - this.xCrosshair = null; - this.yCrosshair = null; - this.tooltip = null; - this.guideGroup = null; - this.isLocked = false; - this.point = null; - }; - Tooltip5.prototype.changeVisible = function(visible) { - if (this.visible === visible) { - return; - } - var _a6 = this, tooltip10 = _a6.tooltip, tooltipMarkersGroup = _a6.tooltipMarkersGroup, xCrosshair = _a6.xCrosshair, yCrosshair = _a6.yCrosshair; - if (visible) { - if (tooltip10) { - tooltip10.show(); - } - if (tooltipMarkersGroup) { - tooltipMarkersGroup.show(); - } - if (xCrosshair) { - xCrosshair.show(); - } - if (yCrosshair) { - yCrosshair.show(); - } - } else { - if (tooltip10) { - tooltip10.hide(); - } - if (tooltipMarkersGroup) { - tooltipMarkersGroup.hide(); - } - if (xCrosshair) { - xCrosshair.hide(); - } - if (yCrosshair) { - yCrosshair.hide(); - } - } - this.visible = visible; - }; - Tooltip5.prototype.getTooltipItems = function(point2) { - var items = this.findItemsFromView(this.view, point2); - if (items.length) { - items = flatten_default(items); - for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { - var itemArr = items_1[_i]; - for (var _a6 = 0, itemArr_1 = itemArr; _a6 < itemArr_1.length; _a6++) { - var item = itemArr_1[_a6]; - var _b = item.mappingData, x6 = _b.x, y5 = _b.y; - item.x = is_array_default(x6) ? x6[x6.length - 1] : x6; - item.y = is_array_default(y5) ? y5[y5.length - 1] : y5; - } - } - var shared = this.getTooltipCfg().shared; - if (shared === false && items.length > 1) { - var snapItem = items[0]; - var min7 = Math.abs(point2.y - snapItem[0].y); - for (var _c = 0, items_2 = items; _c < items_2.length; _c++) { - var aItem = items_2[_c]; - var yDistance = Math.abs(point2.y - aItem[0].y); - if (yDistance <= min7) { - snapItem = aItem; - min7 = yDistance; - } - } - items = [snapItem]; - } - return uniq3(flatten_default(items)); - } - return []; - }; - Tooltip5.prototype.layout = function() { - }; - Tooltip5.prototype.update = function() { - if (this.point) { - this.showTooltip(this.point); - } - if (this.tooltip) { - var canvas = this.view.getCanvas(); - this.tooltip.set("region", { - start: { x: 0, y: 0 }, - end: { x: canvas.get("width"), y: canvas.get("height") } - }); - } - }; - Tooltip5.prototype.isCursorEntered = function(point2) { - if (this.tooltip) { - var el = this.tooltip.getContainer(); - var capture = this.tooltip.get("capture"); - if (el && capture) { - var _a6 = el.getBoundingClientRect(), x6 = _a6.x, y5 = _a6.y, width2 = _a6.width, height = _a6.height; - return new BBox(x6, y5, width2, height).isPointIn(point2); - } - } - return false; - }; - Tooltip5.prototype.getTooltipCfg = function() { - var view = this.view; - var option = view.getOptions().tooltip; - var processOption = this.processCustomContent(option); - var theme4 = view.getTheme(); - var defaultCfg2 = get_default(theme4, ["components", "tooltip"], {}); - var enterable = get_default(processOption, "enterable", defaultCfg2.enterable); - return deep_mix_default({}, defaultCfg2, processOption, { - capture: enterable || this.isLocked ? true : false - }); - }; - Tooltip5.prototype.processCustomContent = function(option) { - if (is_boolean_default(option) || !get_default(option, "customContent")) { - return option; - } - var currentCustomContent = option.customContent; - var customContent = function(title, items) { - var content = currentCustomContent(title, items) || ""; - return is_string_default(content) ? '
    ' + content + "
    " : content; - }; - return __assign(__assign({}, option), { customContent }); - }; - Tooltip5.prototype.getTitle = function(items) { - var title = items[0].title || items[0].name; - this.title = title; - return title; - }; - Tooltip5.prototype.renderTooltip = function() { - var canvas = this.view.getCanvas(); - var region = { - start: { x: 0, y: 0 }, - end: { x: canvas.get("width"), y: canvas.get("height") } - }; - var cfg = this.getTooltipCfg(); - var tooltip10 = new HtmlTooltip(__assign(__assign({ parent: canvas.get("el").parentNode, region }, cfg), { visible: false, crosshairs: null })); - tooltip10.init(); - this.tooltip = tooltip10; - }; - Tooltip5.prototype.renderTooltipMarkers = function(items, marker) { - var tooltipMarkersGroup = this.getTooltipMarkersGroup(); - for (var _i = 0, items_3 = items; _i < items_3.length; _i++) { - var item = items_3[_i]; - var x6 = item.x, y5 = item.y; - var attrs = __assign(__assign({ fill: item.color, symbol: "circle", shadowColor: item.color }, marker), { x: x6, y: y5 }); - tooltipMarkersGroup.addShape("marker", { - attrs - }); - } - }; - Tooltip5.prototype.renderCrosshairs = function(point2, cfg) { - var crosshairsType = get_default(cfg, ["crosshairs", "type"], "x"); - if (crosshairsType === "x") { - if (this.yCrosshair) { - this.yCrosshair.hide(); - } - this.renderXCrosshairs(point2, cfg); - } else if (crosshairsType === "y") { - if (this.xCrosshair) { - this.xCrosshair.hide(); - } - this.renderYCrosshairs(point2, cfg); - } else if (crosshairsType === "xy") { - this.renderXCrosshairs(point2, cfg); - this.renderYCrosshairs(point2, cfg); - } - }; - Tooltip5.prototype.renderXCrosshairs = function(point2, tooltipCfg) { - var coordinate11 = this.getViewWithGeometry(this.view).getCoordinate(); - if (!isPointInCoordinate(coordinate11, point2)) { - return; - } - var start; - var end2; - if (coordinate11.isRect) { - if (coordinate11.isTransposed) { - start = { - x: coordinate11.start.x, - y: point2.y - }; - end2 = { - x: coordinate11.end.x, - y: point2.y - }; - } else { - start = { - x: point2.x, - y: coordinate11.end.y - }; - end2 = { - x: point2.x, - y: coordinate11.start.y - }; - } - } else { - var angle3 = getAngleByPoint(coordinate11, point2); - var center2 = coordinate11.getCenter(); - var radius = coordinate11.getRadius(); - end2 = polarToCartesian(center2.x, center2.y, radius, angle3); - start = center2; - } - var cfg = deep_mix_default({ - start, - end: end2, - container: this.getTooltipCrosshairsGroup() - }, get_default(tooltipCfg, "crosshairs", {}), this.getCrosshairsText("x", point2, tooltipCfg)); - delete cfg.type; - var xCrosshair = this.xCrosshair; - if (xCrosshair) { - xCrosshair.update(cfg); - } else { - xCrosshair = new crosshair_exports.Line(cfg); - xCrosshair.init(); - } - xCrosshair.render(); - xCrosshair.show(); - this.xCrosshair = xCrosshair; - }; - Tooltip5.prototype.renderYCrosshairs = function(point2, tooltipCfg) { - var coordinate11 = this.getViewWithGeometry(this.view).getCoordinate(); - if (!isPointInCoordinate(coordinate11, point2)) { - return; - } - var cfg; - var type2; - if (coordinate11.isRect) { - var start = void 0; - var end2 = void 0; - if (coordinate11.isTransposed) { - start = { - x: point2.x, - y: coordinate11.end.y - }; - end2 = { - x: point2.x, - y: coordinate11.start.y - }; - } else { - start = { - x: coordinate11.start.x, - y: point2.y - }; - end2 = { - x: coordinate11.end.x, - y: point2.y - }; - } - cfg = { - start, - end: end2 - }; - type2 = "Line"; - } else { - cfg = { - center: coordinate11.getCenter(), - radius: getDistanceToCenter(coordinate11, point2), - startAngle: coordinate11.startAngle, - endAngle: coordinate11.endAngle - }; - type2 = "Circle"; - } - cfg = deep_mix_default({ - container: this.getTooltipCrosshairsGroup() - }, cfg, get_default(tooltipCfg, "crosshairs", {}), this.getCrosshairsText("y", point2, tooltipCfg)); - delete cfg.type; - var yCrosshair = this.yCrosshair; - if (yCrosshair) { - if (coordinate11.isRect && yCrosshair.get("type") === "circle" || !coordinate11.isRect && yCrosshair.get("type") === "line") { - yCrosshair = new crosshair_exports[type2](cfg); - yCrosshair.init(); - } else { - yCrosshair.update(cfg); - } - } else { - yCrosshair = new crosshair_exports[type2](cfg); - yCrosshair.init(); - } - yCrosshair.render(); - yCrosshair.show(); - this.yCrosshair = yCrosshair; - }; - Tooltip5.prototype.getCrosshairsText = function(type2, point2, tooltipCfg) { - var textCfg = get_default(tooltipCfg, ["crosshairs", "text"]); - var follow = get_default(tooltipCfg, ["crosshairs", "follow"]); - var items = this.items; - if (textCfg) { - var view = this.getViewWithGeometry(this.view); - var firstItem = items[0]; - var xScale = view.getXScale(); - var yScale = view.getYScales()[0]; - var xValue = void 0; - var yValue = void 0; - if (follow) { - var invertPoint = this.view.getCoordinate().invert(point2); - xValue = xScale.invert(invertPoint.x); - yValue = yScale.invert(invertPoint.y); - } else { - xValue = firstItem.data[xScale.field]; - yValue = firstItem.data[yScale.field]; - } - var content = type2 === "x" ? xValue : yValue; - if (is_function_default(textCfg)) { - textCfg = textCfg(type2, content, items, point2); - } else { - textCfg.content = content; - } - return { - text: textCfg - }; - } - }; - Tooltip5.prototype.getGuideGroup = function() { - if (!this.guideGroup) { - var foregroundGroup = this.view.foregroundGroup; - this.guideGroup = foregroundGroup.addGroup({ - name: "tooltipGuide", - capture: false - }); - } - return this.guideGroup; - }; - Tooltip5.prototype.getTooltipMarkersGroup = function() { - var tooltipMarkersGroup = this.tooltipMarkersGroup; - if (tooltipMarkersGroup && !tooltipMarkersGroup.destroyed) { - tooltipMarkersGroup.clear(); - tooltipMarkersGroup.show(); - } else { - tooltipMarkersGroup = this.getGuideGroup().addGroup({ - name: "tooltipMarkersGroup" - }); - tooltipMarkersGroup.toFront(); - this.tooltipMarkersGroup = tooltipMarkersGroup; - } - return tooltipMarkersGroup; - }; - Tooltip5.prototype.getTooltipCrosshairsGroup = function() { - var tooltipCrosshairsGroup = this.tooltipCrosshairsGroup; - if (!tooltipCrosshairsGroup) { - tooltipCrosshairsGroup = this.getGuideGroup().addGroup({ - name: "tooltipCrosshairsGroup", - capture: false - }); - tooltipCrosshairsGroup.toBack(); - this.tooltipCrosshairsGroup = tooltipCrosshairsGroup; - } - return tooltipCrosshairsGroup; - }; - Tooltip5.prototype.findItemsFromView = function(view, point2) { - if (view.getOptions().tooltip === false) { - return []; - } - var tooltipCfg = this.getTooltipCfg(); - var result = findItemsFromView(view, point2, tooltipCfg); - for (var _i = 0, _a6 = view.views; _i < _a6.length; _i++) { - var childView = _a6[_i]; - result = result.concat(this.findItemsFromView(childView, point2)); - } - return result; - }; - Tooltip5.prototype.getViewWithGeometry = function(view) { - var _this = this; - if (view.geometries.length) { - return view; - } - return find_default(view.views, function(childView) { - return _this.getViewWithGeometry(childView); - }); - }; - Tooltip5.prototype.getItemsAfterProcess = function(originalItems) { - var customItems = this.getTooltipCfg().customItems; - var fn2 = customItems ? customItems : function(v3) { - return v3; - }; - return fn2(originalItems); - }; - return Tooltip5; -}(Controller); -var tooltip_default = Tooltip2; - -// node_modules/@antv/g2/esm/animate/animation/index.js -var ANIMATIONS_MAP = {}; -function getAnimation(type2) { - return ANIMATIONS_MAP[type2.toLowerCase()]; -} -function registerAnimation(type2, animation7) { - ANIMATIONS_MAP[type2.toLowerCase()] = animation7; -} - -// node_modules/@antv/g2/esm/animate/index.js -var DEFAULT_ANIMATE_CFG = { - appear: { - duration: 450, - easing: "easeQuadOut" - }, - update: { - duration: 400, - easing: "easeQuadInOut" - }, - enter: { - duration: 400, - easing: "easeQuadInOut" - }, - leave: { - duration: 350, - easing: "easeQuadIn" - } -}; -var GEOMETRY_ANIMATE_CFG = { - interval: function(coordinate11) { - return { - enter: { - animation: coordinate11.isRect ? coordinate11.isTransposed ? "scale-in-x" : "scale-in-y" : "fade-in" - }, - update: { - animation: coordinate11.isPolar && coordinate11.isTransposed ? "sector-path-update" : null - }, - leave: { - animation: "fade-out" - } - }; - }, - line: { - enter: { - animation: "fade-in" - }, - leave: { - animation: "fade-out" - } - }, - path: { - enter: { - animation: "fade-in" - }, - leave: { - animation: "fade-out" - } - }, - point: { - appear: { - animation: "zoom-in" - }, - enter: { - animation: "zoom-in" - }, - leave: { - animation: "zoom-out" - } - }, - area: { - enter: { - animation: "fade-in" - }, - leave: { - animation: "fade-out" - } - }, - polygon: { - enter: { - animation: "fade-in" - }, - leave: { - animation: "fade-out" - } - }, - schema: { - enter: { - animation: "fade-in" - }, - leave: { - animation: "fade-out" - } - }, - edge: { - enter: { - animation: "fade-in" - }, - leave: { - animation: "fade-out" - } - }, - label: { - appear: { - animation: "fade-in", - delay: 450 - }, - enter: { - animation: "fade-in" - }, - update: { - animation: "position-update" - }, - leave: { - animation: "fade-out" - } - } -}; -var GEOMETRY_GROUP_APPEAR_ANIMATION = { - line: function() { - return { - animation: "wave-in" - }; - }, - area: function() { - return { - animation: "wave-in" - }; - }, - path: function() { - return { - animation: "fade-in" - }; - }, - interval: function(coordinate11) { - var animation7; - if (coordinate11.isRect) { - animation7 = coordinate11.isTransposed ? "grow-in-x" : "grow-in-y"; - } else { - animation7 = "grow-in-xy"; - if (coordinate11.isPolar && coordinate11.isTransposed) { - animation7 = "wave-in"; - } - } - return { - animation: animation7 - }; - }, - schema: function(coordinate11) { - var animation7; - if (coordinate11.isRect) { - animation7 = coordinate11.isTransposed ? "grow-in-x" : "grow-in-y"; - } else { - animation7 = "grow-in-xy"; - } - return { - animation: animation7 - }; - }, - polygon: function() { - return { - animation: "fade-in", - duration: 500 - }; - }, - edge: function() { - return { - animation: "fade-in" - }; - } -}; -function parseAnimateConfig(animateCfg, data3) { - return { - delay: is_function_default(animateCfg.delay) ? animateCfg.delay(data3) : animateCfg.delay, - easing: is_function_default(animateCfg.easing) ? animateCfg.easing(data3) : animateCfg.easing, - duration: is_function_default(animateCfg.duration) ? animateCfg.duration(data3) : animateCfg.duration, - callback: animateCfg.callback, - repeat: animateCfg.repeat - }; -} -function getDefaultAnimateCfg(elementName, coordinate11, animateType) { - var animateCfg = GEOMETRY_ANIMATE_CFG[elementName]; - if (animateCfg) { - if (is_function_default(animateCfg)) { - animateCfg = animateCfg(coordinate11); - } - animateCfg = deep_mix_default({}, DEFAULT_ANIMATE_CFG, animateCfg); - if (animateType) { - return animateCfg[animateType]; - } - } - return animateCfg; -} -function doAnimate(shape, animateCfg, cfg) { - var data3 = get_default(shape.get("origin"), "data", FIELD_ORIGIN); - var animation7 = animateCfg.animation; - var parsedAnimateCfg = parseAnimateConfig(animateCfg, data3); - if (animation7) { - var animateFunction = getAnimation(animation7); - if (animateFunction) { - animateFunction(shape, parsedAnimateCfg, cfg); - } - } else { - shape.animate(cfg.toAttrs, parsedAnimateCfg); - } -} -function doGroupAppearAnimate(container2, animateCfg, geometryType, coordinate11, minYPoint) { - if (GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType]) { - var defaultCfg2 = GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType](coordinate11); - var animation7 = getAnimation(get_default(defaultCfg2, "animation", "")); - if (animation7) { - var cfg = __assign(__assign(__assign({}, DEFAULT_ANIMATE_CFG.appear), defaultCfg2), animateCfg); - container2.stopAnimate(); - animation7(container2, cfg, { - coordinate: coordinate11, - minYPoint, - toAttrs: null - }); - } - } -} - -// node_modules/@antv/g2/esm/geometry/shape/constant.js -var BACKGROUND_SHAPE = "element-background"; - -// node_modules/@antv/g2/esm/geometry/element/index.js -var Element3 = function(_super) { - __extends(Element4, _super); - function Element4(cfg) { - var _this = _super.call(this, cfg) || this; - _this.states = []; - var shapeFactory = cfg.shapeFactory, container2 = cfg.container, offscreenGroup = cfg.offscreenGroup, elementIndex = cfg.elementIndex, _a6 = cfg.visible, visible = _a6 === void 0 ? true : _a6; - _this.shapeFactory = shapeFactory; - _this.container = container2; - _this.offscreenGroup = offscreenGroup; - _this.visible = visible; - _this.elementIndex = elementIndex; - return _this; - } - Element4.prototype.draw = function(model, isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - this.model = model; - this.data = model.data; - this.shapeType = this.getShapeType(model); - this.drawShape(model, isUpdate); - if (this.visible === false) { - this.changeVisible(false); - } - }; - Element4.prototype.update = function(model) { - var _a6 = this, shapeFactory = _a6.shapeFactory, shape = _a6.shape; - if (!shape) { - return; - } - this.model = model; - this.data = model.data; - this.shapeType = this.getShapeType(model); - this.setShapeInfo(shape, model); - var offscreenGroup = this.getOffscreenGroup(); - var newShape = shapeFactory.drawShape(this.shapeType, model, offscreenGroup); - newShape.cfg.data = this.data; - newShape.cfg.origin = model; - newShape.cfg.element = this; - this.syncShapeStyle(shape, newShape, this.getStates(), this.getAnimateCfg("update")); - }; - Element4.prototype.destroy = function() { - var _a6 = this, shapeFactory = _a6.shapeFactory, shape = _a6.shape; - if (shape) { - var animateCfg = this.getAnimateCfg("leave"); - if (animateCfg) { - doAnimate(shape, animateCfg, { - coordinate: shapeFactory.coordinate, - toAttrs: __assign({}, shape.attr()) - }); - } else { - shape.remove(true); - } - } - this.states = []; - this.shapeFactory = void 0; - this.container = void 0; - this.shape = void 0; - this.animate = void 0; - this.geometry = void 0; - this.labelShape = void 0; - this.model = void 0; - this.data = void 0; - this.offscreenGroup = void 0; - this.statesStyle = void 0; - _super.prototype.destroy.call(this); - }; - Element4.prototype.changeVisible = function(visible) { - _super.prototype.changeVisible.call(this, visible); - if (visible) { - if (this.shape) { - this.shape.show(); - } - if (this.labelShape) { - this.labelShape.forEach(function(label17) { - label17.show(); - }); - } - } else { - if (this.shape) { - this.shape.hide(); - } - if (this.labelShape) { - this.labelShape.forEach(function(label17) { - label17.hide(); - }); - } - } - }; - Element4.prototype.setState = function(stateName, stateStatus) { - var _a6 = this, states = _a6.states, shapeFactory = _a6.shapeFactory, model = _a6.model, shape = _a6.shape, shapeType = _a6.shapeType; - var index2 = states.indexOf(stateName); - if (stateStatus) { - if (index2 > -1) { - return; - } - states.push(stateName); - if (stateName === "active" || stateName === "selected") { - shape === null || shape === void 0 ? void 0 : shape.toFront(); - } - } else { - if (index2 === -1) { - return; - } - states.splice(index2, 1); - if (stateName === "active" || stateName === "selected") { - var _b = this.geometry, sortZIndex = _b.sortZIndex, zIndexReversed = _b.zIndexReversed; - var idx = zIndexReversed ? this.geometry.elements.length - this.elementIndex : this.elementIndex; - sortZIndex ? shape.setZIndex(idx) : shape.set("zIndex", idx); - } - } - var offscreenShape = shapeFactory.drawShape(shapeType, model, this.getOffscreenGroup()); - if (states.length) { - this.syncShapeStyle(shape, offscreenShape, states, null); - } else { - this.syncShapeStyle(shape, offscreenShape, ["reset"], null); - } - offscreenShape.remove(true); - var eventObject = { - state: stateName, - stateStatus, - element: this, - target: this.container - }; - this.container.emit("statechange", eventObject); - propagationDelegate(this.shape, "statechange", eventObject); - }; - Element4.prototype.clearStates = function() { - var _this = this; - var states = this.states; - each_default(states, function(state2) { - _this.setState(state2, false); - }); - this.states = []; - }; - Element4.prototype.hasState = function(stateName) { - return this.states.includes(stateName); - }; - Element4.prototype.getStates = function() { - return this.states; - }; - Element4.prototype.getData = function() { - return this.data; - }; - Element4.prototype.getModel = function() { - return this.model; - }; - Element4.prototype.getBBox = function() { - var _a6 = this, shape = _a6.shape, labelShape = _a6.labelShape; - var bbox = { - x: 0, - y: 0, - minX: 0, - minY: 0, - maxX: 0, - maxY: 0, - width: 0, - height: 0 - }; - if (shape) { - bbox = shape.getCanvasBBox(); - } - if (labelShape) { - labelShape.forEach(function(label17) { - var labelBBox = label17.getCanvasBBox(); - bbox.x = Math.min(labelBBox.x, bbox.x); - bbox.y = Math.min(labelBBox.y, bbox.y); - bbox.minX = Math.min(labelBBox.minX, bbox.minX); - bbox.minY = Math.min(labelBBox.minY, bbox.minY); - bbox.maxX = Math.max(labelBBox.maxX, bbox.maxX); - bbox.maxY = Math.max(labelBBox.maxY, bbox.maxY); - }); - } - bbox.width = bbox.maxX - bbox.minX; - bbox.height = bbox.maxY - bbox.minY; - return bbox; - }; - Element4.prototype.getStatesStyle = function() { - if (!this.statesStyle) { - var _a6 = this, shapeType = _a6.shapeType, geometry35 = _a6.geometry, shapeFactory = _a6.shapeFactory; - var stateOption = geometry35.stateOption; - var defaultShapeType = shapeFactory.defaultShapeType; - var stateTheme = shapeFactory.theme[shapeType] || shapeFactory.theme[defaultShapeType]; - this.statesStyle = deep_mix_default({}, stateTheme, stateOption); - } - return this.statesStyle; - }; - Element4.prototype.getStateStyle = function(stateName, shapeKey) { - var statesStyle = this.getStatesStyle(); - var stateCfg = get_default(statesStyle, [stateName, "style"], {}); - var shapeStyle = stateCfg[shapeKey] || stateCfg; - if (is_function_default(shapeStyle)) { - return shapeStyle(this); - } - return shapeStyle; - }; - Element4.prototype.getAnimateCfg = function(animateType) { - var _this = this; - var animate = this.animate; - if (animate) { - var cfg_1 = animate[animateType]; - if (cfg_1) { - return __assign(__assign({}, cfg_1), { callback: function() { - var _a6; - is_function_default(cfg_1.callback) && cfg_1.callback(); - (_a6 = _this.geometry) === null || _a6 === void 0 ? void 0 : _a6.emit(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE); - } }); - } - return cfg_1; - } - return null; - }; - Element4.prototype.drawShape = function(model, isUpdate) { - var _a6; - if (isUpdate === void 0) { - isUpdate = false; - } - var _b = this, shapeFactory = _b.shapeFactory, container2 = _b.container, shapeType = _b.shapeType; - this.shape = shapeFactory.drawShape(shapeType, model, container2); - if (this.shape) { - this.setShapeInfo(this.shape, model); - var name_1 = this.shape.cfg.name; - if (!name_1) { - this.shape.cfg.name = ["element", this.shapeFactory.geometryType]; - } else if (is_string_default(name_1)) { - this.shape.cfg.name = ["element", name_1]; - } - var animateType = isUpdate ? "enter" : "appear"; - var animateCfg = this.getAnimateCfg(animateType); - if (animateCfg) { - (_a6 = this.geometry) === null || _a6 === void 0 ? void 0 : _a6.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_DRAW_ANIMATE); - doAnimate(this.shape, animateCfg, { - coordinate: shapeFactory.coordinate, - toAttrs: __assign({}, this.shape.attr()) - }); - } - } - }; - Element4.prototype.getOffscreenGroup = function() { - if (!this.offscreenGroup) { - var GroupCtor = this.container.getGroupBase(); - this.offscreenGroup = new GroupCtor({}); - } - return this.offscreenGroup; - }; - Element4.prototype.setShapeInfo = function(shape, data3) { - var _this = this; - shape.cfg.origin = data3; - shape.cfg.element = this; - if (shape.isGroup()) { - var children = shape.get("children"); - children.forEach(function(child) { - _this.setShapeInfo(child, data3); - }); - } - }; - Element4.prototype.syncShapeStyle = function(sourceShape, targetShape, states, animateCfg, index2) { - var _this = this; - var _a6; - if (states === void 0) { - states = []; - } - if (index2 === void 0) { - index2 = 0; - } - if (!sourceShape || !targetShape) { - return; - } - var clip = sourceShape.get("clipShape"); - var newClip = targetShape.get("clipShape"); - this.syncShapeStyle(clip, newClip, states, animateCfg); - if (sourceShape.isGroup()) { - var children = sourceShape.get("children"); - var newChildren = targetShape.get("children"); - for (var i4 = 0; i4 < children.length; i4++) { - this.syncShapeStyle(children[i4], newChildren[i4], states, animateCfg, index2 + i4); - } - } else { - if (!is_empty_default(states) && !is_equal_default(states, ["reset"])) { - var name_2 = sourceShape.get("name"); - if (is_array_default(name_2)) { - name_2 = name_2[1]; - } - each_default(states, function(state2) { - if (targetShape.get("name") !== BACKGROUND_SHAPE) { - var style = _this.getStateStyle(state2, name_2 || index2); - targetShape.attr(style); - } - }); - } - var newAttrs = getReplaceAttrs(sourceShape, targetShape); - if (this.animate) { - if (animateCfg) { - (_a6 = this.geometry) === null || _a6 === void 0 ? void 0 : _a6.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_DRAW_ANIMATE); - doAnimate(sourceShape, animateCfg, { - coordinate: this.shapeFactory.coordinate, - toAttrs: newAttrs, - shapeModel: this.model - }); - } else if (!is_empty_default(states)) { - sourceShape.stopAnimate(); - sourceShape.animate(newAttrs, { - duration: 300 - }); - } else { - sourceShape.attr(newAttrs); - } - } else { - sourceShape.attr(newAttrs); - } - } - }; - Element4.prototype.getShapeType = function(model) { - var shape = get_default(model, "shape"); - return is_array_default(shape) ? shape[0] : shape; - }; - return Element4; -}(base_default); -var element_default2 = Element3; - -// node_modules/@antv/g2/esm/geometry/label/index.js -var GEOMETRY_LABELS_MAP = {}; -var GEOMETRY_LABELS_LAYOUT_MAP = {}; -function getGeometryLabel(type2) { - return GEOMETRY_LABELS_MAP[type2.toLowerCase()]; -} -function registerGeometryLabel(type2, ctor) { - GEOMETRY_LABELS_MAP[type2.toLowerCase()] = ctor; -} -function getGeometryLabelLayout(type2) { - return GEOMETRY_LABELS_LAYOUT_MAP[type2.toLowerCase()]; -} -function registerGeometryLabelLayout(type2, layoutFn) { - GEOMETRY_LABELS_LAYOUT_MAP[type2.toLowerCase()] = layoutFn; -} - -// node_modules/@antv/g2/esm/geometry/shape/base.js -var ShapeFactoryBase = { - coordinate: null, - defaultShapeType: null, - theme: null, - getShapePoints: function(shapeType, shapePoint) { - var shape = this.getShape(shapeType); - if (shape.getPoints) { - return shape.getPoints(shapePoint); - } - return this.getDefaultPoints(shapePoint); - }, - getShape: function(shapeType) { - var shape = this[shapeType] || this[this.defaultShapeType]; - shape.coordinate = this.coordinate; - return shape; - }, - getDefaultPoints: function() { - return []; - }, - getDefaultStyle: function(geometryTheme) { - return get_default(geometryTheme, [this.defaultShapeType, "default", "style"], {}); - }, - getMarker: function(shapeType, markerCfg) { - var shape = this.getShape(shapeType); - if (!shape.getMarker) { - var defaultShapeType = this.defaultShapeType; - shape = this.getShape(defaultShapeType); - } - var theme4 = this.theme; - var shapeStyle = get_default(theme4, [shapeType, "default"], {}); - var markerStyle = shape.getMarker(markerCfg); - return deep_mix_default({}, shapeStyle, markerStyle); - }, - drawShape: function(shapeType, cfg, container2) { - var shape = this.getShape(shapeType); - return shape.draw(cfg, container2); - } -}; -var ShapeBase = { - coordinate: null, - parsePath: function(path) { - var coordinate11 = this.coordinate; - var parsedPath = parsePathString2(path); - if (coordinate11.isPolar) { - parsedPath = convertPolarPath(coordinate11, parsedPath); - } else { - parsedPath = convertNormalPath(coordinate11, parsedPath); - } - return parsedPath; - }, - parsePoint: function(point2) { - var coordinate11 = this.coordinate; - return coordinate11.convert(point2); - }, - parsePoints: function(points) { - var coordinate11 = this.coordinate; - return points.map(function(point2) { - return coordinate11.convert(point2); - }); - }, - draw: function(cfg, container2) { - } -}; -var ShapeFactoryMap = {}; -function registerShapeFactory(factoryName, cfg) { - var className = upper_first_default(factoryName); - var geomObj = __assign(__assign(__assign({}, ShapeFactoryBase), cfg), { geometryType: factoryName }); - ShapeFactoryMap[className] = geomObj; - return geomObj; -} -function registerShape(factoryName, shapeType, cfg) { - var className = upper_first_default(factoryName); - var factory = ShapeFactoryMap[className]; - var shapeObj = __assign(__assign({}, ShapeBase), cfg); - factory[shapeType] = shapeObj; - return shapeObj; -} -function getShapeFactory(factoryName) { - var className = upper_first_default(factoryName); - return ShapeFactoryMap[className]; -} - -// node_modules/@antv/g2/esm/geometry/util/group-data.js -function group(data3, fields, appendConditions) { - if (appendConditions === void 0) { - appendConditions = {}; - } - if (!fields) { - return [data3]; - } - var groups = groupToMap(data3, fields); - var array = []; - if (fields.length === 1 && appendConditions[fields[0]]) { - var values2 = appendConditions[fields[0]]; - for (var _i = 0, values_1 = values2; _i < values_1.length; _i++) { - var value2 = values_1[_i]; - var arr = groups["_".concat(value2)]; - if (arr) { - array.push(arr); - } - } - } else { - for (var k4 in groups) { - if (groups.hasOwnProperty(k4)) { - var eachGroup = groups[k4]; - array.push(eachGroup); - } - } - } - return array; -} - -// node_modules/@antv/g2/esm/geometry/util/is-model-change.js -function isModelChange(currentModel, preModel) { - return some_default(["color", "shape", "size", "x", "y", "isInCircle", "data", "style", "defaultStyle", "points", "mappingData"], function(key) { - return !is_equal_default(currentModel[key], preModel[key]); - }); -} - -// node_modules/@antv/g2/esm/geometry/util/parse-fields.js -function parseFields(field6) { - if (is_array_default(field6)) { - return field6; - } - return field6.split("*"); -} - -// node_modules/@antv/g2/esm/geometry/util/diff.js -function diff(keyItem, keys2) { - var added = []; - var updated = []; - var removed = []; - var keyIncluded = new Map(); - for (var i4 = 0; i4 < keys2.length; i4++) { - var key = keys2[i4]; - if (keyItem[key]) - updated.push(key); - else - added.push(key); - keyIncluded.set(key, true); - } - Object.keys(keyItem).forEach(function(key2) { - if (!keyIncluded.has(key2)) - removed.push(key2); - }); - return { - added, - updated, - removed - }; -} - -// node_modules/@antv/g2/esm/geometry/base.js -function filterLabelsById(id, labelsMap) { - var labels = []; - each_default(labelsMap, function(label17, labelId) { - var elementId = labelId.split(" ")[0]; - if (elementId === id) { - labels.push(label17); - } - }); - return labels; -} -var Geometry = function(_super) { - __extends(Geometry3, _super); - function Geometry3(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "base"; - _this.attributes = {}; - _this.elements = []; - _this.elementsMap = {}; - _this.animateOption = true; - _this.attributeOption = {}; - _this.lastElementsMap = {}; - _this.generatePoints = false; - _this.beforeMappingData = null; - _this.adjusts = {}; - _this.idFields = []; - _this.hasSorted = false; - _this.isCoordinateChanged = false; - var container2 = cfg.container, labelsContainer = cfg.labelsContainer, coordinate11 = cfg.coordinate, data3 = cfg.data, _a6 = cfg.sortable, sortable = _a6 === void 0 ? false : _a6, _b = cfg.visible, visible = _b === void 0 ? true : _b, theme4 = cfg.theme, _c = cfg.scales, scales = _c === void 0 ? {} : _c, _d = cfg.scaleDefs, scaleDefs = _d === void 0 ? {} : _d, intervalPadding = cfg.intervalPadding, dodgePadding = cfg.dodgePadding, maxColumnWidth = cfg.maxColumnWidth, minColumnWidth = cfg.minColumnWidth, columnWidthRatio = cfg.columnWidthRatio, roseWidthRatio = cfg.roseWidthRatio, multiplePieWidthRatio = cfg.multiplePieWidthRatio, zIndexReversed = cfg.zIndexReversed, sortZIndex = cfg.sortZIndex; - _this.container = container2; - _this.labelsContainer = labelsContainer; - _this.coordinate = coordinate11; - _this.data = data3; - _this.sortable = sortable; - _this.visible = visible; - _this.userTheme = theme4; - _this.scales = scales; - _this.scaleDefs = scaleDefs; - _this.intervalPadding = intervalPadding; - _this.dodgePadding = dodgePadding; - _this.maxColumnWidth = maxColumnWidth; - _this.minColumnWidth = minColumnWidth; - _this.columnWidthRatio = columnWidthRatio; - _this.roseWidthRatio = roseWidthRatio; - _this.multiplePieWidthRatio = multiplePieWidthRatio; - _this.zIndexReversed = zIndexReversed; - _this.sortZIndex = sortZIndex; - return _this; - } - Geometry3.prototype.position = function(cfg) { - var positionCfg = cfg; - if (!is_plain_object_default(cfg)) { - positionCfg = { - fields: parseFields(cfg) - }; - } - var fields = get_default(positionCfg, "fields"); - if (fields.length === 1) { - fields.unshift("1"); - set_default(positionCfg, "fields", fields); - } - set_default(this.attributeOption, "position", positionCfg); - return this; - }; - Geometry3.prototype.color = function(field6, cfg) { - this.createAttrOption("color", field6, cfg); - return this; - }; - Geometry3.prototype.shape = function(field6, cfg) { - this.createAttrOption("shape", field6, cfg); - return this; - }; - Geometry3.prototype.size = function(field6, cfg) { - this.createAttrOption("size", field6, cfg); - return this; - }; - Geometry3.prototype.adjust = function(adjustCfg2) { - var adjusts = adjustCfg2; - if (is_string_default(adjustCfg2) || is_plain_object_default(adjustCfg2)) { - adjusts = [adjustCfg2]; - } - each_default(adjusts, function(adjust4, index2) { - if (!is_object_default(adjust4)) { - adjusts[index2] = { type: adjust4 }; - } - }); - this.adjustOption = adjusts; - return this; - }; - Geometry3.prototype.style = function(field6, styleFunc) { - if (is_string_default(field6)) { - var fields = parseFields(field6); - this.styleOption = { - fields, - callback: styleFunc - }; - } else { - var _a6 = field6, fields = _a6.fields, callback = _a6.callback, cfg = _a6.cfg; - if (fields || callback || cfg) { - this.styleOption = field6; - } else { - this.styleOption = { - cfg: field6 - }; - } - } - return this; - }; - Geometry3.prototype.tooltip = function(field6, cfg) { - if (is_string_default(field6)) { - var fields = parseFields(field6); - this.tooltipOption = { - fields, - callback: cfg - }; - } else { - this.tooltipOption = field6; - } - return this; - }; - Geometry3.prototype.animate = function(cfg) { - this.animateOption = cfg; - return this; - }; - Geometry3.prototype.label = function(field6, secondParam, thirdParam) { - if (is_string_default(field6)) { - var labelOption = {}; - var fields = parseFields(field6); - labelOption.fields = fields; - if (is_function_default(secondParam)) { - labelOption.callback = secondParam; - } else if (is_plain_object_default(secondParam)) { - labelOption.cfg = secondParam; - } - if (thirdParam) { - labelOption.cfg = thirdParam; - } - this.labelOption = labelOption; - } else { - this.labelOption = field6; - } - return this; - }; - Geometry3.prototype.state = function(cfg) { - this.stateOption = cfg; - return this; - }; - Geometry3.prototype.customInfo = function(cfg) { - this.customOption = cfg; - return this; - }; - Geometry3.prototype.init = function(cfg) { - if (cfg === void 0) { - cfg = {}; - } - this.setCfg(cfg); - this.initAttributes(); - this.processData(this.data); - this.adjustScale(); - }; - Geometry3.prototype.update = function(cfg) { - if (cfg === void 0) { - cfg = {}; - } - var data3 = cfg.data, isDataChanged = cfg.isDataChanged, isCoordinateChanged = cfg.isCoordinateChanged; - var _a6 = this, attributeOption = _a6.attributeOption, lastAttributeOption = _a6.lastAttributeOption; - if (!is_equal_default(attributeOption, lastAttributeOption)) { - this.init(cfg); - } else if (data3 && (isDataChanged || !is_equal_default(data3, this.data))) { - this.setCfg(cfg); - this.initAttributes(); - this.processData(data3); - } else { - this.setCfg(cfg); - } - this.adjustScale(); - this.isCoordinateChanged = isCoordinateChanged; - }; - Geometry3.prototype.paint = function(isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - if (this.animateOption) { - this.animateOption = deep_mix_default({}, getDefaultAnimateCfg(this.type, this.coordinate), this.animateOption); - } - this.defaultSize = void 0; - this.elementsMap = {}; - this.elements = []; - var offscreenGroup = this.getOffscreenGroup(); - offscreenGroup.clear(); - var beforeMappingData = this.beforeMappingData; - var dataArray = this.beforeMapping(beforeMappingData); - this.dataArray = new Array(dataArray.length); - for (var i4 = 0; i4 < dataArray.length; i4++) { - var data3 = dataArray[i4]; - this.dataArray[i4] = this.mapping(data3); - } - this.updateElements(this.dataArray, isUpdate); - this.lastElementsMap = this.elementsMap; - if (this.canDoGroupAnimation(isUpdate)) { - var container2 = this.container; - var type2 = this.type; - var coordinate11 = this.coordinate; - var animateCfg = get_default(this.animateOption, "appear"); - var yScale = this.getYScale(); - var yMinPoint = coordinate11.convert({ - x: 0, - y: yScale.scale(this.getYMinValue()) - }); - doGroupAppearAnimate(container2, animateCfg, type2, coordinate11, yMinPoint); - } - if (this.labelOption) { - this.renderLabels(flatten_default(this.dataArray), isUpdate); - } - this.lastAttributeOption = __assign({}, this.attributeOption); - if (this.visible === false) { - this.changeVisible(false); - } - }; - Geometry3.prototype.clear = function() { - var _a6 = this, container2 = _a6.container, geometryLabel = _a6.geometryLabel, offscreenGroup = _a6.offscreenGroup; - if (container2) { - container2.clear(); - } - if (geometryLabel) { - geometryLabel.clear(); - } - if (offscreenGroup) { - offscreenGroup.clear(); - } - this.scaleDefs = void 0; - this.attributes = {}; - this.scales = {}; - this.elementsMap = {}; - this.lastElementsMap = {}; - this.elements = []; - this.adjusts = {}; - this.dataArray = null; - this.beforeMappingData = null; - this.lastAttributeOption = void 0; - this.defaultSize = void 0; - this.idFields = []; - this.groupScales = void 0; - this.hasSorted = false; - this.isCoordinateChanged = false; - }; - Geometry3.prototype.destroy = function() { - this.clear(); - var container2 = this.container; - container2.remove(true); - if (this.offscreenGroup) { - this.offscreenGroup.remove(true); - this.offscreenGroup = null; - } - if (this.geometryLabel) { - this.geometryLabel.destroy(); - this.geometryLabel = null; - } - this.theme = void 0; - this.shapeFactory = void 0; - _super.prototype.destroy.call(this); - }; - Geometry3.prototype.getGroupScales = function() { - return this.groupScales; - }; - Geometry3.prototype.getAttribute = function(name) { - return this.attributes[name]; - }; - Geometry3.prototype.getXScale = function() { - return this.getAttribute("position").scales[0]; - }; - Geometry3.prototype.getYScale = function() { - return this.getAttribute("position").scales[1]; - }; - Geometry3.prototype.getGroupAttributes = function() { - var rst = []; - each_default(this.attributes, function(attr) { - if (GROUP_ATTRS.includes(attr.type)) { - rst.push(attr); - } - }); - return rst; - }; - Geometry3.prototype.getDefaultValue = function(attrName) { - var value2; - var attr = this.getAttribute(attrName); - if (attr && is_empty_default(attr.scales)) { - value2 = attr.values[0]; - } - return value2; - }; - Geometry3.prototype.getAttributeValues = function(attr, obj) { - var params = []; - var scales = attr.scales; - for (var index2 = 0, length_1 = scales.length; index2 < length_1; index2++) { - var scale12 = scales[index2]; - var field6 = scale12.field; - if (scale12.isIdentity) { - params.push(scale12.values); - } else { - params.push(obj[field6]); - } - } - return attr.mapping.apply(attr, params); - }; - Geometry3.prototype.getAdjust = function(adjustType) { - return this.adjusts[adjustType]; - }; - Geometry3.prototype.getCoordinate = function() { - return this.coordinate; - }; - Geometry3.prototype.getData = function() { - return this.data; - }; - Geometry3.prototype.getShapeMarker = function(shapeName, cfg) { - var shapeFactory = this.getShapeFactory(); - return shapeFactory.getMarker(shapeName, cfg); - }; - Geometry3.prototype.getElementsBy = function(condition) { - return this.elements.filter(function(element) { - return condition(element); - }); - }; - Geometry3.prototype.getElements = function() { - return this.elements; - }; - Geometry3.prototype.getElementId = function(data3) { - data3 = is_array_default(data3) ? data3[0] : data3; - var originData = data3[FIELD_ORIGIN]; - if (this.idFields.length) { - var elementId = originData[this.idFields[0]]; - for (var index2 = 1; index2 < this.idFields.length; index2++) { - elementId += "-" + originData[this.idFields[index2]]; - } - return elementId; - } - var type2 = this.type; - var xScale = this.getXScale(); - var yScale = this.getYScale(); - var xField = xScale.field || "x"; - var yField = yScale.field || "y"; - var yVal = originData[yField]; - var xVal; - if (xScale.type === "identity") { - xVal = xScale.values[0]; - } else { - xVal = originData[xField]; - } - var id; - if (type2 === "interval" || type2 === "schema") { - id = "".concat(xVal); - } else if (type2 === "line" || type2 === "area" || type2 === "path") { - id = type2; - } else { - id = "".concat(xVal, "-").concat(yVal); - } - var groupScales = this.groupScales; - if (is_empty_default(groupScales)) { - groupScales = get_default(this.getAttribute("color"), "scales", []); - } - for (var index2 = 0, length_2 = groupScales.length; index2 < length_2; index2++) { - var groupScale = groupScales[index2]; - var field6 = groupScale.field; - id = "".concat(id, "-").concat(originData[field6]); - } - var dodgeAdjust = this.getAdjust("dodge"); - if (dodgeAdjust) { - var dodgeBy = dodgeAdjust.dodgeBy; - if (dodgeBy) { - id = "".concat(id, "-").concat(originData[dodgeBy]); - } - } - if (this.getAdjust("jitter")) { - id = "".concat(id, "-").concat(data3.x, "-").concat(data3.y); - } - return id; - }; - Geometry3.prototype.getScaleFields = function() { - var fields = []; - var tmpMap = new Map(); - var _a6 = this, attributeOption = _a6.attributeOption, labelOption = _a6.labelOption, tooltipOption = _a6.tooltipOption; - for (var attributeType in attributeOption) { - if (attributeOption.hasOwnProperty(attributeType)) { - var eachOpt = attributeOption[attributeType]; - if (eachOpt.fields) { - uniq2(eachOpt.fields, fields, tmpMap); - } else if (eachOpt.values) { - uniq2(eachOpt.values, fields, tmpMap); - } - } - } - if (labelOption && labelOption.fields) { - uniq2(labelOption.fields, fields, tmpMap); - } - if (is_object_default(tooltipOption) && tooltipOption.fields) { - uniq2(tooltipOption.fields, fields, tmpMap); - } - return fields; - }; - Geometry3.prototype.changeVisible = function(visible) { - _super.prototype.changeVisible.call(this, visible); - var elements = this.elements; - for (var index2 = 0, length_3 = elements.length; index2 < length_3; index2++) { - var element = elements[index2]; - element.changeVisible(visible); - } - if (visible) { - if (this.container) { - this.container.show(); - } - if (this.labelsContainer) { - this.labelsContainer.show(); - } - } else { - if (this.container) { - this.container.hide(); - } - if (this.labelsContainer) { - this.labelsContainer.hide(); - } - } - }; - Geometry3.prototype.getFields = function() { - var uniqMap = new Map(); - var fields = []; - Object.values(this.attributeOption).forEach(function(cfg) { - var fs = (cfg === null || cfg === void 0 ? void 0 : cfg.fields) || []; - fs.forEach(function(f3) { - if (!uniqMap.has(f3)) { - fields.push(f3); - } - uniqMap.set(f3, true); - }); - }, []); - return fields; - }; - Geometry3.prototype.getGroupFields = function() { - var groupFields = []; - var tmpMap = new Map(); - for (var index2 = 0, length_4 = GROUP_ATTRS.length; index2 < length_4; index2++) { - var attributeName = GROUP_ATTRS[index2]; - var cfg = this.attributeOption[attributeName]; - if (cfg && cfg.fields) { - uniq2(cfg.fields, groupFields, tmpMap); - } - } - return groupFields; - }; - Geometry3.prototype.getXYFields = function() { - var _a6 = this.attributeOption.position.fields, x6 = _a6[0], y5 = _a6[1]; - return [x6, y5]; - }; - Geometry3.prototype.getXField = function() { - return get_default(this.getXYFields(), [0]); - }; - Geometry3.prototype.getYField = function() { - return get_default(this.getXYFields(), [1]); - }; - Geometry3.prototype.getShapes = function() { - return this.elements.map(function(element) { - return element.shape; - }); - }; - Geometry3.prototype.getOffscreenGroup = function() { - if (!this.offscreenGroup) { - var GroupCtor = this.container.getGroupBase(); - this.offscreenGroup = new GroupCtor({}); - } - return this.offscreenGroup; - }; - Geometry3.prototype.sort = function(mappingArray) { - if (!this.hasSorted) { - var xScale_1 = this.getXScale(); - var xField_1 = xScale_1.field; - for (var index2 = 0; index2 < mappingArray.length; index2++) { - var itemArr = mappingArray[index2]; - itemArr.sort(function(obj1, obj2) { - return xScale_1.translate(obj1[FIELD_ORIGIN][xField_1]) - xScale_1.translate(obj2[FIELD_ORIGIN][xField_1]); - }); - } - } - this.hasSorted = true; - }; - Geometry3.prototype.adjustScale = function() { - var yScale = this.getYScale(); - if (yScale && this.getAdjust("stack")) { - this.updateStackRange(yScale, this.beforeMappingData); - } - }; - Geometry3.prototype.getShapeFactory = function() { - var shapeType = this.shapeType; - if (!getShapeFactory(shapeType)) { - return; - } - if (!this.shapeFactory) { - this.shapeFactory = clone_default(getShapeFactory(shapeType)); - } - this.shapeFactory.coordinate = this.coordinate; - this.shapeFactory.theme = this.theme.geometries[shapeType] || {}; - return this.shapeFactory; - }; - Geometry3.prototype.createShapePointsCfg = function(obj) { - var xScale = this.getXScale(); - var yScale = this.getYScale(); - var x6 = this.normalizeValues(obj[xScale.field], xScale); - var y5; - if (yScale) { - y5 = this.normalizeValues(obj[yScale.field], yScale); - } else { - y5 = obj.y ? obj.y : 0.1; - } - return { - x: x6, - y: y5, - y0: yScale ? yScale.scale(this.getYMinValue()) : void 0 - }; - }; - Geometry3.prototype.createElement = function(mappingDatum, index2, isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - var container2 = this.container; - var shapeCfg = this.getDrawCfg(mappingDatum); - var shapeFactory = this.getShapeFactory(); - var element = new element_default2({ - shapeFactory, - container: container2, - offscreenGroup: this.getOffscreenGroup(), - elementIndex: index2 - }); - element.animate = this.animateOption; - element.geometry = this; - element.draw(shapeCfg, isUpdate); - return element; - }; - Geometry3.prototype.getDrawCfg = function(mappingDatum) { - var originData = mappingDatum[FIELD_ORIGIN]; - var cfg = { - mappingData: mappingDatum, - data: originData, - x: mappingDatum.x, - y: mappingDatum.y, - color: mappingDatum.color, - size: mappingDatum.size, - isInCircle: this.coordinate.isPolar, - customInfo: this.customOption - }; - var shapeName = mappingDatum.shape; - if (!shapeName && this.getShapeFactory()) { - shapeName = this.getShapeFactory().defaultShapeType; - } - cfg.shape = shapeName; - var theme4 = this.theme.geometries[this.shapeType]; - cfg.defaultStyle = get_default(theme4, [shapeName, "default"], {}).style; - if (!cfg.defaultStyle && this.getShapeFactory()) { - cfg.defaultStyle = this.getShapeFactory().getDefaultStyle(theme4); - } - var styleOption = this.styleOption; - if (styleOption) { - cfg.style = this.getStyleCfg(styleOption, originData); - } - if (this.generatePoints) { - cfg.points = mappingDatum.points; - cfg.nextPoints = mappingDatum.nextPoints; - } - return cfg; - }; - Geometry3.prototype.updateElements = function(mappingDataArray, isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - var keyDatum = new Map(); - var keys2 = []; - var keyIndex = new Map(); - var index2 = 0; - for (var i4 = 0; i4 < mappingDataArray.length; i4++) { - var mappingData = mappingDataArray[i4]; - for (var j4 = 0; j4 < mappingData.length; j4++) { - var mappingDatum = mappingData[j4]; - var key = this.getElementId(mappingDatum); - var finalKey = keyDatum.has(key) ? "".concat(key, "-").concat(i4, "-").concat(j4) : key; - keys2.push(finalKey); - keyDatum.set(finalKey, mappingDatum); - keyIndex.set(finalKey, index2); - index2++; - } - } - this.elements = new Array(index2); - var _a6 = diff(this.lastElementsMap, keys2), added = _a6.added, updated = _a6.updated, removed = _a6.removed; - for (var _i = 0, added_1 = added; _i < added_1.length; _i++) { - var key = added_1[_i]; - var mappingDatum = keyDatum.get(key); - var i4 = keyIndex.get(key); - var element = this.createElement(mappingDatum, i4, isUpdate); - this.elements[i4] = element; - this.elementsMap[key] = element; - if (element.shape) { - element.shape.set("zIndex", this.zIndexReversed ? this.elements.length - i4 : i4); - } - } - for (var _b = 0, updated_1 = updated; _b < updated_1.length; _b++) { - var key = updated_1[_b]; - var element = this.lastElementsMap[key]; - var mappingDatum = keyDatum.get(key); - var currentShapeCfg = this.getDrawCfg(mappingDatum); - var preShapeCfg = element.getModel(); - var i4 = keyIndex.get(key); - if (this.isCoordinateChanged || isModelChange(currentShapeCfg, preShapeCfg)) { - element.animate = this.animateOption; - element.update(currentShapeCfg); - } - this.elements[i4] = element; - this.elementsMap[key] = element; - if (element.shape) { - element.shape.set("zIndex", this.zIndexReversed ? this.elements.length - i4 : i4); - } - } - if (this.container) { - this.container.sort(); - } - for (var _c = 0, removed_1 = removed; _c < removed_1.length; _c++) { - var key = removed_1[_c]; - var element = this.lastElementsMap[key]; - element.animate = this.animateOption; - element.destroy(); - } - }; - Geometry3.prototype.getLabelType = function() { - var _a6 = this, labelOption = _a6.labelOption, coordinate11 = _a6.coordinate, type2 = _a6.type; - var coordinateType = coordinate11.type, isTransposed = coordinate11.isTransposed; - var labelType = get_default(labelOption, ["cfg", "type"]); - if (!labelType) { - if (coordinateType === "polar") { - labelType = isTransposed ? "pie" : "polar"; - } else if (coordinateType === "theta") { - labelType = "pie"; - } else if (type2 === "interval" || type2 === "polygon") { - labelType = "interval"; - } else { - labelType = "base"; - } - } - return labelType; - }; - Geometry3.prototype.getYMinValue = function() { - var yScale = this.getYScale(); - var min7 = yScale.min, max8 = yScale.max; - var value2; - if (min7 >= 0) { - value2 = min7; - } else if (max8 <= 0) { - value2 = max8; - } else { - value2 = 0; - } - return value2; - }; - Geometry3.prototype.createAttrOption = function(attrName, field6, cfg) { - if (is_nil_default(field6) || is_object_default(field6)) { - if (is_object_default(field6) && is_equal_default(Object.keys(field6), ["values"])) { - set_default(this.attributeOption, attrName, { - fields: field6.values - }); - } else { - set_default(this.attributeOption, attrName, field6); - } - } else { - var attrCfg = {}; - if (is_number_default(field6)) { - attrCfg.values = [field6]; - } else { - attrCfg.fields = parseFields(field6); - } - if (cfg) { - if (is_function_default(cfg)) { - attrCfg.callback = cfg; - } else { - attrCfg.values = cfg; - } - } - set_default(this.attributeOption, attrName, attrCfg); - } - }; - Geometry3.prototype.initAttributes = function() { - var _this = this; - var _a6 = this, attributes = _a6.attributes, attributeOption = _a6.attributeOption, theme4 = _a6.theme, shapeType = _a6.shapeType; - this.groupScales = []; - var tmpMap = {}; - var _loop_1 = function(attrType2) { - if (attributeOption.hasOwnProperty(attrType2)) { - var option = attributeOption[attrType2]; - if (!option) { - return { value: void 0 }; - } - var attrCfg = __assign({}, option); - var callback = attrCfg.callback, values2 = attrCfg.values, _b = attrCfg.fields, fields = _b === void 0 ? [] : _b; - var scales = fields.map(function(field6) { - var scale12 = _this.scales[field6]; - if (scale12.isCategory && !tmpMap[field6] && GROUP_ATTRS.includes(attrType2)) { - _this.groupScales.push(scale12); - tmpMap[field6] = true; - } - return scale12; - }); - attrCfg.scales = scales; - if (attrType2 !== "position" && scales.length === 1 && scales[0].type === "identity") { - attrCfg.values = scales[0].values; - } else if (!callback && !values2) { - if (attrType2 === "size") { - attrCfg.values = theme4.sizes; - } else if (attrType2 === "shape") { - attrCfg.values = theme4.shapes[shapeType] || []; - } else if (attrType2 === "color") { - if (scales.length) { - attrCfg.values = scales[0].values.length <= 10 ? theme4.colors10 : theme4.colors20; - } else { - attrCfg.values = theme4.colors10; - } - } - } - var AttributeCtor = getAttribute(attrType2); - attributes[attrType2] = new AttributeCtor(attrCfg); - } - }; - for (var attrType in attributeOption) { - var state_1 = _loop_1(attrType); - if (typeof state_1 === "object") - return state_1.value; - } - }; - Geometry3.prototype.processData = function(data3) { - this.hasSorted = false; - var scales = this.getAttribute("position").scales; - var categoryScales = scales.filter(function(scale13) { - return scale13.isCategory; - }); - var groupedArray = this.groupData(data3); - var beforeAdjust = []; - for (var i4 = 0, len5 = groupedArray.length; i4 < len5; i4++) { - var subData = groupedArray[i4]; - var arr = []; - for (var j4 = 0, subLen = subData.length; j4 < subLen; j4++) { - var originData = subData[j4]; - var item = {}; - for (var k4 in originData) { - item[k4] = originData[k4]; - } - item[FIELD_ORIGIN] = originData; - for (var _i = 0, categoryScales_1 = categoryScales; _i < categoryScales_1.length; _i++) { - var scale12 = categoryScales_1[_i]; - var field6 = scale12.field; - item[field6] = scale12.translate(item[field6]); - } - arr.push(item); - } - beforeAdjust.push(arr); - } - var dataArray = this.adjustData(beforeAdjust); - this.beforeMappingData = dataArray; - return dataArray; - }; - Geometry3.prototype.adjustData = function(dataArray) { - var adjustOption = this.adjustOption; - var _a6 = this, intervalPadding = _a6.intervalPadding, dodgePadding = _a6.dodgePadding, theme4 = _a6.theme; - var maxColumnWidth = this.maxColumnWidth || theme4.maxColumnWidth; - var minColumnWidth = this.minColumnWidth || theme4.minColumnWidth; - var columnWidthRatio = this.columnWidthRatio || theme4.columnWidthRatio; - var result = dataArray; - if (adjustOption) { - var xScale = this.getXScale(); - var yScale = this.getYScale(); - var xField = xScale.field; - var yField = yScale ? yScale.field : null; - var xDimensionLength = getXDimensionLength(this.coordinate); - var groupNum = xScale.values.length; - var sizeAttr = this.getAttribute("size"); - var defaultSize = void 0; - if (sizeAttr) { - defaultSize = sizeAttr.values[0]; - } - for (var i4 = 0, len5 = adjustOption.length; i4 < len5; i4++) { - var adjust4 = adjustOption[i4]; - var adjustCfg2 = __assign({ xField, yField, intervalPadding, dodgePadding, xDimensionLength, groupNum, defaultSize, maxColumnWidth, minColumnWidth, columnWidthRatio }, adjust4); - var type2 = adjust4.type; - if (type2 === "dodge") { - var adjustNames = []; - if (xScale.isCategory || xScale.type === "identity") { - adjustNames.push("x"); - } else if (!yScale) { - adjustNames.push("y"); - } else { - throw new Error("dodge is not support linear attribute, please use category attribute!"); - } - adjustCfg2.adjustNames = adjustNames; - adjustCfg2.dodgeRatio = columnWidthRatio; - } else if (type2 === "stack") { - var coordinate11 = this.coordinate; - if (!yScale) { - adjustCfg2.height = coordinate11.getHeight(); - var size2 = this.getDefaultValue("size") || 3; - adjustCfg2.size = size2; - } - if (!coordinate11.isTransposed && is_nil_default(adjustCfg2.reverseOrder)) { - adjustCfg2.reverseOrder = true; - } - } - var adjustCtor = getAdjust(type2); - var adjustInstance = new adjustCtor(adjustCfg2); - result = adjustInstance.process(result); - this.adjusts[type2] = adjustInstance; - } - } - return result; - }; - Geometry3.prototype.groupData = function(data3) { - var groupScales = this.getGroupScales(); - var scaleDefs = this.scaleDefs; - var appendConditions = {}; - var groupFields = []; - for (var index2 = 0; index2 < groupScales.length; index2++) { - var scale12 = groupScales[index2]; - var field6 = scale12.field; - groupFields.push(field6); - if (get_default(scaleDefs, [field6, "values"])) { - appendConditions[field6] = scaleDefs[field6].values; - } - } - return group(data3, groupFields, appendConditions); - }; - Geometry3.prototype.updateStackRange = function(scale12, dataArray) { - var mergeArray = flatten_default(dataArray); - var field6 = scale12.field; - var min7 = scale12.min; - var max8 = scale12.max; - for (var index2 = 0; index2 < mergeArray.length; index2++) { - var obj = mergeArray[index2]; - var tmpMin = Math.min.apply(null, obj[field6]); - var tmpMax = Math.max.apply(null, obj[field6]); - if (tmpMin < min7) { - min7 = tmpMin; - } - if (tmpMax > max8) { - max8 = tmpMax; - } - } - var scaleDefs = this.scaleDefs; - var cfg = {}; - if (min7 < scale12.min && !get_default(scaleDefs, [field6, "min"])) { - cfg.min = min7; - } - if (max8 > scale12.max && !get_default(scaleDefs, [field6, "max"])) { - cfg.max = max8; - } - scale12.change(cfg); - }; - Geometry3.prototype.beforeMapping = function(beforeMappingData) { - var source = beforeMappingData; - if (this.sortable) { - this.sort(source); - } - if (this.generatePoints) { - for (var index2 = 0, length_5 = source.length; index2 < length_5; index2++) { - var currentData = source[index2]; - this.generateShapePoints(currentData); - var nextData = source[index2 + 1]; - if (nextData) { - this.generateShapePoints(nextData); - currentData[0].nextPoints = nextData[0].points; - } - } - } - return source; - }; - Geometry3.prototype.generateShapePoints = function(data3) { - var shapeFactory = this.getShapeFactory(); - var shapeAttr = this.getAttribute("shape"); - for (var index2 = 0; index2 < data3.length; index2++) { - var obj = data3[index2]; - var cfg = this.createShapePointsCfg(obj); - var shape = shapeAttr ? this.getAttributeValues(shapeAttr, obj) : null; - var points = shapeFactory.getShapePoints(shape, cfg); - obj.points = points; - } - }; - Geometry3.prototype.normalizeValues = function(values2, scale12) { - var rst = []; - if (is_array_default(values2)) { - for (var index2 = 0; index2 < values2.length; index2++) { - var value2 = values2[index2]; - rst.push(scale12.scale(value2)); - } - } else { - rst = scale12.scale(values2); - } - return rst; - }; - Geometry3.prototype.mapping = function(data3) { - var attributes = this.attributes; - var mappingData = []; - for (var index2 = 0; index2 < data3.length; index2++) { - var record = data3[index2]; - var newRecord = { - _origin: record[FIELD_ORIGIN], - points: record.points, - nextPoints: record.nextPoints - }; - for (var k4 in attributes) { - if (attributes.hasOwnProperty(k4)) { - var attr = attributes[k4]; - var names = attr.names; - var values2 = this.getAttributeValues(attr, record); - if (names.length > 1) { - for (var j4 = 0; j4 < values2.length; j4 += 1) { - var val = values2[j4]; - var name_1 = names[j4]; - newRecord[name_1] = is_array_default(val) && val.length === 1 ? val[0] : val; - } - } else { - newRecord[names[0]] = values2.length === 1 ? values2[0] : values2; - } - } - } - this.convertPoint(newRecord); - mappingData.push(newRecord); - } - return mappingData; - }; - Geometry3.prototype.convertPoint = function(mappingRecord) { - var x6 = mappingRecord.x, y5 = mappingRecord.y; - var rstX; - var rstY; - var obj; - var coordinate11 = this.coordinate; - if (is_array_default(x6) && is_array_default(y5)) { - rstX = []; - rstY = []; - for (var i4 = 0, j4 = 0, xLen = x6.length, yLen = y5.length; i4 < xLen && j4 < yLen; i4 += 1, j4 += 1) { - obj = coordinate11.convert({ - x: x6[i4], - y: y5[j4] - }); - rstX.push(obj.x); - rstY.push(obj.y); - } - } else if (is_array_default(y5)) { - rstY = []; - for (var index2 = 0; index2 < y5.length; index2++) { - var yVal = y5[index2]; - obj = coordinate11.convert({ - x: x6, - y: yVal - }); - if (rstX && rstX !== obj.x) { - if (!is_array_default(rstX)) { - rstX = [rstX]; - } - rstX.push(obj.x); - } else { - rstX = obj.x; - } - rstY.push(obj.y); - } - } else if (is_array_default(x6)) { - rstX = []; - for (var index2 = 0; index2 < x6.length; index2++) { - var xVal = x6[index2]; - obj = coordinate11.convert({ - x: xVal, - y: y5 - }); - if (rstY && rstY !== obj.y) { - if (!is_array_default(rstY)) { - rstY = [rstY]; - } - rstY.push(obj.y); - } else { - rstY = obj.y; - } - rstX.push(obj.x); - } - } else { - var point2 = coordinate11.convert({ - x: x6, - y: y5 - }); - rstX = point2.x; - rstY = point2.y; - } - mappingRecord.x = rstX; - mappingRecord.y = rstY; - }; - Geometry3.prototype.getStyleCfg = function(styleOption, originData) { - var _a6 = styleOption.fields, fields = _a6 === void 0 ? [] : _a6, callback = styleOption.callback, cfg = styleOption.cfg; - if (cfg) { - return cfg; - } - var params = fields.map(function(field6) { - return originData[field6]; - }); - return callback.apply(void 0, params); - }; - Geometry3.prototype.setCfg = function(cfg) { - var _this = this; - var coordinate11 = cfg.coordinate, data3 = cfg.data, theme4 = cfg.theme, scaleDefs = cfg.scaleDefs; - if (coordinate11) { - this.coordinate = coordinate11; - } - if (data3) { - this.data = data3; - } - if (scaleDefs) { - this.scaleDefs = scaleDefs; - this.idFields = []; - each_default(scaleDefs, function(scaleDef, field6) { - if (scaleDef && scaleDef.key) { - _this.idFields.push(field6); - } - }); - } - if (theme4) { - this.theme = this.userTheme ? deep_mix_default({}, theme4, this.userTheme) : theme4; - } - }; - Geometry3.prototype.renderLabels = function(mappingArray, isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - var geometryLabel = this.geometryLabel; - if (!geometryLabel) { - var labelType = this.getLabelType(); - var GeometryLabelsCtor = getGeometryLabel(labelType); - geometryLabel = new GeometryLabelsCtor(this); - this.geometryLabel = geometryLabel; - } - geometryLabel.render(mappingArray, isUpdate); - var labelsMap = geometryLabel.labelsRenderer.shapesMap; - each_default(this.elementsMap, function(element, id) { - var labels = filterLabelsById(id, labelsMap); - if (labels.length) { - element.labelShape = labels; - for (var i4 = 0; i4 < labels.length; i4++) { - var label17 = labels[i4]; - var labelChildren = label17.getChildren(); - for (var j4 = 0; j4 < labelChildren.length; j4++) { - var child = labelChildren[j4]; - child.cfg.name = ["element", "label"]; - child.cfg.element = element; - } - } - } - }); - }; - Geometry3.prototype.canDoGroupAnimation = function(isUpdate) { - return !isUpdate && this.animateOption && (get_default(this.animateOption, "appear") === void 0 || get_default(this.animateOption, "appear") && get_default(this.animateOption, ["appear", "animation"]) === void 0); - }; - return Geometry3; -}(base_default); -var base_default13 = Geometry; - -// node_modules/@antv/g2/esm/util/transform.js -var transform3 = ext_exports.transform; -function translate3(element, x6, y5) { - var matrix = transform3(element.getMatrix(), [["t", x6, y5]]); - element.setMatrix(matrix); -} -function getRotateMatrix(element, rotateRadian) { - var _a6 = element.attr(), x6 = _a6.x, y5 = _a6.y; - var matrix = transform3(element.getMatrix(), [ - ["t", -x6, -y5], - ["r", rotateRadian], - ["t", x6, y5] - ]); - return matrix; -} -function rotate5(element, rotateRadian) { - var matrix = getRotateMatrix(element, rotateRadian); - element.setMatrix(matrix); -} -function zoom(element, ratio) { - var bbox = element.getBBox(); - var x6 = (bbox.minX + bbox.maxX) / 2; - var y5 = (bbox.minY + bbox.maxY) / 2; - element.applyToMatrix([x6, y5, 1]); - var matrix = transform3(element.getMatrix(), [ - ["t", -x6, -y5], - ["s", ratio, ratio], - ["t", x6, y5] - ]); - element.setMatrix(matrix); -} - -// node_modules/@antv/g2/esm/geometry/label/util/index.js -function findLabelTextShape(label17) { - return label17.find(function(el) { - return el.get("type") === "text"; - }); -} -function getlLabelBackgroundInfo(labelGroup, labelItem, padding3) { - if (padding3 === void 0) { - padding3 = [0, 0, 0, 0]; - } - var content = labelGroup.getChildren()[0]; - if (content) { - var labelShape = content.clone(); - if (labelItem === null || labelItem === void 0 ? void 0 : labelItem.rotate) { - rotate5(labelShape, -labelItem.rotate); - } - var _a6 = labelShape.getCanvasBBox(), x6 = _a6.x, y5 = _a6.y, width2 = _a6.width, height = _a6.height; - labelShape.destroy(); - var boxPadding = padding3; - if (is_nil_default(boxPadding)) { - boxPadding = [2, 2, 2, 2]; - } else if (is_number_default(boxPadding)) { - boxPadding = new Array(4).fill(boxPadding); - } - return { - x: x6 - boxPadding[3], - y: y5 - boxPadding[0], - width: width2 + boxPadding[1] + boxPadding[3], - height: height + boxPadding[0] + boxPadding[2], - rotation: (labelItem === null || labelItem === void 0 ? void 0 : labelItem.rotate) || 0 - }; - } -} -function getOverlapArea(a4, b10, margin) { - if (margin === void 0) { - margin = 0; - } - var xOverlap = Math.max(0, Math.min(a4.x + a4.width + margin, b10.x + b10.width + margin) - Math.max(a4.x - margin, b10.x - margin)); - var yOverlap = Math.max(0, Math.min(a4.y + a4.height + margin, b10.y + b10.height + margin) - Math.max(a4.y - margin, b10.y - margin)); - return xOverlap * yOverlap; -} -function checkShapeOverlap(cur, dones) { - var box2 = cur.getBBox(); - return some_default(dones, function(done) { - var target = done.getBBox(); - return getOverlapArea(box2, target, 2) > 0; - }); -} - -// node_modules/@antv/g2/esm/component/update-label.js -function updateLabel(fromShape, toShape, cfg) { - var data3 = cfg.data, origin = cfg.origin, animateCfg = cfg.animateCfg, coordinate11 = cfg.coordinate; - var updateAnimateCfg = get_default(animateCfg, "update"); - fromShape.set("data", data3); - fromShape.set("origin", origin); - fromShape.set("animateCfg", animateCfg); - fromShape.set("coordinate", coordinate11); - fromShape.set("visible", toShape.get("visible")); - fromShape.getChildren().forEach(function(fromChild, idx) { - var toChild = toShape.getChildByIndex(idx); - if (!toChild) { - fromShape.removeChild(fromChild); - fromChild.remove(true); - } else { - fromChild.set("data", data3); - fromChild.set("origin", origin); - fromChild.set("animateCfg", animateCfg); - fromChild.set("coordinate", coordinate11); - var newAttrs = getReplaceAttrs(fromChild, toChild); - if (updateAnimateCfg) { - doAnimate(fromChild, updateAnimateCfg, { - toAttrs: newAttrs, - coordinate: coordinate11 - }); - } else { - fromChild.attr(newAttrs); - } - if (toChild.isGroup()) { - updateLabel(fromChild, toChild, cfg); - } - } - }); - each_default(toShape.getChildren(), function(child, idx) { - if (idx >= fromShape.getCount()) { - if (!child.destroyed) { - fromShape.add(child); - } - } - }); -} - -// node_modules/@antv/g2/esm/component/labels.js -var Labels = function() { - function Labels2(cfg) { - this.shapesMap = {}; - this.lastShapesMap = {}; - var layout6 = cfg.layout, container2 = cfg.container; - this.layout = layout6; - this.container = container2; - } - Labels2.prototype.render = function(items, shapes, isUpdate) { - var _this = this; - if (isUpdate === void 0) { - isUpdate = false; - } - this.shapesMap = {}; - var container2 = this.container; - var offscreenGroup = this.createOffscreenGroup(); - if (items.length) { - for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { - var item = items_1[_i]; - if (item) { - this.renderLabel(item, offscreenGroup); - } - } - this.doLayout(items, shapes); - this.renderLabelLine(items); - this.renderLabelBackground(items); - this.adjustLabel(items); - } - var lastShapesMap = this.lastShapesMap; - var shapesMap = this.shapesMap; - each_default(shapesMap, function(shape, id) { - if (shape.destroyed) { - delete shapesMap[id]; - } else { - if (lastShapesMap[id]) { - var data3 = shape.get("data"); - var origin_1 = shape.get("origin"); - var coordinate11 = shape.get("coordinate"); - var currentAnimateCfg = shape.get("animateCfg"); - var currentShape = lastShapesMap[id]; - updateLabel(currentShape, shapesMap[id], { - data: data3, - origin: origin_1, - animateCfg: currentAnimateCfg, - coordinate: coordinate11 - }); - _this.shapesMap[id] = currentShape; - } else { - container2.add(shape); - var animateCfg = get_default(shape.get("animateCfg"), isUpdate ? "enter" : "appear"); - if (animateCfg) { - doAnimate(shape, animateCfg, { - toAttrs: __assign({}, shape.attr()), - coordinate: shape.get("coordinate") - }); - } - } - delete lastShapesMap[id]; - } - }); - each_default(lastShapesMap, function(deleteShape) { - var animateCfg = get_default(deleteShape.get("animateCfg"), "leave"); - if (animateCfg) { - doAnimate(deleteShape, animateCfg, { - toAttrs: null, - coordinate: deleteShape.get("coordinate") - }); - } else { - deleteShape.remove(true); - } - }); - this.lastShapesMap = shapesMap; - offscreenGroup.destroy(); - }; - Labels2.prototype.clear = function() { - this.container.clear(); - this.shapesMap = {}; - this.lastShapesMap = {}; - }; - Labels2.prototype.destroy = function() { - this.container.destroy(); - this.shapesMap = null; - this.lastShapesMap = null; - }; - Labels2.prototype.renderLabel = function(cfg, container2) { - var id = cfg.id, elementId = cfg.elementId, data3 = cfg.data, mappingData = cfg.mappingData, coordinate11 = cfg.coordinate, animate = cfg.animate, content = cfg.content; - var shapeAppendCfg = { - id, - elementId, - data: data3, - origin: __assign(__assign({}, mappingData), { data: mappingData[FIELD_ORIGIN] }), - coordinate: coordinate11 - }; - var labelGroup = container2.addGroup(__assign({ - name: "label", - animateCfg: this.animate === false || animate === null || animate === false ? false : deep_mix_default({}, this.animate, animate) - }, shapeAppendCfg)); - var labelShape; - if (content.isGroup && content.isGroup() || content.isShape && content.isShape()) { - var _a6 = content.getCanvasBBox(), width2 = _a6.width, height = _a6.height; - var textAlign = get_default(cfg, "textAlign", "left"); - var x6 = cfg.x; - var y5 = cfg.y - height / 2; - if (textAlign === "center") { - x6 = x6 - width2 / 2; - } else if (textAlign === "right" || textAlign === "end") { - x6 = x6 - width2; - } - translate3(content, x6, y5); - labelShape = content; - labelGroup.add(content); - } else { - var fill = get_default(cfg, ["style", "fill"]); - labelShape = labelGroup.addShape("text", __assign({ attrs: __assign(__assign({ x: cfg.x, y: cfg.y, textAlign: cfg.textAlign, textBaseline: get_default(cfg, "textBaseline", "middle"), text: cfg.content }, cfg.style), { fill: is_null_default(fill) ? cfg.color : fill }) }, shapeAppendCfg)); - } - if (cfg.rotate) { - rotate5(labelShape, cfg.rotate); - } - this.shapesMap[id] = labelGroup; - }; - Labels2.prototype.doLayout = function(items, shapes) { - var _this = this; - if (this.layout) { - var layouts = is_array_default(this.layout) ? this.layout : [this.layout]; - each_default(layouts, function(layout6) { - var layoutFn = getGeometryLabelLayout(get_default(layout6, "type", "")); - if (layoutFn) { - var labelShapes_1 = []; - var geometryShapes_1 = []; - each_default(_this.shapesMap, function(labelShape, id) { - labelShapes_1.push(labelShape); - geometryShapes_1.push(shapes[labelShape.get("elementId")]); - }); - layoutFn(items, labelShapes_1, geometryShapes_1, _this.region, layout6.cfg); - } - }); - } - }; - Labels2.prototype.renderLabelLine = function(labelItems) { - var _this = this; - each_default(labelItems, function(labelItem) { - var coordinate11 = get_default(labelItem, "coordinate"); - if (!labelItem || !coordinate11) { - return; - } - var center2 = coordinate11.getCenter(); - var radius = coordinate11.getRadius(); - if (!labelItem.labelLine) { - return; - } - var labelLineCfg = get_default(labelItem, "labelLine", {}); - var id = labelItem.id; - var path = labelLineCfg.path; - if (!path) { - var start = polarToCartesian(center2.x, center2.y, radius, labelItem.angle); - path = [ - ["M", start.x, start.y], - ["L", labelItem.x, labelItem.y] - ]; - } - var labelGroup = _this.shapesMap[id]; - if (!labelGroup.destroyed) { - labelGroup.addShape("path", { - capture: false, - attrs: __assign({ path, stroke: labelItem.color ? labelItem.color : get_default(labelItem, ["style", "fill"], "#000"), fill: null }, labelLineCfg.style), - id, - origin: labelItem.mappingData, - data: labelItem.data, - coordinate: labelItem.coordinate - }); - } - }); - }; - Labels2.prototype.renderLabelBackground = function(labelItems) { - var _this = this; - each_default(labelItems, function(labelItem) { - var coordinate11 = get_default(labelItem, "coordinate"); - var background = get_default(labelItem, "background"); - if (!background || !coordinate11) { - return; - } - var id = labelItem.id; - var labelGroup = _this.shapesMap[id]; - if (!labelGroup.destroyed) { - var labelContentShape = labelGroup.getChildren()[0]; - if (labelContentShape) { - var _a6 = getlLabelBackgroundInfo(labelGroup, labelItem, background.padding), rotation = _a6.rotation, box2 = __rest(_a6, ["rotation"]); - var backgroundShape = labelGroup.addShape("rect", { - attrs: __assign(__assign({}, box2), background.style || {}), - id, - origin: labelItem.mappingData, - data: labelItem.data, - coordinate: labelItem.coordinate - }); - backgroundShape.setZIndex(-1); - if (rotation) { - var matrix = labelContentShape.getMatrix(); - backgroundShape.setMatrix(matrix); - } - } - } - }); - }; - Labels2.prototype.createOffscreenGroup = function() { - var container2 = this.container; - var GroupClass = container2.getGroupBase(); - var newGroup = new GroupClass({}); - return newGroup; - }; - Labels2.prototype.adjustLabel = function(items) { - var _this = this; - each_default(items, function(item) { - if (item) { - var id = item.id; - var labelGroup = _this.shapesMap[id]; - if (!labelGroup.destroyed) { - var labelShapes = labelGroup.findAll(function(ele) { - return ele.get("type") !== "path"; - }); - each_default(labelShapes, function(labelShape) { - if (labelShape) { - if (item.offsetX) { - labelShape.attr("x", labelShape.attr("x") + item.offsetX); - } - if (item.offsetY) { - labelShape.attr("y", labelShape.attr("y") + item.offsetY); - } - } - }); - } - } - }); - }; - return Labels2; -}(); -var labels_default = Labels; - -// node_modules/@antv/g2/esm/geometry/label/base.js -function avg(arr) { - var sum = 0; - each_default(arr, function(value2) { - sum += value2; - }); - return sum / arr.length; -} -var GeometryLabel = function() { - function GeometryLabel2(geometry35) { - this.geometry = geometry35; - } - GeometryLabel2.prototype.getLabelItems = function(mapppingArray) { - var _this = this; - var items = []; - var labelCfgs = this.getLabelCfgs(mapppingArray); - each_default(mapppingArray, function(mappingData, index2) { - var labelCfg = labelCfgs[index2]; - if (!labelCfg || is_nil_default(mappingData.x) || is_nil_default(mappingData.y)) { - items.push(null); - return; - } - var labelContent = !is_array_default(labelCfg.content) ? [labelCfg.content] : labelCfg.content; - labelCfg.content = labelContent; - var total = labelContent.length; - each_default(labelContent, function(content, subIndex) { - if (is_nil_default(content) || content === "") { - items.push(null); - return; - } - var item = __assign(__assign({}, labelCfg), _this.getLabelPoint(labelCfg, mappingData, subIndex)); - if (!item.textAlign) { - item.textAlign = _this.getLabelAlign(item, subIndex, total); - } - if (item.offset <= 0) { - item.labelLine = null; - } - items.push(item); - }); - }); - return items; - }; - GeometryLabel2.prototype.render = function(mapppingArray, isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - var labelItems = this.getLabelItems(mapppingArray); - var labelsRenderer = this.getLabelsRenderer(); - var shapes = this.getGeometryShapes(); - labelsRenderer.render(labelItems, shapes, isUpdate); - }; - GeometryLabel2.prototype.clear = function() { - var labelsRenderer = this.labelsRenderer; - if (labelsRenderer) { - labelsRenderer.clear(); - } - }; - GeometryLabel2.prototype.destroy = function() { - var labelsRenderer = this.labelsRenderer; - if (labelsRenderer) { - labelsRenderer.destroy(); - } - this.labelsRenderer = null; - }; - GeometryLabel2.prototype.getCoordinate = function() { - return this.geometry.coordinate; - }; - GeometryLabel2.prototype.getDefaultLabelCfg = function(offset, position2) { - var geometry35 = this.geometry; - var type2 = geometry35.type, theme4 = geometry35.theme; - if (type2 === "polygon" || type2 === "interval" && position2 === "middle" || offset < 0 && !["line", "point", "path"].includes(type2)) { - return get_default(theme4, "innerLabels", {}); - } - return get_default(theme4, "labels", {}); - }; - GeometryLabel2.prototype.getThemedLabelCfg = function(labelCfg) { - var geometry35 = this.geometry; - var defaultLabelCfg3 = this.getDefaultLabelCfg(); - var type2 = geometry35.type, theme4 = geometry35.theme; - var themedLabelCfg; - if (type2 === "polygon" || labelCfg.offset < 0 && !["line", "point", "path"].includes(type2)) { - themedLabelCfg = deep_mix_default({}, defaultLabelCfg3, theme4.innerLabels, labelCfg); - } else { - themedLabelCfg = deep_mix_default({}, defaultLabelCfg3, theme4.labels, labelCfg); - } - return themedLabelCfg; - }; - GeometryLabel2.prototype.setLabelPosition = function(labelPointCfg, mappingData, index2, position2) { - }; - GeometryLabel2.prototype.getLabelOffset = function(offset) { - var coordinate11 = this.getCoordinate(); - var vector = this.getOffsetVector(offset); - return coordinate11.isTransposed ? vector[0] : vector[1]; - }; - GeometryLabel2.prototype.getLabelOffsetPoint = function(labelCfg, index2, total) { - var offset = labelCfg.offset; - var coordinate11 = this.getCoordinate(); - var transposed = coordinate11.isTransposed; - var dim = transposed ? "x" : "y"; - var factor = transposed ? 1 : -1; - var offsetPoint = { - x: 0, - y: 0 - }; - if (index2 > 0 || total === 1) { - offsetPoint[dim] = offset * factor; - } else { - offsetPoint[dim] = offset * factor * -1; - } - return offsetPoint; - }; - GeometryLabel2.prototype.getLabelPoint = function(labelCfg, mappingData, index2) { - var coordinate11 = this.getCoordinate(); - var total = labelCfg.content.length; - function getDimValue(value2, idx, isAvg) { - if (isAvg === void 0) { - isAvg = false; - } - var v3 = value2; - if (is_array_default(v3)) { - if (labelCfg.content.length === 1) { - if (isAvg) { - v3 = avg(v3); - } else { - if (v3.length <= 2) { - v3 = v3[value2.length - 1]; - } else { - v3 = avg(v3); - } - } - } else { - v3 = v3[idx]; - } - } - return v3; - } - var label17 = { - content: labelCfg.content[index2], - x: 0, - y: 0, - start: { x: 0, y: 0 }, - color: "#fff" - }; - var shape = is_array_default(mappingData.shape) ? mappingData.shape[0] : mappingData.shape; - var isFunnel = shape === "funnel" || shape === "pyramid"; - if (this.geometry.type === "polygon") { - var centroid = getPolygonCentroid(mappingData.x, mappingData.y); - label17.x = centroid[0]; - label17.y = centroid[1]; - } else if (this.geometry.type === "interval" && !isFunnel) { - label17.x = getDimValue(mappingData.x, index2, true); - label17.y = getDimValue(mappingData.y, index2); - } else { - label17.x = getDimValue(mappingData.x, index2); - label17.y = getDimValue(mappingData.y, index2); - } - if (isFunnel) { - var nextPoints = get_default(mappingData, "nextPoints"); - var points = get_default(mappingData, "points"); - if (nextPoints) { - var point1 = coordinate11.convert(points[1]); - var point2 = coordinate11.convert(nextPoints[1]); - label17.x = (point1.x + point2.x) / 2; - label17.y = (point1.y + point2.y) / 2; - } else if (shape === "pyramid") { - var point1 = coordinate11.convert(points[1]); - var point2 = coordinate11.convert(points[2]); - label17.x = (point1.x + point2.x) / 2; - label17.y = (point1.y + point2.y) / 2; - } - } - if (labelCfg.position) { - this.setLabelPosition(label17, mappingData, index2, labelCfg.position); - } - var offsetPoint = this.getLabelOffsetPoint(labelCfg, index2, total); - label17.start = { x: label17.x, y: label17.y }; - label17.x += offsetPoint.x; - label17.y += offsetPoint.y; - label17.color = mappingData.color; - return label17; - }; - GeometryLabel2.prototype.getLabelAlign = function(item, index2, total) { - var align = "center"; - var coordinate11 = this.getCoordinate(); - if (coordinate11.isTransposed) { - var offset = item.offset; - if (offset < 0) { - align = "right"; - } else if (offset === 0) { - align = "center"; - } else { - align = "left"; - } - if (total > 1 && index2 === 0) { - if (align === "right") { - align = "left"; - } else if (align === "left") { - align = "right"; - } - } - } - return align; - }; - GeometryLabel2.prototype.getLabelId = function(mappingData) { - var geometry35 = this.geometry; - var type2 = geometry35.type; - var xScale = geometry35.getXScale(); - var yScale = geometry35.getYScale(); - var origin = mappingData[FIELD_ORIGIN]; - var labelId = geometry35.getElementId(mappingData); - if (type2 === "line" || type2 === "area") { - labelId += " ".concat(origin[xScale.field]); - } else if (type2 === "path") { - labelId += " ".concat(origin[xScale.field], "-").concat(origin[yScale.field]); - } - return labelId; - }; - GeometryLabel2.prototype.getLabelsRenderer = function() { - var _a6 = this.geometry, labelsContainer = _a6.labelsContainer, labelOption = _a6.labelOption, canvasRegion = _a6.canvasRegion, animateOption = _a6.animateOption; - var coordinate11 = this.geometry.coordinate; - var labelsRenderer = this.labelsRenderer; - if (!labelsRenderer) { - labelsRenderer = new labels_default({ - container: labelsContainer, - layout: get_default(labelOption, ["cfg", "layout"], { - type: this.defaultLayout - }) - }); - this.labelsRenderer = labelsRenderer; - } - labelsRenderer.region = canvasRegion; - labelsRenderer.animate = animateOption ? getDefaultAnimateCfg("label", coordinate11) : false; - return labelsRenderer; - }; - GeometryLabel2.prototype.getLabelCfgs = function(mapppingArray) { - var _this = this; - var geometry35 = this.geometry; - var labelOption = geometry35.labelOption, scales = geometry35.scales, coordinate11 = geometry35.coordinate; - var _a6 = labelOption, fields = _a6.fields, callback = _a6.callback, cfg = _a6.cfg; - var labelScales = fields.map(function(field6) { - return scales[field6]; - }); - var labelCfgs = []; - each_default(mapppingArray, function(mappingData, index2) { - var origin = mappingData[FIELD_ORIGIN]; - var originText = _this.getLabelText(origin, labelScales); - var callbackCfg; - if (callback) { - var originValues = fields.map(function(field6) { - return origin[field6]; - }); - callbackCfg = callback.apply(void 0, originValues); - if (is_nil_default(callbackCfg)) { - labelCfgs.push(null); - return; - } - } - var labelCfg = __assign(__assign({ - id: _this.getLabelId(mappingData), - elementId: _this.geometry.getElementId(mappingData), - data: origin, - mappingData, - coordinate: coordinate11 - }, cfg), callbackCfg); - if (is_function_default(labelCfg.position)) { - labelCfg.position = labelCfg.position(origin, mappingData, index2); - } - var offset = _this.getLabelOffset(labelCfg.offset || 0); - var defaultLabelCfg3 = _this.getDefaultLabelCfg(offset, labelCfg.position); - labelCfg = deep_mix_default({}, defaultLabelCfg3, labelCfg); - labelCfg.offset = _this.getLabelOffset(labelCfg.offset || 0); - var content = labelCfg.content; - if (is_function_default(content)) { - labelCfg.content = content(origin, mappingData, index2); - } else if (is_undefined_default(content)) { - labelCfg.content = originText[0]; - } - labelCfgs.push(labelCfg); - }); - return labelCfgs; - }; - GeometryLabel2.prototype.getLabelText = function(origin, scales) { - var labelTexts = []; - each_default(scales, function(scale12) { - var value2 = origin[scale12.field]; - if (is_array_default(value2)) { - value2 = value2.map(function(subVal) { - return scale12.getText(subVal); - }); - } else { - value2 = scale12.getText(value2); - } - if (is_nil_default(value2) || value2 === "") { - labelTexts.push(null); - } else { - labelTexts.push(value2); - } - }); - return labelTexts; - }; - GeometryLabel2.prototype.getOffsetVector = function(offset) { - if (offset === void 0) { - offset = 0; - } - var coordinate11 = this.getCoordinate(); - var actualOffset = 0; - if (is_number_default(offset)) { - actualOffset = offset; - } - return coordinate11.isTransposed ? coordinate11.applyMatrix(actualOffset, 0) : coordinate11.applyMatrix(0, actualOffset); - }; - GeometryLabel2.prototype.getGeometryShapes = function() { - var geometry35 = this.geometry; - var shapes = {}; - each_default(geometry35.elementsMap, function(element, id) { - shapes[id] = element.shape; - }); - each_default(geometry35.getOffscreenGroup().getChildren(), function(child) { - var id = geometry35.getElementId(child.get("origin").mappingData); - shapes[id] = child; - }); - return shapes; - }; - return GeometryLabel2; -}(); -var base_default14 = GeometryLabel; - -// node_modules/@antv/g2/esm/util/attr.js -function getMappingValue(attr, value2, def) { - if (!attr) { - return def; - } - var r4; - if (attr.callback && attr.callback.length > 1) { - var restArgs = Array(attr.callback.length - 1).fill(""); - r4 = attr.mapping.apply(attr, __spreadArray([value2], restArgs, false)).join(""); - } else { - r4 = attr.mapping(value2).join(""); - } - return r4 || def; -} - -// node_modules/@antv/g2/esm/util/marker.js -var MarkerSymbols = { - hexagon: function(x6, y5, r4) { - var diffX = r4 / 2 * Math.sqrt(3); - return [ - ["M", x6, y5 - r4], - ["L", x6 + diffX, y5 - r4 / 2], - ["L", x6 + diffX, y5 + r4 / 2], - ["L", x6, y5 + r4], - ["L", x6 - diffX, y5 + r4 / 2], - ["L", x6 - diffX, y5 - r4 / 2], - ["Z"] - ]; - }, - bowtie: function(x6, y5, r4) { - var diffY = r4 - 1.5; - return [["M", x6 - r4, y5 - diffY], ["L", x6 + r4, y5 + diffY], ["L", x6 + r4, y5 - diffY], ["L", x6 - r4, y5 + diffY], ["Z"]]; - }, - cross: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5 - r4], - ["L", x6 + r4, y5 + r4], - ["M", x6 + r4, y5 - r4], - ["L", x6 - r4, y5 + r4] - ]; - }, - tick: function(x6, y5, r4) { - return [ - ["M", x6 - r4 / 2, y5 - r4], - ["L", x6 + r4 / 2, y5 - r4], - ["M", x6, y5 - r4], - ["L", x6, y5 + r4], - ["M", x6 - r4 / 2, y5 + r4], - ["L", x6 + r4 / 2, y5 + r4] - ]; - }, - plus: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["L", x6 + r4, y5], - ["M", x6, y5 - r4], - ["L", x6, y5 + r4] - ]; - }, - hyphen: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["L", x6 + r4, y5] - ]; - }, - line: function(x6, y5, r4) { - return [ - ["M", x6, y5 - r4], - ["L", x6, y5 + r4] - ]; - } -}; - -// node_modules/@antv/g2/esm/util/legend.js -var STROKES_SYMBOLS = ["line", "cross", "tick", "plus", "hyphen"]; -function handleUserMarkerStyle(markerStyle, style) { - if (is_function_default(style)) { - return style(markerStyle); - } - return deep_mix_default({}, markerStyle, style); -} -function adpatorMarkerStyle(marker, color4) { - var symbol = marker.symbol; - if (is_string_default(symbol) && STROKES_SYMBOLS.indexOf(symbol) !== -1) { - var markerStyle = get_default(marker, "style", {}); - var lineWidth = get_default(markerStyle, "lineWidth", 1); - var stroke = markerStyle.stroke || markerStyle.fill || color4; - marker.style = deep_mix_default({}, marker.style, { lineWidth, stroke, fill: null }); - } -} -function setMarkerSymbol(marker) { - var symbol = marker.symbol; - if (is_string_default(symbol) && MarkerSymbols[symbol]) { - marker.symbol = MarkerSymbols[symbol]; - } -} -function getLegendLayout(direction5) { - return direction5.startsWith(DIRECTION.LEFT) || direction5.startsWith(DIRECTION.RIGHT) ? "vertical" : "horizontal"; -} -function getLegendItems(view, geometry35, attr, themeMarker, userMarker) { - var scale12 = attr.getScale(attr.type); - if (scale12.isCategory) { - var field_1 = scale12.field; - var colorAttr_1 = geometry35.getAttribute("color"); - var shapeAttr_1 = geometry35.getAttribute("shape"); - var defaultColor_1 = view.getTheme().defaultColor; - var isInPolar_1 = geometry35.coordinate.isPolar; - return scale12.getTicks().map(function(tick, index2) { - var _a6; - var text = tick.text, scaleValue = tick.value; - var name = text; - var value2 = scale12.invert(scaleValue); - var unchecked = view.filterFieldData(field_1, [(_a6 = {}, _a6[field_1] = value2, _a6)]).length === 0; - each_default(view.views, function(subView) { - var _a7; - if (!subView.filterFieldData(field_1, [(_a7 = {}, _a7[field_1] = value2, _a7)]).length) { - unchecked = true; - } - }); - var color4 = getMappingValue(colorAttr_1, value2, defaultColor_1); - var shape = getMappingValue(shapeAttr_1, value2, "point"); - var marker = geometry35.getShapeMarker(shape, { - color: color4, - isInPolar: isInPolar_1 - }); - var markerCfg = userMarker; - if (is_function_default(markerCfg)) { - markerCfg = markerCfg(name, index2, __assign({ name, value: value2 }, deep_mix_default({}, themeMarker, marker))); - } - marker = deep_mix_default({}, themeMarker, marker, omit(__assign({}, markerCfg), ["style"])); - adpatorMarkerStyle(marker, color4); - if (markerCfg && markerCfg.style) { - marker.style = handleUserMarkerStyle(marker.style, markerCfg.style); - } - setMarkerSymbol(marker); - return { id: value2, name, value: value2, marker, unchecked }; - }); - } - return []; -} -function getCustomLegendItems(themeMarker, userMarker, customItems) { - return customItems.map(function(item, index2) { - var markerCfg = userMarker; - if (is_function_default(markerCfg)) { - markerCfg = markerCfg(item.name, index2, deep_mix_default({}, themeMarker, item)); - } - var itemMarker = is_function_default(item.marker) ? item.marker(item.name, index2, deep_mix_default({}, themeMarker, item)) : item.marker; - var marker = deep_mix_default({}, themeMarker, markerCfg, itemMarker); - setMarkerSymbol(marker); - item.marker = marker; - return item; - }); -} -function getLegendThemeCfg(theme4, direction5) { - var legendTheme = get_default(theme4, ["components", "legend"], {}); - return deep_mix_default({}, get_default(legendTheme, ["common"], {}), deep_mix_default({}, get_default(legendTheme, [direction5], {}))); -} - -// node_modules/@antv/g2/esm/geometry/shape/util/get-path-points.js -function isValueEmpty(value2) { - if (value2) { - return false; - } - return value2 === null || value2 === void 0 || isNaN(value2); -} -function isYNil(point2) { - if (is_array_default(point2)) { - return isValueEmpty(point2[1].y); - } - var value2 = point2.y; - return is_array_default(value2) ? isValueEmpty(value2[0]) : isValueEmpty(value2); -} -function getPathPoints(points, connectNulls, showSinglePoint) { - if (connectNulls === void 0) { - connectNulls = false; - } - if (showSinglePoint === void 0) { - showSinglePoint = true; - } - if (!points.length || points.length === 1 && !showSinglePoint) { - return []; - } - if (connectNulls) { - var filtered = []; - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var point2 = points[i4]; - if (!isYNil(point2)) { - filtered.push(point2); - } - } - return [filtered]; - } - var result = []; - var tmp = []; - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var point2 = points[i4]; - if (isYNil(point2)) { - if (tmp.length) { - if (!(tmp.length === 1 && !showSinglePoint)) { - result.push(tmp); - } - tmp = []; - } - } else { - tmp.push(point2); - } - } - if (tmp.length) { - result.push(tmp); - } - return result; -} -function getViolinPath(points) { - var path = []; - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - if (point2) { - var action = i4 === 0 ? "M" : "L"; - path.push([action, point2.x, point2.y]); - } - } - var first = points[0]; - if (first) { - path.push(["L", first.x, first.y]); - path.push(["z"]); - } - return path; -} -function getSmoothViolinPath(points) { - var half = points.length / 2; - var leftPoints = []; - var rightPoints = []; - for (var i4 = 0; i4 < points.length; i4++) { - if (i4 < half) { - leftPoints.push(points[i4]); - } else { - rightPoints.push(points[i4]); - } - } - var leftPath = getSplinePath(leftPoints, false); - var rightPath = getSplinePath(rightPoints, false); - if (rightPoints.length) { - leftPath.push(["L", rightPoints[0].x, rightPoints[0].y]); - } - rightPath.shift(); - var path = leftPath.concat(rightPath); - if (leftPoints.length) { - path.push(["L", leftPoints[0].x, leftPoints[0].y]); - } - path.push(["z"]); - return path; -} - -// node_modules/@antv/g2/esm/geometry/shape/util/get-style.js -function getStyle2(cfg, isStroke, isFill, sizeName) { - if (sizeName === void 0) { - sizeName = ""; - } - var _a6 = cfg.style, style = _a6 === void 0 ? {} : _a6, defaultStyle = cfg.defaultStyle, color4 = cfg.color, size2 = cfg.size; - var attrs = __assign(__assign({}, defaultStyle), style); - if (color4) { - if (isStroke) { - if (!style.stroke) { - attrs.stroke = color4; - } - } - if (isFill) { - if (!style.fill) { - attrs.fill = color4; - } - } - } - if (sizeName && is_nil_default(style[sizeName]) && !is_nil_default(size2)) { - attrs[sizeName] = size2; - } - return attrs; -} -function getBackgroundRectStyle(cfg) { - return deep_mix_default({}, { - fill: "#CCD6EC", - fillOpacity: 0.3 - }, get_default(cfg, ["background", "style"])); -} - -// node_modules/@antv/g2/esm/geometry/shape/util/split-points.js -function splitPoints(obj) { - var x6 = obj.x; - var y5 = is_array_default(obj.y) ? obj.y : [obj.y]; - return y5.map(function(eachY, index2) { - return { - x: is_array_default(x6) ? x6[index2] : x6, - y: eachY - }; - }); -} - -// node_modules/@antv/g2/esm/geometry/shape/line/util.js -var LineSymbols = { - line: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["L", x6 + r4, y5] - ]; - }, - dot: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["L", x6 + r4, y5] - ]; - }, - dash: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["L", x6 + r4, y5] - ]; - }, - smooth: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["A", r4 / 2, r4 / 2, 0, 1, 1, x6, y5], - ["A", r4 / 2, r4 / 2, 0, 1, 0, x6 + r4, y5] - ]; - }, - hv: function(x6, y5, r4) { - return [ - ["M", x6 - r4 - 1, y5 - 2.5], - ["L", x6, y5 - 2.5], - ["L", x6, y5 + 2.5], - ["L", x6 + r4 + 1, y5 + 2.5] - ]; - }, - vh: function(x6, y5, r4) { - return [ - ["M", x6 - r4 - 1, y5 + 2.5], - ["L", x6, y5 + 2.5], - ["L", x6, y5 - 2.5], - ["L", x6 + r4 + 1, y5 - 2.5] - ]; - }, - hvh: function(x6, y5, r4) { - return [ - ["M", x6 - (r4 + 1), y5 + 2.5], - ["L", x6 - r4 / 2, y5 + 2.5], - ["L", x6 - r4 / 2, y5 - 2.5], - ["L", x6 + r4 / 2, y5 - 2.5], - ["L", x6 + r4 / 2, y5 + 2.5], - ["L", x6 + r4 + 1, y5 + 2.5] - ]; - }, - vhv: function(x6, y5) { - return [ - ["M", x6 - 5, y5 + 2.5], - ["L", x6 - 5, y5], - ["L", x6, y5], - ["L", x6, y5 - 3], - ["L", x6, y5 + 3], - ["L", x6 + 6.5, y5 + 3] - ]; - } -}; -function getLineMarker(markerCfg, shapeType) { - var color4 = markerCfg.color; - return { - symbol: LineSymbols[shapeType], - style: { - lineWidth: 2, - r: 6, - stroke: color4 - } - }; -} - -// node_modules/@antv/g2/esm/geometry/shape/line/index.js -function getShapeAttrs(cfg, smooth, constraint) { - var isStack = cfg.isStack, connectNulls = cfg.connectNulls, isInCircle = cfg.isInCircle, showSinglePoint = cfg.showSinglePoint; - var shapeAttrs = getStyle2(cfg, true, false, "lineWidth"); - var points = getPathPoints(cfg.points, connectNulls, showSinglePoint); - var path = []; - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var eachLinePoints = points[i4]; - path = path.concat(getPath(eachLinePoints, isInCircle, isStack, smooth, constraint, shapeAttrs)); - } - shapeAttrs.path = path; - return shapeAttrs; -} -function getSinglePath(points, isInCircle, smooth, constraint, style) { - if (points.length === 1) { - return [ - ["M", points[0].x, points[0].y - style.lineWidth / 2], - ["L", points[0].x, points[0].y], - ["L", points[0].x, points[0].y + style.lineWidth / 2] - ]; - } - var path; - if (!smooth) { - path = getLinePath2(points, false); - if (isInCircle) { - path.push(["Z"]); - } - } else { - if (isInCircle && points.length) { - points.push({ x: points[0].x, y: points[0].y }); - } - path = getSplinePath(points, false, constraint); - } - return path; -} -function getRangePath(points, isInCircle, isStack, smooth, constraint, style) { - var topPoints = []; - var bottomPoints = []; - each_default(points, function(point2) { - var result = splitPoints(point2); - topPoints.push(result[1]); - bottomPoints.push(result[0]); - }); - var topPath = getSinglePath(topPoints, isInCircle, smooth, constraint, style); - var bottomPath = getSinglePath(bottomPoints, isInCircle, smooth, constraint, style); - if (isStack) { - return topPath; - } - return topPath.concat(bottomPath); -} -function getPath(points, isInCircle, isStack, smooth, constraint, style) { - if (points.length) { - var first = points[0]; - return is_array_default(first.y) ? getRangePath(points, isInCircle, isStack, smooth, constraint, style) : getSinglePath(points, isInCircle, smooth, constraint, style); - } - return []; -} -var LineShapeFactory = registerShapeFactory("line", { - defaultShapeType: "line" -}); -each_default(["line", "dot", "dash", "smooth"], function(shapeType) { - registerShape("line", shapeType, { - draw: function(cfg, container2) { - var smooth = shapeType === "smooth"; - var constraint; - if (smooth) { - var _a6 = this.coordinate, start = _a6.start, end2 = _a6.end; - constraint = [ - [start.x, end2.y], - [end2.x, start.y] - ]; - } - var attrs = getShapeAttrs(cfg, smooth, constraint); - var shape = container2.addShape({ - type: "path", - attrs, - name: "line", - capture: !smooth - }); - return shape; - }, - getMarker: function(markerCfg) { - return getLineMarker(markerCfg, shapeType); - } - }); -}); - -// node_modules/@antv/g2/esm/core.js -var VERSION = "4.1.39"; -var Util = { - getLegendItems, - translate: translate3, - rotate: rotate5, - zoom, - transform: transform3, - getAngle: getAngle3, - getSectorPath, - polarToCartesian, - getDelegationObject, - getTooltipItems, - getMappingValue, - getPath, - getPathPoints -}; - -// node_modules/@antv/g2/esm/theme/style-sheet/dark.js -var WHITE_COLORS2 = { - 100: "#000", - 95: "#0D0D0D", - 85: "#262626", - 65: "#595959", - 45: "#8C8C8C", - 25: "#BFBFBF", - 15: "#D9D9D9", - 6: "#F0F0F0" -}; -var BLACK_COLORS2 = { - 100: "#FFFFFF", - 95: "#F2F2F2", - 85: "#D9D9D9", - 65: "#A6A6A6", - 45: "#737373", - 25: "#404040", - 15: "#262626", - 6: "#0F0F0F" -}; -var QUALITATIVE_102 = [ - "#5B8FF9", - "#5AD8A6", - "#5D7092", - "#F6BD16", - "#E86452", - "#6DC8EC", - "#945FB9", - "#FF9845", - "#1E9493", - "#FF99C3" -]; -var QUALITATIVE_202 = [ - "#5B8FF9", - "#CDDDFD", - "#5AD8A6", - "#CDF3E4", - "#5D7092", - "#CED4DE", - "#F6BD16", - "#FCEBB9", - "#E86452", - "#F8D0CB", - "#6DC8EC", - "#D3EEF9", - "#945FB9", - "#DECFEA", - "#FF9845", - "#FFE0C7", - "#1E9493", - "#BBDEDE", - "#FF99C3", - "#FFE0ED" -]; -var SINGLE_SEQUENCE2 = [ - "#B8E1FF", - "#9AC5FF", - "#7DAAFF", - "#5B8FF9", - "#3D76DD", - "#085EC0", - "#0047A5", - "#00318A", - "#001D70" -]; -var createDarkStyleSheet = function(cfg) { - if (cfg === void 0) { - cfg = {}; - } - var _a6 = cfg.backgroundColor, backgroundColor = _a6 === void 0 ? "#141414" : _a6, _b = cfg.subColor, subColor = _b === void 0 ? "rgba(255,255,255,0.05)" : _b, _c = cfg.paletteQualitative10, paletteQualitative10 = _c === void 0 ? QUALITATIVE_102 : _c, _d = cfg.paletteQualitative20, paletteQualitative20 = _d === void 0 ? QUALITATIVE_202 : _d, _e = cfg.paletteSemanticRed, paletteSemanticRed = _e === void 0 ? "#F4664A" : _e, _f = cfg.paletteSemanticGreen, paletteSemanticGreen = _f === void 0 ? "#30BF78" : _f, _g = cfg.paletteSemanticYellow, paletteSemanticYellow = _g === void 0 ? "#FAAD14" : _g, _h = cfg.paletteSequence, paletteSequence = _h === void 0 ? SINGLE_SEQUENCE2 : _h, _j = cfg.fontFamily, fontFamily = _j === void 0 ? '"Segoe UI", Roboto, "Helvetica Neue", Arial,\n "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",\n "Noto Color Emoji"' : _j; - var _k = cfg.brandColor, brandColor = _k === void 0 ? paletteQualitative10[0] : _k; - return { - backgroundColor, - brandColor, - subColor, - paletteQualitative10, - paletteQualitative20, - paletteSemanticRed, - paletteSemanticGreen, - paletteSemanticYellow, - paletteSequence, - fontFamily, - axisLineBorderColor: BLACK_COLORS2[25], - axisLineBorder: 1, - axisLineDash: null, - axisTitleTextFillColor: BLACK_COLORS2[65], - axisTitleTextFontSize: 12, - axisTitleTextLineHeight: 12, - axisTitleTextFontWeight: "normal", - axisTitleSpacing: 12, - axisTickLineBorderColor: BLACK_COLORS2[25], - axisTickLineLength: 4, - axisTickLineBorder: 1, - axisSubTickLineBorderColor: BLACK_COLORS2[15], - axisSubTickLineLength: 2, - axisSubTickLineBorder: 1, - axisLabelFillColor: BLACK_COLORS2[45], - axisLabelFontSize: 12, - axisLabelLineHeight: 12, - axisLabelFontWeight: "normal", - axisLabelOffset: 8, - axisGridBorderColor: BLACK_COLORS2[15], - axisGridBorder: 1, - axisGridLineDash: null, - legendTitleTextFillColor: BLACK_COLORS2[45], - legendTitleTextFontSize: 12, - legendTitleTextLineHeight: 21, - legendTitleTextFontWeight: "normal", - legendMarkerColor: QUALITATIVE_102[0], - legendMarkerSpacing: 8, - legendMarkerSize: 4, - legendCircleMarkerSize: 4, - legendSquareMarkerSize: 4, - legendLineMarkerSize: 5, - legendItemNameFillColor: BLACK_COLORS2[65], - legendItemNameFontSize: 12, - legendItemNameLineHeight: 12, - legendItemNameFontWeight: "normal", - legendItemSpacing: 24, - legendItemMarginBottom: 12, - legendSpacing: 16, - legendPadding: [8, 8, 8, 8], - legendHorizontalPadding: [8, 0, 8, 0], - legendVerticalPadding: [0, 8, 0, 8], - legendPageNavigatorMarkerSize: 12, - legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS2[45], - legendPageNavigatorMarkerInactiveFillOpacity: 0.45, - legendPageNavigatorMarkerFillColor: BLACK_COLORS2[45], - legendPageNavigatorMarkerFillOpacity: 1, - legendPageNavigatorTextFillColor: BLACK_COLORS2[65], - legendPageNavigatorTextFontSize: 12, - sliderRailFillColor: BLACK_COLORS2[15], - sliderRailBorder: 0, - sliderRailBorderColor: null, - sliderRailWidth: 100, - sliderRailHeight: 12, - sliderLabelTextFillColor: BLACK_COLORS2[45], - sliderLabelTextFontSize: 12, - sliderLabelTextLineHeight: 12, - sliderLabelTextFontWeight: "normal", - sliderHandlerFillColor: WHITE_COLORS2[6], - sliderHandlerWidth: 10, - sliderHandlerHeight: 14, - sliderHandlerBorder: 1, - sliderHandlerBorderColor: WHITE_COLORS2[25], - annotationArcBorderColor: BLACK_COLORS2[15], - annotationArcBorder: 1, - annotationLineBorderColor: BLACK_COLORS2[25], - annotationLineBorder: 1, - annotationLineDash: null, - annotationTextFillColor: BLACK_COLORS2[65], - annotationTextFontSize: 12, - annotationTextLineHeight: 12, - annotationTextFontWeight: "normal", - annotationTextBorderColor: null, - annotationTextBorder: 0, - annotationRegionFillColor: BLACK_COLORS2[100], - annotationRegionFillOpacity: 0.06, - annotationRegionBorder: 0, - annotationRegionBorderColor: null, - annotationDataMarkerLineLength: 16, - tooltipCrosshairsBorderColor: BLACK_COLORS2[25], - tooltipCrosshairsBorder: 1, - tooltipCrosshairsLineDash: null, - tooltipContainerFillColor: "#1f1f1f", - tooltipContainerFillOpacity: 0.95, - tooltipContainerShadow: "0px 2px 4px rgba(0,0,0,.5)", - tooltipContainerBorderRadius: 3, - tooltipTextFillColor: BLACK_COLORS2[65], - tooltipTextFontSize: 12, - tooltipTextLineHeight: 12, - tooltipTextFontWeight: "bold", - labelFillColor: BLACK_COLORS2[65], - labelFillColorDark: "#2c3542", - labelFillColorLight: "#ffffff", - labelFontSize: 12, - labelLineHeight: 12, - labelFontWeight: "normal", - labelBorderColor: null, - labelBorder: 0, - innerLabelFillColor: WHITE_COLORS2[100], - innerLabelFontSize: 12, - innerLabelLineHeight: 12, - innerLabelFontWeight: "normal", - innerLabelBorderColor: null, - innerLabelBorder: 0, - overflowLabelFillColor: BLACK_COLORS2[65], - overflowLabelFillColorDark: "#2c3542", - overflowLabelFillColorLight: "#ffffff", - overflowLabelFontSize: 12, - overflowLabelLineHeight: 12, - overflowLabelFontWeight: "normal", - overflowLabelBorderColor: WHITE_COLORS2[100], - overflowLabelBorder: 1, - labelLineBorder: 1, - labelLineBorderColor: BLACK_COLORS2[25], - cSliderRailHieght: 16, - cSliderBackgroundFillColor: "#416180", - cSliderBackgroundFillOpacity: 0.05, - cSliderForegroundFillColor: "#5B8FF9", - cSliderForegroundFillOpacity: 0.15, - cSliderHandlerHeight: 24, - cSliderHandlerWidth: 10, - cSliderHandlerFillColor: "#F7F7F7", - cSliderHandlerFillOpacity: 1, - cSliderHandlerHighlightFillColor: "#FFF", - cSliderHandlerBorderColor: "#BFBFBF", - cSliderHandlerBorder: 1, - cSliderHandlerBorderRadius: 2, - cSliderTextFillColor: "#fff", - cSliderTextFillOpacity: 0.45, - cSliderTextFontSize: 12, - cSliderTextLineHeight: 12, - cSliderTextFontWeight: "normal", - cSliderTextBorderColor: null, - cSliderTextBorder: 0, - scrollbarTrackFillColor: "rgba(255,255,255,0.65)", - scrollbarThumbFillColor: "rgba(0,0,0,0.35)", - scrollbarThumbHighlightFillColor: "rgba(0,0,0,0.45)", - pointFillColor: QUALITATIVE_102[0], - pointFillOpacity: 0.95, - pointSize: 4, - pointBorder: 1, - pointBorderColor: WHITE_COLORS2[100], - pointBorderOpacity: 1, - pointActiveBorderColor: BLACK_COLORS2[100], - pointSelectedBorder: 2, - pointSelectedBorderColor: BLACK_COLORS2[100], - pointInactiveFillOpacity: 0.3, - pointInactiveBorderOpacity: 0.3, - hollowPointSize: 4, - hollowPointBorder: 1, - hollowPointBorderColor: QUALITATIVE_102[0], - hollowPointBorderOpacity: 0.95, - hollowPointFillColor: WHITE_COLORS2[100], - hollowPointActiveBorder: 1, - hollowPointActiveBorderColor: BLACK_COLORS2[100], - hollowPointActiveBorderOpacity: 1, - hollowPointSelectedBorder: 2, - hollowPointSelectedBorderColor: BLACK_COLORS2[100], - hollowPointSelectedBorderOpacity: 1, - hollowPointInactiveBorderOpacity: 0.3, - lineBorder: 2, - lineBorderColor: QUALITATIVE_102[0], - lineBorderOpacity: 1, - lineActiveBorder: 3, - lineSelectedBorder: 3, - lineInactiveBorderOpacity: 0.3, - areaFillColor: QUALITATIVE_102[0], - areaFillOpacity: 0.25, - areaActiveFillColor: QUALITATIVE_102[0], - areaActiveFillOpacity: 0.5, - areaSelectedFillColor: QUALITATIVE_102[0], - areaSelectedFillOpacity: 0.5, - areaInactiveFillOpacity: 0.3, - hollowAreaBorderColor: QUALITATIVE_102[0], - hollowAreaBorder: 2, - hollowAreaBorderOpacity: 1, - hollowAreaActiveBorder: 3, - hollowAreaActiveBorderColor: BLACK_COLORS2[100], - hollowAreaSelectedBorder: 3, - hollowAreaSelectedBorderColor: BLACK_COLORS2[100], - hollowAreaInactiveBorderOpacity: 0.3, - intervalFillColor: QUALITATIVE_102[0], - intervalFillOpacity: 0.95, - intervalActiveBorder: 1, - intervalActiveBorderColor: BLACK_COLORS2[100], - intervalActiveBorderOpacity: 1, - intervalSelectedBorder: 2, - intervalSelectedBorderColor: BLACK_COLORS2[100], - intervalSelectedBorderOpacity: 1, - intervalInactiveBorderOpacity: 0.3, - intervalInactiveFillOpacity: 0.3, - hollowIntervalBorder: 2, - hollowIntervalBorderColor: QUALITATIVE_102[0], - hollowIntervalBorderOpacity: 1, - hollowIntervalFillColor: WHITE_COLORS2[100], - hollowIntervalActiveBorder: 2, - hollowIntervalActiveBorderColor: BLACK_COLORS2[100], - hollowIntervalSelectedBorder: 3, - hollowIntervalSelectedBorderColor: BLACK_COLORS2[100], - hollowIntervalSelectedBorderOpacity: 1, - hollowIntervalInactiveBorderOpacity: 0.3 - }; -}; -var antvDark = createDarkStyleSheet(); - -// node_modules/@antv/g-canvas/esm/index.js -var esm_exports = {}; -__export(esm_exports, { - AbstractCanvas: () => canvas_default, - AbstractGroup: () => group_default2, - AbstractShape: () => shape_default, - Base: () => base_default2, - Canvas: () => canvas_default2, - Event: () => graph_event_default, - Group: () => group_default3, - PathUtil: () => path_exports, - Shape: () => shape_exports, - assembleFont: () => assembleFont, - getArcParams: () => getArcParams2, - getBBoxMethod: () => getMethod, - getOffScreenContext: () => getOffScreenContext, - getTextHeight: () => getTextHeight, - invert: () => invert4, - isAllowCapture: () => isAllowCapture, - multiplyVec2: () => multiplyVec2, - version: () => version -}); - -// node_modules/@antv/g-canvas/esm/shape/index.js -var shape_exports = {}; -__export(shape_exports, { - Base: () => base_default15, - Circle: () => circle_default5, - Ellipse: () => ellipse_default3, - Image: () => image_default2, - Line: () => line_default7, - Marker: () => marker_default, - Path: () => path_default2, - Polygon: () => polygon_default3, - Polyline: () => polyline_default3, - Rect: () => rect_default2, - Text: () => text_default3 -}); - -// node_modules/@antv/g-canvas/esm/util/util.js -function getPixelRatio() { - return window ? window.devicePixelRatio : 1; -} -function distance8(x1, y1, x22, y22) { - var dx = x1 - x22; - var dy = y1 - y22; - return Math.sqrt(dx * dx + dy * dy); -} -function inBox(minX, minY, width2, height, x6, y5) { - return x6 >= minX && x6 <= minX + width2 && y5 >= minY && y5 <= minY + height; -} -function intersectRect2(box1, box2) { - return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY); -} -function mergeRegion(region1, region2) { - if (!region1 || !region2) { - return region1 || region2; - } - return { - minX: Math.min(region1.minX, region2.minX), - minY: Math.min(region1.minY, region2.minY), - maxX: Math.max(region1.maxX, region2.maxX), - maxY: Math.max(region1.maxY, region2.maxY) - }; -} -function isSamePoint2(point1, point2) { - return point1[0] === point2[0] && point1[1] === point2[1]; -} - -// node_modules/@antv/g-canvas/esm/util/parse.js -var regexLG2 = /^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i; -var regexRG2 = /^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i; -var regexPR = /^p\s*\(\s*([axyn])\s*\)\s*(.*)/i; -var regexColorStop2 = /[\d.]+:(#[^\s]+|[^\)]+\))/gi; -function addStop(steps, gradient2) { - var arr = steps.match(regexColorStop2); - each_default(arr, function(item) { - var itemArr = item.split(":"); - gradient2.addColorStop(itemArr[0], itemArr[1]); - }); -} -function parseLineGradient(context, element, gradientStr) { - var arr = regexLG2.exec(gradientStr); - var angle3 = parseFloat(arr[1]) % 360 * (Math.PI / 180); - var steps = arr[2]; - var box2 = element.getBBox(); - var start; - var end2; - if (angle3 >= 0 && angle3 < 1 / 2 * Math.PI) { - start = { - x: box2.minX, - y: box2.minY - }; - end2 = { - x: box2.maxX, - y: box2.maxY - }; - } else if (1 / 2 * Math.PI <= angle3 && angle3 < Math.PI) { - start = { - x: box2.maxX, - y: box2.minY - }; - end2 = { - x: box2.minX, - y: box2.maxY - }; - } else if (Math.PI <= angle3 && angle3 < 3 / 2 * Math.PI) { - start = { - x: box2.maxX, - y: box2.maxY - }; - end2 = { - x: box2.minX, - y: box2.minY - }; - } else { - start = { - x: box2.minX, - y: box2.maxY - }; - end2 = { - x: box2.maxX, - y: box2.minY - }; - } - var tanTheta = Math.tan(angle3); - var tanTheta2 = tanTheta * tanTheta; - var x6 = (end2.x - start.x + tanTheta * (end2.y - start.y)) / (tanTheta2 + 1) + start.x; - var y5 = tanTheta * (end2.x - start.x + tanTheta * (end2.y - start.y)) / (tanTheta2 + 1) + start.y; - var gradient2 = context.createLinearGradient(start.x, start.y, x6, y5); - addStop(steps, gradient2); - return gradient2; -} -function parseRadialGradient(context, element, gradientStr) { - var arr = regexRG2.exec(gradientStr); - var fx = parseFloat(arr[1]); - var fy = parseFloat(arr[2]); - var fr = parseFloat(arr[3]); - var steps = arr[4]; - if (fr === 0) { - var colors = steps.match(regexColorStop2); - return colors[colors.length - 1].split(":")[1]; - } - var box2 = element.getBBox(); - var width2 = box2.maxX - box2.minX; - var height = box2.maxY - box2.minY; - var r4 = Math.sqrt(width2 * width2 + height * height) / 2; - var gradient2 = context.createRadialGradient(box2.minX + width2 * fx, box2.minY + height * fy, 0, box2.minX + width2 / 2, box2.minY + height / 2, fr * r4); - addStop(steps, gradient2); - return gradient2; -} -function parsePattern(context, element, patternStr) { - if (element.get("patternSource") && element.get("patternSource") === patternStr) { - return element.get("pattern"); - } - var pattern2; - var img; - var arr = regexPR.exec(patternStr); - var repeat2 = arr[1]; - var source = arr[2]; - function onload() { - pattern2 = context.createPattern(img, repeat2); - element.set("pattern", pattern2); - element.set("patternSource", patternStr); - } - switch (repeat2) { - case "a": - repeat2 = "repeat"; - break; - case "x": - repeat2 = "repeat-x"; - break; - case "y": - repeat2 = "repeat-y"; - break; - case "n": - repeat2 = "no-repeat"; - break; - default: - repeat2 = "no-repeat"; - } - img = new Image(); - if (!source.match(/^data:/i)) { - img.crossOrigin = "Anonymous"; - } - img.src = source; - if (img.complete) { - onload(); - } else { - img.onload = onload; - img.src = img.src; - } - return pattern2; -} -function parseStyle(context, element, color4) { - var bbox = element.getBBox(); - if (isNaN(bbox.x) || isNaN(bbox.y) || isNaN(bbox.width) || isNaN(bbox.height)) { - return color4; - } - if (is_string_default(color4)) { - if (color4[1] === "(" || color4[2] === "(") { - if (color4[0] === "l") { - return parseLineGradient(context, element, color4); - } - if (color4[0] === "r") { - return parseRadialGradient(context, element, color4); - } - if (color4[0] === "p") { - return parsePattern(context, element, color4); - } - } - return color4; - } - if (color4 instanceof CanvasPattern) { - return color4; - } -} -function parseRadius(radius) { - var r1 = 0; - var r22 = 0; - var r32 = 0; - var r4 = 0; - if (is_array_default(radius)) { - if (radius.length === 1) { - r1 = r22 = r32 = r4 = radius[0]; - } else if (radius.length === 2) { - r1 = r32 = radius[0]; - r22 = r4 = radius[1]; - } else if (radius.length === 3) { - r1 = radius[0]; - r22 = r4 = radius[1]; - r32 = radius[2]; - } else { - r1 = radius[0]; - r22 = radius[1]; - r32 = radius[2]; - r4 = radius[3]; - } - } else { - r1 = r22 = r32 = r4 = radius; - } - return [r1, r22, r32, r4]; -} - -// node_modules/@antv/g-canvas/esm/util/arc-params.js -function vMag2(v3) { - return Math.sqrt(v3[0] * v3[0] + v3[1] * v3[1]); -} -function vRatio2(u3, v3) { - return vMag2(u3) * vMag2(v3) ? (u3[0] * v3[0] + u3[1] * v3[1]) / (vMag2(u3) * vMag2(v3)) : 1; -} -function vAngle2(u3, v3) { - return (u3[0] * v3[1] < u3[1] * v3[0] ? -1 : 1) * Math.acos(vRatio2(u3, v3)); -} -function getArcParams2(startPoint, params) { - var rx = params[1]; - var ry = params[2]; - var xRotation = mod_default(to_radian_default(params[3]), Math.PI * 2); - var arcFlag = params[4]; - var sweepFlag = params[5]; - var x1 = startPoint[0]; - var y1 = startPoint[1]; - var x22 = params[6]; - var y22 = params[7]; - var xp = Math.cos(xRotation) * (x1 - x22) / 2 + Math.sin(xRotation) * (y1 - y22) / 2; - var yp = -1 * Math.sin(xRotation) * (x1 - x22) / 2 + Math.cos(xRotation) * (y1 - y22) / 2; - var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); - if (lambda > 1) { - rx *= Math.sqrt(lambda); - ry *= Math.sqrt(lambda); - } - var diff2 = rx * rx * (yp * yp) + ry * ry * (xp * xp); - var f3 = diff2 ? Math.sqrt((rx * rx * (ry * ry) - diff2) / diff2) : 1; - if (arcFlag === sweepFlag) { - f3 *= -1; - } - if (isNaN(f3)) { - f3 = 0; - } - var cxp = ry ? f3 * rx * yp / ry : 0; - var cyp = rx ? f3 * -ry * xp / rx : 0; - var cx = (x1 + x22) / 2 + Math.cos(xRotation) * cxp - Math.sin(xRotation) * cyp; - var cy = (y1 + y22) / 2 + Math.sin(xRotation) * cxp + Math.cos(xRotation) * cyp; - var u3 = [(xp - cxp) / rx, (yp - cyp) / ry]; - var v3 = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; - var theta = vAngle2([1, 0], u3); - var dTheta = vAngle2(u3, v3); - if (vRatio2(u3, v3) <= -1) { - dTheta = Math.PI; - } - if (vRatio2(u3, v3) >= 1) { - dTheta = 0; - } - if (sweepFlag === 0 && dTheta > 0) { - dTheta = dTheta - 2 * Math.PI; - } - if (sweepFlag === 1 && dTheta < 0) { - dTheta = dTheta + 2 * Math.PI; - } - return { - cx, - cy, - rx: isSamePoint2(startPoint, [x22, y22]) ? 0 : rx, - ry: isSamePoint2(startPoint, [x22, y22]) ? 0 : ry, - startAngle: theta, - endAngle: theta + dTheta, - xRotation, - arcFlag, - sweepFlag - }; -} - -// node_modules/@antv/g-canvas/esm/util/arrow.js -var sin = Math.sin; -var cos = Math.cos; -var atan2 = Math.atan2; -var PI = Math.PI; -function _addDefaultArrow(shape, attrs, x1, y1, x22, y22, isStart) { - var stroke = attrs.stroke, lineWidth = attrs.lineWidth; - var x6 = x1 - x22; - var y5 = y1 - y22; - var rad = atan2(y5, x6); - var arrowShape = new path_default2({ - type: "path", - canvas: shape.get("canvas"), - isArrowShape: true, - attrs: { - path: "M" + 10 * cos(PI / 6) + "," + 10 * sin(PI / 6) + " L0,0 L" + 10 * cos(PI / 6) + ",-" + 10 * sin(PI / 6), - stroke, - lineWidth - } - }); - arrowShape.translate(x22, y22); - arrowShape.rotateAtPoint(x22, y22, rad); - shape.set(isStart ? "startArrowShape" : "endArrowShape", arrowShape); -} -function _addCustomizedArrow(shape, attrs, x1, y1, x22, y22, isStart) { - var startArrow = attrs.startArrow, endArrow = attrs.endArrow, stroke = attrs.stroke, lineWidth = attrs.lineWidth; - var arrowAttrs = isStart ? startArrow : endArrow; - var d3 = arrowAttrs.d, arrowFill = arrowAttrs.fill, arrowStroke = arrowAttrs.stroke, arrowLineWidth = arrowAttrs.lineWidth, restAttrs = __rest(arrowAttrs, ["d", "fill", "stroke", "lineWidth"]); - var x6 = x1 - x22; - var y5 = y1 - y22; - var rad = atan2(y5, x6); - if (d3) { - x22 = x22 - cos(rad) * d3; - y22 = y22 - sin(rad) * d3; - } - var arrowShape = new path_default2({ - type: "path", - canvas: shape.get("canvas"), - isArrowShape: true, - attrs: __assign(__assign({}, restAttrs), { - stroke: arrowStroke || stroke, - lineWidth: arrowLineWidth || lineWidth, - fill: arrowFill - }) - }); - arrowShape.translate(x22, y22); - arrowShape.rotateAtPoint(x22, y22, rad); - shape.set(isStart ? "startArrowShape" : "endArrowShape", arrowShape); -} -function getShortenOffset(x1, y1, x22, y22, d3) { - var rad = atan2(y22 - y1, x22 - x1); - return { - dx: cos(rad) * d3, - dy: sin(rad) * d3 - }; -} -function addStartArrow(shape, attrs, x1, y1, x22, y22) { - if (typeof attrs.startArrow === "object") { - _addCustomizedArrow(shape, attrs, x1, y1, x22, y22, true); - } else if (attrs.startArrow) { - _addDefaultArrow(shape, attrs, x1, y1, x22, y22, true); - } else { - shape.set("startArrowShape", null); - } -} -function addEndArrow(shape, attrs, x1, y1, x22, y22) { - if (typeof attrs.endArrow === "object") { - _addCustomizedArrow(shape, attrs, x1, y1, x22, y22, false); - } else if (attrs.endArrow) { - _addDefaultArrow(shape, attrs, x1, y1, x22, y22, false); - } else { - shape.set("startArrowShape", null); - } -} - -// node_modules/@antv/g-canvas/esm/util/draw.js -var SHAPE_ATTRS_MAP = { - fill: "fillStyle", - stroke: "strokeStyle", - opacity: "globalAlpha" -}; -function applyAttrsToContext(context, element) { - var attrs = element.attr(); - for (var k4 in attrs) { - var v3 = attrs[k4]; - var name_1 = SHAPE_ATTRS_MAP[k4] ? SHAPE_ATTRS_MAP[k4] : k4; - if (name_1 === "matrix" && v3) { - context.transform(v3[0], v3[1], v3[3], v3[4], v3[6], v3[7]); - } else if (name_1 === "lineDash" && context.setLineDash) { - is_array_default(v3) && context.setLineDash(v3); - } else { - if (name_1 === "strokeStyle" || name_1 === "fillStyle") { - v3 = parseStyle(context, element, v3); - } else if (name_1 === "globalAlpha") { - v3 = v3 * context.globalAlpha; - } - context[name_1] = v3; - } - } -} -function drawChildren(context, children, region) { - for (var i4 = 0; i4 < children.length; i4++) { - var child = children[i4]; - if (child.cfg.visible) { - child.draw(context, region); - } else { - child.skipDraw(); - } - } -} -function checkRefresh(canvas, children, region) { - var refreshElements = canvas.get("refreshElements"); - each_default(refreshElements, function(el) { - if (el !== canvas) { - var parent_1 = el.cfg.parent; - while (parent_1 && parent_1 !== canvas && !parent_1.cfg.refresh) { - parent_1.cfg.refresh = true; - parent_1 = parent_1.cfg.parent; - } - } - }); - if (refreshElements[0] === canvas) { - setChildrenRefresh(children, region); - } else { - checkChildrenRefresh(children, region); - } -} -function checkChildrenRefresh(children, region) { - for (var i4 = 0; i4 < children.length; i4++) { - var child = children[i4]; - if (child.cfg.visible) { - if (child.cfg.hasChanged) { - child.cfg.refresh = true; - if (child.isGroup()) { - setChildrenRefresh(child.cfg.children, region); - } - } else if (child.cfg.refresh) { - if (child.isGroup()) { - checkChildrenRefresh(child.cfg.children, region); - } - } else { - var refresh = checkElementRefresh(child, region); - child.cfg.refresh = refresh; - if (refresh && child.isGroup()) { - checkChildrenRefresh(child.cfg.children, region); - } - } - } - } -} -function clearChanged(elements) { - for (var i4 = 0; i4 < elements.length; i4++) { - var el = elements[i4]; - el.cfg.hasChanged = false; - if (el.isGroup() && !el.destroyed) { - clearChanged(el.cfg.children); - } - } -} -function setChildrenRefresh(children, region) { - for (var i4 = 0; i4 < children.length; i4++) { - var child = children[i4]; - child.cfg.refresh = true; - if (child.isGroup()) { - setChildrenRefresh(child.get("children"), region); - } - } -} -function checkElementRefresh(shape, region) { - var bbox = shape.cfg.cacheCanvasBBox; - var isAllow = shape.cfg.isInView && bbox && intersectRect2(bbox, region); - return isAllow; -} -function drawPath(shape, context, attrs, arcParamsCache) { - var path = attrs.path, startArrow = attrs.startArrow, endArrow = attrs.endArrow; - if (!path) { - return; - } - var currentPoint = [0, 0]; - var startMovePoint = [0, 0]; - var distance15 = { - dx: 0, - dy: 0 - }; - context.beginPath(); - for (var i4 = 0; i4 < path.length; i4++) { - var params = path[i4]; - var command = params[0]; - if (i4 === 0 && startArrow && startArrow.d) { - var tangent = shape.getStartTangent(); - distance15 = getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], startArrow.d); - } else if (i4 === path.length - 2 && path[i4 + 1][0] === "Z" && endArrow && endArrow.d) { - var lastPath = path[i4 + 1]; - if (lastPath[0] === "Z") { - var tangent = shape.getEndTangent(); - distance15 = getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], endArrow.d); - } - } else if (i4 === path.length - 1 && endArrow && endArrow.d) { - if (path[0] !== "Z") { - var tangent = shape.getEndTangent(); - distance15 = getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], endArrow.d); - } - } - var dx = distance15.dx, dy = distance15.dy; - switch (command) { - case "M": - context.moveTo(params[1] - dx, params[2] - dy); - startMovePoint = [params[1], params[2]]; - break; - case "L": - context.lineTo(params[1] - dx, params[2] - dy); - break; - case "Q": - context.quadraticCurveTo(params[1], params[2], params[3] - dx, params[4] - dy); - break; - case "C": - context.bezierCurveTo(params[1], params[2], params[3], params[4], params[5] - dx, params[6] - dy); - break; - case "A": { - var arcParams = void 0; - if (arcParamsCache) { - arcParams = arcParamsCache[i4]; - if (!arcParams) { - arcParams = getArcParams2(currentPoint, params); - arcParamsCache[i4] = arcParams; - } - } else { - arcParams = getArcParams2(currentPoint, params); - } - var cx = arcParams.cx, cy = arcParams.cy, rx = arcParams.rx, ry = arcParams.ry, startAngle = arcParams.startAngle, endAngle = arcParams.endAngle, xRotation = arcParams.xRotation, sweepFlag = arcParams.sweepFlag; - if (context.ellipse) { - context.ellipse(cx, cy, rx, ry, xRotation, startAngle, endAngle, 1 - sweepFlag); - } else { - var r4 = rx > ry ? rx : ry; - var scaleX = rx > ry ? 1 : rx / ry; - var scaleY = rx > ry ? ry / rx : 1; - context.translate(cx, cy); - context.rotate(xRotation); - context.scale(scaleX, scaleY); - context.arc(0, 0, r4, startAngle, endAngle, 1 - sweepFlag); - context.scale(1 / scaleX, 1 / scaleY); - context.rotate(-xRotation); - context.translate(-cx, -cy); - } - break; - } - case "Z": - context.closePath(); - break; - default: - break; - } - if (command === "Z") { - currentPoint = startMovePoint; - } else { - var len5 = params.length; - currentPoint = [params[len5 - 2], params[len5 - 1]]; - } - } -} -function refreshElement(element, changeType) { - var canvas = element.get("canvas"); - if (canvas) { - if (changeType === "remove") { - element._cacheCanvasBBox = element.get("cacheCanvasBBox"); - } - if (!element.get("hasChanged")) { - element.set("hasChanged", true); - if (!(element.cfg.parent && element.cfg.parent.get("hasChanged"))) { - canvas.refreshElement(element, changeType, canvas); - if (canvas.get("autoDraw")) { - canvas.draw(); - } - } - } - } -} -function getRefreshRegion(element) { - var region; - if (!element.destroyed) { - var cacheBox = element.get("cacheCanvasBBox"); - var validCache = cacheBox && !!(cacheBox.width && cacheBox.height); - var bbox = element.getCanvasBBox(); - var validBBox = bbox && !!(bbox.width && bbox.height); - if (validCache && validBBox) { - region = mergeRegion(cacheBox, bbox); - } else if (validCache) { - region = cacheBox; - } else if (validBBox) { - region = bbox; - } - } else { - region = element["_cacheCanvasBBox"]; - } - return region; -} -function getMergedRegion(elements) { - if (!elements.length) { - return null; - } - var minXArr = []; - var minYArr = []; - var maxXArr = []; - var maxYArr = []; - each_default(elements, function(el) { - var region = getRefreshRegion(el); - if (region) { - minXArr.push(region.minX); - minYArr.push(region.minY); - maxXArr.push(region.maxX); - maxYArr.push(region.maxY); - } - }); - return { - minX: min_default(minXArr), - minY: min_default(minYArr), - maxX: max_default(maxXArr), - maxY: max_default(maxYArr) - }; -} -function mergeView(region, viewRegion) { - if (!region || !viewRegion) { - return null; - } - if (!intersectRect2(region, viewRegion)) { - return null; - } - return { - minX: Math.max(region.minX, viewRegion.minX), - minY: Math.max(region.minY, viewRegion.minY), - maxX: Math.min(region.maxX, viewRegion.maxX), - maxY: Math.min(region.maxY, viewRegion.maxY) - }; -} - -// node_modules/@antv/g-canvas/esm/group.js -var Group = function(_super) { - __extends(Group3, _super); - function Group3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Group3.prototype.onCanvasChange = function(changeType) { - refreshElement(this, changeType); - }; - Group3.prototype.getShapeBase = function() { - return shape_exports; - }; - Group3.prototype.getGroupBase = function() { - return Group3; - }; - Group3.prototype._applyClip = function(context, clip) { - if (clip) { - context.save(); - applyAttrsToContext(context, clip); - clip.createPath(context); - context.restore(); - context.clip(); - clip._afterDraw(); - } - }; - Group3.prototype.cacheCanvasBBox = function() { - var children = this.cfg.children; - var xArr = []; - var yArr = []; - each_default(children, function(child) { - var bbox2 = child.cfg.cacheCanvasBBox; - if (bbox2 && child.cfg.isInView) { - xArr.push(bbox2.minX, bbox2.maxX); - yArr.push(bbox2.minY, bbox2.maxY); - } - }); - var bbox = null; - if (xArr.length) { - var minX = min_default(xArr); - var maxX = max_default(xArr); - var minY = min_default(yArr); - var maxY2 = max_default(yArr); - bbox = { - minX, - minY, - x: minX, - y: minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; - var canvas = this.cfg.canvas; - if (canvas) { - var viewRange = canvas.getViewRange(); - this.set("isInView", intersectRect2(bbox, viewRange)); - } - } else { - this.set("isInView", false); - } - this.set("cacheCanvasBBox", bbox); - }; - Group3.prototype.draw = function(context, region) { - var children = this.cfg.children; - var allowDraw = region ? this.cfg.refresh : true; - if (children.length && allowDraw) { - context.save(); - applyAttrsToContext(context, this); - this._applyClip(context, this.getClip()); - drawChildren(context, children, region); - context.restore(); - this.cacheCanvasBBox(); - } - this.cfg.refresh = null; - this.set("hasChanged", false); - }; - Group3.prototype.skipDraw = function() { - this.set("cacheCanvasBBox", null); - this.set("hasChanged", false); - }; - return Group3; -}(group_default2); -var group_default3 = Group; - -// node_modules/@antv/g-canvas/esm/shape/base.js -var ShapeBase2 = function(_super) { - __extends(ShapeBase4, _super); - function ShapeBase4() { - return _super !== null && _super.apply(this, arguments) || this; - } - ShapeBase4.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { lineWidth: 1, lineAppendWidth: 0, strokeOpacity: 1, fillOpacity: 1 }); - }; - ShapeBase4.prototype.getShapeBase = function() { - return shape_exports; - }; - ShapeBase4.prototype.getGroupBase = function() { - return group_default3; - }; - ShapeBase4.prototype.onCanvasChange = function(changeType) { - refreshElement(this, changeType); - }; - ShapeBase4.prototype.calculateBBox = function() { - var type2 = this.get("type"); - var lineWidth = this.getHitLineWidth(); - var bboxMethod = getMethod(type2); - var box2 = bboxMethod(this); - var halfLineWidth = lineWidth / 2; - var minX = box2.x - halfLineWidth; - var minY = box2.y - halfLineWidth; - var maxX = box2.x + box2.width + halfLineWidth; - var maxY2 = box2.y + box2.height + halfLineWidth; - return { - x: minX, - minX, - y: minY, - minY, - width: box2.width + lineWidth, - height: box2.height + lineWidth, - maxX, - maxY: maxY2 - }; - }; - ShapeBase4.prototype.isFill = function() { - return !!this.attrs["fill"] || this.isClipShape(); - }; - ShapeBase4.prototype.isStroke = function() { - return !!this.attrs["stroke"]; - }; - ShapeBase4.prototype._applyClip = function(context, clip) { - if (clip) { - context.save(); - applyAttrsToContext(context, clip); - clip.createPath(context); - context.restore(); - context.clip(); - clip._afterDraw(); - } - }; - ShapeBase4.prototype.draw = function(context, region) { - var clip = this.cfg.clipShape; - if (region) { - if (this.cfg.refresh === false) { - this.set("hasChanged", false); - return; - } - var bbox = this.getCanvasBBox(); - if (!intersectRect2(region, bbox)) { - this.set("hasChanged", false); - if (this.cfg.isInView) { - this._afterDraw(); - } - return; - } - } - context.save(); - applyAttrsToContext(context, this); - this._applyClip(context, clip); - this.drawPath(context); - context.restore(); - this._afterDraw(); - }; - ShapeBase4.prototype.getCanvasViewBox = function() { - var canvas = this.cfg.canvas; - if (canvas) { - return canvas.getViewRange(); - } - return null; - }; - ShapeBase4.prototype.cacheCanvasBBox = function() { - var canvasBBox = this.getCanvasViewBox(); - if (canvasBBox) { - var bbox = this.getCanvasBBox(); - var isInView = intersectRect2(bbox, canvasBBox); - this.set("isInView", isInView); - if (isInView) { - this.set("cacheCanvasBBox", bbox); - } else { - this.set("cacheCanvasBBox", null); - } - } - }; - ShapeBase4.prototype._afterDraw = function() { - this.cacheCanvasBBox(); - this.set("hasChanged", false); - this.set("refresh", null); - }; - ShapeBase4.prototype.skipDraw = function() { - this.set("cacheCanvasBBox", null); - this.set("isInView", null); - this.set("hasChanged", false); - }; - ShapeBase4.prototype.drawPath = function(context) { - this.createPath(context); - this.strokeAndFill(context); - this.afterDrawPath(context); - }; - ShapeBase4.prototype.fill = function(context) { - context.fill(); - }; - ShapeBase4.prototype.stroke = function(context) { - context.stroke(); - }; - ShapeBase4.prototype.strokeAndFill = function(context) { - var _a6 = this.attrs, lineWidth = _a6.lineWidth, opacity = _a6.opacity, strokeOpacity = _a6.strokeOpacity, fillOpacity = _a6.fillOpacity; - if (this.isFill()) { - if (!is_nil_default(fillOpacity) && fillOpacity !== 1) { - context.globalAlpha = fillOpacity; - this.fill(context); - context.globalAlpha = opacity; - } else { - this.fill(context); - } - } - if (this.isStroke()) { - if (lineWidth > 0) { - if (!is_nil_default(strokeOpacity) && strokeOpacity !== 1) { - context.globalAlpha = strokeOpacity; - } - this.stroke(context); - } - } - this.afterDrawPath(context); - }; - ShapeBase4.prototype.createPath = function(context) { - }; - ShapeBase4.prototype.afterDrawPath = function(context) { - }; - ShapeBase4.prototype.isInShape = function(refX, refY) { - var isStroke = this.isStroke(); - var isFill = this.isFill(); - var lineWidth = this.getHitLineWidth(); - return this.isInStrokeOrPath(refX, refY, isStroke, isFill, lineWidth); - }; - ShapeBase4.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - return false; - }; - ShapeBase4.prototype.getHitLineWidth = function() { - if (!this.isStroke()) { - return 0; - } - var attrs = this.attrs; - return attrs["lineWidth"] + attrs["lineAppendWidth"]; - }; - return ShapeBase4; -}(shape_default); -var base_default15 = ShapeBase2; - -// node_modules/@antv/g-canvas/esm/shape/circle.js -var Circle3 = function(_super) { - __extends(Circle6, _super); - function Circle6() { - return _super !== null && _super.apply(this, arguments) || this; - } - Circle6.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, r: 0 }); - }; - Circle6.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - var attrs = this.attr(); - var cx = attrs.x; - var cy = attrs.y; - var r4 = attrs.r; - var halfLineWidth = lineWidth / 2; - var absDistance = distance8(cx, cy, x6, y5); - if (isFill && isStroke) { - return absDistance <= r4 + halfLineWidth; - } - if (isFill) { - return absDistance <= r4; - } - if (isStroke) { - return absDistance >= r4 - halfLineWidth && absDistance <= r4 + halfLineWidth; - } - return false; - }; - Circle6.prototype.createPath = function(context) { - var attrs = this.attr(); - var cx = attrs.x; - var cy = attrs.y; - var r4 = attrs.r; - context.beginPath(); - context.arc(cx, cy, r4, 0, Math.PI * 2, false); - context.closePath(); - }; - return Circle6; -}(base_default15); -var circle_default5 = Circle3; - -// node_modules/@antv/g-canvas/esm/shape/ellipse.js -function ellipseDistance(squareX, squareY, rx, ry) { - return squareX / (rx * rx) + squareY / (ry * ry); -} -var Ellipse = function(_super) { - __extends(Ellipse3, _super); - function Ellipse3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Ellipse3.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, rx: 0, ry: 0 }); - }; - Ellipse3.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - var attrs = this.attr(); - var halfLineWith = lineWidth / 2; - var cx = attrs.x; - var cy = attrs.y; - var rx = attrs.rx, ry = attrs.ry; - var squareX = (x6 - cx) * (x6 - cx); - var squareY = (y5 - cy) * (y5 - cy); - if (isFill && isStroke) { - return ellipseDistance(squareX, squareY, rx + halfLineWith, ry + halfLineWith) <= 1; - } - if (isFill) { - return ellipseDistance(squareX, squareY, rx, ry) <= 1; - } - if (isStroke) { - return ellipseDistance(squareX, squareY, rx - halfLineWith, ry - halfLineWith) >= 1 && ellipseDistance(squareX, squareY, rx + halfLineWith, ry + halfLineWith) <= 1; - } - return false; - }; - Ellipse3.prototype.createPath = function(context) { - var attrs = this.attr(); - var cx = attrs.x; - var cy = attrs.y; - var rx = attrs.rx; - var ry = attrs.ry; - context.beginPath(); - if (context.ellipse) { - context.ellipse(cx, cy, rx, ry, 0, 0, Math.PI * 2, false); - } else { - var r4 = rx > ry ? rx : ry; - var scaleX = rx > ry ? 1 : rx / ry; - var scaleY = rx > ry ? ry / rx : 1; - context.save(); - context.translate(cx, cy); - context.scale(scaleX, scaleY); - context.arc(0, 0, r4, 0, Math.PI * 2); - context.restore(); - context.closePath(); - } - }; - return Ellipse3; -}(base_default15); -var ellipse_default3 = Ellipse; - -// node_modules/@antv/g-canvas/esm/shape/image.js -function isCanvas(dom) { - return dom instanceof HTMLElement && is_string_default(dom.nodeName) && dom.nodeName.toUpperCase() === "CANVAS"; -} -var ImageShape = function(_super) { - __extends(ImageShape2, _super); - function ImageShape2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ImageShape2.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, width: 0, height: 0 }); - }; - ImageShape2.prototype.initAttrs = function(attrs) { - this._setImage(attrs.img); - }; - ImageShape2.prototype.isStroke = function() { - return false; - }; - ImageShape2.prototype.isOnlyHitBox = function() { - return true; - }; - ImageShape2.prototype._afterLoading = function() { - if (this.get("toDraw") === true) { - var canvas = this.get("canvas"); - if (canvas) { - canvas.draw(); - } else { - this.createPath(this.get("context")); - } - } - }; - ImageShape2.prototype._setImage = function(img) { - var _this = this; - var attrs = this.attrs; - if (is_string_default(img)) { - var image_1 = new Image(); - image_1.onload = function() { - if (_this.destroyed) { - return false; - } - _this.attr("img", image_1); - _this.set("loading", false); - _this._afterLoading(); - var callback = _this.get("callback"); - if (callback) { - callback.call(_this); - } - }; - image_1.crossOrigin = "Anonymous"; - image_1.src = img; - this.set("loading", true); - } else if (img instanceof Image) { - if (!attrs.width) { - attrs.width = img.width; - } - if (!attrs.height) { - attrs.height = img.height; - } - } else if (isCanvas(img)) { - if (!attrs.width) { - attrs.width = Number(img.getAttribute("width")); - } - if (!attrs.height) { - attrs.height, Number(img.getAttribute("height")); - } - } - }; - ImageShape2.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - if (name === "img") { - this._setImage(value2); - } - }; - ImageShape2.prototype.createPath = function(context) { - if (this.get("loading")) { - this.set("toDraw", true); - this.set("context", context); - return; - } - var attrs = this.attr(); - var x6 = attrs.x, y5 = attrs.y, width2 = attrs.width, height = attrs.height, sx = attrs.sx, sy = attrs.sy, swidth = attrs.swidth, sheight = attrs.sheight; - var img = attrs.img; - if (img instanceof Image || isCanvas(img)) { - if (!is_nil_default(sx) && !is_nil_default(sy) && !is_nil_default(swidth) && !is_nil_default(sheight)) { - context.drawImage(img, sx, sy, swidth, sheight, x6, y5, width2, height); - } else { - context.drawImage(img, x6, y5, width2, height); - } - } - }; - return ImageShape2; -}(base_default15); -var image_default2 = ImageShape; - -// node_modules/@antv/g-canvas/esm/util/in-stroke/line.js -function inLine(x1, y1, x22, y22, lineWidth, x6, y5) { - var minX = Math.min(x1, x22); - var maxX = Math.max(x1, x22); - var minY = Math.min(y1, y22); - var maxY2 = Math.max(y1, y22); - var halfWidth = lineWidth / 2; - if (!(x6 >= minX - halfWidth && x6 <= maxX + halfWidth && y5 >= minY - halfWidth && y5 <= maxY2 + halfWidth)) { - return false; - } - return line_default.pointToLine(x1, y1, x22, y22, x6, y5) <= lineWidth / 2; -} - -// node_modules/@antv/g-canvas/esm/shape/line.js -var Line3 = function(_super) { - __extends(Line9, _super); - function Line9() { - return _super !== null && _super.apply(this, arguments) || this; - } - Line9.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x1: 0, y1: 0, x2: 0, y2: 0, startArrow: false, endArrow: false }); - }; - Line9.prototype.initAttrs = function(attrs) { - this.setArrow(); - }; - Line9.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - this.setArrow(); - }; - Line9.prototype.setArrow = function() { - var attrs = this.attr(); - var x1 = attrs.x1, y1 = attrs.y1, x22 = attrs.x2, y22 = attrs.y2, startArrow = attrs.startArrow, endArrow = attrs.endArrow; - if (startArrow) { - addStartArrow(this, attrs, x22, y22, x1, y1); - } - if (endArrow) { - addEndArrow(this, attrs, x1, y1, x22, y22); - } - }; - Line9.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - if (!isStroke || !lineWidth) { - return false; - } - var _a6 = this.attr(), x1 = _a6.x1, y1 = _a6.y1, x22 = _a6.x2, y22 = _a6.y2; - return inLine(x1, y1, x22, y22, lineWidth, x6, y5); - }; - Line9.prototype.createPath = function(context) { - var attrs = this.attr(); - var x1 = attrs.x1, y1 = attrs.y1, x22 = attrs.x2, y22 = attrs.y2, startArrow = attrs.startArrow, endArrow = attrs.endArrow; - var startArrowDistance = { - dx: 0, - dy: 0 - }; - var endArrowDistance = { - dx: 0, - dy: 0 - }; - if (startArrow && startArrow.d) { - startArrowDistance = getShortenOffset(x1, y1, x22, y22, attrs.startArrow.d); - } - if (endArrow && endArrow.d) { - endArrowDistance = getShortenOffset(x1, y1, x22, y22, attrs.endArrow.d); - } - context.beginPath(); - context.moveTo(x1 + startArrowDistance.dx, y1 + startArrowDistance.dy); - context.lineTo(x22 - endArrowDistance.dx, y22 - endArrowDistance.dy); - }; - Line9.prototype.afterDrawPath = function(context) { - var startArrowShape = this.get("startArrowShape"); - var endArrowShape = this.get("endArrowShape"); - if (startArrowShape) { - startArrowShape.draw(context); - } - if (endArrowShape) { - endArrowShape.draw(context); - } - }; - Line9.prototype.getTotalLength = function() { - var _a6 = this.attr(), x1 = _a6.x1, y1 = _a6.y1, x22 = _a6.x2, y22 = _a6.y2; - return line_default.length(x1, y1, x22, y22); - }; - Line9.prototype.getPoint = function(ratio) { - var _a6 = this.attr(), x1 = _a6.x1, y1 = _a6.y1, x22 = _a6.x2, y22 = _a6.y2; - return line_default.pointAt(x1, y1, x22, y22, ratio); - }; - return Line9; -}(base_default15); -var line_default7 = Line3; - -// node_modules/@antv/g-canvas/esm/shape/marker.js -var Symbols = { - circle: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["A", r4, r4, 0, 1, 0, x6 + r4, y5], - ["A", r4, r4, 0, 1, 0, x6 - r4, y5] - ]; - }, - square: function(x6, y5, r4) { - return [["M", x6 - r4, y5 - r4], ["L", x6 + r4, y5 - r4], ["L", x6 + r4, y5 + r4], ["L", x6 - r4, y5 + r4], ["Z"]]; - }, - diamond: function(x6, y5, r4) { - return [["M", x6 - r4, y5], ["L", x6, y5 - r4], ["L", x6 + r4, y5], ["L", x6, y5 + r4], ["Z"]]; - }, - triangle: function(x6, y5, r4) { - var diffY = r4 * Math.sin(1 / 3 * Math.PI); - return [["M", x6 - r4, y5 + diffY], ["L", x6, y5 - diffY], ["L", x6 + r4, y5 + diffY], ["Z"]]; - }, - "triangle-down": function(x6, y5, r4) { - var diffY = r4 * Math.sin(1 / 3 * Math.PI); - return [["M", x6 - r4, y5 - diffY], ["L", x6 + r4, y5 - diffY], ["L", x6, y5 + diffY], ["Z"]]; - } -}; -var Marker = function(_super) { - __extends(Marker3, _super); - function Marker3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Marker3.prototype.initAttrs = function(attrs) { - this._resetParamsCache(); - }; - Marker3.prototype._resetParamsCache = function() { - this.set("paramsCache", {}); - }; - Marker3.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - if (["symbol", "x", "y", "r", "radius"].indexOf(name) !== -1) { - this._resetParamsCache(); - } - }; - Marker3.prototype.isOnlyHitBox = function() { - return true; - }; - Marker3.prototype._getR = function(attrs) { - return is_nil_default(attrs.r) ? attrs.radius : attrs.r; - }; - Marker3.prototype._getPath = function() { - var attrs = this.attr(); - var x6 = attrs.x, y5 = attrs.y; - var symbol = attrs.symbol || "circle"; - var r4 = this._getR(attrs); - var method; - var path; - if (is_function_default(symbol)) { - method = symbol; - path = method(x6, y5, r4); - path = pathToAbsolute2(path); - } else { - method = Marker3.Symbols[symbol]; - if (!method) { - console.warn(symbol + " marker is not supported."); - return null; - } - path = method(x6, y5, r4); - } - return path; - }; - Marker3.prototype.createPath = function(context) { - var path = this._getPath(); - var paramsCache = this.get("paramsCache"); - drawPath(this, context, { path }, paramsCache); - }; - Marker3.Symbols = Symbols; - return Marker3; -}(base_default15); -var marker_default = Marker; - -// node_modules/@antv/g-canvas/esm/util/in-path/point-in-path.js -function isPointInPath(shape, x6, y5) { - var ctx4 = getOffScreenContext(); - shape.createPath(ctx4); - return ctx4.isPointInPath(x6, y5); -} - -// node_modules/@antv/g-canvas/esm/util/in-path/polygon.js -var tolerance2 = 1e-6; -function dcmp2(x6) { - if (Math.abs(x6) < tolerance2) { - return 0; - } - return x6 < 0 ? -1 : 1; -} -function onSegment2(p1, p22, q4) { - if ((q4[0] - p1[0]) * (p22[1] - p1[1]) === (p22[0] - p1[0]) * (q4[1] - p1[1]) && Math.min(p1[0], p22[0]) <= q4[0] && q4[0] <= Math.max(p1[0], p22[0]) && Math.min(p1[1], p22[1]) <= q4[1] && q4[1] <= Math.max(p1[1], p22[1])) { - return true; - } - return false; -} -function isInPolygon2(points, x6, y5) { - var isHit = false; - var n3 = points.length; - if (n3 <= 2) { - return false; - } - for (var i4 = 0; i4 < n3; i4++) { - var p1 = points[i4]; - var p22 = points[(i4 + 1) % n3]; - if (onSegment2(p1, p22, [x6, y5])) { - return true; - } - if (dcmp2(p1[1] - y5) > 0 !== dcmp2(p22[1] - y5) > 0 && dcmp2(x6 - (y5 - p1[1]) * (p1[0] - p22[0]) / (p1[1] - p22[1]) - p1[0]) < 0) { - isHit = !isHit; - } - } - return isHit; -} - -// node_modules/@antv/g-canvas/esm/util/in-stroke/arc.js -function arc(cx, cy, r4, startAngle, endAngle, lineWidth, x6, y5) { - var angle3 = (Math.atan2(y5 - cy, x6 - cx) + Math.PI * 2) % (Math.PI * 2); - if (angle3 < startAngle || angle3 > endAngle) { - return false; - } - var point2 = { - x: cx + r4 * Math.cos(angle3), - y: cy + r4 * Math.sin(angle3) - }; - return distance8(point2.x, point2.y, x6, y5) <= lineWidth / 2; -} - -// node_modules/@antv/g-canvas/esm/util/path.js -var transform4 = ext_exports.transform; -function hasArc(path) { - var hasArc2 = false; - var count2 = path.length; - for (var i4 = 0; i4 < count2; i4++) { - var params = path[i4]; - var cmd = params[0]; - if (cmd === "C" || cmd === "A" || cmd === "Q") { - hasArc2 = true; - break; - } - } - return hasArc2; -} -function isPointInStroke(segments, lineWidth, x6, y5, length5) { - var isHit = false; - var halfWidth = lineWidth / 2; - for (var i4 = 0; i4 < segments.length; i4++) { - var segment = segments[i4]; - var currentPoint = segment.currentPoint, params = segment.params, prePoint = segment.prePoint, box2 = segment.box; - if (box2 && !inBox(box2.x - halfWidth, box2.y - halfWidth, box2.width + lineWidth, box2.height + lineWidth, x6, y5)) { - continue; - } - switch (segment.command) { - case "L": - case "Z": - isHit = inLine(prePoint[0], prePoint[1], currentPoint[0], currentPoint[1], lineWidth, x6, y5); - break; - case "Q": - var qDistance = quadratic_default.pointDistance(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4], x6, y5); - isHit = qDistance <= lineWidth / 2; - break; - case "C": - var cDistance = cubic_default.pointDistance(prePoint[0], prePoint[1], params[1], params[2], params[3], params[4], params[5], params[6], x6, y5, length5); - isHit = cDistance <= lineWidth / 2; - break; - case "A": - var arcParams = segment.arcParams; - var cx = arcParams.cx, cy = arcParams.cy, rx = arcParams.rx, ry = arcParams.ry, startAngle = arcParams.startAngle, endAngle = arcParams.endAngle, xRotation = arcParams.xRotation; - var p4 = [x6, y5, 1]; - var r4 = rx > ry ? rx : ry; - var scaleX = rx > ry ? 1 : rx / ry; - var scaleY = rx > ry ? ry / rx : 1; - var m4 = transform4(null, [ - ["t", -cx, -cy], - ["r", -xRotation], - ["s", 1 / scaleX, 1 / scaleY] - ]); - transformMat3(p4, p4, m4); - isHit = arc(0, 0, r4, startAngle, endAngle, lineWidth, p4[0], p4[1]); - break; - default: - break; - } - if (isHit) { - break; - } - } - return isHit; -} -function extractPolygons(path) { - var count2 = path.length; - var polygons = []; - var polylines = []; - var points = []; - for (var i4 = 0; i4 < count2; i4++) { - var params = path[i4]; - var cmd = params[0]; - if (cmd === "M") { - if (points.length) { - polylines.push(points); - points = []; - } - points.push([params[1], params[2]]); - } else if (cmd === "Z") { - if (points.length) { - polygons.push(points); - points = []; - } - } else { - points.push([params[1], params[2]]); - } - } - if (points.length > 0) { - polylines.push(points); - } - return { - polygons, - polylines - }; -} -var path_default3 = __assign({ hasArc, extractPolygons, isPointInStroke }, path_exports); - -// node_modules/@antv/g-canvas/esm/shape/path.js -function isInPolygons(polygons, x6, y5) { - var isHit = false; - for (var i4 = 0; i4 < polygons.length; i4++) { - var points = polygons[i4]; - isHit = isInPolygon2(points, x6, y5); - if (isHit) { - break; - } - } - return isHit; -} -var Path = function(_super) { - __extends(Path4, _super); - function Path4() { - return _super !== null && _super.apply(this, arguments) || this; - } - Path4.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { startArrow: false, endArrow: false }); - }; - Path4.prototype.initAttrs = function(attrs) { - this._setPathArr(attrs.path); - this.setArrow(); - }; - Path4.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - if (name === "path") { - this._setPathArr(value2); - } - this.setArrow(); - }; - Path4.prototype._setPathArr = function(path) { - this.attrs.path = pathToAbsolute2(path); - var hasArc2 = path_default3.hasArc(path); - this.set("hasArc", hasArc2); - this.set("paramsCache", {}); - this.set("segments", null); - this.set("curve", null); - this.set("tCache", null); - this.set("totalLength", null); - }; - Path4.prototype.getSegments = function() { - var segments = this.get("segements"); - if (!segments) { - segments = getSegments(this.attr("path")); - this.set("segments", segments); - } - return segments; - }; - Path4.prototype.setArrow = function() { - var attrs = this.attr(); - var startArrow = attrs.startArrow, endArrow = attrs.endArrow; - if (startArrow) { - var tangent = this.getStartTangent(); - addStartArrow(this, attrs, tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1]); - } - if (endArrow) { - var tangent = this.getEndTangent(); - addEndArrow(this, attrs, tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1]); - } - }; - Path4.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - var segments = this.getSegments(); - var hasArc2 = this.get("hasArc"); - var isHit = false; - if (isStroke) { - var length_1 = this.getTotalLength(); - isHit = path_default3.isPointInStroke(segments, lineWidth, x6, y5, length_1); - } - if (!isHit && isFill) { - if (hasArc2) { - isHit = isPointInPath(this, x6, y5); - } else { - var path = this.attr("path"); - var extractResutl = path_default3.extractPolygons(path); - isHit = isInPolygons(extractResutl.polygons, x6, y5) || isInPolygons(extractResutl.polylines, x6, y5); - } - } - return isHit; - }; - Path4.prototype.createPath = function(context) { - var attrs = this.attr(); - var paramsCache = this.get("paramsCache"); - drawPath(this, context, attrs, paramsCache); - }; - Path4.prototype.afterDrawPath = function(context) { - var startArrowShape = this.get("startArrowShape"); - var endArrowShape = this.get("endArrowShape"); - if (startArrowShape) { - startArrowShape.draw(context); - } - if (endArrowShape) { - endArrowShape.draw(context); - } - }; - Path4.prototype.getTotalLength = function() { - var totalLength = this.get("totalLength"); - if (!is_nil_default(totalLength)) { - return totalLength; - } - this._calculateCurve(); - this._setTcache(); - return this.get("totalLength"); - }; - Path4.prototype.getPoint = function(ratio) { - var tCache = this.get("tCache"); - if (!tCache) { - this._calculateCurve(); - this._setTcache(); - tCache = this.get("tCache"); - } - var subt; - var index2; - var curve = this.get("curve"); - if (!tCache || tCache.length === 0) { - if (curve) { - return { - x: curve[0][1], - y: curve[0][2] - }; - } - return null; - } - each_default(tCache, function(v3, i4) { - if (ratio >= v3[0] && ratio <= v3[1]) { - subt = (ratio - v3[0]) / (v3[1] - v3[0]); - index2 = i4; - } - }); - var seg = curve[index2]; - if (is_nil_default(seg) || is_nil_default(index2)) { - return null; - } - var l4 = seg.length; - var nextSeg = curve[index2 + 1]; - return cubic_default.pointAt(seg[l4 - 2], seg[l4 - 1], nextSeg[1], nextSeg[2], nextSeg[3], nextSeg[4], nextSeg[5], nextSeg[6], subt); - }; - Path4.prototype._calculateCurve = function() { - var path = this.attr().path; - this.set("curve", path_default3.pathToCurve(path)); - }; - Path4.prototype._setTcache = function() { - var totalLength = 0; - var tempLength = 0; - var tCache = []; - var segmentT; - var segmentL; - var segmentN; - var l4; - var curve = this.get("curve"); - if (!curve) { - return; - } - each_default(curve, function(segment, i4) { - segmentN = curve[i4 + 1]; - l4 = segment.length; - if (segmentN) { - totalLength += cubic_default.length(segment[l4 - 2], segment[l4 - 1], segmentN[1], segmentN[2], segmentN[3], segmentN[4], segmentN[5], segmentN[6]) || 0; - } - }); - this.set("totalLength", totalLength); - if (totalLength === 0) { - this.set("tCache", []); - return; - } - each_default(curve, function(segment, i4) { - segmentN = curve[i4 + 1]; - l4 = segment.length; - if (segmentN) { - segmentT = []; - segmentT[0] = tempLength / totalLength; - segmentL = cubic_default.length(segment[l4 - 2], segment[l4 - 1], segmentN[1], segmentN[2], segmentN[3], segmentN[4], segmentN[5], segmentN[6]); - tempLength += segmentL || 0; - segmentT[1] = tempLength / totalLength; - tCache.push(segmentT); - } - }); - this.set("tCache", tCache); - }; - Path4.prototype.getStartTangent = function() { - var segments = this.getSegments(); - var result; - if (segments.length > 1) { - var startPoint = segments[0].currentPoint; - var endPoint = segments[1].currentPoint; - var tangent = segments[1].startTangent; - result = []; - if (tangent) { - result.push([startPoint[0] - tangent[0], startPoint[1] - tangent[1]]); - result.push([startPoint[0], startPoint[1]]); - } else { - result.push([endPoint[0], endPoint[1]]); - result.push([startPoint[0], startPoint[1]]); - } - } - return result; - }; - Path4.prototype.getEndTangent = function() { - var segments = this.getSegments(); - var length5 = segments.length; - var result; - if (length5 > 1) { - var startPoint = segments[length5 - 2].currentPoint; - var endPoint = segments[length5 - 1].currentPoint; - var tangent = segments[length5 - 1].endTangent; - result = []; - if (tangent) { - result.push([endPoint[0] - tangent[0], endPoint[1] - tangent[1]]); - result.push([endPoint[0], endPoint[1]]); - } else { - result.push([startPoint[0], startPoint[1]]); - result.push([endPoint[0], endPoint[1]]); - } - } - return result; - }; - return Path4; -}(base_default15); -var path_default2 = Path; - -// node_modules/@antv/g-canvas/esm/util/in-stroke/polyline.js -function inPolyline(points, lineWidth, x6, y5, isClose) { - var count2 = points.length; - if (count2 < 2) { - return false; - } - for (var i4 = 0; i4 < count2 - 1; i4++) { - var x1 = points[i4][0]; - var y1 = points[i4][1]; - var x22 = points[i4 + 1][0]; - var y22 = points[i4 + 1][1]; - if (inLine(x1, y1, x22, y22, lineWidth, x6, y5)) { - return true; - } - } - if (isClose) { - var first = points[0]; - var last2 = points[count2 - 1]; - if (inLine(first[0], first[1], last2[0], last2[1], lineWidth, x6, y5)) { - return true; - } - } - return false; -} - -// node_modules/@antv/g-canvas/esm/shape/polygon.js -var Polygon = function(_super) { - __extends(Polygon4, _super); - function Polygon4() { - return _super !== null && _super.apply(this, arguments) || this; - } - Polygon4.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - var points = this.attr().points; - var isHit = false; - if (isStroke) { - isHit = inPolyline(points, lineWidth, x6, y5, true); - } - if (!isHit && isFill) { - isHit = isInPolygon2(points, x6, y5); - } - return isHit; - }; - Polygon4.prototype.createPath = function(context) { - var attrs = this.attr(); - var points = attrs.points; - if (points.length < 2) { - return; - } - context.beginPath(); - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - if (i4 === 0) { - context.moveTo(point2[0], point2[1]); - } else { - context.lineTo(point2[0], point2[1]); - } - } - context.closePath(); - }; - return Polygon4; -}(base_default15); -var polygon_default3 = Polygon; - -// node_modules/@antv/g-canvas/esm/shape/polyline.js -var PolyLine = function(_super) { - __extends(PolyLine2, _super); - function PolyLine2() { - return _super !== null && _super.apply(this, arguments) || this; - } - PolyLine2.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { startArrow: false, endArrow: false }); - }; - PolyLine2.prototype.initAttrs = function(attrs) { - this.setArrow(); - }; - PolyLine2.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - this.setArrow(); - if (["points"].indexOf(name) !== -1) { - this._resetCache(); - } - }; - PolyLine2.prototype._resetCache = function() { - this.set("totalLength", null); - this.set("tCache", null); - }; - PolyLine2.prototype.setArrow = function() { - var attrs = this.attr(); - var _a6 = this.attrs, points = _a6.points, startArrow = _a6.startArrow, endArrow = _a6.endArrow; - var length5 = points.length; - var x1 = points[0][0]; - var y1 = points[0][1]; - var x22 = points[length5 - 1][0]; - var y22 = points[length5 - 1][1]; - if (startArrow) { - addStartArrow(this, attrs, points[1][0], points[1][1], x1, y1); - } - if (endArrow) { - addEndArrow(this, attrs, points[length5 - 2][0], points[length5 - 2][1], x22, y22); - } - }; - PolyLine2.prototype.isFill = function() { - return false; - }; - PolyLine2.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - if (!isStroke || !lineWidth) { - return false; - } - var points = this.attr().points; - return inPolyline(points, lineWidth, x6, y5, false); - }; - PolyLine2.prototype.isStroke = function() { - return true; - }; - PolyLine2.prototype.createPath = function(context) { - var _a6 = this.attr(), points = _a6.points, startArrow = _a6.startArrow, endArrow = _a6.endArrow; - var length5 = points.length; - if (points.length < 2) { - return; - } - var x1 = points[0][0]; - var y1 = points[0][1]; - var x22 = points[length5 - 1][0]; - var y22 = points[length5 - 1][1]; - if (startArrow && startArrow.d) { - var distance15 = getShortenOffset(x1, y1, points[1][0], points[1][1], startArrow.d); - x1 += distance15.dx; - y1 += distance15.dy; - } - if (endArrow && endArrow.d) { - var distance15 = getShortenOffset(points[length5 - 2][0], points[length5 - 2][1], x22, y22, endArrow.d); - x22 -= distance15.dx; - y22 -= distance15.dy; - } - context.beginPath(); - context.moveTo(x1, y1); - for (var i4 = 0; i4 < length5 - 1; i4++) { - var point2 = points[i4]; - context.lineTo(point2[0], point2[1]); - } - context.lineTo(x22, y22); - }; - PolyLine2.prototype.afterDrawPath = function(context) { - var startArrowShape = this.get("startArrowShape"); - var endArrowShape = this.get("endArrowShape"); - if (startArrowShape) { - startArrowShape.draw(context); - } - if (endArrowShape) { - endArrowShape.draw(context); - } - }; - PolyLine2.prototype.getTotalLength = function() { - var points = this.attr().points; - var totalLength = this.get("totalLength"); - if (!is_nil_default(totalLength)) { - return totalLength; - } - this.set("totalLength", polyline_default.length(points)); - return this.get("totalLength"); - }; - PolyLine2.prototype.getPoint = function(ratio) { - var points = this.attr().points; - var tCache = this.get("tCache"); - if (!tCache) { - this._setTcache(); - tCache = this.get("tCache"); - } - var subt; - var index2; - each_default(tCache, function(v3, i4) { - if (ratio >= v3[0] && ratio <= v3[1]) { - subt = (ratio - v3[0]) / (v3[1] - v3[0]); - index2 = i4; - } - }); - return line_default.pointAt(points[index2][0], points[index2][1], points[index2 + 1][0], points[index2 + 1][1], subt); - }; - PolyLine2.prototype._setTcache = function() { - var points = this.attr().points; - if (!points || points.length === 0) { - return; - } - var totalLength = this.getTotalLength(); - if (totalLength <= 0) { - return; - } - var tempLength = 0; - var tCache = []; - var segmentT; - var segmentL; - each_default(points, function(p4, i4) { - if (points[i4 + 1]) { - segmentT = []; - segmentT[0] = tempLength / totalLength; - segmentL = line_default.length(p4[0], p4[1], points[i4 + 1][0], points[i4 + 1][1]); - tempLength += segmentL; - segmentT[1] = tempLength / totalLength; - tCache.push(segmentT); - } - }); - this.set("tCache", tCache); - }; - PolyLine2.prototype.getStartTangent = function() { - var points = this.attr().points; - var result = []; - result.push([points[1][0], points[1][1]]); - result.push([points[0][0], points[0][1]]); - return result; - }; - PolyLine2.prototype.getEndTangent = function() { - var points = this.attr().points; - var l4 = points.length - 1; - var result = []; - result.push([points[l4 - 1][0], points[l4 - 1][1]]); - result.push([points[l4][0], points[l4][1]]); - return result; - }; - return PolyLine2; -}(base_default15); -var polyline_default3 = PolyLine; - -// node_modules/@antv/g-canvas/esm/util/in-stroke/rect.js -function inRect(minX, minY, width2, height, lineWidth, x6, y5) { - var halfWidth = lineWidth / 2; - return inBox(minX - halfWidth, minY - halfWidth, width2, lineWidth, x6, y5) || inBox(minX + width2 - halfWidth, minY - halfWidth, lineWidth, height, x6, y5) || inBox(minX + halfWidth, minY + height - halfWidth, width2, lineWidth, x6, y5) || inBox(minX - halfWidth, minY + halfWidth, lineWidth, height, x6, y5); -} - -// node_modules/@antv/g-canvas/esm/util/in-stroke/rect-radius.js -function rectWithRadius(minX, minY, width2, height, radius, lineWidth, x6, y5) { - var halfWidth = lineWidth / 2; - return inLine(minX + radius, minY, minX + width2 - radius, minY, lineWidth, x6, y5) || inLine(minX + width2, minY + radius, minX + width2, minY + height - radius, lineWidth, x6, y5) || inLine(minX + width2 - radius, minY + height, minX + radius, minY + height, lineWidth, x6, y5) || inLine(minX, minY + height - radius, minX, minY + radius, lineWidth, x6, y5) || arc(minX + width2 - radius, minY + radius, radius, 1.5 * Math.PI, 2 * Math.PI, lineWidth, x6, y5) || arc(minX + width2 - radius, minY + height - radius, radius, 0, 0.5 * Math.PI, lineWidth, x6, y5) || arc(minX + radius, minY + height - radius, radius, 0.5 * Math.PI, Math.PI, lineWidth, x6, y5) || arc(minX + radius, minY + radius, radius, Math.PI, 1.5 * Math.PI, lineWidth, x6, y5); -} - -// node_modules/@antv/g-canvas/esm/shape/rect.js -var Rect = function(_super) { - __extends(Rect4, _super); - function Rect4() { - return _super !== null && _super.apply(this, arguments) || this; - } - Rect4.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, width: 0, height: 0, radius: 0 }); - }; - Rect4.prototype.isInStrokeOrPath = function(x6, y5, isStroke, isFill, lineWidth) { - var attrs = this.attr(); - var minX = attrs.x; - var minY = attrs.y; - var width2 = attrs.width; - var height = attrs.height; - var radius = attrs.radius; - if (!radius) { - var halfWidth = lineWidth / 2; - if (isFill && isStroke) { - return inBox(minX - halfWidth, minY - halfWidth, width2 + halfWidth, height + halfWidth, x6, y5); - } - if (isFill) { - return inBox(minX, minY, width2, height, x6, y5); - } - if (isStroke) { - return inRect(minX, minY, width2, height, lineWidth, x6, y5); - } - } else { - var isHit = false; - if (isStroke) { - isHit = rectWithRadius(minX, minY, width2, height, radius, lineWidth, x6, y5); - } - if (!isHit && isFill) { - isHit = isPointInPath(this, x6, y5); - } - return isHit; - } - }; - Rect4.prototype.createPath = function(context) { - var attrs = this.attr(); - var x6 = attrs.x; - var y5 = attrs.y; - var width2 = attrs.width; - var height = attrs.height; - var radius = attrs.radius; - context.beginPath(); - if (radius === 0) { - context.rect(x6, y5, width2, height); - } else { - var _a6 = parseRadius(radius), r1 = _a6[0], r22 = _a6[1], r32 = _a6[2], r4 = _a6[3]; - context.moveTo(x6 + r1, y5); - context.lineTo(x6 + width2 - r22, y5); - r22 !== 0 && context.arc(x6 + width2 - r22, y5 + r22, r22, -Math.PI / 2, 0); - context.lineTo(x6 + width2, y5 + height - r32); - r32 !== 0 && context.arc(x6 + width2 - r32, y5 + height - r32, r32, 0, Math.PI / 2); - context.lineTo(x6 + r4, y5 + height); - r4 !== 0 && context.arc(x6 + r4, y5 + height - r4, r4, Math.PI / 2, Math.PI); - context.lineTo(x6, y5 + r1); - r1 !== 0 && context.arc(x6 + r1, y5 + r1, r1, Math.PI, Math.PI * 1.5); - context.closePath(); - } - }; - return Rect4; -}(base_default15); -var rect_default2 = Rect; - -// node_modules/@antv/g-canvas/esm/shape/text.js -var Text = function(_super) { - __extends(Text3, _super); - function Text3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Text3.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, text: null, fontSize: 12, fontFamily: "sans-serif", fontStyle: "normal", fontWeight: "normal", fontVariant: "normal", textAlign: "start", textBaseline: "bottom" }); - }; - Text3.prototype.isOnlyHitBox = function() { - return true; - }; - Text3.prototype.initAttrs = function(attrs) { - this._assembleFont(); - if (attrs.text) { - this._setText(attrs.text); - } - }; - Text3.prototype._assembleFont = function() { - var attrs = this.attrs; - attrs.font = assembleFont(attrs); - }; - Text3.prototype._setText = function(text) { - var textArr = null; - if (is_string_default(text) && text.indexOf("\n") !== -1) { - textArr = text.split("\n"); - } - this.set("textArr", textArr); - }; - Text3.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - if (name.startsWith("font")) { - this._assembleFont(); - } - if (name === "text") { - this._setText(value2); - } - }; - Text3.prototype._getSpaceingY = function() { - var attrs = this.attrs; - var lineHeight = attrs.lineHeight; - var fontSize = attrs.fontSize * 1; - return lineHeight ? lineHeight - fontSize : fontSize * 0.14; - }; - Text3.prototype._drawTextArr = function(context, textArr, isFill) { - var attrs = this.attrs; - var textBaseline = attrs.textBaseline; - var x6 = attrs.x; - var y5 = attrs.y; - var fontSize = attrs.fontSize * 1; - var spaceingY = this._getSpaceingY(); - var height = getTextHeight(attrs.text, attrs.fontSize, attrs.lineHeight); - var subY; - each_default(textArr, function(subText, index2) { - subY = y5 + index2 * (spaceingY + fontSize) - height + fontSize; - if (textBaseline === "middle") - subY += height - fontSize - (height - fontSize) / 2; - if (textBaseline === "top") - subY += height - fontSize; - if (!is_nil_default(subText)) { - if (isFill) { - context.fillText(subText, x6, subY); - } else { - context.strokeText(subText, x6, subY); - } - } - }); - }; - Text3.prototype._drawText = function(context, isFill) { - var attrs = this.attr(); - var x6 = attrs.x; - var y5 = attrs.y; - var textArr = this.get("textArr"); - if (textArr) { - this._drawTextArr(context, textArr, isFill); - } else { - var text = attrs.text; - if (!is_nil_default(text)) { - if (isFill) { - context.fillText(text, x6, y5); - } else { - context.strokeText(text, x6, y5); - } - } - } - }; - Text3.prototype.strokeAndFill = function(context) { - var _a6 = this.attrs, lineWidth = _a6.lineWidth, opacity = _a6.opacity, strokeOpacity = _a6.strokeOpacity, fillOpacity = _a6.fillOpacity; - if (this.isStroke()) { - if (lineWidth > 0) { - if (!is_nil_default(strokeOpacity) && strokeOpacity !== 1) { - context.globalAlpha = opacity; - } - this.stroke(context); - } - } - if (this.isFill()) { - if (!is_nil_default(fillOpacity) && fillOpacity !== 1) { - context.globalAlpha = fillOpacity; - this.fill(context); - context.globalAlpha = opacity; - } else { - this.fill(context); - } - } - this.afterDrawPath(context); - }; - Text3.prototype.fill = function(context) { - this._drawText(context, true); - }; - Text3.prototype.stroke = function(context) { - this._drawText(context, false); - }; - return Text3; -}(base_default15); -var text_default3 = Text; - -// node_modules/@antv/g-canvas/esm/util/hit.js -function invertFromMatrix(v3, matrix) { - if (matrix) { - var invertMatrix3 = invert4(matrix); - return multiplyVec2(invertMatrix3, v3); - } - return v3; -} -function getRefXY(element, x6, y5) { - var totalMatrix = element.getTotalMatrix(); - if (totalMatrix) { - var _a6 = invertFromMatrix([x6, y5, 1], totalMatrix), refX = _a6[0], refY = _a6[1]; - return [refX, refY]; - } - return [x6, y5]; -} -function preTest(element, x6, y5) { - if (element.isCanvas && element.isCanvas()) { - return true; - } - if (!isAllowCapture(element) || element.cfg.isInView === false) { - return false; - } - if (element.cfg.clipShape) { - var _a6 = getRefXY(element, x6, y5), refX = _a6[0], refY = _a6[1]; - if (element.isClipped(refX, refY)) { - return false; - } - } - var bbox = element.cfg.cacheCanvasBBox || element.getCanvasBBox(); - if (!(x6 >= bbox.minX && x6 <= bbox.maxX && y5 >= bbox.minY && y5 <= bbox.maxY)) { - return false; - } - return true; -} -function getShape(container2, x6, y5) { - if (!preTest(container2, x6, y5)) { - return null; - } - var shape = null; - var children = container2.getChildren(); - var count2 = children.length; - for (var i4 = count2 - 1; i4 >= 0; i4--) { - var child = children[i4]; - if (child.isGroup()) { - shape = getShape(child, x6, y5); - } else if (preTest(child, x6, y5)) { - var curShape = child; - var _a6 = getRefXY(child, x6, y5), refX = _a6[0], refY = _a6[1]; - if (curShape.isInShape(refX, refY)) { - shape = child; - } - } - if (shape) { - break; - } - } - return shape; -} - -// node_modules/@antv/g-canvas/esm/canvas.js -var Canvas2 = function(_super) { - __extends(Canvas4, _super); - function Canvas4() { - return _super !== null && _super.apply(this, arguments) || this; - } - Canvas4.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - cfg["renderer"] = "canvas"; - cfg["autoDraw"] = true; - cfg["localRefresh"] = true; - cfg["refreshElements"] = []; - cfg["clipView"] = true; - cfg["quickHit"] = false; - return cfg; - }; - Canvas4.prototype.onCanvasChange = function(changeType) { - if (changeType === "attr" || changeType === "sort" || changeType === "changeSize") { - this.set("refreshElements", [this]); - this.draw(); - } - }; - Canvas4.prototype.getShapeBase = function() { - return shape_exports; - }; - Canvas4.prototype.getGroupBase = function() { - return group_default3; - }; - Canvas4.prototype.getPixelRatio = function() { - var pixelRatio = this.get("pixelRatio") || getPixelRatio(); - return pixelRatio >= 1 ? Math.ceil(pixelRatio) : 1; - }; - Canvas4.prototype.getViewRange = function() { - return { - minX: 0, - minY: 0, - maxX: this.cfg.width, - maxY: this.cfg.height - }; - }; - Canvas4.prototype.createDom = function() { - var element = document.createElement("canvas"); - var context = element.getContext("2d"); - this.set("context", context); - return element; - }; - Canvas4.prototype.setDOMSize = function(width2, height) { - _super.prototype.setDOMSize.call(this, width2, height); - var context = this.get("context"); - var el = this.get("el"); - var pixelRatio = this.getPixelRatio(); - el.width = pixelRatio * width2; - el.height = pixelRatio * height; - if (pixelRatio > 1) { - context.scale(pixelRatio, pixelRatio); - } - }; - Canvas4.prototype.clear = function() { - _super.prototype.clear.call(this); - this._clearFrame(); - var context = this.get("context"); - var element = this.get("el"); - context.clearRect(0, 0, element.width, element.height); - }; - Canvas4.prototype.getShape = function(x6, y5) { - var shape; - if (this.get("quickHit")) { - shape = getShape(this, x6, y5); - } else { - shape = _super.prototype.getShape.call(this, x6, y5, null); - } - return shape; - }; - Canvas4.prototype._getRefreshRegion = function() { - var elements = this.get("refreshElements"); - var viewRegion = this.getViewRange(); - var region; - if (elements.length && elements[0] === this) { - region = viewRegion; - } else { - region = getMergedRegion(elements); - if (region) { - region.minX = Math.floor(region.minX); - region.minY = Math.floor(region.minY); - region.maxX = Math.ceil(region.maxX); - region.maxY = Math.ceil(region.maxY); - region.maxY += 1; - var clipView = this.get("clipView"); - if (clipView) { - region = mergeView(region, viewRegion); - } - } - } - return region; - }; - Canvas4.prototype.refreshElement = function(element) { - var refreshElements = this.get("refreshElements"); - refreshElements.push(element); - }; - Canvas4.prototype._clearFrame = function() { - var drawFrame = this.get("drawFrame"); - if (drawFrame) { - cancelAnimationFrame2(drawFrame); - this.set("drawFrame", null); - this.set("refreshElements", []); - } - }; - Canvas4.prototype.draw = function() { - var drawFrame = this.get("drawFrame"); - if (this.get("autoDraw") && drawFrame) { - return; - } - this._startDraw(); - }; - Canvas4.prototype._drawAll = function() { - var context = this.get("context"); - var element = this.get("el"); - var children = this.getChildren(); - context.clearRect(0, 0, element.width, element.height); - applyAttrsToContext(context, this); - drawChildren(context, children); - this.set("refreshElements", []); - }; - Canvas4.prototype._drawRegion = function() { - var context = this.get("context"); - var refreshElements = this.get("refreshElements"); - var children = this.getChildren(); - var region = this._getRefreshRegion(); - if (region) { - context.clearRect(region.minX, region.minY, region.maxX - region.minX, region.maxY - region.minY); - context.save(); - context.beginPath(); - context.rect(region.minX, region.minY, region.maxX - region.minX, region.maxY - region.minY); - context.clip(); - applyAttrsToContext(context, this); - checkRefresh(this, children, region); - drawChildren(context, children, region); - context.restore(); - } else if (refreshElements.length) { - clearChanged(refreshElements); - } - each_default(refreshElements, function(element) { - if (element.get("hasChanged")) { - element.set("hasChanged", false); - } - }); - this.set("refreshElements", []); - }; - Canvas4.prototype._startDraw = function() { - var _this = this; - var drawFrame = this.get("drawFrame"); - if (!drawFrame) { - drawFrame = requestAnimationFrame2(function() { - if (_this.get("localRefresh")) { - _this._drawRegion(); - } else { - _this._drawAll(); - } - _this.set("drawFrame", null); - }); - this.set("drawFrame", drawFrame); - } - }; - Canvas4.prototype.skipDraw = function() { - }; - Canvas4.prototype.removeDom = function() { - var el = this.get("el"); - el.width = 0; - el.height = 0; - el.parentNode.removeChild(el); - }; - return Canvas4; -}(canvas_default); -var canvas_default2 = Canvas2; - -// node_modules/@antv/g-canvas/esm/index.js -var version = "0.5.12"; - -// node_modules/@antv/g-svg/esm/index.js -var esm_exports2 = {}; -__export(esm_exports2, { - AbstractCanvas: () => canvas_default, - AbstractGroup: () => group_default2, - AbstractShape: () => shape_default, - Base: () => base_default2, - Canvas: () => canvas_default3, - Event: () => graph_event_default, - Group: () => group_default4, - PathUtil: () => path_exports, - Shape: () => shape_exports2, - assembleFont: () => assembleFont, - getBBoxMethod: () => getMethod, - getOffScreenContext: () => getOffScreenContext, - getTextHeight: () => getTextHeight, - invert: () => invert4, - isAllowCapture: () => isAllowCapture, - multiplyVec2: () => multiplyVec2, - version: () => version2 -}); - -// node_modules/@antv/g-svg/esm/shape/index.js -var shape_exports2 = {}; -__export(shape_exports2, { - Base: () => base_default16, - Circle: () => circle_default6, - Dom: () => dom_default, - Ellipse: () => ellipse_default4, - Image: () => image_default3, - Line: () => line_default8, - Marker: () => marker_default2, - Path: () => path_default4, - Polygon: () => polygon_default4, - Polyline: () => polyline_default4, - Rect: () => rect_default3, - Text: () => text_default4 -}); - -// node_modules/@antv/g-svg/esm/constant.js -var SHAPE_TO_TAGS = { - rect: "path", - circle: "circle", - line: "line", - path: "path", - marker: "path", - text: "text", - polyline: "polyline", - polygon: "polygon", - image: "image", - ellipse: "ellipse", - dom: "foreignObject" -}; -var SVG_ATTR_MAP = { - opacity: "opacity", - fillStyle: "fill", - fill: "fill", - fillOpacity: "fill-opacity", - strokeStyle: "stroke", - strokeOpacity: "stroke-opacity", - stroke: "stroke", - x: "x", - y: "y", - r: "r", - rx: "rx", - ry: "ry", - width: "width", - height: "height", - x1: "x1", - x2: "x2", - y1: "y1", - y2: "y2", - lineCap: "stroke-linecap", - lineJoin: "stroke-linejoin", - lineWidth: "stroke-width", - lineDash: "stroke-dasharray", - lineDashOffset: "stroke-dashoffset", - miterLimit: "stroke-miterlimit", - font: "font", - fontSize: "font-size", - fontStyle: "font-style", - fontVariant: "font-variant", - fontWeight: "font-weight", - fontFamily: "font-family", - startArrow: "marker-start", - endArrow: "marker-end", - path: "d", - class: "class", - id: "id", - style: "style", - preserveAspectRatio: "preserveAspectRatio" -}; - -// node_modules/@antv/g-svg/esm/util/dom.js -function createSVGElement(type2) { - return document.createElementNS("http://www.w3.org/2000/svg", type2); -} -function createDom2(shape) { - var type2 = SHAPE_TO_TAGS[shape.type]; - var parent = shape.getParent(); - if (!type2) { - throw new Error("the type " + shape.type + " is not supported by svg"); - } - var element = createSVGElement(type2); - if (shape.get("id")) { - element.id = shape.get("id"); - } - shape.set("el", element); - shape.set("attrs", {}); - if (parent) { - var parentNode = parent.get("el"); - if (parentNode) { - parentNode.appendChild(element); - } else { - parentNode = parent.createDom(); - parent.set("el", parentNode); - parentNode.appendChild(element); - } - } - return element; -} -function sortDom(element, sorter) { - var el = element.get("el"); - var childList = to_array_default(el.children).sort(sorter); - var fragment = document.createDocumentFragment(); - childList.forEach(function(child) { - fragment.appendChild(child); - }); - el.appendChild(fragment); -} -function moveTo(element, targetIndex) { - var parentNode = element.parentNode; - var siblings = Array.from(parentNode.childNodes).filter(function(node) { - return node.nodeType === 1 && node.nodeName.toLowerCase() !== "defs"; - }); - var target = siblings[targetIndex]; - var currentIndex = siblings.indexOf(element); - if (target) { - if (currentIndex > targetIndex) { - parentNode.insertBefore(element, target); - } else if (currentIndex < targetIndex) { - var targetNext = siblings[targetIndex + 1]; - if (targetNext) { - parentNode.insertBefore(element, targetNext); - } else { - parentNode.appendChild(element); - } - } - } else { - parentNode.appendChild(element); - } -} - -// node_modules/@antv/g-svg/esm/util/svg.js -function setShadow(model, context) { - var el = model.cfg.el; - var attrs = model.attr(); - var cfg = { - dx: attrs.shadowOffsetX, - dy: attrs.shadowOffsetY, - blur: attrs.shadowBlur, - color: attrs.shadowColor - }; - if (!cfg.dx && !cfg.dy && !cfg.blur && !cfg.color) { - el.removeAttribute("filter"); - } else { - var id = context.find("filter", cfg); - if (!id) { - id = context.addShadow(cfg); - } - el.setAttribute("filter", "url(#" + id + ")"); - } -} -function setTransform(model) { - var matrix = model.attr().matrix; - if (matrix) { - var el = model.cfg.el; - var transform18 = []; - for (var i4 = 0; i4 < 9; i4 += 3) { - transform18.push(matrix[i4] + "," + matrix[i4 + 1]); - } - transform18 = transform18.join(","); - if (transform18.indexOf("NaN") === -1) { - el.setAttribute("transform", "matrix(" + transform18 + ")"); - } else { - console.warn("invalid matrix:", matrix); - } - } -} -function setClip(model, context) { - var clip = model.getClip(); - var el = model.get("el"); - if (!clip) { - el.removeAttribute("clip-path"); - } else if (clip && !el.hasAttribute("clip-path")) { - createDom2(clip); - clip.createPath(context); - var id = context.addClip(clip); - el.setAttribute("clip-path", "url(#" + id + ")"); - } -} - -// node_modules/@antv/g-svg/esm/util/draw.js -function drawChildren2(context, children) { - children.forEach(function(child) { - child.draw(context); - }); -} -function refreshElement2(element, changeType) { - var canvas = element.get("canvas"); - if (canvas && canvas.get("autoDraw")) { - var context = canvas.get("context"); - var parent_1 = element.getParent(); - var parentChildren = parent_1 ? parent_1.getChildren() : [canvas]; - var el = element.get("el"); - if (changeType === "remove") { - var isClipShape = element.get("isClipShape"); - if (isClipShape) { - var clipPathEl = el && el.parentNode; - var defsEl = clipPathEl && clipPathEl.parentNode; - if (clipPathEl && defsEl) { - defsEl.removeChild(clipPathEl); - } - } else if (el && el.parentNode) { - el.parentNode.removeChild(el); - } - } else if (changeType === "show") { - el.setAttribute("visibility", "visible"); - } else if (changeType === "hide") { - el.setAttribute("visibility", "hidden"); - } else if (changeType === "zIndex") { - moveTo(el, parentChildren.indexOf(element)); - } else if (changeType === "sort") { - var children_1 = element.get("children"); - if (children_1 && children_1.length) { - sortDom(element, function(a4, b10) { - return children_1.indexOf(a4) - children_1.indexOf(b10) ? 1 : 0; - }); - } - } else if (changeType === "clear") { - if (el) { - el.innerHTML = ""; - } - } else if (changeType === "matrix") { - setTransform(element); - } else if (changeType === "clip") { - setClip(element, context); - } else if (changeType === "attr") { - } else if (changeType === "add") { - element.draw(context); - } - } -} - -// node_modules/@antv/g-svg/esm/group.js -var Group2 = function(_super) { - __extends(Group3, _super); - function Group3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Group3.prototype.isEntityGroup = function() { - return true; - }; - Group3.prototype.createDom = function() { - var element = createSVGElement("g"); - this.set("el", element); - var parent = this.getParent(); - if (parent) { - var parentNode = parent.get("el"); - if (parentNode) { - parentNode.appendChild(element); - } else { - parentNode = parent.createDom(); - parent.set("el", parentNode); - parentNode.appendChild(element); - } - } - return element; - }; - Group3.prototype.afterAttrsChange = function(targetAttrs) { - _super.prototype.afterAttrsChange.call(this, targetAttrs); - var canvas = this.get("canvas"); - if (canvas && canvas.get("autoDraw")) { - var context = canvas.get("context"); - this.createPath(context, targetAttrs); - } - }; - Group3.prototype.onCanvasChange = function(changeType) { - refreshElement2(this, changeType); - }; - Group3.prototype.getShapeBase = function() { - return shape_exports2; - }; - Group3.prototype.getGroupBase = function() { - return Group3; - }; - Group3.prototype.draw = function(context) { - var children = this.getChildren(); - var el = this.get("el"); - if (this.get("destroyed")) { - if (el) { - el.parentNode.removeChild(el); - } - } else { - if (!el) { - this.createDom(); - } - setClip(this, context); - this.createPath(context); - if (children.length) { - drawChildren2(context, children); - } - } - }; - Group3.prototype.createPath = function(context, targetAttrs) { - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - setTransform(this); - }; - return Group3; -}(group_default2); -var group_default4 = Group2; - -// node_modules/@antv/g-svg/esm/shape/base.js -var ShapeBase3 = function(_super) { - __extends(ShapeBase4, _super); - function ShapeBase4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "svg"; - _this.canFill = false; - _this.canStroke = false; - return _this; - } - ShapeBase4.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { lineWidth: 1, lineAppendWidth: 0, strokeOpacity: 1, fillOpacity: 1 }); - }; - ShapeBase4.prototype.afterAttrsChange = function(targetAttrs) { - _super.prototype.afterAttrsChange.call(this, targetAttrs); - var canvas = this.get("canvas"); - if (canvas && canvas.get("autoDraw")) { - var context = canvas.get("context"); - this.draw(context, targetAttrs); - } - }; - ShapeBase4.prototype.getShapeBase = function() { - return shape_exports2; - }; - ShapeBase4.prototype.getGroupBase = function() { - return group_default4; - }; - ShapeBase4.prototype.onCanvasChange = function(changeType) { - refreshElement2(this, changeType); - }; - ShapeBase4.prototype.calculateBBox = function() { - var el = this.get("el"); - var bbox = null; - if (el) { - bbox = el.getBBox(); - } else { - var bboxMethod = getMethod(this.get("type")); - if (bboxMethod) { - bbox = bboxMethod(this); - } - } - if (bbox) { - var x6 = bbox.x, y5 = bbox.y, width2 = bbox.width, height = bbox.height; - var lineWidth = this.getHitLineWidth(); - var halfWidth = lineWidth / 2; - var minX = x6 - halfWidth; - var minY = y5 - halfWidth; - var maxX = x6 + width2 + halfWidth; - var maxY2 = y5 + height + halfWidth; - return { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: width2 + lineWidth, - height: height + lineWidth - }; - } - return { - x: 0, - y: 0, - minX: 0, - minY: 0, - maxX: 0, - maxY: 0, - width: 0, - height: 0 - }; - }; - ShapeBase4.prototype.isFill = function() { - var _a6 = this.attr(), fill = _a6.fill, fillStyle = _a6.fillStyle; - return (fill || fillStyle || this.isClipShape()) && this.canFill; - }; - ShapeBase4.prototype.isStroke = function() { - var _a6 = this.attr(), stroke = _a6.stroke, strokeStyle = _a6.strokeStyle; - return (stroke || strokeStyle) && this.canStroke; - }; - ShapeBase4.prototype.draw = function(context, targetAttrs) { - var el = this.get("el"); - if (this.get("destroyed")) { - if (el) { - el.parentNode.removeChild(el); - } - } else { - if (!el) { - createDom2(this); - } - setClip(this, context); - this.createPath(context, targetAttrs); - this.shadow(context, targetAttrs); - this.strokeAndFill(context, targetAttrs); - this.transform(targetAttrs); - } - }; - ShapeBase4.prototype.createPath = function(context, targetAttrs) { - }; - ShapeBase4.prototype.strokeAndFill = function(context, targetAttrs) { - var attrs = targetAttrs || this.attr(); - var fill = attrs.fill, fillStyle = attrs.fillStyle, stroke = attrs.stroke, strokeStyle = attrs.strokeStyle, fillOpacity = attrs.fillOpacity, strokeOpacity = attrs.strokeOpacity, lineWidth = attrs.lineWidth; - var el = this.get("el"); - if (this.canFill) { - if (!targetAttrs) { - this._setColor(context, "fill", fill || fillStyle); - } else if ("fill" in attrs) { - this._setColor(context, "fill", fill); - } else if ("fillStyle" in attrs) { - this._setColor(context, "fill", fillStyle); - } - if (fillOpacity) { - el.setAttribute(SVG_ATTR_MAP["fillOpacity"], fillOpacity); - } - } - if (this.canStroke && lineWidth > 0) { - if (!targetAttrs) { - this._setColor(context, "stroke", stroke || strokeStyle); - } else if ("stroke" in attrs) { - this._setColor(context, "stroke", stroke); - } else if ("strokeStyle" in attrs) { - this._setColor(context, "stroke", strokeStyle); - } - if (strokeOpacity) { - el.setAttribute(SVG_ATTR_MAP["strokeOpacity"], strokeOpacity); - } - if (lineWidth) { - el.setAttribute(SVG_ATTR_MAP["lineWidth"], lineWidth); - } - } - }; - ShapeBase4.prototype._setColor = function(context, attr, value2) { - var el = this.get("el"); - if (!value2) { - el.setAttribute(SVG_ATTR_MAP[attr], "none"); - return; - } - value2 = value2.trim(); - if (/^[r,R,L,l]{1}[\s]*\(/.test(value2)) { - var id = context.find("gradient", value2); - if (!id) { - id = context.addGradient(value2); - } - el.setAttribute(SVG_ATTR_MAP[attr], "url(#" + id + ")"); - } else if (/^[p,P]{1}[\s]*\(/.test(value2)) { - var id = context.find("pattern", value2); - if (!id) { - id = context.addPattern(value2); - } - el.setAttribute(SVG_ATTR_MAP[attr], "url(#" + id + ")"); - } else { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }; - ShapeBase4.prototype.shadow = function(context, targetAttrs) { - var attrs = this.attr(); - var _a6 = targetAttrs || attrs, shadowOffsetX = _a6.shadowOffsetX, shadowOffsetY = _a6.shadowOffsetY, shadowBlur = _a6.shadowBlur, shadowColor = _a6.shadowColor; - if (shadowOffsetX || shadowOffsetY || shadowBlur || shadowColor) { - setShadow(this, context); - } - }; - ShapeBase4.prototype.transform = function(targetAttrs) { - var attrs = this.attr(); - var matrix = (targetAttrs || attrs).matrix; - if (matrix) { - setTransform(this); - } - }; - ShapeBase4.prototype.isInShape = function(refX, refY) { - return this.isPointInPath(refX, refY); - }; - ShapeBase4.prototype.isPointInPath = function(refX, refY) { - var el = this.get("el"); - var canvas = this.get("canvas"); - var bbox = canvas.get("el").getBoundingClientRect(); - var clientX = refX + bbox.left; - var clientY = refY + bbox.top; - var element = document.elementFromPoint(clientX, clientY); - if (element && element.isEqualNode(el)) { - return true; - } - return false; - }; - ShapeBase4.prototype.getHitLineWidth = function() { - var _a6 = this.attrs, lineWidth = _a6.lineWidth, lineAppendWidth = _a6.lineAppendWidth; - if (this.isStroke()) { - return lineWidth + lineAppendWidth; - } - return 0; - }; - return ShapeBase4; -}(shape_default); -var base_default16 = ShapeBase3; - -// node_modules/@antv/g-svg/esm/shape/circle.js -var Circle4 = function(_super) { - __extends(Circle6, _super); - function Circle6() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "circle"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Circle6.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, r: 0 }); - }; - Circle6.prototype.createPath = function(context, targetAttrs) { - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "x" || attr === "y") { - el.setAttribute("c" + attr, value2); - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - return Circle6; -}(base_default16); -var circle_default6 = Circle4; - -// node_modules/@antv/g-svg/esm/shape/dom.js -var Dom = function(_super) { - __extends(Dom2, _super); - function Dom2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "dom"; - _this.canFill = false; - _this.canStroke = false; - return _this; - } - Dom2.prototype.createPath = function(context, targetAttrs) { - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - if (typeof attrs["html"] === "function") { - var element = attrs["html"].call(this, attrs); - if (element instanceof Element || element instanceof HTMLDocument) { - var children = el.childNodes; - for (var i4 = children.length - 1; i4 >= 0; i4--) { - el.removeChild(children[i4]); - } - el.appendChild(element); - } else { - el.innerHTML = element; - } - } else { - el.innerHTML = attrs["html"]; - } - }; - return Dom2; -}(base_default16); -var dom_default = Dom; - -// node_modules/@antv/g-svg/esm/shape/ellipse.js -var Ellipse2 = function(_super) { - __extends(Ellipse3, _super); - function Ellipse3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "ellipse"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Ellipse3.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, rx: 0, ry: 0 }); - }; - Ellipse3.prototype.createPath = function(context, targetAttrs) { - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "x" || attr === "y") { - el.setAttribute("c" + attr, value2); - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - return Ellipse3; -}(base_default16); -var ellipse_default4 = Ellipse2; - -// node_modules/@antv/g-svg/esm/shape/image.js -var Image2 = function(_super) { - __extends(Image3, _super); - function Image3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "image"; - _this.canFill = false; - _this.canStroke = false; - return _this; - } - Image3.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, width: 0, height: 0 }); - }; - Image3.prototype.createPath = function(context, targetAttrs) { - var _this = this; - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "img") { - _this._setImage(attrs.img); - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - Image3.prototype.setAttr = function(name, value2) { - this.attrs[name] = value2; - if (name === "img") { - this._setImage(value2); - } - }; - Image3.prototype._setImage = function(img) { - var attrs = this.attr(); - var el = this.get("el"); - if (is_string_default(img)) { - el.setAttribute("href", img); - } else if (img instanceof window.Image) { - if (!attrs.width) { - el.setAttribute("width", img.width); - this.attr("width", img.width); - } - if (!attrs.height) { - el.setAttribute("height", img.height); - this.attr("height", img.height); - } - el.setAttribute("href", img.src); - } else if (img instanceof HTMLElement && is_string_default(img.nodeName) && img.nodeName.toUpperCase() === "CANVAS") { - el.setAttribute("href", img.toDataURL()); - } else if (img instanceof ImageData) { - var canvas = document.createElement("canvas"); - canvas.setAttribute("width", "" + img.width); - canvas.setAttribute("height", "" + img.height); - canvas.getContext("2d").putImageData(img, 0, 0); - if (!attrs.width) { - el.setAttribute("width", "" + img.width); - this.attr("width", img.width); - } - if (!attrs.height) { - el.setAttribute("height", "" + img.height); - this.attr("height", img.height); - } - el.setAttribute("href", canvas.toDataURL()); - } - }; - return Image3; -}(base_default16); -var image_default3 = Image2; - -// node_modules/@antv/g-svg/esm/shape/line.js -var Line4 = function(_super) { - __extends(Line9, _super); - function Line9() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "line"; - _this.canFill = false; - _this.canStroke = true; - return _this; - } - Line9.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x1: 0, y1: 0, x2: 0, y2: 0, startArrow: false, endArrow: false }); - }; - Line9.prototype.createPath = function(context, targetAttrs) { - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "startArrow" || attr === "endArrow") { - if (value2) { - var id = is_object_default(value2) ? context.addArrow(attrs, SVG_ATTR_MAP[attr]) : context.getDefaultArrow(attrs, SVG_ATTR_MAP[attr]); - el.setAttribute(SVG_ATTR_MAP[attr], "url(#" + id + ")"); - } else { - el.removeAttribute(SVG_ATTR_MAP[attr]); - } - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - Line9.prototype.getTotalLength = function() { - var _a6 = this.attr(), x1 = _a6.x1, y1 = _a6.y1, x22 = _a6.x2, y22 = _a6.y2; - return line_default.length(x1, y1, x22, y22); - }; - Line9.prototype.getPoint = function(ratio) { - var _a6 = this.attr(), x1 = _a6.x1, y1 = _a6.y1, x22 = _a6.x2, y22 = _a6.y2; - return line_default.pointAt(x1, y1, x22, y22, ratio); - }; - return Line9; -}(base_default16); -var line_default8 = Line4; - -// node_modules/@antv/g-svg/esm/shape/marker/symbols.js -var Symbols2 = { - circle: function(x6, y5, r4) { - return [ - ["M", x6, y5], - ["m", -r4, 0], - ["a", r4, r4, 0, 1, 0, r4 * 2, 0], - ["a", r4, r4, 0, 1, 0, -r4 * 2, 0] - ]; - }, - square: function(x6, y5, r4) { - return [["M", x6 - r4, y5 - r4], ["L", x6 + r4, y5 - r4], ["L", x6 + r4, y5 + r4], ["L", x6 - r4, y5 + r4], ["Z"]]; - }, - diamond: function(x6, y5, r4) { - return [["M", x6 - r4, y5], ["L", x6, y5 - r4], ["L", x6 + r4, y5], ["L", x6, y5 + r4], ["Z"]]; - }, - triangle: function(x6, y5, r4) { - var diffY = r4 * Math.sin(1 / 3 * Math.PI); - return [["M", x6 - r4, y5 + diffY], ["L", x6, y5 - diffY], ["L", x6 + r4, y5 + diffY], ["z"]]; - }, - triangleDown: function(x6, y5, r4) { - var diffY = r4 * Math.sin(1 / 3 * Math.PI); - return [["M", x6 - r4, y5 - diffY], ["L", x6 + r4, y5 - diffY], ["L", x6, y5 + diffY], ["Z"]]; - } -}; -var symbols_default = { - get: function(type2) { - return Symbols2[type2]; - }, - register: function(type2, func) { - Symbols2[type2] = func; - }, - remove: function(type2) { - delete Symbols2[type2]; - }, - getAll: function() { - return Symbols2; - } -}; - -// node_modules/@antv/g-svg/esm/shape/marker/index.js -var Marker2 = function(_super) { - __extends(Marker3, _super); - function Marker3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "marker"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Marker3.prototype.createPath = function(context) { - var el = this.get("el"); - el.setAttribute("d", this._assembleMarker()); - }; - Marker3.prototype._assembleMarker = function() { - var d3 = this._getPath(); - if (is_array_default(d3)) { - return d3.map(function(path) { - return path.join(" "); - }).join(""); - } - return d3; - }; - Marker3.prototype._getPath = function() { - var attrs = this.attr(); - var x6 = attrs.x, y5 = attrs.y; - var r4 = attrs.r || attrs.radius; - var symbol = attrs.symbol || "circle"; - var method; - if (is_function_default(symbol)) { - method = symbol; - } else { - method = symbols_default.get(symbol); - } - if (!method) { - console.warn(method + " symbol is not exist."); - return null; - } - return method(x6, y5, r4); - }; - Marker3.symbolsFactory = symbols_default; - return Marker3; -}(base_default16); -var marker_default2 = Marker2; - -// node_modules/@antv/g-svg/esm/shape/path.js -var Path2 = function(_super) { - __extends(Path4, _super); - function Path4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "path"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Path4.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { startArrow: false, endArrow: false }); - }; - Path4.prototype.createPath = function(context, targetAttrs) { - var _this = this; - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "path" && is_array_default(value2)) { - el.setAttribute("d", _this._formatPath(value2)); - } else if (attr === "startArrow" || attr === "endArrow") { - if (value2) { - var id = is_object_default(value2) ? context.addArrow(attrs, SVG_ATTR_MAP[attr]) : context.getDefaultArrow(attrs, SVG_ATTR_MAP[attr]); - el.setAttribute(SVG_ATTR_MAP[attr], "url(#" + id + ")"); - } else { - el.removeAttribute(SVG_ATTR_MAP[attr]); - } - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - Path4.prototype._formatPath = function(value2) { - var newValue = value2.map(function(path) { - return path.join(" "); - }).join(""); - if (~newValue.indexOf("NaN")) { - return ""; - } - return newValue; - }; - Path4.prototype.getTotalLength = function() { - var el = this.get("el"); - return el ? el.getTotalLength() : null; - }; - Path4.prototype.getPoint = function(ratio) { - var el = this.get("el"); - var totalLength = this.getTotalLength(); - if (totalLength === 0) { - return null; - } - var point2 = el ? el.getPointAtLength(ratio * totalLength) : null; - return point2 ? { - x: point2.x, - y: point2.y - } : null; - }; - return Path4; -}(base_default16); -var path_default4 = Path2; - -// node_modules/@antv/g-svg/esm/shape/polygon.js -var Polygon2 = function(_super) { - __extends(Polygon4, _super); - function Polygon4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "polygon"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Polygon4.prototype.createPath = function(context, targetAttrs) { - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "points" && is_array_default(value2) && value2.length >= 2) { - el.setAttribute("points", value2.map(function(point2) { - return point2[0] + "," + point2[1]; - }).join(" ")); - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - return Polygon4; -}(base_default16); -var polygon_default4 = Polygon2; - -// node_modules/@antv/g-svg/esm/shape/polyline.js -var Polyline = function(_super) { - __extends(Polyline2, _super); - function Polyline2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "polyline"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Polyline2.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { startArrow: false, endArrow: false }); - }; - Polyline2.prototype.onAttrChange = function(name, value2, originValue) { - _super.prototype.onAttrChange.call(this, name, value2, originValue); - if (["points"].indexOf(name) !== -1) { - this._resetCache(); - } - }; - Polyline2.prototype._resetCache = function() { - this.set("totalLength", null); - this.set("tCache", null); - }; - Polyline2.prototype.createPath = function(context, targetAttrs) { - var attrs = this.attr(); - var el = this.get("el"); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "points" && is_array_default(value2) && value2.length >= 2) { - el.setAttribute("points", value2.map(function(point2) { - return point2[0] + "," + point2[1]; - }).join(" ")); - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - Polyline2.prototype.getTotalLength = function() { - var points = this.attr().points; - var totalLength = this.get("totalLength"); - if (!is_nil_default(totalLength)) { - return totalLength; - } - this.set("totalLength", polyline_default.length(points)); - return this.get("totalLength"); - }; - Polyline2.prototype.getPoint = function(ratio) { - var points = this.attr().points; - var tCache = this.get("tCache"); - if (!tCache) { - this._setTcache(); - tCache = this.get("tCache"); - } - var subt; - var index2; - each_default(tCache, function(v3, i4) { - if (ratio >= v3[0] && ratio <= v3[1]) { - subt = (ratio - v3[0]) / (v3[1] - v3[0]); - index2 = i4; - } - }); - return line_default.pointAt(points[index2][0], points[index2][1], points[index2 + 1][0], points[index2 + 1][1], subt); - }; - Polyline2.prototype._setTcache = function() { - var points = this.attr().points; - if (!points || points.length === 0) { - return; - } - var totalLength = this.getTotalLength(); - if (totalLength <= 0) { - return; - } - var tempLength = 0; - var tCache = []; - var segmentT; - var segmentL; - each_default(points, function(p4, i4) { - if (points[i4 + 1]) { - segmentT = []; - segmentT[0] = tempLength / totalLength; - segmentL = line_default.length(p4[0], p4[1], points[i4 + 1][0], points[i4 + 1][1]); - tempLength += segmentL; - segmentT[1] = tempLength / totalLength; - tCache.push(segmentT); - } - }); - this.set("tCache", tCache); - }; - Polyline2.prototype.getStartTangent = function() { - var points = this.attr().points; - var result = []; - result.push([points[1][0], points[1][1]]); - result.push([points[0][0], points[0][1]]); - return result; - }; - Polyline2.prototype.getEndTangent = function() { - var points = this.attr().points; - var l4 = points.length - 1; - var result = []; - result.push([points[l4 - 1][0], points[l4 - 1][1]]); - result.push([points[l4][0], points[l4][1]]); - return result; - }; - return Polyline2; -}(base_default16); -var polyline_default4 = Polyline; - -// node_modules/@antv/g-svg/esm/util/format.js -function parseRadius2(radius) { - var r1 = 0; - var r22 = 0; - var r32 = 0; - var r4 = 0; - if (is_array_default(radius)) { - if (radius.length === 1) { - r1 = r22 = r32 = r4 = radius[0]; - } else if (radius.length === 2) { - r1 = r32 = radius[0]; - r22 = r4 = radius[1]; - } else if (radius.length === 3) { - r1 = radius[0]; - r22 = r4 = radius[1]; - r32 = radius[2]; - } else { - r1 = radius[0]; - r22 = radius[1]; - r32 = radius[2]; - r4 = radius[3]; - } - } else { - r1 = r22 = r32 = r4 = radius; - } - return { - r1, - r2: r22, - r3: r32, - r4 - }; -} - -// node_modules/@antv/g-svg/esm/shape/rect.js -var Rect2 = function(_super) { - __extends(Rect4, _super); - function Rect4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "rect"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Rect4.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, width: 0, height: 0, radius: 0 }); - }; - Rect4.prototype.createPath = function(context, targetAttrs) { - var _this = this; - var attrs = this.attr(); - var el = this.get("el"); - var completed = false; - var pathRelatedAttrs = ["x", "y", "width", "height", "radius"]; - each_default(targetAttrs || attrs, function(value2, attr) { - if (pathRelatedAttrs.indexOf(attr) !== -1 && !completed) { - el.setAttribute("d", _this._assembleRect(attrs)); - completed = true; - } else if (pathRelatedAttrs.indexOf(attr) === -1 && SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - }; - Rect4.prototype._assembleRect = function(attrs) { - var x6 = attrs.x; - var y5 = attrs.y; - var w4 = attrs.width; - var h3 = attrs.height; - var radius = attrs.radius; - if (!radius) { - return "M " + x6 + "," + y5 + " l " + w4 + ",0 l 0," + h3 + " l" + -w4 + " 0 z"; - } - var r4 = parseRadius2(radius); - if (is_array_default(radius)) { - if (radius.length === 1) { - r4.r1 = r4.r2 = r4.r3 = r4.r4 = radius[0]; - } else if (radius.length === 2) { - r4.r1 = r4.r3 = radius[0]; - r4.r2 = r4.r4 = radius[1]; - } else if (radius.length === 3) { - r4.r1 = radius[0]; - r4.r2 = r4.r4 = radius[1]; - r4.r3 = radius[2]; - } else { - r4.r1 = radius[0]; - r4.r2 = radius[1]; - r4.r3 = radius[2]; - r4.r4 = radius[3]; - } - } else { - r4.r1 = r4.r2 = r4.r3 = r4.r4 = radius; - } - var d3 = [ - ["M " + (x6 + r4.r1) + "," + y5], - ["l " + (w4 - r4.r1 - r4.r2) + ",0"], - ["a " + r4.r2 + "," + r4.r2 + ",0,0,1," + r4.r2 + "," + r4.r2], - ["l 0," + (h3 - r4.r2 - r4.r3)], - ["a " + r4.r3 + "," + r4.r3 + ",0,0,1," + -r4.r3 + "," + r4.r3], - ["l " + (r4.r3 + r4.r4 - w4) + ",0"], - ["a " + r4.r4 + "," + r4.r4 + ",0,0,1," + -r4.r4 + "," + -r4.r4], - ["l 0," + (r4.r4 + r4.r1 - h3)], - ["a " + r4.r1 + "," + r4.r1 + ",0,0,1," + r4.r1 + "," + -r4.r1], - ["z"] - ]; - return d3.join(" "); - }; - return Rect4; -}(base_default16); -var rect_default3 = Rect2; - -// node_modules/@antv/g-svg/esm/shape/text.js -var LETTER_SPACING = 0.3; -var BASELINE_MAP = { - top: "before-edge", - middle: "central", - bottom: "after-edge", - alphabetic: "baseline", - hanging: "hanging" -}; -var BASELINE_MAP_FOR_FIREFOX = { - top: "text-before-edge", - middle: "central", - bottom: "text-after-edge", - alphabetic: "alphabetic", - hanging: "hanging" -}; -var ANCHOR_MAP = { - left: "left", - start: "left", - center: "middle", - right: "end", - end: "end" -}; -var Text2 = function(_super) { - __extends(Text3, _super); - function Text3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "text"; - _this.canFill = true; - _this.canStroke = true; - return _this; - } - Text3.prototype.getDefaultAttrs = function() { - var attrs = _super.prototype.getDefaultAttrs.call(this); - return __assign(__assign({}, attrs), { x: 0, y: 0, text: null, fontSize: 12, fontFamily: "sans-serif", fontStyle: "normal", fontWeight: "normal", fontVariant: "normal", textAlign: "start", textBaseline: "bottom" }); - }; - Text3.prototype.createPath = function(context, targetAttrs) { - var _this = this; - var attrs = this.attr(); - var el = this.get("el"); - this._setFont(); - each_default(targetAttrs || attrs, function(value2, attr) { - if (attr === "text") { - _this._setText("" + value2); - } else if (attr === "matrix" && value2) { - setTransform(_this); - } else if (SVG_ATTR_MAP[attr]) { - el.setAttribute(SVG_ATTR_MAP[attr], value2); - } - }); - el.setAttribute("paint-order", "stroke"); - el.setAttribute("style", "stroke-linecap:butt; stroke-linejoin:miter;"); - }; - Text3.prototype._setFont = function() { - var el = this.get("el"); - var _a6 = this.attr(), textBaseline = _a6.textBaseline, textAlign = _a6.textAlign; - var browser2 = detect(); - if (browser2 && browser2.name === "firefox") { - el.setAttribute("dominant-baseline", BASELINE_MAP_FOR_FIREFOX[textBaseline] || "alphabetic"); - } else { - el.setAttribute("alignment-baseline", BASELINE_MAP[textBaseline] || "baseline"); - } - el.setAttribute("text-anchor", ANCHOR_MAP[textAlign] || "left"); - }; - Text3.prototype._setText = function(text) { - var el = this.get("el"); - var _a6 = this.attr(), x6 = _a6.x, _b = _a6.textBaseline, baseline = _b === void 0 ? "bottom" : _b; - if (!text) { - el.innerHTML = ""; - } else if (~text.indexOf("\n")) { - var textArr = text.split("\n"); - var textLen_1 = textArr.length - 1; - var arr_1 = ""; - each_default(textArr, function(segment, i4) { - if (i4 === 0) { - if (baseline === "alphabetic") { - arr_1 += '' + segment + ""; - } else if (baseline === "top") { - arr_1 += '' + segment + ""; - } else if (baseline === "middle") { - arr_1 += '' + segment + ""; - } else if (baseline === "bottom") { - arr_1 += '' + segment + ""; - } else if (baseline === "hanging") { - arr_1 += '' + segment + ""; - } - } else { - arr_1 += '' + segment + ""; - } - }); - el.innerHTML = arr_1; - } else { - el.innerHTML = text; - } - }; - return Text3; -}(base_default16); -var text_default4 = Text2; - -// node_modules/@antv/g-svg/esm/defs/gradient.js -var regexLG3 = /^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i; -var regexRG3 = /^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i; -var regexColorStop3 = /[\d.]+:(#[^\s]+|[^)]+\))/gi; -function addStop2(steps) { - var arr = steps.match(regexColorStop3); - if (!arr) { - return ""; - } - var stops = ""; - arr.sort(function(a4, b10) { - a4 = a4.split(":"); - b10 = b10.split(":"); - return Number(a4[0]) - Number(b10[0]); - }); - each_default(arr, function(item) { - item = item.split(":"); - stops += ''; - }); - return stops; -} -function parseLineGradient2(color4, el) { - var arr = regexLG3.exec(color4); - var angle3 = mod_default(to_radian_default(parseFloat(arr[1])), Math.PI * 2); - var steps = arr[2]; - var start; - var end2; - if (angle3 >= 0 && angle3 < 0.5 * Math.PI) { - start = { - x: 0, - y: 0 - }; - end2 = { - x: 1, - y: 1 - }; - } else if (0.5 * Math.PI <= angle3 && angle3 < Math.PI) { - start = { - x: 1, - y: 0 - }; - end2 = { - x: 0, - y: 1 - }; - } else if (Math.PI <= angle3 && angle3 < 1.5 * Math.PI) { - start = { - x: 1, - y: 1 - }; - end2 = { - x: 0, - y: 0 - }; - } else { - start = { - x: 0, - y: 1 - }; - end2 = { - x: 1, - y: 0 - }; - } - var tanTheta = Math.tan(angle3); - var tanTheta2 = tanTheta * tanTheta; - var x6 = (end2.x - start.x + tanTheta * (end2.y - start.y)) / (tanTheta2 + 1) + start.x; - var y5 = tanTheta * (end2.x - start.x + tanTheta * (end2.y - start.y)) / (tanTheta2 + 1) + start.y; - el.setAttribute("x1", start.x); - el.setAttribute("y1", start.y); - el.setAttribute("x2", x6); - el.setAttribute("y2", y5); - el.innerHTML = addStop2(steps); -} -function parseRadialGradient2(color4, self2) { - var arr = regexRG3.exec(color4); - var cx = parseFloat(arr[1]); - var cy = parseFloat(arr[2]); - var r4 = parseFloat(arr[3]); - var steps = arr[4]; - self2.setAttribute("cx", cx); - self2.setAttribute("cy", cy); - self2.setAttribute("r", r4); - self2.innerHTML = addStop2(steps); -} -var Gradient = function() { - function Gradient2(cfg) { - this.cfg = {}; - var el = null; - var id = unique_id_default("gradient_"); - if (cfg.toLowerCase()[0] === "l") { - el = createSVGElement("linearGradient"); - parseLineGradient2(cfg, el); - } else { - el = createSVGElement("radialGradient"); - parseRadialGradient2(cfg, el); - } - el.setAttribute("id", id); - this.el = el; - this.id = id; - this.cfg = cfg; - return this; - } - Gradient2.prototype.match = function(type2, attr) { - return this.cfg === attr; - }; - return Gradient2; -}(); -var gradient_default = Gradient; - -// node_modules/@antv/g-svg/esm/defs/shadow.js -var ATTR_MAP = { - shadowColor: "color", - shadowOpacity: "opacity", - shadowBlur: "blur", - shadowOffsetX: "dx", - shadowOffsetY: "dy" -}; -var SHADOW_DIMENSION = { - x: "-40%", - y: "-40%", - width: "200%", - height: "200%" -}; -var Shadow = function() { - function Shadow2(cfg) { - this.type = "filter"; - this.cfg = {}; - this.type = "filter"; - var el = createSVGElement("filter"); - each_default(SHADOW_DIMENSION, function(v3, k4) { - el.setAttribute(k4, v3); - }); - this.el = el; - this.id = unique_id_default("filter_"); - this.el.id = this.id; - this.cfg = cfg; - this._parseShadow(cfg, el); - return this; - } - Shadow2.prototype.match = function(type2, cfg) { - if (this.type !== type2) { - return false; - } - var flag = true; - var config = this.cfg; - each_default(Object.keys(config), function(attr) { - if (config[attr] !== cfg[attr]) { - flag = false; - return false; - } - }); - return flag; - }; - Shadow2.prototype.update = function(name, value2) { - var config = this.cfg; - config[ATTR_MAP[name]] = value2; - this._parseShadow(config, this.el); - return this; - }; - Shadow2.prototype._parseShadow = function(config, el) { - var child = ''; - el.innerHTML = child; - }; - return Shadow2; -}(); -var shadow_default = Shadow; - -// node_modules/@antv/g-svg/esm/defs/arrow.js -var Arrow = function() { - function Arrow2(attrs, type2) { - this.cfg = {}; - var el = createSVGElement("marker"); - var id = unique_id_default("marker_"); - el.setAttribute("id", id); - var shape = createSVGElement("path"); - shape.setAttribute("stroke", attrs.stroke || "none"); - shape.setAttribute("fill", attrs.fill || "none"); - el.appendChild(shape); - el.setAttribute("overflow", "visible"); - el.setAttribute("orient", "auto-start-reverse"); - this.el = el; - this.child = shape; - this.id = id; - var cfg = attrs[type2 === "marker-start" ? "startArrow" : "endArrow"]; - this.stroke = attrs.stroke || "#000"; - if (cfg === true) { - this._setDefaultPath(type2, shape); - } else { - this.cfg = cfg; - this._setMarker(attrs.lineWidth, shape); - } - return this; - } - Arrow2.prototype.match = function() { - return false; - }; - Arrow2.prototype._setDefaultPath = function(type2, el) { - var parent = this.el; - el.setAttribute("d", "M0,0 L" + 10 * Math.cos(Math.PI / 6) + ",5 L0,10"); - parent.setAttribute("refX", "" + 10 * Math.cos(Math.PI / 6)); - parent.setAttribute("refY", "" + 5); - }; - Arrow2.prototype._setMarker = function(r4, el) { - var parent = this.el; - var path = this.cfg.path; - var d3 = this.cfg.d; - if (is_array_default(path)) { - path = path.map(function(segment) { - return segment.join(" "); - }).join(""); - } - el.setAttribute("d", path); - parent.appendChild(el); - if (d3) { - parent.setAttribute("refX", "" + d3 / r4); - } - }; - Arrow2.prototype.update = function(fill) { - var child = this.child; - if (child.attr) { - child.attr("fill", fill); - } else { - child.setAttribute("fill", fill); - } - }; - return Arrow2; -}(); -var arrow_default = Arrow; - -// node_modules/@antv/g-svg/esm/defs/clip.js -var Clip = function() { - function Clip2(cfg) { - this.type = "clip"; - this.cfg = {}; - var el = createSVGElement("clipPath"); - this.el = el; - this.id = unique_id_default("clip_"); - el.id = this.id; - var shapeEl = cfg.cfg.el; - el.appendChild(shapeEl); - this.cfg = cfg; - return this; - } - Clip2.prototype.match = function() { - return false; - }; - Clip2.prototype.remove = function() { - var el = this.el; - el.parentNode.removeChild(el); - }; - return Clip2; -}(); -var clip_default = Clip; - -// node_modules/@antv/g-svg/esm/defs/pattern.js -var regexPR2 = /^p\s*\(\s*([axyn])\s*\)\s*(.*)/i; -var Pattern = function() { - function Pattern2(cfg) { - this.cfg = {}; - var el = createSVGElement("pattern"); - el.setAttribute("patternUnits", "userSpaceOnUse"); - var child = createSVGElement("image"); - el.appendChild(child); - var id = unique_id_default("pattern_"); - el.id = id; - this.el = el; - this.id = id; - this.cfg = cfg; - var arr = regexPR2.exec(cfg); - var source = arr[2]; - child.setAttribute("href", source); - var img = new Image(); - if (!source.match(/^data:/i)) { - img.crossOrigin = "Anonymous"; - } - img.src = source; - function onload() { - el.setAttribute("width", "" + img.width); - el.setAttribute("height", "" + img.height); - } - if (img.complete) { - onload(); - } else { - img.onload = onload; - img.src = img.src; - } - return this; - } - Pattern2.prototype.match = function(type2, attr) { - return this.cfg === attr; - }; - return Pattern2; -}(); -var pattern_default = Pattern; - -// node_modules/@antv/g-svg/esm/defs/index.js -var Defs = function() { - function Defs2(canvas) { - var el = createSVGElement("defs"); - var id = unique_id_default("defs_"); - el.id = id; - canvas.appendChild(el); - this.children = []; - this.defaultArrow = {}; - this.el = el; - this.canvas = canvas; - } - Defs2.prototype.find = function(type2, attr) { - var children = this.children; - var result = null; - for (var i4 = 0; i4 < children.length; i4++) { - if (children[i4].match(type2, attr)) { - result = children[i4].id; - break; - } - } - return result; - }; - Defs2.prototype.findById = function(id) { - var children = this.children; - var flag = null; - for (var i4 = 0; i4 < children.length; i4++) { - if (children[i4].id === id) { - flag = children[i4]; - break; - } - } - return flag; - }; - Defs2.prototype.add = function(item) { - this.children.push(item); - item.canvas = this.canvas; - item.parent = this; - }; - Defs2.prototype.getDefaultArrow = function(attrs, name) { - var stroke = attrs.stroke || attrs.strokeStyle; - if (this.defaultArrow[stroke]) { - return this.defaultArrow[stroke].id; - } - var arrow = new arrow_default(attrs, name); - this.defaultArrow[stroke] = arrow; - this.el.appendChild(arrow.el); - this.add(arrow); - return arrow.id; - }; - Defs2.prototype.addGradient = function(cfg) { - var gradient2 = new gradient_default(cfg); - this.el.appendChild(gradient2.el); - this.add(gradient2); - return gradient2.id; - }; - Defs2.prototype.addArrow = function(attrs, name) { - var arrow = new arrow_default(attrs, name); - this.el.appendChild(arrow.el); - this.add(arrow); - return arrow.id; - }; - Defs2.prototype.addShadow = function(cfg) { - var shadow = new shadow_default(cfg); - this.el.appendChild(shadow.el); - this.add(shadow); - return shadow.id; - }; - Defs2.prototype.addPattern = function(cfg) { - var pattern2 = new pattern_default(cfg); - this.el.appendChild(pattern2.el); - this.add(pattern2); - return pattern2.id; - }; - Defs2.prototype.addClip = function(cfg) { - var clip = new clip_default(cfg); - this.el.appendChild(clip.el); - this.add(clip); - return clip.id; - }; - return Defs2; -}(); -var defs_default = Defs; - -// node_modules/@antv/g-svg/esm/canvas.js -var Canvas3 = function(_super) { - __extends(Canvas4, _super); - function Canvas4(cfg) { - return _super.call(this, __assign(__assign({}, cfg), { - autoDraw: true, - renderer: "svg" - })) || this; - } - Canvas4.prototype.getShapeBase = function() { - return shape_exports2; - }; - Canvas4.prototype.getGroupBase = function() { - return group_default4; - }; - Canvas4.prototype.getShape = function(x6, y5, ev) { - var target = ev.target || ev.srcElement; - if (!SHAPE_TO_TAGS[target.tagName]) { - var parent_1 = target.parentNode; - while (parent_1 && !SHAPE_TO_TAGS[parent_1.tagName]) { - parent_1 = parent_1.parentNode; - } - target = parent_1; - } - return this.find(function(child) { - return child.get("el") === target; - }); - }; - Canvas4.prototype.createDom = function() { - var element = createSVGElement("svg"); - var context = new defs_default(element); - element.setAttribute("width", "" + this.get("width")); - element.setAttribute("height", "" + this.get("height")); - this.set("context", context); - return element; - }; - Canvas4.prototype.onCanvasChange = function(changeType) { - var context = this.get("context"); - var el = this.get("el"); - if (changeType === "sort") { - var children_1 = this.get("children"); - if (children_1 && children_1.length) { - sortDom(this, function(a4, b10) { - return children_1.indexOf(a4) - children_1.indexOf(b10) ? 1 : 0; - }); - } - } else if (changeType === "clear") { - if (el) { - el.innerHTML = ""; - var defsEl = context.el; - defsEl.innerHTML = ""; - el.appendChild(defsEl); - } - } else if (changeType === "matrix") { - setTransform(this); - } else if (changeType === "clip") { - setClip(this, context); - } else if (changeType === "changeSize") { - el.setAttribute("width", "" + this.get("width")); - el.setAttribute("height", "" + this.get("height")); - } - }; - Canvas4.prototype.draw = function() { - var context = this.get("context"); - var children = this.getChildren(); - setClip(this, context); - if (children.length) { - drawChildren2(context, children); - } - }; - return Canvas4; -}(canvas_default); -var canvas_default3 = Canvas3; - -// node_modules/@antv/g-svg/esm/index.js -var version2 = "0.5.6"; - -// node_modules/@antv/g2/esm/geometry/path.js -var Path3 = function(_super) { - __extends(Path4, _super); - function Path4(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "path"; - _this.shapeType = "line"; - var _a6 = cfg.connectNulls, connectNulls = _a6 === void 0 ? false : _a6, _b = cfg.showSinglePoint, showSinglePoint = _b === void 0 ? true : _b; - _this.connectNulls = connectNulls; - _this.showSinglePoint = showSinglePoint; - return _this; - } - Path4.prototype.updateElements = function(mappingDataArray, isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - var keyData = new Map(); - var keyIndex = new Map(); - var keys2 = []; - var index2 = 0; - for (var i4 = 0; i4 < mappingDataArray.length; i4++) { - var mappingData = mappingDataArray[i4]; - var key = this.getElementId(mappingData); - keys2.push(key); - keyData.set(key, mappingData); - keyIndex.set(key, index2); - index2++; - } - this.elements = new Array(index2); - var _a6 = diff(this.lastElementsMap, keys2), added = _a6.added, updated = _a6.updated, removed = _a6.removed; - for (var _i = 0, added_1 = added; _i < added_1.length; _i++) { - var key = added_1[_i]; - var mappingData = keyData.get(key); - var shapeFactory = this.getShapeFactory(); - var shapeCfg = this.getShapeInfo(mappingData); - var i4 = keyIndex.get(key); - var element = new element_default2({ - shapeFactory, - container: this.container, - offscreenGroup: this.getOffscreenGroup(), - elementIndex: i4 - }); - element.geometry = this; - element.animate = this.animateOption; - element.draw(shapeCfg, isUpdate); - this.elementsMap[key] = element; - this.elements[i4] = element; - } - for (var _b = 0, updated_1 = updated; _b < updated_1.length; _b++) { - var key = updated_1[_b]; - var mappingData = keyData.get(key); - var element = this.lastElementsMap[key]; - var i4 = keyIndex.get(key); - var shapeCfg = this.getShapeInfo(mappingData); - var preShapeCfg = element.getModel(); - if (this.isCoordinateChanged || isModelChange(preShapeCfg, shapeCfg)) { - element.animate = this.animateOption; - element.update(shapeCfg); - } - this.elementsMap[key] = element; - this.elements[i4] = element; - } - for (var _c = 0, removed_1 = removed; _c < removed_1.length; _c++) { - var key = removed_1[_c]; - var element = this.lastElementsMap[key]; - element.animate = this.animateOption; - element.destroy(); - } - }; - Path4.prototype.getPointsAndData = function(mappingData) { - var points = []; - var data3 = []; - for (var i4 = 0, len5 = mappingData.length; i4 < len5; i4++) { - var obj = mappingData[i4]; - points.push({ - x: obj.x, - y: obj.y - }); - data3.push(obj[FIELD_ORIGIN]); - } - return { - points, - data: data3 - }; - }; - Path4.prototype.getShapeInfo = function(mappingData) { - var shapeCfg = this.getDrawCfg(mappingData[0]); - var _a6 = this.getPointsAndData(mappingData), points = _a6.points, data3 = _a6.data; - shapeCfg.mappingData = mappingData; - shapeCfg.data = data3; - shapeCfg.isStack = !!this.getAdjust("stack"); - shapeCfg.points = points; - shapeCfg.connectNulls = this.connectNulls; - shapeCfg.showSinglePoint = this.showSinglePoint; - return shapeCfg; - }; - return Path4; -}(base_default13); -var path_default5 = Path3; - -// node_modules/@antv/g2/esm/geometry/shape/area/util.js -function getPath2(points, isInCircle, smooth, registeredShape, constraint) { - var path = []; - if (points.length) { - var topLinePoints_1 = []; - var bottomLinePoints_1 = []; - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var point2 = points[i4]; - topLinePoints_1.push(point2[1]); - bottomLinePoints_1.push(point2[0]); - } - bottomLinePoints_1 = bottomLinePoints_1.reverse(); - each_default([topLinePoints_1, bottomLinePoints_1], function(pointsData, index2) { - var subPath = []; - var parsedPoints = registeredShape.parsePoints(pointsData); - var p1 = parsedPoints[0]; - if (topLinePoints_1.length === 1 && bottomLinePoints_1.length === 1) { - subPath = index2 === 0 ? [ - ["M", p1.x - 0.5, p1.y], - ["L", p1.x + 0.5, p1.y] - ] : [ - ["L", p1.x + 0.5, p1.y], - ["L", p1.x - 0.5, p1.y] - ]; - } else { - if (isInCircle) { - parsedPoints.push({ x: p1.x, y: p1.y }); - } - if (smooth) { - subPath = getSplinePath(parsedPoints, false, constraint); - } else { - subPath = getLinePath2(parsedPoints, false); - } - if (index2 > 0) { - subPath[0][0] = "L"; - } - } - path = path.concat(subPath); - }); - path.push(["Z"]); - } - return path; -} -function getShapeAttrs2(cfg, isStroke, smooth, registeredShape, constraint) { - var attrs = getStyle2(cfg, isStroke, !isStroke, "lineWidth"); - var connectNulls = cfg.connectNulls, isInCircle = cfg.isInCircle, points = cfg.points, showSinglePoint = cfg.showSinglePoint; - var pathPoints = getPathPoints(points, connectNulls, showSinglePoint); - var path = []; - for (var i4 = 0, len5 = pathPoints.length; i4 < len5; i4++) { - var eachPoints = pathPoints[i4]; - path = path.concat(getPath2(eachPoints, isInCircle, smooth, registeredShape, constraint)); - } - attrs.path = path; - return attrs; -} -function getConstraint(coordinate11) { - var start = coordinate11.start, end2 = coordinate11.end; - return [ - [start.x, end2.y], - [end2.x, start.y] - ]; -} - -// node_modules/@antv/g2/esm/geometry/shape/area/index.js -var AreaShapeFactory = registerShapeFactory("area", { - defaultShapeType: "area", - getDefaultPoints: function(pointInfo) { - var x6 = pointInfo.x, y0 = pointInfo.y0; - var y5 = is_array_default(pointInfo.y) ? pointInfo.y : [y0, pointInfo.y]; - return y5.map(function(yItem) { - return { - x: x6, - y: yItem - }; - }); - } -}); -registerShape("area", "area", { - draw: function(cfg, container2) { - var attrs = getShapeAttrs2(cfg, false, false, this); - var shape = container2.addShape({ - type: "path", - attrs, - name: "area" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - if (r4 === void 0) { - r4 = 5.5; - } - return [["M", x6 - r4, y5 - 4], ["L", x6 + r4, y5 - 4], ["L", x6 + r4, y5 + 4], ["L", x6 - r4, y5 + 4], ["Z"]]; - }, - style: { - r: 5, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/area.js -var Area = function(_super) { - __extends(Area3, _super); - function Area3(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "area"; - _this.shapeType = "area"; - _this.generatePoints = true; - _this.startOnZero = true; - var _a6 = cfg.startOnZero, startOnZero = _a6 === void 0 ? true : _a6, _b = cfg.sortable, sortable = _b === void 0 ? false : _b, _c = cfg.showSinglePoint, showSinglePoint = _c === void 0 ? false : _c; - _this.startOnZero = startOnZero; - _this.sortable = sortable; - _this.showSinglePoint = showSinglePoint; - return _this; - } - Area3.prototype.getPointsAndData = function(mappingData) { - var points = []; - var data3 = []; - for (var i4 = 0, len5 = mappingData.length; i4 < len5; i4++) { - var obj = mappingData[i4]; - points.push(obj.points); - data3.push(obj[FIELD_ORIGIN]); - } - return { - points, - data: data3 - }; - }; - Area3.prototype.getYMinValue = function() { - if (this.startOnZero) { - return _super.prototype.getYMinValue.call(this); - } - var yScale = this.getYScale(); - return yScale.min; - }; - return Area3; -}(path_default5); -var area_default = Area; - -// node_modules/@antv/g2/esm/geometry/shape/edge/index.js -var EdgeShapeFactory = registerShapeFactory("edge", { - defaultShapeType: "line", - getDefaultPoints: function(pointInfo) { - return splitPoints(pointInfo); - } -}); -registerShape("edge", "line", { - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false, "lineWidth"); - var path = getLinePath2(this.parsePoints(cfg.points), this.coordinate.isPolar); - return container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }) - }); - }, - getMarker: function(markerCfg) { - return { - symbol: "circle", - style: { - r: 4.5, - fill: markerCfg.color - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/edge.js -var Edge = function(_super) { - __extends(Edge4, _super); - function Edge4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "edge"; - _this.shapeType = "edge"; - _this.generatePoints = true; - return _this; - } - return Edge4; -}(base_default13); -var edge_default = Edge; - -// node_modules/@antv/g2/esm/geometry/heatmap.js -var Heatmap = function(_super) { - __extends(Heatmap3, _super); - function Heatmap3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "heatmap"; - _this.paletteCache = {}; - return _this; - } - Heatmap3.prototype.updateElements = function(mappingDataArray, isUpdate) { - if (isUpdate === void 0) { - isUpdate = false; - } - for (var i4 = 0; i4 < mappingDataArray.length; i4++) { - var mappingData = mappingDataArray[i4]; - var range = this.prepareRange(mappingData); - var radius = this.prepareSize(); - var blur_1 = get_default(this.styleOption, ["cfg", "shadowBlur"]); - if (!is_number_default(blur_1)) { - blur_1 = radius / 2; - } - this.prepareGreyScaleBlurredCircle(radius, blur_1); - this.drawWithRange(mappingData, range, radius, blur_1); - } - }; - Heatmap3.prototype.color = function(field6, cfg) { - this.createAttrOption("color", field6, typeof cfg !== "function" ? cfg : ""); - return this; - }; - Heatmap3.prototype.clear = function() { - _super.prototype.clear.call(this); - this.clearShadowCanvasCtx(); - this.paletteCache = {}; - }; - Heatmap3.prototype.prepareRange = function(data3) { - var colorAttr = this.getAttribute("color"); - var colorField = colorAttr.getFields()[0]; - var min7 = Infinity; - var max8 = -Infinity; - data3.forEach(function(row) { - var value2 = row[FIELD_ORIGIN][colorField]; - if (value2 > max8) { - max8 = value2; - } - if (value2 < min7) { - min7 = value2; - } - }); - if (min7 === max8) { - min7 = max8 - 1; - } - return [min7, max8]; - }; - Heatmap3.prototype.prepareSize = function() { - var radius = this.getDefaultValue("size"); - if (!is_number_default(radius)) { - radius = this.getDefaultSize(); - } - return radius; - }; - Heatmap3.prototype.prepareGreyScaleBlurredCircle = function(radius, blur) { - var grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas(); - var r22 = radius + blur; - var ctx4 = grayScaleBlurredCanvas.getContext("2d"); - grayScaleBlurredCanvas.width = grayScaleBlurredCanvas.height = r22 * 2; - ctx4.clearRect(0, 0, grayScaleBlurredCanvas.width, grayScaleBlurredCanvas.height); - ctx4.shadowOffsetX = ctx4.shadowOffsetY = r22 * 2; - ctx4.shadowBlur = blur; - ctx4.shadowColor = "black"; - ctx4.beginPath(); - ctx4.arc(-r22, -r22, radius, 0, Math.PI * 2, true); - ctx4.closePath(); - ctx4.fill(); - }; - Heatmap3.prototype.drawWithRange = function(data3, range, radius, blur) { - var _a6 = this.coordinate, start = _a6.start, end2 = _a6.end; - var width2 = this.coordinate.getWidth(); - var height = this.coordinate.getHeight(); - var colorAttr = this.getAttribute("color"); - var valueField = colorAttr.getFields()[0]; - this.clearShadowCanvasCtx(); - var ctx4 = this.getShadowCanvasCtx(); - if (range) { - data3 = data3.filter(function(row) { - return row[FIELD_ORIGIN][valueField] <= range[1] && row[FIELD_ORIGIN][valueField] >= range[0]; - }); - } - var scale12 = this.scales[valueField]; - for (var _i = 0, data_1 = data3; _i < data_1.length; _i++) { - var obj = data_1[_i]; - var _b = this.getDrawCfg(obj), x6 = _b.x, y5 = _b.y; - var alpha = scale12.scale(obj[FIELD_ORIGIN][valueField]); - this.drawGrayScaleBlurredCircle(x6 - start.x, y5 - end2.y, radius + blur, alpha, ctx4); - } - var colored = ctx4.getImageData(0, 0, width2, height); - this.clearShadowCanvasCtx(); - this.colorize(colored); - ctx4.putImageData(colored, 0, 0); - var imageShape = this.getImageShape(); - imageShape.attr("x", start.x); - imageShape.attr("y", end2.y); - imageShape.attr("width", width2); - imageShape.attr("height", height); - imageShape.attr("img", ctx4.canvas); - imageShape.set("origin", this.getShapeInfo(data3)); - }; - Heatmap3.prototype.getDefaultSize = function() { - var position2 = this.getAttribute("position"); - var coordinate11 = this.coordinate; - return Math.min(coordinate11.getWidth() / (position2.scales[0].ticks.length * 4), coordinate11.getHeight() / (position2.scales[1].ticks.length * 4)); - }; - Heatmap3.prototype.clearShadowCanvasCtx = function() { - var ctx4 = this.getShadowCanvasCtx(); - ctx4.clearRect(0, 0, ctx4.canvas.width, ctx4.canvas.height); - }; - Heatmap3.prototype.getShadowCanvasCtx = function() { - var canvas = this.shadowCanvas; - if (!canvas) { - canvas = document.createElement("canvas"); - this.shadowCanvas = canvas; - } - canvas.width = this.coordinate.getWidth(); - canvas.height = this.coordinate.getHeight(); - return canvas.getContext("2d"); - }; - Heatmap3.prototype.getGrayScaleBlurredCanvas = function() { - if (!this.grayScaleBlurredCanvas) { - this.grayScaleBlurredCanvas = document.createElement("canvas"); - } - return this.grayScaleBlurredCanvas; - }; - Heatmap3.prototype.drawGrayScaleBlurredCircle = function(x6, y5, r4, alpha, ctx4) { - var grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas(); - ctx4.globalAlpha = alpha; - ctx4.drawImage(grayScaleBlurredCanvas, x6 - r4, y5 - r4); - }; - Heatmap3.prototype.colorize = function(img) { - var colorAttr = this.getAttribute("color"); - var pixels = img.data; - var paletteCache = this.paletteCache; - for (var i4 = 3; i4 < pixels.length; i4 += 4) { - var alpha = pixels[i4]; - if (is_number_default(alpha)) { - var palette = paletteCache[alpha] ? paletteCache[alpha] : esm_default2.rgb2arr(colorAttr.gradient(alpha / 256)); - pixels[i4 - 3] = palette[0]; - pixels[i4 - 2] = palette[1]; - pixels[i4 - 1] = palette[2]; - pixels[i4] = alpha; - } - } - }; - Heatmap3.prototype.getImageShape = function() { - var imageShape = this.imageShape; - if (imageShape) { - return imageShape; - } - var container2 = this.container; - imageShape = container2.addShape({ - type: "image", - attrs: {} - }); - this.imageShape = imageShape; - return imageShape; - }; - Heatmap3.prototype.getShapeInfo = function(mappingData) { - var shapeCfg = this.getDrawCfg(mappingData[0]); - var data3 = mappingData.map(function(obj) { - return obj[FIELD_ORIGIN]; - }); - return __assign(__assign({}, shapeCfg), { mappingData, data: data3 }); - }; - return Heatmap3; -}(base_default13); -var heatmap_default = Heatmap; - -// node_modules/@antv/g2/esm/geometry/shape/interval/util.js -function getRectPoints(pointInfo) { - var x6 = pointInfo.x, y5 = pointInfo.y, y0 = pointInfo.y0, size2 = pointInfo.size; - var yMin; - var yMax; - if (is_array_default(y5)) { - yMin = y5[0], yMax = y5[1]; - } else { - yMin = y0; - yMax = y5; - } - var xMin; - var xMax; - if (is_array_default(x6)) { - xMin = x6[0], xMax = x6[1]; - } else { - xMin = x6 - size2 / 2; - xMax = x6 + size2 / 2; - } - var points = [ - { x: xMin, y: yMin }, - { x: xMin, y: yMax } - ]; - points.push({ x: xMax, y: yMax }, { x: xMax, y: yMin }); - return points; -} -function getRectPath(points, isClosed) { - if (isClosed === void 0) { - isClosed = true; - } - var path = []; - var firstPoint = points[0]; - path.push(["M", firstPoint.x, firstPoint.y]); - for (var i4 = 1, len5 = points.length; i4 < len5; i4++) { - path.push(["L", points[i4].x, points[i4].y]); - } - if (isClosed) { - path.push(["L", firstPoint.x, firstPoint.y]); - path.push(["z"]); - } - return path; -} -function parseRadius3(radius, minLength) { - var r1 = 0; - var r22 = 0; - var r32 = 0; - var r4 = 0; - if (is_array_default(radius)) { - if (radius.length === 1) { - r1 = r22 = r32 = r4 = radius[0]; - } else if (radius.length === 2) { - r1 = r32 = radius[0]; - r22 = r4 = radius[1]; - } else if (radius.length === 3) { - r1 = radius[0]; - r22 = r4 = radius[1]; - r32 = radius[2]; - } else { - r1 = radius[0]; - r22 = radius[1]; - r32 = radius[2]; - r4 = radius[3]; - } - } else { - r1 = r22 = r32 = r4 = radius; - } - if (r1 + r22 > minLength) { - r1 = r1 ? minLength / (1 + r22 / r1) : 0; - r22 = minLength - r1; - } - if (r32 + r4 > minLength) { - r32 = r32 ? minLength / (1 + r4 / r32) : 0; - r4 = minLength - r32; - } - return [r1 || 0, r22 || 0, r32 || 0, r4 || 0]; -} -function getBackgroundRectPath(cfg, points, coordinate11) { - var path = []; - if (coordinate11.isRect) { - var p0 = coordinate11.isTransposed ? { x: coordinate11.start.x, y: points[0].y } : { x: points[0].x, y: coordinate11.start.y }; - var p1 = coordinate11.isTransposed ? { x: coordinate11.end.x, y: points[2].y } : { x: points[3].x, y: coordinate11.end.y }; - var radius = get_default(cfg, ["background", "style", "radius"]); - if (radius) { - var width2 = coordinate11.isTransposed ? Math.abs(points[0].y - points[2].y) : points[2].x - points[1].x; - var height = coordinate11.isTransposed ? coordinate11.getWidth() : coordinate11.getHeight(); - var _a6 = parseRadius3(radius, Math.min(width2, height)), r1 = _a6[0], r22 = _a6[1], r32 = _a6[2], r4 = _a6[3]; - path.push(["M", p0.x, p1.y + r1]); - r1 !== 0 && path.push(["A", r1, r1, 0, 0, 1, p0.x + r1, p1.y]); - path.push(["L", p1.x - r22, p1.y]); - r22 !== 0 && path.push(["A", r22, r22, 0, 0, 1, p1.x, p1.y + r22]); - path.push(["L", p1.x, p0.y - r32]); - r32 !== 0 && path.push(["A", r32, r32, 0, 0, 1, p1.x - r32, p0.y]); - path.push(["L", p0.x + r4, p0.y]); - r4 !== 0 && path.push(["A", r4, r4, 0, 0, 1, p0.x, p0.y - r4]); - } else { - path.push(["M", p0.x, p0.y]); - path.push(["L", p1.x, p0.y]); - path.push(["L", p1.x, p1.y]); - path.push(["L", p0.x, p1.y]); - path.push(["L", p0.x, p0.y]); - } - path.push(["z"]); - } - if (coordinate11.isPolar) { - var center2 = coordinate11.getCenter(); - var _b = getAngle3(cfg, coordinate11), startAngle = _b.startAngle, endAngle = _b.endAngle; - if (coordinate11.type !== "theta" && !coordinate11.isTransposed) { - path = getSectorPath(center2.x, center2.y, coordinate11.getRadius(), startAngle, endAngle); - } else { - var pow2 = function(v3) { - return Math.pow(v3, 2); - }; - var r1 = Math.sqrt(pow2(center2.x - points[0].x) + pow2(center2.y - points[0].y)); - var r22 = Math.sqrt(pow2(center2.x - points[2].x) + pow2(center2.y - points[2].y)); - path = getSectorPath(center2.x, center2.y, r1, coordinate11.startAngle, coordinate11.endAngle, r22); - } - } - return path; -} -function getIntervalRectPath(points, lineCap, coor) { - var width2 = coor.getWidth(); - var height = coor.getHeight(); - var isRect = coor.type === "rect"; - var path = []; - var r4 = (points[2].x - points[1].x) / 2; - var ry = coor.isTransposed ? r4 * height / width2 : r4 * width2 / height; - if (lineCap === "round") { - if (isRect) { - path.push(["M", points[0].x, points[0].y + ry]); - path.push(["L", points[1].x, points[1].y - ry]); - path.push(["A", r4, r4, 0, 0, 1, points[2].x, points[2].y - ry]); - path.push(["L", points[3].x, points[3].y + ry]); - path.push(["A", r4, r4, 0, 0, 1, points[0].x, points[0].y + ry]); - } else { - path.push(["M", points[0].x, points[0].y]); - path.push(["L", points[1].x, points[1].y]); - path.push(["A", r4, r4, 0, 0, 1, points[2].x, points[2].y]); - path.push(["L", points[3].x, points[3].y]); - path.push(["A", r4, r4, 0, 0, 1, points[0].x, points[0].y]); - } - path.push(["z"]); - } else { - path = getRectPath(points); - } - return path; -} -function getFunnelPath(points, nextPoints, isPyramid) { - var path = []; - if (!is_nil_default(nextPoints)) { - path.push(["M", points[0].x, points[0].y], ["L", points[1].x, points[1].y], ["L", nextPoints[1].x, nextPoints[1].y], ["L", nextPoints[0].x, nextPoints[0].y], ["Z"]); - } else if (isPyramid) { - path.push(["M", points[0].x, points[0].y], ["L", points[1].x, points[1].y], ["L", (points[2].x + points[3].x) / 2, (points[2].y + points[3].y) / 2], ["Z"]); - } else { - path.push(["M", points[0].x, points[0].y], ["L", points[1].x, points[1].y], ["L", points[2].x, points[2].y], ["L", points[3].x, points[3].y], ["Z"]); - } - return path; -} -function swap(p0, p1) { - return [p1, p0]; -} -function getRectWithCornerRadius(points, coordinate11, radius) { - var _a6, _b, _c, _d, _e, _f, _g; - var _h = __spreadArray([], points, true), p0 = _h[0], p1 = _h[1], p22 = _h[2], p32 = _h[3]; - var _j = typeof radius === "number" ? Array(4).fill(radius) : radius, r1 = _j[0], r22 = _j[1], r32 = _j[2], r4 = _j[3]; - if (coordinate11.isTransposed) { - _a6 = swap(p1, p32), p1 = _a6[0], p32 = _a6[1]; - _b = [r4, r1, r22, r32], r1 = _b[0], r22 = _b[1], r32 = _b[2], r4 = _b[3]; - } - if (coordinate11.isReflect("y")) { - _c = swap(p0, p1), p0 = _c[0], p1 = _c[1]; - _d = swap(p22, p32), p22 = _d[0], p32 = _d[1]; - } - if (coordinate11.isReflect("x")) { - _e = swap(p0, p32), p0 = _e[0], p32 = _e[1]; - _f = swap(p1, p22), p1 = _f[0], p22 = _f[1]; - } - var path = []; - var abs3 = function(v3) { - return Math.abs(v3); - }; - _g = parseRadius3([r1, r22, r32, r4], Math.min(abs3(p32.x - p0.x), abs3(p1.y - p0.y))).map(function(d3) { - return abs3(d3); - }), r1 = _g[0], r22 = _g[1], r32 = _g[2], r4 = _g[3]; - if (p0.y < p1.y) { - path.push(["M", p32.x, p32.y + r32]); - r32 !== 0 && path.push(["A", r32, r32, 0, 0, 0, p32.x - r32, p32.y]); - path.push(["L", p0.x + r4, p0.y]); - r4 !== 0 && path.push(["A", r4, r4, 0, 0, 0, p0.x, p0.y + r4]); - path.push(["L", p1.x, p1.y - r1]); - r1 !== 0 && path.push(["A", r1, r1, 0, 0, 0, p1.x + r1, p1.y]); - path.push(["L", p22.x - r22, p22.y]); - r22 !== 0 && path.push(["A", r22, r22, 0, 0, 0, p22.x, p22.y - r22]); - path.push(["L", p32.x, p32.y + r32]); - path.push(["z"]); - } else if (p32.x < p0.x) { - path.push(["M", p22.x + r22, p22.y]); - r22 !== 0 && path.push(["A", r22, r22, 0, 0, 0, p22.x, p22.y + r22]); - path.push(["L", p32.x, p32.y - r32]); - r32 !== 0 && path.push(["A", r32, r32, 0, 0, 0, p32.x + r32, p32.y]); - path.push(["L", p0.x - r4, p0.y]); - r4 !== 0 && path.push(["A", r4, r4, 0, 0, 0, p0.x, p0.y - r4]); - path.push(["L", p1.x, p1.y + r1]); - r1 !== 0 && path.push(["A", r1, r1, 0, 0, 0, p1.x - r1, p1.y]); - path.push(["L", p22.x + r22, p22.y]); - path.push(["z"]); - } else { - path.push(["M", p1.x, p1.y + r1]); - r1 !== 0 && path.push(["A", r1, r1, 0, 0, 1, p1.x + r1, p1.y]); - path.push(["L", p22.x - r22, p22.y]); - r22 !== 0 && path.push(["A", r22, r22, 0, 0, 1, p22.x, p22.y + r22]); - path.push(["L", p32.x, p32.y - r32]); - r32 !== 0 && path.push(["A", r32, r32, 0, 0, 1, p32.x - r32, p32.y]); - path.push(["L", p0.x + r4, p0.y]); - r4 !== 0 && path.push(["A", r4, r4, 0, 0, 1, p0.x, p0.y - r4]); - path.push(["L", p1.x, p1.y + r1]); - path.push(["z"]); - } - return path; -} - -// node_modules/@antv/g2/esm/geometry/shape/interval/index.js -var IntervalShapeFactory = registerShapeFactory("interval", { - defaultShapeType: "rect", - getDefaultPoints: function(pointInfo) { - return getRectPoints(pointInfo); - } -}); -registerShape("interval", "rect", { - draw: function(cfg, container2) { - var style = getStyle2(cfg, false, true); - var group2 = container2; - var backgroundCfg = cfg === null || cfg === void 0 ? void 0 : cfg.background; - if (backgroundCfg) { - group2 = container2.addGroup(); - var backgroundStyle = getBackgroundRectStyle(cfg); - var backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points), this.coordinate); - group2.addShape("path", { - attrs: __assign(__assign({}, backgroundStyle), { path: backgroundPath }), - zIndex: -1, - name: BACKGROUND_SHAPE - }); - } - var path; - if (style.radius && this.coordinate.isRect) { - path = getRectWithCornerRadius(this.parsePoints(cfg.points), this.coordinate, style.radius); - } else { - path = this.parsePath(getIntervalRectPath(cfg.points, style.lineCap, this.coordinate)); - } - var shape = group2.addShape("path", { - attrs: __assign(__assign({}, style), { path }), - name: "interval" - }); - return backgroundCfg ? group2 : shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color, isInPolar = markerCfg.isInPolar; - if (isInPolar) { - return { - symbol: "circle", - style: { - r: 4.5, - fill: color4 - } - }; - } - return { - symbol: "square", - style: { - r: 4, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/util/shape-size.js -function findMinDistance(arr, scale12) { - var count2 = arr.length; - var sourceArr = arr; - if (is_string_default(sourceArr[0])) { - sourceArr = arr.map(function(v3) { - return scale12.translate(v3); - }); - } - var distance15 = sourceArr[1] - sourceArr[0]; - for (var i4 = 2; i4 < count2; i4++) { - var tmp = sourceArr[i4] - sourceArr[i4 - 1]; - if (distance15 > tmp) { - distance15 = tmp; - } - } - return distance15; -} -function getDodgeCount(dataArray, dodgeBy) { - if (dodgeBy) { - var mergeData = flatten_default(dataArray); - var values2 = values_of_key_default(mergeData, dodgeBy); - return values2.length; - } - return dataArray.length; -} -function getDefaultSize(geometry35) { - var theme4 = geometry35.theme; - var coordinate11 = geometry35.coordinate; - var xScale = geometry35.getXScale(); - var xValues = xScale.values; - var dataArray = geometry35.beforeMappingData; - var count2 = xValues.length; - var xDimensionLength = getXDimensionLength(geometry35.coordinate); - var intervalPadding = geometry35.intervalPadding, dodgePadding = geometry35.dodgePadding; - var maxColumnWidth = geometry35.maxColumnWidth || theme4.maxColumnWidth; - var minColumnWidth = geometry35.minColumnWidth || theme4.minColumnWidth; - var columnWidthRatio = geometry35.columnWidthRatio || theme4.columnWidthRatio; - var multiplePieWidthRatio = geometry35.multiplePieWidthRatio || theme4.multiplePieWidthRatio; - var roseWidthRatio = geometry35.roseWidthRatio || theme4.roseWidthRatio; - if (xScale.isLinear && xValues.length > 1) { - xValues.sort(); - var interval3 = findMinDistance(xValues, xScale); - count2 = (xScale.max - xScale.min) / interval3; - if (xValues.length > count2) { - count2 = xValues.length; - } - } - var range = xScale.range; - var normalizedSize = 1 / count2; - var wr = 1; - if (coordinate11.isPolar) { - if (coordinate11.isTransposed && count2 > 1) { - wr = multiplePieWidthRatio; - } else { - wr = roseWidthRatio; - } - } else { - if (xScale.isLinear) { - normalizedSize *= range[1] - range[0]; - } - wr = columnWidthRatio; - } - if (!is_nil_default(intervalPadding) && intervalPadding >= 0) { - var normalizedIntervalPadding = intervalPadding / xDimensionLength; - normalizedSize = (1 - (count2 - 1) * normalizedIntervalPadding) / count2; - } else { - normalizedSize *= wr; - } - if (geometry35.getAdjust("dodge")) { - var dodgeAdjust = geometry35.getAdjust("dodge"); - var dodgeBy = dodgeAdjust.dodgeBy; - var dodgeCount = getDodgeCount(dataArray, dodgeBy); - if (!is_nil_default(dodgePadding) && dodgePadding >= 0) { - var normalizedDodgePadding = dodgePadding / xDimensionLength; - normalizedSize = (normalizedSize - normalizedDodgePadding * (dodgeCount - 1)) / dodgeCount; - } else if (!is_nil_default(intervalPadding) && intervalPadding >= 0) { - normalizedSize *= wr; - normalizedSize = normalizedSize / dodgeCount; - } else { - normalizedSize = normalizedSize / dodgeCount; - } - normalizedSize = normalizedSize >= 0 ? normalizedSize : 0; - } - if (!is_nil_default(maxColumnWidth) && maxColumnWidth >= 0) { - var normalizedMaxColumnWidth = maxColumnWidth / xDimensionLength; - if (normalizedSize > normalizedMaxColumnWidth) { - normalizedSize = normalizedMaxColumnWidth; - } - } - if (!is_nil_default(minColumnWidth) && minColumnWidth >= 0) { - var normalizedMinColumnWidth = minColumnWidth / xDimensionLength; - if (normalizedSize < normalizedMinColumnWidth) { - normalizedSize = normalizedMinColumnWidth; - } - } - return normalizedSize; -} - -// node_modules/@antv/g2/esm/geometry/interval.js -var Interval = function(_super) { - __extends(Interval2, _super); - function Interval2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "interval"; - _this.shapeType = "interval"; - _this.generatePoints = true; - var background = cfg.background; - _this.background = background; - return _this; - } - Interval2.prototype.createShapePointsCfg = function(obj) { - var cfg = _super.prototype.createShapePointsCfg.call(this, obj); - var size2; - var sizeAttr = this.getAttribute("size"); - if (sizeAttr) { - size2 = this.getAttributeValues(sizeAttr, obj)[0]; - var coordinate11 = this.coordinate; - var coordinateWidth = getXDimensionLength(coordinate11); - size2 = size2 / coordinateWidth; - } else { - if (!this.defaultSize) { - this.defaultSize = getDefaultSize(this); - } - size2 = this.defaultSize; - } - cfg.size = size2; - return cfg; - }; - Interval2.prototype.adjustScale = function() { - _super.prototype.adjustScale.call(this); - var yScale = this.getYScale(); - if (this.coordinate.type === "theta") { - yScale.change({ - nice: false, - min: 0, - max: getMaxScale(yScale) - }); - } else { - var scaleDefs = this.scaleDefs; - var field6 = yScale.field, min7 = yScale.min, max8 = yScale.max, type2 = yScale.type; - if (type2 !== "time") { - if (min7 > 0 && !get_default(scaleDefs, [field6, "min"])) { - yScale.change({ - min: 0 - }); - } - if (max8 <= 0 && !get_default(scaleDefs, [field6, "max"])) { - yScale.change({ - max: 0 - }); - } - } - } - }; - Interval2.prototype.getDrawCfg = function(mappingData) { - var shapeCfg = _super.prototype.getDrawCfg.call(this, mappingData); - shapeCfg.background = this.background; - return shapeCfg; - }; - return Interval2; -}(base_default13); -var interval_default = Interval; - -// node_modules/@antv/g2/esm/geometry/line.js -var Line5 = function(_super) { - __extends(Line9, _super); - function Line9(cfg) { - var _this = _super.call(this, cfg) || this; - _this.type = "line"; - var _a6 = cfg.sortable, sortable = _a6 === void 0 ? false : _a6; - _this.sortable = sortable; - return _this; - } - return Line9; -}(path_default5); -var line_default9 = Line5; - -// node_modules/@antv/g2/esm/geometry/shape/point/util.js -var SHAPES = ["circle", "square", "bowtie", "diamond", "hexagon", "triangle", "triangle-down"]; -var HOLLOW_SHAPES = ["cross", "tick", "plus", "hyphen", "line"]; -function drawPoints(shape, cfg, container2, shapeName, isStroke) { - var style = getStyle2(cfg, isStroke, !isStroke, "r"); - var points = shape.parsePoints(cfg.points); - var pointPosition = points[0]; - if (cfg.isStack) { - pointPosition = points[1]; - } else if (points.length > 1) { - var group2 = container2.addGroup(); - for (var _i = 0, points_1 = points; _i < points_1.length; _i++) { - var point2 = points_1[_i]; - group2.addShape({ - type: "marker", - attrs: __assign(__assign(__assign({}, style), { symbol: MarkerSymbols[shapeName] || shapeName }), point2) - }); - } - return group2; - } - return container2.addShape({ - type: "marker", - attrs: __assign(__assign(__assign({}, style), { symbol: MarkerSymbols[shapeName] || shapeName }), pointPosition) - }); -} - -// node_modules/@antv/g2/esm/geometry/shape/point/index.js -var PointShapeFactory = registerShapeFactory("point", { - defaultShapeType: "hollow-circle", - getDefaultPoints: function(pointInfo) { - return splitPoints(pointInfo); - } -}); -each_default(SHAPES, function(shapeName) { - registerShape("point", "hollow-".concat(shapeName), { - draw: function(cfg, container2) { - return drawPoints(this, cfg, container2, shapeName, true); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: MarkerSymbols[shapeName] || shapeName, - style: { - r: 4.5, - stroke: color4, - fill: null - } - }; - } - }); -}); - -// node_modules/@antv/g2/esm/geometry/point.js -var Point = function(_super) { - __extends(Point3, _super); - function Point3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "point"; - _this.shapeType = "point"; - _this.generatePoints = true; - return _this; - } - Point3.prototype.getDrawCfg = function(mappingDatum) { - var shapeCfg = _super.prototype.getDrawCfg.call(this, mappingDatum); - return __assign(__assign({}, shapeCfg), { isStack: !!this.getAdjust("stack") }); - }; - return Point3; -}(base_default13); -var point_default = Point; - -// node_modules/@antv/g2/esm/geometry/shape/polygon/index.js -function getPath3(points) { - var flag = points[0]; - var i4 = 1; - var path = [["M", flag.x, flag.y]]; - while (i4 < points.length) { - var c5 = points[i4]; - if (c5.x !== points[i4 - 1].x || c5.y !== points[i4 - 1].y) { - path.push(["L", c5.x, c5.y]); - if (c5.x === flag.x && c5.y === flag.y && i4 < points.length - 1) { - flag = points[i4 + 1]; - path.push(["Z"]); - path.push(["M", flag.x, flag.y]); - i4++; - } - } - i4++; - } - if (!is_equal_default(last(path), flag)) { - path.push(["L", flag.x, flag.y]); - } - path.push(["Z"]); - return path; -} -var PolygonShapeFactory = registerShapeFactory("polygon", { - defaultShapeType: "polygon", - getDefaultPoints: function(pointInfo) { - var points = []; - each_default(pointInfo.x, function(subX, index2) { - var subY = pointInfo.y[index2]; - points.push({ - x: subX, - y: subY - }); - }); - return points; - } -}); -registerShape("polygon", "polygon", { - draw: function(cfg, container2) { - if (!is_empty_default(cfg.points)) { - var shapeAttrs = getStyle2(cfg, true, true); - var path = this.parsePath(getPath3(cfg.points)); - return container2.addShape("path", { - attrs: __assign(__assign({}, shapeAttrs), { path }), - name: "polygon" - }); - } - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "square", - style: { - r: 4, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/polygon.js -var Polygon3 = function(_super) { - __extends(Polygon4, _super); - function Polygon4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "polygon"; - _this.shapeType = "polygon"; - _this.generatePoints = true; - return _this; - } - Polygon4.prototype.createShapePointsCfg = function(obj) { - var cfg = _super.prototype.createShapePointsCfg.call(this, obj); - var x6 = cfg.x; - var y5 = cfg.y; - var temp; - if (!(is_array_default(x6) && is_array_default(y5))) { - var xScale = this.getXScale(); - var yScale = this.getYScale(); - var xCount = xScale.values.length; - var yCount = yScale.values.length; - var xOffset = 0.5 * 1 / xCount; - var yOffset = 0.5 * 1 / yCount; - if (xScale.isCategory && yScale.isCategory) { - x6 = [x6 - xOffset, x6 - xOffset, x6 + xOffset, x6 + xOffset]; - y5 = [y5 - yOffset, y5 + yOffset, y5 + yOffset, y5 - yOffset]; - } else if (is_array_default(x6)) { - temp = x6; - x6 = [temp[0], temp[0], temp[1], temp[1]]; - y5 = [y5 - yOffset / 2, y5 + yOffset / 2, y5 + yOffset / 2, y5 - yOffset / 2]; - } else if (is_array_default(y5)) { - temp = y5; - y5 = [temp[0], temp[1], temp[1], temp[0]]; - x6 = [x6 - xOffset / 2, x6 - xOffset / 2, x6 + xOffset / 2, x6 + xOffset / 2]; - } - cfg.x = x6; - cfg.y = y5; - } - return cfg; - }; - return Polygon4; -}(base_default13); -var polygon_default5 = Polygon3; - -// node_modules/@antv/g2/esm/geometry/shape/schema/index.js -var SchemaShapeFactory = registerShapeFactory("schema", { - defaultShapeType: "" -}); - -// node_modules/@antv/g2/esm/geometry/schema.js -var Schema2 = function(_super) { - __extends(Schema3, _super); - function Schema3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "schema"; - _this.shapeType = "schema"; - _this.generatePoints = true; - return _this; - } - Schema3.prototype.createShapePointsCfg = function(record) { - var cfg = _super.prototype.createShapePointsCfg.call(this, record); - var size2; - var sizeAttr = this.getAttribute("size"); - if (sizeAttr) { - size2 = this.getAttributeValues(sizeAttr, record)[0]; - var coordinate11 = this.coordinate; - var coordinateWidth = getXDimensionLength(coordinate11); - size2 = size2 / coordinateWidth; - } else { - if (!this.defaultSize) { - this.defaultSize = getDefaultSize(this); - } - size2 = this.defaultSize; - } - cfg.size = size2; - return cfg; - }; - return Schema3; -}(base_default13); -var schema_default = Schema2; - -// node_modules/@antv/g2/esm/geometry/shape/violin/index.js -function normalizeSize(arr) { - if (!is_array_default(arr)) { - return []; - } - var maxValue = max_default(arr); - return map_default(arr, function(num) { - return num / maxValue; - }); -} -var ViolinShapeFactory = registerShapeFactory("violin", { - defaultShapeType: "violin", - getDefaultPoints: function(pointInfo) { - var radius = pointInfo.size / 2; - var points = []; - var sizeArr = normalizeSize(pointInfo._size); - each_default(pointInfo.y, function(y5, index2) { - var offset = sizeArr[index2] * radius; - var isMin = index2 === 0; - var isMax = index2 === pointInfo.y.length - 1; - points.push({ - isMin, - isMax, - x: pointInfo.x - offset, - y: y5 - }); - points.unshift({ - isMin, - isMax, - x: pointInfo.x + offset, - y: y5 - }); - }); - return points; - } -}); -registerShape("violin", "violin", { - draw: function(cfg, container2) { - var shapeAttrs = getStyle2(cfg, true, true); - var path = this.parsePath(getViolinPath(cfg.points)); - return container2.addShape("path", { - attrs: __assign(__assign({}, shapeAttrs), { path }), - name: "violin" - }); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "circle", - style: { - r: 4, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/violin.js -var Violin = function(_super) { - __extends(Violin3, _super); - function Violin3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "violin"; - _this.shapeType = "violin"; - _this.generatePoints = true; - return _this; - } - Violin3.prototype.createShapePointsCfg = function(record) { - var cfg = _super.prototype.createShapePointsCfg.call(this, record); - var size2; - var sizeAttr = this.getAttribute("size"); - if (sizeAttr) { - size2 = this.getAttributeValues(sizeAttr, record)[0]; - var coordinate11 = this.coordinate; - var coordinateWidth = getXDimensionLength(coordinate11); - size2 = size2 / coordinateWidth; - } else { - if (!this.defaultSize) { - this.defaultSize = getDefaultSize(this); - } - size2 = this.defaultSize; - } - cfg.size = size2; - cfg._size = get_default(record[FIELD_ORIGIN], [this._sizeField]); - return cfg; - }; - Violin3.prototype.initAttributes = function() { - var attributeOption = this.attributeOption; - var sizeField = attributeOption.size ? attributeOption.size.fields[0] : this._sizeField ? this._sizeField : "size"; - this._sizeField = sizeField; - delete attributeOption.size; - _super.prototype.initAttributes.call(this); - }; - return Violin3; -}(base_default13); -var violin_default = Violin; - -// node_modules/@antv/g2/esm/geometry/shape/area/line.js -registerShape("area", "line", { - draw: function(cfg, container2) { - var attrs = getShapeAttrs2(cfg, true, false, this); - var shape = container2.addShape({ - type: "path", - attrs, - name: "area" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - if (r4 === void 0) { - r4 = 5.5; - } - return [["M", x6 - r4, y5 - 4], ["L", x6 + r4, y5 - 4], ["L", x6 + r4, y5 + 4], ["L", x6 - r4, y5 + 4], ["Z"]]; - }, - style: { - r: 5, - stroke: color4, - fill: null - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/area/smooth.js -registerShape("area", "smooth", { - draw: function(cfg, container2) { - var coordinate11 = this.coordinate; - var attrs = getShapeAttrs2(cfg, false, true, this, getConstraint(coordinate11)); - var shape = container2.addShape({ - type: "path", - attrs, - name: "area" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - if (r4 === void 0) { - r4 = 5.5; - } - return [["M", x6 - r4, y5 - 4], ["L", x6 + r4, y5 - 4], ["L", x6 + r4, y5 + 4], ["L", x6 - r4, y5 + 4], ["Z"]]; - }, - style: { - r: 5, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/area/smooth-line.js -registerShape("area", "smooth-line", { - draw: function(cfg, container2) { - var coordinate11 = this.coordinate; - var attrs = getShapeAttrs2(cfg, true, true, this, getConstraint(coordinate11)); - var shape = container2.addShape({ - type: "path", - attrs, - name: "area" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - if (r4 === void 0) { - r4 = 5.5; - } - return [["M", x6 - r4, y5 - 4], ["L", x6 + r4, y5 - 4], ["L", x6 + r4, y5 + 4], ["L", x6 - r4, y5 + 4], ["Z"]]; - }, - style: { - r: 5, - stroke: color4, - fill: null - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/edge/util.js -function getCPath(from, to) { - return ["C", from.x * 1 / 2 + to.x * 1 / 2, from.y, from.x * 1 / 2 + to.x * 1 / 2, to.y, to.x, to.y]; -} -function getQPath(to, center2) { - var points = []; - points.push({ - x: center2.x, - y: center2.y - }); - points.push(to); - var sub6 = ["Q"]; - each_default(points, function(point2) { - sub6.push(point2.x, point2.y); - }); - return sub6; -} - -// node_modules/@antv/g2/esm/geometry/shape/edge/arc.js -function getArcShapePath(from, to, center2) { - var sub6 = getQPath(to, center2); - var path = [["M", from.x, from.y]]; - path.push(sub6); - return path; -} -function getArcShapeWeightPath(points, center2) { - var arc1 = getQPath(points[1], center2); - var arc2 = getQPath(points[3], center2); - var path = [["M", points[0].x, points[0].y]]; - path.push(arc2); - path.push(["L", points[3].x, points[3].y]); - path.push(["L", points[2].x, points[2].y]); - path.push(arc1); - path.push(["L", points[1].x, points[1].y]); - path.push(["L", points[0].x, points[0].y]); - path.push(["Z"]); - return path; -} -registerShape("edge", "arc", { - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false, "lineWidth"); - var points = cfg.points; - var type2 = points.length > 2 ? "weight" : "normal"; - var path; - if (cfg.isInCircle) { - var center2 = { x: 0, y: 1 }; - if (type2 === "normal") { - path = getArcShapePath(points[0], points[1], center2); - } else { - style.fill = style.stroke; - path = getArcShapeWeightPath(points, center2); - } - path = this.parsePath(path); - return container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }) - }); - } else { - if (type2 === "normal") { - points = this.parsePoints(points); - path = getArcPath((points[1].x + points[0].x) / 2, points[0].y, Math.abs(points[1].x - points[0].x) / 2, Math.PI, Math.PI * 2); - return container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }) - }); - } else { - var c1 = getCPath(points[1], points[3]); - var c22 = getCPath(points[2], points[0]); - path = [ - ["M", points[0].x, points[0].y], - ["L", points[1].x, points[1].y], - c1, - ["L", points[3].x, points[3].y], - ["L", points[2].x, points[2].y], - c22, - ["Z"] - ]; - path = this.parsePath(path); - style.fill = style.stroke; - return container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }) - }); - } - } - }, - getMarker: function(markerCfg) { - return { - symbol: "circle", - style: { - r: 4.5, - fill: markerCfg.color - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/edge/smooth.js -function getSmoothPath(from, to) { - var sub6 = getCPath(from, to); - var path = [["M", from.x, from.y]]; - path.push(sub6); - return path; -} -registerShape("edge", "smooth", { - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false, "lineWidth"); - var points = cfg.points; - var path = this.parsePath(getSmoothPath(points[0], points[1])); - return container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }) - }); - }, - getMarker: function(markerCfg) { - return { - symbol: "circle", - style: { - r: 4.5, - fill: markerCfg.color - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/edge/vhv.js -var CORNER_PERCENT = 1 / 3; -function getVHVPath(from, to) { - var points = []; - points.push({ - x: from.x, - y: from.y * (1 - CORNER_PERCENT) + to.y * CORNER_PERCENT - }); - points.push({ - x: to.x, - y: from.y * (1 - CORNER_PERCENT) + to.y * CORNER_PERCENT - }); - points.push(to); - var path = [["M", from.x, from.y]]; - each_default(points, function(point2) { - path.push(["L", point2.x, point2.y]); - }); - return path; -} -registerShape("edge", "vhv", { - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false, "lineWidth"); - var points = cfg.points; - var path = this.parsePath(getVHVPath(points[0], points[1])); - return container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }) - }); - }, - getMarker: function(markerCfg) { - return { - symbol: "circle", - style: { - r: 4.5, - fill: markerCfg.color - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/interval/funnel.js -registerShape("interval", "funnel", { - getPoints: function(shapePoint) { - shapePoint.size = shapePoint.size * 2; - return getRectPoints(shapePoint); - }, - draw: function(cfg, container2) { - var style = getStyle2(cfg, false, true); - var path = this.parsePath(getFunnelPath(cfg.points, cfg.nextPoints, false)); - var shape = container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }), - name: "interval" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "square", - style: { - r: 4, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/interval/hollow-rect.js -registerShape("interval", "hollow-rect", { - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false); - var group2 = container2; - var backgroundCfg = cfg === null || cfg === void 0 ? void 0 : cfg.background; - if (backgroundCfg) { - group2 = container2.addGroup(); - var backgroundStyle = getBackgroundRectStyle(cfg); - var backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points), this.coordinate); - group2.addShape("path", { - attrs: __assign(__assign({}, backgroundStyle), { path: backgroundPath }), - zIndex: -1, - name: BACKGROUND_SHAPE - }); - } - var path = this.parsePath(getRectPath(cfg.points)); - var shape = group2.addShape("path", { - attrs: __assign(__assign({}, style), { path }), - name: "interval" - }); - return backgroundCfg ? group2 : shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color, isInPolar = markerCfg.isInPolar; - if (isInPolar) { - return { - symbol: "circle", - style: { - r: 4.5, - stroke: color4, - fill: null - } - }; - } - return { - symbol: "square", - style: { - r: 4, - stroke: color4, - fill: null - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/interval/line.js -function getLinePoints(pointInfo) { - var x6 = pointInfo.x, y5 = pointInfo.y, y0 = pointInfo.y0; - if (is_array_default(y5)) { - return y5.map(function(yItem, idx) { - return { - x: is_array_default(x6) ? x6[idx] : x6, - y: yItem - }; - }); - } - return [ - { x: x6, y: y0 }, - { x: x6, y: y5 } - ]; -} -registerShape("interval", "line", { - getPoints: function(shapePoint) { - return getLinePoints(shapePoint); - }, - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false, "lineWidth"); - var newStyle = omit(__assign({}, style), ["fill"]); - var path = this.parsePath(getRectPath(cfg.points, false)); - var shape = container2.addShape("path", { - attrs: __assign(__assign({}, newStyle), { path }), - name: "interval" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - return [ - ["M", x6, y5 - r4], - ["L", x6, y5 + r4] - ]; - }, - style: { - r: 5, - stroke: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/interval/pyramid.js -registerShape("interval", "pyramid", { - getPoints: function(shapePoint) { - shapePoint.size = shapePoint.size * 2; - return getRectPoints(shapePoint); - }, - draw: function(cfg, container2) { - var style = getStyle2(cfg, false, true); - var path = this.parsePath(getFunnelPath(cfg.points, cfg.nextPoints, true)); - var shape = container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }), - name: "interval" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "square", - style: { - r: 4, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/interval/tick.js -function getTickPoints(pointInfo) { - var x6 = pointInfo.x, y5 = pointInfo.y, y0 = pointInfo.y0, size2 = pointInfo.size; - var yMin; - var yMax; - if (is_array_default(y5)) { - yMin = y5[0], yMax = y5[1]; - } else { - yMin = y0; - yMax = y5; - } - var xMax = x6 + size2 / 2; - var xMin = x6 - size2 / 2; - return [ - { x: x6, y: yMin }, - { x: x6, y: yMax }, - { x: xMin, y: yMin }, - { x: xMax, y: yMin }, - { x: xMin, y: yMax }, - { x: xMax, y: yMax } - ]; -} -function getTickPath(points) { - return [ - ["M", points[0].x, points[0].y], - ["L", points[1].x, points[1].y], - ["M", points[2].x, points[2].y], - ["L", points[3].x, points[3].y], - ["M", points[4].x, points[4].y], - ["L", points[5].x, points[5].y] - ]; -} -registerShape("interval", "tick", { - getPoints: function(shapePoint) { - return getTickPoints(shapePoint); - }, - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false); - var path = this.parsePath(getTickPath(cfg.points)); - var shape = container2.addShape("path", { - attrs: __assign(__assign({}, style), { path }), - name: "interval" - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - return [ - ["M", x6 - r4 / 2, y5 - r4], - ["L", x6 + r4 / 2, y5 - r4], - ["M", x6, y5 - r4], - ["L", x6, y5 + r4], - ["M", x6 - r4 / 2, y5 + r4], - ["L", x6 + r4 / 2, y5 + r4] - ]; - }, - style: { - r: 5, - stroke: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/line/step.js -var interpolateCallback = function(point2, nextPoint, shapeType) { - var x6 = point2.x; - var y5 = point2.y; - var nextX = nextPoint.x; - var nextY = nextPoint.y; - var result; - switch (shapeType) { - case "hv": - result = [{ x: nextX, y: y5 }]; - break; - case "vh": - result = [{ x: x6, y: nextY }]; - break; - case "hvh": - var middleX = (nextX + x6) / 2; - result = [ - { x: middleX, y: y5 }, - { x: middleX, y: nextY } - ]; - break; - case "vhv": - var middleY = (y5 + nextY) / 2; - result = [ - { x: x6, y: middleY }, - { x: nextX, y: middleY } - ]; - break; - default: - break; - } - return result; -}; -function getInterpolatePoints(points, shapeType) { - var result = []; - each_default(points, function(point2, index2) { - var nextPoint = points[index2 + 1]; - result.push(point2); - if (nextPoint) { - var interpolatePoint = interpolateCallback(point2, nextPoint, shapeType); - result = result.concat(interpolatePoint); - } - }); - return result; -} -function getInterpolatePath(points) { - return points.map(function(point2, index2) { - return index2 === 0 ? ["M", point2.x, point2.y] : ["L", point2.x, point2.y]; - }); -} -function getInterpolateShapeAttrs(cfg, shapeType) { - var points = getPathPoints(cfg.points, cfg.connectNulls, cfg.showSinglePoint); - var path = []; - each_default(points, function(eachLinePoints) { - var interpolatePoints = getInterpolatePoints(eachLinePoints, shapeType); - path = path.concat(getInterpolatePath(interpolatePoints)); - }); - return __assign(__assign({}, getStyle2(cfg, true, false, "lineWidth")), { path }); -} -each_default(["hv", "vh", "hvh", "vhv"], function(shapeType) { - registerShape("line", shapeType, { - draw: function(cfg, container2) { - var attrs = getInterpolateShapeAttrs(cfg, shapeType); - var shape = container2.addShape({ - type: "path", - attrs, - name: "line" - }); - return shape; - }, - getMarker: function(markerCfg) { - return getLineMarker(markerCfg, shapeType); - } - }); -}); - -// node_modules/@antv/g2/esm/geometry/shape/point/hollow.js -each_default(HOLLOW_SHAPES, function(shapeName) { - registerShape("point", shapeName, { - draw: function(cfg, container2) { - return drawPoints(this, cfg, container2, shapeName, true); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: MarkerSymbols[shapeName], - style: { - r: 4.5, - stroke: color4, - fill: null - } - }; - } - }); -}); - -// node_modules/@antv/g2/esm/geometry/shape/point/image.js -registerShape("point", "image", { - draw: function(cfg, container2) { - var size2 = getStyle2(cfg, false, false, "r").r; - var points = this.parsePoints(cfg.points); - var pointPosition = points[0]; - if (cfg.isStack) { - pointPosition = points[1]; - } else if (points.length > 1) { - var group2 = container2.addGroup(); - for (var _i = 0, points_1 = points; _i < points_1.length; _i++) { - var point2 = points_1[_i]; - group2.addShape("image", { - attrs: { - x: point2.x - size2 / 2, - y: point2.y - size2, - width: size2, - height: size2, - img: cfg.shape[1] - } - }); - } - return group2; - } - return container2.addShape("image", { - attrs: { - x: pointPosition.x - size2 / 2, - y: pointPosition.y - size2, - width: size2, - height: size2, - img: cfg.shape[1] - } - }); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "circle", - style: { - r: 4.5, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/point/solid.js -each_default(SHAPES, function(shapeName) { - registerShape("point", shapeName, { - draw: function(cfg, container2) { - return drawPoints(this, cfg, container2, shapeName, false); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: MarkerSymbols[shapeName] || shapeName, - style: { - r: 4.5, - fill: color4 - } - }; - } - }); -}); - -// node_modules/@antv/g2/esm/geometry/shape/schema/box.js -function parseValue(value2) { - var array = !is_array_default(value2) ? [value2] : value2; - var min7 = array[0]; - var max8 = array[array.length - 1]; - var min1 = array.length > 1 ? array[1] : min7; - var max1 = array.length > 3 ? array[3] : max8; - var median = array.length > 2 ? array[2] : min1; - return { - min: min7, - max: max8, - min1, - max1, - median - }; -} -function getBoxPoints(x6, y5, size2) { - var halfSize = size2 / 2; - var pointsArray; - if (is_array_default(y5)) { - var _a6 = parseValue(y5), min7 = _a6.min, max8 = _a6.max, median = _a6.median, min1 = _a6.min1, max1 = _a6.max1; - var minX = x6 - halfSize; - var maxX = x6 + halfSize; - pointsArray = [ - [minX, max8], - [maxX, max8], - [x6, max8], - [x6, max1], - [minX, min1], - [minX, max1], - [maxX, max1], - [maxX, min1], - [x6, min1], - [x6, min7], - [minX, min7], - [maxX, min7], - [minX, median], - [maxX, median] - ]; - } else { - y5 = is_nil_default(y5) ? 0.5 : y5; - var _b = parseValue(x6), min7 = _b.min, max8 = _b.max, median = _b.median, min1 = _b.min1, max1 = _b.max1; - var minY = y5 - halfSize; - var maxY2 = y5 + halfSize; - pointsArray = [ - [min7, minY], - [min7, maxY2], - [min7, y5], - [min1, y5], - [min1, minY], - [min1, maxY2], - [max1, maxY2], - [max1, minY], - [max1, y5], - [max8, y5], - [max8, minY], - [max8, maxY2], - [median, minY], - [median, maxY2] - ]; - } - return pointsArray.map(function(arr) { - return { - x: arr[0], - y: arr[1] - }; - }); -} -function getBoxPath(points) { - return [ - ["M", points[0].x, points[0].y], - ["L", points[1].x, points[1].y], - ["M", points[2].x, points[2].y], - ["L", points[3].x, points[3].y], - ["M", points[4].x, points[4].y], - ["L", points[5].x, points[5].y], - ["L", points[6].x, points[6].y], - ["L", points[7].x, points[7].y], - ["L", points[4].x, points[4].y], - ["Z"], - ["M", points[8].x, points[8].y], - ["L", points[9].x, points[9].y], - ["M", points[10].x, points[10].y], - ["L", points[11].x, points[11].y], - ["M", points[12].x, points[12].y], - ["L", points[13].x, points[13].y] - ]; -} -registerShape("schema", "box", { - getPoints: function(shapePoint) { - var x6 = shapePoint.x, y5 = shapePoint.y, size2 = shapePoint.size; - return getBoxPoints(x6, y5, size2); - }, - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, false); - var path = this.parsePath(getBoxPath(cfg.points)); - var shape = container2.addShape("path", { - attrs: __assign(__assign({}, style), { path, name: "schema" }) - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - var yValues = [y5 - 6, y5 - 3, y5, y5 + 3, y5 + 6]; - var points = getBoxPoints(x6, yValues, r4); - return [ - ["M", points[0].x + 1, points[0].y], - ["L", points[1].x - 1, points[1].y], - ["M", points[2].x, points[2].y], - ["L", points[3].x, points[3].y], - ["M", points[4].x, points[4].y], - ["L", points[5].x, points[5].y], - ["L", points[6].x, points[6].y], - ["L", points[7].x, points[7].y], - ["L", points[4].x, points[4].y], - ["Z"], - ["M", points[8].x, points[8].y], - ["L", points[9].x, points[9].y], - ["M", points[10].x + 1, points[10].y], - ["L", points[11].x - 1, points[11].y], - ["M", points[12].x, points[12].y], - ["L", points[13].x, points[13].y] - ]; - }, - style: { - r: 6, - lineWidth: 1, - stroke: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/schema/candle.js -function getCandleYValues(value2) { - var array = !is_array_default(value2) ? [value2] : value2; - var sorted = array.sort(function(a4, b10) { - return b10 - a4; - }); - return padEnd(sorted, 4, sorted[sorted.length - 1]); -} -function getCandlePoints(x6, y5, size2) { - var yValues = getCandleYValues(y5); - return [ - { x: x6, y: yValues[0] }, - { x: x6, y: yValues[1] }, - { x: x6 - size2 / 2, y: yValues[2] }, - { x: x6 - size2 / 2, y: yValues[1] }, - { x: x6 + size2 / 2, y: yValues[1] }, - { x: x6 + size2 / 2, y: yValues[2] }, - { x: x6, y: yValues[2] }, - { x: x6, y: yValues[3] } - ]; -} -function getCandlePath(points) { - return [ - ["M", points[0].x, points[0].y], - ["L", points[1].x, points[1].y], - ["M", points[2].x, points[2].y], - ["L", points[3].x, points[3].y], - ["L", points[4].x, points[4].y], - ["L", points[5].x, points[5].y], - ["Z"], - ["M", points[6].x, points[6].y], - ["L", points[7].x, points[7].y] - ]; -} -registerShape("schema", "candle", { - getPoints: function(shapePoint) { - var x6 = shapePoint.x, y5 = shapePoint.y, size2 = shapePoint.size; - return getCandlePoints(x6, y5, size2); - }, - draw: function(cfg, container2) { - var style = getStyle2(cfg, true, true); - var path = this.parsePath(getCandlePath(cfg.points)); - var shape = container2.addShape("path", { - attrs: __assign(__assign({}, style), { path, name: "schema" }) - }); - return shape; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: function(x6, y5, r4) { - var yValues = [y5 + 7.5, y5 + 3, y5 - 3, y5 - 7.5]; - var points = getCandlePoints(x6, yValues, r4); - return [ - ["M", points[0].x, points[0].y], - ["L", points[1].x, points[1].y], - ["M", points[2].x, points[2].y], - ["L", points[3].x, points[3].y], - ["L", points[4].x, points[4].y], - ["L", points[5].x, points[5].y], - ["Z"], - ["M", points[6].x, points[6].y], - ["L", points[7].x, points[7].y] - ]; - }, - style: { - lineWidth: 1, - stroke: color4, - fill: color4, - r: 6 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/polygon/square.js -function getRectAttrs(points, size2) { - var width2 = Math.abs(points[0].x - points[2].x); - var height = Math.abs(points[0].y - points[2].y); - var len5 = Math.min(width2, height); - if (size2) { - len5 = clamp_default(size2, 0, Math.min(width2, height)); - } - len5 = len5 / 2; - var centerX = (points[0].x + points[2].x) / 2; - var centerY = (points[0].y + points[2].y) / 2; - return { - x: centerX - len5, - y: centerY - len5, - width: len5 * 2, - height: len5 * 2 - }; -} -registerShape("polygon", "square", { - draw: function(cfg, container2) { - if (!is_empty_default(cfg.points)) { - var shapeAttrs = getStyle2(cfg, true, true); - var points = this.parsePoints(cfg.points); - return container2.addShape("rect", { - attrs: __assign(__assign({}, shapeAttrs), getRectAttrs(points, cfg.size)), - name: "polygon" - }); - } - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "square", - style: { - r: 4, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/violin/smooth.js -registerShape("violin", "smooth", { - draw: function(cfg, container2) { - var attrs = getStyle2(cfg, true, true); - var path = this.parsePath(getSmoothViolinPath(cfg.points)); - return container2.addShape("path", { - attrs: __assign(__assign({}, attrs), { path }) - }); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "circle", - style: { - stroke: null, - r: 4, - fill: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/shape/violin/hollow.js -registerShape("violin", "hollow", { - draw: function(cfg, container2) { - var attrs = getStyle2(cfg, true, false); - var path = this.parsePath(getViolinPath(cfg.points)); - return container2.addShape("path", { - attrs: __assign(__assign({}, attrs), { path }) - }); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "circle", - style: { - r: 4, - fill: null, - stroke: color4 - } - }; - } -}); -registerShape("violin", "hollow-smooth", { - draw: function(cfg, container2) { - var attrs = getStyle2(cfg, true, false); - var path = this.parsePath(getSmoothViolinPath(cfg.points)); - return container2.addShape("path", { - attrs: __assign(__assign({}, attrs), { path }) - }); - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "circle", - style: { - r: 4, - fill: null, - stroke: color4 - } - }; - } -}); - -// node_modules/@antv/g2/esm/geometry/label/interval.js -var IntervalLabel = function(_super) { - __extends(IntervalLabel2, _super); - function IntervalLabel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - IntervalLabel2.prototype.getLabelValueDir = function(mappingData) { - var dim = "y"; - var points = mappingData.points; - return points[0][dim] <= points[2][dim] ? 1 : -1; - }; - IntervalLabel2.prototype.getLabelOffsetPoint = function(labelCfg, index2, total, position2) { - var _a6; - var point2 = _super.prototype.getLabelOffsetPoint.call(this, labelCfg, index2, total); - var coordinate11 = this.getCoordinate(); - var transposed = coordinate11.isTransposed; - var dim = transposed ? "x" : "y"; - var dir = this.getLabelValueDir(labelCfg.mappingData); - point2 = __assign(__assign({}, point2), (_a6 = {}, _a6[dim] = point2[dim] * dir, _a6)); - if (coordinate11.isReflect("x")) { - point2 = __assign(__assign({}, point2), { x: point2.x * -1 }); - } - if (coordinate11.isReflect("y")) { - point2 = __assign(__assign({}, point2), { y: point2.y * -1 }); - } - return point2; - }; - IntervalLabel2.prototype.getThemedLabelCfg = function(labelCfg) { - var geometry35 = this.geometry; - var defaultLabelCfg3 = this.getDefaultLabelCfg(); - var theme4 = geometry35.theme; - return deep_mix_default({}, defaultLabelCfg3, theme4.labels, labelCfg.position === "middle" ? { offset: 0 } : {}, labelCfg); - }; - IntervalLabel2.prototype.setLabelPosition = function(labelPointCfg, mappingData, index2, position2) { - var coordinate11 = this.getCoordinate(); - var transposed = coordinate11.isTransposed; - var shapePoints = mappingData.points; - var point0 = coordinate11.convert(shapePoints[0]); - var point2 = coordinate11.convert(shapePoints[2]); - var dir = this.getLabelValueDir(mappingData); - var top; - var right2; - var bottom; - var left2; - var shape = is_array_default(mappingData.shape) ? mappingData.shape[0] : mappingData.shape; - if (shape === "funnel" || shape === "pyramid") { - var nextPoints = get_default(mappingData, "nextPoints"); - var points = get_default(mappingData, "points"); - if (nextPoints) { - var p0 = coordinate11.convert(points[0]); - var p1 = coordinate11.convert(points[1]); - var nextP0 = coordinate11.convert(nextPoints[0]); - var nextP1 = coordinate11.convert(nextPoints[1]); - if (transposed) { - top = Math.min(nextP0.y, p0.y); - bottom = Math.max(nextP0.y, p0.y); - right2 = (p1.x + nextP1.x) / 2; - left2 = (p0.x + nextP0.x) / 2; - } else { - top = Math.min((p1.y + nextP1.y) / 2, (p0.y + nextP0.y) / 2); - bottom = Math.max((p1.y + nextP1.y) / 2, (p0.y + nextP0.y) / 2); - right2 = nextP1.x; - left2 = p0.x; - } - } else { - top = Math.min(point2.y, point0.y); - bottom = Math.max(point2.y, point0.y); - right2 = point2.x; - left2 = point0.x; - } - } else { - top = Math.min(point2.y, point0.y); - bottom = Math.max(point2.y, point0.y); - right2 = point2.x; - left2 = point0.x; - } - switch (position2) { - case "right": - labelPointCfg.x = right2; - labelPointCfg.y = (top + bottom) / 2; - labelPointCfg.textAlign = get_default(labelPointCfg, "textAlign", dir > 0 ? "left" : "right"); - break; - case "left": - labelPointCfg.x = left2; - labelPointCfg.y = (top + bottom) / 2; - labelPointCfg.textAlign = get_default(labelPointCfg, "textAlign", dir > 0 ? "left" : "right"); - break; - case "bottom": - if (transposed) { - labelPointCfg.x = (right2 + left2) / 2; - } - labelPointCfg.y = bottom; - labelPointCfg.textAlign = get_default(labelPointCfg, "textAlign", "center"); - labelPointCfg.textBaseline = get_default(labelPointCfg, "textBaseline", dir > 0 ? "bottom" : "top"); - break; - case "middle": - if (transposed) { - labelPointCfg.x = (right2 + left2) / 2; - } - labelPointCfg.y = (top + bottom) / 2; - labelPointCfg.textAlign = get_default(labelPointCfg, "textAlign", "center"); - labelPointCfg.textBaseline = get_default(labelPointCfg, "textBaseline", "middle"); - break; - case "top": - if (transposed) { - labelPointCfg.x = (right2 + left2) / 2; - } - labelPointCfg.y = top; - labelPointCfg.textAlign = get_default(labelPointCfg, "textAlign", "center"); - labelPointCfg.textBaseline = get_default(labelPointCfg, "textBaseline", dir > 0 ? "bottom" : "top"); - break; - default: - break; - } - }; - return IntervalLabel2; -}(base_default14); -var interval_default2 = IntervalLabel; - -// node_modules/@antv/g2/esm/geometry/label/polar.js -var HALF_PI = Math.PI / 2; -var PolarLabel = function(_super) { - __extends(PolarLabel2, _super); - function PolarLabel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - PolarLabel2.prototype.getLabelOffset = function(offset) { - var coordinate11 = this.getCoordinate(); - var actualOffset = 0; - if (is_number_default(offset)) { - actualOffset = offset; - } else if (is_string_default(offset) && offset.indexOf("%") !== -1) { - var r4 = coordinate11.getRadius(); - if (coordinate11.innerRadius > 0) { - r4 = r4 * (1 - coordinate11.innerRadius); - } - actualOffset = parseFloat(offset) * 0.01 * r4; - } - return actualOffset; - }; - PolarLabel2.prototype.getLabelItems = function(mapppingArray) { - var items = _super.prototype.getLabelItems.call(this, mapppingArray); - var yScale = this.geometry.getYScale(); - return map_default(items, function(item) { - if (item && yScale) { - var percent2 = yScale.scale(get_default(item.data, yScale.field)); - return __assign(__assign({}, item), { percent: percent2 }); - } - return item; - }); - }; - PolarLabel2.prototype.getLabelAlign = function(point2) { - var coordinate11 = this.getCoordinate(); - var align; - if (point2.labelEmit) { - align = point2.angle <= Math.PI / 2 && point2.angle >= -Math.PI / 2 ? "left" : "right"; - } else if (!coordinate11.isTransposed) { - align = "center"; - } else { - var center2 = coordinate11.getCenter(); - var offset = point2.offset; - if (Math.abs(point2.x - center2.x) < 1) { - align = "center"; - } else if (point2.angle > Math.PI || point2.angle <= 0) { - align = offset > 0 ? "left" : "right"; - } else { - align = offset > 0 ? "right" : "left"; - } - } - return align; - }; - PolarLabel2.prototype.getLabelPoint = function(labelCfg, mappingData, index2) { - var factor = 1; - var arcPoint; - var content = labelCfg.content[index2]; - if (this.isToMiddle(mappingData)) { - arcPoint = this.getMiddlePoint(mappingData.points); - } else { - if (labelCfg.content.length === 1 && index2 === 0) { - index2 = 1; - } else if (index2 === 0) { - factor = -1; - } - arcPoint = this.getArcPoint(mappingData, index2); - } - var offset = labelCfg.offset * factor; - var middleAngle = this.getPointAngle(arcPoint); - var isLabelEmit = labelCfg.labelEmit; - var labelPositionCfg = this.getCirclePoint(middleAngle, offset, arcPoint, isLabelEmit); - if (labelPositionCfg.r === 0) { - labelPositionCfg.content = ""; - } else { - labelPositionCfg.content = content; - labelPositionCfg.angle = middleAngle; - labelPositionCfg.color = mappingData.color; - } - labelPositionCfg.rotate = labelCfg.autoRotate ? this.getLabelRotate(middleAngle, offset, isLabelEmit) : labelCfg.rotate; - labelPositionCfg.start = { - x: arcPoint.x, - y: arcPoint.y - }; - return labelPositionCfg; - }; - PolarLabel2.prototype.getArcPoint = function(mappingData, index2) { - if (index2 === void 0) { - index2 = 0; - } - if (!is_array_default(mappingData.x) && !is_array_default(mappingData.y)) { - return { - x: mappingData.x, - y: mappingData.y - }; - } - return { - x: is_array_default(mappingData.x) ? mappingData.x[index2] : mappingData.x, - y: is_array_default(mappingData.y) ? mappingData.y[index2] : mappingData.y - }; - }; - PolarLabel2.prototype.getPointAngle = function(point2) { - return getAngleByPoint(this.getCoordinate(), point2); - }; - PolarLabel2.prototype.getCirclePoint = function(angle3, offset, point2, isLabelEmit) { - var coordinate11 = this.getCoordinate(); - var center2 = coordinate11.getCenter(); - var r4 = getDistanceToCenter(coordinate11, point2); - if (r4 === 0) { - return __assign(__assign({}, center2), { r: r4 }); - } - var labelAngle = angle3; - if (coordinate11.isTransposed && r4 > offset && !isLabelEmit) { - var appendAngle = Math.asin(offset / (2 * r4)); - labelAngle = angle3 + appendAngle * 2; - } else { - r4 = r4 + offset; - } - return { - x: center2.x + r4 * Math.cos(labelAngle), - y: center2.y + r4 * Math.sin(labelAngle), - r: r4 - }; - }; - PolarLabel2.prototype.getLabelRotate = function(angle3, offset, isLabelEmit) { - var rotate8 = angle3 + HALF_PI; - if (isLabelEmit) { - rotate8 -= HALF_PI; - } - if (rotate8) { - if (rotate8 > HALF_PI) { - rotate8 = rotate8 - Math.PI; - } else if (rotate8 < -HALF_PI) { - rotate8 = rotate8 + Math.PI; - } - } - return rotate8; - }; - PolarLabel2.prototype.getMiddlePoint = function(points) { - var coordinate11 = this.getCoordinate(); - var count2 = points.length; - var middlePoint = { - x: 0, - y: 0 - }; - each_default(points, function(point2) { - middlePoint.x += point2.x; - middlePoint.y += point2.y; - }); - middlePoint.x /= count2; - middlePoint.y /= count2; - middlePoint = coordinate11.convert(middlePoint); - return middlePoint; - }; - PolarLabel2.prototype.isToMiddle = function(mappingData) { - return mappingData.x.length > 2; - }; - return PolarLabel2; -}(base_default14); -var polar_default2 = PolarLabel; - -// node_modules/@antv/g2/esm/geometry/label/pie.js -var PieLabel = function(_super) { - __extends(PieLabel2, _super); - function PieLabel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.defaultLayout = "distribute"; - return _this; - } - PieLabel2.prototype.getDefaultLabelCfg = function(offset, position2) { - var cfg = _super.prototype.getDefaultLabelCfg.call(this, offset, position2); - return deep_mix_default({}, cfg, get_default(this.geometry.theme, "pieLabels", {})); - }; - PieLabel2.prototype.getLabelOffset = function(offset) { - return _super.prototype.getLabelOffset.call(this, offset) || 0; - }; - PieLabel2.prototype.getLabelRotate = function(angle3, offset, isLabelLimit) { - var rotate8; - if (offset < 0) { - rotate8 = angle3; - if (rotate8 > Math.PI / 2) { - rotate8 = rotate8 - Math.PI; - } - if (rotate8 < -Math.PI / 2) { - rotate8 = rotate8 + Math.PI; - } - } - return rotate8; - }; - PieLabel2.prototype.getLabelAlign = function(point2) { - var coordinate11 = this.getCoordinate(); - var center2 = coordinate11.getCenter(); - var align; - if (point2.angle <= Math.PI / 2 && point2.x >= center2.x) { - align = "left"; - } else { - align = "right"; - } - if (point2.offset <= 0) { - if (align === "right") { - align = "left"; - } else { - align = "right"; - } - } - return align; - }; - PieLabel2.prototype.getArcPoint = function(point2) { - return point2; - }; - PieLabel2.prototype.getPointAngle = function(point2) { - var coordinate11 = this.getCoordinate(); - var startPoint = { - x: is_array_default(point2.x) ? point2.x[0] : point2.x, - y: point2.y[0] - }; - var endPoint = { - x: is_array_default(point2.x) ? point2.x[1] : point2.x, - y: point2.y[1] - }; - var angle3; - var startAngle = getAngleByPoint(coordinate11, startPoint); - if (point2.points && point2.points[0].y === point2.points[1].y) { - angle3 = startAngle; - } else { - var endAngle = getAngleByPoint(coordinate11, endPoint); - if (startAngle >= endAngle) { - endAngle = endAngle + Math.PI * 2; - } - angle3 = startAngle + (endAngle - startAngle) / 2; - } - return angle3; - }; - PieLabel2.prototype.getCirclePoint = function(angle3, offset) { - var coordinate11 = this.getCoordinate(); - var center2 = coordinate11.getCenter(); - var r4 = coordinate11.getRadius() + offset; - return __assign(__assign({}, polarToCartesian(center2.x, center2.y, r4, angle3)), { angle: angle3, r: r4 }); - }; - return PieLabel2; -}(polar_default2); -var pie_default = PieLabel; - -// node_modules/@antv/g2/esm/geometry/label/layout/pie/distribute.js -var MARGIN = 4; -function antiCollision(labelShapes, labels, lineHeight, plotRange, center2, isRight) { - var overlapping = true; - var start = plotRange.start; - var end2 = plotRange.end; - var startY = Math.min(start.y, end2.y); - var totalHeight = Math.abs(start.y - end2.y); - var i4; - var maxY2 = 0; - var minY = Number.MIN_VALUE; - var boxes = labels.map(function(label17) { - if (label17.y > maxY2) { - maxY2 = label17.y; - } - if (label17.y < minY) { - minY = label17.y; - } - return { - size: lineHeight, - targets: [label17.y - startY] - }; - }); - minY -= startY; - if (maxY2 - startY > totalHeight) { - totalHeight = maxY2 - startY; - } - while (overlapping) { - boxes.forEach(function(box3) { - var target = (Math.min.apply(minY, box3.targets) + Math.max.apply(minY, box3.targets)) / 2; - box3.pos = Math.min(Math.max(minY, target - box3.size / 2), totalHeight - box3.size); - }); - overlapping = false; - i4 = boxes.length; - while (i4--) { - if (i4 > 0) { - var previousBox = boxes[i4 - 1]; - var box2 = boxes[i4]; - if (previousBox.pos + previousBox.size > box2.pos) { - previousBox.size += box2.size; - previousBox.targets = previousBox.targets.concat(box2.targets); - if (previousBox.pos + previousBox.size > totalHeight) { - previousBox.pos = totalHeight - previousBox.size; - } - boxes.splice(i4, 1); - overlapping = true; - } - } - } - } - i4 = 0; - boxes.forEach(function(b10) { - var posInCompositeBox = startY + lineHeight / 2; - b10.targets.forEach(function() { - labels[i4].y = b10.pos + posInCompositeBox; - posInCompositeBox += lineHeight; - i4++; - }); - }); - var labelsMap = {}; - for (var _i = 0, labelShapes_1 = labelShapes; _i < labelShapes_1.length; _i++) { - var labelShape = labelShapes_1[_i]; - labelsMap[labelShape.get("id")] = labelShape; - } - labels.forEach(function(label17) { - var rPow2 = label17.r * label17.r; - var dyPow2 = Math.pow(Math.abs(label17.y - center2.y), 2); - if (rPow2 < dyPow2) { - label17.x = center2.x; - } else { - var dx = Math.sqrt(rPow2 - dyPow2); - if (!isRight) { - label17.x = center2.x - dx; - } else { - label17.x = center2.x + dx; - } - } - var labelShape2 = labelsMap[label17.id]; - labelShape2.attr("x", label17.x); - labelShape2.attr("y", label17.y); - var textShape = find_default(labelShape2.getChildren(), function(ele) { - return ele.get("type") === "text"; - }); - if (textShape) { - textShape.attr("y", label17.y); - textShape.attr("x", label17.x); - } - }); -} -function distribute(items, labels, shapes, region) { - if (!items.length || !labels.length) { - return; - } - var offset = items[0] ? items[0].offset : 0; - var coordinate11 = labels[0].get("coordinate"); - var radius = coordinate11.getRadius(); - var center2 = coordinate11.getCenter(); - if (offset > 0) { - var lineHeight_1 = 14; - var totalR = radius + offset; - var totalHeight_1 = totalR * 2 + lineHeight_1 * 2; - var plotRange_1 = { - start: coordinate11.start, - end: coordinate11.end - }; - var halves_1 = [ - [], - [] - ]; - items.forEach(function(labelItem) { - if (!labelItem) { - return; - } - if (labelItem.textAlign === "right") { - halves_1[0].push(labelItem); - } else { - halves_1[1].push(labelItem); - } - }); - halves_1.forEach(function(half, index2) { - var maxLabelsCountForOneSide = totalHeight_1 / lineHeight_1; - if (half.length > maxLabelsCountForOneSide) { - half.sort(function(a4, b10) { - return b10["..percent"] - a4["..percent"]; - }); - half.splice(maxLabelsCountForOneSide, half.length - maxLabelsCountForOneSide); - } - half.sort(function(a4, b10) { - return a4.y - b10.y; - }); - antiCollision(labels, half, lineHeight_1, plotRange_1, center2, index2); - }); - } - each_default(items, function(item) { - if (item && item.labelLine) { - var distance15 = item.offset; - var angle3 = item.angle; - var startPoint = polarToCartesian(center2.x, center2.y, radius, angle3); - var innerPoint = polarToCartesian(center2.x, center2.y, radius + distance15 / 2, angle3); - var itemX = item.x + get_default(item, "offsetX", 0); - var itemY = item.y + get_default(item, "offsetY", 0); - var endPoint = { - x: itemX - Math.cos(angle3) * MARGIN, - y: itemY - Math.sin(angle3) * MARGIN - }; - if (!is_object_default(item.labelLine)) { - item.labelLine = {}; - } - item.labelLine.path = [ - "M ".concat(startPoint.x), - "".concat(startPoint.y, " Q").concat(innerPoint.x), - "".concat(innerPoint.y, " ").concat(endPoint.x), - endPoint.y - ].join(","); - } - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/pie/util.js -function antiCollision2(items, labelHeight, plotRange) { - var labels = items.filter(function(item) { - return !item.invisible; - }); - labels.sort(function(a4, b10) { - return a4.y - b10.y; - }); - var overlapping = true; - var startY = plotRange.minY; - var endY = plotRange.maxY; - var totalHeight = Math.abs(startY - endY); - var i4; - var maxY2 = 0; - var minY = Number.MIN_VALUE; - var boxes = labels.map(function(label17) { - if (label17.y > maxY2) { - maxY2 = label17.y; - } - if (label17.y < minY) { - minY = label17.y; - } - return { - content: label17.content, - size: labelHeight, - targets: [label17.y - startY], - pos: null - }; - }); - minY -= startY; - if (maxY2 - startY > totalHeight) { - totalHeight = maxY2 - startY; - } - while (overlapping) { - boxes.forEach(function(box3) { - var target = (Math.min.apply(minY, box3.targets) + Math.max.apply(minY, box3.targets)) / 2; - box3.pos = Math.min(Math.max(minY, target - box3.size / 2), totalHeight - box3.size); - box3.pos = Math.max(0, box3.pos); - }); - overlapping = false; - i4 = boxes.length; - while (i4--) { - if (i4 > 0) { - var previousBox = boxes[i4 - 1]; - var box2 = boxes[i4]; - if (previousBox.pos + previousBox.size > box2.pos) { - previousBox.size += box2.size; - previousBox.targets = previousBox.targets.concat(box2.targets); - if (previousBox.pos + previousBox.size > totalHeight) { - previousBox.pos = totalHeight - previousBox.size; - } - boxes.splice(i4, 1); - overlapping = true; - } - } - } - } - i4 = 0; - boxes.forEach(function(b10) { - var posInCompositeBox = startY + labelHeight / 2; - b10.targets.forEach(function() { - labels[i4].y = b10.pos + posInCompositeBox; - posInCompositeBox += labelHeight; - i4++; - }); - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/pie/outer.js -var MARGIN2 = 4; -function drawLabelline(item, coordinate11) { - var center2 = coordinate11.getCenter(); - var radius = coordinate11.getRadius(); - if (item && item.labelLine) { - var angle3 = item.angle, labelOffset = item.offset; - var startPoint = polarToCartesian(center2.x, center2.y, radius, angle3); - var itemX = item.x + get_default(item, "offsetX", 0) * (Math.cos(angle3) > 0 ? 1 : -1); - var itemY = item.y + get_default(item, "offsetY", 0) * (Math.sin(angle3) > 0 ? 1 : -1); - var endPoint = { - x: itemX - Math.cos(angle3) * MARGIN2, - y: itemY - Math.sin(angle3) * MARGIN2 - }; - var smoothConnector = item.labelLine.smooth; - var path = []; - var dx = endPoint.x - center2.x; - var dy = endPoint.y - center2.y; - var endAngle = Math.atan(dy / dx); - if (dx < 0) { - endAngle += Math.PI; - } - if (smoothConnector === false) { - if (!is_object_default(item.labelLine)) { - item.labelLine = {}; - } - var sweepFlag = 0; - if (angle3 < 0 && angle3 > -Math.PI / 2 || angle3 > Math.PI * 1.5) { - if (endPoint.y > startPoint.y) { - sweepFlag = 1; - } - } - if (angle3 >= 0 && angle3 < Math.PI / 2) { - if (endPoint.y > startPoint.y) { - sweepFlag = 1; - } - } - if (angle3 >= Math.PI / 2 && angle3 < Math.PI) { - if (startPoint.y > endPoint.y) { - sweepFlag = 1; - } - } - if (angle3 < -Math.PI / 2 || angle3 >= Math.PI && angle3 < Math.PI * 1.5) { - if (startPoint.y > endPoint.y) { - sweepFlag = 1; - } - } - var distance15 = labelOffset / 2 > 4 ? 4 : Math.max(labelOffset / 2 - 1, 0); - var breakPoint = polarToCartesian(center2.x, center2.y, radius + distance15, angle3); - var breakPoint3 = polarToCartesian(center2.x, center2.y, radius + labelOffset / 2, endAngle); - var largeArcFlag = 0; - path.push("M ".concat(startPoint.x, " ").concat(startPoint.y)); - path.push("L ".concat(breakPoint.x, " ").concat(breakPoint.y)); - path.push("A ".concat(center2.x, " ").concat(center2.y, " 0 ").concat(largeArcFlag, " ").concat(sweepFlag, " ").concat(breakPoint3.x, " ").concat(breakPoint3.y)); - path.push("L ".concat(endPoint.x, " ").concat(endPoint.y)); - } else { - var breakPoint = polarToCartesian(center2.x, center2.y, radius + (labelOffset / 2 > 4 ? 4 : Math.max(labelOffset / 2 - 1, 0)), angle3); - var xSign = startPoint.x < center2.x ? 1 : -1; - path.push("M ".concat(endPoint.x, " ").concat(endPoint.y)); - var slope1 = (startPoint.y - center2.y) / (startPoint.x - center2.x); - var slope2 = (endPoint.y - center2.y) / (endPoint.x - center2.x); - if (Math.abs(slope1 - slope2) > Math.pow(Math.E, -16)) { - path.push.apply(path, [ - "C", - endPoint.x + xSign * 4, - endPoint.y, - 2 * breakPoint.x - startPoint.x, - 2 * breakPoint.y - startPoint.y, - startPoint.x, - startPoint.y - ]); - } - path.push("L ".concat(startPoint.x, " ").concat(startPoint.y)); - } - item.labelLine.path = path.join(" "); - } -} -function pieOuterLabelLayout(originalItems, labels, shapes, region) { - var items = filter_default(originalItems, function(item) { - return !is_nil_default(item); - }); - var coordinate11 = labels[0] && labels[0].get("coordinate"); - if (!coordinate11) { - return; - } - var center2 = coordinate11.getCenter(); - var radius = coordinate11.getRadius(); - var labelsMap = {}; - for (var _i = 0, labels_1 = labels; _i < labels_1.length; _i++) { - var labelShape = labels_1[_i]; - labelsMap[labelShape.get("id")] = labelShape; - } - var labelHeight = get_default(items[0], "labelHeight", 14); - var labelOffset = get_default(items[0], "offset", 0); - if (labelOffset <= 0) { - return; - } - var LEFT_HALF_KEY = "left"; - var RIGHT_HALF_KEY = "right"; - var separateLabels = group_by_default(items, function(item) { - return item.x < center2.x ? LEFT_HALF_KEY : RIGHT_HALF_KEY; - }); - var start = coordinate11.start, end2 = coordinate11.end; - var totalHeight = Math.min((radius + labelOffset + labelHeight) * 2, coordinate11.getHeight()); - var totalR = totalHeight / 2; - var labelsContainerRange = { - minX: start.x, - maxX: end2.x, - minY: center2.y - totalR, - maxY: center2.y + totalR - }; - each_default(separateLabels, function(half, key) { - var maxLabelsCountForOneSide = Math.floor(totalHeight / labelHeight); - if (half.length > maxLabelsCountForOneSide) { - half.sort(function(a4, b10) { - return b10.percent - a4.percent; - }); - each_default(half, function(labelItem, idx) { - if (idx + 1 > maxLabelsCountForOneSide) { - labelsMap[labelItem.id].set("visible", false); - labelItem.invisible = true; - } - }); - } - antiCollision2(half, labelHeight, labelsContainerRange); - }); - each_default(separateLabels, function(half, key) { - each_default(half, function(item) { - var isRight = key === RIGHT_HALF_KEY; - var labelShape2 = labelsMap[item.id]; - var content = labelShape2.getChildByIndex(0); - if (content) { - var r4 = radius + labelOffset; - var dy = item.y - center2.y; - var rPow2 = Math.pow(r4, 2); - var dyPow2 = Math.pow(dy, 2); - var dxPow2 = rPow2 - dyPow2 > 0 ? rPow2 - dyPow2 : 0; - var dx = Math.sqrt(dxPow2); - var dx_offset = Math.abs(Math.cos(item.angle) * r4); - if (!isRight) { - item.x = center2.x - Math.max(dx, dx_offset); - } else { - item.x = center2.x + Math.max(dx, dx_offset); - } - } - if (content) { - content.attr("y", item.y); - content.attr("x", item.x); - } - drawLabelline(item, coordinate11); - }); - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/pie/spider.js -var INFLECTION_OFFSET = 4; -var LABEL_OFFSET_X = 4; -var LABEL_TEXT_LINE_OFFSET = 4; -function drawLabelline2(item, coordinate11, inRight) { - var center2 = coordinate11.getCenter(); - var radius = coordinate11.getRadius(); - var startPoint = { - x: item.x - (inRight ? LABEL_TEXT_LINE_OFFSET : -LABEL_TEXT_LINE_OFFSET), - y: item.y - }; - var inflectionPoint = polarToCartesian(center2.x, center2.y, radius + INFLECTION_OFFSET, item.angle); - var p1 = { x: startPoint.x, y: startPoint.y }; - var p22 = { x: inflectionPoint.x, y: inflectionPoint.y }; - var endPoint = polarToCartesian(center2.x, center2.y, radius, item.angle); - var path = ""; - if (startPoint.y !== inflectionPoint.y) { - var offset = inRight ? 4 : -4; - p1.y = startPoint.y; - if (item.angle < 0 && item.angle >= -Math.PI / 2) { - p1.x = Math.max(inflectionPoint.x, startPoint.x - offset); - if (startPoint.y < inflectionPoint.y) { - p22.y = p1.y; - } else { - p22.y = inflectionPoint.y; - p22.x = Math.max(p22.x, p1.x - offset); - } - } - if (item.angle > 0 && item.angle < Math.PI / 2) { - p1.x = Math.max(inflectionPoint.x, startPoint.x - offset); - if (startPoint.y > inflectionPoint.y) { - p22.y = p1.y; - } else { - p22.y = inflectionPoint.y; - p22.x = Math.max(p22.x, p1.x - offset); - } - } - if (item.angle > Math.PI / 2) { - p1.x = Math.min(inflectionPoint.x, startPoint.x - offset); - if (startPoint.y > inflectionPoint.y) { - p22.y = p1.y; - } else { - p22.y = inflectionPoint.y; - p22.x = Math.min(p22.x, p1.x - offset); - } - } - if (item.angle < -Math.PI / 2) { - p1.x = Math.min(inflectionPoint.x, startPoint.x - offset); - if (startPoint.y < inflectionPoint.y) { - p22.y = p1.y; - } else { - p22.y = inflectionPoint.y; - p22.x = Math.min(p22.x, p1.x - offset); - } - } - } - path = [ - "M ".concat(startPoint.x, ",").concat(startPoint.y), - "L ".concat(p1.x, ",").concat(p1.y), - "L ".concat(p22.x, ",").concat(p22.y), - "L ".concat(inflectionPoint.x, ",").concat(inflectionPoint.y), - "L ".concat(endPoint.x, ",").concat(endPoint.y) - ].join(" "); - item.labelLine = deep_mix_default({}, item.labelLine, { path }); -} -function pieSpiderLabelLayout(items, labels, shapes, region) { - var coordinate11 = labels[0] && labels[0].get("coordinate"); - if (!coordinate11) { - return; - } - var center2 = coordinate11.getCenter(); - var radius = coordinate11.getRadius(); - var labelsMap = {}; - for (var _i = 0, labels_1 = labels; _i < labels_1.length; _i++) { - var labelShape = labels_1[_i]; - labelsMap[labelShape.get("id")] = labelShape; - } - var labelHeight = get_default(items[0], "labelHeight", 14); - var labelOffset = Math.max(get_default(items[0], "offset", 0), INFLECTION_OFFSET); - each_default(items, function(item) { - var label17 = get_default(labelsMap, [item.id]); - if (!label17) { - return; - } - var inRight = item.x > center2.x || item.x === center2.x && item.y > center2.y; - var offsetX = !is_nil_default(item.offsetX) ? item.offsetX : LABEL_OFFSET_X; - var inflectionPoint = polarToCartesian(center2.x, center2.y, radius + INFLECTION_OFFSET, item.angle); - var totalOffset = labelOffset + offsetX; - item.x = center2.x + (inRight ? 1 : -1) * (radius + totalOffset); - item.y = inflectionPoint.y; - }); - var start = coordinate11.start, end2 = coordinate11.end; - var LEFT_HALF_KEY = "left"; - var RIGHT_HALF_KEY = "right"; - var seperateLabels = group_by_default(items, function(item) { - return item.x < center2.x ? LEFT_HALF_KEY : RIGHT_HALF_KEY; - }); - var totalHeight = (radius + labelOffset) * 2 + labelHeight; - each_default(seperateLabels, function(half) { - var halfHeight = half.length * labelHeight; - if (halfHeight > totalHeight) { - totalHeight = Math.min(halfHeight, Math.abs(start.y - end2.y)); - } - }); - var labelsContainerRange = { - minX: start.x, - maxX: end2.x, - minY: center2.y - totalHeight / 2, - maxY: center2.y + totalHeight / 2 - }; - each_default(seperateLabels, function(half, key) { - var maxLabelsCountForOneSide = totalHeight / labelHeight; - if (half.length > maxLabelsCountForOneSide) { - half.sort(function(a4, b10) { - return b10.percent - a4.percent; - }); - each_default(half, function(labelItem, idx) { - if (idx > maxLabelsCountForOneSide) { - labelsMap[labelItem.id].set("visible", false); - labelItem.invisible = true; - } - }); - } - antiCollision2(half, labelHeight, labelsContainerRange); - }); - var startY = labelsContainerRange.minY; - var endY = labelsContainerRange.maxY; - each_default(seperateLabels, function(half, key) { - var inRight = key === RIGHT_HALF_KEY; - each_default(half, function(item) { - var label17 = get_default(labelsMap, item && [item.id]); - if (!label17) { - return; - } - if (item.y < startY || item.y > endY) { - label17.set("visible", false); - return; - } - var labelContent = label17.getChildByIndex(0); - var box2 = labelContent.getCanvasBBox(); - var originalPos = { x: inRight ? box2.x : box2.maxX, y: box2.y + box2.height / 2 }; - translate3(labelContent, item.x - originalPos.x, item.y - originalPos.y); - if (item.labelLine) { - drawLabelline2(item, coordinate11, inRight); - } - }); - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/limit-in-canvas.js -function limitInCanvas(items, labels, shapes, region) { - each_default(labels, function(label17) { - var regionMinX = region.minX, regionMinY = region.minY, regionMaxX = region.maxX, regionMaxY = region.maxY; - var _a6 = label17.getCanvasBBox(), minX = _a6.minX, minY = _a6.minY, maxX = _a6.maxX, maxY2 = _a6.maxY, x6 = _a6.x, y5 = _a6.y, width2 = _a6.width, height = _a6.height; - var finalX = x6; - var finalY = y5; - if (minX < regionMinX || maxX < regionMinX) { - finalX = regionMinX; - } - if (minY < regionMinY || maxY2 < regionMinY) { - finalY = regionMinY; - } - if (minX > regionMaxX) { - finalX = regionMaxX - width2; - } else if (maxX > regionMaxX) { - finalX = finalX - (maxX - regionMaxX); - } - if (minY > regionMaxY) { - finalY = regionMaxY - height; - } else if (maxY2 > regionMaxY) { - finalY = finalY - (maxY2 - regionMaxY); - } - if (finalX !== x6 || finalY !== y5) { - translate3(label17, finalX - x6, finalY - y5); - } - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/limit-in-shape.js -function limitInShape(items, labels, shapes, region) { - each_default(labels, function(label17, index2) { - var labelBBox = label17.getCanvasBBox(); - var shapeBBox = shapes[index2].getBBox(); - if (labelBBox.minX < shapeBBox.minX || labelBBox.minY < shapeBBox.minY || labelBBox.maxX > shapeBBox.maxX || labelBBox.maxY > shapeBBox.maxY) { - label17.remove(true); - } - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/overlap.js -var MAX_TIMES = 100; -var Greedy = function() { - function Greedy2(cfg) { - if (cfg === void 0) { - cfg = {}; - } - this.bitmap = {}; - var _a6 = cfg.xGap, xGap = _a6 === void 0 ? 1 : _a6, _b = cfg.yGap, yGap = _b === void 0 ? 8 : _b; - this.xGap = xGap; - this.yGap = yGap; - } - Greedy2.prototype.hasGap = function(bbox) { - var hasGap = true; - var bitmap = this.bitmap; - var minX = Math.round(bbox.minX); - var maxX = Math.round(bbox.maxX); - var minY = Math.round(bbox.minY); - var maxY2 = Math.round(bbox.maxY); - for (var i4 = minX; i4 <= maxX; i4 += 1) { - if (!bitmap[i4]) { - bitmap[i4] = {}; - continue; - } - if (i4 === minX || i4 === maxX) { - for (var j4 = minY; j4 <= maxY2; j4++) { - if (bitmap[i4][j4]) { - hasGap = false; - break; - } - } - } else { - if (bitmap[i4][minY] || bitmap[i4][maxY2]) { - hasGap = false; - break; - } - } - } - return hasGap; - }; - Greedy2.prototype.fillGap = function(bbox) { - var bitmap = this.bitmap; - var minX = Math.round(bbox.minX); - var maxX = Math.round(bbox.maxX); - var minY = Math.round(bbox.minY); - var maxY2 = Math.round(bbox.maxY); - for (var i4 = minX; i4 <= maxX; i4 += 1) { - if (!bitmap[i4]) { - bitmap[i4] = {}; - } - } - for (var i4 = minX; i4 <= maxX; i4 += this.xGap) { - for (var j4 = minY; j4 <= maxY2; j4 += this.yGap) { - bitmap[i4][j4] = true; - } - bitmap[i4][maxY2] = true; - } - if (this.yGap !== 1) { - for (var i4 = minY; i4 <= maxY2; i4 += 1) { - bitmap[minX][i4] = true; - bitmap[maxX][i4] = true; - } - } - if (this.xGap !== 1) { - for (var i4 = minX; i4 <= maxX; i4 += 1) { - bitmap[i4][minY] = true; - bitmap[i4][maxY2] = true; - } - } - }; - Greedy2.prototype.destroy = function() { - this.bitmap = {}; - }; - return Greedy2; -}(); -function spiralFill(label17, greedy, maxTimes) { - if (maxTimes === void 0) { - maxTimes = MAX_TIMES; - } - var dt = -1; - var _a6 = label17.attr(), x6 = _a6.x, y5 = _a6.y; - var bbox = label17.getCanvasBBox(); - var maxDelta = Math.sqrt(bbox.width * bbox.width + bbox.height * bbox.height); - var dxdy; - var t4 = -dt; - var dx = 0; - var dy = 0; - var f3 = function(param) { - var nt = param * 0.1; - return [nt * Math.cos(nt), nt * Math.sin(nt)]; - }; - if (greedy.hasGap(bbox)) { - greedy.fillGap(bbox); - return true; - } - var canFill = false; - var times = 0; - var accessedCache = {}; - while (Math.min(Math.abs(dx), Math.abs(dy)) < maxDelta && times < maxTimes) { - dxdy = f3(t4 += dt); - dx = ~~dxdy[0]; - dy = ~~dxdy[1]; - if (!dx && !dy || accessedCache["".concat(dx, "-").concat(dy)]) { - continue; - } - label17.attr({ x: x6 + dx, y: y5 + dy }); - if (dx + dy < 0) { - label17.attr("textAlign", "right"); - } - times++; - if (greedy.hasGap(label17.getCanvasBBox())) { - greedy.fillGap(label17.getCanvasBBox()); - canFill = true; - accessedCache["".concat(dx, "-").concat(dy)] = true; - break; - } - } - return canFill; -} -function adjustLabelPosition(label17, x6, y5, index2) { - var _a6 = label17.getCanvasBBox(), width2 = _a6.width, height = _a6.height; - var attrs = { - x: x6, - y: y5, - textAlign: "center" - }; - switch (index2) { - case 0: - attrs.y -= height + 1; - attrs.x += 1; - attrs.textAlign = "left"; - break; - case 1: - attrs.y -= height + 1; - attrs.x -= 1; - attrs.textAlign = "right"; - break; - case 2: - attrs.y += height + 1; - attrs.x -= 1; - attrs.textAlign = "right"; - break; - case 3: - attrs.y += height + 1; - attrs.x += 1; - attrs.textAlign = "left"; - break; - case 5: - attrs.y -= height * 2 + 2; - break; - case 6: - attrs.y += height * 2 + 2; - break; - case 7: - attrs.x += width2 + 1; - attrs.textAlign = "left"; - break; - case 8: - attrs.x -= width2 + 1; - attrs.textAlign = "right"; - break; - default: - break; - } - label17.attr(attrs); - return label17.getCanvasBBox(); -} -function fixedOverlap(items, labels, shapes, region) { - var greedy = new Greedy(); - each_default(labels, function(label17) { - var labelShape = label17.find(function(shape) { - return shape.get("type") === "text"; - }); - if (!spiralFill(labelShape, greedy)) { - label17.remove(true); - } - }); - greedy.destroy(); -} -function overlap(items, labels, shapes, region) { - var greedy = new Greedy(); - each_default(labels, function(label17) { - var labelShape = label17.find(function(shape) { - return shape.get("type") === "text"; - }); - var _a6 = labelShape.attr(), x6 = _a6.x, y5 = _a6.y; - var canFill = false; - for (var i4 = 0; i4 <= 8; i4++) { - var bbox = adjustLabelPosition(labelShape, x6, y5, i4); - if (greedy.hasGap(bbox)) { - greedy.fillGap(bbox); - canFill = true; - break; - } - } - if (!canFill) { - label17.remove(true); - } - }); - greedy.destroy(); -} - -// node_modules/@antv/g2/esm/util/collision-detect.js -var dot5 = vec2_exports.dot; -function getAxes(points) { - if (points.length > 4) { - return []; - } - var vector = function(start, end2) { - return [end2.x - start.x, end2.y - start.y]; - }; - var AB = vector(points[0], points[1]); - var BC = vector(points[1], points[2]); - return [AB, BC]; -} -function rotateAtPoint(point2, deg, origin) { - if (deg === void 0) { - deg = 0; - } - if (origin === void 0) { - origin = { x: 0, y: 0 }; - } - var x6 = point2.x, y5 = point2.y; - return { - x: (x6 - origin.x) * Math.cos(-deg) + (y5 - origin.y) * Math.sin(-deg) + origin.x, - y: (origin.x - x6) * Math.sin(-deg) + (y5 - origin.y) * Math.cos(-deg) + origin.y - }; -} -function getRectPoints2(box2) { - var points = [ - { x: box2.x, y: box2.y }, - { x: box2.x + box2.width, y: box2.y }, - { x: box2.x + box2.width, y: box2.y + box2.height }, - { x: box2.x, y: box2.y + box2.height } - ]; - var rotation = box2.rotation; - if (rotation) { - return [ - rotateAtPoint(points[0], rotation, points[0]), - rotateAtPoint(points[1], rotation, points[0]), - rotateAtPoint(points[2], rotation, points[0]), - rotateAtPoint(points[3], rotation, points[0]) - ]; - } - return points; -} -function getProjection(points, axis22) { - if (points.length > 4) { - return { min: 0, max: 0 }; - } - var scalars = []; - points.forEach(function(point2) { - scalars.push(dot5([point2.x, point2.y], axis22)); - }); - return { min: Math.min.apply(Math, scalars), max: Math.max.apply(Math, scalars) }; -} -function isProjectionOverlap(projection1, projection2) { - return projection1.max > projection2.min && projection1.min < projection2.max; -} -function isValidNumber(d3) { - return is_number_default(d3) && !Number.isNaN(d3) && d3 !== Infinity && d3 !== -Infinity; -} -function isValidBox(box2) { - return Object.values(box2).every(isValidNumber); -} -function isIntersectRect(box1, box2, margin) { - if (margin === void 0) { - margin = 0; - } - return !(box2.x > box1.x + box1.width + margin || box2.x + box2.width < box1.x - margin || box2.y > box1.y + box1.height + margin || box2.y + box2.height < box1.y - margin); -} -function isIntersect(box1, box2) { - if (!isValidBox(box1) || !isValidBox(box2)) - return false; - if (!box1.rotation && !box2.rotation) { - return isIntersectRect(box1, box2); - } - var rect1Points = getRectPoints2(box1); - var rect2Points = getRectPoints2(box2); - var axes = __spreadArray(__spreadArray([], getAxes(rect1Points), true), getAxes(rect2Points), true); - for (var i4 = 0; i4 < axes.length; i4++) { - var axis22 = axes[i4]; - var projection1 = getProjection(rect1Points, axis22); - var projection2 = getProjection(rect2Points, axis22); - if (!isProjectionOverlap(projection1, projection2)) - return false; - } - return true; -} - -// node_modules/@antv/g2/esm/geometry/label/layout/hide-overlap.js -function hideOverlap(items, labels, shapes, region) { - for (var i4 = 0; i4 < labels.length; i4++) { - var label1 = labels[i4]; - if (labels[i4].get("visible")) { - for (var j4 = i4 + 1; j4 < labels.length; j4++) { - var label22 = labels[j4]; - if (label1 && label22 && label1 !== label22 && label22.get("visible")) { - var box1 = getlLabelBackgroundInfo(label1, items[i4], get_default(items[i4], "background.padding")); - var box2 = getlLabelBackgroundInfo(label22, items[j4], get_default(items[j4], "background.padding")); - if (isIntersect(box1, box2)) { - labels[j4].set("visible", false); - } - } - } - } - } -} - -// node_modules/@antv/g2/esm/util/color.js -var preset = { - "#5B8FF9": true -}; -var isContrastColorWhite = function(color4) { - var rgb2 = esm_default2.toRGB(color4).toUpperCase(); - if (preset[rgb2]) { - return preset[rgb2]; - } - var _a6 = esm_default2.rgb2arr(rgb2), r4 = _a6[0], g4 = _a6[1], b10 = _a6[2]; - var isDark = (r4 * 299 + g4 * 587 + b10 * 114) / 1e3 < 128; - return isDark; -}; - -// node_modules/@antv/g2/esm/geometry/label/layout/adjust-color.js -function adjustColor(items, labels, shapes) { - if (shapes.length === 0) { - return; - } - var element = shapes[0].get("element"); - var theme4 = element.geometry.theme; - var _a6 = theme4.labels || {}, fillColorLight = _a6.fillColorLight, fillColorDark = _a6.fillColorDark; - shapes.forEach(function(shape, index2) { - var label17 = labels[index2]; - var textShape = label17.find(function(el) { - return el.get("type") === "text"; - }); - var shapeBBox = BBox.fromObject(shape.getBBox()); - var textBBox = BBox.fromObject(textShape.getCanvasBBox()); - var overflow = !shapeBBox.contains(textBBox); - var bgColor = shape.attr("fill"); - var fillWhite = isContrastColorWhite(bgColor); - if (!overflow) { - if (fillWhite) { - if (fillColorLight) { - textShape.attr("fill", fillColorLight); - } - } else { - if (fillColorDark) { - textShape.attr("fill", fillColorDark); - } - } - } else { - textShape.attr(theme4.overflowLabels.style); - } - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/interval/adjust-position.js -function shouldInShapeSingle(geometry35, label17, shape) { - var coordinate11 = geometry35.coordinate; - var textShape = findLabelTextShape(label17); - var textBBox = BBox.fromObject(textShape.getCanvasBBox()); - var shapeBBox = BBox.fromObject(shape.getBBox()); - return coordinate11.isTransposed ? shapeBBox.height >= textBBox.height : shapeBBox.width >= textBBox.width; -} -function shouldInShape(geometry35, labels, shapes) { - var isStack = !!geometry35.getAdjust("stack"); - return isStack || labels.every(function(label17, index2) { - var shape = shapes[index2]; - return shouldInShapeSingle(geometry35, label17, shape); - }); -} -function moveInShape(geometry35, label17, shape) { - var coordinate11 = geometry35.coordinate; - var shapeBBox = BBox.fromObject(shape.getBBox()); - var textShape = findLabelTextShape(label17); - if (coordinate11.isTransposed) { - textShape.attr({ - x: shapeBBox.minX + shapeBBox.width / 2, - textAlign: "center" - }); - } else { - textShape.attr({ - y: shapeBBox.minY + shapeBBox.height / 2, - textBaseline: "middle" - }); - } -} -function intervalAdjustPosition(items, labels, shapes) { - var _a6; - if (shapes.length === 0) { - return; - } - var element = (_a6 = shapes[0]) === null || _a6 === void 0 ? void 0 : _a6.get("element"); - var geometry35 = element === null || element === void 0 ? void 0 : element.geometry; - if (!geometry35 || geometry35.type !== "interval") { - return; - } - var inShape = shouldInShape(geometry35, labels, shapes); - if (inShape) { - shapes.forEach(function(shape, index2) { - var label17 = labels[index2]; - moveInShape(geometry35, label17, shape); - }); - } -} - -// node_modules/@antv/g2/esm/geometry/label/layout/interval/hide-overlap.js -function filterLabel(labels) { - var MAX_CNT = 500; - var filteredLabels = []; - var pages = Math.max(Math.floor(labels.length / MAX_CNT), 1); - each_default(labels, function(label17, idx) { - if (idx % pages === 0) { - filteredLabels.push(label17); - } else { - label17.set("visible", false); - } - }); - return filteredLabels; -} -function intervalHideOverlap(items, labels, shapes) { - var _a6; - if (shapes.length === 0) { - return; - } - var element = (_a6 = shapes[0]) === null || _a6 === void 0 ? void 0 : _a6.get("element"); - var geometry35 = element === null || element === void 0 ? void 0 : element.geometry; - if (!geometry35 || geometry35.type !== "interval") { - return; - } - var filteredLabels = filterLabel(labels); - var xField = geometry35.getXYFields()[0]; - var dones = []; - var todo = []; - var groupedLabels = group_by_default(filteredLabels, function(label17) { - return label17.get("data")[xField]; - }); - var xValues = uniq(map_default(filteredLabels, function(label17) { - return label17.get("data")[xField]; - })); - var xValue; - filteredLabels.forEach(function(label17) { - label17.set("visible", true); - }); - var addCurrentGroup = function(curItems) { - if (curItems) { - if (curItems.length) { - todo.push(curItems.pop()); - } - todo.push.apply(todo, curItems); - } - }; - if (size(xValues) > 0) { - xValue = xValues.shift(); - addCurrentGroup(groupedLabels[xValue]); - } - if (size(xValues) > 0) { - xValue = xValues.pop(); - addCurrentGroup(groupedLabels[xValue]); - } - each_default(xValues.reverse(), function(val) { - addCurrentGroup(groupedLabels[val]); - }); - while (todo.length > 0) { - var cur = todo.shift(); - if (cur.get("visible")) { - if (checkShapeOverlap(cur, dones)) { - cur.set("visible", false); - } else { - dones.push(cur); - } - } - } -} - -// node_modules/@antv/g2/esm/geometry/label/layout/point/adjust-position.js -function sortLabels(geometry35, labels) { - var yField = geometry35.getXYFields()[1]; - var result = []; - var sortedLabels = labels.sort(function(left2, right2) { - return left2.get("data")[yField] - left2.get("data")[yField]; - }); - if (sortedLabels.length > 0) { - result.push(sortedLabels.shift()); - } - if (sortedLabels.length > 0) { - result.push(sortedLabels.pop()); - } - result.push.apply(result, sortedLabels); - return result; -} -function hasSome(dones, current, compare4) { - return dones.some(function(done) { - return compare4(done, current); - }); -} -function getOverlapArea2(a4, b10, margin) { - if (margin === void 0) { - margin = 0; - } - var xOverlap = Math.max(0, Math.min(a4.x + a4.width + margin, b10.x + b10.width + margin) - Math.max(a4.x - margin, b10.x - margin)); - var yOverlap = Math.max(0, Math.min(a4.y + a4.height + margin, b10.y + b10.height + margin) - Math.max(a4.y - margin, b10.y - margin)); - return xOverlap * yOverlap; -} -function checkShapeOverlap2(dones, current) { - return hasSome(dones, current, function(left2, right2) { - var leftText = findLabelTextShape(left2); - var rightText = findLabelTextShape(right2); - return getOverlapArea2(leftText.getCanvasBBox(), rightText.getCanvasBBox(), 2) > 0; - }); -} -function pointAdjustPosition(items, labels, shapes, region, cfg) { - var _a6, _b; - if (shapes.length === 0) { - return; - } - var element = (_a6 = shapes[0]) === null || _a6 === void 0 ? void 0 : _a6.get("element"); - var geometry35 = element === null || element === void 0 ? void 0 : element.geometry; - if (!geometry35 || geometry35.type !== "point") { - return; - } - var _c = geometry35.getXYFields(), xField = _c[0], yField = _c[1]; - var groupedLabels = group_by_default(labels, function(label17) { - return label17.get("data")[xField]; - }); - var dones = []; - var offset = cfg && cfg.offset || ((_b = items[0]) === null || _b === void 0 ? void 0 : _b.offset) || 12; - map_default(keys_default(groupedLabels).reverse(), function(xValue) { - var sortedCollections = sortLabels(geometry35, groupedLabels[xValue]); - while (sortedCollections.length) { - var current = sortedCollections.shift(); - var textShape = findLabelTextShape(current); - if (hasSome(dones, current, function(left2, right2) { - return left2.get("data")[xField] === right2.get("data")[xField] && left2.get("data")[yField] === right2.get("data")[yField]; - })) { - textShape.set("visible", false); - continue; - } - var upFail = checkShapeOverlap2(dones, current); - var downFail = false; - if (upFail) { - textShape.attr("y", textShape.attr("y") + 2 * offset); - downFail = checkShapeOverlap2(dones, current); - } - if (downFail) { - textShape.set("visible", false); - continue; - } - dones.push(current); - } - }); -} - -// node_modules/@antv/g2/esm/geometry/label/layout/path/adjust-position.js -function sortLabels2(geometry35, labels) { - var yField = geometry35.getXYFields()[1]; - var result = []; - var sortedLabels = labels.sort(function(left2, right2) { - return left2.get("data")[yField] - left2.get("data")[yField]; - }); - if (sortedLabels.length > 0) { - result.push(sortedLabels.shift()); - } - if (sortedLabels.length > 0) { - result.push(sortedLabels.pop()); - } - result.push.apply(result, sortedLabels); - return result; -} -function hasSome2(dones, current, compare4) { - return dones.some(function(done) { - return compare4(done, current); - }); -} -function getOverlapArea3(a4, b10, margin) { - if (margin === void 0) { - margin = 0; - } - var xOverlap = Math.max(0, Math.min(a4.x + a4.width + margin, b10.x + b10.width + margin) - Math.max(a4.x - margin, b10.x - margin)); - var yOverlap = Math.max(0, Math.min(a4.y + a4.height + margin, b10.y + b10.height + margin) - Math.max(a4.y - margin, b10.y - margin)); - return xOverlap * yOverlap; -} -function checkShapeOverlap3(dones, current) { - return hasSome2(dones, current, function(left2, right2) { - var leftText = findLabelTextShape(left2); - var rightText = findLabelTextShape(right2); - return getOverlapArea3(leftText.getCanvasBBox(), rightText.getCanvasBBox(), 2) > 0; - }); -} -function pathAdjustPosition(items, labels, shapes, region, cfg) { - var _a6, _b; - if (shapes.length === 0) { - return; - } - var element = (_a6 = shapes[0]) === null || _a6 === void 0 ? void 0 : _a6.get("element"); - var geometry35 = element === null || element === void 0 ? void 0 : element.geometry; - if (!geometry35 || ["path", "line", "area"].indexOf(geometry35.type) < 0) { - return; - } - var _c = geometry35.getXYFields(), xField = _c[0], yField = _c[1]; - var groupedLabels = group_by_default(labels, function(label17) { - return label17.get("data")[xField]; - }); - var dones = []; - var offset = cfg && cfg.offset || ((_b = items[0]) === null || _b === void 0 ? void 0 : _b.offset) || 12; - map_default(keys_default(groupedLabels).reverse(), function(xValue) { - var sortedCollections = sortLabels2(geometry35, groupedLabels[xValue]); - while (sortedCollections.length) { - var current = sortedCollections.shift(); - var textShape = findLabelTextShape(current); - if (hasSome2(dones, current, function(left2, right2) { - return left2.get("data")[xField] === right2.get("data")[xField] && left2.get("data")[yField] === right2.get("data")[yField]; - })) { - textShape.set("visible", false); - continue; - } - var upFail = checkShapeOverlap3(dones, current); - var downFail = false; - if (upFail) { - textShape.attr("y", textShape.attr("y") + 2 * offset); - downFail = checkShapeOverlap3(dones, current); - } - if (downFail) { - textShape.set("visible", false); - continue; - } - dones.push(current); - } - }); -} - -// node_modules/@antv/g2/esm/util/context.js -var ctx2; -function getCanvasContext() { - if (!ctx2) { - ctx2 = document.createElement("canvas").getContext("2d"); - } - return ctx2; -} - -// node_modules/@antv/g2/esm/util/text.js -var measureTextWidth = memoize_default(function(text, font) { - if (font === void 0) { - font = {}; - } - var fontSize = font.fontSize, fontFamily = font.fontFamily, fontWeight = font.fontWeight, fontStyle = font.fontStyle, fontVariant = font.fontVariant; - var ctx4 = getCanvasContext(); - ctx4.font = [fontStyle, fontVariant, fontWeight, "".concat(fontSize, "px"), fontFamily].join(" "); - return ctx4.measureText(is_string_default(text) ? text : "").width; -}, function(text, font) { - if (font === void 0) { - font = {}; - } - return __spreadArray([text], values_default(font), true).join(""); -}); -var getEllipsisText = function(text, maxWidth, font) { - var STEP = 16; - var DOT_WIDTH = measureTextWidth("...", font); - var leftText; - if (!is_string_default(text)) { - leftText = to_string_default(text); - } else { - leftText = text; - } - var leftWidth = maxWidth; - var r4 = []; - var currentText; - var currentWidth; - if (measureTextWidth(text, font) <= maxWidth) { - return text; - } - while (true) { - currentText = leftText.substr(0, STEP); - currentWidth = measureTextWidth(currentText, font); - if (currentWidth + DOT_WIDTH > leftWidth) { - if (currentWidth > leftWidth) { - break; - } - } - r4.push(currentText); - leftWidth -= currentWidth; - leftText = leftText.substr(STEP); - if (!leftText) { - return r4.join(""); - } - } - while (true) { - currentText = leftText.substr(0, 1); - currentWidth = measureTextWidth(currentText, font); - if (currentWidth + DOT_WIDTH > leftWidth) { - break; - } - r4.push(currentText); - leftWidth -= currentWidth; - leftText = leftText.substr(1); - if (!leftText) { - return r4.join(""); - } - } - return "".concat(r4.join(""), "..."); -}; - -// node_modules/@antv/g2/esm/geometry/label/layout/limit-in-plot.js -function limitInPlot(items, labels, shapes, region, cfg) { - if (labels.length <= 0) { - return; - } - var direction5 = (cfg === null || cfg === void 0 ? void 0 : cfg.direction) || ["top", "right", "bottom", "left"]; - var action = (cfg === null || cfg === void 0 ? void 0 : cfg.action) || "translate"; - var margin = (cfg === null || cfg === void 0 ? void 0 : cfg.margin) || 0; - var coordinate11 = labels[0].get("coordinate"); - if (!coordinate11) { - return; - } - var _a6 = getCoordinateBBox(coordinate11, margin), regionMinX = _a6.minX, regionMinY = _a6.minY, regionMaxX = _a6.maxX, regionMaxY = _a6.maxY; - each_default(labels, function(label17) { - var _a7 = label17.getCanvasBBox(), minX = _a7.minX, minY = _a7.minY, maxX = _a7.maxX, maxY2 = _a7.maxY, x6 = _a7.x, y5 = _a7.y, width2 = _a7.width, height = _a7.height; - var finalX = x6; - var finalY = y5; - if (direction5.indexOf("left") >= 0 && (minX < regionMinX || maxX < regionMinX)) { - finalX = regionMinX; - } - if (direction5.indexOf("top") >= 0 && (minY < regionMinY || maxY2 < regionMinY)) { - finalY = regionMinY; - } - if (direction5.indexOf("right") >= 0) { - if (minX > regionMaxX) { - finalX = regionMaxX - width2; - } else if (maxX > regionMaxX) { - finalX = finalX - (maxX - regionMaxX); - } - } - if (direction5.indexOf("bottom") >= 0) { - if (minY > regionMaxY) { - finalY = regionMaxY - height; - } else if (maxY2 > regionMaxY) { - finalY = finalY - (maxY2 - regionMaxY); - } - } - if (finalX !== x6 || finalY !== y5) { - var translateX_1 = finalX - x6; - if (action === "translate") { - translate3(label17, translateX_1, finalY - y5); - } else if (action === "ellipsis") { - var textShapes = label17.findAll(function(shape) { - return shape.get("type") === "text"; - }); - textShapes.forEach(function(textShape) { - var style = pick_default(textShape.attr(), ["fontSize", "fontFamily", "fontWeight", "fontStyle", "fontVariant"]); - var textBox = textShape.getCanvasBBox(); - var text = getEllipsisText(textShape.attr("text"), textBox.width - Math.abs(translateX_1), style); - textShape.attr("text", text); - }); - } else { - label17.hide(); - } - } - }); -} - -// node_modules/@antv/g2/esm/animate/animation/fade.js -function fadeIn(shape, animateCfg, cfg) { - var endState = { - fillOpacity: is_nil_default(shape.attr("fillOpacity")) ? 1 : shape.attr("fillOpacity"), - strokeOpacity: is_nil_default(shape.attr("strokeOpacity")) ? 1 : shape.attr("strokeOpacity"), - opacity: is_nil_default(shape.attr("opacity")) ? 1 : shape.attr("opacity") - }; - shape.attr({ - fillOpacity: 0, - strokeOpacity: 0, - opacity: 0 - }); - shape.animate(endState, animateCfg); -} -function fadeOut(shape, animateCfg, cfg) { - var endState = { - fillOpacity: 0, - strokeOpacity: 0, - opacity: 0 - }; - var easing = animateCfg.easing, duration = animateCfg.duration, delay = animateCfg.delay; - shape.animate(endState, duration, easing, function() { - shape.remove(true); - }, delay); -} - -// node_modules/@antv/g2/esm/animate/animation/util.js -function transformShape(shape, vector, direct) { - var scaledMatrix; - var x6 = vector[0], y5 = vector[1]; - shape.applyToMatrix([x6, y5, 1]); - if (direct === "x") { - shape.setMatrix(ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 0.01, 1], - ["t", x6, y5] - ])); - scaledMatrix = ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 100, 1], - ["t", x6, y5] - ]); - } else if (direct === "y") { - shape.setMatrix(ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 1, 0.01], - ["t", x6, y5] - ])); - scaledMatrix = ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 1, 100], - ["t", x6, y5] - ]); - } else if (direct === "xy") { - shape.setMatrix(ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 0.01, 0.01], - ["t", x6, y5] - ])); - scaledMatrix = ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 100, 100], - ["t", x6, y5] - ]); - } - return scaledMatrix; -} -function doScaleAnimate(element, animateCfg, coordinate11, yMinPoint, type2) { - var start = coordinate11.start, end2 = coordinate11.end; - var width2 = coordinate11.getWidth(); - var height = coordinate11.getHeight(); - var x6; - var y5; - if (type2 === "y") { - x6 = start.x + width2 / 2; - y5 = yMinPoint.y < start.y ? yMinPoint.y : start.y; - } else if (type2 === "x") { - x6 = yMinPoint.x > start.x ? yMinPoint.x : start.x; - y5 = start.y + height / 2; - } else if (type2 === "xy") { - if (coordinate11.isPolar) { - x6 = coordinate11.getCenter().x; - y5 = coordinate11.getCenter().y; - } else { - x6 = (start.x + end2.x) / 2; - y5 = (start.y + end2.y) / 2; - } - } - var endMatrix = transformShape(element, [x6, y5], type2); - element.animate({ - matrix: endMatrix - }, animateCfg); -} - -// node_modules/@antv/g2/esm/animate/animation/grow-in.js -function growInX(element, animateCfg, cfg) { - var coordinate11 = cfg.coordinate, minYPoint = cfg.minYPoint; - doScaleAnimate(element, animateCfg, coordinate11, minYPoint, "x"); -} -function growInY(element, animateCfg, cfg) { - var coordinate11 = cfg.coordinate, minYPoint = cfg.minYPoint; - doScaleAnimate(element, animateCfg, coordinate11, minYPoint, "y"); -} -function growInXY(element, animateCfg, cfg) { - var coordinate11 = cfg.coordinate, minYPoint = cfg.minYPoint; - doScaleAnimate(element, animateCfg, coordinate11, minYPoint, "xy"); -} - -// node_modules/@antv/g2/esm/animate/animation/path-in.js -function pathIn(element, animateCfg, cfg) { - var length5 = element.getTotalLength(); - element.attr("lineDash", [length5]); - element.animate(function(ratio) { - return { - lineDashOffset: (1 - ratio) * length5 - }; - }, animateCfg); -} - -// node_modules/@antv/g2/esm/animate/animation/position-update.js -function positionUpdate(shape, animateCfg, cfg) { - var toAttrs = cfg.toAttrs; - var x6 = toAttrs.x; - var y5 = toAttrs.y; - delete toAttrs.x; - delete toAttrs.y; - shape.attr(toAttrs); - shape.animate({ - x: x6, - y: y5 - }, animateCfg); -} - -// node_modules/@antv/g2/esm/animate/animation/scale-in.js -function scaleInX(shape, animateCfg, cfg) { - var box2 = shape.getBBox(); - var mappingData = shape.get("origin").mappingData; - var points = mappingData.points; - var x6 = points[0].y - points[1].y > 0 ? box2.maxX : box2.minX; - var y5 = (box2.minY + box2.maxY) / 2; - shape.applyToMatrix([x6, y5, 1]); - var matrix = ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 0.01, 1], - ["t", x6, y5] - ]); - shape.setMatrix(matrix); - shape.animate({ - matrix: ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 100, 1], - ["t", x6, y5] - ]) - }, animateCfg); -} -function scaleInY(shape, animateCfg, cfg) { - var box2 = shape.getBBox(); - var mappingData = shape.get("origin").mappingData; - var x6 = (box2.minX + box2.maxX) / 2; - var points = mappingData.points; - var y5 = points[0].y - points[1].y <= 0 ? box2.maxY : box2.minY; - shape.applyToMatrix([x6, y5, 1]); - var matrix = ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 1, 0.01], - ["t", x6, y5] - ]); - shape.setMatrix(matrix); - shape.animate({ - matrix: ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 1, 100], - ["t", x6, y5] - ]) - }, animateCfg); -} - -// node_modules/@antv/g2/esm/animate/animation/sector-path-update.js -function getAngle4(startPoint, arcPath) { - var _a6; - var _b = getArcParams2(startPoint, arcPath), startAngle = _b.startAngle, endAngle = _b.endAngle; - if (!isNumberEqual(startAngle, -Math.PI * 0.5) && startAngle < -Math.PI * 0.5) { - startAngle += Math.PI * 2; - } - if (!isNumberEqual(endAngle, -Math.PI * 0.5) && endAngle < -Math.PI * 0.5) { - endAngle += Math.PI * 2; - } - if (arcPath[5] === 0) { - _a6 = [endAngle, startAngle], startAngle = _a6[0], endAngle = _a6[1]; - } - if (isNumberEqual(startAngle, Math.PI * 1.5)) { - startAngle = Math.PI * -0.5; - } - if (isNumberEqual(endAngle, Math.PI * -0.5)) { - endAngle = Math.PI * 1.5; - } - return { - startAngle, - endAngle - }; -} -function getArcStartPoint(path) { - var startPoint; - if (path[0] === "M" || path[0] === "L") { - startPoint = [path[1], path[2]]; - } else if (path[0] === "a" || path[0] === "A" || path[0] === "C") { - startPoint = [path[path.length - 2], path[path.length - 1]]; - } - return startPoint; -} -function getArcInfo(path) { - var _a6; - var startAngle; - var endAngle; - var arcPaths = path.filter(function(command) { - return command[0] === "A" || command[0] === "a"; - }); - if (arcPaths.length === 0) { - return { - startAngle: 0, - endAngle: 0, - radius: 0, - innerRadius: 0 - }; - } - var firstArcPathCommand = arcPaths[0]; - var lastArcPathCommand = arcPaths.length > 1 ? arcPaths[1] : arcPaths[0]; - var firstIndex = path.indexOf(firstArcPathCommand); - var lastIndex = path.indexOf(lastArcPathCommand); - var firstStartPoint = getArcStartPoint(path[firstIndex - 1]); - var lastStartPoint = getArcStartPoint(path[lastIndex - 1]); - var _b = getAngle4(firstStartPoint, firstArcPathCommand), firstStartAngle = _b.startAngle, firstEndAngle = _b.endAngle; - var _c = getAngle4(lastStartPoint, lastArcPathCommand), lastStartAngle = _c.startAngle, lastEndAngle = _c.endAngle; - if (isNumberEqual(firstStartAngle, lastStartAngle) && isNumberEqual(firstEndAngle, lastEndAngle)) { - startAngle = firstStartAngle; - endAngle = firstEndAngle; - } else { - startAngle = Math.min(firstStartAngle, lastStartAngle); - endAngle = Math.max(firstEndAngle, lastEndAngle); - } - var radius = firstArcPathCommand[1]; - var innerRadius = arcPaths[arcPaths.length - 1][1]; - if (radius < innerRadius) { - _a6 = [innerRadius, radius], radius = _a6[0], innerRadius = _a6[1]; - } else if (radius === innerRadius) { - innerRadius = 0; - } - return { - startAngle, - endAngle, - radius, - innerRadius - }; -} -function sectorPathUpdate(shape, animateCfg, cfg) { - var toAttrs = cfg.toAttrs, coordinate11 = cfg.coordinate; - var path = toAttrs.path || []; - var pathCommands = path.map(function(command) { - return command[0]; - }); - if (path.length < 1) - return; - var _a6 = getArcInfo(path), curStartAngle = _a6.startAngle, curEndAngle = _a6.endAngle, radius = _a6.radius, innerRadius = _a6.innerRadius; - var _b = getArcInfo(shape.attr("path")), preStartAngle = _b.startAngle, preEndAngle = _b.endAngle; - var center2 = coordinate11.getCenter(); - var diffStartAngle = curStartAngle - preStartAngle; - var diffEndAngle = curEndAngle - preEndAngle; - if (diffStartAngle === 0 && diffEndAngle === 0) { - shape.attr("path", path); - return; - } - shape.animate(function(ratio) { - var onFrameStartAngle = preStartAngle + ratio * diffStartAngle; - var onFrameEndAngle = preEndAngle + ratio * diffEndAngle; - return __assign(__assign({}, toAttrs), { path: is_equal_default(pathCommands, ["M", "A", "A", "Z"]) ? getArcPath(center2.x, center2.y, radius, onFrameStartAngle, onFrameEndAngle) : getSectorPath(center2.x, center2.y, radius, onFrameStartAngle, onFrameEndAngle, innerRadius) }); - }, __assign(__assign({}, animateCfg), { callback: function() { - shape.attr("path", path); - } })); -} - -// node_modules/@antv/g2/esm/animate/animation/wave-in.js -function waveIn(element, animateCfg, cfg) { - var _a6 = getCoordinateClipCfg(cfg.coordinate, 20), type2 = _a6.type, startState = _a6.startState, endState = _a6.endState; - var clipShape = element.setClip({ - type: type2, - attrs: startState - }); - clipShape.animate(endState, __assign(__assign({}, animateCfg), { callback: function() { - if (element && !element.get("destroyed")) { - element.set("clipShape", null); - } - clipShape.remove(true); - } })); -} - -// node_modules/@antv/g2/esm/animate/animation/zoom.js -function doShapeZoom(shape, animateCfg, type2) { - if (shape.isGroup()) { - each_default(shape.getChildren(), function(child) { - doShapeZoom(child, animateCfg, type2); - }); - } else { - var bbox = shape.getBBox(); - var x6 = (bbox.minX + bbox.maxX) / 2; - var y5 = (bbox.minY + bbox.maxY) / 2; - shape.applyToMatrix([x6, y5, 1]); - if (type2 === "zoomIn") { - var matrix = ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 0.01, 0.01], - ["t", x6, y5] - ]); - shape.setMatrix(matrix); - shape.animate({ - matrix: ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 100, 100], - ["t", x6, y5] - ]) - }, animateCfg); - } else { - shape.animate({ - matrix: ext_exports.transform(shape.getMatrix(), [ - ["t", -x6, -y5], - ["s", 0.01, 0.01], - ["t", x6, y5] - ]) - }, __assign(__assign({}, animateCfg), { callback: function() { - shape.remove(true); - } })); - } - } -} -function zoomIn(shape, animateCfg, cfg) { - doShapeZoom(shape, animateCfg, "zoomIn"); -} -function zoomOut(shape, animateCfg, cfg) { - doShapeZoom(shape, animateCfg, "zoomOut"); -} - -// node_modules/@antv/g2/esm/util/facet.js -function getFactTitleConfig(direction5) { - if ([DIRECTION.TOP, DIRECTION.BOTTOM].includes(direction5)) { - return { - offsetX: 0, - offsetY: direction5 === DIRECTION.TOP ? -8 : 8, - style: { - textAlign: "center", - textBaseline: direction5 === DIRECTION.TOP ? "bottom" : "top" - } - }; - } - if ([DIRECTION.LEFT, DIRECTION.RIGHT].includes(direction5)) { - return { - offsetX: direction5 === DIRECTION.LEFT ? -8 : 8, - offsetY: 0, - style: { - textAlign: direction5 === DIRECTION.LEFT ? "right" : "left", - textBaseline: "middle", - rotate: Math.PI / 2 - } - }; - } - return {}; -} -function getAnglePoint(center2, r4, angle3) { - return { - x: center2.x + r4 * Math.cos(angle3), - y: center2.y + r4 * Math.sin(angle3) - }; -} - -// node_modules/@antv/g2/esm/facet/circle.js -var Circle5 = function(_super) { - __extends(Circle6, _super); - function Circle6() { - return _super !== null && _super.apply(this, arguments) || this; - } - Circle6.prototype.getDefaultCfg = function() { - return deep_mix_default({}, _super.prototype.getDefaultCfg.call(this), { - type: "circle", - showTitle: true, - title: _super.prototype.getDefaultTitleCfg.call(this) - }); - }; - Circle6.prototype.render = function() { - _super.prototype.render.call(this); - if (this.cfg.showTitle) { - this.renderTitle(); - } - }; - Circle6.prototype.getRegion = function(count2, index2) { - var r4 = 1 / 2; - var center2 = { x: 0.5, y: 0.5 }; - var avgAngle = Math.PI * 2 / count2; - var angle3 = -1 * Math.PI / 2 + avgAngle * index2; - var facetR = r4 / (1 + 1 / Math.sin(avgAngle / 2)); - var middle = getAnglePoint(center2, r4 - facetR, angle3); - var startAngle = Math.PI * 5 / 4; - var endAngle = Math.PI * 1 / 4; - return { - start: getAnglePoint(middle, facetR, startAngle), - end: getAnglePoint(middle, facetR, endAngle) - }; - }; - Circle6.prototype.afterEachView = function(view, facet) { - this.processAxis(view, facet); - }; - Circle6.prototype.beforeEachView = function(view, facet) { - }; - Circle6.prototype.generateFacets = function(data3) { - var _this = this; - var _a6 = this.cfg, fields = _a6.fields, type2 = _a6.type; - var field6 = fields[0]; - if (!field6) { - throw new Error("No `fields` specified!"); - } - var values2 = this.getFieldValues(data3, field6); - var count2 = values2.length; - var rst = []; - values2.forEach(function(value2, index2) { - var conditions = [{ field: field6, value: value2, values: values2 }]; - var facetData = filter_default(data3, _this.getFacetDataFilter(conditions)); - var facet = { - type: type2, - data: facetData, - region: _this.getRegion(count2, index2), - columnValue: value2, - columnField: field6, - columnIndex: index2, - columnValuesLength: count2, - rowValue: null, - rowField: null, - rowIndex: 0, - rowValuesLength: 1 - }; - rst.push(facet); - }); - return rst; - }; - Circle6.prototype.getXAxisOption = function(x6, axes, option, facet) { - return option; - }; - Circle6.prototype.getYAxisOption = function(y5, axes, option, facet) { - return option; - }; - Circle6.prototype.renderTitle = function() { - var _this = this; - each_default(this.facets, function(facet) { - var columnValue = facet.columnValue, view = facet.view; - var formatter = get_default(_this.cfg.title, "formatter"); - var config = deep_mix_default({ - position: ["50%", "0%"], - content: formatter ? formatter(columnValue) : columnValue - }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title); - view.annotation().text(config); - }); - }; - return Circle6; -}(Facet); -var circle_default7 = Circle5; - -// node_modules/@antv/g2/esm/facet/list.js -var List = function(_super) { - __extends(List3, _super); - function List3() { - return _super !== null && _super.apply(this, arguments) || this; - } - List3.prototype.getDefaultCfg = function() { - return deep_mix_default({}, _super.prototype.getDefaultCfg.call(this), { - type: "list", - cols: null, - showTitle: true, - title: _super.prototype.getDefaultTitleCfg.call(this) - }); - }; - List3.prototype.render = function() { - _super.prototype.render.call(this); - if (this.cfg.showTitle) { - this.renderTitle(); - } - }; - List3.prototype.afterEachView = function(view, facet) { - this.processAxis(view, facet); - }; - List3.prototype.beforeEachView = function(view, facet) { - }; - List3.prototype.generateFacets = function(data3) { - var _this = this; - var fields = this.cfg.fields; - var cols = this.cfg.cols; - var columnField = fields[0]; - if (!columnField) { - throw new Error("No `fields` specified!"); - } - var colValues = this.getFieldValues(data3, columnField); - var count2 = colValues.length; - cols = cols || count2; - var rows = this.getPageCount(count2, cols); - var rst = []; - colValues.forEach(function(val, index2) { - var _a6 = _this.getRowCol(index2, cols), row = _a6.row, col = _a6.col; - var conditions = [{ field: columnField, value: val, values: colValues }]; - var facetData = filter_default(data3, _this.getFacetDataFilter(conditions)); - var facet = { - type: _this.cfg.type, - data: facetData, - region: _this.getRegion(rows, cols, col, row), - columnValue: val, - rowValue: val, - columnField, - rowField: null, - columnIndex: col, - rowIndex: row, - columnValuesLength: cols, - rowValuesLength: rows, - total: count2 - }; - rst.push(facet); - }); - return rst; - }; - List3.prototype.getXAxisOption = function(x6, axes, option, facet) { - if (facet.rowIndex !== facet.rowValuesLength - 1 && facet.columnValuesLength * facet.rowIndex + facet.columnIndex + 1 + facet.columnValuesLength <= facet.total) { - return __assign(__assign({}, option), { label: null, title: null }); - } - return option; - }; - List3.prototype.getYAxisOption = function(y5, axes, option, facet) { - if (facet.columnIndex !== 0) { - return __assign(__assign({}, option), { title: null, label: null }); - } - return option; - }; - List3.prototype.renderTitle = function() { - var _this = this; - each_default(this.facets, function(facet) { - var columnValue = facet.columnValue, view = facet.view; - var formatter = get_default(_this.cfg.title, "formatter"); - var config = deep_mix_default({ - position: ["50%", "0%"], - content: formatter ? formatter(columnValue) : columnValue - }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title); - view.annotation().text(config); - }); - }; - List3.prototype.getPageCount = function(total, pageSize) { - return Math.floor((total + pageSize - 1) / pageSize); - }; - List3.prototype.getRowCol = function(index2, pageSize) { - var row = Math.floor(index2 / pageSize); - var col = index2 % pageSize; - return { row, col }; - }; - return List3; -}(Facet); -var list_default = List; - -// node_modules/@antv/g2/esm/facet/matrix.js -var Matrix = function(_super) { - __extends(Matrix3, _super); - function Matrix3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Matrix3.prototype.getDefaultCfg = function() { - return deep_mix_default({}, _super.prototype.getDefaultCfg.call(this), { - type: "matrix", - showTitle: false, - columnTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this)), - rowTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this)) - }); - }; - Matrix3.prototype.render = function() { - _super.prototype.render.call(this); - if (this.cfg.showTitle) { - this.renderTitle(); - } - }; - Matrix3.prototype.afterEachView = function(view, facet) { - this.processAxis(view, facet); - }; - Matrix3.prototype.beforeEachView = function(view, facet) { - }; - Matrix3.prototype.generateFacets = function(data3) { - var _a6 = this.cfg, fields = _a6.fields, type2 = _a6.type; - var rowValuesLength = fields.length; - var columnValuesLength = rowValuesLength; - var rst = []; - for (var i4 = 0; i4 < columnValuesLength; i4++) { - var columnField = fields[i4]; - for (var j4 = 0; j4 < rowValuesLength; j4++) { - var rowField = fields[j4]; - var facet = { - type: type2, - data: data3, - region: this.getRegion(rowValuesLength, columnValuesLength, i4, j4), - columnValue: columnField, - rowValue: rowField, - columnField, - rowField, - columnIndex: i4, - rowIndex: j4, - columnValuesLength, - rowValuesLength - }; - rst.push(facet); - } - } - return rst; - }; - Matrix3.prototype.getXAxisOption = function(x6, axes, option, facet) { - if (facet.rowIndex !== facet.rowValuesLength - 1) { - return __assign(__assign({}, option), { label: null, title: null }); - } - return option; - }; - Matrix3.prototype.getYAxisOption = function(y5, axes, option, facet) { - if (facet.columnIndex !== 0) { - return __assign(__assign({}, option), { title: null, label: null }); - } - return option; - }; - Matrix3.prototype.renderTitle = function() { - var _this = this; - each_default(this.facets, function(facet, facetIndex) { - var columnIndex = facet.columnIndex, rowIndex = facet.rowIndex, columnValuesLength = facet.columnValuesLength, rowValuesLength = facet.rowValuesLength, columnValue = facet.columnValue, rowValue = facet.rowValue, view = facet.view; - if (rowIndex === 0) { - var formatter = get_default(_this.cfg.columnTitle, "formatter"); - var config = deep_mix_default({ - position: ["50%", "0%"], - content: formatter ? formatter(columnValue) : columnValue - }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.columnTitle); - view.annotation().text(config); - } - if (columnIndex === columnValuesLength - 1) { - var formatter = get_default(_this.cfg.rowTitle, "formatter"); - var config = deep_mix_default({ - position: ["100%", "50%"], - content: formatter ? formatter(rowValue) : rowValue - }, getFactTitleConfig(DIRECTION.RIGHT), _this.cfg.rowTitle); - view.annotation().text(config); - } - }); - }; - return Matrix3; -}(Facet); -var matrix_default = Matrix; - -// node_modules/@antv/g2/esm/facet/mirror.js -var Mirror = function(_super) { - __extends(Mirror2, _super); - function Mirror2() { - return _super !== null && _super.apply(this, arguments) || this; - } - Mirror2.prototype.getDefaultCfg = function() { - return deep_mix_default({}, _super.prototype.getDefaultCfg.call(this), { - type: "mirror", - showTitle: true, - title: _super.prototype.getDefaultTitleCfg.call(this), - transpose: false - }); - }; - Mirror2.prototype.render = function() { - _super.prototype.render.call(this); - if (this.cfg.showTitle) { - this.renderTitle(); - } - }; - Mirror2.prototype.beforeEachView = function(view, facet) { - if (this.cfg.transpose) { - if (facet.columnIndex % 2 === 0) { - view.coordinate().transpose().reflect("x"); - } else { - view.coordinate().transpose(); - } - } else { - if (facet.rowIndex % 2 !== 0) { - view.coordinate().reflect("y"); - } - } - }; - Mirror2.prototype.afterEachView = function(view, facet) { - this.processAxis(view, facet); - }; - Mirror2.prototype.generateFacets = function(data3) { - var _this = this; - var f3 = this.cfg.fields[0]; - var rst = []; - var columnValuesLength = 1; - var rowValuesLength = 1; - var columnValues = [""]; - var rowValues = [""]; - var columnField; - var rowField; - if (this.cfg.transpose) { - columnField = f3; - columnValues = this.getFieldValues(data3, columnField).slice(0, 2); - columnValuesLength = columnValues.length; - } else { - rowField = f3; - rowValues = this.getFieldValues(data3, rowField).slice(0, 2); - rowValuesLength = rowValues.length; - } - columnValues.forEach(function(xVal, xIndex) { - rowValues.forEach(function(yVal, yIndex) { - var conditions = [ - { field: columnField, value: xVal, values: columnValues }, - { field: rowField, value: yVal, values: rowValues } - ]; - var facetData = filter_default(data3, _this.getFacetDataFilter(conditions)); - var facet = { - type: _this.cfg.type, - data: facetData, - region: _this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex), - columnValue: xVal, - rowValue: yVal, - columnField, - rowField, - columnIndex: xIndex, - rowIndex: yIndex, - columnValuesLength, - rowValuesLength - }; - rst.push(facet); - }); - }); - return rst; - }; - Mirror2.prototype.getXAxisOption = function(x6, axes, option, facet) { - if (facet.columnIndex === 1 || facet.rowIndex === 1) { - return __assign(__assign({}, option), { label: null, title: null }); - } - return option; - }; - Mirror2.prototype.getYAxisOption = function(y5, axes, option, facet) { - return option; - }; - Mirror2.prototype.renderTitle = function() { - var _this = this; - each_default(this.facets, function(facet, facetIndex) { - var columnValue = facet.columnValue, rowValue = facet.rowValue, view = facet.view; - var formatter = get_default(_this.cfg.title, "formatter"); - if (_this.cfg.transpose) { - var config = deep_mix_default({ - position: ["50%", "0%"], - content: formatter ? formatter(columnValue) : columnValue - }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title); - view.annotation().text(config); - } else { - var config = deep_mix_default({ - position: ["100%", "50%"], - content: formatter ? formatter(rowValue) : rowValue - }, getFactTitleConfig(DIRECTION.RIGHT), _this.cfg.title); - view.annotation().text(config); - } - }); - }; - return Mirror2; -}(Facet); -var mirror_default = Mirror; - -// node_modules/@antv/g2/esm/facet/rect.js -var Rect3 = function(_super) { - __extends(Rect4, _super); - function Rect4() { - return _super !== null && _super.apply(this, arguments) || this; - } - Rect4.prototype.afterEachView = function(view, facet) { - this.processAxis(view, facet); - }; - Rect4.prototype.beforeEachView = function(view, facet) { - }; - Rect4.prototype.getDefaultCfg = function() { - return deep_mix_default({}, _super.prototype.getDefaultCfg.call(this), { - type: "rect", - columnTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this)), - rowTitle: __assign({}, _super.prototype.getDefaultTitleCfg.call(this)) - }); - }; - Rect4.prototype.render = function() { - _super.prototype.render.call(this); - if (this.cfg.showTitle) { - this.renderTitle(); - } - }; - Rect4.prototype.generateFacets = function(data3) { - var _this = this; - var _a6 = this.cfg.fields, columnField = _a6[0], rowField = _a6[1]; - var rst = []; - var columnValuesLength = 1; - var rowValuesLength = 1; - var columnValues = [""]; - var rowValues = [""]; - if (columnField) { - columnValues = this.getFieldValues(data3, columnField); - columnValuesLength = columnValues.length; - } - if (rowField) { - rowValues = this.getFieldValues(data3, rowField); - rowValuesLength = rowValues.length; - } - columnValues.forEach(function(xVal, xIndex) { - rowValues.forEach(function(yVal, yIndex) { - var conditions = [ - { field: columnField, value: xVal, values: columnValues }, - { field: rowField, value: yVal, values: rowValues } - ]; - var facetData = filter_default(data3, _this.getFacetDataFilter(conditions)); - var facet = { - type: _this.cfg.type, - data: facetData, - region: _this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex), - columnValue: xVal, - rowValue: yVal, - columnField, - rowField, - columnIndex: xIndex, - rowIndex: yIndex, - columnValuesLength, - rowValuesLength - }; - rst.push(facet); - }); - }); - return rst; - }; - Rect4.prototype.renderTitle = function() { - var _this = this; - each_default(this.facets, function(facet, facetIndex) { - var columnIndex = facet.columnIndex, rowIndex = facet.rowIndex, columnValuesLength = facet.columnValuesLength, columnValue = facet.columnValue, rowValue = facet.rowValue, view = facet.view; - if (rowIndex === 0) { - var formatter = get_default(_this.cfg.columnTitle, "formatter"); - var config = deep_mix_default({ - position: ["50%", "0%"], - content: formatter ? formatter(columnValue) : columnValue - }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.columnTitle); - view.annotation().text(config); - } - if (columnIndex === columnValuesLength - 1) { - var formatter = get_default(_this.cfg.rowTitle, "formatter"); - var config = deep_mix_default({ - position: ["100%", "50%"], - content: formatter ? formatter(rowValue) : rowValue - }, getFactTitleConfig(DIRECTION.RIGHT), _this.cfg.rowTitle); - view.annotation().text(config); - } - }); - }; - Rect4.prototype.getXAxisOption = function(x6, axes, option, facet) { - if (facet.rowIndex !== facet.rowValuesLength - 1) { - return __assign(__assign({}, option), { title: null, label: null }); - } else if (facet.columnIndex !== Math.floor((facet.columnValuesLength - 1) / 2)) { - return __assign(__assign({}, option), { title: null }); - } - return option; - }; - Rect4.prototype.getYAxisOption = function(y5, axes, option, facet) { - if (facet.columnIndex !== 0) { - return __assign(__assign({}, option), { title: null, label: null }); - } else if (facet.rowIndex !== Math.floor((facet.rowValuesLength - 1) / 2)) { - return __assign(__assign({}, option), { title: null }); - } - return option; - }; - return Rect4; -}(Facet); -var rect_default4 = Rect3; - -// node_modules/@antv/g2/esm/facet/tree.js -var Tree = function(_super) { - __extends(Tree2, _super); - function Tree2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.afterChartRender = function() { - if (_this.facets && _this.cfg.line) { - _this.container.clear(); - _this.drawLines(_this.facets); - } - }; - return _this; - } - Tree2.prototype.afterEachView = function(view, facet) { - this.processAxis(view, facet); - }; - Tree2.prototype.beforeEachView = function(view, facet) { - }; - Tree2.prototype.init = function() { - _super.prototype.init.call(this); - this.view.on(VIEW_LIFE_CIRCLE.AFTER_RENDER, this.afterChartRender); - }; - Tree2.prototype.getDefaultCfg = function() { - return deep_mix_default({}, _super.prototype.getDefaultCfg.call(this), { - type: "tree", - line: { - style: { - lineWidth: 1, - stroke: "#ddd" - }, - smooth: false - }, - showTitle: true, - title: _super.prototype.getDefaultTitleCfg.call(this) - }); - }; - Tree2.prototype.generateFacets = function(data3) { - var fields = this.cfg.fields; - if (!fields.length) { - throw new Error("Please specify for the fields for rootFacet!"); - } - var rst = []; - var rootFacet = { - type: this.cfg.type, - data: data3, - region: null, - rowValuesLength: this.getRows(), - columnValuesLength: 1, - rowIndex: 0, - columnIndex: 0, - rowField: "", - columnField: "", - rowValue: "", - columnValue: "" - }; - rst.push(rootFacet); - rootFacet.children = this.getChildFacets(data3, 1, rst); - this.setRegion(rst); - return rst; - }; - Tree2.prototype.setRegion = function(facets) { - var _this = this; - this.forceColIndex(facets); - facets.forEach(function(facet) { - facet.region = _this.getRegion(facet.rowValuesLength, facet.columnValuesLength, facet.columnIndex, facet.rowIndex); - }); - }; - Tree2.prototype.getRegion = function(rows, cols, xIndex, yIndex) { - var xWidth = 1 / cols; - var yWidth = 1 / rows; - var start = { - x: xWidth * xIndex, - y: yWidth * yIndex - }; - var end2 = { - x: start.x + xWidth, - y: start.y + yWidth * 2 / 3 - }; - return { - start, - end: end2 - }; - }; - Tree2.prototype.forceColIndex = function(facets) { - var _this = this; - var leafs = []; - var index2 = 0; - facets.forEach(function(facet2) { - if (_this.isLeaf(facet2)) { - leafs.push(facet2); - facet2.columnIndex = index2; - index2++; - } - }); - leafs.forEach(function(facet2) { - facet2.columnValuesLength = leafs.length; - }); - var maxLevel = this.cfg.fields.length; - for (var i4 = maxLevel - 1; i4 >= 0; i4--) { - var levelFacets = this.getFacetsByLevel(facets, i4); - for (var _i = 0, levelFacets_1 = levelFacets; _i < levelFacets_1.length; _i++) { - var facet = levelFacets_1[_i]; - if (!this.isLeaf(facet)) { - facet.originColIndex = facet.columnIndex; - facet.columnIndex = this.getRegionIndex(facet.children); - facet.columnValuesLength = leafs.length; - } - } - } - }; - Tree2.prototype.getFacetsByLevel = function(facets, level) { - var rst = []; - facets.forEach(function(facet) { - if (facet.rowIndex === level) { - rst.push(facet); - } - }); - return rst; - }; - Tree2.prototype.getRegionIndex = function(children) { - var first = children[0]; - var last2 = children[children.length - 1]; - return (last2.columnIndex - first.columnIndex) / 2 + first.columnIndex; - }; - Tree2.prototype.isLeaf = function(facet) { - return !facet.children || !facet.children.length; - }; - Tree2.prototype.getRows = function() { - return this.cfg.fields.length + 1; - }; - Tree2.prototype.getChildFacets = function(data3, level, arr) { - var _this = this; - var fields = this.cfg.fields; - var length5 = fields.length; - if (length5 < level) { - return; - } - var rst = []; - var field6 = fields[level - 1]; - var values2 = this.getFieldValues(data3, field6); - values2.forEach(function(value2, index2) { - var conditions = [{ field: field6, value: value2, values: values2 }]; - var subData = data3.filter(_this.getFacetDataFilter(conditions)); - if (subData.length) { - var facet = { - type: _this.cfg.type, - data: subData, - region: null, - columnValue: value2, - rowValue: "", - columnField: field6, - rowField: "", - columnIndex: index2, - rowValuesLength: _this.getRows(), - columnValuesLength: 1, - rowIndex: level, - children: _this.getChildFacets(subData, level + 1, arr) - }; - rst.push(facet); - arr.push(facet); - } - }); - return rst; - }; - Tree2.prototype.render = function() { - _super.prototype.render.call(this); - if (this.cfg.showTitle) { - this.renderTitle(); - } - }; - Tree2.prototype.renderTitle = function() { - var _this = this; - each_default(this.facets, function(facet) { - var columnValue = facet.columnValue, view = facet.view; - var formatter = get_default(_this.cfg.title, "formatter"); - var config = deep_mix_default({ - position: ["50%", "0%"], - content: formatter ? formatter(columnValue) : columnValue - }, getFactTitleConfig(DIRECTION.TOP), _this.cfg.title); - view.annotation().text(config); - }); - }; - Tree2.prototype.drawLines = function(facets) { - var _this = this; - facets.forEach(function(facet) { - if (!_this.isLeaf(facet)) { - var children = facet.children; - _this.addFacetLines(facet, children); - } - }); - }; - Tree2.prototype.addFacetLines = function(facet, children) { - var _this = this; - var view = facet.view; - var region = view.coordinateBBox; - var start = { - x: region.x + region.width / 2, - y: region.y + region.height - }; - children.forEach(function(subFacet) { - var subRegion = subFacet.view.coordinateBBox; - var end2 = { - x: subRegion.bl.x + (subRegion.tr.x - subRegion.bl.x) / 2, - y: subRegion.tr.y - }; - var middle1 = { - x: start.x, - y: start.y + (end2.y - start.y) / 2 - }; - var middle2 = { - x: end2.x, - y: middle1.y - }; - _this.drawLine([start, middle1, middle2, end2]); - }); - }; - Tree2.prototype.getPath = function(points) { - var path = []; - var smooth = this.cfg.line.smooth; - if (smooth) { - path.push(["M", points[0].x, points[0].y]); - path.push(["C", points[1].x, points[1].y, points[2].x, points[2].y, points[3].x, points[3].y]); - } else { - points.forEach(function(point2, index2) { - if (index2 === 0) { - path.push(["M", point2.x, point2.y]); - } else { - path.push(["L", point2.x, point2.y]); - } - }); - } - return path; - }; - Tree2.prototype.drawLine = function(points) { - var path = this.getPath(points); - var line2 = this.cfg.line.style; - this.container.addShape("path", { - attrs: mix({ - path - }, line2) - }); - }; - Tree2.prototype.getXAxisOption = function(x6, axes, option, facet) { - if (facet.rowIndex !== facet.rowValuesLength - 1) { - return __assign(__assign({}, option), { title: null, label: null }); - } - return option; - }; - Tree2.prototype.getYAxisOption = function(y5, axes, option, facet) { - if (facet.originColIndex !== 0 && facet.columnIndex !== 0) { - return __assign(__assign({}, option), { title: null, label: null }); - } - return option; - }; - return Tree2; -}(Facet); -var tree_default = Tree; - -// node_modules/@antv/g2/esm/util/stat.js -function getMedian(array) { - var arr = __spreadArray([], array, true); - arr.sort(function(a4, b10) { - return a4 - b10; - }); - var len5 = arr.length; - if (len5 === 0) { - return 0; - } - if (len5 % 2 === 1) { - return arr[(len5 - 1) / 2]; - } - return (arr[len5 / 2] + arr[len5 / 2 - 1]) / 2; -} -function getMean(array) { - var sum = reduce_default(array, function(r4, num) { - return r4 += isNaN(num) || !is_number_default(num) ? 0 : num; - }, 0); - return array.length === 0 ? 0 : sum / array.length; -} - -// node_modules/@antv/g2/esm/util/annotation.js -function getNormalizedValue(val, scale12) { - if (!scale12) { - return null; - } - var scaled; - switch (val) { - case "start": - return 0; - case "center": - return 0.5; - case "end": - return 1; - case "median": { - scaled = scale12.isCategory ? getMedian(scale12.values.map(function(_8, idx) { - return idx; - })) : getMedian(scale12.values); - break; - } - case "mean": { - scaled = scale12.isCategory ? (scale12.values.length - 1) / 2 : getMean(scale12.values); - break; - } - case "min": - scaled = scale12.isCategory ? 0 : scale12[val]; - break; - case "max": - scaled = scale12.isCategory ? scale12.values.length - 1 : scale12[val]; - break; - default: - scaled = val; - break; - } - return scale12.scale(scaled); -} - -// node_modules/@antv/g2/esm/chart/controller/annotation.js -var ANNOTATIONS_AFTER_RENDER = ["regionFilter", "shape"]; -var Annotation = function(_super) { - __extends(Annotation2, _super); - function Annotation2(view) { - var _this = _super.call(this, view) || this; - _this.cache = new Map(); - _this.foregroundContainer = _this.view.getLayer(LAYER.FORE).addGroup(); - _this.backgroundContainer = _this.view.getLayer(LAYER.BG).addGroup(); - _this.option = []; - return _this; - } - Object.defineProperty(Annotation2.prototype, "name", { - get: function() { - return "annotation"; - }, - enumerable: false, - configurable: true - }); - Annotation2.prototype.init = function() { - }; - Annotation2.prototype.layout = function() { - this.update(); - }; - Annotation2.prototype.render = function() { - }; - Annotation2.prototype.update = function() { - var _this = this; - this.onAfterRender(function() { - var updated = new Map(); - each_default(_this.option, function(option) { - if (contains_default(ANNOTATIONS_AFTER_RENDER, option.type)) { - var co = _this.updateOrCreate(option); - if (co) { - updated.set(_this.getCacheKey(option), co); - } - } - }); - _this.cache = _this.syncCache(updated); - }); - var updateCache = new Map(); - each_default(this.option, function(option) { - if (!contains_default(ANNOTATIONS_AFTER_RENDER, option.type)) { - var co = _this.updateOrCreate(option); - if (co) { - updateCache.set(_this.getCacheKey(option), co); - } - } - }); - this.cache = this.syncCache(updateCache); - }; - Annotation2.prototype.clear = function(includeOption) { - if (includeOption === void 0) { - includeOption = false; - } - _super.prototype.clear.call(this); - this.clearComponents(); - this.foregroundContainer.clear(); - this.backgroundContainer.clear(); - if (includeOption) { - this.option = []; - } - }; - Annotation2.prototype.destroy = function() { - this.clear(true); - this.foregroundContainer.remove(true); - this.backgroundContainer.remove(true); - }; - Annotation2.prototype.getComponents = function() { - var co = []; - this.cache.forEach(function(value2) { - co.push(value2); - }); - return co; - }; - Annotation2.prototype.clearComponents = function() { - this.getComponents().forEach(function(co) { - co.component.destroy(); - }); - this.cache.clear(); - }; - Annotation2.prototype.onAfterRender = function(doWhat) { - if (this.view.getOptions().animate) { - this.view.geometries.forEach(function(g4) { - if (g4.animateOption) { - g4.once(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE, function() { - doWhat(); - }); - } - }); - } else { - this.view.getRootView().once(VIEW_LIFE_CIRCLE.AFTER_RENDER, function() { - doWhat(); - }); - } - }; - Annotation2.prototype.createAnnotation = function(option) { - var type2 = option.type; - var Ctor = annotation_exports[upper_first_default(type2)]; - if (Ctor) { - var theme4 = this.getAnnotationTheme(type2); - var cfg = this.getAnnotationCfg(type2, option, theme4); - var annotation4 = new Ctor(cfg); - return { - component: annotation4, - layer: this.isTop(cfg) ? LAYER.FORE : LAYER.BG, - direction: DIRECTION.NONE, - type: COMPONENT_TYPE.ANNOTATION, - extra: option - }; - } - }; - Annotation2.prototype.annotation = function(option) { - this.option.push(option); - }; - Annotation2.prototype.arc = function(option) { - this.annotation(__assign({ type: "arc" }, option)); - return this; - }; - Annotation2.prototype.image = function(option) { - this.annotation(__assign({ type: "image" }, option)); - return this; - }; - Annotation2.prototype.line = function(option) { - this.annotation(__assign({ type: "line" }, option)); - return this; - }; - Annotation2.prototype.region = function(option) { - this.annotation(__assign({ type: "region" }, option)); - return this; - }; - Annotation2.prototype.text = function(option) { - this.annotation(__assign({ type: "text" }, option)); - return this; - }; - Annotation2.prototype.dataMarker = function(option) { - this.annotation(__assign({ type: "dataMarker" }, option)); - return this; - }; - Annotation2.prototype.dataRegion = function(option) { - this.annotation(__assign({ type: "dataRegion" }, option)); - }; - Annotation2.prototype.regionFilter = function(option) { - this.annotation(__assign({ type: "regionFilter" }, option)); - }; - Annotation2.prototype.shape = function(option) { - this.annotation(__assign({ type: "shape" }, option)); - }; - Annotation2.prototype.html = function(option) { - this.annotation(__assign({ type: "html" }, option)); - }; - Annotation2.prototype.parsePosition = function(p4) { - var xScale = this.view.getXScale(); - var yScales = this.view.getScalesByDim("y"); - var position2 = is_function_default(p4) ? p4.call(null, xScale, yScales) : p4; - var x6 = 0; - var y5 = 0; - if (is_array_default(position2)) { - var xPos = position2[0], yPos = position2[1]; - if (is_string_default(xPos) && xPos.indexOf("%") !== -1 && !isNaN(xPos.slice(0, -1))) { - return this.parsePercentPosition(position2); - } - x6 = getNormalizedValue(xPos, xScale); - y5 = getNormalizedValue(yPos, Object.values(yScales)[0]); - } else if (!is_nil_default(position2)) { - for (var _i = 0, _a6 = keys_default(position2); _i < _a6.length; _i++) { - var key = _a6[_i]; - var value2 = position2[key]; - if (key === xScale.field) { - x6 = getNormalizedValue(value2, xScale); - } - if (yScales[key]) { - y5 = getNormalizedValue(value2, yScales[key]); - } - } - } - if (isNaN(x6) || isNaN(y5)) { - return null; - } - return this.view.getCoordinate().convert({ x: x6, y: y5 }); - }; - Annotation2.prototype.getRegionPoints = function(start, end2) { - var _this = this; - var xScale = this.view.getXScale(); - var yScales = this.view.getScalesByDim("y"); - var yScale = Object.values(yScales)[0]; - var xField = xScale.field; - var viewData = this.view.getData(); - var startXValue = is_array_default(start) ? start[0] : start[xField]; - var endXValue = is_array_default(end2) ? end2[0] : end2[xField]; - var arr = []; - var startIndex; - each_default(viewData, function(item, idx) { - if (item[xField] === startXValue) { - startIndex = idx; - } - if (idx >= startIndex) { - var point2 = _this.parsePosition([item[xField], item[yScale.field]]); - if (point2) { - arr.push(point2); - } - } - if (item[xField] === endXValue) { - return false; - } - }); - return arr; - }; - Annotation2.prototype.parsePercentPosition = function(position2) { - var xPercent = parseFloat(position2[0]) / 100; - var yPercent = parseFloat(position2[1]) / 100; - var coordinate11 = this.view.getCoordinate(); - var start = coordinate11.start, end2 = coordinate11.end; - var topLeft = { - x: Math.min(start.x, end2.x), - y: Math.min(start.y, end2.y) - }; - var x6 = coordinate11.getWidth() * xPercent + topLeft.x; - var y5 = coordinate11.getHeight() * yPercent + topLeft.y; - return { x: x6, y: y5 }; - }; - Annotation2.prototype.getCoordinateBBox = function() { - var coordinate11 = this.view.getCoordinate(); - var start = coordinate11.start, end2 = coordinate11.end; - var width2 = coordinate11.getWidth(); - var height = coordinate11.getHeight(); - var topLeft = { - x: Math.min(start.x, end2.x), - y: Math.min(start.y, end2.y) - }; - return { - x: topLeft.x, - y: topLeft.y, - minX: topLeft.x, - minY: topLeft.y, - maxX: topLeft.x + width2, - maxY: topLeft.y + height, - width: width2, - height - }; - }; - Annotation2.prototype.getAnnotationCfg = function(type2, option, theme4) { - var _this = this; - var coordinate11 = this.view.getCoordinate(); - var canvas = this.view.getCanvas(); - var o3 = {}; - if (is_nil_default(option)) { - return null; - } - var start = option.start, end2 = option.end, position2 = option.position; - ; - var sp = this.parsePosition(start); - var ep = this.parsePosition(end2); - var textPoint = this.parsePosition(position2); - if (["arc", "image", "line", "region", "regionFilter"].includes(type2) && (!sp || !ep)) { - return null; - } else if (["text", "dataMarker", "html"].includes(type2) && !textPoint) { - return null; - } - if (type2 === "arc") { - var _a6 = option, start_1 = _a6.start, end_1 = _a6.end, rest = __rest(_a6, ["start", "end"]); - var startAngle = getAngleByPoint(coordinate11, sp); - var endAngle = getAngleByPoint(coordinate11, ep); - if (startAngle > endAngle) { - endAngle = Math.PI * 2 + endAngle; - } - o3 = __assign(__assign({}, rest), { center: coordinate11.getCenter(), radius: getDistanceToCenter(coordinate11, sp), startAngle, endAngle }); - } else if (type2 === "image") { - var _b = option, start_2 = _b.start, end_2 = _b.end, rest = __rest(_b, ["start", "end"]); - o3 = __assign(__assign({}, rest), { start: sp, end: ep, src: option.src }); - } else if (type2 === "line") { - var _c = option, start_3 = _c.start, end_3 = _c.end, rest = __rest(_c, ["start", "end"]); - o3 = __assign(__assign({}, rest), { start: sp, end: ep, text: get_default(option, "text", null) }); - } else if (type2 === "region") { - var _d = option, start_4 = _d.start, end_4 = _d.end, rest = __rest(_d, ["start", "end"]); - o3 = __assign(__assign({}, rest), { start: sp, end: ep }); - } else if (type2 === "text") { - var filteredData = this.view.getData(); - var _e = option, position_1 = _e.position, content = _e.content, rest = __rest(_e, ["position", "content"]); - var textContent = content; - if (is_function_default(content)) { - textContent = content(filteredData); - } - o3 = __assign(__assign(__assign({}, textPoint), rest), { content: textContent }); - } else if (type2 === "dataMarker") { - var _f = option, position_2 = _f.position, point2 = _f.point, line2 = _f.line, text = _f.text, autoAdjust = _f.autoAdjust, direction5 = _f.direction, rest = __rest(_f, ["position", "point", "line", "text", "autoAdjust", "direction"]); - o3 = __assign(__assign(__assign({}, rest), textPoint), { coordinateBBox: this.getCoordinateBBox(), point: point2, line: line2, text, autoAdjust, direction: direction5 }); - } else if (type2 === "dataRegion") { - var _g = option, start_5 = _g.start, end_5 = _g.end, region = _g.region, text = _g.text, lineLength = _g.lineLength, rest = __rest(_g, ["start", "end", "region", "text", "lineLength"]); - o3 = __assign(__assign({}, rest), { points: this.getRegionPoints(start_5, end_5), region, text, lineLength }); - } else if (type2 === "regionFilter") { - var _h = option, start_6 = _h.start, end_6 = _h.end, apply_1 = _h.apply, color4 = _h.color, rest = __rest(_h, ["start", "end", "apply", "color"]); - var geometries = this.view.geometries; - var shapes_1 = []; - var addShapes_1 = function(item) { - if (!item) { - return; - } - if (item.isGroup()) { - item.getChildren().forEach(function(child) { - return addShapes_1(child); - }); - } else { - shapes_1.push(item); - } - }; - each_default(geometries, function(geom) { - if (apply_1) { - if (contains_default(apply_1, geom.type)) { - each_default(geom.elements, function(elem) { - addShapes_1(elem.shape); - }); - } - } else { - each_default(geom.elements, function(elem) { - addShapes_1(elem.shape); - }); - } - }); - o3 = __assign(__assign({}, rest), { color: color4, shapes: shapes_1, start: sp, end: ep }); - } else if (type2 === "shape") { - var _j = option, render_1 = _j.render, restOptions = __rest(_j, ["render"]); - var wrappedRender = function(container2) { - if (is_function_default(option.render)) { - return render_1(container2, _this.view, { parsePosition: _this.parsePosition.bind(_this) }); - } - }; - o3 = __assign(__assign({}, restOptions), { render: wrappedRender }); - } else if (type2 === "html") { - var _k = option, html_1 = _k.html, position_3 = _k.position, restOptions = __rest(_k, ["html", "position"]); - var wrappedHtml = function(container2) { - if (is_function_default(html_1)) { - return html_1(container2, _this.view); - } - return html_1; - }; - o3 = __assign(__assign(__assign({}, restOptions), textPoint), { - parent: canvas.get("el").parentNode, - html: wrappedHtml - }); - } - var cfg = deep_mix_default({}, theme4, __assign(__assign({}, o3), { top: option.top, style: option.style, offsetX: option.offsetX, offsetY: option.offsetY })); - if (type2 !== "html") { - cfg.container = this.getComponentContainer(cfg); - } - cfg.animate = this.view.getOptions().animate && cfg.animate && get_default(option, "animate", cfg.animate); - cfg.animateOption = deep_mix_default({}, DEFAULT_ANIMATE_CFG, cfg.animateOption, option.animateOption); - return cfg; - }; - Annotation2.prototype.isTop = function(option) { - return get_default(option, "top", true); - }; - Annotation2.prototype.getComponentContainer = function(option) { - return this.isTop(option) ? this.foregroundContainer : this.backgroundContainer; - }; - Annotation2.prototype.getAnnotationTheme = function(type2) { - return get_default(this.view.getTheme(), ["components", "annotation", type2], {}); - }; - Annotation2.prototype.updateOrCreate = function(option) { - var co = this.cache.get(this.getCacheKey(option)); - if (co) { - var type2 = option.type; - var theme4 = this.getAnnotationTheme(type2); - var cfg = this.getAnnotationCfg(type2, option, theme4); - if (cfg) { - omit(cfg, ["container"]); - } - co.component.update(__assign(__assign({}, cfg || {}), { visible: !!cfg })); - if (contains_default(ANNOTATIONS_AFTER_RENDER, option.type)) { - co.component.render(); - } - } else { - co = this.createAnnotation(option); - if (co) { - co.component.init(); - if (contains_default(ANNOTATIONS_AFTER_RENDER, option.type)) { - co.component.render(); - } - } - } - return co; - }; - Annotation2.prototype.syncCache = function(updated) { - var _this = this; - var newCache = new Map(this.cache); - updated.forEach(function(co, key) { - newCache.set(key, co); - }); - newCache.forEach(function(co, key) { - if (!find_default(_this.option, function(option) { - return key === _this.getCacheKey(option); - })) { - co.component.destroy(); - newCache.delete(key); - } - }); - return newCache; - }; - Annotation2.prototype.getCacheKey = function(option) { - return option; - }; - return Annotation2; -}(Controller); -var annotation_default = Annotation; - -// node_modules/@antv/g2/esm/util/grid.js -function getGridThemeCfg(theme4, direction5) { - var axisTheme = deep_mix_default({}, get_default(theme4, ["components", "axis", "common"]), get_default(theme4, ["components", "axis", direction5])); - return get_default(axisTheme, ["grid"], {}); -} -function getLineGridItems(coordinate11, scale12, dim, alignTick) { - var items = []; - var ticks = scale12.getTicks(); - if (coordinate11.isPolar) { - ticks.push({ - value: 1, - text: "", - tickValue: "" - }); - } - ticks.reduce(function(preTick, currentTick, currentIndex) { - var currentValue = currentTick.value; - if (alignTick) { - items.push({ - points: [ - coordinate11.convert(dim === "y" ? { x: 0, y: currentValue } : { x: currentValue, y: 0 }), - coordinate11.convert(dim === "y" ? { x: 1, y: currentValue } : { x: currentValue, y: 1 }) - ] - }); - } else { - if (currentIndex) { - var preValue = preTick.value; - var middleValue = (preValue + currentValue) / 2; - items.push({ - points: [ - coordinate11.convert(dim === "y" ? { x: 0, y: middleValue } : { x: middleValue, y: 0 }), - coordinate11.convert(dim === "y" ? { x: 1, y: middleValue } : { x: middleValue, y: 1 }) - ] - }); - } - } - return currentTick; - }, ticks[0]); - return items; -} -function getCircleGridItems(coordinate11, xScale, yScale, alignTick, dim) { - var count2 = xScale.values.length; - var items = []; - var ticks = yScale.getTicks(); - ticks.reduce(function(preTick, currentTick) { - var preValue = preTick ? preTick.value : currentTick.value; - var currentValue = currentTick.value; - var middleValue = (preValue + currentValue) / 2; - if (dim === "x") { - items.push({ - points: [ - coordinate11.convert({ - x: alignTick ? currentValue : middleValue, - y: 0 - }), - coordinate11.convert({ - x: alignTick ? currentValue : middleValue, - y: 1 - }) - ] - }); - } else { - items.push({ - points: map_default(Array(count2 + 1), function(__, idx) { - return coordinate11.convert({ - x: idx / count2, - y: alignTick ? currentValue : middleValue - }); - }) - }); - } - return currentTick; - }, ticks[0]); - return items; -} -function showGrid(axisTheme, axisOption) { - var userGrid = get_default(axisOption, "grid"); - if (userGrid === null) { - return false; - } - var themeGrid = get_default(axisTheme, "grid"); - return !(userGrid === void 0 && themeGrid === null); -} - -// node_modules/@antv/g2/esm/chart/controller/axis.js -var OMIT_CFG = ["container"]; -var AXIS_DEFAULT_ANIMATE_CFG = __assign(__assign({}, DEFAULT_ANIMATE_CFG), { appear: null }); -var Axis = function(_super) { - __extends(Axis2, _super); - function Axis2(view) { - var _this = _super.call(this, view) || this; - _this.cache = new Map(); - _this.gridContainer = _this.view.getLayer(LAYER.BG).addGroup(); - _this.gridForeContainer = _this.view.getLayer(LAYER.FORE).addGroup(); - _this.axisContainer = _this.view.getLayer(LAYER.BG).addGroup(); - _this.axisForeContainer = _this.view.getLayer(LAYER.FORE).addGroup(); - return _this; - } - Object.defineProperty(Axis2.prototype, "name", { - get: function() { - return "axis"; - }, - enumerable: false, - configurable: true - }); - Axis2.prototype.init = function() { - }; - Axis2.prototype.render = function() { - this.update(); - }; - Axis2.prototype.layout = function() { - var _this = this; - var coordinate11 = this.view.getCoordinate(); - each_default(this.getComponents(), function(co) { - var component2 = co.component, direction5 = co.direction, type2 = co.type, extra = co.extra; - var dim = extra.dim, scale12 = extra.scale, alignTick = extra.alignTick; - var updated; - if (type2 === COMPONENT_TYPE.AXIS) { - if (coordinate11.isPolar) { - if (dim === "x") { - updated = coordinate11.isTransposed ? getAxisRegion(coordinate11, direction5) : getCircleAxisCenterRadius(coordinate11); - } else if (dim === "y") { - updated = coordinate11.isTransposed ? getCircleAxisCenterRadius(coordinate11) : getAxisRegion(coordinate11, direction5); - } - } else { - updated = getAxisRegion(coordinate11, direction5); - } - } else if (type2 === COMPONENT_TYPE.GRID) { - if (coordinate11.isPolar) { - var items = void 0; - if (coordinate11.isTransposed) { - items = dim === "x" ? getCircleGridItems(coordinate11, _this.view.getYScales()[0], scale12, alignTick, dim) : getLineGridItems(coordinate11, scale12, dim, alignTick); - } else { - items = dim === "x" ? getLineGridItems(coordinate11, scale12, dim, alignTick) : getCircleGridItems(coordinate11, _this.view.getXScale(), scale12, alignTick, dim); - } - updated = { - items, - center: _this.view.getCoordinate().getCenter() - }; - } else { - updated = { items: getLineGridItems(coordinate11, scale12, dim, alignTick) }; - } - } - component2.update(updated); - }); - }; - Axis2.prototype.update = function() { - this.option = this.view.getOptions().axes; - var updatedCache = new Map(); - this.updateXAxes(updatedCache); - this.updateYAxes(updatedCache); - var newCache = new Map(); - this.cache.forEach(function(co, key) { - if (updatedCache.has(key)) { - newCache.set(key, co); - } else { - co.component.destroy(); - } - }); - this.cache = newCache; - }; - Axis2.prototype.clear = function() { - _super.prototype.clear.call(this); - this.cache.clear(); - this.gridContainer.clear(); - this.gridForeContainer.clear(); - this.axisContainer.clear(); - this.axisForeContainer.clear(); - }; - Axis2.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.gridContainer.remove(true); - this.gridForeContainer.remove(true); - this.axisContainer.remove(true); - this.axisForeContainer.remove(true); - }; - Axis2.prototype.getComponents = function() { - var co = []; - this.cache.forEach(function(value2) { - co.push(value2); - }); - return co; - }; - Axis2.prototype.updateXAxes = function(updatedCache) { - var scale12 = this.view.getXScale(); - if (!scale12 || scale12.isIdentity) { - return; - } - var xAxisOption = getAxisOption(this.option, scale12.field); - if (xAxisOption === false) { - return; - } - var direction5 = getAxisDirection(xAxisOption, DIRECTION.BOTTOM); - var layer = LAYER.BG; - var dim = "x"; - var coordinate11 = this.view.getCoordinate(); - var axisId = this.getId("axis", scale12.field); - var gridId = this.getId("grid", scale12.field); - if (coordinate11.isRect) { - var axis22 = this.cache.get(axisId); - if (axis22) { - var cfg = this.getLineAxisCfg(scale12, xAxisOption, direction5); - omit(cfg, OMIT_CFG); - axis22.component.update(cfg); - updatedCache.set(axisId, axis22); - } else { - axis22 = this.createLineAxis(scale12, xAxisOption, layer, direction5, dim); - this.cache.set(axisId, axis22); - updatedCache.set(axisId, axis22); - } - var grid = this.cache.get(gridId); - if (grid) { - var cfg = this.getLineGridCfg(scale12, xAxisOption, direction5, dim); - omit(cfg, OMIT_CFG); - grid.component.update(cfg); - updatedCache.set(gridId, grid); - } else { - grid = this.createLineGrid(scale12, xAxisOption, layer, direction5, dim); - if (grid) { - this.cache.set(gridId, grid); - updatedCache.set(gridId, grid); - } - } - } else if (coordinate11.isPolar) { - var axis22 = this.cache.get(axisId); - if (axis22) { - var cfg = coordinate11.isTransposed ? this.getLineAxisCfg(scale12, xAxisOption, DIRECTION.RADIUS) : this.getCircleAxisCfg(scale12, xAxisOption, direction5); - omit(cfg, OMIT_CFG); - axis22.component.update(cfg); - updatedCache.set(axisId, axis22); - } else { - if (coordinate11.isTransposed) { - if (is_undefined_default(xAxisOption)) { - return; - } else { - axis22 = this.createLineAxis(scale12, xAxisOption, layer, DIRECTION.RADIUS, dim); - } - } else { - axis22 = this.createCircleAxis(scale12, xAxisOption, layer, direction5, dim); - } - this.cache.set(axisId, axis22); - updatedCache.set(axisId, axis22); - } - var grid = this.cache.get(gridId); - if (grid) { - var cfg = coordinate11.isTransposed ? this.getCircleGridCfg(scale12, xAxisOption, DIRECTION.RADIUS, dim) : this.getLineGridCfg(scale12, xAxisOption, DIRECTION.CIRCLE, dim); - omit(cfg, OMIT_CFG); - grid.component.update(cfg); - updatedCache.set(gridId, grid); - } else { - if (coordinate11.isTransposed) { - if (is_undefined_default(xAxisOption)) { - return; - } else { - grid = this.createCircleGrid(scale12, xAxisOption, layer, DIRECTION.RADIUS, dim); - } - } else { - grid = this.createLineGrid(scale12, xAxisOption, layer, DIRECTION.CIRCLE, dim); - } - if (grid) { - this.cache.set(gridId, grid); - updatedCache.set(gridId, grid); - } - } - } else { - } - }; - Axis2.prototype.updateYAxes = function(updatedCache) { - var _this = this; - var yScales = this.view.getYScales(); - each_default(yScales, function(scale12, idx) { - if (!scale12 || scale12.isIdentity) { - return; - } - var field6 = scale12.field; - var yAxisOption = getAxisOption(_this.option, field6); - if (yAxisOption !== false) { - var layer = LAYER.BG; - var dim = "y"; - var axisId = _this.getId("axis", field6); - var gridId = _this.getId("grid", field6); - var coordinate11 = _this.view.getCoordinate(); - if (coordinate11.isRect) { - var direction5 = getAxisDirection(yAxisOption, idx === 0 ? DIRECTION.LEFT : DIRECTION.RIGHT); - var axis22 = _this.cache.get(axisId); - if (axis22) { - var cfg = _this.getLineAxisCfg(scale12, yAxisOption, direction5); - omit(cfg, OMIT_CFG); - axis22.component.update(cfg); - updatedCache.set(axisId, axis22); - } else { - axis22 = _this.createLineAxis(scale12, yAxisOption, layer, direction5, dim); - _this.cache.set(axisId, axis22); - updatedCache.set(axisId, axis22); - } - var grid = _this.cache.get(gridId); - if (grid) { - var cfg = _this.getLineGridCfg(scale12, yAxisOption, direction5, dim); - omit(cfg, OMIT_CFG); - grid.component.update(cfg); - updatedCache.set(gridId, grid); - } else { - grid = _this.createLineGrid(scale12, yAxisOption, layer, direction5, dim); - if (grid) { - _this.cache.set(gridId, grid); - updatedCache.set(gridId, grid); - } - } - } else if (coordinate11.isPolar) { - var axis22 = _this.cache.get(axisId); - if (axis22) { - var cfg = coordinate11.isTransposed ? _this.getCircleAxisCfg(scale12, yAxisOption, DIRECTION.CIRCLE) : _this.getLineAxisCfg(scale12, yAxisOption, DIRECTION.RADIUS); - omit(cfg, OMIT_CFG); - axis22.component.update(cfg); - updatedCache.set(axisId, axis22); - } else { - if (coordinate11.isTransposed) { - if (is_undefined_default(yAxisOption)) { - return; - } else { - axis22 = _this.createCircleAxis(scale12, yAxisOption, layer, DIRECTION.CIRCLE, dim); - } - } else { - axis22 = _this.createLineAxis(scale12, yAxisOption, layer, DIRECTION.RADIUS, dim); - } - _this.cache.set(axisId, axis22); - updatedCache.set(axisId, axis22); - } - var grid = _this.cache.get(gridId); - if (grid) { - var cfg = coordinate11.isTransposed ? _this.getLineGridCfg(scale12, yAxisOption, DIRECTION.CIRCLE, dim) : _this.getCircleGridCfg(scale12, yAxisOption, DIRECTION.RADIUS, dim); - omit(cfg, OMIT_CFG); - grid.component.update(cfg); - updatedCache.set(gridId, grid); - } else { - if (coordinate11.isTransposed) { - if (is_undefined_default(yAxisOption)) { - return; - } else { - grid = _this.createLineGrid(scale12, yAxisOption, layer, DIRECTION.CIRCLE, dim); - } - } else { - grid = _this.createCircleGrid(scale12, yAxisOption, layer, DIRECTION.RADIUS, dim); - } - if (grid) { - _this.cache.set(gridId, grid); - updatedCache.set(gridId, grid); - } - } - } else { - } - } - }); - }; - Axis2.prototype.createLineAxis = function(scale12, option, layer, direction5, dim) { - var axis22 = { - component: new LineAxis(this.getLineAxisCfg(scale12, option, direction5)), - layer, - direction: direction5 === DIRECTION.RADIUS ? DIRECTION.NONE : direction5, - type: COMPONENT_TYPE.AXIS, - extra: { dim, scale: scale12 } - }; - axis22.component.set("field", scale12.field); - axis22.component.init(); - return axis22; - }; - Axis2.prototype.createLineGrid = function(scale12, option, layer, direction5, dim) { - var cfg = this.getLineGridCfg(scale12, option, direction5, dim); - if (cfg) { - var grid = { - component: new LineGrid(cfg), - layer, - direction: DIRECTION.NONE, - type: COMPONENT_TYPE.GRID, - extra: { - dim, - scale: scale12, - alignTick: get_default(cfg, "alignTick", true) - } - }; - grid.component.init(); - return grid; - } - }; - Axis2.prototype.createCircleAxis = function(scale12, option, layer, direction5, dim) { - var axis22 = { - component: new CircleAxis(this.getCircleAxisCfg(scale12, option, direction5)), - layer, - direction: direction5, - type: COMPONENT_TYPE.AXIS, - extra: { dim, scale: scale12 } - }; - axis22.component.set("field", scale12.field); - axis22.component.init(); - return axis22; - }; - Axis2.prototype.createCircleGrid = function(scale12, option, layer, direction5, dim) { - var cfg = this.getCircleGridCfg(scale12, option, direction5, dim); - if (cfg) { - var grid = { - component: new CircleGrid(cfg), - layer, - direction: DIRECTION.NONE, - type: COMPONENT_TYPE.GRID, - extra: { - dim, - scale: scale12, - alignTick: get_default(cfg, "alignTick", true) - } - }; - grid.component.init(); - return grid; - } - }; - Axis2.prototype.getLineAxisCfg = function(scale12, axisOption, direction5) { - var container2 = get_default(axisOption, ["top"]) ? this.axisForeContainer : this.axisContainer; - var coordinate11 = this.view.getCoordinate(); - var region = getAxisRegion(coordinate11, direction5); - var titleText = getAxisTitleText(scale12, axisOption); - var axisThemeCfg = getAxisThemeCfg(this.view.getTheme(), direction5); - var optionWithTitle = get_default(axisOption, ["title"]) ? deep_mix_default({ title: { style: { text: titleText } } }, { title: getAxisTitleOptions(this.view.getTheme(), direction5, axisOption.title) }, axisOption) : axisOption; - var cfg = deep_mix_default(__assign(__assign({ container: container2 }, region), { ticks: scale12.getTicks().map(function(tick) { - return { id: "".concat(tick.tickValue), name: tick.text, value: tick.value }; - }), verticalFactor: coordinate11.isPolar ? getAxisFactorByRegion(region, coordinate11.getCenter()) * -1 : getAxisFactorByRegion(region, coordinate11.getCenter()), theme: axisThemeCfg }), axisThemeCfg, optionWithTitle); - var _a6 = this.getAnimateCfg(cfg), animate = _a6.animate, animateOption = _a6.animateOption; - cfg.animateOption = animateOption; - cfg.animate = animate; - var isAxisVertical = isVertical(region); - var verticalLimitLength = get_default(cfg, "verticalLimitLength", isAxisVertical ? 1 / 3 : 1 / 2); - if (verticalLimitLength <= 1) { - var canvasWidth = this.view.getCanvas().get("width"); - var canvasHeight = this.view.getCanvas().get("height"); - cfg.verticalLimitLength = verticalLimitLength * (isAxisVertical ? canvasWidth : canvasHeight); - } - return cfg; - }; - Axis2.prototype.getLineGridCfg = function(scale12, axisOption, direction5, dim) { - if (!showGrid(getAxisThemeCfg(this.view.getTheme(), direction5), axisOption)) { - return void 0; - } - var gridThemeCfg = getGridThemeCfg(this.view.getTheme(), direction5); - var gridCfg = deep_mix_default({ - container: get_default(axisOption, ["top"]) ? this.gridForeContainer : this.gridContainer - }, gridThemeCfg, get_default(axisOption, "grid"), this.getAnimateCfg(axisOption)); - gridCfg.items = getLineGridItems(this.view.getCoordinate(), scale12, dim, get_default(gridCfg, "alignTick", true)); - return gridCfg; - }; - Axis2.prototype.getCircleAxisCfg = function(scale12, axisOption, direction5) { - var container2 = get_default(axisOption, ["top"]) ? this.axisForeContainer : this.axisContainer; - var coordinate11 = this.view.getCoordinate(); - var ticks = scale12.getTicks().map(function(tick) { - return { id: "".concat(tick.tickValue), name: tick.text, value: tick.value }; - }); - if (!scale12.isCategory && Math.abs(coordinate11.endAngle - coordinate11.startAngle) === Math.PI * 2) { - ticks.pop(); - } - var titleText = getAxisTitleText(scale12, axisOption); - var axisThemeCfg = getAxisThemeCfg(this.view.getTheme(), DIRECTION.CIRCLE); - var optionWithTitle = get_default(axisOption, ["title"]) ? deep_mix_default({ title: { style: { text: titleText } } }, { title: getAxisTitleOptions(this.view.getTheme(), direction5, axisOption.title) }, axisOption) : axisOption; - var cfg = deep_mix_default(__assign(__assign({ container: container2 }, getCircleAxisCenterRadius(this.view.getCoordinate())), { ticks, verticalFactor: 1, theme: axisThemeCfg }), axisThemeCfg, optionWithTitle); - var _a6 = this.getAnimateCfg(cfg), animate = _a6.animate, animateOption = _a6.animateOption; - cfg.animate = animate; - cfg.animateOption = animateOption; - return cfg; - }; - Axis2.prototype.getCircleGridCfg = function(scale12, axisOption, direction5, dim) { - if (!showGrid(getAxisThemeCfg(this.view.getTheme(), direction5), axisOption)) { - return void 0; - } - var gridThemeCfg = getGridThemeCfg(this.view.getTheme(), DIRECTION.RADIUS); - var gridCfg = deep_mix_default({ - container: get_default(axisOption, ["top"]) ? this.gridForeContainer : this.gridContainer, - center: this.view.getCoordinate().getCenter() - }, gridThemeCfg, get_default(axisOption, "grid"), this.getAnimateCfg(axisOption)); - var alignTick = get_default(gridCfg, "alignTick", true); - var verticalScale = dim === "x" ? this.view.getYScales()[0] : this.view.getXScale(); - gridCfg.items = getCircleGridItems(this.view.getCoordinate(), verticalScale, scale12, alignTick, dim); - return gridCfg; - }; - Axis2.prototype.getId = function(name, key) { - var coordinate11 = this.view.getCoordinate(); - return "".concat(name, "-").concat(key, "-").concat(coordinate11.type); - }; - Axis2.prototype.getAnimateCfg = function(cfg) { - return { - animate: this.view.getOptions().animate && get_default(cfg, "animate"), - animateOption: cfg && cfg.animateOption ? deep_mix_default({}, AXIS_DEFAULT_ANIMATE_CFG, cfg.animateOption) : AXIS_DEFAULT_ANIMATE_CFG - }; - }; - return Axis2; -}(Controller); -var axis_default = Axis; - -// node_modules/@antv/g2/esm/util/direction.js -function directionToPosition(parentBBox, bbox, direction5) { - if (direction5 === DIRECTION.TOP) { - return [parentBBox.minX + parentBBox.width / 2 - bbox.width / 2, parentBBox.minY]; - } - if (direction5 === DIRECTION.BOTTOM) { - return [parentBBox.minX + parentBBox.width / 2 - bbox.width / 2, parentBBox.maxY - bbox.height]; - } - if (direction5 === DIRECTION.LEFT) { - return [parentBBox.minX, parentBBox.minY + parentBBox.height / 2 - bbox.height / 2]; - } - if (direction5 === DIRECTION.RIGHT) { - return [parentBBox.maxX - bbox.width, parentBBox.minY + parentBBox.height / 2 - bbox.height / 2]; - } - if (direction5 === DIRECTION.TOP_LEFT || direction5 === DIRECTION.LEFT_TOP) { - return [parentBBox.tl.x, parentBBox.tl.y]; - } - if (direction5 === DIRECTION.TOP_RIGHT || direction5 === DIRECTION.RIGHT_TOP) { - return [parentBBox.tr.x - bbox.width, parentBBox.tr.y]; - } - if (direction5 === DIRECTION.BOTTOM_LEFT || direction5 === DIRECTION.LEFT_BOTTOM) { - return [parentBBox.bl.x, parentBBox.bl.y - bbox.height]; - } - if (direction5 === DIRECTION.BOTTOM_RIGHT || direction5 === DIRECTION.RIGHT_BOTTOM) { - return [parentBBox.br.x - bbox.width, parentBBox.br.y - bbox.height]; - } - return [0, 0]; -} - -// node_modules/@antv/g2/esm/chart/controller/legend.js -function getLegendOption(legends, field6) { - if (is_boolean_default(legends)) { - return legends === false ? false : {}; - } - return get_default(legends, [field6], legends); -} -function getDirection(legendOption) { - return get_default(legendOption, "position", DIRECTION.BOTTOM); -} -var Legend = function(_super) { - __extends(Legend2, _super); - function Legend2(view) { - var _this = _super.call(this, view) || this; - _this.container = _this.view.getLayer(LAYER.FORE).addGroup(); - return _this; - } - Object.defineProperty(Legend2.prototype, "name", { - get: function() { - return "legend"; - }, - enumerable: false, - configurable: true - }); - Legend2.prototype.init = function() { - }; - Legend2.prototype.render = function() { - this.update(); - }; - Legend2.prototype.layout = function() { - var _this = this; - this.layoutBBox = this.view.viewBBox; - each_default(this.components, function(co) { - var component2 = co.component, direction5 = co.direction; - var layout6 = getLegendLayout(direction5); - var maxWidthRatio = component2.get("maxWidthRatio"); - var maxHeightRatio = component2.get("maxHeightRatio"); - var maxSize = _this.getCategoryLegendSizeCfg(layout6, maxWidthRatio, maxHeightRatio); - var maxWidth = component2.get("maxWidth"); - var maxHeight = component2.get("maxHeight"); - component2.update({ - maxWidth: Math.min(maxSize.maxWidth, maxWidth || 0), - maxHeight: Math.min(maxSize.maxHeight, maxHeight || 0) - }); - var padding3 = component2.get("padding"); - var bboxObject = component2.getLayoutBBox(); - var bbox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(padding3); - var _a6 = directionToPosition(_this.view.viewBBox, bbox, direction5), x1 = _a6[0], y1 = _a6[1]; - var _b = directionToPosition(_this.layoutBBox, bbox, direction5), x22 = _b[0], y22 = _b[1]; - var x6 = 0; - var y5 = 0; - if (direction5.startsWith("top") || direction5.startsWith("bottom")) { - x6 = x1; - y5 = y22; - } else { - x6 = x22; - y5 = y1; - } - component2.setLocation({ x: x6 + padding3[3], y: y5 + padding3[0] }); - _this.layoutBBox = _this.layoutBBox.cut(bbox, direction5); - }); - }; - Legend2.prototype.update = function() { - var _this = this; - this.option = this.view.getOptions().legends; - var updated = {}; - var eachLegend = function(geometry35, attr, scale12) { - var id2 = _this.getId(scale12.field); - var existCo2 = _this.getComponentById(id2); - if (existCo2) { - var cfg = void 0; - var legendOption = getLegendOption(_this.option, scale12.field); - if (legendOption !== false) { - if (get_default(legendOption, "custom")) { - cfg = _this.getCategoryCfg(geometry35, attr, scale12, legendOption, true); - } else { - if (scale12.isLinear) { - cfg = _this.getContinuousCfg(geometry35, attr, scale12, legendOption); - } else if (scale12.isCategory) { - cfg = _this.getCategoryCfg(geometry35, attr, scale12, legendOption); - } - } - } - if (cfg) { - omit(cfg, ["container"]); - existCo2.direction = getDirection(legendOption); - existCo2.component.update(cfg); - updated[id2] = true; - } - } else { - var legend18 = _this.createFieldLegend(geometry35, attr, scale12); - if (legend18) { - legend18.component.init(); - _this.components.push(legend18); - updated[id2] = true; - } - } - }; - if (get_default(this.option, "custom")) { - var id = "global-custom"; - var existCo = this.getComponentById(id); - if (existCo) { - var customCfg = this.getCategoryCfg(void 0, void 0, void 0, this.option, true); - omit(customCfg, ["container"]); - existCo.component.update(customCfg); - updated[id] = true; - } else { - var component2 = this.createCustomLegend(void 0, void 0, void 0, this.option); - if (component2) { - component2.init(); - var layer = LAYER.FORE; - var direction5 = getDirection(this.option); - this.components.push({ - id, - component: component2, - layer, - direction: direction5, - type: COMPONENT_TYPE.LEGEND, - extra: void 0 - }); - updated[id] = true; - } - } - } else { - this.loopLegends(eachLegend); - } - var components = []; - each_default(this.getComponents(), function(co) { - if (updated[co.id]) { - components.push(co); - } else { - co.component.destroy(); - } - }); - this.components = components; - }; - Legend2.prototype.clear = function() { - _super.prototype.clear.call(this); - this.container.clear(); - }; - Legend2.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.container.remove(true); - }; - Legend2.prototype.getGeometries = function(view) { - var _this = this; - var geometries = view.geometries; - each_default(view.views, function(v3) { - geometries = geometries.concat(_this.getGeometries(v3)); - }); - return geometries; - }; - Legend2.prototype.loopLegends = function(doEach) { - var isRootView = this.view.getRootView() === this.view; - if (!isRootView) { - return; - } - var geometries = this.getGeometries(this.view); - var looped = {}; - each_default(geometries, function(geometry35) { - var attributes = geometry35.getGroupAttributes(); - each_default(attributes, function(attr) { - var scale12 = attr.getScale(attr.type); - if (!scale12 || scale12.type === "identity" || looped[scale12.field]) { - return; - } - doEach(geometry35, attr, scale12); - looped[scale12.field] = true; - }); - }); - }; - Legend2.prototype.createFieldLegend = function(geometry35, attr, scale12) { - var component2; - var legendOption = getLegendOption(this.option, scale12.field); - var layer = LAYER.FORE; - var direction5 = getDirection(legendOption); - if (legendOption !== false) { - if (get_default(legendOption, "custom")) { - component2 = this.createCustomLegend(geometry35, attr, scale12, legendOption); - } else { - if (scale12.isLinear) { - component2 = this.createContinuousLegend(geometry35, attr, scale12, legendOption); - } else if (scale12.isCategory) { - component2 = this.createCategoryLegend(geometry35, attr, scale12, legendOption); - } - } - } - if (component2) { - component2.set("field", scale12.field); - return { - id: this.getId(scale12.field), - component: component2, - layer, - direction: direction5, - type: COMPONENT_TYPE.LEGEND, - extra: { scale: scale12 } - }; - } - }; - Legend2.prototype.createCustomLegend = function(geometry35, attr, scale12, legendOption) { - var cfg = this.getCategoryCfg(geometry35, attr, scale12, legendOption, true); - return new CategoryLegend(cfg); - }; - Legend2.prototype.createContinuousLegend = function(geometry35, attr, scale12, legendOption) { - var cfg = this.getContinuousCfg(geometry35, attr, scale12, omit(legendOption, ["value"])); - return new ContinuousLegend(cfg); - }; - Legend2.prototype.createCategoryLegend = function(geometry35, attr, scale12, legendOption) { - var cfg = this.getCategoryCfg(geometry35, attr, scale12, legendOption); - return new CategoryLegend(cfg); - }; - Legend2.prototype.getContinuousCfg = function(geometry35, attr, scale12, legendOption) { - var ticks = scale12.getTicks(); - var containMin = find_default(ticks, function(tick) { - return tick.value === 0; - }); - var containMax = find_default(ticks, function(tick) { - return tick.value === 1; - }); - var items = ticks.map(function(tick) { - var value2 = tick.value, tickValue = tick.tickValue; - var attrValue = attr.mapping(scale12.invert(value2)).join(""); - return { - value: tickValue, - attrValue, - color: attrValue, - scaleValue: value2 - }; - }); - if (!containMin) { - items.push({ - value: scale12.min, - attrValue: attr.mapping(scale12.invert(0)).join(""), - color: attr.mapping(scale12.invert(0)).join(""), - scaleValue: 0 - }); - } - if (!containMax) { - items.push({ - value: scale12.max, - attrValue: attr.mapping(scale12.invert(1)).join(""), - color: attr.mapping(scale12.invert(1)).join(""), - scaleValue: 1 - }); - } - items.sort(function(a4, b10) { - return a4.value - b10.value; - }); - var attrLegendCfg = { - min: head(items).value, - max: last(items).value, - colors: [], - rail: { - type: attr.type - }, - track: {} - }; - if (attr.type === "size") { - attrLegendCfg.track = { - style: { - fill: attr.type === "size" ? this.view.getTheme().defaultColor : void 0 - } - }; - } - if (attr.type === "color") { - attrLegendCfg.colors = items.map(function(item) { - return item.attrValue; - }); - } - var container2 = this.container; - var direction5 = getDirection(legendOption); - var layout6 = getLegendLayout(direction5); - var title = get_default(legendOption, "title"); - if (title) { - title = deep_mix_default({ - text: getName(scale12) - }, title); - } - attrLegendCfg.container = container2; - attrLegendCfg.layout = layout6; - attrLegendCfg.title = title; - attrLegendCfg.animateOption = DEFAULT_ANIMATE_CFG; - return this.mergeLegendCfg(attrLegendCfg, legendOption, "continuous"); - }; - Legend2.prototype.getCategoryCfg = function(geometry35, attr, scale12, legendOption, custom12) { - var container2 = this.container; - var direction5 = get_default(legendOption, "position", DIRECTION.BOTTOM); - var legendTheme = getLegendThemeCfg(this.view.getTheme(), direction5); - var themeMarker = get_default(legendTheme, ["marker"]); - var userMarker = get_default(legendOption, "marker"); - var layout6 = getLegendLayout(direction5); - var themePageNavigator = get_default(legendTheme, ["pageNavigator"]); - var userPageNavigator = get_default(legendOption, "pageNavigator"); - var items = custom12 ? getCustomLegendItems(themeMarker, userMarker, legendOption.items) : getLegendItems(this.view, geometry35, attr, themeMarker, userMarker); - var title = get_default(legendOption, "title"); - if (title) { - title = deep_mix_default({ - text: scale12 ? getName(scale12) : "" - }, title); - } - var maxWidthRatio = get_default(legendOption, "maxWidthRatio"); - var maxHeightRatio = get_default(legendOption, "maxHeightRatio"); - var baseCfg = this.getCategoryLegendSizeCfg(layout6, maxWidthRatio, maxHeightRatio); - baseCfg.container = container2; - baseCfg.layout = layout6; - baseCfg.items = items; - baseCfg.title = title; - baseCfg.animateOption = DEFAULT_ANIMATE_CFG; - baseCfg.pageNavigator = deep_mix_default({}, themePageNavigator, userPageNavigator); - var categoryCfg = this.mergeLegendCfg(baseCfg, legendOption, direction5); - if (categoryCfg.reversed) { - categoryCfg.items.reverse(); - } - var maxItemWidth = get_default(categoryCfg, "maxItemWidth"); - if (maxItemWidth && maxItemWidth <= 1) { - categoryCfg.maxItemWidth = this.view.viewBBox.width * maxItemWidth; - } - return categoryCfg; - }; - Legend2.prototype.mergeLegendCfg = function(baseCfg, legendOption, direction5) { - var position2 = direction5.split("-")[0]; - var themeObject = getLegendThemeCfg(this.view.getTheme(), position2); - return deep_mix_default({}, themeObject, baseCfg, legendOption); - }; - Legend2.prototype.getId = function(key) { - return "".concat(this.name, "-").concat(key); - }; - Legend2.prototype.getComponentById = function(id) { - return find_default(this.components, function(co) { - return co.id === id; - }); - }; - Legend2.prototype.getCategoryLegendSizeCfg = function(layout6, maxWidthRatio, maxHeightRatio) { - if (maxWidthRatio === void 0) { - maxWidthRatio = COMPONENT_MAX_VIEW_PERCENTAGE; - } - if (maxHeightRatio === void 0) { - maxHeightRatio = COMPONENT_MAX_VIEW_PERCENTAGE; - } - var _a6 = this.view.viewBBox, vw = _a6.width, vh = _a6.height; - return layout6 === "vertical" ? { - maxWidth: vw * maxWidthRatio, - maxHeight: vh - } : { - maxWidth: vw, - maxHeight: vh * maxHeightRatio - }; - }; - return Legend2; -}(Controller); -var legend_default = Legend; - -// node_modules/@antv/g2/esm/chart/controller/slider.js -var Slider2 = function(_super) { - __extends(Slider3, _super); - function Slider3(view) { - var _this = _super.call(this, view) || this; - _this.onChangeFn = noop_default; - _this.resetMeasure = function() { - _this.clear(); - }; - _this.onValueChange = function(v3) { - var min7 = v3[0], max8 = v3[1]; - _this.start = min7; - _this.end = max8; - _this.changeViewData(min7, max8); - }; - _this.container = _this.view.getLayer(LAYER.FORE).addGroup(); - _this.onChangeFn = throttle_default(_this.onValueChange, 20, { - leading: true - }); - _this.width = 0; - _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, _this.resetMeasure); - _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, _this.resetMeasure); - return _this; - } - Object.defineProperty(Slider3.prototype, "name", { - get: function() { - return "slider"; - }, - enumerable: false, - configurable: true - }); - Slider3.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, this.resetMeasure); - this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, this.resetMeasure); - }; - Slider3.prototype.init = function() { - }; - Slider3.prototype.render = function() { - this.option = this.view.getOptions().slider; - var _a6 = this.getSliderCfg(), start = _a6.start, end2 = _a6.end; - if (is_nil_default(this.start)) { - this.start = start; - this.end = end2; - } - var viewData = this.view.getOptions().data; - if (this.option && !is_empty_default(viewData)) { - if (this.slider) { - this.slider = this.updateSlider(); - } else { - this.slider = this.createSlider(); - this.slider.component.on("sliderchange", this.onChangeFn); - } - } else { - if (this.slider) { - this.slider.component.destroy(); - this.slider = void 0; - } else { - } - } - }; - Slider3.prototype.layout = function() { - var _this = this; - if (this.option && !this.width) { - this.measureSlider(); - setTimeout(function() { - if (!_this.view.destroyed) { - _this.changeViewData(_this.start, _this.end); - } - }, 0); - } - if (this.slider) { - var width2 = this.view.coordinateBBox.width; - var padding3 = this.slider.component.get("padding"); - var paddingTop = padding3[0], paddingRight = padding3[1], paddingBottom = padding3[2], paddingLeft = padding3[3]; - var bboxObject = this.slider.component.getLayoutBBox(); - var bbox = new BBox(bboxObject.x, bboxObject.y, Math.min(bboxObject.width, width2), bboxObject.height).expand(padding3); - var _a6 = this.getMinMaxText(this.start, this.end), minText = _a6.minText, maxText = _a6.maxText; - var _b = directionToPosition(this.view.viewBBox, bbox, DIRECTION.BOTTOM), x1 = _b[0], y1 = _b[1]; - var _c = directionToPosition(this.view.coordinateBBox, bbox, DIRECTION.BOTTOM), x22 = _c[0], y22 = _c[1]; - this.slider.component.update(__assign(__assign({}, this.getSliderCfg()), { x: x22 + paddingLeft, y: y1 + paddingTop, width: this.width, start: this.start, end: this.end, minText, maxText })); - this.view.viewBBox = this.view.viewBBox.cut(bbox, DIRECTION.BOTTOM); - } - }; - Slider3.prototype.update = function() { - this.render(); - }; - Slider3.prototype.createSlider = function() { - var cfg = this.getSliderCfg(); - var component2 = new Slider(__assign({ container: this.container }, cfg)); - component2.init(); - return { - component: component2, - layer: LAYER.FORE, - direction: DIRECTION.BOTTOM, - type: COMPONENT_TYPE.SLIDER - }; - }; - Slider3.prototype.updateSlider = function() { - var cfg = this.getSliderCfg(); - if (this.width) { - var _a6 = this.getMinMaxText(this.start, this.end), minText = _a6.minText, maxText = _a6.maxText; - cfg = __assign(__assign({}, cfg), { width: this.width, start: this.start, end: this.end, minText, maxText }); - } - this.slider.component.update(cfg); - return this.slider; - }; - Slider3.prototype.measureSlider = function() { - var width2 = this.getSliderCfg().width; - this.width = width2; - }; - Slider3.prototype.getSliderCfg = function() { - var cfg = { - height: 16, - start: 0, - end: 1, - minText: "", - maxText: "", - x: 0, - y: 0, - width: this.view.coordinateBBox.width - }; - if (is_object_default(this.option)) { - var trendCfg = __assign({ data: this.getData() }, get_default(this.option, "trendCfg", {})); - cfg = deep_mix_default({}, cfg, this.getThemeOptions(), this.option); - cfg = __assign(__assign({}, cfg), { trendCfg }); - } - cfg.start = clamp_default(Math.min(is_nil_default(cfg.start) ? 0 : cfg.start, is_nil_default(cfg.end) ? 1 : cfg.end), 0, 1); - cfg.end = clamp_default(Math.max(is_nil_default(cfg.start) ? 0 : cfg.start, is_nil_default(cfg.end) ? 1 : cfg.end), 0, 1); - return cfg; - }; - Slider3.prototype.getData = function() { - var data3 = this.view.getOptions().data; - var yScale = this.view.getYScales()[0]; - var groupScales = this.view.getGroupScales(); - if (groupScales.length) { - var _a6 = groupScales[0], field_1 = _a6.field, ticks_1 = _a6.ticks; - return data3.reduce(function(pre, cur) { - if (cur[field_1] === ticks_1[0]) { - pre.push(cur[yScale.field]); - } - return pre; - }, []); - } - return data3.map(function(datum) { - return datum[yScale.field] || 0; - }); - }; - Slider3.prototype.getThemeOptions = function() { - var theme4 = this.view.getTheme(); - return get_default(theme4, ["components", "slider", "common"], {}); - }; - Slider3.prototype.getMinMaxText = function(min7, max8) { - var data3 = this.view.getOptions().data; - var xScale = this.view.getXScale(); - var isHorizontal2 = true; - var values2 = values_of_key_default(data3, xScale.field); - if (xScale.isLinear) { - values2 = values2.sort(); - } - var xValues = isHorizontal2 ? values2 : values2.reverse(); - var dataSize = size(data3); - if (!xScale || !dataSize) { - return {}; - } - var xTickCount = size(xValues); - var minIndex = Math.floor(min7 * (xTickCount - 1)); - var maxIndex = Math.floor(max8 * (xTickCount - 1)); - var minText = get_default(xValues, [minIndex]); - var maxText = get_default(xValues, [maxIndex]); - var formatter = this.getSliderCfg().formatter; - if (formatter) { - minText = formatter(minText, data3[minIndex], minIndex); - maxText = formatter(maxText, data3[maxIndex], maxIndex); - } - return { - minText, - maxText - }; - }; - Slider3.prototype.changeViewData = function(min7, max8) { - var data3 = this.view.getOptions().data; - var xScale = this.view.getXScale(); - var dataSize = size(data3); - if (!xScale || !dataSize) { - return; - } - var isHorizontal2 = true; - var values2 = values_of_key_default(data3, xScale.field); - var xScaleValues = this.view.getXScale().isLinear ? values2.sort(function(a4, b10) { - return Number(a4) - Number(b10); - }) : values2; - var xValues = isHorizontal2 ? xScaleValues : xScaleValues.reverse(); - var xTickCount = size(xValues); - var minIndex = Math.floor(min7 * (xTickCount - 1)); - var maxIndex = Math.floor(max8 * (xTickCount - 1)); - this.view.filter(xScale.field, function(value2, datum) { - var idx = xValues.indexOf(value2); - return idx > -1 ? isBetween2(idx, minIndex, maxIndex) : true; - }); - this.view.render(true); - }; - Slider3.prototype.getComponents = function() { - return this.slider ? [this.slider] : []; - }; - Slider3.prototype.clear = function() { - if (this.slider) { - this.slider.component.destroy(); - this.slider = void 0; - } - this.width = 0; - this.start = void 0; - this.end = void 0; - }; - return Slider3; -}(Controller); -var slider_default = Slider2; - -// node_modules/@antv/g2/esm/chart/controller/scrollbar.js -var DEFAULT_PADDING = 0; -var DEFAULT_SIZE = 8; -var DEFAULT_CATEGORY_SIZE = 32; -var MIN_THUMB_LENGTH = 20; -var Scrollbar2 = function(_super) { - __extends(Scrollbar3, _super); - function Scrollbar3(view) { - var _this = _super.call(this, view) || this; - _this.onChangeFn = noop_default; - _this.resetMeasure = function() { - _this.clear(); - }; - _this.onValueChange = function(_a6) { - var ratio = _a6.ratio; - var animate = _this.getValidScrollbarCfg().animate; - _this.ratio = clamp_default(ratio, 0, 1); - var originalAnimate = _this.view.getOptions().animate; - if (!animate) { - _this.view.animate(false); - } - _this.changeViewData(_this.getScrollRange(), true); - _this.view.animate(originalAnimate); - }; - _this.container = _this.view.getLayer(LAYER.FORE).addGroup(); - _this.onChangeFn = throttle_default(_this.onValueChange, 20, { - leading: true - }); - _this.trackLen = 0; - _this.thumbLen = 0; - _this.ratio = 0; - _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, _this.resetMeasure); - _this.view.on(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, _this.resetMeasure); - return _this; - } - Object.defineProperty(Scrollbar3.prototype, "name", { - get: function() { - return "scrollbar"; - }, - enumerable: false, - configurable: true - }); - Scrollbar3.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, this.resetMeasure); - this.view.off(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE, this.resetMeasure); - }; - Scrollbar3.prototype.init = function() { - }; - Scrollbar3.prototype.render = function() { - this.option = this.view.getOptions().scrollbar; - if (this.option) { - if (this.scrollbar) { - this.scrollbar = this.updateScrollbar(); - } else { - this.scrollbar = this.createScrollbar(); - this.scrollbar.component.on("scrollchange", this.onChangeFn); - } - } else { - if (this.scrollbar) { - this.scrollbar.component.destroy(); - this.scrollbar = void 0; - } - } - }; - Scrollbar3.prototype.layout = function() { - var _this = this; - if (this.option && !this.trackLen) { - this.measureScrollbar(); - setTimeout(function() { - if (!_this.view.destroyed) { - _this.changeViewData(_this.getScrollRange(), true); - } - }); - } - if (this.scrollbar) { - var width2 = this.view.coordinateBBox.width; - var padding3 = this.scrollbar.component.get("padding"); - var bboxObject = this.scrollbar.component.getLayoutBBox(); - var bbox = new BBox(bboxObject.x, bboxObject.y, Math.min(bboxObject.width, width2), bboxObject.height).expand(padding3); - var cfg = this.getScrollbarComponentCfg(); - var x6 = void 0; - var y5 = void 0; - if (cfg.isHorizontal) { - var _a6 = directionToPosition(this.view.viewBBox, bbox, DIRECTION.BOTTOM), x1 = _a6[0], y1 = _a6[1]; - var _b = directionToPosition(this.view.coordinateBBox, bbox, DIRECTION.BOTTOM), x22 = _b[0], y22 = _b[1]; - x6 = x22; - y5 = y1; - } else { - var _c = directionToPosition(this.view.viewBBox, bbox, DIRECTION.RIGHT), x1 = _c[0], y1 = _c[1]; - var _d = directionToPosition(this.view.viewBBox, bbox, DIRECTION.RIGHT), x22 = _d[0], y22 = _d[1]; - x6 = x22; - y5 = y1; - } - x6 += padding3[3]; - y5 += padding3[0]; - if (this.trackLen) { - this.scrollbar.component.update(__assign(__assign({}, cfg), { x: x6, y: y5, trackLen: this.trackLen, thumbLen: this.thumbLen, thumbOffset: (this.trackLen - this.thumbLen) * this.ratio })); - } else { - this.scrollbar.component.update(__assign(__assign({}, cfg), { x: x6, y: y5 })); - } - this.view.viewBBox = this.view.viewBBox.cut(bbox, cfg.isHorizontal ? DIRECTION.BOTTOM : DIRECTION.RIGHT); - } - }; - Scrollbar3.prototype.update = function() { - this.render(); - }; - Scrollbar3.prototype.getComponents = function() { - return this.scrollbar ? [this.scrollbar] : []; - }; - Scrollbar3.prototype.clear = function() { - if (this.scrollbar) { - this.scrollbar.component.destroy(); - this.scrollbar = void 0; - } - this.trackLen = 0; - this.thumbLen = 0; - this.ratio = 0; - this.cnt = 0; - this.step = 0; - this.data = void 0; - this.xScaleCfg = void 0; - this.yScalesCfg = []; - }; - Scrollbar3.prototype.setValue = function(ratio) { - this.onValueChange({ ratio }); - }; - Scrollbar3.prototype.getValue = function() { - return this.ratio; - }; - Scrollbar3.prototype.getThemeOptions = function() { - var theme4 = this.view.getTheme(); - return get_default(theme4, ["components", "scrollbar", "common"], {}); - }; - Scrollbar3.prototype.getScrollbarTheme = function(style) { - var theme4 = get_default(this.view.getTheme(), ["components", "scrollbar"]); - var _a6 = style || {}, thumbHighlightColor = _a6.thumbHighlightColor, restStyles = __rest(_a6, ["thumbHighlightColor"]); - return { - default: deep_mix_default({}, get_default(theme4, ["default", "style"], {}), restStyles), - hover: deep_mix_default({}, get_default(theme4, ["hover", "style"], {}), { thumbColor: thumbHighlightColor }) - }; - }; - Scrollbar3.prototype.measureScrollbar = function() { - var xScale = this.view.getXScale(); - var yScales = this.view.getYScales().slice(); - this.data = this.getScrollbarData(); - this.step = this.getStep(); - this.cnt = this.getCnt(); - var _a6 = this.getScrollbarComponentCfg(), trackLen = _a6.trackLen, thumbLen = _a6.thumbLen; - this.trackLen = trackLen; - this.thumbLen = thumbLen; - this.xScaleCfg = { - field: xScale.field, - values: xScale.values || [] - }; - this.yScalesCfg = yScales; - }; - Scrollbar3.prototype.getScrollRange = function() { - var startIdx = Math.floor((this.cnt - this.step) * clamp_default(this.ratio, 0, 1)); - var endIdx = Math.min(startIdx + this.step - 1, this.cnt - 1); - return [startIdx, endIdx]; - }; - Scrollbar3.prototype.changeViewData = function(_a6, render) { - var _this = this; - var startIdx = _a6[0], endIdx = _a6[1]; - var type2 = this.getValidScrollbarCfg().type; - var isHorizontal2 = type2 !== "vertical"; - var values2 = values_of_key_default(this.data, this.xScaleCfg.field); - var xScaleValues = this.view.getXScale().isLinear ? values2.sort(function(a4, b10) { - return Number(a4) - Number(b10); - }) : values2; - var xValues = isHorizontal2 ? xScaleValues : xScaleValues.reverse(); - this.yScalesCfg.forEach(function(cfg) { - _this.view.scale(cfg.field, { - formatter: cfg.formatter, - type: cfg.type, - min: cfg.min, - max: cfg.max, - tickMethod: cfg.tickMethod - }); - }); - this.view.filter(this.xScaleCfg.field, function(val) { - var idx = xValues.indexOf(val); - return idx > -1 ? isBetween2(idx, startIdx, endIdx) : true; - }); - this.view.render(true); - }; - Scrollbar3.prototype.createScrollbar = function() { - var type2 = this.getValidScrollbarCfg().type; - var isHorizontal2 = type2 !== "vertical"; - var component2 = new Scrollbar(__assign(__assign({ container: this.container }, this.getScrollbarComponentCfg()), { x: 0, y: 0 })); - component2.init(); - return { - component: component2, - layer: LAYER.FORE, - direction: isHorizontal2 ? DIRECTION.BOTTOM : DIRECTION.RIGHT, - type: COMPONENT_TYPE.SCROLLBAR - }; - }; - Scrollbar3.prototype.updateScrollbar = function() { - var config = this.getScrollbarComponentCfg(); - var realConfig = this.trackLen ? __assign(__assign({}, config), { trackLen: this.trackLen, thumbLen: this.thumbLen, thumbOffset: (this.trackLen - this.thumbLen) * this.ratio }) : __assign({}, config); - this.scrollbar.component.update(realConfig); - return this.scrollbar; - }; - Scrollbar3.prototype.getStep = function() { - if (this.step) { - return this.step; - } - var coordinateBBox = this.view.coordinateBBox; - var _a6 = this.getValidScrollbarCfg(), type2 = _a6.type, categorySize = _a6.categorySize; - var isHorizontal2 = type2 !== "vertical"; - return Math.floor((isHorizontal2 ? coordinateBBox.width : coordinateBBox.height) / categorySize); - }; - Scrollbar3.prototype.getCnt = function() { - if (this.cnt) { - return this.cnt; - } - var xScale = this.view.getXScale(); - var data3 = this.getScrollbarData(); - var values2 = values_of_key_default(data3, xScale.field); - return size(values2); - }; - Scrollbar3.prototype.getScrollbarComponentCfg = function() { - var _a6 = this.view, coordinateBBox = _a6.coordinateBBox, viewBBox = _a6.viewBBox; - var _b = this.getValidScrollbarCfg(), type2 = _b.type, padding3 = _b.padding, width2 = _b.width, height = _b.height, style = _b.style; - var isHorizontal2 = type2 !== "vertical"; - var paddingTop = padding3[0], paddingRight = padding3[1], paddingBottom = padding3[2], paddingLeft = padding3[3]; - var position2 = isHorizontal2 ? { - x: coordinateBBox.minX + paddingLeft, - y: viewBBox.maxY - height - paddingBottom - } : { - x: viewBBox.maxX - width2 - paddingRight, - y: coordinateBBox.minY + paddingTop - }; - var step = this.getStep(); - var cnt = this.getCnt(); - var trackLen = isHorizontal2 ? coordinateBBox.width - paddingLeft - paddingRight : coordinateBBox.height - paddingTop - paddingBottom; - var thumbLen = Math.max(trackLen * clamp_default(step / cnt, 0, 1), MIN_THUMB_LENGTH); - return __assign(__assign({}, this.getThemeOptions()), { x: position2.x, y: position2.y, size: isHorizontal2 ? height : width2, isHorizontal: isHorizontal2, trackLen, thumbLen, thumbOffset: 0, theme: this.getScrollbarTheme(style) }); - }; - Scrollbar3.prototype.getValidScrollbarCfg = function() { - var cfg = { - type: "horizontal", - categorySize: DEFAULT_CATEGORY_SIZE, - width: DEFAULT_SIZE, - height: DEFAULT_SIZE, - padding: [0, 0, 0, 0], - animate: true, - style: {} - }; - if (is_object_default(this.option)) { - cfg = __assign(__assign({}, cfg), this.option); - } - if (!is_object_default(this.option) || !this.option.padding) { - cfg.padding = cfg.type === "horizontal" ? [DEFAULT_PADDING, 0, DEFAULT_PADDING, 0] : [0, DEFAULT_PADDING, 0, DEFAULT_PADDING]; - } - return cfg; - }; - Scrollbar3.prototype.getScrollbarData = function() { - var coordinate11 = this.view.getCoordinate(); - var cfg = this.getValidScrollbarCfg(); - var data3 = this.view.getOptions().data || []; - if (coordinate11.isReflect("y") && cfg.type === "vertical") { - data3 = __spreadArray([], data3, true).reverse(); - } - return data3; - }; - return Scrollbar3; -}(Controller); -var scrollbar_default = Scrollbar2; - -// node_modules/@antv/g2/esm/interaction/action/active-region.js -var DEFAULT_REGION_PATH_STYLE = { - fill: "#CCD6EC", - opacity: 0.3 -}; -function getItemsOfView(view, point2, tooltipCfg) { - var items = findItemsFromViewRecurisive(view, point2, tooltipCfg); - if (items.length) { - items = flatten_default(items); - for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { - var itemArr = items_1[_i]; - for (var _a6 = 0, itemArr_1 = itemArr; _a6 < itemArr_1.length; _a6++) { - var item = itemArr_1[_a6]; - var _b = item.mappingData, x6 = _b.x, y5 = _b.y; - item.x = is_array_default(x6) ? x6[x6.length - 1] : x6; - item.y = is_array_default(y5) ? y5[y5.length - 1] : y5; - } - } - var shared = tooltipCfg.shared; - if (shared === false && items.length > 1) { - var snapItem = items[0]; - var min7 = Math.abs(point2.y - snapItem[0].y); - for (var _c = 0, items_2 = items; _c < items_2.length; _c++) { - var aItem = items_2[_c]; - var yDistance = Math.abs(point2.y - aItem[0].y); - if (yDistance <= min7) { - snapItem = aItem; - min7 = yDistance; - } - } - items = [snapItem]; - } - return uniq(flatten_default(items)); - } - return []; -} -var ActiveRegion = function(_super) { - __extends(ActiveRegion2, _super); - function ActiveRegion2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ActiveRegion2.prototype.show = function(args) { - var view = this.context.view; - var ev = this.context.event; - var tooltipCfg = view.getController("tooltip").getTooltipCfg(); - var tooltipItems = getItemsOfView(view, { - x: ev.x, - y: ev.y - }, tooltipCfg); - if (is_equal_default(tooltipItems, this.items)) { - return; - } - this.items = tooltipItems; - if (tooltipItems.length) { - var xField_1 = view.getXScale().field; - var xValue_1 = tooltipItems[0].data[xField_1]; - var elements_1 = []; - var geometries = view.geometries; - each_default(geometries, function(geometry35) { - if (geometry35.type === "interval" || geometry35.type === "schema") { - var result = geometry35.getElementsBy(function(ele) { - var eleData = ele.getData(); - return eleData[xField_1] === xValue_1; - }); - elements_1 = elements_1.concat(result); - } - }); - if (elements_1.length) { - var coordinate_1 = view.getCoordinate(); - var firstBBox_1 = elements_1[0].shape.getCanvasBBox(); - var lastBBox_1 = elements_1[0].shape.getCanvasBBox(); - var groupBBox_1 = firstBBox_1; - each_default(elements_1, function(ele) { - var bbox = ele.shape.getCanvasBBox(); - if (coordinate_1.isTransposed) { - if (bbox.minY < firstBBox_1.minY) { - firstBBox_1 = bbox; - } - if (bbox.maxY > lastBBox_1.maxY) { - lastBBox_1 = bbox; - } - } else { - if (bbox.minX < firstBBox_1.minX) { - firstBBox_1 = bbox; - } - if (bbox.maxX > lastBBox_1.maxX) { - lastBBox_1 = bbox; - } - } - groupBBox_1.x = Math.min(bbox.minX, groupBBox_1.minX); - groupBBox_1.y = Math.min(bbox.minY, groupBBox_1.minY); - groupBBox_1.width = Math.max(bbox.maxX, groupBBox_1.maxX) - groupBBox_1.x; - groupBBox_1.height = Math.max(bbox.maxY, groupBBox_1.maxY) - groupBBox_1.y; - }); - var backgroundGroup = view.backgroundGroup, coordinateBBox = view.coordinateBBox; - var path = void 0; - if (coordinate_1.isRect) { - var xScale = view.getXScale(); - var _a6 = args || {}, appendRatio = _a6.appendRatio, appendWidth = _a6.appendWidth; - if (is_nil_default(appendWidth)) { - appendRatio = is_nil_default(appendRatio) ? xScale.isLinear ? 0 : 0.25 : appendRatio; - appendWidth = coordinate_1.isTransposed ? appendRatio * lastBBox_1.height : appendRatio * firstBBox_1.width; - } - var minX = void 0; - var minY = void 0; - var width2 = void 0; - var height = void 0; - if (coordinate_1.isTransposed) { - minX = coordinateBBox.minX; - minY = Math.min(lastBBox_1.minY, firstBBox_1.minY) - appendWidth; - width2 = coordinateBBox.width; - height = groupBBox_1.height + appendWidth * 2; - } else { - minX = Math.min(firstBBox_1.minX, lastBBox_1.minX) - appendWidth; - minY = coordinateBBox.minY; - width2 = groupBBox_1.width + appendWidth * 2; - height = coordinateBBox.height; - } - path = [ - ["M", minX, minY], - ["L", minX + width2, minY], - ["L", minX + width2, minY + height], - ["L", minX, minY + height], - ["Z"] - ]; - } else { - var firstElement = head(elements_1); - var lastElement = last(elements_1); - var startAngle = getAngle3(firstElement.getModel(), coordinate_1).startAngle; - var endAngle = getAngle3(lastElement.getModel(), coordinate_1).endAngle; - var center2 = coordinate_1.getCenter(); - var radius = coordinate_1.getRadius(); - var innterRadius = coordinate_1.innerRadius * radius; - path = getSectorPath(center2.x, center2.y, radius, startAngle, endAngle, innterRadius); - } - if (this.regionPath) { - this.regionPath.attr("path", path); - this.regionPath.show(); - } else { - var style = get_default(args, "style", DEFAULT_REGION_PATH_STYLE); - this.regionPath = backgroundGroup.addShape({ - type: "path", - name: "active-region", - capture: false, - attrs: __assign(__assign({}, style), { path }) - }); - } - } - } - }; - ActiveRegion2.prototype.hide = function() { - if (this.regionPath) { - this.regionPath.hide(); - } - this.items = null; - }; - ActiveRegion2.prototype.destroy = function() { - this.hide(); - if (this.regionPath) { - this.regionPath.remove(true); - } - _super.prototype.destroy.call(this); - }; - return ActiveRegion2; -}(base_default12); -var active_region_default = ActiveRegion; - -// node_modules/@antv/g2/esm/interaction/action/component/tooltip/geometry.js -var TooltipAction = function(_super) { - __extends(TooltipAction2, _super); - function TooltipAction2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.timeStamp = 0; - return _this; - } - TooltipAction2.prototype.show = function() { - var context = this.context; - var ev = context.event; - var view = context.view; - var isTooltipLocked = view.isTooltipLocked(); - if (isTooltipLocked) { - return; - } - var lastTimeStamp = this.timeStamp; - var timeStamp = +new Date(); - var showDelay = get_default(context.view.getOptions(), "tooltip.showDelay", 16); - if (timeStamp - lastTimeStamp > showDelay) { - var preLoc = this.location; - var curLoc = { x: ev.x, y: ev.y }; - if (!preLoc || !is_equal_default(preLoc, curLoc)) { - this.showTooltip(view, curLoc); - } - this.timeStamp = timeStamp; - this.location = curLoc; - } - }; - TooltipAction2.prototype.hide = function() { - var view = this.context.view; - var tooltip10 = view.getController("tooltip"); - var _a6 = this.context.event, clientX = _a6.clientX, clientY = _a6.clientY; - if (tooltip10.isCursorEntered({ x: clientX, y: clientY })) { - return; - } - if (view.isTooltipLocked()) { - return; - } - this.hideTooltip(view); - this.location = null; - }; - TooltipAction2.prototype.showTooltip = function(view, point2) { - view.showTooltip(point2); - }; - TooltipAction2.prototype.hideTooltip = function(view) { - view.hideTooltip(); - }; - return TooltipAction2; -}(base_default12); -var geometry_default = TooltipAction; - -// node_modules/@antv/g2/esm/interaction/action/component/tooltip/sibling.js -var SiblingTooltip = function(_super) { - __extends(SiblingTooltip2, _super); - function SiblingTooltip2() { - return _super !== null && _super.apply(this, arguments) || this; - } - SiblingTooltip2.prototype.showTooltip = function(view, point2) { - var siblings = getSilbings(view); - each_default(siblings, function(sibling) { - var siblingPoint = getSiblingPoint(view, sibling, point2); - sibling.showTooltip(siblingPoint); - }); - }; - SiblingTooltip2.prototype.hideTooltip = function(view) { - var siblings = getSilbings(view); - each_default(siblings, function(sibling) { - sibling.hideTooltip(); - }); - }; - return SiblingTooltip2; -}(geometry_default); -var sibling_default = SiblingTooltip; - -// node_modules/@antv/g2/esm/interaction/action/component/tooltip/ellipsis-text.js -var EllipsisText = function(_super) { - __extends(EllipsisText2, _super); - function EllipsisText2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.timeStamp = 0; - return _this; - } - EllipsisText2.prototype.destroy = function() { - _super.prototype.destroy.call(this); - this.tooltip && this.tooltip.destroy(); - }; - EllipsisText2.prototype.show = function() { - var context = this.context; - var ev = context.event; - var lastTimeStamp = this.timeStamp; - var timeStamp = +new Date(); - if (timeStamp - lastTimeStamp > 16) { - var preLoc = this.location; - var curLoc = { x: ev.x, y: ev.y }; - if (!preLoc || !is_equal_default(preLoc, curLoc)) { - this.showTooltip(curLoc); - } - this.timeStamp = timeStamp; - this.location = curLoc; - } - }; - EllipsisText2.prototype.hide = function() { - this.hideTooltip(); - this.location = null; - }; - EllipsisText2.prototype.showTooltip = function(curLoc) { - var context = this.context; - var ev = context.event; - var target = ev.target; - if (target && target.get("tip")) { - if (!this.tooltip) { - this.renderTooltip(); - } - var tipContent = target.get("tip"); - this.tooltip.update(__assign({ title: tipContent }, curLoc)); - this.tooltip.show(); - } - }; - EllipsisText2.prototype.hideTooltip = function() { - this.tooltip && this.tooltip.hide(); - }; - EllipsisText2.prototype.renderTooltip = function() { - var _a6; - var view = this.context.view; - var canvas = view.canvas; - var region = { - start: { x: 0, y: 0 }, - end: { x: canvas.get("width"), y: canvas.get("height") } - }; - var theme4 = view.getTheme(); - var tooltipStyles = get_default(theme4, ["components", "tooltip", "domStyles"], {}); - var tooltip10 = new HtmlTooltip({ - parent: canvas.get("el").parentNode, - region, - visible: false, - crosshairs: null, - domStyles: __assign({}, deep_mix_default({}, tooltipStyles, (_a6 = {}, _a6[css_const_exports.CONTAINER_CLASS] = { "max-width": "50%" }, _a6[css_const_exports.TITLE_CLASS] = { "word-break": "break-all" }, _a6))) - }); - tooltip10.init(); - tooltip10.setCapture(false); - this.tooltip = tooltip10; - }; - return EllipsisText2; -}(base_default12); -var ellipsis_text_default = EllipsisText; - -// node_modules/@antv/g2/esm/interaction/action/element/state-base.js -var StateBase = function(_super) { - __extends(StateBase2, _super); - function StateBase2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = ""; - return _this; - } - StateBase2.prototype.hasState = function(element) { - return element.hasState(this.stateName); - }; - StateBase2.prototype.setElementState = function(element, enable) { - element.setState(this.stateName, enable); - }; - StateBase2.prototype.setState = function() { - this.setStateEnable(true); - }; - StateBase2.prototype.clear = function() { - var view = this.context.view; - this.clearViewState(view); - }; - StateBase2.prototype.clearViewState = function(view) { - var _this = this; - var elements = getElementsByState(view, this.stateName); - each_default(elements, function(el) { - _this.setElementState(el, false); - }); - }; - return StateBase2; -}(base_default12); -var state_base_default = StateBase; - -// node_modules/@antv/g2/esm/interaction/action/element/state.js -function getItem(shape) { - return get_default(shape.get("delegateObject"), "item"); -} -var ElementState = function(_super) { - __extends(ElementState2, _super); - function ElementState2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.ignoreListItemStates = ["unchecked"]; - return _this; - } - ElementState2.prototype.isItemIgnore = function(item, list) { - var states = this.ignoreListItemStates; - var filtered = states.filter(function(state2) { - return list.hasState(item, state2); - }); - return !!filtered.length; - }; - ElementState2.prototype.setStateByComponent = function(component2, item, enable) { - var view = this.context.view; - var field6 = component2.get("field"); - var elements = getElements(view); - this.setElementsStateByItem(elements, field6, item, enable); - }; - ElementState2.prototype.setStateByElement = function(element, enable) { - this.setElementState(element, enable); - }; - ElementState2.prototype.isMathItem = function(element, field6, item) { - var view = this.context.view; - var scale12 = getScaleByField(view, field6); - var value2 = getElementValue(element, field6); - return !is_nil_default(value2) && item.name === scale12.getText(value2); - }; - ElementState2.prototype.setElementsStateByItem = function(elements, field6, item, enable) { - var _this = this; - each_default(elements, function(el) { - if (_this.isMathItem(el, field6, item)) { - el.setState(_this.stateName, enable); - } - }); - }; - ElementState2.prototype.setStateEnable = function(enable) { - var element = getCurrentElement(this.context); - if (element) { - if (isElementChange(this.context)) { - this.setStateByElement(element, enable); - } - } else { - var delegateObject = getDelegationObject(this.context); - if (isList(delegateObject)) { - var item = delegateObject.item, component2 = delegateObject.component; - if (item && component2 && !this.isItemIgnore(item, component2)) { - var event_1 = this.context.event.gEvent; - if (event_1 && event_1.fromShape && event_1.toShape && getItem(event_1.fromShape) === getItem(event_1.toShape)) { - return; - } - this.setStateByComponent(component2, item, enable); - } - } - } - }; - ElementState2.prototype.toggle = function() { - var element = getCurrentElement(this.context); - if (element) { - var hasState = element.hasState(this.stateName); - this.setElementState(element, !hasState); - } - }; - ElementState2.prototype.reset = function() { - this.setStateEnable(false); - }; - return ElementState2; -}(state_base_default); -var state_default = ElementState; - -// node_modules/@antv/g2/esm/interaction/action/element/active.js -var ElementActive = function(_super) { - __extends(ElementActive2, _super); - function ElementActive2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "active"; - return _this; - } - ElementActive2.prototype.active = function() { - this.setState(); - }; - return ElementActive2; -}(state_default); -var active_default = ElementActive; - -// node_modules/@antv/g2/esm/interaction/action/element/link-by-color.js -var LinkByColor = function(_super) { - __extends(LinkByColor2, _super); - function LinkByColor2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.cache = {}; - return _this; - } - LinkByColor2.prototype.getColorScale = function(view, element) { - var colorAttr = element.geometry.getAttribute("color"); - if (!colorAttr) { - return null; - } - var scale12 = view.getScaleByField(colorAttr.getFields()[0]); - return scale12; - }; - LinkByColor2.prototype.getLinkPath = function(element, nextElement) { - var view = this.context.view; - var isTransposed = view.getCoordinate().isTransposed; - var bbox = element.shape.getCanvasBBox(); - var nextBBox = nextElement.shape.getCanvasBBox(); - var path = isTransposed ? [ - ["M", bbox.minX, bbox.minY], - ["L", nextBBox.minX, nextBBox.maxY], - ["L", nextBBox.maxX, nextBBox.maxY], - ["L", bbox.maxX, bbox.minY], - ["Z"] - ] : [ - ["M", bbox.maxX, bbox.minY], - ["L", nextBBox.minX, nextBBox.minY], - ["L", nextBBox.minX, nextBBox.maxY], - ["L", bbox.maxX, bbox.maxY], - ["Z"] - ]; - return path; - }; - LinkByColor2.prototype.addLinkShape = function(group2, element, nextElement, activeStyle) { - var style = { - opacity: 0.4, - fill: element.shape.attr("fill") - }; - group2.addShape({ - type: "path", - attrs: __assign(__assign({}, deep_mix_default({}, style, is_function_default(activeStyle) ? activeStyle(style, element) : activeStyle)), { path: this.getLinkPath(element, nextElement) }) - }); - }; - LinkByColor2.prototype.linkByElement = function(element, activeStyle) { - var _this = this; - var view = this.context.view; - var scale12 = this.getColorScale(view, element); - if (!scale12) { - return; - } - var value2 = getElementValue(element, scale12.field); - if (!this.cache[value2]) { - var elements_1 = getElementsByField(view, scale12.field, value2); - var linkGroup = this.linkGroup; - var group_1 = linkGroup.addGroup(); - this.cache[value2] = group_1; - var count_1 = elements_1.length; - each_default(elements_1, function(el, index2) { - if (index2 < count_1 - 1) { - var nextEl = elements_1[index2 + 1]; - _this.addLinkShape(group_1, el, nextEl, activeStyle); - } - }); - } - }; - LinkByColor2.prototype.removeLink = function(element) { - var scale12 = this.getColorScale(this.context.view, element); - if (!scale12) { - return; - } - var value2 = getElementValue(element, scale12.field); - if (this.cache[value2]) { - this.cache[value2].remove(); - this.cache[value2] = null; - } - }; - LinkByColor2.prototype.link = function(args) { - var context = this.context; - if (!this.linkGroup) { - this.linkGroup = context.view.foregroundGroup.addGroup({ - id: "link-by-color-group", - capture: false - }); - } - var element = getCurrentElement(context); - if (element) { - this.linkByElement(element, args === null || args === void 0 ? void 0 : args.style); - } - }; - LinkByColor2.prototype.unlink = function() { - var element = getCurrentElement(this.context); - if (element) { - this.removeLink(element); - } - }; - LinkByColor2.prototype.clear = function() { - if (this.linkGroup) { - this.linkGroup.clear(); - } - this.cache = {}; - }; - LinkByColor2.prototype.destroy = function() { - _super.prototype.destroy.call(this); - if (this.linkGroup) { - this.linkGroup.remove(); - } - }; - return LinkByColor2; -}(base_default12); -var link_by_color_default = LinkByColor; - -// node_modules/@antv/g2/esm/interaction/action/element/range-state.js -var ElementRangeState = function(_super) { - __extends(ElementRangeState2, _super); - function ElementRangeState2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.startPoint = null; - _this.endPoint = null; - _this.isStarted = false; - _this.effectSiblings = false; - _this.effectByRecord = false; - return _this; - } - ElementRangeState2.prototype.getCurrentPoint = function() { - var event = this.context.event; - return { - x: event.x, - y: event.y - }; - }; - ElementRangeState2.prototype.start = function() { - this.clear(); - this.startPoint = this.getCurrentPoint(); - this.isStarted = true; - }; - ElementRangeState2.prototype.getIntersectElements = function() { - var elements = null; - if (isMask(this.context)) { - elements = getMaskedElements(this.context, 10); - } else { - var startPoint = this.startPoint; - var endPoint = this.isStarted ? this.getCurrentPoint() : this.endPoint; - if (!startPoint || !endPoint) { - return; - } - var box2 = { - minX: Math.min(startPoint.x, endPoint.x), - minY: Math.min(startPoint.y, endPoint.y), - maxX: Math.max(startPoint.x, endPoint.x), - maxY: Math.max(startPoint.y, endPoint.y) - }; - var view = this.context.view; - elements = getIntersectElements(view, box2); - } - return elements; - }; - ElementRangeState2.prototype.setStateEnable = function(enable) { - if (this.effectSiblings && !this.effectByRecord) { - this.setSiblingsState(enable); - } else { - var allElements = getElements(this.context.view); - var elements = this.getIntersectElements(); - if (elements && elements.length) { - if (this.effectByRecord) { - this.setSiblingsStateByRecord(elements, enable); - } else { - this.setElementsState(elements, enable, allElements); - } - } else { - this.clear(); - } - } - }; - ElementRangeState2.prototype.setSiblingsStateByRecord = function(elements, enable) { - var _this = this; - var view = this.context.view; - var siblings = getSilbings(view); - var records = elements.map(function(el) { - return el.getModel().data; - }); - var xFiled = view.getXScale().field; - var yField = view.getYScales()[0].field; - each_default(siblings, function(sibling) { - var allElements = getElements(sibling); - var effectElements = allElements.filter(function(el) { - var record = el.getModel().data; - return isInRecords(records, record, xFiled, yField); - }); - _this.setElementsState(effectElements, enable, allElements); - }); - }; - ElementRangeState2.prototype.setSiblingsState = function(enable) { - var _this = this; - var view = this.context.view; - var siblings = getSilbings(view); - if (isMask(this.context)) { - each_default(siblings, function(sibling) { - var allElements = getElements(sibling); - var effectElements = getSiblingMaskElements(_this.context, sibling, 10); - if (effectElements && effectElements.length) { - _this.setElementsState(effectElements, enable, allElements); - } else { - _this.clearViewState(sibling); - } - }); - } - }; - ElementRangeState2.prototype.setElementsState = function(elements, enable, allElements) { - var _this = this; - each_default(allElements, function(el) { - if (!elements.includes(el)) { - _this.setElementState(el, false); - } else { - _this.setElementState(el, enable); - } - }); - }; - ElementRangeState2.prototype.end = function() { - this.isStarted = false; - this.endPoint = this.getCurrentPoint(); - }; - ElementRangeState2.prototype.clear = function() { - var _this = this; - var view = this.context.view; - if (this.effectSiblings) { - var siblings = getSilbings(view); - each_default(siblings, function(sibling) { - _this.clearViewState(sibling); - }); - } else { - this.clearViewState(view); - } - }; - return ElementRangeState2; -}(state_base_default); -var range_state_default = ElementRangeState; - -// node_modules/@antv/g2/esm/interaction/action/element/range-active.js -var ElementRangeActive = function(_super) { - __extends(ElementRangeActive2, _super); - function ElementRangeActive2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "active"; - return _this; - } - ElementRangeActive2.prototype.active = function() { - this.setState(); - }; - return ElementRangeActive2; -}(range_state_default); -var range_active_default = ElementRangeActive; - -// node_modules/@antv/g2/esm/interaction/action/element/single-state.js -var ElementSingleState = function(_super) { - __extends(ElementSingleState2, _super); - function ElementSingleState2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ElementSingleState2.prototype.setStateEnable = function(enable) { - var element = getCurrentElement(this.context); - if (element) { - if (!isElementChange(this.context)) { - return; - } - if (enable) { - this.clear(); - this.setElementState(element, true); - } else if (this.hasState(element)) { - this.setElementState(element, false); - } - } - }; - ElementSingleState2.prototype.toggle = function() { - var element = getCurrentElement(this.context); - if (element) { - var hasState = this.hasState(element); - if (!hasState) { - this.clear(); - } - this.setElementState(element, !hasState); - } - }; - ElementSingleState2.prototype.reset = function() { - this.setStateEnable(false); - }; - return ElementSingleState2; -}(state_base_default); -var single_state_default = ElementSingleState; - -// node_modules/@antv/g2/esm/interaction/action/element/single-active.js -var ElementSingleActive = function(_super) { - __extends(ElementSingleActive2, _super); - function ElementSingleActive2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "active"; - return _this; - } - ElementSingleActive2.prototype.active = function() { - this.setState(); - }; - return ElementSingleActive2; -}(single_state_default); -var single_active_default = ElementSingleActive; - -// node_modules/@antv/g2/esm/interaction/action/element/highlight-util.js -var STATUS_UNACTIVE = "inactive"; -var STATUS_ACTIVE = "active"; -function clearHighlight(view) { - var elements = getElements(view); - each_default(elements, function(el) { - if (el.hasState(STATUS_ACTIVE)) { - el.setState(STATUS_ACTIVE, false); - } - if (el.hasState(STATUS_UNACTIVE)) { - el.setState(STATUS_UNACTIVE, false); - } - }); -} -function setHighlightBy(elements, callback, enable) { - each_default(elements, function(el) { - if (callback(el)) { - if (el.hasState(STATUS_UNACTIVE)) { - el.setState(STATUS_UNACTIVE, false); - } - el.setState(STATUS_ACTIVE, enable); - } else { - if (el.hasState(STATUS_ACTIVE)) { - el.setState(STATUS_ACTIVE, false); - } - el.setState(STATUS_UNACTIVE, enable); - } - }); -} - -// node_modules/@antv/g2/esm/interaction/action/element/highlight.js -var STATUS_UNACTIVE2 = ELEMENT_STATE.INACTIVE; -var STATUS_ACTIVE2 = ELEMENT_STATE.ACTIVE; -var ElementHighlight = function(_super) { - __extends(ElementHighlight2, _super); - function ElementHighlight2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = STATUS_ACTIVE2; - return _this; - } - ElementHighlight2.prototype.setElementsStateByItem = function(elements, field6, item, enable) { - var _this = this; - var callback = function(el) { - return _this.isMathItem(el, field6, item); - }; - this.setHighlightBy(elements, callback, enable); - }; - ElementHighlight2.prototype.setElementHighlight = function(el, callback) { - if (callback(el)) { - if (el.hasState(STATUS_UNACTIVE2)) { - el.setState(STATUS_UNACTIVE2, false); - } - el.setState(STATUS_ACTIVE2, true); - } else if (!el.hasState(STATUS_ACTIVE2)) { - el.setState(STATUS_UNACTIVE2, true); - } - }; - ElementHighlight2.prototype.setHighlightBy = function(elements, callback, enable) { - var _this = this; - if (enable) { - each_default(elements, function(el) { - _this.setElementHighlight(el, callback); - }); - } else { - var activeElements = getElementsByState(this.context.view, STATUS_ACTIVE2); - var allCancel_1 = true; - each_default(activeElements, function(el) { - if (!callback(el)) { - allCancel_1 = false; - return false; - } - }); - if (allCancel_1) { - this.clear(); - } else { - each_default(elements, function(el) { - if (callback(el)) { - if (el.hasState(STATUS_ACTIVE2)) { - el.setState(STATUS_ACTIVE2, false); - } - el.setState(STATUS_UNACTIVE2, true); - } - }); - } - } - }; - ElementHighlight2.prototype.setElementState = function(element, enable) { - var view = this.context.view; - var elements = getElements(view); - this.setHighlightBy(elements, function(el) { - return element === el; - }, enable); - }; - ElementHighlight2.prototype.highlight = function() { - this.setState(); - }; - ElementHighlight2.prototype.clear = function() { - var view = this.context.view; - clearHighlight(view); - }; - return ElementHighlight2; -}(state_default); -var highlight_default = ElementHighlight; - -// node_modules/@antv/g2/esm/interaction/action/element/highlight-by-color.js -var HighlightColor = function(_super) { - __extends(HighlightColor2, _super); - function HighlightColor2() { - return _super !== null && _super.apply(this, arguments) || this; - } - HighlightColor2.prototype.setStateByElement = function(element, enable) { - var view = this.context.view; - var colorAttr = element.geometry.getAttribute("color"); - if (!colorAttr) { - return; - } - var scale12 = view.getScaleByField(colorAttr.getFields()[0]); - var value2 = getElementValue(element, scale12.field); - var elements = getElements(view); - var highlightElements = elements.filter(function(el) { - return getElementValue(el, scale12.field) === value2; - }); - this.setHighlightBy(elements, function(el) { - return highlightElements.includes(el); - }, enable); - }; - return HighlightColor2; -}(highlight_default); -var highlight_by_color_default = HighlightColor; - -// node_modules/@antv/g2/esm/interaction/action/element/highlight-by-x.js -var HighlightX = function(_super) { - __extends(HighlightX2, _super); - function HighlightX2() { - return _super !== null && _super.apply(this, arguments) || this; - } - HighlightX2.prototype.setElementHighlight = function(el, callback) { - if (callback(el)) { - if (el.hasState(STATUS_UNACTIVE2)) { - el.setState(STATUS_UNACTIVE2, false); - } - el.setState(STATUS_ACTIVE2, true); - } else { - el.setState(STATUS_UNACTIVE2, true); - if (el.hasState(STATUS_ACTIVE2)) { - el.setState(STATUS_ACTIVE2, false); - } - } - }; - HighlightX2.prototype.setStateByElement = function(element, enable) { - var view = this.context.view; - var scale12 = view.getXScale(); - var value2 = getElementValue(element, scale12.field); - var elements = getElements(view); - var highlightElements = elements.filter(function(el) { - return getElementValue(el, scale12.field) === value2; - }); - this.setHighlightBy(elements, function(el) { - return highlightElements.includes(el); - }, enable); - }; - HighlightX2.prototype.toggle = function() { - var element = getCurrentElement(this.context); - if (element) { - var hasState = element.hasState(this.stateName); - this.setStateByElement(element, !hasState); - } - }; - return HighlightX2; -}(highlight_default); -var highlight_by_x_default = HighlightX; - -// node_modules/@antv/g2/esm/interaction/action/element/range-highlight.js -var EVENTS2; -(function(EVENTS4) { - EVENTS4["BEFORE_HIGHLIGHT"] = "element-range-highlight:beforehighlight"; - EVENTS4["AFTER_HIGHLIGHT"] = "element-range-highlight:afterhighlight"; - EVENTS4["BEFORE_CLEAR"] = "element-range-highlight:beforeclear"; - EVENTS4["AFTER_CLEAR"] = "element-range-highlight:afterclear"; -})(EVENTS2 || (EVENTS2 = {})); -var ElementRangeHighlight = function(_super) { - __extends(ElementRangeHighlight2, _super); - function ElementRangeHighlight2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "active"; - return _this; - } - ElementRangeHighlight2.prototype.clearViewState = function(view) { - clearHighlight(view); - }; - ElementRangeHighlight2.prototype.highlight = function() { - var _a6 = this.context, view = _a6.view, event = _a6.event; - var elements = this.getIntersectElements(); - var payload = { view, event, highlightElements: elements }; - view.emit(EVENTS2.BEFORE_HIGHLIGHT, event_default.fromData(view, EVENTS2.BEFORE_HIGHLIGHT, payload)); - this.setState(); - view.emit(EVENTS2.AFTER_HIGHLIGHT, event_default.fromData(view, EVENTS2.AFTER_HIGHLIGHT, payload)); - }; - ElementRangeHighlight2.prototype.clear = function() { - var view = this.context.view; - view.emit(EVENTS2.BEFORE_CLEAR, event_default.fromData(view, EVENTS2.BEFORE_CLEAR, {})); - _super.prototype.clear.call(this); - view.emit(EVENTS2.AFTER_CLEAR, event_default.fromData(view, EVENTS2.AFTER_CLEAR, {})); - }; - ElementRangeHighlight2.prototype.setElementsState = function(elements, enable, allElements) { - setHighlightBy(allElements, function(el) { - return elements.indexOf(el) >= 0; - }, enable); - }; - return ElementRangeHighlight2; -}(range_state_default); -var range_highlight_default = ElementRangeHighlight; - -// node_modules/@antv/g2/esm/interaction/action/element/single-highlight.js -var ElementSingleHighlight = function(_super) { - __extends(ElementSingleHighlight2, _super); - function ElementSingleHighlight2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "active"; - return _this; - } - ElementSingleHighlight2.prototype.highlight = function() { - this.setState(); - }; - ElementSingleHighlight2.prototype.setElementState = function(element, enable) { - var view = this.context.view; - var elements = getElements(view); - setHighlightBy(elements, function(el) { - return element === el; - }, enable); - }; - ElementSingleHighlight2.prototype.clear = function() { - var view = this.context.view; - clearHighlight(view); - }; - return ElementSingleHighlight2; -}(single_state_default); -var single_highlight_default = ElementSingleHighlight; - -// node_modules/@antv/g2/esm/interaction/action/element/range-selected.js -var ElementRangeSelected = function(_super) { - __extends(ElementRangeSelected2, _super); - function ElementRangeSelected2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "selected"; - return _this; - } - ElementRangeSelected2.prototype.selected = function() { - this.setState(); - }; - return ElementRangeSelected2; -}(range_state_default); -var range_selected_default = ElementRangeSelected; - -// node_modules/@antv/g2/esm/interaction/action/element/selected.js -var ElementMultipleSelected = function(_super) { - __extends(ElementMultipleSelected2, _super); - function ElementMultipleSelected2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "selected"; - return _this; - } - ElementMultipleSelected2.prototype.selected = function() { - this.setState(); - }; - return ElementMultipleSelected2; -}(state_default); -var selected_default = ElementMultipleSelected; - -// node_modules/@antv/g2/esm/interaction/action/element/single-selected.js -var ElementSingleSelected = function(_super) { - __extends(ElementSingleSelected2, _super); - function ElementSingleSelected2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "selected"; - return _this; - } - ElementSingleSelected2.prototype.selected = function() { - this.setState(); - }; - return ElementSingleSelected2; -}(single_state_default); -var single_selected_default = ElementSingleSelected; - -// node_modules/@antv/g2/esm/interaction/action/component/list-state.js -var ListState = function(_super) { - __extends(ListState2, _super); - function ListState2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = ""; - _this.ignoreItemStates = []; - return _this; - } - ListState2.prototype.getTriggerListInfo = function() { - var delegateObject = getDelegationObject(this.context); - var info = null; - if (isList(delegateObject)) { - info = { - item: delegateObject.item, - list: delegateObject.component - }; - } - return info; - }; - ListState2.prototype.getAllowComponents = function() { - var _this = this; - var view = this.context.view; - var components = getComponents(view); - var rst = []; - each_default(components, function(component2) { - if (component2.isList() && _this.allowSetStateByElement(component2)) { - rst.push(component2); - } - }); - return rst; - }; - ListState2.prototype.hasState = function(list, item) { - return list.hasState(item, this.stateName); - }; - ListState2.prototype.clearAllComponentsState = function() { - var _this = this; - var components = this.getAllowComponents(); - each_default(components, function(component2) { - component2.clearItemsState(_this.stateName); - }); - }; - ListState2.prototype.allowSetStateByElement = function(component2) { - var field6 = component2.get("field"); - if (!field6) { - return false; - } - if (this.cfg && this.cfg.componentNames) { - var name_1 = component2.get("name"); - if (this.cfg.componentNames.indexOf(name_1) === -1) { - return false; - } - } - var view = this.context.view; - var scale12 = getScaleByField(view, field6); - return scale12 && scale12.isCategory; - }; - ListState2.prototype.allowSetStateByItem = function(item, list) { - var ignoreStates = this.ignoreItemStates; - if (ignoreStates.length) { - var filterStates = ignoreStates.filter(function(state2) { - return list.hasState(item, state2); - }); - return filterStates.length === 0; - } - return true; - }; - ListState2.prototype.setStateByElement = function(component2, element, enable) { - var field6 = component2.get("field"); - var view = this.context.view; - var scale12 = getScaleByField(view, field6); - var value2 = getElementValue(element, field6); - var text = scale12.getText(value2); - this.setItemsState(component2, text, enable); - }; - ListState2.prototype.setStateEnable = function(enable) { - var _this = this; - var element = getCurrentElement(this.context); - if (element) { - var components = this.getAllowComponents(); - each_default(components, function(component3) { - _this.setStateByElement(component3, element, enable); - }); - } else { - var delegateObject = getDelegationObject(this.context); - if (isList(delegateObject)) { - var item = delegateObject.item, component2 = delegateObject.component; - if (this.allowSetStateByElement(component2) && this.allowSetStateByItem(item, component2)) { - this.setItemState(component2, item, enable); - } - } - } - }; - ListState2.prototype.setItemsState = function(list, name, enable) { - var _this = this; - var items = list.getItems(); - each_default(items, function(item) { - if (item.name === name) { - _this.setItemState(list, item, enable); - } - }); - }; - ListState2.prototype.setItemState = function(list, item, enable) { - list.setItemState(item, this.stateName, enable); - }; - ListState2.prototype.setState = function() { - this.setStateEnable(true); - }; - ListState2.prototype.reset = function() { - this.setStateEnable(false); - }; - ListState2.prototype.toggle = function() { - var triggerInfo = this.getTriggerListInfo(); - if (triggerInfo && triggerInfo.item) { - var list = triggerInfo.list, item = triggerInfo.item; - var enable = this.hasState(list, item); - this.setItemState(list, item, !enable); - } - }; - ListState2.prototype.clear = function() { - var triggerInfo = this.getTriggerListInfo(); - if (triggerInfo) { - triggerInfo.list.clearItemsState(this.stateName); - } else { - this.clearAllComponentsState(); - } - }; - return ListState2; -}(base_default12); -var list_state_default = ListState; - -// node_modules/@antv/g2/esm/interaction/action/component/list-active.js -var ListActive = function(_super) { - __extends(ListActive2, _super); - function ListActive2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "active"; - return _this; - } - ListActive2.prototype.active = function() { - this.setState(); - }; - return ListActive2; -}(list_state_default); -var list_active_default = ListActive; - -// node_modules/@antv/g2/esm/interaction/action/component/list-highlight-util.js -var STATUS_UNACTIVE3 = "inactive"; -var STATUS_ACTIVE3 = "active"; -function clearList(list) { - var items = list.getItems(); - each_default(items, function(item) { - if (list.hasState(item, STATUS_ACTIVE3)) { - list.setItemState(item, STATUS_ACTIVE3, false); - } - if (list.hasState(item, STATUS_UNACTIVE3)) { - list.setItemState(item, STATUS_UNACTIVE3, false); - } - }); -} - -// node_modules/@antv/g2/esm/interaction/action/component/list-highlight.js -var STATUS_UNACTIVE4 = "inactive"; -var STATUS_ACTIVE4 = "active"; -var ListHighlight = function(_super) { - __extends(ListHighlight2, _super); - function ListHighlight2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = STATUS_ACTIVE4; - _this.ignoreItemStates = ["unchecked"]; - return _this; - } - ListHighlight2.prototype.setItemsState = function(list, name, enable) { - this.setHighlightBy(list, function(item) { - return item.name === name; - }, enable); - }; - ListHighlight2.prototype.setItemState = function(list, item, enable) { - var items = list.getItems(); - this.setHighlightBy(list, function(el) { - return el === item; - }, enable); - }; - ListHighlight2.prototype.setHighlightBy = function(list, callback, enable) { - var items = list.getItems(); - if (enable) { - each_default(items, function(item) { - if (callback(item)) { - if (list.hasState(item, STATUS_UNACTIVE4)) { - list.setItemState(item, STATUS_UNACTIVE4, false); - } - list.setItemState(item, STATUS_ACTIVE4, true); - } else if (!list.hasState(item, STATUS_ACTIVE4)) { - list.setItemState(item, STATUS_UNACTIVE4, true); - } - }); - } else { - var activeItems = list.getItemsByState(STATUS_ACTIVE4); - var allCancel_1 = true; - each_default(activeItems, function(item) { - if (!callback(item)) { - allCancel_1 = false; - return false; - } - }); - if (allCancel_1) { - this.clear(); - } else { - each_default(items, function(item) { - if (callback(item)) { - if (list.hasState(item, STATUS_ACTIVE4)) { - list.setItemState(item, STATUS_ACTIVE4, false); - } - list.setItemState(item, STATUS_UNACTIVE4, true); - } - }); - } - } - }; - ListHighlight2.prototype.highlight = function() { - this.setState(); - }; - ListHighlight2.prototype.clear = function() { - var triggerInfo = this.getTriggerListInfo(); - if (triggerInfo) { - clearList(triggerInfo.list); - } else { - var components = this.getAllowComponents(); - each_default(components, function(component2) { - component2.clearItemsState(STATUS_ACTIVE4); - component2.clearItemsState(STATUS_UNACTIVE4); - }); - } - }; - return ListHighlight2; -}(list_state_default); -var list_highlight_default = ListHighlight; - -// node_modules/@antv/g2/esm/interaction/action/component/list-selected.js -var ListSelected = function(_super) { - __extends(ListSelected2, _super); - function ListSelected2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "selected"; - return _this; - } - ListSelected2.prototype.selected = function() { - this.setState(); - }; - return ListSelected2; -}(list_state_default); -var list_selected_default = ListSelected; - -// node_modules/@antv/g2/esm/interaction/action/component/list-unchecked.js -var ListUnchecked = function(_super) { - __extends(ListUnchecked2, _super); - function ListUnchecked2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = "unchecked"; - return _this; - } - ListUnchecked2.prototype.unchecked = function() { - this.setState(); - }; - return ListUnchecked2; -}(list_state_default); -var list_unchecked_default = ListUnchecked; - -// node_modules/@antv/g2/esm/interaction/action/component/list-checked.js -var STATUS_UNCHECKED = "unchecked"; -var STATUS_CHECKED = "checked"; -var ListChecked = function(_super) { - __extends(ListChecked2, _super); - function ListChecked2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.stateName = STATUS_CHECKED; - return _this; - } - ListChecked2.prototype.setItemState = function(list, item, enable) { - this.setCheckedBy(list, function(el) { - return el === item; - }, enable); - }; - ListChecked2.prototype.setCheckedBy = function(list, callback, enable) { - var items = list.getItems(); - if (enable) { - each_default(items, function(item) { - if (callback(item)) { - if (list.hasState(item, STATUS_UNCHECKED)) { - list.setItemState(item, STATUS_UNCHECKED, false); - } - list.setItemState(item, STATUS_CHECKED, true); - } else if (!list.hasState(item, STATUS_CHECKED)) { - list.setItemState(item, STATUS_UNCHECKED, true); - } - }); - } - }; - ListChecked2.prototype.toggle = function() { - var triggerInfo = this.getTriggerListInfo(); - if (triggerInfo && triggerInfo.item) { - var list_1 = triggerInfo.list, item = triggerInfo.item; - var allChecked = !some_default(list_1.getItems(), function(t4) { - return list_1.hasState(t4, STATUS_UNCHECKED); - }); - if (allChecked || list_1.hasState(item, STATUS_UNCHECKED)) { - this.setItemState(list_1, item, true); - } else { - this.reset(); - } - } - }; - ListChecked2.prototype.checked = function() { - this.setState(); - }; - ListChecked2.prototype.reset = function() { - var components = this.getAllowComponents(); - each_default(components, function(component2) { - component2.clearItemsState(STATUS_CHECKED); - component2.clearItemsState(STATUS_UNCHECKED); - }); - }; - return ListChecked2; -}(list_state_default); -var list_checked_default = ListChecked; - -// node_modules/@antv/g2/esm/interaction/action/component/list-focus.js -var STATUS_UNCHECKED2 = "unchecked"; -var ListFocus = function(_super) { - __extends(ListFocus2, _super); - function ListFocus2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ListFocus2.prototype.toggle = function() { - var triggerInfo = this.getTriggerListInfo(); - if (triggerInfo === null || triggerInfo === void 0 ? void 0 : triggerInfo.item) { - var list_1 = triggerInfo.list, clickedItem = triggerInfo.item; - var items = list_1.getItems(); - var checkedItems = items.filter(function(t4) { - return !list_1.hasState(t4, STATUS_UNCHECKED2); - }); - var uncheckedItems = items.filter(function(t4) { - return list_1.hasState(t4, STATUS_UNCHECKED2); - }); - var checkedItem = checkedItems[0]; - if (items.length === checkedItems.length) { - for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { - var item = items_1[_i]; - list_1.setItemState(item, STATUS_UNCHECKED2, item.id !== clickedItem.id); - } - } else if (items.length - uncheckedItems.length === 1) { - if (checkedItem.id === clickedItem.id) { - for (var _a6 = 0, items_2 = items; _a6 < items_2.length; _a6++) { - var item = items_2[_a6]; - list_1.setItemState(item, STATUS_UNCHECKED2, false); - } - } else { - for (var _b = 0, items_3 = items; _b < items_3.length; _b++) { - var item = items_3[_b]; - list_1.setItemState(item, STATUS_UNCHECKED2, item.id !== clickedItem.id); - } - } - } else { - for (var _c = 0, items_4 = items; _c < items_4.length; _c++) { - var item = items_4[_c]; - list_1.setItemState(item, STATUS_UNCHECKED2, item.id !== clickedItem.id); - } - } - } - }; - return ListFocus2; -}(list_state_default); -var list_focus_default = ListFocus; - -// node_modules/@antv/g2/esm/interaction/action/component/list-radio.js -var STATUS_SHOW = "showRadio"; -var ListRadio = function(_super) { - __extends(ListRadio2, _super); - function ListRadio2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ListRadio2.prototype.show = function() { - var triggerInfo = this.getTriggerListInfo(); - if (triggerInfo === null || triggerInfo === void 0 ? void 0 : triggerInfo.item) { - var list = triggerInfo.list, item = triggerInfo.item; - list.setItemState(item, STATUS_SHOW, true); - } - }; - ListRadio2.prototype.hide = function() { - var triggerInfo = this.getTriggerListInfo(); - if (triggerInfo === null || triggerInfo === void 0 ? void 0 : triggerInfo.item) { - var list = triggerInfo.list, item = triggerInfo.item; - list.setItemState(item, STATUS_SHOW, false); - } - }; - return ListRadio2; -}(list_state_default); -var list_radio_default = ListRadio; - -// node_modules/@antv/g2/esm/interaction/action/mask/base.js -var MaskBase = function(_super) { - __extends(MaskBase2, _super); - function MaskBase2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.maskShape = null; - _this.points = []; - _this.starting = false; - _this.moving = false; - _this.preMovePoint = null; - _this.shapeType = "path"; - return _this; - } - MaskBase2.prototype.getCurrentPoint = function() { - var event = this.context.event; - return { - x: event.x, - y: event.y - }; - }; - MaskBase2.prototype.emitEvent = function(type2) { - var eventName = "mask:".concat(type2); - var view = this.context.view; - var event = this.context.event; - view.emit(eventName, { - target: this.maskShape, - shape: this.maskShape, - points: this.points, - x: event.x, - y: event.y - }); - }; - MaskBase2.prototype.createMask = function() { - var view = this.context.view; - var maskAttrs = this.getMaskAttrs(); - var maskShape = view.foregroundGroup.addShape({ - type: this.shapeType, - name: "mask", - draggable: true, - attrs: __assign({ fill: "#C5D4EB", opacity: 0.3 }, maskAttrs) - }); - return maskShape; - }; - MaskBase2.prototype.getMaskPath = function() { - return []; - }; - MaskBase2.prototype.show = function() { - if (this.maskShape) { - this.maskShape.show(); - this.emitEvent("show"); - } - }; - MaskBase2.prototype.start = function(arg) { - this.starting = true; - this.moving = false; - this.points = [this.getCurrentPoint()]; - if (!this.maskShape) { - this.maskShape = this.createMask(); - this.maskShape.set("capture", false); - } - this.updateMask(arg === null || arg === void 0 ? void 0 : arg.maskStyle); - this.emitEvent("start"); - }; - MaskBase2.prototype.moveStart = function() { - this.moving = true; - this.preMovePoint = this.getCurrentPoint(); - }; - MaskBase2.prototype.move = function() { - if (!this.moving || !this.maskShape) { - return; - } - var currentPoint = this.getCurrentPoint(); - var preMovePoint = this.preMovePoint; - var dx = currentPoint.x - preMovePoint.x; - var dy = currentPoint.y - preMovePoint.y; - var points = this.points; - each_default(points, function(point2) { - point2.x += dx; - point2.y += dy; - }); - this.updateMask(); - this.emitEvent("change"); - this.preMovePoint = currentPoint; - }; - MaskBase2.prototype.updateMask = function(maskStyle) { - var attrs = deep_mix_default({}, this.getMaskAttrs(), maskStyle); - this.maskShape.attr(attrs); - }; - MaskBase2.prototype.moveEnd = function() { - this.moving = false; - this.preMovePoint = null; - }; - MaskBase2.prototype.end = function() { - this.starting = false; - this.emitEvent("end"); - if (this.maskShape) { - this.maskShape.set("capture", true); - } - }; - MaskBase2.prototype.hide = function() { - if (this.maskShape) { - this.maskShape.hide(); - this.emitEvent("hide"); - } - }; - MaskBase2.prototype.resize = function() { - if (this.starting && this.maskShape) { - this.points.push(this.getCurrentPoint()); - this.updateMask(); - this.emitEvent("change"); - } - }; - MaskBase2.prototype.destroy = function() { - this.points = []; - if (this.maskShape) { - this.maskShape.remove(); - } - this.maskShape = null; - this.preMovePoint = null; - _super.prototype.destroy.call(this); - }; - return MaskBase2; -}(base_default12); -var base_default17 = MaskBase; - -// node_modules/@antv/g2/esm/interaction/action/mask/circle.js -var CircleMask = function(_super) { - __extends(CircleMask2, _super); - function CircleMask2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.shapeType = "circle"; - return _this; - } - CircleMask2.prototype.getMaskAttrs = function() { - var points = this.points; - var currentPoint = last(this.points); - var r4 = 0; - var x6 = 0; - var y5 = 0; - if (points.length) { - var first = points[0]; - r4 = distance7(first, currentPoint) / 2; - x6 = (currentPoint.x + first.x) / 2; - y5 = (currentPoint.y + first.y) / 2; - } - return { - x: x6, - y: y5, - r: r4 - }; - }; - return CircleMask2; -}(base_default17); -var circle_default8 = CircleMask; - -// node_modules/@antv/g2/esm/interaction/action/mask/rect.js -var RectMask = function(_super) { - __extends(RectMask2, _super); - function RectMask2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.shapeType = "rect"; - return _this; - } - RectMask2.prototype.getRegion = function() { - var points = this.points; - return { - start: head(points), - end: last(points) - }; - }; - RectMask2.prototype.getMaskAttrs = function() { - var _a6 = this.getRegion(), start = _a6.start, end2 = _a6.end; - var x6 = Math.min(start.x, end2.x); - var y5 = Math.min(start.y, end2.y); - var width2 = Math.abs(end2.x - start.x); - var height = Math.abs(end2.y - start.y); - return { - x: x6, - y: y5, - width: width2, - height - }; - }; - return RectMask2; -}(base_default17); -var rect_default5 = RectMask; - -// node_modules/@antv/g2/esm/interaction/action/mask/dim-rect.js -function clampPoint(point2) { - point2.x = clamp_default(point2.x, 0, 1); - point2.y = clamp_default(point2.y, 0, 1); -} -var DimRect = function(_super) { - __extends(DimRect2, _super); - function DimRect2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.dim = "x"; - _this.inPlot = true; - return _this; - } - DimRect2.prototype.getRegion = function() { - var start = null; - var end2 = null; - var points = this.points; - var dim = this.dim; - var coord2 = this.context.view.getCoordinate(); - var normalStart = coord2.invert(head(points)); - var normalEnd = coord2.invert(last(points)); - if (this.inPlot) { - clampPoint(normalStart); - clampPoint(normalEnd); - } - if (dim === "x") { - start = coord2.convert({ - x: normalStart.x, - y: 0 - }); - end2 = coord2.convert({ - x: normalEnd.x, - y: 1 - }); - } else { - start = coord2.convert({ - x: 0, - y: normalStart.y - }); - end2 = coord2.convert({ - x: 1, - y: normalEnd.y - }); - } - return { - start, - end: end2 - }; - }; - return DimRect2; -}(rect_default5); -var dim_rect_default = DimRect; - -// node_modules/@antv/g2/esm/interaction/action/mask/path.js -var PathMask = function(_super) { - __extends(PathMask2, _super); - function PathMask2() { - return _super !== null && _super.apply(this, arguments) || this; - } - PathMask2.prototype.getMaskPath = function() { - var points = this.points; - var path = []; - if (points.length) { - each_default(points, function(point2, index2) { - if (index2 === 0) { - path.push(["M", point2.x, point2.y]); - } else { - path.push(["L", point2.x, point2.y]); - } - }); - path.push(["L", points[0].x, points[0].y]); - } - return path; - }; - PathMask2.prototype.getMaskAttrs = function() { - return { - path: this.getMaskPath() - }; - }; - PathMask2.prototype.addPoint = function() { - this.resize(); - }; - return PathMask2; -}(base_default17); -var path_default6 = PathMask; - -// node_modules/@antv/g2/esm/interaction/action/mask/smooth-path.js -var SmoothPathMask = function(_super) { - __extends(SmoothPathMask2, _super); - function SmoothPathMask2() { - return _super !== null && _super.apply(this, arguments) || this; - } - SmoothPathMask2.prototype.getMaskPath = function() { - var points = this.points; - return getSpline(points, true); - }; - return SmoothPathMask2; -}(path_default6); -var smooth_path_default = SmoothPathMask; - -// node_modules/@antv/g2/esm/interaction/action/cursor.js -var CursorAction = function(_super) { - __extends(CursorAction2, _super); - function CursorAction2() { - return _super !== null && _super.apply(this, arguments) || this; - } - CursorAction2.prototype.setCursor = function(cursor) { - var view = this.context.view; - view.getCanvas().setCursor(cursor); - }; - CursorAction2.prototype.default = function() { - this.setCursor("default"); - }; - CursorAction2.prototype.pointer = function() { - this.setCursor("pointer"); - }; - CursorAction2.prototype.move = function() { - this.setCursor("move"); - }; - CursorAction2.prototype.crosshair = function() { - this.setCursor("crosshair"); - }; - CursorAction2.prototype.wait = function() { - this.setCursor("wait"); - }; - CursorAction2.prototype.help = function() { - this.setCursor("help"); - }; - CursorAction2.prototype.text = function() { - this.setCursor("text"); - }; - CursorAction2.prototype.eResize = function() { - this.setCursor("e-resize"); - }; - CursorAction2.prototype.wResize = function() { - this.setCursor("w-resize"); - }; - CursorAction2.prototype.nResize = function() { - this.setCursor("n-resize"); - }; - CursorAction2.prototype.sResize = function() { - this.setCursor("s-resize"); - }; - CursorAction2.prototype.neResize = function() { - this.setCursor("ne-resize"); - }; - CursorAction2.prototype.nwResize = function() { - this.setCursor("nw-resize"); - }; - CursorAction2.prototype.seResize = function() { - this.setCursor("se-resize"); - }; - CursorAction2.prototype.swResize = function() { - this.setCursor("sw-resize"); - }; - CursorAction2.prototype.nsResize = function() { - this.setCursor("ns-resize"); - }; - CursorAction2.prototype.ewResize = function() { - this.setCursor("ew-resize"); - }; - return CursorAction2; -}(base_default12); -var cursor_default = CursorAction; - -// node_modules/@antv/g2/esm/interaction/action/data/filter.js -var DataFilter = function(_super) { - __extends(DataFilter2, _super); - function DataFilter2() { - return _super !== null && _super.apply(this, arguments) || this; - } - DataFilter2.prototype.filterView = function(view, field6, filter2) { - var _this = this; - if (view.getScaleByField(field6)) { - view.filter(field6, filter2); - } - if (view.views && view.views.length) { - each_default(view.views, function(subView) { - _this.filterView(subView, field6, filter2); - }); - } - }; - DataFilter2.prototype.filter = function() { - var delegateObject = getDelegationObject(this.context); - if (delegateObject) { - var view = this.context.view; - var component2 = delegateObject.component; - var field6 = component2.get("field"); - if (isList(delegateObject)) { - if (field6) { - var unCheckedItems = component2.getItemsByState("unchecked"); - var scale_1 = getScaleByField(view, field6); - var names_1 = unCheckedItems.map(function(item) { - return item.name; - }); - if (names_1.length) { - this.filterView(view, field6, function(value2) { - var text = scale_1.getText(value2); - return !names_1.includes(text); - }); - } else { - this.filterView(view, field6, null); - } - view.render(true); - } - } else if (isSlider(delegateObject)) { - var range = component2.getValue(); - var min_1 = range[0], max_1 = range[1]; - this.filterView(view, field6, function(value2) { - return value2 >= min_1 && value2 <= max_1; - }); - view.render(true); - } - } - }; - return DataFilter2; -}(base_default12); -var filter_default2 = DataFilter; - -// node_modules/@antv/g2/esm/interaction/action/data/range-filter.js -function getFilter(scale12, dim, point1, point2) { - var min7 = Math.min(point1[dim], point2[dim]); - var max8 = Math.max(point1[dim], point2[dim]); - var _a6 = scale12.range, rangeMin = _a6[0], rangeMax = _a6[1]; - if (min7 < rangeMin) { - min7 = rangeMin; - } - if (max8 > rangeMax) { - max8 = rangeMax; - } - if (min7 === rangeMax && max8 === rangeMax) { - return null; - } - var minValue = scale12.invert(min7); - var maxValue = scale12.invert(max8); - if (scale12.isCategory) { - var minIndex = scale12.values.indexOf(minValue); - var maxIndex = scale12.values.indexOf(maxValue); - var arr_1 = scale12.values.slice(minIndex, maxIndex + 1); - return function(value2) { - return arr_1.includes(value2); - }; - } else { - return function(value2) { - return value2 >= minValue && value2 <= maxValue; - }; - } -} -var EVENTS3; -(function(EVENTS4) { - EVENTS4["FILTER"] = "brush-filter-processing"; - EVENTS4["RESET"] = "brush-filter-reset"; - EVENTS4["BEFORE_FILTER"] = "brush-filter:beforefilter"; - EVENTS4["AFTER_FILTER"] = "brush-filter:afterfilter"; - EVENTS4["BEFORE_RESET"] = "brush-filter:beforereset"; - EVENTS4["AFTER_RESET"] = "brush-filter:afterreset"; -})(EVENTS3 || (EVENTS3 = {})); -var RangeFilter = function(_super) { - __extends(RangeFilter2, _super); - function RangeFilter2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.dims = ["x", "y"]; - _this.startPoint = null; - _this.isStarted = false; - return _this; - } - RangeFilter2.prototype.hasDim = function(dim) { - return this.dims.includes(dim); - }; - RangeFilter2.prototype.start = function() { - var context = this.context; - this.isStarted = true; - this.startPoint = context.getCurrentPoint(); - }; - RangeFilter2.prototype.filter = function() { - var startPoint; - var currentPoint; - if (isMask(this.context)) { - var maskShape = this.context.event.target; - var bbox = maskShape.getCanvasBBox(); - startPoint = { x: bbox.x, y: bbox.y }; - currentPoint = { x: bbox.maxX, y: bbox.maxY }; - } else { - if (!this.isStarted) { - return; - } - startPoint = this.startPoint; - currentPoint = this.context.getCurrentPoint(); - } - if (Math.abs(startPoint.x - currentPoint.x) < 5 || Math.abs(startPoint.x - currentPoint.y) < 5) { - return; - } - var _a6 = this.context, view = _a6.view, event = _a6.event; - var payload = { view, event, dims: this.dims }; - view.emit(EVENTS3.BEFORE_FILTER, event_default.fromData(view, EVENTS3.BEFORE_FILTER, payload)); - var coord2 = view.getCoordinate(); - var normalCurrent = coord2.invert(currentPoint); - var normalStart = coord2.invert(startPoint); - if (this.hasDim("x")) { - var xScale = view.getXScale(); - var filter2 = getFilter(xScale, "x", normalCurrent, normalStart); - this.filterView(view, xScale.field, filter2); - } - if (this.hasDim("y")) { - var yScale = view.getYScales()[0]; - var filter2 = getFilter(yScale, "y", normalCurrent, normalStart); - this.filterView(view, yScale.field, filter2); - } - this.reRender(view, { source: EVENTS3.FILTER }); - view.emit(EVENTS3.AFTER_FILTER, event_default.fromData(view, EVENTS3.AFTER_FILTER, payload)); - }; - RangeFilter2.prototype.end = function() { - this.isStarted = false; - }; - RangeFilter2.prototype.reset = function() { - var view = this.context.view; - view.emit(EVENTS3.BEFORE_RESET, event_default.fromData(view, EVENTS3.BEFORE_RESET, {})); - this.isStarted = false; - if (this.hasDim("x")) { - var xScale = view.getXScale(); - this.filterView(view, xScale.field, null); - } - if (this.hasDim("y")) { - var yScale = view.getYScales()[0]; - this.filterView(view, yScale.field, null); - } - this.reRender(view, { source: EVENTS3.RESET }); - view.emit(EVENTS3.AFTER_RESET, event_default.fromData(view, EVENTS3.AFTER_RESET, {})); - }; - RangeFilter2.prototype.filterView = function(view, field6, filter2) { - view.filter(field6, filter2); - }; - RangeFilter2.prototype.reRender = function(view, payload) { - view.render(true, payload); - }; - return RangeFilter2; -}(base_default12); -var range_filter_default = RangeFilter; - -// node_modules/@antv/g2/esm/interaction/action/data/sibling-filter.js -var SiblingFilter = function(_super) { - __extends(SiblingFilter3, _super); - function SiblingFilter3() { - return _super !== null && _super.apply(this, arguments) || this; - } - SiblingFilter3.prototype.filterView = function(view, field6, filter2) { - var siblings = getSilbings(view); - each_default(siblings, function(sibling) { - sibling.filter(field6, filter2); - }); - }; - SiblingFilter3.prototype.reRender = function(view) { - var siblings = getSilbings(view); - each_default(siblings, function(sibling) { - sibling.render(true); - }); - }; - return SiblingFilter3; -}(range_filter_default); -var sibling_filter_default = SiblingFilter; - -// node_modules/@antv/g2/esm/interaction/action/element/filter.js -var ElementFilter = function(_super) { - __extends(ElementFilter2, _super); - function ElementFilter2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ElementFilter2.prototype.filter = function() { - var delegateObject = getDelegationObject(this.context); - var view = this.context.view; - var elements = getElements(view); - if (isMask(this.context)) { - var maskElements_1 = getMaskedElements(this.context, 10); - if (maskElements_1) { - each_default(elements, function(el) { - if (maskElements_1.includes(el)) { - el.show(); - } else { - el.hide(); - } - }); - } - } else if (delegateObject) { - var component2 = delegateObject.component; - var field_1 = component2.get("field"); - if (isList(delegateObject)) { - if (field_1) { - var unCheckedItems = component2.getItemsByState("unchecked"); - var scale_1 = getScaleByField(view, field_1); - var names_1 = unCheckedItems.map(function(item) { - return item.name; - }); - each_default(elements, function(el) { - var value2 = getElementValue(el, field_1); - var text = scale_1.getText(value2); - if (names_1.indexOf(text) >= 0) { - el.hide(); - } else { - el.show(); - } - }); - } - } else if (isSlider(delegateObject)) { - var range = component2.getValue(); - var min_1 = range[0], max_1 = range[1]; - each_default(elements, function(el) { - var value2 = getElementValue(el, field_1); - if (value2 >= min_1 && value2 <= max_1) { - el.show(); - } else { - el.hide(); - } - }); - } - } - }; - ElementFilter2.prototype.clear = function() { - var elements = getElements(this.context.view); - each_default(elements, function(el) { - el.show(); - }); - }; - ElementFilter2.prototype.reset = function() { - this.clear(); - }; - return ElementFilter2; -}(base_default12); -var filter_default3 = ElementFilter; - -// node_modules/@antv/g2/esm/interaction/action/element/sibling-filter.js -var SiblingFilter2 = function(_super) { - __extends(SiblingFilter3, _super); - function SiblingFilter3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.byRecord = false; - return _this; - } - SiblingFilter3.prototype.filter = function() { - if (isMask(this.context)) { - if (this.byRecord) { - this.filterByRecord(); - } else { - this.filterByBBox(); - } - } - }; - SiblingFilter3.prototype.filterByRecord = function() { - var view = this.context.view; - var maskElements = getMaskedElements(this.context, 10); - if (!maskElements) { - return; - } - var xFiled = view.getXScale().field; - var yField = view.getYScales()[0].field; - var records = maskElements.map(function(el) { - return el.getModel().data; - }); - var siblings = getSilbings(view); - each_default(siblings, function(sibling) { - var elements = getElements(sibling); - each_default(elements, function(el) { - var record = el.getModel().data; - if (isInRecords(records, record, xFiled, yField)) { - el.show(); - } else { - el.hide(); - } - }); - }); - }; - SiblingFilter3.prototype.filterByBBox = function() { - var _this = this; - var view = this.context.view; - var siblings = getSilbings(view); - each_default(siblings, function(sibling) { - var maskElements = getSiblingMaskElements(_this.context, sibling, 10); - var elements = getElements(sibling); - if (maskElements) { - each_default(elements, function(el) { - if (maskElements.includes(el)) { - el.show(); - } else { - el.hide(); - } - }); - } - }); - }; - SiblingFilter3.prototype.reset = function() { - var siblings = getSilbings(this.context.view); - each_default(siblings, function(sibling) { - var elements = getElements(sibling); - each_default(elements, function(el) { - el.show(); - }); - }); - }; - return SiblingFilter3; -}(base_default12); -var sibling_filter_default2 = SiblingFilter2; - -// node_modules/@antv/g2/esm/interaction/action/view/button.js -var PADDING_RIGHT = 10; -var PADDING_TOP = 5; -var ButtonAction = function(_super) { - __extends(ButtonAction3, _super); - function ButtonAction3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.buttonGroup = null; - _this.buttonCfg = { - name: "button", - text: "button", - textStyle: { - x: 0, - y: 0, - fontSize: 12, - fill: "#333333", - cursor: "pointer" - }, - padding: [8, 10], - style: { - fill: "#f7f7f7", - stroke: "#cccccc", - cursor: "pointer" - }, - activeStyle: { - fill: "#e6e6e6" - } - }; - return _this; - } - ButtonAction3.prototype.getButtonCfg = function() { - return deep_mix_default(this.buttonCfg, this.cfg); - }; - ButtonAction3.prototype.drawButton = function() { - var config = this.getButtonCfg(); - var group2 = this.context.view.foregroundGroup.addGroup({ - name: config.name - }); - var textShape = group2.addShape({ - type: "text", - name: "button-text", - attrs: __assign({ text: config.text }, config.textStyle) - }); - var textBBox = textShape.getBBox(); - var padding3 = parsePadding(config.padding); - var buttonShape = group2.addShape({ - type: "rect", - name: "button-rect", - attrs: __assign({ x: textBBox.x - padding3[3], y: textBBox.y - padding3[0], width: textBBox.width + padding3[1] + padding3[3], height: textBBox.height + padding3[0] + padding3[2] }, config.style) - }); - buttonShape.toBack(); - group2.on("mouseenter", function() { - buttonShape.attr(config.activeStyle); - }); - group2.on("mouseleave", function() { - buttonShape.attr(config.style); - }); - this.buttonGroup = group2; - }; - ButtonAction3.prototype.resetPosition = function() { - var view = this.context.view; - var coord2 = view.getCoordinate(); - var point2 = coord2.convert({ x: 1, y: 1 }); - var buttonGroup = this.buttonGroup; - var bbox = buttonGroup.getBBox(); - var matrix = ext_exports.transform(null, [ - ["t", point2.x - bbox.width - PADDING_RIGHT, point2.y + bbox.height + PADDING_TOP] - ]); - buttonGroup.setMatrix(matrix); - }; - ButtonAction3.prototype.show = function() { - if (!this.buttonGroup) { - this.drawButton(); - } - this.resetPosition(); - this.buttonGroup.show(); - }; - ButtonAction3.prototype.hide = function() { - if (this.buttonGroup) { - this.buttonGroup.hide(); - } - }; - ButtonAction3.prototype.destroy = function() { - var buttonGroup = this.buttonGroup; - if (buttonGroup) { - buttonGroup.remove(); - } - _super.prototype.destroy.call(this); - }; - return ButtonAction3; -}(base_default12); -var button_default = ButtonAction; - -// node_modules/@antv/g2/esm/interaction/action/view/drag.js -var DISTANCE = 4; -var Drag = function(_super) { - __extends(Drag2, _super); - function Drag2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.starting = false; - _this.dragStart = false; - return _this; - } - Drag2.prototype.start = function() { - this.starting = true; - this.startPoint = this.context.getCurrentPoint(); - }; - Drag2.prototype.drag = function() { - if (!this.startPoint) { - return; - } - var current = this.context.getCurrentPoint(); - var view = this.context.view; - var event = this.context.event; - if (!this.dragStart) { - if (distance7(current, this.startPoint) > DISTANCE) { - view.emit("dragstart", { - target: event.target, - x: event.x, - y: event.y - }); - this.dragStart = true; - } - } else { - view.emit("drag", { - target: event.target, - x: event.x, - y: event.y - }); - } - }; - Drag2.prototype.end = function() { - if (this.dragStart) { - var view = this.context.view; - var event_1 = this.context.event; - view.emit("dragend", { - target: event_1.target, - x: event_1.x, - y: event_1.y - }); - } - this.starting = false; - this.dragStart = false; - }; - return Drag2; -}(base_default12); -var drag_default = Drag; - -// node_modules/@antv/g2/esm/interaction/action/view/move.js -var MIN_DISTANCE = 5; -var Move = function(_super) { - __extends(Move2, _super); - function Move2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.starting = false; - _this.isMoving = false; - _this.startPoint = null; - _this.startMatrix = null; - return _this; - } - Move2.prototype.start = function() { - this.starting = true; - this.startPoint = this.context.getCurrentPoint(); - this.startMatrix = this.context.view.middleGroup.getMatrix(); - }; - Move2.prototype.move = function() { - if (!this.starting) { - return; - } - var startPoint = this.startPoint; - var currentPoint = this.context.getCurrentPoint(); - var d3 = distance7(startPoint, currentPoint); - if (d3 > MIN_DISTANCE && !this.isMoving) { - this.isMoving = true; - } - if (this.isMoving) { - var view = this.context.view; - var matrix = ext_exports.transform(this.startMatrix, [ - ["t", currentPoint.x - startPoint.x, currentPoint.y - startPoint.y] - ]); - view.backgroundGroup.setMatrix(matrix); - view.foregroundGroup.setMatrix(matrix); - view.middleGroup.setMatrix(matrix); - } - }; - Move2.prototype.end = function() { - if (this.isMoving) { - this.isMoving = false; - } - this.startMatrix = null; - this.starting = false; - this.startPoint = null; - }; - Move2.prototype.reset = function() { - this.starting = false; - this.startPoint = null; - this.isMoving = false; - var view = this.context.view; - view.backgroundGroup.resetMatrix(); - view.foregroundGroup.resetMatrix(); - view.middleGroup.resetMatrix(); - this.isMoving = false; - }; - return Move2; -}(base_default12); -var move_default = Move; - -// node_modules/@antv/g2/esm/interaction/action/view/scale-transform.js -var DIM_X = "x"; -var DIM_Y = "y"; -var ScaleTranslate = function(_super) { - __extends(ScaleTranslate4, _super); - function ScaleTranslate4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.dims = [DIM_X, DIM_Y]; - _this.cfgFields = ["dims"]; - _this.cacheScaleDefs = {}; - return _this; - } - ScaleTranslate4.prototype.hasDim = function(dim) { - return this.dims.includes(dim); - }; - ScaleTranslate4.prototype.getScale = function(dim) { - var view = this.context.view; - if (dim === "x") { - return view.getXScale(); - } else { - return view.getYScales()[0]; - } - }; - ScaleTranslate4.prototype.resetDim = function(dim) { - var view = this.context.view; - if (this.hasDim(dim) && this.cacheScaleDefs[dim]) { - var scale12 = this.getScale(dim); - view.scale(scale12.field, this.cacheScaleDefs[dim]); - this.cacheScaleDefs[dim] = null; - } - }; - ScaleTranslate4.prototype.reset = function() { - this.resetDim(DIM_X); - this.resetDim(DIM_Y); - var view = this.context.view; - view.render(true); - }; - return ScaleTranslate4; -}(base_default12); -var scale_transform_default = ScaleTranslate; - -// node_modules/@antv/g2/esm/interaction/action/view/scale-translate.js -var ScaleTranslate2 = function(_super) { - __extends(ScaleTranslate4, _super); - function ScaleTranslate4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.startPoint = null; - _this.starting = false; - _this.startCache = {}; - return _this; - } - ScaleTranslate4.prototype.start = function() { - var _this = this; - this.startPoint = this.context.getCurrentPoint(); - this.starting = true; - var dims = this.dims; - each_default(dims, function(dim) { - var scale12 = _this.getScale(dim); - var min7 = scale12.min, max8 = scale12.max, values2 = scale12.values; - _this.startCache[dim] = { min: min7, max: max8, values: values2 }; - }); - }; - ScaleTranslate4.prototype.end = function() { - this.startPoint = null; - this.starting = false; - this.startCache = {}; - }; - ScaleTranslate4.prototype.translate = function() { - var _this = this; - if (!this.starting) { - return; - } - var startPoint = this.startPoint; - var coord2 = this.context.view.getCoordinate(); - var currentPoint = this.context.getCurrentPoint(); - var normalStart = coord2.invert(startPoint); - var noramlCurrent = coord2.invert(currentPoint); - var dx = noramlCurrent.x - normalStart.x; - var dy = noramlCurrent.y - normalStart.y; - var view = this.context.view; - var dims = this.dims; - each_default(dims, function(dim) { - _this.translateDim(dim, { x: dx * -1, y: dy * -1 }); - }); - view.render(true); - }; - ScaleTranslate4.prototype.translateDim = function(dim, normalPoint) { - if (this.hasDim(dim)) { - var scale12 = this.getScale(dim); - if (scale12.isLinear) { - this.translateLinear(dim, scale12, normalPoint); - } - } - }; - ScaleTranslate4.prototype.translateLinear = function(dim, scale12, normalPoint) { - var view = this.context.view; - var _a6 = this.startCache[dim], min7 = _a6.min, max8 = _a6.max; - var range = max8 - min7; - var d3 = normalPoint[dim] * range; - if (!this.cacheScaleDefs[dim]) { - this.cacheScaleDefs[dim] = { - nice: scale12.nice, - min: min7, - max: max8 - }; - } - view.scale(scale12.field, { - nice: false, - min: min7 + d3, - max: max8 + d3 - }); - }; - ScaleTranslate4.prototype.reset = function() { - _super.prototype.reset.call(this); - this.startPoint = null; - this.starting = false; - }; - return ScaleTranslate4; -}(scale_transform_default); -var scale_translate_default = ScaleTranslate2; - -// node_modules/@antv/g2/esm/interaction/action/view/scale-zoom.js -var ScaleTranslate3 = function(_super) { - __extends(ScaleTranslate4, _super); - function ScaleTranslate4() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.zoomRatio = 0.05; - return _this; - } - ScaleTranslate4.prototype.zoomIn = function() { - this.zoom(this.zoomRatio); - }; - ScaleTranslate4.prototype.zoom = function(scale12) { - var _this = this; - var dims = this.dims; - each_default(dims, function(dim) { - _this.zoomDim(dim, scale12); - }); - this.context.view.render(true); - }; - ScaleTranslate4.prototype.zoomOut = function() { - this.zoom(-1 * this.zoomRatio); - }; - ScaleTranslate4.prototype.zoomDim = function(dim, dRatio) { - if (this.hasDim(dim)) { - var scale12 = this.getScale(dim); - if (scale12.isLinear) { - this.zoomLinear(dim, scale12, dRatio); - } - } - }; - ScaleTranslate4.prototype.zoomLinear = function(dim, scale12, dRatio) { - var view = this.context.view; - if (!this.cacheScaleDefs[dim]) { - this.cacheScaleDefs[dim] = { - nice: scale12.nice, - min: scale12.min, - max: scale12.max - }; - } - var scaleDef = this.cacheScaleDefs[dim]; - var range = scaleDef.max - scaleDef.min; - var min7 = scale12.min, max8 = scale12.max; - var d3 = dRatio * range; - var toMin = min7 - d3; - var toMax = max8 + d3; - var curRange = toMax - toMin; - var scaled = curRange / range; - if (toMax > toMin && scaled < 100 && scaled > 0.01) { - view.scale(scale12.field, { - nice: false, - min: min7 - d3, - max: max8 + d3 - }); - } - }; - return ScaleTranslate4; -}(scale_transform_default); -var scale_zoom_default = ScaleTranslate3; - -// node_modules/@antv/g2/esm/interaction/action/view/mousewheel-scroll.js -function isWheelDown(event) { - var wheelEvent = event.gEvent.originalEvent; - return wheelEvent.deltaY > 0; -} -var DEFAULT_WHEELDELTA = 1; -var MousewheelScroll = function(_super) { - __extends(MousewheelScroll2, _super); - function MousewheelScroll2() { - return _super !== null && _super.apply(this, arguments) || this; - } - MousewheelScroll2.prototype.scroll = function(arg) { - var _a6 = this.context, view = _a6.view, event = _a6.event; - if (!view.getOptions().scrollbar) { - return; - } - var wheelDelta = (arg === null || arg === void 0 ? void 0 : arg.wheelDelta) || DEFAULT_WHEELDELTA; - var scrollbarController = view.getController("scrollbar"); - var xScale = view.getXScale(); - var data3 = view.getOptions().data; - var dataSize = size(values_of_key_default(data3, xScale.field)); - var step = size(xScale.values); - var currentRatio = scrollbarController.getValue(); - var currentStart = Math.floor((dataSize - step) * currentRatio); - var nextStart = currentStart + (isWheelDown(event) ? wheelDelta : -wheelDelta); - var correction = wheelDelta / (dataSize - step) / 1e4; - var nextRatio = clamp_default(nextStart / (dataSize - step) + correction, 0, 1); - scrollbarController.setValue(nextRatio); - }; - return MousewheelScroll2; -}(base_default12); -var mousewheel_scroll_default = MousewheelScroll; - -// node_modules/@antv/g2/esm/index.js -registerTheme("dark", createThemeByStyleSheet(antvDark)); -registerEngine("canvas", esm_exports); -registerEngine("svg", esm_exports2); -registerGeometry("Polygon", polygon_default5); -registerGeometry("Interval", interval_default); -registerGeometry("Schema", schema_default); -registerGeometry("Path", path_default5); -registerGeometry("Point", point_default); -registerGeometry("Line", line_default9); -registerGeometry("Area", area_default); -registerGeometry("Edge", edge_default); -registerGeometry("Heatmap", heatmap_default); -registerGeometry("Violin", violin_default); -registerGeometryLabel("base", base_default14); -registerGeometryLabel("interval", interval_default2); -registerGeometryLabel("pie", pie_default); -registerGeometryLabel("polar", polar_default2); -registerGeometryLabelLayout("overlap", overlap); -registerGeometryLabelLayout("distribute", distribute); -registerGeometryLabelLayout("fixed-overlap", fixedOverlap); -registerGeometryLabelLayout("hide-overlap", hideOverlap); -registerGeometryLabelLayout("limit-in-shape", limitInShape); -registerGeometryLabelLayout("limit-in-canvas", limitInCanvas); -registerGeometryLabelLayout("limit-in-plot", limitInPlot); -registerGeometryLabelLayout("pie-outer", pieOuterLabelLayout); -registerGeometryLabelLayout("adjust-color", adjustColor); -registerGeometryLabelLayout("interval-adjust-position", intervalAdjustPosition); -registerGeometryLabelLayout("interval-hide-overlap", intervalHideOverlap); -registerGeometryLabelLayout("point-adjust-position", pointAdjustPosition); -registerGeometryLabelLayout("pie-spider", pieSpiderLabelLayout); -registerGeometryLabelLayout("path-adjust-position", pathAdjustPosition); -registerAnimation("fade-in", fadeIn); -registerAnimation("fade-out", fadeOut); -registerAnimation("grow-in-x", growInX); -registerAnimation("grow-in-xy", growInXY); -registerAnimation("grow-in-y", growInY); -registerAnimation("scale-in-x", scaleInX); -registerAnimation("scale-in-y", scaleInY); -registerAnimation("wave-in", waveIn); -registerAnimation("zoom-in", zoomIn); -registerAnimation("zoom-out", zoomOut); -registerAnimation("position-update", positionUpdate); -registerAnimation("sector-path-update", sectorPathUpdate); -registerAnimation("path-in", pathIn); -registerFacet("rect", rect_default4); -registerFacet("mirror", mirror_default); -registerFacet("list", list_default); -registerFacet("matrix", matrix_default); -registerFacet("circle", circle_default7); -registerFacet("tree", tree_default); -registerComponentController("axis", axis_default); -registerComponentController("legend", legend_default); -registerComponentController("tooltip", tooltip_default); -registerComponentController("annotation", annotation_default); -registerComponentController("slider", slider_default); -registerComponentController("scrollbar", scrollbar_default); -registerAction("tooltip", geometry_default); -registerAction("sibling-tooltip", sibling_default); -registerAction("ellipsis-text", ellipsis_text_default); -registerAction("element-active", active_default); -registerAction("element-single-active", single_active_default); -registerAction("element-range-active", range_active_default); -registerAction("element-highlight", highlight_default); -registerAction("element-highlight-by-x", highlight_by_x_default); -registerAction("element-highlight-by-color", highlight_by_color_default); -registerAction("element-single-highlight", single_highlight_default); -registerAction("element-range-highlight", range_highlight_default); -registerAction("element-sibling-highlight", range_highlight_default, { - effectSiblings: true, - effectByRecord: true -}); -registerAction("element-selected", selected_default); -registerAction("element-single-selected", single_selected_default); -registerAction("element-range-selected", range_selected_default); -registerAction("element-link-by-color", link_by_color_default); -registerAction("active-region", active_region_default); -registerAction("list-active", list_active_default); -registerAction("list-selected", list_selected_default); -registerAction("list-highlight", list_highlight_default); -registerAction("list-unchecked", list_unchecked_default); -registerAction("list-checked", list_checked_default); -registerAction("list-focus", list_focus_default); -registerAction("list-radio", list_radio_default); -registerAction("legend-item-highlight", list_highlight_default, { - componentNames: ["legend"] -}); -registerAction("axis-label-highlight", list_highlight_default, { - componentNames: ["axis"] -}); -registerAction("rect-mask", rect_default5); -registerAction("x-rect-mask", dim_rect_default, { dim: "x" }); -registerAction("y-rect-mask", dim_rect_default, { dim: "y" }); -registerAction("circle-mask", circle_default8); -registerAction("path-mask", path_default6); -registerAction("smooth-path-mask", smooth_path_default); -registerAction("cursor", cursor_default); -registerAction("data-filter", filter_default2); -registerAction("brush", range_filter_default); -registerAction("brush-x", range_filter_default, { dims: ["x"] }); -registerAction("brush-y", range_filter_default, { dims: ["y"] }); -registerAction("sibling-filter", sibling_filter_default); -registerAction("sibling-x-filter", sibling_filter_default); -registerAction("sibling-y-filter", sibling_filter_default); -registerAction("element-filter", filter_default3); -registerAction("element-sibling-filter", sibling_filter_default2); -registerAction("element-sibling-filter-record", sibling_filter_default2, { byRecord: true }); -registerAction("view-drag", drag_default); -registerAction("view-move", move_default); -registerAction("scale-translate", scale_translate_default); -registerAction("scale-zoom", scale_zoom_default); -registerAction("reset-button", button_default, { - name: "reset-button", - text: "reset" -}); -registerAction("mousewheel-scroll", mousewheel_scroll_default); -function isPointInView(context) { - return context.isInPlot(); -} -registerInteraction("tooltip", { - start: [ - { trigger: "plot:mousemove", action: "tooltip:show", throttle: { wait: 50, leading: true, trailing: false } }, - { trigger: "plot:touchmove", action: "tooltip:show", throttle: { wait: 50, leading: true, trailing: false } } - ], - end: [ - { trigger: "plot:mouseleave", action: "tooltip:hide" }, - { trigger: "plot:leave", action: "tooltip:hide" }, - { trigger: "plot:touchend", action: "tooltip:hide" } - ] -}); -registerInteraction("ellipsis-text", { - start: [ - { - trigger: "legend-item-name:mousemove", - action: "ellipsis-text:show", - throttle: { wait: 50, leading: true, trailing: false } - }, - { - trigger: "legend-item-name:touchstart", - action: "ellipsis-text:show", - throttle: { wait: 50, leading: true, trailing: false } - }, - { - trigger: "axis-label:mousemove", - action: "ellipsis-text:show", - throttle: { wait: 50, leading: true, trailing: false } - }, - { - trigger: "axis-label:touchstart", - action: "ellipsis-text:show", - throttle: { wait: 50, leading: true, trailing: false } - } - ], - end: [ - { trigger: "legend-item-name:mouseleave", action: "ellipsis-text:hide" }, - { trigger: "legend-item-name:touchend", action: "ellipsis-text:hide" }, - { trigger: "axis-label:mouseleave", action: "ellipsis-text:hide" }, - { trigger: "axis-label:touchend", action: "ellipsis-text:hide" } - ] -}); -registerInteraction("element-active", { - start: [{ trigger: "element:mouseenter", action: "element-active:active" }], - end: [{ trigger: "element:mouseleave", action: "element-active:reset" }] -}); -registerInteraction("element-selected", { - start: [{ trigger: "element:click", action: "element-selected:toggle" }] -}); -registerInteraction("element-highlight", { - start: [{ trigger: "element:mouseenter", action: "element-highlight:highlight" }], - end: [{ trigger: "element:mouseleave", action: "element-highlight:reset" }] -}); -registerInteraction("element-highlight-by-x", { - start: [{ trigger: "element:mouseenter", action: "element-highlight-by-x:highlight" }], - end: [{ trigger: "element:mouseleave", action: "element-highlight-by-x:reset" }] -}); -registerInteraction("element-highlight-by-color", { - start: [{ trigger: "element:mouseenter", action: "element-highlight-by-color:highlight" }], - end: [{ trigger: "element:mouseleave", action: "element-highlight-by-color:reset" }] -}); -registerInteraction("legend-active", { - start: [{ trigger: "legend-item:mouseenter", action: ["list-active:active", "element-active:active"] }], - end: [{ trigger: "legend-item:mouseleave", action: ["list-active:reset", "element-active:reset"] }] -}); -registerInteraction("legend-highlight", { - start: [ - { trigger: "legend-item:mouseenter", action: ["legend-item-highlight:highlight", "element-highlight:highlight"] } - ], - end: [{ trigger: "legend-item:mouseleave", action: ["legend-item-highlight:reset", "element-highlight:reset"] }] -}); -registerInteraction("axis-label-highlight", { - start: [ - { trigger: "axis-label:mouseenter", action: ["axis-label-highlight:highlight", "element-highlight:highlight"] } - ], - end: [{ trigger: "axis-label:mouseleave", action: ["axis-label-highlight:reset", "element-highlight:reset"] }] -}); -registerInteraction("element-list-highlight", { - start: [{ trigger: "element:mouseenter", action: ["list-highlight:highlight", "element-highlight:highlight"] }], - end: [{ trigger: "element:mouseleave", action: ["list-highlight:reset", "element-highlight:reset"] }] -}); -registerInteraction("element-range-highlight", { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "mask:mouseenter", action: "cursor:move" }, - { trigger: "plot:mouseleave", action: "cursor:default" }, - { trigger: "mask:mouseleave", action: "cursor:crosshair" } - ], - start: [ - { - trigger: "plot:mousedown", - isEnable: function(context) { - return !context.isInShape("mask"); - }, - action: ["rect-mask:start", "rect-mask:show"] - }, - { - trigger: "mask:dragstart", - action: ["rect-mask:moveStart"] - } - ], - processing: [ - { - trigger: "plot:mousemove", - action: ["rect-mask:resize"] - }, - { - trigger: "mask:drag", - action: ["rect-mask:move"] - }, - { - trigger: "mask:change", - action: ["element-range-highlight:highlight"] - } - ], - end: [ - { trigger: "plot:mouseup", action: ["rect-mask:end"] }, - { trigger: "mask:dragend", action: ["rect-mask:moveEnd"] }, - { - trigger: "document:mouseup", - isEnable: function(context) { - return !context.isInPlot(); - }, - action: ["element-range-highlight:clear", "rect-mask:end", "rect-mask:hide"] - } - ], - rollback: [{ trigger: "dblclick", action: ["element-range-highlight:clear", "rect-mask:hide"] }] -}); -registerInteraction("brush", { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "plot:mouseleave", action: "cursor:default" } - ], - start: [ - { - trigger: "mousedown", - isEnable: isPointInView, - action: ["brush:start", "rect-mask:start", "rect-mask:show"] - } - ], - processing: [ - { - trigger: "mousemove", - isEnable: isPointInView, - action: ["rect-mask:resize"] - } - ], - end: [ - { - trigger: "mouseup", - isEnable: isPointInView, - action: ["brush:filter", "brush:end", "rect-mask:end", "rect-mask:hide", "reset-button:show"] - } - ], - rollback: [{ trigger: "reset-button:click", action: ["brush:reset", "reset-button:hide", "cursor:crosshair"] }] -}); -registerInteraction("brush-visible", { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "plot:mouseleave", action: "cursor:default" } - ], - start: [ - { - trigger: "plot:mousedown", - action: ["rect-mask:start", "rect-mask:show"] - } - ], - processing: [ - { - trigger: "plot:mousemove", - action: ["rect-mask:resize"] - }, - { trigger: "mask:change", action: ["element-range-highlight:highlight"] } - ], - end: [ - { - trigger: "plot:mouseup", - action: ["rect-mask:end", "rect-mask:hide", "element-filter:filter", "element-range-highlight:clear"] - } - ], - rollback: [ - { - trigger: "dblclick", - action: ["element-filter:clear"] - } - ] -}); -registerInteraction("brush-x", { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "plot:mouseleave", action: "cursor:default" } - ], - start: [ - { - trigger: "mousedown", - isEnable: isPointInView, - action: ["brush-x:start", "x-rect-mask:start", "x-rect-mask:show"] - } - ], - processing: [ - { - trigger: "mousemove", - isEnable: isPointInView, - action: ["x-rect-mask:resize"] - } - ], - end: [ - { - trigger: "mouseup", - isEnable: isPointInView, - action: ["brush-x:filter", "brush-x:end", "x-rect-mask:end", "x-rect-mask:hide"] - } - ], - rollback: [{ trigger: "dblclick", action: ["brush-x:reset"] }] -}); -registerInteraction("element-path-highlight", { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "plot:mouseleave", action: "cursor:default" } - ], - start: [ - { trigger: "mousedown", isEnable: isPointInView, action: "path-mask:start" }, - { trigger: "mousedown", isEnable: isPointInView, action: "path-mask:show" } - ], - processing: [{ trigger: "mousemove", action: "path-mask:addPoint" }], - end: [{ trigger: "mouseup", action: "path-mask:end" }], - rollback: [{ trigger: "dblclick", action: "path-mask:hide" }] -}); -registerInteraction("element-single-selected", { - start: [{ trigger: "element:click", action: "element-single-selected:toggle" }] -}); -registerInteraction("legend-filter", { - showEnable: [ - { trigger: "legend-item:mouseenter", action: ["cursor:pointer", "list-radio:show"] }, - { trigger: "legend-item:mouseleave", action: ["cursor:default", "list-radio:hide"] } - ], - start: [ - { - trigger: "legend-item:click", - isEnable: function(context) { - return !context.isInShape("legend-item-radio"); - }, - action: ["list-unchecked:toggle", "data-filter:filter", "list-radio:show"] - }, - { - trigger: "legend-item-radio:click", - action: ["list-focus:toggle", "data-filter:filter", "list-radio:show"] - } - ] -}); -registerInteraction("continuous-filter", { - start: [{ trigger: "legend:valuechanged", action: "data-filter:filter" }] -}); -registerInteraction("continuous-visible-filter", { - start: [{ trigger: "legend:valuechanged", action: "element-filter:filter" }] -}); -registerInteraction("legend-visible-filter", { - showEnable: [ - { trigger: "legend-item:mouseenter", action: "cursor:pointer" }, - { trigger: "legend-item:mouseleave", action: "cursor:default" } - ], - start: [{ trigger: "legend-item:click", action: ["list-unchecked:toggle", "element-filter:filter"] }] -}); -registerInteraction("active-region", { - start: [{ trigger: "plot:mousemove", action: "active-region:show" }], - end: [{ trigger: "plot:mouseleave", action: "active-region:hide" }] -}); -function isWheelDown2(event) { - event.gEvent.preventDefault(); - return event.gEvent.originalEvent.deltaY > 0; -} -registerInteraction("view-zoom", { - start: [ - { - trigger: "plot:mousewheel", - isEnable: function(context) { - return isWheelDown2(context.event); - }, - action: "scale-zoom:zoomOut", - throttle: { wait: 100, leading: true, trailing: false } - }, - { - trigger: "plot:mousewheel", - isEnable: function(context) { - return !isWheelDown2(context.event); - }, - action: "scale-zoom:zoomIn", - throttle: { wait: 100, leading: true, trailing: false } - } - ] -}); -registerInteraction("sibling-tooltip", { - start: [{ trigger: "plot:mousemove", action: "sibling-tooltip:show" }], - end: [{ trigger: "plot:mouseleave", action: "sibling-tooltip:hide" }] -}); -registerInteraction("plot-mousewheel-scroll", { - start: [{ trigger: "plot:mousewheel", action: "mousewheel-scroll:scroll" }] -}); - -// node_modules/@antv/g2plot/esm/utils/flow.js -function flow() { - var flows = []; - for (var _i = 0; _i < arguments.length; _i++) { - flows[_i] = arguments[_i]; - } - return function(param) { - return flows.reduce(function(result, f3) { - return f3(result); - }, param); - }; -} - -// node_modules/@antv/g2plot/esm/utils/pick.js -function pick(obj, keys2) { - var r4 = {}; - if (obj !== null && typeof obj === "object") { - keys2.forEach(function(key) { - var v3 = obj[key]; - if (v3 !== void 0) { - r4[key] = v3; - } - }); - } - return r4; -} - -// node_modules/@antv/g2plot/esm/utils/template.js -function template(source, data3) { - if (!data3) { - return source; - } - return reduce_default(data3, function(r4, v3, k4) { - return r4.replace(new RegExp("{\\s*" + k4 + "\\s*}", "g"), v3); - }, source); -} - -// node_modules/@antv/g2plot/esm/utils/invariant.js -var LEVEL; -(function(LEVEL2) { - LEVEL2["ERROR"] = "error"; - LEVEL2["WARN"] = "warn"; - LEVEL2["INFO"] = "log"; -})(LEVEL || (LEVEL = {})); -var BRAND = "AntV/G2Plot"; -function getMessage(format2) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var argIndex = 0; - return BRAND + ": " + format2.replace(/%s/g, function() { - return "" + args[argIndex++]; - }); -} -function log2(level, condition, format2) { - var args = []; - for (var _i = 3; _i < arguments.length; _i++) { - args[_i - 3] = arguments[_i]; - } - if (!condition) { - console[level](getMessage.apply(void 0, __spreadArrays([format2], args))); - } -} - -// node_modules/@antv/g2plot/esm/utils/dom.js -function getContainerSize(ele) { - if (!ele) { - return { width: 0, height: 0 }; - } - var style = getComputedStyle(ele); - return { - width: (ele.clientWidth || parseInt(style.width, 10)) - parseInt(style.paddingLeft, 10) - parseInt(style.paddingRight, 10), - height: (ele.clientHeight || parseInt(style.height, 10)) - parseInt(style.paddingTop, 10) - parseInt(style.paddingBottom, 10) - }; -} - -// node_modules/@antv/g2plot/esm/utils/geometry.js -function findGeometry(view, type2) { - return view.geometries.find(function(g4) { - return g4.type === type2; - }); -} -function getAllElements(view) { - return reduce_default(view.geometries, function(r4, geometry35) { - return r4.concat(geometry35.elements); - }, []); -} -function getAllElementsRecursively(view) { - if (get_default(view, ["views", "length"], 0) <= 0) { - return getAllElements(view); - } - return reduce_default(view.views, function(ele, subView) { - return ele.concat(getAllElementsRecursively(subView)); - }, getAllElements(view)); -} -function getAllGeometriesRecursively(view) { - if (get_default(view, ["views", "length"], 0) <= 0) { - return view.geometries; - } - return reduce_default(view.views, function(ele, subView) { - return ele.concat(subView.geometries); - }, view.geometries); -} - -// node_modules/@antv/g2plot/esm/utils/view.js -function findViewById(chart, id) { - return chart.views.find(function(view) { - return view.id === id; - }); -} -function getViews(view) { - var parent = view.parent; - return parent ? parent.views : []; -} -function getSiblingViews(view) { - return getViews(view).filter(function(sub6) { - return sub6 !== view; - }); -} - -// node_modules/@antv/g2plot/esm/utils/label.js -function transformLabel(labelOptions) { - if (!is_type_default(labelOptions, "Object")) { - return labelOptions; - } - var label17 = __assign({}, labelOptions); - if (label17.formatter && !label17.content) { - label17.content = label17.formatter; - } - return label17; -} - -// node_modules/@antv/g2plot/esm/utils/path.js -function points2Path(points, isInCircle) { - var path = []; - if (points.length) { - path.push(["M", points[0].x, points[0].y]); - for (var i4 = 1, length_1 = points.length; i4 < length_1; i4 += 1) { - var item = points[i4]; - path.push(["L", item.x, item.y]); - } - if (isInCircle) { - path.push(["Z"]); - } - } - return path; -} -var smoothBezier3 = function(points, smooth, isLoop, constraint) { - var cps = []; - var prevPoint; - var nextPoint; - var hasConstraint = !!constraint; - var min7; - var max8; - if (hasConstraint) { - min7 = [Infinity, Infinity]; - max8 = [-Infinity, -Infinity]; - for (var i4 = 0, l4 = points.length; i4 < l4; i4++) { - var point2 = points[i4]; - min7 = vec2_exports.min([0, 0], min7, point2); - max8 = vec2_exports.max([0, 0], max8, point2); - } - min7 = vec2_exports.min([0, 0], min7, constraint[0]); - max8 = vec2_exports.max([0, 0], max8, constraint[1]); - } - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var point2 = points[i4]; - if (isLoop) { - prevPoint = points[i4 ? i4 - 1 : len5 - 1]; - nextPoint = points[(i4 + 1) % len5]; - } else { - if (i4 === 0 || i4 === len5 - 1) { - cps.push(point2); - continue; - } else { - prevPoint = points[i4 - 1]; - nextPoint = points[i4 + 1]; - } - } - var v3 = [0, 0]; - v3 = vec2_exports.sub(v3, nextPoint, prevPoint); - v3 = vec2_exports.scale(v3, v3, smooth); - var d0 = vec2_exports.distance(point2, prevPoint); - var d1 = vec2_exports.distance(point2, nextPoint); - var sum = d0 + d1; - if (sum !== 0) { - d0 /= sum; - d1 /= sum; - } - var v1 = vec2_exports.scale([0, 0], v3, -d0); - var v22 = vec2_exports.scale([0, 0], v3, d1); - var cp0 = vec2_exports.add([0, 0], point2, v1); - var cp1 = vec2_exports.add([0, 0], point2, v22); - if (hasConstraint) { - cp0 = vec2_exports.max([0, 0], cp0, min7); - cp0 = vec2_exports.min([0, 0], cp0, max8); - cp1 = vec2_exports.max([0, 0], cp1, min7); - cp1 = vec2_exports.min([0, 0], cp1, max8); - } - cps.push(cp0); - cps.push(cp1); - } - if (isLoop) { - cps.push(cps.shift()); - } - return cps; -}; -function catmullRom2bezier2(crp, z3, constraint) { - var isLoop = !!z3; - var pointList = []; - for (var i4 = 0, l4 = crp.length; i4 < l4; i4 += 2) { - pointList.push([crp[i4], crp[i4 + 1]]); - } - var controlPointList = smoothBezier3(pointList, 0.4, isLoop, constraint); - var len5 = pointList.length; - var d1 = []; - var cp1; - var cp2; - var p4; - for (var i4 = 0; i4 < len5 - 1; i4++) { - cp1 = controlPointList[i4 * 2]; - cp2 = controlPointList[i4 * 2 + 1]; - p4 = pointList[i4 + 1]; - d1.push(["C", cp1[0], cp1[1], cp2[0], cp2[1], p4[0], p4[1]]); - } - if (isLoop) { - cp1 = controlPointList[len5]; - cp2 = controlPointList[len5 + 1]; - p4 = pointList[0]; - d1.push(["C", cp1[0], cp1[1], cp2[0], cp2[1], p4[0], p4[1]]); - } - return d1; -} -function getSplinePath2(points, isInCircle, constaint) { - var data3 = []; - var first = points[0]; - var prePoint = null; - if (points.length <= 2) { - return points2Path(points, isInCircle); - } - for (var i4 = 0, len5 = points.length; i4 < len5; i4++) { - var point2 = points[i4]; - if (!prePoint || !(prePoint.x === point2.x && prePoint.y === point2.y)) { - data3.push(point2.x); - data3.push(point2.y); - prePoint = point2; - } - } - var constraint = constaint || [ - [0, 0], - [1, 1] - ]; - var splinePath2 = catmullRom2bezier2(data3, isInCircle, constraint); - splinePath2.unshift(["M", first.x, first.y]); - return splinePath2; -} - -// node_modules/@antv/g2plot/esm/utils/deep-assign.js -var MAX_MIX_LEVEL2 = 5; -var toString4 = {}.toString; -var isType2 = function(value2, type2) { - return toString4.call(value2) === "[object " + type2 + "]"; -}; -var isArray = function(value2) { - return isType2(value2, "Array"); -}; -var isObjectLike2 = function(value2) { - return typeof value2 === "object" && value2 !== null; -}; -var isPlainObject2 = function(value2) { - if (!isObjectLike2(value2) || !isType2(value2, "Object")) { - return false; - } - var proto = value2; - while (Object.getPrototypeOf(proto) !== null) { - proto = Object.getPrototypeOf(proto); - } - return Object.getPrototypeOf(value2) === proto; -}; -var deep = function(dist4, src, level, maxLevel) { - level = level || 0; - maxLevel = maxLevel || MAX_MIX_LEVEL2; - for (var key in src) { - if (Object.prototype.hasOwnProperty.call(src, key)) { - var value2 = src[key]; - if (!value2) { - dist4[key] = value2; - } else { - if (isPlainObject2(value2)) { - if (!isPlainObject2(dist4[key])) { - dist4[key] = {}; - } - if (level < maxLevel) { - deep(dist4[key], value2, level + 1, maxLevel); - } else { - dist4[key] = src[key]; - } - } else if (isArray(value2)) { - dist4[key] = []; - dist4[key] = dist4[key].concat(value2); - } else { - dist4[key] = value2; - } - } - } - } -}; -var deepAssign = function(rst) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - for (var i4 = 0; i4 < args.length; i4 += 1) { - deep(rst, args[i4]); - } - return rst; -}; - -// node_modules/@antv/g2plot/esm/utils/kebab-case.js -function kebabCase(word2) { - if (!word2) { - return word2; - } - var result = word2.match(/(([A-Z]{0,1}[a-z]*[^A-Z])|([A-Z]{1}))/g); - return result.map(function(s4) { - return s4.toLowerCase(); - }).join("-"); -} - -// node_modules/@antv/g2plot/esm/utils/statistic.js -function adapteStyle(style) { - var styleObject = { - overflow: "hidden", - "white-space": "nowrap", - "text-overflow": "ellipsis", - display: "flex", - justifyContent: "center", - alignItems: "center" - }; - var shapeStyleKeys = [ - "stroke", - "lineWidth", - "shadowColor", - "strokeOpacity", - "shadowBlur", - "shadowOffsetX", - "shadowOffsetY", - "fill" - ]; - if (get_default(style, "fill")) { - styleObject["color"] = style["fill"]; - } - var _a6 = pick(style, shapeStyleKeys), shadowColor = _a6.shadowColor, _b = _a6.shadowBlur, shadowBlur = _b === void 0 ? 0 : _b, _c = _a6.shadowOffsetX, shadowOffsetX = _c === void 0 ? 0 : _c, _d = _a6.shadowOffsetY, shadowOffsetY = _d === void 0 ? 0 : _d; - styleObject["text-shadow"] = "" + [shadowColor, shadowOffsetX + "px", shadowOffsetY + "px", shadowBlur + "px"].join(" "); - var _e = pick(style, shapeStyleKeys), stroke = _e.stroke, _f = _e.lineWidth, lineWidth = _f === void 0 ? 0 : _f; - styleObject["-webkit-text-stroke"] = "" + [lineWidth + "px", stroke].join(" "); - each_default(style, function(v3, k4) { - if (["fontSize"].includes(k4) && is_number_default(v3)) { - styleObject[kebabCase(k4)] = v3 + "px"; - } else if (k4 && !shapeStyleKeys.includes(k4)) { - styleObject[kebabCase(k4)] = "" + v3; - } - }); - return styleObject; -} -function setStatisticContainerStyle(container2, style) { - container2.style["pointer-events"] = "none"; - each_default(style, function(v3, k4) { - if (k4 && v3) { - container2.style[k4] = v3; - } - }); -} -var renderStatistic = function(chart, options, datum) { - var statistic4 = options.statistic, plotType = options.plotType; - var titleOpt = statistic4.title, contentOpt = statistic4.content; - [titleOpt, contentOpt].forEach(function(option, idx) { - if (!option) { - return; - } - var transform18 = ""; - if (idx === 0) { - transform18 = contentOpt ? "translate(-50%, -100%)" : "translate(-50%, -50%)"; - } else { - transform18 = titleOpt ? "translate(-50%, 0)" : "translate(-50%, -50%)"; - } - var style = is_function_default(option.style) ? option.style(datum) : option.style; - chart.annotation().html(__assign({ - position: ["50%", "50%"], - html: function(container2, view) { - var coordinate11 = view.getCoordinate(); - var containerW = 0; - if (plotType === "pie" || plotType === "ring-progress") { - containerW = coordinate11.getRadius() * coordinate11.innerRadius * 2; - } else if (plotType === "liquid") { - var liquidShape = get_default(view.geometries, [0, "elements", 0, "shape"]); - if (liquidShape) { - var path = liquidShape.find(function(t4) { - return t4.get("name") === "wrap"; - }); - var width2 = path.getCanvasBBox().width; - containerW = width2; - } - } else if (!containerW) { - containerW = coordinate11.getWidth(); - } - setStatisticContainerStyle(container2, __assign({ width: containerW + "px", transform: transform18 }, adapteStyle(style))); - var filteredData = view.getData(); - if (option.customHtml) { - return option.customHtml(container2, view, datum, filteredData); - } - var text = option.content; - if (option.formatter) { - text = option.formatter(datum, filteredData); - } - return text ? is_string_default(text) ? text : "" + text : "
    "; - }, - key: (idx === 0 ? "top" : "bottom") + "-statistic" - }, pick(option, ["offsetX", "offsetY", "rotate", "style", "formatter"]))); - }); -}; -var renderGaugeStatistic = function(chart, options, datum) { - var statistic4 = options.statistic; - var titleOpt = statistic4.title, contentOpt = statistic4.content; - [titleOpt, contentOpt].forEach(function(option) { - if (!option) { - return; - } - var style = is_function_default(option.style) ? option.style(datum) : option.style; - chart.annotation().html(__assign({ position: ["50%", "100%"], html: function(container2, view) { - var coordinate11 = view.getCoordinate(); - var polarCoord = view.views[0].getCoordinate(); - var polarCenter = polarCoord.getCenter(); - var polarRadius = polarCoord.getRadius(); - var polarMaxY = Math.max(Math.sin(polarCoord.startAngle), Math.sin(polarCoord.endAngle)) * polarRadius; - var offsetY = polarCenter.y + polarMaxY - coordinate11.y.start - parseFloat(get_default(style, "fontSize", 0)); - var containerWidth = coordinate11.getRadius() * coordinate11.innerRadius * 2; - setStatisticContainerStyle(container2, __assign({ width: containerWidth + "px", transform: "translate(-50%, " + offsetY + "px)" }, adapteStyle(style))); - var filteredData = view.getData(); - if (option.customHtml) { - return option.customHtml(container2, view, datum, filteredData); - } - var text = option.content; - if (option.formatter) { - text = option.formatter(datum, filteredData); - } - return text ? is_string_default(text) ? text : "" + text : "
    "; - } }, pick(option, ["offsetX", "offsetY", "rotate", "style", "formatter"]))); - }); -}; - -// node_modules/@antv/g2plot/esm/utils/context.js -var ctx3; -function getCanvasContext2() { - if (!ctx3) { - ctx3 = document.createElement("canvas").getContext("2d"); - } - return ctx3; -} - -// node_modules/@antv/g2plot/esm/utils/measure-text.js -var measureTextWidth2 = memoize_default(function(text, font) { - if (font === void 0) { - font = {}; - } - var fontSize = font.fontSize, _a6 = font.fontFamily, fontFamily = _a6 === void 0 ? "sans-serif" : _a6, fontWeight = font.fontWeight, fontStyle = font.fontStyle, fontVariant = font.fontVariant; - var ctx4 = getCanvasContext2(); - ctx4.font = [fontStyle, fontWeight, fontVariant, fontSize + "px", fontFamily].join(" "); - var metrics = ctx4.measureText(is_string_default(text) ? text : ""); - return metrics.width; -}, function(text, font) { - if (font === void 0) { - font = {}; - } - return __spreadArrays([text], values_default(font)).join(""); -}); - -// node_modules/@antv/g2plot/esm/utils/number.js -function isRealNumber(v3) { - return typeof v3 === "number" && !isNaN(v3); -} -function isBetween3(value2, start, end2) { - var min7 = Math.min(start, end2); - var max8 = Math.max(start, end2); - return value2 >= min7 && value2 <= max8; -} - -// node_modules/@antv/g2plot/esm/utils/data.js -function adjustYMetaByZero(data3, field6) { - if (!data3) - return {}; - var numberData = data3.filter(function(datum) { - var v3 = get_default(datum, [field6]); - return is_number_default(v3) && !isNaN(v3); - }); - var gtZero = numberData.every(function(datum) { - return get_default(datum, [field6]) >= 0; - }); - var ltZero = numberData.every(function(datum) { - return get_default(datum, [field6]) <= 0; - }); - if (gtZero) { - return { min: 0 }; - } - if (ltZero) { - return { max: 0 }; - } - return {}; -} -function transformDataToNodeLinkData(data3, sourceField, targetField, weightField, rawFields) { - if (rawFields === void 0) { - rawFields = []; - } - if (!Array.isArray(data3)) { - return { - nodes: [], - links: [] - }; - } - var links = []; - var nodesMap = {}; - var nodesIndex = -1; - data3.forEach(function(datum) { - var source = datum[sourceField]; - var target = datum[targetField]; - var weight = datum[weightField]; - var rawData = pick(datum, rawFields); - if (!nodesMap[source]) { - nodesMap[source] = __assign({ id: ++nodesIndex, name: source }, rawData); - } - if (!nodesMap[target]) { - nodesMap[target] = __assign({ id: ++nodesIndex, name: target }, rawData); - } - links.push(__assign({ - source: nodesMap[source].id, - target: nodesMap[target].id, - value: weight - }, rawData)); - }); - return { - nodes: Object.values(nodesMap).sort(function(a4, b10) { - return a4.id - b10.id; - }), - links - }; -} -function processIllegalData(data3, field6) { - var processData2 = filter_default(data3, function(d3) { - var v3 = d3[field6]; - return v3 === null || typeof v3 === "number" && !isNaN(v3); - }); - log2(LEVEL.WARN, processData2.length === data3.length, "illegal data existed in chart data."); - return processData2; -} - -// node_modules/@antv/g2plot/esm/utils/padding.js -function normalPadding(padding3) { - if (is_number_default(padding3)) { - return [padding3, padding3, padding3, padding3]; - } - if (is_array_default(padding3)) { - var length_1 = padding3.length; - if (length_1 === 1) { - return [padding3[0], padding3[0], padding3[0], padding3[0]]; - } - if (length_1 === 2) { - return [padding3[0], padding3[1], padding3[0], padding3[1]]; - } - if (length_1 === 3) { - return [padding3[0], padding3[1], padding3[2], padding3[1]]; - } - if (length_1 === 4) { - return padding3; - } - } - return [0, 0, 0, 0]; -} -function getAdjustAppendPadding(padding3, position2, append) { - if (position2 === void 0) { - position2 = "bottom"; - } - if (append === void 0) { - append = 25; - } - var currentAppendPadding = normalPadding(padding3); - var PADDING2 = [ - position2.startsWith("top") ? append : 0, - position2.startsWith("right") ? append : 0, - position2.startsWith("bottom") ? append : 0, - position2.startsWith("left") ? append : 0 - ]; - return [ - currentAppendPadding[0] + PADDING2[0], - currentAppendPadding[1] + PADDING2[1], - currentAppendPadding[2] + PADDING2[2], - currentAppendPadding[3] + PADDING2[3] - ]; -} -function resolveAllPadding(paddings) { - var normalPaddings = paddings.map(function(item) { - return normalPadding(item); - }); - var finalPadding = [0, 0, 0, 0]; - if (normalPaddings.length > 0) { - finalPadding = finalPadding.map(function(item, index2) { - normalPaddings.forEach(function(d3, i4) { - item += normalPaddings[i4][index2]; - }); - return item; - }); - } - return finalPadding; -} - -// node_modules/@antv/g2plot/esm/core/global.js -var GLOBAL = { - locale: "en-US" -}; - -// node_modules/@antv/g2plot/esm/core/locale.js -var LocaleMap = {}; -function registerLocale(locale, localeObj) { - LocaleMap[locale] = localeObj; -} -function getLocale(locale) { - return { - get: function(key, obj) { - return template(get_default(LocaleMap[locale], key) || get_default(LocaleMap[GLOBAL.locale], key) || get_default(LocaleMap["en-US"], key) || key, obj); - } - }; -} - -// node_modules/@antv/g2plot/esm/locales/en_US.js -var EN_US_LOCALE = { - locale: "en-US", - general: { - increase: "Increase", - decrease: "Decrease", - root: "Root" - }, - statistic: { - total: "Total" - }, - conversionTag: { - label: "Rate" - }, - legend: {}, - tooltip: {}, - slider: {}, - scrollbar: {}, - waterfall: { - total: "Total" - } -}; - -// node_modules/@antv/g2plot/esm/locales/zh_CN.js -var ZH_CN_LOCALE = { - locale: "zh-CN", - general: { - increase: "\u589E\u52A0", - decrease: "\u51CF\u5C11", - root: "\u521D\u59CB" - }, - statistic: { - total: "\u603B\u8BA1" - }, - conversionTag: { - label: "\u8F6C\u5316\u7387" - }, - legend: {}, - tooltip: {}, - slider: {}, - scrollbar: {}, - waterfall: { - total: "\u603B\u8BA1" - } -}; - -// node_modules/@antv/g2plot/esm/core/plot.js -var import_size_sensor = __toModule(require_lib()); -var SOURCE_ATTRIBUTE_NAME = "data-chart-source-type"; -var PLOT_CONTAINER_OPTIONS = [ - "padding", - "appendPadding", - "renderer", - "pixelRatio", - "syncViewPadding", - "supportCSSTransform", - "limitInPlot" -]; -var Plot = function(_super) { - __extends(Plot2, _super); - function Plot2(container2, options) { - var _this = _super.call(this) || this; - _this.container = typeof container2 === "string" ? document.getElementById(container2) : container2; - _this.options = deepAssign({}, _this.getDefaultOptions(), options); - _this.createG2(); - _this.bindEvents(); - return _this; - } - Plot2.getDefaultOptions = function() { - return { - renderer: "canvas", - xAxis: { - nice: true, - label: { - autoRotate: false, - autoHide: { type: "equidistance", cfg: { minGap: 6 } } - } - }, - yAxis: { - nice: true, - label: { - autoHide: true, - autoRotate: false - } - }, - animation: true - }; - }; - Plot2.prototype.createG2 = function() { - var _a6 = this.options, width2 = _a6.width, height = _a6.height, defaultInteractions = _a6.defaultInteractions; - this.chart = new chart_default(__assign(__assign(__assign(__assign({ container: this.container, autoFit: false }, this.getChartSize(width2, height)), { localRefresh: false }), pick(this.options, PLOT_CONTAINER_OPTIONS)), { defaultInteractions })); - this.container.setAttribute(SOURCE_ATTRIBUTE_NAME, "G2Plot"); - }; - Plot2.prototype.getChartSize = function(width2, height) { - var chartSize = getContainerSize(this.container); - return { width: width2 || chartSize.width || 400, height: height || chartSize.height || 400 }; - }; - Plot2.prototype.bindEvents = function() { - var _this = this; - if (this.chart) { - this.chart.on("*", function(e4) { - if (e4 === null || e4 === void 0 ? void 0 : e4.type) { - _this.emit(e4.type, e4); - } - }); - } - }; - Plot2.prototype.getDefaultOptions = function() { - return Plot2.getDefaultOptions(); - }; - Plot2.prototype.render = function() { - this.chart.clear(); - this.chart.options = { - data: [], - animate: true - }; - this.chart.views = []; - this.execAdaptor(); - this.chart.render(); - this.bindSizeSensor(); - }; - Plot2.prototype.update = function(options) { - this.updateOption(options); - this.render(); - }; - Plot2.prototype.updateOption = function(options) { - this.options = deepAssign({}, this.options, options); - }; - Plot2.prototype.setState = function(type2, condition, status) { - if (status === void 0) { - status = true; - } - var elements = getAllElementsRecursively(this.chart); - each_default(elements, function(ele) { - if (condition(ele.getData())) { - ele.setState(type2, status); - } - }); - }; - Plot2.prototype.getStates = function() { - var elements = getAllElementsRecursively(this.chart); - var stateObjects = []; - each_default(elements, function(element) { - var data3 = element.getData(); - var states = element.getStates(); - each_default(states, function(state2) { - stateObjects.push({ data: data3, state: state2, geometry: element.geometry, element }); - }); - }); - return stateObjects; - }; - Plot2.prototype.changeData = function(data3) { - this.update({ data: data3 }); - }; - Plot2.prototype.changeSize = function(width2, height) { - this.chart.changeSize(width2, height); - }; - Plot2.prototype.addAnnotations = function(annotations) { - var incoming = __spreadArrays(annotations); - var controller = this.chart.getController("annotation"); - var current = controller.getComponents().map(function(co) { - return co.extra; - }); - controller.clear(true); - var _loop_1 = function(i5) { - var annotation4 = current[i5]; - var findIndex2 = incoming.findIndex(function(item) { - return item.id && item.id === annotation4.id; - }); - if (findIndex2 !== -1) { - annotation4 = deepAssign({}, annotation4, incoming[findIndex2]); - incoming.splice(findIndex2, 1); - } - controller.annotation(annotation4); - }; - for (var i4 = 0; i4 < current.length; i4++) { - _loop_1(i4); - } - incoming.forEach(function(annotation4) { - return controller.annotation(annotation4); - }); - this.chart.render(true); - }; - Plot2.prototype.removeAnnotations = function(annotations) { - var controller = this.chart.getController("annotation"); - var current = controller.getComponents().map(function(co) { - return co.extra; - }); - controller.clear(true); - var _loop_2 = function(i5) { - var annotation4 = current[i5]; - if (!annotations.find(function(item) { - return item.id && item.id === annotation4.id; - })) { - controller.annotation(annotation4); - } - }; - for (var i4 = 0; i4 < current.length; i4++) { - _loop_2(i4); - } - this.chart.render(true); - }; - Plot2.prototype.destroy = function() { - this.unbindSizeSensor(); - this.chart.destroy(); - this.off(); - this.container.removeAttribute(SOURCE_ATTRIBUTE_NAME); - }; - Plot2.prototype.execAdaptor = function() { - var adaptor36 = this.getSchemaAdaptor(); - var _a6 = this.options, padding3 = _a6.padding, appendPadding = _a6.appendPadding; - this.chart.padding = padding3; - this.chart.appendPadding = appendPadding; - adaptor36({ - chart: this.chart, - options: this.options - }); - }; - Plot2.prototype.triggerResize = function() { - this.chart.forceFit(); - }; - Plot2.prototype.bindSizeSensor = function() { - var _this = this; - if (this.unbind) { - return; - } - var _a6 = this.options.autoFit, autoFit = _a6 === void 0 ? true : _a6; - if (autoFit) { - this.unbind = (0, import_size_sensor.bind)(this.container, function() { - var _a7 = getContainerSize(_this.container), width2 = _a7.width, height = _a7.height; - if (width2 !== _this.chart.width || height !== _this.chart.height) { - _this.triggerResize(); - } - }); - } - }; - Plot2.prototype.unbindSizeSensor = function() { - if (this.unbind) { - this.unbind(); - this.unbind = void 0; - } - }; - return Plot2; -}(esm_default); - -// node_modules/@antv/g2plot/esm/constant.js -var AXIS_META_CONFIG_KEYS = [ - "type", - "alias", - "tickCount", - "tickInterval", - "min", - "max", - "nice", - "minLimit", - "maxLimit", - "range", - "tickMethod", - "base", - "exponent", - "mask", - "sync" -]; - -// node_modules/@antv/g2plot/esm/utils/pattern/util.js -function getPixelRatio2() { - return typeof window === "object" ? window === null || window === void 0 ? void 0 : window.devicePixelRatio : 2; -} -function initCanvas(width2, height) { - if (height === void 0) { - height = width2; - } - var canvas = document.createElement("canvas"); - var pixelRatio = getPixelRatio2(); - canvas.width = width2 * pixelRatio; - canvas.height = height * pixelRatio; - canvas.style.width = width2 + "px"; - canvas.style.height = height + "px"; - var ctx4 = canvas.getContext("2d"); - ctx4.scale(pixelRatio, pixelRatio); - return canvas; -} -function drawBackground(context, cfg, width2, height) { - if (height === void 0) { - height = width2; - } - var backgroundColor = cfg.backgroundColor, opacity = cfg.opacity; - context.globalAlpha = opacity; - context.fillStyle = backgroundColor; - context.beginPath(); - context.fillRect(0, 0, width2, height); - context.closePath(); -} -function getUnitPatternSize(size2, padding3, isStagger) { - var unitSize = size2 + padding3; - return isStagger ? unitSize * 2 : unitSize; -} -function getSymbolsPosition(unitSize, isStagger) { - var symbolsPos = isStagger ? [ - [unitSize * (1 / 4), unitSize * (1 / 4)], - [unitSize * (3 / 4), unitSize * (3 / 4)] - ] : [[unitSize * (1 / 2), unitSize * (1 / 2)]]; - return symbolsPos; -} -function transformMatrix(dpr, rotation) { - var radian = rotation * Math.PI / 180; - var matrix = { - a: Math.cos(radian) * (1 / dpr), - b: Math.sin(radian) * (1 / dpr), - c: -Math.sin(radian) * (1 / dpr), - d: Math.cos(radian) * (1 / dpr), - e: 0, - f: 0 - }; - return matrix; -} - -// node_modules/@antv/g2plot/esm/utils/pattern/dot.js -var defaultDotPatternCfg = { - size: 6, - padding: 2, - backgroundColor: "transparent", - opacity: 1, - rotation: 0, - fill: "#fff", - fillOpacity: 0.5, - stroke: "transparent", - lineWidth: 0, - isStagger: true -}; -function drawDot(context, cfg, x6, y5) { - var size2 = cfg.size, fill = cfg.fill, lineWidth = cfg.lineWidth, stroke = cfg.stroke, fillOpacity = cfg.fillOpacity; - context.beginPath(); - context.globalAlpha = fillOpacity; - context.fillStyle = fill; - context.strokeStyle = stroke; - context.lineWidth = lineWidth; - context.arc(x6, y5, size2 / 2, 0, 2 * Math.PI, false); - context.fill(); - if (lineWidth) { - context.stroke(); - } - context.closePath(); -} -function createDotPattern(cfg) { - var dotCfg = deepAssign({}, defaultDotPatternCfg, cfg); - var size2 = dotCfg.size, padding3 = dotCfg.padding, isStagger = dotCfg.isStagger, rotation = dotCfg.rotation; - var unitSize = getUnitPatternSize(size2, padding3, isStagger); - var dots = getSymbolsPosition(unitSize, isStagger); - var canvas = initCanvas(unitSize, unitSize); - var ctx4 = canvas.getContext("2d"); - drawBackground(ctx4, dotCfg, unitSize); - for (var _i = 0, dots_1 = dots; _i < dots_1.length; _i++) { - var _a6 = dots_1[_i], x6 = _a6[0], y5 = _a6[1]; - drawDot(ctx4, dotCfg, x6, y5); - } - var pattern2 = ctx4.createPattern(canvas, "repeat"); - if (pattern2) { - var dpr = getPixelRatio2(); - var matrix = transformMatrix(dpr, rotation); - pattern2.setTransform(matrix); - } - return pattern2; -} - -// node_modules/@antv/g2plot/esm/utils/pattern/line.js -var defaultLinePatternCfg = { - rotation: 45, - spacing: 5, - opacity: 1, - backgroundColor: "transparent", - strokeOpacity: 0.5, - stroke: "#fff", - lineWidth: 2 -}; -function drawLine(context, cfg, d3) { - var stroke = cfg.stroke, lineWidth = cfg.lineWidth, strokeOpacity = cfg.strokeOpacity; - var path = new Path2D(d3); - context.globalAlpha = strokeOpacity; - context.lineCap = "square"; - context.strokeStyle = lineWidth ? stroke : "transparent"; - context.lineWidth = lineWidth; - context.stroke(path); -} -function createLinePattern(cfg) { - var lineCfg = deepAssign({}, defaultLinePatternCfg, cfg); - var spacing = lineCfg.spacing, rotation = lineCfg.rotation, lineWidth = lineCfg.lineWidth; - var width2 = spacing + lineWidth || 1; - var height = spacing + lineWidth || 1; - var d3 = "\n M 0 0 L " + width2 + " 0\n M 0 " + height + " L " + width2 + " " + height + "\n "; - var canvas = initCanvas(width2, height); - var ctx4 = canvas.getContext("2d"); - drawBackground(ctx4, lineCfg, width2, height); - drawLine(ctx4, lineCfg, d3); - var pattern2 = ctx4.createPattern(canvas, "repeat"); - if (pattern2) { - var dpr = getPixelRatio2(); - var matrix = transformMatrix(dpr, rotation); - pattern2.setTransform(matrix); - } - return pattern2; -} - -// node_modules/@antv/g2plot/esm/utils/pattern/square.js -var defaultSquarePatternCfg = { - size: 6, - padding: 1, - isStagger: true, - backgroundColor: "transparent", - opacity: 1, - rotation: 0, - fill: "#fff", - fillOpacity: 0.5, - stroke: "transparent", - lineWidth: 0 -}; -function drawSquare(context, cfg, x6, y5) { - var stroke = cfg.stroke, size2 = cfg.size, fill = cfg.fill, lineWidth = cfg.lineWidth, fillOpacity = cfg.fillOpacity; - context.globalAlpha = fillOpacity; - context.strokeStyle = stroke; - context.lineWidth = lineWidth; - context.fillStyle = fill; - context.strokeRect(x6 - size2 / 2, y5 - size2 / 2, size2, size2); - context.fillRect(x6 - size2 / 2, y5 - size2 / 2, size2, size2); -} -function createSquarePattern(cfg) { - var squareCfg = deepAssign({}, defaultSquarePatternCfg, cfg); - var size2 = squareCfg.size, padding3 = squareCfg.padding, isStagger = squareCfg.isStagger, rotation = squareCfg.rotation; - var unitSize = getUnitPatternSize(size2, padding3, isStagger); - var squares = getSymbolsPosition(unitSize, isStagger); - var canvas = initCanvas(unitSize, unitSize); - var ctx4 = canvas.getContext("2d"); - drawBackground(ctx4, squareCfg, unitSize); - for (var _i = 0, squares_1 = squares; _i < squares_1.length; _i++) { - var _a6 = squares_1[_i], x6 = _a6[0], y5 = _a6[1]; - drawSquare(ctx4, squareCfg, x6, y5); - } - var pattern2 = ctx4.createPattern(canvas, "repeat"); - if (pattern2) { - var dpr = getPixelRatio2(); - var matrix = transformMatrix(dpr, rotation); - pattern2.setTransform(matrix); - } - return pattern2; -} - -// node_modules/@antv/g2plot/esm/utils/pattern/index.js -function getCanvasPattern(options) { - var type2 = options.type, cfg = options.cfg; - var pattern2; - switch (type2) { - case "dot": - pattern2 = createDotPattern(cfg); - break; - case "line": - pattern2 = createLinePattern(cfg); - break; - case "square": - pattern2 = createSquarePattern(cfg); - break; - default: - break; - } - return pattern2; -} - -// node_modules/@antv/g2plot/esm/adaptor/pattern.js -function pattern(key) { - var _this = this; - return function(params) { - var _a6; - var options = params.options, chart = params.chart; - var patternOption = options.pattern; - if (!patternOption) { - return params; - } - var style = function(datum) { - var _a7, _b, _c; - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var defaultColor = chart.getTheme().defaultColor; - var color4 = defaultColor; - var colorAttribute = (_b = (_a7 = chart.geometries) === null || _a7 === void 0 ? void 0 : _a7[0]) === null || _b === void 0 ? void 0 : _b.getAttribute("color"); - if (colorAttribute) { - var colorField = colorAttribute.getFields()[0]; - var seriesValue = get_default(datum, colorField); - color4 = Util.getMappingValue(colorAttribute, seriesValue, ((_c = colorAttribute.values) === null || _c === void 0 ? void 0 : _c[0]) || defaultColor); - } - var pattern2 = patternOption; - if (typeof patternOption === "function") { - pattern2 = patternOption.call(_this, datum, color4); - } - if (pattern2 instanceof CanvasPattern === false) { - pattern2 = getCanvasPattern(deepAssign({}, { cfg: { backgroundColor: color4 } }, pattern2)); - } - var styleOption = options[key]; - return __assign(__assign({}, typeof styleOption === "function" ? styleOption.call.apply(styleOption, __spreadArrays([_this, datum], args)) : styleOption || {}), { fill: pattern2 || color4 }); - }; - return deepAssign({}, params, { options: (_a6 = {}, _a6[key] = style, _a6) }); - }; -} - -// node_modules/@antv/g2plot/esm/adaptor/common.js -function legend(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, colorField = options.colorField, seriesField = options.seriesField; - if (legend18 === false) { - chart.legend(false); - } else if (colorField || seriesField) { - chart.legend(colorField || seriesField, legend18); - } - return params; -} -function tooltip(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip; - if (tooltip10 !== void 0) { - chart.tooltip(tooltip10); - } - return params; -} -function interaction(params) { - var chart = params.chart, options = params.options; - var interactions = options.interactions; - each_default(interactions, function(i4) { - if (i4.enable === false) { - chart.removeInteraction(i4.type); - } else { - chart.interaction(i4.type, i4.cfg || {}); - } - }); - return params; -} -function animation(params) { - var chart = params.chart, options = params.options; - var animation7 = options.animation; - if (typeof animation7 === "boolean") { - chart.animate(animation7); - } else { - chart.animate(true); - } - each_default(chart.geometries, function(g4) { - g4.animate(animation7); - }); - return params; -} -function theme(params) { - var chart = params.chart, options = params.options; - var theme4 = options.theme; - if (theme4) { - chart.theme(theme4); - } - return params; -} -function state(params) { - var chart = params.chart, options = params.options; - var state2 = options.state; - if (state2) { - each_default(chart.geometries, function(geometry35) { - geometry35.state(state2); - }); - } - return params; -} -function slider(params) { - var chart = params.chart, options = params.options; - var slider3 = options.slider; - chart.option("slider", slider3); - return params; -} -function scrollbar(params) { - var chart = params.chart, options = params.options; - var scrollbar2 = options.scrollbar; - chart.option("scrollbar", scrollbar2); - return params; -} -function scale7(axes, meta23) { - return function(params) { - var chart = params.chart, options = params.options; - var scales = {}; - each_default(axes, function(axis22, field6) { - scales[field6] = pick(axis22, AXIS_META_CONFIG_KEYS); - }); - scales = deepAssign({}, meta23, options.meta, scales); - chart.scale(scales); - return params; - }; -} -function annotation(annotationOptions) { - return function(params) { - var chart = params.chart, options = params.options; - var annotationController = chart.getController("annotation"); - each_default(__spreadArrays(options.annotations || [], annotationOptions || []), function(annotationOption) { - annotationController.annotation(annotationOption); - }); - return params; - }; -} -function limitInPlot2(params) { - var chart = params.chart, options = params.options; - var yAxis = options.yAxis, limitInPlot5 = options.limitInPlot; - var value2 = limitInPlot5; - if (is_object_default(yAxis) && is_nil_default(limitInPlot5)) { - if (Object.values(pick(yAxis, ["min", "max", "minLimit", "maxLimit"])).some(function(value3) { - return !is_nil_default(value3); - })) { - value2 = true; - } else { - value2 = false; - } - } - chart.limitInPlot = value2; - return params; -} - -// node_modules/@antv/g2plot/esm/utils/tooltip.js -function getTooltipMapping(tooltip10, defaultFields) { - if (tooltip10 === false) { - return { - fields: false - }; - } - var fields = get_default(tooltip10, "fields"); - var formatter = get_default(tooltip10, "formatter"); - if (formatter && !fields) { - fields = defaultFields; - } - return { - fields, - formatter - }; -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/base.js -function getMappingField(o3, field6) { - var type2 = o3.type, xField = o3.xField, yField = o3.yField, colorField = o3.colorField, shapeField = o3.shapeField, sizeField = o3.sizeField, styleField = o3.styleField, _a6 = o3.rawFields, rawFields = _a6 === void 0 ? [] : _a6; - var fields = []; - if (field6 === "color") { - fields = __spreadArrays([colorField || xField], rawFields); - } else if (field6 === "shape") { - fields = __spreadArrays([shapeField || xField], rawFields); - } else if (field6 === "size") { - fields = __spreadArrays([sizeField || xField], rawFields); - } else { - fields = __spreadArrays([xField, yField, colorField, shapeField, sizeField, styleField], rawFields); - var idx = ["x", "y", "color", "shape", "size", "style"].indexOf(field6); - var f3 = fields[idx]; - fields.splice(idx, 1); - fields.unshift(f3); - } - var mappingFields = uniq(fields.filter(function(f4) { - return !!f4; - })); - var tileMappingField = type2 === "line" && [xField, yField].includes(mappingFields.join("*")) ? "" : mappingFields.join("*"); - return { - mappingFields, - tileMappingField - }; -} -function getMappingFunction(mappingFields, func) { - if (!func) - return void 0; - return function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var params = {}; - mappingFields.forEach(function(f3, idx) { - params[f3] = args[idx]; - }); - delete params["undefined"]; - return func(params); - }; -} -function geometry(params) { - var chart = params.chart, options = params.options; - var type2 = options.type, args = options.args, mapping = options.mapping, xField = options.xField, yField = options.yField, colorField = options.colorField, shapeField = options.shapeField, sizeField = options.sizeField, tooltipFields = options.tooltipFields, label17 = options.label, state2 = options.state, customInfo = options.customInfo; - if (!mapping) { - return params; - } - var color4 = mapping.color, shape = mapping.shape, size2 = mapping.size, style = mapping.style, tooltip10 = mapping.tooltip; - var geometry35 = chart[type2](args).position(xField + "*" + yField); - if (is_string_default(color4)) { - colorField ? geometry35.color(colorField, color4) : geometry35.color(color4); - } else if (is_function_default(color4)) { - var _a6 = getMappingField(options, "color"), mappingFields = _a6.mappingFields, tileMappingField = _a6.tileMappingField; - geometry35.color(tileMappingField, getMappingFunction(mappingFields, color4)); - } else { - colorField && geometry35.color(colorField, color4); - } - if (is_string_default(shape)) { - shapeField ? geometry35.shape(shapeField, [shape]) : geometry35.shape(shape); - } else if (is_function_default(shape)) { - var _b = getMappingField(options, "shape"), mappingFields = _b.mappingFields, tileMappingField = _b.tileMappingField; - geometry35.shape(tileMappingField, getMappingFunction(mappingFields, shape)); - } else { - shapeField && geometry35.shape(shapeField, shape); - } - if (is_number_default(size2)) { - sizeField ? geometry35.size(sizeField, size2) : geometry35.size(size2); - } else if (is_function_default(size2)) { - var _c = getMappingField(options, "size"), mappingFields = _c.mappingFields, tileMappingField = _c.tileMappingField; - geometry35.size(tileMappingField, getMappingFunction(mappingFields, size2)); - } else { - sizeField && geometry35.size(sizeField, size2); - } - if (is_function_default(style)) { - var _d = getMappingField(options, "style"), mappingFields = _d.mappingFields, tileMappingField = _d.tileMappingField; - geometry35.style(tileMappingField, getMappingFunction(mappingFields, style)); - } else if (is_object_default(style)) { - geometry35.style(style); - } - if (tooltipFields === false) { - geometry35.tooltip(false); - } else if (!is_empty_default(tooltipFields)) { - geometry35.tooltip(tooltipFields.join("*"), getMappingFunction(tooltipFields, tooltip10)); - } - if (label17 === false) { - geometry35.label(false); - } else if (label17) { - var callback = label17.callback, fields = label17.fields, cfg = __rest(label17, ["callback", "fields"]); - geometry35.label({ - fields: fields || [yField], - callback, - cfg: transformLabel(cfg) - }); - } - if (state2) { - geometry35.state(state2); - } - if (customInfo) { - geometry35.customInfo(customInfo); - } - [xField, yField].filter(function(f3) { - return f3 !== colorField; - }).forEach(function(f3) { - chart.legend(f3, false); - }); - return __assign(__assign({}, params), { - ext: { geometry: geometry35 } - }); -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/area.js -function area(params) { - var options = params.options; - var area2 = options.area, xField = options.xField, yField = options.yField, seriesField = options.seriesField, smooth = options.smooth, tooltip10 = options.tooltip; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField]), fields = _a6.fields, formatter = _a6.formatter; - return area2 ? geometry(deepAssign({}, params, { - options: { - type: "area", - colorField: seriesField, - tooltipFields: fields, - mapping: __assign({ shape: smooth ? "smooth" : "area", tooltip: formatter }, area2) - } - })) : params; -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/line.js -function line(params) { - var options = params.options; - var line2 = options.line, stepType = options.stepType, xField = options.xField, yField = options.yField, seriesField = options.seriesField, smooth = options.smooth, connectNulls = options.connectNulls, tooltip10 = options.tooltip; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField]), fields = _a6.fields, formatter = _a6.formatter; - return line2 ? geometry(deepAssign({}, params, { - options: { - type: "line", - colorField: seriesField, - tooltipFields: fields, - mapping: deep_mix_default({ - shape: stepType || (smooth ? "smooth" : "line"), - tooltip: formatter - }, line2), - args: { connectNulls } - } - })) : params; -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/point.js -function point(params) { - var options = params.options; - var point2 = options.point, xField = options.xField, yField = options.yField, seriesField = options.seriesField, sizeField = options.sizeField, shapeField = options.shapeField, tooltip10 = options.tooltip; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField, sizeField, shapeField]), fields = _a6.fields, formatter = _a6.formatter; - return point2 ? geometry(deepAssign({}, params, { - options: { - type: "point", - colorField: seriesField, - shapeField, - tooltipFields: fields, - mapping: __assign({ tooltip: formatter }, point2) - } - })) : params; -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/interval.js -function otherAdaptor(params) { - var chart = params.chart, options = params.options, ext = params.ext; - var seriesField = options.seriesField, isGroup = options.isGroup, isStack = options.isStack, marginRatio = options.marginRatio, widthRatio = options.widthRatio, groupField = options.groupField, theme4 = options.theme; - var adjust4 = []; - if (seriesField) { - if (isGroup) { - adjust4.push({ - type: "dodge", - dodgeBy: groupField || seriesField, - marginRatio - }); - } - if (isStack) { - adjust4.push({ - type: "stack", - marginRatio - }); - } - } - if (adjust4.length && (ext === null || ext === void 0 ? void 0 : ext.geometry)) { - var g4 = ext === null || ext === void 0 ? void 0 : ext.geometry; - g4.adjust(adjust4); - } - if (!is_nil_default(widthRatio)) { - chart.theme(deepAssign({}, is_object_default(theme4) ? theme4 : getTheme(theme4), { - columnWidthRatio: widthRatio - })); - } - return params; -} -function interval2(params) { - var options = params.options; - var xField = options.xField, yField = options.yField, interval3 = options.interval, seriesField = options.seriesField, tooltip10 = options.tooltip, minColumnWidth = options.minColumnWidth, maxColumnWidth = options.maxColumnWidth, columnBackground = options.columnBackground, dodgePadding = options.dodgePadding, intervalPadding = options.intervalPadding; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField]), fields = _a6.fields, formatter = _a6.formatter; - var ext = (interval3 ? geometry(deepAssign({}, params, { - options: { - type: "interval", - colorField: seriesField, - tooltipFields: fields, - mapping: __assign({ tooltip: formatter }, interval3), - args: { dodgePadding, intervalPadding, minColumnWidth, maxColumnWidth, background: columnBackground } - } - })) : params).ext; - return otherAdaptor(__assign(__assign({}, params), { ext })); -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/polygon.js -function polygon(params) { - var options = params.options; - var polygon2 = options.polygon, xField = options.xField, yField = options.yField, seriesField = options.seriesField, tooltip10 = options.tooltip; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField]), fields = _a6.fields, formatter = _a6.formatter; - return polygon2 ? geometry(deepAssign({}, params, { - options: { - type: "polygon", - colorField: seriesField, - tooltipFields: fields, - mapping: __assign({ tooltip: formatter }, polygon2) - } - })) : params; -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/edge.js -function edge(params) { - var options = params.options; - var edge2 = options.edge, xField = options.xField, yField = options.yField, seriesField = options.seriesField, tooltip10 = options.tooltip; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField]), fields = _a6.fields, formatter = _a6.formatter; - return edge2 ? geometry(deepAssign({}, params, { - options: { - type: "edge", - colorField: seriesField, - tooltipFields: fields, - mapping: __assign({ tooltip: formatter }, edge2) - } - })) : params; -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/schema.js -function schema2(params) { - var options = params.options; - var schema3 = options.schema, xField = options.xField, yField = options.yField, seriesField = options.seriesField, tooltip10 = options.tooltip; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField]), fields = _a6.fields, formatter = _a6.formatter; - return schema3 ? geometry(deepAssign({}, params, { - options: { - type: "schema", - colorField: seriesField, - tooltipFields: fields, - mapping: __assign({ tooltip: formatter }, schema3) - } - })) : params; -} - -// node_modules/@antv/g2plot/esm/adaptor/geometries/violin.js -function violin(params) { - var options = params.options; - var violin2 = options.violin, xField = options.xField, yField = options.yField, seriesField = options.seriesField, sizeField = options.sizeField, tooltip10 = options.tooltip; - var _a6 = getTooltipMapping(tooltip10, [xField, yField, seriesField, sizeField]), fields = _a6.fields, formatter = _a6.formatter; - return violin2 ? geometry(deepAssign({}, params, { - options: { - type: "violin", - colorField: seriesField, - tooltipFields: fields, - mapping: __assign({ tooltip: formatter }, violin2) - } - })) : params; -} - -// node_modules/@antv/g2plot/esm/plots/line/adaptor.js -function geometry2(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, color4 = options.color, lineStyle = options.lineStyle, lineShape = options.lineShape, pointMapping = options.point, areaMapping = options.area, seriesField = options.seriesField; - var pointState = pointMapping === null || pointMapping === void 0 ? void 0 : pointMapping.state; - var areaState = areaMapping === null || areaMapping === void 0 ? void 0 : areaMapping.state; - chart.data(data3); - var primary = deepAssign({}, params, { - options: { - shapeField: seriesField, - line: { - color: color4, - style: lineStyle, - shape: lineShape - }, - point: pointMapping && __assign({ color: color4, shape: "circle" }, pointMapping), - area: areaMapping && __assign({ color: color4 }, areaMapping), - label: void 0 - } - }); - var second = deepAssign({}, primary, { options: { tooltip: false, state: pointState } }); - var areaParams = deepAssign({}, primary, { options: { tooltip: false, state: areaState } }); - line(primary); - point(second); - area(areaParams); - return params; -} -function meta(params) { - var _a6, _b; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField, data3 = options.data; - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6), (_b = {}, _b[xField] = { - type: "cat" - }, _b[yField] = adjustYMetaByZero(data3, yField), _b)))(params); -} -function coordinate(params) { - var chart = params.chart, options = params.options; - var reflect = options.reflect; - if (reflect) { - var p4 = reflect; - if (!is_array_default(p4)) { - p4 = [p4]; - } - var actions = p4.map(function(d3) { - return ["reflect", d3]; - }); - chart.coordinate({ type: "rect", actions }); - } - return params; -} -function axis(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - if (xAxis === false) { - chart.axis(xField, false); - } else { - chart.axis(xField, xAxis); - } - if (yAxis === false) { - chart.axis(yField, false); - } else { - chart.axis(yField, yAxis); - } - return params; -} -function legend2(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, seriesField = options.seriesField; - if (legend18 && seriesField) { - chart.legend(seriesField, legend18); - } else if (legend18 === false) { - chart.legend(false); - } - return params; -} -function label(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, yField = options.yField; - var lineGeometry = findGeometry(chart, "line"); - if (!label17) { - lineGeometry.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - lineGeometry.label({ - fields: [yField], - callback, - cfg: __assign({ layout: [ - { type: "limit-in-plot" }, - { type: "path-adjust-position" }, - { type: "point-adjust-position" }, - { type: "limit-in-plot", cfg: { action: "hide" } } - ] }, transformLabel(cfg)) - }); - } - return params; -} -function adjust(params) { - var chart = params.chart, options = params.options; - var isStack = options.isStack; - if (isStack) { - each_default(chart.geometries, function(g4) { - g4.adjust("stack"); - }); - } - return params; -} -function adaptor(params) { - return flow(geometry2, meta, adjust, theme, coordinate, axis, legend2, tooltip, label, slider, scrollbar, interaction, animation, annotation(), limitInPlot2)(params); -} - -// node_modules/@antv/g2plot/esm/plots/line/constants.js -var DEFAULT_OPTIONS = deepAssign({}, Plot.getDefaultOptions(), { - tooltip: { - shared: true, - showMarkers: true, - showCrosshairs: true, - crosshairs: { - type: "x" - } - }, - legend: { - position: "top-left", - radio: {} - }, - isStack: false -}); - -// node_modules/@antv/g2plot/esm/plots/line/interactions/marker-active.js -var MarkerActiveAction = function(_super) { - __extends(MarkerActiveAction2, _super); - function MarkerActiveAction2() { - return _super !== null && _super.apply(this, arguments) || this; - } - MarkerActiveAction2.prototype.active = function() { - var view = this.getView(); - var evt = this.context.event; - if (evt.data) { - var items_1 = evt.data.items; - var points = view.geometries.filter(function(geom) { - return geom.type === "point"; - }); - each_default(points, function(point2) { - each_default(point2.elements, function(element) { - var active = find_index_default(items_1, function(item) { - return item.data === element.data; - }) !== -1; - element.setState("active", active); - }); - }); - } - }; - MarkerActiveAction2.prototype.reset = function() { - var view = this.getView(); - var points = view.geometries.filter(function(geom) { - return geom.type === "point"; - }); - each_default(points, function(point2) { - each_default(point2.elements, function(element) { - element.setState("active", false); - }); - }); - }; - MarkerActiveAction2.prototype.getView = function() { - return this.context.view; - }; - return MarkerActiveAction2; -}(base_default12); - -// node_modules/@antv/g2plot/esm/plots/line/interactions/index.js -registerAction("marker-active", MarkerActiveAction); -registerInteraction("marker-active", { - start: [ - { - trigger: "tooltip:show", - action: "marker-active:active" - } - ], - end: [ - { - trigger: "tooltip:hide", - action: "marker-active:reset" - } - ] -}); - -// node_modules/@antv/g2plot/esm/plots/line/index.js -var Line6 = function(_super) { - __extends(Line9, _super); - function Line9() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "line"; - return _this; - } - Line9.getDefaultOptions = function() { - return DEFAULT_OPTIONS; - }; - Line9.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this, chart = _a6.chart, options = _a6.options; - meta({ chart, options }); - this.chart.changeData(data3); - }; - Line9.prototype.getDefaultOptions = function() { - return Line9.getDefaultOptions(); - }; - Line9.prototype.getSchemaAdaptor = function() { - return adaptor; - }; - return Line9; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/transform/percent.js -function percent(data3, measure, groupField, as) { - var sumMap = reduce_default(data3, function(map6, datum) { - var groupValue = datum[groupField]; - var sum = map6.has(groupValue) ? map6.get(groupValue) : 0; - var v3 = datum[measure]; - sum = isRealNumber(v3) ? sum + v3 : sum; - map6.set(groupValue, sum); - return map6; - }, new Map()); - return map_default(data3, function(datum) { - var _a6; - var v3 = datum[measure]; - var groupValue = datum[groupField]; - var percentage = isRealNumber(v3) ? v3 / sumMap.get(groupValue) : 0; - return __assign(__assign({}, datum), (_a6 = {}, _a6[as] = percentage, _a6)); - }); -} -function getDeepPercent(data3, measure, fields, percent2) { - var sumMap = reduce_default(data3, function(map6, datum) { - var groupValue = reduce_default(fields, function(value2, field6) { - return "" + value2 + datum[field6]; - }, ""); - var sum = map6.has(groupValue) ? map6.get(groupValue) : 0; - var v3 = datum[measure]; - sum = isRealNumber(v3) ? sum + v3 : sum; - map6.set(groupValue, sum); - return map6; - }, new Map()); - return map_default(data3, function(datum) { - var _a6; - var v3 = datum[measure]; - var groupValue = reduce_default(fields, function(value2, field6) { - return "" + value2 + datum[field6]; - }, ""); - var percentage = isRealNumber(v3) ? v3 / sumMap.get(groupValue) : 0; - return __assign(__assign({}, datum), (_a6 = {}, _a6[percent2] = percentage, _a6)); - }); -} -function getDataWhetherPecentage(data3, yField, groupField, asField, isPercent) { - return !isPercent ? data3 : percent(data3, yField, groupField, asField); -} - -// node_modules/@antv/g2plot/esm/plots/area/adaptor.js -function geometry3(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, areaStyle = options.areaStyle, color4 = options.color, pointMapping = options.point, lineMapping = options.line, isPercent = options.isPercent, xField = options.xField, yField = options.yField, tooltip10 = options.tooltip, seriesField = options.seriesField, startOnZero = options.startOnZero; - var pointState = pointMapping === null || pointMapping === void 0 ? void 0 : pointMapping.state; - var chartData = getDataWhetherPecentage(data3, yField, xField, yField, isPercent); - chart.data(chartData); - var tooltipOptions = isPercent ? __assign({ formatter: function(datum) { - return { - name: datum[seriesField] || datum[xField], - value: (Number(datum[yField]) * 100).toFixed(2) + "%" - }; - } }, tooltip10) : tooltip10; - var primary = deepAssign({}, params, { - options: { - area: { color: color4, style: areaStyle }, - point: pointMapping && __assign({ color: color4 }, pointMapping), - tooltip: tooltipOptions, - label: void 0, - args: { - startOnZero - } - } - }); - var lineParams = { - chart, - options: deepAssign({ line: { size: 2 } }, omit_default(options, ["state"]), { - line: lineMapping && __assign({ color: color4 }, lineMapping), - sizeField: seriesField, - state: lineMapping === null || lineMapping === void 0 ? void 0 : lineMapping.state, - tooltip: false, - label: void 0, - args: { - startOnZero - } - }) - }; - var pointParams = deepAssign({}, primary, { options: { tooltip: false, state: pointState } }); - area(primary); - line(lineParams); - point(pointParams); - return params; -} -function label2(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, yField = options.yField; - var areaGeometry = findGeometry(chart, "area"); - if (!label17) { - areaGeometry.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - areaGeometry.label({ - fields: [yField], - callback, - cfg: __assign({ layout: [ - { type: "limit-in-plot" }, - { type: "path-adjust-position" }, - { type: "point-adjust-position" }, - { type: "limit-in-plot", cfg: { action: "hide" } } - ] }, transformLabel(cfg)) - }); - } - return params; -} -function adjust2(params) { - var chart = params.chart, options = params.options; - var isStack = options.isStack, isPercent = options.isPercent, seriesField = options.seriesField; - if ((isPercent || isStack) && seriesField) { - each_default(chart.geometries, function(g4) { - g4.adjust("stack"); - }); - } - return params; -} -function adaptor2(params) { - return flow(theme, pattern("areaStyle"), geometry3, meta, adjust2, axis, legend2, tooltip, label2, slider, annotation(), interaction, animation, limitInPlot2)(params); -} - -// node_modules/@antv/g2plot/esm/plots/area/constants.js -var DEFAULT_OPTIONS2 = deepAssign({}, Plot.getDefaultOptions(), { - tooltip: { - shared: true, - showMarkers: true, - showCrosshairs: true, - crosshairs: { - type: "x" - } - }, - isStack: true, - line: {}, - legend: { - position: "top-left", - radio: {} - } -}); - -// node_modules/@antv/g2plot/esm/plots/area/index.js -var Area2 = function(_super) { - __extends(Area3, _super); - function Area3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "area"; - return _this; - } - Area3.getDefaultOptions = function() { - return DEFAULT_OPTIONS2; - }; - Area3.prototype.getDefaultOptions = function() { - return Area3.getDefaultOptions(); - }; - Area3.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this.options, isPercent = _a6.isPercent, xField = _a6.xField, yField = _a6.yField; - var _b = this, chart = _b.chart, options = _b.options; - meta({ chart, options }); - this.chart.changeData(getDataWhetherPecentage(data3, yField, xField, yField, isPercent)); - }; - Area3.prototype.getSchemaAdaptor = function() { - return adaptor2; - }; - return Area3; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/conversion.js -function conversionTagFormatter(prev, next) { - if (!is_number_default(prev) || !is_number_default(next)) { - return "-"; - } - if (prev === next) { - return "100%"; - } - if (prev === 0) { - return "\u221E"; - } - if (next === 0) { - return "-\u221E"; - } - return (100 * next / prev).toFixed(2) + "%"; -} - -// node_modules/@antv/g2plot/esm/adaptor/conversion-tag.js -function getConversionTagOptionsWithDefaults(options, horizontal) { - return deepAssign({ - size: horizontal ? 32 : 80, - spacing: horizontal ? 8 : 12, - offset: horizontal ? 32 : 0, - arrow: options.arrow !== false && { - headSize: 12, - style: { - fill: "rgba(0, 0, 0, 0.05)" - } - }, - text: options.text !== false && { - style: { - fontSize: 12, - fill: "rgba(0, 0, 0, 0.85)", - textAlign: "center", - textBaseline: "middle" - }, - formatter: conversionTagFormatter - } - }, options); -} -function parsePoints(coordinate11, element) { - return map_default(element.getModel().points, function(point2) { - return coordinate11.convertPoint(point2); - }); -} -function renderArrowTag(config, elemPrev, elemNext) { - var view = config.view, geometry35 = config.geometry, group2 = config.group, options = config.options, horizontal = config.horizontal; - var offset = options.offset, size2 = options.size, arrow = options.arrow; - var coordinate11 = view.getCoordinate(); - var pointPrev = parsePoints(coordinate11, elemPrev)[3]; - var pointNext = parsePoints(coordinate11, elemNext)[0]; - var totalHeight = pointNext.y - pointPrev.y; - var totalWidth = pointNext.x - pointPrev.x; - if (typeof arrow === "boolean") { - return; - } - var headSize = arrow.headSize; - var spacing = options.spacing; - var points; - if (horizontal) { - if ((totalWidth - headSize) / 2 < spacing) { - spacing = Math.max(1, (totalWidth - headSize) / 2); - points = [ - [pointPrev.x + spacing, pointPrev.y - offset], - [pointPrev.x + spacing, pointPrev.y - offset - size2], - [pointNext.x - spacing, pointNext.y - offset - size2 / 2] - ]; - } else { - points = [ - [pointPrev.x + spacing, pointPrev.y - offset], - [pointPrev.x + spacing, pointPrev.y - offset - size2], - [pointNext.x - spacing - headSize, pointNext.y - offset - size2], - [pointNext.x - spacing, pointNext.y - offset - size2 / 2], - [pointNext.x - spacing - headSize, pointNext.y - offset] - ]; - } - } else { - if ((totalHeight - headSize) / 2 < spacing) { - spacing = Math.max(1, (totalHeight - headSize) / 2); - points = [ - [pointPrev.x + offset, pointPrev.y + spacing], - [pointPrev.x + offset + size2, pointPrev.y + spacing], - [pointNext.x + offset + size2 / 2, pointNext.y - spacing] - ]; - } else { - points = [ - [pointPrev.x + offset, pointPrev.y + spacing], - [pointPrev.x + offset + size2, pointPrev.y + spacing], - [pointNext.x + offset + size2, pointNext.y - spacing - headSize], - [pointNext.x + offset + size2 / 2, pointNext.y - spacing], - [pointNext.x + offset, pointNext.y - spacing - headSize] - ]; - } - } - group2.addShape("polygon", { - id: view.id + "-conversion-tag-arrow-" + geometry35.getElementId(elemPrev.getModel().mappingData), - name: "conversion-tag-arrow", - origin: { - element: elemPrev, - nextElement: elemNext - }, - attrs: __assign(__assign({}, arrow.style || {}), { points }) - }); -} -function renderTextTag(config, elemPrev, elemNext) { - var _a6, _b, _c; - var view = config.view, geometry35 = config.geometry, group2 = config.group, options = config.options, field6 = config.field, horizontal = config.horizontal; - var offset = options.offset, size2 = options.size; - if (typeof options.text === "boolean") { - return; - } - var coordinate11 = view.getCoordinate(); - var text = ((_a6 = options.text) === null || _a6 === void 0 ? void 0 : _a6.formatter) && ((_b = options.text) === null || _b === void 0 ? void 0 : _b.formatter(elemPrev.getData()[field6], elemNext.getData()[field6])); - var pointPrev = parsePoints(coordinate11, elemPrev)[horizontal ? 3 : 0]; - var pointNext = parsePoints(coordinate11, elemNext)[horizontal ? 0 : 3]; - var textShape = group2.addShape("text", { - id: view.id + "-conversion-tag-text-" + geometry35.getElementId(elemPrev.getModel().mappingData), - name: "conversion-tag-text", - origin: { - element: elemPrev, - nextElement: elemNext - }, - attrs: __assign(__assign({}, ((_c = options.text) === null || _c === void 0 ? void 0 : _c.style) || {}), { text, x: horizontal ? (pointPrev.x + pointNext.x) / 2 : pointPrev.x + offset + size2 / 2, y: horizontal ? pointPrev.y - offset - size2 / 2 : (pointPrev.y + pointNext.y) / 2 }) - }); - if (horizontal) { - var totalWidth = pointNext.x - pointPrev.x; - var textWidth = textShape.getBBox().width; - if (textWidth > totalWidth) { - var cWidth = textWidth / text.length; - var cEnd = Math.max(1, Math.ceil(totalWidth / cWidth) - 1); - var textAdjusted = text.slice(0, cEnd) + "..."; - textShape.attr("text", textAdjusted); - } - } -} -function renderTag2(options, elemPrev, elemNext) { - renderArrowTag(options, elemPrev, elemNext); - renderTextTag(options, elemPrev, elemNext); -} -function conversionTag(field6, horizontal, disabled) { - if (horizontal === void 0) { - horizontal = true; - } - if (disabled === void 0) { - disabled = false; - } - return function(params) { - var options = params.options, chart = params.chart; - var conversionTag5 = options.conversionTag, theme4 = options.theme; - if (conversionTag5 && !disabled) { - chart.theme(deepAssign({}, is_object_default(theme4) ? theme4 : getTheme(theme4), { - columnWidthRatio: 1 / 3 - })); - chart.annotation().shape({ - render: function(container2, view) { - var group2 = container2.addGroup({ - id: chart.id + "-conversion-tag-group", - name: "conversion-tag-group" - }); - var interval3 = find_default(chart.geometries, function(geom) { - return geom.type === "interval"; - }); - var config = { - view, - geometry: interval3, - group: group2, - field: field6, - horizontal, - options: getConversionTagOptionsWithDefaults(conversionTag5, horizontal) - }; - var elements = interval3.elements; - each_default(elements, function(elem, idx) { - if (idx > 0) { - renderTag2(config, elements[idx - 1], elem); - } - }); - } - }); - } - return params; - }; -} - -// node_modules/@antv/g2plot/esm/adaptor/connected-area.js -var INTERACTION_MAP = { - hover: "__interval-connected-area-hover__", - click: "__interval-connected-area-click__" -}; -var getStartStages = function(trigger, style) { - if (trigger === "hover") { - return [ - { - trigger: "interval:mouseenter", - action: ["element-highlight-by-color:highlight", "element-link-by-color:link"], - arg: [null, { style }] - } - ]; - } - return [ - { - trigger: "interval:click", - action: [ - "element-highlight-by-color:clear", - "element-highlight-by-color:highlight", - "element-link-by-color:clear", - "element-link-by-color:unlink", - "element-link-by-color:link" - ], - arg: [null, null, null, null, { style }] - } - ]; -}; -registerInteraction(INTERACTION_MAP.hover, { - start: getStartStages(INTERACTION_MAP.hover), - end: [ - { - trigger: "interval:mouseleave", - action: ["element-highlight-by-color:reset", "element-link-by-color:unlink"] - } - ] -}); -registerInteraction(INTERACTION_MAP.click, { - start: getStartStages(INTERACTION_MAP.click), - end: [ - { - trigger: "document:mousedown", - action: ["element-highlight-by-color:clear", "element-link-by-color:clear"] - } - ] -}); -function connectedArea(disable) { - if (disable === void 0) { - disable = false; - } - return function(params) { - var chart = params.chart, options = params.options; - var connectedArea2 = options.connectedArea; - var clear = function() { - chart.removeInteraction(INTERACTION_MAP.hover); - chart.removeInteraction(INTERACTION_MAP.click); - }; - if (!disable && connectedArea2) { - var trigger = connectedArea2.trigger || "hover"; - clear(); - chart.interaction(INTERACTION_MAP[trigger], { - start: getStartStages(trigger, connectedArea2.style) - }); - } else { - clear(); - } - return params; - }; -} - -// node_modules/@antv/g2plot/esm/interactions/actions/reset-button.js -var PADDING_RIGHT2 = 10; -var PADDING_TOP2 = 5; -var BUTTON_ACTION_CONFIG = { - padding: [8, 10], - text: "reset", - textStyle: { - default: { - x: 0, - y: 0, - fontSize: 12, - fill: "#333333", - cursor: "pointer" - } - }, - buttonStyle: { - default: { - fill: "#f7f7f7", - stroke: "#cccccc", - cursor: "pointer" - }, - active: { - fill: "#e6e6e6" - } - } -}; -var ButtonAction2 = function(_super) { - __extends(ButtonAction3, _super); - function ButtonAction3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.buttonGroup = null; - _this.buttonCfg = __assign({ name: "button" }, BUTTON_ACTION_CONFIG); - return _this; - } - ButtonAction3.prototype.getButtonCfg = function() { - var view = this.context.view; - var buttonCfg = get_default(view, ["interactions", "filter-action", "cfg", "buttonConfig"]); - return deepAssign(this.buttonCfg, buttonCfg, this.cfg); - }; - ButtonAction3.prototype.drawButton = function() { - var config = this.getButtonCfg(); - var group2 = this.context.view.foregroundGroup.addGroup({ - name: config.name - }); - var textShape = this.drawText(group2); - this.drawBackground(group2, textShape.getBBox()); - this.buttonGroup = group2; - }; - ButtonAction3.prototype.drawText = function(group2) { - var _a6; - var config = this.getButtonCfg(); - return group2.addShape({ - type: "text", - name: "button-text", - attrs: __assign({ text: config.text }, (_a6 = config.textStyle) === null || _a6 === void 0 ? void 0 : _a6.default) - }); - }; - ButtonAction3.prototype.drawBackground = function(group2, bbox) { - var _a6; - var config = this.getButtonCfg(); - var padding3 = normalPadding(config.padding); - var buttonShape = group2.addShape({ - type: "rect", - name: "button-rect", - attrs: __assign({ x: bbox.x - padding3[3], y: bbox.y - padding3[0], width: bbox.width + padding3[1] + padding3[3], height: bbox.height + padding3[0] + padding3[2] }, (_a6 = config.buttonStyle) === null || _a6 === void 0 ? void 0 : _a6.default) - }); - buttonShape.toBack(); - group2.on("mouseenter", function() { - var _a7; - buttonShape.attr((_a7 = config.buttonStyle) === null || _a7 === void 0 ? void 0 : _a7.active); - }); - group2.on("mouseleave", function() { - var _a7; - buttonShape.attr((_a7 = config.buttonStyle) === null || _a7 === void 0 ? void 0 : _a7.default); - }); - return buttonShape; - }; - ButtonAction3.prototype.resetPosition = function() { - var view = this.context.view; - var coord2 = view.getCoordinate(); - var point2 = coord2.convert({ x: 1, y: 1 }); - var buttonGroup = this.buttonGroup; - var bbox = buttonGroup.getBBox(); - var matrix = Util.transform(null, [ - ["t", point2.x - bbox.width - PADDING_RIGHT2, point2.y + bbox.height + PADDING_TOP2] - ]); - buttonGroup.setMatrix(matrix); - }; - ButtonAction3.prototype.show = function() { - if (!this.buttonGroup) { - this.drawButton(); - } - this.resetPosition(); - this.buttonGroup.show(); - }; - ButtonAction3.prototype.hide = function() { - if (this.buttonGroup) { - this.buttonGroup.hide(); - } - }; - ButtonAction3.prototype.destroy = function() { - var buttonGroup = this.buttonGroup; - if (buttonGroup) { - buttonGroup.remove(); - } - _super.prototype.destroy.call(this); - }; - return ButtonAction3; -}(base_default12); - -// node_modules/@antv/g2plot/esm/interactions/brush.js -registerAction("brush-reset-button", ButtonAction2, { - name: "brush-reset-button" -}); -registerInteraction("filter-action", {}); -function isPointInView2(context) { - return context.isInPlot(); -} -function getInteractionCfg(interactionType, brushType, mask) { - var maskType = brushType || "rect"; - switch (interactionType) { - case "brush": - return { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "plot:mouseleave", action: "cursor:default" } - ], - start: [ - { - trigger: "mousedown", - isEnable: isPointInView2, - action: ["brush:start", maskType + "-mask:start", maskType + "-mask:show"], - arg: [null, { maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }] - } - ], - processing: [ - { - trigger: "mousemove", - isEnable: isPointInView2, - action: [maskType + "-mask:resize"] - } - ], - end: [ - { - trigger: "mouseup", - isEnable: isPointInView2, - action: [ - "brush:filter", - "brush:end", - maskType + "-mask:end", - maskType + "-mask:hide", - "brush-reset-button:show" - ] - } - ], - rollback: [ - { - trigger: "brush-reset-button:click", - action: ["brush:reset", "brush-reset-button:hide", "cursor:crosshair"] - } - ] - }; - case "brush-highlight": - return { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "mask:mouseenter", action: "cursor:move" }, - { trigger: "plot:mouseleave", action: "cursor:default" }, - { trigger: "mask:mouseleave", action: "cursor:crosshair" } - ], - start: [ - { - trigger: "plot:mousedown", - isEnable: function(context) { - return !context.isInShape("mask"); - }, - action: [maskType + "-mask:start", maskType + "-mask:show"], - arg: [{ maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }] - }, - { - trigger: "mask:dragstart", - action: [maskType + "-mask:moveStart"] - } - ], - processing: [ - { - trigger: "plot:mousemove", - action: [maskType + "-mask:resize"] - }, - { - trigger: "mask:drag", - action: [maskType + "-mask:move"] - }, - { - trigger: "mask:change", - action: ["element-range-highlight:highlight"] - } - ], - end: [ - { trigger: "plot:mouseup", action: [maskType + "-mask:end"] }, - { trigger: "mask:dragend", action: [maskType + "-mask:moveEnd"] }, - { - trigger: "document:mouseup", - isEnable: function(context) { - return !context.isInPlot(); - }, - action: ["element-range-highlight:clear", maskType + "-mask:end", maskType + "-mask:hide"] - } - ], - rollback: [{ trigger: "dblclick", action: ["element-range-highlight:clear", maskType + "-mask:hide"] }] - }; - case "brush-x": - return { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "plot:mouseleave", action: "cursor:default" } - ], - start: [ - { - trigger: "mousedown", - isEnable: isPointInView2, - action: ["brush-x:start", maskType + "-mask:start", maskType + "-mask:show"], - arg: [null, { maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }] - } - ], - processing: [ - { - trigger: "mousemove", - isEnable: isPointInView2, - action: [maskType + "-mask:resize"] - } - ], - end: [ - { - trigger: "mouseup", - isEnable: isPointInView2, - action: ["brush-x:filter", "brush-x:end", maskType + "-mask:end", maskType + "-mask:hide"] - } - ], - rollback: [{ trigger: "dblclick", action: ["brush-x:reset"] }] - }; - case "brush-x-highlight": - return { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "mask:mouseenter", action: "cursor:move" }, - { trigger: "plot:mouseleave", action: "cursor:default" }, - { trigger: "mask:mouseleave", action: "cursor:crosshair" } - ], - start: [ - { - trigger: "plot:mousedown", - isEnable: function(context) { - return !context.isInShape("mask"); - }, - action: [maskType + "-mask:start", maskType + "-mask:show"], - arg: [{ maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }] - }, - { - trigger: "mask:dragstart", - action: [maskType + "-mask:moveStart"] - } - ], - processing: [ - { - trigger: "plot:mousemove", - action: [maskType + "-mask:resize"] - }, - { - trigger: "mask:drag", - action: [maskType + "-mask:move"] - }, - { - trigger: "mask:change", - action: ["element-range-highlight:highlight"] - } - ], - end: [ - { trigger: "plot:mouseup", action: [maskType + "-mask:end"] }, - { trigger: "mask:dragend", action: [maskType + "-mask:moveEnd"] }, - { - trigger: "document:mouseup", - isEnable: function(context) { - return !context.isInPlot(); - }, - action: ["element-range-highlight:clear", maskType + "-mask:end", maskType + "-mask:hide"] - } - ], - rollback: [{ trigger: "dblclick", action: ["element-range-highlight:clear", maskType + "-mask:hide"] }] - }; - case "brush-y": - return { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "plot:mouseleave", action: "cursor:default" } - ], - start: [ - { - trigger: "mousedown", - isEnable: isPointInView2, - action: ["brush-y:start", maskType + "-mask:start", maskType + "-mask:show"], - arg: [null, { maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }] - } - ], - processing: [ - { - trigger: "mousemove", - isEnable: isPointInView2, - action: [maskType + "-mask:resize"] - } - ], - end: [ - { - trigger: "mouseup", - isEnable: isPointInView2, - action: ["brush-y:filter", "brush-y:end", maskType + "-mask:end", maskType + "-mask:hide"] - } - ], - rollback: [{ trigger: "dblclick", action: ["brush-y:reset"] }] - }; - case "brush-y-highlight": - return { - showEnable: [ - { trigger: "plot:mouseenter", action: "cursor:crosshair" }, - { trigger: "mask:mouseenter", action: "cursor:move" }, - { trigger: "plot:mouseleave", action: "cursor:default" }, - { trigger: "mask:mouseleave", action: "cursor:crosshair" } - ], - start: [ - { - trigger: "plot:mousedown", - isEnable: function(context) { - return !context.isInShape("mask"); - }, - action: [maskType + "-mask:start", maskType + "-mask:show"], - arg: [{ maskStyle: mask === null || mask === void 0 ? void 0 : mask.style }] - }, - { - trigger: "mask:dragstart", - action: [maskType + "-mask:moveStart"] - } - ], - processing: [ - { - trigger: "plot:mousemove", - action: [maskType + "-mask:resize"] - }, - { - trigger: "mask:drag", - action: [maskType + "-mask:move"] - }, - { - trigger: "mask:change", - action: ["element-range-highlight:highlight"] - } - ], - end: [ - { trigger: "plot:mouseup", action: [maskType + "-mask:end"] }, - { trigger: "mask:dragend", action: [maskType + "-mask:moveEnd"] }, - { - trigger: "document:mouseup", - isEnable: function(context) { - return !context.isInPlot(); - }, - action: ["element-range-highlight:clear", maskType + "-mask:end", maskType + "-mask:hide"] - } - ], - rollback: [{ trigger: "dblclick", action: ["element-range-highlight:clear", maskType + "-mask:hide"] }] - }; - default: - return {}; - } -} -registerInteraction("brush", getInteractionCfg("brush")); -registerInteraction("brush-highlight", getInteractionCfg("brush-highlight")); -registerInteraction("brush-x", getInteractionCfg("brush-x", "x-rect")); -registerInteraction("brush-y", getInteractionCfg("brush-y", "y-rect")); -registerInteraction("brush-x-highlight", getInteractionCfg("brush-x-highlight", "x-rect")); -registerInteraction("brush-y-highlight", getInteractionCfg("brush-y-highlight", "y-rect")); - -// node_modules/@antv/g2plot/esm/adaptor/brush.js -var BRUSH_TYPES = ["brush", "brush-x", "brush-y", "brush-highlight", "brush-x-highlight", "brush-y-highlight"]; -function brushInteraction(params) { - var options = params.options; - var brush = options.brush; - var interactions = filter_default(options.interactions || [], function(i4) { - return BRUSH_TYPES.indexOf(i4.type) === -1; - }); - if (brush === null || brush === void 0 ? void 0 : brush.enabled) { - BRUSH_TYPES.forEach(function(type2) { - var _a6; - var enable = false; - switch (brush.type) { - case "x-rect": - enable = type2 === (brush.action === "highlight" ? "brush-x-highlight" : "brush-x"); - break; - case "y-rect": - enable = type2 === (brush.action === "highlight" ? "brush-y-highlight" : "brush-y"); - break; - default: - enable = type2 === (brush.action === "highlight" ? "brush-highlight" : "brush"); - break; - } - var obj = { type: type2, enable }; - if (((_a6 = brush.mask) === null || _a6 === void 0 ? void 0 : _a6.style) || brush.type) { - obj.cfg = getInteractionCfg(type2, brush.type, brush.mask); - } - interactions.push(obj); - }); - if ((brush === null || brush === void 0 ? void 0 : brush.action) !== "highlight") { - interactions.push({ - type: "filter-action", - cfg: { - buttonConfig: brush.button - } - }); - } - } - return deepAssign({}, params, { options: { interactions } }); -} - -// node_modules/@antv/g2plot/esm/plots/column/adaptor.js -function defaultOptions(params) { - var options = params.options; - var legend18 = options.legend; - var seriesField = options.seriesField, isStack = options.isStack; - if (seriesField) { - if (legend18 !== false) { - legend18 = __assign({ position: isStack ? "right-top" : "top-left" }, legend18); - } - } else { - legend18 = false; - } - params.options.legend = legend18; - return params; -} -function geometry4(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, columnStyle = options.columnStyle, color4 = options.color, columnWidthRatio = options.columnWidthRatio, isPercent = options.isPercent, isGroup = options.isGroup, isStack = options.isStack, xField = options.xField, yField = options.yField, seriesField = options.seriesField, groupField = options.groupField, tooltip10 = options.tooltip, shape = options.shape; - var percentData = isPercent && isGroup && isStack ? getDeepPercent(data3, yField, [xField, groupField], yField) : getDataWhetherPecentage(data3, yField, xField, yField, isPercent); - var chartData = []; - if (isStack && seriesField && !isGroup) { - percentData.forEach(function(item) { - var stackedItem = chartData.find(function(v3) { - return v3[xField] === item[xField] && v3[seriesField] === item[seriesField]; - }); - if (stackedItem) { - stackedItem[yField] += item[yField] || 0; - } else { - chartData.push(__assign({}, item)); - } - }); - } else { - chartData = percentData; - } - chart.data(chartData); - var tooltipOptions = isPercent ? __assign({ formatter: function(datum) { - return { - name: isGroup && isStack ? datum[seriesField] + " - " + datum[groupField] : datum[seriesField] || datum[xField], - value: (Number(datum[yField]) * 100).toFixed(2) + "%" - }; - } }, tooltip10) : tooltip10; - var p4 = deepAssign({}, params, { - options: { - data: chartData, - widthRatio: columnWidthRatio, - tooltip: tooltipOptions, - interval: { - shape, - style: columnStyle, - color: color4 - } - } - }); - interval2(p4); - return p4; -} -function meta2(params) { - var _a6, _b; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField, data3 = options.data, isPercent = options.isPercent; - var percentYMeta = isPercent ? { max: 1, min: 0, minLimit: 0, maxLimit: 1 } : {}; - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6), (_b = {}, _b[xField] = { - type: "cat" - }, _b[yField] = __assign(__assign({}, adjustYMetaByZero(data3, yField)), percentYMeta), _b)))(params); -} -function axis2(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - if (xAxis === false) { - chart.axis(xField, false); - } else { - chart.axis(xField, xAxis); - } - if (yAxis === false) { - chart.axis(yField, false); - } else { - chart.axis(yField, yAxis); - } - return params; -} -function legend3(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, seriesField = options.seriesField; - if (legend18 && seriesField) { - chart.legend(seriesField, legend18); - } else if (legend18 === false) { - chart.legend(false); - } - return params; -} -function label3(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, yField = options.yField, isRange = options.isRange; - var geometry35 = findGeometry(chart, "interval"); - if (!label17) { - geometry35.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - geometry35.label({ - fields: [yField], - callback, - cfg: __assign({ - layout: (cfg === null || cfg === void 0 ? void 0 : cfg.position) ? void 0 : [ - { type: "interval-adjust-position" }, - { type: "interval-hide-overlap" }, - { type: "adjust-color" }, - { type: "limit-in-plot", cfg: { action: "hide" } } - ] - }, transformLabel(isRange ? __assign({ content: function(item) { - var _a6; - return (_a6 = item[yField]) === null || _a6 === void 0 ? void 0 : _a6.join("-"); - } }, cfg) : cfg)) - }); - } - return params; -} -function columnTooltip(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip, isGroup = options.isGroup, isStack = options.isStack, groupField = options.groupField, data3 = options.data, xField = options.xField, yField = options.yField, seriesField = options.seriesField; - if (tooltip10 === false) { - chart.tooltip(false); - } else { - var tooltipOptions = tooltip10; - if (isGroup && isStack) { - var tooltipFormatter_1 = (tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.formatter) || function(datum) { - return { name: datum[seriesField] + " - " + datum[groupField], value: datum[yField] }; - }; - tooltipOptions = __assign(__assign({}, tooltipOptions), { customItems: function(originalItems) { - var items = []; - each_default(originalItems, function(item) { - var datas = filter_default(data3, function(d3) { - return is_match_default(d3, pick(item.data, [xField, seriesField])); - }); - datas.forEach(function(datum) { - items.push(__assign(__assign(__assign({}, item), { value: datum[yField], data: datum, mappingData: { _origin: datum } }), tooltipFormatter_1(datum))); - }); - }); - return items; - } }); - } - chart.tooltip(tooltipOptions); - } - return params; -} -function adaptor3(params, isBar) { - if (isBar === void 0) { - isBar = false; - } - var options = params.options; - var seriesField = options.seriesField; - return flow(defaultOptions, theme, pattern("columnStyle"), state, geometry4, meta2, axis2, legend3, columnTooltip, slider, scrollbar, label3, brushInteraction, interaction, animation, annotation(), conversionTag(options.yField, !isBar, !!seriesField), connectedArea(!options.isStack), limitInPlot2)(params); -} - -// node_modules/@antv/g2plot/esm/plots/column/constants.js -var DEFAULT_OPTIONS3 = deepAssign({}, Plot.getDefaultOptions(), { - columnWidthRatio: 0.6, - marginRatio: 1 / 32, - tooltip: { - shared: true, - showMarkers: false, - offset: 20 - }, - legend: { - radio: {} - }, - interactions: [{ type: "active-region" }] -}); - -// node_modules/@antv/g2plot/esm/plots/column/index.js -var Column = function(_super) { - __extends(Column2, _super); - function Column2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "column"; - return _this; - } - Column2.getDefaultOptions = function() { - return DEFAULT_OPTIONS3; - }; - Column2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this.options, yField = _a6.yField, xField = _a6.xField, isPercent = _a6.isPercent; - var _b = this, chart = _b.chart, options = _b.options; - meta2({ chart, options }); - this.chart.changeData(getDataWhetherPecentage(data3, yField, xField, yField, isPercent)); - }; - Column2.prototype.getDefaultOptions = function() { - return Column2.getDefaultOptions(); - }; - Column2.prototype.getSchemaAdaptor = function() { - return adaptor3; - }; - return Column2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/bar/adaptor.js -function defaultOptions2(params) { - var options = params.options; - var xField = options.xField, yField = options.yField, xAxis = options.xAxis, yAxis = options.yAxis; - var position2 = { - left: "bottom", - right: "top", - top: "left", - bottom: "right" - }; - var verticalAxis = yAxis !== false ? __assign({ position: position2[(yAxis === null || yAxis === void 0 ? void 0 : yAxis.position) || "left"] }, yAxis) : false; - var horizontalAxis = xAxis !== false ? __assign({ position: position2[(xAxis === null || xAxis === void 0 ? void 0 : xAxis.position) || "bottom"] }, xAxis) : false; - return __assign(__assign({}, params), { options: __assign(__assign({}, options), { - xField: yField, - yField: xField, - xAxis: verticalAxis, - yAxis: horizontalAxis - }) }); -} -function label4(params) { - var options = params.options; - var label17 = options.label; - if (label17 && !label17.position) { - label17.position = "left"; - if (!label17.layout) { - label17.layout = [ - { type: "interval-adjust-position" }, - { type: "interval-hide-overlap" }, - { type: "adjust-color" }, - { type: "limit-in-plot", cfg: { action: "hide" } } - ]; - } - } - return deepAssign({}, params, { options: { label: label17 } }); -} -function legend4(params) { - var options = params.options; - var seriesField = options.seriesField, isStack = options.isStack; - var legend18 = options.legend; - if (seriesField) { - if (legend18 !== false) { - legend18 = __assign({ position: isStack ? "top-left" : "right-top" }, legend18 || {}); - } - } else { - legend18 = false; - } - return deepAssign({}, params, { options: { legend: legend18 } }); -} -function coordinate2(params) { - var chart = params.chart; - chart.coordinate({ actions: [["transpose"], ["reflect", "y"]] }); - return params; -} -function geometry5(params) { - var chart = params.chart, options = params.options; - var barStyle = options.barStyle, barWidthRatio = options.barWidthRatio, minBarWidth = options.minBarWidth, maxBarWidth = options.maxBarWidth, barBackground = options.barBackground; - return adaptor3({ - chart, - options: __assign(__assign({}, options), { - columnStyle: barStyle, - columnWidthRatio: barWidthRatio, - minColumnWidth: minBarWidth, - maxColumnWidth: maxBarWidth, - columnBackground: barBackground - }) - }, true); -} -function adaptor4(params) { - return flow(defaultOptions2, label4, legend4, tooltip, coordinate2, geometry5)(params); -} - -// node_modules/@antv/g2plot/esm/plots/bar/constants.js -var DEFAULT_OPTIONS4 = deepAssign({}, Plot.getDefaultOptions(), { - barWidthRatio: 0.6, - marginRatio: 1 / 32, - tooltip: { - shared: true, - showMarkers: false, - offset: 20 - }, - legend: { - radio: {} - }, - interactions: [{ type: "active-region" }] -}); - -// node_modules/@antv/g2plot/esm/plots/bar/index.js -var Bar = function(_super) { - __extends(Bar2, _super); - function Bar2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "bar"; - return _this; - } - Bar2.getDefaultOptions = function() { - return DEFAULT_OPTIONS4; - }; - Bar2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this, chart = _a6.chart, options = _a6.options; - var xField = options.xField, yField = options.yField, isPercent = options.isPercent; - var switchedFieldOptions = __assign(__assign({}, options), { xField: yField, yField: xField }); - meta2({ chart, options: switchedFieldOptions }); - chart.changeData(getDataWhetherPecentage(data3, xField, yField, xField, isPercent)); - }; - Bar2.prototype.getDefaultOptions = function() { - return Bar2.getDefaultOptions(); - }; - Bar2.prototype.getSchemaAdaptor = function() { - return adaptor4; - }; - return Bar2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/pie/contants.js -var DEFAULT_OPTIONS5 = deepAssign({}, Plot.getDefaultOptions(), { - legend: { - position: "right", - radio: {} - }, - tooltip: { - shared: false, - showTitle: false, - showMarkers: false - }, - label: { - layout: { type: "limit-in-plot", cfg: { action: "ellipsis" } } - }, - pieStyle: { - stroke: "white", - lineWidth: 1 - }, - statistic: { - title: { - style: { fontWeight: 300, color: "#4B535E", textAlign: "center", fontSize: "20px", lineHeight: 1 } - }, - content: { - style: { - fontWeight: "bold", - color: "rgba(44,53,66,0.85)", - textAlign: "center", - fontSize: "32px", - lineHeight: 1 - } - } - }, - theme: { - components: { - annotation: { - text: { - animate: false - } - } - } - } -}); - -// node_modules/@antv/g2plot/esm/plots/pie/utils.js -function getTotalValue(data3, field6) { - var total = null; - each_default(data3, function(item) { - if (typeof item[field6] === "number") { - total += item[field6]; - } - }); - return total; -} -function adaptOffset(type2, offset) { - var defaultOffset; - switch (type2) { - case "inner": - defaultOffset = "-30%"; - if (is_string_default(offset) && offset.endsWith("%")) { - return parseFloat(offset) * 0.01 > 0 ? defaultOffset : offset; - } - return offset < 0 ? offset : defaultOffset; - case "outer": - defaultOffset = 12; - if (is_string_default(offset) && offset.endsWith("%")) { - return parseFloat(offset) * 0.01 < 0 ? defaultOffset : offset; - } - return offset > 0 ? offset : defaultOffset; - default: - return offset; - } -} -function isAllZero(data3, angleField) { - return every_default(processIllegalData(data3, angleField), function(d3) { - return d3[angleField] === 0; - }); -} - -// node_modules/@antv/g2plot/esm/utils/matrix.js -var ORIGIN_MATRIX = [1, 0, 0, 0, 1, 0, 0, 0, 1]; -function transform5(actions, matrix) { - var ulMatrix = matrix ? __spreadArrays(matrix) : __spreadArrays(ORIGIN_MATRIX); - return Util.transform(ulMatrix, actions); -} - -// node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/legend-active.js -var PieLegendAction = function(_super) { - __extends(PieLegendAction2, _super); - function PieLegendAction2() { - return _super !== null && _super.apply(this, arguments) || this; - } - PieLegendAction2.prototype.getActiveElements = function() { - var delegateObject = Util.getDelegationObject(this.context); - if (delegateObject) { - var view = this.context.view; - var component2 = delegateObject.component, item_1 = delegateObject.item; - var field_1 = component2.get("field"); - if (field_1) { - var elements = view.geometries[0].elements; - return elements.filter(function(ele) { - return ele.getModel().data[field_1] === item_1.value; - }); - } - } - return []; - }; - PieLegendAction2.prototype.getActiveElementLabels = function() { - var view = this.context.view; - var elements = this.getActiveElements(); - var labels = view.geometries[0].labelsContainer.getChildren(); - return labels.filter(function(label17) { - return elements.find(function(ele) { - return is_equal_default(ele.getData(), label17.get("data")); - }); - }); - }; - PieLegendAction2.prototype.transfrom = function(offset) { - if (offset === void 0) { - offset = 7.5; - } - var elements = this.getActiveElements(); - var elementLabels = this.getActiveElementLabels(); - elements.forEach(function(element, idx) { - var labelShape = elementLabels[idx]; - var coordinate11 = element.geometry.coordinate; - if (coordinate11.isPolar && coordinate11.isTransposed) { - var _a6 = Util.getAngle(element.getModel(), coordinate11), startAngle = _a6.startAngle, endAngle = _a6.endAngle; - var middleAngle = (startAngle + endAngle) / 2; - var r4 = offset; - var x6 = r4 * Math.cos(middleAngle); - var y5 = r4 * Math.sin(middleAngle); - element.shape.setMatrix(transform5([["t", x6, y5]])); - labelShape.setMatrix(transform5([["t", x6, y5]])); - } - }); - }; - PieLegendAction2.prototype.active = function() { - this.transfrom(); - }; - PieLegendAction2.prototype.reset = function() { - this.transfrom(0); - }; - return PieLegendAction2; -}(base_default12); - -// node_modules/@antv/g2plot/esm/plots/pie/interactions/util.js -function getCurrentElement2(context) { - var event = context.event; - var element; - var target = event.target; - if (target) { - element = target.get("element"); - } - return element; -} - -// node_modules/@antv/g2plot/esm/plots/pie/interactions/actions/statistic-active.js -var StatisticAction = function(_super) { - __extends(StatisticAction2, _super); - function StatisticAction2() { - return _super !== null && _super.apply(this, arguments) || this; - } - StatisticAction2.prototype.getAnnotations = function(_view) { - var view = _view || this.context.view; - return view.getController("annotation").option; - }; - StatisticAction2.prototype.getInitialAnnotation = function() { - return this.initialAnnotation; - }; - StatisticAction2.prototype.init = function() { - var _this = this; - var view = this.context.view; - view.removeInteraction("tooltip"); - view.on("afterchangesize", function() { - var annotations = _this.getAnnotations(view); - _this.initialAnnotation = annotations; - }); - }; - StatisticAction2.prototype.change = function(arg) { - var _a6 = this.context, view = _a6.view, event = _a6.event; - if (!this.initialAnnotation) { - this.initialAnnotation = this.getAnnotations(); - } - var data3 = get_default(event, ["data", "data"]); - if (event.type.match("legend-item")) { - var delegateObject = Util.getDelegationObject(this.context); - var colorField_1 = view.getGroupedFields()[0]; - if (delegateObject && colorField_1) { - var item_1 = delegateObject.item; - data3 = view.getData().find(function(d3) { - return d3[colorField_1] === item_1.value; - }); - } - } - if (data3) { - var annotations = get_default(arg, "annotations", []); - var statistic4 = get_default(arg, "statistic", {}); - view.getController("annotation").clear(true); - each_default(annotations, function(annotation4) { - if (typeof annotation4 === "object") { - view.annotation()[annotation4.type](annotation4); - } - }); - renderStatistic(view, { statistic: statistic4, plotType: "pie" }, data3); - view.render(true); - } - var ele = getCurrentElement2(this.context); - if (ele) { - ele.shape.toFront(); - } - }; - StatisticAction2.prototype.reset = function() { - var view = this.context.view; - var annotationController = view.getController("annotation"); - annotationController.clear(true); - var initialStatistic = this.getInitialAnnotation(); - each_default(initialStatistic, function(a4) { - view.annotation()[a4.type](a4); - }); - view.render(true); - }; - return StatisticAction2; -}(base_default12); - -// node_modules/@antv/g2plot/esm/plots/pie/interactions/index.js -var PIE_STATISTIC = "pie-statistic"; -registerAction(PIE_STATISTIC, StatisticAction); -registerInteraction("pie-statistic-active", { - start: [{ trigger: "element:mouseenter", action: "pie-statistic:change" }], - end: [{ trigger: "element:mouseleave", action: "pie-statistic:reset" }] -}); -registerAction("pie-legend", PieLegendAction); -registerInteraction("pie-legend-active", { - start: [{ trigger: "legend-item:mouseenter", action: "pie-legend:active" }], - end: [{ trigger: "legend-item:mouseleave", action: "pie-legend:reset" }] -}); - -// node_modules/@antv/g2plot/esm/plots/pie/adaptor.js -function geometry6(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, angleField = options.angleField, colorField = options.colorField, color4 = options.color, pieStyle = options.pieStyle; - var processData2 = processIllegalData(data3, angleField); - if (isAllZero(processData2, angleField)) { - var percentageField_1 = "$$percentage$$"; - processData2 = processData2.map(function(d3) { - var _a6; - return __assign(__assign({}, d3), (_a6 = {}, _a6[percentageField_1] = 1 / processData2.length, _a6)); - }); - chart.data(processData2); - var p4 = deepAssign({}, params, { - options: { - xField: "1", - yField: percentageField_1, - seriesField: colorField, - isStack: true, - interval: { - color: color4, - style: pieStyle - }, - args: { - zIndexReversed: true, - sortZIndex: true - } - } - }); - interval2(p4); - } else { - chart.data(processData2); - var p4 = deepAssign({}, params, { - options: { - xField: "1", - yField: angleField, - seriesField: colorField, - isStack: true, - interval: { - color: color4, - style: pieStyle - }, - args: { - zIndexReversed: true, - sortZIndex: true - } - } - }); - interval2(p4); - } - return params; -} -function meta3(params) { - var _a6; - var chart = params.chart, options = params.options; - var meta23 = options.meta, colorField = options.colorField; - var scales = deepAssign({}, meta23); - chart.scale(scales, (_a6 = {}, _a6[colorField] = { type: "cat" }, _a6)); - return params; -} -function coordinate3(params) { - var chart = params.chart, options = params.options; - var radius = options.radius, innerRadius = options.innerRadius, startAngle = options.startAngle, endAngle = options.endAngle; - chart.coordinate({ - type: "theta", - cfg: { - radius, - innerRadius, - startAngle, - endAngle - } - }); - return params; -} -function label5(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, colorField = options.colorField, angleField = options.angleField; - var geometry35 = chart.geometries[0]; - if (!label17) { - geometry35.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - var labelCfg = transformLabel(cfg); - if (labelCfg.content) { - var content_1 = labelCfg.content; - labelCfg.content = function(data3, dataum, index2) { - var name = data3[colorField]; - var value2 = data3[angleField]; - var angleScale = chart.getScaleByField(angleField); - var percent2 = angleScale === null || angleScale === void 0 ? void 0 : angleScale.scale(value2); - return is_function_default(content_1) ? content_1(__assign(__assign({}, data3), { percent: percent2 }), dataum, index2) : is_string_default(content_1) ? template(content_1, { - value: value2, - name, - percentage: is_number_default(percent2) && !is_nil_default(value2) ? (percent2 * 100).toFixed(2) + "%" : null - }) : content_1; - }; - } - var LABEL_LAYOUT_TYPE_MAP = { - inner: "", - outer: "pie-outer", - spider: "pie-spider" - }; - var labelLayoutType = labelCfg.type ? LABEL_LAYOUT_TYPE_MAP[labelCfg.type] : "pie-outer"; - var labelLayoutCfg = labelCfg.layout ? !is_array_default(labelCfg.layout) ? [labelCfg.layout] : labelCfg.layout : []; - labelCfg.layout = (labelLayoutType ? [{ type: labelLayoutType }] : []).concat(labelLayoutCfg); - geometry35.label({ - fields: colorField ? [angleField, colorField] : [angleField], - callback, - cfg: __assign(__assign({}, labelCfg), { offset: adaptOffset(labelCfg.type, labelCfg.offset), type: "pie" }) - }); - } - return params; -} -function transformStatisticOptions(options) { - var innerRadius = options.innerRadius, statistic4 = options.statistic, angleField = options.angleField, colorField = options.colorField, meta23 = options.meta, locale = options.locale; - var i18n = getLocale(locale); - if (innerRadius && statistic4) { - var _a6 = deepAssign({}, DEFAULT_OPTIONS5.statistic, statistic4), titleOpt_1 = _a6.title, contentOpt_1 = _a6.content; - if (titleOpt_1 !== false) { - titleOpt_1 = deepAssign({}, { - formatter: function(datum) { - if (datum) { - return datum[colorField]; - } - return !is_nil_default(titleOpt_1.content) ? titleOpt_1.content : i18n.get(["statistic", "total"]); - } - }, titleOpt_1); - } - if (contentOpt_1 !== false) { - contentOpt_1 = deepAssign({}, { - formatter: function(datum, data3) { - var dataValue = datum ? datum[angleField] : getTotalValue(data3, angleField); - var metaFormatter = get_default(meta23, [angleField, "formatter"]) || function(v3) { - return v3; - }; - if (datum) { - return metaFormatter(dataValue); - } - return !is_nil_default(contentOpt_1.content) ? contentOpt_1.content : metaFormatter(dataValue); - } - }, contentOpt_1); - } - return deepAssign({}, { statistic: { title: titleOpt_1, content: contentOpt_1 } }, options); - } - return options; -} -function pieAnnotation(params) { - var chart = params.chart, options = params.options; - var _a6 = transformStatisticOptions(options), innerRadius = _a6.innerRadius, statistic4 = _a6.statistic; - chart.getController("annotation").clear(true); - flow(annotation())(params); - if (innerRadius && statistic4) { - renderStatistic(chart, { statistic: statistic4, plotType: "pie" }); - } - return params; -} -function tooltip2(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip, colorField = options.colorField, angleField = options.angleField, data3 = options.data; - if (tooltip10 === false) { - chart.tooltip(tooltip10); - } else { - chart.tooltip(deepAssign({}, tooltip10, { shared: false })); - if (isAllZero(data3, angleField)) { - var fields = get_default(tooltip10, "fields"); - var formatter = get_default(tooltip10, "formatter"); - if (is_empty_default(get_default(tooltip10, "fields"))) { - fields = [colorField, angleField]; - formatter = formatter || function(datum) { - return { name: datum[colorField], value: to_string_default(datum[angleField]) }; - }; - } - chart.geometries[0].tooltip(fields.join("*"), getMappingFunction(fields, formatter)); - } - } - return params; -} -function interaction2(params) { - var chart = params.chart, options = params.options; - var _a6 = transformStatisticOptions(options), interactions = _a6.interactions, statistic4 = _a6.statistic, annotations = _a6.annotations; - each_default(interactions, function(i4) { - var _a7, _b; - if (i4.enable === false) { - chart.removeInteraction(i4.type); - } else if (i4.type === "pie-statistic-active") { - var startStages_1 = []; - if (!((_a7 = i4.cfg) === null || _a7 === void 0 ? void 0 : _a7.start)) { - startStages_1 = [ - { - trigger: "element:mouseenter", - action: PIE_STATISTIC + ":change", - arg: { statistic: statistic4, annotations } - } - ]; - } - each_default((_b = i4.cfg) === null || _b === void 0 ? void 0 : _b.start, function(stage) { - startStages_1.push(__assign(__assign({}, stage), { arg: { statistic: statistic4, annotations } })); - }); - chart.interaction(i4.type, deepAssign({}, i4.cfg, { start: startStages_1 })); - } else { - chart.interaction(i4.type, i4.cfg || {}); - } - }); - return params; -} -function adaptor5(params) { - return flow(pattern("pieStyle"), geometry6, meta3, theme, coordinate3, legend, tooltip2, label5, state, pieAnnotation, interaction2, animation)(params); -} - -// node_modules/@antv/g2plot/esm/plots/pie/index.js -var Pie = function(_super) { - __extends(Pie2, _super); - function Pie2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "pie"; - return _this; - } - Pie2.getDefaultOptions = function() { - return DEFAULT_OPTIONS5; - }; - Pie2.prototype.changeData = function(data3) { - this.chart.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null)); - var prevOptions = this.options; - var angleField = this.options.angleField; - var prevData = processIllegalData(prevOptions.data, angleField); - var curData = processIllegalData(data3, angleField); - if (isAllZero(prevData, angleField) || isAllZero(curData, angleField)) { - this.update({ data: data3 }); - } else { - this.updateOption({ data: data3 }); - this.chart.data(curData); - pieAnnotation({ chart: this.chart, options: this.options }); - this.chart.render(true); - } - this.chart.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null)); - }; - Pie2.prototype.getDefaultOptions = function() { - return Pie2.getDefaultOptions(); - }; - Pie2.prototype.getSchemaAdaptor = function() { - return adaptor5; - }; - return Pie2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/rose/adaptor.js -function geometry7(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, sectorStyle = options.sectorStyle, color4 = options.color; - chart.data(data3); - flow(interval2)(deepAssign({}, params, { - options: { - marginRatio: 1, - interval: { - style: sectorStyle, - color: color4 - } - } - })); - return params; -} -function label6(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, xField = options.xField; - var geometry35 = findGeometry(chart, "interval"); - if (label17 === false) { - geometry35.label(false); - } else if (is_object_default(label17)) { - var callback = label17.callback, fields = label17.fields, cfg = __rest(label17, ["callback", "fields"]); - var offset = cfg.offset; - var layout6 = cfg.layout; - if (offset === void 0 || offset >= 0) { - layout6 = layout6 ? is_array_default(layout6) ? layout6 : [layout6] : []; - cfg.layout = filter_default(layout6, function(v3) { - return v3.type !== "limit-in-shape"; - }); - cfg.layout.length || delete cfg.layout; - } - geometry35.label({ - fields: fields || [xField], - callback, - cfg: transformLabel(cfg) - }); - } else { - log2(LEVEL.WARN, label17 === null, "the label option must be an Object."); - geometry35.label({ fields: [xField] }); - } - return params; -} -function legend5(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, seriesField = options.seriesField; - if (legend18 === false) { - chart.legend(false); - } else if (seriesField) { - chart.legend(seriesField, legend18); - } - return params; -} -function coordinate4(params) { - var chart = params.chart, options = params.options; - var radius = options.radius, innerRadius = options.innerRadius, startAngle = options.startAngle, endAngle = options.endAngle; - chart.coordinate({ - type: "polar", - cfg: { - radius, - innerRadius, - startAngle, - endAngle - } - }); - return params; -} -function meta4(params) { - var _a6; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6)))(params); -} -function axis3(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - if (!xAxis) { - chart.axis(xField, false); - } else { - chart.axis(xField, xAxis); - } - if (!yAxis) { - chart.axis(yField, false); - } else { - chart.axis(yField, yAxis); - } - return params; -} -function adaptor6(params) { - flow(pattern("sectorStyle"), geometry7, meta4, label6, coordinate4, axis3, legend5, tooltip, interaction, animation, theme, annotation(), state)(params); -} - -// node_modules/@antv/g2plot/esm/plots/rose/constant.js -var DEFAULT_OPTIONS6 = deepAssign({}, Plot.getDefaultOptions(), { - xAxis: false, - yAxis: false, - legend: { - position: "right", - radio: {} - }, - sectorStyle: { - stroke: "#fff", - lineWidth: 1 - }, - label: { - layout: { - type: "limit-in-shape" - } - }, - tooltip: { - shared: true, - showMarkers: false - }, - interactions: [{ type: "active-region" }] -}); - -// node_modules/@antv/g2plot/esm/plots/rose/index.js -var Rose = function(_super) { - __extends(Rose2, _super); - function Rose2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "rose"; - return _this; - } - Rose2.getDefaultOptions = function() { - return DEFAULT_OPTIONS6; - }; - Rose2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - this.chart.changeData(data3); - }; - Rose2.prototype.getDefaultOptions = function() { - return Rose2.getDefaultOptions(); - }; - Rose2.prototype.getSchemaAdaptor = function() { - return adaptor6; - }; - return Rose2; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/transform/word-cloud.js -var DEFAULT_OPTIONS7 = { - font: function() { - return "serif"; - }, - padding: 1, - size: [500, 500], - spiral: "archimedean", - timeInterval: 3e3 -}; -function wordCloud(words, options) { - options = mix({}, DEFAULT_OPTIONS7, options); - return transform6(words, options); -} -function transform6(words, options) { - var layout6 = tagCloud(); - ["font", "fontSize", "fontWeight", "padding", "rotate", "size", "spiral", "timeInterval", "random"].forEach(function(key) { - if (!is_nil_default(options[key])) { - layout6[key](options[key]); - } - }); - layout6.words(words); - if (options.imageMask) { - layout6.createMask(options.imageMask); - } - var result = layout6.start(); - var tags = result._tags; - tags.forEach(function(tag) { - tag.x += options.size[0] / 2; - tag.y += options.size[1] / 2; - }); - var _a6 = options.size, w4 = _a6[0], h3 = _a6[1]; - tags.push({ - text: "", - value: 0, - x: 0, - y: 0, - opacity: 0 - }); - tags.push({ - text: "", - value: 0, - x: w4, - y: h3, - opacity: 0 - }); - return tags; -} -var cloudRadians = Math.PI / 180; -var cw = 1 << 11 >> 5; -var ch = 1 << 11; -function cloudText(d3) { - return d3.text; -} -function cloudFont() { - return "serif"; -} -function cloudFontNormal() { - return "normal"; -} -function cloudFontSize(d3) { - return d3.value; -} -function cloudRotate() { - return ~~(Math.random() * 2) * 90; -} -function cloudPadding() { - return 1; -} -function cloudSprite(contextAndRatio, d3, data3, di) { - if (d3.sprite) - return; - var c5 = contextAndRatio.context, ratio = contextAndRatio.ratio; - c5.clearRect(0, 0, (cw << 5) / ratio, ch / ratio); - var x6 = 0, y5 = 0, maxh = 0; - var n3 = data3.length; - --di; - while (++di < n3) { - d3 = data3[di]; - c5.save(); - c5.font = d3.style + " " + d3.weight + " " + ~~((d3.size + 1) / ratio) + "px " + d3.font; - var w4 = c5.measureText(d3.text + "m").width * ratio, h3 = d3.size << 1; - if (d3.rotate) { - var sr = Math.sin(d3.rotate * cloudRadians), cr = Math.cos(d3.rotate * cloudRadians), wcr = w4 * cr, wsr = w4 * sr, hcr = h3 * cr, hsr = h3 * sr; - w4 = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 31 >> 5 << 5; - h3 = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr)); - } else { - w4 = w4 + 31 >> 5 << 5; - } - if (h3 > maxh) - maxh = h3; - if (x6 + w4 >= cw << 5) { - x6 = 0; - y5 += maxh; - maxh = 0; - } - if (y5 + h3 >= ch) - break; - c5.translate((x6 + (w4 >> 1)) / ratio, (y5 + (h3 >> 1)) / ratio); - if (d3.rotate) - c5.rotate(d3.rotate * cloudRadians); - c5.fillText(d3.text, 0, 0); - if (d3.padding) { - c5.lineWidth = 2 * d3.padding; - c5.strokeText(d3.text, 0, 0); - } - c5.restore(); - d3.width = w4; - d3.height = h3; - d3.xoff = x6; - d3.yoff = y5; - d3.x1 = w4 >> 1; - d3.y1 = h3 >> 1; - d3.x0 = -d3.x1; - d3.y0 = -d3.y1; - d3.hasText = true; - x6 += w4; - } - var pixels = c5.getImageData(0, 0, (cw << 5) / ratio, ch / ratio).data, sprite = []; - while (--di >= 0) { - d3 = data3[di]; - if (!d3.hasText) - continue; - var w4 = d3.width, w32 = w4 >> 5; - var h3 = d3.y1 - d3.y0; - for (var i4 = 0; i4 < h3 * w32; i4++) - sprite[i4] = 0; - x6 = d3.xoff; - if (x6 == null) - return; - y5 = d3.yoff; - var seen = 0, seenRow = -1; - for (var j4 = 0; j4 < h3; j4++) { - for (var i4 = 0; i4 < w4; i4++) { - var k4 = w32 * j4 + (i4 >> 5), m4 = pixels[(y5 + j4) * (cw << 5) + (x6 + i4) << 2] ? 1 << 31 - i4 % 32 : 0; - sprite[k4] |= m4; - seen |= m4; - } - if (seen) - seenRow = j4; - else { - d3.y0++; - h3--; - j4--; - y5++; - } - } - d3.y1 = d3.y0 + seenRow; - d3.sprite = sprite.slice(0, (d3.y1 - d3.y0) * w32); - } -} -function cloudCollide(tag, board, sw) { - sw >>= 5; - var sprite = tag.sprite, w4 = tag.width >> 5, lx = tag.x - (w4 << 4), sx = lx & 127, msx = 32 - sx, h3 = tag.y1 - tag.y0; - var x6 = (tag.y + tag.y0) * sw + (lx >> 5), last2; - for (var j4 = 0; j4 < h3; j4++) { - last2 = 0; - for (var i4 = 0; i4 <= w4; i4++) { - if ((last2 << msx | (i4 < w4 ? (last2 = sprite[j4 * w4 + i4]) >>> sx : 0)) & board[x6 + i4]) - return true; - } - x6 += sw; - } - return false; -} -function cloudBounds(bounds, d3) { - var b02 = bounds[0], b12 = bounds[1]; - if (d3.x + d3.x0 < b02.x) - b02.x = d3.x + d3.x0; - if (d3.y + d3.y0 < b02.y) - b02.y = d3.y + d3.y0; - if (d3.x + d3.x1 > b12.x) - b12.x = d3.x + d3.x1; - if (d3.y + d3.y1 > b12.y) - b12.y = d3.y + d3.y1; -} -function collideRects(a4, b10) { - return a4.x + a4.x1 > b10[0].x && a4.x + a4.x0 < b10[1].x && a4.y + a4.y1 > b10[0].y && a4.y + a4.y0 < b10[1].y; -} -function archimedeanSpiral(size2) { - var e4 = size2[0] / size2[1]; - return function(t4) { - return [e4 * (t4 *= 0.1) * Math.cos(t4), t4 * Math.sin(t4)]; - }; -} -function rectangularSpiral(size2) { - var dy = 4, dx = dy * size2[0] / size2[1]; - var x6 = 0, y5 = 0; - return function(t4) { - var sign = t4 < 0 ? -1 : 1; - switch (Math.sqrt(1 + 4 * sign * t4) - sign & 3) { - case 0: - x6 += dx; - break; - case 1: - y5 += dy; - break; - case 2: - x6 -= dx; - break; - default: - y5 -= dy; - break; - } - return [x6, y5]; - }; -} -function zeroArray(n3) { - var a4 = []; - var i4 = -1; - while (++i4 < n3) - a4[i4] = 0; - return a4; -} -function cloudCanvas() { - return document.createElement("canvas"); -} -function functor(d3) { - return is_function_default(d3) ? d3 : function() { - return d3; - }; -} -var spirals = { - archimedean: archimedeanSpiral, - rectangular: rectangularSpiral -}; -function tagCloud() { - var size2 = [256, 256], font = cloudFont, fontSize = cloudFontSize, fontWeight = cloudFontNormal, rotate8 = cloudRotate, padding3 = cloudPadding, spiral = archimedeanSpiral, random5 = Math.random, words = [], timeInterval = Infinity; - var text = cloudText; - var fontStyle = cloudFontNormal; - var canvas = cloudCanvas; - var cloud = {}; - cloud.start = function() { - var width2 = size2[0], height = size2[1]; - var contextAndRatio = getContext(canvas()), board = cloud.board ? cloud.board : zeroArray((size2[0] >> 5) * size2[1]), n3 = words.length, tags = [], data3 = words.map(function(d3, i5, data4) { - d3.text = text.call(this, d3, i5, data4); - d3.font = font.call(this, d3, i5, data4); - d3.style = fontStyle.call(this, d3, i5, data4); - d3.weight = fontWeight.call(this, d3, i5, data4); - d3.rotate = rotate8.call(this, d3, i5, data4); - d3.size = ~~fontSize.call(this, d3, i5, data4); - d3.padding = padding3.call(this, d3, i5, data4); - return d3; - }).sort(function(a4, b10) { - return b10.size - a4.size; - }); - var i4 = -1, bounds = !cloud.board ? null : [ - { - x: 0, - y: 0 - }, - { - x: width2, - y: height - } - ]; - step(); - function step() { - var start = Date.now(); - while (Date.now() - start < timeInterval && ++i4 < n3) { - var d3 = data3[i4]; - d3.x = width2 * (random5() + 0.5) >> 1; - d3.y = height * (random5() + 0.5) >> 1; - cloudSprite(contextAndRatio, d3, data3, i4); - if (d3.hasText && place2(board, d3, bounds)) { - tags.push(d3); - if (bounds) { - if (!cloud.hasImage) { - cloudBounds(bounds, d3); - } - } else { - bounds = [ - { x: d3.x + d3.x0, y: d3.y + d3.y0 }, - { x: d3.x + d3.x1, y: d3.y + d3.y1 } - ]; - } - d3.x -= size2[0] >> 1; - d3.y -= size2[1] >> 1; - } - } - cloud._tags = tags; - cloud._bounds = bounds; - } - return cloud; - }; - function getContext(canvas2) { - canvas2.width = canvas2.height = 1; - var ratio = Math.sqrt(canvas2.getContext("2d").getImageData(0, 0, 1, 1).data.length >> 2); - canvas2.width = (cw << 5) / ratio; - canvas2.height = ch / ratio; - var context = canvas2.getContext("2d"); - context.fillStyle = context.strokeStyle = "red"; - context.textAlign = "center"; - return { context, ratio }; - } - function place2(board, tag, bounds) { - var startX = tag.x, startY = tag.y, maxDelta = Math.sqrt(size2[0] * size2[0] + size2[1] * size2[1]), s4 = spiral(size2), dt = random5() < 0.5 ? 1 : -1; - var dxdy, t4 = -dt, dx, dy; - while (dxdy = s4(t4 += dt)) { - dx = ~~dxdy[0]; - dy = ~~dxdy[1]; - if (Math.min(Math.abs(dx), Math.abs(dy)) >= maxDelta) - break; - tag.x = startX + dx; - tag.y = startY + dy; - if (tag.x + tag.x0 < 0 || tag.y + tag.y0 < 0 || tag.x + tag.x1 > size2[0] || tag.y + tag.y1 > size2[1]) - continue; - if (!bounds || !cloudCollide(tag, board, size2[0])) { - if (!bounds || collideRects(tag, bounds)) { - var sprite = tag.sprite, w4 = tag.width >> 5, sw = size2[0] >> 5, lx = tag.x - (w4 << 4), sx = lx & 127, msx = 32 - sx, h3 = tag.y1 - tag.y0; - var last2 = void 0, x6 = (tag.y + tag.y0) * sw + (lx >> 5); - for (var j4 = 0; j4 < h3; j4++) { - last2 = 0; - for (var i4 = 0; i4 <= w4; i4++) { - board[x6 + i4] |= last2 << msx | (i4 < w4 ? (last2 = sprite[j4 * w4 + i4]) >>> sx : 0); - } - x6 += sw; - } - delete tag.sprite; - return true; - } - } - } - return false; - } - cloud.createMask = function(img) { - var can = document.createElement("canvas"); - var width2 = size2[0], height = size2[1]; - if (!width2 || !height) { - return; - } - var w32 = width2 >> 5; - var board = zeroArray((width2 >> 5) * height); - can.width = width2; - can.height = height; - var cxt = can.getContext("2d"); - cxt.drawImage(img, 0, 0, img.width, img.height, 0, 0, width2, height); - var imageData = cxt.getImageData(0, 0, width2, height).data; - for (var j4 = 0; j4 < height; j4++) { - for (var i4 = 0; i4 < width2; i4++) { - var k4 = w32 * j4 + (i4 >> 5); - var tmp = j4 * width2 + i4 << 2; - var flag = imageData[tmp] >= 250 && imageData[tmp + 1] >= 250 && imageData[tmp + 2] >= 250; - var m4 = flag ? 1 << 31 - i4 % 32 : 0; - board[k4] |= m4; - } - } - cloud.board = board; - cloud.hasImage = true; - }; - cloud.timeInterval = function(_8) { - timeInterval = _8 == null ? Infinity : _8; - }; - cloud.words = function(_8) { - words = _8; - }; - cloud.size = function(_8) { - size2 = [+_8[0], +_8[1]]; - }; - cloud.font = function(_8) { - font = functor(_8); - }; - cloud.fontWeight = function(_8) { - fontWeight = functor(_8); - }; - cloud.rotate = function(_8) { - rotate8 = functor(_8); - }; - cloud.spiral = function(_8) { - spiral = spirals[_8] || _8; - }; - cloud.fontSize = function(_8) { - fontSize = functor(_8); - }; - cloud.padding = function(_8) { - padding3 = functor(_8); - }; - cloud.random = function(_8) { - random5 = functor(_8); - }; - return cloud; -} - -// node_modules/@antv/g2plot/esm/plots/word-cloud/utils.js -function transform7(params) { - var rawOptions = params.options, chart = params.chart; - var _a6 = chart, width2 = _a6.width, height = _a6.height, chartPadding = _a6.padding, appendPadding = _a6.appendPadding, ele = _a6.ele; - var data3 = rawOptions.data, imageMask = rawOptions.imageMask, wordField = rawOptions.wordField, weightField = rawOptions.weightField, colorField = rawOptions.colorField, wordStyle = rawOptions.wordStyle, timeInterval = rawOptions.timeInterval, random5 = rawOptions.random, spiral = rawOptions.spiral, _b = rawOptions.autoFit, autoFit = _b === void 0 ? true : _b, placementStrategy = rawOptions.placementStrategy; - if (!data3 || !data3.length) { - return []; - } - var fontFamily = wordStyle.fontFamily, fontWeight = wordStyle.fontWeight, padding3 = wordStyle.padding, fontSize = wordStyle.fontSize; - var arr = getSingleKeyValues(data3, weightField); - var range = [min4(arr), max4(arr)]; - var words = data3.map(function(datum) { - return { - text: datum[wordField], - value: datum[weightField], - color: datum[colorField], - datum - }; - }); - var options = { - imageMask, - font: fontFamily, - fontSize: getFontSizeMapping(fontSize, range), - fontWeight, - size: getSize({ - width: width2, - height, - padding: chartPadding, - appendPadding, - autoFit, - container: ele - }), - padding: padding3, - timeInterval, - random: random5, - spiral, - rotate: getRotate(rawOptions) - }; - if (is_function_default(placementStrategy)) { - var result = words.map(function(word2, index2, words2) { - return __assign(__assign(__assign({}, word2), { hasText: !!word2.text, font: functor(options.font)(word2, index2, words2), weight: functor(options.fontWeight)(word2, index2, words2), rotate: functor(options.rotate)(word2, index2, words2), size: functor(options.fontSize)(word2, index2, words2), style: "normal" }), placementStrategy.call(chart, word2, index2, words2)); - }); - result.push({ - text: "", - value: 0, - x: 0, - y: 0, - opacity: 0 - }); - result.push({ - text: "", - value: 0, - x: options.size[0], - y: options.size[1], - opacity: 0 - }); - return result; - } - return wordCloud(words, options); -} -function getSize(options) { - var width2 = options.width, height = options.height; - var container2 = options.container, autoFit = options.autoFit, padding3 = options.padding, appendPadding = options.appendPadding; - if (autoFit) { - var containerSize = getContainerSize(container2); - width2 = containerSize.width; - height = containerSize.height; - } - width2 = width2 || 400; - height = height || 400; - var _a6 = resolvePadding({ padding: padding3, appendPadding }), top = _a6[0], right2 = _a6[1], bottom = _a6[2], left2 = _a6[3]; - var result = [width2 - (left2 + right2), height - (top + bottom)]; - return result; -} -function resolvePadding(options) { - var padding3 = normalPadding(options.padding); - var appendPadding = normalPadding(options.appendPadding); - var top = padding3[0] + appendPadding[0]; - var right2 = padding3[1] + appendPadding[1]; - var bottom = padding3[2] + appendPadding[2]; - var left2 = padding3[3] + appendPadding[3]; - return [top, right2, bottom, left2]; -} -function processImageMask(img) { - return new Promise(function(res, rej) { - if (img instanceof HTMLImageElement) { - res(img); - return; - } - if (is_string_default(img)) { - var image_1 = new Image(); - image_1.crossOrigin = "anonymous"; - image_1.src = img; - image_1.onload = function() { - res(image_1); - }; - image_1.onerror = function() { - log2(LEVEL.ERROR, false, "image %s load failed !!!", img); - rej(); - }; - return; - } - log2(LEVEL.WARN, img === void 0, "The type of imageMask option must be String or HTMLImageElement."); - rej(); - }); -} -function getFontSizeMapping(fontSize, range) { - if (is_function_default(fontSize)) { - return fontSize; - } - if (is_array_default(fontSize)) { - var fMin_1 = fontSize[0], fMax_1 = fontSize[1]; - if (!range) { - return function() { - return (fMax_1 + fMin_1) / 2; - }; - } - var min_1 = range[0], max_1 = range[1]; - if (max_1 === min_1) { - return function() { - return (fMax_1 + fMin_1) / 2; - }; - } - return function fontSize2(_a6) { - var value2 = _a6.value; - return (fMax_1 - fMin_1) / (max_1 - min_1) * (value2 - min_1) + fMin_1; - }; - } - return function() { - return fontSize; - }; -} -function getSingleKeyValues(data3, key) { - return data3.map(function(v3) { - return v3[key]; - }).filter(function(v3) { - if (typeof v3 === "number" && !isNaN(v3)) - return true; - return false; - }); -} -function getRotate(options) { - var _a6 = resolveRotate(options), rotation = _a6.rotation, rotationSteps = _a6.rotationSteps; - if (!is_array_default(rotation)) - return rotation; - var min7 = rotation[0]; - var max8 = rotation[1]; - var perSize = rotationSteps === 1 ? 0 : (max8 - min7) / (rotationSteps - 1); - return function rotate8() { - if (max8 === min7) - return max8; - return Math.floor(Math.random() * rotationSteps) * perSize; - }; -} -function resolveRotate(options) { - var rotationSteps = options.wordStyle.rotationSteps; - if (rotationSteps < 1) { - log2(LEVEL.WARN, false, "The rotationSteps option must be greater than or equal to 1."); - rotationSteps = 1; - } - return { - rotation: options.wordStyle.rotation, - rotationSteps - }; -} -function min4(numbers) { - return Math.min.apply(Math, numbers); -} -function max4(numbers) { - return Math.max.apply(Math, numbers); -} - -// node_modules/@antv/g2plot/esm/plots/word-cloud/constant.js -var WORD_CLOUD_COLOR_FIELD = "color"; -var DEFAULT_OPTIONS8 = deepAssign({}, Plot.getDefaultOptions(), { - timeInterval: 2e3, - legend: false, - tooltip: { - showTitle: false, - showMarkers: false, - showCrosshairs: false, - fields: ["text", "value", WORD_CLOUD_COLOR_FIELD], - formatter: function(datum) { - return { name: datum.text, value: datum.value }; - } - }, - wordStyle: { - fontFamily: "Verdana", - fontWeight: "normal", - padding: 1, - fontSize: [12, 60], - rotation: [0, 90], - rotationSteps: 2, - rotateRatio: 0.5 - } -}); - -// node_modules/@antv/g2plot/esm/plots/word-cloud/adaptor.js -function geometry8(params) { - var chart = params.chart, options = params.options; - var colorField = options.colorField, color4 = options.color; - var data3 = transform7(params); - chart.data(data3); - var p4 = deepAssign({}, params, { - options: { - xField: "x", - yField: "y", - seriesField: colorField && WORD_CLOUD_COLOR_FIELD, - rawFields: is_function_default(color4) && __spreadArrays(get_default(options, "rawFields", []), ["datum"]), - point: { - color: color4, - shape: "word-cloud" - } - } - }); - var ext = point(p4).ext; - ext.geometry.label(false); - chart.coordinate().reflect("y"); - chart.axis(false); - return params; -} -function meta5(params) { - return flow(scale7({ - x: { nice: false }, - y: { nice: false } - }))(params); -} -function legend6(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, colorField = options.colorField; - if (legend18 === false) { - chart.legend(false); - } else if (colorField) { - chart.legend(WORD_CLOUD_COLOR_FIELD, legend18); - } - return params; -} -function adaptor7(params) { - flow(geometry8, meta5, tooltip, legend6, interaction, animation, theme, state)(params); -} - -// node_modules/@antv/g2plot/esm/plots/word-cloud/shapes/word-cloud.js -registerShape("point", "word-cloud", { - draw: function(cfg, group2) { - var cx = cfg.x; - var cy = cfg.y; - var shape = group2.addShape("text", { - attrs: __assign(__assign({}, getTextAttrs(cfg)), { x: cx, y: cy }) - }); - var rotate8 = cfg.data.rotate; - if (typeof rotate8 === "number") { - Util.rotate(shape, rotate8 * Math.PI / 180); - } - return shape; - } -}); -function getTextAttrs(cfg) { - return { - fontSize: cfg.data.size, - text: cfg.data.text, - textAlign: "center", - fontFamily: cfg.data.font, - fontWeight: cfg.data.weight, - fill: cfg.color || cfg.defaultStyle.stroke, - textBaseline: "alphabetic" - }; -} - -// node_modules/@antv/g2plot/esm/plots/word-cloud/index.js -var WordCloud = function(_super) { - __extends(WordCloud2, _super); - function WordCloud2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "word-cloud"; - return _this; - } - WordCloud2.getDefaultOptions = function() { - return DEFAULT_OPTIONS8; - }; - WordCloud2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - if (this.options.imageMask) { - this.render(); - } else { - this.chart.changeData(transform7({ chart: this.chart, options: this.options })); - } - }; - WordCloud2.prototype.getDefaultOptions = function() { - return WordCloud2.getDefaultOptions(); - }; - WordCloud2.prototype.render = function() { - var _this = this; - return new Promise(function(res) { - var imageMask = _this.options.imageMask; - if (!imageMask) { - _super.prototype.render.call(_this); - res(); - return; - } - var handler = function(img) { - _this.options = __assign(__assign({}, _this.options), { imageMask: img || null }); - _super.prototype.render.call(_this); - res(); - }; - processImageMask(imageMask).then(handler).catch(handler); - }); - }; - WordCloud2.prototype.getSchemaAdaptor = function() { - return adaptor7; - }; - WordCloud2.prototype.triggerResize = function() { - var _this = this; - if (!this.chart.destroyed) { - this.execAdaptor(); - window.setTimeout(function() { - _super.prototype.triggerResize.call(_this); - }); - } - }; - return WordCloud2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/scatter/util.js -var import_d3_regression = __toModule(require_d3_regression()); -var REGRESSION_MAP = { - exp: import_d3_regression.regressionExp, - linear: import_d3_regression.regressionLinear, - loess: import_d3_regression.regressionLoess, - log: import_d3_regression.regressionLog, - poly: import_d3_regression.regressionPoly, - pow: import_d3_regression.regressionPow, - quad: import_d3_regression.regressionQuad -}; -function getQuadrantDefaultConfig(xBaseline, yBaseline) { - var textOffset = 10; - var defaultConfig = { - regionStyle: [ - { - position: { - start: [xBaseline, "max"], - end: ["max", yBaseline] - }, - style: { - fill: "#d8d0c0", - opacity: 0.4 - } - }, - { - position: { - start: ["min", "max"], - end: [xBaseline, yBaseline] - }, - style: { - fill: "#a3dda1", - opacity: 0.4 - } - }, - { - position: { - start: ["min", yBaseline], - end: [xBaseline, "min"] - }, - style: { - fill: "#d8d0c0", - opacity: 0.4 - } - }, - { - position: { - start: [xBaseline, yBaseline], - end: ["max", "min"] - }, - style: { - fill: "#a3dda1", - opacity: 0.4 - } - } - ], - lineStyle: { - stroke: "#9ba29a", - lineWidth: 1 - }, - labelStyle: [ - { - position: ["max", yBaseline], - offsetX: -textOffset, - offsetY: -textOffset, - style: { - textAlign: "right", - textBaseline: "bottom", - fontSize: 14, - fill: "#ccc" - } - }, - { - position: ["min", yBaseline], - offsetX: textOffset, - offsetY: -textOffset, - style: { - textAlign: "left", - textBaseline: "bottom", - fontSize: 14, - fill: "#ccc" - } - }, - { - position: ["min", yBaseline], - offsetX: textOffset, - offsetY: textOffset, - style: { - textAlign: "left", - textBaseline: "top", - fontSize: 14, - fill: "#ccc" - } - }, - { - position: ["max", yBaseline], - offsetX: -textOffset, - offsetY: textOffset, - style: { - textAlign: "right", - textBaseline: "top", - fontSize: 14, - fill: "#ccc" - } - } - ] - }; - return defaultConfig; -} -var splinePath = function(data3, config) { - var view = config.view, _a6 = config.options, xField = _a6.xField, yField = _a6.yField; - var xScaleView = view.getScaleByField(xField); - var yScaleView = view.getScaleByField(yField); - var pathData = data3.map(function(d3) { - return view.getCoordinate().convert({ x: xScaleView.scale(d3[0]), y: yScaleView.scale(d3[1]) }); - }); - return getSplinePath2(pathData, false); -}; -var getPath4 = function(config) { - var options = config.options; - var xField = options.xField, yField = options.yField, data3 = options.data, regressionLine2 = options.regressionLine; - var _a6 = regressionLine2.type, type2 = _a6 === void 0 ? "linear" : _a6, algorithm = regressionLine2.algorithm; - var pathData; - if (algorithm) { - pathData = is_array_default(algorithm) ? algorithm : algorithm(data3); - } else { - var reg = REGRESSION_MAP[type2]().x(function(d3) { - return d3[xField]; - }).y(function(d3) { - return d3[yField]; - }); - pathData = reg(data3); - } - return splinePath(pathData, config); -}; -var getMeta = function(options) { - var _a6; - var _b = options.meta, meta23 = _b === void 0 ? {} : _b, xField = options.xField, yField = options.yField, data3 = options.data; - var xFieldValue = data3[0][xField]; - var yFieldValue = data3[0][yField]; - var xIsPositiveNumber = xFieldValue > 0; - var yIsPositiveNumber = yFieldValue > 0; - function getMetaMinMax(field6, axis22) { - var fieldMeta = get_default(meta23, [field6]); - function getCustomValue(type2) { - return get_default(fieldMeta, type2); - } - var range = {}; - if (axis22 === "x") { - if (is_number_default(xFieldValue)) { - if (!is_number_default(getCustomValue("min"))) { - range["min"] = xIsPositiveNumber ? 0 : xFieldValue * 2; - } - if (!is_number_default(getCustomValue("max"))) { - range["max"] = xIsPositiveNumber ? xFieldValue * 2 : 0; - } - } - return range; - } - if (is_number_default(yFieldValue)) { - if (!is_number_default(getCustomValue("min"))) { - range["min"] = yIsPositiveNumber ? 0 : yFieldValue * 2; - } - if (!is_number_default(getCustomValue("max"))) { - range["max"] = yIsPositiveNumber ? yFieldValue * 2 : 0; - } - } - return range; - } - return __assign(__assign({}, meta23), (_a6 = {}, _a6[xField] = __assign(__assign({}, meta23[xField]), getMetaMinMax(xField, "x")), _a6[yField] = __assign(__assign({}, meta23[yField]), getMetaMinMax(yField, "y")), _a6)); -}; - -// node_modules/@antv/g2plot/esm/plots/scatter/adaptor.js -function transformOptions(options) { - var _a6 = options.data, data3 = _a6 === void 0 ? [] : _a6, xField = options.xField, yField = options.yField; - if (data3.length) { - var isOneX = true; - var isOneY = true; - var prev = data3[0]; - var curr = void 0; - for (var i4 = 1; i4 < data3.length; i4++) { - curr = data3[i4]; - if (prev[xField] !== curr[xField]) { - isOneX = false; - } - if (prev[yField] !== curr[yField]) { - isOneY = false; - } - if (!isOneX && !isOneY) { - break; - } - prev = curr; - } - var keys2 = []; - isOneX && keys2.push(xField); - isOneY && keys2.push(yField); - var meta_1 = pick(getMeta(options), keys2); - return deepAssign({}, options, { meta: meta_1 }); - } - return options; -} -function geometry9(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, type2 = options.type, color4 = options.color, shape = options.shape, pointStyle = options.pointStyle, shapeField = options.shapeField, colorField = options.colorField, xField = options.xField, yField = options.yField, sizeField = options.sizeField; - var size2 = options.size; - var tooltip10 = options.tooltip; - if (sizeField) { - if (!size2) { - size2 = [2, 8]; - } - if (is_number_default(size2)) { - size2 = [size2, size2]; - } - } - if (tooltip10 && !tooltip10.fields) { - tooltip10 = __assign(__assign({}, tooltip10), { fields: [xField, yField, colorField, sizeField, shapeField] }); - } - chart.data(data3); - point(deepAssign({}, params, { - options: { - seriesField: colorField, - point: { - color: color4, - shape, - size: size2, - style: pointStyle - }, - tooltip: tooltip10 - } - })); - var geometry35 = findGeometry(chart, "point"); - if (type2) { - geometry35.adjust(type2); - } - return params; -} -function meta6(params) { - var _a6; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - var newOptions = transformOptions(options); - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6)))(deepAssign({}, params, { options: newOptions })); -} -function axis4(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - chart.axis(xField, xAxis); - chart.axis(yField, yAxis); - return params; -} -function legend7(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, colorField = options.colorField, shapeField = options.shapeField, sizeField = options.sizeField, shapeLegend = options.shapeLegend, sizeLegend = options.sizeLegend; - var showLegend = legend18 !== false; - if (colorField) { - chart.legend(colorField, showLegend ? legend18 : false); - } - if (shapeField) { - if (shapeLegend) { - chart.legend(shapeField, shapeLegend); - } else { - chart.legend(shapeField, shapeLegend === false ? false : legend18); - } - } - if (sizeField) { - chart.legend(sizeField, sizeLegend ? sizeLegend : false); - } - if (!showLegend && !shapeLegend && !sizeLegend) { - chart.legend(false); - } - return params; -} -function label7(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, yField = options.yField; - var scatterGeometry = findGeometry(chart, "point"); - if (!label17) { - scatterGeometry.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - scatterGeometry.label({ - fields: [yField], - callback, - cfg: transformLabel(cfg) - }); - } - return params; -} -function scatterAnnotation(params) { - var options = params.options; - var quadrant = options.quadrant; - var annotationOptions = []; - if (quadrant) { - var _a6 = quadrant.xBaseline, xBaseline = _a6 === void 0 ? 0 : _a6, _b = quadrant.yBaseline, yBaseline = _b === void 0 ? 0 : _b, labels_1 = quadrant.labels, regionStyle_1 = quadrant.regionStyle, lineStyle = quadrant.lineStyle; - var defaultConfig_1 = getQuadrantDefaultConfig(xBaseline, yBaseline); - var quadrants = new Array(4).join(",").split(","); - quadrants.forEach(function(_8, index2) { - annotationOptions.push(__assign(__assign({ type: "region", top: false }, defaultConfig_1.regionStyle[index2].position), { style: deepAssign({}, defaultConfig_1.regionStyle[index2].style, regionStyle_1 === null || regionStyle_1 === void 0 ? void 0 : regionStyle_1[index2]) }), __assign({ type: "text", top: true }, deepAssign({}, defaultConfig_1.labelStyle[index2], labels_1 === null || labels_1 === void 0 ? void 0 : labels_1[index2]))); - }); - annotationOptions.push({ - type: "line", - top: false, - start: ["min", yBaseline], - end: ["max", yBaseline], - style: deepAssign({}, defaultConfig_1.lineStyle, lineStyle) - }, { - type: "line", - top: false, - start: [xBaseline, "min"], - end: [xBaseline, "max"], - style: deepAssign({}, defaultConfig_1.lineStyle, lineStyle) - }); - } - return flow(annotation(annotationOptions))(params); -} -function regressionLine(params) { - var options = params.options, chart = params.chart; - var regressionLine2 = options.regressionLine; - if (regressionLine2) { - var style_1 = regressionLine2.style, _a6 = regressionLine2.top, top_1 = _a6 === void 0 ? false : _a6; - var defaultStyle_1 = { - stroke: "#9ba29a", - lineWidth: 2, - opacity: 0.5 - }; - chart.annotation().shape({ - top: top_1, - render: function(container2, view) { - var group2 = container2.addGroup({ - id: chart.id + "-regression-line", - name: "regression-line-group" - }); - var path = getPath4({ - view, - options - }); - group2.addShape("path", { - name: "regression-line", - attrs: __assign(__assign({ path }, defaultStyle_1), style_1) - }); - } - }); - } - return params; -} -function tooltip3(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip; - if (tooltip10) { - chart.tooltip(tooltip10); - } else if (tooltip10 === false) { - chart.tooltip(false); - } - return params; -} -function adaptor8(params) { - return flow(geometry9, meta6, axis4, legend7, tooltip3, label7, brushInteraction, slider, scrollbar, interaction, scatterAnnotation, animation, theme, regressionLine)(params); -} - -// node_modules/@antv/g2plot/esm/plots/scatter/constant.js -var DEFAULT_OPTIONS9 = deepAssign({}, Plot.getDefaultOptions(), { - size: 4, - tooltip: { - showTitle: false, - showMarkers: false, - showCrosshairs: true, - crosshairs: { - type: "xy" - } - } -}); - -// node_modules/@antv/g2plot/esm/interactions/drag-move.js -registerInteraction("drag-move", { - start: [{ trigger: "plot:mousedown", action: "scale-translate:start" }], - processing: [ - { - trigger: "plot:mousemove", - action: "scale-translate:translate", - throttle: { wait: 100, leading: true, trailing: false } - } - ], - end: [{ trigger: "plot:mouseup", action: "scale-translate:end" }] -}); - -// node_modules/@antv/g2plot/esm/plots/scatter/index.js -var Scatter = function(_super) { - __extends(Scatter2, _super); - function Scatter2(container2, options) { - var _this = _super.call(this, container2, options) || this; - _this.type = "scatter"; - _this.on(VIEW_LIFE_CIRCLE.BEFORE_RENDER, function(evt) { - var _a6, _b; - var _c = _this, options2 = _c.options, chart = _c.chart; - if (((_a6 = evt.data) === null || _a6 === void 0 ? void 0 : _a6.source) === EVENTS3.FILTER) { - var filteredData = _this.chart.filterData(_this.chart.getData()); - meta6({ chart, options: __assign(__assign({}, options2), { data: filteredData }) }); - } - if (((_b = evt.data) === null || _b === void 0 ? void 0 : _b.source) === EVENTS3.RESET) { - meta6({ chart, options: options2 }); - } - }); - return _this; - } - Scatter2.getDefaultOptions = function() { - return DEFAULT_OPTIONS9; - }; - Scatter2.prototype.changeData = function(data3) { - this.updateOption(transformOptions(deepAssign({}, this.options, { data: data3 }))); - var _a6 = this, options = _a6.options, chart = _a6.chart; - meta6({ chart, options }); - this.chart.changeData(data3); - }; - Scatter2.prototype.getSchemaAdaptor = function() { - return adaptor8; - }; - Scatter2.prototype.getDefaultOptions = function() { - return Scatter2.getDefaultOptions(); - }; - return Scatter2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/radar/adaptor.js -function geometry10(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, lineStyle = options.lineStyle, color4 = options.color, pointOptions = options.point, areaOptions = options.area; - chart.data(data3); - var primary = deepAssign({}, params, { - options: { - line: { - style: lineStyle, - color: color4 - }, - point: pointOptions ? __assign({ color: color4 }, pointOptions) : pointOptions, - area: areaOptions ? __assign({ color: color4 }, areaOptions) : areaOptions, - label: void 0 - } - }); - var second = deepAssign({}, primary, { - options: { - tooltip: false - } - }); - var pointState = (pointOptions === null || pointOptions === void 0 ? void 0 : pointOptions.state) || options.state; - var pointParams = deepAssign({}, primary, { options: { tooltip: false, state: pointState } }); - line(primary); - point(pointParams); - area(second); - return params; -} -function meta7(params) { - var _a6; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6)))(params); -} -function coord(params) { - var chart = params.chart, options = params.options; - var radius = options.radius, startAngle = options.startAngle, endAngle = options.endAngle; - chart.coordinate("polar", { - radius, - startAngle, - endAngle - }); - return params; -} -function axis5(params) { - var chart = params.chart, options = params.options; - var xField = options.xField, xAxis = options.xAxis, yField = options.yField, yAxis = options.yAxis; - chart.axis(xField, xAxis); - chart.axis(yField, yAxis); - return params; -} -function label8(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, yField = options.yField; - var geometry35 = findGeometry(chart, "line"); - if (!label17) { - geometry35.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - geometry35.label({ - fields: [yField], - callback, - cfg: transformLabel(cfg) - }); - } - return params; -} -function adaptor9(params) { - return flow(geometry10, meta7, theme, coord, axis5, legend, tooltip, label8, interaction, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/radar/interactions/radar-tooltip-action.js -var RadarTooltipController = function(_super) { - __extends(RadarTooltipController2, _super); - function RadarTooltipController2() { - return _super !== null && _super.apply(this, arguments) || this; - } - Object.defineProperty(RadarTooltipController2.prototype, "name", { - get: function() { - return "radar-tooltip"; - }, - enumerable: false, - configurable: true - }); - RadarTooltipController2.prototype.getTooltipItems = function(point2) { - var _a6 = this.getTooltipCfg(), shared = _a6.shared, cfgTitle = _a6.title; - var hintItems = _super.prototype.getTooltipItems.call(this, point2); - if (hintItems.length > 0) { - var geometry_1 = this.view.geometries[0]; - var dataArray = geometry_1.dataArray; - var title_1 = hintItems[0].name; - var result_1 = []; - dataArray.forEach(function(mappingData) { - mappingData.forEach(function(d3) { - var items = Util.getTooltipItems(d3, geometry_1); - var item = items[0]; - if (!shared && item && item.name === title_1) { - var displayTitle = is_nil_default(cfgTitle) ? title_1 : cfgTitle; - result_1.push(__assign(__assign({}, item), { name: item.title, title: displayTitle })); - } else if (shared && item) { - var displayTitle = is_nil_default(cfgTitle) ? item.name || title_1 : cfgTitle; - result_1.push(__assign(__assign({}, item), { name: item.title, title: displayTitle })); - } - }); - }); - return result_1; - } - return []; - }; - return RadarTooltipController2; -}(tooltip_default); -registerComponentController("radar-tooltip", RadarTooltipController); -var RadarTooltipAction = function(_super) { - __extends(RadarTooltipAction2, _super); - function RadarTooltipAction2() { - return _super !== null && _super.apply(this, arguments) || this; - } - RadarTooltipAction2.prototype.init = function() { - var view = this.context.view; - view.removeInteraction("tooltip"); - }; - RadarTooltipAction2.prototype.show = function() { - var event = this.context.event; - var controller = this.getTooltipController(); - controller.showTooltip({ x: event.x, y: event.y }); - }; - RadarTooltipAction2.prototype.hide = function() { - var controller = this.getTooltipController(); - controller.hideTooltip(); - }; - RadarTooltipAction2.prototype.getTooltipController = function() { - var view = this.context.view; - return view.getController("radar-tooltip"); - }; - return RadarTooltipAction2; -}(base_default12); - -// node_modules/@antv/g2plot/esm/plots/radar/interactions/index.js -registerAction("radar-tooltip", RadarTooltipAction); -registerInteraction("radar-tooltip", { - start: [{ trigger: "plot:mousemove", action: "radar-tooltip:show" }], - end: [{ trigger: "plot:mouseleave", action: "radar-tooltip:hide" }] -}); - -// node_modules/@antv/g2plot/esm/plots/radar/index.js -var Radar = function(_super) { - __extends(Radar2, _super); - function Radar2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "radar"; - return _this; - } - Radar2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - this.chart.changeData(data3); - }; - Radar2.prototype.getDefaultOptions = function() { - return deepAssign({}, _super.prototype.getDefaultOptions.call(this), { - xAxis: { - label: { - offset: 15 - }, - grid: { - line: { - type: "line" - } - } - }, - yAxis: { - grid: { - line: { - type: "circle" - } - } - }, - legend: { - position: "top" - }, - tooltip: { - shared: true, - showCrosshairs: true, - showMarkers: true, - crosshairs: { - type: "xy", - line: { - style: { - stroke: "#565656", - lineDash: [4] - } - }, - follow: true - } - } - }); - }; - Radar2.prototype.getSchemaAdaptor = function() { - return adaptor9; - }; - return Radar2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/dual-axes/types.js -var AxisType; -(function(AxisType2) { - AxisType2["Left"] = "Left"; - AxisType2["Right"] = "Right"; -})(AxisType || (AxisType = {})); -var DualAxesGeometry; -(function(DualAxesGeometry2) { - DualAxesGeometry2["Line"] = "line"; - DualAxesGeometry2["Column"] = "column"; -})(DualAxesGeometry || (DualAxesGeometry = {})); - -// node_modules/@antv/g2plot/esm/plots/dual-axes/constant.js -var LEFT_AXES_VIEW = "left-axes-view"; -var RIGHT_AXES_VIEW = "right-axes-view"; -var DEFAULT_YAXIS_CONFIG = { - nice: true, - label: { - autoHide: true, - autoRotate: false - } -}; -var DEFAULT_LEFT_YAXIS_CONFIG = __assign(__assign({}, DEFAULT_YAXIS_CONFIG), { position: "left" }); -var DEFAULT_RIGHT_YAXIS_CONFIG = __assign(__assign({}, DEFAULT_YAXIS_CONFIG), { position: "right", grid: null }); - -// node_modules/@antv/g2plot/esm/plots/dual-axes/util/option.js -function isLine(geometryOption) { - return get_default(geometryOption, "geometry") === DualAxesGeometry.Line; -} -function isColumn(geometryOption) { - return get_default(geometryOption, "geometry") === DualAxesGeometry.Column; -} -function getGeometryOption(xField, yField, geometryOption) { - return isColumn(geometryOption) ? deepAssign({}, { - geometry: DualAxesGeometry.Column, - label: geometryOption.label && geometryOption.isRange ? { - content: function(item) { - var _a6; - return (_a6 = item[yField]) === null || _a6 === void 0 ? void 0 : _a6.join("-"); - } - } : void 0 - }, geometryOption) : __assign({ geometry: DualAxesGeometry.Line }, geometryOption); -} -function transformObjectToArray(yField, transformAttribute) { - var y1 = yField[0], y22 = yField[1]; - if (is_array_default(transformAttribute)) { - var a1_1 = transformAttribute[0], a2_1 = transformAttribute[1]; - return [a1_1, a2_1]; - } - var a1 = get_default(transformAttribute, y1); - var a22 = get_default(transformAttribute, y22); - return [a1, a22]; -} -function getYAxisWithDefault(yAxis, axisType) { - if (axisType === AxisType.Left) { - return yAxis === false ? false : deepAssign({}, DEFAULT_LEFT_YAXIS_CONFIG, yAxis); - } else if (axisType === AxisType.Right) { - return yAxis === false ? false : deepAssign({}, DEFAULT_RIGHT_YAXIS_CONFIG, yAxis); - } - return yAxis; -} - -// node_modules/@antv/g2plot/esm/plots/dual-axes/util/legend.js -function getViewLegendItems(params) { - var view = params.view, geometryOption = params.geometryOption, yField = params.yField, legend18 = params.legend; - var userMarker = get_default(legend18, "marker"); - var geometry35 = findGeometry(view, isLine(geometryOption) ? "line" : "interval"); - if (!geometryOption.seriesField) { - var legendItemName = get_default(view, "options.scales." + yField + ".alias") || yField; - var colorAttribute = geometry35.getAttribute("color"); - var color4 = view.getTheme().defaultColor; - if (colorAttribute) { - color4 = Util.getMappingValue(colorAttribute, legendItemName, get_default(colorAttribute, ["values", 0], color4)); - } - var marker = (is_function_default(userMarker) ? userMarker : !is_empty_default(userMarker) && deepAssign({}, { - style: { - stroke: color4, - fill: color4 - } - }, userMarker)) || (isLine(geometryOption) ? { - symbol: function(x6, y5, r4) { - return [ - ["M", x6 - r4, y5], - ["L", x6 + r4, y5] - ]; - }, - style: { - lineWidth: 2, - r: 6, - stroke: color4 - } - } : { - symbol: "square", - style: { - fill: color4 - } - }); - return [ - { - value: yField, - name: legendItemName, - marker, - isGeometry: true, - viewId: view.id - } - ]; - } - var attributes = geometry35.getGroupAttributes(); - return reduce_default(attributes, function(items, attr) { - var attrItems = Util.getLegendItems(view, geometry35, attr, view.getTheme(), userMarker); - return items.concat(attrItems); - }, []); -} - -// node_modules/@antv/g2plot/esm/plots/dual-axes/util/geometry.js -function drawSingleGeometry(params) { - var options = params.options, chart = params.chart; - var geometryOption = options.geometryOption; - var isStack = geometryOption.isStack, color4 = geometryOption.color, seriesField = geometryOption.seriesField, groupField = geometryOption.groupField, isGroup = geometryOption.isGroup; - var FIELD_KEY = ["xField", "yField"]; - if (isLine(geometryOption)) { - line(deepAssign({}, params, { - options: __assign(__assign(__assign({}, pick(options, FIELD_KEY)), geometryOption), { line: { - color: geometryOption.color, - style: geometryOption.lineStyle - } }) - })); - point(deepAssign({}, params, { - options: __assign(__assign(__assign({}, pick(options, FIELD_KEY)), geometryOption), { point: geometryOption.point && __assign({ color: color4, shape: "circle" }, geometryOption.point) }) - })); - var adjust_1 = []; - if (isGroup) { - adjust_1.push({ - type: "dodge", - dodgeBy: groupField || seriesField, - customOffset: 0 - }); - } - if (isStack) { - adjust_1.push({ - type: "stack" - }); - } - if (adjust_1.length) { - each_default(chart.geometries, function(g4) { - g4.adjust(adjust_1); - }); - } - } - if (isColumn(geometryOption)) { - adaptor3(deepAssign({}, params, { - options: __assign(__assign(__assign({}, pick(options, FIELD_KEY)), geometryOption), { widthRatio: geometryOption.columnWidthRatio, interval: __assign(__assign({}, pick(geometryOption, ["color"])), { style: geometryOption.columnStyle }) }) - })); - } - return params; -} - -// node_modules/@antv/g2plot/esm/plots/dual-axes/util/render-sider.js -var doSliderFilter = function(view, sliderValue) { - var min7 = sliderValue[0], max8 = sliderValue[1]; - var data3 = view.getOptions().data; - var xScale = view.getXScale(); - var dataSize = size(data3); - if (!xScale || !dataSize) { - return; - } - var isHorizontal2 = true; - var values2 = values_of_key_default(data3, xScale.field); - var xValues = isHorizontal2 ? values2 : values2.reverse(); - var xTickCount = size(xValues); - var minIndex = Math.floor(min7 * (xTickCount - 1)); - var maxIndex = Math.floor(max8 * (xTickCount - 1)); - view.filter(xScale.field, function(value2) { - var idx = xValues.indexOf(value2); - return idx > -1 ? isBetween3(idx, minIndex, maxIndex) : true; - }); - view.render(true); -}; - -// node_modules/@antv/g2plot/esm/plots/dual-axes/adaptor.js -function transformOptions2(params) { - var _a6; - var options = params.options; - var _b = options.geometryOptions, geometryOptions = _b === void 0 ? [] : _b, xField = options.xField, yField = options.yField; - var allLine = every_default(geometryOptions, function(_a7) { - var geometry35 = _a7.geometry; - return geometry35 === DualAxesGeometry.Line || geometry35 === void 0; - }); - return deepAssign({}, { - options: { - geometryOptions: [], - meta: (_a6 = {}, _a6[xField] = { - type: "cat", - sync: true, - range: allLine ? [0, 1] : void 0 - }, _a6), - tooltip: { - showMarkers: allLine, - showCrosshairs: allLine, - shared: true, - crosshairs: { - type: "x" - } - }, - interactions: !allLine ? [{ type: "legend-visible-filter" }, { type: "active-region" }] : [{ type: "legend-visible-filter" }], - legend: { - position: "top-left" - } - } - }, params, { - options: { - yAxis: transformObjectToArray(yField, options.yAxis), - geometryOptions: [ - getGeometryOption(xField, yField[0], geometryOptions[0]), - getGeometryOption(xField, yField[1], geometryOptions[1]) - ], - annotations: transformObjectToArray(yField, options.annotations) - } - }); -} -function createViews(params) { - var _a6, _b; - var chart = params.chart, options = params.options; - var geometryOptions = options.geometryOptions; - var SORT_MAP = { line: 0, column: 1 }; - var geometries = [ - { type: (_a6 = geometryOptions[0]) === null || _a6 === void 0 ? void 0 : _a6.geometry, id: LEFT_AXES_VIEW }, - { type: (_b = geometryOptions[1]) === null || _b === void 0 ? void 0 : _b.geometry, id: RIGHT_AXES_VIEW } - ]; - geometries.sort(function(a4, b10) { - return -SORT_MAP[a4.type] + SORT_MAP[b10.type]; - }).forEach(function(g4) { - return chart.createView({ id: g4.id }); - }); - return params; -} -function geometry11(params) { - var chart = params.chart, options = params.options; - var xField = options.xField, yField = options.yField, geometryOptions = options.geometryOptions, data3 = options.data, tooltip10 = options.tooltip; - var geometries = [ - __assign(__assign({}, geometryOptions[0]), { id: LEFT_AXES_VIEW, data: data3[0], yField: yField[0] }), - __assign(__assign({}, geometryOptions[1]), { id: RIGHT_AXES_VIEW, data: data3[1], yField: yField[1] }) - ]; - geometries.forEach(function(geometry35) { - var id = geometry35.id, data4 = geometry35.data, yField2 = geometry35.yField; - var isPercent = isColumn(geometry35) && geometry35.isPercent; - var formatData = isPercent ? percent(data4, yField2, xField, yField2) : data4; - var view = findViewById(chart, id).data(formatData); - var tooltipOptions = isPercent ? __assign({ formatter: function(datum) { - return { - name: datum[geometry35.seriesField] || yField2, - value: (Number(datum[yField2]) * 100).toFixed(2) + "%" - }; - } }, tooltip10) : tooltip10; - drawSingleGeometry({ - chart: view, - options: { - xField, - yField: yField2, - tooltip: tooltipOptions, - geometryOption: geometry35 - } - }); - }); - return params; -} -function color2(params) { - var _a6; - var chart = params.chart, options = params.options; - var geometryOptions = options.geometryOptions; - var themeColor = ((_a6 = chart.getTheme()) === null || _a6 === void 0 ? void 0 : _a6.colors10) || []; - var start = 0; - chart.once("beforepaint", function() { - each_default(geometryOptions, function(geometryOption, index2) { - var view = findViewById(chart, index2 === 0 ? LEFT_AXES_VIEW : RIGHT_AXES_VIEW); - if (geometryOption.color) - return; - var groupScale = view.getGroupScales(); - var count2 = get_default(groupScale, [0, "values", "length"], 1); - var color4 = themeColor.slice(start, start + count2).concat(index2 === 0 ? [] : themeColor); - view.geometries.forEach(function(geometry35) { - if (geometryOption.seriesField) { - geometry35.color(geometryOption.seriesField, color4); - } else { - geometry35.color(color4[0]); - } - }); - start += count2; - }); - chart.render(true); - }); - return params; -} -function meta8(params) { - var _a6, _b; - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField[0]] = yAxis[0], _a6))(deepAssign({}, params, { chart: findViewById(chart, LEFT_AXES_VIEW) })); - scale7((_b = {}, _b[xField] = xAxis, _b[yField[1]] = yAxis[1], _b))(deepAssign({}, params, { chart: findViewById(chart, RIGHT_AXES_VIEW) })); - return params; -} -function axis6(params) { - var chart = params.chart, options = params.options; - var leftView = findViewById(chart, LEFT_AXES_VIEW); - var rightView = findViewById(chart, RIGHT_AXES_VIEW); - var xField = options.xField, yField = options.yField, xAxis = options.xAxis, yAxis = options.yAxis; - chart.axis(xField, false); - chart.axis(yField[0], false); - chart.axis(yField[1], false); - leftView.axis(xField, xAxis); - leftView.axis(yField[0], getYAxisWithDefault(yAxis[0], AxisType.Left)); - rightView.axis(xField, false); - rightView.axis(yField[1], getYAxisWithDefault(yAxis[1], AxisType.Right)); - return params; -} -function tooltip4(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip; - var leftView = findViewById(chart, LEFT_AXES_VIEW); - var rightView = findViewById(chart, RIGHT_AXES_VIEW); - chart.tooltip(tooltip10); - leftView.tooltip({ - shared: true - }); - rightView.tooltip({ - shared: true - }); - return params; -} -function interaction3(params) { - var chart = params.chart; - interaction(deepAssign({}, params, { chart: findViewById(chart, LEFT_AXES_VIEW) })); - interaction(deepAssign({}, params, { chart: findViewById(chart, RIGHT_AXES_VIEW) })); - return params; -} -function annotation2(params) { - var chart = params.chart, options = params.options; - var annotations = options.annotations; - var a1 = get_default(annotations, [0]); - var a22 = get_default(annotations, [1]); - annotation(a1)(deepAssign({}, params, { - chart: findViewById(chart, LEFT_AXES_VIEW), - options: { - annotations: a1 - } - })); - annotation(a22)(deepAssign({}, params, { - chart: findViewById(chart, RIGHT_AXES_VIEW), - options: { - annotations: a22 - } - })); - return params; -} -function theme2(params) { - var chart = params.chart; - theme(deepAssign({}, params, { chart: findViewById(chart, LEFT_AXES_VIEW) })); - theme(deepAssign({}, params, { chart: findViewById(chart, RIGHT_AXES_VIEW) })); - theme(params); - return params; -} -function animation2(params) { - var chart = params.chart; - animation(deepAssign({}, params, { chart: findViewById(chart, LEFT_AXES_VIEW) })); - animation(deepAssign({}, params, { chart: findViewById(chart, RIGHT_AXES_VIEW) })); - return params; -} -function limitInPlot3(params) { - var chart = params.chart, options = params.options; - var yAxis = options.yAxis; - limitInPlot2(deepAssign({}, params, { - chart: findViewById(chart, LEFT_AXES_VIEW), - options: { - yAxis: yAxis[0] - } - })); - limitInPlot2(deepAssign({}, params, { - chart: findViewById(chart, RIGHT_AXES_VIEW), - options: { - yAxis: yAxis[1] - } - })); - return params; -} -function legend8(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, geometryOptions = options.geometryOptions, yField = options.yField, data3 = options.data; - var leftView = findViewById(chart, LEFT_AXES_VIEW); - var rightView = findViewById(chart, RIGHT_AXES_VIEW); - if (legend18 === false) { - chart.legend(false); - } else if (is_object_default(legend18) && legend18.custom === true) { - chart.legend(legend18); - } else { - var leftLegend_1 = get_default(geometryOptions, [0, "legend"], legend18); - var rightLegend_1 = get_default(geometryOptions, [1, "legend"], legend18); - chart.once("beforepaint", function() { - var leftItems = data3[0].length ? getViewLegendItems({ - view: leftView, - geometryOption: geometryOptions[0], - yField: yField[0], - legend: leftLegend_1 - }) : []; - var rightItems = data3[1].length ? getViewLegendItems({ - view: rightView, - geometryOption: geometryOptions[1], - yField: yField[1], - legend: rightLegend_1 - }) : []; - chart.legend(deepAssign({}, legend18, { - custom: true, - items: leftItems.concat(rightItems) - })); - }); - if (geometryOptions[0].seriesField) { - leftView.legend(geometryOptions[0].seriesField, leftLegend_1); - } - if (geometryOptions[1].seriesField) { - rightView.legend(geometryOptions[1].seriesField, rightLegend_1); - } - chart.on("legend-item:click", function(evt) { - var delegateObject = get_default(evt, "gEvent.delegateObject", {}); - if (delegateObject && delegateObject.item) { - var _a6 = delegateObject.item, field_1 = _a6.value, isGeometry = _a6.isGeometry, viewId = _a6.viewId; - if (isGeometry) { - var idx = find_index_default(yField, function(yF) { - return yF === field_1; - }); - if (idx > -1) { - var geometries = get_default(findViewById(chart, viewId), "geometries"); - each_default(geometries, function(g4) { - g4.changeVisible(!delegateObject.item.unchecked); - }); - } - } else { - var legendItem_1 = get_default(chart.getController("legend"), "option.items", []); - each_default(chart.views, function(view) { - var groupScale = view.getGroupScales(); - each_default(groupScale, function(scale12) { - if (scale12.values && scale12.values.indexOf(field_1) > -1) { - view.filter(scale12.field, function(value2) { - var curLegendItem = find_default(legendItem_1, function(item) { - return item.value === value2; - }); - return !curLegendItem.unchecked; - }); - } - }); - chart.render(true); - }); - } - } - }); - } - return params; -} -function slider2(params) { - var chart = params.chart, options = params.options; - var slider3 = options.slider; - var leftView = findViewById(chart, LEFT_AXES_VIEW); - var rightView = findViewById(chart, RIGHT_AXES_VIEW); - if (slider3) { - leftView.option("slider", slider3); - leftView.on("slider:valuechanged", function(evt) { - var _a6 = evt.event, value2 = _a6.value, originValue = _a6.originValue; - if (is_equal_default(value2, originValue)) { - return; - } - doSliderFilter(rightView, value2); - }); - chart.once("afterpaint", function() { - if (!is_boolean_default(slider3)) { - var start = slider3.start, end2 = slider3.end; - if (start || end2) { - doSliderFilter(rightView, [start, end2]); - } - } - }); - } - return params; -} -function adaptor10(params) { - return flow(transformOptions2, createViews, theme2, geometry11, meta8, axis6, limitInPlot3, tooltip4, interaction3, annotation2, animation2, color2, legend8, slider2)(params); -} - -// node_modules/@antv/g2plot/esm/plots/dual-axes/index.js -var DualAxes = function(_super) { - __extends(DualAxes2, _super); - function DualAxes2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "dual-axes"; - return _this; - } - DualAxes2.prototype.getDefaultOptions = function() { - return deepAssign({}, _super.prototype.getDefaultOptions.call(this), { - yAxis: [], - syncViewPadding: true - }); - }; - DualAxes2.prototype.getSchemaAdaptor = function() { - return adaptor10; - }; - return DualAxes2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/tiny-line/constants.js -var X_FIELD = "x"; -var Y_FIELD = "y"; -var DEFAULT_TOOLTIP_OPTIONS = { - showTitle: false, - shared: true, - showMarkers: false, - customContent: function(x6, data3) { - return "" + get_default(data3, [0, "data", "y"], 0); - }, - containerTpl: '
    ', - itemTpl: "{value}", - domStyles: { - "g2-tooltip": { - padding: "2px 4px", - fontSize: "10px" - } - }, - showCrosshairs: true, - crosshairs: { - type: "x" - } -}; -var DEFAULT_OPTIONS10 = { - appendPadding: 2, - tooltip: __assign({}, DEFAULT_TOOLTIP_OPTIONS), - animation: {} -}; - -// node_modules/@antv/g2plot/esm/plots/tiny-line/utils.js -function getTinyData(data3) { - return map_default(data3 || [], function(y5, x6) { - return { x: "" + x6, y: y5 }; - }); -} - -// node_modules/@antv/g2plot/esm/plots/tiny-area/adaptor.js -function geometry12(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, color4 = options.color, areaStyle = options.areaStyle, pointOptions = options.point, lineOptions = options.line; - var pointState = pointOptions === null || pointOptions === void 0 ? void 0 : pointOptions.state; - var seriesData = getTinyData(data3); - chart.data(seriesData); - var primary = deepAssign({}, params, { - options: { - xField: X_FIELD, - yField: Y_FIELD, - area: { color: color4, style: areaStyle }, - line: lineOptions, - point: pointOptions - } - }); - var second = deepAssign({}, primary, { options: { tooltip: false } }); - var pointParams = deepAssign({}, primary, { options: { tooltip: false, state: pointState } }); - area(primary); - line(second); - point(pointParams); - chart.axis(false); - chart.legend(false); - return params; -} -function meta9(params) { - var _a6, _b; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, data3 = options.data; - var seriesData = getTinyData(data3); - return flow(scale7((_a6 = {}, _a6[X_FIELD] = xAxis, _a6[Y_FIELD] = yAxis, _a6), (_b = {}, _b[X_FIELD] = { - type: "cat" - }, _b[Y_FIELD] = adjustYMetaByZero(seriesData, Y_FIELD), _b)))(params); -} -function adaptor11(params) { - return flow(pattern("areaStyle"), geometry12, meta9, tooltip, theme, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/tiny-line/adaptor.js -function geometry13(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, color4 = options.color, lineStyle = options.lineStyle, pointMapping = options.point; - var pointState = pointMapping === null || pointMapping === void 0 ? void 0 : pointMapping.state; - var seriesData = getTinyData(data3); - chart.data(seriesData); - var primary = deepAssign({}, params, { - options: { - xField: X_FIELD, - yField: Y_FIELD, - line: { - color: color4, - style: lineStyle - }, - point: pointMapping - } - }); - var pointParams = deepAssign({}, primary, { options: { tooltip: false, state: pointState } }); - line(primary); - point(pointParams); - chart.axis(false); - chart.legend(false); - return params; -} -function adaptor12(params) { - return flow(geometry13, meta9, theme, tooltip, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/tiny-line/index.js -var TinyLine = function(_super) { - __extends(TinyLine2, _super); - function TinyLine2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "tiny-line"; - return _this; - } - TinyLine2.getDefaultOptions = function() { - return DEFAULT_OPTIONS10; - }; - TinyLine2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this, chart = _a6.chart, options = _a6.options; - meta9({ chart, options }); - chart.changeData(getTinyData(data3)); - }; - TinyLine2.prototype.getDefaultOptions = function() { - return TinyLine2.getDefaultOptions(); - }; - TinyLine2.prototype.getSchemaAdaptor = function() { - return adaptor12; - }; - return TinyLine2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/tiny-column/adaptor.js -function geometry14(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, color4 = options.color, columnStyle = options.columnStyle, columnWidthRatio = options.columnWidthRatio; - var seriesData = getTinyData(data3); - chart.data(seriesData); - var p4 = deepAssign({}, params, { - options: { - xField: X_FIELD, - yField: Y_FIELD, - widthRatio: columnWidthRatio, - interval: { - style: columnStyle, - color: color4 - } - } - }); - interval2(p4); - chart.axis(false); - chart.legend(false); - chart.interaction("element-active"); - return params; -} -function adaptor13(params) { - return flow(theme, pattern("columnStyle"), geometry14, meta9, tooltip, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/tiny-column/constants.js -var DEFAULT_TOOLTIP_OPTIONS2 = { - showTitle: false, - shared: true, - showMarkers: false, - customContent: function(x6, data3) { - return "" + get_default(data3, [0, "data", "y"], 0); - }, - containerTpl: '
    ', - itemTpl: "{value}", - domStyles: { - "g2-tooltip": { - padding: "2px 4px", - fontSize: "10px" - } - } -}; -var DEFAULT_OPTIONS11 = { - appendPadding: 2, - tooltip: __assign({}, DEFAULT_TOOLTIP_OPTIONS2), - animation: {} -}; - -// node_modules/@antv/g2plot/esm/plots/tiny-column/index.js -var TinyColumn = function(_super) { - __extends(TinyColumn2, _super); - function TinyColumn2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "tiny-column"; - return _this; - } - TinyColumn2.getDefaultOptions = function() { - return DEFAULT_OPTIONS11; - }; - TinyColumn2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this, chart = _a6.chart, options = _a6.options; - meta9({ chart, options }); - chart.changeData(getTinyData(data3)); - }; - TinyColumn2.prototype.getDefaultOptions = function() { - return TinyColumn2.getDefaultOptions(); - }; - TinyColumn2.prototype.getSchemaAdaptor = function() { - return adaptor13; - }; - return TinyColumn2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/tiny-area/constants.js -var DEFAULT_OPTIONS12 = { - appendPadding: 2, - tooltip: __assign({}, DEFAULT_TOOLTIP_OPTIONS), - color: "l(90) 0:#E5EDFE 1:#ffffff", - areaStyle: { - fillOpacity: 0.6 - }, - line: { - size: 1, - color: "#5B8FF9" - }, - animation: {} -}; - -// node_modules/@antv/g2plot/esm/plots/tiny-area/index.js -var TinyArea = function(_super) { - __extends(TinyArea2, _super); - function TinyArea2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "tiny-area"; - return _this; - } - TinyArea2.getDefaultOptions = function() { - return DEFAULT_OPTIONS12; - }; - TinyArea2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this, chart = _a6.chart, options = _a6.options; - meta9({ chart, options }); - chart.changeData(getTinyData(data3)); - }; - TinyArea2.prototype.getDefaultOptions = function() { - return TinyArea2.getDefaultOptions(); - }; - TinyArea2.prototype.getSchemaAdaptor = function() { - return adaptor11; - }; - return TinyArea2; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/transform/histogram.js -function getBinKey(value2, binWidth, binNumber) { - if (binNumber === 1) { - return [0, binWidth]; - } - var index2 = Math.floor(value2 / binWidth); - return [binWidth * index2, binWidth * (index2 + 1)]; -} -function sturges(values2) { - return Math.ceil(Math.log(values2.length) / Math.LN2) + 1; -} -function binHistogram(data3, binField, binWidth, binNumber, stackField) { - var originData_copy = clone_default(data3); - sort_by_default(originData_copy, binField); - var values2 = values_of_key_default(originData_copy, binField); - var range = get_range_default(values2); - var rangeWidth = range.max - range.min; - var _binWidth = binWidth; - if (!binWidth && binNumber) { - _binWidth = binNumber > 1 ? rangeWidth / (binNumber - 1) : range.max; - } - if (!binWidth && !binNumber) { - var _defaultBinNumber = sturges(values2); - _binWidth = rangeWidth / _defaultBinNumber; - } - var bins = {}; - var groups = group_by_default(originData_copy, stackField); - if (is_empty_default(groups)) { - each_default(originData_copy, function(data4) { - var value2 = data4[binField]; - var bin = getBinKey(value2, _binWidth, binNumber); - var binKey = bin[0] + "-" + bin[1]; - if (!has_key_default(bins, binKey)) { - bins[binKey] = { range: bin, count: 0 }; - } - bins[binKey].count += 1; - }); - } else { - Object.keys(groups).forEach(function(groupKey) { - each_default(groups[groupKey], function(data4) { - var value2 = data4[binField]; - var bin = getBinKey(value2, _binWidth, binNumber); - var binKey = bin[0] + "-" + bin[1]; - var groupKeyBinKey = binKey + "-" + groupKey; - if (!has_key_default(bins, groupKeyBinKey)) { - bins[groupKeyBinKey] = { range: bin, count: 0 }; - bins[groupKeyBinKey][stackField] = groupKey; - } - bins[groupKeyBinKey].count += 1; - }); - }); - } - var plotData = []; - each_default(bins, function(bin) { - plotData.push(bin); - }); - return plotData; -} - -// node_modules/@antv/g2plot/esm/plots/histogram/constant.js -var HISTOGRAM_X_FIELD = "range"; -var HISTOGRAM_Y_FIELD = "count"; -var DEFAULT_OPTIONS13 = deepAssign({}, Plot.getDefaultOptions(), { - columnStyle: { - stroke: "#FFFFFF" - }, - tooltip: { - shared: true, - showMarkers: false - }, - interactions: [{ type: "active-region" }] -}); - -// node_modules/@antv/g2plot/esm/plots/histogram/adaptor.js -function geometry15(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, binField = options.binField, binNumber = options.binNumber, binWidth = options.binWidth, color4 = options.color, stackField = options.stackField, legend18 = options.legend, columnStyle = options.columnStyle; - var plotData = binHistogram(data3, binField, binWidth, binNumber, stackField); - chart.data(plotData); - var p4 = deepAssign({}, params, { - options: { - xField: HISTOGRAM_X_FIELD, - yField: HISTOGRAM_Y_FIELD, - seriesField: stackField, - isStack: true, - interval: { - color: color4, - style: columnStyle - } - } - }); - interval2(p4); - if (legend18 && stackField) { - chart.legend(stackField, legend18); - } - return params; -} -function meta10(params) { - var _a6; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis; - return flow(scale7((_a6 = {}, _a6[HISTOGRAM_X_FIELD] = xAxis, _a6[HISTOGRAM_Y_FIELD] = yAxis, _a6)))(params); -} -function axis7(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis; - if (xAxis === false) { - chart.axis(HISTOGRAM_X_FIELD, false); - } else { - chart.axis(HISTOGRAM_X_FIELD, xAxis); - } - if (yAxis === false) { - chart.axis(HISTOGRAM_Y_FIELD, false); - } else { - chart.axis(HISTOGRAM_Y_FIELD, yAxis); - } - return params; -} -function label9(params) { - var chart = params.chart, options = params.options; - var label17 = options.label; - var geometry35 = findGeometry(chart, "interval"); - if (!label17) { - geometry35.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - geometry35.label({ - fields: [HISTOGRAM_Y_FIELD], - callback, - cfg: transformLabel(cfg) - }); - } - return params; -} -function adaptor14(params) { - return flow(theme, pattern("columnStyle"), geometry15, meta10, axis7, state, label9, tooltip, interaction, animation)(params); -} - -// node_modules/@antv/g2plot/esm/plots/histogram/index.js -var Histogram = function(_super) { - __extends(Histogram2, _super); - function Histogram2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "histogram"; - return _this; - } - Histogram2.getDefaultOptions = function() { - return DEFAULT_OPTIONS13; - }; - Histogram2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = this.options, binField = _a6.binField, binNumber = _a6.binNumber, binWidth = _a6.binWidth, stackField = _a6.stackField; - this.chart.changeData(binHistogram(data3, binField, binWidth, binNumber, stackField)); - }; - Histogram2.prototype.getDefaultOptions = function() { - return Histogram2.getDefaultOptions(); - }; - Histogram2.prototype.getSchemaAdaptor = function() { - return adaptor14; - }; - return Histogram2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/progress/constants.js -var DEFAULT_COLOR = ["#FAAD14", "#E8EDF3"]; -var DEFAULT_OPTIONS14 = { - percent: 0.2, - color: DEFAULT_COLOR, - animation: {} -}; - -// node_modules/@antv/g2plot/esm/plots/progress/utils.js -function getProgressData(percent2) { - var clampPercent = clamp_default(isRealNumber(percent2) ? percent2 : 0, 0, 1); - return [ - { - type: "current", - percent: clampPercent - }, - { - type: "target", - percent: 1 - clampPercent - } - ]; -} - -// node_modules/@antv/g2plot/esm/plots/progress/adaptor.js -function geometry16(params) { - var chart = params.chart, options = params.options; - var percent2 = options.percent, progressStyle = options.progressStyle, color4 = options.color, barWidthRatio = options.barWidthRatio; - chart.data(getProgressData(percent2)); - var p4 = deepAssign({}, params, { - options: { - xField: "1", - yField: "percent", - seriesField: "type", - isStack: true, - widthRatio: barWidthRatio, - interval: { - style: progressStyle, - color: is_string_default(color4) ? [color4, DEFAULT_COLOR[1]] : color4 - }, - args: { - zIndexReversed: true, - sortZIndex: true - } - } - }); - interval2(p4); - chart.tooltip(false); - chart.axis(false); - chart.legend(false); - return params; -} -function coordinate5(params) { - var chart = params.chart; - chart.coordinate("rect").transpose(); - return params; -} -function adaptor15(params) { - return flow(geometry16, scale7({}), coordinate5, animation, theme, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/progress/index.js -var Progress = function(_super) { - __extends(Progress2, _super); - function Progress2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "process"; - return _this; - } - Progress2.getDefaultOptions = function() { - return DEFAULT_OPTIONS14; - }; - Progress2.prototype.changeData = function(percent2) { - this.updateOption({ percent: percent2 }); - this.chart.changeData(getProgressData(percent2)); - }; - Progress2.prototype.getDefaultOptions = function() { - return Progress2.getDefaultOptions(); - }; - Progress2.prototype.getSchemaAdaptor = function() { - return adaptor15; - }; - return Progress2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/ring-progress/adaptor.js -function coordinate6(params) { - var chart = params.chart, options = params.options; - var innerRadius = options.innerRadius, radius = options.radius; - chart.coordinate("theta", { - innerRadius, - radius - }); - return params; -} -function statistic(params, updated) { - var chart = params.chart, options = params.options; - var innerRadius = options.innerRadius, statistic4 = options.statistic, percent2 = options.percent, meta23 = options.meta; - chart.getController("annotation").clear(true); - if (innerRadius && statistic4) { - var metaFormatter = get_default(meta23, ["percent", "formatter"]) || function(v3) { - return (v3 * 100).toFixed(2) + "%"; - }; - var contentOpt = statistic4.content; - if (contentOpt) { - contentOpt = deepAssign({}, contentOpt, { - content: !is_nil_default(contentOpt.content) ? contentOpt.content : metaFormatter(percent2) - }); - } - renderStatistic(chart, { statistic: __assign(__assign({}, statistic4), { content: contentOpt }), plotType: "ring-progress" }, { percent: percent2 }); - } - if (updated) { - chart.render(true); - } - return params; -} -function adaptor16(params) { - return flow(geometry16, scale7({}), coordinate6, statistic, animation, theme, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/ring-progress/constants.js -var DEFAULT_OPTIONS15 = { - percent: 0.2, - innerRadius: 0.8, - radius: 0.98, - color: ["#FAAD14", "#E8EDF3"], - statistic: { - title: false, - content: { - style: { - fontSize: "14px", - fontWeight: 300, - fill: "#4D4D4D", - textAlign: "center", - textBaseline: "middle" - } - } - }, - animation: {} -}; - -// node_modules/@antv/g2plot/esm/plots/ring-progress/index.js -var RingProgress = function(_super) { - __extends(RingProgress2, _super); - function RingProgress2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "ring-process"; - return _this; - } - RingProgress2.getDefaultOptions = function() { - return DEFAULT_OPTIONS15; - }; - RingProgress2.prototype.changeData = function(percent2) { - this.chart.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null)); - this.updateOption({ percent: percent2 }); - this.chart.data(getProgressData(percent2)); - statistic({ chart: this.chart, options: this.options }, true); - this.chart.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null)); - }; - RingProgress2.prototype.getDefaultOptions = function() { - return RingProgress2.getDefaultOptions(); - }; - RingProgress2.prototype.getSchemaAdaptor = function() { - return adaptor16; - }; - return RingProgress2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/heatmap/adaptor.js -function geometry17(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, type2 = options.type, xField = options.xField, yField = options.yField, colorField = options.colorField, sizeField = options.sizeField, sizeRatio = options.sizeRatio, shape = options.shape, color4 = options.color, tooltip10 = options.tooltip, heatmapStyle = options.heatmapStyle; - chart.data(data3); - var geometryType = "polygon"; - if (type2 === "density") { - geometryType = "heatmap"; - } - var _a6 = getTooltipMapping(tooltip10, [xField, yField, colorField]), fields = _a6.fields, formatter = _a6.formatter; - var checkedSizeRatio = 1; - if (sizeRatio || sizeRatio === 0) { - if (!shape && !sizeField) { - console.warn("sizeRatio is not in effect: Must define shape or sizeField first"); - } else if (sizeRatio < 0 || sizeRatio > 1) { - console.warn("sizeRatio is not in effect: It must be a number in [0,1]"); - } else { - checkedSizeRatio = sizeRatio; - } - } - geometry(deepAssign({}, params, { - options: { - type: geometryType, - colorField, - tooltipFields: fields, - shapeField: sizeField || "", - label: void 0, - mapping: { - tooltip: formatter, - shape: shape && (sizeField ? function(dautm) { - var field6 = data3.map(function(row) { - return row[sizeField]; - }); - var min7 = Math.min.apply(Math, field6); - var max8 = Math.max.apply(Math, field6); - return [shape, (get_default(dautm, sizeField) - min7) / (max8 - min7), checkedSizeRatio]; - } : function() { - return [shape, 1, checkedSizeRatio]; - }), - color: color4 || colorField && chart.getTheme().sequenceColors.join("-"), - style: heatmapStyle - } - } - })); - return params; -} -function meta11(params) { - var _a6; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6)))(params); -} -function axis8(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - if (xAxis === false) { - chart.axis(xField, false); - } else { - chart.axis(xField, xAxis); - } - if (yAxis === false) { - chart.axis(yField, false); - } else { - chart.axis(yField, yAxis); - } - return params; -} -function legend9(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, colorField = options.colorField, sizeField = options.sizeField, sizeLegend = options.sizeLegend; - var showLegend = legend18 !== false; - if (colorField) { - chart.legend(colorField, showLegend ? legend18 : false); - } - if (sizeField) { - chart.legend(sizeField, sizeLegend === void 0 ? legend18 : sizeLegend); - } - if (!showLegend && !sizeLegend) { - chart.legend(false); - } - return params; -} -function label10(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, colorField = options.colorField, type2 = options.type; - var geometry35 = findGeometry(chart, type2 === "density" ? "heatmap" : "polygon"); - if (!label17) { - geometry35.label(false); - } else if (colorField) { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - geometry35.label({ - fields: [colorField], - callback, - cfg: transformLabel(cfg) - }); - } - return params; -} -function coordinate7(params) { - var chart = params.chart, options = params.options; - var coordinate11 = options.coordinate, reflect = options.reflect; - if (coordinate11) { - chart.coordinate({ - type: coordinate11.type || "rect", - cfg: coordinate11.cfg - }); - } - if (reflect) { - chart.coordinate().reflect(reflect); - } - return params; -} -function adaptor17(params) { - return flow(theme, pattern("heatmapStyle"), meta11, coordinate7, geometry17, axis8, legend9, tooltip, label10, annotation(), interaction, animation, state)(params); -} - -// node_modules/@antv/g2plot/esm/plots/heatmap/constant.js -var DEFAULT_OPTIONS16 = deepAssign({}, Plot.getDefaultOptions(), { - type: "polygon", - legend: false, - coordinate: { - type: "rect" - }, - xAxis: { - tickLine: null, - line: null, - grid: { - alignTick: false, - line: { - style: { - lineWidth: 1, - lineDash: null, - stroke: "#f0f0f0" - } - } - } - }, - yAxis: { - grid: { - alignTick: false, - line: { - style: { - lineWidth: 1, - lineDash: null, - stroke: "#f0f0f0" - } - } - } - } -}); - -// node_modules/@antv/g2plot/esm/plots/heatmap/shapes/circle.js -registerShape("polygon", "circle", { - draw: function(cfg, group2) { - var _a6, _b; - var cx = cfg.x; - var cy = cfg.y; - var points = this.parsePoints(cfg.points); - var width2 = Math.abs(points[2].x - points[1].x); - var height = Math.abs(points[1].y - points[0].y); - var maxRadius = Math.min(width2, height) / 2; - var value2 = Number(cfg.shape[1]); - var sizeRatio = Number(cfg.shape[2]); - var radiusRatio = Math.sqrt(sizeRatio); - var radius = maxRadius * radiusRatio * Math.sqrt(value2); - var fill = ((_a6 = cfg.style) === null || _a6 === void 0 ? void 0 : _a6.fill) || cfg.color || ((_b = cfg.defaultStyle) === null || _b === void 0 ? void 0 : _b.fill); - var polygon2 = group2.addShape("circle", { - attrs: __assign(__assign(__assign({ x: cx, y: cy, r: radius }, cfg.defaultStyle), cfg.style), { fill }) - }); - return polygon2; - } -}); - -// node_modules/@antv/g2plot/esm/plots/heatmap/shapes/square.js -registerShape("polygon", "square", { - draw: function(cfg, group2) { - var _a6, _b; - var cx = cfg.x; - var cy = cfg.y; - var points = this.parsePoints(cfg.points); - var width2 = Math.abs(points[2].x - points[1].x); - var height = Math.abs(points[1].y - points[0].y); - var maxSideLength = Math.min(width2, height); - var value2 = Number(cfg.shape[1]); - var sizeRatio = Number(cfg.shape[2]); - var lenRatio = Math.sqrt(sizeRatio); - var sideLength = maxSideLength * lenRatio * Math.sqrt(value2); - var fill = ((_a6 = cfg.style) === null || _a6 === void 0 ? void 0 : _a6.fill) || cfg.color || ((_b = cfg.defaultStyle) === null || _b === void 0 ? void 0 : _b.fill); - var polygon2 = group2.addShape("rect", { - attrs: __assign(__assign(__assign({ x: cx - sideLength / 2, y: cy - sideLength / 2, width: sideLength, height: sideLength }, cfg.defaultStyle), cfg.style), { fill }) - }); - return polygon2; - } -}); - -// node_modules/@antv/g2plot/esm/plots/heatmap/index.js -var Heatmap2 = function(_super) { - __extends(Heatmap3, _super); - function Heatmap3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "heatmap"; - return _this; - } - Heatmap3.getDefaultOptions = function() { - return DEFAULT_OPTIONS16; - }; - Heatmap3.prototype.getSchemaAdaptor = function() { - return adaptor17; - }; - Heatmap3.prototype.getDefaultOptions = function() { - return Heatmap3.getDefaultOptions(); - }; - return Heatmap3; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/box/constant.js -var _a3; -var BOX_RANGE = "$$range$$"; -var BOX_RANGE_ALIAS = "low-q1-median-q3-high"; -var BOX_SYNC_NAME = "$$y_outliers$$"; -var OUTLIERS_VIEW_ID = "outliers_view"; -var DEFAULT_OPTIONS17 = deepAssign({}, Plot.getDefaultOptions(), { - meta: (_a3 = {}, _a3[BOX_RANGE] = { min: 0, alias: BOX_RANGE_ALIAS }, _a3), - interactions: [{ type: "active-region" }], - tooltip: { - showMarkers: false, - shared: true - }, - boxStyle: { - lineWidth: 1 - } -}); - -// node_modules/@antv/g2plot/esm/plots/box/utils.js -var transformData = function(data3, yField) { - var newData = data3; - if (Array.isArray(yField)) { - var low_1 = yField[0], q1_1 = yField[1], median_1 = yField[2], q3_1 = yField[3], high_1 = yField[4]; - newData = map_default(data3, function(obj) { - obj[BOX_RANGE] = [obj[low_1], obj[q1_1], obj[median_1], obj[q3_1], obj[high_1]]; - return obj; - }); - } - return newData; -}; - -// node_modules/@antv/g2plot/esm/plots/box/adaptor.js -function field(params) { - var chart = params.chart, options = params.options; - var xField = options.xField, yField = options.yField, groupField = options.groupField, color4 = options.color, tooltip10 = options.tooltip, boxStyle = options.boxStyle; - chart.data(transformData(options.data, yField)); - var yFieldName = is_array_default(yField) ? BOX_RANGE : yField; - var rawFields = yField ? is_array_default(yField) ? yField : [yField] : []; - var tooltipOptions = tooltip10; - if (tooltipOptions !== false) { - tooltipOptions = deepAssign({}, { fields: is_array_default(yField) ? yField : [] }, tooltipOptions); - } - var ext = schema2(deepAssign({}, params, { - options: { - xField, - yField: yFieldName, - seriesField: groupField, - tooltip: tooltipOptions, - rawFields, - label: false, - schema: { - shape: "box", - color: color4, - style: boxStyle - } - } - })).ext; - if (groupField) { - ext.geometry.adjust("dodge"); - } - return params; -} -function outliersPoint(params) { - var chart = params.chart, options = params.options; - var xField = options.xField, data3 = options.data, outliersField = options.outliersField, outliersStyle = options.outliersStyle, padding3 = options.padding, label17 = options.label; - if (!outliersField) - return params; - var outliersView = chart.createView({ padding: padding3, id: OUTLIERS_VIEW_ID }); - var outliersViewData = data3.reduce(function(ret, datum) { - var outliersData = datum[outliersField]; - outliersData.forEach(function(d3) { - var _a6; - return ret.push(__assign(__assign({}, datum), (_a6 = {}, _a6[outliersField] = d3, _a6))); - }); - return ret; - }, []); - outliersView.data(outliersViewData); - point({ - chart: outliersView, - options: { - xField, - yField: outliersField, - point: { shape: "circle", style: outliersStyle }, - label: label17 - } - }); - outliersView.axis(false); - return params; -} -function meta12(params) { - var _a6, _b; - var chart = params.chart, options = params.options; - var meta23 = options.meta, xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField, outliersField = options.outliersField; - var yFieldName = Array.isArray(yField) ? BOX_RANGE : yField; - var baseMeta = {}; - if (outliersField) { - var syncName = BOX_SYNC_NAME; - baseMeta = (_a6 = {}, _a6[outliersField] = { sync: syncName, nice: true }, _a6[yFieldName] = { sync: syncName, nice: true }, _a6); - } - var scales = deepAssign(baseMeta, meta23, (_b = {}, _b[xField] = pick(xAxis, AXIS_META_CONFIG_KEYS), _b[yFieldName] = pick(yAxis, AXIS_META_CONFIG_KEYS), _b)); - chart.scale(scales); - return params; -} -function axis9(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - var yFieldName = Array.isArray(yField) ? BOX_RANGE : yField; - if (xAxis === false) { - chart.axis(xField, false); - } else { - chart.axis(xField, xAxis); - } - if (yAxis === false) { - chart.axis(BOX_RANGE, false); - } else { - chart.axis(yFieldName, yAxis); - } - return params; -} -function legend10(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, groupField = options.groupField; - if (groupField) { - if (legend18) { - chart.legend(groupField, legend18); - } else { - chart.legend(groupField, { position: "bottom" }); - } - } else { - chart.legend(false); - } - return params; -} -function adaptor18(params) { - return flow(field, outliersPoint, meta12, axis9, legend10, tooltip, interaction, animation, theme)(params); -} - -// node_modules/@antv/g2plot/esm/plots/box/index.js -var Box = function(_super) { - __extends(Box3, _super); - function Box3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "box"; - return _this; - } - Box3.getDefaultOptions = function() { - return DEFAULT_OPTIONS17; - }; - Box3.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var yField = this.options.yField; - var outliersView = this.chart.views.find(function(v3) { - return v3.id === OUTLIERS_VIEW_ID; - }); - if (outliersView) { - outliersView.data(data3); - } - this.chart.changeData(transformData(data3, yField)); - }; - Box3.prototype.getDefaultOptions = function() { - return Box3.getDefaultOptions(); - }; - Box3.prototype.getSchemaAdaptor = function() { - return adaptor18; - }; - return Box3; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/violin/utils.js -var import_pdfast = __toModule(require_src()); - -// node_modules/@antv/g2plot/esm/utils/transform/quantile.js -function quantileSorted2(x6, p4) { - var idx = x6.length * p4; - if (x6.length === 0) { - throw new Error("quantile requires at least one data point."); - } else if (p4 < 0 || p4 > 1) { - throw new Error("quantiles must be between 0 and 1"); - } else if (p4 === 1) { - return x6[x6.length - 1]; - } else if (p4 === 0) { - return x6[0]; - } else if (idx % 1 !== 0) { - return x6[Math.ceil(idx) - 1]; - } else if (x6.length % 2 === 0) { - return (x6[idx - 1] + x6[idx]) / 2; - } else { - return x6[idx]; - } -} -function swap2(arr, i4, j4) { - var tmp = arr[i4]; - arr[i4] = arr[j4]; - arr[j4] = tmp; -} -function quickselect(arr, k4, left2, right2) { - left2 = left2 || 0; - right2 = right2 || arr.length - 1; - while (right2 > left2) { - if (right2 - left2 > 600) { - var n3 = right2 - left2 + 1; - var m4 = k4 - left2 + 1; - var z3 = Math.log(n3); - var s4 = 0.5 * Math.exp(2 * z3 / 3); - var sd = 0.5 * Math.sqrt(z3 * s4 * (n3 - s4) / n3); - if (m4 - n3 / 2 < 0) - sd *= -1; - var newLeft = Math.max(left2, Math.floor(k4 - m4 * s4 / n3 + sd)); - var newRight = Math.min(right2, Math.floor(k4 + (n3 - m4) * s4 / n3 + sd)); - quickselect(arr, k4, newLeft, newRight); - } - var t4 = arr[k4]; - var i4 = left2; - var j4 = right2; - swap2(arr, left2, k4); - if (arr[right2] > t4) - swap2(arr, left2, right2); - while (i4 < j4) { - swap2(arr, i4, j4); - i4++; - j4--; - while (arr[i4] < t4) - i4++; - while (arr[j4] > t4) - j4--; - } - if (arr[left2] === t4) - swap2(arr, left2, j4); - else { - j4++; - swap2(arr, j4, right2); - } - if (j4 <= k4) - left2 = j4 + 1; - if (k4 <= j4) - right2 = j4 - 1; - } -} -function quantile(x6, p4) { - var copy8 = x6.slice(); - if (Array.isArray(p4)) { - multiQuantileSelect(copy8, p4); - var results = []; - for (var i4 = 0; i4 < p4.length; i4++) { - results[i4] = quantileSorted2(copy8, p4[i4]); - } - return results; - } else { - var idx = quantileIndex(copy8.length, p4); - quantileSelect(copy8, idx, 0, copy8.length - 1); - return quantileSorted2(copy8, p4); - } -} -function quantileSelect(arr, k4, left2, right2) { - if (k4 % 1 === 0) { - quickselect(arr, k4, left2, right2); - } else { - k4 = Math.floor(k4); - quickselect(arr, k4, left2, right2); - quickselect(arr, k4 + 1, k4 + 1, right2); - } -} -function multiQuantileSelect(arr, p4) { - var indices = [0]; - for (var i4 = 0; i4 < p4.length; i4++) { - indices.push(quantileIndex(arr.length, p4[i4])); - } - indices.push(arr.length - 1); - indices.sort(compare); - var stack = [0, indices.length - 1]; - while (stack.length) { - var r4 = Math.ceil(stack.pop()); - var l4 = Math.floor(stack.pop()); - if (r4 - l4 <= 1) - continue; - var m4 = Math.floor((l4 + r4) / 2); - quantileSelect(arr, indices[m4], Math.floor(indices[l4]), Math.ceil(indices[r4])); - stack.push(l4, m4, m4, r4); - } -} -function compare(a4, b10) { - return a4 - b10; -} -function quantileIndex(len5, p4) { - var idx = len5 * p4; - if (p4 === 1) { - return len5 - 1; - } else if (p4 === 0) { - return 0; - } else if (idx % 1 !== 0) { - return Math.ceil(idx) - 1; - } else if (len5 % 2 === 0) { - return idx - 0.5; - } else { - return idx; - } -} - -// node_modules/@antv/g2plot/esm/plots/violin/utils.js -var toBoxValue = function(values2) { - return { - low: min_default(values2), - high: max_default(values2), - q1: quantile(values2, 0.25), - q3: quantile(values2, 0.75), - median: quantile(values2, [0.5]), - minMax: [min_default(values2), max_default(values2)], - quantile: [quantile(values2, 0.25), quantile(values2, 0.75)] - }; -}; -var toViolinValue = function(values2, pdfOptions) { - var pdfResults = import_pdfast.default.create(values2, pdfOptions); - return { - violinSize: pdfResults.map(function(result) { - return result.y; - }), - violinY: pdfResults.map(function(result) { - return result.x; - }) - }; -}; -var transformViolinData = function(options) { - var xField = options.xField, yField = options.yField, seriesField = options.seriesField, data3 = options.data, kde = options.kde; - var pdfOptions = { - min: kde.min, - max: kde.max, - size: kde.sampleSize, - width: kde.width - }; - if (!seriesField) { - var group_1 = group_by_default(data3, xField); - return Object.keys(group_1).map(function(x6) { - var records = group_1[x6]; - var values2 = records.map(function(record) { - return record[yField]; - }); - return __assign(__assign({ x: x6 }, toViolinValue(values2, pdfOptions)), toBoxValue(values2)); - }); - } - var resultList = []; - var seriesGroup = group_by_default(data3, seriesField); - Object.keys(seriesGroup).forEach(function(series) { - var group2 = group_by_default(seriesGroup[series], xField); - return Object.keys(group2).forEach(function(key) { - var _a6; - var records = group2[key]; - var values2 = records.map(function(record) { - return record[yField]; - }); - resultList.push(__assign(__assign((_a6 = { x: key }, _a6[seriesField] = series, _a6), toViolinValue(values2, pdfOptions)), toBoxValue(values2))); - }); - }); - return resultList; -}; - -// node_modules/@antv/g2plot/esm/plots/violin/constant.js -var X_FIELD2 = "x"; -var VIOLIN_Y_FIELD = "violinY"; -var VIOLIN_SIZE_FIELD = "violinSize"; -var MIN_MAX_FIELD = "minMax"; -var QUANTILE_FIELD = "quantile"; -var MEDIAN_FIELD = "median"; -var VIOLIN_VIEW_ID = "violin_view"; -var MIN_MAX_VIEW_ID = "min_max_view"; -var QUANTILE_VIEW_ID = "quantile_view"; -var MEDIAN_VIEW_ID = "median_view"; -var DEFAULT_OPTIONS18 = deepAssign({}, Plot.getDefaultOptions(), { - syncViewPadding: true, - kde: { - type: "triangular", - sampleSize: 32, - width: 3 - }, - violinStyle: { - lineWidth: 1, - fillOpacity: 0.3, - strokeOpacity: 0.75 - }, - xAxis: { - grid: { - line: null - }, - tickLine: { - alignTick: false - } - }, - yAxis: { - grid: { - line: { - style: { - lineWidth: 0.5, - lineDash: [4, 4] - } - } - } - }, - legend: { - position: "top-left" - }, - tooltip: { - showMarkers: false - } -}); - -// node_modules/@antv/g2plot/esm/plots/violin/adaptor.js -var TOOLTIP_FIELDS = ["low", "high", "q1", "q3", "median"]; -var adjustCfg = [ - { - type: "dodge", - marginRatio: 1 / 32 - } -]; -function data(params) { - var chart = params.chart, options = params.options; - chart.data(transformViolinData(options)); - return params; -} -function violinView(params) { - var chart = params.chart, options = params.options; - var seriesField = options.seriesField, color4 = options.color, _a6 = options.shape, shape = _a6 === void 0 ? "violin" : _a6, violinStyle = options.violinStyle, tooltip10 = options.tooltip, state2 = options.state; - var view = chart.createView({ id: VIOLIN_VIEW_ID }); - violin({ - chart: view, - options: { - xField: X_FIELD2, - yField: VIOLIN_Y_FIELD, - seriesField: seriesField ? seriesField : X_FIELD2, - sizeField: VIOLIN_SIZE_FIELD, - tooltip: __assign({ fields: TOOLTIP_FIELDS }, tooltip10), - violin: { - style: violinStyle, - color: color4, - shape - }, - state: state2 - } - }); - view.geometries[0].adjust(adjustCfg); - return params; -} -function boxView(params) { - var chart = params.chart, options = params.options; - var seriesField = options.seriesField, color4 = options.color, tooltip10 = options.tooltip, box2 = options.box; - if (box2 === false) - return params; - var minMaxView = chart.createView({ id: MIN_MAX_VIEW_ID }); - interval2({ - chart: minMaxView, - options: { - xField: X_FIELD2, - yField: MIN_MAX_FIELD, - seriesField: seriesField ? seriesField : X_FIELD2, - tooltip: __assign({ fields: TOOLTIP_FIELDS }, tooltip10), - state: typeof box2 === "object" ? box2.state : {}, - interval: { - color: color4, - size: 1, - style: { - lineWidth: 0 - } - } - } - }); - minMaxView.geometries[0].adjust(adjustCfg); - var quantileView = chart.createView({ id: QUANTILE_VIEW_ID }); - interval2({ - chart: quantileView, - options: { - xField: X_FIELD2, - yField: QUANTILE_FIELD, - seriesField: seriesField ? seriesField : X_FIELD2, - tooltip: __assign({ fields: TOOLTIP_FIELDS }, tooltip10), - state: typeof box2 === "object" ? box2.state : {}, - interval: { - color: color4, - size: 8, - style: { - fillOpacity: 1 - } - } - } - }); - quantileView.geometries[0].adjust(adjustCfg); - var medianView = chart.createView({ id: MEDIAN_VIEW_ID }); - point({ - chart: medianView, - options: { - xField: X_FIELD2, - yField: MEDIAN_FIELD, - seriesField: seriesField ? seriesField : X_FIELD2, - tooltip: __assign({ fields: TOOLTIP_FIELDS }, tooltip10), - state: typeof box2 === "object" ? box2.state : {}, - point: { - color: color4, - size: 1, - style: { - fill: "white", - lineWidth: 0 - } - } - } - }); - medianView.geometries[0].adjust(adjustCfg); - quantileView.axis(false); - minMaxView.axis(false); - medianView.axis(false); - medianView.legend(false); - minMaxView.legend(false); - quantileView.legend(false); - return params; -} -function meta13(params) { - var _a6; - var chart = params.chart, options = params.options; - var meta23 = options.meta, xAxis = options.xAxis, yAxis = options.yAxis; - var baseMeta = {}; - var scales = deepAssign(baseMeta, meta23, (_a6 = {}, _a6[X_FIELD2] = __assign(__assign({ sync: true }, pick(xAxis, AXIS_META_CONFIG_KEYS)), { - type: "cat" - }), _a6[VIOLIN_Y_FIELD] = __assign({ sync: true }, pick(yAxis, AXIS_META_CONFIG_KEYS)), _a6[MIN_MAX_FIELD] = __assign({ sync: VIOLIN_Y_FIELD }, pick(yAxis, AXIS_META_CONFIG_KEYS)), _a6[QUANTILE_FIELD] = __assign({ sync: VIOLIN_Y_FIELD }, pick(yAxis, AXIS_META_CONFIG_KEYS)), _a6[MEDIAN_FIELD] = __assign({ sync: VIOLIN_Y_FIELD }, pick(yAxis, AXIS_META_CONFIG_KEYS)), _a6)); - chart.scale(scales); - return params; -} -function axis10(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis; - var view = findViewById(chart, VIOLIN_VIEW_ID); - if (xAxis === false) { - view.axis(X_FIELD2, false); - } else { - view.axis(X_FIELD2, xAxis); - } - if (yAxis === false) { - view.axis(VIOLIN_Y_FIELD, false); - } else { - view.axis(VIOLIN_Y_FIELD, yAxis); - } - chart.axis(false); - return params; -} -function legend11(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, seriesField = options.seriesField, shape = options.shape; - if (legend18 === false) { - chart.legend(false); - } else { - var legendField_1 = seriesField ? seriesField : X_FIELD2; - var legendOptions = omit_default(legend18, ["selected"]); - if (!shape || !shape.startsWith("hollow")) { - if (!get_default(legendOptions, ["marker", "style", "lineWidth"])) { - set_default(legendOptions, ["marker", "style", "lineWidth"], 0); - } - } - chart.legend(legendField_1, legendOptions); - if (get_default(legend18, "selected")) { - each_default(chart.views, function(view) { - return view.legend(legendField_1, legend18); - }); - } - } - return params; -} -function annotation3(params) { - var chart = params.chart; - var violinView2 = findViewById(chart, VIOLIN_VIEW_ID); - annotation()(__assign(__assign({}, params), { chart: violinView2 })); - return params; -} -function animation3(params) { - var chart = params.chart, options = params.options; - var animation7 = options.animation; - each_default(chart.views, function(view) { - if (typeof animation7 === "boolean") { - view.animate(animation7); - } else { - view.animate(true); - } - each_default(view.geometries, function(g4) { - g4.animate(animation7); - }); - }); - return params; -} -function adaptor19(params) { - return flow(theme, data, violinView, boxView, meta13, tooltip, axis10, legend11, interaction, annotation3, animation3)(params); -} - -// node_modules/@antv/g2plot/esm/plots/violin/index.js -var Violin2 = function(_super) { - __extends(Violin3, _super); - function Violin3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "violin"; - return _this; - } - Violin3.getDefaultOptions = function() { - return DEFAULT_OPTIONS18; - }; - Violin3.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - this.chart.changeData(transformViolinData(this.options)); - }; - Violin3.prototype.getDefaultOptions = function() { - return Violin3.getDefaultOptions(); - }; - Violin3.prototype.getSchemaAdaptor = function() { - return adaptor19; - }; - return Violin3; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/color/blend.js -var each2 = function(f3) { - return function(c0, c1) { - var out = []; - out[0] = f3(c0[0], c1[0]); - out[1] = f3(c0[1], c1[1]); - out[2] = f3(c0[2], c1[2]); - return out; - }; -}; -var blendObject = { - normal: function(a4) { - return a4; - }, - multiply: function(a4, b10) { - return a4 * b10 / 255; - }, - screen: function(a4, b10) { - return 255 * (1 - (1 - a4 / 255) * (1 - b10 / 255)); - }, - overlay: function(a4, b10) { - return b10 < 128 ? 2 * a4 * b10 / 255 : 255 * (1 - 2 * (1 - a4 / 255) * (1 - b10 / 255)); - }, - darken: function(a4, b10) { - return a4 > b10 ? b10 : a4; - }, - lighten: function(a4, b10) { - return a4 > b10 ? a4 : b10; - }, - dodge: function(a4, b10) { - if (a4 === 255) - return 255; - a4 = 255 * (b10 / 255) / (1 - a4 / 255); - return a4 > 255 ? 255 : a4; - }, - burn: function(a4, b10) { - if (b10 === 255) - return 255; - else if (a4 === 0) - return 0; - else - return 255 * (1 - Math.min(1, (1 - b10 / 255) / (a4 / 255))); - } -}; -var innerBlend = function(mode) { - if (!blendObject[mode]) { - throw new Error("unknown blend mode " + mode); - } - return blendObject[mode]; -}; -function blend(c0, c1, mode) { - if (mode === void 0) { - mode = "normal"; - } - var blendRgbArr = each2(innerBlend(mode))(colorToArr(c0), colorToArr(c1)); - var _a6 = colorToArr(c0), r0 = _a6[0], g0 = _a6[1], b02 = _a6[2], a0 = _a6[3]; - var _b = colorToArr(c1), r1 = _b[0], g1 = _b[1], b12 = _b[2], a1 = _b[3]; - var a4 = Number((a0 + a1 * (1 - a0)).toFixed(2)); - var r4 = Math.round((a0 * (1 - a1) * (r0 / 255) + a0 * a1 * (blendRgbArr[0] / 255) + (1 - a0) * a1 * (r1 / 255)) / a4 * 255); - var g4 = Math.round((a0 * (1 - a1) * (g0 / 255) + a0 * a1 * (blendRgbArr[1] / 255) + (1 - a0) * a1 * (g1 / 255)) / a4 * 255); - var b10 = Math.round((a0 * (1 - a1) * (b02 / 255) + a0 * a1 * (blendRgbArr[2] / 255) + (1 - a0) * a1 * (b12 / 255)) / a4 * 255); - return "rgba(" + r4 + ", " + g4 + ", " + b10 + ", " + a4 + ")"; -} -function colorToArr(c5) { - var color4 = c5.replace("/s+/g", ""); - var rgbaArr; - if (typeof color4 === "string" && !color4.startsWith("rgba") && !color4.startsWith("#")) { - return rgbaArr = esm_default2.rgb2arr(esm_default2.toRGB(color4)).concat([1]); - } - if (color4.startsWith("rgba")) - rgbaArr = color4.replace("rgba(", "").replace(")", "").split(","); - if (color4.startsWith("#")) - rgbaArr = esm_default2.rgb2arr(color4).concat([1]); - return rgbaArr.map(function(item, index2) { - return index2 === 3 ? Number(item) : item | 0; - }); -} - -// node_modules/@antv/g2plot/esm/plots/venn/layout/layout.js -var import_fmin = __toModule(require_fmin()); - -// node_modules/@antv/g2plot/esm/plots/venn/layout/circleintersection.js -var SMALL = 1e-10; -function intersectionArea(circles, stats) { - var intersectionPoints = getIntersectionPoints(circles); - var innerPoints = intersectionPoints.filter(function(p5) { - return containedInCircles(p5, circles); - }); - var arcArea = 0, polygonArea = 0, i4; - var arcs = []; - if (innerPoints.length > 1) { - var center2 = getCenter(innerPoints); - for (i4 = 0; i4 < innerPoints.length; ++i4) { - var p4 = innerPoints[i4]; - p4.angle = Math.atan2(p4.x - center2.x, p4.y - center2.y); - } - innerPoints.sort(function(a5, b10) { - return b10.angle - a5.angle; - }); - var p22 = innerPoints[innerPoints.length - 1]; - for (i4 = 0; i4 < innerPoints.length; ++i4) { - var p1 = innerPoints[i4]; - polygonArea += (p22.x + p1.x) * (p1.y - p22.y); - var midPoint = { x: (p1.x + p22.x) / 2, y: (p1.y + p22.y) / 2 }; - var arc2 = null; - for (var j4 = 0; j4 < p1.parentIndex.length; ++j4) { - if (p22.parentIndex.indexOf(p1.parentIndex[j4]) > -1) { - var circle3 = circles[p1.parentIndex[j4]], a1 = Math.atan2(p1.x - circle3.x, p1.y - circle3.y), a22 = Math.atan2(p22.x - circle3.x, p22.y - circle3.y); - var angleDiff = a22 - a1; - if (angleDiff < 0) { - angleDiff += 2 * Math.PI; - } - var a4 = a22 - angleDiff / 2; - var width2 = distance9(midPoint, { - x: circle3.x + circle3.radius * Math.sin(a4), - y: circle3.y + circle3.radius * Math.cos(a4) - }); - if (width2 > circle3.radius * 2) { - width2 = circle3.radius * 2; - } - if (arc2 === null || arc2.width > width2) { - arc2 = { circle: circle3, width: width2, p1, p2: p22 }; - } - } - } - if (arc2 !== null) { - arcs.push(arc2); - arcArea += circleArea(arc2.circle.radius, arc2.width); - p22 = p1; - } - } - } else { - var smallest = circles[0]; - for (i4 = 1; i4 < circles.length; ++i4) { - if (circles[i4].radius < smallest.radius) { - smallest = circles[i4]; - } - } - var disjoint = false; - for (i4 = 0; i4 < circles.length; ++i4) { - if (distance9(circles[i4], smallest) > Math.abs(smallest.radius - circles[i4].radius)) { - disjoint = true; - break; - } - } - if (disjoint) { - arcArea = polygonArea = 0; - } else { - arcArea = smallest.radius * smallest.radius * Math.PI; - arcs.push({ - circle: smallest, - p1: { x: smallest.x, y: smallest.y + smallest.radius }, - p2: { x: smallest.x - SMALL, y: smallest.y + smallest.radius }, - width: smallest.radius * 2 - }); - } - } - polygonArea /= 2; - if (stats) { - stats.area = arcArea + polygonArea; - stats.arcArea = arcArea; - stats.polygonArea = polygonArea; - stats.arcs = arcs; - stats.innerPoints = innerPoints; - stats.intersectionPoints = intersectionPoints; - } - return arcArea + polygonArea; -} -function containedInCircles(point2, circles) { - for (var i4 = 0; i4 < circles.length; ++i4) { - if (distance9(point2, circles[i4]) > circles[i4].radius + SMALL) { - return false; - } - } - return true; -} -function getIntersectionPoints(circles) { - var ret = []; - for (var i4 = 0; i4 < circles.length; ++i4) { - for (var j4 = i4 + 1; j4 < circles.length; ++j4) { - var intersect2 = circleCircleIntersection(circles[i4], circles[j4]); - for (var k4 = 0; k4 < intersect2.length; ++k4) { - var p4 = intersect2[k4]; - p4.parentIndex = [i4, j4]; - ret.push(p4); - } - } - } - return ret; -} -function circleArea(r4, width2) { - return r4 * r4 * Math.acos(1 - width2 / r4) - (r4 - width2) * Math.sqrt(width2 * (2 * r4 - width2)); -} -function distance9(p1, p22) { - return Math.sqrt((p1.x - p22.x) * (p1.x - p22.x) + (p1.y - p22.y) * (p1.y - p22.y)); -} -function circleOverlap(r1, r22, d3) { - if (d3 >= r1 + r22) { - return 0; - } - if (d3 <= Math.abs(r1 - r22)) { - return Math.PI * Math.min(r1, r22) * Math.min(r1, r22); - } - var w1 = r1 - (d3 * d3 - r22 * r22 + r1 * r1) / (2 * d3), w22 = r22 - (d3 * d3 - r1 * r1 + r22 * r22) / (2 * d3); - return circleArea(r1, w1) + circleArea(r22, w22); -} -function circleCircleIntersection(p1, p22) { - var d3 = distance9(p1, p22), r1 = p1.radius, r22 = p22.radius; - if (d3 >= r1 + r22 || d3 <= Math.abs(r1 - r22)) { - return []; - } - var a4 = (r1 * r1 - r22 * r22 + d3 * d3) / (2 * d3), h3 = Math.sqrt(r1 * r1 - a4 * a4), x0 = p1.x + a4 * (p22.x - p1.x) / d3, y0 = p1.y + a4 * (p22.y - p1.y) / d3, rx = -(p22.y - p1.y) * (h3 / d3), ry = -(p22.x - p1.x) * (h3 / d3); - return [ - { x: x0 + rx, y: y0 - ry }, - { x: x0 - rx, y: y0 + ry } - ]; -} -function getCenter(points) { - var center2 = { x: 0, y: 0 }; - for (var i4 = 0; i4 < points.length; ++i4) { - center2.x += points[i4].x; - center2.y += points[i4].y; - } - center2.x /= points.length; - center2.y /= points.length; - return center2; -} - -// node_modules/@antv/g2plot/esm/plots/venn/layout/layout.js -function venn(areas, parameters) { - parameters = parameters || {}; - parameters.maxIterations = parameters.maxIterations || 500; - var initialLayout = parameters.initialLayout || bestInitialLayout; - var loss = parameters.lossFunction || lossFunction; - areas = addMissingAreas(areas); - var circles = initialLayout(areas, parameters); - var initial = [], setids = []; - var setid; - for (setid in circles) { - if (circles.hasOwnProperty(setid)) { - initial.push(circles[setid].x); - initial.push(circles[setid].y); - setids.push(setid); - } - } - var solution = (0, import_fmin.nelderMead)(function(values2) { - var current = {}; - for (var i5 = 0; i5 < setids.length; ++i5) { - var setid_1 = setids[i5]; - current[setid_1] = { - x: values2[2 * i5], - y: values2[2 * i5 + 1], - radius: circles[setid_1].radius - }; - } - return loss(current, areas); - }, initial, parameters); - var positions = solution.x; - for (var i4 = 0; i4 < setids.length; ++i4) { - setid = setids[i4]; - circles[setid].x = positions[2 * i4]; - circles[setid].y = positions[2 * i4 + 1]; - } - return circles; -} -var SMALL2 = 1e-10; -function distanceFromIntersectArea(r1, r22, overlap2) { - if (Math.min(r1, r22) * Math.min(r1, r22) * Math.PI <= overlap2 + SMALL2) { - return Math.abs(r1 - r22); - } - return (0, import_fmin.bisect)(function(distance15) { - return circleOverlap(r1, r22, distance15) - overlap2; - }, 0, r1 + r22); -} -function addMissingAreas(areas) { - areas = areas.slice(); - var ids = [], pairs2 = {}; - var i4, j4, a4, b10; - for (i4 = 0; i4 < areas.length; ++i4) { - var area2 = areas[i4]; - if (area2.sets.length == 1) { - ids.push(area2.sets[0]); - } else if (area2.sets.length == 2) { - a4 = area2.sets[0]; - b10 = area2.sets[1]; - pairs2[[a4, b10]] = true; - pairs2[[b10, a4]] = true; - } - } - ids.sort(function(a5, b11) { - return a5 > b11 ? 1 : -1; - }); - for (i4 = 0; i4 < ids.length; ++i4) { - a4 = ids[i4]; - for (j4 = i4 + 1; j4 < ids.length; ++j4) { - b10 = ids[j4]; - if (!([a4, b10] in pairs2)) { - areas.push({ sets: [a4, b10], size: 0 }); - } - } - } - return areas; -} -function getDistanceMatrices(areas, sets, setids) { - var distances = (0, import_fmin.zerosM)(sets.length, sets.length), constraints = (0, import_fmin.zerosM)(sets.length, sets.length); - areas.filter(function(x6) { - return x6.sets.length == 2; - }).map(function(current) { - var left2 = setids[current.sets[0]], right2 = setids[current.sets[1]], r1 = Math.sqrt(sets[left2].size / Math.PI), r22 = Math.sqrt(sets[right2].size / Math.PI), distance15 = distanceFromIntersectArea(r1, r22, current.size); - distances[left2][right2] = distances[right2][left2] = distance15; - var c5 = 0; - if (current.size + 1e-10 >= Math.min(sets[left2].size, sets[right2].size)) { - c5 = 1; - } else if (current.size <= 1e-10) { - c5 = -1; - } - constraints[left2][right2] = constraints[right2][left2] = c5; - }); - return { distances, constraints }; -} -function constrainedMDSGradient(x6, fxprime, distances, constraints) { - var loss = 0, i4; - for (i4 = 0; i4 < fxprime.length; ++i4) { - fxprime[i4] = 0; - } - for (i4 = 0; i4 < distances.length; ++i4) { - var xi = x6[2 * i4], yi = x6[2 * i4 + 1]; - for (var j4 = i4 + 1; j4 < distances.length; ++j4) { - var xj = x6[2 * j4], yj = x6[2 * j4 + 1], dij = distances[i4][j4], constraint = constraints[i4][j4]; - var squaredDistance4 = (xj - xi) * (xj - xi) + (yj - yi) * (yj - yi), distance_1 = Math.sqrt(squaredDistance4), delta = squaredDistance4 - dij * dij; - if (constraint > 0 && distance_1 <= dij || constraint < 0 && distance_1 >= dij) { - continue; - } - loss += 2 * delta * delta; - fxprime[2 * i4] += 4 * delta * (xi - xj); - fxprime[2 * i4 + 1] += 4 * delta * (yi - yj); - fxprime[2 * j4] += 4 * delta * (xj - xi); - fxprime[2 * j4 + 1] += 4 * delta * (yj - yi); - } - } - return loss; -} -function bestInitialLayout(areas, params) { - var initial = greedyLayout(areas, params); - var loss = params.lossFunction || lossFunction; - if (areas.length >= 8) { - var constrained = constrainedMDSLayout(areas, params), constrainedLoss = loss(constrained, areas), greedyLoss = loss(initial, areas); - if (constrainedLoss + 1e-8 < greedyLoss) { - initial = constrained; - } - } - return initial; -} -function constrainedMDSLayout(areas, params) { - params = params || {}; - var restarts = params.restarts || 10; - var sets = [], setids = {}; - var i4; - for (i4 = 0; i4 < areas.length; ++i4) { - var area2 = areas[i4]; - if (area2.sets.length == 1) { - setids[area2.sets[0]] = sets.length; - sets.push(area2); - } - } - var matrices = getDistanceMatrices(areas, sets, setids); - var distances = matrices.distances; - var constraints = matrices.constraints; - var norm = (0, import_fmin.norm2)(distances.map(import_fmin.norm2)) / distances.length; - distances = distances.map(function(row) { - return row.map(function(value2) { - return value2 / norm; - }); - }); - var obj = function(x6, fxprime) { - return constrainedMDSGradient(x6, fxprime, distances, constraints); - }; - var best, current; - for (i4 = 0; i4 < restarts; ++i4) { - var initial = (0, import_fmin.zeros)(distances.length * 2).map(Math.random); - current = (0, import_fmin.conjugateGradient)(obj, initial, params); - if (!best || current.fx < best.fx) { - best = current; - } - } - var positions = best.x; - var circles = {}; - for (i4 = 0; i4 < sets.length; ++i4) { - var set10 = sets[i4]; - circles[set10.sets[0]] = { - x: positions[2 * i4] * norm, - y: positions[2 * i4 + 1] * norm, - radius: Math.sqrt(set10.size / Math.PI) - }; - } - if (params.history) { - for (i4 = 0; i4 < params.history.length; ++i4) { - (0, import_fmin.scale)(params.history[i4].x, norm); - } - } - return circles; -} -function greedyLayout(areas, params) { - var loss = params && params.lossFunction ? params.lossFunction : lossFunction; - var circles = {}, setOverlaps = {}; - var set10; - for (var i4 = 0; i4 < areas.length; ++i4) { - var area2 = areas[i4]; - if (area2.sets.length == 1) { - set10 = area2.sets[0]; - circles[set10] = { - x: 1e10, - y: 1e10, - rowid: Object.keys(circles).length, - size: area2.size, - radius: Math.sqrt(area2.size / Math.PI) - }; - setOverlaps[set10] = []; - } - } - areas = areas.filter(function(a4) { - return a4.sets.length == 2; - }); - for (var i4 = 0; i4 < areas.length; ++i4) { - var current = areas[i4]; - var weight = current.hasOwnProperty("weight") ? current.weight : 1; - var left2 = current.sets[0], right2 = current.sets[1]; - if (current.size + SMALL2 >= Math.min(circles[left2].size, circles[right2].size)) { - weight = 0; - } - setOverlaps[left2].push({ set: right2, size: current.size, weight }); - setOverlaps[right2].push({ set: left2, size: current.size, weight }); - } - var mostOverlapped = []; - for (set10 in setOverlaps) { - if (setOverlaps.hasOwnProperty(set10)) { - var size2 = 0; - for (var i4 = 0; i4 < setOverlaps[set10].length; ++i4) { - size2 += setOverlaps[set10][i4].size * setOverlaps[set10][i4].weight; - } - mostOverlapped.push({ set: set10, size: size2 }); - } - } - function sortOrder(a4, b10) { - return b10.size - a4.size; - } - mostOverlapped.sort(sortOrder); - var positioned = {}; - function isPositioned(element) { - return element.set in positioned; - } - function positionSet(point2, index2) { - circles[index2].x = point2.x; - circles[index2].y = point2.y; - positioned[index2] = true; - } - positionSet({ x: 0, y: 0 }, mostOverlapped[0].set); - for (var i4 = 1; i4 < mostOverlapped.length; ++i4) { - var setIndex = mostOverlapped[i4].set, overlap2 = setOverlaps[setIndex].filter(isPositioned); - set10 = circles[setIndex]; - overlap2.sort(sortOrder); - if (overlap2.length === 0) { - throw "ERROR: missing pairwise overlap information"; - } - var points = []; - for (var j4 = 0; j4 < overlap2.length; ++j4) { - var p1 = circles[overlap2[j4].set], d1 = distanceFromIntersectArea(set10.radius, p1.radius, overlap2[j4].size); - points.push({ x: p1.x + d1, y: p1.y }); - points.push({ x: p1.x - d1, y: p1.y }); - points.push({ y: p1.y + d1, x: p1.x }); - points.push({ y: p1.y - d1, x: p1.x }); - for (var k4 = j4 + 1; k4 < overlap2.length; ++k4) { - var p22 = circles[overlap2[k4].set], d22 = distanceFromIntersectArea(set10.radius, p22.radius, overlap2[k4].size); - var extraPoints = circleCircleIntersection({ x: p1.x, y: p1.y, radius: d1 }, { x: p22.x, y: p22.y, radius: d22 }); - for (var l4 = 0; l4 < extraPoints.length; ++l4) { - points.push(extraPoints[l4]); - } - } - } - var bestLoss = 1e50, bestPoint = points[0]; - for (var j4 = 0; j4 < points.length; ++j4) { - circles[setIndex].x = points[j4].x; - circles[setIndex].y = points[j4].y; - var localLoss = loss(circles, areas); - if (localLoss < bestLoss) { - bestLoss = localLoss; - bestPoint = points[j4]; - } - } - positionSet(bestPoint, setIndex); - } - return circles; -} -function lossFunction(sets, overlaps) { - var output = 0; - function getCircles(indices) { - return indices.map(function(i5) { - return sets[i5]; - }); - } - for (var i4 = 0; i4 < overlaps.length; ++i4) { - var area2 = overlaps[i4]; - var overlap2 = void 0; - if (area2.sets.length == 1) { - continue; - } else if (area2.sets.length == 2) { - var left2 = sets[area2.sets[0]], right2 = sets[area2.sets[1]]; - overlap2 = circleOverlap(left2.radius, right2.radius, distance9(left2, right2)); - } else { - overlap2 = intersectionArea(getCircles(area2.sets)); - } - var weight = area2.hasOwnProperty("weight") ? area2.weight : 1; - output += weight * (overlap2 - area2.size) * (overlap2 - area2.size); - } - return output; -} -function getBoundingBox(circles) { - var minMax = function(d3) { - var hi = Math.max.apply(null, circles.map(function(c5) { - return c5[d3] + c5.radius; - })), lo = Math.min.apply(null, circles.map(function(c5) { - return c5[d3] - c5.radius; - })); - return { max: hi, min: lo }; - }; - return { xRange: minMax("x"), yRange: minMax("y") }; -} -function scaleSolution(solution, width2, height, padding3) { - var circles = [], setids = []; - for (var setid in solution) { - if (solution.hasOwnProperty(setid)) { - setids.push(setid); - circles.push(solution[setid]); - } - } - width2 -= 2 * padding3; - height -= 2 * padding3; - var bounds = getBoundingBox(circles), xRange = bounds.xRange, yRange = bounds.yRange; - if (xRange.max == xRange.min || yRange.max == yRange.min) { - console.log("not scaling solution: zero size detected"); - return solution; - } - var xScaling = width2 / (xRange.max - xRange.min), yScaling = height / (yRange.max - yRange.min), scaling = Math.min(yScaling, xScaling), xOffset = (width2 - (xRange.max - xRange.min) * scaling) / 2, yOffset = (height - (yRange.max - yRange.min) * scaling) / 2; - var scaled = {}; - for (var i4 = 0; i4 < circles.length; ++i4) { - var circle3 = circles[i4]; - scaled[setids[i4]] = { - radius: scaling * circle3.radius, - x: padding3 + xOffset + (circle3.x - xRange.min) * scaling, - y: padding3 + yOffset + (circle3.y - yRange.min) * scaling - }; - } - return scaled; -} - -// node_modules/@antv/g2plot/esm/plots/venn/layout/diagram.js -var import_fmin2 = __toModule(require_fmin()); -function circleMargin(current, interior, exterior) { - var margin = interior[0].radius - distance9(interior[0], current), i4, m4; - for (i4 = 1; i4 < interior.length; ++i4) { - m4 = interior[i4].radius - distance9(interior[i4], current); - if (m4 <= margin) { - margin = m4; - } - } - for (i4 = 0; i4 < exterior.length; ++i4) { - m4 = distance9(exterior[i4], current) - exterior[i4].radius; - if (m4 <= margin) { - margin = m4; - } - } - return margin; -} -function computeTextCentre(interior, exterior) { - var points = []; - var i4; - for (i4 = 0; i4 < interior.length; ++i4) { - var c5 = interior[i4]; - points.push({ x: c5.x, y: c5.y }); - points.push({ x: c5.x + c5.radius / 2, y: c5.y }); - points.push({ x: c5.x - c5.radius / 2, y: c5.y }); - points.push({ x: c5.x, y: c5.y + c5.radius / 2 }); - points.push({ x: c5.x, y: c5.y - c5.radius / 2 }); - } - var initial = points[0], margin = circleMargin(points[0], interior, exterior); - for (i4 = 1; i4 < points.length; ++i4) { - var m4 = circleMargin(points[i4], interior, exterior); - if (m4 >= margin) { - initial = points[i4]; - margin = m4; - } - } - var solution = (0, import_fmin2.nelderMead)(function(p4) { - return -1 * circleMargin({ x: p4[0], y: p4[1] }, interior, exterior); - }, [initial.x, initial.y], { maxIterations: 500, minErrorDelta: 1e-10 }).x; - var ret = { x: solution[0], y: solution[1] }; - var valid = true; - for (i4 = 0; i4 < interior.length; ++i4) { - if (distance9(ret, interior[i4]) > interior[i4].radius) { - valid = false; - break; - } - } - for (i4 = 0; i4 < exterior.length; ++i4) { - if (distance9(ret, exterior[i4]) < exterior[i4].radius) { - valid = false; - break; - } - } - if (!valid) { - if (interior.length == 1) { - ret = { x: interior[0].x, y: interior[0].y }; - } else { - var areaStats = {}; - intersectionArea(interior, areaStats); - if (areaStats.arcs.length === 0) { - ret = { x: 0, y: -1e3, disjoint: true }; - } else if (areaStats.arcs.length == 1) { - ret = { x: areaStats.arcs[0].circle.x, y: areaStats.arcs[0].circle.y }; - } else if (exterior.length) { - ret = computeTextCentre(interior, []); - } else { - ret = getCenter(areaStats.arcs.map(function(a4) { - return a4.p1; - })); - } - } - } - return ret; -} -function getOverlappingCircles(circles) { - var ret = {}, circleids = []; - for (var circleid in circles) { - circleids.push(circleid); - ret[circleid] = []; - } - for (var i4 = 0; i4 < circleids.length; i4++) { - var a4 = circles[circleids[i4]]; - for (var j4 = i4 + 1; j4 < circleids.length; ++j4) { - var b10 = circles[circleids[j4]], d3 = distance9(a4, b10); - if (d3 + b10.radius <= a4.radius + 1e-10) { - ret[circleids[j4]].push(circleids[i4]); - } else if (d3 + a4.radius <= b10.radius + 1e-10) { - ret[circleids[i4]].push(circleids[j4]); - } - } - } - return ret; -} -function computeTextCentres(circles, areas) { - var ret = {}, overlapped = getOverlappingCircles(circles); - for (var i4 = 0; i4 < areas.length; ++i4) { - var area2 = areas[i4].sets, areaids = {}, exclude = {}; - for (var j4 = 0; j4 < area2.length; ++j4) { - areaids[area2[j4]] = true; - var overlaps = overlapped[area2[j4]]; - for (var k4 = 0; k4 < overlaps.length; ++k4) { - exclude[overlaps[k4]] = true; - } - } - var interior = [], exterior = []; - for (var setid in circles) { - if (setid in areaids) { - interior.push(circles[setid]); - } else if (!(setid in exclude)) { - exterior.push(circles[setid]); - } - } - var centre = computeTextCentre(interior, exterior); - ret[area2] = centre; - if (centre.disjoint && areas[i4].size > 0) { - console.log("WARNING: area " + area2 + " not represented on screen"); - } - } - return ret; -} -function circlePath(x6, y5, r4) { - var ret = []; - var x0 = x6 - r4; - var y0 = y5; - ret.push("M", x0, y0); - ret.push("A", r4, r4, 0, 1, 0, x0 + 2 * r4, y0); - ret.push("A", r4, r4, 0, 1, 0, x0, y0); - return ret.join(" "); -} -function intersectionAreaPath(circles) { - var stats = {}; - intersectionArea(circles, stats); - var arcs = stats.arcs; - if (arcs.length === 0) { - return "M 0 0"; - } else if (arcs.length == 1) { - var circle3 = arcs[0].circle; - return circlePath(circle3.x, circle3.y, circle3.radius); - } else { - var ret = ["\nM", arcs[0].p2.x, arcs[0].p2.y]; - for (var i4 = 0; i4 < arcs.length; ++i4) { - var arc2 = arcs[i4], r4 = arc2.circle.radius, wide = arc2.width > r4; - ret.push("\nA", r4, r4, 0, wide ? 1 : 0, 1, arc2.p1.x, arc2.p1.y); - } - return ret.join(" "); - } -} - -// node_modules/@antv/g2plot/esm/plots/venn/constant.js -var ID_FIELD = "id"; -var PATH_FIELD = "path"; -var DEFAULT_OPTIONS19 = { - appendPadding: [10, 0, 20, 0], - blendMode: "multiply", - tooltip: { - showTitle: false, - showMarkers: false, - fields: ["id", "size"], - formatter: function(datum) { - return { name: datum.id, value: datum.size }; - } - }, - legend: { position: "top-left" }, - label: { - style: { - textAlign: "center", - fill: "#fff" - } - }, - interactions: [{ type: "legend-filter", enable: false }], - state: { - active: { - style: { - stroke: "#000" - } - }, - selected: { - style: { - stroke: "#000", - lineWidth: 2 - } - }, - inactive: { - style: { - fillOpacity: 0.3, - strokeOpacity: 0.3 - } - } - }, - defaultInteractions: ["tooltip", "venn-legend-active"] -}; - -// node_modules/@antv/g2plot/esm/plots/venn/utils.js -var getColorMap = memoize_default(function(colorPalette, data3, blendMode, setsField) { - var colorMap2 = new Map(); - var colorPaletteLen = colorPalette.length; - data3.forEach(function(d3, idx) { - if (d3[setsField].length === 1) { - colorMap2.set(d3[ID_FIELD], colorPalette[(idx + colorPaletteLen) % colorPaletteLen]); - } else { - var colorArr = d3[setsField].map(function(id) { - return colorMap2.get(id); - }); - colorMap2.set(d3[ID_FIELD], colorArr.slice(1).reduce(function(a4, b10) { - return blend(a4, b10, blendMode); - }, colorArr[0])); - } - }); - return colorMap2; -}, function() { - var params = []; - for (var _i = 0; _i < arguments.length; _i++) { - params[_i] = arguments[_i]; - } - return JSON.stringify(params); -}); -function layoutVennData(options, width2, height, padding3) { - if (padding3 === void 0) { - padding3 = 0; - } - var data3 = options.data, setsField = options.setsField, sizeField = options.sizeField; - if (data3.length === 0) { - log2(LEVEL.WARN, false, "warn: %s", "\u6570\u636E\u4E0D\u80FD\u4E3A\u7A7A"); - return []; - } - var vennData = data3.map(function(d3) { - var _a6; - return __assign(__assign({}, d3), (_a6 = { sets: d3[setsField] || [], size: d3[sizeField] }, _a6[PATH_FIELD] = "", _a6[ID_FIELD] = "", _a6)); - }); - vennData.sort(function(a4, b10) { - return a4.sets.length - b10.sets.length; - }); - var solution = venn(vennData); - var circles = scaleSolution(solution, width2, height, padding3); - var textCenters = computeTextCentres(circles, vennData); - vennData.forEach(function(row) { - var sets = row.sets; - var id = sets.join(","); - row[ID_FIELD] = id; - var setCircles = sets.map(function(set10) { - return circles[set10]; - }); - var path = intersectionAreaPath(setCircles); - if (!/[zZ]$/.test(path)) { - path += " Z"; - } - row[PATH_FIELD] = path; - var center2 = textCenters[id] || { x: 0, y: 0 }; - mix(row, center2); - }); - return vennData; -} -function islegalSets(legalArr, testArr) { - for (var i4 = 0; i4 < testArr.length; i4++) { - if (!legalArr.includes(testArr[i4])) { - return false; - } - } - return true; -} - -// node_modules/@antv/g2plot/esm/plots/venn/shape.js -function getFillAttrs(cfg) { - return deepAssign({}, cfg.defaultStyle, { fill: cfg.color }, cfg.style); -} -registerShape("schema", "venn", { - draw: function(cfg, container2) { - var data3 = cfg.data; - var segments = parsePathString2(data3[PATH_FIELD]); - var fillAttrs = getFillAttrs(cfg); - var group2 = container2.addGroup({ name: "venn-shape" }); - group2.addShape("path", { - attrs: __assign(__assign({}, fillAttrs), { path: segments }), - name: "venn-path" - }); - var _a6 = cfg.customInfo, offsetX = _a6.offsetX, offsetY = _a6.offsetY; - var matrix = Util.transform(null, [["t", offsetX, offsetY]]); - group2.setMatrix(matrix); - return group2; - }, - getMarker: function(markerCfg) { - var color4 = markerCfg.color; - return { - symbol: "circle", - style: { - lineWidth: 0, - stroke: color4, - fill: color4, - r: 4 - } - }; - } -}); - -// node_modules/@antv/g2plot/esm/plots/venn/label.js -var VennLabel = function(_super) { - __extends(VennLabel2, _super); - function VennLabel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - VennLabel2.prototype.getLabelPoint = function(labelCfg, mappingData, index2) { - var _a6 = labelCfg.data, x6 = _a6.x, y5 = _a6.y; - var _b = labelCfg.customLabelInfo, offsetX = _b.offsetX, offsetY = _b.offsetY; - return { - content: labelCfg.content[index2], - x: x6 + offsetX, - y: y5 + offsetY - }; - }; - return VennLabel2; -}(base_default14); -registerGeometryLabel("venn", VennLabel); - -// node_modules/@antv/g2plot/esm/plots/venn/interactions/util.js -function placeElementsOrdered(view) { - if (!view) { - return; - } - var elements = view.geometries[0].elements; - elements.forEach(function(elem) { - elem.shape.toFront(); - }); -} - -// node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/active.js -var ElementActiveAction = getActionClass("element-active"); -var VennElementActive = function(_super) { - __extends(VennElementActive2, _super); - function VennElementActive2() { - return _super !== null && _super.apply(this, arguments) || this; - } - VennElementActive2.prototype.syncElementsPos = function() { - placeElementsOrdered(this.context.view); - }; - VennElementActive2.prototype.active = function() { - _super.prototype.active.call(this); - this.syncElementsPos(); - }; - VennElementActive2.prototype.toggle = function() { - _super.prototype.toggle.call(this); - this.syncElementsPos(); - }; - VennElementActive2.prototype.reset = function() { - _super.prototype.reset.call(this); - this.syncElementsPos(); - }; - return VennElementActive2; -}(ElementActiveAction); - -// node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/highlight.js -var ElementHighlightAction = getActionClass("element-highlight"); -var VennElementHighlight = function(_super) { - __extends(VennElementHighlight2, _super); - function VennElementHighlight2() { - return _super !== null && _super.apply(this, arguments) || this; - } - VennElementHighlight2.prototype.syncElementsPos = function() { - placeElementsOrdered(this.context.view); - }; - VennElementHighlight2.prototype.highlight = function() { - _super.prototype.highlight.call(this); - this.syncElementsPos(); - }; - VennElementHighlight2.prototype.toggle = function() { - _super.prototype.toggle.call(this); - this.syncElementsPos(); - }; - VennElementHighlight2.prototype.clear = function() { - _super.prototype.clear.call(this); - this.syncElementsPos(); - }; - VennElementHighlight2.prototype.reset = function() { - _super.prototype.reset.call(this); - this.syncElementsPos(); - }; - return VennElementHighlight2; -}(ElementHighlightAction); - -// node_modules/@antv/g2plot/esm/plots/venn/interactions/actions/selected.js -var ElementSelectedAction = getActionClass("element-selected"); -var ElementSingleSelectedAction = getActionClass("element-single-selected"); -var VennElementSelected = function(_super) { - __extends(VennElementSelected2, _super); - function VennElementSelected2() { - return _super !== null && _super.apply(this, arguments) || this; - } - VennElementSelected2.prototype.syncElementsPos = function() { - placeElementsOrdered(this.context.view); - }; - VennElementSelected2.prototype.selected = function() { - _super.prototype.selected.call(this); - this.syncElementsPos(); - }; - VennElementSelected2.prototype.toggle = function() { - _super.prototype.toggle.call(this); - this.syncElementsPos(); - }; - VennElementSelected2.prototype.reset = function() { - _super.prototype.reset.call(this); - this.syncElementsPos(); - }; - return VennElementSelected2; -}(ElementSelectedAction); -var VennElementSingleSelected = function(_super) { - __extends(VennElementSingleSelected2, _super); - function VennElementSingleSelected2() { - return _super !== null && _super.apply(this, arguments) || this; - } - VennElementSingleSelected2.prototype.syncElementsPos = function() { - placeElementsOrdered(this.context.view); - }; - VennElementSingleSelected2.prototype.selected = function() { - _super.prototype.selected.call(this); - this.syncElementsPos(); - }; - VennElementSingleSelected2.prototype.toggle = function() { - _super.prototype.toggle.call(this); - this.syncElementsPos(); - }; - VennElementSingleSelected2.prototype.reset = function() { - _super.prototype.reset.call(this); - this.syncElementsPos(); - }; - return VennElementSingleSelected2; -}(ElementSingleSelectedAction); - -// node_modules/@antv/g2plot/esm/plots/venn/interactions/index.js -registerAction("venn-element-active", VennElementActive); -registerAction("venn-element-highlight", VennElementHighlight); -registerAction("venn-element-selected", VennElementSelected); -registerAction("venn-element-single-selected", VennElementSingleSelected); -registerInteraction("venn-element-active", { - start: [{ trigger: "element:mouseenter", action: "venn-element-active:active" }], - end: [{ trigger: "element:mouseleave", action: "venn-element-active:reset" }] -}); -registerInteraction("venn-element-highlight", { - start: [{ trigger: "element:mouseenter", action: "venn-element-highlight:highlight" }], - end: [{ trigger: "element:mouseleave", action: "venn-element-highlight:reset" }] -}); -registerInteraction("venn-element-selected", { - start: [{ trigger: "element:click", action: "venn-element-selected:toggle" }], - rollback: [{ trigger: "dblclick", action: ["venn-element-selected:reset"] }] -}); -registerInteraction("venn-element-single-selected", { - start: [{ trigger: "element:click", action: "venn-element-single-selected:toggle" }], - rollback: [{ trigger: "dblclick", action: ["venn-element-single-selected:reset"] }] -}); -registerInteraction("venn-legend-active", { - start: [{ trigger: "legend-item:mouseenter", action: ["list-active:active", "venn-element-active:active"] }], - end: [{ trigger: "legend-item:mouseleave", action: ["list-active:reset", "venn-element-active:reset"] }] -}); -registerInteraction("venn-legend-highlight", { - start: [ - { - trigger: "legend-item:mouseenter", - action: ["legend-item-highlight:highlight", "venn-element-highlight:highlight"] - } - ], - end: [{ trigger: "legend-item:mouseleave", action: ["legend-item-highlight:reset", "venn-element-highlight:reset"] }] -}); - -// node_modules/@antv/g2plot/esm/plots/venn/adaptor.js -var LEGEND_SPACE = 40; -function colorMap(params, data3, colorPalette) { - var chart = params.chart, options = params.options; - var blendMode = options.blendMode, setsField = options.setsField; - var _a6 = chart.getTheme(), colors10 = _a6.colors10, colors20 = _a6.colors20; - var palette = colorPalette; - if (!is_array_default(palette)) { - palette = data3.filter(function(d3) { - return d3[setsField].length === 1; - }).length <= 10 ? colors10 : colors20; - } - var map6 = getColorMap(palette, data3, blendMode, setsField); - return function(id) { - return map6.get(id) || palette[0]; - }; -} -function transformColor(params, data3) { - var options = params.options; - var color4 = options.color; - if (typeof color4 !== "function") { - var colorPalette = typeof color4 === "string" ? [color4] : color4; - var map_1 = colorMap(params, data3, colorPalette); - return function(datum) { - return map_1(datum[ID_FIELD]); - }; - } - return color4; -} -function padding(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, appendPadding = options.appendPadding, padding3 = options.padding; - var tempPadding = normalPadding(appendPadding); - if (legend18 !== false) { - tempPadding = getAdjustAppendPadding(appendPadding, get_default(legend18, "position"), LEGEND_SPACE); - } - chart.appendPadding = resolveAllPadding([tempPadding, padding3]); - return params; -} -function data2(params) { - var options = params.options; - var data3 = options["data"]; - if (!data3) { - log2(LEVEL.WARN, false, "warn: %s", "\u6570\u636E\u4E0D\u80FD\u4E3A\u7A7A"); - data3 = []; - } - var currSets = data3.filter(function(datum) { - return datum.sets.length === 1; - }).map(function(datum) { - return datum.sets[0]; - }); - var filterSets = data3.filter(function(datum) { - var sets = datum.sets; - return islegalSets(currSets, sets); - }); - if (!is_equal_default(filterSets, data3)) - log2(LEVEL.WARN, false, "warn: %s", "\u4EA4\u96C6\u4E2D\u4E0D\u80FD\u51FA\u73B0\u4E0D\u5B58\u5728\u7684\u96C6\u5408, \u8BF7\u8F93\u5165\u5408\u6CD5\u6570\u636E"); - return deep_mix_default({}, params, { - options: { - data: filterSets - } - }); -} -function geometry18(params) { - var chart = params.chart, options = params.options; - var pointStyle = options.pointStyle, setsField = options.setsField, sizeField = options.sizeField; - var _a6 = normalPadding(chart.appendPadding), t4 = _a6[0], r4 = _a6[1], b10 = _a6[2], l4 = _a6[3]; - var customInfo = { offsetX: l4, offsetY: t4 }; - var _b = chart.viewBBox, width2 = _b.width, height = _b.height; - var vennData = layoutVennData(options, Math.max(width2 - (r4 + l4), 0), Math.max(height - (t4 + b10), 0), 0); - chart.data(vennData); - var ext = schema2(deepAssign({}, params, { - options: { - xField: "x", - yField: "y", - sizeField, - seriesField: ID_FIELD, - rawFields: [setsField, sizeField], - schema: { - shape: "venn", - style: pointStyle - } - } - })).ext; - var geometry35 = ext.geometry; - geometry35.customInfo(customInfo); - var colorOptions = transformColor(params, vennData); - if (typeof colorOptions === "function") { - geometry35.color(ID_FIELD, function(id) { - var datum = vennData.find(function(d3) { - return d3[ID_FIELD] === id; - }); - var defaultColor = colorMap(params, vennData)(id); - return colorOptions(datum, defaultColor); - }); - } - return params; -} -function label11(params) { - var chart = params.chart, options = params.options; - var label17 = options.label; - var _a6 = normalPadding(chart.appendPadding), t4 = _a6[0], l4 = _a6[3]; - var customLabelInfo = { offsetX: l4, offsetY: t4 }; - var geometry35 = findGeometry(chart, "schema"); - if (!label17) { - geometry35.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - geometry35.label({ - fields: ["id"], - callback, - cfg: deep_mix_default({}, transformLabel(cfg), { - type: "venn", - customLabelInfo - }) - }); - } - return params; -} -function legend12(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, sizeField = options.sizeField; - chart.legend(ID_FIELD, legend18); - chart.legend(sizeField, false); - return params; -} -function axis11(params) { - var chart = params.chart; - chart.axis(false); - return params; -} -function vennInteraction(params) { - var options = params.options, chart = params.chart; - var interactions = options.interactions; - if (interactions) { - var MAP_1 = { - "legend-active": "venn-legend-active", - "legend-highlight": "venn-legend-highlight" - }; - interaction(deepAssign({}, params, { - options: { - interactions: interactions.map(function(i4) { - return __assign(__assign({}, i4), { type: MAP_1[i4.type] || i4.type }); - }) - } - })); - } - chart.removeInteraction("legend-active"); - chart.removeInteraction("legend-highlight"); - return params; -} -function adaptor20(params) { - return flow(padding, theme, data2, geometry18, label11, scale7({}), legend12, axis11, tooltip, vennInteraction, animation)(params); -} - -// node_modules/@antv/g2plot/esm/plots/venn/index.js -var Venn = function(_super) { - __extends(Venn2, _super); - function Venn2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "venn"; - return _this; - } - Venn2.getDefaultOptions = function() { - return DEFAULT_OPTIONS19; - }; - Venn2.prototype.getDefaultOptions = function() { - return Venn2.getDefaultOptions(); - }; - Venn2.prototype.getSchemaAdaptor = function() { - return adaptor20; - }; - Venn2.prototype.triggerResize = function() { - if (!this.chart.destroyed) { - this.chart.forceFit(); - this.chart.clear(); - this.execAdaptor(); - this.chart.render(true); - } - }; - return Venn2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/stock/constant.js -var Y_FIELD2 = "$$stock-range$$"; -var TREND_FIELD = "trend"; -var TREND_UP = "up"; -var TREND_DOWN = "down"; -var DEFAULT_TOOLTIP_OPTIONS3 = { - showMarkers: false, - showCrosshairs: true, - shared: true, - crosshairs: { - type: "xy", - follow: true, - text: function(type2, defaultContent, items) { - var textContent; - if (type2 === "x") { - var item = items[0]; - textContent = item ? item.title : defaultContent; - } else { - textContent = defaultContent; - } - return { - position: type2 === "y" ? "start" : "end", - content: textContent, - style: { - fill: "#dfdfdf" - } - }; - }, - textBackground: { - padding: [2, 4], - style: { - fill: "#666" - } - } - } -}; -var DEFAULT_OPTIONS20 = deepAssign({}, Plot.getDefaultOptions(), { - tooltip: DEFAULT_TOOLTIP_OPTIONS3, - interactions: [{ type: "tooltip" }], - legend: { - position: "top-left" - }, - risingFill: "#ef5350", - fallingFill: "#26a69a" -}); - -// node_modules/@antv/g2plot/esm/plots/stock/utils.js -function getStockData(data3, yField) { - return map_default(data3, function(obj) { - if (is_array_default(yField)) { - var open_1 = yField[0], close_1 = yField[1], high = yField[2], low = yField[3]; - obj[TREND_FIELD] = obj[open_1] <= obj[close_1] ? TREND_UP : TREND_DOWN; - obj[Y_FIELD2] = [obj[open_1], obj[close_1], obj[high], obj[low]]; - } - return obj; - }); -} - -// node_modules/@antv/g2plot/esm/plots/stock/adaptor.js -function geometry19(params) { - var chart = params.chart, options = params.options; - var yField = options.yField; - var data3 = options.data, risingFill = options.risingFill, fallingFill = options.fallingFill, tooltip10 = options.tooltip, stockStyle = options.stockStyle; - chart.data(getStockData(data3, yField)); - var tooltipOptions = tooltip10; - if (tooltipOptions !== false) { - tooltipOptions = deepAssign({}, { fields: yField }, tooltipOptions); - } - schema2(deepAssign({}, params, { - options: { - schema: { - shape: "candle", - color: [risingFill, fallingFill], - style: stockStyle - }, - yField: Y_FIELD2, - seriesField: TREND_FIELD, - rawFields: yField, - tooltip: tooltipOptions - } - })); - return params; -} -function meta14(params) { - var _a6, _b; - var chart = params.chart, options = params.options; - var meta23 = options.meta, xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField; - var baseMeta = (_a6 = {}, _a6[xField] = { - type: "timeCat", - tickCount: 6 - }, _a6[TREND_FIELD] = { - values: [TREND_UP, TREND_DOWN] - }, _a6); - var scales = deepAssign(baseMeta, meta23, (_b = {}, _b[xField] = pick(xAxis, AXIS_META_CONFIG_KEYS), _b[Y_FIELD2] = pick(yAxis, AXIS_META_CONFIG_KEYS), _b)); - chart.scale(scales); - return params; -} -function axis12(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField; - if (xAxis === false) { - chart.axis(xField, false); - } else { - chart.axis(xField, xAxis); - } - if (yAxis === false) { - chart.axis(Y_FIELD2, false); - } else { - chart.axis(Y_FIELD2, yAxis); - } - return params; -} -function tooltip5(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip; - if (tooltip10 !== false) { - chart.tooltip(tooltip10); - } else { - chart.tooltip(false); - } - return params; -} -function legend13(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend; - if (legend18) { - chart.legend(TREND_FIELD, legend18); - } else if (legend18 === false) { - chart.legend(false); - } - return params; -} -function adaptor21(params) { - flow(theme, geometry19, meta14, axis12, tooltip5, legend13, interaction, animation, annotation(), slider)(params); -} - -// node_modules/@antv/g2plot/esm/plots/stock/index.js -var Stock = function(_super) { - __extends(Stock2, _super); - function Stock2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "stock"; - return _this; - } - Stock2.getDefaultOptions = function() { - return DEFAULT_OPTIONS20; - }; - Stock2.prototype.getDefaultOptions = function() { - return Stock2.getDefaultOptions(); - }; - Stock2.prototype.getSchemaAdaptor = function() { - return adaptor21; - }; - Stock2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var yField = this.options.yField; - this.chart.changeData(getStockData(data3, yField)); - }; - return Stock2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/funnel/constant.js -var _a4; -var FUNNEL_PERCENT = "$$percentage$$"; -var FUNNEL_MAPPING_VALUE = "$$mappingValue$$"; -var FUNNEL_CONVERSATION = "$$conversion$$"; -var FUNNEL_TOTAL_PERCENT = "$$totalPercentage$$"; -var PLOYGON_X = "$$x$$"; -var PLOYGON_Y = "$$y$$"; -var DEFAULT_OPTIONS21 = { - appendPadding: [0, 80], - minSize: 0, - maxSize: 1, - meta: (_a4 = {}, _a4[FUNNEL_MAPPING_VALUE] = { - min: 0, - max: 1, - nice: false - }, _a4), - label: { - style: { - fill: "#fff", - fontSize: 12 - } - }, - tooltip: { - showTitle: false, - showMarkers: false, - shared: false - }, - conversionTag: { - offsetX: 10, - offsetY: 0, - style: { - fontSize: 12, - fill: "rgba(0,0,0,0.45)" - } - } -}; - -// node_modules/@antv/g2plot/esm/plots/funnel/geometries/common.js -function transformData2(data3, originData, options) { - var formatData = []; - var yField = options.yField, maxSize = options.maxSize, minSize = options.minSize; - var maxYFieldValue = get_default(max_by_default(originData, yField), [yField]); - var max8 = is_number_default(maxSize) ? maxSize : 1; - var min7 = is_number_default(minSize) ? minSize : 0; - formatData = map_default(data3, function(row, index2) { - var percent2 = (row[yField] || 0) / maxYFieldValue; - row[FUNNEL_PERCENT] = percent2; - row[FUNNEL_MAPPING_VALUE] = (max8 - min7) * percent2 + min7; - row[FUNNEL_CONVERSATION] = [get_default(data3, [index2 - 1, yField]), row[yField]]; - return row; - }); - return formatData; -} -function conversionTagComponent(getLineCoordinate) { - return function(params) { - var chart = params.chart, options = params.options; - var conversionTag5 = options.conversionTag; - var data3 = chart.getOptions().data; - if (conversionTag5) { - var formatter_1 = conversionTag5.formatter; - data3.forEach(function(obj, index2) { - if (index2 <= 0 || Number.isNaN(obj[FUNNEL_MAPPING_VALUE])) - return; - var lineOption = getLineCoordinate(obj, index2, data3, { - top: true, - text: { - content: is_function_default(formatter_1) ? formatter_1(obj, data3) : formatter_1, - offsetX: conversionTag5.offsetX, - offsetY: conversionTag5.offsetY, - position: "end", - autoRotate: false, - style: __assign({ textAlign: "start", textBaseline: "middle" }, conversionTag5.style) - } - }); - chart.annotation().line(lineOption); - }); - } - return params; - }; -} - -// node_modules/@antv/g2plot/esm/plots/funnel/geometries/basic.js -function field2(params) { - var chart = params.chart, options = params.options; - var _a6 = options.data, data3 = _a6 === void 0 ? [] : _a6, yField = options.yField, maxSize = options.maxSize, minSize = options.minSize; - var formatData = transformData2(data3, data3, { - yField, - maxSize, - minSize - }); - chart.data(formatData); - return params; -} -function geometry20(params) { - var chart = params.chart, options = params.options; - var xField = options.xField, yField = options.yField, color4 = options.color, tooltip10 = options.tooltip, label17 = options.label, _a6 = options.shape, shape = _a6 === void 0 ? "funnel" : _a6, funnelStyle = options.funnelStyle, state2 = options.state; - var _b = getTooltipMapping(tooltip10, [xField, yField]), fields = _b.fields, formatter = _b.formatter; - geometry({ - chart, - options: { - type: "interval", - xField, - yField: FUNNEL_MAPPING_VALUE, - colorField: xField, - tooltipFields: is_array_default(fields) && fields.concat([FUNNEL_PERCENT, FUNNEL_CONVERSATION]), - mapping: { - shape, - tooltip: formatter, - color: color4, - style: funnelStyle - }, - label: label17, - state: state2 - } - }); - var geo = findGeometry(params.chart, "interval"); - geo.adjust("symmetric"); - return params; -} -function transpose3(params) { - var chart = params.chart, options = params.options; - var isTransposed = options.isTransposed; - chart.coordinate({ - type: "rect", - actions: !isTransposed ? [["transpose"], ["scale", 1, -1]] : [] - }); - return params; -} -function conversionTag2(params) { - var options = params.options; - var maxSize = options.maxSize; - var getLineCoordinate = function(datum, datumIndex, data3, initLineOption) { - var percent2 = maxSize - (maxSize - datum[FUNNEL_MAPPING_VALUE]) / 2; - return __assign(__assign({}, initLineOption), { start: [datumIndex - 0.5, percent2], end: [datumIndex - 0.5, percent2 + 0.05] }); - }; - conversionTagComponent(getLineCoordinate)(params); - return params; -} -function basicFunnel(params) { - return flow(field2, geometry20, transpose3, conversionTag2)(params); -} - -// node_modules/@antv/g2plot/esm/plots/funnel/geometries/compare.js -function field3(params) { - var _a6; - var chart = params.chart, options = params.options; - var _b = options.data, data3 = _b === void 0 ? [] : _b, yField = options.yField; - chart.data(data3); - chart.scale((_a6 = {}, _a6[yField] = { - sync: true - }, _a6)); - return params; -} -function geometry21(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, xField = options.xField, yField = options.yField, color4 = options.color, compareField = options.compareField, isTransposed = options.isTransposed, tooltip10 = options.tooltip, maxSize = options.maxSize, minSize = options.minSize, label17 = options.label, funnelStyle = options.funnelStyle, state2 = options.state; - chart.facet("mirror", { - fields: [compareField], - transpose: !isTransposed, - padding: isTransposed ? 0 : [32, 0, 0, 0], - eachView: function(view, facet) { - var index2 = isTransposed ? facet.rowIndex : facet.columnIndex; - if (!isTransposed) { - view.coordinate({ - type: "rect", - actions: [["transpose"], ["scale", index2 === 0 ? -1 : 1, -1]] - }); - } - var formatterData = transformData2(facet.data, data3, { - yField, - maxSize, - minSize - }); - view.data(formatterData); - var _a6 = getTooltipMapping(tooltip10, [xField, yField, compareField]), fields = _a6.fields, formatter = _a6.formatter; - var defaultFacetLabel = isTransposed ? { - offset: index2 === 0 ? 10 : -23, - position: index2 === 0 ? "bottom" : "top" - } : { - offset: 10, - position: "left", - style: { - textAlign: index2 === 0 ? "end" : "start" - } - }; - geometry({ - chart: view, - options: { - type: "interval", - xField, - yField: FUNNEL_MAPPING_VALUE, - colorField: xField, - tooltipFields: is_array_default(fields) && fields.concat([FUNNEL_PERCENT, FUNNEL_CONVERSATION]), - mapping: { - shape: "funnel", - tooltip: formatter, - color: color4, - style: funnelStyle - }, - label: label17 === false ? false : deepAssign({}, defaultFacetLabel, label17), - state: state2 - } - }); - } - }); - return params; -} -function conversionTag3(params) { - var chart = params.chart, options = params.options; - var conversionTag5 = options.conversionTag, isTransposed = options.isTransposed; - chart.once("beforepaint", function() { - chart.views.forEach(function(view, viewIndex) { - var getLineCoordinate = function(datum, datumIndex, data3, initLineOption) { - var ratio = viewIndex === 0 ? -1 : 1; - return deepAssign({}, initLineOption, { - start: [datumIndex - 0.5, datum[FUNNEL_MAPPING_VALUE]], - end: [datumIndex - 0.5, datum[FUNNEL_MAPPING_VALUE] + 0.05], - text: isTransposed ? { - style: { - textAlign: "start" - } - } : { - offsetX: conversionTag5 !== false ? ratio * conversionTag5.offsetX : 0, - style: { - textAlign: viewIndex === 0 ? "end" : "start" - } - } - }); - }; - conversionTagComponent(getLineCoordinate)(deepAssign({}, { - chart: view, - options - })); - }); - }); - return params; -} -function compareFunnel(params) { - return flow(field3, geometry21, conversionTag3)(params); -} - -// node_modules/@antv/g2plot/esm/plots/funnel/geometries/facet.js -function field4(params) { - var _a6; - var chart = params.chart, options = params.options; - var _b = options.data, data3 = _b === void 0 ? [] : _b, yField = options.yField; - chart.data(data3); - chart.scale((_a6 = {}, _a6[yField] = { - sync: true - }, _a6)); - return params; -} -function geometry22(params) { - var chart = params.chart, options = params.options; - var seriesField = options.seriesField, isTransposed = options.isTransposed; - chart.facet("rect", { - fields: [seriesField], - padding: [isTransposed ? 0 : 32, 10, 0, 10], - eachView: function(view, facet) { - basicFunnel(deepAssign({}, params, { - chart: view, - options: { - data: facet.data - } - })); - } - }); - return params; -} -function facetFunnel(params) { - return flow(field4, geometry22)(params); -} - -// node_modules/@antv/g2plot/esm/plots/funnel/geometries/dynamic-height.js -function field5(params) { - var chart = params.chart, options = params.options; - var _a6 = options.data, data3 = _a6 === void 0 ? [] : _a6, yField = options.yField; - var sum = reduce_default(data3, function(total, item) { - return total + (item[yField] || 0); - }, 0); - var max8 = max_by_default(data3, yField)[yField]; - var formatData = map_default(data3, function(row, index2) { - var x6 = []; - var y5 = []; - row[FUNNEL_TOTAL_PERCENT] = (row[yField] || 0) / sum; - if (index2) { - var preItemX = data3[index2 - 1][PLOYGON_X]; - var preItemY = data3[index2 - 1][PLOYGON_Y]; - x6[0] = preItemX[3]; - y5[0] = preItemY[3]; - x6[1] = preItemX[2]; - y5[1] = preItemY[2]; - } else { - x6[0] = -0.5; - y5[0] = 1; - x6[1] = 0.5; - y5[1] = 1; - } - y5[2] = y5[1] - row[FUNNEL_TOTAL_PERCENT]; - x6[2] = (y5[2] + 1) / 4; - y5[3] = y5[2]; - x6[3] = -x6[2]; - row[PLOYGON_X] = x6; - row[PLOYGON_Y] = y5; - row[FUNNEL_PERCENT] = (row[yField] || 0) / max8; - row[FUNNEL_CONVERSATION] = [get_default(data3, [index2 - 1, yField]), row[yField]]; - return row; - }); - chart.data(formatData); - return params; -} -function geometry23(params) { - var chart = params.chart, options = params.options; - var xField = options.xField, yField = options.yField, color4 = options.color, tooltip10 = options.tooltip, label17 = options.label, funnelStyle = options.funnelStyle, state2 = options.state; - var _a6 = getTooltipMapping(tooltip10, [xField, yField]), fields = _a6.fields, formatter = _a6.formatter; - geometry({ - chart, - options: { - type: "polygon", - xField: PLOYGON_X, - yField: PLOYGON_Y, - colorField: xField, - tooltipFields: is_array_default(fields) && fields.concat([FUNNEL_PERCENT, FUNNEL_CONVERSATION]), - label: label17, - state: state2, - mapping: { - tooltip: formatter, - color: color4, - style: funnelStyle - } - } - }); - return params; -} -function transpose4(params) { - var chart = params.chart, options = params.options; - var isTransposed = options.isTransposed; - chart.coordinate({ - type: "rect", - actions: isTransposed ? [["transpose"], ["reflect", "x"]] : [] - }); - return params; -} -function conversionTag4(params) { - var getLineCoordinate = function(datum, datumIndex, data3, initLineOption) { - return __assign(__assign({}, initLineOption), { start: [datum[PLOYGON_X][1], datum[PLOYGON_Y][1]], end: [datum[PLOYGON_X][1] + 0.05, datum[PLOYGON_Y][1]] }); - }; - conversionTagComponent(getLineCoordinate)(params); - return params; -} -function dynamicHeightFunnel(params) { - return flow(field5, geometry23, transpose4, conversionTag4)(params); -} - -// node_modules/@antv/g2plot/esm/plots/funnel/adaptor.js -function defaultOptions3(params) { - var options = params.options; - var compareField = options.compareField, xField = options.xField, yField = options.yField, locale = options.locale, funnelStyle = options.funnelStyle, data3 = options.data; - var i18n = getLocale(locale); - var defaultOption = { - label: compareField ? { - fields: [xField, yField, compareField, FUNNEL_PERCENT, FUNNEL_CONVERSATION], - formatter: function(datum) { - return "" + datum[yField]; - } - } : { - fields: [xField, yField, FUNNEL_PERCENT, FUNNEL_CONVERSATION], - offset: 0, - position: "middle", - formatter: function(datum) { - return datum[xField] + " " + datum[yField]; - } - }, - tooltip: { - title: xField, - formatter: function(datum) { - return { name: datum[xField], value: datum[yField] }; - } - }, - conversionTag: { - formatter: function(datum) { - return i18n.get(["conversionTag", "label"]) + ": " + conversionTagFormatter.apply(void 0, datum[FUNNEL_CONVERSATION]); - } - } - }; - var style; - if (compareField || funnelStyle) { - style = function(datum) { - return deepAssign({}, compareField && { lineWidth: 1, stroke: "#fff" }, is_function_default(funnelStyle) ? funnelStyle(datum) : funnelStyle); - }; - } - return deepAssign({ options: defaultOption }, params, { options: { funnelStyle: style, data: clone_default(data3) } }); -} -function geometry24(params) { - var options = params.options; - var compareField = options.compareField, dynamicHeight = options.dynamicHeight, seriesField = options.seriesField; - if (seriesField) { - return facetFunnel(params); - } - if (compareField) { - return compareFunnel(params); - } - if (dynamicHeight) { - return dynamicHeightFunnel(params); - } - return basicFunnel(params); -} -function meta15(params) { - var _a6; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6)))(params); -} -function axis13(params) { - var chart = params.chart; - chart.axis(false); - return params; -} -function legend14(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend; - if (legend18 === false) { - chart.legend(false); - } else { - chart.legend(legend18); - } - return params; -} -function adaptor22(params) { - return flow(defaultOptions3, geometry24, meta15, axis13, tooltip, interaction, legend14, animation, theme, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/funnel/index.js -var Funnel = function(_super) { - __extends(Funnel2, _super); - function Funnel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "funnel"; - return _this; - } - Funnel2.getDefaultOptions = function() { - return DEFAULT_OPTIONS21; - }; - Funnel2.prototype.getDefaultOptions = function() { - return Funnel2.getDefaultOptions(); - }; - Funnel2.prototype.getSchemaAdaptor = function() { - return adaptor22; - }; - Funnel2.prototype.setState = function(type2, condition, status) { - if (status === void 0) { - status = true; - } - var elements = getAllElementsRecursively(this.chart); - each_default(elements, function(ele) { - if (condition(ele.getData())) { - ele.setState(type2, status); - } - }); - }; - Funnel2.prototype.getStates = function() { - var elements = getAllElementsRecursively(this.chart); - var stateObjects = []; - each_default(elements, function(element) { - var data3 = element.getData(); - var states = element.getStates(); - each_default(states, function(state2) { - stateObjects.push({ data: data3, state: state2, geometry: element.geometry, element }); - }); - }); - return stateObjects; - }; - Funnel2.CONVERSATION_FIELD = FUNNEL_CONVERSATION; - Funnel2.PERCENT_FIELD = FUNNEL_PERCENT; - Funnel2.TOTAL_PERCENT_FIELD = FUNNEL_TOTAL_PERCENT; - return Funnel2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/liquid/utils.js -var CAT_VALUE = "liquid"; -function getLiquidData(percent2) { - return [{ percent: percent2, type: CAT_VALUE }]; -} - -// node_modules/@antv/g2plot/esm/plots/liquid/adaptor.js -function geometry25(params) { - var chart = params.chart, options = params.options; - var percent2 = options.percent, liquidStyle = options.liquidStyle, radius = options.radius, outline = options.outline, wave = options.wave, shape = options.shape, animation7 = options.animation; - chart.scale({ - percent: { - min: 0, - max: 1 - } - }); - chart.data(getLiquidData(percent2)); - var color4 = options.color || chart.getTheme().defaultColor; - var p4 = deepAssign({}, params, { - options: { - xField: "type", - yField: "percent", - widthRatio: radius, - interval: { - color: color4, - style: liquidStyle, - shape: "liquid-fill-gauge" - } - } - }); - var ext = interval2(p4).ext; - var geometry35 = ext.geometry; - var background = chart.getTheme().background; - var customInfo = { - radius, - outline, - wave, - shape, - background, - animation: animation7 - }; - geometry35.customInfo(customInfo); - chart.legend(false); - chart.axis(false); - chart.tooltip(false); - return params; -} -function statistic2(params, updated) { - var chart = params.chart, options = params.options; - var statistic4 = options.statistic, percent2 = options.percent, meta23 = options.meta; - chart.getController("annotation").clear(true); - var metaFormatter = get_default(meta23, ["percent", "formatter"]) || function(v3) { - return (v3 * 100).toFixed(2) + "%"; - }; - var contentOpt = statistic4.content; - if (contentOpt) { - contentOpt = deepAssign({}, contentOpt, { - content: !is_nil_default(contentOpt.content) ? contentOpt.content : metaFormatter(percent2) - }); - } - renderStatistic(chart, { statistic: __assign(__assign({}, statistic4), { content: contentOpt }), plotType: "liquid" }, { percent: percent2 }); - if (updated) { - chart.render(true); - } - return params; -} -function adaptor23(params) { - return flow(theme, pattern("liquidStyle"), geometry25, statistic2, scale7({}), animation, interaction)(params); -} - -// node_modules/@antv/g2plot/esm/plots/liquid/constants.js -var DEFAULT_OPTIONS22 = { - radius: 0.9, - statistic: { - title: false, - content: { - style: { - opacity: 0.75, - fontSize: "30px", - lineHeight: "30px", - textAlign: "center" - } - } - }, - outline: { - border: 2, - distance: 0 - }, - wave: { - count: 3, - length: 192 - }, - shape: "circle" -}; - -// node_modules/@antv/g2plot/esm/plots/liquid/shapes/liquid.js -var DURATION = 5e3; -function lerp5(min7, max8, factor) { - return min7 + (max8 - min7) * factor; -} -function getFillAttrs2(cfg) { - var attrs = __assign({ opacity: 1 }, cfg.style); - if (cfg.color && !attrs.fill) { - attrs.fill = cfg.color; - } - return attrs; -} -function getLineAttrs(cfg) { - var defaultAttrs = { - fill: "#fff", - fillOpacity: 0, - lineWidth: 4 - }; - var attrs = mix({}, defaultAttrs, cfg.style); - if (cfg.color && !attrs.stroke) { - attrs.stroke = cfg.color; - } - if (is_number_default(cfg.opacity)) { - attrs.opacity = attrs.strokeOpacity = cfg.opacity; - } - return attrs; -} -function getWaterWavePositions(x6, stage, waveLength, amplitude2) { - if (stage === 0) { - return [ - [x6 + 1 / 2 * waveLength / Math.PI / 2, amplitude2 / 2], - [x6 + 1 / 2 * waveLength / Math.PI, amplitude2], - [x6 + waveLength / 4, amplitude2] - ]; - } - if (stage === 1) { - return [ - [x6 + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 2), amplitude2], - [x6 + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 1), amplitude2 / 2], - [x6 + waveLength / 4, 0] - ]; - } - if (stage === 2) { - return [ - [x6 + 1 / 2 * waveLength / Math.PI / 2, -amplitude2 / 2], - [x6 + 1 / 2 * waveLength / Math.PI, -amplitude2], - [x6 + waveLength / 4, -amplitude2] - ]; - } - return [ - [x6 + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 2), -amplitude2], - [x6 + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 1), -amplitude2 / 2], - [x6 + waveLength / 4, 0] - ]; -} -function getWaterWavePath(radius, waterLevel, waveLength, phase, amplitude2, cx, cy) { - var curves = Math.ceil(2 * radius / waveLength * 4) * 4; - var path = []; - var _phase = phase; - while (_phase < -Math.PI * 2) { - _phase += Math.PI * 2; - } - while (_phase > 0) { - _phase -= Math.PI * 2; - } - _phase = _phase / Math.PI / 2 * waveLength; - var left2 = cx - radius + _phase - radius * 2; - path.push(["M", left2, waterLevel]); - var waveRight = 0; - for (var c5 = 0; c5 < curves; ++c5) { - var stage = c5 % 4; - var pos = getWaterWavePositions(c5 * waveLength / 4, stage, waveLength, amplitude2); - path.push([ - "C", - pos[0][0] + left2, - -pos[0][1] + waterLevel, - pos[1][0] + left2, - -pos[1][1] + waterLevel, - pos[2][0] + left2, - -pos[2][1] + waterLevel - ]); - if (c5 === curves - 1) { - waveRight = pos[2][0]; - } - } - path.push(["L", waveRight + left2, cy + radius]); - path.push(["L", left2, cy + radius]); - path.push(["Z"]); - return path; -} -function addWaterWave(x6, y5, level, waveCount, waveAttrs, group2, clip, radius, waveLength, animation7) { - var fill = waveAttrs.fill, opacity = waveAttrs.opacity; - var bbox = clip.getBBox(); - var width2 = bbox.maxX - bbox.minX; - var height = bbox.maxY - bbox.minY; - for (var idx = 0; idx < waveCount; idx++) { - var factor = waveCount <= 1 ? 0 : idx / (waveCount - 1); - var wave = group2.addShape("path", { - name: "waterwave-path", - attrs: { - path: getWaterWavePath(radius, bbox.minY + height * level, waveLength, 0, width2 / 32, x6, y5), - fill, - opacity: lerp5(0.2, 0.9, factor) * opacity - } - }); - try { - if (animation7 === false) - return; - var matrix = transform5([["t", waveLength, 0]]); - wave.stopAnimate(); - wave.animate({ matrix }, { - duration: lerp5(0.5 * DURATION, DURATION, factor), - repeat: true - }); - } catch (e4) { - console.warn("off-screen group animate error!"); - } - } -} -function pin(x6, y5, width2, height) { - var w4 = width2 * 2 / 3; - var h3 = Math.max(w4, height); - var r4 = w4 / 2; - var cx = x6; - var cy = r4 + y5 - h3 / 2; - var theta = Math.asin(r4 / ((h3 - r4) * 0.85)); - var dy = Math.sin(theta) * r4; - var dx = Math.cos(theta) * r4; - var x0 = cx - dx; - var y0 = cy + dy; - var cpX = x6; - var cpY = cy + r4 / Math.sin(theta); - return "\n M " + x0 + " " + y0 + "\n A " + r4 + " " + r4 + " 0 1 1 " + (x0 + dx * 2) + " " + y0 + "\n Q " + cpX + " " + cpY + " " + x6 + " " + (y5 + h3 / 2) + "\n Q " + cpX + " " + cpY + " " + x0 + " " + y0 + "\n Z \n "; -} -function circle(x6, y5, width2, height) { - var rx = width2 / 2; - var ry = height / 2; - return "\n M " + x6 + " " + (y5 - ry) + " \n a " + rx + " " + ry + " 0 1 0 0 " + ry * 2 + "\n a " + rx + " " + ry + " 0 1 0 0 " + -ry * 2 + "\n Z\n "; -} -function diamond(x6, y5, width2, height) { - var h3 = height / 2; - var w4 = width2 / 2; - return "\n M " + x6 + " " + (y5 - h3) + "\n L " + (x6 + w4) + " " + y5 + "\n L " + x6 + " " + (y5 + h3) + "\n L " + (x6 - w4) + " " + y5 + "\n Z\n "; -} -function triangle(x6, y5, width2, height) { - var h3 = height / 2; - var w4 = width2 / 2; - return "\n M " + x6 + " " + (y5 - h3) + "\n L " + (x6 + w4) + " " + (y5 + h3) + "\n L " + (x6 - w4) + " " + (y5 + h3) + "\n Z\n "; -} -function rect(x6, y5, width2, height) { - var GOLDEN_SECTION_RATIO = 0.618; - var h3 = height / 2; - var w4 = width2 / 2 * GOLDEN_SECTION_RATIO; - return "\n M " + (x6 - w4) + " " + (y5 - h3) + "\n L " + (x6 + w4) + " " + (y5 - h3) + "\n L " + (x6 + w4) + " " + (y5 + h3) + "\n L " + (x6 - w4) + " " + (y5 + h3) + "\n Z\n "; -} -registerShape("interval", "liquid-fill-gauge", { - draw: function(cfg, container2) { - var cx = 0.5; - var cy = 0.5; - var customInfo = cfg.customInfo; - var _a6 = customInfo, radio = _a6.radius, shape = _a6.shape, background = _a6.background, animation7 = _a6.animation; - var outline = customInfo.outline; - var wave = customInfo.wave; - var border = outline.border, distance15 = outline.distance; - var waveCount = wave.count, waveLength = wave.length; - var minX = reduce_default(cfg.points, function(r4, p4) { - return Math.min(r4, p4.x); - }, Infinity); - var center2 = this.parsePoint({ x: cx, y: cy }); - var minXPoint = this.parsePoint({ x: minX, y: cy }); - var halfWidth = center2.x - minXPoint.x; - var radius = Math.min(halfWidth, minXPoint.y * radio); - var waveAttrs = getFillAttrs2(cfg); - var outlineAttrs = getLineAttrs(mix({}, cfg, outline)); - var innerRadius = radius - border / 2; - var builtInShapeByName = { - pin, - circle, - diamond, - triangle, - rect - }; - var buildPath = typeof shape === "function" ? shape : builtInShapeByName[shape] || builtInShapeByName["circle"]; - var shapePath = buildPath(center2.x, center2.y, innerRadius * 2, innerRadius * 2); - var waves = container2.addGroup({ - name: "waves" - }); - var clipPath = waves.setClip({ - type: "path", - attrs: { - path: shapePath - } - }); - addWaterWave(center2.x, center2.y, 1 - cfg.points[1].y, waveCount, waveAttrs, waves, clipPath, radius * 2, waveLength, animation7); - container2.addShape("path", { - name: "distance", - attrs: { - path: shapePath, - fill: "transparent", - lineWidth: border + distance15 * 2, - stroke: background === "transparent" ? "#fff" : background - } - }); - container2.addShape("path", { - name: "wrap", - attrs: mix(outlineAttrs, { - path: shapePath, - fill: "transparent", - lineWidth: border - }) - }); - return container2; - } -}); - -// node_modules/@antv/g2plot/esm/plots/liquid/index.js -var Liquid = function(_super) { - __extends(Liquid2, _super); - function Liquid2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "liquid"; - return _this; - } - Liquid2.getDefaultOptions = function() { - return DEFAULT_OPTIONS22; - }; - Liquid2.prototype.getDefaultOptions = function() { - return Liquid2.getDefaultOptions(); - }; - Liquid2.prototype.changeData = function(percent2) { - this.chart.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null)); - this.updateOption({ percent: percent2 }); - this.chart.data(getLiquidData(percent2)); - statistic2({ chart: this.chart, options: this.options }, true); - this.chart.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null)); - }; - Liquid2.prototype.getSchemaAdaptor = function() { - return adaptor23; - }; - return Liquid2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/bullet/utils.js -function transformData3(options) { - var data3 = options.data, xField = options.xField, measureField = options.measureField, rangeField = options.rangeField, targetField = options.targetField, layout6 = options.layout; - var ds = []; - var scales = []; - data3.forEach(function(item, index2) { - var _a6; - item[rangeField].sort(function(a4, b10) { - return a4 - b10; - }); - item[rangeField].forEach(function(d3, i4) { - var _a7; - var range = i4 === 0 ? d3 : item[rangeField][i4] - item[rangeField][i4 - 1]; - ds.push((_a7 = { - rKey: rangeField + "_" + i4 - }, _a7[xField] = xField ? item[xField] : String(index2), _a7[rangeField] = range, _a7)); - }); - item[measureField].forEach(function(d3, i4) { - var _a7; - ds.push((_a7 = { - mKey: item[measureField].length > 1 ? measureField + "_" + i4 : "" + measureField - }, _a7[xField] = xField ? item[xField] : String(index2), _a7[measureField] = d3, _a7)); - }); - ds.push((_a6 = { - tKey: "" + targetField - }, _a6[xField] = xField ? item[xField] : String(index2), _a6[targetField] = item[targetField], _a6)); - scales.push(item[rangeField], item[measureField], item[targetField]); - }); - var min7 = Math.min.apply(Math, scales.flat(Infinity)); - var max8 = Math.max.apply(Math, scales.flat(Infinity)); - min7 = min7 > 0 ? 0 : min7; - if (layout6 === "vertical") { - ds.reverse(); - } - return { min: min7, max: max8, ds }; -} - -// node_modules/@antv/g2plot/esm/plots/bullet/adaptor.js -function geometry26(params) { - var chart = params.chart, options = params.options; - var bulletStyle = options.bulletStyle, targetField = options.targetField, rangeField = options.rangeField, measureField = options.measureField, xField = options.xField, color4 = options.color, layout6 = options.layout, size2 = options.size, label17 = options.label; - var _a6 = transformData3(options), min7 = _a6.min, max8 = _a6.max, ds = _a6.ds; - chart.data(ds); - var r4 = deepAssign({}, params, { - options: { - xField, - yField: rangeField, - seriesField: "rKey", - isStack: true, - label: get_default(label17, "range"), - interval: { - color: get_default(color4, "range"), - style: get_default(bulletStyle, "range"), - size: get_default(size2, "range") - } - } - }); - interval2(r4); - chart.geometries[0].tooltip(false); - var m4 = deepAssign({}, params, { - options: { - xField, - yField: measureField, - seriesField: "mKey", - isStack: true, - label: get_default(label17, "measure"), - interval: { - color: get_default(color4, "measure"), - style: get_default(bulletStyle, "measure"), - size: get_default(size2, "measure") - } - } - }); - interval2(m4); - var t4 = deepAssign({}, params, { - options: { - xField, - yField: targetField, - seriesField: "tKey", - label: get_default(label17, "target"), - point: { - color: get_default(color4, "target"), - style: get_default(bulletStyle, "target"), - size: is_function_default(get_default(size2, "target")) ? function(data3) { - return get_default(size2, "target")(data3) / 2; - } : get_default(size2, "target") / 2, - shape: layout6 === "horizontal" ? "line" : "hyphen" - } - } - }); - point(t4); - if (layout6 === "horizontal") { - chart.coordinate().transpose(); - } - return __assign(__assign({}, params), { ext: { data: { min: min7, max: max8 } } }); -} -function meta16(params) { - var _a6, _b; - var options = params.options, ext = params.ext; - var xAxis = options.xAxis, yAxis = options.yAxis, targetField = options.targetField, rangeField = options.rangeField, measureField = options.measureField, xField = options.xField; - var extData = ext.data; - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[measureField] = yAxis, _a6), (_b = {}, _b[measureField] = { min: extData === null || extData === void 0 ? void 0 : extData.min, max: extData === null || extData === void 0 ? void 0 : extData.max, sync: true }, _b[targetField] = { - sync: "" + measureField - }, _b[rangeField] = { - sync: "" + measureField - }, _b)))(params); -} -function axis14(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, measureField = options.measureField, rangeField = options.rangeField, targetField = options.targetField; - chart.axis("" + rangeField, false); - chart.axis("" + targetField, false); - if (xAxis === false) { - chart.axis("" + xField, false); - } else { - chart.axis("" + xField, xAxis); - } - if (yAxis === false) { - chart.axis("" + measureField, false); - } else { - chart.axis("" + measureField, yAxis); - } - return params; -} -function legend15(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend; - chart.removeInteraction("legend-filter"); - chart.legend(legend18); - chart.legend("rKey", false); - chart.legend("mKey", false); - chart.legend("tKey", false); - return params; -} -function label12(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, measureField = options.measureField, targetField = options.targetField, rangeField = options.rangeField; - var _a6 = chart.geometries, rangeGeometry = _a6[0], measureGeometry = _a6[1], targetGeometry = _a6[2]; - if (get_default(label17, "range")) { - rangeGeometry.label("" + rangeField, __assign({ layout: [{ type: "limit-in-plot" }] }, transformLabel(label17.range))); - } else { - rangeGeometry.label(false); - } - if (get_default(label17, "measure")) { - measureGeometry.label("" + measureField, __assign({ layout: [{ type: "limit-in-plot" }] }, transformLabel(label17.measure))); - } else { - measureGeometry.label(false); - } - if (get_default(label17, "target")) { - targetGeometry.label("" + targetField, __assign({ layout: [{ type: "limit-in-plot" }] }, transformLabel(label17.target))); - } else { - targetGeometry.label(false); - } - return params; -} -function adaptor24(params) { - flow(geometry26, meta16, axis14, legend15, theme, label12, tooltip, interaction, animation)(params); -} - -// node_modules/@antv/g2plot/esm/plots/bullet/constant.js -var DEFAULT_OPTIONS23 = deepAssign({}, Plot.getDefaultOptions(), { - layout: "horizontal", - size: { - range: 30, - measure: 20, - target: 20 - }, - xAxis: { - tickLine: false, - line: null - }, - bulletStyle: { - range: { - fillOpacity: 0.5 - } - }, - label: { - measure: { - position: "right" - } - }, - tooltip: { - showMarkers: false - } -}); - -// node_modules/@antv/g2plot/esm/plots/bullet/index.js -var Bullet = function(_super) { - __extends(Bullet2, _super); - function Bullet2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "bullet"; - return _this; - } - Bullet2.getDefaultOptions = function() { - return DEFAULT_OPTIONS23; - }; - Bullet2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = transformData3(this.options), min7 = _a6.min, max8 = _a6.max, ds = _a6.ds; - meta16({ options: this.options, ext: { data: { min: min7, max: max8 } }, chart: this.chart }); - this.chart.changeData(ds); - }; - Bullet2.prototype.getSchemaAdaptor = function() { - return adaptor24; - }; - Bullet2.prototype.getDefaultOptions = function() { - return Bullet2.getDefaultOptions(); - }; - return Bullet2; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/hierarchy/util.js -var NODE_INDEX_FIELD = "nodeIndex"; -var CHILD_NODE_COUNT = "childNodeCount"; -var NODE_ANCESTORS_FIELD = "nodeAncestor"; -var INVALID_FIELD_ERR_MSG = "Invalid field: it must be a string!"; -function getField(options, defaultField) { - var field6 = options.field, fields = options.fields; - if (is_string_default(field6)) { - return field6; - } - if (is_array_default(field6)) { - console.warn(INVALID_FIELD_ERR_MSG); - return field6[0]; - } - console.warn(INVALID_FIELD_ERR_MSG + " will try to get fields instead."); - if (is_string_default(fields)) { - return fields; - } - if (is_array_default(fields) && fields.length) { - return fields[0]; - } - if (defaultField) { - return defaultField; - } - throw new TypeError(INVALID_FIELD_ERR_MSG); -} -function getAllNodes(root) { - var nodes = []; - if (root && root.each) { - var parent_1; - var index_1; - root.each(function(node) { - var _a6, _b; - if (node.parent !== parent_1) { - parent_1 = node.parent; - index_1 = 0; - } else { - index_1 += 1; - } - var ancestors = filter_default((((_a6 = node.ancestors) === null || _a6 === void 0 ? void 0 : _a6.call(node)) || []).map(function(d3) { - return nodes.find(function(n3) { - return n3.name === d3.name; - }) || d3; - }), function(_a7) { - var depth = _a7.depth; - return depth > 0 && depth < node.depth; - }); - node[NODE_ANCESTORS_FIELD] = ancestors; - node[CHILD_NODE_COUNT] = ((_b = node.children) === null || _b === void 0 ? void 0 : _b.length) || 0; - node[NODE_INDEX_FIELD] = index_1; - nodes.push(node); - }); - } else if (root && root.eachNode) { - root.eachNode(function(node) { - nodes.push(node); - }); - } - return nodes; -} - -// node_modules/@antv/g2plot/esm/plots/sunburst/constant.js -var SUNBURST_ANCESTOR_FIELD = "ancestor-node"; -var SUNBURST_Y_FIELD = "value"; -var SUNBURST_PATH_FIELD = "path"; -var RAW_FIELDS = [ - SUNBURST_PATH_FIELD, - NODE_INDEX_FIELD, - NODE_ANCESTORS_FIELD, - CHILD_NODE_COUNT, - "name", - "depth", - "height" -]; -var DEFAULT_OPTIONS24 = deepAssign({}, Plot.getDefaultOptions(), { - innerRadius: 0, - radius: 0.85, - hierarchyConfig: { - field: "value" - }, - tooltip: { - shared: true, - showMarkers: false, - offset: 20, - showTitle: false - }, - legend: false, - sunburstStyle: { - lineWidth: 0.5, - stroke: "#FFF" - }, - drilldown: { enabled: true } -}); - -// node_modules/@antv/g2plot/esm/interactions/actions/drill-down.js -var PADDING = 4; -var PADDING_LEFT = 0; -var PADDING_TOP3 = 5; -var BREAD_CRUMB_NAME = "drilldown-bread-crumb"; -var DEFAULT_BREAD_CRUMB_CONFIG = { - position: "top-left", - dividerText: "/", - textStyle: { - fontSize: 12, - fill: "rgba(0, 0, 0, 0.65)", - cursor: "pointer" - }, - activeTextStyle: { - fill: "#87B5FF" - } -}; -var HIERARCHY_DATA_TRANSFORM_PARAMS = "hierarchy-data-transform-params"; -var DrillDownAction = function(_super) { - __extends(DrillDownAction2, _super); - function DrillDownAction2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.name = "drill-down"; - _this.historyCache = []; - _this.breadCrumbGroup = null; - _this.breadCrumbCfg = DEFAULT_BREAD_CRUMB_CONFIG; - return _this; - } - DrillDownAction2.prototype.click = function() { - var data3 = get_default(this.context, ["event", "data", "data"]); - if (!data3) - return false; - this.drill(data3); - this.drawBreadCrumb(); - }; - DrillDownAction2.prototype.resetPosition = function() { - if (!this.breadCrumbGroup) - return; - var coordinate11 = this.context.view.getCoordinate(); - var breadCrumbGroup = this.breadCrumbGroup; - var bbox = breadCrumbGroup.getBBox(); - var position2 = this.getButtonCfg().position; - var point2 = { x: coordinate11.start.x, y: coordinate11.end.y - (bbox.height + PADDING_TOP3 * 2) }; - if (coordinate11.isPolar) { - point2 = { x: 0, y: 0 }; - } - if (position2 === "bottom-left") { - point2 = { x: coordinate11.start.x, y: coordinate11.start.y }; - } - var matrix = Util.transform(null, [["t", point2.x + PADDING_LEFT, point2.y + bbox.height + PADDING_TOP3]]); - breadCrumbGroup.setMatrix(matrix); - }; - DrillDownAction2.prototype.back = function() { - if (size(this.historyCache)) { - this.backTo(this.historyCache.slice(0, -1)); - } - }; - DrillDownAction2.prototype.reset = function() { - if (this.historyCache[0]) { - this.backTo(this.historyCache.slice(0, 1)); - } - this.historyCache = []; - this.hideCrumbGroup(); - }; - DrillDownAction2.prototype.drill = function(nodeInfo) { - var view = this.context.view; - var transformData10 = get_default(view, ["interactions", "drill-down", "cfg", "transformData"], function(v3) { - return v3; - }); - var drillData = transformData10(__assign({ data: nodeInfo.data }, nodeInfo[HIERARCHY_DATA_TRANSFORM_PARAMS])); - view.changeData(drillData); - var historyCache = []; - var node = nodeInfo; - while (node) { - var nodeData = node.data; - historyCache.unshift({ - id: nodeData.name + "_" + node.height + "_" + node.depth, - name: nodeData.name, - children: transformData10(__assign({ data: nodeData }, nodeInfo[HIERARCHY_DATA_TRANSFORM_PARAMS])) - }); - node = node.parent; - } - this.historyCache = (this.historyCache || []).slice(0, -1).concat(historyCache); - }; - DrillDownAction2.prototype.backTo = function(historyCache) { - if (!historyCache || historyCache.length <= 0) { - return; - } - var view = this.context.view; - var data3 = last(historyCache).children; - view.changeData(data3); - if (historyCache.length > 1) { - this.historyCache = historyCache; - this.drawBreadCrumb(); - } else { - this.historyCache = []; - this.hideCrumbGroup(); - } - }; - DrillDownAction2.prototype.getButtonCfg = function() { - var view = this.context.view; - var drillDownConfig = get_default(view, ["interactions", "drill-down", "cfg", "drillDownConfig"]); - return deepAssign(this.breadCrumbCfg, drillDownConfig === null || drillDownConfig === void 0 ? void 0 : drillDownConfig.breadCrumb, this.cfg); - }; - DrillDownAction2.prototype.drawBreadCrumb = function() { - this.drawBreadCrumbGroup(); - this.resetPosition(); - this.breadCrumbGroup.show(); - }; - DrillDownAction2.prototype.drawBreadCrumbGroup = function() { - var _this = this; - var config = this.getButtonCfg(); - var cache3 = this.historyCache; - if (!this.breadCrumbGroup) { - this.breadCrumbGroup = this.context.view.foregroundGroup.addGroup({ - name: BREAD_CRUMB_NAME - }); - } else { - this.breadCrumbGroup.clear(); - } - var left2 = 0; - cache3.forEach(function(record, index2) { - var textShape = _this.breadCrumbGroup.addShape({ - type: "text", - id: record.id, - name: BREAD_CRUMB_NAME + "_" + record.name + "_text", - attrs: __assign(__assign({ text: index2 === 0 && !is_nil_default(config.rootText) ? config.rootText : record.name }, config.textStyle), { x: left2, y: 0 }) - }); - var textShapeBox = textShape.getBBox(); - left2 += textShapeBox.width + PADDING; - textShape.on("click", function(event) { - var _a6; - var targetId = event.target.get("id"); - if (targetId !== ((_a6 = last(cache3)) === null || _a6 === void 0 ? void 0 : _a6.id)) { - var newHistoryCache = cache3.slice(0, cache3.findIndex(function(d3) { - return d3.id === targetId; - }) + 1); - _this.backTo(newHistoryCache); - } - }); - textShape.on("mouseenter", function(event) { - var _a6; - var targetId = event.target.get("id"); - if (targetId !== ((_a6 = last(cache3)) === null || _a6 === void 0 ? void 0 : _a6.id)) { - textShape.attr(config.activeTextStyle); - } else { - textShape.attr({ cursor: "default" }); - } - }); - textShape.on("mouseleave", function() { - textShape.attr(config.textStyle); - }); - if (index2 < cache3.length - 1) { - var dividerShape = _this.breadCrumbGroup.addShape({ - type: "text", - name: config.name + "_" + record.name + "_divider", - attrs: __assign(__assign({ text: config.dividerText }, config.textStyle), { x: left2, y: 0 }) - }); - var dividerBox = dividerShape.getBBox(); - left2 += dividerBox.width + PADDING; - } - }); - }; - DrillDownAction2.prototype.hideCrumbGroup = function() { - if (this.breadCrumbGroup) { - this.breadCrumbGroup.hide(); - } - }; - DrillDownAction2.prototype.destroy = function() { - if (this.breadCrumbGroup) { - this.breadCrumbGroup.remove(); - } - _super.prototype.destroy.call(this); - }; - return DrillDownAction2; -}(base_default12); - -// node_modules/d3-hierarchy/src/index.js -var src_exports2 = {}; -__export(src_exports2, { - cluster: () => cluster_default, - hierarchy: () => hierarchy, - pack: () => pack_default, - packEnclose: () => enclose_default, - packSiblings: () => siblings_default, - partition: () => partition_default, - stratify: () => stratify_default, - tree: () => tree_default2, - treemap: () => treemap_default, - treemapBinary: () => binary_default, - treemapDice: () => dice_default, - treemapResquarify: () => resquarify_default, - treemapSlice: () => slice_default, - treemapSliceDice: () => sliceDice_default, - treemapSquarify: () => squarify_default -}); - -// node_modules/d3-hierarchy/src/cluster.js -function defaultSeparation(a4, b10) { - return a4.parent === b10.parent ? 1 : 2; -} -function meanX(children) { - return children.reduce(meanXReduce, 0) / children.length; -} -function meanXReduce(x6, c5) { - return x6 + c5.x; -} -function maxY(children) { - return 1 + children.reduce(maxYReduce, 0); -} -function maxYReduce(y5, c5) { - return Math.max(y5, c5.y); -} -function leafLeft(node) { - var children; - while (children = node.children) - node = children[0]; - return node; -} -function leafRight(node) { - var children; - while (children = node.children) - node = children[children.length - 1]; - return node; -} -function cluster_default() { - var separation = defaultSeparation, dx = 1, dy = 1, nodeSize = false; - function cluster(root) { - var previousNode, x6 = 0; - root.eachAfter(function(node) { - var children = node.children; - if (children) { - node.x = meanX(children); - node.y = maxY(children); - } else { - node.x = previousNode ? x6 += separation(node, previousNode) : 0; - node.y = 0; - previousNode = node; - } - }); - var left2 = leafLeft(root), right2 = leafRight(root), x0 = left2.x - separation(left2, right2) / 2, x1 = right2.x + separation(right2, left2) / 2; - return root.eachAfter(nodeSize ? function(node) { - node.x = (node.x - root.x) * dx; - node.y = (root.y - node.y) * dy; - } : function(node) { - node.x = (node.x - x0) / (x1 - x0) * dx; - node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; - }); - } - cluster.separation = function(x6) { - return arguments.length ? (separation = x6, cluster) : separation; - }; - cluster.size = function(x6) { - return arguments.length ? (nodeSize = false, dx = +x6[0], dy = +x6[1], cluster) : nodeSize ? null : [dx, dy]; - }; - cluster.nodeSize = function(x6) { - return arguments.length ? (nodeSize = true, dx = +x6[0], dy = +x6[1], cluster) : nodeSize ? [dx, dy] : null; - }; - return cluster; -} - -// node_modules/d3-hierarchy/src/hierarchy/count.js -function count(node) { - var sum = 0, children = node.children, i4 = children && children.length; - if (!i4) - sum = 1; - else - while (--i4 >= 0) - sum += children[i4].value; - node.value = sum; -} -function count_default() { - return this.eachAfter(count); -} - -// node_modules/d3-hierarchy/src/hierarchy/each.js -function each_default2(callback, that) { - let index2 = -1; - for (const node of this) { - callback.call(that, node, ++index2, this); - } - return this; -} - -// node_modules/d3-hierarchy/src/hierarchy/eachBefore.js -function eachBefore_default(callback, that) { - var node = this, nodes = [node], children, i4, index2 = -1; - while (node = nodes.pop()) { - callback.call(that, node, ++index2, this); - if (children = node.children) { - for (i4 = children.length - 1; i4 >= 0; --i4) { - nodes.push(children[i4]); - } - } - } - return this; -} - -// node_modules/d3-hierarchy/src/hierarchy/eachAfter.js -function eachAfter_default(callback, that) { - var node = this, nodes = [node], next = [], children, i4, n3, index2 = -1; - while (node = nodes.pop()) { - next.push(node); - if (children = node.children) { - for (i4 = 0, n3 = children.length; i4 < n3; ++i4) { - nodes.push(children[i4]); - } - } - } - while (node = next.pop()) { - callback.call(that, node, ++index2, this); - } - return this; -} - -// node_modules/d3-hierarchy/src/hierarchy/find.js -function find_default2(callback, that) { - let index2 = -1; - for (const node of this) { - if (callback.call(that, node, ++index2, this)) { - return node; - } - } -} - -// node_modules/d3-hierarchy/src/hierarchy/sum.js -function sum_default(value2) { - return this.eachAfter(function(node) { - var sum = +value2(node.data) || 0, children = node.children, i4 = children && children.length; - while (--i4 >= 0) - sum += children[i4].value; - node.value = sum; - }); -} - -// node_modules/d3-hierarchy/src/hierarchy/sort.js -function sort_default(compare4) { - return this.eachBefore(function(node) { - if (node.children) { - node.children.sort(compare4); - } - }); -} - -// node_modules/d3-hierarchy/src/hierarchy/path.js -function path_default7(end2) { - var start = this, ancestor = leastCommonAncestor(start, end2), nodes = [start]; - while (start !== ancestor) { - start = start.parent; - nodes.push(start); - } - var k4 = nodes.length; - while (end2 !== ancestor) { - nodes.splice(k4, 0, end2); - end2 = end2.parent; - } - return nodes; -} -function leastCommonAncestor(a4, b10) { - if (a4 === b10) - return a4; - var aNodes = a4.ancestors(), bNodes = b10.ancestors(), c5 = null; - a4 = aNodes.pop(); - b10 = bNodes.pop(); - while (a4 === b10) { - c5 = a4; - a4 = aNodes.pop(); - b10 = bNodes.pop(); - } - return c5; -} - -// node_modules/d3-hierarchy/src/hierarchy/ancestors.js -function ancestors_default() { - var node = this, nodes = [node]; - while (node = node.parent) { - nodes.push(node); - } - return nodes; -} - -// node_modules/d3-hierarchy/src/hierarchy/descendants.js -function descendants_default() { - return Array.from(this); -} - -// node_modules/d3-hierarchy/src/hierarchy/leaves.js -function leaves_default() { - var leaves = []; - this.eachBefore(function(node) { - if (!node.children) { - leaves.push(node); - } - }); - return leaves; -} - -// node_modules/d3-hierarchy/src/hierarchy/links.js -function links_default() { - var root = this, links = []; - root.each(function(node) { - if (node !== root) { - links.push({ source: node.parent, target: node }); - } - }); - return links; -} - -// node_modules/d3-hierarchy/src/hierarchy/iterator.js -function* iterator_default() { - var node = this, current, next = [node], children, i4, n3; - do { - current = next.reverse(), next = []; - while (node = current.pop()) { - yield node; - if (children = node.children) { - for (i4 = 0, n3 = children.length; i4 < n3; ++i4) { - next.push(children[i4]); - } - } - } - } while (next.length); -} - -// node_modules/d3-hierarchy/src/hierarchy/index.js -function hierarchy(data3, children) { - if (data3 instanceof Map) { - data3 = [void 0, data3]; - if (children === void 0) - children = mapChildren; - } else if (children === void 0) { - children = objectChildren; - } - var root = new Node(data3), node, nodes = [root], child, childs, i4, n3; - while (node = nodes.pop()) { - if ((childs = children(node.data)) && (n3 = (childs = Array.from(childs)).length)) { - node.children = childs; - for (i4 = n3 - 1; i4 >= 0; --i4) { - nodes.push(child = childs[i4] = new Node(childs[i4])); - child.parent = node; - child.depth = node.depth + 1; - } - } - } - return root.eachBefore(computeHeight); -} -function node_copy() { - return hierarchy(this).eachBefore(copyData); -} -function objectChildren(d3) { - return d3.children; -} -function mapChildren(d3) { - return Array.isArray(d3) ? d3[1] : null; -} -function copyData(node) { - if (node.data.value !== void 0) - node.value = node.data.value; - node.data = node.data.data; -} -function computeHeight(node) { - var height = 0; - do - node.height = height; - while ((node = node.parent) && node.height < ++height); -} -function Node(data3) { - this.data = data3; - this.depth = this.height = 0; - this.parent = null; -} -Node.prototype = hierarchy.prototype = { - constructor: Node, - count: count_default, - each: each_default2, - eachAfter: eachAfter_default, - eachBefore: eachBefore_default, - find: find_default2, - sum: sum_default, - sort: sort_default, - path: path_default7, - ancestors: ancestors_default, - descendants: descendants_default, - leaves: leaves_default, - links: links_default, - copy: node_copy, - [Symbol.iterator]: iterator_default -}; - -// node_modules/d3-hierarchy/src/array.js -function array_default2(x6) { - return typeof x6 === "object" && "length" in x6 ? x6 : Array.from(x6); -} -function shuffle(array) { - var m4 = array.length, t4, i4; - while (m4) { - i4 = Math.random() * m4-- | 0; - t4 = array[m4]; - array[m4] = array[i4]; - array[i4] = t4; - } - return array; -} - -// node_modules/d3-hierarchy/src/pack/enclose.js -function enclose_default(circles) { - var i4 = 0, n3 = (circles = shuffle(Array.from(circles))).length, B3 = [], p4, e4; - while (i4 < n3) { - p4 = circles[i4]; - if (e4 && enclosesWeak(e4, p4)) - ++i4; - else - e4 = encloseBasis(B3 = extendBasis(B3, p4)), i4 = 0; - } - return e4; -} -function extendBasis(B3, p4) { - var i4, j4; - if (enclosesWeakAll(p4, B3)) - return [p4]; - for (i4 = 0; i4 < B3.length; ++i4) { - if (enclosesNot(p4, B3[i4]) && enclosesWeakAll(encloseBasis2(B3[i4], p4), B3)) { - return [B3[i4], p4]; - } - } - for (i4 = 0; i4 < B3.length - 1; ++i4) { - for (j4 = i4 + 1; j4 < B3.length; ++j4) { - if (enclosesNot(encloseBasis2(B3[i4], B3[j4]), p4) && enclosesNot(encloseBasis2(B3[i4], p4), B3[j4]) && enclosesNot(encloseBasis2(B3[j4], p4), B3[i4]) && enclosesWeakAll(encloseBasis3(B3[i4], B3[j4], p4), B3)) { - return [B3[i4], B3[j4], p4]; - } - } - } - throw new Error(); -} -function enclosesNot(a4, b10) { - var dr = a4.r - b10.r, dx = b10.x - a4.x, dy = b10.y - a4.y; - return dr < 0 || dr * dr < dx * dx + dy * dy; -} -function enclosesWeak(a4, b10) { - var dr = a4.r - b10.r + Math.max(a4.r, b10.r, 1) * 1e-9, dx = b10.x - a4.x, dy = b10.y - a4.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} -function enclosesWeakAll(a4, B3) { - for (var i4 = 0; i4 < B3.length; ++i4) { - if (!enclosesWeak(a4, B3[i4])) { - return false; - } - } - return true; -} -function encloseBasis(B3) { - switch (B3.length) { - case 1: - return encloseBasis1(B3[0]); - case 2: - return encloseBasis2(B3[0], B3[1]); - case 3: - return encloseBasis3(B3[0], B3[1], B3[2]); - } -} -function encloseBasis1(a4) { - return { - x: a4.x, - y: a4.y, - r: a4.r - }; -} -function encloseBasis2(a4, b10) { - var x1 = a4.x, y1 = a4.y, r1 = a4.r, x22 = b10.x, y22 = b10.y, r22 = b10.r, x21 = x22 - x1, y21 = y22 - y1, r21 = r22 - r1, l4 = Math.sqrt(x21 * x21 + y21 * y21); - return { - x: (x1 + x22 + x21 / l4 * r21) / 2, - y: (y1 + y22 + y21 / l4 * r21) / 2, - r: (l4 + r1 + r22) / 2 - }; -} -function encloseBasis3(a4, b10, c5) { - var x1 = a4.x, y1 = a4.y, r1 = a4.r, x22 = b10.x, y22 = b10.y, r22 = b10.r, x32 = c5.x, y32 = c5.y, r32 = c5.r, a22 = x1 - x22, a32 = x1 - x32, b23 = y1 - y22, b32 = y1 - y32, c22 = r22 - r1, c32 = r32 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d22 = d1 - x22 * x22 - y22 * y22 + r22 * r22, d3 = d1 - x32 * x32 - y32 * y32 + r32 * r32, ab = a32 * b23 - a22 * b32, xa = (b23 * d3 - b32 * d22) / (ab * 2) - x1, xb = (b32 * c22 - b23 * c32) / ab, ya = (a32 * d22 - a22 * d3) / (ab * 2) - y1, yb = (a22 * c32 - a32 * c22) / ab, A4 = xb * xb + yb * yb - 1, B3 = 2 * (r1 + xa * xb + ya * yb), C3 = xa * xa + ya * ya - r1 * r1, r4 = -(A4 ? (B3 + Math.sqrt(B3 * B3 - 4 * A4 * C3)) / (2 * A4) : C3 / B3); - return { - x: x1 + xa + xb * r4, - y: y1 + ya + yb * r4, - r: r4 - }; -} - -// node_modules/d3-hierarchy/src/pack/siblings.js -function place(b10, a4, c5) { - var dx = b10.x - a4.x, x6, a22, dy = b10.y - a4.y, y5, b23, d22 = dx * dx + dy * dy; - if (d22) { - a22 = a4.r + c5.r, a22 *= a22; - b23 = b10.r + c5.r, b23 *= b23; - if (a22 > b23) { - x6 = (d22 + b23 - a22) / (2 * d22); - y5 = Math.sqrt(Math.max(0, b23 / d22 - x6 * x6)); - c5.x = b10.x - x6 * dx - y5 * dy; - c5.y = b10.y - x6 * dy + y5 * dx; - } else { - x6 = (d22 + a22 - b23) / (2 * d22); - y5 = Math.sqrt(Math.max(0, a22 / d22 - x6 * x6)); - c5.x = a4.x + x6 * dx - y5 * dy; - c5.y = a4.y + x6 * dy + y5 * dx; - } - } else { - c5.x = a4.x + c5.r; - c5.y = a4.y; - } -} -function intersects(a4, b10) { - var dr = a4.r + b10.r - 1e-6, dx = b10.x - a4.x, dy = b10.y - a4.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} -function score(node) { - var a4 = node._, b10 = node.next._, ab = a4.r + b10.r, dx = (a4.x * b10.r + b10.x * a4.r) / ab, dy = (a4.y * b10.r + b10.y * a4.r) / ab; - return dx * dx + dy * dy; -} -function Node2(circle3) { - this._ = circle3; - this.next = null; - this.previous = null; -} -function packEnclose(circles) { - if (!(n3 = (circles = array_default2(circles)).length)) - return 0; - var a4, b10, c5, n3, aa, ca, i4, j4, k4, sj, sk; - a4 = circles[0], a4.x = 0, a4.y = 0; - if (!(n3 > 1)) - return a4.r; - b10 = circles[1], a4.x = -b10.r, b10.x = a4.r, b10.y = 0; - if (!(n3 > 2)) - return a4.r + b10.r; - place(b10, a4, c5 = circles[2]); - a4 = new Node2(a4), b10 = new Node2(b10), c5 = new Node2(c5); - a4.next = c5.previous = b10; - b10.next = a4.previous = c5; - c5.next = b10.previous = a4; - pack: - for (i4 = 3; i4 < n3; ++i4) { - place(a4._, b10._, c5 = circles[i4]), c5 = new Node2(c5); - j4 = b10.next, k4 = a4.previous, sj = b10._.r, sk = a4._.r; - do { - if (sj <= sk) { - if (intersects(j4._, c5._)) { - b10 = j4, a4.next = b10, b10.previous = a4, --i4; - continue pack; - } - sj += j4._.r, j4 = j4.next; - } else { - if (intersects(k4._, c5._)) { - a4 = k4, a4.next = b10, b10.previous = a4, --i4; - continue pack; - } - sk += k4._.r, k4 = k4.previous; - } - } while (j4 !== k4.next); - c5.previous = a4, c5.next = b10, a4.next = b10.previous = b10 = c5; - aa = score(a4); - while ((c5 = c5.next) !== b10) { - if ((ca = score(c5)) < aa) { - a4 = c5, aa = ca; - } - } - b10 = a4.next; - } - a4 = [b10._], c5 = b10; - while ((c5 = c5.next) !== b10) - a4.push(c5._); - c5 = enclose_default(a4); - for (i4 = 0; i4 < n3; ++i4) - a4 = circles[i4], a4.x -= c5.x, a4.y -= c5.y; - return c5.r; -} -function siblings_default(circles) { - packEnclose(circles); - return circles; -} - -// node_modules/d3-hierarchy/src/accessors.js -function optional(f3) { - return f3 == null ? null : required(f3); -} -function required(f3) { - if (typeof f3 !== "function") - throw new Error(); - return f3; -} - -// node_modules/d3-hierarchy/src/constant.js -function constantZero() { - return 0; -} -function constant_default2(x6) { - return function() { - return x6; - }; -} - -// node_modules/d3-hierarchy/src/pack/index.js -function defaultRadius(d3) { - return Math.sqrt(d3.value); -} -function pack_default() { - var radius = null, dx = 1, dy = 1, padding3 = constantZero; - function pack2(root) { - root.x = dx / 2, root.y = dy / 2; - if (radius) { - root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding3, 0.5)).eachBefore(translateChild(1)); - } else { - root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren(constantZero, 1)).eachAfter(packChildren(padding3, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); - } - return root; - } - pack2.radius = function(x6) { - return arguments.length ? (radius = optional(x6), pack2) : radius; - }; - pack2.size = function(x6) { - return arguments.length ? (dx = +x6[0], dy = +x6[1], pack2) : [dx, dy]; - }; - pack2.padding = function(x6) { - return arguments.length ? (padding3 = typeof x6 === "function" ? x6 : constant_default2(+x6), pack2) : padding3; - }; - return pack2; -} -function radiusLeaf(radius) { - return function(node) { - if (!node.children) { - node.r = Math.max(0, +radius(node) || 0); - } - }; -} -function packChildren(padding3, k4) { - return function(node) { - if (children = node.children) { - var children, i4, n3 = children.length, r4 = padding3(node) * k4 || 0, e4; - if (r4) - for (i4 = 0; i4 < n3; ++i4) - children[i4].r += r4; - e4 = packEnclose(children); - if (r4) - for (i4 = 0; i4 < n3; ++i4) - children[i4].r -= r4; - node.r = e4 + r4; - } - }; -} -function translateChild(k4) { - return function(node) { - var parent = node.parent; - node.r *= k4; - if (parent) { - node.x = parent.x + k4 * node.x; - node.y = parent.y + k4 * node.y; - } - }; -} - -// node_modules/d3-hierarchy/src/treemap/round.js -function round_default(node) { - node.x0 = Math.round(node.x0); - node.y0 = Math.round(node.y0); - node.x1 = Math.round(node.x1); - node.y1 = Math.round(node.y1); -} - -// node_modules/d3-hierarchy/src/treemap/dice.js -function dice_default(parent, x0, y0, x1, y1) { - var nodes = parent.children, node, i4 = -1, n3 = nodes.length, k4 = parent.value && (x1 - x0) / parent.value; - while (++i4 < n3) { - node = nodes[i4], node.y0 = y0, node.y1 = y1; - node.x0 = x0, node.x1 = x0 += node.value * k4; - } -} - -// node_modules/d3-hierarchy/src/partition.js -function partition_default() { - var dx = 1, dy = 1, padding3 = 0, round5 = false; - function partition3(root) { - var n3 = root.height + 1; - root.x0 = root.y0 = padding3; - root.x1 = dx; - root.y1 = dy / n3; - root.eachBefore(positionNode(dy, n3)); - if (round5) - root.eachBefore(round_default); - return root; - } - function positionNode(dy2, n3) { - return function(node) { - if (node.children) { - dice_default(node, node.x0, dy2 * (node.depth + 1) / n3, node.x1, dy2 * (node.depth + 2) / n3); - } - var x0 = node.x0, y0 = node.y0, x1 = node.x1 - padding3, y1 = node.y1 - padding3; - if (x1 < x0) - x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) - y0 = y1 = (y0 + y1) / 2; - node.x0 = x0; - node.y0 = y0; - node.x1 = x1; - node.y1 = y1; - }; - } - partition3.round = function(x6) { - return arguments.length ? (round5 = !!x6, partition3) : round5; - }; - partition3.size = function(x6) { - return arguments.length ? (dx = +x6[0], dy = +x6[1], partition3) : [dx, dy]; - }; - partition3.padding = function(x6) { - return arguments.length ? (padding3 = +x6, partition3) : padding3; - }; - return partition3; -} - -// node_modules/d3-hierarchy/src/stratify.js -var preroot = { depth: -1 }; -var ambiguous = {}; -function defaultId(d3) { - return d3.id; -} -function defaultParentId(d3) { - return d3.parentId; -} -function stratify_default() { - var id = defaultId, parentId = defaultParentId; - function stratify(data3) { - var nodes = Array.from(data3), n3 = nodes.length, d3, i4, root, parent, node, nodeId, nodeKey, nodeByKey = new Map(); - for (i4 = 0; i4 < n3; ++i4) { - d3 = nodes[i4], node = nodes[i4] = new Node(d3); - if ((nodeId = id(d3, i4, data3)) != null && (nodeId += "")) { - nodeKey = node.id = nodeId; - nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); - } - if ((nodeId = parentId(d3, i4, data3)) != null && (nodeId += "")) { - node.parent = nodeId; - } - } - for (i4 = 0; i4 < n3; ++i4) { - node = nodes[i4]; - if (nodeId = node.parent) { - parent = nodeByKey.get(nodeId); - if (!parent) - throw new Error("missing: " + nodeId); - if (parent === ambiguous) - throw new Error("ambiguous: " + nodeId); - if (parent.children) - parent.children.push(node); - else - parent.children = [node]; - node.parent = parent; - } else { - if (root) - throw new Error("multiple roots"); - root = node; - } - } - if (!root) - throw new Error("no root"); - root.parent = preroot; - root.eachBefore(function(node2) { - node2.depth = node2.parent.depth + 1; - --n3; - }).eachBefore(computeHeight); - root.parent = null; - if (n3 > 0) - throw new Error("cycle"); - return root; - } - stratify.id = function(x6) { - return arguments.length ? (id = required(x6), stratify) : id; - }; - stratify.parentId = function(x6) { - return arguments.length ? (parentId = required(x6), stratify) : parentId; - }; - return stratify; -} - -// node_modules/d3-hierarchy/src/tree.js -function defaultSeparation2(a4, b10) { - return a4.parent === b10.parent ? 1 : 2; -} -function nextLeft(v3) { - var children = v3.children; - return children ? children[0] : v3.t; -} -function nextRight(v3) { - var children = v3.children; - return children ? children[children.length - 1] : v3.t; -} -function moveSubtree(wm, wp, shift) { - var change = shift / (wp.i - wm.i); - wp.c -= change; - wp.s += shift; - wm.c += change; - wp.z += shift; - wp.m += shift; -} -function executeShifts(v3) { - var shift = 0, change = 0, children = v3.children, i4 = children.length, w4; - while (--i4 >= 0) { - w4 = children[i4]; - w4.z += shift; - w4.m += shift; - shift += w4.s + (change += w4.c); - } -} -function nextAncestor(vim, v3, ancestor) { - return vim.a.parent === v3.parent ? vim.a : ancestor; -} -function TreeNode(node, i4) { - this._ = node; - this.parent = null; - this.children = null; - this.A = null; - this.a = this; - this.z = 0; - this.m = 0; - this.c = 0; - this.s = 0; - this.t = null; - this.i = i4; -} -TreeNode.prototype = Object.create(Node.prototype); -function treeRoot(root) { - var tree = new TreeNode(root, 0), node, nodes = [tree], child, children, i4, n3; - while (node = nodes.pop()) { - if (children = node._.children) { - node.children = new Array(n3 = children.length); - for (i4 = n3 - 1; i4 >= 0; --i4) { - nodes.push(child = node.children[i4] = new TreeNode(children[i4], i4)); - child.parent = node; - } - } - } - (tree.parent = new TreeNode(null, 0)).children = [tree]; - return tree; -} -function tree_default2() { - var separation = defaultSeparation2, dx = 1, dy = 1, nodeSize = null; - function tree(root) { - var t4 = treeRoot(root); - t4.eachAfter(firstWalk), t4.parent.m = -t4.z; - t4.eachBefore(secondWalk); - if (nodeSize) - root.eachBefore(sizeNode); - else { - var left2 = root, right2 = root, bottom = root; - root.eachBefore(function(node) { - if (node.x < left2.x) - left2 = node; - if (node.x > right2.x) - right2 = node; - if (node.depth > bottom.depth) - bottom = node; - }); - var s4 = left2 === right2 ? 1 : separation(left2, right2) / 2, tx = s4 - left2.x, kx = dx / (right2.x + s4 + tx), ky = dy / (bottom.depth || 1); - root.eachBefore(function(node) { - node.x = (node.x + tx) * kx; - node.y = node.depth * ky; - }); - } - return root; - } - function firstWalk(v3) { - var children = v3.children, siblings = v3.parent.children, w4 = v3.i ? siblings[v3.i - 1] : null; - if (children) { - executeShifts(v3); - var midpoint = (children[0].z + children[children.length - 1].z) / 2; - if (w4) { - v3.z = w4.z + separation(v3._, w4._); - v3.m = v3.z - midpoint; - } else { - v3.z = midpoint; - } - } else if (w4) { - v3.z = w4.z + separation(v3._, w4._); - } - v3.parent.A = apportion(v3, w4, v3.parent.A || siblings[0]); - } - function secondWalk(v3) { - v3._.x = v3.z + v3.parent.m; - v3.m += v3.parent.m; - } - function apportion(v3, w4, ancestor) { - if (w4) { - var vip = v3, vop = v3, vim = w4, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; - while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { - vom = nextLeft(vom); - vop = nextRight(vop); - vop.a = v3; - shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); - if (shift > 0) { - moveSubtree(nextAncestor(vim, v3, ancestor), v3, shift); - sip += shift; - sop += shift; - } - sim += vim.m; - sip += vip.m; - som += vom.m; - sop += vop.m; - } - if (vim && !nextRight(vop)) { - vop.t = vim; - vop.m += sim - sop; - } - if (vip && !nextLeft(vom)) { - vom.t = vip; - vom.m += sip - som; - ancestor = v3; - } - } - return ancestor; - } - function sizeNode(node) { - node.x *= dx; - node.y = node.depth * dy; - } - tree.separation = function(x6) { - return arguments.length ? (separation = x6, tree) : separation; - }; - tree.size = function(x6) { - return arguments.length ? (nodeSize = false, dx = +x6[0], dy = +x6[1], tree) : nodeSize ? null : [dx, dy]; - }; - tree.nodeSize = function(x6) { - return arguments.length ? (nodeSize = true, dx = +x6[0], dy = +x6[1], tree) : nodeSize ? [dx, dy] : null; - }; - return tree; -} - -// node_modules/d3-hierarchy/src/treemap/slice.js -function slice_default(parent, x0, y0, x1, y1) { - var nodes = parent.children, node, i4 = -1, n3 = nodes.length, k4 = parent.value && (y1 - y0) / parent.value; - while (++i4 < n3) { - node = nodes[i4], node.x0 = x0, node.x1 = x1; - node.y0 = y0, node.y1 = y0 += node.value * k4; - } -} - -// node_modules/d3-hierarchy/src/treemap/squarify.js -var phi = (1 + Math.sqrt(5)) / 2; -function squarifyRatio(ratio, parent, x0, y0, x1, y1) { - var rows = [], nodes = parent.children, row, nodeValue, i0 = 0, i1 = 0, n3 = nodes.length, dx, dy, value2 = parent.value, sumValue, minValue, maxValue, newRatio, minRatio, alpha, beta; - while (i0 < n3) { - dx = x1 - x0, dy = y1 - y0; - do - sumValue = nodes[i1++].value; - while (!sumValue && i1 < n3); - minValue = maxValue = sumValue; - alpha = Math.max(dy / dx, dx / dy) / (value2 * ratio); - beta = sumValue * sumValue * alpha; - minRatio = Math.max(maxValue / beta, beta / minValue); - for (; i1 < n3; ++i1) { - sumValue += nodeValue = nodes[i1].value; - if (nodeValue < minValue) - minValue = nodeValue; - if (nodeValue > maxValue) - maxValue = nodeValue; - beta = sumValue * sumValue * alpha; - newRatio = Math.max(maxValue / beta, beta / minValue); - if (newRatio > minRatio) { - sumValue -= nodeValue; - break; - } - minRatio = newRatio; - } - rows.push(row = { value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1) }); - if (row.dice) - dice_default(row, x0, y0, x1, value2 ? y0 += dy * sumValue / value2 : y1); - else - slice_default(row, x0, y0, value2 ? x0 += dx * sumValue / value2 : x1, y1); - value2 -= sumValue, i0 = i1; - } - return rows; -} -var squarify_default = function custom10(ratio) { - function squarify(parent, x0, y0, x1, y1) { - squarifyRatio(ratio, parent, x0, y0, x1, y1); - } - squarify.ratio = function(x6) { - return custom10((x6 = +x6) > 1 ? x6 : 1); - }; - return squarify; -}(phi); - -// node_modules/d3-hierarchy/src/treemap/index.js -function treemap_default() { - var tile = squarify_default, round5 = false, dx = 1, dy = 1, paddingStack = [0], paddingInner = constantZero, paddingTop = constantZero, paddingRight = constantZero, paddingBottom = constantZero, paddingLeft = constantZero; - function treemap2(root) { - root.x0 = root.y0 = 0; - root.x1 = dx; - root.y1 = dy; - root.eachBefore(positionNode); - paddingStack = [0]; - if (round5) - root.eachBefore(round_default); - return root; - } - function positionNode(node) { - var p4 = paddingStack[node.depth], x0 = node.x0 + p4, y0 = node.y0 + p4, x1 = node.x1 - p4, y1 = node.y1 - p4; - if (x1 < x0) - x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) - y0 = y1 = (y0 + y1) / 2; - node.x0 = x0; - node.y0 = y0; - node.x1 = x1; - node.y1 = y1; - if (node.children) { - p4 = paddingStack[node.depth + 1] = paddingInner(node) / 2; - x0 += paddingLeft(node) - p4; - y0 += paddingTop(node) - p4; - x1 -= paddingRight(node) - p4; - y1 -= paddingBottom(node) - p4; - if (x1 < x0) - x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) - y0 = y1 = (y0 + y1) / 2; - tile(node, x0, y0, x1, y1); - } - } - treemap2.round = function(x6) { - return arguments.length ? (round5 = !!x6, treemap2) : round5; - }; - treemap2.size = function(x6) { - return arguments.length ? (dx = +x6[0], dy = +x6[1], treemap2) : [dx, dy]; - }; - treemap2.tile = function(x6) { - return arguments.length ? (tile = required(x6), treemap2) : tile; - }; - treemap2.padding = function(x6) { - return arguments.length ? treemap2.paddingInner(x6).paddingOuter(x6) : treemap2.paddingInner(); - }; - treemap2.paddingInner = function(x6) { - return arguments.length ? (paddingInner = typeof x6 === "function" ? x6 : constant_default2(+x6), treemap2) : paddingInner; - }; - treemap2.paddingOuter = function(x6) { - return arguments.length ? treemap2.paddingTop(x6).paddingRight(x6).paddingBottom(x6).paddingLeft(x6) : treemap2.paddingTop(); - }; - treemap2.paddingTop = function(x6) { - return arguments.length ? (paddingTop = typeof x6 === "function" ? x6 : constant_default2(+x6), treemap2) : paddingTop; - }; - treemap2.paddingRight = function(x6) { - return arguments.length ? (paddingRight = typeof x6 === "function" ? x6 : constant_default2(+x6), treemap2) : paddingRight; - }; - treemap2.paddingBottom = function(x6) { - return arguments.length ? (paddingBottom = typeof x6 === "function" ? x6 : constant_default2(+x6), treemap2) : paddingBottom; - }; - treemap2.paddingLeft = function(x6) { - return arguments.length ? (paddingLeft = typeof x6 === "function" ? x6 : constant_default2(+x6), treemap2) : paddingLeft; - }; - return treemap2; -} - -// node_modules/d3-hierarchy/src/treemap/binary.js -function binary_default(parent, x0, y0, x1, y1) { - var nodes = parent.children, i4, n3 = nodes.length, sum, sums = new Array(n3 + 1); - for (sums[0] = sum = i4 = 0; i4 < n3; ++i4) { - sums[i4 + 1] = sum += nodes[i4].value; - } - partition3(0, n3, parent.value, x0, y0, x1, y1); - function partition3(i5, j4, value2, x02, y02, x12, y12) { - if (i5 >= j4 - 1) { - var node = nodes[i5]; - node.x0 = x02, node.y0 = y02; - node.x1 = x12, node.y1 = y12; - return; - } - var valueOffset = sums[i5], valueTarget = value2 / 2 + valueOffset, k4 = i5 + 1, hi = j4 - 1; - while (k4 < hi) { - var mid2 = k4 + hi >>> 1; - if (sums[mid2] < valueTarget) - k4 = mid2 + 1; - else - hi = mid2; - } - if (valueTarget - sums[k4 - 1] < sums[k4] - valueTarget && i5 + 1 < k4) - --k4; - var valueLeft = sums[k4] - valueOffset, valueRight = value2 - valueLeft; - if (x12 - x02 > y12 - y02) { - var xk = value2 ? (x02 * valueRight + x12 * valueLeft) / value2 : x12; - partition3(i5, k4, valueLeft, x02, y02, xk, y12); - partition3(k4, j4, valueRight, xk, y02, x12, y12); - } else { - var yk = value2 ? (y02 * valueRight + y12 * valueLeft) / value2 : y12; - partition3(i5, k4, valueLeft, x02, y02, x12, yk); - partition3(k4, j4, valueRight, x02, yk, x12, y12); - } - } -} - -// node_modules/d3-hierarchy/src/treemap/sliceDice.js -function sliceDice_default(parent, x0, y0, x1, y1) { - (parent.depth & 1 ? slice_default : dice_default)(parent, x0, y0, x1, y1); -} - -// node_modules/d3-hierarchy/src/treemap/resquarify.js -var resquarify_default = function custom11(ratio) { - function resquarify(parent, x0, y0, x1, y1) { - if ((rows = parent._squarify) && rows.ratio === ratio) { - var rows, row, nodes, i4, j4 = -1, n3, m4 = rows.length, value2 = parent.value; - while (++j4 < m4) { - row = rows[j4], nodes = row.children; - for (i4 = row.value = 0, n3 = nodes.length; i4 < n3; ++i4) - row.value += nodes[i4].value; - if (row.dice) - dice_default(row, x0, y0, x1, value2 ? y0 += (y1 - y0) * row.value / value2 : y1); - else - slice_default(row, x0, y0, value2 ? x0 += (x1 - x0) * row.value / value2 : x1, y1); - value2 -= row.value; - } - } else { - parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); - rows.ratio = ratio; - } - } - resquarify.ratio = function(x6) { - return custom11((x6 = +x6) > 1 ? x6 : 1); - }; - return resquarify; -}(phi); - -// node_modules/@antv/g2plot/esm/utils/hierarchy/partition.js -var DEFAULT_OPTIONS25 = { - field: "value", - size: [1, 1], - round: false, - padding: 0, - sort: function(a4, b10) { - return b10.value - a4.value; - }, - as: ["x", "y"], - ignoreParentValue: true -}; -function partition(data3, options) { - options = mix({}, DEFAULT_OPTIONS25, options); - var as = options.as; - if (!is_array_default(as) || as.length !== 2) { - throw new TypeError('Invalid as: it must be an array with 2 strings (e.g. [ "x", "y" ])!'); - } - var field6; - try { - field6 = getField(options); - } catch (e4) { - console.warn(e4); - } - var partition3 = function(data4) { - return partition_default().size(options.size).round(options.round).padding(options.padding)(hierarchy(data4).sum(function(d3) { - return size(d3.children) ? options.ignoreParentValue ? 0 : d3[field6] - reduce_default(d3.children, function(a4, b10) { - return a4 + b10[field6]; - }, 0) : d3[field6]; - }).sort(options.sort)); - }; - var root = partition3(data3); - var x6 = as[0]; - var y5 = as[1]; - root.each(function(node) { - var _a6, _b; - node[x6] = [node.x0, node.x1, node.x1, node.x0]; - node[y5] = [node.y1, node.y1, node.y0, node.y0]; - node.name = node.name || ((_a6 = node.data) === null || _a6 === void 0 ? void 0 : _a6.name) || ((_b = node.data) === null || _b === void 0 ? void 0 : _b.label); - node.data.name = node.name; - ["x0", "x1", "y0", "y1"].forEach(function(prop) { - if (as.indexOf(prop) === -1) { - delete node[prop]; - } - }); - }); - return getAllNodes(root); -} - -// node_modules/@antv/g2plot/esm/utils/hierarchy/treemap.js -var DEFAULT_OPTIONS26 = { - field: "value", - tile: "treemapSquarify", - size: [1, 1], - round: false, - ignoreParentValue: true, - padding: 0, - paddingInner: 0, - paddingOuter: 0, - paddingTop: 0, - paddingRight: 0, - paddingBottom: 0, - paddingLeft: 0, - as: ["x", "y"], - sort: function(a4, b10) { - return b10.value - a4.value; - }, - ratio: 0.5 * (1 + Math.sqrt(5)) -}; -function getTileMethod(tile, ratio) { - return tile === "treemapSquarify" ? src_exports2[tile].ratio(ratio) : src_exports2[tile]; -} -function treemap(data3, options) { - options = mix({}, DEFAULT_OPTIONS26, options); - var as = options.as; - if (!is_array_default(as) || as.length !== 2) { - throw new TypeError('Invalid as: it must be an array with 2 strings (e.g. [ "x", "y" ])!'); - } - var field6; - try { - field6 = getField(options); - } catch (e4) { - console.warn(e4); - } - var tileMethod = getTileMethod(options.tile, options.ratio); - var partition3 = function(data4) { - return treemap_default().tile(tileMethod).size(options.size).round(options.round).padding(options.padding).paddingInner(options.paddingInner).paddingOuter(options.paddingOuter).paddingTop(options.paddingTop).paddingRight(options.paddingRight).paddingBottom(options.paddingBottom).paddingLeft(options.paddingLeft)(hierarchy(data4).sum(function(d3) { - return options.ignoreParentValue && d3.children ? 0 : d3[field6]; - }).sort(options.sort)); - }; - var root = partition3(data3); - var x6 = as[0]; - var y5 = as[1]; - root.each(function(node) { - node[x6] = [node.x0, node.x1, node.x1, node.x0]; - node[y5] = [node.y1, node.y1, node.y0, node.y0]; - ["x0", "x1", "y0", "y1"].forEach(function(prop) { - if (as.indexOf(prop) === -1) { - delete node[prop]; - } - }); - }); - return getAllNodes(root); -} - -// node_modules/@antv/g2plot/esm/plots/sunburst/utils.js -function transformData4(options) { - var data3 = options.data, colorField = options.colorField, rawFields = options.rawFields, _a6 = options.hierarchyConfig, hierarchyConfig = _a6 === void 0 ? {} : _a6; - var activeDepth = hierarchyConfig.activeDepth; - var transform18 = { - partition, - treemap - }; - var seriesField = options.seriesField; - var type2 = options.type || "partition"; - var nodes = transform18[type2](data3, __assign(__assign({ field: seriesField || "value" }, omit_default(hierarchyConfig, ["activeDepth"])), { - type: "hierarchy." + type2, - as: ["x", "y"] - })); - var result = []; - nodes.forEach(function(node) { - var _a7; - var _b, _c, _d, _e, _f; - if (node.depth === 0) { - return null; - } - if (activeDepth > 0 && node.depth > activeDepth) { - return null; - } - var path = node.data.name; - var ancestorNode = __assign({}, node); - while (ancestorNode.depth > 1) { - path = ((_b = ancestorNode.parent.data) === null || _b === void 0 ? void 0 : _b.name) + " / " + path; - ancestorNode = ancestorNode.parent; - } - var nodeInfo = __assign(__assign(__assign({}, pick(node.data, __spreadArrays(rawFields || [], [hierarchyConfig.field]))), (_a7 = {}, _a7[SUNBURST_PATH_FIELD] = path, _a7[SUNBURST_ANCESTOR_FIELD] = ancestorNode.data.name, _a7)), node); - if (seriesField) { - nodeInfo[seriesField] = node.data[seriesField] || ((_d = (_c = node.parent) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d[seriesField]); - } - if (colorField) { - nodeInfo[colorField] = node.data[colorField] || ((_f = (_e = node.parent) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f[colorField]); - } - nodeInfo.ext = hierarchyConfig; - nodeInfo[HIERARCHY_DATA_TRANSFORM_PARAMS] = { hierarchyConfig, colorField, rawFields }; - result.push(nodeInfo); - }); - return result; -} - -// node_modules/@antv/g2plot/esm/plots/sunburst/adaptor.js -function geometry27(params) { - var chart = params.chart, options = params.options; - var color4 = options.color, _a6 = options.colorField, colorField = _a6 === void 0 ? SUNBURST_ANCESTOR_FIELD : _a6, sunburstStyle = options.sunburstStyle, _b = options.rawFields, rawFields = _b === void 0 ? [] : _b; - var data3 = transformData4(options); - chart.data(data3); - var style; - if (sunburstStyle) { - style = function(datum) { - return deepAssign({}, { - fillOpacity: Math.pow(0.85, datum.depth) - }, is_function_default(sunburstStyle) ? sunburstStyle(datum) : sunburstStyle); - }; - } - polygon(deepAssign({}, params, { - options: { - xField: "x", - yField: "y", - seriesField: colorField, - rawFields: uniq(__spreadArrays(RAW_FIELDS, rawFields)), - polygon: { - color: color4, - style - } - } - })); - return params; -} -function axis15(params) { - var chart = params.chart; - chart.axis(false); - return params; -} -function label13(params) { - var chart = params.chart, options = params.options; - var label17 = options.label; - var geometry35 = findGeometry(chart, "polygon"); - if (!label17) { - geometry35.label(false); - } else { - var _a6 = label17.fields, fields = _a6 === void 0 ? ["name"] : _a6, callback = label17.callback, cfg = __rest(label17, ["fields", "callback"]); - geometry35.label({ - fields, - callback, - cfg: transformLabel(cfg) - }); - } - return params; -} -function coordinate8(params) { - var chart = params.chart, options = params.options; - var innerRadius = options.innerRadius, radius = options.radius, reflect = options.reflect; - var coord2 = chart.coordinate({ - type: "polar", - cfg: { - innerRadius, - radius - } - }); - if (reflect) { - coord2.reflect(reflect); - } - return params; -} -function meta17(params) { - var _a6; - var options = params.options; - var hierarchyConfig = options.hierarchyConfig, meta23 = options.meta; - return flow(scale7({}, (_a6 = {}, _a6[SUNBURST_Y_FIELD] = get_default(meta23, get_default(hierarchyConfig, ["field"], "value")), _a6)))(params); -} -function tooltip6(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip; - if (tooltip10 === false) { - chart.tooltip(false); - } else { - var tooltipOptions = tooltip10; - if (!get_default(tooltip10, "fields")) { - tooltipOptions = deepAssign({}, { - customItems: function(items) { - return items.map(function(item) { - var scales = get_default(chart.getOptions(), "scales"); - var pathFormatter = get_default(scales, [SUNBURST_PATH_FIELD, "formatter"], function(v3) { - return v3; - }); - var valueFormatter = get_default(scales, [SUNBURST_Y_FIELD, "formatter"], function(v3) { - return v3; - }); - return __assign(__assign({}, item), { name: pathFormatter(item.data[SUNBURST_PATH_FIELD]), value: valueFormatter(item.data.value) }); - }); - } - }, tooltipOptions); - } - chart.tooltip(tooltipOptions); - } - return params; -} -function adaptorInteraction(options) { - var drilldown = options.drilldown, _a6 = options.interactions, interactions = _a6 === void 0 ? [] : _a6; - if (drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled) { - return deepAssign({}, options, { - interactions: __spreadArrays(interactions, [ - { - type: "drill-down", - cfg: { drillDownConfig: drilldown, transformData: transformData4 } - } - ]) - }); - } - return options; -} -function interaction4(params) { - var chart = params.chart, options = params.options; - var drilldown = options.drilldown; - interaction({ - chart, - options: adaptorInteraction(options) - }); - if (drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled) { - chart.appendPadding = getAdjustAppendPadding(chart.appendPadding, get_default(drilldown, ["breadCrumb", "position"])); - } - return params; -} -function adaptor25(params) { - return flow(theme, pattern("sunburstStyle"), geometry27, axis15, meta17, legend, coordinate8, tooltip6, label13, interaction4, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/interactions/drill-down.js -function isParentNode(context) { - var data3 = get_default(context, ["event", "data", "data"], {}); - return is_array_default(data3.children) && data3.children.length > 0; -} -function inCenter(context) { - var coordinate11 = context.view.getCoordinate(); - var innerRadius = coordinate11.innerRadius; - if (innerRadius) { - var _a6 = context.event, x6 = _a6.x, y5 = _a6.y; - var _b = coordinate11.center, centerX = _b.x, centerY = _b.y; - var r4 = coordinate11.getRadius() * innerRadius; - var distance15 = Math.sqrt(Math.pow(centerX - x6, 2) + Math.pow(centerY - y5, 2)); - return distance15 < r4; - } - return false; -} -registerAction("drill-down-action", DrillDownAction); -registerInteraction("drill-down", { - showEnable: [ - { trigger: "element:mouseenter", action: "cursor:pointer", isEnable: isParentNode }, - { trigger: "element:mouseleave", action: "cursor:default" }, - { trigger: "element:mouseleave", action: "cursor:pointer", isEnable: inCenter } - ], - start: [ - { - trigger: "element:click", - isEnable: isParentNode, - action: ["drill-down-action:click"] - }, - { - trigger: "afterchangesize", - action: ["drill-down-action:resetPosition"] - }, - { - trigger: "click", - isEnable: inCenter, - action: ["drill-down-action:back"] - } - ] -}); - -// node_modules/@antv/g2plot/esm/plots/sunburst/index.js -var Sunburst = function(_super) { - __extends(Sunburst2, _super); - function Sunburst2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "sunburst"; - return _this; - } - Sunburst2.getDefaultOptions = function() { - return DEFAULT_OPTIONS24; - }; - Sunburst2.prototype.getDefaultOptions = function() { - return Sunburst2.getDefaultOptions(); - }; - Sunburst2.prototype.getSchemaAdaptor = function() { - return adaptor25; - }; - Sunburst2.SUNBURST_ANCESTOR_FIELD = SUNBURST_ANCESTOR_FIELD; - Sunburst2.SUNBURST_PATH_FIELD = SUNBURST_PATH_FIELD; - Sunburst2.NODE_ANCESTORS_FIELD = NODE_ANCESTORS_FIELD; - return Sunburst2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/gauge/constants.js -var _a5; -var RANGE_VALUE = "range"; -var RANGE_TYPE = "type"; -var PERCENT = "percent"; -var DEFAULT_COLOR2 = "#f0f0f0"; -var INDICATEOR_VIEW_ID = "indicator-view"; -var RANGE_VIEW_ID = "range-view"; -var DEFAULT_OPTIONS27 = { - percent: 0, - range: { - ticks: [] - }, - innerRadius: 0.9, - radius: 0.95, - startAngle: -7 / 6 * Math.PI, - endAngle: 1 / 6 * Math.PI, - syncViewPadding: true, - axis: { - line: null, - label: { - offset: -24, - style: { - textAlign: "center", - textBaseline: "middle" - } - }, - subTickLine: { - length: -8 - }, - tickLine: { - length: -12 - }, - grid: null - }, - indicator: { - pointer: { - style: { - lineWidth: 5, - lineCap: "round" - } - }, - pin: { - style: { - r: 9.75, - lineWidth: 4.5, - fill: "#fff" - } - } - }, - statistic: { - title: false - }, - meta: (_a5 = {}, _a5[RANGE_VALUE] = { - sync: "v" - }, _a5[PERCENT] = { - sync: "v", - tickCount: 5, - tickInterval: 0.2 - }, _a5), - animation: false -}; - -// node_modules/@antv/g2plot/esm/plots/gauge/utils.js -function processRangeData(range, percent2) { - return range.map(function(r4, idx) { - var _a6; - return _a6 = {}, _a6[RANGE_VALUE] = r4 - (range[idx - 1] || 0), _a6[RANGE_TYPE] = "" + idx, _a6[PERCENT] = percent2, _a6; - }).filter(function(d3) { - return !!d3[RANGE_VALUE]; - }); -} -function getIndicatorData(percent2) { - var _a6; - return [(_a6 = {}, _a6[PERCENT] = clamp_default(percent2, 0, 1), _a6)]; -} -function getRangeData(percent2, range) { - var ticks = get_default(range, ["ticks"], []); - var clampTicks = size(ticks) ? ticks : [0, clamp_default(percent2, 0, 1), 1]; - return processRangeData(clampTicks, percent2); -} - -// node_modules/@antv/g2plot/esm/plots/gauge/adaptor.js -function geometry28(params) { - var chart = params.chart, options = params.options; - var percent2 = options.percent, range = options.range, radius = options.radius, innerRadius = options.innerRadius, startAngle = options.startAngle, endAngle = options.endAngle, axis22 = options.axis, indicator = options.indicator, gaugeStyle = options.gaugeStyle, type2 = options.type, meter = options.meter; - var color4 = range.color, rangeWidth = range.width; - if (indicator) { - var indicatorData = getIndicatorData(percent2); - var v1 = chart.createView({ id: INDICATEOR_VIEW_ID }); - v1.data(indicatorData); - v1.point().position(PERCENT + "*1").shape(indicator.shape || "gauge-indicator").customInfo({ - defaultColor: chart.getTheme().defaultColor, - indicator - }); - v1.coordinate("polar", { - startAngle, - endAngle, - radius: innerRadius * radius - }); - v1.axis(PERCENT, axis22); - v1.scale(PERCENT, pick(axis22, AXIS_META_CONFIG_KEYS)); - } - var rangeData = getRangeData(percent2, options.range); - var v22 = chart.createView({ id: RANGE_VIEW_ID }); - v22.data(rangeData); - var rangeColor = is_string_default(color4) ? [color4, DEFAULT_COLOR2] : color4; - var ext = interval2({ - chart: v22, - options: { - xField: "1", - yField: RANGE_VALUE, - seriesField: RANGE_TYPE, - rawFields: [PERCENT], - isStack: true, - interval: { - color: rangeColor, - style: gaugeStyle, - shape: type2 === "meter" ? "meter-gauge" : null - }, - args: { - zIndexReversed: true, - sortZIndex: true - }, - minColumnWidth: rangeWidth, - maxColumnWidth: rangeWidth - } - }).ext; - var geometry35 = ext.geometry; - geometry35.customInfo({ meter }); - v22.coordinate("polar", { - innerRadius, - radius, - startAngle, - endAngle - }).transpose(); - return params; -} -function meta18(params) { - var _a6; - return flow(scale7((_a6 = { - range: { - min: 0, - max: 1, - maxLimit: 1, - minLimit: 0 - } - }, _a6[PERCENT] = {}, _a6)))(params); -} -function statistic3(params, updated) { - var chart = params.chart, options = params.options; - var statistic4 = options.statistic, percent2 = options.percent; - chart.getController("annotation").clear(true); - if (statistic4) { - var contentOption = statistic4.content; - var transformContent = void 0; - if (contentOption) { - transformContent = deepAssign({}, { - content: (percent2 * 100).toFixed(2) + "%", - style: { - opacity: 0.75, - fontSize: "30px", - lineHeight: 1, - textAlign: "center", - color: "rgba(44,53,66,0.85)" - } - }, contentOption); - } - renderGaugeStatistic(chart, { statistic: __assign(__assign({}, statistic4), { content: transformContent }) }, { percent: percent2 }); - } - if (updated) { - chart.render(true); - } - return params; -} -function other(params) { - var chart = params.chart; - chart.legend(false); - chart.tooltip(false); - return params; -} -function adaptor26(params) { - return flow(theme, animation, geometry28, meta18, statistic3, interaction, annotation(), other)(params); -} - -// node_modules/@antv/g2plot/esm/plots/gauge/shapes/indicator.js -registerShape("point", "gauge-indicator", { - draw: function(cfg, container2) { - var _a6 = cfg.customInfo, indicator = _a6.indicator, defaultColor = _a6.defaultColor; - var _b = indicator, pointer = _b.pointer, pin2 = _b.pin; - var group2 = container2.addGroup(); - var center2 = this.parsePoint({ x: 0, y: 0 }); - if (pointer) { - group2.addShape("line", { - name: "pointer", - attrs: __assign({ x1: center2.x, y1: center2.y, x2: cfg.x, y2: cfg.y, stroke: defaultColor }, pointer.style) - }); - } - if (pin2) { - group2.addShape("circle", { - name: "pin", - attrs: __assign({ x: center2.x, y: center2.y, stroke: defaultColor }, pin2.style) - }); - } - return group2; - } -}); - -// node_modules/@antv/g2plot/esm/plots/gauge/shapes/meter-gauge.js -registerShape("interval", "meter-gauge", { - draw: function(cfg, container2) { - var _a6 = cfg.customInfo.meter, meter = _a6 === void 0 ? {} : _a6; - var _b = meter.steps, STEP = _b === void 0 ? 50 : _b, _c = meter.stepRatio, STEP_RATIO = _c === void 0 ? 0.5 : _c; - STEP = STEP < 1 ? 1 : STEP; - STEP_RATIO = clamp_default(STEP_RATIO, 0, 1); - var _d = this.coordinate, COORD_START_ANGLE = _d.startAngle, COORD_END_ANGLE = _d.endAngle; - var GAP2 = 0; - if (STEP_RATIO > 0 && STEP_RATIO < 1) { - var TOTAL = COORD_END_ANGLE - COORD_START_ANGLE; - GAP2 = TOTAL / STEP / (STEP_RATIO / (1 - STEP_RATIO) + 1 - 1 / STEP); - } - var INTERVAL = GAP2 / (1 - STEP_RATIO) * STEP_RATIO; - var group2 = container2.addGroup(); - var center2 = this.coordinate.getCenter(); - var radius = this.coordinate.getRadius(); - var _e = Util.getAngle(cfg, this.coordinate), START_ANGLE = _e.startAngle, END_ANGLE = _e.endAngle; - for (var startAngle = START_ANGLE; startAngle < END_ANGLE; ) { - var endAngle = void 0; - var r4 = (startAngle - COORD_START_ANGLE) % (INTERVAL + GAP2); - if (r4 < INTERVAL) { - endAngle = startAngle + (INTERVAL - r4); - } else { - startAngle += INTERVAL + GAP2 - r4; - endAngle = startAngle + INTERVAL; - } - var path = Util.getSectorPath(center2.x, center2.y, radius, startAngle, Math.min(endAngle, END_ANGLE), radius * this.coordinate.innerRadius); - group2.addShape("path", { - name: "meter-gauge", - attrs: { - path, - fill: cfg.color, - stroke: cfg.color, - lineWidth: 0.5 - } - }); - startAngle = endAngle + GAP2; - } - return group2; - } -}); - -// node_modules/@antv/g2plot/esm/plots/gauge/index.js -var Gauge = function(_super) { - __extends(Gauge2, _super); - function Gauge2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "gauge"; - return _this; - } - Gauge2.getDefaultOptions = function() { - return DEFAULT_OPTIONS27; - }; - Gauge2.prototype.changeData = function(percent2) { - this.chart.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null)); - this.updateOption({ percent: percent2 }); - var indicatorView = this.chart.views.find(function(v3) { - return v3.id === INDICATEOR_VIEW_ID; - }); - if (indicatorView) { - indicatorView.data(getIndicatorData(percent2)); - } - var rangeView = this.chart.views.find(function(v3) { - return v3.id === RANGE_VIEW_ID; - }); - if (rangeView) { - rangeView.data(getRangeData(percent2, this.options.range)); - } - statistic3({ chart: this.chart, options: this.options }, true); - this.chart.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null)); - }; - Gauge2.prototype.getDefaultOptions = function() { - return Gauge2.getDefaultOptions(); - }; - Gauge2.prototype.getSchemaAdaptor = function() { - return adaptor26; - }; - return Gauge2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/waterfall/constant.js -var Y_FIELD3 = "$$yField$$"; -var DIFF_FIELD = "$$diffField$$"; -var ABSOLUTE_FIELD = "$$absoluteField$$"; -var IS_TOTAL = "$$isTotal$$"; -var DEFAULT_OPTIONS28 = { - label: {}, - leaderLine: { - style: { - lineWidth: 1, - stroke: "#8c8c8c", - lineDash: [4, 2] - } - }, - total: { - style: { - fill: "rgba(0, 0, 0, 0.25)" - } - }, - interactions: [{ type: "element-active" }], - risingFill: "#f4664a", - fallingFill: "#30bf78", - waterfallStyle: { - fill: "rgba(0, 0, 0, 0.25)" - }, - yAxis: { - grid: { - line: { - style: { - lineDash: [4, 2] - } - } - } - } -}; - -// node_modules/@antv/g2plot/esm/plots/waterfall/utils.js -function processData(data3, xField, yField, newYField, total) { - var _a6; - var newData = []; - reduce_default(data3, function(r4, d3) { - var _a7; - log2(LEVEL.WARN, is_number_default(d3[yField]), d3[yField] + " is not a valid number"); - var value2 = is_undefined_default(d3[yField]) ? null : d3[yField]; - newData.push(__assign(__assign({}, d3), (_a7 = {}, _a7[newYField] = [r4, r4 + value2], _a7))); - return r4 + value2; - }, 0); - if (newData.length && total) { - var sum = get_default(newData, [[data3.length - 1], newYField, [1]]); - newData.push((_a6 = {}, _a6[xField] = total.label, _a6[yField] = sum, _a6[newYField] = [0, sum], _a6)); - } - return newData; -} -function transformData5(data3, xField, yField, total) { - var processed = processData(data3, xField, yField, Y_FIELD3, total); - return processed.map(function(d3, dIdx) { - var _a6; - if (!is_object_default(d3)) { - return d3; - } - return __assign(__assign({}, d3), (_a6 = {}, _a6[ABSOLUTE_FIELD] = d3[Y_FIELD3][1], _a6[DIFF_FIELD] = d3[Y_FIELD3][1] - d3[Y_FIELD3][0], _a6[IS_TOTAL] = dIdx === data3.length, _a6)); - }); -} - -// node_modules/@antv/g2plot/esm/plots/waterfall/shape.js -function getRectPath2(points) { - var path = []; - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - if (point2) { - var action = i4 === 0 ? "M" : "L"; - path.push([action, point2.x, point2.y]); - } - } - var first = points[0]; - path.push(["L", first.x, first.y]); - path.push(["z"]); - return path; -} -function getFillAttrs3(cfg) { - return deepAssign({}, cfg.defaultStyle, cfg.style, { fill: cfg.color }); -} -registerShape("interval", "waterfall", { - draw: function(cfg, container2) { - var customInfo = cfg.customInfo, points = cfg.points, nextPoints = cfg.nextPoints; - var group2 = container2.addGroup(); - var rectPath3 = this.parsePath(getRectPath2(points)); - var fillAttrs = getFillAttrs3(cfg); - group2.addShape("path", { - attrs: __assign(__assign({}, fillAttrs), { path: rectPath3 }) - }); - var leaderLineCfg = get_default(customInfo, "leaderLine"); - if (leaderLineCfg && nextPoints) { - var linkPath = [ - ["M", points[2].x, points[2].y], - ["L", nextPoints[0].x, nextPoints[0].y] - ]; - if (points[2].y === nextPoints[1].y) { - linkPath[1] = ["L", nextPoints[1].x, nextPoints[1].y]; - } - linkPath = this.parsePath(linkPath); - group2.addShape("path", { - attrs: __assign({ path: linkPath }, leaderLineCfg.style || {}) - }); - } - return group2; - } -}); - -// node_modules/@antv/g2plot/esm/plots/waterfall/adaptor.js -function defaultOptions4(params) { - var _a6 = params.options, locale = _a6.locale, total = _a6.total; - var localeTotalLabel = getLocale(locale).get(["waterfall", "total"]); - if (total && typeof total.label !== "string" && localeTotalLabel) { - params.options.total.label = localeTotalLabel; - } - return params; -} -function geometry29(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, xField = options.xField, yField = options.yField, total = options.total, leaderLine = options.leaderLine, columnWidthRatio = options.columnWidthRatio, waterfallStyle = options.waterfallStyle, risingFill = options.risingFill, fallingFill = options.fallingFill, color4 = options.color; - chart.data(transformData5(data3, xField, yField, total)); - var colorMapping = color4 || function(datum) { - if (get_default(datum, [IS_TOTAL])) { - return get_default(total, ["style", "fill"], ""); - } - return get_default(datum, [Y_FIELD3, 1]) - get_default(datum, [Y_FIELD3, 0]) > 0 ? risingFill : fallingFill; - }; - var p4 = deepAssign({}, params, { - options: { - xField, - yField: Y_FIELD3, - seriesField: xField, - rawFields: [yField, DIFF_FIELD, IS_TOTAL, Y_FIELD3], - widthRatio: columnWidthRatio, - interval: { - style: waterfallStyle, - shape: "waterfall", - color: colorMapping - } - } - }); - var ext = interval2(p4).ext; - var geometry35 = ext.geometry; - geometry35.customInfo({ leaderLine }); - return params; -} -function meta19(params) { - var _a6, _b; - var options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField, meta23 = options.meta; - var Y_FIELD_META = deepAssign({}, { alias: yField }, get_default(meta23, yField)); - return flow(scale7((_a6 = {}, _a6[xField] = xAxis, _a6[yField] = yAxis, _a6[Y_FIELD3] = yAxis, _a6), deepAssign({}, meta23, (_b = {}, _b[Y_FIELD3] = Y_FIELD_META, _b[DIFF_FIELD] = Y_FIELD_META, _b[ABSOLUTE_FIELD] = Y_FIELD_META, _b))))(params); -} -function axis16(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - if (xAxis === false) { - chart.axis(xField, false); - } else { - chart.axis(xField, xAxis); - } - if (yAxis === false) { - chart.axis(yField, false); - chart.axis(Y_FIELD3, false); - } else { - chart.axis(yField, yAxis); - chart.axis(Y_FIELD3, yAxis); - } - return params; -} -function legend16(params) { - var chart = params.chart, options = params.options; - var legend18 = options.legend, total = options.total, risingFill = options.risingFill, fallingFill = options.fallingFill, locale = options.locale; - var i18n = getLocale(locale); - if (legend18 === false) { - chart.legend(false); - } else { - var items = [ - { - name: i18n.get(["general", "increase"]), - value: "increase", - marker: { symbol: "square", style: { r: 5, fill: risingFill } } - }, - { - name: i18n.get(["general", "decrease"]), - value: "decrease", - marker: { symbol: "square", style: { r: 5, fill: fallingFill } } - } - ]; - if (total) { - items.push({ - name: total.label || "", - value: "total", - marker: { - symbol: "square", - style: deepAssign({}, { r: 5 }, get_default(total, "style")) - } - }); - } - chart.legend(deepAssign({}, { - custom: true, - position: "top", - items - }, legend18)); - chart.removeInteraction("legend-filter"); - } - return params; -} -function label14(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, labelMode = options.labelMode, xField = options.xField; - var geometry35 = findGeometry(chart, "interval"); - if (!label17) { - geometry35.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - geometry35.label({ - fields: labelMode === "absolute" ? [ABSOLUTE_FIELD, xField] : [DIFF_FIELD, xField], - callback, - cfg: transformLabel(cfg) - }); - } - return params; -} -function tooltip7(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip, xField = options.xField, yField = options.yField; - if (tooltip10 !== false) { - chart.tooltip(__assign({ - showCrosshairs: false, - showMarkers: false, - shared: true, - fields: [yField] - }, tooltip10)); - var geometry_1 = chart.geometries[0]; - (tooltip10 === null || tooltip10 === void 0 ? void 0 : tooltip10.formatter) ? geometry_1.tooltip(xField + "*" + yField, tooltip10.formatter) : geometry_1.tooltip(yField); - } else { - chart.tooltip(false); - } - return params; -} -function adaptor27(params) { - return flow(defaultOptions4, theme, geometry29, meta19, axis16, legend16, tooltip7, label14, state, interaction, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/waterfall/index.js -var Waterfall = function(_super) { - __extends(Waterfall2, _super); - function Waterfall2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "waterfall"; - return _this; - } - Waterfall2.getDefaultOptions = function() { - return DEFAULT_OPTIONS28; - }; - Waterfall2.prototype.changeData = function(data3) { - var _a6 = this.options, xField = _a6.xField, yField = _a6.yField, total = _a6.total; - this.updateOption({ data: data3 }); - this.chart.changeData(transformData5(data3, xField, yField, total)); - }; - Waterfall2.prototype.getSchemaAdaptor = function() { - return adaptor27; - }; - Waterfall2.prototype.getDefaultOptions = function() { - return Waterfall2.getDefaultOptions(); - }; - return Waterfall2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/radial-bar/utils.js -function getScaleMax(maxAngle, yField, data3) { - var yData = data3.map(function(item) { - return item[yField]; - }).filter(function(v3) { - return v3 !== void 0; - }); - var maxValue = yData.length > 0 ? Math.max.apply(Math, yData) : 0; - var formatRadian = Math.abs(maxAngle) % 360; - if (!formatRadian) { - return maxValue; - } - return maxValue * 360 / formatRadian; -} -function getStackedData(data3, xField, yField) { - var stackedData = []; - data3.forEach(function(item) { - var valueItem = stackedData.find(function(v3) { - return v3[xField] === item[xField]; - }); - if (valueItem) { - valueItem[yField] += item[yField] || null; - } else { - stackedData.push(__assign({}, item)); - } - }); - return stackedData; -} - -// node_modules/@antv/g2plot/esm/plots/radial-bar/adaptor.js -function geometry30(params) { - var chart = params.chart, options = params.options; - var style = options.barStyle, color4 = options.color, tooltip10 = options.tooltip, colorField = options.colorField, type2 = options.type, xField = options.xField, yField = options.yField, data3 = options.data; - var processData2 = processIllegalData(data3, yField); - chart.data(processData2); - var p4 = deepAssign({}, params, { - options: { - tooltip: tooltip10, - seriesField: colorField, - interval: { - style, - color: color4, - shape: type2 === "line" ? "line" : "intervel" - }, - minColumnWidth: options.minBarWidth, - maxColumnWidth: options.maxBarWidth, - columnBackground: options.barBackground - } - }); - interval2(p4); - if (type2 === "line") { - point({ - chart, - options: { xField, yField, seriesField: colorField, point: { shape: "circle", color: color4 } } - }); - } - return params; -} -function meta20(params) { - var _a6; - var options = params.options; - var yField = options.yField, xField = options.xField, data3 = options.data, isStack = options.isStack, isGroup = options.isGroup, colorField = options.colorField, maxAngle = options.maxAngle; - var actualData = isStack && !isGroup && colorField ? getStackedData(data3, xField, yField) : data3; - var processData2 = processIllegalData(actualData, yField); - return flow(scale7((_a6 = {}, _a6[yField] = { - min: 0, - max: getScaleMax(maxAngle, yField, processData2) - }, _a6)))(params); -} -function coordinate9(params) { - var chart = params.chart, options = params.options; - var radius = options.radius, innerRadius = options.innerRadius, startAngle = options.startAngle, endAngle = options.endAngle; - chart.coordinate({ - type: "polar", - cfg: { - radius, - innerRadius, - startAngle, - endAngle - } - }).transpose(); - return params; -} -function axis17(params) { - var chart = params.chart, options = params.options; - var xField = options.xField, xAxis = options.xAxis; - chart.axis(xField, xAxis); - return params; -} -function label15(params) { - var chart = params.chart, options = params.options; - var label17 = options.label, yField = options.yField; - var intervalGeometry = findGeometry(chart, "interval"); - if (!label17) { - intervalGeometry.label(false); - } else { - var callback = label17.callback, cfg = __rest(label17, ["callback"]); - intervalGeometry.label({ - fields: [yField], - callback, - cfg: __assign(__assign({}, transformLabel(cfg)), { type: "polar" }) - }); - } - return params; -} -function adaptor28(params) { - return flow(pattern("barStyle"), geometry30, meta20, axis17, coordinate9, interaction, animation, theme, tooltip, legend, annotation(), label15)(params); -} - -// node_modules/@antv/g2plot/esm/plots/radial-bar/constant.js -var DEFAULT_OPTIONS29 = deepAssign({}, Plot.getDefaultOptions(), { - interactions: [{ type: "element-active" }], - legend: false, - tooltip: { - showMarkers: false - }, - xAxis: { - grid: null, - tickLine: null, - line: null - }, - maxAngle: 240 -}); - -// node_modules/@antv/g2plot/esm/plots/radial-bar/index.js -var RadialBar = function(_super) { - __extends(RadialBar2, _super); - function RadialBar2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "radial-bar"; - return _this; - } - RadialBar2.getDefaultOptions = function() { - return DEFAULT_OPTIONS29; - }; - RadialBar2.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - meta20({ chart: this.chart, options: this.options }); - this.chart.changeData(data3); - }; - RadialBar2.prototype.getDefaultOptions = function() { - return RadialBar2.getDefaultOptions(); - }; - RadialBar2.prototype.getSchemaAdaptor = function() { - return adaptor28; - }; - return RadialBar2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/bidirectional-bar/constant.js -var FIRST_AXES_VIEW = "first-axes-view"; -var SECOND_AXES_VIEW = "second-axes-view"; -var SERIES_FIELD_KEY = "series-field-key"; - -// node_modules/@antv/g2plot/esm/plots/bidirectional-bar/utils.js -function transformData6(xField, yField, seriesField, data3, reverse) { - var hopeData = []; - yField.forEach(function(d3) { - data3.forEach(function(k4) { - var _a7; - var obj = (_a7 = {}, _a7[xField] = k4[xField], _a7[seriesField] = d3, _a7[d3] = k4[d3], _a7); - hopeData.push(obj); - }); - }); - var groupData = Object.values(group_by_default(hopeData, seriesField)); - var _a6 = groupData[0], data1 = _a6 === void 0 ? [] : _a6, _b = groupData[1], data22 = _b === void 0 ? [] : _b; - return reverse ? [data1.reverse(), data22.reverse()] : [data1, data22]; -} -function isHorizontal(layout6) { - return layout6 !== "vertical"; -} -function syncViewPadding(chart, views, p4) { - var v1 = views[0], v22 = views[1]; - var p1 = v1.autoPadding; - var p22 = v22.autoPadding; - var _a6 = chart.__axisPosition, layout6 = _a6.layout, position2 = _a6.position; - if (isHorizontal(layout6) && position2 === "top") { - v1.autoPadding = p4.instance(p1.top, 0, p1.bottom, p1.left); - v22.autoPadding = p4.instance(p22.top, p1.left, p22.bottom, 0); - } - if (isHorizontal(layout6) && position2 === "bottom") { - v1.autoPadding = p4.instance(p1.top, p1.right / 2 + 5, p1.bottom, p1.left); - v22.autoPadding = p4.instance(p22.top, p22.right, p22.bottom, p1.right / 2 + 5); - } - if (!isHorizontal(layout6) && position2 === "bottom") { - var left2 = p1.left >= p22.left ? p1.left : p22.left; - v1.autoPadding = p4.instance(p1.top, p1.right, p1.bottom / 2 + 5, left2); - v22.autoPadding = p4.instance(p1.bottom / 2 + 5, p22.right, p22.bottom, left2); - } - if (!isHorizontal(layout6) && position2 === "top") { - var left2 = p1.left >= p22.left ? p1.left : p22.left; - v1.autoPadding = p4.instance(p1.top, p1.right, 0, left2); - v22.autoPadding = p4.instance(0, p22.right, p1.top, left2); - } -} - -// node_modules/@antv/g2plot/esm/plots/bidirectional-bar/adaptor.js -function geometry31(params) { - var chart = params.chart, options = params.options; - var data3 = options.data, xField = options.xField, yField = options.yField, color4 = options.color, barStyle = options.barStyle, widthRatio = options.widthRatio, legend18 = options.legend, layout6 = options.layout; - var groupData = transformData6(xField, yField, SERIES_FIELD_KEY, data3, isHorizontal(layout6)); - if (legend18) { - chart.legend(SERIES_FIELD_KEY, legend18); - } else if (legend18 === false) { - chart.legend(false); - } - var firstView; - var secondView; - var firstViewData = groupData[0], secondViewData = groupData[1]; - if (isHorizontal(layout6)) { - firstView = chart.createView({ - region: { - start: { x: 0, y: 0 }, - end: { x: 0.5, y: 1 } - }, - id: FIRST_AXES_VIEW - }); - firstView.coordinate().transpose().reflect("x"); - secondView = chart.createView({ - region: { - start: { x: 0.5, y: 0 }, - end: { x: 1, y: 1 } - }, - id: SECOND_AXES_VIEW - }); - secondView.coordinate().transpose(); - firstView.data(firstViewData); - secondView.data(secondViewData); - } else { - firstView = chart.createView({ - region: { - start: { x: 0, y: 0 }, - end: { x: 1, y: 0.5 } - }, - id: FIRST_AXES_VIEW - }); - secondView = chart.createView({ - region: { - start: { x: 0, y: 0.5 }, - end: { x: 1, y: 1 } - }, - id: SECOND_AXES_VIEW - }); - secondView.coordinate().reflect("y"); - firstView.data(firstViewData); - secondView.data(secondViewData); - } - var left2 = deepAssign({}, params, { - chart: firstView, - options: { - widthRatio, - xField, - yField: yField[0], - seriesField: SERIES_FIELD_KEY, - interval: { - color: color4, - style: barStyle - } - } - }); - interval2(left2); - var right2 = deepAssign({}, params, { - chart: secondView, - options: { - xField, - yField: yField[1], - seriesField: SERIES_FIELD_KEY, - widthRatio, - interval: { - color: color4, - style: barStyle - } - } - }); - interval2(right2); - return params; -} -function meta21(params) { - var _a6, _b, _c; - var options = params.options, chart = params.chart; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField; - var firstView = findViewById(chart, FIRST_AXES_VIEW); - var secondView = findViewById(chart, SECOND_AXES_VIEW); - var aliasMap = {}; - keys_default((options === null || options === void 0 ? void 0 : options.meta) || {}).map(function(metaKey) { - if (get_default(options === null || options === void 0 ? void 0 : options.meta, [metaKey, "alias"])) { - aliasMap[metaKey] = options.meta[metaKey].alias; - } - }); - chart.scale((_a6 = {}, _a6[SERIES_FIELD_KEY] = { - sync: true, - formatter: function(v3) { - return get_default(aliasMap, v3, v3); - } - }, _a6)); - scale7((_b = {}, _b[xField] = xAxis, _b[yField[0]] = yAxis[yField[0]], _b))(deepAssign({}, params, { chart: firstView })); - scale7((_c = {}, _c[xField] = xAxis, _c[yField[1]] = yAxis[yField[1]], _c))(deepAssign({}, params, { chart: secondView })); - return params; -} -function axis18(params) { - var chart = params.chart, options = params.options; - var xAxis = options.xAxis, yAxis = options.yAxis, xField = options.xField, yField = options.yField, layout6 = options.layout; - var firstView = findViewById(chart, FIRST_AXES_VIEW); - var secondView = findViewById(chart, SECOND_AXES_VIEW); - if ((xAxis === null || xAxis === void 0 ? void 0 : xAxis.position) === "bottom") { - secondView.axis(xField, __assign(__assign({}, xAxis), { label: { formatter: function() { - return ""; - } } })); - } else { - secondView.axis(xField, false); - } - if (xAxis === false) { - firstView.axis(xField, false); - } else { - firstView.axis(xField, __assign({ - position: isHorizontal(layout6) ? "top" : "bottom" - }, xAxis)); - } - if (yAxis === false) { - firstView.axis(yField[0], false); - secondView.axis(yField[1], false); - } else { - firstView.axis(yField[0], yAxis[yField[0]]); - secondView.axis(yField[1], yAxis[yField[1]]); - } - chart.__axisPosition = { - position: firstView.getOptions().axes[xField].position, - layout: layout6 - }; - return params; -} -function interaction5(params) { - var chart = params.chart; - interaction(deepAssign({}, params, { chart: findViewById(chart, FIRST_AXES_VIEW) })); - interaction(deepAssign({}, params, { chart: findViewById(chart, SECOND_AXES_VIEW) })); - return params; -} -function limitInPlot4(params) { - var chart = params.chart, options = params.options; - var yField = options.yField, yAxis = options.yAxis; - limitInPlot2(deepAssign({}, params, { - chart: findViewById(chart, FIRST_AXES_VIEW), - options: { - yAxis: yAxis[yField[0]] - } - })); - limitInPlot2(deepAssign({}, params, { - chart: findViewById(chart, SECOND_AXES_VIEW), - options: { - yAxis: yAxis[yField[1]] - } - })); - return params; -} -function theme3(params) { - var chart = params.chart; - theme(deepAssign({}, params, { chart: findViewById(chart, FIRST_AXES_VIEW) })); - theme(deepAssign({}, params, { chart: findViewById(chart, SECOND_AXES_VIEW) })); - return params; -} -function animation4(params) { - var chart = params.chart; - animation(deepAssign({}, params, { chart: findViewById(chart, FIRST_AXES_VIEW) })); - animation(deepAssign({}, params, { chart: findViewById(chart, SECOND_AXES_VIEW) })); - return params; -} -function label16(params) { - var _this = this; - var _a6, _b; - var chart = params.chart, options = params.options; - var label17 = options.label, yField = options.yField, layout6 = options.layout; - var firstView = findViewById(chart, FIRST_AXES_VIEW); - var secondView = findViewById(chart, SECOND_AXES_VIEW); - var leftGeometry = findGeometry(firstView, "interval"); - var rightGeometry = findGeometry(secondView, "interval"); - if (!label17) { - leftGeometry.label(false); - rightGeometry.label(false); - } else { - var callback = label17.callback, cfg_1 = __rest(label17, ["callback"]); - if (!cfg_1.position) { - cfg_1.position = "middle"; - } - if (cfg_1.offset === void 0) { - cfg_1.offset = 2; - } - var leftLabelCfg = __assign({}, cfg_1); - if (isHorizontal(layout6)) { - var textAlign = ((_a6 = leftLabelCfg.style) === null || _a6 === void 0 ? void 0 : _a6.textAlign) || (cfg_1.position === "middle" ? "center" : "left"); - cfg_1.style = deepAssign({}, cfg_1.style, { textAlign }); - var textAlignMap = { left: "right", right: "left", center: "center" }; - leftLabelCfg.style = deepAssign({}, leftLabelCfg.style, { textAlign: textAlignMap[textAlign] }); - } else { - var positionMap_1 = { top: "bottom", bottom: "top", middle: "middle" }; - if (typeof cfg_1.position === "string") { - cfg_1.position = positionMap_1[cfg_1.position]; - } else if (typeof cfg_1.position === "function") { - cfg_1.position = function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return positionMap_1[cfg_1.position.apply(_this, args)]; - }; - } - var textBaseline = ((_b = leftLabelCfg.style) === null || _b === void 0 ? void 0 : _b.textBaseline) || "bottom"; - leftLabelCfg.style = deepAssign({}, leftLabelCfg.style, { textBaseline }); - var textBaselineMap = { top: "bottom", bottom: "top", middle: "middle" }; - cfg_1.style = deepAssign({}, cfg_1.style, { textBaseline: textBaselineMap[textBaseline] }); - } - leftGeometry.label({ - fields: [yField[0]], - callback, - cfg: transformLabel(leftLabelCfg) - }); - rightGeometry.label({ - fields: [yField[1]], - callback, - cfg: transformLabel(cfg_1) - }); - } - return params; -} -function adaptor29(params) { - return flow(geometry31, meta21, axis18, limitInPlot4, theme3, label16, tooltip, interaction5, animation4)(params); -} - -// node_modules/@antv/g2plot/esm/plots/bidirectional-bar/index.js -var BidirectionalBar = function(_super) { - __extends(BidirectionalBar2, _super); - function BidirectionalBar2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "bidirectional-bar"; - return _this; - } - BidirectionalBar2.getDefaultOptions = function() { - return deepAssign({}, _super.getDefaultOptions.call(this), { - syncViewPadding - }); - }; - BidirectionalBar2.prototype.changeData = function(data3) { - if (data3 === void 0) { - data3 = []; - } - this.chart.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null)); - this.updateOption({ data: data3 }); - var _a6 = this.options, xField = _a6.xField, yField = _a6.yField, layout6 = _a6.layout; - var groupData = transformData6(xField, yField, SERIES_FIELD_KEY, data3, isHorizontal(layout6)); - var firstViewData = groupData[0], secondViewData = groupData[1]; - var firstView = findViewById(this.chart, FIRST_AXES_VIEW); - var secondView = findViewById(this.chart, SECOND_AXES_VIEW); - firstView.data(firstViewData); - secondView.data(secondViewData); - this.chart.render(true); - this.chart.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, event_default.fromData(this.chart, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null)); - }; - BidirectionalBar2.prototype.getDefaultOptions = function() { - return BidirectionalBar2.getDefaultOptions(); - }; - BidirectionalBar2.prototype.getSchemaAdaptor = function() { - return adaptor29; - }; - BidirectionalBar2.SERIES_FIELD_KEY = SERIES_FIELD_KEY; - return BidirectionalBar2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/treemap/utils.js -function findInteraction(interactions, interactionType) { - if (!is_array_default(interactions)) - return void 0; - return interactions.find(function(i4) { - return i4.type === interactionType; - }); -} -function enableInteraction(interactions, interactionType) { - var interaction8 = findInteraction(interactions, interactionType); - return interaction8 && interaction8.enable !== false; -} -function enableDrillInteraction(options) { - var interactions = options.interactions, drilldown = options.drilldown; - return get_default(drilldown, "enabled") || enableInteraction(interactions, "treemap-drill-down"); -} -function resetDrillDown(chart) { - var drillDownInteraction = chart.interactions["drill-down"]; - if (!drillDownInteraction) - return; - var drillDownAction = drillDownInteraction.context.actions.find(function(i4) { - return i4.name === "drill-down-action"; - }); - drillDownAction.reset(); -} -function transformData7(options) { - var data3 = options.data, colorField = options.colorField, enableDrillDown = options.enableDrillDown, hierarchyConfig = options.hierarchyConfig; - var nodes = treemap(data3, __assign(__assign({}, hierarchyConfig), { - type: "hierarchy.treemap", - field: "value", - as: ["x", "y"] - })); - var result = []; - nodes.forEach(function(node) { - if (node.depth === 0) { - return null; - } - if (enableDrillDown && node.depth !== 1) { - return null; - } - if (!enableDrillDown && node.children) { - return null; - } - var curPath = node.ancestors().map(function(n3) { - return { - data: n3.data, - height: n3.height, - value: n3.value - }; - }); - var path = enableDrillDown && is_array_default(data3.path) ? curPath.concat(data3.path.slice(1)) : curPath; - var nodeInfo = Object.assign({}, node.data, __assign({ x: node.x, y: node.y, depth: node.depth, value: node.value, path }, node)); - if (!node.data[colorField] && node.parent) { - var ancestorNode = node.ancestors().find(function(n3) { - return n3.data[colorField]; - }); - nodeInfo[colorField] = ancestorNode === null || ancestorNode === void 0 ? void 0 : ancestorNode.data[colorField]; - } else { - nodeInfo[colorField] = node.data[colorField]; - } - nodeInfo[HIERARCHY_DATA_TRANSFORM_PARAMS] = { hierarchyConfig, colorField, enableDrillDown }; - result.push(nodeInfo); - }); - return result; -} - -// node_modules/@antv/g2plot/esm/plots/treemap/adaptor.js -function defaultOptions5(params) { - var options = params.options; - var colorField = options.colorField; - return deepAssign({ - options: { - rawFields: ["value"], - tooltip: { - fields: ["name", "value", colorField, "path"], - formatter: function(data3) { - return { - name: data3.name, - value: data3.value - }; - } - } - } - }, params); -} -function geometry32(params) { - var chart = params.chart, options = params.options; - var color4 = options.color, colorField = options.colorField, rectStyle = options.rectStyle, hierarchyConfig = options.hierarchyConfig, rawFields = options.rawFields; - var data3 = transformData7({ - data: options.data, - colorField: options.colorField, - enableDrillDown: enableDrillInteraction(options), - hierarchyConfig - }); - chart.data(data3); - polygon(deepAssign({}, params, { - options: { - xField: "x", - yField: "y", - seriesField: colorField, - rawFields, - polygon: { - color: color4, - style: rectStyle - } - } - })); - chart.coordinate().reflect("y"); - return params; -} -function axis19(params) { - var chart = params.chart; - chart.axis(false); - return params; -} -function adaptorInteraction2(options) { - var drilldown = options.drilldown, _a6 = options.interactions, interactions = _a6 === void 0 ? [] : _a6; - var enableDrillDown = enableDrillInteraction(options); - if (enableDrillDown) { - return deepAssign({}, options, { - interactions: __spreadArrays(interactions, [ - { - type: "drill-down", - cfg: { drillDownConfig: drilldown, transformData: transformData7 } - } - ]) - }); - } - return options; -} -function interaction6(params) { - var chart = params.chart, options = params.options; - var interactions = options.interactions, drilldown = options.drilldown; - interaction({ - chart, - options: adaptorInteraction2(options) - }); - var viewZoomInteraction = findInteraction(interactions, "view-zoom"); - if (viewZoomInteraction) { - if (viewZoomInteraction.enable !== false) { - chart.getCanvas().on("mousewheel", function(ev) { - ev.preventDefault(); - }); - } else { - chart.getCanvas().off("mousewheel"); - } - } - var enableDrillDown = enableDrillInteraction(options); - if (enableDrillDown) { - chart.appendPadding = getAdjustAppendPadding(chart.appendPadding, get_default(drilldown, ["breadCrumb", "position"])); - } - return params; -} -function adaptor30(params) { - return flow(defaultOptions5, theme, pattern("rectStyle"), geometry32, axis19, legend, tooltip, interaction6, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/treemap/constant.js -var DEFAULT_OPTIONS30 = { - colorField: "name", - rectStyle: { - lineWidth: 1, - stroke: "#fff" - }, - hierarchyConfig: { - tile: "treemapSquarify" - }, - label: { - fields: ["name"], - layout: { - type: "limit-in-shape" - } - }, - tooltip: { - showMarkers: false, - showTitle: false - }, - drilldown: { - enabled: false, - breadCrumb: { - position: "bottom-left", - rootText: "\u521D\u59CB", - dividerText: "/", - textStyle: { - fontSize: 12, - fill: "rgba(0, 0, 0, 0.65)", - cursor: "pointer" - }, - activeTextStyle: { - fill: "#87B5FF" - } - } - } -}; - -// node_modules/@antv/g2plot/esm/plots/treemap/index.js -var Treemap = function(_super) { - __extends(Treemap2, _super); - function Treemap2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "treemap"; - return _this; - } - Treemap2.getDefaultOptions = function() { - return DEFAULT_OPTIONS30; - }; - Treemap2.prototype.changeData = function(data3) { - var _a6 = this.options, colorField = _a6.colorField, interactions = _a6.interactions, hierarchyConfig = _a6.hierarchyConfig; - this.updateOption({ data: data3 }); - var transData = transformData7({ - data: data3, - colorField, - enableDrillDown: enableInteraction(interactions, "treemap-drill-down"), - hierarchyConfig - }); - this.chart.changeData(transData); - resetDrillDown(this.chart); - }; - Treemap2.prototype.getDefaultOptions = function() { - return Treemap2.getDefaultOptions(); - }; - Treemap2.prototype.getSchemaAdaptor = function() { - return adaptor30; - }; - return Treemap2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/sankey/sankey/align.js -function targetDepth(d3) { - return d3.target.depth; -} -function left(node) { - return node.depth; -} -function right(node, n3) { - return n3 - 1 - node.height; -} -function justify(node, n3) { - return node.sourceLinks.length ? node.depth : n3 - 1; -} -function center(node) { - return node.targetLinks.length ? node.depth : node.sourceLinks.length ? min_by_default(node.sourceLinks, targetDepth) - 1 : 0; -} - -// node_modules/@antv/g2plot/esm/plots/sankey/sankey/helper.js -function constant(x6) { - return function() { - return x6; - }; -} -function sumBy(arr, func) { - var r4 = 0; - for (var i4 = 0; i4 < arr.length; i4++) { - r4 += func(arr[i4]); - } - return r4; -} -function maxValueBy(arr, func) { - var r4 = -Infinity; - for (var i4 = 0; i4 < arr.length; i4++) { - r4 = Math.max(func(arr[i4]), r4); - } - return r4; -} -function minValueBy(arr, func) { - var r4 = Infinity; - for (var i4 = 0; i4 < arr.length; i4++) { - r4 = Math.min(func(arr[i4]), r4); - } - return r4; -} - -// node_modules/@antv/g2plot/esm/plots/sankey/sankey/sankey.js -function ascendingSourceBreadth(a4, b10) { - return ascendingBreadth(a4.source, b10.source) || a4.index - b10.index; -} -function ascendingTargetBreadth(a4, b10) { - return ascendingBreadth(a4.target, b10.target) || a4.index - b10.index; -} -function ascendingBreadth(a4, b10) { - return a4.y0 - b10.y0; -} -function value(d3) { - return d3.value; -} -function defaultId2(d3) { - return d3.index; -} -function defaultNodes(graph) { - return graph.nodes; -} -function defaultLinks(graph) { - return graph.links; -} -function find2(nodeById, id) { - var node = nodeById.get(id); - if (!node) - throw new Error("missing: " + id); - return node; -} -function computeLinkBreadths(_a6) { - var nodes = _a6.nodes; - for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { - var node = nodes_1[_i]; - var y0 = node.y0; - var y1 = y0; - for (var _b = 0, _c = node.sourceLinks; _b < _c.length; _b++) { - var link = _c[_b]; - link.y0 = y0 + link.width / 2; - y0 += link.width; - } - for (var _d = 0, _e = node.targetLinks; _d < _e.length; _d++) { - var link = _e[_d]; - link.y1 = y1 + link.width / 2; - y1 += link.width; - } - } -} -function Sankey() { - var x0 = 0, y0 = 0, x1 = 1, y1 = 1; - var dx = 24; - var dy = 8, py; - var id = defaultId2; - var align = justify; - var depth; - var sort2; - var linkSort; - var nodes = defaultNodes; - var links = defaultLinks; - var iterations = 6; - function sankey(arg) { - var graph = { - nodes: nodes(arg), - links: links(arg) - }; - computeNodeLinks(graph); - computeNodeValues(graph); - computeNodeDepths(graph); - computeNodeHeights(graph); - computeNodeBreadths(graph); - computeLinkBreadths(graph); - return graph; - } - sankey.update = function(graph) { - computeLinkBreadths(graph); - return graph; - }; - sankey.nodeId = function(_8) { - return arguments.length ? (id = typeof _8 === "function" ? _8 : constant(_8), sankey) : id; - }; - sankey.nodeAlign = function(_8) { - return arguments.length ? (align = typeof _8 === "function" ? _8 : constant(_8), sankey) : align; - }; - sankey.nodeDepth = function(_8) { - return arguments.length ? (depth = typeof _8 === "function" ? _8 : _8, sankey) : depth; - }; - sankey.nodeSort = function(_8) { - return arguments.length ? (sort2 = _8, sankey) : sort2; - }; - sankey.nodeWidth = function(_8) { - return arguments.length ? (dx = +_8, sankey) : dx; - }; - sankey.nodePadding = function(_8) { - return arguments.length ? (dy = py = +_8, sankey) : dy; - }; - sankey.nodes = function(_8) { - return arguments.length ? (nodes = typeof _8 === "function" ? _8 : constant(_8), sankey) : nodes; - }; - sankey.links = function(_8) { - return arguments.length ? (links = typeof _8 === "function" ? _8 : constant(_8), sankey) : links; - }; - sankey.linkSort = function(_8) { - return arguments.length ? (linkSort = _8, sankey) : linkSort; - }; - sankey.size = function(_8) { - return arguments.length ? (x0 = y0 = 0, x1 = +_8[0], y1 = +_8[1], sankey) : [x1 - x0, y1 - y0]; - }; - sankey.extent = function(_8) { - return arguments.length ? (x0 = +_8[0][0], x1 = +_8[1][0], y0 = +_8[0][1], y1 = +_8[1][1], sankey) : [ - [x0, y0], - [x1, y1] - ]; - }; - sankey.iterations = function(_8) { - return arguments.length ? (iterations = +_8, sankey) : iterations; - }; - function computeNodeLinks(_a6) { - var nodes2 = _a6.nodes, links2 = _a6.links; - nodes2.forEach(function(node, idx) { - node.index = idx; - node.sourceLinks = []; - node.targetLinks = []; - }); - var nodeById = new Map(nodes2.map(function(d3) { - return [id(d3), d3]; - })); - links2.forEach(function(link, idx) { - link.index = idx; - var source = link.source, target = link.target; - if (typeof source !== "object") - source = link.source = find2(nodeById, source); - if (typeof target !== "object") - target = link.target = find2(nodeById, target); - source.sourceLinks.push(link); - target.targetLinks.push(link); - }); - if (linkSort != null) { - for (var _i = 0, nodes_2 = nodes2; _i < nodes_2.length; _i++) { - var _b = nodes_2[_i], sourceLinks = _b.sourceLinks, targetLinks = _b.targetLinks; - sourceLinks.sort(linkSort); - targetLinks.sort(linkSort); - } - } - } - function computeNodeValues(_a6) { - var nodes2 = _a6.nodes; - for (var _i = 0, nodes_3 = nodes2; _i < nodes_3.length; _i++) { - var node = nodes_3[_i]; - node.value = node.fixedValue === void 0 ? Math.max(sumBy(node.sourceLinks, value), sumBy(node.targetLinks, value)) : node.fixedValue; - } - } - function computeNodeDepths(_a6) { - var nodes2 = _a6.nodes; - var n3 = nodes2.length; - var current = new Set(nodes2); - var next = new Set(); - var x6 = 0; - while (current.size) { - current.forEach(function(node2) { - node2.depth = x6; - for (var _i = 0, _a7 = node2.sourceLinks; _i < _a7.length; _i++) { - var target = _a7[_i].target; - next.add(target); - } - }); - if (++x6 > n3) - throw new Error("circular link"); - current = next; - next = new Set(); - } - if (depth) { - var maxDepth = Math.max(maxValueBy(nodes2, function(d3) { - return d3.depth; - }) + 1, 0); - var node = void 0; - for (var i4 = 0; i4 < nodes2.length; i4++) { - node = nodes2[i4]; - node.depth = depth.call(null, node, maxDepth); - } - } - } - function computeNodeHeights(_a6) { - var nodes2 = _a6.nodes; - var n3 = nodes2.length; - var current = new Set(nodes2); - var next = new Set(); - var x6 = 0; - while (current.size) { - current.forEach(function(node) { - node.height = x6; - for (var _i = 0, _a7 = node.targetLinks; _i < _a7.length; _i++) { - var source = _a7[_i].source; - next.add(source); - } - }); - if (++x6 > n3) - throw new Error("circular link"); - current = next; - next = new Set(); - } - } - function computeNodeLayers(_a6) { - var nodes2 = _a6.nodes; - var x6 = Math.max(maxValueBy(nodes2, function(d3) { - return d3.depth; - }) + 1, 0); - var kx = (x1 - x0 - dx) / (x6 - 1); - var columns = new Array(x6).fill(0).map(function() { - return []; - }); - for (var _i = 0, nodes_4 = nodes2; _i < nodes_4.length; _i++) { - var node = nodes_4[_i]; - var i4 = Math.max(0, Math.min(x6 - 1, Math.floor(align.call(null, node, x6)))); - node.layer = i4; - node.x0 = x0 + i4 * kx; - node.x1 = node.x0 + dx; - if (columns[i4]) - columns[i4].push(node); - else - columns[i4] = [node]; - } - if (sort2) - for (var _b = 0, columns_1 = columns; _b < columns_1.length; _b++) { - var column = columns_1[_b]; - column.sort(sort2); - } - return columns; - } - function initializeNodeBreadths(columns) { - var ky = minValueBy(columns, function(c5) { - return (y1 - y0 - (c5.length - 1) * py) / sumBy(c5, value); - }); - for (var _i = 0, columns_2 = columns; _i < columns_2.length; _i++) { - var nodes_6 = columns_2[_i]; - var y5 = y0; - for (var _a6 = 0, nodes_5 = nodes_6; _a6 < nodes_5.length; _a6++) { - var node = nodes_5[_a6]; - node.y0 = y5; - node.y1 = y5 + node.value * ky; - y5 = node.y1 + py; - for (var _b = 0, _c = node.sourceLinks; _b < _c.length; _b++) { - var link = _c[_b]; - link.width = link.value * ky; - } - } - y5 = (y1 - y5 + py) / (nodes_6.length + 1); - for (var i4 = 0; i4 < nodes_6.length; ++i4) { - var node = nodes_6[i4]; - node.y0 += y5 * (i4 + 1); - node.y1 += y5 * (i4 + 1); - } - reorderLinks(nodes_6); - } - } - function computeNodeBreadths(graph) { - var columns = computeNodeLayers(graph); - py = Math.min(dy, (y1 - y0) / (maxValueBy(columns, function(c5) { - return c5.length; - }) - 1)); - initializeNodeBreadths(columns); - for (var i4 = 0; i4 < iterations; ++i4) { - var alpha = Math.pow(0.99, i4); - var beta = Math.max(1 - alpha, (i4 + 1) / iterations); - relaxRightToLeft(columns, alpha, beta); - relaxLeftToRight(columns, alpha, beta); - } - } - function relaxLeftToRight(columns, alpha, beta) { - for (var i4 = 1, n3 = columns.length; i4 < n3; ++i4) { - var column = columns[i4]; - for (var _i = 0, column_1 = column; _i < column_1.length; _i++) { - var target = column_1[_i]; - var y5 = 0; - var w4 = 0; - for (var _a6 = 0, _b = target.targetLinks; _a6 < _b.length; _a6++) { - var _c = _b[_a6], source = _c.source, value_1 = _c.value; - var v3 = value_1 * (target.layer - source.layer); - y5 += targetTop(source, target) * v3; - w4 += v3; - } - if (!(w4 > 0)) - continue; - var dy_1 = (y5 / w4 - target.y0) * alpha; - target.y0 += dy_1; - target.y1 += dy_1; - reorderNodeLinks(target); - } - if (sort2 === void 0) - column.sort(ascendingBreadth); - if (column.length) - resolveCollisions(column, beta); - } - } - function relaxRightToLeft(columns, alpha, beta) { - for (var n3 = columns.length, i4 = n3 - 2; i4 >= 0; --i4) { - var column = columns[i4]; - for (var _i = 0, column_2 = column; _i < column_2.length; _i++) { - var source = column_2[_i]; - var y5 = 0; - var w4 = 0; - for (var _a6 = 0, _b = source.sourceLinks; _a6 < _b.length; _a6++) { - var _c = _b[_a6], target = _c.target, value_2 = _c.value; - var v3 = value_2 * (target.layer - source.layer); - y5 += sourceTop(source, target) * v3; - w4 += v3; - } - if (!(w4 > 0)) - continue; - var dy_2 = (y5 / w4 - source.y0) * alpha; - source.y0 += dy_2; - source.y1 += dy_2; - reorderNodeLinks(source); - } - if (sort2 === void 0) - column.sort(ascendingBreadth); - if (column.length) - resolveCollisions(column, beta); - } - } - function resolveCollisions(nodes2, alpha) { - var i4 = nodes2.length >> 1; - var subject = nodes2[i4]; - resolveCollisionsBottomToTop(nodes2, subject.y0 - py, i4 - 1, alpha); - resolveCollisionsTopToBottom(nodes2, subject.y1 + py, i4 + 1, alpha); - resolveCollisionsBottomToTop(nodes2, y1, nodes2.length - 1, alpha); - resolveCollisionsTopToBottom(nodes2, y0, 0, alpha); - } - function resolveCollisionsTopToBottom(nodes2, y5, i4, alpha) { - for (; i4 < nodes2.length; ++i4) { - var node = nodes2[i4]; - var dy_3 = (y5 - node.y0) * alpha; - if (dy_3 > 1e-6) - node.y0 += dy_3, node.y1 += dy_3; - y5 = node.y1 + py; - } - } - function resolveCollisionsBottomToTop(nodes2, y5, i4, alpha) { - for (; i4 >= 0; --i4) { - var node = nodes2[i4]; - var dy_4 = (node.y1 - y5) * alpha; - if (dy_4 > 1e-6) - node.y0 -= dy_4, node.y1 -= dy_4; - y5 = node.y0 - py; - } - } - function reorderNodeLinks(_a6) { - var sourceLinks = _a6.sourceLinks, targetLinks = _a6.targetLinks; - if (linkSort === void 0) { - for (var _i = 0, targetLinks_1 = targetLinks; _i < targetLinks_1.length; _i++) { - var sourceLinks_2 = targetLinks_1[_i].source.sourceLinks; - sourceLinks_2.sort(ascendingTargetBreadth); - } - for (var _b = 0, sourceLinks_1 = sourceLinks; _b < sourceLinks_1.length; _b++) { - var targetLinks_2 = sourceLinks_1[_b].target.targetLinks; - targetLinks_2.sort(ascendingSourceBreadth); - } - } - } - function reorderLinks(nodes2) { - if (linkSort === void 0) { - for (var _i = 0, nodes_7 = nodes2; _i < nodes_7.length; _i++) { - var _a6 = nodes_7[_i], sourceLinks = _a6.sourceLinks, targetLinks = _a6.targetLinks; - sourceLinks.sort(ascendingTargetBreadth); - targetLinks.sort(ascendingSourceBreadth); - } - } - } - function targetTop(source, target) { - var y5 = source.y0 - (source.sourceLinks.length - 1) * py / 2; - for (var _i = 0, _a6 = source.sourceLinks; _i < _a6.length; _i++) { - var _b = _a6[_i], node = _b.target, width2 = _b.width; - if (node === target) - break; - y5 += width2 + py; - } - for (var _c = 0, _d = target.targetLinks; _c < _d.length; _c++) { - var _e = _d[_c], node = _e.source, width2 = _e.width; - if (node === source) - break; - y5 -= width2; - } - return y5; - } - function sourceTop(source, target) { - var y5 = target.y0 - (target.targetLinks.length - 1) * py / 2; - for (var _i = 0, _a6 = target.targetLinks; _i < _a6.length; _i++) { - var _b = _a6[_i], node = _b.source, width2 = _b.width; - if (node === source) - break; - y5 += width2 + py; - } - for (var _c = 0, _d = source.sourceLinks; _c < _d.length; _c++) { - var _e = _d[_c], node = _e.target, width2 = _e.width; - if (node === target) - break; - y5 -= width2; - } - return y5; - } - return sankey; -} - -// node_modules/@antv/g2plot/esm/plots/sankey/layout.js -var ALIGN_METHOD = { - left, - right, - center, - justify -}; -var DEFAULT_OPTIONS31 = { - nodeId: function(node) { - return node.index; - }, - nodeAlign: "justify", - nodeWidth: 8e-3, - nodePadding: 0.03, - nodeSort: void 0 -}; -function getNodeAlignFunction(nodeAlign) { - var func = is_string_default(nodeAlign) ? ALIGN_METHOD[nodeAlign] : is_function_default(nodeAlign) ? nodeAlign : null; - return func || justify; -} -function getDefaultOptions(sankeyLayoutOptions) { - return mix({}, DEFAULT_OPTIONS31, sankeyLayoutOptions); -} -function sankeyLayout(sankeyLayoutOptions, data3) { - var options = getDefaultOptions(sankeyLayoutOptions); - var nodeId = options.nodeId, nodeSort = options.nodeSort, nodeAlign = options.nodeAlign, nodeWidth = options.nodeWidth, nodePadding = options.nodePadding, nodeDepth = options.nodeDepth; - var sankeyProcessor = Sankey().nodeSort(nodeSort).nodeWidth(nodeWidth).nodePadding(nodePadding).nodeDepth(nodeDepth).nodeAlign(getNodeAlignFunction(nodeAlign)).extent([ - [0, 0], - [1, 1] - ]).nodeId(nodeId); - var layoutData = sankeyProcessor(data3); - layoutData.nodes.forEach(function(node) { - var x0 = node.x0, x1 = node.x1, y0 = node.y0, y1 = node.y1; - node.x = [x0, x1, x1, x0]; - node.y = [y0, y0, y1, y1]; - }); - layoutData.links.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - var sx = source.x1; - var tx = target.x0; - edge2.x = [sx, sx, tx, tx]; - var offset = edge2.width / 2; - edge2.y = [edge2.y0 + offset, edge2.y0 - offset, edge2.y1 + offset, edge2.y1 - offset]; - }); - return layoutData; -} - -// node_modules/@antv/g2plot/esm/plots/sankey/circle.js -function getNodes(edges, sourceField, targetField) { - var nodes = []; - edges.forEach(function(e4) { - var source = e4[sourceField]; - var target = e4[targetField]; - if (!nodes.includes(source)) { - nodes.push(source); - } - if (!nodes.includes(target)) { - nodes.push(target); - } - }); - return nodes; -} -function getMatrix(edges, nodes, sourceField, targetField) { - var graphMatrix = {}; - nodes.forEach(function(pre) { - graphMatrix[pre] = {}; - nodes.forEach(function(next) { - graphMatrix[pre][next] = 0; - }); - }); - edges.forEach(function(edge2) { - graphMatrix[edge2[sourceField]][edge2[targetField]] = 1; - }); - return graphMatrix; -} -function cutoffCircle(edges, sourceField, targetField) { - if (!is_array_default(edges)) - return []; - var removedData = []; - var nodes = getNodes(edges, sourceField, targetField); - var graphMatrix = getMatrix(edges, nodes, sourceField, targetField); - var visited = {}; - nodes.forEach(function(node) { - visited[node] = 0; - }); - function DFS(dfsNode) { - visited[dfsNode] = 1; - nodes.forEach(function(node) { - if (graphMatrix[dfsNode][node] != 0) { - if (visited[node] == 1) { - removedData.push(dfsNode + "_" + node); - } else if (visited[node] == -1) { - return; - } else { - DFS(node); - } - } - }); - visited[dfsNode] = -1; - } - nodes.forEach(function(node) { - if (visited[node] == -1) { - return; - } - DFS(node); - }); - if (removedData.length !== 0) { - console.warn("sankey data contains circle, " + removedData.length + " records removed.", removedData); - } - return edges.filter(function(edge2) { - return removedData.findIndex(function(i4) { - return i4 === edge2[sourceField] + "_" + edge2[targetField]; - }) < 0; - }); -} - -// node_modules/@antv/g2plot/esm/plots/sankey/helper.js -function isNodeLink(dataType) { - return dataType === "node-link"; -} -function getNodeWidthRatio(nodeWidth, nodeWidthRatio, width2) { - return isRealNumber(nodeWidth) ? nodeWidth / width2 : nodeWidthRatio; -} -function getNodePaddingRatio(nodePadding, nodePaddingRatio, height) { - return isRealNumber(nodePadding) ? nodePadding / height : nodePaddingRatio; -} -function transformToViewsData(options, width2, height) { - var dataType = options.dataType, data3 = options.data, sourceField = options.sourceField, targetField = options.targetField, weightField = options.weightField, nodeAlign = options.nodeAlign, nodeSort = options.nodeSort, nodePadding = options.nodePadding, nodePaddingRatio = options.nodePaddingRatio, nodeWidth = options.nodeWidth, nodeWidthRatio = options.nodeWidthRatio, nodeDepth = options.nodeDepth, _a6 = options.rawFields, rawFields = _a6 === void 0 ? [] : _a6; - var sankeyLayoutInputData; - if (!isNodeLink(dataType)) { - sankeyLayoutInputData = transformDataToNodeLinkData(cutoffCircle(data3, sourceField, targetField), sourceField, targetField, weightField, rawFields); - } else { - sankeyLayoutInputData = data3; - } - var _b = sankeyLayout({ - nodeAlign, - nodePadding: getNodePaddingRatio(nodePadding, nodePaddingRatio, height), - nodeWidth: getNodeWidthRatio(nodeWidth, nodeWidthRatio, width2), - nodeSort, - nodeDepth - }, sankeyLayoutInputData), nodes = _b.nodes, links = _b.links; - return { - nodes: nodes.map(function(node) { - return __assign(__assign({}, pick(node, __spreadArrays(["x", "y", "name"], rawFields))), { isNode: true }); - }), - edges: links.map(function(link) { - return __assign(__assign({ source: link.source.name, target: link.target.name, name: link.source.name || link.target.name }, pick(link, __spreadArrays(["x", "y", "value"], rawFields))), { isNode: false }); - }) - }; -} - -// node_modules/@antv/g2plot/esm/plots/sankey/constant.js -var X_FIELD3 = "x"; -var Y_FIELD4 = "y"; -var COLOR_FIELD = "name"; -var NODES_VIEW_ID = "nodes"; -var EDGES_VIEW_ID = "edges"; - -// node_modules/@antv/g2plot/esm/plots/sankey/adaptor.js -function defaultOptions6(params) { - var options = params.options; - var _a6 = options.rawFields, rawFields = _a6 === void 0 ? [] : _a6; - return deepAssign({}, { - options: { - tooltip: { - fields: uniq(__spreadArrays(["name", "source", "target", "value", "isNode"], rawFields)) - }, - label: { - fields: uniq(__spreadArrays(["x", "name"], rawFields)) - } - } - }, params); -} -function geometry33(params) { - var chart = params.chart, options = params.options; - var color4 = options.color, nodeStyle = options.nodeStyle, edgeStyle = options.edgeStyle, label17 = options.label, tooltip10 = options.tooltip, nodeState = options.nodeState, edgeState = options.edgeState; - chart.legend(false); - chart.tooltip(tooltip10); - chart.axis(false); - chart.coordinate().reflect("y"); - var _a6 = transformToViewsData(options, chart.width, chart.height), nodes = _a6.nodes, edges = _a6.edges; - var edgeView = chart.createView({ id: EDGES_VIEW_ID }); - edgeView.data(edges); - edge({ - chart: edgeView, - options: { - xField: X_FIELD3, - yField: Y_FIELD4, - seriesField: COLOR_FIELD, - edge: { - color: color4, - style: edgeStyle, - shape: "arc" - }, - tooltip: tooltip10, - state: edgeState - } - }); - var nodeView = chart.createView({ id: NODES_VIEW_ID }); - nodeView.data(nodes); - polygon({ - chart: nodeView, - options: { - xField: X_FIELD3, - yField: Y_FIELD4, - seriesField: COLOR_FIELD, - polygon: { - color: color4, - style: nodeStyle - }, - label: label17, - tooltip: tooltip10, - state: nodeState - } - }); - chart.interaction("element-active"); - chart.scale({ - x: { sync: true, nice: true, min: 0, max: 1, minLimit: 0, maxLimit: 1 }, - y: { sync: true, nice: true, min: 0, max: 1, minLimit: 0, maxLimit: 1 }, - name: { sync: "color", type: "cat" } - }); - return params; -} -function animation5(params) { - var chart = params.chart, options = params.options; - var animation7 = options.animation; - if (typeof animation7 === "boolean") { - chart.animate(animation7); - } else { - chart.animate(true); - } - var geometries = __spreadArrays(chart.views[0].geometries, chart.views[1].geometries); - geometries.forEach(function(g4) { - g4.animate(animation7); - }); - return params; -} -function nodeDraggable(params) { - var chart = params.chart, options = params.options; - var nodeDraggable2 = options.nodeDraggable; - var DRAG_INTERACTION = "sankey-node-draggable"; - if (nodeDraggable2) { - chart.interaction(DRAG_INTERACTION); - } else { - chart.removeInteraction(DRAG_INTERACTION); - } - return params; -} -function adaptor31(params) { - return flow(defaultOptions6, geometry33, interaction, nodeDraggable, animation5, theme)(params); -} - -// node_modules/@antv/g2plot/esm/plots/sankey/interactions/actions/node-drag.js -var SankeyNodeDragAction = function(_super) { - __extends(SankeyNodeDragAction2, _super); - function SankeyNodeDragAction2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.isDragging = false; - return _this; - } - SankeyNodeDragAction2.prototype.isNodeElement = function() { - var shape = get_default(this.context, "event.target"); - if (shape) { - var element = shape.get("element"); - return element && element.getModel().data.isNode; - } - return false; - }; - SankeyNodeDragAction2.prototype.getNodeView = function() { - return findViewById(this.context.view, NODES_VIEW_ID); - }; - SankeyNodeDragAction2.prototype.getEdgeView = function() { - return findViewById(this.context.view, EDGES_VIEW_ID); - }; - SankeyNodeDragAction2.prototype.getCurrentDatumIdx = function(element) { - return this.getNodeView().geometries[0].elements.indexOf(element); - }; - SankeyNodeDragAction2.prototype.start = function() { - if (this.isNodeElement()) { - this.prevPoint = { - x: get_default(this.context, "event.x"), - y: get_default(this.context, "event.y") - }; - var element = this.context.event.target.get("element"); - var idx = this.getCurrentDatumIdx(element); - if (idx === -1) { - return; - } - this.currentElementIdx = idx; - this.context.isDragging = true; - this.isDragging = true; - this.prevNodeAnimateCfg = this.getNodeView().getOptions().animate; - this.prevEdgeAnimateCfg = this.getEdgeView().getOptions().animate; - this.getNodeView().animate(false); - this.getEdgeView().animate(false); - } - }; - SankeyNodeDragAction2.prototype.translate = function() { - if (this.isDragging) { - var chart = this.context.view; - var currentPoint = { - x: get_default(this.context, "event.x"), - y: get_default(this.context, "event.y") - }; - var x6 = currentPoint.x - this.prevPoint.x; - var y5 = currentPoint.y - this.prevPoint.y; - var nodeView = this.getNodeView(); - var element = nodeView.geometries[0].elements[this.currentElementIdx]; - if (element && element.getModel()) { - var prevDatum = element.getModel().data; - var data3 = nodeView.getOptions().data; - var coordinate11 = nodeView.getCoordinate(); - var datumGap_1 = { - x: x6 / coordinate11.getWidth(), - y: y5 / coordinate11.getHeight() - }; - var nextDatum = __assign(__assign({}, prevDatum), { x: prevDatum.x.map(function(x7) { - return x7 += datumGap_1.x; - }), y: prevDatum.y.map(function(y6) { - return y6 += datumGap_1.y; - }) }); - var newData = __spreadArrays(data3); - newData[this.currentElementIdx] = nextDatum; - nodeView.data(newData); - var name_1 = prevDatum.name; - var edgeView = this.getEdgeView(); - var edgeData = edgeView.getOptions().data; - edgeData.forEach(function(datum) { - if (datum.source === name_1) { - datum.x[0] += datumGap_1.x; - datum.x[1] += datumGap_1.x; - datum.y[0] += datumGap_1.y; - datum.y[1] += datumGap_1.y; - } - if (datum.target === name_1) { - datum.x[2] += datumGap_1.x; - datum.x[3] += datumGap_1.x; - datum.y[2] += datumGap_1.y; - datum.y[3] += datumGap_1.y; - } - }); - edgeView.data(edgeData); - this.prevPoint = currentPoint; - chart.render(true); - } - } - }; - SankeyNodeDragAction2.prototype.end = function() { - this.isDragging = false; - this.context.isDragging = false; - this.prevPoint = null; - this.currentElementIdx = null; - this.getNodeView().animate(this.prevNodeAnimateCfg); - this.getEdgeView().animate(this.prevEdgeAnimateCfg); - }; - return SankeyNodeDragAction2; -}(base_default12); - -// node_modules/@antv/g2plot/esm/plots/sankey/interactions/node-draggable.js -registerAction("sankey-node-drag", SankeyNodeDragAction); -registerInteraction("sankey-node-draggable", { - showEnable: [ - { trigger: "polygon:mouseenter", action: "cursor:pointer" }, - { trigger: "polygon:mouseleave", action: "cursor:default" } - ], - start: [{ trigger: "polygon:mousedown", action: "sankey-node-drag:start" }], - processing: [ - { trigger: "plot:mousemove", action: "sankey-node-drag:translate" }, - { isEnable: function(context) { - return context.isDragging; - }, trigger: "plot:mousemove", action: "cursor:move" } - ], - end: [{ trigger: "plot:mouseup", action: "sankey-node-drag:end" }] -}); - -// node_modules/@antv/g2plot/esm/plots/sankey/index.js -var Sankey2 = function(_super) { - __extends(Sankey3, _super); - function Sankey3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "sankey"; - return _this; - } - Sankey3.getDefaultOptions = function() { - return { - appendPadding: 8, - syncViewPadding: true, - nodeStyle: { - opacity: 1, - fillOpacity: 1, - lineWidth: 1 - }, - edgeStyle: { - opacity: 0.3, - lineWidth: 0 - }, - edgeState: { - active: { - style: { - opacity: 0.8, - lineWidth: 0 - } - } - }, - label: { - formatter: function(_a6) { - var name = _a6.name; - return name; - }, - callback: function(x6) { - var isLast = x6[1] === 1; - return { - style: { - fill: "#545454", - textAlign: isLast ? "end" : "start" - }, - offsetX: isLast ? -8 : 8 - }; - }, - layout: [ - { - type: "hide-overlap" - } - ] - }, - tooltip: { - showTitle: false, - showMarkers: false, - shared: false, - showContent: function(items) { - return !get_default(items, [0, "data", "isNode"]); - }, - formatter: function(datum) { - var source = datum.source, target = datum.target, value2 = datum.value; - return { - name: source + " -> " + target, - value: value2 - }; - } - }, - nodeWidthRatio: 8e-3, - nodePaddingRatio: 0.01, - animation: { - appear: { - animation: "wave-in" - }, - enter: { - animation: "wave-in" - } - } - }; - }; - Sankey3.prototype.changeData = function(data3) { - this.updateOption({ data: data3 }); - var _a6 = transformToViewsData(this.options, this.chart.width, this.chart.height), nodes = _a6.nodes, edges = _a6.edges; - var nodesView = findViewById(this.chart, NODES_VIEW_ID); - var edgesView = findViewById(this.chart, EDGES_VIEW_ID); - nodesView.changeData(nodes); - edgesView.changeData(edges); - }; - Sankey3.prototype.getSchemaAdaptor = function() { - return adaptor31; - }; - Sankey3.prototype.getDefaultOptions = function() { - return Sankey3.getDefaultOptions(); - }; - return Sankey3; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/transform/chord.js -var DEFAULT_OPTIONS32 = { - y: 0, - nodeWidthRatio: 0.05, - weight: false, - nodePaddingRatio: 0.1, - id: function(node) { - return node.id; - }, - source: function(edge2) { - return edge2.source; - }, - target: function(edge2) { - return edge2.target; - }, - sourceWeight: function(edge2) { - return edge2.value || 1; - }, - targetWeight: function(edge2) { - return edge2.value || 1; - }, - sortBy: null -}; -function processGraph(nodeById, edges, options) { - for_in_default(nodeById, function(node, id) { - node.inEdges = edges.filter(function(edge2) { - return "" + options.target(edge2) === "" + id; - }); - node.outEdges = edges.filter(function(edge2) { - return "" + options.source(edge2) === "" + id; - }); - node.edges = node.outEdges.concat(node.inEdges); - node.frequency = node.edges.length; - node.value = 0; - node.inEdges.forEach(function(edge2) { - node.value += options.targetWeight(edge2); - }); - node.outEdges.forEach(function(edge2) { - node.value += options.sourceWeight(edge2); - }); - }); -} -function sortNodes(nodes, options) { - var sortMethods = { - weight: function(a4, b10) { - return b10.value - a4.value; - }, - frequency: function(a4, b10) { - return b10.frequency - a4.frequency; - }, - id: function(a4, b10) { - return ("" + options.id(a4)).localeCompare("" + options.id(b10)); - } - }; - var method = sortMethods[options.sortBy]; - if (!method && is_function_default(options.sortBy)) { - method = options.sortBy; - } - if (method) { - nodes.sort(method); - } -} -function layoutNodes(nodes, options) { - var len5 = nodes.length; - if (!len5) { - throw new TypeError("Invalid nodes: it's empty!"); - } - if (options.weight) { - var nodePaddingRatio_1 = options.nodePaddingRatio; - if (nodePaddingRatio_1 < 0 || nodePaddingRatio_1 >= 1) { - throw new TypeError("Invalid nodePaddingRatio: it must be in range [0, 1)!"); - } - var margin_1 = nodePaddingRatio_1 / (2 * len5); - var nodeWidthRatio_1 = options.nodeWidthRatio; - if (nodeWidthRatio_1 <= 0 || nodeWidthRatio_1 >= 1) { - throw new TypeError("Invalid nodeWidthRatio: it must be in range (0, 1)!"); - } - var totalValue_1 = 0; - nodes.forEach(function(node) { - totalValue_1 += node.value; - }); - nodes.forEach(function(node) { - node.weight = node.value / totalValue_1; - node.width = node.weight * (1 - nodePaddingRatio_1); - node.height = nodeWidthRatio_1; - }); - nodes.forEach(function(node, index2) { - var deltaX = 0; - for (var i4 = index2 - 1; i4 >= 0; i4--) { - deltaX += nodes[i4].width + 2 * margin_1; - } - var minX = node.minX = margin_1 + deltaX; - var maxX = node.maxX = node.minX + node.width; - var minY = node.minY = options.y - nodeWidthRatio_1 / 2; - var maxY2 = node.maxY = minY + nodeWidthRatio_1; - node.x = [minX, maxX, maxX, minX]; - node.y = [minY, minY, maxY2, maxY2]; - }); - } else { - var deltaX_1 = 1 / len5; - nodes.forEach(function(node, index2) { - node.x = (index2 + 0.5) * deltaX_1; - node.y = options.y; - }); - } - return nodes; -} -function locatingEdges(nodeById, edges, options) { - if (options.weight) { - var valueById_1 = {}; - for_in_default(nodeById, function(node, id) { - valueById_1[id] = node.value; - }); - edges.forEach(function(edge2) { - var sId = options.source(edge2); - var tId = options.target(edge2); - var sNode = nodeById[sId]; - var tNode = nodeById[tId]; - if (sNode && tNode) { - var sValue = valueById_1[sId]; - var currentSValue = options.sourceWeight(edge2); - var sStart = sNode.minX + (sNode.value - sValue) / sNode.value * sNode.width; - var sEnd = sStart + currentSValue / sNode.value * sNode.width; - valueById_1[sId] -= currentSValue; - var tValue = valueById_1[tId]; - var currentTValue = options.targetWeight(edge2); - var tStart = tNode.minX + (tNode.value - tValue) / tNode.value * tNode.width; - var tEnd = tStart + currentTValue / tNode.value * tNode.width; - valueById_1[tId] -= currentTValue; - var y5 = options.y; - edge2.x = [sStart, sEnd, tStart, tEnd]; - edge2.y = [y5, y5, y5, y5]; - edge2.source = sNode; - edge2.target = tNode; - } - }); - } else { - edges.forEach(function(edge2) { - var sNode = nodeById[options.source(edge2)]; - var tNode = nodeById[options.target(edge2)]; - if (sNode && tNode) { - edge2.x = [sNode.x, tNode.x]; - edge2.y = [sNode.y, tNode.y]; - edge2.source = sNode; - edge2.target = tNode; - } - }); - } - return edges; -} -function getDefaultOptions2(options) { - return mix({}, DEFAULT_OPTIONS32, options); -} -function chordLayout(chordLayoutOptions, chordLayoutInputData) { - var options = getDefaultOptions2(chordLayoutOptions); - var nodeById = {}; - var nodes = chordLayoutInputData.nodes; - var links = chordLayoutInputData.links; - nodes.forEach(function(node) { - var id = options.id(node); - nodeById[id] = node; - }); - processGraph(nodeById, links, options); - sortNodes(nodes, options); - var outputNodes = layoutNodes(nodes, options); - var outputLinks = locatingEdges(nodeById, links, options); - return { - nodes: outputNodes, - links: outputLinks - }; -} - -// node_modules/@antv/g2plot/esm/plots/chord/constant.js -var X_FIELD4 = "x"; -var Y_FIELD5 = "y"; -var NODE_COLOR_FIELD = "name"; -var EDGE_COLOR_FIELD = "source"; -var DEFAULT_OPTIONS33 = { - nodeStyle: { - opacity: 1, - fillOpacity: 1, - lineWidth: 1 - }, - edgeStyle: { - opacity: 0.5, - lineWidth: 2 - }, - label: { - fields: ["x", "name"], - callback: function(x6, name) { - var centerX = (x6[0] + x6[1]) / 2; - var offsetX = centerX > 0.5 ? -4 : 4; - return { - labelEmit: true, - style: { - fill: "#8c8c8c" - }, - offsetX, - content: name - }; - } - }, - tooltip: { - showTitle: false, - showMarkers: false, - fields: ["source", "target", "value", "isNode"], - showContent: function(items) { - return !get_default(items, [0, "data", "isNode"]); - }, - formatter: function(datum) { - var source = datum.source, target = datum.target, value2 = datum.value; - return { - name: source + " -> " + target, - value: value2 - }; - } - }, - interactions: [ - { - type: "element-active" - } - ], - weight: true, - nodePaddingRatio: 0.1, - nodeWidthRatio: 0.05 -}; - -// node_modules/@antv/g2plot/esm/plots/chord/adaptor.js -function transformData8(params) { - var options = params.options; - var data3 = options.data, sourceField = options.sourceField, targetField = options.targetField, weightField = options.weightField, nodePaddingRatio = options.nodePaddingRatio, nodeWidthRatio = options.nodeWidthRatio, _a6 = options.rawFields, rawFields = _a6 === void 0 ? [] : _a6; - var chordLayoutInputData = transformDataToNodeLinkData(data3, sourceField, targetField, weightField); - var _b = chordLayout({ weight: true, nodePaddingRatio, nodeWidthRatio }, chordLayoutInputData), nodes = _b.nodes, links = _b.links; - var nodesData = nodes.map(function(node) { - return __assign(__assign({}, pick(node, __spreadArrays(["id", "x", "y", "name"], rawFields))), { isNode: true }); - }); - var edgesData = links.map(function(link) { - return __assign(__assign({ source: link.source.name, target: link.target.name, name: link.source.name || link.target.name }, pick(link, __spreadArrays(["x", "y", "value"], rawFields))), { isNode: false }); - }); - return __assign(__assign({}, params), { ext: __assign(__assign({}, params.ext), { - chordData: { nodesData, edgesData } - }) }); -} -function scale9(params) { - var _a6; - var chart = params.chart; - chart.scale((_a6 = { - x: { sync: true, nice: true }, - y: { sync: true, nice: true, max: 1 } - }, _a6[NODE_COLOR_FIELD] = { sync: "color" }, _a6[EDGE_COLOR_FIELD] = { sync: "color" }, _a6)); - return params; -} -function axis20(params) { - var chart = params.chart; - chart.axis(false); - return params; -} -function legend17(params) { - var chart = params.chart; - chart.legend(false); - return params; -} -function tooltip8(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip; - chart.tooltip(tooltip10); - return params; -} -function coordinate10(params) { - var chart = params.chart; - chart.coordinate("polar").reflect("y"); - return params; -} -function nodeGeometry(params) { - var chart = params.chart, options = params.options; - var nodesData = params.ext.chordData.nodesData; - var nodeStyle = options.nodeStyle, label17 = options.label, tooltip10 = options.tooltip; - var nodeView = chart.createView(); - nodeView.data(nodesData); - polygon({ - chart: nodeView, - options: { - xField: X_FIELD4, - yField: Y_FIELD5, - seriesField: NODE_COLOR_FIELD, - polygon: { - style: nodeStyle - }, - label: label17, - tooltip: tooltip10 - } - }); - return params; -} -function edgeGeometry(params) { - var chart = params.chart, options = params.options; - var edgesData = params.ext.chordData.edgesData; - var edgeStyle = options.edgeStyle, tooltip10 = options.tooltip; - var edgeView = chart.createView(); - edgeView.data(edgesData); - var edgeOptions = { - xField: X_FIELD4, - yField: Y_FIELD5, - seriesField: EDGE_COLOR_FIELD, - edge: { - style: edgeStyle, - shape: "arc" - }, - tooltip: tooltip10 - }; - edge({ - chart: edgeView, - options: edgeOptions - }); - return params; -} -function animation6(params) { - var chart = params.chart, options = params.options; - var animation7 = options.animation; - if (typeof animation7 === "boolean") { - chart.animate(animation7); - } else { - chart.animate(true); - } - each_default(getAllGeometriesRecursively(chart), function(g4) { - g4.animate(animation7); - }); - return params; -} -function adaptor32(params) { - return flow(theme, transformData8, coordinate10, scale9, axis20, legend17, tooltip8, edgeGeometry, nodeGeometry, interaction, state, animation6)(params); -} - -// node_modules/@antv/g2plot/esm/plots/chord/index.js -var Chord = function(_super) { - __extends(Chord2, _super); - function Chord2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "chord"; - return _this; - } - Chord2.getDefaultOptions = function() { - return DEFAULT_OPTIONS33; - }; - Chord2.prototype.getDefaultOptions = function() { - return Chord2.getDefaultOptions(); - }; - Chord2.prototype.getSchemaAdaptor = function() { - return adaptor32; - }; - return Chord2; -}(Plot); - -// node_modules/@antv/g2plot/esm/utils/hierarchy/pack.js -var DEFAULT_OPTIONS34 = { - field: "value", - as: ["x", "y", "r"], - sort: function(a4, b10) { - return b10.value - a4.value; - } -}; -function pack(data3, options) { - options = mix({}, DEFAULT_OPTIONS34, options); - var as = options.as; - if (!is_array_default(as) || as.length !== 3) { - throw new TypeError('Invalid as: it must be an array with 3 strings (e.g. [ "x", "y", "r" ])!'); - } - var field6; - try { - field6 = getField(options); - } catch (e4) { - console.warn(e4); - } - var packLayout = function(data4) { - return pack_default().size(options.size).padding(options.padding)(hierarchy(data4).sum(function(d3) { - return d3[field6]; - }).sort(options.sort)); - }; - var root = packLayout(data3); - var x6 = as[0]; - var y5 = as[1]; - var r4 = as[2]; - root.each(function(node) { - node[x6] = node.x; - node[y5] = node.y; - node[r4] = node.r; - }); - return getAllNodes(root); -} - -// node_modules/@antv/g2plot/esm/plots/circle-packing/utils.js -function transformData9(options) { - var data3 = options.data, hierarchyConfig = options.hierarchyConfig, _a6 = options.rawFields, rawFields = _a6 === void 0 ? [] : _a6, enableDrillDown = options.enableDrillDown; - var nodes = pack(data3, __assign(__assign({}, hierarchyConfig), { field: "value", as: ["x", "y", "r"] })); - var result = []; - nodes.forEach(function(node) { - var _a7; - var path = node.data.name; - var ancestorNode = __assign({}, node); - while (ancestorNode.depth > 1) { - path = ((_a7 = ancestorNode.parent.data) === null || _a7 === void 0 ? void 0 : _a7.name) + " / " + path; - ancestorNode = ancestorNode.parent; - } - if (enableDrillDown && node.depth > 2) { - return null; - } - var nodeInfo = deepAssign({}, node.data, __assign(__assign(__assign({}, pick(node.data, rawFields)), { path }), node)); - nodeInfo.ext = hierarchyConfig; - nodeInfo[HIERARCHY_DATA_TRANSFORM_PARAMS] = { hierarchyConfig, rawFields, enableDrillDown }; - result.push(nodeInfo); - }); - return result; -} -function resolvePaddingForCircle(padding3, appendPadding, containerSize) { - var tempPadding = resolveAllPadding([padding3, appendPadding]); - var top = tempPadding[0], right2 = tempPadding[1], bottom = tempPadding[2], left2 = tempPadding[3]; - var width2 = containerSize.width, height = containerSize.height; - var wSize = width2 - (left2 + right2); - var hSize = height - (top + bottom); - var minSize = Math.min(wSize, hSize); - var restWidthPadding = (wSize - minSize) / 2; - var restHeightPadding = (hSize - minSize) / 2; - var finalTop = top + restHeightPadding; - var finalRight = right2 + restWidthPadding; - var finalBottom = bottom + restHeightPadding; - var finalLeft = left2 + restWidthPadding; - var finalPadding = [finalTop, finalRight, finalBottom, finalLeft]; - var finalSize = minSize < 0 ? 0 : minSize; - return { finalPadding, finalSize }; -} - -// node_modules/@antv/g2plot/esm/plots/circle-packing/constant.js -var RAW_FIELDS2 = ["x", "y", "r", "name", "value", "path", "depth"]; -var DEFAULT_OPTIONS35 = { - colorField: "name", - autoFit: true, - pointStyle: { - lineWidth: 0, - stroke: "#fff" - }, - legend: false, - hierarchyConfig: { - size: [1, 1], - padding: 0 - }, - label: { - fields: ["name"], - layout: { - type: "limit-in-shape" - } - }, - tooltip: { - showMarkers: false, - showTitle: false - }, - drilldown: { enabled: false } -}; - -// node_modules/@antv/g2plot/esm/plots/circle-packing/adaptor.js -function defaultOptions7(params) { - var chart = params.chart; - var diameter = Math.min(chart.viewBBox.width, chart.viewBBox.height); - return deepAssign({ - options: { - size: function(_a6) { - var r4 = _a6.r; - return r4 * diameter; - } - } - }, params); -} -function padding2(params) { - var options = params.options, chart = params.chart; - var containerSize = chart.viewBBox; - var padding3 = options.padding, appendPadding = options.appendPadding, drilldown = options.drilldown; - var tempAppendPadding = appendPadding; - if (drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled) { - var appendPaddingByDrilldown = getAdjustAppendPadding(chart.appendPadding, get_default(drilldown, ["breadCrumb", "position"])); - tempAppendPadding = resolveAllPadding([appendPaddingByDrilldown, appendPadding]); - } - var finalPadding = resolvePaddingForCircle(padding3, tempAppendPadding, containerSize).finalPadding; - chart.padding = finalPadding; - chart.appendPadding = 0; - return params; -} -function geometry34(params) { - var chart = params.chart, options = params.options; - var padding3 = chart.padding, appendPadding = chart.appendPadding; - var color4 = options.color, colorField = options.colorField, pointStyle = options.pointStyle, hierarchyConfig = options.hierarchyConfig, sizeField = options.sizeField, _a6 = options.rawFields, rawFields = _a6 === void 0 ? [] : _a6, drilldown = options.drilldown; - var data3 = transformData9({ - data: options.data, - hierarchyConfig, - enableDrillDown: drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled, - rawFields - }); - chart.data(data3); - var containerSize = chart.viewBBox; - var finalSize = resolvePaddingForCircle(padding3, appendPadding, containerSize).finalSize; - var circleSize = function(_a7) { - var r4 = _a7.r; - return r4 * finalSize; - }; - if (sizeField) { - circleSize = function(d3) { - return d3[sizeField] * finalSize; - }; - } - point(deepAssign({}, params, { - options: { - xField: "x", - yField: "y", - seriesField: colorField, - sizeField, - rawFields: __spreadArrays(RAW_FIELDS2, rawFields), - point: { - color: color4, - style: pointStyle, - shape: "circle", - size: circleSize - } - } - })); - return params; -} -function meta22(params) { - return flow(scale7({}, { - x: { min: 0, max: 1, minLimit: 0, maxLimit: 1, nice: true }, - y: { min: 0, max: 1, minLimit: 0, maxLimit: 1, nice: true } - }))(params); -} -function tooltip9(params) { - var chart = params.chart, options = params.options; - var tooltip10 = options.tooltip; - if (tooltip10 === false) { - chart.tooltip(false); - } else { - var tooltipOptions = tooltip10; - if (!get_default(tooltip10, "fields")) { - tooltipOptions = deepAssign({}, { - customItems: function(items) { - return items.map(function(item) { - var scales = get_default(chart.getOptions(), "scales"); - var nameFormatter = get_default(scales, ["name", "formatter"], function(v3) { - return v3; - }); - var valueFormatter = get_default(scales, ["value", "formatter"], function(v3) { - return v3; - }); - return __assign(__assign({}, item), { name: nameFormatter(item.data.name), value: valueFormatter(item.data.value) }); - }); - } - }, tooltipOptions); - } - chart.tooltip(tooltipOptions); - } - return params; -} -function axis21(params) { - var chart = params.chart; - chart.axis(false); - return params; -} -function adaptorInteraction3(options) { - var drilldown = options.drilldown, _a6 = options.interactions, interactions = _a6 === void 0 ? [] : _a6; - if (drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled) { - return deepAssign({}, options, { - interactions: __spreadArrays(interactions, [ - { - type: "drill-down", - cfg: { drillDownConfig: drilldown, transformData: transformData9, enableDrillDown: true } - } - ]) - }); - } - return options; -} -function interaction7(params) { - var chart = params.chart, options = params.options; - interaction({ - chart, - options: adaptorInteraction3(options) - }); - return params; -} -function adaptor33(params) { - return flow(pattern("pointStyle"), defaultOptions7, padding2, theme, meta22, geometry34, axis21, legend, tooltip9, interaction7, animation, annotation())(params); -} - -// node_modules/@antv/g2plot/esm/plots/circle-packing/index.js -var CirclePacking = function(_super) { - __extends(CirclePacking2, _super); - function CirclePacking2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "circle-packing"; - return _this; - } - CirclePacking2.getDefaultOptions = function() { - return DEFAULT_OPTIONS35; - }; - CirclePacking2.prototype.getDefaultOptions = function() { - return CirclePacking2.getDefaultOptions(); - }; - CirclePacking2.prototype.getSchemaAdaptor = function() { - return adaptor33; - }; - CirclePacking2.prototype.triggerResize = function() { - if (!this.chart.destroyed) { - this.chart.forceFit(); - this.chart.clear(); - this.execAdaptor(); - this.chart.render(true); - } - }; - return CirclePacking2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plugin/index.js -var P3 = function(_super) { - __extends(P4, _super); - function P4(container2, options, adaptor36, defaultOptions8) { - var _this = _super.call(this, container2, deepAssign({}, defaultOptions8, options)) || this; - _this.type = "g2-plot"; - _this.defaultOptions = defaultOptions8; - _this.adaptor = adaptor36; - return _this; - } - P4.prototype.getDefaultOptions = function() { - return this.defaultOptions; - }; - P4.prototype.getSchemaAdaptor = function() { - return this.adaptor; - }; - return P4; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/mix/utils.js -var PLOT_ADAPTORS = { - line: adaptor, - pie: adaptor5, - column: adaptor3, - bar: adaptor4, - area: adaptor2, - gauge: adaptor26, - "tiny-line": adaptor12, - "tiny-column": adaptor13, - "tiny-area": adaptor11, - "ring-progress": adaptor16, - progress: adaptor15, - scatter: adaptor8, - histogram: adaptor14, - funnel: adaptor22 -}; -var PLOT_CONSTRUCTOR = { - line: Line6, - pie: Pie, - column: Column, - bar: Bar, - area: Area2, - gauge: Gauge, - "tiny-line": TinyLine, - "tiny-column": TinyColumn, - "tiny-area": TinyArea, - "ring-progress": RingProgress, - progress: Progress, - scatter: Scatter, - histogram: Histogram, - funnel: Funnel -}; -var DEFAULT_OPTIONS_MAP = { - pie: { label: false }, - column: { tooltip: { showMarkers: false } }, - bar: { tooltip: { showMarkers: false } } -}; -function execPlotAdaptor(plot, view, options) { - var cls = PLOT_CONSTRUCTOR[plot]; - if (!cls) { - console.error("could not find " + plot + " plot"); - return; - } - var module2 = PLOT_ADAPTORS[plot]; - module2({ - chart: view, - options: deepAssign({}, cls.getDefaultOptions(), get_default(DEFAULT_OPTIONS_MAP, plot, {}), options) - }); -} - -// node_modules/@antv/g2plot/esm/plots/mix/adaptor.js -function multiView(params) { - var chart = params.chart, options = params.options; - var views = options.views, legend18 = options.legend; - each_default(views, function(v3) { - var region = v3.region, data3 = v3.data, meta23 = v3.meta, axes = v3.axes, coordinate11 = v3.coordinate, interactions = v3.interactions, annotations = v3.annotations, tooltip10 = v3.tooltip, geometries = v3.geometries; - var viewOfG2 = chart.createView({ - region - }); - viewOfG2.data(data3); - var scales = {}; - if (axes) { - each_default(axes, function(axis22, field6) { - scales[field6] = pick(axis22, AXIS_META_CONFIG_KEYS); - }); - } - scales = deepAssign({}, meta23, scales); - viewOfG2.scale(scales); - if (!axes) { - viewOfG2.axis(false); - } else { - each_default(axes, function(axis22, field6) { - viewOfG2.axis(field6, axis22); - }); - } - viewOfG2.coordinate(coordinate11); - each_default(geometries, function(geometry35) { - var ext = geometry({ - chart: viewOfG2, - options: geometry35 - }).ext; - var adjust4 = geometry35.adjust; - if (adjust4) { - ext.geometry.adjust(adjust4); - } - }); - each_default(interactions, function(interaction8) { - if (interaction8.enable === false) { - viewOfG2.removeInteraction(interaction8.type); - } else { - viewOfG2.interaction(interaction8.type, interaction8.cfg); - } - }); - each_default(annotations, function(annotation4) { - viewOfG2.annotation()[annotation4.type](__assign({}, annotation4)); - }); - if (typeof v3.animation === "boolean") { - viewOfG2.animate(false); - } else { - viewOfG2.animate(true); - each_default(viewOfG2.geometries, function(g4) { - g4.animate(v3.animation); - }); - } - if (tooltip10) { - viewOfG2.interaction("tooltip"); - viewOfG2.tooltip(tooltip10); - } - }); - if (!legend18) { - chart.legend(false); - } else { - each_default(legend18, function(l4, field6) { - chart.legend(field6, l4); - }); - } - chart.tooltip(options.tooltip); - return params; -} -function multiPlot(params) { - var chart = params.chart, options = params.options; - var plots = options.plots; - each_default(plots, function(plot) { - var type2 = plot.type, region = plot.region, _a6 = plot.options, options2 = _a6 === void 0 ? {} : _a6; - var tooltip10 = options2.tooltip; - var viewOfG2 = chart.createView(__assign({ region }, pick(options2, PLOT_CONTAINER_OPTIONS))); - if (tooltip10) { - viewOfG2.interaction("tooltip"); - } - execPlotAdaptor(type2, viewOfG2, options2); - }); - return params; -} -function adaptor34(params) { - return flow(animation, multiView, multiPlot, interaction, animation, theme, tooltip)(params); -} - -// node_modules/@antv/g2plot/esm/plots/mix/interactions/utils.js -function getElementValue2(element, field6) { - var model = element.getModel(); - var record = model.data; - var value2; - if (is_array_default(record)) { - value2 = record[0][field6]; - } else { - value2 = record[field6]; - } - return value2; -} -function clearHighlight2(view) { - var elements = getAllElements(view); - each_default(elements, function(el) { - if (el.hasState("active")) { - el.setState("active", false); - } - if (el.hasState("selected")) { - el.setState("selected", false); - } - if (el.hasState("inactive")) { - el.setState("inactive", false); - } - }); -} - -// node_modules/@antv/g2plot/esm/plots/mix/interactions/association.js -var Association = function(_super) { - __extends(Association2, _super); - function Association2() { - return _super !== null && _super.apply(this, arguments) || this; - } - Association2.prototype.getAssociationItems = function(views, params) { - var _a6; - var event = this.context.event; - var _b = params || {}, linkField = _b.linkField, dim = _b.dim; - var items = []; - if ((_a6 = event.data) === null || _a6 === void 0 ? void 0 : _a6.data) { - var data_1 = event.data.data; - each_default(views, function(v3) { - var _a7, _b2; - var field6 = linkField; - if (dim === "x") { - field6 = v3.getXScale().field; - } else if (dim === "y") { - field6 = (_a7 = v3.getYScales().find(function(s4) { - return s4.field === field6; - })) === null || _a7 === void 0 ? void 0 : _a7.field; - } else if (!field6) { - field6 = (_b2 = v3.getGroupScales()[0]) === null || _b2 === void 0 ? void 0 : _b2.field; - } - if (!field6) { - return; - } - var elements = map_default(getAllElements(v3), function(ele) { - var active = false; - var inactive = false; - var dataValue = is_array_default(data_1) ? get_default(data_1[0], field6) : get_default(data_1, field6); - if (getElementValue2(ele, field6) === dataValue) { - active = true; - } else { - inactive = true; - } - return { element: ele, view: v3, active, inactive }; - }); - items.push.apply(items, elements); - }); - } - return items; - }; - Association2.prototype.showTooltip = function(params) { - var siblings = getSiblingViews(this.context.view); - var elements = this.getAssociationItems(siblings, params); - each_default(elements, function(ele) { - if (ele.active) { - var box2 = ele.element.shape.getCanvasBBox(); - ele.view.showTooltip({ x: box2.minX + box2.width / 2, y: box2.minY + box2.height / 2 }); - } - }); - }; - Association2.prototype.hideTooltip = function() { - var siblings = getSiblingViews(this.context.view); - each_default(siblings, function(sibling) { - sibling.hideTooltip(); - }); - }; - Association2.prototype.active = function(params) { - var views = getViews(this.context.view); - var items = this.getAssociationItems(views, params); - each_default(items, function(item) { - var active = item.active, element = item.element; - if (active) { - element.setState("active", true); - } - }); - }; - Association2.prototype.selected = function(params) { - var views = getViews(this.context.view); - var items = this.getAssociationItems(views, params); - each_default(items, function(item) { - var active = item.active, element = item.element; - if (active) { - element.setState("selected", true); - } - }); - }; - Association2.prototype.highlight = function(params) { - var views = getViews(this.context.view); - var items = this.getAssociationItems(views, params); - each_default(items, function(item) { - var inactive = item.inactive, element = item.element; - if (inactive) { - element.setState("inactive", true); - } - }); - }; - Association2.prototype.reset = function() { - var views = getViews(this.context.view); - each_default(views, function(v3) { - clearHighlight2(v3); - }); - }; - return Association2; -}(base_default12); -registerAction("association", Association); -registerInteraction("association-active", { - start: [{ trigger: "element:mouseenter", action: "association:active" }], - end: [{ trigger: "element:mouseleave", action: "association:reset" }] -}); -registerInteraction("association-selected", { - start: [{ trigger: "element:mouseenter", action: "association:selected" }], - end: [{ trigger: "element:mouseleave", action: "association:reset" }] -}); -registerInteraction("association-highlight", { - start: [{ trigger: "element:mouseenter", action: "association:highlight" }], - end: [{ trigger: "element:mouseleave", action: "association:reset" }] -}); -registerInteraction("association-tooltip", { - start: [{ trigger: "element:mousemove", action: "association:showTooltip" }], - end: [{ trigger: "element:mouseleave", action: "association:hideTooltip" }] -}); - -// node_modules/@antv/g2plot/esm/plots/mix/index.js -var Mix = function(_super) { - __extends(Mix2, _super); - function Mix2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "mix"; - return _this; - } - Mix2.prototype.getSchemaAdaptor = function() { - return adaptor34; - }; - return Mix2; -}(Plot); - -// node_modules/@antv/g2plot/esm/plots/facet/utils.js -function execViewAdaptor(viewOfG2, options) { - var data3 = options.data, coordinate11 = options.coordinate, interactions = options.interactions, annotations = options.annotations, animation7 = options.animation, tooltip10 = options.tooltip, axes = options.axes, meta23 = options.meta, geometries = options.geometries; - if (data3) { - viewOfG2.data(data3); - } - var scales = {}; - if (axes) { - each_default(axes, function(axis22, field6) { - scales[field6] = pick(axis22, AXIS_META_CONFIG_KEYS); - }); - } - scales = deepAssign({}, meta23, scales); - viewOfG2.scale(scales); - if (coordinate11) { - viewOfG2.coordinate(coordinate11); - } - if (axes === false) { - viewOfG2.axis(false); - } else { - each_default(axes, function(axis22, field6) { - viewOfG2.axis(field6, axis22); - }); - } - each_default(geometries, function(geometry35) { - var ext = geometry({ - chart: viewOfG2, - options: geometry35 - }).ext; - var adjust4 = geometry35.adjust; - if (adjust4) { - ext.geometry.adjust(adjust4); - } - }); - each_default(interactions, function(interaction8) { - if (interaction8.enable === false) { - viewOfG2.removeInteraction(interaction8.type); - } else { - viewOfG2.interaction(interaction8.type, interaction8.cfg); - } - }); - each_default(annotations, function(annotation4) { - viewOfG2.annotation()[annotation4.type](__assign({}, annotation4)); - }); - if (typeof animation7 === "boolean") { - viewOfG2.animate(false); - } else { - viewOfG2.animate(true); - each_default(viewOfG2.geometries, function(g4) { - g4.animate(animation7); - }); - } - if (tooltip10) { - viewOfG2.interaction("tooltip"); - viewOfG2.tooltip(tooltip10); - } else if (tooltip10 === false) { - viewOfG2.removeInteraction("tooltip"); - } -} - -// node_modules/@antv/g2plot/esm/plots/facet/adaptor.js -function facetAdaptor(params) { - var chart = params.chart, options = params.options; - var facetType = options.type, data3 = options.data, fields = options.fields, eachView = options.eachView; - var restFacetCfg = omit_default(options, [ - "type", - "data", - "fields", - "eachView", - "axes", - "meta", - "tooltip", - "coordinate", - "theme", - "legend", - "interactions", - "annotations" - ]); - chart.data(data3); - chart.facet(facetType, __assign(__assign({}, restFacetCfg), { fields, eachView: function(viewOfG2, facet) { - var viewOptions = eachView(viewOfG2, facet); - if (viewOptions.geometries) { - execViewAdaptor(viewOfG2, viewOptions); - } else { - var plot = viewOptions; - var plotOptions = plot.options; - if (plotOptions.tooltip) { - viewOfG2.interaction("tooltip"); - } - execPlotAdaptor(plot.type, viewOfG2, plotOptions); - } - } })); - return params; -} -function component(params) { - var chart = params.chart, options = params.options; - var axes = options.axes, meta23 = options.meta, tooltip10 = options.tooltip, coordinate11 = options.coordinate, theme4 = options.theme, legend18 = options.legend, interactions = options.interactions, annotations = options.annotations; - var scales = {}; - if (axes) { - each_default(axes, function(axis22, field6) { - scales[field6] = pick(axis22, AXIS_META_CONFIG_KEYS); - }); - } - scales = deepAssign({}, meta23, scales); - chart.scale(scales); - chart.coordinate(coordinate11); - if (!axes) { - chart.axis(false); - } else { - each_default(axes, function(axis22, field6) { - chart.axis(field6, axis22); - }); - } - if (tooltip10) { - chart.interaction("tooltip"); - chart.tooltip(tooltip10); - } else if (tooltip10 === false) { - chart.removeInteraction("tooltip"); - } - chart.legend(legend18); - if (theme4) { - chart.theme(theme4); - } - each_default(interactions, function(interaction8) { - if (interaction8.enable === false) { - chart.removeInteraction(interaction8.type); - } else { - chart.interaction(interaction8.type, interaction8.cfg); - } - }); - each_default(annotations, function(annotation4) { - chart.annotation()[annotation4.type](__assign({}, annotation4)); - }); - return params; -} -function adaptor35(params) { - return flow(theme, facetAdaptor, component)(params); -} - -// node_modules/@antv/g2plot/esm/plots/facet/constant.js -var DEFAULT_OPTIONS36 = { - title: { - style: { - fontSize: 12, - fill: "rgba(0,0,0,0.65)" - } - }, - rowTitle: { - style: { - fontSize: 12, - fill: "rgba(0,0,0,0.65)" - } - }, - columnTitle: { - style: { - fontSize: 12, - fill: "rgba(0,0,0,0.65)" - } - } -}; - -// node_modules/@antv/g2plot/esm/plots/facet/index.js -var Facet2 = function(_super) { - __extends(Facet3, _super); - function Facet3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "area"; - return _this; - } - Facet3.getDefaultOptions = function() { - return DEFAULT_OPTIONS36; - }; - Facet3.prototype.getDefaultOptions = function() { - return Facet3.getDefaultOptions(); - }; - Facet3.prototype.getSchemaAdaptor = function() { - return adaptor35; - }; - return Facet3; -}(Plot); - -// node_modules/@antv/g2plot/esm/lab.js -var Stage; -(function(Stage2) { - Stage2["DEV"] = "DEV"; - Stage2["BETA"] = "BETA"; - Stage2["STABLE"] = "STABLE"; -})(Stage || (Stage = {})); -function notice(stage, plotType) { - console.warn(stage === Stage.DEV ? "Plot '" + plotType + "' is in DEV stage, just give us issues." : stage === Stage.BETA ? "Plot '" + plotType + "' is in BETA stage, DO NOT use it in production env." : stage === Stage.STABLE ? "Plot '" + plotType + `' is in STABLE stage, import it by "import { ` + plotType + ` } from '@antv/g2plot'".` : "invalid Stage type."); -} -var Lab = function() { - function Lab2() { - } - Object.defineProperty(Lab2, "MultiView", { - get: function() { - notice(Stage.STABLE, "MultiView"); - return Mix; - }, - enumerable: false, - configurable: true - }); - return Lab2; -}(); - -// node_modules/@antv/g2plot/esm/index.js -registerLocale("en-US", EN_US_LOCALE); -registerLocale("zh-CN", ZH_CN_LOCALE); -var adaptors = { scale: scale7, legend, tooltip, annotation, interaction, theme, animation }; - -// node_modules/@ant-design/charts/es/util/createNode.js -var createNode = function(children, type2) { - var mountPoint = document.createElement("div"); - if (type2 === "tooltip") { - mountPoint.className = "g2-tooltip"; - } - compat_module_default.render(children, mountPoint); - return mountPoint; -}; -var createNode_default = createNode; - -// node_modules/@ant-design/charts/es/util/utils.js -var isType3 = function(value2, type2) { - var toString7 = {}.toString; - return toString7.call(value2) === "[object " + type2 + "]"; -}; -var clone8 = function(source) { - if (!source) { - return source; - } - var target = {}; - for (var k4 in source) { - target[k4] = source[k4]; - } - return target; -}; -var getType2 = function(n3) { - return Object.prototype.toString.call(n3).slice(8, -1); -}; -var deepClone = function(source) { - if (!source) { - return source; - } - var target = new source.constructor(); - for (var key in source) { - if (source.hasOwnProperty(key)) { - target[key] = getType2(source[key]) === "Object" || getType2(source[key]) === "Array" ? deepClone(source[key]) : source[key]; - } - } - return target; -}; -var hasPath = function(source, path) { - var current = source; - for (var i4 = 0; i4 < path.length; i4 += 1) { - if (current === null || current === void 0 ? void 0 : current[path[i4]]) { - current = current[path[i4]]; - } else { - current = void 0; - break; - } - } - return current; -}; -var setPath = function(source, path, value2) { - if (!source) { - return source; - } - var o3 = source; - path.forEach(function(key, idx) { - if (idx < path.length - 1) { - o3 = o3[key]; - } else { - o3[key] = value2; - } - }); - return source; -}; - -// node_modules/@ant-design/charts/es/util/getChart.js -var getChart = function(chartRef, chart) { - if (!chartRef) { - return; - } - if (is_function_default(chartRef)) { - chartRef(chart); - } else { - chartRef.current = chart; - } -}; - -// node_modules/@ant-design/charts/es/hooks/useChart.js -var __assign4 = function() { - __assign4 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign4.apply(this, arguments); -}; -var __rest4 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -function useInit(ChartClass, config) { - var chart = s3(); - var chartOptions = s3(); - var container2 = s3(null); - var onReady = config.onReady, onEvent = config.onEvent, chartRef = config.chartRef; - var toDataURL = function(type2, encoderOptions) { - var _a6; - if (type2 === void 0) { - type2 = "image/png"; - } - return (_a6 = chart.current) === null || _a6 === void 0 ? void 0 : _a6.chart.canvas.cfg.el.toDataURL(type2, encoderOptions); - }; - var downloadImage = function(name, type2, encoderOptions) { - var _a6; - if (name === void 0) { - name = "download"; - } - if (type2 === void 0) { - type2 = "image/png"; - } - var imageName = name; - if (name.indexOf(".") === -1) { - imageName = name + "." + type2.split("/")[1]; - } - var base64 = (_a6 = chart.current) === null || _a6 === void 0 ? void 0 : _a6.chart.canvas.cfg.el.toDataURL(type2, encoderOptions); - var a4 = document.createElement("a"); - a4.href = base64; - a4.download = imageName; - document.body.appendChild(a4); - a4.click(); - document.body.removeChild(a4); - a4 = null; - return imageName; - }; - var reactDomToString = function(source, path, type2) { - var statisticCustomHtml = hasPath(source, path); - setPath(source, path, function() { - var arg = []; - for (var _i = 0; _i < arguments.length; _i++) { - arg[_i] = arguments[_i]; - } - var statisticDom = isType3(statisticCustomHtml, "Function") ? statisticCustomHtml.apply(void 0, arg) : statisticCustomHtml; - if (isType3(statisticDom, "String") || isType3(statisticDom, "Number") || isType3(statisticDom, "HTMLDivElement")) { - return statisticDom; - } - return createNode_default(statisticDom, type2); - }); - }; - var processConfig = function() { - if (hasPath(config, ["statistic", "content", "customHtml"])) { - reactDomToString(config, ["statistic", "content", "customHtml"]); - } - if (hasPath(config, ["statistic", "title", "customHtml"])) { - reactDomToString(config, ["statistic", "title", "customHtml"]); - } - if (typeof config.tooltip === "object") { - if (hasPath(config, ["tooltip", "container"])) { - reactDomToString(config, ["tooltip", "container"], "tooltip"); - } - if (hasPath(config, ["tooltip", "customContent"])) { - reactDomToString(config, ["tooltip", "customContent"], "tooltip"); - } - } - }; - y2(function() { - if (chart.current && !is_equal_default(chartOptions.current, config)) { - var changeData = false; - if (chartOptions.current) { - var _a6 = chartOptions.current, currentData = _a6.data, currentValue = _a6.value, currentPercent = _a6.percent, currentConfig = __rest4(_a6, ["data", "value", "percent"]); - var inputData = config.data, inputValue = config.value, inputPercent = config.percent, inputConfig = __rest4(config, ["data", "value", "percent"]); - changeData = is_equal_default(currentConfig, inputConfig); - } - if (changeData) { - var changeType_1 = "data"; - var typeMaps = ["percent"]; - var currentKeys_1 = Object.keys(config); - typeMaps.forEach(function(type2) { - if (currentKeys_1.includes(type2)) { - changeType_1 = type2; - } - }); - chart.current.changeData((config === null || config === void 0 ? void 0 : config[changeType_1]) || []); - } else { - processConfig(); - chart.current.update(config); - } - chartOptions.current = deepClone(config); - } - }, [config]); - y2(function() { - if (!container2.current) { - return function() { - return null; - }; - } - processConfig(); - var chartInstance = new ChartClass(container2.current, __assign4({}, config)); - ChartClass.prototype.toDataURL = function(type2, encoderOptions) { - return toDataURL(type2, encoderOptions); - }; - ChartClass.prototype.downloadImage = function(name, type2, encoderOptions) { - return downloadImage(name, type2, encoderOptions); - }; - chartInstance.render(); - if (!chartOptions.current) { - chartOptions.current = deepClone(config); - } - chart.current = clone8(chartInstance); - if (onReady) { - onReady(chartInstance); - } - getChart(chartRef, chart.current); - var handler = function(event) { - if (onEvent) { - onEvent(chartInstance, event); - } - }; - chartInstance.on("*", handler); - return function() { - if (chart.current) { - chart.current.destroy(); - chart.current.off("*", handler); - chart.current = void 0; - } - }; - }, []); - return { - chart, - container: container2 - }; -} - -// node_modules/@ant-design/charts/es/errorBoundary/index.js -var __extends4 = function() { - var extendStatics = function(d3, b10) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - }; - return extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var ErrorBoundary = function(_super) { - __extends4(ErrorBoundary3, _super); - function ErrorBoundary3() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.state = { - hasError: false - }; - _this.renderError = function(e4) { - var errorTemplate = _this.props.errorTemplate; - switch (e4) { - default: - return errorTemplate && typeof errorTemplate === "function" ? errorTemplate(e4) : compat_module_default.createElement("h5", null, "\u7EC4\u4EF6\u51FA\u9519\u4E86\uFF0C\u8BF7\u6838\u67E5\u540E\u91CD\u8BD5\uFF1A ", e4.message); - } - }; - return _this; - } - ErrorBoundary3.getDerivedStateFromError = function(error) { - return { hasError: true, error }; - }; - ErrorBoundary3.getDerivedStateFromProps = function(nextProps, state2) { - if (state2.children !== nextProps.children) { - return { - children: nextProps.children, - hasError: false, - error: void 0 - }; - } - return null; - }; - ErrorBoundary3.prototype.render = function() { - if (this.state.hasError) { - return this.renderError(this.state.error); - } - return compat_module_default.createElement(d, null, this.props.children); - }; - return ErrorBoundary3; -}(compat_module_default.Component); -var errorBoundary_default = ErrorBoundary; - -// node_modules/react-content-loader/dist/react-content-loader.es.js -var __assign5 = function() { - __assign5 = Object.assign || function __assign30(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign5.apply(this, arguments); -}; -function __rest5(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -} -var uid = function() { - return Math.random().toString(36).substring(6); -}; -var SVG = function(_a6) { - var animate = _a6.animate, backgroundColor = _a6.backgroundColor, backgroundOpacity = _a6.backgroundOpacity, baseUrl = _a6.baseUrl, children = _a6.children, foregroundColor = _a6.foregroundColor, foregroundOpacity = _a6.foregroundOpacity, gradientRatio = _a6.gradientRatio, uniqueKey = _a6.uniqueKey, interval3 = _a6.interval, rtl = _a6.rtl, speed = _a6.speed, style = _a6.style, title = _a6.title, props = __rest5(_a6, ["animate", "backgroundColor", "backgroundOpacity", "baseUrl", "children", "foregroundColor", "foregroundOpacity", "gradientRatio", "uniqueKey", "interval", "rtl", "speed", "style", "title"]); - var fixedId = uniqueKey || uid(); - var idClip = fixedId + "-diff"; - var idGradient = fixedId + "-animated-diff"; - var idAria = fixedId + "-aria"; - var rtlStyle = rtl ? { transform: "scaleX(-1)" } : null; - var keyTimes = "0; " + interval3 + "; 1"; - var dur = speed + "s"; - return v("svg", __assign5({ "aria-labelledby": idAria, role: "img", style: __assign5(__assign5({}, style), rtlStyle) }, props), title ? v("title", { id: idAria }, title) : null, v("rect", { role: "presentation", x: "0", y: "0", width: "100%", height: "100%", clipPath: "url(" + baseUrl + "#" + idClip + ")", style: { fill: "url(" + baseUrl + "#" + idGradient + ")" } }), v("defs", { role: "presentation" }, v("clipPath", { id: idClip }, children), v("linearGradient", { id: idGradient }, v("stop", { offset: "0%", stopColor: backgroundColor, stopOpacity: backgroundOpacity }, animate && v("animate", { attributeName: "offset", values: -gradientRatio + "; " + -gradientRatio + "; 1", keyTimes, dur, repeatCount: "indefinite" })), v("stop", { offset: "50%", stopColor: foregroundColor, stopOpacity: foregroundOpacity }, animate && v("animate", { attributeName: "offset", values: -gradientRatio / 2 + "; " + -gradientRatio / 2 + "; " + (1 + gradientRatio / 2), keyTimes, dur, repeatCount: "indefinite" })), v("stop", { offset: "100%", stopColor: backgroundColor, stopOpacity: backgroundOpacity }, animate && v("animate", { attributeName: "offset", values: "0; 0; " + (1 + gradientRatio), keyTimes, dur, repeatCount: "indefinite" }))))); -}; -SVG.defaultProps = { - animate: true, - backgroundColor: "#f5f6f7", - backgroundOpacity: 1, - baseUrl: "", - foregroundColor: "#eee", - foregroundOpacity: 1, - gradientRatio: 2, - id: null, - interval: 0.25, - rtl: false, - speed: 1.2, - style: {}, - title: "Loading..." -}; -var ContentLoader = function(props) { - return props.children ? v(SVG, __assign5({}, props)) : v(ReactContentLoaderFacebook, __assign5({}, props)); -}; -var ReactContentLoaderFacebook = function(props) { - return v(ContentLoader, __assign5({ viewBox: "0 0 476 124" }, props), v("rect", { x: "48", y: "8", width: "88", height: "6", rx: "3" }), v("rect", { x: "48", y: "26", width: "52", height: "6", rx: "3" }), v("rect", { x: "0", y: "56", width: "410", height: "6", rx: "3" }), v("rect", { x: "0", y: "72", width: "380", height: "6", rx: "3" }), v("rect", { x: "0", y: "88", width: "178", height: "6", rx: "3" }), v("circle", { cx: "20", cy: "20", r: "20" })); -}; -var react_content_loader_es_default = ContentLoader; - -// node_modules/@ant-design/charts/es/util/createLoading.js -var ChartLoading = function(_a6) { - var loadingTemplate = _a6.loadingTemplate; - var renderLoading = function() { - if (loadingTemplate) { - return loadingTemplate; - } - return compat_module_default.createElement(react_content_loader_es_default, { viewBox: "0 0 400 180", width: 200, height: 90, speed: 1 }, compat_module_default.createElement("rect", { x: "20", y: "5", rx: "0", ry: "0", width: "1", height: "170" }), compat_module_default.createElement("rect", { x: "20", y: "175", rx: "0", ry: "0", width: "360", height: "1" }), compat_module_default.createElement("rect", { x: "40", y: "75", rx: "0", ry: "0", width: "35", height: "100" }), compat_module_default.createElement("rect", { x: "80", y: "125", rx: "0", ry: "0", width: "35", height: "50" }), compat_module_default.createElement("rect", { x: "120", y: "105", rx: "0", ry: "0", width: "35", height: "70" }), compat_module_default.createElement("rect", { x: "160", y: "35", rx: "0", ry: "0", width: "35", height: "140" }), compat_module_default.createElement("rect", { x: "200", y: "55", rx: "0", ry: "0", width: "35", height: "120" }), compat_module_default.createElement("rect", { x: "240", y: "15", rx: "0", ry: "0", width: "35", height: "160" }), compat_module_default.createElement("rect", { x: "280", y: "135", rx: "0", ry: "0", width: "35", height: "40" }), compat_module_default.createElement("rect", { x: "320", y: "85", rx: "0", ry: "0", width: "35", height: "90" })); - }; - return compat_module_default.createElement("div", { style: { - position: "absolute", - width: "100%", - height: "100%", - display: "flex", - alignItems: "center", - justifyContent: "center", - left: 0, - top: 0, - zIndex: 99, - backgroundColor: "#fff" - } }, renderLoading()); -}; -var createLoading_default = ChartLoading; - -// node_modules/@ant-design/charts/es/plots/area/index.js -var __rest6 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var AreaChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest6(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Area2, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var area_default2 = AreaChart; - -// node_modules/@ant-design/charts/es/plots/bar/index.js -var __rest7 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var BarChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest7(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Bar, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var bar_default = BarChart; - -// node_modules/@ant-design/charts/es/plots/bullet/index.js -var __rest8 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var BulletChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest8(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Bullet, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var bullet_default = BulletChart; - -// node_modules/@ant-design/charts/es/plots/column/index.js -var __rest9 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var ColumnChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest9(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Column, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var column_default = ColumnChart; - -// node_modules/@ant-design/charts/es/plots/funnel/index.js -var __rest10 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var FunnelChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest10(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Funnel, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var funnel_default = FunnelChart; - -// node_modules/@ant-design/charts/es/plots/histogram/index.js -var __rest11 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var HistogramChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest11(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Histogram, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var histogram_default = HistogramChart; - -// node_modules/@ant-design/charts/es/plots/line/index.js -var __rest12 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var LineChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest12(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Line6, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var line_default10 = LineChart; - -// node_modules/@ant-design/charts/es/plots/box/index.js -var __rest13 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var BoxChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest13(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Box, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var box_default = BoxChart; - -// node_modules/@ant-design/charts/es/plots/liquid/index.js -var __rest14 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var LiquidChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest14(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Liquid, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var liquid_default = LiquidChart; - -// node_modules/@ant-design/charts/es/plots/heatmap/index.js -var __rest15 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var HeatmapChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest15(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Heatmap2, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var heatmap_default2 = HeatmapChart; - -// node_modules/@ant-design/charts/es/plots/pie/index.js -var __rest16 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var PieChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest16(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Pie, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var pie_default2 = PieChart; - -// node_modules/@ant-design/charts/es/plots/gauge/index.js -var __rest17 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var GaugeChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest17(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Gauge, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var gauge_default = GaugeChart; - -// node_modules/@ant-design/charts/es/plots/progress/index.js -var __rest18 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var ProgressChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest18(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Progress, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var progress_default = ProgressChart; - -// node_modules/@ant-design/charts/es/plots/radar/index.js -var __rest19 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var RadarChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest19(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Radar, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var radar_default = RadarChart; - -// node_modules/@ant-design/charts/es/plots/ringProgress/index.js -var __rest20 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var RingProgressChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest20(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(RingProgress, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var ringProgress_default = RingProgressChart; - -// node_modules/@ant-design/charts/es/plots/rose/index.js -var __rest21 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var RoseChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest21(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Rose, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var rose_default = RoseChart; - -// node_modules/@ant-design/charts/es/plots/chord/index.js -var __rest22 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var ChordChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest22(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Chord, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var chord_default = ChordChart; - -// node_modules/@ant-design/charts/es/plots/scatter/index.js -var __rest23 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var ScatterChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest23(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Scatter, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var scatter_default = ScatterChart; - -// node_modules/@ant-design/charts/es/plots/tinyArea/index.js -var __rest24 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var TinyAreaChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest24(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(TinyArea, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var tinyArea_default = TinyAreaChart; - -// node_modules/@ant-design/charts/es/plots/tinyColumn/index.js -var __rest25 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var TinyColumnChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest25(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(TinyColumn, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var tinyColumn_default = TinyColumnChart; - -// node_modules/@ant-design/charts/es/plots/dualAxes/index.js -var __rest26 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var DualAxesChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest26(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(DualAxes, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var dualAxes_default = DualAxesChart; - -// node_modules/@ant-design/charts/es/plots/tinyLine/index.js -var __rest27 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var TinyLineChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest27(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(TinyLine, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var tinyLine_default = TinyLineChart; - -// node_modules/@ant-design/charts/es/plots/waterfall/index.js -var __rest28 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var WaterfallChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest28(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Waterfall, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var waterfall_default = WaterfallChart; - -// node_modules/@ant-design/charts/es/plots/wordCloud/index.js -var __rest29 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var WordCloudChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest29(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(WordCloud, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var wordCloud_default = WordCloudChart; - -// node_modules/@ant-design/charts/es/plots/sunburst/index.js -var __rest30 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var SunburstChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest30(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Sunburst, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var sunburst_default = SunburstChart; - -// node_modules/@ant-design/charts/es/plots/stock/index.js -var __rest31 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var StockChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest31(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Stock, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var stock_default = StockChart; - -// node_modules/@ant-design/charts/es/plots/radialBar/index.js -var __rest32 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var RadialBarChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest32(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(RadialBar, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var radialBar_default = RadialBarChart; - -// node_modules/@ant-design/charts/es/plots/sankey/index.js -var __rest33 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var SankeyChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest33(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Sankey2, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var sankey_default = SankeyChart; - -// node_modules/@ant-design/charts/es/plots/treemap/index.js -var __rest34 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var TreemapChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest34(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Treemap, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var treemap_default2 = TreemapChart; - -// node_modules/@ant-design/charts/es/plots/violin/index.js -var __rest35 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var ViolinChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest35(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Violin2, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var violin_default2 = ViolinChart; - -// node_modules/@ant-design/charts/es/plots/facet/index.js -var __rest36 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var FacetChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest36(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Facet2, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var facet_default = FacetChart; - -// node_modules/@ant-design/charts/es/plots/mix/index.js -var __rest37 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var MultiViewChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest37(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Mix, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var mix_default = MultiViewChart; - -// node_modules/@ant-design/charts/es/plots/venn/index.js -var __rest38 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var VennChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest38(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(Venn, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var venn_default = VennChart; - -// node_modules/@ant-design/charts/es/plots/bidirectionalBar/index.js -var __rest39 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var BidirectionalBarChart = x3(function(props, ref) { - var _a6 = props.style, style = _a6 === void 0 ? { - height: "inherit" - } : _a6, className = props.className, loading = props.loading, loadingTemplate = props.loadingTemplate, errorTemplate = props.errorTemplate, rest = __rest39(props, ["style", "className", "loading", "loadingTemplate", "errorTemplate"]); - var _b = useInit(BidirectionalBar, rest), chart = _b.chart, container2 = _b.container; - _2(ref, function() { - return { - getChart: function() { - return chart.current; - } - }; - }); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}); -var bidirectionalBar_default = BidirectionalBarChart; - -// node_modules/@antv/g6-core/es/behavior/behaviorOption.js -var behaviorOption_default = { - getDefaultCfg: function getDefaultCfg() { - return {}; - }, - getEvents: function getEvents() { - return {}; - }, - updateCfg: function updateCfg(cfg) { - Object.assign(this, cfg); - return true; - }, - shouldBegin: function shouldBegin() { - return true; - }, - shouldUpdate: function shouldUpdate() { - return true; - }, - shouldEnd: function shouldEnd() { - return true; - }, - bind: function bind2(graph) { - var _this = this; - var events = this.events; - this.graph = graph; - if (this.type === "drag-canvas" || this.type === "brush-select" || this.type === "lasso-select") { - graph.get("canvas").set("draggable", true); - } - each_default(events, function(handler, event) { - graph.on(event, handler); - }); - document.addEventListener("visibilitychange", function() { - _this.keydown = false; - }); - }, - unbind: function unbind(graph) { - var events = this.events; - if (this.type === "drag-canvas" || this.type === "brush-select" || this.type === "lasso-select") { - graph.get("canvas").set("draggable", false); - } - each_default(events, function(handler, event) { - graph.off(event, handler); - }); - }, - get: function get(val) { - return this[val]; - }, - set: function set8(key, val) { - this[key] = val; - return this; - } -}; - -// node_modules/@antv/g6-core/es/behavior/behavior.js -var Behavior = function() { - function Behavior2() { - } - Behavior2.registerBehavior = function(type2, behavior) { - if (!behavior) { - throw new Error("please specify handler for this behavior: " + type2); - } - var prototype = clone_default(behaviorOption_default); - Object.assign(prototype, behavior); - var base = function base2(cfg) { - var _this = this; - Object.assign(this, this.getDefaultCfg(), cfg); - var events = this.getEvents(); - this.events = null; - var eventsToBind = {}; - if (events) { - each_default(events, function(handle, event) { - eventsToBind[event] = wrap_behavior_default(_this, handle); - }); - this.events = eventsToBind; - } - }; - base.prototype = prototype; - Behavior2.types[type2] = base; - }; - Behavior2.hasBehavior = function(type2) { - return !!Behavior2.types[type2]; - }; - Behavior2.getBehavior = function(type2) { - return Behavior2.types[type2]; - }; - Behavior2.types = {}; - return Behavior2; -}(); -var behavior_default = Behavior; - -// node_modules/@antv/g6-core/es/behavior/index.js -var behavior_default2 = behavior_default; - -// node_modules/@antv/algorithm/es/index.js -var es_exports = {}; -__export(es_exports, { - GADDI: () => gaddi_default, - Stack: () => stack_default2, - breadthFirstSearch: () => bfs_default, - connectedComponent: () => getConnectedComponents, - cosineSimilarity: () => cosine_similarity_default, - default: () => es_default, - depthFirstSearch: () => depthFirstSearch, - detectAllCycles: () => detectAllCycles, - detectAllDirectedCycle: () => detectAllDirectedCycle, - detectAllUndirectedCycle: () => detectAllUndirectedCycle, - detectCycle: () => detect_cycle_default, - detectDirectedCycle: () => detectDirectedCycle3, - dijkstra: () => dijkstra_default, - findAllPath: () => findAllPath, - findShortestPath: () => findShortestPath, - floydWarshall: () => floydWarshall_default, - getAdjMatrix: () => adjacent_matrix_default, - getDegree: () => degree_default, - getInDegree: () => getInDegree, - getNeighbors: () => getNeighbors, - getOutDegree: () => getOutDegree, - iLouvain: () => i_louvain_default, - kCore: () => k_core_default, - kMeans: () => k_means_default, - labelPropagation: () => label_propagation_default, - louvain: () => louvain_default, - minimumSpanningTree: () => mts_default, - nodesCosineSimilarity: () => nodes_cosine_similarity_default, - pageRank: () => pageRank_default -}); - -// node_modules/@antv/algorithm/es/adjacent-matrix.js -var adjMatrix = function adjMatrix2(graphData, directed) { - var nodes = graphData.nodes, edges = graphData.edges; - var matrix = []; - var nodeMap = {}; - if (!nodes) { - throw new Error("invalid nodes data!"); - } - if (nodes) { - nodes.forEach(function(node, i4) { - nodeMap[node.id] = i4; - var row = []; - matrix.push(row); - }); - } - if (edges) { - edges.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - var sIndex = nodeMap[source]; - var tIndex = nodeMap[target]; - if (!sIndex && sIndex !== 0 || !tIndex && tIndex !== 0) - return; - matrix[sIndex][tIndex] = 1; - if (!directed) { - matrix[tIndex][sIndex] = 1; - } - }); - } - return matrix; -}; -var adjacent_matrix_default = adjMatrix; - -// node_modules/@antv/algorithm/es/structs/linked-list.js -var defaultComparator = function defaultComparator2(a4, b10) { - if (a4 === b10) { - return true; - } - return false; -}; -var LinkedListNode = function() { - function LinkedListNode2(value2, next) { - if (next === void 0) { - next = null; - } - this.value = value2; - this.next = next; - } - LinkedListNode2.prototype.toString = function(callback) { - return callback ? callback(this.value) : "".concat(this.value); - }; - return LinkedListNode2; -}(); -var LinkedList = function() { - function LinkedList2(comparator) { - if (comparator === void 0) { - comparator = defaultComparator; - } - this.head = null; - this.tail = null; - this.compare = comparator; - } - LinkedList2.prototype.prepend = function(value2) { - var newNode = new LinkedListNode(value2, this.head); - this.head = newNode; - if (!this.tail) { - this.tail = newNode; - } - return this; - }; - LinkedList2.prototype.append = function(value2) { - var newNode = new LinkedListNode(value2); - if (!this.head) { - this.head = newNode; - this.tail = newNode; - return this; - } - this.tail.next = newNode; - this.tail = newNode; - return this; - }; - LinkedList2.prototype.delete = function(value2) { - if (!this.head) { - return null; - } - var deleteNode = null; - while (this.head && this.compare(this.head.value, value2)) { - deleteNode = this.head; - this.head = this.head.next; - } - var currentNode = this.head; - if (currentNode !== null) { - while (currentNode.next) { - if (this.compare(currentNode.next.value, value2)) { - deleteNode = currentNode.next; - currentNode.next = currentNode.next.next; - } else { - currentNode = currentNode.next; - } - } - } - if (this.compare(this.tail.value, value2)) { - this.tail = currentNode; - } - return deleteNode; - }; - LinkedList2.prototype.find = function(_a6) { - var _b = _a6.value, value2 = _b === void 0 ? void 0 : _b, _c = _a6.callback, callback = _c === void 0 ? void 0 : _c; - if (!this.head) { - return null; - } - var currentNode = this.head; - while (currentNode) { - if (callback && callback(currentNode.value)) { - return currentNode; - } - if (value2 !== void 0 && this.compare(currentNode.value, value2)) { - return currentNode; - } - currentNode = currentNode.next; - } - return null; - }; - LinkedList2.prototype.deleteTail = function() { - var deletedTail = this.tail; - if (this.head === this.tail) { - this.head = null; - this.tail = null; - return deletedTail; - } - var currentNode = this.head; - while (currentNode.next) { - if (!currentNode.next.next) { - currentNode.next = null; - } else { - currentNode = currentNode.next; - } - } - this.tail = currentNode; - return deletedTail; - }; - LinkedList2.prototype.deleteHead = function() { - if (!this.head) { - return null; - } - var deletedHead = this.head; - if (this.head.next) { - this.head = this.head.next; - } else { - this.head = null; - this.tail = null; - } - return deletedHead; - }; - LinkedList2.prototype.fromArray = function(values2) { - var _this = this; - values2.forEach(function(value2) { - return _this.append(value2); - }); - return this; - }; - LinkedList2.prototype.toArray = function() { - var nodes = []; - var currentNode = this.head; - while (currentNode) { - nodes.push(currentNode); - currentNode = currentNode.next; - } - return nodes; - }; - LinkedList2.prototype.reverse = function() { - var currentNode = this.head; - var prevNode = null; - var nextNode = null; - while (currentNode) { - nextNode = currentNode.next; - currentNode.next = prevNode; - prevNode = currentNode; - currentNode = nextNode; - } - this.tail = this.head; - this.head = prevNode; - }; - LinkedList2.prototype.toString = function(callback) { - if (callback === void 0) { - callback = void 0; - } - return this.toArray().map(function(node) { - return node.toString(callback); - }).toString(); - }; - return LinkedList2; -}(); -var linked_list_default = LinkedList; - -// node_modules/@antv/algorithm/es/structs/queue.js -var Queue = function() { - function Queue2() { - this.linkedList = new linked_list_default(); - } - Queue2.prototype.isEmpty = function() { - return !this.linkedList.head; - }; - Queue2.prototype.peek = function() { - if (!this.linkedList.head) { - return null; - } - return this.linkedList.head.value; - }; - Queue2.prototype.enqueue = function(value2) { - this.linkedList.append(value2); - }; - Queue2.prototype.dequeue = function() { - var removeHead = this.linkedList.deleteHead(); - return removeHead ? removeHead.value : null; - }; - Queue2.prototype.toString = function(callback) { - return this.linkedList.toString(callback); - }; - return Queue2; -}(); -var queue_default = Queue; - -// node_modules/@antv/algorithm/es/util.js -var getNeighbors = function getNeighbors2(nodeId, edges, type2) { - if (edges === void 0) { - edges = []; - } - var currentEdges = edges.filter(function(edge2) { - return edge2.source === nodeId || edge2.target === nodeId; - }); - if (type2 === "target") { - var neighhborsConverter_1 = function neighhborsConverter_12(edge2) { - return edge2.source === nodeId; - }; - return currentEdges.filter(neighhborsConverter_1).map(function(edge2) { - return edge2.target; - }); - } - if (type2 === "source") { - var neighhborsConverter_2 = function neighhborsConverter_22(edge2) { - return edge2.target === nodeId; - }; - return currentEdges.filter(neighhborsConverter_2).map(function(edge2) { - return edge2.source; - }); - } - var neighhborsConverter = function neighhborsConverter2(edge2) { - return edge2.source === nodeId ? edge2.target : edge2.source; - }; - return currentEdges.map(neighhborsConverter); -}; -var getOutEdgesNodeId = function getOutEdgesNodeId2(nodeId, edges) { - return edges.filter(function(edge2) { - return edge2.source === nodeId; - }); -}; -var getEdgesByNodeId = function getEdgesByNodeId2(nodeId, edges) { - return edges.filter(function(edge2) { - return edge2.source === nodeId || edge2.target === nodeId; - }); -}; -var uniqueId = function uniqueId2(index2) { - if (index2 === void 0) { - index2 = 0; - } - var random1 = "".concat(Math.random()).split(".")[1].substr(0, 5); - var random22 = "".concat(Math.random()).split(".")[1].substr(0, 5); - return "".concat(index2, "-").concat(random1).concat(random22); -}; - -// node_modules/@antv/algorithm/es/bfs.js -function initCallbacks(callbacks) { - if (callbacks === void 0) { - callbacks = {}; - } - var initiatedCallback = callbacks; - var stubCallback = function stubCallback2() { - }; - var allowTraversalCallback = function() { - var seen = {}; - return function(_a6) { - var next = _a6.next; - var id = next; - if (!seen[id]) { - seen[id] = true; - return true; - } - return false; - }; - }(); - initiatedCallback.allowTraversal = callbacks.allowTraversal || allowTraversalCallback; - initiatedCallback.enter = callbacks.enter || stubCallback; - initiatedCallback.leave = callbacks.leave || stubCallback; - return initiatedCallback; -} -var breadthFirstSearch = function breadthFirstSearch2(graphData, startNodeId, originalCallbacks, directed) { - if (directed === void 0) { - directed = true; - } - var callbacks = initCallbacks(originalCallbacks); - var nodeQueue = new queue_default(); - var _a6 = graphData.edges, edges = _a6 === void 0 ? [] : _a6; - nodeQueue.enqueue(startNodeId); - var previousNode = ""; - var _loop_1 = function _loop_12() { - var currentNode = nodeQueue.dequeue(); - callbacks.enter({ - current: currentNode, - previous: previousNode - }); - getNeighbors(currentNode, edges, directed ? "target" : void 0).forEach(function(nextNode) { - if (callbacks.allowTraversal({ - previous: previousNode, - current: currentNode, - next: nextNode - })) { - nodeQueue.enqueue(nextNode); - } - }); - callbacks.leave({ - current: currentNode, - previous: previousNode - }); - previousNode = currentNode; - }; - while (!nodeQueue.isEmpty()) { - _loop_1(); - } -}; -var bfs_default = breadthFirstSearch; - -// node_modules/@antv/algorithm/es/connected-component.js -var detectConnectedComponents = function detectConnectedComponents2(graphData) { - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - var allComponents = []; - var visited = {}; - var nodeStack = []; - var getComponent = function getComponent2(node2) { - nodeStack.push(node2); - visited[node2.id] = true; - var neighbors = getNeighbors(node2.id, edges); - var _loop_1 = function _loop_12(i6) { - var neighbor = neighbors[i6]; - if (!visited[neighbor]) { - var targetNode = nodes.filter(function(node3) { - return node3.id === neighbor; - }); - if (targetNode.length > 0) { - getComponent2(targetNode[0]); - } - } - }; - for (var i5 = 0; i5 < neighbors.length; ++i5) { - _loop_1(i5); - } - }; - for (var i4 = 0; i4 < nodes.length; i4++) { - var node = nodes[i4]; - if (!visited[node.id]) { - getComponent(node); - var component2 = []; - while (nodeStack.length > 0) { - component2.push(nodeStack.pop()); - } - allComponents.push(component2); - } - } - return allComponents; -}; -var detectStrongConnectComponents = function detectStrongConnectComponents2(graphData) { - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - var nodeStack = []; - var inStack = {}; - var indices = {}; - var lowLink = {}; - var allComponents = []; - var index2 = 0; - var getComponent = function getComponent2(node2) { - indices[node2.id] = index2; - lowLink[node2.id] = index2; - index2 += 1; - nodeStack.push(node2); - inStack[node2.id] = true; - var neighbors = getNeighbors(node2.id, edges, "target").filter(function(n3) { - return nodes.map(function(node3) { - return node3.id; - }).indexOf(n3) > -1; - }); - var _loop_2 = function _loop_22(i5) { - var targetNodeID = neighbors[i5]; - if (!indices[targetNodeID] && indices[targetNodeID] !== 0) { - var targetNode = nodes.filter(function(node3) { - return node3.id === targetNodeID; - }); - if (targetNode.length > 0) { - getComponent2(targetNode[0]); - } - lowLink[node2.id] = Math.min(lowLink[node2.id], lowLink[targetNodeID]); - } else if (inStack[targetNodeID]) { - lowLink[node2.id] = Math.min(lowLink[node2.id], indices[targetNodeID]); - } - }; - for (var i4 = 0; i4 < neighbors.length; i4++) { - _loop_2(i4); - } - if (lowLink[node2.id] === indices[node2.id]) { - var component2 = []; - while (nodeStack.length > 0) { - var tmpNode = nodeStack.pop(); - inStack[tmpNode.id] = false; - component2.push(tmpNode); - if (tmpNode === node2) - break; - } - if (component2.length > 0) { - allComponents.push(component2); - } - } - }; - for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { - var node = nodes_1[_i]; - if (!indices[node.id] && indices[node.id] !== 0) { - getComponent(node); - } - } - return allComponents; -}; -function getConnectedComponents(graphData, directed) { - if (directed) - return detectStrongConnectComponents(graphData); - return detectConnectedComponents(graphData); -} - -// node_modules/@antv/algorithm/es/degree.js -var degree2 = function degree3(graphData) { - var degrees = {}; - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - nodes.forEach(function(node) { - degrees[node.id] = { - degree: 0, - inDegree: 0, - outDegree: 0 - }; - }); - edges.forEach(function(edge2) { - degrees[edge2.source].degree++; - degrees[edge2.source].outDegree++; - degrees[edge2.target].degree++; - degrees[edge2.target].inDegree++; - }); - return degrees; -}; -var degree_default = degree2; -var getInDegree = function getInDegree2(graphData, nodeId) { - var nodeDegree = degree2(graphData); - if (nodeDegree[nodeId]) { - return degree2(graphData)[nodeId].inDegree; - } - return 0; -}; -var getOutDegree = function getOutDegree2(graphData, nodeId) { - var nodeDegree = degree2(graphData); - if (nodeDegree[nodeId]) { - return degree2(graphData)[nodeId].outDegree; - } - return 0; -}; - -// node_modules/@antv/algorithm/es/dfs.js -function initCallbacks2(callbacks) { - if (callbacks === void 0) { - callbacks = {}; - } - var initiatedCallback = callbacks; - var stubCallback = function stubCallback2() { - }; - var allowTraversalCallback = function() { - var seen = {}; - return function(_a6) { - var next = _a6.next; - if (!seen[next]) { - seen[next] = true; - return true; - } - return false; - }; - }(); - initiatedCallback.allowTraversal = callbacks.allowTraversal || allowTraversalCallback; - initiatedCallback.enter = callbacks.enter || stubCallback; - initiatedCallback.leave = callbacks.leave || stubCallback; - return initiatedCallback; -} -function depthFirstSearchRecursive(graphData, currentNode, previousNode, callbacks) { - callbacks.enter({ - current: currentNode, - previous: previousNode - }); - var _a6 = graphData.edges, edges = _a6 === void 0 ? [] : _a6; - getNeighbors(currentNode, edges, "target").forEach(function(nextNode) { - if (callbacks.allowTraversal({ - previous: previousNode, - current: currentNode, - next: nextNode - })) { - depthFirstSearchRecursive(graphData, nextNode, currentNode, callbacks); - } - }); - callbacks.leave({ - current: currentNode, - previous: previousNode - }); -} -function depthFirstSearch(graphData, startNodeId, callbacks) { - depthFirstSearchRecursive(graphData, startNodeId, "", initCallbacks2(callbacks)); -} - -// node_modules/@antv/algorithm/es/detect-cycle.js -var detectDirectedCycle = function detectDirectedCycle2(graphData) { - var cycle = null; - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6; - var dfsParentMap = {}; - var unvisitedSet = {}; - var visitingSet = {}; - var visitedSet = {}; - nodes.forEach(function(node) { - unvisitedSet[node.id] = node; - }); - var callbacks = { - enter: function enter(_a7) { - var currentNode = _a7.current, previousNode = _a7.previous; - if (visitingSet[currentNode]) { - cycle = {}; - var currentCycleNode = currentNode; - var previousCycleNode = previousNode; - while (previousCycleNode !== currentNode) { - cycle[currentCycleNode] = previousCycleNode; - currentCycleNode = previousCycleNode; - previousCycleNode = dfsParentMap[previousCycleNode]; - } - cycle[currentCycleNode] = previousCycleNode; - } else { - visitingSet[currentNode] = currentNode; - delete unvisitedSet[currentNode]; - dfsParentMap[currentNode] = previousNode; - } - }, - leave: function leave(_a7) { - var currentNode = _a7.current; - visitedSet[currentNode] = currentNode; - delete visitingSet[currentNode]; - }, - allowTraversal: function allowTraversal(_a7) { - var nextNode = _a7.next; - if (cycle) { - return false; - } - return !visitedSet[nextNode]; - } - }; - while (Object.keys(unvisitedSet).length) { - var firsetUnVisitedKey = Object.keys(unvisitedSet)[0]; - depthFirstSearch(graphData, firsetUnVisitedKey, callbacks); - } - return cycle; -}; -var detectAllUndirectedCycle = function detectAllUndirectedCycle2(graphData, nodeIds, include) { - var _a6, _b; - if (include === void 0) { - include = true; - } - var allCycles = []; - var components = getConnectedComponents(graphData, false); - for (var _i = 0, components_1 = components; _i < components_1.length; _i++) { - var component2 = components_1[_i]; - if (!component2.length) - continue; - var root = component2[0]; - var rootId = root.id; - var stack = [root]; - var parent_1 = (_a6 = {}, _a6[rootId] = root, _a6); - var used = (_b = {}, _b[rootId] = new Set(), _b); - while (stack.length > 0) { - var curNode = stack.pop(); - var curNodeId = curNode.id; - var neighbors = getNeighbors(curNodeId, graphData.edges); - var _loop_1 = function _loop_12(i5) { - var _c; - var neighborId = neighbors[i5]; - var neighbor = graphData.nodes.find(function(node) { - return node.id === neighborId; - }); - if (neighborId === curNodeId) { - allCycles.push((_c = {}, _c[neighborId] = curNode, _c)); - } else if (!(neighborId in used)) { - parent_1[neighborId] = curNode; - stack.push(neighbor); - used[neighborId] = new Set([curNode]); - } else if (!used[curNodeId].has(neighbor)) { - var cycleValid = true; - var cyclePath = [neighbor, curNode]; - var p4 = parent_1[curNodeId]; - while (used[neighborId].size && !used[neighborId].has(p4)) { - cyclePath.push(p4); - if (p4 === parent_1[p4.id]) - break; - else - p4 = parent_1[p4.id]; - } - cyclePath.push(p4); - if (nodeIds && include) { - cycleValid = false; - if (cyclePath.findIndex(function(node) { - return nodeIds.indexOf(node.id) > -1; - }) > -1) { - cycleValid = true; - } - } else if (nodeIds && !include) { - if (cyclePath.findIndex(function(node) { - return nodeIds.indexOf(node.id) > -1; - }) > -1) { - cycleValid = false; - } - } - if (cycleValid) { - var cycle = {}; - for (var index2 = 1; index2 < cyclePath.length; index2 += 1) { - cycle[cyclePath[index2 - 1].id] = cyclePath[index2]; - } - if (cyclePath.length) { - cycle[cyclePath[cyclePath.length - 1].id] = cyclePath[0]; - } - allCycles.push(cycle); - } - used[neighborId].add(curNode); - } - }; - for (var i4 = 0; i4 < neighbors.length; i4 += 1) { - _loop_1(i4); - } - } - } - return allCycles; -}; -var detectAllDirectedCycle = function detectAllDirectedCycle2(graphData, nodeIds, include) { - if (include === void 0) { - include = true; - } - var path = []; - var blocked = new Set(); - var B3 = []; - var allCycles = []; - var idx2Node = {}; - var node2Idx = {}; - var unblock = function unblock2(thisNode) { - var stack = [thisNode]; - while (stack.length > 0) { - var node2 = stack.pop(); - if (blocked.has(node2)) { - blocked.delete(node2); - B3[node2.id].forEach(function(n3) { - stack.push(n3); - }); - B3[node2.id].clear(); - } - } - }; - var circuit = function circuit2(node2, start, adjList2) { - var closed = false; - if (nodeIds && include === false && nodeIds.indexOf(node2.id) > -1) - return closed; - path.push(node2); - blocked.add(node2); - var neighbors = adjList2[node2.id]; - for (var i5 = 0; i5 < neighbors.length; i5 += 1) { - var neighbor = idx2Node[neighbors[i5]]; - if (neighbor === start) { - var cycle = {}; - for (var index2 = 1; index2 < path.length; index2 += 1) { - cycle[path[index2 - 1].id] = path[index2]; - } - if (path.length) { - cycle[path[path.length - 1].id] = path[0]; - } - allCycles.push(cycle); - closed = true; - } else if (!blocked.has(neighbor)) { - if (circuit2(neighbor, start, adjList2)) { - closed = true; - } - } - } - if (closed) { - unblock(node2); - } else { - for (var i5 = 0; i5 < neighbors.length; i5 += 1) { - var neighbor = idx2Node[neighbors[i5]]; - if (!B3[neighbor.id].has(node2)) { - B3[neighbor.id].add(node2); - } - } - } - path.pop(); - return closed; - }; - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6; - for (var i4 = 0; i4 < nodes.length; i4 += 1) { - var node = nodes[i4]; - var nodeId = node.id; - node2Idx[nodeId] = i4; - idx2Node[i4] = node; - } - if (nodeIds && include) { - var _loop_2 = function _loop_22(i5) { - var nodeId2 = nodeIds[i5]; - node2Idx[nodes[i5].id] = node2Idx[nodeId2]; - node2Idx[nodeId2] = 0; - idx2Node[0] = nodes.find(function(node2) { - return node2.id === nodeId2; - }); - idx2Node[node2Idx[nodes[i5].id]] = nodes[i5]; - }; - for (var i4 = 0; i4 < nodeIds.length; i4++) { - _loop_2(i4); - } - } - var getMinComponentAdj = function getMinComponentAdj2(components) { - var _a7; - var minCompIdx; - var minIdx2 = Infinity; - for (var i5 = 0; i5 < components.length; i5 += 1) { - var comp = components[i5]; - for (var j4 = 0; j4 < comp.length; j4++) { - var nodeIdx_1 = node2Idx[comp[j4].id]; - if (nodeIdx_1 < minIdx2) { - minIdx2 = nodeIdx_1; - minCompIdx = i5; - } - } - } - var component3 = components[minCompIdx]; - var adjList2 = []; - for (var i5 = 0; i5 < component3.length; i5 += 1) { - var node2 = component3[i5]; - adjList2[node2.id] = []; - for (var _i = 0, _b = getNeighbors(node2.id, graphData.edges, "target").filter(function(n3) { - return component3.map(function(c5) { - return c5.id; - }).indexOf(n3) > -1; - }); _i < _b.length; _i++) { - var neighbor = _b[_i]; - if (neighbor === node2.id && !(include === false && nodeIds.indexOf(node2.id) > -1)) { - allCycles.push((_a7 = {}, _a7[node2.id] = node2, _a7)); - } else { - adjList2[node2.id].push(node2Idx[neighbor]); - } - } - } - return { - component: component3, - adjList: adjList2, - minIdx: minIdx2 - }; - }; - var nodeIdx = 0; - while (nodeIdx < nodes.length) { - var subgraphNodes = nodes.filter(function(n3) { - return node2Idx[n3.id] >= nodeIdx; - }); - var sccs = detectStrongConnectComponents({ - nodes: subgraphNodes, - edges: graphData.edges - }).filter(function(component3) { - return component3.length > 1; - }); - if (sccs.length === 0) - break; - var scc = getMinComponentAdj(sccs); - var minIdx = scc.minIdx, adjList = scc.adjList, component2 = scc.component; - if (component2.length > 1) { - component2.forEach(function(node2) { - B3[node2.id] = new Set(); - }); - var startNode = idx2Node[minIdx]; - if (nodeIds && include && nodeIds.indexOf(startNode.id) === -1) - return allCycles; - circuit(startNode, startNode, adjList); - nodeIdx = minIdx + 1; - } else { - break; - } - } - return allCycles; -}; -var detectAllCycles = function detectAllCycles2(graphData, directed, nodeIds, include) { - if (include === void 0) { - include = true; - } - if (directed) - return detectAllDirectedCycle(graphData, nodeIds, include); - return detectAllUndirectedCycle(graphData, nodeIds, include); -}; -var detect_cycle_default = detectDirectedCycle; - -// node_modules/@antv/algorithm/es/dijkstra.js -var minVertex = function minVertex2(D3, nodes, marks) { - var minDis = Infinity; - var minNode; - for (var i4 = 0; i4 < nodes.length; i4++) { - var nodeId = nodes[i4].id; - if (!marks[nodeId] && D3[nodeId] <= minDis) { - minDis = D3[nodeId]; - minNode = nodes[i4]; - } - } - return minNode; -}; -var dijkstra = function dijkstra2(graphData, source, directed, weightPropertyName) { - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - var nodeIds = []; - var marks = {}; - var D3 = {}; - var prevs = {}; - nodes.forEach(function(node, i5) { - var id = node.id; - nodeIds.push(id); - D3[id] = Infinity; - if (id === source) - D3[id] = 0; - }); - var nodeNum = nodes.length; - var _loop_1 = function _loop_12(i5) { - var minNode = minVertex(D3, nodes, marks); - var minNodeId = minNode.id; - marks[minNodeId] = true; - if (D3[minNodeId] === Infinity) - return "continue"; - var relatedEdges = []; - if (directed) - relatedEdges = getOutEdgesNodeId(minNodeId, edges); - else - relatedEdges = getEdgesByNodeId(minNodeId, edges); - relatedEdges.forEach(function(edge2) { - var edgeTarget = edge2.target; - var edgeSource = edge2.source; - var w4 = edgeTarget === minNodeId ? edgeSource : edgeTarget; - var weight = weightPropertyName && edge2[weightPropertyName] ? edge2[weightPropertyName] : 1; - if (D3[w4] > D3[minNode.id] + weight) { - D3[w4] = D3[minNode.id] + weight; - prevs[w4] = [minNode.id]; - } else if (D3[w4] === D3[minNode.id] + weight) { - prevs[w4].push(minNode.id); - } - }); - }; - for (var i4 = 0; i4 < nodeNum; i4++) { - _loop_1(i4); - } - prevs[source] = [source]; - var paths = {}; - for (var target in D3) { - if (D3[target] !== Infinity) { - findAllPaths(source, target, prevs, paths); - } - } - var path = {}; - for (var target in paths) { - path[target] = paths[target][0]; - } - return { - length: D3, - path, - allPath: paths - }; -}; -var dijkstra_default = dijkstra; -function findAllPaths(source, target, prevs, foundPaths) { - if (source === target) { - return [source]; - } - if (foundPaths[target]) { - return foundPaths[target]; - } - var paths = []; - for (var _i = 0, _a6 = prevs[target]; _i < _a6.length; _i++) { - var prev = _a6[_i]; - var prevPaths = findAllPaths(source, prev, prevs, foundPaths); - if (!prevPaths) - return; - for (var _b = 0, prevPaths_1 = prevPaths; _b < prevPaths_1.length; _b++) { - var prePath = prevPaths_1[_b]; - if (is_array_default(prePath)) - paths.push(__spreadArray(__spreadArray([], prePath, true), [target], false)); - else - paths.push([prePath, target]); - } - } - foundPaths[target] = paths; - return foundPaths[target]; -} - -// node_modules/@antv/algorithm/es/find-path.js -var findShortestPath = function findShortestPath2(graphData, start, end2, directed, weightPropertyName) { - var _a6 = dijkstra_default(graphData, start, directed, weightPropertyName), length5 = _a6.length, path = _a6.path, allPath = _a6.allPath; - return { - length: length5[end2], - path: path[end2], - allPath: allPath[end2] - }; -}; -var findAllPath = function findAllPath2(graphData, start, end2, directed) { - var _a6; - if (start === end2) - return [[start]]; - var _b = graphData.edges, edges = _b === void 0 ? [] : _b; - var visited = [start]; - var isVisited = (_a6 = {}, _a6[start] = true, _a6); - var stack = []; - var allPath = []; - var neighbors = directed ? getNeighbors(start, edges, "target") : getNeighbors(start, edges); - stack.push(neighbors); - while (visited.length > 0 && stack.length > 0) { - var children = stack[stack.length - 1]; - if (children.length) { - var child = children.shift(); - if (child) { - visited.push(child); - isVisited[child] = true; - neighbors = directed ? getNeighbors(child, edges, "target") : getNeighbors(child, edges); - stack.push(neighbors.filter(function(neighbor) { - return !isVisited[neighbor]; - })); - } - } else { - var node = visited.pop(); - isVisited[node] = false; - stack.pop(); - continue; - } - if (visited[visited.length - 1] === end2) { - var path = visited.map(function(node2) { - return node2; - }); - allPath.push(path); - var node = visited.pop(); - isVisited[node] = false; - stack.pop(); - } - } - return allPath; -}; - -// node_modules/@antv/algorithm/es/floydWarshall.js -var floydWarshall = function floydWarshall2(graphData, directed) { - var adjacentMatrix = adjacent_matrix_default(graphData, directed); - var dist4 = []; - var size2 = adjacentMatrix.length; - for (var i4 = 0; i4 < size2; i4 += 1) { - dist4[i4] = []; - for (var j4 = 0; j4 < size2; j4 += 1) { - if (i4 === j4) { - dist4[i4][j4] = 0; - } else if (adjacentMatrix[i4][j4] === 0 || !adjacentMatrix[i4][j4]) { - dist4[i4][j4] = Infinity; - } else { - dist4[i4][j4] = adjacentMatrix[i4][j4]; - } - } - } - for (var k4 = 0; k4 < size2; k4 += 1) { - for (var i4 = 0; i4 < size2; i4 += 1) { - for (var j4 = 0; j4 < size2; j4 += 1) { - if (dist4[i4][j4] > dist4[i4][k4] + dist4[k4][j4]) { - dist4[i4][j4] = dist4[i4][k4] + dist4[k4][j4]; - } - } - } - } - return dist4; -}; -var floydWarshall_default = floydWarshall; - -// node_modules/@antv/algorithm/es/label-propagation.js -var labelPropagation = function labelPropagation2(graphData, directed, weightPropertyName, maxIteration) { - if (directed === void 0) { - directed = false; - } - if (weightPropertyName === void 0) { - weightPropertyName = "weight"; - } - if (maxIteration === void 0) { - maxIteration = 1e3; - } - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - var clusters = {}; - var nodeMap = {}; - nodes.forEach(function(node, i4) { - var cid = uniqueId(); - node.clusterId = cid; - clusters[cid] = { - id: cid, - nodes: [node] - }; - nodeMap[node.id] = { - node, - idx: i4 - }; - }); - var adjMatrix3 = adjacent_matrix_default(graphData, directed); - var ks = []; - var neighbors = {}; - adjMatrix3.forEach(function(row, i4) { - var k4 = 0; - var iid = nodes[i4].id; - neighbors[iid] = {}; - row.forEach(function(entry, j4) { - if (!entry) - return; - k4 += entry; - var jid = nodes[j4].id; - neighbors[iid][jid] = entry; - }); - ks.push(k4); - }); - var iter = 0; - var _loop_1 = function _loop_12() { - var changed = false; - nodes.forEach(function(node) { - var neighborClusters = {}; - Object.keys(neighbors[node.id]).forEach(function(neighborId) { - var neighborWeight = neighbors[node.id][neighborId]; - var neighborNode = nodeMap[neighborId].node; - var neighborClusterId = neighborNode.clusterId; - if (!neighborClusters[neighborClusterId]) - neighborClusters[neighborClusterId] = 0; - neighborClusters[neighborClusterId] += neighborWeight; - }); - var maxWeight = -Infinity; - var bestClusterIds = []; - Object.keys(neighborClusters).forEach(function(clusterId) { - if (maxWeight < neighborClusters[clusterId]) { - maxWeight = neighborClusters[clusterId]; - bestClusterIds = [clusterId]; - } else if (maxWeight === neighborClusters[clusterId]) { - bestClusterIds.push(clusterId); - } - }); - if (bestClusterIds.length === 1 && bestClusterIds[0] === node.clusterId) - return; - var selfClusterIdx = bestClusterIds.indexOf(node.clusterId); - if (selfClusterIdx >= 0) - bestClusterIds.splice(selfClusterIdx, 1); - if (bestClusterIds && bestClusterIds.length) { - changed = true; - var selfCluster = clusters[node.clusterId]; - var nodeInSelfClusterIdx = selfCluster.nodes.indexOf(node); - selfCluster.nodes.splice(nodeInSelfClusterIdx, 1); - var randomIdx = Math.floor(Math.random() * bestClusterIds.length); - var bestCluster = clusters[bestClusterIds[randomIdx]]; - bestCluster.nodes.push(node); - node.clusterId = bestCluster.id; - } - }); - if (!changed) - return "break"; - iter++; - }; - while (iter < maxIteration) { - var state_1 = _loop_1(); - if (state_1 === "break") - break; - } - Object.keys(clusters).forEach(function(clusterId) { - var cluster = clusters[clusterId]; - if (!cluster.nodes || !cluster.nodes.length) { - delete clusters[clusterId]; - } - }); - var clusterEdges = []; - var clusterEdgeMap = {}; - edges.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - var weight = edge2[weightPropertyName] || 1; - var sourceClusterId = nodeMap[source].node.clusterId; - var targetClusterId = nodeMap[target].node.clusterId; - var newEdgeId = "".concat(sourceClusterId, "---").concat(targetClusterId); - if (clusterEdgeMap[newEdgeId]) { - clusterEdgeMap[newEdgeId].weight += weight; - clusterEdgeMap[newEdgeId].count++; - } else { - var newEdge = { - source: sourceClusterId, - target: targetClusterId, - weight, - count: 1 - }; - clusterEdgeMap[newEdgeId] = newEdge; - clusterEdges.push(newEdge); - } - }); - var clustersArray = []; - Object.keys(clusters).forEach(function(clusterId) { - clustersArray.push(clusters[clusterId]); - }); - return { - clusters: clustersArray, - clusterEdges - }; -}; -var label_propagation_default = labelPropagation; - -// node_modules/@antv/algorithm/es/utils/vector.js -var Vector = function() { - function Vector2(arr) { - this.arr = arr; - } - Vector2.prototype.getArr = function() { - return this.arr || []; - }; - Vector2.prototype.add = function(otherVector) { - var _a6; - var otherArr = otherVector.arr; - if (!((_a6 = this.arr) === null || _a6 === void 0 ? void 0 : _a6.length)) { - return new Vector2(otherArr); - } - if (!(otherArr === null || otherArr === void 0 ? void 0 : otherArr.length)) { - return new Vector2(this.arr); - } - if (this.arr.length === otherArr.length) { - var res = []; - for (var index2 in this.arr) { - res[index2] = this.arr[index2] + otherArr[index2]; - } - return new Vector2(res); - } - }; - Vector2.prototype.subtract = function(otherVector) { - var _a6; - var otherArr = otherVector.arr; - if (!((_a6 = this.arr) === null || _a6 === void 0 ? void 0 : _a6.length)) { - return new Vector2(otherArr); - } - if (!(otherArr === null || otherArr === void 0 ? void 0 : otherArr.length)) { - return new Vector2(this.arr); - } - if (this.arr.length === otherArr.length) { - var res = []; - for (var index2 in this.arr) { - res[index2] = this.arr[index2] - otherArr[index2]; - } - return new Vector2(res); - } - }; - Vector2.prototype.avg = function(length5) { - var res = []; - if (length5 !== 0) { - for (var index2 in this.arr) { - res[index2] = this.arr[index2] / length5; - } - } - return new Vector2(res); - }; - Vector2.prototype.negate = function() { - var res = []; - for (var index2 in this.arr) { - res[index2] = -this.arr[index2]; - } - return new Vector2(res); - }; - Vector2.prototype.squareEuclideanDistance = function(otherVector) { - var _a6; - var otherArr = otherVector.arr; - if (!((_a6 = this.arr) === null || _a6 === void 0 ? void 0 : _a6.length) || !(otherArr === null || otherArr === void 0 ? void 0 : otherArr.length)) { - return 0; - } - if (this.arr.length === otherArr.length) { - var res = 0; - for (var index2 in this.arr) { - res += Math.pow(this.arr[index2] - otherVector.arr[index2], 2); - } - return res; - } - }; - Vector2.prototype.euclideanDistance = function(otherVector) { - var _a6; - var otherArr = otherVector.arr; - if (!((_a6 = this.arr) === null || _a6 === void 0 ? void 0 : _a6.length) || !(otherArr === null || otherArr === void 0 ? void 0 : otherArr.length)) { - return 0; - } - if (this.arr.length === otherArr.length) { - var res = 0; - for (var index2 in this.arr) { - res += Math.pow(this.arr[index2] - otherVector.arr[index2], 2); - } - return Math.sqrt(res); - } else { - console.error("The two vectors are unequal in length."); - } - }; - Vector2.prototype.normalize = function() { - var res = []; - var cloneArr = clone_default(this.arr); - cloneArr.sort(function(a4, b10) { - return a4 - b10; - }); - var max8 = cloneArr[cloneArr.length - 1]; - var min7 = cloneArr[0]; - for (var index2 in this.arr) { - res[index2] = (this.arr[index2] - min7) / (max8 - min7); - } - return new Vector2(res); - }; - Vector2.prototype.norm2 = function() { - var _a6; - if (!((_a6 = this.arr) === null || _a6 === void 0 ? void 0 : _a6.length)) { - return 0; - } - var res = 0; - for (var index2 in this.arr) { - res += Math.pow(this.arr[index2], 2); - } - return Math.sqrt(res); - }; - Vector2.prototype.dot = function(otherVector) { - var _a6; - var otherArr = otherVector.arr; - if (!((_a6 = this.arr) === null || _a6 === void 0 ? void 0 : _a6.length) || !(otherArr === null || otherArr === void 0 ? void 0 : otherArr.length)) { - return 0; - } - if (this.arr.length === otherArr.length) { - var res = 0; - for (var index2 in this.arr) { - res += this.arr[index2] * otherVector.arr[index2]; - } - return res; - } else { - console.error("The two vectors are unequal in length."); - } - }; - Vector2.prototype.equal = function(otherVector) { - var _a6; - var otherArr = otherVector.arr; - if (((_a6 = this.arr) === null || _a6 === void 0 ? void 0 : _a6.length) !== (otherArr === null || otherArr === void 0 ? void 0 : otherArr.length)) { - return false; - } - for (var index2 in this.arr) { - if (this.arr[index2] !== otherArr[index2]) { - return false; - } - } - return true; - }; - return Vector2; -}(); -var vector_default = Vector; - -// node_modules/@antv/algorithm/es/utils/node-properties.js -var getAllProperties = function getAllProperties2(nodes, key) { - if (key === void 0) { - key = "properties"; - } - var allProperties = []; - nodes.forEach(function(node) { - if (!node.properties) { - return; - } - allProperties.push(node[key]); - }); - return allProperties; -}; - -// node_modules/@antv/algorithm/es/types.js -var DistanceType; -(function(DistanceType2) { - DistanceType2["EuclideanDistance"] = "euclideanDistance"; -})(DistanceType || (DistanceType = {})); - -// node_modules/@antv/algorithm/es/utils/data-preprocessing.js -var getAllKeyValueMap = function getAllKeyValueMap2(dataList, involvedKeys, uninvolvedKeys) { - var keys2 = []; - if (involvedKeys === null || involvedKeys === void 0 ? void 0 : involvedKeys.length) { - keys2 = involvedKeys; - } else { - dataList.forEach(function(data3) { - keys2 = keys2.concat(Object.keys(data3)); - }); - keys2 = uniq(keys2); - } - var allKeyValueMap = {}; - keys2.forEach(function(key) { - var value2 = []; - dataList.forEach(function(data3) { - if (data3[key] !== void 0 && data3[key] !== "") { - value2.push(data3[key]); - } - }); - if (value2.length && !(uninvolvedKeys === null || uninvolvedKeys === void 0 ? void 0 : uninvolvedKeys.includes(key))) { - allKeyValueMap[key] = uniq(value2); - } - }); - return allKeyValueMap; -}; -var oneHot = function oneHot2(dataList, involvedKeys, uninvolvedKeys) { - var allKeyValueMap = getAllKeyValueMap(dataList, involvedKeys, uninvolvedKeys); - var oneHotCode = []; - dataList.forEach(function(data3, index2) { - var code = []; - Object.keys(allKeyValueMap).forEach(function(key) { - var keyValue = data3[key]; - var allKeyValue = allKeyValueMap[key]; - var valueIndex = allKeyValue.findIndex(function(value2) { - return keyValue === value2; - }); - var subCode = []; - for (var i4 = 0; i4 < allKeyValue.length; i4++) { - if (i4 === valueIndex) { - subCode.push(1); - } else { - subCode.push(0); - } - } - code = code.concat(subCode); - }); - oneHotCode[index2] = code; - }); - return oneHotCode; -}; -var getDistance = function getDistance2(item, otherItem, distanceType, graphData) { - if (distanceType === void 0) { - distanceType = DistanceType.EuclideanDistance; - } - var distance15 = 0; - switch (distanceType) { - case DistanceType.EuclideanDistance: - distance15 = new vector_default(item).euclideanDistance(new vector_default(otherItem)); - break; - default: - break; - } - return distance15; -}; - -// node_modules/@antv/algorithm/es/louvain.js -var getModularity = function getModularity2(nodes, adjMatrix3, ks, m4) { - var length5 = adjMatrix3.length; - var param = 2 * m4; - var modularity = 0; - for (var i4 = 0; i4 < length5; i4++) { - var clusteri = nodes[i4].clusterId; - for (var j4 = 0; j4 < length5; j4++) { - var clusterj = nodes[j4].clusterId; - if (clusteri !== clusterj) - continue; - var entry = adjMatrix3[i4][j4] || 0; - var ki = ks[i4] || 0; - var kj = ks[j4] || 0; - modularity += entry - ki * kj / param; - } - } - modularity *= 1 / param; - return modularity; -}; -var getInertialModularity = function getInertialModularity2(nodes, allPropertiesWeight) { - if (nodes === void 0) { - nodes = []; - } - var length5 = nodes.length; - var totalProperties = new vector_default([]); - for (var i4 = 0; i4 < length5; i4++) { - totalProperties = totalProperties.add(new vector_default(allPropertiesWeight[i4])); - } - var avgProperties = totalProperties.avg(length5); - avgProperties.normalize(); - var variance = 0; - for (var i4 = 0; i4 < length5; i4++) { - var propertiesi = new vector_default(allPropertiesWeight[i4]); - var squareEuclideanDistance = propertiesi.squareEuclideanDistance(avgProperties); - variance += squareEuclideanDistance; - } - var squareEuclideanDistanceInfo = []; - nodes.forEach(function() { - squareEuclideanDistanceInfo.push([]); - }); - for (var i4 = 0; i4 < length5; i4++) { - var propertiesi = new vector_default(allPropertiesWeight[i4]); - nodes[i4]["clusterInertial"] = 0; - for (var j4 = 0; j4 < length5; j4++) { - if (i4 === j4) { - squareEuclideanDistanceInfo[i4][j4] = 0; - continue; - } - var propertiesj = new vector_default(allPropertiesWeight[j4]); - squareEuclideanDistanceInfo[i4][j4] = propertiesi.squareEuclideanDistance(propertiesj); - nodes[i4]["clusterInertial"] += squareEuclideanDistanceInfo[i4][j4]; - } - } - var inertialModularity = 0; - var param = 2 * length5 * variance; - for (var i4 = 0; i4 < length5; i4++) { - var clusteri = nodes[i4].clusterId; - for (var j4 = 0; j4 < length5; j4++) { - var clusterj = nodes[j4].clusterId; - if (i4 === j4 || clusteri !== clusterj) - continue; - var inertial = nodes[i4].clusterInertial * nodes[j4].clusterInertial / Math.pow(param, 2) - squareEuclideanDistanceInfo[i4][j4] / param; - inertialModularity += inertial; - } - } - return Number(inertialModularity.toFixed(4)); -}; -var louvain = function louvain2(graphData, directed, weightPropertyName, threshold, inertialModularity, inertialWeight) { - if (directed === void 0) { - directed = false; - } - if (weightPropertyName === void 0) { - weightPropertyName = "weight"; - } - if (threshold === void 0) { - threshold = 1e-4; - } - if (inertialModularity === void 0) { - inertialModularity = false; - } - if (inertialWeight === void 0) { - inertialWeight = 1; - } - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - var allPropertiesWeight = []; - if (inertialModularity) { - nodes.forEach(function(node, index2) { - node.properties = node.properties || {}; - node.originIndex = index2; - }); - var nodeTypeInfo_1 = []; - if (nodes.every(function(node) { - return node.hasOwnProperty("nodeType"); - })) { - nodeTypeInfo_1 = Array.from(new Set(nodes.map(function(node) { - return node.nodeType; - }))); - nodes.forEach(function(node) { - node.properties.nodeType = nodeTypeInfo_1.findIndex(function(nodeType) { - return nodeType === node.nodeType; - }); - }); - } - var properties = getAllProperties(nodes); - allPropertiesWeight = oneHot(properties); - } - var uniqueId5 = 1; - var clusters = {}; - var nodeMap = {}; - nodes.forEach(function(node, i4) { - var cid = String(uniqueId5++); - node.clusterId = cid; - clusters[cid] = { - id: cid, - nodes: [node] - }; - nodeMap[node.id] = { - node, - idx: i4 - }; - }); - var adjMatrix3 = adjacent_matrix_default(graphData, directed); - var ks = []; - var neighbors = {}; - var m4 = 0; - adjMatrix3.forEach(function(row, i4) { - var k4 = 0; - var iid = nodes[i4].id; - neighbors[iid] = {}; - row.forEach(function(entry, j4) { - if (!entry) - return; - k4 += entry; - var jid = nodes[j4].id; - neighbors[iid][jid] = entry; - m4 += entry; - }); - ks.push(k4); - }); - m4 /= 2; - var totalModularity = Infinity; - var previousModularity = Infinity; - var iter = 0; - var finalNodes = []; - var finalClusters = {}; - while (true) { - if (inertialModularity && nodes.every(function(node) { - return node.hasOwnProperty("properties"); - })) { - totalModularity = getModularity(nodes, adjMatrix3, ks, m4) + getInertialModularity(nodes, allPropertiesWeight) * inertialWeight; - } else { - totalModularity = getModularity(nodes, adjMatrix3, ks, m4); - } - if (iter === 0) { - previousModularity = totalModularity; - finalNodes = nodes; - finalClusters = clusters; - } - var increaseWithinThreshold = totalModularity > 0 && totalModularity > previousModularity && totalModularity - previousModularity < threshold; - if (totalModularity > previousModularity) { - finalNodes = nodes.map(function(node) { - return { - node, - clusterId: node.clusterId - }; - }); - finalClusters = clone_default(clusters); - previousModularity = totalModularity; - } - if (increaseWithinThreshold || iter > 100) { - break; - } - ; - iter++; - Object.keys(clusters).forEach(function(clusterId) { - var sumTot = 0; - edges.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - var sourceClusterId = nodeMap[source].node.clusterId; - var targetClusterId = nodeMap[target].node.clusterId; - if (sourceClusterId === clusterId && targetClusterId !== clusterId || targetClusterId === clusterId && sourceClusterId !== clusterId) { - sumTot = sumTot + (edge2[weightPropertyName] || 1); - } - }); - clusters[clusterId].sumTot = sumTot; - }); - nodes.forEach(function(node, i4) { - var selfCluster = clusters[node.clusterId]; - var bestIncrease = 0; - var bestCluster; - var commonParam = ks[i4] / (2 * m4); - var kiin = 0; - var selfClusterNodes = selfCluster.nodes; - selfClusterNodes.forEach(function(scNode) { - var scNodeIdx = nodeMap[scNode.id].idx; - kiin += adjMatrix3[i4][scNodeIdx] || 0; - }); - var removeModurarity = kiin - selfCluster.sumTot * commonParam; - var selfClusterNodesAfterRemove = selfClusterNodes.filter(function(scNode) { - return scNode.id !== node.id; - }); - var propertiesWeightRemove = []; - selfClusterNodesAfterRemove.forEach(function(nodeRemove, index2) { - propertiesWeightRemove[index2] = allPropertiesWeight[nodeRemove.originIndex]; - }); - var removeInertialModularity = getInertialModularity(selfClusterNodesAfterRemove, allPropertiesWeight) * inertialWeight; - var nodeNeighborIds = neighbors[node.id]; - Object.keys(nodeNeighborIds).forEach(function(neighborNodeId) { - var neighborNode = nodeMap[neighborNodeId].node; - var neighborClusterId = neighborNode.clusterId; - if (neighborClusterId === node.clusterId) - return; - var neighborCluster = clusters[neighborClusterId]; - var clusterNodes = neighborCluster.nodes; - if (!clusterNodes || !clusterNodes.length) - return; - var neighborClusterKiin = 0; - clusterNodes.forEach(function(cNode) { - var cNodeIdx = nodeMap[cNode.id].idx; - neighborClusterKiin += adjMatrix3[i4][cNodeIdx] || 0; - }); - var addModurarity = neighborClusterKiin - neighborCluster.sumTot * commonParam; - var clusterNodesAfterAdd = clusterNodes.concat([node]); - var propertiesWeightAdd = []; - clusterNodesAfterAdd.forEach(function(nodeAdd, index2) { - propertiesWeightAdd[index2] = allPropertiesWeight[nodeAdd.originIndex]; - }); - var addInertialModularity = getInertialModularity(clusterNodesAfterAdd, allPropertiesWeight) * inertialWeight; - var increase = addModurarity - removeModurarity; - if (inertialModularity) { - increase = addModurarity + addInertialModularity - (removeModurarity + removeInertialModularity); - } - if (increase > bestIncrease) { - bestIncrease = increase; - bestCluster = neighborCluster; - } - }); - if (bestIncrease > 0) { - bestCluster.nodes.push(node); - var previousClusterId_1 = node.clusterId; - node.clusterId = bestCluster.id; - var nodeInSelfClusterIdx = selfCluster.nodes.indexOf(node); - selfCluster.nodes.splice(nodeInSelfClusterIdx, 1); - var neighborClusterSumTot_1 = 0; - var selfClusterSumTot_1 = 0; - edges.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - var sourceClusterId = nodeMap[source].node.clusterId; - var targetClusterId = nodeMap[target].node.clusterId; - if (sourceClusterId === bestCluster.id && targetClusterId !== bestCluster.id || targetClusterId === bestCluster.id && sourceClusterId !== bestCluster.id) { - neighborClusterSumTot_1 = neighborClusterSumTot_1 + (edge2[weightPropertyName] || 1); - } - if (sourceClusterId === previousClusterId_1 && targetClusterId !== previousClusterId_1 || targetClusterId === previousClusterId_1 && sourceClusterId !== previousClusterId_1) { - selfClusterSumTot_1 = selfClusterSumTot_1 + (edge2[weightPropertyName] || 1); - } - }); - bestCluster.sumTot = neighborClusterSumTot_1; - selfCluster.sumTot = selfClusterSumTot_1; - } - }); - } - var newClusterIdMap = {}; - var clusterIdx = 0; - Object.keys(finalClusters).forEach(function(clusterId) { - var cluster = finalClusters[clusterId]; - if (!cluster.nodes || !cluster.nodes.length) { - delete finalClusters[clusterId]; - return; - } - var newId = String(clusterIdx + 1); - if (newId === clusterId) { - return; - } - cluster.id = newId; - cluster.nodes = cluster.nodes.map(function(item) { - return { - id: item.id, - clusterId: newId - }; - }); - finalClusters[newId] = cluster; - newClusterIdMap[clusterId] = newId; - delete finalClusters[clusterId]; - clusterIdx++; - }); - finalNodes.forEach(function(nodeInfo) { - var node = nodeInfo.node, clusterId = nodeInfo.clusterId; - node.clusterId = clusterId; - if (node.clusterId && newClusterIdMap[node.clusterId]) - node.clusterId = newClusterIdMap[node.clusterId]; - }); - var clusterEdges = []; - var clusterEdgeMap = {}; - edges.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - var weight = edge2[weightPropertyName] || 1; - var sourceClusterId = nodeMap[source].node.clusterId; - var targetClusterId = nodeMap[target].node.clusterId; - var newEdgeId = "".concat(sourceClusterId, "---").concat(targetClusterId); - if (clusterEdgeMap[newEdgeId]) { - clusterEdgeMap[newEdgeId].weight += weight; - clusterEdgeMap[newEdgeId].count++; - } else { - var newEdge = { - source: sourceClusterId, - target: targetClusterId, - weight, - count: 1 - }; - clusterEdgeMap[newEdgeId] = newEdge; - clusterEdges.push(newEdge); - } - }); - var clustersArray = []; - Object.keys(finalClusters).forEach(function(clusterId) { - clustersArray.push(finalClusters[clusterId]); - }); - return { - clusters: clustersArray, - clusterEdges - }; -}; -var louvain_default = louvain; - -// node_modules/@antv/algorithm/es/i-louvain.js -var iLouvain = function iLouvain2(graphData, directed, weightPropertyName, threshold, inertialWeight) { - if (directed === void 0) { - directed = false; - } - if (weightPropertyName === void 0) { - weightPropertyName = "weight"; - } - if (threshold === void 0) { - threshold = 1e-4; - } - if (inertialWeight === void 0) { - inertialWeight = 1; - } - return louvain_default(graphData, directed, weightPropertyName, threshold, true, inertialWeight); -}; -var i_louvain_default = iLouvain; - -// node_modules/@antv/algorithm/es/k-core.js -var kCore = function kCore2(graphData, k4) { - var _a6; - if (k4 === void 0) { - k4 = 1; - } - var data3 = clone_default(graphData); - var _b = data3.nodes, nodes = _b === void 0 ? [] : _b; - var _c = data3.edges, edges = _c === void 0 ? [] : _c; - var _loop_1 = function _loop_12() { - var degrees = degree_default({ - nodes, - edges - }); - var nodeIds = Object.keys(degrees); - nodeIds.sort(function(a4, b10) { - var _a7, _b2; - return ((_a7 = degrees[a4]) === null || _a7 === void 0 ? void 0 : _a7.degree) - ((_b2 = degrees[b10]) === null || _b2 === void 0 ? void 0 : _b2.degree); - }); - var minIndexId = nodeIds[0]; - if (!nodes.length || ((_a6 = degrees[minIndexId]) === null || _a6 === void 0 ? void 0 : _a6.degree) >= k4) { - return "break"; - } - var originIndex = nodes.findIndex(function(node) { - return node.id === minIndexId; - }); - nodes.splice(originIndex, 1); - edges = edges.filter(function(edge2) { - return !(edge2.source === minIndexId || edge2.target === minIndexId); - }); - }; - while (true) { - var state_1 = _loop_1(); - if (state_1 === "break") - break; - } - return { - nodes, - edges - }; -}; -var k_core_default = kCore; - -// node_modules/@antv/algorithm/es/k-means.js -var kMeans = function kMeans2(data3, k4, involvedKeys, uninvolvedKeys, propertyKey, distanceType) { - if (k4 === void 0) { - k4 = 3; - } - if (involvedKeys === void 0) { - involvedKeys = []; - } - if (uninvolvedKeys === void 0) { - uninvolvedKeys = []; - } - if (propertyKey === void 0) { - propertyKey = "properties"; - } - if (distanceType === void 0) { - distanceType = DistanceType.EuclideanDistance; - } - var nodes = data3.nodes, edges = data3.edges; - var properties = getAllProperties(nodes, propertyKey); - var allPropertiesWeight = oneHot(properties, involvedKeys, uninvolvedKeys); - for (var i4 = 0; i4 < nodes.length; i4++) { - nodes[i4].originIndex = i4; - } - var centroids = []; - var centroidIndexList = []; - var clusters = []; - for (var i4 = 0; i4 < k4; i4++) { - if (i4 === 0) { - var randomIndex = Math.floor(Math.random() * nodes.length); - centroids[i4] = allPropertiesWeight[randomIndex]; - centroidIndexList.push(randomIndex); - clusters[i4] = [nodes[randomIndex]]; - nodes[randomIndex].clusterId = String(i4); - } else { - var maxDistance = -Infinity; - var maxDistanceIndex = 0; - for (var m4 = 0; m4 < nodes.length; m4++) { - if (!centroidIndexList.includes(m4)) { - var totalDistance = 0; - for (var j4 = 0; j4 < centroids.length; j4++) { - var distance15 = getDistance(allPropertiesWeight[nodes[m4].originIndex], centroids[j4], distanceType); - totalDistance += distance15; - } - var avgDistance = totalDistance / centroids.length; - if (avgDistance > maxDistance) { - maxDistance = avgDistance; - maxDistanceIndex = m4; - } - } - } - centroids[i4] = allPropertiesWeight[maxDistanceIndex]; - centroidIndexList.push(maxDistanceIndex); - clusters[i4] = [nodes[maxDistanceIndex]]; - nodes[maxDistanceIndex].clusterId = String(i4); - } - } - var iterations = 0; - while (true) { - for (var i4 = 0; i4 < nodes.length; i4++) { - var minDistanceIndex = 0; - var minDistance = Infinity; - if (!(iterations === 0 && centroidIndexList.includes(i4))) { - for (var j4 = 0; j4 < centroids.length; j4++) { - var distance15 = getDistance(allPropertiesWeight[i4], centroids[j4], distanceType); - if (distance15 < minDistance) { - minDistance = distance15; - minDistanceIndex = j4; - } - } - if (nodes[i4].clusterId !== String(minDistanceIndex)) { - for (var n3 = 0; n3 < clusters[minDistanceIndex].length; n3++) { - if (clusters[minDistanceIndex][n3].id === nodes[i4].id) { - clusters[minDistanceIndex].splice(n3, 1); - } - } - clusters[minDistanceIndex].push(nodes[i4]); - nodes[i4].clusterId = String(minDistanceIndex); - } - } - } - var centroidsEqualAvg = false; - for (var i4 = 0; i4 < clusters.length; i4++) { - var clusterNodes = clusters[i4]; - var totalVector = new vector_default([]); - for (var j4 = 0; j4 < clusterNodes.length; j4++) { - totalVector = totalVector.add(new vector_default(allPropertiesWeight[clusterNodes[j4].originIndex])); - } - var avgVector = totalVector.avg(clusterNodes.length); - if (!avgVector.equal(new vector_default(centroids[i4]))) { - centroidsEqualAvg = true; - centroids[i4] = avgVector.getArr(); - } - } - iterations++; - if (centroidsEqualAvg || iterations >= 1e3) { - break; - } - } - var clusterEdges = []; - var clusterEdgeMap = {}; - edges.forEach(function(edge2) { - var _a6, _b; - var source = edge2.source, target = edge2.target; - var sourceClusterId = (_a6 = nodes.find(function(node) { - return node.id === source; - })) === null || _a6 === void 0 ? void 0 : _a6.clusterId; - var targetClusterId = (_b = nodes.find(function(node) { - return node.id === target; - })) === null || _b === void 0 ? void 0 : _b.clusterId; - var newEdgeId = "".concat(sourceClusterId, "---").concat(targetClusterId); - if (clusterEdgeMap[newEdgeId]) { - clusterEdgeMap[newEdgeId].count++; - } else { - var newEdge = { - source: sourceClusterId, - target: targetClusterId, - count: 1 - }; - clusterEdgeMap[newEdgeId] = newEdge; - clusterEdges.push(newEdge); - } - }); - return { - clusters, - clusterEdges - }; -}; -var k_means_default = kMeans; - -// node_modules/@antv/algorithm/es/cosine-similarity.js -var cosineSimilarity = function cosineSimilarity2(item, targetItem) { - var targetItemVector = new vector_default(targetItem); - var targetNodeNorm2 = targetItemVector.norm2(); - var itemVector = new vector_default(item); - var itemNorm2 = itemVector.norm2(); - var dot7 = targetItemVector.dot(itemVector); - var norm2Product = targetNodeNorm2 * itemNorm2; - var cosineSimilarity3 = norm2Product ? dot7 / norm2Product : 0; - return cosineSimilarity3; -}; -var cosine_similarity_default = cosineSimilarity; - -// node_modules/@antv/algorithm/es/nodes-cosine-similarity.js -var nodesCosineSimilarity = function nodesCosineSimilarity2(nodes, seedNode, involvedKeys, uninvolvedKeys, propertyKey) { - if (nodes === void 0) { - nodes = []; - } - if (involvedKeys === void 0) { - involvedKeys = []; - } - if (uninvolvedKeys === void 0) { - uninvolvedKeys = []; - } - if (propertyKey === void 0) { - propertyKey = "properties"; - } - var similarNodes = clone_default(nodes.filter(function(node) { - return node.id !== seedNode.id; - })); - var seedNodeIndex = nodes.findIndex(function(node) { - return node.id === seedNode.id; - }); - var properties = getAllProperties(nodes, propertyKey); - var allPropertiesWeight = oneHot(properties, involvedKeys, uninvolvedKeys); - var seedNodeProperties = allPropertiesWeight[seedNodeIndex]; - var allCosineSimilarity = []; - similarNodes.forEach(function(node, index2) { - if (node.id !== seedNode.id) { - var nodeProperties = allPropertiesWeight[index2]; - var cosineSimilarityValue = cosine_similarity_default(nodeProperties, seedNodeProperties); - allCosineSimilarity.push(cosineSimilarityValue); - node.cosineSimilarity = cosineSimilarityValue; - } - }); - similarNodes.sort(function(a4, b10) { - return b10.cosineSimilarity - a4.cosineSimilarity; - }); - return { - allCosineSimilarity, - similarNodes - }; -}; -var nodes_cosine_similarity_default = nodesCosineSimilarity; - -// node_modules/@antv/algorithm/es/structs/union-find.js -var UnionFind = function() { - function UnionFind2(items) { - this.count = items.length; - this.parent = {}; - for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { - var i4 = items_1[_i]; - this.parent[i4] = i4; - } - } - UnionFind2.prototype.find = function(item) { - while (this.parent[item] !== item) { - item = this.parent[item]; - } - return item; - }; - UnionFind2.prototype.union = function(a4, b10) { - var rootA = this.find(a4); - var rootB = this.find(b10); - if (rootA === rootB) - return; - if (rootA < rootB) { - if (this.parent[b10] !== b10) - this.union(this.parent[b10], a4); - this.parent[b10] = this.parent[a4]; - } else { - if (this.parent[a4] !== a4) - this.union(this.parent[a4], b10); - this.parent[a4] = this.parent[b10]; - } - }; - UnionFind2.prototype.connected = function(a4, b10) { - return this.find(a4) === this.find(b10); - }; - return UnionFind2; -}(); -var union_find_default = UnionFind; - -// node_modules/@antv/algorithm/es/structs/binary-heap.js -var defaultCompare = function defaultCompare2(a4, b10) { - return a4 - b10; -}; -var MinBinaryHeap = function() { - function MinBinaryHeap2(compareFn) { - if (compareFn === void 0) { - compareFn = defaultCompare; - } - this.compareFn = compareFn; - this.list = []; - } - MinBinaryHeap2.prototype.getLeft = function(index2) { - return 2 * index2 + 1; - }; - MinBinaryHeap2.prototype.getRight = function(index2) { - return 2 * index2 + 2; - }; - MinBinaryHeap2.prototype.getParent = function(index2) { - if (index2 === 0) { - return null; - } - return Math.floor((index2 - 1) / 2); - }; - MinBinaryHeap2.prototype.isEmpty = function() { - return this.list.length <= 0; - }; - MinBinaryHeap2.prototype.top = function() { - return this.isEmpty() ? void 0 : this.list[0]; - }; - MinBinaryHeap2.prototype.delMin = function() { - var top = this.top(); - var bottom = this.list.pop(); - if (this.list.length > 0) { - this.list[0] = bottom; - this.moveDown(0); - } - return top; - }; - MinBinaryHeap2.prototype.insert = function(value2) { - if (value2 !== null) { - this.list.push(value2); - var index2 = this.list.length - 1; - this.moveUp(index2); - return true; - } - return false; - }; - MinBinaryHeap2.prototype.moveUp = function(index2) { - var parent = this.getParent(index2); - while (index2 && index2 > 0 && this.compareFn(this.list[parent], this.list[index2]) > 0) { - var tmp = this.list[parent]; - this.list[parent] = this.list[index2]; - this.list[index2] = tmp; - index2 = parent; - parent = this.getParent(index2); - } - }; - MinBinaryHeap2.prototype.moveDown = function(index2) { - var _a6; - var element = index2; - var left2 = this.getLeft(index2); - var right2 = this.getRight(index2); - var size2 = this.list.length; - if (left2 !== null && left2 < size2 && this.compareFn(this.list[element], this.list[left2]) > 0) { - element = left2; - } else if (right2 !== null && right2 < size2 && this.compareFn(this.list[element], this.list[right2]) > 0) { - element = right2; - } - if (index2 !== element) { - _a6 = [this.list[element], this.list[index2]], this.list[index2] = _a6[0], this.list[element] = _a6[1]; - this.moveDown(element); - } - }; - return MinBinaryHeap2; -}(); -var binary_heap_default = MinBinaryHeap; - -// node_modules/@antv/algorithm/es/mts.js -var primMST = function primMST2(graphData, weight) { - var selectedEdges = []; - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - if (nodes.length === 0) { - return selectedEdges; - } - var currNode = nodes[0]; - var visited = new Set(); - visited.add(currNode); - var compareWeight = function compareWeight2(a4, b10) { - if (weight) { - return a4.weight - b10.weight; - } - return 0; - }; - var edgeQueue = new binary_heap_default(compareWeight); - getEdgesByNodeId(currNode.id, edges).forEach(function(edge2) { - edgeQueue.insert(edge2); - }); - while (!edgeQueue.isEmpty()) { - var currEdge = edgeQueue.delMin(); - var source = currEdge.source; - var target = currEdge.target; - if (visited.has(source) && visited.has(target)) - continue; - selectedEdges.push(currEdge); - if (!visited.has(source)) { - visited.add(source); - getEdgesByNodeId(source, edges).forEach(function(edge2) { - edgeQueue.insert(edge2); - }); - } - if (!visited.has(target)) { - visited.add(target); - getEdgesByNodeId(target, edges).forEach(function(edge2) { - edgeQueue.insert(edge2); - }); - } - } - return selectedEdges; -}; -var kruskalMST = function kruskalMST2(graphData, weight) { - var selectedEdges = []; - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - if (nodes.length === 0) { - return selectedEdges; - } - var weightEdges = edges.map(function(edge2) { - return edge2; - }); - if (weight) { - weightEdges.sort(function(a4, b10) { - return a4.weight - b10.weight; - }); - } - var disjointSet = new union_find_default(nodes.map(function(n3) { - return n3.id; - })); - while (weightEdges.length > 0) { - var curEdge = weightEdges.shift(); - var source = curEdge.source; - var target = curEdge.target; - if (!disjointSet.connected(source, target)) { - selectedEdges.push(curEdge); - disjointSet.union(source, target); - } - } - return selectedEdges; -}; -var minimumSpanningTree = function minimumSpanningTree2(graphData, weight, algo) { - var algos = { - prim: primMST, - kruskal: kruskalMST - }; - if (!algo) - return kruskalMST(graphData, weight); - return algos[algo](graphData, weight); -}; -var mts_default = minimumSpanningTree; - -// node_modules/@antv/algorithm/es/pageRank.js -var pageRank = function pageRank2(graphData, epsilon, linkProb) { - if (typeof epsilon !== "number") - epsilon = 1e-6; - if (typeof linkProb !== "number") - linkProb = 0.85; - var distance15 = 1; - var leakedRank = 0; - var maxIterations = 1e3; - var _a6 = graphData.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = graphData.edges, edges = _b === void 0 ? [] : _b; - var nodesCount = nodes.length; - var currentRank; - var curRanks = {}; - var prevRanks = {}; - for (var j4 = 0; j4 < nodesCount; ++j4) { - var node = nodes[j4]; - var nodeId = node.id; - curRanks[nodeId] = 1 / nodesCount; - prevRanks[nodeId] = 1 / nodesCount; - } - var nodeDegree = degree_default(graphData); - while (maxIterations > 0 && distance15 > epsilon) { - leakedRank = 0; - for (var j4 = 0; j4 < nodesCount; ++j4) { - var node = nodes[j4]; - var nodeId = node.id; - currentRank = 0; - if (nodeDegree[node.id].inDegree === 0) { - curRanks[nodeId] = 0; - } else { - var neighbors = getNeighbors(nodeId, edges, "source"); - for (var i4 = 0; i4 < neighbors.length; ++i4) { - var neighbor = neighbors[i4]; - var outDegree = nodeDegree[neighbor].outDegree; - if (outDegree > 0) - currentRank += prevRanks[neighbor] / outDegree; - } - curRanks[nodeId] = linkProb * currentRank; - leakedRank += curRanks[nodeId]; - } - } - leakedRank = (1 - leakedRank) / nodesCount; - distance15 = 0; - for (var j4 = 0; j4 < nodesCount; ++j4) { - var node = nodes[j4]; - var nodeId = node.id; - currentRank = curRanks[nodeId] + leakedRank; - distance15 += Math.abs(currentRank - prevRanks[nodeId]); - prevRanks[nodeId] = currentRank; - } - maxIterations -= 1; - } - return prevRanks; -}; -var pageRank_default = pageRank; - -// node_modules/@antv/algorithm/es/gSpan/struct.js -var VACANT_EDGE_ID = -1; -var VACANT_NODE_ID = -1; -var VACANT_EDGE_LABEL = "-1"; -var VACANT_NODE_LABEL = "-1"; -var VACANT_GRAPH_ID = -1; -var Edge2 = function() { - function Edge4(id, from, to, label17) { - if (id === void 0) { - id = VACANT_EDGE_ID; - } - if (from === void 0) { - from = VACANT_NODE_ID; - } - if (to === void 0) { - to = VACANT_NODE_ID; - } - if (label17 === void 0) { - label17 = VACANT_EDGE_LABEL; - } - this.id = id; - this.from = from; - this.to = to; - this.label = label17; - } - return Edge4; -}(); -var Node3 = function() { - function Node5(id, label17) { - if (id === void 0) { - id = VACANT_NODE_ID; - } - if (label17 === void 0) { - label17 = VACANT_NODE_LABEL; - } - this.id = id; - this.label = label17; - this.edges = []; - this.edgeMap = {}; - } - Node5.prototype.addEdge = function(edge2) { - this.edges.push(edge2); - this.edgeMap[edge2.id] = edge2; - }; - return Node5; -}(); -var Graph = function() { - function Graph10(id, edgeIdAutoIncrease, directed) { - if (id === void 0) { - id = VACANT_NODE_ID; - } - if (edgeIdAutoIncrease === void 0) { - edgeIdAutoIncrease = true; - } - if (directed === void 0) { - directed = false; - } - this.id = id; - this.edgeIdAutoIncrease = edgeIdAutoIncrease; - this.edges = []; - this.nodes = []; - this.nodeMap = {}; - this.edgeMap = {}; - this.nodeLabelMap = {}; - this.edgeLabelMap = {}; - this.counter = 0; - this.directed = directed; - } - Graph10.prototype.getNodeNum = function() { - return this.nodes.length; - }; - Graph10.prototype.addNode = function(id, label17) { - if (this.nodeMap[id]) - return; - var node = new Node3(id, label17); - this.nodes.push(node); - this.nodeMap[id] = node; - if (!this.nodeLabelMap[label17]) - this.nodeLabelMap[label17] = []; - this.nodeLabelMap[label17].push(id); - }; - Graph10.prototype.addEdge = function(id, from, to, label17) { - if (this.edgeIdAutoIncrease || id === void 0) - id = this.counter++; - if (this.nodeMap[from] && this.nodeMap[to] && this.nodeMap[to].edgeMap[id]) - return; - var edge2 = new Edge2(id, from, to, label17); - this.edges.push(edge2); - this.edgeMap[id] = edge2; - this.nodeMap[from].addEdge(edge2); - if (!this.edgeLabelMap[label17]) - this.edgeLabelMap[label17] = []; - this.edgeLabelMap[label17].push(edge2); - if (!this.directed) { - var rEdge = new Edge2(id, to, from, label17); - this.nodeMap[to].addEdge(rEdge); - this.edgeLabelMap[label17].push(rEdge); - } - }; - return Graph10; -}(); - -// node_modules/@antv/algorithm/es/gSpan/gSpan.js -var DFSedge = function() { - function DFSedge2(fromNode, toNode, fromNodeLabel, edgeLabel, toNodeLabel) { - this.fromNode = fromNode; - this.toNode = toNode; - this.nodeEdgeNodeLabel = { - nodeLabel1: fromNodeLabel || VACANT_NODE_LABEL, - edgeLabel: edgeLabel || VACANT_EDGE_LABEL, - nodeLabel2: toNodeLabel || VACANT_NODE_LABEL - }; - } - DFSedge2.prototype.equalTo = function(other2) { - return this.fromNode === other2.formNode && this.toNode === other2.toNode && this.nodeEdgeNodeLabel === other2.nodeEdgeNodeLabel; - }; - DFSedge2.prototype.notEqualTo = function(other2) { - return !this.equalTo(other2); - }; - return DFSedge2; -}(); -var DFScode = function() { - function DFScode2() { - this.rmpath = []; - this.dfsEdgeList = []; - } - DFScode2.prototype.equalTo = function(other2) { - var aLength = this.dfsEdgeList.length; - var bLength = other2.length; - if (aLength !== bLength) - return false; - for (var i4 = 0; i4 < aLength; i4++) { - if (this.dfsEdgeList[i4] !== other2[i4]) - return false; - } - return true; - }; - DFScode2.prototype.notEqualTo = function(other2) { - return !this.equalTo(other2); - }; - DFScode2.prototype.pushBack = function(fromNode, toNode, fromNodeLabel, edgeLabel, toNodeLabel) { - this.dfsEdgeList.push(new DFSedge(fromNode, toNode, fromNodeLabel, edgeLabel, toNodeLabel)); - return this.dfsEdgeList; - }; - DFScode2.prototype.toGraph = function(graphId, directed) { - if (graphId === void 0) { - graphId = VACANT_GRAPH_ID; - } - if (directed === void 0) { - directed = false; - } - var graph = new Graph(graphId, true, directed); - this.dfsEdgeList.forEach(function(dfsEdge) { - var fromNodeId = dfsEdge.fromNode; - var toNodeId = dfsEdge.toNode; - var _a6 = dfsEdge.nodeEdgeNodeLabel, nodeLabel1 = _a6.nodeLabel1, edgeLabel = _a6.edgeLabel, nodeLabel2 = _a6.nodeLabel2; - if (nodeLabel1 !== VACANT_NODE_LABEL) - graph.addNode(fromNodeId, nodeLabel1); - if (nodeLabel2 !== VACANT_NODE_LABEL) - graph.addNode(toNodeId, nodeLabel2); - if (nodeLabel1 !== VACANT_NODE_LABEL && nodeLabel2 !== nodeLabel1) - graph.addEdge(void 0, fromNodeId, toNodeId, edgeLabel); - }); - return graph; - }; - DFScode2.prototype.buildRmpath = function() { - this.rmpath = []; - var oldFrom = void 0; - var selfLength = this.dfsEdgeList.length; - for (var i4 = selfLength - 1; i4 >= 0; i4--) { - var dfsEdge = this.dfsEdgeList[i4]; - var fromNodeIdx = dfsEdge.fromNode; - var toNodeIdx = dfsEdge.toNode; - if (fromNodeIdx < toNodeIdx && (oldFrom === void 0 || toNodeIdx === oldFrom)) { - this.rmpath.push(i4); - oldFrom = fromNodeIdx; - } - } - return this.rmpath; - }; - DFScode2.prototype.getNodeNum = function() { - var nodeMap = {}; - this.dfsEdgeList.forEach(function(dfsEdge) { - if (!nodeMap[dfsEdge.fromNode]) - nodeMap[dfsEdge.fromNode] = true; - if (!nodeMap[dfsEdge.toNode]) - nodeMap[dfsEdge.toNode] = true; - }); - return Object.keys(nodeMap).length; - }; - return DFScode2; -}(); -var History = function() { - function History2(pdfs) { - this.his = {}; - this.nodesUsed = {}; - this.edgesUsed = {}; - this.edges = []; - if (!pdfs) - return; - while (pdfs) { - var e4 = pdfs.edge; - this.edges.push(e4); - this.nodesUsed[e4.from] = 1; - this.nodesUsed[e4.to] = 1; - this.edgesUsed[e4.id] = 1; - pdfs = pdfs.preNode; - } - this.edges = this.edges.reverse(); - } - History2.prototype.hasNode = function(node) { - return this.nodesUsed[node.id] === 1; - }; - History2.prototype.hasEdge = function(edge2) { - return this.edgesUsed[edge2.id] === 1; - }; - return History2; -}(); -var GSpan = function() { - function GSpan2(_a6) { - var graphs8 = _a6.graphs, _b = _a6.minSupport, minSupport = _b === void 0 ? 2 : _b, _c = _a6.minNodeNum, minNodeNum = _c === void 0 ? 1 : _c, _d = _a6.maxNodeNum, maxNodeNum = _d === void 0 ? 4 : _d, _e = _a6.top, top = _e === void 0 ? 10 : _e, _f = _a6.directed, directed = _f === void 0 ? false : _f, _g = _a6.verbose, verbose = _g === void 0 ? false : _g; - this.graphs = graphs8; - this.dfsCode = new DFScode(); - this.support = 0; - this.frequentSize1Subgraphs = []; - this.frequentSubgraphs = []; - this.minSupport = minSupport; - this.top = top; - this.directed = directed; - this.counter = 0; - this.maxNodeNum = maxNodeNum; - this.minNodeNum = minNodeNum; - this.verbose = verbose; - if (this.maxNodeNum < this.minNodeNum) - this.maxNodeNum = this.minNodeNum; - this.reportDF = []; - } - GSpan2.prototype.findForwardRootEdges = function(graph, fromNode) { - var _this = this; - var result = []; - var nodeMap = graph.nodeMap; - fromNode.edges.forEach(function(edge2) { - if (_this.directed || fromNode.label <= nodeMap[edge2.to].label) - result.push(edge2); - }); - return result; - }; - GSpan2.prototype.findBackwardEdge = function(graph, edge1, edge2, history) { - if (!this.directed && edge1 === edge2) - return null; - var nodeMap = graph.nodeMap; - var edge2To = nodeMap[edge2.to]; - var edge2ToEdges = edge2To.edges; - var edgeLength = edge2ToEdges.length; - for (var i4 = 0; i4 < edgeLength; i4++) { - var edge3 = edge2ToEdges[i4]; - if (history.hasEdge(edge3) || edge3.to !== edge1.from) - continue; - if (!this.directed) { - if (edge1.label < edge3.label || edge1.label === edge3.label && nodeMap[edge1.to].label <= nodeMap[edge2.to].label) { - return edge3; - } - } else { - if (nodeMap[edge1.from].label < nodeMap[edge2.to].label || nodeMap[edge1.from].label === nodeMap[edge2.to].label && edge1.label <= edge3.label) { - return edge3; - } - } - } - return null; - }; - GSpan2.prototype.findForwardPureEdges = function(graph, rightmostEdge, minNodeLabel, history) { - var result = []; - var rightmostEdgeToId = rightmostEdge.to; - var edges = graph.nodeMap[rightmostEdgeToId].edges; - var edgeLength = edges.length; - for (var i4 = 0; i4 < edgeLength; i4++) { - var edge2 = edges[i4]; - var toNode = graph.nodeMap[edge2.to]; - if (minNodeLabel <= toNode.label && !history.hasNode(toNode)) { - result.push(edge2); - } - } - return result; - }; - GSpan2.prototype.findForwardRmpathEdges = function(graph, rightmostEdge, minNodeLabel, history) { - var result = []; - var nodeMap = graph.nodeMap; - var toNodeLabel = nodeMap[rightmostEdge.to].label; - var fromNode = nodeMap[rightmostEdge.from]; - var edges = fromNode.edges; - var edgeLength = edges.length; - for (var i4 = 0; i4 < edgeLength; i4++) { - var edge2 = edges[i4]; - var newToNodeLabel = nodeMap[edge2.to].label; - if (rightmostEdge.to === edge2.to || minNodeLabel > newToNodeLabel || history.hasNode(nodeMap[edge2.to])) { - continue; - } - if (rightmostEdge.label < edge2.label || rightmostEdge.label === edge2.label && toNodeLabel <= newToNodeLabel) { - result.push(edge2); - } - } - return result; - }; - GSpan2.prototype.getSupport = function(projected) { - var graphMap = {}; - projected.forEach(function(pro) { - if (!graphMap[pro.graphId]) - graphMap[pro.graphId] = true; - }); - return Object.keys(graphMap).length; - }; - GSpan2.prototype.findMinLabel = function(obj) { - var minLabel = void 0; - Object.keys(obj).forEach(function(nodeEdgeNodeLabel) { - var _a6 = obj[nodeEdgeNodeLabel], nodeLabel1 = _a6.nodeLabel1, edgeLabel = _a6.edgeLabel, nodeLabel2 = _a6.nodeLabel2; - if (!minLabel) { - minLabel = { - nodeLabel1, - edgeLabel, - nodeLabel2 - }; - return; - } - if (nodeLabel1 < minLabel.nodeLabel1 || nodeLabel1 === minLabel.nodeLabel1 && edgeLabel < minLabel.edgeLabel || nodeLabel1 === minLabel.nodeLabel1 && edgeLabel === minLabel.edgeLabel && nodeLabel2 < minLabel.nodeLabel2) { - minLabel = { - nodeLabel1, - edgeLabel, - nodeLabel2 - }; - } - }); - return minLabel; - }; - GSpan2.prototype.isMin = function() { - var _this = this; - var dfsCode = this.dfsCode; - if (this.verbose) - console.log("isMin checking", dfsCode); - if (dfsCode.dfsEdgeList.length === 1) - return true; - var directed = this.directed; - var graph = dfsCode.toGraph(VACANT_GRAPH_ID, directed); - var nodeMap = graph.nodeMap; - var dfsCodeMin = new DFScode(); - var root = {}; - graph.nodes.forEach(function(node) { - var forwardEdges = _this.findForwardRootEdges(graph, node); - forwardEdges.forEach(function(edge2) { - var otherNode = nodeMap[edge2.to]; - var nodeEdgeNodeLabel = "".concat(node.label, "-").concat(edge2.label, "-").concat(otherNode.label); - if (!root[nodeEdgeNodeLabel]) - root[nodeEdgeNodeLabel] = { - projected: [], - nodeLabel1: node.label, - edgeLabel: edge2.label, - nodeLabel2: otherNode.label - }; - var pdfs = { - graphId: graph.id, - edge: edge2, - preNode: null - }; - root[nodeEdgeNodeLabel].projected.push(pdfs); - }); - }); - var minLabel = this.findMinLabel(root); - if (!minLabel) - return; - dfsCodeMin.dfsEdgeList.push(new DFSedge(0, 1, minLabel.nodeLabel1, minLabel.edgeLabel, minLabel.nodeLabel2)); - var projectIsMin = function projectIsMin2(projected) { - var rmpath = dfsCodeMin.buildRmpath(); - var minNodeLabel = dfsCodeMin.dfsEdgeList[0].nodeEdgeNodeLabel.nodeLabel1; - var maxToC = dfsCodeMin.dfsEdgeList[rmpath[0]].toNode; - var backwardRoot = {}; - var flag = false, newTo = 0; - var end2 = directed ? -1 : 0; - var _loop_1 = function _loop_12(i5) { - if (flag) - return "break"; - projected.forEach(function(p4) { - var history = new History(p4); - var backwardEdge = _this.findBackwardEdge(graph, history.edges[rmpath[i5]], history.edges[rmpath[0]], history); - if (backwardEdge) { - if (!backwardRoot[backwardEdge.label]) { - backwardRoot[backwardEdge.label] = { - projected: [], - edgeLabel: backwardEdge.label - }; - } - backwardRoot[backwardEdge.label].projected.push({ - graphId: graph.id, - edge: backwardRoot, - preNode: p4 - }); - newTo = dfsCodeMin.dfsEdgeList[rmpath[i5]].fromNode; - flag = true; - } - }); - }; - for (var i4 = rmpath.length - 1; i4 > end2; i4--) { - var state_1 = _loop_1(i4); - if (state_1 === "break") - break; - } - if (flag) { - var minBackwardEdgeLabel = _this.findMinLabel(backwardRoot); - dfsCodeMin.dfsEdgeList.push(new DFSedge(maxToC, newTo, VACANT_NODE_LABEL, minBackwardEdgeLabel.edgeLabel, VACANT_NODE_LABEL)); - var idx_1 = dfsCodeMin.dfsEdgeList.length - 1; - if (_this.dfsCode.dfsEdgeList[idx_1] !== dfsCodeMin.dfsEdgeList[idx_1]) - return false; - return projectIsMin2(backwardRoot[minBackwardEdgeLabel.edgeLabel].projected); - } - var forwardRoot = {}; - flag = false; - var newFrom = 0; - projected.forEach(function(p4) { - var history = new History(p4); - var forwardPureEdges = _this.findForwardPureEdges(graph, history.edges[rmpath[0]], minNodeLabel, history); - if (forwardPureEdges.length > 0) { - flag = true; - newFrom = maxToC; - forwardPureEdges.forEach(function(edge2) { - var key2 = "".concat(edge2.label, "-").concat(nodeMap[edge2.to].label); - if (!forwardRoot[key2]) - forwardRoot[key2] = { - projected: [], - edgeLabel: edge2.label, - nodeLabel2: nodeMap[edge2.to].label - }; - forwardRoot[key2].projected.push({ - graphId: graph.id, - edge: edge2, - preNode: p4 - }); - }); - } - }); - var pathLength = rmpath.length; - var _loop_2 = function _loop_22(i5) { - if (flag) - return "break"; - var value2 = rmpath[i5]; - projected.forEach(function(p4) { - var history = new History(p4); - var forwardRmpathEdges = _this.findForwardRmpathEdges(graph, history.edges[value2], minNodeLabel, history); - if (forwardRmpathEdges.length > 0) { - flag = true; - newFrom = dfsCodeMin.dfsEdgeList[value2].fromNode; - forwardRmpathEdges.forEach(function(edge2) { - var key2 = "".concat(edge2.label, "-").concat(nodeMap[edge2.to].label); - if (!forwardRoot[key2]) - forwardRoot[key2] = { - projected: [], - edgeLabel: edge2.label, - nodeLabel2: nodeMap[edge2.to].label - }; - forwardRoot[key2].projected.push({ - graphId: graph.id, - edge: edge2, - preNode: p4 - }); - }); - } - }); - }; - for (var i4 = 0; i4 < pathLength; i4++) { - var state_2 = _loop_2(i4); - if (state_2 === "break") - break; - } - if (!flag) - return true; - var forwardMinEdgeNodeLabel = _this.findMinLabel(forwardRoot); - dfsCodeMin.dfsEdgeList.push(new DFSedge(newFrom, maxToC + 1, VACANT_NODE_LABEL, forwardMinEdgeNodeLabel.edgeLabel, forwardMinEdgeNodeLabel.nodeLabel2)); - var idx = dfsCodeMin.dfsEdgeList.length - 1; - if (dfsCode.dfsEdgeList[idx] !== dfsCodeMin.dfsEdgeList[idx]) - return false; - return projectIsMin2(forwardRoot["".concat(forwardMinEdgeNodeLabel.edgeLabel, "-").concat(forwardMinEdgeNodeLabel.nodeLabel2)].projected); - }; - var key = "".concat(minLabel.nodeLabel1, "-").concat(minLabel.edgeLabel, "-").concat(minLabel.nodeLabel2); - return projectIsMin(root[key].projected); - }; - GSpan2.prototype.report = function() { - if (this.dfsCode.getNodeNum() < this.minNodeNum) - return; - this.counter++; - var graph = this.dfsCode.toGraph(this.counter, this.directed); - this.frequentSubgraphs.push(clone_default(graph)); - }; - GSpan2.prototype.subGraphMining = function(projected) { - var _this = this; - var support = this.getSupport(projected); - if (support < this.minSupport) - return; - if (!this.isMin()) - return; - this.report(); - var nodeNum = this.dfsCode.getNodeNum(); - var rmpath = this.dfsCode.buildRmpath(); - var maxToC = this.dfsCode.dfsEdgeList[rmpath[0]].toNode; - var minNodeLabel = this.dfsCode.dfsEdgeList[0].nodeEdgeNodeLabel.nodeLabel1; - var forwardRoot = {}; - var backwardRoot = {}; - projected.forEach(function(p4) { - var graph = _this.graphs[p4.graphId]; - var nodeMap = graph.nodeMap; - var history = new History(p4); - for (var i4 = rmpath.length - 1; i4 >= 0; i4--) { - var backwardEdge = _this.findBackwardEdge(graph, history.edges[rmpath[i4]], history.edges[rmpath[0]], history); - if (backwardEdge) { - var key = "".concat(_this.dfsCode.dfsEdgeList[rmpath[i4]].fromNode, "-").concat(backwardEdge.label); - if (!backwardRoot[key]) - backwardRoot[key] = { - projected: [], - toNodeId: _this.dfsCode.dfsEdgeList[rmpath[i4]].fromNode, - edgeLabel: backwardEdge.label - }; - backwardRoot[key].projected.push({ - graphId: p4.graphId, - edge: backwardEdge, - preNode: p4 - }); - } - } - if (nodeNum >= _this.maxNodeNum) - return; - var forwardPureEdges = _this.findForwardPureEdges(graph, history.edges[rmpath[0]], minNodeLabel, history); - forwardPureEdges.forEach(function(edge2) { - var key2 = "".concat(maxToC, "-").concat(edge2.label, "-").concat(nodeMap[edge2.to].label); - if (!forwardRoot[key2]) - forwardRoot[key2] = { - projected: [], - fromNodeId: maxToC, - edgeLabel: edge2.label, - nodeLabel2: nodeMap[edge2.to].label - }; - forwardRoot[key2].projected.push({ - graphId: p4.graphId, - edge: edge2, - preNode: p4 - }); - }); - var _loop_3 = function _loop_32(i5) { - var forwardRmpathEdges = _this.findForwardRmpathEdges(graph, history.edges[rmpath[i5]], minNodeLabel, history); - forwardRmpathEdges.forEach(function(edge2) { - var key2 = "".concat(_this.dfsCode.dfsEdgeList[rmpath[i5]].fromNode, "-").concat(edge2.label, "-").concat(nodeMap[edge2.to].label); - if (!forwardRoot[key2]) - forwardRoot[key2] = { - projected: [], - fromNodeId: _this.dfsCode.dfsEdgeList[rmpath[i5]].fromNode, - edgeLabel: edge2.label, - nodeLabel2: nodeMap[edge2.to].label - }; - forwardRoot[key2].projected.push({ - graphId: p4.graphId, - edge: edge2, - preNode: p4 - }); - }); - }; - for (var i4 = 0; i4 < rmpath.length; i4++) { - _loop_3(i4); - } - }); - Object.keys(backwardRoot).forEach(function(key) { - var _a6 = backwardRoot[key], toNodeId = _a6.toNodeId, edgeLabel = _a6.edgeLabel; - _this.dfsCode.dfsEdgeList.push(new DFSedge(maxToC, toNodeId, "-1", edgeLabel, "-1")); - _this.subGraphMining(backwardRoot[key].projected); - _this.dfsCode.dfsEdgeList.pop(); - }); - Object.keys(forwardRoot).forEach(function(key) { - var _a6 = forwardRoot[key], fromNodeId = _a6.fromNodeId, edgeLabel = _a6.edgeLabel, nodeLabel2 = _a6.nodeLabel2; - _this.dfsCode.dfsEdgeList.push(new DFSedge(fromNodeId, maxToC + 1, VACANT_NODE_LABEL, edgeLabel, nodeLabel2)); - _this.subGraphMining(forwardRoot[key].projected); - _this.dfsCode.dfsEdgeList.pop(); - }); - }; - GSpan2.prototype.generate1EdgeFrequentSubGraphs = function() { - var graphs8 = this.graphs; - var directed = this.directed; - var minSupport = this.minSupport; - var frequentSize1Subgraphs = this.frequentSize1Subgraphs; - var nodeLabelCounter = {}, nodeEdgeNodeCounter = {}; - var nodeLableCounted = {}; - var nodeEdgeNodeLabelCounted = {}; - Object.keys(graphs8).forEach(function(key) { - var graph = graphs8[key]; - var nodeMap = graph.nodeMap; - graph.nodes.forEach(function(node, i4) { - var nodeLabel = node.label; - var graphNodeKey = "".concat(key, "-").concat(nodeLabel); - if (!nodeLableCounted[graphNodeKey]) { - var counter = nodeLabelCounter[nodeLabel] || 0; - counter++; - nodeLabelCounter[nodeLabel] = counter; - } - nodeLableCounted[graphNodeKey] = { - graphKey: key, - label: nodeLabel - }; - node.edges.forEach(function(edge2) { - var nodeLabel1 = nodeLabel; - var nodeLabel2 = nodeMap[edge2.to].label; - if (!directed && nodeLabel1 > nodeLabel2) { - var tmp = nodeLabel2; - nodeLabel2 = nodeLabel1; - nodeLabel1 = tmp; - } - var edgeLabel = edge2.label; - var graphNodeEdgeNodeKey = "".concat(key, "-").concat(nodeLabel1, "-").concat(edgeLabel, "-").concat(nodeLabel2); - var nodeEdgeNodeKey = "".concat(nodeLabel1, "-").concat(edgeLabel, "-").concat(nodeLabel2); - if (!nodeEdgeNodeCounter[nodeEdgeNodeKey]) { - var counter2 = nodeEdgeNodeCounter[nodeEdgeNodeKey] || 0; - counter2++; - nodeEdgeNodeCounter[nodeEdgeNodeKey] = counter2; - } - nodeEdgeNodeLabelCounted[graphNodeEdgeNodeKey] = { - graphId: key, - nodeLabel1, - edgeLabel, - nodeLabel2 - }; - }); - }); - }); - Object.keys(nodeLabelCounter).forEach(function(label17) { - var count2 = nodeLabelCounter[label17]; - if (count2 < minSupport) - return; - var g4 = { - nodes: [], - edges: [] - }; - g4.nodes.push({ - id: "0", - label: label17 - }); - frequentSize1Subgraphs.push(g4); - }); - return frequentSize1Subgraphs; - }; - GSpan2.prototype.run = function() { - var _this = this; - this.frequentSize1Subgraphs = this.generate1EdgeFrequentSubGraphs(); - if (this.maxNodeNum < 2) - return; - var graphs8 = this.graphs; - var directed = this.directed; - var root = {}; - Object.keys(graphs8).forEach(function(graphId) { - var graph = graphs8[graphId]; - var nodeMap = graph.nodeMap; - graph.nodes.forEach(function(node) { - var forwardRootEdges = _this.findForwardRootEdges(graph, node); - forwardRootEdges.forEach(function(edge2) { - var toNode = nodeMap[edge2.to]; - var nodeEdgeNodeLabel = "".concat(node.label, "-").concat(edge2.label, "-").concat(toNode.label); - if (!root[nodeEdgeNodeLabel]) - root[nodeEdgeNodeLabel] = { - projected: [], - nodeLabel1: node.label, - edgeLabel: edge2.label, - nodeLabel2: toNode.label - }; - var pdfs = { - graphId, - edge: edge2, - preNode: null - }; - root[nodeEdgeNodeLabel].projected.push(pdfs); - }); - }); - }); - Object.keys(root).forEach(function(nodeEdgeNodeLabel) { - var _a6 = root[nodeEdgeNodeLabel], projected = _a6.projected, nodeLabel1 = _a6.nodeLabel1, edgeLabel = _a6.edgeLabel, nodeLabel2 = _a6.nodeLabel2; - _this.dfsCode.dfsEdgeList.push(new DFSedge(0, 1, nodeLabel1, edgeLabel, nodeLabel2)); - _this.subGraphMining(projected); - _this.dfsCode.dfsEdgeList.pop(); - }); - }; - return GSpan2; -}(); -var formatGraphs = function formatGraphs2(graphs8, directed, nodeLabelProp, edgeLabelProp) { - var result = {}; - Object.keys(graphs8).forEach(function(key, i4) { - var graph = graphs8[key]; - var fGraph = new Graph(i4, true, directed); - var nodeIdxMap = {}; - graph.nodes.forEach(function(node, j4) { - fGraph.addNode(j4, node[nodeLabelProp]); - nodeIdxMap[node.id] = j4; - }); - graph.edges.forEach(function(edge2, k4) { - var sourceIdx = nodeIdxMap[edge2.source]; - var targetIdx = nodeIdxMap[edge2.target]; - fGraph.addEdge(-1, sourceIdx, targetIdx, edge2[edgeLabelProp]); - }); - if (fGraph && fGraph.getNodeNum()) - result[fGraph.id] = fGraph; - }); - return result; -}; -var toGraphDatas = function toGraphDatas2(graphs8, nodeLabelProp, edgeLabelProp) { - var result = []; - graphs8.forEach(function(graph) { - var graphData = { - nodes: [], - edges: [] - }; - graph.nodes.forEach(function(node) { - var _a6; - graphData.nodes.push((_a6 = { - id: "".concat(node.id) - }, _a6[nodeLabelProp] = node.label, _a6)); - }); - graph.edges.forEach(function(edge2) { - var _a6; - graphData.edges.push((_a6 = { - source: "".concat(edge2.from), - target: "".concat(edge2.to) - }, _a6[edgeLabelProp] = edge2.label, _a6)); - }); - result.push(graphData); - }); - return result; -}; -var DEFAULT_LABEL_NAME = "cluster"; -var gSpan = function gSpan2(params) { - var graphs8 = params.graphs, _a6 = params.directed, directed = _a6 === void 0 ? false : _a6, _b = params.nodeLabelProp, nodeLabelProp = _b === void 0 ? DEFAULT_LABEL_NAME : _b, _c = params.edgeLabelProp, edgeLabelProp = _c === void 0 ? DEFAULT_LABEL_NAME : _c; - var formattedGraphs = formatGraphs(graphs8, directed, nodeLabelProp, edgeLabelProp); - var minSupport = params.minSupport, maxNodeNum = params.maxNodeNum, minNodeNum = params.minNodeNum, verbose = params.verbose, top = params.top; - var algoParams = { - graphs: formattedGraphs, - minSupport, - maxNodeNum, - minNodeNum, - top, - verbose, - directed - }; - var calculator = new GSpan(algoParams); - calculator.run(); - var result = toGraphDatas(calculator.frequentSubgraphs, nodeLabelProp, edgeLabelProp); - return result; -}; -var gSpan_default = gSpan; - -// node_modules/@antv/algorithm/es/gaddi.js -var findKNeighborUnits = function findKNeighborUnits2(graphData, spm, nodeLabelProp, k4) { - if (nodeLabelProp === void 0) { - nodeLabelProp = "cluster"; - } - if (k4 === void 0) { - k4 = 2; - } - var units = []; - var nodes = graphData.nodes; - spm.forEach(function(row, i4) { - units.push(findKNeighborUnit(nodes, row, i4, nodeLabelProp, k4)); - }); - return units; -}; -var findKNeighborUnit = function findKNeighborUnit2(nodes, row, i4, nodeLabelProp, k4) { - var unitNodeIdxs = [i4]; - var neighbors = []; - var labelCountMap = {}; - row.forEach(function(v3, j4) { - if (v3 <= k4 && i4 !== j4) { - unitNodeIdxs.push(j4); - neighbors.push(nodes[j4]); - var label17 = nodes[j4][nodeLabelProp]; - if (!labelCountMap[label17]) - labelCountMap[label17] = { - count: 1, - dists: [v3] - }; - else { - labelCountMap[label17].count++; - labelCountMap[label17].dists.push(v3); - } - } - }); - Object.keys(labelCountMap).forEach(function(label17) { - labelCountMap[label17].dists = labelCountMap[label17].dists.sort(function(a4, b10) { - return a4 - b10; - }); - }); - return { - nodeIdx: i4, - nodeId: nodes[i4].id, - nodeIdxs: unitNodeIdxs, - neighbors, - neighborNum: unitNodeIdxs.length - 1, - nodeLabelCountMap: labelCountMap - }; -}; -var findNodePairsRandomly = function findNodePairsRandomly2(k4, nodeNum, maxNodePairNum, kNeighborUnits, spm) { - var nodePairNumEachNode = Math.ceil(maxNodePairNum / nodeNum); - var nodePairMap = {}; - var foundNodePairCount = 0; - kNeighborUnits.forEach(function(unit, i4) { - var nodePairForICount = 0; - var outerLoopCount = 0; - var neighbors = unit.nodeIdxs; - var neighborNum = unit.neighborNum - 1; - while (nodePairForICount < nodePairNumEachNode) { - var oidx = neighbors[1 + Math.floor(Math.random() * neighborNum)]; - var innerLoopCount = 0; - while (nodePairMap["".concat(i4, "-").concat(oidx)] || nodePairMap["".concat(oidx, "-").concat(i4)]) { - oidx = Math.floor(Math.random() * nodeNum); - innerLoopCount++; - if (innerLoopCount > 2 * nodeNum) - break; - } - if (innerLoopCount < 2 * nodeNum) { - nodePairMap["".concat(i4, "-").concat(oidx)] = { - start: i4, - end: oidx, - distance: spm[i4][oidx] - }; - nodePairForICount++; - foundNodePairCount++; - if (foundNodePairCount >= maxNodePairNum) - return nodePairMap; - } - outerLoopCount++; - if (outerLoopCount > 2 * nodeNum) - break; - } - if (nodePairForICount < nodePairNumEachNode) { - var gap = nodePairNumEachNode - nodePairForICount; - nodePairNumEachNode = (nodePairNumEachNode + gap) / (nodeNum - i4 - 1); - } - }); - return nodePairMap; -}; -var getIntersectNeighborInducedGraph = function getIntersectNeighborInducedGraph2(nodePairMap, neighborUnits, graphData, cachedInducedGraphMap) { - var nodes = graphData.nodes; - if (!cachedInducedGraphMap) - cachedInducedGraphMap = {}; - Object.keys(nodePairMap).forEach(function(key) { - var _a6, _b; - if (cachedInducedGraphMap && cachedInducedGraphMap[key]) - return; - cachedInducedGraphMap[key] = { - nodes: [], - edges: [] - }; - var pair = nodePairMap[key]; - var startUnitNodeIds = (_a6 = neighborUnits[pair.start]) === null || _a6 === void 0 ? void 0 : _a6.nodeIdxs; - var endUnitNodeIds = (_b = neighborUnits[pair.end]) === null || _b === void 0 ? void 0 : _b.nodeIdxs; - if (!startUnitNodeIds || !endUnitNodeIds) - return; - var endSet = new Set(endUnitNodeIds); - var intersect2 = startUnitNodeIds.filter(function(x6) { - return endSet.has(x6); - }); - if (!intersect2 || !intersect2.length) - return; - var intersectIdMap = {}; - var intersectLength = intersect2.length; - for (var i4 = 0; i4 < intersectLength; i4++) { - var node = nodes[intersect2[i4]]; - cachedInducedGraphMap[key].nodes.push(node); - intersectIdMap[node.id] = true; - } - graphData.edges.forEach(function(edge2) { - if (intersectIdMap[edge2.source] && intersectIdMap[edge2.target]) - cachedInducedGraphMap[key].edges.push(edge2); - }); - }); - return cachedInducedGraphMap; -}; -var getMatchedCount = function getMatchedCount2(graph, structure, nodeLabelProp, edgeLabelProp) { - var _a6, _b; - var nodeMap = {}; - graph.nodes.forEach(function(node) { - nodeMap[node.id] = node; - }); - var count2 = 0; - if (!((_a6 = structure === null || structure === void 0 ? void 0 : structure.edges) === null || _a6 === void 0 ? void 0 : _a6.length) || ((_b = structure === null || structure === void 0 ? void 0 : structure.nodes) === null || _b === void 0 ? void 0 : _b.length) < 2) - return 0; - graph.edges.forEach(function(e4) { - var sourceLabel = nodeMap[e4.source][nodeLabelProp]; - var targetLabel = nodeMap[e4.target][nodeLabelProp]; - var strNodeLabel1 = structure === null || structure === void 0 ? void 0 : structure.nodes[0][nodeLabelProp]; - var strNodeLabel2 = structure === null || structure === void 0 ? void 0 : structure.nodes[1][nodeLabelProp]; - var strEdgeLabel = structure === null || structure === void 0 ? void 0 : structure.edges[0][edgeLabelProp]; - if (e4[edgeLabelProp] !== strEdgeLabel) - return; - if (sourceLabel === strNodeLabel1 && targetLabel === strNodeLabel2 || sourceLabel === strNodeLabel2 && targetLabel === strNodeLabel1) { - count2++; - } - }); - return count2; -}; -var findRepresentStructure = function findRepresentStructure2(matchedCountMap, structureNum, structures) { - var maxOffset = Infinity, representClusterType = 0; - var _loop_1 = function _loop_12(i5) { - var countMapI = matchedCountMap[i5]; - var sortedGraphKeys = Object.keys(countMapI).sort(function(a4, b10) { - return countMapI[a4] - countMapI[b10]; - }); - var groupNum = 10; - var clusters = []; - sortedGraphKeys.forEach(function(key, j4) { - if (!clusters[j4 % groupNum]) - clusters[j4 % groupNum] = { - graphs: [], - totalCount: 0, - aveCount: 0 - }; - clusters[j4 % groupNum].graphs.push(key); - clusters[j4 % groupNum].totalCount += countMapI[key]; - }); - var aveIntraDist = 0; - var aveCounts = []; - clusters.forEach(function(graphsInCluster) { - var aveCount = graphsInCluster.totalCount / graphsInCluster.graphs.length; - graphsInCluster.aveCount = aveCount; - aveCounts.push(aveCount); - var aveIntraPerCluster = 0; - var graphsNum = graphsInCluster.length; - graphsInCluster.graphs.forEach(function(graphKey1, j4) { - var graph1Count = countMapI[graphKey1]; - graphsInCluster.graphs.forEach(function(graphKey2, k4) { - if (j4 === k4) - return; - aveIntraPerCluster += Math.abs(graph1Count - countMapI[graphKey2]); - }); - }); - aveIntraPerCluster /= graphsNum * (graphsNum - 1) / 2; - aveIntraDist += aveIntraPerCluster; - }); - aveIntraDist /= clusters.length; - var aveInterDist = 0; - aveCounts.forEach(function(aveCount1, j4) { - aveCounts.forEach(function(aveCount2, k4) { - if (j4 === k4) - return; - aveInterDist += Math.abs(aveCount1 - aveCount2); - }); - aveInterDist /= aveCounts.length * (aveCounts.length - 1) / 2; - }); - var offset = aveInterDist - aveIntraDist; - if (maxOffset < offset) { - maxOffset = offset; - representClusterType = i5; - } - }; - for (var i4 = 0; i4 < structureNum; i4++) { - _loop_1(i4); - } - return { - structure: structures[representClusterType], - structureCountMap: matchedCountMap[representClusterType] - }; -}; -var getNodeMaps = function getNodeMaps2(nodes, nodeLabelProp) { - var nodeMap = {}, nodeLabelMap = {}; - nodes.forEach(function(node, i4) { - nodeMap[node.id] = { - idx: i4, - node, - degree: 0, - inDegree: 0, - outDegree: 0 - }; - var label17 = node[nodeLabelProp]; - if (!nodeLabelMap[label17]) - nodeLabelMap[label17] = []; - nodeLabelMap[label17].push(node); - }); - return { - nodeMap, - nodeLabelMap - }; -}; -var getEdgeMaps = function getEdgeMaps2(edges, edgeLabelProp, nodeMap) { - var edgeMap = {}, edgeLabelMap = {}; - edges.forEach(function(edge2, i4) { - edgeMap["".concat(uniqueId)] = { - idx: i4, - edge: edge2 - }; - var label17 = edge2[edgeLabelProp]; - if (!edgeLabelMap[label17]) - edgeLabelMap[label17] = []; - edgeLabelMap[label17].push(edge2); - var sourceNode = nodeMap[edge2.source]; - if (sourceNode) { - sourceNode.degree++; - sourceNode.outDegree++; - } - var targetNode = nodeMap[edge2.target]; - if (targetNode) { - targetNode.degree++; - targetNode.inDegree++; - } - }); - return { - edgeMap, - edgeLabelMap - }; -}; -var getSpmMap = function getSpmMap2(nodes, spm, directed) { - var length5 = spm.length; - var map6 = {}; - spm.forEach(function(row, i4) { - var start = directed ? 0 : i4 + 1; - var iId = nodes[i4].id; - for (var j4 = start; j4 < length5; j4++) { - if (i4 === j4) - continue; - var jId = nodes[j4].id; - var dist4 = row[j4]; - map6["".concat(iId, "-").concat(jId)] = dist4; - if (!directed) - map6["".concat(jId, "-").concat(iId)] = dist4; - } - }); - return map6; -}; -var getNDSDist = function getNDSDist2(graph, node1, node2, nodeMap, spDist, kNeighborUnits, structure, nodeLabelProp, edgeLabelProp, cachedNDSMap, cachedInterInducedGraph) { - var _a6; - var key = "".concat(node1.id, "-").concat(node2.id); - if (cachedNDSMap && cachedNDSMap[key]) - return cachedNDSMap[key]; - var interInducedGraph = cachedInterInducedGraph ? cachedInterInducedGraph[key] : void 0; - if (!interInducedGraph) { - var pairMap = (_a6 = {}, _a6[key] = { - start: nodeMap[node1.id].idx, - end: nodeMap[node2.id].idx, - distance: spDist - }, _a6); - cachedInterInducedGraph = getIntersectNeighborInducedGraph(pairMap, kNeighborUnits, graph, cachedInterInducedGraph); - interInducedGraph = cachedInterInducedGraph[key]; - } - return getMatchedCount(interInducedGraph, structure, nodeLabelProp, edgeLabelProp); -}; -var stashPatternNodeLabelDegreeMap = function stashPatternNodeLabelDegreeMap2(minPatternNodeLabelDegreeMap, neighborLabel, patternNodeMap, patternNodeLabelMap) { - var _a6, _b, _c; - var minPatternNodeLabelDegree = (_a6 = minPatternNodeLabelDegreeMap[neighborLabel]) === null || _a6 === void 0 ? void 0 : _a6.degree; - var minPatternNodeLabelInDegree = (_b = minPatternNodeLabelDegreeMap[neighborLabel]) === null || _b === void 0 ? void 0 : _b.inDegree; - var minPatternNodeLabelOutDegree = (_c = minPatternNodeLabelDegreeMap[neighborLabel]) === null || _c === void 0 ? void 0 : _c.outDegree; - if (minPatternNodeLabelDegreeMap[neighborLabel] === void 0) { - minPatternNodeLabelDegree = Infinity; - minPatternNodeLabelInDegree = Infinity; - minPatternNodeLabelOutDegree = Infinity; - patternNodeLabelMap[neighborLabel].forEach(function(patternNodeWithLabel) { - var patternNodeDegree = patternNodeMap[patternNodeWithLabel.id].degree; - if (minPatternNodeLabelDegree > patternNodeDegree) - minPatternNodeLabelDegree = patternNodeDegree; - var patternNodeInDegree = patternNodeMap[patternNodeWithLabel.id].inDegree; - if (minPatternNodeLabelInDegree > patternNodeInDegree) - minPatternNodeLabelInDegree = patternNodeInDegree; - var patternNodeOutDegree = patternNodeMap[patternNodeWithLabel.id].outDegree; - if (minPatternNodeLabelOutDegree > patternNodeOutDegree) - minPatternNodeLabelOutDegree = patternNodeOutDegree; - }); - minPatternNodeLabelDegreeMap[neighborLabel] = { - degree: minPatternNodeLabelDegree, - inDegree: minPatternNodeLabelInDegree, - outDegree: minPatternNodeLabelOutDegree - }; - } - return { - minPatternNodeLabelDegree, - minPatternNodeLabelInDegree, - minPatternNodeLabelOutDegree - }; -}; -var GADDI = function GADDI2(graphData, pattern2, directed, k4, length5, nodeLabelProp, edgeLabelProp) { - var _a6; - if (directed === void 0) { - directed = false; - } - if (nodeLabelProp === void 0) { - nodeLabelProp = "cluster"; - } - if (edgeLabelProp === void 0) { - edgeLabelProp = "cluster"; - } - if (!graphData || !graphData.nodes) - return; - var nodeNum = graphData.nodes.length; - if (!nodeNum) - return; - var spm = floydWarshall_default(graphData, directed); - var patternSpm = floydWarshall_default(pattern2, directed); - var spmMap = getSpmMap(graphData.nodes, spm, directed); - var patternSpmMap = getSpmMap(pattern2.nodes, patternSpm, directed); - var _b = getNodeMaps(graphData.nodes, nodeLabelProp), nodeMap = _b.nodeMap, nodeLabelMap = _b.nodeLabelMap; - var _c = getNodeMaps(pattern2.nodes, nodeLabelProp), patternNodeMap = _c.nodeMap, patternNodeLabelMap = _c.nodeLabelMap; - getEdgeMaps(graphData.edges, edgeLabelProp, nodeMap); - var patternEdgeLabelMap = getEdgeMaps(pattern2.edges, edgeLabelProp, patternNodeMap).edgeLabelMap; - var patternSpmSpread = []; - patternSpm === null || patternSpm === void 0 ? void 0 : patternSpm.forEach(function(row) { - patternSpmSpread = patternSpmSpread.concat(row); - }); - if (!length5) - length5 = Math.max.apply(Math, __spreadArray(__spreadArray([], patternSpmSpread, false), [2], false)); - if (!k4) - k4 = length5; - var kNeighborUnits = findKNeighborUnits(graphData, spm, nodeLabelProp, k4); - var patternKNeighborUnits = findKNeighborUnits(pattern2, patternSpm, nodeLabelProp, k4); - var maxNodePairNum = Math.min(100, nodeNum * (nodeNum - 1) / 2); - var nodePairsMap = findNodePairsRandomly(k4, nodeNum, maxNodePairNum, kNeighborUnits, spm); - var intGMap = getIntersectNeighborInducedGraph(nodePairsMap, kNeighborUnits, graphData); - var top = 10, minSupport = 1, minNodeNum = 1, maxNodeNum = 4; - var params = { - graphs: intGMap, - nodeLabelProp, - edgeLabelProp, - minSupport, - minNodeNum, - maxNodeNum, - directed - }; - var freStructures = gSpan_default(params).slice(0, top); - var structureNum = freStructures.length; - var matchedCountMap = []; - freStructures.forEach(function(structure, i5) { - matchedCountMap[i5] = {}; - Object.keys(intGMap).forEach(function(key) { - var graph = intGMap[key]; - var subStructureCount = getMatchedCount(graph, structure, nodeLabelProp, edgeLabelProp); - matchedCountMap[i5][key] = subStructureCount; - }); - }); - var _d = findRepresentStructure(matchedCountMap, structureNum, freStructures), dsG = _d.structure, ndsDist = _d.structureCountMap; - var beginPNode = pattern2.nodes[0], candidates = [], label17 = (_a6 = pattern2.nodes[0]) === null || _a6 === void 0 ? void 0 : _a6[nodeLabelProp], maxNodeNumWithSameLabel = -Infinity; - pattern2.nodes.forEach(function(node) { - var pLabel = node[nodeLabelProp]; - var nodesWithSameLabel = nodeLabelMap[pLabel]; - if ((nodesWithSameLabel === null || nodesWithSameLabel === void 0 ? void 0 : nodesWithSameLabel.length) > maxNodeNumWithSameLabel) { - maxNodeNumWithSameLabel = nodesWithSameLabel.length; - candidates = nodesWithSameLabel; - label17 = pLabel; - beginPNode = node; - } - }); - var minPatternNodeLabelDegreeMap = {}; - var patternIntGraphMap = {}, patternNDSDist = {}, patternNDSDistMap = {}; - var patternSpDist = {}; - var patternSpDistBack = {}; - Object.keys(patternNodeLabelMap).forEach(function(label22, j4) { - patternSpDist[label22] = []; - if (directed) { - patternSpDistBack[label22] = []; - } - var maxDist = -Infinity; - var patternNodesWithLabel2 = patternNodeLabelMap[label22]; - var patternNodePairMap = {}; - patternNodesWithLabel2.forEach(function(nodeWithLabel2) { - var dist4 = patternSpmMap["".concat(beginPNode.id, "-").concat(nodeWithLabel2.id)]; - dist4 && patternSpDist[label22].push(dist4); - if (maxDist < dist4) - maxDist = dist4; - patternNodePairMap["".concat(beginPNode.id, "-").concat(nodeWithLabel2.id)] = { - start: 0, - end: patternNodeMap[nodeWithLabel2.id].idx, - distance: dist4 - }; - if (directed) { - var distBack = patternSpmMap["".concat(nodeWithLabel2.id, "-").concat(beginPNode.id)]; - distBack && patternSpDistBack[label22].push(distBack); - } - }); - patternSpDist[label22] = patternSpDist[label22].sort(function(a4, b10) { - return a4 - b10; - }); - if (directed) - patternSpDistBack[label22] = patternSpDistBack[label22].sort(function(a4, b10) { - return a4 - b10; - }); - patternIntGraphMap = getIntersectNeighborInducedGraph(patternNodePairMap, patternKNeighborUnits, pattern2, patternIntGraphMap); - var currentPatternNDSDistArray = []; - Object.keys(patternNodePairMap).forEach(function(key) { - if (patternNDSDist[key]) { - currentPatternNDSDistArray.push(patternNDSDist[key]); - return; - } - var patternIntGraph = patternIntGraphMap[key]; - patternNDSDist[key] = getMatchedCount(patternIntGraph, dsG, nodeLabelProp, edgeLabelProp); - currentPatternNDSDistArray.push(patternNDSDist[key]); - }); - currentPatternNDSDistArray = currentPatternNDSDistArray.sort(function(a4, b10) { - return b10 - a4; - }); - patternNDSDistMap["".concat(beginPNode.id, "-").concat(label22)] = currentPatternNDSDistArray; - if (label22 === label17) - return; - var candidatesNum = (candidates === null || candidates === void 0 ? void 0 : candidates.length) || 0; - var _loop_4 = function _loop_42(m5) { - var cNode = candidates[m5]; - var graphNeighborUnit = kNeighborUnits[nodeMap[cNode.id].idx]; - var graphNeighborUnitCountMap = graphNeighborUnit.nodeLabelCountMap[label22]; - var patternLabel2Num = patternNodeLabelMap[label22].length; - if (!graphNeighborUnitCountMap || graphNeighborUnitCountMap.count < patternLabel2Num) { - candidates.splice(m5, 1); - return "continue"; - } - var prune2Invalid = false; - for (var n3 = 0; n3 < patternLabel2Num; n3++) { - if (graphNeighborUnitCountMap.dists[n3] > patternSpDist[label22][n3]) { - prune2Invalid = true; - break; - } - } - if (prune2Invalid) { - candidates.splice(m5, 1); - return "continue"; - } - var cNodePairMap = {}; - graphNeighborUnit.neighbors.forEach(function(neighborNode) { - var dist4 = spmMap["".concat(cNode.id, "-").concat(neighborNode.id)]; - cNodePairMap["".concat(cNode.id, "-").concat(neighborNode.id)] = { - start: nodeMap[cNode.id].idx, - end: nodeMap[neighborNode.id].idx, - distance: dist4 - }; - }); - intGMap = getIntersectNeighborInducedGraph(cNodePairMap, kNeighborUnits, graphData, intGMap); - var currentNDSDistArray = []; - Object.keys(cNodePairMap).forEach(function(key) { - if (ndsDist[key]) { - currentNDSDistArray.push(ndsDist[key]); - return; - } - var intGraph = intGMap[key]; - ndsDist[key] = getMatchedCount(intGraph, dsG, nodeLabelProp, edgeLabelProp); - currentNDSDistArray.push(ndsDist[key]); - }); - currentNDSDistArray = currentNDSDistArray.sort(function(a4, b10) { - return b10 - a4; - }); - var prune3Invalid = false; - for (var n3 = 0; n3 < patternLabel2Num; n3++) { - if (currentNDSDistArray[n3] < currentPatternNDSDistArray[n3]) { - prune3Invalid = true; - break; - } - } - if (prune3Invalid) { - candidates.splice(m5, 1); - return "continue"; - } - }; - for (var m4 = candidatesNum - 1; m4 >= 0; m4--) { - _loop_4(m4); - } - }); - var candidateGraphs = []; - candidates === null || candidates === void 0 ? void 0 : candidates.forEach(function(candidate) { - var nodeIdx = nodeMap[candidate.id].idx; - var lengthNeighborUnit = findKNeighborUnit(graphData.nodes, spm[nodeIdx], nodeIdx, nodeLabelProp, length5); - var neighborNodes = lengthNeighborUnit.neighbors; - var neighborNum = neighborNodes.length; - var unmatched = false; - for (var i5 = neighborNum - 1; i5 >= 0; i5--) { - if (neighborNodes.length + 1 < pattern2.nodes.length) { - unmatched = true; - return; - } - var neighborNode = neighborNodes[i5]; - var neighborLabel = neighborNode[nodeLabelProp]; - if (!patternNodeLabelMap[neighborLabel] || !patternNodeLabelMap[neighborLabel].length) { - neighborNodes.splice(i5, 1); - continue; - } - if (!patternSpDist[neighborLabel] || !patternSpDist[neighborLabel].length) { - neighborNodes.splice(i5, 1); - continue; - } - var key = "".concat(candidate.id, "-").concat(neighborNode.id); - var distToCandidate = spmMap[key]; - var idx = patternSpDist[neighborLabel].length - 1; - var maxDistWithLabelInPattern = patternSpDist[neighborLabel][idx]; - if (distToCandidate > maxDistWithLabelInPattern) { - neighborNodes.splice(i5, 1); - continue; - } - if (directed) { - var keyBack = "".concat(neighborNode.id, "-").concat(candidate.id); - var distFromCandidate = spmMap[keyBack]; - idx = patternSpDistBack[neighborLabel].length - 1; - var maxBackDistWithLabelInPattern = patternSpDistBack[neighborLabel][idx]; - if (distFromCandidate > maxBackDistWithLabelInPattern) { - neighborNodes.splice(i5, 1); - continue; - } - } - var ndsToCandidate = ndsDist[key] ? ndsDist[key] : getNDSDist(graphData, candidate, neighborNode, nodeMap, distToCandidate, kNeighborUnits, dsG, nodeLabelProp, edgeLabelProp, ndsDist, intGMap); - var patternKey = "".concat(beginPNode.id, "-").concat(neighborLabel); - var minNdsWithLabelInPattern = patternNDSDistMap[patternKey][patternNDSDistMap[patternKey].length - 1]; - if (ndsToCandidate < minNdsWithLabelInPattern) { - neighborNodes.splice(i5, 1); - continue; - } - var _a7 = stashPatternNodeLabelDegreeMap(minPatternNodeLabelDegreeMap, neighborLabel, patternNodeMap, patternNodeLabelMap), minPatternNodeLabelDegree = _a7.minPatternNodeLabelDegree, minPatternNodeLabelInDegree = _a7.minPatternNodeLabelInDegree, minPatternNodeLabelOutDegree = _a7.minPatternNodeLabelOutDegree; - if (nodeMap[neighborNode.id].degree < minPatternNodeLabelDegree) { - neighborNodes.splice(i5, 1); - continue; - } - } - if (!unmatched) { - candidateGraphs.push({ - nodes: [candidate].concat(neighborNodes) - }); - } - }); - var undirectedLengthsToBeginPNode = dijkstra_default(pattern2, beginPNode.id, false).length; - var undirectedLengthsToBeginPNodeLabelMap = {}; - if (directed) { - Object.keys(undirectedLengthsToBeginPNode).forEach(function(nodeId) { - var nodeLabel = patternNodeMap[nodeId].node[nodeLabelProp]; - if (!undirectedLengthsToBeginPNodeLabelMap[nodeLabel]) - undirectedLengthsToBeginPNodeLabelMap[nodeLabel] = [undirectedLengthsToBeginPNode[nodeId]]; - else - undirectedLengthsToBeginPNodeLabelMap[nodeLabel].push(undirectedLengthsToBeginPNode[nodeId]); - }); - Object.keys(undirectedLengthsToBeginPNodeLabelMap).forEach(function(pLabel) { - undirectedLengthsToBeginPNodeLabelMap[pLabel].sort(function(a4, b10) { - return a4 - b10; - }); - }); - } else { - undirectedLengthsToBeginPNodeLabelMap = patternSpDist; - } - var candidateGraphNum = candidateGraphs.length; - var _loop_2 = function _loop_22(i5) { - var candidateGraph = candidateGraphs[i5]; - var candidate = candidateGraph.nodes[0]; - var candidateNodeLabelCountMap = {}; - var candidateNodeMap = {}; - candidateGraph.nodes.forEach(function(node, q4) { - candidateNodeMap[node.id] = { - idx: q4, - node, - degree: 0, - inDegree: 0, - outDegree: 0 - }; - var cNodeLabel2 = node[nodeLabelProp]; - if (!candidateNodeLabelCountMap[cNodeLabel2]) - candidateNodeLabelCountMap[cNodeLabel2] = 1; - else - candidateNodeLabelCountMap[cNodeLabel2]++; - }); - var candidateEdges = []; - var edgeLabelCountMap = {}; - graphData.edges.forEach(function(edge2) { - if (candidateNodeMap[edge2.source] && candidateNodeMap[edge2.target]) { - candidateEdges.push(edge2); - if (!edgeLabelCountMap[edge2[edgeLabelProp]]) - edgeLabelCountMap[edge2[edgeLabelProp]] = 1; - else - edgeLabelCountMap[edge2[edgeLabelProp]]++; - candidateNodeMap[edge2.source].degree++; - candidateNodeMap[edge2.target].degree++; - candidateNodeMap[edge2.source].outDegree++; - candidateNodeMap[edge2.target].inDegree++; - } - }); - var pattenrEdgeLabelNum = Object.keys(patternEdgeLabelMap).length; - var prunedByEdgeLabel = false; - for (var e4 = 0; e4 < pattenrEdgeLabelNum; e4++) { - var label_1 = Object.keys(patternEdgeLabelMap)[e4]; - if (!edgeLabelCountMap[label_1] || edgeLabelCountMap[label_1] < patternEdgeLabelMap[label_1].length) { - prunedByEdgeLabel = true; - break; - } - } - if (prunedByEdgeLabel) { - candidateGraphs.splice(i5, 1); - return "continue"; - } - var candidateEdgeNum = candidateEdges.length; - if (candidateEdgeNum < pattern2.edges.length) { - candidateGraphs.splice(i5, 1); - return "break"; - } - var candidateGraphInvalid = false; - var _loop_5 = function _loop_52(e6) { - var edge2 = candidateEdges[e6]; - var edgeLabel2 = edge2[edgeLabelProp]; - var patternEdgesWithLabel = patternEdgeLabelMap[edgeLabel2]; - if (!patternEdgesWithLabel || !patternEdgesWithLabel.length) { - edgeLabelCountMap[edgeLabel2]--; - if (patternEdgesWithLabel && edgeLabelCountMap[edgeLabel2] < patternEdgesWithLabel.length) { - candidateGraphInvalid = true; - return "break"; - } - candidateEdges.splice(e6, 1); - candidateNodeMap[edge2.source].degree--; - candidateNodeMap[edge2.target].degree--; - candidateNodeMap[edge2.source].outDegree--; - candidateNodeMap[edge2.target].inDegree--; - return "continue"; - } - var sourceLabel = candidateNodeMap[edge2.source].node[nodeLabelProp]; - var targetLabel = candidateNodeMap[edge2.target].node[nodeLabelProp]; - var edgeMatched = false; - patternEdgesWithLabel.forEach(function(patternEdge) { - var patternSource = patternNodeMap[patternEdge.source].node; - var patternTarget = patternNodeMap[patternEdge.target].node; - if (patternSource[nodeLabelProp] === sourceLabel && patternTarget[nodeLabelProp] === targetLabel) - edgeMatched = true; - if (!directed && patternSource[nodeLabelProp] === targetLabel && patternTarget[nodeLabelProp] === sourceLabel) - edgeMatched = true; - }); - if (!edgeMatched) { - edgeLabelCountMap[edgeLabel2]--; - if (patternEdgesWithLabel && edgeLabelCountMap[edgeLabel2] < patternEdgesWithLabel.length) { - candidateGraphInvalid = true; - return "break"; - } - candidateEdges.splice(e6, 1); - candidateNodeMap[edge2.source].degree--; - candidateNodeMap[edge2.target].degree--; - candidateNodeMap[edge2.source].outDegree--; - candidateNodeMap[edge2.target].inDegree--; - return "continue"; - } - }; - for (var e4 = candidateEdgeNum - 1; e4 >= 0; e4--) { - var state_2 = _loop_5(e4); - if (state_2 === "break") - break; - } - if (candidateGraphInvalid) { - candidateGraphs.splice(i5, 1); - return "continue"; - } - candidateGraph.edges = candidateEdges; - var lengthsToCandidate = dijkstra_default(candidateGraph, candidateGraph.nodes[0].id, false).length; - Object.keys(lengthsToCandidate).reverse().forEach(function(targetId) { - if (targetId === candidateGraph.nodes[0].id || candidateGraphInvalid) - return; - if (lengthsToCandidate[targetId] === Infinity) { - var targetNodeLabel = candidateNodeMap[targetId].node[nodeLabelProp]; - candidateNodeLabelCountMap[targetNodeLabel]--; - if (candidateNodeLabelCountMap[targetNodeLabel] < patternNodeLabelMap[targetNodeLabel].length) { - candidateGraphInvalid = true; - return; - } - var idx = candidateGraph.nodes.indexOf(candidateNodeMap[targetId].node); - candidateGraph.nodes.splice(idx, 1); - candidateNodeMap[targetId] = void 0; - return; - } - var nLabel = nodeMap[targetId].node[nodeLabelProp]; - if (!undirectedLengthsToBeginPNodeLabelMap[nLabel] || !undirectedLengthsToBeginPNodeLabelMap[nLabel].length || lengthsToCandidate[targetId] > undirectedLengthsToBeginPNodeLabelMap[nLabel][undirectedLengthsToBeginPNodeLabelMap[nLabel].length - 1]) { - var targetNodeLabel = candidateNodeMap[targetId].node[nodeLabelProp]; - candidateNodeLabelCountMap[targetNodeLabel]--; - if (candidateNodeLabelCountMap[targetNodeLabel] < patternNodeLabelMap[targetNodeLabel].length) { - candidateGraphInvalid = true; - return; - } - var idx = candidateGraph.nodes.indexOf(candidateNodeMap[targetId].node); - candidateGraph.nodes.splice(idx, 1); - candidateNodeMap[targetId] = void 0; - } - }); - if (candidateGraphInvalid) { - candidateGraphs.splice(i5, 1); - return "continue"; - } - var degreeChanged = true; - var loopCount = 0; - while (degreeChanged && !candidateGraphInvalid) { - degreeChanged = false; - var condition = directed ? candidateNodeMap[candidate.id].degree < patternNodeMap[beginPNode.id].degree || candidateNodeMap[candidate.id].inDegree < patternNodeMap[beginPNode.id].inDegree || candidateNodeMap[candidate.id].outDegree < patternNodeMap[beginPNode.id].outDegree : candidateNodeMap[candidate.id].degree < patternNodeMap[beginPNode.id].degree; - if (condition) { - candidateGraphInvalid = true; - break; - } - if (candidateNodeLabelCountMap[candidate[nodeLabelProp]] < patternNodeLabelMap[candidate[nodeLabelProp]].length) { - candidateGraphInvalid = true; - break; - } - var currentCandidateNodeNum = candidateGraph.nodes.length; - for (var o3 = currentCandidateNodeNum - 1; o3 >= 0; o3--) { - var cgNode = candidateGraph.nodes[o3]; - var nodeDegree = candidateNodeMap[cgNode.id].degree; - var nodeInDegree = candidateNodeMap[cgNode.id].inDegree; - var nodeOutDegree = candidateNodeMap[cgNode.id].outDegree; - var cNodeLabel = cgNode[nodeLabelProp]; - var _e = stashPatternNodeLabelDegreeMap(minPatternNodeLabelDegreeMap, cNodeLabel, patternNodeMap, patternNodeLabelMap), minPatternNodeLabelDegree = _e.minPatternNodeLabelDegree, minPatternNodeLabelInDegree = _e.minPatternNodeLabelInDegree, minPatternNodeLabelOutDegree = _e.minPatternNodeLabelOutDegree; - var deleteCondition = directed ? nodeDegree < minPatternNodeLabelDegree || nodeInDegree < minPatternNodeLabelInDegree || nodeOutDegree < minPatternNodeLabelOutDegree : nodeDegree < minPatternNodeLabelDegree; - if (deleteCondition) { - candidateNodeLabelCountMap[cgNode[nodeLabelProp]]--; - if (candidateNodeLabelCountMap[cgNode[nodeLabelProp]] < patternNodeLabelMap[cgNode[nodeLabelProp]].length) { - candidateGraphInvalid = true; - break; - } - candidateGraph.nodes.splice(o3, 1); - candidateNodeMap[cgNode.id] = void 0; - degreeChanged = true; - } - } - if (candidateGraphInvalid || !degreeChanged && loopCount !== 0) - break; - candidateEdgeNum = candidateEdges.length; - for (var y5 = candidateEdgeNum - 1; y5 >= 0; y5--) { - var cedge = candidateEdges[y5]; - if (!candidateNodeMap[cedge.source] || !candidateNodeMap[cedge.target]) { - candidateEdges.splice(y5, 1); - var edgeLabel = cedge[edgeLabelProp]; - edgeLabelCountMap[edgeLabel]--; - if (candidateNodeMap[cedge.source]) { - candidateNodeMap[cedge.source].degree--; - candidateNodeMap[cedge.source].outDegree--; - } - if (candidateNodeMap[cedge.target]) { - candidateNodeMap[cedge.target].degree--; - candidateNodeMap[cedge.target].inDegree--; - } - if (patternEdgeLabelMap[edgeLabel] && edgeLabelCountMap[edgeLabel] < patternEdgeLabelMap[edgeLabel].length) { - candidateGraphInvalid = true; - break; - } - degreeChanged = true; - } - } - loopCount++; - } - if (candidateGraphInvalid) { - candidateGraphs.splice(i5, 1); - return "continue"; - } - if (candidateGraphInvalid || candidateGraph.nodes.length < pattern2.nodes.length || candidateEdges.length < pattern2.edges.length) { - candidateGraphs.splice(i5, 1); - return "continue"; - } - }; - for (var i4 = candidateGraphNum - 1; i4 >= 0; i4--) { - var state_1 = _loop_2(i4); - if (state_1 === "break") - break; - } - var currentLength = candidateGraphs.length; - var _loop_3 = function _loop_32(i5) { - var cg1 = candidateGraphs[i5]; - var cg1EdgeMap = {}; - cg1.edges.forEach(function(edge2) { - var key = "".concat(edge2.source, "-").concat(edge2.target, "-").concat(edge2.label); - if (!cg1EdgeMap[key]) - cg1EdgeMap[key] = 1; - else - cg1EdgeMap[key]++; - }); - var _loop_6 = function _loop_62(j5) { - var cg2 = candidateGraphs[j5]; - var cg2EdgeMap = {}; - cg2.edges.forEach(function(edge2) { - var key = "".concat(edge2.source, "-").concat(edge2.target, "-").concat(edge2.label); - if (!cg2EdgeMap[key]) - cg2EdgeMap[key] = 1; - else - cg2EdgeMap[key]++; - }); - var same = true; - if (Object.keys(cg2EdgeMap).length !== Object.keys(cg1EdgeMap).length) { - same = false; - } else { - Object.keys(cg1EdgeMap).forEach(function(key) { - if (cg2EdgeMap[key] !== cg1EdgeMap[key]) - same = false; - }); - } - if (same) { - candidateGraphs.splice(j5, 1); - } - }; - for (var j4 = currentLength - 1; j4 > i5; j4--) { - _loop_6(j4); - } - currentLength = candidateGraphs.length; - }; - for (var i4 = 0; i4 <= currentLength - 1; i4++) { - _loop_3(i4); - } - return candidateGraphs; -}; -var gaddi_default = GADDI; - -// node_modules/@antv/algorithm/es/structs/stack.js -var Stack2 = function() { - function Stack3(maxStep) { - if (maxStep === void 0) { - maxStep = 10; - } - this.linkedList = new linked_list_default(); - this.maxStep = maxStep; - } - Object.defineProperty(Stack3.prototype, "length", { - get: function get3() { - return this.linkedList.toArray().length; - }, - enumerable: false, - configurable: true - }); - Stack3.prototype.isEmpty = function() { - return !this.linkedList.head; - }; - Stack3.prototype.isMaxStack = function() { - return this.toArray().length >= this.maxStep; - }; - Stack3.prototype.peek = function() { - if (this.isEmpty()) { - return null; - } - return this.linkedList.head.value; - }; - Stack3.prototype.push = function(value2) { - this.linkedList.prepend(value2); - if (this.length > this.maxStep) { - this.linkedList.deleteTail(); - } - }; - Stack3.prototype.pop = function() { - var removeHead = this.linkedList.deleteHead(); - return removeHead ? removeHead.value : null; - }; - Stack3.prototype.toArray = function() { - return this.linkedList.toArray().map(function(node) { - return node.value; - }); - }; - Stack3.prototype.clear = function() { - while (!this.isEmpty()) { - this.pop(); - } - }; - return Stack3; -}(); -var stack_default2 = Stack2; - -// node_modules/@antv/algorithm/es/index.js -var detectDirectedCycle3 = detect_cycle_default; -var es_default = { - getAdjMatrix: adjacent_matrix_default, - breadthFirstSearch: bfs_default, - connectedComponent: getConnectedComponents, - getDegree: degree_default, - getInDegree, - getOutDegree, - detectCycle: detect_cycle_default, - detectDirectedCycle: detectDirectedCycle3, - detectAllCycles, - detectAllDirectedCycle, - detectAllUndirectedCycle, - depthFirstSearch, - dijkstra: dijkstra_default, - findAllPath, - findShortestPath, - floydWarshall: floydWarshall_default, - labelPropagation: label_propagation_default, - louvain: louvain_default, - iLouvain: i_louvain_default, - kCore: k_core_default, - kMeans: k_means_default, - cosineSimilarity: cosine_similarity_default, - nodesCosineSimilarity: nodes_cosine_similarity_default, - minimumSpanningTree: mts_default, - pageRank: pageRank_default, - getNeighbors, - Stack: stack_default2, - GADDI: gaddi_default -}; - -// node_modules/@antv/g6-core/es/util/math.js -var math_exports = {}; -__export(math_exports, { - Line: () => Line7, - applyMatrix: () => applyMatrix, - compare: () => compare2, - distance: () => distance10, - floydWarshall: () => floydWarshall3, - fractionToLine: () => fractionToLine, - getAdjMatrix: () => getAdjMatrix, - getBBoxBoundLine: () => getBBoxBoundLine, - getCircleCenterByPoints: () => getCircleCenterByPoints, - getCircleIntersectByPoint: () => getCircleIntersectByPoint, - getDegree: () => getDegree, - getEllipseIntersectByPoint: () => getEllipseIntersectByPoint, - getLineIntersect: () => getLineIntersect2, - getPointsCenter: () => getPointsCenter, - getRectIntersectByPoint: () => getRectIntersectByPoint, - intersectBBox: () => intersectBBox3, - invertMatrix: () => invertMatrix, - isPointInPolygon: () => isPointInPolygon, - isPointsOverlap: () => isPointsOverlap, - isPolygonsIntersect: () => isPolygonsIntersect2, - itemIntersectByLine: () => itemIntersectByLine, - move: () => move, - pointLineSquareDist: () => pointLineSquareDist, - pointRectSquareDist: () => pointRectSquareDist, - rotate: () => rotate6, - scale: () => scale10, - scaleMatrix: () => scaleMatrix, - squareDist: () => squareDist, - translate: () => translate4 -}); -var transform8 = ext_exports.transform; -var compare2 = function compare3(attributeName) { - return function(m4, n3) { - return m4[attributeName] - n3[attributeName]; - }; -}; -var isBetween4 = function isBetween5(value2, min7, max8) { - return value2 >= min7 && value2 <= max8; -}; -var getLineIntersect2 = function getLineIntersect3(p0, p1, p22, p32) { - var tolerance3 = 1e-4; - var E2 = { - x: p22.x - p0.x, - y: p22.y - p0.y - }; - var D0 = { - x: p1.x - p0.x, - y: p1.y - p0.y - }; - var D1 = { - x: p32.x - p22.x, - y: p32.y - p22.y - }; - var kross = D0.x * D1.y - D0.y * D1.x; - var sqrKross = kross * kross; - var invertKross = 1 / kross; - var sqrLen0 = D0.x * D0.x + D0.y * D0.y; - var sqrLen1 = D1.x * D1.x + D1.y * D1.y; - if (sqrKross > tolerance3 * sqrLen0 * sqrLen1) { - var s4 = (E2.x * D1.y - E2.y * D1.x) * invertKross; - var t4 = (E2.x * D0.y - E2.y * D0.x) * invertKross; - if (!isBetween4(s4, 0, 1) || !isBetween4(t4, 0, 1)) - return null; - return { - x: p0.x + s4 * D0.x, - y: p0.y + s4 * D0.y - }; - } - return null; -}; -var getRectIntersectByPoint = function getRectIntersectByPoint2(rect3, point2) { - var x6 = rect3.x, y5 = rect3.y, width2 = rect3.width, height = rect3.height; - var cx = x6 + width2 / 2; - var cy = y5 + height / 2; - var points = []; - var center2 = { - x: cx, - y: cy - }; - points.push({ - x: x6, - y: y5 - }); - points.push({ - x: x6 + width2, - y: y5 - }); - points.push({ - x: x6 + width2, - y: y5 + height - }); - points.push({ - x: x6, - y: y5 + height - }); - points.push({ - x: x6, - y: y5 - }); - var rst = null; - for (var i4 = 1; i4 < points.length; i4++) { - rst = getLineIntersect2(points[i4 - 1], points[i4], center2, point2); - if (rst) { - break; - } - } - return rst; -}; -var getCircleIntersectByPoint = function getCircleIntersectByPoint2(circle3, point2) { - var cx = circle3.x, cy = circle3.y, r4 = circle3.r; - var x6 = point2.x, y5 = point2.y; - var dx = x6 - cx; - var dy = y5 - cy; - var d3 = Math.sqrt(dx * dx + dy * dy); - if (d3 < r4) { - return null; - } - var signX = Math.sign(dx); - var signY = Math.sign(dy); - var angle3 = Math.atan(dy / dx); - return { - x: cx + Math.abs(r4 * Math.cos(angle3)) * signX, - y: cy + Math.abs(r4 * Math.sin(angle3)) * signY - }; -}; -var getEllipseIntersectByPoint = function getEllipseIntersectByPoint2(ellipse, point2) { - var a4 = ellipse.rx; - var b10 = ellipse.ry; - var cx = ellipse.x; - var cy = ellipse.y; - var dx = point2.x - cx; - var dy = point2.y - cy; - var angle3 = Math.atan2(dy / b10, dx / a4); - if (angle3 < 0) { - angle3 += 2 * Math.PI; - } - return { - x: cx + a4 * Math.cos(angle3), - y: cy + b10 * Math.sin(angle3) - }; -}; -var applyMatrix = function applyMatrix2(point2, matrix, tag) { - if (tag === void 0) { - tag = 1; - } - var vector = [point2.x, point2.y, tag]; - if (!matrix || isNaN(matrix[0])) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - vec3_exports.transformMat3(vector, vector, matrix); - return { - x: vector[0], - y: vector[1] - }; -}; -var invertMatrix = function invertMatrix2(point2, matrix, tag) { - if (tag === void 0) { - tag = 1; - } - if (!matrix || isNaN(matrix[0])) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - var inversedMatrix = mat3_exports.invert([1, 0, 0, 0, 1, 0, 0, 0, 1], matrix); - if (!inversedMatrix) { - inversedMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - var vector = [point2.x, point2.y, tag]; - vec3_exports.transformMat3(vector, vector, inversedMatrix); - return { - x: vector[0], - y: vector[1] - }; -}; -var getCircleCenterByPoints = function getCircleCenterByPoints2(p1, p22, p32) { - var a4 = p1.x - p22.x; - var b10 = p1.y - p22.y; - var c5 = p1.x - p32.x; - var d3 = p1.y - p32.y; - var e4 = (p1.x * p1.x - p22.x * p22.x - p22.y * p22.y + p1.y * p1.y) / 2; - var f3 = (p1.x * p1.x - p32.x * p32.x - p32.y * p32.y + p1.y * p1.y) / 2; - var denominator = b10 * c5 - a4 * d3; - return { - x: -(d3 * e4 - b10 * f3) / denominator, - y: -(a4 * f3 - c5 * e4) / denominator - }; -}; -var distance10 = function distance11(p1, p22) { - var vx = p1.x - p22.x; - var vy = p1.y - p22.y; - return Math.sqrt(vx * vx + vy * vy); -}; -var scaleMatrix = function scaleMatrix2(matrix, ratio) { - var result = []; - matrix.forEach(function(row) { - var newRow = []; - row.forEach(function(v3) { - newRow.push(v3 * ratio); - }); - result.push(newRow); - }); - return result; -}; -var floydWarshall3 = function floydWarshall4(adjMatrix3) { - var dist4 = []; - var size2 = adjMatrix3.length; - for (var i4 = 0; i4 < size2; i4 += 1) { - dist4[i4] = []; - for (var j4 = 0; j4 < size2; j4 += 1) { - if (i4 === j4) { - dist4[i4][j4] = 0; - } else if (adjMatrix3[i4][j4] === 0 || !adjMatrix3[i4][j4]) { - dist4[i4][j4] = Infinity; - } else { - dist4[i4][j4] = adjMatrix3[i4][j4]; - } - } - } - for (var k4 = 0; k4 < size2; k4 += 1) { - for (var i4 = 0; i4 < size2; i4 += 1) { - for (var j4 = 0; j4 < size2; j4 += 1) { - if (dist4[i4][j4] > dist4[i4][k4] + dist4[k4][j4]) { - dist4[i4][j4] = dist4[i4][k4] + dist4[k4][j4]; - } - } - } - } - return dist4; -}; -var getAdjMatrix = function getAdjMatrix2(data3, directed) { - var nodes = data3.nodes, edges = data3.edges; - var matrix = []; - var nodeMap = {}; - if (!nodes) { - throw new Error("invalid nodes data!"); - } - if (nodes) { - nodes.forEach(function(node, i4) { - nodeMap[node.id] = i4; - var row = []; - matrix.push(row); - }); - } - if (edges) { - edges.forEach(function(e4) { - var source = e4.source, target = e4.target; - var sIndex = nodeMap[source]; - var tIndex = nodeMap[target]; - matrix[sIndex][tIndex] = 1; - if (!directed) { - matrix[tIndex][sIndex] = 1; - } - }); - } - return matrix; -}; -var translate4 = function translate5(group2, vec) { - group2.translate(vec.x, vec.y); -}; -var move = function move2(group2, point2) { - var matrix = group2.getMatrix(); - if (!matrix) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - var bbox = group2.getCanvasBBox(); - var vx = point2.x - bbox.minX; - var vy = point2.y - bbox.minY; - var movedMatrix = transform8(matrix, [["t", vx, vy]]); - group2.setMatrix(movedMatrix); -}; -var scale10 = function scale11(group2, ratio) { - var matrix = group2.getMatrix(); - if (!matrix) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - var scaleXY = ratio; - if (!is_array_default(ratio)) { - scaleXY = [ratio, ratio]; - } - if (is_array_default(ratio) && ratio.length === 1) { - scaleXY = [ratio[0], ratio[0]]; - } - matrix = transform8(matrix, [["s", scaleXY[0], scaleXY[1]]]); - group2.setMatrix(matrix); -}; -var rotate6 = function rotate7(group2, angle3) { - var matrix = group2.getMatrix(); - if (!matrix) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - matrix = transform8(matrix, [["r", angle3]]); - group2.setMatrix(matrix); -}; -var getDegree = function getDegree2(n3, nodeIdxMap, edges) { - var degrees = []; - for (var i4 = 0; i4 < n3; i4++) { - degrees[i4] = 0; - } - edges.forEach(function(e4) { - if (e4.source) { - degrees[nodeIdxMap[e4.source]] += 1; - } - if (e4.target) { - degrees[nodeIdxMap[e4.target]] += 1; - } - }); - return degrees; -}; -function onSegment3(p1, p22, q4) { - if ((q4[0] - p1[0]) * (p22[1] - p1[1]) === (p22[0] - p1[0]) * (q4[1] - p1[1]) && Math.min(p1[0], p22[0]) <= q4[0] && q4[0] <= Math.max(p1[0], p22[0]) && Math.min(p1[1], p22[1]) <= q4[1] && q4[1] <= Math.max(p1[1], p22[1])) { - return true; - } - return false; -} -var isPointInPolygon = function isPointInPolygon2(points, x6, y5) { - var isHit = false; - var n3 = points.length; - var tolerance3 = 1e-6; - function dcmp3(xValue) { - if (Math.abs(xValue) < tolerance3) { - return 0; - } - return xValue < 0 ? -1 : 1; - } - if (n3 <= 2) { - return false; - } - for (var i4 = 0; i4 < n3; i4++) { - var p1 = points[i4]; - var p22 = points[(i4 + 1) % n3]; - if (onSegment3(p1, p22, [x6, y5])) { - return true; - } - if (dcmp3(p1[1] - y5) > 0 !== dcmp3(p22[1] - y5) > 0 && dcmp3(x6 - (y5 - p1[1]) * (p1[0] - p22[0]) / (p1[1] - p22[1]) - p1[0]) < 0) { - isHit = !isHit; - } - } - return isHit; -}; -var intersectBBox3 = function intersectBBox4(box1, box2) { - return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY); -}; -var lineIntersectPolygon2 = function lineIntersectPolygon3(lines, line2) { - var isIntersect2 = false; - each_default(lines, function(l4) { - if (getLineIntersect2(l4.from, l4.to, line2.from, line2.to)) { - isIntersect2 = true; - return false; - } - }); - return isIntersect2; -}; -var isPolygonsIntersect2 = function isPolygonsIntersect3(points1, points2) { - var getBBox5 = function getBBox6(points) { - var xArr = points.map(function(p4) { - return p4[0]; - }); - var yArr = points.map(function(p4) { - return p4[1]; - }); - return { - minX: Math.min.apply(null, xArr), - maxX: Math.max.apply(null, xArr), - minY: Math.min.apply(null, yArr), - maxY: Math.max.apply(null, yArr) - }; - }; - var parseToLines2 = function parseToLines3(points) { - var lines = []; - var count2 = points.length; - for (var i4 = 0; i4 < count2 - 1; i4++) { - var point2 = points[i4]; - var next = points[i4 + 1]; - lines.push({ - from: { - x: point2[0], - y: point2[1] - }, - to: { - x: next[0], - y: next[1] - } - }); - } - if (lines.length > 1) { - var first = points[0]; - var last2 = points[count2 - 1]; - lines.push({ - from: { - x: last2[0], - y: last2[1] - }, - to: { - x: first[0], - y: first[1] - } - }); - } - return lines; - }; - if (points1.length < 2 || points2.length < 2) { - return false; - } - var bbox1 = getBBox5(points1); - var bbox2 = getBBox5(points2); - if (!intersectBBox3(bbox1, bbox2)) { - return false; - } - var isIn = false; - each_default(points2, function(point2) { - if (isPointInPolygon(points1, point2[0], point2[1])) { - isIn = true; - return false; - } - }); - if (isIn) { - return true; - } - each_default(points1, function(point2) { - if (isPointInPolygon(points2, point2[0], point2[1])) { - isIn = true; - return false; - } - }); - if (isIn) { - return true; - } - var lines1 = parseToLines2(points1); - var lines2 = parseToLines2(points2); - var isIntersect2 = false; - each_default(lines2, function(line2) { - if (lineIntersectPolygon2(lines1, line2)) { - isIntersect2 = true; - return false; - } - }); - return isIntersect2; -}; -var Line7 = function() { - function Line9(x1, y1, x22, y22) { - this.x1 = x1; - this.y1 = y1; - this.x2 = x22; - this.y2 = y22; - } - Line9.prototype.getBBox = function() { - var minX = Math.min(this.x1, this.x2); - var minY = Math.min(this.y1, this.y2); - var maxX = Math.max(this.x1, this.x2); - var maxY2 = Math.max(this.y1, this.y2); - var res = { - x: minX, - y: minY, - minX, - minY, - maxX, - maxY: maxY2, - width: maxX - minX, - height: maxY2 - minY - }; - return res; - }; - return Line9; -}(); -var getBBoxBoundLine = function getBBoxBoundLine2(bbox, direction5) { - var bounds = { - top: [bbox.minX, bbox.minY, bbox.maxX, bbox.minY], - left: [bbox.minX, bbox.minY, bbox.minX, bbox.maxY], - bottom: [bbox.minX, bbox.maxY, bbox.maxX, bbox.maxY], - right: [bbox.maxX, bbox.minY, bbox.maxX, bbox.maxY] - }; - return bounds[direction5]; -}; -var fractionAlongLineA = function fractionAlongLineA2(la, lb) { - var uaT = (lb.x2 - lb.x1) * (la.y1 - lb.y1) - (lb.y2 - lb.y1) * (la.x1 - lb.x1); - var ubT = (la.x2 - la.x1) * (la.y1 - lb.y1) - (la.y2 - la.y1) * (la.x1 - lb.x1); - var uB = (lb.y2 - lb.y1) * (la.x2 - la.x1) - (lb.x2 - lb.x1) * (la.y2 - la.y1); - if (uB) { - var ua = uaT / uB; - var ub = ubT / uB; - if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) { - return ua; - } - } - return Number.POSITIVE_INFINITY; -}; -var itemIntersectByLine = function itemIntersectByLine2(item, line2) { - var directions = ["top", "left", "bottom", "right"]; - var bbox = item.getBBox(); - var countIntersections = 0; - var intersections = []; - for (var i4 = 0; i4 < 4; i4++) { - var _a6 = getBBoxBoundLine(bbox, directions[i4]), x1 = _a6[0], y1 = _a6[1], x22 = _a6[2], y22 = _a6[3]; - intersections[i4] = getLineIntersect2({ - x: line2.x1, - y: line2.y1 - }, { - x: line2.x2, - y: line2.y2 - }, { - x: x1, - y: y1 - }, { - x: x22, - y: y22 - }); - if (intersections[i4]) { - countIntersections += 1; - } - } - return [intersections, countIntersections]; -}; -var fractionToLine = function fractionToLine2(item, line2) { - var directions = ["top", "left", "bottom", "right"]; - var bbox = item.getBBox(); - var minDistance = Number.POSITIVE_INFINITY; - var countIntersections = 0; - for (var i4 = 0; i4 < 4; i4++) { - var _a6 = getBBoxBoundLine(bbox, directions[i4]), x1 = _a6[0], y1 = _a6[1], x22 = _a6[2], y22 = _a6[3]; - var testDistance = fractionAlongLineA(line2, new Line7(x1, y1, x22, y22)); - testDistance = Math.abs(testDistance - 0.5); - if (testDistance >= 0 && testDistance <= 1) { - countIntersections += 1; - minDistance = testDistance < minDistance ? testDistance : minDistance; - } - } - if (countIntersections === 0) - return -1; - return minDistance; -}; -var getPointsCenter = function getPointsCenter2(points) { - var centerX = 0; - var centerY = 0; - if (points.length > 0) { - for (var _i = 0, points_1 = points; _i < points_1.length; _i++) { - var point2 = points_1[_i]; - centerX += point2.x; - centerY += point2.y; - } - centerX /= points.length; - centerY /= points.length; - } - return { - x: centerX, - y: centerY - }; -}; -var squareDist = function squareDist2(a4, b10) { - return Math.pow(a4.x - b10.x, 2) + Math.pow(a4.y - b10.y, 2); -}; -var pointLineSquareDist = function pointLineSquareDist2(point2, line2) { - var x1 = line2.x1; - var y1 = line2.y1; - var x22 = line2.x2 - x1; - var y22 = line2.y2 - y1; - var px = point2.x - x1; - var py = point2.y - y1; - var dotprod = px * x22 + py * y22; - var projlenSq; - if (dotprod <= 0) { - projlenSq = 0; - } else { - px = x22 - px; - py = y22 - py; - dotprod = px * x22 + py * y22; - if (dotprod <= 0) { - projlenSq = 0; - } else { - projlenSq = dotprod * dotprod / (x22 * x22 + y22 * y22); - } - } - var lenSq = px * px + py * py - projlenSq; - if (lenSq < 0) { - lenSq = 0; - } - return lenSq; -}; -var isPointsOverlap = function isPointsOverlap2(p1, p22, e4) { - if (e4 === void 0) { - e4 = 1e-3; - } - return Math.pow(p1.x - p22.x, 2) + Math.pow(p1.y - p22.y, 2) < Math.pow(e4, 2); -}; -var pointRectSquareDist = function pointRectSquareDist2(point2, rect3) { - var isLeft = point2.x < rect3.x; - var isRight = point2.x > rect3.x + rect3.width; - var isTop = point2.y > rect3.y + rect3.height; - var isBottom = point2.y < rect3.y; - var isPointOutside = isLeft || isRight || isTop || isBottom; - if (!isPointOutside) { - return 0; - } - if (isTop && !isLeft && !isRight) { - return Math.pow(rect3.y + rect3.height - point2.y, 2); - } - if (isBottom && !isLeft && !isRight) { - return Math.pow(point2.y - rect3.y, 2); - } - if (isLeft && !isTop && !isBottom) { - return Math.pow(rect3.x - point2.x, 2); - } - if (isRight && !isTop && !isBottom) { - return Math.pow(rect3.x + rect3.width - point2.x, 2); - } - var dx = Math.min(Math.abs(rect3.x - point2.x), Math.abs(rect3.x + rect3.width - point2.x)); - var dy = Math.min(Math.abs(rect3.y - point2.y), Math.abs(rect3.y + rect3.height - point2.y)); - return dx * dx + dy * dy; -}; - -// node_modules/@antv/g6-core/es/global.js -var subjectColor = "rgb(95, 149, 255)"; -var backColor = "rgb(255, 255, 255)"; -var textColor = "rgb(0, 0, 0)"; -var activeFill = "rgb(247, 250, 255)"; -var nodeMainFill = "rgb(239, 244, 255)"; -var comboFill = "rgb(253, 253, 253)"; -var disabledFill = "rgb(250, 250, 250)"; -var edgeMainStroke = "rgb(224, 224, 224)"; -var edgeInactiveStroke = "rgb(234, 234, 234)"; -var edgeDisablesStroke = "rgb(245, 245, 245)"; -var inactiveStroke = "rgb(191, 213, 255)"; -var highlightStroke = "#4572d9"; -var highlightFill = "rgb(223, 234, 255)"; -var colorSet = { - mainStroke: subjectColor, - mainFill: nodeMainFill, - activeStroke: subjectColor, - activeFill, - inactiveStroke, - inactiveFill: activeFill, - selectedStroke: subjectColor, - selectedFill: backColor, - highlightStroke, - highlightFill, - disableStroke: edgeMainStroke, - disableFill: disabledFill, - edgeMainStroke, - edgeActiveStroke: subjectColor, - edgeInactiveStroke, - edgeSelectedStroke: subjectColor, - edgeHighlightStroke: subjectColor, - edgeDisableStroke: edgeDisablesStroke, - comboMainStroke: edgeMainStroke, - comboMainFill: comboFill, - comboActiveStroke: subjectColor, - comboActiveFill: activeFill, - comboInactiveStroke: edgeMainStroke, - comboInactiveFill: comboFill, - comboSelectedStroke: subjectColor, - comboSelectedFill: comboFill, - comboHighlightStroke: highlightStroke, - comboHighlightFill: comboFill, - comboDisableStroke: edgeInactiveStroke, - comboDisableFill: disabledFill -}; -var global_default = { - version: "0.2.4", - rootContainerClassName: "root-container", - nodeContainerClassName: "node-container", - edgeContainerClassName: "edge-container", - comboContainerClassName: "combo-container", - delegateContainerClassName: "delegate-container", - defaultLoopPosition: "top", - nodeLabel: { - style: { - fill: "#000", - fontSize: 12, - textAlign: "center", - textBaseline: "middle" - }, - offset: 4 - }, - defaultNode: { - type: "circle", - style: { - lineWidth: 1, - stroke: colorSet.mainStroke, - fill: nodeMainFill - }, - size: 20, - color: colorSet.mainStroke, - linkPoints: { - size: 8, - lineWidth: 1, - fill: colorSet.activeFill, - stroke: colorSet.activeStroke - } - }, - nodeStateStyles: { - active: { - fill: colorSet.activeFill, - stroke: colorSet.activeStroke, - lineWidth: 2, - shadowColor: colorSet.mainStroke, - shadowBlur: 10 - }, - selected: { - fill: colorSet.selectedFill, - stroke: colorSet.selectedStroke, - lineWidth: 4, - shadowColor: colorSet.selectedStroke, - shadowBlur: 10, - "text-shape": { - fontWeight: 500 - } - }, - highlight: { - fill: colorSet.highlightFill, - stroke: colorSet.highlightStroke, - lineWidth: 2, - "text-shape": { - fontWeight: 500 - } - }, - inactive: { - fill: colorSet.inactiveFill, - stroke: colorSet.inactiveStroke, - lineWidth: 1 - }, - disable: { - fill: colorSet.disableFill, - stroke: colorSet.disableStroke, - lineWidth: 1 - } - }, - edgeLabel: { - style: { - fill: textColor, - textAlign: "center", - textBaseline: "middle", - fontSize: 12 - } - }, - defaultEdge: { - type: "line", - size: 1, - style: { - stroke: colorSet.edgeMainStroke, - lineAppendWidth: 2 - }, - color: colorSet.edgeMainStroke - }, - edgeStateStyles: { - active: { - stroke: colorSet.edgeActiveStroke, - lineWidth: 1 - }, - selected: { - stroke: colorSet.edgeSelectedStroke, - lineWidth: 2, - shadowColor: colorSet.edgeSelectedStroke, - shadowBlur: 10, - "text-shape": { - fontWeight: 500 - } - }, - highlight: { - stroke: colorSet.edgeHighlightStroke, - lineWidth: 2, - "text-shape": { - fontWeight: 500 - } - }, - inactive: { - stroke: colorSet.edgeInactiveStroke, - lineWidth: 1 - }, - disable: { - stroke: colorSet.edgeDisableStroke, - lineWidth: 1 - } - }, - comboLabel: { - style: { - fill: textColor, - textBaseline: "middle", - fontSize: 12 - }, - refY: 10, - refX: 10 - }, - defaultCombo: { - type: "circle", - style: { - fill: colorSet.comboMainFill, - lineWidth: 1, - stroke: colorSet.comboMainStroke, - r: 5, - width: 20, - height: 10 - }, - size: [20, 5], - color: colorSet.comboMainStroke, - padding: [25, 20, 15, 20] - }, - comboStateStyles: { - active: { - stroke: colorSet.comboActiveStroke, - lineWidth: 1, - fill: colorSet.comboActiveFill - }, - selected: { - stroke: colorSet.comboSelectedStroke, - lineWidth: 2, - fill: colorSet.comboSelectedFill, - shadowColor: colorSet.comboSelectedStroke, - shadowBlur: 10, - "text-shape": { - fontWeight: 500 - } - }, - highlight: { - stroke: colorSet.comboHighlightStroke, - lineWidth: 2, - fill: colorSet.comboHighlightFill, - "text-shape": { - fontWeight: 500 - } - }, - inactive: { - stroke: colorSet.comboInactiveStroke, - fill: colorSet.comboInactiveFill, - lineWidth: 1 - }, - disable: { - stroke: colorSet.comboDisableStroke, - fill: colorSet.comboDisableFill, - lineWidth: 1 - } - }, - delegateStyle: { - fill: "#F3F9FF", - fillOpacity: 0.5, - stroke: "#1890FF", - strokeOpacity: 0.9, - lineDash: [5, 5] - } -}; - -// node_modules/@antv/g6-core/es/graph/controller/mode.js -var ModeController = function() { - function ModeController2(graph) { - this.graph = graph; - this.destroyed = false; - this.modes = graph.get("modes") || { - default: [] - }; - this.formatModes(); - this.mode = graph.get("defaultMode") || "default"; - this.currentBehaves = []; - this.setMode(this.mode); - } - ModeController2.prototype.formatModes = function() { - var modes = this.modes; - each_default(modes, function(mode) { - each_default(mode, function(behavior, i4) { - if (is_string_default(behavior)) { - mode[i4] = { - type: behavior - }; - } - }); - }); - }; - ModeController2.prototype.setBehaviors = function(mode) { - var graph = this.graph; - var behaviors2 = this.modes[mode]; - var behaves = []; - var behave; - each_default(behaviors2 || [], function(behavior) { - var BehaviorInstance = behavior_default.getBehavior(behavior.type || behavior); - if (!BehaviorInstance) { - return; - } - behave = new BehaviorInstance(behavior); - if (behave) { - behave.bind(graph); - behaves.push(behave); - } - }); - this.currentBehaves = behaves; - }; - ModeController2.mergeBehaviors = function(modeBehaviors, behaviors2) { - each_default(behaviors2, function(behavior) { - if (modeBehaviors.indexOf(behavior) < 0) { - if (is_string_default(behavior)) { - behavior = { - type: behavior - }; - } - modeBehaviors.push(behavior); - } - }); - return modeBehaviors; - }; - ModeController2.filterBehaviors = function(modeBehaviors, behaviors2) { - var result = []; - modeBehaviors.forEach(function(behavior) { - var type2 = ""; - if (is_string_default(behavior)) { - type2 = behavior; - } else { - type2 = behavior.type; - } - if (behaviors2.indexOf(type2) < 0) { - result.push(behavior); - } - }); - return result; - }; - ModeController2.prototype.setMode = function(mode) { - var _a6 = this, modes = _a6.modes, graph = _a6.graph; - var current = mode; - var behaviors2 = modes[current]; - if (!behaviors2) { - return; - } - graph.emit("beforemodechange", { - mode - }); - each_default(this.currentBehaves, function(behave) { - if (behave.delegate) - behave.delegate.remove(); - behave.unbind(graph); - }); - this.setBehaviors(current); - graph.emit("aftermodechange", { - mode - }); - this.mode = mode; - }; - ModeController2.prototype.getMode = function() { - return this.mode; - }; - ModeController2.prototype.manipulateBehaviors = function(behaviors2, modes, isAdd) { - var _this = this; - var behaves; - if (!is_array_default(behaviors2)) { - behaves = [behaviors2]; - } else { - behaves = behaviors2; - } - if (is_array_default(modes)) { - each_default(modes, function(mode) { - if (!_this.modes[mode]) { - if (isAdd) { - _this.modes[mode] = behaves; - } - } else if (isAdd) { - _this.modes[mode] = ModeController2.mergeBehaviors(_this.modes[mode] || [], behaves); - } else { - _this.modes[mode] = ModeController2.filterBehaviors(_this.modes[mode] || [], behaves); - } - }); - return this; - } - var currentMode = modes; - if (!modes) { - currentMode = this.mode; - } - if (!this.modes[currentMode]) { - if (isAdd) { - this.modes[currentMode] = behaves; - } - } - if (isAdd) { - this.modes[currentMode] = ModeController2.mergeBehaviors(this.modes[currentMode] || [], behaves); - } else { - this.modes[currentMode] = ModeController2.filterBehaviors(this.modes[currentMode] || [], behaves); - } - this.setMode(this.mode); - return this; - }; - ModeController2.prototype.updateBehavior = function(behavior, newCfg, mode) { - if (is_string_default(behavior)) { - behavior = { - type: behavior - }; - } - var behaviorSet = []; - if (!mode || mode === this.mode || mode === "default") { - behaviorSet = this.currentBehaves; - if (!behaviorSet || !behaviorSet.length) { - console.warn("Update behavior failed! There is no behaviors in this mode on the graph."); - return this; - } - var length_1 = behaviorSet.length; - for (var i4 = 0; i4 < length_1; i4++) { - var behave = behaviorSet[i4]; - if (behave.type === behavior.type) { - behave.updateCfg(newCfg); - return this; - } - if (i4 === length_1 - 1) - console.warn("Update behavior failed! There is no such behavior in the mode"); - } - } else { - behaviorSet = this.modes[mode]; - if (!behaviorSet || !behaviorSet.length) { - console.warn("Update behavior failed! There is no behaviors in this mode on the graph."); - return this; - } - var length_2 = behaviorSet.length; - for (var i4 = 0; i4 < length_2; i4++) { - var behave = behaviorSet[i4]; - if (behave.type === behavior.type || behave === behavior.type) { - if (behave === behavior.type) - behave = { - type: behave - }; - Object.assign(behave, newCfg); - behaviorSet[i4] = behave; - return this; - } - if (i4 === length_2 - 1) - console.warn("Update behavior failed! There is no such behavior in the mode"); - } - } - return this; - }; - ModeController2.prototype.destroy = function() { - this.graph = null; - this.modes = null; - this.currentBehaves = null; - this.destroyed = true; - }; - return ModeController2; -}(); -var mode_default = ModeController; - -// node_modules/@antv/g6-core/es/util/base.js -var base_exports = {}; -__export(base_exports, { - calculationItemsBBox: () => calculationItemsBBox, - cloneEvent: () => cloneEvent, - formatPadding: () => formatPadding2, - isNaN: () => isNaN2, - isViewportChanged: () => isViewportChanged, - processParallelEdges: () => processParallelEdges, - uniqueId: () => uniqueId3 -}); - -// node_modules/@antv/g6-core/es/interface/behavior.js -var G6GraphEvent = function(_super) { - __extends(G6GraphEvent2, _super); - function G6GraphEvent2(type2, event) { - var _this = _super.call(this, type2, event) || this; - _this.item = event.item; - _this.canvasX = event.canvasX; - _this.canvasY = event.canvasY; - _this.wheelDelta = event.wheelDelta; - _this.detail = event.detail; - return _this; - } - return G6GraphEvent2; -}(graph_event_default); - -// node_modules/@antv/g6-core/es/util/base.js -var uniqueId3 = function uniqueId4(type2) { - return type2 + "-" + Math.random() + Date.now(); -}; -var formatPadding2 = function formatPadding3(padding3) { - var top = 0; - var left2 = 0; - var right2 = 0; - var bottom = 0; - if (is_number_default(padding3)) { - top = left2 = right2 = bottom = padding3; - } else if (is_string_default(padding3)) { - var intPadding = parseInt(padding3, 10); - top = left2 = right2 = bottom = intPadding; - } else if (is_array_default(padding3)) { - top = padding3[0]; - right2 = !is_nil_default(padding3[1]) ? padding3[1] : padding3[0]; - bottom = !is_nil_default(padding3[2]) ? padding3[2] : padding3[0]; - left2 = !is_nil_default(padding3[3]) ? padding3[3] : right2; - } - return [top, right2, bottom, left2]; -}; -var cloneEvent = function cloneEvent2(e4) { - var event = new G6GraphEvent(e4.type, e4); - event.clientX = e4.clientX; - event.clientY = e4.clientY; - event.x = e4.x; - event.y = e4.y; - event.target = e4.target; - event.currentTarget = e4.currentTarget; - event.bubbles = true; - event.item = e4.item; - return event; -}; -var isViewportChanged = function isViewportChanged2(matrix) { - if (!matrix) { - return false; - } - var MATRIX_LEN = 9; - var ORIGIN_MATRIX2 = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - for (var i4 = 0; i4 < MATRIX_LEN; i4++) { - if (matrix[i4] !== ORIGIN_MATRIX2[i4]) { - return true; - } - } - return false; -}; -var isNaN2 = function isNaN3(input) { - return Number.isNaN(Number(input)); -}; -var calculationItemsBBox = function calculationItemsBBox2(items) { - var minx = Infinity; - var maxx = -Infinity; - var miny = Infinity; - var maxy = -Infinity; - for (var i4 = 0; i4 < items.length; i4++) { - var element = items[i4]; - var bbox = element.getBBox(); - var minX = bbox.minX, minY = bbox.minY, maxX = bbox.maxX, maxY2 = bbox.maxY; - if (minX < minx) { - minx = minX; - } - if (minY < miny) { - miny = minY; - } - if (maxX > maxx) { - maxx = maxX; - } - if (maxY2 > maxy) { - maxy = maxY2; - } - } - var x6 = Math.floor(minx); - var y5 = Math.floor(miny); - var width2 = Math.ceil(maxx) - Math.floor(minx); - var height = Math.ceil(maxy) - Math.floor(miny); - return { - x: x6, - y: y5, - width: width2, - height, - minX: minx, - minY: miny, - maxX: maxx, - maxY: maxy - }; -}; -var processParallelEdges = function processParallelEdges2(edges, offsetDiff, multiEdgeType, singleEdgeType, loopEdgeType) { - if (offsetDiff === void 0) { - offsetDiff = 15; - } - if (multiEdgeType === void 0) { - multiEdgeType = "quadratic"; - } - if (singleEdgeType === void 0) { - singleEdgeType = void 0; - } - if (loopEdgeType === void 0) { - loopEdgeType = void 0; - } - var len5 = edges.length; - var cod = offsetDiff * 2; - var loopPosition = ["top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left"]; - var edgeMap = {}; - var tags = []; - var reverses = {}; - for (var i4 = 0; i4 < len5; i4++) { - var edge2 = edges[i4]; - var source = edge2.source, target = edge2.target; - var sourceTarget = source + "-" + target; - if (tags[i4]) - continue; - if (!edgeMap[sourceTarget]) { - edgeMap[sourceTarget] = []; - } - tags[i4] = true; - edgeMap[sourceTarget].push(edge2); - for (var j4 = 0; j4 < len5; j4++) { - if (i4 === j4) - continue; - var sedge = edges[j4]; - var src = sedge.source; - var dst = sedge.target; - if (!tags[j4]) { - if (source === dst && target === src) { - edgeMap[sourceTarget].push(sedge); - tags[j4] = true; - reverses[src + "|" + dst + "|" + (edgeMap[sourceTarget].length - 1)] = true; - } else if (source === src && target === dst) { - edgeMap[sourceTarget].push(sedge); - tags[j4] = true; - } - } - } - } - for (var key in edgeMap) { - var arcEdges = edgeMap[key]; - var length_1 = arcEdges.length; - for (var k4 = 0; k4 < length_1; k4++) { - var current = arcEdges[k4]; - if (current.source === current.target) { - if (loopEdgeType) - current.type = loopEdgeType; - current.loopCfg = { - position: loopPosition[k4 % 8], - dist: Math.floor(k4 / 8) * 20 + 50 - }; - continue; - } - if (length_1 === 1 && singleEdgeType && current.source !== current.target) { - current.type = singleEdgeType; - continue; - } - current.type = multiEdgeType; - var sign = (k4 % 2 === 0 ? 1 : -1) * (reverses[current.source + "|" + current.target + "|" + k4] ? -1 : 1); - if (length_1 % 2 === 1) { - current.curveOffset = sign * Math.ceil(k4 / 2) * cod; - } else { - current.curveOffset = sign * (Math.floor(k4 / 2) * cod + offsetDiff); - } - } - } - return edges; -}; - -// node_modules/@antv/g6-core/es/graph/controller/view.js -var ViewController = function() { - function ViewController2(graph) { - this.destroyed = false; - this.graph = graph; - this.destroyed = false; - } - ViewController2.prototype.getViewCenter = function() { - var padding3 = this.getFormatPadding(); - var graph = this.graph; - var width2 = this.graph.get("width"); - var height = graph.get("height"); - return { - x: (width2 - padding3[1] - padding3[3]) / 2 + padding3[3], - y: (height - padding3[0] - padding3[2]) / 2 + padding3[0] - }; - }; - ViewController2.prototype.fitCenter = function() { - var graph = this.graph; - var group2 = graph.get("group"); - group2.resetMatrix(); - var bbox = group2.getCanvasBBox(); - if (bbox.width === 0 || bbox.height === 0) - return; - var viewCenter = this.getViewCenter(); - var groupCenter = { - x: bbox.x + bbox.width / 2, - y: bbox.y + bbox.height / 2 - }; - graph.translate(viewCenter.x - groupCenter.x, viewCenter.y - groupCenter.y); - }; - ViewController2.prototype.fitView = function() { - var graph = this.graph; - var padding3 = this.getFormatPadding(); - var width2 = graph.get("width"); - var height = graph.get("height"); - var group2 = graph.get("group"); - group2.resetMatrix(); - var bbox = group2.getCanvasBBox(); - if (bbox.width === 0 || bbox.height === 0) - return; - var viewCenter = this.getViewCenter(); - var groupCenter = { - x: bbox.x + bbox.width / 2, - y: bbox.y + bbox.height / 2 - }; - graph.translate(viewCenter.x - groupCenter.x, viewCenter.y - groupCenter.y); - var w4 = (width2 - padding3[1] - padding3[3]) / bbox.width; - var h3 = (height - padding3[0] - padding3[2]) / bbox.height; - var ratio = w4; - if (w4 > h3) { - ratio = h3; - } - graph.zoom(ratio, viewCenter); - }; - ViewController2.prototype.getFormatPadding = function() { - var padding3 = this.graph.get("fitViewPadding"); - return formatPadding2(padding3); - }; - ViewController2.prototype.focusPoint = function(point2, animate, animateCfg) { - var _this = this; - var viewCenter = this.getViewCenter(); - var modelCenter = this.getPointByCanvas(viewCenter.x, viewCenter.y); - var viewportMatrix = this.graph.get("group").getMatrix(); - if (!viewportMatrix) - viewportMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - if (animate) { - var dx_1 = (modelCenter.x - point2.x) * viewportMatrix[0]; - var dy_1 = (modelCenter.y - point2.y) * viewportMatrix[4]; - var lastX_1 = 0; - var lastY_1 = 0; - var newX_1 = 0; - var newY_1 = 0; - this.graph.get("canvas").animate(function(ratio) { - newX_1 = dx_1 * ratio; - newY_1 = dy_1 * ratio; - _this.graph.translate(newX_1 - lastX_1, newY_1 - lastY_1); - lastX_1 = newX_1; - lastY_1 = newY_1; - }, __assign({}, animateCfg)); - } else { - this.graph.translate((modelCenter.x - point2.x) * viewportMatrix[0], (modelCenter.y - point2.y) * viewportMatrix[4]); - } - }; - ViewController2.prototype.getPointByCanvas = function(canvasX, canvasY) { - var viewportMatrix = this.graph.get("group").getMatrix(); - if (!viewportMatrix) { - viewportMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - var point2 = invertMatrix({ - x: canvasX, - y: canvasY - }, viewportMatrix); - return point2; - }; - ViewController2.prototype.getPointByClient = function(clientX, clientY) { - var canvas = this.graph.get("canvas"); - var canvasPoint = canvas.getPointByClient(clientX, clientY); - return this.getPointByCanvas(canvasPoint.x, canvasPoint.y); - }; - ViewController2.prototype.getClientByPoint = function(x6, y5) { - var canvas = this.graph.get("canvas"); - var canvasPoint = this.getCanvasByPoint(x6, y5); - var point2 = canvas.getClientByPoint(canvasPoint.x, canvasPoint.y); - return { - x: point2.x, - y: point2.y - }; - }; - ViewController2.prototype.getCanvasByPoint = function(x6, y5) { - var viewportMatrix = this.graph.get("group").getMatrix(); - if (!viewportMatrix) { - viewportMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - return applyMatrix({ - x: x6, - y: y5 - }, viewportMatrix); - }; - ViewController2.prototype.focus = function(item, animate, animateCfg) { - if (is_string_default(item)) { - item = this.graph.findById(item); - } - var group2 = item.get("group"); - var matrix = group2.getMatrix(); - if (!matrix) - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - if (item) { - this.focusPoint({ - x: matrix[6], - y: matrix[7] - }, animate, animateCfg); - } - }; - ViewController2.prototype.changeSize = function(width2, height) { - var graph = this.graph; - if (!is_number_default(width2) || !is_number_default(height)) { - throw Error("invalid canvas width & height, please make sure width & height type is number"); - } - graph.set({ - width: width2, - height - }); - var canvas = graph.get("canvas"); - canvas.changeSize(width2, height); - var plugins = graph.get("plugins"); - plugins.forEach(function(plugin) { - if (plugin.get("gridContainer")) { - var minZoom = graph.get("minZoom"); - modifyCSS(plugin.get("container"), { - width: width2 + "px", - height: height + "px" - }); - modifyCSS(plugin.get("gridContainer"), { - width: width2 / minZoom + "px", - height: height / minZoom + "px", - left: 0, - top: 0 - }); - } - }); - }; - ViewController2.prototype.destroy = function() { - this.graph = null; - this.destroyed = false; - }; - return ViewController2; -}(); -var view_default2 = ViewController; - -// node_modules/@antv/g6-core/es/util/graphic.js -var graphic_exports = {}; -__export(graphic_exports, { - cloneBesidesImg: () => cloneBesidesImg, - getBBox: () => getBBox2, - getComboBBox: () => getComboBBox, - getLabelPosition: () => getLabelPosition, - getLetterWidth: () => getLetterWidth, - getLoopCfgs: () => getLoopCfgs, - getTextSize: () => getTextSize, - plainCombosToTrees: () => plainCombosToTrees, - reconstructTree: () => reconstructTree, - shouldRefreshEdge: () => shouldRefreshEdge, - traverseTree: () => traverseTree, - traverseTreeUp: () => traverseTreeUp -}); - -// node_modules/@antv/g6-core/es/util/letterAspectRatio.js -var letterAspectRatio_default = { - " ": 0.3329986572265625, - a: 0.5589996337890625, - A: 0.6569992065429687, - b: 0.58599853515625, - B: 0.6769989013671875, - c: 0.5469985961914062, - C: 0.7279998779296875, - d: 0.58599853515625, - D: 0.705999755859375, - e: 0.554998779296875, - E: 0.63699951171875, - f: 0.37299957275390627, - F: 0.5769989013671875, - g: 0.5909988403320312, - G: 0.7479995727539063, - h: 0.555999755859375, - H: 0.7199996948242188, - i: 0.255999755859375, - I: 0.23699951171875, - j: 0.26699981689453123, - J: 0.5169998168945312, - k: 0.5289993286132812, - K: 0.6899993896484375, - l: 0.23499908447265624, - L: 0.5879989624023437, - m: 0.854998779296875, - M: 0.8819992065429687, - n: 0.5589996337890625, - N: 0.7189987182617188, - o: 0.58599853515625, - O: 0.7669998168945312, - p: 0.58599853515625, - P: 0.6419998168945312, - q: 0.58599853515625, - Q: 0.7669998168945312, - r: 0.3649993896484375, - R: 0.6759994506835938, - s: 0.504998779296875, - S: 0.6319992065429687, - t: 0.354998779296875, - T: 0.6189987182617187, - u: 0.5599990844726562, - U: 0.7139999389648437, - v: 0.48199920654296874, - V: 0.6389999389648438, - w: 0.754998779296875, - W: 0.929998779296875, - x: 0.5089996337890625, - X: 0.63699951171875, - y: 0.4959991455078125, - Y: 0.66199951171875, - z: 0.48699951171875, - Z: 0.6239990234375, - "0": 0.6, - "1": 0.40099945068359377, - "2": 0.6, - "3": 0.6, - "4": 0.6, - "5": 0.6, - "6": 0.6, - "7": 0.5469985961914062, - "8": 0.6, - "9": 0.6, - "[": 0.3329986572265625, - "]": 0.3329986572265625, - ",": 0.26399993896484375, - ".": 0.26399993896484375, - ";": 0.26399993896484375, - ":": 0.26399993896484375, - "{": 0.3329986572265625, - "}": 0.3329986572265625, - "\\": 0.5, - "|": 0.19499969482421875, - "=": 0.604998779296875, - "+": 0.604998779296875, - "-": 0.604998779296875, - _: 0.5, - "`": 0.3329986572265625, - " ~": 0.8329986572265625, - "!": 0.3329986572265625, - "@": 0.8579986572265625, - "#": 0.6, - $: 0.6, - "%": 0.9699996948242188, - "^": 0.517999267578125, - "&": 0.7259994506835937, - "*": 0.505999755859375, - "(": 0.3329986572265625, - ")": 0.3329986572265625, - "<": 0.604998779296875, - ">": 0.604998779296875, - "/": 0.5, - "?": 0.53699951171875 -}; - -// node_modules/@antv/g6-core/es/util/graphic.js -var PI2 = Math.PI; -var sin2 = Math.sin; -var cos2 = Math.cos; -var SELF_LINK_SIN = sin2(PI2 / 8); -var SELF_LINK_COS = cos2(PI2 / 8); -var getBBox2 = function getBBox3(element, group2) { - var bbox = element.getBBox(); - var leftTop = { - x: bbox.minX, - y: bbox.minY - }; - var rightBottom = { - x: bbox.maxX, - y: bbox.maxY - }; - if (group2) { - var matrix = group2.getMatrix(); - if (!matrix) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - leftTop = applyMatrix(leftTop, matrix); - rightBottom = applyMatrix(rightBottom, matrix); - } - var lx = leftTop.x, ly = leftTop.y; - var rx = rightBottom.x, ry = rightBottom.y; - return { - x: lx, - y: ly, - minX: lx, - minY: ly, - maxX: rx, - maxY: ry, - width: rx - lx, - height: ry - ly - }; -}; -var getLoopCfgs = function getLoopCfgs2(cfg) { - var item = cfg.sourceNode || cfg.targetNode; - var container2 = item.get("group"); - var containerMatrix = container2.getMatrix(); - if (!containerMatrix) - containerMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var keyShape = item.getKeyShape(); - var bbox = keyShape.getBBox(); - var loopCfg = cfg.loopCfg || {}; - var dist4 = loopCfg.dist || Math.max(bbox.width, bbox.height) * 2; - var position2 = loopCfg.position || global_default.defaultLoopPosition; - var center2 = [containerMatrix[6], containerMatrix[7]]; - var startPoint = [cfg.startPoint.x, cfg.startPoint.y]; - var endPoint = [cfg.endPoint.x, cfg.endPoint.y]; - var rstart = bbox.height / 2; - var rend = bbox.height / 2; - var sinDeltaStart = rstart * SELF_LINK_SIN; - var cosDeltaStart = rstart * SELF_LINK_COS; - var sinDeltaEnd = rend * SELF_LINK_SIN; - var cosDeltaEnd = rend * SELF_LINK_COS; - if (startPoint[0] === endPoint[0] && startPoint[1] === endPoint[1]) { - switch (position2) { - case "top": - startPoint = [center2[0] - sinDeltaStart, center2[1] - cosDeltaStart]; - endPoint = [center2[0] + sinDeltaEnd, center2[1] - cosDeltaEnd]; - break; - case "top-right": - rstart = bbox.height / 2; - rend = bbox.width / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] + sinDeltaStart, center2[1] - cosDeltaStart]; - endPoint = [center2[0] + cosDeltaEnd, center2[1] - sinDeltaEnd]; - break; - case "right": - rstart = bbox.width / 2; - rend = bbox.width / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] + cosDeltaStart, center2[1] - sinDeltaStart]; - endPoint = [center2[0] + cosDeltaEnd, center2[1] + sinDeltaEnd]; - break; - case "bottom-right": - rstart = bbox.width / 2; - rend = bbox.height / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] + cosDeltaStart, center2[1] + sinDeltaStart]; - endPoint = [center2[0] + sinDeltaEnd, center2[1] + cosDeltaEnd]; - break; - case "bottom": - rstart = bbox.height / 2; - rend = bbox.height / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] + sinDeltaStart, center2[1] + cosDeltaStart]; - endPoint = [center2[0] - sinDeltaEnd, center2[1] + cosDeltaEnd]; - break; - case "bottom-left": - rstart = bbox.height / 2; - rend = bbox.width / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] - sinDeltaStart, center2[1] + cosDeltaStart]; - endPoint = [center2[0] - cosDeltaEnd, center2[1] + sinDeltaEnd]; - break; - case "left": - rstart = bbox.width / 2; - rend = bbox.width / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] - cosDeltaStart, center2[1] + sinDeltaStart]; - endPoint = [center2[0] - cosDeltaEnd, center2[1] - sinDeltaEnd]; - break; - case "top-left": - rstart = bbox.width / 2; - rend = bbox.height / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] - cosDeltaStart, center2[1] - sinDeltaStart]; - endPoint = [center2[0] - sinDeltaEnd, center2[1] - cosDeltaEnd]; - break; - default: - rstart = bbox.width / 2; - rend = bbox.width / 2; - sinDeltaStart = rstart * SELF_LINK_SIN; - cosDeltaStart = rstart * SELF_LINK_COS; - sinDeltaEnd = rend * SELF_LINK_SIN; - cosDeltaEnd = rend * SELF_LINK_COS; - startPoint = [center2[0] - sinDeltaStart, center2[1] - cosDeltaStart]; - endPoint = [center2[0] + sinDeltaEnd, center2[1] - cosDeltaEnd]; - } - if (loopCfg.clockwise === false) { - var swap3 = [startPoint[0], startPoint[1]]; - startPoint = [endPoint[0], endPoint[1]]; - endPoint = [swap3[0], swap3[1]]; - } - } - var startVec = [startPoint[0] - center2[0], startPoint[1] - center2[1]]; - var scaleRateStart = (rstart + dist4) / rstart; - var scaleRateEnd = (rend + dist4) / rend; - if (loopCfg.clockwise === false) { - scaleRateStart = (rend + dist4) / rend; - scaleRateEnd = (rstart + dist4) / rstart; - } - var startExtendVec = vec2_exports.scale([0, 0], startVec, scaleRateStart); - var controlPoint1 = [center2[0] + startExtendVec[0], center2[1] + startExtendVec[1]]; - var endVec = [endPoint[0] - center2[0], endPoint[1] - center2[1]]; - var endExtendVec = vec2_exports.scale([0, 0], endVec, scaleRateEnd); - var controlPoint2 = [center2[0] + endExtendVec[0], center2[1] + endExtendVec[1]]; - cfg.startPoint = { - x: startPoint[0], - y: startPoint[1] - }; - cfg.endPoint = { - x: endPoint[0], - y: endPoint[1] - }; - cfg.controlPoints = [{ - x: controlPoint1[0], - y: controlPoint1[1] - }, { - x: controlPoint2[0], - y: controlPoint2[1] - }]; - return cfg; -}; -var getLabelPosition = function getLabelPosition2(pathShape, percent2, refX, refY, rotate8) { - var TAN_OFFSET = 1e-4; - var vector = []; - var point2 = pathShape.getPoint(percent2); - if (point2 === null) { - return { - x: 0, - y: 0, - angle: 0 - }; - } - if (percent2 < TAN_OFFSET) { - vector = pathShape.getStartTangent().reverse(); - } else if (percent2 > 1 - TAN_OFFSET) { - vector = pathShape.getEndTangent(); - } else { - var offsetPoint = pathShape.getPoint(percent2 + TAN_OFFSET); - vector.push([point2.x, point2.y]); - vector.push([offsetPoint.x, offsetPoint.y]); - } - var rad = Math.atan2(vector[1][1] - vector[0][1], vector[1][0] - vector[0][0]); - if (rad < 0) { - rad += PI2 * 2; - } - if (refX) { - point2.x += cos2(rad) * refX; - point2.y += sin2(rad) * refX; - } - if (refY) { - var normal2 = rad - PI2 / 2; - if (rad > 1 / 2 * PI2 && rad < 3 * 1 / 2 * PI2) { - normal2 -= PI2; - } - point2.x += cos2(normal2) * refY; - point2.y += sin2(normal2) * refY; - } - var result = { - x: point2.x, - y: point2.y, - angle: rad - }; - if (rotate8) { - if (rad > 1 / 2 * PI2 && rad < 3 * 1 / 2 * PI2) { - rad -= PI2; - } - return __assign({ - rotate: rad - }, result); - } - return result; -}; -var traverse = function traverse2(data3, fn2) { - if (fn2(data3) === false) { - return false; - } - if (data3 && data3.children) { - for (var i4 = data3.children.length - 1; i4 >= 0; i4--) { - if (!traverse2(data3.children[i4], fn2)) - return false; - } - } - return true; -}; -var traverseUp = function traverseUp2(data3, fn2) { - if (data3 && data3.children) { - for (var i4 = data3.children.length - 1; i4 >= 0; i4--) { - if (!traverseUp2(data3.children[i4], fn2)) - return; - } - } - if (fn2(data3) === false) { - return false; - } - return true; -}; -var traverseTree = function traverseTree2(data3, fn2) { - if (typeof fn2 !== "function") { - return; - } - traverse(data3, fn2); -}; -var traverseTreeUp = function traverseTreeUp2(data3, fn2) { - if (typeof fn2 !== "function") { - return; - } - traverseUp(data3, fn2); -}; -var getLetterWidth = function getLetterWidth2(letter, fontSize) { - return fontSize * (letterAspectRatio_default[letter] || 1); -}; -var getTextSize = function getTextSize2(text, fontSize) { - var width2 = 0; - var pattern2 = new RegExp("[\u4E00-\u9FA5]+"); - text.split("").forEach(function(letter) { - if (pattern2.test(letter)) { - width2 += fontSize; - } else { - width2 += getLetterWidth(letter, fontSize); - } - }); - return [width2, fontSize]; -}; -var plainCombosToTrees = function plainCombosToTrees2(array, nodes) { - var result = []; - var addedMap = {}; - var modelMap = {}; - array.forEach(function(d3) { - modelMap[d3.id] = d3; - }); - array.forEach(function(d3, i4) { - var cd = clone_default(d3); - cd.itemType = "combo"; - cd.children = void 0; - if (cd.parentId === cd.id) { - console.warn("The parentId for combo " + cd.id + " can not be the same as the combo's id"); - delete cd.parentId; - } else if (cd.parentId && !modelMap[cd.parentId]) { - console.warn("The parent combo for combo " + cd.id + " does not exist!"); - delete cd.parentId; - } - var mappedObj = addedMap[cd.id]; - if (mappedObj) { - cd.children = mappedObj.children; - addedMap[cd.id] = cd; - mappedObj = cd; - if (!mappedObj.parentId) { - result.push(mappedObj); - return; - } - var mappedParent = addedMap[mappedObj.parentId]; - if (mappedParent) { - if (mappedParent.children) - mappedParent.children.push(cd); - else - mappedParent.children = [cd]; - } else { - var parent_1 = { - id: mappedObj.parentId, - children: [mappedObj] - }; - addedMap[mappedObj.parentId] = parent_1; - addedMap[cd.id] = cd; - } - return; - } - if (is_string_default(d3.parentId)) { - var parent_2 = addedMap[d3.parentId]; - if (parent_2) { - if (parent_2.children) - parent_2.children.push(cd); - else - parent_2.children = [cd]; - addedMap[cd.id] = cd; - } else { - var pa = { - id: d3.parentId, - children: [cd] - }; - addedMap[pa.id] = pa; - addedMap[cd.id] = cd; - } - } else { - result.push(cd); - addedMap[cd.id] = cd; - } - }); - var nodeMap = {}; - (nodes || []).forEach(function(node) { - nodeMap[node.id] = node; - var combo = addedMap[node.comboId]; - if (combo) { - var cnode = { - id: node.id, - comboId: node.comboId - }; - if (combo.children) - combo.children.push(cnode); - else - combo.children = [cnode]; - cnode.itemType = "node"; - addedMap[node.id] = cnode; - } - }); - var maxDepth = 0; - result.forEach(function(tree) { - tree.depth = maxDepth + 10; - traverse(tree, function(child) { - var parent; - var itemType = addedMap[child.id].itemType; - if (itemType === "node") { - parent = addedMap[child.comboId]; - } else { - parent = addedMap[child.parentId]; - } - if (parent) { - if (itemType === "node") - child.depth = maxDepth + 1; - else - child.depth = maxDepth + 10; - } else { - child.depth = maxDepth + 10; - } - if (maxDepth < child.depth) - maxDepth = child.depth; - var oriNodeModel = nodeMap[child.id]; - if (oriNodeModel) { - oriNodeModel.depth = child.depth; - } - return true; - }); - }); - return result; -}; -var reconstructTree = function reconstructTree2(trees, subtreeId, newParentId) { - var brothers = trees; - var subtree; - var comboChildsMap = { - root: { - children: trees - } - }; - var foundSubTree = false; - var oldParentId = "root"; - (trees || []).forEach(function(tree) { - if (foundSubTree) - return; - if (tree.id === subtreeId) { - subtree = tree; - if (tree.itemType === "combo") { - subtree.parentId = newParentId; - } else { - subtree.comboId = newParentId; - } - foundSubTree = true; - return; - } - traverseTree(tree, function(child) { - comboChildsMap[child.id] = { - children: child.children - }; - brothers = comboChildsMap[child.parentId || child.comboId || "root"].children; - if (child && (child.removed || subtreeId === child.id) && brothers) { - oldParentId = child.parentId || child.comboId || "root"; - subtree = child; - if (child.itemType === "combo") { - subtree.parentId = newParentId; - } else { - subtree.comboId = newParentId; - } - foundSubTree = true; - return false; - } - return true; - }); - }); - brothers = comboChildsMap[oldParentId].children; - var index2 = brothers ? brothers.indexOf(subtree) : -1; - if (index2 > -1) - brothers.splice(index2, 1); - if (!foundSubTree) { - subtree = { - id: subtreeId, - itemType: "node", - comboId: newParentId - }; - comboChildsMap[subtreeId] = { - children: void 0 - }; - } - if (subtreeId) { - var found_1 = false; - if (newParentId) { - var newParentDepth_1 = 0; - (trees || []).forEach(function(tree) { - if (found_1) - return; - traverseTree(tree, function(child) { - if (newParentId === child.id) { - found_1 = true; - if (child.children) - child.children.push(subtree); - else - child.children = [subtree]; - newParentDepth_1 = child.depth; - if (subtree.itemType === "node") - subtree.depth = newParentDepth_1 + 2; - else - subtree.depth = newParentDepth_1 + 1; - return false; - } - return true; - }); - }); - } else if ((!newParentId || !found_1) && subtree.itemType !== "node") { - trees.push(subtree); - } - var currentDepth_1 = subtree.depth; - traverseTree(subtree, function(child) { - if (child.itemType === "node") - currentDepth_1 += 2; - else - currentDepth_1 += 1; - child.depth = currentDepth_1; - return true; - }); - } - return trees; -}; -var getComboBBox = function getComboBBox2(children, graph) { - var comboBBox = { - minX: Infinity, - minY: Infinity, - maxX: -Infinity, - maxY: -Infinity, - x: void 0, - y: void 0, - width: void 0, - height: void 0, - centerX: void 0, - centerY: void 0 - }; - if (!children || children.length === 0) { - return comboBBox; - } - children.forEach(function(child) { - var childItem = graph.findById(child.id); - if (!childItem || !childItem.isVisible()) - return; - childItem.set("bboxCanvasCache", void 0); - var childBBox = childItem.getCanvasBBox(); - if (childBBox.x && comboBBox.minX > childBBox.minX) - comboBBox.minX = childBBox.minX; - if (childBBox.y && comboBBox.minY > childBBox.minY) - comboBBox.minY = childBBox.minY; - if (childBBox.x && comboBBox.maxX < childBBox.maxX) - comboBBox.maxX = childBBox.maxX; - if (childBBox.y && comboBBox.maxY < childBBox.maxY) - comboBBox.maxY = childBBox.maxY; - }); - comboBBox.x = (comboBBox.minX + comboBBox.maxX) / 2; - comboBBox.y = (comboBBox.minY + comboBBox.maxY) / 2; - comboBBox.width = comboBBox.maxX - comboBBox.minX; - comboBBox.height = comboBBox.maxY - comboBBox.minY; - comboBBox.centerX = (comboBBox.minX + comboBBox.maxX) / 2; - comboBBox.centerY = (comboBBox.minY + comboBBox.maxY) / 2; - Object.keys(comboBBox).forEach(function(key) { - if (comboBBox[key] === Infinity || comboBBox[key] === -Infinity) { - comboBBox[key] = void 0; - } - }); - return comboBBox; -}; -var shouldRefreshEdge = function shouldRefreshEdge2(cfg) { - var refreshEdge = is_number_default(cfg.x) || is_number_default(cfg.y) || cfg.type || cfg.anchorPoints || cfg.size; - if (cfg.style) - refreshEdge = refreshEdge || is_number_default(cfg.style.r) || is_number_default(cfg.style.width) || is_number_default(cfg.style.height) || is_number_default(cfg.style.rx) || is_number_default(cfg.style.ry); - return refreshEdge; -}; -var cloneBesidesImg = function cloneBesidesImg2(obj) { - var clonedObj = {}; - Object.keys(obj).forEach(function(key1) { - var obj2 = obj[key1]; - if (is_object_default(obj2)) { - var clonedObj2_1 = {}; - Object.keys(obj2).forEach(function(key2) { - var v3 = obj2[key2]; - if (key2 === "img" && !is_string_default(v3)) - return; - clonedObj2_1[key2] = clone_default(v3); - }); - clonedObj[key1] = clonedObj2_1; - } else { - clonedObj[key1] = clone_default(obj2); - } - }); - return clonedObj; -}; - -// node_modules/@antv/g6-core/es/element/xml.js -function _typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function _typeof5(obj2) { - return typeof obj2; - }; - } else { - _typeof = function _typeof5(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof(obj); -} -function looseJSONParse(text) { - if (typeof text !== "string") { - return text; - } - var safeParse = function safeParse2(str9) { - if (typeof str9 !== "string") { - return str9; - } - try { - return JSON.parse(str9.trim()); - } catch (e4) { - return str9.trim(); - } - }; - var firstAttempt = safeParse(text); - if (typeof firstAttempt !== "string") { - return firstAttempt; - } - var tail = function tail2(arr) { - return arr[arr.length - 1]; - }; - var str8 = text.trim(); - var objectStack = []; - var syntaxStack = []; - var isLastPair = function isLastPair2() { - var syntaxes = []; - for (var _i = 0; _i < arguments.length; _i++) { - syntaxes[_i] = arguments[_i]; - } - return syntaxes.some(function(syntax) { - return tail(syntaxStack) === syntax; - }); - }; - var getValueStore = function getValueStore2() { - return tail(objectStack); - }; - var rst = null; - var i4 = 0; - var temp = ""; - while (i4 < str8.length) { - var nowChar = str8[i4]; - var isInString = isLastPair('"', "'"); - if (!isInString && !nowChar.trim()) { - i4 += 1; - continue; - } - var isLastTranslate = str8[i4 - 1] === "\\"; - var isInObject = isLastPair("}"); - var isInArray = isLastPair("]"); - var isWaitingValue = isLastPair(","); - var tempArr = getValueStore(); - if (isInString) { - if (tail(syntaxStack) === nowChar && !isLastTranslate) { - syntaxStack.pop(); - var value2 = safeParse(temp); - tempArr.push(value2); - rst = value2; - temp = ""; - } else { - temp += nowChar; - } - } else if (isInArray && nowChar === ",") { - if (temp) { - tempArr.push(safeParse(temp)); - temp = ""; - } - } else if (isInObject && nowChar === ":") { - syntaxStack.push(","); - if (temp) { - tempArr.push(temp); - temp = ""; - } - } else if (isWaitingValue && nowChar === ",") { - if (temp) { - tempArr.push(safeParse(temp)); - temp = ""; - } - syntaxStack.pop(); - } else if (nowChar === "}" && (isInObject || isWaitingValue)) { - if (temp) { - tempArr.push(safeParse(temp)); - temp = ""; - } - if (isWaitingValue) { - syntaxStack.pop(); - } - var obj = {}; - for (var c5 = 1; c5 < tempArr.length; c5 += 2) { - obj[tempArr[c5 - 1]] = tempArr[c5]; - } - objectStack.pop(); - if (objectStack.length) { - tail(objectStack).push(obj); - } - syntaxStack.pop(); - rst = obj; - } else if (nowChar === "]" && isInArray) { - if (temp) { - tempArr.push(safeParse(temp)); - temp = ""; - } - objectStack.pop(); - if (objectStack.length) { - tail(objectStack).push(tempArr); - } - syntaxStack.pop(); - rst = tempArr; - } else if (nowChar === "{") { - objectStack.push([]); - syntaxStack.push("}"); - } else if (nowChar === "[") { - objectStack.push([]); - syntaxStack.push("]"); - } else if (nowChar === '"') { - syntaxStack.push('"'); - } else if (nowChar === "'") { - syntaxStack.push("'"); - } else { - temp += nowChar; - } - i4 += 1; - } - return rst || temp; -} -var keyConvert = function keyConvert2(str8) { - return str8.split("-").reduce(function(a4, b10) { - return a4 + b10.charAt(0).toUpperCase() + b10.slice(1); - }); -}; -var xmlDataRenderer = function xmlDataRenderer2(xml) { - return function(data3) { - var len5 = xml.length; - var arr = []; - var i4 = 0; - var tmp = ""; - while (i4 < len5) { - if (xml[i4] === "{" && xml[i4 + 1] === "{") { - arr.push(tmp); - tmp = ""; - i4 += 2; - } else if (xml[i4] === "}" && xml[i4 + 1] === "}") { - if (arr.length) { - var last2 = arr.pop(); - tmp = get_default(data3, tmp, last2.endsWith("=") ? '"{' + tmp + '}"' : tmp); - arr.push(last2 + tmp); - } - i4 += 2; - tmp = ""; - } else { - tmp += xml[i4]; - i4 += 1; - } - } - arr.push(tmp); - return arr.map(function(e4, index2) { - return arr[index2 - 1] && arr[index2 - 1].endsWith("=") ? '"{' + e4 + '}"' : e4; - }).join(""); - }; -}; -function parseXML(xml, cfg) { - var attrs = {}; - var keys2 = xml.getAttributeNames && xml.getAttributeNames() || []; - var children = xml.children && Array.from(xml.children).map(function(e4) { - return parseXML(e4, cfg); - }); - var rst = {}; - var tagName = xml.tagName ? xml.tagName.toLowerCase() : "group"; - if (tagName === "text") { - attrs.text = xml.innerText; - } - rst.type = tagName; - if (tagName === "img") { - rst.type = "image"; - } - Array.from(keys2).forEach(function(k4) { - var key = keyConvert(k4); - var val = xml.getAttribute(k4); - try { - if (key === "style" || key === "attrs") { - var style = looseJSONParse(val); - attrs = __assign(__assign({}, attrs), style); - } else { - rst[key] = looseJSONParse(val); - } - } catch (e4) { - if (key === "style") { - throw e4; - } - rst[key] = val; - } - }); - rst.attrs = attrs; - if (cfg && cfg.style && rst.name && _typeof(cfg.style[rst.name]) === "object") { - rst.attrs = __assign(__assign({}, rst.attrs), cfg.style[rst.name]); - } - if (cfg && cfg.style && rst.keyshape) { - rst.attrs = __assign(__assign({}, rst.attrs), cfg.style); - } - if (children.length) { - rst.children = children; - } - return rst; -} -function getBBox4(node, offset, chilrenBBox) { - var _a6 = node.attrs, attrs = _a6 === void 0 ? {} : _a6; - var bbox = { - x: offset.x || 0, - y: offset.y || 0, - width: chilrenBBox.width || 0, - height: chilrenBBox.height || 0 - }; - var shapeHeight, shapeWidth; - switch (node.type) { - case "maker": - case "circle": - if (attrs.r) { - shapeWidth = 2 * attrs.r; - shapeHeight = 2 * attrs.r; - } - break; - case "text": - if (attrs.text) { - shapeWidth = getTextSize(attrs.text, attrs.fontSize || 12)[0]; - shapeHeight = 16; - bbox.y += shapeHeight; - bbox.height = shapeHeight; - bbox.width = shapeWidth; - node.attrs = __assign({ - fontSize: 12, - fill: "#000" - }, attrs); - } - break; - default: - if (attrs.width) { - shapeWidth = attrs.width; - } - if (attrs.height) { - shapeHeight = attrs.height; - } - } - if (shapeHeight >= 0) { - bbox.height = shapeHeight; - } - if (shapeWidth >= 0) { - bbox.width = shapeWidth; - } - if (attrs.marginTop) { - bbox.y += attrs.marginTop; - } - if (attrs.marginLeft) { - bbox.x += attrs.marginLeft; - } - return bbox; -} -function generateTarget(target, lastOffset) { - var _a6; - if (lastOffset === void 0) { - lastOffset = { - x: 0, - y: 0 - }; - } - var defaultBbox = __assign({ - x: 0, - y: 0, - width: 0, - height: 0 - }, lastOffset); - if ((_a6 = target.children) === null || _a6 === void 0 ? void 0 : _a6.length) { - var _b = target.attrs, attrs = _b === void 0 ? {} : _b; - var marginTop = attrs.marginTop; - var offset = __assign({}, lastOffset); - if (marginTop) { - offset.y += marginTop; - } - for (var index2 = 0; index2 < target.children.length; index2++) { - target.children[index2].attrs.key = (attrs.key || "root") + " -" + index2 + " "; - var node = generateTarget(target.children[index2], offset); - if (node.bbox) { - var bbox = node.bbox; - if (node.attrs.next === "inline") { - offset.x += node.bbox.width; - } else { - offset.y += node.bbox.height; - } - if (bbox.width + bbox.x > defaultBbox.width) { - defaultBbox.width = bbox.width + bbox.x; - } - if (bbox.height + bbox.y > defaultBbox.height) { - defaultBbox.height = bbox.height + bbox.y; - } - } - } - } - target.bbox = getBBox4(target, lastOffset, defaultBbox); - target.attrs = __assign(__assign({}, target.attrs), target.bbox); - return target; -} -function compareTwoTarget(nowTarget, formerTarget) { - var _a6, _b, _c, _d; - var type2 = (nowTarget || {}).type; - var key = ((formerTarget === null || formerTarget === void 0 ? void 0 : formerTarget.attrs) || {}).key; - if (key && nowTarget) { - nowTarget.attrs.key = key; - } - if (!nowTarget && formerTarget) { - return { - action: "delete", - val: formerTarget, - type: type2, - key - }; - } - if (nowTarget && !formerTarget) { - return { - action: "add", - val: nowTarget, - type: type2 - }; - } - if (!nowTarget && !formerTarget) { - return { - action: "same", - type: type2 - }; - } - var children = []; - if (((_a6 = nowTarget.children) === null || _a6 === void 0 ? void 0 : _a6.length) > 0 || ((_b = formerTarget.children) === null || _b === void 0 ? void 0 : _b.length) > 0) { - var length_1 = Math.max((_c = nowTarget.children) === null || _c === void 0 ? void 0 : _c.length, (_d = formerTarget.children) === null || _d === void 0 ? void 0 : _d.length); - var formerChilren = formerTarget.children || []; - var nowChilren = nowTarget.children || []; - for (var index2 = 0; index2 < length_1; index2 += 1) { - children.push(compareTwoTarget(nowChilren[index2], formerChilren[index2])); - } - } - var formerKeys = Object.keys(formerTarget.attrs); - var nowKeys = Object.keys(nowTarget.attrs); - if (formerTarget.type !== nowTarget.type) { - return { - action: "restructure", - nowTarget, - formerTarget, - key, - children - }; - } - if (formerKeys.filter(function(e4) { - return e4 !== "children"; - }).some(function(e4) { - return nowTarget.attrs[e4] !== formerTarget.attrs[e4] || !nowKeys.includes(e4); - })) { - return { - action: "change", - val: nowTarget, - children, - type: type2, - key - }; - } - return { - action: "same", - children, - type: type2, - key - }; -} -function createNodeFromXML(gen) { - var structures = {}; - var compileXML = function compileXML2(cfg) { - var rawStr = typeof gen === "function" ? gen(cfg) : gen; - var target = xmlDataRenderer(rawStr)(cfg); - var xmlParser = document.createElement("div"); - xmlParser.innerHTML = target; - var xml = xmlParser.children[0]; - var result = generateTarget(parseXML(xml, cfg)); - xmlParser.remove(); - return result; - }; - return { - draw: function draw4(cfg, group2) { - var resultTarget = compileXML(cfg); - var keyshape = group2; - var renderTarget = function renderTarget2(target) { - var _a6 = target.attrs, attrs = _a6 === void 0 ? {} : _a6, bbox = target.bbox, type2 = target.type, children = target.children, rest = __rest(target, ["attrs", "bbox", "type", "children"]); - if (target.type !== "group") { - var shape = group2.addShape(target.type, __assign({ - attrs, - origin: { - bbox, - type: type2, - children - } - }, rest)); - if (target.keyshape) { - keyshape = shape; - } - } - if (target.children) { - target.children.forEach(function(n3) { - return renderTarget2(n3); - }); - } - }; - renderTarget(resultTarget); - structures[cfg.id] = [resultTarget]; - return keyshape; - }, - update: function update15(cfg, node) { - if (!structures[cfg.id]) { - structures[cfg.id] = []; - } - var container2 = node.getContainer(); - var children = container2.get("children"); - var newTarget = compileXML(cfg); - var lastTarget = structures[cfg.id].pop(); - var diffResult = compareTwoTarget(newTarget, lastTarget); - var addShape = function addShape2(shape) { - var _a6; - if (shape.type !== "group") { - container2.addShape(shape.type, { - attrs: shape.attrs - }); - } - if ((_a6 = shape.children) === null || _a6 === void 0 ? void 0 : _a6.length) { - shape.children.map(function(e4) { - return addShape2(e4); - }); - } - }; - var delShape = function delShape2(shape) { - var _a6; - var targetShape = children.find(function(e4) { - return e4.attrs.key === shape.attrs.key; - }); - if (targetShape) { - container2.removeChild(targetShape); - } - if ((_a6 = shape.children) === null || _a6 === void 0 ? void 0 : _a6.length) { - shape.children.map(function(e4) { - return delShape2(e4); - }); - } - }; - var updateTarget = function updateTarget2(target) { - var key = target.key; - if (target.type !== "group") { - var targetShape = children.find(function(e4) { - return e4.attrs.key === key; - }); - switch (target.action) { - case "change": - if (targetShape) { - var originAttr = target.val.keyshape ? node.getOriginStyle() : {}; - targetShape.attr(__assign(__assign({}, originAttr), target.val.attrs)); - } - break; - case "add": - addShape(target.val); - break; - case "delete": - delShape(target.val); - break; - case "restructure": - delShape(target.formerTarget); - addShape(target.nowTarget); - break; - default: - break; - } - } - if (target.children) { - target.children.forEach(function(n3) { - return updateTarget2(n3); - }); - } - }; - updateTarget(diffResult); - structures[cfg.id].push(newTarget); - }, - getAnchorPoints: function getAnchorPoints4() { - return [[0, 0.5], [1, 0.5], [0.5, 1], [0.5, 0]]; - } - }; -} - -// node_modules/@antv/g6-core/es/element/shape.js -var cache2 = {}; -function ucfirst(str8) { - if (!cache2[str8]) { - cache2[str8] = upper_first_default(str8); - } - return cache2[str8]; -} -var ShapeFactoryBase2 = { - defaultShapeType: "defaultType", - className: null, - getShape: function getShape2(type2) { - var self2 = this; - var shape = self2[type2] || self2[self2.defaultShapeType] || self2["simple-circle"]; - return shape; - }, - draw: function draw(type2, cfg, group2) { - var shape = this.getShape(type2); - var rst = shape.draw(cfg, group2); - if (shape.afterDraw) { - shape.afterDraw(cfg, group2, rst); - } - return rst; - }, - baseUpdate: function baseUpdate(type2, cfg, item) { - var shape = this.getShape(type2); - if (shape.update) { - shape.update(cfg, item); - } - if (shape.afterUpdate) { - shape.afterUpdate(cfg, item); - } - }, - setState: function setState(type2, name, value2, item) { - var shape = this.getShape(type2); - shape.setState(name, value2, item); - }, - shouldUpdate: function shouldUpdate2(type2) { - var shape = this.getShape(type2); - return !!shape.update; - }, - getControlPoints: function getControlPoints(type2, cfg) { - var shape = this.getShape(type2); - return shape.getControlPoints(cfg); - }, - getAnchorPoints: function getAnchorPoints(type2, cfg) { - var shape = this.getShape(type2); - return shape.getAnchorPoints(cfg); - } -}; -var ShapeFramework = { - options: {}, - draw: function draw2(cfg, group2) { - return this.drawShape(cfg, group2); - }, - drawShape: function drawShape() { - }, - afterDraw: function afterDraw() { - }, - afterUpdate: function afterUpdate() { - }, - setState: function setState2() { - }, - getControlPoints: function getControlPoints2(cfg) { - return cfg.controlPoints; - }, - getAnchorPoints: function getAnchorPoints2(cfg) { - var defaultAnchorPoints = this.options.anchorPoints; - var anchorPoints = cfg.anchorPoints || defaultAnchorPoints; - return anchorPoints; - } -}; -var Shape2 = function() { - function Shape3() { - } - Shape3.registerFactory = function(factoryType, cfg) { - var className = ucfirst(factoryType); - var factoryBase = ShapeFactoryBase2; - var shapeFactory = __assign(__assign({}, factoryBase), cfg); - Shape3[className] = shapeFactory; - shapeFactory.className = className; - return shapeFactory; - }; - Shape3.getFactory = function(factoryType) { - var className = ucfirst(factoryType); - return Shape3[className]; - }; - Shape3.registerNode = function(shapeType, nodeDefinition, extendShapeType) { - var shapeFactory = Shape3.Node; - var shapeObj; - if (typeof nodeDefinition === "string" || typeof nodeDefinition === "function") { - var autoNodeDefinition = createNodeFromXML(nodeDefinition); - shapeObj = __assign(__assign({}, shapeFactory.getShape("single-node")), autoNodeDefinition); - } else if (nodeDefinition.jsx) { - var jsx = nodeDefinition.jsx; - var autoNodeDefinition = createNodeFromXML(jsx); - shapeObj = __assign(__assign(__assign({}, shapeFactory.getShape("single-node")), autoNodeDefinition), nodeDefinition); - } else { - shapeFactory.getShape(extendShapeType); - var extendShape = extendShapeType ? shapeFactory.getShape(extendShapeType) : ShapeFramework; - shapeObj = __assign(__assign({}, extendShape), nodeDefinition); - } - shapeObj.type = shapeType; - shapeObj.itemType = "node"; - shapeFactory[shapeType] = shapeObj; - return shapeObj; - }; - Shape3.registerEdge = function(shapeType, edgeDefinition, extendShapeType) { - var shapeFactory = Shape3.Edge; - var extendShape = extendShapeType ? shapeFactory.getShape(extendShapeType) : ShapeFramework; - var shapeObj = __assign(__assign({}, extendShape), edgeDefinition); - shapeObj.type = shapeType; - shapeObj.itemType = "edge"; - shapeFactory[shapeType] = shapeObj; - return shapeObj; - }; - Shape3.registerCombo = function(shapeType, comboDefinition, extendShapeType) { - var shapeFactory = Shape3.Combo; - var extendShape = extendShapeType ? shapeFactory.getShape(extendShapeType) : ShapeFramework; - var shapeObj = __assign(__assign({}, extendShape), comboDefinition); - shapeObj.type = shapeType; - shapeObj.itemType = "combo"; - shapeFactory[shapeType] = shapeObj; - return shapeObj; - }; - return Shape3; -}(); -var shape_default4 = Shape2; -Shape2.registerFactory("node", { - defaultShapeType: "circle" -}); -Shape2.registerFactory("edge", { - defaultShapeType: "line" -}); -Shape2.registerFactory("combo", { - defaultShapeType: "circle" -}); - -// node_modules/@antv/g6-core/es/item/item.js -var CACHE_BBOX = "bboxCache"; -var CACHE_CANVAS_BBOX = "bboxCanvasCache"; -var ItemBase = function() { - function ItemBase2(cfg) { - this._cfg = {}; - this.destroyed = false; - var defaultCfg2 = { - id: void 0, - type: "item", - model: {}, - group: void 0, - animate: false, - visible: true, - locked: false, - event: true, - keyShape: void 0, - states: [] - }; - this._cfg = Object.assign(defaultCfg2, this.getDefaultCfg(), cfg); - var model = this.get("model"); - var id = model.id; - var itemType = this.get("type"); - if (!id) { - id = uniqueId3(itemType); - this.get("model").id = id; - } - this.set("id", id); - var group2 = cfg.group; - if (group2) { - group2.set("item", this); - group2.set("id", id); - } - this.init(); - this.draw(); - var shapeType = model.shape || model.type || (itemType === "edge" ? "line" : "circle"); - var shapeFactory = this.get("shapeFactory"); - if (shapeFactory && shapeFactory[shapeType]) { - var options = shapeFactory[shapeType].options; - if (options && options.stateStyles) { - var styles = this.get("styles") || model.stateStyles; - styles = deep_mix_default({}, options.stateStyles, styles); - this.set("styles", styles); - } - } - } - ItemBase2.prototype.calculateBBox = function() { - var keyShape = this.get("keyShape"); - var group2 = this.get("group"); - var bbox = getBBox2(keyShape, group2); - bbox.x = bbox.minX; - bbox.y = bbox.minY; - bbox.width = bbox.maxX - bbox.minX; - bbox.height = bbox.maxY - bbox.minY; - bbox.centerX = (bbox.minX + bbox.maxX) / 2; - bbox.centerY = (bbox.minY + bbox.maxY) / 2; - return bbox; - }; - ItemBase2.prototype.calculateCanvasBBox = function() { - var keyShape = this.get("keyShape"); - var group2 = this.get("group"); - var bbox = getBBox2(keyShape, group2); - bbox.x = bbox.minX; - bbox.y = bbox.minY; - bbox.width = bbox.maxX - bbox.minX; - bbox.height = bbox.maxY - bbox.minY; - bbox.centerX = (bbox.minX + bbox.maxX) / 2; - bbox.centerY = (bbox.minY + bbox.maxY) / 2; - return bbox; - }; - ItemBase2.prototype.drawInner = function() { - var self2 = this; - var shapeFactory = self2.get("shapeFactory"); - var group2 = self2.get("group"); - var model = self2.get("model"); - group2.clear(); - var visible = model.visible; - if (visible !== void 0 && !visible) - self2.changeVisibility(visible); - if (!shapeFactory) { - return; - } - self2.updatePosition(model); - var cfg = self2.getShapeCfg(model); - var shapeType = cfg.type; - var keyShape = shapeFactory.draw(shapeType, cfg, group2); - if (keyShape) { - self2.set("keyShape", keyShape); - keyShape.set("isKeyShape", true); - keyShape.set("draggable", true); - } - this.setOriginStyle(); - this.set("currentShape", shapeType); - this.restoreStates(shapeFactory, shapeType); - }; - ItemBase2.prototype.setOriginStyle = function(cfg) { - var group2 = this.get("group"); - var children = group2.get("children"); - var keyShape = this.getKeyShape(); - var self2 = this; - var keyShapeName = keyShape.get("name"); - if (!this.get("originStyle")) { - var originStyles_1 = {}; - each_default(children, function(child) { - var shapeType = child.get("type"); - var name = child.get("name"); - if (name && name !== keyShapeName) { - originStyles_1[name] = shapeType !== "image" ? clone_default(child.attr()) : self2.getShapeStyleByName(name); - } else { - var keyShapeStyle = self2.getShapeStyleByName(); - if (keyShapeStyle.path) - delete keyShapeStyle.path; - if (keyShapeStyle.matrix) - delete keyShapeStyle.matrix; - if (!keyShapeName) { - Object.assign(originStyles_1, keyShapeStyle); - } else { - if (!name) { - var shapeName = uniqueId3("shape"); - child.set("name", shapeName); - originStyles_1[shapeName] = shapeType !== "image" ? clone_default(child.attr()) : self2.getShapeStyleByName(name); - } else - originStyles_1[keyShapeName] = keyShapeStyle; - } - } - }); - self2.set("originStyle", originStyles_1); - } else { - var styles_1 = this.getOriginStyle(); - if (keyShapeName && !styles_1[keyShapeName]) - styles_1[keyShapeName] = {}; - var currentStatesStyle_1 = this.getCurrentStatesStyle(); - each_default(children, function(child) { - var name = child.get("name"); - var shapeAttrs = child.attr(); - if (name && name !== keyShapeName) { - var shapeStateStyle_1 = currentStatesStyle_1[name]; - if (!styles_1[name]) - styles_1[name] = {}; - if (shapeStateStyle_1) { - Object.keys(shapeAttrs).forEach(function(key) { - var value2 = shapeAttrs[key]; - if (value2 !== shapeStateStyle_1[key]) - styles_1[name][key] = value2; - }); - } else { - styles_1[name] = child.get("type") !== "image" ? clone_default(shapeAttrs) : self2.getShapeStyleByName(name); - } - } else { - var shapeAttrs_1 = child.attr(); - var keyShapeStateStyles_1 = __assign(__assign({}, currentStatesStyle_1), currentStatesStyle_1[keyShapeName]); - Object.keys(shapeAttrs_1).forEach(function(key) { - var value2 = shapeAttrs_1[key]; - if (keyShapeStateStyles_1[key] !== value2) { - if (keyShapeName) - styles_1[keyShapeName][key] = value2; - else - styles_1[key] = value2; - } - }); - } - }); - if (styles_1.path) - delete styles_1.path; - if (styles_1.matrix) - delete styles_1.matrix; - if (styles_1.x) - delete styles_1.x; - if (styles_1.y) - delete styles_1.y; - if (styles_1[keyShapeName] && styles_1[keyShapeName].x) - delete styles_1[keyShapeName].x; - if (styles_1[keyShapeName] && styles_1[keyShapeName].y) - delete styles_1[keyShapeName].y; - self2.set("originStyle", styles_1); - } - }; - ItemBase2.prototype.restoreStates = function(shapeFactory, shapeType) { - var self2 = this; - var states = self2.get("states"); - each_default(states, function(state2) { - shapeFactory.setState(shapeType, state2, true, self2); - }); - }; - ItemBase2.prototype.init = function() { - var shapeFactory = shape_default4.getFactory(this.get("type")); - this.set("shapeFactory", shapeFactory); - }; - ItemBase2.prototype.get = function(key) { - return this._cfg[key]; - }; - ItemBase2.prototype.set = function(key, val) { - if (is_plain_object_default(key)) { - this._cfg = __assign(__assign({}, this._cfg), key); - } else { - this._cfg[key] = val; - } - }; - ItemBase2.prototype.getDefaultCfg = function() { - return {}; - }; - ItemBase2.prototype.clearCache = function() { - this.set(CACHE_BBOX, null); - this.set(CACHE_CANVAS_BBOX, null); - }; - ItemBase2.prototype.beforeDraw = function() { - }; - ItemBase2.prototype.afterDraw = function() { - }; - ItemBase2.prototype.afterUpdate = function() { - }; - ItemBase2.prototype.draw = function() { - this.beforeDraw(); - this.drawInner(); - this.afterDraw(); - }; - ItemBase2.prototype.getShapeStyleByName = function(name) { - var group2 = this.get("group"); - var currentShape; - if (name) { - currentShape = group2.find(function(element) { - return element.get("name") === name; - }); - } else { - currentShape = this.getKeyShape(); - } - if (currentShape) { - var styles_2 = {}; - each_default(currentShape.attr(), function(val, key) { - if (key !== "img") { - styles_2[key] = val; - } - }); - return styles_2; - } - return {}; - }; - ItemBase2.prototype.getShapeCfg = function(model) { - var styles = this.get("styles"); - if (styles) { - var newModel = model; - newModel.style = __assign(__assign({}, styles), model.style); - return newModel; - } - return model; - }; - ItemBase2.prototype.getStateStyle = function(state2) { - var styles = this.get("styles"); - var stateStyle = styles && styles[state2]; - return stateStyle; - }; - ItemBase2.prototype.getOriginStyle = function() { - return this.get("originStyle"); - }; - ItemBase2.prototype.getCurrentStatesStyle = function() { - var self2 = this; - var styles = {}; - var states = self2.getStates(); - if (!states || !states.length) { - return this.getOriginStyle(); - } - each_default(self2.getStates(), function(state2) { - styles = Object.assign(styles, self2.getStateStyle(state2)); - }); - return styles; - }; - ItemBase2.prototype.setState = function(state2, value2) { - var states = this.get("states"); - var shapeFactory = this.get("shapeFactory"); - var stateName = state2; - var filterStateName = state2; - if (is_string_default(value2)) { - stateName = state2 + ":" + value2; - filterStateName = state2 + ":"; - } - var newStates = states; - if (is_boolean_default(value2)) { - var index2 = states.indexOf(filterStateName); - if (value2) { - if (index2 > -1) { - return; - } - states.push(stateName); - } else if (index2 > -1) { - states.splice(index2, 1); - } - } else if (is_string_default(value2)) { - var filterStates = states.filter(function(name) { - return name.includes(filterStateName); - }); - if (filterStates.length > 0) { - this.clearStates(filterStates); - } - newStates = newStates.filter(function(name) { - return !name.includes(filterStateName); - }); - newStates.push(stateName); - this.set("states", newStates); - } - if (shapeFactory) { - var model = this.get("model"); - var type2 = model.type; - shapeFactory.setState(type2, state2, value2, this); - } - }; - ItemBase2.prototype.clearStates = function(states) { - var self2 = this; - var originStates = self2.getStates(); - var shapeFactory = self2.get("shapeFactory"); - var model = self2.get("model"); - var shape = model.type; - if (!states) { - states = originStates; - } - if (is_string_default(states)) { - states = [states]; - } - var newStates = originStates.filter(function(state2) { - return states.indexOf(state2) === -1; - }); - self2.set("states", newStates); - states.forEach(function(state2) { - shapeFactory.setState(shape, state2, false, self2); - }); - }; - ItemBase2.prototype.getContainer = function() { - return this.get("group"); - }; - ItemBase2.prototype.getKeyShape = function() { - return this.get("keyShape"); - }; - ItemBase2.prototype.getModel = function() { - return this.get("model"); - }; - ItemBase2.prototype.getType = function() { - return this.get("type"); - }; - ItemBase2.prototype.getID = function() { - return this.get("id"); - }; - ItemBase2.prototype.isItem = function() { - return true; - }; - ItemBase2.prototype.getStates = function() { - return this.get("states"); - }; - ItemBase2.prototype.hasState = function(state2) { - var states = this.getStates(); - return states.indexOf(state2) >= 0; - }; - ItemBase2.prototype.refresh = function() { - var model = this.get("model"); - this.updatePosition(model); - this.updateShape(); - this.afterUpdate(); - this.clearCache(); - }; - ItemBase2.prototype.isOnlyMove = function(cfg) { - return false; - }; - ItemBase2.prototype.update = function(cfg, onlyMove) { - if (onlyMove === void 0) { - onlyMove = false; - } - var model = this.get("model"); - var oriVisible = model.visible; - var cfgVisible = cfg.visible; - if (oriVisible !== cfgVisible && cfgVisible !== void 0) - this.changeVisibility(cfgVisible); - var originPosition = { - x: model.x, - y: model.y - }; - cfg.x = isNaN(cfg.x) ? model.x : cfg.x; - cfg.y = isNaN(cfg.y) ? model.y : cfg.y; - var styles = this.get("styles"); - if (cfg.stateStyles) { - var stateStyles = cfg.stateStyles; - mix(styles, stateStyles); - delete cfg.stateStyles; - } - Object.assign(model, cfg); - if (onlyMove) { - this.updatePosition(cfg); - } else { - if (originPosition.x !== cfg.x || originPosition.y !== cfg.y) { - this.updatePosition(cfg); - } - this.updateShape(); - } - this.afterUpdate(); - this.clearCache(); - }; - ItemBase2.prototype.updateShape = function() { - var shapeFactory = this.get("shapeFactory"); - var model = this.get("model"); - var shape = model.type; - if (shapeFactory.shouldUpdate(shape) && shape === this.get("currentShape")) { - var updateCfg2 = this.getShapeCfg(model); - shapeFactory.baseUpdate(shape, updateCfg2, this); - } else { - this.draw(); - } - this.setOriginStyle(model); - this.restoreStates(shapeFactory, shape); - }; - ItemBase2.prototype.updatePosition = function(cfg) { - var model = this.get("model"); - var x6 = is_nil_default(cfg.x) ? model.x : cfg.x; - var y5 = is_nil_default(cfg.y) ? model.y : cfg.y; - var group2 = this.get("group"); - if (is_nil_default(x6) || is_nil_default(y5)) { - return false; - } - model.x = x6; - model.y = y5; - var matrix = group2.getMatrix(); - if (matrix && matrix[6] === x6 && matrix[7] === y5) - return false; - group2.resetMatrix(); - translate4(group2, { - x: x6, - y: y5 - }); - this.clearCache(); - return true; - }; - ItemBase2.prototype.getBBox = function() { - var bbox = this.get(CACHE_BBOX); - if (!bbox) { - bbox = this.calculateBBox(); - this.set(CACHE_BBOX, bbox); - } - return bbox; - }; - ItemBase2.prototype.getCanvasBBox = function() { - var bbox = this.get(CACHE_CANVAS_BBOX); - if (!bbox) { - bbox = this.calculateCanvasBBox(); - this.set(CACHE_CANVAS_BBOX, bbox); - } - return bbox; - }; - ItemBase2.prototype.toFront = function() { - var group2 = this.get("group"); - group2.toFront(); - }; - ItemBase2.prototype.toBack = function() { - var group2 = this.get("group"); - group2.toBack(); - }; - ItemBase2.prototype.show = function() { - this.changeVisibility(true); - }; - ItemBase2.prototype.hide = function() { - this.changeVisibility(false); - }; - ItemBase2.prototype.changeVisibility = function(visible) { - var group2 = this.get("group"); - if (visible) { - group2.show(); - } else { - group2.hide(); - } - this.set("visible", visible); - }; - ItemBase2.prototype.isVisible = function() { - return this.get("visible"); - }; - ItemBase2.prototype.enableCapture = function(enable) { - var group2 = this.get("group"); - if (group2) { - group2.set("capture", enable); - } - }; - ItemBase2.prototype.destroy = function() { - if (!this.destroyed) { - var animate = this.get("animate"); - var group2 = this.get("group"); - if (animate) { - group2.stopAnimate(); - } - this.clearCache(); - group2.remove(); - this._cfg = null; - this.destroyed = true; - } - }; - return ItemBase2; -}(); -var item_default = ItemBase; - -// node_modules/@antv/g6-core/es/item/edge.js -var END_MAP = { - source: "start", - target: "end" -}; -var ITEM_NAME_SUFFIX = "Node"; -var POINT_NAME_SUFFIX = "Point"; -var ANCHOR_NAME_SUFFIX = "Anchor"; -var Edge3 = function(_super) { - __extends(Edge4, _super); - function Edge4() { - return _super !== null && _super.apply(this, arguments) || this; - } - Edge4.prototype.getDefaultCfg = function() { - return { - type: "edge", - sourceNode: null, - targetNode: null, - startPoint: null, - endPoint: null, - linkCenter: false - }; - }; - Edge4.prototype.setEnd = function(name, value2) { - var pointName = END_MAP[name] + POINT_NAME_SUFFIX; - var itemName = name + ITEM_NAME_SUFFIX; - var preItem = this.get(itemName); - if (preItem && !preItem.destroyed) { - preItem.removeEdge(this); - } - if (is_plain_object_default(value2)) { - this.set(pointName, value2); - this.set(itemName, null); - } else { - value2.addEdge(this); - this.set(itemName, value2); - this.set(pointName, null); - } - }; - Edge4.prototype.getLinkPoint = function(name, model, controlPoints) { - var pointName = END_MAP[name] + POINT_NAME_SUFFIX; - var itemName = name + ITEM_NAME_SUFFIX; - var point2 = this.get(pointName); - if (!point2) { - var item = this.get(itemName); - var anchorName = name + ANCHOR_NAME_SUFFIX; - var prePoint = this.getPrePoint(name, controlPoints); - var anchorIndex = model[anchorName]; - if (!is_nil_default(anchorIndex)) { - point2 = item.getLinkPointByAnchor(anchorIndex); - } - point2 = point2 || item.getLinkPoint(prePoint); - if (!is_nil_default(point2.index)) { - this.set(name + "AnchorIndex", point2.index); - } - } - return point2; - }; - Edge4.prototype.getPrePoint = function(name, controlPoints) { - if (controlPoints && controlPoints.length) { - var index2 = name === "source" ? 0 : controlPoints.length - 1; - return controlPoints[index2]; - } - var oppositeName = name === "source" ? "target" : "source"; - return this.getEndPoint(oppositeName); - }; - Edge4.prototype.getEndPoint = function(name) { - var itemName = name + ITEM_NAME_SUFFIX; - var pointName = END_MAP[name] + POINT_NAME_SUFFIX; - var item = this.get(itemName); - if (item) { - return item.get("model"); - } - return this.get(pointName); - }; - Edge4.prototype.getControlPointsByCenter = function(model) { - var sourcePoint = this.getEndPoint("source"); - var targetPoint = this.getEndPoint("target"); - var shapeFactory = this.get("shapeFactory"); - var type2 = model.type; - return shapeFactory.getControlPoints(type2, { - startPoint: sourcePoint, - endPoint: targetPoint - }); - }; - Edge4.prototype.getEndCenter = function(name) { - var itemName = name + ITEM_NAME_SUFFIX; - var pointName = END_MAP[name] + POINT_NAME_SUFFIX; - var item = this.get(itemName); - if (item) { - var bbox = item.getBBox(); - return { - x: bbox.centerX, - y: bbox.centerY - }; - } - return this.get(pointName); - }; - Edge4.prototype.init = function() { - _super.prototype.init.call(this); - this.setSource(this.get("source")); - this.setTarget(this.get("target")); - }; - Edge4.prototype.getShapeCfg = function(model) { - var self2 = this; - var linkCenter = self2.get("linkCenter"); - var cfg = _super.prototype.getShapeCfg.call(this, model); - if (linkCenter) { - cfg.startPoint = self2.getEndCenter("source"); - cfg.endPoint = self2.getEndCenter("target"); - } else { - var controlPoints = cfg.controlPoints || self2.getControlPointsByCenter(cfg); - cfg.startPoint = self2.getLinkPoint("source", model, controlPoints); - cfg.endPoint = self2.getLinkPoint("target", model, controlPoints); - } - cfg.sourceNode = self2.get("sourceNode"); - cfg.targetNode = self2.get("targetNode"); - return cfg; - }; - Edge4.prototype.getModel = function() { - var out = this.get("model"); - var sourceItem = this.get("source" + ITEM_NAME_SUFFIX); - var targetItem = this.get("target" + ITEM_NAME_SUFFIX); - if (sourceItem) { - delete out["source" + ITEM_NAME_SUFFIX]; - } else { - out.source = this.get("start" + POINT_NAME_SUFFIX); - } - if (targetItem) { - delete out["target" + ITEM_NAME_SUFFIX]; - } else { - out.target = this.get("end" + POINT_NAME_SUFFIX); - } - if (!is_string_default(out.source) && !is_plain_object_default(out.source)) { - out.source = out.source.getID(); - } - if (!is_string_default(out.target) && !is_plain_object_default(out.target)) { - out.target = out.target.getID(); - } - return out; - }; - Edge4.prototype.setSource = function(source) { - this.setEnd("source", source); - this.set("source", source); - }; - Edge4.prototype.setTarget = function(target) { - this.setEnd("target", target); - this.set("target", target); - }; - Edge4.prototype.getSource = function() { - return this.get("source"); - }; - Edge4.prototype.getTarget = function() { - return this.get("target"); - }; - Edge4.prototype.updatePosition = function() { - return false; - }; - Edge4.prototype.update = function(cfg, onlyMove) { - if (onlyMove === void 0) { - onlyMove = false; - } - var model = this.get("model"); - var oriVisible = model.visible; - var cfgVisible = cfg.visible; - if (oriVisible !== cfgVisible && cfgVisible !== void 0) - this.changeVisibility(cfgVisible); - var styles = this.get("styles"); - if (cfg.stateStyles) { - var stateStyles = cfg.stateStyles; - mix(styles, stateStyles); - delete cfg.stateStyles; - } - Object.assign(model, cfg); - this.updateShape(); - this.afterUpdate(); - this.clearCache(); - }; - Edge4.prototype.destroy = function() { - var sourceItem = this.get("source" + ITEM_NAME_SUFFIX); - var targetItem = this.get("target" + ITEM_NAME_SUFFIX); - if (sourceItem && !sourceItem.destroyed) { - sourceItem.removeEdge(this); - } - if (targetItem && !targetItem.destroyed) { - targetItem.removeEdge(this); - } - _super.prototype.destroy.call(this); - }; - return Edge4; -}(item_default); -var edge_default2 = Edge3; - -// node_modules/@antv/g6-core/es/item/node.js -var CACHE_ANCHOR_POINTS = "anchorPointsCache"; -var CACHE_BBOX2 = "bboxCache"; -var Node4 = function(_super) { - __extends(Node5, _super); - function Node5() { - return _super !== null && _super.apply(this, arguments) || this; - } - Node5.prototype.getNearestPoint = function(points, curPoint) { - var index2 = 0; - var nearestPoint2 = points[0]; - var minDistance = distance10(points[0], curPoint); - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - var dis = distance10(point2, curPoint); - if (dis < minDistance) { - nearestPoint2 = point2; - minDistance = dis; - index2 = i4; - } - } - nearestPoint2.anchorIndex = index2; - return nearestPoint2; - }; - Node5.prototype.getDefaultCfg = function() { - return { - type: "node", - edges: [] - }; - }; - Node5.prototype.getEdges = function() { - return this.get("edges"); - }; - Node5.prototype.getInEdges = function() { - var self2 = this; - return this.get("edges").filter(function(edge2) { - return edge2.get("target") === self2; - }); - }; - Node5.prototype.getOutEdges = function() { - var self2 = this; - return this.get("edges").filter(function(edge2) { - return edge2.get("source") === self2; - }); - }; - Node5.prototype.getNeighbors = function(type2) { - var _this = this; - var edges = this.get("edges"); - if (type2 === "target") { - var neighhborsConverter_1 = function neighhborsConverter_12(edge2) { - return edge2.getSource() === _this; - }; - return edges.filter(neighhborsConverter_1).map(function(edge2) { - return edge2.getTarget(); - }); - } - if (type2 === "source") { - var neighhborsConverter_2 = function neighhborsConverter_22(edge2) { - return edge2.getTarget() === _this; - }; - return edges.filter(neighhborsConverter_2).map(function(edge2) { - return edge2.getSource(); - }); - } - var neighhborsConverter = function neighhborsConverter2(edge2) { - return edge2.getSource() === _this ? edge2.getTarget() : edge2.getSource(); - }; - return edges.map(neighhborsConverter); - }; - Node5.prototype.getLinkPointByAnchor = function(index2) { - var anchorPoints = this.getAnchorPoints(); - return anchorPoints[index2]; - }; - Node5.prototype.getLinkPoint = function(point2) { - var keyShape = this.get("keyShape"); - var type2 = keyShape.get("type"); - var itemType = this.get("type"); - var centerX; - var centerY; - var bbox = this.getBBox(); - if (itemType === "combo") { - centerX = bbox.centerX || (bbox.maxX + bbox.minX) / 2; - centerY = bbox.centerY || (bbox.maxY + bbox.minY) / 2; - } else { - centerX = bbox.centerX; - centerY = bbox.centerY; - } - var anchorPoints = this.getAnchorPoints(); - var intersectPoint; - switch (type2) { - case "circle": - intersectPoint = getCircleIntersectByPoint({ - x: centerX, - y: centerY, - r: bbox.width / 2 - }, point2); - break; - case "ellipse": - intersectPoint = getEllipseIntersectByPoint({ - x: centerX, - y: centerY, - rx: bbox.width / 2, - ry: bbox.height / 2 - }, point2); - break; - default: - intersectPoint = getRectIntersectByPoint(bbox, point2); - } - var linkPoint = intersectPoint; - if (anchorPoints.length) { - if (!linkPoint) { - linkPoint = point2; - } - linkPoint = this.getNearestPoint(anchorPoints, linkPoint); - } - if (!linkPoint) { - linkPoint = { - x: centerX, - y: centerY - }; - } - return linkPoint; - }; - Node5.prototype.getAnchorPoints = function() { - var anchorPoints = this.get(CACHE_ANCHOR_POINTS); - if (!anchorPoints) { - anchorPoints = []; - var shapeFactory = this.get("shapeFactory"); - var bbox_1 = this.getBBox(); - var model = this.get("model"); - var shapeCfg = this.getShapeCfg(model); - var type2 = model.type; - var points = shapeFactory.getAnchorPoints(type2, shapeCfg) || []; - each_default(points, function(pointArr, index2) { - var point2 = { - x: bbox_1.minX + pointArr[0] * bbox_1.width, - y: bbox_1.minY + pointArr[1] * bbox_1.height, - anchorIndex: index2 - }; - anchorPoints.push(point2); - }); - this.set(CACHE_ANCHOR_POINTS, anchorPoints); - } - return anchorPoints; - }; - Node5.prototype.addEdge = function(edge2) { - this.get("edges").push(edge2); - }; - Node5.prototype.lock = function() { - this.set("locked", true); - }; - Node5.prototype.unlock = function() { - this.set("locked", false); - }; - Node5.prototype.hasLocked = function() { - return this.get("locked"); - }; - Node5.prototype.removeEdge = function(edge2) { - var edges = this.getEdges(); - var index2 = edges.indexOf(edge2); - if (index2 > -1) { - edges.splice(index2, 1); - } - }; - Node5.prototype.clearCache = function() { - this.set(CACHE_BBOX2, null); - this.set(CACHE_ANCHOR_POINTS, null); - }; - Node5.prototype.isOnlyMove = function(cfg) { - if (!cfg) { - return false; - } - var existX = !is_nil_default(cfg.x); - var existY = !is_nil_default(cfg.y); - var keys2 = Object.keys(cfg); - return keys2.length === 1 && (existX || existY) || keys2.length === 2 && existX && existY; - }; - return Node5; -}(item_default); -var node_default = Node4; - -// node_modules/@antv/g6-core/es/item/combo.js -var CACHE_BBOX3 = "bboxCache"; -var CACHE_CANVAS_BBOX2 = "bboxCanvasCache"; -var CACHE_SIZE = "sizeCache"; -var CACHE_ANCHOR_POINTS2 = "anchorPointsCache"; -var Combo = function(_super) { - __extends(Combo2, _super); - function Combo2() { - return _super !== null && _super.apply(this, arguments) || this; - } - Combo2.prototype.getDefaultCfg = function() { - return { - type: "combo", - nodes: [], - edges: [], - combos: [] - }; - }; - Combo2.prototype.getShapeCfg = function(model) { - var styles = this.get("styles"); - var bbox = this.get("bbox"); - if (styles && bbox) { - var newModel = model; - var size2 = { - r: Math.hypot(bbox.height, bbox.width) / 2 || global_default.defaultCombo.size[0] / 2, - width: bbox.width || global_default.defaultCombo.size[0], - height: bbox.height || global_default.defaultCombo.size[1] - }; - newModel.style = __assign(__assign(__assign({}, styles), model.style), size2); - var padding3 = model.padding || global_default.defaultCombo.padding; - if (is_number_default(padding3)) { - size2.r += padding3; - size2.width += padding3 * 2; - size2.height += padding3 * 2; - } else { - size2.r += padding3[0]; - size2.width += padding3[1] + padding3[3] || padding3[1] * 2; - size2.height += padding3[0] + padding3[2] || padding3[0] * 2; - } - this.set(CACHE_SIZE, size2); - return newModel; - } - return model; - }; - Combo2.prototype.calculateCanvasBBox = function() { - if (this.destroyed) - return; - var keyShape = this.get("keyShape"); - var group2 = this.get("group"); - var bbox = getBBox2(keyShape, group2); - bbox.centerX = (bbox.minX + bbox.maxX) / 2; - bbox.centerY = (bbox.minY + bbox.maxY) / 2; - var cacheSize = this.get(CACHE_SIZE); - var cacheBBox = this.get(CACHE_BBOX3) || {}; - var oriX = cacheBBox.x; - var oriY = cacheBBox.x; - if (cacheSize) { - cacheSize.width = Math.max(cacheSize.width, bbox.width); - cacheSize.height = Math.max(cacheSize.height, bbox.height); - var type2 = keyShape.get("type"); - if (type2 === "circle") { - bbox.width = cacheSize.r * 2; - bbox.height = cacheSize.r * 2; - } else { - bbox.width = cacheSize.width; - bbox.height = cacheSize.height; - } - bbox.minX = bbox.centerX - bbox.width / 2; - bbox.minY = bbox.centerY - bbox.height / 2; - bbox.maxX = bbox.centerX + bbox.width / 2; - bbox.maxY = bbox.centerY + bbox.height / 2; - } else { - bbox.width = bbox.maxX - bbox.minX; - bbox.height = bbox.maxY - bbox.minY; - bbox.centerX = (bbox.minX + bbox.maxX) / 2; - bbox.centerY = (bbox.minY + bbox.maxY) / 2; - } - bbox.x = bbox.minX; - bbox.y = bbox.minY; - if (bbox.x !== oriX || bbox.y !== oriY) - this.set(CACHE_ANCHOR_POINTS2, null); - return bbox; - }; - Combo2.prototype.getChildren = function() { - var self2 = this; - return { - nodes: self2.getNodes(), - combos: self2.getCombos() - }; - }; - Combo2.prototype.getNodes = function() { - var self2 = this; - return self2.get("nodes"); - }; - Combo2.prototype.getCombos = function() { - var self2 = this; - return self2.get("combos"); - }; - Combo2.prototype.addChild = function(item) { - var self2 = this; - var itemType = item.getType(); - switch (itemType) { - case "node": - self2.addNode(item); - break; - case "combo": - self2.addCombo(item); - break; - default: - console.warn("Only node or combo items are allowed to be added into a combo"); - return false; - } - return true; - }; - Combo2.prototype.addCombo = function(combo) { - var self2 = this; - self2.get("combos").push(combo); - return true; - }; - Combo2.prototype.addNode = function(node) { - var self2 = this; - self2.get("nodes").push(node); - return true; - }; - Combo2.prototype.removeChild = function(item) { - var self2 = this; - var itemType = item.getType(); - switch (itemType) { - case "node": - self2.removeNode(item); - break; - case "combo": - self2.removeCombo(item); - break; - default: - console.warn("Only node or combo items are allowed to be added into a combo"); - return false; - } - return true; - }; - Combo2.prototype.removeCombo = function(combo) { - if (!combo) - return; - var combos = this.getCombos(); - var index2 = combos.indexOf(combo); - if (index2 > -1) { - combos.splice(index2, 1); - return true; - } - return false; - }; - Combo2.prototype.removeNode = function(node) { - if (!node) - return; - var nodes = this.getNodes(); - var index2 = nodes.indexOf(node); - if (index2 > -1) { - nodes.splice(index2, 1); - return true; - } - return false; - }; - Combo2.prototype.isOnlyMove = function(cfg) { - return false; - }; - Combo2.prototype.getBBox = function() { - this.set(CACHE_CANVAS_BBOX2, null); - var bbox = this.calculateCanvasBBox(); - return bbox; - }; - Combo2.prototype.clearCache = function() { - this.set(CACHE_BBOX3, null); - this.set(CACHE_CANVAS_BBOX2, null); - this.set(CACHE_ANCHOR_POINTS2, null); - }; - Combo2.prototype.destroy = function() { - if (!this.destroyed) { - var animate = this.get("animate"); - var group2 = this.get("group"); - if (animate) { - group2.stopAnimate(); - } - this.clearCache(); - this.set(CACHE_SIZE, null); - this.set("bbox", null); - group2.remove(); - this._cfg = null; - this.destroyed = true; - } - }; - return Combo2; -}(node_default); -var combo_default = Combo; - -// node_modules/@antv/g6-core/es/graph/controller/item.js -var NODE = "node"; -var EDGE = "edge"; -var VEDGE = "vedge"; -var COMBO = "combo"; -var CFG_PREFIX = "default"; -var MAPPER_SUFFIX = "Mapper"; -var STATE_SUFFIX = "stateStyles"; -var ItemController = function() { - function ItemController2(graph) { - this.graph = graph; - this.destroyed = false; - } - ItemController2.prototype.addItem = function(type2, model) { - var _this = this; - var graph = this.graph; - var vType = type2 === VEDGE ? EDGE : type2; - var parent = graph.get(vType + "Group") || graph.get("group"); - var upperType = upper_first_default(vType); - var item = null; - var styles = graph.get(vType + upper_first_default(STATE_SUFFIX)) || {}; - var defaultModel = graph.get(CFG_PREFIX + upperType); - if (model[STATE_SUFFIX]) { - styles = model[STATE_SUFFIX]; - } - if (defaultModel) { - each_default(defaultModel, function(val, cfg) { - if (is_object_default(val) && !is_array_default(val)) { - model[cfg] = deep_mix_default({}, val, model[cfg]); - } else if (is_array_default(val)) { - model[cfg] = model[cfg] || clone_default(defaultModel[cfg]); - } else { - model[cfg] = model[cfg] || defaultModel[cfg]; - } - }); - } - var mapper = graph.get(vType + MAPPER_SUFFIX); - if (mapper) { - var mappedModel_1 = mapper(model); - if (mappedModel_1[STATE_SUFFIX]) { - styles = mappedModel_1[STATE_SUFFIX]; - delete mappedModel_1[STATE_SUFFIX]; - } - each_default(mappedModel_1, function(val, cfg) { - if (is_object_default(val) && !is_array_default(val)) { - model[cfg] = deep_mix_default({}, model[cfg], val); - } else { - model[cfg] = mappedModel_1[cfg] || model[cfg]; - } - }); - } - graph.emit("beforeadditem", { - type: type2, - model - }); - if (type2 === EDGE || type2 === VEDGE) { - var source = void 0; - var target = void 0; - source = model.source; - target = model.target; - if (source && is_string_default(source)) { - source = graph.findById(source); - } - if (target && is_string_default(target)) { - target = graph.findById(target); - } - if (!source || !target) { - console.warn("The source or target node of edge " + model.id + " does not exist!"); - return; - } - if (source.getType && source.getType() === "combo") { - model.isComboEdge = true; - } - if (target.getType && target.getType() === "combo") { - model.isComboEdge = true; - } - item = new edge_default2({ - model, - source, - target, - styles, - linkCenter: graph.get("linkCenter"), - group: parent.addGroup() - }); - } else if (type2 === NODE) { - item = new node_default({ - model, - styles, - group: parent.addGroup() - }); - } else if (type2 === COMBO) { - var children = model.children; - var comboBBox = getComboBBox(children, graph); - model.x = comboBBox.x || model.x || Math.random() * 100; - model.y = comboBBox.y || model.y || Math.random() * 100; - var comboGroup = parent.addGroup(); - comboGroup.setZIndex(model.depth); - item = new combo_default({ - model, - styles, - bbox: comboBBox, - group: comboGroup - }); - var comboModel_1 = item.getModel(); - (children || []).forEach(function(child) { - var childItem = graph.findById(child.id); - item.addChild(childItem); - child.depth = comboModel_1.depth + 2; - }); - if (model.collapsed) { - setTimeout(function() { - graph.collapseCombo(item); - _this.updateCombo(item, []); - }, 250); - } - } - if (item) { - graph.get(type2 + "s").push(item); - graph.get("itemMap")[item.get("id")] = item; - graph.emit("afteradditem", { - item, - model - }); - return item; - } - }; - ItemController2.prototype.updateItem = function(item, cfg) { - var _a6, _b; - var graph = this.graph; - if (is_string_default(item)) { - item = graph.findById(item); - } - if (!item || item.destroyed) { - return; - } - var type2 = ""; - if (item.getType) - type2 = item.getType(); - var mapper = graph.get(type2 + MAPPER_SUFFIX); - var model = item.getModel(); - var isOnlyMove = item.isOnlyMove(cfg); - if (mapper) { - var result = deep_mix_default({}, model, cfg); - var mappedModel = mapper(result); - var newModel = deep_mix_default({}, model, mappedModel, cfg); - if (mappedModel[STATE_SUFFIX]) { - item.set("styles", newModel[STATE_SUFFIX]); - delete newModel[STATE_SUFFIX]; - } - each_default(newModel, function(val, key) { - cfg[key] = val; - }); - } else { - each_default(cfg, function(val, key) { - if (model[key]) { - if (is_object_default(val) && !is_array_default(val)) { - cfg[key] = __assign(__assign({}, model[key]), cfg[key]); - } - } - }); - } - graph.emit("beforeupdateitem", { - item, - cfg - }); - if (type2 === EDGE) { - if (cfg.source) { - var source = cfg.source; - if (is_string_default(source)) { - source = graph.findById(source); - } - item.setSource(source); - } - if (cfg.target) { - var target = cfg.target; - if (is_string_default(target)) { - target = graph.findById(target); - } - item.setTarget(target); - } - item.update(cfg); - } - if (type2 === NODE || type2 === COMBO) { - item.update(cfg, isOnlyMove); - var edges_1 = item.getEdges(); - var refreshEdge = shouldRefreshEdge(cfg); - if (refreshEdge && type2 === NODE) - each_default(edges_1, function(edge2) { - edge2.refresh(); - }); - else if (refreshEdge && type2 === COMBO) { - var shapeFactory = item.get("shapeFactory"); - var shapeType = model.type || "circle"; - var comboAnimate = model.animate === void 0 || cfg.animate === void 0 ? (_b = (_a6 = shapeFactory[shapeType]) === null || _a6 === void 0 ? void 0 : _a6.options) === null || _b === void 0 ? void 0 : _b.animate : model.animate || cfg.animate; - if (comboAnimate) { - setTimeout(function() { - if (!item || item.destroyed) - return; - var keyShape = item.getKeyShape(); - if (!keyShape || keyShape.destroyed) - return; - each_default(edges_1, function(edge2) { - if (edge2 && !edge2.destroyed) - edge2.refresh(); - }); - }, 201); - } else { - each_default(edges_1, function(edge2) { - edge2.refresh(); - }); - } - } - } - graph.emit("afterupdateitem", { - item, - cfg - }); - }; - ItemController2.prototype.updateCombo = function(combo, children) { - var _a6, _b; - var graph = this.graph; - if (is_string_default(combo)) { - combo = graph.findById(combo); - } - if (!combo || combo.destroyed) { - return; - } - var comboBBox = getComboBBox(children, graph); - combo.set("bbox", comboBBox); - combo.update({ - x: comboBBox.x, - y: comboBBox.y - }); - var combEdges = combo.getEdges() || []; - var length5 = combEdges.length; - var model = combo.getModel(); - var shapeFactory = combo.get("shapeFactory"); - var shapeType = model.type || "circle"; - var comboAnimate = model.animate === void 0 ? (_b = (_a6 = shapeFactory[shapeType]) === null || _a6 === void 0 ? void 0 : _a6.options) === null || _b === void 0 ? void 0 : _b.animate : model.animate; - if (comboAnimate) { - setTimeout(function() { - if (!combo || combo.destroyed) - return; - var keyShape = combo.getKeyShape(); - if (!keyShape || keyShape.destroyed) - return; - for (var i5 = 0; i5 < length5; i5++) { - var edge3 = combEdges[i5]; - if (edge3 && !edge3.destroyed) - edge3.refresh(); - } - }, 201); - } else { - for (var i4 = 0; i4 < length5; i4++) { - var edge2 = combEdges[i4]; - if (edge2 && !edge2.destroyed) - edge2.refresh(); - } - } - }; - ItemController2.prototype.collapseCombo = function(combo) { - var graph = this.graph; - if (is_string_default(combo)) { - combo = graph.findById(combo); - } - var children = combo.getChildren(); - children.nodes.forEach(function(node) { - graph.hideItem(node); - }); - children.combos.forEach(function(c5) { - graph.hideItem(c5); - }); - }; - ItemController2.prototype.expandCombo = function(combo) { - var graph = this.graph; - if (is_string_default(combo)) { - combo = graph.findById(combo); - } - var children = combo.getChildren(); - children.nodes.forEach(function(node) { - graph.showItem(node); - }); - children.combos.forEach(function(c5) { - if (c5.getModel().collapsed) { - c5.show(); - } else { - graph.showItem(c5); - } - }); - }; - ItemController2.prototype.removeItem = function(item) { - var _this = this; - var graph = this.graph; - if (is_string_default(item)) { - item = graph.findById(item); - } - if (!item || item.destroyed) { - return; - } - var itemModel = clone_default(item.getModel()); - graph.emit("beforeremoveitem", { - item: itemModel - }); - var type2 = ""; - if (item.getType) - type2 = item.getType(); - var items = graph.get(type2 + "s"); - var index2 = items.indexOf(item); - if (index2 > -1) - items.splice(index2, 1); - if (type2 === EDGE) { - var vitems = graph.get("v" + type2 + "s"); - var vindex = vitems.indexOf(item); - if (vindex > -1) - vitems.splice(vindex, 1); - } - var itemId = item.get("id"); - var itemMap = graph.get("itemMap"); - delete itemMap[itemId]; - var comboTrees = graph.get("comboTrees"); - var id = item.get("id"); - if (type2 === NODE) { - var comboId = item.getModel().comboId; - if (comboTrees && comboId) { - var brothers_1 = comboTrees; - var found_1 = false; - comboTrees.forEach(function(ctree) { - if (found_1) - return; - traverseTree(ctree, function(combo) { - if (combo.id === id && brothers_1) { - var bidx = brothers_1.indexOf(combo); - brothers_1.splice(bidx, 1); - found_1 = true; - return false; - } - brothers_1 = combo.children; - return true; - }); - }); - } - var edges = item.getEdges(); - for (var i4 = edges.length - 1; i4 >= 0; i4--) { - graph.removeItem(edges[i4], false); - } - if (comboId) - graph.updateCombo(comboId); - } else if (type2 === COMBO) { - var parentId = item.getModel().parentId; - var comboInTree_1; - var found_2 = false; - (comboTrees || []).forEach(function(ctree) { - if (found_2) - return; - traverseTree(ctree, function(combo) { - if (combo.id === id) { - comboInTree_1 = combo; - found_2 = true; - return false; - } - return true; - }); - }); - comboInTree_1.removed = true; - if (comboInTree_1 && comboInTree_1.children) { - comboInTree_1.children.forEach(function(child) { - _this.removeItem(child.id); - }); - } - var edges = item.getEdges(); - for (var i4 = edges.length; i4 >= 0; i4--) { - graph.removeItem(edges[i4], false); - } - if (parentId) - graph.updateCombo(parentId); - } - item.destroy(); - graph.emit("afterremoveitem", { - item: itemModel - }); - }; - ItemController2.prototype.setItemState = function(item, state2, value2) { - var graph = this.graph; - var stateName = state2; - if (is_string_default(value2)) { - stateName = state2 + ":" + value2; - } - if (item.hasState(stateName) === value2 && value2 || is_string_default(value2) && item.hasState(stateName)) { - return; - } - graph.emit("beforeitemstatechange", { - item, - state: stateName, - enabled: value2 - }); - item.setState(state2, value2); - graph.autoPaint(); - graph.emit("afteritemstatechange", { - item, - state: stateName, - enabled: value2 - }); - }; - ItemController2.prototype.priorityState = function(item, state2) { - var graph = this.graph; - var currentItem = item; - if (is_string_default(item)) { - currentItem = graph.findById(item); - } - this.setItemState(currentItem, state2, false); - this.setItemState(currentItem, state2, true); - }; - ItemController2.prototype.clearItemStates = function(item, states) { - var graph = this.graph; - if (is_string_default(item)) { - item = graph.findById(item); - } - graph.emit("beforeitemstatesclear", { - item, - states - }); - item.clearStates(states); - graph.emit("afteritemstatesclear", { - item, - states - }); - }; - ItemController2.prototype.refreshItem = function(item) { - var graph = this.graph; - if (is_string_default(item)) { - item = graph.findById(item); - } - graph.emit("beforeitemrefresh", { - item - }); - item.refresh(); - graph.emit("afteritemrefresh", { - item - }); - }; - ItemController2.prototype.addCombos = function(comboTrees, comboModels) { - var _this = this; - var graph = this.graph; - (comboTrees || []).forEach(function(ctree) { - traverseTreeUp(ctree, function(child) { - var comboModel; - comboModels.forEach(function(model) { - if (model.id === child.id) { - model.children = child.children; - model.depth = child.depth; - comboModel = model; - } - }); - if (comboModel) { - _this.addItem("combo", comboModel); - } - return true; - }); - }); - var comboGroup = graph.get("comboGroup"); - if (comboGroup) - comboGroup.sort(); - }; - ItemController2.prototype.changeItemVisibility = function(item, visible) { - var _this = this; - var graph = this.graph; - if (is_string_default(item)) { - item = graph.findById(item); - } - if (!item) { - console.warn("The item to be shown or hidden does not exist!"); - return; - } - graph.emit("beforeitemvisibilitychange", { - item, - visible - }); - item.changeVisibility(visible); - if (item.getType && item.getType() === NODE) { - var edges = item.getEdges(); - each_default(edges, function(edge2) { - if (visible && !(edge2.get("source").isVisible() && edge2.get("target").isVisible())) { - return; - } - _this.changeItemVisibility(edge2, visible); - }); - } else if (item.getType && item.getType() === COMBO) { - var comboTrees = graph.get("comboTrees"); - var id_1 = item.get("id"); - var children_1 = []; - var found_3 = false; - (comboTrees || []).forEach(function(ctree) { - if (found_3) - return; - if (!ctree.children || ctree.children.length === 0) - return; - traverseTree(ctree, function(combo) { - if (combo.id === id_1) { - children_1 = combo.children; - found_3 = true; - return false; - } - return true; - }); - }); - if (children_1) { - children_1.forEach(function(child) { - var childItem = graph.findById(child.id); - _this.changeItemVisibility(childItem, visible); - }); - } - var edges = item.getEdges(); - each_default(edges, function(edge2) { - if (visible && !(edge2.get("source").isVisible() && edge2.get("target").isVisible())) { - return; - } - _this.changeItemVisibility(edge2, visible); - }); - } - graph.emit("afteritemvisibilitychange", { - item, - visible - }); - return item; - }; - ItemController2.prototype.destroy = function() { - this.graph = null; - this.destroyed = true; - }; - return ItemController2; -}(); -var item_default2 = ItemController; - -// node_modules/@antv/g6-core/es/graph/controller/state.js -var timer2 = null; -var StateController = function() { - function StateController2(graph) { - this.graph = graph; - this.cachedStates = { - enabled: {}, - disabled: {} - }; - this.destroyed = false; - } - StateController2.checkCache = function(item, state2, cache3) { - if (!cache3[state2]) { - return; - } - var index2 = cache3[state2].indexOf(item); - if (index2 >= 0) { - cache3[state2].splice(index2, 1); - } - }; - StateController2.cacheState = function(item, state2, states) { - if (!states[state2]) { - states[state2] = []; - } - states[state2].push(item); - }; - StateController2.prototype.updateState = function(item, state2, enabled) { - var _this = this; - var checkCache = StateController2.checkCache, cacheState = StateController2.cacheState; - if (item.destroyed) { - return; - } - var cachedStates = this.cachedStates; - var enabledStates = cachedStates.enabled; - var disabledStates = cachedStates.disabled; - if (enabled) { - checkCache(item, state2, disabledStates); - cacheState(item, state2, enabledStates); - } else { - checkCache(item, state2, enabledStates); - cacheState(item, state2, disabledStates); - } - if (timer2) { - clearTimeout(timer2); - } - timer2 = setTimeout(function() { - timer2 = null; - _this.updateGraphStates(); - }, 16); - }; - StateController2.prototype.updateStates = function(item, states, enabled) { - var _this = this; - if (is_string_default(states)) { - this.updateState(item, states, enabled); - } else { - states.forEach(function(state2) { - _this.updateState(item, state2, enabled); - }); - } - }; - StateController2.prototype.updateGraphStates = function() { - var states = this.graph.get("states"); - var cachedStates = this.cachedStates; - each_default(cachedStates.disabled, function(val, key) { - if (states[key]) { - states[key] = states[key].filter(function(item) { - return val.indexOf(item) < 0 && !val.destroyed; - }); - } - }); - each_default(cachedStates.enabled, function(val, key) { - if (!states[key]) { - states[key] = val; - } else { - var map_1 = {}; - states[key].forEach(function(item) { - if (!item.destroyed) { - map_1[item.get("id")] = true; - } - }); - val.forEach(function(item) { - if (!item.destroyed) { - var id = item.get("id"); - if (!map_1[id]) { - map_1[id] = true; - states[key].push(item); - } - } - }); - } - }); - this.graph.emit("graphstatechange", { - states - }); - this.cachedStates = { - enabled: {}, - disabled: {} - }; - }; - StateController2.prototype.destroy = function() { - this.graph = null; - this.cachedStates = null; - if (timer2) { - clearTimeout(timer2); - } - timer2 = null; - this.destroyed = true; - }; - return StateController2; -}(); -var state_default2 = StateController; - -// node_modules/@antv/g6-core/es/util/path.js -var path_exports2 = {}; -__export(path_exports2, { - getClosedSpline: () => getClosedSpline, - getControlPoint: () => getControlPoint, - getSpline: () => getSpline2, - paddedHull: () => paddedHull, - pathToPoints: () => pathToPoints2, - pointsToPolygon: () => pointsToPolygon, - roundedHull: () => roundedHull -}); -var substitute2 = function substitute3(str8, o3) { - if (!str8 || !o3) { - return str8; - } - return str8.replace(/\\?\{([^{}]+)\}/g, function(match, name) { - if (match.charAt(0) === "\\") { - return match.slice(1); - } - var res = o3[name]; - if (res === 0) - res = "0"; - return res || ""; - }); -}; -var getSpline2 = function getSpline3(points) { - var data3 = []; - if (points.length < 2) { - throw new Error("point length must largn than 2, now it's " + points.length); - } - for (var _i = 0, points_1 = points; _i < points_1.length; _i++) { - var point2 = points_1[_i]; - var x6 = point2.x, y5 = point2.y; - data3.push(x6); - data3.push(y5); - } - var spliePath = catmull_rom_2_bezier_default(data3); - spliePath.unshift(["M", points[0].x, points[0].y]); - return spliePath; -}; -var getControlPoint = function getControlPoint2(startPoint, endPoint, percent2, offset) { - if (percent2 === void 0) { - percent2 = 0; - } - if (offset === void 0) { - offset = 0; - } - var point2 = { - x: (1 - percent2) * startPoint.x + percent2 * endPoint.x, - y: (1 - percent2) * startPoint.y + percent2 * endPoint.y - }; - var tangent = [0, 0]; - vec2_exports.normalize(tangent, [endPoint.x - startPoint.x, endPoint.y - startPoint.y]); - if (!tangent || !tangent[0] && !tangent[1]) { - tangent = [0, 0]; - } - var perpendicular = [-tangent[1] * offset, tangent[0] * offset]; - point2.x += perpendicular[0]; - point2.y += perpendicular[1]; - return point2; -}; -var pointsToPolygon = function pointsToPolygon2(points, z3) { - var length5 = points.length; - if (!length5) { - return ""; - } - var path = ""; - var str8 = ""; - for (var i4 = 0; i4 < length5; i4++) { - var item = points[i4]; - if (i4 === 0) { - str8 = "M{x} {y}"; - } else { - str8 = "L{x} {y}"; - } - path += substitute2(str8, item); - } - if (z3) { - path += "Z"; - } - return path; -}; -var pathToPoints2 = function pathToPoints3(path) { - var points = []; - path.forEach(function(seg) { - var command = seg[0]; - if (command !== "A") { - for (var i4 = 1; i4 < seg.length; i4 = i4 + 2) { - points.push([seg[i4], seg[i4 + 1]]); - } - } else { - var length_1 = seg.length; - points.push([seg[length_1 - 2], seg[length_1 - 1]]); - } - }); - return points; -}; -var getClosedSpline = function getClosedSpline2(points) { - if (points.length < 2) { - throw new Error("point length must largn than 2, now it's " + points.length); - } - var first = points[0]; - var second = points[1]; - var last2 = points[points.length - 1]; - var lastSecond = points[points.length - 2]; - points.unshift(last2); - points.unshift(lastSecond); - points.push(first); - points.push(second); - var closedPath = []; - for (var i4 = 1; i4 < points.length - 2; i4 += 1) { - var x0 = points[i4 - 1].x; - var y0 = points[i4 - 1].y; - var x1 = points[i4].x; - var y1 = points[i4].y; - var x22 = points[i4 + 1].x; - var y22 = points[i4 + 1].y; - var x32 = i4 !== points.length - 2 ? points[i4 + 2].x : x22; - var y32 = i4 !== points.length - 2 ? points[i4 + 2].y : y22; - var cp1x = x1 + (x22 - x0) / 6; - var cp1y = y1 + (y22 - y0) / 6; - var cp2x = x22 - (x32 - x1) / 6; - var cp2y = y22 - (y32 - y1) / 6; - closedPath.push(["C", cp1x, cp1y, cp2x, cp2y, x22, y22]); - } - closedPath.unshift(["M", last2.x, last2.y]); - return closedPath; -}; -var vecScaleTo = function vecScaleTo2(v3, length5) { - return vec2_exports.scale([0, 0], vec2_exports.normalize([0, 0], v3), length5); -}; -var unitNormal = function unitNormal2(p0, p1) { - var n3 = [p0[1] - p1[1], p1[0] - p0[0]]; - var nLength = Math.sqrt(n3[0] * n3[0] + n3[1] * n3[1]); - if (nLength === 0) { - throw new Error("p0 should not be equal to p1"); - } - return [n3[0] / nLength, n3[1] / nLength]; -}; -var vecFrom = function vecFrom2(p0, p1) { - return [p1[0] - p0[0], p1[1] - p0[1]]; -}; -function roundedHull(polyPoints, padding3) { - var roundedHull1 = function roundedHull12(points) { - var p12 = [points[0][0], points[0][1] - padding3]; - var p22 = [points[0][0], points[0][1] + padding3]; - return "M " + p12 + " A " + padding3 + "," + padding3 + ",0,0,0," + p22 + " A " + padding3 + "," + padding3 + ",0,0,0," + p12; - }; - var roundedHull2 = function roundedHull22(points) { - var offsetVector = vec2_exports.scale([0, 0], unitNormal(points[0], points[1]), padding3); - var invOffsetVector = vec2_exports.scale([0, 0], offsetVector, -1); - var p02 = vec2_exports.add([0, 0], points[0], offsetVector); - var p12 = vec2_exports.add([0, 0], points[1], offsetVector); - var p22 = vec2_exports.add([0, 0], points[1], invOffsetVector); - var p32 = vec2_exports.add([0, 0], points[0], invOffsetVector); - return "M " + p02 + " L " + p12 + " A " + [padding3, padding3, "0,0,0", p22].join(",") + " L " + p32 + " A " + [padding3, padding3, "0,0,0", p02].join(","); - }; - if (!polyPoints || polyPoints.length < 1) - return ""; - if (polyPoints.length === 1) - return roundedHull1(polyPoints); - if (polyPoints.length === 2) - return roundedHull2(polyPoints); - var segments = new Array(polyPoints.length); - for (var segmentIndex = 0; segmentIndex < segments.length; ++segmentIndex) { - var p0 = segmentIndex === 0 ? polyPoints[polyPoints.length - 1] : polyPoints[segmentIndex - 1]; - var p1 = polyPoints[segmentIndex]; - var offset = vec2_exports.scale([0, 0], unitNormal(p0, p1), padding3); - segments[segmentIndex] = [vec2_exports.add([0, 0], p0, offset), vec2_exports.add([0, 0], p1, offset)]; - } - var arcData = "A " + [padding3, padding3, "0,0,0,"].join(","); - segments = segments.map(function(segment, index2) { - var pathFragment = ""; - if (index2 === 0) { - pathFragment = "M " + segments[segments.length - 1][1] + " "; - } - pathFragment += arcData + segment[0] + " L " + segment[1]; - return pathFragment; - }); - return segments.join(" "); -} -function paddedHull(polyPoints, padding3) { - var pointCount = polyPoints.length; - var smoothHull1 = function smoothHull12(points) { - var p1 = [points[0][0], points[0][1] - padding3]; - var p22 = [points[0][0], points[0][1] + padding3]; - return "M " + p1 + " A " + [padding3, padding3, "0,0,0", p22].join(",") + " A " + [padding3, padding3, "0,0,0", p1].join(","); - }; - var smoothHull2 = function smoothHull22(points) { - var v3 = vecFrom(points[0], points[1]); - var extensionVec2 = vecScaleTo(v3, padding3); - var extension0 = vec2_exports.add([0, 0], points[0], vec2_exports.scale([0, 0], extensionVec2, -1)); - var extension1 = vec2_exports.add([0, 0], points[1], extensionVec2); - var tangentHalfLength = 1.2 * padding3; - var controlDelta = vecScaleTo(vec2_exports.normalize([0, 0], v3), tangentHalfLength); - var invControlDelta = vec2_exports.scale([0, 0], controlDelta, -1); - var control0 = vec2_exports.add([0, 0], extension0, invControlDelta); - var control1 = vec2_exports.add([0, 0], extension1, invControlDelta); - var control3 = vec2_exports.add([0, 0], extension0, controlDelta); - return "M " + extension0 + " C " + [control0, control1, extension1].join(",") + " S " + [control3, extension0].join(",") + " Z"; - }; - if (!polyPoints || pointCount < 1) - return ""; - if (pointCount === 1) - return smoothHull1(polyPoints); - if (pointCount === 2) - return smoothHull2(polyPoints); - var hullPoints = polyPoints.map(function(point2, index2) { - var pNext = polyPoints[(index2 + 1) % pointCount]; - return { - p: point2, - v: vec2_exports.normalize([0, 0], vecFrom(point2, pNext)) - }; - }); - for (var i4 = 0; i4 < hullPoints.length; ++i4) { - var priorIndex = i4 > 0 ? i4 - 1 : pointCount - 1; - var extensionVec = vec2_exports.normalize([0, 0], vec2_exports.add([0, 0], hullPoints[priorIndex].v, vec2_exports.scale([0, 0], hullPoints[i4].v, -1))); - hullPoints[i4].p = vec2_exports.add([0, 0], hullPoints[i4].p, vec2_exports.scale([0, 0], extensionVec, padding3)); - } - return hullPoints.map(function(obj) { - var point2 = obj.p; - return { - x: point2[0], - y: point2[1] - }; - }); -} - -// node_modules/@antv/g6-core/es/element/hull/convexHull.js -var cross4 = function cross5(a4, b10, o3) { - return (a4.y - o3.y) * (b10.x - o3.x) - (a4.x - o3.x) * (b10.y - o3.y); -}; -var genConvexHull = function genConvexHull2(items) { - var points = items.map(function(item) { - return { - x: item.getModel().x, - y: item.getModel().y - }; - }); - points.sort(function(a4, b10) { - return a4.x === b10.x ? a4.y - b10.y : a4.x - b10.x; - }); - if (points.length === 1) { - return points; - } - var lower = []; - for (var i4 = 0; i4 < points.length; i4++) { - while (lower.length >= 2 && cross4(lower[lower.length - 2], lower[lower.length - 1], points[i4]) <= 0) { - lower.pop(); - } - lower.push(points[i4]); - } - var upper = []; - for (var i4 = points.length - 1; i4 >= 0; i4--) { - while (upper.length >= 2 && cross4(upper[upper.length - 2], upper[upper.length - 1], points[i4]) <= 0) { - upper.pop(); - } - upper.push(points[i4]); - } - upper.pop(); - lower.pop(); - var strictHull = lower.concat(upper); - return strictHull; -}; - -// node_modules/@antv/g6-core/es/element/hull/bubbleset.js -var defaultOps = { - maxRoutingIterations: 100, - maxMarchingIterations: 100, - pixelGroupSize: 2, - edgeR0: 10, - edgeR1: 10, - nodeR0: 5, - nodeR1: 10, - morphBuffer: 5, - threshold: 1e-3, - skip: 16, - nodeInfluenceFactor: 1, - edgeInfluenceFactor: 1, - negativeNodeInfluenceFactor: -0.5 -}; -function MarchingSquares(contour, potentialArea, threshold) { - var marched = false; - var getVal = function getVal2(x6, y5) { - return potentialArea.cells[x6 + y5 * potentialArea.width]; - }; - var getState = function getState2(x6, y5) { - var squareVal = 0; - if (getVal(x6 - 1, y5 - 1) >= threshold) { - squareVal += 1; - } - if (getVal(x6, y5 - 1) > threshold) { - squareVal += 2; - } - if (getVal(x6 - 1, y5) > threshold) { - squareVal += 4; - } - if (getVal(x6, y5) > threshold) { - squareVal += 8; - } - return squareVal; - }; - var doMarch = function doMarch2(xPos, yPos) { - var x6 = xPos; - var y5 = yPos; - var prevX; - var prevY; - for (var i4 = 0; i4 < potentialArea.width * potentialArea.height; i4++) { - prevX = x6; - prevY = y5; - if (contour.findIndex(function(item) { - return item.x === x6 && item.y === y5; - }) > -1) { - if (contour[0].x !== x6 || contour[0].y !== y5) { - } else { - return true; - } - } else { - contour.push({ - x: x6, - y: y5 - }); - } - var state2 = getState(x6, y5); - switch (state2) { - case -1: - console.warn("Marched out of bounds"); - return true; - case 0: - case 3: - case 2: - case 7: - x6++; - break; - case 12: - case 14: - case 4: - x6--; - break; - case 6: - if (prevX === 0) { - if (prevY === -1) { - x6 -= 1; - } else { - x6 += 1; - } - } - break; - case 1: - case 13: - case 5: - y5--; - break; - case 9: - if (prevX === 1) { - if (prevY === 0) { - y5 -= 1; - } else { - y5 += 1; - } - } - break; - case 10: - case 8: - case 11: - y5++; - break; - default: - console.warn("Marching squares invalid state: " + state2); - return true; - } - } - }; - this.march = function() { - for (var x6 = 0; x6 < potentialArea.width && !marched; x6 += 1) { - for (var y5 = 0; y5 < potentialArea.height && !marched; y5 += 1) { - if (getVal(x6, y5) > threshold && getState(x6, y5) !== 15) { - marched = doMarch(x6, y5); - } - } - } - return marched; - }; -} -var initGridCells = function initGridCells2(width2, height, pixelGroupSize) { - var scaleWidth = Math.ceil(width2 / pixelGroupSize); - var scaleHeight = Math.ceil(height / pixelGroupSize); - var gridCells = new Float32Array(Math.max(0, scaleWidth * scaleHeight)).fill(0); - return { - cells: gridCells, - width: scaleWidth, - height: scaleHeight - }; -}; -var pickBestNeighbor = function pickBestNeighbor2(item, visited, nonMembers) { - var closestNeighbour = null; - var minCost = Number.POSITIVE_INFINITY; - visited.forEach(function(neighbourItem) { - var itemP = { - x: item.getModel().x, - y: item.getModel().y - }; - var neighbourItemP = { - x: neighbourItem.getModel().x, - y: neighbourItem.getModel().y - }; - var dist4 = squareDist(itemP, neighbourItemP); - var directLine = new Line7(itemP.x, itemP.y, neighbourItemP.x, neighbourItemP.y); - var numberObstacles = nonMembers.reduce(function(count2, _item) { - if (fractionToLine(_item, directLine) > 0) { - return count2 + 1; - } - return count2; - }, 0); - if (dist4 * Math.pow(numberObstacles + 1, 2) < minCost) { - closestNeighbour = neighbourItem; - minCost = dist4 * Math.pow(numberObstacles + 1, 2); - } - }); - return closestNeighbour; -}; -var getIntersectItem = function getIntersectItem2(items, line2) { - var minDistance = Number.POSITIVE_INFINITY; - var closestItem = null; - items.forEach(function(item) { - var distance15 = fractionToLine(item, line2); - if (distance15 >= 0 && distance15 < minDistance) { - closestItem = item; - minDistance = distance15; - } - }); - return closestItem; -}; -var computeRoute = function computeRoute2(directLine, nonMembers, maxRoutingIterations, morphBuffer) { - var checkedLines = []; - var linesToCheck = []; - linesToCheck.push(directLine); - var hasIntersection = true; - var iterations = 0; - var pointExists = function pointExists2(point2, lines) { - var flag = false; - lines.forEach(function(line2) { - if (flag) - return; - if (isPointsOverlap(point2, { - x: line2.x1, - y: line2.y1 - }) || isPointsOverlap(point2, { - x: line2.x2, - y: line2.y2 - })) { - flag = true; - } - }); - return flag; - }; - var isPointInNonMembers = function isPointInNonMembers2(point2, _nonMembers) { - for (var _i = 0, _nonMembers_1 = _nonMembers; _i < _nonMembers_1.length; _i++) { - var item = _nonMembers_1[_i]; - var bbox = item.getBBox(); - var itemContour = [[bbox.x, bbox.y], [bbox.x + bbox.width, bbox.y], [bbox.x, bbox.y + bbox.height], [bbox.x + bbox.width, bbox.y + bbox.height]]; - if (isPointInPolygon(itemContour, point2.x, point2.y)) { - return true; - } - } - return false; - }; - while (hasIntersection && iterations < maxRoutingIterations) { - hasIntersection = false; - var _loop_1 = function _loop_12() { - var line2 = linesToCheck.pop(); - var closestItem = getIntersectItem(nonMembers, line2); - if (closestItem) { - var _a6 = itemIntersectByLine(closestItem, line2), intersections_1 = _a6[0], countIntersections = _a6[1]; - if (countIntersections === 2) { - var testReroute = function testReroute2(isFirst) { - var tempMorphBuffer = morphBuffer; - var virtualNode = rerouteLine(closestItem, tempMorphBuffer, intersections_1, isFirst); - var exist = pointExists(virtualNode, linesToCheck) || pointExists(virtualNode, checkedLines); - var pointInside = isPointInNonMembers(virtualNode, nonMembers); - while (!exist && pointInside && tempMorphBuffer >= 1) { - tempMorphBuffer /= 1.5; - virtualNode = rerouteLine(closestItem, tempMorphBuffer, intersections_1, isFirst); - exist = pointExists(virtualNode, linesToCheck) || pointExists(virtualNode, checkedLines); - pointInside = isPointInNonMembers(virtualNode, nonMembers); - } - if (virtualNode && !exist && (!isFirst || !pointInside)) { - linesToCheck.push(new Line7(line2.x1, line2.y1, virtualNode.x, virtualNode.y)); - linesToCheck.push(new Line7(virtualNode.x, virtualNode.y, line2.x2, line2.y2)); - hasIntersection = true; - } - }; - testReroute(true); - if (!hasIntersection) { - testReroute(false); - } - } - } - if (!hasIntersection) { - checkedLines.push(line2); - } - iterations += 1; - }; - while (!hasIntersection && linesToCheck.length) { - _loop_1(); - } - } - while (linesToCheck.length) { - checkedLines.push(linesToCheck.pop()); - } - return checkedLines; -}; -function getRoute(item, nonMembers, visited, maxRoutingIterations, morphBuffer) { - var optimalNeighbor = pickBestNeighbor(item, visited, nonMembers); - if (optimalNeighbor === null) { - return []; - } - var mergeLines = function mergeLines2(checkedLines2) { - var finalRoute2 = []; - while (checkedLines2.length > 0) { - var line1 = checkedLines2.pop(); - if (checkedLines2.length === 0) { - finalRoute2.push(line1); - break; - } - var line2 = checkedLines2.pop(); - var mergeLine = new Line7(line1.x1, line1.y1, line2.x2, line2.y2); - var closestItem = getIntersectItem(nonMembers, mergeLine); - if (!closestItem) { - checkedLines2.push(mergeLine); - } else { - finalRoute2.push(line1); - checkedLines2.push(line2); - } - } - return finalRoute2; - }; - var directLine = new Line7(item.getModel().x, item.getModel().y, optimalNeighbor.getModel().x, optimalNeighbor.getModel().y); - var checkedLines = computeRoute(directLine, nonMembers, maxRoutingIterations, morphBuffer); - var finalRoute = mergeLines(checkedLines); - return finalRoute; -} -var genBubbleSet = function genBubbleSet2(members, nonMembers, ops) { - var options = Object.assign(defaultOps, ops); - var centroid = getPointsCenter(members.map(function(item) { - return { - x: item.getModel().x, - y: item.getModel().y - }; - })); - members = members.sort(function(a4, b10) { - return squareDist({ - x: a4.getModel().x, - y: a4.getModel().y - }, centroid) - squareDist({ - x: b10.getModel().x, - y: b10.getModel().y - }, centroid); - }); - var visited = []; - var virtualEdges = []; - members.forEach(function(item) { - var lines = getRoute(item, nonMembers, visited, options.maxRoutingIterations, options.morphBuffer); - lines.forEach(function(l4) { - virtualEdges.push(l4); - }); - visited.push(item); - }); - var activeRegion = getActiveRregion(members, virtualEdges, options.nodeR0); - var potentialArea = initGridCells(activeRegion.width, activeRegion.height, options.pixelGroupSize); - var contour = []; - var hull = []; - for (var iterations = 0; iterations < options.maxMarchingIterations; iterations++) { - fillPotentialArea(members, nonMembers, virtualEdges, activeRegion, potentialArea, options); - contour = []; - hull = []; - if (!new MarchingSquares(contour, potentialArea, options.threshold).march()) - continue; - var marchedPath = contour.map(function(point2) { - return { - x: Math.round(point2.x * options.pixelGroupSize + activeRegion.minX), - y: Math.round(point2.y * options.pixelGroupSize + activeRegion.minY) - }; - }); - if (marchedPath) { - var size2 = marchedPath.length; - if (options.skip > 1) { - size2 = Math.floor(marchedPath.length / options.skip); - while (size2 < 3 && options.skip > 1) { - options.skip -= 1; - size2 = Math.floor(marchedPath.length / options.skip); - } - } - for (var i4 = 0, j4 = 0; j4 < size2; j4 += 1, i4 += options.skip) { - hull.push({ - x: marchedPath[i4].x, - y: marchedPath[i4].y - }); - } - } - var isContourValid = function isContourValid2() { - for (var _i = 0, members_1 = members; _i < members_1.length; _i++) { - var item = members_1[_i]; - var hullPoints = hull.map(function(point2) { - return [point2.x, point2.y]; - }); - if (!isPointInPolygon(hullPoints, item.getBBox().centerX, item.getBBox().centerY)) - return false; - } - return true; - }; - if (hull && isContourValid()) { - return hull; - } - options.threshold *= 0.9; - if (iterations <= options.maxMarchingIterations * 0.5) { - options.memberInfluenceFactor *= 1.2; - options.edgeInfluenceFactor *= 1.2; - } else if (options.nonMemberInfluenceFactor !== 0 && nonMembers.length > 0) { - options.nonMemberInfluenceFactor *= 0.8; - } else { - break; - } - } - return hull; -}; -function getActiveRregion(members, edges, offset) { - var activeRegion = { - minX: Number.POSITIVE_INFINITY, - minY: Number.POSITIVE_INFINITY, - maxX: Number.NEGATIVE_INFINITY, - maxY: Number.NEGATIVE_INFINITY, - width: 0, - height: 0, - x: 0, - y: 0 - }; - var bboxes = []; - members.forEach(function(item) { - bboxes.push(item.getBBox()); - }); - edges.forEach(function(l4) { - bboxes.push(l4.getBBox()); - }); - for (var _i = 0, bboxes_1 = bboxes; _i < bboxes_1.length; _i++) { - var bbox = bboxes_1[_i]; - activeRegion.minX = (bbox.minX < activeRegion.minX ? bbox.minX : activeRegion.minX) - offset; - activeRegion.minY = (bbox.minY < activeRegion.minY ? bbox.minY : activeRegion.minY) - offset; - activeRegion.maxX = (bbox.maxX > activeRegion.maxX ? bbox.maxX : activeRegion.maxX) + offset; - activeRegion.maxY = (bbox.maxY > activeRegion.maxY ? bbox.maxY : activeRegion.maxY) + offset; - } - activeRegion.width = activeRegion.maxX - activeRegion.minX; - activeRegion.height = activeRegion.maxY - activeRegion.minY; - activeRegion.x = activeRegion.minX; - activeRegion.y = activeRegion.minY; - return activeRegion; -} -function fillPotentialArea(members, nonMembers, edges, activeRegion, potentialArea, options) { - function pos2GridIx3(x6, offset) { - var gridIx = Math.floor((x6 - offset) / options.pixelGroupSize); - return gridIx < 0 ? 0 : gridIx; - } - function gridIx2Pos(x6, offset) { - return x6 * options.pixelGroupSize + offset; - } - var nodeInfA = (options.nodeR0 - options.nodeR1) * (options.nodeR0 - options.nodeR1); - var edgeInfA = (options.edgeR0 - options.edgeR1) * (options.edgeR0 - options.edgeR1); - var getAffectedRegion = function getAffectedRegion2(bbox, thresholdR) { - var startX = Math.min(pos2GridIx3(bbox.minX, thresholdR + activeRegion.minX), potentialArea.width); - var startY = Math.min(pos2GridIx3(bbox.minY, thresholdR + activeRegion.minY), potentialArea.height); - var endX = Math.min(pos2GridIx3(bbox.maxX, -thresholdR + activeRegion.minX), potentialArea.width); - var endY = Math.min(pos2GridIx3(bbox.maxY, -thresholdR + activeRegion.minY), potentialArea.height); - return [startX, startY, endX, endY]; - }; - var addItemInfluence = function addItemInfluence2(item, influenceFactor) { - var bbox = item.getBBox(); - var _a6 = getAffectedRegion(bbox, options.nodeR1), startX = _a6[0], startY = _a6[1], endX = _a6[2], endY = _a6[3]; - for (var y5 = startY; y5 < endY; y5 += 1) { - for (var x6 = startX; x6 < endX; x6 += 1) { - if (influenceFactor < 0 && potentialArea[x6 + y5 * potentialArea.width] <= 0) { - continue; - } - var tempX = gridIx2Pos(x6, activeRegion.minX); - var tempY = gridIx2Pos(y5, activeRegion.minY); - var distanceSq = pointRectSquareDist({ - x: tempX, - y: tempY - }, { - x: bbox.minX, - y: bbox.minY, - width: bbox.width, - height: bbox.height - }); - if (distanceSq < Math.pow(options.nodeR1, 2)) { - var dr = Math.sqrt(distanceSq) - options.nodeR1; - potentialArea.cells[x6 + y5 * potentialArea.width] += influenceFactor * dr * dr; - } - } - } - }; - var addEdgeInfluence = function addEdgeInfluence2(line2, influenceFactor) { - var bbox = line2.getBBox(); - var _a6 = getAffectedRegion(bbox, options.edgeR1), startX = _a6[0], startY = _a6[1], endX = _a6[2], endY = _a6[3]; - for (var y5 = startY; y5 < endY; y5 += 1) { - for (var x6 = startX; x6 < endX; x6 += 1) { - if (influenceFactor < 0 && potentialArea.cells[x6 + y5 * potentialArea.width] <= 0) { - continue; - } - var tempX = gridIx2Pos(x6, activeRegion.minX); - var tempY = gridIx2Pos(y5, activeRegion.minY); - var minDistanceSq = pointLineSquareDist({ - x: tempX, - y: tempY - }, line2); - if (minDistanceSq < Math.pow(options.edgeR1, 2)) { - var mdr = Math.sqrt(minDistanceSq) - options.edgeR1; - potentialArea.cells[x6 + y5 * potentialArea.width] += influenceFactor * mdr * mdr; - } - } - } - }; - if (options.nodeInfluenceFactor) { - members.forEach(function(item) { - addItemInfluence(item, options.nodeInfluenceFactor / nodeInfA); - }); - } - if (options.edgeInfluenceFactor) { - edges.forEach(function(edge2) { - addEdgeInfluence(edge2, options.edgeInfluenceFactor / edgeInfA); - }); - } - if (options.negativeNodeInfluenceFactor) { - nonMembers.forEach(function(item) { - addItemInfluence(item, options.negativeNodeInfluenceFactor / nodeInfA); - }); - } -} -function rerouteLine(item, buffer, intersections, wrapNormal) { - var bbox = item.getBBox(); - var topIntersect = intersections[0], leftIntersect = intersections[1], bottomIntersect = intersections[2], rightIntersect = intersections[3]; - var cornerPos = { - topLeft: { - x: bbox.minX - buffer, - y: bbox.minY - buffer - }, - topRight: { - x: bbox.maxX + buffer, - y: bbox.minY - buffer - }, - bottomLeft: { - x: bbox.minX - buffer, - y: bbox.maxY + buffer - }, - bottomRight: { - x: bbox.maxX + buffer, - y: bbox.maxY + buffer - } - }; - var totalArea = bbox.height * bbox.width; - function calcHalfArea(intersect1, intersect2) { - return bbox.width * ((intersect1.y - bbox.minY + (intersect2.y - bbox.minY)) * 0.5); - } - if (leftIntersect) { - if (topIntersect) - return wrapNormal ? cornerPos.topLeft : cornerPos.bottomRight; - if (bottomIntersect) - return wrapNormal ? cornerPos.bottomLeft : cornerPos.topRight; - var topArea = calcHalfArea(leftIntersect, rightIntersect); - if (topArea < totalArea * 0.5) { - if (leftIntersect.y > rightIntersect.y) - return wrapNormal ? cornerPos.topLeft : cornerPos.bottomRight; - return wrapNormal ? cornerPos.topRight : cornerPos.bottomLeft; - } - if (leftIntersect.y < rightIntersect.y) - return wrapNormal ? cornerPos.bottomLeft : cornerPos.topRight; - return wrapNormal ? cornerPos.bottomRight : cornerPos.topLeft; - } - if (rightIntersect) { - if (topIntersect) - return wrapNormal ? cornerPos.topRight : cornerPos.bottomLeft; - if (bottomIntersect) - return wrapNormal ? cornerPos.bottomRight : cornerPos.topLeft; - } - var leftArea = calcHalfArea(topIntersect, bottomIntersect); - if (leftArea < totalArea * 0.5) { - if (topIntersect.x > bottomIntersect.x) - return wrapNormal ? cornerPos.topLeft : cornerPos.bottomRight; - return wrapNormal ? cornerPos.bottomLeft : cornerPos.topRight; - } - if (topIntersect.x < bottomIntersect.x) - return wrapNormal ? cornerPos.topRight : cornerPos.bottomLeft; - return wrapNormal ? cornerPos.bottomRight : cornerPos.topLeft; -} - -// node_modules/@antv/g6-core/es/item/hull.js -var Hull = function() { - function Hull2(graph, cfg) { - this.cfg = deep_mix_default(this.getDefaultCfg(), cfg); - this.graph = graph; - this.id = this.cfg.id; - this.group = this.cfg.group; - this.members = this.cfg.members.map(function(item) { - return is_string_default(item) ? graph.findById(item) : item; - }); - this.nonMembers = this.cfg.nonMembers.map(function(item) { - return is_string_default(item) ? graph.findById(item) : item; - }); - this.setPadding(); - this.setType(); - this.path = this.calcPath(this.members, this.nonMembers); - this.render(); - } - Hull2.prototype.getDefaultCfg = function() { - return { - id: "g6-hull", - type: "round-convex", - members: [], - nonMembers: [], - style: { - fill: "lightblue", - stroke: "blue", - opacity: 0.2 - }, - padding: 10 - }; - }; - Hull2.prototype.setPadding = function() { - var nodeSize = this.members.length && this.members[0].getKeyShape().getCanvasBBox().width / 2; - this.padding = this.cfg.padding > 0 ? this.cfg.padding + nodeSize : 10 + nodeSize; - this.cfg.bubbleCfg = { - nodeR0: this.padding - nodeSize, - nodeR1: this.padding - nodeSize, - morphBuffer: this.padding - nodeSize - }; - }; - Hull2.prototype.setType = function() { - this.type = this.cfg.type; - if (this.members.length < 3) { - this.type = "round-convex"; - } - if (this.type !== "round-convex" && this.type !== "smooth-convex" && this.type !== "bubble") { - console.warn("The hull type should be either round-convex, smooth-convex or bubble, round-convex is used by default."); - this.type = "round-convex"; - } - }; - Hull2.prototype.calcPath = function(members, nonMembers) { - var contour, path, hull; - switch (this.type) { - case "round-convex": - contour = genConvexHull(members); - hull = roundedHull(contour.map(function(p4) { - return [p4.x, p4.y]; - }), this.padding); - path = parsePathString2(hull); - break; - case "smooth-convex": - contour = genConvexHull(members); - if (contour.length === 2) { - hull = roundedHull(contour.map(function(p4) { - return [p4.x, p4.y]; - }), this.padding); - path = parsePathString2(hull); - } else if (contour.length > 2) { - hull = paddedHull(contour.map(function(p4) { - return [p4.x, p4.y]; - }), this.padding); - path = getClosedSpline(hull); - } - break; - case "bubble": - contour = genBubbleSet(members, nonMembers, this.cfg.bubbleCfg); - path = contour.length >= 2 && getClosedSpline(contour); - break; - default: - } - return path; - }; - Hull2.prototype.render = function() { - this.group.addShape("path", { - attrs: __assign({ - path: this.path - }, this.cfg.style), - id: this.id, - name: this.cfg.id - }); - this.group.toBack(); - }; - Hull2.prototype.addMember = function(item) { - if (!item) - return; - if (is_string_default(item)) - item = this.graph.findById(item); - this.members.push(item); - var index2 = this.nonMembers.indexOf(item); - if (index2 > -1) { - this.nonMembers.splice(index2, 1); - } - this.updateData(this.members, this.nonMembers); - return true; - }; - Hull2.prototype.addNonMember = function(item) { - if (!item) - return; - if (is_string_default(item)) - item = this.graph.findById(item); - this.nonMembers.push(item); - var index2 = this.members.indexOf(item); - if (index2 > -1) { - this.members.splice(index2, 1); - } - this.updateData(this.members, this.nonMembers); - return true; - }; - Hull2.prototype.removeMember = function(item) { - if (!item) - return; - if (is_string_default(item)) - item = this.graph.findById(item); - var index2 = this.members.indexOf(item); - if (index2 > -1) { - this.members.splice(index2, 1); - this.updateData(this.members, this.nonMembers); - return true; - } - return false; - }; - Hull2.prototype.removeNonMember = function(item) { - if (!item) - return; - if (is_string_default(item)) - item = this.graph.findById(item); - var index2 = this.nonMembers.indexOf(item); - if (index2 > -1) { - this.nonMembers.splice(index2, 1); - this.updateData(this.members, this.nonMembers); - return true; - } - return false; - }; - Hull2.prototype.updateData = function(members, nonMembers) { - var _this = this; - this.group.findById(this.id).remove(); - if (members) - this.members = members.map(function(item) { - return is_string_default(item) ? _this.graph.findById(item) : item; - }); - if (nonMembers) - this.nonMembers = nonMembers.map(function(item) { - return is_string_default(item) ? _this.graph.findById(item) : item; - }); - this.path = this.calcPath(this.members, this.nonMembers); - this.render(); - }; - Hull2.prototype.updateStyle = function(cfg) { - var path = this.group.findById(this.id); - path.attr(__assign({}, cfg)); - }; - Hull2.prototype.updateCfg = function(cfg) { - var _this = this; - this.cfg = deep_mix_default(this.cfg, cfg); - this.id = this.cfg.id; - this.group = this.cfg.group; - if (cfg.members) { - this.members = this.cfg.members.map(function(item) { - return is_string_default(item) ? _this.graph.findById(item) : item; - }); - } - if (cfg.nonMembers) { - this.nonMembers = this.cfg.nonMembers.map(function(item) { - return is_string_default(item) ? _this.graph.findById(item) : item; - }); - } - this.setPadding(); - this.setType(); - this.path = this.calcPath(this.members, this.nonMembers); - this.render(); - }; - Hull2.prototype.contain = function(item) { - var _this = this; - var nodeItem; - if (is_string_default(item)) { - nodeItem = this.graph.findById(item); - } else { - nodeItem = item; - } - var shapePoints; - var shape = nodeItem.getKeyShape(); - if (nodeItem.get("type") === "path") { - shapePoints = pathToPoints2(shape.attr("path")); - } else { - var shapeBBox = shape.getCanvasBBox(); - shapePoints = [[shapeBBox.minX, shapeBBox.minY], [shapeBBox.maxX, shapeBBox.minY], [shapeBBox.maxX, shapeBBox.maxY], [shapeBBox.minX, shapeBBox.maxY]]; - } - shapePoints = shapePoints.map(function(canvasPoint) { - var point2 = _this.graph.getPointByCanvas(canvasPoint[0], canvasPoint[1]); - return [point2.x, point2.y]; - }); - return isPolygonsIntersect2(shapePoints, pathToPoints2(this.path)); - }; - Hull2.prototype.destroy = function() { - this.group.remove(); - this.cfg = null; - }; - return Hull2; -}(); -var hull_default = Hull; - -// node_modules/@antv/g6-core/es/graph/graph.js -var transform9 = ext_exports.transform; -var NODE2 = "node"; -var AbstractGraph = function(_super) { - __extends(AbstractGraph2, _super); - function AbstractGraph2(cfg) { - var _this = _super.call(this) || this; - _this.cfg = deep_mix_default(_this.getDefaultCfg(), cfg); - _this.init(); - _this.animating = false; - _this.destroyed = false; - if (_this.cfg.enabledStack) { - _this.undoStack = new stack_default2(_this.cfg.maxStep); - _this.redoStack = new stack_default2(_this.cfg.maxStep); - } - return _this; - } - AbstractGraph2.prototype.init = function() { - this.initCanvas(); - var viewController = new view_default2(this); - var modeController = new mode_default(this); - var itemController = new item_default2(this); - var stateController = new state_default2(this); - this.set({ - viewController, - modeController, - itemController, - stateController - }); - this.initLayoutController(); - this.initEventController(); - this.initGroups(); - this.initPlugins(); - }; - AbstractGraph2.prototype.initGroups = function() { - var canvas = this.get("canvas"); - var el = this.get("canvas").get("el"); - var id = el.id; - var group2 = canvas.addGroup({ - id: id + "-root", - className: global_default.rootContainerClassName - }); - if (this.get("groupByTypes")) { - var edgeGroup = group2.addGroup({ - id: id + "-edge", - className: global_default.edgeContainerClassName - }); - var nodeGroup = group2.addGroup({ - id: id + "-node", - className: global_default.nodeContainerClassName - }); - var comboGroup = group2.addGroup({ - id: id + "-combo", - className: global_default.comboContainerClassName - }); - comboGroup.toBack(); - this.set({ - nodeGroup, - edgeGroup, - comboGroup - }); - } - var delegateGroup = group2.addGroup({ - id: id + "-delegate", - className: global_default.delegateContainerClassName - }); - this.set({ - delegateGroup - }); - this.set("group", group2); - }; - AbstractGraph2.prototype.getDefaultCfg = function() { - return { - container: void 0, - width: void 0, - height: void 0, - renderer: "canvas", - modes: {}, - plugins: [], - data: {}, - fitViewPadding: 10, - minZoom: 0.2, - maxZoom: 10, - event: true, - groupByTypes: true, - directed: false, - autoPaint: true, - nodes: [], - edges: [], - combos: [], - vedges: [], - itemMap: {}, - linkCenter: false, - defaultNode: {}, - defaultEdge: {}, - nodeStateStyles: {}, - edgeStateStyles: {}, - states: {}, - animate: false, - animateCfg: { - onFrame: void 0, - duration: 500, - easing: "easeLinear" - }, - callback: void 0, - enabledStack: false, - maxStep: 10, - tooltips: [] - }; - }; - AbstractGraph2.prototype.set = function(key, val) { - if (is_plain_object_default(key)) { - this.cfg = __assign(__assign({}, this.cfg), key); - } else { - this.cfg[key] = val; - } - return this; - }; - AbstractGraph2.prototype.get = function(key) { - return this.cfg[key]; - }; - AbstractGraph2.prototype.getGroup = function() { - return this.get("group"); - }; - AbstractGraph2.prototype.getContainer = function() { - return this.get("container"); - }; - AbstractGraph2.prototype.getMinZoom = function() { - return this.get("minZoom"); - }; - AbstractGraph2.prototype.setMinZoom = function(ratio) { - return this.set("minZoom", ratio); - }; - AbstractGraph2.prototype.getMaxZoom = function() { - return this.get("maxZoom"); - }; - AbstractGraph2.prototype.setMaxZoom = function(ratio) { - return this.set("maxZoom", ratio); - }; - AbstractGraph2.prototype.getWidth = function() { - return this.get("width"); - }; - AbstractGraph2.prototype.getHeight = function() { - return this.get("height"); - }; - AbstractGraph2.prototype.clearItemStates = function(item, states) { - if (is_string_default(item)) { - item = this.findById(item); - } - var itemController = this.get("itemController"); - if (!states) { - states = item.get("states"); - } - itemController.clearItemStates(item, states); - var stateController = this.get("stateController"); - stateController.updateStates(item, states, false); - }; - AbstractGraph2.prototype.node = function(nodeFn) { - if (typeof nodeFn === "function") { - this.set("nodeMapper", nodeFn); - } - }; - AbstractGraph2.prototype.edge = function(edgeFn) { - if (typeof edgeFn === "function") { - this.set("edgeMapper", edgeFn); - } - }; - AbstractGraph2.prototype.combo = function(comboFn) { - if (typeof comboFn === "function") { - this.set("comboMapper", comboFn); - } - }; - AbstractGraph2.prototype.findById = function(id) { - return this.get("itemMap")[id]; - }; - AbstractGraph2.prototype.find = function(type2, fn2) { - var result; - var items = this.get(type2 + "s"); - each_default(items, function(item, i4) { - if (fn2(item, i4)) { - result = item; - return result; - } - }); - return result; - }; - AbstractGraph2.prototype.findAll = function(type2, fn2) { - var result = []; - each_default(this.get(type2 + "s"), function(item, i4) { - if (fn2(item, i4)) { - result.push(item); - } - }); - return result; - }; - AbstractGraph2.prototype.findAllByState = function(type2, state2) { - return this.findAll(type2, function(item) { - return item.hasState(state2); - }); - }; - AbstractGraph2.prototype.translate = function(dx, dy) { - var group2 = this.get("group"); - var matrix = clone_default(group2.getMatrix()); - if (!matrix) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - matrix = transform9(matrix, [["t", dx, dy]]); - group2.setMatrix(matrix); - this.emit("viewportchange", { - action: "translate", - matrix: group2.getMatrix() - }); - this.autoPaint(); - }; - AbstractGraph2.prototype.moveTo = function(x6, y5) { - var group2 = this.get("group"); - move(group2, { - x: x6, - y: y5 - }); - this.emit("viewportchange", { - action: "move", - matrix: group2.getMatrix() - }); - }; - AbstractGraph2.prototype.fitView = function(padding3) { - if (padding3) { - this.set("fitViewPadding", padding3); - } - var viewController = this.get("viewController"); - viewController.fitView(); - this.autoPaint(); - }; - AbstractGraph2.prototype.fitCenter = function() { - var viewController = this.get("viewController"); - viewController.fitCenter(); - this.autoPaint(); - }; - AbstractGraph2.prototype.addBehaviors = function(behaviors2, modes) { - var modeController = this.get("modeController"); - modeController.manipulateBehaviors(behaviors2, modes, true); - return this; - }; - AbstractGraph2.prototype.removeBehaviors = function(behaviors2, modes) { - var modeController = this.get("modeController"); - modeController.manipulateBehaviors(behaviors2, modes, false); - return this; - }; - AbstractGraph2.prototype.updateBehavior = function(behavior, newCfg, mode) { - var modeController = this.get("modeController"); - modeController.updateBehavior(behavior, newCfg, mode); - return this; - }; - AbstractGraph2.prototype.zoom = function(ratio, center2) { - var group2 = this.get("group"); - var matrix = clone_default(group2.getMatrix()); - var minZoom = this.get("minZoom"); - var maxZoom = this.get("maxZoom"); - if (!matrix) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - if (center2) { - matrix = transform9(matrix, [["t", -center2.x, -center2.y], ["s", ratio, ratio], ["t", center2.x, center2.y]]); - } else { - matrix = transform9(matrix, [["s", ratio, ratio]]); - } - if (minZoom && matrix[0] < minZoom || maxZoom && matrix[0] > maxZoom) { - return; - } - group2.setMatrix(matrix); - this.emit("viewportchange", { - action: "zoom", - matrix - }); - this.autoPaint(); - }; - AbstractGraph2.prototype.zoomTo = function(toRatio, center2) { - var ratio = toRatio / this.getZoom(); - this.zoom(ratio, center2); - }; - AbstractGraph2.prototype.focusItem = function(item, animate, animateCfg) { - var viewController = this.get("viewController"); - var isAnimate = false; - if (animate) - isAnimate = true; - else if (animate === void 0) - isAnimate = this.get("animate"); - var curAniamteCfg = {}; - if (animateCfg) - curAniamteCfg = animateCfg; - else if (animateCfg === void 0) - curAniamteCfg = this.get("animateCfg"); - viewController.focus(item, isAnimate, curAniamteCfg); - this.autoPaint(); - }; - AbstractGraph2.prototype.autoPaint = function() { - if (this.get("autoPaint")) { - this.paint(); - } - }; - AbstractGraph2.prototype.paint = function() { - this.emit("beforepaint"); - this.get("canvas").draw(); - this.emit("afterpaint"); - }; - AbstractGraph2.prototype.getPointByClient = function(clientX, clientY) { - var viewController = this.get("viewController"); - return viewController.getPointByClient(clientX, clientY); - }; - AbstractGraph2.prototype.getClientByPoint = function(x6, y5) { - var viewController = this.get("viewController"); - return viewController.getClientByPoint(x6, y5); - }; - AbstractGraph2.prototype.getPointByCanvas = function(canvasX, canvasY) { - var viewController = this.get("viewController"); - return viewController.getPointByCanvas(canvasX, canvasY); - }; - AbstractGraph2.prototype.getCanvasByPoint = function(x6, y5) { - var viewController = this.get("viewController"); - return viewController.getCanvasByPoint(x6, y5); - }; - AbstractGraph2.prototype.getGraphCenterPoint = function() { - var bbox = this.get("group").getCanvasBBox(); - return { - x: (bbox.minX + bbox.maxX) / 2, - y: (bbox.minY + bbox.maxY) / 2 - }; - }; - AbstractGraph2.prototype.getViewPortCenterPoint = function() { - return this.getPointByCanvas(this.get("width") / 2, this.get("height") / 2); - }; - AbstractGraph2.prototype.showItem = function(item, stack) { - if (stack === void 0) { - stack = true; - } - var itemController = this.get("itemController"); - var object = itemController.changeItemVisibility(item, true); - if (stack && this.get("enabledStack")) { - var id = object.getID(); - var type2 = object.getType(); - var before = {}; - var after = {}; - switch (type2) { - case "node": - before.nodes = [{ - id, - visible: false - }]; - after.nodes = [{ - id, - visible: true - }]; - break; - case "edge": - before.nodes = [{ - id, - visible: false - }]; - after.edges = [{ - id, - visible: true - }]; - break; - case "combo": - before.nodes = [{ - id, - visible: false - }]; - after.combos = [{ - id, - visible: true - }]; - break; - default: - break; - } - this.pushStack("visible", { - before, - after - }); - } - }; - AbstractGraph2.prototype.hideItem = function(item, stack) { - if (stack === void 0) { - stack = true; - } - var itemController = this.get("itemController"); - var object = itemController.changeItemVisibility(item, false); - if (stack && this.get("enabledStack")) { - var id = object.getID(); - var type2 = object.getType(); - var before = {}; - var after = {}; - switch (type2) { - case "node": - before.nodes = [{ - id, - visible: true - }]; - after.nodes = [{ - id, - visible: false - }]; - break; - case "edge": - before.nodes = [{ - id, - visible: true - }]; - after.edges = [{ - id, - visible: false - }]; - break; - case "combo": - before.nodes = [{ - id, - visible: true - }]; - after.combos = [{ - id, - visible: false - }]; - break; - default: - break; - } - this.pushStack("visible", { - before, - after - }); - } - }; - AbstractGraph2.prototype.refreshItem = function(item) { - var itemController = this.get("itemController"); - itemController.refreshItem(item); - }; - AbstractGraph2.prototype.setAutoPaint = function(auto) { - var self2 = this; - self2.set("autoPaint", auto); - var canvas = self2.get("canvas"); - canvas.set("autoDraw", auto); - }; - AbstractGraph2.prototype.remove = function(item, stack) { - if (stack === void 0) { - stack = true; - } - this.removeItem(item, stack); - }; - AbstractGraph2.prototype.removeItem = function(item, stack) { - if (stack === void 0) { - stack = true; - } - var nodeItem = item; - if (is_string_default(item)) - nodeItem = this.findById(item); - if (!nodeItem && is_string_default(item)) { - console.warn("The item to be removed does not exist!"); - } else if (nodeItem) { - var type2 = ""; - if (nodeItem.getType) - type2 = nodeItem.getType(); - if (stack && this.get("enabledStack")) { - var deletedModel = __assign(__assign({}, nodeItem.getModel()), { - itemType: type2 - }); - var before = {}; - switch (type2) { - case "node": { - before.nodes = [deletedModel]; - before.edges = []; - var edges = nodeItem.getEdges(); - for (var i4 = edges.length - 1; i4 >= 0; i4--) { - before.edges.push(__assign(__assign({}, edges[i4].getModel()), { - itemType: "edge" - })); - } - break; - } - case "edge": - before.edges = [deletedModel]; - break; - case "combo": - before.combos = [deletedModel]; - break; - default: - break; - } - this.pushStack("delete", { - before, - after: {} - }); - } - if (type2 === "node") { - var model = nodeItem.getModel(); - if (model.comboId) { - this.updateComboTree(nodeItem); - } - } - var itemController = this.get("itemController"); - itemController.removeItem(nodeItem); - if (type2 === "combo") { - var newComboTrees = reconstructTree(this.get("comboTrees")); - this.set("comboTrees", newComboTrees); - } - } - }; - AbstractGraph2.prototype.addItem = function(type2, model, stack, sortCombo) { - if (stack === void 0) { - stack = true; - } - if (sortCombo === void 0) { - sortCombo = true; - } - var currentComboSorted = this.get("comboSorted"); - this.set("comboSorted", currentComboSorted && !sortCombo); - var itemController = this.get("itemController"); - if (model.id && this.findById(model.id)) { - console.warn("This item exists already. Be sure the id %c" + model.id + "%c is unique.", "font-size: 20px; color: red;", ""); - return; - } - var item; - var comboTrees = this.get("comboTrees"); - if (!comboTrees) - comboTrees = []; - if (type2 === "combo") { - var itemMap_1 = this.get("itemMap"); - var foundParent_1 = false; - comboTrees.forEach(function(ctree) { - if (foundParent_1) - return; - traverseTreeUp(ctree, function(child) { - if (model.parentId === child.id) { - foundParent_1 = true; - var newCombo2 = __assign({ - id: model.id, - depth: child.depth + 2 - }, model); - if (child.children) - child.children.push(newCombo2); - else - child.children = [newCombo2]; - model.depth = newCombo2.depth; - item = itemController.addItem(type2, model); - } - var childItem = itemMap_1[child.id]; - if (foundParent_1 && childItem && childItem.getType && childItem.getType() === "combo") { - itemController.updateCombo(childItem, child.children); - } - return true; - }); - }); - if (!foundParent_1) { - var newCombo = __assign({ - id: model.id, - depth: 0 - }, model); - model.depth = newCombo.depth; - comboTrees.push(newCombo); - item = itemController.addItem(type2, model); - } - this.set("comboTrees", comboTrees); - } else if (type2 === "node" && is_string_default(model.comboId) && comboTrees) { - var parentCombo = this.findById(model.comboId); - if (parentCombo && parentCombo.getType && parentCombo.getType() !== "combo") { - console.warn("'" + model.comboId + "' is not a id of a combo in the graph, the node will be added without combo."); - } - item = itemController.addItem(type2, model); - var itemMap_2 = this.get("itemMap"); - var foundParent_2 = false, foundNode_1 = false; - (comboTrees || []).forEach(function(ctree) { - if (foundNode_1 || foundParent_2) - return; - traverseTreeUp(ctree, function(child) { - if (child.id === model.id) { - foundNode_1 = true; - return false; - } - if (model.comboId === child.id && !foundNode_1) { - foundParent_2 = true; - var cloneNode = clone_default(model); - cloneNode.itemType = "node"; - if (child.children) - child.children.push(cloneNode); - else - child.children = [cloneNode]; - model.depth = child.depth + 1; - } - if (foundParent_2 && itemMap_2[child.id].getType && itemMap_2[child.id].getType() === "combo") { - itemController.updateCombo(itemMap_2[child.id], child.children); - } - return true; - }); - }); - } else { - item = itemController.addItem(type2, model); - } - if (type2 === "node" && model.comboId || type2 === "combo" && model.parentId) { - var parentCombo = this.findById(model.comboId || model.parentId); - if (parentCombo && parentCombo.getType && parentCombo.getType() === "combo") - parentCombo.addChild(item); - } - var combos = this.get("combos"); - if (combos && combos.length > 0) { - this.sortCombos(); - } - this.autoPaint(); - if (stack && this.get("enabledStack")) { - var addedModel = __assign(__assign({}, item.getModel()), { - itemType: type2 - }); - var after = {}; - switch (type2) { - case "node": - after.nodes = [addedModel]; - break; - case "edge": - after.edges = [addedModel]; - break; - case "combo": - after.combos = [addedModel]; - break; - default: - break; - } - this.pushStack("add", { - before: {}, - after - }); - } - return item; - }; - AbstractGraph2.prototype.add = function(type2, model, stack, sortCombo) { - if (stack === void 0) { - stack = true; - } - if (sortCombo === void 0) { - sortCombo = true; - } - return this.addItem(type2, model, stack, sortCombo); - }; - AbstractGraph2.prototype.updateItem = function(item, cfg, stack) { - var _this = this; - if (stack === void 0) { - stack = true; - } - var itemController = this.get("itemController"); - var currentItem; - if (is_string_default(item)) { - currentItem = this.findById(item); - } else { - currentItem = item; - } - var UnupdateModel = clone_default(currentItem.getModel()); - var type2 = ""; - if (currentItem.getType) - type2 = currentItem.getType(); - var states = __spreadArray([], currentItem.getStates()); - if (type2 === "combo") { - each_default(states, function(state2) { - return _this.setItemState(currentItem, state2, false); - }); - } - itemController.updateItem(currentItem, cfg); - if (type2 === "combo") { - each_default(states, function(state2) { - return _this.setItemState(currentItem, state2, true); - }); - } - if (stack && this.get("enabledStack")) { - var before = { - nodes: [], - edges: [], - combos: [] - }; - var after = { - nodes: [], - edges: [], - combos: [] - }; - var afterModel = __assign({ - id: UnupdateModel.id - }, cfg); - switch (type2) { - case "node": - before.nodes.push(UnupdateModel); - after.nodes.push(afterModel); - break; - case "edge": - before.edges.push(UnupdateModel); - after.edges.push(afterModel); - break; - case "combo": - before.combos.push(UnupdateModel); - after.combos.push(afterModel); - break; - default: - break; - } - if (type2 === "node") { - before.nodes.push(UnupdateModel); - } - this.pushStack("update", { - before, - after - }); - } - }; - AbstractGraph2.prototype.update = function(item, cfg, stack) { - if (stack === void 0) { - stack = true; - } - this.updateItem(item, cfg, stack); - }; - AbstractGraph2.prototype.setItemState = function(item, state2, value2) { - if (is_string_default(item)) { - item = this.findById(item); - } - var itemController = this.get("itemController"); - itemController.setItemState(item, state2, value2); - var stateController = this.get("stateController"); - if (is_string_default(value2)) { - stateController.updateState(item, state2 + ":" + value2, true); - } else { - stateController.updateState(item, state2, value2); - } - }; - AbstractGraph2.prototype.priorityState = function(item, state2) { - var itemController = this.get("itemController"); - itemController.priorityState(item, state2); - }; - AbstractGraph2.prototype.data = function(data3) { - this.set("data", data3); - }; - AbstractGraph2.prototype.render = function() { - var self2 = this; - this.set("comboSorted", false); - var data3 = this.get("data"); - if (this.get("enabledStack")) { - this.clearStack(); - } - if (!data3) { - throw new Error("data must be defined first"); - } - var _a6 = data3.nodes, nodes = _a6 === void 0 ? [] : _a6, _b = data3.edges, edges = _b === void 0 ? [] : _b, _c = data3.combos, combos = _c === void 0 ? [] : _c; - this.clear(true); - this.emit("beforerender"); - each_default(nodes, function(node) { - self2.add("node", node, false, false); - }); - if (combos && combos.length !== 0) { - var comboTrees = plainCombosToTrees(combos, nodes); - this.set("comboTrees", comboTrees); - self2.addCombos(combos); - } - each_default(edges, function(edge2) { - self2.add("edge", edge2, false, false); - }); - var animate = self2.get("animate"); - if (self2.get("fitView") || self2.get("fitCenter")) { - self2.set("animate", false); - } - var layoutController = self2.get("layoutController"); - if (layoutController) { - layoutController.layout(success); - if (this.destroyed) - return; - } else { - if (self2.get("fitView")) { - self2.fitView(); - } - if (self2.get("fitCenter")) { - self2.fitCenter(); - } - self2.emit("afterrender"); - self2.set("animate", animate); - } - function success() { - if (self2.get("fitView")) { - self2.fitView(); - } else if (self2.get("fitCenter")) { - self2.fitCenter(); - } - self2.autoPaint(); - self2.emit("afterrender"); - if (self2.get("fitView") || self2.get("fitCenter")) { - self2.set("animate", animate); - } - } - if (!this.get("groupByTypes")) { - if (combos && combos.length !== 0) { - this.sortCombos(); - } else { - if (data3.nodes && data3.edges && data3.nodes.length < data3.edges.length) { - var nodesArr = this.getNodes(); - nodesArr.forEach(function(node) { - node.toFront(); - }); - } else { - var edgesArr = this.getEdges(); - edgesArr.forEach(function(edge2) { - edge2.toBack(); - }); - } - } - } - if (this.get("enabledStack")) { - this.pushStack("render"); - } - }; - AbstractGraph2.prototype.read = function(data3) { - this.data(data3); - this.render(); - }; - AbstractGraph2.prototype.diffItems = function(type2, items, models) { - var self2 = this; - var item; - var itemMap = this.get("itemMap"); - each_default(models, function(model) { - item = itemMap[model.id]; - if (item) { - if (self2.get("animate") && type2 === NODE2) { - var containerMatrix = item.getContainer().getMatrix(); - if (!containerMatrix) - containerMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - item.set("originAttrs", { - x: containerMatrix[6], - y: containerMatrix[7] - }); - } - self2.updateItem(item, model, false); - } else { - item = self2.addItem(type2, model, false); - } - if (item) - items[type2 + "s"].push(item); - }); - }; - AbstractGraph2.prototype.changeData = function(data3, stack) { - if (stack === void 0) { - stack = true; - } - var self2 = this; - if (!data3) { - return this; - } - if (stack && this.get("enabledStack")) { - this.pushStack("changedata", { - before: self2.save(), - after: data3 - }); - } - this.set("comboSorted", false); - this.removeHulls(); - this.getNodes().map(function(node) { - return self2.clearItemStates(node); - }); - this.getEdges().map(function(edge2) { - return self2.clearItemStates(edge2); - }); - var canvas = this.get("canvas"); - var localRefresh = canvas.get("localRefresh"); - canvas.set("localRefresh", false); - if (!self2.get("data")) { - self2.data(data3); - self2.render(); - } - var itemMap = this.get("itemMap"); - var items = { - nodes: [], - edges: [] - }; - var combosData = data3.combos; - if (combosData) { - var comboTrees = plainCombosToTrees(combosData, data3.nodes); - this.set("comboTrees", comboTrees); - } - this.diffItems("node", items, data3.nodes); - each_default(itemMap, function(item, id) { - itemMap[id].getModel().depth = 0; - if (item.getType && item.getType() === "edge") - return; - if (item.getType && item.getType() === "combo") { - delete itemMap[id]; - item.destroy(); - } else if (items.nodes.indexOf(item) < 0) { - delete itemMap[id]; - self2.remove(item, false); - } - }); - var comboItems = this.getCombos(); - var combosLength = comboItems.length; - for (var i4 = combosLength - 1; i4 >= 0; i4--) { - if (comboItems[i4].destroyed) { - comboItems.splice(i4, 1); - } - } - if (combosData) { - self2.addCombos(combosData); - if (!this.get("groupByTypes")) { - this.sortCombos(); - } - } - this.diffItems("edge", items, data3.edges); - each_default(itemMap, function(item, id) { - if (item.getType && (item.getType() === "node" || item.getType() === "combo")) - return; - if (items.edges.indexOf(item) < 0) { - delete itemMap[id]; - self2.remove(item, false); - } - }); - this.set({ - nodes: items.nodes, - edges: items.edges - }); - var layoutController = this.get("layoutController"); - if (layoutController) { - layoutController.changeData(); - if (self2.get("animate") && !layoutController.getLayoutType()) { - self2.positionsAnimate(); - } else { - self2.autoPaint(); - } - } - setTimeout(function() { - canvas.set("localRefresh", localRefresh); - }, 16); - return this; - }; - AbstractGraph2.prototype.addCombos = function(combos) { - var self2 = this; - var comboTrees = self2.get("comboTrees"); - var itemController = this.get("itemController"); - itemController.addCombos(comboTrees, combos); - }; - AbstractGraph2.prototype.createCombo = function(combo, children) { - var _this = this; - this.set("comboSorted", false); - var comboId = ""; - var comboConfig; - if (!combo) - return; - if (is_string_default(combo)) { - comboId = combo; - comboConfig = { - id: combo - }; - } else { - comboId = combo.id; - if (!comboId) { - console.warn("Create combo failed. Please assign a unique string id for the adding combo."); - return; - } - comboConfig = combo; - } - var trees = children.map(function(elementId) { - var item = _this.findById(elementId); - var type2 = ""; - if (item.getType) - type2 = item.getType(); - var cItem = { - id: item.getID(), - itemType: type2 - }; - if (type2 === "combo") { - cItem.parentId = comboId; - } else if (type2 === "node") { - cItem.comboId = comboId; - } - return cItem; - }); - comboConfig.children = trees; - this.addItem("combo", comboConfig, false); - this.set("comboSorted", false); - var comboTrees = this.get("comboTrees"); - (comboTrees || []).forEach(function(ctree) { - traverseTreeUp(ctree, function(child) { - if (child.id === comboId) { - child.itemType = "combo"; - child.children = trees; - return false; - } - return true; - }); - }); - if (comboTrees) { - this.sortCombos(); - } - }; - AbstractGraph2.prototype.uncombo = function(combo) { - var _this = this; - var self2 = this; - var comboItem = combo; - if (is_string_default(combo)) { - comboItem = this.findById(combo); - } - if (!comboItem || comboItem.getType && comboItem.getType() !== "combo") { - console.warn("The item is not a combo!"); - return; - } - var parentId = comboItem.getModel().parentId; - var comboTrees = self2.get("comboTrees"); - if (!comboTrees) - comboTrees = []; - var itemMap = this.get("itemMap"); - var comboId = comboItem.get("id"); - var treeToBeUncombo; - var brothers = []; - var comboItems = this.get("combos"); - var parentItem = this.findById(parentId); - comboTrees.forEach(function(ctree) { - if (treeToBeUncombo) - return; - traverseTreeUp(ctree, function(subtree) { - if (subtree.id === comboId) { - treeToBeUncombo = subtree; - var edges = comboItem.getEdges(); - edges.forEach(function(edge2) { - _this.removeItem(edge2, false); - }); - var index3 = comboItems.indexOf(combo); - comboItems.splice(index3, 1); - delete itemMap[comboId]; - comboItem.destroy(); - } - if (parentId && treeToBeUncombo && subtree.id === parentId) { - parentItem.removeCombo(comboItem); - brothers = subtree.children; - var index3 = brothers.indexOf(treeToBeUncombo); - if (index3 !== -1) { - brothers.splice(index3, 1); - } - treeToBeUncombo.children.forEach(function(child) { - var item = _this.findById(child.id); - var childModel = item.getModel(); - if (item.getType && item.getType() === "combo") { - child.parentId = parentId; - delete child.comboId; - childModel.parentId = parentId; - delete childModel.comboId; - } else if (item.getType && item.getType() === "node") { - child.comboId = parentId; - childModel.comboId = parentId; - } - parentItem.addChild(item); - brothers.push(child); - }); - return false; - } - return true; - }); - }); - if (!parentId && treeToBeUncombo) { - var index2 = comboTrees.indexOf(treeToBeUncombo); - comboTrees.splice(index2, 1); - treeToBeUncombo.children.forEach(function(child) { - child.parentId = void 0; - var childModel = _this.findById(child.id).getModel(); - childModel.parentId = void 0; - if (child.itemType !== "node") - comboTrees.push(child); - }); - } - }; - AbstractGraph2.prototype.updateCombos = function() { - var _this = this; - var self2 = this; - var comboTrees = this.get("comboTrees"); - var itemController = self2.get("itemController"); - var itemMap = self2.get("itemMap"); - (comboTrees || []).forEach(function(ctree) { - traverseTreeUp(ctree, function(child) { - if (!child) { - return true; - } - var childItem = itemMap[child.id]; - if (childItem && childItem.getType && childItem.getType() === "combo") { - var states = __spreadArray([], childItem.getStates()); - each_default(states, function(state2) { - return _this.setItemState(childItem, state2, false); - }); - itemController.updateCombo(childItem, child.children); - each_default(states, function(state2) { - return _this.setItemState(childItem, state2, true); - }); - } - return true; - }); - }); - self2.sortCombos(); - }; - AbstractGraph2.prototype.updateCombo = function(combo) { - var _this = this; - var self2 = this; - var comboItem = combo; - var comboId; - if (is_string_default(combo)) { - comboItem = this.findById(combo); - } - if (!comboItem || comboItem.getType && comboItem.getType() !== "combo") { - console.warn("The item to be updated is not a combo!"); - return; - } - comboId = comboItem.get("id"); - var comboTrees = this.get("comboTrees"); - var itemController = self2.get("itemController"); - var itemMap = self2.get("itemMap"); - (comboTrees || []).forEach(function(ctree) { - traverseTreeUp(ctree, function(child) { - if (!child) { - return true; - } - var childItem = itemMap[child.id]; - if (comboId === child.id && childItem && childItem.getType && childItem.getType() === "combo") { - var states = __spreadArray([], childItem.getStates()); - each_default(states, function(state2) { - if (childItem.getStateStyle(state2)) { - _this.setItemState(childItem, state2, false); - } - }); - itemController.updateCombo(childItem, child.children); - each_default(states, function(state2) { - if (childItem.getStateStyle(state2)) { - _this.setItemState(childItem, state2, true); - } - }); - if (comboId) - comboId = child.parentId; - } - return true; - }); - }); - }; - AbstractGraph2.prototype.updateComboTree = function(item, parentId, stack) { - if (stack === void 0) { - stack = true; - } - var self2 = this; - this.set("comboSorted", false); - var uItem; - if (is_string_default(item)) { - uItem = self2.findById(item); - } else { - uItem = item; - } - var model = uItem.getModel(); - var oldParentId = model.comboId || model.parentId; - var type2 = ""; - if (uItem.getType) - type2 = uItem.getType(); - if (parentId && type2 === "combo") { - var comboTrees = this.get("comboTrees"); - var valid_1 = true; - var itemSubTree_1; - (comboTrees || []).forEach(function(ctree) { - if (itemSubTree_1) - return; - traverseTree(ctree, function(subTree) { - if (itemSubTree_1) - return; - if (subTree.id === uItem.getID()) { - itemSubTree_1 = subTree; - } - return true; - }); - }); - traverseTree(itemSubTree_1, function(subTree) { - if (subTree.id === parentId) { - valid_1 = false; - return false; - } - return true; - }); - if (!valid_1) { - console.warn("Failed to update the combo tree! The parentId points to a descendant of the combo!"); - return; - } - } - if (stack && this.get("enabledStack")) { - var beforeData = {}, afterData = {}; - if (type2 === "combo") { - beforeData.combos = [{ - id: model.id, - parentId: model.parentId - }]; - afterData.combos = [{ - id: model.id, - parentId - }]; - } else if (type2 === "node") { - beforeData.nodes = [{ - id: model.id, - parentId: model.comboId - }]; - afterData.nodes = [{ - id: model.id, - parentId - }]; - } - this.pushStack("updateComboTree", { - before: beforeData, - after: afterData - }); - } - if (model.parentId || model.comboId) { - var combo = this.findById(model.parentId || model.comboId); - if (combo) { - combo.removeChild(uItem); - } - } - if (type2 === "combo") { - model.parentId = parentId; - } else if (type2 === "node") { - model.comboId = parentId; - } - if (parentId) { - var parentCombo = this.findById(parentId); - if (parentCombo) { - parentCombo.addChild(uItem); - } - } - if (oldParentId) { - var parentCombo = this.findById(oldParentId); - if (parentCombo) { - parentCombo.removeChild(uItem); - } - } - var newComboTrees = reconstructTree(this.get("comboTrees"), model.id, parentId); - this.set("comboTrees", newComboTrees); - this.updateCombos(); - }; - AbstractGraph2.prototype.save = function() { - var nodes = []; - var edges = []; - var combos = []; - each_default(this.get("nodes"), function(node) { - nodes.push(node.getModel()); - }); - each_default(this.get("edges"), function(edge2) { - edges.push(edge2.getModel()); - }); - each_default(this.get("combos"), function(combo) { - combos.push(combo.getModel()); - }); - return { - nodes, - edges, - combos - }; - }; - AbstractGraph2.prototype.changeSize = function(width2, height) { - var viewController = this.get("viewController"); - viewController.changeSize(width2, height); - return this; - }; - AbstractGraph2.prototype.refresh = function() { - var self2 = this; - self2.emit("beforegraphrefresh"); - if (self2.get("animate")) { - self2.positionsAnimate(); - } else { - var nodes = self2.get("nodes"); - var edges = self2.get("edges"); - var vedges = self2.get("edges"); - each_default(nodes, function(node) { - node.refresh(); - }); - each_default(edges, function(edge2) { - edge2.refresh(); - }); - each_default(vedges, function(vedge) { - vedge.refresh(); - }); - } - self2.emit("aftergraphrefresh"); - self2.autoPaint(); - }; - AbstractGraph2.prototype.getNodes = function() { - return this.get("nodes"); - }; - AbstractGraph2.prototype.getEdges = function() { - return this.get("edges"); - }; - AbstractGraph2.prototype.getCombos = function() { - return this.get("combos"); - }; - AbstractGraph2.prototype.getComboChildren = function(combo) { - if (is_string_default(combo)) { - combo = this.findById(combo); - } - if (!combo || combo.getType && combo.getType() !== "combo") { - console.warn("The combo does not exist!"); - return; - } - return combo.getChildren(); - }; - AbstractGraph2.prototype.positionsAnimate = function() { - var self2 = this; - self2.emit("beforeanimate"); - var animateCfg = self2.get("animateCfg"); - var onFrame = animateCfg.onFrame; - var nodes = self2.getNodes(); - var toNodes = nodes.map(function(node) { - var model = node.getModel(); - return { - id: model.id, - x: model.x, - y: model.y - }; - }); - if (self2.isAnimating()) { - self2.stopAnimate(); - } - var canvas = self2.get("canvas"); - canvas.animate(function(ratio) { - each_default(toNodes, function(data3) { - var node = self2.findById(data3.id); - if (!node || node.destroyed) { - return; - } - var originAttrs = node.get("originAttrs"); - var model = node.get("model"); - if (!originAttrs) { - var containerMatrix = node.getContainer().getMatrix(); - if (!containerMatrix) - containerMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - originAttrs = { - x: containerMatrix[6], - y: containerMatrix[7] - }; - node.set("originAttrs", originAttrs); - } - if (onFrame) { - var attrs = onFrame(node, ratio, data3, originAttrs); - node.set("model", Object.assign(model, attrs)); - } else { - model.x = originAttrs.x + (data3.x - originAttrs.x) * ratio; - model.y = originAttrs.y + (data3.y - originAttrs.y) * ratio; - } - }); - self2.refreshPositions(); - }, { - duration: animateCfg.duration, - easing: animateCfg.easing, - callback: function callback() { - each_default(nodes, function(node) { - node.set("originAttrs", null); - }); - if (animateCfg.callback) { - animateCfg.callback(); - } - self2.emit("afteranimate"); - self2.animating = false; - } - }); - }; - AbstractGraph2.prototype.refreshPositions = function() { - var self2 = this; - self2.emit("beforegraphrefreshposition"); - var nodes = self2.get("nodes"); - var edges = self2.get("edges"); - var vedges = self2.get("vedges"); - var combos = self2.get("combos"); - var model; - var updatedNodes = {}; - var nodeChangeMap = {}; - each_default(nodes, function(node) { - model = node.getModel(); - var originAttrs = node.get("originAttrs"); - if (originAttrs && model.x === originAttrs.x && model.y === originAttrs.y) { - return; - } - var changed = node.updatePosition({ - x: model.x, - y: model.y - }); - updatedNodes[model.id] = changed; - if (model.comboId) - updatedNodes[model.comboId] = updatedNodes[model.comboId] || changed; - }); - if (combos && combos.length !== 0) { - self2.updateCombos(); - } - each_default(edges, function(edge2) { - var sourceModel = edge2.getSource().getModel(); - var targetModel = edge2.getTarget().getModel(); - if (updatedNodes[sourceModel.id] || updatedNodes[targetModel.id] || edge2.getModel().isComboEdge) { - edge2.refresh(); - } - }); - each_default(vedges, function(vedge) { - vedge.refresh(); - }); - self2.emit("aftergraphrefreshposition"); - self2.autoPaint(); - }; - AbstractGraph2.prototype.stopAnimate = function() { - this.get("canvas").stopAnimate(); - }; - AbstractGraph2.prototype.isAnimating = function() { - return this.animating; - }; - AbstractGraph2.prototype.getZoom = function() { - var matrix = this.get("group").getMatrix(); - return matrix ? matrix[0] : 1; - }; - AbstractGraph2.prototype.getCurrentMode = function() { - var modeController = this.get("modeController"); - return modeController.getMode(); - }; - AbstractGraph2.prototype.setMode = function(mode) { - var modeController = this.get("modeController"); - modeController.setMode(mode); - return this; - }; - AbstractGraph2.prototype.clear = function(avoidEmit) { - if (avoidEmit === void 0) { - avoidEmit = false; - } - var canvas = this.get("canvas"); - canvas.clear(); - this.initGroups(); - this.set({ - itemMap: {}, - nodes: [], - edges: [], - groups: [], - combos: [], - comboTrees: [] - }); - if (!avoidEmit) - this.emit("afterrender"); - return this; - }; - AbstractGraph2.prototype.updateLayout = function(cfg) { - var layoutController = this.get("layoutController"); - if (is_string_default(cfg)) { - cfg = { - type: cfg - }; - } - var oriLayoutCfg = this.get("layout"); - var layoutCfg = {}; - Object.assign(layoutCfg, oriLayoutCfg, cfg); - this.set("layout", layoutCfg); - if (layoutController.isLayoutTypeSame(layoutCfg) && layoutCfg.gpuEnabled === oriLayoutCfg.gpuEnabled) { - layoutController.updateLayoutCfg(layoutCfg); - } else { - layoutController.changeLayout(layoutCfg); - } - }; - AbstractGraph2.prototype.destroyLayout = function() { - var layoutController = this.get("layoutController"); - layoutController.destroyLayout(); - }; - AbstractGraph2.prototype.layout = function() { - var layoutController = this.get("layoutController"); - var layoutCfg = this.get("layout"); - if (!layoutCfg || !layoutController) - return; - if (layoutCfg.workerEnabled) { - layoutController.layout(); - return; - } - if (layoutController.layoutMethod) { - layoutController.relayout(true); - } else { - layoutController.layout(); - } - }; - AbstractGraph2.prototype.collapseCombo = function(combo) { - var _this = this; - if (is_string_default(combo)) { - combo = this.findById(combo); - } - if (!combo) { - console.warn("The combo to be collapsed does not exist!"); - return; - } - this.emit("beforecollapseexpandcombo", { - action: "expand", - item: combo - }); - var comboModel = combo.getModel(); - var itemController = this.get("itemController"); - itemController.collapseCombo(combo); - comboModel.collapsed = true; - var edges = this.getEdges().concat(this.get("vedges")); - var cnodes = []; - var ccombos = []; - var comboTrees = this.get("comboTrees"); - var found = false; - var brothers = {}; - (comboTrees || []).forEach(function(ctree) { - brothers[ctree.id] = ctree; - }); - (comboTrees || []).forEach(function(ctree) { - if (found) - return; - traverseTree(ctree, function(subTree) { - if (found && brothers[subTree.id]) - return false; - if (comboModel.parentId === subTree.id) { - brothers = {}; - subTree.children.forEach(function(child) { - brothers[child.id] = child; - }); - } else if (comboModel.id === subTree.id) { - found = true; - } - if (found) { - var item = _this.findById(subTree.id); - if (item && item.getType && item.getType() === "combo") { - cnodes = cnodes.concat(item.getNodes()); - ccombos = ccombos.concat(item.getCombos()); - } - } - return true; - }); - }); - var edgeWeightMap = {}; - var addedVEdges = []; - edges.forEach(function(edge2) { - if (edge2.isVisible() && !edge2.getModel().isVEdge) - return; - var source = edge2.getSource(); - var target = edge2.getTarget(); - if ((cnodes.includes(source) || ccombos.includes(source)) && !cnodes.includes(target) && !ccombos.includes(target) || source.getModel().id === comboModel.id) { - var edgeModel = edge2.getModel(); - if (edgeModel.isVEdge) { - _this.removeItem(edge2, false); - return; - } - var targetModel = target.getModel(); - while (!target.isVisible()) { - target = _this.findById(targetModel.parentId || targetModel.comboId); - if (!target || !targetModel.parentId && !targetModel.comboId) - return; - targetModel = target.getModel(); - } - var targetId = targetModel.id; - if (edgeWeightMap[comboModel.id + "-" + targetId]) { - edgeWeightMap[comboModel.id + "-" + targetId] += edgeModel.size || 1; - return; - } - var vedge = _this.addItem("vedge", { - source: comboModel.id, - target: targetId, - isVEdge: true - }, false); - edgeWeightMap[comboModel.id + "-" + targetId] = edgeModel.size || 1; - addedVEdges.push(vedge); - } else if (!cnodes.includes(source) && !ccombos.includes(source) && (cnodes.includes(target) || ccombos.includes(target)) || target.getModel().id === comboModel.id) { - var edgeModel = edge2.getModel(); - if (edgeModel.isVEdge) { - _this.removeItem(edge2, false); - return; - } - var sourceModel = source.getModel(); - while (!source.isVisible()) { - source = _this.findById(sourceModel.parentId || sourceModel.comboId); - if (!source || !sourceModel.parentId && !sourceModel.comboId) - return; - sourceModel = source.getModel(); - } - var sourceId = sourceModel.id; - if (edgeWeightMap[sourceId + "-" + comboModel.id]) { - edgeWeightMap[sourceId + "-" + comboModel.id] += edgeModel.size || 1; - return; - } - var vedge = _this.addItem("vedge", { - target: comboModel.id, - source: sourceId, - isVEdge: true - }, false); - edgeWeightMap[sourceId + "-" + comboModel.id] = edgeModel.size || 1; - addedVEdges.push(vedge); - } - }); - addedVEdges.forEach(function(vedge) { - var vedgeModel = vedge.getModel(); - _this.updateItem(vedge, { - size: edgeWeightMap[vedgeModel.source + "-" + vedgeModel.target] - }, false); - }); - this.emit("aftercollapseexpandcombo", { - action: "collapse", - item: combo - }); - }; - AbstractGraph2.prototype.expandCombo = function(combo) { - var _this = this; - if (is_string_default(combo)) { - combo = this.findById(combo); - } - if (!combo || combo.getType && combo.getType() !== "combo") { - console.warn("The combo to be collapsed does not exist!"); - return; - } - this.emit("beforecollapseexpandcombo", { - action: "expand", - item: combo - }); - var comboModel = combo.getModel(); - var itemController = this.get("itemController"); - itemController.expandCombo(combo); - comboModel.collapsed = false; - var edges = this.getEdges().concat(this.get("vedges")); - var cnodes = []; - var ccombos = []; - var comboTrees = this.get("comboTrees"); - var found = false; - var brothers = {}; - (comboTrees || []).forEach(function(ctree) { - brothers[ctree.id] = ctree; - }); - (comboTrees || []).forEach(function(ctree) { - if (found) - return; - traverseTree(ctree, function(subTree) { - if (found && brothers[subTree.id]) { - return false; - } - if (comboModel.parentId === subTree.id) { - brothers = {}; - subTree.children.forEach(function(child) { - brothers[child.id] = child; - }); - } else if (comboModel.id === subTree.id) { - found = true; - } - if (found) { - var item = _this.findById(subTree.id); - if (item && item.getType && item.getType() === "combo") { - cnodes = cnodes.concat(item.getNodes()); - ccombos = ccombos.concat(item.getCombos()); - } - } - return true; - }); - }); - var edgeWeightMap = {}; - var addedVEdges = {}; - edges.forEach(function(edge2) { - if (edge2.isVisible() && !edge2.getModel().isVEdge) - return; - var source = edge2.getSource(); - var target = edge2.getTarget(); - var sourceId = source.get("id"); - var targetId = target.get("id"); - if ((cnodes.includes(source) || ccombos.includes(source)) && !cnodes.includes(target) && !ccombos.includes(target) || sourceId === comboModel.id) { - if (edge2.getModel().isVEdge) { - _this.removeItem(edge2, false); - return; - } - var targetModel = target.getModel(); - while (!target.isVisible()) { - target = _this.findById(targetModel.comboId || targetModel.parentId); - if (!target || !targetModel.parentId && !targetModel.comboId) { - return; - } - targetModel = target.getModel(); - } - targetId = targetModel.id; - var sourceModel = source.getModel(); - while (!source.isVisible()) { - source = _this.findById(sourceModel.comboId || sourceModel.parentId); - if (!source || !sourceModel.parentId && !sourceModel.comboId) { - return; - } - if (sourceModel.comboId === comboModel.id || sourceModel.parentId === comboModel.id) { - break; - } - sourceModel = source.getModel(); - } - sourceId = sourceModel.id; - if (targetId) { - var vedgeId = sourceId + "-" + targetId; - if (edgeWeightMap[vedgeId]) { - edgeWeightMap[vedgeId] += edge2.getModel().size || 1; - _this.updateItem(addedVEdges[vedgeId], { - size: edgeWeightMap[vedgeId] - }, false); - return; - } - var vedge = _this.addItem("vedge", { - source: sourceId, - target: targetId, - isVEdge: true - }, false); - edgeWeightMap[vedgeId] = edge2.getModel().size || 1; - addedVEdges[vedgeId] = vedge; - } - } else if (!cnodes.includes(source) && !ccombos.includes(source) && (cnodes.includes(target) || ccombos.includes(target)) || targetId === comboModel.id) { - if (edge2.getModel().isVEdge) { - _this.removeItem(edge2, false); - return; - } - var sourceModel = source.getModel(); - while (!source.isVisible()) { - source = _this.findById(sourceModel.comboId || sourceModel.parentId); - if (!source || !sourceModel.parentId && !sourceModel.comboId) { - return; - } - sourceModel = source.getModel(); - } - sourceId = sourceModel.id; - var targetModel = target.getModel(); - while (!target.isVisible()) { - target = _this.findById(targetModel.comboId || targetModel.parentId); - if (!target || !targetModel.parentId && !targetModel.comboId) { - return; - } - if (targetModel.comboId === comboModel.id || targetModel.parentId === comboModel.id) { - break; - } - targetModel = target.getModel(); - } - targetId = targetModel.id; - if (sourceId) { - var vedgeId = sourceId + "-" + targetId; - if (edgeWeightMap[vedgeId]) { - edgeWeightMap[vedgeId] += edge2.getModel().size || 1; - _this.updateItem(addedVEdges[vedgeId], { - size: edgeWeightMap[vedgeId] - }, false); - return; - } - var vedge = _this.addItem("vedge", { - target: targetId, - source: sourceId, - isVEdge: true - }, false); - edgeWeightMap[vedgeId] = edge2.getModel().size || 1; - addedVEdges[vedgeId] = vedge; - } - } else if ((cnodes.includes(source) || ccombos.includes(source)) && (cnodes.includes(target) || ccombos.includes(target))) { - if (source.isVisible() && target.isVisible()) { - edge2.show(); - } - } - }); - this.emit("aftercollapseexpandcombo", { - action: "expand", - item: combo - }); - }; - AbstractGraph2.prototype.collapseExpandCombo = function(combo) { - if (is_string_default(combo)) { - combo = this.findById(combo); - } - if (combo.getType && combo.getType() !== "combo") - return; - var comboModel = combo.getModel(); - var parentItem = this.findById(comboModel.parentId); - while (parentItem) { - var parentModel = parentItem.getModel(); - if (parentModel.collapsed) { - console.warn("Fail to expand the combo since it's ancestor combo is collapsed."); - parentItem = void 0; - return; - } - parentItem = this.findById(parentModel.parentId); - } - var collapsed = comboModel.collapsed; - if (collapsed) { - this.expandCombo(combo); - } else { - this.collapseCombo(combo); - } - this.updateCombo(combo); - }; - AbstractGraph2.prototype.sortCombos = function() { - var _this = this; - var comboSorted = this.get("comboSorted"); - if (comboSorted) - return; - this.set("comboSorted", true); - var depthMap = []; - var dataDepthMap = {}; - var comboTrees = this.get("comboTrees"); - (comboTrees || []).forEach(function(cTree) { - traverseTree(cTree, function(child) { - if (depthMap[child.depth]) - depthMap[child.depth].push(child.id); - else - depthMap[child.depth] = [child.id]; - dataDepthMap[child.id] = child.depth; - return true; - }); - }); - var edges = this.getEdges().concat(this.get("vedges")); - (edges || []).forEach(function(edgeItem) { - var edge2 = edgeItem.getModel(); - var sourceDepth = dataDepthMap[edge2.source] || 0; - var targetDepth2 = dataDepthMap[edge2.target] || 0; - var depth = Math.max(sourceDepth, targetDepth2); - if (depthMap[depth]) - depthMap[depth].push(edge2.id); - else - depthMap[depth] = [edge2.id]; - }); - depthMap.forEach(function(array) { - if (!array || !array.length) - return; - for (var i4 = array.length - 1; i4 >= 0; i4--) { - var item = _this.findById(array[i4]); - if (item) - item.toFront(); - } - }); - }; - AbstractGraph2.prototype.getNeighbors = function(node, type2) { - var item = node; - if (is_string_default(node)) { - item = this.findById(node); - } - return item.getNeighbors(type2); - }; - AbstractGraph2.prototype.getNodeDegree = function(node, type2, refresh) { - if (type2 === void 0) { - type2 = void 0; - } - if (refresh === void 0) { - refresh = false; - } - var item = node; - if (is_string_default(node)) { - item = this.findById(node); - } - var degrees = this.get("degrees"); - if (!degrees || refresh) { - degrees = degree_default(this.save()); - this.set("degrees", degrees); - } - var nodeDegrees = degrees[item.getID()]; - var res = 0; - if (!nodeDegrees) { - return 0; - } - switch (type2) { - case "in": - res = nodeDegrees.inDegree; - break; - case "out": - res = nodeDegrees.outDegree; - break; - case "all": - res = nodeDegrees; - break; - default: - res = nodeDegrees.degree; - break; - } - return res; - }; - AbstractGraph2.prototype.getUndoStack = function() { - return this.undoStack; - }; - AbstractGraph2.prototype.getRedoStack = function() { - return this.redoStack; - }; - AbstractGraph2.prototype.getStackData = function() { - if (!this.get("enabledStack")) { - return null; - } - return { - undoStack: this.undoStack.toArray(), - redoStack: this.redoStack.toArray() - }; - }; - AbstractGraph2.prototype.clearStack = function() { - if (this.get("enabledStack")) { - this.undoStack.clear(); - this.redoStack.clear(); - } - }; - AbstractGraph2.prototype.pushStack = function(action, data3, stackType) { - if (action === void 0) { - action = "update"; - } - if (stackType === void 0) { - stackType = "undo"; - } - if (!this.get("enabledStack")) { - console.warn("\u8BF7\u5148\u542F\u7528 undo & redo \u529F\u80FD\uFF0C\u5728\u5B9E\u4F8B\u5316 Graph \u65F6\u5019\u914D\u7F6E enabledStack: true !"); - return; - } - var stackData = data3 ? clone_default(data3) : { - before: {}, - after: clone_default(this.save()) - }; - if (stackType === "redo") { - this.redoStack.push({ - action, - data: stackData - }); - } else { - this.undoStack.push({ - action, - data: stackData - }); - } - this.emit("stackchange", { - undoStack: this.undoStack, - redoStack: this.redoStack - }); - }; - AbstractGraph2.prototype.getAdjMatrix = function(cache3, directed) { - if (cache3 === void 0) { - cache3 = true; - } - if (directed === void 0) - directed = this.get("directed"); - var currentAdjMatrix = this.get("adjMatrix"); - if (!currentAdjMatrix || !cache3) { - currentAdjMatrix = adjacent_matrix_default(this.save(), directed); - this.set("adjMatrix", currentAdjMatrix); - } - return currentAdjMatrix; - }; - AbstractGraph2.prototype.getShortestPathMatrix = function(cache3, directed) { - if (cache3 === void 0) { - cache3 = true; - } - if (directed === void 0) - directed = this.get("directed"); - var currentAdjMatrix = this.get("adjMatrix"); - var currentShourtestPathMatrix = this.get("shortestPathMatrix"); - if (!currentAdjMatrix || !cache3) { - currentAdjMatrix = adjacent_matrix_default(this.save(), directed); - this.set("adjMatrix", currentAdjMatrix); - } - if (!currentShourtestPathMatrix || !cache3) { - currentShourtestPathMatrix = floydWarshall_default(this.save(), directed); - this.set("shortestPathMatrix", currentShourtestPathMatrix); - } - return currentShourtestPathMatrix; - }; - AbstractGraph2.prototype.on = function(eventName, callback, once) { - return _super.prototype.on.call(this, eventName, callback, once); - }; - AbstractGraph2.prototype.destroy = function() { - this.clear(); - this.clearStack(); - this.get("itemController").destroy(); - this.get("modeController").destroy(); - this.get("viewController").destroy(); - this.get("stateController").destroy(); - this.get("canvas").destroy(); - this.cfg = null; - this.destroyed = true; - this.redoStack = null; - this.undoStack = null; - }; - AbstractGraph2.prototype.createHull = function(cfg) { - if (!cfg.members || cfg.members.length < 1) { - console.warn("Create hull failed! The members is empty."); - return; - } - var parent = this.get("hullGroup"); - var hullMap = this.get("hullMap"); - if (!hullMap) { - hullMap = {}; - this.set("hullMap", hullMap); - } - if (!parent || parent.get("destroyed")) { - parent = this.get("group").addGroup({ - id: "hullGroup" - }); - parent.toBack(); - this.set("hullGroup", parent); - } - if (hullMap[cfg.id]) { - console.warn("Existed hull id."); - return hullMap[cfg.id]; - } - var group2 = parent.addGroup({ - id: cfg.id + "-container" - }); - var hull = new hull_default(this, __assign(__assign({}, cfg), { - group: group2 - })); - var hullId = hull.id; - hullMap[hullId] = hull; - return hull; - }; - AbstractGraph2.prototype.getHulls = function() { - return this.get("hullMap"); - }; - AbstractGraph2.prototype.getHullById = function(hullId) { - return this.get("hullMap")[hullId]; - }; - AbstractGraph2.prototype.removeHull = function(hull) { - var hullInstance; - if (is_string_default(hull)) { - hullInstance = this.getHullById(hull); - } else { - hullInstance = hull; - } - var hullMap = this.get("hullMap"); - delete hullMap[hullInstance.id]; - hullInstance.destroy(); - }; - AbstractGraph2.prototype.removeHulls = function() { - var hulls = this.getHulls(); - if (!hulls || !Object.keys(hulls).length) - return; - Object.keys(hulls).forEach(function(key) { - var hull = hulls[key]; - hull.destroy(); - }); - this.set("hullMap", {}); - }; - return AbstractGraph2; -}(esm_default); -var graph_default = AbstractGraph; - -// node_modules/@antv/g6-core/es/element/shapeBase.js -function _typeof2(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof2 = function _typeof5(obj2) { - return typeof obj2; - }; - } else { - _typeof2 = function _typeof5(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof2(obj); -} -var transform10 = ext_exports.transform; -var CLS_SHAPE_SUFFIX = "-shape"; -var CLS_LABEL_SUFFIX = "-label"; -var ARROWS = ["startArrow", "endArrow"]; -var SHAPE_DEFAULT_ATTRS = { - lineWidth: 1, - stroke: void 0, - fill: void 0, - lineAppendWidth: 1, - opacity: void 0, - strokeOpacity: void 0, - fillOpacity: void 0, - x: 0, - y: 0, - r: 10, - width: 20, - height: 20, - shadowColor: void 0, - shadowBlur: 0, - shadowOffsetX: 0, - shadowOffsetY: 0 -}; -var PATH_SHAPE_DEFAULT_ATTRS = { - lineWidth: 1, - stroke: "#000", - lineDash: void 0, - startArrow: false, - endArrow: false, - opacity: void 0, - strokeOpacity: void 0, - fillOpacity: void 0, - shadowColor: void 0, - shadowBlur: 0, - shadowOffsetX: 0, - shadowOffsetY: 0 -}; -var SHAPES_DEFAULT_ATTRS = { - edge: PATH_SHAPE_DEFAULT_ATTRS, - node: SHAPE_DEFAULT_ATTRS, - combo: SHAPE_DEFAULT_ATTRS -}; -var CLS_LABEL_BG_SUFFIX = "-label-bg"; -var shapeBase = { - options: {}, - itemType: "", - type: "", - getCustomConfig: function getCustomConfig(cfg) { - return {}; - }, - getOptions: function getOptions(cfg) { - return deep_mix_default({ - labelCfg: { - style: { - fontFamily: typeof window !== "undefined" ? window.getComputedStyle(document.body, null).getPropertyValue("font-family") || "Arial, sans-serif" : "Arial, sans-serif" - } - }, - descriptionCfg: { - style: { - fontFamily: typeof window !== "undefined" ? window.getComputedStyle(document.body, null).getPropertyValue("font-family") || "Arial, sans-serif" : "Arial, sans-serif" - } - } - }, this.options, this.getCustomConfig(cfg) || {}, cfg); - }, - draw: function draw3(cfg, group2) { - var shape = this.drawShape(cfg, group2); - shape.set("className", this.itemType + CLS_SHAPE_SUFFIX); - if (cfg.label) { - var label17 = this.drawLabel(cfg, group2); - label17.set("className", this.itemType + CLS_LABEL_SUFFIX); - } - return shape; - }, - afterDraw: function afterDraw2(cfg, group2, keyShape) { - }, - drawShape: function drawShape2(cfg, group2) { - return null; - }, - drawLabel: function drawLabel(cfg, group2) { - var defaultLabelCfg3 = this.getOptions(cfg).labelCfg; - var labelCfg = defaultLabelCfg3 || {}; - var labelStyle = this.getLabelStyle(cfg, labelCfg, group2); - var rotate8 = labelStyle.rotate; - delete labelStyle.rotate; - var label17 = group2.addShape("text", { - attrs: labelStyle, - draggable: true, - className: "text-shape", - name: "text-shape" - }); - if (rotate8) { - var labelBBox = label17.getBBox(); - var labelMatrix = label17.getMatrix(); - if (!labelMatrix) { - labelMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - if (labelStyle.rotateCenter) { - switch (labelStyle.rotateCenter) { - case "center": - labelMatrix = transform10(labelMatrix, [["t", -labelBBox.width / 2, -labelBBox.height / 2], ["r", rotate8], ["t", labelBBox.width / 2, labelBBox.height / 2]]); - break; - case "lefttop": - labelMatrix = transform10(labelMatrix, [["t", -labelStyle.x, -labelStyle.y], ["r", rotate8], ["t", labelStyle.x, labelStyle.y]]); - break; - case "leftcenter": - labelMatrix = transform10(labelMatrix, [["t", -labelStyle.x, -labelStyle.y - labelBBox.height / 2], ["r", rotate8], ["t", labelStyle.x, labelStyle.y + labelBBox.height / 2]]); - break; - default: - labelMatrix = transform10(labelMatrix, [["t", -labelBBox.width / 2, -labelBBox.height / 2], ["r", rotate8], ["t", labelBBox.width / 2, labelBBox.height / 2]]); - break; - } - } else { - labelMatrix = transform10(labelMatrix, [["t", -labelStyle.x, -labelStyle.y - labelBBox.height / 2], ["r", rotate8], ["t", labelStyle.x, labelStyle.y + labelBBox.height / 2]]); - } - label17.setMatrix(labelMatrix); - } - if (labelStyle.background) { - var rect3 = this.drawLabelBg(cfg, group2, label17); - var labelBgClassname = this.itemType + CLS_LABEL_BG_SUFFIX; - rect3.set("classname", labelBgClassname); - label17.toFront(); - } - return label17; - }, - drawLabelBg: function drawLabelBg(cfg, group2, label17) { - var defaultLabelCfg3 = this.options.labelCfg; - var labelCfg = mix({}, defaultLabelCfg3, cfg.labelCfg); - var style = this.getLabelBgStyleByPosition(label17, cfg, labelCfg, group2); - var rect3 = group2.addShape("rect", { - name: "text-bg-shape", - attrs: style - }); - return rect3; - }, - getLabelStyleByPosition: function getLabelStyleByPosition(cfg, labelCfg, group2) { - return { - text: cfg.label - }; - }, - getLabelBgStyleByPosition: function getLabelBgStyleByPosition(label17, cfg, labelCfg, group2) { - return {}; - }, - getLabelStyle: function getLabelStyle(cfg, labelCfg, group2) { - var calculateStyle = this.getLabelStyleByPosition(cfg, labelCfg, group2); - var attrName = this.itemType + "Label"; - var defaultStyle = global_default[attrName] ? global_default[attrName].style : null; - var labelStyle = __assign(__assign(__assign({}, defaultStyle), calculateStyle), labelCfg.style); - return labelStyle; - }, - getShapeStyle: function getShapeStyle(cfg) { - return cfg.style; - }, - update: function update2(cfg, item) { - this.updateShapeStyle(cfg, item); - this.updateLabel(cfg, item); - }, - updateShapeStyle: function updateShapeStyle(cfg, item) { - var group2 = item.getContainer(); - var shape = item.getKeyShape(); - var shapeStyle = mix({}, shape.attr(), cfg.style); - var _loop_1 = function _loop_12(key2) { - var _a6; - var style = shapeStyle[key2]; - if (is_plain_object_default(style)) { - var subShape = group2.find(function(element) { - return element.get("name") === key2; - }); - if (subShape) { - subShape.attr(style); - } - } else { - shape.attr((_a6 = {}, _a6[key2] = style, _a6)); - } - }; - for (var key in shapeStyle) { - _loop_1(key); - } - }, - updateLabel: function updateLabel2(cfg, item) { - var group2 = item.getContainer(); - var defaultLabelCfg3 = this.getOptions({}).labelCfg; - var labelClassName = this.itemType + CLS_LABEL_SUFFIX; - var label17 = group2.find(function(element) { - return element.get("className") === labelClassName; - }); - var labelBgClassname = this.itemType + CLS_LABEL_BG_SUFFIX; - var labelBg = group2.find(function(element) { - return element.get("classname") === labelBgClassname; - }); - if (cfg.label || cfg.label === "") { - if (!label17) { - var newLabel = this.drawLabel(cfg, group2); - newLabel.set("className", labelClassName); - } else { - var currentLabelCfg = {}; - if (item.getModel) { - currentLabelCfg = item.getModel().labelCfg; - } - var labelCfg = deep_mix_default({}, defaultLabelCfg3, currentLabelCfg, cfg.labelCfg); - var calculateStyle = this.getLabelStyleByPosition(cfg, labelCfg, group2); - var cfgStyle = cfg.labelCfg ? cfg.labelCfg.style : void 0; - var cfgBgStyle = labelCfg.style && labelCfg.style.background; - var labelStyle = __assign(__assign(__assign({}, label17.attr()), calculateStyle), cfgStyle); - var rotate8 = labelStyle.rotate; - delete labelStyle.rotate; - if (rotate8) { - var rotateMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - rotateMatrix = transform10(rotateMatrix, [["t", -labelStyle.x, -labelStyle.y], ["r", rotate8], ["t", labelStyle.x, labelStyle.y]]); - label17.resetMatrix(); - label17.attr(__assign(__assign({}, labelStyle), { - matrix: rotateMatrix - })); - } else { - label17.resetMatrix(); - label17.attr(labelStyle); - } - if (!labelBg) { - if (labelStyle.background) { - labelBg = this.drawLabelBg(cfg, group2, label17); - labelBg.set("classname", labelBgClassname); - label17.toFront(); - } - } else if (labelStyle.background) { - var calculateBgStyle = this.getLabelBgStyleByPosition(label17, cfg, labelCfg, group2); - var labelBgStyle = __assign(__assign({}, calculateBgStyle), cfgBgStyle); - labelBg.resetMatrix(); - if (rotate8) { - var bgRotateMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - bgRotateMatrix = transform10(bgRotateMatrix, [["t", -labelBgStyle.x, -labelBgStyle.y], ["r", rotate8], ["t", labelBgStyle.x, labelBgStyle.y]]); - labelBgStyle.matrix = bgRotateMatrix; - } - labelBg.attr(labelBgStyle); - } else { - group2.removeChild(labelBg); - } - } - } - }, - afterUpdate: function afterUpdate2(cfg, item) { - }, - setState: function setState3(name, value2, item) { - var _a6, _b; - var shape = item.get("keyShape"); - if (!shape) { - return; - } - var type2 = item.getType(); - var stateName = is_boolean_default(value2) ? name : name + ":" + value2; - var shapeStateStyle = this.getStateStyle(stateName, item); - var itemStateStyle = item.getStateStyle(stateName); - if (!itemStateStyle && !shapeStateStyle) { - return; - } - var styles = mix({}, itemStateStyle || shapeStateStyle); - var group2 = item.getContainer(); - var keptAttrs = { - x: 1, - y: 1, - cx: 1, - cy: 1 - }; - if (type2 === "combo") { - keptAttrs.r = 1; - keptAttrs.width = 1; - keptAttrs.height = 1; - } - if (value2) { - var _loop_2 = function _loop_22(key2) { - var _c; - var style = styles[key2]; - if (is_plain_object_default(style) && !ARROWS.includes(key2)) { - var subShape = group2.find(function(element) { - return element.get("name") === key2; - }); - if (subShape) { - subShape.attr(style); - } - } else { - shape.attr((_c = {}, _c[key2] = style, _c)); - } - }; - for (var key in styles) { - _loop_2(key); - } - } else { - var enableStatesStyle = cloneBesidesImg(item.getCurrentStatesStyle()); - var model = item.getModel(); - var originStyle_1 = mix({}, model.style, cloneBesidesImg(item.getOriginStyle())); - var keyShapeName_1 = shape.get("name"); - var shapeAttrs_1 = shape.attr(); - var keyShapeStyles_1 = {}; - Object.keys(shapeAttrs_1).forEach(function(key2) { - if (key2 === "img") - return; - var attr = shapeAttrs_1[key2]; - if (attr && _typeof2(attr) === "object") { - keyShapeStyles_1[key2] = clone_default(attr); - } else { - keyShapeStyles_1[key2] = attr; - } - }); - var filtetDisableStatesStyle = {}; - var _loop_3 = function _loop_32(p5) { - var style = styles[p5]; - if (is_plain_object_default(style) && !ARROWS.includes(p5)) { - var subShape_1 = group2.find(function(element) { - return element.get("name") === p5; - }); - if (subShape_1) { - var subShapeStyles_1 = clone_default(subShape_1.attr()); - each_default(style, function(v3, key2) { - if (p5 === keyShapeName_1 && keyShapeStyles_1[key2] && !keptAttrs[key2]) { - delete keyShapeStyles_1[key2]; - var value_1 = originStyle_1[p5][key2] || SHAPES_DEFAULT_ATTRS[type2][key2]; - shape.attr(key2, value_1); - } else if (subShapeStyles_1[key2] || subShapeStyles_1[key2] === 0) { - delete subShapeStyles_1[key2]; - var value_2 = originStyle_1[p5][key2] || SHAPES_DEFAULT_ATTRS[type2][key2]; - subShape_1.attr(key2, value_2); - } - }); - filtetDisableStatesStyle[p5] = subShapeStyles_1; - } - } else { - if (keyShapeStyles_1[p5] && !keptAttrs[p5]) { - delete keyShapeStyles_1[p5]; - var value_3 = originStyle_1[p5] || (originStyle_1[keyShapeName_1] ? originStyle_1[keyShapeName_1][p5] : void 0) || SHAPES_DEFAULT_ATTRS[type2][p5]; - shape.attr(p5, value_3); - } - } - }; - for (var p4 in styles) { - _loop_3(p4); - } - if (!keyShapeName_1) { - mix(filtetDisableStatesStyle, keyShapeStyles_1); - } else { - filtetDisableStatesStyle[keyShapeName_1] = keyShapeStyles_1; - } - for (var key in enableStatesStyle) { - if (keptAttrs[key]) - continue; - var enableStyle = enableStatesStyle[key]; - if (!is_plain_object_default(enableStyle) || ARROWS.includes(key)) { - if (!keyShapeName_1) { - mix(originStyle_1, (_a6 = {}, _a6[key] = enableStyle, _a6)); - } else { - mix(originStyle_1[keyShapeName_1], (_b = {}, _b[key] = enableStyle, _b)); - delete originStyle_1[key]; - } - delete enableStatesStyle[key]; - } - } - var originstyles = {}; - deep_mix_default(originstyles, originStyle_1, filtetDisableStatesStyle, enableStatesStyle); - var keyShapeSetted = false; - var _loop_4 = function _loop_42(originKey2) { - var _d, _e; - var style = originstyles[originKey2]; - if (is_plain_object_default(style) && !ARROWS.includes(originKey2)) { - var subShape = group2.find(function(element) { - return element.get("name") === originKey2; - }); - if (subShape) { - if (originKey2 === keyShapeName_1) { - if (type2 === "combo") { - delete style.r; - delete style.width; - delete style.height; - } - keyShapeSetted = true; - } - subShape.attr(style); - } - } else if (!keyShapeSetted) { - var value_4 = style || SHAPES_DEFAULT_ATTRS[type2][originKey2]; - if (type2 === "combo") { - if (!keyShapeName_1) { - shape.attr((_d = {}, _d[originKey2] = value_4, _d)); - } - } else { - shape.attr((_e = {}, _e[originKey2] = value_4, _e)); - } - } - }; - for (var originKey in originstyles) { - _loop_4(originKey); - } - } - }, - getStateStyle: function getStateStyle(name, item) { - var model = item.getModel(); - var type2 = item.getType(); - var _a6 = this.getOptions(model), stateStyles = _a6.stateStyles, _b = _a6.style, style = _b === void 0 ? {} : _b; - var modelStateStyle = model.stateStyles ? model.stateStyles[name] : stateStyles && stateStyles[name]; - if (type2 === "combo") { - return clone_default(modelStateStyle); - } - return mix({}, style, modelStateStyle); - }, - getControlPoints: function getControlPoints3(cfg) { - return cfg.controlPoints; - }, - getAnchorPoints: function getAnchorPoints3(cfg) { - var anchorPoints = this.getOptions(cfg).anchorPoints; - return anchorPoints; - } -}; - -// node_modules/@antv/g6-core/es/element/node.js -var singleNode = { - itemType: "node", - shapeType: "single-node", - labelPosition: "center", - offset: global_default.nodeLabel.offset, - getSize: function getSize2(cfg) { - var size2 = cfg.size || this.getOptions({}).size || global_default.defaultNode.size; - if (is_array_default(size2) && size2.length === 1) { - size2 = [size2[0], size2[0]]; - } - if (!is_array_default(size2)) { - size2 = [size2, size2]; - } - return size2; - }, - getLabelStyleByPosition: function getLabelStyleByPosition2(cfg, labelCfg) { - var labelPosition = labelCfg.position || this.labelPosition; - if (labelPosition === "center") { - return { - x: 0, - y: 0, - text: cfg.label - }; - } - var offset = labelCfg.offset; - if (is_nil_default(offset)) { - offset = this.offset; - } - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - var style; - switch (labelPosition) { - case "top": - style = { - x: 0, - y: 0 - height / 2 - offset, - textBaseline: "bottom" - }; - break; - case "bottom": - style = { - x: 0, - y: height / 2 + offset, - textBaseline: "top" - }; - break; - case "left": - style = { - x: 0 - width2 / 2 - offset, - y: 0, - textAlign: "right" - }; - break; - default: - style = { - x: width2 / 2 + offset, - y: 0, - textAlign: "left" - }; - break; - } - style.text = cfg.label; - return style; - }, - getLabelBgStyleByPosition: function getLabelBgStyleByPosition2(label17, cfg, labelCfg, group2) { - if (!label17) { - return {}; - } - var bbox = label17.getBBox(); - var backgroundStyle = labelCfg.style && labelCfg.style.background; - if (!backgroundStyle) { - return {}; - } - var padding3 = formatPadding2(backgroundStyle.padding); - var backgroundWidth = bbox.width + padding3[1] + padding3[3]; - var backgroundHeight = bbox.height + padding3[0] + padding3[2]; - var offset = labelCfg.offset; - if (is_nil_default(offset)) { - offset = this.offset; - } - var style; - style = { - x: bbox.minX - padding3[3], - y: bbox.minY - padding3[0] - }; - style = __assign(__assign(__assign({}, style), backgroundStyle), { - width: backgroundWidth, - height: backgroundHeight - }); - return style; - }, - drawShape: function drawShape3(cfg, group2) { - var shapeType = this.shapeType; - var style = this.getShapeStyle(cfg); - var shape = group2.addShape(shapeType, { - attrs: style, - draggable: true, - name: "node-shape" - }); - return shape; - }, - updateLinkPoints: function updateLinkPoints(cfg, group2) { - var defaultLinkPoints = this.getOptions(cfg).linkPoints; - var markLeft = group2.find(function(element) { - return element.get("className") === "link-point-left"; - }); - var markRight = group2.find(function(element) { - return element.get("className") === "link-point-right"; - }); - var markTop = group2.find(function(element) { - return element.get("className") === "link-point-top"; - }); - var markBottom = group2.find(function(element) { - return element.get("className") === "link-point-bottom"; - }); - var currentLinkPoints; - if (markLeft) { - currentLinkPoints = markLeft.attr(); - } - if (markRight && !currentLinkPoints) { - currentLinkPoints = markRight.attr(); - } - if (markTop && !currentLinkPoints) { - currentLinkPoints = markTop.attr(); - } - if (markBottom && !currentLinkPoints) { - currentLinkPoints = markBottom.attr(); - } - if (!currentLinkPoints) - currentLinkPoints = defaultLinkPoints; - var linkPoints = mix({}, currentLinkPoints, cfg.linkPoints); - var markFill = linkPoints.fill, markStroke = linkPoints.stroke, borderWidth = linkPoints.lineWidth; - var markSize = linkPoints.size / 2; - if (!markSize) - markSize = linkPoints.r; - var _a6 = cfg.linkPoints ? cfg.linkPoints : { - left: void 0, - right: void 0, - top: void 0, - bottom: void 0 - }, left2 = _a6.left, right2 = _a6.right, top = _a6.top, bottom = _a6.bottom; - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - var styles = { - r: markSize, - fill: markFill, - stroke: markStroke, - lineWidth: borderWidth - }; - if (markLeft) { - if (!left2 && left2 !== void 0) { - markLeft.remove(); - } else { - markLeft.attr(__assign(__assign({}, styles), { - x: -width2 / 2, - y: 0 - })); - } - } else if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: -width2 / 2, - y: 0 - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - if (markRight) { - if (!right2 && right2 !== void 0) { - markRight.remove(); - } - markRight.attr(__assign(__assign({}, styles), { - x: width2 / 2, - y: 0 - })); - } else if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: width2 / 2, - y: 0 - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - if (markTop) { - if (!top && top !== void 0) { - markTop.remove(); - } - markTop.attr(__assign(__assign({}, styles), { - x: 0, - y: -height / 2 - })); - } else if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: 0, - y: -height / 2 - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - if (markBottom) { - if (!bottom && bottom !== void 0) { - markBottom.remove(); - } else { - markBottom.attr(__assign(__assign({}, styles), { - x: 0, - y: height / 2 - })); - } - } else if (bottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: 0, - y: height / 2 - }), - className: "link-point-bottom", - name: "link-point-bottom", - isAnchorPoint: true - }); - } - }, - updateShape: function updateShape(cfg, item, keyShapeStyle, hasIcon) { - var keyShape = item.get("keyShape"); - keyShape.attr(__assign({}, keyShapeStyle)); - this.updateLabel(cfg, item); - if (hasIcon) { - this.updateIcon(cfg, item); - } - }, - updateIcon: function updateIcon(cfg, item) { - var _this = this; - var group2 = item.getContainer(); - var icon = this.getOptions(cfg).icon; - var show = (cfg.icon ? cfg.icon : { - show: void 0 - }).show; - var iconShape = group2.find(function(element) { - return element.get("className") === _this.type + "-icon"; - }); - if (iconShape) { - if (show || show === void 0) { - var iconConfig = mix({}, iconShape.attr(), icon); - var w4 = iconConfig.width, h3 = iconConfig.height; - iconShape.attr(__assign(__assign({}, iconConfig), { - x: -w4 / 2, - y: -h3 / 2 - })); - } else { - iconShape.remove(); - } - } else if (show) { - var w4 = icon.width, h3 = icon.height; - group2.addShape("image", { - attrs: __assign(__assign({}, icon), { - x: -w4 / 2, - y: -h3 / 2 - }), - className: this.type + "-icon", - name: this.type + "-icon" - }); - var labelShape = group2.find(function(element) { - return element.get("className") === "node-label"; - }); - if (labelShape) { - labelShape.toFront(); - } - } - } -}; -var singleNodeDef = __assign(__assign({}, shapeBase), singleNode); -shape_default4.registerNode("single-node", singleNodeDef); - -// node_modules/@antv/g6-core/es/element/edge.js -var CLS_SHAPE = "edge-shape"; -function revertAlign(labelPosition) { - var textAlign = labelPosition; - if (labelPosition === "start") { - textAlign = "end"; - } else if (labelPosition === "end") { - textAlign = "start"; - } - return textAlign; -} -var singleEdge = { - itemType: "edge", - labelPosition: "center", - refX: 0, - refY: 0, - labelAutoRotate: false, - options: { - size: global_default.defaultEdge.size, - style: { - x: 0, - y: 0, - stroke: global_default.defaultEdge.style.stroke, - lineAppendWidth: global_default.defaultEdge.style.lineAppendWidth - }, - labelCfg: { - style: { - fill: global_default.edgeLabel.style.fill, - fontSize: global_default.edgeLabel.style.fontSize - } - }, - stateStyles: __assign({}, global_default.edgeStateStyles) - }, - getPath: function getPath5(points) { - var path = []; - each_default(points, function(point2, index2) { - if (index2 === 0) { - path.push(["M", point2.x, point2.y]); - } else { - path.push(["L", point2.x, point2.y]); - } - }); - return path; - }, - getShapeStyle: function getShapeStyle2(cfg) { - var defaultStyle = this.options.style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle, cfg.style); - var size2 = cfg.size || global_default.defaultEdge.size; - cfg = this.getPathPoints(cfg); - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - var controlPoints = this.getControlPoints(cfg); - var points = [startPoint]; - if (controlPoints) { - points = points.concat(controlPoints); - } - points.push(endPoint); - var path = this.getPath(points); - var styles = mix({}, global_default.defaultEdge.style, { - stroke: global_default.defaultEdge.color, - lineWidth: size2, - path - }, style); - return styles; - }, - updateShapeStyle: function updateShapeStyle2(cfg, item) { - var group2 = item.getContainer(); - var strokeStyle = { - stroke: cfg.color - }; - var shape = group2.find(function(element) { - return element.get("className") === "edge-shape"; - }) || item.getKeyShape(); - var size2 = cfg.size; - cfg = this.getPathPoints(cfg); - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - var controlPoints = this.getControlPoints(cfg); - var points = [startPoint]; - if (controlPoints) { - points = points.concat(controlPoints); - } - points.push(endPoint); - var currentAttr = shape.attr(); - var previousStyle = mix({}, strokeStyle, currentAttr, cfg.style); - var source = cfg.sourceNode; - var target = cfg.targetNode; - var routeCfg = { - radius: previousStyle.radius - }; - if (!controlPoints) { - routeCfg = { - source, - target, - offset: previousStyle.offset, - radius: previousStyle.radius - }; - } - if (currentAttr.endArrow && previousStyle.endArrow === false) { - cfg.style.endArrow = { - path: "" - }; - } - if (currentAttr.startArrow && previousStyle.startArrow === false) { - } - var path = this.getPath(points, routeCfg); - var style = mix(strokeStyle, shape.attr(), { - lineWidth: size2, - path - }, cfg.style); - if (shape) { - shape.attr(style); - } - }, - getLabelStyleByPosition: function getLabelStyleByPosition3(cfg, labelCfg, group2) { - var labelPosition = labelCfg.position || this.labelPosition; - var style = {}; - var pathShape = group2 && group2.find(function(element) { - return element.get("className") === CLS_SHAPE; - }); - var pointPercent; - if (labelPosition === "start") { - pointPercent = 0; - } else if (labelPosition === "end") { - pointPercent = 1; - } else { - pointPercent = 0.5; - } - var offsetX = labelCfg.refX || this.refX; - var offsetY = labelCfg.refY || this.refY; - if (cfg.startPoint.x === cfg.endPoint.x && cfg.startPoint.y === cfg.endPoint.y) { - style.x = cfg.startPoint.x + offsetX; - style.y = cfg.startPoint.y + offsetY; - style.text = cfg.label; - return style; - } - var autoRotate; - if (is_nil_default(labelCfg.autoRotate)) - autoRotate = this.labelAutoRotate; - else - autoRotate = labelCfg.autoRotate; - var offsetStyle = getLabelPosition(pathShape, pointPercent, offsetX, offsetY, autoRotate); - style.x = offsetStyle.x; - style.y = offsetStyle.y; - style.rotate = offsetStyle.rotate; - style.textAlign = this._getTextAlign(labelPosition, offsetStyle.angle); - style.text = cfg.label; - return style; - }, - getLabelBgStyleByPosition: function getLabelBgStyleByPosition3(label17, cfg, labelCfg, group2) { - if (!label17) { - return {}; - } - var bbox = label17.getBBox(); - var backgroundStyle = labelCfg.style && labelCfg.style.background; - if (!backgroundStyle) { - return {}; - } - var padding3 = backgroundStyle.padding; - var backgroundWidth = bbox.width + padding3[1] + padding3[3]; - var backgroundHeight = bbox.height + padding3[0] + padding3[2]; - var labelPosition = labelCfg.position || this.labelPosition; - var style = __assign(__assign({}, backgroundStyle), { - width: backgroundWidth, - height: backgroundHeight, - x: bbox.minX - padding3[2], - y: bbox.minY - padding3[0], - rotate: 0 - }); - var autoRotate; - if (is_nil_default(labelCfg.autoRotate)) - autoRotate = this.labelAutoRotate; - else - autoRotate = labelCfg.autoRotate; - var pathShape = group2 && group2.find(function(element) { - return element.get("className") === CLS_SHAPE; - }); - var pointPercent; - if (labelPosition === "start") { - pointPercent = 0; - } else if (labelPosition === "end") { - pointPercent = 1; - } else { - pointPercent = 0.5; - } - var offsetX = labelCfg.refX || this.refX; - var offsetY = labelCfg.refY || this.refY; - if (cfg.startPoint.x === cfg.endPoint.x && cfg.startPoint.y === cfg.endPoint.y) { - style.x = cfg.startPoint.x + offsetX - backgroundWidth / 2; - style.y = cfg.startPoint.y + offsetY - backgroundHeight / 2; - return style; - } - var offsetStyle = getLabelPosition(pathShape, pointPercent, offsetX - backgroundWidth / 2, offsetY + backgroundHeight / 2, autoRotate); - var rad = offsetStyle.angle; - if (rad > 1 / 2 * Math.PI && rad < 3 * 1 / 2 * Math.PI) { - offsetStyle = getLabelPosition(pathShape, pointPercent, offsetX + backgroundWidth / 2, offsetY + backgroundHeight / 2, autoRotate); - } - if (autoRotate) { - style.x = offsetStyle.x; - style.y = offsetStyle.y; - } - style.rotate = offsetStyle.rotate; - return style; - }, - _getTextAlign: function _getTextAlign(labelPosition, angle3) { - var textAlign = "center"; - if (!angle3) { - return labelPosition; - } - angle3 = angle3 % (Math.PI * 2); - if (labelPosition !== "center") { - if (angle3 >= 0 && angle3 <= Math.PI / 2 || angle3 >= 3 / 2 * Math.PI && angle3 < 2 * Math.PI) { - textAlign = labelPosition; - } else { - textAlign = revertAlign(labelPosition); - } - } - return textAlign; - }, - getControlPoints: function getControlPoints4(cfg) { - return cfg.controlPoints; - }, - getPathPoints: function getPathPoints2(cfg) { - return cfg; - }, - drawShape: function drawShape4(cfg, group2) { - var shapeStyle = this.getShapeStyle(cfg); - var shape = group2.addShape("path", { - className: CLS_SHAPE, - name: CLS_SHAPE, - attrs: shapeStyle - }); - return shape; - }, - drawLabel: function drawLabel2(cfg, group2) { - var defaultLabelCfg3 = this.options.labelCfg; - var defaultFontFamily; - if (typeof window !== "undefined") - defaultFontFamily = window.getComputedStyle(document.body, null).getPropertyValue("font-family") || "Arial, sans-serif"; - else - defaultFontFamily = "Arial, sans-serif"; - var labelCfg = deep_mix_default({ - fontFamily: defaultFontFamily - }, defaultLabelCfg3, cfg.labelCfg); - var labelStyle = this.getLabelStyle(cfg, labelCfg, group2); - var rotate8 = labelStyle.rotate; - delete labelStyle.rotate; - var label17 = group2.addShape("text", { - attrs: labelStyle, - name: "text-shape" - }); - if (rotate8) { - label17.rotateAtStart(rotate8); - } - if (labelStyle.background) { - var rect3 = this.drawLabelBg(cfg, group2, label17); - var labelBgClassname = this.itemType + CLS_LABEL_BG_SUFFIX; - rect3.set("classname", labelBgClassname); - label17.toFront(); - } - return label17; - }, - drawLabelBg: function drawLabelBg2(cfg, group2, label17) { - var defaultLabelCfg3 = this.options.labelCfg; - var labelCfg = deep_mix_default({}, defaultLabelCfg3, cfg.labelCfg); - var labelStyle = this.getLabelStyle(cfg, labelCfg, group2); - var rotate8 = labelStyle.rotate; - var style = this.getLabelBgStyleByPosition(label17, cfg, labelCfg, group2); - delete style.rotate; - var rect3 = group2.addShape("rect", { - name: "text-bg-shape", - attrs: style - }); - if (rotate8) - rect3.rotateAtStart(rotate8); - return rect3; - } -}; -var singleEdgeDef = __assign(__assign({}, shapeBase), singleEdge); -shape_default4.registerEdge("single-edge", singleEdgeDef); -shape_default4.registerEdge("line", { - getControlPoints: function getControlPoints5() { - return void 0; - } -}, "single-edge"); -shape_default4.registerEdge("spline", { - getPath: function getPath6(points) { - var path = getSpline2(points); - return path; - } -}, "single-edge"); -shape_default4.registerEdge("arc", { - curveOffset: 20, - clockwise: 1, - getControlPoints: function getControlPoints6(cfg) { - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - var midPoint = { - x: (startPoint.x + endPoint.x) / 2, - y: (startPoint.y + endPoint.y) / 2 - }; - var center2; - var arcPoint; - if (cfg.controlPoints !== void 0) { - arcPoint = cfg.controlPoints[0]; - center2 = getCircleCenterByPoints(startPoint, arcPoint, endPoint); - if (startPoint.x <= endPoint.x && startPoint.y > endPoint.y) { - this.clockwise = center2.x > arcPoint.x ? 0 : 1; - } else if (startPoint.x <= endPoint.x && startPoint.y < endPoint.y) { - this.clockwise = center2.x > arcPoint.x ? 1 : 0; - } else if (startPoint.x > endPoint.x && startPoint.y <= endPoint.y) { - this.clockwise = center2.y < arcPoint.y ? 0 : 1; - } else { - this.clockwise = center2.y < arcPoint.y ? 1 : 0; - } - if ((arcPoint.x - startPoint.x) / (arcPoint.y - startPoint.y) === (endPoint.x - startPoint.x) / (endPoint.y - startPoint.y)) { - return []; - } - } else { - if (cfg.curveOffset === void 0) { - cfg.curveOffset = this.curveOffset; - } - if (is_array_default(cfg.curveOffset)) { - cfg.curveOffset = cfg.curveOffset[0]; - } - if (cfg.curveOffset < 0) { - this.clockwise = 0; - } else { - this.clockwise = 1; - } - var vec = { - x: endPoint.x - startPoint.x, - y: endPoint.y - startPoint.y - }; - var edgeAngle = Math.atan2(vec.y, vec.x); - arcPoint = { - x: cfg.curveOffset * Math.cos(-Math.PI / 2 + edgeAngle) + midPoint.x, - y: cfg.curveOffset * Math.sin(-Math.PI / 2 + edgeAngle) + midPoint.y - }; - center2 = getCircleCenterByPoints(startPoint, arcPoint, endPoint); - } - var radius = distance10(startPoint, center2); - var controlPoints = [{ - x: radius, - y: radius - }]; - return controlPoints; - }, - getPath: function getPath7(points) { - var path = []; - path.push(["M", points[0].x, points[0].y]); - if (points.length === 2) { - path.push(["L", points[1].x, points[1].y]); - } else { - path.push(["A", points[1].x, points[1].y, 0, 0, this.clockwise, points[2].x, points[2].y]); - } - return path; - } -}, "single-edge"); -shape_default4.registerEdge("quadratic", { - curvePosition: 0.5, - curveOffset: -20, - getControlPoints: function getControlPoints7(cfg) { - var controlPoints = cfg.controlPoints; - if (!controlPoints || !controlPoints.length) { - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - if (cfg.curveOffset === void 0) - cfg.curveOffset = this.curveOffset; - if (cfg.curvePosition === void 0) - cfg.curvePosition = this.curvePosition; - if (is_array_default(this.curveOffset)) - cfg.curveOffset = cfg.curveOffset[0]; - if (is_array_default(this.curvePosition)) - cfg.curvePosition = cfg.curveOffset[0]; - var innerPoint = getControlPoint(startPoint, endPoint, cfg.curvePosition, cfg.curveOffset); - controlPoints = [innerPoint]; - } - return controlPoints; - }, - getPath: function getPath8(points) { - var path = []; - path.push(["M", points[0].x, points[0].y]); - path.push(["Q", points[1].x, points[1].y, points[2].x, points[2].y]); - return path; - } -}, "single-edge"); -shape_default4.registerEdge("cubic", { - curvePosition: [1 / 2, 1 / 2], - curveOffset: [-20, 20], - getControlPoints: function getControlPoints8(cfg) { - var controlPoints = cfg.controlPoints; - if (cfg.curveOffset === void 0) - cfg.curveOffset = this.curveOffset; - if (cfg.curvePosition === void 0) - cfg.curvePosition = this.curvePosition; - if (is_number_default(cfg.curveOffset)) - cfg.curveOffset = [cfg.curveOffset, -cfg.curveOffset]; - if (is_number_default(cfg.curvePosition)) - cfg.curvePosition = [cfg.curvePosition, 1 - cfg.curvePosition]; - if (!controlPoints || !controlPoints.length || controlPoints.length < 2) { - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - var innerPoint1 = getControlPoint(startPoint, endPoint, cfg.curvePosition[0], cfg.curveOffset[0]); - var innerPoint2 = getControlPoint(startPoint, endPoint, cfg.curvePosition[1], cfg.curveOffset[1]); - controlPoints = [innerPoint1, innerPoint2]; - } - return controlPoints; - }, - getPath: function getPath9(points) { - var path = []; - path.push(["M", points[0].x, points[0].y]); - path.push(["C", points[1].x, points[1].y, points[2].x, points[2].y, points[3].x, points[3].y]); - return path; - } -}, "single-edge"); -shape_default4.registerEdge("cubic-vertical", { - curvePosition: [1 / 2, 1 / 2], - minCurveOffset: [0, 0], - curveOffset: void 0, - getControlPoints: function getControlPoints9(cfg) { - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - if (cfg.curvePosition === void 0) - cfg.curvePosition = this.curvePosition; - if (cfg.curveOffset === void 0) - cfg.curveOffset = this.curveOffset; - if (cfg.minCurveOffset === void 0) - cfg.minCurveOffset = this.minCurveOffset; - if (is_number_default(cfg.curveOffset)) - cfg.curveOffset = [cfg.curveOffset, -cfg.curveOffset]; - if (is_number_default(cfg.minCurveOffset)) - cfg.minCurveOffset = [cfg.minCurveOffset, -cfg.minCurveOffset]; - if (is_number_default(cfg.curvePosition)) - cfg.curvePosition = [cfg.curvePosition, 1 - cfg.curvePosition]; - var yDist = endPoint.y - startPoint.y; - var curveOffset = [0, 0]; - if (cfg.curveOffset) { - curveOffset = cfg.curveOffset; - } else if (Math.abs(yDist) < Math.abs(cfg.minCurveOffset[0])) { - curveOffset = cfg.minCurveOffset; - } - var innerPoint1 = { - x: startPoint.x, - y: startPoint.y + yDist * this.curvePosition[0] + curveOffset[0] - }; - var innerPoint2 = { - x: endPoint.x, - y: endPoint.y - yDist * this.curvePosition[1] + curveOffset[1] - }; - return [innerPoint1, innerPoint2]; - } -}, "cubic"); -shape_default4.registerEdge("cubic-horizontal", { - curvePosition: [1 / 2, 1 / 2], - minCurveOffset: [0, 0], - curveOffset: void 0, - getControlPoints: function getControlPoints10(cfg) { - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - if (cfg.curvePosition === void 0) - cfg.curvePosition = this.curvePosition; - if (cfg.curveOffset === void 0) - cfg.curveOffset = this.curveOffset; - if (cfg.minCurveOffset === void 0) - cfg.minCurveOffset = this.minCurveOffset; - if (is_number_default(cfg.curveOffset)) - cfg.curveOffset = [cfg.curveOffset, -cfg.curveOffset]; - if (is_number_default(cfg.minCurveOffset)) - cfg.minCurveOffset = [cfg.minCurveOffset, -cfg.minCurveOffset]; - if (is_number_default(cfg.curvePosition)) - cfg.curvePosition = [cfg.curvePosition, 1 - cfg.curvePosition]; - var xDist = endPoint.x - startPoint.x; - var curveOffset = [0, 0]; - if (cfg.curveOffset) { - curveOffset = cfg.curveOffset; - } else if (Math.abs(xDist) < Math.abs(cfg.minCurveOffset[0])) { - curveOffset = cfg.minCurveOffset; - } - var innerPoint1 = { - x: startPoint.x + xDist * this.curvePosition[0] + curveOffset[0], - y: startPoint.y - }; - var innerPoint2 = { - x: endPoint.x - xDist * this.curvePosition[1] + curveOffset[1], - y: endPoint.y - }; - var controlPoints = [innerPoint1, innerPoint2]; - return controlPoints; - } -}, "cubic"); -shape_default4.registerEdge("loop", { - getPathPoints: function getPathPoints3(cfg) { - return getLoopCfgs(cfg); - }, - getControlPoints: function getControlPoints11(cfg) { - return cfg.controlPoints; - }, - afterDraw: function afterDraw3(cfg) { - cfg.controlPoints = void 0; - }, - afterUpdate: function afterUpdate3(cfg) { - cfg.controlPoints = void 0; - } -}, "cubic"); - -// node_modules/@antv/g6-core/es/element/combo.js -var singleCombo = { - itemType: "combo", - shapeType: "single-combo", - labelPosition: "top", - refX: global_default.comboLabel.refX, - refY: global_default.comboLabel.refY, - options: { - style: { - stroke: global_default.defaultCombo.style.stroke, - fill: global_default.defaultCombo.style.fill, - lineWidth: global_default.defaultCombo.style.lineWidth - }, - labelCfg: { - style: { - fill: global_default.comboLabel.style.fill, - fontSize: global_default.comboLabel.style.fontSize - } - }, - stateStyles: __assign({}, global_default.comboStateStyles) - }, - getSize: function getSize3(cfg) { - var size2 = clone_default(cfg.size || this.options.size || global_default.defaultCombo.size); - if (is_array_default(size2) && size2.length === 1) { - size2 = [size2[0], size2[0]]; - } - if (!is_array_default(size2)) { - size2 = [size2, size2]; - } - return size2; - }, - getLabelStyleByPosition: function getLabelStyleByPosition4(cfg, labelCfg) { - var labelPosition = labelCfg.position || this.labelPosition; - var cfgStyle = cfg.style; - var padding3 = cfg.padding || this.options.padding; - if (is_array_default(padding3)) - padding3 = padding3[0]; - var refX = labelCfg.refX, refY = labelCfg.refY; - if (is_nil_default(refX)) { - refX = this.refX; - } - if (is_nil_default(refY)) { - refY = this.refY; - } - var size2 = this.getSize(cfg); - var r4 = Math.max(cfgStyle.r, size2[0] / 2) || size2[0] / 2; - var dis = r4 + padding3; - var style; - switch (labelPosition) { - case "top": - style = { - x: 0, - y: -dis - refY, - textBaseline: "bottom", - textAlign: "center" - }; - break; - case "bottom": - style = { - x: 0, - y: dis + refY, - textBaseline: "bottom", - textAlign: "center" - }; - break; - case "left": - style = { - x: -dis + refX, - y: 0, - textAlign: "left" - }; - break; - case "center": - style = { - x: 0, - y: 0, - text: cfg.label, - textAlign: "center" - }; - break; - default: - style = { - x: dis + refX, - y: 0, - textAlign: "right" - }; - break; - } - style.text = cfg.label; - return style; - }, - drawShape: function drawShape5(cfg, group2) { - var shapeType = this.shapeType; - var style = this.getShapeStyle(cfg); - var shape = group2.addShape(shapeType, { - attrs: style, - draggable: true, - name: "combo-shape" - }); - return shape; - }, - updateShape: function updateShape2(cfg, item, keyShapeStyle) { - var keyShape = item.get("keyShape"); - var animate = cfg.animate === void 0 ? this.options.animate : cfg.animate; - if (animate && keyShape.animate) { - keyShape.animate(keyShapeStyle, { - duration: 200, - easing: "easeLinear" - }); - } else { - keyShape.attr(__assign({}, keyShapeStyle)); - } - this.updateLabel(cfg, item); - } -}; -var singleComboDef = __assign(__assign({}, shapeBase), singleCombo); -shape_default4.registerCombo("single-combo", singleComboDef); - -// node_modules/@antv/g6-core/es/element/combos/circle.js -shape_default4.registerCombo("circle", { - options: { - size: [global_default.defaultCombo.size[0], global_default.defaultCombo.size[0]], - padding: global_default.defaultCombo.padding[0], - animate: true, - style: { - stroke: global_default.defaultCombo.style.stroke, - fill: global_default.defaultCombo.style.fill, - lineWidth: global_default.defaultCombo.style.lineWidth - }, - labelCfg: { - style: { - fill: global_default.comboLabel.style.fill, - fontSize: global_default.comboLabel.style.fontSize - }, - refX: 0, - refY: 0 - }, - stateStyles: __assign({}, global_default.comboStateStyles) - }, - shapeType: "circle", - labelPosition: "top", - drawShape: function drawShape6(cfg, group2) { - var style = this.getShapeStyle(cfg); - delete style.height; - delete style.width; - var keyShape = group2.addShape("circle", { - attrs: style, - className: "circle-combo", - name: "circle-combo", - draggable: true - }); - return keyShape; - }, - getShapeStyle: function getShapeStyle3(cfg) { - var defaultStyle = this.options.style; - var padding3 = cfg.padding || this.options.padding; - if (is_array_default(padding3)) - padding3 = padding3[0]; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle, cfg.style); - var r4; - if (cfg.fixSize) { - r4 = is_number_default(cfg.fixSize) ? cfg.fixSize : cfg.fixSize[0]; - } else { - var size2 = this.getSize(cfg); - if (!is_number_default(style.r) || isNaN(style.r)) - r4 = size2[0] / 2 || global_default.defaultCombo.style.r; - else - r4 = Math.max(style.r, size2[0] / 2) || size2[0] / 2; - } - style.r = r4 + padding3; - var styles = __assign({ - x: 0, - y: 0 - }, style); - if (cfg.style) - cfg.style.r = r4; - else { - cfg.style = { - r: r4 - }; - } - return styles; - }, - update: function update3(cfg, item) { - var size2 = this.getSize(cfg); - var padding3 = cfg.padding || this.options.padding; - if (is_array_default(padding3)) - padding3 = padding3[0]; - var cfgStyle = clone_default(cfg.style); - var r4; - if (cfg.fixSize) { - r4 = is_number_default(cfg.fixSize) ? cfg.fixSize : cfg.fixSize[0]; - } else { - r4 = Math.max(cfgStyle.r, size2[0] / 2) || size2[0] / 2; - } - cfgStyle.r = r4 + padding3; - var itemCacheSize = item.get("sizeCache"); - if (itemCacheSize) { - itemCacheSize.r = cfgStyle.r; - } - var strokeStyle = { - stroke: cfg.color - }; - var keyShape = item.get("keyShape"); - var style = mix({}, keyShape.attr(), strokeStyle, cfgStyle); - if (cfg.style) - cfg.style.r = r4; - else { - cfg.style = { - r: r4 - }; - } - this.updateShape(cfg, item, style, true); - } -}, "single-combo"); - -// node_modules/@antv/g6-core/es/element/combos/rect.js -shape_default4.registerCombo("rect", { - options: { - size: [40, 5], - padding: [25, 20, 15, 20], - animate: true, - style: { - radius: 0, - stroke: global_default.defaultCombo.style.stroke, - fill: global_default.defaultCombo.style.fill, - lineWidth: global_default.defaultCombo.style.lineWidth - }, - labelCfg: { - style: { - fill: global_default.comboLabel.style.fill, - fontSize: global_default.comboLabel.style.fontSize - } - }, - anchorPoints: [[0, 0.5], [1, 0.5]], - stateStyles: __assign({}, global_default.comboStateStyles) - }, - shapeType: "rect", - labelPosition: "top", - drawShape: function drawShape7(cfg, group2) { - var style = this.getShapeStyle(cfg); - var keyShape = group2.addShape("rect", { - attrs: style, - className: "rect-combo", - name: "rect-combo", - draggable: true - }); - return keyShape; - }, - getLabelStyleByPosition: function getLabelStyleByPosition5(cfg, labelCfg) { - var labelPosition = labelCfg.position || this.labelPosition; - var cfgStyle = cfg.style; - var padding3 = cfg.padding || this.options.padding; - if (is_number_default(padding3)) - padding3 = [padding3, padding3, padding3, padding3]; - var refX = labelCfg.refX, refY = labelCfg.refY; - if (is_nil_default(refX)) { - refX = this.refX; - } - if (is_nil_default(refY)) { - refY = this.refY; - } - var leftDis = cfgStyle.width / 2 + padding3[3]; - var topDis = cfgStyle.height / 2 + padding3[0]; - var style; - switch (labelPosition) { - case "top": - style = { - x: 0 - leftDis + refX, - y: 0 - topDis + refY, - textBaseline: "top", - textAlign: "left" - }; - break; - case "bottom": - style = { - x: 0, - y: topDis + refY, - textBaseline: "bottom", - textAlign: "center" - }; - break; - case "left": - style = { - x: 0 - leftDis + refY, - y: 0, - textAlign: "left" - }; - break; - case "center": - style = { - x: 0, - y: 0, - text: cfg.label, - textAlign: "center" - }; - break; - default: - style = { - x: leftDis + refX, - y: 0, - textAlign: "right" - }; - break; - } - style.text = cfg.label; - return style; - }, - getShapeStyle: function getShapeStyle4(cfg) { - var defaultStyle = this.options.style; - var padding3 = cfg.padding || this.options.padding; - if (is_number_default(padding3)) - padding3 = [padding3, padding3, padding3, padding3]; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle, cfg.style); - var size2 = this.getSize(cfg); - var width2; - var height; - var fixSize = cfg.collapsed && cfg.fixCollapseSize ? cfg.fixCollapseSize : cfg.fixSize; - if (fixSize) { - if (is_number_default(fixSize)) { - width2 = fixSize; - height = fixSize; - } else { - width2 = fixSize[0]; - height = fixSize[1]; - } - } else { - if (!is_number_default(style.width) || isNaN(style.width)) - width2 = size2[0] || global_default.defaultCombo.style.width; - else - width2 = Math.max(style.width, size2[0]) || size2[0]; - if (!is_number_default(style.height) || isNaN(style.height)) - height = size2[1] || global_default.defaultCombo.style.height; - else - height = Math.max(style.height, size2[1]) || size2[1]; - } - var x6 = -width2 / 2 - padding3[3]; - var y5 = -height / 2 - padding3[0]; - style.width = width2 + padding3[1] + padding3[3]; - style.height = height + padding3[0] + padding3[2]; - var styles = __assign({ - x: x6, - y: y5 - }, style); - if (!cfg.style) { - cfg.style = { - width: width2, - height - }; - } else { - cfg.style.width = width2; - cfg.style.height = height; - } - return styles; - }, - update: function update4(cfg, item) { - var size2 = this.getSize(cfg); - var padding3 = cfg.padding || this.options.padding; - if (is_number_default(padding3)) - padding3 = [padding3, padding3, padding3, padding3]; - var cfgStyle = clone_default(cfg.style); - var width2, height; - var fixSize = cfg.collapsed && cfg.fixCollapseSize ? cfg.fixCollapseSize : cfg.fixSize; - if (fixSize) { - if (is_number_default(fixSize)) { - width2 = fixSize; - height = fixSize; - } else { - width2 = fixSize[0]; - height = fixSize[1]; - } - } else { - width2 = Math.max(cfgStyle.width, size2[0]) || size2[0]; - height = Math.max(cfgStyle.height, size2[1]) || size2[1]; - } - cfgStyle.width = width2 + padding3[1] + padding3[3]; - cfgStyle.height = height + padding3[0] + padding3[2]; - var itemCacheSize = item.get("sizeCache"); - if (itemCacheSize) { - itemCacheSize.width = cfgStyle.width; - itemCacheSize.height = cfgStyle.height; - } - cfgStyle.x = -width2 / 2 - padding3[3]; - cfgStyle.y = -height / 2 - padding3[0]; - var strokeStyle = { - stroke: cfg.color - }; - var keyShape = item.get("keyShape"); - var style = mix({}, keyShape.attr(), strokeStyle, cfgStyle); - if (cfg.style) { - cfg.style.width = width2; - cfg.style.height = height; - } else { - cfg.style = { - width: width2, - height - }; - } - this.updateShape(cfg, item, style, false); - }, - updateShape: function updateShape3(cfg, item, keyShapeStyle) { - var keyShape = item.get("keyShape"); - var animate = cfg.animate === void 0 ? this.options.animate : cfg.animate; - if (animate && keyShape.animate) { - keyShape.animate(keyShapeStyle, { - duration: 200, - easing: "easeLinear" - }); - } else { - keyShape.attr(__assign({}, keyShapeStyle)); - } - this.updateLabel(cfg, item); - } -}, "single-combo"); - -// node_modules/@antv/g6-core/es/element/nodes/simple-circle.js -shape_default4.registerNode("simple-circle", { - options: { - size: global_default.defaultNode.size, - style: { - x: 0, - y: 0, - stroke: global_default.defaultNode.style.stroke, - fill: global_default.defaultNode.style.fill, - lineWidth: global_default.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: global_default.nodeLabel.style.fill, - fontSize: global_default.nodeLabel.style.fontSize - } - }, - stateStyles: __assign({}, global_default.nodeStateStyles) - }, - shapeType: "simple-circle", - labelPosition: "center", - drawShape: function drawShape8(cfg, group2) { - var style = this.getShapeStyle(cfg); - var keyShape = group2.addShape("circle", { - attrs: style, - className: this.type + "-keyShape", - draggable: true - }); - return keyShape; - }, - getShapeStyle: function getShapeStyle5(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = deep_mix_default({}, defaultStyle, strokeStyle); - var size2 = this.getSize(cfg); - var r4 = size2[0] / 2; - var styles = __assign({ - x: 0, - y: 0, - r: r4 - }, style); - return styles; - }, - update: function update5(cfg, item) { - var size2 = this.getSize(cfg); - var strokeStyle = { - stroke: cfg.color, - r: size2[0] / 2 - }; - var keyShape = item.get("keyShape"); - var style = deep_mix_default({}, keyShape.attr(), strokeStyle, cfg.style); - this.updateShape(cfg, item, style, true); - } -}, "single-node"); - -// node_modules/@antv/g6-core/es/element/nodes/simple-rect.js -shape_default4.registerNode("simple-rect", { - options: { - size: [100, 30], - style: { - radius: 0, - stroke: global_default.defaultNode.style.stroke, - fill: global_default.defaultNode.style.fill, - lineWidth: global_default.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: global_default.nodeLabel.style.fill, - fontSize: global_default.nodeLabel.style.fontSize - } - }, - anchorPoints: [[0, 0.5], [1, 0.5]], - stateStyles: __assign({}, global_default.nodeStateStyles) - }, - shapeType: "simple-rect", - labelPosition: "center", - drawShape: function drawShape9(cfg, group2) { - var style = this.getShapeStyle(cfg); - var keyShape = group2.addShape("rect", { - attrs: style, - className: this.type + "-keyShape", - name: this.type + "-keyShape", - draggable: true - }); - return keyShape; - }, - getShapeStyle: function getShapeStyle6(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle); - var size2 = this.getSize(cfg); - var width2 = style.width || size2[0]; - var height = style.height || size2[1]; - var styles = __assign({ - x: -width2 / 2, - y: -height / 2, - width: width2, - height - }, style); - return styles; - }, - update: function update6(cfg, item) { - var group2 = item.getContainer(); - var defaultStyle = this.getOptions({}).style; - var size2 = this.getSize(cfg); - var keyShape = item.get("keyShape"); - if (!cfg.size) { - size2[0] = keyShape.attr("width") || defaultStyle.width; - size2[1] = keyShape.attr("height") || defaultStyle.height; - } - var strokeStyle = { - stroke: cfg.color, - x: -size2[0] / 2, - y: -size2[1] / 2, - width: size2[0], - height: size2[1] - }; - var style = mix({}, defaultStyle, keyShape.attr(), strokeStyle); - style = mix(style, cfg.style); - this.updateShape(cfg, item, style, false); - } -}, "single-node"); - -// node_modules/@antv/g6-core/es/element/nodes/image.js -shape_default4.registerNode("image", { - options: { - img: "https://gw.alipayobjects.com/mdn/rms_f8c6a0/afts/img/A*eD7nT6tmYgAAAAAAAAAAAABkARQnAQ", - size: 200, - clipCfg: { - show: false, - type: "circle", - r: 50, - rx: 50, - ry: 35, - width: 50, - height: 35, - points: [[30, 12], [12, 30], [30, 48], [48, 30]], - path: [["M", 25, 25], ["L", 50, 25], ["A", 12.5, 12.5, 0, 1, 1, 50, 50], ["A", 12.5, 12.5, 0, 1, 0, 50, 50], ["L", 25, 75], ["Z"]], - x: 0, - y: 0 - } - }, - shapeType: "image", - labelPosition: "bottom", - drawShape: function drawShape10(cfg, group2) { - var shapeType = this.shapeType; - var style = this.getShapeStyle(cfg); - delete style.fill; - var shape = group2.addShape(shapeType, { - attrs: style, - className: this.type + "-keyShape", - name: this.type + "-keyShape", - draggable: true - }); - this.drawClip(cfg, shape); - return shape; - }, - drawClip: function drawClip(cfg, shape) { - var clip = this.getOptions(cfg).clipCfg; - if (!clip.show) { - return; - } - var type2 = clip.type, x6 = clip.x, y5 = clip.y, style = clip.style; - if (type2 === "circle") { - var r4 = clip.r; - shape.setClip({ - type: "circle", - attrs: __assign({ - r: r4, - x: x6, - y: y5 - }, style) - }); - } else if (type2 === "rect") { - var width2 = clip.width, height = clip.height; - var rectX = x6 - width2 / 2; - var rectY = y5 - height / 2; - shape.setClip({ - type: "rect", - attrs: __assign({ - x: rectX, - y: rectY, - width: width2, - height - }, style) - }); - } else if (type2 === "ellipse") { - var rx = clip.rx, ry = clip.ry; - shape.setClip({ - type: "ellipse", - attrs: __assign({ - x: x6, - y: y5, - rx, - ry - }, style) - }); - } else if (type2 === "polygon") { - var points = clip.points; - shape.setClip({ - type: "polygon", - attrs: __assign({ - points - }, style) - }); - } else if (type2 === "path") { - var path = clip.path; - shape.setClip({ - type: "path", - attrs: __assign({ - path - }, style) - }); - } - }, - getShapeStyle: function getShapeStyle7(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var size2 = this.getSize(cfg); - var img = this.getOptions(cfg).img; - var width2 = size2[0]; - var height = size2[1]; - if (defaultStyle) { - width2 = defaultStyle.width || size2[0]; - height = defaultStyle.height || size2[1]; - } - var style = __assign({ - x: -width2 / 2, - y: -height / 2, - width: width2, - height, - img - }, defaultStyle); - return style; - }, - updateShapeStyle: function updateShapeStyle3(cfg, item) { - var group2 = item.getContainer(); - var shapeClassName = this.itemType + "-shape"; - var shape = group2.find(function(element) { - return element.get("className") === shapeClassName; - }) || item.getKeyShape(); - var shapeStyle = this.getShapeStyle(cfg); - if (shape) { - shape.attr(shapeStyle); - } - } -}, "single-node"); - -// node_modules/@antv/g6-core/es/element/arrow.js -var arrow_default2 = { - triangle: function triangle2(width2, length5, d3) { - if (width2 === void 0) { - width2 = 10; - } - if (length5 === void 0) { - length5 = 15; - } - if (d3 === void 0) { - d3 = 0; - } - var begin = d3 * 2; - var path = "M " + begin + ",0 L " + (begin + length5) + ",-" + width2 / 2 + " L " + (begin + length5) + "," + width2 / 2 + " Z"; - return path; - }, - vee: function vee(width2, length5, d3) { - if (width2 === void 0) { - width2 = 15; - } - if (length5 === void 0) { - length5 = 20; - } - if (d3 === void 0) { - d3 = 0; - } - var begin = d3 * 2; - var path = "M " + begin + ",0 L " + (begin + length5) + ",-" + width2 / 2 + "\n L " + (begin + 2 * length5 / 3) + ",0 L " + (begin + length5) + "," + width2 / 2 + " Z"; - return path; - }, - circle: function circle2(r4, d3) { - if (r4 === void 0) { - r4 = 5; - } - if (d3 === void 0) { - d3 = 0; - } - var begin = d3 * 2; - var path = "M " + begin + ", 0\n a " + r4 + "," + r4 + " 0 1,0 " + r4 * 2 + ",0\n a " + r4 + "," + r4 + " 0 1,0 " + -r4 * 2 + ",0"; - return path; - }, - rect: function rect2(width2, length5, d3) { - if (width2 === void 0) { - width2 = 10; - } - if (length5 === void 0) { - length5 = 10; - } - if (d3 === void 0) { - d3 = 0; - } - var begin = d3 * 2; - var path = "M " + begin + "," + -width2 / 2 + " \n L " + (begin + length5) + "," + -width2 / 2 + " \n L " + (begin + length5) + "," + width2 / 2 + " \n L " + begin + "," + width2 / 2 + " Z"; - return path; - }, - diamond: function diamond2(width2, length5, d3) { - if (width2 === void 0) { - width2 = 15; - } - if (length5 === void 0) { - length5 = 15; - } - if (d3 === void 0) { - d3 = 0; - } - var begin = d3 * 2; - var path = "M " + begin + ",0 \n L " + (begin + length5 / 2) + "," + -width2 / 2 + " \n L " + (begin + length5) + ",0 \n L " + (begin + length5 / 2) + "," + width2 / 2 + " Z"; - return path; - }, - triangleRect: function triangleRect(tWidth, tLength, rWidth, rLength, gap, d3) { - if (tWidth === void 0) { - tWidth = 15; - } - if (tLength === void 0) { - tLength = 15; - } - if (rWidth === void 0) { - rWidth = 15; - } - if (rLength === void 0) { - rLength = 3; - } - if (gap === void 0) { - gap = 5; - } - if (d3 === void 0) { - d3 = 0; - } - var begin = d3 * 2; - var rectBegin = begin + tLength + gap; - var path = "M " + begin + ",0 L " + (begin + tLength) + ",-" + tWidth / 2 + " L " + (begin + tLength) + "," + tWidth / 2 + " Z\n M " + rectBegin + ", -" + rWidth / 2 + "\n L " + (rectBegin + rLength) + " -" + rWidth / 2 + "\n L " + (rectBegin + rLength) + " " + rWidth / 2 + "\n L " + rectBegin + " " + rWidth / 2 + "\n Z"; - return path; - } -}; - -// node_modules/@antv/g6-core/es/element/marker.js -var marker_default3 = { - collapse: function collapse(x6, y5, r4) { - return [["M", x6 - r4, y5], ["a", r4, r4, 0, 1, 0, r4 * 2, 0], ["a", r4, r4, 0, 1, 0, -r4 * 2, 0], ["M", x6 - r4 + 4, y5], ["L", x6 + r4 - 4, y5]]; - }, - expand: function expand(x6, y5, r4) { - return [["M", x6 - r4, y5], ["a", r4, r4, 0, 1, 0, r4 * 2, 0], ["a", r4, r4, 0, 1, 0, -r4 * 2, 0], ["M", x6 - r4 + 4, y5], ["L", x6 - r4 + 2 * r4 - 4, y5], ["M", x6 - r4 + r4, y5 - r4 + 4], ["L", x6, y5 + r4 - 4]]; - }, - upTriangle: function upTriangle(x6, y5, r4) { - var l1 = r4 * Math.cos(Math.PI / 6); - var l22 = r4 * Math.sin(Math.PI / 6); - return [["M", x6 - l1, y5 + l22], ["L", x6 + l1, y5 + l22], ["L", x6, y5 - r4], ["Z"]]; - }, - downTriangle: function downTriangle(x6, y5, r4) { - var l1 = r4 * Math.cos(Math.PI / 6); - var l22 = r4 * Math.sin(Math.PI / 6); - return [["M", x6 - l1, y5 - l22], ["L", x6 + l1, y5 - l22], ["L", x6, y5 + r4], ["Z"]]; - } -}; - -// node_modules/@antv/g6-core/es/element/index.js -var element_default3 = shape_default4; - -// node_modules/@antv/g6-core/es/util/index.js -var transform11 = ext_exports.transform; -var Util2 = __assign(__assign(__assign(__assign(__assign({}, base_exports), graphic_exports), path_exports2), math_exports), { - transform: transform11, - mat3: mat3_exports -}); -var util_default = Util2; - -// node_modules/@antv/g6-core/es/graph/controller/layout.js -var LayoutController = function() { - function LayoutController3(graph) { - this.graph = graph; - this.layoutCfg = graph.get("layout") || {}; - this.layoutType = this.getLayoutType(); - this.layoutMethods = []; - this.initLayout(); - } - LayoutController3.prototype.initLayout = function() { - }; - LayoutController3.prototype.getLayoutType = function() { - return this.getLayoutCfgType(this.layoutCfg); - }; - LayoutController3.prototype.getLayoutCfgType = function(layoutCfg) { - var type2 = layoutCfg.type; - if (type2) { - return type2; - } - var pipes = layoutCfg.pipes; - if (Array.isArray(pipes)) { - return pipes.map(function(pipe) { - return (pipe === null || pipe === void 0 ? void 0 : pipe.type) || ""; - }); - } - return null; - }; - LayoutController3.prototype.isLayoutTypeSame = function(cfg) { - var current = this.getLayoutCfgType(cfg); - if (Array.isArray(this.layoutType)) { - return this.layoutType.every(function(type2, index2) { - return type2 === current[index2]; - }); - } - return (cfg === null || cfg === void 0 ? void 0 : cfg.type) === this.layoutType; - }; - LayoutController3.prototype.refreshLayout = function() { - var graph = this.graph; - if (!graph) - return; - if (graph.get("animate")) { - graph.positionsAnimate(); - } else { - graph.refreshPositions(); - } - }; - LayoutController3.prototype.changeLayout = function(cfg) { - this.layoutCfg = cfg; - this.destoryLayoutMethods(); - this.layout(); - }; - LayoutController3.prototype.changeData = function() { - this.destoryLayoutMethods(); - this.layout(); - }; - LayoutController3.prototype.destoryLayoutMethods = function() { - var layoutMethods = this.layoutMethods; - layoutMethods === null || layoutMethods === void 0 ? void 0 : layoutMethods.forEach(function(layoutMethod) { - layoutMethod.destroy(); - }); - this.layoutMethods = []; - }; - LayoutController3.prototype.destroyLayout = function() { - var graph = this.graph; - this.destoryLayoutMethods(); - graph.set("layout", void 0); - this.layoutCfg = void 0; - this.layoutType = void 0; - this.layoutMethods = void 0; - }; - LayoutController3.prototype.setDataFromGraph = function() { - var nodes = []; - var hiddenNodes = []; - var edges = []; - var hiddenEdges = []; - var comboEdges = []; - var combos = []; - var hiddenCombos = []; - var nodeItems = this.graph.getNodes(); - var edgeItems = this.graph.getEdges(); - var comboItems = this.graph.getCombos(); - var nodeLength = nodeItems.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var nodeItem = nodeItems[i4]; - if (!nodeItem || nodeItem.destroyed) - continue; - var model = nodeItem.getModel(); - if (!nodeItem.isVisible()) { - hiddenNodes.push(model); - continue; - } - nodes.push(model); - } - var edgeLength = edgeItems.length; - for (var i4 = 0; i4 < edgeLength; i4++) { - var edgeItem = edgeItems[i4]; - if (!edgeItem || edgeItem.destroyed) - continue; - var model = edgeItem.getModel(); - if (!edgeItem.isVisible()) { - hiddenEdges.push(model); - continue; - } - if (!model.isComboEdge) - edges.push(model); - else - comboEdges.push(model); - } - var comboLength = comboItems.length; - for (var i4 = 0; i4 < comboLength; i4++) { - var comboItem = comboItems[i4]; - if (comboItem.destroyed) - continue; - var model = comboItem.getModel(); - if (!comboItem.isVisible()) { - hiddenEdges.push(model); - continue; - } - combos.push(model); - } - return { - nodes, - hiddenNodes, - edges, - hiddenEdges, - combos, - hiddenCombos, - comboEdges - }; - }; - LayoutController3.prototype.reLayoutMethod = function(layoutMethod, layoutCfg) { - var _this = this; - return new Promise(function(reslove, reject) { - var graph = _this.graph; - var layoutType = layoutCfg === null || layoutCfg === void 0 ? void 0 : layoutCfg.type; - layoutCfg.onLayoutEnd = function() { - graph.emit("aftersublayout", { - type: layoutType - }); - reslove(); - }; - layoutMethod.init(_this.data); - if (layoutType === "force") { - layoutMethod.ticking = false; - layoutMethod.forceSimulation.stop(); - } - graph.emit("beforesublayout", { - type: layoutType - }); - layoutMethod.execute(); - if (layoutMethod.isCustomLayout && layoutCfg.onLayoutEnd) - layoutCfg.onLayoutEnd(); - }); - }; - LayoutController3.prototype.relayout = function(reloadData) { - var _this = this; - var _a6 = this, graph = _a6.graph, layoutMethods = _a6.layoutMethods, layoutCfg = _a6.layoutCfg; - if (reloadData) { - this.data = this.setDataFromGraph(); - var nodes = this.data.nodes; - if (!nodes) { - return false; - } - this.initPositions(layoutCfg.center, nodes); - } - graph.emit("beforelayout"); - var start = Promise.resolve(); - layoutMethods === null || layoutMethods === void 0 ? void 0 : layoutMethods.forEach(function(layoutMethod, index2) { - var currentCfg = layoutCfg[index2]; - start = start.then(function() { - return _this.reLayoutMethod(layoutMethod, currentCfg); - }); - }); - start.then(function() { - if (layoutCfg.onAllLayoutEnd) - layoutCfg.onAllLayoutEnd(); - }).catch(function(error) { - console.warn("relayout failed", error); - }); - }; - LayoutController3.prototype.filterLayoutData = function(data3, cfg) { - var nodes = data3.nodes, edges = data3.edges, rest = __rest(data3, ["nodes", "edges"]); - if (!nodes) { - return data3; - } - var nodesFilter; - var edegsFilter; - if (is_function_default(cfg === null || cfg === void 0 ? void 0 : cfg.nodesFilter)) { - nodesFilter = cfg.nodesFilter; - } else { - nodesFilter = function nodesFilter2() { - return true; - }; - } - if (is_function_default(cfg === null || cfg === void 0 ? void 0 : cfg.edgesFilter)) { - edegsFilter = cfg.edgesFilter; - } else { - var nodesMap_1 = nodes.reduce(function(acc, cur) { - acc[cur.id] = true; - return acc; - }, {}); - edegsFilter = function edegsFilter2(edge2) { - return nodesMap_1[edge2.source] && nodesMap_1[edge2.target]; - }; - } - return __assign({ - nodes: nodes.filter(nodesFilter), - edges: edges.filter(edegsFilter) - }, rest); - }; - LayoutController3.prototype.getLayoutBBox = function(nodes) { - var graph = this.graph; - var graphGroupNodes = group_by_default(graph.getNodes(), function(n3) { - return n3.getModel().layoutOrder; - }); - var layoutNodes2 = Object.values(graphGroupNodes).map(function(value2) { - var bbox = calculationItemsBBox(value2); - bbox.size = [bbox.width, bbox.height]; - return bbox; - }); - var groupNodes = Object.values(group_by_default(nodes, "layoutOrder")); - return { - groupNodes, - layoutNodes: layoutNodes2 - }; - }; - LayoutController3.prototype.layoutAnimate = function() { - }; - LayoutController3.prototype.moveToZero = function() { - var graph = this.graph; - var data3 = graph.get("data"); - var nodes = data3.nodes; - if (nodes[0].x === void 0 || nodes[0].x === null || isNaN2(nodes[0].x)) { - return; - } - var meanCenter = [0, 0]; - var nodeLength = nodes.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - meanCenter[0] += node.x; - meanCenter[1] += node.y; - } - meanCenter[0] /= nodes.length; - meanCenter[1] /= nodes.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - node.x -= meanCenter[0]; - node.y -= meanCenter[1]; - } - }; - LayoutController3.prototype.initPositions = function(center2, nodes) { - var graph = this.graph; - if (!nodes) { - return false; - } - var nodeLength = nodes ? nodes.length : 0; - if (!nodeLength) - return; - var width2 = graph.get("width") * 0.85; - var height = graph.get("height") * 0.85; - var horiNum = Math.ceil(Math.sqrt(nodeLength) * (width2 / height)); - var vertiNum = Math.ceil(nodeLength / horiNum); - var horiGap = width2 / (horiNum - 1); - var vertiGap = height / (vertiNum - 1); - if (!isFinite(horiGap) || !horiGap) - horiGap = 0; - if (!isFinite(vertiGap) || !horiGap) - vertiGap = 0; - var beginX = center2[0] - width2 / 2; - var beginY = center2[1] - height / 2; - var allHavePos = true; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - if (isNaN2(node.x)) { - allHavePos = false; - node.x = i4 % horiNum * horiGap + beginX; - } - if (isNaN2(node.y)) { - allHavePos = false; - node.y = Math.floor(i4 / horiNum) * vertiGap + beginY; - } - } - return allHavePos; - }; - LayoutController3.prototype.destroy = function() { - this.graph = null; - this.destoryLayoutMethods(); - this.destroyed = true; - }; - return LayoutController3; -}(); -var layout_default = LayoutController; - -// node_modules/@antv/g6-core/es/graph/controller/event.js -var EventController2 = function() { - function EventController4(graph) { - this.graph = graph; - this.destroyed = false; - this.initEvents(); - } - return EventController4; -}(); -var event_default2 = EventController2; - -// node_modules/@antv/g6-core/es/types/index.js -var G6Event; -(function(G6Event2) { - G6Event2["CLICK"] = "click"; - G6Event2["DBLCLICK"] = "dblclick"; - G6Event2["MOUSEDOWN"] = "mousedown"; - G6Event2["MOUDEUP"] = "mouseup"; - G6Event2["CONTEXTMENU"] = "contextmenu"; - G6Event2["MOUSEENTER"] = "mouseenter"; - G6Event2["MOUSEOUT"] = "mouseout"; - G6Event2["MOUSEOVER"] = "mouseover"; - G6Event2["MOUSEMOVE"] = "mousemove"; - G6Event2["MOUSELEAVE"] = "mouseleave"; - G6Event2["DRAGSTART"] = "dragstart"; - G6Event2["DRAGEND"] = "dragend"; - G6Event2["DRAG"] = "drag"; - G6Event2["DRAGENTER"] = "dragenter"; - G6Event2["DRAGLEAVE"] = "dragleave"; - G6Event2["DRAGOVER"] = "dragover"; - G6Event2["DRAGOUT"] = "dragout"; - G6Event2["DDROP"] = "drop"; - G6Event2["KEYUP"] = "keyup"; - G6Event2["KEYDOWN"] = "keydown"; - G6Event2["WHEEL"] = "wheel"; - G6Event2["FOCUS"] = "focus"; - G6Event2["BLUR"] = "blur"; - G6Event2["TOUCHSTART"] = "touchstart"; - G6Event2["TOUCHMOVE"] = "touchmove"; - G6Event2["TOUCHEND"] = "touchend"; - G6Event2["NODE_CONTEXTMENU"] = "node:contextmenu"; - G6Event2["NODE_CLICK"] = "node:click"; - G6Event2["NODE_DBLCLICK"] = "node:dblclick"; - G6Event2["NODE_MOUSEDOWN"] = "node:mousedown"; - G6Event2["NODE_MOUSEUP"] = "node:mouseup"; - G6Event2["NODE_MOUSEENTER"] = "node:mouseenter"; - G6Event2["NODE_MOUSELEAVE"] = "node:mouseleave"; - G6Event2["NODE_MOUSEMOVE"] = "node:mousemove"; - G6Event2["NODE_MOUSEOUT"] = "node:mouseout"; - G6Event2["NODE_MOUSEOVER"] = "node:mouseover"; - G6Event2["NODE_DROP"] = "node:drop"; - G6Event2["NODE_DRAGOVER"] = "node:dragover"; - G6Event2["NODE_DRAGENTER"] = "node:dragenter"; - G6Event2["NODE_DRAGLEAVE"] = "node:dragleave"; - G6Event2["NODE_DRAGSTART"] = "node:dragstart"; - G6Event2["NODE_DRAG"] = "node:drag"; - G6Event2["NODE_DRAGEND"] = "node:dragend"; - G6Event2["COMBO_CONTEXTMENU"] = "combo:contextmenu"; - G6Event2["COMBO_CLICK"] = "combo:click"; - G6Event2["COMBO_DBLCLICK"] = "combo:dblclick"; - G6Event2["COMBO_MOUSEDOWN"] = "combo:mousedown"; - G6Event2["COMBO_MOUSEUP"] = "combo:mouseup"; - G6Event2["COMBO_MOUSEENTER"] = "combo:mouseenter"; - G6Event2["COMBO_MOUSELEAVE"] = "combo:mouseleave"; - G6Event2["COMBO_MOUSEMOVE"] = "combo:mousemove"; - G6Event2["COMBO_MOUSEOUT"] = "combo:mouseout"; - G6Event2["COMBO_MOUSEOVER"] = "combo:mouseover"; - G6Event2["COMBO_DROP"] = "combo:drop"; - G6Event2["COMBO_DRAGOVER"] = "combo:dragover"; - G6Event2["COMBO_DRAGENTER"] = "combo:dragenter"; - G6Event2["COMBO_DRAGLEAVE"] = "combo:dragleave"; - G6Event2["COMBO_DRAGSTART"] = "combo:dragstart"; - G6Event2["COMBO_DRAG"] = "combo:drag"; - G6Event2["COMBO_DRAGEND"] = "combo:dragend"; - G6Event2["EDGE_CONTEXTMENU"] = "edge:contextmenu"; - G6Event2["EDGE_CLICK"] = "edge:click"; - G6Event2["EDGE_DBLCLICK"] = "edge:dblclick"; - G6Event2["EDGE_MOUSEDOWN"] = "edge:mousedown"; - G6Event2["EDGE_MOUSEUP"] = "edge:mouseup"; - G6Event2["EDGE_MOUSEENTER"] = "edge:mouseenter"; - G6Event2["EDGE_MOUSELEAVE"] = "edge:mouseleave"; - G6Event2["EDGE_MOUSEMOVE"] = "edge:mousemove"; - G6Event2["EDGE_MOUSEOUT"] = "edge:mouseout"; - G6Event2["EDGE_MOUSEOVER"] = "edge:mouseover"; - G6Event2["EDGE_DROP"] = "edge:drop"; - G6Event2["EDGE_DRAGOVER"] = "edge:dragover"; - G6Event2["EDGE_DRAGENTER"] = "edge:dragenter"; - G6Event2["EDGE_DRAGLEAVE"] = "edge:dragleave"; - G6Event2["CANVAS_CONTEXTMENU"] = "canvas:contextmenu"; - G6Event2["CANVAS_CLICK"] = "canvas:click"; - G6Event2["CANVAS_DBLCLICK"] = "canvas:dblclick"; - G6Event2["CANVAS_MOUSEDOWN"] = "canvas:mousedown"; - G6Event2["CANVAS_MOUSEUP"] = "canvas:mouseup"; - G6Event2["CANVAS_MOUSEENTER"] = "canvas:mouseenter"; - G6Event2["CANVAS_MOUSELEAVE"] = "canvas:mouseleave"; - G6Event2["CANVAS_MOUSEMOVE"] = "canvas:mousemove"; - G6Event2["CANVAS_MOUSEOUT"] = "canvas:mouseout"; - G6Event2["CANVAS_MOUSEOVER"] = "canvas:mouseover"; - G6Event2["CANVAS_DROP"] = "canvas:drop"; - G6Event2["CANVAS_DRAGENTER"] = "canvas:dragenter"; - G6Event2["CANVAS_DRAGLEAVE"] = "canvas:dragleave"; - G6Event2["CANVAS_DRAGSTART"] = "canvas:dragstart"; - G6Event2["CANVAS_DRAG"] = "canvas:drag"; - G6Event2["CANVAS_DRAGEND"] = "canvas:dragend"; - G6Event2["BEFORERENDER"] = "beforerender"; - G6Event2["AFTERRENDER"] = "afterrender"; - G6Event2["BEFOREADDITEM"] = "beforeadditem"; - G6Event2["AFTERADDITEM"] = "afteradditem"; - G6Event2["BEFOREREMOVEITEM"] = "beforeremoveitem"; - G6Event2["AFTERREMOVEITEM"] = "afterremoveitem"; - G6Event2["BEFOREUPDATEITEM"] = "beforeupdateitem"; - G6Event2["AFTERUPDATEITEM"] = "afterupdateitem"; - G6Event2["BEFOREITEMVISIBILITYCHANGE"] = "beforeitemvisibilitychange"; - G6Event2["AFTERITEMVISIBILITYCHANGE"] = "afteritemvisibilitychange"; - G6Event2["BEFOREITEMSTATECHANGE"] = "beforeitemstatechange"; - G6Event2["AFTERITEMSTATECHANGE"] = "afteritemstatechange"; - G6Event2["BEFOREITEMREFRESH"] = "beforeitemrefresh"; - G6Event2["AFTERITEMREFRESH"] = "afteritemrefresh"; - G6Event2["BEFOREITEMSTATESCLEAR"] = "beforeitemstatesclear"; - G6Event2["AFTERITEMSTATESCLEAR"] = "afteritemstatesclear"; - G6Event2["BEFOREMODECHANGE"] = "beforemodechange"; - G6Event2["AFTERMODECHANGE"] = "aftermodechange"; - G6Event2["BEFORELAYOUT"] = "beforelayout"; - G6Event2["AFTERLAYOUT"] = "afterlayout"; - G6Event2["BEFORECREATEEDGE"] = "beforecreateedge"; - G6Event2["AFTERCREATEEDGE"] = "aftercreateedge"; - G6Event2["BEFOREGRAPHREFRESHPOSITION"] = "beforegraphrefreshposition"; - G6Event2["AFTERGRAPHREFRESHPOSITION"] = "aftergraphrefreshposition"; - G6Event2["BEFOREGRAPHREFRESH"] = "beforegraphrefresh"; - G6Event2["AFTERGRAPHREFRESH"] = "aftergraphrefresh"; - G6Event2["BEFOREANIMATE"] = "beforeanimate"; - G6Event2["AFTERANIMATE"] = "afteranimate"; - G6Event2["BEFOREPAINT"] = "beforepaint"; - G6Event2["AFTERPAINT"] = "afterpaint"; - G6Event2["BEFORECOLLAPSEEXPANDCOMBO"] = "beforecollapseexpandcombo"; - G6Event2["AFTERCOLLAPSEEXPANDCOMBO"] = "aftercollapseexpandcombo"; - G6Event2["GRAPHSTATECHANGE"] = "graphstatechange"; - G6Event2["AFTERACTIVATERELATIONS"] = "afteractivaterelations"; - G6Event2["NODESELECTCHANGE"] = "nodeselectchange"; - G6Event2["TOOLTIPCHANGE"] = "tooltipchange"; - G6Event2["WHEELZOOM"] = "wheelzoom"; - G6Event2["VIEWPORTCHANGE"] = "viewportchange"; - G6Event2["DRAGNODEEND"] = "dragnodeend"; - G6Event2["STACKCHANGE"] = "stackchange"; -})(G6Event || (G6Event = {})); - -// node_modules/@antv/g6-core/es/index.js -var registerNode = element_default3.registerNode; -var registerEdge = element_default3.registerEdge; -var registerCombo = element_default3.registerCombo; -var registerBehavior = behavior_default2.registerBehavior; -var BaseGlobal = global_default; -var es_default2 = { - version: global_default.version, - AbstractGraph: graph_default, - BaseGlobal, - Util: util_default, - Shape: element_default3, - Node: node_default, - Edge: edge_default2, - Combo: combo_default, - Hull: hull_default, - registerNode: element_default3.registerNode, - registerEdge: element_default3.registerEdge, - registerCombo: element_default3.registerCombo, - registerBehavior: behavior_default2.registerBehavior, - Arrow: arrow_default2, - Marker: marker_default3, - AbstractLayout: layout_default, - AbstractEvent: event_default2 -}; - -// node_modules/@antv/g6-pc/node_modules/@antv/matrix-util/esm/ext.js -var ext_exports3 = {}; -__export(ext_exports3, { - angleTo: () => angleTo2, - direction: () => direction2, - leftRotate: () => leftRotate2, - leftScale: () => leftScale2, - leftTranslate: () => leftTranslate2, - transform: () => transform12, - vertical: () => vertical2 -}); -function leftTranslate2(out, a4, v3) { - var transMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromTranslation(transMat, v3); - return mat3_exports.multiply(out, transMat, a4); -} -function leftRotate2(out, a4, rad) { - var rotateMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromRotation(rotateMat, rad); - return mat3_exports.multiply(out, rotateMat, a4); -} -function leftScale2(out, a4, v3) { - var scaleMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromScaling(scaleMat, v3); - return mat3_exports.multiply(out, scaleMat, a4); -} -function leftMultiply2(out, a4, a1) { - return mat3_exports.multiply(out, a1, a4); -} -function transform12(m4, actions) { - var matrix = m4 ? [].concat(m4) : [1, 0, 0, 0, 1, 0, 0, 0, 1]; - for (var i4 = 0, len5 = actions.length; i4 < len5; i4++) { - var action = actions[i4]; - switch (action[0]) { - case "t": - leftTranslate2(matrix, matrix, [action[1], action[2]]); - break; - case "s": - leftScale2(matrix, matrix, [action[1], action[2]]); - break; - case "r": - leftRotate2(matrix, matrix, action[1]); - break; - case "m": - leftMultiply2(matrix, matrix, action[1]); - break; - default: - break; - } - } - return matrix; -} -function direction2(v1, v22) { - return v1[0] * v22[1] - v22[0] * v1[1]; -} -function angleTo2(v1, v22, direct) { - var ang = vec2_exports.angle(v1, v22); - var angleLargeThanPI = direction2(v1, v22) >= 0; - if (direct) { - if (angleLargeThanPI) { - return Math.PI * 2 - ang; - } - return ang; - } - if (angleLargeThanPI) { - return ang; - } - return Math.PI * 2 - ang; -} -function vertical2(out, v3, flag) { - if (flag) { - out[0] = v3[1]; - out[1] = -1 * v3[0]; - } else { - out[0] = -1 * v3[1]; - out[1] = v3[0]; - } - return out; -} - -// node_modules/@antv/g6-pc/es/util/color.js -var color_exports = {}; -__export(color_exports, { - getColorSetsBySubjectColors: () => getColorSetsBySubjectColors, - getColorsWithSubjectColor: () => getColorsWithSubjectColor, - mixColor: () => mixColor -}); -var import_color6 = __toModule(require_color()); - -// node_modules/@ant-design/colors/dist/index.esm.js -var import_tinycolor2 = __toModule(require_tinycolor()); -var hueStep = 2; -var saturationStep = 0.16; -var saturationStep2 = 0.05; -var brightnessStep1 = 0.05; -var brightnessStep2 = 0.15; -var lightColorCount = 5; -var darkColorCount = 4; -var darkColorMap = [{ - index: 7, - opacity: 0.15 -}, { - index: 6, - opacity: 0.25 -}, { - index: 5, - opacity: 0.3 -}, { - index: 5, - opacity: 0.45 -}, { - index: 5, - opacity: 0.65 -}, { - index: 5, - opacity: 0.85 -}, { - index: 4, - opacity: 0.9 -}, { - index: 3, - opacity: 0.95 -}, { - index: 2, - opacity: 0.97 -}, { - index: 1, - opacity: 0.98 -}]; -function getHue(hsv, i4, light) { - var hue; - if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) { - hue = light ? Math.round(hsv.h) - hueStep * i4 : Math.round(hsv.h) + hueStep * i4; - } else { - hue = light ? Math.round(hsv.h) + hueStep * i4 : Math.round(hsv.h) - hueStep * i4; - } - if (hue < 0) { - hue += 360; - } else if (hue >= 360) { - hue -= 360; - } - return hue; -} -function getSaturation(hsv, i4, light) { - if (hsv.h === 0 && hsv.s === 0) { - return hsv.s; - } - var saturation; - if (light) { - saturation = hsv.s - saturationStep * i4; - } else if (i4 === darkColorCount) { - saturation = hsv.s + saturationStep; - } else { - saturation = hsv.s + saturationStep2 * i4; - } - if (saturation > 1) { - saturation = 1; - } - if (light && i4 === lightColorCount && saturation > 0.1) { - saturation = 0.1; - } - if (saturation < 0.06) { - saturation = 0.06; - } - return Number(saturation.toFixed(2)); -} -function getValue2(hsv, i4, light) { - var value2; - if (light) { - value2 = hsv.v + brightnessStep1 * i4; - } else { - value2 = hsv.v - brightnessStep2 * i4; - } - if (value2 > 1) { - value2 = 1; - } - return Number(value2.toFixed(2)); -} -function generate(color4) { - var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - var patterns = []; - var pColor = (0, import_tinycolor2.default)(color4); - for (var i4 = lightColorCount; i4 > 0; i4 -= 1) { - var hsv = pColor.toHsv(); - var colorString = (0, import_tinycolor2.default)({ - h: getHue(hsv, i4, true), - s: getSaturation(hsv, i4, true), - v: getValue2(hsv, i4, true) - }).toHexString(); - patterns.push(colorString); - } - patterns.push(pColor.toHexString()); - for (var _i = 1; _i <= darkColorCount; _i += 1) { - var _hsv = pColor.toHsv(); - var _colorString = (0, import_tinycolor2.default)({ - h: getHue(_hsv, _i), - s: getSaturation(_hsv, _i), - v: getValue2(_hsv, _i) - }).toHexString(); - patterns.push(_colorString); - } - if (opts.theme === "dark") { - return darkColorMap.map(function(_ref2) { - var index2 = _ref2.index, opacity = _ref2.opacity; - var darkColorString = import_tinycolor2.default.mix(opts.backgroundColor || "#141414", patterns[index2], opacity * 100).toHexString(); - return darkColorString; - }); - } - return patterns; -} -var presetPrimaryColors = { - red: "#F5222D", - volcano: "#FA541C", - orange: "#FA8C16", - gold: "#FAAD14", - yellow: "#FADB14", - lime: "#A0D911", - green: "#52C41A", - cyan: "#13C2C2", - blue: "#1890FF", - geekblue: "#2F54EB", - purple: "#722ED1", - magenta: "#EB2F96", - grey: "#666666" -}; -var presetPalettes = {}; -var presetDarkPalettes = {}; -Object.keys(presetPrimaryColors).forEach(function(key) { - presetPalettes[key] = generate(presetPrimaryColors[key]); - presetPalettes[key].primary = presetPalettes[key][5]; - presetDarkPalettes[key] = generate(presetPrimaryColors[key], { - theme: "dark", - backgroundColor: "#141414" - }); - presetDarkPalettes[key].primary = presetDarkPalettes[key][5]; -}); -var red = presetPalettes.red; -var volcano = presetPalettes.volcano; -var gold = presetPalettes.gold; -var orange = presetPalettes.orange; -var yellow = presetPalettes.yellow; -var lime = presetPalettes.lime; -var green = presetPalettes.green; -var cyan = presetPalettes.cyan; -var blue = presetPalettes.blue; -var geekblue = presetPalettes.geekblue; -var purple = presetPalettes.purple; -var magenta = presetPalettes.magenta; -var grey = presetPalettes.grey; - -// node_modules/@antv/g6-pc/es/util/color.js -var mixColor = function mixColor2(backColor3, frontColor, frontAlpha) { - var bc = (0, import_color6.default)(backColor3); - var fc = (0, import_color6.default)(frontColor); - return (0, import_color6.default)([(1 - frontAlpha) * bc.red() + frontAlpha * fc.red(), (1 - frontAlpha) * bc.green() + frontAlpha * fc.green(), (1 - frontAlpha) * bc.blue() + frontAlpha * fc.blue()]).rgb(); -}; -var getColorsWithDefaultTheme = function getColorsWithDefaultTheme2(subjectColor3, backColor3, disableColor) { - if (backColor3 === void 0) { - backColor3 = "#fff"; - } - if (disableColor === void 0) { - disableColor = "rgb(150, 150, 150)"; - } - var subjectColor005 = mixColor(backColor3, subjectColor3, 0.05).rgb().toString(); - var subjectColor01 = mixColor(backColor3, subjectColor3, 0.1).rgb().toString(); - var subjectColor02 = mixColor(backColor3, subjectColor3, 0.2).rgb().toString(); - var subjectColor04 = mixColor(backColor3, subjectColor3, 0.4).rgb().toString(); - var disableColor002 = mixColor(backColor3, disableColor, 0.02).rgb().toString(); - var disableColor005 = mixColor(backColor3, disableColor, 0.05).rgb().toString(); - var disableColor01 = mixColor(backColor3, disableColor, 0.1).rgb().toString(); - var disableColor02 = mixColor(backColor3, disableColor, 0.2).rgb().toString(); - var disableColor03 = mixColor(backColor3, disableColor, 0.3).rgb().toString(); - var paletteFromSubject = generate(subjectColor3, { - theme: "default", - backgroundColor: backColor3 - }); - var subjectHex = (0, import_color6.default)(subjectColor3).hex().toLowerCase(); - var subjectIdx = paletteFromSubject.indexOf(subjectHex); - var deeperSubject = subjectColor3; - if (subjectIdx !== -1) { - deeperSubject = paletteFromSubject[subjectIdx + 1]; - } - return { - mainStroke: subjectColor3, - mainFill: subjectColor01, - activeStroke: subjectColor3, - activeFill: subjectColor005, - inactiveStroke: subjectColor04, - inactiveFill: subjectColor005, - selectedStroke: subjectColor3, - selectedFill: backColor3, - highlightStroke: deeperSubject, - highlightFill: subjectColor02, - disableStroke: disableColor03, - disableFill: disableColor005, - edgeMainStroke: disableColor03, - edgeActiveStroke: subjectColor3, - edgeInactiveStroke: disableColor02, - edgeSelectedStroke: subjectColor3, - edgeHighlightStroke: subjectColor3, - edgeDisableStroke: disableColor01, - comboMainStroke: disableColor03, - comboMainFill: disableColor002, - comboActiveStroke: subjectColor3, - comboActiveFill: subjectColor005, - comboInactiveStroke: disableColor03, - comboInactiveFill: disableColor002, - comboSelectedStroke: subjectColor3, - comboSelectedFill: disableColor002, - comboHighlightStroke: deeperSubject, - comboHighlightFill: disableColor002, - comboDisableStroke: disableColor02, - comboDisableFill: disableColor005 - }; -}; -var getColorsWithDarkTheme = function getColorsWithDarkTheme2(subjectColor3, backColor3, disableColor) { - if (backColor3 === void 0) { - backColor3 = "#fff"; - } - if (disableColor === void 0) { - disableColor = "#777"; - } - var subjectColor02 = mixColor(backColor3, subjectColor3, 0.2).rgb().toString(); - var subjectColor03 = mixColor(backColor3, subjectColor3, 0.3).rgb().toString(); - var subjectColor06 = mixColor(backColor3, subjectColor3, 0.6).rgb().toString(); - var subjectColor08 = mixColor(backColor3, subjectColor3, 0.8).rgb().toString(); - var disableColor02 = mixColor(backColor3, disableColor, 0.2).rgb().toString(); - var disableColor025 = mixColor(backColor3, disableColor, 0.25).rgb().toString(); - var disableColor03 = mixColor(backColor3, disableColor, 0.3).rgb().toString(); - var disableColor04 = mixColor(backColor3, disableColor, 0.4).rgb().toString(); - var disableColor05 = mixColor(backColor3, disableColor, 0.5).rgb().toString(); - var paletteFromSubject = generate(subjectColor3, { - theme: "dark", - backgroundColor: backColor3 - }); - var subjectHex = (0, import_color6.default)(subjectColor3).hex().toLowerCase(); - var subjectIdx = paletteFromSubject.indexOf(subjectHex); - var deeperSubject = subjectColor3; - if (subjectIdx !== -1) { - deeperSubject = paletteFromSubject[subjectIdx + 1]; - } - return { - mainStroke: subjectColor08, - mainFill: subjectColor02, - activeStroke: subjectColor3, - activeFill: subjectColor03, - inactiveStroke: subjectColor08, - inactiveFill: subjectColor02, - selectedStroke: subjectColor3, - selectedFill: subjectColor02, - highlightStroke: subjectColor3, - highlightFill: subjectColor06, - disableStroke: disableColor05, - disableFill: disableColor025, - edgeMainStroke: disableColor, - edgeActiveStroke: subjectColor3, - edgeInactiveStroke: disableColor, - edgeSelectedStroke: subjectColor3, - edgeHighlightStroke: subjectColor3, - edgeDisableStroke: disableColor03, - comboMainStroke: disableColor04, - comboMainFill: disableColor025, - comboActiveStroke: subjectColor3, - comboActiveFill: disableColor02, - comboInactiveStroke: disableColor04, - comboInactiveFill: disableColor025, - comboSelectedStroke: subjectColor3, - comboSelectedFill: disableColor02, - comboHighlightStroke: deeperSubject, - comboHighlightFill: disableColor025, - comboDisableStroke: disableColor04, - comboDisableFill: disableColor02 - }; -}; -var getColorsWithSubjectColor = function getColorsWithSubjectColor2(subjectColor3, backColor3, theme4, disableColor) { - if (backColor3 === void 0) { - backColor3 = "#fff"; - } - if (theme4 === void 0) { - theme4 = "default"; - } - if (disableColor === void 0) { - disableColor = "rgb(150, 150, 150)"; - } - if (theme4 === "default") - return getColorsWithDefaultTheme(subjectColor3, backColor3, "rgb(150, 150, 150)"); - return getColorsWithDarkTheme(subjectColor3, backColor3, "#777"); -}; -var getColorSetsBySubjectColors = function getColorSetsBySubjectColors2(subjectColors, backColor3, theme4, disableColor) { - if (backColor3 === void 0) { - backColor3 = "#fff"; - } - if (theme4 === void 0) { - theme4 = "default"; - } - if (disableColor === void 0) { - disableColor = "rgb(150, 150, 150)"; - } - var sets = []; - subjectColors.forEach(function(sColor) { - sets.push(getColorsWithSubjectColor(sColor, backColor3, theme4, disableColor)); - }); - return sets; -}; - -// node_modules/@antv/g6-pc/es/global.js -var subjectColor2 = "rgb(95, 149, 255)"; -var backColor2 = "rgb(255, 255, 255)"; -var textColor2 = "rgb(0, 0, 0)"; -var colorSet2 = getColorsWithSubjectColor(subjectColor2, backColor2); -var global_default2 = { - version: "0.2.4", - rootContainerClassName: "root-container", - nodeContainerClassName: "node-container", - edgeContainerClassName: "edge-container", - comboContainerClassName: "combo-container", - delegateContainerClassName: "delegate-container", - defaultLoopPosition: "top", - nodeLabel: { - style: { - fill: "#000", - fontSize: 12, - textAlign: "center", - textBaseline: "middle" - }, - offset: 4 - }, - defaultNode: { - type: "circle", - style: { - lineWidth: 1, - stroke: colorSet2.mainStroke, - fill: colorSet2.mainFill - }, - size: 20, - color: colorSet2.mainStroke, - linkPoints: { - size: 8, - lineWidth: 1, - fill: colorSet2.activeFill, - stroke: colorSet2.activeStroke - } - }, - nodeStateStyles: { - active: { - fill: colorSet2.activeFill, - stroke: colorSet2.activeStroke, - lineWidth: 2, - shadowColor: colorSet2.mainStroke, - shadowBlur: 10 - }, - selected: { - fill: colorSet2.selectedFill, - stroke: colorSet2.selectedStroke, - lineWidth: 4, - shadowColor: colorSet2.selectedStroke, - shadowBlur: 10, - "text-shape": { - fontWeight: 500 - } - }, - highlight: { - fill: colorSet2.highlightFill, - stroke: colorSet2.highlightStroke, - lineWidth: 2, - "text-shape": { - fontWeight: 500 - } - }, - inactive: { - fill: colorSet2.inactiveFill, - stroke: colorSet2.inactiveStroke, - lineWidth: 1 - }, - disable: { - fill: colorSet2.disableFill, - stroke: colorSet2.disableStroke, - lineWidth: 1 - } - }, - edgeLabel: { - style: { - fill: textColor2, - textAlign: "center", - textBaseline: "middle", - fontSize: 12 - } - }, - defaultEdge: { - type: "line", - size: 1, - style: { - stroke: colorSet2.edgeMainStroke, - lineAppendWidth: 2 - }, - color: colorSet2.edgeMainStroke - }, - edgeStateStyles: { - active: { - stroke: colorSet2.edgeActiveStroke, - lineWidth: 1 - }, - selected: { - stroke: colorSet2.edgeSelectedStroke, - lineWidth: 2, - shadowColor: colorSet2.edgeSelectedStroke, - shadowBlur: 10, - "text-shape": { - fontWeight: 500 - } - }, - highlight: { - stroke: colorSet2.edgeHighlightStroke, - lineWidth: 2, - "text-shape": { - fontWeight: 500 - } - }, - inactive: { - stroke: colorSet2.edgeInactiveStroke, - lineWidth: 1 - }, - disable: { - stroke: colorSet2.edgeDisableStroke, - lineWidth: 1 - } - }, - comboLabel: { - style: { - fill: textColor2, - textBaseline: "middle", - fontSize: 12 - }, - refY: 10, - refX: 10 - }, - defaultCombo: { - type: "circle", - style: { - fill: colorSet2.comboMainFill, - lineWidth: 1, - stroke: colorSet2.comboMainStroke, - r: 5, - width: 20, - height: 10 - }, - size: [20, 5], - color: colorSet2.comboMainStroke, - padding: [25, 20, 15, 20] - }, - comboStateStyles: { - active: { - stroke: colorSet2.comboActiveStroke, - lineWidth: 1, - fill: colorSet2.comboActiveFill - }, - selected: { - stroke: colorSet2.comboSelectedStroke, - lineWidth: 2, - fill: colorSet2.comboSelectedFill, - shadowColor: colorSet2.comboSelectedStroke, - shadowBlur: 10, - "text-shape": { - fontWeight: 500 - } - }, - highlight: { - stroke: colorSet2.comboHighlightStroke, - lineWidth: 2, - fill: colorSet2.comboHighlightFill, - "text-shape": { - fontWeight: 500 - } - }, - inactive: { - stroke: colorSet2.comboInactiveStroke, - fill: colorSet2.comboInactiveFill, - lineWidth: 1 - }, - disable: { - stroke: colorSet2.comboDisableStroke, - fill: colorSet2.comboDisableFill, - lineWidth: 1 - } - }, - delegateStyle: { - fill: "#F3F9FF", - fillOpacity: 0.5, - stroke: "#1890FF", - strokeOpacity: 0.9, - lineDash: [5, 5] - }, - textWaterMarkerConfig: { - width: 150, - height: 100, - compatible: false, - text: { - x: 0, - y: 60, - lineHeight: 20, - rotate: 20, - fontSize: 14, - fontFamily: "Microsoft YaHei", - fill: "rgba(0, 0, 0, 0.1)", - baseline: "Middle" - } - }, - imageWaterMarkerConfig: { - width: 150, - height: 130, - compatible: false, - image: { - x: 0, - y: 0, - width: 30, - height: 20, - rotate: 0 - } - }, - waterMarkerImage: "https://gw.alipayobjects.com/os/s/prod/antv/assets/image/logo-with-text-73b8a.svg" -}; - -// node_modules/@antv/g6-pc/es/graph/controller/event.js -var cloneEvent3 = util_default.cloneEvent; -var isViewportChanged3 = util_default.isViewportChanged; -var EventController3 = function(_super) { - __extends(EventController4, _super); - function EventController4(graph) { - var _this = _super.call(this, graph) || this; - _this.extendEvents = []; - _this.dragging = false; - _this.preItem = null; - _this.graph = graph; - _this.destroyed = false; - _this.initEvents(); - return _this; - } - EventController4.prototype.initEvents = function() { - var _a6 = this, graph = _a6.graph, _b = _a6.extendEvents, extendEvents = _b === void 0 ? [] : _b; - var canvas = graph.get("canvas"); - var el = canvas.get("el"); - var canvasHandler = wrap_behavior_default(this, "onCanvasEvents"); - var originHandler = wrap_behavior_default(this, "onExtendEvents"); - var wheelHandler = wrap_behavior_default(this, "onWheelEvent"); - canvas.off("*").on("*", canvasHandler); - this.canvasHandler = canvasHandler; - extendEvents.push(addEventListener(el, "DOMMouseScroll", wheelHandler)); - extendEvents.push(addEventListener(el, "mousewheel", wheelHandler)); - if (typeof window !== "undefined") { - extendEvents.push(addEventListener(window, "keydown", originHandler)); - extendEvents.push(addEventListener(window, "keyup", originHandler)); - extendEvents.push(addEventListener(window, "focus", originHandler)); - } - }; - EventController4.getItemRoot = function(shape) { - while (shape && !shape.get("item")) { - shape = shape.get("parent"); - } - return shape; - }; - EventController4.prototype.onCanvasEvents = function(evt) { - var graph = this.graph; - var canvas = graph.get("canvas"); - var target = evt.target; - var eventType = evt.type; - evt.canvasX = evt.x; - evt.canvasY = evt.y; - var point2 = { - x: evt.canvasX, - y: evt.canvasY - }; - var group2 = graph.get("group"); - var matrix = group2.getMatrix(); - if (!matrix) { - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - } - if (isViewportChanged3(matrix)) { - point2 = graph.getPointByClient(evt.clientX, evt.clientY); - } - evt.x = point2.x; - evt.y = point2.y; - evt.currentTarget = graph; - if (target === canvas) { - if (eventType === "mousemove") { - this.handleMouseMove(evt, "canvas"); - } - evt.target = canvas; - evt.item = null; - graph.emit(eventType, evt); - graph.emit("canvas:" + eventType, evt); - return; - } - var itemShape = EventController4.getItemRoot(target); - if (!itemShape) { - graph.emit(eventType, evt); - return; - } - var item = itemShape.get("item"); - if (item.destroyed) { - return; - } - var type2 = item.getType(); - evt.target = target; - evt.item = item; - if (evt.canvasX === evt.x && evt.canvasY === evt.y) { - var canvasPoint = graph.getCanvasByPoint(evt.x, evt.y); - evt.canvasX = canvasPoint.x; - evt.canvasY = canvasPoint.y; - } - graph.emit(eventType, evt); - if (evt.name && !evt.name.includes(":")) - graph.emit(type2 + ":" + eventType, evt); - else - graph.emit(evt.name, evt); - if (eventType === "dragstart") { - this.dragging = true; - } - if (eventType === "dragend") { - this.dragging = false; - } - if (eventType === "mousemove") { - this.handleMouseMove(evt, type2); - } - }; - EventController4.prototype.onExtendEvents = function(evt) { - this.graph.emit(evt.type, evt); - }; - EventController4.prototype.onWheelEvent = function(evt) { - if (is_nil_default(evt.wheelDelta)) { - evt.wheelDelta = -evt.detail; - } - this.graph.emit("wheel", evt); - }; - EventController4.prototype.handleMouseMove = function(evt, type2) { - var _a6 = this, graph = _a6.graph, preItem = _a6.preItem; - var canvas = graph.get("canvas"); - var item = evt.target === canvas ? null : evt.item; - evt = cloneEvent3(evt); - if (preItem && preItem !== item && !preItem.destroyed) { - evt.item = preItem; - this.emitCustomEvent(preItem.getType(), "mouseleave", evt); - if (this.dragging) { - this.emitCustomEvent(preItem.getType(), "dragleave", evt); - } - } - if (item && preItem !== item) { - evt.item = item; - this.emitCustomEvent(type2, "mouseenter", evt); - if (this.dragging) { - this.emitCustomEvent(type2, "dragenter", evt); - } - } - this.preItem = item; - }; - EventController4.prototype.emitCustomEvent = function(itemType, eventType, evt) { - evt.type = eventType; - this.graph.emit(itemType + ":" + eventType, evt); - }; - EventController4.prototype.destroy = function() { - var _a6 = this, graph = _a6.graph, canvasHandler = _a6.canvasHandler, extendEvents = _a6.extendEvents; - var canvas = graph.get("canvas"); - canvas.off("*", canvasHandler); - each_default(extendEvents, function(event) { - event.remove(); - }); - this.dragging = false; - this.preItem = null; - this.extendEvents.length = 0; - this.canvasHandler = null; - this.destroyed = true; - }; - return EventController4; -}(event_default2); -var event_default3 = EventController3; - -// node_modules/@antv/layout/es/layout/base.js -var Base3 = class { - constructor() { - this.nodes = []; - this.edges = []; - this.combos = []; - this.positions = []; - this.destroyed = false; - this.onLayoutEnd = () => { - }; - } - layout(data3) { - this.init(data3); - return this.execute(true); - } - init(data3) { - this.nodes = data3.nodes || []; - this.edges = data3.edges || []; - this.combos = data3.combos || []; - } - execute(reloadData) { - } - executeWithWorker() { - } - getDefaultCfg() { - return {}; - } - updateCfg(cfg) { - if (cfg) { - Object.assign(this, cfg); - } - } - getType() { - return "base"; - } - destroy() { - this.nodes = null; - this.edges = null; - this.combos = null; - this.positions = null; - this.destroyed = true; - } -}; - -// node_modules/@antv/layout/es/util/string.js -var isString = (val) => typeof val === "string"; -var cacheStringFunction = (fn2) => { - const cache3 = Object.create(null); - return (str8) => { - const hit = cache3[str8]; - return hit || (cache3[str8] = fn2(str8)); - }; -}; -var camelizeRE = /-(\w)/g; -var camelize = cacheStringFunction((str8) => { - return str8.replace(camelizeRE, (_8, c5) => c5 ? c5.toUpperCase() : ""); -}); - -// node_modules/@antv/layout/es/util/array.js -var isArray2 = Array.isArray; - -// node_modules/@antv/layout/es/util/number.js -var isNumber3 = (val) => typeof val === "number"; -var isNaN4 = (num) => Number.isNaN(Number(num)); - -// node_modules/@antv/layout/es/util/object.js -var isObject2 = (val) => val !== null && typeof val === "object"; -var clone9 = (target) => { - if (target === null) { - return target; - } - if (target instanceof Date) { - return new Date(target.getTime()); - } - if (target instanceof Array) { - const cp = []; - target.forEach((v3) => { - cp.push(v3); - }); - return cp.map((n3) => clone9(n3)); - } - if (typeof target === "object" && target !== {}) { - const cp = Object.assign({}, target); - Object.keys(cp).forEach((k4) => { - cp[k4] = clone9(cp[k4]); - }); - return cp; - } - return target; -}; - -// node_modules/@antv/layout/es/util/math.js -var getEdgeTerminal = (edge2, type2) => { - const terminal = edge2[type2]; - if (isObject2(terminal)) { - return terminal.cell; - } - return terminal; -}; -var getDegree3 = (n3, nodeIdxMap, edges) => { - const degrees = []; - for (let i4 = 0; i4 < n3; i4++) { - degrees[i4] = 0; - } - if (!edges) - return degrees; - edges.forEach((e4) => { - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - if (source) { - degrees[nodeIdxMap[source]] += 1; - } - if (target) { - degrees[nodeIdxMap[target]] += 1; - } - }); - return degrees; -}; -var floydWarshall5 = (adjMatrix3) => { - const dist4 = []; - const size2 = adjMatrix3.length; - for (let i4 = 0; i4 < size2; i4 += 1) { - dist4[i4] = []; - for (let j4 = 0; j4 < size2; j4 += 1) { - if (i4 === j4) { - dist4[i4][j4] = 0; - } else if (adjMatrix3[i4][j4] === 0 || !adjMatrix3[i4][j4]) { - dist4[i4][j4] = Infinity; - } else { - dist4[i4][j4] = adjMatrix3[i4][j4]; - } - } - } - for (let k4 = 0; k4 < size2; k4 += 1) { - for (let i4 = 0; i4 < size2; i4 += 1) { - for (let j4 = 0; j4 < size2; j4 += 1) { - if (dist4[i4][j4] > dist4[i4][k4] + dist4[k4][j4]) { - dist4[i4][j4] = dist4[i4][k4] + dist4[k4][j4]; - } - } - } - } - return dist4; -}; -var getAdjMatrix3 = (data3, directed) => { - const { nodes, edges } = data3; - const matrix = []; - const nodeMap = {}; - if (!nodes) { - throw new Error("invalid nodes data!"); - } - if (nodes) { - nodes.forEach((node, i4) => { - nodeMap[node.id] = i4; - const row = []; - matrix.push(row); - }); - } - if (edges) { - edges.forEach((e4) => { - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - const sIndex = nodeMap[source]; - const tIndex = nodeMap[target]; - matrix[sIndex][tIndex] = 1; - if (!directed) { - matrix[tIndex][sIndex] = 1; - } - }); - } - return matrix; -}; -var scaleMatrix3 = (matrix, ratio) => { - const result = []; - matrix.forEach((row) => { - const newRow = []; - row.forEach((v3) => { - newRow.push(v3 * ratio); - }); - result.push(newRow); - }); - return result; -}; -var traverseUp3 = (data3, fn2) => { - if (data3 && data3.children) { - for (let i4 = data3.children.length - 1; i4 >= 0; i4--) { - if (!traverseUp3(data3.children[i4], fn2)) - return; - } - } - if (!fn2(data3)) { - return false; - } - return true; -}; -var traverseTreeUp3 = (data3, fn2) => { - if (typeof fn2 !== "function") { - return; - } - traverseUp3(data3, fn2); -}; - -// node_modules/@antv/layout/es/util/function.js -var isFunction = (val) => typeof val === "function"; - -// node_modules/@antv/layout/es/registy/index.js -var map5 = new Map(); -var registerLayout = (name, layoutOverride) => { - if (map5.get(name)) { - console.warn(`The layout with the name ${name} exists already, it will be overridden`); - } - if (isObject2(layoutOverride)) { - class GLayout extends Base3 { - constructor(cfg) { - super(); - const self2 = this; - const props = {}; - const defaultCfg2 = self2.getDefaultCfg(); - Object.assign(props, defaultCfg2, layoutOverride, cfg); - Object.keys(props).forEach((key) => { - const value2 = props[key]; - self2[key] = value2; - }); - } - } - map5.set(name, GLayout); - } else { - map5.set(name, layoutOverride); - } - return map5.get(name); -}; - -// node_modules/@antv/layout/es/layout/grid.js -var GridLayout = class extends Base3 { - constructor(options) { - super(); - this.begin = [0, 0]; - this.preventOverlap = true; - this.preventOverlapPadding = 10; - this.condense = false; - this.sortBy = "degree"; - this.nodeSize = 30; - this.nodes = []; - this.edges = []; - this.width = 300; - this.height = 300; - this.row = 0; - this.col = 0; - this.cellWidth = 0; - this.cellHeight = 0; - this.cellUsed = {}; - this.id2manPos = {}; - this.onLayoutEnd = () => { - }; - this.updateCfg(options); - } - getDefaultCfg() { - return { - begin: [0, 0], - preventOverlap: true, - preventOverlapPadding: 10, - condense: false, - rows: void 0, - cols: void 0, - position: void 0, - sortBy: "degree", - nodeSize: 30 - }; - } - execute() { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges; - const n3 = nodes.length; - const begin = self2.begin; - if (n3 === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes, - edges - }; - } - if (n3 === 1) { - nodes[0].x = begin[0]; - nodes[0].y = begin[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes, - edges - }; - } - const layoutNodes2 = []; - nodes.forEach((node) => { - layoutNodes2.push(node); - }); - const nodeIdxMap = {}; - layoutNodes2.forEach((node, i4) => { - nodeIdxMap[node.id] = i4; - }); - if (self2.sortBy === "degree" || !isString(self2.sortBy) || layoutNodes2[0][self2.sortBy] === void 0) { - self2.sortBy = "degree"; - if (isNaN4(nodes[0].degree)) { - const values2 = getDegree3(layoutNodes2.length, nodeIdxMap, edges); - layoutNodes2.forEach((node, i4) => { - node.degree = values2[i4]; - }); - } - } - layoutNodes2.sort((n1, n22) => n22[self2.sortBy] - n1[self2.sortBy]); - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - const oRows = self2.rows; - const oCols = self2.cols != null ? self2.cols : self2.columns; - self2.cells = n3; - if (oRows != null && oCols != null) { - self2.rows = oRows; - self2.cols = oCols; - } else if (oRows != null && oCols == null) { - self2.rows = oRows; - self2.cols = Math.ceil(self2.cells / self2.rows); - } else if (oRows == null && oCols != null) { - self2.cols = oCols; - self2.rows = Math.ceil(self2.cells / self2.cols); - } else { - self2.splits = Math.sqrt(self2.cells * self2.height / self2.width); - self2.rows = Math.round(self2.splits); - self2.cols = Math.round(self2.width / self2.height * self2.splits); - } - if (self2.cols * self2.rows > self2.cells) { - const sm = self2.small(); - const lg = self2.large(); - if ((sm - 1) * lg >= self2.cells) { - self2.small(sm - 1); - } else if ((lg - 1) * sm >= self2.cells) { - self2.large(lg - 1); - } - } else { - while (self2.cols * self2.rows < self2.cells) { - const sm = self2.small(); - const lg = self2.large(); - if ((lg + 1) * sm >= self2.cells) { - self2.large(lg + 1); - } else { - self2.small(sm + 1); - } - } - } - self2.cellWidth = self2.width / self2.cols; - self2.cellHeight = self2.height / self2.rows; - if (self2.condense) { - self2.cellWidth = 0; - self2.cellHeight = 0; - } - if (self2.preventOverlap) { - layoutNodes2.forEach((node) => { - if (!node.x || !node.y) { - node.x = 0; - node.y = 0; - } - let nodew; - let nodeh; - if (isArray2(node.size)) { - nodew = node.size[0]; - nodeh = node.size[1]; - } else if (isNumber3(node.size)) { - nodew = node.size; - nodeh = node.size; - } else if (isObject2(node.size)) { - nodew = node.size.width; - nodeh = node.size.height; - } - if (nodew === void 0 || nodeh === void 0) { - if (isArray2(self2.nodeSize)) { - nodew = self2.nodeSize[0]; - nodeh = self2.nodeSize[1]; - } else if (isNumber3(self2.nodeSize)) { - nodew = self2.nodeSize; - nodeh = self2.nodeSize; - } else { - nodew = 30; - nodeh = 30; - } - } - const p4 = self2.preventOverlapPadding; - const w4 = nodew + p4; - const h3 = nodeh + p4; - self2.cellWidth = Math.max(self2.cellWidth, w4); - self2.cellHeight = Math.max(self2.cellHeight, h3); - }); - } - self2.cellUsed = {}; - self2.row = 0; - self2.col = 0; - self2.id2manPos = {}; - for (let i4 = 0; i4 < layoutNodes2.length; i4++) { - const node = layoutNodes2[i4]; - let rcPos; - if (self2.position) { - rcPos = self2.position(node); - } - if (rcPos && (rcPos.row !== void 0 || rcPos.col !== void 0)) { - const pos = { - row: rcPos.row, - col: rcPos.col - }; - if (pos.col === void 0) { - pos.col = 0; - while (self2.used(pos.row, pos.col)) { - pos.col++; - } - } else if (pos.row === void 0) { - pos.row = 0; - while (self2.used(pos.row, pos.col)) { - pos.row++; - } - } - self2.id2manPos[node.id] = pos; - self2.use(pos.row, pos.col); - } - self2.getPos(node); - } - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - edges, - nodes: layoutNodes2 - }; - } - small(val) { - const self2 = this; - let res; - const rows = self2.rows || 5; - const cols = self2.cols || 5; - if (val == null) { - res = Math.min(rows, cols); - } else { - const min7 = Math.min(rows, cols); - if (min7 === self2.rows) { - self2.rows = val; - } else { - self2.cols = val; - } - } - return res; - } - large(val) { - const self2 = this; - let res; - const rows = self2.rows || 5; - const cols = self2.cols || 5; - if (val == null) { - res = Math.max(rows, cols); - } else { - const max8 = Math.max(rows, cols); - if (max8 === self2.rows) { - self2.rows = val; - } else { - self2.cols = val; - } - } - return res; - } - used(row, col) { - const self2 = this; - return self2.cellUsed[`c-${row}-${col}`] || false; - } - use(row, col) { - const self2 = this; - self2.cellUsed[`c-${row}-${col}`] = true; - } - moveToNextCell() { - const self2 = this; - const cols = self2.cols || 5; - self2.col++; - if (self2.col >= cols) { - self2.col = 0; - self2.row++; - } - } - getPos(node) { - const self2 = this; - const begin = self2.begin; - const cellWidth = self2.cellWidth; - const cellHeight = self2.cellHeight; - let x6; - let y5; - const rcPos = self2.id2manPos[node.id]; - if (rcPos) { - x6 = rcPos.col * cellWidth + cellWidth / 2 + begin[0]; - y5 = rcPos.row * cellHeight + cellHeight / 2 + begin[1]; - } else { - while (self2.used(self2.row, self2.col)) { - self2.moveToNextCell(); - } - x6 = self2.col * cellWidth + cellWidth / 2 + begin[0]; - y5 = self2.row * cellHeight + cellHeight / 2 + begin[1]; - self2.use(self2.row, self2.col); - self2.moveToNextCell(); - } - node.x = x6; - node.y = y5; - } - getType() { - return "grid"; - } -}; - -// node_modules/@antv/layout/es/layout/random.js -var RandomLayout = class extends Base3 { - constructor(options) { - super(); - this.center = [0, 0]; - this.width = 300; - this.height = 300; - this.nodes = []; - this.edges = []; - this.onLayoutEnd = () => { - }; - this.updateCfg(options); - } - getDefaultCfg() { - return { - center: [0, 0], - width: 300, - height: 300 - }; - } - execute() { - const self2 = this; - const nodes = self2.nodes; - const layoutScale = 0.9; - const center2 = self2.center; - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (nodes) { - nodes.forEach((node) => { - node.x = (Math.random() - 0.5) * layoutScale * self2.width + center2[0]; - node.y = (Math.random() - 0.5) * layoutScale * self2.height + center2[1]; - }); - } - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes, - edges: this.edges - }; - } - getType() { - return "random"; - } -}; - -// node_modules/@antv/layout/es/layout/gForce.js -var proccessToFunc = (value2, defaultV) => { - let func; - if (!value2) { - func = (d3) => { - return defaultV || 1; - }; - } else if (isNumber3(value2)) { - func = (d3) => { - return value2; - }; - } else { - func = value2; - } - return func; -}; -var GForceLayout = class extends Base3 { - constructor(options) { - super(); - this.maxIteration = 1e3; - this.workerEnabled = false; - this.edgeStrength = 200; - this.nodeStrength = 1e3; - this.coulombDisScale = 5e-3; - this.damping = 0.9; - this.maxSpeed = 1e3; - this.minMovement = 0.5; - this.interval = 0.02; - this.factor = 1; - this.linkDistance = 1; - this.gravity = 10; - this.preventOverlap = true; - this.tick = () => { - }; - this.nodes = []; - this.edges = []; - this.width = 300; - this.height = 300; - this.nodeMap = {}; - this.nodeIdxMap = {}; - this.updateCfg(options); - } - getDefaultCfg() { - return { - maxIteration: 500, - gravity: 10, - enableTick: true - }; - } - execute() { - var _a6, _b; - const self2 = this; - const nodes = self2.nodes; - if (self2.timeInterval !== void 0 && typeof window !== "undefined") { - window.clearInterval(self2.timeInterval); - } - if (!nodes || nodes.length === 0) { - (_a6 = self2.onLayoutEnd) === null || _a6 === void 0 ? void 0 : _a6.call(self2); - return; - } - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (!self2.center) { - self2.center = [self2.width / 2, self2.height / 2]; - } - const center2 = self2.center; - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - (_b = self2.onLayoutEnd) === null || _b === void 0 ? void 0 : _b.call(self2); - return; - } - const nodeMap = {}; - const nodeIdxMap = {}; - nodes.forEach((node, i4) => { - if (!isNumber3(node.x)) - node.x = Math.random() * self2.width; - if (!isNumber3(node.y)) - node.y = Math.random() * self2.height; - nodeMap[node.id] = node; - nodeIdxMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - self2.nodeIdxMap = nodeIdxMap; - self2.linkDistance = proccessToFunc(self2.linkDistance, 1); - self2.nodeStrength = proccessToFunc(self2.nodeStrength, 1); - self2.edgeStrength = proccessToFunc(self2.edgeStrength, 1); - const nodeSize = self2.nodeSize; - let nodeSizeFunc; - if (self2.preventOverlap) { - const nodeSpacing = self2.nodeSpacing; - let nodeSpacingFunc; - if (isNumber3(nodeSpacing)) { - nodeSpacingFunc = () => nodeSpacing; - } else if (isFunction(nodeSpacing)) { - nodeSpacingFunc = nodeSpacing; - } else { - nodeSpacingFunc = () => 0; - } - if (!nodeSize) { - nodeSizeFunc = (d3) => { - if (d3.size) { - if (isArray2(d3.size)) { - const res = d3.size[0] > d3.size[1] ? d3.size[0] : d3.size[1]; - return res + nodeSpacingFunc(d3); - } - if (isObject2(d3.size)) { - const res = d3.size.width > d3.size.height ? d3.size.width : d3.size.height; - return res + nodeSpacingFunc(d3); - } - return d3.size + nodeSpacingFunc(d3); - } - return 10 + nodeSpacingFunc(d3); - }; - } else if (isArray2(nodeSize)) { - nodeSizeFunc = (d3) => { - const res = nodeSize[0] > nodeSize[1] ? nodeSize[0] : nodeSize[1]; - return res + nodeSpacingFunc(d3); - }; - } else { - nodeSizeFunc = (d3) => nodeSize + nodeSpacingFunc(d3); - } - } - self2.nodeSize = nodeSizeFunc; - const edges = self2.edges; - self2.degrees = getDegree3(nodes.length, self2.nodeIdxMap, edges); - if (!self2.getMass) { - self2.getMass = (d3) => { - const mass = self2.degrees[self2.nodeIdxMap[d3.id]] || 1; - return mass; - }; - } - self2.run(); - } - run() { - var _a6; - const self2 = this; - const { maxIteration, nodes, workerEnabled, minMovement } = self2; - if (!nodes) - return; - if (workerEnabled) { - for (let i4 = 0; i4 < maxIteration; i4++) { - const previousPos = self2.runOneStep(i4); - if (self2.reachMoveThreshold(nodes, previousPos, minMovement)) { - break; - } - } - (_a6 = self2.onLayoutEnd) === null || _a6 === void 0 ? void 0 : _a6.call(self2); - } else { - if (typeof window === "undefined") - return; - let iter = 0; - this.timeInterval = window.setInterval(() => { - var _a7, _b; - if (!nodes) - return; - const previousPos = self2.runOneStep(iter) || []; - if (self2.reachMoveThreshold(nodes, previousPos, minMovement)) { - (_a7 = self2.onLayoutEnd) === null || _a7 === void 0 ? void 0 : _a7.call(self2); - window.clearInterval(self2.timeInterval); - } - iter++; - if (iter >= maxIteration) { - (_b = self2.onLayoutEnd) === null || _b === void 0 ? void 0 : _b.call(self2); - window.clearInterval(self2.timeInterval); - } - }, 0); - } - } - reachMoveThreshold(nodes, previousPos, minMovement) { - let movement = 0; - nodes.forEach((node, j4) => { - const vx = node.x - previousPos[j4].x; - const vy = node.y - previousPos[j4].y; - movement += Math.sqrt(vx * vx + vy * vy); - }); - movement /= nodes.length; - return movement < minMovement; - } - runOneStep(iter) { - var _a6; - const self2 = this; - const { nodes, edges } = self2; - const accArray = []; - const velArray = []; - if (!nodes) - return; - nodes.forEach((_8, i4) => { - accArray[2 * i4] = 0; - accArray[2 * i4 + 1] = 0; - velArray[2 * i4] = 0; - velArray[2 * i4 + 1] = 0; - }); - self2.calRepulsive(accArray, nodes); - if (edges) - self2.calAttractive(accArray, edges); - self2.calGravity(accArray, nodes); - const stepInterval = Math.max(0.02, self2.interval - iter * 2e-3); - self2.updateVelocity(accArray, velArray, stepInterval, nodes); - const previousPos = []; - nodes.forEach((node) => { - previousPos.push({ - x: node.x, - y: node.y - }); - }); - self2.updatePosition(velArray, stepInterval, nodes); - (_a6 = self2.tick) === null || _a6 === void 0 ? void 0 : _a6.call(self2); - return previousPos; - } - calRepulsive(accArray, nodes) { - const self2 = this; - const getMass = self2.getMass; - const nodeStrength = self2.nodeStrength; - const factor = self2.factor; - const coulombDisScale = self2.coulombDisScale; - const preventOverlap = self2.preventOverlap; - const nodeSize = self2.nodeSize; - nodes.forEach((ni, i4) => { - const massi = getMass ? getMass(ni) : 1; - nodes.forEach((nj, j4) => { - if (i4 >= j4) - return; - const vecX = ni.x - nj.x; - const vecY = ni.y - nj.y; - const vecLength = Math.sqrt(vecX * vecX + vecY * vecY) + 0.01; - const nVecLength = (vecLength + 0.1) * coulombDisScale; - const direX = vecX / vecLength; - const direY = vecY / vecLength; - const param = (nodeStrength(ni) + nodeStrength(nj)) / 2 * factor / (nVecLength * nVecLength); - const massj = getMass ? getMass(nj) : 1; - accArray[2 * i4] += direX * param; - accArray[2 * i4 + 1] += direY * param; - accArray[2 * j4] -= direX * param; - accArray[2 * j4 + 1] -= direY * param; - if (preventOverlap && vecLength < (nodeSize(ni) + nodeSize(nj)) / 2) { - const paramOverlap = (nodeStrength(ni) + nodeStrength(nj)) / 2 / (vecLength * vecLength); - accArray[2 * i4] += direX * paramOverlap / massi; - accArray[2 * i4 + 1] += direY * paramOverlap / massi; - accArray[2 * j4] -= direX * paramOverlap / massj; - accArray[2 * j4 + 1] -= direY * paramOverlap / massj; - } - }); - }); - } - calAttractive(accArray, edges) { - const self2 = this; - const nodeMap = self2.nodeMap; - const nodeIdxMap = self2.nodeIdxMap; - const linkDistance = self2.linkDistance; - const edgeStrength = self2.edgeStrength; - const getMass = self2.getMass; - edges.forEach((edge2, i4) => { - const source = getEdgeTerminal(edge2, "source"); - const target = getEdgeTerminal(edge2, "target"); - const sourceNode = nodeMap[source]; - const targetNode = nodeMap[target]; - const vecX = targetNode.x - sourceNode.x; - const vecY = targetNode.y - sourceNode.y; - const vecLength = Math.sqrt(vecX * vecX + vecY * vecY) + 0.01; - const direX = vecX / vecLength; - const direY = vecY / vecLength; - const length5 = linkDistance(edge2) || 1; - const diff2 = length5 - vecLength; - const param = diff2 * edgeStrength(edge2); - const sourceIdx = nodeIdxMap[source]; - const targetIdx = nodeIdxMap[target]; - const massSource = getMass ? getMass(sourceNode) : 1; - const massTarget = getMass ? getMass(targetNode) : 1; - accArray[2 * sourceIdx] -= direX * param / massSource; - accArray[2 * sourceIdx + 1] -= direY * param / massSource; - accArray[2 * targetIdx] += direX * param / massTarget; - accArray[2 * targetIdx + 1] += direY * param / massTarget; - }); - } - calGravity(accArray, nodes) { - const self2 = this; - const center2 = self2.center; - const defaultGravity = self2.gravity; - const degrees = self2.degrees; - const nodeLength = nodes.length; - for (let i4 = 0; i4 < nodeLength; i4++) { - const node = nodes[i4]; - let vecX = node.x - center2[0]; - let vecY = node.y - center2[1]; - let gravity = defaultGravity; - if (self2.getCenter) { - const customCenterOpt = self2.getCenter(node, degrees[i4]); - if (customCenterOpt && isNumber3(customCenterOpt[0]) && isNumber3(customCenterOpt[1]) && isNumber3(customCenterOpt[2])) { - vecX = node.x - customCenterOpt[0]; - vecY = node.y - customCenterOpt[1]; - gravity = customCenterOpt[2]; - } - } - if (!gravity) - continue; - accArray[2 * i4] -= gravity * vecX; - accArray[2 * i4 + 1] -= gravity * vecY; - } - } - updateVelocity(accArray, velArray, stepInterval, nodes) { - const self2 = this; - const param = stepInterval * self2.damping; - nodes.forEach((node, i4) => { - let vx = accArray[2 * i4] * param || 0.01; - let vy = accArray[2 * i4 + 1] * param || 0.01; - const vLength = Math.sqrt(vx * vx + vy * vy); - if (vLength > self2.maxSpeed) { - const param2 = self2.maxSpeed / vLength; - vx = param2 * vx; - vy = param2 * vy; - } - velArray[2 * i4] = vx; - velArray[2 * i4 + 1] = vy; - }); - } - updatePosition(velArray, stepInterval, nodes) { - nodes.forEach((node, i4) => { - if (isNumber3(node.fx) && isNumber3(node.fy)) { - node.x = node.fx; - node.y = node.fy; - return; - } - const distX = velArray[2 * i4] * stepInterval; - const distY = velArray[2 * i4 + 1] * stepInterval; - node.x += distX; - node.y += distY; - }); - } - stop() { - if (this.timeInterval && typeof window !== "undefined") { - window.clearInterval(this.timeInterval); - } - } - destroy() { - const self2 = this; - self2.stop(); - self2.tick = null; - self2.nodes = null; - self2.edges = null; - self2.destroyed = true; - } - getType() { - return "gForce"; - } -}; - -// node_modules/d3-force/src/center.js -function center_default(x6, y5) { - var nodes, strength = 1; - if (x6 == null) - x6 = 0; - if (y5 == null) - y5 = 0; - function force() { - var i4, n3 = nodes.length, node, sx = 0, sy = 0; - for (i4 = 0; i4 < n3; ++i4) { - node = nodes[i4], sx += node.x, sy += node.y; - } - for (sx = (sx / n3 - x6) * strength, sy = (sy / n3 - y5) * strength, i4 = 0; i4 < n3; ++i4) { - node = nodes[i4], node.x -= sx, node.y -= sy; - } - } - force.initialize = function(_8) { - nodes = _8; - }; - force.x = function(_8) { - return arguments.length ? (x6 = +_8, force) : x6; - }; - force.y = function(_8) { - return arguments.length ? (y5 = +_8, force) : y5; - }; - force.strength = function(_8) { - return arguments.length ? (strength = +_8, force) : strength; - }; - return force; -} - -// node_modules/d3-quadtree/src/add.js -function add_default(d3) { - const x6 = +this._x.call(null, d3), y5 = +this._y.call(null, d3); - return add7(this.cover(x6, y5), x6, y5, d3); -} -function add7(tree, x6, y5, d3) { - if (isNaN(x6) || isNaN(y5)) - return tree; - var parent, node = tree._root, leaf = { data: d3 }, x0 = tree._x0, y0 = tree._y0, x1 = tree._x1, y1 = tree._y1, xm, ym, xp, yp, right2, bottom, i4, j4; - if (!node) - return tree._root = leaf, tree; - while (node.length) { - if (right2 = x6 >= (xm = (x0 + x1) / 2)) - x0 = xm; - else - x1 = xm; - if (bottom = y5 >= (ym = (y0 + y1) / 2)) - y0 = ym; - else - y1 = ym; - if (parent = node, !(node = node[i4 = bottom << 1 | right2])) - return parent[i4] = leaf, tree; - } - xp = +tree._x.call(null, node.data); - yp = +tree._y.call(null, node.data); - if (x6 === xp && y5 === yp) - return leaf.next = node, parent ? parent[i4] = leaf : tree._root = leaf, tree; - do { - parent = parent ? parent[i4] = new Array(4) : tree._root = new Array(4); - if (right2 = x6 >= (xm = (x0 + x1) / 2)) - x0 = xm; - else - x1 = xm; - if (bottom = y5 >= (ym = (y0 + y1) / 2)) - y0 = ym; - else - y1 = ym; - } while ((i4 = bottom << 1 | right2) === (j4 = (yp >= ym) << 1 | xp >= xm)); - return parent[j4] = node, parent[i4] = leaf, tree; -} -function addAll(data3) { - var d3, i4, n3 = data3.length, x6, y5, xz = new Array(n3), yz = new Array(n3), x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity; - for (i4 = 0; i4 < n3; ++i4) { - if (isNaN(x6 = +this._x.call(null, d3 = data3[i4])) || isNaN(y5 = +this._y.call(null, d3))) - continue; - xz[i4] = x6; - yz[i4] = y5; - if (x6 < x0) - x0 = x6; - if (x6 > x1) - x1 = x6; - if (y5 < y0) - y0 = y5; - if (y5 > y1) - y1 = y5; - } - if (x0 > x1 || y0 > y1) - return this; - this.cover(x0, y0).cover(x1, y1); - for (i4 = 0; i4 < n3; ++i4) { - add7(this, xz[i4], yz[i4], data3[i4]); - } - return this; -} - -// node_modules/d3-quadtree/src/cover.js -function cover_default(x6, y5) { - if (isNaN(x6 = +x6) || isNaN(y5 = +y5)) - return this; - var x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1; - if (isNaN(x0)) { - x1 = (x0 = Math.floor(x6)) + 1; - y1 = (y0 = Math.floor(y5)) + 1; - } else { - var z3 = x1 - x0 || 1, node = this._root, parent, i4; - while (x0 > x6 || x6 >= x1 || y0 > y5 || y5 >= y1) { - i4 = (y5 < y0) << 1 | x6 < x0; - parent = new Array(4), parent[i4] = node, node = parent, z3 *= 2; - switch (i4) { - case 0: - x1 = x0 + z3, y1 = y0 + z3; - break; - case 1: - x0 = x1 - z3, y1 = y0 + z3; - break; - case 2: - x1 = x0 + z3, y0 = y1 - z3; - break; - case 3: - x0 = x1 - z3, y0 = y1 - z3; - break; - } - } - if (this._root && this._root.length) - this._root = node; - } - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - return this; -} - -// node_modules/d3-quadtree/src/data.js -function data_default() { - var data3 = []; - this.visit(function(node) { - if (!node.length) - do - data3.push(node.data); - while (node = node.next); - }); - return data3; -} - -// node_modules/d3-quadtree/src/extent.js -function extent_default(_8) { - return arguments.length ? this.cover(+_8[0][0], +_8[0][1]).cover(+_8[1][0], +_8[1][1]) : isNaN(this._x0) ? void 0 : [[this._x0, this._y0], [this._x1, this._y1]]; -} - -// node_modules/d3-quadtree/src/quad.js -function quad_default(node, x0, y0, x1, y1) { - this.node = node; - this.x0 = x0; - this.y0 = y0; - this.x1 = x1; - this.y1 = y1; -} - -// node_modules/d3-quadtree/src/find.js -function find_default3(x6, y5, radius) { - var data3, x0 = this._x0, y0 = this._y0, x1, y1, x22, y22, x32 = this._x1, y32 = this._y1, quads = [], node = this._root, q4, i4; - if (node) - quads.push(new quad_default(node, x0, y0, x32, y32)); - if (radius == null) - radius = Infinity; - else { - x0 = x6 - radius, y0 = y5 - radius; - x32 = x6 + radius, y32 = y5 + radius; - radius *= radius; - } - while (q4 = quads.pop()) { - if (!(node = q4.node) || (x1 = q4.x0) > x32 || (y1 = q4.y0) > y32 || (x22 = q4.x1) < x0 || (y22 = q4.y1) < y0) - continue; - if (node.length) { - var xm = (x1 + x22) / 2, ym = (y1 + y22) / 2; - quads.push(new quad_default(node[3], xm, ym, x22, y22), new quad_default(node[2], x1, ym, xm, y22), new quad_default(node[1], xm, y1, x22, ym), new quad_default(node[0], x1, y1, xm, ym)); - if (i4 = (y5 >= ym) << 1 | x6 >= xm) { - q4 = quads[quads.length - 1]; - quads[quads.length - 1] = quads[quads.length - 1 - i4]; - quads[quads.length - 1 - i4] = q4; - } - } else { - var dx = x6 - +this._x.call(null, node.data), dy = y5 - +this._y.call(null, node.data), d22 = dx * dx + dy * dy; - if (d22 < radius) { - var d3 = Math.sqrt(radius = d22); - x0 = x6 - d3, y0 = y5 - d3; - x32 = x6 + d3, y32 = y5 + d3; - data3 = node.data; - } - } - } - return data3; -} - -// node_modules/d3-quadtree/src/remove.js -function remove_default2(d3) { - if (isNaN(x6 = +this._x.call(null, d3)) || isNaN(y5 = +this._y.call(null, d3))) - return this; - var parent, node = this._root, retainer, previous, next, x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1, x6, y5, xm, ym, right2, bottom, i4, j4; - if (!node) - return this; - if (node.length) - while (true) { - if (right2 = x6 >= (xm = (x0 + x1) / 2)) - x0 = xm; - else - x1 = xm; - if (bottom = y5 >= (ym = (y0 + y1) / 2)) - y0 = ym; - else - y1 = ym; - if (!(parent = node, node = node[i4 = bottom << 1 | right2])) - return this; - if (!node.length) - break; - if (parent[i4 + 1 & 3] || parent[i4 + 2 & 3] || parent[i4 + 3 & 3]) - retainer = parent, j4 = i4; - } - while (node.data !== d3) - if (!(previous = node, node = node.next)) - return this; - if (next = node.next) - delete node.next; - if (previous) - return next ? previous.next = next : delete previous.next, this; - if (!parent) - return this._root = next, this; - next ? parent[i4] = next : delete parent[i4]; - if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) { - if (retainer) - retainer[j4] = node; - else - this._root = node; - } - return this; -} -function removeAll(data3) { - for (var i4 = 0, n3 = data3.length; i4 < n3; ++i4) - this.remove(data3[i4]); - return this; -} - -// node_modules/d3-quadtree/src/root.js -function root_default() { - return this._root; -} - -// node_modules/d3-quadtree/src/size.js -function size_default2() { - var size2 = 0; - this.visit(function(node) { - if (!node.length) - do - ++size2; - while (node = node.next); - }); - return size2; -} - -// node_modules/d3-quadtree/src/visit.js -function visit_default(callback) { - var quads = [], q4, node = this._root, child, x0, y0, x1, y1; - if (node) - quads.push(new quad_default(node, this._x0, this._y0, this._x1, this._y1)); - while (q4 = quads.pop()) { - if (!callback(node = q4.node, x0 = q4.x0, y0 = q4.y0, x1 = q4.x1, y1 = q4.y1) && node.length) { - var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[3]) - quads.push(new quad_default(child, xm, ym, x1, y1)); - if (child = node[2]) - quads.push(new quad_default(child, x0, ym, xm, y1)); - if (child = node[1]) - quads.push(new quad_default(child, xm, y0, x1, ym)); - if (child = node[0]) - quads.push(new quad_default(child, x0, y0, xm, ym)); - } - } - return this; -} - -// node_modules/d3-quadtree/src/visitAfter.js -function visitAfter_default(callback) { - var quads = [], next = [], q4; - if (this._root) - quads.push(new quad_default(this._root, this._x0, this._y0, this._x1, this._y1)); - while (q4 = quads.pop()) { - var node = q4.node; - if (node.length) { - var child, x0 = q4.x0, y0 = q4.y0, x1 = q4.x1, y1 = q4.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[0]) - quads.push(new quad_default(child, x0, y0, xm, ym)); - if (child = node[1]) - quads.push(new quad_default(child, xm, y0, x1, ym)); - if (child = node[2]) - quads.push(new quad_default(child, x0, ym, xm, y1)); - if (child = node[3]) - quads.push(new quad_default(child, xm, ym, x1, y1)); - } - next.push(q4); - } - while (q4 = next.pop()) { - callback(q4.node, q4.x0, q4.y0, q4.x1, q4.y1); - } - return this; -} - -// node_modules/d3-quadtree/src/x.js -function defaultX(d3) { - return d3[0]; -} -function x_default(_8) { - return arguments.length ? (this._x = _8, this) : this._x; -} - -// node_modules/d3-quadtree/src/y.js -function defaultY(d3) { - return d3[1]; -} -function y_default(_8) { - return arguments.length ? (this._y = _8, this) : this._y; -} - -// node_modules/d3-quadtree/src/quadtree.js -function quadtree(nodes, x6, y5) { - var tree = new Quadtree(x6 == null ? defaultX : x6, y5 == null ? defaultY : y5, NaN, NaN, NaN, NaN); - return nodes == null ? tree : tree.addAll(nodes); -} -function Quadtree(x6, y5, x0, y0, x1, y1) { - this._x = x6; - this._y = y5; - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - this._root = void 0; -} -function leaf_copy(leaf) { - var copy8 = { data: leaf.data }, next = copy8; - while (leaf = leaf.next) - next = next.next = { data: leaf.data }; - return copy8; -} -var treeProto = quadtree.prototype = Quadtree.prototype; -treeProto.copy = function() { - var copy8 = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child; - if (!node) - return copy8; - if (!node.length) - return copy8._root = leaf_copy(node), copy8; - nodes = [{ source: node, target: copy8._root = new Array(4) }]; - while (node = nodes.pop()) { - for (var i4 = 0; i4 < 4; ++i4) { - if (child = node.source[i4]) { - if (child.length) - nodes.push({ source: child, target: node.target[i4] = new Array(4) }); - else - node.target[i4] = leaf_copy(child); - } - } - } - return copy8; -}; -treeProto.add = add_default; -treeProto.addAll = addAll; -treeProto.cover = cover_default; -treeProto.data = data_default; -treeProto.extent = extent_default; -treeProto.find = find_default3; -treeProto.remove = remove_default2; -treeProto.removeAll = removeAll; -treeProto.root = root_default; -treeProto.size = size_default2; -treeProto.visit = visit_default; -treeProto.visitAfter = visitAfter_default; -treeProto.x = x_default; -treeProto.y = y_default; - -// node_modules/d3-force/src/constant.js -function constant_default3(x6) { - return function() { - return x6; - }; -} - -// node_modules/d3-force/src/jiggle.js -function jiggle_default(random5) { - return (random5() - 0.5) * 1e-6; -} - -// node_modules/d3-force/src/collide.js -function x4(d3) { - return d3.x + d3.vx; -} -function y3(d3) { - return d3.y + d3.vy; -} -function collide_default(radius) { - var nodes, radii, random5, strength = 1, iterations = 1; - if (typeof radius !== "function") - radius = constant_default3(radius == null ? 1 : +radius); - function force() { - var i4, n3 = nodes.length, tree, node, xi, yi, ri, ri2; - for (var k4 = 0; k4 < iterations; ++k4) { - tree = quadtree(nodes, x4, y3).visitAfter(prepare); - for (i4 = 0; i4 < n3; ++i4) { - node = nodes[i4]; - ri = radii[node.index], ri2 = ri * ri; - xi = node.x + node.vx; - yi = node.y + node.vy; - tree.visit(apply); - } - } - function apply(quad, x0, y0, x1, y1) { - var data3 = quad.data, rj = quad.r, r4 = ri + rj; - if (data3) { - if (data3.index > node.index) { - var x6 = xi - data3.x - data3.vx, y5 = yi - data3.y - data3.vy, l4 = x6 * x6 + y5 * y5; - if (l4 < r4 * r4) { - if (x6 === 0) - x6 = jiggle_default(random5), l4 += x6 * x6; - if (y5 === 0) - y5 = jiggle_default(random5), l4 += y5 * y5; - l4 = (r4 - (l4 = Math.sqrt(l4))) / l4 * strength; - node.vx += (x6 *= l4) * (r4 = (rj *= rj) / (ri2 + rj)); - node.vy += (y5 *= l4) * r4; - data3.vx -= x6 * (r4 = 1 - r4); - data3.vy -= y5 * r4; - } - } - return; - } - return x0 > xi + r4 || x1 < xi - r4 || y0 > yi + r4 || y1 < yi - r4; - } - } - function prepare(quad) { - if (quad.data) - return quad.r = radii[quad.data.index]; - for (var i4 = quad.r = 0; i4 < 4; ++i4) { - if (quad[i4] && quad[i4].r > quad.r) { - quad.r = quad[i4].r; - } - } - } - function initialize() { - if (!nodes) - return; - var i4, n3 = nodes.length, node; - radii = new Array(n3); - for (i4 = 0; i4 < n3; ++i4) - node = nodes[i4], radii[node.index] = +radius(node, i4, nodes); - } - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random5 = _random; - initialize(); - }; - force.iterations = function(_8) { - return arguments.length ? (iterations = +_8, force) : iterations; - }; - force.strength = function(_8) { - return arguments.length ? (strength = +_8, force) : strength; - }; - force.radius = function(_8) { - return arguments.length ? (radius = typeof _8 === "function" ? _8 : constant_default3(+_8), initialize(), force) : radius; - }; - return force; -} - -// node_modules/d3-force/src/link.js -function index(d3) { - return d3.index; -} -function find3(nodeById, nodeId) { - var node = nodeById.get(nodeId); - if (!node) - throw new Error("node not found: " + nodeId); - return node; -} -function link_default(links) { - var id = index, strength = defaultStrength, strengths, distance15 = constant_default3(30), distances, nodes, count2, bias, random5, iterations = 1; - if (links == null) - links = []; - function defaultStrength(link) { - return 1 / Math.min(count2[link.source.index], count2[link.target.index]); - } - function force(alpha) { - for (var k4 = 0, n3 = links.length; k4 < iterations; ++k4) { - for (var i4 = 0, link, source, target, x6, y5, l4, b10; i4 < n3; ++i4) { - link = links[i4], source = link.source, target = link.target; - x6 = target.x + target.vx - source.x - source.vx || jiggle_default(random5); - y5 = target.y + target.vy - source.y - source.vy || jiggle_default(random5); - l4 = Math.sqrt(x6 * x6 + y5 * y5); - l4 = (l4 - distances[i4]) / l4 * alpha * strengths[i4]; - x6 *= l4, y5 *= l4; - target.vx -= x6 * (b10 = bias[i4]); - target.vy -= y5 * b10; - source.vx += x6 * (b10 = 1 - b10); - source.vy += y5 * b10; - } - } - } - function initialize() { - if (!nodes) - return; - var i4, n3 = nodes.length, m4 = links.length, nodeById = new Map(nodes.map((d3, i5) => [id(d3, i5, nodes), d3])), link; - for (i4 = 0, count2 = new Array(n3); i4 < m4; ++i4) { - link = links[i4], link.index = i4; - if (typeof link.source !== "object") - link.source = find3(nodeById, link.source); - if (typeof link.target !== "object") - link.target = find3(nodeById, link.target); - count2[link.source.index] = (count2[link.source.index] || 0) + 1; - count2[link.target.index] = (count2[link.target.index] || 0) + 1; - } - for (i4 = 0, bias = new Array(m4); i4 < m4; ++i4) { - link = links[i4], bias[i4] = count2[link.source.index] / (count2[link.source.index] + count2[link.target.index]); - } - strengths = new Array(m4), initializeStrength(); - distances = new Array(m4), initializeDistance(); - } - function initializeStrength() { - if (!nodes) - return; - for (var i4 = 0, n3 = links.length; i4 < n3; ++i4) { - strengths[i4] = +strength(links[i4], i4, links); - } - } - function initializeDistance() { - if (!nodes) - return; - for (var i4 = 0, n3 = links.length; i4 < n3; ++i4) { - distances[i4] = +distance15(links[i4], i4, links); - } - } - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random5 = _random; - initialize(); - }; - force.links = function(_8) { - return arguments.length ? (links = _8, initialize(), force) : links; - }; - force.id = function(_8) { - return arguments.length ? (id = _8, force) : id; - }; - force.iterations = function(_8) { - return arguments.length ? (iterations = +_8, force) : iterations; - }; - force.strength = function(_8) { - return arguments.length ? (strength = typeof _8 === "function" ? _8 : constant_default3(+_8), initializeStrength(), force) : strength; - }; - force.distance = function(_8) { - return arguments.length ? (distance15 = typeof _8 === "function" ? _8 : constant_default3(+_8), initializeDistance(), force) : distance15; - }; - return force; -} - -// node_modules/d3-dispatch/src/dispatch.js -var noop = { value: () => { -} }; -function dispatch() { - for (var i4 = 0, n3 = arguments.length, _8 = {}, t4; i4 < n3; ++i4) { - if (!(t4 = arguments[i4] + "") || t4 in _8 || /[\s.]/.test(t4)) - throw new Error("illegal type: " + t4); - _8[t4] = []; - } - return new Dispatch(_8); -} -function Dispatch(_8) { - this._ = _8; -} -function parseTypenames(typenames, types2) { - return typenames.trim().split(/^|\s+/).map(function(t4) { - var name = "", i4 = t4.indexOf("."); - if (i4 >= 0) - name = t4.slice(i4 + 1), t4 = t4.slice(0, i4); - if (t4 && !types2.hasOwnProperty(t4)) - throw new Error("unknown type: " + t4); - return { type: t4, name }; - }); -} -Dispatch.prototype = dispatch.prototype = { - constructor: Dispatch, - on: function(typename, callback) { - var _8 = this._, T5 = parseTypenames(typename + "", _8), t4, i4 = -1, n3 = T5.length; - if (arguments.length < 2) { - while (++i4 < n3) - if ((t4 = (typename = T5[i4]).type) && (t4 = get2(_8[t4], typename.name))) - return t4; - return; - } - if (callback != null && typeof callback !== "function") - throw new Error("invalid callback: " + callback); - while (++i4 < n3) { - if (t4 = (typename = T5[i4]).type) - _8[t4] = set9(_8[t4], typename.name, callback); - else if (callback == null) - for (t4 in _8) - _8[t4] = set9(_8[t4], typename.name, null); - } - return this; - }, - copy: function() { - var copy8 = {}, _8 = this._; - for (var t4 in _8) - copy8[t4] = _8[t4].slice(); - return new Dispatch(copy8); - }, - call: function(type2, that) { - if ((n3 = arguments.length - 2) > 0) - for (var args = new Array(n3), i4 = 0, n3, t4; i4 < n3; ++i4) - args[i4] = arguments[i4 + 2]; - if (!this._.hasOwnProperty(type2)) - throw new Error("unknown type: " + type2); - for (t4 = this._[type2], i4 = 0, n3 = t4.length; i4 < n3; ++i4) - t4[i4].value.apply(that, args); - }, - apply: function(type2, that, args) { - if (!this._.hasOwnProperty(type2)) - throw new Error("unknown type: " + type2); - for (var t4 = this._[type2], i4 = 0, n3 = t4.length; i4 < n3; ++i4) - t4[i4].value.apply(that, args); - } -}; -function get2(type2, name) { - for (var i4 = 0, n3 = type2.length, c5; i4 < n3; ++i4) { - if ((c5 = type2[i4]).name === name) { - return c5.value; - } - } -} -function set9(type2, name, callback) { - for (var i4 = 0, n3 = type2.length; i4 < n3; ++i4) { - if (type2[i4].name === name) { - type2[i4] = noop, type2 = type2.slice(0, i4).concat(type2.slice(i4 + 1)); - break; - } - } - if (callback != null) - type2.push({ name, value: callback }); - return type2; -} -var dispatch_default = dispatch; - -// node_modules/d3-force/src/lcg.js -var a3 = 1664525; -var c4 = 1013904223; -var m3 = 4294967296; -function lcg_default() { - let s4 = 1; - return () => (s4 = (a3 * s4 + c4) % m3) / m3; -} - -// node_modules/d3-force/src/simulation.js -function x5(d3) { - return d3.x; -} -function y4(d3) { - return d3.y; -} -var initialRadius = 10; -var initialAngle = Math.PI * (3 - Math.sqrt(5)); -function simulation_default(nodes) { - var simulation, alpha = 1, alphaMin = 1e-3, alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), alphaTarget = 0, velocityDecay = 0.6, forces = new Map(), stepper = timer(step), event = dispatch_default("tick", "end"), random5 = lcg_default(); - if (nodes == null) - nodes = []; - function step() { - tick(); - event.call("tick", simulation); - if (alpha < alphaMin) { - stepper.stop(); - event.call("end", simulation); - } - } - function tick(iterations) { - var i4, n3 = nodes.length, node; - if (iterations === void 0) - iterations = 1; - for (var k4 = 0; k4 < iterations; ++k4) { - alpha += (alphaTarget - alpha) * alphaDecay; - forces.forEach(function(force) { - force(alpha); - }); - for (i4 = 0; i4 < n3; ++i4) { - node = nodes[i4]; - if (node.fx == null) - node.x += node.vx *= velocityDecay; - else - node.x = node.fx, node.vx = 0; - if (node.fy == null) - node.y += node.vy *= velocityDecay; - else - node.y = node.fy, node.vy = 0; - } - } - return simulation; - } - function initializeNodes() { - for (var i4 = 0, n3 = nodes.length, node; i4 < n3; ++i4) { - node = nodes[i4], node.index = i4; - if (node.fx != null) - node.x = node.fx; - if (node.fy != null) - node.y = node.fy; - if (isNaN(node.x) || isNaN(node.y)) { - var radius = initialRadius * Math.sqrt(0.5 + i4), angle3 = i4 * initialAngle; - node.x = radius * Math.cos(angle3); - node.y = radius * Math.sin(angle3); - } - if (isNaN(node.vx) || isNaN(node.vy)) { - node.vx = node.vy = 0; - } - } - } - function initializeForce(force) { - if (force.initialize) - force.initialize(nodes, random5); - return force; - } - initializeNodes(); - return simulation = { - tick, - restart: function() { - return stepper.restart(step), simulation; - }, - stop: function() { - return stepper.stop(), simulation; - }, - nodes: function(_8) { - return arguments.length ? (nodes = _8, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes; - }, - alpha: function(_8) { - return arguments.length ? (alpha = +_8, simulation) : alpha; - }, - alphaMin: function(_8) { - return arguments.length ? (alphaMin = +_8, simulation) : alphaMin; - }, - alphaDecay: function(_8) { - return arguments.length ? (alphaDecay = +_8, simulation) : +alphaDecay; - }, - alphaTarget: function(_8) { - return arguments.length ? (alphaTarget = +_8, simulation) : alphaTarget; - }, - velocityDecay: function(_8) { - return arguments.length ? (velocityDecay = 1 - _8, simulation) : 1 - velocityDecay; - }, - randomSource: function(_8) { - return arguments.length ? (random5 = _8, forces.forEach(initializeForce), simulation) : random5; - }, - force: function(name, _8) { - return arguments.length > 1 ? (_8 == null ? forces.delete(name) : forces.set(name, initializeForce(_8)), simulation) : forces.get(name); - }, - find: function(x6, y5, radius) { - var i4 = 0, n3 = nodes.length, dx, dy, d22, node, closest; - if (radius == null) - radius = Infinity; - else - radius *= radius; - for (i4 = 0; i4 < n3; ++i4) { - node = nodes[i4]; - dx = x6 - node.x; - dy = y5 - node.y; - d22 = dx * dx + dy * dy; - if (d22 < radius) - closest = node, radius = d22; - } - return closest; - }, - on: function(name, _8) { - return arguments.length > 1 ? (event.on(name, _8), simulation) : event.on(name); - } - }; -} - -// node_modules/d3-force/src/manyBody.js -function manyBody_default() { - var nodes, node, random5, alpha, strength = constant_default3(-30), strengths, distanceMin2 = 1, distanceMax2 = Infinity, theta2 = 0.81; - function force(_8) { - var i4, n3 = nodes.length, tree = quadtree(nodes, x5, y4).visitAfter(accumulate); - for (alpha = _8, i4 = 0; i4 < n3; ++i4) - node = nodes[i4], tree.visit(apply); - } - function initialize() { - if (!nodes) - return; - var i4, n3 = nodes.length, node2; - strengths = new Array(n3); - for (i4 = 0; i4 < n3; ++i4) - node2 = nodes[i4], strengths[node2.index] = +strength(node2, i4, nodes); - } - function accumulate(quad) { - var strength2 = 0, q4, c5, weight = 0, x6, y5, i4; - if (quad.length) { - for (x6 = y5 = i4 = 0; i4 < 4; ++i4) { - if ((q4 = quad[i4]) && (c5 = Math.abs(q4.value))) { - strength2 += q4.value, weight += c5, x6 += c5 * q4.x, y5 += c5 * q4.y; - } - } - quad.x = x6 / weight; - quad.y = y5 / weight; - } else { - q4 = quad; - q4.x = q4.data.x; - q4.y = q4.data.y; - do - strength2 += strengths[q4.data.index]; - while (q4 = q4.next); - } - quad.value = strength2; - } - function apply(quad, x1, _8, x22) { - if (!quad.value) - return true; - var x6 = quad.x - node.x, y5 = quad.y - node.y, w4 = x22 - x1, l4 = x6 * x6 + y5 * y5; - if (w4 * w4 / theta2 < l4) { - if (l4 < distanceMax2) { - if (x6 === 0) - x6 = jiggle_default(random5), l4 += x6 * x6; - if (y5 === 0) - y5 = jiggle_default(random5), l4 += y5 * y5; - if (l4 < distanceMin2) - l4 = Math.sqrt(distanceMin2 * l4); - node.vx += x6 * quad.value * alpha / l4; - node.vy += y5 * quad.value * alpha / l4; - } - return true; - } else if (quad.length || l4 >= distanceMax2) - return; - if (quad.data !== node || quad.next) { - if (x6 === 0) - x6 = jiggle_default(random5), l4 += x6 * x6; - if (y5 === 0) - y5 = jiggle_default(random5), l4 += y5 * y5; - if (l4 < distanceMin2) - l4 = Math.sqrt(distanceMin2 * l4); - } - do - if (quad.data !== node) { - w4 = strengths[quad.data.index] * alpha / l4; - node.vx += x6 * w4; - node.vy += y5 * w4; - } - while (quad = quad.next); - } - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random5 = _random; - initialize(); - }; - force.strength = function(_8) { - return arguments.length ? (strength = typeof _8 === "function" ? _8 : constant_default3(+_8), initialize(), force) : strength; - }; - force.distanceMin = function(_8) { - return arguments.length ? (distanceMin2 = _8 * _8, force) : Math.sqrt(distanceMin2); - }; - force.distanceMax = function(_8) { - return arguments.length ? (distanceMax2 = _8 * _8, force) : Math.sqrt(distanceMax2); - }; - force.theta = function(_8) { - return arguments.length ? (theta2 = _8 * _8, force) : Math.sqrt(theta2); - }; - return force; -} - -// node_modules/d3-force/src/x.js -function x_default2(x6) { - var strength = constant_default3(0.1), nodes, strengths, xz; - if (typeof x6 !== "function") - x6 = constant_default3(x6 == null ? 0 : +x6); - function force(alpha) { - for (var i4 = 0, n3 = nodes.length, node; i4 < n3; ++i4) { - node = nodes[i4], node.vx += (xz[i4] - node.x) * strengths[i4] * alpha; - } - } - function initialize() { - if (!nodes) - return; - var i4, n3 = nodes.length; - strengths = new Array(n3); - xz = new Array(n3); - for (i4 = 0; i4 < n3; ++i4) { - strengths[i4] = isNaN(xz[i4] = +x6(nodes[i4], i4, nodes)) ? 0 : +strength(nodes[i4], i4, nodes); - } - } - force.initialize = function(_8) { - nodes = _8; - initialize(); - }; - force.strength = function(_8) { - return arguments.length ? (strength = typeof _8 === "function" ? _8 : constant_default3(+_8), initialize(), force) : strength; - }; - force.x = function(_8) { - return arguments.length ? (x6 = typeof _8 === "function" ? _8 : constant_default3(+_8), initialize(), force) : x6; - }; - return force; -} - -// node_modules/d3-force/src/y.js -function y_default2(y5) { - var strength = constant_default3(0.1), nodes, strengths, yz; - if (typeof y5 !== "function") - y5 = constant_default3(y5 == null ? 0 : +y5); - function force(alpha) { - for (var i4 = 0, n3 = nodes.length, node; i4 < n3; ++i4) { - node = nodes[i4], node.vy += (yz[i4] - node.y) * strengths[i4] * alpha; - } - } - function initialize() { - if (!nodes) - return; - var i4, n3 = nodes.length; - strengths = new Array(n3); - yz = new Array(n3); - for (i4 = 0; i4 < n3; ++i4) { - strengths[i4] = isNaN(yz[i4] = +y5(nodes[i4], i4, nodes)) ? 0 : +strength(nodes[i4], i4, nodes); - } - } - force.initialize = function(_8) { - nodes = _8; - initialize(); - }; - force.strength = function(_8) { - return arguments.length ? (strength = typeof _8 === "function" ? _8 : constant_default3(+_8), initialize(), force) : strength; - }; - force.y = function(_8) { - return arguments.length ? (y5 = typeof _8 === "function" ? _8 : constant_default3(+_8), initialize(), force) : y5; - }; - return force; -} - -// node_modules/@antv/layout/es/layout/force/force-in-a-box.js -function forceInABox() { - function constant2(_8) { - return () => _8; - } - let groupBy2 = (d3) => { - return d3.cluster; - }; - let forceNodeSize = constant2(1); - let forceCharge = constant2(-1); - let forceLinkDistance = constant2(100); - let forceLinkStrength = constant2(0.1); - let offset = [0, 0]; - let nodes = []; - let nodesMap = {}; - let links = []; - let centerX = 100; - let centerY = 100; - let foci = { - none: { - x: 0, - y: 0 - } - }; - let templateNodes = []; - let templateForce; - let template2 = "force"; - let enableGrouping = true; - let strength = 0.1; - function force(alpha) { - if (!enableGrouping) { - return force; - } - templateForce.tick(); - getFocisFromTemplate(); - for (let i4 = 0, n3 = nodes.length, node, k4 = alpha * strength; i4 < n3; ++i4) { - node = nodes[i4]; - node.vx += (foci[groupBy2(node)].x - node.x) * k4; - node.vy += (foci[groupBy2(node)].y - node.y) * k4; - } - } - function initialize() { - if (!nodes) - return; - initializeWithForce(); - } - function initializeWithForce() { - if (!nodes || !nodes.length) { - return; - } - if (groupBy2(nodes[0]) === void 0) { - throw Error("Couldnt find the grouping attribute for the nodes. Make sure to set it up with forceInABox.groupBy('clusterAttr') before calling .links()"); - } - const net = getGroupsGraph(); - templateForce = simulation_default(net.nodes).force("x", x_default2(centerX).strength(0.1)).force("y", y_default2(centerY).strength(0.1)).force("collide", collide_default((d3) => d3.r).iterations(4)).force("charge", manyBody_default().strength(forceCharge)).force("links", link_default(net.nodes.length ? net.links : []).distance(forceLinkDistance).strength(forceLinkStrength)); - templateNodes = templateForce.nodes(); - getFocisFromTemplate(); - } - function getGroupsGraph() { - const gnodes = []; - const glinks = []; - const dNodes = {}; - let clustersList = []; - let clustersCounts = {}; - let clustersLinks = []; - clustersCounts = computeClustersNodeCounts(nodes); - clustersLinks = computeClustersLinkCounts(links); - clustersList = Object.keys(clustersCounts); - clustersList.forEach((key, index2) => { - const val = clustersCounts[key]; - gnodes.push({ - id: key, - size: val.count, - r: Math.sqrt(val.sumforceNodeSize / Math.PI) - }); - dNodes[key] = index2; - }); - clustersLinks.forEach((l4) => { - const sourceTerminal = getEdgeTerminal(l4, "source"); - const targetTerminal = getEdgeTerminal(l4, "target"); - const source = dNodes[sourceTerminal]; - const target = dNodes[targetTerminal]; - if (source !== void 0 && target !== void 0) { - glinks.push({ - source, - target, - count: l4.count - }); - } - }); - return { - nodes: gnodes, - links: glinks - }; - } - function computeClustersNodeCounts(nodes2) { - const clustersCounts = {}; - nodes2.forEach((d3) => { - const key = groupBy2(d3); - if (!clustersCounts[key]) { - clustersCounts[key] = { - count: 0, - sumforceNodeSize: 0 - }; - } - }); - nodes2.forEach((d3) => { - const key = groupBy2(d3); - const nodeSize = forceNodeSize(d3); - const tmpCount = clustersCounts[key]; - tmpCount.count = tmpCount.count + 1; - tmpCount.sumforceNodeSize = tmpCount.sumforceNodeSize + Math.PI * (nodeSize * nodeSize) * 1.3; - clustersCounts[key] = tmpCount; - }); - return clustersCounts; - } - function computeClustersLinkCounts(links2) { - const dClusterLinks = {}; - const clusterLinks = []; - links2.forEach((l4) => { - const key = getLinkKey(l4); - let count2 = 0; - if (dClusterLinks[key] !== void 0) { - count2 = dClusterLinks[key]; - } - count2 += 1; - dClusterLinks[key] = count2; - }); - const entries = Object.entries(dClusterLinks); - entries.forEach(([key, count2]) => { - const source = key.split("~")[0]; - const target = key.split("~")[1]; - if (source !== void 0 && target !== void 0) { - clusterLinks.push({ - source, - target, - count: count2 - }); - } - }); - return clusterLinks; - } - function getFocisFromTemplate() { - foci = { - none: { - x: 0, - y: 0 - } - }; - templateNodes.forEach((d3) => { - foci[d3.id] = { - x: d3.x - offset[0], - y: d3.y - offset[1] - }; - }); - return foci; - } - function getLinkKey(l4) { - const source = getEdgeTerminal(l4, "source"); - const target = getEdgeTerminal(l4, "target"); - const sourceID = groupBy2(nodesMap[source]); - const targetID = groupBy2(nodesMap[target]); - return sourceID <= targetID ? `${sourceID}~${targetID}` : `${targetID}~${sourceID}`; - } - function genNodesMap(nodes2) { - nodesMap = {}; - nodes2.forEach((node) => { - nodesMap[node.id] = node; - }); - } - function setTemplate(x6) { - if (!arguments.length) - return template2; - template2 = x6; - initialize(); - return force; - } - function setGroupBy(x6) { - if (!arguments.length) - return groupBy2; - if (typeof x6 === "string") { - groupBy2 = (d3) => { - return d3[x6]; - }; - return force; - } - groupBy2 = x6; - return force; - } - function setEnableGrouping(x6) { - if (!arguments.length) - return enableGrouping; - enableGrouping = x6; - return force; - } - function setStrength(x6) { - if (!arguments.length) - return strength; - strength = x6; - return force; - } - function setCenterX(_8) { - if (arguments.length) { - centerX = _8; - return force; - } - return centerX; - } - function setCenterY(_8) { - if (arguments.length) { - centerY = _8; - return force; - } - return centerY; - } - function setNodes(_8) { - if (arguments.length) { - genNodesMap(_8 || []); - nodes = _8 || []; - return force; - } - return nodes; - } - function setLinks(_8) { - if (arguments.length) { - links = _8 || []; - initialize(); - return force; - } - return links; - } - function setForceNodeSize(_8) { - if (arguments.length) { - if (typeof _8 === "function") { - forceNodeSize = _8; - } else { - forceNodeSize = constant2(+_8); - } - initialize(); - return force; - } - return forceNodeSize; - } - function setForceCharge(_8) { - if (arguments.length) { - if (typeof _8 === "function") { - forceCharge = _8; - } else { - forceCharge = constant2(+_8); - } - initialize(); - return force; - } - return forceCharge; - } - function setForceLinkDistance(_8) { - if (arguments.length) { - if (typeof _8 === "function") { - forceLinkDistance = _8; - } else { - forceLinkDistance = constant2(+_8); - } - initialize(); - return force; - } - return forceLinkDistance; - } - function setForceLinkStrength(_8) { - if (arguments.length) { - if (typeof _8 === "function") { - forceLinkStrength = _8; - } else { - forceLinkStrength = constant2(+_8); - } - initialize(); - return force; - } - return forceLinkStrength; - } - function setOffset(_8) { - if (arguments.length) { - offset = _8; - return force; - } - return offset; - } - force.initialize = (_8) => { - nodes = _8; - initialize(); - }; - force.template = setTemplate; - force.groupBy = setGroupBy; - force.enableGrouping = setEnableGrouping; - force.strength = setStrength; - force.centerX = setCenterX; - force.centerY = setCenterY; - force.nodes = setNodes; - force.links = setLinks; - force.forceNodeSize = setForceNodeSize; - force.nodeSize = force.forceNodeSize; - force.forceCharge = setForceCharge; - force.forceLinkDistance = setForceLinkDistance; - force.forceLinkStrength = setForceLinkStrength; - force.offset = setOffset; - force.getFocis = getFocisFromTemplate; - return force; -} - -// node_modules/@antv/layout/es/layout/constants.js -var LAYOUT_MESSAGE = { - RUN: "LAYOUT_RUN", - END: "LAYOUT_END", - ERROR: "LAYOUT_ERROR", - TICK: "LAYOUT_TICK", - GPURUN: "GPU_LAYOUT_RUN", - GPUEND: "GPU_LAYOUT_END" -}; - -// node_modules/@antv/layout/es/layout/force/force.js -var ForceLayout = class extends Base3 { - constructor(options) { - super(); - this.center = [0, 0]; - this.nodeStrength = null; - this.edgeStrength = null; - this.preventOverlap = false; - this.clusterNodeStrength = null; - this.clusterEdgeStrength = null; - this.clusterEdgeDistance = null; - this.clusterNodeSize = null; - this.clusterFociStrength = null; - this.linkDistance = 50; - this.alphaDecay = 0.028; - this.alphaMin = 1e-3; - this.alpha = 0.3; - this.collideStrength = 1; - this.workerEnabled = false; - this.tick = () => { - }; - this.onLayoutEnd = () => { - }; - this.ticking = void 0; - if (options) { - this.updateCfg(options); - } - } - getDefaultCfg() { - return { - center: [0, 0], - nodeStrength: null, - edgeStrength: null, - preventOverlap: false, - nodeSize: void 0, - nodeSpacing: void 0, - linkDistance: 50, - forceSimulation: null, - alphaDecay: 0.028, - alphaMin: 1e-3, - alpha: 0.3, - collideStrength: 1, - clustering: false, - clusterNodeStrength: -1, - clusterEdgeStrength: 0.1, - clusterEdgeDistance: 100, - clusterFociStrength: 0.8, - clusterNodeSize: 10, - tick() { - }, - onLayoutEnd() { - }, - workerEnabled: false - }; - } - init(data3) { - const self2 = this; - self2.nodes = data3.nodes || []; - const edges = data3.edges || []; - self2.edges = edges.map((edge2) => { - const res = {}; - const expectKeys = ["targetNode", "sourceNode", "startPoint", "endPoint"]; - Object.keys(edge2).forEach((key) => { - if (!(expectKeys.indexOf(key) > -1)) { - res[key] = edge2[key]; - } - }); - return res; - }); - self2.ticking = false; - } - execute(reloadData) { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges; - if (self2.ticking) { - return; - } - let simulation = self2.forceSimulation; - const alphaMin = self2.alphaMin; - const alphaDecay = self2.alphaDecay; - const alpha = self2.alpha; - if (!simulation) { - try { - const nodeForce = manyBody_default(); - if (self2.nodeStrength) { - nodeForce.strength(self2.nodeStrength); - } - simulation = simulation_default().nodes(nodes); - if (self2.clustering) { - const clusterForce = forceInABox(); - clusterForce.centerX(self2.center[0]).centerY(self2.center[1]).template("force").strength(self2.clusterFociStrength); - if (edges) { - clusterForce.links(edges); - } - if (nodes) { - clusterForce.nodes(nodes); - } - clusterForce.forceLinkDistance(self2.clusterEdgeDistance).forceLinkStrength(self2.clusterEdgeStrength).forceCharge(self2.clusterNodeStrength).forceNodeSize(self2.clusterNodeSize); - self2.clusterForce = clusterForce; - simulation.force("group", clusterForce); - } - simulation.force("center", center_default(self2.center[0], self2.center[1])).force("charge", nodeForce).alpha(alpha).alphaDecay(alphaDecay).alphaMin(alphaMin); - if (self2.preventOverlap) { - self2.overlapProcess(simulation); - } - if (edges) { - const edgeForce = link_default().id((d3) => d3.id).links(edges); - if (self2.edgeStrength) { - edgeForce.strength(self2.edgeStrength); - } - if (self2.linkDistance) { - edgeForce.distance(self2.linkDistance); - } - self2.edgeForce = edgeForce; - simulation.force("link", edgeForce); - } - if (self2.workerEnabled && !isInWorker()) { - self2.workerEnabled = false; - console.warn("workerEnabled option is only supported when running in web worker."); - } - if (!self2.workerEnabled) { - simulation.on("tick", () => { - self2.tick(); - }).on("end", () => { - self2.ticking = false; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - }); - self2.ticking = true; - } else { - simulation.stop(); - const totalTicks = getSimulationTicks(simulation); - for (let currentTick = 1; currentTick <= totalTicks; currentTick++) { - simulation.tick(); - postMessage({ - nodes, - currentTick, - totalTicks, - type: LAYOUT_MESSAGE.TICK - }, void 0); - } - self2.ticking = false; - } - self2.forceSimulation = simulation; - self2.ticking = true; - } catch (e4) { - self2.ticking = false; - console.warn(e4); - } - } else { - if (reloadData) { - if (self2.clustering && self2.clusterForce) { - self2.clusterForce.nodes(nodes); - self2.clusterForce.links(edges); - } - simulation.nodes(nodes); - if (edges && self2.edgeForce) - self2.edgeForce.links(edges); - else if (edges && !self2.edgeForce) { - const edgeForce = link_default().id((d3) => d3.id).links(edges); - if (self2.edgeStrength) { - edgeForce.strength(self2.edgeStrength); - } - if (self2.linkDistance) { - edgeForce.distance(self2.linkDistance); - } - self2.edgeForce = edgeForce; - simulation.force("link", edgeForce); - } - } - if (self2.preventOverlap) { - self2.overlapProcess(simulation); - } - simulation.alpha(alpha).restart(); - this.ticking = true; - } - } - overlapProcess(simulation) { - const self2 = this; - const nodeSize = self2.nodeSize; - const nodeSpacing = self2.nodeSpacing; - let nodeSizeFunc; - let nodeSpacingFunc; - const collideStrength = self2.collideStrength; - if (isNumber3(nodeSpacing)) { - nodeSpacingFunc = () => nodeSpacing; - } else if (isFunction(nodeSpacing)) { - nodeSpacingFunc = nodeSpacing; - } else { - nodeSpacingFunc = () => 0; - } - if (!nodeSize) { - nodeSizeFunc = (d3) => { - if (d3.size) { - if (isArray2(d3.size)) { - const res = d3.size[0] > d3.size[1] ? d3.size[0] : d3.size[1]; - return res / 2 + nodeSpacingFunc(d3); - } - if (isObject2(d3.size)) { - const res = d3.size.width > d3.size.height ? d3.size.width : d3.size.height; - return res / 2 + nodeSpacingFunc(d3); - } - return d3.size / 2 + nodeSpacingFunc(d3); - } - return 10 + nodeSpacingFunc(d3); - }; - } else if (isFunction(nodeSize)) { - nodeSizeFunc = (d3) => { - const size2 = nodeSize(d3); - return size2 + nodeSpacingFunc(d3); - }; - } else if (isArray2(nodeSize)) { - const larger = nodeSize[0] > nodeSize[1] ? nodeSize[0] : nodeSize[1]; - const radius = larger / 2; - nodeSizeFunc = (d3) => radius + nodeSpacingFunc(d3); - } else if (isNumber3(nodeSize)) { - const radius = nodeSize / 2; - nodeSizeFunc = (d3) => radius + nodeSpacingFunc(d3); - } else { - nodeSizeFunc = () => 10; - } - simulation.force("collisionForce", collide_default(nodeSizeFunc).strength(collideStrength)); - } - updateCfg(cfg) { - const self2 = this; - if (self2.ticking) { - self2.forceSimulation.stop(); - self2.ticking = false; - } - self2.forceSimulation = null; - Object.assign(self2, cfg); - } - destroy() { - const self2 = this; - if (self2.ticking) { - self2.forceSimulation.stop(); - self2.ticking = false; - } - self2.nodes = null; - self2.edges = null; - self2.destroyed = true; - } -}; -function getSimulationTicks(simulation) { - const alphaMin = simulation.alphaMin(); - const alphaTarget = simulation.alphaTarget(); - const alpha = simulation.alpha(); - const totalTicksFloat = Math.log((alphaMin - alphaTarget) / (alpha - alphaTarget)) / Math.log(1 - simulation.alphaDecay()); - const totalTicks = Math.ceil(totalTicksFloat); - return totalTicks; -} -function isInWorker() { - return typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope; -} - -// node_modules/@antv/layout/es/layout/circular.js -function initHierarchy(nodes, edges, nodeMap, directed) { - nodes.forEach((_8, i4) => { - nodes[i4].children = []; - nodes[i4].parent = []; - }); - if (directed) { - edges.forEach((e4) => { - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - let sourceIdx = 0; - if (source) { - sourceIdx = nodeMap[source]; - } - let targetIdx = 0; - if (target) { - targetIdx = nodeMap[target]; - } - const child = nodes[sourceIdx].children; - const parent = nodes[targetIdx].parent; - child.push(nodes[targetIdx].id); - parent.push(nodes[sourceIdx].id); - }); - } else { - edges.forEach((e4) => { - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - let sourceIdx = 0; - if (source) { - sourceIdx = nodeMap[source]; - } - let targetIdx = 0; - if (target) { - targetIdx = nodeMap[target]; - } - const sourceChildren = nodes[sourceIdx].children; - const targetChildren = nodes[targetIdx].children; - sourceChildren.push(nodes[targetIdx].id); - targetChildren.push(nodes[sourceIdx].id); - }); - } -} -function connect(a4, b10, edges) { - const m4 = edges.length; - for (let i4 = 0; i4 < m4; i4++) { - const source = getEdgeTerminal(edges[i4], "source"); - const target = getEdgeTerminal(edges[i4], "target"); - if (a4.id === source && b10.id === target || b10.id === source && a4.id === target) { - return true; - } - } - return false; -} -function compareDegree(a4, b10) { - const aDegree = a4.degree; - const bDegree = b10.degree; - if (aDegree < bDegree) { - return -1; - } - if (aDegree > bDegree) { - return 1; - } - return 0; -} -var CircularLayout = class extends Base3 { - constructor(options) { - super(); - this.radius = null; - this.startRadius = null; - this.endRadius = null; - this.startAngle = 0; - this.endAngle = 2 * Math.PI; - this.clockwise = true; - this.divisions = 1; - this.ordering = null; - this.angleRatio = 1; - this.nodes = []; - this.edges = []; - this.nodeMap = {}; - this.degrees = []; - this.width = 300; - this.height = 300; - this.updateCfg(options); - } - getDefaultCfg() { - return { - radius: null, - startRadius: null, - endRadius: null, - startAngle: 0, - endAngle: 2 * Math.PI, - clockwise: true, - divisions: 1, - ordering: null, - angleRatio: 1 - }; - } - execute() { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges; - const n3 = nodes.length; - if (n3 === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (!self2.center) { - self2.center = [self2.width / 2, self2.height / 2]; - } - const center2 = self2.center; - if (n3 === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - let radius = self2.radius; - let startRadius = self2.startRadius; - let endRadius = self2.endRadius; - const divisions = self2.divisions; - const startAngle = self2.startAngle; - const endAngle = self2.endAngle; - const angleStep = (endAngle - startAngle) / n3; - const nodeMap = {}; - nodes.forEach((node, i4) => { - nodeMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - const degrees = getDegree3(nodes.length, nodeMap, edges); - self2.degrees = degrees; - if (!radius && !startRadius && !endRadius) { - radius = self2.height > self2.width ? self2.width / 2 : self2.height / 2; - } else if (!startRadius && endRadius) { - startRadius = endRadius; - } else if (startRadius && !endRadius) { - endRadius = startRadius; - } - const angleRatio = self2.angleRatio; - const astep = angleStep * angleRatio; - const ordering = self2.ordering; - let layoutNodes2 = []; - if (ordering === "topology") { - layoutNodes2 = self2.topologyOrdering(); - } else if (ordering === "topology-directed") { - layoutNodes2 = self2.topologyOrdering(true); - } else if (ordering === "degree") { - layoutNodes2 = self2.degreeOrdering(); - } else { - layoutNodes2 = nodes; - } - const clockwise = self2.clockwise; - const divN = Math.ceil(n3 / divisions); - for (let i4 = 0; i4 < n3; ++i4) { - let r4 = radius; - if (!r4 && startRadius !== null && endRadius !== null) { - r4 = startRadius + i4 * (endRadius - startRadius) / (n3 - 1); - } - if (!r4) { - r4 = 10 + i4 * 100 / (n3 - 1); - } - let angle3 = startAngle + i4 % divN * astep + 2 * Math.PI / divisions * Math.floor(i4 / divN); - if (!clockwise) { - angle3 = endAngle - i4 % divN * astep - 2 * Math.PI / divisions * Math.floor(i4 / divN); - } - layoutNodes2[i4].x = center2[0] + Math.cos(angle3) * r4; - layoutNodes2[i4].y = center2[1] + Math.sin(angle3) * r4; - layoutNodes2[i4].weight = degrees[i4]; - } - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes: layoutNodes2, - edges: this.edges - }; - } - topologyOrdering(directed = false) { - const self2 = this; - const degrees = self2.degrees; - const edges = self2.edges; - const nodes = self2.nodes; - const cnodes = clone9(nodes); - const nodeMap = self2.nodeMap; - const orderedCNodes = [cnodes[0]]; - const resNodes = [nodes[0]]; - const pickFlags = []; - const n3 = nodes.length; - pickFlags[0] = true; - initHierarchy(cnodes, edges, nodeMap, directed); - let k4 = 0; - cnodes.forEach((cnode, i4) => { - if (i4 !== 0) { - if ((i4 === n3 - 1 || degrees[i4] !== degrees[i4 + 1] || connect(orderedCNodes[k4], cnode, edges)) && !pickFlags[i4]) { - orderedCNodes.push(cnode); - resNodes.push(nodes[nodeMap[cnode.id]]); - pickFlags[i4] = true; - k4++; - } else { - const children = orderedCNodes[k4].children; - let foundChild = false; - for (let j4 = 0; j4 < children.length; j4++) { - const childIdx = nodeMap[children[j4]]; - if (degrees[childIdx] === degrees[i4] && !pickFlags[childIdx]) { - orderedCNodes.push(cnodes[childIdx]); - resNodes.push(nodes[nodeMap[cnodes[childIdx].id]]); - pickFlags[childIdx] = true; - foundChild = true; - break; - } - } - let ii = 0; - while (!foundChild) { - if (!pickFlags[ii]) { - orderedCNodes.push(cnodes[ii]); - resNodes.push(nodes[nodeMap[cnodes[ii].id]]); - pickFlags[ii] = true; - foundChild = true; - } - ii++; - if (ii === n3) { - break; - } - } - } - } - }); - return resNodes; - } - degreeOrdering() { - const self2 = this; - const nodes = self2.nodes; - const orderedNodes = []; - const degrees = self2.degrees; - nodes.forEach((node, i4) => { - node.degree = degrees[i4]; - orderedNodes.push(node); - }); - orderedNodes.sort(compareDegree); - return orderedNodes; - } - getType() { - return "circular"; - } -}; - -// node_modules/@antv/layout/es/layout/dagre/src/graphlib.js -var import_graphlib = __toModule(require_graphlib()); -var graphlib = import_graphlib.default; -if (!graphlib && typeof window !== "undefined") { - graphlib = window.graphlib; -} -if (!Array.prototype.flat) { - Array.prototype.flat = function(count2) { - let c5 = count2 || 1; - if (!isFinite(c5)) - return; - const len5 = this.length; - let ret = []; - if (this.length === 0) - return this; - while (c5--) { - const arr = []; - let flag = false; - if (ret.length === 0) { - flag = true; - for (let i4 = 0; i4 < len5; i4++) { - if (this[i4] instanceof Array) { - ret.push(...this[i4]); - } else { - ret.push(this[i4]); - } - } - } else { - for (let i4 = 0; i4 < ret.length; i4++) { - if (ret[i4] instanceof Array) { - flag = true; - arr.push(...ret[i4]); - } else { - arr.push(ret[i4]); - } - } - ret = arr; - } - if (!flag && c5 === Infinity) { - break; - } - } - return ret; - }; -} -var graphlib_default = graphlib; - -// node_modules/@antv/layout/es/layout/dagre/src/data/list.js -var unlink = (entry) => { - entry._prev._next = entry._next; - entry._next._prev = entry._prev; - delete entry._next; - delete entry._prev; -}; -var filterOutLinks = (k4, v3) => { - if (k4 !== "_next" && k4 !== "_prev") { - return v3; - } -}; -var List2 = class { - constructor() { - const sentinel = {}; - sentinel._next = sentinel._prev = sentinel; - this.isentinel = sentinel; - } - dequeue() { - const sentinel = this.isentinel; - const entry = sentinel._prev; - if (entry !== sentinel) { - unlink(entry); - return entry; - } - } - enqueue() { - const sentinel = this.isentinel; - const entry = sentinel._prev; - if (entry !== sentinel) { - unlink(entry); - return entry; - } - } - toString() { - const strs = []; - const sentinel = this.isentinel; - let curr = sentinel._prev; - while (curr !== sentinel) { - strs.push(JSON.stringify(curr, filterOutLinks)); - curr = curr._prev; - } - return `[${strs.join(", ")}]`; - } -}; -var list_default2 = List2; - -// node_modules/@antv/layout/es/layout/dagre/src/greedy-fas.js -var Graph2 = graphlib_default.Graph; -var DEFAULT_WEIGHT_FN = () => 1; -var greedyFAS = (g4, weightFn) => { - var _a6; - if (g4.nodeCount() <= 1) - return []; - const state2 = buildState(g4, weightFn || DEFAULT_WEIGHT_FN); - const results = doGreedyFAS(state2.graph, state2.buckets, state2.zeroIdx); - return (_a6 = results.map((e4) => g4.outEdges(e4.v, e4.w))) === null || _a6 === void 0 ? void 0 : _a6.flat(); -}; -var doGreedyFAS = (g4, buckets, zeroIdx) => { - let results = []; - const sources = buckets[buckets.length - 1]; - const sinks = buckets[0]; - let entry; - while (g4.nodeCount()) { - while (entry = sinks.dequeue()) { - removeNode(g4, buckets, zeroIdx, entry); - } - while (entry = sources.dequeue()) { - removeNode(g4, buckets, zeroIdx, entry); - } - if (g4.nodeCount()) { - for (let i4 = buckets.length - 2; i4 > 0; --i4) { - entry = buckets[i4].dequeue(); - if (entry) { - results = results.concat(removeNode(g4, buckets, zeroIdx, entry, true)); - break; - } - } - } - } - return results; -}; -var removeNode = (g4, buckets, zeroIdx, entry, collectPredecessors) => { - var _a6, _b; - const results = collectPredecessors ? [] : void 0; - (_a6 = g4.inEdges(entry.v)) === null || _a6 === void 0 ? void 0 : _a6.forEach((edge2) => { - const weight = g4.edge(edge2); - const uEntry = g4.node(edge2.v); - if (collectPredecessors) { - results.push({ v: edge2.v, w: edge2.w }); - } - if (uEntry.out === void 0) - uEntry.out = 0; - uEntry.out -= weight; - assignBucket(buckets, zeroIdx, uEntry); - }); - (_b = g4.outEdges(entry.v)) === null || _b === void 0 ? void 0 : _b.forEach((edge2) => { - const weight = g4.edge(edge2); - const w4 = edge2.w; - const wEntry = g4.node(w4); - if (wEntry.in === void 0) - wEntry.in = 0; - wEntry.in -= weight; - assignBucket(buckets, zeroIdx, wEntry); - }); - g4.removeNode(entry.v); - return results; -}; -var buildState = (g4, weightFn) => { - const fasGraph = new Graph2(); - let maxIn = 0; - let maxOut = 0; - g4.nodes().forEach((v3) => { - fasGraph.setNode(v3, { v: v3, "in": 0, out: 0 }); - }); - g4.edges().forEach((e4) => { - const prevWeight = fasGraph.edge(e4.v, e4.w) || 0; - const weight = weightFn === null || weightFn === void 0 ? void 0 : weightFn(e4); - const edgeWeight = prevWeight + weight; - fasGraph.setEdge(e4.v, e4.w, edgeWeight); - maxOut = Math.max(maxOut, fasGraph.node(e4.v).out += weight); - maxIn = Math.max(maxIn, fasGraph.node(e4.w)["in"] += weight); - }); - const buckets = []; - const rangeMax = maxOut + maxIn + 3; - for (let i4 = 0; i4 < rangeMax; i4++) { - buckets.push(new list_default2()); - } - const zeroIdx = maxIn + 1; - fasGraph.nodes().forEach((v3) => { - assignBucket(buckets, zeroIdx, fasGraph.node(v3)); - }); - return { buckets, zeroIdx, graph: fasGraph }; -}; -var assignBucket = (buckets, zeroIdx, entry) => { - if (!entry.out) { - buckets[0].enqueue(entry); - } else if (!entry["in"]) { - buckets[buckets.length - 1].enqueue(entry); - } else { - buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry); - } -}; -var greedy_fas_default = greedyFAS; - -// node_modules/@antv/layout/es/layout/dagre/src/acyclic.js -var run = (g4) => { - const weightFn = (g5) => { - return (e4) => g5.edge(e4).weight; - }; - const fas = g4.graph().acyclicer === "greedy" ? greedy_fas_default(g4, weightFn(g4)) : dfsFAS(g4); - fas === null || fas === void 0 ? void 0 : fas.forEach((e4) => { - const label17 = g4.edge(e4); - g4.removeEdge(e4); - label17.forwardName = e4.name; - label17.reversed = true; - g4.setEdge(e4.w, e4.v, label17, `rev-${Math.random()}`); - }); -}; -var dfsFAS = (g4) => { - const fas = []; - const stack = {}; - const visited = {}; - const dfs2 = (v3) => { - var _a6; - if (visited.hasOwnProperty(v3)) { - return; - } - visited[v3] = true; - stack[v3] = true; - (_a6 = g4.outEdges(v3)) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => { - if (stack.hasOwnProperty(e4.w)) { - fas.push(e4); - } else { - dfs2(e4.w); - } - }); - delete stack[v3]; - }; - g4.nodes().forEach(dfs2); - return fas; -}; -var undo = (g4) => { - g4.edges().forEach((e4) => { - const label17 = g4.edge(e4); - if (label17.reversed) { - g4.removeEdge(e4); - const forwardName = label17.forwardName; - delete label17.reversed; - delete label17.forwardName; - g4.setEdge(e4.w, e4.v, label17, forwardName); - } - }); -}; -var acyclic_default = { run, undo }; - -// node_modules/@antv/layout/es/layout/dagre/src/util.js -var Graph3 = graphlib_default.Graph; -var addDummyNode = (g4, type2, attrs, name) => { - let v3; - do { - v3 = `${name}${Math.random()}`; - } while (g4.hasNode(v3)); - attrs.dummy = type2; - g4.setNode(v3, attrs); - return v3; -}; -var simplify = (g4) => { - const simplified = new Graph3().setGraph(g4.graph()); - g4.nodes().forEach((v3) => { - simplified.setNode(v3, g4.node(v3)); - }); - g4.edges().forEach((e4) => { - const simpleLabel = simplified.edge(e4.v, e4.w) || { weight: 0, minlen: 1 }; - const label17 = g4.edge(e4); - simplified.setEdge(e4.v, e4.w, { - weight: simpleLabel.weight + label17.weight, - minlen: Math.max(simpleLabel.minlen, label17.minlen) - }); - }); - return simplified; -}; -var asNonCompoundGraph = (g4) => { - const simplified = new Graph3({ multigraph: g4.isMultigraph() }).setGraph(g4.graph()); - g4.nodes().forEach((v3) => { - var _a6; - if (!((_a6 = g4.children(v3)) === null || _a6 === void 0 ? void 0 : _a6.length)) { - simplified.setNode(v3, g4.node(v3)); - } - }); - g4.edges().forEach((e4) => simplified.setEdge(e4, g4.edge(e4))); - return simplified; -}; -var zipObject = (keys2, values2) => { - const result = {}; - keys2 === null || keys2 === void 0 ? void 0 : keys2.forEach((key, i4) => { - result[key] = values2[i4]; - }); - return result; -}; -var successorWeights = (g4) => { - const weightMap = g4.nodes().map((v3) => { - var _a6; - const sucs = {}; - (_a6 = g4.outEdges(v3)) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => { - sucs[e4.w] = (sucs[e4.w] || 0) + g4.edge(e4).weight; - }); - return sucs; - }); - return zipObject(g4.nodes(), weightMap); -}; -var predecessorWeights = (g4) => { - const weightMap = g4.nodes().map((v3) => { - var _a6; - const preds = {}; - (_a6 = g4.inEdges(v3)) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => { - preds[e4.v] = (preds[e4.v] || 0) + g4.edge(e4).weight; - }); - return preds; - }); - return zipObject(g4.nodes(), weightMap); -}; -var intersectRect3 = (rect3, point2) => { - const x6 = rect3.x; - const y5 = rect3.y; - const dx = point2.x - x6; - const dy = point2.y - y5; - let w4 = rect3.width / 2; - let h3 = rect3.height / 2; - if (!dx && !dy) { - return { x: 0, y: 0 }; - } - let sx; - let sy; - if (Math.abs(dy) * w4 > Math.abs(dx) * h3) { - if (dy < 0) { - h3 = -h3; - } - sx = h3 * dx / dy; - sy = h3; - } else { - if (dx < 0) { - w4 = -w4; - } - sx = w4; - sy = w4 * dy / dx; - } - return { x: x6 + sx, y: y5 + sy }; -}; -var buildLayerMatrix = (g4) => { - const layering = []; - const layeringNodes = []; - const rankMax = maxRank(g4) + 1; - for (let i4 = 0; i4 < rankMax; i4++) { - layering.push([]); - layeringNodes.push([]); - } - g4.nodes().forEach((v3) => { - const node = g4.node(v3); - const rank2 = node.rank; - if (rank2 !== void 0 && layering[rank2]) { - layeringNodes[rank2].push(v3); - } - }); - layeringNodes === null || layeringNodes === void 0 ? void 0 : layeringNodes.forEach((layer, rank2) => { - layer === null || layer === void 0 ? void 0 : layer.sort((va, vb) => { - var _a6, _b; - return ((_a6 = g4.node(va)) === null || _a6 === void 0 ? void 0 : _a6.order) - ((_b = g4.node(vb)) === null || _b === void 0 ? void 0 : _b.order); - }); - layer.forEach((v3) => { - layering[rank2].push(v3); - }); - }); - return layering; -}; -var normalizeRanks = (g4) => { - const nodeRanks = g4.nodes().filter((v3) => g4.node(v3).rank !== void 0).map((v3) => g4.node(v3).rank); - const min7 = Math.min(...nodeRanks); - g4.nodes().forEach((v3) => { - const node = g4.node(v3); - if (node.hasOwnProperty("rank")) { - if (!node.rank) - node.rank = 0; - node.rank -= min7; - } - }); -}; -var removeEmptyRanks = (g4) => { - const nodeRanks = g4.nodes().filter((v3) => g4.node(v3).rank !== void 0).map((v3) => g4.node(v3).rank); - const offset = Math.min(...nodeRanks); - const layers = []; - g4.nodes().forEach((v3) => { - var _a6; - const rank2 = (((_a6 = g4.node(v3)) === null || _a6 === void 0 ? void 0 : _a6.rank) || 0) - offset; - if (!layers[rank2]) { - layers[rank2] = []; - } - layers[rank2].push(v3); - }); - let delta = 0; - const nodeRankFactor = g4.graph().nodeRankFactor || 0; - for (let i4 = 0; i4 < layers.length; i4++) { - const vs = layers[i4]; - if (vs === void 0 && i4 % nodeRankFactor !== 0) { - --delta; - } else if (delta) { - vs === null || vs === void 0 ? void 0 : vs.forEach((v3) => { - if (!g4.node(v3).rank) - g4.node(v3).rank = 0; - g4.node(v3).rank += delta; - }); - } - } -}; -var addBorderNode = (g4, prefix2, rank2, order2) => { - const node = { - width: 0, - height: 0 - }; - if (isNumber3(rank2) && isNumber3(order2)) { - node.rank = rank2; - node.order = order2; - } - return addDummyNode(g4, "border", node, prefix2); -}; -var maxRank = (g4) => { - const nodeRanks = g4.nodes().map((v3) => { - const rank2 = g4.node(v3).rank; - if (rank2 !== void 0) { - return rank2; - } - return -Infinity; - }); - return Math.max(...nodeRanks); -}; -var partition2 = (collection, fn2) => { - const result = { lhs: [], rhs: [] }; - collection === null || collection === void 0 ? void 0 : collection.forEach((value2) => { - if (fn2(value2)) { - result.lhs.push(value2); - } else { - result.rhs.push(value2); - } - }); - return result; -}; -var time = (name, fn2) => { - const start = Date.now(); - try { - return fn2(); - } finally { - console.log(`${name} time: ${Date.now() - start}ms`); - } -}; -var notime = (name, fn2) => { - return fn2(); -}; -var minBy = (array, func) => { - let min7 = Infinity; - let minObject; - array === null || array === void 0 ? void 0 : array.forEach((item) => { - const value2 = func(item); - if (min7 > value2) { - min7 = value2; - minObject = item; - } - }); - return minObject; -}; -var util_default2 = { - addDummyNode, - simplify, - asNonCompoundGraph, - successorWeights, - predecessorWeights, - intersectRect: intersectRect3, - buildLayerMatrix, - normalizeRanks, - removeEmptyRanks, - addBorderNode, - maxRank, - partition: partition2, - time, - notime, - zipObject, - minBy -}; - -// node_modules/@antv/layout/es/layout/dagre/src/normalize.js -var run2 = (g4) => { - g4.graph().dummyChains = []; - g4.edges().forEach((edge2) => normalizeEdge(g4, edge2)); -}; -var normalizeEdge = (g4, e4) => { - var _a6, _b; - let v3 = e4.v; - let vRank = g4.node(v3).rank; - const w4 = e4.w; - const wRank = g4.node(w4).rank; - const name = e4.name; - const edgeLabel = g4.edge(e4); - const labelRank = edgeLabel.labelRank; - if (wRank === vRank + 1) - return; - g4.removeEdge(e4); - let dummy; - let attrs; - let i4; - for (i4 = 0, ++vRank; vRank < wRank; ++i4, ++vRank) { - edgeLabel.points = []; - attrs = { - edgeLabel, - width: 0, - height: 0, - edgeObj: e4, - rank: vRank - }; - dummy = util_default2.addDummyNode(g4, "edge", attrs, "_d"); - if (vRank === labelRank) { - attrs.width = edgeLabel.width; - attrs.height = edgeLabel.height; - attrs.dummy = "edge-label"; - attrs.labelpos = edgeLabel.labelpos; - } - g4.setEdge(v3, dummy, { weight: edgeLabel.weight }, name); - if (i4 === 0) { - if (!g4.graph().dummyChains) - g4.graph().dummyChains = []; - (_b = (_a6 = g4.graph()) === null || _a6 === void 0 ? void 0 : _a6.dummyChains) === null || _b === void 0 ? void 0 : _b.push(dummy); - } - v3 = dummy; - } - g4.setEdge(v3, w4, { weight: edgeLabel.weight }, name); -}; -var undo2 = (g4) => { - var _a6; - (_a6 = g4.graph().dummyChains) === null || _a6 === void 0 ? void 0 : _a6.forEach((v3) => { - var _a7; - let node = g4.node(v3); - const origLabel = node.edgeLabel; - let w4; - node.edgeObj && g4.setEdge(node.edgeObj, origLabel); - let currentV = v3; - while (node.dummy) { - w4 = (_a7 = g4.successors(currentV)) === null || _a7 === void 0 ? void 0 : _a7[0]; - g4.removeNode(currentV); - origLabel.points.push({ x: node.x, y: node.y }); - if (node.dummy === "edge-label") { - origLabel.x = node.x; - origLabel.y = node.y; - origLabel.width = node.width; - origLabel.height = node.height; - } - currentV = w4; - node = g4.node(currentV); - } - }); -}; -var normalize_default = { run: run2, undo: undo2 }; - -// node_modules/@antv/layout/es/layout/dagre/src/rank/util.js -var longestPath = (g4) => { - var _a6; - const visited = {}; - const dfs2 = (v3) => { - var _a7; - const label17 = g4.node(v3); - if (visited.hasOwnProperty(v3)) { - return label17.rank; - } - visited[v3] = true; - const lengths = (_a7 = g4.outEdges(v3)) === null || _a7 === void 0 ? void 0 : _a7.map((e4) => { - return dfs2(e4.w) - g4.edge(e4).minlen || Infinity; - }); - let rank2 = Math.min(...lengths); - if (rank2 === Number.POSITIVE_INFINITY || rank2 === void 0 || rank2 === null) { - rank2 = 0; - } - label17.rank = rank2; - return rank2; - }; - (_a6 = g4.sources()) === null || _a6 === void 0 ? void 0 : _a6.forEach((source) => dfs2(source)); -}; -var longestPathWithLayer = (g4) => { - var _a6; - const visited = {}; - let minRank = 0; - const dfs2 = (v3) => { - var _a7; - const label17 = g4.node(v3); - if (visited.hasOwnProperty(v3)) { - return label17.rank; - } - visited[v3] = true; - const lengths = (_a7 = g4.outEdges(v3)) === null || _a7 === void 0 ? void 0 : _a7.map((e4) => { - return dfs2(e4.w) - g4.edge(e4).minlen || Infinity; - }); - let rank2 = Math.min(...lengths); - if (rank2 === Number.POSITIVE_INFINITY || rank2 === void 0 || rank2 === null) { - rank2 = 0; - } - label17.rank = rank2; - minRank = Math.min(label17.rank, minRank); - return label17.rank; - }; - (_a6 = g4.sources()) === null || _a6 === void 0 ? void 0 : _a6.forEach((source) => dfs2(source)); - minRank += 1; - const dfsForward = (v3, nextRank) => { - var _a7; - const label17 = g4.node(v3); - const currRank = !isNaN(label17.layer) ? label17.layer : nextRank; - if (label17.rank === void 0 || label17.rank < currRank) { - label17.rank = currRank; - } - (_a7 = g4.outEdges(v3)) === null || _a7 === void 0 ? void 0 : _a7.map((e4) => { - dfsForward(e4.w, currRank + g4.edge(e4).minlen); - }); - }; - g4.nodes().forEach((n3) => { - const label17 = g4.node(n3); - if (!isNaN(label17.layer)) { - dfsForward(n3, label17.layer); - } else { - label17.rank -= minRank; - } - }); -}; -var slack = (g4, e4) => { - return g4.node(e4.w).rank - g4.node(e4.v).rank - g4.edge(e4).minlen; -}; - -// node_modules/@antv/layout/es/layout/dagre/src/rank/feasible-tree.js -var Graph4 = graphlib_default.Graph; -var feasibleTree = (g4) => { - const t4 = new Graph4({ directed: false }); - const start = g4.nodes()[0]; - const size2 = g4.nodeCount(); - t4.setNode(start, {}); - let edge2; - let delta; - while (tightTree(t4, g4) < size2) { - edge2 = findMinSlackEdge(t4, g4); - delta = t4.hasNode(edge2.v) ? slack(g4, edge2) : -slack(g4, edge2); - shiftRanks(t4, g4, delta); - } - return t4; -}; -var tightTree = (t4, g4) => { - const dfs2 = (v3) => { - g4.nodeEdges(v3).forEach((e4) => { - const edgeV = e4.v; - const w4 = v3 === edgeV ? e4.w : edgeV; - if (!t4.hasNode(w4) && !slack(g4, e4)) { - t4.setNode(w4, {}); - t4.setEdge(v3, w4, {}); - dfs2(w4); - } - }); - }; - t4.nodes().forEach(dfs2); - return t4.nodeCount(); -}; -var feasibleTreeWithLayer = (g4) => { - const t4 = new Graph4({ directed: false }); - const start = g4.nodes()[0]; - const size2 = g4.nodeCount(); - t4.setNode(start, {}); - let edge2; - let delta; - while (tightTreeWithLayer(t4, g4) < size2) { - edge2 = findMinSlackEdge(t4, g4); - delta = t4.hasNode(edge2.v) ? slack(g4, edge2) : -slack(g4, edge2); - shiftRanks(t4, g4, delta); - } - return t4; -}; -var tightTreeWithLayer = (t4, g4) => { - const dfs2 = (v3) => { - var _a6; - (_a6 = g4.nodeEdges(v3)) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => { - const edgeV = e4.v; - const w4 = v3 === edgeV ? e4.w : edgeV; - if (!t4.hasNode(w4) && (g4.node(w4).layer !== void 0 || !slack(g4, e4))) { - t4.setNode(w4, {}); - t4.setEdge(v3, w4, {}); - dfs2(w4); - } - }); - }; - t4.nodes().forEach(dfs2); - return t4.nodeCount(); -}; -var findMinSlackEdge = (t4, g4) => { - return minBy(g4.edges(), (e4) => { - if (t4.hasNode(e4.v) !== t4.hasNode(e4.w)) { - return slack(g4, e4); - } - return Infinity; - }); -}; -var shiftRanks = (t4, g4, delta) => { - t4.nodes().forEach((v3) => { - if (!g4.node(v3).rank) - g4.node(v3).rank = 0; - g4.node(v3).rank += delta; - }); -}; - -// node_modules/@antv/layout/es/layout/dagre/src/rank/network-simplex.js -var alg = graphlib_default.alg; -var { preorder, postorder } = alg; -var networkSimplex = (g4) => { - g4 = simplify(g4); - longestPath(g4); - const t4 = feasibleTree(g4); - initLowLimValues(t4); - initCutValues(t4, g4); - let e4; - let f3; - while (e4 = leaveEdge(t4)) { - f3 = enterEdge(t4, g4, e4); - exchangeEdges(t4, g4, e4, f3); - } -}; -var initCutValues = (t4, g4) => { - let vs = postorder(t4, t4.nodes()); - vs = vs === null || vs === void 0 ? void 0 : vs.slice(0, (vs === null || vs === void 0 ? void 0 : vs.length) - 1); - vs === null || vs === void 0 ? void 0 : vs.forEach((v3) => { - assignCutValue(t4, g4, v3); - }); -}; -var assignCutValue = (t4, g4, child) => { - const childLab = t4.node(child); - const parent = childLab.parent; - t4.edge(child, parent).cutvalue = calcCutValue(t4, g4, child); -}; -var calcCutValue = (t4, g4, child) => { - var _a6; - const childLab = t4.node(child); - const parent = childLab.parent; - let childIsTail = true; - let graphEdge = g4.edge(child, parent); - let cutValue = 0; - if (!graphEdge) { - childIsTail = false; - graphEdge = g4.edge(parent, child); - } - cutValue = graphEdge.weight; - (_a6 = g4.nodeEdges(child)) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => { - const isOutEdge = e4.v === child; - const other2 = isOutEdge ? e4.w : e4.v; - if (other2 !== parent) { - const pointsToHead = isOutEdge === childIsTail; - const otherWeight = g4.edge(e4).weight; - cutValue += pointsToHead ? otherWeight : -otherWeight; - if (isTreeEdge(t4, child, other2)) { - const otherCutValue = t4.edge(child, other2).cutvalue; - cutValue += pointsToHead ? -otherCutValue : otherCutValue; - } - } - }); - return cutValue; -}; -var initLowLimValues = (tree, root) => { - if (root !== void 0) { - root = tree.nodes()[0]; - } - dfsAssignLowLim(tree, {}, 1, root); -}; -var dfsAssignLowLim = (tree, visited, nextLim, v3, parent) => { - var _a6; - const low = nextLim; - let useNextLim = nextLim; - const label17 = tree.node(v3); - visited[v3] = true; - (_a6 = tree.neighbors(v3)) === null || _a6 === void 0 ? void 0 : _a6.forEach((w4) => { - if (!visited.hasOwnProperty(w4)) { - useNextLim = dfsAssignLowLim(tree, visited, useNextLim, w4, v3); - } - }); - label17.low = low; - label17.lim = useNextLim++; - if (parent) { - label17.parent = parent; - } else { - delete label17.parent; - } - return useNextLim; -}; -var leaveEdge = (tree) => { - return tree.edges().find((e4) => { - return tree.edge(e4).cutvalue < 0; - }); -}; -var enterEdge = (t4, g4, edge2) => { - let v3 = edge2.v; - let w4 = edge2.w; - if (!g4.hasEdge(v3, w4)) { - v3 = edge2.w; - w4 = edge2.v; - } - const vLabel = t4.node(v3); - const wLabel = t4.node(w4); - let tailLabel = vLabel; - let flip = false; - if (vLabel.lim > wLabel.lim) { - tailLabel = wLabel; - flip = true; - } - const candidates = g4.edges().filter((edge3) => { - return flip === isDescendant(t4, t4.node(edge3.v), tailLabel) && flip !== isDescendant(t4, t4.node(edge3.w), tailLabel); - }); - return minBy(candidates, (edge3) => { - return slack(g4, edge3); - }); -}; -var exchangeEdges = (t4, g4, e4, f3) => { - const v3 = e4.v; - const w4 = e4.w; - t4.removeEdge(v3, w4); - t4.setEdge(f3.v, f3.w, {}); - initLowLimValues(t4); - initCutValues(t4, g4); - updateRanks(t4, g4); -}; -var updateRanks = (t4, g4) => { - const root = t4.nodes().find((v3) => { - return !g4.node(v3).parent; - }); - let vs = preorder(t4, root); - vs = vs === null || vs === void 0 ? void 0 : vs.slice(1); - vs === null || vs === void 0 ? void 0 : vs.forEach((v3) => { - const parent = t4.node(v3).parent; - let edge2 = g4.edge(v3, parent); - let flipped = false; - if (!edge2) { - edge2 = g4.edge(parent, v3); - flipped = true; - } - g4.node(v3).rank = g4.node(parent).rank + (flipped ? edge2.minlen : -edge2.minlen); - }); -}; -var isTreeEdge = (tree, u3, v3) => { - return tree.hasEdge(u3, v3); -}; -var isDescendant = (tree, vLabel, rootLabel) => { - return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim; -}; -networkSimplex.initLowLimValues = initLowLimValues; -networkSimplex.initCutValues = initCutValues; -networkSimplex.calcCutValue = calcCutValue; -networkSimplex.leaveEdge = leaveEdge; -networkSimplex.enterEdge = enterEdge; -networkSimplex.exchangeEdges = exchangeEdges; -var network_simplex_default = networkSimplex; - -// node_modules/@antv/layout/es/layout/dagre/src/rank/index.js -var rank = (g4) => { - switch (g4.graph().ranker) { - case "network-simplex": - networkSimplexRanker(g4); - break; - case "tight-tree": - tightTreeRanker(g4); - break; - case "longest-path": - longestPathRanker(g4); - break; - default: - tightTreeRanker(g4); - } -}; -var longestPathRanker = longestPath; -var tightTreeRanker = (g4) => { - longestPathWithLayer(g4); - feasibleTreeWithLayer(g4); -}; -var networkSimplexRanker = (g4) => { - network_simplex_default(g4); -}; -var rank_default = rank; - -// node_modules/@antv/layout/es/layout/dagre/src/parent-dummy-chains.js -var parentDummyChains = (g4) => { - var _a6; - const postorderNums = postorder2(g4); - (_a6 = g4.graph().dummyChains) === null || _a6 === void 0 ? void 0 : _a6.forEach((v3) => { - var _a7, _b; - let node = g4.node(v3); - const edgeObj = node.edgeObj; - if (!edgeObj) - return; - const pathData = findPath(g4, postorderNums, edgeObj.v, edgeObj.w); - const path = pathData.path; - const lca = pathData.lca; - let pathIdx = 0; - let pathV = path[pathIdx]; - let ascending = true; - while (v3 !== edgeObj.w) { - node = g4.node(v3); - if (ascending) { - while ((pathV = path[pathIdx]) !== lca && g4.node(pathV).maxRank < node.rank) { - pathIdx++; - } - if (pathV === lca) { - ascending = false; - } - } - if (!ascending) { - while (pathIdx < path.length - 1 && ((_a7 = g4.node(pathV = path[pathIdx + 1])) === null || _a7 === void 0 ? void 0 : _a7.minRank) <= node.rank) { - pathIdx++; - } - pathV = path[pathIdx]; - } - g4.setParent(v3, pathV); - v3 = (_b = g4.successors(v3)) === null || _b === void 0 ? void 0 : _b[0]; - } - }); -}; -var findPath = (g4, postorderNums, v3, w4) => { - const vPath = []; - const wPath = []; - const low = Math.min(postorderNums[v3].low, postorderNums[w4].low); - const lim = Math.max(postorderNums[v3].lim, postorderNums[w4].lim); - let parent; - let lca; - parent = v3; - do { - parent = g4.parent(parent); - vPath.push(parent); - } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim)); - lca = parent; - parent = w4; - while ((parent = g4.parent(parent)) !== lca) { - wPath.push(parent); - } - return { lca, path: vPath.concat(wPath.reverse()) }; -}; -var postorder2 = (g4) => { - var _a6; - const result = {}; - let lim = 0; - const dfs2 = (v3) => { - var _a7; - const low = lim; - (_a7 = g4.children(v3)) === null || _a7 === void 0 ? void 0 : _a7.forEach(dfs2); - result[v3] = { low, lim: lim++ }; - }; - (_a6 = g4.children()) === null || _a6 === void 0 ? void 0 : _a6.forEach(dfs2); - return result; -}; -var parent_dummy_chains_default = parentDummyChains; - -// node_modules/@antv/layout/es/layout/dagre/src/nesting-graph.js -var run3 = (g4) => { - var _a6; - const root = util_default2.addDummyNode(g4, "root", {}, "_root"); - const depths = treeDepths(g4); - const height = Math.max(...Object.values(depths)) - 1; - const nodeSep = 2 * height + 1; - g4.graph().nestingRoot = root; - g4.edges().forEach((e4) => { - g4.edge(e4).minlen *= nodeSep; - }); - const weight = sumWeights(g4) + 1; - (_a6 = g4.children()) === null || _a6 === void 0 ? void 0 : _a6.forEach((child) => { - dfs(g4, root, nodeSep, weight, height, depths, child); - }); - g4.graph().nodeRankFactor = nodeSep; -}; -var dfs = (g4, root, nodeSep, weight, height, depths, v3) => { - const children = g4.children(v3); - if (!(children === null || children === void 0 ? void 0 : children.length)) { - if (v3 !== root) { - g4.setEdge(root, v3, { weight: 0, minlen: nodeSep }); - } - return; - } - const top = util_default2.addBorderNode(g4, "_bt"); - const bottom = util_default2.addBorderNode(g4, "_bb"); - const label17 = g4.node(v3); - g4.setParent(top, v3); - label17.borderTop = top; - g4.setParent(bottom, v3); - label17.borderBottom = bottom; - children === null || children === void 0 ? void 0 : children.forEach((child) => { - dfs(g4, root, nodeSep, weight, height, depths, child); - const childNode = g4.node(child); - const childTop = childNode.borderTop ? childNode.borderTop : child; - const childBottom = childNode.borderBottom ? childNode.borderBottom : child; - const thisWeight = childNode.borderTop ? weight : 2 * weight; - const minlen = childTop !== childBottom ? 1 : height - depths[v3] + 1; - g4.setEdge(top, childTop, { - minlen, - weight: thisWeight, - nestingEdge: true - }); - g4.setEdge(childBottom, bottom, { - minlen, - weight: thisWeight, - nestingEdge: true - }); - }); - if (!g4.parent(v3)) { - g4.setEdge(root, top, { weight: 0, minlen: height + depths[v3] }); - } -}; -var treeDepths = (g4) => { - var _a6; - const depths = {}; - const dfs2 = (v3, depth) => { - const children = g4.children(v3); - children === null || children === void 0 ? void 0 : children.forEach((child) => dfs2(child, depth + 1)); - depths[v3] = depth; - }; - (_a6 = g4.children()) === null || _a6 === void 0 ? void 0 : _a6.forEach((v3) => dfs2(v3, 1)); - return depths; -}; -var sumWeights = (g4) => { - let result = 0; - g4.edges().forEach((e4) => { - result += g4.edge(e4).weight; - }); - return result; -}; -var cleanup = (g4) => { - const graphLabel = g4.graph(); - graphLabel.nestingRoot && g4.removeNode(graphLabel.nestingRoot); - delete graphLabel.nestingRoot; - g4.edges().forEach((e4) => { - const edge2 = g4.edge(e4); - if (edge2.nestingEdge) { - g4.removeEdge(e4); - } - }); -}; -var nesting_graph_default = { run: run3, cleanup }; - -// node_modules/@antv/layout/es/layout/dagre/src/add-border-segments.js -var addBorderSegments = (g4) => { - var _a6; - const dfs2 = (v3) => { - const children = g4.children(v3); - const node = g4.node(v3); - if (children === null || children === void 0 ? void 0 : children.length) { - children.forEach((child) => dfs2(child)); - } - if (node.hasOwnProperty("minRank")) { - node.borderLeft = []; - node.borderRight = []; - for (let rank2 = node.minRank, maxRank2 = node.maxRank + 1; rank2 < maxRank2; ++rank2) { - addBorderNode2(g4, "borderLeft", "_bl", v3, node, rank2); - addBorderNode2(g4, "borderRight", "_br", v3, node, rank2); - } - } - }; - (_a6 = g4.children()) === null || _a6 === void 0 ? void 0 : _a6.forEach((child) => dfs2(child)); -}; -var addBorderNode2 = (g4, prop, prefix2, sg, sgNode, rank2) => { - const label17 = { rank: rank2, width: 0, height: 0, borderType: prop }; - const prev = sgNode[prop][rank2 - 1]; - const curr = util_default2.addDummyNode(g4, "border", label17, prefix2); - sgNode[prop][rank2] = curr; - g4.setParent(curr, sg); - if (prev) { - g4.setEdge(prev, curr, { weight: 1 }); - } -}; -var add_border_segments_default = addBorderSegments; - -// node_modules/@antv/layout/es/layout/dagre/src/coordinate-system.js -var adjust3 = (g4) => { - var _a6; - const rankDir = (_a6 = g4.graph().rankdir) === null || _a6 === void 0 ? void 0 : _a6.toLowerCase(); - if (rankDir === "lr" || rankDir === "rl") { - swapWidthHeight(g4); - } -}; -var undo3 = (g4) => { - var _a6; - const rankDir = (_a6 = g4.graph().rankdir) === null || _a6 === void 0 ? void 0 : _a6.toLowerCase(); - if (rankDir === "bt" || rankDir === "rl") { - reverseY(g4); - } - if (rankDir === "lr" || rankDir === "rl") { - swapXY(g4); - swapWidthHeight(g4); - } -}; -var swapWidthHeight = (g4) => { - g4.nodes().forEach((v3) => { - swapWidthHeightOne(g4.node(v3)); - }); - g4.edges().forEach((e4) => { - swapWidthHeightOne(g4.edge(e4)); - }); -}; -var swapWidthHeightOne = (attrs) => { - const w4 = attrs.width; - attrs.width = attrs.height; - attrs.height = w4; -}; -var reverseY = (g4) => { - g4.nodes().forEach((v3) => { - reverseYOne(g4.node(v3)); - }); - g4.edges().forEach((e4) => { - var _a6; - const edge2 = g4.edge(e4); - (_a6 = edge2.points) === null || _a6 === void 0 ? void 0 : _a6.forEach((point2) => reverseYOne(point2)); - if (edge2.hasOwnProperty("y")) { - reverseYOne(edge2); - } - }); -}; -var reverseYOne = (attrs) => { - attrs.y = -attrs.y; -}; -var swapXY = (g4) => { - g4.nodes().forEach((v3) => { - swapXYOne(g4.node(v3)); - }); - g4.edges().forEach((e4) => { - var _a6; - const edge2 = g4.edge(e4); - (_a6 = edge2.points) === null || _a6 === void 0 ? void 0 : _a6.forEach((point2) => swapXYOne(point2)); - if (edge2.hasOwnProperty("x")) { - swapXYOne(edge2); - } - }); -}; -var swapXYOne = (attrs) => { - const x6 = attrs.x; - attrs.x = attrs.y; - attrs.y = x6; -}; -var coordinate_system_default = { adjust: adjust3, undo: undo3 }; - -// node_modules/@antv/layout/es/layout/dagre/src/order/init-order.js -var initOrder = (g4) => { - const visited = {}; - const simpleNodes = g4.nodes().filter((v3) => { - var _a6; - return !((_a6 = g4.children(v3)) === null || _a6 === void 0 ? void 0 : _a6.length); - }); - const nodeRanks = simpleNodes.map((v3) => g4.node(v3).rank); - const maxRank2 = Math.max(...nodeRanks); - const layers = []; - for (let i4 = 0; i4 < maxRank2 + 1; i4++) { - layers.push([]); - } - const dfs2 = (v3) => { - var _a6; - if (visited.hasOwnProperty(v3)) - return; - visited[v3] = true; - const node = g4.node(v3); - if (!isNaN(node.rank)) { - layers[node.rank].push(v3); - } - (_a6 = g4.successors(v3)) === null || _a6 === void 0 ? void 0 : _a6.forEach((child) => dfs2(child)); - }; - const orderedVs = simpleNodes.sort((a4, b10) => g4.node(a4).rank - g4.node(b10).rank); - const beforeSort = orderedVs.filter((n3) => { - return g4.node(n3).fixorder !== void 0; - }); - const fixOrderNodes = beforeSort.sort((a4, b10) => g4.node(a4).fixorder - g4.node(b10).fixorder); - fixOrderNodes === null || fixOrderNodes === void 0 ? void 0 : fixOrderNodes.forEach((n3) => { - if (!isNaN(g4.node(n3).rank)) { - layers[g4.node(n3).rank].push(n3); - } - visited[n3] = true; - }); - orderedVs === null || orderedVs === void 0 ? void 0 : orderedVs.forEach(dfs2); - return layers; -}; -var init_order_default = initOrder; - -// node_modules/@antv/layout/es/layout/dagre/src/order/cross-count.js -var twoLayerCrossCount = (g4, northLayer, southLayer) => { - const southPos = zipObject(southLayer, southLayer.map((v3, i4) => i4)); - const unflat = northLayer.map((v3) => { - var _a6; - const unsort = (_a6 = g4.outEdges(v3)) === null || _a6 === void 0 ? void 0 : _a6.map((e4) => { - return { pos: southPos[e4.w] || 0, weight: g4.edge(e4).weight }; - }); - return unsort === null || unsort === void 0 ? void 0 : unsort.sort((a4, b10) => a4.pos - b10.pos); - }); - const southEntries = unflat.flat().filter((entry) => entry !== void 0); - let firstIndex = 1; - while (firstIndex < southLayer.length) - firstIndex <<= 1; - const treeSize = 2 * firstIndex - 1; - firstIndex -= 1; - const tree = Array(treeSize).fill(0, 0, treeSize); - let cc = 0; - southEntries === null || southEntries === void 0 ? void 0 : southEntries.forEach((entry) => { - let index2 = entry.pos + firstIndex; - tree[index2] += entry.weight; - let weightSum = 0; - while (index2 > 0) { - if (index2 % 2) { - weightSum += tree[index2 + 1]; - } - index2 = index2 - 1 >> 1; - tree[index2] += entry.weight; - } - cc += entry.weight * weightSum; - }); - return cc; -}; -var crossCount = (g4, layering) => { - let cc = 0; - for (let i4 = 1; i4 < (layering === null || layering === void 0 ? void 0 : layering.length); ++i4) { - cc += twoLayerCrossCount(g4, layering[i4 - 1], layering[i4]); - } - return cc; -}; -var cross_count_default = crossCount; - -// node_modules/@antv/layout/es/layout/dagre/src/order/build-layer-graph.js -var Graph5 = graphlib_default.Graph; -var buildLayerGraph = (g4, rank2, relationship) => { - const root = createRootNode(g4); - const result = new Graph5({ compound: true }).setGraph({ root }).setDefaultNodeLabel((v3) => { - return g4.node(v3); - }); - g4.nodes().forEach((v3) => { - const node = g4.node(v3); - const parent = g4.parent(v3); - if (node.rank === rank2 || node.minRank <= rank2 && rank2 <= node.maxRank) { - result.setNode(v3); - result.setParent(v3, parent || root); - g4[relationship](v3).forEach((e4) => { - const u3 = e4.v === v3 ? e4.w : e4.v; - const edge2 = result.edge(u3, v3); - const weight = edge2 !== void 0 ? edge2.weight : 0; - result.setEdge(u3, v3, { weight: g4.edge(e4).weight + weight }); - }); - if (node.hasOwnProperty("minRank")) { - result.setNode(v3, { - borderLeft: node.borderLeft[rank2], - borderRight: node.borderRight[rank2] - }); - } - } - }); - return result; -}; -var createRootNode = (g4) => { - let v3; - while (g4.hasNode(v3 = `_root${Math.random()}`)) - ; - return v3; -}; -var build_layer_graph_default = buildLayerGraph; - -// node_modules/@antv/layout/es/layout/dagre/src/order/add-subgraph-constraints.js -var addSubgraphConstraints = (g4, cg, vs) => { - const prev = {}; - let rootPrev; - vs === null || vs === void 0 ? void 0 : vs.forEach((v3) => { - let child = g4.parent(v3); - let parent; - let prevChild; - while (child) { - parent = g4.parent(child); - if (parent) { - prevChild = prev[parent]; - prev[parent] = child; - } else { - prevChild = rootPrev; - rootPrev = child; - } - if (prevChild && prevChild !== child) { - cg.setEdge(prevChild, child); - return; - } - child = parent; - } - }); -}; -var add_subgraph_constraints_default = addSubgraphConstraints; - -// node_modules/@antv/layout/es/layout/dagre/src/order/barycenter.js -var barycenter = (g4, movable) => { - return movable.map((v3) => { - const inV = g4.inEdges(v3); - if (!(inV === null || inV === void 0 ? void 0 : inV.length)) { - return { v: v3 }; - } - { - const result = { sum: 0, weight: 0 }; - inV === null || inV === void 0 ? void 0 : inV.forEach((e4) => { - const edge2 = g4.edge(e4); - const nodeU = g4.node(e4.v); - result.sum += edge2.weight * nodeU.order; - result.weight += edge2.weight; - }); - return { - v: v3, - barycenter: result.sum / result.weight, - weight: result.weight - }; - } - }); -}; -var barycenter_default = barycenter; - -// node_modules/@antv/layout/es/layout/dagre/src/order/resolve-conflicts.js -var resolveConflicts = (entries, cg) => { - var _a6, _b, _c; - const mappedEntries = {}; - entries === null || entries === void 0 ? void 0 : entries.forEach((entry, i4) => { - const tmp = mappedEntries[entry.v] = { - i: i4, - indegree: 0, - "in": [], - out: [], - vs: [entry.v] - }; - if (entry.barycenter !== void 0) { - tmp.barycenter = entry.barycenter; - tmp.weight = entry.weight; - } - }); - (_a6 = cg.edges()) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => { - const entryV = mappedEntries[e4.v]; - const entryW = mappedEntries[e4.w]; - if (entryV !== void 0 && entryW !== void 0) { - entryW.indegree++; - entryV.out.push(mappedEntries[e4.w]); - } - }); - const sourceSet = (_c = (_b = Object.values(mappedEntries)).filter) === null || _c === void 0 ? void 0 : _c.call(_b, (entry) => !entry.indegree); - return doResolveConflicts(sourceSet); -}; -var doResolveConflicts = (sourceSet) => { - var _a6, _b; - const entries = []; - const handleIn = (vEntry) => { - return (uEntry) => { - if (uEntry.merged) - return; - if (uEntry.barycenter === void 0 || vEntry.barycenter === void 0 || uEntry.barycenter >= vEntry.barycenter) { - mergeEntries(vEntry, uEntry); - } - }; - }; - const handleOut = (vEntry) => { - return (wEntry) => { - wEntry["in"].push(vEntry); - if (--wEntry.indegree === 0) { - sourceSet.push(wEntry); - } - }; - }; - while (sourceSet === null || sourceSet === void 0 ? void 0 : sourceSet.length) { - const entry = sourceSet.pop(); - entries.push(entry); - (_a6 = entry["in"].reverse()) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => handleIn(entry)(e4)); - (_b = entry.out) === null || _b === void 0 ? void 0 : _b.forEach((e4) => handleOut(entry)(e4)); - } - const filtered = entries.filter((entry) => !entry.merged); - const keys2 = ["vs", "i", "barycenter", "weight"]; - return filtered.map((entry) => { - const picked = {}; - keys2 === null || keys2 === void 0 ? void 0 : keys2.forEach((key) => { - if (entry[key] === void 0) - return; - picked[key] = entry[key]; - }); - return picked; - }); -}; -var mergeEntries = (target, source) => { - var _a6; - let sum = 0; - let weight = 0; - if (target.weight) { - sum += target.barycenter * target.weight; - weight += target.weight; - } - if (source.weight) { - sum += source.barycenter * source.weight; - weight += source.weight; - } - target.vs = (_a6 = source.vs) === null || _a6 === void 0 ? void 0 : _a6.concat(target.vs); - target.barycenter = sum / weight; - target.weight = weight; - target.i = Math.min(source.i, target.i); - source.merged = true; -}; -var resolve_conflicts_default = resolveConflicts; - -// node_modules/@antv/layout/es/layout/dagre/src/order/sort.js -var sort = (entries, biasRight, usePrev) => { - const parts = util_default2.partition(entries, (entry) => { - return entry.hasOwnProperty("fixorder") && !isNaN(entry.fixorder) || entry.hasOwnProperty("barycenter"); - }); - const sortable = parts.lhs; - const unsortable = parts.rhs.sort((a4, b10) => -a4.i - -b10.i); - const vs = []; - let sum = 0; - let weight = 0; - let vsIndex = 0; - sortable === null || sortable === void 0 ? void 0 : sortable.sort(compareWithBias(!!biasRight, !!usePrev)); - vsIndex = consumeUnsortable(vs, unsortable, vsIndex); - sortable === null || sortable === void 0 ? void 0 : sortable.forEach((entry) => { - var _a6; - vsIndex += (_a6 = entry.vs) === null || _a6 === void 0 ? void 0 : _a6.length; - vs.push(entry.vs); - sum += entry.barycenter * entry.weight; - weight += entry.weight; - vsIndex = consumeUnsortable(vs, unsortable, vsIndex); - }); - const result = { vs: vs.flat() }; - if (weight) { - result.barycenter = sum / weight; - result.weight = weight; - } - return result; -}; -var consumeUnsortable = (vs, unsortable, index2) => { - let iindex = index2; - let last2; - while (unsortable.length && (last2 = unsortable[unsortable.length - 1]).i <= iindex) { - unsortable.pop(); - vs === null || vs === void 0 ? void 0 : vs.push(last2.vs); - iindex++; - } - return iindex; -}; -var compareWithBias = (bias, usePrev) => { - return (entryV, entryW) => { - if (entryV.fixorder !== void 0 && entryW.fixorder !== void 0) { - return entryV.fixorder - entryW.fixorder; - } - if (entryV.barycenter < entryW.barycenter) { - return -1; - } - if (entryV.barycenter > entryW.barycenter) { - return 1; - } - if (usePrev && entryV.order !== void 0 && entryW.order !== void 0) { - if (entryV.order < entryW.order) { - return -1; - } - if (entryV.order > entryW.order) { - return 1; - } - } - return !bias ? entryV.i - entryW.i : entryW.i - entryV.i; - }; -}; -var sort_default2 = sort; - -// node_modules/@antv/layout/es/layout/dagre/src/order/sort-subgraph.js -var sortSubgraph = (g4, v3, cg, biasRight, usePrev) => { - var _a6, _b, _c, _d; - let movable = g4.children(v3); - const node = g4.node(v3); - const bl = node ? node.borderLeft : void 0; - const br = node ? node.borderRight : void 0; - const subgraphs = {}; - if (bl) { - movable = movable === null || movable === void 0 ? void 0 : movable.filter((w4) => { - return w4 !== bl && w4 !== br; - }); - } - const barycenters = barycenter_default(g4, movable || []); - barycenters === null || barycenters === void 0 ? void 0 : barycenters.forEach((entry) => { - var _a7; - if ((_a7 = g4.children(entry.v)) === null || _a7 === void 0 ? void 0 : _a7.length) { - const subgraphResult = sortSubgraph(g4, entry.v, cg, biasRight); - subgraphs[entry.v] = subgraphResult; - if (subgraphResult.hasOwnProperty("barycenter")) { - mergeBarycenters(entry, subgraphResult); - } - } - }); - const entries = resolve_conflicts_default(barycenters, cg); - expandSubgraphs(entries, subgraphs); - (_a6 = entries.filter((e4) => { - var _a7; - return !!e4.vs || ((_a7 = e4.vs) === null || _a7 === void 0 ? void 0 : _a7.length) > 0; - })) === null || _a6 === void 0 ? void 0 : _a6.forEach((e4) => { - const node2 = g4.node(e4.vs[0]); - e4.fixorder = node2.fixorder; - e4.order = node2.order; - }); - const result = sort_default2(entries, biasRight, usePrev); - if (bl) { - result.vs = [bl, result.vs, br].flat(); - if ((_b = g4.predecessors(bl)) === null || _b === void 0 ? void 0 : _b.length) { - const blPred = g4.node(((_c = g4.predecessors(bl)) === null || _c === void 0 ? void 0 : _c[0]) || {}); - const brPred = g4.node(((_d = g4.predecessors(br)) === null || _d === void 0 ? void 0 : _d[0]) || {}); - if (!result.hasOwnProperty("barycenter")) { - result.barycenter = 0; - result.weight = 0; - } - result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2); - result.weight += 2; - } - } - return result; -}; -var expandSubgraphs = (entries, subgraphs) => { - entries === null || entries === void 0 ? void 0 : entries.forEach((entry) => { - var _a6; - const vss = (_a6 = entry.vs) === null || _a6 === void 0 ? void 0 : _a6.map((v3) => { - if (subgraphs[v3]) { - return subgraphs[v3].vs; - } - return v3; - }); - entry.vs = vss.flat(); - }); -}; -var mergeBarycenters = (target, other2) => { - if (target.barycenter !== void 0) { - target.barycenter = (target.barycenter * target.weight + other2.barycenter * other2.weight) / (target.weight + other2.weight); - target.weight += other2.weight; - } else { - target.barycenter = other2.barycenter; - target.weight = other2.weight; - } -}; -var sort_subgraph_default = sortSubgraph; - -// node_modules/@antv/layout/es/layout/dagre/src/order/index.js -var Graph6 = graphlib_default.Graph; -var order = (g4) => { - const maxRank2 = util_default2.maxRank(g4); - const range1 = []; - const range2 = []; - for (let i4 = 1; i4 < maxRank2 + 1; i4++) - range1.push(i4); - for (let i4 = maxRank2 - 1; i4 > -1; i4--) - range2.push(i4); - const downLayerGraphs = buildLayerGraphs(g4, range1, "inEdges"); - const upLayerGraphs = buildLayerGraphs(g4, range2, "outEdges"); - let layering = init_order_default(g4); - assignOrder(g4, layering); - let bestCC = Number.POSITIVE_INFINITY; - let best; - for (let i4 = 0, lastBest = 0; lastBest < 4; ++i4, ++lastBest) { - sweepLayerGraphs(i4 % 2 ? downLayerGraphs : upLayerGraphs, i4 % 4 >= 2); - layering = util_default2.buildLayerMatrix(g4); - const cc = cross_count_default(g4, layering); - if (cc < bestCC) { - lastBest = 0; - best = clone9(layering); - bestCC = cc; - } - } - layering = init_order_default(g4); - assignOrder(g4, layering); - for (let i4 = 0, lastBest = 0; lastBest < 4; ++i4, ++lastBest) { - sweepLayerGraphs(i4 % 2 ? downLayerGraphs : upLayerGraphs, i4 % 4 >= 2, true); - layering = util_default2.buildLayerMatrix(g4); - const cc = cross_count_default(g4, layering); - if (cc < bestCC) { - lastBest = 0; - best = clone9(layering); - bestCC = cc; - } - } - assignOrder(g4, best); -}; -var buildLayerGraphs = (g4, ranks, relationship) => { - return ranks.map((rank2) => { - return build_layer_graph_default(g4, rank2, relationship); - }); -}; -var sweepLayerGraphs = (layerGraphs, biasRight, usePrev) => { - const cg = new Graph6(); - layerGraphs === null || layerGraphs === void 0 ? void 0 : layerGraphs.forEach((lg) => { - var _a6; - const root = lg.graph().root; - const sorted = sort_subgraph_default(lg, root, cg, biasRight, usePrev); - for (let i4 = 0; i4 < ((_a6 = sorted.vs) === null || _a6 === void 0 ? void 0 : _a6.length) || 0; i4++) { - lg.node(sorted.vs[i4]).order = i4; - } - add_subgraph_constraints_default(lg, cg, sorted.vs); - }); -}; -var assignOrder = (g4, layering) => { - layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => { - layer === null || layer === void 0 ? void 0 : layer.forEach((v3, i4) => { - g4.node(v3).order = i4; - }); - }); -}; -var order_default = order; - -// node_modules/@antv/layout/es/layout/dagre/src/position/bk.js -var Graph7 = graphlib_default.Graph; -var findType1Conflicts = (g4, layering) => { - const conflicts = {}; - const visitLayer = (prevLayer, layer) => { - let k0 = 0; - let scanPos = 0; - const prevLayerLength = prevLayer.length; - const lastNode = layer === null || layer === void 0 ? void 0 : layer[(layer === null || layer === void 0 ? void 0 : layer.length) - 1]; - layer === null || layer === void 0 ? void 0 : layer.forEach((v3, i4) => { - var _a6; - const w4 = findOtherInnerSegmentNode(g4, v3); - const k1 = w4 ? g4.node(w4).order : prevLayerLength; - if (w4 || v3 === lastNode) { - (_a6 = layer.slice(scanPos, i4 + 1)) === null || _a6 === void 0 ? void 0 : _a6.forEach((scanNode) => { - var _a7; - (_a7 = g4.predecessors(scanNode)) === null || _a7 === void 0 ? void 0 : _a7.forEach((u3) => { - const uLabel = g4.node(u3); - const uPos = uLabel.order; - if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g4.node(scanNode).dummy)) { - addConflict(conflicts, u3, scanNode); - } - }); - }); - scanPos = i4 + 1; - k0 = k1; - } - }); - return layer; - }; - if (layering === null || layering === void 0 ? void 0 : layering.length) { - layering.reduce(visitLayer); - } - return conflicts; -}; -var findType2Conflicts = (g4, layering) => { - const conflicts = {}; - const scan = (south, southPos, southEnd, prevNorthBorder, nextNorthBorder) => { - let v3; - const range = []; - for (let i4 = southPos; i4 < southEnd; i4++) { - range.push(i4); - } - range.forEach((i4) => { - var _a6; - v3 = south[i4]; - if (g4.node(v3).dummy) { - (_a6 = g4.predecessors(v3)) === null || _a6 === void 0 ? void 0 : _a6.forEach((u3) => { - const uNode = g4.node(u3); - if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) { - addConflict(conflicts, u3, v3); - } - }); - } - }); - }; - const visitLayer = (north, south) => { - let prevNorthPos = -1; - let nextNorthPos; - let southPos = 0; - south === null || south === void 0 ? void 0 : south.forEach((v3, southLookahead) => { - if (g4.node(v3).dummy === "border") { - const predecessors = g4.predecessors(v3) || []; - if (predecessors.length) { - nextNorthPos = g4.node(predecessors[0]).order; - scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos); - southPos = southLookahead; - prevNorthPos = nextNorthPos; - } - } - scan(south, southPos, south.length, nextNorthPos, north.length); - }); - return south; - }; - if (layering === null || layering === void 0 ? void 0 : layering.length) { - layering.reduce(visitLayer); - } - return conflicts; -}; -var findOtherInnerSegmentNode = (g4, v3) => { - var _a6; - if (g4.node(v3).dummy) { - return (_a6 = g4.predecessors(v3)) === null || _a6 === void 0 ? void 0 : _a6.find((u3) => g4.node(u3).dummy); - } -}; -var addConflict = (conflicts, v3, w4) => { - let vv = v3; - let ww = w4; - if (vv > ww) { - const tmp = vv; - vv = ww; - ww = tmp; - } - let conflictsV = conflicts[vv]; - if (!conflictsV) { - conflicts[vv] = conflictsV = {}; - } - conflictsV[ww] = true; -}; -var hasConflict = (conflicts, v3, w4) => { - let vv = v3; - let ww = w4; - if (vv > ww) { - const tmp = v3; - vv = ww; - ww = tmp; - } - return conflicts[vv] && conflicts[vv].hasOwnProperty(ww); -}; -var verticalAlignment = (g4, layering, conflicts, neighborFn) => { - const root = {}; - const align = {}; - const pos = {}; - layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => { - layer === null || layer === void 0 ? void 0 : layer.forEach((v3, order2) => { - root[v3] = v3; - align[v3] = v3; - pos[v3] = order2; - }); - }); - layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => { - let prevIdx = -1; - layer === null || layer === void 0 ? void 0 : layer.forEach((v3) => { - let ws = neighborFn(v3); - if (ws.length) { - ws = ws.sort((a4, b10) => pos[a4] - pos[b10]); - const mp = (ws.length - 1) / 2; - for (let i4 = Math.floor(mp), il = Math.ceil(mp); i4 <= il; ++i4) { - const w4 = ws[i4]; - if (align[v3] === v3 && prevIdx < pos[w4] && !hasConflict(conflicts, v3, w4)) { - align[w4] = v3; - align[v3] = root[v3] = root[w4]; - prevIdx = pos[w4]; - } - } - } - }); - }); - return { root, align }; -}; -var horizontalCompaction = (g4, layering, root, align, reverseSep) => { - var _a6; - const xs = {}; - const blockG = buildBlockGraph(g4, layering, root, reverseSep); - const borderType = reverseSep ? "borderLeft" : "borderRight"; - const iterate = (setXsFunc, nextNodesFunc) => { - let stack = blockG.nodes(); - let elem = stack.pop(); - const visited = {}; - while (elem) { - if (visited[elem]) { - setXsFunc(elem); - } else { - visited[elem] = true; - stack.push(elem); - stack = stack.concat(nextNodesFunc(elem)); - } - elem = stack.pop(); - } - }; - const pass1 = (elem) => { - xs[elem] = (blockG.inEdges(elem) || []).reduce((acc, e4) => { - return Math.max(acc, (xs[e4.v] || 0) + blockG.edge(e4)); - }, 0); - }; - const pass2 = (elem) => { - const min7 = (blockG.outEdges(elem) || []).reduce((acc, e4) => { - return Math.min(acc, (xs[e4.w] || 0) - blockG.edge(e4)); - }, Number.POSITIVE_INFINITY); - const node = g4.node(elem); - if (min7 !== Number.POSITIVE_INFINITY && node.borderType !== borderType) { - xs[elem] = Math.max(xs[elem], min7); - } - }; - iterate(pass1, blockG.predecessors.bind(blockG)); - iterate(pass2, blockG.successors.bind(blockG)); - (_a6 = Object.values(align)) === null || _a6 === void 0 ? void 0 : _a6.forEach((v3) => { - xs[v3] = xs[root[v3]]; - }); - return xs; -}; -var buildBlockGraph = (g4, layering, root, reverseSep) => { - const blockGraph = new Graph7(); - const graphLabel = g4.graph(); - const sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep); - layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => { - let u3; - layer === null || layer === void 0 ? void 0 : layer.forEach((v3) => { - const vRoot = root[v3]; - blockGraph.setNode(vRoot); - if (u3) { - const uRoot = root[u3]; - const prevMax = blockGraph.edge(uRoot, vRoot); - blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g4, v3, u3), prevMax || 0)); - } - u3 = v3; - }); - }); - return blockGraph; -}; -var findSmallestWidthAlignment = (g4, xss) => { - return util_default2.minBy(Object.values(xss), (xs) => { - var _a6; - let max8 = Number.NEGATIVE_INFINITY; - let min7 = Number.POSITIVE_INFINITY; - (_a6 = Object.keys(xs)) === null || _a6 === void 0 ? void 0 : _a6.forEach((v3) => { - const x6 = xs[v3]; - const halfWidth = width(g4, v3) / 2; - max8 = Math.max(x6 + halfWidth, max8); - min7 = Math.min(x6 - halfWidth, min7); - }); - return max8 - min7; - }); -}; -function alignCoordinates(xss, alignTo) { - const alignToVals = Object.values(alignTo); - const alignToMin = Math.min(...alignToVals); - const alignToMax = Math.max(...alignToVals); - ["u", "d"].forEach((vert) => { - ["l", "r"].forEach((horiz) => { - const alignment = vert + horiz; - const xs = xss[alignment]; - let delta; - if (xs === alignTo) - return; - const xsVals = Object.values(xs); - delta = horiz === "l" ? alignToMin - Math.min(...xsVals) : alignToMax - Math.max(...xsVals); - if (delta) { - xss[alignment] = {}; - Object.keys(xs).forEach((key) => { - xss[alignment][key] = xs[key] + delta; - }); - } - }); - }); -} -var balance = (xss, align) => { - const result = {}; - Object.keys(xss.ul).forEach((key) => { - if (align) { - result[key] = xss[align.toLowerCase()][key]; - } else { - const values2 = Object.values(xss).map((x6) => x6[key]); - const xs = values2.sort((a4, b10) => a4 - b10); - result[key] = (xs[1] + xs[2]) / 2; - } - }); - return result; -}; -var sep = (nodeSep, edgeSep, reverseSep) => { - return (g4, v3, w4) => { - const vLabel = g4.node(v3); - const wLabel = g4.node(w4); - let sum = 0; - let delta; - sum += vLabel.width / 2; - if (vLabel.hasOwnProperty("labelpos")) { - switch ((vLabel.labelpos || "").toLowerCase()) { - case "l": - delta = -vLabel.width / 2; - break; - case "r": - delta = vLabel.width / 2; - break; - } - } - if (delta) { - sum += reverseSep ? delta : -delta; - } - delta = 0; - sum += (vLabel.dummy ? edgeSep : nodeSep) / 2; - sum += (wLabel.dummy ? edgeSep : nodeSep) / 2; - sum += wLabel.width / 2; - if (wLabel.hasOwnProperty("labelpos")) { - switch ((wLabel.labelpos || "").toLowerCase()) { - case "l": - delta = wLabel.width / 2; - break; - case "r": - delta = -wLabel.width / 2; - break; - } - } - if (delta) { - sum += reverseSep ? delta : -delta; - } - delta = 0; - return sum; - }; -}; -var width = (g4, v3) => { - var _a6; - return ((_a6 = g4.node(v3)) === null || _a6 === void 0 ? void 0 : _a6.width) || 0; -}; - -// node_modules/@antv/layout/es/layout/dagre/src/position/index.js -var positionY = (g4) => { - const layering = util_default2.buildLayerMatrix(g4); - const rankSep = g4.graph().ranksep; - let prevY = 0; - layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => { - const heights = layer.map((v3) => g4.node(v3).height); - const maxHeight = Math.max(...heights); - layer === null || layer === void 0 ? void 0 : layer.forEach((v3) => { - g4.node(v3).y = prevY + maxHeight / 2; - }); - prevY += maxHeight + rankSep; - }); -}; -var positionX = (g4) => { - const layering = util_default2.buildLayerMatrix(g4); - const conflicts = Object.assign(findType1Conflicts(g4, layering), findType2Conflicts(g4, layering)); - const xss = {}; - let adjustedLayering; - ["u", "d"].forEach((vert) => { - adjustedLayering = vert === "u" ? layering : Object.values(layering).reverse(); - ["l", "r"].forEach((horiz) => { - if (horiz === "r") { - adjustedLayering = adjustedLayering.map((inner) => Object.values(inner).reverse()); - } - const neighborFn = (vert === "u" ? g4.predecessors : g4.successors).bind(g4); - const align = verticalAlignment(g4, adjustedLayering, conflicts, neighborFn); - const xs = horizontalCompaction(g4, adjustedLayering, align.root, align.align, horiz === "r"); - if (horiz === "r") { - Object.keys(xs).forEach((xsKey) => xs[xsKey] = -xs[xsKey]); - } - xss[vert + horiz] = xs; - }); - }); - const smallestWidth = findSmallestWidthAlignment(g4, xss); - smallestWidth && alignCoordinates(xss, smallestWidth); - return balance(xss, g4.graph().align); -}; -var position = (g4) => { - var _a6; - g4 = util_default2.asNonCompoundGraph(g4); - positionY(g4); - const xs = positionX(g4); - (_a6 = Object.keys(xs)) === null || _a6 === void 0 ? void 0 : _a6.forEach((key) => { - g4.node(key).x = xs[key]; - }); -}; -var position_default2 = position; - -// node_modules/@antv/layout/es/layout/dagre/src/order/init-data-order.js -var initDataOrder = (g4, nodeOrder) => { - const simpleNodes = g4.nodes().filter((v3) => { - var _a6; - return !((_a6 = g4.children(v3)) === null || _a6 === void 0 ? void 0 : _a6.length); - }); - const ranks = simpleNodes.map((v3) => g4.node(v3).rank); - const maxRank2 = Math.max(...ranks); - const layers = []; - for (let i4 = 0; i4 < maxRank2 + 1; i4++) { - layers.push([]); - } - nodeOrder === null || nodeOrder === void 0 ? void 0 : nodeOrder.forEach((n3) => { - const node = g4.node(n3); - if (!node || node.dummy) - return; - if (!isNaN(node.rank)) { - node.fixorder = layers[node.rank].length; - layers[node.rank].push(n3); - } - }); -}; -var init_data_order_default = initDataOrder; - -// node_modules/@antv/layout/es/layout/dagre/src/layout.js -var Graph8 = graphlib_default.Graph; -var layout2 = (g4, opts) => { - const time2 = opts && opts.debugTiming ? util_default2.time : util_default2.notime; - time2("layout", () => { - if (opts && !opts.keepNodeOrder && opts.prevGraph) { - time2(" inheritOrder", () => { - inheritOrder(g4, opts.prevGraph); - }); - } - const layoutGraph = time2(" buildLayoutGraph", () => { - return buildLayoutGraph(g4); - }); - if (!(opts && opts.edgeLabelSpace === false)) { - time2(" makeSpaceForEdgeLabels", () => { - makeSpaceForEdgeLabels(layoutGraph); - }); - } - try { - time2(" runLayout", () => { - runLayout(layoutGraph, time2, opts); - }); - } catch (e4) { - if (e4.message === "Not possible to find intersection inside of the rectangle") { - console.error("The following error may be caused by improper layer setting, please make sure your manual layer setting does not violate the graph's structure:\n", e4); - return; - } - throw e4; - } - time2(" updateInputGraph", () => { - updateInputGraph(g4, layoutGraph); - }); - }); -}; -var runLayout = (g4, time2, opts) => { - time2(" removeSelfEdges", () => { - removeSelfEdges(g4); - }); - time2(" acyclic", () => { - acyclic_default.run(g4); - }); - time2(" nestingGraph.run", () => { - nesting_graph_default.run(g4); - }); - time2(" rank", () => { - rank_default(util_default2.asNonCompoundGraph(g4)); - }); - time2(" injectEdgeLabelProxies", () => { - injectEdgeLabelProxies(g4); - }); - time2(" removeEmptyRanks", () => { - removeEmptyRanks(g4); - }); - time2(" nestingGraph.cleanup", () => { - nesting_graph_default.cleanup(g4); - }); - time2(" normalizeRanks", () => { - normalizeRanks(g4); - }); - time2(" assignRankMinMax", () => { - assignRankMinMax(g4); - }); - time2(" removeEdgeLabelProxies", () => { - removeEdgeLabelProxies(g4); - }); - time2(" normalize.run", () => { - normalize_default.run(g4); - }); - time2(" parentDummyChains", () => { - parent_dummy_chains_default(g4); - }); - time2(" addBorderSegments", () => { - add_border_segments_default(g4); - }); - if (opts && opts.keepNodeOrder) { - time2(" initDataOrder", () => { - init_data_order_default(g4, opts.nodeOrder); - }); - } - time2(" order", () => { - order_default(g4); - }); - time2(" insertSelfEdges", () => { - insertSelfEdges(g4); - }); - time2(" adjustCoordinateSystem", () => { - coordinate_system_default.adjust(g4); - }); - time2(" position", () => { - position_default2(g4); - }); - time2(" positionSelfEdges", () => { - positionSelfEdges(g4); - }); - time2(" removeBorderNodes", () => { - removeBorderNodes(g4); - }); - time2(" normalize.undo", () => { - normalize_default.undo(g4); - }); - time2(" fixupEdgeLabelCoords", () => { - fixupEdgeLabelCoords(g4); - }); - time2(" undoCoordinateSystem", () => { - coordinate_system_default.undo(g4); - }); - time2(" translateGraph", () => { - translateGraph(g4); - }); - time2(" assignNodeIntersects", () => { - assignNodeIntersects(g4); - }); - time2(" reversePoints", () => { - reversePointsForReversedEdges(g4); - }); - time2(" acyclic.undo", () => { - acyclic_default.undo(g4); - }); -}; -var inheritOrder = (currG, prevG) => { - const prevNodeMap = prevG._nodes || {}; - currG.nodes().forEach((n3) => { - const node = currG.node(n3); - if (prevNodeMap[n3] !== void 0) { - node.fixorder = prevNodeMap[n3]._order; - delete prevNodeMap[n3]._order; - } else { - delete node.fixorder; - } - }); -}; -var updateInputGraph = (inputGraph, layoutGraph) => { - inputGraph.nodes().forEach((v3) => { - var _a6; - const inputLabel = inputGraph.node(v3); - const layoutLabel = layoutGraph.node(v3); - if (inputLabel) { - inputLabel.x = layoutLabel.x; - inputLabel.y = layoutLabel.y; - inputLabel._order = layoutLabel.order; - inputLabel._rank = layoutLabel.rank; - if ((_a6 = layoutGraph.children(v3)) === null || _a6 === void 0 ? void 0 : _a6.length) { - inputLabel.width = layoutLabel.width; - inputLabel.height = layoutLabel.height; - } - } - }); - inputGraph.edges().forEach((e4) => { - const inputLabel = inputGraph.edge(e4); - const layoutLabel = layoutGraph.edge(e4); - inputLabel.points = layoutLabel.points; - if (layoutLabel.hasOwnProperty("x")) { - inputLabel.x = layoutLabel.x; - inputLabel.y = layoutLabel.y; - } - }); - inputGraph.graph().width = layoutGraph.graph().width; - inputGraph.graph().height = layoutGraph.graph().height; -}; -var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"]; -var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }; -var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"]; -var nodeNumAttrs = ["width", "height", "layer", "fixorder"]; -var nodeDefaults = { width: 0, height: 0 }; -var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"]; -var edgeDefaults = { - minlen: 1, - weight: 1, - width: 0, - height: 0, - labeloffset: 10, - labelpos: "r" -}; -var edgeAttrs = ["labelpos"]; -var buildLayoutGraph = (inputGraph) => { - const g4 = new Graph8({ multigraph: true, compound: true }); - const graph = canonicalize(inputGraph.graph()); - const pickedProperties = {}; - graphAttrs === null || graphAttrs === void 0 ? void 0 : graphAttrs.forEach((key) => { - if (graph[key] !== void 0) - pickedProperties[key] = graph[key]; - }); - g4.setGraph(Object.assign({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), pickedProperties)); - inputGraph.nodes().forEach((v3) => { - const node = canonicalize(inputGraph.node(v3)); - const defaultAttrs = selectNumberAttrs(node, nodeNumAttrs); - Object.keys(nodeDefaults).forEach((key) => { - if (defaultAttrs[key] === void 0) { - defaultAttrs[key] = nodeDefaults[key]; - } - }); - g4.setNode(v3, defaultAttrs); - g4.setParent(v3, inputGraph.parent(v3)); - }); - inputGraph.edges().forEach((e4) => { - const edge2 = canonicalize(inputGraph.edge(e4)); - const pickedProperties2 = {}; - edgeAttrs === null || edgeAttrs === void 0 ? void 0 : edgeAttrs.forEach((key) => { - if (edge2[key] !== void 0) - pickedProperties2[key] = edge2[key]; - }); - g4.setEdge(e4, Object.assign({}, edgeDefaults, selectNumberAttrs(edge2, edgeNumAttrs), pickedProperties2)); - }); - return g4; -}; -var makeSpaceForEdgeLabels = (g4) => { - const graph = g4.graph(); - if (!graph.ranksep) - graph.ranksep = 0; - graph.ranksep /= 2; - g4.nodes().forEach((n3) => { - const node = g4.node(n3); - if (!isNaN(node.layer)) { - if (!node.layer) - node.layer = 0; - else - node.layer *= 2; - } - }); - g4.edges().forEach((e4) => { - var _a6; - const edge2 = g4.edge(e4); - edge2.minlen *= 2; - if (((_a6 = edge2.labelpos) === null || _a6 === void 0 ? void 0 : _a6.toLowerCase()) !== "c") { - if (graph.rankdir === "TB" || graph.rankdir === "BT") { - edge2.width += edge2.labeloffset; - } else { - edge2.height += edge2.labeloffset; - } - } - }); -}; -var injectEdgeLabelProxies = (g4) => { - g4.edges().forEach((e4) => { - const edge2 = g4.edge(e4); - if (edge2.width && edge2.height) { - const v3 = g4.node(e4.v); - const w4 = g4.node(e4.w); - const label17 = { e: e4, rank: (w4.rank - v3.rank) / 2 + v3.rank }; - util_default2.addDummyNode(g4, "edge-proxy", label17, "_ep"); - } - }); -}; -var assignRankMinMax = (g4) => { - let maxRank2 = 0; - g4.nodes().forEach((v3) => { - const node = g4.node(v3); - if (node.borderTop) { - node.minRank = g4.node(node.borderTop).rank; - node.maxRank = g4.node(node.borderBottom).rank; - maxRank2 = Math.max(maxRank2, node.maxRank || -Infinity); - } - }); - g4.graph().maxRank = maxRank2; -}; -var removeEdgeLabelProxies = (g4) => { - g4.nodes().forEach((v3) => { - const node = g4.node(v3); - if (node.dummy === "edge-proxy") { - g4.edge(node.e).labelRank = node.rank; - g4.removeNode(v3); - } - }); -}; -var translateGraph = (g4) => { - let minX = Number.POSITIVE_INFINITY; - let maxX = 0; - let minY = Number.POSITIVE_INFINITY; - let maxY2 = 0; - const graphLabel = g4.graph(); - const marginX = graphLabel.marginx || 0; - const marginY = graphLabel.marginy || 0; - const getExtremes = (attrs) => { - if (!attrs) - return; - const x6 = attrs.x; - const y5 = attrs.y; - const w4 = attrs.width; - const h3 = attrs.height; - if (!isNaN(x6) && !isNaN(w4)) { - minX = Math.min(minX, x6 - w4 / 2); - maxX = Math.max(maxX, x6 + w4 / 2); - } - if (!isNaN(y5) && !isNaN(h3)) { - minY = Math.min(minY, y5 - h3 / 2); - maxY2 = Math.max(maxY2, y5 + h3 / 2); - } - }; - g4.nodes().forEach((v3) => { - getExtremes(g4.node(v3)); - }); - g4.edges().forEach((e4) => { - const edge2 = g4.edge(e4); - if (edge2.hasOwnProperty("x")) { - getExtremes(edge2); - } - }); - minX -= marginX; - minY -= marginY; - g4.nodes().forEach((v3) => { - const node = g4.node(v3); - node.x -= minX; - node.y -= minY; - }); - g4.edges().forEach((e4) => { - var _a6; - const edge2 = g4.edge(e4); - (_a6 = edge2.points) === null || _a6 === void 0 ? void 0 : _a6.forEach((p4) => { - p4.x -= minX; - p4.y -= minY; - }); - if (edge2.hasOwnProperty("x")) { - edge2.x -= minX; - } - if (edge2.hasOwnProperty("y")) { - edge2.y -= minY; - } - }); - graphLabel.width = maxX - minX + marginX; - graphLabel.height = maxY2 - minY + marginY; -}; -var assignNodeIntersects = (g4) => { - g4.edges().forEach((e4) => { - const edge2 = g4.edge(e4); - const nodeV = g4.node(e4.v); - const nodeW = g4.node(e4.w); - let p1; - let p22; - if (!edge2.points) { - edge2.points = []; - p1 = nodeW; - p22 = nodeV; - } else { - p1 = edge2.points[0]; - p22 = edge2.points[edge2.points.length - 1]; - } - edge2.points.unshift(util_default2.intersectRect(nodeV, p1)); - edge2.points.push(util_default2.intersectRect(nodeW, p22)); - }); -}; -var fixupEdgeLabelCoords = (g4) => { - g4.edges().forEach((e4) => { - const edge2 = g4.edge(e4); - if (edge2.hasOwnProperty("x")) { - if (edge2.labelpos === "l" || edge2.labelpos === "r") { - edge2.width -= edge2.labeloffset; - } - switch (edge2.labelpos) { - case "l": - edge2.x -= edge2.width / 2 + edge2.labeloffset; - break; - case "r": - edge2.x += edge2.width / 2 + edge2.labeloffset; - break; - } - } - }); -}; -var reversePointsForReversedEdges = (g4) => { - g4.edges().forEach((e4) => { - const edge2 = g4.edge(e4); - if (edge2.reversed) { - edge2.points.reverse(); - } - }); -}; -var removeBorderNodes = (g4) => { - g4.nodes().forEach((v3) => { - var _a6, _b, _c; - if ((_a6 = g4.children(v3)) === null || _a6 === void 0 ? void 0 : _a6.length) { - const node = g4.node(v3); - const t4 = g4.node(node.borderTop); - const b10 = g4.node(node.borderBottom); - const l4 = g4.node(node.borderLeft[((_b = node.borderLeft) === null || _b === void 0 ? void 0 : _b.length) - 1]); - const r4 = g4.node(node.borderRight[((_c = node.borderRight) === null || _c === void 0 ? void 0 : _c.length) - 1]); - node.width = Math.abs((r4 === null || r4 === void 0 ? void 0 : r4.x) - (l4 === null || l4 === void 0 ? void 0 : l4.x)) || 10; - node.height = Math.abs((b10 === null || b10 === void 0 ? void 0 : b10.y) - (t4 === null || t4 === void 0 ? void 0 : t4.y)) || 10; - node.x = ((l4 === null || l4 === void 0 ? void 0 : l4.x) || 0) + node.width / 2; - node.y = ((t4 === null || t4 === void 0 ? void 0 : t4.y) || 0) + node.height / 2; - } - }); - g4.nodes().forEach((v3) => { - if (g4.node(v3).dummy === "border") { - g4.removeNode(v3); - } - }); -}; -var removeSelfEdges = (g4) => { - g4.edges().forEach((e4) => { - if (e4.v === e4.w) { - const node = g4.node(e4.v); - if (!node.selfEdges) { - node.selfEdges = []; - } - node.selfEdges.push({ e: e4, label: g4.edge(e4) }); - g4.removeEdge(e4); - } - }); -}; -var insertSelfEdges = (g4) => { - const layers = util_default2.buildLayerMatrix(g4); - layers === null || layers === void 0 ? void 0 : layers.forEach((layer) => { - let orderShift = 0; - layer === null || layer === void 0 ? void 0 : layer.forEach((v3, i4) => { - var _a6; - const node = g4.node(v3); - node.order = i4 + orderShift; - (_a6 = node.selfEdges) === null || _a6 === void 0 ? void 0 : _a6.forEach((selfEdge) => { - util_default2.addDummyNode(g4, "selfedge", { - width: selfEdge.label.width, - height: selfEdge.label.height, - rank: node.rank, - order: i4 + ++orderShift, - e: selfEdge.e, - label: selfEdge.label - }, "_se"); - }); - delete node.selfEdges; - }); - }); -}; -var positionSelfEdges = (g4) => { - g4.nodes().forEach((v3) => { - const node = g4.node(v3); - if (node.dummy === "selfedge") { - const selfNode = g4.node(node.e.v); - const x6 = selfNode.x + selfNode.width / 2; - const y5 = selfNode.y; - const dx = node.x - x6; - const dy = selfNode.height / 2; - g4.setEdge(node.e, node.label); - g4.removeNode(v3); - node.label.points = [ - { x: x6 + 2 * dx / 3, y: y5 - dy }, - { x: x6 + 5 * dx / 6, y: y5 - dy }, - { y: y5, x: x6 + dx }, - { x: x6 + 5 * dx / 6, y: y5 + dy }, - { x: x6 + 2 * dx / 3, y: y5 + dy } - ]; - node.label.x = node.x; - node.label.y = node.y; - } - }); -}; -var selectNumberAttrs = (obj, attrs) => { - const pickedProperties = {}; - attrs === null || attrs === void 0 ? void 0 : attrs.forEach((key) => { - if (obj[key] === void 0) - return; - pickedProperties[key] = +obj[key]; - }); - return pickedProperties; -}; -var canonicalize = (attrs) => { - const newAttrs = {}; - Object.keys(attrs).forEach((k4) => { - const v3 = attrs[k4]; - newAttrs[k4.toLowerCase()] = v3; - }); - return newAttrs; -}; -var layout_default2 = layout2; - -// node_modules/@antv/layout/es/layout/dagre/index.js -var dagre_default = { - graphlib: graphlib_default, - layout: layout_default2, - util: { - time, - notime - } -}; - -// node_modules/@antv/layout/es/layout/dagre.js -var DagreLayout = class extends Base3 { - constructor(options) { - super(); - this.rankdir = "TB"; - this.nodesep = 50; - this.ranksep = 50; - this.controlPoints = false; - this.sortByCombo = false; - this.edgeLabelSpace = true; - this.nodes = []; - this.edges = []; - this.onLayoutEnd = () => { - }; - this.layoutNode = (nodeId) => { - const self2 = this; - const { nodes } = self2; - const node = nodes.find((node2) => node2.id === nodeId); - if (node) { - const layout6 = node.layout !== false; - return layout6; - } - return true; - }; - this.updateCfg(options); - } - getDefaultCfg() { - return { - rankdir: "TB", - align: void 0, - nodeSize: void 0, - nodesepFunc: void 0, - ranksepFunc: void 0, - nodesep: 50, - ranksep: 50, - controlPoints: false - }; - } - execute() { - const self2 = this; - const { nodes, nodeSize, rankdir, combos, begin } = self2; - if (!nodes) - return; - const edges = self2.edges || []; - const g4 = new dagre_default.graphlib.Graph({ - multigraph: true, - compound: true - }); - let nodeSizeFunc; - if (!nodeSize) { - nodeSizeFunc = (d3) => { - if (d3.size) { - if (isArray2(d3.size)) { - return d3.size; - } - if (isObject2(d3.size)) { - return [d3.size.width || 40, d3.size.height || 40]; - } - return [d3.size, d3.size]; - } - return [40, 40]; - }; - } else if (isArray2(nodeSize)) { - nodeSizeFunc = () => nodeSize; - } else { - nodeSizeFunc = () => [nodeSize, nodeSize]; - } - let horisep = getFunc(self2.nodesepFunc, self2.nodesep, 50); - let vertisep = getFunc(self2.ranksepFunc, self2.ranksep, 50); - if (rankdir === "LR" || rankdir === "RL") { - horisep = getFunc(self2.ranksepFunc, self2.ranksep, 50); - vertisep = getFunc(self2.nodesepFunc, self2.nodesep, 50); - } - g4.setDefaultEdgeLabel(() => ({})); - g4.setGraph(self2); - const comboMap = {}; - nodes.filter((node) => node.layout !== false).forEach((node) => { - const size2 = nodeSizeFunc(node); - const verti = vertisep(node); - const hori = horisep(node); - const width2 = size2[0] + 2 * hori; - const height = size2[1] + 2 * verti; - const layer = node.layer; - if (isNumber3(layer)) { - g4.setNode(node.id, { width: width2, height, layer }); - } else { - g4.setNode(node.id, { width: width2, height }); - } - if (this.sortByCombo && node.comboId) { - if (!comboMap[node.comboId]) { - comboMap[node.comboId] = true; - g4.setNode(node.comboId, {}); - } - g4.setParent(node.id, node.comboId); - } - }); - if (this.sortByCombo && combos) { - combos.forEach((combo) => { - if (!combo.parentId) - return; - if (!comboMap[combo.parentId]) { - comboMap[combo.parentId] = true; - g4.setNode(combo.parentId, {}); - } - g4.setParent(combo.id, combo.parentId); - }); - } - edges.forEach((edge2) => { - const source = getEdgeTerminal(edge2, "source"); - const target = getEdgeTerminal(edge2, "target"); - if (this.layoutNode(source) && this.layoutNode(target)) { - g4.setEdge(source, target, { - weight: edge2.weight || 1 - }); - } - }); - let prevGraph = void 0; - if (self2.preset) { - prevGraph = new dagre_default.graphlib.Graph({ - multigraph: true, - compound: true - }); - self2.preset.nodes.forEach((node) => { - prevGraph === null || prevGraph === void 0 ? void 0 : prevGraph.setNode(node.id, node); - }); - } - dagre_default.layout(g4, { - prevGraph, - edgeLabelSpace: self2.edgeLabelSpace, - keepNodeOrder: Boolean(!!self2.nodeOrder), - nodeOrder: self2.nodeOrder - }); - const dBegin = [0, 0]; - if (begin) { - let minX = Infinity; - let minY = Infinity; - g4.nodes().forEach((node) => { - const coord2 = g4.node(node); - if (minX > coord2.x) - minX = coord2.x; - if (minY > coord2.y) - minY = coord2.y; - }); - g4.edges().forEach((edge2) => { - const coord2 = g4.edge(edge2); - coord2.points.forEach((point2) => { - if (minX > point2.x) - minX = point2.x; - if (minY > point2.y) - minY = point2.y; - }); - }); - dBegin[0] = begin[0] - minX; - dBegin[1] = begin[1] - minY; - } - g4.nodes().forEach((node) => { - const coord2 = g4.node(node); - const i4 = nodes.findIndex((it) => it.id === node); - if (!nodes[i4]) - return; - nodes[i4].x = coord2.x + dBegin[0]; - nodes[i4].y = coord2.y + dBegin[1]; - nodes[i4]._order = coord2._order; - }); - g4.edges().forEach((edge2) => { - const coord2 = g4.edge(edge2); - const i4 = edges.findIndex((it) => { - const source = getEdgeTerminal(it, "source"); - const target = getEdgeTerminal(it, "target"); - return source === edge2.v && target === edge2.w; - }); - if (self2.edgeLabelSpace && self2.controlPoints && edges[i4].type !== "loop") { - edges[i4].controlPoints = coord2.points.slice(1, coord2.points.length - 1); - edges[i4].controlPoints.forEach((point2) => { - point2.x += dBegin[0]; - point2.y += dBegin[1]; - }); - } - }); - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes, - edges - }; - } - getType() { - return "dagre"; - } -}; -function getFunc(func, value2, defaultValue) { - let resultFunc; - if (func) { - resultFunc = func; - } else if (isNumber3(value2)) { - resultFunc = () => value2; - } else { - resultFunc = () => defaultValue; - } - return resultFunc; -} - -// node_modules/is-any-array/src/index.js -var toString5 = Object.prototype.toString; -function isAnyArray(object) { - return toString5.call(object).endsWith("Array]"); -} - -// node_modules/ml-array-max/lib-es6/index.js -function max5(input) { - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - if (!isAnyArray(input)) { - throw new TypeError("input must be an array"); - } - if (input.length === 0) { - throw new TypeError("input must not be empty"); - } - var _options$fromIndex = options.fromIndex, fromIndex = _options$fromIndex === void 0 ? 0 : _options$fromIndex, _options$toIndex = options.toIndex, toIndex = _options$toIndex === void 0 ? input.length : _options$toIndex; - if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) { - throw new Error("fromIndex must be a positive integer smaller than length"); - } - if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) { - throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length"); - } - var maxValue = input[fromIndex]; - for (var i4 = fromIndex + 1; i4 < toIndex; i4++) { - if (input[i4] > maxValue) - maxValue = input[i4]; - } - return maxValue; -} -var lib_es6_default = max5; - -// node_modules/ml-array-min/lib-es6/index.js -function min5(input) { - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - if (!isAnyArray(input)) { - throw new TypeError("input must be an array"); - } - if (input.length === 0) { - throw new TypeError("input must not be empty"); - } - var _options$fromIndex = options.fromIndex, fromIndex = _options$fromIndex === void 0 ? 0 : _options$fromIndex, _options$toIndex = options.toIndex, toIndex = _options$toIndex === void 0 ? input.length : _options$toIndex; - if (fromIndex < 0 || fromIndex >= input.length || !Number.isInteger(fromIndex)) { - throw new Error("fromIndex must be a positive integer smaller than length"); - } - if (toIndex <= fromIndex || toIndex > input.length || !Number.isInteger(toIndex)) { - throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length"); - } - var minValue = input[fromIndex]; - for (var i4 = fromIndex + 1; i4 < toIndex; i4++) { - if (input[i4] < minValue) - minValue = input[i4]; - } - return minValue; -} -var lib_es6_default2 = min5; - -// node_modules/ml-array-rescale/lib-es6/index.js -function rescale(input) { - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - if (!isAnyArray(input)) { - throw new TypeError("input must be an array"); - } else if (input.length === 0) { - throw new TypeError("input must not be empty"); - } - var output; - if (options.output !== void 0) { - if (!isAnyArray(options.output)) { - throw new TypeError("output option must be an array if specified"); - } - output = options.output; - } else { - output = new Array(input.length); - } - var currentMin = lib_es6_default2(input); - var currentMax = lib_es6_default(input); - if (currentMin === currentMax) { - throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array"); - } - var _options$min = options.min, minValue = _options$min === void 0 ? options.autoMinMax ? currentMin : 0 : _options$min, _options$max = options.max, maxValue = _options$max === void 0 ? options.autoMinMax ? currentMax : 1 : _options$max; - if (minValue >= maxValue) { - throw new RangeError("min option must be smaller than max option"); - } - var factor = (maxValue - minValue) / (currentMax - currentMin); - for (var i4 = 0; i4 < input.length; i4++) { - output[i4] = (input[i4] - currentMin) * factor + minValue; - } - return output; -} - -// node_modules/ml-matrix/src/inspect.js -var indent = " ".repeat(2); -var indentData = " ".repeat(4); -function inspectMatrix() { - return inspectMatrixWithOptions(this); -} -function inspectMatrixWithOptions(matrix, options = {}) { - const { maxRows = 15, maxColumns = 10, maxNumSize = 8 } = options; - return `${matrix.constructor.name} { -${indent}[ -${indentData}${inspectData(matrix, maxRows, maxColumns, maxNumSize)} -${indent}] -${indent}rows: ${matrix.rows} -${indent}columns: ${matrix.columns} -}`; -} -function inspectData(matrix, maxRows, maxColumns, maxNumSize) { - const { rows, columns } = matrix; - const maxI = Math.min(rows, maxRows); - const maxJ = Math.min(columns, maxColumns); - const result = []; - for (let i4 = 0; i4 < maxI; i4++) { - let line2 = []; - for (let j4 = 0; j4 < maxJ; j4++) { - line2.push(formatNumber(matrix.get(i4, j4), maxNumSize)); - } - result.push(`${line2.join(" ")}`); - } - if (maxJ !== columns) { - result[result.length - 1] += ` ... ${columns - maxColumns} more columns`; - } - if (maxI !== rows) { - result.push(`... ${rows - maxRows} more rows`); - } - return result.join(` -${indentData}`); -} -function formatNumber(num, maxNumSize) { - const numStr = String(num); - if (numStr.length <= maxNumSize) { - return numStr.padEnd(maxNumSize, " "); - } - const precise = num.toPrecision(maxNumSize - 2); - if (precise.length <= maxNumSize) { - return precise; - } - const exponential2 = num.toExponential(maxNumSize - 2); - const eIndex = exponential2.indexOf("e"); - const e4 = exponential2.slice(eIndex); - return exponential2.slice(0, maxNumSize - e4.length) + e4; -} - -// node_modules/ml-matrix/src/mathOperations.js -function installMathOperations(AbstractMatrix2, Matrix3) { - AbstractMatrix2.prototype.add = function add8(value2) { - if (typeof value2 === "number") - return this.addS(value2); - return this.addM(value2); - }; - AbstractMatrix2.prototype.addS = function addS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) + value2); - } - } - return this; - }; - AbstractMatrix2.prototype.addM = function addM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) + matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.add = function add8(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.add(value2); - }; - AbstractMatrix2.prototype.sub = function sub6(value2) { - if (typeof value2 === "number") - return this.subS(value2); - return this.subM(value2); - }; - AbstractMatrix2.prototype.subS = function subS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) - value2); - } - } - return this; - }; - AbstractMatrix2.prototype.subM = function subM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) - matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.sub = function sub6(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.sub(value2); - }; - AbstractMatrix2.prototype.subtract = AbstractMatrix2.prototype.sub; - AbstractMatrix2.prototype.subtractS = AbstractMatrix2.prototype.subS; - AbstractMatrix2.prototype.subtractM = AbstractMatrix2.prototype.subM; - AbstractMatrix2.subtract = AbstractMatrix2.sub; - AbstractMatrix2.prototype.mul = function mul7(value2) { - if (typeof value2 === "number") - return this.mulS(value2); - return this.mulM(value2); - }; - AbstractMatrix2.prototype.mulS = function mulS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) * value2); - } - } - return this; - }; - AbstractMatrix2.prototype.mulM = function mulM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) * matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.mul = function mul7(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.mul(value2); - }; - AbstractMatrix2.prototype.multiply = AbstractMatrix2.prototype.mul; - AbstractMatrix2.prototype.multiplyS = AbstractMatrix2.prototype.mulS; - AbstractMatrix2.prototype.multiplyM = AbstractMatrix2.prototype.mulM; - AbstractMatrix2.multiply = AbstractMatrix2.mul; - AbstractMatrix2.prototype.div = function div4(value2) { - if (typeof value2 === "number") - return this.divS(value2); - return this.divM(value2); - }; - AbstractMatrix2.prototype.divS = function divS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) / value2); - } - } - return this; - }; - AbstractMatrix2.prototype.divM = function divM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) / matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.div = function div4(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.div(value2); - }; - AbstractMatrix2.prototype.divide = AbstractMatrix2.prototype.div; - AbstractMatrix2.prototype.divideS = AbstractMatrix2.prototype.divS; - AbstractMatrix2.prototype.divideM = AbstractMatrix2.prototype.divM; - AbstractMatrix2.divide = AbstractMatrix2.div; - AbstractMatrix2.prototype.mod = function mod3(value2) { - if (typeof value2 === "number") - return this.modS(value2); - return this.modM(value2); - }; - AbstractMatrix2.prototype.modS = function modS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) % value2); - } - } - return this; - }; - AbstractMatrix2.prototype.modM = function modM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) % matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.mod = function mod3(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.mod(value2); - }; - AbstractMatrix2.prototype.modulus = AbstractMatrix2.prototype.mod; - AbstractMatrix2.prototype.modulusS = AbstractMatrix2.prototype.modS; - AbstractMatrix2.prototype.modulusM = AbstractMatrix2.prototype.modM; - AbstractMatrix2.modulus = AbstractMatrix2.mod; - AbstractMatrix2.prototype.and = function and(value2) { - if (typeof value2 === "number") - return this.andS(value2); - return this.andM(value2); - }; - AbstractMatrix2.prototype.andS = function andS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) & value2); - } - } - return this; - }; - AbstractMatrix2.prototype.andM = function andM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) & matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.and = function and(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.and(value2); - }; - AbstractMatrix2.prototype.or = function or(value2) { - if (typeof value2 === "number") - return this.orS(value2); - return this.orM(value2); - }; - AbstractMatrix2.prototype.orS = function orS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) | value2); - } - } - return this; - }; - AbstractMatrix2.prototype.orM = function orM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) | matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.or = function or(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.or(value2); - }; - AbstractMatrix2.prototype.xor = function xor(value2) { - if (typeof value2 === "number") - return this.xorS(value2); - return this.xorM(value2); - }; - AbstractMatrix2.prototype.xorS = function xorS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) ^ value2); - } - } - return this; - }; - AbstractMatrix2.prototype.xorM = function xorM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) ^ matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.xor = function xor(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.xor(value2); - }; - AbstractMatrix2.prototype.leftShift = function leftShift(value2) { - if (typeof value2 === "number") - return this.leftShiftS(value2); - return this.leftShiftM(value2); - }; - AbstractMatrix2.prototype.leftShiftS = function leftShiftS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) << value2); - } - } - return this; - }; - AbstractMatrix2.prototype.leftShiftM = function leftShiftM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) << matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.leftShift = function leftShift(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.leftShift(value2); - }; - AbstractMatrix2.prototype.signPropagatingRightShift = function signPropagatingRightShift(value2) { - if (typeof value2 === "number") - return this.signPropagatingRightShiftS(value2); - return this.signPropagatingRightShiftM(value2); - }; - AbstractMatrix2.prototype.signPropagatingRightShiftS = function signPropagatingRightShiftS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) >> value2); - } - } - return this; - }; - AbstractMatrix2.prototype.signPropagatingRightShiftM = function signPropagatingRightShiftM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) >> matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.signPropagatingRightShift = function signPropagatingRightShift(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.signPropagatingRightShift(value2); - }; - AbstractMatrix2.prototype.rightShift = function rightShift(value2) { - if (typeof value2 === "number") - return this.rightShiftS(value2); - return this.rightShiftM(value2); - }; - AbstractMatrix2.prototype.rightShiftS = function rightShiftS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) >>> value2); - } - } - return this; - }; - AbstractMatrix2.prototype.rightShiftM = function rightShiftM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) >>> matrix.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.rightShift = function rightShift(matrix, value2) { - const newMatrix = new Matrix3(matrix); - return newMatrix.rightShift(value2); - }; - AbstractMatrix2.prototype.zeroFillRightShift = AbstractMatrix2.prototype.rightShift; - AbstractMatrix2.prototype.zeroFillRightShiftS = AbstractMatrix2.prototype.rightShiftS; - AbstractMatrix2.prototype.zeroFillRightShiftM = AbstractMatrix2.prototype.rightShiftM; - AbstractMatrix2.zeroFillRightShift = AbstractMatrix2.rightShift; - AbstractMatrix2.prototype.not = function not() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, ~this.get(i4, j4)); - } - } - return this; - }; - AbstractMatrix2.not = function not(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.not(); - }; - AbstractMatrix2.prototype.abs = function abs3() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.abs(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.abs = function abs3(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.abs(); - }; - AbstractMatrix2.prototype.acos = function acos() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.acos(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.acos = function acos(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.acos(); - }; - AbstractMatrix2.prototype.acosh = function acosh() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.acosh(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.acosh = function acosh(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.acosh(); - }; - AbstractMatrix2.prototype.asin = function asin() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.asin(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.asin = function asin(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.asin(); - }; - AbstractMatrix2.prototype.asinh = function asinh() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.asinh(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.asinh = function asinh(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.asinh(); - }; - AbstractMatrix2.prototype.atan = function atan() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.atan(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.atan = function atan(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.atan(); - }; - AbstractMatrix2.prototype.atanh = function atanh() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.atanh(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.atanh = function atanh(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.atanh(); - }; - AbstractMatrix2.prototype.cbrt = function cbrt() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.cbrt(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.cbrt = function cbrt(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.cbrt(); - }; - AbstractMatrix2.prototype.ceil = function ceil4() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.ceil(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.ceil = function ceil4(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.ceil(); - }; - AbstractMatrix2.prototype.clz32 = function clz32() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.clz32(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.clz32 = function clz32(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.clz32(); - }; - AbstractMatrix2.prototype.cos = function cos3() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.cos(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.cos = function cos3(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.cos(); - }; - AbstractMatrix2.prototype.cosh = function cosh() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.cosh(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.cosh = function cosh(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.cosh(); - }; - AbstractMatrix2.prototype.exp = function exp2() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.exp(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.exp = function exp2(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.exp(); - }; - AbstractMatrix2.prototype.expm1 = function expm1() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.expm1(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.expm1 = function expm1(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.expm1(); - }; - AbstractMatrix2.prototype.floor = function floor4() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.floor(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.floor = function floor4(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.floor(); - }; - AbstractMatrix2.prototype.fround = function fround() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.fround(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.fround = function fround(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.fround(); - }; - AbstractMatrix2.prototype.log = function log3() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.log(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.log = function log3(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.log(); - }; - AbstractMatrix2.prototype.log1p = function log1p() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.log1p(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.log1p = function log1p(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.log1p(); - }; - AbstractMatrix2.prototype.log10 = function log10() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.log10(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.log10 = function log10(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.log10(); - }; - AbstractMatrix2.prototype.log2 = function log22() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.log2(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.log2 = function log22(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.log2(); - }; - AbstractMatrix2.prototype.round = function round5() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.round(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.round = function round5(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.round(); - }; - AbstractMatrix2.prototype.sign = function sign() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.sign(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.sign = function sign(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.sign(); - }; - AbstractMatrix2.prototype.sin = function sin3() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.sin(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.sin = function sin3(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.sin(); - }; - AbstractMatrix2.prototype.sinh = function sinh() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.sinh(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.sinh = function sinh(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.sinh(); - }; - AbstractMatrix2.prototype.sqrt = function sqrt() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.sqrt(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.sqrt = function sqrt(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.sqrt(); - }; - AbstractMatrix2.prototype.tan = function tan() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.tan(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.tan = function tan(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.tan(); - }; - AbstractMatrix2.prototype.tanh = function tanh() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.tanh(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.tanh = function tanh(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.tanh(); - }; - AbstractMatrix2.prototype.trunc = function trunc() { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.trunc(this.get(i4, j4))); - } - } - return this; - }; - AbstractMatrix2.trunc = function trunc(matrix) { - const newMatrix = new Matrix3(matrix); - return newMatrix.trunc(); - }; - AbstractMatrix2.pow = function pow2(matrix, arg0) { - const newMatrix = new Matrix3(matrix); - return newMatrix.pow(arg0); - }; - AbstractMatrix2.prototype.pow = function pow2(value2) { - if (typeof value2 === "number") - return this.powS(value2); - return this.powM(value2); - }; - AbstractMatrix2.prototype.powS = function powS(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.pow(this.get(i4, j4), value2)); - } - } - return this; - }; - AbstractMatrix2.prototype.powM = function powM(matrix) { - matrix = Matrix3.checkMatrix(matrix); - if (this.rows !== matrix.rows || this.columns !== matrix.columns) { - throw new RangeError("Matrices dimensions must be equal"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, Math.pow(this.get(i4, j4), matrix.get(i4, j4))); - } - } - return this; - }; -} - -// node_modules/ml-matrix/src/util.js -function checkRowIndex(matrix, index2, outer) { - let max8 = outer ? matrix.rows : matrix.rows - 1; - if (index2 < 0 || index2 > max8) { - throw new RangeError("Row index out of range"); - } -} -function checkColumnIndex(matrix, index2, outer) { - let max8 = outer ? matrix.columns : matrix.columns - 1; - if (index2 < 0 || index2 > max8) { - throw new RangeError("Column index out of range"); - } -} -function checkRowVector(matrix, vector) { - if (vector.to1DArray) { - vector = vector.to1DArray(); - } - if (vector.length !== matrix.columns) { - throw new RangeError("vector size must be the same as the number of columns"); - } - return vector; -} -function checkColumnVector(matrix, vector) { - if (vector.to1DArray) { - vector = vector.to1DArray(); - } - if (vector.length !== matrix.rows) { - throw new RangeError("vector size must be the same as the number of rows"); - } - return vector; -} -function checkIndices(matrix, rowIndices, columnIndices) { - return { - row: checkRowIndices(matrix, rowIndices), - column: checkColumnIndices(matrix, columnIndices) - }; -} -function checkRowIndices(matrix, rowIndices) { - if (typeof rowIndices !== "object") { - throw new TypeError("unexpected type for row indices"); - } - let rowOut = rowIndices.some((r4) => { - return r4 < 0 || r4 >= matrix.rows; - }); - if (rowOut) { - throw new RangeError("row indices are out of range"); - } - if (!Array.isArray(rowIndices)) - rowIndices = Array.from(rowIndices); - return rowIndices; -} -function checkColumnIndices(matrix, columnIndices) { - if (typeof columnIndices !== "object") { - throw new TypeError("unexpected type for column indices"); - } - let columnOut = columnIndices.some((c5) => { - return c5 < 0 || c5 >= matrix.columns; - }); - if (columnOut) { - throw new RangeError("column indices are out of range"); - } - if (!Array.isArray(columnIndices)) - columnIndices = Array.from(columnIndices); - return columnIndices; -} -function checkRange(matrix, startRow, endRow, startColumn, endColumn) { - if (arguments.length !== 5) { - throw new RangeError("expected 4 arguments"); - } - checkNumber("startRow", startRow); - checkNumber("endRow", endRow); - checkNumber("startColumn", startColumn); - checkNumber("endColumn", endColumn); - if (startRow > endRow || startColumn > endColumn || startRow < 0 || startRow >= matrix.rows || endRow < 0 || endRow >= matrix.rows || startColumn < 0 || startColumn >= matrix.columns || endColumn < 0 || endColumn >= matrix.columns) { - throw new RangeError("Submatrix indices are out of range"); - } -} -function newArray(length5, value2 = 0) { - let array = []; - for (let i4 = 0; i4 < length5; i4++) { - array.push(value2); - } - return array; -} -function checkNumber(name, value2) { - if (typeof value2 !== "number") { - throw new TypeError(`${name} must be a number`); - } -} -function checkNonEmpty(matrix) { - if (matrix.isEmpty()) { - throw new Error("Empty matrix has no elements to index"); - } -} - -// node_modules/ml-matrix/src/stat.js -function sumByRow(matrix) { - let sum = newArray(matrix.rows); - for (let i4 = 0; i4 < matrix.rows; ++i4) { - for (let j4 = 0; j4 < matrix.columns; ++j4) { - sum[i4] += matrix.get(i4, j4); - } - } - return sum; -} -function sumByColumn(matrix) { - let sum = newArray(matrix.columns); - for (let i4 = 0; i4 < matrix.rows; ++i4) { - for (let j4 = 0; j4 < matrix.columns; ++j4) { - sum[j4] += matrix.get(i4, j4); - } - } - return sum; -} -function sumAll(matrix) { - let v3 = 0; - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - v3 += matrix.get(i4, j4); - } - } - return v3; -} -function productByRow(matrix) { - let sum = newArray(matrix.rows, 1); - for (let i4 = 0; i4 < matrix.rows; ++i4) { - for (let j4 = 0; j4 < matrix.columns; ++j4) { - sum[i4] *= matrix.get(i4, j4); - } - } - return sum; -} -function productByColumn(matrix) { - let sum = newArray(matrix.columns, 1); - for (let i4 = 0; i4 < matrix.rows; ++i4) { - for (let j4 = 0; j4 < matrix.columns; ++j4) { - sum[j4] *= matrix.get(i4, j4); - } - } - return sum; -} -function productAll(matrix) { - let v3 = 1; - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - v3 *= matrix.get(i4, j4); - } - } - return v3; -} -function varianceByRow(matrix, unbiased, mean) { - const rows = matrix.rows; - const cols = matrix.columns; - const variance = []; - for (let i4 = 0; i4 < rows; i4++) { - let sum1 = 0; - let sum2 = 0; - let x6 = 0; - for (let j4 = 0; j4 < cols; j4++) { - x6 = matrix.get(i4, j4) - mean[i4]; - sum1 += x6; - sum2 += x6 * x6; - } - if (unbiased) { - variance.push((sum2 - sum1 * sum1 / cols) / (cols - 1)); - } else { - variance.push((sum2 - sum1 * sum1 / cols) / cols); - } - } - return variance; -} -function varianceByColumn(matrix, unbiased, mean) { - const rows = matrix.rows; - const cols = matrix.columns; - const variance = []; - for (let j4 = 0; j4 < cols; j4++) { - let sum1 = 0; - let sum2 = 0; - let x6 = 0; - for (let i4 = 0; i4 < rows; i4++) { - x6 = matrix.get(i4, j4) - mean[j4]; - sum1 += x6; - sum2 += x6 * x6; - } - if (unbiased) { - variance.push((sum2 - sum1 * sum1 / rows) / (rows - 1)); - } else { - variance.push((sum2 - sum1 * sum1 / rows) / rows); - } - } - return variance; -} -function varianceAll(matrix, unbiased, mean) { - const rows = matrix.rows; - const cols = matrix.columns; - const size2 = rows * cols; - let sum1 = 0; - let sum2 = 0; - let x6 = 0; - for (let i4 = 0; i4 < rows; i4++) { - for (let j4 = 0; j4 < cols; j4++) { - x6 = matrix.get(i4, j4) - mean; - sum1 += x6; - sum2 += x6 * x6; - } - } - if (unbiased) { - return (sum2 - sum1 * sum1 / size2) / (size2 - 1); - } else { - return (sum2 - sum1 * sum1 / size2) / size2; - } -} -function centerByRow(matrix, mean) { - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - matrix.set(i4, j4, matrix.get(i4, j4) - mean[i4]); - } - } -} -function centerByColumn(matrix, mean) { - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - matrix.set(i4, j4, matrix.get(i4, j4) - mean[j4]); - } - } -} -function centerAll(matrix, mean) { - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - matrix.set(i4, j4, matrix.get(i4, j4) - mean); - } - } -} -function getScaleByRow(matrix) { - const scale12 = []; - for (let i4 = 0; i4 < matrix.rows; i4++) { - let sum = 0; - for (let j4 = 0; j4 < matrix.columns; j4++) { - sum += Math.pow(matrix.get(i4, j4), 2) / (matrix.columns - 1); - } - scale12.push(Math.sqrt(sum)); - } - return scale12; -} -function scaleByRow(matrix, scale12) { - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - matrix.set(i4, j4, matrix.get(i4, j4) / scale12[i4]); - } - } -} -function getScaleByColumn(matrix) { - const scale12 = []; - for (let j4 = 0; j4 < matrix.columns; j4++) { - let sum = 0; - for (let i4 = 0; i4 < matrix.rows; i4++) { - sum += Math.pow(matrix.get(i4, j4), 2) / (matrix.rows - 1); - } - scale12.push(Math.sqrt(sum)); - } - return scale12; -} -function scaleByColumn(matrix, scale12) { - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - matrix.set(i4, j4, matrix.get(i4, j4) / scale12[j4]); - } - } -} -function getScaleAll(matrix) { - const divider = matrix.size - 1; - let sum = 0; - for (let j4 = 0; j4 < matrix.columns; j4++) { - for (let i4 = 0; i4 < matrix.rows; i4++) { - sum += Math.pow(matrix.get(i4, j4), 2) / divider; - } - } - return Math.sqrt(sum); -} -function scaleAll(matrix, scale12) { - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - matrix.set(i4, j4, matrix.get(i4, j4) / scale12); - } - } -} - -// node_modules/ml-matrix/src/matrix.js -var AbstractMatrix = class { - static from1DArray(newRows, newColumns, newData) { - let length5 = newRows * newColumns; - if (length5 !== newData.length) { - throw new RangeError("data length does not match given dimensions"); - } - let newMatrix = new Matrix2(newRows, newColumns); - for (let row = 0; row < newRows; row++) { - for (let column = 0; column < newColumns; column++) { - newMatrix.set(row, column, newData[row * newColumns + column]); - } - } - return newMatrix; - } - static rowVector(newData) { - let vector = new Matrix2(1, newData.length); - for (let i4 = 0; i4 < newData.length; i4++) { - vector.set(0, i4, newData[i4]); - } - return vector; - } - static columnVector(newData) { - let vector = new Matrix2(newData.length, 1); - for (let i4 = 0; i4 < newData.length; i4++) { - vector.set(i4, 0, newData[i4]); - } - return vector; - } - static zeros(rows, columns) { - return new Matrix2(rows, columns); - } - static ones(rows, columns) { - return new Matrix2(rows, columns).fill(1); - } - static rand(rows, columns, options = {}) { - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - const { random: random5 = Math.random } = options; - let matrix = new Matrix2(rows, columns); - for (let i4 = 0; i4 < rows; i4++) { - for (let j4 = 0; j4 < columns; j4++) { - matrix.set(i4, j4, random5()); - } - } - return matrix; - } - static randInt(rows, columns, options = {}) { - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - const { min: min7 = 0, max: max8 = 1e3, random: random5 = Math.random } = options; - if (!Number.isInteger(min7)) - throw new TypeError("min must be an integer"); - if (!Number.isInteger(max8)) - throw new TypeError("max must be an integer"); - if (min7 >= max8) - throw new RangeError("min must be smaller than max"); - let interval3 = max8 - min7; - let matrix = new Matrix2(rows, columns); - for (let i4 = 0; i4 < rows; i4++) { - for (let j4 = 0; j4 < columns; j4++) { - let value2 = min7 + Math.round(random5() * interval3); - matrix.set(i4, j4, value2); - } - } - return matrix; - } - static eye(rows, columns, value2) { - if (columns === void 0) - columns = rows; - if (value2 === void 0) - value2 = 1; - let min7 = Math.min(rows, columns); - let matrix = this.zeros(rows, columns); - for (let i4 = 0; i4 < min7; i4++) { - matrix.set(i4, i4, value2); - } - return matrix; - } - static diag(data3, rows, columns) { - let l4 = data3.length; - if (rows === void 0) - rows = l4; - if (columns === void 0) - columns = rows; - let min7 = Math.min(l4, rows, columns); - let matrix = this.zeros(rows, columns); - for (let i4 = 0; i4 < min7; i4++) { - matrix.set(i4, i4, data3[i4]); - } - return matrix; - } - static min(matrix1, matrix2) { - matrix1 = this.checkMatrix(matrix1); - matrix2 = this.checkMatrix(matrix2); - let rows = matrix1.rows; - let columns = matrix1.columns; - let result = new Matrix2(rows, columns); - for (let i4 = 0; i4 < rows; i4++) { - for (let j4 = 0; j4 < columns; j4++) { - result.set(i4, j4, Math.min(matrix1.get(i4, j4), matrix2.get(i4, j4))); - } - } - return result; - } - static max(matrix1, matrix2) { - matrix1 = this.checkMatrix(matrix1); - matrix2 = this.checkMatrix(matrix2); - let rows = matrix1.rows; - let columns = matrix1.columns; - let result = new this(rows, columns); - for (let i4 = 0; i4 < rows; i4++) { - for (let j4 = 0; j4 < columns; j4++) { - result.set(i4, j4, Math.max(matrix1.get(i4, j4), matrix2.get(i4, j4))); - } - } - return result; - } - static checkMatrix(value2) { - return AbstractMatrix.isMatrix(value2) ? value2 : new Matrix2(value2); - } - static isMatrix(value2) { - return value2 != null && value2.klass === "Matrix"; - } - get size() { - return this.rows * this.columns; - } - apply(callback) { - if (typeof callback !== "function") { - throw new TypeError("callback must be a function"); - } - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - callback.call(this, i4, j4); - } - } - return this; - } - to1DArray() { - let array = []; - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - array.push(this.get(i4, j4)); - } - } - return array; - } - to2DArray() { - let copy8 = []; - for (let i4 = 0; i4 < this.rows; i4++) { - copy8.push([]); - for (let j4 = 0; j4 < this.columns; j4++) { - copy8[i4].push(this.get(i4, j4)); - } - } - return copy8; - } - toJSON() { - return this.to2DArray(); - } - isRowVector() { - return this.rows === 1; - } - isColumnVector() { - return this.columns === 1; - } - isVector() { - return this.rows === 1 || this.columns === 1; - } - isSquare() { - return this.rows === this.columns; - } - isEmpty() { - return this.rows === 0 || this.columns === 0; - } - isSymmetric() { - if (this.isSquare()) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 <= i4; j4++) { - if (this.get(i4, j4) !== this.get(j4, i4)) { - return false; - } - } - } - return true; - } - return false; - } - isEchelonForm() { - let i4 = 0; - let j4 = 0; - let previousColumn = -1; - let isEchelonForm = true; - let checked = false; - while (i4 < this.rows && isEchelonForm) { - j4 = 0; - checked = false; - while (j4 < this.columns && checked === false) { - if (this.get(i4, j4) === 0) { - j4++; - } else if (this.get(i4, j4) === 1 && j4 > previousColumn) { - checked = true; - previousColumn = j4; - } else { - isEchelonForm = false; - checked = true; - } - } - i4++; - } - return isEchelonForm; - } - isReducedEchelonForm() { - let i4 = 0; - let j4 = 0; - let previousColumn = -1; - let isReducedEchelonForm = true; - let checked = false; - while (i4 < this.rows && isReducedEchelonForm) { - j4 = 0; - checked = false; - while (j4 < this.columns && checked === false) { - if (this.get(i4, j4) === 0) { - j4++; - } else if (this.get(i4, j4) === 1 && j4 > previousColumn) { - checked = true; - previousColumn = j4; - } else { - isReducedEchelonForm = false; - checked = true; - } - } - for (let k4 = j4 + 1; k4 < this.rows; k4++) { - if (this.get(i4, k4) !== 0) { - isReducedEchelonForm = false; - } - } - i4++; - } - return isReducedEchelonForm; - } - echelonForm() { - let result = this.clone(); - let h3 = 0; - let k4 = 0; - while (h3 < result.rows && k4 < result.columns) { - let iMax = h3; - for (let i4 = h3; i4 < result.rows; i4++) { - if (result.get(i4, k4) > result.get(iMax, k4)) { - iMax = i4; - } - } - if (result.get(iMax, k4) === 0) { - k4++; - } else { - result.swapRows(h3, iMax); - let tmp = result.get(h3, k4); - for (let j4 = k4; j4 < result.columns; j4++) { - result.set(h3, j4, result.get(h3, j4) / tmp); - } - for (let i4 = h3 + 1; i4 < result.rows; i4++) { - let factor = result.get(i4, k4) / result.get(h3, k4); - result.set(i4, k4, 0); - for (let j4 = k4 + 1; j4 < result.columns; j4++) { - result.set(i4, j4, result.get(i4, j4) - result.get(h3, j4) * factor); - } - } - h3++; - k4++; - } - } - return result; - } - reducedEchelonForm() { - let result = this.echelonForm(); - let m4 = result.columns; - let n3 = result.rows; - let h3 = n3 - 1; - while (h3 >= 0) { - if (result.maxRow(h3) === 0) { - h3--; - } else { - let p4 = 0; - let pivot = false; - while (p4 < n3 && pivot === false) { - if (result.get(h3, p4) === 1) { - pivot = true; - } else { - p4++; - } - } - for (let i4 = 0; i4 < h3; i4++) { - let factor = result.get(i4, p4); - for (let j4 = p4; j4 < m4; j4++) { - let tmp = result.get(i4, j4) - factor * result.get(h3, j4); - result.set(i4, j4, tmp); - } - } - h3--; - } - } - return result; - } - set() { - throw new Error("set method is unimplemented"); - } - get() { - throw new Error("get method is unimplemented"); - } - repeat(options = {}) { - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - const { rows = 1, columns = 1 } = options; - if (!Number.isInteger(rows) || rows <= 0) { - throw new TypeError("rows must be a positive integer"); - } - if (!Number.isInteger(columns) || columns <= 0) { - throw new TypeError("columns must be a positive integer"); - } - let matrix = new Matrix2(this.rows * rows, this.columns * columns); - for (let i4 = 0; i4 < rows; i4++) { - for (let j4 = 0; j4 < columns; j4++) { - matrix.setSubMatrix(this, this.rows * i4, this.columns * j4); - } - } - return matrix; - } - fill(value2) { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, value2); - } - } - return this; - } - neg() { - return this.mulS(-1); - } - getRow(index2) { - checkRowIndex(this, index2); - let row = []; - for (let i4 = 0; i4 < this.columns; i4++) { - row.push(this.get(index2, i4)); - } - return row; - } - getRowVector(index2) { - return Matrix2.rowVector(this.getRow(index2)); - } - setRow(index2, array) { - checkRowIndex(this, index2); - array = checkRowVector(this, array); - for (let i4 = 0; i4 < this.columns; i4++) { - this.set(index2, i4, array[i4]); - } - return this; - } - swapRows(row1, row2) { - checkRowIndex(this, row1); - checkRowIndex(this, row2); - for (let i4 = 0; i4 < this.columns; i4++) { - let temp = this.get(row1, i4); - this.set(row1, i4, this.get(row2, i4)); - this.set(row2, i4, temp); - } - return this; - } - getColumn(index2) { - checkColumnIndex(this, index2); - let column = []; - for (let i4 = 0; i4 < this.rows; i4++) { - column.push(this.get(i4, index2)); - } - return column; - } - getColumnVector(index2) { - return Matrix2.columnVector(this.getColumn(index2)); - } - setColumn(index2, array) { - checkColumnIndex(this, index2); - array = checkColumnVector(this, array); - for (let i4 = 0; i4 < this.rows; i4++) { - this.set(i4, index2, array[i4]); - } - return this; - } - swapColumns(column1, column2) { - checkColumnIndex(this, column1); - checkColumnIndex(this, column2); - for (let i4 = 0; i4 < this.rows; i4++) { - let temp = this.get(i4, column1); - this.set(i4, column1, this.get(i4, column2)); - this.set(i4, column2, temp); - } - return this; - } - addRowVector(vector) { - vector = checkRowVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) + vector[j4]); - } - } - return this; - } - subRowVector(vector) { - vector = checkRowVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) - vector[j4]); - } - } - return this; - } - mulRowVector(vector) { - vector = checkRowVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) * vector[j4]); - } - } - return this; - } - divRowVector(vector) { - vector = checkRowVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) / vector[j4]); - } - } - return this; - } - addColumnVector(vector) { - vector = checkColumnVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) + vector[i4]); - } - } - return this; - } - subColumnVector(vector) { - vector = checkColumnVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) - vector[i4]); - } - } - return this; - } - mulColumnVector(vector) { - vector = checkColumnVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) * vector[i4]); - } - } - return this; - } - divColumnVector(vector) { - vector = checkColumnVector(this, vector); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - this.set(i4, j4, this.get(i4, j4) / vector[i4]); - } - } - return this; - } - mulRow(index2, value2) { - checkRowIndex(this, index2); - for (let i4 = 0; i4 < this.columns; i4++) { - this.set(index2, i4, this.get(index2, i4) * value2); - } - return this; - } - mulColumn(index2, value2) { - checkColumnIndex(this, index2); - for (let i4 = 0; i4 < this.rows; i4++) { - this.set(i4, index2, this.get(i4, index2) * value2); - } - return this; - } - max() { - if (this.isEmpty()) { - return NaN; - } - let v3 = this.get(0, 0); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - if (this.get(i4, j4) > v3) { - v3 = this.get(i4, j4); - } - } - } - return v3; - } - maxIndex() { - checkNonEmpty(this); - let v3 = this.get(0, 0); - let idx = [0, 0]; - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - if (this.get(i4, j4) > v3) { - v3 = this.get(i4, j4); - idx[0] = i4; - idx[1] = j4; - } - } - } - return idx; - } - min() { - if (this.isEmpty()) { - return NaN; - } - let v3 = this.get(0, 0); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - if (this.get(i4, j4) < v3) { - v3 = this.get(i4, j4); - } - } - } - return v3; - } - minIndex() { - checkNonEmpty(this); - let v3 = this.get(0, 0); - let idx = [0, 0]; - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - if (this.get(i4, j4) < v3) { - v3 = this.get(i4, j4); - idx[0] = i4; - idx[1] = j4; - } - } - } - return idx; - } - maxRow(row) { - checkRowIndex(this, row); - if (this.isEmpty()) { - return NaN; - } - let v3 = this.get(row, 0); - for (let i4 = 1; i4 < this.columns; i4++) { - if (this.get(row, i4) > v3) { - v3 = this.get(row, i4); - } - } - return v3; - } - maxRowIndex(row) { - checkRowIndex(this, row); - checkNonEmpty(this); - let v3 = this.get(row, 0); - let idx = [row, 0]; - for (let i4 = 1; i4 < this.columns; i4++) { - if (this.get(row, i4) > v3) { - v3 = this.get(row, i4); - idx[1] = i4; - } - } - return idx; - } - minRow(row) { - checkRowIndex(this, row); - if (this.isEmpty()) { - return NaN; - } - let v3 = this.get(row, 0); - for (let i4 = 1; i4 < this.columns; i4++) { - if (this.get(row, i4) < v3) { - v3 = this.get(row, i4); - } - } - return v3; - } - minRowIndex(row) { - checkRowIndex(this, row); - checkNonEmpty(this); - let v3 = this.get(row, 0); - let idx = [row, 0]; - for (let i4 = 1; i4 < this.columns; i4++) { - if (this.get(row, i4) < v3) { - v3 = this.get(row, i4); - idx[1] = i4; - } - } - return idx; - } - maxColumn(column) { - checkColumnIndex(this, column); - if (this.isEmpty()) { - return NaN; - } - let v3 = this.get(0, column); - for (let i4 = 1; i4 < this.rows; i4++) { - if (this.get(i4, column) > v3) { - v3 = this.get(i4, column); - } - } - return v3; - } - maxColumnIndex(column) { - checkColumnIndex(this, column); - checkNonEmpty(this); - let v3 = this.get(0, column); - let idx = [0, column]; - for (let i4 = 1; i4 < this.rows; i4++) { - if (this.get(i4, column) > v3) { - v3 = this.get(i4, column); - idx[0] = i4; - } - } - return idx; - } - minColumn(column) { - checkColumnIndex(this, column); - if (this.isEmpty()) { - return NaN; - } - let v3 = this.get(0, column); - for (let i4 = 1; i4 < this.rows; i4++) { - if (this.get(i4, column) < v3) { - v3 = this.get(i4, column); - } - } - return v3; - } - minColumnIndex(column) { - checkColumnIndex(this, column); - checkNonEmpty(this); - let v3 = this.get(0, column); - let idx = [0, column]; - for (let i4 = 1; i4 < this.rows; i4++) { - if (this.get(i4, column) < v3) { - v3 = this.get(i4, column); - idx[0] = i4; - } - } - return idx; - } - diag() { - let min7 = Math.min(this.rows, this.columns); - let diag = []; - for (let i4 = 0; i4 < min7; i4++) { - diag.push(this.get(i4, i4)); - } - return diag; - } - norm(type2 = "frobenius") { - let result = 0; - if (type2 === "max") { - return this.max(); - } else if (type2 === "frobenius") { - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - result = result + this.get(i4, j4) * this.get(i4, j4); - } - } - return Math.sqrt(result); - } else { - throw new RangeError(`unknown norm type: ${type2}`); - } - } - cumulativeSum() { - let sum = 0; - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - sum += this.get(i4, j4); - this.set(i4, j4, sum); - } - } - return this; - } - dot(vector2) { - if (AbstractMatrix.isMatrix(vector2)) - vector2 = vector2.to1DArray(); - let vector1 = this.to1DArray(); - if (vector1.length !== vector2.length) { - throw new RangeError("vectors do not have the same size"); - } - let dot7 = 0; - for (let i4 = 0; i4 < vector1.length; i4++) { - dot7 += vector1[i4] * vector2[i4]; - } - return dot7; - } - mmul(other2) { - other2 = Matrix2.checkMatrix(other2); - let m4 = this.rows; - let n3 = this.columns; - let p4 = other2.columns; - let result = new Matrix2(m4, p4); - let Bcolj = new Float64Array(n3); - for (let j4 = 0; j4 < p4; j4++) { - for (let k4 = 0; k4 < n3; k4++) { - Bcolj[k4] = other2.get(k4, j4); - } - for (let i4 = 0; i4 < m4; i4++) { - let s4 = 0; - for (let k4 = 0; k4 < n3; k4++) { - s4 += this.get(i4, k4) * Bcolj[k4]; - } - result.set(i4, j4, s4); - } - } - return result; - } - strassen2x2(other2) { - other2 = Matrix2.checkMatrix(other2); - let result = new Matrix2(2, 2); - const a11 = this.get(0, 0); - const b11 = other2.get(0, 0); - const a12 = this.get(0, 1); - const b12 = other2.get(0, 1); - const a21 = this.get(1, 0); - const b21 = other2.get(1, 0); - const a22 = this.get(1, 1); - const b222 = other2.get(1, 1); - const m1 = (a11 + a22) * (b11 + b222); - const m22 = (a21 + a22) * b11; - const m32 = a11 * (b12 - b222); - const m4 = a22 * (b21 - b11); - const m5 = (a11 + a12) * b222; - const m6 = (a21 - a11) * (b11 + b12); - const m7 = (a12 - a22) * (b21 + b222); - const c00 = m1 + m4 - m5 + m7; - const c01 = m32 + m5; - const c10 = m22 + m4; - const c11 = m1 - m22 + m32 + m6; - result.set(0, 0, c00); - result.set(0, 1, c01); - result.set(1, 0, c10); - result.set(1, 1, c11); - return result; - } - strassen3x3(other2) { - other2 = Matrix2.checkMatrix(other2); - let result = new Matrix2(3, 3); - const a00 = this.get(0, 0); - const a01 = this.get(0, 1); - const a02 = this.get(0, 2); - const a10 = this.get(1, 0); - const a11 = this.get(1, 1); - const a12 = this.get(1, 2); - const a20 = this.get(2, 0); - const a21 = this.get(2, 1); - const a22 = this.get(2, 2); - const b00 = other2.get(0, 0); - const b01 = other2.get(0, 1); - const b02 = other2.get(0, 2); - const b10 = other2.get(1, 0); - const b11 = other2.get(1, 1); - const b12 = other2.get(1, 2); - const b20 = other2.get(2, 0); - const b21 = other2.get(2, 1); - const b222 = other2.get(2, 2); - const m1 = (a00 + a01 + a02 - a10 - a11 - a21 - a22) * b11; - const m22 = (a00 - a10) * (-b01 + b11); - const m32 = a11 * (-b00 + b01 + b10 - b11 - b12 - b20 + b222); - const m4 = (-a00 + a10 + a11) * (b00 - b01 + b11); - const m5 = (a10 + a11) * (-b00 + b01); - const m6 = a00 * b00; - const m7 = (-a00 + a20 + a21) * (b00 - b02 + b12); - const m8 = (-a00 + a20) * (b02 - b12); - const m9 = (a20 + a21) * (-b00 + b02); - const m10 = (a00 + a01 + a02 - a11 - a12 - a20 - a21) * b12; - const m11 = a21 * (-b00 + b02 + b10 - b11 - b12 - b20 + b21); - const m12 = (-a02 + a21 + a22) * (b11 + b20 - b21); - const m13 = (a02 - a22) * (b11 - b21); - const m14 = a02 * b20; - const m15 = (a21 + a22) * (-b20 + b21); - const m16 = (-a02 + a11 + a12) * (b12 + b20 - b222); - const m17 = (a02 - a12) * (b12 - b222); - const m18 = (a11 + a12) * (-b20 + b222); - const m19 = a01 * b10; - const m20 = a12 * b21; - const m21 = a10 * b02; - const m222 = a20 * b01; - const m23 = a22 * b222; - const c00 = m6 + m14 + m19; - const c01 = m1 + m4 + m5 + m6 + m12 + m14 + m15; - const c02 = m6 + m7 + m9 + m10 + m14 + m16 + m18; - const c10 = m22 + m32 + m4 + m6 + m14 + m16 + m17; - const c11 = m22 + m4 + m5 + m6 + m20; - const c12 = m14 + m16 + m17 + m18 + m21; - const c20 = m6 + m7 + m8 + m11 + m12 + m13 + m14; - const c21 = m12 + m13 + m14 + m15 + m222; - const c22 = m6 + m7 + m8 + m9 + m23; - result.set(0, 0, c00); - result.set(0, 1, c01); - result.set(0, 2, c02); - result.set(1, 0, c10); - result.set(1, 1, c11); - result.set(1, 2, c12); - result.set(2, 0, c20); - result.set(2, 1, c21); - result.set(2, 2, c22); - return result; - } - mmulStrassen(y5) { - y5 = Matrix2.checkMatrix(y5); - let x6 = this.clone(); - let r1 = x6.rows; - let c1 = x6.columns; - let r22 = y5.rows; - let c22 = y5.columns; - if (c1 !== r22) { - console.warn(`Multiplying ${r1} x ${c1} and ${r22} x ${c22} matrix: dimensions do not match.`); - } - function embed(mat, rows, cols) { - let r5 = mat.rows; - let c6 = mat.columns; - if (r5 === rows && c6 === cols) { - return mat; - } else { - let resultat = AbstractMatrix.zeros(rows, cols); - resultat = resultat.setSubMatrix(mat, 0, 0); - return resultat; - } - } - let r4 = Math.max(r1, r22); - let c5 = Math.max(c1, c22); - x6 = embed(x6, r4, c5); - y5 = embed(y5, r4, c5); - function blockMult(a4, b10, rows, cols) { - if (rows <= 512 || cols <= 512) { - return a4.mmul(b10); - } - if (rows % 2 === 1 && cols % 2 === 1) { - a4 = embed(a4, rows + 1, cols + 1); - b10 = embed(b10, rows + 1, cols + 1); - } else if (rows % 2 === 1) { - a4 = embed(a4, rows + 1, cols); - b10 = embed(b10, rows + 1, cols); - } else if (cols % 2 === 1) { - a4 = embed(a4, rows, cols + 1); - b10 = embed(b10, rows, cols + 1); - } - let halfRows = parseInt(a4.rows / 2, 10); - let halfCols = parseInt(a4.columns / 2, 10); - let a11 = a4.subMatrix(0, halfRows - 1, 0, halfCols - 1); - let b11 = b10.subMatrix(0, halfRows - 1, 0, halfCols - 1); - let a12 = a4.subMatrix(0, halfRows - 1, halfCols, a4.columns - 1); - let b12 = b10.subMatrix(0, halfRows - 1, halfCols, b10.columns - 1); - let a21 = a4.subMatrix(halfRows, a4.rows - 1, 0, halfCols - 1); - let b21 = b10.subMatrix(halfRows, b10.rows - 1, 0, halfCols - 1); - let a22 = a4.subMatrix(halfRows, a4.rows - 1, halfCols, a4.columns - 1); - let b222 = b10.subMatrix(halfRows, b10.rows - 1, halfCols, b10.columns - 1); - let m1 = blockMult(AbstractMatrix.add(a11, a22), AbstractMatrix.add(b11, b222), halfRows, halfCols); - let m22 = blockMult(AbstractMatrix.add(a21, a22), b11, halfRows, halfCols); - let m32 = blockMult(a11, AbstractMatrix.sub(b12, b222), halfRows, halfCols); - let m4 = blockMult(a22, AbstractMatrix.sub(b21, b11), halfRows, halfCols); - let m5 = blockMult(AbstractMatrix.add(a11, a12), b222, halfRows, halfCols); - let m6 = blockMult(AbstractMatrix.sub(a21, a11), AbstractMatrix.add(b11, b12), halfRows, halfCols); - let m7 = blockMult(AbstractMatrix.sub(a12, a22), AbstractMatrix.add(b21, b222), halfRows, halfCols); - let c11 = AbstractMatrix.add(m1, m4); - c11.sub(m5); - c11.add(m7); - let c12 = AbstractMatrix.add(m32, m5); - let c21 = AbstractMatrix.add(m22, m4); - let c222 = AbstractMatrix.sub(m1, m22); - c222.add(m32); - c222.add(m6); - let resultat = AbstractMatrix.zeros(2 * c11.rows, 2 * c11.columns); - resultat = resultat.setSubMatrix(c11, 0, 0); - resultat = resultat.setSubMatrix(c12, c11.rows, 0); - resultat = resultat.setSubMatrix(c21, 0, c11.columns); - resultat = resultat.setSubMatrix(c222, c11.rows, c11.columns); - return resultat.subMatrix(0, rows - 1, 0, cols - 1); - } - return blockMult(x6, y5, r4, c5); - } - scaleRows(options = {}) { - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - const { min: min7 = 0, max: max8 = 1 } = options; - if (!Number.isFinite(min7)) - throw new TypeError("min must be a number"); - if (!Number.isFinite(max8)) - throw new TypeError("max must be a number"); - if (min7 >= max8) - throw new RangeError("min must be smaller than max"); - let newMatrix = new Matrix2(this.rows, this.columns); - for (let i4 = 0; i4 < this.rows; i4++) { - const row = this.getRow(i4); - if (row.length > 0) { - rescale(row, { min: min7, max: max8, output: row }); - } - newMatrix.setRow(i4, row); - } - return newMatrix; - } - scaleColumns(options = {}) { - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - const { min: min7 = 0, max: max8 = 1 } = options; - if (!Number.isFinite(min7)) - throw new TypeError("min must be a number"); - if (!Number.isFinite(max8)) - throw new TypeError("max must be a number"); - if (min7 >= max8) - throw new RangeError("min must be smaller than max"); - let newMatrix = new Matrix2(this.rows, this.columns); - for (let i4 = 0; i4 < this.columns; i4++) { - const column = this.getColumn(i4); - if (column.length) { - rescale(column, { - min: min7, - max: max8, - output: column - }); - } - newMatrix.setColumn(i4, column); - } - return newMatrix; - } - flipRows() { - const middle = Math.ceil(this.columns / 2); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < middle; j4++) { - let first = this.get(i4, j4); - let last2 = this.get(i4, this.columns - 1 - j4); - this.set(i4, j4, last2); - this.set(i4, this.columns - 1 - j4, first); - } - } - return this; - } - flipColumns() { - const middle = Math.ceil(this.rows / 2); - for (let j4 = 0; j4 < this.columns; j4++) { - for (let i4 = 0; i4 < middle; i4++) { - let first = this.get(i4, j4); - let last2 = this.get(this.rows - 1 - i4, j4); - this.set(i4, j4, last2); - this.set(this.rows - 1 - i4, j4, first); - } - } - return this; - } - kroneckerProduct(other2) { - other2 = Matrix2.checkMatrix(other2); - let m4 = this.rows; - let n3 = this.columns; - let p4 = other2.rows; - let q4 = other2.columns; - let result = new Matrix2(m4 * p4, n3 * q4); - for (let i4 = 0; i4 < m4; i4++) { - for (let j4 = 0; j4 < n3; j4++) { - for (let k4 = 0; k4 < p4; k4++) { - for (let l4 = 0; l4 < q4; l4++) { - result.set(p4 * i4 + k4, q4 * j4 + l4, this.get(i4, j4) * other2.get(k4, l4)); - } - } - } - } - return result; - } - kroneckerSum(other2) { - other2 = Matrix2.checkMatrix(other2); - if (!this.isSquare() || !other2.isSquare()) { - throw new Error("Kronecker Sum needs two Square Matrices"); - } - let m4 = this.rows; - let n3 = other2.rows; - let AxI = this.kroneckerProduct(Matrix2.eye(n3, n3)); - let IxB = Matrix2.eye(m4, m4).kroneckerProduct(other2); - return AxI.add(IxB); - } - transpose() { - let result = new Matrix2(this.columns, this.rows); - for (let i4 = 0; i4 < this.rows; i4++) { - for (let j4 = 0; j4 < this.columns; j4++) { - result.set(j4, i4, this.get(i4, j4)); - } - } - return result; - } - sortRows(compareFunction = compareNumbers) { - for (let i4 = 0; i4 < this.rows; i4++) { - this.setRow(i4, this.getRow(i4).sort(compareFunction)); - } - return this; - } - sortColumns(compareFunction = compareNumbers) { - for (let i4 = 0; i4 < this.columns; i4++) { - this.setColumn(i4, this.getColumn(i4).sort(compareFunction)); - } - return this; - } - subMatrix(startRow, endRow, startColumn, endColumn) { - checkRange(this, startRow, endRow, startColumn, endColumn); - let newMatrix = new Matrix2(endRow - startRow + 1, endColumn - startColumn + 1); - for (let i4 = startRow; i4 <= endRow; i4++) { - for (let j4 = startColumn; j4 <= endColumn; j4++) { - newMatrix.set(i4 - startRow, j4 - startColumn, this.get(i4, j4)); - } - } - return newMatrix; - } - subMatrixRow(indices, startColumn, endColumn) { - if (startColumn === void 0) - startColumn = 0; - if (endColumn === void 0) - endColumn = this.columns - 1; - if (startColumn > endColumn || startColumn < 0 || startColumn >= this.columns || endColumn < 0 || endColumn >= this.columns) { - throw new RangeError("Argument out of range"); - } - let newMatrix = new Matrix2(indices.length, endColumn - startColumn + 1); - for (let i4 = 0; i4 < indices.length; i4++) { - for (let j4 = startColumn; j4 <= endColumn; j4++) { - if (indices[i4] < 0 || indices[i4] >= this.rows) { - throw new RangeError(`Row index out of range: ${indices[i4]}`); - } - newMatrix.set(i4, j4 - startColumn, this.get(indices[i4], j4)); - } - } - return newMatrix; - } - subMatrixColumn(indices, startRow, endRow) { - if (startRow === void 0) - startRow = 0; - if (endRow === void 0) - endRow = this.rows - 1; - if (startRow > endRow || startRow < 0 || startRow >= this.rows || endRow < 0 || endRow >= this.rows) { - throw new RangeError("Argument out of range"); - } - let newMatrix = new Matrix2(endRow - startRow + 1, indices.length); - for (let i4 = 0; i4 < indices.length; i4++) { - for (let j4 = startRow; j4 <= endRow; j4++) { - if (indices[i4] < 0 || indices[i4] >= this.columns) { - throw new RangeError(`Column index out of range: ${indices[i4]}`); - } - newMatrix.set(j4 - startRow, i4, this.get(j4, indices[i4])); - } - } - return newMatrix; - } - setSubMatrix(matrix, startRow, startColumn) { - matrix = Matrix2.checkMatrix(matrix); - if (matrix.isEmpty()) { - return this; - } - let endRow = startRow + matrix.rows - 1; - let endColumn = startColumn + matrix.columns - 1; - checkRange(this, startRow, endRow, startColumn, endColumn); - for (let i4 = 0; i4 < matrix.rows; i4++) { - for (let j4 = 0; j4 < matrix.columns; j4++) { - this.set(startRow + i4, startColumn + j4, matrix.get(i4, j4)); - } - } - return this; - } - selection(rowIndices, columnIndices) { - let indices = checkIndices(this, rowIndices, columnIndices); - let newMatrix = new Matrix2(rowIndices.length, columnIndices.length); - for (let i4 = 0; i4 < indices.row.length; i4++) { - let rowIndex = indices.row[i4]; - for (let j4 = 0; j4 < indices.column.length; j4++) { - let columnIndex = indices.column[j4]; - newMatrix.set(i4, j4, this.get(rowIndex, columnIndex)); - } - } - return newMatrix; - } - trace() { - let min7 = Math.min(this.rows, this.columns); - let trace = 0; - for (let i4 = 0; i4 < min7; i4++) { - trace += this.get(i4, i4); - } - return trace; - } - clone() { - let newMatrix = new Matrix2(this.rows, this.columns); - for (let row = 0; row < this.rows; row++) { - for (let column = 0; column < this.columns; column++) { - newMatrix.set(row, column, this.get(row, column)); - } - } - return newMatrix; - } - sum(by) { - switch (by) { - case "row": - return sumByRow(this); - case "column": - return sumByColumn(this); - case void 0: - return sumAll(this); - default: - throw new Error(`invalid option: ${by}`); - } - } - product(by) { - switch (by) { - case "row": - return productByRow(this); - case "column": - return productByColumn(this); - case void 0: - return productAll(this); - default: - throw new Error(`invalid option: ${by}`); - } - } - mean(by) { - const sum = this.sum(by); - switch (by) { - case "row": { - for (let i4 = 0; i4 < this.rows; i4++) { - sum[i4] /= this.columns; - } - return sum; - } - case "column": { - for (let i4 = 0; i4 < this.columns; i4++) { - sum[i4] /= this.rows; - } - return sum; - } - case void 0: - return sum / this.size; - default: - throw new Error(`invalid option: ${by}`); - } - } - variance(by, options = {}) { - if (typeof by === "object") { - options = by; - by = void 0; - } - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - const { unbiased = true, mean = this.mean(by) } = options; - if (typeof unbiased !== "boolean") { - throw new TypeError("unbiased must be a boolean"); - } - switch (by) { - case "row": { - if (!Array.isArray(mean)) { - throw new TypeError("mean must be an array"); - } - return varianceByRow(this, unbiased, mean); - } - case "column": { - if (!Array.isArray(mean)) { - throw new TypeError("mean must be an array"); - } - return varianceByColumn(this, unbiased, mean); - } - case void 0: { - if (typeof mean !== "number") { - throw new TypeError("mean must be a number"); - } - return varianceAll(this, unbiased, mean); - } - default: - throw new Error(`invalid option: ${by}`); - } - } - standardDeviation(by, options) { - if (typeof by === "object") { - options = by; - by = void 0; - } - const variance = this.variance(by, options); - if (by === void 0) { - return Math.sqrt(variance); - } else { - for (let i4 = 0; i4 < variance.length; i4++) { - variance[i4] = Math.sqrt(variance[i4]); - } - return variance; - } - } - center(by, options = {}) { - if (typeof by === "object") { - options = by; - by = void 0; - } - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - const { center: center2 = this.mean(by) } = options; - switch (by) { - case "row": { - if (!Array.isArray(center2)) { - throw new TypeError("center must be an array"); - } - centerByRow(this, center2); - return this; - } - case "column": { - if (!Array.isArray(center2)) { - throw new TypeError("center must be an array"); - } - centerByColumn(this, center2); - return this; - } - case void 0: { - if (typeof center2 !== "number") { - throw new TypeError("center must be a number"); - } - centerAll(this, center2); - return this; - } - default: - throw new Error(`invalid option: ${by}`); - } - } - scale(by, options = {}) { - if (typeof by === "object") { - options = by; - by = void 0; - } - if (typeof options !== "object") { - throw new TypeError("options must be an object"); - } - let scale12 = options.scale; - switch (by) { - case "row": { - if (scale12 === void 0) { - scale12 = getScaleByRow(this); - } else if (!Array.isArray(scale12)) { - throw new TypeError("scale must be an array"); - } - scaleByRow(this, scale12); - return this; - } - case "column": { - if (scale12 === void 0) { - scale12 = getScaleByColumn(this); - } else if (!Array.isArray(scale12)) { - throw new TypeError("scale must be an array"); - } - scaleByColumn(this, scale12); - return this; - } - case void 0: { - if (scale12 === void 0) { - scale12 = getScaleAll(this); - } else if (typeof scale12 !== "number") { - throw new TypeError("scale must be a number"); - } - scaleAll(this, scale12); - return this; - } - default: - throw new Error(`invalid option: ${by}`); - } - } - toString(options) { - return inspectMatrixWithOptions(this, options); - } -}; -AbstractMatrix.prototype.klass = "Matrix"; -if (typeof Symbol !== "undefined") { - AbstractMatrix.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspectMatrix; -} -function compareNumbers(a4, b10) { - return a4 - b10; -} -AbstractMatrix.random = AbstractMatrix.rand; -AbstractMatrix.randomInt = AbstractMatrix.randInt; -AbstractMatrix.diagonal = AbstractMatrix.diag; -AbstractMatrix.prototype.diagonal = AbstractMatrix.prototype.diag; -AbstractMatrix.identity = AbstractMatrix.eye; -AbstractMatrix.prototype.negate = AbstractMatrix.prototype.neg; -AbstractMatrix.prototype.tensorProduct = AbstractMatrix.prototype.kroneckerProduct; -var Matrix2 = class extends AbstractMatrix { - constructor(nRows, nColumns) { - super(); - if (Matrix2.isMatrix(nRows)) { - return nRows.clone(); - } else if (Number.isInteger(nRows) && nRows >= 0) { - this.data = []; - if (Number.isInteger(nColumns) && nColumns >= 0) { - for (let i4 = 0; i4 < nRows; i4++) { - this.data.push(new Float64Array(nColumns)); - } - } else { - throw new TypeError("nColumns must be a positive integer"); - } - } else if (Array.isArray(nRows)) { - const arrayData = nRows; - nRows = arrayData.length; - nColumns = nRows ? arrayData[0].length : 0; - if (typeof nColumns !== "number") { - throw new TypeError("Data must be a 2D array with at least one element"); - } - this.data = []; - for (let i4 = 0; i4 < nRows; i4++) { - if (arrayData[i4].length !== nColumns) { - throw new RangeError("Inconsistent array dimensions"); - } - this.data.push(Float64Array.from(arrayData[i4])); - } - } else { - throw new TypeError("First argument must be a positive number or an array"); - } - this.rows = nRows; - this.columns = nColumns; - } - set(rowIndex, columnIndex, value2) { - this.data[rowIndex][columnIndex] = value2; - return this; - } - get(rowIndex, columnIndex) { - return this.data[rowIndex][columnIndex]; - } - removeRow(index2) { - checkRowIndex(this, index2); - this.data.splice(index2, 1); - this.rows -= 1; - return this; - } - addRow(index2, array) { - if (array === void 0) { - array = index2; - index2 = this.rows; - } - checkRowIndex(this, index2, true); - array = Float64Array.from(checkRowVector(this, array)); - this.data.splice(index2, 0, array); - this.rows += 1; - return this; - } - removeColumn(index2) { - checkColumnIndex(this, index2); - for (let i4 = 0; i4 < this.rows; i4++) { - const newRow = new Float64Array(this.columns - 1); - for (let j4 = 0; j4 < index2; j4++) { - newRow[j4] = this.data[i4][j4]; - } - for (let j4 = index2 + 1; j4 < this.columns; j4++) { - newRow[j4 - 1] = this.data[i4][j4]; - } - this.data[i4] = newRow; - } - this.columns -= 1; - return this; - } - addColumn(index2, array) { - if (typeof array === "undefined") { - array = index2; - index2 = this.columns; - } - checkColumnIndex(this, index2, true); - array = checkColumnVector(this, array); - for (let i4 = 0; i4 < this.rows; i4++) { - const newRow = new Float64Array(this.columns + 1); - let j4 = 0; - for (; j4 < index2; j4++) { - newRow[j4] = this.data[i4][j4]; - } - newRow[j4++] = array[i4]; - for (; j4 < this.columns + 1; j4++) { - newRow[j4] = this.data[i4][j4 - 1]; - } - this.data[i4] = newRow; - } - this.columns += 1; - return this; - } -}; -installMathOperations(AbstractMatrix, Matrix2); - -// node_modules/ml-matrix/src/wrap/WrapperMatrix2D.js -var WrapperMatrix2D = class extends AbstractMatrix { - constructor(data3) { - super(); - this.data = data3; - this.rows = data3.length; - this.columns = data3[0].length; - } - set(rowIndex, columnIndex, value2) { - this.data[rowIndex][columnIndex] = value2; - return this; - } - get(rowIndex, columnIndex) { - return this.data[rowIndex][columnIndex]; - } -}; - -// node_modules/ml-matrix/src/dc/util.js -function hypotenuse(a4, b10) { - let r4 = 0; - if (Math.abs(a4) > Math.abs(b10)) { - r4 = b10 / a4; - return Math.abs(a4) * Math.sqrt(1 + r4 * r4); - } - if (b10 !== 0) { - r4 = a4 / b10; - return Math.abs(b10) * Math.sqrt(1 + r4 * r4); - } - return 0; -} - -// node_modules/ml-matrix/src/dc/svd.js -var SingularValueDecomposition = class { - constructor(value2, options = {}) { - value2 = WrapperMatrix2D.checkMatrix(value2); - if (value2.isEmpty()) { - throw new Error("Matrix must be non-empty"); - } - let m4 = value2.rows; - let n3 = value2.columns; - const { - computeLeftSingularVectors = true, - computeRightSingularVectors = true, - autoTranspose = false - } = options; - let wantu = Boolean(computeLeftSingularVectors); - let wantv = Boolean(computeRightSingularVectors); - let swapped = false; - let a4; - if (m4 < n3) { - if (!autoTranspose) { - a4 = value2.clone(); - console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose"); - } else { - a4 = value2.transpose(); - m4 = a4.rows; - n3 = a4.columns; - swapped = true; - let aux = wantu; - wantu = wantv; - wantv = aux; - } - } else { - a4 = value2.clone(); - } - let nu = Math.min(m4, n3); - let ni = Math.min(m4 + 1, n3); - let s4 = new Float64Array(ni); - let U2 = new Matrix2(m4, nu); - let V2 = new Matrix2(n3, n3); - let e4 = new Float64Array(n3); - let work = new Float64Array(m4); - let si = new Float64Array(ni); - for (let i4 = 0; i4 < ni; i4++) - si[i4] = i4; - let nct = Math.min(m4 - 1, n3); - let nrt = Math.max(0, Math.min(n3 - 2, m4)); - let mrc = Math.max(nct, nrt); - for (let k4 = 0; k4 < mrc; k4++) { - if (k4 < nct) { - s4[k4] = 0; - for (let i4 = k4; i4 < m4; i4++) { - s4[k4] = hypotenuse(s4[k4], a4.get(i4, k4)); - } - if (s4[k4] !== 0) { - if (a4.get(k4, k4) < 0) { - s4[k4] = -s4[k4]; - } - for (let i4 = k4; i4 < m4; i4++) { - a4.set(i4, k4, a4.get(i4, k4) / s4[k4]); - } - a4.set(k4, k4, a4.get(k4, k4) + 1); - } - s4[k4] = -s4[k4]; - } - for (let j4 = k4 + 1; j4 < n3; j4++) { - if (k4 < nct && s4[k4] !== 0) { - let t4 = 0; - for (let i4 = k4; i4 < m4; i4++) { - t4 += a4.get(i4, k4) * a4.get(i4, j4); - } - t4 = -t4 / a4.get(k4, k4); - for (let i4 = k4; i4 < m4; i4++) { - a4.set(i4, j4, a4.get(i4, j4) + t4 * a4.get(i4, k4)); - } - } - e4[j4] = a4.get(k4, j4); - } - if (wantu && k4 < nct) { - for (let i4 = k4; i4 < m4; i4++) { - U2.set(i4, k4, a4.get(i4, k4)); - } - } - if (k4 < nrt) { - e4[k4] = 0; - for (let i4 = k4 + 1; i4 < n3; i4++) { - e4[k4] = hypotenuse(e4[k4], e4[i4]); - } - if (e4[k4] !== 0) { - if (e4[k4 + 1] < 0) { - e4[k4] = 0 - e4[k4]; - } - for (let i4 = k4 + 1; i4 < n3; i4++) { - e4[i4] /= e4[k4]; - } - e4[k4 + 1] += 1; - } - e4[k4] = -e4[k4]; - if (k4 + 1 < m4 && e4[k4] !== 0) { - for (let i4 = k4 + 1; i4 < m4; i4++) { - work[i4] = 0; - } - for (let i4 = k4 + 1; i4 < m4; i4++) { - for (let j4 = k4 + 1; j4 < n3; j4++) { - work[i4] += e4[j4] * a4.get(i4, j4); - } - } - for (let j4 = k4 + 1; j4 < n3; j4++) { - let t4 = -e4[j4] / e4[k4 + 1]; - for (let i4 = k4 + 1; i4 < m4; i4++) { - a4.set(i4, j4, a4.get(i4, j4) + t4 * work[i4]); - } - } - } - if (wantv) { - for (let i4 = k4 + 1; i4 < n3; i4++) { - V2.set(i4, k4, e4[i4]); - } - } - } - } - let p4 = Math.min(n3, m4 + 1); - if (nct < n3) { - s4[nct] = a4.get(nct, nct); - } - if (m4 < p4) { - s4[p4 - 1] = 0; - } - if (nrt + 1 < p4) { - e4[nrt] = a4.get(nrt, p4 - 1); - } - e4[p4 - 1] = 0; - if (wantu) { - for (let j4 = nct; j4 < nu; j4++) { - for (let i4 = 0; i4 < m4; i4++) { - U2.set(i4, j4, 0); - } - U2.set(j4, j4, 1); - } - for (let k4 = nct - 1; k4 >= 0; k4--) { - if (s4[k4] !== 0) { - for (let j4 = k4 + 1; j4 < nu; j4++) { - let t4 = 0; - for (let i4 = k4; i4 < m4; i4++) { - t4 += U2.get(i4, k4) * U2.get(i4, j4); - } - t4 = -t4 / U2.get(k4, k4); - for (let i4 = k4; i4 < m4; i4++) { - U2.set(i4, j4, U2.get(i4, j4) + t4 * U2.get(i4, k4)); - } - } - for (let i4 = k4; i4 < m4; i4++) { - U2.set(i4, k4, -U2.get(i4, k4)); - } - U2.set(k4, k4, 1 + U2.get(k4, k4)); - for (let i4 = 0; i4 < k4 - 1; i4++) { - U2.set(i4, k4, 0); - } - } else { - for (let i4 = 0; i4 < m4; i4++) { - U2.set(i4, k4, 0); - } - U2.set(k4, k4, 1); - } - } - } - if (wantv) { - for (let k4 = n3 - 1; k4 >= 0; k4--) { - if (k4 < nrt && e4[k4] !== 0) { - for (let j4 = k4 + 1; j4 < n3; j4++) { - let t4 = 0; - for (let i4 = k4 + 1; i4 < n3; i4++) { - t4 += V2.get(i4, k4) * V2.get(i4, j4); - } - t4 = -t4 / V2.get(k4 + 1, k4); - for (let i4 = k4 + 1; i4 < n3; i4++) { - V2.set(i4, j4, V2.get(i4, j4) + t4 * V2.get(i4, k4)); - } - } - } - for (let i4 = 0; i4 < n3; i4++) { - V2.set(i4, k4, 0); - } - V2.set(k4, k4, 1); - } - } - let pp = p4 - 1; - let iter = 0; - let eps2 = Number.EPSILON; - while (p4 > 0) { - let k4, kase; - for (k4 = p4 - 2; k4 >= -1; k4--) { - if (k4 === -1) { - break; - } - const alpha = Number.MIN_VALUE + eps2 * Math.abs(s4[k4] + Math.abs(s4[k4 + 1])); - if (Math.abs(e4[k4]) <= alpha || Number.isNaN(e4[k4])) { - e4[k4] = 0; - break; - } - } - if (k4 === p4 - 2) { - kase = 4; - } else { - let ks; - for (ks = p4 - 1; ks >= k4; ks--) { - if (ks === k4) { - break; - } - let t4 = (ks !== p4 ? Math.abs(e4[ks]) : 0) + (ks !== k4 + 1 ? Math.abs(e4[ks - 1]) : 0); - if (Math.abs(s4[ks]) <= eps2 * t4) { - s4[ks] = 0; - break; - } - } - if (ks === k4) { - kase = 3; - } else if (ks === p4 - 1) { - kase = 1; - } else { - kase = 2; - k4 = ks; - } - } - k4++; - switch (kase) { - case 1: { - let f3 = e4[p4 - 2]; - e4[p4 - 2] = 0; - for (let j4 = p4 - 2; j4 >= k4; j4--) { - let t4 = hypotenuse(s4[j4], f3); - let cs = s4[j4] / t4; - let sn = f3 / t4; - s4[j4] = t4; - if (j4 !== k4) { - f3 = -sn * e4[j4 - 1]; - e4[j4 - 1] = cs * e4[j4 - 1]; - } - if (wantv) { - for (let i4 = 0; i4 < n3; i4++) { - t4 = cs * V2.get(i4, j4) + sn * V2.get(i4, p4 - 1); - V2.set(i4, p4 - 1, -sn * V2.get(i4, j4) + cs * V2.get(i4, p4 - 1)); - V2.set(i4, j4, t4); - } - } - } - break; - } - case 2: { - let f3 = e4[k4 - 1]; - e4[k4 - 1] = 0; - for (let j4 = k4; j4 < p4; j4++) { - let t4 = hypotenuse(s4[j4], f3); - let cs = s4[j4] / t4; - let sn = f3 / t4; - s4[j4] = t4; - f3 = -sn * e4[j4]; - e4[j4] = cs * e4[j4]; - if (wantu) { - for (let i4 = 0; i4 < m4; i4++) { - t4 = cs * U2.get(i4, j4) + sn * U2.get(i4, k4 - 1); - U2.set(i4, k4 - 1, -sn * U2.get(i4, j4) + cs * U2.get(i4, k4 - 1)); - U2.set(i4, j4, t4); - } - } - } - break; - } - case 3: { - const scale12 = Math.max(Math.abs(s4[p4 - 1]), Math.abs(s4[p4 - 2]), Math.abs(e4[p4 - 2]), Math.abs(s4[k4]), Math.abs(e4[k4])); - const sp = s4[p4 - 1] / scale12; - const spm1 = s4[p4 - 2] / scale12; - const epm1 = e4[p4 - 2] / scale12; - const sk = s4[k4] / scale12; - const ek = e4[k4] / scale12; - const b10 = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2; - const c5 = sp * epm1 * (sp * epm1); - let shift = 0; - if (b10 !== 0 || c5 !== 0) { - if (b10 < 0) { - shift = 0 - Math.sqrt(b10 * b10 + c5); - } else { - shift = Math.sqrt(b10 * b10 + c5); - } - shift = c5 / (b10 + shift); - } - let f3 = (sk + sp) * (sk - sp) + shift; - let g4 = sk * ek; - for (let j4 = k4; j4 < p4 - 1; j4++) { - let t4 = hypotenuse(f3, g4); - if (t4 === 0) - t4 = Number.MIN_VALUE; - let cs = f3 / t4; - let sn = g4 / t4; - if (j4 !== k4) { - e4[j4 - 1] = t4; - } - f3 = cs * s4[j4] + sn * e4[j4]; - e4[j4] = cs * e4[j4] - sn * s4[j4]; - g4 = sn * s4[j4 + 1]; - s4[j4 + 1] = cs * s4[j4 + 1]; - if (wantv) { - for (let i4 = 0; i4 < n3; i4++) { - t4 = cs * V2.get(i4, j4) + sn * V2.get(i4, j4 + 1); - V2.set(i4, j4 + 1, -sn * V2.get(i4, j4) + cs * V2.get(i4, j4 + 1)); - V2.set(i4, j4, t4); - } - } - t4 = hypotenuse(f3, g4); - if (t4 === 0) - t4 = Number.MIN_VALUE; - cs = f3 / t4; - sn = g4 / t4; - s4[j4] = t4; - f3 = cs * e4[j4] + sn * s4[j4 + 1]; - s4[j4 + 1] = -sn * e4[j4] + cs * s4[j4 + 1]; - g4 = sn * e4[j4 + 1]; - e4[j4 + 1] = cs * e4[j4 + 1]; - if (wantu && j4 < m4 - 1) { - for (let i4 = 0; i4 < m4; i4++) { - t4 = cs * U2.get(i4, j4) + sn * U2.get(i4, j4 + 1); - U2.set(i4, j4 + 1, -sn * U2.get(i4, j4) + cs * U2.get(i4, j4 + 1)); - U2.set(i4, j4, t4); - } - } - } - e4[p4 - 2] = f3; - iter = iter + 1; - break; - } - case 4: { - if (s4[k4] <= 0) { - s4[k4] = s4[k4] < 0 ? -s4[k4] : 0; - if (wantv) { - for (let i4 = 0; i4 <= pp; i4++) { - V2.set(i4, k4, -V2.get(i4, k4)); - } - } - } - while (k4 < pp) { - if (s4[k4] >= s4[k4 + 1]) { - break; - } - let t4 = s4[k4]; - s4[k4] = s4[k4 + 1]; - s4[k4 + 1] = t4; - if (wantv && k4 < n3 - 1) { - for (let i4 = 0; i4 < n3; i4++) { - t4 = V2.get(i4, k4 + 1); - V2.set(i4, k4 + 1, V2.get(i4, k4)); - V2.set(i4, k4, t4); - } - } - if (wantu && k4 < m4 - 1) { - for (let i4 = 0; i4 < m4; i4++) { - t4 = U2.get(i4, k4 + 1); - U2.set(i4, k4 + 1, U2.get(i4, k4)); - U2.set(i4, k4, t4); - } - } - k4++; - } - iter = 0; - p4--; - break; - } - } - } - if (swapped) { - let tmp = V2; - V2 = U2; - U2 = tmp; - } - this.m = m4; - this.n = n3; - this.s = s4; - this.U = U2; - this.V = V2; - } - solve(value2) { - let Y2 = value2; - let e4 = this.threshold; - let scols = this.s.length; - let Ls = Matrix2.zeros(scols, scols); - for (let i4 = 0; i4 < scols; i4++) { - if (Math.abs(this.s[i4]) <= e4) { - Ls.set(i4, i4, 0); - } else { - Ls.set(i4, i4, 1 / this.s[i4]); - } - } - let U2 = this.U; - let V2 = this.rightSingularVectors; - let VL = V2.mmul(Ls); - let vrows = V2.rows; - let urows = U2.rows; - let VLU = Matrix2.zeros(vrows, urows); - for (let i4 = 0; i4 < vrows; i4++) { - for (let j4 = 0; j4 < urows; j4++) { - let sum = 0; - for (let k4 = 0; k4 < scols; k4++) { - sum += VL.get(i4, k4) * U2.get(j4, k4); - } - VLU.set(i4, j4, sum); - } - } - return VLU.mmul(Y2); - } - solveForDiagonal(value2) { - return this.solve(Matrix2.diag(value2)); - } - inverse() { - let V2 = this.V; - let e4 = this.threshold; - let vrows = V2.rows; - let vcols = V2.columns; - let X2 = new Matrix2(vrows, this.s.length); - for (let i4 = 0; i4 < vrows; i4++) { - for (let j4 = 0; j4 < vcols; j4++) { - if (Math.abs(this.s[j4]) > e4) { - X2.set(i4, j4, V2.get(i4, j4) / this.s[j4]); - } - } - } - let U2 = this.U; - let urows = U2.rows; - let ucols = U2.columns; - let Y2 = new Matrix2(vrows, urows); - for (let i4 = 0; i4 < vrows; i4++) { - for (let j4 = 0; j4 < urows; j4++) { - let sum = 0; - for (let k4 = 0; k4 < ucols; k4++) { - sum += X2.get(i4, k4) * U2.get(j4, k4); - } - Y2.set(i4, j4, sum); - } - } - return Y2; - } - get condition() { - return this.s[0] / this.s[Math.min(this.m, this.n) - 1]; - } - get norm2() { - return this.s[0]; - } - get rank() { - let tol = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON; - let r4 = 0; - let s4 = this.s; - for (let i4 = 0, ii = s4.length; i4 < ii; i4++) { - if (s4[i4] > tol) { - r4++; - } - } - return r4; - } - get diagonal() { - return Array.from(this.s); - } - get threshold() { - return Number.EPSILON / 2 * Math.max(this.m, this.n) * this.s[0]; - } - get leftSingularVectors() { - return this.U; - } - get rightSingularVectors() { - return this.V; - } - get diagonalMatrix() { - return Matrix2.diag(this.s); - } -}; - -// node_modules/@antv/layout/es/layout/radial/mds.js -var MDS = class { - constructor(params) { - this.distances = params.distances; - this.dimension = params.dimension || 2; - this.linkDistance = params.linkDistance; - } - layout() { - const self2 = this; - const { dimension, distances, linkDistance } = self2; - try { - const M3 = Matrix2.mul(Matrix2.pow(distances, 2), -0.5); - const rowMeans = M3.mean("row"); - const colMeans = M3.mean("column"); - const totalMean = M3.mean(); - M3.add(totalMean).subRowVector(rowMeans).subColumnVector(colMeans); - const ret = new SingularValueDecomposition(M3); - const eigenValues = Matrix2.sqrt(ret.diagonalMatrix).diagonal(); - return ret.leftSingularVectors.toJSON().map((row) => { - return Matrix2.mul([row], [eigenValues]).toJSON()[0].splice(0, dimension); - }); - } catch (_a6) { - const res = []; - for (let i4 = 0; i4 < distances.length; i4++) { - const x6 = Math.random() * linkDistance; - const y5 = Math.random() * linkDistance; - res.push([x6, y5]); - } - return res; - } - } -}; - -// node_modules/@antv/layout/es/layout/radial/radialNonoverlapForce.js -var SPEED_DIVISOR = 800; -var RadialNonoverlapForce = class { - constructor(params) { - this.disp = []; - this.positions = params.positions; - this.adjMatrix = params.adjMatrix; - this.focusID = params.focusID; - this.radii = params.radii; - this.iterations = params.iterations || 10; - this.height = params.height || 10; - this.width = params.width || 10; - this.speed = params.speed || 100; - this.gravity = params.gravity || 10; - this.nodeSizeFunc = params.nodeSizeFunc; - this.k = params.k || 5; - this.strictRadial = params.strictRadial; - this.nodes = params.nodes; - } - layout() { - const self2 = this; - const positions = self2.positions; - const disp = []; - const iterations = self2.iterations; - const maxDisplace = self2.width / 10; - self2.maxDisplace = maxDisplace; - self2.disp = disp; - for (let i4 = 0; i4 < iterations; i4++) { - positions.forEach((_8, k4) => { - disp[k4] = { x: 0, y: 0 }; - }); - self2.getRepulsion(); - self2.updatePositions(); - } - return positions; - } - getRepulsion() { - const self2 = this; - const positions = self2.positions; - const nodes = self2.nodes; - const disp = self2.disp; - const k4 = self2.k; - const radii = self2.radii || []; - positions.forEach((v3, i4) => { - disp[i4] = { x: 0, y: 0 }; - positions.forEach((u3, j4) => { - if (i4 === j4) { - return; - } - if (radii[i4] !== radii[j4]) { - return; - } - let vecx = v3[0] - u3[0]; - let vecy = v3[1] - u3[1]; - let vecLength = Math.sqrt(vecx * vecx + vecy * vecy); - if (vecLength === 0) { - vecLength = 1; - const sign = i4 > j4 ? 1 : -1; - vecx = 0.01 * sign; - vecy = 0.01 * sign; - } - if (vecLength < self2.nodeSizeFunc(nodes[i4]) / 2 + self2.nodeSizeFunc(nodes[j4]) / 2) { - const common2 = k4 * k4 / vecLength; - disp[i4].x += vecx / vecLength * common2; - disp[i4].y += vecy / vecLength * common2; - } - }); - }); - } - updatePositions() { - const self2 = this; - const positions = self2.positions; - const disp = self2.disp; - const speed = self2.speed; - const strictRadial = self2.strictRadial; - const f3 = self2.focusID; - const maxDisplace = self2.maxDisplace || self2.width / 10; - if (strictRadial) { - disp.forEach((di, i4) => { - const vx = positions[i4][0] - positions[f3][0]; - const vy = positions[i4][1] - positions[f3][1]; - const vLength = Math.sqrt(vx * vx + vy * vy); - let vpx = vy / vLength; - let vpy = -vx / vLength; - const diLength = Math.sqrt(di.x * di.x + di.y * di.y); - let alpha = Math.acos((vpx * di.x + vpy * di.y) / diLength); - if (alpha > Math.PI / 2) { - alpha -= Math.PI / 2; - vpx *= -1; - vpy *= -1; - } - const tdispLength = Math.cos(alpha) * diLength; - di.x = vpx * tdispLength; - di.y = vpy * tdispLength; - }); - } - const radii = self2.radii; - positions.forEach((n3, i4) => { - if (i4 === f3) { - return; - } - const distLength = Math.sqrt(disp[i4].x * disp[i4].x + disp[i4].y * disp[i4].y); - if (distLength > 0 && i4 !== f3) { - const limitedDist = Math.min(maxDisplace * (speed / SPEED_DIVISOR), distLength); - n3[0] += disp[i4].x / distLength * limitedDist; - n3[1] += disp[i4].y / distLength * limitedDist; - if (strictRadial) { - let vx = n3[0] - positions[f3][0]; - let vy = n3[1] - positions[f3][1]; - const nfDis = Math.sqrt(vx * vx + vy * vy); - vx = vx / nfDis * radii[i4]; - vy = vy / nfDis * radii[i4]; - n3[0] = positions[f3][0] + vx; - n3[1] = positions[f3][1] + vy; - } - } - }); - } -}; - -// node_modules/@antv/layout/es/layout/radial/radial.js -function getWeightMatrix(M3) { - const rows = M3.length; - const cols = M3[0].length; - const result = []; - for (let i4 = 0; i4 < rows; i4++) { - const row = []; - for (let j4 = 0; j4 < cols; j4++) { - if (M3[i4][j4] !== 0) { - row.push(1 / (M3[i4][j4] * M3[i4][j4])); - } else { - row.push(0); - } - } - result.push(row); - } - return result; -} -function getIndexById(array, id) { - let index2 = -1; - array.forEach((a4, i4) => { - if (a4.id === id) { - index2 = i4; - } - }); - return index2; -} -function getEDistance(p1, p22) { - return Math.sqrt((p1[0] - p22[0]) * (p1[0] - p22[0]) + (p1[1] - p22[1]) * (p1[1] - p22[1])); -} -var RadialLayout = class extends Base3 { - constructor(options) { - super(); - this.maxIteration = 1e3; - this.focusNode = null; - this.unitRadius = null; - this.linkDistance = 50; - this.preventOverlap = false; - this.strictRadial = true; - this.maxPreventOverlapIteration = 200; - this.sortStrength = 10; - this.nodes = []; - this.edges = []; - this.updateCfg(options); - } - getDefaultCfg() { - return { - maxIteration: 1e3, - focusNode: null, - unitRadius: null, - linkDistance: 50, - preventOverlap: false, - nodeSize: void 0, - nodeSpacing: void 0, - strictRadial: true, - maxPreventOverlapIteration: 200, - sortBy: void 0, - sortStrength: 10 - }; - } - execute() { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges || []; - if (!nodes || nodes.length === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (!self2.center) { - self2.center = [self2.width / 2, self2.height / 2]; - } - const center2 = self2.center; - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - const linkDistance = self2.linkDistance; - let focusNode = null; - if (isString(self2.focusNode)) { - let found = false; - for (let i4 = 0; i4 < nodes.length; i4++) { - if (nodes[i4].id === self2.focusNode) { - focusNode = nodes[i4]; - self2.focusNode = focusNode; - found = true; - i4 = nodes.length; - } - } - if (!found) { - focusNode = null; - } - } else { - focusNode = self2.focusNode; - } - if (!focusNode) { - focusNode = nodes[0]; - self2.focusNode = focusNode; - } - const focusIndex = getIndexById(nodes, focusNode.id); - self2.focusIndex = focusIndex; - const adjMatrix3 = getAdjMatrix3({ nodes, edges }, false); - const D3 = floydWarshall5(adjMatrix3); - const maxDistance = self2.maxToFocus(D3, focusIndex); - self2.handleInfinity(D3, focusIndex, maxDistance + 1); - self2.distances = D3; - const focusNodeD = D3[focusIndex]; - const width2 = self2.width || 500; - const height = self2.height || 500; - let semiWidth = width2 - center2[0] > center2[0] ? center2[0] : width2 - center2[0]; - let semiHeight = height - center2[1] > center2[1] ? center2[1] : height - center2[1]; - if (semiWidth === 0) { - semiWidth = width2 / 2; - } - if (semiHeight === 0) { - semiHeight = height / 2; - } - const maxRadius = semiHeight > semiWidth ? semiWidth : semiHeight; - const maxD = Math.max(...focusNodeD); - const radii = []; - focusNodeD.forEach((value2, i4) => { - if (!self2.unitRadius) { - self2.unitRadius = maxRadius / maxD; - } - radii[i4] = value2 * self2.unitRadius; - }); - self2.radii = radii; - const eIdealD = self2.eIdealDisMatrix(); - self2.eIdealDistances = eIdealD; - const W2 = getWeightMatrix(eIdealD); - self2.weights = W2; - const mds = new MDS({ linkDistance, distances: eIdealD }); - let positions = mds.layout(); - positions.forEach((p4) => { - if (isNaN4(p4[0])) { - p4[0] = Math.random() * linkDistance; - } - if (isNaN4(p4[1])) { - p4[1] = Math.random() * linkDistance; - } - }); - self2.positions = positions; - positions.forEach((p4, i4) => { - nodes[i4].x = p4[0] + center2[0]; - nodes[i4].y = p4[1] + center2[1]; - }); - positions.forEach((p4) => { - p4[0] -= positions[focusIndex][0]; - p4[1] -= positions[focusIndex][1]; - }); - self2.run(); - const preventOverlap = self2.preventOverlap; - const nodeSize = self2.nodeSize; - let nodeSizeFunc; - const strictRadial = self2.strictRadial; - if (preventOverlap) { - const nodeSpacing = self2.nodeSpacing; - let nodeSpacingFunc; - if (isNumber3(nodeSpacing)) { - nodeSpacingFunc = () => nodeSpacing; - } else if (isFunction(nodeSpacing)) { - nodeSpacingFunc = nodeSpacing; - } else { - nodeSpacingFunc = () => 0; - } - if (!nodeSize) { - nodeSizeFunc = (d3) => { - if (d3.size) { - if (isArray2(d3.size)) { - const res = d3.size[0] > d3.size[1] ? d3.size[0] : d3.size[1]; - return res + nodeSpacingFunc(d3); - } - if (isObject2(d3.size)) { - const res = d3.size.width > d3.size.height ? d3.size.width : d3.size.height; - return res + nodeSpacingFunc(d3); - } - return d3.size + nodeSpacingFunc(d3); - } - return 10 + nodeSpacingFunc(d3); - }; - } else if (isArray2(nodeSize)) { - nodeSizeFunc = (d3) => { - const res = nodeSize[0] > nodeSize[1] ? nodeSize[0] : nodeSize[1]; - return res + nodeSpacingFunc(d3); - }; - } else { - nodeSizeFunc = (d3) => nodeSize + nodeSpacingFunc(d3); - } - const nonoverlapForceParams = { - nodes, - nodeSizeFunc, - adjMatrix: adjMatrix3, - positions, - radii, - height, - width: width2, - strictRadial, - focusID: focusIndex, - iterations: self2.maxPreventOverlapIteration || 200, - k: positions.length / 4.5 - }; - const nonoverlapForce = new RadialNonoverlapForce(nonoverlapForceParams); - positions = nonoverlapForce.layout(); - } - positions.forEach((p4, i4) => { - nodes[i4].x = p4[0] + center2[0]; - nodes[i4].y = p4[1] + center2[1]; - }); - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes, - edges - }; - } - run() { - const self2 = this; - const maxIteration = self2.maxIteration; - const positions = self2.positions || []; - const W2 = self2.weights || []; - const eIdealDis = self2.eIdealDistances || []; - const radii = self2.radii || []; - for (let i4 = 0; i4 <= maxIteration; i4++) { - const param = i4 / maxIteration; - self2.oneIteration(param, positions, radii, eIdealDis, W2); - } - } - oneIteration(param, positions, radii, D3, W2) { - const self2 = this; - const vparam = 1 - param; - const focusIndex = self2.focusIndex; - positions.forEach((v3, i4) => { - const originDis = getEDistance(v3, [0, 0]); - const reciODis = originDis === 0 ? 0 : 1 / originDis; - if (i4 === focusIndex) { - return; - } - let xMolecule = 0; - let yMolecule = 0; - let denominator = 0; - positions.forEach((u3, j4) => { - if (i4 === j4) { - return; - } - const edis = getEDistance(v3, u3); - const reciEdis = edis === 0 ? 0 : 1 / edis; - const idealDis = D3[j4][i4]; - denominator += W2[i4][j4]; - xMolecule += W2[i4][j4] * (u3[0] + idealDis * (v3[0] - u3[0]) * reciEdis); - yMolecule += W2[i4][j4] * (u3[1] + idealDis * (v3[1] - u3[1]) * reciEdis); - }); - const reciR = radii[i4] === 0 ? 0 : 1 / radii[i4]; - denominator *= vparam; - denominator += param * reciR * reciR; - xMolecule *= vparam; - xMolecule += param * reciR * v3[0] * reciODis; - v3[0] = xMolecule / denominator; - yMolecule *= vparam; - yMolecule += param * reciR * v3[1] * reciODis; - v3[1] = yMolecule / denominator; - }); - } - eIdealDisMatrix() { - const self2 = this; - const nodes = self2.nodes; - if (!nodes) - return []; - const D3 = self2.distances; - const linkDis = self2.linkDistance; - const radii = self2.radii || []; - const unitRadius = self2.unitRadius || 50; - const result = []; - if (D3) { - D3.forEach((row, i4) => { - const newRow = []; - row.forEach((v3, j4) => { - if (i4 === j4) { - newRow.push(0); - } else if (radii[i4] === radii[j4]) { - if (self2.sortBy === "data") { - newRow.push(v3 * (Math.abs(i4 - j4) * self2.sortStrength) / (radii[i4] / unitRadius)); - } else if (self2.sortBy) { - let iValue = nodes[i4][self2.sortBy] || 0; - let jValue = nodes[j4][self2.sortBy] || 0; - if (isString(iValue)) { - iValue = iValue.charCodeAt(0); - } - if (isString(jValue)) { - jValue = jValue.charCodeAt(0); - } - newRow.push(v3 * (Math.abs(iValue - jValue) * self2.sortStrength) / (radii[i4] / unitRadius)); - } else { - newRow.push(v3 * linkDis / (radii[i4] / unitRadius)); - } - } else { - const link = (linkDis + unitRadius) / 2; - newRow.push(v3 * link); - } - }); - result.push(newRow); - }); - } - return result; - } - handleInfinity(matrix, focusIndex, step) { - const length5 = matrix.length; - for (let i4 = 0; i4 < length5; i4++) { - if (matrix[focusIndex][i4] === Infinity) { - matrix[focusIndex][i4] = step; - matrix[i4][focusIndex] = step; - for (let j4 = 0; j4 < length5; j4++) { - if (matrix[i4][j4] !== Infinity && matrix[focusIndex][j4] === Infinity) { - matrix[focusIndex][j4] = step + matrix[i4][j4]; - matrix[j4][focusIndex] = step + matrix[i4][j4]; - } - } - } - } - for (let i4 = 0; i4 < length5; i4++) { - if (i4 === focusIndex) { - continue; - } - for (let j4 = 0; j4 < length5; j4++) { - if (matrix[i4][j4] === Infinity) { - let minus = Math.abs(matrix[focusIndex][i4] - matrix[focusIndex][j4]); - minus = minus === 0 ? 1 : minus; - matrix[i4][j4] = minus; - } - } - } - } - maxToFocus(matrix, focusIndex) { - let max8 = 0; - for (let i4 = 0; i4 < matrix[focusIndex].length; i4++) { - if (matrix[focusIndex][i4] === Infinity) { - continue; - } - max8 = matrix[focusIndex][i4] > max8 ? matrix[focusIndex][i4] : max8; - } - return max8; - } - getType() { - return "radial"; - } -}; - -// node_modules/@antv/layout/es/layout/concentric.js -var ConcentricLayout = class extends Base3 { - constructor(options) { - super(); - this.nodeSize = 30; - this.minNodeSpacing = 10; - this.preventOverlap = false; - this.equidistant = false; - this.startAngle = 3 / 2 * Math.PI; - this.clockwise = true; - this.sortBy = "degree"; - this.nodes = []; - this.edges = []; - this.width = 300; - this.height = 300; - this.onLayoutEnd = () => { - }; - this.updateCfg(options); - } - getDefaultCfg() { - return { - nodeSize: 30, - minNodeSpacing: 10, - preventOverlap: false, - sweep: void 0, - equidistant: false, - startAngle: 3 / 2 * Math.PI, - clockwise: true, - maxLevelDiff: void 0, - sortBy: "degree" - }; - } - execute() { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges; - const n3 = nodes.length; - if (n3 === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (!self2.center) { - self2.center = [self2.width / 2, self2.height / 2]; - } - const center2 = self2.center; - if (n3 === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - const layoutNodes2 = []; - let maxNodeSize; - if (isArray2(self2.nodeSize)) { - maxNodeSize = Math.max(self2.nodeSize[0], self2.nodeSize[1]); - } else { - maxNodeSize = self2.nodeSize; - } - nodes.forEach((node) => { - layoutNodes2.push(node); - let nodeSize = maxNodeSize; - if (isArray2(node.size)) { - nodeSize = Math.max(node.size[0], node.size[1]); - } else if (isNumber3(node.size)) { - nodeSize = node.size; - } else if (isObject2(node.size)) { - nodeSize = Math.max(node.size.width, node.size.height); - } - maxNodeSize = Math.max(maxNodeSize, nodeSize); - }); - self2.clockwise = self2.counterclockwise !== void 0 ? !self2.counterclockwise : self2.clockwise; - const nodeMap = {}; - const indexMap = {}; - layoutNodes2.forEach((node, i4) => { - nodeMap[node.id] = node; - indexMap[node.id] = i4; - }); - if (self2.sortBy === "degree" || !isString(self2.sortBy) || layoutNodes2[0][self2.sortBy] === void 0) { - self2.sortBy = "degree"; - if (!isNumber3(nodes[0].degree)) { - const values2 = getDegree3(nodes.length, indexMap, edges); - layoutNodes2.forEach((node, i4) => { - node.degree = values2[i4]; - }); - } - } - layoutNodes2.sort((n1, n22) => n22[self2.sortBy] - n1[self2.sortBy]); - self2.maxValueNode = layoutNodes2[0]; - self2.maxLevelDiff = self2.maxLevelDiff || self2.maxValueNode[self2.sortBy] / 4; - const levels = [[]]; - let currentLevel = levels[0]; - layoutNodes2.forEach((node) => { - if (currentLevel.length > 0) { - const diff2 = Math.abs(currentLevel[0][self2.sortBy] - node[self2.sortBy]); - if (self2.maxLevelDiff && diff2 >= self2.maxLevelDiff) { - currentLevel = []; - levels.push(currentLevel); - } - } - currentLevel.push(node); - }); - let minDist = maxNodeSize + self2.minNodeSpacing; - if (!self2.preventOverlap) { - const firstLvlHasMulti = levels.length > 0 && levels[0].length > 1; - const maxR = Math.min(self2.width, self2.height) / 2 - minDist; - const rStep = maxR / (levels.length + (firstLvlHasMulti ? 1 : 0)); - minDist = Math.min(minDist, rStep); - } - let r4 = 0; - levels.forEach((level) => { - let sweep = self2.sweep; - if (sweep === void 0) { - sweep = 2 * Math.PI - 2 * Math.PI / level.length; - } - const dTheta = level.dTheta = sweep / Math.max(1, level.length - 1); - if (level.length > 1 && self2.preventOverlap) { - const dcos = Math.cos(dTheta) - Math.cos(0); - const dsin = Math.sin(dTheta) - Math.sin(0); - const rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); - r4 = Math.max(rMin, r4); - } - level.r = r4; - r4 += minDist; - }); - if (self2.equidistant) { - let rDeltaMax = 0; - let rr = 0; - for (let i4 = 0; i4 < levels.length; i4++) { - const level = levels[i4]; - const rDelta = level.r - rr; - rDeltaMax = Math.max(rDeltaMax, rDelta); - } - rr = 0; - levels.forEach((level, i4) => { - if (i4 === 0) { - rr = level.r; - } - level.r = rr; - rr += rDeltaMax; - }); - } - levels.forEach((level) => { - const dTheta = level.dTheta; - const rr = level.r; - level.forEach((node, j4) => { - const theta = self2.startAngle + (self2.clockwise ? 1 : -1) * dTheta * j4; - node.x = center2[0] + rr * Math.cos(theta); - node.y = center2[1] + rr * Math.sin(theta); - }); - }); - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes, - edges - }; - } - getType() { - return "concentric"; - } -}; - -// node_modules/@antv/layout/es/layout/mds.js -var MDSLayout = class extends Base3 { - constructor(options) { - super(); - this.center = [0, 0]; - this.linkDistance = 50; - this.nodes = []; - this.edges = []; - this.onLayoutEnd = () => { - }; - this.updateCfg(options); - } - getDefaultCfg() { - return { - center: [0, 0], - linkDistance: 50 - }; - } - execute() { - const self2 = this; - const { nodes, edges = [] } = self2; - const center2 = self2.center; - if (!nodes || nodes.length === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - const linkDistance = self2.linkDistance; - const adjMatrix3 = getAdjMatrix3({ nodes, edges }, false); - const distances = floydWarshall5(adjMatrix3); - self2.handleInfinity(distances); - const scaledD = scaleMatrix3(distances, linkDistance); - self2.scaledDistances = scaledD; - const positions = self2.runMDS(); - self2.positions = positions; - positions.forEach((p4, i4) => { - nodes[i4].x = p4[0] + center2[0]; - nodes[i4].y = p4[1] + center2[1]; - }); - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return { - nodes, - edges - }; - } - runMDS() { - const self2 = this; - const dimension = 2; - const distances = self2.scaledDistances; - const M3 = Matrix2.mul(Matrix2.pow(distances, 2), -0.5); - const rowMeans = M3.mean("row"); - const colMeans = M3.mean("column"); - const totalMean = M3.mean(); - M3.add(totalMean).subRowVector(rowMeans).subColumnVector(colMeans); - const ret = new SingularValueDecomposition(M3); - const eigenValues = Matrix2.sqrt(ret.diagonalMatrix).diagonal(); - return ret.leftSingularVectors.toJSON().map((row) => { - return Matrix2.mul([row], [eigenValues]).toJSON()[0].splice(0, dimension); - }); - } - handleInfinity(distances) { - let maxDistance = -999999; - distances.forEach((row) => { - row.forEach((value2) => { - if (value2 === Infinity) { - return; - } - if (maxDistance < value2) { - maxDistance = value2; - } - }); - }); - distances.forEach((row, i4) => { - row.forEach((value2, j4) => { - if (value2 === Infinity) { - distances[i4][j4] = maxDistance; - } - }); - }); - } - getType() { - return "mds"; - } -}; - -// node_modules/@antv/layout/es/layout/fruchterman.js -var SPEED_DIVISOR2 = 800; -var FruchtermanLayout = class extends Base3 { - constructor(options) { - super(); - this.maxIteration = 1e3; - this.workerEnabled = false; - this.gravity = 10; - this.speed = 5; - this.clustering = false; - this.clusterGravity = 10; - this.nodes = []; - this.edges = []; - this.width = 300; - this.height = 300; - this.nodeMap = {}; - this.nodeIdxMap = {}; - this.onLayoutEnd = () => { - }; - this.tick = () => { - }; - this.updateCfg(options); - } - getDefaultCfg() { - return { - maxIteration: 1e3, - gravity: 10, - speed: 1, - clustering: false, - clusterGravity: 10 - }; - } - execute() { - var _a6, _b; - const self2 = this; - const nodes = self2.nodes; - if (self2.timeInterval !== void 0 && typeof window !== "undefined") { - window.clearInterval(self2.timeInterval); - } - if (!nodes || nodes.length === 0) { - (_a6 = self2.onLayoutEnd) === null || _a6 === void 0 ? void 0 : _a6.call(self2); - return; - } - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (!self2.center) { - self2.center = [self2.width / 2, self2.height / 2]; - } - const center2 = self2.center; - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - (_b = self2.onLayoutEnd) === null || _b === void 0 ? void 0 : _b.call(self2); - return; - } - const nodeMap = {}; - const nodeIdxMap = {}; - nodes.forEach((node, i4) => { - if (!isNumber3(node.x)) - node.x = Math.random() * this.width; - if (!isNumber3(node.y)) - node.y = Math.random() * this.height; - nodeMap[node.id] = node; - nodeIdxMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - self2.nodeIdxMap = nodeIdxMap; - return self2.run(); - } - run() { - var _a6; - const self2 = this; - const nodes = self2.nodes; - if (!nodes) - return; - const { edges, maxIteration, workerEnabled, clustering } = self2; - const clusterMap = {}; - if (clustering) { - nodes.forEach((n3) => { - if (clusterMap[n3.cluster] === void 0) { - clusterMap[n3.cluster] = { - name: n3.cluster, - cx: 0, - cy: 0, - count: 0 - }; - } - }); - } - if (workerEnabled) { - for (let i4 = 0; i4 < maxIteration; i4++) { - self2.runOneStep(clusterMap); - } - (_a6 = self2.onLayoutEnd) === null || _a6 === void 0 ? void 0 : _a6.call(self2); - } else { - if (typeof window === "undefined") - return; - let iter = 0; - this.timeInterval = window.setInterval(() => { - var _a7; - self2.runOneStep(clusterMap); - iter++; - if (iter >= maxIteration) { - (_a7 = self2.onLayoutEnd) === null || _a7 === void 0 ? void 0 : _a7.call(self2); - window.clearInterval(self2.timeInterval); - } - }, 0); - } - return { - nodes, - edges - }; - } - runOneStep(clusterMap) { - var _a6; - const self2 = this; - const nodes = self2.nodes; - if (!nodes) - return; - const { edges, center: center2, gravity, speed, clustering } = self2; - const area2 = self2.height * self2.width; - const maxDisplace = Math.sqrt(area2) / 10; - const k22 = area2 / (nodes.length + 1); - const k4 = Math.sqrt(k22); - const displacements = []; - nodes.forEach((_8, j4) => { - displacements[j4] = { x: 0, y: 0 }; - }); - self2.applyCalculate(nodes, edges, displacements, k4, k22); - if (clustering) { - for (const key in clusterMap) { - clusterMap[key].cx = 0; - clusterMap[key].cy = 0; - clusterMap[key].count = 0; - } - nodes.forEach((n3) => { - const c5 = clusterMap[n3.cluster]; - if (isNumber3(n3.x)) { - c5.cx += n3.x; - } - if (isNumber3(n3.y)) { - c5.cy += n3.y; - } - c5.count++; - }); - for (const key in clusterMap) { - clusterMap[key].cx /= clusterMap[key].count; - clusterMap[key].cy /= clusterMap[key].count; - } - const clusterGravity = self2.clusterGravity || gravity; - nodes.forEach((n3, j4) => { - if (!isNumber3(n3.x) || !isNumber3(n3.y)) - return; - const c5 = clusterMap[n3.cluster]; - const distLength = Math.sqrt((n3.x - c5.cx) * (n3.x - c5.cx) + (n3.y - c5.cy) * (n3.y - c5.cy)); - const gravityForce = k4 * clusterGravity; - displacements[j4].x -= gravityForce * (n3.x - c5.cx) / distLength; - displacements[j4].y -= gravityForce * (n3.y - c5.cy) / distLength; - }); - } - nodes.forEach((n3, j4) => { - if (!isNumber3(n3.x) || !isNumber3(n3.y)) - return; - const gravityForce = 0.01 * k4 * gravity; - displacements[j4].x -= gravityForce * (n3.x - center2[0]); - displacements[j4].y -= gravityForce * (n3.y - center2[1]); - }); - nodes.forEach((n3, j4) => { - if (isNumber3(n3.fx) && isNumber3(n3.fy)) { - n3.x = n3.fx; - n3.y = n3.fy; - return; - } - if (!isNumber3(n3.x) || !isNumber3(n3.y)) - return; - const distLength = Math.sqrt(displacements[j4].x * displacements[j4].x + displacements[j4].y * displacements[j4].y); - if (distLength > 0) { - const limitedDist = Math.min(maxDisplace * (speed / SPEED_DIVISOR2), distLength); - n3.x += displacements[j4].x / distLength * limitedDist; - n3.y += displacements[j4].y / distLength * limitedDist; - } - }); - (_a6 = self2.tick) === null || _a6 === void 0 ? void 0 : _a6.call(self2); - } - applyCalculate(nodes, edges, displacements, k4, k22) { - const self2 = this; - self2.calRepulsive(nodes, displacements, k22); - if (edges) - self2.calAttractive(edges, displacements, k4); - } - calRepulsive(nodes, displacements, k22) { - nodes.forEach((v3, i4) => { - displacements[i4] = { x: 0, y: 0 }; - nodes.forEach((u3, j4) => { - if (i4 === j4) { - return; - } - if (!isNumber3(v3.x) || !isNumber3(u3.x) || !isNumber3(v3.y) || !isNumber3(u3.y)) { - return; - } - let vecX = v3.x - u3.x; - let vecY = v3.y - u3.y; - let vecLengthSqr = vecX * vecX + vecY * vecY; - if (vecLengthSqr === 0) { - vecLengthSqr = 1; - const sign = i4 > j4 ? 1 : -1; - vecX = 0.01 * sign; - vecY = 0.01 * sign; - } - const common2 = k22 / vecLengthSqr; - displacements[i4].x += vecX * common2; - displacements[i4].y += vecY * common2; - }); - }); - } - calAttractive(edges, displacements, k4) { - edges.forEach((e4) => { - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - if (!source || !target) - return; - const uIndex = this.nodeIdxMap[source]; - const vIndex = this.nodeIdxMap[target]; - if (uIndex === vIndex) { - return; - } - const u3 = this.nodeMap[source]; - const v3 = this.nodeMap[target]; - if (!isNumber3(v3.x) || !isNumber3(u3.x) || !isNumber3(v3.y) || !isNumber3(u3.y)) { - return; - } - const vecX = v3.x - u3.x; - const vecY = v3.y - u3.y; - const vecLength = Math.sqrt(vecX * vecX + vecY * vecY); - const common2 = vecLength * vecLength / k4; - displacements[vIndex].x -= vecX / vecLength * common2; - displacements[vIndex].y -= vecY / vecLength * common2; - displacements[uIndex].x += vecX / vecLength * common2; - displacements[uIndex].y += vecY / vecLength * common2; - }); - } - stop() { - if (this.timeInterval && typeof window !== "undefined") { - window.clearInterval(this.timeInterval); - } - } - destroy() { - const self2 = this; - self2.stop(); - self2.tick = null; - self2.nodes = null; - self2.edges = null; - self2.destroyed = true; - } - getType() { - return "fruchterman"; - } -}; - -// node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js -function _initializerDefineProperty(target, property, descriptor, context) { - if (!descriptor) - return; - Object.defineProperty(target, property, { - enumerable: descriptor.enumerable, - configurable: descriptor.configurable, - writable: descriptor.writable, - value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 - }); -} - -// node_modules/@babel/runtime/helpers/esm/classCallCheck.js -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -// node_modules/@babel/runtime/helpers/esm/createClass.js -function _defineProperties(target, props) { - for (var i4 = 0; i4 < props.length; i4++) { - var descriptor = props[i4]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) - _defineProperties(Constructor.prototype, protoProps); - if (staticProps) - _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} - -// node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { - var desc = {}; - Object.keys(descriptor).forEach(function(key) { - desc[key] = descriptor[key]; - }); - desc.enumerable = !!desc.enumerable; - desc.configurable = !!desc.configurable; - if ("value" in desc || desc.initializer) { - desc.writable = true; - } - desc = decorators.slice().reverse().reduce(function(desc2, decorator) { - return decorator(target, property, desc2) || desc2; - }, desc); - if (context && desc.initializer !== void 0) { - desc.value = desc.initializer ? desc.initializer.call(context) : void 0; - desc.initializer = void 0; - } - if (desc.initializer === void 0) { - Object.defineProperty(target, property, desc); - desc = null; - } - return desc; -} - -// node_modules/reflect-metadata/Reflect.js -var Reflect2; -(function(Reflect3) { - (function(factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : Function("return this;")(); - var exporter = makeExporter(Reflect3); - if (typeof root.Reflect === "undefined") { - root.Reflect = Reflect3; - } else { - exporter = makeExporter(root.Reflect, exporter); - } - factory(exporter); - function makeExporter(target, previous) { - return function(key, value2) { - if (typeof target[key] !== "function") { - Object.defineProperty(target, key, { configurable: true, writable: true, value: value2 }); - } - if (previous) - previous(key, value2); - }; - } - })(function(exporter) { - var hasOwn = Object.prototype.hasOwnProperty; - var supportsSymbol = typeof Symbol === "function"; - var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive"; - var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator"; - var supportsCreate = typeof Object.create === "function"; - var supportsProto = { __proto__: [] } instanceof Array; - var downLevel = !supportsCreate && !supportsProto; - var HashMap = { - create: supportsCreate ? function() { - return MakeDictionary(Object.create(null)); - } : supportsProto ? function() { - return MakeDictionary({ __proto__: null }); - } : function() { - return MakeDictionary({}); - }, - has: downLevel ? function(map6, key) { - return hasOwn.call(map6, key); - } : function(map6, key) { - return key in map6; - }, - get: downLevel ? function(map6, key) { - return hasOwn.call(map6, key) ? map6[key] : void 0; - } : function(map6, key) { - return map6[key]; - } - }; - var functionPrototype = Object.getPrototypeOf(Function); - var usePolyfill = typeof process === "object" && process.env && process.env["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true"; - var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); - var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); - var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); - var Metadata = new _WeakMap(); - function decorate(decorators, target, propertyKey, attributes) { - if (!IsUndefined(propertyKey)) { - if (!IsArray(decorators)) - throw new TypeError(); - if (!IsObject(target)) - throw new TypeError(); - if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes)) - throw new TypeError(); - if (IsNull(attributes)) - attributes = void 0; - propertyKey = ToPropertyKey(propertyKey); - return DecorateProperty(decorators, target, propertyKey, attributes); - } else { - if (!IsArray(decorators)) - throw new TypeError(); - if (!IsConstructor(target)) - throw new TypeError(); - return DecorateConstructor(decorators, target); - } - } - exporter("decorate", decorate); - function metadata(metadataKey, metadataValue) { - function decorator(target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey)) - throw new TypeError(); - OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); - } - return decorator; - } - exporter("metadata", metadata); - function defineMetadata(metadataKey, metadataValue, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); - } - exporter("defineMetadata", defineMetadata); - function hasMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryHasMetadata(metadataKey, target, propertyKey); - } - exporter("hasMetadata", hasMetadata); - function hasOwnMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey); - } - exporter("hasOwnMetadata", hasOwnMetadata); - function getMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryGetMetadata(metadataKey, target, propertyKey); - } - exporter("getMetadata", getMetadata); - function getOwnMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey); - } - exporter("getOwnMetadata", getOwnMetadata); - function getMetadataKeys(target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryMetadataKeys(target, propertyKey); - } - exporter("getMetadataKeys", getMetadataKeys); - function getOwnMetadataKeys(target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryOwnMetadataKeys(target, propertyKey); - } - exporter("getOwnMetadataKeys", getOwnMetadataKeys); - function deleteMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - var metadataMap = GetOrCreateMetadataMap(target, propertyKey, false); - if (IsUndefined(metadataMap)) - return false; - if (!metadataMap.delete(metadataKey)) - return false; - if (metadataMap.size > 0) - return true; - var targetMetadata = Metadata.get(target); - targetMetadata.delete(propertyKey); - if (targetMetadata.size > 0) - return true; - Metadata.delete(target); - return true; - } - exporter("deleteMetadata", deleteMetadata); - function DecorateConstructor(decorators, target) { - for (var i4 = decorators.length - 1; i4 >= 0; --i4) { - var decorator = decorators[i4]; - var decorated = decorator(target); - if (!IsUndefined(decorated) && !IsNull(decorated)) { - if (!IsConstructor(decorated)) - throw new TypeError(); - target = decorated; - } - } - return target; - } - function DecorateProperty(decorators, target, propertyKey, descriptor) { - for (var i4 = decorators.length - 1; i4 >= 0; --i4) { - var decorator = decorators[i4]; - var decorated = decorator(target, propertyKey, descriptor); - if (!IsUndefined(decorated) && !IsNull(decorated)) { - if (!IsObject(decorated)) - throw new TypeError(); - descriptor = decorated; - } - } - return descriptor; - } - function GetOrCreateMetadataMap(O3, P4, Create) { - var targetMetadata = Metadata.get(O3); - if (IsUndefined(targetMetadata)) { - if (!Create) - return void 0; - targetMetadata = new _Map(); - Metadata.set(O3, targetMetadata); - } - var metadataMap = targetMetadata.get(P4); - if (IsUndefined(metadataMap)) { - if (!Create) - return void 0; - metadataMap = new _Map(); - targetMetadata.set(P4, metadataMap); - } - return metadataMap; - } - function OrdinaryHasMetadata(MetadataKey, O3, P4) { - var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O3, P4); - if (hasOwn2) - return true; - var parent = OrdinaryGetPrototypeOf(O3); - if (!IsNull(parent)) - return OrdinaryHasMetadata(MetadataKey, parent, P4); - return false; - } - function OrdinaryHasOwnMetadata(MetadataKey, O3, P4) { - var metadataMap = GetOrCreateMetadataMap(O3, P4, false); - if (IsUndefined(metadataMap)) - return false; - return ToBoolean(metadataMap.has(MetadataKey)); - } - function OrdinaryGetMetadata(MetadataKey, O3, P4) { - var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O3, P4); - if (hasOwn2) - return OrdinaryGetOwnMetadata(MetadataKey, O3, P4); - var parent = OrdinaryGetPrototypeOf(O3); - if (!IsNull(parent)) - return OrdinaryGetMetadata(MetadataKey, parent, P4); - return void 0; - } - function OrdinaryGetOwnMetadata(MetadataKey, O3, P4) { - var metadataMap = GetOrCreateMetadataMap(O3, P4, false); - if (IsUndefined(metadataMap)) - return void 0; - return metadataMap.get(MetadataKey); - } - function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O3, P4) { - var metadataMap = GetOrCreateMetadataMap(O3, P4, true); - metadataMap.set(MetadataKey, MetadataValue); - } - function OrdinaryMetadataKeys(O3, P4) { - var ownKeys12 = OrdinaryOwnMetadataKeys(O3, P4); - var parent = OrdinaryGetPrototypeOf(O3); - if (parent === null) - return ownKeys12; - var parentKeys = OrdinaryMetadataKeys(parent, P4); - if (parentKeys.length <= 0) - return ownKeys12; - if (ownKeys12.length <= 0) - return parentKeys; - var set10 = new _Set(); - var keys2 = []; - for (var _i = 0, ownKeys_1 = ownKeys12; _i < ownKeys_1.length; _i++) { - var key = ownKeys_1[_i]; - var hasKey = set10.has(key); - if (!hasKey) { - set10.add(key); - keys2.push(key); - } - } - for (var _a6 = 0, parentKeys_1 = parentKeys; _a6 < parentKeys_1.length; _a6++) { - var key = parentKeys_1[_a6]; - var hasKey = set10.has(key); - if (!hasKey) { - set10.add(key); - keys2.push(key); - } - } - return keys2; - } - function OrdinaryOwnMetadataKeys(O3, P4) { - var keys2 = []; - var metadataMap = GetOrCreateMetadataMap(O3, P4, false); - if (IsUndefined(metadataMap)) - return keys2; - var keysObj = metadataMap.keys(); - var iterator = GetIterator(keysObj); - var k4 = 0; - while (true) { - var next = IteratorStep(iterator); - if (!next) { - keys2.length = k4; - return keys2; - } - var nextValue = IteratorValue(next); - try { - keys2[k4] = nextValue; - } catch (e4) { - try { - IteratorClose(iterator); - } finally { - throw e4; - } - } - k4++; - } - } - function Type2(x6) { - if (x6 === null) - return 1; - switch (typeof x6) { - case "undefined": - return 0; - case "boolean": - return 2; - case "string": - return 3; - case "symbol": - return 4; - case "number": - return 5; - case "object": - return x6 === null ? 1 : 6; - default: - return 6; - } - } - function IsUndefined(x6) { - return x6 === void 0; - } - function IsNull(x6) { - return x6 === null; - } - function IsSymbol(x6) { - return typeof x6 === "symbol"; - } - function IsObject(x6) { - return typeof x6 === "object" ? x6 !== null : typeof x6 === "function"; - } - function ToPrimitive(input, PreferredType) { - switch (Type2(input)) { - case 0: - return input; - case 1: - return input; - case 2: - return input; - case 3: - return input; - case 4: - return input; - case 5: - return input; - } - var hint = PreferredType === 3 ? "string" : PreferredType === 5 ? "number" : "default"; - var exoticToPrim = GetMethod(input, toPrimitiveSymbol); - if (exoticToPrim !== void 0) { - var result = exoticToPrim.call(input, hint); - if (IsObject(result)) - throw new TypeError(); - return result; - } - return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint); - } - function OrdinaryToPrimitive(O3, hint) { - if (hint === "string") { - var toString_1 = O3.toString; - if (IsCallable(toString_1)) { - var result = toString_1.call(O3); - if (!IsObject(result)) - return result; - } - var valueOf = O3.valueOf; - if (IsCallable(valueOf)) { - var result = valueOf.call(O3); - if (!IsObject(result)) - return result; - } - } else { - var valueOf = O3.valueOf; - if (IsCallable(valueOf)) { - var result = valueOf.call(O3); - if (!IsObject(result)) - return result; - } - var toString_2 = O3.toString; - if (IsCallable(toString_2)) { - var result = toString_2.call(O3); - if (!IsObject(result)) - return result; - } - } - throw new TypeError(); - } - function ToBoolean(argument) { - return !!argument; - } - function ToString(argument) { - return "" + argument; - } - function ToPropertyKey(argument) { - var key = ToPrimitive(argument, 3); - if (IsSymbol(key)) - return key; - return ToString(key); - } - function IsArray(argument) { - return Array.isArray ? Array.isArray(argument) : argument instanceof Object ? argument instanceof Array : Object.prototype.toString.call(argument) === "[object Array]"; - } - function IsCallable(argument) { - return typeof argument === "function"; - } - function IsConstructor(argument) { - return typeof argument === "function"; - } - function IsPropertyKey(argument) { - switch (Type2(argument)) { - case 3: - return true; - case 4: - return true; - default: - return false; - } - } - function GetMethod(V2, P4) { - var func = V2[P4]; - if (func === void 0 || func === null) - return void 0; - if (!IsCallable(func)) - throw new TypeError(); - return func; - } - function GetIterator(obj) { - var method = GetMethod(obj, iteratorSymbol); - if (!IsCallable(method)) - throw new TypeError(); - var iterator = method.call(obj); - if (!IsObject(iterator)) - throw new TypeError(); - return iterator; - } - function IteratorValue(iterResult) { - return iterResult.value; - } - function IteratorStep(iterator) { - var result = iterator.next(); - return result.done ? false : result; - } - function IteratorClose(iterator) { - var f3 = iterator["return"]; - if (f3) - f3.call(iterator); - } - function OrdinaryGetPrototypeOf(O3) { - var proto = Object.getPrototypeOf(O3); - if (typeof O3 !== "function" || O3 === functionPrototype) - return proto; - if (proto !== functionPrototype) - return proto; - var prototype = O3.prototype; - var prototypeProto = prototype && Object.getPrototypeOf(prototype); - if (prototypeProto == null || prototypeProto === Object.prototype) - return proto; - var constructor = prototypeProto.constructor; - if (typeof constructor !== "function") - return proto; - if (constructor === O3) - return proto; - return constructor; - } - function CreateMapPolyfill() { - var cacheSentinel = {}; - var arraySentinel = []; - var MapIterator = function() { - function MapIterator2(keys2, values2, selector) { - this._index = 0; - this._keys = keys2; - this._values = values2; - this._selector = selector; - } - MapIterator2.prototype["@@iterator"] = function() { - return this; - }; - MapIterator2.prototype[iteratorSymbol] = function() { - return this; - }; - MapIterator2.prototype.next = function() { - var index2 = this._index; - if (index2 >= 0 && index2 < this._keys.length) { - var result = this._selector(this._keys[index2], this._values[index2]); - if (index2 + 1 >= this._keys.length) { - this._index = -1; - this._keys = arraySentinel; - this._values = arraySentinel; - } else { - this._index++; - } - return { value: result, done: false }; - } - return { value: void 0, done: true }; - }; - MapIterator2.prototype.throw = function(error) { - if (this._index >= 0) { - this._index = -1; - this._keys = arraySentinel; - this._values = arraySentinel; - } - throw error; - }; - MapIterator2.prototype.return = function(value2) { - if (this._index >= 0) { - this._index = -1; - this._keys = arraySentinel; - this._values = arraySentinel; - } - return { value: value2, done: true }; - }; - return MapIterator2; - }(); - return function() { - function Map2() { - this._keys = []; - this._values = []; - this._cacheKey = cacheSentinel; - this._cacheIndex = -2; - } - Object.defineProperty(Map2.prototype, "size", { - get: function() { - return this._keys.length; - }, - enumerable: true, - configurable: true - }); - Map2.prototype.has = function(key) { - return this._find(key, false) >= 0; - }; - Map2.prototype.get = function(key) { - var index2 = this._find(key, false); - return index2 >= 0 ? this._values[index2] : void 0; - }; - Map2.prototype.set = function(key, value2) { - var index2 = this._find(key, true); - this._values[index2] = value2; - return this; - }; - Map2.prototype.delete = function(key) { - var index2 = this._find(key, false); - if (index2 >= 0) { - var size2 = this._keys.length; - for (var i4 = index2 + 1; i4 < size2; i4++) { - this._keys[i4 - 1] = this._keys[i4]; - this._values[i4 - 1] = this._values[i4]; - } - this._keys.length--; - this._values.length--; - if (key === this._cacheKey) { - this._cacheKey = cacheSentinel; - this._cacheIndex = -2; - } - return true; - } - return false; - }; - Map2.prototype.clear = function() { - this._keys.length = 0; - this._values.length = 0; - this._cacheKey = cacheSentinel; - this._cacheIndex = -2; - }; - Map2.prototype.keys = function() { - return new MapIterator(this._keys, this._values, getKey); - }; - Map2.prototype.values = function() { - return new MapIterator(this._keys, this._values, getValue3); - }; - Map2.prototype.entries = function() { - return new MapIterator(this._keys, this._values, getEntry); - }; - Map2.prototype["@@iterator"] = function() { - return this.entries(); - }; - Map2.prototype[iteratorSymbol] = function() { - return this.entries(); - }; - Map2.prototype._find = function(key, insert) { - if (this._cacheKey !== key) { - this._cacheIndex = this._keys.indexOf(this._cacheKey = key); - } - if (this._cacheIndex < 0 && insert) { - this._cacheIndex = this._keys.length; - this._keys.push(key); - this._values.push(void 0); - } - return this._cacheIndex; - }; - return Map2; - }(); - function getKey(key, _8) { - return key; - } - function getValue3(_8, value2) { - return value2; - } - function getEntry(key, value2) { - return [key, value2]; - } - } - function CreateSetPolyfill() { - return function() { - function Set2() { - this._map = new _Map(); - } - Object.defineProperty(Set2.prototype, "size", { - get: function() { - return this._map.size; - }, - enumerable: true, - configurable: true - }); - Set2.prototype.has = function(value2) { - return this._map.has(value2); - }; - Set2.prototype.add = function(value2) { - return this._map.set(value2, value2), this; - }; - Set2.prototype.delete = function(value2) { - return this._map.delete(value2); - }; - Set2.prototype.clear = function() { - this._map.clear(); - }; - Set2.prototype.keys = function() { - return this._map.keys(); - }; - Set2.prototype.values = function() { - return this._map.values(); - }; - Set2.prototype.entries = function() { - return this._map.entries(); - }; - Set2.prototype["@@iterator"] = function() { - return this.keys(); - }; - Set2.prototype[iteratorSymbol] = function() { - return this.keys(); - }; - return Set2; - }(); - } - function CreateWeakMapPolyfill() { - var UUID_SIZE = 16; - var keys2 = HashMap.create(); - var rootKey = CreateUniqueKey(); - return function() { - function WeakMap2() { - this._key = CreateUniqueKey(); - } - WeakMap2.prototype.has = function(target) { - var table = GetOrCreateWeakMapTable(target, false); - return table !== void 0 ? HashMap.has(table, this._key) : false; - }; - WeakMap2.prototype.get = function(target) { - var table = GetOrCreateWeakMapTable(target, false); - return table !== void 0 ? HashMap.get(table, this._key) : void 0; - }; - WeakMap2.prototype.set = function(target, value2) { - var table = GetOrCreateWeakMapTable(target, true); - table[this._key] = value2; - return this; - }; - WeakMap2.prototype.delete = function(target) { - var table = GetOrCreateWeakMapTable(target, false); - return table !== void 0 ? delete table[this._key] : false; - }; - WeakMap2.prototype.clear = function() { - this._key = CreateUniqueKey(); - }; - return WeakMap2; - }(); - function CreateUniqueKey() { - var key; - do - key = "@@WeakMap@@" + CreateUUID(); - while (HashMap.has(keys2, key)); - keys2[key] = true; - return key; - } - function GetOrCreateWeakMapTable(target, create8) { - if (!hasOwn.call(target, rootKey)) { - if (!create8) - return void 0; - Object.defineProperty(target, rootKey, { value: HashMap.create() }); - } - return target[rootKey]; - } - function FillRandomBytes(buffer, size2) { - for (var i4 = 0; i4 < size2; ++i4) - buffer[i4] = Math.random() * 255 | 0; - return buffer; - } - function GenRandomBytes(size2) { - if (typeof Uint8Array === "function") { - if (typeof crypto !== "undefined") - return crypto.getRandomValues(new Uint8Array(size2)); - if (typeof msCrypto !== "undefined") - return msCrypto.getRandomValues(new Uint8Array(size2)); - return FillRandomBytes(new Uint8Array(size2), size2); - } - return FillRandomBytes(new Array(size2), size2); - } - function CreateUUID() { - var data3 = GenRandomBytes(UUID_SIZE); - data3[6] = data3[6] & 79 | 64; - data3[8] = data3[8] & 191 | 128; - var result = ""; - for (var offset = 0; offset < UUID_SIZE; ++offset) { - var byte = data3[offset]; - if (offset === 4 || offset === 6 || offset === 8) - result += "-"; - if (byte < 16) - result += "0"; - result += byte.toString(16).toLowerCase(); - } - return result; - } - } - function MakeDictionary(obj) { - obj.__ = void 0; - delete obj.__; - return obj; - } - }); -})(Reflect2 || (Reflect2 = {})); - -// node_modules/@antv/g-webgpu-core/es/ComponentManager.js -var import_regenerator = __toModule(require_regenerator()); - -// node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value2 = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value2); - } else { - Promise.resolve(value2).then(_next, _throw); - } -} -function _asyncToGenerator(fn2) { - return function() { - var self2 = this, args = arguments; - return new Promise(function(resolve, reject) { - var gen = fn2.apply(self2, args); - function _next(value2) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value2); - } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(void 0); - }); - }; -} - -// node_modules/@antv/g-webgpu-core/es/Entity.js -var EMPTY = -1; -var entitySequence = 1; -function createEntity() { - return entitySequence++; -} - -// node_modules/@antv/g-webgpu-core/es/ComponentManager.js -var Component2 = function Component3(data3) { - _classCallCheck(this, Component3); -}; -var ComponentManager = /* @__PURE__ */ function() { - function ComponentManager2(clazz) { - _classCallCheck(this, ComponentManager2); - this.clazz = void 0; - this.components = []; - this.entities = []; - this.lookup = {}; - this.clazz = clazz; - } - _createClass(ComponentManager2, [{ - key: "clear", - value: function clear() { - this.components = []; - this.entities = []; - this.lookup = {}; - } - }, { - key: "contains", - value: function contains2(entity) { - return this.lookup[entity] > -1; - } - }, { - key: "create", - value: function create8(entity, data3) { - this.lookup[entity] = this.components.length; - var component2 = new this.clazz(data3 || {}); - this.components.push(component2); - this.entities.push(entity); - return component2; - } - }, { - key: "remove", - value: function remove2(entity) { - var componentIndex = this.lookup[entity]; - if (componentIndex > -1) { - if (componentIndex < this.components.length - 1) { - this.components[componentIndex] = this.components[this.components.length - 1]; - this.entities[componentIndex] = this.entities[this.entities.length - 1]; - this.lookup[this.entities[componentIndex]] = componentIndex; - } - } - this.components.pop(); - this.entities.pop(); - delete this.lookup[entity]; - } - }, { - key: "removeKeepSorted", - value: function removeKeepSorted(entity) { - var componentIndex = this.lookup[entity]; - if (componentIndex > -1) { - var entity2 = this.entities[componentIndex]; - if (componentIndex < this.components.length - 1) { - for (var _i = componentIndex + 1; _i < this.components.length; ++_i) { - this.components[_i - 1] = this.components[_i]; - } - for (var _i2 = componentIndex + 1; _i2 < this.entities.length; ++_i2) { - this.entities[_i2 - 1] = this.entities[_i2]; - this.lookup[this.entities[_i2 - 1]] = _i2 - 1; - } - } - this.components.pop(); - this.entities.pop(); - delete this.lookup[entity2]; - } - } - }, { - key: "moveItem", - value: function moveItem(srcIndex, destIndex) { - if (srcIndex === destIndex) { - return; - } - var srcComponent = this.components[srcIndex]; - var srcEntity = this.entities[srcIndex]; - var direction5 = srcIndex < destIndex ? 1 : -1; - for (var _i3 = srcIndex; _i3 !== destIndex; _i3 += direction5) { - var next = _i3 + direction5; - this.components[_i3] = this.components[next]; - this.entities[_i3] = this.entities[next]; - this.lookup[this.entities[_i3]] = _i3; - } - this.components[destIndex] = srcComponent; - this.entities[destIndex] = srcEntity; - this.lookup[srcEntity] = destIndex; - } - }, { - key: "getEntity", - value: function getEntity(index2) { - return this.entities[index2]; - } - }, { - key: "getComponent", - value: function getComponent(index2) { - return this.components[index2]; - } - }, { - key: "getComponentByEntity", - value: function getComponentByEntity(entity) { - var componentIndex = this.lookup[entity]; - if (componentIndex > -1) { - return this.components[componentIndex]; - } - return null; - } - }, { - key: "getCount", - value: function getCount() { - return this.components.length; - } - }, { - key: "getEntityByComponentIndex", - value: function getEntityByComponentIndex(componentIdx) { - for (var _i4 = 0, _Object$keys = Object.keys(this.lookup); _i4 < _Object$keys.length; _i4++) { - var _entity = _Object$keys[_i4]; - var entityInNum = Number(_entity); - if (this.lookup[entityInNum] === componentIdx) { - return entityInNum; - } - } - return EMPTY; - } - }, { - key: "find", - value: function find4(callback) { - for (var _i5 = 0; _i5 < this.getCount(); _i5++) { - var _component = this.getComponent(_i5); - if (callback(_component, _i5)) { - return _component; - } - } - return null; - } - }, { - key: "findIndex", - value: function findIndex2(callback) { - for (var _i6 = 0; _i6 < this.getCount(); _i6++) { - var _component2 = this.getComponent(_i6); - if (callback(_component2, _i6)) { - return _i6; - } - } - return -1; - } - }, { - key: "forEach", - value: function forEach4(callback) { - for (var _i7 = 0, _Object$keys2 = Object.keys(this.lookup); _i7 < _Object$keys2.length; _i7++) { - var _entity2 = _Object$keys2[_i7]; - var entityInNum = Number(_entity2); - var componentIndex = this.lookup[entityInNum]; - callback(entityInNum, this.getComponent(componentIndex)); - } - } - }, { - key: "forEachAsync", - value: function() { - var _forEachAsync = _asyncToGenerator(/* @__PURE__ */ import_regenerator.default.mark(function _callee(callback) { - var _i8, _Object$keys3, _entity3, entityInNum, componentIndex; - return import_regenerator.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _i8 = 0, _Object$keys3 = Object.keys(this.lookup); - case 1: - if (!(_i8 < _Object$keys3.length)) { - _context.next = 10; - break; - } - _entity3 = _Object$keys3[_i8]; - entityInNum = Number(_entity3); - componentIndex = this.lookup[entityInNum]; - _context.next = 7; - return callback(entityInNum, this.getComponent(componentIndex)); - case 7: - _i8++; - _context.next = 1; - break; - case 10: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function forEachAsync(_x) { - return _forEachAsync.apply(this, arguments); - } - return forEachAsync; - }() - }, { - key: "map", - value: function map6(callback) { - var result = []; - for (var _i9 = 0, _Object$keys4 = Object.keys(this.lookup); _i9 < _Object$keys4.length; _i9++) { - var _entity4 = _Object$keys4[_i9]; - var entityInNum = Number(_entity4); - var componentIndex = this.lookup[entityInNum]; - result.push(callback(entityInNum, this.getComponent(componentIndex))); - } - return result; - } - }]); - return ComponentManager2; -}(); - -// node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) - return arr; -} - -// node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js -function _iterableToArrayLimit(arr, i4) { - var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; - if (_i == null) - return; - var _arr = []; - var _n = true; - var _d = false; - var _s, _e; - try { - for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i4 && _arr.length === i4) - break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) - _i["return"](); - } finally { - if (_d) - throw _e; - } - } - return _arr; -} - -// node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js -function _arrayLikeToArray(arr, len5) { - if (len5 == null || len5 > arr.length) - len5 = arr.length; - for (var i4 = 0, arr2 = new Array(len5); i4 < len5; i4++) { - arr2[i4] = arr[i4]; - } - return arr2; -} - -// node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js -function _unsupportedIterableToArray(o3, minLen) { - if (!o3) - return; - if (typeof o3 === "string") - return _arrayLikeToArray(o3, minLen); - var n3 = Object.prototype.toString.call(o3).slice(8, -1); - if (n3 === "Object" && o3.constructor) - n3 = o3.constructor.name; - if (n3 === "Map" || n3 === "Set") - return Array.from(o3); - if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) - return _arrayLikeToArray(o3, minLen); -} - -// node_modules/@babel/runtime/helpers/esm/nonIterableRest.js -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - -// node_modules/@babel/runtime/helpers/esm/slicedToArray.js -function _slicedToArray(arr, i4) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i4) || _unsupportedIterableToArray(arr, i4) || _nonIterableRest(); -} - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/System.js -var import_regenerator2 = __toModule(require_regenerator()); -var import_inversify = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu-core/es/identifier.js -var IDENTIFIER = { - HierarchyComponentManager: Symbol("HierarchyComponentManager"), - TransformComponentManager: Symbol("TransformComponentManager"), - NameComponentManager: Symbol("NameComponentManager"), - SceneGraphSystem: Symbol("SceneGraphSystem"), - FrameGraphSystem: Symbol("FrameGraphSystem"), - ResourcePool: Symbol("ResourcePool"), - ResourceHandleComponentManager: Symbol("ResourceHandleComponentManager"), - PassNodeComponentManager: Symbol("PassNodeComponentManager"), - RendererSystem: Symbol("RendererSystem"), - RenderPass: Symbol("RenderPass"), - RenderPassFactory: Symbol("Factory"), - Renderable: Symbol("Factory"), - MeshSystem: Symbol("MeshSystem"), - MeshComponentManager: Symbol("MeshComponentManager"), - CullableComponentManager: Symbol("CullableComponentManager"), - Geometry: Symbol("Geometry"), - GeometrySystem: Symbol("GeometrySystem"), - GeometryComponentManager: Symbol("GeometryComponentManager"), - Material: Symbol("Material"), - MaterialSystem: Symbol("MaterialSystem"), - MaterialComponentManager: Symbol("MaterialComponentManager"), - ForwardRenderPath: Symbol("ForwardRenderPath"), - ComputeSystem: Symbol("ComputeSystem"), - ComputeComponentManager: Symbol("ComputeComponentManager"), - ComputeStrategy: Symbol("ComputeStrategy"), - Systems: Symbol("Systems"), - World: Symbol("World"), - RenderEngine: Symbol("RenderEngine"), - WebGPUEngine: Symbol("WebGPUEngine"), - WebGLEngine: Symbol("WebGLEngine"), - ShaderModuleService: Symbol("ShaderModuleService"), - ConfigService: Symbol("ConfigService"), - InteractorService: Symbol("InteractorService"), - IEventEmitter: Symbol("IEventEmitter"), - Light: Symbol("Light") -}; - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/FrameGraphHandle.js -var FrameGraphHandle = function FrameGraphHandle2() { - _classCallCheck(this, FrameGraphHandle2); - this.index = void 0; -}; - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/FrameGraphPass.js -var FrameGraphPass = function FrameGraphPass2() { - _classCallCheck(this, FrameGraphPass2); - this.name = void 0; - this.data = void 0; - this.execute = void 0; - this.tearDown = void 0; -}; - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/PassNode.js -var PassNode = /* @__PURE__ */ function() { - function PassNode2() { - _classCallCheck(this, PassNode2); - this.name = void 0; - this.refCount = 0; - this.hasSideEffect = false; - this.devirtualize = []; - this.destroy = []; - this.reads = []; - this.writes = []; - } - _createClass(PassNode2, [{ - key: "read", - value: function read(handle) { - if (!this.reads.find(function(h3) { - return h3.index === handle.index; - })) { - this.reads.push(handle); - } - return handle; - } - }, { - key: "sample", - value: function sample(handle) { - this.read(handle); - return handle; - } - }, { - key: "write", - value: function write(fg, handle) { - var existed = this.writes.find(function(h3) { - return h3.index === handle.index; - }); - if (existed) { - return handle; - } - var node = fg.getResourceNode(handle); - node.resource.version++; - if (node.resource.imported) { - this.hasSideEffect = true; - } - var r4 = fg.createResourceNode(node.resource); - var newNode = fg.getResourceNode(r4); - newNode.writer = this; - this.writes.push(r4); - return r4; - } - }]); - return PassNode2; -}(); - -// node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js -function _setPrototypeOf(o3, p4) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o4, p5) { - o4.__proto__ = p5; - return o4; - }; - return _setPrototypeOf(o3, p4); -} - -// node_modules/@babel/runtime/helpers/esm/inherits.js -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) - _setPrototypeOf(subClass, superClass); -} - -// node_modules/@babel/runtime/helpers/esm/typeof.js -function _typeof3(obj) { - "@babel/helpers - typeof"; - return _typeof3 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(obj2) { - return typeof obj2; - } : function(obj2) { - return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }, _typeof3(obj); -} - -// node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js -function _assertThisInitialized(self2) { - if (self2 === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self2; -} - -// node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js -function _possibleConstructorReturn(self2, call) { - if (call && (_typeof3(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return _assertThisInitialized(self2); -} - -// node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js -function _getPrototypeOf(o3) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf2(o4) { - return o4.__proto__ || Object.getPrototypeOf(o4); - }; - return _getPrototypeOf(o3); -} - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/VirtualResource.js -var VirtualResource = function VirtualResource2() { - _classCallCheck(this, VirtualResource2); - this.first = void 0; - this.last = void 0; -}; - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/ResourceEntry.js -function _createSuper(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var ResourceEntry = /* @__PURE__ */ function(_VirtualResource) { - _inherits(ResourceEntry2, _VirtualResource); - var _super = _createSuper(ResourceEntry2); - function ResourceEntry2() { - var _this; - _classCallCheck(this, ResourceEntry2); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - _this.version = 0; - _this.refs = 0; - _this.name = void 0; - _this.imported = void 0; - _this.priority = void 0; - _this.discardStart = true; - _this.discardEnd = false; - _this.descriptor = void 0; - _this.resource = void 0; - return _this; - } - _createClass(ResourceEntry2, [{ - key: "preExecuteDestroy", - value: function preExecuteDestroy() { - this.discardEnd = true; - } - }, { - key: "postExecuteDestroy", - value: function postExecuteDestroy() { - if (!this.imported) { - } - } - }, { - key: "postExecuteDevirtualize", - value: function postExecuteDevirtualize() { - this.discardStart = false; - } - }, { - key: "preExecuteDevirtualize", - value: function preExecuteDevirtualize() { - if (!this.imported) { - } - } - }]); - return ResourceEntry2; -}(VirtualResource); - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/ResourceNode.js -var ResourceNode = function ResourceNode2() { - _classCallCheck(this, ResourceNode2); - this.resource = void 0; - this.writer = void 0; - this.readerCount = 0; - this.version = void 0; -}; - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/System.js -var _dec; -var _dec2; -var _class2; -var _class22; -var _descriptor; -var _temp; -function _createForOfIteratorHelper(o3, allowArrayLike) { - var it; - if (typeof Symbol === "undefined" || o3[Symbol.iterator] == null) { - if (Array.isArray(o3) || (it = _unsupportedIterableToArray2(o3)) || allowArrayLike && o3 && typeof o3.length === "number") { - if (it) - o3 = it; - var i4 = 0; - var F3 = function F4() { - }; - return { s: F3, n: function n3() { - if (i4 >= o3.length) - return { done: true }; - return { done: false, value: o3[i4++] }; - }, e: function e4(_e) { - throw _e; - }, f: F3 }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var normalCompletion = true, didErr = false, err; - return { s: function s4() { - it = o3[Symbol.iterator](); - }, n: function n3() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, e: function e4(_e2) { - didErr = true; - err = _e2; - }, f: function f3() { - try { - if (!normalCompletion && it.return != null) - it.return(); - } finally { - if (didErr) - throw err; - } - } }; -} -function _unsupportedIterableToArray2(o3, minLen) { - if (!o3) - return; - if (typeof o3 === "string") - return _arrayLikeToArray2(o3, minLen); - var n3 = Object.prototype.toString.call(o3).slice(8, -1); - if (n3 === "Object" && o3.constructor) - n3 = o3.constructor.name; - if (n3 === "Map" || n3 === "Set") - return Array.from(o3); - if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) - return _arrayLikeToArray2(o3, minLen); -} -function _arrayLikeToArray2(arr, len5) { - if (len5 == null || len5 > arr.length) - len5 = arr.length; - for (var i4 = 0, arr2 = new Array(len5); i4 < len5; i4++) { - arr2[i4] = arr[i4]; - } - return arr2; -} -var FrameGraphSystem = (_dec = (0, import_inversify.injectable)(), _dec2 = (0, import_inversify.inject)(IDENTIFIER.RenderEngine), _dec(_class2 = (_class22 = (_temp = /* @__PURE__ */ function() { - function FrameGraphSystem2() { - _classCallCheck(this, FrameGraphSystem2); - this.passNodes = []; - this.resourceNodes = []; - this.frameGraphPasses = []; - _initializerDefineProperty(this, "engine", _descriptor, this); - } - _createClass(FrameGraphSystem2, [{ - key: "execute", - value: function() { - var _execute = _asyncToGenerator(/* @__PURE__ */ import_regenerator2.default.mark(function _callee(views) { - return import_regenerator2.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.compile(); - _context.next = 3; - return this.executePassNodes(views); - case 3: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function execute(_x) { - return _execute.apply(this, arguments); - } - return execute; - }() - }, { - key: "tearDown", - value: function tearDown() { - this.frameGraphPasses.forEach(function(pass) { - if (pass.tearDown) { - pass.tearDown(); - } - }); - this.reset(); - } - }, { - key: "addPass", - value: function addPass(name, setup, execute, tearDown) { - var frameGraphPass = new FrameGraphPass(); - frameGraphPass.execute = execute; - if (tearDown) { - frameGraphPass.tearDown = tearDown; - } - frameGraphPass.name = name; - var passNode = new PassNode(); - passNode.name = name; - this.passNodes.push(passNode); - this.frameGraphPasses.push(frameGraphPass); - setup(this, passNode, frameGraphPass); - return frameGraphPass; - } - }, { - key: "getPass", - value: function getPass(name) { - return this.frameGraphPasses.find(function(p4) { - return p4.name === name; - }); - } - }, { - key: "compile", - value: function compile() { - var _this = this; - var _iterator = _createForOfIteratorHelper(this.passNodes), _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done; ) { - var _pass = _step.value; - _pass.refCount = _pass.writes.length + (_pass.hasSideEffect ? 1 : 0); - _pass.reads.forEach(function(handle) { - _this.resourceNodes[handle.index].readerCount++; - }); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - var stack = []; - var _iterator2 = _createForOfIteratorHelper(this.resourceNodes), _step2; - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { - var node = _step2.value; - if (node.readerCount === 0) { - stack.push(node); - } - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - while (stack.length) { - var pNode = stack.pop(); - var writer = pNode && pNode.writer; - if (writer) { - if (--writer.refCount === 0) { - var _iterator3 = _createForOfIteratorHelper(writer.reads), _step3; - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done; ) { - var resource = _step3.value; - var r4 = this.resourceNodes[resource.index]; - if (--r4.readerCount === 0) { - stack.push(r4); - } - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - } - } - } - this.resourceNodes.forEach(function(node2) { - node2.resource.refs += node2.readerCount; - }); - var _iterator4 = _createForOfIteratorHelper(this.passNodes), _step4; - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done; ) { - var _pass2 = _step4.value; - if (!_pass2.refCount) { - continue; - } - var _iterator6 = _createForOfIteratorHelper(_pass2.reads), _step6; - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done; ) { - var _resource2 = _step6.value; - var pResource = this.resourceNodes[_resource2.index].resource; - pResource.first = pResource.first ? pResource.first : _pass2; - pResource.last = _pass2; - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - var _iterator7 = _createForOfIteratorHelper(_pass2.writes), _step7; - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done; ) { - var _resource3 = _step7.value; - var _pResource = this.resourceNodes[_resource3.index].resource; - _pResource.first = _pResource.first ? _pResource.first : _pass2; - _pResource.last = _pass2; - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - for (var priority = 0; priority < 2; priority++) { - var _iterator5 = _createForOfIteratorHelper(this.resourceNodes), _step5; - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done; ) { - var resoureNode = _step5.value; - var _resource = resoureNode.resource; - if (_resource.priority === priority && _resource.refs) { - var pFirst = _resource.first; - var pLast = _resource.last; - if (pFirst && pLast) { - pFirst.devirtualize.push(_resource); - pLast.destroy.push(_resource); - } - } - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - } - } - }, { - key: "executePassNodes", - value: function() { - var _executePassNodes = _asyncToGenerator(/* @__PURE__ */ import_regenerator2.default.mark(function _callee2(views) { - var _iterator8, _step8, _step8$value, index2, node, _iterator9, _step9, resource, _iterator10, _step10, _resource4, _iterator11, _step11, _resource5, _iterator12, _step12, _resource6; - return import_regenerator2.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _iterator8 = _createForOfIteratorHelper(this.passNodes.entries()); - _context2.prev = 1; - _iterator8.s(); - case 3: - if ((_step8 = _iterator8.n()).done) { - _context2.next = 18; - break; - } - _step8$value = _slicedToArray(_step8.value, 2), index2 = _step8$value[0], node = _step8$value[1]; - if (!node.refCount) { - _context2.next = 16; - break; - } - _iterator9 = _createForOfIteratorHelper(node.devirtualize); - try { - for (_iterator9.s(); !(_step9 = _iterator9.n()).done; ) { - resource = _step9.value; - resource.preExecuteDevirtualize(this.engine); - } - } catch (err) { - _iterator9.e(err); - } finally { - _iterator9.f(); - } - _iterator10 = _createForOfIteratorHelper(node.destroy); - try { - for (_iterator10.s(); !(_step10 = _iterator10.n()).done; ) { - _resource4 = _step10.value; - _resource4.preExecuteDestroy(this.engine); - } - } catch (err) { - _iterator10.e(err); - } finally { - _iterator10.f(); - } - _context2.next = 12; - return this.frameGraphPasses[index2].execute(this, this.frameGraphPasses[index2], views); - case 12: - _iterator11 = _createForOfIteratorHelper(node.devirtualize); - try { - for (_iterator11.s(); !(_step11 = _iterator11.n()).done; ) { - _resource5 = _step11.value; - _resource5.postExecuteDevirtualize(this.engine); - } - } catch (err) { - _iterator11.e(err); - } finally { - _iterator11.f(); - } - _iterator12 = _createForOfIteratorHelper(node.destroy); - try { - for (_iterator12.s(); !(_step12 = _iterator12.n()).done; ) { - _resource6 = _step12.value; - _resource6.postExecuteDestroy(this.engine); - } - } catch (err) { - _iterator12.e(err); - } finally { - _iterator12.f(); - } - case 16: - _context2.next = 3; - break; - case 18: - _context2.next = 23; - break; - case 20: - _context2.prev = 20; - _context2.t0 = _context2["catch"](1); - _iterator8.e(_context2.t0); - case 23: - _context2.prev = 23; - _iterator8.f(); - return _context2.finish(23); - case 26: - this.reset(); - case 27: - case "end": - return _context2.stop(); - } - } - }, _callee2, this, [[1, 20, 23, 26]]); - })); - function executePassNodes(_x2) { - return _executePassNodes.apply(this, arguments); - } - return executePassNodes; - }() - }, { - key: "reset", - value: function reset() { - this.passNodes = []; - this.resourceNodes = []; - this.frameGraphPasses = []; - } - }, { - key: "getResourceNode", - value: function getResourceNode(r4) { - return this.resourceNodes[r4.index]; - } - }, { - key: "createResourceNode", - value: function createResourceNode(resourceEntry) { - var resourceNode = new ResourceNode(); - resourceNode.resource = resourceEntry; - resourceNode.version = resourceEntry.version; - this.resourceNodes.push(resourceNode); - var fgh = new FrameGraphHandle(); - fgh.index = this.resourceNodes.length - 1; - return fgh; - } - }, { - key: "createTexture", - value: function createTexture(passNode, name, descriptor) { - var resource = new ResourceEntry(); - resource.name = name; - resource.descriptor = descriptor; - return this.createResourceNode(resource); - } - }, { - key: "createRenderTarget", - value: function createRenderTarget(passNode, name, descriptor) { - var resource = new ResourceEntry(); - resource.name = name; - resource.descriptor = descriptor; - return this.createResourceNode(resource); - } - }, { - key: "present", - value: function present(input) { - this.addPass("Present", function(fg, passNode) { - passNode.read(input); - passNode.hasSideEffect = true; - }, /* @__PURE__ */ _asyncToGenerator(/* @__PURE__ */ import_regenerator2.default.mark(function _callee3() { - return import_regenerator2.default.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - case "end": - return _context3.stop(); - } - } - }, _callee3); - }))); - } - }]); - return FrameGraphSystem2; -}(), _temp), _descriptor = _applyDecoratedDescriptor(_class22.prototype, "engine", [_dec2], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class22)) || _class2); - -// node_modules/@babel/runtime/helpers/esm/defineProperty.js -function _defineProperty(obj, key, value2) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value2, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value2; - } - return obj; -} - -// node_modules/@antv/g-webgpu-core/es/utils/is-typedarray.js -var MAX_SAFE_INTEGER = 9007199254740991; -var argsTag = "[object Arguments]"; -var arrayTag = "[object Array]"; -var boolTag = "[object Boolean]"; -var dateTag = "[object Date]"; -var errorTag = "[object Error]"; -var funcTag = "[object Function]"; -var mapTag = "[object Map]"; -var numberTag = "[object Number]"; -var objectTag = "[object Object]"; -var regexpTag = "[object RegExp]"; -var setTag = "[object Set]"; -var stringTag = "[object String]"; -var weakMapTag = "[object WeakMap]"; -var arrayBufferTag = "[object ArrayBuffer]"; -var dataViewTag = "[object DataView]"; -var float32Tag = "[object Float32Array]"; -var float64Tag = "[object Float64Array]"; -var int8Tag = "[object Int8Array]"; -var int16Tag = "[object Int16Array]"; -var int32Tag = "[object Int32Array]"; -var uint8Tag = "[object Uint8Array]"; -var uint8ClampedTag = "[object Uint8ClampedArray]"; -var uint16Tag = "[object Uint16Array]"; -var uint32Tag = "[object Uint32Array]"; -var typedArrayTags = {}; -typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; -typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; -var objectProto2 = Object.prototype; -var objectToString = objectProto2.toString; -function baseIsTypedArray(value2) { - return isObjectLike3(value2) && isLength(value2.length) && !!typedArrayTags[objectToString.call(value2)]; -} -function isLength(value2) { - return typeof value2 === "number" && value2 > -1 && value2 % 1 === 0 && value2 <= MAX_SAFE_INTEGER; -} -function isObjectLike3(value2) { - return !!value2 && _typeof3(value2) === "object"; -} -var isTypedArray = baseIsTypedArray; - -// node_modules/@antv/g-webgpu-core/es/components/geometry/GeometryComponent.js -function ownKeys(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -function _createSuper2(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct2(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct2() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var GeometryComponent = /* @__PURE__ */ function(_Component) { - _inherits(GeometryComponent2, _Component); - var _super = _createSuper2(GeometryComponent2); - function GeometryComponent2(data3) { - var _this; - _classCallCheck(this, GeometryComponent2); - _this = _super.call(this, data3); - _this.dirty = true; - _this.attributes = []; - _this.indices = void 0; - _this.indicesBuffer = void 0; - _this.vertexCount = 0; - _this.maxInstancedCount = void 0; - _this.aabb = void 0; - _this.entity = void 0; - Object.assign(_assertThisInitialized(_this), data3); - return _this; - } - _createClass(GeometryComponent2, [{ - key: "setAttribute", - value: function setAttribute(name, data3, descriptor, bufferGetter) { - var existed = this.attributes.find(function(a4) { - return a4.name === name; - }); - if (!existed) { - this.attributes.push(_objectSpread(_objectSpread({ - dirty: true, - name, - data: data3 - }, descriptor), {}, { - bufferGetter - })); - } else { - existed.data = data3; - existed.dirty = true; - } - this.dirty = true; - return this; - } - }, { - key: "setIndex", - value: function setIndex(data3) { - this.indices = new Uint32Array(data3.buffer ? data3.buffer : data3); - this.dirty = true; - return this; - } - }, { - key: "applyMatrix", - value: function applyMatrix4(matrix) { - var positionAttribute = this.attributes.find(function(_ref2) { - var name = _ref2.name; - return name === "position"; - }); - var normalAttribute = this.attributes.find(function(_ref2) { - var name = _ref2.name; - return name === "normal"; - }); - if (positionAttribute) { - positionAttribute.dirty = true; - if (positionAttribute.data && positionAttribute.data.length) { - for (var i4 = 0; i4 < positionAttribute.data.length; i4 += 3) { - var position2 = vec4_exports.fromValues(positionAttribute.data[i4], positionAttribute.data[i4 + 1], positionAttribute.data[i4 + 2], 1); - vec4_exports.transformMat4(position2, position2, matrix); - if (isTypedArray(positionAttribute.data)) { - positionAttribute.data.set([position2[0], position2[1], position2[2]], i4); - } else { - positionAttribute.data[i4] = position2[0]; - positionAttribute.data[i4 + 1] = position2[1]; - positionAttribute.data[i4 + 2] = position2[2]; - } - } - } - } - if (normalAttribute) { - var normalMatrix = mat3_exports.normalFromMat4(mat3_exports.create(), matrix); - if (normalAttribute.data && normalAttribute.data.length) { - for (var _i = 0; _i < normalAttribute.data.length; _i += 3) { - var normal2 = vec3_exports.fromValues(normalAttribute.data[_i], normalAttribute.data[_i + 1], normalAttribute.data[_i + 2]); - vec3_exports.transformMat3(normal2, normal2, normalMatrix); - vec3_exports.normalize(normal2, normal2); - if (isTypedArray(normalAttribute.data)) { - normalAttribute.data.set([normal2[0], normal2[1], normal2[2]], _i); - } else { - normalAttribute.data[_i] = normal2[0]; - normalAttribute.data[_i + 1] = normal2[1]; - normalAttribute.data[_i + 2] = normal2[2]; - } - } - } - } - } - }]); - return GeometryComponent2; -}(Component2); - -// node_modules/@antv/g-webgpu-core/es/components/geometry/System.js -var import_regenerator3 = __toModule(require_regenerator()); -var import_inversify2 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/gl.js -var gl; -(function(gl2) { - gl2[gl2["DEPTH_BUFFER_BIT"] = 256] = "DEPTH_BUFFER_BIT"; - gl2[gl2["STENCIL_BUFFER_BIT"] = 1024] = "STENCIL_BUFFER_BIT"; - gl2[gl2["COLOR_BUFFER_BIT"] = 16384] = "COLOR_BUFFER_BIT"; - gl2[gl2["POINTS"] = 0] = "POINTS"; - gl2[gl2["LINES"] = 1] = "LINES"; - gl2[gl2["LINE_LOOP"] = 2] = "LINE_LOOP"; - gl2[gl2["LINE_STRIP"] = 3] = "LINE_STRIP"; - gl2[gl2["TRIANGLES"] = 4] = "TRIANGLES"; - gl2[gl2["TRIANGLE_STRIP"] = 5] = "TRIANGLE_STRIP"; - gl2[gl2["TRIANGLE_FAN"] = 6] = "TRIANGLE_FAN"; - gl2[gl2["ZERO"] = 0] = "ZERO"; - gl2[gl2["ONE"] = 1] = "ONE"; - gl2[gl2["SRC_COLOR"] = 768] = "SRC_COLOR"; - gl2[gl2["ONE_MINUS_SRC_COLOR"] = 769] = "ONE_MINUS_SRC_COLOR"; - gl2[gl2["SRC_ALPHA"] = 770] = "SRC_ALPHA"; - gl2[gl2["ONE_MINUS_SRC_ALPHA"] = 771] = "ONE_MINUS_SRC_ALPHA"; - gl2[gl2["DST_ALPHA"] = 772] = "DST_ALPHA"; - gl2[gl2["ONE_MINUS_DST_ALPHA"] = 773] = "ONE_MINUS_DST_ALPHA"; - gl2[gl2["DST_COLOR"] = 774] = "DST_COLOR"; - gl2[gl2["ONE_MINUS_DST_COLOR"] = 775] = "ONE_MINUS_DST_COLOR"; - gl2[gl2["SRC_ALPHA_SATURATE"] = 776] = "SRC_ALPHA_SATURATE"; - gl2[gl2["FUNC_ADD"] = 32774] = "FUNC_ADD"; - gl2[gl2["BLEND_EQUATION"] = 32777] = "BLEND_EQUATION"; - gl2[gl2["BLEND_EQUATION_RGB"] = 32777] = "BLEND_EQUATION_RGB"; - gl2[gl2["BLEND_EQUATION_ALPHA"] = 34877] = "BLEND_EQUATION_ALPHA"; - gl2[gl2["FUNC_SUBTRACT"] = 32778] = "FUNC_SUBTRACT"; - gl2[gl2["FUNC_REVERSE_SUBTRACT"] = 32779] = "FUNC_REVERSE_SUBTRACT"; - gl2[gl2["MAX_EXT"] = 32776] = "MAX_EXT"; - gl2[gl2["MIN_EXT"] = 32775] = "MIN_EXT"; - gl2[gl2["BLEND_DST_RGB"] = 32968] = "BLEND_DST_RGB"; - gl2[gl2["BLEND_SRC_RGB"] = 32969] = "BLEND_SRC_RGB"; - gl2[gl2["BLEND_DST_ALPHA"] = 32970] = "BLEND_DST_ALPHA"; - gl2[gl2["BLEND_SRC_ALPHA"] = 32971] = "BLEND_SRC_ALPHA"; - gl2[gl2["CONSTANT_COLOR"] = 32769] = "CONSTANT_COLOR"; - gl2[gl2["ONE_MINUS_CONSTANT_COLOR"] = 32770] = "ONE_MINUS_CONSTANT_COLOR"; - gl2[gl2["CONSTANT_ALPHA"] = 32771] = "CONSTANT_ALPHA"; - gl2[gl2["ONE_MINUS_CONSTANT_ALPHA"] = 32772] = "ONE_MINUS_CONSTANT_ALPHA"; - gl2[gl2["BLEND_COLOR"] = 32773] = "BLEND_COLOR"; - gl2[gl2["ARRAY_BUFFER"] = 34962] = "ARRAY_BUFFER"; - gl2[gl2["ELEMENT_ARRAY_BUFFER"] = 34963] = "ELEMENT_ARRAY_BUFFER"; - gl2[gl2["ARRAY_BUFFER_BINDING"] = 34964] = "ARRAY_BUFFER_BINDING"; - gl2[gl2["ELEMENT_ARRAY_BUFFER_BINDING"] = 34965] = "ELEMENT_ARRAY_BUFFER_BINDING"; - gl2[gl2["STREAM_DRAW"] = 35040] = "STREAM_DRAW"; - gl2[gl2["STATIC_DRAW"] = 35044] = "STATIC_DRAW"; - gl2[gl2["DYNAMIC_DRAW"] = 35048] = "DYNAMIC_DRAW"; - gl2[gl2["BUFFER_SIZE"] = 34660] = "BUFFER_SIZE"; - gl2[gl2["BUFFER_USAGE"] = 34661] = "BUFFER_USAGE"; - gl2[gl2["CURRENT_VERTEX_ATTRIB"] = 34342] = "CURRENT_VERTEX_ATTRIB"; - gl2[gl2["FRONT"] = 1028] = "FRONT"; - gl2[gl2["BACK"] = 1029] = "BACK"; - gl2[gl2["FRONT_AND_BACK"] = 1032] = "FRONT_AND_BACK"; - gl2[gl2["CULL_FACE"] = 2884] = "CULL_FACE"; - gl2[gl2["BLEND"] = 3042] = "BLEND"; - gl2[gl2["DITHER"] = 3024] = "DITHER"; - gl2[gl2["STENCIL_TEST"] = 2960] = "STENCIL_TEST"; - gl2[gl2["DEPTH_TEST"] = 2929] = "DEPTH_TEST"; - gl2[gl2["SCISSOR_TEST"] = 3089] = "SCISSOR_TEST"; - gl2[gl2["POLYGON_OFFSET_FILL"] = 32823] = "POLYGON_OFFSET_FILL"; - gl2[gl2["SAMPLE_ALPHA_TO_COVERAGE"] = 32926] = "SAMPLE_ALPHA_TO_COVERAGE"; - gl2[gl2["SAMPLE_COVERAGE"] = 32928] = "SAMPLE_COVERAGE"; - gl2[gl2["NO_ERROR"] = 0] = "NO_ERROR"; - gl2[gl2["INVALID_ENUM"] = 1280] = "INVALID_ENUM"; - gl2[gl2["INVALID_VALUE"] = 1281] = "INVALID_VALUE"; - gl2[gl2["INVALID_OPERATION"] = 1282] = "INVALID_OPERATION"; - gl2[gl2["OUT_OF_MEMORY"] = 1285] = "OUT_OF_MEMORY"; - gl2[gl2["CW"] = 2304] = "CW"; - gl2[gl2["CCW"] = 2305] = "CCW"; - gl2[gl2["LINE_WIDTH"] = 2849] = "LINE_WIDTH"; - gl2[gl2["ALIASED_POINT_SIZE_RANGE"] = 33901] = "ALIASED_POINT_SIZE_RANGE"; - gl2[gl2["ALIASED_LINE_WIDTH_RANGE"] = 33902] = "ALIASED_LINE_WIDTH_RANGE"; - gl2[gl2["CULL_FACE_MODE"] = 2885] = "CULL_FACE_MODE"; - gl2[gl2["FRONT_FACE"] = 2886] = "FRONT_FACE"; - gl2[gl2["DEPTH_RANGE"] = 2928] = "DEPTH_RANGE"; - gl2[gl2["DEPTH_WRITEMASK"] = 2930] = "DEPTH_WRITEMASK"; - gl2[gl2["DEPTH_CLEAR_VALUE"] = 2931] = "DEPTH_CLEAR_VALUE"; - gl2[gl2["DEPTH_FUNC"] = 2932] = "DEPTH_FUNC"; - gl2[gl2["STENCIL_CLEAR_VALUE"] = 2961] = "STENCIL_CLEAR_VALUE"; - gl2[gl2["STENCIL_FUNC"] = 2962] = "STENCIL_FUNC"; - gl2[gl2["STENCIL_FAIL"] = 2964] = "STENCIL_FAIL"; - gl2[gl2["STENCIL_PASS_DEPTH_FAIL"] = 2965] = "STENCIL_PASS_DEPTH_FAIL"; - gl2[gl2["STENCIL_PASS_DEPTH_PASS"] = 2966] = "STENCIL_PASS_DEPTH_PASS"; - gl2[gl2["STENCIL_REF"] = 2967] = "STENCIL_REF"; - gl2[gl2["STENCIL_VALUE_MASK"] = 2963] = "STENCIL_VALUE_MASK"; - gl2[gl2["STENCIL_WRITEMASK"] = 2968] = "STENCIL_WRITEMASK"; - gl2[gl2["STENCIL_BACK_FUNC"] = 34816] = "STENCIL_BACK_FUNC"; - gl2[gl2["STENCIL_BACK_FAIL"] = 34817] = "STENCIL_BACK_FAIL"; - gl2[gl2["STENCIL_BACK_PASS_DEPTH_FAIL"] = 34818] = "STENCIL_BACK_PASS_DEPTH_FAIL"; - gl2[gl2["STENCIL_BACK_PASS_DEPTH_PASS"] = 34819] = "STENCIL_BACK_PASS_DEPTH_PASS"; - gl2[gl2["STENCIL_BACK_REF"] = 36003] = "STENCIL_BACK_REF"; - gl2[gl2["STENCIL_BACK_VALUE_MASK"] = 36004] = "STENCIL_BACK_VALUE_MASK"; - gl2[gl2["STENCIL_BACK_WRITEMASK"] = 36005] = "STENCIL_BACK_WRITEMASK"; - gl2[gl2["VIEWPORT"] = 2978] = "VIEWPORT"; - gl2[gl2["SCISSOR_BOX"] = 3088] = "SCISSOR_BOX"; - gl2[gl2["COLOR_CLEAR_VALUE"] = 3106] = "COLOR_CLEAR_VALUE"; - gl2[gl2["COLOR_WRITEMASK"] = 3107] = "COLOR_WRITEMASK"; - gl2[gl2["UNPACK_ALIGNMENT"] = 3317] = "UNPACK_ALIGNMENT"; - gl2[gl2["PACK_ALIGNMENT"] = 3333] = "PACK_ALIGNMENT"; - gl2[gl2["MAX_TEXTURE_SIZE"] = 3379] = "MAX_TEXTURE_SIZE"; - gl2[gl2["MAX_VIEWPORT_DIMS"] = 3386] = "MAX_VIEWPORT_DIMS"; - gl2[gl2["SUBPIXEL_BITS"] = 3408] = "SUBPIXEL_BITS"; - gl2[gl2["RED_BITS"] = 3410] = "RED_BITS"; - gl2[gl2["GREEN_BITS"] = 3411] = "GREEN_BITS"; - gl2[gl2["BLUE_BITS"] = 3412] = "BLUE_BITS"; - gl2[gl2["ALPHA_BITS"] = 3413] = "ALPHA_BITS"; - gl2[gl2["DEPTH_BITS"] = 3414] = "DEPTH_BITS"; - gl2[gl2["STENCIL_BITS"] = 3415] = "STENCIL_BITS"; - gl2[gl2["POLYGON_OFFSET_UNITS"] = 10752] = "POLYGON_OFFSET_UNITS"; - gl2[gl2["POLYGON_OFFSET_FACTOR"] = 32824] = "POLYGON_OFFSET_FACTOR"; - gl2[gl2["TEXTURE_BINDING_2D"] = 32873] = "TEXTURE_BINDING_2D"; - gl2[gl2["SAMPLE_BUFFERS"] = 32936] = "SAMPLE_BUFFERS"; - gl2[gl2["SAMPLES"] = 32937] = "SAMPLES"; - gl2[gl2["SAMPLE_COVERAGE_VALUE"] = 32938] = "SAMPLE_COVERAGE_VALUE"; - gl2[gl2["SAMPLE_COVERAGE_INVERT"] = 32939] = "SAMPLE_COVERAGE_INVERT"; - gl2[gl2["COMPRESSED_TEXTURE_FORMATS"] = 34467] = "COMPRESSED_TEXTURE_FORMATS"; - gl2[gl2["DONT_CARE"] = 4352] = "DONT_CARE"; - gl2[gl2["FASTEST"] = 4353] = "FASTEST"; - gl2[gl2["NICEST"] = 4354] = "NICEST"; - gl2[gl2["GENERATE_MIPMAP_HINT"] = 33170] = "GENERATE_MIPMAP_HINT"; - gl2[gl2["BYTE"] = 5120] = "BYTE"; - gl2[gl2["UNSIGNED_BYTE"] = 5121] = "UNSIGNED_BYTE"; - gl2[gl2["SHORT"] = 5122] = "SHORT"; - gl2[gl2["UNSIGNED_SHORT"] = 5123] = "UNSIGNED_SHORT"; - gl2[gl2["INT"] = 5124] = "INT"; - gl2[gl2["UNSIGNED_INT"] = 5125] = "UNSIGNED_INT"; - gl2[gl2["FLOAT"] = 5126] = "FLOAT"; - gl2[gl2["DEPTH_COMPONENT"] = 6402] = "DEPTH_COMPONENT"; - gl2[gl2["ALPHA"] = 6406] = "ALPHA"; - gl2[gl2["RGB"] = 6407] = "RGB"; - gl2[gl2["RGBA"] = 6408] = "RGBA"; - gl2[gl2["LUMINANCE"] = 6409] = "LUMINANCE"; - gl2[gl2["LUMINANCE_ALPHA"] = 6410] = "LUMINANCE_ALPHA"; - gl2[gl2["UNSIGNED_SHORT_4_4_4_4"] = 32819] = "UNSIGNED_SHORT_4_4_4_4"; - gl2[gl2["UNSIGNED_SHORT_5_5_5_1"] = 32820] = "UNSIGNED_SHORT_5_5_5_1"; - gl2[gl2["UNSIGNED_SHORT_5_6_5"] = 33635] = "UNSIGNED_SHORT_5_6_5"; - gl2[gl2["FRAGMENT_SHADER"] = 35632] = "FRAGMENT_SHADER"; - gl2[gl2["VERTEX_SHADER"] = 35633] = "VERTEX_SHADER"; - gl2[gl2["MAX_VERTEX_ATTRIBS"] = 34921] = "MAX_VERTEX_ATTRIBS"; - gl2[gl2["MAX_VERTEX_UNIFORM_VECTORS"] = 36347] = "MAX_VERTEX_UNIFORM_VECTORS"; - gl2[gl2["MAX_VARYING_VECTORS"] = 36348] = "MAX_VARYING_VECTORS"; - gl2[gl2["MAX_COMBINED_TEXTURE_IMAGE_UNITS"] = 35661] = "MAX_COMBINED_TEXTURE_IMAGE_UNITS"; - gl2[gl2["MAX_VERTEX_TEXTURE_IMAGE_UNITS"] = 35660] = "MAX_VERTEX_TEXTURE_IMAGE_UNITS"; - gl2[gl2["MAX_TEXTURE_IMAGE_UNITS"] = 34930] = "MAX_TEXTURE_IMAGE_UNITS"; - gl2[gl2["MAX_FRAGMENT_UNIFORM_VECTORS"] = 36349] = "MAX_FRAGMENT_UNIFORM_VECTORS"; - gl2[gl2["SHADER_TYPE"] = 35663] = "SHADER_TYPE"; - gl2[gl2["DELETE_STATUS"] = 35712] = "DELETE_STATUS"; - gl2[gl2["LINK_STATUS"] = 35714] = "LINK_STATUS"; - gl2[gl2["VALIDATE_STATUS"] = 35715] = "VALIDATE_STATUS"; - gl2[gl2["ATTACHED_SHADERS"] = 35717] = "ATTACHED_SHADERS"; - gl2[gl2["ACTIVE_UNIFORMS"] = 35718] = "ACTIVE_UNIFORMS"; - gl2[gl2["ACTIVE_ATTRIBUTES"] = 35721] = "ACTIVE_ATTRIBUTES"; - gl2[gl2["SHADING_LANGUAGE_VERSION"] = 35724] = "SHADING_LANGUAGE_VERSION"; - gl2[gl2["CURRENT_PROGRAM"] = 35725] = "CURRENT_PROGRAM"; - gl2[gl2["NEVER"] = 512] = "NEVER"; - gl2[gl2["LESS"] = 513] = "LESS"; - gl2[gl2["EQUAL"] = 514] = "EQUAL"; - gl2[gl2["LEQUAL"] = 515] = "LEQUAL"; - gl2[gl2["GREATER"] = 516] = "GREATER"; - gl2[gl2["NOTEQUAL"] = 517] = "NOTEQUAL"; - gl2[gl2["GEQUAL"] = 518] = "GEQUAL"; - gl2[gl2["ALWAYS"] = 519] = "ALWAYS"; - gl2[gl2["KEEP"] = 7680] = "KEEP"; - gl2[gl2["REPLACE"] = 7681] = "REPLACE"; - gl2[gl2["INCR"] = 7682] = "INCR"; - gl2[gl2["DECR"] = 7683] = "DECR"; - gl2[gl2["INVERT"] = 5386] = "INVERT"; - gl2[gl2["INCR_WRAP"] = 34055] = "INCR_WRAP"; - gl2[gl2["DECR_WRAP"] = 34056] = "DECR_WRAP"; - gl2[gl2["VENDOR"] = 7936] = "VENDOR"; - gl2[gl2["RENDERER"] = 7937] = "RENDERER"; - gl2[gl2["VERSION"] = 7938] = "VERSION"; - gl2[gl2["NEAREST"] = 9728] = "NEAREST"; - gl2[gl2["LINEAR"] = 9729] = "LINEAR"; - gl2[gl2["NEAREST_MIPMAP_NEAREST"] = 9984] = "NEAREST_MIPMAP_NEAREST"; - gl2[gl2["LINEAR_MIPMAP_NEAREST"] = 9985] = "LINEAR_MIPMAP_NEAREST"; - gl2[gl2["NEAREST_MIPMAP_LINEAR"] = 9986] = "NEAREST_MIPMAP_LINEAR"; - gl2[gl2["LINEAR_MIPMAP_LINEAR"] = 9987] = "LINEAR_MIPMAP_LINEAR"; - gl2[gl2["TEXTURE_MAG_FILTER"] = 10240] = "TEXTURE_MAG_FILTER"; - gl2[gl2["TEXTURE_MIN_FILTER"] = 10241] = "TEXTURE_MIN_FILTER"; - gl2[gl2["TEXTURE_WRAP_S"] = 10242] = "TEXTURE_WRAP_S"; - gl2[gl2["TEXTURE_WRAP_T"] = 10243] = "TEXTURE_WRAP_T"; - gl2[gl2["TEXTURE_2D"] = 3553] = "TEXTURE_2D"; - gl2[gl2["TEXTURE"] = 5890] = "TEXTURE"; - gl2[gl2["TEXTURE_CUBE_MAP"] = 34067] = "TEXTURE_CUBE_MAP"; - gl2[gl2["TEXTURE_BINDING_CUBE_MAP"] = 34068] = "TEXTURE_BINDING_CUBE_MAP"; - gl2[gl2["TEXTURE_CUBE_MAP_POSITIVE_X"] = 34069] = "TEXTURE_CUBE_MAP_POSITIVE_X"; - gl2[gl2["TEXTURE_CUBE_MAP_NEGATIVE_X"] = 34070] = "TEXTURE_CUBE_MAP_NEGATIVE_X"; - gl2[gl2["TEXTURE_CUBE_MAP_POSITIVE_Y"] = 34071] = "TEXTURE_CUBE_MAP_POSITIVE_Y"; - gl2[gl2["TEXTURE_CUBE_MAP_NEGATIVE_Y"] = 34072] = "TEXTURE_CUBE_MAP_NEGATIVE_Y"; - gl2[gl2["TEXTURE_CUBE_MAP_POSITIVE_Z"] = 34073] = "TEXTURE_CUBE_MAP_POSITIVE_Z"; - gl2[gl2["TEXTURE_CUBE_MAP_NEGATIVE_Z"] = 34074] = "TEXTURE_CUBE_MAP_NEGATIVE_Z"; - gl2[gl2["MAX_CUBE_MAP_TEXTURE_SIZE"] = 34076] = "MAX_CUBE_MAP_TEXTURE_SIZE"; - gl2[gl2["TEXTURE0"] = 33984] = "TEXTURE0"; - gl2[gl2["TEXTURE1"] = 33985] = "TEXTURE1"; - gl2[gl2["TEXTURE2"] = 33986] = "TEXTURE2"; - gl2[gl2["TEXTURE3"] = 33987] = "TEXTURE3"; - gl2[gl2["TEXTURE4"] = 33988] = "TEXTURE4"; - gl2[gl2["TEXTURE5"] = 33989] = "TEXTURE5"; - gl2[gl2["TEXTURE6"] = 33990] = "TEXTURE6"; - gl2[gl2["TEXTURE7"] = 33991] = "TEXTURE7"; - gl2[gl2["TEXTURE8"] = 33992] = "TEXTURE8"; - gl2[gl2["TEXTURE9"] = 33993] = "TEXTURE9"; - gl2[gl2["TEXTURE10"] = 33994] = "TEXTURE10"; - gl2[gl2["TEXTURE11"] = 33995] = "TEXTURE11"; - gl2[gl2["TEXTURE12"] = 33996] = "TEXTURE12"; - gl2[gl2["TEXTURE13"] = 33997] = "TEXTURE13"; - gl2[gl2["TEXTURE14"] = 33998] = "TEXTURE14"; - gl2[gl2["TEXTURE15"] = 33999] = "TEXTURE15"; - gl2[gl2["TEXTURE16"] = 34e3] = "TEXTURE16"; - gl2[gl2["TEXTURE17"] = 34001] = "TEXTURE17"; - gl2[gl2["TEXTURE18"] = 34002] = "TEXTURE18"; - gl2[gl2["TEXTURE19"] = 34003] = "TEXTURE19"; - gl2[gl2["TEXTURE20"] = 34004] = "TEXTURE20"; - gl2[gl2["TEXTURE21"] = 34005] = "TEXTURE21"; - gl2[gl2["TEXTURE22"] = 34006] = "TEXTURE22"; - gl2[gl2["TEXTURE23"] = 34007] = "TEXTURE23"; - gl2[gl2["TEXTURE24"] = 34008] = "TEXTURE24"; - gl2[gl2["TEXTURE25"] = 34009] = "TEXTURE25"; - gl2[gl2["TEXTURE26"] = 34010] = "TEXTURE26"; - gl2[gl2["TEXTURE27"] = 34011] = "TEXTURE27"; - gl2[gl2["TEXTURE28"] = 34012] = "TEXTURE28"; - gl2[gl2["TEXTURE29"] = 34013] = "TEXTURE29"; - gl2[gl2["TEXTURE30"] = 34014] = "TEXTURE30"; - gl2[gl2["TEXTURE31"] = 34015] = "TEXTURE31"; - gl2[gl2["ACTIVE_TEXTURE"] = 34016] = "ACTIVE_TEXTURE"; - gl2[gl2["REPEAT"] = 10497] = "REPEAT"; - gl2[gl2["CLAMP_TO_EDGE"] = 33071] = "CLAMP_TO_EDGE"; - gl2[gl2["MIRRORED_REPEAT"] = 33648] = "MIRRORED_REPEAT"; - gl2[gl2["FLOAT_VEC2"] = 35664] = "FLOAT_VEC2"; - gl2[gl2["FLOAT_VEC3"] = 35665] = "FLOAT_VEC3"; - gl2[gl2["FLOAT_VEC4"] = 35666] = "FLOAT_VEC4"; - gl2[gl2["INT_VEC2"] = 35667] = "INT_VEC2"; - gl2[gl2["INT_VEC3"] = 35668] = "INT_VEC3"; - gl2[gl2["INT_VEC4"] = 35669] = "INT_VEC4"; - gl2[gl2["BOOL"] = 35670] = "BOOL"; - gl2[gl2["BOOL_VEC2"] = 35671] = "BOOL_VEC2"; - gl2[gl2["BOOL_VEC3"] = 35672] = "BOOL_VEC3"; - gl2[gl2["BOOL_VEC4"] = 35673] = "BOOL_VEC4"; - gl2[gl2["FLOAT_MAT2"] = 35674] = "FLOAT_MAT2"; - gl2[gl2["FLOAT_MAT3"] = 35675] = "FLOAT_MAT3"; - gl2[gl2["FLOAT_MAT4"] = 35676] = "FLOAT_MAT4"; - gl2[gl2["SAMPLER_2D"] = 35678] = "SAMPLER_2D"; - gl2[gl2["SAMPLER_CUBE"] = 35680] = "SAMPLER_CUBE"; - gl2[gl2["VERTEX_ATTRIB_ARRAY_ENABLED"] = 34338] = "VERTEX_ATTRIB_ARRAY_ENABLED"; - gl2[gl2["VERTEX_ATTRIB_ARRAY_SIZE"] = 34339] = "VERTEX_ATTRIB_ARRAY_SIZE"; - gl2[gl2["VERTEX_ATTRIB_ARRAY_STRIDE"] = 34340] = "VERTEX_ATTRIB_ARRAY_STRIDE"; - gl2[gl2["VERTEX_ATTRIB_ARRAY_TYPE"] = 34341] = "VERTEX_ATTRIB_ARRAY_TYPE"; - gl2[gl2["VERTEX_ATTRIB_ARRAY_NORMALIZED"] = 34922] = "VERTEX_ATTRIB_ARRAY_NORMALIZED"; - gl2[gl2["VERTEX_ATTRIB_ARRAY_POINTER"] = 34373] = "VERTEX_ATTRIB_ARRAY_POINTER"; - gl2[gl2["VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"] = 34975] = "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"; - gl2[gl2["COMPILE_STATUS"] = 35713] = "COMPILE_STATUS"; - gl2[gl2["LOW_FLOAT"] = 36336] = "LOW_FLOAT"; - gl2[gl2["MEDIUM_FLOAT"] = 36337] = "MEDIUM_FLOAT"; - gl2[gl2["HIGH_FLOAT"] = 36338] = "HIGH_FLOAT"; - gl2[gl2["LOW_INT"] = 36339] = "LOW_INT"; - gl2[gl2["MEDIUM_INT"] = 36340] = "MEDIUM_INT"; - gl2[gl2["HIGH_INT"] = 36341] = "HIGH_INT"; - gl2[gl2["FRAMEBUFFER"] = 36160] = "FRAMEBUFFER"; - gl2[gl2["RENDERBUFFER"] = 36161] = "RENDERBUFFER"; - gl2[gl2["RGBA4"] = 32854] = "RGBA4"; - gl2[gl2["RGB5_A1"] = 32855] = "RGB5_A1"; - gl2[gl2["RGB565"] = 36194] = "RGB565"; - gl2[gl2["DEPTH_COMPONENT16"] = 33189] = "DEPTH_COMPONENT16"; - gl2[gl2["STENCIL_INDEX"] = 6401] = "STENCIL_INDEX"; - gl2[gl2["STENCIL_INDEX8"] = 36168] = "STENCIL_INDEX8"; - gl2[gl2["DEPTH_STENCIL"] = 34041] = "DEPTH_STENCIL"; - gl2[gl2["RENDERBUFFER_WIDTH"] = 36162] = "RENDERBUFFER_WIDTH"; - gl2[gl2["RENDERBUFFER_HEIGHT"] = 36163] = "RENDERBUFFER_HEIGHT"; - gl2[gl2["RENDERBUFFER_INTERNAL_FORMAT"] = 36164] = "RENDERBUFFER_INTERNAL_FORMAT"; - gl2[gl2["RENDERBUFFER_RED_SIZE"] = 36176] = "RENDERBUFFER_RED_SIZE"; - gl2[gl2["RENDERBUFFER_GREEN_SIZE"] = 36177] = "RENDERBUFFER_GREEN_SIZE"; - gl2[gl2["RENDERBUFFER_BLUE_SIZE"] = 36178] = "RENDERBUFFER_BLUE_SIZE"; - gl2[gl2["RENDERBUFFER_ALPHA_SIZE"] = 36179] = "RENDERBUFFER_ALPHA_SIZE"; - gl2[gl2["RENDERBUFFER_DEPTH_SIZE"] = 36180] = "RENDERBUFFER_DEPTH_SIZE"; - gl2[gl2["RENDERBUFFER_STENCIL_SIZE"] = 36181] = "RENDERBUFFER_STENCIL_SIZE"; - gl2[gl2["FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"] = 36048] = "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"; - gl2[gl2["FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"] = 36049] = "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"; - gl2[gl2["FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"] = 36050] = "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"; - gl2[gl2["FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"] = 36051] = "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"; - gl2[gl2["COLOR_ATTACHMENT0"] = 36064] = "COLOR_ATTACHMENT0"; - gl2[gl2["DEPTH_ATTACHMENT"] = 36096] = "DEPTH_ATTACHMENT"; - gl2[gl2["STENCIL_ATTACHMENT"] = 36128] = "STENCIL_ATTACHMENT"; - gl2[gl2["DEPTH_STENCIL_ATTACHMENT"] = 33306] = "DEPTH_STENCIL_ATTACHMENT"; - gl2[gl2["NONE"] = 0] = "NONE"; - gl2[gl2["FRAMEBUFFER_COMPLETE"] = 36053] = "FRAMEBUFFER_COMPLETE"; - gl2[gl2["FRAMEBUFFER_INCOMPLETE_ATTACHMENT"] = 36054] = "FRAMEBUFFER_INCOMPLETE_ATTACHMENT"; - gl2[gl2["FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"] = 36055] = "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"; - gl2[gl2["FRAMEBUFFER_INCOMPLETE_DIMENSIONS"] = 36057] = "FRAMEBUFFER_INCOMPLETE_DIMENSIONS"; - gl2[gl2["FRAMEBUFFER_UNSUPPORTED"] = 36061] = "FRAMEBUFFER_UNSUPPORTED"; - gl2[gl2["FRAMEBUFFER_BINDING"] = 36006] = "FRAMEBUFFER_BINDING"; - gl2[gl2["RENDERBUFFER_BINDING"] = 36007] = "RENDERBUFFER_BINDING"; - gl2[gl2["MAX_RENDERBUFFER_SIZE"] = 34024] = "MAX_RENDERBUFFER_SIZE"; - gl2[gl2["INVALID_FRAMEBUFFER_OPERATION"] = 1286] = "INVALID_FRAMEBUFFER_OPERATION"; - gl2[gl2["UNPACK_FLIP_Y_WEBGL"] = 37440] = "UNPACK_FLIP_Y_WEBGL"; - gl2[gl2["UNPACK_PREMULTIPLY_ALPHA_WEBGL"] = 37441] = "UNPACK_PREMULTIPLY_ALPHA_WEBGL"; - gl2[gl2["CONTEXT_LOST_WEBGL"] = 37442] = "CONTEXT_LOST_WEBGL"; - gl2[gl2["UNPACK_COLORSPACE_CONVERSION_WEBGL"] = 37443] = "UNPACK_COLORSPACE_CONVERSION_WEBGL"; - gl2[gl2["BROWSER_DEFAULT_WEBGL"] = 37444] = "BROWSER_DEFAULT_WEBGL"; - gl2[gl2["COPY_SRC"] = 1] = "COPY_SRC"; - gl2[gl2["COPY_DST"] = 2] = "COPY_DST"; - gl2[gl2["SAMPLED"] = 4] = "SAMPLED"; - gl2[gl2["STORAGE"] = 8] = "STORAGE"; - gl2[gl2["RENDER_ATTACHMENT"] = 16] = "RENDER_ATTACHMENT"; -})(gl || (gl = {})); - -// node_modules/@antv/g-webgpu-core/es/components/geometry/System.js -var _dec3; -var _dec22; -var _dec32; -var _class3; -var _class23; -var _descriptor2; -var _descriptor22; -var _temp2; -var GeometrySystem = (_dec3 = (0, import_inversify2.injectable)(), _dec22 = (0, import_inversify2.inject)(IDENTIFIER.GeometryComponentManager), _dec32 = (0, import_inversify2.inject)(IDENTIFIER.RenderEngine), _dec3(_class3 = (_class23 = (_temp2 = /* @__PURE__ */ function() { - function GeometrySystem2() { - _classCallCheck(this, GeometrySystem2); - _initializerDefineProperty(this, "geometry", _descriptor2, this); - _initializerDefineProperty(this, "engine", _descriptor22, this); - } - _createClass(GeometrySystem2, [{ - key: "execute", - value: function() { - var _execute = _asyncToGenerator(/* @__PURE__ */ import_regenerator3.default.mark(function _callee() { - var _this = this; - return import_regenerator3.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.geometry.forEach(function(entity, component2) { - if (component2.dirty) { - component2.attributes.forEach(function(attribute) { - if (attribute.dirty && attribute.data) { - if (!attribute.buffer) { - attribute.buffer = _this.engine.createBuffer({ - data: attribute.data, - type: gl.FLOAT - }); - } else { - var _attribute$buffer; - (_attribute$buffer = attribute.buffer) === null || _attribute$buffer === void 0 ? void 0 : _attribute$buffer.subData({ - data: attribute.data, - offset: 0 - }); - } - attribute.dirty = false; - } - }); - if (component2.indices) { - if (!component2.indicesBuffer) { - component2.indicesBuffer = _this.engine.createElements({ - data: component2.indices, - count: component2.indices.length, - type: gl.UNSIGNED_INT, - usage: gl.STATIC_DRAW - }); - } else { - component2.indicesBuffer.subData({ - data: component2.indices, - offset: 0 - }); - } - } - component2.dirty = false; - } - }); - case 1: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function execute() { - return _execute.apply(this, arguments); - } - return execute; - }() - }, { - key: "tearDown", - value: function tearDown() { - this.geometry.forEach(function(_8, geometry35) { - if (geometry35.indicesBuffer) { - geometry35.indicesBuffer.destroy(); - } - geometry35.attributes.forEach(function(attribute) { - if (attribute.buffer) { - attribute.buffer.destroy(); - } - }); - }); - this.geometry.clear(); - } - }, { - key: "createBufferGeometry", - value: function createBufferGeometry() { - var _ref2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : { - vertexCount: 3 - }, vertexCount = _ref2.vertexCount; - var entity = createEntity(); - return this.geometry.create(entity, { - vertexCount - }); - } - }, { - key: "createInstancedBufferGeometry", - value: function createInstancedBufferGeometry(_ref2) { - var maxInstancedCount = _ref2.maxInstancedCount, vertexCount = _ref2.vertexCount; - var entity = createEntity(); - return this.geometry.create(entity, { - maxInstancedCount, - vertexCount - }); - } - }]); - return GeometrySystem2; -}(), _temp2), _descriptor2 = _applyDecoratedDescriptor(_class23.prototype, "geometry", [_dec22], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor22 = _applyDecoratedDescriptor(_class23.prototype, "engine", [_dec32], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class23)) || _class3); - -// node_modules/@antv/g-webgpu-core/es/components/material/MaterialComponent.js -function ownKeys2(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread2(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys2(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys2(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -function _createSuper3(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct3(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct3() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var MaterialComponent = /* @__PURE__ */ function(_Component) { - _inherits(MaterialComponent2, _Component); - var _super = _createSuper3(MaterialComponent2); - function MaterialComponent2(data3) { - var _this; - _classCallCheck(this, MaterialComponent2); - _this = _super.call(this, data3); - _this.vertexShaderGLSL = void 0; - _this.fragmentShaderGLSL = void 0; - _this.defines = {}; - _this.dirty = true; - _this.uniforms = []; - _this.cull = { - enable: true, - face: gl.BACK - }; - _this.depth = { - enable: true - }; - _this.blend = void 0; - _this.entity = void 0; - _this.type = void 0; - Object.assign(_assertThisInitialized(_this), data3); - return _this; - } - _createClass(MaterialComponent2, [{ - key: "setDefines", - value: function setDefines(defines) { - this.defines = _objectSpread2(_objectSpread2({}, this.defines), defines); - return this; - } - }, { - key: "setCull", - value: function setCull(cull) { - this.cull = cull; - return this; - } - }, { - key: "setDepth", - value: function setDepth(depth) { - this.depth = depth; - return this; - } - }, { - key: "setBlend", - value: function setBlend(blend2) { - this.blend = blend2; - return this; - } - }, { - key: "setUniform", - value: function setUniform(name, data3) { - var _this2 = this; - if (typeof name !== "string") { - Object.keys(name).forEach(function(key) { - return _this2.setUniform(key, name[key]); - }); - return this; - } - var existedUniform = this.uniforms.find(function(u3) { - return u3.name === name; - }); - if (!existedUniform) { - this.uniforms.push({ - name, - dirty: true, - data: data3 - }); - } else { - existedUniform.dirty = true; - existedUniform.data = data3; - } - this.dirty = true; - return this; - } - }]); - return MaterialComponent2; -}(Component2); - -// node_modules/@antv/g-webgpu-core/es/components/material/System.js -var import_regenerator4 = __toModule(require_regenerator()); -var import_inversify3 = __toModule(require_inversify()); -var _dec4; -var _dec23; -var _dec33; -var _dec42; -var _class4; -var _class24; -var _descriptor3; -var _descriptor23; -var _descriptor32; -var _temp3; -function ownKeys3(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread3(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys3(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys3(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -var MaterialSystem = (_dec4 = (0, import_inversify3.injectable)(), _dec23 = (0, import_inversify3.inject)(IDENTIFIER.MaterialComponentManager), _dec33 = (0, import_inversify3.inject)(IDENTIFIER.RenderEngine), _dec42 = (0, import_inversify3.inject)(IDENTIFIER.ShaderModuleService), _dec4(_class4 = (_class24 = (_temp3 = /* @__PURE__ */ function() { - function MaterialSystem2() { - _classCallCheck(this, MaterialSystem2); - _initializerDefineProperty(this, "material", _descriptor3, this); - _initializerDefineProperty(this, "engine", _descriptor23, this); - _initializerDefineProperty(this, "shaderModule", _descriptor32, this); - } - _createClass(MaterialSystem2, [{ - key: "execute", - value: function() { - var _execute = _asyncToGenerator(/* @__PURE__ */ import_regenerator4.default.mark(function _callee() { - return import_regenerator4.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - function execute() { - return _execute.apply(this, arguments); - } - return execute; - }() - }, { - key: "tearDown", - value: function tearDown() { - this.material.clear(); - } - }, { - key: "createShaderMaterial", - value: function createShaderMaterial(params) { - var entity = createEntity(); - var vertexShaderGLSL = params.vertexShader; - var fragmentShaderGLSL = params.fragmentShader; - var uniforms = []; - if (!this.engine.supportWebGPU) { - var moduleName = "material-".concat(entity); - this.shaderModule.registerModule(moduleName, { - vs: params.vertexShader, - fs: params.fragmentShader - }); - var materialModule = this.shaderModule.getModule(moduleName); - vertexShaderGLSL = materialModule.vs; - fragmentShaderGLSL = materialModule.fs; - if (materialModule.uniforms) { - uniforms = Object.keys(materialModule.uniforms).map(function(uniformName) { - return { - dirty: true, - name: uniformName, - data: materialModule.uniforms[uniformName] - }; - }); - } - } - return this.material.create(entity, _objectSpread3(_objectSpread3({ - vertexShaderGLSL, - fragmentShaderGLSL - }, params), {}, { - uniforms - })); - } - }]); - return MaterialSystem2; -}(), _temp3), _descriptor3 = _applyDecoratedDescriptor(_class24.prototype, "material", [_dec23], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor23 = _applyDecoratedDescriptor(_class24.prototype, "engine", [_dec33], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor32 = _applyDecoratedDescriptor(_class24.prototype, "shaderModule", [_dec42], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class24)) || _class4); - -// node_modules/@antv/g-webgpu-core/es/components/mesh/CullableComponent.js -function _createSuper4(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct4(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct4() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var Strategy; -(function(Strategy2) { - Strategy2[Strategy2["Standard"] = 0] = "Standard"; -})(Strategy || (Strategy = {})); -var CullableComponent = /* @__PURE__ */ function(_Component) { - _inherits(CullableComponent2, _Component); - var _super = _createSuper4(CullableComponent2); - function CullableComponent2(data3) { - var _this; - _classCallCheck(this, CullableComponent2); - _this = _super.call(this, data3); - _this.strategy = Strategy.Standard; - _this.visibilityPlaneMask = 0; - _this.visible = false; - Object.assign(_assertThisInitialized(_this), data3); - return _this; - } - return CullableComponent2; -}(Component2); - -// node_modules/@antv/g-webgpu-core/es/shape/AABB.js -var AABB = /* @__PURE__ */ function() { - function AABB2(center2, halfExtents) { - _classCallCheck(this, AABB2); - this.center = void 0; - this.halfExtents = void 0; - this.min = vec3_exports.create(); - this.max = vec3_exports.create(); - this.update(center2, halfExtents); - } - _createClass(AABB2, [{ - key: "update", - value: function update15(center2, halfExtents) { - this.center = center2 || vec3_exports.create(); - this.halfExtents = halfExtents || vec3_exports.fromValues(0.5, 0.5, 0.5); - this.min = vec3_exports.sub(this.min, this.center, this.halfExtents); - this.max = vec3_exports.add(this.max, this.center, this.halfExtents); - } - }, { - key: "setMinMax", - value: function setMinMax(min7, max8) { - vec3_exports.add(this.center, max8, min7); - vec3_exports.scale(this.center, this.center, 0.5); - vec3_exports.sub(this.halfExtents, max8, min7); - vec3_exports.scale(this.halfExtents, this.halfExtents, 0.5); - vec3_exports.copy(this.min, min7); - vec3_exports.copy(this.max, max8); - } - }, { - key: "getMin", - value: function getMin() { - return this.min; - } - }, { - key: "getMax", - value: function getMax() { - return this.max; - } - }, { - key: "add", - value: function add8(aabb) { - var tc = this.center; - var tcx = tc[0]; - var tcy = tc[1]; - var tcz = tc[2]; - var th = this.halfExtents; - var thx = th[0]; - var thy = th[1]; - var thz = th[2]; - var tminx = tcx - thx; - var tmaxx = tcx + thx; - var tminy = tcy - thy; - var tmaxy = tcy + thy; - var tminz = tcz - thz; - var tmaxz = tcz + thz; - var oc = aabb.center; - var ocx = oc[0]; - var ocy = oc[1]; - var ocz = oc[2]; - var oh = aabb.halfExtents; - var ohx = oh[0]; - var ohy = oh[1]; - var ohz = oh[2]; - var ominx = ocx - ohx; - var omaxx = ocx + ohx; - var ominy = ocy - ohy; - var omaxy = ocy + ohy; - var ominz = ocz - ohz; - var omaxz = ocz + ohz; - if (ominx < tminx) { - tminx = ominx; - } - if (omaxx > tmaxx) { - tmaxx = omaxx; - } - if (ominy < tminy) { - tminy = ominy; - } - if (omaxy > tmaxy) { - tmaxy = omaxy; - } - if (ominz < tminz) { - tminz = ominz; - } - if (omaxz > tmaxz) { - tmaxz = omaxz; - } - tc[0] = (tminx + tmaxx) * 0.5; - tc[1] = (tminy + tmaxy) * 0.5; - tc[2] = (tminz + tmaxz) * 0.5; - th[0] = (tmaxx - tminx) * 0.5; - th[1] = (tmaxy - tminy) * 0.5; - th[2] = (tmaxz - tminz) * 0.5; - this.min[0] = tminx; - this.min[1] = tminy; - this.min[2] = tminz; - this.max[0] = tmaxx; - this.max[1] = tmaxy; - this.max[2] = tmaxz; - } - }, { - key: "intersects", - value: function intersects2(aabb) { - var aMax = this.getMax(); - var aMin = this.getMin(); - var bMax = aabb.getMax(); - var bMin = aabb.getMin(); - return aMin[0] <= bMax[0] && aMax[0] >= bMin[0] && aMin[1] <= bMax[1] && aMax[1] >= bMin[1] && aMin[2] <= bMax[2] && aMax[2] >= bMin[2]; - } - }, { - key: "containsPoint", - value: function containsPoint(point2) { - var min7 = this.getMin(); - var max8 = this.getMax(); - return !(point2[0] < min7[0] || point2[0] > max8[0] || point2[1] < min7[1] || point2[1] > max8[1] || point2[2] < min7[2] || point2[2] > max8[2]); - } - }, { - key: "getNegativeFarPoint", - value: function getNegativeFarPoint(plane) { - if (plane.pnVertexFlag === 273) { - return vec3_exports.copy(vec3_exports.create(), this.min); - } else if (plane.pnVertexFlag === 272) { - return vec3_exports.fromValues(this.min[0], this.min[1], this.max[2]); - } else if (plane.pnVertexFlag === 257) { - return vec3_exports.fromValues(this.min[0], this.max[1], this.min[2]); - } else if (plane.pnVertexFlag === 256) { - return vec3_exports.fromValues(this.min[0], this.max[1], this.max[2]); - } else if (plane.pnVertexFlag === 17) { - return vec3_exports.fromValues(this.max[0], this.min[1], this.min[2]); - } else if (plane.pnVertexFlag === 16) { - return vec3_exports.fromValues(this.max[0], this.min[1], this.max[2]); - } else if (plane.pnVertexFlag === 1) { - return vec3_exports.fromValues(this.max[0], this.max[1], this.min[2]); - } else { - return vec3_exports.fromValues(this.max[0], this.max[1], this.max[2]); - } - } - }, { - key: "getPositiveFarPoint", - value: function getPositiveFarPoint(plane) { - if (plane.pnVertexFlag === 273) { - return vec3_exports.copy(vec3_exports.create(), this.max); - } else if (plane.pnVertexFlag === 272) { - return vec3_exports.fromValues(this.max[0], this.max[1], this.min[2]); - } else if (plane.pnVertexFlag === 257) { - return vec3_exports.fromValues(this.max[0], this.min[1], this.max[2]); - } else if (plane.pnVertexFlag === 256) { - return vec3_exports.fromValues(this.max[0], this.min[1], this.min[2]); - } else if (plane.pnVertexFlag === 17) { - return vec3_exports.fromValues(this.min[0], this.max[1], this.max[2]); - } else if (plane.pnVertexFlag === 16) { - return vec3_exports.fromValues(this.min[0], this.max[1], this.min[2]); - } else if (plane.pnVertexFlag === 1) { - return vec3_exports.fromValues(this.min[0], this.min[1], this.max[2]); - } else { - return vec3_exports.fromValues(this.min[0], this.min[1], this.min[2]); - } - } - }]); - return AABB2; -}(); - -// node_modules/@antv/g-webgpu-core/es/components/mesh/MeshComponent.js -function _createSuper5(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct5(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct5() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var MeshComponent = /* @__PURE__ */ function(_Component) { - _inherits(MeshComponent2, _Component); - var _super = _createSuper5(MeshComponent2); - function MeshComponent2(data3) { - var _this; - _classCallCheck(this, MeshComponent2); - _this = _super.call(this, data3); - _this.material = void 0; - _this.geometry = void 0; - _this.aabb = new AABB(); - _this.aabbDirty = true; - _this.model = void 0; - _this.visible = true; - _this.children = []; - Object.assign(_assertThisInitialized(_this), data3); - return _this; - } - return MeshComponent2; -}(Component2); - -// node_modules/@antv/g-webgpu-core/es/components/mesh/System.js -var import_regenerator5 = __toModule(require_regenerator()); -var import_inversify4 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu-core/es/shape/Plane.js -var Plane = /* @__PURE__ */ function() { - function Plane3(distance15, normal2) { - _classCallCheck(this, Plane3); - this.distance = void 0; - this.normal = void 0; - this.pnVertexFlag = void 0; - this.distance = distance15 || 0; - this.normal = normal2 || vec3_exports.fromValues(0, 1, 0); - this.updatePNVertexFlag(); - } - _createClass(Plane3, [{ - key: "updatePNVertexFlag", - value: function updatePNVertexFlag() { - this.pnVertexFlag = (Number(this.normal[0] >= 0) << 8) + (Number(this.normal[1] >= 0) << 4) + Number(this.normal[2] >= 0); - } - }, { - key: "distanceToPoint", - value: function distanceToPoint(point2) { - return vec3_exports.dot(point2, this.normal) - this.distance; - } - }, { - key: "normalize", - value: function normalize5() { - var invLen = 1 / vec3_exports.len(this.normal); - vec3_exports.scale(this.normal, this.normal, invLen); - this.distance *= invLen; - } - }, { - key: "intersectsLine", - value: function intersectsLine(start, end2, point2) { - var d0 = this.distanceToPoint(start); - var d1 = this.distanceToPoint(end2); - var t4 = d0 / (d0 - d1); - var intersects2 = t4 >= 0 && t4 <= 1; - if (intersects2 && point2) { - vec3_exports.lerp(point2, start, end2, t4); - } - return intersects2; - } - }]); - return Plane3; -}(); - -// node_modules/@antv/g-webgpu-core/es/shape/Frustum.js -var Mask; -(function(Mask2) { - Mask2[Mask2["OUTSIDE"] = 4294967295] = "OUTSIDE"; - Mask2[Mask2["INSIDE"] = 0] = "INSIDE"; - Mask2[Mask2["INDETERMINATE"] = 2147483647] = "INDETERMINATE"; -})(Mask || (Mask = {})); -var Frustum = /* @__PURE__ */ function() { - function Frustum2(planes) { - _classCallCheck(this, Frustum2); - this.planes = []; - if (planes) { - this.planes = planes; - } else { - for (var i4 = 0; i4 < 6; i4++) { - this.planes.push(new Plane()); - } - } - } - _createClass(Frustum2, [{ - key: "extractFromVPMatrix", - value: function extractFromVPMatrix(vpMatrix) { - var _vpMatrix = _slicedToArray(vpMatrix, 16), m0 = _vpMatrix[0], m1 = _vpMatrix[1], m22 = _vpMatrix[2], m32 = _vpMatrix[3], m4 = _vpMatrix[4], m5 = _vpMatrix[5], m6 = _vpMatrix[6], m7 = _vpMatrix[7], m8 = _vpMatrix[8], m9 = _vpMatrix[9], m10 = _vpMatrix[10], m11 = _vpMatrix[11], m12 = _vpMatrix[12], m13 = _vpMatrix[13], m14 = _vpMatrix[14], m15 = _vpMatrix[15]; - vec3_exports.set(this.planes[0].normal, m32 - m0, m7 - m4, m11 - m8); - this.planes[0].distance = -(m15 - m12); - vec3_exports.set(this.planes[1].normal, m32 + m0, m7 + m4, m11 + m8); - this.planes[1].distance = -(m15 + m12); - vec3_exports.set(this.planes[2].normal, m32 + m1, m7 + m5, m11 + m9); - this.planes[2].distance = -(m15 + m13); - vec3_exports.set(this.planes[3].normal, m32 - m1, m7 - m5, m11 - m9); - this.planes[3].distance = -(m15 - m13); - vec3_exports.set(this.planes[4].normal, m32 - m22, m7 - m6, m11 - m10); - this.planes[4].distance = -(m15 - m14); - vec3_exports.set(this.planes[5].normal, m32 + m22, m7 + m6, m11 + m10); - this.planes[5].distance = -(m15 + m14); - this.planes.forEach(function(plane) { - plane.normalize(); - plane.updatePNVertexFlag(); - }); - } - }]); - return Frustum2; -}(); - -// node_modules/@antv/g-webgpu-core/es/utils/math.js -function getRotationScale(matrix, result) { - result[0] = matrix[0]; - result[1] = matrix[1]; - result[2] = matrix[2]; - result[3] = matrix[4]; - result[4] = matrix[5]; - result[5] = matrix[6]; - result[6] = matrix[8]; - result[7] = matrix[9]; - result[8] = matrix[10]; - return result; -} -function decodePickingColor(color4) { - var _color = _slicedToArray(color4, 3), i1 = _color[0], i22 = _color[1], i32 = _color[2]; - var index2 = i1 + i22 * 256 + i32 * 65536 - 1; - return index2; -} - -// node_modules/@antv/g-webgpu-core/es/components/mesh/System.js -var _dec5; -var _dec24; -var _dec34; -var _dec43; -var _dec52; -var _dec6; -var _class5; -var _class25; -var _descriptor4; -var _descriptor24; -var _descriptor33; -var _descriptor42; -var _descriptor5; -var _temp4; -function _createForOfIteratorHelper2(o3, allowArrayLike) { - var it; - if (typeof Symbol === "undefined" || o3[Symbol.iterator] == null) { - if (Array.isArray(o3) || (it = _unsupportedIterableToArray3(o3)) || allowArrayLike && o3 && typeof o3.length === "number") { - if (it) - o3 = it; - var i4 = 0; - var F3 = function F4() { - }; - return { s: F3, n: function n3() { - if (i4 >= o3.length) - return { done: true }; - return { done: false, value: o3[i4++] }; - }, e: function e4(_e) { - throw _e; - }, f: F3 }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var normalCompletion = true, didErr = false, err; - return { s: function s4() { - it = o3[Symbol.iterator](); - }, n: function n3() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, e: function e4(_e2) { - didErr = true; - err = _e2; - }, f: function f3() { - try { - if (!normalCompletion && it.return != null) - it.return(); - } finally { - if (didErr) - throw err; - } - } }; -} -function _unsupportedIterableToArray3(o3, minLen) { - if (!o3) - return; - if (typeof o3 === "string") - return _arrayLikeToArray3(o3, minLen); - var n3 = Object.prototype.toString.call(o3).slice(8, -1); - if (n3 === "Object" && o3.constructor) - n3 = o3.constructor.name; - if (n3 === "Map" || n3 === "Set") - return Array.from(o3); - if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) - return _arrayLikeToArray3(o3, minLen); -} -function _arrayLikeToArray3(arr, len5) { - if (len5 == null || len5 > arr.length) - len5 = arr.length; - for (var i4 = 0, arr2 = new Array(len5); i4 < len5; i4++) { - arr2[i4] = arr[i4]; - } - return arr2; -} -var MeshSystem = (_dec5 = (0, import_inversify4.injectable)(), _dec24 = (0, import_inversify4.inject)(IDENTIFIER.MeshComponentManager), _dec34 = (0, import_inversify4.inject)(IDENTIFIER.CullableComponentManager), _dec43 = (0, import_inversify4.inject)(IDENTIFIER.GeometryComponentManager), _dec52 = (0, import_inversify4.inject)(IDENTIFIER.HierarchyComponentManager), _dec6 = (0, import_inversify4.inject)(IDENTIFIER.TransformComponentManager), _dec5(_class5 = (_class25 = (_temp4 = /* @__PURE__ */ function() { - function MeshSystem2() { - _classCallCheck(this, MeshSystem2); - _initializerDefineProperty(this, "mesh", _descriptor4, this); - _initializerDefineProperty(this, "cullable", _descriptor24, this); - _initializerDefineProperty(this, "geometry", _descriptor33, this); - _initializerDefineProperty(this, "hierarchy", _descriptor42, this); - _initializerDefineProperty(this, "transform", _descriptor5, this); - this.planes = void 0; - } - _createClass(MeshSystem2, [{ - key: "setFrustumPlanes", - value: function setFrustumPlanes(planes) { - this.planes = planes; - } - }, { - key: "execute", - value: function() { - var _execute = _asyncToGenerator(/* @__PURE__ */ import_regenerator5.default.mark(function _callee(views) { - var _iterator, _step, view, scene, camera, _iterator2, _step2, entity, component2, hierarchyComponent, cullableComponent, geometryComponent, meshTransform, worldTransform, _geometryComponent$aa, center2, halfExtents, transformedCenter, rotationScale, transformedHalfExtents, parentCullableComponent; - return import_regenerator5.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _iterator = _createForOfIteratorHelper2(views); - try { - for (_iterator.s(); !(_step = _iterator.n()).done; ) { - view = _step.value; - scene = view.getScene(); - camera = view.getCamera(); - _iterator2 = _createForOfIteratorHelper2(scene.getEntities()); - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { - entity = _step2.value; - component2 = this.mesh.getComponentByEntity(entity); - if (component2) { - hierarchyComponent = this.hierarchy.getComponentByEntity(entity); - cullableComponent = this.cullable.getComponentByEntity(entity); - geometryComponent = component2.geometry; - meshTransform = this.transform.getComponentByEntity(entity); - if (geometryComponent && geometryComponent.aabb && meshTransform && component2.aabbDirty) { - worldTransform = meshTransform.worldTransform; - _geometryComponent$aa = geometryComponent.aabb, center2 = _geometryComponent$aa.center, halfExtents = _geometryComponent$aa.halfExtents; - transformedCenter = vec3_exports.transformMat4(vec3_exports.create(), center2, worldTransform); - rotationScale = getRotationScale(worldTransform, mat3_exports.create()); - transformedHalfExtents = vec3_exports.transformMat3(vec3_exports.create(), halfExtents, rotationScale); - component2.aabb.update(transformedCenter, transformedHalfExtents); - component2.aabbDirty = false; - } - if (cullableComponent && geometryComponent) { - parentCullableComponent = this.cullable.getComponentByEntity((hierarchyComponent === null || hierarchyComponent === void 0 ? void 0 : hierarchyComponent.parentID) || -1); - cullableComponent.visibilityPlaneMask = this.computeVisibilityWithPlaneMask(component2.aabb, (parentCullableComponent === null || parentCullableComponent === void 0 ? void 0 : parentCullableComponent.visibilityPlaneMask) || Mask.INDETERMINATE, this.planes || camera.getFrustum().planes); - cullableComponent.visible = cullableComponent.visibilityPlaneMask !== Mask.OUTSIDE; - } - } - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - case 2: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function execute(_x) { - return _execute.apply(this, arguments); - } - return execute; - }() - }, { - key: "tearDown", - value: function tearDown() { - this.cullable.clear(); - this.mesh.clear(); - } - }, { - key: "computeVisibilityWithPlaneMask", - value: function computeVisibilityWithPlaneMask(aabb, parentPlaneMask, planes) { - if (parentPlaneMask === Mask.OUTSIDE || parentPlaneMask === Mask.INSIDE) { - return parentPlaneMask; - } - var mask = Mask.INSIDE; - for (var k4 = 0, len5 = planes.length; k4 < len5; ++k4) { - var flag = k4 < 31 ? 1 << k4 : 0; - if (k4 < 31 && (parentPlaneMask & flag) === 0) { - continue; - } - var _planes$k = planes[k4], normal2 = _planes$k.normal, distance15 = _planes$k.distance; - if (vec3_exports.dot(normal2, aabb.getNegativeFarPoint(planes[k4])) + distance15 > 0) { - return Mask.OUTSIDE; - } - if (vec3_exports.dot(normal2, aabb.getPositiveFarPoint(planes[k4])) + distance15 > 0) { - mask |= flag; - } - } - return mask; - } - }]); - return MeshSystem2; -}(), _temp4), _descriptor4 = _applyDecoratedDescriptor(_class25.prototype, "mesh", [_dec24], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor24 = _applyDecoratedDescriptor(_class25.prototype, "cullable", [_dec34], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor33 = _applyDecoratedDescriptor(_class25.prototype, "geometry", [_dec43], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor42 = _applyDecoratedDescriptor(_class25.prototype, "hierarchy", [_dec52], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor5 = _applyDecoratedDescriptor(_class25.prototype, "transform", [_dec6], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class25)) || _class5); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/passes/PixelPickingPass.js -var import_regenerator7 = __toModule(require_regenerator()); -var import_inversify6 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/passes/RenderPass.js -var import_regenerator6 = __toModule(require_regenerator()); -var import_inversify5 = __toModule(require_inversify()); -var _dec7; -var _dec25; -var _dec35; -var _dec44; -var _dec53; -var _dec62; -var _dec72; -var _dec8; -var _dec9; -var _dec10; -var _dec11; -var _class6; -var _class26; -var _descriptor6; -var _descriptor25; -var _descriptor34; -var _descriptor43; -var _descriptor52; -var _descriptor62; -var _descriptor7; -var _descriptor8; -var _descriptor9; -var _class32; -var _temp5; -function _createForOfIteratorHelper3(o3, allowArrayLike) { - var it; - if (typeof Symbol === "undefined" || o3[Symbol.iterator] == null) { - if (Array.isArray(o3) || (it = _unsupportedIterableToArray4(o3)) || allowArrayLike && o3 && typeof o3.length === "number") { - if (it) - o3 = it; - var i4 = 0; - var F3 = function F4() { - }; - return { s: F3, n: function n3() { - if (i4 >= o3.length) - return { done: true }; - return { done: false, value: o3[i4++] }; - }, e: function e4(_e) { - throw _e; - }, f: F3 }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var normalCompletion = true, didErr = false, err; - return { s: function s4() { - it = o3[Symbol.iterator](); - }, n: function n3() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, e: function e4(_e2) { - didErr = true; - err = _e2; - }, f: function f3() { - try { - if (!normalCompletion && it.return != null) - it.return(); - } finally { - if (didErr) - throw err; - } - } }; -} -function _unsupportedIterableToArray4(o3, minLen) { - if (!o3) - return; - if (typeof o3 === "string") - return _arrayLikeToArray4(o3, minLen); - var n3 = Object.prototype.toString.call(o3).slice(8, -1); - if (n3 === "Object" && o3.constructor) - n3 = o3.constructor.name; - if (n3 === "Map" || n3 === "Set") - return Array.from(o3); - if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) - return _arrayLikeToArray4(o3, minLen); -} -function _arrayLikeToArray4(arr, len5) { - if (len5 == null || len5 > arr.length) - len5 = arr.length; - for (var i4 = 0, arr2 = new Array(len5); i4 < len5; i4++) { - arr2[i4] = arr[i4]; - } - return arr2; -} -var RenderPass = (_dec7 = (0, import_inversify5.injectable)(), _dec25 = (0, import_inversify5.inject)(IDENTIFIER.MeshComponentManager), _dec35 = (0, import_inversify5.inject)(IDENTIFIER.GeometryComponentManager), _dec44 = (0, import_inversify5.inject)(IDENTIFIER.MaterialComponentManager), _dec53 = (0, import_inversify5.inject)(IDENTIFIER.CullableComponentManager), _dec62 = (0, import_inversify5.inject)(IDENTIFIER.TransformComponentManager), _dec72 = (0, import_inversify5.inject)(IDENTIFIER.HierarchyComponentManager), _dec8 = (0, import_inversify5.inject)(IDENTIFIER.Systems), _dec9 = (0, import_inversify5.named)(IDENTIFIER.FrameGraphSystem), _dec10 = (0, import_inversify5.inject)(IDENTIFIER.RenderEngine), _dec11 = (0, import_inversify5.inject)(IDENTIFIER.ResourcePool), _dec7(_class6 = (_class26 = (_temp5 = _class32 = /* @__PURE__ */ function() { - function RenderPass2() { - var _this = this; - _classCallCheck(this, RenderPass2); - _initializerDefineProperty(this, "mesh", _descriptor6, this); - _initializerDefineProperty(this, "geometry", _descriptor25, this); - _initializerDefineProperty(this, "material", _descriptor34, this); - _initializerDefineProperty(this, "cullable", _descriptor43, this); - _initializerDefineProperty(this, "transform", _descriptor52, this); - _initializerDefineProperty(this, "hierarchy", _descriptor62, this); - _initializerDefineProperty(this, "frameGraphSystem", _descriptor7, this); - _initializerDefineProperty(this, "engine", _descriptor8, this); - _initializerDefineProperty(this, "resourcePool", _descriptor9, this); - this.modelCache = {}; - this.setup = function(fg, passNode, pass) { - var output = fg.createRenderTarget(passNode, "color buffer", { - width: 1, - height: 1, - usage: gl.RENDER_ATTACHMENT | gl.SAMPLED | gl.COPY_SRC - }); - pass.data = { - output: passNode.write(fg, output) - }; - }; - this.execute = /* @__PURE__ */ function() { - var _ref2 = _asyncToGenerator(/* @__PURE__ */ import_regenerator6.default.mark(function _callee(fg, pass, views) { - var resourceNode, framebuffer, _iterator, _step, view, canvas; - return import_regenerator6.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - resourceNode = fg.getResourceNode(pass.data.output); - framebuffer = _this.resourcePool.getOrCreateResource(resourceNode.resource); - _iterator = _createForOfIteratorHelper3(views); - _context.prev = 3; - _iterator.s(); - case 5: - if ((_step = _iterator.n()).done) { - _context.next = 11; - break; - } - view = _step.value; - _context.next = 9; - return _this.initView(view); - case 9: - _context.next = 5; - break; - case 11: - _context.next = 16; - break; - case 13: - _context.prev = 13; - _context.t0 = _context["catch"](3); - _iterator.e(_context.t0); - case 16: - _context.prev = 16; - _iterator.f(); - return _context.finish(16); - case 19: - canvas = _this.engine.getCanvas(); - framebuffer.resize({ - width: canvas.width, - height: canvas.height - }); - _this.engine.setScissor({ - enable: false - }); - _this.engine.clear({ - framebuffer, - color: views[0].getClearColor(), - depth: 1 - }); - _this.engine.useFramebuffer(framebuffer, function() { - var _iterator2 = _createForOfIteratorHelper3(views), _step2; - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { - var view2 = _step2.value; - _this.renderView(view2); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - }); - case 24: - case "end": - return _context.stop(); - } - } - }, _callee, null, [[3, 13, 16, 19]]); - })); - return function(_x, _x2, _x3) { - return _ref2.apply(this, arguments); - }; - }(); - } - _createClass(RenderPass2, [{ - key: "renderView", - value: function renderView(view) { - var scene = view.getScene(); - var camera = view.getCamera(); - var viewMatrix = camera.getViewTransform(); - var viewProjectionMatrix = mat4_exports.multiply(mat4_exports.create(), camera.getPerspective(), viewMatrix); - camera.getFrustum().extractFromVPMatrix(viewProjectionMatrix); - var _view$getViewport = view.getViewport(), x6 = _view$getViewport.x, y5 = _view$getViewport.y, width2 = _view$getViewport.width, height = _view$getViewport.height; - this.engine.viewport({ - x: x6, - y: y5, - width: width2, - height - }); - var _iterator3 = _createForOfIteratorHelper3(scene.getEntities()), _step3; - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done; ) { - var meshEntity = _step3.value; - this.renderMesh(meshEntity, { - camera, - view, - viewMatrix - }); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - } - }, { - key: "renderMesh", - value: function renderMesh(meshEntity, _ref2) { - var camera = _ref2.camera, view = _ref2.view, viewMatrix = _ref2.viewMatrix; - var mesh = this.mesh.getComponentByEntity(meshEntity); - if (!mesh || !mesh.visible) { - return; - } - var material = mesh.material; - var geometry35 = mesh.geometry; - if (!geometry35 || geometry35.dirty || !material) { - return; - } - var transform18 = this.transform.getComponentByEntity(meshEntity); - var modelViewMatrix = mat4_exports.multiply(mat4_exports.create(), viewMatrix, transform18.worldTransform); - var _view$getViewport2 = view.getViewport(), width2 = _view$getViewport2.width, height = _view$getViewport2.height; - material.setUniform({ - projectionMatrix: camera.getPerspective(), - modelViewMatrix, - modelMatrix: transform18.worldTransform, - viewMatrix, - cameraPosition: camera.getPosition(), - u_viewport: [width2, height] - }); - if (mesh.model) { - mesh.model.draw({ - uniforms: material.uniforms.reduce(function(cur, prev) { - cur[prev.name] = prev.data; - return cur; - }, {}) - }); - material.uniforms.forEach(function(u3) { - u3.dirty = false; - }); - material.dirty = false; - } - } - }, { - key: "initMesh", - value: function() { - var _initMesh = _asyncToGenerator(/* @__PURE__ */ import_regenerator6.default.mark(function _callee2(meshEntity, view) { - var mesh, material, geometry35, modelCacheKey, _this$engine, createModel, createAttribute, modelInitializationOptions; - return import_regenerator6.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - mesh = this.mesh.getComponentByEntity(meshEntity); - if (mesh) { - _context2.next = 3; - break; - } - return _context2.abrupt("return"); - case 3: - material = mesh.material; - geometry35 = mesh.geometry; - if (!(!geometry35 || geometry35.dirty || !material)) { - _context2.next = 7; - break; - } - return _context2.abrupt("return"); - case 7: - if (mesh.model) { - _context2.next = 24; - break; - } - modelCacheKey = "m-".concat(material.entity, "-g-").concat(geometry35.entity); - if (!this.modelCache[modelCacheKey]) { - _context2.next = 12; - break; - } - mesh.model = this.modelCache[modelCacheKey]; - return _context2.abrupt("return"); - case 12: - material.setUniform({ - projectionMatrix: 1, - modelViewMatrix: 1, - modelMatrix: 1, - viewMatrix: 1, - cameraPosition: 1, - u_viewport: 1 - }); - _this$engine = this.engine, createModel = _this$engine.createModel, createAttribute = _this$engine.createAttribute; - modelInitializationOptions = { - vs: material.vertexShaderGLSL, - fs: material.fragmentShaderGLSL, - defines: material.defines, - attributes: geometry35.attributes.reduce(function(cur, prev) { - if (prev.data && prev.buffer) { - cur[prev.name] = createAttribute({ - buffer: prev.buffer, - attributes: prev.attributes, - arrayStride: prev.arrayStride, - stepMode: prev.stepMode, - divisor: prev.stepMode === "vertex" ? 0 : 1 - }); - } - return cur; - }, {}), - uniforms: material.uniforms.reduce(function(cur, prev) { - cur[prev.name] = prev.data; - return cur; - }, {}), - scissor: { - enable: true, - box: function box2() { - return view.getViewport(); - } - } - }; - if (material.cull) { - modelInitializationOptions.cull = material.cull; - } - if (material.depth) { - modelInitializationOptions.depth = material.depth; - } - if (material.blend) { - modelInitializationOptions.blend = material.blend; - } - if (geometry35.indicesBuffer) { - modelInitializationOptions.elements = geometry35.indicesBuffer; - } - if (geometry35.maxInstancedCount) { - modelInitializationOptions.instances = geometry35.maxInstancedCount; - modelInitializationOptions.count = geometry35.vertexCount || 3; - } - _context2.next = 22; - return createModel(modelInitializationOptions); - case 22: - mesh.model = _context2.sent; - this.modelCache[modelCacheKey] = mesh.model; - case 24: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - function initMesh(_x4, _x5) { - return _initMesh.apply(this, arguments); - } - return initMesh; - }() - }, { - key: "initView", - value: function() { - var _initView = _asyncToGenerator(/* @__PURE__ */ import_regenerator6.default.mark(function _callee3(view) { - var scene, _iterator4, _step4, meshEntity; - return import_regenerator6.default.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - scene = view.getScene(); - _iterator4 = _createForOfIteratorHelper3(scene.getEntities()); - _context3.prev = 2; - _iterator4.s(); - case 4: - if ((_step4 = _iterator4.n()).done) { - _context3.next = 10; - break; - } - meshEntity = _step4.value; - _context3.next = 8; - return this.initMesh(meshEntity, view); - case 8: - _context3.next = 4; - break; - case 10: - _context3.next = 15; - break; - case 12: - _context3.prev = 12; - _context3.t0 = _context3["catch"](2); - _iterator4.e(_context3.t0); - case 15: - _context3.prev = 15; - _iterator4.f(); - return _context3.finish(15); - case 18: - case "end": - return _context3.stop(); - } - } - }, _callee3, this, [[2, 12, 15, 18]]); - })); - function initView(_x6) { - return _initView.apply(this, arguments); - } - return initView; - }() - }]); - return RenderPass2; -}(), _class32.IDENTIFIER = "Render Pass", _temp5), _descriptor6 = _applyDecoratedDescriptor(_class26.prototype, "mesh", [_dec25], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor25 = _applyDecoratedDescriptor(_class26.prototype, "geometry", [_dec35], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor34 = _applyDecoratedDescriptor(_class26.prototype, "material", [_dec44], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor43 = _applyDecoratedDescriptor(_class26.prototype, "cullable", [_dec53], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor52 = _applyDecoratedDescriptor(_class26.prototype, "transform", [_dec62], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor62 = _applyDecoratedDescriptor(_class26.prototype, "hierarchy", [_dec72], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor7 = _applyDecoratedDescriptor(_class26.prototype, "frameGraphSystem", [_dec8, _dec9], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor8 = _applyDecoratedDescriptor(_class26.prototype, "engine", [_dec10], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor9 = _applyDecoratedDescriptor(_class26.prototype, "resourcePool", [_dec11], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class26)) || _class6); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/passes/PixelPickingPass.js -var _dec12; -var _dec26; -var _dec36; -var _dec45; -var _dec54; -var _class7; -var _class27; -var _descriptor10; -var _descriptor26; -var _descriptor35; -var _descriptor44; -var _class33; -var _temp6; -function _createForOfIteratorHelper4(o3, allowArrayLike) { - var it; - if (typeof Symbol === "undefined" || o3[Symbol.iterator] == null) { - if (Array.isArray(o3) || (it = _unsupportedIterableToArray5(o3)) || allowArrayLike && o3 && typeof o3.length === "number") { - if (it) - o3 = it; - var i4 = 0; - var F3 = function F4() { - }; - return { s: F3, n: function n3() { - if (i4 >= o3.length) - return { done: true }; - return { done: false, value: o3[i4++] }; - }, e: function e4(_e) { - throw _e; - }, f: F3 }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var normalCompletion = true, didErr = false, err; - return { s: function s4() { - it = o3[Symbol.iterator](); - }, n: function n3() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, e: function e4(_e2) { - didErr = true; - err = _e2; - }, f: function f3() { - try { - if (!normalCompletion && it.return != null) - it.return(); - } finally { - if (didErr) - throw err; - } - } }; -} -function _unsupportedIterableToArray5(o3, minLen) { - if (!o3) - return; - if (typeof o3 === "string") - return _arrayLikeToArray5(o3, minLen); - var n3 = Object.prototype.toString.call(o3).slice(8, -1); - if (n3 === "Object" && o3.constructor) - n3 = o3.constructor.name; - if (n3 === "Map" || n3 === "Set") - return Array.from(o3); - if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) - return _arrayLikeToArray5(o3, minLen); -} -function _arrayLikeToArray5(arr, len5) { - if (len5 == null || len5 > arr.length) - len5 = arr.length; - for (var i4 = 0, arr2 = new Array(len5); i4 < len5; i4++) { - arr2[i4] = arr[i4]; - } - return arr2; -} -var PickingStage = { - NONE: 0, - ENCODE: 1, - HIGHLIGHT: 2 -}; -var PixelPickingPass = (_dec12 = (0, import_inversify6.injectable)(), _dec26 = (0, import_inversify6.inject)(IDENTIFIER.RenderEngine), _dec36 = (0, import_inversify6.inject)(IDENTIFIER.ResourcePool), _dec45 = (0, import_inversify6.inject)(IDENTIFIER.RenderPassFactory), _dec54 = (0, import_inversify6.inject)(IDENTIFIER.MeshComponentManager), _dec12(_class7 = (_class27 = (_temp6 = _class33 = /* @__PURE__ */ function() { - function PixelPickingPass2() { - var _this = this; - _classCallCheck(this, PixelPickingPass2); - _initializerDefineProperty(this, "engine", _descriptor10, this); - _initializerDefineProperty(this, "resourcePool", _descriptor26, this); - _initializerDefineProperty(this, "renderPassFactory", _descriptor35, this); - _initializerDefineProperty(this, "mesh", _descriptor44, this); - this.pickingFBO = void 0; - this.views = void 0; - this.highlightEnabled = true; - this.highlightColor = [255, 0, 0, 255]; - this.alreadyInRendering = false; - this.setup = function(fg, passNode, pass) { - var output = fg.createRenderTarget(passNode, "picking fbo", { - width: 1, - height: 1 - }); - pass.data = { - output: passNode.write(fg, output) - }; - passNode.hasSideEffect = true; - }; - this.execute = /* @__PURE__ */ function() { - var _ref2 = _asyncToGenerator(/* @__PURE__ */ import_regenerator7.default.mark(function _callee(fg, pass, views) { - var _iterator, _step, _loop; - return import_regenerator7.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _this.views = views; - if (!_this.alreadyInRendering) { - _context.next = 3; - break; - } - return _context.abrupt("return"); - case 3: - _iterator = _createForOfIteratorHelper4(views); - try { - _loop = function _loop2() { - var view = _step.value; - var _view$getViewport = view.getViewport(), width2 = _view$getViewport.width, height = _view$getViewport.height; - _this.alreadyInRendering = true; - var resourceNode = fg.getResourceNode(pass.data.output); - _this.pickingFBO = _this.resourcePool.getOrCreateResource(resourceNode.resource); - _this.pickingFBO.resize({ - width: width2, - height - }); - _this.engine.useFramebuffer(_this.pickingFBO, function() { - _this.engine.clear({ - framebuffer: _this.pickingFBO, - color: [0, 0, 0, 0], - stencil: 0, - depth: 1 - }); - var renderPass = _this.renderPassFactory(RenderPass.IDENTIFIER); - var meshes = []; - var scene = view.getScene(); - var _iterator2 = _createForOfIteratorHelper4(scene.getEntities()), _step2; - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) { - var meshEntity = _step2.value; - var mesh = _this.mesh.getComponentByEntity(meshEntity); - var material = mesh.material; - material.setUniform("u_PickingStage", PickingStage.ENCODE); - meshes.push(mesh); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - renderPass.renderView(view); - meshes.forEach(function(mesh2) { - var material2 = mesh2.material; - material2.setUniform("u_PickingStage", PickingStage.HIGHLIGHT); - }); - _this.alreadyInRendering = false; - }); - }; - for (_iterator.s(); !(_step = _iterator.n()).done; ) { - _loop(); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - case 5: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return function(_x, _x2, _x3) { - return _ref2.apply(this, arguments); - }; - }(); - this.pick = function(_ref2, view) { - var x6 = _ref2.x, y5 = _ref2.y; - var _this$engine = _this.engine, readPixels = _this$engine.readPixels, useFramebuffer = _this$engine.useFramebuffer; - var _view$getViewport2 = view.getViewport(), width2 = _view$getViewport2.width, height = _view$getViewport2.height; - var xInDevicePixel = x6 * window.devicePixelRatio; - var yInDevicePixel = y5 * window.devicePixelRatio; - if (xInDevicePixel > width2 || xInDevicePixel < 0 || yInDevicePixel > height || yInDevicePixel < 0) { - return; - } - var pickedColors; - var pickedFeatureIdx; - useFramebuffer(_this.pickingFBO, function() { - pickedColors = readPixels({ - x: Math.round(xInDevicePixel), - y: Math.round(height - (y5 + 1) * window.devicePixelRatio), - width: 1, - height: 1, - data: new Uint8Array(1 * 1 * 4), - framebuffer: _this.pickingFBO - }); - if (pickedColors[0] !== 0 || pickedColors[1] !== 0 || pickedColors[2] !== 0) { - pickedFeatureIdx = decodePickingColor(pickedColors); - if (_this.highlightEnabled) { - _this.highlightPickedFeature(pickedColors, view); - } - } - }); - return pickedFeatureIdx; - }; - } - _createClass(PixelPickingPass2, [{ - key: "enableHighlight", - value: function enableHighlight(enabled) { - this.highlightEnabled = enabled; - } - }, { - key: "setHighlightColor", - value: function setHighlightColor(color4) { - this.highlightColor = color4; - } - }, { - key: "highlightPickedFeature", - value: function highlightPickedFeature(pickedColors, view) { - if (pickedColors) { - var _iterator3 = _createForOfIteratorHelper4(view.getScene().getEntities()), _step3; - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done; ) { - var meshEntity = _step3.value; - var mesh = this.mesh.getComponentByEntity(meshEntity); - var material = mesh.material; - material.setUniform("u_PickingStage", PickingStage.HIGHLIGHT); - material.setUniform("u_PickingColor", [pickedColors[0], pickedColors[1], pickedColors[2]]); - material.setUniform("u_HighlightColor", this.highlightColor); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - } - } - }]); - return PixelPickingPass2; -}(), _class33.IDENTIFIER = "PixelPicking Pass", _temp6), _descriptor10 = _applyDecoratedDescriptor(_class27.prototype, "engine", [_dec26], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor26 = _applyDecoratedDescriptor(_class27.prototype, "resourcePool", [_dec36], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor35 = _applyDecoratedDescriptor(_class27.prototype, "renderPassFactory", [_dec45], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor44 = _applyDecoratedDescriptor(_class27.prototype, "mesh", [_dec54], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class27)) || _class7); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/System.js -var import_regenerator9 = __toModule(require_regenerator()); -var import_inversify8 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/passes/CopyPass.js -var import_regenerator8 = __toModule(require_regenerator()); -var import_inversify7 = __toModule(require_inversify()); -var _dec13; -var _dec27; -var _dec37; -var _class8; -var _class28; -var _descriptor11; -var _descriptor27; -var _class34; -var _temp7; -var copyFrag = "varying vec2 v_UV;\n\nuniform sampler2D u_Texture;\n\nvoid main() {\n gl_FragColor = vec4(texture2D(u_Texture, v_UV));\n}"; -var copyVert = "attribute vec2 a_Position;\n\nvarying vec2 v_UV;\n\nvoid main() {\n v_UV = 0.5 * (a_Position + 1.0);\n gl_Position = vec4(a_Position, 0., 1.);\n}"; -var copyFragWebGPU = "layout(set = 0, binding = 0) uniform sampler u_TextureSampler;\nlayout(set = 0, binding = 1) uniform texture2D u_Texture;\n\nlayout(location = 0) in vec2 v_UV;\nlayout(location = 0) out vec4 outColor;\n\nvoid main() {\n outColor = texture(sampler2D(u_Texture, u_TextureSampler), v_UV);\n}"; -var copyVertWebGPU = "layout(location = 0) in vec2 a_Position;\nlayout(location = 0) out vec2 v_UV;\n\nvoid main() {\n v_UV = 0.5 * (a_Position + 1.0);\n gl_Position = vec4(a_Position, 0., 1.);\n}"; -var CopyPass = (_dec13 = (0, import_inversify7.injectable)(), _dec27 = (0, import_inversify7.inject)(IDENTIFIER.RenderEngine), _dec37 = (0, import_inversify7.inject)(IDENTIFIER.ResourcePool), _dec13(_class8 = (_class28 = (_temp7 = _class34 = function CopyPass2() { - var _this = this; - _classCallCheck(this, CopyPass2); - _initializerDefineProperty(this, "engine", _descriptor11, this); - _initializerDefineProperty(this, "resourcePool", _descriptor27, this); - this.model = void 0; - this.setup = function(fg, passNode, pass) { - var renderPass = fg.getPass(RenderPass.IDENTIFIER); - if (renderPass) { - var output = fg.createRenderTarget(passNode, "render to screen", { - width: 1, - height: 1 - }); - pass.data = { - input: passNode.read(renderPass.data.output), - output: passNode.write(fg, output) - }; - } - }; - this.execute = /* @__PURE__ */ function() { - var _ref2 = _asyncToGenerator(/* @__PURE__ */ import_regenerator8.default.mark(function _callee(fg, pass) { - var _this$engine, createModel, createAttribute, createBuffer, model, resourceNode, framebuffer; - return import_regenerator8.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _this$engine = _this.engine, createModel = _this$engine.createModel, createAttribute = _this$engine.createAttribute, createBuffer = _this$engine.createBuffer; - if (_this.model) { - _context.next = 6; - break; - } - _context.next = 4; - return createModel({ - vs: _this.engine.supportWebGPU ? copyVertWebGPU : copyVert, - fs: _this.engine.supportWebGPU ? copyFragWebGPU : copyFrag, - attributes: { - a_Position: createAttribute({ - buffer: createBuffer({ - data: [-4, -4, 4, -4, 0, 4], - type: gl.FLOAT - }), - size: 2, - arrayStride: 2 * 4, - stepMode: "vertex", - attributes: [{ - shaderLocation: 0, - offset: 0, - format: "float2" - }] - }) - }, - uniforms: { - u_Texture: null - }, - depth: { - enable: false - }, - count: 3, - blend: { - enable: true - } - }); - case 4: - model = _context.sent; - _this.model = model; - case 6: - resourceNode = fg.getResourceNode(pass.data.input); - framebuffer = _this.resourcePool.getOrCreateResource(resourceNode.resource); - _this.engine.useFramebuffer(null, function() { - _this.engine.clear({ - framebuffer: null, - color: [0, 0, 0, 0], - depth: 1, - stencil: 0 - }); - _this.model.draw({ - uniforms: { - u_Texture: framebuffer - } - }); - }); - case 9: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return function(_x, _x2) { - return _ref2.apply(this, arguments); - }; - }(); - this.tearDown = function() { - _this.model = void 0; - }; -}, _class34.IDENTIFIER = "Copy Pass", _temp7), _descriptor11 = _applyDecoratedDescriptor(_class28.prototype, "engine", [_dec27], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor27 = _applyDecoratedDescriptor(_class28.prototype, "resourcePool", [_dec37], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class28)) || _class8); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/System.js -var _dec14; -var _dec28; -var _dec38; -var _dec46; -var _dec55; -var _dec63; -var _class9; -var _class29; -var _descriptor12; -var _descriptor28; -var _descriptor36; -var _descriptor45; -var _temp8; -var RendererSystem = (_dec14 = (0, import_inversify8.injectable)(), _dec28 = (0, import_inversify8.inject)(IDENTIFIER.Systems), _dec38 = (0, import_inversify8.named)(IDENTIFIER.FrameGraphSystem), _dec46 = (0, import_inversify8.inject)(IDENTIFIER.RenderPassFactory), _dec55 = (0, import_inversify8.inject)(IDENTIFIER.ConfigService), _dec63 = (0, import_inversify8.inject)(IDENTIFIER.ResourcePool), _dec14(_class9 = (_class29 = (_temp8 = /* @__PURE__ */ function() { - function RendererSystem2() { - _classCallCheck(this, RendererSystem2); - _initializerDefineProperty(this, "frameGraphSystem", _descriptor12, this); - _initializerDefineProperty(this, "renderPassFactory", _descriptor28, this); - _initializerDefineProperty(this, "configService", _descriptor36, this); - _initializerDefineProperty(this, "resourcePool", _descriptor45, this); - } - _createClass(RendererSystem2, [{ - key: "execute", - value: function() { - var _execute = _asyncToGenerator(/* @__PURE__ */ import_regenerator9.default.mark(function _callee(views) { - var _this$renderPassFacto, setupRenderPass, executeRenderPass, renderPass, _this$renderPassFacto2, setupCopyPass, executeCopyPass, tearDownCopyPass, copyPass; - return import_regenerator9.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _this$renderPassFacto = this.renderPassFactory(RenderPass.IDENTIFIER), setupRenderPass = _this$renderPassFacto.setup, executeRenderPass = _this$renderPassFacto.execute; - renderPass = this.frameGraphSystem.addPass(RenderPass.IDENTIFIER, setupRenderPass, executeRenderPass); - _this$renderPassFacto2 = this.renderPassFactory(CopyPass.IDENTIFIER), setupCopyPass = _this$renderPassFacto2.setup, executeCopyPass = _this$renderPassFacto2.execute, tearDownCopyPass = _this$renderPassFacto2.tearDown; - copyPass = this.frameGraphSystem.addPass(CopyPass.IDENTIFIER, setupCopyPass, executeCopyPass, tearDownCopyPass); - this.frameGraphSystem.present(copyPass.data.output); - case 5: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function execute(_x) { - return _execute.apply(this, arguments); - } - return execute; - }() - }, { - key: "tearDown", - value: function tearDown() { - this.resourcePool.clean(); - } - }, { - key: "pick", - value: function pick2(position2, view) { - var pickingPass = this.renderPassFactory(PixelPickingPass.IDENTIFIER); - return pickingPass.pick(position2, view); - } - }]); - return RendererSystem2; -}(), _temp8), _descriptor12 = _applyDecoratedDescriptor(_class29.prototype, "frameGraphSystem", [_dec28, _dec38], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor28 = _applyDecoratedDescriptor(_class29.prototype, "renderPassFactory", [_dec46], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor36 = _applyDecoratedDescriptor(_class29.prototype, "configService", [_dec55], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor45 = _applyDecoratedDescriptor(_class29.prototype, "resourcePool", [_dec63], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class29)) || _class9); - -// node_modules/@antv/g-webgpu-core/es/components/scenegraph/HierarchyComponent.js -function _createSuper6(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct6(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct6() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var HierarchyComponent = /* @__PURE__ */ function(_Component) { - _inherits(HierarchyComponent2, _Component); - var _super = _createSuper6(HierarchyComponent2); - function HierarchyComponent2(data3) { - var _this; - _classCallCheck(this, HierarchyComponent2); - _this = _super.call(this, data3); - _this.parentID = void 0; - Object.assign(_assertThisInitialized(_this), data3); - return _this; - } - return HierarchyComponent2; -}(Component2); - -// node_modules/@antv/g-webgpu-core/es/components/scenegraph/System.js -var import_regenerator10 = __toModule(require_regenerator()); -var import_inversify9 = __toModule(require_inversify()); -var _dec15; -var _dec29; -var _dec39; -var _dec47; -var _class10; -var _class210; -var _descriptor13; -var _descriptor29; -var _descriptor37; -var _temp9; -var SceneGraphSystem = (_dec15 = (0, import_inversify9.injectable)(), _dec29 = (0, import_inversify9.inject)(IDENTIFIER.HierarchyComponentManager), _dec39 = (0, import_inversify9.inject)(IDENTIFIER.TransformComponentManager), _dec47 = (0, import_inversify9.inject)(IDENTIFIER.MeshComponentManager), _dec15(_class10 = (_class210 = (_temp9 = /* @__PURE__ */ function() { - function SceneGraphSystem2() { - _classCallCheck(this, SceneGraphSystem2); - _initializerDefineProperty(this, "hierarchy", _descriptor13, this); - _initializerDefineProperty(this, "transform", _descriptor29, this); - _initializerDefineProperty(this, "mesh", _descriptor37, this); - } - _createClass(SceneGraphSystem2, [{ - key: "execute", - value: function() { - var _execute = _asyncToGenerator(/* @__PURE__ */ import_regenerator10.default.mark(function _callee() { - return import_regenerator10.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.runTransformUpdateSystem(); - this.runHierarchyUpdateSystem(); - case 2: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function execute() { - return _execute.apply(this, arguments); - } - return execute; - }() - }, { - key: "tearDown", - value: function tearDown() { - this.hierarchy.clear(); - this.transform.clear(); - } - }, { - key: "getHierarchyComponentManager", - value: function getHierarchyComponentManager() { - return this.hierarchy; - } - }, { - key: "getTransformComponentManager", - value: function getTransformComponentManager() { - return this.transform; - } - }, { - key: "runTransformUpdateSystem", - value: function runTransformUpdateSystem() { - var _this = this; - this.transform.forEach(function(entity, transform18) { - if (transform18.isDirty() || transform18.isLocalDirty()) { - _this.setMeshAABBDirty(_this.mesh.getComponentByEntity(entity)); - transform18.updateTransform(); - } - }); - } - }, { - key: "runHierarchyUpdateSystem", - value: function runHierarchyUpdateSystem() { - var _this2 = this; - this.hierarchy.forEach(function(entity, parentComponent) { - var transformChild = _this2.transform.getComponentByEntity(entity); - var transformParent = _this2.transform.getComponentByEntity(parentComponent.parentID); - if (transformChild !== null && transformParent !== null) { - transformChild.updateTransformWithParent(transformParent); - } - }); - } - }, { - key: "attach", - value: function attach(entity, parent, isChildAlreadyInLocalSpace) { - if (this.hierarchy.contains(entity)) { - this.detach(entity); - } - this.hierarchy.create(entity, { - parentID: parent - }); - var mesh = this.mesh.getComponentByEntity(parent); - this.setMeshAABBDirty(mesh); - if (mesh && mesh.children.indexOf(entity) === -1) { - mesh.children.push(entity); - } - if (this.hierarchy.getCount() > 1) { - for (var i4 = this.hierarchy.getCount() - 1; i4 > 0; --i4) { - var parentCandidateEntity = this.hierarchy.getEntity(i4); - for (var j4 = 0; j4 < i4; ++j4) { - var childCandidateEntity = this.hierarchy.getComponent(j4); - if (childCandidateEntity.parentID === parentCandidateEntity) { - this.hierarchy.moveItem(i4, j4); - ++i4; - break; - } - } - } - } - var parentcomponent = this.hierarchy.getComponentByEntity(entity); - var transformParent = this.transform.getComponentByEntity(parent); - if (transformParent === null) { - transformParent = this.transform.create(parent); - } - var transformChild = this.transform.getComponentByEntity(entity); - if (transformChild === null) { - transformChild = this.transform.create(entity); - transformParent = this.transform.getComponentByEntity(parent); - } - transformChild.parent = transformParent; - if (!isChildAlreadyInLocalSpace && transformParent) { - transformChild.matrixTransform(mat4_exports.invert(mat4_exports.create(), transformParent.worldTransform)); - transformChild.updateTransform(); - } - if (transformParent) { - transformChild.updateTransformWithParent(transformParent); - } - } - }, { - key: "detach", - value: function detach(entity) { - var self2 = this.hierarchy.getComponentByEntity(entity); - if (self2 !== null) { - var transform18 = this.transform.getComponentByEntity(entity); - if (transform18 !== null) { - transform18.parent = null; - transform18.applyTransform(); - } - this.hierarchy.removeKeepSorted(entity); - var mesh = this.mesh.getComponentByEntity(self2.parentID); - if (mesh) { - var index2 = mesh.children.indexOf(entity); - mesh.children.splice(index2, 1); - } - this.setMeshAABBDirty(mesh); - } - } - }, { - key: "detachChildren", - value: function detachChildren(parent) { - var mesh = this.mesh.getComponentByEntity(parent); - if (mesh) { - mesh.children = []; - } - for (var i4 = 0; i4 < this.hierarchy.getCount(); ) { - var _this$hierarchy$getCo; - if (((_this$hierarchy$getCo = this.hierarchy.getComponent(i4)) === null || _this$hierarchy$getCo === void 0 ? void 0 : _this$hierarchy$getCo.parentID) === parent) { - var entity = this.hierarchy.getEntity(i4); - this.detach(entity); - } else { - ++i4; - } - } - } - }, { - key: "setMeshAABBDirty", - value: function setMeshAABBDirty(mesh) { - if (mesh) { - mesh.aabbDirty = true; - } - } - }]); - return SceneGraphSystem2; -}(), _temp9), _descriptor13 = _applyDecoratedDescriptor(_class210.prototype, "hierarchy", [_dec29], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor29 = _applyDecoratedDescriptor(_class210.prototype, "transform", [_dec39], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor37 = _applyDecoratedDescriptor(_class210.prototype, "mesh", [_dec47], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class210)) || _class10); - -// node_modules/@antv/g-webgpu-core/es/components/scenegraph/TransformComponent.js -function _createSuper7(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct7(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct7() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var TransformComponent = /* @__PURE__ */ function(_Component) { - _inherits(TransformComponent2, _Component); - var _super = _createSuper7(TransformComponent2); - function TransformComponent2(data3) { - var _this; - _classCallCheck(this, TransformComponent2); - _this = _super.call(this, data3); - _this.dirtyFlag = void 0; - _this.localDirtyFlag = void 0; - _this.parent = null; - _this.localPosition = vec3_exports.fromValues(0, 0, 0); - _this.localRotation = quat_exports.fromValues(0, 0, 0, 1); - _this.localScale = vec3_exports.fromValues(1, 1, 1); - _this.localTransform = mat4_exports.create(); - _this.position = vec3_exports.fromValues(0, 0, 0); - _this.rotation = quat_exports.fromValues(0, 0, 0, 1); - _this.scaling = vec3_exports.fromValues(1, 1, 1); - _this.worldTransform = mat4_exports.create(); - _this.matrixTransform = function() { - var transformed = mat4_exports.create(); - return function(mat) { - mat4_exports.multiply(transformed, _this.getLocalTransform(), mat); - mat4_exports.getScaling(_this.localScale, transformed); - mat4_exports.getTranslation(_this.localPosition, transformed); - mat4_exports.getRotation(_this.localRotation, transformed); - }; - }(); - _this.rotateRollPitchYaw = function() { - var quatX = quat_exports.create(); - var quatY = quat_exports.create(); - var quatZ = quat_exports.create(); - return function(x6, y5, z3) { - _this.setDirty(); - quat_exports.fromEuler(quatX, x6, 0, 0); - quat_exports.fromEuler(quatY, 0, y5, 0); - quat_exports.fromEuler(quatZ, 0, 0, z3); - quat_exports.multiply(_this.localRotation, quatX, _this.localRotation); - quat_exports.multiply(_this.localRotation, _this.localRotation, quatY); - quat_exports.multiply(_this.localRotation, quatZ, _this.localRotation); - quat_exports.normalize(_this.localRotation, _this.localRotation); - }; - }(); - _this.lerp = function() { - var aS = vec3_exports.create(); - var aR = quat_exports.create(); - var aT = vec3_exports.create(); - var bS = vec3_exports.create(); - var bR = quat_exports.create(); - var bT = vec3_exports.create(); - return function(a4, b10, t4) { - _this.setDirty(); - mat4_exports.getScaling(aS, a4.worldTransform); - mat4_exports.getTranslation(aT, a4.worldTransform); - mat4_exports.getRotation(aR, a4.worldTransform); - mat4_exports.getScaling(bS, b10.worldTransform); - mat4_exports.getTranslation(bT, b10.worldTransform); - mat4_exports.getRotation(bR, b10.worldTransform); - vec3_exports.lerp(_this.localScale, aS, bS, t4); - quat_exports.slerp(_this.localRotation, aR, bR, t4); - vec3_exports.lerp(_this.localPosition, aT, bT, t4); - }; - }(); - _this.translate = function() { - var tr = vec3_exports.create(); - return function(translation) { - vec3_exports.add(tr, _this.getPosition(), translation); - _this.setPosition(tr); - _this.setDirty(true); - return _assertThisInitialized(_this); - }; - }(); - _this.translateLocal = function() { - return function(translation) { - vec3_exports.transformQuat(translation, translation, _this.localRotation); - vec3_exports.add(_this.localPosition, _this.localPosition, translation); - _this.setLocalDirty(true); - return _assertThisInitialized(_this); - }; - }(); - _this.setPosition = function() { - var parentInvertMatrix = mat4_exports.create(); - return function(position2) { - _this.position = position2; - _this.setLocalDirty(true); - if (_this.parent === null) { - vec3_exports.copy(_this.localPosition, position2); - } else { - mat4_exports.copy(parentInvertMatrix, _this.parent.worldTransform); - mat4_exports.invert(parentInvertMatrix, parentInvertMatrix); - vec3_exports.transformMat4(_this.localPosition, position2, parentInvertMatrix); - } - return _assertThisInitialized(_this); - }; - }(); - _this.rotate = function() { - var parentInvertRotation = quat_exports.create(); - return function(quaternion) { - if (_this.parent === null) { - quat_exports.multiply(_this.localRotation, _this.localRotation, quaternion); - quat_exports.normalize(_this.localRotation, _this.localRotation); - } else { - var rot = _this.getRotation(); - var parentRot = _this.parent.getRotation(); - quat_exports.copy(parentInvertRotation, parentRot); - quat_exports.invert(parentInvertRotation, parentInvertRotation); - quat_exports.multiply(parentInvertRotation, parentInvertRotation, quaternion); - quat_exports.multiply(_this.localRotation, quaternion, rot); - quat_exports.normalize(_this.localRotation, _this.localRotation); - } - _this.setLocalDirty(); - return _assertThisInitialized(_this); - }; - }(); - _this.rotateLocal = function() { - return function(quaternion) { - quat_exports.multiply(_this.localRotation, _this.localRotation, quaternion); - quat_exports.normalize(_this.localRotation, _this.localRotation); - _this.setLocalDirty(true); - return _assertThisInitialized(_this); - }; - }(); - _this.setRotation = function() { - var invParentRot = quat_exports.create(); - return function(rotation) { - if (_this.parent === null) { - quat_exports.copy(_this.localRotation, rotation); - } else { - quat_exports.copy(invParentRot, _this.parent.getRotation()); - quat_exports.invert(invParentRot, invParentRot); - quat_exports.copy(_this.localRotation, invParentRot); - quat_exports.mul(_this.localRotation, _this.localRotation, rotation); - } - _this.setLocalDirty(true); - return _assertThisInitialized(_this); - }; - }(); - return _this; - } - _createClass(TransformComponent2, [{ - key: "setLocalPosition", - value: function setLocalPosition(position2) { - vec3_exports.copy(this.localPosition, position2); - this.setLocalDirty(true); - } - }, { - key: "setLocalScale", - value: function setLocalScale(scale12) { - vec3_exports.copy(this.localScale, scale12); - this.setLocalDirty(true); - } - }, { - key: "setLocalRotation", - value: function setLocalRotation(rotation) { - quat_exports.copy(this.localRotation, rotation); - this.setLocalDirty(true); - return this; - } - }, { - key: "isDirty", - value: function isDirty() { - return this.dirtyFlag; - } - }, { - key: "setDirty", - value: function setDirty() { - var value2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; - if (value2) { - this.dirtyFlag |= TransformComponent2.DIRTY; - } else { - this.dirtyFlag &= ~TransformComponent2.DIRTY; - } - } - }, { - key: "isLocalDirty", - value: function isLocalDirty() { - return this.localDirtyFlag; - } - }, { - key: "setLocalDirty", - value: function setLocalDirty() { - var value2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; - if (value2) { - this.localDirtyFlag |= TransformComponent2.DIRTY; - this.setDirty(true); - } else { - this.localDirtyFlag &= ~TransformComponent2.DIRTY; - } - } - }, { - key: "updateTransform", - value: function updateTransform() { - if (this.isLocalDirty()) { - this.getLocalTransform(); - } - if (this.isDirty()) { - if (this.parent === null) { - mat4_exports.copy(this.worldTransform, this.getLocalTransform()); - this.setDirty(false); - } - } - } - }, { - key: "updateTransformWithParent", - value: function updateTransformWithParent(parent) { - mat4_exports.multiply(this.worldTransform, parent.worldTransform, this.getLocalTransform()); - } - }, { - key: "applyTransform", - value: function applyTransform() { - this.setDirty(); - mat4_exports.getScaling(this.localScale, this.worldTransform); - mat4_exports.getTranslation(this.localPosition, this.worldTransform); - mat4_exports.getRotation(this.localRotation, this.worldTransform); - } - }, { - key: "clearTransform", - value: function clearTransform() { - this.setDirty(); - this.localPosition = vec3_exports.fromValues(0, 0, 0); - this.localRotation = quat_exports.fromValues(0, 0, 0, 1); - this.localScale = vec3_exports.fromValues(1, 1, 1); - } - }, { - key: "scaleLocal", - value: function scaleLocal(scaling) { - this.setLocalDirty(); - vec3_exports.multiply(this.localScale, this.localScale, scaling); - return this; - } - }, { - key: "getLocalPosition", - value: function getLocalPosition() { - return this.localPosition; - } - }, { - key: "getLocalRotation", - value: function getLocalRotation() { - return this.localRotation; - } - }, { - key: "getLocalScale", - value: function getLocalScale() { - return this.localScale; - } - }, { - key: "getLocalTransform", - value: function getLocalTransform() { - if (this.localDirtyFlag) { - mat4_exports.fromRotationTranslationScale(this.localTransform, this.localRotation, this.localPosition, this.localScale); - this.setLocalDirty(false); - } - return this.localTransform; - } - }, { - key: "getWorldTransform", - value: function getWorldTransform() { - if (!this.isLocalDirty() && !this.isDirty()) { - return this.worldTransform; - } - if (this.parent) { - this.parent.getWorldTransform(); - } - this.updateTransform(); - return this.worldTransform; - } - }, { - key: "getPosition", - value: function getPosition() { - mat4_exports.getTranslation(this.position, this.worldTransform); - return this.position; - } - }, { - key: "getRotation", - value: function getRotation2() { - mat4_exports.getRotation(this.rotation, this.worldTransform); - return this.rotation; - } - }, { - key: "getScale", - value: function getScale() { - mat4_exports.getScaling(this.scaling, this.worldTransform); - return this.scaling; - } - }]); - return TransformComponent2; -}(Component2); -TransformComponent.DIRTY = 1 << 0; - -// node_modules/@antv/g-webgpu-core/es/inversify.config.js -var import_inversify14 = __toModule(require_inversify()); -var import_inversify_inject_decorators = __toModule(require_lib3()); - -// node_modules/@antv/g-webgpu-core/es/components/framegraph/ResourcePool.js -var import_inversify10 = __toModule(require_inversify()); -var _dec16; -var _dec210; -var _class11; -var _class211; -var _descriptor14; -var _temp10; -var ResourcePool = (_dec16 = (0, import_inversify10.injectable)(), _dec210 = (0, import_inversify10.inject)(IDENTIFIER.RenderEngine), _dec16(_class11 = (_class211 = (_temp10 = /* @__PURE__ */ function() { - function ResourcePool2() { - _classCallCheck(this, ResourcePool2); - _initializerDefineProperty(this, "engine", _descriptor14, this); - this.resourcePool = {}; - } - _createClass(ResourcePool2, [{ - key: "getOrCreateResource", - value: function getOrCreateResource(resource) { - if (!this.resourcePool[resource.name]) { - var _resource$descriptor = resource.descriptor, width2 = _resource$descriptor.width, height = _resource$descriptor.height, usage = _resource$descriptor.usage; - this.resourcePool[resource.name] = this.engine.createFramebuffer({ - color: this.engine.createTexture2D({ - width: width2, - height, - wrapS: gl.CLAMP_TO_EDGE, - wrapT: gl.CLAMP_TO_EDGE, - usage - }) - }); - } - return this.resourcePool[resource.name]; - } - }, { - key: "clean", - value: function clean() { - this.resourcePool = {}; - } - }]); - return ResourcePool2; -}(), _temp10), _descriptor14 = _applyDecoratedDescriptor(_class211.prototype, "engine", [_dec210], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class211)) || _class11); - -// node_modules/@antv/g-webgpu-core/es/components/scenegraph/NameComponent.js -function _createSuper8(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct8(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct8() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var NameComponent = /* @__PURE__ */ function(_Component) { - _inherits(NameComponent2, _Component); - var _super = _createSuper8(NameComponent2); - function NameComponent2(data3) { - var _this; - _classCallCheck(this, NameComponent2); - _this = _super.call(this, data3); - _this.name = void 0; - _this.name = data3.name || ""; - return _this; - } - return NameComponent2; -}(Component2); - -// node_modules/@antv/g-webgpu-core/es/services/config/ConfigService.js -var import_inversify11 = __toModule(require_inversify()); -var _dec17; -var _class12; -var _temp11; -var ConfigService = (_dec17 = (0, import_inversify11.injectable)(), _dec17(_class12 = (_temp11 = /* @__PURE__ */ function() { - function ConfigService2() { - _classCallCheck(this, ConfigService2); - this.config = void 0; - } - _createClass(ConfigService2, [{ - key: "get", - value: function get3() { - return this.config; - } - }, { - key: "set", - value: function set10(config) { - this.config = config; - } - }]); - return ConfigService2; -}(), _temp11)) || _class12); - -// node_modules/@antv/g-webgpu-core/es/services/interactor/IteractorService.js -var import_inversify12 = __toModule(require_inversify()); -var _dec18; -var _class13; -var IInteractorEvent; -(function(IInteractorEvent2) { - IInteractorEvent2["PANSTART"] = "PANSTART"; - IInteractorEvent2["PANEND"] = "PANEND"; - IInteractorEvent2["PANMOVE"] = "PANMOVE"; - IInteractorEvent2["PINCH"] = "PINCH"; - IInteractorEvent2["KEYDOWN"] = "KEYDOWN"; - IInteractorEvent2["KEYUP"] = "KEYUP"; - IInteractorEvent2["HOVER"] = "HOVER"; -})(IInteractorEvent || (IInteractorEvent = {})); -var InteractorService = (_dec18 = (0, import_inversify12.injectable)(), _dec18(_class13 = /* @__PURE__ */ function() { - function InteractorService2() { - _classCallCheck(this, InteractorService2); - } - _createClass(InteractorService2, [{ - key: "listen", - value: function listen(canvas) { - } - }, { - key: "on", - value: function on2(event, args) { - } - }, { - key: "connect", - value: function connect2() { - } - }, { - key: "disconnect", - value: function disconnect() { - } - }, { - key: "destroy", - value: function destroy() { - } - }]); - return InteractorService2; -}()) || _class13); - -// node_modules/@antv/g-webgpu-core/es/services/shader-module/ShaderModuleService.js -var import_inversify13 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu-core/es/utils/shader-module.js -function getUniformLengthByType(type2) { - var arrayLength = 0; - switch (type2) { - case "vec2": - case "ivec2": - arrayLength = 2; - break; - case "vec3": - case "ivec3": - arrayLength = 3; - break; - case "vec4": - case "ivec4": - case "mat2": - arrayLength = 4; - break; - case "mat3": - arrayLength = 9; - break; - case "mat4": - arrayLength = 16; - break; - default: - } - return arrayLength; -} -var uniformRegExp = /uniform\s+(bool|float|int|vec2|vec3|vec4|ivec2|ivec3|ivec4|mat2|mat3|mat4|sampler2D|samplerCube)\s+([\s\S]*?);/g; -function extractUniforms(content) { - var uniforms = {}; - content = content.replace(uniformRegExp, function(_8, type2, c5) { - var defaultValues = c5.split(":"); - var uniformName = defaultValues[0].trim(); - var defaultValue = ""; - if (defaultValues.length > 1) { - defaultValue = defaultValues[1].trim(); - } - switch (type2) { - case "bool": - defaultValue = defaultValue === "true"; - break; - case "float": - case "int": - defaultValue = Number(defaultValue); - break; - case "vec2": - case "vec3": - case "vec4": - case "ivec2": - case "ivec3": - case "ivec4": - case "mat2": - case "mat3": - case "mat4": - if (defaultValue) { - defaultValue = defaultValue.replace("[", "").replace("]", "").split(",").reduce(function(prev, cur) { - prev.push(Number(cur.trim())); - return prev; - }, []); - } else { - defaultValue = new Array(getUniformLengthByType(type2)).fill(0); - } - break; - default: - } - uniforms[uniformName] = defaultValue; - return "uniform ".concat(type2, " ").concat(uniformName, ";\n"); - }); - return { - content, - uniforms - }; -} - -// node_modules/@antv/g-webgpu-core/es/utils/uniq.js -function uniq4(array) { - return array.filter(function(v3, i4, a4) { - return a4.indexOf(v3) === i4; - }); -} - -// node_modules/@antv/g-webgpu-core/es/services/shader-module/ShaderModuleService.js -var _dec19; -var _class14; -var _temp12; -function ownKeys4(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread4(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys4(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys4(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -var pickingFrag = "varying vec4 v_PickingResult;\nuniform vec4 u_HighlightColor : [0, 0, 0, 0];\nuniform float u_PickingStage : 0.0;\n\n#define PICKING_ENCODE 1.0\n#define PICKING_HIGHLIGHT 2.0\n#define COLOR_SCALE 1. / 255.\n\n/*\n * Returns highlight color if this item is selected.\n */\nvec4 filterHighlightColor(vec4 color) {\n bool selected = bool(v_PickingResult.a);\n\n if (selected) {\n vec4 highLightColor = u_HighlightColor * COLOR_SCALE;\n\n float highLightAlpha = highLightColor.a;\n float highLightRatio = highLightAlpha / (highLightAlpha + color.a * (1.0 - highLightAlpha));\n\n vec3 resultRGB = mix(color.rgb, highLightColor.rgb, highLightRatio);\n return vec4(resultRGB, color.a);\n } else {\n return color;\n }\n}\n\n/*\n * Returns picking color if picking enabled else unmodified argument.\n */\nvec4 filterPickingColor(vec4 color) {\n vec3 pickingColor = v_PickingResult.rgb;\n if (u_PickingStage == PICKING_ENCODE && length(pickingColor) < 0.001) {\n discard;\n }\n return u_PickingStage == PICKING_ENCODE ? vec4(pickingColor, step(0.001,color.a)): color;\n}\n\n/*\n * Returns picking color if picking is enabled if not\n * highlight color if this item is selected, otherwise unmodified argument.\n */\nvec4 filterColor(vec4 color) {\n return filterPickingColor(filterHighlightColor(color));\n}\n"; -var pickingVert = "attribute vec3 a_PickingColor;\nvarying vec4 v_PickingResult;\n\nuniform vec3 u_PickingColor : [0, 0, 0];\nuniform vec4 u_HighlightColor : [0, 0, 0, 0];\nuniform float u_PickingStage : 0.0;\nuniform float u_PickingThreshold : 1.0;\nuniform float u_PickingBuffer: 0.0;\n\n#define PICKING_ENCODE 1.0\n#define PICKING_HIGHLIGHT 2.0\n#define COLOR_SCALE 1. / 255.\n\nbool isVertexPicked(vec3 vertexColor) {\n return\n abs(vertexColor.r - u_PickingColor.r) < u_PickingThreshold &&\n abs(vertexColor.g - u_PickingColor.g) < u_PickingThreshold &&\n abs(vertexColor.b - u_PickingColor.b) < u_PickingThreshold;\n}\n\nvoid setPickingColor(vec3 pickingColor) {\n // compares only in highlight stage\n v_PickingResult.a = float((u_PickingStage == PICKING_HIGHLIGHT) && isVertexPicked(pickingColor));\n\n // Stores the picking color so that the fragment shader can render it during picking\n v_PickingResult.rgb = pickingColor * COLOR_SCALE;\n}\n\nfloat setPickingSize(float x) {\n return u_PickingStage == PICKING_ENCODE ? x + u_PickingBuffer : x;\n}"; -var sdf2dFrag = "/**\n * 2D signed distance field functions\n * @see http://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm\n */\n\nfloat ndot(vec2 a, vec2 b ) { return a.x*b.x - a.y*b.y; }\n\nfloat sdCircle(vec2 p, float r) {\n return length(p) - r;\n}\n\nfloat sdEquilateralTriangle(vec2 p) {\n float k = sqrt(3.0);\n p.x = abs(p.x) - 1.0;\n p.y = p.y + 1.0/k;\n if( p.x + k*p.y > 0.0 ) p = vec2(p.x-k*p.y,-k*p.x-p.y)/2.0;\n p.x -= clamp( p.x, -2.0, 0.0 );\n return -length(p)*sign(p.y);\n}\n\nfloat sdBox(vec2 p, vec2 b) {\n vec2 d = abs(p)-b;\n return length(max(d,vec2(0))) + min(max(d.x,d.y),0.0);\n}\n\nfloat sdPentagon(vec2 p, float r) {\n vec3 k = vec3(0.809016994,0.587785252,0.726542528);\n p.x = abs(p.x);\n p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y);\n p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y);\n p -= vec2(clamp(p.x,-r*k.z,r*k.z),r);\n return length(p)*sign(p.y);\n}\n\nfloat sdHexagon(vec2 p, float r) {\n vec3 k = vec3(-0.866025404,0.5,0.577350269);\n p = abs(p);\n p -= 2.0*min(dot(k.xy,p),0.0)*k.xy;\n p -= vec2(clamp(p.x, -k.z*r, k.z*r), r);\n return length(p)*sign(p.y);\n}\n\nfloat sdOctogon(vec2 p, float r) {\n vec3 k = vec3(-0.9238795325, 0.3826834323, 0.4142135623 );\n p = abs(p);\n p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y);\n p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y);\n p -= vec2(clamp(p.x, -k.z*r, k.z*r), r);\n return length(p)*sign(p.y);\n}\n\nfloat sdHexagram(vec2 p, float r) {\n vec4 k=vec4(-0.5,0.8660254038,0.5773502692,1.7320508076);\n p = abs(p);\n p -= 2.0*min(dot(k.xy,p),0.0)*k.xy;\n p -= 2.0*min(dot(k.yx,p),0.0)*k.yx;\n p -= vec2(clamp(p.x,r*k.z,r*k.w),r);\n return length(p)*sign(p.y);\n}\n\nfloat sdRhombus(vec2 p, vec2 b) {\n vec2 q = abs(p);\n float h = clamp((-2.0*ndot(q,b)+ndot(b,b))/dot(b,b),-1.0,1.0);\n float d = length( q - 0.5*b*vec2(1.0-h,1.0+h) );\n return d * sign( q.x*b.y + q.y*b.x - b.x*b.y );\n}\n\nfloat sdVesica(vec2 p, float r, float d) {\n p = abs(p);\n float b = sqrt(r*r-d*d); // can delay this sqrt\n return ((p.y-b)*d>p.x*b)\n ? length(p-vec2(0.0,b))\n : length(p-vec2(-d,0.0))-r;\n}"; -var precisionRegExp = /precision\s+(high|low|medium)p\s+float/; -var globalDefaultprecision = "#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n#endif\n"; -var includeRegExp = /#pragma include (["^+"]?["\ "[a-zA-Z_0-9](.*)"]*?)/g; -var ShaderModuleService = (_dec19 = (0, import_inversify13.injectable)(), _dec19(_class14 = (_temp12 = /* @__PURE__ */ function() { - function ShaderModuleService2() { - _classCallCheck(this, ShaderModuleService2); - this.moduleCache = {}; - this.rawContentCache = {}; - } - _createClass(ShaderModuleService2, [{ - key: "registerBuiltinModules", - value: function registerBuiltinModules() { - this.destroy(); - this.registerModule("picking", { - vs: pickingVert, - fs: pickingFrag - }); - this.registerModule("sdf2d", { - vs: "", - fs: sdf2dFrag - }); - } - }, { - key: "registerModule", - value: function registerModule(moduleName, moduleParams) { - if (this.rawContentCache[moduleName]) { - return; - } - var _moduleParams$vs = moduleParams.vs, vs = _moduleParams$vs === void 0 ? "" : _moduleParams$vs, _moduleParams$fs = moduleParams.fs, fs = _moduleParams$fs === void 0 ? "" : _moduleParams$fs, declaredUniforms = moduleParams.uniforms; - var _extractUniforms = extractUniforms(vs), extractedVS = _extractUniforms.content, vsUniforms = _extractUniforms.uniforms; - var _extractUniforms2 = extractUniforms(fs), extractedFS = _extractUniforms2.content, fsUniforms = _extractUniforms2.uniforms; - this.rawContentCache[moduleName] = { - fs: extractedFS, - uniforms: _objectSpread4(_objectSpread4(_objectSpread4({}, vsUniforms), fsUniforms), declaredUniforms), - vs: extractedVS - }; - } - }, { - key: "destroy", - value: function destroy() { - this.moduleCache = {}; - this.rawContentCache = {}; - } - }, { - key: "getModule", - value: function getModule(moduleName) { - var _this = this; - if (this.moduleCache[moduleName]) { - return this.moduleCache[moduleName]; - } - var rawVS = this.rawContentCache[moduleName].vs || ""; - var rawFS = this.rawContentCache[moduleName].fs || ""; - var _this$processModule = this.processModule(rawVS, [], "vs"), vs = _this$processModule.content, vsIncludeList = _this$processModule.includeList; - var _this$processModule2 = this.processModule(rawFS, [], "fs"), fs = _this$processModule2.content, fsIncludeList = _this$processModule2.includeList; - var compiledFs = fs; - var uniforms = uniq4(vsIncludeList.concat(fsIncludeList).concat(moduleName)).reduce(function(prev, cur) { - return _objectSpread4(_objectSpread4({}, prev), _this.rawContentCache[cur].uniforms); - }, {}); - if (!precisionRegExp.test(fs)) { - compiledFs = globalDefaultprecision + fs; - } - this.moduleCache[moduleName] = { - fs: compiledFs.trim(), - uniforms, - vs: vs.trim() - }; - return this.moduleCache[moduleName]; - } - }, { - key: "processModule", - value: function processModule(rawContent, includeList, type2) { - var _this2 = this; - var compiled = rawContent.replace(includeRegExp, function(_8, strMatch) { - var includeOpt = strMatch.split(" "); - var includeName = includeOpt[0].replace(/"/g, ""); - if (includeList.indexOf(includeName) > -1) { - return ""; - } - var txt = _this2.rawContentCache[includeName][type2]; - includeList.push(includeName); - var _this2$processModule = _this2.processModule(txt || "", includeList, type2), content = _this2$processModule.content; - return content; - }); - return { - content: compiled, - includeList - }; - } - }]); - return ShaderModuleService2; -}(), _temp12)) || _class14); - -// node_modules/@antv/g-webgpu-core/es/inversify.config.js -var container = new import_inversify14.Container(); -var DECORATORS = (0, import_inversify_inject_decorators.default)(container, false); -container.bind(IDENTIFIER.ShaderModuleService).to(ShaderModuleService).inSingletonScope(); -container.bind(IDENTIFIER.NameComponentManager).toConstantValue(new ComponentManager(NameComponent)); -container.bind(IDENTIFIER.HierarchyComponentManager).toConstantValue(new ComponentManager(HierarchyComponent)); -container.bind(IDENTIFIER.TransformComponentManager).toConstantValue(new ComponentManager(TransformComponent)); -container.bind(IDENTIFIER.MeshComponentManager).toConstantValue(new ComponentManager(MeshComponent)); -container.bind(IDENTIFIER.CullableComponentManager).toConstantValue(new ComponentManager(CullableComponent)); -container.bind(IDENTIFIER.GeometryComponentManager).toConstantValue(new ComponentManager(GeometryComponent)); -container.bind(IDENTIFIER.MaterialComponentManager).toConstantValue(new ComponentManager(MaterialComponent)); -function createWorldContainer() { - var worldContainer = new import_inversify14.Container(); - worldContainer.parent = container; - worldContainer.bind(IDENTIFIER.Systems).to(SceneGraphSystem).inSingletonScope().whenTargetNamed(IDENTIFIER.SceneGraphSystem); - worldContainer.bind(IDENTIFIER.Systems).to(FrameGraphSystem).inSingletonScope().whenTargetNamed(IDENTIFIER.FrameGraphSystem); - worldContainer.bind(IDENTIFIER.Systems).to(MeshSystem).inSingletonScope().whenTargetNamed(IDENTIFIER.MeshSystem); - worldContainer.bind(IDENTIFIER.Systems).to(GeometrySystem).inSingletonScope().whenTargetNamed(IDENTIFIER.GeometrySystem); - worldContainer.bind(IDENTIFIER.Systems).to(MaterialSystem).inSingletonScope().whenTargetNamed(IDENTIFIER.MaterialSystem); - worldContainer.bind(IDENTIFIER.Systems).to(RendererSystem).inSingletonScope().whenTargetNamed(IDENTIFIER.RendererSystem); - worldContainer.bind(IDENTIFIER.ResourcePool).to(ResourcePool).inSingletonScope(); - worldContainer.bind(IDENTIFIER.ConfigService).to(ConfigService).inSingletonScope(); - worldContainer.bind(IDENTIFIER.InteractorService).to(InteractorService).inSingletonScope(); - worldContainer.bind(IDENTIFIER.RenderPass).to(RenderPass).inSingletonScope().whenTargetNamed(RenderPass.IDENTIFIER); - worldContainer.bind(IDENTIFIER.RenderPass).to(CopyPass).inSingletonScope().whenTargetNamed(CopyPass.IDENTIFIER); - worldContainer.bind(IDENTIFIER.RenderPass).to(PixelPickingPass).inSingletonScope().whenTargetNamed(PixelPickingPass.IDENTIFIER); - worldContainer.bind(IDENTIFIER.RenderPassFactory).toFactory(function(context) { - return function(name) { - return context.container.getNamed(IDENTIFIER.RenderPass, name); - }; - }); - return worldContainer; -} - -// node_modules/@antv/g-webgpu-core/es/utils/aabb.js -function generateAABBFromVertices(positions) { - var aabb = new AABB(); - var min7 = vec3_exports.fromValues(positions[0], positions[1], positions[2]); - var max8 = vec3_exports.fromValues(positions[0], positions[1], positions[2]); - for (var i4 = 3; i4 < positions.length; ) { - var x6 = positions[i4++]; - var y5 = positions[i4++]; - var z3 = positions[i4++]; - if (x6 < min7[0]) { - min7[0] = x6; - } - if (y5 < min7[1]) { - min7[1] = y5; - } - if (z3 < min7[2]) { - min7[2] = z3; - } - if (x6 > max8[0]) { - max8[0] = x6; - } - if (y5 > max8[1]) { - max8[1] = y5; - } - if (z3 > max8[2]) { - max8[2] = z3; - } - } - aabb.setMinMax(min7, max8); - return aabb; -} - -// node_modules/@antv/g-webgpu-core/es/utils/isSafari.js -var isSafari = typeof navigator !== "undefined" && /Version\/[\d\.]+.*Safari/.test(navigator.userAgent); - -// node_modules/@antv/g-webgpu-core/es/shape/BoundingSphere.js -var tmpVecA = vec3_exports.create(); - -// node_modules/@antv/g-webgpu-core/es/shape/Ray.js -var tmpVecA2 = vec3_exports.create(); -var tmpVecB = vec3_exports.create(); -var tmpVecC = vec3_exports.create(); -var tmpVecD = vec3_exports.create(); -var tmpVecE = vec3_exports.create(); - -// node_modules/@antv/g-webgpu-core/es/components/renderer/IMultiPassRenderer.js -var PassType; -(function(PassType2) { - PassType2["Normal"] = "normal"; - PassType2["PostProcessing"] = "post-processing"; -})(PassType || (PassType = {})); - -// node_modules/@antv/g-webgpu-core/es/index.js -var AST_TOKEN_TYPES; -(function(AST_TOKEN_TYPES2) { - AST_TOKEN_TYPES2["Void"] = "Void"; - AST_TOKEN_TYPES2["Boolean"] = "Boolean"; - AST_TOKEN_TYPES2["Float"] = "Float"; - AST_TOKEN_TYPES2["Uint32"] = "Uint32"; - AST_TOKEN_TYPES2["Int32"] = "Int32"; - AST_TOKEN_TYPES2["Vector"] = "Vector"; - AST_TOKEN_TYPES2["Vector2Float"] = "vec2"; - AST_TOKEN_TYPES2["Vector3Float"] = "vec3"; - AST_TOKEN_TYPES2["Vector4Float"] = "vec4"; - AST_TOKEN_TYPES2["Vector2Boolean"] = "vec2"; - AST_TOKEN_TYPES2["Vector3Boolean"] = "vec3"; - AST_TOKEN_TYPES2["Vector4Boolean"] = "vec4"; - AST_TOKEN_TYPES2["Vector2Uint"] = "vec2"; - AST_TOKEN_TYPES2["Vector3Uint"] = "vec3"; - AST_TOKEN_TYPES2["Vector4Uint"] = "vec4"; - AST_TOKEN_TYPES2["Vector2Int"] = "vec2"; - AST_TOKEN_TYPES2["Vector3Int"] = "vec3"; - AST_TOKEN_TYPES2["Vector4Int"] = "vec4"; - AST_TOKEN_TYPES2["Matrix"] = "Matrix"; - AST_TOKEN_TYPES2["Matrix3x3Float"] = "mat3x3"; - AST_TOKEN_TYPES2["Matrix4x4Float"] = "mat4x4"; - AST_TOKEN_TYPES2["Struct"] = "Struct"; - AST_TOKEN_TYPES2["FloatArray"] = "Float[]"; - AST_TOKEN_TYPES2["Vector4FloatArray"] = "vec4[]"; -})(AST_TOKEN_TYPES || (AST_TOKEN_TYPES = {})); -var AST_NODE_TYPES; -(function(AST_NODE_TYPES2) { - AST_NODE_TYPES2["Program"] = "Program"; - AST_NODE_TYPES2["Identifier"] = "Identifier"; - AST_NODE_TYPES2["VariableDeclaration"] = "VariableDeclaration"; - AST_NODE_TYPES2["BlockStatement"] = "BlockStatement"; - AST_NODE_TYPES2["ReturnStatement"] = "ReturnStatement"; - AST_NODE_TYPES2["FunctionDeclaration"] = "FunctionDeclaration"; - AST_NODE_TYPES2["VariableDeclarator"] = "VariableDeclarator"; - AST_NODE_TYPES2["AssignmentExpression"] = "AssignmentExpression"; - AST_NODE_TYPES2["LogicalExpression"] = "LogicalExpression"; - AST_NODE_TYPES2["BinaryExpression"] = "BinaryExpression"; - AST_NODE_TYPES2["ArrayExpression"] = "ArrayExpression"; - AST_NODE_TYPES2["UnaryExpression"] = "UnaryExpression"; - AST_NODE_TYPES2["UpdateExpression"] = "UpdateExpression"; - AST_NODE_TYPES2["FunctionExpression"] = "FunctionExpression"; - AST_NODE_TYPES2["MemberExpression"] = "MemberExpression"; - AST_NODE_TYPES2["ConditionalExpression"] = "ConditionalExpression"; - AST_NODE_TYPES2["ExpressionStatement"] = "ExpressionStatement"; - AST_NODE_TYPES2["CallExpression"] = "CallExpression"; - AST_NODE_TYPES2["NumThreadStatement"] = "NumThreadStatement"; - AST_NODE_TYPES2["StorageStatement"] = "StorageStatement"; - AST_NODE_TYPES2["DoWhileStatement"] = "DoWhileStatement"; - AST_NODE_TYPES2["WhileStatement"] = "WhileStatement"; - AST_NODE_TYPES2["ForStatement"] = "ForStatement"; - AST_NODE_TYPES2["BreakStatement"] = "BreakStatement"; - AST_NODE_TYPES2["ContinueStatement"] = "ContinueStatement"; - AST_NODE_TYPES2["IfStatement"] = "IfStatement"; - AST_NODE_TYPES2["ImportedFunctionStatement"] = "ImportedFunctionStatement"; -})(AST_NODE_TYPES || (AST_NODE_TYPES = {})); -var STORAGE_CLASS; -(function(STORAGE_CLASS2) { - STORAGE_CLASS2["Input"] = "Input"; - STORAGE_CLASS2["Output"] = "Output"; - STORAGE_CLASS2["Uniform"] = "Uniform"; - STORAGE_CLASS2["Workgroup"] = "Workgroup"; - STORAGE_CLASS2["UniformConstant"] = "UniformConstant"; - STORAGE_CLASS2["Image"] = "Image"; - STORAGE_CLASS2["StorageBuffer"] = "StorageBuffer"; - STORAGE_CLASS2["Private"] = "Private"; - STORAGE_CLASS2["Function"] = "Function"; -})(STORAGE_CLASS || (STORAGE_CLASS = {})); -var Target; -(function(Target2) { - Target2["GLSL100"] = "GLSL100"; - Target2["GLSL450"] = "GLSL450"; - Target2["WGSL"] = "WGSL"; -})(Target || (Target = {})); -var DefineValuePlaceholder = "__DefineValuePlaceholder__"; - -// node_modules/@antv/g-webgpu/es/camera/Camera.js -var import_inversify16 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu/es/utils/is-number.js -function isNumber5(value2) { - return typeof value2 === "number"; -} - -// node_modules/@antv/g-webgpu/es/utils/math.js -function getAngle5(angle3) { - if (angle3 === void 0) { - return 0; - } else if (angle3 > 360 || angle3 < -360) { - return angle3 % 360; - } - return angle3; -} -function createVec3(x6, y5, z3) { - if (isNumber5(x6)) { - return vec3_exports.fromValues(x6, y5, z3); - } - if (x6.length === 3) { - return vec3_exports.clone(x6); - } - return vec3_exports.fromValues(x6[0], x6[1], x6[2]); -} - -// node_modules/@antv/g-webgpu/es/camera/Landmark.js -var Landmark = /* @__PURE__ */ function() { - function Landmark2(name, c5) { - _classCallCheck(this, Landmark2); - this.name = void 0; - this.matrix = void 0; - this.right = void 0; - this.up = void 0; - this.forward = void 0; - this.position = void 0; - this.focalPoint = void 0; - this.distanceVector = void 0; - this.distance = void 0; - this.dollyingStep = void 0; - this.azimuth = 0; - this.elevation = 0; - this.roll = 0; - this.relAzimuth = 0; - this.relElevation = 0; - this.relRoll = 0; - this.name = name; - this.matrix = mat4_exports.clone(c5.matrix); - this.right = vec3_exports.clone(c5.right); - this.up = vec3_exports.clone(c5.up); - this.forward = vec3_exports.clone(c5.forward); - this.position = vec3_exports.clone(c5.position); - this.focalPoint = vec3_exports.clone(c5.focalPoint); - this.distanceVector = vec3_exports.clone(c5.distanceVector); - this.azimuth = c5.azimuth; - this.elevation = c5.elevation; - this.roll = c5.roll; - this.relAzimuth = c5.relAzimuth; - this.relElevation = c5.relElevation; - this.relRoll = c5.relRoll; - this.dollyingStep = c5.dollyingStep; - this.distance = c5.distance; - } - _createClass(Landmark2, [{ - key: "getPosition", - value: function getPosition() { - return this.position; - } - }, { - key: "getFocalPoint", - value: function getFocalPoint() { - return this.focalPoint; - } - }, { - key: "getRoll", - value: function getRoll() { - return this.roll; - } - }, { - key: "retrieve", - value: function retrieve(c5) { - c5.matrix = mat4_exports.copy(c5.matrix, this.matrix); - c5.right = vec3_exports.copy(c5.right, this.right); - c5.up = vec3_exports.copy(c5.up, this.up); - c5.forward = vec3_exports.copy(c5.forward, this.forward); - c5.position = vec3_exports.copy(c5.position, this.position); - c5.focalPoint = vec3_exports.copy(c5.focalPoint, this.focalPoint); - c5.distanceVector = vec3_exports.copy(c5.distanceVector, this.distanceVector); - c5.azimuth = this.azimuth; - c5.elevation = this.elevation; - c5.roll = this.roll; - c5.relAzimuth = this.relAzimuth; - c5.relElevation = this.relElevation; - c5.relRoll = this.relRoll; - c5.dollyingStep = this.dollyingStep; - c5.distance = this.distance; - } - }]); - return Landmark2; -}(); - -// node_modules/@antv/g-webgpu/es/camera/Camera.js -var _dec20; -var _dec211; -var _class15; -var _class212; -var _descriptor15; -var _class35; -var _temp13; -var CAMERA_TYPE; -(function(CAMERA_TYPE2) { - CAMERA_TYPE2["ORBITING"] = "ORBITING"; - CAMERA_TYPE2["EXPLORING"] = "EXPLORING"; - CAMERA_TYPE2["TRACKING"] = "TRACKING"; -})(CAMERA_TYPE || (CAMERA_TYPE = {})); -var CAMERA_TRACKING_MODE; -(function(CAMERA_TRACKING_MODE2) { - CAMERA_TRACKING_MODE2["DEFAULT"] = "DEFAULT"; - CAMERA_TRACKING_MODE2["ROTATIONAL"] = "ROTATIONAL"; - CAMERA_TRACKING_MODE2["TRANSLATIONAL"] = "TRANSLATIONAL"; - CAMERA_TRACKING_MODE2["CINEMATIC"] = "CINEMATIC"; -})(CAMERA_TRACKING_MODE || (CAMERA_TRACKING_MODE = {})); -var CAMERA_PROJECTION_MODE; -(function(CAMERA_PROJECTION_MODE2) { - CAMERA_PROJECTION_MODE2["ORTHOGRAPHIC"] = "ORTHOGRAPHIC"; - CAMERA_PROJECTION_MODE2["PERSPECTIVE"] = "PERSPECTIVE"; -})(CAMERA_PROJECTION_MODE || (CAMERA_PROJECTION_MODE = {})); -var DEG_2_RAD = Math.PI / 180; -var RAD_2_DEG = 180 / Math.PI; -var Camera = (_dec20 = (0, import_inversify16.injectable)(), _dec211 = (0, import_inversify16.inject)(IDENTIFIER.InteractorService), _dec20(_class15 = (_class212 = (_temp13 = _class35 = /* @__PURE__ */ function() { - function Camera2() { - _classCallCheck(this, Camera2); - this.matrix = mat4_exports.create(); - this.right = vec3_exports.fromValues(1, 0, 0); - this.up = vec3_exports.fromValues(0, 1, 0); - this.forward = vec3_exports.fromValues(0, 0, 1); - this.position = vec3_exports.fromValues(0, 0, 1); - this.focalPoint = vec3_exports.fromValues(0, 0, 0); - this.distanceVector = vec3_exports.fromValues(0, 0, 0); - this.distance = 1; - this.azimuth = 0; - this.elevation = 0; - this.roll = 0; - this.relAzimuth = 0; - this.relElevation = 0; - this.relRoll = 0; - this.dollyingStep = 0; - this.maxDistance = Infinity; - this.minDistance = -Infinity; - this.rotateWorld = false; - _initializerDefineProperty(this, "interactor", _descriptor15, this); - this.fov = 30; - this.near = 0.1; - this.far = 1e4; - this.aspect = 1; - this.left = void 0; - this.rright = void 0; - this.top = void 0; - this.bottom = void 0; - this.zoom = 1; - this.perspective = mat4_exports.create(); - this.view = void 0; - this.following = void 0; - this.type = CAMERA_TYPE.EXPLORING; - this.trackingMode = CAMERA_TRACKING_MODE.DEFAULT; - this.projectionMode = CAMERA_PROJECTION_MODE.PERSPECTIVE; - this.frustum = new Frustum(); - this.landmarks = []; - this.landmarkAnimationID = void 0; - } - _createClass(Camera2, [{ - key: "clone", - value: function clone10() { - var camera = new Camera2(); - camera.setType(this.type, void 0); - camera.interactor = this.interactor; - return camera; - } - }, { - key: "getProjectionMode", - value: function getProjectionMode() { - return this.projectionMode; - } - }, { - key: "getPerspective", - value: function getPerspective() { - return this.perspective; - } - }, { - key: "getFrustum", - value: function getFrustum() { - return this.frustum; - } - }, { - key: "getPosition", - value: function getPosition() { - return this.position; - } - }, { - key: "setType", - value: function setType(type2, trackingMode) { - this.type = type2; - if (this.type === CAMERA_TYPE.EXPLORING) { - this.setWorldRotation(true); - } else { - this.setWorldRotation(false); - } - this._getAngles(); - if (this.type === CAMERA_TYPE.TRACKING && trackingMode !== void 0) { - this.setTrackingMode(trackingMode); - } - return this; - } - }, { - key: "setProjectionMode", - value: function setProjectionMode(projectionMode) { - this.projectionMode = projectionMode; - return this; - } - }, { - key: "setTrackingMode", - value: function setTrackingMode(trackingMode) { - if (this.type !== CAMERA_TYPE.TRACKING) { - throw new Error("Impossible to set a tracking mode if the camera is not of tracking type"); - } - this.trackingMode = trackingMode; - return this; - } - }, { - key: "setWorldRotation", - value: function setWorldRotation(flag) { - this.rotateWorld = flag; - this._getAngles(); - } - }, { - key: "getViewTransform", - value: function getViewTransform() { - return mat4_exports.invert(mat4_exports.create(), this.matrix); - } - }, { - key: "getWorldTransform", - value: function getWorldTransform() { - return this.matrix; - } - }, { - key: "setMatrix", - value: function setMatrix(matrix) { - this.matrix = matrix; - this._update(); - return this; - } - }, { - key: "setAspect", - value: function setAspect(aspect) { - this.setPerspective(this.near, this.far, this.fov, aspect); - return this; - } - }, { - key: "setViewOffset", - value: function setViewOffset(fullWidth, fullHeight, x6, y5, width2, height) { - this.aspect = fullWidth / fullHeight; - if (this.view === void 0) { - this.view = { - enabled: true, - fullWidth: 1, - fullHeight: 1, - offsetX: 0, - offsetY: 0, - width: 1, - height: 1 - }; - } - this.view.enabled = true; - this.view.fullWidth = fullWidth; - this.view.fullHeight = fullHeight; - this.view.offsetX = x6; - this.view.offsetY = y5; - this.view.width = width2; - this.view.height = height; - if (this.projectionMode === CAMERA_PROJECTION_MODE.PERSPECTIVE) { - this.setPerspective(this.near, this.far, this.fov, this.aspect); - } else { - this.setOrthographic(this.left, this.rright, this.top, this.bottom, this.near, this.far); - } - return this; - } - }, { - key: "clearViewOffset", - value: function clearViewOffset() { - if (this.view !== void 0) { - this.view.enabled = false; - } - if (this.projectionMode === CAMERA_PROJECTION_MODE.PERSPECTIVE) { - this.setPerspective(this.near, this.far, this.fov, this.aspect); - } else { - this.setOrthographic(this.left, this.rright, this.top, this.bottom, this.near, this.far); - } - return this; - } - }, { - key: "setPerspective", - value: function setPerspective(near2, far, fov, aspect) { - this.projectionMode = CAMERA_PROJECTION_MODE.PERSPECTIVE; - this.fov = fov; - this.near = near2; - this.far = far; - this.aspect = aspect; - mat4_exports.perspective(this.perspective, this.fov * DEG_2_RAD, this.aspect, this.near, this.far); - return this; - } - }, { - key: "setOrthographic", - value: function setOrthographic(l4, r4, t4, b10, near2, far) { - this.projectionMode = CAMERA_PROJECTION_MODE.ORTHOGRAPHIC; - this.rright = r4; - this.left = l4; - this.top = t4; - this.bottom = b10; - this.near = near2; - this.far = far; - var dx = (this.rright - this.left) / (2 * this.zoom); - var dy = (this.top - this.bottom) / (2 * this.zoom); - var cx = (this.rright + this.left) / 2; - var cy = (this.top + this.bottom) / 2; - var left2 = cx - dx; - var right2 = cx + dx; - var top = cy + dy; - var bottom = cy - dy; - if (this.view !== void 0 && this.view.enabled) { - var scaleW = (this.rright - this.left) / this.view.fullWidth / this.zoom; - var scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom; - left2 += scaleW * this.view.offsetX; - right2 = left2 + scaleW * this.view.width; - top -= scaleH * this.view.offsetY; - bottom = top - scaleH * this.view.height; - } - mat4_exports.ortho(this.perspective, left2, right2, top, bottom, near2, far); - return this; - } - }, { - key: "setPosition", - value: function setPosition(x6, y5, z3) { - this._setPosition(x6, y5, z3); - this.setFocalPoint(this.focalPoint); - return this; - } - }, { - key: "setFocalPoint", - value: function setFocalPoint(x6, y5, z3) { - var up = vec3_exports.fromValues(0, 1, 0); - this.focalPoint = createVec3(x6, y5, z3); - if (this.trackingMode === CAMERA_TRACKING_MODE.CINEMATIC) { - var d3 = vec3_exports.subtract(vec3_exports.create(), this.focalPoint, this.position); - x6 = d3[0]; - y5 = d3[1]; - z3 = d3[2]; - var r4 = vec3_exports.length(d3); - var el = Math.asin(y5 / r4) * RAD_2_DEG; - var az = 90 + Math.atan2(z3, x6) * RAD_2_DEG; - var m4 = mat4_exports.create(); - mat4_exports.rotateY(m4, m4, az * DEG_2_RAD); - mat4_exports.rotateX(m4, m4, el * DEG_2_RAD); - up = vec3_exports.transformMat4(vec3_exports.create(), [0, 1, 0], m4); - } - mat4_exports.invert(this.matrix, mat4_exports.lookAt(mat4_exports.create(), this.position, this.focalPoint, up)); - this._getAxes(); - this._getDistance(); - this._getAngles(); - return this; - } - }, { - key: "setDistance", - value: function setDistance(d3) { - if (this.distance === d3 || d3 < 0) { - return; - } - this.distance = d3; - if (this.distance < 2e-4) { - this.distance = 2e-4; - } - this.dollyingStep = this.distance / 100; - var pos = vec3_exports.create(); - d3 = this.distance; - var n3 = this.forward; - var f3 = this.focalPoint; - pos[0] = d3 * n3[0] + f3[0]; - pos[1] = d3 * n3[1] + f3[1]; - pos[2] = d3 * n3[2] + f3[2]; - this._setPosition(pos); - return this; - } - }, { - key: "setMaxDistance", - value: function setMaxDistance(d3) { - this.maxDistance = d3; - return this; - } - }, { - key: "setMinDistance", - value: function setMinDistance(d3) { - this.minDistance = d3; - return this; - } - }, { - key: "changeAzimuth", - value: function changeAzimuth(az) { - this.setAzimuth(this.azimuth + az); - return this; - } - }, { - key: "changeElevation", - value: function changeElevation(el) { - this.setElevation(this.elevation + el); - return this; - } - }, { - key: "changeRoll", - value: function changeRoll(rl) { - this.setRoll(this.roll + rl); - return this; - } - }, { - key: "setAzimuth", - value: function setAzimuth(az) { - this.azimuth = getAngle5(az); - this.computeMatrix(); - this._getAxes(); - if (this.type === CAMERA_TYPE.ORBITING || this.type === CAMERA_TYPE.EXPLORING) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - return this; - } - }, { - key: "getAzimuth", - value: function getAzimuth() { - return this.azimuth; - } - }, { - key: "setElevation", - value: function setElevation(el) { - this.elevation = getAngle5(el); - this.computeMatrix(); - this._getAxes(); - if (this.type === CAMERA_TYPE.ORBITING || this.type === CAMERA_TYPE.EXPLORING) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - return this; - } - }, { - key: "setRoll", - value: function setRoll(angle3) { - this.roll = getAngle5(angle3); - this.computeMatrix(); - this._getAxes(); - if (this.type === CAMERA_TYPE.ORBITING || this.type === CAMERA_TYPE.EXPLORING) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - return this; - } - }, { - key: "rotate", - value: function rotate8(azimuth, elevation, roll) { - if (this.type === CAMERA_TYPE.EXPLORING) { - azimuth = getAngle5(azimuth); - elevation = getAngle5(elevation); - roll = getAngle5(roll); - var rotX = quat_exports.setAxisAngle(quat_exports.create(), [1, 0, 0], (this.rotateWorld ? 1 : -1) * elevation * DEG_2_RAD); - var rotY = quat_exports.setAxisAngle(quat_exports.create(), [0, 1, 0], (this.rotateWorld ? 1 : -1) * azimuth * DEG_2_RAD); - var rotZ = quat_exports.setAxisAngle(quat_exports.create(), [0, 0, 1], roll * DEG_2_RAD); - var rotQ = quat_exports.multiply(quat_exports.create(), rotY, rotX); - rotQ = quat_exports.multiply(quat_exports.create(), rotQ, rotZ); - var rotMatrix = mat4_exports.fromQuat(mat4_exports.create(), rotQ); - mat4_exports.translate(this.matrix, this.matrix, [0, 0, -this.distance]); - mat4_exports.multiply(this.matrix, this.matrix, rotMatrix); - mat4_exports.translate(this.matrix, this.matrix, [0, 0, this.distance]); - } else { - if (Math.abs(this.elevation + elevation) > 90) { - return; - } - this.relElevation = getAngle5(elevation); - this.relAzimuth = getAngle5(azimuth); - this.relRoll = getAngle5(roll); - this.elevation += this.relElevation; - this.azimuth += this.relAzimuth; - this.roll += this.relRoll; - this.computeMatrix(); - } - this._getAxes(); - if (this.type === CAMERA_TYPE.ORBITING || this.type === CAMERA_TYPE.EXPLORING) { - this._getPosition(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - this._getFocalPoint(); - } - this._update(); - return this; - } - }, { - key: "pan", - value: function pan(tx, ty) { - var coords = createVec3(tx, ty, 0); - var pos = vec3_exports.clone(this.position); - vec3_exports.add(pos, pos, vec3_exports.scale(vec3_exports.create(), this.right, coords[0])); - vec3_exports.add(pos, pos, vec3_exports.scale(vec3_exports.create(), this.up, coords[1])); - this._setPosition(pos); - return this; - } - }, { - key: "dolly", - value: function dolly(value2) { - var n3 = this.forward; - var pos = vec3_exports.clone(this.position); - var step = value2 * this.dollyingStep; - var updatedDistance = this.distance + value2 * this.dollyingStep; - step = Math.max(Math.min(updatedDistance, this.maxDistance), this.minDistance) - this.distance; - pos[0] += step * n3[0]; - pos[1] += step * n3[1]; - pos[2] += step * n3[2]; - this._setPosition(pos); - if (this.type === CAMERA_TYPE.ORBITING || this.type === CAMERA_TYPE.EXPLORING) { - this._getDistance(); - } else if (this.type === CAMERA_TYPE.TRACKING) { - vec3_exports.add(this.focalPoint, pos, this.distanceVector); - } - return this; - } - }, { - key: "createLandmark", - value: function createLandmark(name, params) { - var camera = this.clone(); - camera.setPosition(params.position); - camera.setFocalPoint(params.focalPoint); - if (params.roll !== void 0) { - camera.setRoll(params.roll); - } - var landmark = new Landmark(name, camera); - this.landmarks.push(landmark); - return landmark; - } - }, { - key: "setLandmark", - value: function setLandmark(name) { - var landmark = new Landmark(name, this); - this.landmarks.push(landmark); - return this; - } - }, { - key: "gotoLandmark", - value: function gotoLandmark(name) { - var _this = this; - var duration = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1e3; - var landmark = this.landmarks.find(function(l4) { - return l4.name === name; - }); - if (landmark) { - if (duration === 0) { - landmark.retrieve(this); - return; - } - if (this.landmarkAnimationID !== void 0) { - window.cancelAnimationFrame(this.landmarkAnimationID); - } - this.interactor.disconnect(); - var destPosition = landmark.getPosition(); - var destFocalPoint = landmark.getFocalPoint(); - var destRoll = landmark.getRoll(); - var timeStart; - var animate = function animate2(timestamp2) { - if (timeStart === void 0) { - timeStart = timestamp2; - } - var elapsed = timestamp2 - timeStart; - var t4 = (1 - Math.cos(elapsed / duration * Math.PI)) / 2; - var interFocalPoint = vec3_exports.create(); - var interPosition = vec3_exports.create(); - var interRoll = 0; - vec3_exports.lerp(interFocalPoint, _this.focalPoint, destFocalPoint, t4); - vec3_exports.lerp(interPosition, _this.position, destPosition, t4); - interRoll = _this.roll * (1 - t4) + destRoll * t4; - _this.setFocalPoint(interFocalPoint); - _this.setPosition(interPosition); - _this.setRoll(interRoll); - _this.computeMatrix(); - var dist4 = vec3_exports.dist(interFocalPoint, destFocalPoint) + vec3_exports.dist(interPosition, destPosition); - if (dist4 > 0.01) { - } else { - _this.setFocalPoint(interFocalPoint); - _this.setPosition(interPosition); - _this.setRoll(interRoll); - _this.computeMatrix(); - _this.interactor.connect(); - return; - } - if (elapsed < duration) { - _this.landmarkAnimationID = window.requestAnimationFrame(animate2); - } - }; - window.requestAnimationFrame(animate); - } - } - }, { - key: "_update", - value: function _update2() { - this._getAxes(); - this._getPosition(); - this._getDistance(); - this._getAngles(); - } - }, { - key: "computeMatrix", - value: function computeMatrix() { - var rotX; - var rotY; - var rotZ = quat_exports.setAxisAngle(quat_exports.create(), [0, 0, 1], this.roll * DEG_2_RAD); - mat4_exports.identity(this.matrix); - rotX = quat_exports.setAxisAngle(quat_exports.create(), [1, 0, 0], (this.rotateWorld && this.type !== CAMERA_TYPE.TRACKING || this.type === CAMERA_TYPE.TRACKING ? 1 : -1) * this.elevation * DEG_2_RAD); - rotY = quat_exports.setAxisAngle(quat_exports.create(), [0, 1, 0], (this.rotateWorld && this.type !== CAMERA_TYPE.TRACKING || this.type === CAMERA_TYPE.TRACKING ? 1 : -1) * this.azimuth * DEG_2_RAD); - var rotQ = quat_exports.multiply(quat_exports.create(), rotY, rotX); - rotQ = quat_exports.multiply(quat_exports.create(), rotQ, rotZ); - var rotMatrix = mat4_exports.fromQuat(mat4_exports.create(), rotQ); - if (this.type === CAMERA_TYPE.ORBITING || this.type === CAMERA_TYPE.EXPLORING) { - mat4_exports.translate(this.matrix, this.matrix, this.focalPoint); - mat4_exports.multiply(this.matrix, this.matrix, rotMatrix); - mat4_exports.translate(this.matrix, this.matrix, [0, 0, this.distance]); - } else if (this.type === CAMERA_TYPE.TRACKING) { - mat4_exports.translate(this.matrix, this.matrix, this.position); - mat4_exports.multiply(this.matrix, this.matrix, rotMatrix); - } - } - }, { - key: "_setPosition", - value: function _setPosition(x6, y5, z3) { - this.position = createVec3(x6, y5, z3); - var m4 = this.matrix; - m4[12] = this.position[0]; - m4[13] = this.position[1]; - m4[14] = this.position[2]; - m4[15] = 1; - } - }, { - key: "_getAxes", - value: function _getAxes() { - vec3_exports.copy(this.right, createVec3(vec4_exports.transformMat4(vec4_exports.create(), [1, 0, 0, 0], this.matrix))); - vec3_exports.copy(this.up, createVec3(vec4_exports.transformMat4(vec4_exports.create(), [0, 1, 0, 0], this.matrix))); - vec3_exports.copy(this.forward, createVec3(vec4_exports.transformMat4(vec4_exports.create(), [0, 0, 1, 0], this.matrix))); - vec3_exports.normalize(this.right, this.right); - vec3_exports.normalize(this.up, this.up); - vec3_exports.normalize(this.forward, this.forward); - } - }, { - key: "_getAngles", - value: function _getAngles() { - var x6 = this.distanceVector[0]; - var y5 = this.distanceVector[1]; - var z3 = this.distanceVector[2]; - var r4 = vec3_exports.length(this.distanceVector); - if (r4 === 0) { - this.elevation = 0; - this.azimuth = 0; - return; - } - if (this.type === CAMERA_TYPE.TRACKING) { - this.elevation = Math.asin(y5 / r4) * RAD_2_DEG; - this.azimuth = Math.atan2(-x6, -z3) * RAD_2_DEG; - } else { - if (this.rotateWorld) { - this.elevation = Math.asin(y5 / r4) * RAD_2_DEG; - this.azimuth = Math.atan2(-x6, -z3) * RAD_2_DEG; - } else { - this.elevation = -Math.asin(y5 / r4) * RAD_2_DEG; - this.azimuth = -Math.atan2(-x6, -z3) * RAD_2_DEG; - } - } - } - }, { - key: "_getPosition", - value: function _getPosition() { - vec3_exports.copy(this.position, createVec3(vec4_exports.transformMat4(vec4_exports.create(), [0, 0, 0, 1], this.matrix))); - this._getDistance(); - } - }, { - key: "_getFocalPoint", - value: function _getFocalPoint() { - vec3_exports.transformMat3(this.distanceVector, [0, 0, -this.distance], mat3_exports.fromMat4(mat3_exports.create(), this.matrix)); - vec3_exports.add(this.focalPoint, this.position, this.distanceVector); - this._getDistance(); - } - }, { - key: "_getDistance", - value: function _getDistance() { - this.distanceVector = vec3_exports.subtract(vec3_exports.create(), this.focalPoint, this.position); - this.distance = vec3_exports.length(this.distanceVector); - this.dollyingStep = this.distance / 100; - } - }]); - return Camera2; -}(), _class35.ProjectionMode = { - ORTHOGRAPHIC: "ORTHOGRAPHIC", - PERSPECTIVE: "PERSPECTIVE" -}, _temp13), _descriptor15 = _applyDecoratedDescriptor(_class212.prototype, "interactor", [_dec211], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class212)) || _class15); - -// node_modules/@antv/g-webgpu/es/geometry/index.js -var import_inversify17 = __toModule(require_inversify()); -var _dec21; -var _dec212; -var _class16; -var _class213; -var _descriptor16; -var _class36; -var _temp14; -var Geometry2 = (_dec21 = (0, import_inversify17.injectable)(), _dec212 = (0, import_inversify17.inject)(IDENTIFIER.GeometryComponentManager), _dec21(_class16 = (_class213 = (_temp14 = _class36 = /* @__PURE__ */ function() { - function Geometry3() { - _classCallCheck(this, Geometry3); - this.config = void 0; - _initializerDefineProperty(this, "geometry", _descriptor16, this); - this.entity = void 0; - this.component = void 0; - } - _createClass(Geometry3, [{ - key: "getEntity", - value: function getEntity() { - return this.entity; - } - }, { - key: "getComponent", - value: function getComponent() { - return this.component; - } - }, { - key: "setConfig", - value: function setConfig(config) { - this.config = config; - } - }, { - key: "setEntity", - value: function setEntity(entity) { - this.entity = entity; - this.component = this.geometry.create(entity); - this.component.entity = entity; - this.onEntityCreated(); - } - }, { - key: "onEntityCreated", - value: function onEntityCreated() { - } - }]); - return Geometry3; -}(), _class36.BOX = "box", _class36.SPHERE = "sphere", _class36.PLANE = "plane", _class36.MERGED = "merged", _temp14), _descriptor16 = _applyDecoratedDescriptor(_class213.prototype, "geometry", [_dec212], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class213)) || _class16); - -// node_modules/@antv/g-webgpu/es/Kernel.js -var import_regenerator11 = __toModule(require_regenerator()); -var WebGPUConstants = __toModule(require_constants()); -var import_inversify18 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu/es/utils/canvas.js -function createCanvas() { - if (typeof document !== "undefined") { - return document.createElement("canvas"); - } else { - throw new Error("Cannot create a canvas in this context"); - } -} - -// node_modules/@antv/g-webgpu/es/utils/is-type.js -var toString6 = {}.toString; -var isType4 = function isType5(value2, type2) { - return toString6.call(value2) === "[object " + type2 + "]"; -}; -var is_type_default2 = isType4; - -// node_modules/@antv/g-webgpu/es/utils/is-array.js -var is_array_default2 = function(value2) { - return Array.isArray ? Array.isArray(value2) : is_type_default2(value2, "Array"); -}; - -// node_modules/@antv/g-webgpu/es/utils/is-typedarray.js -var MAX_SAFE_INTEGER2 = 9007199254740991; -var argsTag2 = "[object Arguments]"; -var arrayTag2 = "[object Array]"; -var boolTag2 = "[object Boolean]"; -var dateTag2 = "[object Date]"; -var errorTag2 = "[object Error]"; -var funcTag2 = "[object Function]"; -var mapTag2 = "[object Map]"; -var numberTag2 = "[object Number]"; -var objectTag2 = "[object Object]"; -var regexpTag2 = "[object RegExp]"; -var setTag2 = "[object Set]"; -var stringTag2 = "[object String]"; -var weakMapTag2 = "[object WeakMap]"; -var arrayBufferTag2 = "[object ArrayBuffer]"; -var dataViewTag2 = "[object DataView]"; -var float32Tag2 = "[object Float32Array]"; -var float64Tag2 = "[object Float64Array]"; -var int8Tag2 = "[object Int8Array]"; -var int16Tag2 = "[object Int16Array]"; -var int32Tag2 = "[object Int32Array]"; -var uint8Tag2 = "[object Uint8Array]"; -var uint8ClampedTag2 = "[object Uint8ClampedArray]"; -var uint16Tag2 = "[object Uint16Array]"; -var uint32Tag2 = "[object Uint32Array]"; -var typedArrayTags2 = {}; -typedArrayTags2[float32Tag2] = typedArrayTags2[float64Tag2] = typedArrayTags2[int8Tag2] = typedArrayTags2[int16Tag2] = typedArrayTags2[int32Tag2] = typedArrayTags2[uint8Tag2] = typedArrayTags2[uint8ClampedTag2] = typedArrayTags2[uint16Tag2] = typedArrayTags2[uint32Tag2] = true; -typedArrayTags2[argsTag2] = typedArrayTags2[arrayTag2] = typedArrayTags2[arrayBufferTag2] = typedArrayTags2[boolTag2] = typedArrayTags2[dataViewTag2] = typedArrayTags2[dateTag2] = typedArrayTags2[errorTag2] = typedArrayTags2[funcTag2] = typedArrayTags2[mapTag2] = typedArrayTags2[numberTag2] = typedArrayTags2[objectTag2] = typedArrayTags2[regexpTag2] = typedArrayTags2[setTag2] = typedArrayTags2[stringTag2] = typedArrayTags2[weakMapTag2] = false; -var objectProto3 = Object.prototype; -var objectToString2 = objectProto3.toString; -function baseIsTypedArray2(value2) { - return isObjectLike4(value2) && isLength2(value2.length) && !!typedArrayTags2[objectToString2.call(value2)]; -} -function isLength2(value2) { - return typeof value2 === "number" && value2 > -1 && value2 % 1 === 0 && value2 <= MAX_SAFE_INTEGER2; -} -function isObjectLike4(value2) { - return !!value2 && _typeof3(value2) === "object"; -} -var isTypedArray2 = baseIsTypedArray2; - -// node_modules/@antv/g-webgpu/es/Kernel.js -var _dec30; -var _dec213; -var _dec310; -var _class17; -var _class214; -var _descriptor17; -var _descriptor210; -var _temp15; -function ownKeys5(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread5(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys5(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys5(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -var Kernel = (_dec30 = (0, import_inversify18.injectable)(), _dec213 = (0, import_inversify18.inject)(IDENTIFIER.RenderEngine), _dec310 = (0, import_inversify18.inject)(IDENTIFIER.ConfigService), _dec30(_class17 = (_class214 = (_temp15 = /* @__PURE__ */ function() { - function Kernel2() { - _classCallCheck(this, Kernel2); - _initializerDefineProperty(this, "engine", _descriptor17, this); - _initializerDefineProperty(this, "configService", _descriptor210, this); - this.entity = createEntity(); - this.model = void 0; - this.dirty = true; - this.compiledBundle = void 0; - this.initPromise = void 0; - } - _createClass(Kernel2, [{ - key: "init", - value: function init() { - var _this$configService$g = this.configService.get(), canvas = _this$configService$g.canvas, engineOptions = _this$configService$g.engineOptions; - this.initPromise = this.engine.init(_objectSpread5({ - canvas: canvas || createCanvas(), - swapChainFormat: WebGPUConstants.TextureFormat.BGRA8Unorm, - antialiasing: false - }, engineOptions)); - } - }, { - key: "setBundle", - value: function setBundle(bundle) { - this.compiledBundle = JSON.parse(JSON.stringify(bundle)); - } - }, { - key: "setDispatch", - value: function setDispatch(dispatch2) { - if (this.compiledBundle.context) { - this.compiledBundle.context.dispatch = dispatch2; - } - return this; - } - }, { - key: "setMaxIteration", - value: function setMaxIteration(maxIteration) { - if (this.compiledBundle.context) { - this.compiledBundle.context.maxIteration = maxIteration; - } - return this; - } - }, { - key: "setBinding", - value: function setBinding(name, data3) { - var _this = this; - if (typeof name === "string") { - var isNumberLikeData = isNumber5(data3) || isTypedArray2(data3) || is_array_default2(data3); - if (this.compiledBundle && this.compiledBundle.context) { - var existedDefine = this.compiledBundle.context.defines.find(function(b10) { - return b10.name === name; - }); - if (existedDefine) { - existedDefine.value = data3; - return this; - } - var existedBinding = this.compiledBundle.context.uniforms.find(function(b10) { - return b10.name === name; - }); - if (existedBinding) { - if (isNumberLikeData) { - existedBinding.data = data3; - existedBinding.isReferer = false; - if (existedBinding.storageClass === STORAGE_CLASS.Uniform) { - if (this.model) { - this.model.updateUniform(name, data3); - } - } else { - if (this.model) { - this.model.updateBuffer(name, data3); - } - } - } else { - existedBinding.isReferer = true; - existedBinding.data = data3; - } - } - } - } else { - Object.keys(name).forEach(function(key) { - _this.setBinding(key, name[key]); - }); - } - return this; - } - }, { - key: "execute", - value: function() { - var _execute = _asyncToGenerator(/* @__PURE__ */ import_regenerator11.default.mark(function _callee() { - var _this2 = this; - var iteration, i4, _args = arguments; - return import_regenerator11.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - iteration = _args.length > 0 && _args[0] !== void 0 ? _args[0] : 1; - if (!this.dirty) { - _context.next = 6; - break; - } - if (this.compiledBundle.context) { - if (iteration > 1) { - this.compiledBundle.context.maxIteration = iteration; - } else { - this.compiledBundle.context.maxIteration++; - } - } - _context.next = 5; - return this.compile(); - case 5: - this.dirty = false; - case 6: - this.engine.beginFrame(); - this.engine.clear({}); - if (this.compiledBundle.context) { - this.compiledBundle.context.uniforms.filter(function(_ref2) { - var isReferer = _ref2.isReferer; - return isReferer; - }).forEach(function(_ref2) { - var data3 = _ref2.data, name = _ref2.name; - _this2.model.confirmInput(data3.model, name); - }); - } - for (i4 = 0; i4 < iteration; i4++) { - this.model.run(); - } - this.engine.endFrame(); - return _context.abrupt("return", this); - case 12: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function execute() { - return _execute.apply(this, arguments); - } - return execute; - }() - }, { - key: "getOutput", - value: function() { - var _getOutput = _asyncToGenerator(/* @__PURE__ */ import_regenerator11.default.mark(function _callee2() { - return import_regenerator11.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.model.readData()); - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - function getOutput() { - return _getOutput.apply(this, arguments); - } - return getOutput; - }() - }, { - key: "compile", - value: function() { - var _compile = _asyncToGenerator(/* @__PURE__ */ import_regenerator11.default.mark(function _callee3() { - var context, target, shader; - return import_regenerator11.default.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this.initPromise; - case 2: - context = _objectSpread5({}, this.compiledBundle.context); - target = this.engine.supportWebGPU ? this.engine.useWGSL ? Target.WGSL : Target.GLSL450 : Target.GLSL100; - shader = this.compiledBundle.shaders[target]; - context.defines.filter(function(define2) { - return define2.runtime; - }).forEach(function(define2) { - var valuePlaceHolder = "".concat(DefineValuePlaceholder).concat(define2.name); - shader = shader.replace(valuePlaceHolder, "".concat(define2.value)); - }); - context.shader = shader; - context.uniforms.forEach(function(uniform) { - if (!uniform.data) { - if (uniform.storageClass === STORAGE_CLASS.StorageBuffer) { - var sizePerElement = 1; - if (uniform.type === AST_TOKEN_TYPES.FloatArray) { - sizePerElement = 1; - } else if (uniform.type === AST_TOKEN_TYPES.Vector4FloatArray) { - sizePerElement = 4; - } - uniform.data = new Float32Array(context.output.length * sizePerElement).fill(0); - } - } - }); - this.compiledBundle.context = context; - _context3.next = 11; - return this.engine.createComputeModel(this.compiledBundle.context); - case 11: - this.model = _context3.sent; - case 12: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - function compile() { - return _compile.apply(this, arguments); - } - return compile; - }() - }]); - return Kernel2; -}(), _temp15), _descriptor17 = _applyDecoratedDescriptor(_class214.prototype, "engine", [_dec213], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor210 = _applyDecoratedDescriptor(_class214.prototype, "configService", [_dec310], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class214)) || _class17); - -// node_modules/@antv/g-webgpu/es/material/index.js -var import_inversify19 = __toModule(require_inversify()); -var _dec31; -var _dec214; -var _class18; -var _class215; -var _descriptor18; -var _class37; -var _temp16; -var Material = (_dec31 = (0, import_inversify19.injectable)(), _dec214 = (0, import_inversify19.inject)(IDENTIFIER.MaterialComponentManager), _dec31(_class18 = (_class215 = (_temp16 = _class37 = /* @__PURE__ */ function() { - function Material2() { - _classCallCheck(this, Material2); - this.config = void 0; - _initializerDefineProperty(this, "material", _descriptor18, this); - this.entity = void 0; - this.component = void 0; - } - _createClass(Material2, [{ - key: "getEntity", - value: function getEntity() { - return this.entity; - } - }, { - key: "getComponent", - value: function getComponent() { - return this.component; - } - }, { - key: "setConfig", - value: function setConfig(config) { - this.config = config; - } - }, { - key: "setEntity", - value: function setEntity(entity, type2) { - this.entity = entity; - this.component = this.material.create(entity); - this.component.entity = entity; - this.component.type = type2; - this.onEntityCreated(); - } - }, { - key: "onEntityCreated", - value: function onEntityCreated() { - } - }]); - return Material2; -}(), _class37.BASIC = "basic", _temp16), _descriptor18 = _applyDecoratedDescriptor(_class215.prototype, "material", [_dec214], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class215)) || _class18); - -// node_modules/@antv/g-webgpu/es/renderable/Renderable.js -var import_inversify20 = __toModule(require_inversify()); -var _dec40; -var _dec215; -var _dec311; -var _dec48; -var _dec56; -var _dec64; -var _class19; -var _class216; -var _descriptor19; -var _descriptor211; -var _descriptor38; -var _descriptor46; -var _class38; -var _temp17; -var Renderable = (_dec40 = (0, import_inversify20.injectable)(), _dec215 = (0, import_inversify20.inject)(IDENTIFIER.MeshComponentManager), _dec311 = (0, import_inversify20.inject)(IDENTIFIER.CullableComponentManager), _dec48 = (0, import_inversify20.inject)(IDENTIFIER.TransformComponentManager), _dec56 = (0, import_inversify20.inject)(IDENTIFIER.Systems), _dec64 = (0, import_inversify20.named)(IDENTIFIER.SceneGraphSystem), _dec40(_class19 = (_class216 = (_temp17 = _class38 = /* @__PURE__ */ function() { - function Renderable2() { - _classCallCheck(this, Renderable2); - this.attributes = {}; - this.config = void 0; - _initializerDefineProperty(this, "mesh", _descriptor19, this); - _initializerDefineProperty(this, "cullable", _descriptor211, this); - _initializerDefineProperty(this, "transform", _descriptor38, this); - _initializerDefineProperty(this, "sceneGraphSystem", _descriptor46, this); - this.meshComponent = void 0; - this.transformComponent = void 0; - this.entity = void 0; - } - _createClass(Renderable2, [{ - key: "getEntity", - value: function getEntity() { - return this.entity; - } - }, { - key: "getTransformComponent", - value: function getTransformComponent() { - return this.transformComponent; - } - }, { - key: "getMeshComponent", - value: function getMeshComponent() { - return this.meshComponent; - } - }, { - key: "setConfig", - value: function setConfig(config) { - this.config = config; - } - }, { - key: "setEntity", - value: function setEntity(entity) { - this.entity = entity; - this.cullable.create(entity); - this.meshComponent = this.mesh.create(entity); - this.transformComponent = this.transform.create(entity); - this.onEntityCreated(); - } - }, { - key: "setMaterial", - value: function setMaterial(material) { - this.meshComponent.material = material; - return this; - } - }, { - key: "setGeometry", - value: function setGeometry(geometry35) { - this.meshComponent.geometry = geometry35; - return this; - } - }, { - key: "setAttributes", - value: function setAttributes(attributes) { - var _this = this; - Object.keys(attributes).forEach(function(name) { - if (attributes[name] !== void 0 && attributes[name] !== _this.attributes[name]) { - _this.onAttributeChanged({ - name, - data: attributes[name] - }); - _this.attributes[name] = attributes[name]; - } - }); - } - }, { - key: "setVisible", - value: function setVisible(visible) { - var _this2 = this; - this.meshComponent.visible = visible; - this.meshComponent.children.forEach(function(childEntity) { - var child = _this2.mesh.getComponentByEntity(childEntity); - if (child) { - child.visible = visible; - } - }); - return this; - } - }, { - key: "isVisible", - value: function isVisible() { - return this.meshComponent.visible; - } - }, { - key: "attach", - value: function attach(parentRenderable) { - this.sceneGraphSystem.attach(this.entity, parentRenderable.entity); - return this; - } - }, { - key: "detach", - value: function detach() { - this.sceneGraphSystem.detach(this.entity); - return this; - } - }, { - key: "detachChildren", - value: function detachChildren() { - this.sceneGraphSystem.detachChildren(this.entity); - return this; - } - }, { - key: "onEntityCreated", - value: function onEntityCreated() { - } - }, { - key: "onAttributeChanged", - value: function onAttributeChanged(_ref2) { - var name = _ref2.name, data3 = _ref2.data; - if (this.meshComponent && this.meshComponent.material) { - this.meshComponent.material.setUniform(this.convertAttributeName2UniformName(name), data3); - } - } - }, { - key: "convertAttributeName2UniformName", - value: function convertAttributeName2UniformName(attributeName) { - return attributeName; - } - }]); - return Renderable2; -}(), _class38.POINT = "point", _class38.LINE = "line", _class38.GRID = "grid", _temp17), _descriptor19 = _applyDecoratedDescriptor(_class216.prototype, "mesh", [_dec215], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor211 = _applyDecoratedDescriptor(_class216.prototype, "cullable", [_dec311], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor38 = _applyDecoratedDescriptor(_class216.prototype, "transform", [_dec48], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor46 = _applyDecoratedDescriptor(_class216.prototype, "sceneGraphSystem", [_dec56, _dec64], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class216)) || _class19); - -// node_modules/@antv/g-webgpu/es/World.js -var import_regenerator20 = __toModule(require_regenerator()); - -// node_modules/@antv/g-webgpu-engine/es/webgl/index.js -var import_regenerator13 = __toModule(require_regenerator()); -var import_inversify21 = __toModule(require_inversify()); -var import_regl = __toModule(require_regl()); - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglAttribute.js -var ReglAttribute = /* @__PURE__ */ function() { - function ReglAttribute2(gl2, options) { - _classCallCheck(this, ReglAttribute2); - this.attribute = void 0; - this.buffer = void 0; - var buffer = options.buffer, offset = options.offset, stride = options.stride, normalized = options.normalized, size2 = options.size, divisor = options.divisor; - this.buffer = buffer; - this.attribute = { - buffer: buffer.get(), - offset: offset || 0, - stride: stride || 0, - normalized: normalized || false, - divisor: divisor || 0 - }; - if (size2) { - this.attribute.size = size2; - } - } - _createClass(ReglAttribute2, [{ - key: "get", - value: function get3() { - return this.attribute; - } - }, { - key: "updateBuffer", - value: function updateBuffer(options) { - this.buffer.subData(options); - } - }, { - key: "destroy", - value: function destroy() { - this.buffer.destroy(); - } - }]); - return ReglAttribute2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgl/constants.js -var _primitiveMap; -var _usageMap; -var _dataTypeMap; -var _formatMap; -var _mipmapMap; -var _filterMap; -var _wrapModeMap; -var _colorSpaceMap; -var _depthFuncMap; -var _blendEquationMap; -var _blendFuncMap; -var _stencilFuncMap; -var _stencilOpMap; -var _cullFaceMap; -var primitiveMap = (_primitiveMap = {}, _defineProperty(_primitiveMap, gl.POINTS, "points"), _defineProperty(_primitiveMap, gl.LINES, "lines"), _defineProperty(_primitiveMap, gl.LINE_LOOP, "line loop"), _defineProperty(_primitiveMap, gl.LINE_STRIP, "line strip"), _defineProperty(_primitiveMap, gl.TRIANGLES, "triangles"), _defineProperty(_primitiveMap, gl.TRIANGLE_FAN, "triangle fan"), _defineProperty(_primitiveMap, gl.TRIANGLE_STRIP, "triangle strip"), _primitiveMap); -var usageMap = (_usageMap = {}, _defineProperty(_usageMap, gl.STATIC_DRAW, "static"), _defineProperty(_usageMap, gl.DYNAMIC_DRAW, "dynamic"), _defineProperty(_usageMap, gl.STREAM_DRAW, "stream"), _usageMap); -var dataTypeMap = (_dataTypeMap = {}, _defineProperty(_dataTypeMap, gl.BYTE, "int8"), _defineProperty(_dataTypeMap, gl.UNSIGNED_INT, "int16"), _defineProperty(_dataTypeMap, gl.INT, "int32"), _defineProperty(_dataTypeMap, gl.UNSIGNED_BYTE, "uint8"), _defineProperty(_dataTypeMap, gl.UNSIGNED_SHORT, "uint16"), _defineProperty(_dataTypeMap, gl.UNSIGNED_INT, "uint32"), _defineProperty(_dataTypeMap, gl.FLOAT, "float"), _dataTypeMap); -var formatMap = (_formatMap = {}, _defineProperty(_formatMap, gl.ALPHA, "alpha"), _defineProperty(_formatMap, gl.LUMINANCE, "luminance"), _defineProperty(_formatMap, gl.LUMINANCE_ALPHA, "luminance alpha"), _defineProperty(_formatMap, gl.RGB, "rgb"), _defineProperty(_formatMap, gl.RGBA, "rgba"), _defineProperty(_formatMap, gl.RGBA4, "rgba4"), _defineProperty(_formatMap, gl.RGB5_A1, "rgb5 a1"), _defineProperty(_formatMap, gl.RGB565, "rgb565"), _defineProperty(_formatMap, gl.DEPTH_COMPONENT, "depth"), _defineProperty(_formatMap, gl.DEPTH_STENCIL, "depth stencil"), _formatMap); -var mipmapMap = (_mipmapMap = {}, _defineProperty(_mipmapMap, gl.DONT_CARE, "dont care"), _defineProperty(_mipmapMap, gl.NICEST, "nice"), _defineProperty(_mipmapMap, gl.FASTEST, "fast"), _mipmapMap); -var filterMap = (_filterMap = {}, _defineProperty(_filterMap, gl.NEAREST, "nearest"), _defineProperty(_filterMap, gl.LINEAR, "linear"), _defineProperty(_filterMap, gl.LINEAR_MIPMAP_LINEAR, "mipmap"), _defineProperty(_filterMap, gl.NEAREST_MIPMAP_LINEAR, "nearest mipmap linear"), _defineProperty(_filterMap, gl.LINEAR_MIPMAP_NEAREST, "linear mipmap nearest"), _defineProperty(_filterMap, gl.NEAREST_MIPMAP_NEAREST, "nearest mipmap nearest"), _filterMap); -var wrapModeMap = (_wrapModeMap = {}, _defineProperty(_wrapModeMap, gl.REPEAT, "repeat"), _defineProperty(_wrapModeMap, gl.CLAMP_TO_EDGE, "clamp"), _defineProperty(_wrapModeMap, gl.MIRRORED_REPEAT, "mirror"), _wrapModeMap); -var colorSpaceMap = (_colorSpaceMap = {}, _defineProperty(_colorSpaceMap, gl.NONE, "none"), _defineProperty(_colorSpaceMap, gl.BROWSER_DEFAULT_WEBGL, "browser"), _colorSpaceMap); -var depthFuncMap = (_depthFuncMap = {}, _defineProperty(_depthFuncMap, gl.NEVER, "never"), _defineProperty(_depthFuncMap, gl.ALWAYS, "always"), _defineProperty(_depthFuncMap, gl.LESS, "less"), _defineProperty(_depthFuncMap, gl.LEQUAL, "lequal"), _defineProperty(_depthFuncMap, gl.GREATER, "greater"), _defineProperty(_depthFuncMap, gl.GEQUAL, "gequal"), _defineProperty(_depthFuncMap, gl.EQUAL, "equal"), _defineProperty(_depthFuncMap, gl.NOTEQUAL, "notequal"), _depthFuncMap); -var blendEquationMap = (_blendEquationMap = {}, _defineProperty(_blendEquationMap, gl.FUNC_ADD, "add"), _defineProperty(_blendEquationMap, gl.MIN_EXT, "min"), _defineProperty(_blendEquationMap, gl.MAX_EXT, "max"), _defineProperty(_blendEquationMap, gl.FUNC_SUBTRACT, "subtract"), _defineProperty(_blendEquationMap, gl.FUNC_REVERSE_SUBTRACT, "reverse subtract"), _blendEquationMap); -var blendFuncMap = (_blendFuncMap = {}, _defineProperty(_blendFuncMap, gl.ZERO, "zero"), _defineProperty(_blendFuncMap, gl.ONE, "one"), _defineProperty(_blendFuncMap, gl.SRC_COLOR, "src color"), _defineProperty(_blendFuncMap, gl.ONE_MINUS_SRC_COLOR, "one minus src color"), _defineProperty(_blendFuncMap, gl.SRC_ALPHA, "src alpha"), _defineProperty(_blendFuncMap, gl.ONE_MINUS_SRC_ALPHA, "one minus src alpha"), _defineProperty(_blendFuncMap, gl.DST_COLOR, "dst color"), _defineProperty(_blendFuncMap, gl.ONE_MINUS_DST_COLOR, "one minus dst color"), _defineProperty(_blendFuncMap, gl.DST_ALPHA, "dst alpha"), _defineProperty(_blendFuncMap, gl.ONE_MINUS_DST_ALPHA, "one minus dst alpha"), _defineProperty(_blendFuncMap, gl.CONSTANT_COLOR, "constant color"), _defineProperty(_blendFuncMap, gl.ONE_MINUS_CONSTANT_COLOR, "one minus constant color"), _defineProperty(_blendFuncMap, gl.CONSTANT_ALPHA, "constant alpha"), _defineProperty(_blendFuncMap, gl.ONE_MINUS_CONSTANT_ALPHA, "one minus constant alpha"), _defineProperty(_blendFuncMap, gl.SRC_ALPHA_SATURATE, "src alpha saturate"), _blendFuncMap); -var stencilFuncMap = (_stencilFuncMap = {}, _defineProperty(_stencilFuncMap, gl.NEVER, "never"), _defineProperty(_stencilFuncMap, gl.ALWAYS, "always"), _defineProperty(_stencilFuncMap, gl.LESS, "less"), _defineProperty(_stencilFuncMap, gl.LEQUAL, "lequal"), _defineProperty(_stencilFuncMap, gl.GREATER, "greater"), _defineProperty(_stencilFuncMap, gl.GEQUAL, "gequal"), _defineProperty(_stencilFuncMap, gl.EQUAL, "equal"), _defineProperty(_stencilFuncMap, gl.NOTEQUAL, "notequal"), _stencilFuncMap); -var stencilOpMap = (_stencilOpMap = {}, _defineProperty(_stencilOpMap, gl.ZERO, "zero"), _defineProperty(_stencilOpMap, gl.KEEP, "keep"), _defineProperty(_stencilOpMap, gl.REPLACE, "replace"), _defineProperty(_stencilOpMap, gl.INVERT, "invert"), _defineProperty(_stencilOpMap, gl.INCR, "increment"), _defineProperty(_stencilOpMap, gl.DECR, "decrement"), _defineProperty(_stencilOpMap, gl.INCR_WRAP, "increment wrap"), _defineProperty(_stencilOpMap, gl.DECR_WRAP, "decrement wrap"), _stencilOpMap); -var cullFaceMap = (_cullFaceMap = {}, _defineProperty(_cullFaceMap, gl.FRONT, "front"), _defineProperty(_cullFaceMap, gl.BACK, "back"), _cullFaceMap); - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglBuffer.js -var ReglBuffer = /* @__PURE__ */ function() { - function ReglBuffer2(reGl, options) { - _classCallCheck(this, ReglBuffer2); - this.buffer = void 0; - var data3 = options.data, usage = options.usage, type2 = options.type; - this.buffer = reGl.buffer({ - data: data3, - usage: usageMap[usage || gl.STATIC_DRAW], - type: dataTypeMap[type2 || gl.UNSIGNED_BYTE] - }); - } - _createClass(ReglBuffer2, [{ - key: "get", - value: function get3() { - return this.buffer; - } - }, { - key: "destroy", - value: function destroy() { - } - }, { - key: "subData", - value: function subData(_ref2) { - var data3 = _ref2.data, offset = _ref2.offset; - this.buffer.subdata(data3, offset); - } - }]); - return ReglBuffer2; -}(); - -// node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) - return _arrayLikeToArray(arr); -} - -// node_modules/@babel/runtime/helpers/esm/iterableToArray.js -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) - return Array.from(iter); -} - -// node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - -// node_modules/@babel/runtime/helpers/esm/toConsumableArray.js -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); -} - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglComputeModel.js -var import_regenerator12 = __toModule(require_regenerator()); - -// node_modules/@antv/g-webgpu-engine/es/utils/is-typedarray.js -var MAX_SAFE_INTEGER3 = 9007199254740991; -var argsTag3 = "[object Arguments]"; -var arrayTag3 = "[object Array]"; -var boolTag3 = "[object Boolean]"; -var dateTag3 = "[object Date]"; -var errorTag3 = "[object Error]"; -var funcTag3 = "[object Function]"; -var mapTag3 = "[object Map]"; -var numberTag3 = "[object Number]"; -var objectTag3 = "[object Object]"; -var regexpTag3 = "[object RegExp]"; -var setTag3 = "[object Set]"; -var stringTag3 = "[object String]"; -var weakMapTag3 = "[object WeakMap]"; -var arrayBufferTag3 = "[object ArrayBuffer]"; -var dataViewTag3 = "[object DataView]"; -var float32Tag3 = "[object Float32Array]"; -var float64Tag3 = "[object Float64Array]"; -var int8Tag3 = "[object Int8Array]"; -var int16Tag3 = "[object Int16Array]"; -var int32Tag3 = "[object Int32Array]"; -var uint8Tag3 = "[object Uint8Array]"; -var uint8ClampedTag3 = "[object Uint8ClampedArray]"; -var uint16Tag3 = "[object Uint16Array]"; -var uint32Tag3 = "[object Uint32Array]"; -var typedArrayTags3 = {}; -typedArrayTags3[float32Tag3] = typedArrayTags3[float64Tag3] = typedArrayTags3[int8Tag3] = typedArrayTags3[int16Tag3] = typedArrayTags3[int32Tag3] = typedArrayTags3[uint8Tag3] = typedArrayTags3[uint8ClampedTag3] = typedArrayTags3[uint16Tag3] = typedArrayTags3[uint32Tag3] = true; -typedArrayTags3[argsTag3] = typedArrayTags3[arrayTag3] = typedArrayTags3[arrayBufferTag3] = typedArrayTags3[boolTag3] = typedArrayTags3[dataViewTag3] = typedArrayTags3[dateTag3] = typedArrayTags3[errorTag3] = typedArrayTags3[funcTag3] = typedArrayTags3[mapTag3] = typedArrayTags3[numberTag3] = typedArrayTags3[objectTag3] = typedArrayTags3[regexpTag3] = typedArrayTags3[setTag3] = typedArrayTags3[stringTag3] = typedArrayTags3[weakMapTag3] = false; -var objectProto4 = Object.prototype; -var objectToString3 = objectProto4.toString; -function baseIsTypedArray3(value2) { - return isObjectLike5(value2) && isLength3(value2.length) && !!typedArrayTags3[objectToString3.call(value2)]; -} -function isLength3(value2) { - return typeof value2 === "number" && value2 > -1 && value2 % 1 === 0 && value2 <= MAX_SAFE_INTEGER3; -} -function isObjectLike5(value2) { - return !!value2 && _typeof3(value2) === "object"; -} -var isTypedArray3 = baseIsTypedArray3; - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglComputeModel.js -function ownKeys6(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread6(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys6(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys6(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -var quadVert = "attribute vec3 a_Position;\nattribute vec2 a_TexCoord;\n\nvarying vec2 v_TexCoord;\n\nvoid main() {\n gl_Position = vec4(a_Position, 1.0);\n v_TexCoord = a_TexCoord;\n}"; -var textureId = 0; -var debug = false; -var ReglComputeModel = /* @__PURE__ */ function() { - function ReglComputeModel2(reGl, context) { - var _this = this; - _classCallCheck(this, ReglComputeModel2); - this.reGl = reGl; - this.context = context; - this.entity = createEntity(); - this.texFBO = void 0; - this.computeCommand = void 0; - this.textureCache = {}; - this.outputTextureName = void 0; - this.swapOutputTextureName = void 0; - this.compiledPingpong = void 0; - this.dynamicPingpong = void 0; - var uniforms = {}; - this.context.uniforms.forEach(function(uniform) { - var name = uniform.name, type2 = uniform.type, data3 = uniform.data, isReferer = uniform.isReferer, storageClass = uniform.storageClass; - if (storageClass === STORAGE_CLASS.StorageBuffer) { - if (!isReferer) { - _this.textureCache[name] = _this.calcDataTexture(name, type2, data3); - var _this$textureCache$na = _this.textureCache[name], width2 = _this$textureCache$na.textureWidth, isOutput = _this$textureCache$na.isOutput; - uniforms["".concat(name, "Size")] = [width2, width2]; - if (isOutput) { - _this.outputTextureName = name; - if (_this.context.needPingpong) { - _this.outputTextureName = "".concat(name, "Output"); - _this.textureCache[_this.outputTextureName] = _this.calcDataTexture(name, type2, data3); - } - } - } else { - _this.textureCache[name] = { - data: void 0 - }; - uniforms["".concat(name, "Size")] = function() { - return data3.compiledBundle.context.output.textureSize; - }; - } - uniforms[name] = function() { - if (debug) { - console.log("[".concat(_this.entity, "]: ").concat(name, " ").concat(_this.textureCache[name].id)); - } - return _this.textureCache[name].texture; - }; - } else if (storageClass === STORAGE_CLASS.Uniform) { - if (data3 && (Array.isArray(data3) || isTypedArray3(data3)) && data3.length > 16) { - throw new Error("invalid data type ".concat(type2)); - } - uniforms[name] = function() { - return uniform.data; - }; - } - }); - var _this$getOuputDataTex = this.getOuputDataTexture(), textureWidth = _this$getOuputDataTex.textureWidth, texelCount = _this$getOuputDataTex.texelCount; - uniforms.u_OutputTextureSize = [textureWidth, textureWidth]; - uniforms.u_OutputTexelCount = texelCount; - this.context.output.textureSize = [textureWidth, textureWidth]; - var drawParams = { - attributes: { - a_Position: [[-1, 1, 0], [-1, -1, 0], [1, 1, 0], [1, -1, 0]], - a_TexCoord: [[0, 1], [0, 0], [1, 1], [1, 0]] - }, - frag: "#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n#else\n precision mediump float;\n#endif\n".concat(this.context.shader), - uniforms, - vert: quadVert, - primitive: "triangle strip", - count: 4 - }; - this.computeCommand = this.reGl(drawParams); - } - _createClass(ReglComputeModel2, [{ - key: "run", - value: function run4() { - var _this2 = this; - if (this.context.maxIteration > 1 && this.context.needPingpong) { - this.compiledPingpong = true; - } - if (this.compiledPingpong || this.dynamicPingpong) { - this.swap(); - } - this.texFBO = this.reGl.framebuffer({ - color: this.getOuputDataTexture().texture - }); - this.texFBO.use(function() { - _this2.computeCommand(); - }); - if (debug) { - console.log("[".concat(this.entity, "]: output ").concat(this.getOuputDataTexture().id)); - } - } - }, { - key: "readData", - value: function() { - var _readData = _asyncToGenerator(/* @__PURE__ */ import_regenerator12.default.mark(function _callee() { - var _this3 = this; - var pixels, _this$getOuputDataTex2, originalDataLength, elementsPerTexel, _this$getOuputDataTex3, typedArrayConstructor, formattedPixels, i4; - return import_regenerator12.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.reGl({ - framebuffer: this.texFBO - })(function() { - pixels = _this3.reGl.read(); - }); - if (!pixels) { - _context.next = 6; - break; - } - _this$getOuputDataTex2 = this.getOuputDataTexture(), originalDataLength = _this$getOuputDataTex2.originalDataLength, elementsPerTexel = _this$getOuputDataTex2.elementsPerTexel, _this$getOuputDataTex3 = _this$getOuputDataTex2.typedArrayConstructor, typedArrayConstructor = _this$getOuputDataTex3 === void 0 ? Float32Array : _this$getOuputDataTex3; - formattedPixels = []; - if (elementsPerTexel !== 4) { - for (i4 = 0; i4 < pixels.length; i4 += 4) { - if (elementsPerTexel === 1) { - formattedPixels.push(pixels[i4]); - } else if (elementsPerTexel === 2) { - formattedPixels.push(pixels[i4], pixels[i4 + 1]); - } else { - formattedPixels.push(pixels[i4], pixels[i4 + 1], pixels[i4 + 2]); - } - } - } else { - formattedPixels = pixels; - } - return _context.abrupt("return", new typedArrayConstructor(formattedPixels.slice(0, originalDataLength))); - case 6: - return _context.abrupt("return", new Float32Array()); - case 7: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function readData() { - return _readData.apply(this, arguments); - } - return readData; - }() - }, { - key: "confirmInput", - value: function confirmInput(model, inputName) { - var inputModel; - if (this.entity === model.entity) { - this.dynamicPingpong = true; - inputModel = this; - } else { - inputModel = model; - } - this.textureCache[inputName].id = inputModel.getOuputDataTexture().id; - this.textureCache[inputName].texture = inputModel.getOuputDataTexture().texture; - if (debug) { - console.log("[".concat(this.entity, "]: confirm input ").concat(inputName, " from model ").concat(inputModel.entity, ", ").concat(inputModel.getOuputDataTexture().id)); - } - } - }, { - key: "updateUniform", - value: function updateUniform() { - } - }, { - key: "updateBuffer", - value: function updateBuffer(bufferName, data3) { - var offset = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0; - var buffer = this.context.uniforms.find(function(_ref2) { - var name = _ref2.name; - return name === bufferName; - }); - if (buffer) { - var _this$calcDataTexture = this.calcDataTexture(bufferName, buffer.type, data3), texture = _this$calcDataTexture.texture, paddingData = _this$calcDataTexture.data; - this.textureCache[bufferName].data = paddingData; - this.textureCache[bufferName].texture = texture; - } - } - }, { - key: "destroy", - value: function destroy() { - } - }, { - key: "swap", - value: function swap3() { - if (!this.swapOutputTextureName) { - this.createSwapOutputDataTexture(); - } - if (this.compiledPingpong) { - var outputTextureUniformName = this.context.output.name; - this.textureCache[outputTextureUniformName].id = this.getOuputDataTexture().id; - this.textureCache[outputTextureUniformName].texture = this.getOuputDataTexture().texture; - } - var tmp = this.outputTextureName; - this.outputTextureName = this.swapOutputTextureName; - this.swapOutputTextureName = tmp; - if (debug) { - console.log("[".concat(this.entity, "]: after swap, output ").concat(this.getOuputDataTexture().id)); - } - } - }, { - key: "getOuputDataTexture", - value: function getOuputDataTexture() { - return this.textureCache[this.outputTextureName]; - } - }, { - key: "createSwapOutputDataTexture", - value: function createSwapOutputDataTexture() { - var texture = this.cloneDataTexture(this.getOuputDataTexture()); - this.swapOutputTextureName = "".concat(this.entity, "-swap"); - this.textureCache[this.swapOutputTextureName] = texture; - } - }, { - key: "cloneDataTexture", - value: function cloneDataTexture(texture) { - var data3 = texture.data, textureWidth = texture.textureWidth; - return _objectSpread6(_objectSpread6({}, texture), {}, { - id: textureId++, - texture: this.reGl.texture({ - width: textureWidth, - height: textureWidth, - data: data3, - type: "float" - }) - }); - } - }, { - key: "calcDataTexture", - value: function calcDataTexture(name, type2, data3) { - var elementsPerTexel = 1; - if (type2 === AST_TOKEN_TYPES.Vector4FloatArray) { - elementsPerTexel = 4; - } - var paddingData = []; - for (var i4 = 0; i4 < data3.length; i4 += elementsPerTexel) { - if (elementsPerTexel === 1) { - paddingData.push(data3[i4], 0, 0, 0); - } else if (elementsPerTexel === 2) { - paddingData.push(data3[i4], data3[i4 + 1], 0, 0); - } else if (elementsPerTexel === 3) { - paddingData.push(data3[i4], data3[i4 + 1], data3[i4 + 2], 0); - } else if (elementsPerTexel === 4) { - paddingData.push(data3[i4], data3[i4 + 1], data3[i4 + 2], data3[i4 + 3]); - } - } - var originalDataLength = data3.length; - var texelCount = Math.ceil(originalDataLength / elementsPerTexel); - var width2 = Math.ceil(Math.sqrt(texelCount)); - var paddingTexelCount = width2 * width2; - if (texelCount < paddingTexelCount) { - paddingData.push.apply(paddingData, _toConsumableArray(new Array((paddingTexelCount - texelCount) * 4).fill(0))); - } - var texture = this.reGl.texture({ - width: width2, - height: width2, - data: paddingData, - type: "float" - }); - return { - id: textureId++, - data: paddingData, - originalDataLength, - typedArrayConstructor: isTypedArray3(data3) ? data3.constructor : void 0, - textureWidth: width2, - texture, - texelCount, - elementsPerTexel, - isOutput: name === this.context.output.name - }; - } - }]); - return ReglComputeModel2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglElements.js -var ReglElements = /* @__PURE__ */ function() { - function ReglElements2(reGl, options) { - _classCallCheck(this, ReglElements2); - this.elements = void 0; - var data3 = options.data, usage = options.usage, type2 = options.type, count2 = options.count; - this.elements = reGl.elements({ - data: data3, - usage: usageMap[usage || gl.STATIC_DRAW], - type: dataTypeMap[type2 || gl.UNSIGNED_BYTE], - count: count2 - }); - } - _createClass(ReglElements2, [{ - key: "get", - value: function get3() { - return this.elements; - } - }, { - key: "subData", - value: function subData(_ref2) { - var data3 = _ref2.data; - this.elements.subdata(data3); - } - }, { - key: "destroy", - value: function destroy() { - this.elements.destroy(); - } - }]); - return ReglElements2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglFramebuffer.js -var ReglFramebuffer = /* @__PURE__ */ function() { - function ReglFramebuffer2(reGl, options) { - _classCallCheck(this, ReglFramebuffer2); - this.framebuffer = void 0; - var width2 = options.width, height = options.height, color4 = options.color, colors = options.colors, depth = options.depth, stencil = options.stencil; - var framebufferOptions = { - width: width2, - height - }; - if (Array.isArray(colors)) { - framebufferOptions.colors = colors.map(function(c5) { - return c5.get(); - }); - } - if (color4 && typeof color4 !== "boolean") { - framebufferOptions.color = color4.get(); - } - this.framebuffer = reGl.framebuffer(framebufferOptions); - } - _createClass(ReglFramebuffer2, [{ - key: "get", - value: function get3() { - return this.framebuffer; - } - }, { - key: "destroy", - value: function destroy() { - this.framebuffer.destroy(); - } - }, { - key: "resize", - value: function resize(_ref2) { - var width2 = _ref2.width, height = _ref2.height; - this.framebuffer.resize(width2, height); - } - }]); - return ReglFramebuffer2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/utils/is-object.js -function isObject3(value2) { - var type2 = _typeof3(value2); - return value2 != null && (type2 === "object" || type2 === "function"); -} - -// node_modules/@antv/g-webgpu-engine/es/utils/uniform.js -function extractUniforms2(uniforms) { - var extractedUniforms = {}; - Object.keys(uniforms).forEach(function(uniformName) { - extractUniformsRecursively(uniformName, uniforms[uniformName], extractedUniforms, ""); - }); - return extractedUniforms; -} -function extractUniformsRecursively(uniformName, uniformValue, uniforms, prefix2) { - if (uniformValue === null || typeof uniformValue === "number" || typeof uniformValue === "boolean" || Array.isArray(uniformValue) && typeof uniformValue[0] === "number" || isTypedArray3(uniformValue) || uniformValue === "" || uniformValue.resize !== void 0) { - uniforms["".concat(prefix2 && prefix2 + ".").concat(uniformName)] = uniformValue; - return; - } - if (isObject3(uniformValue)) { - Object.keys(uniformValue).forEach(function(childName) { - extractUniformsRecursively(childName, uniformValue[childName], uniforms, "".concat(prefix2 && prefix2 + ".").concat(uniformName)); - }); - } - if (Array.isArray(uniformValue)) { - uniformValue.forEach(function(child, idx) { - Object.keys(child).forEach(function(childName) { - extractUniformsRecursively(childName, child[childName], uniforms, "".concat(prefix2 && prefix2 + ".").concat(uniformName, "[").concat(idx, "]")); - }); - }); - } -} - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglModel.js -function ownKeys7(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread7(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys7(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys7(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -var ReglModel = /* @__PURE__ */ function() { - function ReglModel2(reGl, options) { - _classCallCheck(this, ReglModel2); - this.reGl = void 0; - this.drawCommand = void 0; - this.uniforms = {}; - this.reGl = reGl; - var vs = options.vs, fs = options.fs, defines = options.defines, attributes = options.attributes, uniforms = options.uniforms, primitive = options.primitive, count2 = options.count, elements = options.elements, depth = options.depth, blend2 = options.blend, stencil = options.stencil, cull = options.cull, instances = options.instances, scissor = options.scissor, viewport = options.viewport; - var reglUniforms = {}; - if (uniforms) { - this.uniforms = extractUniforms2(uniforms); - Object.keys(uniforms).forEach(function(uniformName) { - reglUniforms[uniformName] = reGl.prop(uniformName); - }); - } - var reglAttributes = {}; - Object.keys(attributes).forEach(function(name) { - reglAttributes[name] = attributes[name].get(); - }); - var defineStmts = defines && this.generateDefines(defines) || ""; - var drawParams = { - attributes: reglAttributes, - frag: "#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n#else\n precision mediump float;\n#endif\n".concat(defineStmts, "\n").concat(fs), - uniforms: reglUniforms, - vert: "\n".concat(defineStmts, "\n").concat(vs), - primitive: primitiveMap[primitive === void 0 ? gl.TRIANGLES : primitive] - }; - if (instances) { - drawParams.instances = instances; - } - if (count2) { - drawParams.count = count2; - } - if (elements) { - drawParams.elements = elements.get(); - } - if (scissor) { - drawParams.scissor = scissor; - } - if (viewport) { - drawParams.viewport = viewport; - } - this.initDepthDrawParams({ - depth - }, drawParams); - this.initBlendDrawParams({ - blend: blend2 - }, drawParams); - this.initStencilDrawParams({ - stencil - }, drawParams); - this.initCullDrawParams({ - cull - }, drawParams); - this.drawCommand = reGl(drawParams); - } - _createClass(ReglModel2, [{ - key: "addUniforms", - value: function addUniforms(uniforms) { - this.uniforms = _objectSpread7(_objectSpread7({}, this.uniforms), extractUniforms2(uniforms)); - } - }, { - key: "draw", - value: function draw4(options) { - var uniforms = _objectSpread7(_objectSpread7({}, this.uniforms), extractUniforms2(options.uniforms || {})); - var reglDrawProps = {}; - Object.keys(uniforms).forEach(function(uniformName) { - var type2 = _typeof3(uniforms[uniformName]); - if (type2 === "boolean" || type2 === "number" || Array.isArray(uniforms[uniformName]) || uniforms[uniformName].BYTES_PER_ELEMENT) { - reglDrawProps[uniformName] = uniforms[uniformName]; - } else if (type2 === "string") { - } else { - reglDrawProps[uniformName] = uniforms[uniformName].get(); - } - }); - this.drawCommand(reglDrawProps); - } - }, { - key: "destroy", - value: function destroy() { - } - }, { - key: "initDepthDrawParams", - value: function initDepthDrawParams(_ref2, drawParams) { - var depth = _ref2.depth; - if (depth) { - drawParams.depth = { - enable: depth.enable === void 0 ? true : !!depth.enable, - mask: depth.mask === void 0 ? true : !!depth.mask, - func: depthFuncMap[depth.func || gl.LESS], - range: depth.range || [0, 1] - }; - } - } - }, { - key: "initBlendDrawParams", - value: function initBlendDrawParams(_ref2, drawParams) { - var blend2 = _ref2.blend; - if (blend2) { - var enable = blend2.enable, func = blend2.func, equation = blend2.equation, _blend$color = blend2.color, color4 = _blend$color === void 0 ? [0, 0, 0, 0] : _blend$color; - drawParams.blend = { - enable: !!enable, - func: { - srcRGB: blendFuncMap[func && func.srcRGB || gl.SRC_ALPHA], - srcAlpha: blendFuncMap[func && func.srcAlpha || gl.SRC_ALPHA], - dstRGB: blendFuncMap[func && func.dstRGB || gl.ONE_MINUS_SRC_ALPHA], - dstAlpha: blendFuncMap[func && func.dstAlpha || gl.ONE_MINUS_SRC_ALPHA] - }, - equation: { - rgb: blendEquationMap[equation && equation.rgb || gl.FUNC_ADD], - alpha: blendEquationMap[equation && equation.alpha || gl.FUNC_ADD] - }, - color: color4 - }; - } - } - }, { - key: "initStencilDrawParams", - value: function initStencilDrawParams(_ref3, drawParams) { - var stencil = _ref3.stencil; - if (stencil) { - var enable = stencil.enable, _stencil$mask = stencil.mask, mask = _stencil$mask === void 0 ? -1 : _stencil$mask, _stencil$func = stencil.func, func = _stencil$func === void 0 ? { - cmp: gl.ALWAYS, - ref: 0, - mask: -1 - } : _stencil$func, _stencil$opFront = stencil.opFront, opFront = _stencil$opFront === void 0 ? { - fail: gl.KEEP, - zfail: gl.KEEP, - zpass: gl.KEEP - } : _stencil$opFront, _stencil$opBack = stencil.opBack, opBack = _stencil$opBack === void 0 ? { - fail: gl.KEEP, - zfail: gl.KEEP, - zpass: gl.KEEP - } : _stencil$opBack; - drawParams.stencil = { - enable: !!enable, - mask, - func: _objectSpread7(_objectSpread7({}, func), {}, { - cmp: stencilFuncMap[func.cmp] - }), - opFront: { - fail: stencilOpMap[opFront.fail], - zfail: stencilOpMap[opFront.zfail], - zpass: stencilOpMap[opFront.zpass] - }, - opBack: { - fail: stencilOpMap[opBack.fail], - zfail: stencilOpMap[opBack.zfail], - zpass: stencilOpMap[opBack.zpass] - } - }; - } - } - }, { - key: "initCullDrawParams", - value: function initCullDrawParams(_ref4, drawParams) { - var cull = _ref4.cull; - if (cull) { - var enable = cull.enable, _cull$face = cull.face, face = _cull$face === void 0 ? gl.BACK : _cull$face; - drawParams.cull = { - enable: !!enable, - face: cullFaceMap[face] - }; - } - } - }, { - key: "generateDefines", - value: function generateDefines(defines) { - return Object.keys(defines).map(function(name) { - return "#define ".concat(name, " ").concat(Number(defines[name])); - }).join("\n"); - } - }]); - return ReglModel2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgl/ReglTexture2D.js -var ReglTexture2D = /* @__PURE__ */ function() { - function ReglTexture2D2(reGl, options) { - _classCallCheck(this, ReglTexture2D2); - this.texture = void 0; - this.width = void 0; - this.height = void 0; - var data3 = options.data, _options$type = options.type, type2 = _options$type === void 0 ? gl.UNSIGNED_BYTE : _options$type, width2 = options.width, height = options.height, _options$flipY = options.flipY, flipY = _options$flipY === void 0 ? false : _options$flipY, _options$format = options.format, format2 = _options$format === void 0 ? gl.RGBA : _options$format, _options$mipmap = options.mipmap, mipmap = _options$mipmap === void 0 ? false : _options$mipmap, _options$wrapS = options.wrapS, wrapS = _options$wrapS === void 0 ? gl.CLAMP_TO_EDGE : _options$wrapS, _options$wrapT = options.wrapT, wrapT = _options$wrapT === void 0 ? gl.CLAMP_TO_EDGE : _options$wrapT, _options$aniso = options.aniso, aniso = _options$aniso === void 0 ? 0 : _options$aniso, _options$alignment = options.alignment, alignment = _options$alignment === void 0 ? 1 : _options$alignment, _options$premultiplyA = options.premultiplyAlpha, premultiplyAlpha = _options$premultiplyA === void 0 ? false : _options$premultiplyA, _options$mag = options.mag, mag = _options$mag === void 0 ? gl.NEAREST : _options$mag, _options$min = options.min, min7 = _options$min === void 0 ? gl.NEAREST : _options$min, _options$colorSpace = options.colorSpace, colorSpace = _options$colorSpace === void 0 ? gl.BROWSER_DEFAULT_WEBGL : _options$colorSpace; - this.width = width2; - this.height = height; - var textureOptions = { - width: width2, - height, - type: dataTypeMap[type2], - format: formatMap[format2], - wrapS: wrapModeMap[wrapS], - wrapT: wrapModeMap[wrapT], - mag: filterMap[mag], - min: filterMap[min7], - alignment, - flipY, - colorSpace: colorSpaceMap[colorSpace], - premultiplyAlpha, - aniso - }; - if (data3) { - textureOptions.data = data3; - } - if (typeof mipmap === "number") { - textureOptions.mipmap = mipmapMap[mipmap]; - } else if (typeof mipmap === "boolean") { - textureOptions.mipmap = mipmap; - } - this.texture = reGl.texture(textureOptions); - } - _createClass(ReglTexture2D2, [{ - key: "get", - value: function get3() { - return this.texture; - } - }, { - key: "update", - value: function update15() { - this.texture._texture.bind(); - } - }, { - key: "resize", - value: function resize(_ref2) { - var width2 = _ref2.width, height = _ref2.height; - this.texture.resize(width2, height); - this.width = width2; - this.height = height; - } - }, { - key: "destroy", - value: function destroy() { - this.texture.destroy(); - } - }]); - return ReglTexture2D2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgl/index.js -var _dec41; -var _class20; -var _temp18; -var WebGLEngine = (_dec41 = (0, import_inversify21.injectable)(), _dec41(_class20 = (_temp18 = /* @__PURE__ */ function() { - function WebGLEngine2() { - var _this = this; - _classCallCheck(this, WebGLEngine2); - this.supportWebGPU = false; - this.useWGSL = false; - this.$canvas = void 0; - this.gl = void 0; - this.inited = void 0; - this.createModel = /* @__PURE__ */ function() { - var _ref2 = _asyncToGenerator(/* @__PURE__ */ import_regenerator13.default.mark(function _callee2(options) { - return import_regenerator13.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!options.uniforms) { - _context2.next = 3; - break; - } - _context2.next = 3; - return Promise.all(Object.keys(options.uniforms).map(/* @__PURE__ */ function() { - var _ref22 = _asyncToGenerator(/* @__PURE__ */ import_regenerator13.default.mark(function _callee(name) { - var texture; - return import_regenerator13.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(options.uniforms[name] && options.uniforms[name].load !== void 0)) { - _context.next = 5; - break; - } - _context.next = 3; - return options.uniforms[name].load(); - case 3: - texture = _context.sent; - options.uniforms[name] = texture; - case 5: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return function(_x2) { - return _ref22.apply(this, arguments); - }; - }())); - case 3: - return _context2.abrupt("return", new ReglModel(_this.gl, options)); - case 4: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - return function(_x) { - return _ref2.apply(this, arguments); - }; - }(); - this.createAttribute = function(options) { - return new ReglAttribute(_this.gl, options); - }; - this.createBuffer = function(options) { - return new ReglBuffer(_this.gl, options); - }; - this.createElements = function(options) { - return new ReglElements(_this.gl, options); - }; - this.createTexture2D = function(options) { - return new ReglTexture2D(_this.gl, options); - }; - this.createFramebuffer = function(options) { - return new ReglFramebuffer(_this.gl, options); - }; - this.useFramebuffer = function(framebuffer, drawCommands) { - _this.gl({ - framebuffer: framebuffer ? framebuffer.get() : null - })(drawCommands); - }; - this.createComputeModel = /* @__PURE__ */ function() { - var _ref3 = _asyncToGenerator(/* @__PURE__ */ import_regenerator13.default.mark(function _callee3(context) { - return import_regenerator13.default.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - return _context3.abrupt("return", new ReglComputeModel(_this.gl, context)); - case 1: - case "end": - return _context3.stop(); - } - } - }, _callee3); - })); - return function(_x3) { - return _ref3.apply(this, arguments); - }; - }(); - this.clear = function(options) { - var color4 = options.color, depth = options.depth, stencil = options.stencil, _options$framebuffer = options.framebuffer, framebuffer = _options$framebuffer === void 0 ? null : _options$framebuffer; - var reglClearOptions = { - color: color4, - depth, - stencil - }; - reglClearOptions.framebuffer = framebuffer === null ? framebuffer : framebuffer.get(); - _this.gl.clear(reglClearOptions); - }; - this.setScissor = function(scissor) { - if (_this.gl && _this.gl._gl) { - if (scissor.enable && scissor.box) { - _this.gl._gl.enable(gl.SCISSOR_TEST); - _this.gl._gl.scissor(scissor.box.x, scissor.box.y, scissor.box.width, scissor.box.height); - } else { - _this.gl._gl.disable(gl.SCISSOR_TEST); - } - _this.gl._refresh(); - } - }; - this.viewport = function(_ref4) { - var x6 = _ref4.x, y5 = _ref4.y, width2 = _ref4.width, height = _ref4.height; - if (_this.gl && _this.gl._gl) { - _this.gl._gl.viewport(x6, y5, width2, height); - _this.gl._refresh(); - } - }; - this.readPixels = function(options) { - var framebuffer = options.framebuffer, x6 = options.x, y5 = options.y, width2 = options.width, height = options.height; - var readPixelsOptions = { - x: x6, - y: y5, - width: width2, - height - }; - if (framebuffer) { - readPixelsOptions.framebuffer = framebuffer.get(); - } - return _this.gl.read(readPixelsOptions); - }; - this.getCanvas = function() { - return _this.$canvas; - }; - this.getGLContext = function() { - return _this.gl._gl; - }; - this.destroy = function() { - if (_this.gl) { - _this.gl.destroy(); - _this.inited = false; - } - }; - } - _createClass(WebGLEngine2, [{ - key: "init", - value: function() { - var _init = _asyncToGenerator(/* @__PURE__ */ import_regenerator13.default.mark(function _callee4(cfg) { - return import_regenerator13.default.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - if (!this.inited) { - _context4.next = 2; - break; - } - return _context4.abrupt("return"); - case 2: - this.$canvas = cfg.canvas; - _context4.next = 5; - return new Promise(function(resolve, reject) { - (0, import_regl.default)({ - canvas: cfg.canvas, - attributes: { - alpha: true, - antialias: cfg.antialias, - premultipliedAlpha: true - }, - pixelRatio: 1, - extensions: [ - "OES_element_index_uint", - "OES_texture_float", - "OES_standard_derivatives", - "angle_instanced_arrays" - ], - optionalExtensions: ["EXT_texture_filter_anisotropic", "EXT_blend_minmax", "WEBGL_depth_texture"], - profile: true, - onDone: function onDone(err, r4) { - if (err || !r4) { - reject(err); - } - resolve(r4); - } - }); - }); - case 5: - this.gl = _context4.sent; - this.inited = true; - case 7: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - function init(_x4) { - return _init.apply(this, arguments); - } - return init; - }() - }, { - key: "isFloatSupported", - value: function isFloatSupported() { - return this.gl.limits.readFloat; - } - }, { - key: "beginFrame", - value: function beginFrame() { - } - }, { - key: "endFrame", - value: function endFrame() { - } - }]); - return WebGLEngine2; -}(), _temp18)) || _class20); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/index.js -var import_regenerator17 = __toModule(require_regenerator()); -var WebGPUConstants8 = __toModule(require_constants()); -var import_inversify22 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/glslang.js -var import_regenerator14 = __toModule(require_regenerator()); - -// node_modules/@antv/g-webgpu-engine/es/utils/dom.js -function isWindowObjectExist() { - return typeof window !== "undefined"; -} -function loadScript(scriptUrl, onSuccess, onError, scriptId) { - if (!isWindowObjectExist()) { - return; - } - var head2 = document.getElementsByTagName("head")[0]; - var script = document.createElement("script"); - script.setAttribute("type", "text/javascript"); - script.setAttribute("src", scriptUrl); - if (scriptId) { - script.id = scriptId; - } - script.onload = function() { - if (onSuccess) { - onSuccess(); - } - }; - script.onerror = function(e4) { - if (onError) { - onError("Unable to load script '".concat(scriptUrl, "'"), e4); - } - }; - head2.appendChild(script); -} -function loadScriptAsync(scriptUrl, scriptId) { - return new Promise(function(resolve, reject) { - loadScript(scriptUrl, function() { - resolve(); - }, function(message, exception2) { - reject(exception2); - }); - }); -} - -// node_modules/@antv/g-webgpu-engine/es/webgpu/glslang.js -var glslang; -function glslang_default() { - return _ref.apply(this, arguments); -} -function _ref() { - _ref = _asyncToGenerator(/* @__PURE__ */ import_regenerator14.default.mark(function _callee() { - return import_regenerator14.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!glslang) { - _context.next = 2; - break; - } - return _context.abrupt("return", glslang); - case 2: - _context.next = 4; - return loadScriptAsync("https://preview.babylonjs.com/glslang/glslang.js"); - case 4: - glslang = window.glslang("https://preview.babylonjs.com/glslang/glslang.wasm"); - return _context.abrupt("return", glslang); - case 6: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _ref.apply(this, arguments); -} - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUAttribute.js -var WebGPUAttribute = /* @__PURE__ */ function() { - function WebGPUAttribute2(engine, options) { - _classCallCheck(this, WebGPUAttribute2); - this.engine = engine; - this.options = options; - this.attribute = void 0; - this.buffer = void 0; - var _options = options, buffer = _options.buffer, offset = _options.offset, stride = _options.stride, normalized = _options.normalized, size2 = _options.size, divisor = _options.divisor, arrayStride = _options.arrayStride, attributes = _options.attributes, stepMode = _options.stepMode; - this.buffer = buffer; - this.attribute = { - buffer: buffer.get(), - offset: offset || 0, - stride: stride || 0, - normalized: normalized || false, - divisor: divisor || 0, - arrayStride: arrayStride || 0, - attributes, - stepMode: stepMode || "vertex" - }; - if (size2) { - this.attribute.size = size2; - } - } - _createClass(WebGPUAttribute2, [{ - key: "get", - value: function get3() { - return this.attribute; - } - }, { - key: "updateBuffer", - value: function updateBuffer(options) { - this.buffer.subData(options); - } - }, { - key: "destroy", - value: function destroy() { - this.buffer.destroy(); - } - }]); - return WebGPUAttribute2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUBuffer.js -var WebGPUConstants2 = __toModule(require_constants()); -var WebGPUBuffer = /* @__PURE__ */ function() { - function WebGPUBuffer2(engine, options) { - _classCallCheck(this, WebGPUBuffer2); - this.engine = engine; - this.options = options; - this.buffer = void 0; - var _options = options, data3 = _options.data, usage = _options.usage, type2 = _options.type; - this.buffer = this.createBuffer(data3 instanceof Array ? new Float32Array(data3) : data3, usage || WebGPUConstants2.BufferUsage.Vertex | WebGPUConstants2.BufferUsage.CopyDst); - } - _createClass(WebGPUBuffer2, [{ - key: "get", - value: function get3() { - return this.buffer; - } - }, { - key: "destroy", - value: function destroy() { - this.buffer.destroy(); - } - }, { - key: "subData", - value: function subData(_ref2) { - var data3 = _ref2.data, offset = _ref2.offset; - this.setSubData(this.buffer, offset, data3 instanceof Array ? new Float32Array(data3) : data3); - } - }, { - key: "createBuffer", - value: function createBuffer(view, flags) { - var padding3 = view.byteLength % 4; - var verticesBufferDescriptor = { - size: view.byteLength + padding3, - usage: flags - }; - var buffer = this.engine.device.createBuffer(verticesBufferDescriptor); - this.setSubData(buffer, 0, view); - return buffer; - } - }, { - key: "setSubData", - value: function setSubData(destBuffer, destOffset, srcArrayBuffer) { - var queue = isSafari ? this.engine.device.getQueue() : this.engine.device.defaultQueue; - queue.writeBuffer(destBuffer, destOffset, srcArrayBuffer); - } - }]); - return WebGPUBuffer2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUComputeModel.js -var import_regenerator15 = __toModule(require_regenerator()); -var WebGPUConstants3 = __toModule(require_constants()); - -// node_modules/@antv/g-webgpu-engine/es/utils/is-number.js -function isNumber6(value2) { - return typeof value2 === "number"; -} - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUComputeModel.js -var WebGPUComputeModel = /* @__PURE__ */ function() { - function WebGPUComputeModel2(engine, context) { - _classCallCheck(this, WebGPUComputeModel2); - this.engine = engine; - this.context = context; - this.entity = createEntity(); - this.uniformGPUBufferLayout = []; - this.uniformBuffer = void 0; - this.vertexBuffers = {}; - this.outputBuffer = void 0; - this.bindGroupEntries = void 0; - this.bindGroup = void 0; - this.computePipeline = void 0; - } - _createClass(WebGPUComputeModel2, [{ - key: "init", - value: function() { - var _init = _asyncToGenerator(/* @__PURE__ */ import_regenerator15.default.mark(function _callee() { - var _this = this; - var _yield$this$compileCo, computeStage, buffers, uniforms, bufferBindingIndex, offset, mergedUniformData; - return import_regenerator15.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this.compileComputePipelineStageDescriptor(this.context.shader); - case 2: - _yield$this$compileCo = _context.sent; - computeStage = _yield$this$compileCo.computeStage; - buffers = this.context.uniforms.filter(function(uniform) { - return uniform.storageClass === STORAGE_CLASS.StorageBuffer; - }); - uniforms = this.context.uniforms.filter(function(uniform) { - return uniform.storageClass === STORAGE_CLASS.Uniform; - }); - bufferBindingIndex = uniforms.length ? 1 : 0; - this.bindGroupEntries = []; - if (bufferBindingIndex) { - offset = 0; - mergedUniformData = []; - uniforms.forEach(function(uniform) { - if (isNumber6(uniform.data)) { - _this.uniformGPUBufferLayout.push({ - name: uniform.name, - offset - }); - offset += 4; - mergedUniformData.push(uniform.data); - } else { - var _uniform$data; - var originDataLength = ((_uniform$data = uniform.data) === null || _uniform$data === void 0 ? void 0 : _uniform$data.length) || 1; - if (originDataLength === 3) { - originDataLength = 4; - uniform.data.push(0); - } - var padding3 = offset / 4 % 4; - if (padding3 > 0) { - var space = 4 - padding3; - if (originDataLength > 1 && originDataLength <= space) { - if (originDataLength === 2) { - if (space === 3) { - offset += 4; - mergedUniformData.push(0); - } - mergedUniformData.push.apply(mergedUniformData, _toConsumableArray(uniform.data)); - _this.uniformGPUBufferLayout.push({ - name: uniform.name, - offset - }); - } - } else { - for (var i4 = 0; i4 < space; i4++) { - offset += 4; - mergedUniformData.push(0); - } - mergedUniformData.push.apply(mergedUniformData, _toConsumableArray(uniform.data)); - _this.uniformGPUBufferLayout.push({ - name: uniform.name, - offset - }); - } - } - offset += 4 * originDataLength; - } - }); - this.uniformBuffer = new WebGPUBuffer(this.engine, { - data: mergedUniformData instanceof Array ? new Float32Array(mergedUniformData) : mergedUniformData, - usage: WebGPUConstants3.BufferUsage.Uniform | WebGPUConstants3.BufferUsage.CopyDst - }); - this.bindGroupEntries.push({ - binding: 0, - resource: { - buffer: this.uniformBuffer.get() - } - }); - } - buffers.forEach(function(buffer) { - if (buffer.data !== null) { - if (buffer.type === AST_TOKEN_TYPES.Vector4FloatArray || buffer.type === AST_TOKEN_TYPES.FloatArray) { - var gpuBuffer; - if (buffer.name === _this.context.output.name) { - gpuBuffer = new WebGPUBuffer(_this.engine, { - data: isFinite(Number(buffer.data)) ? [buffer.data] : buffer.data, - usage: WebGPUConstants3.BufferUsage.Storage | WebGPUConstants3.BufferUsage.CopyDst | WebGPUConstants3.BufferUsage.CopySrc - }); - _this.outputBuffer = gpuBuffer; - _this.context.output = { - name: buffer.name, - length: isFinite(Number(buffer.data)) ? 1 : buffer.data.length, - typedArrayConstructor: Float32Array, - gpuBuffer: gpuBuffer.get() - }; - } else { - if (buffer.isReferer) { - if (buffer.data.model && buffer.data.model.outputBuffer) { - gpuBuffer = buffer.data.model.outputBuffer; - } else { - } - } else { - gpuBuffer = new WebGPUBuffer(_this.engine, { - data: isFinite(Number(buffer.data)) ? [buffer.data] : buffer.data, - usage: WebGPUConstants3.BufferUsage.Storage | WebGPUConstants3.BufferUsage.CopyDst | WebGPUConstants3.BufferUsage.CopySrc - }); - } - } - _this.vertexBuffers[buffer.name] = gpuBuffer; - _this.bindGroupEntries.push({ - binding: bufferBindingIndex, - resource: { - name: buffer.name, - refer: gpuBuffer ? void 0 : buffer.data, - buffer: gpuBuffer ? gpuBuffer.get() : void 0 - } - }); - bufferBindingIndex++; - } - } - }); - this.computePipeline = this.engine.device.createComputePipeline({ - computeStage - }); - console.log(this.bindGroupEntries); - this.bindGroup = this.engine.device.createBindGroup({ - layout: this.computePipeline.getBindGroupLayout(0), - entries: this.bindGroupEntries - }); - case 13: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function init() { - return _init.apply(this, arguments); - } - return init; - }() - }, { - key: "destroy", - value: function destroy() { - var _this2 = this; - if (this.uniformBuffer) { - this.uniformBuffer.destroy(); - } - Object.keys(this.vertexBuffers).forEach(function(bufferName) { - return _this2.vertexBuffers[bufferName].destroy(); - }); - } - }, { - key: "readData", - value: function() { - var _readData = _asyncToGenerator(/* @__PURE__ */ import_regenerator15.default.mark(function _callee2() { - var output, length5, typedArrayConstructor, gpuBuffer, byteCount, gpuReadBuffer, encoder, queue, arraybuffer, typedArray; - return import_regenerator15.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - output = this.context.output; - if (!output) { - _context2.next = 16; - break; - } - length5 = output.length, typedArrayConstructor = output.typedArrayConstructor, gpuBuffer = output.gpuBuffer; - if (!gpuBuffer) { - _context2.next = 16; - break; - } - byteCount = length5 * typedArrayConstructor.BYTES_PER_ELEMENT; - gpuReadBuffer = this.engine.device.createBuffer({ - size: byteCount, - usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ - }); - encoder = this.engine.device.createCommandEncoder(); - encoder.copyBufferToBuffer(gpuBuffer, 0, gpuReadBuffer, 0, byteCount); - queue = isSafari ? this.engine.device.getQueue() : this.engine.device.defaultQueue; - queue.submit([encoder.finish()]); - _context2.next = 12; - return gpuReadBuffer.mapAsync(WebGPUConstants3.MapMode.Read); - case 12: - arraybuffer = gpuReadBuffer.getMappedRange(); - typedArray = new typedArrayConstructor(arraybuffer.slice(0)); - gpuReadBuffer.unmap(); - return _context2.abrupt("return", typedArray); - case 16: - return _context2.abrupt("return", new Float32Array()); - case 17: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - function readData() { - return _readData.apply(this, arguments); - } - return readData; - }() - }, { - key: "run", - value: function run4() { - if (this.engine.currentComputePass) { - var _this$engine$currentC; - this.engine.currentComputePass.setPipeline(this.computePipeline); - this.engine.currentComputePass.setBindGroup(0, this.bindGroup); - (_this$engine$currentC = this.engine.currentComputePass).dispatch.apply(_this$engine$currentC, _toConsumableArray(this.context.dispatch)); - } - } - }, { - key: "updateBuffer", - value: function updateBuffer(bufferName, data3) { - var offset = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0; - var buffer = this.vertexBuffers[bufferName]; - if (buffer) { - buffer.subData({ - data: data3, - offset - }); - } - } - }, { - key: "updateUniform", - value: function updateUniform(uniformName, data3) { - var layout6 = this.uniformGPUBufferLayout.find(function(l4) { - return l4.name === uniformName; - }); - if (layout6) { - this.uniformBuffer.subData({ - data: Number.isFinite(data3) ? new Float32Array([data3]) : new Float32Array(data3), - offset: layout6.offset - }); - } - } - }, { - key: "confirmInput", - value: function confirmInput(model, inputName) { - var inputBuffer = this.vertexBuffers[inputName]; - var outputBuffer = model.outputBuffer; - if (inputBuffer && outputBuffer && inputBuffer !== outputBuffer) { - var encoder = this.engine.device.createCommandEncoder(); - var _context$output = model.context.output, length5 = _context$output.length, typedArrayConstructor = _context$output.typedArrayConstructor; - var byteCount = length5 * typedArrayConstructor.BYTES_PER_ELEMENT; - encoder.copyBufferToBuffer(outputBuffer.get(), 0, inputBuffer.get(), 0, byteCount); - var queue = isSafari ? this.engine.device.getQueue() : this.engine.device.defaultQueue; - queue.submit([encoder.finish()]); - } - } - }, { - key: "compileShaderToSpirV", - value: function compileShaderToSpirV(source, type2, shaderVersion) { - return this.compileRawShaderToSpirV(shaderVersion + source, type2); - } - }, { - key: "compileRawShaderToSpirV", - value: function compileRawShaderToSpirV(source, type2) { - return this.engine.glslang.compileGLSL(source, type2); - } - }, { - key: "compileComputePipelineStageDescriptor", - value: function() { - var _compileComputePipelineStageDescriptor = _asyncToGenerator(/* @__PURE__ */ import_regenerator15.default.mark(function _callee3(computeCode) { - var computeShader, shaderVersion; - return import_regenerator15.default.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - computeShader = computeCode; - shaderVersion = "#version 450\n"; - if (this.engine.options.useWGSL) { - _context3.next = 6; - break; - } - _context3.next = 5; - return this.compileShaderToSpirV(computeCode, "compute", shaderVersion); - case 5: - computeShader = _context3.sent; - case 6: - return _context3.abrupt("return", { - computeStage: { - module: this.engine.device.createShaderModule({ - code: computeShader, - isWHLSL: isSafari - }), - entryPoint: "main" - } - }); - case 7: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - function compileComputePipelineStageDescriptor(_x) { - return _compileComputePipelineStageDescriptor.apply(this, arguments); - } - return compileComputePipelineStageDescriptor; - }() - }]); - return WebGPUComputeModel2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUElements.js -var WebGPUConstants4 = __toModule(require_constants()); -var WebGPUElements = /* @__PURE__ */ function() { - function WebGPUElements2(engine, options) { - _classCallCheck(this, WebGPUElements2); - this.engine = engine; - this.options = options; - this.indexCount = void 0; - this.buffer = void 0; - var _options = options, data3 = _options.data, usage = _options.usage, type2 = _options.type, count2 = _options.count; - this.indexCount = count2 || 0; - this.buffer = new WebGPUBuffer(engine, { - data: data3 instanceof Array ? new Uint16Array(data3) : data3, - usage: WebGPUConstants4.BufferUsage.Index | WebGPUConstants4.BufferUsage.CopyDst - }); - } - _createClass(WebGPUElements2, [{ - key: "get", - value: function get3() { - return this.buffer; - } - }, { - key: "subData", - value: function subData(options) { - this.buffer.subData(options); - } - }, { - key: "destroy", - value: function destroy() { - this.buffer.destroy(); - } - }]); - return WebGPUElements2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUFramebuffer.js -var WebGPUFramebuffer = /* @__PURE__ */ function() { - function WebGPUFramebuffer2(engine, options) { - _classCallCheck(this, WebGPUFramebuffer2); - this.engine = engine; - this.options = options; - this.colorTexture = void 0; - this.depthTexture = void 0; - this.width = 0; - this.height = 0; - var _options = options, width2 = _options.width, height = _options.height, color4 = _options.color, colors = _options.colors, depth = _options.depth, stencil = _options.stencil; - if (color4) { - this.colorTexture = color4; - } - if (depth) { - this.depthTexture = depth; - } - } - _createClass(WebGPUFramebuffer2, [{ - key: "get", - value: function get3() { - var _this$colorTexture, _this$depthTexture; - return { - color: (_this$colorTexture = this.colorTexture) === null || _this$colorTexture === void 0 ? void 0 : _this$colorTexture.get(), - depth: (_this$depthTexture = this.depthTexture) === null || _this$depthTexture === void 0 ? void 0 : _this$depthTexture.get() - }; - } - }, { - key: "destroy", - value: function destroy() { - var _this$colorTexture2, _this$depthTexture2; - (_this$colorTexture2 = this.colorTexture) === null || _this$colorTexture2 === void 0 ? void 0 : _this$colorTexture2.destroy(); - (_this$depthTexture2 = this.depthTexture) === null || _this$depthTexture2 === void 0 ? void 0 : _this$depthTexture2.destroy(); - } - }, { - key: "resize", - value: function resize(_ref2) { - var width2 = _ref2.width, height = _ref2.height; - if (width2 !== this.width || height !== this.height) { - var _this$colorTexture3, _this$depthTexture3; - (_this$colorTexture3 = this.colorTexture) === null || _this$colorTexture3 === void 0 ? void 0 : _this$colorTexture3.resize({ - width: width2, - height - }); - (_this$depthTexture3 = this.depthTexture) === null || _this$depthTexture3 === void 0 ? void 0 : _this$depthTexture3.resize({ - width: width2, - height - }); - } - this.width = width2; - this.height = height; - } - }]); - return WebGPUFramebuffer2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUModel.js -var import_regenerator16 = __toModule(require_regenerator()); -var WebGPUConstants6 = __toModule(require_constants()); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/constants.js -var WebGPUConstants5 = __toModule(require_constants()); -var _primitiveMap2; -var _depthFuncMap2; -var _blendEquationMap2; -var _blendFuncMap2; -var _formatMap2; -var _filterMap2; -var _wrapModeMap2; -var primitiveMap2 = (_primitiveMap2 = {}, _defineProperty(_primitiveMap2, gl.POINTS, WebGPUConstants5.PrimitiveTopology.PointList), _defineProperty(_primitiveMap2, gl.LINES, WebGPUConstants5.PrimitiveTopology.LineList), _defineProperty(_primitiveMap2, gl.LINE_LOOP, WebGPUConstants5.PrimitiveTopology.LineList), _defineProperty(_primitiveMap2, gl.LINE_STRIP, WebGPUConstants5.PrimitiveTopology.LineStrip), _defineProperty(_primitiveMap2, gl.TRIANGLES, WebGPUConstants5.PrimitiveTopology.TriangleList), _defineProperty(_primitiveMap2, gl.TRIANGLE_FAN, WebGPUConstants5.PrimitiveTopology.TriangleList), _defineProperty(_primitiveMap2, gl.TRIANGLE_STRIP, WebGPUConstants5.PrimitiveTopology.TriangleStrip), _primitiveMap2); -var depthFuncMap2 = (_depthFuncMap2 = {}, _defineProperty(_depthFuncMap2, gl.NEVER, WebGPUConstants5.CompareFunction.Never), _defineProperty(_depthFuncMap2, gl.ALWAYS, WebGPUConstants5.CompareFunction.Always), _defineProperty(_depthFuncMap2, gl.LESS, WebGPUConstants5.CompareFunction.Less), _defineProperty(_depthFuncMap2, gl.LEQUAL, WebGPUConstants5.CompareFunction.LessEqual), _defineProperty(_depthFuncMap2, gl.GREATER, WebGPUConstants5.CompareFunction.Greater), _defineProperty(_depthFuncMap2, gl.GEQUAL, WebGPUConstants5.CompareFunction.GreaterEqual), _defineProperty(_depthFuncMap2, gl.EQUAL, WebGPUConstants5.CompareFunction.Equal), _defineProperty(_depthFuncMap2, gl.NOTEQUAL, WebGPUConstants5.CompareFunction.NotEqual), _depthFuncMap2); -var blendEquationMap2 = (_blendEquationMap2 = {}, _defineProperty(_blendEquationMap2, gl.FUNC_ADD, WebGPUConstants5.BlendOperation.Add), _defineProperty(_blendEquationMap2, gl.MIN_EXT, WebGPUConstants5.BlendOperation.Min), _defineProperty(_blendEquationMap2, gl.MAX_EXT, WebGPUConstants5.BlendOperation.Max), _defineProperty(_blendEquationMap2, gl.FUNC_SUBTRACT, WebGPUConstants5.BlendOperation.Subtract), _defineProperty(_blendEquationMap2, gl.FUNC_REVERSE_SUBTRACT, WebGPUConstants5.BlendOperation.ReverseSubtract), _blendEquationMap2); -var blendFuncMap2 = (_blendFuncMap2 = {}, _defineProperty(_blendFuncMap2, gl.ZERO, WebGPUConstants5.BlendFactor.Zero), _defineProperty(_blendFuncMap2, gl.ONE, WebGPUConstants5.BlendFactor.One), _defineProperty(_blendFuncMap2, gl.SRC_COLOR, WebGPUConstants5.BlendFactor.SrcColor), _defineProperty(_blendFuncMap2, gl.ONE_MINUS_SRC_COLOR, WebGPUConstants5.BlendFactor.OneMinusSrcColor), _defineProperty(_blendFuncMap2, gl.SRC_ALPHA, WebGPUConstants5.BlendFactor.SrcAlpha), _defineProperty(_blendFuncMap2, gl.ONE_MINUS_SRC_ALPHA, WebGPUConstants5.BlendFactor.OneMinusSrcAlpha), _defineProperty(_blendFuncMap2, gl.DST_COLOR, WebGPUConstants5.BlendFactor.DstColor), _defineProperty(_blendFuncMap2, gl.ONE_MINUS_DST_COLOR, WebGPUConstants5.BlendFactor.OneMinusDstColor), _defineProperty(_blendFuncMap2, gl.DST_ALPHA, WebGPUConstants5.BlendFactor.DstAlpha), _defineProperty(_blendFuncMap2, gl.ONE_MINUS_DST_ALPHA, WebGPUConstants5.BlendFactor.OneMinusDstAlpha), _defineProperty(_blendFuncMap2, gl.CONSTANT_COLOR, WebGPUConstants5.BlendFactor.BlendColor), _defineProperty(_blendFuncMap2, gl.ONE_MINUS_CONSTANT_COLOR, WebGPUConstants5.BlendFactor.OneMinusBlendColor), _defineProperty(_blendFuncMap2, gl.SRC_ALPHA_SATURATE, WebGPUConstants5.BlendFactor.SrcAlphaSaturated), _blendFuncMap2); -var formatMap2 = (_formatMap2 = {}, _defineProperty(_formatMap2, gl.ALPHA, "r8unorm"), _defineProperty(_formatMap2, gl.RGBA, "rgba8unorm"), _defineProperty(_formatMap2, gl.DEPTH_COMPONENT, "depth32float"), _defineProperty(_formatMap2, gl.DEPTH_STENCIL, "depth24plus-stencil8"), _formatMap2); -var filterMap2 = (_filterMap2 = {}, _defineProperty(_filterMap2, gl.NEAREST, "nearest"), _defineProperty(_filterMap2, gl.LINEAR, "linear"), _filterMap2); -var wrapModeMap2 = (_wrapModeMap2 = {}, _defineProperty(_wrapModeMap2, gl.REPEAT, "repeat"), _defineProperty(_wrapModeMap2, gl.CLAMP_TO_EDGE, "clamp-to-edge"), _defineProperty(_wrapModeMap2, gl.MIRRORED_REPEAT, "mirror-repeat"), _wrapModeMap2); -function getCullMode(_ref2) { - var cull = _ref2.cull; - if (!cull || !cull.enable) { - return WebGPUConstants5.CullMode.None; - } - if (cull.face) { - return cull.face === gl.FRONT ? WebGPUConstants5.CullMode.Front : WebGPUConstants5.CullMode.Back; - } -} -function getDepthStencilStateDescriptor(_ref2) { - var depth = _ref2.depth, stencil = _ref2.stencil; - var stencilFrontBack = { - compare: WebGPUConstants5.CompareFunction.Always, - depthFailOp: WebGPUConstants5.StencilOperation.Keep, - failOp: WebGPUConstants5.StencilOperation.Keep, - passOp: WebGPUConstants5.StencilOperation.Keep - }; - return { - depthWriteEnabled: depth && depth.enable, - depthCompare: depthFuncMap2[(depth === null || depth === void 0 ? void 0 : depth.func) || gl.ALWAYS], - format: WebGPUConstants5.TextureFormat.Depth24PlusStencil8, - stencilFront: stencilFrontBack, - stencilBack: stencilFrontBack, - stencilReadMask: 4294967295, - stencilWriteMask: 4294967295 - }; -} -function getColorStateDescriptors(_ref3, swapChainFormat) { - var blend2 = _ref3.blend; - return [{ - format: swapChainFormat, - alphaBlend: { - srcFactor: blendFuncMap2[blend2 && blend2.func && blend2.func.srcAlpha || gl.ONE], - dstFactor: blendFuncMap2[blend2 && blend2.func && blend2.func.dstAlpha || gl.ZERO], - operation: blendEquationMap2[blend2 && blend2.equation && blend2.equation.alpha || gl.FUNC_ADD] - }, - colorBlend: { - srcFactor: blendFuncMap2[blend2 && blend2.func && blend2.func.srcRGB || gl.ONE], - dstFactor: blendFuncMap2[blend2 && blend2.func && blend2.func.dstRGB || gl.ZERO], - operation: blendEquationMap2[blend2 && blend2.equation && blend2.equation.rgb || gl.FUNC_ADD] - }, - writeMask: WebGPUConstants5.ColorWrite.All - }]; -} - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUModel.js -function ownKeys8(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread8(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys8(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys8(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -function concatenate(resultConstructor) { - var totalLength = 0; - for (var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - arrays[_key - 1] = arguments[_key]; - } - for (var _i = 0, _arrays = arrays; _i < _arrays.length; _i++) { - var arr = _arrays[_i]; - totalLength += arr.length; - } - var result = new resultConstructor(totalLength); - var offset = 0; - for (var _i2 = 0, _arrays2 = arrays; _i2 < _arrays2.length; _i2++) { - var _arr = _arrays2[_i2]; - result.set(_arr, offset); - offset += _arr.length; - } - return result; -} -var WebGPUModel = /* @__PURE__ */ function() { - function WebGPUModel2(engine, options) { - _classCallCheck(this, WebGPUModel2); - this.engine = engine; - this.options = options; - this.pipelineLayout = void 0; - this.renderPipeline = void 0; - this.uniformsBindGroupLayout = void 0; - this.uniformBindGroup = void 0; - this.uniformBuffer = void 0; - this.uniforms = {}; - this.uniformGPUBufferLayout = []; - this.attributeCache = {}; - this.indexBuffer = void 0; - this.indexCount = void 0; - } - _createClass(WebGPUModel2, [{ - key: "init", - value: function() { - var _init = _asyncToGenerator(/* @__PURE__ */ import_regenerator16.default.mark(function _callee() { - var _this = this; - var _this$options, vs, fs, attributes, uniforms, primitive, count2, elements, depth, blend2, stencil, cull, instances, _yield$this$compilePi, vertexStage, fragmentStage, vertexState, descriptor; - return import_regenerator16.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _this$options = this.options, vs = _this$options.vs, fs = _this$options.fs, attributes = _this$options.attributes, uniforms = _this$options.uniforms, primitive = _this$options.primitive, count2 = _this$options.count, elements = _this$options.elements, depth = _this$options.depth, blend2 = _this$options.blend, stencil = _this$options.stencil, cull = _this$options.cull, instances = _this$options.instances; - _context.next = 3; - return this.compilePipelineStageDescriptor(vs, fs, null); - case 3: - _yield$this$compilePi = _context.sent; - vertexStage = _yield$this$compilePi.vertexStage; - fragmentStage = _yield$this$compilePi.fragmentStage; - if (uniforms) { - this.buildUniformBindGroup(uniforms); - } - if (elements) { - this.indexBuffer = elements.get(); - this.indexCount = elements.indexCount; - } - vertexState = { - vertexBuffers: Object.keys(attributes).map(function(attributeName, i4) { - var attribute = attributes[attributeName]; - var _attribute$get = attribute.get(), arrayStride = _attribute$get.arrayStride, stepMode = _attribute$get.stepMode, ats = _attribute$get.attributes; - _this.attributeCache[attributeName] = attribute; - return { - arrayStride, - stepMode, - attributes: ats - }; - }) - }; - descriptor = { - sampleCount: this.engine.mainPassSampleCount, - primitiveTopology: primitiveMap2[primitive || gl.TRIANGLES], - rasterizationState: _objectSpread8(_objectSpread8({}, this.getDefaultRasterizationStateDescriptor()), {}, { - cullMode: getCullMode({ - cull - }) - }), - depthStencilState: getDepthStencilStateDescriptor({ - depth, - stencil - }), - colorStates: getColorStateDescriptors({ - blend: blend2 - }, this.engine.options.swapChainFormat), - layout: this.pipelineLayout, - vertexStage, - fragmentStage, - vertexState - }; - this.renderPipeline = this.engine.device.createRenderPipeline(descriptor); - case 11: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function init() { - return _init.apply(this, arguments); - } - return init; - }() - }, { - key: "addUniforms", - value: function addUniforms(uniforms) { - this.uniforms = _objectSpread8(_objectSpread8({}, this.uniforms), extractUniforms2(uniforms)); - } - }, { - key: "draw", - value: function draw4(options) { - var _this2 = this; - var renderPass = this.engine.getCurrentRenderPass(); - var uniforms = _objectSpread8(_objectSpread8({}, this.uniforms), extractUniforms2(options.uniforms || {})); - var bindGroupBindings = []; - Object.keys(uniforms).forEach(function(uniformName) { - var type2 = _typeof3(uniforms[uniformName]); - if (type2 === "boolean" || type2 === "number" || Array.isArray(uniforms[uniformName]) || uniforms[uniformName].BYTES_PER_ELEMENT) { - var _this2$uniformGPUBuff; - var offset = (_this2$uniformGPUBuff = _this2.uniformGPUBufferLayout.find(function(_ref2) { - var name = _ref2.name; - return name === uniformName; - })) === null || _this2$uniformGPUBuff === void 0 ? void 0 : _this2$uniformGPUBuff.offset; - if (offset !== null) { - _this2.uniformBuffer.subData({ - data: uniforms[uniformName], - offset - }); - } - } else { - var _this2$uniformGPUBuff2; - var _offset = (_this2$uniformGPUBuff2 = _this2.uniformGPUBufferLayout.find(function(_ref2) { - var name = _ref2.name; - return name === uniformName; - })) === null || _this2$uniformGPUBuff2 === void 0 ? void 0 : _this2$uniformGPUBuff2.offset; - if (_offset !== null) { - var textureOrFramebuffer = uniforms[uniformName].get(); - var _ref3 = textureOrFramebuffer.color || textureOrFramebuffer, texture = _ref3.texture, sampler = _ref3.sampler; - if (sampler) { - bindGroupBindings.push({ - binding: _offset, - resource: sampler - }); - _offset++; - } - bindGroupBindings.push({ - binding: _offset, - resource: texture.createView() - }); - } - } - }); - if (this.uniformBuffer) { - bindGroupBindings[0] = { - binding: 0, - resource: { - buffer: this.uniformBuffer.get() - } - }; - } - this.uniformBindGroup = this.engine.device.createBindGroup({ - layout: this.uniformsBindGroupLayout, - entries: bindGroupBindings - }); - if (this.renderPipeline) { - renderPass.setPipeline(this.renderPipeline); - } - renderPass.setBindGroup(0, this.uniformBindGroup); - if (this.indexBuffer) { - renderPass.setIndexBuffer(this.indexBuffer.get(), WebGPUConstants6.IndexFormat.Uint32, 0); - } - Object.keys(this.attributeCache).forEach(function(attributeName, i4) { - renderPass.setVertexBuffer(0 + i4, _this2.attributeCache[attributeName].get().buffer, 0); - }); - if (this.indexBuffer) { - renderPass.drawIndexed(this.indexCount, this.options.instances || 1, 0, 0, 0); - } else { - renderPass.draw(this.options.count || 0, this.options.instances || 0, 0, 0); - } - } - }, { - key: "destroy", - value: function destroy() { - throw new Error("Method not implemented."); - } - }, { - key: "compilePipelineStageDescriptor", - value: function() { - var _compilePipelineStageDescriptor = _asyncToGenerator(/* @__PURE__ */ import_regenerator16.default.mark(function _callee2(vertexCode, fragmentCode, defines) { - var shaderVersion, vertexShader, fragmentShader; - return import_regenerator16.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - shaderVersion = "#version 450\n"; - vertexShader = vertexCode; - fragmentShader = fragmentCode; - if (this.engine.options.useWGSL) { - _context2.next = 10; - break; - } - _context2.next = 6; - return this.compileShaderToSpirV(vertexCode, "vertex", shaderVersion); - case 6: - vertexShader = _context2.sent; - _context2.next = 9; - return this.compileShaderToSpirV(fragmentCode, "fragment", shaderVersion); - case 9: - fragmentShader = _context2.sent; - case 10: - return _context2.abrupt("return", this.createPipelineStageDescriptor(vertexShader, fragmentShader)); - case 11: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - function compilePipelineStageDescriptor(_x, _x2, _x3) { - return _compilePipelineStageDescriptor.apply(this, arguments); - } - return compilePipelineStageDescriptor; - }() - }, { - key: "compileShaderToSpirV", - value: function compileShaderToSpirV(source, type2, shaderVersion) { - return this.compileRawShaderToSpirV(shaderVersion + source, type2); - } - }, { - key: "compileRawShaderToSpirV", - value: function compileRawShaderToSpirV(source, type2) { - return this.engine.glslang.compileGLSL(source, type2); - } - }, { - key: "createPipelineStageDescriptor", - value: function createPipelineStageDescriptor(vertexShader, fragmentShader) { - return { - vertexStage: { - module: this.engine.device.createShaderModule({ - code: vertexShader, - isWHLSL: isSafari - }), - entryPoint: "main" - }, - fragmentStage: { - module: this.engine.device.createShaderModule({ - code: fragmentShader, - isWHLSL: isSafari - }), - entryPoint: "main" - } - }; - } - }, { - key: "getDefaultRasterizationStateDescriptor", - value: function getDefaultRasterizationStateDescriptor() { - return { - frontFace: WebGPUConstants6.FrontFace.CCW, - cullMode: WebGPUConstants6.CullMode.None, - depthBias: 0, - depthBiasSlopeScale: 0, - depthBiasClamp: 0 - }; - } - }, { - key: "buildUniformBindGroup", - value: function buildUniformBindGroup(uniforms) { - var _this3 = this; - var offset = 0; - var mergedUniformData = concatenate.apply(void 0, [Float32Array].concat(_toConsumableArray(Object.keys(uniforms).map(function(uniformName) { - if (uniforms[uniformName]) { - _this3.uniformGPUBufferLayout.push({ - name: uniformName, - offset - }); - offset += (uniforms[uniformName].length || 1) * 4; - return uniforms[uniformName]; - } else { - return []; - } - })))); - var entries = []; - var hasUniform = false; - if (mergedUniformData.length) { - hasUniform = true; - entries.push({ - binding: 0, - visibility: WebGPUConstants6.ShaderStage.Fragment | WebGPUConstants6.ShaderStage.Vertex, - type: WebGPUConstants6.BindingType.UniformBuffer - }); - } - Object.keys(uniforms).filter(function(uniformName) { - return uniforms[uniformName] === null; - }).forEach(function(uniformName, i4) { - _this3.uniformGPUBufferLayout.push({ - name: uniformName, - offset: i4 * 2 + (hasUniform ? 1 : 0) - }); - entries.push({ - binding: i4 * 2 + (hasUniform ? 1 : 0), - visibility: WebGPUConstants6.ShaderStage.Fragment, - type: WebGPUConstants6.BindingType.Sampler - }, { - binding: i4 * 2 + (hasUniform ? 1 : 0) + 1, - visibility: WebGPUConstants6.ShaderStage.Fragment, - type: WebGPUConstants6.BindingType.SampledTexture - }); - }); - this.uniformsBindGroupLayout = this.engine.device.createBindGroupLayout({ - entries - }); - this.pipelineLayout = this.engine.device.createPipelineLayout({ - bindGroupLayouts: [this.uniformsBindGroupLayout] - }); - if (hasUniform) { - this.uniformBuffer = new WebGPUBuffer(this.engine, { - data: mergedUniformData instanceof Array ? new Float32Array(mergedUniformData) : mergedUniformData, - usage: WebGPUConstants6.BufferUsage.Uniform | WebGPUConstants6.BufferUsage.CopyDst - }); - } - } - }]); - return WebGPUModel2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/WebGPUTexture2D.js -var WebGPUConstants7 = __toModule(require_constants()); -var WebGPUTexture2D = /* @__PURE__ */ function() { - function WebGPUTexture2D2(engine, options) { - _classCallCheck(this, WebGPUTexture2D2); - this.engine = engine; - this.options = options; - this.texture = void 0; - this.sampler = void 0; - this.width = void 0; - this.height = void 0; - this.createTexture(); - } - _createClass(WebGPUTexture2D2, [{ - key: "get", - value: function get3() { - return { - texture: this.texture, - sampler: this.sampler - }; - } - }, { - key: "update", - value: function update15() { - } - }, { - key: "resize", - value: function resize(_ref2) { - var width2 = _ref2.width, height = _ref2.height; - if (width2 !== this.width || height !== this.height) { - this.destroy(); - this.createTexture(); - } - this.width = width2; - this.height = height; - } - }, { - key: "destroy", - value: function destroy() { - if (this.texture) { - this.texture.destroy(); - } - } - }, { - key: "createTexture", - value: function createTexture() { - var _this$options = this.options, data3 = _this$options.data, _this$options$type = _this$options.type, type2 = _this$options$type === void 0 ? gl.UNSIGNED_BYTE : _this$options$type, width2 = _this$options.width, height = _this$options.height, _this$options$flipY = _this$options.flipY, flipY = _this$options$flipY === void 0 ? false : _this$options$flipY, _this$options$format = _this$options.format, format2 = _this$options$format === void 0 ? gl.RGBA : _this$options$format, _this$options$mipmap = _this$options.mipmap, mipmap = _this$options$mipmap === void 0 ? false : _this$options$mipmap, _this$options$wrapS = _this$options.wrapS, wrapS = _this$options$wrapS === void 0 ? gl.CLAMP_TO_EDGE : _this$options$wrapS, _this$options$wrapT = _this$options.wrapT, wrapT = _this$options$wrapT === void 0 ? gl.CLAMP_TO_EDGE : _this$options$wrapT, _this$options$aniso = _this$options.aniso, aniso = _this$options$aniso === void 0 ? 0 : _this$options$aniso, _this$options$alignme = _this$options.alignment, alignment = _this$options$alignme === void 0 ? 1 : _this$options$alignme, _this$options$premult = _this$options.premultiplyAlpha, premultiplyAlpha = _this$options$premult === void 0 ? false : _this$options$premult, _this$options$mag = _this$options.mag, mag = _this$options$mag === void 0 ? gl.NEAREST : _this$options$mag, _this$options$min = _this$options.min, min7 = _this$options$min === void 0 ? gl.NEAREST : _this$options$min, _this$options$colorSp = _this$options.colorSpace, colorSpace = _this$options$colorSp === void 0 ? gl.BROWSER_DEFAULT_WEBGL : _this$options$colorSp, usage = _this$options.usage; - this.width = width2; - this.height = height; - this.texture = this.engine.device.createTexture({ - size: [width2, height, 1], - mipLevelCount: 1, - sampleCount: 1, - dimension: WebGPUConstants7.TextureDimension.E2d, - format: formatMap2[format2], - usage: usage || WebGPUConstants7.TextureUsage.Sampled | WebGPUConstants7.TextureUsage.CopyDst - }); - if (!usage || usage & WebGPUConstants7.TextureUsage.Sampled) { - this.sampler = this.engine.device.createSampler({ - addressModeU: wrapModeMap2[wrapS], - addressModeV: wrapModeMap2[wrapT], - addressModeW: wrapModeMap2[wrapS], - magFilter: filterMap2[mag], - minFilter: filterMap2[min7], - maxAnisotropy: aniso - }); - } - } - }]); - return WebGPUTexture2D2; -}(); - -// node_modules/@antv/g-webgpu-engine/es/webgpu/index.js -var _dec49; -var _class21; -var _temp19; -var WebGPUEngine = (_dec49 = (0, import_inversify22.injectable)(), _dec49(_class21 = (_temp19 = /* @__PURE__ */ function() { - function WebGPUEngine2() { - var _this = this; - _classCallCheck(this, WebGPUEngine2); - this.supportWebGPU = true; - this.useWGSL = false; - this.options = void 0; - this.canvas = void 0; - this.context = void 0; - this.glslang = void 0; - this.adapter = void 0; - this.device = void 0; - this.swapChain = void 0; - this.mainPassSampleCount = void 0; - this.mainTexture = void 0; - this.depthTexture = void 0; - this.mainColorAttachments = void 0; - this.mainTextureExtends = void 0; - this.mainDepthAttachment = void 0; - this.uploadEncoder = void 0; - this.renderEncoder = void 0; - this.computeEncoder = void 0; - this.renderTargetEncoder = void 0; - this.commandBuffers = new Array(4).fill(void 0); - this.currentRenderPass = null; - this.mainRenderPass = null; - this.currentRenderTargetViewDescriptor = void 0; - this.currentComputePass = null; - this.bundleEncoder = void 0; - this.tempBuffers = []; - this.currentRenderTarget = null; - this.uploadEncoderDescriptor = { - label: "upload" - }; - this.renderEncoderDescriptor = { - label: "render" - }; - this.renderTargetEncoderDescriptor = { - label: "renderTarget" - }; - this.computeEncoderDescriptor = { - label: "compute" - }; - this.pipelines = {}; - this.computePipelines = {}; - this.defaultSampleCount = 4; - this.clearDepthValue = 1; - this.clearStencilValue = 0; - this.transientViewport = { - x: Infinity, - y: 0, - width: 0, - height: 0 - }; - this.cachedViewport = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - this.clear = function(options) { - var framebuffer = options.framebuffer, color4 = options.color, depth = options.depth, stencil = options.stencil; - if (_this.options.supportCompute) { - _this.startComputePass(); - } - if (_this.currentRenderTarget) { - if (_this.currentRenderPass) { - _this.endRenderTargetRenderPass(); - } - _this.startRenderTargetRenderPass(_this.currentRenderTarget, color4 ? color4 : null, !!depth, !!stencil); - } else { - _this.mainColorAttachments[0].loadValue = color4 ? color4 : WebGPUConstants8.LoadOp.Load; - _this.mainDepthAttachment.depthLoadValue = depth ? depth : WebGPUConstants8.LoadOp.Load; - _this.mainDepthAttachment.stencilLoadValue = stencil ? _this.clearStencilValue : WebGPUConstants8.LoadOp.Load; - if (_this.mainRenderPass) { - _this.endMainRenderPass(); - } - _this.startMainRenderPass(); - } - }; - this.createModel = /* @__PURE__ */ function() { - var _ref2 = _asyncToGenerator(/* @__PURE__ */ import_regenerator17.default.mark(function _callee(options) { - var model; - return import_regenerator17.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - model = new WebGPUModel(_this, options); - _context.next = 3; - return model.init(); - case 3: - return _context.abrupt("return", model); - case 4: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return function(_x) { - return _ref2.apply(this, arguments); - }; - }(); - this.createAttribute = function(options) { - return new WebGPUAttribute(_this, options); - }; - this.createBuffer = function(options) { - return new WebGPUBuffer(_this, options); - }; - this.createElements = function(options) { - return new WebGPUElements(_this, options); - }; - this.createTexture2D = function(options) { - return new WebGPUTexture2D(_this, options); - }; - this.createFramebuffer = function(options) { - return new WebGPUFramebuffer(_this, options); - }; - this.useFramebuffer = function(framebuffer, drawCommands) { - if (_this.currentRenderTarget) { - _this.unbindFramebuffer(_this.currentRenderTarget); - } - _this.currentRenderTarget = framebuffer; - _this.currentRenderTargetViewDescriptor = { - dimension: WebGPUConstants8.TextureViewDimension.E2d, - arrayLayerCount: 1, - aspect: WebGPUConstants8.TextureAspect.All - }; - _this.currentRenderPass = null; - drawCommands(); - }; - this.createComputeModel = /* @__PURE__ */ function() { - var _ref2 = _asyncToGenerator(/* @__PURE__ */ import_regenerator17.default.mark(function _callee2(context) { - var model; - return import_regenerator17.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - model = new WebGPUComputeModel(_this, context); - _context2.next = 3; - return model.init(); - case 3: - return _context2.abrupt("return", model); - case 4: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - return function(_x2) { - return _ref2.apply(this, arguments); - }; - }(); - this.getCanvas = function() { - return _this.canvas; - }; - this.getGLContext = function() { - throw new Error("Method not implemented."); - }; - this.viewport = function(_ref3) { - var x6 = _ref3.x, y5 = _ref3.y, width2 = _ref3.width, height = _ref3.height; - if (!_this.currentRenderPass) { - _this.transientViewport = { - x: x6, - y: y5, - width: width2, - height - }; - } else if (_this.transientViewport.x !== Infinity) { - var renderPass = _this.getCurrentRenderPass(); - renderPass.setViewport(_this.transientViewport.x, _this.transientViewport.y, _this.transientViewport.width, _this.transientViewport.height, 0, 1); - } else if (x6 !== _this.cachedViewport.x || y5 !== _this.cachedViewport.y || width2 !== _this.cachedViewport.width || height !== _this.cachedViewport.height) { - _this.cachedViewport = { - x: x6, - y: y5, - width: width2, - height - }; - var _renderPass = _this.getCurrentRenderPass(); - _renderPass.setViewport(x6, y5, width2, height, 0, 1); - } - }; - this.readPixels = function(options) { - throw new Error("Method not implemented."); - }; - } - _createClass(WebGPUEngine2, [{ - key: "isFloatSupported", - value: function isFloatSupported() { - return true; - } - }, { - key: "init", - value: function() { - var _init = _asyncToGenerator(/* @__PURE__ */ import_regenerator17.default.mark(function _callee3(config) { - return import_regenerator17.default.wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - this.canvas = config.canvas; - this.options = config; - this.useWGSL = !!config.useWGSL; - this.mainPassSampleCount = config.antialiasing ? this.defaultSampleCount : 1; - _context3.next = 6; - return this.initGlslang(); - case 6: - this.initContextAndSwapChain(); - this.initMainAttachments(); - case 8: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - function init(_x3) { - return _init.apply(this, arguments); - } - return init; - }() - }, { - key: "setScissor", - value: function setScissor(scissor) { - throw new Error("Method not implemented."); - } - }, { - key: "destroy", - value: function destroy() { - if (this.mainTexture) { - this.mainTexture.destroy(); - } - if (this.depthTexture) { - this.depthTexture.destroy(); - } - this.tempBuffers.forEach(function(buffer) { - return buffer.destroy(); - }); - this.tempBuffers = []; - } - }, { - key: "beginFrame", - value: function beginFrame() { - this.uploadEncoder = this.device.createCommandEncoder(this.uploadEncoderDescriptor); - this.renderEncoder = this.device.createCommandEncoder(this.renderEncoderDescriptor); - this.renderTargetEncoder = this.device.createCommandEncoder(this.renderTargetEncoderDescriptor); - if (this.options.supportCompute) { - this.computeEncoder = this.device.createCommandEncoder(this.computeEncoderDescriptor); - } - } - }, { - key: "endFrame", - value: function endFrame() { - if (this.options.supportCompute) { - this.endComputePass(); - } - this.endMainRenderPass(); - this.commandBuffers[0] = this.uploadEncoder.finish(); - this.commandBuffers[1] = this.renderEncoder.finish(); - if (this.options.supportCompute) { - this.commandBuffers[2] = this.computeEncoder.finish(); - } - this.commandBuffers[3] = this.renderTargetEncoder.finish(); - if (isSafari) { - this.device.getQueue().submit(this.commandBuffers.filter(function(buffer) { - return buffer; - })); - } else { - this.device.defaultQueue.submit(this.commandBuffers.filter(function(buffer) { - return buffer; - })); - } - } - }, { - key: "getCurrentRenderPass", - value: function getCurrentRenderPass() { - if (this.currentRenderTarget && !this.currentRenderPass) { - this.startRenderTargetRenderPass(this.currentRenderTarget, null, false, false); - } else if (!this.currentRenderPass) { - this.startMainRenderPass(); - } - return this.currentRenderPass; - } - }, { - key: "initGlslang", - value: function() { - var _initGlslang = _asyncToGenerator(/* @__PURE__ */ import_regenerator17.default.mark(function _callee4() { - var _navigator, _navigator$gpu; - return import_regenerator17.default.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return glslang_default(); - case 2: - this.glslang = _context4.sent; - _context4.next = 5; - return (_navigator = navigator) === null || _navigator === void 0 ? void 0 : (_navigator$gpu = _navigator.gpu) === null || _navigator$gpu === void 0 ? void 0 : _navigator$gpu.requestAdapter(); - case 5: - this.adapter = _context4.sent; - _context4.next = 8; - return this.adapter.requestDevice(); - case 8: - this.device = _context4.sent; - case 9: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - function initGlslang() { - return _initGlslang.apply(this, arguments); - } - return initGlslang; - }() - }, { - key: "initContextAndSwapChain", - value: function initContextAndSwapChain() { - this.context = this.canvas.getContext(isSafari ? "gpu" : "gpupresent"); - this.swapChain = this.context.configureSwapChain({ - device: this.device, - format: this.options.swapChainFormat, - usage: WebGPUConstants8.TextureUsage.OutputAttachment | WebGPUConstants8.TextureUsage.CopySrc - }); - } - }, { - key: "initMainAttachments", - value: function initMainAttachments() { - this.mainTextureExtends = { - width: this.canvas.width, - height: this.canvas.height, - depth: 1 - }; - if (this.options.antialiasing) { - var mainTextureDescriptor = { - size: this.mainTextureExtends, - mipLevelCount: 1, - sampleCount: this.mainPassSampleCount, - dimension: WebGPUConstants8.TextureDimension.E2d, - format: WebGPUConstants8.TextureFormat.BGRA8Unorm, - usage: WebGPUConstants8.TextureUsage.OutputAttachment - }; - if (this.mainTexture) { - this.mainTexture.destroy(); - } - this.mainTexture = this.device.createTexture(mainTextureDescriptor); - this.mainColorAttachments = [{ - attachment: isSafari ? this.mainTexture.createDefaultView() : this.mainTexture.createView(), - loadValue: [0, 0, 0, 1], - storeOp: WebGPUConstants8.StoreOp.Store - }]; - } else { - this.mainColorAttachments = [{ - attachment: isSafari ? this.swapChain.getCurrentTexture().createDefaultView() : this.swapChain.getCurrentTexture().createView(), - loadValue: [0, 0, 0, 1], - storeOp: WebGPUConstants8.StoreOp.Store - }]; - } - var depthTextureDescriptor = { - size: this.mainTextureExtends, - mipLevelCount: 1, - sampleCount: this.mainPassSampleCount, - dimension: WebGPUConstants8.TextureDimension.E2d, - format: isSafari ? "depth32float-stencil8" : WebGPUConstants8.TextureFormat.Depth24PlusStencil8, - usage: WebGPUConstants8.TextureUsage.OutputAttachment - }; - if (this.depthTexture) { - this.depthTexture.destroy(); - } - this.depthTexture = this.device.createTexture(depthTextureDescriptor); - this.mainDepthAttachment = { - attachment: isSafari ? this.depthTexture.createDefaultView() : this.depthTexture.createView(), - depthLoadValue: this.clearDepthValue, - depthStoreOp: WebGPUConstants8.StoreOp.Store, - stencilLoadValue: this.clearStencilValue, - stencilStoreOp: WebGPUConstants8.StoreOp.Store - }; - } - }, { - key: "startComputePass", - value: function startComputePass() { - if (this.currentComputePass) { - this.endComputePass(); - } - this.currentComputePass = this.computeEncoder.beginComputePass(); - } - }, { - key: "startMainRenderPass", - value: function startMainRenderPass() { - if (this.currentRenderPass && !this.currentRenderTarget) { - this.endMainRenderPass(); - } - if (this.options.antialiasing) { - this.mainColorAttachments[0].resolveTarget = isSafari ? this.swapChain.getCurrentTexture().createDefaultView() : this.swapChain.getCurrentTexture().createView(); - } else { - this.mainColorAttachments[0].attachment = isSafari ? this.swapChain.getCurrentTexture().createDefaultView() : this.swapChain.getCurrentTexture().createView(); - } - this.currentRenderPass = this.renderEncoder.beginRenderPass({ - colorAttachments: this.mainColorAttachments, - depthStencilAttachment: this.mainDepthAttachment - }); - this.mainRenderPass = this.currentRenderPass; - if (this.cachedViewport) { - this.viewport(this.cachedViewport); - } - } - }, { - key: "startRenderTargetRenderPass", - value: function startRenderTargetRenderPass(renderTarget, clearColor, clearDepth) { - var _renderTarget$get$col, _renderTarget$get$dep; - var clearStencil = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false; - var gpuTexture = (_renderTarget$get$col = renderTarget.get().color) === null || _renderTarget$get$col === void 0 ? void 0 : _renderTarget$get$col.texture; - var colorTextureView; - if (gpuTexture) { - colorTextureView = gpuTexture.createView(this.currentRenderTargetViewDescriptor); - } - var depthStencilTexture = (_renderTarget$get$dep = renderTarget.get().depth) === null || _renderTarget$get$dep === void 0 ? void 0 : _renderTarget$get$dep.texture; - var depthStencilTextureView; - if (depthStencilTexture) { - depthStencilTextureView = depthStencilTexture.createView(); - } - var renderPass = this.renderTargetEncoder.beginRenderPass({ - colorAttachments: [{ - attachment: colorTextureView, - loadValue: clearColor !== null ? clearColor : WebGPUConstants8.LoadOp.Load, - storeOp: WebGPUConstants8.StoreOp.Store - }], - depthStencilAttachment: depthStencilTexture && depthStencilTextureView ? { - attachment: depthStencilTextureView, - depthLoadValue: clearDepth ? this.clearDepthValue : WebGPUConstants8.LoadOp.Load, - depthStoreOp: WebGPUConstants8.StoreOp.Store, - stencilLoadValue: clearStencil ? this.clearStencilValue : WebGPUConstants8.LoadOp.Load, - stencilStoreOp: WebGPUConstants8.StoreOp.Store - } : void 0 - }); - this.currentRenderPass = renderPass; - if (this.cachedViewport) { - this.viewport(this.cachedViewport); - } - } - }, { - key: "endMainRenderPass", - value: function endMainRenderPass() { - if (this.currentRenderPass === this.mainRenderPass && this.currentRenderPass !== null) { - this.currentRenderPass.endPass(); - this.resetCachedViewport(); - this.currentRenderPass = null; - this.mainRenderPass = null; - } - } - }, { - key: "endComputePass", - value: function endComputePass() { - if (this.currentComputePass) { - this.currentComputePass.endPass(); - this.currentComputePass = null; - } - } - }, { - key: "endRenderTargetRenderPass", - value: function endRenderTargetRenderPass() { - if (this.currentRenderPass) { - this.currentRenderPass.endPass(); - this.resetCachedViewport(); - } - } - }, { - key: "resetCachedViewport", - value: function resetCachedViewport() { - this.cachedViewport = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - } - }, { - key: "unbindFramebuffer", - value: function unbindFramebuffer(framebuffer) { - if (this.currentRenderPass && this.currentRenderPass !== this.mainRenderPass) { - this.endRenderTargetRenderPass(); - } - this.transientViewport.x = Infinity; - this.currentRenderTarget = null; - this.currentRenderPass = this.mainRenderPass; - } - }]); - return WebGPUEngine2; -}(), _temp19)) || _class21); - -// node_modules/@antv/g-webgpu/es/World.js -var WebGPUConstants10 = __toModule(require_constants()); -var import_inversify36 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu/es/geometry/Box.js -var import_inversify23 = __toModule(require_inversify()); -var _dec50; -var _class30; -function _createSuper9(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct9(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct9() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var primitiveUv1Padding = 4 / 64; -var primitiveUv1PaddingScale = 1 - primitiveUv1Padding * 2; -var Box2 = (_dec50 = (0, import_inversify23.injectable)(), _dec50(_class30 = /* @__PURE__ */ function(_Geometry) { - _inherits(Box3, _Geometry); - var _super = _createSuper9(Box3); - function Box3() { - _classCallCheck(this, Box3); - return _super.apply(this, arguments); - } - _createClass(Box3, [{ - key: "onEntityCreated", - value: function onEntityCreated() { - var _this$config = this.config, _this$config$widthSeg = _this$config.widthSegments, widthSegments = _this$config$widthSeg === void 0 ? 1 : _this$config$widthSeg, _this$config$heightSe = _this$config.heightSegments, heightSegments = _this$config$heightSe === void 0 ? 1 : _this$config$heightSe, _this$config$depthSeg = _this$config.depthSegments, depthSegments = _this$config$depthSeg === void 0 ? 1 : _this$config$depthSeg, _this$config$halfExte = _this$config.halfExtents, halfExtents = _this$config$halfExte === void 0 ? vec3_exports.fromValues(0.5, 0.5, 0.5) : _this$config$halfExte; - var ws = widthSegments; - var hs = heightSegments; - var ds = depthSegments; - var _halfExtents = _slicedToArray(halfExtents, 3), hex2 = _halfExtents[0], hey = _halfExtents[1], hez = _halfExtents[2]; - var corners = [vec3_exports.fromValues(-hex2, -hey, hez), vec3_exports.fromValues(hex2, -hey, hez), vec3_exports.fromValues(hex2, hey, hez), vec3_exports.fromValues(-hex2, hey, hez), vec3_exports.fromValues(hex2, -hey, -hez), vec3_exports.fromValues(-hex2, -hey, -hez), vec3_exports.fromValues(-hex2, hey, -hez), vec3_exports.fromValues(hex2, hey, -hez)]; - var faceAxes = [ - [0, 1, 3], - [4, 5, 7], - [3, 2, 6], - [1, 0, 4], - [1, 4, 2], - [5, 0, 6] - ]; - var faceNormals = [ - [0, 0, 1], - [0, 0, -1], - [0, 1, 0], - [0, -1, 0], - [1, 0, 0], - [-1, 0, 0] - ]; - var sides = { - FRONT: 0, - BACK: 1, - TOP: 2, - BOTTOM: 3, - RIGHT: 4, - LEFT: 5 - }; - var positions = []; - var normals = []; - var uvs = []; - var uvs1 = []; - var indices = []; - var vcounter = 0; - var generateFace = function generateFace2(side, uSegments, vSegments) { - var u3; - var v3; - var i4; - var j4; - for (i4 = 0; i4 <= uSegments; i4++) { - for (j4 = 0; j4 <= vSegments; j4++) { - var temp1 = vec3_exports.create(); - var temp2 = vec3_exports.create(); - var temp3 = vec3_exports.create(); - var r4 = vec3_exports.create(); - vec3_exports.lerp(temp1, corners[faceAxes[side][0]], corners[faceAxes[side][1]], i4 / uSegments); - vec3_exports.lerp(temp2, corners[faceAxes[side][0]], corners[faceAxes[side][2]], j4 / vSegments); - vec3_exports.sub(temp3, temp2, corners[faceAxes[side][0]]); - vec3_exports.add(r4, temp1, temp3); - u3 = i4 / uSegments; - v3 = j4 / vSegments; - positions.push(r4[0], r4[1], r4[2]); - normals.push(faceNormals[side][0], faceNormals[side][1], faceNormals[side][2]); - uvs.push(u3, v3); - u3 /= 3; - v3 /= 3; - u3 = u3 * primitiveUv1PaddingScale + primitiveUv1Padding; - v3 = v3 * primitiveUv1PaddingScale + primitiveUv1Padding; - u3 += side % 3 / 3; - v3 += Math.floor(side / 3) / 3; - uvs1.push(u3, v3); - if (i4 < uSegments && j4 < vSegments) { - indices.push(vcounter + vSegments + 1, vcounter + 1, vcounter); - indices.push(vcounter + vSegments + 1, vcounter + vSegments + 2, vcounter + 1); - } - vcounter++; - } - } - }; - generateFace(sides.FRONT, ws, hs); - generateFace(sides.BACK, ws, hs); - generateFace(sides.TOP, ws, ds); - generateFace(sides.BOTTOM, ws, ds); - generateFace(sides.RIGHT, ds, hs); - generateFace(sides.LEFT, ds, hs); - var aabb = generateAABBFromVertices(positions); - var component2 = this.getComponent(); - component2.indices = Uint32Array.from(indices); - component2.aabb = aabb; - component2.vertexCount = vcounter; - component2.attributes = [{ - dirty: true, - name: "position", - data: Float32Array.from(positions), - arrayStride: 4 * 3, - stepMode: "vertex", - attributes: [{ - shaderLocation: 0, - offset: 0, - format: "float3" - }] - }, { - dirty: true, - name: "normal", - data: Float32Array.from(normals), - arrayStride: 4 * 3, - stepMode: "vertex", - attributes: [{ - shaderLocation: 1, - offset: 0, - format: "float3" - }] - }, { - dirty: true, - name: "uv", - data: Float32Array.from(uvs), - arrayStride: 4 * 2, - stepMode: "vertex", - attributes: [{ - shaderLocation: 2, - offset: 0, - format: "float2" - }] - }]; - } - }]); - return Box3; -}(Geometry2)) || _class30); - -// node_modules/@antv/g-webgpu/es/geometry/Merged.js -var import_inversify24 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu/es/utils/typedarray.js -function merge2(a4, b10) { - if (!a4 && !b10) { - throw new Error("Please specify valid arguments for parameters a and b."); - } - if (!b10 || b10.length === 0) { - return a4; - } - if (!a4 || a4.length === 0) { - return b10; - } - if (Object.prototype.toString.call(a4) !== Object.prototype.toString.call(b10)) { - throw new Error("The types of the two arguments passed for parameters a and b do not match."); - } - var c5 = new a4.constructor(a4.length + b10.length); - c5.set(a4); - c5.set(b10, a4.length); - return c5; -} - -// node_modules/@antv/g-webgpu/es/geometry/Merged.js -var _dec51; -var _class31; -function _createSuper10(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct10(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct10() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var Merged = (_dec51 = (0, import_inversify24.injectable)(), _dec51(_class31 = /* @__PURE__ */ function(_Geometry) { - _inherits(Merged2, _Geometry); - var _super = _createSuper10(Merged2); - function Merged2() { - _classCallCheck(this, Merged2); - return _super.apply(this, arguments); - } - _createClass(Merged2, [{ - key: "onEntityCreated", - value: function onEntityCreated() { - var _this$config$geometri = this.config.geometries, geometries = _this$config$geometri === void 0 ? [] : _this$config$geometri; - var mergedComponent = this.getComponent(); - mergedComponent.aabb = new AABB(); - var mergedAttributes = []; - var mergedIndices = []; - var indexOffset = 0; - geometries.forEach(function(geometry35) { - var aabb = geometry35.aabb, indices = geometry35.indices, vertexCount = geometry35.vertexCount, attributes = geometry35.attributes; - mergedComponent.aabb.add(aabb); - mergedComponent.vertexCount += vertexCount; - if (indices) { - mergedIndices.push.apply(mergedIndices, _toConsumableArray(indices.map(function(index2) { - return index2 + indexOffset; - }))); - } - indexOffset += vertexCount; - attributes.forEach(function(attribute, i4) { - if (!mergedAttributes[i4]) { - mergedAttributes[i4] = attribute; - mergedAttributes[i4].dirty = true; - } else { - if (attribute.data) { - if (isNumber5(attribute.data)) { - mergedAttributes[i4].push(attribute.data); - } else if (isTypedArray2(attribute.data)) { - mergedAttributes[i4].data = merge2(mergedAttributes[i4].data, attribute.data); - } else { - mergedAttributes[i4].data = mergedAttributes[i4].data.concat(attribute.data); - } - } - } - }); - }); - mergedComponent.attributes = mergedAttributes; - mergedComponent.indices = Uint32Array.from(mergedIndices); - mergedComponent.dirty = true; - } - }]); - return Merged2; -}(Geometry2)) || _class31); - -// node_modules/@antv/g-webgpu/es/geometry/Plane.js -var import_inversify25 = __toModule(require_inversify()); -var _dec57; -var _class39; -function _createSuper11(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct11(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct11() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var Plane2 = (_dec57 = (0, import_inversify25.injectable)(), _dec57(_class39 = /* @__PURE__ */ function(_Geometry) { - _inherits(Plane3, _Geometry); - var _super = _createSuper11(Plane3); - function Plane3() { - _classCallCheck(this, Plane3); - return _super.apply(this, arguments); - } - _createClass(Plane3, [{ - key: "onEntityCreated", - value: function onEntityCreated() { - var _this$config = this.config, _this$config$halfExte = _this$config.halfExtents, halfExtents = _this$config$halfExte === void 0 ? [0.5, 0.5] : _this$config$halfExte, _this$config$widthSeg = _this$config.widthSegments, widthSegments = _this$config$widthSeg === void 0 ? 5 : _this$config$widthSeg, _this$config$lengthSe = _this$config.lengthSegments, lengthSegments = _this$config$lengthSe === void 0 ? 5 : _this$config$lengthSe; - var positions = []; - var normals = []; - var uvs = []; - var indices = []; - var vcounter = 0; - for (var i4 = 0; i4 <= widthSegments; i4++) { - for (var j4 = 0; j4 <= lengthSegments; j4++) { - var x6 = -halfExtents[0] + 2 * halfExtents[0] * i4 / widthSegments; - var y5 = 0; - var z3 = -(-halfExtents[1] + 2 * halfExtents[1] * j4 / lengthSegments); - var u3 = i4 / widthSegments; - var v3 = j4 / lengthSegments; - positions.push(x6, y5, z3); - normals.push(0, 1, 0); - uvs.push(u3, v3); - if (i4 < widthSegments && j4 < lengthSegments) { - indices.push(vcounter + lengthSegments + 1, vcounter + 1, vcounter); - indices.push(vcounter + lengthSegments + 1, vcounter + lengthSegments + 2, vcounter + 1); - } - vcounter++; - } - } - var aabb = generateAABBFromVertices(positions); - var component2 = this.getComponent(); - component2.indices = Uint32Array.from(indices); - component2.aabb = aabb; - component2.vertexCount = vcounter; - component2.attributes = [{ - dirty: true, - name: "position", - data: Float32Array.from(positions), - arrayStride: 4 * 3, - stepMode: "vertex", - attributes: [{ - shaderLocation: 0, - offset: 0, - format: "float3" - }] - }, { - dirty: true, - name: "normal", - data: Float32Array.from(normals), - arrayStride: 4 * 3, - stepMode: "vertex", - attributes: [{ - shaderLocation: 1, - offset: 0, - format: "float3" - }] - }, { - dirty: true, - name: "uv", - data: Float32Array.from(uvs), - arrayStride: 4 * 2, - stepMode: "vertex", - attributes: [{ - shaderLocation: 2, - offset: 0, - format: "float2" - }] - }]; - } - }]); - return Plane3; -}(Geometry2)) || _class39); - -// node_modules/@antv/g-webgpu/es/geometry/Sphere.js -var import_inversify26 = __toModule(require_inversify()); -var _dec58; -var _class40; -function _createSuper12(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct12(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct12() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var Sphere = (_dec58 = (0, import_inversify26.injectable)(), _dec58(_class40 = /* @__PURE__ */ function(_Geometry) { - _inherits(Sphere2, _Geometry); - var _super = _createSuper12(Sphere2); - function Sphere2() { - _classCallCheck(this, Sphere2); - return _super.apply(this, arguments); - } - _createClass(Sphere2, [{ - key: "onEntityCreated", - value: function onEntityCreated() { - var _this$config = this.config, _this$config$radius = _this$config.radius, radius = _this$config$radius === void 0 ? 0.5 : _this$config$radius, _this$config$latitude = _this$config.latitudeBands, latitudeBands = _this$config$latitude === void 0 ? 16 : _this$config$latitude, _this$config$longitud = _this$config.longitudeBands, longitudeBands = _this$config$longitud === void 0 ? 16 : _this$config$longitud; - var positions = []; - var normals = []; - var uvs = []; - var indices = []; - for (var lat = 0; lat <= latitudeBands; lat++) { - var theta = lat * Math.PI / latitudeBands; - var sinTheta = Math.sin(theta); - var cosTheta = Math.cos(theta); - for (var lon = 0; lon <= longitudeBands; lon++) { - var phi2 = lon * 2 * Math.PI / longitudeBands - Math.PI / 2; - var sinPhi = Math.sin(phi2); - var cosPhi = Math.cos(phi2); - var x6 = cosPhi * sinTheta; - var y5 = cosTheta; - var z3 = sinPhi * sinTheta; - var u3 = 1 - lon / longitudeBands; - var v3 = 1 - lat / latitudeBands; - positions.push(x6 * radius, y5 * radius, z3 * radius); - normals.push(x6, y5, z3); - uvs.push(u3, v3); - } - } - for (var _lat = 0; _lat < latitudeBands; ++_lat) { - for (var _lon = 0; _lon < longitudeBands; ++_lon) { - var first = _lat * (longitudeBands + 1) + _lon; - var second = first + longitudeBands + 1; - indices.push(first + 1, second, first); - indices.push(first + 1, second + 1, second); - } - } - var aabb = generateAABBFromVertices(positions); - var component2 = this.getComponent(); - component2.indices = Uint32Array.from(indices); - component2.aabb = aabb; - component2.vertexCount = positions.length / 3; - component2.attributes = [{ - dirty: true, - name: "position", - data: Float32Array.from(positions), - arrayStride: 4 * 3, - stepMode: "vertex", - attributes: [{ - shaderLocation: 0, - offset: 0, - format: "float3" - }] - }, { - dirty: true, - name: "normal", - data: Float32Array.from(normals), - arrayStride: 4 * 3, - stepMode: "vertex", - attributes: [{ - shaderLocation: 1, - offset: 0, - format: "float3" - }] - }, { - dirty: true, - name: "uv", - data: Float32Array.from(uvs), - arrayStride: 4 * 2, - stepMode: "vertex", - attributes: [{ - shaderLocation: 2, - offset: 0, - format: "float2" - }] - }]; - } - }]); - return Sphere2; -}(Geometry2)) || _class40); - -// node_modules/@antv/g-webgpu/es/material/basic/index.js -var import_inversify27 = __toModule(require_inversify()); -var _dec59; -var _dec216; -var _dec312; -var _class41; -var _class217; -var _descriptor20; -var _descriptor212; -var _temp20; -function _createSuper13(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct13(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct13() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var webglFragmentShaderGLSL = 'varying vec4 fragColor;\n\n#pragma include "uv.frag.declaration"\n#pragma include "map.frag.declaration"\n\nvoid main() {\n vec4 diffuseColor = fragColor;\n\n #pragma include "map.frag.main"\n\n gl_FragColor = diffuseColor;\n}'; -var webglVertexShaderGLSL = 'attribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelViewMatrix;\nuniform vec4 color;\n\nvarying vec4 fragColor;\n\n#pragma include "uv.vert.declaration"\n\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n fragColor = color;\n\n #pragma include "uv.vert.main"\n}'; -var webgpuFragmentShaderGLSL = "// layout(set = 0, binding = 1) uniform WireframeUniforms {\n// float lineWidth;\n// vec4 lineColor;\n// } wireframe;\n\nlayout(location = 0) in vec4 fragColor;\n// layout(location = 1) in vec3 v_Barycentric;\n\nlayout(location = 0) out vec4 outColor;\n\n// wireframe\n// float edgeFactor() {\n// vec3 d = fwidth(v_Barycentric);\n// vec3 a3 = smoothstep(vec3(0.0), d * wireframe.lineWidth, v_Barycentric);\n// return min(min(a3.x, a3.y), a3.z);\n// }\n\nvoid main() {\n // outColor = mix(fragColor, wireframe.lineColor, (1.0 - edgeFactor()));\n outColor = fragColor;\n}"; -var webgpuVertexShaderGLSL = "layout(set = 0, binding = 0) uniform Uniforms {\n vec4 color;\n mat4 projectionMatrix;\n mat4 modelViewMatrix;\n} uniforms;\n\nlayout(location = 0) in vec3 position;\n// layout(location = 1) in vec3 barycentric;\n\nlayout(location = 0) out vec4 fragColor;\n// layout(location = 1) out vec3 v_Barycentric;\n\nvoid main() {\n gl_Position = uniforms.projectionMatrix * uniforms.modelViewMatrix * vec4(position, 1.0);\n fragColor = uniforms.color;\n // v_Barycentric = barycentric;\n}"; -var Basic = (_dec59 = (0, import_inversify27.injectable)(), _dec216 = (0, import_inversify27.inject)(IDENTIFIER.RenderEngine), _dec312 = (0, import_inversify27.inject)(IDENTIFIER.ShaderModuleService), _dec59(_class41 = (_class217 = (_temp20 = /* @__PURE__ */ function(_Material) { - _inherits(Basic2, _Material); - var _super = _createSuper13(Basic2); - function Basic2() { - var _this; - _classCallCheck(this, Basic2); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - _initializerDefineProperty(_this, "engine", _descriptor20, _assertThisInitialized(_this)); - _initializerDefineProperty(_this, "shaderModuleService", _descriptor212, _assertThisInitialized(_this)); - return _this; - } - _createClass(Basic2, [{ - key: "onEntityCreated", - value: function onEntityCreated() { - var component2 = this.getComponent(); - var vertexShaderGLSL = this.engine.supportWebGPU ? webgpuVertexShaderGLSL : webglVertexShaderGLSL; - var fragmentShaderGLSL = this.engine.supportWebGPU ? webgpuFragmentShaderGLSL : webglFragmentShaderGLSL; - this.shaderModuleService.registerModule("material-basic", { - vs: vertexShaderGLSL, - fs: fragmentShaderGLSL - }); - var _this$shaderModuleSer = this.shaderModuleService.getModule("material-basic"), vs = _this$shaderModuleSer.vs, fs = _this$shaderModuleSer.fs, extractedUniforms = _this$shaderModuleSer.uniforms; - component2.vertexShaderGLSL = vs; - component2.fragmentShaderGLSL = fs; - component2.setUniform(extractedUniforms); - if (this.config.map) { - component2.setDefines({ - USE_UV: 1, - USE_MAP: 1 - }); - component2.setUniform({ - map: this.config.map, - uvTransform: mat3_exports.create() - }); - } - } - }]); - return Basic2; -}(Material), _temp20), _descriptor20 = _applyDecoratedDescriptor(_class217.prototype, "engine", [_dec216], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor212 = _applyDecoratedDescriptor(_class217.prototype, "shaderModuleService", [_dec312], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class217)) || _class41); - -// node_modules/@antv/g-webgpu/es/renderable/grid/index.js -var import_inversify28 = __toModule(require_inversify()); -var _dec60; -var _dec217; -var _dec313; -var _dec410; -var _dec510; -var _dec65; -var _class42; -var _class218; -var _descriptor21; -var _descriptor213; -var _descriptor39; -var _temp21; -function _createSuper14(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct14(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct14() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var gridFrag = "// generate grid, borrow from clay.gl viewer\n// @see https://github.com/pissang/clay-viewer/blob/master/src/graphic/ground.glsl\n#extension GL_OES_standard_derivatives : enable\n\nvarying vec3 v_Position;\n// varying vec3 v_Normal;\n\nuniform float u_GridSize : 5;\nuniform float u_GridSize2 : .5;\nuniform vec4 u_GridColor : [0, 0, 0, 1];\nuniform vec4 u_GridColor2 : [0.3, 0.3, 0.3, 1];\nuniform bool u_GridEnabled : true;\n\n// uniform vec3 u_LightDirection;\n// uniform vec3 u_LightColor;\n// uniform vec3 u_Camera;\n\nvoid main() {\n // vec3 n = v_Normal;\n // vec3 l = normalize(u_LightDirection);\n // float NdotL = clamp(dot(n, l), 0.001, 1.0);\n\n gl_FragColor = vec4(1.);\n\n if (u_GridEnabled) {\n float wx = v_Position.x;\n float wz = v_Position.z;\n // float x0 = abs(fract(wx / u_GridSize - 0.5) - 0.5) / fwidth(wx) * u_GridSize / 2.0;\n // float z0 = abs(fract(wz / u_GridSize - 0.5) - 0.5) / fwidth(wz) * u_GridSize / 2.0;\n\n float x1 = abs(fract(wx / u_GridSize2 - 0.5) - 0.5) / fwidth(wx) * u_GridSize2;\n float z1 = abs(fract(wz / u_GridSize2 - 0.5) - 0.5) / fwidth(wz) * u_GridSize2;\n\n // float v0 = 1.0 - clamp(min(x0, z0), 0.0, 1.0);\n float v1 = 1.0 - clamp(min(x1, z1), 0.0, 1.0);\n // if (v0 > 0.1) {\n // gl_FragColor = mix(gl_FragColor, u_GridColor, v0);\n // }\n // else {\n gl_FragColor = mix(gl_FragColor, u_GridColor2, v1);\n // }\n }\n\n // float shadowFactor = calcShadow(u_ShadowMap, v_PositionFromLight, l, n);\n // vec3 diffuseColor = u_LightColor * NdotL * shadowFactor;\n\n // gl_FragColor.rgb *= diffuseColor;\n}"; -var gridVert = "attribute vec3 a_Position;\n\nvarying vec3 v_Position;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelViewMatrix;\n\nvoid main() {\n v_Position = a_Position;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(a_Position, 1.);\n}"; -var Grid = (_dec60 = (0, import_inversify28.injectable)(), _dec217 = (0, import_inversify28.inject)(IDENTIFIER.Systems), _dec313 = (0, import_inversify28.named)(IDENTIFIER.MaterialSystem), _dec410 = (0, import_inversify28.inject)(IDENTIFIER.Systems), _dec510 = (0, import_inversify28.named)(IDENTIFIER.GeometrySystem), _dec65 = (0, import_inversify28.inject)(IDENTIFIER.ShaderModuleService), _dec60(_class42 = (_class218 = (_temp21 = /* @__PURE__ */ function(_Renderable) { - _inherits(Grid5, _Renderable); - var _super = _createSuper14(Grid5); - function Grid5() { - var _this; - _classCallCheck(this, Grid5); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - _initializerDefineProperty(_this, "materialSystem", _descriptor21, _assertThisInitialized(_this)); - _initializerDefineProperty(_this, "geometrySystem", _descriptor213, _assertThisInitialized(_this)); - _initializerDefineProperty(_this, "shaderModuleService", _descriptor39, _assertThisInitialized(_this)); - return _this; - } - _createClass(Grid5, [{ - key: "onAttributeChanged", - value: function onAttributeChanged(_ref2) { - var name = _ref2.name, data3 = _ref2.data; - var mesh = this.getMeshComponent(); - if (mesh && mesh.material) { - if (name === "gridColor") { - mesh.material.setUniform("u_GridColor", data3); - mesh.material.setUniform("u_GridColor2", data3); - } else if (name === "gridSize") { - mesh.material.setUniform("u_GridSize", data3); - mesh.material.setUniform("u_GridSize2", data3); - } - } - } - }, { - key: "onEntityCreated", - value: function onEntityCreated() { - this.shaderModuleService.registerModule("grid", { - vs: gridVert, - fs: gridFrag - }); - var _this$shaderModuleSer = this.shaderModuleService.getModule("grid"), vs = _this$shaderModuleSer.vs, fs = _this$shaderModuleSer.fs, extractedUniforms = _this$shaderModuleSer.uniforms; - var material = this.materialSystem.createShaderMaterial({ - vertexShader: vs, - fragmentShader: fs - }); - this.setMaterial(material); - var geometry35 = this.geometrySystem.createBufferGeometry({ - vertexCount: 4 - }); - this.setGeometry(geometry35); - material.setCull({ - enable: false, - face: gl.BACK - }).setDepth({ - enable: true, - func: gl.LESS - }); - material.setUniform(extractedUniforms); - this.setAttributes({ - gridColor: this.config.gridColor, - gridSize: this.config.gridSize - }); - geometry35.setIndex([0, 3, 2, 2, 1, 0]); - geometry35.setAttribute("a_Position", Float32Array.from([-4, -1, -4, 4, -1, -4, 4, -1, 4, -4, -1, 4]), { - arrayStride: 4 * 2, - stepMode: "vertex", - attributes: [{ - shaderLocation: 0, - offset: 0, - format: "float2" - }] - }); - } - }]); - return Grid5; -}(Renderable), _temp21), _descriptor21 = _applyDecoratedDescriptor(_class218.prototype, "materialSystem", [_dec217, _dec313], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor213 = _applyDecoratedDescriptor(_class218.prototype, "geometrySystem", [_dec410, _dec510], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor39 = _applyDecoratedDescriptor(_class218.prototype, "shaderModuleService", [_dec65], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class218)) || _class42); - -// node_modules/@antv/g-webgpu/es/renderable/line/index.js -var import_inversify29 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu/es/utils/polyline-normals.js -var import_gl_vec2 = __toModule(require_gl_vec2()); -var import_polyline_miter_util = __toModule(require_polyline_miter_util()); -function extrusions(positions, out, point2, normal2, scale12) { - addNext(out, normal2, -scale12); - addNext(out, normal2, scale12); - positions.push(point2); - positions.push(point2); -} -function addNext(out, normal2, length5) { - out.push([[normal2[0], normal2[1]], length5]); -} -function polyline_normals_default(points, closed, indexOffset) { - var lineA = [0, 0]; - var lineB = [0, 0]; - var tangent = [0, 0]; - var miter = [0, 0]; - var _lastFlip = -1; - var _started = false; - var _normal = null; - var tmp = (0, import_gl_vec2.create)(); - var count2 = indexOffset || 0; - var miterLimit = 3; - var out = []; - var attrPos = []; - var attrIndex = []; - var attrCounters = [0, 0]; - if (closed) { - points = points.slice(); - points.push(points[0]); - } - var total = points.length; - for (var i4 = 1; i4 < total; i4++) { - var index2 = count2; - var last2 = points[i4 - 1]; - var cur = points[i4]; - var next = i4 < points.length - 1 ? points[i4 + 1] : null; - attrCounters.push(i4 / total, i4 / total); - (0, import_polyline_miter_util.direction)(lineA, cur, last2); - if (!_normal) { - _normal = [0, 0]; - (0, import_polyline_miter_util.normal)(_normal, lineA); - } - if (!_started) { - _started = true; - extrusions(attrPos, out, last2, _normal, 1); - } - attrIndex.push([index2 + 0, index2 + 1, index2 + 2]); - if (!next) { - (0, import_polyline_miter_util.normal)(_normal, lineA); - extrusions(attrPos, out, cur, _normal, 1); - attrIndex.push(_lastFlip === 1 ? [index2, index2 + 2, index2 + 3] : [index2 + 2, index2 + 1, index2 + 3]); - count2 += 2; - } else { - (0, import_polyline_miter_util.direction)(lineB, next, cur); - var miterLen = (0, import_polyline_miter_util.computeMiter)(tangent, miter, lineA, lineB, 1); - var flip = (0, import_gl_vec2.dot)(tangent, _normal) < 0 ? -1 : 1; - var bevel = miterLen > miterLimit; - if (!isFinite(miterLen)) { - (0, import_polyline_miter_util.normal)(_normal, lineA); - extrusions(attrPos, out, cur, _normal, 1); - attrIndex.push(_lastFlip === 1 ? [index2, index2 + 2, index2 + 3] : [index2 + 2, index2 + 1, index2 + 3]); - count2 += 2; - _lastFlip = flip; - continue; - } - if (bevel) { - miterLen = miterLimit; - attrCounters.push(i4 / total); - addNext(out, _normal, -flip); - attrPos.push(cur); - addNext(out, miter, miterLen * flip); - attrPos.push(cur); - attrIndex.push(_lastFlip !== -flip ? [index2, index2 + 2, index2 + 3] : [index2 + 2, index2 + 1, index2 + 3]); - attrIndex.push([index2 + 2, index2 + 3, index2 + 4]); - (0, import_polyline_miter_util.normal)(tmp, lineB); - (0, import_gl_vec2.copy)(_normal, tmp); - addNext(out, _normal, -flip); - attrPos.push(cur); - count2 += 3; - } else { - extrusions(attrPos, out, cur, miter, miterLen); - attrIndex.push(_lastFlip === 1 ? [index2, index2 + 2, index2 + 3] : [index2 + 2, index2 + 1, index2 + 3]); - flip = -1; - (0, import_gl_vec2.copy)(_normal, miter); - count2 += 2; - } - _lastFlip = flip; - } - } - return { - normals: out, - attrIndex, - attrPos, - attrCounters - }; -} - -// node_modules/@antv/g-webgpu/es/renderable/line/index.js -var _dec61; -var _dec218; -var _dec314; -var _dec411; -var _dec511; -var _dec66; -var _class43; -var _class219; -var _descriptor30; -var _descriptor214; -var _descriptor310; -var _temp22; -function _createSuper15(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct15(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct15() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var lineFrag = "uniform float u_dash_array : 0.02;\nuniform float u_dash_offset : 0;\nuniform float u_dash_ratio : 0;\nuniform float u_thickness : 0.02;\n\nvarying vec4 v_color;\nvarying vec2 v_normal;\nvarying float v_counters;\n\nvoid main() {\n float blur = 1. - smoothstep(0.98, 1., length(v_normal));\n\n gl_FragColor = v_color;\n gl_FragColor.a *= blur * ceil(mod(v_counters + u_dash_offset, u_dash_array) - (u_dash_array * u_dash_ratio));\n}"; -var lineVert = "attribute vec2 a_pos;\nattribute vec4 a_color;\nattribute float a_line_miter;\nattribute vec2 a_line_normal;\nattribute float a_counters;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelViewMatrix;\nuniform float u_thickness : 0.02;\nuniform vec2 u_viewport;\n\nvarying vec4 v_color;\nvarying vec2 v_normal;\nvarying float v_counters;\n\nvoid main() {\n v_color = a_color;\n v_counters = a_counters;\n\n vec3 normal = normalize(vec3(a_line_normal, 0.0));\n\n vec4 offset = vec4(normal * u_thickness / 2.0 * a_line_miter, 0.0);\n\n v_normal = vec2(normal * sign(a_line_miter));\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4(a_pos, 0.0, 1.0) + offset;\n}\n"; -var Line8 = (_dec61 = (0, import_inversify29.injectable)(), _dec218 = (0, import_inversify29.inject)(IDENTIFIER.Systems), _dec314 = (0, import_inversify29.named)(IDENTIFIER.MaterialSystem), _dec411 = (0, import_inversify29.inject)(IDENTIFIER.Systems), _dec511 = (0, import_inversify29.named)(IDENTIFIER.GeometrySystem), _dec66 = (0, import_inversify29.inject)(IDENTIFIER.ShaderModuleService), _dec61(_class43 = (_class219 = (_temp22 = /* @__PURE__ */ function(_Renderable) { - _inherits(Line9, _Renderable); - var _super = _createSuper15(Line9); - function Line9() { - var _this; - _classCallCheck(this, Line9); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - _initializerDefineProperty(_this, "materialSystem", _descriptor30, _assertThisInitialized(_this)); - _initializerDefineProperty(_this, "geometrySystem", _descriptor214, _assertThisInitialized(_this)); - _initializerDefineProperty(_this, "shaderModuleService", _descriptor310, _assertThisInitialized(_this)); - _this.vertexCount = void 0; - return _this; - } - _createClass(Line9, [{ - key: "onAttributeChanged", - value: function onAttributeChanged(_ref2) { - var name = _ref2.name, data3 = _ref2.data; - var mesh = this.getMeshComponent(); - if (mesh && mesh.material) { - switch (name) { - case "dashArray": - mesh.material.setUniform("u_dash_array", data3); - break; - case "dashOffset": - mesh.material.setUniform("u_dash_offset", data3); - break; - case "dashRatio": - mesh.material.setUniform("u_dash_ratio", data3); - break; - case "thickness": - mesh.material.setUniform("u_thickness", data3); - break; - case "color": - var colors = new Array(this.vertexCount).fill(void 0).map(function() { - return data3; - }).reduce(function(prev, cur) { - return [].concat(_toConsumableArray(prev), _toConsumableArray(cur)); - }, []); - mesh.geometry.setAttribute("a_color", Float32Array.from(colors), { - arrayStride: 4 * 4, - stepMode: "vertex", - attributes: [{ - shaderLocation: 1, - offset: 0, - format: "float4" - }] - }); - break; - } - } - } - }, { - key: "onEntityCreated", - value: function onEntityCreated() { - var _this2 = this; - this.shaderModuleService.registerModule("line", { - vs: lineVert, - fs: lineFrag - }); - var _this$shaderModuleSer = this.shaderModuleService.getModule("line"), vs = _this$shaderModuleSer.vs, fs = _this$shaderModuleSer.fs, extractedUniforms = _this$shaderModuleSer.uniforms; - var material = this.materialSystem.createShaderMaterial({ - vertexShader: vs, - fragmentShader: fs - }); - var _getNormals = polyline_normals_default(this.config.points, false), normals = _getNormals.normals, attrIndex = _getNormals.attrIndex, attrPos = _getNormals.attrPos, attrCounters = _getNormals.attrCounters; - var vertexCount = attrPos.length; - this.vertexCount = vertexCount; - var geometry35 = this.geometrySystem.createBufferGeometry({ - vertexCount - }); - this.setMaterial(material); - this.setGeometry(geometry35); - material.setCull({ - enable: false, - face: gl.BACK - }).setUniform(extractedUniforms); - this.setAttributes({ - dashArray: this.config.dashArray, - dashOffset: this.config.dashOffset, - dashRatio: this.config.dashRatio, - thickness: this.config.thickness - }); - var attrNormal = []; - var attrMiter = []; - normals.forEach(function(n3) { - var norm = n3[0]; - var miter = n3[1]; - attrNormal.push([norm[0], norm[1]]); - attrMiter.push(miter); - }); - geometry35.setIndex(attrIndex.reduce(function(prev, cur) { - return [].concat(_toConsumableArray(prev), _toConsumableArray(cur)); - }, [])); - geometry35.setAttribute("a_pos", Float32Array.from(attrPos.reduce(function(prev, cur) { - return [].concat(_toConsumableArray(prev), _toConsumableArray(cur)); - }, [])), { - arrayStride: 4 * 2, - stepMode: "vertex", - attributes: [{ - shaderLocation: 0, - offset: 0, - format: "float2" - }] - }); - var colors = new Array(vertexCount).fill(void 0).map(function() { - return _toConsumableArray(_this2.config.color); - }).reduce(function(prev, cur) { - return [].concat(_toConsumableArray(prev), _toConsumableArray(cur)); - }, []); - geometry35.setAttribute("a_color", Float32Array.from(colors), { - arrayStride: 4 * 4, - stepMode: "vertex", - attributes: [{ - shaderLocation: 1, - offset: 0, - format: "float4" - }] - }); - geometry35.setAttribute("a_line_miter", Float32Array.from(attrMiter), { - arrayStride: 4 * 1, - stepMode: "vertex", - attributes: [{ - shaderLocation: 2, - offset: 0, - format: "float" - }] - }); - geometry35.setAttribute("a_line_normal", Float32Array.from(attrNormal.reduce(function(prev, cur) { - return [].concat(_toConsumableArray(prev), _toConsumableArray(cur)); - }, [])), { - arrayStride: 4 * 2, - stepMode: "vertex", - attributes: [{ - shaderLocation: 3, - offset: 0, - format: "float2" - }] - }); - geometry35.setAttribute("a_counters", Float32Array.from(attrCounters), { - arrayStride: 4 * 1, - stepMode: "vertex", - attributes: [{ - shaderLocation: 4, - offset: 0, - format: "float" - }] - }); - } - }]); - return Line9; -}(Renderable), _temp22), _descriptor30 = _applyDecoratedDescriptor(_class219.prototype, "materialSystem", [_dec218, _dec314], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor214 = _applyDecoratedDescriptor(_class219.prototype, "geometrySystem", [_dec411, _dec511], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor310 = _applyDecoratedDescriptor(_class219.prototype, "shaderModuleService", [_dec66], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class219)) || _class43); - -// node_modules/@antv/g-webgpu/es/renderable/point/index.js -var import_inversify30 = __toModule(require_inversify()); - -// node_modules/@antv/g-webgpu/es/utils/picking.js -function encodePickingColor(featureIdx) { - return [featureIdx + 1 & 255, featureIdx + 1 >> 8 & 255, featureIdx + 1 >> 8 >> 8 & 255]; -} - -// node_modules/@antv/g-webgpu/es/renderable/point/index.js -var _dec67; -var _dec219; -var _dec315; -var _dec412; -var _dec512; -var _dec68; -var _class44; -var _class220; -var _descriptor31; -var _descriptor215; -var _descriptor311; -var _temp23; -function ownKeys9(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread9(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys9(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys9(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -function _createSuper16(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct16(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; -} -function _isNativeReflectConstruct16() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e4) { - return false; - } -} -var pointFrag = `uniform float u_blur : 0.05; -uniform float u_opacity : 0.7; -uniform float u_stroke_width : 0.01; -uniform vec4 u_stroke_color : [0, 0, 0, 0]; -uniform float u_stroke_opacity : 1; - -varying vec4 v_color; -varying vec4 v_data; -varying float v_radius; - -#pragma include "sdf2d" -#pragma include "picking" - -void main() { - int shape = int(floor(v_data.w + 0.5)); - - float antialiasblur = v_data.z; - float antialiased_blur = -max(u_blur, antialiasblur); - float r = v_radius / (v_radius + u_stroke_width); - - float outer_df; - float inner_df; - // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica' - // if (shape == 0) { - outer_df = sdCircle(v_data.xy, 1.0); - inner_df = sdCircle(v_data.xy, r); - // } else if (shape == 1) { - // outer_df = sdEquilateralTriangle(1.1 * v_data.xy); - // inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy); - // } else if (shape == 2) { - // outer_df = sdBox(v_data.xy, vec2(1.)); - // inner_df = sdBox(v_data.xy, vec2(r)); - // } else if (shape == 3) { - // outer_df = sdPentagon(v_data.xy, 0.8); - // inner_df = sdPentagon(v_data.xy, r * 0.8); - // } else if (shape == 4) { - // outer_df = sdHexagon(v_data.xy, 0.8); - // inner_df = sdHexagon(v_data.xy, r * 0.8); - // } else if (shape == 5) { - // outer_df = sdOctogon(v_data.xy, 1.0); - // inner_df = sdOctogon(v_data.xy, r); - // } else if (shape == 6) { - // outer_df = sdHexagram(v_data.xy, 0.52); - // inner_df = sdHexagram(v_data.xy, r * 0.52); - // } else if (shape == 7) { - // outer_df = sdRhombus(v_data.xy, vec2(1.0)); - // inner_df = sdRhombus(v_data.xy, vec2(r)); - // } else if (shape == 8) { - // outer_df = sdVesica(v_data.xy, 1.1, 0.8); - // inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8); - // } - - float opacity_t = smoothstep(0.0, antialiased_blur, outer_df); - - float color_t = u_stroke_width < 0.01 ? 0.0 : smoothstep( - antialiased_blur, - 0.0, - inner_df - ); - vec4 strokeColor = u_stroke_color == vec4(0) ? v_color : u_stroke_color; - - gl_FragColor = mix(vec4(v_color.rgb, v_color.a * u_opacity), strokeColor * u_stroke_opacity, color_t); - gl_FragColor.a = gl_FragColor.a * opacity_t; - - gl_FragColor = filterColor(gl_FragColor); -}`; -var pointVert = 'attribute vec2 position;\nattribute vec4 color;\nattribute float shape;\nattribute vec2 offset;\nattribute float size;\n\nuniform mat4 projectionMatrix;\nuniform mat4 modelViewMatrix;\n\nuniform float u_stroke_width : 0.01;\nuniform float u_device_pixel_ratio;\nuniform vec2 u_viewport;\n\nvarying vec4 v_color;\nvarying vec4 v_data;\nvarying float v_radius;\n\n#pragma include "picking"\n\nvoid main() {\n v_color = color;\n v_radius = size;\n\n lowp float antialiasblur = 1.0 / u_device_pixel_ratio * (size + u_stroke_width);\n\n // construct point coords\n v_data = vec4(position, antialiasblur, shape);\n\n gl_Position = projectionMatrix * modelViewMatrix\n * vec4(position * size + offset, 0.0, 1.0);\n\n setPickingColor(a_PickingColor);\n}'; -var pointShapes = ["circle", "triangle", "square", "pentagon", "hexagon", "octogon", "hexagram", "rhombus", "vesica"]; -var Point2 = (_dec67 = (0, import_inversify30.injectable)(), _dec219 = (0, import_inversify30.inject)(IDENTIFIER.Systems), _dec315 = (0, import_inversify30.named)(IDENTIFIER.MaterialSystem), _dec412 = (0, import_inversify30.inject)(IDENTIFIER.Systems), _dec512 = (0, import_inversify30.named)(IDENTIFIER.GeometrySystem), _dec68 = (0, import_inversify30.inject)(IDENTIFIER.ShaderModuleService), _dec67(_class44 = (_class220 = (_temp23 = /* @__PURE__ */ function(_Renderable) { - _inherits(Point3, _Renderable); - var _super = _createSuper16(Point3); - function Point3() { - var _this; - _classCallCheck(this, Point3); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - _initializerDefineProperty(_this, "materialSystem", _descriptor31, _assertThisInitialized(_this)); - _initializerDefineProperty(_this, "geometrySystem", _descriptor215, _assertThisInitialized(_this)); - _initializerDefineProperty(_this, "shaderModuleService", _descriptor311, _assertThisInitialized(_this)); - return _this; - } - _createClass(Point3, [{ - key: "onAttributeChanged", - value: function onAttributeChanged(_ref2) { - var name = _ref2.name, data3 = _ref2.data; - var mesh = this.getMeshComponent(); - if (mesh && mesh.material) { - if (name === "strokeWidth") { - mesh.material.setUniform("u_stroke_width", data3); - } else if (name === "strokeColor") { - mesh.material.setUniform("u_stroke_color", data3); - } else if (name === "strokeOpacity") { - mesh.material.setUniform("u_stroke_opacity", data3); - } else if (name === "opacity") { - mesh.material.setUniform("u_opacity", data3); - } else if (name === "blur") { - mesh.material.setUniform("u_blur", data3); - } - } - } - }, { - key: "onEntityCreated", - value: function onEntityCreated() { - this.shaderModuleService.registerModule("grid", { - vs: pointVert, - fs: pointFrag - }); - var _this$shaderModuleSer = this.shaderModuleService.getModule("grid"), vs = _this$shaderModuleSer.vs, fs = _this$shaderModuleSer.fs, extractedUniforms = _this$shaderModuleSer.uniforms; - var material = this.materialSystem.createShaderMaterial({ - vertexShader: vs, - fragmentShader: fs, - cull: { - enable: false - }, - depth: { - enable: false - }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - srcAlpha: 1, - dstAlpha: 1 - } - } - }); - material.setUniform(_objectSpread9({ - u_device_pixel_ratio: window.devicePixelRatio - }, extractedUniforms)); - var attributes = this.buildAttributes(); - var geometry35 = this.geometrySystem.createInstancedBufferGeometry({ - maxInstancedCount: attributes.instancedOffsets.length / 2, - vertexCount: 6 - }); - geometry35.setIndex([0, 2, 1, 0, 3, 2]); - geometry35.setAttribute("position", Float32Array.from(attributes.positions), { - arrayStride: 4 * 2, - stepMode: "vertex", - attributes: [{ - shaderLocation: 0, - offset: 0, - format: "float2" - }] - }); - geometry35.setAttribute("offset", Float32Array.from(attributes.instancedOffsets), { - arrayStride: 4 * 2, - stepMode: "instance", - attributes: [{ - shaderLocation: 1, - offset: 0, - format: "float2" - }] - }); - geometry35.setAttribute("color", Float32Array.from(attributes.instancedColors), { - arrayStride: 4 * 4, - stepMode: "instance", - attributes: [{ - shaderLocation: 2, - offset: 0, - format: "float4" - }] - }); - geometry35.setAttribute("size", Float32Array.from(attributes.instancedSizes), { - arrayStride: 4, - stepMode: "instance", - attributes: [{ - shaderLocation: 3, - offset: 0, - format: "float" - }] - }); - geometry35.setAttribute("shape", Float32Array.from(attributes.instancedShapes), { - arrayStride: 4, - stepMode: "instance", - attributes: [{ - shaderLocation: 4, - offset: 0, - format: "float" - }] - }); - geometry35.setAttribute("a_PickingColor", Float32Array.from(attributes.instancedPickingColors), { - arrayStride: 4 * 3, - stepMode: "instance", - attributes: [{ - shaderLocation: 6, - offset: 0, - format: "float3" - }] - }); - this.setMaterial(material); - this.setGeometry(geometry35); - } - }, { - key: "buildAttribute", - value: function buildAttribute(config, attributes, index2) { - var _attributes$instanced, _attributes$instanced2, _attributes$instanced3, _attributes$instanced4; - (_attributes$instanced = attributes.instancedPickingColors).push.apply(_attributes$instanced, _toConsumableArray(encodePickingColor(config.id || index2))); - attributes.instancedShapes.push(pointShapes.indexOf(config.shape || "circle")); - (_attributes$instanced2 = attributes.instancedColors).push.apply(_attributes$instanced2, _toConsumableArray(config.color || [1, 0, 0, 1])); - (_attributes$instanced3 = attributes.instancedOffsets).push.apply(_attributes$instanced3, _toConsumableArray(config.position || [0, 0])); - (_attributes$instanced4 = attributes.instancedSizes).push.apply(_attributes$instanced4, _toConsumableArray(config.size || [0.2, 0.2])); - } - }, { - key: "buildAttributes", - value: function buildAttributes() { - var _this2 = this; - var attributes = { - positions: [1, 1, 1, -1, -1, -1, -1, 1], - instancedOffsets: [], - instancedColors: [], - instancedSizes: [], - instancedShapes: [], - instancedPickingColors: [] - }; - if (Array.isArray(this.config)) { - this.config.forEach(function(config, i4) { - _this2.buildAttribute(config, attributes, i4); - }); - } else { - this.buildAttribute(this.config, attributes, 0); - } - return attributes; - } - }]); - return Point3; -}(Renderable), _temp23), _descriptor31 = _applyDecoratedDescriptor(_class220.prototype, "materialSystem", [_dec219, _dec315], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor215 = _applyDecoratedDescriptor(_class220.prototype, "geometrySystem", [_dec412, _dec512], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor311 = _applyDecoratedDescriptor(_class220.prototype, "shaderModuleService", [_dec68], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class220)) || _class44); - -// node_modules/@antv/g-webgpu/es/Renderer.js -var import_regenerator18 = __toModule(require_regenerator()); -var WebGPUConstants9 = __toModule(require_constants()); -var import_inversify31 = __toModule(require_inversify()); -var _dec69; -var _dec220; -var _dec316; -var _dec413; -var _class45; -var _class221; -var _descriptor40; -var _descriptor216; -var _descriptor312; -var _temp24; -function _createForOfIteratorHelper5(o3, allowArrayLike) { - var it; - if (typeof Symbol === "undefined" || o3[Symbol.iterator] == null) { - if (Array.isArray(o3) || (it = _unsupportedIterableToArray6(o3)) || allowArrayLike && o3 && typeof o3.length === "number") { - if (it) - o3 = it; - var i4 = 0; - var F3 = function F4() { - }; - return { s: F3, n: function n3() { - if (i4 >= o3.length) - return { done: true }; - return { done: false, value: o3[i4++] }; - }, e: function e4(_e) { - throw _e; - }, f: F3 }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var normalCompletion = true, didErr = false, err; - return { s: function s4() { - it = o3[Symbol.iterator](); - }, n: function n3() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, e: function e4(_e2) { - didErr = true; - err = _e2; - }, f: function f3() { - try { - if (!normalCompletion && it.return != null) - it.return(); - } finally { - if (didErr) - throw err; - } - } }; -} -function _unsupportedIterableToArray6(o3, minLen) { - if (!o3) - return; - if (typeof o3 === "string") - return _arrayLikeToArray6(o3, minLen); - var n3 = Object.prototype.toString.call(o3).slice(8, -1); - if (n3 === "Object" && o3.constructor) - n3 = o3.constructor.name; - if (n3 === "Map" || n3 === "Set") - return Array.from(o3); - if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) - return _arrayLikeToArray6(o3, minLen); -} -function _arrayLikeToArray6(arr, len5) { - if (len5 == null || len5 > arr.length) - len5 = arr.length; - for (var i4 = 0, arr2 = new Array(len5); i4 < len5; i4++) { - arr2[i4] = arr[i4]; - } - return arr2; -} -var mapFragDeclaration = "#ifdef USE_MAP\n uniform sampler2D map;\n#endif"; -var mapFragMain = "#ifdef USE_MAP\n vec4 texelColor = texture2D(map, vUv);\n // texelColor = mapTexelToLinear(texelColor);\n diffuseColor *= texelColor;\n#endif"; -var uvFragDeclaration = "#if (defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ))\n varying vec2 vUv;\n#endif"; -var uvVertDeclaration = "#ifdef USE_UV\n attribute vec2 uv;\n #ifdef UVS_VERTEX_ONLY\n vec2 vUv;\n #else\n varying vec2 vUv;\n #endif\n uniform mat3 uvTransform;\n#endif"; -var uvVertMain = "#ifdef USE_UV\n vUv = (uvTransform * vec3(uv, 1)).xy;\n#endif"; -var Renderer = (_dec69 = (0, import_inversify31.injectable)(), _dec220 = (0, import_inversify31.inject)(IDENTIFIER.RenderEngine), _dec316 = (0, import_inversify31.inject)(IDENTIFIER.ShaderModuleService), _dec413 = (0, import_inversify31.inject)(IDENTIFIER.ConfigService), _dec69(_class45 = (_class221 = (_temp24 = /* @__PURE__ */ function() { - function Renderer2() { - _classCallCheck(this, Renderer2); - this.container = void 0; - _initializerDefineProperty(this, "engine", _descriptor40, this); - _initializerDefineProperty(this, "shaderModule", _descriptor216, this); - _initializerDefineProperty(this, "configService", _descriptor312, this); - this.inited = false; - this.rendering = false; - this.pendings = []; - this.views = []; - this.size = void 0; - } - _createClass(Renderer2, [{ - key: "init", - value: function() { - var _init = _asyncToGenerator(/* @__PURE__ */ import_regenerator18.default.mark(function _callee() { - var systems, config, _iterator, _step, system; - return import_regenerator18.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.shaderModule.registerBuiltinModules(); - this.shaderModule.registerModule("uv.vert.declaration", { - vs: uvVertDeclaration - }); - this.shaderModule.registerModule("uv.vert.main", { - vs: uvVertMain - }); - this.shaderModule.registerModule("uv.frag.declaration", { - fs: uvFragDeclaration - }); - this.shaderModule.registerModule("map.frag.declaration", { - fs: mapFragDeclaration - }); - this.shaderModule.registerModule("map.frag.main", { - fs: mapFragMain - }); - systems = this.container.getAll(IDENTIFIER.Systems); - config = this.configService.get(); - if (!config.canvas) { - _context.next = 30; - break; - } - _context.next = 11; - return this.engine.init({ - canvas: config.canvas, - swapChainFormat: WebGPUConstants9.TextureFormat.BGRA8Unorm, - antialiasing: false - }); - case 11: - _iterator = _createForOfIteratorHelper5(systems); - _context.prev = 12; - _iterator.s(); - case 14: - if ((_step = _iterator.n()).done) { - _context.next = 21; - break; - } - system = _step.value; - if (!system.initialize) { - _context.next = 19; - break; - } - _context.next = 19; - return system.initialize(); - case 19: - _context.next = 14; - break; - case 21: - _context.next = 26; - break; - case 23: - _context.prev = 23; - _context.t0 = _context["catch"](12); - _iterator.e(_context.t0); - case 26: - _context.prev = 26; - _iterator.f(); - return _context.finish(26); - case 29: - this.inited = true; - case 30: - case "end": - return _context.stop(); - } - } - }, _callee, this, [[12, 23, 26, 29]]); - })); - function init() { - return _init.apply(this, arguments); - } - return init; - }() - }, { - key: "render", - value: function() { - var _render = _asyncToGenerator(/* @__PURE__ */ import_regenerator18.default.mark(function _callee2() { - var systems, _len, views, _key, _iterator2, _step2, system, _args2 = arguments; - return import_regenerator18.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(!this.inited || this.rendering)) { - _context2.next = 2; - break; - } - return _context2.abrupt("return"); - case 2: - if (this.pendings.length) { - this.pendings.forEach(function(pending) { - pending(); - }); - } - this.rendering = true; - this.engine.beginFrame(); - systems = this.container.getAll(IDENTIFIER.Systems); - for (_len = _args2.length, views = new Array(_len), _key = 0; _key < _len; _key++) { - views[_key] = _args2[_key]; - } - _iterator2 = _createForOfIteratorHelper5(systems); - _context2.prev = 8; - _iterator2.s(); - case 10: - if ((_step2 = _iterator2.n()).done) { - _context2.next = 17; - break; - } - system = _step2.value; - if (!system.execute) { - _context2.next = 15; - break; - } - _context2.next = 15; - return system.execute(views); - case 15: - _context2.next = 10; - break; - case 17: - _context2.next = 22; - break; - case 19: - _context2.prev = 19; - _context2.t0 = _context2["catch"](8); - _iterator2.e(_context2.t0); - case 22: - _context2.prev = 22; - _iterator2.f(); - return _context2.finish(22); - case 25: - this.engine.endFrame(); - this.rendering = false; - case 27: - case "end": - return _context2.stop(); - } - } - }, _callee2, this, [[8, 19, 22, 25]]); - })); - function render() { - return _render.apply(this, arguments); - } - return render; - }() - }, { - key: "clear", - value: function clear(options) { - var _this = this; - if (this.inited) { - this.engine.clear(options); - } else { - this.pendings.unshift(function() { - _this.engine.clear(options); - _this.pendings.shift(); - }); - } - return this; - } - }, { - key: "setSize", - value: function setSize(_ref2) { - var width2 = _ref2.width, height = _ref2.height; - var canvas = this.engine.getCanvas(); - this.size = { - width: width2, - height - }; - canvas.width = width2; - canvas.height = height; - return this; - } - }, { - key: "getSize", - value: function getSize5() { - return this.size; - } - }]); - return Renderer2; -}(), _temp24), _descriptor40 = _applyDecoratedDescriptor(_class221.prototype, "engine", [_dec220], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor216 = _applyDecoratedDescriptor(_class221.prototype, "shaderModule", [_dec316], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor312 = _applyDecoratedDescriptor(_class221.prototype, "configService", [_dec413], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class221)) || _class45); - -// node_modules/@antv/g-webgpu/es/Scene.js -var import_inversify32 = __toModule(require_inversify()); -var _dec70; -var _class46; -var _temp25; -var Scene = (_dec70 = (0, import_inversify32.injectable)(), _dec70(_class46 = (_temp25 = /* @__PURE__ */ function() { - function Scene2() { - _classCallCheck(this, Scene2); - this.entities = []; - } - _createClass(Scene2, [{ - key: "getEntities", - value: function getEntities() { - return this.entities; - } - }, { - key: "addRenderable", - value: function addRenderable(renderable) { - this.addEntity(renderable.getEntity()); - return this; - } - }, { - key: "removeRenderable", - value: function removeRenderable(renderable) { - this.removeEntity(renderable.getEntity()); - return this; - } - }, { - key: "addLight", - value: function addLight() { - } - }, { - key: "addEntity", - value: function addEntity(entity) { - if (this.entities.indexOf(entity) === -1) { - this.entities.push(entity); - } - return this; - } - }, { - key: "removeEntity", - value: function removeEntity(entity) { - var index2 = this.entities.indexOf(entity); - this.entities.splice(index2, 1); - return this; - } - }]); - return Scene2; -}(), _temp25)) || _class46); - -// node_modules/@antv/g-webgpu/es/texture/Cache.js -var import_inversify33 = __toModule(require_inversify()); -var _dec71; -var _class47; -var _temp26; -var TextureCache = (_dec71 = (0, import_inversify33.injectable)(), _dec71(_class47 = (_temp26 = /* @__PURE__ */ function() { - function TextureCache2() { - _classCallCheck(this, TextureCache2); - this.cache = {}; - } - _createClass(TextureCache2, [{ - key: "get", - value: function get3(name) { - return this.cache[name]; - } - }, { - key: "set", - value: function set10(name, texture) { - this.cache[name] = texture; - } - }]); - return TextureCache2; -}(), _temp26)) || _class47); - -// node_modules/@antv/g-webgpu/es/texture/Texture2D.js -var import_regenerator19 = __toModule(require_regenerator()); -var import_inversify34 = __toModule(require_inversify()); -var _dec73; -var _dec221; -var _dec317; -var _class48; -var _class222; -var _descriptor41; -var _descriptor217; -var _temp27; -function ownKeys10(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread10(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys10(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys10(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -var Texture2D = (_dec73 = (0, import_inversify34.injectable)(), _dec221 = (0, import_inversify34.inject)(TextureCache), _dec317 = (0, import_inversify34.inject)(IDENTIFIER.RenderEngine), _dec73(_class48 = (_class222 = (_temp27 = /* @__PURE__ */ function() { - function Texture2D2() { - _classCallCheck(this, Texture2D2); - _initializerDefineProperty(this, "textureCache", _descriptor41, this); - _initializerDefineProperty(this, "engine", _descriptor217, this); - this.config = void 0; - this.loaded = false; - this.texture = void 0; - } - _createClass(Texture2D2, [{ - key: "setConfig", - value: function setConfig(config) { - this.config = config; - } - }, { - key: "isLoaded", - value: function isLoaded() { - return this.loaded; - } - }, { - key: "load", - value: function() { - var _load = _asyncToGenerator(/* @__PURE__ */ import_regenerator19.default.mark(function _callee() { - var _this = this; - return import_regenerator19.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!this.config.url) { - _context.next = 4; - break; - } - return _context.abrupt("return", new Promise(function(resolve, reject) { - var existed = _this.textureCache.get(_this.config.url); - if (existed) { - resolve(existed); - } else { - var image = new Image(); - image.crossOrigin = "Anonymous"; - image.src = _this.config.url; - image.onload = function() { - var texture = _this.engine.createTexture2D(_objectSpread10(_objectSpread10({}, _this.config), {}, { - data: image, - width: image.width, - height: image.height, - flipY: true - })); - _this.textureCache.set(_this.config.url, texture); - _this.texture = texture; - _this.loaded = true; - resolve(texture); - }; - image.onerror = function() { - reject(); - }; - } - })); - case 4: - this.loaded = true; - this.texture = this.engine.createTexture2D(this.config); - return _context.abrupt("return", this.texture); - case 7: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function load2() { - return _load.apply(this, arguments); - } - return load2; - }() - }]); - return Texture2D2; -}(), _temp27), _descriptor41 = _applyDecoratedDescriptor(_class222.prototype, "textureCache", [_dec221], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _descriptor217 = _applyDecoratedDescriptor(_class222.prototype, "engine", [_dec317], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class222)) || _class48); - -// node_modules/@antv/g-webgpu/es/View.js -var import_inversify35 = __toModule(require_inversify()); -var _dec74; -var _dec222; -var _dec318; -var _class49; -var _class223; -var _descriptor47; -var _temp28; -var View2 = (_dec74 = (0, import_inversify35.injectable)(), _dec222 = (0, import_inversify35.inject)(IDENTIFIER.Systems), _dec318 = (0, import_inversify35.named)(IDENTIFIER.RendererSystem), _dec74(_class49 = (_class223 = (_temp28 = /* @__PURE__ */ function() { - function View3() { - _classCallCheck(this, View3); - _initializerDefineProperty(this, "rendererSystem", _descriptor47, this); - this.camera = void 0; - this.scene = void 0; - this.viewport = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - this.clearColor = [1, 1, 1, 1]; - } - _createClass(View3, [{ - key: "getCamera", - value: function getCamera() { - return this.camera; - } - }, { - key: "getScene", - value: function getScene() { - return this.scene; - } - }, { - key: "getViewport", - value: function getViewport() { - return this.viewport; - } - }, { - key: "getClearColor", - value: function getClearColor() { - return this.clearColor; - } - }, { - key: "setCamera", - value: function setCamera(camera) { - this.camera = camera; - return this; - } - }, { - key: "setScene", - value: function setScene(scene) { - this.scene = scene; - return this; - } - }, { - key: "setViewport", - value: function setViewport(viewport) { - this.viewport = viewport; - return this; - } - }, { - key: "setClearColor", - value: function setClearColor(clearColor) { - this.clearColor = clearColor; - return this; - } - }, { - key: "pick", - value: function pick2(position2) { - return this.rendererSystem.pick(position2, this); - } - }]); - return View3; -}(), _temp28), _descriptor47 = _applyDecoratedDescriptor(_class223.prototype, "rendererSystem", [_dec222, _dec318], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class223)) || _class49); - -// node_modules/@antv/g-webgpu/es/World.js -var _dec75; -var _dec223; -var _class50; -var _class224; -var _descriptor48; -var _temp29; -function ownKeys11(object, enumerableOnly) { - var keys2 = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys2.push.apply(keys2, symbols); - } - return keys2; -} -function _objectSpread11(target) { - for (var i4 = 1; i4 < arguments.length; i4++) { - var source = arguments[i4] != null ? arguments[i4] : {}; - if (i4 % 2) { - ownKeys11(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys11(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -var World = (_dec75 = (0, import_inversify36.injectable)(), _dec223 = (0, import_inversify36.inject)(IDENTIFIER.ConfigService), _dec75(_class50 = (_class224 = (_temp29 = /* @__PURE__ */ function() { - function World2() { - _classCallCheck(this, World2); - _initializerDefineProperty(this, "configService", _descriptor48, this); - this.container = void 0; - } - _createClass(World2, [{ - key: "getEngine", - value: function() { - var _getEngine = _asyncToGenerator(/* @__PURE__ */ import_regenerator20.default.mark(function _callee() { - var engine, _this$configService$g, canvas, engineOptions; - return import_regenerator20.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - engine = this.container.get(IDENTIFIER.RenderEngine); - _this$configService$g = this.configService.get(), canvas = _this$configService$g.canvas, engineOptions = _this$configService$g.engineOptions; - _context.next = 4; - return engine.init(_objectSpread11({ - canvas: canvas || createCanvas(), - swapChainFormat: WebGPUConstants10.TextureFormat.BGRA8Unorm, - antialiasing: false - }, engineOptions)); - case 4: - return _context.abrupt("return", engine); - case 5: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - function getEngine2() { - return _getEngine.apply(this, arguments); - } - return getEngine2; - }() - }, { - key: "getTransformComponent", - value: function getTransformComponent(entity) { - var manager = this.container.get(IDENTIFIER.TransformComponentManager); - return manager.getComponentByEntity(entity); - } - }, { - key: "getMeshComponent", - value: function getMeshComponent(entity) { - var manager = this.container.get(IDENTIFIER.MeshComponentManager); - return manager.getComponentByEntity(entity); - } - }, { - key: "setConfig", - value: function setConfig(config) { - this.configService.set(config); - } - }, { - key: "setContainer", - value: function setContainer(container2) { - this.container = container2; - } - }, { - key: "getContainer", - value: function getContainer() { - return this.container; - } - }, { - key: "createEntity", - value: function createEntity2() { - return createEntity(); - } - }, { - key: "createScene", - value: function createScene() { - return this.container.get(Scene); - } - }, { - key: "createCamera", - value: function createCamera() { - return this.container.get(Camera); - } - }, { - key: "createView", - value: function createView() { - return this.container.get(View2); - } - }, { - key: "createRenderable", - value: function createRenderable(type2, config) { - var renderable = type2 ? this.container.getNamed(IDENTIFIER.Renderable, type2) : this.container.get(Renderable); - var entity = createEntity(); - renderable.setConfig(config || {}); - renderable.setEntity(entity); - return renderable; - } - }, { - key: "createGeometry", - value: function createGeometry(type2, config) { - var geometry35 = this.container.getNamed(IDENTIFIER.Geometry, type2); - var entity = createEntity(); - geometry35.setConfig(config || {}); - geometry35.setEntity(entity); - return geometry35.getComponent(); - } - }, { - key: "createMaterial", - value: function createMaterial(type2, config) { - var material = this.container.getNamed(IDENTIFIER.Material, type2); - var entity = createEntity(); - material.setConfig(config || {}); - material.setEntity(entity, type2); - return material.getComponent(); - } - }, { - key: "createTexture2D", - value: function createTexture2D(config) { - var texture = this.container.get(Texture2D); - texture.setConfig(config); - return texture; - } - }, { - key: "createBufferGeometry", - value: function createBufferGeometry(params) { - var geometrySystem = this.container.getNamed(IDENTIFIER.Systems, IDENTIFIER.GeometrySystem); - return geometrySystem.createBufferGeometry(params); - } - }, { - key: "createInstancedBufferGeometry", - value: function createInstancedBufferGeometry(params) { - var geometrySystem = this.container.getNamed(IDENTIFIER.Systems, IDENTIFIER.GeometrySystem); - return geometrySystem.createInstancedBufferGeometry(params); - } - }, { - key: "createShaderMaterial", - value: function createShaderMaterial(params) { - var materialSystem = this.container.getNamed(IDENTIFIER.Systems, IDENTIFIER.MaterialSystem); - return materialSystem.createShaderMaterial(params); - } - }, { - key: "createKernel", - value: function createKernel(precompiledBundle) { - var kernel = this.container.get(Kernel); - if (typeof precompiledBundle === "string") { - kernel.setBundle(JSON.parse(precompiledBundle)); - } else { - kernel.setBundle(precompiledBundle); - } - kernel.init(); - return kernel; - } - }, { - key: "createRenderer", - value: function createRenderer() { - var renderer = this.container.get(Renderer); - renderer.container = this.container; - renderer.init(); - return renderer; - } - }, { - key: "destroy", - value: function destroy() { - var systems = this.container.getAll(IDENTIFIER.Systems); - systems.forEach(function(system) { - if (system.tearDown) { - system.tearDown(); - } - }); - var engine = this.container.get(IDENTIFIER.RenderEngine); - engine.destroy(); - var interactor = this.container.get(IDENTIFIER.InteractorService); - interactor.destroy(); - } - }], [{ - key: "create", - value: function create8() { - var config = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - var worldContainer = createWorldContainer(); - var engineClazz = !navigator.gpu ? WebGLEngine : WebGPUEngine; - if (!worldContainer.isBound(IDENTIFIER.RenderEngine)) { - worldContainer.bind(IDENTIFIER.RenderEngine).to(engineClazz).inSingletonScope(); - } - worldContainer.bind(Renderer).toSelf(); - worldContainer.bind(Kernel).toSelf(); - worldContainer.bind(Renderable).toSelf(); - worldContainer.bind(View2).toSelf(); - worldContainer.bind(Camera).toSelf(); - worldContainer.bind(Scene).toSelf(); - worldContainer.bind(World2).toSelf(); - worldContainer.bind(TextureCache).toSelf(); - worldContainer.bind(Texture2D).toSelf(); - worldContainer.bind(IDENTIFIER.Geometry).to(Box2).whenTargetNamed(Geometry2.BOX); - worldContainer.bind(IDENTIFIER.Geometry).to(Sphere).whenTargetNamed(Geometry2.SPHERE); - worldContainer.bind(IDENTIFIER.Geometry).to(Plane2).whenTargetNamed(Geometry2.PLANE); - worldContainer.bind(IDENTIFIER.Geometry).to(Merged).whenTargetNamed(Geometry2.MERGED); - worldContainer.bind(IDENTIFIER.Material).to(Basic).whenTargetNamed(Material.BASIC); - worldContainer.bind(IDENTIFIER.Renderable).to(Point2).whenTargetNamed(Renderable.POINT); - worldContainer.bind(IDENTIFIER.Renderable).to(Line8).whenTargetNamed(Renderable.LINE); - worldContainer.bind(IDENTIFIER.Renderable).to(Grid).whenTargetNamed(Renderable.GRID); - var world = worldContainer.get(World2); - world.setContainer(worldContainer); - world.setConfig(config); - return world; - } - }]); - return World2; -}(), _temp29), _descriptor48 = _applyDecoratedDescriptor(_class224.prototype, "configService", [_dec223], { - configurable: true, - enumerable: true, - writable: true, - initializer: null -}), _class224)) || _class50); - -// node_modules/@antv/layout/es/util/gpu.js -var proccessToFunc2 = (value2, defaultV) => { - let func; - if (!value2) { - func = () => { - return defaultV || 1; - }; - } else if (isNumber3(value2)) { - func = () => { - return value2; - }; - } else { - func = value2; - } - return func; -}; -var buildTextureData = (nodes, edges) => { - const dataArray = []; - const nodeDict = []; - const mapIdPos = {}; - let i4 = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - const n3 = nodes[i4]; - mapIdPos[n3.id] = i4; - dataArray.push(n3.x); - dataArray.push(n3.y); - dataArray.push(0); - dataArray.push(0); - nodeDict.push([]); - } - for (i4 = 0; i4 < edges.length; i4++) { - const e4 = edges[i4]; - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - nodeDict[mapIdPos[source]].push(mapIdPos[target]); - nodeDict[mapIdPos[target]].push(mapIdPos[source]); - } - let maxEdgePerVetex = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - const offset = dataArray.length; - const dests = nodeDict[i4]; - const len5 = dests.length; - dataArray[i4 * 4 + 2] = offset; - dataArray[i4 * 4 + 3] = dests.length; - maxEdgePerVetex = Math.max(maxEdgePerVetex, dests.length); - for (let j4 = 0; j4 < len5; ++j4) { - const dest = dests[j4]; - dataArray.push(+dest); - } - } - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - return { - maxEdgePerVetex, - array: new Float32Array(dataArray) - }; -}; -var buildTextureDataWithTwoEdgeAttr = (nodes, edges, attrs1, attrs2) => { - const dataArray = []; - const nodeDict = []; - const mapIdPos = {}; - let i4 = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - const n3 = nodes[i4]; - mapIdPos[n3.id] = i4; - dataArray.push(n3.x); - dataArray.push(n3.y); - dataArray.push(0); - dataArray.push(0); - nodeDict.push([]); - } - for (i4 = 0; i4 < edges.length; i4++) { - const e4 = edges[i4]; - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - nodeDict[mapIdPos[source]].push(mapIdPos[target]); - nodeDict[mapIdPos[source]].push(attrs1(e4)); - nodeDict[mapIdPos[source]].push(attrs2(e4)); - nodeDict[mapIdPos[source]].push(0); - nodeDict[mapIdPos[target]].push(mapIdPos[source]); - nodeDict[mapIdPos[target]].push(attrs1(e4)); - nodeDict[mapIdPos[target]].push(attrs2(e4)); - nodeDict[mapIdPos[target]].push(0); - } - let maxEdgePerVetex = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - const offset = dataArray.length; - const dests = nodeDict[i4]; - const len5 = dests.length; - dataArray[i4 * 4 + 2] = offset + 1048576 * len5 / 4; - dataArray[i4 * 4 + 3] = 0; - maxEdgePerVetex = Math.max(maxEdgePerVetex, len5 / 4); - for (let j4 = 0; j4 < len5; ++j4) { - const dest = dests[j4]; - dataArray.push(+dest); - } - } - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - return { - maxEdgePerVetex, - array: new Float32Array(dataArray) - }; -}; -var attributesToTextureData = (attributeNames, items) => { - const dataArray = []; - const attributeNum = attributeNames.length; - const attributteStringMap = {}; - items.forEach((item) => { - attributeNames.forEach((name, i4) => { - if (attributteStringMap[item[name]] === void 0) { - attributteStringMap[item[name]] = Object.keys(attributteStringMap).length; - } - dataArray.push(attributteStringMap[item[name]]); - if (i4 === attributeNum - 1) { - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - } - }); - }); - return { - array: new Float32Array(dataArray), - count: Object.keys(attributteStringMap).length - }; -}; -var arrayToTextureData = (valueArrays) => { - const dataArray = []; - const attributeNum = valueArrays.length; - const itemNum = valueArrays[0].length; - for (let j4 = 0; j4 < itemNum; j4++) { - valueArrays.forEach((valueArray, i4) => { - dataArray.push(valueArray[j4]); - if (i4 === attributeNum - 1) { - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - } - }); - } - return new Float32Array(dataArray); -}; - -// node_modules/@antv/layout/es/layout/gpu/fruchtermanShader.js -var fruchtermanBundle = `{"shaders":{"WGSL":"import \\"GLSL.std.450\\" as std;\\n\\n\\n# var gWebGPUDebug : bool = false;\\n# var gWebGPUDebugOutput : vec4 = vec4(0.0);\\n\\n[[builtin global_invocation_id]] var globalInvocationID : vec3;\\n# [[builtin work_group_size]] var workGroupSize : vec3;\\n# [[builtin work_group_id]] var workGroupID : vec3;\\n[[builtin local_invocation_id]] var localInvocationID : vec3;\\n# [[builtin num_work_groups]] var numWorkGroups : vec3;\\n[[builtin local_invocation_idx]] var localInvocationIndex : u32;\\n\\ntype GWebGPUParams = [[block]] struct {\\n [[offset 0]] u_K : f32;\\n [[offset 4]] u_K2 : f32;\\n [[offset 8]] u_Center : vec2;\\n [[offset 16]] u_Gravity : f32;\\n [[offset 20]] u_ClusterGravity : f32;\\n [[offset 24]] u_Speed : f32;\\n [[offset 28]] u_MaxDisplace : f32;\\n [[offset 32]] u_Clustering : f32;\\n};\\n[[binding 0, set 0]] var gWebGPUUniformParams : GWebGPUParams;\\ntype GWebGPUBuffer0 = [[block]] struct {\\n [[offset 0]] u_Data : [[stride 16]] array>;\\n};\\n[[binding 1, set 0]] var gWebGPUBuffer0 : GWebGPUBuffer0;\\ntype GWebGPUBuffer1 = [[block]] struct {\\n [[offset 0]] u_AttributeArray : [[stride 16]] array>;\\n};\\n[[binding 2, set 0]] var gWebGPUBuffer1 : GWebGPUBuffer1;\\ntype GWebGPUBuffer2 = [[block]] struct {\\n [[offset 0]] u_ClusterCenters : [[stride 16]] array>;\\n};\\n[[binding 3, set 0]] var gWebGPUBuffer2 : GWebGPUBuffer2;\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nfn calcRepulsive(i : i32, currentNode : vec4) -> vec2 {var dx : f32 = 0.0;\\nvar dy : f32 = 0.0;\\nfor (var j : i32 = 0; j < __DefineValuePlaceholder__VERTEX_COUNT; j = j + 1) {if (i != j) {var nextNode : vec4 = gWebGPUBuffer0.u_Data[j];\\nvar xDist : f32 = currentNode.x - nextNode.x;\\nvar yDist : f32 = currentNode.y - nextNode.y;\\nvar dist : f32 = ((xDist * xDist) + (yDist * yDist)) + 0.01;\\nvar param : f32 = gWebGPUUniformParams.u_K2 / dist;\\nif (dist > 0.0) {dx = dx + param * xDist;\\ndy = dy + param * yDist;\\nif ((xDist == 0.0) && (yDist == 0.0)) {var sign : f32 = select(1.0, -1.0, i < j);\\ndx = dx + param * std::sign;\\ndy = dy + param * std::sign;}}}}\\nreturn vec2(dx, dy);}\\nfn calcGravity(currentNode : vec4, nodeAttributes : vec4) -> vec2 {var dx : f32 = 0.0;\\nvar dy : f32 = 0.0;\\nvar vx : f32 = currentNode.x - gWebGPUUniformParams.u_Center.x;\\nvar vy : f32 = currentNode.y - gWebGPUUniformParams.u_Center.y;\\nvar gf : f32 = (0.01 * gWebGPUUniformParams.u_K) * gWebGPUUniformParams.u_Gravity;\\ndx = gf * vx;\\ndy = gf * vy;\\nif (gWebGPUUniformParams.u_Clustering == 1.0) {var clusterIdx : i32 = i32(nodeAttributes.x);\\nvar center : vec4 = gWebGPUBuffer2.u_ClusterCenters[clusterIdx];\\nvar cvx : f32 = currentNode.x - center.x;\\nvar cvy : f32 = currentNode.y - center.y;\\nvar dist : f32 = std::sqrt((cvx * cvx) + (cvy * cvy)) + 0.01;\\nvar parma : f32 = (gWebGPUUniformParams.u_K * gWebGPUUniformParams.u_ClusterGravity) / dist;\\ndx = dx + parma * cvx;\\ndy = dy + parma * cvy;}\\nreturn vec2(dx, dy);}\\nfn calcAttractive(i : i32, currentNode : vec4) -> vec2 {var dx : f32 = 0.0;\\nvar dy : f32 = 0.0;\\nvar arr_offset : i32 = i32(std::floor(currentNode.z + 0.5));\\nvar length : i32 = i32(std::floor(currentNode.w + 0.5));\\nvar node_buffer : vec4;\\nfor (var p : i32 = 0; p < __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX; p = p + 1) {if (p >= length) {break;}\\nvar arr_idx : i32 = arr_offset + i32(p);\\nvar buf_offset : i32 = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = gWebGPUBuffer0.u_Data[i32(arr_idx / 4)];}\\nvar float_j : f32 = select(node_buffer.x, select(node_buffer.y, select(node_buffer.z, node_buffer.w, buf_offset == 2), buf_offset == 1), buf_offset == 0);\\nvar nextNode : vec4 = gWebGPUBuffer0.u_Data[i32(float_j)];\\nvar xDist : f32 = currentNode.x - nextNode.x;\\nvar yDist : f32 = currentNode.y - nextNode.y;\\nvar dist : f32 = std::sqrt((xDist * xDist) + (yDist * yDist)) + 0.01;\\nvar attractiveF : f32 = dist / gWebGPUUniformParams.u_K;\\nif (dist > 0.0) {dx = dx - xDist * attractiveF;\\ndy = dy - yDist * attractiveF;\\nif ((xDist == 0.0) && (yDist == 0.0)) {var sign : f32 = select(1.0, -1.0, i < i32(float_j));\\ndx = dx - std::sign * attractiveF;\\ndy = dy - std::sign * attractiveF;}}}\\nreturn vec2(dx, dy);}\\nfn main() -> void {var i : i32 = globalInvocationID.x;\\nvar currentNode : vec4 = gWebGPUBuffer0.u_Data[i];\\nvar dx : f32 = 0.0;\\nvar dy : f32 = 0.0;\\nif (i >= __DefineValuePlaceholder__VERTEX_COUNT) {gWebGPUBuffer0.u_Data[i] = currentNode;\\nreturn ;}\\nvar nodeAttributes : vec4 = gWebGPUBuffer1.u_AttributeArray[i];\\nif ((nodeAttributes.y != 0.0) && (nodeAttributes.z != 0.0)) {gWebGPUBuffer0.u_Data[i] = vec4(nodeAttributes.y, nodeAttributes.z, currentNode.z, currentNode.w);\\nreturn ;}\\nvar repulsive : vec2 = calcRepulsive(i, currentNode);\\ndx = dx + repulsive.x;\\ndy = dy + repulsive.y;\\nvar attractive : vec2 = calcAttractive(i, currentNode);\\ndx = dx + attractive.x;\\ndy = dy + attractive.y;\\nvar gravity : vec2 = calcGravity(currentNode, nodeAttributes);\\ndx = dx - gravity.x;\\ndy = dy - gravity.y;\\ndx = dx * gWebGPUUniformParams.u_Speed;\\ndy = dy * gWebGPUUniformParams.u_Speed;\\nvar distLength : f32 = std::sqrt((dx * dx) + (dy * dy));\\nif (distLength > 0.0) {var limitedDist : f32 = std::min(gWebGPUUniformParams.u_MaxDisplace * gWebGPUUniformParams.u_Speed, distLength);\\ngWebGPUBuffer0.u_Data[i] = vec4(currentNode.x + ((dx / distLength) * limitedDist), currentNode.y + ((dy / distLength) * limitedDist), currentNode.z, currentNode.w);}\\nreturn;}\\n\\nentry_point compute as \\"main\\" = main;\\n","GLSL450":"\\n\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\nivec3 globalInvocationID = ivec3(gl_GlobalInvocationID);\\nivec3 workGroupSize = ivec3(1,1,1);\\nivec3 workGroupID = ivec3(gl_WorkGroupID);\\nivec3 localInvocationID = ivec3(gl_LocalInvocationID);\\nivec3 numWorkGroups = ivec3(gl_NumWorkGroups);\\nint localInvocationIndex = int(gl_LocalInvocationIndex);\\n\\nlayout(std140, set = 0, binding = 0) uniform GWebGPUParams {\\n float u_K;\\n float u_K2;\\n vec2 u_Center;\\n float u_Gravity;\\n float u_ClusterGravity;\\n float u_Speed;\\n float u_MaxDisplace;\\n float u_Clustering;\\n} gWebGPUUniformParams;\\nlayout(std430, set = 0, binding = 1) buffer GWebGPUBuffer0 {\\n vec4 u_Data[];\\n} gWebGPUBuffer0;\\n\\nlayout(std430, set = 0, binding = 2) buffer readonly GWebGPUBuffer1 {\\n vec4 u_AttributeArray[];\\n} gWebGPUBuffer1;\\n\\nlayout(std430, set = 0, binding = 3) buffer readonly GWebGPUBuffer2 {\\n vec4 u_ClusterCenters[];\\n} gWebGPUBuffer2;\\n\\n\\n\\n#define MAX_EDGE_PER_VERTEX __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\nlayout (\\n local_size_x = 1,\\n local_size_y = 1,\\n local_size_z = 1\\n) in;\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nvec2 calcRepulsive(int i, vec4 currentNode) {float dx = 0.0;\\nfloat dy = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {if (i != j) {vec4 nextNode = gWebGPUBuffer0.u_Data[j];\\nfloat xDist = currentNode.x - nextNode.x;\\nfloat yDist = currentNode.y - nextNode.y;\\nfloat dist = ((xDist * xDist) + (yDist * yDist)) + 0.01;\\nfloat param = gWebGPUUniformParams.u_K2 / dist;\\nif (dist > 0.0) {dx += param * xDist;\\ndy += param * yDist;\\nif ((xDist == 0.0) && (yDist == 0.0)) {float sign = (i < j) ? (1.0) : (-1.0);\\ndx += param * sign;\\ndy += param * sign;}}}}\\nreturn vec2(dx, dy);}\\nvec2 calcGravity(vec4 currentNode, vec4 nodeAttributes) {float dx = 0.0;\\nfloat dy = 0.0;\\nfloat vx = currentNode.x - gWebGPUUniformParams.u_Center.x;\\nfloat vy = currentNode.y - gWebGPUUniformParams.u_Center.y;\\nfloat gf = (0.01 * gWebGPUUniformParams.u_K) * gWebGPUUniformParams.u_Gravity;\\ndx = gf * vx;\\ndy = gf * vy;\\nif (gWebGPUUniformParams.u_Clustering == 1.0) {int clusterIdx = int(nodeAttributes.x);\\nvec4 center = gWebGPUBuffer2.u_ClusterCenters[clusterIdx];\\nfloat cvx = currentNode.x - center.x;\\nfloat cvy = currentNode.y - center.y;\\nfloat dist = sqrt((cvx * cvx) + (cvy * cvy)) + 0.01;\\nfloat parma = (gWebGPUUniformParams.u_K * gWebGPUUniformParams.u_ClusterGravity) / dist;\\ndx += parma * cvx;\\ndy += parma * cvy;}\\nreturn vec2(dx, dy);}\\nvec2 calcAttractive(int i, vec4 currentNode) {float dx = 0.0;\\nfloat dy = 0.0;\\nint arr_offset = int(floor(currentNode.z + 0.5));\\nint length = int(floor(currentNode.w + 0.5));\\nvec4 node_buffer;\\nfor (int p = 0; p < MAX_EDGE_PER_VERTEX; p++) {if (p >= length) {break;}\\nint arr_idx = arr_offset + int(p);\\nint buf_offset = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = gWebGPUBuffer0.u_Data[int(arr_idx / 4)];}\\nfloat float_j = (buf_offset == 0) ? (node_buffer.x) : ((buf_offset == 1) ? (node_buffer.y) : ((buf_offset == 2) ? (node_buffer.z) : (node_buffer.w)));\\nvec4 nextNode = gWebGPUBuffer0.u_Data[int(float_j)];\\nfloat xDist = currentNode.x - nextNode.x;\\nfloat yDist = currentNode.y - nextNode.y;\\nfloat dist = sqrt((xDist * xDist) + (yDist * yDist)) + 0.01;\\nfloat attractiveF = dist / gWebGPUUniformParams.u_K;\\nif (dist > 0.0) {dx -= xDist * attractiveF;\\ndy -= yDist * attractiveF;\\nif ((xDist == 0.0) && (yDist == 0.0)) {float sign = (i < int(float_j)) ? (1.0) : (-1.0);\\ndx -= sign * attractiveF;\\ndy -= sign * attractiveF;}}}\\nreturn vec2(dx, dy);}\\nvoid main() {int i = globalInvocationID.x;\\nvec4 currentNode = gWebGPUBuffer0.u_Data[i];\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nif (i >= VERTEX_COUNT) {gWebGPUBuffer0.u_Data[i] = currentNode;\\nreturn ;}\\nvec4 nodeAttributes = gWebGPUBuffer1.u_AttributeArray[i];\\nif ((nodeAttributes.y != 0.0) && (nodeAttributes.z != 0.0)) {gWebGPUBuffer0.u_Data[i] = vec4(nodeAttributes.y, nodeAttributes.z, currentNode.z, currentNode.w);\\nreturn ;}\\nvec2 repulsive = calcRepulsive(i, currentNode);\\ndx += repulsive.x;\\ndy += repulsive.y;\\nvec2 attractive = calcAttractive(i, currentNode);\\ndx += attractive.x;\\ndy += attractive.y;\\nvec2 gravity = calcGravity(currentNode, nodeAttributes);\\ndx -= gravity.x;\\ndy -= gravity.y;\\ndx *= gWebGPUUniformParams.u_Speed;\\ndy *= gWebGPUUniformParams.u_Speed;\\nfloat distLength = sqrt((dx * dx) + (dy * dy));\\nif (distLength > 0.0) {float limitedDist = min(gWebGPUUniformParams.u_MaxDisplace * gWebGPUUniformParams.u_Speed, distLength);\\ngWebGPUBuffer0.u_Data[i] = vec4(currentNode.x + ((dx / distLength) * limitedDist), currentNode.y + ((dy / distLength) * limitedDist), currentNode.z, currentNode.w);}}\\n","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define MAX_EDGE_PER_VERTEX __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform float u_K;\\nuniform float u_K2;\\nuniform vec2 u_Center;\\nuniform float u_Gravity;\\nuniform float u_ClusterGravity;\\nuniform float u_Speed;\\nuniform float u_MaxDisplace;\\nuniform float u_Clustering;\\nuniform sampler2D u_AttributeArray;\\nuniform vec2 u_AttributeArraySize;\\nvec4 getDatau_AttributeArray(vec2 address2D) {\\n return vec4(texture2D(u_AttributeArray, address2D).rgba);\\n}\\nvec4 getDatau_AttributeArray(float address1D) {\\n return getDatau_AttributeArray(addrTranslation_1Dto2D(address1D, u_AttributeArraySize));\\n}\\nvec4 getDatau_AttributeArray(int address1D) {\\n return getDatau_AttributeArray(float(address1D));\\n}\\nuniform sampler2D u_ClusterCenters;\\nuniform vec2 u_ClusterCentersSize;\\nvec4 getDatau_ClusterCenters(vec2 address2D) {\\n return vec4(texture2D(u_ClusterCenters, address2D).rgba);\\n}\\nvec4 getDatau_ClusterCenters(float address1D) {\\n return getDatau_ClusterCenters(addrTranslation_1Dto2D(address1D, u_ClusterCentersSize));\\n}\\nvec4 getDatau_ClusterCenters(int address1D) {\\n return getDatau_ClusterCenters(float(address1D));\\n}\\nvec2 calcRepulsive(int i, vec4 currentNode) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {if (i != j) {vec4 nextNode = getDatau_Data(j);\\nfloat xDist = currentNode.x - nextNode.x;\\nfloat yDist = currentNode.y - nextNode.y;\\nfloat dist = ((xDist * xDist) + (yDist * yDist)) + 0.01;\\nfloat param = u_K2 / dist;\\nif (dist > 0.0) {dx += param * xDist;\\ndy += param * yDist;\\nif ((xDist == 0.0) && (yDist == 0.0)) {float sign = (i < j) ? (1.0) : (-1.0);\\ndx += param * sign;\\ndy += param * sign;}}}}\\nreturn vec2(dx, dy);}\\nvec2 calcGravity(vec4 currentNode, vec4 nodeAttributes) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nfloat vx = currentNode.x - u_Center.x;\\nfloat vy = currentNode.y - u_Center.y;\\nfloat gf = (0.01 * u_K) * u_Gravity;\\ndx = gf * vx;\\ndy = gf * vy;\\nif (u_Clustering == 1.0) {int clusterIdx = int(nodeAttributes.x);\\nvec4 center = getDatau_ClusterCenters(clusterIdx);\\nfloat cvx = currentNode.x - center.x;\\nfloat cvy = currentNode.y - center.y;\\nfloat dist = sqrt((cvx * cvx) + (cvy * cvy)) + 0.01;\\nfloat parma = (u_K * u_ClusterGravity) / dist;\\ndx += parma * cvx;\\ndy += parma * cvy;}\\nreturn vec2(dx, dy);}\\nvec2 calcAttractive(int i, vec4 currentNode) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nint arr_offset = int(floor(currentNode.z + 0.5));\\nint length = int(floor(currentNode.w + 0.5));\\nvec4 node_buffer;\\nfor (int p = 0; p < MAX_EDGE_PER_VERTEX; p++) {if (p >= length) {break;}\\nint arr_idx = arr_offset + int(p);\\nint buf_offset = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = getDatau_Data(int(arr_idx / 4));}\\nfloat float_j = (buf_offset == 0) ? (node_buffer.x) : ((buf_offset == 1) ? (node_buffer.y) : ((buf_offset == 2) ? (node_buffer.z) : (node_buffer.w)));\\nvec4 nextNode = getDatau_Data(int(float_j));\\nfloat xDist = currentNode.x - nextNode.x;\\nfloat yDist = currentNode.y - nextNode.y;\\nfloat dist = sqrt((xDist * xDist) + (yDist * yDist)) + 0.01;\\nfloat attractiveF = dist / u_K;\\nif (dist > 0.0) {dx -= xDist * attractiveF;\\ndy -= yDist * attractiveF;\\nif ((xDist == 0.0) && (yDist == 0.0)) {float sign = (i < int(float_j)) ? (1.0) : (-1.0);\\ndx -= sign * attractiveF;\\ndy -= sign * attractiveF;}}}\\nreturn vec2(dx, dy);}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint i = globalInvocationID.x;\\nvec4 currentNode = getDatau_Data(i);\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nif (i >= VERTEX_COUNT) {gl_FragColor = vec4(currentNode);\\nreturn ;}\\nvec4 nodeAttributes = getDatau_AttributeArray(i);\\nif ((nodeAttributes.y != 0.0) && (nodeAttributes.z != 0.0)) {gl_FragColor = vec4(vec4(nodeAttributes.y, nodeAttributes.z, currentNode.z, currentNode.w));\\nreturn ;}\\nvec2 repulsive = calcRepulsive(i, currentNode);\\ndx += repulsive.x;\\ndy += repulsive.y;\\nvec2 attractive = calcAttractive(i, currentNode);\\ndx += attractive.x;\\ndy += attractive.y;\\nvec2 gravity = calcGravity(currentNode, nodeAttributes);\\ndx -= gravity.x;\\ndy -= gravity.y;\\ndx *= u_Speed;\\ndy *= u_Speed;\\nfloat distLength = sqrt((dx * dx) + (dy * dy));\\nif (distLength > 0.0) {float limitedDist = min(u_MaxDisplace * u_Speed, distLength);\\ngl_FragColor = vec4(vec4(currentNode.x + ((dx / distLength) * limitedDist), currentNode.y + ((dy / distLength) * limitedDist), currentNode.z, currentNode.w));}if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"MAX_EDGE_PER_VERTEX","type":"Float","runtime":true},{"name":"VERTEX_COUNT","type":"Float","runtime":true}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]},{"name":"u_K","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_K2","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Center","type":"vec2","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Gravity","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_ClusterGravity","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Speed","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_MaxDisplace","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Clustering","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_AttributeArray","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_ClusterCenters","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_Data","size":[1,1],"length":1},"needPingpong":true}}`; -var clusterBundle = `{"shaders":{"WGSL":"import \\"GLSL.std.450\\" as std;\\n\\n\\n# var gWebGPUDebug : bool = false;\\n# var gWebGPUDebugOutput : vec4 = vec4(0.0);\\n\\n[[builtin global_invocation_id]] var globalInvocationID : vec3;\\n# [[builtin work_group_size]] var workGroupSize : vec3;\\n# [[builtin work_group_id]] var workGroupID : vec3;\\n[[builtin local_invocation_id]] var localInvocationID : vec3;\\n# [[builtin num_work_groups]] var numWorkGroups : vec3;\\n[[builtin local_invocation_idx]] var localInvocationIndex : u32;\\n\\n\\ntype GWebGPUBuffer0 = [[block]] struct {\\n [[offset 0]] u_Data : [[stride 16]] array>;\\n};\\n[[binding 0, set 0]] var gWebGPUBuffer0 : GWebGPUBuffer0;\\ntype GWebGPUBuffer1 = [[block]] struct {\\n [[offset 0]] u_NodeAttributes : [[stride 16]] array>;\\n};\\n[[binding 1, set 0]] var gWebGPUBuffer1 : GWebGPUBuffer1;\\ntype GWebGPUBuffer2 = [[block]] struct {\\n [[offset 0]] u_ClusterCenters : [[stride 16]] array>;\\n};\\n[[binding 2, set 0]] var gWebGPUBuffer2 : GWebGPUBuffer2;\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nfn main() -> void {var i : i32 = globalInvocationID.x;\\nvar center : vec4 = gWebGPUBuffer2.u_ClusterCenters[i];\\nvar sumx : f32 = 0.0;\\nvar sumy : f32 = 0.0;\\nvar count : f32 = 0.0;\\nfor (var j : i32 = 0; j < __DefineValuePlaceholder__VERTEX_COUNT; j = j + 1) {var attributes : vec4 = gWebGPUBuffer1.u_NodeAttributes[j];\\nvar clusterIdx : i32 = i32(attributes.x);\\nvar vertex : vec4 = gWebGPUBuffer0.u_Data[j];\\nif (clusterIdx == i) {sumx = sumx + vertex.x;\\nsumy = sumy + vertex.y;\\ncount = count + 1.0;}}\\ngWebGPUBuffer2.u_ClusterCenters[i] = vec4(sumx / count, sumy / count, count, i);\\nreturn;}\\n\\nentry_point compute as \\"main\\" = main;\\n","GLSL450":"\\n\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\nivec3 globalInvocationID = ivec3(gl_GlobalInvocationID);\\nivec3 workGroupSize = ivec3(1,1,1);\\nivec3 workGroupID = ivec3(gl_WorkGroupID);\\nivec3 localInvocationID = ivec3(gl_LocalInvocationID);\\nivec3 numWorkGroups = ivec3(gl_NumWorkGroups);\\nint localInvocationIndex = int(gl_LocalInvocationIndex);\\n\\n\\nlayout(std430, set = 0, binding = 0) buffer readonly GWebGPUBuffer0 {\\n vec4 u_Data[];\\n} gWebGPUBuffer0;\\n\\nlayout(std430, set = 0, binding = 1) buffer readonly GWebGPUBuffer1 {\\n vec4 u_NodeAttributes[];\\n} gWebGPUBuffer1;\\n\\nlayout(std430, set = 0, binding = 2) buffer GWebGPUBuffer2 {\\n vec4 u_ClusterCenters[];\\n} gWebGPUBuffer2;\\n\\n\\n\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n#define CLUSTER_COUNT __DefineValuePlaceholder__CLUSTER_COUNT\\nlayout (\\n local_size_x = 1,\\n local_size_y = 1,\\n local_size_z = 1\\n) in;\\n\\n\\n\\nvoid main() {int i = globalInvocationID.x;\\nvec4 center = gWebGPUBuffer2.u_ClusterCenters[i];\\nfloat sumx = 0.0;\\nfloat sumy = 0.0;\\nfloat count = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {vec4 attributes = gWebGPUBuffer1.u_NodeAttributes[j];\\nint clusterIdx = int(attributes.x);\\nvec4 vertex = gWebGPUBuffer0.u_Data[j];\\nif (clusterIdx == i) {sumx += vertex.x;\\nsumy += vertex.y;\\ncount += 1.0;}}\\ngWebGPUBuffer2.u_ClusterCenters[i] = vec4(sumx / count, sumy / count, count, i);}\\n","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n#define CLUSTER_COUNT __DefineValuePlaceholder__CLUSTER_COUNT\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform sampler2D u_NodeAttributes;\\nuniform vec2 u_NodeAttributesSize;\\nvec4 getDatau_NodeAttributes(vec2 address2D) {\\n return vec4(texture2D(u_NodeAttributes, address2D).rgba);\\n}\\nvec4 getDatau_NodeAttributes(float address1D) {\\n return getDatau_NodeAttributes(addrTranslation_1Dto2D(address1D, u_NodeAttributesSize));\\n}\\nvec4 getDatau_NodeAttributes(int address1D) {\\n return getDatau_NodeAttributes(float(address1D));\\n}\\nuniform sampler2D u_ClusterCenters;\\nuniform vec2 u_ClusterCentersSize;\\nvec4 getDatau_ClusterCenters(vec2 address2D) {\\n return vec4(texture2D(u_ClusterCenters, address2D).rgba);\\n}\\nvec4 getDatau_ClusterCenters(float address1D) {\\n return getDatau_ClusterCenters(addrTranslation_1Dto2D(address1D, u_ClusterCentersSize));\\n}\\nvec4 getDatau_ClusterCenters(int address1D) {\\n return getDatau_ClusterCenters(float(address1D));\\n}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint i = globalInvocationID.x;\\nvec4 center = getDatau_ClusterCenters(i);\\nfloat sumx = 0.0;\\nfloat sumy = 0.0;\\nfloat count = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {vec4 attributes = getDatau_NodeAttributes(j);\\nint clusterIdx = int(attributes.x);\\nvec4 vertex = getDatau_Data(j);\\nif (clusterIdx == i) {sumx += vertex.x;\\nsumy += vertex.y;\\ncount += 1.0;}}\\ngl_FragColor = vec4(vec4(sumx / count, sumy / count, count, i));if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"VERTEX_COUNT","type":"Float","runtime":true},{"name":"CLUSTER_COUNT","type":"Float","runtime":true}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_NodeAttributes","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_ClusterCenters","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_ClusterCenters","size":[1,1],"length":1},"needPingpong":true}}`; - -// node_modules/@antv/layout/es/layout/gpu/fruchterman.js -var __awaiter4 = function(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve) { - resolve(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e4) { - reject(e4); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var FruchtermanGPULayout = class extends Base3 { - constructor(options) { - super(); - this.maxIteration = 1e3; - this.gravity = 10; - this.speed = 1; - this.clustering = false; - this.clusterField = "cluster"; - this.clusterGravity = 10; - this.workerEnabled = false; - this.nodes = []; - this.edges = []; - this.width = 300; - this.height = 300; - this.nodeMap = {}; - this.nodeIdxMap = {}; - this.updateCfg(options); - } - getDefaultCfg() { - return { - maxIteration: 1e3, - gravity: 10, - speed: 1, - clustering: false, - clusterGravity: 10 - }; - } - execute() { - return __awaiter4(this, void 0, void 0, function* () { - const self2 = this; - const nodes = self2.nodes; - if (!nodes || nodes.length === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (!self2.center) { - self2.center = [self2.width / 2, self2.height / 2]; - } - const center2 = self2.center; - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - const nodeMap = {}; - const nodeIdxMap = {}; - nodes.forEach((node, i4) => { - if (!isNumber3(node.x)) - node.x = Math.random() * this.width; - if (!isNumber3(node.y)) - node.y = Math.random() * this.height; - nodeMap[node.id] = node; - nodeIdxMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - self2.nodeIdxMap = nodeIdxMap; - yield self2.run(); - }); - } - executeWithWorker(canvas, ctx4) { - return __awaiter4(this, void 0, void 0, function* () { - const self2 = this; - const nodes = self2.nodes; - const center2 = self2.center; - if (!nodes || nodes.length === 0) { - return; - } - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - return; - } - const nodeMap = {}; - const nodeIdxMap = {}; - nodes.forEach((node, i4) => { - if (!isNumber3(node.x)) - node.x = Math.random() * this.width; - if (!isNumber3(node.y)) - node.y = Math.random() * this.height; - nodeMap[node.id] = node; - nodeIdxMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - self2.nodeIdxMap = nodeIdxMap; - yield self2.run(canvas, ctx4); - }); - } - run(canvas, ctx4) { - return __awaiter4(this, void 0, void 0, function* () { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges; - const maxIteration = self2.maxIteration; - const center2 = self2.center; - const area2 = self2.height * self2.width; - let maxDisplace = Math.sqrt(area2) / 10; - const k22 = area2 / (nodes.length + 1); - const k4 = Math.sqrt(k22); - const speed = self2.speed; - const clustering = self2.clustering; - const { array: attributeArray, count: clusterCount } = attributesToTextureData([self2.clusterField], nodes); - nodes.forEach((node, i4) => { - let fx = 0; - let fy = 0; - if (isNumber3(node.fx) && isNumber3(node.fy)) { - fx = node.fx || 1e-3; - fy = node.fy || 1e-3; - } - attributeArray[4 * i4 + 1] = fx; - attributeArray[4 * i4 + 2] = fy; - }); - const numParticles = nodes.length; - const { maxEdgePerVetex, array: nodesEdgesArray } = buildTextureData(nodes, edges); - const workerEnabled = self2.workerEnabled; - let world; - if (workerEnabled) { - world = World.create({ - canvas, - engineOptions: { - supportCompute: true - } - }); - } else { - world = World.create({ - engineOptions: { - supportCompute: true - } - }); - } - const onLayoutEnd = self2.onLayoutEnd; - const clusterCenters = []; - for (let i4 = 0; i4 < clusterCount; i4++) { - clusterCenters.push(0, 0, 0, 0); - } - const kernelFruchterman = world.createKernel(fruchtermanBundle).setDispatch([numParticles, 1, 1]).setBinding({ - u_Data: nodesEdgesArray, - u_K: k4, - u_K2: k22, - u_Gravity: self2.gravity, - u_ClusterGravity: self2.clusterGravity || self2.gravity || 1, - u_Speed: speed, - u_MaxDisplace: maxDisplace, - u_Clustering: clustering ? 1 : 0, - u_Center: center2, - u_AttributeArray: attributeArray, - u_ClusterCenters: clusterCenters, - MAX_EDGE_PER_VERTEX: maxEdgePerVetex, - VERTEX_COUNT: numParticles - }); - let kernelCluster; - if (clustering) { - kernelCluster = world.createKernel(clusterBundle).setDispatch([clusterCount, 1, 1]).setBinding({ - u_Data: nodesEdgesArray, - u_NodeAttributes: attributeArray, - u_ClusterCenters: clusterCenters, - VERTEX_COUNT: numParticles, - CLUSTER_COUNT: clusterCount - }); - } - const execute = () => __awaiter4(this, void 0, void 0, function* () { - for (let i4 = 0; i4 < maxIteration; i4++) { - yield kernelFruchterman.execute(); - if (clustering) { - kernelCluster.setBinding({ - u_Data: kernelFruchterman - }); - yield kernelCluster.execute(); - kernelFruchterman.setBinding({ - u_ClusterCenters: kernelCluster - }); - } - kernelFruchterman.setBinding({ - u_MaxDisplace: maxDisplace *= 0.99 - }); - } - const finalParticleData = yield kernelFruchterman.getOutput(); - if (canvas) { - ctx4.postMessage({ - type: LAYOUT_MESSAGE.GPUEND, - vertexEdgeData: finalParticleData - }); - } else { - nodes.forEach((node, i4) => { - const x6 = finalParticleData[4 * i4]; - const y5 = finalParticleData[4 * i4 + 1]; - node.x = x6; - node.y = y5; - }); - } - if (onLayoutEnd) - onLayoutEnd(); - }); - yield execute(); - }); - } - getType() { - return "fruchterman-gpu"; - } -}; - -// node_modules/@antv/layout/es/layout/gpu/gForceShader.js -var gForceBundle = `{"shaders":{"WGSL":"import \\"GLSL.std.450\\" as std;\\n\\n\\n# var gWebGPUDebug : bool = false;\\n# var gWebGPUDebugOutput : vec4 = vec4(0.0);\\n\\n[[builtin global_invocation_id]] var globalInvocationID : vec3;\\n# [[builtin work_group_size]] var workGroupSize : vec3;\\n# [[builtin work_group_id]] var workGroupID : vec3;\\n[[builtin local_invocation_id]] var localInvocationID : vec3;\\n# [[builtin num_work_groups]] var numWorkGroups : vec3;\\n[[builtin local_invocation_idx]] var localInvocationIndex : u32;\\n\\ntype GWebGPUParams = [[block]] struct {\\n [[offset 0]] u_damping : f32;\\n [[offset 4]] u_maxSpeed : f32;\\n [[offset 8]] u_minMovement : f32;\\n \\n [[offset 12]] u_coulombDisScale : f32;\\n [[offset 16]] u_factor : f32;\\n \\n \\n [[offset 20]] u_interval : f32;\\n};\\n[[binding 0, set 0]] var gWebGPUUniformParams : GWebGPUParams;\\ntype GWebGPUBuffer0 = [[block]] struct {\\n [[offset 0]] u_Data : [[stride 16]] array>;\\n};\\n[[binding 1, set 0]] var gWebGPUBuffer0 : GWebGPUBuffer0;\\ntype GWebGPUBuffer1 = [[block]] struct {\\n [[offset 0]] u_AveMovement : [[stride 16]] array>;\\n};\\n[[binding 2, set 0]] var gWebGPUBuffer1 : GWebGPUBuffer1;\\ntype GWebGPUBuffer2 = [[block]] struct {\\n [[offset 0]] u_NodeAttributeArray1 : [[stride 16]] array>;\\n};\\n[[binding 3, set 0]] var gWebGPUBuffer2 : GWebGPUBuffer2;\\ntype GWebGPUBuffer3 = [[block]] struct {\\n [[offset 0]] u_NodeAttributeArray2 : [[stride 16]] array>;\\n};\\n[[binding 4, set 0]] var gWebGPUBuffer3 : GWebGPUBuffer3;\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nfn unpack_float(packedValue : f32) -> vec2 {var packedIntValue : i32 = i32(packedValue);\\nvar v0 : i32 = packedIntValue / 1048576;\\nreturn vec2(v0, packedIntValue - (v0 * 1048576));}\\nfn calcRepulsive(i : i32, currentNode : vec4) -> vec2 {var ax : f32 = 0.0;\\nvar ay : f32 = 0.0;\\nfor (var j : i32 = 0; j < __DefineValuePlaceholder__VERTEX_COUNT; j = j + 1) {if (i != j) {var nextNode : vec4 = gWebGPUBuffer0.u_Data[j];\\nvar vx : f32 = currentNode.x - nextNode.x;\\nvar vy : f32 = currentNode.y - nextNode.y;\\nvar dist : f32 = std::sqrt((vx * vx) + (vy * vy)) + 0.01;\\nvar n_dist : f32 = (dist + 0.1) * gWebGPUUniformParams.u_coulombDisScale;\\nvar direx : f32 = vx / dist;\\nvar direy : f32 = vy / dist;\\nvar attributesi : vec4 = gWebGPUBuffer2.u_NodeAttributeArray1[i];\\nvar attributesj : vec4 = gWebGPUBuffer2.u_NodeAttributeArray1[j];\\nvar massi : f32 = attributesi.x;\\nvar nodeStrengthi : f32 = attributesi.z;\\nvar nodeStrengthj : f32 = attributesj.z;\\nvar nodeStrength : f32 = (nodeStrengthi + nodeStrengthj) / 2.0;\\nvar param : f32 = (nodeStrength * gWebGPUUniformParams.u_factor) / (n_dist * n_dist);\\nax = ax + direx * param;\\nay = ay + direy * param;}}\\nreturn vec2(ax, ay);}\\nfn calcGravity(i : i32, currentNode : vec4, attributes2 : vec4) -> vec2 {var vx : f32 = currentNode.x - attributes2.x;\\nvar vy : f32 = currentNode.y - attributes2.y;\\nvar ax : f32 = vx * attributes2.z;\\nvar ay : f32 = vy * attributes2.z;\\nreturn vec2(ax, ay);}\\nfn calcAttractive(i : i32, currentNode : vec4, attributes1 : vec4) -> vec2 {var mass : f32 = attributes1.x;\\nvar ax : f32 = 0.0;\\nvar ay : f32 = 0.0;\\nvar compressed : vec2 = unpack_float(currentNode.z);\\nvar length : i32 = compressed.x;\\nvar arr_offset : i32 = compressed.y;\\nvar node_buffer : vec4;\\nfor (var p : i32 = 0; p < __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX; p = p + 1) {if (p >= length) {break;}\\nvar arr_idx : i32 = arr_offset + (4 * p);\\nvar buf_offset : i32 = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = gWebGPUBuffer0.u_Data[i32(arr_idx / 4)];}\\nvar float_j : f32 = node_buffer.x;\\nvar nextNode : vec4 = gWebGPUBuffer0.u_Data[i32(float_j)];\\nvar vx : f32 = nextNode.x - currentNode.x;\\nvar vy : f32 = nextNode.y - currentNode.y;\\nvar dist : f32 = std::sqrt((vx * vx) + (vy * vy)) + 0.01;\\nvar direx : f32 = vx / dist;\\nvar direy : f32 = vy / dist;\\nvar edgeLength : f32 = node_buffer.y;\\nvar edgeStrength : f32 = node_buffer.z;\\nvar diff : f32 = edgeLength - dist;\\nvar param : f32 = (diff * edgeStrength) / mass;\\nax = ax - direx * param;\\nay = ay - direy * param;}\\nreturn vec2(ax, ay);}\\nfn main() -> void {var i : i32 = globalInvocationID.x;\\nvar currentNode : vec4 = gWebGPUBuffer0.u_Data[i];\\nvar movement : vec4 = gWebGPUBuffer1.u_AveMovement[0];\\nvar ax : f32 = 0.0;\\nvar ay : f32 = 0.0;\\nif ((i >= __DefineValuePlaceholder__VERTEX_COUNT) || (movement.x < gWebGPUUniformParams.u_minMovement)) {gWebGPUBuffer0.u_Data[i] = currentNode;\\nreturn ;}\\nvar nodeAttributes1 : vec4 = gWebGPUBuffer2.u_NodeAttributeArray1[i];\\nvar nodeAttributes2 : vec4 = gWebGPUBuffer3.u_NodeAttributeArray2[i];\\nvar repulsive : vec2 = calcRepulsive(i, currentNode);\\nax = ax + repulsive.x;\\nay = ay + repulsive.y;\\nvar attractive : vec2 = calcAttractive(i, currentNode, nodeAttributes1);\\nax = ax + attractive.x;\\nay = ay + attractive.y;\\nvar gravity : vec2 = calcGravity(i, currentNode, nodeAttributes2);\\nax = ax - gravity.x;\\nay = ay - gravity.y;\\nvar param : f32 = gWebGPUUniformParams.u_interval * gWebGPUUniformParams.u_damping;\\nvar vx : f32 = ax * param;\\nvar vy : f32 = ay * param;\\nvar vlength : f32 = std::sqrt((vx * vx) + (vy * vy)) + 0.0001;\\nif (vlength > gWebGPUUniformParams.u_maxSpeed) {var param2 : f32 = gWebGPUUniformParams.u_maxSpeed / vlength;\\nvx = param2 * vx;\\nvy = param2 * vy;}\\nvar distx : f32 = vx * gWebGPUUniformParams.u_interval;\\nvar disty : f32 = vy * gWebGPUUniformParams.u_interval;\\nvar distLength : f32 = std::sqrt((distx * distx) + (disty * disty));\\nif ((nodeAttributes1.w != 0.0) && (nodeAttributes2.w != 0.0)) {gWebGPUBuffer0.u_Data[i] = vec4(nodeAttributes1.w, nodeAttributes2.w, currentNode.z, 0.0);}else {gWebGPUBuffer0.u_Data[i] = vec4(currentNode.x + distx, currentNode.y + disty, currentNode.z, distLength);}\\nreturn;}\\n\\nentry_point compute as \\"main\\" = main;\\n","GLSL450":"\\n\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\nivec3 globalInvocationID = ivec3(gl_GlobalInvocationID);\\nivec3 workGroupSize = ivec3(1,1,1);\\nivec3 workGroupID = ivec3(gl_WorkGroupID);\\nivec3 localInvocationID = ivec3(gl_LocalInvocationID);\\nivec3 numWorkGroups = ivec3(gl_NumWorkGroups);\\nint localInvocationIndex = int(gl_LocalInvocationIndex);\\n\\nlayout(std140, set = 0, binding = 0) uniform GWebGPUParams {\\n float u_damping;\\n float u_maxSpeed;\\n float u_minMovement;\\n \\n float u_coulombDisScale;\\n float u_factor;\\n \\n \\n float u_interval;\\n} gWebGPUUniformParams;\\nlayout(std430, set = 0, binding = 1) buffer GWebGPUBuffer0 {\\n vec4 u_Data[];\\n} gWebGPUBuffer0;\\n\\nlayout(std430, set = 0, binding = 2) buffer readonly GWebGPUBuffer1 {\\n vec4 u_AveMovement[];\\n} gWebGPUBuffer1;\\n\\nlayout(std430, set = 0, binding = 3) buffer readonly GWebGPUBuffer2 {\\n vec4 u_NodeAttributeArray1[];\\n} gWebGPUBuffer2;\\n\\nlayout(std430, set = 0, binding = 4) buffer readonly GWebGPUBuffer3 {\\n vec4 u_NodeAttributeArray2[];\\n} gWebGPUBuffer3;\\n\\n\\n\\n#define MAX_EDGE_PER_VERTEX __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n#define SHIFT_20 1048576.0\\nlayout (\\n local_size_x = 1,\\n local_size_y = 1,\\n local_size_z = 1\\n) in;\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nivec2 unpack_float(float packedValue) {int packedIntValue = int(packedValue);\\nint v0 = packedIntValue / int(SHIFT_20);\\nreturn ivec2(v0, packedIntValue - (v0 * int(SHIFT_20)));}\\nvec2 calcRepulsive(int i, vec4 currentNode) {float ax = 0.0;\\nfloat ay = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {if (i != j) {vec4 nextNode = gWebGPUBuffer0.u_Data[j];\\nfloat vx = currentNode.x - nextNode.x;\\nfloat vy = currentNode.y - nextNode.y;\\nfloat dist = sqrt((vx * vx) + (vy * vy)) + 0.01;\\nfloat n_dist = (dist + 0.1) * gWebGPUUniformParams.u_coulombDisScale;\\nfloat direx = vx / dist;\\nfloat direy = vy / dist;\\nvec4 attributesi = gWebGPUBuffer2.u_NodeAttributeArray1[i];\\nvec4 attributesj = gWebGPUBuffer2.u_NodeAttributeArray1[j];\\nfloat massi = attributesi.x;\\nfloat nodeStrengthi = attributesi.z;\\nfloat nodeStrengthj = attributesj.z;\\nfloat nodeStrength = (nodeStrengthi + nodeStrengthj) / 2.0;\\nfloat param = (nodeStrength * gWebGPUUniformParams.u_factor) / (n_dist * n_dist);\\nax += direx * param;\\nay += direy * param;}}\\nreturn vec2(ax, ay);}\\nvec2 calcGravity(int i, vec4 currentNode, vec4 attributes2) {float vx = currentNode.x - attributes2.x;\\nfloat vy = currentNode.y - attributes2.y;\\nfloat ax = vx * attributes2.z;\\nfloat ay = vy * attributes2.z;\\nreturn vec2(ax, ay);}\\nvec2 calcAttractive(int i, vec4 currentNode, vec4 attributes1) {float mass = attributes1.x;\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nivec2 compressed = unpack_float(currentNode.z);\\nint length = compressed.x;\\nint arr_offset = compressed.y;\\nvec4 node_buffer;\\nfor (int p = 0; p < MAX_EDGE_PER_VERTEX; p++) {if (p >= length) {break;}\\nint arr_idx = arr_offset + (4 * p);\\nint buf_offset = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = gWebGPUBuffer0.u_Data[int(arr_idx / 4)];}\\nfloat float_j = node_buffer.x;\\nvec4 nextNode = gWebGPUBuffer0.u_Data[int(float_j)];\\nfloat vx = nextNode.x - currentNode.x;\\nfloat vy = nextNode.y - currentNode.y;\\nfloat dist = sqrt((vx * vx) + (vy * vy)) + 0.01;\\nfloat direx = vx / dist;\\nfloat direy = vy / dist;\\nfloat edgeLength = node_buffer.y;\\nfloat edgeStrength = node_buffer.z;\\nfloat diff = edgeLength - dist;\\nfloat param = (diff * edgeStrength) / mass;\\nax -= direx * param;\\nay -= direy * param;}\\nreturn vec2(ax, ay);}\\nvoid main() {int i = globalInvocationID.x;\\nvec4 currentNode = gWebGPUBuffer0.u_Data[i];\\nvec4 movement = gWebGPUBuffer1.u_AveMovement[0];\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nif ((i >= VERTEX_COUNT) || (movement.x < gWebGPUUniformParams.u_minMovement)) {gWebGPUBuffer0.u_Data[i] = currentNode;\\nreturn ;}\\nvec4 nodeAttributes1 = gWebGPUBuffer2.u_NodeAttributeArray1[i];\\nvec4 nodeAttributes2 = gWebGPUBuffer3.u_NodeAttributeArray2[i];\\nvec2 repulsive = calcRepulsive(i, currentNode);\\nax += repulsive.x;\\nay += repulsive.y;\\nvec2 attractive = calcAttractive(i, currentNode, nodeAttributes1);\\nax += attractive.x;\\nay += attractive.y;\\nvec2 gravity = calcGravity(i, currentNode, nodeAttributes2);\\nax -= gravity.x;\\nay -= gravity.y;\\nfloat param = gWebGPUUniformParams.u_interval * gWebGPUUniformParams.u_damping;\\nfloat vx = ax * param;\\nfloat vy = ay * param;\\nfloat vlength = sqrt((vx * vx) + (vy * vy)) + 0.0001;\\nif (vlength > gWebGPUUniformParams.u_maxSpeed) {float param2 = gWebGPUUniformParams.u_maxSpeed / vlength;\\nvx = param2 * vx;\\nvy = param2 * vy;}\\nfloat distx = vx * gWebGPUUniformParams.u_interval;\\nfloat disty = vy * gWebGPUUniformParams.u_interval;\\nfloat distLength = sqrt((distx * distx) + (disty * disty));\\nif ((nodeAttributes1.w != 0.0) && (nodeAttributes2.w != 0.0)) {gWebGPUBuffer0.u_Data[i] = vec4(nodeAttributes1.w, nodeAttributes2.w, currentNode.z, 0.0);}else {gWebGPUBuffer0.u_Data[i] = vec4(currentNode.x + distx, currentNode.y + disty, currentNode.z, distLength);}}\\n","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define MAX_EDGE_PER_VERTEX __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n#define SHIFT_20 1048576.0\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform float u_damping;\\nuniform float u_maxSpeed;\\nuniform float u_minMovement;\\nuniform sampler2D u_AveMovement;\\nuniform vec2 u_AveMovementSize;\\nvec4 getDatau_AveMovement(vec2 address2D) {\\n return vec4(texture2D(u_AveMovement, address2D).rgba);\\n}\\nvec4 getDatau_AveMovement(float address1D) {\\n return getDatau_AveMovement(addrTranslation_1Dto2D(address1D, u_AveMovementSize));\\n}\\nvec4 getDatau_AveMovement(int address1D) {\\n return getDatau_AveMovement(float(address1D));\\n}\\nuniform float u_coulombDisScale;\\nuniform float u_factor;\\nuniform sampler2D u_NodeAttributeArray1;\\nuniform vec2 u_NodeAttributeArray1Size;\\nvec4 getDatau_NodeAttributeArray1(vec2 address2D) {\\n return vec4(texture2D(u_NodeAttributeArray1, address2D).rgba);\\n}\\nvec4 getDatau_NodeAttributeArray1(float address1D) {\\n return getDatau_NodeAttributeArray1(addrTranslation_1Dto2D(address1D, u_NodeAttributeArray1Size));\\n}\\nvec4 getDatau_NodeAttributeArray1(int address1D) {\\n return getDatau_NodeAttributeArray1(float(address1D));\\n}\\nuniform sampler2D u_NodeAttributeArray2;\\nuniform vec2 u_NodeAttributeArray2Size;\\nvec4 getDatau_NodeAttributeArray2(vec2 address2D) {\\n return vec4(texture2D(u_NodeAttributeArray2, address2D).rgba);\\n}\\nvec4 getDatau_NodeAttributeArray2(float address1D) {\\n return getDatau_NodeAttributeArray2(addrTranslation_1Dto2D(address1D, u_NodeAttributeArray2Size));\\n}\\nvec4 getDatau_NodeAttributeArray2(int address1D) {\\n return getDatau_NodeAttributeArray2(float(address1D));\\n}\\nuniform float u_interval;\\nivec2 unpack_float(float packedValue) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint packedIntValue = int(packedValue);\\nint v0 = packedIntValue / int(SHIFT_20);\\nreturn ivec2(v0, packedIntValue - (v0 * int(SHIFT_20)));}\\nvec2 calcRepulsive(int i, vec4 currentNode) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {if (i != j) {vec4 nextNode = getDatau_Data(j);\\nfloat vx = currentNode.x - nextNode.x;\\nfloat vy = currentNode.y - nextNode.y;\\nfloat dist = sqrt((vx * vx) + (vy * vy)) + 0.01;\\nfloat n_dist = (dist + 0.1) * u_coulombDisScale;\\nfloat direx = vx / dist;\\nfloat direy = vy / dist;\\nvec4 attributesi = getDatau_NodeAttributeArray1(i);\\nvec4 attributesj = getDatau_NodeAttributeArray1(j);\\nfloat massi = attributesi.x;\\nfloat nodeStrengthi = attributesi.z;\\nfloat nodeStrengthj = attributesj.z;\\nfloat nodeStrength = (nodeStrengthi + nodeStrengthj) / 2.0;\\nfloat param = (nodeStrength * u_factor) / (n_dist * n_dist);\\nax += direx * param;\\nay += direy * param;}}\\nreturn vec2(ax, ay);}\\nvec2 calcGravity(int i, vec4 currentNode, vec4 attributes2) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat vx = currentNode.x - attributes2.x;\\nfloat vy = currentNode.y - attributes2.y;\\nfloat ax = vx * attributes2.z;\\nfloat ay = vy * attributes2.z;\\nreturn vec2(ax, ay);}\\nvec2 calcAttractive(int i, vec4 currentNode, vec4 attributes1) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat mass = attributes1.x;\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nivec2 compressed = unpack_float(currentNode.z);\\nint length = compressed.x;\\nint arr_offset = compressed.y;\\nvec4 node_buffer;\\nfor (int p = 0; p < MAX_EDGE_PER_VERTEX; p++) {if (p >= length) {break;}\\nint arr_idx = arr_offset + (4 * p);\\nint buf_offset = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = getDatau_Data(int(arr_idx / 4));}\\nfloat float_j = node_buffer.x;\\nvec4 nextNode = getDatau_Data(int(float_j));\\nfloat vx = nextNode.x - currentNode.x;\\nfloat vy = nextNode.y - currentNode.y;\\nfloat dist = sqrt((vx * vx) + (vy * vy)) + 0.01;\\nfloat direx = vx / dist;\\nfloat direy = vy / dist;\\nfloat edgeLength = node_buffer.y;\\nfloat edgeStrength = node_buffer.z;\\nfloat diff = edgeLength - dist;\\nfloat param = (diff * edgeStrength) / mass;\\nax -= direx * param;\\nay -= direy * param;}\\nreturn vec2(ax, ay);}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint i = globalInvocationID.x;\\nvec4 currentNode = getDatau_Data(i);\\nvec4 movement = getDatau_AveMovement(0.0);\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nif ((i >= VERTEX_COUNT) || (movement.x < u_minMovement)) {gl_FragColor = vec4(currentNode);\\nreturn ;}\\nvec4 nodeAttributes1 = getDatau_NodeAttributeArray1(i);\\nvec4 nodeAttributes2 = getDatau_NodeAttributeArray2(i);\\nvec2 repulsive = calcRepulsive(i, currentNode);\\nax += repulsive.x;\\nay += repulsive.y;\\nvec2 attractive = calcAttractive(i, currentNode, nodeAttributes1);\\nax += attractive.x;\\nay += attractive.y;\\nvec2 gravity = calcGravity(i, currentNode, nodeAttributes2);\\nax -= gravity.x;\\nay -= gravity.y;\\nfloat param = u_interval * u_damping;\\nfloat vx = ax * param;\\nfloat vy = ay * param;\\nfloat vlength = sqrt((vx * vx) + (vy * vy)) + 0.0001;\\nif (vlength > u_maxSpeed) {float param2 = u_maxSpeed / vlength;\\nvx = param2 * vx;\\nvy = param2 * vy;}\\nfloat distx = vx * u_interval;\\nfloat disty = vy * u_interval;\\nfloat distLength = sqrt((distx * distx) + (disty * disty));\\nif ((nodeAttributes1.w != 0.0) && (nodeAttributes2.w != 0.0)) {gl_FragColor = vec4(vec4(nodeAttributes1.w, nodeAttributes2.w, currentNode.z, 0.0));}else {gl_FragColor = vec4(vec4(currentNode.x + distx, currentNode.y + disty, currentNode.z, distLength));}if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"MAX_EDGE_PER_VERTEX","type":"Float","runtime":true},{"name":"VERTEX_COUNT","type":"Float","runtime":true},{"name":"SHIFT_20","type":"Float","value":1048576,"runtime":false}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]},{"name":"u_damping","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_maxSpeed","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_minMovement","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_AveMovement","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_coulombDisScale","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_factor","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_NodeAttributeArray1","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_NodeAttributeArray2","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_interval","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_Data","size":[1,1],"length":1},"needPingpong":true}}`; -var aveMovementBundle = `{"shaders":{"WGSL":"import \\"GLSL.std.450\\" as std;\\n\\n\\n# var gWebGPUDebug : bool = false;\\n# var gWebGPUDebugOutput : vec4 = vec4(0.0);\\n\\n[[builtin global_invocation_id]] var globalInvocationID : vec3;\\n# [[builtin work_group_size]] var workGroupSize : vec3;\\n# [[builtin work_group_id]] var workGroupID : vec3;\\n[[builtin local_invocation_id]] var localInvocationID : vec3;\\n# [[builtin num_work_groups]] var numWorkGroups : vec3;\\n[[builtin local_invocation_idx]] var localInvocationIndex : u32;\\n\\ntype GWebGPUParams = [[block]] struct {\\n [[offset 0]] u_iter : f32;\\n};\\n[[binding 0, set 0]] var gWebGPUUniformParams : GWebGPUParams;\\ntype GWebGPUBuffer0 = [[block]] struct {\\n [[offset 0]] u_Data : [[stride 16]] array>;\\n};\\n[[binding 1, set 0]] var gWebGPUBuffer0 : GWebGPUBuffer0;\\ntype GWebGPUBuffer1 = [[block]] struct {\\n [[offset 0]] u_AveMovement : [[stride 16]] array>;\\n};\\n[[binding 2, set 0]] var gWebGPUBuffer1 : GWebGPUBuffer1;\\n\\n\\n\\n\\n\\n\\n\\n\\nfn main() -> void {var movement : f32 = 0.0;\\nfor (var j : i32 = 0; j < __DefineValuePlaceholder__VERTEX_COUNT; j = j + 1) {var vertex : vec4 = gWebGPUBuffer0.u_Data[j];\\nmovement = movement + vertex.w;}\\nmovement = movement / f32(__DefineValuePlaceholder__VERTEX_COUNT);\\ngWebGPUBuffer1.u_AveMovement[0] = vec4(movement, 0.0, 0.0, 0.0);\\nreturn;}\\n\\nentry_point compute as \\"main\\" = main;\\n","GLSL450":"\\n\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\nivec3 globalInvocationID = ivec3(gl_GlobalInvocationID);\\nivec3 workGroupSize = ivec3(1,1,1);\\nivec3 workGroupID = ivec3(gl_WorkGroupID);\\nivec3 localInvocationID = ivec3(gl_LocalInvocationID);\\nivec3 numWorkGroups = ivec3(gl_NumWorkGroups);\\nint localInvocationIndex = int(gl_LocalInvocationIndex);\\n\\nlayout(std140, set = 0, binding = 0) uniform GWebGPUParams {\\n float u_iter;\\n} gWebGPUUniformParams;\\nlayout(std430, set = 0, binding = 1) buffer readonly GWebGPUBuffer0 {\\n vec4 u_Data[];\\n} gWebGPUBuffer0;\\n\\nlayout(std430, set = 0, binding = 2) buffer GWebGPUBuffer1 {\\n vec4 u_AveMovement[];\\n} gWebGPUBuffer1;\\n\\n\\n\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\nlayout (\\n local_size_x = 1,\\n local_size_y = 1,\\n local_size_z = 1\\n) in;\\n\\n\\n\\nvoid main() {float movement = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {vec4 vertex = gWebGPUBuffer0.u_Data[j];\\nmovement += vertex.w;}\\nmovement = movement / float(VERTEX_COUNT);\\ngWebGPUBuffer1.u_AveMovement[0] = vec4(movement, 0.0, 0.0, 0.0);}\\n","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform float u_iter;\\nuniform sampler2D u_AveMovement;\\nuniform vec2 u_AveMovementSize;\\nvec4 getDatau_AveMovement(vec2 address2D) {\\n return vec4(texture2D(u_AveMovement, address2D).rgba);\\n}\\nvec4 getDatau_AveMovement(float address1D) {\\n return getDatau_AveMovement(addrTranslation_1Dto2D(address1D, u_AveMovementSize));\\n}\\nvec4 getDatau_AveMovement(int address1D) {\\n return getDatau_AveMovement(float(address1D));\\n}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat movement = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {vec4 vertex = getDatau_Data(j);\\nmovement += vertex.w;}\\nmovement = movement / float(VERTEX_COUNT);\\ngl_FragColor = vec4(vec4(movement, 0.0, 0.0, 0.0));if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"VERTEX_COUNT","type":"Float","runtime":true}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_iter","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_AveMovement","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_AveMovement","size":[1,1],"length":1},"needPingpong":true}}`; - -// node_modules/@antv/layout/es/layout/gpu/gForce.js -var __awaiter5 = function(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve) { - resolve(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e4) { - reject(e4); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var GForceGPULayout = class extends Base3 { - constructor(options) { - super(); - this.maxIteration = 1e3; - this.edgeStrength = 200; - this.nodeStrength = 1e3; - this.coulombDisScale = 5e-3; - this.damping = 0.9; - this.maxSpeed = 1e3; - this.minMovement = 0.5; - this.interval = 0.02; - this.factor = 1; - this.linkDistance = 1; - this.gravity = 10; - this.workerEnabled = false; - this.nodes = []; - this.edges = []; - this.width = 300; - this.height = 300; - this.nodeMap = {}; - this.nodeIdxMap = {}; - this.updateCfg(options); - } - getDefaultCfg() { - return { - maxIteration: 2e3, - gravity: 10, - clustering: false, - clusterGravity: 10 - }; - } - execute() { - return __awaiter5(this, void 0, void 0, function* () { - const self2 = this; - const nodes = self2.nodes; - if (!nodes || nodes.length === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - if (!self2.center) { - self2.center = [self2.width / 2, self2.height / 2]; - } - const center2 = self2.center; - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - const nodeMap = {}; - const nodeIdxMap = {}; - nodes.forEach((node, i4) => { - if (!isNumber3(node.x)) - node.x = Math.random() * self2.width; - if (!isNumber3(node.y)) - node.y = Math.random() * self2.height; - nodeMap[node.id] = node; - nodeIdxMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - self2.nodeIdxMap = nodeIdxMap; - self2.nodeStrength = proccessToFunc2(self2.nodeStrength, 1); - self2.edgeStrength = proccessToFunc2(self2.edgeStrength, 1); - yield self2.run(); - }); - } - executeWithWorker(canvas, ctx4) { - const self2 = this; - const nodes = self2.nodes; - const center2 = self2.center; - if (!nodes || nodes.length === 0) { - return; - } - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - return; - } - const nodeMap = {}; - const nodeIdxMap = {}; - nodes.forEach((node, i4) => { - if (!isNumber3(node.x)) - node.x = Math.random() * self2.width; - if (!isNumber3(node.y)) - node.y = Math.random() * self2.height; - nodeMap[node.id] = node; - nodeIdxMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - self2.nodeIdxMap = nodeIdxMap; - self2.nodeStrength = proccessToFunc2(self2.nodeStrength, 1); - self2.edgeStrength = proccessToFunc2(self2.edgeStrength, 1); - self2.run(canvas, ctx4); - } - run(canvas, ctx4) { - return __awaiter5(this, void 0, void 0, function* () { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges; - const maxIteration = self2.maxIteration; - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - const numParticles = nodes.length; - self2.linkDistance = proccessToFunc2(self2.linkDistance); - self2.edgeStrength = proccessToFunc2(self2.edgeStrength); - const { maxEdgePerVetex, array: nodesEdgesArray } = buildTextureDataWithTwoEdgeAttr(nodes, edges, self2.linkDistance, self2.edgeStrength); - self2.degrees = getDegree3(nodes.length, self2.nodeIdxMap, edges); - const masses = []; - const nodeStrengths = []; - const centerXs = []; - const centerYs = []; - const centerGravities = []; - const fxs = []; - const fys = []; - if (!self2.getMass) { - self2.getMass = (d3) => { - return self2.degrees[self2.nodeIdxMap[d3.id]] || 1; - }; - } - const gravity = self2.gravity; - const center2 = self2.center; - nodes.forEach((node, i4) => { - masses.push(self2.getMass(node)); - nodeStrengths.push(self2.nodeStrength(node)); - if (!self2.degrees[i4]) - self2.degrees[i4] = 0; - let nodeGravity = [center2[0], center2[1], gravity]; - if (self2.getCenter) { - const customCenter = self2.getCenter(node, self2.degrees[i4]); - if (customCenter && isNumber3(customCenter[0]) && isNumber3(customCenter[1]) && isNumber3(customCenter[2])) { - nodeGravity = customCenter; - } - } - centerXs.push(nodeGravity[0]); - centerYs.push(nodeGravity[1]); - centerGravities.push(nodeGravity[2]); - if (isNumber3(node.fx) && isNumber3(node.fy)) { - fxs.push(node.fx || 1e-3); - fys.push(node.fy || 1e-3); - } else { - fxs.push(0); - fys.push(0); - } - }); - const nodeAttributeArray1 = arrayToTextureData([ - masses, - self2.degrees, - nodeStrengths, - fxs - ]); - const nodeAttributeArray2 = arrayToTextureData([ - centerXs, - centerYs, - centerGravities, - fys - ]); - const workerEnabled = self2.workerEnabled; - let world; - if (workerEnabled) { - world = World.create({ - canvas, - engineOptions: { - supportCompute: true - } - }); - } else { - world = World.create({ - engineOptions: { - supportCompute: true - } - }); - } - const onLayoutEnd = self2.onLayoutEnd; - const initPreviousData = []; - nodesEdgesArray.forEach((value2) => { - initPreviousData.push(value2); - }); - for (let i4 = 0; i4 < 4; i4++) { - initPreviousData.push(0); - } - const kernelGForce = world.createKernel(gForceBundle).setDispatch([numParticles, 1, 1]).setBinding({ - u_Data: nodesEdgesArray, - u_damping: self2.damping, - u_maxSpeed: self2.maxSpeed, - u_minMovement: self2.minMovement, - u_coulombDisScale: self2.coulombDisScale, - u_factor: self2.factor, - u_NodeAttributeArray1: nodeAttributeArray1, - u_NodeAttributeArray2: nodeAttributeArray2, - MAX_EDGE_PER_VERTEX: maxEdgePerVetex, - VERTEX_COUNT: numParticles, - u_AveMovement: initPreviousData, - u_interval: self2.interval - }); - const kernelAveMovement = world.createKernel(aveMovementBundle).setDispatch([1, 1, 1]).setBinding({ - u_Data: nodesEdgesArray, - VERTEX_COUNT: numParticles, - u_AveMovement: [0, 0, 0, 0] - }); - const execute = () => __awaiter5(this, void 0, void 0, function* () { - for (let i4 = 0; i4 < maxIteration; i4++) { - yield kernelGForce.execute(); - kernelAveMovement.setBinding({ - u_Data: kernelGForce - }); - yield kernelAveMovement.execute(); - const stepInterval = Math.max(0.02, self2.interval - i4 * 2e-3); - kernelGForce.setBinding({ - u_interval: stepInterval, - u_AveMovement: kernelAveMovement - }); - } - const finalParticleData = yield kernelGForce.getOutput(); - if (canvas) { - ctx4.postMessage({ - type: LAYOUT_MESSAGE.GPUEND, - vertexEdgeData: finalParticleData - }); - } else { - nodes.forEach((node, i4) => { - const x6 = finalParticleData[4 * i4]; - const y5 = finalParticleData[4 * i4 + 1]; - node.x = x6; - node.y = y5; - }); - } - if (onLayoutEnd) - onLayoutEnd(); - }); - yield execute(); - }); - } - getType() { - return "gForce-gpu"; - } -}; - -// node_modules/@antv/layout/es/layout/comboForce.js -var ComboForceLayout = class extends Base3 { - constructor(options) { - super(); - this.center = [0, 0]; - this.maxIteration = 100; - this.gravity = 10; - this.comboGravity = 10; - this.linkDistance = 10; - this.alpha = 1; - this.alphaMin = 1e-3; - this.alphaDecay = 1 - Math.pow(this.alphaMin, 1 / 300); - this.alphaTarget = 0; - this.velocityDecay = 0.6; - this.edgeStrength = 0.6; - this.nodeStrength = 30; - this.preventOverlap = false; - this.preventNodeOverlap = false; - this.preventComboOverlap = false; - this.collideStrength = void 0; - this.nodeCollideStrength = 0.5; - this.comboCollideStrength = 0.5; - this.comboSpacing = 20; - this.comboPadding = 10; - this.optimizeRangeFactor = 1; - this.onTick = () => { - }; - this.onLayoutEnd = () => { - }; - this.depthAttractiveForceScale = 1; - this.depthRepulsiveForceScale = 2; - this.nodes = []; - this.edges = []; - this.combos = []; - this.comboTrees = []; - this.width = 300; - this.height = 300; - this.bias = []; - this.nodeMap = {}; - this.oriComboMap = {}; - this.indexMap = {}; - this.comboMap = {}; - this.previousLayouted = false; - this.updateCfg(options); - } - getDefaultCfg() { - return { - maxIteration: 100, - center: [0, 0], - gravity: 10, - speed: 1, - comboGravity: 30, - preventOverlap: false, - preventComboOverlap: true, - preventNodeOverlap: true, - nodeSpacing: void 0, - collideStrength: void 0, - nodeCollideStrength: 0.5, - comboCollideStrength: 0.5, - comboSpacing: 20, - comboPadding: 10, - edgeStrength: 0.6, - nodeStrength: 30, - linkDistance: 10 - }; - } - execute() { - const self2 = this; - const nodes = self2.nodes; - const center2 = self2.center; - self2.comboTree = { - id: "comboTreeRoot", - depth: -1, - children: self2.comboTrees - }; - if (!nodes || nodes.length === 0) { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - if (nodes.length === 1) { - nodes[0].x = center2[0]; - nodes[0].y = center2[1]; - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - return; - } - self2.initVals(); - self2.run(); - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - } - run() { - const self2 = this; - const nodes = self2.nodes; - const maxIteration = self2.previousLayouted ? self2.maxIteration / 5 : self2.maxIteration; - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - const center2 = self2.center; - const velocityDecay = self2.velocityDecay; - const comboMap = self2.comboMap; - if (!self2.previousLayouted) - self2.initPos(comboMap); - for (let i4 = 0; i4 < maxIteration; i4++) { - const displacements = []; - nodes.forEach((_8, j4) => { - displacements[j4] = { x: 0, y: 0 }; - }); - self2.applyCalculate(displacements); - self2.applyComboCenterForce(displacements); - nodes.forEach((n3, j4) => { - if (!isNumber3(n3.x) || !isNumber3(n3.y)) - return; - n3.x += displacements[j4].x * velocityDecay; - n3.y += displacements[j4].y * velocityDecay; - }); - self2.alpha += (self2.alphaTarget - self2.alpha) * self2.alphaDecay; - self2.onTick(); - } - const meanCenter = [0, 0]; - nodes.forEach((n3) => { - if (!isNumber3(n3.x) || !isNumber3(n3.y)) - return; - meanCenter[0] += n3.x; - meanCenter[1] += n3.y; - }); - meanCenter[0] /= nodes.length; - meanCenter[1] /= nodes.length; - const centerOffset = [center2[0] - meanCenter[0], center2[1] - meanCenter[1]]; - nodes.forEach((n3, j4) => { - if (!isNumber3(n3.x) || !isNumber3(n3.y)) - return; - n3.x += centerOffset[0]; - n3.y += centerOffset[1]; - }); - self2.combos.forEach((combo) => { - const mapped = comboMap[combo.id]; - if (mapped && mapped.empty) { - combo.x = mapped.cx || combo.x; - combo.y = mapped.cy || combo.y; - } - }); - self2.previousLayouted = true; - } - initVals() { - const self2 = this; - const edges = self2.edges; - const nodes = self2.nodes; - const combos = self2.combos; - const count2 = {}; - const nodeMap = {}; - const indexMap = {}; - nodes.forEach((node, i4) => { - nodeMap[node.id] = node; - indexMap[node.id] = i4; - }); - self2.nodeMap = nodeMap; - self2.indexMap = indexMap; - const oriComboMap = {}; - combos.forEach((combo) => { - oriComboMap[combo.id] = combo; - }); - self2.oriComboMap = oriComboMap; - self2.comboMap = self2.getComboMap(); - const preventOverlap = self2.preventOverlap; - self2.preventComboOverlap = self2.preventComboOverlap || preventOverlap; - self2.preventNodeOverlap = self2.preventNodeOverlap || preventOverlap; - const collideStrength = self2.collideStrength; - if (collideStrength) { - self2.comboCollideStrength = collideStrength; - self2.nodeCollideStrength = collideStrength; - } - self2.comboCollideStrength = self2.comboCollideStrength ? self2.comboCollideStrength : 0; - self2.nodeCollideStrength = self2.nodeCollideStrength ? self2.nodeCollideStrength : 0; - for (let i4 = 0; i4 < edges.length; ++i4) { - const source = getEdgeTerminal(edges[i4], "source"); - const target = getEdgeTerminal(edges[i4], "target"); - if (count2[source]) - count2[source]++; - else - count2[source] = 1; - if (count2[target]) - count2[target]++; - else - count2[target] = 1; - } - const bias = []; - for (let i4 = 0; i4 < edges.length; ++i4) { - const source = getEdgeTerminal(edges[i4], "source"); - const target = getEdgeTerminal(edges[i4], "target"); - bias[i4] = count2[source] / (count2[source] + count2[target]); - } - this.bias = bias; - const nodeSize = self2.nodeSize; - const nodeSpacing = self2.nodeSpacing; - let nodeSizeFunc; - let nodeSpacingFunc; - if (isNumber3(nodeSpacing)) { - nodeSpacingFunc = () => nodeSpacing; - } else if (isFunction(nodeSpacing)) { - nodeSpacingFunc = nodeSpacing; - } else { - nodeSpacingFunc = () => 0; - } - this.nodeSpacing = nodeSpacingFunc; - if (!nodeSize) { - nodeSizeFunc = (d3) => { - if (d3.size) { - if (isArray2(d3.size)) { - const res = d3.size[0] > d3.size[1] ? d3.size[0] : d3.size[1]; - return res / 2; - } - if (isObject2(d3.size)) { - const res = d3.size.width > d3.size.height ? d3.size.width : d3.size.height; - return res / 2; - } - return d3.size / 2; - } - return 10; - }; - } else if (isFunction(nodeSize)) { - nodeSizeFunc = (d3) => { - return nodeSize(d3); - }; - } else if (isArray2(nodeSize)) { - const larger = nodeSize[0] > nodeSize[1] ? nodeSize[0] : nodeSize[1]; - const radius = larger / 2; - nodeSizeFunc = (d3) => radius; - } else { - const radius = nodeSize / 2; - nodeSizeFunc = (d3) => radius; - } - this.nodeSize = nodeSizeFunc; - const comboSpacing = self2.comboSpacing; - let comboSpacingFunc; - if (isNumber3(comboSpacing)) { - comboSpacingFunc = () => comboSpacing; - } else if (isFunction(comboSpacing)) { - comboSpacingFunc = comboSpacing; - } else { - comboSpacingFunc = () => 0; - } - this.comboSpacing = comboSpacingFunc; - const comboPadding = self2.comboPadding; - let comboPaddingFunc; - if (isNumber3(comboPadding)) { - comboPaddingFunc = () => comboPadding; - } else if (isArray2(comboPadding)) { - comboPaddingFunc = () => Math.max.apply(null, comboPadding); - } else if (isFunction(comboPadding)) { - comboPaddingFunc = comboPadding; - } else { - comboPaddingFunc = () => 0; - } - this.comboPadding = comboPaddingFunc; - let linkDistance = this.linkDistance; - let linkDistanceFunc; - if (!linkDistance) { - linkDistance = 10; - } - if (isNumber3(linkDistance)) { - linkDistanceFunc = (d3) => { - return linkDistance; - }; - } else { - linkDistanceFunc = linkDistance; - } - this.linkDistance = linkDistanceFunc; - let edgeStrength = this.edgeStrength; - let edgeStrengthFunc; - if (!edgeStrength) { - edgeStrength = 1; - } - if (isNumber3(edgeStrength)) { - edgeStrengthFunc = (d3) => { - return edgeStrength; - }; - } else { - edgeStrengthFunc = edgeStrength; - } - this.edgeStrength = edgeStrengthFunc; - let nodeStrength = this.nodeStrength; - let nodeStrengthFunc; - if (!nodeStrength) { - nodeStrength = 30; - } - if (isNumber3(nodeStrength)) { - nodeStrengthFunc = (d3) => { - return nodeStrength; - }; - } else { - nodeStrengthFunc = nodeStrength; - } - this.nodeStrength = nodeStrengthFunc; - } - initPos(comboMap) { - const self2 = this; - const nodes = self2.nodes; - nodes.forEach((node, i4) => { - const comboId = node.comboId; - const combo = comboMap[comboId]; - if (comboId && combo) { - node.x = combo.cx + 100 / (i4 + 1); - node.y = combo.cy + 100 / (i4 + 1); - } else { - node.x = 100 / (i4 + 1); - node.y = 100 / (i4 + 1); - } - }); - } - getComboMap() { - const self2 = this; - const nodeMap = self2.nodeMap; - const comboTrees = self2.comboTrees; - const oriComboMap = self2.oriComboMap; - const comboMap = {}; - (comboTrees || []).forEach((ctree) => { - const treeChildren = []; - traverseTreeUp3(ctree, (treeNode) => { - if (treeNode.itemType === "node") - return true; - if (!oriComboMap[treeNode.id]) - return true; - if (comboMap[treeNode.id] === void 0) { - const combo = { - id: treeNode.id, - name: treeNode.id, - cx: 0, - cy: 0, - count: 0, - depth: self2.oriComboMap[treeNode.id].depth || 0, - children: [] - }; - comboMap[treeNode.id] = combo; - } - const children = treeNode.children; - if (children) { - children.forEach((child) => { - if (!comboMap[child.id] && !nodeMap[child.id]) - return true; - treeChildren.push(child); - }); - } - const c5 = comboMap[treeNode.id]; - c5.cx = 0; - c5.cy = 0; - if (treeChildren.length === 0) { - c5.empty = true; - const oriCombo = oriComboMap[treeNode.id]; - c5.cx = oriCombo.x; - c5.cy = oriCombo.y; - } - treeChildren.forEach((child) => { - c5.count++; - if (child.itemType !== "node") { - const childCombo = comboMap[child.id]; - if (isNumber3(childCombo.cx)) - c5.cx += childCombo.cx; - if (isNumber3(childCombo.cy)) - c5.cy += childCombo.cy; - return; - } - const node = nodeMap[child.id]; - if (!node) - return; - if (isNumber3(node.x)) { - c5.cx += node.x; - } - if (isNumber3(node.y)) { - c5.cy += node.y; - } - }); - c5.cx /= c5.count || 1; - c5.cy /= c5.count || 1; - c5.children = treeChildren; - return true; - }); - }); - return comboMap; - } - applyComboCenterForce(displacements) { - const self2 = this; - const gravity = self2.gravity; - const comboGravity = self2.comboGravity || gravity; - const alpha = this.alpha; - const comboTrees = self2.comboTrees; - const indexMap = self2.indexMap; - const nodeMap = self2.nodeMap; - const comboMap = self2.comboMap; - (comboTrees || []).forEach((ctree) => { - traverseTreeUp3(ctree, (treeNode) => { - if (treeNode.itemType === "node") - return true; - const combo = comboMap[treeNode.id]; - if (!combo) - return true; - const c5 = comboMap[treeNode.id]; - const gravityScale = (c5.depth + 1) / 10 * 0.5; - const comboX = c5.cx; - const comboY = c5.cy; - c5.cx = 0; - c5.cy = 0; - c5.children.forEach((child) => { - if (child.itemType !== "node") { - const childCombo = comboMap[child.id]; - if (childCombo && isNumber3(childCombo.cx)) - c5.cx += childCombo.cx; - if (childCombo && isNumber3(childCombo.cy)) - c5.cy += childCombo.cy; - return; - } - const node = nodeMap[child.id]; - const vecX = node.x - comboX || 5e-3; - const vecY = node.y - comboY || 5e-3; - const l4 = Math.sqrt(vecX * vecX + vecY * vecY); - const childIdx = indexMap[node.id]; - const params = comboGravity * alpha / l4 * gravityScale; - displacements[childIdx].x -= vecX * params; - displacements[childIdx].y -= vecY * params; - if (isNumber3(node.x)) - c5.cx += node.x; - if (isNumber3(node.y)) - c5.cy += node.y; - }); - c5.cx /= c5.count || 1; - c5.cy /= c5.count || 1; - return true; - }); - }); - } - applyCalculate(displacements) { - const self2 = this; - const comboMap = self2.comboMap; - const nodes = self2.nodes; - const vecMap = {}; - nodes.forEach((v3, i4) => { - nodes.forEach((u3, j4) => { - if (i4 < j4) - return; - const vx = v3.x - u3.x || 5e-3; - const vy = v3.y - u3.y || 5e-3; - let vl2 = vx * vx + vy * vy; - const vl = Math.sqrt(vl2); - if (vl2 < 1) - vl2 = vl; - vecMap[`${v3.id}-${u3.id}`] = { vx, vy, vl2, vl }; - vecMap[`${u3.id}-${v3.id}`] = { vl2, vl, vx: -vx, vy: -vy }; - }); - }); - self2.updateComboSizes(comboMap); - self2.calRepulsive(displacements, vecMap); - self2.calAttractive(displacements, vecMap); - const preventComboOverlap = self2.preventComboOverlap; - if (preventComboOverlap) - self2.comboNonOverlapping(displacements, comboMap); - } - updateComboSizes(comboMap) { - const self2 = this; - const comboTrees = self2.comboTrees; - const nodeMap = self2.nodeMap; - const nodeSize = self2.nodeSize; - const comboSpacing = self2.comboSpacing; - const comboPadding = self2.comboPadding; - (comboTrees || []).forEach((ctree) => { - const treeChildren = []; - traverseTreeUp3(ctree, (treeNode) => { - if (treeNode.itemType === "node") - return true; - const c5 = comboMap[treeNode.id]; - if (!c5) - return false; - const children = treeNode.children; - if (children) { - children.forEach((child) => { - if (!comboMap[child.id] && !nodeMap[child.id]) - return; - treeChildren.push(child); - }); - } - c5.minX = Infinity; - c5.minY = Infinity; - c5.maxX = -Infinity; - c5.maxY = -Infinity; - treeChildren.forEach((child) => { - if (child.itemType !== "node") - return true; - const node = nodeMap[child.id]; - if (!node) - return true; - const r4 = nodeSize(node); - const nodeMinX = node.x - r4; - const nodeMinY = node.y - r4; - const nodeMaxX = node.x + r4; - const nodeMaxY = node.y + r4; - if (c5.minX > nodeMinX) - c5.minX = nodeMinX; - if (c5.minY > nodeMinY) - c5.minY = nodeMinY; - if (c5.maxX < nodeMaxX) - c5.maxX = nodeMaxX; - if (c5.maxY < nodeMaxY) - c5.maxY = nodeMaxY; - }); - let minSize = self2.oriComboMap[treeNode.id].size || 10; - if (isArray2(minSize)) - minSize = minSize[0]; - const maxLength = Math.max(c5.maxX - c5.minX, c5.maxY - c5.minY, minSize); - c5.r = maxLength / 2 + comboSpacing(c5) / 2 + comboPadding(c5); - return true; - }); - }); - } - comboNonOverlapping(displacements, comboMap) { - const self2 = this; - const comboTree = self2.comboTree; - const comboCollideStrength = self2.comboCollideStrength; - const indexMap = self2.indexMap; - const nodeMap = self2.nodeMap; - traverseTreeUp3(comboTree, (treeNode) => { - if (!comboMap[treeNode.id] && !nodeMap[treeNode.id] && treeNode.id !== "comboTreeRoot") { - return false; - } - const children = treeNode.children; - if (children && children.length > 1) { - children.forEach((v3, i4) => { - if (v3.itemType === "node") - return false; - const cv = comboMap[v3.id]; - if (!cv) - return; - children.forEach((u3, j4) => { - if (i4 <= j4) - return false; - if (u3.itemType === "node") - return false; - const cu = comboMap[u3.id]; - if (!cu) - return false; - const vx = cv.cx - cu.cx || 5e-3; - const vy = cv.cy - cu.cy || 5e-3; - const l4 = vx * vx + vy * vy; - const rv = cv.r || 1; - const ru = cu.r || 1; - const r4 = rv + ru; - const ru2 = ru * ru; - const rv2 = rv * rv; - if (l4 < r4 * r4) { - const vnodes = v3.children; - if (!vnodes || vnodes.length === 0) - return false; - const unodes = u3.children; - if (!unodes || unodes.length === 0) - return false; - const sqrtl = Math.sqrt(l4); - const ll = (r4 - sqrtl) / sqrtl * comboCollideStrength; - const xl = vx * ll; - const yl = vy * ll; - const rratio = ru2 / (rv2 + ru2); - const irratio = 1 - rratio; - vnodes.forEach((vn) => { - if (vn.itemType !== "node") - return false; - if (!nodeMap[vn.id]) - return; - const vindex = indexMap[vn.id]; - unodes.forEach((un2) => { - if (un2.itemType !== "node") - return false; - if (!nodeMap[un2.id]) - return false; - const uindex = indexMap[un2.id]; - displacements[vindex].x += xl * rratio; - displacements[vindex].y += yl * rratio; - displacements[uindex].x -= xl * irratio; - displacements[uindex].y -= yl * irratio; - }); - }); - } - }); - }); - } - return true; - }); - } - calRepulsive(displacements, vecMap) { - const self2 = this; - const nodes = self2.nodes; - const max8 = self2.width * self2.optimizeRangeFactor; - const nodeStrength = self2.nodeStrength; - const alpha = self2.alpha; - const nodeCollideStrength = self2.nodeCollideStrength; - const preventNodeOverlap = self2.preventNodeOverlap; - const nodeSizeFunc = self2.nodeSize; - const nodeSpacingFunc = self2.nodeSpacing; - const scale12 = self2.depthRepulsiveForceScale; - const center2 = self2.center; - nodes.forEach((v3, i4) => { - if (!v3.x || !v3.y) - return; - if (center2) { - const gravity = self2.gravity; - const vecX = v3.x - center2[0] || 5e-3; - const vecY = v3.y - center2[1] || 5e-3; - const l4 = Math.sqrt(vecX * vecX + vecY * vecY); - displacements[i4].x -= vecX * gravity * alpha / l4; - displacements[i4].y -= vecY * gravity * alpha / l4; - } - nodes.forEach((u3, j4) => { - if (i4 === j4) { - return; - } - if (!u3.x || !u3.y) - return; - const { vl2, vl } = vecMap[`${v3.id}-${u3.id}`]; - if (vl > max8) - return; - const { vx, vy } = vecMap[`${v3.id}-${u3.id}`]; - let depthDiff = Math.log(Math.abs(u3.depth - v3.depth) / 10) + 1 || 1; - depthDiff = depthDiff < 1 ? 1 : depthDiff; - if (u3.comboId !== v3.comboId) - depthDiff += 1; - const depthParam = depthDiff ? Math.pow(scale12, depthDiff) : 1; - const params = nodeStrength(u3) * alpha / vl2 * depthParam; - displacements[i4].x += vx * params; - displacements[i4].y += vy * params; - if (i4 < j4 && preventNodeOverlap) { - const ri = nodeSizeFunc(v3) + nodeSpacingFunc(v3) || 1; - const rj = nodeSizeFunc(u3) + nodeSpacingFunc(u3) || 1; - const r4 = ri + rj; - if (vl2 < r4 * r4) { - const ll = (r4 - vl) / vl * nodeCollideStrength; - const rj2 = rj * rj; - let rratio = rj2 / (ri * ri + rj2); - const xl = vx * ll; - const yl = vy * ll; - displacements[i4].x += xl * rratio; - displacements[i4].y += yl * rratio; - rratio = 1 - rratio; - displacements[j4].x -= xl * rratio; - displacements[j4].y -= yl * rratio; - } - } - }); - }); - } - calAttractive(displacements, vecMap) { - const self2 = this; - const edges = self2.edges; - const linkDistance = self2.linkDistance; - const alpha = self2.alpha; - const edgeStrength = self2.edgeStrength; - const bias = self2.bias; - const scale12 = self2.depthAttractiveForceScale; - edges.forEach((e4, i4) => { - const source = getEdgeTerminal(e4, "source"); - const target = getEdgeTerminal(e4, "target"); - if (!source || !target || source === target) - return; - const uIndex = self2.indexMap[source]; - const vIndex = self2.indexMap[target]; - const u3 = self2.nodeMap[source]; - const v3 = self2.nodeMap[target]; - if (!u3 || !v3) - return; - let depthDiff = u3.depth === v3.depth ? 0 : Math.log(Math.abs(u3.depth - v3.depth) / 10); - if (u3.comboId === v3.comboId) { - depthDiff = depthDiff / 2; - } - let depthParam = depthDiff ? Math.pow(scale12, depthDiff) : 1; - if (u3.comboId !== v3.comboId && depthParam === 1) { - depthParam = scale12 / 2; - } else if (u3.comboId === v3.comboId) { - depthParam = 2; - } - if (!isNumber3(v3.x) || !isNumber3(u3.x) || !isNumber3(v3.y) || !isNumber3(u3.y)) { - return; - } - const { vl, vx, vy } = vecMap[`${target}-${source}`]; - const l4 = (vl - linkDistance(e4)) / vl * alpha * edgeStrength(e4) * depthParam; - const vecX = vx * l4; - const vecY = vy * l4; - const b10 = bias[i4]; - displacements[vIndex].x -= vecX * b10; - displacements[vIndex].y -= vecY * b10; - displacements[uIndex].x += vecX * (1 - b10); - displacements[uIndex].y += vecY * (1 - b10); - }); - } - getType() { - return "comboForce"; - } -}; - -// node_modules/@antv/layout/es/layout/forceAtlas2/body.js -var Body = class { - constructor(params) { - this.id = params.id || 0; - this.rx = params.rx; - this.ry = params.ry; - this.fx = 0; - this.fy = 0; - this.mass = params.mass; - this.degree = params.degree; - this.g = params.g || 0; - } - distanceTo(bo) { - const dx = this.rx - bo.rx; - const dy = this.ry - bo.ry; - return Math.hypot(dx, dy); - } - setPos(x6, y5) { - this.rx = x6; - this.ry = y5; - } - resetForce() { - this.fx = 0; - this.fy = 0; - } - addForce(b10) { - const dx = b10.rx - this.rx; - const dy = b10.ry - this.ry; - let dist4 = Math.hypot(dx, dy); - dist4 = dist4 < 1e-4 ? 1e-4 : dist4; - const F3 = this.g * (this.degree + 1) * (b10.degree + 1) / dist4; - this.fx += F3 * dx / dist4; - this.fy += F3 * dy / dist4; - } - in(quad) { - return quad.contains(this.rx, this.ry); - } - add(bo) { - const nenwMass = this.mass + bo.mass; - const x6 = (this.rx * this.mass + bo.rx * bo.mass) / nenwMass; - const y5 = (this.ry * this.mass + bo.ry * bo.mass) / nenwMass; - const dg = this.degree + bo.degree; - const params = { - rx: x6, - ry: y5, - mass: nenwMass, - degree: dg - }; - return new Body(params); - } -}; - -// node_modules/@antv/layout/es/layout/forceAtlas2/quad.js -var Quad = class { - constructor(params) { - this.xmid = params.xmid; - this.ymid = params.ymid; - this.length = params.length; - this.massCenter = params.massCenter || [0, 0]; - this.mass = params.mass || 1; - } - getLength() { - return this.length; - } - contains(x6, y5) { - const halfLen = this.length / 2; - return x6 <= this.xmid + halfLen && x6 >= this.xmid - halfLen && y5 <= this.ymid + halfLen && y5 >= this.ymid - halfLen; - } - NW() { - const x6 = this.xmid - this.length / 4; - const y5 = this.ymid + this.length / 4; - const len5 = this.length / 2; - const params = { - xmid: x6, - ymid: y5, - length: len5 - }; - const NW = new Quad(params); - return NW; - } - NE() { - const x6 = this.xmid + this.length / 4; - const y5 = this.ymid + this.length / 4; - const len5 = this.length / 2; - const params = { - xmid: x6, - ymid: y5, - length: len5 - }; - const NE = new Quad(params); - return NE; - } - SW() { - const x6 = this.xmid - this.length / 4; - const y5 = this.ymid - this.length / 4; - const len5 = this.length / 2; - const params = { - xmid: x6, - ymid: y5, - length: len5 - }; - const SW = new Quad(params); - return SW; - } - SE() { - const x6 = this.xmid + this.length / 4; - const y5 = this.ymid - this.length / 4; - const len5 = this.length / 2; - const params = { - xmid: x6, - ymid: y5, - length: len5 - }; - const SE = new Quad(params); - return SE; - } -}; - -// node_modules/@antv/layout/es/layout/forceAtlas2/quadTree.js -var QuadTree = class { - constructor(param) { - this.body = null; - this.quad = null; - this.NW = null; - this.NE = null; - this.SW = null; - this.SE = null; - this.theta = 0.5; - if (param != null) - this.quad = param; - } - insert(bo) { - if (this.body == null) { - this.body = bo; - return; - } - if (!this._isExternal()) { - this.body = this.body.add(bo); - this._putBody(bo); - } else { - if (this.quad) { - this.NW = new QuadTree(this.quad.NW()); - this.NE = new QuadTree(this.quad.NE()); - this.SW = new QuadTree(this.quad.SW()); - this.SE = new QuadTree(this.quad.SE()); - } - this._putBody(this.body); - this._putBody(bo); - this.body = this.body.add(bo); - } - } - _putBody(bo) { - if (!this.quad) - return; - if (bo.in(this.quad.NW()) && this.NW) - this.NW.insert(bo); - else if (bo.in(this.quad.NE()) && this.NE) - this.NE.insert(bo); - else if (bo.in(this.quad.SW()) && this.SW) - this.SW.insert(bo); - else if (bo.in(this.quad.SE()) && this.SE) - this.SE.insert(bo); - } - _isExternal() { - return this.NW == null && this.NE == null && this.SW == null && this.SE == null; - } - updateForce(bo) { - if (this.body == null || bo === this.body) { - return; - } - if (this._isExternal()) - bo.addForce(this.body); - else { - const s4 = this.quad ? this.quad.getLength() : 0; - const d3 = this.body.distanceTo(bo); - if (s4 / d3 < this.theta) - bo.addForce(this.body); - else { - this.NW && this.NW.updateForce(bo); - this.NE && this.NE.updateForce(bo); - this.SW && this.SW.updateForce(bo); - this.SE && this.SE.updateForce(bo); - } - } - } -}; - -// node_modules/@antv/layout/es/layout/forceAtlas2/index.js -var ForceAtlas2Layout = class extends Base3 { - constructor(options) { - super(); - this.center = [0, 0]; - this.width = 300; - this.height = 300; - this.nodes = []; - this.edges = []; - this.kr = 5; - this.kg = 1; - this.mode = "normal"; - this.preventOverlap = false; - this.dissuadeHubs = false; - this.barnesHut = void 0; - this.maxIteration = 0; - this.ks = 0.1; - this.ksmax = 10; - this.tao = 0.1; - this.onLayoutEnd = () => { - }; - this.prune = void 0; - this.updateCfg(options); - } - getDefaultCfg() { - return {}; - } - execute() { - const self2 = this; - const { nodes, onLayoutEnd, prune } = self2; - let maxIteration = self2.maxIteration; - if (!self2.width && typeof window !== "undefined") { - self2.width = window.innerWidth; - } - if (!self2.height && typeof window !== "undefined") { - self2.height = window.innerHeight; - } - const sizes = []; - const nodeNum = nodes.length; - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - const node = nodes[i4]; - let nodeWidth = 10; - let nodeHeight = 10; - if (isNumber3(node.size)) { - nodeWidth = node.size; - nodeHeight = node.size; - } - if (isArray2(node.size)) { - if (!isNaN(node.size[0])) - nodeWidth = node.size[0]; - if (!isNaN(node.size[1])) - nodeHeight = node.size[1]; - } else if (isObject2(node.size)) { - nodeWidth = node.size.width; - nodeHeight = node.size.height; - } - if (self2.getWidth && !isNaN(self2.getWidth(node))) - nodeHeight = self2.getWidth(node); - if (self2.getHeight && !isNaN(self2.getHeight(node))) - nodeWidth = self2.getHeight(node); - const maxSize = Math.max(nodeWidth, nodeHeight); - sizes.push(maxSize); - } - if (self2.barnesHut === void 0 && nodeNum > 250) - self2.barnesHut = true; - if (self2.prune === void 0 && nodeNum > 100) - self2.prune = true; - if (this.maxIteration === 0 && !self2.prune) { - maxIteration = 250; - if (nodeNum <= 200 && nodeNum > 100) - maxIteration = 1e3; - else if (nodeNum > 200) - maxIteration = 1200; - this.maxIteration = maxIteration; - } else if (this.maxIteration === 0 && prune) { - maxIteration = 100; - if (nodeNum <= 200 && nodeNum > 100) - maxIteration = 500; - else if (nodeNum > 200) - maxIteration = 950; - this.maxIteration = maxIteration; - } - if (!self2.kr) { - self2.kr = 50; - if (nodeNum > 100 && nodeNum <= 500) - self2.kr = 20; - else if (nodeNum > 500) - self2.kr = 1; - } - if (!self2.kg) { - self2.kg = 20; - if (nodeNum > 100 && nodeNum <= 500) - self2.kg = 10; - else if (nodeNum > 500) - self2.kg = 1; - } - this.nodes = self2.updateNodesByForces(sizes); - onLayoutEnd(); - } - updateNodesByForces(sizes) { - const self2 = this; - const { edges, maxIteration } = self2; - let nodes = self2.nodes; - const nonLoopEdges = edges.filter((edge2) => { - const source = getEdgeTerminal(edge2, "source"); - const target = getEdgeTerminal(edge2, "target"); - return source !== target; - }); - const size2 = nodes.length; - const esize = nonLoopEdges.length; - const degrees = []; - const idMap = {}; - const edgeEndsIdMap = {}; - const Es = []; - for (let i4 = 0; i4 < size2; i4 += 1) { - idMap[nodes[i4].id] = i4; - degrees[i4] = 0; - if (nodes[i4].x === void 0 || isNaN(nodes[i4].x)) { - nodes[i4].x = Math.random() * 1e3; - } - if (nodes[i4].y === void 0 || isNaN(nodes[i4].y)) { - nodes[i4].y = Math.random() * 1e3; - } - Es.push({ x: nodes[i4].x, y: nodes[i4].y }); - } - for (let i4 = 0; i4 < esize; i4 += 1) { - let node1; - let node2; - let sIdx = 0; - let tIdx = 0; - for (let j4 = 0; j4 < size2; j4 += 1) { - const source = getEdgeTerminal(nonLoopEdges[i4], "source"); - const target = getEdgeTerminal(nonLoopEdges[i4], "target"); - if (nodes[j4].id === source) { - node1 = nodes[j4]; - sIdx = j4; - } else if (nodes[j4].id === target) { - node2 = nodes[j4]; - tIdx = j4; - } - edgeEndsIdMap[i4] = { sourceIdx: sIdx, targetIdx: tIdx }; - } - if (node1) - degrees[idMap[node1.id]] += 1; - if (node2) - degrees[idMap[node2.id]] += 1; - } - let iteration = maxIteration; - nodes = this.iterate(iteration, idMap, edgeEndsIdMap, esize, degrees, sizes); - if (self2.prune) { - for (let j4 = 0; j4 < esize; j4 += 1) { - if (degrees[edgeEndsIdMap[j4].sourceIdx] <= 1) { - nodes[edgeEndsIdMap[j4].sourceIdx].x = nodes[edgeEndsIdMap[j4].targetIdx].x; - nodes[edgeEndsIdMap[j4].sourceIdx].y = nodes[edgeEndsIdMap[j4].targetIdx].y; - } else if (degrees[edgeEndsIdMap[j4].targetIdx] <= 1) { - nodes[edgeEndsIdMap[j4].targetIdx].x = nodes[edgeEndsIdMap[j4].sourceIdx].x; - nodes[edgeEndsIdMap[j4].targetIdx].y = nodes[edgeEndsIdMap[j4].sourceIdx].y; - } - } - self2.prune = false; - self2.barnesHut = false; - iteration = 100; - nodes = this.iterate(iteration, idMap, edgeEndsIdMap, esize, degrees, sizes); - } - return nodes; - } - iterate(iteration, idMap, edgeEndsIdMap, esize, degrees, sizes) { - const self2 = this; - let { nodes } = self2; - const { kr, preventOverlap } = self2; - const { barnesHut } = self2; - const nodeNum = nodes.length; - let sg = 0; - const krPrime = 100; - let iter = iteration; - const prevoIter = 50; - let forces = []; - const preForces = []; - const bodies = []; - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - forces[2 * i4] = 0; - forces[2 * i4 + 1] = 0; - if (barnesHut) { - const params = { - id: i4, - rx: nodes[i4].x, - ry: nodes[i4].y, - mass: 1, - g: kr, - degree: degrees[i4] - }; - bodies[i4] = new Body(params); - } - } - while (iter > 0) { - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - preForces[2 * i4] = forces[2 * i4]; - preForces[2 * i4 + 1] = forces[2 * i4 + 1]; - forces[2 * i4] = 0; - forces[2 * i4 + 1] = 0; - } - forces = this.getAttrForces(iter, prevoIter, esize, idMap, edgeEndsIdMap, degrees, sizes, forces); - if (barnesHut && (preventOverlap && iter > prevoIter || !preventOverlap)) { - forces = this.getOptRepGraForces(forces, bodies, degrees); - } else { - forces = this.getRepGraForces(iter, prevoIter, forces, krPrime, sizes, degrees); - } - const res = this.updatePos(forces, preForces, sg, degrees); - nodes = res.nodes; - sg = res.sg; - iter--; - if (self2.tick) - self2.tick(); - } - return nodes; - } - getAttrForces(iter, prevoIter, esize, idMap, edgeEndsIdMap, degrees, sizes, forces) { - const self2 = this; - const { nodes, preventOverlap, dissuadeHubs, mode, prune } = self2; - for (let i4 = 0; i4 < esize; i4 += 1) { - const sourceNode = nodes[edgeEndsIdMap[i4].sourceIdx]; - const sourceIdx = edgeEndsIdMap[i4].sourceIdx; - const targetNode = nodes[edgeEndsIdMap[i4].targetIdx]; - const targetIdx = edgeEndsIdMap[i4].targetIdx; - if (prune && (degrees[sourceIdx] <= 1 || degrees[targetIdx] <= 1)) - continue; - const dir = [targetNode.x - sourceNode.x, targetNode.y - sourceNode.y]; - let eucliDis = Math.hypot(dir[0], dir[1]); - eucliDis = eucliDis < 1e-4 ? 1e-4 : eucliDis; - dir[0] = dir[0] / eucliDis; - dir[1] = dir[1] / eucliDis; - if (preventOverlap && iter < prevoIter) - eucliDis = eucliDis - sizes[sourceIdx] - sizes[targetIdx]; - let Fa1 = eucliDis; - let Fa2 = Fa1; - if (mode === "linlog") { - Fa1 = Math.log(1 + eucliDis); - Fa2 = Fa1; - } - if (dissuadeHubs) { - Fa1 = eucliDis / degrees[sourceIdx]; - Fa2 = eucliDis / degrees[targetIdx]; - } - if (preventOverlap && iter < prevoIter && eucliDis <= 0) { - Fa1 = 0; - Fa2 = 0; - } else if (preventOverlap && iter < prevoIter && eucliDis > 0) { - Fa1 = eucliDis; - Fa2 = eucliDis; - } - forces[2 * idMap[sourceNode.id]] += Fa1 * dir[0]; - forces[2 * idMap[targetNode.id]] -= Fa2 * dir[0]; - forces[2 * idMap[sourceNode.id] + 1] += Fa1 * dir[1]; - forces[2 * idMap[targetNode.id] + 1] -= Fa2 * dir[1]; - } - return forces; - } - getRepGraForces(iter, prevoIter, forces, krPrime, sizes, degrees) { - const self2 = this; - const { nodes, preventOverlap, kr, kg, center: center2, prune } = self2; - const nodeNum = nodes.length; - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - for (let j4 = i4 + 1; j4 < nodeNum; j4 += 1) { - if (prune && (degrees[i4] <= 1 || degrees[j4] <= 1)) - continue; - const dir2 = [nodes[j4].x - nodes[i4].x, nodes[j4].y - nodes[i4].y]; - let eucliDis2 = Math.hypot(dir2[0], dir2[1]); - eucliDis2 = eucliDis2 < 1e-4 ? 1e-4 : eucliDis2; - dir2[0] = dir2[0] / eucliDis2; - dir2[1] = dir2[1] / eucliDis2; - if (preventOverlap && iter < prevoIter) - eucliDis2 = eucliDis2 - sizes[i4] - sizes[j4]; - let Fr = kr * (degrees[i4] + 1) * (degrees[j4] + 1) / eucliDis2; - if (preventOverlap && iter < prevoIter && eucliDis2 < 0) { - Fr = krPrime * (degrees[i4] + 1) * (degrees[j4] + 1); - } else if (preventOverlap && iter < prevoIter && eucliDis2 === 0) { - Fr = 0; - } else if (preventOverlap && iter < prevoIter && eucliDis2 > 0) { - Fr = kr * (degrees[i4] + 1) * (degrees[j4] + 1) / eucliDis2; - } - forces[2 * i4] -= Fr * dir2[0]; - forces[2 * j4] += Fr * dir2[0]; - forces[2 * i4 + 1] -= Fr * dir2[1]; - forces[2 * j4 + 1] += Fr * dir2[1]; - } - const dir = [nodes[i4].x - center2[0], nodes[i4].y - center2[1]]; - const eucliDis = Math.hypot(dir[0], dir[1]); - dir[0] = dir[0] / eucliDis; - dir[1] = dir[1] / eucliDis; - const Fg = kg * (degrees[i4] + 1); - forces[2 * i4] -= Fg * dir[0]; - forces[2 * i4 + 1] -= Fg * dir[1]; - } - return forces; - } - getOptRepGraForces(forces, bodies, degrees) { - const self2 = this; - const { nodes, kg, center: center2, prune } = self2; - const nodeNum = nodes.length; - let minx = 9e10; - let maxx = -9e10; - let miny = 9e10; - let maxy = -9e10; - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - if (prune && degrees[i4] <= 1) - continue; - bodies[i4].setPos(nodes[i4].x, nodes[i4].y); - if (nodes[i4].x >= maxx) - maxx = nodes[i4].x; - if (nodes[i4].x <= minx) - minx = nodes[i4].x; - if (nodes[i4].y >= maxy) - maxy = nodes[i4].y; - if (nodes[i4].y <= miny) - miny = nodes[i4].y; - } - const width2 = Math.max(maxx - minx, maxy - miny); - const quadParams = { - xmid: (maxx + minx) / 2, - ymid: (maxy + miny) / 2, - length: width2, - massCenter: center2, - mass: nodeNum - }; - const quad = new Quad(quadParams); - const quadTree = new QuadTree(quad); - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - if (prune && degrees[i4] <= 1) - continue; - if (bodies[i4].in(quad)) - quadTree.insert(bodies[i4]); - } - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - if (prune && degrees[i4] <= 1) - continue; - bodies[i4].resetForce(); - quadTree.updateForce(bodies[i4]); - forces[2 * i4] -= bodies[i4].fx; - forces[2 * i4 + 1] -= bodies[i4].fy; - const dir = [nodes[i4].x - center2[0], nodes[i4].y - center2[1]]; - let eucliDis = Math.hypot(dir[0], dir[1]); - eucliDis = eucliDis < 1e-4 ? 1e-4 : eucliDis; - dir[0] = dir[0] / eucliDis; - dir[1] = dir[1] / eucliDis; - const Fg = kg * (degrees[i4] + 1); - forces[2 * i4] -= Fg * dir[0]; - forces[2 * i4 + 1] -= Fg * dir[1]; - } - return forces; - } - updatePos(forces, preForces, sg, degrees) { - const self2 = this; - const { nodes, ks, tao, prune, ksmax } = self2; - const nodeNum = nodes.length; - const swgns = []; - const trans = []; - let swgG = 0; - let traG = 0; - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - if (prune && degrees[i4] <= 1) - continue; - const minus = [ - forces[2 * i4] - preForces[2 * i4], - forces[2 * i4 + 1] - preForces[2 * i4 + 1] - ]; - const minusNorm = Math.hypot(minus[0], minus[1]); - const add8 = [ - forces[2 * i4] + preForces[2 * i4], - forces[2 * i4 + 1] + preForces[2 * i4 + 1] - ]; - const addNorm = Math.hypot(add8[0], add8[1]); - swgns[i4] = minusNorm; - trans[i4] = addNorm / 2; - swgG += (degrees[i4] + 1) * swgns[i4]; - traG += (degrees[i4] + 1) * trans[i4]; - } - const preSG = sg; - sg = tao * traG / swgG; - if (preSG !== 0) { - sg = sg > 1.5 * preSG ? 1.5 * preSG : sg; - } - for (let i4 = 0; i4 < nodeNum; i4 += 1) { - if (prune && degrees[i4] <= 1) - continue; - let sn = ks * sg / (1 + sg * Math.sqrt(swgns[i4])); - let absForce = Math.hypot(forces[2 * i4], forces[2 * i4 + 1]); - absForce = absForce < 1e-4 ? 1e-4 : absForce; - const max8 = ksmax / absForce; - sn = sn > max8 ? max8 : sn; - const dnx = sn * forces[2 * i4]; - const dny = sn * forces[2 * i4 + 1]; - nodes[i4].x += dnx; - nodes[i4].y += dny; - } - return { nodes, sg }; - } -}; - -// node_modules/@antv/layout/es/layout/er/grid.js -var Grid2 = class { - constructor() { - this.cells = []; - this.columnNum = 0; - this.rowNum = 0; - this.additionColumn = []; - this.additionRow = []; - } - init(width2, height, gridSize) { - this.cells = []; - this.CELL_W = gridSize.CELL_W || Grid2.DEFAULT_CELL_W; - this.CELL_H = gridSize.CELL_H || Grid2.DEFAULT_CELL_H; - this.columnNum = Math.ceil(width2 / this.CELL_W); - this.rowNum = Math.ceil(height / this.CELL_H); - Grid2.MIN_DIST = Math.pow(width2, 2) + Math.pow(height, 2); - for (let i4 = 0; i4 < this.columnNum; i4++) { - const tmp = []; - for (let j4 = 0; j4 < this.rowNum; j4++) { - const cell = { - dx: i4, - dy: j4, - x: i4 * this.CELL_W, - y: j4 * this.CELL_H, - occupied: false - }; - tmp.push(cell); - } - this.cells.push(tmp); - } - } - findGridByNodeId(nodeId) { - var _a6, _b; - for (let i4 = 0; i4 < this.columnNum; i4++) { - for (let j4 = 0; j4 < this.rowNum; j4++) { - if (this.cells[i4][j4].node) { - if (((_b = (_a6 = this.cells[i4][j4]) === null || _a6 === void 0 ? void 0 : _a6.node) === null || _b === void 0 ? void 0 : _b.id) === nodeId) { - return { column: i4, row: j4 }; - } - } - } - } - return null; - } - sqdist(a4, b10) { - return Math.pow(a4.x - b10.x, 2) + Math.pow(a4.y - b10.y, 2); - } - occupyNearest(p4) { - let minDist = Grid2.MIN_DIST; - let d3; - let candidate = null; - for (let i4 = 0; i4 < this.columnNum; i4++) { - for (let j4 = 0; j4 < this.rowNum; j4++) { - if (!this.cells[i4][j4].occupied && (d3 = this.sqdist(p4, this.cells[i4][j4])) < minDist) { - minDist = d3; - candidate = this.cells[i4][j4]; - } - } - } - if (candidate) { - candidate.occupied = true; - } - return candidate; - } - insertColumn(columnIndex, length5) { - if (length5 <= 0) - return; - for (let i4 = 0; i4 < length5; i4++) { - this.cells[i4 + this.columnNum] = []; - for (let j4 = 0; j4 < this.rowNum; j4++) { - this.cells[i4 + this.columnNum][j4] = { - dx: i4, - dy: j4, - x: i4 * this.CELL_W, - y: j4 * this.CELL_H, - occupied: false, - node: null - }; - } - } - for (let i4 = this.columnNum - 1; i4 > columnIndex; i4--) { - for (let j4 = 0; j4 < this.rowNum; j4++) { - this.cells[i4 + length5][j4] = Object.assign(Object.assign({}, this.cells[i4][j4]), { x: (i4 + length5) * this.CELL_W, y: j4 * this.CELL_H }); - this.cells[i4][j4] = { - x: i4 * this.CELL_W, - y: j4 * this.CELL_H, - occupied: true, - node: null - }; - } - } - for (let j4 = 0; j4 < this.additionColumn.length; j4++) { - if (this.additionColumn[j4] >= columnIndex) { - this.additionColumn[j4] += length5; - } - } - for (let i4 = 0; i4 < length5; i4++) { - this.additionColumn.push(columnIndex + i4 + 1); - } - this.columnNum += length5; - } - insertRow(rowIndex, length5) { - if (length5 <= 0) - return; - for (let j4 = 0; j4 < length5; j4++) { - for (let i4 = 0; i4 < this.columnNum; i4++) { - this.cells[i4][j4 + this.rowNum] = { - dx: i4, - dy: j4, - x: i4 * this.CELL_W, - y: j4 * this.CELL_H, - occupied: false, - node: null - }; - } - } - for (let i4 = 0; i4 < this.columnNum; i4++) { - for (let j4 = this.rowNum - 1; j4 > rowIndex; j4--) { - this.cells[i4][j4 + length5] = Object.assign(Object.assign({}, this.cells[i4][j4]), { dx: i4, dy: j4 + length5, x: i4 * this.CELL_W, y: (j4 + length5) * this.CELL_H }); - this.cells[i4][j4] = { - dx: i4, - dy: j4, - x: i4 * this.CELL_W, - y: j4 * this.CELL_H, - occupied: false, - node: null - }; - } - } - for (let j4 = 0; j4 < this.additionRow.length; j4++) { - if (this.additionRow[j4] >= rowIndex) { - this.additionRow[j4] += length5; - } - } - for (let i4 = 0; i4 < length5; i4++) { - this.additionRow.push(rowIndex + i4 + 1); - } - this.rowNum += length5; - } - getNodes() { - const nodes = []; - for (let i4 = 0; i4 < this.columnNum; i4++) { - for (let j4 = 0; j4 < this.rowNum; j4++) { - if (this.cells[i4][j4].node) { - nodes.push(this.cells[i4][j4]); - } - } - } - return nodes; - } -}; -Grid2.MIN_DIST = 50; -Grid2.DEFAULT_CELL_W = 80; -Grid2.DEFAULT_CELL_H = 80; - -// node_modules/@antv/layout/es/layout/er/forceGrid.js -function layout3(data3, options) { - if (!data3.nodes || data3.nodes.length === 0) - return data3; - const width2 = options.width; - const height = options.height; - const nodeMinGap = options.nodeMinGap; - let CELL_W2 = 1e4; - let CELL_H2 = 1e4; - data3.nodes.forEach((node) => { - const nodeWidth = node.size[0] || 50; - const nodeHeight = node.size[1] || 50; - CELL_W2 = Math.min(nodeWidth, CELL_W2); - CELL_H2 = Math.min(nodeHeight, CELL_H2); - }); - const grid = new Grid2(); - grid.init(width2, height, { - CELL_H: CELL_H2, - CELL_W: CELL_W2 - }); - data3.nodes.forEach((d3) => { - const gridpoint = grid.occupyNearest(d3); - if (gridpoint) { - gridpoint.node = { - id: d3.id, - size: d3.size - }; - d3.x = gridpoint.x; - d3.y = gridpoint.y; - d3.dx = gridpoint.dx; - d3.dy = gridpoint.dy; - } - }); - for (let i4 = 0; i4 < data3.nodes.length; i4++) { - const node = data3.nodes[i4]; - const result = grid.findGridByNodeId(node.id); - if (!result) - throw new Error("can not find node cell"); - const { column, row } = result; - if (node.size[0] + nodeMinGap > CELL_W2) { - const addGridSize = Math.ceil((node.size[0] + nodeMinGap) / CELL_W2) - 1; - let realAdd = addGridSize; - for (let j4 = 0; j4 < addGridSize; j4++) { - const hasColumn = grid.additionColumn.indexOf(column + j4 + 1) > -1; - if (hasColumn && !grid.cells[column + j4 + 1][row].node) { - realAdd--; - } else { - break; - } - } - grid.insertColumn(column, realAdd); - } - if (node.size[1] + nodeMinGap > CELL_H2) { - const addGridSize = Math.ceil((node.size[1] + nodeMinGap) / CELL_H2) - 1; - let realAdd = addGridSize; - for (let j4 = 0; j4 < addGridSize; j4++) { - const hasColumn = grid.additionRow.indexOf(row + j4 + 1) > -1; - if (hasColumn && !grid.cells[column][row + j4 + 1].node) { - realAdd--; - } else { - break; - } - } - grid.insertRow(row, realAdd); - } - } - for (let i4 = 0; i4 < grid.columnNum; i4++) { - for (let j4 = 0; j4 < grid.rowNum; j4++) { - const cell = grid.cells[i4][j4]; - if (cell.node) { - const node = data3.nodes.find((node2) => { - var _a6; - return node2.id === ((_a6 = cell === null || cell === void 0 ? void 0 : cell.node) === null || _a6 === void 0 ? void 0 : _a6.id); - }); - if (node) { - node.x = cell.x + node.size[0] / 2; - node.y = cell.y + node.size[1] / 2; - } - } - } - } -} - -// node_modules/@antv/layout/es/layout/er/mysqlWorkbench.js -var graphWidth = 1200; -var graphHeight = 800; -var OVERLAP_QUOT = 1e7; -var MIN_DIST = 10; -var M_PI = 3.141592653589793; -var M_PI_2 = 1.5707963267948966; -var PI_38 = M_PI * 0.375; -var PI_58 = M_PI * 0.625; -var nodeEdgeMap = new Map(); -var CELL_W = 10; -var CELL_H = 10; -var T4 = 0.8; -var T_MIN = 0.1; -var R2 = 0.5; -function distanceToNode(node1, node2, isHoriz) { - const x11 = node1.x - node1.size[0] / 2; - const y11 = node1.y - node1.size[1] / 2; - const x12 = node1.x + node1.size[0] / 2; - const y12 = node1.y + node1.size[1] / 2; - const x21 = node2.x - node2.size[0] / 2; - const y21 = node2.y - node2.size[1] / 2; - const x22 = node2.x + node2.size[0] / 2; - const y22 = node2.y + node2.size[1] / 2; - const cx1 = node1.x; - const cy1 = node1.y; - const cx2 = node2.x; - const cy2 = node2.y; - const dcx = cx2 - cx1; - const qr = Math.atan2(dcx, cy2 - cy1); - let dx = 0; - let dy = 0; - let l1 = 0; - let l22 = 0; - if (qr > M_PI_2) { - dy = y11 - y22; - dx = x21 - x12; - l1 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : dx.toFixed(2)); - l22 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : dy.toFixed(2)); - } else if (0 < qr && qr <= M_PI_2) { - dy = y21 - y12; - dx = x21 - x12; - if (dy > dx) { - l1 = l22 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : dx.toFixed(2)); - } else { - l1 = l22 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : dy.toFixed(2)); - } - } else if (qr < -M_PI_2) { - dy = y11 - y22; - dx = -(x22 - x11); - if (dy > dx) { - l1 = l22 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : dx.toFixed(2)); - } else { - l1 = l22 = parseFloat(dx ? (dx / Math.sin(qr)).toFixed(2) : dy.toFixed(2)); - } - } else { - dy = y21 - y12; - if (Math.abs(dcx) > (x12 - x11) / 2) { - dx = x11 - x22; - } else { - dx = dcx; - } - if (dy > dx) { - l1 = l22 = parseFloat(dy ? (dy / Math.cos(qr)).toFixed(2) : dx.toFixed(2)); - } else { - l1 = l22 = parseFloat(dx && qr !== 0 ? (dx / Math.sin(qr)).toFixed(2) : dy.toFixed(2)); - } - } - const aqr = parseFloat(qr.toFixed(2)); - let newHoriz = isHoriz; - if (isHoriz) { - newHoriz = PI_38 < aqr && aqr < PI_58; - } - return { - distance: Math.abs(l1 < l22 ? l1 : l22), - isHoriz: newHoriz - }; -} -function calcNodePair(nodeA, nodeB) { - const edges = nodeEdgeMap.get(nodeA.id) || []; - const isLinked = edges.find((edge2) => { - return edge2.source === nodeB.id || edge2.target === nodeB.id; - }); - const areaA = nodeA.size[0] * nodeA.size[1]; - const areaB = nodeB.size[0] * nodeB.size[1]; - const node1 = areaA > areaB ? nodeB : nodeA; - const node2 = areaA > areaB ? nodeA : nodeB; - const x11 = node1.x - node1.size[0] / 2; - const y11 = node1.y - node1.size[1] / 2; - const x12 = node1.x + node1.size[0] / 2; - const y12 = node1.y + node1.size[1] / 2; - const x21 = node2.x - node2.size[0] / 2; - const y21 = node2.y - node2.size[1] / 2; - const x22 = node2.x + node2.size[0] / 2; - const y22 = node2.y + node2.size[1] / 2; - const cx1 = node1.x; - const cy1 = node1.y; - const cx2 = node2.x; - const cy2 = node2.y; - const isoverlap = x12 >= x21 && x22 >= x11 && y12 >= y21 && y22 >= y11; - let e4 = 0; - let distance15 = 0; - if (isoverlap) { - distance15 = Math.sqrt(Math.pow(cx2 - cx1, 2) + Math.pow(cy2 - cy1, 2)); - const sx1 = x11 > x21 ? x11 : x21; - const sy1 = y11 > y21 ? y11 : y21; - const sx2 = x12 < x22 ? x12 : x22; - const sy2 = y12 < y22 ? y12 : y22; - const dsx = sx2 - sx1; - const dsy = sy2 - sy1; - const sov = dsx * dsy; - if (distance15 === 0) { - distance15 = 1e-7; - } - e4 = MIN_DIST * 1 / distance15 * 100 + sov; - e4 *= OVERLAP_QUOT; - } else { - let isHoriz = false; - const res = distanceToNode(node1, node2, isHoriz); - distance15 = res.distance; - isHoriz = res.isHoriz; - if (distance15 <= MIN_DIST) { - if (distance15 !== 0) { - if (isLinked) { - e4 += MIN_DIST + OVERLAP_QUOT * 1 / distance15; - } else { - e4 += MIN_DIST + OVERLAP_QUOT * MIN_DIST / distance15; - } - } else { - e4 += OVERLAP_QUOT; - } - } else { - e4 += distance15; - if (isLinked) { - e4 += distance15 * distance15; - } - } - } - return e4; -} -function calcEnergy(nodes) { - let energy = 0; - for (let i4 = 0; i4 < nodes.length; i4++) { - const node = nodes[i4]; - if (node.x < 0 || node.y < 0 || node.x > graphWidth || node.y > graphHeight) { - energy += 1e12; - } - for (let j4 = i4 + 1; j4 < nodes.length; j4++) { - energy += calcNodePair(node, nodes[j4]); - } - } - return energy; -} -function isCorrectPosition(node, newPosition, nodes, edges) { - const nodeIdxMap = new Map(); - nodes.forEach((o3, i4) => { - nodeIdxMap.set(o3.id, o3); - }); - const relateEdges = edges.filter((edge2) => edge2.source === node.id || edge2.target === node.id) || []; - const relateNodes = []; - relateEdges.forEach((edge2) => { - const otherNodeId = edge2.source === node.id ? edge2.target : edge2.source; - const otherNode = nodeIdxMap.get(otherNodeId); - if (otherNode) { - relateNodes.push(otherNode); - } - }); - let flag = true; - for (let i4 = 0; i4 < relateNodes.length; i4++) { - const item = relateNodes[i4]; - const delta = Math.atan((node.y - item.y) / (item.x - node.y)) * 180; - const newDelta = Math.atan((newPosition.y - item.y) / (item.x - newPosition.y)) * 180; - const isHor = delta < 30 || delta > 150; - const newIsHor = newDelta < 30 || newDelta > 150; - const isVer = delta > 70 && delta < 110; - const newIsVer = newDelta > 70 && newDelta < 110; - if (isHor && !newIsHor || delta * newDelta < 0) { - flag = false; - break; - } else if (isVer && !newIsVer || delta * newDelta < 0) { - flag = false; - break; - } else if ((item.x - node.x) * (item.x - newPosition.x) < 0) { - flag = false; - break; - } else if ((item.y - node.y) * (item.y - newPosition.y) < 0) { - flag = false; - break; - } - } - return flag; -} -function shuffle2(nodes, edges) { - let foundSmallerEnergy = false; - const step = 1; - const wstep = CELL_W * step; - const hstep = CELL_H * step; - const wsteps = [wstep, -wstep, 0, 0]; - const hsteps = [0, 0, hstep, -hstep]; - for (let i4 = 0; i4 < nodes.length; ++i4) { - const node = nodes[i4]; - let nodeEnergy = calcNodeEnergy(node, nodes); - for (let ns = 0; ns < wsteps.length; ns++) { - const flag = isCorrectPosition(node, { x: node.x + wsteps[ns], y: node.y + hsteps[ns] }, nodes, edges); - if (flag) { - node.x += wsteps[ns]; - node.y += hsteps[ns]; - const energy = calcNodeEnergy(node, nodes); - const rdm = Math.random(); - if (energy < nodeEnergy) { - nodeEnergy = energy; - foundSmallerEnergy = true; - } else if (rdm < T4 && rdm > T_MIN) { - nodeEnergy = energy; - foundSmallerEnergy = true; - } else { - node.x -= wsteps[ns]; - node.y -= hsteps[ns]; - } - } - } - } - if (T4 > T_MIN) { - T4 *= R2; - } - if (foundSmallerEnergy) { - return calcEnergy(nodes); - } - return 0; -} -function calcNodeEnergy(node, nodes) { - let e4 = 0; - if (node.x < 0 || node.y < 0 || node.x + node.size[0] + 20 > graphWidth || node.y + node.size[1] + 20 > graphHeight) { - e4 += 1e12; - } - for (let i4 = 0; i4 < nodes.length; ++i4) { - if (node.id !== nodes[i4].id) { - e4 += calcNodePair(node, nodes[i4]); - } - } - return e4; -} -function layout4(nodes, edges) { - if (nodes.length === 0) { - return { nodes, edges }; - } - nodes.forEach((node) => { - const relateEdge = edges.filter((edge2) => edge2.source === node.id || edge2.target === node.id); - nodeEdgeMap.set(node, relateEdge); - }); - nodes.sort((node1, node2) => { - var _a6, _b; - return ((_a6 = nodeEdgeMap.get(node1.id)) === null || _a6 === void 0 ? void 0 : _a6.length) - ((_b = nodeEdgeMap.get(node2.id)) === null || _b === void 0 ? void 0 : _b.length); - }); - let minEnergy = calcEnergy(nodes); - let deSameCount = 20; - let de = 1; - let prevEnergy = 0; - const MAX_COUNT = 50; - let count2 = 0; - while (deSameCount > 0) { - count2++; - if (count2 >= MAX_COUNT) { - break; - } - const ea = shuffle2(nodes, edges); - if (ea !== 0) { - prevEnergy = ea; - } - de = prevEnergy - minEnergy; - minEnergy = prevEnergy; - if (de === 0) { - --deSameCount; - } else { - deSameCount = 20; - } - } - nodes.forEach((node) => { - node.x = node.x - node.size[0] / 2; - node.y = node.y - node.size[1] / 2; - }); - return { - nodes, - edges - }; -} -var mysqlWorkbench_default = layout4; - -// node_modules/@antv/layout/es/layout/er/core.js -function layout5(data3, options) { - const { nodes, edges } = data3; - const width2 = options.width; - const height = options.height; - if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length)) - return Promise.resolve(); - const noLeafNodes = []; - nodes.forEach((node) => { - const relateEdges = edges.filter((edge2) => { - return edge2.source === node.id || edge2.target === node.id; - }); - if (relateEdges.length > 1) { - const temp = Object.assign({}, node); - delete temp.size; - noLeafNodes.push(temp); - } - }); - const noLeafEdge = []; - edges.forEach((edge2) => { - const sourceNode = noLeafNodes.find((node) => node.id === edge2.source); - const targetNode = noLeafNodes.find((node) => node.id === edge2.target); - if (sourceNode && targetNode) { - noLeafEdge.push(edge2); - } - }); - const graphLayout = new DagreLayout({ - type: "dagre", - ranksep: options.nodeMinGap, - nodesep: options.nodeMinGap - }); - const { nodes: nodesTmp } = graphLayout.layout({ - nodes: noLeafNodes, - edges: noLeafEdge - }); - nodes.forEach((n3) => { - const found = (nodesTmp || []).find((temp) => temp.id === n3.id); - n3.x = (found === null || found === void 0 ? void 0 : found.x) || width2 / 2; - n3.y = (found === null || found === void 0 ? void 0 : found.y) || height / 2; - }); - const copyNodes = JSON.parse(JSON.stringify(nodes)); - const copyEdges = JSON.parse(JSON.stringify(edges)); - const simulation = simulation_default().nodes(copyNodes).force("link", link_default(copyEdges).id((d3) => d3.id).distance((d3) => { - const edgeInfo = noLeafEdge.find((edge2) => edge2.source === d3.source && edge2.target === d3.target); - if (edgeInfo) { - return 30; - } - return 20; - })).force("charge", manyBody_default()).force("center", center_default(width2 / 2, height / 2)).force("x", x_default2(width2 / 2)).force("y", y_default2(height / 2)).alpha(0.3).alphaDecay(0.08).alphaMin(1e-3); - const layoutPromise = new Promise((resolve) => { - simulation.on("end", () => { - nodes.forEach((node) => { - const nodeInfo = copyNodes.find((item) => item.id === node.id); - if (nodeInfo) { - node.x = nodeInfo.x; - node.y = nodeInfo.y; - } - }); - const minX = Math.min(...nodes.map((node) => node.x)); - const maxX = Math.max(...nodes.map((node) => node.x)); - const minY = Math.min(...nodes.map((node) => node.y)); - const maxY2 = Math.max(...nodes.map((node) => node.y)); - const scalex = width2 / (maxX - minX); - const scaley = height / (maxY2 - minY); - nodes.forEach((node) => { - if (node.x !== void 0 && scalex < 1) { - node.x = (node.x - minX) * scalex; - } - if (node.y !== void 0 && scaley < 1) { - node.y = (node.y - minY) * scaley; - } - }); - nodes.forEach((node) => { - node.sizeTemp = node.size; - node.size = [10, 10]; - }); - mysqlWorkbench_default(nodes, edges); - nodes.forEach((node) => { - node.size = node.sizeTemp || []; - delete node.sizeTemp; - }); - layout3({ - nodes, - edges - }, options); - resolve(); - }); - }); - return layoutPromise; -} - -// node_modules/@antv/layout/es/layout/er/index.js -var ERLayout = class extends Base3 { - constructor(options) { - super(); - this.width = 300; - this.height = 300; - this.nodeMinGap = 50; - this.onLayoutEnd = () => { - }; - if (options) { - this.updateCfg(options); - } - } - getDefaultCfg() { - return { - width: 300, - height: 300, - nodeMinGap: 50 - }; - } - execute() { - const self2 = this; - const nodes = self2.nodes; - const edges = self2.edges; - nodes === null || nodes === void 0 ? void 0 : nodes.forEach((node) => { - if (!node.size) { - node.size = [50, 50]; - } - }); - return layout5({ - nodes, - edges - }, { - width: this.width, - height: this.height, - nodeMinGap: this.nodeMinGap - }).then(() => { - if (self2.onLayoutEnd) - self2.onLayoutEnd(); - }); - } - getType() { - return "er"; - } -}; - -// node_modules/@antv/layout/es/layout/layout.js -var Layouts = { - force: ForceLayout, - fruchterman: FruchtermanLayout, - forceAtlas2: ForceAtlas2Layout, - gForce: GForceLayout, - dagre: DagreLayout, - circular: CircularLayout, - radial: RadialLayout, - concentric: ConcentricLayout, - grid: GridLayout, - mds: MDSLayout, - comboForce: ComboForceLayout, - random: RandomLayout, - "gForce-gpu": GForceGPULayout, - "fruchterman-gpu": FruchtermanGPULayout, - er: ERLayout -}; - -// node_modules/@antv/g6-pc/es/layout/index.js -registerLayout("grid", GridLayout); -registerLayout("random", RandomLayout); -registerLayout("force", ForceLayout); -registerLayout("circular", CircularLayout); -registerLayout("dagre", DagreLayout); -registerLayout("radial", RadialLayout); -registerLayout("concentric", ConcentricLayout); -registerLayout("mds", MDSLayout); -registerLayout("fruchterman", FruchtermanLayout); -registerLayout("fruchterman-gpu", FruchtermanGPULayout); -registerLayout("gForce", GForceLayout); -registerLayout("gForce-gpu", GForceGPULayout); -registerLayout("comboForce", ComboForceLayout); -registerLayout("forceAtlas2", ForceAtlas2Layout); -var registerLayout2 = function registerLayout3(name, layoutOverride) { - layoutOverride.isCustomLayout = true; - registerLayout(name, layoutOverride); -}; - -// node_modules/@antv/g6-pc/es/layout/worker/work.js -var WebWorker = function() { - function WebWorker2(worker, workerScirptURL) { - var code = worker.toString(); - var blob = new Blob(["importScripts('" + workerScirptURL + "');(" + code + ")()"], { - type: "text/javascript" - }); - return new Worker(URL.createObjectURL(blob)); - } - return WebWorker2; -}(); -var work_default = WebWorker; - -// node_modules/@antv/g6-pc/es/layout/worker/layout.worker.js -var LayoutWorker = function LayoutWorker2(workerScriptURL) { - if (workerScriptURL === void 0) { - workerScriptURL = "https://unpkg.com/@antv/layout@latest/dist/layout.min.js"; - } - function workerCode() { - var LAYOUT_MESSAGE3 = { - RUN: "LAYOUT_RUN", - END: "LAYOUT_END", - ERROR: "LAYOUT_ERROR", - TICK: "LAYOUT_TICK", - GPURUN: "GPU_LAYOUT_RUN", - GPUEND: "GPU_LAYOUT_END" - }; - layout.registerLayout("grid", layout.GridLayout); - layout.registerLayout("random", layout.RandomLayout); - layout.registerLayout("force", layout.ForceLayout); - layout.registerLayout("circular", layout.CircularLayout); - layout.registerLayout("dagre", layout.DagreLayout); - layout.registerLayout("radial", layout.RadialLayout); - layout.registerLayout("concentric", layout.ConcentricLayout); - layout.registerLayout("mds", layout.MDSLayout); - layout.registerLayout("fruchterman", layout.FruchtermanLayout); - layout.registerLayout("fruchterman-gpu", layout.FruchtermanGPULayout); - layout.registerLayout("gForce", layout.GForceLayout); - layout.registerLayout("gForce-gpu", layout.GForceGPULayout); - layout.registerLayout("comboForce", layout.ComboForceLayout); - layout.registerLayout("forceAtlas2", layout.ForceAtlas2Layout); - function isLayoutMessage(event) { - var type2 = event.data.type; - return type2 === LAYOUT_MESSAGE3.RUN || type2 === LAYOUT_MESSAGE3.GPURUN; - } - function handleLayoutMessage(event) { - var _this = this; - var type2 = event.data.type; - switch (type2) { - case LAYOUT_MESSAGE3.RUN: { - var _a6 = event.data, nodes_1 = _a6.nodes, edges = _a6.edges, _b = _a6.layoutCfg, layoutCfg = _b === void 0 ? {} : _b; - var layoutType = layoutCfg.type; - var LayoutClass = layout.getLayoutByName(layoutType); - if (!LayoutClass) { - this.postMessage({ - type: LAYOUT_MESSAGE3.ERROR, - message: "layout " + layoutType + " not found" - }); - break; - } - var layoutMethod_1; - layoutCfg.onLayoutEnd = function() { - _this.postMessage({ - type: LAYOUT_MESSAGE3.END, - nodes: nodes_1 - }); - layoutMethod_1 === null || layoutMethod_1 === void 0 ? void 0 : layoutMethod_1.destroy(); - }; - layoutMethod_1 = new LayoutClass(layoutCfg); - layoutMethod_1.init({ - nodes: nodes_1, - edges - }); - layoutMethod_1.execute(); - break; - } - case LAYOUT_MESSAGE3.GPURUN: { - var _c = event.data, nodes = _c.nodes, edges = _c.edges, _d = _c.layoutCfg, layoutCfg = _d === void 0 ? {} : _d, canvas = _c.canvas; - var layoutType = layoutCfg.type; - var LayoutClass = layout.getLayoutByName(layoutType); - if (!LayoutClass) { - this.postMessage({ - type: LAYOUT_MESSAGE3.ERROR, - message: "layout " + layoutType + " not found" - }); - break; - } - if (layoutType.split("-")[1] !== "gpu") { - this.postMessage({ - type: LAYOUT_MESSAGE3.ERROR, - message: "layout " + layoutType + " does not support GPU" - }); - break; - } - var layoutMethod = new LayoutClass(layoutCfg); - layoutMethod.init({ - nodes, - edges - }); - layoutMethod.executeWithWorker(canvas, this); - break; - } - default: - break; - } - } - onmessage = function onmessage2(event) { - if (isLayoutMessage(event)) { - handleLayoutMessage(event); - } - }; - } - var layoutWorker = new work_default(workerCode, workerScriptURL); - return layoutWorker; -}; - -// node_modules/@antv/g6-pc/es/layout/worker/layoutConst.js -var LAYOUT_MESSAGE2 = { - RUN: "LAYOUT_RUN", - END: "LAYOUT_END", - ERROR: "LAYOUT_ERROR", - TICK: "LAYOUT_TICK", - GPURUN: "GPU_LAYOUT_RUN", - GPUEND: "GPU_LAYOUT_END" -}; - -// node_modules/@antv/g6-pc/es/util/gpu.js -var gpu_exports = {}; -__export(gpu_exports, { - gpuDetector: () => gpuDetector -}); -var gpuDetector = function gpuDetector2() { - if (typeof window === "undefined" || typeof document === "undefined") - return {}; - return { - canvas: !!window.CanvasRenderingContext2D, - webgl: function() { - try { - var canvas = document.createElement("canvas"); - return !!(window.WebGLRenderingContext && (canvas.getContext("webgl") || canvas.getContext("experimental-webgl"))); - } catch (e4) { - return false; - } - }(), - workers: !!window.Worker, - fileapi: window.File && window.FileReader && window.FileList && window.Blob, - getWebGLErrorMessage: function getWebGLErrorMessage() { - var element = document.createElement("div"); - element.id = "webgl-error-message"; - element.style.fontFamily = "monospace"; - element.style.fontSize = "13px"; - element.style.fontWeight = "normal"; - element.style.textAlign = "center"; - element.style.background = "#fff"; - element.style.color = "#000"; - element.style.padding = "1.5em"; - element.style.width = "400px"; - element.style.margin = "5em auto 0"; - if (!this.webgl) { - element.innerHTML = window.WebGLRenderingContext ? ['Your graphics card does not seem to support WebGL.
    ', 'Find out how to get it here.'].join("\n") : ['Your browser does not seem to support WebGL.
    ', 'Find out how to get it here.'].join("\n"); - } - return element; - }, - addGetWebGLMessage: function addGetWebGLMessage(parameters) { - parameters = parameters || {}; - var parent = parameters.parent !== void 0 ? parameters.parent : document.body; - var id = parameters.id !== void 0 ? parameters.id : "oldie"; - var element = gpuDetector2().getWebGLErrorMessage(); - element.id = id; - parent.appendChild(element); - } - }; -}; - -// node_modules/@antv/g6-pc/es/graph/controller/layout.js -function _typeof4(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof4 = function _typeof5(obj2) { - return typeof obj2; - }; - } else { - _typeof4 = function _typeof5(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof4(obj); -} -var mockRaf = function mockRaf2(cb) { - return setTimeout(cb, 16); -}; -var mockCaf = function mockCaf2(reqId) { - return clearTimeout(reqId); -}; -var helper = { - requestAnimationFrame: function requestAnimationFrame3(callback) { - var fn2 = typeof window !== "undefined" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || mockRaf : mockRaf; - return fn2(callback); - }, - cancelAnimationFrame: function cancelAnimationFrame3(requestId) { - var fn2 = typeof window !== "undefined" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || mockCaf : mockCaf; - return fn2(requestId); - } -}; -var GPULayoutNames = ["fruchterman", "gForce"]; -var LayoutPipesAdjustNames = ["force", "grid", "circular"]; -var LayoutController2 = function(_super) { - __extends(LayoutController3, _super); - function LayoutController3(graph) { - var _this = _super.call(this, graph) || this; - _this.graph = graph; - _this.layoutCfg = graph.get("layout") || {}; - _this.layoutType = _this.getLayoutType(); - _this.worker = null; - _this.workerData = {}; - _this.initLayout(); - return _this; - } - LayoutController3.prototype.initLayout = function() { - }; - LayoutController3.prototype.getWorker = function() { - if (this.worker) { - return this.worker; - } - if (typeof Worker === "undefined") { - console.warn("Web worker is not supported in current browser."); - this.worker = null; - } else { - this.worker = LayoutWorker(this.layoutCfg.workerScriptURL); - } - return this.worker; - }; - LayoutController3.prototype.stopWorker = function() { - var workerData = this.workerData; - if (!this.worker) { - return; - } - this.worker.terminate(); - this.worker = null; - if (workerData.requestId) { - helper.cancelAnimationFrame(workerData.requestId); - workerData.requestId = null; - } - if (workerData.requestId2) { - helper.cancelAnimationFrame(workerData.requestId2); - workerData.requestId2 = null; - } - }; - LayoutController3.prototype.execLayoutMethod = function(layoutCfg, order2) { - var _this = this; - return new Promise(function(reslove, reject) { - var graph = _this.graph; - var layoutType = layoutCfg.type; - layoutCfg.onLayoutEnd = function() { - graph.emit("aftersublayout", { - type: layoutType - }); - reslove(); - }; - if (layoutType && _this.isGPU) { - if (!_this.hasGPUVersion(layoutType)) { - console.warn("The '" + layoutType + "' layout does not support GPU calculation for now, it will run in CPU."); - } else { - layoutType = layoutType + "-gpu"; - } - } - var isForce = layoutType === "force" || layoutType === "g6force" || layoutType === "gForce"; - if (isForce) { - var onTick_1 = layoutCfg.onTick; - var tick = function tick2() { - if (onTick_1) { - onTick_1(); - } - graph.refreshPositions(); - }; - layoutCfg.tick = tick; - } else if (layoutCfg.type === "comboForce") { - layoutCfg.comboTrees = graph.get("comboTrees"); - } - var enableTick = false; - var layoutMethod; - try { - layoutMethod = new Layouts[layoutType](layoutCfg); - } catch (e4) { - console.warn("The layout method: '" + layoutType + "' does not exist! Please specify it first."); - reject(); - } - enableTick = layoutMethod.enableTick; - if (enableTick) { - var onTick_2 = layoutCfg.onTick; - var tick = function tick2() { - if (onTick_2) { - onTick_2(); - } - graph.refreshPositions(); - }; - layoutMethod.tick = tick; - } - var layoutData = _this.filterLayoutData(_this.data, layoutCfg); - addLayoutOrder(layoutData, order2); - layoutMethod.init(layoutData); - graph.emit("beforesublayout", { - type: layoutType - }); - layoutMethod.execute(); - if (layoutMethod.isCustomLayout && layoutCfg.onLayoutEnd) - layoutCfg.onLayoutEnd(); - _this.layoutMethods.push(layoutMethod); - }); - }; - LayoutController3.prototype.updateLayoutMethod = function(layoutMethod, layoutCfg) { - var _this = this; - return new Promise(function(reslove, reject) { - var graph = _this.graph; - var layoutType = layoutCfg === null || layoutCfg === void 0 ? void 0 : layoutCfg.type; - layoutCfg.onLayoutEnd = function() { - graph.emit("aftersublayout", { - type: layoutType - }); - reslove(); - }; - var layoutData = _this.filterLayoutData(_this.data, layoutCfg); - layoutMethod.init(layoutData); - layoutMethod.updateCfg(layoutCfg); - graph.emit("beforesublayout", { - type: layoutType - }); - layoutMethod.execute(); - if (layoutMethod.isCustomLayout && layoutCfg.onLayoutEnd) - layoutCfg.onLayoutEnd(); - }); - }; - LayoutController3.prototype.layout = function(success) { - var _this = this; - var graph = this.graph; - this.data = this.setDataFromGraph(); - var _a6 = this.data, nodes = _a6.nodes, hiddenNodes = _a6.hiddenNodes; - if (!nodes) { - return false; - } - var width2 = graph.get("width"); - var height = graph.get("height"); - var layoutCfg = {}; - Object.assign(layoutCfg, { - width: width2, - height, - center: [width2 / 2, height / 2] - }, this.layoutCfg); - this.layoutCfg = layoutCfg; - this.destoryLayoutMethods(); - graph.emit("beforelayout"); - this.initPositions(layoutCfg.center, nodes); - this.initPositions(layoutCfg.center, hiddenNodes); - var layoutType = layoutCfg.type; - if (layoutType && layoutType.split("-")[1] === "gpu") { - layoutType = layoutType.split("-")[0]; - layoutCfg.gpuEnabled = true; - } - var enableGPU = false; - if (layoutCfg.gpuEnabled) { - enableGPU = true; - if (!gpuDetector().webgl) { - console.warn("Your browser does not support webGL or GPGPU. The layout will run in CPU."); - enableGPU = false; - } - } - this.isGPU = enableGPU; - var onLayoutEnd = layoutCfg.onLayoutEnd, layoutEndFormatted = layoutCfg.layoutEndFormatted, adjust4 = layoutCfg.adjust; - if (!layoutEndFormatted) { - layoutCfg.layoutEndFormatted = true; - layoutCfg.onAllLayoutEnd = function() { - return __awaiter(_this, void 0, void 0, function() { - return __generator(this, function(_a7) { - switch (_a7.label) { - case 0: - if (onLayoutEnd) { - onLayoutEnd(); - } - this.refreshLayout(); - if (!(adjust4 && layoutCfg.pipes)) - return [ - 3, - 2 - ]; - return [ - 4, - this.adjustPipesBox(this.data, adjust4) - ]; - case 1: - _a7.sent(); - this.refreshLayout(); - _a7.label = 2; - case 2: - graph.emit("afterlayout"); - return [ - 2 - ]; - } - }); - }); - }; - } - this.stopWorker(); - if (layoutCfg.workerEnabled && this.layoutWithWorker(this.data)) { - return true; - } - var start = Promise.resolve(); - if (layoutCfg.type) { - start = start.then(function() { - return _this.execLayoutMethod(layoutCfg, 0); - }); - } else if (layoutCfg.pipes) { - layoutCfg.pipes.forEach(function(cfg, index2) { - start = start.then(function() { - return _this.execLayoutMethod(cfg, index2); - }); - }); - } - start.then(function() { - if (layoutCfg.onAllLayoutEnd) - layoutCfg.onAllLayoutEnd(); - if (success) - success(); - }).catch(function(error) { - console.warn("graph layout failed,", error); - }); - return false; - }; - LayoutController3.prototype.layoutWithWorker = function(data3) { - var _this = this; - var _a6 = this, layoutCfg = _a6.layoutCfg, graph = _a6.graph; - var worker = this.getWorker(); - var workerData = this.workerData; - if (!worker) { - return false; - } - workerData.requestId = null; - workerData.requestId2 = null; - workerData.currentTick = null; - workerData.currentTickData = null; - graph.emit("beforelayout"); - var start = Promise.resolve(); - if (layoutCfg.type) { - start = start.then(function() { - return _this.runWebworker(worker, data3, layoutCfg); - }); - } else if (layoutCfg.pipes) { - var _loop_1 = function _loop_12(cfg2) { - start = start.then(function() { - return _this.runWebworker(worker, data3, cfg2); - }); - }; - for (var _i = 0, _b = layoutCfg.pipes; _i < _b.length; _i++) { - var cfg = _b[_i]; - _loop_1(cfg); - } - } - start.then(function() { - if (layoutCfg.onAllLayoutEnd) - layoutCfg.onAllLayoutEnd(); - }).catch(function(error) { - console.error("layout failed", error); - }); - return true; - }; - LayoutController3.prototype.runWebworker = function(worker, allData, layoutCfg) { - var _this = this; - var isGPU = this.isGPU; - var data3 = this.filterLayoutData(allData, layoutCfg); - var nodes = data3.nodes, edges = data3.edges; - var offScreenCanvas = document.createElement("canvas"); - var gpuWorkerAbility = isGPU && typeof window !== "undefined" && window.navigator && !navigator["gpu"] && "OffscreenCanvas" in window && "transferControlToOffscreen" in offScreenCanvas; - var filteredLayoutCfg = filterObject(layoutCfg, function(value2) { - return typeof value2 !== "function"; - }); - if (!gpuWorkerAbility) { - worker.postMessage({ - type: LAYOUT_MESSAGE2.RUN, - nodes, - edges, - layoutCfg: filteredLayoutCfg - }); - } else { - var offscreen = offScreenCanvas.transferControlToOffscreen(); - filteredLayoutCfg.type = filteredLayoutCfg.type + "-gpu"; - worker.postMessage({ - type: LAYOUT_MESSAGE2.GPURUN, - nodes, - edges, - layoutCfg: filteredLayoutCfg, - canvas: offscreen - }, [offscreen]); - } - return new Promise(function(reslove, reject) { - worker.onmessage = function(event) { - _this.handleWorkerMessage(reslove, reject, event, data3, layoutCfg); - }; - }); - }; - LayoutController3.prototype.handleWorkerMessage = function(reslove, reject, event, data3, layoutCfg) { - var _a6 = this, graph = _a6.graph, workerData = _a6.workerData; - var eventData = event.data; - var type2 = eventData.type; - var onTick = function onTick2() { - if (layoutCfg.onTick) { - layoutCfg.onTick(); - } - }; - switch (type2) { - case LAYOUT_MESSAGE2.TICK: - workerData.currentTick = eventData.currentTick; - workerData.currentTickData = eventData; - if (!workerData.requestId) { - workerData.requestId = helper.requestAnimationFrame(function requestId() { - updateLayoutPosition(data3, eventData); - graph.refreshPositions(); - onTick(); - if (eventData.currentTick === eventData.totalTicks) { - reslove(); - } else if (workerData.currentTick === eventData.totalTicks) { - workerData.requestId2 = helper.requestAnimationFrame(function requestId2() { - updateLayoutPosition(data3, workerData.currentTickData); - graph.refreshPositions(); - workerData.requestId2 = null; - onTick(); - reslove(); - }); - } - workerData.requestId = null; - }); - } - break; - case LAYOUT_MESSAGE2.END: - if (workerData.currentTick == null) { - updateLayoutPosition(data3, eventData); - reslove(); - } - break; - case LAYOUT_MESSAGE2.GPUEND: - if (workerData.currentTick == null) { - updateGPUWorkerLayoutPosition(data3, eventData); - reslove(); - } - break; - case LAYOUT_MESSAGE2.ERROR: - console.warn("Web-Worker layout error!", eventData.message); - reject(); - break; - default: - reject(); - break; - } - }; - LayoutController3.prototype.updateLayoutCfg = function(cfg) { - var _this = this; - var _a6 = this, graph = _a6.graph, layoutMethods = _a6.layoutMethods; - var layoutCfg = mix({}, this.layoutCfg, cfg); - this.layoutCfg = layoutCfg; - if (!(layoutMethods === null || layoutMethods === void 0 ? void 0 : layoutMethods.length)) { - this.layout(); - return; - } - this.data = this.setDataFromGraph(); - this.stopWorker(); - if (cfg.workerEnabled && this.layoutWithWorker(this.data)) { - return; - } - graph.emit("beforelayout"); - var start = Promise.resolve(); - if (layoutMethods.length === 1) { - start = start.then(function() { - return _this.updateLayoutMethod(layoutMethods[0], layoutCfg); - }); - } else { - layoutMethods === null || layoutMethods === void 0 ? void 0 : layoutMethods.forEach(function(layoutMethod, index2) { - var currentCfg = layoutCfg.pipes[index2]; - start = start.then(function() { - return _this.updateLayoutMethod(layoutMethod, currentCfg); - }); - }); - } - start.then(function() { - if (layoutCfg.onAllLayoutEnd) - layoutCfg.onAllLayoutEnd(); - }).catch(function(error) { - console.warn("layout failed", error); - }); - }; - LayoutController3.prototype.adjustPipesBox = function(data3, adjust4) { - var _this = this; - return new Promise(function(resolve) { - var nodes = data3.nodes; - if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length)) { - resolve(); - } - if (!LayoutPipesAdjustNames.includes(adjust4)) { - console.warn("The adjust type " + adjust4 + " is not supported yet, please assign it with 'force', 'grid', or 'circular'."); - resolve(); - } - var layoutCfg = { - center: _this.layoutCfg.center, - nodeSize: function nodeSize(d3) { - return Math.max(d3.height, d3.width); - }, - preventOverlap: true, - onLayoutEnd: function onLayoutEnd() { - } - }; - var _a6 = _this.getLayoutBBox(nodes), groupNodes = _a6.groupNodes, layoutNodes2 = _a6.layoutNodes; - var preNodes = clone_default(layoutNodes2); - layoutCfg.onLayoutEnd = function() { - layoutNodes2 === null || layoutNodes2 === void 0 ? void 0 : layoutNodes2.forEach(function(ele, index2) { - var _a7, _b, _c; - var dx = ele.x - ((_a7 = preNodes[index2]) === null || _a7 === void 0 ? void 0 : _a7.x); - var dy = ele.y - ((_b = preNodes[index2]) === null || _b === void 0 ? void 0 : _b.y); - (_c = groupNodes[index2]) === null || _c === void 0 ? void 0 : _c.forEach(function(n3) { - n3.x += dx; - n3.y += dy; - }); - }); - resolve(); - }; - var layoutMethod = new Layouts[adjust4](layoutCfg); - layoutMethod.layout({ - nodes: layoutNodes2 - }); - }); - }; - LayoutController3.prototype.hasGPUVersion = function(layoutName) { - var length5 = GPULayoutNames.length; - for (var i4 = 0; i4 < length5; i4++) { - if (GPULayoutNames[i4] === layoutName) - return true; - } - return false; - }; - LayoutController3.prototype.destroy = function() { - this.destoryLayoutMethods(); - var worker = this.worker; - if (worker) { - worker.terminate(); - this.worker = null; - } - this.destroyed = true; - this.graph.set("layout", void 0); - this.layoutCfg = void 0; - this.layoutType = void 0; - this.layoutMethods = void 0; - this.graph = null; - }; - return LayoutController3; -}(layout_default); -var layout_default3 = LayoutController2; -function updateLayoutPosition(data3, layoutData) { - var nodes = data3.nodes; - var layoutNodes2 = layoutData.nodes; - var nodeLength = nodes.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - node.x = layoutNodes2[i4].x; - node.y = layoutNodes2[i4].y; - } -} -function filterObject(collection, callback) { - var result = {}; - if (collection && _typeof4(collection) === "object") { - Object.keys(collection).forEach(function(key) { - if (collection.hasOwnProperty(key) && callback(collection[key])) { - result[key] = collection[key]; - } - }); - return result; - } - return collection; -} -function updateGPUWorkerLayoutPosition(data3, layoutData) { - var nodes = data3.nodes; - var vertexEdgeData = layoutData.vertexEdgeData; - var nodeLength = nodes.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - var x6 = vertexEdgeData[4 * i4]; - var y5 = vertexEdgeData[4 * i4 + 1]; - node.x = x6; - node.y = y5; - } -} -function addLayoutOrder(data3, order2) { - var _a6; - if (!((_a6 = data3 === null || data3 === void 0 ? void 0 : data3.nodes) === null || _a6 === void 0 ? void 0 : _a6.length)) { - return; - } - var nodes = data3.nodes; - nodes.forEach(function(node) { - node.layoutOrder = order2; - }); -} - -// node_modules/@antv/g6-pc/es/graph/graph.js -var transform13 = ext_exports3.transform; -var SVG2 = "svg"; -var Graph9 = function(_super) { - __extends(Graph10, _super); - function Graph10(cfg) { - var _this = _super.call(this, cfg) || this; - var defaultNode = _this.get("defaultNode"); - if (!defaultNode) { - _this.set("defaultNode", { - type: "circle" - }); - } - if (!defaultNode.type) { - defaultNode.type = "circle"; - _this.set("defaultNode", defaultNode); - } - _this.destroyed = false; - return _this; - } - Graph10.prototype.initLayoutController = function() { - var layoutController = new layout_default3(this); - this.set({ - layoutController - }); - }; - Graph10.prototype.initEventController = function() { - var eventController = new event_default3(this); - this.set({ - eventController - }); - }; - Graph10.prototype.initCanvas = function() { - var container2 = this.get("container"); - if (typeof container2 === "string") { - container2 = document.getElementById(container2); - this.set("container", container2); - } - if (!container2) { - throw new Error("invalid container"); - } - var width2 = this.get("width"); - var height = this.get("height"); - var renderer = this.get("renderer"); - var canvas; - if (renderer === SVG2) { - canvas = new canvas_default3({ - container: container2, - width: width2, - height - }); - } else { - var canvasCfg = { - container: container2, - width: width2, - height - }; - var pixelRatio = this.get("pixelRatio"); - if (pixelRatio) { - canvasCfg.pixelRatio = pixelRatio; - } - canvas = new canvas_default2(canvasCfg); - } - this.set("canvas", canvas); - }; - Graph10.prototype.initPlugins = function() { - var self2 = this; - each_default(self2.get("plugins"), function(plugin) { - if (!plugin.destroyed && plugin.initPlugin) { - plugin.initPlugin(self2); - } - }); - }; - Graph10.prototype.toDataURL = function(type2, backgroundColor) { - var canvas = this.get("canvas"); - var renderer = canvas.getRenderer(); - var canvasDom = canvas.get("el"); - if (!type2) - type2 = "image/png"; - var dataURL = ""; - if (renderer === "svg") { - var cloneNode = canvasDom.cloneNode(true); - var svgDocType = document.implementation.createDocumentType("svg", "-//W3C//DTD SVG 1.1//EN", "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"); - var svgDoc = document.implementation.createDocument("http://www.w3.org/2000/svg", "svg", svgDocType); - svgDoc.replaceChild(cloneNode, svgDoc.documentElement); - var svgData = new XMLSerializer().serializeToString(svgDoc); - dataURL = "data:image/svg+xml;charset=utf8," + encodeURIComponent(svgData); - } else { - var imageData = void 0; - var context = canvasDom.getContext("2d"); - var width2 = this.get("width"); - var height = this.get("height"); - var compositeOperation = void 0; - if (backgroundColor) { - var pixelRatio = typeof window !== "undefined" ? window.devicePixelRatio : 1; - imageData = context.getImageData(0, 0, width2 * pixelRatio, height * pixelRatio); - compositeOperation = context.globalCompositeOperation; - context.globalCompositeOperation = "destination-over"; - context.fillStyle = backgroundColor; - context.fillRect(0, 0, width2, height); - } - dataURL = canvasDom.toDataURL(type2); - if (backgroundColor) { - context.clearRect(0, 0, width2, height); - context.putImageData(imageData, 0, 0); - context.globalCompositeOperation = compositeOperation; - } - } - return dataURL; - }; - Graph10.prototype.toFullDataURL = function(callback, type2, imageConfig) { - var bbox = this.get("group").getCanvasBBox(); - var height = bbox.height; - var width2 = bbox.width; - var renderer = this.get("renderer"); - var vContainerDOM = createDom(''); - var backgroundColor = imageConfig ? imageConfig.backgroundColor : void 0; - var padding3 = imageConfig ? imageConfig.padding : void 0; - if (!padding3) - padding3 = [0, 0, 0, 0]; - else if (is_number_default(padding3)) - padding3 = [padding3, padding3, padding3, padding3]; - var vHeight = height + padding3[0] + padding3[2]; - var vWidth = width2 + padding3[1] + padding3[3]; - var canvasOptions = { - container: vContainerDOM, - height: vHeight, - width: vWidth, - quickHit: true - }; - var vCanvas = renderer === "svg" ? new canvas_default3(canvasOptions) : new canvas_default2(canvasOptions); - var group2 = this.get("group"); - var vGroup = group2.clone(); - var matrix = clone_default(vGroup.getMatrix()); - if (!matrix) - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var centerX = (bbox.maxX + bbox.minX) / 2; - var centerY = (bbox.maxY + bbox.minY) / 2; - matrix = transform13(matrix, [["t", -centerX, -centerY], ["t", width2 / 2 + padding3[3], height / 2 + padding3[0]]]); - vGroup.resetMatrix(); - vGroup.setMatrix(matrix); - vCanvas.add(vGroup); - var vCanvasEl = vCanvas.get("el"); - var dataURL = ""; - if (!type2) - type2 = "image/png"; - setTimeout(function() { - if (renderer === "svg") { - var cloneNode = vCanvasEl.cloneNode(true); - var svgDocType = document.implementation.createDocumentType("svg", "-//W3C//DTD SVG 1.1//EN", "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"); - var svgDoc = document.implementation.createDocument("http://www.w3.org/2000/svg", "svg", svgDocType); - svgDoc.replaceChild(cloneNode, svgDoc.documentElement); - var svgData = new XMLSerializer().serializeToString(svgDoc); - dataURL = "data:image/svg+xml;charset=utf8," + encodeURIComponent(svgData); - } else { - var imageData = void 0; - var context = vCanvasEl.getContext("2d"); - var compositeOperation = void 0; - if (backgroundColor) { - var pixelRatio = typeof window !== "undefined" ? window.devicePixelRatio : 1; - imageData = context.getImageData(0, 0, vWidth * pixelRatio, vHeight * pixelRatio); - compositeOperation = context.globalCompositeOperation; - context.globalCompositeOperation = "destination-over"; - context.fillStyle = backgroundColor; - context.fillRect(0, 0, vWidth, vHeight); - } - dataURL = vCanvasEl.toDataURL(type2); - if (backgroundColor) { - context.clearRect(0, 0, vWidth, vHeight); - context.putImageData(imageData, 0, 0); - context.globalCompositeOperation = compositeOperation; - } - } - if (callback) - callback(dataURL); - }, 16); - }; - Graph10.prototype.downloadFullImage = function(name, type2, imageConfig) { - var _this = this; - var bbox = this.get("group").getCanvasBBox(); - var height = bbox.height; - var width2 = bbox.width; - var renderer = this.get("renderer"); - var vContainerDOM = createDom(''); - var backgroundColor = imageConfig ? imageConfig.backgroundColor : void 0; - var padding3 = imageConfig ? imageConfig.padding : void 0; - if (!padding3) - padding3 = [0, 0, 0, 0]; - else if (is_number_default(padding3)) - padding3 = [padding3, padding3, padding3, padding3]; - var vHeight = height + padding3[0] + padding3[2]; - var vWidth = width2 + padding3[1] + padding3[3]; - var canvasOptions = { - container: vContainerDOM, - height: vHeight, - width: vWidth - }; - var vCanvas = renderer === "svg" ? new canvas_default3(canvasOptions) : new canvas_default2(canvasOptions); - var group2 = this.get("group"); - var vGroup = group2.clone(); - var matrix = clone_default(vGroup.getMatrix()); - if (!matrix) - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var centerX = (bbox.maxX + bbox.minX) / 2; - var centerY = (bbox.maxY + bbox.minY) / 2; - matrix = transform13(matrix, [["t", -centerX, -centerY], ["t", width2 / 2 + padding3[3], height / 2 + padding3[0]]]); - vGroup.resetMatrix(); - vGroup.setMatrix(matrix); - vCanvas.add(vGroup); - var vCanvasEl = vCanvas.get("el"); - if (!type2) - type2 = "image/png"; - setTimeout(function() { - var dataURL = ""; - if (renderer === "svg") { - var cloneNode = vCanvasEl.cloneNode(true); - var svgDocType = document.implementation.createDocumentType("svg", "-//W3C//DTD SVG 1.1//EN", "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"); - var svgDoc = document.implementation.createDocument("http://www.w3.org/2000/svg", "svg", svgDocType); - svgDoc.replaceChild(cloneNode, svgDoc.documentElement); - var svgData = new XMLSerializer().serializeToString(svgDoc); - dataURL = "data:image/svg+xml;charset=utf8," + encodeURIComponent(svgData); - } else { - var imageData = void 0; - var context = vCanvasEl.getContext("2d"); - var compositeOperation = void 0; - if (backgroundColor) { - var pixelRatio = typeof window !== "undefined" ? window.devicePixelRatio : 1; - imageData = context.getImageData(0, 0, vWidth * pixelRatio, vHeight * pixelRatio); - compositeOperation = context.globalCompositeOperation; - context.globalCompositeOperation = "destination-over"; - context.fillStyle = backgroundColor; - context.fillRect(0, 0, vWidth, vHeight); - } - dataURL = vCanvasEl.toDataURL(type2); - if (backgroundColor) { - context.clearRect(0, 0, vWidth, vHeight); - context.putImageData(imageData, 0, 0); - context.globalCompositeOperation = compositeOperation; - } - } - var link = document.createElement("a"); - var fileName = (name || "graph") + (renderer === "svg" ? ".svg" : "." + type2.split("/")[1]); - _this.dataURLToImage(dataURL, renderer, link, fileName); - var e4 = document.createEvent("MouseEvents"); - e4.initEvent("click", false, false); - link.dispatchEvent(e4); - }, 16); - }; - Graph10.prototype.downloadImage = function(name, type2, backgroundColor) { - var _this = this; - var self2 = this; - if (self2.isAnimating()) { - self2.stopAnimate(); - } - var canvas = self2.get("canvas"); - var renderer = canvas.getRenderer(); - if (!type2) - type2 = "image/png"; - var fileName = (name || "graph") + (renderer === "svg" ? ".svg" : type2.split("/")[1]); - var link = document.createElement("a"); - setTimeout(function() { - var dataURL = self2.toDataURL(type2, backgroundColor); - _this.dataURLToImage(dataURL, renderer, link, fileName); - var e4 = document.createEvent("MouseEvents"); - e4.initEvent("click", false, false); - link.dispatchEvent(e4); - }, 16); - }; - Graph10.prototype.dataURLToImage = function(dataURL, renderer, link, fileName) { - if (typeof window !== "undefined") { - if (window.Blob && window.URL && renderer !== "svg") { - var arr = dataURL.split(","); - var mime = ""; - if (arr && arr.length > 0) { - var match = arr[0].match(/:(.*?);/); - if (match && match.length >= 2) - mime = match[1]; - } - var bstr = atob(arr[1]); - var n3 = bstr.length; - var u8arr = new Uint8Array(n3); - while (n3--) { - u8arr[n3] = bstr.charCodeAt(n3); - } - var blobObj_1 = new Blob([u8arr], { - type: mime - }); - if (window.navigator.msSaveBlob) { - window.navigator.msSaveBlob(blobObj_1, fileName); - } else { - link.addEventListener("click", function() { - link.download = fileName; - link.href = window.URL.createObjectURL(blobObj_1); - }); - } - } else { - link.addEventListener("click", function() { - link.download = fileName; - link.href = dataURL; - }); - } - } - }; - Graph10.prototype.addPlugin = function(plugin) { - var self2 = this; - if (plugin.destroyed) { - return; - } - self2.get("plugins").push(plugin); - plugin.initPlugin(self2); - }; - Graph10.prototype.removePlugin = function(plugin) { - var plugins = this.get("plugins"); - var index2 = plugins.indexOf(plugin); - if (index2 >= 0) { - plugin.destroyPlugin(); - plugins.splice(index2, 1); - } - }; - Graph10.prototype.setImageWaterMarker = function(imgURL, config) { - if (imgURL === void 0) { - imgURL = global_default2.waterMarkerImage; - } - var container2 = this.get("container"); - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - if (!container2.style.position) { - container2.style.position = "relative"; - } - var canvas = this.get("graphWaterMarker"); - var waterMarkerConfig = deep_mix_default({}, global_default2.imageWaterMarkerConfig, config); - var width2 = waterMarkerConfig.width, height = waterMarkerConfig.height, compatible = waterMarkerConfig.compatible, image = waterMarkerConfig.image; - if (!canvas) { - var canvasCfg = { - container: container2, - width: width2, - height, - capture: false - }; - var pixelRatio = this.get("pixelRatio"); - if (pixelRatio) { - canvasCfg.pixelRatio = pixelRatio; - } - canvas = new canvas_default2(canvasCfg); - this.set("graphWaterMarker", canvas); - } - canvas.get("el").style.display = "none"; - var ctx4 = canvas.get("context"); - var rotate8 = image.rotate, x6 = image.x, y5 = image.y; - ctx4.rotate(-rotate8 * Math.PI / 180); - var img = new Image(); - img.crossOrigin = "anonymous"; - img.src = imgURL; - img.onload = function() { - ctx4.drawImage(img, x6, y5, image.width, image.height); - ctx4.rotate(rotate8 * Math.PI / 180); - if (!compatible) { - var box2 = document.querySelector(".g6-graph-watermarker"); - if (!box2) { - box2 = document.createElement("div"); - box2.className = "g6-graph-watermarker"; - } - box2.className = "g6-graph-watermarker"; - if (!canvas.destroyed) { - box2.style.cssText = "background-image: url(" + canvas.get("el").toDataURL("image/png") + ");background-repeat:repeat;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;z-index:-1;"; - container2.appendChild(box2); - } - } else { - container2.style.cssText = "background-image: url(" + canvas.get("el").toDataURL("image/png") + ");background-repeat:repeat;"; - } - }; - }; - Graph10.prototype.setTextWaterMarker = function(texts, config) { - var container2 = this.get("container"); - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - if (!container2.style.position) { - container2.style.position = "relative"; - } - var canvas = this.get("graphWaterMarker"); - var waterMarkerConfig = deep_mix_default({}, global_default2.textWaterMarkerConfig, config); - var width2 = waterMarkerConfig.width, height = waterMarkerConfig.height, compatible = waterMarkerConfig.compatible, text = waterMarkerConfig.text; - if (!canvas) { - var canvasCfg = { - container: container2, - width: width2, - height, - capture: false - }; - var pixelRatio = this.get("pixelRatio"); - if (pixelRatio) { - canvasCfg.pixelRatio = pixelRatio; - } - canvas = new canvas_default2(canvasCfg); - this.set("graphWaterMarker", canvas); - } - canvas.get("el").style.display = "none"; - var ctx4 = canvas.get("context"); - var rotate8 = text.rotate, fill = text.fill, fontFamily = text.fontFamily, fontSize = text.fontSize, baseline = text.baseline, x6 = text.x, y5 = text.y, lineHeight = text.lineHeight; - ctx4.rotate(-rotate8 * Math.PI / 180); - ctx4.font = fontSize + "px " + fontFamily; - ctx4.fillStyle = fill; - ctx4.textBaseline = baseline; - for (var i4 = texts.length - 1; i4 >= 0; i4--) { - ctx4.fillText(texts[i4], x6, y5 + i4 * lineHeight); - } - ctx4.rotate(rotate8 * Math.PI / 180); - if (!compatible) { - var box2 = document.querySelector(".g6-graph-watermarker"); - if (!box2) { - box2 = document.createElement("div"); - box2.className = "g6-graph-watermarker"; - } - box2.style.cssText = "background-image: url(" + canvas.get("el").toDataURL("image/png") + ");background-repeat:repeat;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;z-index:99;"; - container2.appendChild(box2); - } else { - container2.style.cssText = "background-image: url(" + canvas.get("el").toDataURL("image/png") + ");background-repeat:repeat;"; - } - }; - Graph10.prototype.destroy = function() { - each_default(this.get("plugins"), function(plugin) { - plugin.destroyPlugin(); - }); - var tooltipDOMs = this.get("tooltips"); - if (tooltipDOMs) { - for (var i4 = 0; i4 < tooltipDOMs.length; i4++) { - var container2 = tooltipDOMs[i4]; - if (!container2) - continue; - var parent_1 = container2.parentElement; - if (!parent_1) - continue; - parent_1.removeChild(container2); - } - } - this.get("eventController").destroy(); - this.get("layoutController").destroy(); - if (this.get("graphWaterMarker")) { - this.get("graphWaterMarker").destroy(); - } - if (document.querySelector(".g6-graph-watermarker")) { - document.querySelector(".g6-graph-watermarker").remove(); - } - _super.prototype.destroy.call(this); - }; - return Graph10; -}(graph_default); -var graph_default2 = Graph9; - -// node_modules/@antv/g6-pc/es/graph/tree-graph.js -var import_hierarchy4 = __toModule(require_hierarchy()); - -// node_modules/@antv/g6-pc/es/util/layout.js -var layout_exports = {}; -__export(layout_exports, { - arrayToTextureData: () => arrayToTextureData2, - attributesToTextureData: () => attributesToTextureData2, - buildTextureData: () => buildTextureData2, - buildTextureDataWithOneEdgeAttr: () => buildTextureDataWithOneEdgeAttr, - buildTextureDataWithTwoEdgeAttr: () => buildTextureDataWithTwoEdgeAttr2, - proccessToFunc: () => proccessToFunc3, - radialLayout: () => radialLayout -}); -var traverseTree3 = util_default.traverseTree; -var proccessToFunc3 = function proccessToFunc4(value2, defaultV) { - var func; - if (!value2) { - func = function func2(d3) { - return defaultV || 1; - }; - } else if (is_number_default(value2)) { - func = function func2(d3) { - return value2; - }; - } else { - func = value2; - } - return func; -}; -var buildTextureData2 = function buildTextureData3(nodes, edges) { - var dataArray = []; - var nodeDict = []; - var mapIdPos = {}; - var i4 = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - var n3 = nodes[i4]; - mapIdPos[n3.id] = i4; - dataArray.push(n3.x); - dataArray.push(n3.y); - dataArray.push(0); - dataArray.push(0); - nodeDict.push([]); - } - for (i4 = 0; i4 < edges.length; i4++) { - var e4 = edges[i4]; - nodeDict[mapIdPos[e4.source]].push(mapIdPos[e4.target]); - nodeDict[mapIdPos[e4.target]].push(mapIdPos[e4.source]); - } - var maxEdgePerVetex = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - var offset = dataArray.length; - var dests = nodeDict[i4]; - var len5 = dests.length; - dataArray[i4 * 4 + 2] = offset; - dataArray[i4 * 4 + 3] = dests.length; - maxEdgePerVetex = Math.max(maxEdgePerVetex, dests.length); - for (var j4 = 0; j4 < len5; ++j4) { - var dest = dests[j4]; - dataArray.push(+dest); - } - } - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - return { - array: new Float32Array(dataArray), - maxEdgePerVetex - }; -}; -var buildTextureDataWithOneEdgeAttr = function buildTextureDataWithOneEdgeAttr2(nodes, edges, attrs) { - var dataArray = []; - var nodeDict = []; - var mapIdPos = {}; - var i4 = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - var n3 = nodes[i4]; - mapIdPos[n3.id] = i4; - dataArray.push(n3.x); - dataArray.push(n3.y); - dataArray.push(0); - dataArray.push(0); - nodeDict.push([]); - } - for (i4 = 0; i4 < edges.length; i4++) { - var e4 = edges[i4]; - nodeDict[mapIdPos[e4.source]].push(mapIdPos[e4.target]); - nodeDict[mapIdPos[e4.source]].push(attrs(e4)); - nodeDict[mapIdPos[e4.target]].push(mapIdPos[e4.source]); - nodeDict[mapIdPos[e4.target]].push(attrs(e4)); - } - var maxEdgePerVetex = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - var offset = dataArray.length; - var dests = nodeDict[i4]; - var len5 = dests.length; - dataArray[i4 * 4 + 2] = offset; - dataArray[i4 * 4 + 3] = len5 / 2; - maxEdgePerVetex = Math.max(maxEdgePerVetex, len5 / 2); - for (var j4 = 0; j4 < len5; ++j4) { - var dest = dests[j4]; - dataArray.push(+dest); - } - } - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - return { - array: new Float32Array(dataArray), - maxEdgePerVetex - }; -}; -var buildTextureDataWithTwoEdgeAttr2 = function buildTextureDataWithTwoEdgeAttr3(nodes, edges, attrs1, attrs2) { - var dataArray = []; - var nodeDict = []; - var mapIdPos = {}; - var i4 = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - var n3 = nodes[i4]; - mapIdPos[n3.id] = i4; - dataArray.push(n3.x); - dataArray.push(n3.y); - dataArray.push(0); - dataArray.push(0); - nodeDict.push([]); - } - for (i4 = 0; i4 < edges.length; i4++) { - var e4 = edges[i4]; - nodeDict[mapIdPos[e4.source]].push(mapIdPos[e4.target]); - nodeDict[mapIdPos[e4.source]].push(attrs1(e4)); - nodeDict[mapIdPos[e4.source]].push(attrs2(e4)); - nodeDict[mapIdPos[e4.source]].push(0); - nodeDict[mapIdPos[e4.target]].push(mapIdPos[e4.source]); - nodeDict[mapIdPos[e4.target]].push(attrs1(e4)); - nodeDict[mapIdPos[e4.target]].push(attrs2(e4)); - nodeDict[mapIdPos[e4.target]].push(0); - } - var maxEdgePerVetex = 0; - for (i4 = 0; i4 < nodes.length; i4++) { - var offset = dataArray.length; - var dests = nodeDict[i4]; - var len5 = dests.length; - dataArray[i4 * 4 + 2] = offset + 1048576 * len5 / 4; - dataArray[i4 * 4 + 3] = 0; - maxEdgePerVetex = Math.max(maxEdgePerVetex, len5 / 4); - for (var j4 = 0; j4 < len5; ++j4) { - var dest = dests[j4]; - dataArray.push(+dest); - } - } - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - return { - array: new Float32Array(dataArray), - maxEdgePerVetex - }; -}; -var attributesToTextureData2 = function attributesToTextureData3(attributeNames, items) { - var dataArray = []; - var attributeNum = attributeNames.length; - var attributteStringMap = {}; - items.forEach(function(item) { - attributeNames.forEach(function(name, i4) { - if (attributteStringMap[item[name]] === void 0) { - attributteStringMap[item[name]] = Object.keys(attributteStringMap).length; - } - dataArray.push(attributteStringMap[item[name]]); - if (i4 === attributeNum - 1) { - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - } - }); - }); - return { - array: new Float32Array(dataArray), - count: Object.keys(attributteStringMap).length - }; -}; -var arrayToTextureData2 = function arrayToTextureData3(valueArrays) { - var dataArray = []; - var attributeNum = valueArrays.length; - var itemNum = valueArrays[0].length; - var _loop_1 = function _loop_12(j5) { - valueArrays.forEach(function(valueArray, i4) { - dataArray.push(valueArray[j5]); - if (i4 === attributeNum - 1) { - while (dataArray.length % 4 !== 0) { - dataArray.push(0); - } - } - }); - }; - for (var j4 = 0; j4 < itemNum; j4++) { - _loop_1(j4); - } - return new Float32Array(dataArray); -}; -var radialLayout = function radialLayout2(data3, layout6) { - var VERTICAL_LAYOUTS = ["V", "TB", "BT"]; - var min7 = { - x: Infinity, - y: Infinity - }; - var max8 = { - x: -Infinity, - y: -Infinity - }; - var rScale = "x"; - var radScale = "y"; - if (layout6 && VERTICAL_LAYOUTS.indexOf(layout6) >= 0) { - radScale = "x"; - rScale = "y"; - } - var count2 = 0; - traverseTree3(data3, function(node) { - count2++; - if (node.x > max8.x) { - max8.x = node.x; - } - if (node.x < min7.x) { - min7.x = node.x; - } - if (node.y > max8.y) { - max8.y = node.y; - } - if (node.y < min7.y) { - min7.y = node.y; - } - return true; - }); - var avgRad = Math.PI * 2 / count2; - var radDiff = max8[radScale] - min7[radScale]; - if (radDiff === 0) { - return data3; - } - traverseTree3(data3, function(node) { - var radial = (node[radScale] - min7[radScale]) / radDiff * (Math.PI * 2 - avgRad) + avgRad; - var r4 = Math.abs(rScale === "x" ? node.x - data3.x : node.y - data3.y); - node.x = r4 * Math.cos(radial); - node.y = r4 * Math.sin(radial); - return true; - }); - return data3; -}; - -// node_modules/@antv/g6-pc/es/util/index.js -var G6Util = __assign(__assign(__assign(__assign({}, util_default), color_exports), layout_exports), gpu_exports); -var util_default3 = G6Util; - -// node_modules/@antv/g6-pc/es/graph/tree-graph.js -var radialLayout3 = util_default3.radialLayout; -var traverseTree4 = util_default3.traverseTree; -var TreeGraph = function(_super) { - __extends(TreeGraph2, _super); - function TreeGraph2(cfg) { - var _this = _super.call(this, cfg) || this; - _this.layoutAnimating = false; - _this.set("removeList", []); - _this.set("layoutMethod", _this.getLayout()); - return _this; - } - TreeGraph2.prototype.getLayout = function() { - var layout6 = this.get("layout"); - if (!layout6) { - return null; - } - if (typeof layout6 === "function") { - return layout6; - } - if (!layout6.type) { - layout6.type = "dendrogram"; - } - if (!layout6.direction) { - layout6.direction = "TB"; - } - if (layout6.radial) { - return function(data3) { - var layoutData = import_hierarchy4.default[layout6.type](data3, layout6); - radialLayout3(layoutData); - return layoutData; - }; - } - return function(data3) { - return import_hierarchy4.default[layout6.type](data3, layout6); - }; - }; - TreeGraph2.indexOfChild = function(children, id) { - var index2 = -1; - each_default(children, function(former, i4) { - if (id === former.id) { - index2 = i4; - return false; - } - }); - return index2; - }; - TreeGraph2.prototype.getDefaultCfg = function() { - var cfg = _super.prototype.getDefaultCfg.call(this); - cfg.animate = true; - return cfg; - }; - TreeGraph2.prototype.innerAddChild = function(treeData, parent, animate) { - var self2 = this; - var model = treeData.data; - if (model) { - model.x = treeData.x; - model.y = treeData.y; - model.depth = treeData.depth; - } - var node = self2.addItem("node", model, false); - if (parent) { - node.set("parent", parent); - if (animate) { - var origin_1 = parent.get("originAttrs"); - if (origin_1) { - node.set("originAttrs", origin_1); - } else { - var parentModel = parent.getModel(); - node.set("originAttrs", { - x: parentModel.x, - y: parentModel.y - }); - } - } - var childrenList = parent.get("children"); - if (!childrenList) { - parent.set("children", [node]); - } else { - childrenList.push(node); - } - self2.addItem("edge", { - source: parent, - target: node, - id: parent.get("id") + ":" + node.get("id") - }, false); - } - each_default(treeData.children || [], function(child) { - self2.innerAddChild(child, node, animate); - }); - self2.emit("afteraddchild", { - item: node, - parent - }); - return node; - }; - TreeGraph2.prototype.innerUpdateChild = function(data3, parent, animate) { - var self2 = this; - var current = self2.findById(data3.id); - if (!current) { - self2.innerAddChild(data3, parent, animate); - return; - } - each_default(data3.children || [], function(child2) { - self2.innerUpdateChild(child2, current, animate); - }); - var children = current.get("children"); - if (children) { - var len5 = children.length; - if (len5 > 0) { - for (var i4 = children.length - 1; i4 >= 0; i4--) { - var child = children[i4].getModel(); - if (TreeGraph2.indexOfChild(data3.children || [], child.id) === -1) { - self2.innerRemoveChild(child.id, { - x: data3.x, - y: data3.y - }, animate); - children.splice(i4, 1); - } - } - } - } - var oriX; - var oriY; - if (current.get("originAttrs")) { - oriX = current.get("originAttrs").x; - oriY = current.get("originAttrs").y; - } - var model = current.getModel(); - if (animate) { - current.set("originAttrs", { - x: model.x, - y: model.y - }); - } - current.set("model", data3.data); - if (oriX !== data3.x || oriY !== data3.y) { - current.updatePosition({ - x: data3.x, - y: data3.y - }); - } - }; - TreeGraph2.prototype.innerRemoveChild = function(id, to, animate) { - var self2 = this; - var node = self2.findById(id); - if (!node) { - return; - } - each_default(node.get("children"), function(child) { - self2.innerRemoveChild(child.getModel().id, to, animate); - }); - if (animate) { - var model = node.getModel(); - node.set("to", to); - node.set("originAttrs", { - x: model.x, - y: model.y - }); - self2.get("removeList").push(node); - } else { - self2.removeItem(node); - } - }; - TreeGraph2.prototype.changeData = function(data3) { - var self2 = this; - this.getNodes().map(function(node) { - return self2.clearItemStates(node); - }); - this.getEdges().map(function(edge2) { - return self2.clearItemStates(edge2); - }); - if (data3) { - self2.data(data3); - self2.render(); - } else { - self2.layout(this.get("fitView")); - } - }; - TreeGraph2.prototype.changeLayout = function(layout6) { - console.warn("Please call updateLayout instead of changeLayout. changeLayout will be discarded soon"); - var self2 = this; - self2.updateLayout(layout6); - }; - TreeGraph2.prototype.updateLayout = function(layout6) { - var self2 = this; - if (!layout6) { - console.warn("layout cannot be null"); - return; - } - self2.set("layout", layout6); - self2.set("layoutMethod", self2.getLayout()); - self2.layout(); - }; - TreeGraph2.prototype.refreshLayout = function(fitView) { - console.warn("Please call layout instead of refreshLayout. refreshLayout will be discarded soon"); - var self2 = this; - self2.layout(fitView); - }; - TreeGraph2.prototype.layout = function(fitView) { - var self2 = this; - var data3 = self2.get("data"); - var layoutMethod = self2.get("layoutMethod"); - var layoutData = layoutMethod(data3, self2.get("layout")); - var animate = self2.get("animate"); - self2.emit("beforerefreshlayout", { - data: data3, - layoutData - }); - self2.emit("beforelayout"); - self2.innerUpdateChild(layoutData, void 0, animate); - if (fitView) { - var viewController = self2.get("viewController"); - viewController.fitView(); - } - if (!animate) { - self2.refresh(); - self2.paint(); - } else { - self2.layoutAnimate(layoutData); - } - self2.emit("afterrefreshlayout", { - data: data3, - layoutData - }); - self2.emit("afterlayout"); - }; - TreeGraph2.prototype.addChild = function(data3, parent) { - var self2 = this; - self2.emit("beforeaddchild", { - model: data3, - parent - }); - if (!is_string_default(parent)) { - parent = parent.get("id"); - } - var parentData = self2.findDataById(parent); - if (parentData) { - if (!parentData.children) { - parentData.children = []; - } - parentData.children.push(data3); - self2.changeData(); - } - }; - TreeGraph2.prototype.updateChildren = function(data3, parentId) { - var self2 = this; - if (!parentId || !self2.findById(parentId)) { - console.warn("Update children failed! There is no node with id '" + parentId + "'"); - return; - } - var parentModel = self2.findDataById(parentId); - parentModel.children = data3; - self2.changeData(); - }; - TreeGraph2.prototype.updateChild = function(data3, parentId) { - var self2 = this; - if (!parentId || !self2.findById(parentId)) { - self2.changeData(data3); - return; - } - var parentModel = self2.findDataById(parentId); - var current = self2.findById(data3.id); - if (!parentModel.children) { - parentModel.children = []; - } - if (!current) { - parentModel.children.push(data3); - } else { - var index2 = TreeGraph2.indexOfChild(parentModel.children, data3.id); - parentModel.children[index2] = data3; - } - self2.changeData(); - }; - TreeGraph2.prototype.removeChild = function(id) { - var self2 = this; - var node = self2.findById(id); - if (!node) { - return; - } - var parent = node.get("parent"); - if (parent && !parent.destroyed) { - var parentNode = self2.findDataById(parent.get("id")); - var siblings = parentNode && parentNode.children || []; - var model = node.getModel(); - var index2 = TreeGraph2.indexOfChild(siblings, model.id); - siblings.splice(index2, 1); - } - self2.changeData(); - }; - TreeGraph2.prototype.findDataById = function(id, parent) { - var self2 = this; - if (!parent) { - parent = self2.get("data"); - } - if (id === parent.id) { - return parent; - } - var result = null; - each_default(parent.children || [], function(child) { - if (child.id === id) { - result = child; - return false; - } - result = self2.findDataById(id, child); - if (result) { - return false; - } - }); - return result; - }; - TreeGraph2.prototype.layoutAnimate = function(data3, onFrame) { - var self2 = this; - var animateCfg = this.get("animateCfg"); - self2.emit("beforeanimate", { - data: data3 - }); - self2.getEdges().forEach(function(edge2) { - var model = edge2.get("model"); - if (!model.sourceAnchor) { - model.sourceAnchor = edge2.get("sourceAnchorIndex"); - } - }); - this.get("canvas").animate(function(ratio) { - traverseTree4(data3, function(child) { - var node = self2.findById(child.id); - if (node) { - var origin_2 = node.get("originAttrs"); - var model = node.get("model"); - if (!origin_2) { - origin_2 = { - x: model.x, - y: model.y - }; - node.set("originAttrs", origin_2); - } - if (onFrame) { - var attrs = onFrame(node, ratio, origin_2, data3); - node.set("model", Object.assign(model, attrs)); - } else { - model.x = origin_2.x + (child.x - origin_2.x) * ratio; - model.y = origin_2.y + (child.y - origin_2.y) * ratio; - } - } - return true; - }); - each_default(self2.get("removeList"), function(node) { - var model = node.getModel(); - var from = node.get("originAttrs"); - var to = node.get("to"); - model.x = from.x + (to.x - from.x) * ratio; - model.y = from.y + (to.y - from.y) * ratio; - }); - self2.refreshPositions(); - }, { - duration: animateCfg.duration, - easing: animateCfg.ease, - callback: function callback() { - each_default(self2.getNodes(), function(node) { - node.set("originAttrs", null); - }); - each_default(self2.get("removeList"), function(node) { - self2.removeItem(node); - }); - self2.set("removeList", []); - if (animateCfg.callback) { - animateCfg.callback(); - } - self2.emit("afteranimate", { - data: data3 - }); - }, - delay: animateCfg.delay - }); - }; - TreeGraph2.prototype.stopLayoutAnimate = function() { - this.get("canvas").stopAnimate(); - this.emit("layoutanimateend", { - data: this.get("data") - }); - this.layoutAnimating = false; - }; - TreeGraph2.prototype.isLayoutAnimating = function() { - return this.layoutAnimating; - }; - TreeGraph2.prototype.render = function() { - var self2 = this; - var data3 = self2.get("data"); - if (!data3) { - throw new Error("data must be defined first"); - } - self2.clear(); - self2.emit("beforerender"); - self2.layout(this.get("fitView")); - self2.emit("afterrender"); - }; - TreeGraph2.prototype.save = function() { - return this.get("data"); - }; - return TreeGraph2; -}(graph_default2); -var tree_graph_default = TreeGraph; - -// node_modules/@antv/g6-plugin/es/base.js -var PluginBase = function() { - function PluginBase2(cfgs) { - this._cfgs = deep_mix_default(this.getDefaultCfgs(), cfgs); - this._events = {}; - this.destroyed = false; - } - PluginBase2.prototype.getDefaultCfgs = function() { - return {}; - }; - PluginBase2.prototype.initPlugin = function(graph) { - var self2 = this; - self2.set("graph", graph); - var events = self2.getEvents(); - var bindEvents2 = {}; - each_default(events, function(v3, k4) { - var event = wrap_behavior_default(self2, v3); - bindEvents2[k4] = event; - graph.on(k4, event); - }); - this._events = bindEvents2; - this.init(); - }; - PluginBase2.prototype.getEvents = function() { - return {}; - }; - PluginBase2.prototype.get = function(key) { - return this._cfgs[key]; - }; - PluginBase2.prototype.set = function(key, val) { - this._cfgs[key] = val; - }; - PluginBase2.prototype.destroy = function() { - }; - PluginBase2.prototype.destroyPlugin = function() { - this.destroy(); - var graph = this.get("graph"); - var events = this._events; - each_default(events, function(v3, k4) { - graph.off(k4, v3); - }); - this._events = null; - this._cfgs = null; - this.destroyed = true; - }; - return PluginBase2; -}(); -var base_default18 = PluginBase; - -// node_modules/@antv/g6-plugin/es/grid/index.js -var __extends5 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var GRID_PNG = "url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHBhdHRlcm4gaWQ9ImdyaWQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHBhdGggZD0iTSAwIDEwIEwgNDAgMTAgTSAxMCAwIEwgMTAgNDAgTSAwIDIwIEwgNDAgMjAgTSAyMCAwIEwgMjAgNDAgTSAwIDMwIEwgNDAgMzAgTSAzMCAwIEwgMzAgNDAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2UwZTBlMCIgb3BhY2l0eT0iMC4yIiBzdHJva2Utd2lkdGg9IjEiLz48cGF0aCBkPSJNIDQwIDAgTCAwIDAgMCA0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTBlMGUwIiBzdHJva2Utd2lkdGg9IjEiLz48L3BhdHRlcm4+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JpZCkiLz48L3N2Zz4=)"; -var Grid3 = function(_super) { - __extends5(Grid5, _super); - function Grid5() { - return _super !== null && _super.apply(this, arguments) || this; - } - Grid5.prototype.getDefaultCfgs = function() { - return { - img: GRID_PNG - }; - }; - Grid5.prototype.init = function() { - var graph = this.get("graph"); - var minZoom = graph.get("minZoom"); - var graphContainer = graph.get("container"); - var canvas = graph.get("canvas").get("el"); - var width2 = graph.get("width"); - var height = graph.get("height"); - var img = this.get("img") || GRID_PNG; - var container2 = createDom(`
    `); - var gridContainer = createDom("
    "); - container2.appendChild(gridContainer); - modifyCSS(container2, { - width: width2 + "px", - height: height + "px", - left: graphContainer.offsetLeft + "px", - top: graphContainer.offsetTop + "px" - }); - modifyCSS(gridContainer, { - width: width2 / minZoom + "px", - height: height / minZoom + "px", - left: "0px", - top: "0px" - }); - graphContainer.insertBefore(container2, canvas); - this.set("container", container2); - this.set("gridContainer", gridContainer); - }; - Grid5.prototype.getEvents = function() { - return { - viewportchange: "updateGrid" - }; - }; - Grid5.prototype.updateGrid = function(param) { - var gridContainer = this.get("gridContainer"); - var matrix = param.matrix; - if (!matrix) - matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var transform18 = "matrix(" + matrix[0] + ", " + matrix[1] + ", " + matrix[3] + ", " + matrix[4] + ", 0, 0)"; - modifyCSS(gridContainer, { - transform: transform18 - }); - }; - Grid5.prototype.getContainer = function() { - return this.get("container"); - }; - Grid5.prototype.destroy = function() { - var graph = this.get("graph"); - var graphContainer = graph.get("container"); - var container2 = this.get("container"); - graphContainer.removeChild(container2); - }; - return Grid5; -}(base_default18); -var grid_default = Grid3; - -// node_modules/@antv/g6-plugin/es/menu/index.js -var import_insert_css = __toModule(require_insert_css()); -var __extends6 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -(0, import_insert_css.default)("\n .g6-component-contextmenu {\n border: 1px solid #e2e2e2;\n border-radius: 4px;\n font-size: 12px;\n color: #545454;\n background-color: rgba(255, 255, 255, 0.9);\n padding: 10px 8px;\n box-shadow: rgb(174, 174, 174) 0px 0px 10px;\n }\n .g6-contextmenu-ul {\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n"); -var Menu = function(_super) { - __extends6(Menu3, _super); - function Menu3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Menu3.prototype.getDefaultCfgs = function() { - return { - offsetX: 6, - offsetY: 6, - handleMenuClick: void 0, - getContent: function getContent(e4) { - return "\n
      \n
    • \u83DC\u5355\u98791
    • \n
    • \u83DC\u5355\u98792
    • \n
    \n "; - }, - shouldBegin: function shouldBegin2(e4) { - return true; - }, - onHide: function onHide() { - return true; - }, - itemTypes: ["node", "edge", "combo"] - }; - }; - Menu3.prototype.getEvents = function() { - return { - contextmenu: "onMenuShow" - }; - }; - Menu3.prototype.init = function() { - var className = this.get("className"); - var menu = createDom("
    "); - modifyCSS(menu, { - top: "0px", - position: "absolute", - visibility: "hidden" - }); - var container2 = this.get("container"); - if (!container2) { - container2 = this.get("graph").get("container"); - } - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - container2.appendChild(menu); - this.set("menu", menu); - }; - Menu3.prototype.onMenuShow = function(e4) { - var self2 = this; - e4.preventDefault(); - e4.stopPropagation(); - var itemTypes = this.get("itemTypes"); - if (!e4.item) { - if (itemTypes.indexOf("canvas") === -1) - return; - } else { - if (e4.item && e4.item.getType && itemTypes.indexOf(e4.item.getType()) === -1) { - self2.onMenuHide(); - return; - } - } - var shouldBegin2 = this.get("shouldBegin"); - if (!shouldBegin2(e4)) - return; - var menuDom = this.get("menu"); - var getContent = this.get("getContent"); - var graph = this.get("graph"); - var menu = getContent(e4, graph); - if (is_string_default(menu)) { - menuDom.innerHTML = menu; - } else { - menuDom.innerHTML = menu.outerHTML; - } - this.removeMenuEventListener(); - var handleMenuClick = this.get("handleMenuClick"); - if (handleMenuClick) { - var handleMenuClickWrapper = function handleMenuClickWrapper2(evt) { - handleMenuClick(evt.target, e4.item, graph); - }; - this.set("handleMenuClickWrapper", handleMenuClickWrapper); - menuDom.addEventListener("click", handleMenuClickWrapper); - } - var width2 = graph.get("width"); - var height = graph.get("height"); - var bbox = menuDom.getBoundingClientRect(); - var offsetX = this.get("offsetX") || 0; - var offsetY = this.get("offsetY") || 0; - var graphTop = graph.getContainer().offsetTop; - var graphLeft = graph.getContainer().offsetLeft; - var x6 = e4.canvasX + graphLeft + offsetX; - var y5 = e4.canvasY + graphTop + offsetY; - if (x6 + bbox.width > width2) { - x6 = e4.canvasX - bbox.width - offsetX + graphLeft; - } - if (y5 + bbox.height > height) { - y5 = e4.canvasY - bbox.height - offsetY + graphTop; - } - modifyCSS(menuDom, { - top: y5 + "px", - left: x6 + "px", - visibility: "visible" - }); - var handler = function handler2(evt) { - self2.onMenuHide(); - }; - document.body.addEventListener("click", handler); - this.set("handler", handler); - }; - Menu3.prototype.removeMenuEventListener = function() { - var handleMenuClickWrapper = this.get("handleMenuClickWrapper"); - var handler = this.get("handler"); - if (handleMenuClickWrapper) { - var menuDom = this.get("menu"); - menuDom.removeEventListener("click", handleMenuClickWrapper); - this.set("handleMenuClickWrapper", null); - } - if (handler) { - document.body.removeEventListener("click", handler); - } - }; - Menu3.prototype.onMenuHide = function() { - var menuDom = this.get("menu"); - if (menuDom) { - modifyCSS(menuDom, { - visibility: "hidden" - }); - } - this.removeMenuEventListener(); - }; - Menu3.prototype.destroy = function() { - var menu = this.get("menu"); - this.removeMenuEventListener(); - if (menu) { - var container2 = this.get("container"); - if (!container2) { - container2 = this.get("graph").get("container"); - } - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - container2.removeChild(menu); - } - }; - return Menu3; -}(base_default18); -var menu_default = Menu; - -// node_modules/@antv/g6-plugin/node_modules/@antv/matrix-util/esm/ext.js -var ext_exports4 = {}; -__export(ext_exports4, { - angleTo: () => angleTo3, - direction: () => direction4, - leftRotate: () => leftRotate3, - leftScale: () => leftScale3, - leftTranslate: () => leftTranslate3, - transform: () => transform14, - vertical: () => vertical3 -}); -function leftTranslate3(out, a4, v3) { - var transMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromTranslation(transMat, v3); - return mat3_exports.multiply(out, transMat, a4); -} -function leftRotate3(out, a4, rad) { - var rotateMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromRotation(rotateMat, rad); - return mat3_exports.multiply(out, rotateMat, a4); -} -function leftScale3(out, a4, v3) { - var scaleMat = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - mat3_exports.fromScaling(scaleMat, v3); - return mat3_exports.multiply(out, scaleMat, a4); -} -function leftMultiply3(out, a4, a1) { - return mat3_exports.multiply(out, a1, a4); -} -function transform14(m4, actions) { - var matrix = m4 ? [].concat(m4) : [1, 0, 0, 0, 1, 0, 0, 0, 1]; - for (var i4 = 0, len5 = actions.length; i4 < len5; i4++) { - var action = actions[i4]; - switch (action[0]) { - case "t": - leftTranslate3(matrix, matrix, [action[1], action[2]]); - break; - case "s": - leftScale3(matrix, matrix, [action[1], action[2]]); - break; - case "r": - leftRotate3(matrix, matrix, action[1]); - break; - case "m": - leftMultiply3(matrix, matrix, action[1]); - break; - default: - break; - } - } - return matrix; -} -function direction4(v1, v22) { - return v1[0] * v22[1] - v22[0] * v1[1]; -} -function angleTo3(v1, v22, direct) { - var ang = vec2_exports.angle(v1, v22); - var angleLargeThanPI = direction4(v1, v22) >= 0; - if (direct) { - if (angleLargeThanPI) { - return Math.PI * 2 - ang; - } - return ang; - } - if (angleLargeThanPI) { - return ang; - } - return Math.PI * 2 - ang; -} -function vertical3(out, v3, flag) { - if (flag) { - out[0] = v3[1]; - out[1] = -1 * v3[0]; - } else { - out[0] = -1 * v3[1]; - out[1] = v3[0]; - } - return out; -} - -// node_modules/@antv/g6-plugin/es/minimap/index.js -var __extends7 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var __assign6 = function() { - __assign6 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign6.apply(this, arguments); -}; -var max6 = Math.max; -var transform15 = ext_exports4.transform; -var DEFAULT_MODE = "default"; -var KEYSHAPE_MODE = "keyShape"; -var DELEGATE_MODE = "delegate"; -var SVG3 = "svg"; -var MiniMap = function(_super) { - __extends7(MiniMap2, _super); - function MiniMap2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.handleUpdateCanvas = debounce_default(function(event) { - var self2 = _this; - if (self2.destroyed) - return; - self2.updateCanvas(); - }, 100, false); - return _this; - } - MiniMap2.prototype.getDefaultCfgs = function() { - return { - container: null, - className: "g6-minimap", - viewportClassName: "g6-minimap-viewport", - type: "default", - padding: 50, - size: [200, 120], - delegateStyle: { - fill: "#40a9ff", - stroke: "#096dd9" - }, - refresh: true - }; - }; - MiniMap2.prototype.getEvents = function() { - return { - beforepaint: "updateViewport", - beforeanimate: "disableRefresh", - afteranimate: "enableRefresh", - viewportchange: "disableOneRefresh" - }; - }; - MiniMap2.prototype.disableRefresh = function() { - this.set("refresh", false); - }; - MiniMap2.prototype.enableRefresh = function() { - this.set("refresh", true); - this.updateCanvas(); - }; - MiniMap2.prototype.disableOneRefresh = function() { - this.set("viewportChange", true); - }; - MiniMap2.prototype.initViewport = function() { - var _this = this; - var cfgs = this._cfgs; - var size2 = cfgs.size, graph = cfgs.graph; - if (this.destroyed) - return; - var canvas = this.get("canvas"); - var containerDOM = canvas.get("container"); - var viewport = createDom("\n \n "); - var isFireFox = navigator.userAgent.toLowerCase().indexOf("firefox") > -1; - var x6 = 0; - var y5 = 0; - var dragging = false; - var left2 = 0; - var top = 0; - var width2 = 0; - var height = 0; - var ratio = 0; - var zoom2 = 0; - viewport.addEventListener("dragstart", function(e4) { - var _a6, _b; - if (e4.dataTransfer) { - var img = new Image(); - img.src = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cpath /%3E%3C/svg%3E"; - (_b = (_a6 = e4.dataTransfer).setDragImage) === null || _b === void 0 ? void 0 : _b.call(_a6, img, 0, 0); - try { - e4.dataTransfer.setData("text/html", "view-port-minimap"); - } catch (_c) { - e4.dataTransfer.setData("text", "view-port-minimap"); - } - } - cfgs.refresh = false; - if (e4.target !== viewport) { - return; - } - var style = viewport.style; - left2 = parseInt(style.left, 10); - top = parseInt(style.top, 10); - width2 = parseInt(style.width, 10); - height = parseInt(style.height, 10); - if (width2 > size2[0] || height > size2[1]) { - return; - } - zoom2 = graph.getZoom(); - ratio = _this.get("ratio"); - dragging = true; - x6 = e4.clientX; - y5 = e4.clientY; - }, false); - viewport.addEventListener(isFireFox ? "dragover" : "drag", function(e4) { - if (!dragging || is_nil_default(e4.clientX) || is_nil_default(e4.clientY)) { - return; - } - var dx = x6 - e4.clientX; - var dy = y5 - e4.clientY; - if (left2 - dx < 0 || left2 - dx + width2 >= size2[0]) { - dx = 0; - } - if (top - dy < 0 || top - dy + height >= size2[1]) { - dy = 0; - } - left2 -= dx; - top -= dy; - modifyCSS(viewport, { - left: left2 + "px", - top: top + "px" - }); - graph.translate(dx * zoom2 / ratio, dy * zoom2 / ratio); - x6 = e4.clientX; - y5 = e4.clientY; - }, false); - viewport.addEventListener("dragend", function() { - dragging = false; - cfgs.refresh = true; - }, false); - this.set("viewport", viewport); - containerDOM.appendChild(viewport); - }; - MiniMap2.prototype.updateViewport = function() { - if (this.destroyed) - return; - var ratio = this.get("ratio"); - var dx = this.get("dx"); - var dy = this.get("dy"); - var totaldx = this.get("totaldx"); - var totaldy = this.get("totaldy"); - var graph = this.get("graph"); - var size2 = this.get("size"); - var graphWidth2 = graph.get("width"); - var graphHeight2 = graph.get("height"); - var topLeft = graph.getPointByCanvas(0, 0); - var bottomRight = graph.getPointByCanvas(graphWidth2, graphHeight2); - var viewport = this.get("viewport"); - if (!viewport) { - this.initViewport(); - } - var zoom2 = graph.getZoom(); - var width2 = (bottomRight.x - topLeft.x) * ratio; - var height = (bottomRight.y - topLeft.y) * ratio; - var left2 = topLeft.x * ratio + totaldx; - var top = topLeft.y * ratio + totaldy; - var right2 = left2 + width2; - var bottom = top + height; - if (left2 < 0) { - width2 += left2; - left2 = 0; - } - if (right2 > size2[0]) { - width2 = width2 - (right2 - size2[0]); - } - if (top < 0) { - height += top; - top = 0; - } - if (bottom > size2[1]) { - height = height - (bottom - size2[1]); - } - this.set("ratio", ratio); - var correctLeft = left2 + "px"; - var correctTop = top + "px"; - modifyCSS(viewport, { - left: correctLeft, - top: correctTop, - width: width2 + "px", - height: height + "px" - }); - }; - MiniMap2.prototype.updateGraphShapes = function() { - var graph = this._cfgs.graph; - var canvas = this.get("canvas"); - var graphGroup = graph.get("group"); - if (graphGroup.destroyed) - return; - var clonedGroup = graphGroup.clone(); - clonedGroup.resetMatrix(); - canvas.clear(); - canvas.add(clonedGroup); - var renderer = graph.get("renderer"); - if (renderer === SVG3) { - this.updateVisible(clonedGroup); - } - }; - MiniMap2.prototype.updateVisible = function(ele) { - var _this = this; - if (!ele.isGroup() && !ele.get("visible")) { - ele.hide(); - } else { - var children = ele.get("children"); - if (!children || !children.length) - return; - children.forEach(function(child) { - if (!child.get("visible")) - child.hide(); - _this.updateVisible(child); - }); - } - }; - MiniMap2.prototype.updateKeyShapes = function() { - var _this = this; - var graph = this._cfgs.graph; - each_default(graph.getEdges(), function(edge2) { - _this.updateOneEdgeKeyShape(edge2); - }); - each_default(graph.getNodes(), function(node) { - _this.updateOneNodeKeyShape(node); - }); - this.clearDestroyedShapes(); - }; - MiniMap2.prototype.updateOneNodeKeyShape = function(item) { - var canvas = this.get("canvas"); - var group2 = canvas.get("children")[0] || canvas.addGroup(); - var itemMap = this.get("itemMap") || {}; - var mappedItem = itemMap[item.get("id")]; - var bbox = item.getBBox(); - var cKeyShape = item.get("keyShape").clone(); - var keyShapeStyle = cKeyShape.attr(); - var attrs = { - x: bbox.centerX, - y: bbox.centerY - }; - if (!mappedItem) { - mappedItem = cKeyShape; - group2.add(mappedItem); - } else { - attrs = Object.assign(keyShapeStyle, attrs); - } - var shapeType = mappedItem.get("type"); - if (shapeType === "rect" || shapeType === "image") { - attrs.x = bbox.minX; - attrs.y = bbox.minY; - } - mappedItem.attr(attrs); - if (!item.isVisible()) { - mappedItem.hide(); - } - mappedItem.exist = true; - itemMap[item.get("id")] = mappedItem; - this.set("itemMap", itemMap); - }; - MiniMap2.prototype.updateDelegateShapes = function() { - var _this = this; - var graph = this._cfgs.graph; - each_default(graph.getEdges(), function(edge2) { - _this.updateOneEdgeKeyShape(edge2); - }); - each_default(graph.getNodes(), function(node) { - _this.updateOneNodeDelegateShape(node); - }); - this.clearDestroyedShapes(); - }; - MiniMap2.prototype.clearDestroyedShapes = function() { - var itemMap = this.get("itemMap") || {}; - var keys2 = Object.keys(itemMap); - if (!keys2 || keys2.length === 0) - return; - for (var i4 = keys2.length - 1; i4 >= 0; i4--) { - var shape = itemMap[keys2[i4]]; - var exist = shape.exist; - shape.exist = false; - if (!exist) { - shape.remove(); - delete itemMap[keys2[i4]]; - } - } - }; - MiniMap2.prototype.updateOneEdgeKeyShape = function(item) { - var canvas = this.get("canvas"); - var group2 = canvas.get("children")[0] || canvas.addGroup(); - var itemMap = this.get("itemMap") || {}; - var mappedItem = itemMap[item.get("id")]; - if (mappedItem) { - var path = item.get("keyShape").attr("path"); - mappedItem.attr("path", path); - } else { - mappedItem = item.get("keyShape").clone(); - group2.add(mappedItem); - mappedItem.toBack(); - } - if (!item.isVisible()) { - mappedItem.hide(); - } - mappedItem.exist = true; - itemMap[item.get("id")] = mappedItem; - this.set("itemMap", itemMap); - }; - MiniMap2.prototype.updateOneNodeDelegateShape = function(item) { - var canvas = this.get("canvas"); - var group2 = canvas.get("children")[0] || canvas.addGroup(); - var delegateStyle = this.get("delegateStyle"); - var itemMap = this.get("itemMap") || {}; - var mappedItem = itemMap[item.get("id")]; - var bbox = item.getBBox(); - if (mappedItem) { - var attrs = { - x: bbox.minX, - y: bbox.minY, - width: bbox.width, - height: bbox.height - }; - mappedItem.attr(attrs); - } else { - mappedItem = group2.addShape("rect", { - attrs: __assign6({ - x: bbox.minX, - y: bbox.minY, - width: bbox.width, - height: bbox.height - }, delegateStyle), - name: "minimap-node-shape" - }); - } - if (!item.isVisible()) { - mappedItem.hide(); - } - mappedItem.exist = true; - itemMap[item.get("id")] = mappedItem; - this.set("itemMap", itemMap); - }; - MiniMap2.prototype.init = function() { - this.initContainer(); - this.get("graph").on("afterupdateitem", this.handleUpdateCanvas); - this.get("graph").on("afteritemstatechange", this.handleUpdateCanvas); - this.get("graph").on("afteradditem", this.handleUpdateCanvas); - this.get("graph").on("afterremoveitem", this.handleUpdateCanvas); - this.get("graph").on("afterrender", this.handleUpdateCanvas); - this.get("graph").on("afterlayout", this.handleUpdateCanvas); - }; - MiniMap2.prototype.initContainer = function() { - var self2 = this; - var graph = self2.get("graph"); - var size2 = self2.get("size"); - var className = self2.get("className"); - var parentNode = self2.get("container"); - var container2 = createDom("
    "); - if (is_string_default(parentNode)) { - parentNode = document.getElementById(parentNode); - } - if (parentNode) { - parentNode.appendChild(container2); - } else { - graph.get("container").appendChild(container2); - } - self2.set("container", container2); - var containerDOM = createDom('
    '); - container2.appendChild(containerDOM); - containerDOM.addEventListener("dragenter", function(e4) { - e4.preventDefault(); - }); - containerDOM.addEventListener("dragover", function(e4) { - e4.preventDefault(); - }); - var canvas; - var renderer = graph.get("renderer"); - if (renderer === SVG3) { - canvas = new canvas_default3({ - container: containerDOM, - width: size2[0], - height: size2[1] - }); - } else { - canvas = new canvas_default2({ - container: containerDOM, - width: size2[0], - height: size2[1] - }); - } - self2.set("canvas", canvas); - self2.updateCanvas(); - }; - MiniMap2.prototype.updateCanvas = function() { - var isRefresh = this.get("refresh"); - if (!isRefresh) { - return; - } - var graph = this.get("graph"); - if (graph.get("destroyed")) { - return; - } - if (this.get("viewportChange")) { - this.set("viewportChange", false); - this.updateViewport(); - } - var size2 = this.get("size"); - var canvas = this.get("canvas"); - var type2 = this.get("type"); - var padding3 = this.get("padding"); - if (canvas.destroyed) { - return; - } - switch (type2) { - case DEFAULT_MODE: - this.updateGraphShapes(); - break; - case KEYSHAPE_MODE: - this.updateKeyShapes(); - break; - case DELEGATE_MODE: - this.updateDelegateShapes(); - break; - default: - break; - } - var group2 = canvas.get("children")[0]; - if (!group2) - return; - group2.resetMatrix(); - var bbox = group2.getCanvasBBox(); - var graphBBox = graph.get("canvas").getCanvasBBox(); - var width2 = graphBBox.width; - var height = graphBBox.height; - if (Number.isFinite(bbox.width)) { - width2 = max6(bbox.width, width2); - height = max6(bbox.height, height); - } - width2 += 2 * padding3; - height += 2 * padding3; - var ratio = Math.min(size2[0] / width2, size2[1] / height); - var matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var minX = 0; - var minY = 0; - if (Number.isFinite(bbox.minX)) { - minX = -bbox.minX; - } - if (Number.isFinite(bbox.minY)) { - minY = -bbox.minY; - } - var dx = (size2[0] - (width2 - 2 * padding3) * ratio) / 2; - var dy = (size2[1] - (height - 2 * padding3) * ratio) / 2; - matrix = transform15(matrix, [ - ["t", minX, minY], - ["s", ratio, ratio], - ["t", dx, dy] - ]); - group2.setMatrix(matrix); - this.set("ratio", ratio); - this.set("totaldx", dx + minX * ratio); - this.set("totaldy", dy + minY * ratio); - this.set("dx", dx); - this.set("dy", dy); - this.updateViewport(); - }; - MiniMap2.prototype.getCanvas = function() { - return this.get("canvas"); - }; - MiniMap2.prototype.getViewport = function() { - return this.get("viewport"); - }; - MiniMap2.prototype.getContainer = function() { - return this.get("container"); - }; - MiniMap2.prototype.destroy = function() { - this.get("canvas").destroy(); - var container2 = this.get("container"); - container2.parentNode.removeChild(container2); - }; - return MiniMap2; -}(base_default18); -var minimap_default = MiniMap; - -// node_modules/@antv/g6-plugin/es/bundling/index.js -var __extends8 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -function getEucliDis(pointA, pointB, eps2) { - var vx = pointA.x - pointB.x; - var vy = pointA.y - pointB.y; - if (!eps2 || Math.abs(vx) > eps2 || Math.abs(vy) > eps2) { - return Math.sqrt(vx * vx + vy * vy); - } - return eps2; -} -function getDotProduct(ei, ej) { - return ei.x * ej.x + ei.y * ej.y; -} -function projectPointToEdge(p4, e4) { - var k4 = (e4.source.y - e4.target.y) / (e4.source.x - e4.target.x); - var x6 = (k4 * k4 * e4.source.x + k4 * (p4.y - e4.source.y) + p4.x) / (k4 * k4 + 1); - var y5 = k4 * (x6 - e4.source.x) + e4.source.y; - return { - x: x6, - y: y5 - }; -} -var Bundling = function(_super) { - __extends8(Bundling3, _super); - function Bundling3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Bundling3.prototype.getDefaultCfgs = function() { - return { - edgeBundles: [], - edgePoints: [], - K: 0.1, - lambda: 0.1, - divisions: 1, - divRate: 2, - cycles: 6, - iterations: 90, - iterRate: 0.6666667, - bundleThreshold: 0.6, - eps: 1e-6, - onLayoutEnd: function onLayoutEnd() { - }, - onTick: function onTick() { - } - }; - }; - Bundling3.prototype.init = function() { - var graph = this.get("graph"); - var onTick = this.get("onTick"); - var tick = function tick2() { - if (onTick) { - onTick(); - } - graph.refreshPositions(); - }; - this.set("tick", tick); - }; - Bundling3.prototype.bundling = function(data3) { - var self2 = this; - self2.set("data", data3); - if (self2.isTicking()) { - return; - } - var edges = data3.edges || []; - var nodes = data3.nodes || []; - var nodeIdMap = {}; - var error = false; - nodes.forEach(function(node) { - if (node.x === null || !node.y === null || node.x === void 0 || !node.y === void 0) { - error = true; - } - nodeIdMap[node.id] = node; - }); - if (error) - throw new Error("please layout the graph or assign x and y for nodes first"); - self2.set("nodeIdMap", nodeIdMap); - var divisions = self2.get("divisions"); - var divRate = self2.get("divRate"); - var edgePoints = self2.divideEdges(divisions); - self2.set("edgePoints", edgePoints); - var edgeBundles = self2.getEdgeBundles(); - self2.set("edgeBundles", edgeBundles); - var C3 = self2.get("cycles"); - var iterations = self2.get("iterations"); - var iterRate = self2.get("iterRate"); - var lambda = self2.get("lambda"); - for (var i4 = 0; i4 < C3; i4++) { - var _loop_1 = function _loop_12(j5) { - var forces = []; - edges.forEach(function(e4, k4) { - if (e4.source === e4.target) - return; - var source = nodeIdMap[e4.source]; - var target = nodeIdMap[e4.target]; - forces[k4] = self2.getEdgeForces({ - source, - target - }, k4, divisions, lambda); - for (var p4 = 0; p4 < divisions + 1; p4++) { - edgePoints[k4][p4].x += forces[k4][p4].x; - edgePoints[k4][p4].y += forces[k4][p4].y; - } - }); - }; - for (var j4 = 0; j4 < iterations; j4++) { - _loop_1(j4); - } - lambda = lambda / 2; - divisions *= divRate; - iterations *= iterRate; - edgePoints = self2.divideEdges(divisions); - self2.set("edgePoints", edgePoints); - } - edges.forEach(function(e4, i5) { - if (e4.source === e4.target) - return; - e4.type = "polyline"; - e4.controlPoints = edgePoints[i5].slice(1, edgePoints[i5].length - 1); - }); - var graph = self2.get("graph"); - graph.refresh(); - }; - Bundling3.prototype.updateBundling = function(cfg) { - var self2 = this; - var data3 = cfg.data; - if (data3) { - self2.set("data", data3); - } - if (self2.get("ticking")) { - self2.set("ticking", false); - } - Object.keys(cfg).forEach(function(key) { - self2.set(key, cfg[key]); - }); - if (cfg.onTick) { - var graph_1 = this.get("graph"); - self2.set("tick", function() { - cfg.onTick(); - graph_1.refresh(); - }); - } - self2.bundling(data3); - }; - Bundling3.prototype.divideEdges = function(divisions) { - var self2 = this; - var edges = self2.get("data").edges; - var nodeIdMap = self2.get("nodeIdMap"); - var edgePoints = self2.get("edgePoints"); - if (!edgePoints || edgePoints === void 0) - edgePoints = []; - edges.forEach(function(edge2, i4) { - if (!edgePoints[i4] || edgePoints[i4] === void 0) { - edgePoints[i4] = []; - } - var source = nodeIdMap[edge2.source]; - var target = nodeIdMap[edge2.target]; - if (divisions === 1) { - edgePoints[i4].push({ - x: source.x, - y: source.y - }); - edgePoints[i4].push({ - x: 0.5 * (source.x + target.x), - y: 0.5 * (source.y + target.y) - }); - edgePoints[i4].push({ - x: target.x, - y: target.y - }); - } else { - var edgeLength = 0; - if (!edgePoints[i4] || edgePoints[i4] === []) { - edgeLength = getEucliDis({ - x: source.x, - y: source.y - }, { - x: target.x, - y: target.y - }); - } else { - edgeLength = self2.getEdgeLength(edgePoints[i4]); - } - var divisionLength_1 = edgeLength / (divisions + 1); - var currentDivisonLength_1 = divisionLength_1; - var newEdgePoints_1 = [{ - x: source.x, - y: source.y - }]; - edgePoints[i4].forEach(function(ep, j4) { - if (j4 === 0) - return; - var oriDivisionLength = getEucliDis(ep, edgePoints[i4][j4 - 1]); - while (oriDivisionLength > currentDivisonLength_1) { - var ratio = currentDivisonLength_1 / oriDivisionLength; - var edgePoint = { - x: edgePoints[i4][j4 - 1].x, - y: edgePoints[i4][j4 - 1].y - }; - edgePoint.x += ratio * (ep.x - edgePoints[i4][j4 - 1].x); - edgePoint.y += ratio * (ep.y - edgePoints[i4][j4 - 1].y); - newEdgePoints_1.push(edgePoint); - oriDivisionLength -= currentDivisonLength_1; - currentDivisonLength_1 = divisionLength_1; - } - currentDivisonLength_1 -= oriDivisionLength; - }); - newEdgePoints_1.push({ - x: target.x, - y: target.y - }); - edgePoints[i4] = newEdgePoints_1; - } - }); - return edgePoints; - }; - Bundling3.prototype.getEdgeLength = function(points) { - var length5 = 0; - points.forEach(function(p4, i4) { - if (i4 === 0) - return; - length5 += getEucliDis(p4, points[i4 - 1]); - }); - return length5; - }; - Bundling3.prototype.getEdgeBundles = function() { - var self2 = this; - var data3 = self2.get("data"); - var edges = data3.edges || []; - var bundleThreshold = self2.get("bundleThreshold"); - var nodeIdMap = self2.get("nodeIdMap"); - var edgeBundles = self2.get("edgeBundles"); - if (!edgeBundles) - edgeBundles = []; - edges.forEach(function(e4, i4) { - if (!edgeBundles[i4] || edgeBundles[i4] === void 0) { - edgeBundles[i4] = []; - } - }); - edges.forEach(function(ei, i4) { - var iSource = nodeIdMap[ei.source]; - var iTarget = nodeIdMap[ei.target]; - edges.forEach(function(ej, j4) { - if (j4 <= i4) - return; - var jSource = nodeIdMap[ej.source]; - var jTarget = nodeIdMap[ej.target]; - var score2 = self2.getBundleScore({ - source: iSource, - target: iTarget - }, { - source: jSource, - target: jTarget - }); - if (score2 >= bundleThreshold) { - edgeBundles[i4].push(j4); - edgeBundles[j4].push(i4); - } - }); - }); - return edgeBundles; - }; - Bundling3.prototype.getBundleScore = function(ei, ej) { - var self2 = this; - ei.vx = ei.target.x - ei.source.x; - ei.vy = ei.target.y - ei.source.y; - ej.vx = ej.target.x - ej.source.x; - ej.vy = ej.target.y - ej.source.y; - ei.length = getEucliDis({ - x: ei.source.x, - y: ei.source.y - }, { - x: ei.target.x, - y: ei.target.y - }); - ej.length = getEucliDis({ - x: ej.source.x, - y: ej.source.y - }, { - x: ej.target.x, - y: ej.target.y - }); - var aScore = self2.getAngleScore(ei, ej); - var sScore = self2.getScaleScore(ei, ej); - var pScore = self2.getPositionScore(ei, ej); - var vScore = self2.getVisibilityScore(ei, ej); - return aScore * sScore * pScore * vScore; - }; - Bundling3.prototype.getAngleScore = function(ei, ej) { - var dotProduct = getDotProduct({ - x: ei.vx, - y: ei.vy - }, { - x: ej.vx, - y: ej.vy - }); - return dotProduct / (ei.length * ej.length); - }; - Bundling3.prototype.getScaleScore = function(ei, ej) { - var aLength = (ei.length + ej.length) / 2; - var score2 = 2 / (aLength / Math.min(ei.length, ej.length) + Math.max(ei.length, ej.length) / aLength); - return score2; - }; - Bundling3.prototype.getPositionScore = function(ei, ej) { - var aLength = (ei.length + ej.length) / 2; - var iMid = { - x: (ei.source.x + ei.target.x) / 2, - y: (ei.source.y + ei.target.y) / 2 - }; - var jMid = { - x: (ej.source.x + ej.target.x) / 2, - y: (ej.source.y + ej.target.y) / 2 - }; - var distance15 = getEucliDis(iMid, jMid); - return aLength / (aLength + distance15); - }; - Bundling3.prototype.getVisibilityScore = function(ei, ej) { - var vij = this.getEdgeVisibility(ei, ej); - var vji = this.getEdgeVisibility(ej, ei); - return vij < vji ? vij : vji; - }; - Bundling3.prototype.getEdgeVisibility = function(ei, ej) { - var ps = projectPointToEdge(ej.source, ei); - var pt = projectPointToEdge(ej.target, ei); - var pMid = { - x: (ps.x + pt.x) / 2, - y: (ps.y + pt.y) / 2 - }; - var iMid = { - x: (ei.source.x + ei.target.x) / 2, - y: (ei.source.y + ei.target.y) / 2 - }; - return Math.max(0, 1 - 2 * getEucliDis(pMid, iMid) / getEucliDis(ps, pt)); - }; - Bundling3.prototype.getEdgeForces = function(e4, eidx, divisions, lambda) { - var self2 = this; - var edgePoints = self2.get("edgePoints"); - var K2 = self2.get("K"); - var kp = K2 / (getEucliDis(e4.source, e4.target) * (divisions + 1)); - var edgePointForces = [{ - x: 0, - y: 0 - }]; - for (var i4 = 1; i4 < divisions; i4++) { - var force = { - x: 0, - y: 0 - }; - var spring = self2.getSpringForce({ - pre: edgePoints[eidx][i4 - 1], - cur: edgePoints[eidx][i4], - next: edgePoints[eidx][i4 + 1] - }, kp); - var electrostatic = self2.getElectrostaticForce(i4, eidx); - force.x = lambda * (spring.x + electrostatic.x); - force.y = lambda * (spring.y + electrostatic.y); - edgePointForces.push(force); - } - edgePointForces.push({ - x: 0, - y: 0 - }); - return edgePointForces; - }; - Bundling3.prototype.getSpringForce = function(divisions, kp) { - var x6 = divisions.pre.x + divisions.next.x - 2 * divisions.cur.x; - var y5 = divisions.pre.y + divisions.next.y - 2 * divisions.cur.y; - x6 *= kp; - y5 *= kp; - return { - x: x6, - y: y5 - }; - }; - Bundling3.prototype.getElectrostaticForce = function(pidx, eidx) { - var self2 = this; - var eps2 = self2.get("eps"); - var edgeBundles = self2.get("edgeBundles"); - var edgePoints = self2.get("edgePoints"); - var edgeBundle = edgeBundles[eidx]; - var resForce = { - x: 0, - y: 0 - }; - edgeBundle.forEach(function(eb) { - var force = { - x: edgePoints[eb][pidx].x - edgePoints[eidx][pidx].x, - y: edgePoints[eb][pidx].y - edgePoints[eidx][pidx].y - }; - if (Math.abs(force.x) > eps2 || Math.abs(force.y) > eps2) { - var length_1 = getEucliDis(edgePoints[eb][pidx], edgePoints[eidx][pidx]); - var diff2 = 1 / length_1; - resForce.x += force.x * diff2; - resForce.y += force.y * diff2; - } - }); - return resForce; - }; - Bundling3.prototype.isTicking = function() { - return this.get("ticking"); - }; - Bundling3.prototype.getSimulation = function() { - return this.get("forceSimulation"); - }; - Bundling3.prototype.destroy = function() { - if (this.get("ticking")) { - this.getSimulation().stop(); - } - _super.prototype.destroy.call(this); - }; - return Bundling3; -}(base_default18); -var bundling_default = Bundling; - -// node_modules/@antv/g6-plugin/es/fisheye/index.js -var __extends9 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var __assign7 = function() { - __assign7 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign7.apply(this, arguments); -}; -var DELTA = 0.05; -var lensDelegateStyle = { - stroke: "#000", - strokeOpacity: 0.8, - lineWidth: 2, - fillOpacity: 0.1, - fill: "#ccc" -}; -var Fisheye = function(_super) { - __extends9(Fisheye3, _super); - function Fisheye3() { - return _super !== null && _super.apply(this, arguments) || this; - } - Fisheye3.prototype.getDefaultCfgs = function() { - return { - trigger: "mousemove", - d: 1.5, - r: 300, - delegateStyle: clone_default(lensDelegateStyle), - showLabel: false, - maxD: 5, - minD: 0, - scaleRBy: "unset", - scaleDBy: "unset", - showDPercent: true - }; - }; - Fisheye3.prototype.getEvents = function() { - var events; - switch (this.get("trigger")) { - case "click": - events = { - click: "magnify" - }; - break; - case "drag": - events = { - click: "createDelegate" - }; - break; - default: - events = { - mousemove: "magnify" - }; - break; - } - return events; - }; - Fisheye3.prototype.init = function() { - var self2 = this; - var r4 = self2.get("r"); - self2.set("cachedMagnifiedModels", []); - self2.set("cachedOriginPositions", {}); - self2.set("r2", r4 * r4); - var d3 = self2.get("d"); - self2.set("molecularParam", (d3 + 1) * r4); - }; - Fisheye3.prototype.createDelegate = function(e4) { - var _this = this; - var self2 = this; - var lensDelegate = self2.get("delegate"); - if (!lensDelegate || lensDelegate.destroyed) { - self2.magnify(e4); - lensDelegate = self2.get("delegate"); - lensDelegate.on("dragstart", function(evt) { - self2.set("delegateCenterDiff", { - x: lensDelegate.attr("x") - evt.x, - y: lensDelegate.attr("y") - evt.y - }); - }); - lensDelegate.on("drag", function(evt) { - self2.magnify(evt); - }); - if (this.get("scaleDBy") === "wheel") { - lensDelegate.on("mousewheel", function(evt) { - _this.scaleDByWheel(evt); - }); - } - if (this.get("scaleRBy") === "wheel") { - lensDelegate.on("mousewheel", function(evt) { - self2.scaleRByWheel(evt); - }); - } - } - }; - Fisheye3.prototype.scaleRByWheel = function(e4) { - var self2 = this; - if (!e4 || !e4.originalEvent) - return; - if (e4.preventDefault) - e4.preventDefault(); - var graph = self2.get("graph"); - var ratio; - var lensDelegate = self2.get("delegate"); - var lensCenter = lensDelegate ? { - x: lensDelegate.attr("x"), - y: lensDelegate.attr("y") - } : void 0; - var mousePos = lensCenter || graph.getPointByClient(e4.clientX, e4.clientY); - if (e4.originalEvent.wheelDelta < 0) { - ratio = 1 - DELTA; - } else { - ratio = 1 / (1 - DELTA); - } - var maxR = self2.get("maxR"); - var minR = self2.get("minR"); - var r4 = self2.get("r"); - if (r4 > (maxR || graph.get("height")) && ratio > 1 || r4 < (minR || graph.get("height") * 0.05) && ratio < 1) { - ratio = 1; - } - r4 *= ratio; - self2.set("r", r4); - self2.set("r2", r4 * r4); - var d3 = self2.get("d"); - self2.set("molecularParam", (d3 + 1) * r4); - self2.set("delegateCenterDiff", void 0); - self2.magnify(e4, mousePos); - }; - Fisheye3.prototype.scaleRByDrag = function(e4) { - var self2 = this; - if (!e4) - return; - var dragPrePos = self2.get("dragPrePos"); - var graph = self2.get("graph"); - var ratio; - var mousePos = graph.getPointByClient(e4.clientX, e4.clientY); - if (e4.x - dragPrePos.x < 0) { - ratio = 1 - DELTA; - } else { - ratio = 1 / (1 - DELTA); - } - var maxR = self2.get("maxR"); - var minR = self2.get("minR"); - var r4 = self2.get("r"); - if (r4 > (maxR || graph.get("height")) && ratio > 1 || r4 < (minR || graph.get("height") * 0.05) && ratio < 1) { - ratio = 1; - } - r4 *= ratio; - self2.set("r", r4); - self2.set("r2", r4 * r4); - var d3 = self2.get("d"); - self2.set("molecularParam", (d3 + 1) * r4); - self2.magnify(e4, mousePos); - self2.set("dragPrePos", { - x: e4.x, - y: e4.y - }); - }; - Fisheye3.prototype.scaleDByWheel = function(evt) { - var self2 = this; - if (!evt && !evt.originalEvent) - return; - if (evt.preventDefault) - evt.preventDefault(); - var delta = 0; - if (evt.originalEvent.wheelDelta < 0) { - delta = -0.1; - } else { - delta = 0.1; - } - var d3 = self2.get("d"); - var newD = d3 + delta; - var maxD = self2.get("maxD"); - var minD = self2.get("minD"); - if (newD < maxD && newD > minD) { - self2.set("d", newD); - var r4 = self2.get("r"); - self2.set("molecularParam", (newD + 1) * r4); - var lensDelegate = self2.get("delegate"); - var lensCenter = lensDelegate ? { - x: lensDelegate.attr("x"), - y: lensDelegate.attr("y") - } : void 0; - self2.set("delegateCenterDiff", void 0); - self2.magnify(evt, lensCenter); - } - }; - Fisheye3.prototype.scaleDByDrag = function(e4) { - var self2 = this; - var dragPrePos = self2.get("dragPrePos"); - var delta = e4.x - dragPrePos.x > 0 ? 0.1 : -0.1; - var d3 = self2.get("d"); - var newD = d3 + delta; - var maxD = self2.get("maxD"); - var minD = self2.get("minD"); - if (newD < maxD && newD > minD) { - self2.set("d", newD); - var r4 = self2.get("r"); - self2.set("molecularParam", (newD + 1) * r4); - self2.magnify(e4); - } - self2.set("dragPrePos", { - x: e4.x, - y: e4.y - }); - }; - Fisheye3.prototype.magnify = function(e4, mousePos) { - var self2 = this; - self2.restoreCache(); - var graph = self2.get("graph"); - var cachedMagnifiedModels = self2.get("cachedMagnifiedModels"); - var cachedOriginPositions = self2.get("cachedOriginPositions"); - var showLabel = self2.get("showLabel"); - var r4 = self2.get("r"); - var r22 = self2.get("r2"); - var d3 = self2.get("d"); - var molecularParam = self2.get("molecularParam"); - var nodes = graph.getNodes(); - var nodeLength = nodes.length; - var mCenter = mousePos ? { - x: mousePos.x, - y: mousePos.y - } : { - x: e4.x, - y: e4.y - }; - if (self2.get("dragging") && (self2.get("trigger") === "mousemove" || self2.get("trigger") === "click")) { - mCenter = self2.get("cacheCenter"); - } - var delegateCenterDiff = self2.get("delegateCenterDiff"); - if (delegateCenterDiff) { - mCenter.x += delegateCenterDiff.x; - mCenter.y += delegateCenterDiff.y; - } - self2.updateDelegate(mCenter, r4); - for (var i4 = 0; i4 < nodeLength; i4++) { - var model = nodes[i4].getModel(); - var x6 = model.x, y5 = model.y; - if (isNaN(x6) || isNaN(y5)) - continue; - var dist22 = (x6 - mCenter.x) * (x6 - mCenter.x) + (y5 - mCenter.y) * (y5 - mCenter.y); - if (!isNaN(dist22) && dist22 < r22 && dist22 !== 0) { - var dist4 = Math.sqrt(dist22); - var magnifiedDist = molecularParam * dist4 / (d3 * dist4 + r4); - var cos3 = (x6 - mCenter.x) / dist4; - var sin3 = (y5 - mCenter.y) / dist4; - model.x = cos3 * magnifiedDist + mCenter.x; - model.y = sin3 * magnifiedDist + mCenter.y; - if (!cachedOriginPositions[model.id]) { - cachedOriginPositions[model.id] = { - x: x6, - y: y5, - texts: [] - }; - } - cachedMagnifiedModels.push(model); - if (showLabel && 2 * dist4 < r4) { - var node = nodes[i4]; - var nodeGroup = node.getContainer(); - var shapes = nodeGroup.getChildren(); - var shapeLength = shapes.length; - for (var j4 = 0; j4 < shapeLength; j4++) { - var shape = shapes[j4]; - if (shape.get("type") === "text") { - cachedOriginPositions[model.id].texts.push({ - visible: shape.get("visible"), - shape - }); - shape.set("visible", true); - } - } - } - } - } - graph.refreshPositions(); - }; - Fisheye3.prototype.restoreCache = function() { - var self2 = this; - var cachedMagnifiedModels = self2.get("cachedMagnifiedModels"); - var cachedOriginPositions = self2.get("cachedOriginPositions"); - var cacheLength = cachedMagnifiedModels.length; - for (var i4 = 0; i4 < cacheLength; i4++) { - var node = cachedMagnifiedModels[i4]; - var id = node.id; - var ori = cachedOriginPositions[id]; - node.x = ori.x; - node.y = ori.y; - var textLength = ori.texts.length; - for (var j4 = 0; j4 < textLength; j4++) { - var text = ori.texts[j4]; - text.shape.set("visible", text.visible); - } - } - self2.set("cachedMagnifiedModels", []); - self2.set("cachedOriginPositions", {}); - }; - Fisheye3.prototype.updateParams = function(cfg) { - var self2 = this; - var r4 = cfg.r, d3 = cfg.d, trigger = cfg.trigger, minD = cfg.minD, maxD = cfg.maxD, minR = cfg.minR, maxR = cfg.maxR, scaleDBy = cfg.scaleDBy, scaleRBy = cfg.scaleRBy; - if (!isNaN(cfg.r)) { - self2.set("r", r4); - self2.set("r2", r4 * r4); - } - if (!isNaN(d3)) { - self2.set("d", d3); - } - if (!isNaN(maxD)) { - self2.set("maxD", maxD); - } - if (!isNaN(minD)) { - self2.set("minD", minD); - } - if (!isNaN(maxR)) { - self2.set("maxR", maxR); - } - if (!isNaN(minR)) { - self2.set("minR", minR); - } - var nd = self2.get("d"); - var nr = self2.get("r"); - self2.set("molecularParam", (nd + 1) * nr); - if (trigger === "mousemove" || trigger === "click" || trigger === "drag") { - self2.set("trigger", trigger); - } - if (scaleDBy === "drag" || scaleDBy === "wheel" || scaleDBy === "unset") { - self2.set("scaleDBy", scaleDBy); - self2.get("delegate").remove(); - self2.get("delegate").destroy(); - var dPercentText = self2.get("dPercentText"); - if (dPercentText) { - dPercentText.remove(); - dPercentText.destroy(); - } - } - if (scaleRBy === "drag" || scaleRBy === "wheel" || scaleRBy === "unset") { - self2.set("scaleRBy", scaleRBy); - self2.get("delegate").remove(); - self2.get("delegate").destroy(); - var dPercentText = self2.get("dPercentText"); - if (dPercentText) { - dPercentText.remove(); - dPercentText.destroy(); - } - } - }; - Fisheye3.prototype.updateDelegate = function(mCenter, r4) { - var _this = this; - var self2 = this; - var graph = self2.get("graph"); - var lensDelegate = self2.get("delegate"); - if (!lensDelegate || lensDelegate.destroyed) { - var parent_1 = graph.get("group"); - var attrs = self2.get("delegateStyle") || lensDelegateStyle; - lensDelegate = parent_1.addShape("circle", { - attrs: __assign7({ - r: r4 / 1.5, - x: mCenter.x, - y: mCenter.y - }, attrs), - name: "lens-shape", - draggable: true - }); - if (this.get("trigger") !== "drag") { - if (this.get("scaleRBy") === "wheel") { - lensDelegate.on("mousewheel", function(evt) { - self2.scaleRByWheel(evt); - }); - } else if (this.get("scaleRBy") === "drag") { - lensDelegate.on("dragstart", function(e4) { - self2.set("dragging", true); - self2.set("cacheCenter", { - x: e4.x, - y: e4.y - }); - self2.set("dragPrePos", { - x: e4.x, - y: e4.y - }); - }); - lensDelegate.on("drag", function(evt) { - self2.scaleRByDrag(evt); - }); - lensDelegate.on("dragend", function(e4) { - self2.set("dragging", false); - }); - } - if (this.get("scaleDBy") === "wheel") { - lensDelegate.on("mousewheel", function(evt) { - _this.scaleDByWheel(evt); - }); - } else if (this.get("scaleDBy") === "drag") { - lensDelegate.on("dragstart", function(evt) { - self2.set("dragging", true); - self2.set("cacheCenter", { - x: evt.x, - y: evt.y - }); - self2.set("dragPrePos", { - x: evt.x, - y: evt.y - }); - }); - lensDelegate.on("drag", function(evt) { - _this.scaleDByDrag(evt); - }); - lensDelegate.on("dragend", function(evt) { - self2.set("dragging", false); - }); - } - } - } else { - lensDelegate.attr({ - x: mCenter.x, - y: mCenter.y, - r: r4 / 1.5 - }); - } - if (self2.get("showDPercent")) { - var percent2 = Math.round((self2.get("d") - self2.get("minD")) / (self2.get("maxD") - self2.get("minD")) * 100); - var dPercentText = self2.get("dPercentText"); - var textY = mCenter.y + r4 / 1.5 + 16; - if (!dPercentText || dPercentText.destroyed) { - var parent_2 = graph.get("group"); - dPercentText = parent_2.addShape("text", { - attrs: { - text: percent2 + "%", - x: mCenter.x, - y: textY, - fill: "#aaa", - stroke: "#fff", - lineWidth: 1, - fontSize: 12 - } - }); - self2.set("dPercentText", dPercentText); - } else { - dPercentText.attr({ - text: percent2 + "%", - x: mCenter.x, - y: textY - }); - } - } - self2.set("delegate", lensDelegate); - }; - Fisheye3.prototype.clear = function() { - var graph = this.get("graph"); - this.restoreCache(); - graph.refreshPositions(); - var lensDelegate = this.get("delegate"); - if (lensDelegate && !lensDelegate.destroyed) { - lensDelegate.remove(); - lensDelegate.destroy(); - } - var dPercentText = this.get("dPercentText"); - if (dPercentText && !dPercentText.destroyed) { - dPercentText.remove(); - dPercentText.destroy(); - } - }; - Fisheye3.prototype.destroy = function() { - this.clear(); - }; - return Fisheye3; -}(base_default18); -var fisheye_default = Fisheye; - -// node_modules/@antv/g6-plugin/es/toolBar/index.js -var import_insert_css2 = __toModule(require_insert_css()); -var __extends10 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var DELTA2 = 0.05; -(0, import_insert_css2.default)("\n .g6-component-toolbar {\n position: absolute;\n list-style-type: none;\n padding: 6px;\n left: 0px;\n top: 0px;\n background-color: rgba(255, 255, 255, 0.9);\n border: 1px solid #e2e2e2;\n border-radius: 4px;\n font-size: 12px;\n color: #545454;\n margin: 0;\n }\n .g6-component-toolbar li {\n float: left;\n text-align: center;\n width: 35px;\n height: 24px;\n cursor: pointer;\n list-style-type:none;\n list-style: none;\n margin-left: 0px;\n }\n .g6-component-toolbar li .icon {\n opacity: 0.7;\n }\n .g6-component-toolbar li .icon:hover {\n opacity: 1;\n }\n"); -var getEventPath = function getEventPath2(evt) { - if (!evt) { - return []; - } - if (evt.composedPath) { - return evt.composedPath(); - } - var path = []; - var el = evt.target; - while (el) { - path.push(el); - if (el.tagName === "HTML") { - path.push(document, window); - return path; - } - el = el.parentElement; - } - return path; -}; -var ToolBar = function(_super) { - __extends10(ToolBar3, _super); - function ToolBar3() { - return _super !== null && _super.apply(this, arguments) || this; - } - ToolBar3.prototype.getDefaultCfgs = function() { - return { - handleClick: void 0, - getContent: function getContent(graph) { - return ` -
      -
    • - - - -
    • -
    • - - - -
    • -
    • - - - -
    • -
    • - - - -
    • -
    • - - - -
    • -
    • - - - -
    • -
    - `; - }, - zoomSensitivity: 2 - }; - }; - ToolBar3.prototype.init = function() { - var _this = this; - var graph = this.get("graph"); - var getContent = this.get("getContent"); - var toolBar = getContent(graph); - var toolBarDOM = toolBar; - if (is_string_default(toolBar)) { - toolBarDOM = createDom(toolBar); - } - var className = this.get("className"); - toolBarDOM.setAttribute("class", className || "g6-component-toolbar"); - var container2 = this.get("container"); - if (!container2) { - container2 = this.get("graph").get("container"); - } - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - container2.appendChild(toolBarDOM); - this.set("toolBar", toolBarDOM); - var handleClick = this.get("handleClick"); - toolBarDOM.addEventListener("click", function(evt) { - var current = getEventPath(evt).filter(function(p4) { - return p4.nodeName === "LI"; - }); - if (current.length === 0) { - return; - } - var code = current[0].getAttribute("code"); - if (!code) { - return; - } - if (handleClick) { - handleClick(code, graph); - } else { - _this.handleDefaultOperator(code, graph); - } - }); - var pos = this.get("position"); - if (pos) { - modifyCSS(toolBarDOM, { - top: pos.y + "px", - left: pos.x + "px" - }); - } - this.bindUndoRedo(); - }; - ToolBar3.prototype.bindUndoRedo = function() { - var graph = this.get("graph"); - var undoDom = document.querySelector('.g6-component-toolbar li[code="undo"]'); - var undoDomIcon = document.querySelector('.g6-component-toolbar li[code="undo"] svg'); - var redoDom = document.querySelector('.g6-component-toolbar li[code="redo"]'); - var redoDomIcon = document.querySelector('.g6-component-toolbar li[code="redo"] svg'); - if (!undoDom || !undoDomIcon || !redoDom || !redoDomIcon) { - return; - } - graph.on("stackchange", function(evt) { - var undoStack = evt.undoStack, redoStack = evt.redoStack; - var undoStackLen = undoStack.length; - var redoStackLen = redoStack.length; - if (undoStackLen === 1) { - undoDom.setAttribute("style", "cursor: not-allowed"); - undoDomIcon.setAttribute("style", "opacity: 0.4"); - } else { - undoDom.removeAttribute("style"); - undoDomIcon.removeAttribute("style"); - } - if (redoStackLen === 0) { - redoDom.setAttribute("style", "cursor: not-allowed"); - redoDomIcon.setAttribute("style", "opacity: 0.4"); - } else { - redoDom.removeAttribute("style"); - redoDomIcon.removeAttribute("style"); - } - }); - }; - ToolBar3.prototype.undo = function() { - var graph = this.get("graph"); - var undoStack = graph.getUndoStack(); - if (!undoStack || undoStack.length === 1) { - return; - } - var currentData = undoStack.pop(); - if (currentData) { - var action = currentData.action; - graph.pushStack(action, clone_default(currentData.data), "redo"); - var data_1 = currentData.data.before; - if (action === "add") { - data_1 = currentData.data.after; - } - if (!data_1) - return; - switch (action) { - case "visible": { - Object.keys(data_1).forEach(function(key) { - var array = data_1[key]; - if (!array) - return; - array.forEach(function(model) { - var item = graph.findById(model.id); - if (model.visible) { - graph.showItem(item, false); - } else { - graph.hideItem(item, false); - } - }); - }); - break; - } - case "render": - case "update": - Object.keys(data_1).forEach(function(key) { - var array = data_1[key]; - if (!array) - return; - array.forEach(function(model) { - graph.updateItem(model.id, model, false); - }); - }); - break; - case "changedata": - graph.changeData(data_1, false); - break; - case "delete": { - Object.keys(data_1).forEach(function(key) { - var array = data_1[key]; - if (!array) - return; - array.forEach(function(model) { - var itemType = model.itemType; - delete model.itemType; - graph.addItem(itemType, model, false); - }); - }); - break; - } - case "add": - Object.keys(data_1).forEach(function(key) { - var array = data_1[key]; - if (!array) - return; - array.forEach(function(model) { - graph.removeItem(model.id, false); - }); - }); - break; - case "updateComboTree": - Object.keys(data_1).forEach(function(key) { - var array = data_1[key]; - if (!array) - return; - array.forEach(function(model) { - graph.updateComboTree(model.id, model.parentId, false); - }); - }); - break; - default: - } - } - }; - ToolBar3.prototype.redo = function() { - var graph = this.get("graph"); - var redoStack = graph.getRedoStack(); - if (!redoStack || redoStack.length === 0) { - return; - } - var currentData = redoStack.pop(); - if (currentData) { - var action = currentData.action; - var data_2 = currentData.data.after; - graph.pushStack(action, clone_default(currentData.data)); - if (action === "delete") { - data_2 = currentData.data.before; - } - if (!data_2) - return; - switch (action) { - case "visible": { - Object.keys(data_2).forEach(function(key) { - var array = data_2[key]; - if (!array) - return; - array.forEach(function(model) { - var item = graph.findById(model.id); - if (model.visible) { - graph.showItem(item, false); - } else { - graph.hideItem(item, false); - } - }); - }); - break; - } - case "render": - case "update": - Object.keys(data_2).forEach(function(key) { - var array = data_2[key]; - if (!array) - return; - array.forEach(function(model) { - graph.updateItem(model.id, model, false); - }); - }); - break; - case "changedata": - graph.changeData(data_2, false); - break; - case "delete": - if (data_2.edges) { - data_2.edges.forEach(function(model) { - graph.removeItem(model.id, false); - }); - } - if (data_2.nodes) { - data_2.nodes.forEach(function(model) { - graph.removeItem(model.id, false); - }); - } - if (data_2.combos) { - data_2.combos.forEach(function(model) { - graph.removeItem(model.id, false); - }); - } - break; - case "add": { - Object.keys(data_2).forEach(function(key) { - var array = data_2[key]; - if (!array) - return; - array.forEach(function(model) { - var itemType = model.itemType; - delete model.itemType; - graph.addItem(itemType, model, false); - }); - }); - break; - } - case "updateComboTree": - Object.keys(data_2).forEach(function(key) { - var array = data_2[key]; - if (!array) - return; - array.forEach(function(model) { - graph.updateComboTree(model.id, model.parentId, false); - }); - }); - break; - default: - } - } - }; - ToolBar3.prototype.handleDefaultOperator = function(code, graph) { - var currentZoom = graph.getZoom(); - switch (code) { - case "redo": - this.redo(); - break; - case "undo": - this.undo(); - break; - case "zoomOut": { - var ratioOut = 1 / (1 - DELTA2 * this.get("zoomSensitivity")); - var maxZoom = this.get("maxZoom") || graph.get("maxZoom"); - if (ratioOut * currentZoom > maxZoom) { - return; - } - graph.zoomTo(currentZoom * ratioOut); - break; - } - case "zoomIn": { - var ratioIn = 1 - DELTA2 * this.get("zoomSensitivity"); - var minZoom = this.get("minZoom") || graph.get("minZoom"); - if (ratioIn * currentZoom < minZoom) { - return; - } - graph.zoomTo(currentZoom * ratioIn); - break; - } - case "realZoom": - graph.zoomTo(1); - break; - case "autoZoom": - graph.fitView([20, 20]); - break; - default: - } - }; - ToolBar3.prototype.destroy = function() { - var toolBar = this.get("toolBar"); - if (toolBar) { - var container2 = this.get("container"); - if (!container2) { - container2 = this.get("graph").get("container"); - } - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - container2.removeChild(toolBar); - } - var handleClick = this.get("handleClick"); - if (handleClick) { - toolBar.removeEventListener("click", handleClick); - } - }; - return ToolBar3; -}(base_default18); -var toolBar_default = ToolBar; - -// node_modules/@antv/g6-plugin/es/tooltip/index.js -var import_insert_css3 = __toModule(require_insert_css()); -var __extends11 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -(0, import_insert_css3.default)("\n .g6-component-tooltip {\n border: 1px solid #e2e2e2;\n border-radius: 4px;\n font-size: 12px;\n color: #545454;\n background-color: rgba(255, 255, 255, 0.9);\n padding: 10px 8px;\n box-shadow: rgb(174, 174, 174) 0px 0px 10px;\n }\n .tooltip-type {\n padding: 0;\n margin: 0;\n }\n .tooltip-id {\n color: #531dab;\n }\n"); -var Tooltip3 = function(_super) { - __extends11(Tooltip5, _super); - function Tooltip5() { - return _super !== null && _super.apply(this, arguments) || this; - } - Tooltip5.prototype.getDefaultCfgs = function() { - return { - offsetX: 6, - offsetY: 6, - getContent: function getContent(e4) { - return "\n

    \u7C7B\u578B\uFF1A" + e4.item.getType() + "

    \n ID\uFF1A" + e4.item.getID() + "\n "; - }, - shouldBegin: function shouldBegin2(e4) { - return true; - }, - itemTypes: ["node", "edge", "combo"], - trigger: "mouseenter", - fixToNode: void 0 - }; - }; - Tooltip5.prototype.getEvents = function() { - if (this.get("trigger") === "click") { - return { - "node:click": "onClick", - "edge:click": "onClick", - "combo:click": "onClick", - "canvas:click": "onMouseLeave", - afterremoveitem: "onMouseLeave", - contextmenu: "onMouseLeave", - "drag": "onMouseLeave" - }; - } - return { - "node:mouseenter": "onMouseEnter", - "node:mouseleave": "onMouseLeave", - "node:mousemove": "onMouseMove", - "edge:mouseenter": "onMouseEnter", - "edge:mouseleave": "onMouseLeave", - "edge:mousemove": "onMouseMove", - "combo:mouseenter": "onMouseEnter", - "combo:mouseleave": "onMouseLeave", - "combo:mousemove": "onMouseMove", - afterremoveitem: "onMouseLeave", - contextmenu: "onMouseLeave", - "node:drag": "onMouseLeave" - }; - }; - Tooltip5.prototype.init = function() { - var className = this.get("className") || "g6-component-tooltip"; - var tooltip10 = createDom("
    "); - var container2 = this.get("container"); - if (!container2) { - container2 = this.get("graph").get("container"); - } - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - modifyCSS(tooltip10, { - position: "absolute", - visibility: "hidden", - display: "none" - }); - container2.appendChild(tooltip10); - this.set("tooltip", tooltip10); - }; - Tooltip5.prototype.onClick = function(e4) { - var itemTypes = this.get("itemTypes"); - if (e4.item && e4.item.getType && itemTypes.indexOf(e4.item.getType()) === -1) - return; - var item = e4.item; - var graph = this.get("graph"); - if (this.currentTarget === item) { - this.currentTarget = null; - this.hideTooltip(); - graph.emit("tooltipchange", { - item: e4.item, - action: "hide" - }); - } else { - this.currentTarget = item; - this.showTooltip(e4); - graph.emit("tooltipchange", { - item: e4.item, - action: "show" - }); - } - }; - Tooltip5.prototype.onMouseEnter = function(e4) { - var itemTypes = this.get("itemTypes"); - if (e4.item && e4.item.getType && itemTypes.indexOf(e4.item.getType()) === -1) - return; - var item = e4.item; - var graph = this.get("graph"); - this.currentTarget = item; - this.showTooltip(e4); - graph.emit("tooltipchange", { - item: e4.item, - action: "show" - }); - }; - Tooltip5.prototype.onMouseMove = function(e4) { - var itemTypes = this.get("itemTypes"); - if (e4.item && e4.item.getType && itemTypes.indexOf(e4.item.getType()) === -1) - return; - if (!this.currentTarget || e4.item !== this.currentTarget) { - return; - } - this.showTooltip(e4); - }; - Tooltip5.prototype.onMouseLeave = function() { - this.hideTooltip(); - var graph = this.get("graph"); - graph.emit("tooltipchange", { - item: this.currentTarget, - action: "hide" - }); - this.currentTarget = null; - }; - Tooltip5.prototype.showTooltip = function(e4) { - if (!e4.item) { - return; - } - var itemTypes = this.get("itemTypes"); - if (e4.item.getType && itemTypes.indexOf(e4.item.getType()) === -1) - return; - var container2 = this.get("tooltip"); - var getContent = this.get("getContent"); - var tooltip10 = getContent(e4); - if (is_string_default(tooltip10)) { - container2.innerHTML = tooltip10; - } else { - container2.innerHTML = tooltip10.outerHTML; - } - this.updatePosition(e4); - }; - Tooltip5.prototype.hideTooltip = function() { - var tooltip10 = this.get("tooltip"); - if (tooltip10) { - modifyCSS(tooltip10, { - visibility: "hidden", - display: "none" - }); - } - }; - Tooltip5.prototype.updatePosition = function(e4) { - var shouldBegin2 = this.get("shouldBegin"); - var tooltip10 = this.get("tooltip"); - if (!shouldBegin2(e4)) { - modifyCSS(tooltip10, { - visibility: "hidden", - display: "none" - }); - return; - } - var graph = this.get("graph"); - var width2 = graph.get("width"); - var height = graph.get("height"); - var offsetX = this.get("offsetX") || 0; - var offsetY = this.get("offsetY") || 0; - var point2 = graph.getPointByClient(e4.clientX, e4.clientY); - var fixToNode = this.get("fixToNode"); - var item = e4.item; - if (item.getType && item.getType() === "node" && fixToNode && is_array_default(fixToNode) && fixToNode.length >= 2) { - var itemBBox = item.getBBox(); - point2 = { - x: itemBBox.minX + itemBBox.width * fixToNode[0], - y: itemBBox.minY + itemBBox.height * fixToNode[1] - }; - } - var _a6 = graph.getCanvasByPoint(point2.x, point2.y), x6 = _a6.x, y5 = _a6.y; - var graphContainer = graph.getContainer(); - var res = { - x: x6 + graphContainer.offsetLeft + offsetX, - y: y5 + graphContainer.offsetTop + offsetY - }; - modifyCSS(tooltip10, { - visibility: "visible", - display: "unset" - }); - var bbox = tooltip10.getBoundingClientRect(); - if (x6 + bbox.width + offsetX > width2) { - res.x -= bbox.width + offsetX; - } - if (y5 + bbox.height + offsetY > height) { - res.y -= bbox.height + offsetY; - } - modifyCSS(tooltip10, { - left: res.x + "px", - top: res.y + "px" - }); - }; - Tooltip5.prototype.hide = function() { - this.onMouseLeave(); - }; - Tooltip5.prototype.destroy = function() { - var tooltip10 = this.get("tooltip"); - if (tooltip10) { - var container2 = this.get("container"); - if (!container2) { - container2 = this.get("graph").get("container"); - } - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - container2.removeChild(tooltip10); - } - }; - return Tooltip5; -}(base_default18); -var tooltip_default2 = Tooltip3; - -// node_modules/@antv/g6-plugin/es/timeBar/path.js -var __spreadArray3 = function(to, from) { - for (var i4 = 0, il = from.length, j4 = to.length; i4 < il; i4++, j4++) { - to[j4] = from[i4]; - } - return to; -}; -function pointsToPath2(points) { - return map_default(points, function(p4, idx) { - var command = idx === 0 ? "M" : "L"; - var x6 = p4[0], y5 = p4[1]; - return [command, x6, y5]; - }); -} -function getLinePath3(points) { - return pointsToPath2(points); -} -function getSmoothLinePath2(points) { - if (points.length <= 2) { - return getLinePath3(points); - } - var data3 = []; - each_default(points, function(p4) { - if (!is_equal_default(p4, data3.slice(data3.length - 2))) { - data3.push(p4[0], p4[1]); - } - }); - var path = catmull_rom_2_bezier_default(data3, false); - var _a6 = head(points), x6 = _a6[0], y5 = _a6[1]; - path.unshift(["M", x6, y5]); - return path; -} -function dataToPath2(data3, width2, height, smooth) { - if (smooth === void 0) { - smooth = true; - } - var y5 = new linear_default({ - values: data3 - }); - var x6 = new base_default5({ - values: map_default(data3, function(v3, idx) { - return idx; - }) - }); - var points = map_default(data3, function(v3, idx) { - return [x6.scale(idx) * width2, height - y5.scale(v3) * height]; - }); - return smooth ? getSmoothLinePath2(points) : getLinePath3(points); -} -function dataToRectPath(data3, width2, height) { - var y5 = new linear_default({ - values: data3 - }); - var x6 = new base_default5({ - values: map_default(data3, function(v3, idx) { - return idx; - }) - }); - var points = map_default(data3, function(v3, idx) { - return [x6.scale(idx) * width2, height - y5.scale(v3) * height]; - }); - var rectPoints = []; - for (var i4 = 0; i4 < points.length; i4++) { - var point2 = points[i4]; - var param = { - x: point2[0], - y: point2[1], - y0: height, - size: 5 - }; - var rectPoint = getRectPoints3(param); - rectPoints.push.apply(rectPoints, rectPoint); - } - return getRectPath3(rectPoints); -} -function getAreaLineY2(data3, height) { - var y5 = new linear_default({ - values: data3 - }); - var lineY = Math.max(0, y5.min); - return height - y5.scale(lineY) * height; -} -function linePathToAreaPath2(path, width2, height, data3) { - var areaPath = __spreadArray3([], path); - var lineYPx = getAreaLineY2(data3, height); - areaPath.push(["L", width2, lineYPx]); - areaPath.push(["L", 0, lineYPx]); - areaPath.push(["Z"]); - return areaPath; -} -function getRectPoints3(pointInfo) { - var x6 = pointInfo.x, y5 = pointInfo.y, y0 = pointInfo.y0, size2 = pointInfo.size; - var yMin; - var yMax; - if (is_array_default(y5)) { - yMin = y5[0], yMax = y5[1]; - } else { - yMin = y0; - yMax = y5; - } - var xMin; - var xMax; - if (is_array_default(x6)) { - xMin = x6[0], xMax = x6[1]; - } else { - xMin = x6 - size2 / 2; - xMax = x6 + size2 / 2; - } - var points = [{ - x: xMin, - y: yMin - }, { - x: xMin, - y: yMax - }]; - points.push({ - x: xMax, - y: yMax - }, { - x: xMax, - y: yMin - }); - return points; -} -function getRectPath3(points, isClosed) { - if (isClosed === void 0) { - isClosed = true; - } - var path = []; - var firstPoint = points[0]; - path.push(["M", firstPoint.x, firstPoint.y]); - for (var i4 = 1, len5 = points.length; i4 < len5; i4++) { - path.push(["L", points[i4].x, points[i4].y]); - } - if (isClosed) { - path.push(["L", firstPoint.x, firstPoint.y]); - path.push(["z"]); - } - return path; -} - -// node_modules/@antv/g6-plugin/es/timeBar/trend.js -var __assign8 = function() { - __assign8 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign8.apply(this, arguments); -}; -var LINE_STYLE2 = { - stroke: "#C5C5C5", - strokeOpacity: 0.85 -}; -var AREA_STYLE2 = { - fill: "#CACED4", - opacity: 0.85 -}; -var Trend2 = function() { - function Trend3(cfg) { - var _a6 = cfg.x, x6 = _a6 === void 0 ? 0 : _a6, _b = cfg.y, y5 = _b === void 0 ? 0 : _b, _c = cfg.width, width2 = _c === void 0 ? 200 : _c, _d = cfg.height, height = _d === void 0 ? 26 : _d, _e = cfg.smooth, smooth = _e === void 0 ? true : _e, _f = cfg.isArea, isArea = _f === void 0 ? false : _f, _g = cfg.data, data3 = _g === void 0 ? [] : _g, lineStyle = cfg.lineStyle, areaStyle = cfg.areaStyle, group2 = cfg.group, _h = cfg.interval, interval3 = _h === void 0 ? null : _h; - this.group = group2; - this.x = x6; - this.y = y5; - this.width = width2; - this.height = height; - this.data = data3; - this.smooth = smooth; - this.isArea = isArea; - this.lineStyle = Object.assign({}, LINE_STYLE2, lineStyle); - this.areaStyle = Object.assign({}, AREA_STYLE2, areaStyle); - this.intervalConfig = interval3; - this.renderLine(); - } - Trend3.prototype.renderLine = function() { - var _a6 = this, x6 = _a6.x, y5 = _a6.y, width2 = _a6.width, height = _a6.height, data3 = _a6.data, smooth = _a6.smooth, isArea = _a6.isArea, lineStyle = _a6.lineStyle, areaStyle = _a6.areaStyle; - var trendGroup = this.group.addGroup({ - name: "trend-group" - }); - if (data3) { - var path = dataToPath2(data3, width2, height, smooth); - trendGroup.addShape("path", { - attrs: __assign8({ - path - }, lineStyle) - }); - if (isArea) { - var areaPath = linePathToAreaPath2(path, width2, height, data3); - trendGroup.addShape("path", { - attrs: __assign8({ - path: areaPath - }, areaStyle) - }); - } - } - if (this.intervalConfig) { - trendGroup.addShape("path", { - attrs: __assign8({ - path: dataToRectPath(this.intervalConfig.data, width2, height) - }, this.intervalConfig.style) - }); - } - trendGroup.move(x6, y5); - }; - Trend3.prototype.destory = function() { - this.group.destroy(); - }; - return Trend3; -}(); -var trend_default = Trend2; - -// node_modules/@antv/g6-plugin/es/timeBar/handler.js -var __assign9 = function() { - __assign9 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign9.apply(this, arguments); -}; -var DEFAULT_STYLE2 = { - fill: "#1890ff", - stroke: "#1890ff", - type: "trend", - radius: 2, - opacity: 1, - cursor: "ew-resize", - highLightFill: "#0050b3" -}; -var SIMPLE_DEFAULT_STYLE = { - fill: "#fff", - stroke: "#1890ff", - radius: 2, - opacity: 1, - cursor: "ew-resize" -}; -var Handler2 = function() { - function Handler3(cfg) { - var group2 = cfg.group, name = cfg.name, type2 = cfg.type, _a6 = cfg.x, x6 = _a6 === void 0 ? 0 : _a6, _b = cfg.y, y5 = _b === void 0 ? 0 : _b, _c = cfg.width, width2 = _c === void 0 ? 2 : _c, _d = cfg.height, height = _d === void 0 ? 24 : _d, _e = cfg.style, style = _e === void 0 ? {} : _e; - this.group = group2; - this.name = name; - this.handleType = type2; - this.x = x6; - this.y = y5; - this.width = width2; - this.height = height; - if (type2 === "trend") { - this.style = __assign9(__assign9({}, DEFAULT_STYLE2), style); - } else if (type2 === "simple") { - this.style = __assign9(__assign9({}, SIMPLE_DEFAULT_STYLE), style); - } - this.renderHandle(); - } - Handler3.prototype.setX = function(x6) { - this.setXY(x6, void 0); - }; - Handler3.prototype.setY = function(y5) { - this.setXY(void 0, y5); - }; - Handler3.prototype.setXY = function(x6, y5) { - if (is_number_default(x6)) { - this.x = x6; - } - if (is_number_default(y5)) { - this.y = y5; - } - this.updateXY(); - }; - Handler3.prototype.renderHandle = function() { - var _a6 = this, width2 = _a6.width, height = _a6.height, style = _a6.style, name = _a6.name; - var fill = style.fill, stroke = style.stroke, radius = style.radius, opacity = style.opacity, cursor = style.cursor; - this.handleGroup = this.group.addGroup(); - if (this.handleType === "trend") { - this.verticalLine = this.handleGroup.addShape("rect", { - attrs: { - x: 0, - y: 0, - width: width2, - height, - fill, - stroke, - radius, - opacity, - cursor - }, - name: name + "-handler" - }); - this.topCircle = this.handleGroup.addShape("circle", { - attrs: { - x: width2 / 2, - y: 0, - r: 2 * width2, - fill, - stroke, - radius, - opacity, - cursor - }, - name: name + "-handler" - }); - this.bottomCircle = this.handleGroup.addShape("circle", { - attrs: { - x: width2 / 2, - y: height, - r: 2 * width2, - fill, - stroke, - radius, - opacity, - cursor - }, - name: name + "-handler" - }); - } else if (this.handleType === "simple") { - this.topCircle = this.handleGroup.addShape("circle", { - attrs: { - x: width2 / 2, - y: height / 2, - r: 2 * width2, - fill, - stroke, - radius, - opacity, - cursor, - lineWidth: 2 - }, - name: name + "-handler" - }); - } - this.updateXY(); - if (this.handleType === "trend") { - this.bindTrendEvents(); - } else if (this.handleType === "simple") { - this.bindSimpleEvents(); - } - }; - Handler3.prototype.bindSimpleEvents = function() { - var _this = this; - var name = this.name; - this.handleGroup.on(name + "-handler:mouseenter", function() { - var highLightFill = _this.style.highLightFill; - _this.topCircle.attr("fill", highLightFill); - }); - this.handleGroup.on(name + "-handler:mouseleave", function() { - var fill = _this.style.fill; - _this.topCircle.attr("fill", fill); - }); - }; - Handler3.prototype.bindTrendEvents = function() { - var _this = this; - var name = this.name; - this.handleGroup.on(name + "-handler:mouseenter", function() { - var highLightFill = _this.style.highLightFill; - _this.verticalLine.attr("fill", highLightFill); - _this.topCircle.attr("fill", highLightFill); - _this.bottomCircle.attr("fill", highLightFill); - }); - this.handleGroup.on(name + "-handler:mouseleave", function() { - var fill = _this.style.fill; - _this.verticalLine.attr("fill", fill); - _this.topCircle.attr("fill", fill); - _this.bottomCircle.attr("fill", fill); - }); - }; - Handler3.prototype.show = function() { - this.handleGroup.show(); - }; - Handler3.prototype.hide = function() { - this.handleGroup.hide(); - }; - Handler3.prototype.updateXY = function() { - this.handleGroup.setMatrix([1, 0, 0, 0, 1, 0, this.x, this.y, 1]); - }; - return Handler3; -}(); -var handler_default = Handler2; - -// node_modules/@antv/g6-plugin/es/timeBar/constant.js -var TIMELINE_START = "timelinestart"; -var TIMELINE_END = "timelineend"; -var VALUE_CHANGE = "valueChange"; -var TIMEBAR_CONFIG_CHANGE = "timebarConfigChanged"; -var PLAY_PAUSE_BTN = "playPauseBtn"; -var NEXT_STEP_BTN = "nextStepBtn"; -var PRE_STEP_BTN = "preStepBtn"; - -// node_modules/@antv/g6-plugin/es/timeBar/timeButton.js -var __assign10 = function() { - __assign10 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign10.apply(this, arguments); -}; -var Button = function() { - function Button2(cfg) { - this.config = deep_mix_default({}, cfg); - this.init(); - } - Button2.prototype.update = function(cfg) { - this.config = deep_mix_default({}, this.config, cfg); - this.updateElement(); - this.renderMarker(); - }; - Button2.prototype.init = function() { - this.initElement(); - this.renderMarker(); - }; - Button2.prototype.initElement = function() { - var _a6 = this.config, group2 = _a6.group, style = _a6.style; - var _b = style.scale, scale12 = _b === void 0 ? 1 : _b, _c = style.offsetX, offsetX = _c === void 0 ? 0 : _c, _d = style.offsetY, offsetY = _d === void 0 ? 0 : _d; - var x6 = this.config.x + offsetX; - var y5 = this.config.y + offsetY; - var buttonGroup = group2.addGroup({ - name: PLAY_PAUSE_BTN - }); - this.startMarkerGroup = buttonGroup.addGroup({ - name: PLAY_PAUSE_BTN - }); - this.circle = group2.addShape("circle", { - attrs: __assign10({ - x: x6, - y: y5, - r: this.config.r * scale12 - }, style), - name: PLAY_PAUSE_BTN - }); - this.startMarker = this.startMarkerGroup.addShape("path", { - attrs: { - path: this.getStartMarkerPath(x6, y5, scale12), - fill: style.stroke || "#aaa" - } - }); - this.pauseMarkerGroup = buttonGroup.addGroup({ - name: PLAY_PAUSE_BTN - }); - var width2 = 0.25 * this.config.r * scale12; - var height = 0.5 * this.config.r * Math.sqrt(3) * scale12; - this.pauseLeftMarker = this.pauseMarkerGroup.addShape("rect", { - attrs: { - x: x6 - 0.375 * this.config.r * scale12, - y: y5 - height / 2, - width: width2, - height, - fill: style.stroke || "#aaa", - lineWidth: 0 - } - }); - this.pauseRightMarker = this.pauseMarkerGroup.addShape("rect", { - attrs: { - x: x6 + 1 / 8 * this.config.r * scale12, - y: y5 - height / 2, - width: width2, - height, - fill: style.stroke || "#aaa", - lineWidth: 0 - } - }); - }; - Button2.prototype.updateElement = function() { - var _a6 = this.config.style, _b = _a6.scale, scale12 = _b === void 0 ? 1 : _b, _c = _a6.offsetX, offsetX = _c === void 0 ? 0 : _c, _d = _a6.offsetY, offsetY = _d === void 0 ? 0 : _d; - var x6 = this.config.x + offsetX; - var y5 = this.config.y + offsetY; - this.circle.attr("x", x6); - this.circle.attr("y", y5); - this.circle.attr("r", this.config.r * scale12); - this.startMarker.attr("path", this.getStartMarkerPath(x6, y5, scale12)); - var width2 = 0.25 * this.config.r * scale12; - var height = 0.5 * this.config.r * Math.sqrt(3) * scale12; - this.pauseLeftMarker.attr("x", x6 - (1 / 4 + 1 / 8) * this.config.r * scale12); - this.pauseLeftMarker.attr("y", y5 - height / 2); - this.pauseLeftMarker.attr("width", width2); - this.pauseLeftMarker.attr("height", height); - this.pauseRightMarker.attr("x", x6 + 1 / 8 * this.config.r * scale12); - this.pauseRightMarker.attr("y", y5 - height / 2); - this.pauseRightMarker.attr("width", width2); - this.pauseRightMarker.attr("height", height); - }; - Button2.prototype.renderMarker = function() { - if (this.config.isPlay) { - this.startMarkerGroup.hide(); - this.pauseMarkerGroup.show(); - } else { - this.startMarkerGroup.show(); - this.pauseMarkerGroup.hide(); - } - }; - Button2.prototype.getStartMarkerPath = function(x6, y5, scale12) { - var sideLength = 0.5 * this.config.r * Math.sqrt(3) * scale12; - return [["M", x6 - sideLength / Math.sqrt(3) / 2, y5 - sideLength / 2], ["L", x6 + sideLength / Math.sqrt(3), y5], ["L", x6 - sideLength / Math.sqrt(3) / 2, y5 + sideLength / 2]]; - }; - return Button2; -}(); -var timeButton_default = Button; - -// node_modules/@antv/g6-plugin/es/timeBar/controllerBtn.js -var __assign11 = function() { - __assign11 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign11.apply(this, arguments); -}; -var transform16 = ext_exports4.transform; -var DEFAULT_RECT_FILL = "#aaa"; -var DEFAULT_RECT_STROKE = "green"; -var DEFAULT_PLAYBTN_STYLE = { - fill: "#aaa", - fillOpacity: 0.35, - stroke: "#aaa" -}; -var DEFAULT_PREBTN_STYLE = { - fill: "#fff" -}; -var DEFAULT_NEXTBTN_STYLE = { - fill: "green" -}; -var DEFAULT_SPEED_CONTROLLER_STYLE = { - pointer: { - fill: "#aaa", - lineWidth: 0 - }, - scroller: { - stroke: "#aaa", - fill: "#aaa", - lineWidth: 1, - lineAppendWidth: 5, - cursor: "pointer" - }, - text: { - fill: "#aaa", - textBaseline: "top" - } -}; -var DEFAULT_TIMETYPE_CONTROLLER_STYLE = { - check: { - stroke: "green", - lineWidth: 3 - }, - box: { - fill: "#fff", - stroke: "#aaa", - lineWidth: 2, - radius: 3, - width: 12, - height: 12 - }, - text: { - fill: "#aaa", - fontSize: 12, - textBaseline: "top" - } -}; -var DEFAULT_CONTROLLER_CONFIG = { - speed: 1, - loop: false, - fill: "#fff", - stroke: "#fff", - hideTimeTypeController: false, - preBtnStyle: { - fill: "#aaa", - stroke: "#aaa" - }, - nextBtnStyle: { - fill: "#aaa", - stroke: "#aaa" - }, - playBtnStyle: { - fill: "#aaa", - stroke: "#aaa", - fillOpacity: 0.05 - }, - speedControllerStyle: DEFAULT_SPEED_CONTROLLER_STYLE, - timeTypeControllerStyle: DEFAULT_TIMETYPE_CONTROLLER_STYLE -}; -var SPEED_CONTROLLER_OFFSET = 110; -var TOGGLE_MODEL_OFFSET = 50; -var ControllerBtn = function() { - function ControllerBtn2(cfg) { - this.controllerCfg = deep_mix_default({}, DEFAULT_CONTROLLER_CONFIG, cfg); - this.group = cfg.group; - this.controllerGroup = this.group.addGroup({ - name: "controller-group" - }); - this.speedAxisY = []; - this.currentSpeed = this.controllerCfg.speed; - this.currentType = "range"; - this.fontFamily = cfg.fontFamily || "Arial, sans-serif"; - this.init(); - } - ControllerBtn2.prototype.init = function() { - this.renderPlayButton(); - }; - ControllerBtn2.prototype.getNextMarkerPath = function(x6, y5, len5) { - return [["M", x6, y5 - len5], ["L", x6 + len5, y5], ["L", x6, y5 + len5], ["Z", x6, y5 - len5], ["M", x6, y5], ["L", x6 - len5, y5 - len5], ["L", x6 - len5, y5 + len5], ["Z"]]; - }; - ControllerBtn2.prototype.getPreMarkerPath = function(x6, y5, len5) { - return [["M", x6, y5 - len5], ["L", x6 - len5, y5], ["L", x6, y5 + len5], ["L", x6, y5 - len5], ["M", x6, y5], ["L", x6 + len5, y5 - len5], ["L", x6 + len5, y5 + len5], ["Z"]]; - }; - ControllerBtn2.prototype.renderPlayButton = function() { - var controllerCfg = this.controllerCfg; - var width2 = controllerCfg.width, height = controllerCfg.height, x6 = controllerCfg.x, y5 = controllerCfg.y, hideTimeTypeController = controllerCfg.hideTimeTypeController, _a6 = controllerCfg.fill, fill = _a6 === void 0 ? DEFAULT_RECT_FILL : _a6, _b = controllerCfg.stroke, stroke = _b === void 0 ? DEFAULT_RECT_STROKE : _b; - var playBtnStyle = __assign11(__assign11({}, DEFAULT_PLAYBTN_STYLE), controllerCfg.playBtnStyle || {}); - var preBtnStyle = __assign11(__assign11({}, DEFAULT_PREBTN_STYLE), controllerCfg.preBtnStyle || {}); - var nextBtnStyle = __assign11(__assign11({}, DEFAULT_NEXTBTN_STYLE), controllerCfg.nextBtnStyle || {}); - var r4 = height / 2 - 5; - var realY = y5 + 10; - var container2 = this.controllerGroup.addShape("rect", { - attrs: { - x: x6, - y: realY, - width: width2, - height, - stroke, - fill - }, - name: "container-rect" - }); - if (this.playButton) { - this.playButton.update({ - x: width2 / 2, - y: realY, - r: r4 - }); - } else { - this.playButton = new timeButton_default({ - group: this.controllerGroup, - x: width2 / 2, - y: realY + r4 + 5, - r: r4, - isPlay: this.isPlay, - style: playBtnStyle - }); - } - var prePaddingX = preBtnStyle.offsetX || 0; - var prePaddingY = preBtnStyle.offsetY || 0; - var preR = (preBtnStyle.scale || 1) * r4; - this.controllerGroup.addShape("path", { - attrs: __assign11({ - path: this.getPreMarkerPath(width2 / 2 - 5 * r4 + prePaddingX, realY + r4 + 5 + prePaddingY, preR * 0.5) - }, preBtnStyle), - name: PRE_STEP_BTN - }); - var nxtPaddingX = nextBtnStyle.offsetX || 0; - var nxtPaddingY = nextBtnStyle.offsetY || 0; - var nxtR = (nextBtnStyle.scale || 1) * r4; - this.controllerGroup.addShape("path", { - attrs: __assign11({ - path: this.getNextMarkerPath(width2 / 2 + 5 * r4 + nxtPaddingX, realY + r4 + 5 + nxtPaddingY, nxtR * 0.5) - }, nextBtnStyle), - name: NEXT_STEP_BTN - }); - container2.toBack(); - this.renderSpeedBtn(); - if (!hideTimeTypeController) { - this.renderToggleTime(); - } - this.bindEvent(); - var _c = this.controllerCfg.scale, scale12 = _c === void 0 ? 1 : _c; - var currentBBox = this.controllerGroup.getCanvasBBox(); - var centerX = (currentBBox.maxX + currentBBox.minX) / 2; - var centerY = (currentBBox.maxY + currentBBox.minY) / 2; - var matrix = transform16([1, 0, 0, 0, 1, 0, 0, 0, 1], [["t", -centerX, -centerY], ["s", scale12, scale12], ["t", centerX, centerY]]); - this.controllerGroup.setMatrix(matrix); - }; - ControllerBtn2.prototype.renderSpeedBtn = function() { - var _a6 = this.controllerCfg, y5 = _a6.y, width2 = _a6.width, hideTimeTypeController = _a6.hideTimeTypeController; - var speedControllerStyle = __assign11(__assign11({}, DEFAULT_SPEED_CONTROLLER_STYLE), this.controllerCfg.speedControllerStyle || {}); - var _b = speedControllerStyle.scroller, scroller = _b === void 0 ? {} : _b, _c = speedControllerStyle.text, text = _c === void 0 ? {} : _c, _d = speedControllerStyle.pointer, pointer = _d === void 0 ? {} : _d, _e = speedControllerStyle.scale, scale12 = _e === void 0 ? 1 : _e, _f = speedControllerStyle.offsetX, offsetX = _f === void 0 ? 0 : _f, _g = speedControllerStyle.offsetY, offsetY = _g === void 0 ? 0 : _g; - var speedGroup = this.controllerGroup.addGroup({ - name: "speed-group" - }); - this.speedGroup = speedGroup; - var speedNum = []; - var maxSpeed = 5; - this.speedAxisY = [19, 22, 26, 32, 39]; - for (var i4 = 0; i4 < 5; i4++) { - var axisY = y5 + this.speedAxisY[i4]; - var startX = width2 - (!hideTimeTypeController ? SPEED_CONTROLLER_OFFSET : TOGGLE_MODEL_OFFSET); - speedGroup.addShape("line", { - attrs: __assign11({ - x1: startX, - x2: startX + 15, - y1: axisY, - y2: axisY - }, scroller), - speed: maxSpeed, - name: "speed-rect" - }); - this.speedAxisY[i4] = axisY; - speedNum.push(maxSpeed); - maxSpeed = maxSpeed - 1; - } - this.speedText = speedGroup.addShape("text", { - attrs: __assign11({ - x: width2 - (!hideTimeTypeController ? SPEED_CONTROLLER_OFFSET : TOGGLE_MODEL_OFFSET) + 20, - y: this.speedAxisY[0] + 4, - text: "1.0X", - fontFamily: this.fontFamily || "Arial, sans-serif" - }, text) - }); - this.speedPoint = speedGroup.addShape("path", { - attrs: __assign11({ - path: this.getPointerPath(width2 - (!hideTimeTypeController ? SPEED_CONTROLLER_OFFSET : TOGGLE_MODEL_OFFSET), 0), - matrix: [1, 0, 0, 0, 1, 0, 0, this.speedAxisY[4], 1] - }, pointer) - }); - var currentBBox = this.speedGroup.getCanvasBBox(); - var centerX = (currentBBox.maxX + currentBBox.minX) / 2; - var centerY = (currentBBox.maxY + currentBBox.minY) / 2; - var matrix = this.speedGroup.getMatrix() || [1, 0, 0, 0, 1, 0, 0, 0, 1]; - matrix = transform16(matrix, [["t", -centerX, -centerY], ["s", scale12, scale12], ["t", centerX + offsetX * scale12, centerY + offsetY * scale12]]); - this.speedGroup.setMatrix(matrix); - }; - ControllerBtn2.prototype.getPointerPath = function(x6, y5) { - return [["M", x6, y5], ["L", x6 - 10, y5 - 4], ["L", x6 - 10, y5 + 4], ["Z"]]; - }; - ControllerBtn2.prototype.renderToggleTime = function() { - var _a6; - var width2 = this.controllerCfg.width; - var timeTypeControllerStyle = __assign11(__assign11({}, DEFAULT_TIMETYPE_CONTROLLER_STYLE), this.controllerCfg.timeTypeControllerStyle || {}); - var _b = timeTypeControllerStyle.scale, scale12 = _b === void 0 ? 1 : _b, _c = timeTypeControllerStyle.offsetX, offsetX = _c === void 0 ? 0 : _c, _d = timeTypeControllerStyle.offsetY, offsetY = _d === void 0 ? 0 : _d, _e = timeTypeControllerStyle.box, box2 = _e === void 0 ? {} : _e, _f = timeTypeControllerStyle.check, check = _f === void 0 ? {} : _f, _g = timeTypeControllerStyle.text, text = _g === void 0 ? {} : _g; - this.toggleGroup = this.controllerGroup.addGroup({ - name: "toggle-group" - }); - this.toggleGroup.addShape("rect", { - attrs: __assign11({ - x: width2 - TOGGLE_MODEL_OFFSET, - y: this.speedAxisY[0] + 3.5 - }, box2), - isChecked: false, - name: "toggle-model" - }); - this.checkedIcon = this.toggleGroup.addShape("path", { - attrs: __assign11({ - path: [["M", width2 - TOGGLE_MODEL_OFFSET + 3, this.speedAxisY[1] + 6], ["L", width2 - TOGGLE_MODEL_OFFSET + 7, this.speedAxisY[1] + 10], ["L", width2 - TOGGLE_MODEL_OFFSET + 12, this.speedAxisY[1] + 4]] - }, check), - capture: false - }); - this.checkedIcon.hide(); - this.checkedText = this.toggleGroup.addShape("text", { - attrs: __assign11({ - text: ((_a6 = this.controllerCfg) === null || _a6 === void 0 ? void 0 : _a6.timePointControllerText) || "\u5355\u4E00\u65F6\u95F4", - x: width2 - TOGGLE_MODEL_OFFSET + 15, - y: this.speedAxisY[0] + 4, - fontFamily: typeof window !== "undefined" ? window.getComputedStyle(document.body, null).getPropertyValue("font-family") || "Arial, sans-serif" : "Arial, sans-serif" - }, text) - }); - var currentBBox = this.toggleGroup.getCanvasBBox(); - var centerX = (currentBBox.maxX + currentBBox.minX) / 2; - var centerY = (currentBBox.maxY + currentBBox.minY) / 2; - var matrix = this.toggleGroup.getMatrix() || [1, 0, 0, 0, 1, 0, 0, 0, 1]; - matrix = transform16(matrix, [["t", -centerX, -centerY], ["s", scale12, scale12], ["t", centerX + offsetX * scale12, centerY + offsetY * scale12]]); - this.toggleGroup.setMatrix(matrix); - }; - ControllerBtn2.prototype.bindEvent = function() { - var _this = this; - this.speedGroup.on("speed-rect:click", function(evt) { - var currentPointerY = evt.target.attr("y1"); - var pointerMatrix = _this.speedPoint.attr("matrix"); - var currentYIdx = _this.speedAxisY.indexOf(pointerMatrix[7] || 0); - var targetYIdx = _this.speedAxisY.indexOf(currentPointerY); - var yDiff = _this.speedAxisY[targetYIdx] - _this.speedAxisY[currentYIdx]; - pointerMatrix = transform16(pointerMatrix, [["t", 0, yDiff]]); - _this.speedPoint.setMatrix(pointerMatrix); - _this.currentSpeed = _this.speedAxisY.length - targetYIdx; - _this.speedText.attr("text", _this.currentSpeed + ".0X"); - _this.group.emit(TIMEBAR_CONFIG_CHANGE, { - speed: _this.currentSpeed, - type: _this.currentType - }); - }); - this.speedGroup.on("mousewheel", function(evt) { - evt.preventDefault(); - var pointerMatrix = _this.speedPoint.attr("matrix") || [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var currentPointerY = pointerMatrix[7]; - var currentYIdx = _this.speedAxisY.indexOf(currentPointerY); - if (currentYIdx === -1) { - var minDist_1 = Infinity; - _this.speedAxisY.forEach(function(y5, idx) { - var dist4 = Math.abs(y5 - currentPointerY); - if (minDist_1 > dist4) { - minDist_1 = dist4; - currentYIdx = idx; - } - }); - } - if (evt.originalEvent.deltaY > 0) - currentYIdx = Math.max(0, currentYIdx - 1); - else - currentYIdx = Math.min(_this.speedAxisY.length - 1, currentYIdx + 1); - var yDiff = _this.speedAxisY[currentYIdx] - currentPointerY; - pointerMatrix = transform16(pointerMatrix, [["t", 0, yDiff]]); - _this.speedPoint.setMatrix(pointerMatrix); - _this.currentSpeed = _this.speedAxisY.length - currentYIdx; - _this.speedText.attr("text", _this.currentSpeed + ".0X"); - _this.group.emit(TIMEBAR_CONFIG_CHANGE, { - speed: _this.currentSpeed, - type: _this.currentType - }); - }); - if (this.toggleGroup) { - this.toggleGroup.on("toggle-model:click", function(evt) { - var _a6, _b; - var isChecked = evt.target.get("isChecked"); - if (!isChecked) { - _this.checkedIcon.show(); - _this.checkedText.attr("text", ((_a6 = _this.controllerCfg) === null || _a6 === void 0 ? void 0 : _a6.timeRangeControllerText) || "\u65F6\u95F4\u8303\u56F4"); - _this.currentType = "single"; - } else { - _this.checkedIcon.hide(); - _this.checkedText.attr("text", ((_b = _this.controllerCfg) === null || _b === void 0 ? void 0 : _b.timePointControllerText) || "\u5355\u4E00\u65F6\u95F4"); - _this.currentType = "range"; - } - evt.target.set("isChecked", !isChecked); - _this.group.emit(TIMEBAR_CONFIG_CHANGE, { - type: _this.currentType, - speed: _this.currentSpeed - }); - }); - } - }; - ControllerBtn2.prototype.destroy = function() { - this.speedGroup.off("speed-rect:click"); - if (this.toggleGroup) { - this.toggleGroup.off("toggle-model:click"); - this.toggleGroup.destroy(); - } - this.speedGroup.destroy(); - }; - return ControllerBtn2; -}(); -var controllerBtn_default = ControllerBtn; - -// node_modules/@antv/g6-plugin/es/timeBar/trendTimeBar.js -var __assign12 = function() { - __assign12 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign12.apply(this, arguments); -}; -var BACKGROUND_STYLE3 = { - fill: "#416180", - opacity: 0.05 -}; -var SIMPLE_BACKGROUND_STYLE = { - fill: "#416180", - opacity: 0.15, - radius: 5 -}; -var FOREGROUND_STYLE2 = { - fill: "#5B8FF9", - opacity: 0.3, - cursor: "grab" -}; -var DEFAULT_HANDLER_WIDTH2 = 2; -var HANDLER_STYLE2 = { - width: DEFAULT_HANDLER_WIDTH2, - height: 24 -}; -var TEXT_STYLE2 = { - textBaseline: "middle", - fill: "#000", - opacity: 0.45 -}; -var TICK_LABEL_STYLE = { - textAlign: "center", - textBaseline: "top", - fill: "#607889", - opacity: 0.35 -}; -var TICK_LINE_STYLE = { - lineWidth: 1, - stroke: "#ccc" -}; -var TrendTimeBar = function() { - function TrendTimeBar2(cfg) { - var _this = this; - this.prevX = 0; - this.onMouseDown = function(handler) { - return function(e4) { - _this.currentHandler = handler; - var event = e4.originalEvent; - event.stopPropagation(); - event.preventDefault(); - _this.prevX = get_default(event, "touches.0.pageX", event.pageX); - var containerDOM = _this.canvas.get("container"); - containerDOM.addEventListener("mousemove", _this.onMouseMove); - containerDOM.addEventListener("mouseup", _this.onMouseUp); - containerDOM.addEventListener("mouseleave", _this.onMouseUp); - containerDOM.addEventListener("touchmove", _this.onMouseMove); - containerDOM.addEventListener("touchend", _this.onMouseUp); - containerDOM.addEventListener("touchcancel", _this.onMouseUp); - }; - }; - this.onMouseMove = function(e4) { - e4.stopPropagation(); - e4.preventDefault(); - var x7 = get_default(e4, "touches.0.pageX", e4.pageX); - var offsetX = x7 - _this.prevX; - var offsetXRange = _this.adjustOffsetRange(offsetX / _this.width); - _this.updateStartEnd(offsetXRange); - _this.updateUI(); - _this.prevX = x7; - }; - this.onMouseUp = function() { - if (_this.currentHandler) { - _this.currentHandler = void 0; - } - var containerDOM = _this.canvas.get("container"); - if (containerDOM) { - containerDOM.removeEventListener("mousemove", _this.onMouseMove); - containerDOM.removeEventListener("mouseup", _this.onMouseUp); - containerDOM.removeEventListener("mouseleave", _this.onMouseUp); - containerDOM.removeEventListener("touchmove", _this.onMouseMove); - containerDOM.removeEventListener("touchend", _this.onMouseUp); - containerDOM.removeEventListener("touchcancel", _this.onMouseUp); - } - }; - var _a6 = cfg.x, x6 = _a6 === void 0 ? 0 : _a6, _b = cfg.y, y5 = _b === void 0 ? 0 : _b, _c = cfg.width, width2 = _c === void 0 ? 100 : _c, height = cfg.height, _d = cfg.padding, padding3 = _d === void 0 ? 10 : _d, trendCfg = cfg.trendCfg, _e = cfg.controllerCfg, controllerCfg = _e === void 0 ? { - speed: 1 - } : _e, _f = cfg.backgroundStyle, backgroundStyle = _f === void 0 ? {} : _f, _g = cfg.foregroundStyle, foregroundStyle = _g === void 0 ? {} : _g, _h = cfg.handlerStyle, handlerStyle = _h === void 0 ? {} : _h, _j = cfg.textStyle, textStyle2 = _j === void 0 ? {} : _j, _k = cfg.start, start = _k === void 0 ? 0 : _k, _l = cfg.end, end2 = _l === void 0 ? 1 : _l, _m = cfg.minText, minText = _m === void 0 ? "" : _m, _o = cfg.maxText, maxText = _o === void 0 ? "" : _o, group2 = cfg.group, graph = cfg.graph, canvas = cfg.canvas, _p = cfg.tick, tick = _p === void 0 ? { - tickLabelStyle: {}, - tickLineStyle: {}, - tickLabelFormatter: function tickLabelFormatter(d3) { - return d3; - }, - ticks: [] - } : _p, type2 = cfg.type; - this.graph = graph; - this.canvas = canvas; - this.group = group2; - this.timeBarType = type2; - this.x = x6; - this.y = y5; - this.width = width2; - this.height = height; - this.padding = padding3; - this.ticks = tick.ticks; - this.trendCfg = trendCfg; - this.controllerCfg = controllerCfg; - this.currentSpeed = controllerCfg.speed || 1; - this.tickLabelFormatter = tick.tickLabelFormatter; - if (type2 === "trend") { - this.backgroundStyle = __assign12(__assign12({}, BACKGROUND_STYLE3), backgroundStyle); - } else if (type2 === "simple") { - this.backgroundStyle = __assign12(__assign12({}, SIMPLE_BACKGROUND_STYLE), backgroundStyle); - } - this.foregroundStyle = __assign12(__assign12({}, FOREGROUND_STYLE2), foregroundStyle); - this.handlerStyle = __assign12(__assign12({}, HANDLER_STYLE2), handlerStyle); - this.textStyle = __assign12(__assign12({}, TEXT_STYLE2), textStyle2); - this.tickLabelStyle = __assign12(__assign12({}, TICK_LABEL_STYLE), tick.tickLabelStyle); - this.tickLineStyle = __assign12(__assign12({}, TICK_LINE_STYLE), tick.tickLineStyle); - this.currentMode = "range"; - this.start = start; - this.end = end2; - this.minText = minText; - this.maxText = maxText; - this.fontFamily = typeof window !== "undefined" ? window.getComputedStyle(document.body, null).getPropertyValue("font-family") || "Arial, sans-serif" : "Arial, sans-serif"; - this.renderSlider(); - } - TrendTimeBar2.prototype.update = function(cfg) { - var x6 = cfg.x, y5 = cfg.y, width2 = cfg.width, height = cfg.height, minText = cfg.minText, maxText = cfg.maxText, start = cfg.start, end2 = cfg.end; - this.start = Math.min(1, Math.max(start, 0)); - this.end = Math.min(1, Math.max(end2, 0)); - mix(this, { - x: x6, - y: y5, - width: width2, - height, - minText, - maxText - }); - this.updateUI(); - }; - TrendTimeBar2.prototype.setText = function(minText, maxText) { - this.minTextShape.attr("text", minText); - this.maxTextShape.attr("text", maxText); - }; - TrendTimeBar2.prototype.renderSlider = function() { - var _this = this; - var _a6 = this, width2 = _a6.width, height = _a6.height, timeBarType = _a6.timeBarType; - if (timeBarType === "trend" && size(get_default(this.trendCfg, "data"))) { - var trendComponent = new trend_default(__assign12(__assign12({ - x: this.x, - y: this.y, - width: width2, - height - }, this.trendCfg), { - group: this.group - })); - this.trendComponent = trendComponent; - } - var sliderGroup = this.group.addGroup({ - name: "slider-group" - }); - sliderGroup.addShape("rect", { - attrs: __assign12({ - x: 0, - y: 0, - width: width2, - height - }, this.backgroundStyle) - }); - var textGroup = this.group.addGroup(); - if (timeBarType === "trend") { - this.minTextShape = textGroup.addShape("text", { - attrs: __assign12({ - x: 0, - y: height / 2 + this.y, - textAlign: "right", - text: this.minText, - silent: false, - fontFamily: this.fontFamily || "Arial, sans-serif" - }, this.textStyle), - capture: false - }); - this.maxTextShape = textGroup.addShape("text", { - attrs: __assign12({ - y: height / 2 + this.y, - textAlign: "left", - text: this.maxText, - silent: false, - fontFamily: this.fontFamily || "Arial, sans-serif" - }, this.textStyle), - capture: false - }); - } else { - this.minTextShape = textGroup.addShape("text", { - attrs: __assign12({ - x: 0, - y: this.y - 10, - textAlign: "center", - text: this.minText, - silent: false, - fontFamily: this.fontFamily || "Arial, sans-serif" - }, this.textStyle), - capture: false - }); - this.maxTextShape = textGroup.addShape("text", { - attrs: __assign12({ - y: this.y - 10, - textAlign: "center", - text: this.maxText, - silent: false, - fontFamily: this.fontFamily || "Arial, sans-serif" - }, this.textStyle), - capture: false - }); - } - this.foregroundShape = this.group.addGroup().addShape("rect", { - attrs: __assign12({ - x: 0, - y: this.y, - height - }, this.foregroundStyle) - }); - this.foregroundShape.on("mousedown", function(e4) { - e4.target.attr("cursor", "grabbing"); - }); - this.foregroundShape.on("mouseup", function(e4) { - e4.target.attr("cursor", _this.foregroundStyle.cursor || "grab"); - }); - var handlerWidth = get_default(this.handlerStyle, "width", 2); - var handlerHeight = get_default(this.handlerStyle, "height", 24); - var minHandleGroup = this.group.addGroup({ - name: "minHandlerShape" - }); - this.minHandlerShape = new handler_default({ - name: "minHandlerShape", - group: minHandleGroup, - type: timeBarType, - x: this.x, - y: this.y, - width: handlerWidth, - height: handlerHeight, - style: this.handlerStyle - }); - var maxHandleGroup = this.group.addGroup({ - name: "maxHandlerShape" - }); - this.maxHandlerShape = new handler_default({ - name: "maxHandlerShape", - group: maxHandleGroup, - type: timeBarType, - x: this.x, - y: this.y, - width: handlerWidth, - height: handlerHeight, - style: this.handlerStyle - }); - var tickData = this.ticks; - var interval3 = width2 / (tickData.length - 1); - this.tickPosList = []; - if (this.textList && this.textList.length) { - this.textList.forEach(function(text) { - text.destroy(); - }); - } - var lastX = -Infinity; - this.textList = tickData.map(function(data3, index2) { - _this.tickPosList.push(_this.x + index2 * interval3); - var label17; - if (_this.tickLabelFormatter) { - label17 = _this.tickLabelFormatter(data3); - if (!is_string_default(label17) && label17) { - label17 = data3.date; - } - } else { - label17 = data3.date; - } - var text = _this.group.addShape("text", { - attrs: __assign12({ - x: _this.x + index2 * interval3, - y: _this.y + height + 5, - text: label17, - fontFamily: _this.fontFamily || "Arial, sans-serif" - }, _this.tickLabelStyle) - }); - var line2 = _this.group.addShape("line", { - attrs: __assign12({ - x1: _this.x + index2 * interval3, - y1: _this.y + height + 2, - x2: _this.x + index2 * interval3, - y2: _this.y + height + 6 - }, _this.tickLineStyle) - }); - line2.toBack(); - var bbox = text.getBBox(); - if (bbox.minX > lastX) { - text.show(); - line2.show(); - lastX = bbox.minX + bbox.width + 10; - } else { - text.hide(); - line2.hide(); - } - return text; - }); - this.controllerBtnGroup = new controllerBtn_default(__assign12({ - group: this.group, - x: this.x, - y: this.y + height + 25, - width: width2, - height: 35 - }, this.controllerCfg)); - this.updateStartEnd(0); - this.updateUI(); - sliderGroup.move(this.x, this.y); - this.bindEvents(); - }; - TrendTimeBar2.prototype.bindEvents = function() { - var _this = this; - var minHandleShapeGroup = this.group.find(function(group2) { - return group2.get("name") === "minHandlerShape"; - }); - if (minHandleShapeGroup) { - minHandleShapeGroup.on("minHandlerShape-handler:mousedown", this.onMouseDown(this.minHandlerShape)); - minHandleShapeGroup.on("minHandlerShape-handler:touchstart", this.onMouseDown(this.minHandlerShape)); - } - var maxHandleShapeGroup = this.group.find(function(group2) { - return group2.get("name") === "maxHandlerShape"; - }); - if (maxHandleShapeGroup) { - maxHandleShapeGroup.on("maxHandlerShape-handler:mousedown", this.onMouseDown(this.maxHandlerShape)); - maxHandleShapeGroup.on("maxHandlerShape-handler:touchstart", this.onMouseDown(this.maxHandlerShape)); - } - this.foregroundShape.on("mousedown", this.onMouseDown(this.foregroundShape)); - this.foregroundShape.on("touchstart", this.onMouseDown(this.foregroundShape)); - this.group.on(PLAY_PAUSE_BTN + ":click", function() { - _this.isPlay = !_this.isPlay; - _this.currentHandler = _this.maxHandlerShape; - _this.changePlayStatus(); - }); - this.group.on(NEXT_STEP_BTN + ":click", function() { - _this.currentHandler = _this.maxHandlerShape; - _this.updateStartEnd(0.01); - _this.updateUI(); - }); - this.group.on(PRE_STEP_BTN + ":click", function() { - _this.currentHandler = _this.maxHandlerShape; - _this.updateStartEnd(-0.01); - _this.updateUI(); - }); - this.group.on(TIMEBAR_CONFIG_CHANGE, function(_a6) { - var type2 = _a6.type, speed = _a6.speed; - _this.currentSpeed = speed; - _this.currentMode = type2; - if (type2 === "single") { - _this.minHandlerShape.hide(); - _this.foregroundShape.hide(); - _this.minTextShape.hide(); - } else if (type2 === "range") { - _this.minHandlerShape.show(); - _this.foregroundShape.show(); - _this.minTextShape.show(); - } - }); - }; - TrendTimeBar2.prototype.adjustTickIndex = function(timeSelectX) { - for (var i4 = 0; i4 < this.tickPosList.length - 1; i4++) { - if (this.tickPosList[i4] <= timeSelectX && timeSelectX <= this.tickPosList[i4 + 1]) { - return Math.abs(this.tickPosList[i4] - timeSelectX) < Math.abs(timeSelectX - this.tickPosList[i4 + 1]) ? i4 : i4 + 1; - } - } - return 0; - }; - TrendTimeBar2.prototype.adjustOffsetRange = function(offsetRange) { - switch (this.currentHandler) { - case this.minHandlerShape: { - var min7 = 0 - this.start; - var max8 = 1 - this.start; - return Math.min(max8, Math.max(min7, offsetRange)); - } - case this.maxHandlerShape: { - var min7 = 0 - this.end; - var max8 = 1 - this.end; - return Math.min(max8, Math.max(min7, offsetRange)); - } - case this.foregroundShape: { - var min7 = 0 - this.start; - var max8 = 1 - this.end; - return Math.min(max8, Math.max(min7, offsetRange)); - } - default: - return 0; - } - }; - TrendTimeBar2.prototype.updateStartEnd = function(offsetRange) { - var minData = this.ticks[this.adjustTickIndex(this.start * this.width)]; - var maxData = this.ticks[this.adjustTickIndex(this.end * this.width)]; - if (!this.currentHandler) { - this.minText = this.tickLabelFormatter ? this.tickLabelFormatter(minData) : minData.date; - this.maxText = this.tickLabelFormatter ? this.tickLabelFormatter(maxData) : maxData.date; - return; - } - switch (this.currentHandler) { - case this.minHandlerShape: - this.maxText = this.maxTextShape.attr("text"); - this.start += offsetRange; - this.minText = this.tickLabelFormatter ? this.tickLabelFormatter(minData) : minData.date; - break; - case this.maxHandlerShape: - this.minText = this.minTextShape.attr("text"); - this.end += offsetRange; - this.maxText = this.tickLabelFormatter ? this.tickLabelFormatter(maxData) : maxData.date; - break; - case this.foregroundShape: - this.start += offsetRange; - this.end += offsetRange; - this.minText = this.tickLabelFormatter ? this.tickLabelFormatter(minData) : minData.date; - this.maxText = this.tickLabelFormatter ? this.tickLabelFormatter(maxData) : maxData.date; - break; - default: - break; - } - }; - TrendTimeBar2.prototype.updateUI = function() { - var _this = this; - if (this.start < 0) { - this.start = 0; - } - if (this.end > 1) { - this.end = 1; - } - var min7 = this.x + this.start * this.width; - var max8 = this.x + this.end * this.width; - this.foregroundShape.attr("x", min7); - this.foregroundShape.attr("width", max8 - min7); - var handlerWidth = get_default(this.handlerStyle, "width", DEFAULT_HANDLER_WIDTH2); - this.setText(this.minText, this.maxText); - var _a6 = this.dodgeText([min7, max8]), minAttrs = _a6[0], maxAttrs = _a6[1]; - this.minHandlerShape.setX(min7 - handlerWidth / 2); - each_default(minAttrs, function(v3, k4) { - return _this.minTextShape.attr(k4, v3); - }); - this.maxHandlerShape.setX(max8 - handlerWidth / 2); - each_default(maxAttrs, function(v3, k4) { - return _this.maxTextShape.attr(k4, v3); - }); - if (this.currentMode === "range") { - this.graph.emit(VALUE_CHANGE, { - value: [this.start, this.end].sort() - }); - } else if (this.currentMode === "single") { - this.graph.emit(VALUE_CHANGE, { - value: [this.end, this.end] - }); - } - }; - TrendTimeBar2.prototype.dodgeText = function(range) { - var _a6, _b; - var TEXTPADDING = 2; - var handlerWidth = get_default(this.handlerStyle, "width", DEFAULT_HANDLER_WIDTH2); - var minTextShape = this.minTextShape; - var maxTextShape = this.maxTextShape; - var min7 = range[0], max8 = range[1]; - var sorted = false; - if (min7 > max8) { - _a6 = [max8, min7], min7 = _a6[0], max8 = _a6[1]; - _b = [maxTextShape, minTextShape], minTextShape = _b[0], maxTextShape = _b[1]; - sorted = true; - } - var minBBox = minTextShape.getBBox(); - var maxBBox = maxTextShape.getBBox(); - var minAttrs = null; - var maxAttrs = null; - if (this.timeBarType === "trend") { - minAttrs = min7 - minBBox.width < this.x + TEXTPADDING ? { - x: min7 + handlerWidth / 2 + TEXTPADDING, - textAlign: "left" - } : { - x: min7 - handlerWidth / 2 - TEXTPADDING, - textAlign: "right" - }; - maxAttrs = max8 + maxBBox.width > this.x + this.width ? { - x: max8 - handlerWidth / 2 - TEXTPADDING, - textAlign: "right" - } : { - x: max8 + handlerWidth / 2 + TEXTPADDING, - textAlign: "left" - }; - } else if (this.timeBarType === "simple") { - minAttrs = minBBox.width > min7 - TEXTPADDING ? { - x: min7 + handlerWidth / 2 + TEXTPADDING, - textAlign: "center" - } : { - x: min7 - handlerWidth / 2 - TEXTPADDING, - textAlign: "center" - }; - maxAttrs = maxBBox.width > this.width - max8 - TEXTPADDING ? { - x: max8 - handlerWidth / 2 - TEXTPADDING, - textAlign: "center" - } : { - x: max8 + handlerWidth / 2 + TEXTPADDING, - textAlign: "center" - }; - } - return !sorted ? [minAttrs, maxAttrs] : [maxAttrs, minAttrs]; - }; - TrendTimeBar2.prototype.startPlay = function() { - var _this = this; - return typeof window !== "undefined" ? window.requestAnimationFrame(function() { - var _a6 = _this, ticks = _a6.ticks, width2 = _a6.width; - var speed = _this.currentSpeed; - var tickInterval = width2 / ticks.length; - var offsetX = tickInterval / ((10 - speed) * 1e3 / 60); - var offsetXRange = _this.adjustOffsetRange(offsetX / _this.width); - _this.updateStartEnd(offsetXRange); - _this.updateUI(); - if (_this.isPlay) { - _this.playHandler = _this.startPlay(); - } - }) : void 0; - }; - TrendTimeBar2.prototype.changePlayStatus = function(isSync) { - if (isSync === void 0) { - isSync = true; - } - this.controllerBtnGroup.playButton.update({ - isPlay: this.isPlay - }); - if (this.isPlay) { - this.playHandler = this.startPlay(); - this.graph.emit(TIMELINE_START, null); - } else { - if (this.playHandler) { - if (typeof window !== "undefined") - window.cancelAnimationFrame(this.playHandler); - if (isSync) { - this.graph.emit(TIMELINE_END, null); - } - } - } - }; - TrendTimeBar2.prototype.destory = function() { - this.graph.off(VALUE_CHANGE); - var group2 = this.group; - var minHandleShapeGroup = group2.find(function(g4) { - return g4.get("name") === "minHandlerShape"; - }); - if (minHandleShapeGroup) { - minHandleShapeGroup.off("minHandlerShape-handler:mousedown"); - minHandleShapeGroup.off("minHandlerShape-handler:touchstart"); - minHandleShapeGroup.destroy(); - } - var maxHandleShapeGroup = group2.find(function(g4) { - return g4.get("name") === "maxHandlerShape"; - }); - if (maxHandleShapeGroup) { - maxHandleShapeGroup.off("maxHandlerShape-handler:mousedown"); - maxHandleShapeGroup.off("maxHandlerShape-handler:touchstart"); - maxHandleShapeGroup.destroy(); - } - this.foregroundShape.off("mousedown"); - this.foregroundShape.off("touchstart"); - this.foregroundShape.destroy(); - group2.off(PLAY_PAUSE_BTN + ":click"); - group2.off(NEXT_STEP_BTN + ":click"); - group2.off(PRE_STEP_BTN + ":click"); - group2.off(TIMEBAR_CONFIG_CHANGE); - group2.destroy(); - if (this.trendComponent) { - this.trendComponent.destory(); - } - }; - return TrendTimeBar2; -}(); -var trendTimeBar_default = TrendTimeBar; - -// node_modules/@antv/g6-plugin/es/timeBar/timeBarTooltip.js -var TimeBarTooltip = function() { - function TimeBarTooltip2(cfg) { - var _a6 = cfg.x, x6 = _a6 === void 0 ? 0 : _a6, _b = cfg.y, y5 = _b === void 0 ? 0 : _b, container2 = cfg.container, text = cfg.text, _c = cfg.padding, padding3 = _c === void 0 ? [4, 4, 4, 4] : _c, _d = cfg.className, className = _d === void 0 ? "g6-component-timebar-tooltip" : _d, _e = cfg.backgroundColor, backgroundColor = _e === void 0 ? "#000" : _e, _f = cfg.textColor, textColor3 = _f === void 0 ? "#fff" : _f, _g = cfg.opacity, opacity = _g === void 0 ? 0.8 : _g, _h = cfg.fontSize, fontSize = _h === void 0 ? 12 : _h; - this.container = container2; - this.className = className; - this.backgroundColor = backgroundColor; - this.textColor = textColor3; - this.x = x6; - this.y = y5; - this.text = text; - this.padding = padding3; - this.opacity = opacity; - this.fontSize = fontSize; - this.render(); - } - TimeBarTooltip2.prototype.render = function() { - var self2 = this; - var className = self2.className, x6 = self2.x, y5 = self2.y, backgroundColor = self2.backgroundColor, textColor3 = self2.textColor, text = self2.text, padding3 = self2.padding, opacity = self2.opacity, fontSize = self2.fontSize; - var parentNode = self2.container; - var container2 = createDom("
    '); - if (is_string_default(parentNode)) { - parentNode = document.getElementById(parentNode); - } - parentNode.appendChild(container2); - self2.parentHeight = parentNode.offsetHeight; - self2.parentWidth = parentNode.offsetWidth; - modifyCSS(container2, { - visibility: "hidden", - top: 0, - left: 0 - }); - var background = createDom("\n
    "); - background.innerHTML = text; - container2.appendChild(background); - self2.backgroundDOM = background; - var arrow = createDom("
    "); - container2.appendChild(arrow); - self2.arrowDOM = arrow; - self2.container = container2; - }; - TimeBarTooltip2.prototype.show = function(cfg) { - var self2 = this; - var text = cfg.text, x6 = cfg.x, y5 = cfg.y, clientX = cfg.clientX, clientY = cfg.clientY; - self2.backgroundDOM.innerHTML = text; - var backgroundWidth = self2.backgroundDOM.offsetWidth; - var backgroundHeight = self2.backgroundDOM.offsetHeight; - var arrowWidth = self2.arrowDOM.offsetWidth; - var arrowHeight = self2.arrowDOM.offsetHeight; - modifyCSS(self2.container, { - top: -backgroundHeight - arrowHeight + "px", - left: x6 + "px", - visibility: "visible" - }); - modifyCSS(self2.backgroundDOM, { - marginLeft: -backgroundWidth / 2 + "px" - }); - modifyCSS(self2.arrowDOM, { - marginLeft: -arrowWidth / 2 + "px", - top: backgroundHeight + "px" - }); - var left2 = x6 - backgroundWidth / 2; - var right2 = x6 + backgroundWidth / 2; - if (left2 < 0) { - modifyCSS(self2.backgroundDOM, { - marginLeft: -backgroundWidth / 2 - left2 + "px" - }); - } else if (right2 > self2.parentWidth) { - modifyCSS(self2.backgroundDOM, { - marginLeft: -backgroundWidth / 2 - right2 + self2.parentWidth + 12 + "px" - }); - } - }; - TimeBarTooltip2.prototype.hide = function() { - modifyCSS(this.container, { - top: 0, - left: 0, - visibility: "hidden" - }); - }; - return TimeBarTooltip2; -}(); -var timeBarTooltip_default = TimeBarTooltip; - -// node_modules/@antv/g6-plugin/es/timeBar/timeBarSlice.js -var __assign13 = function() { - __assign13 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign13.apply(this, arguments); -}; -var DEFAULT_SELECTEDTICK_STYLE = { - fill: "#5B8FF9" -}; -var DEFAULT_UNSELECTEDTICK_STYLE = { - fill: "#e6e8e9" -}; -var TimeBarSlice = function() { - function TimeBarSlice2(cfgs) { - this.frameCount = 0; - this.fontFamily = "Arial, sans-serif"; - var graph = cfgs.graph, canvas = cfgs.canvas, group2 = cfgs.group, width2 = cfgs.width, height = cfgs.height, padding3 = cfgs.padding, data3 = cfgs.data, start = cfgs.start, end2 = cfgs.end, _a6 = cfgs.x, x6 = _a6 === void 0 ? 0 : _a6, _b = cfgs.y, y5 = _b === void 0 ? 0 : _b, tickLabelFormatter = cfgs.tickLabelFormatter, _c = cfgs.selectedTickStyle, selectedTickStyle = _c === void 0 ? DEFAULT_SELECTEDTICK_STYLE : _c, _d = cfgs.unselectedTickStyle, unselectedTickStyle = _d === void 0 ? DEFAULT_UNSELECTEDTICK_STYLE : _d, tooltipBackgroundColor = cfgs.tooltipBackgroundColor, tooltipFomatter = cfgs.tooltipFomatter; - this.graph = graph; - this.group = group2; - this.sliceGroup = group2.addGroup({ - name: "slice-group" - }); - this.canvas = canvas; - this.width = width2; - this.height = height; - this.padding = padding3; - this.data = data3; - this.start = start; - this.end = end2; - this.tickLabelFormatter = tickLabelFormatter; - this.selectedTickStyle = selectedTickStyle; - this.unselectedTickStyle = unselectedTickStyle; - this.x = x6; - this.y = y5; - this.tooltipBackgroundColor = tooltipBackgroundColor; - this.tooltipFomatter = tooltipFomatter; - this.fontFamily = typeof window !== "undefined" ? window.getComputedStyle(document.body, null).getPropertyValue("font-family") || "Arial, sans-serif" : "Arial, sans-serif"; - this.renderSlices(); - this.initEvent(); - } - TimeBarSlice2.prototype.renderSlices = function() { - var _this = this; - var _a6 = this, width2 = _a6.width, height = _a6.height, padding3 = _a6.padding, data3 = _a6.data, start = _a6.start, end2 = _a6.end, tickLabelFormatter = _a6.tickLabelFormatter, selectedTickStyle = _a6.selectedTickStyle, unselectedTickStyle = _a6.unselectedTickStyle; - var realWidth = width2 - 2 * padding3; - var fontSize = 10; - var labelLineHeight = 4; - var labelAreaHeight = 3 * padding3 + labelLineHeight + fontSize; - var ticksAreaHeight = height - labelAreaHeight - 2 * padding3; - var gap = 2; - var ticksLength = data3.length; - var tickWidth = (realWidth - gap * (ticksLength - 1)) / ticksLength; - this.tickWidth = tickWidth; - var sliceGroup = this.sliceGroup; - var tickRects = []; - var labels = []; - var startTickId = Math.round(ticksLength * start); - var endTickId = Math.round(ticksLength * end2); - this.startTickRectId = startTickId; - this.endTickRectId = endTickId; - data3.forEach(function(d3, i4) { - var selected = i4 >= startTickId && i4 <= endTickId; - var tickStyle = selected ? selectedTickStyle : unselectedTickStyle; - var rect3 = sliceGroup.addShape("rect", { - attrs: __assign13({ - x: padding3 + i4 * (tickWidth + gap), - y: padding3, - width: tickWidth, - height: ticksAreaHeight - }, tickStyle), - draggable: true, - name: "tick-rect-" + i4 - }); - var pickRect = sliceGroup.addShape("rect", { - attrs: { - x: padding3 + i4 * tickWidth + gap * (2 * i4 - 1) / 2, - y: padding3, - width: i4 === 0 || i4 === ticksLength - 1 ? tickWidth + gap / 2 : tickWidth + gap, - height: ticksAreaHeight, - fill: "#fff", - opacity: 0 - }, - draggable: true, - name: "pick-rect-" + i4 - }); - pickRect.toFront(); - var rectBBox = rect3.getBBox(); - var centerX = (rectBBox.minX + rectBBox.maxX) / 2; - tickRects.push({ - rect: rect3, - pickRect, - value: d3.date, - x: centerX, - y: rectBBox.minY - }); - var label17; - if (tickLabelFormatter) { - label17 = tickLabelFormatter(d3); - if (!is_string_default(label17) && label17) { - label17 = d3.date; - } - } else if (i4 % Math.round(ticksLength / 10) === 0) { - label17 = d3.date; - } - if (label17) { - labels.push(label17); - var lineStartY = rectBBox.maxY + padding3 * 2; - sliceGroup.addShape("line", { - attrs: { - stroke: "#BFBFBF", - x1: centerX, - y1: lineStartY, - x2: centerX, - y2: lineStartY + labelLineHeight - } - }); - var labelStartY = lineStartY + labelLineHeight + padding3; - var text = sliceGroup.addShape("text", { - attrs: { - fill: "#8c8c8c", - stroke: "#fff", - lineWidth: 1, - x: centerX, - y: labelStartY, - textAlign: "center", - text: label17, - textBaseline: "top", - fontSize: 10, - fontFamily: _this.fontFamily || "Arial, sans-serif" - }, - capture: false - }); - var textBBox = text.getBBox(); - if (textBBox.maxX > width2) { - text.attr("textAlign", "right"); - } else if (textBBox.minX < 0) { - text.attr("textAlign", "left"); - } - } - }); - this.tickRects = tickRects; - var group2 = this.group; - this.currentSpeed = 1; - this.controllerBtnGroup = new controllerBtn_default({ - group: group2, - x: this.x, - y: this.y + height + 5, - width: width2, - height: 40, - hideTimeTypeController: true, - speed: this.currentSpeed, - fontFamily: this.fontFamily || "Arial, sans-serif" - }); - }; - TimeBarSlice2.prototype.initEvent = function() { - var _this = this; - var sliceGroup = this.sliceGroup; - sliceGroup.on("click", function(e4) { - var targetRect = e4.target; - if (targetRect.get("type") !== "rect" || !targetRect.get("name")) - return; - var id = parseInt(targetRect.get("name").split("-")[2], 10); - if (!isNaN(id)) { - var tickRects_1 = _this.tickRects; - var unselectedTickStyle_1 = _this.unselectedTickStyle; - tickRects_1.forEach(function(tickRect) { - tickRect.rect.attr(unselectedTickStyle_1); - }); - var selectedTickStyle = _this.selectedTickStyle; - tickRects_1[id].rect.attr(selectedTickStyle); - _this.startTickRectId = id; - _this.endTickRectId = id; - var ticksLength = tickRects_1.length; - var start = id / ticksLength; - _this.graph.emit(VALUE_CHANGE, { - value: [start, start] - }); - } - }); - sliceGroup.on("dragstart", function(e4) { - var tickRects2 = _this.tickRects; - var unselectedTickStyle = _this.unselectedTickStyle; - tickRects2.forEach(function(tickRect) { - tickRect.rect.attr(unselectedTickStyle); - }); - var targetRect = e4.target; - var id = parseInt(targetRect.get("name").split("-")[2], 10); - var selectedTickStyle = _this.selectedTickStyle; - tickRects2[id].rect.attr(selectedTickStyle); - _this.startTickRectId = id; - var ticksLength = tickRects2.length; - var start = id / ticksLength; - _this.graph.emit(VALUE_CHANGE, { - value: [start, start] - }); - _this.dragging = true; - }); - sliceGroup.on("dragover", function(e4) { - if (!_this.dragging) - return; - if (e4.target.get("type") !== "rect") - return; - var id = parseInt(e4.target.get("name").split("-")[2], 10); - var startTickRectId = _this.startTickRectId; - var tickRects2 = _this.tickRects; - var selectedTickStyle = _this.selectedTickStyle; - var unselectedTickStyle = _this.unselectedTickStyle; - for (var i4 = 0; i4 < tickRects2.length; i4++) { - var style = i4 >= startTickRectId && i4 <= id ? selectedTickStyle : unselectedTickStyle; - tickRects2[i4].rect.attr(style); - } - var ticksLength = tickRects2.length; - _this.endTickRectId = id; - var start = startTickRectId / ticksLength; - var end2 = id / ticksLength; - _this.graph.emit(VALUE_CHANGE, { - value: [start, end2] - }); - }); - sliceGroup.on("drop", function(e4) { - if (!_this.dragging) - return; - _this.dragging = false; - if (e4.target.get("type") !== "rect") - return; - var startTickRectId = _this.startTickRectId; - var id = parseInt(e4.target.get("name").split("-")[2], 10); - if (id < startTickRectId) - return; - var selectedTickStyle = _this.selectedTickStyle; - var tickRects2 = _this.tickRects; - tickRects2[id].rect.attr(selectedTickStyle); - _this.endTickRectId = id; - var ticksLength = tickRects2.length; - var start = startTickRectId / ticksLength; - var end2 = id / ticksLength; - _this.graph.emit(VALUE_CHANGE, { - value: [start, end2] - }); - }); - var _a6 = this, tooltipBackgroundColor = _a6.tooltipBackgroundColor, tooltipFomatter = _a6.tooltipFomatter, canvas = _a6.canvas; - var tooltip10 = new timeBarTooltip_default({ - container: canvas.get("container"), - backgroundColor: tooltipBackgroundColor - }); - var tickRects = this.tickRects; - tickRects.forEach(function(tickRect) { - var pickRect = tickRect.pickRect; - pickRect.on("mouseenter", function(e4) { - var rect3 = e4.target; - if (rect3.get("type") !== "rect") - return; - var id = parseInt(rect3.get("name").split("-")[2], 10); - var clientPoint = canvas.getClientByPoint(tickRects[id].x, tickRects[id].y); - tooltip10.show({ - x: tickRects[id].x, - y: tickRects[id].y, - clientX: clientPoint.x, - clientY: clientPoint.y, - text: tooltipFomatter ? tooltipFomatter(tickRects[id].value) : tickRects[id].value - }); - }); - pickRect.on("mouseleave", function(e4) { - tooltip10.hide(); - }); - }); - var group2 = this.group; - group2.on(PLAY_PAUSE_BTN + ":click", function() { - _this.isPlay = !_this.isPlay; - _this.changePlayStatus(); - }); - group2.on(NEXT_STEP_BTN + ":click", function() { - _this.updateStartEnd(1); - }); - group2.on(PRE_STEP_BTN + ":click", function() { - _this.updateStartEnd(-1); - }); - group2.on(TIMEBAR_CONFIG_CHANGE, function(_a7) { - var type2 = _a7.type, speed = _a7.speed; - _this.currentSpeed = speed; - }); - }; - TimeBarSlice2.prototype.changePlayStatus = function(isSync) { - if (isSync === void 0) { - isSync = true; - } - this.controllerBtnGroup.playButton.update({ - isPlay: this.isPlay - }); - if (this.isPlay) { - this.playHandler = this.startPlay(); - this.graph.emit(TIMELINE_START, null); - } else { - if (this.playHandler) { - if (typeof window !== "undefined") - window.cancelAnimationFrame(this.playHandler); - if (isSync) { - this.graph.emit(TIMELINE_END, null); - } - } - } - }; - TimeBarSlice2.prototype.startPlay = function() { - var _this = this; - return typeof window !== "undefined" ? window.requestAnimationFrame(function() { - var speed = _this.currentSpeed; - if (_this.frameCount % (60 / speed) === 0) { - _this.frameCount = 0; - _this.updateStartEnd(1); - } - _this.frameCount++; - if (_this.isPlay) { - _this.playHandler = _this.startPlay(); - } - }) : void 0; - }; - TimeBarSlice2.prototype.updateStartEnd = function(sign) { - var self2 = this; - var tickRects = this.tickRects; - var ticksLength = tickRects.length; - var unselectedTickStyle = this.unselectedTickStyle; - var selectedTickStyle = this.selectedTickStyle; - var previousEndTickRectId = self2.endTickRectId; - if (sign > 0) { - self2.endTickRectId++; - } else { - tickRects[self2.endTickRectId].rect.attr(unselectedTickStyle); - self2.endTickRectId--; - } - if (previousEndTickRectId !== self2.startTickRectId) { - if (self2.endTickRectId < self2.startTickRectId) { - self2.startTickRectId = self2.endTickRectId; - } - } else { - for (var i4 = self2.startTickRectId; i4 <= self2.endTickRectId - 1; i4++) { - tickRects[i4].rect.attr(unselectedTickStyle); - } - self2.startTickRectId = self2.endTickRectId; - } - if (tickRects[self2.endTickRectId]) { - tickRects[self2.endTickRectId].rect.attr(selectedTickStyle); - var start = self2.startTickRectId / ticksLength; - var end2 = self2.endTickRectId / ticksLength; - this.graph.emit(VALUE_CHANGE, { - value: [start, end2] - }); - } - }; - TimeBarSlice2.prototype.destory = function() { - this.graph.off(VALUE_CHANGE); - var group2 = this.sliceGroup; - group2.off("click"); - group2.off("dragstart"); - group2.off("dragover"); - group2.off("drop"); - this.tickRects.forEach(function(tickRect) { - var pickRect = tickRect.pickRect; - pickRect.off("mouseenter"); - pickRect.off("mouseleave"); - }); - this.tickRects.length = 0; - group2.off(PLAY_PAUSE_BTN + ":click"); - group2.off(NEXT_STEP_BTN + ":click"); - group2.off(PRE_STEP_BTN + ":click"); - group2.off(TIMEBAR_CONFIG_CHANGE); - this.sliceGroup.destroy(); - }; - return TimeBarSlice2; -}(); -var timeBarSlice_default = TimeBarSlice; - -// node_modules/@antv/g6-plugin/es/timeBar/index.js -var __extends12 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var __assign14 = function() { - __assign14 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign14.apply(this, arguments); -}; -var __rest40 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - } - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var DEFAULT_SIMPLE_HEIGHT = 4; -var DEFAULT_TREND_HEIGHT = 26; -var TimeBar = function(_super) { - __extends12(TimeBar3, _super); - function TimeBar3() { - return _super !== null && _super.apply(this, arguments) || this; - } - TimeBar3.prototype.getDefaultCfgs = function() { - return { - container: null, - className: "g6-component-timebar", - padding: 10, - type: "trend", - trend: { - data: [], - isArea: false, - smooth: true - }, - controllerCfg: { - speed: 1, - loop: false - }, - slider: { - start: 0.1, - end: 0.9, - minText: "min", - maxText: "max" - }, - tick: { - start: 0.1, - end: 0.9, - data: [] - }, - textStyle: {}, - filterEdge: false - }; - }; - TimeBar3.prototype.initContainer = function() { - var graph = this.get("graph"); - var _a6 = this._cfgs, width2 = _a6.width, height = _a6.height; - var className = this.get("className") || "g6-component-timebar"; - var container2 = this.get("container"); - var graphContainer = this.get("graph").get("container"); - var timeBarContainer; - if (!container2) { - timeBarContainer = createDom("
    "); - modifyCSS(timeBarContainer, { - position: "relative" - }); - } else { - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - timeBarContainer = container2; - } - graphContainer.appendChild(timeBarContainer); - this.set("timeBarContainer", timeBarContainer); - var canvas; - var renderer = graph.get("renderer"); - if (renderer === "SVG") { - canvas = new canvas_default3({ - container: timeBarContainer, - width: width2, - height - }); - } else { - canvas = new canvas_default2({ - container: timeBarContainer, - width: width2, - height - }); - } - this.set("canvas", canvas); - }; - TimeBar3.prototype.init = function() { - this.initContainer(); - var canvas = this.get("canvas"); - var timeBarGroup = canvas.addGroup({ - name: "timebar-group" - }); - this.set("timeBarGroup", timeBarGroup); - this.renderTrend(); - this.initEvent(); - var fontFamily = typeof window !== "undefined" ? window.getComputedStyle(document.body, null).getPropertyValue("font-family") || "Arial, sans-serif" : "Arial, sans-serif"; - this.set("fontFamily", fontFamily); - }; - TimeBar3.prototype.renderTrend = function() { - var _a6 = this._cfgs, width2 = _a6.width, x6 = _a6.x, y5 = _a6.y, padding3 = _a6.padding, type2 = _a6.type, trend = _a6.trend, slider3 = _a6.slider, controllerCfg = _a6.controllerCfg, textStyle2 = _a6.textStyle, tick = _a6.tick, backgroundStyle = _a6.backgroundStyle, foregroundStyle = _a6.foregroundStyle; - var data3 = trend.data, other2 = __rest40(trend, ["data"]); - var realWidth = width2 - 2 * padding3; - var defaultHeight = type2 === "trend" ? DEFAULT_TREND_HEIGHT : DEFAULT_SIMPLE_HEIGHT; - var graph = this.get("graph"); - var group2 = this.get("timeBarGroup"); - var canvas = this.get("canvas"); - var timebar = null; - if (type2 === "trend" || type2 === "simple") { - timebar = new trendTimeBar_default(__assign14(__assign14({ - graph, - canvas, - group: group2, - type: type2, - x: x6 + padding3, - y: type2 === "trend" ? y5 + padding3 : y5 + padding3 + 15, - width: realWidth, - height: defaultHeight, - padding: padding3, - backgroundStyle, - foregroundStyle, - trendCfg: __assign14(__assign14({}, other2), { - data: data3.map(function(d3) { - return d3.value; - }) - }) - }, slider3), { - tick: { - ticks: data3, - tickLabelFormatter: tick.tickLabelFormatter, - tickLabelStyle: tick.tickLabelStyle, - tickLineStyle: tick.tickLineStyle - }, - handlerStyle: __assign14(__assign14({}, slider3.handlerStyle), { - height: slider3.height || defaultHeight - }), - controllerCfg, - textStyle: textStyle2 - })); - } else if (type2 === "tick") { - timebar = new timeBarSlice_default(__assign14({ - graph, - canvas, - group: group2, - x: x6 + padding3, - y: y5 + padding3 - }, tick)); - } - this.set("timebar", timebar); - }; - TimeBar3.prototype.filterData = function(evt) { - var _a6; - var value2 = evt.value; - var trendData = null; - var type2 = this._cfgs.type; - if (type2 === "trend" || type2 === "simple") { - trendData = this._cfgs.trend.data; - } else if (type2 === "tick") { - trendData = this._cfgs.tick.data; - } - if (!trendData || trendData.length === 0) { - console.warn("\u8BF7\u914D\u7F6E TimeBar \u7EC4\u4EF6\u7684\u6570\u636E"); - return; - } - var rangeChange = this.get("rangeChange"); - var graph = this.get("graph"); - var min7 = Math.round(trendData.length * value2[0]); - var max8 = Math.round(trendData.length * value2[1]); - max8 = max8 >= trendData.length ? trendData.length - 1 : max8; - min7 = min7 >= trendData.length ? trendData.length - 1 : min7; - var tickLabelFormatter = (_a6 = this._cfgs.tick) === null || _a6 === void 0 ? void 0 : _a6.tickLabelFormatter; - var minText = tickLabelFormatter ? tickLabelFormatter(trendData[min7]) : trendData[min7].date; - var maxText = tickLabelFormatter ? tickLabelFormatter(trendData[max8]) : trendData[max8].date; - if (type2 !== "tick") { - var timebar = this.get("timebar"); - timebar.setText(minText, maxText); - } - if (rangeChange) { - rangeChange(graph, minText, maxText); - } else { - if (!this.cacheGraphData || this.cacheGraphData.nodes && this.cacheGraphData.nodes.length === 0) { - this.cacheGraphData = graph.get("data"); - } - var filterData = this.cacheGraphData.nodes.filter(function(d3) { - return d3.date >= trendData[min7].date && d3.date <= trendData[max8].date; - }); - var nodeIds_1 = filterData.map(function(node) { - return node.id; - }); - var fileterEdges = []; - if (this.cacheGraphData.edges) { - fileterEdges = this.cacheGraphData.edges.filter(function(edge2) { - return nodeIds_1.includes(edge2.source) && nodeIds_1.includes(edge2.target); - }); - if (this.get("filterEdge")) { - fileterEdges = fileterEdges.filter(function(edge2) { - return edge2.date >= trendData[min7].date && edge2.date <= trendData[max8].date; - }); - } - } - graph.changeData({ - nodes: filterData, - edges: fileterEdges - }); - } - }; - TimeBar3.prototype.initEvent = function() { - var _this = this; - var start = 0; - var end2 = 0; - var type2 = this._cfgs.type; - if (!type2 || type2 === "trend" || type2 === "simple") { - start = this._cfgs.slider.start; - end2 = this._cfgs.slider.end; - } else if (type2 === "tick") { - start = this._cfgs.tick.start; - end2 = this._cfgs.tick.end; - } - var graph = this.get("graph"); - graph.on("afterrender", function(e4) { - _this.filterData({ - value: [start, end2] - }); - }); - graph.on(VALUE_CHANGE, throttle_default(function(e4) { - _this.filterData(e4); - }, 200, { - trailing: true, - leading: true - })); - }; - TimeBar3.prototype.destroy = function() { - var timebar = this.get("timebar"); - if (timebar && timebar.destory) { - timebar.destory(); - } - _super.prototype.destroy.call(this); - var timeBarContainer = this.get("timeBarContainer"); - if (timeBarContainer) { - var container2 = this.get("container"); - if (!container2) { - container2 = this.get("graph").get("container"); - } - if (is_string_default(container2)) { - container2 = document.getElementById(container2); - } - container2.removeChild(timeBarContainer); - } - }; - return TimeBar3; -}(base_default18); -var timeBar_default = TimeBar; - -// node_modules/@antv/g6-plugin/es/imageMinimap/index.js -var __extends13 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var applyMatrix3 = util_default.applyMatrix; -function getImgNaturalDimension(img, callback) { - var nWidth, nHeight; - if (img.naturalWidth) { - nWidth = img.naturalWidth; - nHeight = img.naturalHeight; - } else { - var image_1 = new Image(); - image_1.src = img.src; - image_1.onload = function() { - if (callback) - callback(image_1.width, image_1.height); - }; - } - return [nWidth, nHeight]; -} -var ImageMiniMap = function(_super) { - __extends13(ImageMiniMap2, _super); - function ImageMiniMap2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ImageMiniMap2.prototype.getDefaultCfgs = function() { - return { - container: null, - className: "g6-minimap", - viewportClassName: "g6-minimap-viewport", - width: 200, - delegateStyle: { - fill: "#40a9ff", - stroke: "#096dd9" - }, - refresh: true - }; - }; - ImageMiniMap2.prototype.getEvents = function() { - return { - beforepaint: "updateViewport", - beforeanimate: "disableRefresh", - afteranimate: "enableRefresh", - viewportchange: "disableOneRefresh" - }; - }; - ImageMiniMap2.prototype.disableRefresh = function() { - this.set("refresh", false); - }; - ImageMiniMap2.prototype.enableRefresh = function() { - this.set("refresh", true); - this.updateCanvas(); - }; - ImageMiniMap2.prototype.disableOneRefresh = function() { - this.set("viewportChange", true); - }; - ImageMiniMap2.prototype.initViewport = function() { - var _this = this; - var cfgs = this._cfgs; - var graph = cfgs.graph; - if (this.destroyed) - return; - var containerDOM = this.get("container"); - if (is_string_default(containerDOM)) { - containerDOM = document.getElementById(containerDOM); - } - var viewport = createDom("
    \n
    "); - var x6 = 0; - var y5 = 0; - var dragging = false; - var left2 = 0; - var top = 0; - var width2 = 0; - var height = 0; - var ratio = 0; - var zoom2 = 0; - containerDOM.addEventListener("mousedown", function(e4) { - cfgs.refresh = false; - if (e4.target !== viewport) { - return; - } - var style = viewport.style; - width2 = parseInt(style.width, 10); - height = parseInt(style.height, 10); - var cWidth = _this.get("width"); - var cHeight = _this.get("height"); - if (width2 > cWidth || height > cHeight) { - return; - } - zoom2 = graph.getZoom(); - ratio = _this.get("ratio"); - dragging = true; - x6 = e4.clientX; - y5 = e4.clientY; - }, false); - containerDOM.addEventListener("mousemove", function(e4) { - if (!dragging || is_nil_default(e4.clientX) || is_nil_default(e4.clientY)) { - return; - } - var cWidth = _this.get("width"); - var cHeight = _this.get("height"); - var style = viewport.style; - left2 = parseInt(style.left, 10); - top = parseInt(style.top, 10); - width2 = parseInt(style.width, 10); - height = parseInt(style.height, 10); - var dx = x6 - e4.clientX; - var dy = y5 - e4.clientY; - if (left2 - dx < 0) { - dx = left2; - } else if (left2 - dx + width2 >= cWidth) { - dx = 0; - } - if (top - dy < 0) { - dy = top; - } else if (top - dy + height >= cHeight) { - dy = 0; - } - left2 -= dx; - top -= dy; - modifyCSS(viewport, { - left: left2 + "px", - top: top + "px" - }); - graph.translate(dx * zoom2 / ratio, dy * zoom2 / ratio); - x6 = e4.clientX; - y5 = e4.clientY; - }, false); - containerDOM.addEventListener("mouseleave", function() { - dragging = false; - cfgs.refresh = true; - }, false); - containerDOM.addEventListener("mouseup", function() { - dragging = false; - cfgs.refresh = true; - }, false); - this.set("viewport", viewport); - containerDOM.appendChild(viewport); - }; - ImageMiniMap2.prototype.updateViewport = function() { - if (this.destroyed) - return; - var ratio = this.get("ratio"); - var cWidth = this.get("width"); - var cHeight = this.get("height"); - var graph = this.get("graph"); - var graphWidth2 = graph.get("width"); - var graphHeight2 = graph.get("height"); - var aspectRatio = graphWidth2 / graphHeight2; - var graphGroup = graph.getGroup(); - var graphCanvasBBox = graphGroup.getCanvasBBox(); - var graphCanvasBBoxMean = [(graphCanvasBBox.minX + graphCanvasBBox.maxX) / 2, (graphCanvasBBox.minY + graphCanvasBBox.maxY) / 2]; - var graphCanvasBBoxSize = [graphCanvasBBox.maxX - graphCanvasBBox.minX, graphCanvasBBox.maxY - graphCanvasBBox.minY]; - var expandedGraphCanvasBBox = { - centerX: graphCanvasBBoxMean[0], - centerY: graphCanvasBBoxMean[1], - width: 0, - height: 0, - minX: 0, - minY: 0 - }; - if (graphCanvasBBox[0] / graphCanvasBBox[1] > aspectRatio) { - expandedGraphCanvasBBox.width = graphCanvasBBoxSize[0]; - expandedGraphCanvasBBox.height = expandedGraphCanvasBBox.width / aspectRatio; - } else { - expandedGraphCanvasBBox.height = graphCanvasBBoxSize[1]; - expandedGraphCanvasBBox.width = expandedGraphCanvasBBox.height * aspectRatio; - } - expandedGraphCanvasBBox.minX = graphCanvasBBoxMean[0] - expandedGraphCanvasBBox.width / 2; - expandedGraphCanvasBBox.minY = graphCanvasBBoxMean[1] - expandedGraphCanvasBBox.height / 2; - var graphMatrix = graphGroup.getMatrix(); - if (!graphMatrix) - graphMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var invertGraphMatrix = mat3_exports.invert([1, 0, 0, 0, 1, 0, 0, 0, 1], graphMatrix); - var minXY = applyMatrix3({ - x: expandedGraphCanvasBBox.minX, - y: expandedGraphCanvasBBox.minY - }, invertGraphMatrix); - var topLeft = graph.getCanvasByPoint(minXY.x, minXY.y); - var viewport = this.get("viewport"); - if (!viewport) { - this.initViewport(); - } - var vpToMc = graphWidth2 / expandedGraphCanvasBBox.width; - var width2 = vpToMc * cWidth; - var height = vpToMc * cHeight; - var left2 = cWidth * -topLeft.x / expandedGraphCanvasBBox.width; - var top = cHeight * -topLeft.y / expandedGraphCanvasBBox.height; - var right2 = left2 + width2; - var bottom = top + height; - if (left2 < 0) { - width2 += left2; - left2 = 0; - } - if (right2 > cWidth) { - width2 = width2 - (right2 - cWidth); - } - if (top < 0) { - height += top; - top = 0; - } - if (bottom > cHeight) { - height = height - (bottom - cHeight); - } - this.set("ratio", ratio); - var correctLeft = left2 + "px"; - var correctTop = top + "px"; - modifyCSS(viewport, { - left: correctLeft, - top: correctTop, - width: width2 + "px", - height: height + "px" - }); - }; - ImageMiniMap2.prototype.init = function() { - this.initContainer(); - }; - ImageMiniMap2.prototype.initContainer = function() { - var self2 = this; - var graph = self2.get("graph"); - var graphWidth2 = graph.get("width"); - var graphHeight2 = graph.get("height"); - var aspectRatio = graphHeight2 / graphWidth2; - var className = self2.get("className"); - var parentNode = self2.get("container"); - var cWidth = self2.get("width"); - var cHeight = self2.get("height"); - if (!cWidth && !cHeight) { - cWidth = 200; - } - if (cWidth) { - cHeight = aspectRatio * cWidth; - self2.set("height", cHeight); - } else { - cWidth = 1 / aspectRatio * cHeight; - self2.set("width", cWidth); - } - var container2 = createDom("
    "); - if (is_string_default(parentNode)) { - parentNode = document.getElementById(parentNode); - } - if (parentNode) { - parentNode.appendChild(container2); - } else { - graph.get("container").appendChild(container2); - } - self2.set("container", container2); - var containerDOM = createDom('
    '); - container2.appendChild(containerDOM); - var span = createDom(''); - containerDOM.appendChild(span); - self2.set("containerDOM", containerDOM); - self2.set("containerSpan", span); - var img = createDom(''); - self2.set("imgDOM", img); - self2.updateImgSize(); - span.appendChild(img); - self2.updateCanvas(); - }; - ImageMiniMap2.prototype.updateImgSize = function() { - var self2 = this; - var imgDOM = self2.get("imgDOM"); - var cWidth = self2.get("width"); - var cHeight = self2.get("height"); - imgDOM.onload = function() { - var naturalSize = getImgNaturalDimension(imgDOM); - if (naturalSize[0] > naturalSize[1]) { - imgDOM.width = cWidth; - } else { - imgDOM.height = cHeight; - } - }; - }; - ImageMiniMap2.prototype.updateCanvas = function() { - var isRefresh = this.get("refresh"); - if (!isRefresh) { - return; - } - var graph = this.get("graph"); - if (graph.get("destroyed")) { - return; - } - if (this.get("viewportChange")) { - this.set("viewportChange", false); - this.updateViewport(); - } - var cWidth = this.get("width"); - var graphBBox = graph.get("canvas").getCanvasBBox(); - var width2 = graphBBox.width; - var ratio = cWidth / width2; - this.set("ratio", ratio); - this.updateViewport(); - }; - ImageMiniMap2.prototype.getViewport = function() { - return this.get("viewport"); - }; - ImageMiniMap2.prototype.getContainer = function() { - return this.get("container"); - }; - ImageMiniMap2.prototype.updateGraphImg = function(img) { - var self2 = this; - var oriImgDOM = self2.get("imgDOM"); - oriImgDOM.remove(); - self2.set("graphImg", img); - var imgDOM = createDom(''); - self2.set("imgDOM", imgDOM); - imgDOM.src = img; - self2.updateImgSize(); - var span = self2.get("containerSpan"); - span.appendChild(imgDOM); - self2.updateCanvas(); - }; - ImageMiniMap2.prototype.destroy = function() { - var container2 = this.get("container"); - container2.parentNode.removeChild(container2); - }; - return ImageMiniMap2; -}(base_default18); -var imageMinimap_default = ImageMiniMap; - -// node_modules/@antv/g6-plugin/es/edgeFilterLens/index.js -var __extends14 = function() { - var _extendStatics = function extendStatics(d3, b10) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function(d4, b11) { - d4.__proto__ = b11; - } || function(d4, b11) { - for (var p4 in b11) { - if (Object.prototype.hasOwnProperty.call(b11, p4)) - d4[p4] = b11[p4]; - } - }; - return _extendStatics(d3, b10); - }; - return function(d3, b10) { - if (typeof b10 !== "function" && b10 !== null) - throw new TypeError("Class extends value " + String(b10) + " is not a constructor or null"); - _extendStatics(d3, b10); - function __() { - this.constructor = d3; - } - d3.prototype = b10 === null ? Object.create(b10) : (__.prototype = b10.prototype, new __()); - }; -}(); -var __assign15 = function() { - __assign15 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) { - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - } - return t4; - }; - return __assign15.apply(this, arguments); -}; -var distance12 = util_default.distance; -var DELTA3 = 0.05; -var lensDelegateStyle2 = { - stroke: "#000", - strokeOpacity: 0.8, - lineWidth: 2, - fillOpacity: 1, - fill: "#fff" -}; -var EdgeFilterLens = function(_super) { - __extends14(EdgeFilterLens3, _super); - function EdgeFilterLens3() { - return _super !== null && _super.apply(this, arguments) || this; - } - EdgeFilterLens3.prototype.getDefaultCfgs = function() { - return { - type: "both", - trigger: "mousemove", - r: 60, - delegateStyle: clone_default(lensDelegateStyle2), - showLabel: "edge", - scaleRBy: "wheel" - }; - }; - EdgeFilterLens3.prototype.getEvents = function() { - var events; - switch (this.get("trigger")) { - case "click": - events = { - click: "filter" - }; - break; - case "drag": - events = { - click: "createDelegate" - }; - break; - default: - events = { - mousemove: "filter" - }; - break; - } - return events; - }; - EdgeFilterLens3.prototype.init = function() { - var self2 = this; - var showLabel = self2.get("showLabel"); - var showNodeLabel = showLabel === "node" || showLabel === "both"; - var showEdgeLabel = showLabel === "edge" || showLabel === "both"; - self2.set("showNodeLabel", showNodeLabel); - self2.set("showEdgeLabel", showEdgeLabel); - var shouldShow = self2.get("shouldShow"); - if (!shouldShow) - self2.set("shouldShow", function() { - return true; - }); - }; - EdgeFilterLens3.prototype.createDelegate = function(e4) { - var self2 = this; - var lensDelegate = self2.get("delegate"); - if (!lensDelegate || lensDelegate.destroyed) { - self2.filter(e4); - lensDelegate = self2.get("delegate"); - lensDelegate.on("dragstart", function(evt) { - }); - lensDelegate.on("drag", function(evt) { - self2.filter(evt); - }); - if (this.get("scaleRBy") === "wheel") { - lensDelegate.on("mousewheel", function(evt) { - self2.scaleRByWheel(evt); - }); - } - } - }; - EdgeFilterLens3.prototype.scaleRByWheel = function(e4) { - var self2 = this; - if (!e4 || !e4.originalEvent) - return; - if (e4.preventDefault) - e4.preventDefault(); - var graph = self2.get("graph"); - var ratio; - var lensDelegate = self2.get("delegate"); - var lensCenter = lensDelegate ? { - x: lensDelegate.attr("x"), - y: lensDelegate.attr("y") - } : void 0; - var mousePos = lensCenter || graph.getPointByClient(e4.clientX, e4.clientY); - if (e4.originalEvent.wheelDelta < 0) { - ratio = 1 - DELTA3; - } else { - ratio = 1 / (1 - DELTA3); - } - var maxR = self2.get("maxR"); - var minR = self2.get("minR"); - var r4 = self2.get("r"); - if (r4 > (maxR || graph.get("height")) && ratio > 1 || r4 < (minR || graph.get("height") * 0.05) && ratio < 1) { - ratio = 1; - } - r4 *= ratio; - self2.set("r", r4); - self2.filter(e4); - }; - EdgeFilterLens3.prototype.filter = function(e4) { - var self2 = this; - var graph = self2.get("graph"); - var nodes = graph.getNodes(); - var hitNodesMap = {}; - var r4 = self2.get("r"); - var type2 = self2.get("type"); - var fCenter = { - x: e4.x, - y: e4.y - }; - self2.updateDelegate(fCenter, r4); - var shouldShow = self2.get("shouldShow"); - var vShapes = self2.get("vShapes"); - if (vShapes) { - vShapes.forEach(function(shape) { - shape.remove(); - shape.destroy(); - }); - } - vShapes = []; - nodes.forEach(function(node) { - var model = node.getModel(); - var x6 = model.x, y5 = model.y; - if (distance12({ - x: x6, - y: y5 - }, fCenter) < r4) { - hitNodesMap[model.id] = node; - } - }); - var edges = graph.getEdges(); - var hitEdges = []; - edges.forEach(function(edge2) { - var model = edge2.getModel(); - var sourceId = model.source; - var targetId = model.target; - if (shouldShow(model)) { - if (type2 === "only-source" || type2 === "one") { - if (hitNodesMap[sourceId] && !hitNodesMap[targetId]) - hitEdges.push(edge2); - } else if (type2 === "only-target" || type2 === "one") { - if (hitNodesMap[targetId] && !hitNodesMap[sourceId]) - hitEdges.push(edge2); - } else if (type2 === "both" && hitNodesMap[sourceId] && hitNodesMap[targetId]) { - hitEdges.push(edge2); - } - } - }); - var showNodeLabel = self2.get("showNodeLabel"); - var showEdgeLabel = self2.get("showEdgelabel"); - var group2 = graph.get("group"); - hitEdges.forEach(function(edge2) { - var shapes = edge2.get("group").get("children"); - shapes.forEach(function(shape) { - var shapeType = shape.get("type"); - var vShape = group2.addShape(shapeType, { - attrs: shape.attr() - }); - vShapes.push(vShape); - if (showNodeLabel && shapeType === "text") { - vShape.set("visible", true); - } - }); - }); - Object.keys(hitNodesMap).forEach(function(key) { - var node = hitNodesMap[key]; - var clonedGroup = node.get("group").clone(); - group2.add(clonedGroup); - vShapes.push(clonedGroup); - if (showEdgeLabel) { - var shapes = clonedGroup.get("children"); - for (var j4 = 0; j4 < shapes.length; j4++) { - var shape = shapes[j4]; - if (shape.get("type") === "text") { - shape.set("visible", true); - } - } - } - }); - self2.set("vShapes", vShapes); - }; - EdgeFilterLens3.prototype.updateParams = function(cfg) { - var self2 = this; - var r4 = cfg.r, trigger = cfg.trigger, minR = cfg.minR, maxR = cfg.maxR, scaleRBy = cfg.scaleRBy, showLabel = cfg.showLabel, shouldShow = cfg.shouldShow; - if (!isNaN(cfg.r)) { - self2.set("r", r4); - } - if (!isNaN(maxR)) { - self2.set("maxR", maxR); - } - if (!isNaN(minR)) { - self2.set("minR", minR); - } - if (trigger === "mousemove" || trigger === "click") { - self2.set("trigger", trigger); - } - if (scaleRBy === "wheel" || scaleRBy === "unset") { - self2.set("scaleRBy", scaleRBy); - self2.get("delegate").remove(); - self2.get("delegate").destroy(); - var dPercentText = self2.get("dPercentText"); - if (dPercentText) { - dPercentText.remove(); - dPercentText.destroy(); - } - } - if (showLabel === "node" || showLabel === "both") { - self2.set("showNodeLabel", true); - } - if (showLabel === "edge" || showLabel === "both") { - self2.set("showEdgeLabel", true); - } - if (shouldShow) { - self2.set("shouldShow", shouldShow); - } - }; - EdgeFilterLens3.prototype.updateDelegate = function(mCenter, r4) { - var self2 = this; - var graph = self2.get("graph"); - var lensDelegate = self2.get("delegate"); - if (!lensDelegate || lensDelegate.destroyed) { - var parent_1 = graph.get("group"); - var attrs = self2.get("delegateStyle") || lensDelegateStyle2; - lensDelegate = parent_1.addShape("circle", { - attrs: __assign15({ - r: r4, - x: mCenter.x, - y: mCenter.y - }, attrs), - name: "lens-shape", - draggable: true - }); - if (this.get("trigger") !== "drag") { - if (this.get("scaleRBy") === "wheel") { - lensDelegate.on("mousewheel", function(evt) { - self2.scaleRByWheel(evt); - }); - } - } - } else { - lensDelegate.attr({ - x: mCenter.x, - y: mCenter.y, - r: r4 - }); - } - self2.set("delegate", lensDelegate); - }; - EdgeFilterLens3.prototype.clear = function() { - var self2 = this; - var vShapes = self2.get("vShapes"); - if (vShapes) { - vShapes.forEach(function(shape) { - shape.remove(); - shape.destroy(); - }); - } - vShapes = []; - self2.set("vShapes", vShapes); - var lensDelegate = self2.get("delegate"); - if (lensDelegate && !lensDelegate.destroyed) { - lensDelegate.remove(); - lensDelegate.destroy(); - } - }; - EdgeFilterLens3.prototype.destroy = function() { - this.clear(); - }; - return EdgeFilterLens3; -}(base_default18); -var edgeFilterLens_default = EdgeFilterLens; - -// node_modules/@antv/g6-plugin/es/index.js -var Plugin = { - PluginBase: base_default18, - Menu: menu_default, - Grid: grid_default, - Minimap: minimap_default, - Bundling: bundling_default, - ToolBar: toolBar_default, - Tooltip: tooltip_default2, - Fisheye: fisheye_default, - TimeBar: timeBar_default, - ImageMinimap: imageMinimap_default, - EdgeFilterLens: edgeFilterLens_default -}; -var es_default3 = Plugin; - -// node_modules/@antv/g6-pc/es/plugin/index.js -var plugin_default = es_default3; - -// node_modules/@antv/g6-element/es/nodes/circle.js -registerNode("circle", { - options: { - size: BaseGlobal.defaultNode.size, - style: { - x: 0, - y: 0, - stroke: BaseGlobal.defaultNode.style.stroke, - fill: BaseGlobal.defaultNode.style.fill, - lineWidth: BaseGlobal.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: BaseGlobal.nodeLabel.style.fill, - fontSize: BaseGlobal.nodeLabel.style.fontSize - } - }, - linkPoints: { - top: false, - right: false, - bottom: false, - left: false, - size: BaseGlobal.defaultNode.linkPoints.size, - lineWidth: BaseGlobal.defaultNode.linkPoints.lineWidth, - fill: BaseGlobal.defaultNode.linkPoints.fill, - stroke: BaseGlobal.defaultNode.linkPoints.stroke - }, - icon: { - show: false, - img: "https://gw.alipayobjects.com/zos/bmw-prod/5d015065-8505-4e7a-baec-976f81e3c41d.svg", - width: 20, - height: 20 - }, - stateStyles: __assign({}, BaseGlobal.nodeStateStyles) - }, - shapeType: "circle", - labelPosition: "center", - drawShape: function drawShape11(cfg, group2) { - var _a6 = this.getOptions(cfg).icon, defaultIcon = _a6 === void 0 ? {} : _a6; - var style = this.getShapeStyle(cfg); - var icon = deep_mix_default({}, defaultIcon, cfg.icon); - var keyShape = group2.addShape("circle", { - attrs: style, - className: this.type + "-keyShape", - draggable: true - }); - var width2 = icon.width, height = icon.height, show = icon.show; - if (show) { - group2.addShape("image", { - attrs: __assign({ - x: -width2 / 2, - y: -height / 2 - }, icon), - className: this.type + "-icon", - name: this.type + "-icon", - draggable: true - }); - } - this.drawLinkPoints(cfg, group2); - return keyShape; - }, - drawLinkPoints: function drawLinkPoints(cfg, group2) { - var _a6 = this.getOptions(cfg).linkPoints, linkPoints = _a6 === void 0 ? {} : _a6; - var top = linkPoints.top, left2 = linkPoints.left, right2 = linkPoints.right, bottom = linkPoints.bottom, markSize = linkPoints.size, markR = linkPoints.r, markStyle = __rest(linkPoints, ["top", "left", "right", "bottom", "size", "r"]); - var size2 = this.getSize(cfg); - var r4 = size2[0] / 2; - if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: -r4, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: r4, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: -r4, - r: markSize / 2 || markR || 5 - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - if (bottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: r4, - r: markSize / 2 || markR || 5 - }), - className: "link-point-bottom", - name: "link-point-bottom", - isAnchorPoint: true - }); - } - }, - getShapeStyle: function getShapeStyle8(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = deep_mix_default({}, defaultStyle, strokeStyle); - var size2 = this.getSize(cfg); - var r4 = size2[0] / 2; - var styles = __assign({ - x: 0, - y: 0, - r: r4 - }, style); - return styles; - }, - update: function update7(cfg, item) { - var group2 = item.getContainer(); - var size2 = this.getSize(cfg); - var strokeStyle = { - stroke: cfg.color, - r: size2[0] / 2 - }; - var keyShape = item.get("keyShape"); - var style = deep_mix_default({}, keyShape.attr(), strokeStyle, cfg.style); - this.updateShape(cfg, item, style, true); - this.updateLinkPoints(cfg, group2); - } -}, "single-node"); - -// node_modules/@antv/g6-element/es/nodes/rect.js -registerNode("rect", { - options: { - size: [100, 30], - style: { - radius: 0, - stroke: BaseGlobal.defaultNode.style.stroke, - fill: BaseGlobal.defaultNode.style.fill, - lineWidth: BaseGlobal.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: BaseGlobal.nodeLabel.style.fill, - fontSize: BaseGlobal.nodeLabel.style.fontSize - } - }, - linkPoints: { - top: false, - right: false, - bottom: false, - left: false, - size: BaseGlobal.defaultNode.linkPoints.size, - lineWidth: BaseGlobal.defaultNode.linkPoints.lineWidth, - fill: BaseGlobal.defaultNode.linkPoints.fill, - stroke: BaseGlobal.defaultNode.linkPoints.stroke - }, - icon: { - show: false, - img: "https://gw.alipayobjects.com/zos/bmw-prod/5d015065-8505-4e7a-baec-976f81e3c41d.svg", - width: 20, - height: 20 - }, - anchorPoints: [[0, 0.5], [1, 0.5]], - stateStyles: __assign({}, BaseGlobal.nodeStateStyles) - }, - shapeType: "rect", - labelPosition: "center", - drawShape: function drawShape12(cfg, group2) { - var style = this.getShapeStyle(cfg); - var keyShape = group2.addShape("rect", { - attrs: style, - className: this.type + "-keyShape", - name: this.type + "-keyShape", - draggable: true - }); - this.drawLinkPoints(cfg, group2); - return keyShape; - }, - drawLinkPoints: function drawLinkPoints2(cfg, group2) { - var _a6 = this.getOptions(cfg).linkPoints, linkPoints = _a6 === void 0 ? {} : _a6; - var top = linkPoints.top, left2 = linkPoints.left, right2 = linkPoints.right, bottom = linkPoints.bottom, markSize = linkPoints.size, markR = linkPoints.r, markStyle = __rest(linkPoints, ["top", "left", "right", "bottom", "size", "r"]); - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: -width2 / 2, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: width2 / 2, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: -height / 2, - r: markSize / 2 || markR || 5 - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - if (bottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: height / 2, - r: markSize / 2 || markR || 5 - }), - className: "link-point-bottom", - name: "link-point-bottom", - isAnchorPoint: true - }); - } - }, - getShapeStyle: function getShapeStyle9(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle); - var size2 = this.getSize(cfg); - var width2 = style.width || size2[0]; - var height = style.height || size2[1]; - var styles = __assign({ - x: -width2 / 2, - y: -height / 2, - width: width2, - height - }, style); - return styles; - }, - update: function update8(cfg, item) { - var group2 = item.getContainer(); - var defaultStyle = this.getOptions({}).style; - var size2 = this.getSize(cfg); - var keyShape = item.get("keyShape"); - if (!cfg.size) { - size2[0] = keyShape.attr("width") || defaultStyle.width; - size2[1] = keyShape.attr("height") || defaultStyle.height; - } - var strokeStyle = { - stroke: cfg.color, - x: -size2[0] / 2, - y: -size2[1] / 2, - width: size2[0], - height: size2[1] - }; - var style = mix({}, defaultStyle, keyShape.attr(), strokeStyle); - style = mix(style, cfg.style); - this.updateShape(cfg, item, style, false); - this.updateLinkPoints(cfg, group2); - } -}, "single-node"); - -// node_modules/@antv/g6-element/es/nodes/ellipse.js -registerNode("ellipse", { - options: { - size: [80, 40], - style: { - x: 0, - y: 0, - stroke: BaseGlobal.defaultNode.style.stroke, - fill: BaseGlobal.defaultNode.style.fill, - lineWidth: BaseGlobal.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: BaseGlobal.nodeLabel.style.fill, - fontSize: BaseGlobal.nodeLabel.style.fontSize - } - }, - linkPoints: { - top: false, - right: false, - bottom: false, - left: false, - size: BaseGlobal.defaultNode.linkPoints.size, - lineWidth: BaseGlobal.defaultNode.linkPoints.lineWidth, - fill: BaseGlobal.defaultNode.linkPoints.fill, - stroke: BaseGlobal.defaultNode.linkPoints.stroke - }, - icon: { - show: false, - img: "https://gw.alipayobjects.com/zos/bmw-prod/5d015065-8505-4e7a-baec-976f81e3c41d.svg", - width: 20, - height: 20 - }, - stateStyles: __assign({}, BaseGlobal.nodeStateStyles) - }, - shapeType: "ellipse", - labelPosition: "center", - drawShape: function drawShape13(cfg, group2) { - var _a6 = this.getOptions(cfg).icon, icon = _a6 === void 0 ? {} : _a6; - var style = this.getShapeStyle(cfg); - var keyShape = group2.addShape("ellipse", { - attrs: style, - className: "ellipse-keyShape", - name: "ellipse-keyShape", - draggable: true - }); - var width2 = icon.width, height = icon.height, show = icon.show; - if (show) { - var image = group2.addShape("image", { - attrs: __assign({ - x: -width2 / 2, - y: -height / 2 - }, icon), - className: this.type + "-icon", - name: this.type + "-icon", - draggable: true - }); - } - this.drawLinkPoints(cfg, group2); - return keyShape; - }, - drawLinkPoints: function drawLinkPoints3(cfg, group2) { - var _a6 = this.getOptions(cfg).linkPoints, linkPoints = _a6 === void 0 ? {} : _a6; - var top = linkPoints.top, left2 = linkPoints.left, right2 = linkPoints.right, bottom = linkPoints.bottom, markSize = linkPoints.size, markR = linkPoints.r, markStyle = __rest(linkPoints, ["top", "left", "right", "bottom", "size", "r"]); - var size2 = this.getSize(cfg); - var rx = size2[0] / 2; - var ry = size2[1] / 2; - if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: -rx, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: rx, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: -ry, - r: markSize / 2 || markR || 5 - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - if (bottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: ry, - r: markSize / 2 || markR || 5 - }), - className: "link-point-bottom", - name: "link-point-bottom", - isAnchorPoint: true - }); - } - }, - getShapeStyle: function getShapeStyle10(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle); - var size2 = this.getSize(cfg); - var rx = size2[0] / 2; - var ry = size2[1] / 2; - var styles = __assign({ - x: 0, - y: 0, - rx, - ry - }, style); - return styles; - }, - update: function update9(cfg, item) { - var group2 = item.getContainer(); - var defaultStyle = this.getOptions({}).style; - var size2 = this.getSize(cfg); - var strokeStyle = { - stroke: cfg.color, - rx: size2[0] / 2, - ry: size2[1] / 2 - }; - var keyShape = item.get("keyShape"); - var style = mix({}, defaultStyle, keyShape.attr(), strokeStyle); - style = mix(style, cfg.style); - this.updateShape(cfg, item, style, true); - this.updateLinkPoints(cfg, group2); - } -}, "single-node"); - -// node_modules/@antv/g6-element/es/nodes/diamond.js -registerNode("diamond", { - options: { - size: [80, 80], - style: { - stroke: BaseGlobal.defaultNode.style.stroke, - fill: BaseGlobal.defaultNode.style.fill, - lineWidth: BaseGlobal.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: BaseGlobal.nodeLabel.style.fill, - fontSize: BaseGlobal.nodeLabel.style.fontSize - } - }, - linkPoints: { - top: false, - right: false, - bottom: false, - left: false, - size: BaseGlobal.defaultNode.linkPoints.size, - lineWidth: BaseGlobal.defaultNode.linkPoints.lineWidth, - fill: BaseGlobal.defaultNode.linkPoints.fill, - stroke: BaseGlobal.defaultNode.linkPoints.stroke - }, - icon: { - show: false, - img: "https://gw.alipayobjects.com/zos/bmw-prod/5d015065-8505-4e7a-baec-976f81e3c41d.svg", - width: 20, - height: 20 - }, - stateStyles: __assign({}, BaseGlobal.nodeStateStyles) - }, - shapeType: "diamond", - labelPosition: "center", - drawShape: function drawShape14(cfg, group2) { - var _a6 = this.getOptions(cfg).icon, icon = _a6 === void 0 ? {} : _a6; - var style = this.getShapeStyle(cfg); - var keyShape = group2.addShape("path", { - attrs: style, - className: this.type + "-keyShape", - name: this.type + "-keyShape", - draggable: true - }); - var w4 = icon.width, h3 = icon.height, show = icon.show; - if (show) { - var image = group2.addShape("image", { - attrs: __assign({ - x: -w4 / 2, - y: -h3 / 2 - }, icon), - className: this.type + "-icon", - name: this.type + "-icon", - draggable: true - }); - } - this.drawLinkPoints(cfg, group2); - return keyShape; - }, - drawLinkPoints: function drawLinkPoints4(cfg, group2) { - var _a6 = this.getOptions(cfg).linkPoints, linkPoints = _a6 === void 0 ? {} : _a6; - var top = linkPoints.top, left2 = linkPoints.left, right2 = linkPoints.right, bottom = linkPoints.bottom, markSize = linkPoints.size, markR = linkPoints.r, markStyle = __rest(linkPoints, ["top", "left", "right", "bottom", "size", "r"]); - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: -width2 / 2, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: width2 / 2, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: -height / 2, - r: markSize / 2 || markR || 5 - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - if (bottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: height / 2, - r: markSize / 2 || markR || 5 - }), - className: "link-point-bottom", - name: "link-point-bottom", - isAnchorPoint: true - }); - } - }, - getPath: function getPath10(cfg) { - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - var path = [ - ["M", 0, -height / 2], - ["L", width2 / 2, 0], - ["L", 0, height / 2], - ["L", -width2 / 2, 0], - ["Z"] - ]; - return path; - }, - getShapeStyle: function getShapeStyle11(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle); - var path = this.getPath(cfg); - var styles = __assign({ - path - }, style); - return styles; - }, - update: function update10(cfg, item) { - var group2 = item.getContainer(); - var defaultStyle = this.getOptions({}).style; - var path = this.getPath(cfg); - var strokeStyle = { - stroke: cfg.color, - path - }; - var keyShape = item.get("keyShape"); - var style = mix({}, defaultStyle, keyShape.attr(), strokeStyle); - style = mix(style, cfg.style); - this.updateShape(cfg, item, style, true); - this.updateLinkPoints(cfg, group2); - } -}, "single-node"); - -// node_modules/@antv/g6-element/es/nodes/triangle.js -registerNode("triangle", { - options: { - size: 40, - direction: "up", - style: { - stroke: BaseGlobal.defaultNode.style.stroke, - fill: BaseGlobal.defaultNode.style.fill, - lineWidth: BaseGlobal.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: BaseGlobal.nodeLabel.style.fill, - fontSize: BaseGlobal.nodeLabel.style.fontSize - }, - offset: 15 - }, - linkPoints: { - top: false, - right: false, - bottom: false, - left: false, - size: BaseGlobal.defaultNode.linkPoints.size, - lineWidth: BaseGlobal.defaultNode.linkPoints.lineWidth, - fill: BaseGlobal.defaultNode.linkPoints.fill, - stroke: BaseGlobal.defaultNode.linkPoints.stroke - }, - icon: { - show: false, - img: "https://gw.alipayobjects.com/zos/bmw-prod/5d015065-8505-4e7a-baec-976f81e3c41d.svg", - width: 20, - height: 20, - offset: 6 - }, - stateStyles: __assign({}, BaseGlobal.nodeStateStyles) - }, - shapeType: "triangle", - labelPosition: "bottom", - drawShape: function drawShape15(cfg, group2) { - var _a6 = this.getOptions(cfg), _b = _a6.icon, icon = _b === void 0 ? {} : _b, defaultDirection = _a6.direction; - var style = this.getShapeStyle(cfg); - var direction5 = cfg.direction || defaultDirection; - var keyShape = group2.addShape("path", { - attrs: style, - className: this.type + "-keyShape", - name: this.type + "-keyShape", - draggable: true - }); - var w4 = icon.width, h3 = icon.height, show = icon.show, offset = icon.offset; - if (show) { - var iconW = -w4 / 2; - var iconH = -h3 / 2; - if (direction5 === "up" || direction5 === "down") { - iconH += offset; - } - if (direction5 === "left" || direction5 === "right") { - iconW += offset; - } - group2.addShape("image", { - attrs: __assign({ - x: iconW, - y: iconH - }, icon), - className: this.type + "-icon", - name: this.type + "-icon", - draggable: true - }); - } - this.drawLinkPoints(cfg, group2); - return keyShape; - }, - drawLinkPoints: function drawLinkPoints5(cfg, group2) { - var _a6 = this.getOptions(cfg), _b = _a6.linkPoints, linkPoints = _b === void 0 ? {} : _b, defaultDirection = _a6.direction; - var direction5 = cfg.direction || defaultDirection; - var top = linkPoints.top, left2 = linkPoints.left, right2 = linkPoints.right, bottom = linkPoints.bottom, markSize = linkPoints.size, markR = linkPoints.r, markStyle = __rest(linkPoints, ["top", "left", "right", "bottom", "size", "r"]); - var size2 = this.getSize(cfg); - var len5 = size2[0]; - if (left2) { - var leftPos = null; - var diffY = len5 * Math.sin(1 / 3 * Math.PI); - var r4 = len5 * Math.sin(1 / 3 * Math.PI); - if (direction5 === "up") { - leftPos = [-r4, diffY]; - } else if (direction5 === "down") { - leftPos = [-r4, -diffY]; - } else if (direction5 === "left") { - leftPos = [-r4, r4 - diffY]; - } - if (leftPos) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: leftPos[0], - y: leftPos[1], - r: markSize / 2 || markR || 5 - }), - className: "link-point-left", - name: "link-point-left" - }); - } - } - if (right2) { - var rightPos = null; - var diffY = len5 * Math.sin(1 / 3 * Math.PI); - var r4 = len5 * Math.sin(1 / 3 * Math.PI); - if (direction5 === "up") { - rightPos = [r4, diffY]; - } else if (direction5 === "down") { - rightPos = [r4, -diffY]; - } else if (direction5 === "right") { - rightPos = [r4, r4 - diffY]; - } - if (rightPos) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: rightPos[0], - y: rightPos[1], - r: markSize / 2 || markR || 5 - }), - className: "link-point-right", - name: "link-point-right" - }); - } - } - if (top) { - var topPos = null; - var diffY = len5 * Math.sin(1 / 3 * Math.PI); - var r4 = len5 * Math.sin(1 / 3 * Math.PI); - if (direction5 === "up") { - topPos = [r4 - diffY, -diffY]; - } else if (direction5 === "left") { - topPos = [r4, -diffY]; - } else if (direction5 === "right") { - topPos = [-r4, -diffY]; - } - if (topPos) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: topPos[0], - y: topPos[1], - r: markSize / 2 || markR || 5 - }), - className: "link-point-top", - name: "link-point-top" - }); - } - } - if (bottom) { - var bottomPos = null; - var diffY = len5 * Math.sin(1 / 3 * Math.PI); - var r4 = len5 * Math.sin(1 / 3 * Math.PI); - if (direction5 === "down") { - bottomPos = [-r4 + diffY, diffY]; - } else if (direction5 === "left") { - bottomPos = [r4, diffY]; - } else if (direction5 === "right") { - bottomPos = [-r4, diffY]; - } - if (bottomPos) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: bottomPos[0], - y: bottomPos[1], - r: markSize / 2 || markR || 5 - }), - className: "link-point-bottom", - name: "link-point-bottom" - }); - } - } - }, - getPath: function getPath11(cfg) { - var defaultDirection = this.getOptions(cfg).direction; - var direction5 = cfg.direction || defaultDirection; - var size2 = this.getSize(cfg); - var len5 = size2[0]; - var diffY = len5 * Math.sin(1 / 3 * Math.PI); - var r4 = len5 * Math.sin(1 / 3 * Math.PI); - var path = [ - ["M", -r4, diffY], - ["L", 0, -diffY], - ["L", r4, diffY], - ["Z"] - ]; - if (direction5 === "down") { - path = [ - ["M", -r4, -diffY], - ["L", r4, -diffY], - ["L", 0, diffY], - ["Z"] - ]; - } else if (direction5 === "left") { - path = [ - ["M", -r4, r4 - diffY], - ["L", r4, -r4], - ["L", r4, r4], - ["Z"] - ]; - } else if (direction5 === "right") { - path = [ - ["M", r4, r4 - diffY], - ["L", -r4, r4], - ["L", -r4, -r4], - ["Z"] - ]; - } - return path; - }, - getShapeStyle: function getShapeStyle12(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle); - var path = this.getPath(cfg); - var styles = __assign({ - path - }, style); - return styles; - }, - update: function update11(cfg, item) { - var group2 = item.getContainer(); - var defaultStyle = this.getOptions({}).style; - var path = this.getPath(cfg); - var strokeStyle = { - stroke: cfg.color, - path - }; - var keyShape = item.get("keyShape"); - var style = mix({}, defaultStyle, keyShape.attr(), strokeStyle); - style = mix(style, cfg.style); - this.updateShape(cfg, item, style, true); - this.updateLinkPoints(cfg, group2); - }, - updateLinkPoints: function updateLinkPoints2(cfg, group2) { - var _a6 = this.getOptions({}), defaultLinkPoints = _a6.linkPoints, defaultDirection = _a6.direction; - var direction5 = cfg.direction || defaultDirection; - var markLeft = group2.find(function(element) { - return element.get("className") === "link-point-left"; - }); - var markRight = group2.find(function(element) { - return element.get("className") === "link-point-right"; - }); - var markTop = group2.find(function(element) { - return element.get("className") === "link-point-top"; - }); - var markBottom = group2.find(function(element) { - return element.get("className") === "link-point-bottom"; - }); - var currentLinkPoints = defaultLinkPoints; - var existLinkPoint = markLeft || markRight || markTop || markBottom; - if (existLinkPoint) { - currentLinkPoints = existLinkPoint.attr(); - } - var linkPoints = mix({}, currentLinkPoints, cfg.linkPoints); - var markFill = linkPoints.fill, markStroke = linkPoints.stroke, borderWidth = linkPoints.lineWidth; - var markSize = linkPoints.size / 2; - if (!markSize) - markSize = linkPoints.r; - var _b = cfg.linkPoints ? cfg.linkPoints : { - left: void 0, - right: void 0, - top: void 0, - bottom: void 0 - }, left2 = _b.left, right2 = _b.right, top = _b.top, bottom = _b.bottom; - var size2 = this.getSize(cfg); - var len5 = size2[0]; - var styles = { - r: markSize, - fill: markFill, - stroke: markStroke, - lineWidth: borderWidth - }; - var leftPos = null; - var diffY = len5 * Math.sin(1 / 3 * Math.PI); - var r4 = len5 * Math.sin(1 / 3 * Math.PI); - if (direction5 === "up") { - leftPos = [-r4, diffY]; - } else if (direction5 === "down") { - leftPos = [-r4, -diffY]; - } else if (direction5 === "left") { - leftPos = [-r4, r4 - diffY]; - } - if (leftPos) { - if (markLeft) { - if (!left2 && left2 !== void 0) { - markLeft.remove(); - } else { - markLeft.attr(__assign(__assign({}, styles), { - x: leftPos[0], - y: leftPos[1] - })); - } - } else if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: leftPos[0], - y: leftPos[1] - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - } - var rightPos = null; - if (direction5 === "up") { - rightPos = [r4, diffY]; - } else if (direction5 === "down") { - rightPos = [r4, -diffY]; - } else if (direction5 === "right") { - rightPos = [r4, r4 - diffY]; - } - if (rightPos) { - if (markRight) { - if (!right2 && right2 !== void 0) { - markRight.remove(); - } else { - markRight.attr(__assign(__assign({}, styles), { - x: rightPos[0], - y: rightPos[1] - })); - } - } else if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: rightPos[0], - y: rightPos[1] - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - } - var topPos = null; - if (direction5 === "up") { - topPos = [r4 - diffY, -diffY]; - } else if (direction5 === "left") { - topPos = [r4, -diffY]; - } else if (direction5 === "right") { - topPos = [-r4, -diffY]; - } - if (topPos) { - if (markTop) { - if (!top && top !== void 0) { - markTop.remove(); - } else { - markTop.attr(__assign(__assign({}, styles), { - x: topPos[0], - y: topPos[1] - })); - } - } else if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: topPos[0], - y: topPos[1] - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - } - var bottomPos = null; - if (direction5 === "down") { - bottomPos = [-r4 + diffY, diffY]; - } else if (direction5 === "left") { - bottomPos = [r4, diffY]; - } else if (direction5 === "right") { - bottomPos = [-r4, diffY]; - } - if (bottomPos) { - if (markBottom) { - if (!bottom && bottom !== void 0) { - markBottom.remove(); - } else { - markBottom.attr(__assign(__assign({}, styles), { - x: bottomPos[0], - y: bottomPos[1] - })); - } - } else if (bottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: bottomPos[0], - y: bottomPos[1] - }), - className: "link-point-bottom", - name: "link-point-bottom", - isAnchorPoint: true - }); - } - } - } -}, "single-node"); - -// node_modules/@antv/g6-element/es/nodes/modelRect.js -registerNode("modelRect", { - options: { - size: [185, 70], - style: { - radius: 5, - stroke: "#69c0ff", - fill: "#ffffff", - lineWidth: BaseGlobal.defaultNode.style.lineWidth, - fillOpacity: 1 - }, - labelCfg: { - style: { - fill: "#595959", - fontSize: 14 - }, - offset: 30 - }, - descriptionCfg: { - style: { - fontSize: 12, - fill: "#bfbfbf" - }, - paddingTop: 0 - }, - preRect: { - show: true, - width: 4, - fill: "#40a9ff", - radius: 2 - }, - linkPoints: { - top: false, - right: false, - bottom: false, - left: false, - size: 10, - lineWidth: 1, - fill: "#72CC4A", - stroke: "#72CC4A" - }, - logoIcon: { - show: true, - x: 0, - y: 0, - img: "https://gw.alipayobjects.com/zos/basement_prod/4f81893c-1806-4de4-aff3-9a6b266bc8a2.svg", - width: 16, - height: 16, - offset: 0 - }, - stateIcon: { - show: true, - x: 0, - y: 0, - img: "https://gw.alipayobjects.com/zos/basement_prod/300a2523-67e0-4cbf-9d4a-67c077b40395.svg", - width: 16, - height: 16, - offset: -5 - }, - anchorPoints: [[0, 0.5], [1, 0.5]] - }, - shapeType: "modelRect", - drawShape: function drawShape16(cfg, group2) { - var _a6 = this.getOptions(cfg).preRect, preRect = _a6 === void 0 ? {} : _a6; - var style = this.getShapeStyle(cfg); - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - var keyShape = group2.addShape("rect", { - attrs: style, - className: this.type + "-keyShape", - name: this.type + "-keyShape", - draggable: true - }); - var preRectShow = preRect.show, preRectStyle = __rest(preRect, ["show"]); - if (preRectShow) { - group2.addShape("rect", { - attrs: __assign({ - x: -width2 / 2, - y: -height / 2, - height - }, preRectStyle), - className: "pre-rect", - name: "pre-rect", - draggable: true - }); - } - this.drawLogoIcon(cfg, group2); - this.drawStateIcon(cfg, group2); - this.drawLinkPoints(cfg, group2); - return keyShape; - }, - drawLogoIcon: function drawLogoIcon(cfg, group2) { - var _a6 = this.getOptions(cfg).logoIcon, logoIcon = _a6 === void 0 ? {} : _a6; - var size2 = this.getSize(cfg); - var width2 = size2[0]; - if (logoIcon.show) { - var w4 = logoIcon.width, h3 = logoIcon.height, x6 = logoIcon.x, y5 = logoIcon.y, offset = logoIcon.offset, logoIconStyle = __rest(logoIcon, ["width", "height", "x", "y", "offset"]); - group2.addShape("image", { - attrs: __assign(__assign({}, logoIconStyle), { - x: x6 || -width2 / 2 + w4 + offset, - y: y5 || -h3 / 2, - width: w4, - height: h3 - }), - className: "rect-logo-icon", - name: "rect-logo-icon", - draggable: true - }); - } - }, - drawStateIcon: function drawStateIcon(cfg, group2) { - var _a6 = this.getOptions(cfg).stateIcon, stateIcon = _a6 === void 0 ? {} : _a6; - var size2 = this.getSize(cfg); - var width2 = size2[0]; - if (stateIcon.show) { - var w4 = stateIcon.width, h3 = stateIcon.height, x6 = stateIcon.x, y5 = stateIcon.y, offset = stateIcon.offset, iconStyle = __rest(stateIcon, ["width", "height", "x", "y", "offset"]); - group2.addShape("image", { - attrs: __assign(__assign({}, iconStyle), { - x: x6 || width2 / 2 - w4 + offset, - y: y5 || -h3 / 2, - width: w4, - height: h3 - }), - className: "rect-state-icon", - name: "rect-state-icon", - draggable: true - }); - } - }, - drawLinkPoints: function drawLinkPoints6(cfg, group2) { - var _a6 = this.getOptions(cfg).linkPoints, linkPoints = _a6 === void 0 ? {} : _a6; - var top = linkPoints.top, left2 = linkPoints.left, right2 = linkPoints.right, bottom = linkPoints.bottom, markSize = linkPoints.size, markR = linkPoints.r, markStyle = __rest(linkPoints, ["top", "left", "right", "bottom", "size", "r"]); - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: -width2 / 2, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: width2 / 2, - y: 0, - r: markSize / 2 || markR || 5 - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: -height / 2, - r: markSize / 2 || markR || 5 - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - if (bottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: 0, - y: height / 2, - r: markSize / 2 || markR || 5 - }), - className: "link-point-bottom", - name: "link-point-bottom", - isAnchorPoint: true - }); - } - }, - drawLabel: function drawLabel3(cfg, group2) { - var _a6 = this.getOptions(cfg), _b = _a6.labelCfg, labelCfg = _b === void 0 ? {} : _b, _c = _a6.logoIcon, logoIcon = _c === void 0 ? {} : _c, _d = _a6.descriptionCfg, descriptionCfg = _d === void 0 ? {} : _d; - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var label17 = null; - var show = logoIcon.show, w4 = logoIcon.width; - var offsetX = -width2 / 2 + labelCfg.offset; - if (show) { - offsetX = -width2 / 2 + w4 + labelCfg.offset; - } - var fontStyle = labelCfg.style; - var descriptionStyle = descriptionCfg.style, descriptionPaddingTop = descriptionCfg.paddingTop; - if (is_string_default(cfg.description)) { - label17 = group2.addShape("text", { - attrs: __assign(__assign({}, fontStyle), { - x: offsetX, - y: -5, - text: cfg.label - }), - className: "text-shape", - name: "text-shape", - draggable: true - }); - group2.addShape("text", { - attrs: __assign(__assign({}, descriptionStyle), { - x: offsetX, - y: 17 + (descriptionPaddingTop || 0), - text: cfg.description - }), - className: "rect-description", - name: "rect-description", - draggable: true - }); - } else { - label17 = group2.addShape("text", { - attrs: __assign(__assign({}, fontStyle), { - x: offsetX, - y: 7, - text: cfg.label - }), - className: "text-shape", - name: "text-shape", - draggable: true - }); - } - return label17; - }, - getShapeStyle: function getShapeStyle13(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle); - var size2 = this.getSize(cfg); - var width2 = style.width || size2[0]; - var height = style.height || size2[1]; - var styles = __assign({ - x: -width2 / 2, - y: -height / 2, - width: width2, - height - }, style); - return styles; - }, - update: function update12(cfg, item) { - var _a6 = this.getOptions(cfg), _b = _a6.style, style = _b === void 0 ? {} : _b, _c = _a6.labelCfg, labelCfg = _c === void 0 ? {} : _c, _d = _a6.descriptionCfg, descriptionCfg = _d === void 0 ? {} : _d; - var size2 = this.getSize(cfg); - var width2 = size2[0]; - var height = size2[1]; - var keyShape = item.get("keyShape"); - keyShape.attr(__assign(__assign({}, style), { - x: -width2 / 2, - y: -height / 2, - width: width2, - height - })); - var group2 = item.getContainer(); - var logoIconShape = group2.find(function(element) { - return element.get("className") === "rect-logo-icon"; - }); - var currentLogoIconAttr = logoIconShape ? logoIconShape.attr() : {}; - var logoIcon = mix({}, currentLogoIconAttr, cfg.logoIcon); - var w4 = logoIcon.width; - if (w4 === void 0) { - w4 = this.options.logoIcon.width; - } - var show = cfg.logoIcon ? cfg.logoIcon.show : void 0; - var offset = labelCfg.offset; - var offsetX = -width2 / 2 + w4 + offset; - if (!show && show !== void 0) { - offsetX = -width2 / 2 + offset; - } - var label17 = group2.find(function(element) { - return element.get("className") === "node-label"; - }); - var description = group2.find(function(element) { - return element.get("className") === "rect-description"; - }); - if (cfg.label) { - if (!label17) { - group2.addShape("text", { - attrs: __assign(__assign({}, labelCfg.style), { - x: offsetX, - y: cfg.description ? -5 : 7, - text: cfg.label - }), - className: "node-label", - name: "node-label", - draggable: true - }); - } else { - var cfgStyle = cfg.labelCfg ? cfg.labelCfg.style : {}; - var labelStyle = mix({}, label17.attr(), cfgStyle); - if (cfg.label) - labelStyle.text = cfg.label; - labelStyle.x = offsetX; - if (is_string_default(cfg.description)) - labelStyle.y = -5; - if (description) { - description.resetMatrix(); - description.attr({ - x: offsetX - }); - } - label17.resetMatrix(); - label17.attr(labelStyle); - } - } - if (is_string_default(cfg.description)) { - var paddingTop = descriptionCfg.paddingTop; - if (!description) { - group2.addShape("text", { - attrs: __assign(__assign({}, descriptionCfg.style), { - x: offsetX, - y: 17 + (paddingTop || 0), - text: cfg.description - }), - className: "rect-description", - name: "rect-description", - draggable: true - }); - } else { - var cfgStyle = cfg.descriptionCfg ? cfg.descriptionCfg.style : {}; - var descriptionStyle = mix({}, description.attr(), cfgStyle); - if (is_string_default(cfg.description)) - descriptionStyle.text = cfg.description; - descriptionStyle.x = offsetX; - description.resetMatrix(); - description.attr(__assign(__assign({}, descriptionStyle), { - y: 17 + (paddingTop || 0) - })); - } - } - var preRectShape = group2.find(function(element) { - return element.get("className") === "pre-rect"; - }); - if (preRectShape) { - var preRect = mix({}, preRectShape.attr(), cfg.preRect); - preRectShape.attr(__assign(__assign({}, preRect), { - x: -width2 / 2, - y: -height / 2, - height - })); - } - if (logoIconShape) { - if (!show && show !== void 0) { - logoIconShape.remove(); - } else { - var logoW = logoIcon.width, h3 = logoIcon.height, x6 = logoIcon.x, y5 = logoIcon.y, logoOffset = logoIcon.offset, logoIconStyle = __rest(logoIcon, ["width", "height", "x", "y", "offset"]); - logoIconShape.attr(__assign(__assign({}, logoIconStyle), { - x: x6 || -width2 / 2 + logoW + logoOffset, - y: y5 || -h3 / 2, - width: logoW, - height: h3 - })); - } - } else if (show) { - this.drawLogoIcon(cfg, group2); - } - var stateIconShape = group2.find(function(element) { - return element.get("className") === "rect-state-icon"; - }); - var currentStateIconAttr = stateIconShape ? stateIconShape.attr() : {}; - var stateIcon = mix({}, currentStateIconAttr, cfg.stateIcon); - if (stateIconShape) { - if (!stateIcon.show && stateIcon.show !== void 0) { - stateIconShape.remove(); - } - var stateW = stateIcon.width, h3 = stateIcon.height, x6 = stateIcon.x, y5 = stateIcon.y, stateOffset = stateIcon.offset, stateIconStyle = __rest(stateIcon, ["width", "height", "x", "y", "offset"]); - stateIconShape.attr(__assign(__assign({}, stateIconStyle), { - x: x6 || width2 / 2 - stateW + stateOffset, - y: y5 || -h3 / 2, - width: stateW, - height: h3 - })); - } else if (stateIcon.show) { - this.drawStateIcon(cfg, group2); - } - this.updateLinkPoints(cfg, group2); - } -}, "single-node"); - -// node_modules/@antv/g6-element/es/nodes/star.js -registerNode("star", { - options: { - size: 60, - style: { - stroke: BaseGlobal.defaultNode.style.stroke, - fill: BaseGlobal.defaultNode.style.fill, - lineWidth: BaseGlobal.defaultNode.style.lineWidth - }, - labelCfg: { - style: { - fill: BaseGlobal.nodeLabel.style.fill, - fontSize: BaseGlobal.nodeLabel.style.fontSize - } - }, - linkPoints: { - top: false, - right: false, - bottom: false, - left: false, - size: BaseGlobal.defaultNode.linkPoints.size, - lineWidth: BaseGlobal.defaultNode.linkPoints.lineWidth, - fill: BaseGlobal.defaultNode.linkPoints.fill, - stroke: BaseGlobal.defaultNode.linkPoints.stroke - }, - icon: { - show: false, - img: "https://gw.alipayobjects.com/zos/bmw-prod/5d015065-8505-4e7a-baec-976f81e3c41d.svg", - width: 20, - height: 20 - }, - stateStyles: __assign({}, BaseGlobal.nodeStateStyles) - }, - shapeType: "star", - labelPosition: "center", - drawShape: function drawShape17(cfg, group2) { - var _a6 = this.getOptions(cfg).icon, icon = _a6 === void 0 ? {} : _a6; - var style = this.getShapeStyle(cfg); - var keyShape = group2.addShape("path", { - attrs: style, - className: this.type + "-keyShape", - name: this.type + "-keyShape", - draggable: true - }); - var w4 = icon.width, h3 = icon.height, show = icon.show; - if (show) { - var image = group2.addShape("image", { - attrs: __assign({ - x: -w4 / 2, - y: -h3 / 2 - }, icon), - className: this.type + "-icon", - name: this.type + "-icon", - draggable: true - }); - } - this.drawLinkPoints(cfg, group2); - return keyShape; - }, - drawLinkPoints: function drawLinkPoints7(cfg, group2) { - var _a6 = this.getOptions(cfg).linkPoints, linkPoints = _a6 === void 0 ? {} : _a6; - var top = linkPoints.top, left2 = linkPoints.left, right2 = linkPoints.right, leftBottom = linkPoints.leftBottom, rightBottom = linkPoints.rightBottom, markSize = linkPoints.size, markR = linkPoints.r, markStyle = __rest(linkPoints, ["top", "left", "right", "leftBottom", "rightBottom", "size", "r"]); - var size2 = this.getSize(cfg); - var outerR = size2[0]; - if (right2) { - var x1 = Math.cos((18 + 72 * 0) / 180 * Math.PI) * outerR; - var y1 = Math.sin((18 + 72 * 0) / 180 * Math.PI) * outerR; - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: x1, - y: -y1, - r: markSize / 2 || markR || 5 - }), - className: "link-point-right", - name: "link-point-right" - }); - } - if (top) { - var x1 = Math.cos((18 + 72 * 1) / 180 * Math.PI) * outerR; - var y1 = Math.sin((18 + 72 * 1) / 180 * Math.PI) * outerR; - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: x1, - y: -y1, - r: markSize / 2 || markR || 5 - }), - className: "link-point-top", - name: "link-point-top" - }); - } - if (left2) { - var x1 = Math.cos((18 + 72 * 2) / 180 * Math.PI) * outerR; - var y1 = Math.sin((18 + 72 * 2) / 180 * Math.PI) * outerR; - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: x1, - y: -y1, - r: markSize / 2 || markR || 5 - }), - className: "link-point-left", - name: "link-point-left" - }); - } - if (leftBottom) { - var x1 = Math.cos((18 + 72 * 3) / 180 * Math.PI) * outerR; - var y1 = Math.sin((18 + 72 * 3) / 180 * Math.PI) * outerR; - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: x1, - y: -y1, - r: markSize / 2 || markR || 5 - }), - className: "link-point-left-bottom", - name: "link-point-left-bottom" - }); - } - if (rightBottom) { - var x1 = Math.cos((18 + 72 * 4) / 180 * Math.PI) * outerR; - var y1 = Math.sin((18 + 72 * 4) / 180 * Math.PI) * outerR; - group2.addShape("circle", { - attrs: __assign(__assign({}, markStyle), { - x: x1, - y: -y1, - r: markSize / 2 || markR || 5 - }), - className: "link-point-right-bottom", - name: "link-point-right-bottom" - }); - } - }, - getPath: function getPath12(cfg) { - var size2 = this.getSize(cfg); - var outerR = size2[0]; - var defaultInnerR = outerR * 3 / 8; - var innerR = cfg.innerR || defaultInnerR; - var path = []; - for (var i4 = 0; i4 < 5; i4++) { - var x1 = Math.cos((18 + 72 * i4) / 180 * Math.PI) * outerR; - var y1 = Math.sin((18 + 72 * i4) / 180 * Math.PI) * outerR; - var x22 = Math.cos((54 + 72 * i4) / 180 * Math.PI) * innerR; - var y22 = Math.sin((54 + 72 * i4) / 180 * Math.PI) * innerR; - if (i4 === 0) { - path.push(["M", x1, -y1]); - } else { - path.push(["L", x1, -y1]); - } - path.push(["L", x22, -y22]); - } - path.push(["Z"]); - return path; - }, - getShapeStyle: function getShapeStyle14(cfg) { - var defaultStyle = this.getOptions(cfg).style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle); - var path = this.getPath(cfg); - var styles = __assign({ - path - }, style); - return styles; - }, - update: function update13(cfg, item) { - var group2 = item.getContainer(); - var defaultStyle = this.getOptions({}).style; - var path = this.getPath(cfg); - var strokeStyle = { - stroke: cfg.color, - path - }; - var keyShape = item.get("keyShape"); - var style = mix({}, defaultStyle, keyShape.attr(), strokeStyle); - style = mix(style, cfg.style); - this.updateShape(cfg, item, style, true); - this.updateLinkPoints(cfg, group2); - }, - updateLinkPoints: function updateLinkPoints3(cfg, group2) { - var defaultLinkPoints = this.getOptions({}).linkPoints; - var markLeft = group2.find(function(element) { - return element.get("className") === "link-point-left"; - }); - var markRight = group2.find(function(element) { - return element.get("className") === "link-point-right"; - }); - var markTop = group2.find(function(element) { - return element.get("className") === "link-point-top"; - }); - var markLeftBottom = group2.find(function(element) { - return element.get("className") === "link-point-left-bottom"; - }); - var markRightBottom = group2.find(function(element) { - return element.get("className") === "link-point-right-bottom"; - }); - var currentLinkPoints = defaultLinkPoints; - var existLinkPoint = markLeft || markRight || markTop || markLeftBottom || markRightBottom; - if (existLinkPoint) { - currentLinkPoints = existLinkPoint.attr(); - } - var linkPoints = mix({}, currentLinkPoints, cfg.linkPoints); - var markFill = linkPoints.fill, markStroke = linkPoints.stroke, borderWidth = linkPoints.lineWidth; - var markSize = linkPoints.size / 2; - if (!markSize) - markSize = linkPoints.r; - var _a6 = cfg.linkPoints ? cfg.linkPoints : { - left: void 0, - right: void 0, - top: void 0, - leftBottom: void 0, - rightBottom: void 0 - }, left2 = _a6.left, right2 = _a6.right, top = _a6.top, leftBottom = _a6.leftBottom, rightBottom = _a6.rightBottom; - var size2 = this.getSize(cfg); - var outerR = size2[0]; - var styles = { - r: markSize, - fill: markFill, - stroke: markStroke, - lineWidth: borderWidth - }; - var x6 = Math.cos((18 + 72 * 0) / 180 * Math.PI) * outerR; - var y5 = Math.sin((18 + 72 * 0) / 180 * Math.PI) * outerR; - if (markRight) { - if (!right2 && right2 !== void 0) { - markRight.remove(); - } else { - markRight.attr(__assign(__assign({}, styles), { - x: x6, - y: -y5 - })); - } - } else if (right2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: x6, - y: -y5 - }), - className: "link-point-right", - name: "link-point-right", - isAnchorPoint: true - }); - } - x6 = Math.cos((18 + 72 * 1) / 180 * Math.PI) * outerR; - y5 = Math.sin((18 + 72 * 1) / 180 * Math.PI) * outerR; - if (markTop) { - if (!top && top !== void 0) { - markTop.remove(); - } else { - markTop.attr(__assign(__assign({}, styles), { - x: x6, - y: -y5 - })); - } - } else if (top) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: x6, - y: -y5 - }), - className: "link-point-top", - name: "link-point-top", - isAnchorPoint: true - }); - } - x6 = Math.cos((18 + 72 * 2) / 180 * Math.PI) * outerR; - y5 = Math.sin((18 + 72 * 2) / 180 * Math.PI) * outerR; - if (markLeft) { - if (!left2 && left2 !== void 0) { - markLeft.remove(); - } else { - markLeft.attr(__assign(__assign({}, styles), { - x: x6, - y: -y5 - })); - } - } else if (left2) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: x6, - y: -y5 - }), - className: "link-point-left", - name: "link-point-left", - isAnchorPoint: true - }); - } - x6 = Math.cos((18 + 72 * 3) / 180 * Math.PI) * outerR; - y5 = Math.sin((18 + 72 * 3) / 180 * Math.PI) * outerR; - if (markLeftBottom) { - if (!leftBottom && leftBottom !== void 0) { - markLeftBottom.remove(); - } else { - markLeftBottom.attr(__assign(__assign({}, styles), { - x: x6, - y: -y5 - })); - } - } else if (leftBottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: x6, - y: -y5 - }), - className: "link-point-left-bottom", - name: "link-point-left-bottom", - isAnchorPoint: true - }); - } - x6 = Math.cos((18 + 72 * 4) / 180 * Math.PI) * outerR; - y5 = Math.sin((18 + 72 * 4) / 180 * Math.PI) * outerR; - if (markRightBottom) { - if (!rightBottom && rightBottom !== void 0) { - markLeftBottom.remove(); - } else { - markRightBottom.attr(__assign(__assign({}, styles), { - x: x6, - y: -y5 - })); - } - } else if (rightBottom) { - group2.addShape("circle", { - attrs: __assign(__assign({}, styles), { - x: x6, - y: -y5 - }), - className: "link-point-right-bottom", - name: "link-point-right-bottom", - isAnchorPoint: true - }); - } - } -}, "single-node"); - -// node_modules/@antv/g6-element/es/edges/polyline-util.js -var getBBoxFromPoint = function getBBoxFromPoint2(point2) { - var x6 = point2.x, y5 = point2.y; - return { - x: x6, - y: y5, - centerX: x6, - centerY: y5, - minX: x6, - minY: y5, - maxX: x6, - maxY: y5, - height: 0, - width: 0 - }; -}; -var getBBoxFromPoints = function getBBoxFromPoints2(points) { - if (points === void 0) { - points = []; - } - var xs = []; - var ys = []; - points.forEach(function(p4) { - xs.push(p4.x); - ys.push(p4.y); - }); - var minX = Math.min.apply(Math, xs); - var maxX = Math.max.apply(Math, xs); - var minY = Math.min.apply(Math, ys); - var maxY2 = Math.max.apply(Math, ys); - return { - centerX: (minX + maxX) / 2, - centerY: (minY + maxY2) / 2, - maxX, - maxY: maxY2, - minX, - minY, - height: maxY2 - minY, - width: maxX - minX - }; -}; -var filterConnectPoints = function filterConnectPoints2(points) { - var result = []; - var pointsMap = {}; - var pointsLength = points.length; - for (var i4 = pointsLength - 1; i4 >= 0; i4--) { - var p4 = points[i4]; - p4.id = p4.x + "|||" + p4.y; - pointsMap[p4.id] = p4; - result.push(p4); - } - return result; -}; -var simplifyPolyline = function simplifyPolyline2(points) { - return filterConnectPoints(points); -}; -var getExpandedBBox = function getExpandedBBox2(bbox, offset) { - if (bbox.width || bbox.height) { - return { - centerX: bbox.centerX, - centerY: bbox.centerY, - minX: bbox.minX - offset, - minY: bbox.minY - offset, - maxX: bbox.maxX + offset, - maxY: bbox.maxY + offset, - height: bbox.height + 2 * offset, - width: bbox.width + 2 * offset - }; - } - return bbox; -}; -var isHorizontalPort = function isHorizontalPort2(port, bbox) { - var dx = Math.abs(port.x - bbox.centerX); - var dy = Math.abs(port.y - bbox.centerY); - if (dx === 0 && dy === 0) - return 0; - return dx / bbox.width > dy / bbox.height; -}; -var getExpandedBBoxPoint = function getExpandedBBoxPoint2(bbox, point2, anotherPoint) { - var isHorizontal2 = isHorizontalPort(point2, bbox); - if (isHorizontal2 === 0) { - var x6 = bbox.centerX; - var y5 = bbox.centerY; - if (anotherPoint.y < point2.y) { - y5 = bbox.minY; - } else if (anotherPoint.x > point2.x) { - x6 = bbox.maxX; - } else if (anotherPoint.x < point2.x) { - x6 = bbox.minX; - } else if (anotherPoint.x === point2.x) { - y5 = bbox.maxY; - } - return { - x: x6, - y: y5 - }; - } - if (isHorizontal2) { - return { - x: point2.x > bbox.centerX ? bbox.maxX : bbox.minX, - y: point2.y - }; - } - return { - x: point2.x, - y: point2.y > bbox.centerY ? bbox.maxY : bbox.minY - }; -}; -var mergeBBox2 = function mergeBBox3(b12, b23) { - var minX = Math.min(b12.minX, b23.minX); - var minY = Math.min(b12.minY, b23.minY); - var maxX = Math.max(b12.maxX, b23.maxX); - var maxY2 = Math.max(b12.maxY, b23.maxY); - return { - centerX: (minX + maxX) / 2, - centerY: (minY + maxY2) / 2, - minX, - minY, - maxX, - maxY: maxY2, - height: maxY2 - minY, - width: maxX - minX - }; -}; -var getPointsFromBBox = function getPointsFromBBox2(bbox) { - return [{ - x: bbox.minX, - y: bbox.minY - }, { - x: bbox.maxX, - y: bbox.minY - }, { - x: bbox.maxX, - y: bbox.maxY - }, { - x: bbox.minX, - y: bbox.maxY - }]; -}; -var isPointOutsideBBox = function isPointOutsideBBox2(point2, bbox) { - var x6 = point2.x, y5 = point2.y; - return x6 < bbox.minX || x6 > bbox.maxX || y5 < bbox.minY || y5 > bbox.maxY; -}; -var getBBoxXCrossPoints = function getBBoxXCrossPoints2(bbox, x6) { - if (x6 < bbox.minX || x6 > bbox.maxX) { - return []; - } - return [{ - x: x6, - y: bbox.minY - }, { - x: x6, - y: bbox.maxY - }]; -}; -var getBBoxYCrossPoints = function getBBoxYCrossPoints2(bbox, y5) { - if (y5 < bbox.minY || y5 > bbox.maxY) { - return []; - } - return [{ - x: bbox.minX, - y: y5 - }, { - x: bbox.maxX, - y: y5 - }]; -}; -var getBBoxCrossPointsByPoint = function getBBoxCrossPointsByPoint2(bbox, point2) { - return getBBoxXCrossPoints(bbox, point2.x).concat(getBBoxYCrossPoints(bbox, point2.y)); -}; -var distance13 = function distance14(p1, p22) { - return Math.abs(p1.x - p22.x) + Math.abs(p1.y - p22.y); -}; -var _costByPoints = function _costByPoints2(p4, points) { - var offset = -2; - var result = 0; - points.forEach(function(point2) { - if (point2) { - if (p4.x === point2.x) { - result += offset; - } - if (p4.y === point2.y) { - result += offset; - } - } - }); - return result; -}; -var heuristicCostEstimate = function heuristicCostEstimate2(p4, ps, pt, source, target) { - return distance13(p4, ps) + distance13(p4, pt) + _costByPoints(p4, [ps, pt, source, target]); -}; -var reconstructPath = function reconstructPath2(pathPoints, pointById, cameFrom, currentId, iterator) { - if (iterator === void 0) { - iterator = 0; - } - pathPoints.unshift(pointById[currentId]); - if (cameFrom[currentId] && cameFrom[currentId] !== currentId && iterator <= 100) { - reconstructPath2(pathPoints, pointById, cameFrom, cameFrom[currentId], iterator + 1); - } -}; -var removeFrom = function removeFrom2(arr, item) { - var index2 = arr.indexOf(item); - if (index2 > -1) { - arr.splice(index2, 1); - } -}; -var isSegmentsIntersected = function isSegmentsIntersected2(p0, p1, p22, p32) { - var v1x = p22.x - p0.x; - var v1y = p22.y - p0.y; - var v2x = p32.x - p0.x; - var v2y = p32.y - p0.y; - var v3x = p22.x - p1.x; - var v3y = p22.y - p1.y; - var v4x = p32.x - p1.x; - var v4y = p32.y - p1.y; - var pd1 = v1x * v2y - v1y * v2x; - var pd2 = v3x * v4y - v3y * v4x; - var pd3 = v1x * v3y - v1y * v3x; - var pd4 = v2x * v4y - v2y * v4x; - return pd1 * pd2 <= 0 && pd3 * pd4 <= 0; -}; -var isSegmentCrossingBBox = function isSegmentCrossingBBox2(p1, p22, bbox) { - if (bbox.width || bbox.height) { - var _a6 = getPointsFromBBox(bbox), pa = _a6[0], pb = _a6[1], pc = _a6[2], pd = _a6[3]; - return isSegmentsIntersected(p1, p22, pa, pb) || isSegmentsIntersected(p1, p22, pa, pd) || isSegmentsIntersected(p1, p22, pb, pc) || isSegmentsIntersected(p1, p22, pc, pd); - } - return false; -}; -var getNeighborPoints = function getNeighborPoints2(points, point2, bbox1, bbox2) { - var neighbors = []; - points.forEach(function(p4) { - if (p4 === point2) - return; - if (p4.x === point2.x || p4.y === point2.y) { - if (isSegmentCrossingBBox(p4, point2, bbox1) || isSegmentCrossingBBox(p4, point2, bbox2)) - return; - neighbors.push(p4); - } - }); - return filterConnectPoints(neighbors); -}; -var pathFinder = function pathFinder2(points, start, goal, sBBox, tBBox, os, ot) { - var closedSet = []; - var openSet = [start]; - var cameFrom = {}; - var gScore = {}; - var fScore = {}; - gScore[start.id] = 0; - fScore[start.id] = heuristicCostEstimate(start, goal, start); - var pointById = {}; - points.forEach(function(p4) { - pointById[p4.id] = p4; - }); - var current, lowestFScore; - while (openSet.length) { - current = void 0; - lowestFScore = Infinity; - openSet.forEach(function(p4) { - if (fScore[p4.id] <= lowestFScore) { - lowestFScore = fScore[p4.id]; - current = p4; - } - }); - if (current === goal) { - var pathPoints = []; - reconstructPath(pathPoints, pointById, cameFrom, goal.id); - return pathPoints; - } - removeFrom(openSet, current); - closedSet.push(current); - getNeighborPoints(points, current, sBBox, tBBox).forEach(function(neighbor) { - if (closedSet.indexOf(neighbor) !== -1) { - return; - } - if (openSet.indexOf(neighbor) === -1) { - openSet.push(neighbor); - } - var tentativeGScore = fScore[current.id] + distance13(current, neighbor); - if (gScore[neighbor.id] && tentativeGScore >= gScore[neighbor.id]) { - return; - } - cameFrom[neighbor.id] = current.id; - gScore[neighbor.id] = tentativeGScore; - fScore[neighbor.id] = gScore[neighbor.id] + heuristicCostEstimate(neighbor, goal, start, os, ot); - }); - } - return [start, goal]; -}; -var isBending = function isBending2(p0, p1, p22) { - return !(p0.x === p1.x && p1.x === p22.x || p0.y === p1.y && p1.y === p22.y); -}; -var getBorderRadiusPoints = function getBorderRadiusPoints2(p0, p1, p22, r4) { - var d0 = distance13(p0, p1); - var d1 = distance13(p22, p1); - if (d0 < r4) { - r4 = d0; - } - if (d1 < r4) { - r4 = d1; - } - var ps = { - x: p1.x - r4 / d0 * (p1.x - p0.x), - y: p1.y - r4 / d0 * (p1.y - p0.y) - }; - var pt = { - x: p1.x - r4 / d1 * (p1.x - p22.x), - y: p1.y - r4 / d1 * (p1.y - p22.y) - }; - return [ps, pt]; -}; -var getPathWithBorderRadiusByPolyline = function getPathWithBorderRadiusByPolyline2(points, borderRadius) { - var pathSegments = []; - var startPoint = points[0]; - pathSegments.push("M" + startPoint.x + " " + startPoint.y); - points.forEach(function(p4, i4) { - var p1 = points[i4 + 1]; - var p22 = points[i4 + 2]; - if (p1 && p22) { - if (isBending(p4, p1, p22)) { - var _a6 = getBorderRadiusPoints(p4, p1, p22, borderRadius), ps = _a6[0], pt = _a6[1]; - pathSegments.push("L" + ps.x + " " + ps.y); - pathSegments.push("Q" + p1.x + " " + p1.y + " " + pt.x + " " + pt.y); - pathSegments.push("L" + pt.x + " " + pt.y); - } else { - pathSegments.push("L" + p1.x + " " + p1.y); - } - } else if (p1) { - pathSegments.push("L" + p1.x + " " + p1.y); - } - }); - return pathSegments.join(""); -}; -var getPolylinePoints = function getPolylinePoints2(start, end2, sNode, tNode, offset) { - var sBBox, tBBox; - if (!sNode || !sNode.getType()) { - sBBox = getBBoxFromPoint(start); - } else if (sNode.getType() === "combo") { - var sNodeKeyShape = sNode.getKeyShape(); - sBBox = sNodeKeyShape.getCanvasBBox() || getBBoxFromPoint(start); - sBBox.centerX = (sBBox.minX + sBBox.maxX) / 2; - sBBox.centerY = (sBBox.minY + sBBox.maxY) / 2; - } else { - sBBox = sNode.getBBox(); - } - if (!tNode || !tNode.getType()) { - tBBox = getBBoxFromPoint(end2); - } else if (tNode.getType() === "combo") { - var tNodeKeyShape = tNode.getKeyShape(); - tBBox = tNodeKeyShape.getCanvasBBox() || getBBoxFromPoint(end2); - tBBox.centerX = (tBBox.minX + tBBox.maxX) / 2; - tBBox.centerY = (tBBox.minY + tBBox.maxY) / 2; - } else { - tBBox = tNode && tNode.getBBox(); - } - var sxBBox = getExpandedBBox(sBBox, offset); - var txBBox = getExpandedBBox(tBBox, offset); - var sPoint = getExpandedBBoxPoint(sxBBox, start, end2); - var tPoint = getExpandedBBoxPoint(txBBox, end2, start); - var lineBBox = getBBoxFromPoints([sPoint, tPoint]); - var sMixBBox = mergeBBox2(sxBBox, lineBBox); - var tMixBBox = mergeBBox2(txBBox, lineBBox); - var connectPoints = []; - connectPoints = connectPoints.concat(getPointsFromBBox(sMixBBox)).concat(getPointsFromBBox(tMixBBox)); - var centerPoint = { - x: (start.x + end2.x) / 2, - y: (start.y + end2.y) / 2 - }; - [lineBBox, sMixBBox, tMixBBox].forEach(function(bbox) { - connectPoints = connectPoints.concat(getBBoxCrossPointsByPoint(bbox, centerPoint).filter(function(p4) { - return isPointOutsideBBox(p4, sxBBox) && isPointOutsideBBox(p4, txBBox); - })); - }); - [{ - x: sPoint.x, - y: tPoint.y - }, { - x: tPoint.x, - y: sPoint.y - }].forEach(function(p4) { - if (isPointOutsideBBox(p4, sxBBox) && isPointOutsideBBox(p4, txBBox)) { - connectPoints.push(p4); - } - }); - connectPoints.unshift(sPoint); - connectPoints.push(tPoint); - connectPoints = filterConnectPoints(connectPoints); - var pathPoints = pathFinder(connectPoints, sPoint, tPoint, sBBox, tBBox, start, end2); - pathPoints.unshift(start); - pathPoints.push(end2); - return simplifyPolyline(pathPoints); -}; - -// node_modules/@antv/g6-element/es/edges/router.js -var manhattanDist = function manhattanDist2(p1, p22) { - return Math.abs(p1.x - p22.x) + Math.abs(p1.y - p22.y); -}; -var eucliDist = function eucliDist2(p1, p22) { - return Math.sqrt(Math.pow(p1.x - p22.x, 2) + Math.pow(p1.y - p22.y, 2)); -}; -var straightPath = function straightPath2(start, end2) { - return [start, end2]; -}; -var simplePolyline = function simplePolyline2(start, end2, startNode, endNode, cfg) { - return simplifyPolyline(getPolylinePoints(start, end2, startNode, endNode, cfg.offset)); -}; -var defaultCfg = { - offset: 20, - maxAllowedDirectionChange: Math.PI / 2, - maximumLoops: 2e3, - gridSize: 10, - directions: [ - { - stepX: 1, - stepY: 0 - }, - { - stepX: -1, - stepY: 0 - }, - { - stepX: 0, - stepY: 1 - }, - { - stepX: 0, - stepY: -1 - } - ], - get penalties() { - return { - 0: 0, - 45: this.gridSize / 2, - 90: this.gridSize / 2 - }; - }, - distFunc: manhattanDist, - fallbackRoute: simplePolyline -}; -var octolinearCfg = { - maxAllowedDirectionChange: Math.PI / 4, - directions: [{ - stepX: 1, - stepY: 0 - }, { - stepX: 1, - stepY: 1 - }, { - stepX: 0, - stepY: 1 - }, { - stepX: -1, - stepY: 1 - }, { - stepX: -1, - stepY: 0 - }, { - stepX: -1, - stepY: -1 - }, { - stepX: 0, - stepY: -1 - }, { - stepX: 1, - stepY: -1 - }], - distFunc: eucliDist, - fallbackRoute: straightPath -}; -var pos2GridIx = function pos2GridIx2(pos, gridSize) { - var gridIx = Math.round(Math.abs(pos / gridSize)); - var sign = pos < 0 ? -1 : 1; - return gridIx < 0 ? 0 : sign * gridIx; -}; -var getObstacleMap = function getObstacleMap2(items, gridSize, offset) { - var map6 = {}; - items.forEach(function(item) { - if (!item) - return; - var bbox = getExpandedBBox(item.getBBox(), offset); - for (var x6 = pos2GridIx(bbox.minX, gridSize); x6 <= pos2GridIx(bbox.maxX, gridSize); x6 += 1) { - for (var y5 = pos2GridIx(bbox.minY, gridSize); y5 <= pos2GridIx(bbox.maxY, gridSize); y5 += 1) { - map6[x6 + "|||" + y5] = true; - } - } - }); - return map6; -}; -var getDirectionAngle = function getDirectionAngle2(p1, p22) { - var deltaX = p22.x - p1.x; - var deltaY = p22.y - p1.y; - if (deltaX || deltaY) { - return Math.atan2(deltaY, deltaX); - } - return 0; -}; -var getAngleDiff = function getAngleDiff2(angle1, angle22) { - var directionChange = Math.abs(angle1 - angle22); - return directionChange > Math.PI ? 2 * Math.PI - directionChange : directionChange; -}; -var estimateCost = function estimateCost2(from, endPoints, distFunc) { - var min7 = Infinity; - for (var i4 = 0, len5 = endPoints.length; i4 < len5; i4++) { - var cost = distFunc(from, endPoints[i4]); - if (cost < min7) { - min7 = cost; - } - } - return min7; -}; -var getBoxPoints2 = function getBoxPoints3(point2, oriPoint, node, anotherPoint, cfg) { - var points = []; - if (!node) { - return [point2]; - } - var directions = cfg.directions, offset = cfg.offset; - var bbox = node.getBBox(); - var isInside = oriPoint.x > bbox.minX && oriPoint.x < bbox.maxX && oriPoint.y > bbox.minY && oriPoint.y < bbox.maxY; - var expandBBox = getExpandedBBox(bbox, offset); - for (var i4 in expandBBox) { - expandBBox[i4] = pos2GridIx(expandBBox[i4], cfg.gridSize); - } - if (isInside) { - for (var _i = 0, directions_1 = directions; _i < directions_1.length; _i++) { - var dir = directions_1[_i]; - var bounds = [[{ - x: expandBBox.minX, - y: expandBBox.minY - }, { - x: expandBBox.maxX, - y: expandBBox.minY - }], [{ - x: expandBBox.minX, - y: expandBBox.minY - }, { - x: expandBBox.minX, - y: expandBBox.maxY - }], [{ - x: expandBBox.maxX, - y: expandBBox.minY - }, { - x: expandBBox.maxX, - y: expandBBox.maxY - }], [{ - x: expandBBox.minX, - y: expandBBox.maxY - }, { - x: expandBBox.maxX, - y: expandBBox.maxY - }]]; - for (var i4 = 0; i4 < 4; i4++) { - var boundLine = bounds[i4]; - var insterctP_1 = util_default.getLineIntersect(point2, { - x: point2.x + dir.stepX * expandBBox.width, - y: point2.y + dir.stepY * expandBBox.height - }, boundLine[0], boundLine[1]); - if (insterctP_1 && !isSegmentCrossingBBox(point2, insterctP_1, bbox)) { - insterctP_1.id = insterctP_1.x + "|||" + insterctP_1.y; - points.push(insterctP_1); - } - } - } - return points; - } - var insterctP = getExpandedBBoxPoint(expandBBox, point2, anotherPoint); - insterctP.id = insterctP.x + "|||" + insterctP.y; - return [insterctP]; -}; -var getDirectionChange = function getDirectionChange2(current, neighbor, cameFrom, scaleStartPoint) { - var directionAngle = getDirectionAngle(current, neighbor); - if (!cameFrom[current.id]) { - var startAngle = getDirectionAngle(scaleStartPoint, current); - return getAngleDiff(startAngle, directionAngle); - } - var prevDirectionAngle = getDirectionAngle({ - x: cameFrom[current.id].x, - y: cameFrom[current.id].y - }, current); - return getAngleDiff(prevDirectionAngle, directionAngle); -}; -var getControlPoints12 = function getControlPoints13(current, cameFrom, scaleStartPoint, endPoint, startPoint, scaleEndPoint, gridSize) { - var controlPoints = [endPoint]; - var currentId = current.id; - var currentX = current.x; - var currentY = current.y; - var lastPoint = { - x: currentX, - y: currentY, - id: currentId - }; - if (getDirectionChange(lastPoint, scaleEndPoint, cameFrom, scaleStartPoint)) { - controlPoints.unshift({ - x: scaleEndPoint.x === endPoint.x ? endPoint.x : lastPoint.x * gridSize, - y: scaleEndPoint.y === endPoint.y ? endPoint.y : lastPoint.y * gridSize - }); - } - while (cameFrom[currentId] && cameFrom[currentId].id !== currentId) { - var point2 = { - x: currentX, - y: currentY, - id: currentId - }; - var preId = cameFrom[currentId].id; - var preX = cameFrom[currentId].x; - var preY = cameFrom[currentId].y; - var prePoint = { - x: preX, - y: preY, - id: preId - }; - var directionChange = getDirectionChange(prePoint, point2, cameFrom, scaleStartPoint); - if (directionChange) { - controlPoints.unshift({ - x: prePoint.x === point2.x ? controlPoints[0].x : prePoint.x * gridSize, - y: prePoint.y === point2.y ? controlPoints[0].y : prePoint.y * gridSize - }); - } - currentId = preId; - currentX = preX; - currentY = preY; - } - var firstPoint = { - x: currentX, - y: currentY, - id: currentId - }; - controlPoints[0].x = firstPoint.x === scaleStartPoint.x ? startPoint.x : controlPoints[0].x; - controlPoints[0].y = firstPoint.y === scaleStartPoint.y ? startPoint.y : controlPoints[0].y; - controlPoints.unshift(startPoint); - return controlPoints; -}; -var pathFinder3 = function pathFinder4(startPoint, endPoint, startNode, endNode, routerCfg) { - if (isNaN(startPoint.x) || isNaN(endPoint.x)) - return []; - var cfg = deep_mix_default(defaultCfg, routerCfg); - cfg.obstacles = cfg.obstacles || []; - var gridSize = cfg.gridSize; - var map6 = getObstacleMap(cfg.obstacles.concat([startNode, endNode]), gridSize, cfg.offset); - var scaleStartPoint = { - x: pos2GridIx(startPoint.x, gridSize), - y: pos2GridIx(startPoint.y, gridSize) - }; - var scaleEndPoint = { - x: pos2GridIx(endPoint.x, gridSize), - y: pos2GridIx(endPoint.y, gridSize) - }; - startPoint.id = scaleStartPoint.x + "|||" + scaleStartPoint.y; - endPoint.id = scaleEndPoint.x + "|||" + scaleEndPoint.y; - var startPoints = getBoxPoints2(scaleStartPoint, startPoint, startNode, scaleEndPoint, cfg); - var endPoints = getBoxPoints2(scaleEndPoint, endPoint, endNode, scaleStartPoint, cfg); - startPoints.forEach(function(point2) { - delete map6[point2.id]; - }); - endPoints.forEach(function(point2) { - delete map6[point2.id]; - }); - var openSet = {}; - var closedSet = {}; - var cameFrom = {}; - var gScore = {}; - var fScore = {}; - for (var i4 = 0; i4 < startPoints.length; i4++) { - var firstStep = startPoints[i4]; - openSet[firstStep.id] = firstStep; - gScore[firstStep.id] = 0; - fScore[firstStep.id] = estimateCost(firstStep, endPoints, cfg.distFunc); - } - var remainLoops = cfg.maximumLoops; - var penalties = cfg.penalties; - var current, curCost, direction5, neighbor, neighborCost, costFromStart, directionChange; - while (Object.keys(openSet).length > 0 && remainLoops > 0) { - current = void 0; - curCost = Infinity; - Object.keys(openSet).forEach(function(key) { - var id = openSet[key].id; - if (fScore[id] <= curCost) { - curCost = fScore[id]; - current = openSet[id]; - } - }); - if (!current) - break; - if (endPoints.findIndex(function(point2) { - return point2.x === current.x && point2.y === current.y; - }) > -1) { - return getControlPoints12(current, cameFrom, scaleStartPoint, endPoint, startPoint, scaleEndPoint, gridSize); - } - delete openSet[current.id]; - closedSet[current.id] = true; - for (var i4 = 0; i4 < cfg.directions.length; i4++) { - direction5 = cfg.directions[i4]; - neighbor = { - x: current.x + direction5.stepX, - y: current.y + direction5.stepY, - id: Math.round(current.x) + direction5.stepX + "|||" + (Math.round(current.y) + direction5.stepY) - }; - if (closedSet[neighbor.id]) - continue; - directionChange = getDirectionChange(current, neighbor, cameFrom, scaleStartPoint); - if (directionChange > cfg.maxAllowedDirectionChange) - continue; - if (map6[neighbor.id]) - continue; - if (!openSet[neighbor.id]) { - openSet[neighbor.id] = neighbor; - } - neighborCost = cfg.distFunc(current, neighbor) + (isNaN(penalties[directionChange]) ? gridSize : penalties[directionChange]); - costFromStart = gScore[current.id] + neighborCost; - if (gScore[neighbor.id] && costFromStart >= gScore[neighbor.id]) { - continue; - } - cameFrom[neighbor.id] = current; - gScore[neighbor.id] = costFromStart; - fScore[neighbor.id] = costFromStart + estimateCost(neighbor, endPoints, cfg.distFunc); - } - remainLoops -= 1; - } - return cfg.fallbackRoute(startPoint, endPoint, startNode, endNode, cfg); -}; - -// node_modules/@antv/g6-element/es/edges/polyline.js -registerEdge("polyline", { - options: { - color: BaseGlobal.defaultEdge.color, - size: BaseGlobal.defaultEdge.size, - style: { - radius: 0, - offset: 15, - x: 0, - y: 0, - stroke: BaseGlobal.defaultEdge.style.stroke, - lineAppendWidth: BaseGlobal.defaultEdge.style.lineAppendWidth - }, - labelCfg: { - style: { - fill: BaseGlobal.edgeLabel.style.fill, - fontSize: BaseGlobal.edgeLabel.style.fontSize - } - }, - routeCfg: { - obstacles: [], - maxAllowedDirectionChange: Math.PI, - maximumLoops: 500, - gridSize: 10 - }, - stateStyles: __assign({}, BaseGlobal.edgeStateStyles) - }, - shapeType: "polyline", - labelPosition: "center", - drawShape: function drawShape18(cfg, group2) { - var shapeStyle = this.getShapeStyle(cfg); - if (shapeStyle.radius === 0) - delete shapeStyle.radius; - var keyShape = group2.addShape("path", { - className: "edge-shape", - name: "edge-shape", - attrs: shapeStyle - }); - return keyShape; - }, - getShapeStyle: function getShapeStyle15(cfg) { - var defaultStyle = this.options.style; - var strokeStyle = { - stroke: cfg.color - }; - var style = mix({}, defaultStyle, strokeStyle, cfg.style); - cfg = this.getPathPoints(cfg); - this.radius = style.radius; - this.offset = style.offset; - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - var controlPoints = this.getControlPoints(cfg); - var points = [startPoint]; - if (controlPoints) { - points = points.concat(controlPoints); - } - points.push(endPoint); - var source = cfg.sourceNode; - var target = cfg.targetNode; - var radius = style.radius; - var defaultRouteCfg = this.options.routeCfg; - var routeCfg = mix({}, defaultRouteCfg, cfg.routeCfg); - routeCfg.offset = style.offset; - var path = this.getPath(points, source, target, radius, routeCfg); - if (is_array_default(path) && path.length <= 1 || is_string_default(path) && path.indexOf("L") === -1) { - path = "M0 0, L0 0"; - } - if (isNaN(startPoint.x) || isNaN(startPoint.y) || isNaN(endPoint.x) || isNaN(endPoint.y)) { - path = "M0 0, L0 0"; - } - var attrs = mix({}, BaseGlobal.defaultEdge.style, style, { - lineWidth: cfg.size, - path - }); - return attrs; - }, - updateShapeStyle: function updateShapeStyle4(cfg, item) { - var group2 = item.getContainer(); - if (!item.isVisible()) - return; - var strokeStyle = { - stroke: cfg.color - }; - var shape = group2.find(function(element) { - return element.get("className") === "edge-shape"; - }) || item.getKeyShape(); - var size2 = cfg.size; - cfg = this.getPathPoints(cfg); - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - var controlPoints = this.getControlPoints(cfg); - var points = [startPoint]; - if (controlPoints) { - points = points.concat(controlPoints); - } - points.push(endPoint); - var currentAttr = shape.attr(); - var previousStyle = mix({}, strokeStyle, currentAttr, cfg.style); - var source = cfg.sourceNode; - var target = cfg.targetNode; - var radius = previousStyle.radius; - var defaultRouteCfg = this.options.routeCfg; - var routeCfg = mix({}, defaultRouteCfg, cfg.routeCfg); - routeCfg.offset = previousStyle.offset; - var path = this.getPath(points, source, target, radius, routeCfg); - if (is_array_default(path) && path.length <= 1 || is_string_default(path) && path.indexOf("L") === -1) { - path = "M0 0, L0 0"; - } - if (isNaN(startPoint.x) || isNaN(startPoint.y) || isNaN(endPoint.x) || isNaN(endPoint.y)) { - path = "M0 0, L0 0"; - } - if (currentAttr.endArrow && previousStyle.endArrow === false) { - cfg.style.endArrow = { - path: "" - }; - } - if (currentAttr.startArrow && previousStyle.startArrow === false) { - cfg.style.startArrow = { - path: "" - }; - } - var style = mix(strokeStyle, shape.attr(), { - lineWidth: size2, - path - }, cfg.style); - if (shape) { - shape.attr(style); - } - }, - getPath: function getPath13(points, source, target, radius, routeCfg) { - var offset = routeCfg.offset, simple = routeCfg.simple; - if (!offset || points.length > 2) { - if (radius) { - return getPathWithBorderRadiusByPolyline(points, radius); - } - var pathArray_1 = []; - each_default(points, function(point2, index2) { - if (index2 === 0) { - pathArray_1.push(["M", point2.x, point2.y]); - } else { - pathArray_1.push(["L", point2.x, point2.y]); - } - }); - return pathArray_1; - } - var polylinePoints = simple ? getPolylinePoints(points[points.length - 1], points[0], target, source, offset) : pathFinder3(points[0], points[points.length - 1], source, target, routeCfg); - if (!polylinePoints || !polylinePoints.length) - return "M0 0, L0 0"; - if (radius) { - var res_1 = getPathWithBorderRadiusByPolyline(polylinePoints, radius); - return res_1; - } - var res = util_default.pointsToPolygon(polylinePoints); - return res; - } -}, "single-edge"); - -// node_modules/@antv/g6-pc/es/behavior/drag-canvas.js -var cloneEvent4 = util_default3.cloneEvent; -var isNaN5 = util_default3.isNaN; -var abs = Math.abs; -var DRAG_OFFSET = 10; -var ALLOW_EVENTS = ["shift", "ctrl", "alt", "control"]; -var drag_canvas_default = { - getDefaultCfg: function getDefaultCfg2() { - return { - direction: "both", - enableOptimize: false, - scalableRange: 0, - allowDragOnItem: false - }; - }, - getEvents: function getEvents2() { - return { - dragstart: "onMouseDown", - drag: "onMouseMove", - dragend: "onMouseUp", - "canvas:click": "onMouseUp", - keyup: "onKeyUp", - focus: "onKeyUp", - keydown: "onKeyDown", - touchstart: "onTouchStart", - touchmove: "onTouchMove", - touchend: "onMouseUp" - }; - }, - updateViewport: function updateViewport(e4) { - var origin = this.origin; - var clientX = +e4.clientX; - var clientY = +e4.clientY; - if (isNaN5(clientX) || isNaN5(clientY)) { - return; - } - var dx = clientX - origin.x; - var dy = clientY - origin.y; - if (this.get("direction") === "x") { - dy = 0; - } else if (this.get("direction") === "y") { - dx = 0; - } - this.origin = { - x: clientX, - y: clientY - }; - var width2 = this.graph.get("width"); - var height = this.graph.get("height"); - var graphCanvasBBox = this.graph.get("canvas").getCanvasBBox(); - if (graphCanvasBBox.minX <= width2 + this.scalableRange && graphCanvasBBox.minX + dx > width2 + this.scalableRange || graphCanvasBBox.maxX + this.scalableRange >= 0 && graphCanvasBBox.maxX + this.scalableRange + dx < 0) { - dx = 0; - } - if (graphCanvasBBox.minY <= height + this.scalableRange && graphCanvasBBox.minY + dy > height + this.scalableRange || graphCanvasBBox.maxY + this.scalableRange >= 0 && graphCanvasBBox.maxY + this.scalableRange + dy < 0) { - dy = 0; - } - this.graph.translate(dx, dy); - }, - onTouchStart: function onTouchStart(e4) { - var self2 = this; - var touches = e4.originalEvent.touches; - var event1 = touches[0]; - var event2 = touches[1]; - if (event1 && event2) { - return; - } - e4.preventDefault(); - self2.onMouseDown(e4); - }, - onMouseDown: function onMouseDown(e4) { - var self2 = this; - var event = e4.originalEvent; - if (event && e4.name !== G6Event.TOUCHSTART && event.button !== 0) { - return; - } - if (e4.name !== G6Event.TOUCHSTART && typeof window !== "undefined" && window.event && !window.event.buttons && !window.event.button) { - return; - } - if (!this.shouldBegin.call(this, e4)) { - return; - } - if (self2.keydown) - return; - var target = e4.target; - var targetIsCanvas = target && target.isCanvas && target.isCanvas(); - if (!this.allowDragOnItem && !targetIsCanvas) - return; - self2.origin = { - x: e4.clientX, - y: e4.clientY - }; - self2.dragging = false; - if (this.enableOptimize) { - var graph = this.graph; - var edges = graph.getEdges(); - for (var i4 = 0, len5 = edges.length; i4 < len5; i4++) { - var shapes = edges[i4].get("group").get("children"); - if (!shapes) - continue; - shapes.forEach(function(shape) { - shape.set("ori-visibility", shape.get("ori-visibility") || shape.get("visible")); - shape.hide(); - }); - } - var nodes = graph.getNodes(); - for (var j4 = 0, nodeLen = nodes.length; j4 < nodeLen; j4++) { - var container2 = nodes[j4].getContainer(); - var children = container2.get("children"); - for (var _i = 0, children_1 = children; _i < children_1.length; _i++) { - var child = children_1[_i]; - var isKeyShape = child.get("isKeyShape"); - if (!isKeyShape) { - child.set("ori-visibility", child.get("ori-visibility") || child.get("visible")); - child.hide(); - } - } - } - } - }, - onTouchMove: function onTouchMove(e4) { - var self2 = this; - var touches = e4.originalEvent.touches; - var event1 = touches[0]; - var event2 = touches[1]; - if (event1 && event2) { - this.onMouseUp(e4); - return; - } - e4.preventDefault(); - self2.onMouseMove(e4); - }, - onMouseMove: function onMouseMove(e4) { - var graph = this.graph; - if (this.keydown) - return; - var target = e4.target; - var targetIsCanvas = target && target.isCanvas && target.isCanvas(); - if (!this.allowDragOnItem && !targetIsCanvas) - return; - e4 = cloneEvent4(e4); - if (!this.origin) { - return; - } - if (!this.dragging) { - if (abs(this.origin.x - e4.clientX) + abs(this.origin.y - e4.clientY) < DRAG_OFFSET) { - return; - } - if (this.shouldBegin.call(this, e4)) { - e4.type = "dragstart"; - graph.emit("canvas:dragstart", e4); - this.dragging = true; - } - } else { - e4.type = "drag"; - graph.emit("canvas:drag", e4); - } - if (this.shouldUpdate.call(this, e4)) { - this.updateViewport(e4); - } - }, - onMouseUp: function onMouseUp(e4) { - var graph = this.graph; - if (this.keydown) - return; - if (this.enableOptimize) { - var edges = graph.getEdges(); - for (var i4 = 0, len5 = edges.length; i4 < len5; i4++) { - var shapes = edges[i4].get("group").get("children"); - if (!shapes) - continue; - shapes.forEach(function(shape) { - var oriVis2 = shape.get("ori-visibility"); - if (oriVis2) - shape.show(); - }); - } - var nodes = graph.getNodes(); - for (var j4 = 0, nodeLen = nodes.length; j4 < nodeLen; j4++) { - var container2 = nodes[j4].getContainer(); - var children = container2.get("children"); - for (var _i = 0, children_2 = children; _i < children_2.length; _i++) { - var child = children_2[_i]; - var isKeyShape = child.get("isKeyShape"); - if (!isKeyShape) { - var oriVis = child.get("ori-visibility"); - if (oriVis) - child.show(); - } - } - } - } - if (!this.dragging) { - this.origin = null; - return; - } - e4 = cloneEvent4(e4); - if (this.shouldEnd.call(this, e4)) { - this.updateViewport(e4); - } - e4.type = "dragend"; - graph.emit("canvas:dragend", e4); - this.endDrag(); - }, - endDrag: function endDrag() { - this.origin = null; - this.dragging = false; - this.dragbegin = false; - }, - onKeyDown: function onKeyDown(e4) { - var self2 = this; - var code = e4.key; - if (!code) { - return; - } - if (ALLOW_EVENTS.indexOf(code.toLowerCase()) > -1) { - self2.keydown = true; - } else { - self2.keydown = false; - } - }, - onKeyUp: function onKeyUp() { - this.keydown = false; - this.origin = null; - this.dragging = false; - this.dragbegin = false; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/drag-node.js -var drag_node_default = { - getDefaultCfg: function getDefaultCfg3() { - return { - updateEdge: true, - delegateStyle: {}, - enableDelegate: false, - onlyChangeComboSize: false, - comboActiveState: "", - selectedState: "selected", - enableOptimize: false, - enableDebounce: false - }; - }, - getEvents: function getEvents3() { - return { - "node:dragstart": "onDragStart", - "node:drag": "onDrag", - "node:dragend": "onDragEnd", - "combo:dragenter": "onDragEnter", - "combo:dragleave": "onDragLeave", - "combo:drop": "onDropCombo", - "node:drop": "onDropNode", - "canvas:drop": "onDropCanvas" - }; - }, - validationCombo: function validationCombo(item) { - if (!this.origin || !item || item.destroyed) { - return false; - } - var type2 = item.getType(); - if (type2 !== "combo") { - return false; - } - return true; - }, - onDragStart: function onDragStart(evt) { - var _this = this; - if (!this.shouldBegin.call(this, evt)) { - return; - } - var item = evt.item; - if (!item || item.destroyed || item.hasLocked()) { - return; - } - var group2 = item.getContainer(); - group2.set("capture", false); - var target = evt.target; - if (target) { - var isAnchorPoint = target.get("isAnchorPoint"); - if (isAnchorPoint) { - return; - } - } - var graph = this.graph; - this.targets = []; - this.targetCombo = null; - var nodes = graph.findAllByState("node", this.selectedState); - var currentNodeId = item.get("id"); - var dragNodes = nodes.filter(function(node) { - var nodeId = node.get("id"); - return currentNodeId === nodeId; - }); - if (dragNodes.length === 0) { - this.targets.push(item); - } else if (nodes.length > 1) { - nodes.forEach(function(node) { - var locked = node.hasLocked(); - if (!locked) { - _this.targets.push(node); - } - }); - } else { - this.targets.push(item); - } - var beforeDragNodes = []; - this.targets.forEach(function(t4) { - beforeDragNodes.push(clone_default(t4.getModel())); - }); - this.set("beforeDragNodes", beforeDragNodes); - this.hidenEdge = {}; - if (this.get("updateEdge") && this.enableOptimize && !this.enableDelegate) { - this.targets.forEach(function(node) { - var edges = node.getEdges(); - edges.forEach(function(edge2) { - if (!edge2.isVisible()) - return; - _this.hidenEdge[edge2] = true; - edge2.hide(); - }); - }); - } - this.origin = { - x: evt.x, - y: evt.y - }; - this.point = {}; - this.originPoint = {}; - }, - onDrag: function onDrag(evt) { - var _this = this; - if (!this.origin) { - return; - } - if (!this.shouldUpdate(this, evt)) { - return; - } - if (this.get("enableDelegate")) { - this.updateDelegate(evt); - } else { - if (this.enableDebounce) - this.debounceUpdate({ - targets: this.targets, - graph: this.graph, - point: this.point, - origin: this.origin, - evt, - updateEdge: this.get("updateEdge") - }); - else - this.targets.map(function(target) { - _this.update(target, evt); - }); - } - }, - onDragEnd: function onDragEnd(evt) { - var _this = this; - if (!this.origin || !this.shouldEnd.call(this, evt)) { - return; - } - var item = evt.item; - if (item) { - var group2 = item.getContainer(); - group2.set("capture", true); - } - if (this.delegateRect) { - this.delegateRect.remove(); - this.delegateRect = null; - } - this.updatePositions(evt); - if (this.get("updateEdge") && this.enableOptimize && !this.enableDelegate) { - this.targets.forEach(function(node) { - var edges = node.getEdges(); - edges.forEach(function(edge2) { - if (_this.hidenEdge[edge2]) - edge2.show(); - edge2.refresh(); - }); - }); - } - this.hidenEdge = {}; - var graph = this.graph; - if (graph.get("enabledStack")) { - var stackData_1 = { - before: { - nodes: [], - edges: [], - combos: [] - }, - after: { - nodes: [], - edges: [], - combos: [] - } - }; - this.get("beforeDragNodes").forEach(function(model) { - stackData_1.before.nodes.push({ - id: model.id, - x: model.x, - y: model.y - }); - }); - this.targets.forEach(function(target) { - var targetModel = target.getModel(); - stackData_1.after.nodes.push({ - id: targetModel.id, - x: targetModel.x, - y: targetModel.y - }); - }); - graph.pushStack("update", clone_default(stackData_1)); - } - graph.emit("dragnodeend", { - items: this.targets, - targetItem: null - }); - this.point = {}; - this.origin = null; - this.originPoint = {}; - this.targets.length = 0; - this.targetCombo = null; - }, - onDropCombo: function onDropCombo(evt) { - var item = evt.item; - if (!this.validationCombo(item)) - return; - this.updatePositions(evt); - var graph = this.graph; - if (this.comboActiveState) { - graph.setItemState(item, this.comboActiveState, false); - } - this.targetCombo = item; - if (this.onlyChangeComboSize) { - graph.updateCombos(); - } else { - var targetComboModel_1 = item.getModel(); - this.targets.map(function(node) { - var nodeModel = node.getModel(); - if (nodeModel.comboId !== targetComboModel_1.id) { - graph.updateComboTree(node, targetComboModel_1.id); - } - }); - graph.updateCombo(item); - } - graph.emit("dragnodeend", { - items: this.targets, - targetItem: this.targetCombo - }); - }, - onDropCanvas: function onDropCanvas(evt) { - var graph = this.graph; - if (!this.targets || this.targets.length === 0) - return; - this.updatePositions(evt); - if (this.onlyChangeComboSize) { - graph.updateCombos(); - } else { - this.targets.map(function(node) { - var model = node.getModel(); - if (model.comboId) { - graph.updateComboTree(node); - } - }); - } - }, - onDropNode: function onDropNode(evt) { - if (!this.targets || this.targets.length === 0) - return; - var self2 = this; - var item = evt.item; - this.updatePositions(evt); - var graph = self2.graph; - var comboId = item.getModel().comboId; - if (comboId) { - if (this.onlyChangeComboSize) { - graph.updateCombos(); - } else { - var combo = graph.findById(comboId); - if (self2.comboActiveState) { - graph.setItemState(combo, self2.comboActiveState, false); - } - this.targets.map(function(node) { - var nodeModel = node.getModel(); - if (comboId !== nodeModel.comboId) { - graph.updateComboTree(node, comboId); - } - }); - graph.updateCombo(combo); - } - } else { - this.targets.map(function(node) { - var model = node.getModel(); - if (model.comboId) { - graph.updateComboTree(node); - } - }); - } - graph.emit("dragnodeend", { - items: this.targets, - targetItem: item - }); - }, - onDragEnter: function onDragEnter(evt) { - var item = evt.item; - if (!this.validationCombo(item)) - return; - var graph = this.graph; - if (this.comboActiveState) { - graph.setItemState(item, this.comboActiveState, true); - } - }, - onDragLeave: function onDragLeave(evt) { - var item = evt.item; - if (!this.validationCombo(item)) - return; - var graph = this.graph; - if (this.comboActiveState) { - graph.setItemState(item, this.comboActiveState, false); - } - }, - updatePositions: function updatePositions(evt) { - var _this = this; - if (!this.targets || this.targets.length === 0) - return; - if (this.get("enableDelegate")) { - if (this.enableDebounce) - this.debounceUpdate({ - targets: this.targets, - graph: this.graph, - point: this.point, - origin: this.origin, - evt, - updateEdge: this.get("updateEdge"), - updateFunc: this.update - }); - else - this.targets.map(function(node) { - return _this.update(node, evt); - }); - } - }, - update: function update14(item, evt) { - var origin = this.origin; - var model = item.get("model"); - var nodeId = item.get("id"); - if (!this.point[nodeId]) { - this.point[nodeId] = { - x: model.x || 0, - y: model.y || 0 - }; - } - var x6 = evt.x - origin.x + this.point[nodeId].x; - var y5 = evt.y - origin.y + this.point[nodeId].y; - var pos = { - x: x6, - y: y5 - }; - if (this.get("updateEdge")) { - this.graph.updateItem(item, pos, false); - } else { - item.updatePosition(pos); - } - }, - debounceUpdate: debounce_default(function(event) { - var targets = event.targets, graph = event.graph, point2 = event.point, origin = event.origin, evt = event.evt, updateEdge = event.updateEdge, updateFunc = event.updateFunc; - targets.map(function(item) { - var model = item.get("model"); - var nodeId = item.get("id"); - if (!point2[nodeId]) { - point2[nodeId] = { - x: model.x || 0, - y: model.y || 0 - }; - } - var x6 = evt.x - origin.x + point2[nodeId].x; - var y5 = evt.y - origin.y + point2[nodeId].y; - var pos = { - x: x6, - y: y5 - }; - if (updateEdge) { - graph.updateItem(item, pos, false); - } else { - item.updatePosition(pos); - } - }); - }, 50, true), - updateDelegate: function updateDelegate(e4) { - var graph = this.graph; - if (!this.delegateRect) { - var parent_1 = graph.get("group"); - var attrs = deep_mix_default({}, global_default2.delegateStyle, this.delegateStyle); - var _a6 = this.calculationGroupPosition(e4), cx = _a6.x, cy = _a6.y, width2 = _a6.width, height = _a6.height, minX = _a6.minX, minY = _a6.minY; - this.originPoint = { - x: cx, - y: cy, - width: width2, - height, - minX, - minY - }; - this.delegateRect = parent_1.addShape("rect", { - attrs: __assign({ - width: width2, - height, - x: cx, - y: cy - }, attrs), - name: "rect-delegate-shape" - }); - this.delegate = this.delegateRect; - this.delegateRect.set("capture", false); - } else { - var clientX = e4.x - this.origin.x + this.originPoint.minX; - var clientY = e4.y - this.origin.y + this.originPoint.minY; - this.delegateRect.attr({ - x: clientX, - y: clientY - }); - } - }, - calculationGroupPosition: function calculationGroupPosition(evt) { - var nodes = this.targets; - if (nodes.length === 0) { - nodes.push(evt.item); - } - var minx = Infinity; - var maxx = -Infinity; - var miny = Infinity; - var maxy = -Infinity; - for (var i4 = 0; i4 < nodes.length; i4++) { - var element = nodes[i4]; - var bbox = element.getBBox(); - var minX = bbox.minX, minY = bbox.minY, maxX = bbox.maxX, maxY2 = bbox.maxY; - if (minX < minx) { - minx = minX; - } - if (minY < miny) { - miny = minY; - } - if (maxX > maxx) { - maxx = maxX; - } - if (maxY2 > maxy) { - maxy = maxY2; - } - } - var x6 = Math.floor(minx); - var y5 = Math.floor(miny); - var width2 = Math.ceil(maxx) - Math.floor(minx); - var height = Math.ceil(maxy) - Math.floor(miny); - return { - x: x6, - y: y5, - width: width2, - height, - minX: minx, - minY: miny - }; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/activate-relations.js -var activate_relations_default = { - getDefaultCfg: function getDefaultCfg4() { - return { - trigger: "mouseenter", - activeState: "active", - inactiveState: "inactive", - resetSelected: false, - shouldUpdate: function shouldUpdate3() { - return true; - } - }; - }, - getEvents: function getEvents4() { - if (this.get("trigger") === "mouseenter") { - return { - "node:mouseenter": "setAllItemStates", - "combo:mouseenter": "setAllItemStates", - "node:mouseleave": "clearActiveState", - "combo:mouseleave": "clearActiveState" - }; - } - return { - "node:click": "setAllItemStates", - "combo:click": "setAllItemStates", - "canvas:click": "clearAllItemStates" - }; - }, - setAllItemStates: function setAllItemStates(e4) { - var item = e4.item; - var graph = this.graph; - this.item = item; - if (!this.shouldUpdate(e4.item, { - event: e4, - action: "activate" - })) { - return; - } - var self2 = this; - var activeState = this.activeState; - var inactiveState = this.inactiveState; - var nodes = graph.getNodes(); - var combos = graph.getCombos(); - var edges = graph.getEdges(); - var vEdges = graph.get("vedges"); - var nodeLength = nodes.length; - var comboLength = combos.length; - var edgeLength = edges.length; - var vEdgeLength = vEdges.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - var hasSelected = node.hasState("selected"); - if (self2.resetSelected) { - if (hasSelected) { - graph.setItemState(node, "selected", false); - } - } - graph.setItemState(node, activeState, false); - if (inactiveState) { - graph.setItemState(node, inactiveState, true); - } - } - for (var i4 = 0; i4 < comboLength; i4++) { - var combo = combos[i4]; - var hasSelected = combo.hasState("selected"); - if (self2.resetSelected) { - if (hasSelected) { - graph.setItemState(combo, "selected", false); - } - } - graph.setItemState(combo, activeState, false); - if (inactiveState) { - graph.setItemState(combo, inactiveState, true); - } - } - for (var i4 = 0; i4 < edgeLength; i4++) { - var edge2 = edges[i4]; - graph.setItemState(edge2, activeState, false); - if (inactiveState) { - graph.setItemState(edge2, inactiveState, true); - } - } - for (var i4 = 0; i4 < vEdgeLength; i4++) { - var vEdge = vEdges[i4]; - graph.setItemState(vEdge, activeState, false); - if (inactiveState) { - graph.setItemState(vEdge, inactiveState, true); - } - } - if (inactiveState) { - graph.setItemState(item, inactiveState, false); - } - graph.setItemState(item, activeState, true); - var rEdges = item.getEdges(); - var rEdgeLegnth = rEdges.length; - for (var i4 = 0; i4 < rEdgeLegnth; i4++) { - var edge2 = rEdges[i4]; - var otherEnd = void 0; - if (edge2.getSource() === item) { - otherEnd = edge2.getTarget(); - } else { - otherEnd = edge2.getSource(); - } - if (inactiveState) { - graph.setItemState(otherEnd, inactiveState, false); - } - graph.setItemState(otherEnd, activeState, true); - graph.setItemState(edge2, inactiveState, false); - graph.setItemState(edge2, activeState, true); - edge2.toFront(); - } - graph.emit("afteractivaterelations", { - item: e4.item, - action: "activate" - }); - }, - clearActiveState: function clearActiveState(e4) { - var self2 = this; - var graph = self2.get("graph"); - if (!self2.shouldUpdate(e4.item, { - event: e4, - action: "deactivate" - })) { - return; - } - var activeState = this.activeState; - var inactiveState = this.inactiveState; - var autoPaint = graph.get("autoPaint"); - graph.setAutoPaint(false); - var nodes = graph.getNodes(); - var combos = graph.getCombos(); - var edges = graph.getEdges(); - var vEdges = graph.get("vedges"); - var nodeLength = nodes.length; - var comboLength = combos.length; - var edgeLength = edges.length; - var vEdgeLength = vEdges.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - graph.clearItemStates(node, [activeState, inactiveState]); - } - for (var i4 = 0; i4 < comboLength; i4++) { - var combo = combos[i4]; - graph.clearItemStates(combo, [activeState, inactiveState]); - } - for (var i4 = 0; i4 < edgeLength; i4++) { - var edge2 = edges[i4]; - graph.clearItemStates(edge2, [activeState, inactiveState, "deactivate"]); - } - for (var i4 = 0; i4 < vEdgeLength; i4++) { - var vEdge = vEdges[i4]; - graph.clearItemStates(vEdge, [activeState, inactiveState, "deactivate"]); - } - graph.paint(); - graph.setAutoPaint(autoPaint); - graph.emit("afteractivaterelations", { - item: e4.item || self2.get("item"), - action: "deactivate" - }); - }, - clearAllItemStates: function clearAllItemStates(e4) { - var self2 = this; - var graph = self2.graph; - if (!self2.shouldUpdate(e4.item, { - event: e4, - action: "deactivate" - })) { - return; - } - var activeState = this.activeState; - var inactiveState = this.inactiveState; - var nodes = graph.getNodes(); - var edges = graph.getEdges(); - var nodeLength = nodes.length; - var edgeLength = edges.length; - for (var i4 = 0; i4 < nodeLength; i4++) { - var node = nodes[i4]; - graph.clearItemStates(node, [activeState, inactiveState]); - } - for (var i4 = 0; i4 < edgeLength; i4++) { - var edge2 = edges[i4]; - graph.clearItemStates(edge2, [activeState, inactiveState, "deactivate"]); - } - graph.emit("afteractivaterelations", { - item: e4.item || self2.get("item"), - action: "deactivate" - }); - } -}; - -// node_modules/@antv/g6-pc/es/behavior/brush-select.js -var min6 = Math.min; -var max7 = Math.max; -var abs2 = Math.abs; -var DEFAULT_TRIGGER = "shift"; -var ALLOW_EVENTS2 = ["drag", "shift", "ctrl", "alt", "control"]; -var brush_select_default = { - getDefaultCfg: function getDefaultCfg5() { - return { - brushStyle: { - fill: "#EEF6FF", - fillOpacity: 0.4, - stroke: "#DDEEFE", - lineWidth: 1 - }, - onSelect: function onSelect() { - }, - onDeselect: function onDeselect() { - }, - selectedState: "selected", - trigger: DEFAULT_TRIGGER, - includeEdges: true, - selectedEdges: [], - selectedNodes: [] - }; - }, - getEvents: function getEvents5() { - if (!(ALLOW_EVENTS2.indexOf(this.trigger.toLowerCase()) > -1)) { - this.trigger = DEFAULT_TRIGGER; - console.warn("Behavior brush-select \u7684 trigger \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'drag'\u3001'shift'\u3001'ctrl' \u6216 'alt'"); - } - if (this.trigger === "drag") { - return { - dragstart: "onMouseDown", - drag: "onMouseMove", - dragend: "onMouseUp", - "canvas:click": "clearStates" - }; - } - return { - dragstart: "onMouseDown", - drag: "onMouseMove", - dragend: "onMouseUp", - "canvas:click": "clearStates", - keyup: "onKeyUp", - keydown: "onKeyDown" - }; - }, - onMouseDown: function onMouseDown2(e4) { - var item = e4.item; - var brush = this.brush; - if (item) { - return; - } - if (this.trigger !== "drag" && !this.keydown) { - return; - } - if (this.selectedNodes && this.selectedNodes.length !== 0) { - this.clearStates(); - } - if (!brush) { - brush = this.createBrush(); - } - this.originPoint = { - x: e4.canvasX, - y: e4.canvasY - }; - brush.attr({ - width: 0, - height: 0 - }); - brush.show(); - this.dragging = true; - }, - onMouseMove: function onMouseMove2(e4) { - if (!this.dragging) { - return; - } - if (this.trigger !== "drag" && !this.keydown) { - return; - } - this.updateBrush(e4); - }, - onMouseUp: function onMouseUp2(e4) { - var graph = this.graph; - if (!this.brush && !this.dragging) { - return; - } - if (this.trigger !== "drag" && !this.keydown) { - return; - } - this.brush.remove(true); - this.brush = null; - this.getSelectedNodes(e4); - this.dragging = false; - }, - clearStates: function clearStates() { - var _a6 = this, graph = _a6.graph, selectedState = _a6.selectedState; - var nodes = graph.findAllByState("node", selectedState); - var edges = graph.findAllByState("edge", selectedState); - nodes.forEach(function(node) { - return graph.setItemState(node, selectedState, false); - }); - edges.forEach(function(edge2) { - return graph.setItemState(edge2, selectedState, false); - }); - this.selectedNodes = []; - this.selectedEdges = []; - if (this.onDeselect) { - this.onDeselect(this.selectedNodes, this.selectedEdges); - } - graph.emit("nodeselectchange", { - selectedItems: { - nodes: [], - edges: [] - }, - select: false - }); - }, - getSelectedNodes: function getSelectedNodes(e4) { - var _this = this; - var _a6 = this, graph = _a6.graph, originPoint = _a6.originPoint, shouldUpdate3 = _a6.shouldUpdate; - var state2 = this.selectedState; - var p1 = { - x: e4.x, - y: e4.y - }; - var p22 = graph.getPointByCanvas(originPoint.x, originPoint.y); - var left2 = min6(p1.x, p22.x); - var right2 = max7(p1.x, p22.x); - var top = min6(p1.y, p22.y); - var bottom = max7(p1.y, p22.y); - var selectedNodes = []; - var selectedIds = []; - graph.getNodes().forEach(function(node) { - var bbox = node.getBBox(); - if (bbox.centerX >= left2 && bbox.centerX <= right2 && bbox.centerY >= top && bbox.centerY <= bottom) { - if (shouldUpdate3(node, "select")) { - selectedNodes.push(node); - var model = node.getModel(); - selectedIds.push(model.id); - graph.setItemState(node, state2, true); - } - } - }); - var selectedEdges = []; - if (this.includeEdges) { - selectedNodes.forEach(function(node) { - var edges = node.getOutEdges(); - edges.forEach(function(edge2) { - var model = edge2.getModel(); - var source = model.source, target = model.target; - if (selectedIds.includes(source) && selectedIds.includes(target) && shouldUpdate3(edge2, "select")) { - selectedEdges.push(edge2); - graph.setItemState(edge2, _this.selectedState, true); - } - }); - }); - } - this.selectedEdges = selectedEdges; - this.selectedNodes = selectedNodes; - if (this.onSelect) { - this.onSelect(selectedNodes, selectedEdges); - } - graph.emit("nodeselectchange", { - selectedItems: { - nodes: selectedNodes, - edges: selectedEdges - }, - select: true - }); - }, - createBrush: function createBrush() { - var self2 = this; - var brush = self2.graph.get("canvas").addShape("rect", { - attrs: self2.brushStyle, - capture: false, - name: "brush-shape" - }); - this.brush = brush; - this.delegate = brush; - return brush; - }, - updateBrush: function updateBrush(e4) { - var originPoint = this.originPoint; - this.brush.attr({ - width: abs2(e4.canvasX - originPoint.x), - height: abs2(e4.canvasY - originPoint.y), - x: min6(e4.canvasX, originPoint.x), - y: min6(e4.canvasY, originPoint.y) - }); - }, - onKeyDown: function onKeyDown2(e4) { - var code = e4.key; - if (!code) { - return; - } - var triggerLowerCase = this.trigger.toLowerCase(); - var codeLowerCase = code.toLowerCase(); - if (codeLowerCase === triggerLowerCase || codeLowerCase === "control" && triggerLowerCase === "ctrl" || codeLowerCase === "ctrl" && triggerLowerCase === "control") { - this.keydown = true; - } else { - this.keydown = false; - } - }, - onKeyUp: function onKeyUp2() { - if (this.brush) { - this.brush.remove(true); - this.brush = null; - this.dragging = false; - } - this.keydown = false; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/click-select.js -var DEFAULT_TRIGGER2 = "shift"; -var ALLOW_EVENTS3 = ["shift", "ctrl", "alt", "control"]; -var click_select_default = { - getDefaultCfg: function getDefaultCfg6() { - return { - multiple: true, - trigger: DEFAULT_TRIGGER2, - selectedState: "selected" - }; - }, - getEvents: function getEvents6() { - var self2 = this; - if (!(ALLOW_EVENTS3.indexOf(self2.trigger.toLowerCase()) > -1)) { - self2.trigger = DEFAULT_TRIGGER2; - console.warn("Behavior brush-select \u7684 trigger \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'drag'\u3001'shift'\u3001'ctrl' \u6216 'alt'"); - } - if (!self2.multiple) { - return { - "node:click": "onClick", - "combo:click": "onClick", - "canvas:click": "onCanvasClick" - }; - } - return { - "node:click": "onClick", - "combo:click": "onClick", - "canvas:click": "onCanvasClick", - keyup: "onKeyUp", - keydown: "onKeyDown" - }; - }, - onClick: function onClick(evt) { - var self2 = this; - var item = evt.item; - if (!item || item.destroyed) { - return; - } - var type2 = item.getType(); - var graph = self2.graph, keydown = self2.keydown, multiple = self2.multiple, shouldUpdate3 = self2.shouldUpdate, shouldBegin2 = self2.shouldBegin; - if (!shouldBegin2.call(self2, evt)) { - return; - } - if (!keydown || !multiple) { - var selected = graph.findAllByState(type2, self2.selectedState); - each_default(selected, function(combo) { - if (combo !== item) { - graph.setItemState(combo, self2.selectedState, false); - } - }); - } - if (item.hasState(self2.selectedState)) { - if (shouldUpdate3.call(self2, evt)) { - graph.setItemState(item, self2.selectedState, false); - } - var selectedNodes = graph.findAllByState("node", self2.selectedState); - var selectedCombos = graph.findAllByState("combo", self2.selectedState); - graph.emit("nodeselectchange", { - target: item, - selectedItems: { - nodes: selectedNodes, - combos: selectedCombos - }, - select: false - }); - } else { - if (shouldUpdate3.call(self2, evt)) { - graph.setItemState(item, self2.selectedState, true); - } - var selectedNodes = graph.findAllByState("node", self2.selectedState); - var selectedCombos = graph.findAllByState("combo", self2.selectedState); - graph.emit("nodeselectchange", { - target: item, - selectedItems: { - nodes: selectedNodes, - combos: selectedCombos - }, - select: true - }); - } - }, - onCanvasClick: function onCanvasClick() { - var _this = this; - var graph = this.graph; - var selected = graph.findAllByState("node", this.selectedState); - each_default(selected, function(node) { - graph.setItemState(node, _this.selectedState, false); - }); - var selectedCombos = graph.findAllByState("combo", this.selectedState); - each_default(selectedCombos, function(combo) { - graph.setItemState(combo, _this.selectedState, false); - }); - graph.emit("nodeselectchange", { - selectedItems: { - nodes: [], - edges: [], - combos: [] - }, - select: false - }); - }, - onKeyDown: function onKeyDown3(e4) { - var self2 = this; - var code = e4.key; - if (!code) { - return; - } - if (code.toLowerCase() === this.trigger.toLowerCase() || code.toLowerCase() === "control") { - self2.keydown = true; - } else { - self2.keydown = false; - } - }, - onKeyUp: function onKeyUp3() { - var self2 = this; - self2.keydown = false; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/zoom-canvas.js -var transform17 = ext_exports3.transform; -var DELTA4 = 0.05; -var zoom_canvas_default = { - getDefaultCfg: function getDefaultCfg7() { - return { - sensitivity: 2, - minZoom: void 0, - maxZoom: void 0, - enableOptimize: false, - optimizeZoom: 0.1, - fixSelectedItems: { - fixAll: false, - fixLineWidth: false, - fixLabel: false, - fixState: "selected" - } - }; - }, - getEvents: function getEvents7() { - var fixSelectedItems = this.fixSelectedItems; - if (!fixSelectedItems.fixState) - fixSelectedItems.fixState = "selected"; - if (fixSelectedItems.fixAll) { - fixSelectedItems.fixLineWidth = true; - fixSelectedItems.fixLabel = true; - } - return { - wheel: "onWheel", - touchstart: "onTouchStart", - touchmove: "onTouchMove", - touchend: "onTouchEnd" - }; - }, - onTouchStart: function onTouchStart2(evt) { - var touches = evt.originalEvent.touches; - var event1 = touches[0]; - var event2 = touches[1]; - evt.preventDefault(); - if (!event2) { - return; - } - if (this.shouldBegin && !this.shouldBegin.call(this, evt)) { - return; - } - this.startPoint = { - pageX: event1.pageX, - pageY: event1.pageY - }; - this.moveable = true; - if (event2) { - this.endPoint = { - pageX: event2.pageX, - pageY: event2.pageY - }; - } - this.originScale = this.graph.getZoom() || this.currentScale || 1; - }, - onTouchMove: function onTouchMove2(evt) { - if (!this.moveable) { - return; - } - evt.preventDefault(); - var touches = evt.originalEvent.touches; - var event1 = touches[0]; - var event2 = touches[1]; - if (!event2) { - return; - } - if (!this.endPoint) { - this.endPoint = { - pageX: event2.pageX, - pageY: event2.pageY - }; - } - var getDistance3 = function getDistance4(start, end2) { - return Math.hypot(end2.x - start.x, end2.y - start.y); - }; - var scale12 = getDistance3({ - x: event1.pageX, - y: event1.pageY - }, { - x: event2.pageX, - y: event2.pageY - }) / getDistance3({ - x: this.startPoint.pageX, - y: this.startPoint.pageY - }, { - x: this.endPoint.pageX, - y: this.endPoint.pageY - }); - var zoom2 = this.originScale * scale12; - this.currentScale = zoom2; - var minZoom = this.get("minZoom") || this.graph.get("minZoom"); - var maxZoom = this.get("maxZoom") || this.graph.get("maxZoom"); - if (zoom2 > maxZoom || zoom2 < minZoom) { - return; - } - var canvas = this.graph.get("canvas"); - var point2 = canvas.getPointByClient(evt.clientX, evt.clientY); - this.graph.zoomTo(zoom2, { - x: point2.x, - y: point2.y - }); - this.graph.emit("wheelzoom", evt); - }, - onTouchEnd: function onTouchEnd() { - this.moveable = false; - this.endPoint = null; - }, - onWheel: function onWheel(e4) { - var _this = this; - var _a6 = this, graph = _a6.graph, fixSelectedItems = _a6.fixSelectedItems; - if (this.shouldBegin && !this.shouldBegin.call(this, e4)) { - return; - } - if (!this.shouldUpdate.call(this, e4)) { - return; - } - e4.preventDefault(); - var canvas = graph.get("canvas"); - var point2 = canvas.getPointByClient(e4.clientX, e4.clientY); - var sensitivity = this.get("sensitivity"); - var graphZoom = graph.getZoom(); - var ratio = graphZoom; - var zoom2 = graphZoom; - if (e4.wheelDelta < 0) { - ratio = 1 - DELTA4 * sensitivity; - } else { - ratio = 1 / (1 - DELTA4 * sensitivity); - } - zoom2 = graphZoom * ratio; - var minZoom = this.get("minZoom") || graph.get("minZoom"); - var maxZoom = this.get("maxZoom") || graph.get("maxZoom"); - if (zoom2 > maxZoom || zoom2 < minZoom) { - return; - } - var enableOptimize = this.get("enableOptimize"); - if (enableOptimize) { - var optimizeZoom_1 = this.get("optimizeZoom"); - var optimized = this.get("optimized"); - var nodes_1 = graph.getNodes(); - var edges_1 = graph.getEdges(); - var nodesLength_1 = nodes_1.length; - var edgesLength_1 = edges_1.length; - if (!optimized) { - for (var n3 = 0; n3 < nodesLength_1; n3++) { - var node = nodes_1[n3]; - if (!node.destroyed) { - var children = node.get("group").get("children"); - var childrenLength = children.length; - for (var c5 = 0; c5 < childrenLength; c5++) { - var shape = children[c5]; - if (!shape.destoryed && !shape.get("isKeyShape")) { - shape.set("ori-visibility", shape.get("ori-visibility") || shape.get("visible")); - shape.hide(); - } - } - } - } - for (var edgeIndex = 0; edgeIndex < edgesLength_1; edgeIndex++) { - var edge2 = edges_1[edgeIndex]; - var children = edge2.get("group").get("children"); - var childrenLength = children.length; - for (var c5 = 0; c5 < childrenLength; c5++) { - var shape = children[c5]; - shape.set("ori-visibility", shape.get("ori-visibility") || shape.get("visible")); - shape.hide(); - } - } - this.set("optimized", true); - } - clearTimeout(this.get("timeout")); - var timeout2 = setTimeout(function() { - var currentZoom = graph.getZoom(); - var curOptimized = _this.get("optimized"); - if (curOptimized) { - _this.set("optimized", false); - for (var n4 = 0; n4 < nodesLength_1; n4++) { - var node2 = nodes_1[n4]; - var children2 = node2.get("group").get("children"); - var childrenLength2 = children2.length; - if (currentZoom < optimizeZoom_1) { - var keyShape = node2.getKeyShape(); - var oriVis = keyShape.get("ori-visibility"); - if (oriVis) - keyShape.show(); - } else { - for (var c6 = 0; c6 < childrenLength2; c6++) { - var shape2 = children2[c6]; - var oriVis = shape2.get("ori-visibility"); - if (!shape2.get("visible") && oriVis) { - if (oriVis) - shape2.show(); - } - } - } - } - for (var edgeIndex2 = 0; edgeIndex2 < edgesLength_1; edgeIndex2++) { - var edge3 = edges_1[edgeIndex2]; - var children2 = edge3.get("group").get("children"); - var childrenLength2 = children2.length; - if (currentZoom < optimizeZoom_1) { - var keyShape = edge3.getKeyShape(); - var oriVis = keyShape.get("ori-visibility"); - if (oriVis) - keyShape.show(); - } else { - for (var c6 = 0; c6 < childrenLength2; c6++) { - var shape2 = children2[c6]; - if (!shape2.get("visible")) { - var oriVis = shape2.get("ori-visibility"); - if (oriVis) - shape2.show(); - } - } - } - } - } - }, 100); - this.set("timeout", timeout2); - } - if (graphZoom <= 1) { - var fixNodes = void 0, fixEdges = void 0; - if (fixSelectedItems.fixAll || fixSelectedItems.fixLineWidth || fixSelectedItems.fixLabel) { - fixNodes = graph.findAllByState("node", fixSelectedItems.fixState); - fixEdges = graph.findAllByState("edge", fixSelectedItems.fixState); - var scale12 = graphZoom / zoom2; - var fixNodesLength = fixNodes.length; - for (var fn2 = 0; fn2 < fixNodesLength; fn2++) { - var node = fixNodes[fn2]; - var group2 = node.getContainer(); - var nodeModel = node.getModel(); - var originStyle = node.getOriginStyle(); - var itemStateStyle = node.getStateStyle(fixSelectedItems.fixState); - var shapeStateStyle = node.get("shapeFactory").getShape(nodeModel.type).getStateStyle(fixSelectedItems.fixState, node)[fixSelectedItems.fixState]; - if (fixSelectedItems.fixAll) { - if (zoom2 <= 1) { - var groupMatrix = clone_default(group2.getMatrix()); - if (!groupMatrix) - groupMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - var _b = node.getModel(), x6 = _b.x, y5 = _b.y; - groupMatrix = transform17(groupMatrix, [["t", -x6, -y5], ["s", scale12, scale12], ["t", x6, y5]]); - group2.setMatrix(groupMatrix); - } - } else { - var children = group2.get("children"); - var childrenLength = children.length; - for (var c5 = 0; c5 < childrenLength; c5++) { - var shape = children[c5]; - var fontSize = void 0, lineWidth = void 0; - if (fixSelectedItems.fixLabel) { - var shapeType = shape.get("type"); - if (shapeType === "text") { - fontSize = shape.attr("fontSize") || 12; - var itemStyle = itemStateStyle[shape.get("name")]; - var shapeStyle = shapeStateStyle[shape.get("name")]; - var itemFontSize = itemStyle ? itemStyle.fontSize : 12; - var shapeFontSize = shapeStyle ? shapeStyle.fontSize : 12; - var oriFontSize = itemFontSize || shapeFontSize || 12; - if (zoom2 <= 1) - shape.attr("fontSize", oriFontSize / zoom2); - if (lineWidth) - break; - } - } - if (fixSelectedItems.fixLineWidth) { - if (shape.get("isKeyShape")) { - lineWidth = shape.attr("lineWidth") || 0; - var oriLineWidth = itemStateStyle.lineWidth || shapeStateStyle.lineWidth || originStyle.lineWidth || 0; - if (zoom2 <= 1) - shape.attr("lineWidth", oriLineWidth / zoom2); - if (fontSize) - break; - } - } - } - } - } - var fixEdgesLength = fixEdges.length; - for (var fe = 0; fe < fixEdgesLength; fe++) { - var edge2 = fixEdges[fe]; - var group2 = edge2.getContainer(); - var children = group2.get("children"); - var nodeModel = edge2.getModel(); - var itemStateStyle = edge2.getStateStyle(fixSelectedItems.fixState); - var shapeStateStyle = edge2.get("shapeFactory").getShape(nodeModel.type).getStateStyle(fixSelectedItems.fixState, edge2)[fixSelectedItems.fixState]; - var childrenLength = children.length; - for (var c5 = 0; c5 < childrenLength; c5++) { - var shape = children[c5]; - var fontSize = void 0, lineWidth = void 0; - if (fixSelectedItems.fixLabel || fixSelectedItems.fixAll) { - var shapeType = shape.get("type"); - if (shapeType === "text") { - fontSize = shape.attr("fontSize") || 12; - var itemStyle = itemStateStyle[shape.get("name")]; - var shapeStyle = shapeStateStyle[shape.get("name")]; - var itemFontSize = itemStyle ? itemStyle.fontSize : 12; - var shapeFontSize = shapeStyle ? shapeStyle.fontSize : 12; - var oriFontSize = itemFontSize || shapeFontSize || 12; - if (zoom2 <= 1) - shape.attr("fontSize", oriFontSize / zoom2); - if (lineWidth) - break; - } - } - if (fixSelectedItems.fixLineWidth || fixSelectedItems.fixAll) { - if (shape.get("isKeyShape")) { - lineWidth = shape.attr("lineWidth") || 0; - var oriLineWidth = itemStateStyle.lineWidth || shapeStateStyle.lineWidth || 1; - if (zoom2 <= 1) - shape.attr("lineWidth", oriLineWidth / zoom2); - if (fontSize) - break; - } - } - } - } - } - } - graph.zoomTo(zoom2, { - x: point2.x, - y: point2.y - }); - graph.emit("wheelzoom", e4); - } -}; - -// node_modules/@antv/g6-pc/es/behavior/tooltip-base.js -var tooltip_base_default = { - onMouseEnter: function onMouseEnter(e4) { - var item = e4.item; - this.currentTarget = item; - this.showTooltip(e4); - this.graph.emit("tooltipchange", { - item: e4.item, - action: "show" - }); - }, - onMouseMove: function onMouseMove3(e4) { - if (!this.shouldUpdate(e4)) { - this.hideTooltip(); - return; - } - if (!this.currentTarget || e4.item !== this.currentTarget) { - return; - } - this.updatePosition(e4); - }, - onMouseLeave: function onMouseLeave(e4) { - if (!this.shouldEnd(e4)) { - return; - } - this.hideTooltip(); - this.graph.emit("tooltipchange", { - item: this.currentTarget, - action: "hide" - }); - this.currentTarget = null; - }, - showTooltip: function showTooltip(e4) { - var container2 = this.container; - if (!e4.item || e4.item.destroyed) { - return; - } - if (!container2) { - container2 = this.createTooltip(this.graph.get("canvas")); - this.container = container2; - } - var text = this.formatText(e4.item.get("model"), e4); - container2.innerHTML = text; - modifyCSS(this.container, { - visibility: "visible" - }); - this.updatePosition(e4); - }, - hideTooltip: function hideTooltip() { - modifyCSS(this.container, { - visibility: "hidden" - }); - }, - updatePosition: function updatePosition(e4) { - var shouldBegin2 = this.get("shouldBegin"); - var _a6 = this, width2 = _a6.width, height = _a6.height, container2 = _a6.container, graph = _a6.graph; - if (!shouldBegin2(e4)) { - modifyCSS(container2, { - visibility: "hidden" - }); - return; - } - var point2 = graph.getPointByClient(e4.clientX, e4.clientY); - var _b = graph.getCanvasByPoint(point2.x, point2.y), x6 = _b.x, y5 = _b.y; - var bbox = container2.getBoundingClientRect(); - if (x6 > width2 / 2) { - x6 -= bbox.width; - } else { - x6 += this.offset; - } - if (y5 > height / 2) { - y5 -= bbox.height; - } else { - y5 += this.offset; - } - var left2 = x6 + "px"; - var top = y5 + "px"; - modifyCSS(this.container, { - left: left2, - top, - visibility: "visible" - }); - }, - createTooltip: function createTooltip(canvas) { - var el = canvas.get("el"); - el.style.position = "relative"; - var container2 = createDom('
    '); - el.parentNode.appendChild(container2); - modifyCSS(container2, { - position: "absolute", - visibility: "visible" - }); - this.width = canvas.get("width"); - this.height = canvas.get("height"); - this.container = container2; - this.graph.get("tooltips").push(container2); - return container2; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/tooltip.js -var tooltip_default3 = __assign({ - getDefaultCfg: function getDefaultCfg8() { - return { - item: "node", - offset: 12, - formatText: function formatText(model) { - return model.label; - } - }; - }, - getEvents: function getEvents8() { - return { - "node:mouseenter": "onMouseEnter", - "node:mouseleave": "onMouseLeave", - "node:mousemove": "onMouseMove", - afterremoveitem: "onMouseLeave" - }; - } -}, tooltip_base_default); - -// node_modules/@antv/g6-pc/es/behavior/edge-tooltip.js -var edge_tooltip_default = __assign({ - getDefaultCfg: function getDefaultCfg9() { - return { - item: "edge", - offset: 12, - formatText: function formatText(model) { - return "source: " + model.source + " target: " + model.target; - } - }; - }, - getEvents: function getEvents9() { - return { - "edge:mouseenter": "onMouseEnter", - "edge:mouseleave": "onMouseLeave", - "edge:mousemove": "onMouseMove", - afterremoveitem: "onMouseLeave" - }; - } -}, tooltip_base_default); - -// node_modules/@antv/g6-pc/es/behavior/collapse-expand.js -var DEFAULT_TRIGGER3 = "click"; -var ALLOW_EVENTS4 = ["click", "dblclick"]; -var collapse_expand_default = { - getDefaultCfg: function getDefaultCfg10() { - return { - trigger: DEFAULT_TRIGGER3, - onChange: function onChange() { - } - }; - }, - getEvents: function getEvents10() { - var _a6; - var trigger; - if (ALLOW_EVENTS4.includes(this.trigger)) { - trigger = this.trigger; - } else { - trigger = DEFAULT_TRIGGER3; - console.warn("Behavior collapse-expand \u7684 trigger \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'click' \u6216 'dblclick'"); - } - return _a6 = {}, _a6["node:" + trigger] = "onNodeClick", _a6.touchstart = "onNodeClick", _a6; - }, - onNodeClick: function onNodeClick(e4) { - var item = e4.item; - if (!item) - return; - var sourceData = this.graph.findDataById(item.get("id")); - if (!sourceData) { - return; - } - var children = sourceData.children; - if (!children || children.length === 0) { - return; - } - var collapsed = !sourceData.collapsed; - if (!this.shouldBegin(e4, collapsed)) { - return; - } - sourceData.collapsed = collapsed; - item.getModel().collapsed = collapsed; - this.graph.emit("itemcollapsed", { - item: e4.item, - collapsed - }); - if (!this.shouldUpdate(e4, collapsed)) { - return; - } - this.onChange(item, collapsed); - this.graph.layout(); - } -}; - -// node_modules/@antv/g6-pc/es/behavior/drag-combo.js -var calculationItemsBBox3 = util_default3.calculationItemsBBox; -var traverseCombo = function traverseCombo2(data3, fn2) { - if (fn2(data3) === false) { - return; - } - if (data3) { - var combos = data3.get("combos"); - if (combos.length === 0) { - return false; - } - each_default(combos, function(child) { - traverseCombo2(child, fn2); - }); - } -}; -var drag_combo_default = { - getDefaultCfg: function getDefaultCfg11() { - return { - enableDelegate: false, - delegateStyle: {}, - onlyChangeComboSize: false, - activeState: "", - selectedState: "selected" - }; - }, - getEvents: function getEvents11() { - return { - "combo:dragstart": "onDragStart", - "combo:drag": "onDrag", - "combo:dragend": "onDragEnd", - "combo:drop": "onDrop", - "node:drop": "onNodeDrop", - "combo:dragenter": "onDragEnter", - "combo:dragleave": "onDragLeave" - }; - }, - validationCombo: function validationCombo2(evt) { - var item = evt.item; - if (!item || item.destroyed) { - return false; - } - if (!this.shouldUpdate(this, evt)) { - return false; - } - var type2 = item.getType(); - if (type2 !== "combo") { - return false; - } - return true; - }, - onDragStart: function onDragStart2(evt) { - var _this = this; - var graph = this.graph; - var item = evt.item; - if (!this.validationCombo(evt)) - return; - this.targets = []; - var combos = graph.findAllByState("combo", this.selectedState); - var currentCombo = item.get("id"); - var dragCombos = combos.filter(function(combo) { - var comboId = combo.get("id"); - return currentCombo === comboId; - }); - if (dragCombos.length === 0) { - this.targets.push(item); - } else { - this.targets = combos; - } - if (this.activeState) { - this.targets.map(function(combo) { - var model = combo.getModel(); - if (model.parentId) { - var parentCombo = graph.findById(model.parentId); - if (parentCombo) { - graph.setItemState(parentCombo, _this.activeState, true); - } - } - }); - } - this.point = {}; - this.originPoint = {}; - this.origin = { - x: evt.x, - y: evt.y - }; - this.currentItemChildCombos = []; - traverseCombo(item, function(param) { - if (param.destroyed) { - return false; - } - var model = param.getModel(); - _this.currentItemChildCombos.push(model.id); - return true; - }); - }, - onDrag: function onDrag2(evt) { - var _this = this; - if (!this.origin) { - return; - } - if (!this.validationCombo(evt)) - return; - if (this.enableDelegate) { - this.updateDelegate(evt); - } else { - if (this.activeState) { - var graph_1 = this.graph; - var item = evt.item; - var model_1 = item.getModel(); - var combos = graph_1.getCombos(); - var sourceBBox = item.getBBox(); - var centerX_1 = sourceBBox.centerX, centerY_1 = sourceBBox.centerY, width_1 = sourceBBox.width; - var calcCombos = combos.filter(function(combo) { - var cmodel = combo.getModel(); - if (!model_1.parentId) { - return cmodel.id !== model_1.id && !_this.currentItemChildCombos.includes(cmodel.id); - } - return cmodel.id !== model_1.id && !_this.currentItemChildCombos.includes(cmodel.id); - }); - calcCombos.map(function(combo) { - var _a6 = combo.getBBox(), cx = _a6.centerX, cy = _a6.centerY, w4 = _a6.width; - var disX = centerX_1 - cx; - var disY = centerY_1 - cy; - var distance15 = 2 * Math.sqrt(disX * disX + disY * disY); - if (width_1 + w4 - distance15 > 0.8 * width_1) { - graph_1.setItemState(combo, _this.activeState, true); - } else { - graph_1.setItemState(combo, _this.activeState, false); - } - }); - } - each_default(this.targets, function(item2) { - _this.updateCombo(item2, evt); - }); - } - }, - updatePositions: function updatePositions2(evt) { - var _this = this; - if (this.enableDelegate) { - each_default(this.targets, function(item) { - _this.updateCombo(item, evt); - }); - } - }, - onDrop: function onDrop(evt) { - var _this = this; - var item = evt.item; - if (!item || !this.targets || item.destroyed) { - return; - } - this.updatePositions(evt); - var graph = this.graph; - var targetModel = item.getModel(); - this.targets.map(function(combo) { - var model = combo.getModel(); - if (model.parentId !== targetModel.id) { - if (_this.activeState) { - graph.setItemState(item, _this.activeState, false); - } - if (!_this.onlyChangeComboSize) { - graph.updateComboTree(combo, targetModel.id); - } else { - graph.updateCombo(combo); - } - } else { - graph.updateCombo(item); - } - }); - this.end(item, evt); - this.endComparison = true; - }, - onNodeDrop: function onNodeDrop(evt) { - var _this = this; - if (!this.targets || this.targets.length === 0) - return; - this.updatePositions(evt); - var graph = this.graph; - var item = evt.item; - var comboId = item.getModel().comboId; - var droppedCombo; - if (comboId) { - if (this.activeState) { - var combo = graph.findById(comboId); - graph.setItemState(combo, this.activeState, false); - } - this.targets.map(function(combo2) { - if (!_this.onlyChangeComboSize) { - if (comboId !== combo2.getID()) { - droppedCombo = graph.findById(comboId); - if (comboId !== combo2.getModel().parentId) - graph.updateComboTree(combo2, comboId); - } - } else { - graph.updateCombo(combo2); - } - }); - } else { - this.targets.map(function(combo2) { - if (!_this.onlyChangeComboSize) { - var model = combo2.getModel(); - if (model.comboId) { - graph.updateComboTree(combo2); - } - } else { - graph.updateCombo(combo2); - } - }); - } - this.endComparison = true; - this.end(droppedCombo, evt); - }, - onDragEnter: function onDragEnter2(evt) { - if (!this.origin) { - return; - } - if (!this.validationCombo(evt)) - return; - var item = evt.item; - var graph = this.graph; - if (this.activeState) { - graph.setItemState(item, this.activeState, true); - } - }, - onDragLeave: function onDragLeave2(evt) { - if (!this.origin) { - return; - } - if (!this.validationCombo(evt)) - return; - var item = evt.item; - var graph = this.graph; - if (this.activeState) { - graph.setItemState(item, this.activeState, false); - } - }, - onDragEnd: function onDragEnd2(evt) { - if (!this.targets || this.targets.length === 0) - return; - var item = evt.item; - this.updatePositions(evt); - var parentCombo = this.getParentCombo(item.getModel().parentId); - var graph = this.graph; - if (parentCombo && this.activeState) { - graph.setItemState(parentCombo, this.activeState, false); - } - this.end(void 0, evt); - }, - end: function end(comboDropedOn, evt) { - var _this = this; - if (!this.origin) - return; - var graph = this.graph; - if (this.delegateShape) { - var delegateGroup = graph.get("delegateGroup"); - delegateGroup.clear(); - this.delegateShape = null; - } - if (comboDropedOn && this.activeState) { - graph.setItemState(comboDropedOn, this.activeState, false); - } - if (!comboDropedOn) { - this.targets.map(function(combo) { - if (!_this.onlyChangeComboSize) { - graph.updateComboTree(combo); - } else { - graph.updateCombo(combo); - } - }); - } - this.point = []; - this.origin = null; - this.originPoint = null; - this.targets.length = 0; - }, - traverse: function traverse3(data3, fn2) { - var _this = this; - if (fn2(data3) === false) { - return; - } - if (data3) { - var combos = data3.get("combos"); - each_default(combos, function(child) { - _this.traverse(child, fn2); - }); - var nodes = data3.get("nodes"); - each_default(nodes, function(child) { - _this.traverse(child, fn2); - }); - } - }, - updateCombo: function updateCombo(item, evt) { - var _this = this; - this.traverse(item, function(param) { - if (param.destroyed) { - return false; - } - _this.updateSignleItem(param, evt); - return true; - }); - }, - updateSignleItem: function updateSignleItem(item, evt) { - var origin = this.origin; - var graph = this.graph; - var model = item.getModel(); - var itemId = item.get("id"); - if (!this.point[itemId]) { - this.point[itemId] = { - x: model.x, - y: model.y - }; - } - var x6 = evt.x - origin.x + this.point[itemId].x; - var y5 = evt.y - origin.y + this.point[itemId].y; - graph.updateItem(item, { - x: x6, - y: y5 - }); - }, - getParentCombo: function getParentCombo(parentId) { - var graph = this.graph; - if (!parentId) { - return void 0; - } - var parentCombo = graph.findById(parentId); - if (!parentCombo) { - return void 0; - } - return parentCombo; - }, - updateDelegate: function updateDelegate2(evt) { - var graph = this.graph; - if (!this.delegateShape) { - var delegateGroup = graph.get("delegateGroup"); - var bbox = null; - if (this.targets.length > 1) { - bbox = calculationItemsBBox3(this.targets); - } else { - bbox = this.targets[0].getBBox(); - } - var x6 = bbox.x, y5 = bbox.y, width2 = bbox.width, height = bbox.height, minX = bbox.minX, minY = bbox.minY; - this.originPoint = { - x: x6, - y: y5, - width: width2, - height, - minX, - minY - }; - var attrs = __assign(__assign({}, global_default2.delegateStyle), this.delegateStyle); - this.delegateShape = delegateGroup.addShape("rect", { - attrs: __assign({ - width: bbox.width, - height: bbox.height, - x: bbox.x, - y: bbox.y - }, attrs), - name: "combo-delegate-shape" - }); - this.delegate = this.delegateShape; - } else { - var clientX = evt.x - this.origin.x + this.originPoint.minX; - var clientY = evt.y - this.origin.y + this.originPoint.minY; - this.delegateShape.attr({ - x: clientX, - y: clientY - }); - } - } -}; - -// node_modules/@antv/g6-pc/es/behavior/collapse-expand-combo.js -var DEFAULT_TRIGGER4 = "dblclick"; -var ALLOW_EVENTS5 = ["click", "dblclick"]; -var collapse_expand_combo_default = { - getDefaultCfg: function getDefaultCfg12() { - return { - trigger: DEFAULT_TRIGGER4, - relayout: true - }; - }, - getEvents: function getEvents12() { - var _a6; - var trigger; - if (ALLOW_EVENTS5.includes(this.trigger)) { - trigger = this.trigger; - } else { - trigger = DEFAULT_TRIGGER4; - console.warn("Behavior collapse-expand-group \u7684 trigger \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'click' \u6216 'dblclick'"); - } - return _a6 = {}, _a6["combo:" + trigger] = "onComboClick", _a6; - }, - onComboClick: function onComboClick(evt) { - var item = evt.item; - var _a6 = this, graph = _a6.graph, relayout = _a6.relayout; - if (!item || item.destroyed || item.getType() !== "combo") - return; - var model = item.getModel(); - var comboId = model.id; - if (!comboId) { - return; - } - graph.collapseExpandCombo(comboId); - if (relayout && graph.get("layout")) - graph.layout(); - else - graph.refreshPositions(); - } -}; - -// node_modules/@antv/g6-pc/es/behavior/lasso-select.js -var isPolygonsIntersect4 = util_default3.isPolygonsIntersect; -var pathToPoints4 = util_default3.pathToPoints; -var DEFAULT_TRIGGER5 = "shift"; -var ALLOW_EVENTS6 = ["drag", "shift", "ctrl", "alt", "control"]; -var isItemIntersecPolygon = function isItemIntersecPolygon2(item, polyPoints) { - var shapePoints; - var shape = item.getKeyShape(); - if (item.get("type") === "path") { - shapePoints = pathToPoints4(shape.attr("path")); - } else { - var shapeBBox = shape.getCanvasBBox(); - shapePoints = [[shapeBBox.minX, shapeBBox.minY], [shapeBBox.maxX, shapeBBox.minY], [shapeBBox.maxX, shapeBBox.maxY], [shapeBBox.minX, shapeBBox.maxY]]; - } - return isPolygonsIntersect4(polyPoints, shapePoints); -}; -var lasso_select_default = { - getDefaultCfg: function getDefaultCfg13() { - return { - delegateStyle: { - fill: "#EEF6FF", - fillOpacity: 0.4, - stroke: "#DDEEFE", - lineWidth: 1 - }, - onSelect: function onSelect() { - }, - onDeselect: function onDeselect() { - }, - selectedState: "selected", - trigger: DEFAULT_TRIGGER5, - includeEdges: true, - selectedEdges: [], - selectedNodes: [] - }; - }, - getEvents: function getEvents13() { - if (!(ALLOW_EVENTS6.indexOf(this.trigger.toLowerCase()) > -1)) { - this.trigger = DEFAULT_TRIGGER5; - console.warn("Behavior lasso-select \u7684 trigger \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'drag'\u3001'shift'\u3001'ctrl' \u6216 'alt'"); - } - if (this.trigger === "drag") { - return { - dragstart: "onDragStart", - drag: "onDragMove", - dragend: "onDragEnd", - "canvas:click": "clearStates" - }; - } - return { - dragstart: "onDragStart", - drag: "onDragMove", - dragend: "onDragEnd", - keyup: "onKeyUp", - keydown: "onKeyDown", - "canvas:click": "clearStates" - }; - }, - onDragStart: function onDragStart3(e4) { - var lasso = this.lasso; - var item = e4.item; - if (item) { - return; - } - if (this.trigger !== "drag" && !this.keydown) { - return; - } - if (this.selectedNodes && this.selectedNodes.length !== 0) { - this.clearStates(); - } - if (!lasso) { - lasso = this.createLasso(); - } - this.dragging = true; - this.originPoint = { - x: e4.x, - y: e4.y - }; - this.points.push(this.originPoint); - lasso.show(); - }, - onDragMove: function onDragMove(e4) { - if (!this.dragging) { - return; - } - if (this.trigger !== "drag" && !this.keydown) { - return; - } - this.points.push({ - x: e4.x, - y: e4.y - }); - this.updateLasso(e4); - }, - onDragEnd: function onDragEnd3(e4) { - if (!this.lasso && !this.dragging) { - return; - } - if (this.trigger !== "drag" && !this.keydown) { - return; - } - this.points.push(this.originPoint); - this.getSelectedItems(); - this.lasso.remove(true); - this.lasso = null; - this.points = []; - this.dragging = false; - }, - getLassoPath: function getLassoPath() { - var points = this.points; - var path = []; - if (points.length) { - points.forEach(function(point2, index2) { - if (index2 === 0) { - path.push(["M", point2.x, point2.y]); - } else { - path.push(["L", point2.x, point2.y]); - } - }); - path.push(["L", points[0].x, points[0].y]); - } - return path; - }, - clearStates: function clearStates2() { - var _a6 = this, graph = _a6.graph, selectedState = _a6.selectedState; - var nodes = graph.findAllByState("node", selectedState); - var edges = graph.findAllByState("edge", selectedState); - nodes.forEach(function(node) { - return graph.setItemState(node, selectedState, false); - }); - edges.forEach(function(edge2) { - return graph.setItemState(edge2, selectedState, false); - }); - if (this.onDeselect) { - this.onDeselect(this.selectedNodes, this.selectedEdges); - } - this.selectedNodes = []; - this.selectedEdges = []; - graph.emit("nodeselectchange", { - selectedItems: { - nodes: [], - edges: [] - }, - select: false - }); - }, - getSelectedItems: function getSelectedItems() { - var _this = this; - var _a6 = this, graph = _a6.graph, shouldUpdate3 = _a6.shouldUpdate; - var lassoContour = this.points.map(function(point2) { - return [graph.getCanvasByPoint(point2.x, point2.y).x, graph.getCanvasByPoint(point2.x, point2.y).y]; - }); - var state2 = this.selectedState; - var selectedNodes = []; - var selectedIds = []; - graph.getNodes().forEach(function(node) { - if (isItemIntersecPolygon(node, lassoContour)) { - if (shouldUpdate3(node, "select")) { - selectedNodes.push(node); - var model = node.getModel(); - selectedIds.push(model.id); - graph.setItemState(node, state2, true); - } - } - }); - var selectedEdges = []; - if (this.includeEdges) { - selectedNodes.forEach(function(node) { - var edges = node.getOutEdges(); - edges.forEach(function(edge2) { - var model = edge2.getModel(); - var source = model.source, target = model.target; - if (selectedIds.includes(source) && selectedIds.includes(target) && shouldUpdate3(edge2, "select")) { - selectedEdges.push(edge2); - graph.setItemState(edge2, _this.selectedState, true); - } - }); - }); - } - this.selectedEdges = selectedEdges; - this.selectedNodes = selectedNodes; - if (this.onSelect) { - this.onSelect(selectedNodes, selectedEdges); - } - graph.emit("nodeselectchange", { - selectedItems: { - nodes: selectedNodes, - edges: selectedEdges - }, - select: true - }); - }, - createLasso: function createLasso() { - var self2 = this; - var lasso = self2.graph.get("delegateGroup").addShape("path", { - attrs: __assign({ - path: [] - }, self2.delegateStyle), - capture: false, - name: "lasso-shape" - }); - this.lasso = lasso; - this.delegate = lasso; - this.points = []; - return lasso; - }, - updateLasso: function updateLasso(e4) { - var self2 = this; - this.lasso.attr({ - path: self2.getLassoPath() - }); - }, - onKeyDown: function onKeyDown4(e4) { - var code = e4.key; - if (!code) { - return; - } - if (code.toLowerCase() === this.trigger.toLowerCase()) { - this.keydown = true; - } else { - this.keydown = false; - } - }, - onKeyUp: function onKeyUp4() { - if (this.lasso) { - this.lasso.remove(true); - this.lasso = null; - this.points = []; - this.dragging = false; - } - this.keydown = false; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/create-edge.js -var DEFAULT_TRIGGER6 = "click"; -var ALLOW_EVENTS7 = ["click", "drag"]; -var DEFAULT_KEY = void 0; -var ALLOW_KEYS = ["shift", "ctrl", "control", "alt", "meta", void 0]; -var create_edge_default = { - getDefaultCfg: function getDefaultCfg14() { - return { - trigger: DEFAULT_TRIGGER6, - key: DEFAULT_KEY, - edgeConfig: {}, - getEdgeConfig: void 0 - }; - }, - getEvents: function getEvents14() { - var self2 = this; - if (!(ALLOW_EVENTS7.indexOf(self2.trigger.toLowerCase()) > -1)) { - self2.trigger = DEFAULT_TRIGGER6; - console.warn("Behavior create-edge \u7684 trigger \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'click'\uFF0C'drag'"); - } - if (self2.key && ALLOW_KEYS.indexOf(self2.key.toLowerCase()) === -1) { - self2.trigger = DEFAULT_KEY; - console.warn("Behavior create-edge \u7684 key \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'shift'\uFF0C'ctrl'\uFF0C'alt'\uFF0C'control'\uFF0C\u6216 undefined"); - } - var events; - if (self2.trigger === "drag") { - events = { - "node:dragstart": "onClick", - "combo:dragstart": "onClick", - drag: "updateEndPoint", - "node:drop": "onClick", - "combo:drop": "onClick", - dragend: "onDragEnd" - }; - } else if (self2.trigger === "click") { - events = { - "node:click": "onClick", - mousemove: "updateEndPoint", - "edge:click": "cancelCreating", - "canvas:click": "cancelCreating", - "combo:click": "onClick" - }; - } - if (self2.key) { - events.keydown = "onKeyDown"; - events.keyup = "onKeyUp"; - } - return events; - }, - onDragEnd: function onDragEnd4(ev) { - var self2 = this; - if (self2.key && !self2.keydown) - return; - var item = ev.item; - if (!item || item.getID() === self2.source || item.getType() !== "node") - self2.cancelCreating({ - item: self2.edge, - x: ev.x, - y: ev.y - }); - }, - onClick: function onClick2(ev) { - var self2 = this; - if (self2.key && !self2.keydown) - return; - var node = ev.item; - var graph = self2.graph; - var model = node.getModel(); - var getEdgeConfig = self2.getEdgeConfig; - if (self2.addingEdge && self2.edge) { - if (!self2.shouldEnd.call(self2, ev)) - return; - var edgeConfig = void 0; - if (getEdgeConfig && is_function_default(getEdgeConfig)) { - edgeConfig = getEdgeConfig({ - source: self2.source, - target: model.id - }); - } else { - edgeConfig = self2.edgeConfig; - } - var updateCfg2 = __assign({ - target: model.id - }, edgeConfig); - if (self2.source === model.id) { - updateCfg2.type = "loop"; - } - graph.emit("beforecreateedge", {}); - graph.updateItem(self2.edge, updateCfg2, false); - if (graph.get("enabledStack")) { - var addedModel = __assign(__assign({}, self2.edge.getModel()), { - itemType: "edge" - }); - var after = {}; - after.edges = [addedModel]; - graph.pushStack("add", { - before: {}, - after - }); - } - graph.emit("aftercreateedge", { - edge: self2.edge - }); - self2.edge.getKeyShape().set("capture", true); - self2.edge = null; - self2.addingEdge = false; - } else { - if (!self2.shouldBegin.call(self2, ev)) - return; - var edgeConfig = void 0; - if (getEdgeConfig && is_function_default(getEdgeConfig)) { - edgeConfig = getEdgeConfig({ - source: model.id, - target: model.id - }); - } else { - edgeConfig = self2.edgeConfig; - } - self2.edge = graph.addItem("edge", __assign({ - source: model.id, - target: model.id - }, edgeConfig), false); - self2.source = model.id; - self2.addingEdge = true; - self2.edge.getKeyShape().set("capture", false); - } - }, - updateEndPoint: function updateEndPoint(ev) { - var self2 = this; - if (self2.key && !self2.keydown) - return; - var point2 = { - x: ev.x, - y: ev.y - }; - if (!self2.graph.findById(self2.source)) { - self2.addingEdge = false; - return; - } - if (self2.addingEdge && self2.edge) { - self2.graph.updateItem(self2.edge, { - target: point2 - }, false); - } - }, - cancelCreating: function cancelCreating(ev) { - var self2 = this; - if (self2.key && !self2.keydown) - return; - var graph = self2.graph; - var currentEdge = ev.item; - if (self2.addingEdge && ev.target && ev.target.isCanvas && ev.target.isCanvas()) { - graph.removeItem(self2.edge, false); - self2.edge = null; - self2.addingEdge = false; - return; - } - if (self2.addingEdge && self2.edge === currentEdge) { - graph.removeItem(self2.edge, false); - self2.edge = null; - self2.addingEdge = false; - } - }, - onKeyDown: function onKeyDown5(e4) { - var self2 = this; - var code = e4.key; - if (!code) { - return; - } - if (code.toLowerCase() === self2.key.toLowerCase()) { - self2.keydown = true; - } else { - self2.keydown = false; - } - }, - onKeyUp: function onKeyUp5() { - var self2 = this; - if (self2.addingEdge && self2.edge) { - self2.graph.removeItem(self2.edge, false); - self2.addingEdge = false; - self2.edge = null; - } - this.keydown = false; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/shortcuts-call.js -var DEFAULT_TRIGGER7 = "ctrl"; -var ALLOW_EVENTS8 = ["shift", "ctrl", "alt", "control"]; -var DEFAULT_COMBINED_KEY = "1"; -var shortcuts_call_default = { - getDefaultCfg: function getDefaultCfg15() { - return { - trigger: DEFAULT_TRIGGER7, - combinedKey: DEFAULT_COMBINED_KEY, - functionName: "fitView", - functionParams: [] - }; - }, - getEvents: function getEvents15() { - if (!(ALLOW_EVENTS8.indexOf(this.trigger.toLowerCase()) > -1)) { - this.trigger = DEFAULT_TRIGGER7; - console.warn("Behavior shortcuts-fit-view \u7684 trigger \u53C2\u6570 '" + this.trigger + "' \u4E0D\u5408\u6CD5\uFF0C\u8BF7\u8F93\u5165 'drag'\u3001'shift'\u3001'ctrl' \u6216 'alt'"); - } - if (this.combinedKey === this.trigger) { - this.combinedKey = void 0; - } - return { - keyup: "onKeyUp", - keydown: "onKeyDown" - }; - }, - onKeyDown: function onKeyDown6(e4) { - var code = e4.key; - if (!code) { - return; - } - var triggerLowerCase = this.trigger.toLowerCase(); - var codeLowerCase = code.toLowerCase(); - if (!this.triggerKeydown) { - if (codeLowerCase === triggerLowerCase || codeLowerCase === "control" && triggerLowerCase === "ctrl" || codeLowerCase === "ctrl" && triggerLowerCase === "control") { - this.triggerKeydown = true; - } else { - this.triggerKeydown = false; - } - } - var graph = this.graph; - if (!graph[this.functionName]) { - console.warn("Behavior shortcuts-fit-view \u7684 functionName \u53C2\u6570 '" + this.functionName + "' \u4E0D\u5408\u6CD5\uFF0C\u5B83\u4E0D\u662F Graph \u7684\u4E00\u4E2A\u51FD\u6570\u540D"); - return {}; - } - if (this.triggerKeydown && !this.combinedKey) { - if (this.functionParams && this.functionParams.length) - graph[this.functionName].apply(graph, this.functionParams); - else - graph[this.functionName](); - return; - } - var combinedKeyLowerCase = this.combinedKey.toLowerCase(); - if (this.triggerKeydown) { - if (codeLowerCase === combinedKeyLowerCase || codeLowerCase === "control" && combinedKeyLowerCase === "ctrl" || codeLowerCase === "ctrl" && combinedKeyLowerCase === "control") { - if (this.functionParams && this.functionParams.length) - graph[this.functionName].apply(graph, this.functionParams); - else - graph[this.functionName](); - } - } - }, - onKeyUp: function onKeyUp6() { - if (this.brush) { - this.brush.remove(true); - this.brush = null; - this.dragging = false; - } - this.triggerKeydown = false; - } -}; - -// node_modules/@antv/g6-pc/es/behavior/index.js -var behaviors = { - "drag-canvas": drag_canvas_default, - "zoom-canvas": zoom_canvas_default, - "drag-node": drag_node_default, - "activate-relations": activate_relations_default, - "brush-select": brush_select_default, - "click-select": click_select_default, - "lasso-select": lasso_select_default, - tooltip: tooltip_default3, - "edge-tooltip": edge_tooltip_default, - "collapse-expand": collapse_expand_default, - "drag-combo": drag_combo_default, - "collapse-expand-combo": collapse_expand_combo_default, - "create-edge": create_edge_default, - "shortcuts-call": shortcuts_call_default -}; -each_default(behaviors, function(behavior, type2) { - registerBehavior(type2, behavior); -}); - -// node_modules/@antv/g6-pc/es/index.js -var Minimap = plugin_default.Minimap; -var Grid4 = plugin_default.Grid; -var Bundling2 = plugin_default.Bundling; -var Menu2 = plugin_default.Menu; -var Fisheye2 = plugin_default.Fisheye; -var ToolBar2 = plugin_default.ToolBar; -var Tooltip4 = plugin_default.Tooltip; -var TimeBar2 = plugin_default.TimeBar; -var ImageMinimap = plugin_default.ImageMinimap; -var EdgeFilterLens2 = plugin_default.EdgeFilterLens; -var es_default4 = { - version: global_default2.version, - Graph: graph_default2, - TreeGraph: tree_graph_default, - Util: util_default3, - Layout: Layouts, - registerLayout: registerLayout2, - Global: global_default2, - registerBehavior, - registerCombo, - registerEdge, - registerNode, - Minimap: plugin_default.Minimap, - Grid: plugin_default.Grid, - Bundling: plugin_default.Bundling, - Menu: plugin_default.Menu, - ToolBar: plugin_default.ToolBar, - Tooltip: plugin_default.Tooltip, - TimeBar: TimeBar2, - Fisheye: Fisheye2, - ImageMinimap, - EdgeFilterLens: EdgeFilterLens2, - Algorithm: es_exports, - Arrow: arrow_default2, - Marker: marker_default3, - Shape: element_default3 -}; - -// node_modules/@antv/g6/es/index.js -es_default4.version = "4.2.4"; -var es_default5 = es_default4; - -// node_modules/@ant-design/charts/es/graphs/constants.js -var defaultStateStyles = { - hover: { - stroke: "#1890ff", - lineWidth: 2 - } -}; -var defaultNodeSize = [120, 40]; -var defaultNodeStyle = { - stroke: "#40a9ff" -}; -var defaultFlowGraphAnchorPoints = [ - [0, 0.5], - [1, 0.5] -]; -var defaultLabelStyle = { - fill: "#000", - fontSize: 12 -}; -var defaultMinimapCfg = { - show: false, - size: [150, 100], - type: "keyShape" -}; -var defaultCardStyle = { - fill: "#fff", - stroke: "#40a9ff", - radius: 2 -}; -var defaultMargin = 6; -var prefix = "g"; - -// node_modules/@ant-design/charts/es/graphs/utils.js -var __assign16 = function() { - __assign16 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign16.apply(this, arguments); -}; -var __awaiter6 = function(thisArg, _arguments, P4, generator) { - function adopt(value2) { - return value2 instanceof P4 ? value2 : new P4(function(resolve) { - resolve(value2); - }); - } - return new (P4 || (P4 = Promise))(function(resolve, reject) { - function fulfilled(value2) { - try { - step(generator.next(value2)); - } catch (e4) { - reject(e4); - } - } - function rejected(value2) { - try { - step(generator["throw"](value2)); - } catch (e4) { - reject(e4); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator4 = function(thisArg, body) { - var _8 = { label: 0, sent: function() { - if (t4[0] & 1) - throw t4[1]; - return t4[1]; - }, trys: [], ops: [] }, f3, y5, t4, g4; - return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { - return this; - }), g4; - function verb(n3) { - return function(v3) { - return step([n3, v3]); - }; - } - function step(op) { - if (f3) - throw new TypeError("Generator is already executing."); - while (_8) - try { - if (f3 = 1, y5 && (t4 = op[0] & 2 ? y5["return"] : op[0] ? y5["throw"] || ((t4 = y5["return"]) && t4.call(y5), 0) : y5.next) && !(t4 = t4.call(y5, op[1])).done) - return t4; - if (y5 = 0, t4) - op = [op[0] & 2, t4.value]; - switch (op[0]) { - case 0: - case 1: - t4 = op; - break; - case 4: - _8.label++; - return { value: op[1], done: false }; - case 5: - _8.label++; - y5 = op[1]; - op = [0]; - continue; - case 7: - op = _8.ops.pop(); - _8.trys.pop(); - continue; - default: - if (!(t4 = _8.trys, t4 = t4.length > 0 && t4[t4.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _8 = 0; - continue; - } - if (op[0] === 3 && (!t4 || op[1] > t4[0] && op[1] < t4[3])) { - _8.label = op[1]; - break; - } - if (op[0] === 6 && _8.label < t4[1]) { - _8.label = t4[1]; - t4 = op; - break; - } - if (t4 && _8.label < t4[2]) { - _8.label = t4[2]; - _8.ops.push(op); - break; - } - if (t4[2]) - _8.ops.pop(); - _8.trys.pop(); - continue; - } - op = body.call(thisArg, _8); - } catch (e4) { - op = [6, e4]; - y5 = 0; - } finally { - f3 = t4 = 0; - } - if (op[0] & 5) - throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var getGraphSize = function(width2, height, container2) { - var CANVAS_WIDTH; - var CANVAS_HEIGHT; - if (container2 && container2.current) { - CANVAS_WIDTH = container2.current.offsetWidth; - CANVAS_HEIGHT = container2.current.offsetHeight || 500; - } - if (!width2 && !CANVAS_WIDTH || !height && !CANVAS_HEIGHT) { - console.warn("\u8BF7\u4E3A Graph \u6307\u5B9A width \u4E0E height\uFF01\u5426\u5219\u5C06\u4F7F\u7528\u9ED8\u8BA4\u503C 500 * 500"); - return [500, 500]; - } - return [width2 || CANVAS_WIDTH || 500, height || CANVAS_HEIGHT || 500]; -}; -var EventData = function() { - function EventData2(data3) { - data3 && this.setData(data3); - } - EventData2.prototype.getData = function() { - return this.data; - }; - EventData2.prototype.setData = function(data3) { - this.data = data3; - }; - return EventData2; -}(); -var bindDefaultEvents = function(graph, level, getChildren) { - var onClick3 = function(e4) { - return __awaiter6(void 0, void 0, void 0, function() { - var item, _a6, collapsed, g_currentPath_1, _b, children, g_parentId_1, g_level_1, id_1, appendChildren, appendChildrenData, currentData; - var _c; - return __generator4(this, function(_d) { - switch (_d.label) { - case 0: - item = e4.item; - if (!(e4.target.get("name") === "collapse-icon")) - return [3, 3]; - _a6 = item.getModel(), collapsed = _a6.collapsed, g_currentPath_1 = _a6.g_currentPath, _b = _a6.children, children = _b === void 0 ? [] : _b, g_parentId_1 = _a6.g_parentId, g_level_1 = _a6.g_level, id_1 = _a6.id; - appendChildren = level && !children.length && getChildrenData(graph.get("eventData").getData(), g_currentPath_1); - if (!(getChildren && !((_c = children) === null || _c === void 0 ? void 0 : _c.length) && !(appendChildren === null || appendChildren === void 0 ? void 0 : appendChildren.length))) - return [3, 2]; - createLoading(); - return [4, getChildren(item.getModel())]; - case 1: - appendChildrenData = _d.sent(); - if (appendChildrenData) { - appendChildrenData = appendChildrenData.map(function(t4, index2) { - var _a7; - return __assign16((_a7 = {}, _a7[prefix + "_level"] = g_level_1 + 1, _a7[prefix + "_parentId"] = g_parentId_1 + "-" + id_1, _a7[prefix + "_currentPath"] = g_currentPath_1 + "-" + index2, _a7), t4); - }); - setLevelData(graph, appendChildrenData, g_currentPath_1); - } - appendChildren = appendChildrenData; - closeLoading(); - _d.label = 2; - case 2: - if ((appendChildren === null || appendChildren === void 0 ? void 0 : appendChildren.length) > 0) { - currentData = setParentChildren(graph.get("data"), g_currentPath_1, appendChildren); - graph.changeData(currentData); - if (graph.get("fitCenter")) { - graph.fitCenter(); - } - } else { - graph.updateItem(item, { - collapsed: !collapsed - }); - graph.layout(); - } - _d.label = 3; - case 3: - return [2]; - } - }); - }); - }; - graph.on("node:click", function(e4) { - onClick3(e4); - }); - graph.on("node:touchstart", function(e4) { - onClick3(e4); - }); -}; -var renderGraph = function(graph, data3, level) { - var originData = deepClone(data3); - var tagData = originData; - if (level) { - tagData = setTag4(data3); - originData = getLevelData(tagData, level); - } - graph.data(originData); - graph.set("eventData", new EventData(tagData)); - graph.render(); - graph.get("canvas").set("localRefresh", false); -}; -var grapgMinmapMaps = {}; -var processMinimap = function(cfg, graph) { - if (cfg === void 0) { - cfg = {}; - } - var graphId = graph === null || graph === void 0 ? void 0 : graph.get("id"); - if (!graph || graph.destroyed) { - grapgMinmapMaps[graphId] = null; - return; - } - if ((!cfg || !cfg.show) && grapgMinmapMaps[graphId]) { - var pluginMinimap = graph.get("plugins")[0]; - if (pluginMinimap) { - graph.removePlugin(pluginMinimap); - } - grapgMinmapMaps[graphId] = null; - } - if (cfg.show && !grapgMinmapMaps[graphId]) { - var curMminimapCfg = Object.assign(defaultMinimapCfg, cfg); - var minimap = new es_default5.Minimap(__assign16(__assign16({}, curMminimapCfg), { id: graphId })); - graph.addPlugin(minimap); - grapgMinmapMaps[graphId] = minimap; - return minimap; - } - return null; -}; -var getUuid = function() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c5) { - var r4 = Math.random() * 16 | 0; - var v3 = c5 == "x" ? r4 : r4 & 3 | 8; - return v3.toString(16); - }); -}; -var getGraphId = function(graph) { - if (graph.current) { - return graph.current; - } - graph.current = "graph-" + getUuid(); - return graph.current; -}; -var getMarkerPosition = function(direction5, size2) { - if (direction5 === void 0) { - direction5 = "right"; - } - var width2 = size2[0], height = size2[1]; - var x6 = 0; - var y5 = 0; - switch (direction5) { - case "top": - x6 = width2 / 2; - y5 = 0; - break; - case "right": - x6 = width2; - y5 = height / 2; - break; - case "bottom": - x6 = width2 / 2; - y5 = height; - break; - case "left": - x6 = 0; - y5 = height / 2; - break; - } - return { x: x6, y: y5 }; -}; -var bindSourceMapCollapseEvents = function(graph) { - var onClick3 = function(e4) { - var _a6; - var controlData = graph.get("eventData").getData(); - if (e4.target.get("name") === "collapse-icon") { - var item = e4.item; - var collapsed = item.getModel().collapsed; - if (!isType3(collapsed, "Boolean")) { - collapsed = (_a6 = item._cfg.group.getChildren().find(function(item2) { - return item2.get("name") === "main-box"; - })) === null || _a6 === void 0 ? void 0 : _a6.attr("defaultCollapsed"); - } - var marker = e4.item._cfg.group.getChildren().find(function(item2) { - return item2.cfg.type === "marker"; - }); - var _b = (controlData !== null && controlData !== void 0 ? controlData : {}).edges, fullEdges_1 = _b === void 0 ? [] : _b; - var nodeId = item.getModel().id; - var targetNodeIds_1 = []; - var updateItems_1 = []; - var updateIds_1 = []; - var getLinkedId_1 = function(currentId) { - fullEdges_1.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - if (source === currentId) { - targetNodeIds_1.push(target); - getLinkedId_1(target); - } - }); - }; - getLinkedId_1(nodeId); - if (!collapsed) { - graph.findAll("node", function(node) { - return targetNodeIds_1.includes(node.get("id")); - }).forEach(function(node) { - return graph.hideItem(node); - }); - controlData.nodes.forEach(function(node) { - var _a7 = node.collapsedLevel, collapsedLevel = _a7 === void 0 ? 0 : _a7, id = node.id; - if (targetNodeIds_1.includes(id)) { - node.collapsedLevel = collapsedLevel + 1; - } - }); - } else { - graph.findAll("node", function(node) { - var collapsedLevel = controlData.nodes.find(function(item2) { - return item2.id === node.get("id"); - }).collapsedLevel; - return targetNodeIds_1.includes(node.get("id")) && (!collapsedLevel || collapsedLevel < 2); - }).forEach(function(node) { - return graph.showItem(node); - }); - controlData.nodes.forEach(function(node) { - var _a7 = node.collapsedLevel, collapsedLevel = _a7 === void 0 ? 0 : _a7, id = node.id; - if (targetNodeIds_1.includes(id)) { - node.collapsedLevel = collapsedLevel - 1; - } - }); - } - fullEdges_1.forEach(function(edge2) { - var source = edge2.source, target = edge2.target; - if (targetNodeIds_1.includes(target)) { - updateIds_1.push(source); - } - }); - updateIds_1 = Array.from(new Set(updateIds_1)); - updateIds_1.forEach(function(id) { - updateItems_1.push(graph.find("node", function(node) { - return node.get("id") === id; - })); - }); - updateItems_1.forEach(function(nodeItem) { - graph.updateItem(nodeItem, { - collapsed: !nodeItem.getModel().collapsed - }); - graph.refreshItem(nodeItem); - }); - } - }; - graph.on("node:click", function(e4) { - onClick3(e4); - }); - graph.on("node:touchstart", function(e4) { - onClick3(e4); - }); -}; -var getCssPadding = function(padding3) { - if (typeof padding3 === "number") { - return [padding3, padding3, padding3, padding3]; - } - var result = []; - switch (padding3.length) { - case 1: - result = [padding3[0], padding3[0], padding3[0], padding3[0]]; - break; - case 2: - result = [padding3[0], padding3[1], padding3[0], padding3[1]]; - break; - case 3: - result = [padding3[0], padding3[1], padding3[2], padding3[1]]; - break; - case 4: - result = padding3; - break; - default: - break; - } - return result; -}; -var getArrowCfg = function(arrowCfg, edge2) { - if (!arrowCfg) { - return; - } - if (typeof arrowCfg === "object" && (arrowCfg === null || arrowCfg === void 0 ? void 0 : arrowCfg.show) === false) { - return; - } - var cfg = typeof arrowCfg === "function" ? arrowCfg(edge2) : arrowCfg; - var _a6 = cfg.type, type2 = _a6 === void 0 ? "vee" : _a6, _b = cfg.d, d3 = _b === void 0 ? 0 : _b, _c = cfg.size, size2 = _c === void 0 ? 10 : _c; - return __assign16({ path: es_default5.Arrow[type2](size2, size2, d3), fill: "#ccc", d: d3 }, cfg); -}; -var bindStateEvents = function(graph, cfg) { - var _a6 = cfg !== null && cfg !== void 0 ? cfg : {}, _b = _a6.nodeCfg, nodeCfg = _b === void 0 ? {} : _b, _c = _a6.edgeCfg, edgeCfg = _c === void 0 ? {} : _c; - var nodeStateStyles = nodeCfg.nodeStateStyles; - var edgeStateStyles = edgeCfg.edgeStateStyles; - var statusCache = {}; - var updateArrowFill = function(item, endArrowFill, stratArrowFill) { - graph.updateItem(item, { - style: { - endArrow: !!endArrowFill && { - fill: endArrowFill - }, - startArrow: !!stratArrowFill && { - fill: stratArrowFill - } - } - }); - }; - var setState4 = function(item, name, status) { - var _a7, _b2, _c2; - status ? item.toFront() : item.toBack(); - var _d = (_a7 = item.getModel().style) !== null && _a7 !== void 0 ? _a7 : {}, endArrow = _d.endArrow, startArrow = _d.startArrow; - if (endArrow || startArrow) { - if (!statusCache[item.getID()]) { - var endArrowFill = (endArrow !== null && endArrow !== void 0 ? endArrow : {}).fill; - var startArrowFill = (startArrow !== null && startArrow !== void 0 ? startArrow : {}).fill; - var hoverStatus = (_c2 = (_b2 = item.getModel().style) === null || _b2 === void 0 ? void 0 : _b2[name]) === null || _c2 === void 0 ? void 0 : _c2.stroke; - statusCache[item.getID()] = [ - [hoverStatus !== null && hoverStatus !== void 0 ? hoverStatus : endArrowFill, endArrowFill], - [hoverStatus !== null && hoverStatus !== void 0 ? hoverStatus : startArrowFill, startArrowFill] - ]; - } - var fill = statusCache[item.getID()]; - updateArrowFill(item, endArrow && fill[0][status ? 0 : 1], startArrow && fill[1][status ? 0 : 1]); - } - graph.setItemState(item, name, status); - }; - var getRelationItems = function(currentItem, name, status, type2) { - var relationItems = type2 === "node" ? graph.findAll("edge", function(edge2) { - return edge2.getSource() === currentItem || edge2.getTarget() === currentItem; - }) : graph.findAll("node", function(node) { - return currentItem.getSource().get("id") === node.get("id") || currentItem.getTarget().get("id") === node.get("id"); - }); - var highlightItems = [currentItem].concat(relationItems); - highlightItems.forEach(function(item) { - setState4(item, name, status); - }); - }; - if (nodeStateStyles) { - graph.on("node:mouseenter", function(evt) { - var item = evt.item; - getRelationItems(item, "hover", true, "node"); - }); - graph.on("node:mouseleave", function(evt) { - var item = evt.item; - getRelationItems(item, "hover", false, "node"); - }); - } - if (edgeStateStyles) { - graph.on("edge:mouseenter", function(evt) { - var item = evt.item; - getRelationItems(item, "hover", true, "edge"); - }); - graph.on("edge:mouseleave", function(evt) { - var item = evt.item; - getRelationItems(item, "hover", false, "edge"); - }); - } -}; -var getStyle3 = function(source, cfg, item, current) { - if (typeof source === "function") { - return source(cfg, item, current); - } - return source || {}; -}; -var getCommonConfig = function(cfg, item, graph) { - if (typeof cfg === "function") { - return cfg(item, graph); - } - return cfg; -}; -var getSize4 = function(size2) { - if (Array.isArray(size2)) { - return size2; - } - return size2 ? [size2, size2] : defaultNodeSize; -}; -var DefaultStatusBarWidth = 4; -var getStatusBBox = function(cfg) { - if (!cfg) { - return [0, 0, 0, 0]; - } - var _a6 = cfg.size, size2 = _a6 === void 0 ? [] : _a6, _b = cfg.position, position2 = _b === void 0 ? "left" : _b; - var _c = getSize4(size2), width2 = _c[0], height = _c[1]; - var appendPadding = []; - switch (position2) { - case "top": - appendPadding.push(height !== null && height !== void 0 ? height : DefaultStatusBarWidth, 0, 0, 0); - break; - case "right": - appendPadding.push(0, width2 !== null && width2 !== void 0 ? width2 : DefaultStatusBarWidth, 0, 0); - break; - case "bottom": - appendPadding.push(0, 0, height !== null && height !== void 0 ? height : DefaultStatusBarWidth, 0); - break; - case "left": - appendPadding.push(0, 0, 0, width2 !== null && width2 !== void 0 ? width2 : DefaultStatusBarWidth); - break; - } - return appendPadding; -}; -var getStatusCfg = function(cfg, cardSize) { - var _a6 = cfg !== null && cfg !== void 0 ? cfg : {}, _b = _a6.size, size2 = _b === void 0 ? [] : _b, _c = _a6.position, position2 = _c === void 0 ? "left" : _c; - var _d = getSize4(size2), width2 = _d[0], height = _d[1]; - var cardWidth = cardSize[0], cardHeight = cardSize[1]; - var x6 = 0; - var y5 = 0; - var w4 = 0; - var h3 = 0; - switch (position2) { - case "top": - x6 = 0; - y5 = 0; - w4 = width2 !== null && width2 !== void 0 ? width2 : cardWidth; - h3 = height !== null && height !== void 0 ? height : DefaultStatusBarWidth; - break; - case "left": - x6 = 0; - y5 = 0; - w4 = width2 !== null && width2 !== void 0 ? width2 : DefaultStatusBarWidth; - h3 = height !== null && height !== void 0 ? height : cardHeight; - break; - case "right": - x6 = cardWidth - (is_number_default(width2) ? width2 : DefaultStatusBarWidth); - y5 = 0; - w4 = width2 !== null && width2 !== void 0 ? width2 : DefaultStatusBarWidth; - h3 = height !== null && height !== void 0 ? height : cardHeight; - break; - case "bottom": - x6 = 0; - y5 = cardHeight - (is_number_default(height) ? height : DefaultStatusBarWidth); - w4 = width2 !== null && width2 !== void 0 ? width2 : cardWidth; - h3 = height !== null && height !== void 0 ? height : DefaultStatusBarWidth; - break; - } - return { - x: x6, - y: y5, - width: w4, - height: h3 - }; -}; -var createMarker = function(cfg, group2, size2) { - var show = cfg.show, position2 = cfg.position, collapsed = cfg.collapsed, style = cfg.style; - if (show) { - group2.addShape("marker", { - attrs: __assign16(__assign16(__assign16({}, getMarkerPosition(position2, size2)), { r: 6, cursor: "pointer", symbol: collapsed ? es_default5.Marker.expand : es_default5.Marker.collapse, stroke: defaultCardStyle.stroke, lineWidth: 1, fill: "#fff" }), style), - defaultCollapsed: false, - name: "collapse-icon" - }); - } -}; -var cloneBesidesImg3 = function(obj) { - var clonedObj = {}; - Object.keys(obj).forEach(function(key1) { - var obj2 = obj[key1]; - if (is_object_default(obj2)) { - var clonedObj2_1 = {}; - Object.keys(obj2).forEach(function(key2) { - var v3 = obj2[key2]; - if (key2 === "img" && !is_string_default(v3)) - return; - clonedObj2_1[key2] = clone_default(v3); - }); - clonedObj[key1] = clonedObj2_1; - } else { - clonedObj[key1] = clone_default(obj2); - } - }); - return clonedObj; -}; -var setStyles = function(container2, style) { - if (style === void 0) { - style = {}; - } - var keys2 = Object.keys(style); - keys2.forEach(function(key) { - container2.style[key] = style[key]; - }); -}; -var setTag4 = function(data3, level, parentId, path) { - var _a6; - if (level === void 0) { - level = 0; - } - if (parentId === void 0) { - parentId = ""; - } - if (path === void 0) { - path = ""; - } - var id = data3.id, _b = data3.children, children = _b === void 0 ? [] : _b; - return __assign16(__assign16((_a6 = {}, _a6[prefix + "_level"] = level, _a6[prefix + "_parentId"] = parentId, _a6[prefix + "_currentPath"] = path, _a6), data3), { children: children === null || children === void 0 ? void 0 : children.map(function(item, index2) { - return setTag4(item, level + 1, parentId ? parentId + "-" + id : id, path + "-" + index2); - }) }); -}; -var getLevelData = function(data3, level) { - var _a6 = data3.children, children = _a6 === void 0 ? [] : _a6, _b = data3.g_level, g_level = _b === void 0 ? 0 : _b; - if (level <= 0) { - return data3; - } - return __assign16(__assign16({}, data3), { children: g_level + 1 < level ? children === null || children === void 0 ? void 0 : children.map(function(item) { - return getLevelData(item, level); - }) : [] }); -}; -var setLevelData = function(graph, data3, currentPath) { - var currentData = graph.get("eventData").getData(); - var path = currentPath.split("-"); - path.shift(); - var current = currentData; - path.forEach(function(childrenIndex) { - current = current.children[Number(childrenIndex)]; - }); - current.children = data3; -}; -var getChildrenData = function(data3, currentPath) { - var path = currentPath.split("-"); - path.shift(); - var current = data3; - path.forEach(function(childrenIndex) { - current = current.children[Number(childrenIndex)]; - }); - if (!(current === null || current === void 0 ? void 0 : current.children)) { - return []; - } - return current.children.map(function(item) { - return __assign16(__assign16({}, item), { children: [] }); - }); -}; -var setParentChildren = function(parendData, currentPath, children) { - var path = currentPath.split("-"); - path.shift(); - var current = parendData; - path.forEach(function(childrenIndex) { - current = current.children[Number(childrenIndex)]; - }); - current.children = children; - return parendData; -}; -var useEllipsis = function(text, fontSize, contentWidth) { - if (fontSize === void 0) { - fontSize = 12; - } - if (contentWidth === void 0) { - contentWidth = 120; - } - var size2 = is_number_default(fontSize) ? fontSize : Number(fontSize.replace("px", "")); - var maxWords = Math.floor(contentWidth / size2); - if (text.length <= maxWords) { - return text; - } - return text.slice(0, maxWords - 1) + "..."; -}; -var createLoading = function() { - var container2 = document.createElement("div"); - container2.className = prefix + "-antd-loading"; - var styles = { - position: "fixed", - left: "0", - top: "0", - width: "100vw", - height: "100vh", - display: "flex", - alignItems: "center", - justifyContent: "center", - background: "rgba(0,0,0, 0.25)", - color: "#fff", - fontSize: "16px", - zIndex: 999 - }; - var span = document.createElement("span"); - span.innerText = "loading..."; - setStyles(container2, styles); - container2.appendChild(span); - document.body.appendChild(container2); -}; -var closeLoading = function() { - var hideContainer = document.getElementsByClassName(prefix + "-antd-loading"); - Array.from(hideContainer).forEach(function(el) { - document.body.removeChild(el); - }); -}; - -// node_modules/@ant-design/charts/es/obsolescent/hooks/useGraph.js -var __assign17 = function() { - __assign17 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign17.apply(this, arguments); -}; -function useGraph(graphInstance, config, container2) { - var graphHook = s3(); - var data3 = config.data, width2 = config.width, height = config.height, layout6 = config.layout, minimapCfg = config.minimapCfg, behaviors2 = config.behaviors, fitCenter = config.fitCenter, nodeCfg = config.nodeCfg, edgeCfg = config.edgeCfg, markerCfg = config.markerCfg, level = config.level; - var graphOptions = s3(); - var graphData = s3(); - var setEdgesState = function(edges) { - edges.forEach(function(edge2) { - var _a6, _b; - var _c = edge2.getModel(), source = _c.source, target = _c.target; - var sourceVisible = (_a6 = graphInstance === null || graphInstance === void 0 ? void 0 : graphInstance.findById(source)) === null || _a6 === void 0 ? void 0 : _a6.get("visible"); - var targetVisible = (_b = graphInstance === null || graphInstance === void 0 ? void 0 : graphInstance.findById(target)) === null || _b === void 0 ? void 0 : _b.get("visible"); - if (sourceVisible === false || targetVisible === false) { - edge2.changeVisibility(false); - } - }); - }; - var changeData = function() { - var _a6; - if (!graphInstance) { - return; - } - var currentData = data3; - if (level) { - currentData = setTag4(data3); - } - graphInstance.changeData(level ? getLevelData(currentData, level) : data3); - (_a6 = graphInstance.get("eventData")) === null || _a6 === void 0 ? void 0 : _a6.setData(currentData); - setEdgesState(graphInstance.getEdges()); - if (fitCenter) { - graphInstance.fitCenter(); - } - }; - var updateLayout = function() { - graphInstance === null || graphInstance === void 0 ? void 0 : graphInstance.updateLayout(layout6); - if (fitCenter) { - graphInstance === null || graphInstance === void 0 ? void 0 : graphInstance.fitCenter(); - } - }; - var updateNodes = function() { - if (!graphInstance) { - return; - } - var _a6 = nodeCfg !== null && nodeCfg !== void 0 ? nodeCfg : {}, nodeType = _a6.type, nodeAnchorPoints = _a6.anchorPoints, nodeStyle = _a6.style, nodeLabelCfg = _a6.title; - graphInstance.getNodes().forEach(function(node) { - graphInstance.updateItem(node, { - nodeCfg, - markerCfg, - type: nodeType, - style: nodeStyle, - anchorPoints: nodeAnchorPoints, - labelCfg: nodeLabelCfg - }); - }); - }; - var updateEdges = function() { - if (!graphInstance) { - return; - } - var _a6 = edgeCfg !== null && edgeCfg !== void 0 ? edgeCfg : {}, edgeType = _a6.type, edgeStyle = _a6.style, startArrowCfg = _a6.startArrow, endArrowCfg = _a6.endArrow, labelCfg = _a6.label; - graphInstance.getEdges().forEach(function(edge2) { - if (edgeType === "fund-line") { - graphInstance.updateItem(edge2, { - edgeCfg - }); - } else { - var edgeCfgModel = edge2.getModel(); - var startArrow = getArrowCfg(startArrowCfg, edgeCfgModel); - var endArrow = getArrowCfg(endArrowCfg, edgeCfgModel); - var _a7 = labelCfg !== null && labelCfg !== void 0 ? labelCfg : {}, style = _a7.style, content = _a7.content; - graphInstance.updateItem(edge2, { - type: edgeType, - label: getCommonConfig(content, edgeCfgModel, graphInstance), - labelCfg: { - style: getCommonConfig(style, edgeCfgModel, graphInstance) - }, - style: __assign17({ stroke: "#ccc", startArrow, endArrow }, typeof edgeStyle === "function" ? edgeStyle(edgeCfgModel, graphInstance) : edgeStyle) - }); - } - }); - }; - var updateMarker = function() { - if (!graphInstance) { - return; - } - graphInstance.getNodes().forEach(function(node) { - var _a6 = (typeof markerCfg === "function" ? markerCfg(node.getModel(), node.get("group")) : markerCfg).position, position2 = _a6 === void 0 ? "right" : _a6; - var _b = node.getBBox(), width3 = _b.width, height2 = _b.height; - var markerShape = node.get("group").get("children").find(function(item) { - return item.get("name") === "collapse-icon"; - }); - if (markerShape) { - markerShape === null || markerShape === void 0 ? void 0 : markerShape.attr(__assign17({}, getMarkerPosition(position2, [width3, height2]))); - } - }); - }; - y2(function() { - if (graphInstance && !graphInstance.destroyed) { - if (is_equal_default(data3, graphData.current)) { - return; - } - graphData.current = deepClone(data3); - changeData(); - } - }, [data3]); - y2(function() { - var _a6, _b, _c, _d, _e; - if (graphInstance && !graphInstance.destroyed) { - if (is_equal_default(config, graphOptions.current)) { - return; - } - if (!is_equal_default(layout6, (_a6 = graphOptions.current) === null || _a6 === void 0 ? void 0 : _a6.layout)) { - updateLayout(); - } - if (!is_equal_default(minimapCfg, (_b = graphOptions.current) === null || _b === void 0 ? void 0 : _b.minimapCfg)) { - processMinimap(minimapCfg, graphInstance); - } - if (!is_equal_default(nodeCfg, (_c = graphOptions.current) === null || _c === void 0 ? void 0 : _c.nodeCfg)) { - updateNodes(); - } - if (!is_equal_default(edgeCfg, (_d = graphOptions.current) === null || _d === void 0 ? void 0 : _d.edgeCfg)) { - updateEdges(); - } - if (!is_equal_default(markerCfg, (_e = graphOptions.current) === null || _e === void 0 ? void 0 : _e.markerCfg)) { - updateMarker(); - } - graphOptions.current = config; - } - }, [config]); - y2(function() { - if (graphInstance && !graphInstance.destroyed) { - var graphSize = getGraphSize(width2, height, container2); - graphInstance.changeSize(graphSize[0], graphSize[1]); - } - }, [container2, width2, height]); - y2(function() { - if (graphInstance && !graphInstance.destroyed) { - var defaultMode = graphInstance.get("modes").default; - var removingBehaviors_1 = []; - defaultMode.forEach(function(be) { - if (is_object_default(be)) { - removingBehaviors_1.push(be.type); - } else if (is_string_default(be)) { - removingBehaviors_1.push(be); - } - }); - graphInstance.removeBehaviors(removingBehaviors_1, "default"); - graphInstance.addBehaviors(behaviors2, "default"); - } - }, [behaviors2]); - y2(function() { - graphHook.current = graphInstance; - return function() { - if (graphInstance && !graphInstance.destroyed) { - graphInstance.destroy(); - graphInstance = void 0; - } - }; - }, []); - return { - graphHook - }; -} - -// node_modules/@ant-design/charts/es/obsolescent/graph/customItems.js -var __assign18 = function() { - __assign18 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign18.apply(this, arguments); -}; -var registerCustomItems = function() { - es_default5.registerNode("card-node", { - draw: function(cfg, group2) { - var _a6; - if (cfg === void 0) { - cfg = {}; - } - var size2 = cfg.size || [100, 30]; - if (typeof size2 === "number") - size2 = [size2, size2]; - var style = __assign18({ radius: 2, fill: "#fff" }, cfg.style); - var color4 = style.stroke || cfg.color || "#5B8FF9"; - var r4 = style.radius || 0; - var shape = group2.addShape("rect", { - attrs: __assign18({ x: 0, y: 0, width: size2[0], height: size2[1], stroke: color4 }, style), - name: "main-box", - draggable: true - }); - var title = cfg.title || cfg.label; - var titleTextShape; - var labelStyle = ((_a6 = cfg.labelCfg) === null || _a6 === void 0 ? void 0 : _a6.style) || {}; - if (title) { - var titleStyle = __assign18({ fill: "#fff" }, labelStyle); - titleTextShape = group2.addShape("text", { - attrs: __assign18(__assign18({ - textBaseline: "top", - x: 8, - y: 2, - text: title - }, titleStyle), { fill: "#fff" }), - name: "title" - }); - } - var titleBox = titleTextShape ? titleTextShape.getBBox() : { height: size2[1] / 2 }; - var titleRectShape = group2.addShape("rect", { - attrs: { - x: 0, - y: 0, - width: size2[0], - height: titleBox.height + 4, - fill: color4, - radius: [r4, r4, 0, 0] - }, - name: "title-rect", - draggable: true - }); - titleTextShape === null || titleTextShape === void 0 ? void 0 : titleTextShape.toFront(); - var markerShape; - if (cfg === null || cfg === void 0 ? void 0 : cfg.children) { - markerShape = group2.addShape("marker", { - attrs: { - x: size2[0] / 2, - y: 0, - r: 6, - cursor: "pointer", - symbol: cfg.collapsed ? es_default5.Marker.expand : es_default5.Marker.collapse, - stroke: color4, - lineWidth: 1, - fill: "#fff" - }, - name: "collapse-icon" - }); - } - var description = cfg && cfg.description ? cfg.description : void 0; - var titleRectBox = titleRectShape.getBBox(); - var descriptionTextShape; - if (description) { - descriptionTextShape = group2.addShape("text", { - attrs: __assign18({ textBaseline: "top", x: 8, y: titleRectBox.height + 8, text: description }, labelStyle), - name: "description" - }); - } - if (descriptionTextShape) { - var desTextShapeBBox = descriptionTextShape.getBBox(); - var height = titleRectBox.height + 16 + desTextShapeBBox.height; - var width2 = size2[0] > desTextShapeBBox.width + 16 ? size2[0] : desTextShapeBBox.width + 16; - shape.attr({ width: width2, height }); - titleRectShape === null || titleRectShape === void 0 ? void 0 : titleRectShape.attr("width", width2); - markerShape === null || markerShape === void 0 ? void 0 : markerShape.attr({ - x: width2, - y: height / 2 - }); - } - return shape; - }, - update: void 0 - }, "single-node"); - es_default5.registerNode("round-rect", { - drawShape: function(cfg, group2) { - if (cfg === void 0) { - cfg = {}; - } - var size2 = cfg.size || [100, 30]; - if (typeof size2 === "number") - size2 = [size2, size2]; - var style = cfg.style || {}; - var color4 = style.stroke || cfg.color || "#5B8FF9"; - var fill = style.fill || "#fff"; - style = __assign18({ width: size2[0], height: size2[1], radius: size2[1] / 2, fill, lineWidth: 1.2, stroke: color4 }, style); - var rect3 = group2.addShape("rect", { - attrs: __assign18({ x: -size2[0] / 2, y: -size2[1] / 2 }, style), - name: "rect-shape" - }); - group2.addShape("circle", { - attrs: { - x: -size2[0] / 2, - y: 0, - r: 3, - fill: style.stroke - }, - name: "circle-shape" - }); - group2.addShape("circle", { - attrs: { - x: size2[0] / 2, - y: 0, - r: 3, - fill: style.stroke - }, - name: "circle-shape2" - }); - return rect3; - }, - getAnchorPoints: function getAnchorPoints4() { - return [ - [0, 0.5], - [1, 0.5] - ]; - }, - update: function update15(cfg, item) { - var _a6; - if (cfg === void 0) { - cfg = {}; - } - var group2 = item.getContainer(); - var children = group2.get("children"); - var node = children[0]; - var circleLeft = children[1]; - var circleRight = children[2]; - var stroke = ((_a6 = cfg.style) === null || _a6 === void 0 ? void 0 : _a6.stroke) || "#5B8FF9"; - if (stroke) { - node.attr("stroke", stroke); - circleLeft.attr("fill", stroke); - circleRight.attr("fill", stroke); - } - } - }, "single-node"); - es_default5.registerEdge("fund-polyline", { - draw: function draw4(cfg, group2) { - var _a6; - if (cfg === void 0) { - cfg = {}; - } - var startPoint = cfg.startPoint; - var endPoint = cfg.endPoint; - var Ydiff = endPoint.y - startPoint.y; - var slope = Ydiff !== 0 ? Math.min(500 / Math.abs(Ydiff), 20) : 0; - var cpOffset = slope > 15 ? 0 : 16; - var offset = Ydiff < 0 ? cpOffset : -cpOffset; - var line1EndPoint = { - x: startPoint.x + slope, - y: endPoint.y + offset - }; - var line2StartPoint = { - x: line1EndPoint.x + cpOffset, - y: endPoint.y - }; - var controlPoint = { - x: (line1EndPoint.x - startPoint.x) * (endPoint.y - startPoint.y) / (line1EndPoint.y - startPoint.y) + startPoint.x, - y: endPoint.y - }; - var path = [ - ["M", startPoint.x, startPoint.y], - ["L", line1EndPoint.x, line1EndPoint.y], - ["Q", controlPoint.x, controlPoint.y, line2StartPoint.x, line2StartPoint.y], - ["L", endPoint.x, endPoint.y] - ]; - if (Math.abs(Ydiff) <= 5) { - path = [ - ["M", startPoint.x, startPoint.y], - ["L", endPoint.x, endPoint.y] - ]; - } - var style = cfg.style; - var stroke = style.stroke || (cfg === null || cfg === void 0 ? void 0 : cfg.colorMap) && cfg.colorMap[cfg.dataType] ? (cfg === null || cfg === void 0 ? void 0 : cfg.colorMap)[cfg === null || cfg === void 0 ? void 0 : cfg.dataType] : "#5B8FF9"; - var endArrow = ((_a6 = cfg.style) === null || _a6 === void 0 ? void 0 : _a6.endArrow) || false; - if (is_object_default(endArrow)) - endArrow.fill = stroke; - var line2 = group2.addShape("path", { - attrs: { - path, - stroke, - lineWidth: style.lineWidth || 1.2, - endArrow - }, - name: "path-shape" - }); - var labelLeftOffset = 0; - var labelTopOffset = 8; - var labelTextShape; - var textBeginX = line2StartPoint.x + labelLeftOffset; - if (cfg === null || cfg === void 0 ? void 0 : cfg.label) { - labelTextShape = group2.addShape("text", { - attrs: { - text: cfg.label, - x: textBeginX, - y: endPoint.y - labelTopOffset - 2, - fontSize: 14, - textAlign: "left", - textBaseline: "middle", - fill: "#000" - }, - name: "text-shape-label" - }); - } - if (cfg === null || cfg === void 0 ? void 0 : cfg.dataType) { - var labelTextShapeBBox = labelTextShape ? labelTextShape.getBBox() : { height: 0 }; - group2.addShape("text", { - attrs: { - text: cfg.dataType, - x: textBeginX, - y: endPoint.y - labelTopOffset - labelTextShapeBBox.height - 2, - fontSize: 10, - textAlign: "left", - textBaseline: "middle", - fill: "#000" - }, - name: "text-shape-type" - }); - } - if (cfg === null || cfg === void 0 ? void 0 : cfg.subLabel) { - group2.addShape("text", { - attrs: { - text: cfg.subLabel, - x: textBeginX, - y: endPoint.y + labelTopOffset + 4, - fontSize: 12, - fontWeight: 300, - textAlign: "left", - textBaseline: "middle", - fill: "#000" - }, - name: "text-shape-sub-label" - }); - } - return line2; - }, - update: void 0 - }, "single-edge"); - es_default5.registerEdge("flow-line", { - draw: function(cfg, group2) { - if (cfg === void 0) { - cfg = {}; - } - var startPoint = cfg.startPoint, endPoint = cfg.endPoint; - var _a6 = cfg.style, style = _a6 === void 0 ? {} : _a6; - var shape = group2.addShape("path", { - attrs: { - stroke: style.stroke, - endArrow: style.endArrow, - path: [ - ["M", startPoint.x, startPoint.y], - ["L", startPoint.x, (startPoint.y + endPoint.y) / 2], - ["L", endPoint.x, (startPoint.y + endPoint.y) / 2], - ["L", endPoint.x, endPoint.y] - ] - } - }); - return shape; - } - }); -}; -var customIconNode = function(params) { - es_default5.registerNode("icon-node", { - options: { - size: [60, 20], - stroke: "#91d5ff", - fill: "#91d5ff" - }, - draw: function(cfg, group2) { - if (cfg === void 0) { - cfg = {}; - } - var styles = this.getShapeStyle(cfg); - var _a6 = cfg.labelCfg, labelCfg = _a6 === void 0 ? {} : _a6; - var keyShape = group2.addShape("rect", { - attrs: __assign18(__assign18({}, styles), { x: 0, y: 0 }) - }); - var style = { - fill: "#e6fffb" - }; - var img = "https://g.alicdn.com/cm-design/arms-trace/1.0.155/styles/armsTrace/images/TAIR.png"; - if (cfg.leftIcon) { - style = __assign18(__assign18({}, style), cfg.leftIcon.style); - img = cfg.leftIcon.img; - } - group2.addShape("rect", { - attrs: __assign18({ x: 1, y: 1, width: 38, height: styles.height - 2 }, style) - }); - group2.addShape("image", { - attrs: { - x: 8, - y: 8, - width: 24, - height: 24, - img - }, - name: "image-shape" - }); - if (params.enableEdit) { - group2.addShape("marker", { - attrs: { - x: styles.width / 3, - y: styles.height + 6, - r: 6, - stroke: "#73d13d", - cursor: "pointer", - symbol: es_default5.Marker.expand - }, - name: "add-item" - }); - group2.addShape("marker", { - attrs: { - x: styles.width * 2 / 3, - y: styles.height + 6, - r: 6, - stroke: "#ff4d4f", - cursor: "pointer", - symbol: es_default5.Marker.collapse - }, - name: "remove-item" - }); - } - if (cfg.label) { - group2.addShape("text", { - attrs: __assign18(__assign18({}, labelCfg.style), { text: cfg.label, x: styles.width / 2, y: styles.height / 1.5 }) - }); - } - return keyShape; - } - }, "rect"); -}; - -// node_modules/@ant-design/charts/es/obsolescent/graph/constants.js -var defaultLabelCfg = { - style: { - fill: "#000", - fontSize: 12 - } -}; -var defaultEdgeStyle = { - stroke: "#91d5ff", - endArrow: { - path: es_default5.Arrow.vee(10, 10) - } -}; -var defaultNodeAnchorPoints = [ - [0.5, 0], - [0.5, 1] -]; -var defaultStateStyles2 = { - hover: { - stroke: "#1890ff", - lineWidth: 2 - } -}; -var defaultNodeSize2 = [120, 40]; - -// node_modules/@ant-design/charts/es/obsolescent/graph/utils.js -var __assign19 = function() { - __assign19 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign19.apply(this, arguments); -}; -var defaultMinimapCfg2 = { - show: false, - size: [150, 100], - type: "keyShape" -}; -var getGraphSize2 = function(width2, height, container2) { - var CANVAS_WIDTH; - var CANVAS_HEIGHT; - if (container2 && container2.current) { - CANVAS_WIDTH = container2.current.offsetWidth; - CANVAS_HEIGHT = container2.current.offsetHeight || 500; - } - if (!width2 && !CANVAS_WIDTH || !height && !CANVAS_HEIGHT) { - console.warn("\u8BF7\u4E3A Graph \u6307\u5B9A width \u4E0E height\uFF01\u5426\u5219\u5C06\u4F7F\u7528\u9ED8\u8BA4\u503C 500 * 500"); - return [500, 500]; - } - return [width2 || CANVAS_WIDTH || 500, height || CANVAS_HEIGHT || 500]; -}; -var processMinimap2 = function(cfg, graph) { - if (!graph || graph.destroyed) - return; - if (cfg && cfg.show) { - var curMminimapCfg = Object.assign(defaultMinimapCfg2, cfg); - var minimap = new es_default5.Minimap(__assign19({}, curMminimapCfg)); - graph.addPlugin(minimap); - return minimap; - } - return null; -}; -var uuid = function() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c5) { - var r4 = Math.random() * 16 | 0; - var v3 = c5 == "x" ? r4 : r4 & 3 | 8; - return v3.toString(16); - }); -}; -var getGraphId2 = function(graph) { - if (graph.current) { - return graph.current; - } - graph.current = "IndentedTreeGraph-" + uuid(); - return graph.current; -}; -var renderGraph2 = function(graph, data3) { - var originData = deepClone(data3); - graph.data(originData); - graph.render(); -}; -var bindEvents = function(graph, props) { - var handleEdgeClick = props.handleEdgeClick, handleEdgeHover = props.handleEdgeHover, handleEdgeUnHover = props.handleEdgeUnHover, handleNodeClick = props.handleNodeClick, handleNodeHover = props.handleNodeHover, handleNodeUnHover = props.handleNodeUnHover, handleCanvasClick = props.handleCanvasClick; - graph.on("edge:mouseenter", function(evt) { - var item = evt.item; - graph.setItemState(item, "hover", true); - handleEdgeHover === null || handleEdgeHover === void 0 ? void 0 : handleEdgeHover(item, graph); - }); - graph.on("edge:mouseleave", function(evt) { - var item = evt.item; - graph.setItemState(item, "hover", false); - handleEdgeUnHover === null || handleEdgeUnHover === void 0 ? void 0 : handleEdgeUnHover(item, graph); - }); - graph.on("edge:click", function(evt) { - var item = evt.item; - handleEdgeClick === null || handleEdgeClick === void 0 ? void 0 : handleEdgeClick(item, graph); - }); - graph.on("edge:touchstart", function(evt) { - var item = evt.item; - handleEdgeClick === null || handleEdgeClick === void 0 ? void 0 : handleEdgeClick(item, graph); - }); - graph.on("node:mouseenter", function(evt) { - var item = evt.item; - graph.setItemState(item, "hover", true); - handleNodeHover === null || handleNodeHover === void 0 ? void 0 : handleNodeHover(item, graph); - }); - graph.on("node:mouseleave", function(evt) { - var item = evt.item; - graph.setItemState(item, "hover", false); - handleNodeUnHover === null || handleNodeUnHover === void 0 ? void 0 : handleNodeUnHover(item, graph); - }); - graph.on("node:click", function(evt) { - var item = evt.item; - handleNodeClick === null || handleNodeClick === void 0 ? void 0 : handleNodeClick(item, graph); - }); - graph.on("canvas:click", function() { - handleCanvasClick === null || handleCanvasClick === void 0 ? void 0 : handleCanvasClick(graph); - }); - graph.on("canvas:touchstart", function() { - handleCanvasClick === null || handleCanvasClick === void 0 ? void 0 : handleCanvasClick(graph); - }); -}; -var useProps = function(props, defaultProps13) { - return __assign19(__assign19(__assign19({}, defaultProps13), props), { layout: __assign19(__assign19({}, defaultProps13 === null || defaultProps13 === void 0 ? void 0 : defaultProps13.layout), props === null || props === void 0 ? void 0 : props.layout) }); -}; - -// node_modules/@ant-design/charts/es/obsolescent/graph/organizationTreeGraph.js -var defaultNodeStyle2 = { - fill: "#91d5ff", - stroke: "#40a9ff", - radius: 2 -}; -var defaultEdgeStyle2 = { - stroke: "#91d5ff", - endArrow: { - path: "M 0,0 L 12, 6 L 9,0 L 12, -6 Z", - fill: "#91d5ff", - d: -20 - } -}; -var defaultLayout2 = { - type: "compactBox", - direction: "TB", - getId: function getId(d3) { - return d3.id; - }, - getHeight: function getHeight3() { - return 16; - }, - getWidth: function getWidth() { - return 16; - }, - getVGap: function getVGap() { - return 40; - }, - getHGap: function getHGap() { - return 70; - } -}; -var defaultProps = { - nodeType: "rect", - edgeType: "flow-line", - collapseExpand: false, - nodeSize: [120, 40], - nodeLabelCfg: defaultLabelCfg, - edgeLabelCfg: defaultLabelCfg, - layout: defaultLayout2, - enableEdit: false, - nodeStyle: defaultNodeStyle2, - edgeStyle: defaultEdgeStyle2, - nodeStateStyles: defaultStateStyles2, - edgeStateStyles: defaultStateStyles2, - autoFit: true -}; -var graphs = {}; -var OrganizationTreeGraphComponent = function(props) { - var uProps = useProps(props, defaultProps); - var data3 = uProps.data, className = uProps.className, style = uProps.style, width2 = uProps.width, height = uProps.height, _a6 = uProps.nodeType, nodeType = _a6 === void 0 ? "rect" : _a6, _b = uProps.edgeType, edgeType = _b === void 0 ? "flow-line" : _b, _c = uProps.collapseExpand, collapseExpand = _c === void 0 ? false : _c, _d = uProps.nodeSize, nodeSize = _d === void 0 ? [120, 40] : _d, _e = uProps.nodeLabelCfg, nodeLabelCfg = _e === void 0 ? defaultLabelCfg : _e, _f = uProps.edgeLabelCfg, edgeLabelCfg = _f === void 0 ? defaultLabelCfg : _f, _g = uProps.layout, layout6 = _g === void 0 ? defaultLayout2 : _g, _h = uProps.enableEdit, enableEdit = _h === void 0 ? false : _h, minimapCfg = uProps.minimapCfg, _j = uProps.nodeStyle, nodeStyle = _j === void 0 ? defaultNodeStyle2 : _j, _k = uProps.edgeStyle, edgeStyle = _k === void 0 ? defaultEdgeStyle2 : _k, _l = uProps.nodeStateStyles, nodeStateStyles = _l === void 0 ? defaultStateStyles2 : _l, _m = uProps.edgeStateStyles, edgeStateStyles = _m === void 0 ? defaultStateStyles2 : _m, _o = uProps.autoFit, autoFit = _o === void 0 ? true : _o, graphRef = uProps.graphRef, onReady = uProps.onReady, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate; - var container2 = compat_module_default.useRef(null); - var graph = compat_module_default.useRef(null); - var graphId = getGraphId2(graph); - useGraph(graphs[graphId], uProps, container2); - y2(function() { - var graphSize = getGraphSize2(width2, height, container2); - if (nodeType === "icon-node") { - customIconNode({ enableEdit }); - } - var graph2 = graphs[graphId]; - if (!graph2) { - graph2 = new es_default5.TreeGraph({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - linkCenter: true, - modes: { - default: ["drag-canvas", "zoom-canvas"] - }, - defaultNode: { - type: nodeType, - size: nodeSize, - style: nodeStyle, - labelCfg: nodeLabelCfg - }, - defaultEdge: { - type: edgeType, - style: edgeStyle, - labelCfg: edgeLabelCfg - }, - nodeStateStyles, - edgeStateStyles, - layout: layout6, - fitView: autoFit - }); - graphs[graphId] = graph2; - } - if (graphRef) { - graphRef.current = graph2; - } - processMinimap2(minimapCfg, graph2); - renderGraph2(graph2, data3); - if (onReady) { - onReady(graph2); - } - if (collapseExpand) { - graph2.addBehaviors({ - type: "collapse-expand" - }, "default"); - } - bindEvents(graph2, props); - return function() { - if (graphs[graphId]) { - graphs[graphId].destroy(); - delete graphs[graphId]; - } - }; - }, []); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var organizationTreeGraph_default = OrganizationTreeGraphComponent; - -// node_modules/@ant-design/charts/es/obsolescent/graphs/constants.js -var defaultStateStyles3 = { - hover: { - stroke: "#1890ff", - lineWidth: 2 - } -}; -var defaultNodeSize3 = [120, 40]; -var defaultNodeStyle3 = { - stroke: "#40a9ff" -}; -var defaultNodeAnchorPoints2 = [ - [0, 0.5], - [1, 0.5] -]; -var Margin = 6; -var defaultTitleLabelCfg = { - fill: "#fff", - fontSize: 12 -}; -var cardTitlePadding = 2; -var defaultLabelStyle2 = { - fill: "#000", - fontSize: 12 -}; -var defaultMinimapCfg3 = { - show: false, - size: [150, 100], - type: "keyShape" -}; - -// node_modules/@ant-design/charts/es/obsolescent/graphs/utils.js -var __assign20 = function() { - __assign20 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign20.apply(this, arguments); -}; -var getGraphSize3 = function(width2, height, container2) { - var CANVAS_WIDTH; - var CANVAS_HEIGHT; - if (container2 && container2.current) { - CANVAS_WIDTH = container2.current.offsetWidth; - CANVAS_HEIGHT = container2.current.offsetHeight || 500; - } - if (!width2 && !CANVAS_WIDTH || !height && !CANVAS_HEIGHT) { - console.warn("\u8BF7\u4E3A Graph \u6307\u5B9A width \u4E0E height\uFF01\u5426\u5219\u5C06\u4F7F\u7528\u9ED8\u8BA4\u503C 500 * 500"); - return [500, 500]; - } - return [width2 || CANVAS_WIDTH || 500, height || CANVAS_HEIGHT || 500]; -}; -var bindDefaultEvents2 = function(graph, collapseExpand) { - if (collapseExpand) { - var onClick_1 = function(e4) { - var item = e4.item; - if (e4.target.get("name") === "collapse-icon") { - graph.updateItem(item, { - collapsed: !item.getModel().collapsed - }); - graph.layout(); - } - }; - graph.on("node:click", function(e4) { - onClick_1(e4); - }); - graph.on("node:touchstart", function(e4) { - onClick_1(e4); - }); - } -}; -var getDefaultEdgeArrowCfg = function(d3, arrowType, fill) { - if (d3 === void 0) { - d3 = 0; - } - if (arrowType === void 0) { - arrowType = "vee"; - } - if (fill === void 0) { - fill = "#ccc"; - } - return { - endArrow: { - path: es_default5.Arrow[arrowType](10, 10, d3), - fill, - d: d3 - } - }; -}; -var getContentAndStyle = function(cfg) { - if (typeof cfg === "string" || typeof cfg === "number") { - return { - text: cfg - }; - } - var content = cfg.content, style = cfg.style; - return { - text: content, - style - }; -}; -var getConfig = function(source, item, cfg) { - if (typeof source === "function") { - return source(item, cfg); - } - return source || {}; -}; -var uuid2 = function() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c5) { - var r4 = Math.random() * 16 | 0; - var v3 = c5 == "x" ? r4 : r4 & 3 | 8; - return v3.toString(16); - }); -}; -var getGraphId3 = function(graph) { - if (graph.current) { - return graph.current; - } - graph.current = "IndentedTreeGraph-" + uuid2(); - return graph.current; -}; -var renderGraph3 = function(graph, data3) { - var originData = deepClone(data3); - graph.data(originData); - graph.render(); -}; -var processMinimap3 = function(cfg, graph) { - if (cfg === void 0) { - cfg = {}; - } - if (!graph || graph.destroyed) - return; - if (cfg.show) { - var curMminimapCfg = Object.assign(defaultMinimapCfg3, cfg); - var minimap = new es_default5.Minimap(__assign20({}, curMminimapCfg)); - graph.addPlugin(minimap); - return minimap; - } - return null; -}; -var getMarkerPosition2 = function(direction5, size2) { - if (direction5 === void 0) { - direction5 = "right"; - } - var width2 = size2[0], height = size2[1]; - var x6 = 0; - var y5 = 0; - switch (direction5) { - case "top": - x6 = width2 / 2; - y5 = 0; - break; - case "right": - x6 = width2; - y5 = height / 2; - break; - case "bottom": - x6 = width2 / 2; - y5 = height; - break; - case "left": - x6 = 0; - y5 = height / 2; - break; - } - return { x: x6, y: y5 }; -}; -var useProps2 = function(props, defaultProps13) { - return __assign20(__assign20(__assign20({}, defaultProps13), props), { layout: __assign20(__assign20({}, defaultProps13 === null || defaultProps13 === void 0 ? void 0 : defaultProps13.layout), props === null || props === void 0 ? void 0 : props.layout) }); -}; - -// node_modules/@ant-design/charts/es/obsolescent/graphs/customItems.js -var __assign21 = function() { - __assign21 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign21.apply(this, arguments); -}; -var registerCardNode = function() { - es_default5.registerNode("card", { - draw: function(cfg, group2) { - var _a6; - if (cfg === void 0) { - cfg = {}; - } - var title = cfg.title, body = cfg.body, footer = cfg.footer, collapseExpand = cfg.collapseExpand, children = cfg.children, markerPosition = cfg.markerPosition; - var size2 = cfg.size || [100, 30]; - var height = 0; - if (typeof size2 === "number") - size2 = [size2, size2]; - var style = __assign21({ radius: 2, fill: "#fff" }, cfg.style); - var color4 = style.stroke || cfg.color || "#5B8FF9"; - var radius = style.radius; - var shape = group2.addShape("rect", { - attrs: __assign21({ x: 0, y: 0, width: size2[0], height: size2[1], stroke: color4 }, style), - name: "main-box", - draggable: true - }); - var titleTextShape; - if (title) { - var _b = getContentAndStyle(title), text = _b.text, _c = _b.style, titleStyle = _c === void 0 ? cfg.titleStyle : _c; - titleTextShape = group2.addShape("text", { - attrs: __assign21(__assign21({ textBaseline: "top", x: Margin, y: cardTitlePadding, text }, defaultTitleLabelCfg), getConfig(titleStyle, group2)), - name: "title" - }); - } - var titleHeight = (titleTextShape ? titleTextShape.getBBox() : { height: size2[1] / 2 }).height; - var titleRectShape = group2.addShape("rect", { - attrs: { - x: 0, - y: 0, - width: size2[0], - height: titleHeight + 2 * cardTitlePadding, - fill: color4, - radius: [radius, radius, 0, 0] - }, - name: "title-rect", - draggable: true - }); - titleTextShape === null || titleTextShape === void 0 ? void 0 : titleTextShape.toFront(); - var markerShape; - if (collapseExpand && children) { - markerShape = group2.addShape("marker", { - attrs: __assign21(__assign21(__assign21({}, getMarkerPosition2(markerPosition, size2)), { r: 6, cursor: "pointer", symbol: cfg.collapsed ? es_default5.Marker.expand : es_default5.Marker.collapse, stroke: color4, lineWidth: 1, fill: "#fff" }), getConfig(cfg.markerStyle, group2, __assign21(__assign21({}, cfg), { name: "collapse-icon" }))), - name: "collapse-icon" - }); - } - var titleRectBoxHeight = titleRectShape.getBBox().height; - height += titleRectBoxHeight; - var bodyShape; - if (body) { - var _d = getContentAndStyle(body), text = _d.text, _e = _d.style, bodyStyle = _e === void 0 ? cfg.bodyStyle : _e; - bodyShape = group2.addShape("text", { - attrs: __assign21(__assign21({ textBaseline: "top", x: Margin, y: height + Margin, text }, defaultLabelStyle2), getConfig(bodyStyle, group2)), - name: "body" - }); - height += bodyShape.getBBox().height; - } - var footerTextShape; - if (footer) { - if (bodyShape) { - height += Margin; - } - var _f = getContentAndStyle(footer), labelText = _f.text, _g = _f.style, labelStyle = _g === void 0 ? cfg.footerStyle : _g; - footerTextShape = group2.addShape("text", { - attrs: __assign21(__assign21({ textBaseline: "top", x: Margin, y: height + Margin, text: labelText }, defaultLabelStyle2), getConfig(labelStyle, group2)), - name: "footer-label" - }); - var _h = footerTextShape.getBBox(), width2 = _h.width, contentHeight = _h.height; - var footerValueHeight = 0; - if (typeof cfg.footer === "object" && ((_a6 = cfg.footer) === null || _a6 === void 0 ? void 0 : _a6.value)) { - var _j = getContentAndStyle({ - content: cfg.footer.value, - style: cfg.footer.valueStyle - }), valueText = _j.text, _k = _j.style, valueStyle = _k === void 0 ? cfg.footerValueStyle || cfg.footerStyle : _k; - var valueTextShape = group2.addShape("text", { - attrs: __assign21(__assign21({ textBaseline: "top", x: width2 + Margin * 2, y: height + Margin, text: valueText }, defaultLabelStyle2), getConfig(valueStyle, group2)), - name: "footer-value" - }); - var valueHeight = valueTextShape.getBBox().height; - footerValueHeight = valueHeight; - } - height += Math.max(contentHeight, footerValueHeight); - } - if (bodyShape) { - var desTextShapeBBox = bodyShape.getBBox(); - var width2 = size2[0] > desTextShapeBBox.width + 16 ? size2[0] : desTextShapeBBox.width + 16; - shape.attr({ width: width2, height: height + 16 }); - titleRectShape === null || titleRectShape === void 0 ? void 0 : titleRectShape.attr("width", width2); - markerShape === null || markerShape === void 0 ? void 0 : markerShape.attr(__assign21({}, getMarkerPosition2(markerPosition, [ - width2, - height + titleHeight + 2 * cardTitlePadding - ]))); - } - return shape; - }, - update: void 0 - }, "single-node"); -}; -var registerIconNode = function() { - es_default5.registerNode("icon-node", { - options: { - size: [60, 20], - stroke: "#91d5ff", - fill: "#91d5ff" - }, - draw: function(cfg, group2) { - if (cfg === void 0) { - cfg = {}; - } - var styles = this.getShapeStyle(cfg); - var _a6 = cfg.labelCfg, labelCfg = _a6 === void 0 ? {} : _a6, labelStyle = cfg.labelStyle, label17 = cfg.label, markerStyle = cfg.markerStyle, showMarker = cfg.showMarker, title = cfg.title, titleStyle = cfg.titleStyle; - var keyShape = group2.addShape("rect", { - attrs: __assign21(__assign21({}, styles), { x: 0, y: 0 }) - }); - var keyShapeHeight = keyShape.getBBox().height; - var headShape; - if (cfg.leftIcon) { - var _b = cfg.leftIcon, _c = _b.x, x6 = _c === void 0 ? 8 : _c, y5 = _b.y, _d = _b.width, width2 = _d === void 0 ? 24 : _d, _e = _b.height, height = _e === void 0 ? 24 : _e, style = _b.style; - if (style) { - group2.addShape("rect", { - attrs: __assign21({ x: 1, y: 1, width: 38, height: styles.height - 2 }, style) - }); - } - headShape = group2.addShape("image", { - attrs: { - x: x6, - y: y5 || keyShapeHeight / 2 - height / 2, - width: width2, - height, - img: cfg.leftIcon.img - }, - name: "image-shape" - }); - } - if (showMarker) { - group2.addShape("marker", { - attrs: __assign21({ x: styles.width / 3, y: styles.height + 6, r: 6, stroke: "#73d13d", cursor: "pointer", symbol: es_default5.Marker.expand }, getConfig(markerStyle, group2, __assign21(__assign21({}, cfg), { name: "add-item" }))), - name: "add-item" - }); - group2.addShape("marker", { - attrs: __assign21({ x: styles.width * 2 / 3, y: styles.height + 6, r: 6, stroke: "#ff4d4f", cursor: "pointer", symbol: es_default5.Marker.collapse }, getConfig(markerStyle, group2, __assign21(__assign21({}, cfg), { name: "remove-item" }))), - name: "remove-item" - }); - } - if (label17) { - var textCfg = labelStyle ? getConfig(labelStyle, group2, cfg) : labelCfg.style; - var y5 = title ? styles.height / 2 - (textCfg.fontSize * 1 || 12) - Margin / 2 : styles.height / 2; - group2.addShape("text", { - attrs: __assign21({ text: label17, x: styles.width / 2, y: y5, textAlign: headShape ? "start" : "center", textBaseline: title ? "top" : "middle" }, textCfg) - }); - } - if (title) { - var titleCfg = titleStyle ? getConfig(titleStyle, group2, cfg) : labelCfg.style; - group2.addShape("text", { - attrs: __assign21({ text: title, x: styles.width / 2, y: styles.height / 2 + Margin / 2, textAlign: headShape ? "start" : "center", textBaseline: "top" }, titleCfg) - }); - } - return keyShape; - } - }, "rect"); -}; - -// node_modules/@ant-design/charts/es/obsolescent/graph/dagre.js -registerCustomItems(); -registerCardNode(); -var defaultNodeStyle4 = { - stroke: "#40a9ff" -}; -var defaultLayout3 = { - type: "dagre", - rankdir: "TB", - nodesepFunc: function() { - return 0; - }, - ranksepFunc: function() { - return 0; - }, - controlPoints: true -}; -var defaultProps2 = { - nodeType: "modelRect", - edgeType: "polyline", - behaviors: ["zoom-canvas", "drag-canvas"], - nodeSize: defaultNodeSize2, - nodeLabelCfg: defaultLabelCfg, - edgeLabelCfg: defaultLabelCfg, - nodeAnchorPoints: defaultNodeAnchorPoints, - layout: defaultLayout3, - nodeStyle: defaultNodeStyle4, - edgeStyle: defaultEdgeStyle, - nodeStateStyles: defaultStateStyles2, - edgeStateStyles: defaultStateStyles2, - autoFit: true -}; -var graphs2 = {}; -var DagreGraph = function(props) { - var uProps = useProps(props, defaultProps2); - var data3 = uProps.data, className = uProps.className, style = uProps.style, width2 = uProps.width, height = uProps.height, _a6 = uProps.nodeType, nodeType = _a6 === void 0 ? "modelRect" : _a6, _b = uProps.edgeType, edgeType = _b === void 0 ? "polyline" : _b, _c = uProps.behaviors, behaviors2 = _c === void 0 ? ["zoom-canvas", "drag-canvas"] : _c, _d = uProps.nodeSize, nodeSize = _d === void 0 ? defaultNodeSize2 : _d, _e = uProps.nodeLabelCfg, nodeLabelCfg = _e === void 0 ? defaultLabelCfg : _e, _f = uProps.edgeLabelCfg, edgeLabelCfg = _f === void 0 ? defaultLabelCfg : _f, _g = uProps.nodeAnchorPoints, nodeAnchorPoints = _g === void 0 ? defaultNodeAnchorPoints : _g, _h = uProps.layout, layout6 = _h === void 0 ? defaultLayout3 : _h, minimapCfg = uProps.minimapCfg, _j = uProps.nodeStyle, nodeStyle = _j === void 0 ? defaultNodeStyle4 : _j, _k = uProps.edgeStyle, edgeStyle = _k === void 0 ? defaultEdgeStyle : _k, _l = uProps.nodeStateStyles, nodeStateStyles = _l === void 0 ? defaultStateStyles2 : _l, _m = uProps.edgeStateStyles, edgeStateStyles = _m === void 0 ? defaultStateStyles2 : _m, _o = uProps.autoFit, autoFit = _o === void 0 ? true : _o, graphRef = uProps.graphRef, onReady = uProps.onReady, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate; - var container2 = compat_module_default.useRef(null); - var graph = compat_module_default.useRef(null); - var graphId = getGraphId2(graph); - useGraph(graphs2[graphId], uProps, container2); - y2(function() { - var graphSize = getGraphSize2(width2, height, container2); - var graph2 = graphs2[graphId]; - if (!graph2) { - graph2 = new es_default5.Graph({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - modes: { - default: behaviors2 - }, - defaultNode: { - type: nodeType, - size: nodeSize, - style: nodeStyle, - anchorPoints: nodeAnchorPoints, - labelCfg: nodeLabelCfg - }, - defaultEdge: { - type: edgeType, - style: edgeStyle, - labelCfg: edgeLabelCfg - }, - nodeStateStyles, - edgeStateStyles, - layout: layout6, - fitView: autoFit - }); - graphs2[graphId] = graph2; - } - if (graphRef) { - graphRef.current = graph2; - } - processMinimap2(minimapCfg, graph2); - renderGraph2(graph2, data3); - if (onReady) { - onReady(graph2); - } - bindEvents(graph2, props); - return function() { - if (graphs2[graphId]) { - graphs2[graphId].destroy(); - delete graphs2[graphId]; - } - }; - }, []); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var dagre_default2 = DagreGraph; - -// node_modules/@ant-design/charts/es/obsolescent/graph/dagreFundFlow.js -registerCustomItems(); -var defaultNodeSize4 = [150, 30]; -var defaultNodeStyle5 = { - stroke: "#72CC4A", - fill: "#f00" -}; -var defaultLayout4 = { - type: "dagre", - rankdir: "LR", - nodesep: 30, - ranksep: 50 -}; -var defaultLabelCfg2 = { - style: { - fill: "#000000A6", - fontSize: 10 - } -}; -var defaultProps3 = { - nodeType: "round-rect", - edgeType: "fund-polyline", - behaviors: ["zoom-canvas", "drag-canvas"], - nodeSize: defaultNodeSize4, - nodeLabelCfg: defaultLabelCfg2, - edgeLabelCfg: defaultLabelCfg2, - nodeAnchorPoints: defaultNodeAnchorPoints, - layout: defaultLayout4, - nodeStyle: defaultNodeStyle5, - edgeStyle: defaultEdgeStyle, - nodeStateStyles: defaultStateStyles2, - edgeStateStyles: defaultStateStyles2, - colorMap: {}, - autoFit: true -}; -var graphs3 = {}; -var DagreFundFlowGraph = function(props) { - var uProps = useProps(props, defaultProps3); - var data3 = uProps.data, className = uProps.className, style = uProps.style, width2 = uProps.width, height = uProps.height, _a6 = uProps.nodeType, nodeType = _a6 === void 0 ? "round-rect" : _a6, _b = uProps.edgeType, edgeType = _b === void 0 ? "fund-polyline" : _b, _c = uProps.behaviors, behaviors2 = _c === void 0 ? ["zoom-canvas", "drag-canvas"] : _c, _d = uProps.nodeSize, nodeSize = _d === void 0 ? defaultNodeSize4 : _d, _e = uProps.nodeLabelCfg, nodeLabelCfg = _e === void 0 ? defaultLabelCfg2 : _e, _f = uProps.edgeLabelCfg, edgeLabelCfg = _f === void 0 ? defaultLabelCfg2 : _f, _g = uProps.nodeAnchorPoints, nodeAnchorPoints = _g === void 0 ? defaultNodeAnchorPoints : _g, _h = uProps.layout, layout6 = _h === void 0 ? defaultLayout4 : _h, minimapCfg = uProps.minimapCfg, _j = uProps.nodeStyle, nodeStyle = _j === void 0 ? defaultNodeStyle5 : _j, _k = uProps.edgeStyle, edgeStyle = _k === void 0 ? defaultEdgeStyle : _k, _l = uProps.nodeStateStyles, nodeStateStyles = _l === void 0 ? defaultStateStyles2 : _l, _m = uProps.edgeStateStyles, edgeStateStyles = _m === void 0 ? defaultStateStyles2 : _m, _o = uProps.colorMap, colorMap2 = _o === void 0 ? {} : _o, _p = uProps.autoFit, autoFit = _p === void 0 ? true : _p, graphRef = uProps.graphRef, onReady = uProps.onReady, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate; - var container2 = compat_module_default.useRef(null); - var graph = compat_module_default.useRef(null); - var graphId = getGraphId2(graph); - useGraph(graphs3[graphId], uProps, container2); - y2(function() { - var graphSize = getGraphSize2(width2, height, container2); - var graph2 = graphs3[graphId]; - if (!graph2) { - graph2 = new es_default5.Graph({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - modes: { - default: behaviors2 - }, - defaultNode: { - type: nodeType, - size: nodeSize, - style: nodeStyle, - anchorPoints: nodeAnchorPoints, - labelCfg: nodeLabelCfg - }, - defaultEdge: { - type: edgeType, - style: edgeStyle, - colorMap: colorMap2, - labelCfg: edgeLabelCfg - }, - nodeStateStyles, - edgeStateStyles, - layout: layout6, - fitView: autoFit - }); - graphs3[graphId] = graph2; - } - if (graphRef) { - graphRef.current = graph2; - } - processMinimap2(minimapCfg, graph2); - var originData = deepClone(data3); - graph2.data(originData); - graph2.render(); - if (onReady) { - onReady(graph2); - } - var edges = graph2.getEdges(); - edges.forEach(function(edge2) { - var line2 = edge2.getKeyShape(); - var stroke = line2.attr("stroke"); - var targetNode = edge2.getTarget(); - targetNode.update({ - style: { - stroke - } - }); - }); - bindEvents(graph2, props); - return function() { - if (graphs3[graphId]) { - graphs3[graphId].destroy(); - delete graphs3[graphId]; - } - }; - }, []); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var dagreFundFlow_default = DagreFundFlowGraph; - -// node_modules/@ant-design/charts/es/obsolescent/graph/indented.js -registerCustomItems(); -var defaultNodeStyle6 = { - stroke: "#40a9ff" -}; -var defaultNodeAnchorPoints3 = [ - [0, 0.5], - [1, 0.5] -]; -var defaultEdgeStyle3 = { - stroke: "#ccc", - endArrow: { - path: es_default5.Arrow.vee(10, 10), - fill: "#ccc" - } -}; -var defaultLayout5 = { - type: "indented", - direction: "LR", - dropCap: false, - indent: 250, - getHeight: function() { - return 60; - }, - getWidth: function() { - return 100; - } -}; -var defaultProps4 = { - nodeType: "card-node", - edgeType: "cubic-horizontal", - behaviors: ["zoom-canvas", "drag-canvas"], - nodeSize: defaultNodeSize2, - nodeLabelCfg: defaultLabelCfg, - nodeAnchorPoints: defaultNodeAnchorPoints3, - layout: defaultLayout5, - nodeStyle: defaultNodeStyle6, - edgeStyle: defaultEdgeStyle3, - nodeStateStyles: defaultStateStyles2, - edgeStateStyles: defaultStateStyles2, - collapseExpand: true, - autoFit: true -}; -var graphs4 = {}; -var IndentedTree = function(props) { - var uProps = useProps(props, defaultProps4); - var data3 = uProps.data, className = uProps.className, style = uProps.style, width2 = uProps.width, height = uProps.height, _a6 = uProps.nodeType, nodeType = _a6 === void 0 ? "card-node" : _a6, _b = uProps.edgeType, edgeType = _b === void 0 ? "cubic-horizontal" : _b, _c = uProps.behaviors, behaviors2 = _c === void 0 ? ["zoom-canvas", "drag-canvas"] : _c, _d = uProps.nodeSize, nodeSize = _d === void 0 ? defaultNodeSize2 : _d, _e = uProps.nodeLabelCfg, nodeLabelCfg = _e === void 0 ? defaultLabelCfg : _e, _f = uProps.nodeAnchorPoints, nodeAnchorPoints = _f === void 0 ? defaultNodeAnchorPoints3 : _f, _g = uProps.layout, layout6 = _g === void 0 ? defaultLayout5 : _g, minimapCfg = uProps.minimapCfg, _h = uProps.nodeStyle, nodeStyle = _h === void 0 ? defaultNodeStyle6 : _h, _j = uProps.edgeStyle, edgeStyle = _j === void 0 ? defaultEdgeStyle3 : _j, _k = uProps.nodeStateStyles, nodeStateStyles = _k === void 0 ? defaultStateStyles2 : _k, _l = uProps.edgeStateStyles, edgeStateStyles = _l === void 0 ? defaultStateStyles2 : _l, _m = uProps.collapseExpand, collapseExpand = _m === void 0 ? true : _m, _o = uProps.autoFit, autoFit = _o === void 0 ? true : _o, handleNodeClick = uProps.handleNodeClick, graphRef = uProps.graphRef, onReady = uProps.onReady, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate; - var graph = compat_module_default.useRef(null); - var graphId = getGraphId2(graph); - var container2 = compat_module_default.useRef(null); - useGraph(graphs4[graphId], uProps, container2); - y2(function() { - var graphSize = getGraphSize2(width2, height, container2); - var graph2 = graphs4[graphId]; - if (!graph2) { - graph2 = new es_default5.TreeGraph({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - modes: { - default: behaviors2 - }, - defaultNode: { - type: nodeType, - size: nodeSize, - style: nodeStyle, - anchorPoints: nodeAnchorPoints, - labelCfg: nodeLabelCfg - }, - defaultEdge: { - type: edgeType, - style: edgeStyle - }, - nodeStateStyles, - edgeStateStyles, - layout: layout6, - fitView: autoFit - }); - graphs4[graphId] = graph2; - } - if (graphRef) { - graphRef.current = graph2; - } - processMinimap2(minimapCfg, graph2); - renderGraph2(graph2, data3); - if (onReady) { - onReady(graph2); - } - if (collapseExpand) { - var onClick_1 = function(e4) { - var item = e4.item; - if (e4.target.get("name") === "collapse-icon") { - graph2.updateItem(item, { - collapsed: !item.getModel().collapsed - }); - graph2.layout(); - } else if (handleNodeClick) { - handleNodeClick(item, graph2); - } - }; - graph2.on("node:click", function(e4) { - onClick_1(e4); - }); - graph2.on("node:touchstart", function(e4) { - onClick_1(e4); - }); - } - bindEvents(graph2, props); - return function() { - if (graphs4[graphId]) { - graphs4[graphId].destroy(); - delete graphs4[graphId]; - } - }; - }, []); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var indented_default = IndentedTree; - -// node_modules/@ant-design/charts/es/obsolescent/graphs/indentedTreeGraph/index.js -var __assign22 = function() { - __assign22 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign22.apply(this, arguments); -}; -var graphs5 = {}; -registerCardNode(); -var defaultLayout6 = { - type: "compactBox", - direction: "LR", - getId: function(d3) { - return d3.id; - }, - getHeight: function() { - return 60; - }, - getWidth: function() { - return 16; - }, - getVGap: function() { - return 16; - }, - getHGap: function() { - return 100; - } -}; -var defaultProps5 = { - nodeType: "card", - edgeType: "cubic-horizontal", - behaviors: ["zoom-canvas", "drag-canvas"], - nodeAnchorPoints: defaultNodeAnchorPoints2, - nodeSize: defaultNodeSize3, - layout: defaultLayout6, - animate: true, - markerPosition: "right", - nodeStateStyles: defaultStateStyles3, - edgeStateStyles: defaultStateStyles3, - collapseExpand: true, - showArrow: true, - arrowType: "vee", - autoFit: true, - style: { - height: "inherit" - } -}; -var IndentedTreeGraph = function(props) { - var uProps = useProps2(props, defaultProps5); - var data3 = uProps.data, className = uProps.className, style = uProps.style, width2 = uProps.width, height = uProps.height, _a6 = uProps.nodeType, nodeType = _a6 === void 0 ? "card" : _a6, _b = uProps.edgeType, edgeType = _b === void 0 ? "cubic-horizontal" : _b, _c = uProps.behaviors, behaviors2 = _c === void 0 ? ["zoom-canvas", "drag-canvas"] : _c, _d = uProps.nodeAnchorPoints, nodeAnchorPoints = _d === void 0 ? defaultNodeAnchorPoints2 : _d, _e = uProps.nodeSize, nodeSize = _e === void 0 ? defaultNodeSize3 : _e, layout6 = uProps.layout, _f = uProps.animate, animate = _f === void 0 ? true : _f, nodeStyle = uProps.nodeStyle, edgeStyle = uProps.edgeStyle, edgeCfg = uProps.edgeCfg, markerStyle = uProps.markerStyle, _g = uProps.markerPosition, markerPosition = _g === void 0 ? "right" : _g, _h = uProps.nodeStateStyles, nodeStateStyles = _h === void 0 ? defaultStateStyles3 : _h, _j = uProps.edgeStateStyles, edgeStateStyles = _j === void 0 ? defaultStateStyles3 : _j, _k = uProps.collapseExpand, collapseExpand = _k === void 0 ? true : _k, titleStyle = uProps.titleStyle, bodyStyle = uProps.bodyStyle, footerStyle = uProps.footerStyle, footerValueStyle = uProps.footerValueStyle, _l = uProps.showArrow, showArrow = _l === void 0 ? true : _l, _m = uProps.arrowType, arrowType = _m === void 0 ? "vee" : _m, _o = uProps.autoFit, autoFit = _o === void 0 ? true : _o, onReady = uProps.onReady, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate; - var container2 = compat_module_default.useRef(null); - var graph = compat_module_default.useRef(null); - var graphId = getGraphId3(graph); - useGraph(graphs5[graphId], uProps, container2); - y2(function() { - var graphSize = getGraphSize3(width2, height, container2); - var graph2 = graphs5[graphId]; - if (!graph2) { - graph2 = new es_default5.TreeGraph({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - animate, - modes: { - default: behaviors2 - }, - defaultNode: { - type: nodeType, - size: nodeSize, - anchorPoints: nodeAnchorPoints, - titleStyle, - bodyStyle, - footerStyle, - footerValueStyle, - markerStyle, - collapseExpand, - markerPosition - }, - defaultEdge: { - type: edgeType - }, - nodeStateStyles, - edgeStateStyles, - layout: layout6, - fitView: autoFit - }); - graphs5[graphId] = graph2; - } - graph2.node(function(node) { - if (typeof nodeStyle === "function") { - return { - style: nodeStyle(node, graph2) - }; - } - return { - style: __assign22(__assign22({}, defaultNodeStyle3), nodeStyle) - }; - }); - graph2.edge(function(edge2) { - if (edgeCfg) { - return typeof edgeCfg === "function" ? edgeCfg(edge2, graph2) : edgeCfg; - } - if (typeof edgeStyle === "function") { - return { - style: edgeStyle(edge2, graph2) - }; - } - return { - style: __assign22(__assign22({ stroke: "#ccc" }, showArrow && getDefaultEdgeArrowCfg(0, arrowType)), edgeStyle) - }; - }); - if (collapseExpand) { - bindDefaultEvents2(graph2, collapseExpand); - } - renderGraph3(graph2, data3); - if (onReady) { - onReady(graph2); - } - return function() { - if (graphs5[graphId]) { - graphs5[graphId].destroy(); - delete graphs5[graphId]; - } - }; - }, []); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var indentedTreeGraph_default = IndentedTreeGraph; - -// node_modules/@ant-design/charts/es/obsolescent/graphs/organizationalGraph/index.js -var __assign23 = function() { - __assign23 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign23.apply(this, arguments); -}; -var defaultNodeStyle7 = { - fill: "#91d5ff", - stroke: "#40a9ff", - radius: 2 -}; -var defaultLayout7 = { - type: "compactBox", - direction: "TB", - getId: function getId2(d3) { - return d3.id; - }, - getHeight: function getHeight4() { - return 16; - }, - getWidth: function getWidth2() { - return 16; - }, - getVGap: function getVGap2() { - return 40; - }, - getHGap: function getHGap2() { - return 70; - } -}; -var defaultProps6 = { - animate: true, - nodeType: "rect", - edgeType: "polyline", - nodeSize: defaultNodeSize3, - behaviors: ["drag-canvas", "zoom-canvas"], - nodeLabelCfg: { - style: defaultLabelStyle2 - }, - layout: defaultLayout7, - showMarker: false, - showArrow: true, - arrowType: "triangle", - nodeStateStyles: defaultStateStyles3, - edgeStateStyles: defaultStateStyles3, - autoFit: true, - style: { - height: "inherit" - } -}; -var graphs6 = {}; -var OrganizationalGraph = function(props) { - var uProps = useProps2(props, defaultProps6); - var data3 = uProps.data, className = uProps.className, style = uProps.style, width2 = uProps.width, height = uProps.height, _a6 = uProps.animate, animate = _a6 === void 0 ? true : _a6, _b = uProps.nodeType, nodeType = _b === void 0 ? "rect" : _b, _c = uProps.edgeType, edgeType = _c === void 0 ? "polyline" : _c, _d = uProps.nodeSize, nodeSize = _d === void 0 ? defaultNodeSize3 : _d, _e = uProps.behaviors, behaviors2 = _e === void 0 ? ["drag-canvas", "zoom-canvas"] : _e, nodeLabelCfg = uProps.nodeLabelCfg, nodeCfg = uProps.nodeCfg, _f = uProps.layout, layout6 = _f === void 0 ? defaultLayout7 : _f, _g = uProps.showMarker, showMarker = _g === void 0 ? false : _g, _h = uProps.showArrow, showArrow = _h === void 0 ? true : _h, _j = uProps.arrowType, arrowType = _j === void 0 ? "triangle" : _j, minimapCfg = uProps.minimapCfg, edgeCfg = uProps.edgeCfg, markerStyle = uProps.markerStyle, _k = uProps.nodeStateStyles, nodeStateStyles = _k === void 0 ? defaultStateStyles3 : _k, _l = uProps.edgeStateStyles, edgeStateStyles = _l === void 0 ? defaultStateStyles3 : _l, _m = uProps.autoFit, autoFit = _m === void 0 ? true : _m, onReady = uProps.onReady, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate; - var container2 = compat_module_default.useRef(null); - var graph = compat_module_default.useRef(null); - var graphId = getGraphId3(graph); - useGraph(graphs6[graphId], uProps, container2); - var arrowOffset = (Array.isArray(nodeSize) ? nodeSize[1] : nodeSize) / 2; - y2(function() { - var graphSize = getGraphSize3(width2, height, container2); - if (nodeType === "icon-node") { - registerIconNode(); - } - var graph2 = graphs6[graphId]; - if (!graph2) { - graph2 = new es_default5.TreeGraph({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - linkCenter: true, - animate, - modes: { - default: behaviors2 - }, - defaultNode: { - type: nodeType, - size: nodeSize, - labelCfg: nodeLabelCfg, - markerStyle, - showMarker - }, - defaultEdge: { - type: edgeType - }, - nodeStateStyles, - edgeStateStyles, - layout: layout6, - fitView: autoFit - }); - graphs6[graphId] = graph2; - } - graph2.node(function(node) { - if (typeof nodeCfg === "function") { - return nodeCfg(node, graph2); - } - return { - style: __assign23(__assign23({}, defaultNodeStyle7), nodeCfg === null || nodeCfg === void 0 ? void 0 : nodeCfg.style) - }; - }); - graph2.edge(function(edge2) { - if (typeof edgeCfg === "function") { - return edgeCfg(edge2, graph2); - } - return __assign23(__assign23({}, edgeCfg), { style: __assign23(__assign23({ stroke: "#91d5ff" }, showArrow && getDefaultEdgeArrowCfg(arrowOffset, arrowType, "#91d5ff")), edgeCfg === null || edgeCfg === void 0 ? void 0 : edgeCfg.style) }); - }); - processMinimap3(minimapCfg, graph2); - renderGraph3(graph2, data3); - if (onReady) { - onReady(graph2); - } - return function() { - if (graphs6[graphId]) { - graphs6[graphId].destroy(); - delete graphs6[graphId]; - } - }; - }, []); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var organizationalGraph_default = OrganizationalGraph; - -// node_modules/@ant-design/charts/es/obsolescent/graphs/radialGraph/index.js -var __assign24 = function() { - __assign24 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign24.apply(this, arguments); -}; -var graphs7 = {}; -var defaultLayout8 = { - type: "dendrogram", - direction: "LR", - nodeSep: 20, - rankSep: 100, - radial: true -}; -var defaultProps7 = { - nodeType: "circle", - linkCenter: true, - edgeType: "line", - behaviors: ["zoom-canvas", "drag-canvas"], - nodeAnchorPoints: defaultNodeAnchorPoints2, - nodeSize: 30, - layout: defaultLayout8, - animate: true, - nodeStateStyles: defaultStateStyles3, - edgeStateStyles: defaultStateStyles3, - showArrow: false, - arrowType: "triangle", - autoFit: true -}; -var RadialGraph = function(props) { - var uProps = useProps2(props, defaultProps7); - var data3 = uProps.data, className = uProps.className, style = uProps.style, width2 = uProps.width, height = uProps.height, _a6 = uProps.nodeType, nodeType = _a6 === void 0 ? "circle" : _a6, _b = uProps.linkCenter, linkCenter = _b === void 0 ? true : _b, _c = uProps.edgeType, edgeType = _c === void 0 ? "line" : _c, _d = uProps.behaviors, behaviors2 = _d === void 0 ? ["zoom-canvas", "drag-canvas"] : _d, _e = uProps.nodeAnchorPoints, nodeAnchorPoints = _e === void 0 ? defaultNodeAnchorPoints2 : _e, _f = uProps.nodeSize, nodeSize = _f === void 0 ? 30 : _f, layout6 = uProps.layout, _g = uProps.animate, animate = _g === void 0 ? true : _g, nodeCfg = uProps.nodeCfg, edgeCfg = uProps.edgeCfg, _h = uProps.nodeStateStyles, nodeStateStyles = _h === void 0 ? defaultStateStyles3 : _h, _j = uProps.edgeStateStyles, edgeStateStyles = _j === void 0 ? defaultStateStyles3 : _j, _k = uProps.showArrow, showArrow = _k === void 0 ? false : _k, _l = uProps.arrowType, arrowType = _l === void 0 ? "triangle" : _l, _m = uProps.autoFit, autoFit = _m === void 0 ? true : _m, onReady = uProps.onReady, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate; - var container2 = compat_module_default.useRef(null); - var graph = compat_module_default.useRef(null); - var graphId = getGraphId3(graph); - useGraph(graphs7[graphId], uProps, container2); - var arrowOffset = (Array.isArray(nodeSize) ? nodeSize[0] : nodeSize) / 2; - y2(function() { - var graphSize = getGraphSize3(width2, height, container2); - var graph2 = graphs7[graphId]; - if (!graph2) { - graph2 = new es_default5.TreeGraph({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - animate, - linkCenter, - modes: { - default: behaviors2 - }, - defaultNode: { - type: nodeType, - size: nodeSize, - anchorPoints: nodeAnchorPoints - }, - defaultEdge: { - type: edgeType - }, - nodeStateStyles, - edgeStateStyles, - layout: layout6, - fitView: autoFit - }); - graphs7[graphId] = graph2; - } - graph2.node(function(node) { - if (typeof nodeCfg === "function") { - return nodeCfg(node, graph2); - } - return __assign24(__assign24({}, nodeCfg), { style: __assign24(__assign24({}, defaultNodeStyle3), nodeCfg === null || nodeCfg === void 0 ? void 0 : nodeCfg.style) }); - }); - graph2.edge(function(edge2) { - if (typeof edgeCfg === "function") { - return edgeCfg(edge2, graph2); - } - return { - style: __assign24(__assign24({ stroke: "#ccc" }, showArrow && getDefaultEdgeArrowCfg(arrowOffset, arrowType)), edgeCfg === null || edgeCfg === void 0 ? void 0 : edgeCfg.style) - }; - }); - renderGraph3(graph2, data3); - if (onReady) { - onReady(graph2); - } - return function() { - if (graphs7[graphId]) { - graphs7[graphId].destroy(); - delete graphs7[graphId]; - } - }; - }, []); - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var radialGraph_default = RadialGraph; - -// node_modules/@ant-design/charts/es/graphs/hooks/useFullscreen.js -var useFullscreen = function(el) { - var _a6 = l3(false), fullscreen = _a6[0], setFullscreen = _a6[1]; - var handleFullScreenChange = function() { - if (!document.fullscreenElement) { - setFullscreen(false); - } - }; - var enterFullscreen = function() { - if (el && el.requestFullscreen) { - el.requestFullscreen().then(function() { - setFullscreen(true); - }).catch(function(err) { - console.error("requestFullscreen error: ", err); - }); - } - }; - var exitFullscreen = function() { - if (document.exitFullscreen) { - document.exitFullscreen().then(function() { - setFullscreen(false); - }).catch(function(err) { - console.error("exitFullscreen error: ", err); - }); - } - }; - var toggleFullscreen = function() { - if (!el) { - console.error("need dom"); - return; - } - if (!fullscreen) { - enterFullscreen(); - } else { - exitFullscreen(); - } - }; - y2(function() { - document.addEventListener("fullscreenchange", handleFullScreenChange, false); - return function() { - document.removeEventListener("fullscreenchange", handleFullScreenChange); - }; - }, []); - return [fullscreen, toggleFullscreen]; -}; -var useFullscreen_default = useFullscreen; - -// node_modules/@ant-design/charts/es/graphs/components/toolbar.js -var Toolbar = function(_a6) { - var toolbarCfg = _a6.toolbarCfg, container2 = _a6.container, graph = _a6.graph; - var useGraph3 = s3(); - var width2 = s3(); - var height = s3(); - var zoom2 = s3(1); - var _b = toolbarCfg.zoomFactor, zoomFactor = _b === void 0 ? 0.25 : _b, renderIcon = toolbarCfg.renderIcon; - var _c = useFullscreen_default(container2), fullscreen = _c[0], toggleFullscreen = _c[1]; - var getWindow = function() { - return [window.outerWidth, window.outerHeight]; - }; - var toggleWidth = function(f3) { - var _a7; - var size2 = f3 ? getWindow() : [width2.current, height.current]; - (_a7 = useGraph3.current) === null || _a7 === void 0 ? void 0 : _a7.changeSize(size2[0], size2[1]); - }; - var getCenter2 = function() { - if (!container2) { - return { - x: 0, - y: 0 - }; - } - return { - x: container2.clientWidth / 2, - y: container2.clientHeight / 2 - }; - }; - var zoomIn2 = function() { - var _a7; - (_a7 = useGraph3.current) === null || _a7 === void 0 ? void 0 : _a7.zoom(Math.min(zoom2.current + zoomFactor, 5), getCenter2()); - }; - var zoomOut2 = function() { - var _a7; - (_a7 = useGraph3.current) === null || _a7 === void 0 ? void 0 : _a7.zoom(Math.max(zoom2.current - zoomFactor, 0.25), getCenter2()); - }; - y2(function() { - if (graph) { - useGraph3.current = graph; - width2.current = container2 === null || container2 === void 0 ? void 0 : container2.clientWidth; - height.current = container2 === null || container2 === void 0 ? void 0 : container2.clientHeight; - } - }, [graph]); - var setToggleFullscreen = function() { - toggleFullscreen(); - toggleWidth(!document.fullscreenElement); - }; - if (renderIcon) { - return renderIcon(zoomIn2, zoomOut2, toggleFullscreen); - } - return compat_module_default.createElement(d, null, !fullscreen ? compat_module_default.createElement("span", { style: { - cursor: "pointer" - }, onClick: setToggleFullscreen }, "\u2610") : compat_module_default.createElement("span", { style: { - cursor: "pointer" - }, onClick: setToggleFullscreen }, "\u2684"), compat_module_default.createElement("span", { style: { - cursor: "pointer" - }, onClick: zoomIn2 }, "+"), compat_module_default.createElement("span", { style: { - cursor: "pointer" - }, onClick: zoomIn2 }, "-")); -}; -var createToolbar = function(_a6) { - var _b; - var graph = _a6.graph, container2 = _a6.container, toolbarCfg = _a6.toolbarCfg; - var style = toolbarCfg.style, show = toolbarCfg.show, className = toolbarCfg.className; - var toolbarId = graph.get("id") + "-toolbar"; - var exist = document.querySelector("#" + toolbarId); - if (exist) { - (_b = exist.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(exist); - } - if (!show) { - return; - } - var defaultStyle = { - position: "absolute", - right: "12px", - top: "12px", - display: "flex", - flexDirection: "column", - padding: "6px", - borderRadius: "2px", - fontSize: "24px", - textAlign: "center", - lineHeight: "24px", - color: "rgba(0,0,0,.65)", - backgroundColor: "#fff", - boxShadow: "0 0 3px #ccc" - }; - var mountPoint = document.createElement("div"); - mountPoint.id = toolbarId; - mountPoint.className = className !== null && className !== void 0 ? className : "charts-toolbar"; - setStyles(mountPoint, defaultStyle); - setStyles(mountPoint, style); - compat_module_default.render(compat_module_default.createElement(Toolbar, { graph, container: container2, toolbarCfg }), mountPoint); - container2.appendChild(mountPoint); -}; - -// node_modules/@ant-design/charts/es/graphs/components/tooltip.js -var createTooltip2 = function(_a6) { - var graph = _a6.graph, container2 = _a6.container, tooltipCfg = _a6.tooltipCfg, nodeCfg = _a6.nodeCfg; - var _b = nodeCfg.size, size2 = _b === void 0 ? [120, 40] : _b; - var style = tooltipCfg.style, show = tooltipCfg.show, className = tooltipCfg.className, customContent = tooltipCfg.customContent; - if (typeof size2 === "number") - size2 = [size2, size2]; - var nodeWidth = size2[0], nodeHeight = size2[1]; - var createTooltipContainer = function(positionStyle, item) { - var _a7; - var tooltipId = graph.get("id") + "-toolitp"; - var exist = document.querySelector("#" + tooltipId); - if (exist) { - (_a7 = exist.parentNode) === null || _a7 === void 0 ? void 0 : _a7.removeChild(exist); - } - if (!show || !positionStyle) { - return; - } - var defaultStyle = { - position: "absolute", - width: nodeWidth + "px", - padding: "6px", - borderRadius: "2px", - fontSize: "24px", - backgroundColor: "#fff", - boxShadow: "0 0 3px #ccc", - minHeight: "40px", - boxSizing: "border-box" - }; - var mountPoint = document.createElement("div"); - mountPoint.id = tooltipId; - mountPoint.className = className !== null && className !== void 0 ? className : "charts-toolbar"; - setStyles(mountPoint, defaultStyle); - setStyles(mountPoint, positionStyle); - setStyles(mountPoint, style); - compat_module_default.render(customContent(item), mountPoint); - container2.appendChild(mountPoint); - }; - var bindEvents2 = function() { - var currentNode = { - current: "" - }; - graph.on("node:mousemove", function(evt) { - var _a7, _b2, _c; - if (!currentNode.current) { - var _d = (_a7 = get_default(evt, "shape.cfg.canvasBBox")) !== null && _a7 !== void 0 ? _a7 : {}, minX = _d.minX, minY = _d.minY; - if (!minX) { - return; - } - var modelId = get_default((_b2 = evt.item) === null || _b2 === void 0 ? void 0 : _b2.getModel(), "id", ""); - if (modelId) { - currentNode.current = modelId; - } - createTooltipContainer({ - left: Math.min(Math.max(minX, 0), graph.getWidth() - nodeWidth) + "px", - bottom: graph.getHeight() - minY + nodeHeight + "px" - }, (_c = evt.item) === null || _c === void 0 ? void 0 : _c.getModel()); - } - }); - graph.on("node:mouseleave", function() { - currentNode.current = ""; - createTooltipContainer(); - }); - }; - bindEvents2(); -}; - -// node_modules/@ant-design/charts/es/graphs/hooks/useGraphs.js -var __assign25 = function() { - __assign25 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign25.apply(this, arguments); -}; -function useGraph2(graphClass, config, extra) { - if (extra === void 0) { - extra = {}; - } - var container2 = s3(null); - var graphRef = s3(); - var graphOptions = s3(); - var graphData = s3(); - var data3 = config.data, width2 = config.width, height = config.height, layout6 = config.layout, minimapCfg = config.minimapCfg, behaviors2 = config.behaviors, fitCenter = config.fitCenter, nodeCfg = config.nodeCfg, edgeCfg = config.edgeCfg, markerCfg = config.markerCfg, level = config.level, toolbarCfg = config.toolbarCfg, tooltipCfg = config.tooltipCfg; - var graph = graphRef.current; - var setEdgesState = function(edges) { - edges.forEach(function(edge2) { - var _a6, _b; - var _c = edge2.getModel(), source = _c.source, target = _c.target; - var sourceVisible = (_a6 = graph === null || graph === void 0 ? void 0 : graph.findById(source)) === null || _a6 === void 0 ? void 0 : _a6.get("visible"); - var targetVisible = (_b = graph === null || graph === void 0 ? void 0 : graph.findById(target)) === null || _b === void 0 ? void 0 : _b.get("visible"); - if (sourceVisible === false || targetVisible === false) { - edge2.changeVisibility(false); - } - }); - }; - var changeData = function() { - var _a6; - if (!graph) { - return; - } - var currentData = data3; - if (level) { - currentData = setTag4(data3); - } - graph.changeData(level ? getLevelData(currentData, level) : data3); - (_a6 = graph.get("eventData")) === null || _a6 === void 0 ? void 0 : _a6.setData(currentData); - setEdgesState(graph.getEdges()); - if (fitCenter) { - graph.fitCenter(); - } - }; - var updateLayout = function() { - graph === null || graph === void 0 ? void 0 : graph.updateLayout(layout6); - if (fitCenter) { - graph === null || graph === void 0 ? void 0 : graph.fitCenter(); - } - }; - var updateNodes = function() { - if (!graph) { - return; - } - var _a6 = nodeCfg !== null && nodeCfg !== void 0 ? nodeCfg : {}, nodeType = _a6.type, nodeAnchorPoints = _a6.anchorPoints, nodeStyle = _a6.style, nodeLabelCfg = _a6.title; - graph.getNodes().forEach(function(node) { - graph.updateItem(node, { - nodeCfg, - markerCfg, - type: nodeType, - style: nodeStyle, - anchorPoints: nodeAnchorPoints, - labelCfg: nodeLabelCfg - }); - }); - }; - var updateEdges = function() { - if (!graph) { - return; - } - var _a6 = edgeCfg !== null && edgeCfg !== void 0 ? edgeCfg : {}, edgeType = _a6.type, edgeStyle = _a6.style, startArrowCfg = _a6.startArrow, endArrowCfg = _a6.endArrow, labelCfg = _a6.label; - graph.getEdges().forEach(function(edge2) { - if (edgeType === "fund-line") { - graph.updateItem(edge2, { - edgeCfg - }); - } else { - var edgeCfgModel = edge2.getModel(); - var startArrow = getArrowCfg(startArrowCfg, edgeCfgModel); - var endArrow = getArrowCfg(endArrowCfg, edgeCfgModel); - var _a7 = labelCfg !== null && labelCfg !== void 0 ? labelCfg : {}, style = _a7.style, content = _a7.content; - graph.updateItem(edge2, { - type: edgeType, - label: getCommonConfig(content, edgeCfgModel, graph), - labelCfg: { - style: getCommonConfig(style, edgeCfgModel, graph) - }, - style: __assign25({ stroke: "#ccc", startArrow, endArrow }, typeof edgeStyle === "function" ? edgeStyle(edgeCfgModel, graph) : edgeStyle) - }); - } - }); - }; - var updateMarker = function() { - if (!graph) { - return; - } - graph.getNodes().forEach(function(node) { - var _a6 = (typeof markerCfg === "function" ? markerCfg(node.getModel(), node.get("group")) : markerCfg).position, position2 = _a6 === void 0 ? "right" : _a6; - var _b = node.getBBox(), width3 = _b.width, height2 = _b.height; - var markerShape = node.get("group").get("children").find(function(item) { - return item.get("name") === "collapse-icon"; - }); - if (markerShape) { - markerShape === null || markerShape === void 0 ? void 0 : markerShape.attr(__assign25({}, getMarkerPosition(position2, [width3, height2]))); - } - }); - }; - var getEdgeStateStyles = function(edgeStateStyles) { - var _a6 = extra.name, name = _a6 === void 0 ? "" : _a6; - if (name !== "FundFlowGraph") { - return edgeStateStyles; - } - if (!edgeStateStyles) { - return; - } - var _b = edgeStateStyles.hover, hover = _b === void 0 ? {} : _b; - var endArrow = hover.endArrow, startArrow = hover.startArrow; - if (!endArrow && !startArrow) { - return edgeStateStyles; - } - return { - hover: __assign25(__assign25({}, hover), { endArrow: endArrow ? getArrowCfg(endArrow) : false, startArrow: startArrow ? getArrowCfg(startArrow) : false }) - }; - }; - y2(function() { - if (graph && !graph.destroyed) { - if (is_equal_default(data3, graphData.current)) { - return; - } - graphData.current = deepClone(data3); - changeData(); - } - }, [data3]); - y2(function() { - var _a6, _b, _c, _d, _e; - if (graph && !graph.destroyed) { - if (is_equal_default(config, graphOptions.current)) { - return; - } - if (!is_equal_default(layout6, (_a6 = graphOptions.current) === null || _a6 === void 0 ? void 0 : _a6.layout)) { - updateLayout(); - } - if (!is_equal_default(minimapCfg, (_b = graphOptions.current) === null || _b === void 0 ? void 0 : _b.minimapCfg)) { - processMinimap(minimapCfg, graph); - } - if (!is_equal_default(nodeCfg, (_c = graphOptions.current) === null || _c === void 0 ? void 0 : _c.nodeCfg)) { - updateNodes(); - } - if (!is_equal_default(edgeCfg, (_d = graphOptions.current) === null || _d === void 0 ? void 0 : _d.edgeCfg)) { - updateEdges(); - } - if (!is_equal_default(markerCfg, (_e = graphOptions.current) === null || _e === void 0 ? void 0 : _e.markerCfg)) { - updateMarker(); - } - graphOptions.current = config; - } - }, [config]); - y2(function() { - if (graph && !graph.destroyed) { - var graphSize = getGraphSize(width2, height, container2); - graph.changeSize(graphSize[0], graphSize[1]); - } - }, [container2, width2, height]); - y2(function() { - if (graph && !graph.destroyed) { - var defaultMode = graph.get("modes").default; - var removingBehaviors_1 = []; - defaultMode.forEach(function(be) { - if (is_object_default(be)) { - removingBehaviors_1.push(be.type); - } else if (is_string_default(be)) { - removingBehaviors_1.push(be); - } - }); - graph.removeBehaviors(removingBehaviors_1, "default"); - graph.addBehaviors(behaviors2, "default"); - } - }, [behaviors2]); - y2(function() { - if (container2.current && graphClass) { - var _a6 = extra.name, name_1 = _a6 === void 0 ? "" : _a6; - var graphSize = getGraphSize(width2, height, container2); - var nodeCfg_1 = config.nodeCfg, edgeCfg_1 = config.edgeCfg, behaviors_1 = config.behaviors, layout_1 = config.layout, animate = config.animate, autoFit = config.autoFit, fitCenter_1 = config.fitCenter, onReady = config.onReady; - var _b = nodeCfg_1 !== null && nodeCfg_1 !== void 0 ? nodeCfg_1 : {}, nodeType_1 = _b.type, nodeSize = _b.size, nodeAnchorPoints = _b.anchorPoints, nodeStateStyles = _b.nodeStateStyles, nodeStyle_1 = _b.style, nodeLabelCfg_1 = _b.title, linkCenter = _b.linkCenter, getChildren = _b.getChildren; - var _c = edgeCfg_1 !== null && edgeCfg_1 !== void 0 ? edgeCfg_1 : {}, edgeType = _c.type, edgeStyle_1 = _c.style, startArrowCfg_1 = _c.startArrow, endArrowCfg_1 = _c.endArrow, labelCfg_1 = _c.label, edgeStateStyles = _c.edgeStateStyles; - graphRef.current = new es_default5[graphClass]({ - container: container2.current, - width: graphSize[0], - height: graphSize[1], - animate, - linkCenter, - modes: { - default: behaviors_1 - }, - defaultNode: { - type: nodeType_1, - size: nodeSize, - anchorPoints: nodeAnchorPoints, - nodeCfg: nodeCfg_1 - }, - defaultEdge: { - type: edgeType, - edgeCfg: edgeCfg_1, - labelCfg: labelCfg_1 === null || labelCfg_1 === void 0 ? void 0 : labelCfg_1.style - }, - nodeStateStyles, - edgeStateStyles: getEdgeStateStyles(edgeStateStyles), - layout: layout_1, - fitView: autoFit, - fitCenter: fitCenter_1 - }); - var graphId = getGraphId(graphRef.current); - var graph_1 = graphRef.current; - graph_1.set("id", graphId); - var getLabel_1 = function(value2) { - if (is_string_default(value2)) { - return value2; - } - if (name_1 === "FundFlowGraph") { - return value2 === null || value2 === void 0 ? void 0 : value2.text; - } - return value2 === null || value2 === void 0 ? void 0 : value2.title; - }; - var customNode_1 = ["fund-card", "indicator-card"]; - graph_1.node(function(node) { - if (customNode_1.includes(nodeType_1) || name_1 === "OrganizationGraph") { - node.markerCfg = markerCfg; - return {}; - } - var style = (nodeLabelCfg_1 !== null && nodeLabelCfg_1 !== void 0 ? nodeLabelCfg_1 : {}).style; - return { - label: getLabel_1(node.value), - labelCfg: { - style: getCommonConfig(style, node, graph_1) - }, - style: __assign25({ stroke: "#ccc" }, typeof nodeStyle_1 === "function" ? nodeStyle_1(node, graph_1) : nodeStyle_1) - }; - }); - var getEdgeLabel_1 = function(edge2) { - var content = (labelCfg_1 !== null && labelCfg_1 !== void 0 ? labelCfg_1 : {}).content; - if (["DecompositionTreeGraph", "OrganizationGraph", "RadialTreeGraph"].includes(name_1)) { - return getCommonConfig(content, edge2, graph_1); - } - if (name_1 === "FundFlowGraph") { - var value2 = edge2.value; - return typeof value2 === "object" ? value2 === null || value2 === void 0 ? void 0 : value2.text : value2; - } - return edge2.value; - }; - if (edgeType !== "fund-line") { - graph_1.edge(function(edge2) { - var startArrow = getArrowCfg(startArrowCfg_1, edge2); - var endArrow = getArrowCfg(endArrowCfg_1, edge2); - var style = (labelCfg_1 !== null && labelCfg_1 !== void 0 ? labelCfg_1 : {}).style; - return { - label: getEdgeLabel_1(edge2), - labelCfg: { - style: getCommonConfig(style, edge2, graph_1) - }, - style: __assign25({ stroke: "#ccc", startArrow, endArrow }, typeof edgeStyle_1 === "function" ? edgeStyle_1(edge2, graph_1) : edgeStyle_1) - }; - }); - } - processMinimap(minimapCfg, graph_1); - bindStateEvents(graph_1, config); - if (markerCfg) { - var sourceGraph = ["FlowAnalysisGraph", "FundFlowGraph"]; - sourceGraph.includes(name_1) ? bindSourceMapCollapseEvents(graph_1) : bindDefaultEvents(graph_1, level, getChildren); - } - renderGraph(graph_1, data3, level); - if (fitCenter_1) { - graph_1.fitCenter(); - } - if (onReady) { - onReady(graph_1); - } - } - }, []); - y2(function() { - if (graphRef.current && toolbarCfg) { - createToolbar({ graph: graphRef.current, container: container2.current, toolbarCfg }); - } - }, [graphRef, toolbarCfg]); - y2(function() { - if (graphRef.current && tooltipCfg) { - createTooltip2({ graph: graphRef.current, container: container2.current, tooltipCfg, nodeCfg }); - } - }, [graphRef, tooltipCfg]); - y2(function() { - return function() { - if ((graph === null || graph === void 0 ? void 0 : graph.current) && !graph.current.destroyed) { - graph.current.destroy(); - } - }; - }, []); - return { - container: container2 - }; -} - -// node_modules/@ant-design/charts/es/graphs/hooks/useProps.js -var __assign26 = function() { - __assign26 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign26.apply(this, arguments); -}; -function useProps3(props, defaultProps13) { - var cloneProps = deepClone(props); - var mergeProps = A2(function(p4, defaultProps14) { - var config = __assign26({}, defaultProps14); - var propsKeys = Object.keys(p4); - propsKeys.forEach(function(key) { - if (getType2(p4[key]) === "Object") { - config[key] = __assign26(__assign26({}, defaultProps14[key]), p4[key]); - } else { - config[key] = p4[key]; - } - }); - return config; - }, [props, defaultProps13]); - var uProps = mergeProps(cloneProps, defaultProps13); - return { - uProps - }; -} - -// node_modules/@ant-design/charts/es/graphs/organizationGraph/customItem.js -var __assign27 = function() { - __assign27 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign27.apply(this, arguments); -}; -var registerOrganizationCardNode = function() { - var defaultIconStyle = { - width: 12, - height: 12 - }; - es_default5.registerNode("organization-card", { - draw: function(cfg, group2) { - if (cfg === void 0) { - cfg = {}; - } - var _a6 = cfg.value, value2 = _a6 === void 0 ? {} : _a6, nodeCfg = cfg.nodeCfg, markerCfg = cfg.markerCfg; - var _b = nodeCfg, style = _b.style, _c = _b.padding, padding3 = _c === void 0 ? 0 : _c, _d = _b.label, label17 = _d === void 0 ? {} : _d, customContent = _b.customContent; - var labelStyle = label17.style; - var paddingArray = getCssPadding(padding3); - var size2 = (cfg === null || cfg === void 0 ? void 0 : cfg.size) || [100, 30]; - if (typeof size2 === "number") - size2 = [size2, size2]; - var height = 0; - var contentWidth = size2[0] - paddingArray[1] - paddingArray[3]; - var cardStyle = getStyle3(style, cfg, group2); - var shape = group2.addShape("rect", { - attrs: __assign27(__assign27({ x: 0, y: 0, width: size2[0], height: size2[1] }, defaultCardStyle), cardStyle), - name: "main-box", - draggable: true - }); - if (value2) { - height += paddingArray[0]; - var createRowItems_1 = function(item, contentWidth2, startX, index2) { - if (index2 === void 0) { - index2 = 0; - } - var iconWidth = 0; - var rowHeight = []; - var keys2 = ["icon", "text", "value"]; - var getXY = function(type2, layoutCfg) { - var _a7 = layoutCfg.fontSize, fontSize = _a7 === void 0 ? 12 : _a7; - var x6 = 0; - var y5 = 0; - switch (type2) { - case "icon": - x6 = startX; - y5 = height; - break; - case "text": - x6 = startX + (contentWidth2 + iconWidth) / 2; - y5 = item.value ? paddingArray[0] : (size2[1] - fontSize) / 2; - break; - case "value": - x6 = startX + (contentWidth2 + iconWidth) / 2; - y5 = item.text ? paddingArray[0] + rowHeight[1] + defaultMargin : (size2[1] - fontSize) / 2; - break; - default: - break; - } - return { x: x6, y: y5 }; - }; - keys2.forEach(function(key, keyIndex) { - var isIcon = key.startsWith("icon"); - var shapeStyle = getStyle3(labelStyle, cfg, group2, key); - if (key === "icon" && item[key]) { - iconWidth = shapeStyle.width || 32; - } - var keyShape = group2.addShape(isIcon ? "image" : "text", { - attrs: __assign27(__assign27(__assign27(__assign27({ textBaseline: "top", textAlign: "center" }, getXY(key, shapeStyle)), { text: item[key], img: item[key] }), isIcon ? defaultIconStyle : defaultLabelStyle), shapeStyle), - name: key + "-" + index2 + "-" + keyIndex - }); - rowHeight.push(keyShape.getBBox().height); - }); - return rowHeight; - }; - var createItems = function(item, index2) { - var _a7; - if (index2 === void 0) { - index2 = 0; - } - var itemsHeight = []; - if (customContent) { - itemsHeight.push((_a7 = customContent(item, group2, { - startX: paddingArray[3], - startY: height, - width: contentWidth - })) !== null && _a7 !== void 0 ? _a7 : 0); - } else { - itemsHeight.push.apply(itemsHeight, createRowItems_1(item, contentWidth, paddingArray[3], index2)); - } - height += Math.max.apply(Math, itemsHeight); - }; - createItems(value2); - } - shape === null || shape === void 0 ? void 0 : shape.attr("height", Math.max(height + paddingArray[2], size2[1])); - if (markerCfg) { - var _e = shape.getBBox(), shapeWidth = _e.width, shapeHeight = _e.height; - var _f = typeof markerCfg === "function" ? markerCfg(cfg, group2) : markerCfg, show = _f.show, _g = _f.position, position2 = _g === void 0 ? "right" : _g, collapsed = _f.collapsed, markerStyle = _f.style; - createMarker({ - show, - position: position2, - collapsed, - style: markerStyle - }, group2, [shapeWidth, shapeHeight]); - shape.attr("defaultCollapsed", collapsed); - } - return shape; - } - }, "single-node"); -}; - -// node_modules/@ant-design/charts/es/graphs/organizationGraph/index.js -var __rest41 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -registerOrganizationCardNode(); -var defaultNodeStyle8 = { - fill: "#91d5ff", - stroke: "#40a9ff", - radius: 2 -}; -var defaultLayout9 = { - type: "compactBox", - direction: "TB", - getId: function getId3(d3) { - return d3.id; - }, - getHeight: function getHeight5() { - return 16; - }, - getWidth: function getWidth3() { - return 16; - }, - getVGap: function getVGap3() { - return 40; - }, - getHGap: function getHGap3() { - return 70; - } -}; -var defaultProps8 = { - nodeCfg: { - type: "organization-card", - size: [100, 44], - style: defaultNodeStyle8, - padding: 6, - anchorPoints: [ - [0.5, 0], - [0.5, 1] - ], - nodeStateStyles: defaultStateStyles, - label: { - style: function(cfg, group2, type2) { - var styles = { - icon: { - width: 32, - height: 32 - }, - value: { - fill: "#fff" - }, - text: { - fill: "#000" - } - }; - return type2 ? styles[type2] : {}; - } - } - }, - edgeCfg: { - type: "polyline", - endArrow: { - type: "triangle", - fill: "#91d5ff" - }, - edgeStateStyles: defaultStateStyles, - style: { - stroke: "#91d5ff" - } - }, - behaviors: ["zoom-canvas", "drag-canvas"], - layout: defaultLayout9, - animate: true, - markerPosition: "right", - autoFit: true, - fitCenter: true, - style: { - position: "relative", - height: "inherit", - backgroundColor: "#fff" - } -}; -var OrganizationGraph = function(props) { - var uProps = useProps3(props, defaultProps8).uProps; - var className = uProps.className, style = uProps.style, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate, rest = __rest41(uProps, ["className", "style", "loading", "loadingTemplate", "errorTemplate"]); - var container2 = useGraph2("TreeGraph", rest, { name: "OrganizationGraph" }).container; - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var organizationGraph_default = OrganizationGraph; - -// node_modules/@ant-design/charts/es/graphs/radialTreeGraph/index.js -var __rest42 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -var defaultLayout10 = { - type: "dendrogram", - direction: "LR", - nodeSep: 20, - rankSep: 100, - radial: true -}; -var defaultProps9 = { - nodeCfg: { - type: "circle", - size: 30, - anchorPoints: defaultFlowGraphAnchorPoints, - linkCenter: true, - nodeStateStyles: defaultStateStyles, - style: defaultNodeStyle - }, - edgeCfg: { - type: "line", - edgeStateStyles: defaultStateStyles - }, - behaviors: ["zoom-canvas", "drag-canvas"], - layout: defaultLayout10, - animate: true, - markerPosition: "right", - autoFit: true, - fitCenter: true, - style: { - position: "relative", - height: "inherit", - backgroundColor: "#fff" - } -}; -var RadialTreeGraph = function(props) { - var uProps = useProps3(props, defaultProps9).uProps; - var className = uProps.className, style = uProps.style, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate, rest = __rest42(uProps, ["className", "style", "loading", "loadingTemplate", "errorTemplate"]); - var container2 = useGraph2("TreeGraph", rest, { name: "RadialTreeGraph" }).container; - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var radialTreeGraph_default = RadialTreeGraph; - -// node_modules/@ant-design/charts/es/graphs/flowAnalysisGraph/customItem.js -var __assign28 = function() { - __assign28 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign28.apply(this, arguments); -}; -var registerIndicatorCardNode = function() { - var defaultTitleLabelStyle = { - fill: "#fff", - fontSize: 12 - }; - var defaultTitleRectStyle = { - fill: "#40a9ff", - radius: [2, 2, 0, 0] - }; - var defaultIconStyle = { - width: 12, - height: 12 - }; - var ARROWS2 = ["startArrow", "endArrow"]; - var SHAPE_DEFAULT_ATTRS2 = { - lineWidth: 1, - stroke: void 0, - fill: void 0, - lineAppendWidth: 1, - opacity: void 0, - strokeOpacity: void 0, - fillOpacity: void 0, - x: 0, - y: 0, - r: 10, - width: 20, - height: 20, - shadowColor: void 0, - shadowBlur: 0, - shadowOffsetX: 0, - shadowOffsetY: 0 - }; - var PATH_SHAPE_DEFAULT_ATTRS2 = { - lineWidth: 1, - stroke: "#000", - lineDash: void 0, - startArrow: false, - endArrow: false, - opacity: void 0, - strokeOpacity: void 0, - fillOpacity: void 0, - shadowColor: void 0, - shadowBlur: 0, - shadowOffsetX: 0, - shadowOffsetY: 0 - }; - var SHAPES_DEFAULT_ATTRS2 = { - edge: PATH_SHAPE_DEFAULT_ATTRS2, - node: SHAPE_DEFAULT_ATTRS2 - }; - es_default5.registerNode("indicator-card", { - draw: function(cfg, group2) { - var _a6, _b; - if (cfg === void 0) { - cfg = {}; - } - var _c = cfg.value, value2 = _c === void 0 ? {} : _c, nodeCfg = cfg.nodeCfg, markerCfg = cfg.markerCfg; - var _d = nodeCfg, titleCfg = _d.title, itemsCfg = _d.items, _e = _d.label, label17 = _e === void 0 ? {} : _e, style = _d.style, _f = _d.padding, padding3 = _f === void 0 ? 0 : _f, badge = _d.badge, customContent = _d.customContent; - var appendPadding = getStatusBBox(badge); - var labelStyle = label17.style; - var cardPadding = getCssPadding(padding3); - var paddingArray = cardPadding.map(function(item, index2) { - return item + appendPadding[index2]; - }); - var _g = titleCfg !== null && titleCfg !== void 0 ? titleCfg : {}, titleStyle = _g.style, titleContainerStyle = _g.containerStyle, _h = _g.autoEllipsis, autoEllipsis = _h === void 0 ? true : _h; - var _j = itemsCfg !== null && itemsCfg !== void 0 ? itemsCfg : {}, itemStyle = _j.style, itemContainerStyle = _j.containerStyle, layout6 = _j.layout, _k = _j.itemSpacing, itemSpacing = _k === void 0 ? 4 : _k, sort2 = _j.sort, _l = _j.padding, itemPadding = _l === void 0 ? [6, 0, 0] : _l; - var itemPaddingArray = getCssPadding(itemPadding); - var _m = value2, title = _m.title, items = _m.items; - var size2 = (cfg === null || cfg === void 0 ? void 0 : cfg.size) || [100, 30]; - if (typeof size2 === "number") - size2 = [size2, size2]; - var height = 0; - var shapeWidth = size2[0]; - var contentWidth = shapeWidth - paddingArray[1] - paddingArray[3]; - var cardStyle = getStyle3(style, cfg, group2); - var shape = group2.addShape("rect", { - attrs: __assign28(__assign28({ x: 0, y: 0, width: size2[0], height: size2[1] }, defaultCardStyle), cardStyle), - name: "main-box", - draggable: true - }); - var titleTextShape; - var itemShape; - var titleShape; - if (title) { - titleShape = group2.addShape("rect", { - attrs: __assign28(__assign28({ x: 0, y: 0, width: size2[0], height: 0 }, defaultTitleRectStyle), getStyle3(titleContainerStyle, cfg, group2)), - name: "title-rect", - draggable: true - }); - var textStyle2 = __assign28(__assign28({}, defaultTitleLabelStyle), getStyle3(titleStyle, cfg, group2)); - titleTextShape = group2.addShape("text", { - attrs: __assign28({ x: paddingArray[3], y: paddingArray[0], textBaseline: "top", text: autoEllipsis ? useEllipsis(title, textStyle2 === null || textStyle2 === void 0 ? void 0 : textStyle2.fontSize, contentWidth) : title }, textStyle2), - name: "title" - }); - var titleHeight_1 = (titleTextShape ? titleTextShape.getBBox() : { height: size2[1] / 2 }).height; - titleShape === null || titleShape === void 0 ? void 0 : titleShape.attr("height", titleHeight_1 + paddingArray[0] + paddingArray[2]); - height += titleShape.getBBox().height; - } - if (items) { - if (!titleShape) { - height += paddingArray[0]; - } - itemShape = group2.addShape("rect", { - attrs: __assign28({ x: paddingArray[3], y: height, width: contentWidth, height: 0 }, getStyle3(itemContainerStyle, cfg, group2)), - name: "item-box", - draggable: true - }); - height += itemPaddingArray[0]; - var itemContentWidth_1 = contentWidth - itemPaddingArray[1] - itemPaddingArray[3]; - var isArray_1 = Array.isArray(items); - var createRowItems_1 = function(item, contentWidth2, startX, index2) { - if (index2 === void 0) { - index2 = 0; - } - var rowHeight = []; - var valueShapeWidth = 0; - var keys2 = sort2 ? Object.keys(item) : ["text", "value", "icon"]; - keys2.forEach(function(key, keyIndex) { - var x6; - var isIcon = key.startsWith("icon"); - if (sort2 || layout6 === "flex") { - x6 = keyIndex * contentWidth2 / keys2.length; - } else if (layout6 === "follow") { - x6 = valueShapeWidth; - } else { - x6 = key === "text" ? 0 : contentWidth2 / 2; - x6 += isIcon ? valueShapeWidth : 0; - } - var keyShape = group2.addShape(isIcon ? "image" : "text", { - attrs: __assign28(__assign28({ textBaseline: "top", x: startX + x6, y: height, text: item[key], img: item[key] }, isIcon ? defaultIconStyle : defaultLabelStyle), getStyle3(itemStyle || labelStyle, cfg, group2, key)), - name: key + "-" + index2 + "-" + keyIndex - }); - if (key === "value" || layout6 === "follow") { - valueShapeWidth += keyShape.getBBox().width; - valueShapeWidth += layout6 === "follow" ? itemSpacing : 0; - } - rowHeight.push(keyShape.getBBox().height); - }); - return rowHeight; - }; - var createItems_1 = function(item, index2) { - var _a7; - if (index2 === void 0) { - index2 = 0; - } - var itemsHeight = []; - if (customContent) { - itemsHeight.push((_a7 = customContent(item, group2, { - startX: paddingArray[3] + itemPaddingArray[3], - startY: height, - width: itemContentWidth_1 - })) !== null && _a7 !== void 0 ? _a7 : 0); - } else { - itemsHeight.push.apply(itemsHeight, createRowItems_1(item, itemContentWidth_1, paddingArray[3] + itemPaddingArray[3], index2)); - } - height += Math.max.apply(Math, itemsHeight); - if (isArray_1 && index2 !== items.length - 1) { - height += defaultMargin; - } - }; - if (Array.isArray(items)) { - items.forEach(function(item, index2) { - createItems_1(item, index2); - }); - } else { - createItems_1(items); - } - } - var titleHeight = (titleShape === null || titleShape === void 0 ? void 0 : titleShape.getBBox().height) || 0; - itemShape === null || itemShape === void 0 ? void 0 : itemShape.attr("height", Math.max(height - titleHeight + itemPaddingArray[2], size2[1])); - var itemHeight = (itemShape === null || itemShape === void 0 ? void 0 : itemShape.getBBox().height) || 0; - var shapeHeight = items ? (titleHeight || paddingArray[0]) + itemHeight + paddingArray[2] : titleHeight + itemHeight; - shape === null || shape === void 0 ? void 0 : shape.attr("height", shapeHeight); - if (badge) { - var statusConfig = getStatusCfg(badge, [size2[0], shapeHeight]); - group2.addShape("rect", { - attrs: __assign28(__assign28({ fill: "#40a9ff" }, statusConfig), getStyle3(badge.style, cfg, group2)), - name: "status-rect" - }); - } - if (markerCfg) { - var stateCollapsed = ((_b = (_a6 = group2 === null || group2 === void 0 ? void 0 : group2.get("item")) === null || _a6 === void 0 ? void 0 : _a6.getModel()) !== null && _b !== void 0 ? _b : {}).collapsed; - var _o = shape.getBBox(), shapeWidth_1 = _o.width, shapeHeight_1 = _o.height; - var _p = typeof markerCfg === "function" ? markerCfg(cfg, group2) : markerCfg, show = _p.show, _q = _p.position, position2 = _q === void 0 ? "right" : _q, collapsed = _p.collapsed, markerStyle = _p.style; - createMarker({ - show, - position: position2, - collapsed: stateCollapsed !== null && stateCollapsed !== void 0 ? stateCollapsed : collapsed, - style: markerStyle - }, group2, [shapeWidth_1, shapeHeight_1]); - shape.attr("defaultCollapsed", collapsed); - } - return shape; - }, - update: void 0, - setState: function(name, value2, item) { - var _a6, _b; - var shape = item.get("keyShape"); - if (!shape || shape.destroyed) - return; - var type2 = item.getType(); - var stateName = is_boolean_default(value2) ? name : name + ":" + value2; - var itemStateStyle = item.getStateStyle(stateName); - if (!itemStateStyle) { - return; - } - var styles = Object.assign({}, itemStateStyle); - var group2 = item.getContainer(); - var keptAttrs = { x: 1, y: 1, cx: 1, cy: 1 }; - if (value2) { - var _loop_1 = function(key2) { - var _c; - var style = styles[key2]; - if (is_plain_object_default(style) && !ARROWS2.includes(key2)) { - var subShape = group2.find(function(element) { - return element.get("name") === key2; - }); - if (subShape) { - subShape.attr(style); - } - } else { - shape.attr((_c = {}, _c[key2] = style, _c)); - } - }; - for (var key in styles) { - _loop_1(key); - } - } else { - var enableStatesStyle = cloneBesidesImg3(item.getCurrentStatesStyle()); - var model = item.getModel(); - var originStyle_1 = mix({}, model.style, cloneBesidesImg3(item.getOriginStyle())); - var keyShapeName_1 = shape.get("name"); - var shapeAttrs_1 = shape.attr(); - var keyShapeStyles_1 = {}; - Object.keys(shapeAttrs_1).forEach(function(key2) { - if (key2 === "img") - return; - var attr = shapeAttrs_1[key2]; - if (attr && typeof attr === "object") { - keyShapeStyles_1[key2] = clone_default(attr); - } else { - keyShapeStyles_1[key2] = attr; - } - }); - var filtetDisableStatesStyle = {}; - var _loop_2 = function(p5) { - var style = styles[p5]; - if (is_plain_object_default(style) && !ARROWS2.includes(p5)) { - var subShape_1 = group2.find(function(element) { - return element.get("name") === p5; - }); - if (subShape_1) { - var subShapeStyles_1 = clone_default(subShape_1.attr()); - each_default(style, function(v3, key2) { - if (p5 === keyShapeName_1 && keyShapeStyles_1[key2] && !keptAttrs[key2]) { - delete keyShapeStyles_1[key2]; - var value_1 = originStyle_1[p5][key2] || SHAPES_DEFAULT_ATTRS2[type2][key2]; - shape.attr(key2, value_1); - } else if (subShapeStyles_1[key2] || subShapeStyles_1[key2] === 0) { - delete subShapeStyles_1[key2]; - var value_2 = originStyle_1[p5][key2] || SHAPES_DEFAULT_ATTRS2[type2][key2]; - subShape_1.attr(key2, value_2); - } - }); - filtetDisableStatesStyle[p5] = subShapeStyles_1; - } - } else { - if (keyShapeStyles_1[p5] && !keptAttrs[p5]) { - delete keyShapeStyles_1[p5]; - var value_3 = originStyle_1[p5] || (originStyle_1[keyShapeName_1] ? originStyle_1[keyShapeName_1][p5] : void 0) || SHAPES_DEFAULT_ATTRS2[type2][p5]; - shape.attr(p5, value_3); - } - } - }; - for (var p4 in styles) { - _loop_2(p4); - } - if (!keyShapeName_1) { - mix(filtetDisableStatesStyle, keyShapeStyles_1); - } else { - filtetDisableStatesStyle[keyShapeName_1] = keyShapeStyles_1; - } - for (var key in enableStatesStyle) { - if (keptAttrs[key]) - continue; - var enableStyle = enableStatesStyle[key]; - if (!is_plain_object_default(enableStyle) || ARROWS2.includes(key)) { - if (!keyShapeName_1) { - mix(originStyle_1, (_a6 = {}, _a6[key] = enableStyle, _a6)); - } else { - mix(originStyle_1[keyShapeName_1], (_b = {}, _b[key] = enableStyle, _b)); - delete originStyle_1[key]; - } - delete enableStatesStyle[key]; - } - } - var originstyles = {}; - deep_mix_default(originstyles, originStyle_1, filtetDisableStatesStyle, enableStatesStyle); - var keyShapeSetted = false; - var _loop_3 = function(originKey2) { - var _d; - var style = originstyles[originKey2]; - if (is_plain_object_default(style) && !ARROWS2.includes(originKey2)) { - var subShape = group2.find(function(element) { - return element.get("name") === originKey2; - }); - if (subShape) { - if (originKey2 === keyShapeName_1) { - keyShapeSetted = true; - } - if (originKey2 !== "collapse-icon") - subShape.attr(style); - } - } else if (!keyShapeSetted) { - var value_4 = style || SHAPES_DEFAULT_ATTRS2[type2][originKey2]; - shape.attr((_d = {}, _d[originKey2] = value_4, _d)); - } - }; - for (var originKey in originstyles) { - _loop_3(originKey); - } - } - } - }, "single-node"); -}; - -// node_modules/@ant-design/charts/es/graphs/flowAnalysisGraph/index.js -var __rest43 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -registerIndicatorCardNode(); -var defaultLayout11 = { - type: "dagre", - rankdir: "LR", - center: [0, 0], - nodesepFunc: function() { - return 1; - }, - ranksepFunc: function() { - return 1; - } -}; -var defaultProps10 = { - nodeCfg: { - type: "indicator-card", - size: defaultNodeSize, - style: defaultNodeStyle, - anchorPoints: defaultFlowGraphAnchorPoints, - padding: 6, - layout: "bundled", - nodeStateStyles: defaultStateStyles - }, - edgeCfg: { - type: "cubic-horizontal", - edgeStateStyles: defaultStateStyles - }, - behaviors: ["zoom-canvas", "drag-canvas"], - layout: defaultLayout11, - animate: true, - markerPosition: "right", - autoFit: true, - fitCenter: true, - style: { - position: "relative", - height: "inherit", - backgroundColor: "#fff" - } -}; -var FlowAnalysisGraph = function(props) { - var uProps = useProps3(props, defaultProps10).uProps; - var className = uProps.className, style = uProps.style, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate, rest = __rest43(uProps, ["className", "style", "loading", "loadingTemplate", "errorTemplate"]); - var container2 = useGraph2("Graph", rest, { name: "FlowAnalysisGraph" }).container; - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var flowAnalysisGraph_default = FlowAnalysisGraph; - -// node_modules/@ant-design/charts/es/graphs/decompositionTreeGraph/index.js -var __rest44 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -registerIndicatorCardNode(); -var defaultLayout12 = { - type: "compactBox", - direction: "LR", - getId: function(d3) { - return d3.id; - }, - getHeight: function() { - return 60; - }, - getWidth: function() { - return 16; - }, - getVGap: function() { - return 16; - }, - getHGap: function() { - return 100; - } -}; -var defaultProps11 = { - nodeCfg: { - type: "indicator-card", - size: defaultNodeSize, - style: defaultNodeStyle, - anchorPoints: defaultFlowGraphAnchorPoints, - padding: 6, - layout: "bundled", - nodeStateStyles: defaultStateStyles, - label: { - style: function(cfg, group2, type2) { - var styles = { - icon: { - width: 10, - height: 10 - }, - value: { - fill: "#000" - }, - text: { - fill: "#aaa" - } - }; - return type2 ? styles[type2] : {}; - } - } - }, - edgeCfg: { - type: "cubic-horizontal", - endArrow: { - type: "vee" - }, - edgeStateStyles: defaultStateStyles - }, - behaviors: ["zoom-canvas", "drag-canvas"], - layout: defaultLayout12, - animate: true, - autoFit: true, - fitCenter: true, - style: { - position: "relative", - height: "inherit", - backgroundColor: "#fff" - }, - level: 100 -}; -var DecompositionTreeGraph = function(props) { - var uProps = useProps3(props, defaultProps11).uProps; - var className = uProps.className, style = uProps.style, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate, rest = __rest44(uProps, ["className", "style", "loading", "loadingTemplate", "errorTemplate"]); - var container2 = useGraph2("TreeGraph", rest, { - name: "DecompositionTreeGraph" - }).container; - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var decompositionTreeGraph_default = DecompositionTreeGraph; - -// node_modules/@ant-design/charts/es/graphs/fundFlowGraph/customItem.js -var __assign29 = function() { - __assign29 = Object.assign || function(t4) { - for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { - s4 = arguments[i4]; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4)) - t4[p4] = s4[p4]; - } - return t4; - }; - return __assign29.apply(this, arguments); -}; -var getPathInfo = function(cfg) { - var edgeCfg = cfg.edgeCfg; - var startPoint = cfg.startPoint; - var endPoint = cfg.endPoint; - var startX = startPoint.x, startY = startPoint.y; - var endX = endPoint.x, endY = endPoint.y; - var Ydiff = endY - startY; - var slope = Ydiff !== 0 ? Math.min(500 / Math.abs(Ydiff), 20) : 0; - var cpOffset = slope > 15 ? 0 : 16; - var offset = Ydiff < 0 ? cpOffset : -cpOffset; - var line1EndPoint = { - x: startX + slope, - y: endY + offset - }; - var line2StartPoint = { - x: line1EndPoint.x + cpOffset, - y: endY - }; - var controlPoint = { - x: (line1EndPoint.x - startX) * (endY - startY) / (line1EndPoint.y - startY) + startX, - y: endY - }; - var path = [ - ["M", startX, startY], - ["L", line1EndPoint.x, line1EndPoint.y], - ["Q", controlPoint.x, controlPoint.y, line2StartPoint.x, line2StartPoint.y], - ["L", endX, endY] - ]; - if (Math.abs(Ydiff) <= 5) { - path = [ - ["M", startX, startY], - ["L", endX, endY] - ]; - } - var _a6 = edgeCfg, startArrowCfg = _a6.startArrow, endArrowCfg = _a6.endArrow; - var startArrow = getArrowCfg(startArrowCfg, cfg); - var endArrow = getArrowCfg(endArrowCfg, cfg); - return { - startArrow, - endArrow, - path, - line2StartPoint, - endY - }; -}; -var getPathText = function(value2) { - var text; - var subText; - if (value2 instanceof Object) { - text = value2.text; - subText = value2.subText; - } else { - text = value2; - } - return { text, subText }; -}; -var registerFundFlowItems = function() { - es_default5.registerNode("fund-card", { - draw: function(cfg, group2) { - var _a6, _b; - if (cfg === void 0) { - cfg = {}; - } - var _c = cfg.value, value2 = _c === void 0 ? {} : _c, nodeCfg = cfg.nodeCfg, markerCfg = cfg.markerCfg; - var _d = nodeCfg, _e = _d.label, label17 = _e === void 0 ? {} : _e, style = _d.style, _f = _d.padding, padding3 = _f === void 0 ? 0 : _f, customContent = _d.customContent; - var labelStyle = label17.style; - var paddingArray = getCssPadding(padding3); - var size2 = getSize4(cfg.size); - var height = 0; - var shapeWidth = size2[0]; - var contentWidth = shapeWidth - paddingArray[1] - paddingArray[3]; - var contentHeight = size2[1] - paddingArray[0] - paddingArray[2]; - var cardStyle = getStyle3(style, cfg, group2); - var shape = group2.addShape("rect", { - attrs: __assign29({ x: 0, y: 0, width: size2[0], height: size2[1], radius: size2[1] / 2, fill: "#fff", stroke: "#40a9ff" }, cardStyle), - name: "main-box", - draggable: true - }); - if (value2) { - height += paddingArray[0]; - var createRowItems_1 = function(item, contentWidth2, startX) { - var _a7, _b2; - var text = item.text, icon = item.icon; - var textShape; - var iconShape; - if (icon) { - iconShape = group2.addShape("image", { - attrs: __assign29({ x: startX, y: height, img: icon, width: contentHeight, height: contentHeight }, getStyle3(labelStyle, cfg, group2, "icon")), - name: "fund-icon" - }); - } - textShape = group2 === null || group2 === void 0 ? void 0 : group2.addShape("text", { - attrs: __assign29(__assign29({ textBaseline: "middle", textAlign: iconShape ? "start" : "center", x: startX + (iconShape ? (iconShape === null || iconShape === void 0 ? void 0 : iconShape.getBBox().width) + defaultMargin : contentWidth2 / 2), y: paddingArray[0] + contentHeight / 2, text }, defaultLabelStyle), getStyle3(labelStyle, cfg, group2, "text")), - name: "fund-text" - }); - return [(_a7 = textShape === null || textShape === void 0 ? void 0 : textShape.getBBox().height) !== null && _a7 !== void 0 ? _a7 : 0, (_b2 = iconShape === null || iconShape === void 0 ? void 0 : iconShape.getBBox().height) !== null && _b2 !== void 0 ? _b2 : 0]; - }; - var createItems = function(item) { - var _a7; - var itemsHeight = []; - if (customContent) { - itemsHeight.push((_a7 = customContent(item, group2, { - startX: paddingArray[3], - startY: height, - width: contentWidth - })) !== null && _a7 !== void 0 ? _a7 : 0); - } else { - itemsHeight.push.apply(itemsHeight, createRowItems_1(item, contentWidth, paddingArray[3])); - } - height += Math.max.apply(Math, itemsHeight); - }; - createItems(value2); - } - shape === null || shape === void 0 ? void 0 : shape.attr("height", Math.max(size2[1], height + paddingArray[2])); - if (markerCfg) { - var stateCollapsed = ((_b = (_a6 = group2 === null || group2 === void 0 ? void 0 : group2.get("item")) === null || _a6 === void 0 ? void 0 : _a6.getModel()) !== null && _b !== void 0 ? _b : {}).collapsed; - var _g = shape.getBBox(), shapeWidth_1 = _g.width, shapeHeight = _g.height; - var _h = typeof markerCfg === "function" ? markerCfg(cfg, group2) : markerCfg, show = _h.show, _j = _h.position, position2 = _j === void 0 ? "right" : _j, collapsed = _h.collapsed, markerStyle = _h.style; - createMarker({ - show, - position: position2, - collapsed: stateCollapsed !== null && stateCollapsed !== void 0 ? stateCollapsed : collapsed, - style: markerStyle - }, group2, [shapeWidth_1, shapeHeight]); - shape.attr("defaultCollapsed", collapsed); - } - return shape; - }, - update: void 0 - }, "single-node"); - es_default5.registerEdge("fund-line", { - draw: function draw4(cfg, group2) { - if (cfg === void 0) { - cfg = {}; - } - var edgeCfg = cfg.edgeCfg, value2 = cfg.value; - var _a6 = getPathText(value2), text = _a6.text, subText = _a6.subText; - var _b = edgeCfg, edgeStyle = _b.style, labelCfg = _b.label; - var _c = getPathInfo(cfg), startArrow = _c.startArrow, endArrow = _c.endArrow, path = _c.path, line2StartPoint = _c.line2StartPoint, endY = _c.endY; - var labelStyle = (labelCfg !== null && labelCfg !== void 0 ? labelCfg : {}).style; - var line2 = group2.addShape("path", { - attrs: __assign29({ path, stroke: "#ccc", startArrow, endArrow }, typeof edgeStyle === "function" ? edgeStyle(cfg, group2) : edgeStyle), - name: "path-shape" - }); - var createItem = function(itemText, key) { - group2.addShape("text", { - attrs: __assign29(__assign29({ text: itemText, x: line2StartPoint.x, y: key === "text" ? endY - 4 : endY + 16 }, defaultLabelStyle), getStyle3(labelStyle, cfg, group2, key)), - name: "line-text-" + key - }); - }; - text && createItem(text, "text"); - subText && createItem(subText, "subText"); - return line2; - }, - update: function(cfg, edge2) { - var edgeCfg = cfg.edgeCfg, value2 = cfg.value; - var _a6 = getPathText(value2), text = _a6.text, subText = _a6.subText; - var group2 = edge2.getContainer(); - var getShape3 = function(shapeName) { - return group2.get("children").find(function(item) { - return item.get("name") === shapeName; - }); - }; - var _b = getPathInfo(cfg), startArrow = _b.startArrow, endArrow = _b.endArrow, path = _b.path, line2StartPoint = _b.line2StartPoint, endY = _b.endY; - var _c = edgeCfg, edgeStyle = _c.style, labelCfg = _c.label; - var labelStyle = (labelCfg !== null && labelCfg !== void 0 ? labelCfg : {}).style; - var pathShape = getShape3("path-shape"); - pathShape === null || pathShape === void 0 ? void 0 : pathShape.attr(__assign29({ path, stroke: "#ccc", startArrow, endArrow }, typeof edgeStyle === "function" ? edgeStyle(cfg, group2) : edgeStyle)); - var texts = ["text", "subText"]; - texts.forEach(function(key) { - var textShape = getShape3("line-text-" + key); - textShape === null || textShape === void 0 ? void 0 : textShape.attr(__assign29(__assign29({ x: line2StartPoint.x, y: key === "text" ? endY - 4 : endY + 16, text: key === "text" ? text : subText }, defaultLabelStyle), getStyle3(labelStyle, cfg, group2, key))); - }); - } - }, "single-edge"); -}; - -// node_modules/@ant-design/charts/es/graphs/fundFlowGraph/index.js -var __rest45 = function(s4, e4) { - var t4 = {}; - for (var p4 in s4) - if (Object.prototype.hasOwnProperty.call(s4, p4) && e4.indexOf(p4) < 0) - t4[p4] = s4[p4]; - if (s4 != null && typeof Object.getOwnPropertySymbols === "function") - for (var i4 = 0, p4 = Object.getOwnPropertySymbols(s4); i4 < p4.length; i4++) { - if (e4.indexOf(p4[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p4[i4])) - t4[p4[i4]] = s4[p4[i4]]; - } - return t4; -}; -registerFundFlowItems(); -var defaultLayout13 = { - type: "dagre", - rankdir: "LR", - nodesep: 30, - ranksep: 50 -}; -var defaultProps12 = { - nodeCfg: { - type: "fund-card", - size: defaultNodeSize, - style: defaultNodeStyle, - anchorPoints: defaultFlowGraphAnchorPoints, - nodeStateStyles: defaultStateStyles, - padding: 6 - }, - edgeCfg: { - type: "fund-line", - edgeStateStyles: defaultStateStyles, - style: { - stroke: "#40a9ff" - }, - endArrow: { - fill: "#40a9ff" - } - }, - behaviors: ["zoom-canvas", "drag-canvas"], - layout: defaultLayout13, - animate: true, - autoFit: true, - fitCenter: true, - style: { - position: "relative", - height: "inherit", - backgroundColor: "#fff" - } -}; -var FundFlowGraph = function(props) { - var uProps = useProps3(props, defaultProps12).uProps; - var className = uProps.className, style = uProps.style, loading = uProps.loading, loadingTemplate = uProps.loadingTemplate, errorTemplate = uProps.errorTemplate, rest = __rest45(uProps, ["className", "style", "loading", "loadingTemplate", "errorTemplate"]); - var container2 = useGraph2("Graph", rest, { name: "FundFlowGraph" }).container; - return compat_module_default.createElement(errorBoundary_default, { errorTemplate }, loading && compat_module_default.createElement(createLoading_default, { loadingTemplate }), compat_module_default.createElement("div", { className, style, ref: container2 })); -}; -var fundFlowGraph_default = FundFlowGraph; - -// node_modules/@ant-design/charts/es/index.js -var es_default6 = { - Area: area_default2, - Bar: bar_default, - Box: box_default, - Bullet: bullet_default, - Column: column_default, - Funnel: funnel_default, - Histogram: histogram_default, - Line: line_default10, - Liquid: liquid_default, - Heatmap: heatmap_default2, - Pie: pie_default2, - Progress: progress_default, - Radar: radar_default, - Facet: facet_default, - RingProgress: ringProgress_default, - Rose: rose_default, - Chord: chord_default, - Scatter: scatter_default, - TinyArea: tinyArea_default, - TinyColumn: tinyColumn_default, - TinyLine: tinyLine_default, - Waterfall: waterfall_default, - WordCloud: wordCloud_default, - Sunburst: sunburst_default, - DualAxes: dualAxes_default, - Stock: stock_default, - RadialBar: radialBar_default, - Gauge: gauge_default, - Sankey: sankey_default, - Treemap: treemap_default2, - Violin: violin_default2, - MultiView: mix_default, - Mix: mix_default, - Venn: venn_default, - BidirectionalBar: bidirectionalBar_default, - OrganizationTreeGraph: organizationTreeGraph_default, - DagreGraph: dagre_default2, - IndentedTree: indented_default, - DagreFundFlowGraph: dagreFundFlow_default, - IndentedTreeGraph: indentedTreeGraph_default, - FlowAnalysisGraph: flowAnalysisGraph_default, - RadialTreeGraph: radialTreeGraph_default, - DecompositionTreeGraph: decompositionTreeGraph_default, - OrganizationGraph: organizationGraph_default, - OrganizationalGraph: organizationalGraph_default, - RadialGraph: radialGraph_default, - FundFlowGraph: fundFlowGraph_default, - G2: esm_exports3, - flow, - measureTextWidth: measureTextWidth2, - adaptors -}; - -// src/components/Chart.tsx -var import_errorBoundary2 = __toModule(require_errorBoundary()); -es_default6.G2.registerTheme("theme1", { - colors10: ["#FF6B3B", "#626681", "#FFC100", "#9FB40F", "#76523B", "#DAD5B5", "#0E8E89", "#E19348", "#F383A2", "#247FEA"], - colors20: ["#FF6B3B", "#626681", "#FFC100", "#9FB40F", "#76523B", "#DAD5B5", "#0E8E89", "#E19348", "#F383A2", "#247FEA", "#2BCB95", "#B1ABF4", "#1D42C2", "#1D9ED1", "#D64BC0", "#255634", "#8C8C47", "#8CDAE5", "#8E283B", "#791DC9"] -}); -es_default6.G2.registerTheme("theme2", { - "colors10": ["#025DF4", "#DB6BCF", "#2498D1", "#BBBDE6", "#4045B2", "#21A97A", "#FF745A", "#007E99", "#FFA8A8", "#2391FF"], - "colors20": ["#025DF4", "#DB6BCF", "#2498D1", "#BBBDE6", "#4045B2", "#21A97A", "#FF745A", "#007E99", "#FFA8A8", "#2391FF", "#FFC328", "#A0DC2C", "#946DFF", "#626681", "#EB4185", "#CD8150", "#36BCCB", "#327039", "#803488", "#83BC99"] -}); -var Chart2 = ({ type: type2, config }) => { - const Component4 = es_default6[type2]; - return /* @__PURE__ */ compat_module_default.createElement(import_errorBoundary2.default, null, /* @__PURE__ */ compat_module_default.createElement(Component4, __spreadProps(__spreadValues({}, config), { - onReady: (chart) => { - if (chart instanceof Plot) { - const custom12 = {}; - if (config.theme && config.backgroundColor) { - custom12.theme = { background: config.backgroundColor }; - } - if (config.padding) { - custom12.padding = config.padding; - } - if (custom12.theme || config.padding) { - chart.update(custom12); - } - } - } - }))); -}; - -// src/parser.ts -var import_obsidian2 = __toModule(require("obsidian")); - -// src/tools.ts -var import_papaparse = __toModule(require_papaparse_min()); -var import_obsidian = __toModule(require("obsidian")); -function insertEditor(editor, data3) { - editor.somethingSelected ? editor.replaceSelection(data3) : editor.setLine(editor.getCursor().line, data3); -} -function getFolderOptions(app) { - const options = {}; - import_obsidian.Vault.recurseChildren(app.vault.getRoot(), (f3) => { - if (f3 instanceof import_obsidian.TFolder) { - options[f3.path] = f3.path; - } - }); - return options; -} -function parseCsv(content) { - return import_papaparse.default.parse(content, { - header: true, - skipEmptyLines: true, - comments: false, - dynamicTyping: true - }).data; -} -function getWordCountRegex() { - const spaceDelimitedChars = /A-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source; - const nonSpaceDelimitedWords = /\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u4E00-\u9FD5/.source; - const nonSpaceDelimitedWordsOther = /[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u4E00-\u9FD5]{1}/.source; - return new RegExp([ - `(?:[0-9]+(?:(?:,|\\.)[0-9]+)*|[\\-${spaceDelimitedChars}])+`, - nonSpaceDelimitedWords, - nonSpaceDelimitedWordsOther - ].join("|"), "g"); -} -function getWordCount(text, filter2) { - const words = {}; - const matchs = text.match(getWordCountRegex()); - if (matchs) { - matchs.forEach((match) => { - match = match.toLowerCase(); - words[match] = words[match] ? words[match] + 1 : 1; - }); - } - const wordCount = []; - const ignoreRegex = new RegExp(filter2.split("\n").map((e4) => ["^", e4.trim(), "$"].join("")).join("|"), "i"); - for (const word2 in words) { - if (!ignoreRegex.test(word2)) { - wordCount.push({ word: word2, count: words[word2] }); - } - } - return wordCount; -} - -// src/parser.ts -var import_obsidian_dataview = __toModule(require_lib4()); -var functionRegex = /^\s*function\s*.*\(.*\)\s*\{[\w\W]*\}\s*/i; -function parseConfig(content, plugin, sourcePath) { - return __async(this, null, function* () { - const dataProps = (0, import_obsidian2.parseYaml)(content); - const type2 = dataProps["type"]; - const chart = es_default6[type2]; - if (chart === void 0) { - throw new Error(`Unsupported chart type ${type2}.`); - } - const data3 = dataProps["data"]; - const options = stringToFunction(dataProps["options"] || {}); - if (type2 == "MultiView" || type2 == "Mix") { - return { - type: type2, - config: yield parseMultiViewConfig(dataProps, data3, options, plugin, sourcePath) - }; - } else { - return { - type: type2, - config: __spreadValues({ data: yield loadFromFile(data3, plugin, sourcePath) }, options) - }; - } - }); -} -function stringToFunction(options) { - for (const key in options) { - const value2 = options[key]; - if (value2) { - if (typeof value2 === "string" && functionRegex.test(value2)) { - options[key] = (0, eval)(`(${value2})`); - } else if (Array.isArray(value2)) { - options[key] = value2.map(stringToFunction); - } else if (typeof value2 === "object") { - options[key] = stringToFunction(value2); - } - } - } - return options; -} -function parseMultiViewConfig(dataProps, data3, options, plugin, sourcePath) { - return __async(this, null, function* () { - const temp = new Map(); - const views = []; - for (const key in dataProps) { - const keyParts = key.split("."); - if (keyParts.length !== 2 || keyParts[0] !== "options" && keyParts[0] !== "data") { - continue; - } - const viewType = keyParts[1]; - const view = temp.get(viewType) || {}; - view[keyParts[0]] = dataProps[key]; - temp.set(viewType, view); - } - for (let v3 of temp.values()) { - views.push(__spreadValues({ data: (yield loadFromFile(v3["data"], plugin, sourcePath)) || data3 }, stringToFunction(v3["options"] || {}))); - } - return __spreadValues({ views }, options); - }); -} -function loadFromFile(data3, plugin, sourcePath) { - return __async(this, null, function* () { - if (typeof data3 === "string") { - if (data3.startsWith("wordcount:")) { - return loadFromMdWordCount(data3.replace("wordcount:", ""), plugin); - } else if (data3.startsWith("dataviewjs:")) { - return loadFromDataViewPlugin(data3.replace("dataviewjs:", ""), plugin, sourcePath); - } else { - return loadFromCsv(data3, plugin); - } - } else { - return data3; - } - }); -} -var dataViewApiProxy = function(api, currentFilePath) { - return { - pagePaths: function(query) { - return api.pagePaths(query, currentFilePath); - }, - page: function(path) { - return api.page(path, currentFilePath); - }, - pages: function(query) { - return api.pages(query, currentFilePath); - }, - current: function() { - return api.page(currentFilePath, currentFilePath); - }, - array: function(raw) { - return api.array(raw); - }, - isArray: function(raw) { - return api.isArray(raw); - }, - fileLink: function(path, embed = false, display) { - return import_obsidian_dataview.Link.file(path, embed, display); - }, - date: function(pathlike) { - return api.date(pathlike); - } - }; -}; -function loadFromDataViewPlugin(content, plugin, sourcePath) { - return __async(this, null, function* () { - var _a6; - if (plugin.app.plugins.enabledPlugins.has("dataview")) { - const api = (_a6 = plugin.app.plugins.plugins.dataview) == null ? void 0 : _a6.api; - if (api) { - return new Function("dv", content).call(void 0, dataViewApiProxy(api, sourcePath)); - } else { - throw new Error(`Obsidian Dataview is not ready.`); - } - } else { - throw new Error(`Obsidian Dataview is required.`); - } - }); -} -function loadFromMdWordCount(fileName, plugin) { - return __async(this, null, function* () { - const fileOrPaths = fileName.split(","); - const contents = []; - for (const file of plugin.app.vault.getMarkdownFiles()) { - if (file.basename == fileName || fileOrPaths.contains(file.basename) || containedParent(file.parent, fileOrPaths)) { - const content = yield plugin.app.vault.cachedRead(file); - contents.push(content); - } - } - if (contents.length == 0) { - throw new Error("No words found."); - } - return getWordCount(contents.join("\n"), plugin.settings.wordCountFilter); - }); -} -function containedParent(folder, fileOrPaths) { - const contained = fileOrPaths.contains(`${folder.name}/`); - if (contained || folder.parent == void 0) { - return contained; - } else { - return containedParent(folder.parent, fileOrPaths); - } -} -function loadFromCsv(data3, plugin) { - return __async(this, null, function* () { - const csvFileNames = data3.split(","); - const value2 = []; - for (const name of csvFileNames.values()) { - const file = plugin.app.vault.getAbstractFileByPath(plugin.settings.dataPath + "/" + name.trim()); - if (file instanceof import_obsidian2.TFile) { - value2.push(parseCsv(yield plugin.app.vault.read(file))); - } else { - value2.push({}); - } - } - if (value2.length == 0) { - return {}; - } - if (value2.length == 1) { - return value2[0]; - } - return value2; - }); -} - -// src/settings.tsx -var import_obsidian3 = __toModule(require("obsidian")); -var DEFAULT_SETTINGS = { - theme: "default", - dataPath: "", - backgroundColor: "transparent", - paddingTop: 30, - paddingRight: 30, - paddingBottom: 30, - paddingLeft: 30, - wordCountFilter: `[A-z]{1,2} -[0-9]+ -(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*) -and -are -but -did -for -get -got -had -has -her -him -his -its -not -our -she -the -was -you -been -from -have -into -mine -ours -that -them -they -this -went -were -with -these -those` -}; -var ChartsViewSettingTab = class extends import_obsidian3.PluginSettingTab { - constructor(app, plugin) { - super(app, plugin); - this.plugin = plugin; - } - display() { - let { containerEl } = this; - containerEl.empty(); - containerEl.createEl("h2", { text: "Charts View Settings" }); - new import_obsidian3.Setting(containerEl).setName("Theme").setDesc("Choose default color scheme.").addDropdown((dropdown) => dropdown.addOption("default", "default").addOption("dark", "dark").addOption("theme1", "Theme #1").addOption("theme2", "Theme #2").setValue(this.plugin.settings.theme).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.theme = value2; - yield this.plugin.saveSettings(); - }))); - new import_obsidian3.Setting(containerEl).setName("Background Color").setDesc("Change the background color of chart. e.g., #FFFFFF").addText((text) => text.setPlaceholder("transparent").setValue(this.plugin.settings.backgroundColor).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.backgroundColor = value2; - yield this.plugin.saveSettings(); - }))); - new import_obsidian3.Setting(containerEl).setName("Chart Padding").setDesc("Change the padding of chart. (Top, Right, Bottom, Left)").addText((text) => { - text.inputEl.size = 5; - text.setPlaceholder("30").setValue(String(this.plugin.settings.paddingTop)).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.paddingTop = Number(value2); - yield this.plugin.saveSettings(); - })); - }).addText((text) => { - text.inputEl.size = 5; - text.setPlaceholder("30").setValue(String(this.plugin.settings.paddingRight)).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.paddingRight = Number(value2); - yield this.plugin.saveSettings(); - })); - }).addText((text) => { - text.inputEl.size = 5; - text.setPlaceholder("30").setValue(String(this.plugin.settings.paddingBottom)).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.paddingBottom = Number(value2); - yield this.plugin.saveSettings(); - })); - }).addText((text) => { - text.inputEl.size = 5; - text.setPlaceholder("30").setValue(String(this.plugin.settings.paddingLeft)).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.paddingLeft = Number(value2); - yield this.plugin.saveSettings(); - })); - }); - new import_obsidian3.Setting(containerEl).setName("Data Folder").setDesc("Choose default folder for loading chart datas.").addDropdown((dropdown) => dropdown.addOptions(getFolderOptions(this.app)).setValue(this.plugin.settings.dataPath).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.dataPath = value2; - yield this.plugin.saveSettings(); - }))); - new import_obsidian3.Setting(containerEl).setName("Word Filter").setDesc("For word count, any words in the list will be ignored.").addTextArea((text) => { - text.inputEl.rows = 6; - text.setValue(this.plugin.settings.wordCountFilter).onChange((value2) => __async(this, null, function* () { - this.plugin.settings.wordCountFilter = value2; - yield this.plugin.saveSettings(); - })); - }); - if (import_obsidian3.Platform.isDesktopApp) { - compat_module_default.render(/* @__PURE__ */ compat_module_default.createElement(compat_module_default.Fragment, null, /* @__PURE__ */ compat_module_default.createElement("p", null, "Make a donation to support Charts View plugin development."), /* @__PURE__ */ compat_module_default.createElement("p", null, "\u2764\uFE0F Thank you for your support. \u2764\uFE0F"), /* @__PURE__ */ compat_module_default.createElement("a", { - href: "https://paypal.me/caronchenhz", - className: "paypal" - }, /* @__PURE__ */ compat_module_default.createElement("svg", { - width: "145px", - height: "37px", - viewBox: "0 0 145 37", - version: "1.1", - xmlns: "http://www.w3.org/2000/svg", - xmlnsXlink: "http://www.w3.org/1999/xlink" - }, /* @__PURE__ */ compat_module_default.createElement("defs", null, /* @__PURE__ */ compat_module_default.createElement("polygon", { - id: "path-1", - points: "0 0.30377 29.7890799 0.30377 29.7890799 36.629778 0 36.629778" - }), /* @__PURE__ */ compat_module_default.createElement("polygon", { - id: "path-3", - points: "0 0.30377 27.0026179 0.30377 27.0026179 32.599368 0 32.599368" - }), /* @__PURE__ */ compat_module_default.createElement("polygon", { - id: "path-5", - points: "0 0.30377 27.0025944 0.30377 27.0025944 32.599368 0 32.599368" - })), /* @__PURE__ */ compat_module_default.createElement("g", { - id: "Page-1", - stroke: "none", - strokeWidth: "1", - fill: "none", - fillRule: "evenodd" - }, /* @__PURE__ */ compat_module_default.createElement("g", { - id: "01.2---Corp-Landing---Sticky-Nav", - transform: "translate(-80.000000, -21.000000)" - }, /* @__PURE__ */ compat_module_default.createElement("g", { - id: "logo-paypal", - transform: "translate(80.000000, 21.000000)" - }, /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M112.489747,16.203225 C112.054389,19.158415 109.870796,19.158415 107.758093,19.158415 L106.556562,19.158415 L107.399352,13.640975 C107.450549,13.307605 107.728735,13.061925 108.055253,13.061925 L108.606253,13.061925 C110.04408,13.061925 111.402426,13.061925 112.102364,13.908485 C112.521611,14.415015 112.647994,15.165745 112.489747,16.203225 M111.570698,8.493535 L103.60429,8.493535 C103.059735,8.493535 102.595735,8.903125 102.511241,9.458865 L99.2897346,30.568475 C99.2260062,30.985095 99.5374877,31.362125 99.9456358,31.362125 L104.033204,31.362125 C104.414142,31.362125 104.739228,31.075005 104.798302,30.686135 L105.711623,24.701385 C105.796833,24.145275 106.260475,23.735315 106.805031,23.735315 L109.325525,23.735315 C114.572735,23.735315 117.600907,21.111645 118.3925,15.910185 C118.748735,13.635425 118.406821,11.847955 117.376068,10.596615 C116.243278,9.220955 114.235475,8.493535 111.570698,8.493535", - id: "Fill-1", - fill: "#009CDE" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M55.6725531,16.203225 C55.2371951,19.158415 53.0532444,19.158415 50.9412568,19.158415 L49.7393679,19.158415 L50.582158,13.640975 C50.6333556,13.307605 50.9115407,13.061925 51.2380593,13.061925 L51.7890593,13.061925 C53.2268864,13.061925 54.5852321,13.061925 55.2851704,13.908485 C55.7040593,14.415015 55.8308,15.165745 55.6725531,16.203225 M54.7535037,8.493535 L46.7870963,8.493535 C46.2425407,8.493535 45.7788988,8.903125 45.6936889,9.458865 L42.4725407,30.568475 C42.4091704,30.985095 42.7206519,31.362125 43.128442,31.362125 L46.9320963,31.362125 C47.4766519,31.362125 47.9402938,30.952165 48.0255037,30.396055 L48.8944296,24.701385 C48.9792815,24.145275 49.4432815,23.735315 49.987837,23.735315 L52.5086889,23.735315 C57.7555407,23.735315 60.7840716,21.111645 61.5753062,15.910185 C61.9315407,13.635425 61.5896272,11.847955 60.5592321,10.596615 C59.426084,9.220955 57.4182815,8.493535 54.7535037,8.493535", - id: "Fill-3", - fill: "#003087" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M73.2472333,23.781713 C72.8788259,26.034273 71.1484926,27.546093 68.9416284,27.546093 C67.8353321,27.546093 66.949579,27.178313 66.3803198,26.482343 C65.8160728,25.791923 65.6034062,24.808093 65.7824185,23.712893 C66.1261222,21.480683 67.8840235,19.919653 70.0572333,19.919653 C71.140616,19.919653 72.0199247,20.291133 72.6002827,20.994133 C73.184579,21.701943 73.4144309,22.692063 73.2472333,23.781713 M78.563184,16.108653 L74.7487889,16.108653 C74.4219123,16.108653 74.1437272,16.354333 74.0925296,16.688073 L73.9253321,17.790303 L73.6582457,17.391073 C72.8322827,16.151573 70.9913198,15.737913 69.1525049,15.737913 C64.9385543,15.737913 61.338616,19.038313 60.6379617,23.667013 C60.2731346,25.976553 60.7908383,28.183233 62.0578877,29.723543 C63.222184,31.138793 64.8830605,31.727833 66.862221,31.727833 C70.2588012,31.727833 72.1430852,29.472683 72.1430852,29.472683 L71.9726654,30.568253 C71.908937,30.984873 72.2204185,31.361903 72.6285667,31.361903 L76.0638136,31.361903 C76.6083691,31.361903 77.0720111,30.952683 77.156863,30.396573 L79.2190852,16.901563 C79.2824556,16.485313 78.9709741,16.108653 78.563184,16.108653", - id: "Fill-5", - fill: "#003087" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M130.064427,23.781713 C129.69602,26.034273 127.966044,27.546093 125.75918,27.546093 C124.652526,27.546093 123.766773,27.178313 123.197156,26.482343 C122.633267,25.791923 122.4206,24.808093 122.599612,23.712893 C122.943316,21.480683 124.701217,19.919653 126.874427,19.919653 C127.957452,19.919653 128.837119,20.291133 129.417477,20.994133 C130.001773,21.701943 130.231625,22.692063 130.064427,23.781713 M135.380378,16.108653 L131.565983,16.108653 C131.239106,16.108653 130.960921,16.354333 130.909723,16.688073 L130.742526,17.790303 L130.47544,17.391073 C129.649477,16.151573 127.808156,15.737913 125.969699,15.737913 C121.755748,15.737913 118.15581,19.038313 117.455156,23.667013 C117.090686,25.976553 117.608032,28.183233 118.875081,29.723543 C120.03902,31.138793 121.700254,31.727833 123.679415,31.727833 C127.075995,31.727833 128.960279,29.472683 128.960279,29.472683 L128.789859,30.568253 C128.726131,30.984873 129.037612,31.361903 129.44576,31.361903 L132.881007,31.361903 C133.425563,31.361903 133.889205,30.952683 133.974057,30.396573 L136.036279,16.901563 C136.099649,16.485313 135.788168,16.108653 135.380378,16.108653", - id: "Fill-7", - fill: "#009CDE" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M98.8795457,16.108727 L95.0454593,16.108727 C94.678842,16.108727 94.3358543,16.296687 94.1296321,16.610077 L88.8408914,24.660167 L86.5992988,16.924947 C86.4593111,16.440617 86.0278914,16.108727 85.5391877,16.108727 L81.7702617,16.108727 C81.3148543,16.108727 80.9951383,16.571227 81.1415704,17.016707 L85.3633975,29.823147 L81.3925457,35.613277 C81.0807062,36.068007 81.3954099,36.696267 81.9345951,36.696267 L85.7647432,36.696267 C86.1277802,36.696267 86.4675457,36.512377 86.674484,36.204167 L99.4251753,17.186167 C99.7302123,16.731067 99.4151506,16.108727 98.8795457,16.108727", - id: "Fill-9", - fill: "#003087" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M139.876523,9.07314 L136.606684,30.56903 C136.543314,30.98565 136.855153,31.36194 137.262585,31.36194 L140.551042,31.36194 C141.095598,31.36194 141.55924,30.95235 141.644091,30.39661 L144.867746,9.287 C144.931474,8.87038 144.619993,8.49372 144.211844,8.49372 L140.532425,8.49372 C140.205548,8.49372 139.927363,8.7394 139.876523,9.07314", - id: "Fill-11", - fill: "#009CDE" - }), /* @__PURE__ */ compat_module_default.createElement("g", { - id: "Group-15", - transform: "translate(0.000000, 0.066415)" - }, /* @__PURE__ */ compat_module_default.createElement("mask", { - id: "mask-2", - fill: "white" - }, /* @__PURE__ */ compat_module_default.createElement("use", { - xlinkHref: "#path-1" - })), /* @__PURE__ */ compat_module_default.createElement("g", { - id: "Clip-14" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M26.8450852,9.532828 C27.2739988,6.706768 26.842221,4.784248 25.363221,3.042288 C23.7349247,1.124948 20.7933938,0.303548 17.0294802,0.303548 L6.10471481,0.303548 C5.33567778,0.303548 4.68085062,0.881858 4.56091235,1.667368 L0.0114925926,31.479008 C-0.0780135802,32.067308 0.361998765,32.599368 0.938060494,32.599368 L7.68252963,32.599368 L7.21709753,35.650018 C7.13869012,36.164688 7.52320864,36.629778 8.02730741,36.629778 L13.7120235,36.629778 C14.3851099,36.629778 14.9579494,36.123988 15.0628506,35.437268 L15.1187025,35.138308 L16.1895543,28.120148 L16.2586531,27.732388 C16.3635543,27.045668 16.9363938,26.539508 17.6091222,26.539508 L18.4594309,26.539508 C23.9669247,26.539508 28.2793321,24.227378 29.539221,17.539998 C30.0658753,14.745388 29.7934185,12.413278 28.4014185,10.773438 C27.9800235,10.277268 27.4562333,9.867308 26.8450852,9.532828", - id: "Fill-13", - fill: "#009CDE", - mask: "url(#mask-2)" - })), /* @__PURE__ */ compat_module_default.createElement("g", { - id: "Group-18", - transform: "translate(0.000000, 0.066415)" - }, /* @__PURE__ */ compat_module_default.createElement("mask", { - id: "mask-4", - fill: "white" - }, /* @__PURE__ */ compat_module_default.createElement("use", { - xlinkHref: "#path-3" - })), /* @__PURE__ */ compat_module_default.createElement("g", { - id: "Clip-17" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M26.8450852,9.532828 C27.2739988,6.706768 26.842221,4.784248 25.363221,3.042288 C23.7349247,1.124948 20.7933938,0.303548 17.0294802,0.303548 L6.10471481,0.303548 C5.33567778,0.303548 4.68085062,0.881858 4.56091235,1.667368 L0.0114925926,31.479008 C-0.0780135802,32.067308 0.361998765,32.599368 0.938060494,32.599368 L7.68252963,32.599368 L9.37670247,21.496778 L9.32407284,21.844948 C9.44401111,21.059808 10.0931099,20.481498 10.8625049,20.481498 L14.0679,20.481498 C20.3634062,20.481498 25.2930481,17.838218 26.7333815,10.194018 C26.7759864,9.967578 26.8125049,9.748538 26.8450852,9.532828", - id: "Fill-16", - fill: "#012169", - mask: "url(#mask-4)" - })), /* @__PURE__ */ compat_module_default.createElement("g", { - id: "Group-21", - transform: "translate(0.000000, 0.066415)" - }, /* @__PURE__ */ compat_module_default.createElement("mask", { - id: "mask-6", - fill: "white" - }, /* @__PURE__ */ compat_module_default.createElement("use", { - xlinkHref: "#path-5" - })), /* @__PURE__ */ compat_module_default.createElement("g", { - id: "Clip-20" - }), /* @__PURE__ */ compat_module_default.createElement("path", { - d: "M11.196721,9.570198 C11.268684,9.098078 11.5622642,8.711058 11.9571654,8.515698 C12.1365358,8.426898 12.3370296,8.377318 12.5471901,8.377318 L21.1107827,8.377318 C22.1254247,8.377318 23.0713259,8.445768 23.9363136,8.590068 C24.1833506,8.630768 24.4239432,8.678128 24.6573753,8.731778 C24.8911654,8.785428 25.1177951,8.845368 25.3372642,8.911598 C25.4471778,8.944898 25.5549432,8.979678 25.6612765,9.015938 C26.0858938,9.161718 26.4811531,9.333398 26.8452642,9.532828 C27.2738198,6.706768 26.842042,4.783878 25.363042,3.042288 C23.7351037,1.124948 20.7932148,0.303548 17.0296593,0.303548 L6.10489383,0.303548 C5.33549877,0.303548 4.6806716,0.881858 4.56073333,1.667368 L0.0116716049,31.479008 C-0.0781925926,32.067308 0.361819753,32.599368 0.937881481,32.599368 L7.68270864,32.599368 L9.37688148,21.496778 L11.196721,9.570198 Z", - id: "Fill-19", - fill: "#003087", - mask: "url(#mask-6)" - })))))))), containerEl.createDiv({ cls: "chartsview-donation" })); - } - } -}; - -// src/components/Modal.ts -var import_obsidian4 = __toModule(require("obsidian")); - -// src/templates.ts -var ChartTemplateType; -(function(ChartTemplateType2) { - ChartTemplateType2["Bar"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBCYXIKCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgZGF0YSAgICAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCmRhdGE6CiAgLSBhY3Rpb246ICJCcm93c2UgdGhlIHdlYnNpdGUiCiAgICBwdjogNTAwMDAKICAtIGFjdGlvbjogIkFkZCB0byBjYXJ0IgogICAgcHY6IDM1MDAwCiAgLSBhY3Rpb246ICJHZW5lcmF0ZSBvcmRlcnMiCiAgICBwdjogMjUwMDAKICAtIGFjdGlvbjogIlBheSBvcmRlciIKICAgIHB2OiAxNTAwMAogIC0gYWN0aW9uOiAiU2VhbCB0aGUgZGVhbCIKICAgIHB2OiA4NTAwCgojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IG9wdGlvbnMgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwpvcHRpb25zOgogIHhGaWVsZDogInB2IgogIHlGaWVsZDogImFjdGlvbiIKICBjb252ZXJzaW9uVGFnOiB7fQpgYGA="; - ChartTemplateType2["Pie"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBQaWUKCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgZGF0YSAgICAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCmRhdGE6CiAgLSB0eXBlOiAiV2FnZSBpbmNvbWUgcGVyIGNhcGl0YSAowqUpIgogICAgdmFsdWU6IDE3OTE3CiAgLSB0eXBlOiAiT3BlcmF0aW5nIG5ldCBpbmNvbWUgcGVyIGNhcGl0YSAowqUpIgogICAgdmFsdWU6IDUzMDcKICAtIHR5cGU6ICJQcm9wZXJ0eSBQZXIgQ2FwaXRhIE5ldCBJbmNvbWUgKMKlKSIKICAgIHZhbHVlOiAyNzkxCiAgLSB0eXBlOiAiVHJhbnNmZXIgb2YgbmV0IGluY29tZSBwZXIgY2FwaXRhICjCpSkiCiAgICB2YWx1ZTogNjE3MwoKIy0tLS0tLS0tLS0tLS0tLS0tIwojLSBjaGFydCBvcHRpb25zIC0jCiMtLS0tLS0tLS0tLS0tLS0tLSMKb3B0aW9uczoKICBhbmdsZUZpZWxkOiAidmFsdWUiCiAgY29sb3JGaWVsZDogInR5cGUiCiAgcmFkaXVzOiAwLjUKICBsYWJlbDoKICAgIHR5cGU6ICJzcGlkZXIiCiAgICBjb250ZW50OiAie3BlcmNlbnRhZ2V9XG57bmFtZX0iCiAgbGVnZW5kOgogICAgbGF5b3V0OiAiaG9yaXpvbnRhbCIKICAgIHBvc2l0aW9uOiAiYm90dG9tIgpgYGA="; - ChartTemplateType2["WordCloud"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBXb3JkQ2xvdWQKCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgZGF0YSAgICAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCmRhdGE6CiAgLSB4OiAiQ2hpbmEiCiAgICB2YWx1ZTogMjM4MzIyMDAwMAogICAgY2F0ZWdvcnk6ICJhc2lhIgogIC0geDogIkluZG9uZXNpYSIKICAgIHZhbHVlOiAyNjM1MTAwMDAKICAgIGNhdGVnb3J5OiAiYXNpYSIKICAtIHg6ICJQYWtpc3RhbiIKICAgIHZhbHVlOiAzOTY0NTkwMDAKICAgIGNhdGVnb3J5OiAiYXNpYSIKICAtIHg6ICJSdXNzaWEiCiAgICB2YWx1ZTogNTQ2ODA0MzcyCiAgICBjYXRlZ29yeTogImV1cm9wZSIKICAtIHg6ICJKYXBhbiIKICAgIHZhbHVlOiAxMjY3OTAwMDAKICAgIGNhdGVnb3J5OiAiYXNpYSIKICAtIHg6ICJWaWV0bmFtIgogICAgdmFsdWU6IDkyNzAwMDAwCiAgICBjYXRlZ29yeTogImFzaWEiCiAgLSB4OiAiR2VybWFueSIKICAgIHZhbHVlOiA4MjgwMDAwMAogICAgY2F0ZWdvcnk6ICJldXJvcGUiCiAgLSB4OiAiSXJhbiIKICAgIHZhbHVlOiA4MDEzNTQwMAogICAgY2F0ZWdvcnk6ICJhc2lhIgogIC0geDogIlRoYWlsYW5kIgogICAgdmFsdWU6IDY4Mjk4MDAwCiAgICBjYXRlZ29yeTogImFzaWEiCiAgLSB4OiAiRnJhbmNlIgogICAgdmFsdWU6IDY3MDEzMDAwCiAgICBjYXRlZ29yeTogImV1cm9wZSIKICAtIHg6ICJJdGFseSIKICAgIHZhbHVlOiA2MDU5OTkzNgogICAgY2F0ZWdvcnk6ICJldXJvcGUiCiAgLSB4OiAiU291dGggS29yZWEiCiAgICB2YWx1ZTogNTE0NDYyMDEKICAgIGNhdGVnb3J5OiAiYXNpYSIKICAtIHg6ICJLZW55YSIKICAgIHZhbHVlOiA0ODQ2NzAwMAogICAgY2F0ZWdvcnk6ICJhZnJpY2EiCiAgLSB4OiAiU3BhaW4iCiAgICB2YWx1ZTogNDY4MTIwMDAKICAgIGNhdGVnb3J5OiAiZXVyb3BlIgogIC0geDogIlN1ZGFuIgogICAgdmFsdWU6IDQyMTc2MDAwCiAgICBjYXRlZ29yeTogImFmcmljYSIKICAtIHg6ICJJcmFxIgogICAgdmFsdWU6IDQ3ODgzNTQzCiAgICBjYXRlZ29yeTogImFzaWEiCiAgLSB4OiAiTmVwYWwiCiAgICB2YWx1ZTogMjg4MjU3MDkKICAgIGNhdGVnb3J5OiAiYXNpYSIKICAtIHg6ICJOb3J0aCBLb3JlYSIKICAgIHZhbHVlOiAyNDIxMzUxMAogICAgY2F0ZWdvcnk6ICJhc2lhIgogIC0geDogIkNoaWxlIgogICAgdmFsdWU6IDI4MTkxOTAwCiAgICBjYXRlZ29yeTogImFtZXJpY2EiCgojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IG9wdGlvbnMgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwpvcHRpb25zOgogIHdvcmRGaWVsZDogIngiCiAgd2VpZ2h0RmllbGQ6ICJ2YWx1ZSIKICBjb2xvcjogIiMxMjJjNmEiCiAgd29yZFN0eWxlOgogICAgZm9udEZhbWlseTogIlZlcmRhbmEiCiAgICBmb250U2l6ZTogWzI0LCA4MF0KICBpbnRlcmFjdGlvbnM6CiAgICB0eXBlOiAiZWxlbWVudC1hY3RpdmUiCiAgc3R5bGU6CiAgICBiYWNrZ3JvdW5kQ29sb3I6ICJ3aGl0ZSIKICBzdGF0ZToKICAgIGFjdGl2ZToKICAgICAgc3R5bGU6CiAgICAgICAgbGluZVdpZHRoOiAzCmBgYA=="; - ChartTemplateType2["WordCount"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBXb3JkQ2xvdWQKCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgZGF0YSAgICAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCmRhdGE6ICJ3b3JkY291bnQ6bm90ZS1uYW1lLWhlcmUtd2l0aG91dC1mb2xkLXBhdGgiCgojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IG9wdGlvbnMgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwpvcHRpb25zOgogIHdvcmRGaWVsZDogIndvcmQiCiAgd2VpZ2h0RmllbGQ6ICJjb3VudCIKICBjb2xvckZpZWxkOiAiY291bnQiCiAgd29yZFN0eWxlOgogICAgcm90YXRpb246IDMwCmBgYA=="; - ChartTemplateType2["Treemap"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBUcmVlbWFwCgojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IGRhdGEgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwpkYXRhOgogIG5hbWU6ICdyb290JwogIGNoaWxkcmVuOgogICAgLSBuYW1lOiAnRm9sZGVyIDEnCiAgICAgIHZhbHVlOiA1NjAKICAgIC0gbmFtZTogJ0ZvbGRlciAyJwogICAgICB2YWx1ZTogNTAwCiAgICAtIG5hbWU6ICdGb2xkZXIgMycKICAgICAgdmFsdWU6IDE1MAogICAgLSBuYW1lOiAnRm9sZGVyIDQnCiAgICAgIHZhbHVlOiAxNDAKICAgIC0gbmFtZTogJ0ZvbGRlciA1JwogICAgICB2YWx1ZTogMTE1CiAgICAtIG5hbWU6ICdGb2xkZXIgNicKICAgICAgdmFsdWU6IDk1CiAgICAtIG5hbWU6ICdGb2xkZXIgNycKICAgICAgdmFsdWU6IDkwCiAgICAtIG5hbWU6ICdGb2xkZXIgOCcKICAgICAgdmFsdWU6IDc1CiAgICAtIG5hbWU6ICdGb2xkZXIgOScKICAgICAgdmFsdWU6IDk4CiAgICAtIG5hbWU6ICdGb2xkZXIgMTAnCiAgICAgIHZhbHVlOiA2MAogICAgLSBuYW1lOiAnRm9sZGVyIDExJwogICAgICB2YWx1ZTogNDUKICAgIC0gbmFtZTogJ0ZvbGRlciAxMicKICAgICAgdmFsdWU6IDQwCiAgICAtIG5hbWU6ICdGb2xkZXIgMTMnCiAgICAgIHZhbHVlOiA0MAogICAgLSBuYW1lOiAnRm9sZGVyIDE0JwogICAgICB2YWx1ZTogMzUKICAgIC0gbmFtZTogJ0ZvbGRlciAxNScKICAgICAgdmFsdWU6IDQwCiAgICAtIG5hbWU6ICdGb2xkZXIgMTYnCiAgICAgIHZhbHVlOiA0MAogICAgLSBuYW1lOiAnRm9sZGVyIDE3JwogICAgICB2YWx1ZTogNDAKICAgIC0gbmFtZTogJ0ZvbGRlciAxOCcKICAgICAgdmFsdWU6IDMwCiAgICAtIG5hbWU6ICdGb2xkZXIgMTknCiAgICAgIHZhbHVlOiAyOAogICAgLSBuYW1lOiAnRm9sZGVyIDIwJwogICAgICB2YWx1ZTogMTYKCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgb3B0aW9ucyAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCm9wdGlvbnM6CiAgY29sb3JGaWVsZDogIm5hbWUiCmBgYAo="; - ChartTemplateType2["DualAxes"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBEdWFsQXhlcwoKIy0tLS0tLS0tLS0tLS0tLS0tIwojLSBjaGFydCBkYXRhICAgIC0jCiMtLS0tLS0tLS0tLS0tLS0tLSMKZGF0YToKICAtCiAgICAtIHRpbWU6ICIyMDE5LTAzIgogICAgICB2YWx1ZTogMzUwCiAgICAgIGNvdW50OiA4MDAKICAgIC0gdGltZTogIjIwMTktMDQiCiAgICAgIHZhbHVlOiA5MDAKICAgICAgY291bnQ6IDYwMAogICAgLSB0aW1lOiAiMjAxOS0wNSIKICAgICAgdmFsdWU6IDMwMAogICAgICBjb3VudDogNDAwCiAgICAtIHRpbWU6ICIyMDE5LTA2IgogICAgICB2YWx1ZTogNDUwCiAgICAgIGNvdW50OiAzODAKICAgIC0gdGltZTogIjIwMTktMDciCiAgICAgIHZhbHVlOiA0NzAKICAgICAgY291bnQ6IDIyCiAgLQogICAgLSB0aW1lOiAiMjAxOS0wMyIKICAgICAgdmFsdWU6IDM1MAogICAgICBjb3VudDogODAwCiAgICAtIHRpbWU6ICIyMDE5LTA0IgogICAgICB2YWx1ZTogOTAwCiAgICAgIGNvdW50OiA2MDAKICAgIC0gdGltZTogIjIwMTktMDUiCiAgICAgIHZhbHVlOiAzMDAKICAgICAgY291bnQ6IDQwMAogICAgLSB0aW1lOiAiMjAxOS0wNiIKICAgICAgdmFsdWU6IDQ1MAogICAgICBjb3VudDogMzgwCiAgICAtIHRpbWU6ICIyMDE5LTA3IgogICAgICB2YWx1ZTogNDcwCiAgICAgIGNvdW50OiAyMgoKIy0tLS0tLS0tLS0tLS0tLS0tIwojLSBjaGFydCBvcHRpb25zIC0jCiMtLS0tLS0tLS0tLS0tLS0tLSMKb3B0aW9uczoKICB4RmllbGQ6ICd0aW1lJwogIHlGaWVsZDogWyd2YWx1ZScsICdjb3VudCddCiAgeUF4aXM6CiAgICB2YWx1ZToKICAgICAgbWluOiAwCiAgICAgIGxhYmVsOgogICAgICAgIGZvcm1hdHRlcjoKICAgICAgICAgIGZ1bmN0aW9uIGZvcm1hdHRlcih2YWwpIHsKICAgICAgICAgICAgcmV0dXJuICcnLmNvbmNhdCh2YWwsICfkuKonKTsKICAgICAgICAgIH0KICBnZW9tZXRyeU9wdGlvbnM6CiAgICAtIGdlb21ldHJ5OiAnY29sdW1uJwogICAgLSBnZW9tZXRyeTogJ2xpbmUnCiAgICAgIGxpbmVTdHlsZToKICAgICAgICBsaW5lV2lkdGg6IDIKYGBg"; - ChartTemplateType2["Mix"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBNaXgKCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgZGF0YSAgICAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCmRhdGEuYXJlYToKICAtIHRpbWU6IDEyNDY0MDY0MDAwMDAKICAgIHRlbXBlcmF0dXJlOiBbMTQuMywgMjcuN10KICAtIHRpbWU6IDEyNDY0OTI4MDAwMDAKICAgIHRlbXBlcmF0dXJlOiBbMTQuNSwgMjcuOF0KICAtIHRpbWU6IDEyNDY1NzkyMDAwMDAKICAgIHRlbXBlcmF0dXJlOiBbMTUuNSwgMjkuNl0KICAtIHRpbWU6IDEyNDY2NjU2MDAwMDAKICAgIHRlbXBlcmF0dXJlOiBbMTYuNywgMzAuN10KICAtIHRpbWU6IDEyNDY3NTIwMDAwMDAKICAgIHRlbXBlcmF0dXJlOiBbMTYuNSwgMjUuMF0KICAtIHRpbWU6IDEyNDY4Mzg0MDAwMDAKICAgIHRlbXBlcmF0dXJlOiBbMTcuOCwgMjUuN10KCmRhdGEubGluZToKICAtIHRpbWU6IDEyNDY0MDY0MDAwMDAKICAgIHRlbXBlcmF0dXJlOiAyMS41CiAgLSB0aW1lOiAxMjQ2NDkyODAwMDAwCiAgICB0ZW1wZXJhdHVyZTogMjIuMQogIC0gdGltZTogMTI0NjU3OTIwMDAwMAogICAgdGVtcGVyYXR1cmU6IDIzCiAgLSB0aW1lOiAxMjQ2NjY1NjAwMDAwCiAgICB0ZW1wZXJhdHVyZTogMjMuOAogIC0gdGltZTogMTI0Njc1MjAwMDAwMAogICAgdGVtcGVyYXR1cmU6IDIxLjQKICAtIHRpbWU6IDEyNDY4Mzg0MDAwMDAKICAgIHRlbXBlcmF0dXJlOiAyMS4zCgojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IG9wdGlvbnMgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwpvcHRpb25zOgogIGFwcGVuZFBhZGRpbmc6IDgKICBzeW5jVmlld1BhZGRpbmc6IHRydWUKICB0b29sdGlwOgogICAgc2hhcmVkOiB0cnVlCiAgICBzaG93TWFya2VyczogZmFsc2UKICAgIHNob3dDcm9zc2hhaXJzOiB0cnVlCiAgICBvZmZzZXRZOiAtNTAKCm9wdGlvbnMuYXJlYToKICBheGVzOiB7fQogIG1ldGE6CiAgICB0aW1lOgogICAgICB0eXBlOiAndGltZScKICAgICAgbWFzazogJ01NLUREJwogICAgICBuaWNlOiB0cnVlCiAgICAgIHRpY2tJbnRlcnZhbDogMTcyODAwMDAwCiAgICAgIHJhbmdlOiBbMCwgMV0KICAgIHRlbXBlcmF0dXJlOgogICAgICBuaWNlOiB0cnVlCiAgICAgIHN5bmM6IHRydWUKICAgICAgYWxpYXM6ICfmuKnluqbojIPlm7QnCiAgZ2VvbWV0cmllczoKICAgIC0gdHlwZTogJ2FyZWEnCiAgICAgIHhGaWVsZDogJ3RpbWUnCiAgICAgIHlGaWVsZDogJ3RlbXBlcmF0dXJlJwogICAgICBtYXBwaW5nOiB7fQoKb3B0aW9ucy5saW5lOgogIGF4ZXM6IGZhbHNlCiAgbWV0YToKICAgIHRpbWU6CiAgICAgIHR5cGU6ICd0aW1lJwogICAgICBtYXNrOiAnTU0tREQnCiAgICAgIG5pY2U6IHRydWUKICAgICAgdGlja0ludGVydmFsOiAxNzI4MDAwMDAKICAgICAgcmFuZ2U6IFswLCAxXQogICAgdGVtcGVyYXR1cmU6CiAgICAgIHN5bmM6ICd0ZW1wZXJhdHVyZScKICAgICAgYWxpYXM6ICfmuKnluqYnCiAgZ2VvbWV0cmllczoKICAgIC0gdHlwZTogJ2xpbmUnCiAgICAgIHhGaWVsZDogJ3RpbWUnCiAgICAgIHlGaWVsZDogJ3RlbXBlcmF0dXJlJwogICAgICBtYXBwaW5nOiB7fQogICAgLSB0eXBlOiAncG9pbnQnCiAgICAgIHhGaWVsZDogJ3RpbWUnCiAgICAgIHlGaWVsZDogJ3RlbXBlcmF0dXJlJwogICAgICBtYXBwaW5nOgogICAgICAgIHNoYXBlOiAnY2lyY2xlJwogICAgICAgIHN0eWxlOgogICAgICAgICAgZmlsbE9wYWNpdHk6IDEKYGBg"; - ChartTemplateType2["OrganizationTreeGraph"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBPcmdhbml6YXRpb25UcmVlR3JhcGgKCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgZGF0YSAgICAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCmRhdGE6CiAgaWQ6ICJyb290IgogIGxhYmVsOiAiUm9vdCIKICBjaGlsZHJlbjoKICAgIC0gaWQ6ICJjMSIKICAgICAgbGFiZWw6ICJDMSIKICAgICAgY2hpbGRyZW46CiAgICAgICAgLSBpZDogImMxLTEiCiAgICAgICAgICBsYWJlbDogIkMxLTEiCiAgICAgICAgICBjaGlsZHJlbjoKICAgICAgICAgICAgLSBpZDogImMxLTEtMSIKICAgICAgICAgICAgICBsYWJlbDogIkMxLTEtMSIKICAgICAgICAgICAgLSBpZDogImMxLTEtMiIKICAgICAgICAgICAgICBsYWJlbDogIkMxLTEtMiIKICAgICAgICAtIGlkOiAiYzEtMiIKICAgICAgICAgIGxhYmVsOiAiQzEtMiIKICAgICAgICAgIGNoaWxkcmVuOgogICAgICAgICAgICAtIGlkOiAiYzEtMi0xIgogICAgICAgICAgICAgIGxhYmVsOiAiQzEtMi0xIgogICAgICAgICAgICAtIGlkOiAiYzEtMi0yIgogICAgICAgICAgICAgIGxhYmVsOiAiQzEtMi0yIgogICAgLSBpZDogImMyIgogICAgICBsYWJlbDogIkMyIgogICAgICBjaGlsZHJlbjoKICAgICAgICAtIGlkOiAiYzItMSIKICAgICAgICAgIGxhYmVsOiAiQzItMSIKICAgICAgICAgIGNoaWxkcmVuOgogICAgICAgICAgICAtIGlkOiAiYzItMS0xIgogICAgICAgICAgICAgIGxhYmVsOiAiQzItMS0xIgoKIy0tLS0tLS0tLS0tLS0tLS0tIwojLSBjaGFydCBvcHRpb25zIC0jCiMtLS0tLS0tLS0tLS0tLS0tLSMKb3B0aW9uczoge30KYGBg"; - ChartTemplateType2["Radar"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBSYWRhcgoKIy0tLS0tLS0tLS0tLS0tLS0tIwojLSBjaGFydCBkYXRhICAgIC0jCiMtLS0tLS0tLS0tLS0tLS0tLSMKZGF0YToKICAtIGl0ZW06ICJEZXNpZ24iCiAgICB1c2VyOiAiYSIKICAgIHNjb3JlOiA3MAogIC0gaXRlbTogIkRlc2lnbiIKICAgIHVzZXI6ICJiIgogICAgc2NvcmU6IDMwCiAgLSBpdGVtOiAiTWFya2V0aW5nIgogICAgdXNlcjogImEiCiAgICBzY29yZTogNTAKICAtIGl0ZW06ICJNYXJrZXRpbmciCiAgICB1c2VyOiAiYiIKICAgIHNjb3JlOiA2MAogIC0gaXRlbTogIlRlY2hub2xvZ3kiCiAgICB1c2VyOiAiYSIKICAgIHNjb3JlOiA1MAogIC0gaXRlbTogIlRlY2hub2xvZ3kiCiAgICB1c2VyOiAiYiIKICAgIHNjb3JlOiA0MAogIC0gaXRlbTogIlN1cHBvcnQiCiAgICB1c2VyOiAiYSIKICAgIHNjb3JlOiAzMAogIC0gaXRlbTogIlN1cHBvcnQiCiAgICB1c2VyOiAiYiIKICAgIHNjb3JlOiA0MAogIC0gaXRlbTogIlNhbGVzIgogICAgdXNlcjogImEiCiAgICBzY29yZTogNjAKICAtIGl0ZW06ICJTYWxlcyIKICAgIHVzZXI6ICJiIgogICAgc2NvcmU6IDQwCgojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IG9wdGlvbnMgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwpvcHRpb25zOgogIHhGaWVsZDogIml0ZW0iCiAgeUZpZWxkOiAic2NvcmUiCiAgc2VyaWVzRmllbGQ6ICJ1c2VyIgogIG1ldGE6CiAgICBzY29yZToKICAgICAgYWxpYXM6ICJTY29yZSIKICAgICAgbWluOiAwCiAgICAgIG5pY2U6IHRydWUKICB4QXhpczoKICAgIGxpbmU6IG51bGwKICAgIHRpY2tMaW5lOiBudWxsCiAgeUF4aXM6CiAgICBsYWJlbDogZmFsc2UKICAgIGdyaWQ6CiAgICAgIGFsdGVybmF0ZUNvbG9yOiAicmdiYSgwLCAwLCAwLCAwLjA0KSIKICBwb2ludDoge30KICBhcmVhOiB7fQpgYGA="; - ChartTemplateType2["TinyLine"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBUaW55TGluZQoKIy0tLS0tLS0tLS0tLS0tLS0tIwojLSBjaGFydCBkYXRhICAgIC0jCiMtLS0tLS0tLS0tLS0tLS0tLSMKZGF0YTogWzI2NCwgNDE3LCA0MzgsIDg4NywgMzA5LCAzOTcsIDU1MCwgNTc1LCA1NjMsIDQzMCwgNTI1LCA1OTIsIDQ5MiwgNDY3LCA1MTMsIDU0NiwgOTgzLCAzNDAsIDUzOSwgMjQzLCAyMjYsIDE5Ml0KCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgb3B0aW9ucyAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCm9wdGlvbnM6CiAgaGVpZ2h0OiA2MAogIGF1dG9GaXQ6IGZhbHNlCiAgc21vb3RoOiB0cnVlCiAgdG9vbHRpcDogZmFsc2UKICBhbm5vdGF0aW9uczoKICAgIC0gdHlwZTogImxpbmUiCiAgICAgIHN0YXJ0OiBbIm1pbiIsICJtZWFuIl0KICAgICAgZW5kOiBbIm1heCIsICJtZWFuIl0KICAgICAgc3R5bGU6CiAgICAgICAgc3Ryb2tlOiAicmdiYSgwLCAwLCAwLCAwLjQ1KSIKICAgICAgdGV4dDoKICAgICAgICBjb250ZW50OiAiQXZlcmFnZSIKICAgICAgICBvZmZzZXRZOiAtMgogICAgICAgIHN0eWxlOgogICAgICAgICAgdGV4dEFsaWduOiAibGVmdCIKICAgICAgICAgIGZvbnRTaXplOiAxMAogICAgICAgICAgZmlsbDogInJnYmEoNDQsIDUzLCA2NiwgMC40NSkiCiAgICAgICAgICB0ZXh0QmFzZWxpbmU6ICJib3R0b20iCiAgICAtIHR5cGU6ICJsaW5lIgogICAgICBzdGFydDogWyJtaW4iLCA4MDBdCiAgICAgIGVuZDogWyJtYXgiLCA4MDBdCiAgICAgIHN0eWxlOgogICAgICAgIHN0cm9rZTogInJnYmEoMjAwLCAwLCAwLCAwLjU1KSIKICAgICAgdGV4dDoKICAgICAgICBjb250ZW50OiAiVGFyZ2V0IgogICAgICAgIG9mZnNldFk6IC0yCiAgICAgICAgc3R5bGU6CiAgICAgICAgICB0ZXh0QWxpZ246ICJsZWZ0IgogICAgICAgICAgZm9udFNpemU6IDEwCiAgICAgICAgICBmaWxsOiAicmdiYSg0NCwgNTMsIDY2LCAwLjQ1KSIKICAgICAgICAgIHRleHRCYXNlbGluZTogImJvdHRvbSIKYGBg"; - ChartTemplateType2["Dataviewjs Example (Column)"] = "YGBgY2hhcnRzdmlldwojLS0tLS0tLS0tLS0tLS0tLS0jCiMtIGNoYXJ0IHR5cGUgICAgLSMKIy0tLS0tLS0tLS0tLS0tLS0tIwp0eXBlOiBDb2x1bW4KCiMtLS0tLS0tLS0tLS0tLS0tLSMKIy0gY2hhcnQgZGF0YSAgICAtIwojLS0tLS0tLS0tLS0tLS0tLS0jCmRhdGE6IHwKICBkYXRhdmlld2pzOgogIHJldHVybiBkdi5wYWdlcygpCiAgICAgICAgICAgLmdyb3VwQnkocCA9PiBwLmZpbGUuZm9sZGVyKQogICAgICAgICAgIC5tYXAocCA9PiAoe2ZvbGRlcjogcC5rZXkgfHwgIlJPT1QiLCBjb3VudDogcC5yb3dzLmxlbmd0aH0pKQogICAgICAgICAgIC5hcnJheSgpOwoKIy0tLS0tLS0tLS0tLS0tLS0tIwojLSBjaGFydCBvcHRpb25zIC0jCiMtLS0tLS0tLS0tLS0tLS0tLSMKb3B0aW9uczoKICB4RmllbGQ6ICJmb2xkZXIiCiAgeUZpZWxkOiAiY291bnQiCiAgcGFkZGluZzogYXV0bwogIGxhYmVsOgogICAgcG9zaXRpb246ICJtaWRkbGUiCiAgICBzdHlsZToKICAgICAgb3BhY2l0eTogMC42CiAgICAgIGZvbnRTaXplOiAxMgogIGNvbHVtblN0eWxlOgogICAgZmlsbE9wYWNpdHk6IDAuNQogICAgbGluZVdpZHRoOiAxCiAgICBzdHJva2VPcGFjaXR5OiAwLjcKICAgIHNoYWRvd0NvbG9yOiAiZ3JleSIKICAgIHNoYWRvd0JsdXI6IDEwCiAgICBzaGFkb3dPZmZzZXRYOiA1CiAgICBzaGFkb3dPZmZzZXRZOiA1CiAgeEF4aXM6CiAgICBsYWJlbDoKICAgICAgYXV0b0hpZGU6IGZhbHNlCiAgICAgIGF1dG9Sb3RhdGU6IHRydWUKICBtZXRhOgogICAgY291bnQ6CiAgICAgIGFsaWFzOiAiQ291bnQiCmBgYA=="; -})(ChartTemplateType || (ChartTemplateType = {})); -var ChartThumbnailMapping = { - [ChartTemplateType.Bar]: "https://user-images.githubusercontent.com/150803/123117024-fa43b180-d473-11eb-84eb-8e1806ce5dec.png", - [ChartTemplateType.Pie]: "https://user-images.githubusercontent.com/150803/119069882-87c95700-ba19-11eb-8cef-02d1e021d1a2.png", - [ChartTemplateType.WordCloud]: "https://user-images.githubusercontent.com/150803/119069991-bba47c80-ba19-11eb-873f-847563daea39.png", - [ChartTemplateType.WordCount]: "https://user-images.githubusercontent.com/150803/136478725-be28a56b-0075-4f0a-a719-f61b30e83b6a.png", - [ChartTemplateType.Treemap]: "https://user-images.githubusercontent.com/150803/119070047-decf2c00-ba19-11eb-9d59-21c051da593c.png", - [ChartTemplateType.DualAxes]: "https://user-images.githubusercontent.com/150803/119969638-618b5480-bfe1-11eb-8a36-0a5d60408b00.png", - [ChartTemplateType.Mix]: "https://user-images.githubusercontent.com/150803/120421841-a1638a80-c399-11eb-9464-d773931fdd6f.png", - [ChartTemplateType.OrganizationTreeGraph]: "https://user-images.githubusercontent.com/150803/123117254-2b23e680-d474-11eb-845f-0d663a458fa7.png", - [ChartTemplateType.Radar]: "https://user-images.githubusercontent.com/150803/123117394-4a227880-d474-11eb-8a11-23f3cd482251.png", - [ChartTemplateType.TinyLine]: "https://user-images.githubusercontent.com/150803/123117476-5a3a5800-d474-11eb-9db8-4b3785bb010c.png", - [ChartTemplateType["Dataviewjs Example (Column)"]]: "https://user-images.githubusercontent.com/150803/140684190-fa6a08ea-3394-44fe-ae92-265810f6b9a9.png" -}; - -// src/components/Modal.ts -var import_buffer = __toModule(require("buffer")); -var ChartTemplateSuggestModal = class extends import_obsidian4.FuzzySuggestModal { - constructor(app, editor) { - super(app); - this.editor = editor; - } - getItems() { - return Object.entries(ChartTemplateType); - } - getItemText(item) { - return item[0]; - } - renderSuggestion(item, el) { - const div4 = createDiv({ cls: "chartsview-thumbnail" }); - const type2 = ChartTemplateType[item.item[0]]; - const img = createEl("img", { - attr: { - src: ChartThumbnailMapping[type2] - } - }); - div4.appendChild(img); - el.appendChild(div4); - el.addClass("chartsview-thumbnail-container"); - super.renderSuggestion(item, el); - } - onChooseItem(item) { - insertEditor(this.editor, import_buffer.Buffer.from(item[1], "base64").toString("utf8")); - } -}; - -// src/main.tsx -var CSV_FILE_EXTENSION = "csv"; -var VIEW_TYPE_CSV = "csv"; -var ChartsViewPlugin = class extends import_obsidian5.Plugin { - ChartsViewProcessor(source, el, ctx4) { - return __async(this, null, function* () { - compat_module_default.unmountComponentAtNode(el); - try { - const chartProps = yield parseConfig(source, this, ctx4.sourcePath); - const cfg = chartProps.config; - const isBackgroundColorCustomed = cfg.theme && (cfg.theme.background || cfg.theme.styleSheet && cfg.theme.styleSheet.backgroundColor); - const isPaddingCustomed = cfg.padding; - cfg.theme = cfg.theme || esm_exports3.getTheme(this.settings.theme); - cfg.backgroundColor = isBackgroundColorCustomed ? void 0 : this.settings.backgroundColor; - cfg.padding = isPaddingCustomed ? void 0 : [ - this.settings.paddingTop, - this.settings.paddingRight, - this.settings.paddingBottom, - this.settings.paddingLeft - ]; - compat_module_default.render(/* @__PURE__ */ compat_module_default.createElement(Chart2, __spreadValues({}, chartProps)), el); - } catch (e4) { - compat_module_default.render(/* @__PURE__ */ compat_module_default.createElement("div", { - style: { color: "var(--text-title-h1)" } - }, e4.toString()), el); - } - }); - } - onload() { - return __async(this, null, function* () { - try { - yield this.loadSettings(); - this.addSettingTab(new ChartsViewSettingTab(this.app, this)); - this.registerMarkdownCodeBlockProcessor("chartsview", this.ChartsViewProcessor.bind(this)); - this.addCommand({ - id: "insert-chartsview-template", - name: "Insert Template", - editorCallback: (editor) => { - new ChartTemplateSuggestModal(this.app, editor).open(); - } - }); - if (import_obsidian5.Platform.isDesktopApp) { - this.addCommand({ - id: `import-chartsview-data-csv`, - name: `Import data from external CSV file`, - editorCallback: (editor) => __async(this, null, function* () { - const file = yield r({ accept: ".csv", strict: true }); - const content = yield file.text(); - const records = parseCsv(content); - insertEditor(editor, js_yaml_default.dump(records, { quotingType: '"', noRefs: true }).replace(/\n/g, "\n" + " ".repeat(editor.getCursor().ch))); - }) - }); - } - } catch (error) { - console.log(`Load error. ${error}`); - } - try { - this.registerExtensions([CSV_FILE_EXTENSION], VIEW_TYPE_CSV); - } catch (error) { - console.log(`Existing file extension ${CSV_FILE_EXTENSION}`); - } - console.log("Loaded Charts View plugin"); - }); - } - onunload() { - console.log("Unloading Charts View plugin"); - } - loadSettings() { - return __async(this, null, function* () { - this.settings = Object.assign(DEFAULT_SETTINGS, yield this.loadData()); - }); - } - saveSettings() { - return __async(this, null, function* () { - yield this.saveData(this.settings); - }); - } -}; -/* @license -Papa Parse -v5.3.1 -https://github.com/mholt/PapaParse -License: MIT -*/ -/*! ***************************************************************************** -Copyright (C) Microsoft. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ -/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ diff --git a/.obsidian/plugins/obsidian-chartsview-plugin/manifest.json b/.obsidian/plugins/obsidian-chartsview-plugin/manifest.json deleted file mode 100644 index 6099e418..00000000 --- a/.obsidian/plugins/obsidian-chartsview-plugin/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "obsidian-chartsview-plugin", - "name": "Charts View", - "version": "1.1.3", - "minAppVersion": "0.9.12", - "description": "Data visualization solution in Obsidian based on Ant Design Charts.", - "author": "caronchen", - "authorUrl": "https://github.com/caronchen/obsidian-chartsview-plugin", - "isDesktopOnly": false -} diff --git a/.obsidian/plugins/obsidian-chartsview-plugin/styles.css b/.obsidian/plugins/obsidian-chartsview-plugin/styles.css deleted file mode 100644 index 31648b64..00000000 --- a/.obsidian/plugins/obsidian-chartsview-plugin/styles.css +++ /dev/null @@ -1,38 +0,0 @@ -.chartsview-donation { - width: fit-content; - margin: 25px auto; - text-align: center; - position: absolute; - left: 200px; - right: 0; - bottom: 0; -} - -.chartsview-donation a.paypal { - display: inline-block; -} - -.chartsview-thumbnail-container.is-selected .chartsview-thumbnail { - display: unset; - position: fixed; - top: 0; - right: 0; -} - -.chartsview-thumbnail-container .chartsview-thumbnail { - display: none; -} - -/* #### Desktops #### */ -@media screen and (min-width: 1024px) { - .chartsview-thumbnail-container .chartsview-thumbnail img { - width: 500px; - } -} - -/* #### Mobile Phones Portrait or Landscape #### */ -@media screen and (max-device-width: 640px) { - .chartsview-thumbnail-container .chartsview-thumbnail img { - width: 300px; - } -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-commits/data.json b/.obsidian/plugins/obsidian-commits/data.json index d11c473d..b5e134d5 100644 --- a/.obsidian/plugins/obsidian-commits/data.json +++ b/.obsidian/plugins/obsidian-commits/data.json @@ -1630,7 +1630,7 @@ "links": 0 }, "00.01 Admin/React/Weather.md": { - "size": 2322, + "size": 3825, "tags": 0, "links": 0 }, @@ -2099,13 +2099,8 @@ "tags": 2, "links": 2 }, - "01.02 Home/@Shopping list.md": { - "size": 2092, - "tags": 0, - "links": 1 - }, "01.02 Home/@Main Dashboard.md": { - "size": 3473, + "size": 3903, "tags": 0, "links": 1 }, @@ -2147,25 +2142,30 @@ "00.01 Admin/Memos/2022-01-22.md": { "size": 1124, "tags": 0, - "links": 6 + "links": 5 }, "00.01 Admin/Memos/delete.md": { - "size": 143, + "size": 289, "tags": 0, - "links": 1 + "links": 2 }, "00.01 Admin/Memos/2022-01-23.md": { "size": 1033, "tags": 3, "links": 5 + }, + "01.04 Done/@Shopping list.md": { + "size": 2092, + "tags": 0, + "links": 1 } }, "commitTypes": { "/": { - "Refactor": 8, + "Refactor": 11, "Create": 10, - "Link": 17, - "Expand": 16 + "Link": 18, + "Expand": 21 } }, "dailyCommits": { @@ -2185,9 +2185,9 @@ "12": 2, "13": 0, "14": 22, - "15": 0, + "15": 2, "16": 3, - "17": 3, + "17": 10, "18": 0, "19": 0, "20": 0, @@ -2204,7 +2204,7 @@ "Thu": 0, "Fri": 0, "Sat": 0, - "Sun": 51 + "Sun": 60 } }, "recentCommits": { @@ -2225,7 +2225,12 @@ " 2022-01-23 ", " Template Daily ", " 2022-01-23 ", - " 2022-01-22 " + " 2022-01-22 ", + " @Main Dashboard ", + " @Main Dashboard ", + " delete ", + " @Main Dashboard ", + " Weather " ], "Created": [ " Poul ak Nwa ", @@ -2242,14 +2247,17 @@ "Renamed": [ " Poul ak Nwa ", " Braised Short Ribs w Curry Leaves ", - " Template Daily " + " Template Daily ", + " @Shopping list " ], "Tagged": [ " Poul ak Nwa ", " Braised Short Ribs w Curry Leaves ", " 2022-01-23 " ], - "Refactored": [], + "Refactored": [ + " @Main Dashboard " + ], "Deleted": [ " Untitled ", " unlinked files output ", @@ -2270,10 +2278,12 @@ " 2022-01-22 ", " 2022-01-22 ", " Template Daily ", - " 2022-01-23 " + " 2022-01-23 ", + " delete " ], "Removed Tags from": [], "Removed Links from": [ + " 2022-01-22 ", " 2022-01-22 " ] } diff --git a/.obsidian/plugins/obsidian-memos/main.js b/.obsidian/plugins/obsidian-memos/main.js index c8f29e5e..591fe414 100644 --- a/.obsidian/plugins/obsidian-memos/main.js +++ b/.obsidian/plugins/obsidian-memos/main.js @@ -54,7 +54,7 @@ object-assign var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; -function toObject$1(val) { +function toObject(val) { if (val === null || val === void 0) { throw new TypeError("Object.assign cannot be called with null or undefined"); } @@ -93,26 +93,26 @@ function shouldUseNative() { } } var _objectAssign_4_1_1_objectAssign = shouldUseNative() ? Object.assign : function(target, source) { - var from2; - var to2 = toObject$1(target); + var from; + var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { - from2 = Object(arguments[s]); - for (var key in from2) { - if (hasOwnProperty.call(from2, key)) { - to2[key] = from2[key]; + from = Object(arguments[s]); + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; } } if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from2); + symbols = getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from2, symbols[i])) { - to2[symbols[i]] = from2[symbols[i]]; + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; } } } } - return to2; + return to; }; /** @license React v17.0.2 * react.production.min.js @@ -7075,9 +7075,9 @@ var utils; utils2.getDateString = getDateString; function getTimeString(t2) { const d = new Date(getTimeStampByDate(t2)); - const hours2 = d.getHours(); + const hours = d.getHours(); const mins = d.getMinutes(); - const hoursStr = hours2 < 10 ? "0" + hours2 : hours2; + const hoursStr = hours < 10 ? "0" + hours : hours; const minsStr = mins < 10 ? "0" + mins : mins; return `${hoursStr}:${minsStr}`; } @@ -7087,11 +7087,11 @@ var utils; const year = d.getFullYear(); const month = d.getMonth() + 1; const date = d.getDate(); - const hours2 = d.getHours(); + const hours = d.getHours(); const mins = d.getMinutes(); const monthStr = month < 10 ? "0" + month : month; const dateStr = date < 10 ? "0" + date : date; - const hoursStr = hours2 < 10 ? "0" + hours2 : hours2; + const hoursStr = hours < 10 ? "0" + hours : hours; const minsStr = mins < 10 ? "0" + mins : mins; const secsStr = "00"; return `${year}/${monthStr}/${dateStr} ${hoursStr}:${minsStr}:${secsStr}`; @@ -7141,8 +7141,8 @@ var utils; utils2.throttle = throttle; function transformObjectToParamsString(object) { const params = []; - const keys2 = Object.keys(object).sort(); - for (const key of keys2) { + const keys = Object.keys(object).sort(); + for (const key of keys) { const val = object[key]; if (val) { if (typeof val === "object") { @@ -7172,8 +7172,8 @@ var utils; return {}; } const finalObject = {}; - const keys2 = Object.keys(object).sort(); - for (const key of keys2) { + const keys = Object.keys(object).sort(); + for (const key of keys) { const val = object[key]; if (typeof val === "object") { const temp = filterObjectNullKeys(JSON.parse(JSON.stringify(val))); @@ -7542,11 +7542,11 @@ async function createDailyNote(date) { const normalizedPath = await getNotePath(folder, filename); try { const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename).replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_23, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now2 = moment(); + const now = moment(); const currentDate = date.clone().set({ - hour: now2.get("hour"), - minute: now2.get("minute"), - second: now2.get("second") + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") }); if (calc) { currentDate.add(parseInt(timeDelta, 10), unit); @@ -7617,11 +7617,11 @@ async function createWeeklyNote(date) { const normalizedPath = await getNotePath(folder, filename); try { const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_23, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now2 = window.moment(); + const now = window.moment(); const currentDate = date.clone().set({ - hour: now2.get("hour"), - minute: now2.get("minute"), - second: now2.get("second") + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") }); if (calc) { currentDate.add(parseInt(timeDelta, 10), unit); @@ -7677,11 +7677,11 @@ async function createMonthlyNote(date) { const normalizedPath = await getNotePath(folder, filename); try { const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_23, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now2 = window.moment(); + const now = window.moment(); const currentDate = date.clone().set({ - hour: now2.get("hour"), - minute: now2.get("minute"), - second: now2.get("second") + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") }); if (calc) { currentDate.add(parseInt(timeDelta, 10), unit); @@ -7734,11 +7734,11 @@ async function createQuarterlyNote(date) { const normalizedPath = await getNotePath(folder, filename); try { const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_23, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now2 = window.moment(); + const now = window.moment(); const currentDate = date.clone().set({ - hour: now2.get("hour"), - minute: now2.get("minute"), - second: now2.get("second") + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") }); if (calc) { currentDate.add(parseInt(timeDelta, 10), unit); @@ -7791,11 +7791,11 @@ async function createYearlyNote(date) { const normalizedPath = await getNotePath(folder, filename); try { const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_23, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now2 = window.moment(); + const now = window.moment(); const currentDate = date.clone().set({ - hour: now2.get("hour"), - minute: now2.get("minute"), - second: now2.get("second") + hour: now.get("hour"), + minute: now.get("minute"), + second: now.get("second") }); if (calc) { currentDate.add(parseInt(timeDelta, 10), unit); @@ -7999,9 +7999,9 @@ class DailyNotesService { const dailyNotesService = new DailyNotesService(); var storage; (function(storage2) { - function get2(keys2) { + function get2(keys) { const data = {}; - for (const key of keys2) { + for (const key of keys) { try { const stringifyValue = localStorage.getItem(key); if (stringifyValue !== null) { @@ -8015,7 +8015,7 @@ var storage; return data; } storage2.get = get2; - function set2(data) { + function set(data) { for (const key in data) { try { const stringifyValue = JSON.stringify(data[key]); @@ -8025,9 +8025,9 @@ var storage; } } } - storage2.set = set2; - function remove2(keys2) { - for (const key of keys2) { + storage2.set = set; + function remove2(keys) { + for (const key of keys) { try { localStorage.removeItem(key); } catch (error2) { @@ -8091,7 +8091,12 @@ class GlobalStateService { storage.set(appSetting); }); var _a, _b, _c, _d; - const cachedSetting = storage.get(["shouldSplitMemoWord", "shouldHideImageUrl", "shouldUseMarkdownParser", "useTinyUndoHistoryCache"]); + const cachedSetting = storage.get([ + "shouldSplitMemoWord", + "shouldHideImageUrl", + "shouldUseMarkdownParser", + "useTinyUndoHistoryCache" + ]); const defaultAppSetting = { shouldSplitMemoWord: (_a = cachedSetting.shouldSplitMemoWord) != null ? _a : true, shouldHideImageUrl: (_b = cachedSetting.shouldHideImageUrl) != null ? _b : true, @@ -8123,12 +8128,12 @@ class LocationService { state.query.type = (_b = urlParams.get("type")) != null ? _b : ""; state.query.text = (_c = urlParams.get("text")) != null ? _c : ""; state.query.filter = (_d = urlParams.get("filter")) != null ? _d : ""; - const from2 = parseInt((_e = urlParams.get("from")) != null ? _e : "0"); - const to2 = parseInt((_f = urlParams.get("to")) != null ? _f : "0"); - if (to2 > from2 && to2 !== 0) { + const from = parseInt((_e = urlParams.get("from")) != null ? _e : "0"); + const to = parseInt((_f = urlParams.get("to")) != null ? _f : "0"); + if (to > from && to !== 0) { state.query.duration = { - from: from2, - to: to2 + from, + to }; } state.hash = hash2; @@ -8221,11 +8226,11 @@ class LocationService { } }); }); - __publicField(this, "setFromAndToQuery", (from2, to2) => { + __publicField(this, "setFromAndToQuery", (from, to) => { appStore.dispatch({ type: "SET_DURATION_QUERY", payload: { - duration: { from: from2, to: to2 } + duration: { from, to } } }); }); @@ -8243,3704 +8248,14 @@ class LocationService { } } const locationService = new LocationService(); -//! moment.js -//! version : 2.29.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -var hookCallback; -function hooks() { - return hookCallback.apply(null, arguments); -} -function setHookCallback(callback) { - hookCallback = callback; -} -function isArray(input) { - return input instanceof Array || Object.prototype.toString.call(input) === "[object Array]"; -} -function isObject(input) { - return input != null && Object.prototype.toString.call(input) === "[object Object]"; -} -function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); -} -function isObjectEmpty(obj) { - if (Object.getOwnPropertyNames) { - return Object.getOwnPropertyNames(obj).length === 0; - } else { - var k; - for (k in obj) { - if (hasOwnProp(obj, k)) { - return false; - } - } - return true; - } -} -function isUndefined(input) { - return input === void 0; -} -function isNumber(input) { - return typeof input === "number" || Object.prototype.toString.call(input) === "[object Number]"; -} -function isDate$1(input) { - return input instanceof Date || Object.prototype.toString.call(input) === "[object Date]"; -} -function map(arr, fn2) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn2(arr[i], i)); - } - return res; -} -function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - if (hasOwnProp(b, "toString")) { - a.toString = b.toString; - } - if (hasOwnProp(b, "valueOf")) { - a.valueOf = b.valueOf; - } - return a; -} -function createUTC(input, format2, locale2, strict) { - return createLocalOrUTC(input, format2, locale2, strict, true).utc(); -} -function defaultParsingFlags() { - return { - empty: false, - unusedTokens: [], - unusedInput: [], - overflow: -2, - charsLeftOver: 0, - nullInput: false, - invalidEra: null, - invalidMonth: null, - invalidFormat: false, - userInvalidated: false, - iso: false, - parsedDateParts: [], - era: null, - meridiem: null, - rfc2822: false, - weekdayMismatch: false - }; -} -function getParsingFlags(m2) { - if (m2._pf == null) { - m2._pf = defaultParsingFlags(); - } - return m2._pf; -} -var some; -if (Array.prototype.some) { - some = Array.prototype.some; -} else { - some = function(fun) { - var t2 = Object(this), len = t2.length >>> 0, i; - for (i = 0; i < len; i++) { - if (i in t2 && fun.call(this, t2[i], i, t2)) { - return true; - } - } - return false; - }; -} -function isValid$1(m2) { - if (m2._isValid == null) { - var flags = getParsingFlags(m2), parsedParts = some.call(flags.parsedDateParts, function(i) { - return i != null; - }), isNowValid = !isNaN(m2._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts); - if (m2._strict) { - isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === void 0; - } - if (Object.isFrozen == null || !Object.isFrozen(m2)) { - m2._isValid = isNowValid; - } else { - return isNowValid; - } - } - return m2._isValid; -} -function createInvalid(flags) { - var m2 = createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m2), flags); - } else { - getParsingFlags(m2).userInvalidated = true; - } - return m2; -} -var momentProperties = hooks.momentProperties = [], updateInProgress = false; -function copyConfig(to2, from2) { - var i, prop, val; - if (!isUndefined(from2._isAMomentObject)) { - to2._isAMomentObject = from2._isAMomentObject; - } - if (!isUndefined(from2._i)) { - to2._i = from2._i; - } - if (!isUndefined(from2._f)) { - to2._f = from2._f; - } - if (!isUndefined(from2._l)) { - to2._l = from2._l; - } - if (!isUndefined(from2._strict)) { - to2._strict = from2._strict; - } - if (!isUndefined(from2._tzm)) { - to2._tzm = from2._tzm; - } - if (!isUndefined(from2._isUTC)) { - to2._isUTC = from2._isUTC; - } - if (!isUndefined(from2._offset)) { - to2._offset = from2._offset; - } - if (!isUndefined(from2._pf)) { - to2._pf = getParsingFlags(from2); - } - if (!isUndefined(from2._locale)) { - to2._locale = from2._locale; - } - if (momentProperties.length > 0) { - for (i = 0; i < momentProperties.length; i++) { - prop = momentProperties[i]; - val = from2[prop]; - if (!isUndefined(val)) { - to2[prop] = val; - } - } - } - return to2; -} -function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - if (!this.isValid()) { - this._d = new Date(NaN); - } - if (updateInProgress === false) { - updateInProgress = true; - hooks.updateOffset(this); - updateInProgress = false; - } -} -function isMoment(obj) { - return obj instanceof Moment || obj != null && obj._isAMomentObject != null; -} -function warn(msg) { - if (hooks.suppressDeprecationWarnings === false && typeof console !== "undefined" && console.warn) { - console.warn("Deprecation warning: " + msg); - } -} -function deprecate(msg, fn2) { - var firstTime = true; - return extend(function() { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(null, msg); - } - if (firstTime) { - var args = [], arg, i, key; - for (i = 0; i < arguments.length; i++) { - arg = ""; - if (typeof arguments[i] === "object") { - arg += "\n[" + i + "] "; - for (key in arguments[0]) { - if (hasOwnProp(arguments[0], key)) { - arg += key + ": " + arguments[0][key] + ", "; - } - } - arg = arg.slice(0, -2); - } else { - arg = arguments[i]; - } - args.push(arg); - } - warn(msg + "\nArguments: " + Array.prototype.slice.call(args).join("") + "\n" + new Error().stack); - firstTime = false; - } - return fn2.apply(this, arguments); - }, fn2); -} -var deprecations = {}; -function deprecateSimple(name, msg) { - if (hooks.deprecationHandler != null) { - hooks.deprecationHandler(name, msg); - } - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } -} -hooks.suppressDeprecationWarnings = false; -hooks.deprecationHandler = null; -function isFunction(input) { - return typeof Function !== "undefined" && input instanceof Function || Object.prototype.toString.call(input) === "[object Function]"; -} -function set(config) { - var prop, i; - for (i in config) { - if (hasOwnProp(config, i)) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this["_" + i] = prop; - } - } - } - this._config = config; - this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source); -} -function mergeConfigs(parentConfig, childConfig) { - var res = extend({}, parentConfig), prop; - for (prop in childConfig) { - if (hasOwnProp(childConfig, prop)) { - if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { - res[prop] = {}; - extend(res[prop], parentConfig[prop]); - extend(res[prop], childConfig[prop]); - } else if (childConfig[prop] != null) { - res[prop] = childConfig[prop]; - } else { - delete res[prop]; - } - } - } - for (prop in parentConfig) { - if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) { - res[prop] = extend({}, res[prop]); - } - } - return res; -} -function Locale(config) { - if (config != null) { - this.set(config); - } -} -var keys; -if (Object.keys) { - keys = Object.keys; -} else { - keys = function(obj) { - var i, res = []; - for (i in obj) { - if (hasOwnProp(obj, i)) { - res.push(i); - } - } - return res; - }; -} -var defaultCalendar = { - sameDay: "[Today at] LT", - nextDay: "[Tomorrow at] LT", - nextWeek: "dddd [at] LT", - lastDay: "[Yesterday at] LT", - lastWeek: "[Last] dddd [at] LT", - sameElse: "L" -}; -function calendar(key, mom, now2) { - var output2 = this._calendar[key] || this._calendar["sameElse"]; - return isFunction(output2) ? output2.call(mom, now2) : output2; -} -function zeroFill(number, targetLength, forceSign) { - var absNumber = "" + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign2 = number >= 0; - return (sign2 ? forceSign ? "+" : "" : "-") + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; -} -var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, formatFunctions = {}, formatTokenFunctions = {}; -function addFormatToken(token2, padded, ordinal2, callback) { - var func = callback; - if (typeof callback === "string") { - func = function() { - return this[callback](); - }; - } - if (token2) { - formatTokenFunctions[token2] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function() { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal2) { - formatTokenFunctions[ordinal2] = function() { - return this.localeData().ordinal(func.apply(this, arguments), token2); - }; - } -} -function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ""); - } - return input.replace(/\\/g, ""); -} -function makeFormatFunction(format2) { - var array = format2.match(formattingTokens), i, length; - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - return function(mom) { - var output2 = "", i2; - for (i2 = 0; i2 < length; i2++) { - output2 += isFunction(array[i2]) ? array[i2].call(mom, format2) : array[i2]; - } - return output2; - }; -} -function formatMoment(m2, format2) { - if (!m2.isValid()) { - return m2.localeData().invalidDate(); - } - format2 = expandFormat(format2, m2.localeData()); - formatFunctions[format2] = formatFunctions[format2] || makeFormatFunction(format2); - return formatFunctions[format2](m2); -} -function expandFormat(format2, locale2) { - var i = 5; - function replaceLongDateFormatTokens(input) { - return locale2.longDateFormat(input) || input; - } - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format2)) { - format2 = format2.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - return format2; -} -var defaultLongDateFormat = { - LTS: "h:mm:ss A", - LT: "h:mm A", - L: "MM/DD/YYYY", - LL: "MMMM D, YYYY", - LLL: "MMMM D, YYYY h:mm A", - LLLL: "dddd, MMMM D, YYYY h:mm A" -}; -function longDateFormat(key) { - var format2 = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()]; - if (format2 || !formatUpper) { - return format2; - } - this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function(tok) { - if (tok === "MMMM" || tok === "MM" || tok === "DD" || tok === "dddd") { - return tok.slice(1); - } - return tok; - }).join(""); - return this._longDateFormat[key]; -} -var defaultInvalidDate = "Invalid date"; -function invalidDate() { - return this._invalidDate; -} -var defaultOrdinal = "%d", defaultDayOfMonthOrdinalParse = /\d{1,2}/; -function ordinal(number) { - return this._ordinal.replace("%d", number); -} -var defaultRelativeTime = { - future: "in %s", - past: "%s ago", - s: "a few seconds", - ss: "%d seconds", - m: "a minute", - mm: "%d minutes", - h: "an hour", - hh: "%d hours", - d: "a day", - dd: "%d days", - w: "a week", - ww: "%d weeks", - M: "a month", - MM: "%d months", - y: "a year", - yy: "%d years" -}; -function relativeTime(number, withoutSuffix, string, isFuture) { - var output2 = this._relativeTime[string]; - return isFunction(output2) ? output2(number, withoutSuffix, string, isFuture) : output2.replace(/%d/i, number); -} -function pastFuture(diff2, output2) { - var format2 = this._relativeTime[diff2 > 0 ? "future" : "past"]; - return isFunction(format2) ? format2(output2) : format2.replace(/%s/i, output2); -} -var aliases = {}; -function addUnitAlias(unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + "s"] = aliases[shorthand] = unit; -} -function normalizeUnits(units) { - return typeof units === "string" ? aliases[units] || aliases[units.toLowerCase()] : void 0; -} -function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, normalizedProp, prop; - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - return normalizedInput; -} -var priorities = {}; -function addUnitPriority(unit, priority) { - priorities[unit] = priority; -} -function getPrioritizedUnits(unitsObj) { - var units = [], u2; - for (u2 in unitsObj) { - if (hasOwnProp(unitsObj, u2)) { - units.push({ unit: u2, priority: priorities[u2] }); - } - } - units.sort(function(a, b) { - return a.priority - b.priority; - }); - return units; -} -function isLeapYear(year) { - return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; -} -function absFloor(number) { - if (number < 0) { - return Math.ceil(number) || 0; - } else { - return Math.floor(number); - } -} -function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, value = 0; - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } - return value; -} -function makeGetSet(unit, keepTime) { - return function(value) { - if (value != null) { - set$1(this, unit, value); - hooks.updateOffset(this, keepTime); - return this; - } else { - return get$1(this, unit); - } - }; -} -function get$1(mom, unit) { - return mom.isValid() ? mom._d["get" + (mom._isUTC ? "UTC" : "") + unit]() : NaN; -} -function set$1(mom, unit, value) { - if (mom.isValid() && !isNaN(value)) { - if (unit === "FullYear" && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { - value = toInt(value); - mom._d["set" + (mom._isUTC ? "UTC" : "") + unit](value, mom.month(), daysInMonth(value, mom.month())); - } else { - mom._d["set" + (mom._isUTC ? "UTC" : "") + unit](value); - } - } -} -function stringGet(units) { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](); - } - return this; -} -function stringSet(units, value) { - if (typeof units === "object") { - units = normalizeObjectUnits(units); - var prioritized = getPrioritizedUnits(units), i; - for (i = 0; i < prioritized.length; i++) { - this[prioritized[i].unit](units[prioritized[i].unit]); - } - } else { - units = normalizeUnits(units); - if (isFunction(this[units])) { - return this[units](value); - } - } - return this; -} -var match1 = /\d/, match2 = /\d\d/, match3 = /\d{3}/, match4 = /\d{4}/, match6 = /[+-]?\d{6}/, match1to2 = /\d\d?/, match3to4 = /\d\d\d\d?/, match5to6 = /\d\d\d\d\d\d?/, match1to3 = /\d{1,3}/, match1to4 = /\d{1,4}/, match1to6 = /[+-]?\d{1,6}/, matchUnsigned = /\d+/, matchSigned = /[+-]?\d+/, matchOffset = /Z|[+-]\d\d:?\d\d/gi, matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, regexes; -regexes = {}; -function addRegexToken(token2, regex, strictRegex) { - regexes[token2] = isFunction(regex) ? regex : function(isStrict, localeData2) { - return isStrict && strictRegex ? strictRegex : regex; - }; -} -function getParseRegexForToken(token2, config) { - if (!hasOwnProp(regexes, token2)) { - return new RegExp(unescapeFormat(token2)); - } - return regexes[token2](config._strict, config._locale); -} -function unescapeFormat(s) { - return regexEscape$1(s.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - })); -} -function regexEscape$1(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); -} -var tokens = {}; -function addParseToken(token2, callback) { - var i, func = callback; - if (typeof token2 === "string") { - token2 = [token2]; - } - if (isNumber(callback)) { - func = function(input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token2.length; i++) { - tokens[token2[i]] = func; - } -} -function addWeekParseToken(token2, callback) { - addParseToken(token2, function(input, array, config, token3) { - config._w = config._w || {}; - callback(input, config._w, config, token3); - }); -} -function addTimeToArrayFromToken(token2, input, config) { - if (input != null && hasOwnProp(tokens, token2)) { - tokens[token2](input, config._a, config, token2); - } -} -var YEAR = 0, MONTH = 1, DATE = 2, HOUR = 3, MINUTE = 4, SECOND = 5, MILLISECOND = 6, WEEK = 7, WEEKDAY = 8; -function mod(n2, x2) { - return (n2 % x2 + x2) % x2; -} -var indexOf; -if (Array.prototype.indexOf) { - indexOf = Array.prototype.indexOf; -} else { - indexOf = function(o) { - var i; - for (i = 0; i < this.length; ++i) { - if (this[i] === o) { - return i; - } - } - return -1; - }; -} -function daysInMonth(year, month) { - if (isNaN(year) || isNaN(month)) { - return NaN; - } - var modMonth = mod(month, 12); - year += (month - modMonth) / 12; - return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2; -} -addFormatToken("M", ["MM", 2], "Mo", function() { - return this.month() + 1; -}); -addFormatToken("MMM", 0, 0, function(format2) { - return this.localeData().monthsShort(this, format2); -}); -addFormatToken("MMMM", 0, 0, function(format2) { - return this.localeData().months(this, format2); -}); -addUnitAlias("month", "M"); -addUnitPriority("month", 8); -addRegexToken("M", match1to2); -addRegexToken("MM", match1to2, match2); -addRegexToken("MMM", function(isStrict, locale2) { - return locale2.monthsShortRegex(isStrict); -}); -addRegexToken("MMMM", function(isStrict, locale2) { - return locale2.monthsRegex(isStrict); -}); -addParseToken(["M", "MM"], function(input, array) { - array[MONTH] = toInt(input) - 1; -}); -addParseToken(["MMM", "MMMM"], function(input, array, config, token2) { - var month = config._locale.monthsParse(input, token2, config._strict); - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } -}); -var defaultLocaleMonths = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), defaultLocaleMonthsShort = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, defaultMonthsShortRegex = matchWord, defaultMonthsRegex = matchWord; -function localeMonths(m2, format2) { - if (!m2) { - return isArray(this._months) ? this._months : this._months["standalone"]; - } - return isArray(this._months) ? this._months[m2.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format2) ? "format" : "standalone"][m2.month()]; -} -function localeMonthsShort(m2, format2) { - if (!m2) { - return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort["standalone"]; - } - return isArray(this._monthsShort) ? this._monthsShort[m2.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format2) ? "format" : "standalone"][m2.month()]; -} -function handleStrictParse(monthName, format2, strict) { - var i, ii2, mom, llc = monthName.toLocaleLowerCase(); - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - for (i = 0; i < 12; ++i) { - mom = createUTC([2e3, i]); - this._shortMonthsParse[i] = this.monthsShort(mom, "").toLocaleLowerCase(); - this._longMonthsParse[i] = this.months(mom, "").toLocaleLowerCase(); - } - } - if (strict) { - if (format2 === "MMM") { - ii2 = indexOf.call(this._shortMonthsParse, llc); - return ii2 !== -1 ? ii2 : null; - } else { - ii2 = indexOf.call(this._longMonthsParse, llc); - return ii2 !== -1 ? ii2 : null; - } - } else { - if (format2 === "MMM") { - ii2 = indexOf.call(this._shortMonthsParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._longMonthsParse, llc); - return ii2 !== -1 ? ii2 : null; - } else { - ii2 = indexOf.call(this._longMonthsParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._shortMonthsParse, llc); - return ii2 !== -1 ? ii2 : null; - } - } -} -function localeMonthsParse(monthName, format2, strict) { - var i, mom, regex; - if (this._monthsParseExact) { - return handleStrictParse.call(this, monthName, format2, strict); - } - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } - for (i = 0; i < 12; i++) { - mom = createUTC([2e3, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp("^" + this.months(mom, "").replace(".", "") + "$", "i"); - this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(mom, "").replace(".", "") + "$", "i"); - } - if (!strict && !this._monthsParse[i]) { - regex = "^" + this.months(mom, "") + "|^" + this.monthsShort(mom, ""); - this._monthsParse[i] = new RegExp(regex.replace(".", ""), "i"); - } - if (strict && format2 === "MMMM" && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format2 === "MMM" && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } -} -function setMonth$1(mom, value) { - var dayOfMonth; - if (!mom.isValid()) { - return mom; - } - if (typeof value === "string") { - if (/^\d+$/.test(value)) { - value = toInt(value); - } else { - value = mom.localeData().monthsParse(value); - if (!isNumber(value)) { - return mom; - } - } - } - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d["set" + (mom._isUTC ? "UTC" : "") + "Month"](value, dayOfMonth); - return mom; -} -function getSetMonth(value) { - if (value != null) { - setMonth$1(this, value); - hooks.updateOffset(this, true); - return this; - } else { - return get$1(this, "Month"); - } -} -function getDaysInMonth$1() { - return daysInMonth(this.year(), this.month()); -} -function monthsShortRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, "_monthsRegex")) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsShortStrictRegex; - } else { - return this._monthsShortRegex; - } - } else { - if (!hasOwnProp(this, "_monthsShortRegex")) { - this._monthsShortRegex = defaultMonthsShortRegex; - } - return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; - } -} -function monthsRegex(isStrict) { - if (this._monthsParseExact) { - if (!hasOwnProp(this, "_monthsRegex")) { - computeMonthsParse.call(this); - } - if (isStrict) { - return this._monthsStrictRegex; - } else { - return this._monthsRegex; - } - } else { - if (!hasOwnProp(this, "_monthsRegex")) { - this._monthsRegex = defaultMonthsRegex; - } - return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; - } -} -function computeMonthsParse() { - function cmpLenRev(a, b) { - return b.length - a.length; - } - var shortPieces = [], longPieces = [], mixedPieces = [], i, mom; - for (i = 0; i < 12; i++) { - mom = createUTC([2e3, i]); - shortPieces.push(this.monthsShort(mom, "")); - longPieces.push(this.months(mom, "")); - mixedPieces.push(this.months(mom, "")); - mixedPieces.push(this.monthsShort(mom, "")); - } - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - for (i = 0; i < 12; i++) { - shortPieces[i] = regexEscape$1(shortPieces[i]); - longPieces[i] = regexEscape$1(longPieces[i]); - } - for (i = 0; i < 24; i++) { - mixedPieces[i] = regexEscape$1(mixedPieces[i]); - } - this._monthsRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); - this._monthsShortRegex = this._monthsRegex; - this._monthsStrictRegex = new RegExp("^(" + longPieces.join("|") + ")", "i"); - this._monthsShortStrictRegex = new RegExp("^(" + shortPieces.join("|") + ")", "i"); -} -addFormatToken("Y", 0, 0, function() { - var y2 = this.year(); - return y2 <= 9999 ? zeroFill(y2, 4) : "+" + y2; -}); -addFormatToken(0, ["YY", 2], 0, function() { - return this.year() % 100; -}); -addFormatToken(0, ["YYYY", 4], 0, "year"); -addFormatToken(0, ["YYYYY", 5], 0, "year"); -addFormatToken(0, ["YYYYYY", 6, true], 0, "year"); -addUnitAlias("year", "y"); -addUnitPriority("year", 1); -addRegexToken("Y", matchSigned); -addRegexToken("YY", match1to2, match2); -addRegexToken("YYYY", match1to4, match4); -addRegexToken("YYYYY", match1to6, match6); -addRegexToken("YYYYYY", match1to6, match6); -addParseToken(["YYYYY", "YYYYYY"], YEAR); -addParseToken("YYYY", function(input, array) { - array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); -}); -addParseToken("YY", function(input, array) { - array[YEAR] = hooks.parseTwoDigitYear(input); -}); -addParseToken("Y", function(input, array) { - array[YEAR] = parseInt(input, 10); -}); -function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; -} -hooks.parseTwoDigitYear = function(input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2e3); -}; -var getSetYear = makeGetSet("FullYear", true); -function getIsLeapYear() { - return isLeapYear(this.year()); -} -function createDate(y2, m2, d, h2, M2, s, ms) { - var date; - if (y2 < 100 && y2 >= 0) { - date = new Date(y2 + 400, m2, d, h2, M2, s, ms); - if (isFinite(date.getFullYear())) { - date.setFullYear(y2); - } - } else { - date = new Date(y2, m2, d, h2, M2, s, ms); - } - return date; -} -function createUTCDate(y2) { - var date, args; - if (y2 < 100 && y2 >= 0) { - args = Array.prototype.slice.call(arguments); - args[0] = y2 + 400; - date = new Date(Date.UTC.apply(null, args)); - if (isFinite(date.getUTCFullYear())) { - date.setUTCFullYear(y2); - } - } else { - date = new Date(Date.UTC.apply(null, arguments)); - } - return date; -} -function firstWeekOffset(year, dow, doy) { - var fwd = 7 + dow - doy, fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; - return -fwdlw + fwd - 1; -} -function dayOfYearFromWeeks(year, week, weekday, dow, doy) { - var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear; - if (dayOfYear <= 0) { - resYear = year - 1; - resDayOfYear = daysInYear(resYear) + dayOfYear; - } else if (dayOfYear > daysInYear(year)) { - resYear = year + 1; - resDayOfYear = dayOfYear - daysInYear(year); - } else { - resYear = year; - resDayOfYear = dayOfYear; - } - return { - year: resYear, - dayOfYear: resDayOfYear - }; -} -function weekOfYear(mom, dow, doy) { - var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear; - if (week < 1) { - resYear = mom.year() - 1; - resWeek = week + weeksInYear(resYear, dow, doy); - } else if (week > weeksInYear(mom.year(), dow, doy)) { - resWeek = week - weeksInYear(mom.year(), dow, doy); - resYear = mom.year() + 1; - } else { - resYear = mom.year(); - resWeek = week; - } - return { - week: resWeek, - year: resYear - }; -} -function weeksInYear(year, dow, doy) { - var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy); - return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; -} -addFormatToken("w", ["ww", 2], "wo", "week"); -addFormatToken("W", ["WW", 2], "Wo", "isoWeek"); -addUnitAlias("week", "w"); -addUnitAlias("isoWeek", "W"); -addUnitPriority("week", 5); -addUnitPriority("isoWeek", 5); -addRegexToken("w", match1to2); -addRegexToken("ww", match1to2, match2); -addRegexToken("W", match1to2); -addRegexToken("WW", match1to2, match2); -addWeekParseToken(["w", "ww", "W", "WW"], function(input, week, config, token2) { - week[token2.substr(0, 1)] = toInt(input); -}); -function localeWeek(mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; -} -var defaultLocaleWeek = { - dow: 0, - doy: 6 -}; -function localeFirstDayOfWeek() { - return this._week.dow; -} -function localeFirstDayOfYear() { - return this._week.doy; -} -function getSetWeek(input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, "d"); -} -function getSetISOWeek(input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, "d"); -} -addFormatToken("d", 0, "do", "day"); -addFormatToken("dd", 0, 0, function(format2) { - return this.localeData().weekdaysMin(this, format2); -}); -addFormatToken("ddd", 0, 0, function(format2) { - return this.localeData().weekdaysShort(this, format2); -}); -addFormatToken("dddd", 0, 0, function(format2) { - return this.localeData().weekdays(this, format2); -}); -addFormatToken("e", 0, 0, "weekday"); -addFormatToken("E", 0, 0, "isoWeekday"); -addUnitAlias("day", "d"); -addUnitAlias("weekday", "e"); -addUnitAlias("isoWeekday", "E"); -addUnitPriority("day", 11); -addUnitPriority("weekday", 11); -addUnitPriority("isoWeekday", 11); -addRegexToken("d", match1to2); -addRegexToken("e", match1to2); -addRegexToken("E", match1to2); -addRegexToken("dd", function(isStrict, locale2) { - return locale2.weekdaysMinRegex(isStrict); -}); -addRegexToken("ddd", function(isStrict, locale2) { - return locale2.weekdaysShortRegex(isStrict); -}); -addRegexToken("dddd", function(isStrict, locale2) { - return locale2.weekdaysRegex(isStrict); -}); -addWeekParseToken(["dd", "ddd", "dddd"], function(input, week, config, token2) { - var weekday = config._locale.weekdaysParse(input, token2, config._strict); - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } -}); -addWeekParseToken(["d", "e", "E"], function(input, week, config, token2) { - week[token2] = toInt(input); -}); -function parseWeekday(input, locale2) { - if (typeof input !== "string") { - return input; - } - if (!isNaN(input)) { - return parseInt(input, 10); - } - input = locale2.weekdaysParse(input); - if (typeof input === "number") { - return input; - } - return null; -} -function parseIsoWeekday(input, locale2) { - if (typeof input === "string") { - return locale2.weekdaysParse(input) % 7 || 7; - } - return isNaN(input) ? null : input; -} -function shiftWeekdays(ws, n2) { - return ws.slice(n2, 7).concat(ws.slice(0, n2)); -} -var defaultLocaleWeekdays = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), defaultLocaleWeekdaysShort = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), defaultLocaleWeekdaysMin = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), defaultWeekdaysRegex = matchWord, defaultWeekdaysShortRegex = matchWord, defaultWeekdaysMinRegex = matchWord; -function localeWeekdays(m2, format2) { - var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m2 && m2 !== true && this._weekdays.isFormat.test(format2) ? "format" : "standalone"]; - return m2 === true ? shiftWeekdays(weekdays, this._week.dow) : m2 ? weekdays[m2.day()] : weekdays; -} -function localeWeekdaysShort(m2) { - return m2 === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m2 ? this._weekdaysShort[m2.day()] : this._weekdaysShort; -} -function localeWeekdaysMin(m2) { - return m2 === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m2 ? this._weekdaysMin[m2.day()] : this._weekdaysMin; -} -function handleStrictParse$1(weekdayName, format2, strict) { - var i, ii2, mom, llc = weekdayName.toLocaleLowerCase(); - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._shortWeekdaysParse = []; - this._minWeekdaysParse = []; - for (i = 0; i < 7; ++i) { - mom = createUTC([2e3, 1]).day(i); - this._minWeekdaysParse[i] = this.weekdaysMin(mom, "").toLocaleLowerCase(); - this._shortWeekdaysParse[i] = this.weekdaysShort(mom, "").toLocaleLowerCase(); - this._weekdaysParse[i] = this.weekdays(mom, "").toLocaleLowerCase(); - } - } - if (strict) { - if (format2 === "dddd") { - ii2 = indexOf.call(this._weekdaysParse, llc); - return ii2 !== -1 ? ii2 : null; - } else if (format2 === "ddd") { - ii2 = indexOf.call(this._shortWeekdaysParse, llc); - return ii2 !== -1 ? ii2 : null; - } else { - ii2 = indexOf.call(this._minWeekdaysParse, llc); - return ii2 !== -1 ? ii2 : null; - } - } else { - if (format2 === "dddd") { - ii2 = indexOf.call(this._weekdaysParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._shortWeekdaysParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._minWeekdaysParse, llc); - return ii2 !== -1 ? ii2 : null; - } else if (format2 === "ddd") { - ii2 = indexOf.call(this._shortWeekdaysParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._weekdaysParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._minWeekdaysParse, llc); - return ii2 !== -1 ? ii2 : null; - } else { - ii2 = indexOf.call(this._minWeekdaysParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._weekdaysParse, llc); - if (ii2 !== -1) { - return ii2; - } - ii2 = indexOf.call(this._shortWeekdaysParse, llc); - return ii2 !== -1 ? ii2 : null; - } - } -} -function localeWeekdaysParse(weekdayName, format2, strict) { - var i, mom, regex; - if (this._weekdaysParseExact) { - return handleStrictParse$1.call(this, weekdayName, format2, strict); - } - if (!this._weekdaysParse) { - this._weekdaysParse = []; - this._minWeekdaysParse = []; - this._shortWeekdaysParse = []; - this._fullWeekdaysParse = []; - } - for (i = 0; i < 7; i++) { - mom = createUTC([2e3, 1]).day(i); - if (strict && !this._fullWeekdaysParse[i]) { - this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(mom, "").replace(".", "\\.?") + "$", "i"); - this._shortWeekdaysParse[i] = new RegExp("^" + this.weekdaysShort(mom, "").replace(".", "\\.?") + "$", "i"); - this._minWeekdaysParse[i] = new RegExp("^" + this.weekdaysMin(mom, "").replace(".", "\\.?") + "$", "i"); - } - if (!this._weekdaysParse[i]) { - regex = "^" + this.weekdays(mom, "") + "|^" + this.weekdaysShort(mom, "") + "|^" + this.weekdaysMin(mom, ""); - this._weekdaysParse[i] = new RegExp(regex.replace(".", ""), "i"); - } - if (strict && format2 === "dddd" && this._fullWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format2 === "ddd" && this._shortWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (strict && format2 === "dd" && this._minWeekdaysParse[i].test(weekdayName)) { - return i; - } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } -} -function getSetDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, "d"); - } else { - return day; - } -} -function getSetLocaleDayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, "d"); -} -function getSetISODayOfWeek(input) { - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - var weekday = parseIsoWeekday(input, this.localeData()); - return this.day(this.day() % 7 ? weekday : weekday - 7); - } else { - return this.day() || 7; - } -} -function weekdaysRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, "_weekdaysRegex")) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysStrictRegex; - } else { - return this._weekdaysRegex; - } - } else { - if (!hasOwnProp(this, "_weekdaysRegex")) { - this._weekdaysRegex = defaultWeekdaysRegex; - } - return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; - } -} -function weekdaysShortRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, "_weekdaysRegex")) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysShortStrictRegex; - } else { - return this._weekdaysShortRegex; - } - } else { - if (!hasOwnProp(this, "_weekdaysShortRegex")) { - this._weekdaysShortRegex = defaultWeekdaysShortRegex; - } - return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; - } -} -function weekdaysMinRegex(isStrict) { - if (this._weekdaysParseExact) { - if (!hasOwnProp(this, "_weekdaysRegex")) { - computeWeekdaysParse.call(this); - } - if (isStrict) { - return this._weekdaysMinStrictRegex; - } else { - return this._weekdaysMinRegex; - } - } else { - if (!hasOwnProp(this, "_weekdaysMinRegex")) { - this._weekdaysMinRegex = defaultWeekdaysMinRegex; - } - return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; - } -} -function computeWeekdaysParse() { - function cmpLenRev(a, b) { - return b.length - a.length; - } - var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i, mom, minp, shortp, longp; - for (i = 0; i < 7; i++) { - mom = createUTC([2e3, 1]).day(i); - minp = regexEscape$1(this.weekdaysMin(mom, "")); - shortp = regexEscape$1(this.weekdaysShort(mom, "")); - longp = regexEscape$1(this.weekdays(mom, "")); - minPieces.push(minp); - shortPieces.push(shortp); - longPieces.push(longp); - mixedPieces.push(minp); - mixedPieces.push(shortp); - mixedPieces.push(longp); - } - minPieces.sort(cmpLenRev); - shortPieces.sort(cmpLenRev); - longPieces.sort(cmpLenRev); - mixedPieces.sort(cmpLenRev); - this._weekdaysRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); - this._weekdaysShortRegex = this._weekdaysRegex; - this._weekdaysMinRegex = this._weekdaysRegex; - this._weekdaysStrictRegex = new RegExp("^(" + longPieces.join("|") + ")", "i"); - this._weekdaysShortStrictRegex = new RegExp("^(" + shortPieces.join("|") + ")", "i"); - this._weekdaysMinStrictRegex = new RegExp("^(" + minPieces.join("|") + ")", "i"); -} -function hFormat() { - return this.hours() % 12 || 12; -} -function kFormat() { - return this.hours() || 24; -} -addFormatToken("H", ["HH", 2], 0, "hour"); -addFormatToken("h", ["hh", 2], 0, hFormat); -addFormatToken("k", ["kk", 2], 0, kFormat); -addFormatToken("hmm", 0, 0, function() { - return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2); -}); -addFormatToken("hmmss", 0, 0, function() { - return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); -}); -addFormatToken("Hmm", 0, 0, function() { - return "" + this.hours() + zeroFill(this.minutes(), 2); -}); -addFormatToken("Hmmss", 0, 0, function() { - return "" + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); -}); -function meridiem(token2, lowercase) { - addFormatToken(token2, 0, 0, function() { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); - }); -} -meridiem("a", true); -meridiem("A", false); -addUnitAlias("hour", "h"); -addUnitPriority("hour", 13); -function matchMeridiem(isStrict, locale2) { - return locale2._meridiemParse; -} -addRegexToken("a", matchMeridiem); -addRegexToken("A", matchMeridiem); -addRegexToken("H", match1to2); -addRegexToken("h", match1to2); -addRegexToken("k", match1to2); -addRegexToken("HH", match1to2, match2); -addRegexToken("hh", match1to2, match2); -addRegexToken("kk", match1to2, match2); -addRegexToken("hmm", match3to4); -addRegexToken("hmmss", match5to6); -addRegexToken("Hmm", match3to4); -addRegexToken("Hmmss", match5to6); -addParseToken(["H", "HH"], HOUR); -addParseToken(["k", "kk"], function(input, array, config) { - var kInput = toInt(input); - array[HOUR] = kInput === 24 ? 0 : kInput; -}); -addParseToken(["a", "A"], function(input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; -}); -addParseToken(["h", "hh"], function(input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; -}); -addParseToken("hmm", function(input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); - getParsingFlags(config).bigHour = true; -}); -addParseToken("hmmss", function(input, array, config) { - var pos1 = input.length - 4, pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); - getParsingFlags(config).bigHour = true; -}); -addParseToken("Hmm", function(input, array, config) { - var pos = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos)); - array[MINUTE] = toInt(input.substr(pos)); -}); -addParseToken("Hmmss", function(input, array, config) { - var pos1 = input.length - 4, pos2 = input.length - 2; - array[HOUR] = toInt(input.substr(0, pos1)); - array[MINUTE] = toInt(input.substr(pos1, 2)); - array[SECOND] = toInt(input.substr(pos2)); -}); -function localeIsPM(input) { - return (input + "").toLowerCase().charAt(0) === "p"; -} -var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, getSetHour = makeGetSet("Hours", true); -function localeMeridiem(hours2, minutes2, isLower) { - if (hours2 > 11) { - return isLower ? "pm" : "PM"; - } else { - return isLower ? "am" : "AM"; - } -} -var baseConfig = { - calendar: defaultCalendar, - longDateFormat: defaultLongDateFormat, - invalidDate: defaultInvalidDate, - ordinal: defaultOrdinal, - dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, - relativeTime: defaultRelativeTime, - months: defaultLocaleMonths, - monthsShort: defaultLocaleMonthsShort, - week: defaultLocaleWeek, - weekdays: defaultLocaleWeekdays, - weekdaysMin: defaultLocaleWeekdaysMin, - weekdaysShort: defaultLocaleWeekdaysShort, - meridiemParse: defaultLocaleMeridiemParse -}; -var locales = {}, localeFamilies = {}, globalLocale; -function commonPrefix(arr1, arr2) { - var i, minl = Math.min(arr1.length, arr2.length); - for (i = 0; i < minl; i += 1) { - if (arr1[i] !== arr2[i]) { - return i; - } - } - return minl; -} -function normalizeLocale(key) { - return key ? key.toLowerCase().replace("_", "-") : key; -} -function chooseLocale(names) { - var i = 0, j, next, locale2, split; - while (i < names.length) { - split = normalizeLocale(names[i]).split("-"); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split("-") : null; - while (j > 0) { - locale2 = loadLocale(split.slice(0, j).join("-")); - if (locale2) { - return locale2; - } - if (next && next.length >= j && commonPrefix(split, next) >= j - 1) { - break; - } - j--; - } - i++; - } - return globalLocale; -} -function loadLocale(name) { - var oldLocale = null, aliasedRequire; - if (locales[name] === void 0 && typeof module !== "undefined" && module && module.exports) { - try { - oldLocale = globalLocale._abbr; - aliasedRequire = require; - aliasedRequire("./locale/" + name); - getSetGlobalLocale(oldLocale); - } catch (e) { - locales[name] = null; - } - } - return locales[name]; -} -function getSetGlobalLocale(key, values) { - var data; - if (key) { - if (isUndefined(values)) { - data = getLocale(key); - } else { - data = defineLocale(key, values); - } - if (data) { - globalLocale = data; - } else { - if (typeof console !== "undefined" && console.warn) { - console.warn("Locale " + key + " not found. Did you forget to load it?"); - } - } - } - return globalLocale._abbr; -} -function defineLocale(name, config) { - if (config !== null) { - var locale2, parentConfig = baseConfig; - config.abbr = name; - if (locales[name] != null) { - deprecateSimple("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."); - parentConfig = locales[name]._config; - } else if (config.parentLocale != null) { - if (locales[config.parentLocale] != null) { - parentConfig = locales[config.parentLocale]._config; - } else { - locale2 = loadLocale(config.parentLocale); - if (locale2 != null) { - parentConfig = locale2._config; - } else { - if (!localeFamilies[config.parentLocale]) { - localeFamilies[config.parentLocale] = []; - } - localeFamilies[config.parentLocale].push({ - name, - config - }); - return null; - } - } - } - locales[name] = new Locale(mergeConfigs(parentConfig, config)); - if (localeFamilies[name]) { - localeFamilies[name].forEach(function(x2) { - defineLocale(x2.name, x2.config); - }); - } - getSetGlobalLocale(name); - return locales[name]; - } else { - delete locales[name]; - return null; - } -} -function updateLocale(name, config) { - if (config != null) { - var locale2, tmpLocale, parentConfig = baseConfig; - if (locales[name] != null && locales[name].parentLocale != null) { - locales[name].set(mergeConfigs(locales[name]._config, config)); - } else { - tmpLocale = loadLocale(name); - if (tmpLocale != null) { - parentConfig = tmpLocale._config; - } - config = mergeConfigs(parentConfig, config); - if (tmpLocale == null) { - config.abbr = name; - } - locale2 = new Locale(config); - locale2.parentLocale = locales[name]; - locales[name] = locale2; - } - getSetGlobalLocale(name); - } else { - if (locales[name] != null) { - if (locales[name].parentLocale != null) { - locales[name] = locales[name].parentLocale; - if (name === getSetGlobalLocale()) { - getSetGlobalLocale(name); - } - } else if (locales[name] != null) { - delete locales[name]; - } - } - } - return locales[name]; -} -function getLocale(key) { - var locale2; - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - if (!key) { - return globalLocale; - } - if (!isArray(key)) { - locale2 = loadLocale(key); - if (locale2) { - return locale2; - } - key = [key]; - } - return chooseLocale(key); -} -function listLocales() { - return keys(locales); -} -function checkOverflow(m2) { - var overflow, a = m2._a; - if (a && getParsingFlags(m2).overflow === -2) { - overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1; - if (getParsingFlags(m2)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - if (getParsingFlags(m2)._overflowWeeks && overflow === -1) { - overflow = WEEK; - } - if (getParsingFlags(m2)._overflowWeekday && overflow === -1) { - overflow = WEEKDAY; - } - getParsingFlags(m2).overflow = overflow; - } - return m2; -} -var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, isoDates = [ - ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], - ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], - ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], - ["GGGG-[W]WW", /\d{4}-W\d\d/, false], - ["YYYY-DDD", /\d{4}-\d{3}/], - ["YYYY-MM", /\d{4}-\d\d/, false], - ["YYYYYYMMDD", /[+-]\d{10}/], - ["YYYYMMDD", /\d{8}/], - ["GGGG[W]WWE", /\d{4}W\d{3}/], - ["GGGG[W]WW", /\d{4}W\d{2}/, false], - ["YYYYDDD", /\d{7}/], - ["YYYYMM", /\d{6}/, false], - ["YYYY", /\d{4}/, false] -], isoTimes = [ - ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], - ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], - ["HH:mm:ss", /\d\d:\d\d:\d\d/], - ["HH:mm", /\d\d:\d\d/], - ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], - ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], - ["HHmmss", /\d\d\d\d\d\d/], - ["HHmm", /\d\d\d\d/], - ["HH", /\d\d/] -], aspNetJsonRegex = /^\/?Date\((-?\d+)/i, rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, obsOffsets = { - UT: 0, - GMT: 0, - EDT: -4 * 60, - EST: -5 * 60, - CDT: -5 * 60, - CST: -6 * 60, - MDT: -6 * 60, - MST: -7 * 60, - PDT: -7 * 60, - PST: -8 * 60 -}; -function configFromISO(config) { - var i, l2, string = config._i, match5 = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), allowTime, dateFormat, timeFormat, tzFormat; - if (match5) { - getParsingFlags(config).iso = true; - for (i = 0, l2 = isoDates.length; i < l2; i++) { - if (isoDates[i][1].exec(match5[1])) { - dateFormat = isoDates[i][0]; - allowTime = isoDates[i][2] !== false; - break; - } - } - if (dateFormat == null) { - config._isValid = false; - return; - } - if (match5[3]) { - for (i = 0, l2 = isoTimes.length; i < l2; i++) { - if (isoTimes[i][1].exec(match5[3])) { - timeFormat = (match5[2] || " ") + isoTimes[i][0]; - break; - } - } - if (timeFormat == null) { - config._isValid = false; - return; - } - } - if (!allowTime && timeFormat != null) { - config._isValid = false; - return; - } - if (match5[4]) { - if (tzRegex.exec(match5[4])) { - tzFormat = "Z"; - } else { - config._isValid = false; - return; - } - } - config._f = dateFormat + (timeFormat || "") + (tzFormat || ""); - configFromStringAndFormat(config); - } else { - config._isValid = false; - } -} -function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { - var result = [ - untruncateYear(yearStr), - defaultLocaleMonthsShort.indexOf(monthStr), - parseInt(dayStr, 10), - parseInt(hourStr, 10), - parseInt(minuteStr, 10) - ]; - if (secondStr) { - result.push(parseInt(secondStr, 10)); - } - return result; -} -function untruncateYear(yearStr) { - var year = parseInt(yearStr, 10); - if (year <= 49) { - return 2e3 + year; - } else if (year <= 999) { - return 1900 + year; - } - return year; -} -function preprocessRFC2822(s) { - return s.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, ""); -} -function checkWeekday(weekdayStr, parsedInput, config) { - if (weekdayStr) { - var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); - if (weekdayProvided !== weekdayActual) { - getParsingFlags(config).weekdayMismatch = true; - config._isValid = false; - return false; - } - } - return true; -} -function calculateOffset(obsOffset, militaryOffset, numOffset) { - if (obsOffset) { - return obsOffsets[obsOffset]; - } else if (militaryOffset) { - return 0; - } else { - var hm = parseInt(numOffset, 10), m2 = hm % 100, h2 = (hm - m2) / 100; - return h2 * 60 + m2; - } -} -function configFromRFC2822(config) { - var match5 = rfc2822.exec(preprocessRFC2822(config._i)), parsedArray; - if (match5) { - parsedArray = extractFromRFC2822Strings(match5[4], match5[3], match5[2], match5[5], match5[6], match5[7]); - if (!checkWeekday(match5[1], parsedArray, config)) { - return; - } - config._a = parsedArray; - config._tzm = calculateOffset(match5[8], match5[9], match5[10]); - config._d = createUTCDate.apply(null, config._a); - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - getParsingFlags(config).rfc2822 = true; - } else { - config._isValid = false; - } -} -function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - configFromRFC2822(config); - if (config._isValid === false) { - delete config._isValid; - } else { - return; - } - if (config._strict) { - config._isValid = false; - } else { - hooks.createFromInputFallback(config); - } -} -hooks.createFromInputFallback = deprecate("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(config) { - config._d = new Date(config._i + (config._useUTC ? " UTC" : "")); -}); -function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; -} -function currentDateArray(config) { - var nowValue = new Date(hooks.now()); - if (config._useUTC) { - return [ - nowValue.getUTCFullYear(), - nowValue.getUTCMonth(), - nowValue.getUTCDate() - ]; - } - return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; -} -function configFromArray(config) { - var i, date, input = [], currentDate, expectedWeekday, yearToUse; - if (config._d) { - return; - } - currentDate = currentDateArray(config); - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - if (config._dayOfYear != null) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { - getParsingFlags(config)._overflowDayOfYear = true; - } - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - for (; i < 7; i++) { - config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i]; - } - if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { - config._nextDay = true; - config._a[HOUR] = 0; - } - config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); - expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } - if (config._nextDay) { - config._a[HOUR] = 24; - } - if (config._w && typeof config._w.d !== "undefined" && config._w.d !== expectedWeekday) { - getParsingFlags(config).weekdayMismatch = true; - } -} -function dayOfYearFromWeekInfo(config) { - var w2, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; - w2 = config._w; - if (w2.GG != null || w2.W != null || w2.E != null) { - dow = 1; - doy = 4; - weekYear = defaults(w2.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); - week = defaults(w2.W, 1); - weekday = defaults(w2.E, 1); - if (weekday < 1 || weekday > 7) { - weekdayOverflow = true; - } - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - curWeek = weekOfYear(createLocal(), dow, doy); - weekYear = defaults(w2.gg, config._a[YEAR], curWeek.year); - week = defaults(w2.w, curWeek.week); - if (w2.d != null) { - weekday = w2.d; - if (weekday < 0 || weekday > 6) { - weekdayOverflow = true; - } - } else if (w2.e != null) { - weekday = w2.e + dow; - if (w2.e < 0 || w2.e > 6) { - weekdayOverflow = true; - } - } else { - weekday = dow; - } - } - if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { - getParsingFlags(config)._overflowWeeks = true; - } else if (weekdayOverflow != null) { - getParsingFlags(config)._overflowWeekday = true; - } else { - temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } -} -hooks.ISO_8601 = function() { -}; -hooks.RFC_2822 = function() { -}; -function configFromStringAndFormat(config) { - if (config._f === hooks.ISO_8601) { - configFromISO(config); - return; - } - if (config._f === hooks.RFC_2822) { - configFromRFC2822(config); - return; - } - config._a = []; - getParsingFlags(config).empty = true; - var string = "" + config._i, i, parsedInput, tokens2, token2, skipped, stringLength = string.length, totalParsedInputLength = 0, era; - tokens2 = expandFormat(config._f, config._locale).match(formattingTokens) || []; - for (i = 0; i < tokens2.length; i++) { - token2 = tokens2[i]; - parsedInput = (string.match(getParseRegexForToken(token2, config)) || [])[0]; - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - if (formatTokenFunctions[token2]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } else { - getParsingFlags(config).unusedTokens.push(token2); - } - addTimeToArrayFromToken(token2, parsedInput, config); - } else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token2); - } - } - getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } - if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { - getParsingFlags(config).bigHour = void 0; - } - getParsingFlags(config).parsedDateParts = config._a.slice(0); - getParsingFlags(config).meridiem = config._meridiem; - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); - era = getParsingFlags(config).era; - if (era !== null) { - config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); - } - configFromArray(config); - checkOverflow(config); -} -function meridiemFixWrap(locale2, hour, meridiem2) { - var isPm; - if (meridiem2 == null) { - return hour; - } - if (locale2.meridiemHour != null) { - return locale2.meridiemHour(hour, meridiem2); - } else if (locale2.isPM != null) { - isPm = locale2.isPM(meridiem2); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - return hour; - } -} -function configFromStringAndArray(config) { - var tempConfig, bestMoment, scoreToBeat, i, currentScore, validFormatFound, bestFormatIsValid = false; - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - validFormatFound = false; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - if (isValid$1(tempConfig)) { - validFormatFound = true; - } - currentScore += getParsingFlags(tempConfig).charsLeftOver; - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - getParsingFlags(tempConfig).score = currentScore; - if (!bestFormatIsValid) { - if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - if (validFormatFound) { - bestFormatIsValid = true; - } - } - } else { - if (currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - } - extend(config, bestMoment || tempConfig); -} -function configFromObject(config) { - if (config._d) { - return; - } - var i = normalizeObjectUnits(config._i), dayOrDate = i.day === void 0 ? i.date : i.day; - config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function(obj) { - return obj && parseInt(obj, 10); - }); - configFromArray(config); -} -function createFromConfig(config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - res.add(1, "d"); - res._nextDay = void 0; - } - return res; -} -function prepareConfig(config) { - var input = config._i, format2 = config._f; - config._locale = config._locale || getLocale(config._l); - if (input === null || format2 === void 0 && input === "") { - return createInvalid({ nullInput: true }); - } - if (typeof input === "string") { - config._i = input = config._locale.preparse(input); - } - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isDate$1(input)) { - config._d = input; - } else if (isArray(format2)) { - configFromStringAndArray(config); - } else if (format2) { - configFromStringAndFormat(config); - } else { - configFromInput(config); - } - if (!isValid$1(config)) { - config._d = null; - } - return config; -} -function configFromInput(config) { - var input = config._i; - if (isUndefined(input)) { - config._d = new Date(hooks.now()); - } else if (isDate$1(input)) { - config._d = new Date(input.valueOf()); - } else if (typeof input === "string") { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function(obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (isObject(input)) { - configFromObject(config); - } else if (isNumber(input)) { - config._d = new Date(input); - } else { - hooks.createFromInputFallback(config); - } -} -function createLocalOrUTC(input, format2, locale2, strict, isUTC) { - var c = {}; - if (format2 === true || format2 === false) { - strict = format2; - format2 = void 0; - } - if (locale2 === true || locale2 === false) { - strict = locale2; - locale2 = void 0; - } - if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) { - input = void 0; - } - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale2; - c._i = input; - c._f = format2; - c._strict = strict; - return createFromConfig(c); -} -function createLocal(input, format2, locale2, strict) { - return createLocalOrUTC(input, format2, locale2, strict, false); -} -var prototypeMin = deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other < this ? this : other; - } else { - return createInvalid(); - } -}), prototypeMax = deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() { - var other = createLocal.apply(null, arguments); - if (this.isValid() && other.isValid()) { - return other > this ? this : other; - } else { - return createInvalid(); - } -}); -function pickBy(fn2, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn2](res)) { - res = moments[i]; - } - } - return res; -} -function min$1() { - var args = [].slice.call(arguments, 0); - return pickBy("isBefore", args); -} -function max$1() { - var args = [].slice.call(arguments, 0); - return pickBy("isAfter", args); -} -var now = function() { - return Date.now ? Date.now() : +new Date(); -}; -var ordering = [ - "year", - "quarter", - "month", - "week", - "day", - "hour", - "minute", - "second", - "millisecond" -]; -function isDurationValid(m2) { - var key, unitHasDecimal = false, i; - for (key in m2) { - if (hasOwnProp(m2, key) && !(indexOf.call(ordering, key) !== -1 && (m2[key] == null || !isNaN(m2[key])))) { - return false; - } - } - for (i = 0; i < ordering.length; ++i) { - if (m2[ordering[i]]) { - if (unitHasDecimal) { - return false; - } - if (parseFloat(m2[ordering[i]]) !== toInt(m2[ordering[i]])) { - unitHasDecimal = true; - } - } - } - return true; -} -function isValid$1$1() { - return this._isValid; -} -function createInvalid$1() { - return createDuration(NaN); -} -function Duration(duration) { - var normalizedInput = normalizeObjectUnits(duration), years2 = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months2 = normalizedInput.month || 0, weeks2 = normalizedInput.week || normalizedInput.isoWeek || 0, days2 = normalizedInput.day || 0, hours2 = normalizedInput.hour || 0, minutes2 = normalizedInput.minute || 0, seconds2 = normalizedInput.second || 0, milliseconds2 = normalizedInput.millisecond || 0; - this._isValid = isDurationValid(normalizedInput); - this._milliseconds = +milliseconds2 + seconds2 * 1e3 + minutes2 * 6e4 + hours2 * 1e3 * 60 * 60; - this._days = +days2 + weeks2 * 7; - this._months = +months2 + quarters * 3 + years2 * 12; - this._data = {}; - this._locale = getLocale(); - this._bubble(); -} -function isDuration(obj) { - return obj instanceof Duration; -} -function absRound(number) { - if (number < 0) { - return Math.round(-1 * number) * -1; - } else { - return Math.round(number); - } -} -function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i; - for (i = 0; i < len; i++) { - if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) { - diffs++; - } - } - return diffs + lengthDiff; -} -function offset$2(token2, separator) { - addFormatToken(token2, 0, 0, function() { - var offset2 = this.utcOffset(), sign2 = "+"; - if (offset2 < 0) { - offset2 = -offset2; - sign2 = "-"; - } - return sign2 + zeroFill(~~(offset2 / 60), 2) + separator + zeroFill(~~offset2 % 60, 2); - }); -} -offset$2("Z", ":"); -offset$2("ZZ", ""); -addRegexToken("Z", matchShortOffset); -addRegexToken("ZZ", matchShortOffset); -addParseToken(["Z", "ZZ"], function(input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(matchShortOffset, input); -}); -var chunkOffset = /([\+\-]|\d\d)/gi; -function offsetFromString(matcher, string) { - var matches2 = (string || "").match(matcher), chunk, parts, minutes2; - if (matches2 === null) { - return null; - } - chunk = matches2[matches2.length - 1] || []; - parts = (chunk + "").match(chunkOffset) || ["-", 0, 0]; - minutes2 = +(parts[1] * 60) + toInt(parts[2]); - return minutes2 === 0 ? 0 : parts[0] === "+" ? minutes2 : -minutes2; -} -function cloneWithOffset(input, model) { - var res, diff2; - if (model._isUTC) { - res = model.clone(); - diff2 = (isMoment(input) || isDate$1(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); - res._d.setTime(res._d.valueOf() + diff2); - hooks.updateOffset(res, false); - return res; - } else { - return createLocal(input).local(); - } -} -function getDateOffset(m2) { - return -Math.round(m2._d.getTimezoneOffset()); -} -hooks.updateOffset = function() { -}; -function getSetOffset(input, keepLocalTime, keepMinutes) { - var offset2 = this._offset || 0, localAdjust; - if (!this.isValid()) { - return input != null ? this : NaN; - } - if (input != null) { - if (typeof input === "string") { - input = offsetFromString(matchShortOffset, input); - if (input === null) { - return this; - } - } else if (Math.abs(input) < 16 && !keepMinutes) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, "m"); - } - if (offset2 !== input) { - if (!keepLocalTime || this._changeInProgress) { - addSubtract(this, createDuration(input - offset2, "m"), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset2 : getDateOffset(this); - } -} -function getSetZone(input, keepLocalTime) { - if (input != null) { - if (typeof input !== "string") { - input = -input; - } - this.utcOffset(input, keepLocalTime); - return this; - } else { - return -this.utcOffset(); - } -} -function setOffsetToUTC(keepLocalTime) { - return this.utcOffset(0, keepLocalTime); -} -function setOffsetToLocal(keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - if (keepLocalTime) { - this.subtract(getDateOffset(this), "m"); - } - } - return this; -} -function setOffsetToParsedOffset() { - if (this._tzm != null) { - this.utcOffset(this._tzm, false, true); - } else if (typeof this._i === "string") { - var tZone = offsetFromString(matchOffset, this._i); - if (tZone != null) { - this.utcOffset(tZone); - } else { - this.utcOffset(0, true); - } - } - return this; -} -function hasAlignedHourOffset(input) { - if (!this.isValid()) { - return false; - } - input = input ? createLocal(input).utcOffset() : 0; - return (this.utcOffset() - input) % 60 === 0; -} -function isDaylightSavingTime() { - return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); -} -function isDaylightSavingTimeShifted() { - if (!isUndefined(this._isDSTShifted)) { - return this._isDSTShifted; - } - var c = {}, other; - copyConfig(c, this); - c = prepareConfig(c); - if (c._a) { - other = c._isUTC ? createUTC(c._a) : createLocal(c._a); - this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - return this._isDSTShifted; -} -function isLocal() { - return this.isValid() ? !this._isUTC : false; -} -function isUtcOffset() { - return this.isValid() ? this._isUTC : false; -} -function isUtc() { - return this.isValid() ? this._isUTC && this._offset === 0 : false; -} -var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; -function createDuration(input, key) { - var duration = input, match5 = null, sign2, ret, diffRes; - if (isDuration(input)) { - duration = { - ms: input._milliseconds, - d: input._days, - M: input._months - }; - } else if (isNumber(input) || !isNaN(+input)) { - duration = {}; - if (key) { - duration[key] = +input; - } else { - duration.milliseconds = +input; - } - } else if (match5 = aspNetRegex.exec(input)) { - sign2 = match5[1] === "-" ? -1 : 1; - duration = { - y: 0, - d: toInt(match5[DATE]) * sign2, - h: toInt(match5[HOUR]) * sign2, - m: toInt(match5[MINUTE]) * sign2, - s: toInt(match5[SECOND]) * sign2, - ms: toInt(absRound(match5[MILLISECOND] * 1e3)) * sign2 - }; - } else if (match5 = isoRegex.exec(input)) { - sign2 = match5[1] === "-" ? -1 : 1; - duration = { - y: parseIso(match5[2], sign2), - M: parseIso(match5[3], sign2), - w: parseIso(match5[4], sign2), - d: parseIso(match5[5], sign2), - h: parseIso(match5[6], sign2), - m: parseIso(match5[7], sign2), - s: parseIso(match5[8], sign2) - }; - } else if (duration == null) { - duration = {}; - } else if (typeof duration === "object" && ("from" in duration || "to" in duration)) { - diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - ret = new Duration(duration); - if (isDuration(input) && hasOwnProp(input, "_locale")) { - ret._locale = input._locale; - } - if (isDuration(input) && hasOwnProp(input, "_isValid")) { - ret._isValid = input._isValid; - } - return ret; -} -createDuration.fn = Duration.prototype; -createDuration.invalid = createInvalid$1; -function parseIso(inp, sign2) { - var res = inp && parseFloat(inp.replace(",", ".")); - return (isNaN(res) ? 0 : res) * sign2; -} -function positiveMomentsDifference(base, other) { - var res = {}; - res.months = other.month() - base.month() + (other.year() - base.year()) * 12; - if (base.clone().add(res.months, "M").isAfter(other)) { - --res.months; - } - res.milliseconds = +other - +base.clone().add(res.months, "M"); - return res; -} -function momentsDifference(base, other) { - var res; - if (!(base.isValid() && other.isValid())) { - return { milliseconds: 0, months: 0 }; - } - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - return res; -} -function createAdder(direction, name) { - return function(val, period) { - var dur, tmp; - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, "moment()." + name + "(period, number) is deprecated. Please use moment()." + name + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."); - tmp = val; - val = period; - period = tmp; - } - dur = createDuration(val, period); - addSubtract(this, dur, direction); - return this; - }; -} -function addSubtract(mom, duration, isAdding, updateOffset) { - var milliseconds2 = duration._milliseconds, days2 = absRound(duration._days), months2 = absRound(duration._months); - if (!mom.isValid()) { - return; - } - updateOffset = updateOffset == null ? true : updateOffset; - if (months2) { - setMonth$1(mom, get$1(mom, "Month") + months2 * isAdding); - } - if (days2) { - set$1(mom, "Date", get$1(mom, "Date") + days2 * isAdding); - } - if (milliseconds2) { - mom._d.setTime(mom._d.valueOf() + milliseconds2 * isAdding); - } - if (updateOffset) { - hooks.updateOffset(mom, days2 || months2); - } -} -var add = createAdder(1, "add"), subtract = createAdder(-1, "subtract"); -function isString(input) { - return typeof input === "string" || input instanceof String; -} -function isMomentInput(input) { - return isMoment(input) || isDate$1(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0; -} -function isMomentInputObject(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = [ - "years", - "year", - "y", - "months", - "month", - "M", - "days", - "day", - "d", - "dates", - "date", - "D", - "hours", - "hour", - "h", - "minutes", - "minute", - "m", - "seconds", - "second", - "s", - "milliseconds", - "millisecond", - "ms" - ], i, property; - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); - } - return objectTest && propertyTest; -} -function isNumberOrStringArray(input) { - var arrayTest = isArray(input), dataTypeTest = false; - if (arrayTest) { - dataTypeTest = input.filter(function(item) { - return !isNumber(item) && isString(input); - }).length === 0; - } - return arrayTest && dataTypeTest; -} -function isCalendarSpec(input) { - var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = [ - "sameDay", - "nextDay", - "lastDay", - "nextWeek", - "lastWeek", - "sameElse" - ], i, property; - for (i = 0; i < properties.length; i += 1) { - property = properties[i]; - propertyTest = propertyTest || hasOwnProp(input, property); - } - return objectTest && propertyTest; -} -function getCalendarFormat(myMoment, now2) { - var diff2 = myMoment.diff(now2, "days", true); - return diff2 < -6 ? "sameElse" : diff2 < -1 ? "lastWeek" : diff2 < 0 ? "lastDay" : diff2 < 1 ? "sameDay" : diff2 < 2 ? "nextDay" : diff2 < 7 ? "nextWeek" : "sameElse"; -} -function calendar$1(time, formats) { - if (arguments.length === 1) { - if (!arguments[0]) { - time = void 0; - formats = void 0; - } else if (isMomentInput(arguments[0])) { - time = arguments[0]; - formats = void 0; - } else if (isCalendarSpec(arguments[0])) { - formats = arguments[0]; - time = void 0; - } - } - var now2 = time || createLocal(), sod = cloneWithOffset(now2, this).startOf("day"), format2 = hooks.calendarFormat(this, sod) || "sameElse", output2 = formats && (isFunction(formats[format2]) ? formats[format2].call(this, now2) : formats[format2]); - return this.format(output2 || this.localeData().calendar(format2, this, createLocal(now2))); -} -function clone() { - return new Moment(this); -} -function isAfter$1(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || "millisecond"; - if (units === "millisecond") { - return this.valueOf() > localInput.valueOf(); - } else { - return localInput.valueOf() < this.clone().startOf(units).valueOf(); - } -} -function isBefore$1(input, units) { - var localInput = isMoment(input) ? input : createLocal(input); - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || "millisecond"; - if (units === "millisecond") { - return this.valueOf() < localInput.valueOf(); - } else { - return this.clone().endOf(units).valueOf() < localInput.valueOf(); - } -} -function isBetween(from2, to2, units, inclusivity) { - var localFrom = isMoment(from2) ? from2 : createLocal(from2), localTo = isMoment(to2) ? to2 : createLocal(to2); - if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { - return false; - } - inclusivity = inclusivity || "()"; - return (inclusivity[0] === "(" ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ")" ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); -} -function isSame(input, units) { - var localInput = isMoment(input) ? input : createLocal(input), inputMs; - if (!(this.isValid() && localInput.isValid())) { - return false; - } - units = normalizeUnits(units) || "millisecond"; - if (units === "millisecond") { - return this.valueOf() === localInput.valueOf(); - } else { - inputMs = localInput.valueOf(); - return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); - } -} -function isSameOrAfter(input, units) { - return this.isSame(input, units) || this.isAfter(input, units); -} -function isSameOrBefore(input, units) { - return this.isSame(input, units) || this.isBefore(input, units); -} -function diff(input, units, asFloat) { - var that, zoneDelta, output2; - if (!this.isValid()) { - return NaN; - } - that = cloneWithOffset(input, this); - if (!that.isValid()) { - return NaN; - } - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; - units = normalizeUnits(units); - switch (units) { - case "year": - output2 = monthDiff(this, that) / 12; - break; - case "month": - output2 = monthDiff(this, that); - break; - case "quarter": - output2 = monthDiff(this, that) / 3; - break; - case "second": - output2 = (this - that) / 1e3; - break; - case "minute": - output2 = (this - that) / 6e4; - break; - case "hour": - output2 = (this - that) / 36e5; - break; - case "day": - output2 = (this - that - zoneDelta) / 864e5; - break; - case "week": - output2 = (this - that - zoneDelta) / 6048e5; - break; - default: - output2 = this - that; - } - return asFloat ? output2 : absFloor(output2); -} -function monthDiff(a, b) { - if (a.date() < b.date()) { - return -monthDiff(b, a); - } - var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), anchor = a.clone().add(wholeMonthDiff, "months"), anchor2, adjust; - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, "months"); - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, "months"); - adjust = (b - anchor) / (anchor2 - anchor); - } - return -(wholeMonthDiff + adjust) || 0; -} -hooks.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ"; -hooks.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; -function toString() { - return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); -} -function toISOString(keepOffset) { - if (!this.isValid()) { - return null; - } - var utc = keepOffset !== true, m2 = utc ? this.clone().utc() : this; - if (m2.year() < 0 || m2.year() > 9999) { - return formatMoment(m2, utc ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"); - } - if (isFunction(Date.prototype.toISOString)) { - if (utc) { - return this.toDate().toISOString(); - } else { - return new Date(this.valueOf() + this.utcOffset() * 60 * 1e3).toISOString().replace("Z", formatMoment(m2, "Z")); - } - } - return formatMoment(m2, utc ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ"); -} -function inspect() { - if (!this.isValid()) { - return "moment.invalid(/* " + this._i + " */)"; - } - var func = "moment", zone = "", prefix, year, datetime, suffix; - if (!this.isLocal()) { - func = this.utcOffset() === 0 ? "moment.utc" : "moment.parseZone"; - zone = "Z"; - } - prefix = "[" + func + '("]'; - year = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY"; - datetime = "-MM-DD[T]HH:mm:ss.SSS"; - suffix = zone + '[")]'; - return this.format(prefix + year + datetime + suffix); -} -function format$1(inputString) { - if (!inputString) { - inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; - } - var output2 = formatMoment(this, inputString); - return this.localeData().postformat(output2); -} -function from(time, withoutSuffix) { - if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { - return createDuration({ to: this, from: time }).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} -function fromNow(withoutSuffix) { - return this.from(createLocal(), withoutSuffix); -} -function to(time, withoutSuffix) { - if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { - return createDuration({ from: this, to: time }).locale(this.locale()).humanize(!withoutSuffix); - } else { - return this.localeData().invalidDate(); - } -} -function toNow(withoutSuffix) { - return this.to(createLocal(), withoutSuffix); -} -function locale$1(key) { - var newLocaleData; - if (key === void 0) { - return this._locale._abbr; - } else { - newLocaleData = getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } -} -var lang = deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(key) { - if (key === void 0) { - return this.localeData(); - } else { - return this.locale(key); - } -}); -function localeData() { - return this._locale; -} -var MS_PER_SECOND = 1e3, MS_PER_MINUTE = 60 * MS_PER_SECOND, MS_PER_HOUR = 60 * MS_PER_MINUTE, MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; -function mod$1(dividend, divisor) { - return (dividend % divisor + divisor) % divisor; -} -function localStartOfDate(y2, m2, d) { - if (y2 < 100 && y2 >= 0) { - return new Date(y2 + 400, m2, d) - MS_PER_400_YEARS; - } else { - return new Date(y2, m2, d).valueOf(); - } -} -function utcStartOfDate(y2, m2, d) { - if (y2 < 100 && y2 >= 0) { - return Date.UTC(y2 + 400, m2, d) - MS_PER_400_YEARS; - } else { - return Date.UTC(y2, m2, d); - } -} -function startOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === void 0 || units === "millisecond" || !this.isValid()) { - return this; - } - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; - switch (units) { - case "year": - time = startOfDate(this.year(), 0, 1); - break; - case "quarter": - time = startOfDate(this.year(), this.month() - this.month() % 3, 1); - break; - case "month": - time = startOfDate(this.year(), this.month(), 1); - break; - case "week": - time = startOfDate(this.year(), this.month(), this.date() - this.weekday()); - break; - case "isoWeek": - time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); - break; - case "day": - case "date": - time = startOfDate(this.year(), this.month(), this.date()); - break; - case "hour": - time = this._d.valueOf(); - time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR); - break; - case "minute": - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_MINUTE); - break; - case "second": - time = this._d.valueOf(); - time -= mod$1(time, MS_PER_SECOND); - break; - } - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; -} -function endOf(units) { - var time, startOfDate; - units = normalizeUnits(units); - if (units === void 0 || units === "millisecond" || !this.isValid()) { - return this; - } - startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; - switch (units) { - case "year": - time = startOfDate(this.year() + 1, 0, 1) - 1; - break; - case "quarter": - time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; - break; - case "month": - time = startOfDate(this.year(), this.month() + 1, 1) - 1; - break; - case "week": - time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; - break; - case "isoWeek": - time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; - break; - case "day": - case "date": - time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; - break; - case "hour": - time = this._d.valueOf(); - time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1; - break; - case "minute": - time = this._d.valueOf(); - time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; - break; - case "second": - time = this._d.valueOf(); - time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; - break; - } - this._d.setTime(time); - hooks.updateOffset(this, true); - return this; -} -function valueOf() { - return this._d.valueOf() - (this._offset || 0) * 6e4; -} -function unix() { - return Math.floor(this.valueOf() / 1e3); -} -function toDate$1() { - return new Date(this.valueOf()); -} -function toArray() { - var m2 = this; - return [ - m2.year(), - m2.month(), - m2.date(), - m2.hour(), - m2.minute(), - m2.second(), - m2.millisecond() - ]; -} -function toObject() { - var m2 = this; - return { - years: m2.year(), - months: m2.month(), - date: m2.date(), - hours: m2.hours(), - minutes: m2.minutes(), - seconds: m2.seconds(), - milliseconds: m2.milliseconds() - }; -} -function toJSON() { - return this.isValid() ? this.toISOString() : null; -} -function isValid$2() { - return isValid$1(this); -} -function parsingFlags() { - return extend({}, getParsingFlags(this)); -} -function invalidAt() { - return getParsingFlags(this).overflow; -} -function creationData() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict - }; -} -addFormatToken("N", 0, 0, "eraAbbr"); -addFormatToken("NN", 0, 0, "eraAbbr"); -addFormatToken("NNN", 0, 0, "eraAbbr"); -addFormatToken("NNNN", 0, 0, "eraName"); -addFormatToken("NNNNN", 0, 0, "eraNarrow"); -addFormatToken("y", ["y", 1], "yo", "eraYear"); -addFormatToken("y", ["yy", 2], 0, "eraYear"); -addFormatToken("y", ["yyy", 3], 0, "eraYear"); -addFormatToken("y", ["yyyy", 4], 0, "eraYear"); -addRegexToken("N", matchEraAbbr); -addRegexToken("NN", matchEraAbbr); -addRegexToken("NNN", matchEraAbbr); -addRegexToken("NNNN", matchEraName); -addRegexToken("NNNNN", matchEraNarrow); -addParseToken(["N", "NN", "NNN", "NNNN", "NNNNN"], function(input, array, config, token2) { - var era = config._locale.erasParse(input, token2, config._strict); - if (era) { - getParsingFlags(config).era = era; - } else { - getParsingFlags(config).invalidEra = input; - } -}); -addRegexToken("y", matchUnsigned); -addRegexToken("yy", matchUnsigned); -addRegexToken("yyy", matchUnsigned); -addRegexToken("yyyy", matchUnsigned); -addRegexToken("yo", matchEraYearOrdinal); -addParseToken(["y", "yy", "yyy", "yyyy"], YEAR); -addParseToken(["yo"], function(input, array, config, token2) { - var match5; - if (config._locale._eraYearOrdinalRegex) { - match5 = input.match(config._locale._eraYearOrdinalRegex); - } - if (config._locale.eraYearOrdinalParse) { - array[YEAR] = config._locale.eraYearOrdinalParse(input, match5); - } else { - array[YEAR] = parseInt(input, 10); - } -}); -function localeEras(m2, format2) { - var i, l2, date, eras = this._eras || getLocale("en")._eras; - for (i = 0, l2 = eras.length; i < l2; ++i) { - switch (typeof eras[i].since) { - case "string": - date = hooks(eras[i].since).startOf("day"); - eras[i].since = date.valueOf(); - break; - } - switch (typeof eras[i].until) { - case "undefined": - eras[i].until = Infinity; - break; - case "string": - date = hooks(eras[i].until).startOf("day").valueOf(); - eras[i].until = date.valueOf(); - break; - } - } - return eras; -} -function localeErasParse(eraName, format2, strict) { - var i, l2, eras = this.eras(), name, abbr, narrow; - eraName = eraName.toUpperCase(); - for (i = 0, l2 = eras.length; i < l2; ++i) { - name = eras[i].name.toUpperCase(); - abbr = eras[i].abbr.toUpperCase(); - narrow = eras[i].narrow.toUpperCase(); - if (strict) { - switch (format2) { - case "N": - case "NN": - case "NNN": - if (abbr === eraName) { - return eras[i]; - } - break; - case "NNNN": - if (name === eraName) { - return eras[i]; - } - break; - case "NNNNN": - if (narrow === eraName) { - return eras[i]; - } - break; - } - } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { - return eras[i]; - } - } -} -function localeErasConvertYear(era, year) { - var dir = era.since <= era.until ? 1 : -1; - if (year === void 0) { - return hooks(era.since).year(); - } else { - return hooks(era.since).year() + (year - era.offset) * dir; - } -} -function getEraName() { - var i, l2, val, eras = this.localeData().eras(); - for (i = 0, l2 = eras.length; i < l2; ++i) { - val = this.clone().startOf("day").valueOf(); - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].name; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].name; - } - } - return ""; -} -function getEraNarrow() { - var i, l2, val, eras = this.localeData().eras(); - for (i = 0, l2 = eras.length; i < l2; ++i) { - val = this.clone().startOf("day").valueOf(); - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].narrow; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].narrow; - } - } - return ""; -} -function getEraAbbr() { - var i, l2, val, eras = this.localeData().eras(); - for (i = 0, l2 = eras.length; i < l2; ++i) { - val = this.clone().startOf("day").valueOf(); - if (eras[i].since <= val && val <= eras[i].until) { - return eras[i].abbr; - } - if (eras[i].until <= val && val <= eras[i].since) { - return eras[i].abbr; - } - } - return ""; -} -function getEraYear() { - var i, l2, dir, val, eras = this.localeData().eras(); - for (i = 0, l2 = eras.length; i < l2; ++i) { - dir = eras[i].since <= eras[i].until ? 1 : -1; - val = this.clone().startOf("day").valueOf(); - if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) { - return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset; - } - } - return this.year(); -} -function erasNameRegex(isStrict) { - if (!hasOwnProp(this, "_erasNameRegex")) { - computeErasParse.call(this); - } - return isStrict ? this._erasNameRegex : this._erasRegex; -} -function erasAbbrRegex(isStrict) { - if (!hasOwnProp(this, "_erasAbbrRegex")) { - computeErasParse.call(this); - } - return isStrict ? this._erasAbbrRegex : this._erasRegex; -} -function erasNarrowRegex(isStrict) { - if (!hasOwnProp(this, "_erasNarrowRegex")) { - computeErasParse.call(this); - } - return isStrict ? this._erasNarrowRegex : this._erasRegex; -} -function matchEraAbbr(isStrict, locale2) { - return locale2.erasAbbrRegex(isStrict); -} -function matchEraName(isStrict, locale2) { - return locale2.erasNameRegex(isStrict); -} -function matchEraNarrow(isStrict, locale2) { - return locale2.erasNarrowRegex(isStrict); -} -function matchEraYearOrdinal(isStrict, locale2) { - return locale2._eraYearOrdinalRegex || matchUnsigned; -} -function computeErasParse() { - var abbrPieces = [], namePieces = [], narrowPieces = [], mixedPieces = [], i, l2, eras = this.eras(); - for (i = 0, l2 = eras.length; i < l2; ++i) { - namePieces.push(regexEscape$1(eras[i].name)); - abbrPieces.push(regexEscape$1(eras[i].abbr)); - narrowPieces.push(regexEscape$1(eras[i].narrow)); - mixedPieces.push(regexEscape$1(eras[i].name)); - mixedPieces.push(regexEscape$1(eras[i].abbr)); - mixedPieces.push(regexEscape$1(eras[i].narrow)); - } - this._erasRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); - this._erasNameRegex = new RegExp("^(" + namePieces.join("|") + ")", "i"); - this._erasAbbrRegex = new RegExp("^(" + abbrPieces.join("|") + ")", "i"); - this._erasNarrowRegex = new RegExp("^(" + narrowPieces.join("|") + ")", "i"); -} -addFormatToken(0, ["gg", 2], 0, function() { - return this.weekYear() % 100; -}); -addFormatToken(0, ["GG", 2], 0, function() { - return this.isoWeekYear() % 100; -}); -function addWeekYearFormatToken(token2, getter) { - addFormatToken(0, [token2, token2.length], 0, getter); -} -addWeekYearFormatToken("gggg", "weekYear"); -addWeekYearFormatToken("ggggg", "weekYear"); -addWeekYearFormatToken("GGGG", "isoWeekYear"); -addWeekYearFormatToken("GGGGG", "isoWeekYear"); -addUnitAlias("weekYear", "gg"); -addUnitAlias("isoWeekYear", "GG"); -addUnitPriority("weekYear", 1); -addUnitPriority("isoWeekYear", 1); -addRegexToken("G", matchSigned); -addRegexToken("g", matchSigned); -addRegexToken("GG", match1to2, match2); -addRegexToken("gg", match1to2, match2); -addRegexToken("GGGG", match1to4, match4); -addRegexToken("gggg", match1to4, match4); -addRegexToken("GGGGG", match1to6, match6); -addRegexToken("ggggg", match1to6, match6); -addWeekParseToken(["gggg", "ggggg", "GGGG", "GGGGG"], function(input, week, config, token2) { - week[token2.substr(0, 2)] = toInt(input); -}); -addWeekParseToken(["gg", "GG"], function(input, week, config, token2) { - week[token2] = hooks.parseTwoDigitYear(input); -}); -function getSetWeekYear(input) { - return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy); -} -function getSetISOWeekYear(input) { - return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4); -} -function getISOWeeksInYear() { - return weeksInYear(this.year(), 1, 4); -} -function getISOWeeksInISOWeekYear() { - return weeksInYear(this.isoWeekYear(), 1, 4); -} -function getWeeksInYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); -} -function getWeeksInWeekYear() { - var weekInfo = this.localeData()._week; - return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); -} -function getSetWeekYearHelper(input, week, weekday, dow, doy) { - var weeksTarget; - if (input == null) { - return weekOfYear(this, dow, doy).year; - } else { - weeksTarget = weeksInYear(input, dow, doy); - if (week > weeksTarget) { - week = weeksTarget; - } - return setWeekAll.call(this, input, week, weekday, dow, doy); - } -} -function setWeekAll(weekYear, week, weekday, dow, doy) { - var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); - this.year(date.getUTCFullYear()); - this.month(date.getUTCMonth()); - this.date(date.getUTCDate()); - return this; -} -addFormatToken("Q", 0, "Qo", "quarter"); -addUnitAlias("quarter", "Q"); -addUnitPriority("quarter", 7); -addRegexToken("Q", match1); -addParseToken("Q", function(input, array) { - array[MONTH] = (toInt(input) - 1) * 3; -}); -function getSetQuarter(input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); -} -addFormatToken("D", ["DD", 2], "Do", "date"); -addUnitAlias("date", "D"); -addUnitPriority("date", 9); -addRegexToken("D", match1to2); -addRegexToken("DD", match1to2, match2); -addRegexToken("Do", function(isStrict, locale2) { - return isStrict ? locale2._dayOfMonthOrdinalParse || locale2._ordinalParse : locale2._dayOfMonthOrdinalParseLenient; -}); -addParseToken(["D", "DD"], DATE); -addParseToken("Do", function(input, array) { - array[DATE] = toInt(input.match(match1to2)[0]); -}); -var getSetDayOfMonth = makeGetSet("Date", true); -addFormatToken("DDD", ["DDDD", 3], "DDDo", "dayOfYear"); -addUnitAlias("dayOfYear", "DDD"); -addUnitPriority("dayOfYear", 4); -addRegexToken("DDD", match1to3); -addRegexToken("DDDD", match3); -addParseToken(["DDD", "DDDD"], function(input, array, config) { - config._dayOfYear = toInt(input); -}); -function getSetDayOfYear(input) { - var dayOfYear = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; - return input == null ? dayOfYear : this.add(input - dayOfYear, "d"); -} -addFormatToken("m", ["mm", 2], 0, "minute"); -addUnitAlias("minute", "m"); -addUnitPriority("minute", 14); -addRegexToken("m", match1to2); -addRegexToken("mm", match1to2, match2); -addParseToken(["m", "mm"], MINUTE); -var getSetMinute = makeGetSet("Minutes", false); -addFormatToken("s", ["ss", 2], 0, "second"); -addUnitAlias("second", "s"); -addUnitPriority("second", 15); -addRegexToken("s", match1to2); -addRegexToken("ss", match1to2, match2); -addParseToken(["s", "ss"], SECOND); -var getSetSecond = makeGetSet("Seconds", false); -addFormatToken("S", 0, 0, function() { - return ~~(this.millisecond() / 100); -}); -addFormatToken(0, ["SS", 2], 0, function() { - return ~~(this.millisecond() / 10); -}); -addFormatToken(0, ["SSS", 3], 0, "millisecond"); -addFormatToken(0, ["SSSS", 4], 0, function() { - return this.millisecond() * 10; -}); -addFormatToken(0, ["SSSSS", 5], 0, function() { - return this.millisecond() * 100; -}); -addFormatToken(0, ["SSSSSS", 6], 0, function() { - return this.millisecond() * 1e3; -}); -addFormatToken(0, ["SSSSSSS", 7], 0, function() { - return this.millisecond() * 1e4; -}); -addFormatToken(0, ["SSSSSSSS", 8], 0, function() { - return this.millisecond() * 1e5; -}); -addFormatToken(0, ["SSSSSSSSS", 9], 0, function() { - return this.millisecond() * 1e6; -}); -addUnitAlias("millisecond", "ms"); -addUnitPriority("millisecond", 16); -addRegexToken("S", match1to3, match1); -addRegexToken("SS", match1to3, match2); -addRegexToken("SSS", match1to3, match3); -var token, getSetMillisecond; -for (token = "SSSS"; token.length <= 9; token += "S") { - addRegexToken(token, matchUnsigned); -} -function parseMs(input, array) { - array[MILLISECOND] = toInt(("0." + input) * 1e3); -} -for (token = "S"; token.length <= 9; token += "S") { - addParseToken(token, parseMs); -} -getSetMillisecond = makeGetSet("Milliseconds", false); -addFormatToken("z", 0, 0, "zoneAbbr"); -addFormatToken("zz", 0, 0, "zoneName"); -function getZoneAbbr() { - return this._isUTC ? "UTC" : ""; -} -function getZoneName() { - return this._isUTC ? "Coordinated Universal Time" : ""; -} -var proto = Moment.prototype; -proto.add = add; -proto.calendar = calendar$1; -proto.clone = clone; -proto.diff = diff; -proto.endOf = endOf; -proto.format = format$1; -proto.from = from; -proto.fromNow = fromNow; -proto.to = to; -proto.toNow = toNow; -proto.get = stringGet; -proto.invalidAt = invalidAt; -proto.isAfter = isAfter$1; -proto.isBefore = isBefore$1; -proto.isBetween = isBetween; -proto.isSame = isSame; -proto.isSameOrAfter = isSameOrAfter; -proto.isSameOrBefore = isSameOrBefore; -proto.isValid = isValid$2; -proto.lang = lang; -proto.locale = locale$1; -proto.localeData = localeData; -proto.max = prototypeMax; -proto.min = prototypeMin; -proto.parsingFlags = parsingFlags; -proto.set = stringSet; -proto.startOf = startOf; -proto.subtract = subtract; -proto.toArray = toArray; -proto.toObject = toObject; -proto.toDate = toDate$1; -proto.toISOString = toISOString; -proto.inspect = inspect; -if (typeof Symbol !== "undefined" && Symbol.for != null) { - proto[Symbol.for("nodejs.util.inspect.custom")] = function() { - return "Moment<" + this.format() + ">"; - }; -} -proto.toJSON = toJSON; -proto.toString = toString; -proto.unix = unix; -proto.valueOf = valueOf; -proto.creationData = creationData; -proto.eraName = getEraName; -proto.eraNarrow = getEraNarrow; -proto.eraAbbr = getEraAbbr; -proto.eraYear = getEraYear; -proto.year = getSetYear; -proto.isLeapYear = getIsLeapYear; -proto.weekYear = getSetWeekYear; -proto.isoWeekYear = getSetISOWeekYear; -proto.quarter = proto.quarters = getSetQuarter; -proto.month = getSetMonth; -proto.daysInMonth = getDaysInMonth$1; -proto.week = proto.weeks = getSetWeek; -proto.isoWeek = proto.isoWeeks = getSetISOWeek; -proto.weeksInYear = getWeeksInYear; -proto.weeksInWeekYear = getWeeksInWeekYear; -proto.isoWeeksInYear = getISOWeeksInYear; -proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; -proto.date = getSetDayOfMonth; -proto.day = proto.days = getSetDayOfWeek; -proto.weekday = getSetLocaleDayOfWeek; -proto.isoWeekday = getSetISODayOfWeek; -proto.dayOfYear = getSetDayOfYear; -proto.hour = proto.hours = getSetHour; -proto.minute = proto.minutes = getSetMinute; -proto.second = proto.seconds = getSetSecond; -proto.millisecond = proto.milliseconds = getSetMillisecond; -proto.utcOffset = getSetOffset; -proto.utc = setOffsetToUTC; -proto.local = setOffsetToLocal; -proto.parseZone = setOffsetToParsedOffset; -proto.hasAlignedHourOffset = hasAlignedHourOffset; -proto.isDST = isDaylightSavingTime; -proto.isLocal = isLocal; -proto.isUtcOffset = isUtcOffset; -proto.isUtc = isUtc; -proto.isUTC = isUtc; -proto.zoneAbbr = getZoneAbbr; -proto.zoneName = getZoneName; -proto.dates = deprecate("dates accessor is deprecated. Use date instead.", getSetDayOfMonth); -proto.months = deprecate("months accessor is deprecated. Use month instead", getSetMonth); -proto.years = deprecate("years accessor is deprecated. Use year instead", getSetYear); -proto.zone = deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", getSetZone); -proto.isDSTShifted = deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", isDaylightSavingTimeShifted); -function createUnix(input) { - return createLocal(input * 1e3); -} -function createInZone() { - return createLocal.apply(null, arguments).parseZone(); -} -function preParsePostFormat(string) { - return string; -} -var proto$1 = Locale.prototype; -proto$1.calendar = calendar; -proto$1.longDateFormat = longDateFormat; -proto$1.invalidDate = invalidDate; -proto$1.ordinal = ordinal; -proto$1.preparse = preParsePostFormat; -proto$1.postformat = preParsePostFormat; -proto$1.relativeTime = relativeTime; -proto$1.pastFuture = pastFuture; -proto$1.set = set; -proto$1.eras = localeEras; -proto$1.erasParse = localeErasParse; -proto$1.erasConvertYear = localeErasConvertYear; -proto$1.erasAbbrRegex = erasAbbrRegex; -proto$1.erasNameRegex = erasNameRegex; -proto$1.erasNarrowRegex = erasNarrowRegex; -proto$1.months = localeMonths; -proto$1.monthsShort = localeMonthsShort; -proto$1.monthsParse = localeMonthsParse; -proto$1.monthsRegex = monthsRegex; -proto$1.monthsShortRegex = monthsShortRegex; -proto$1.week = localeWeek; -proto$1.firstDayOfYear = localeFirstDayOfYear; -proto$1.firstDayOfWeek = localeFirstDayOfWeek; -proto$1.weekdays = localeWeekdays; -proto$1.weekdaysMin = localeWeekdaysMin; -proto$1.weekdaysShort = localeWeekdaysShort; -proto$1.weekdaysParse = localeWeekdaysParse; -proto$1.weekdaysRegex = weekdaysRegex; -proto$1.weekdaysShortRegex = weekdaysShortRegex; -proto$1.weekdaysMinRegex = weekdaysMinRegex; -proto$1.isPM = localeIsPM; -proto$1.meridiem = localeMeridiem; -function get$1$1(format2, index, field, setter) { - var locale2 = getLocale(), utc = createUTC().set(setter, index); - return locale2[field](utc, format2); -} -function listMonthsImpl(format2, index, field) { - if (isNumber(format2)) { - index = format2; - format2 = void 0; - } - format2 = format2 || ""; - if (index != null) { - return get$1$1(format2, index, field, "month"); - } - var i, out = []; - for (i = 0; i < 12; i++) { - out[i] = get$1$1(format2, i, field, "month"); - } - return out; -} -function listWeekdaysImpl(localeSorted, format2, index, field) { - if (typeof localeSorted === "boolean") { - if (isNumber(format2)) { - index = format2; - format2 = void 0; - } - format2 = format2 || ""; - } else { - format2 = localeSorted; - index = format2; - localeSorted = false; - if (isNumber(format2)) { - index = format2; - format2 = void 0; - } - format2 = format2 || ""; - } - var locale2 = getLocale(), shift = localeSorted ? locale2._week.dow : 0, i, out = []; - if (index != null) { - return get$1$1(format2, (index + shift) % 7, field, "day"); - } - for (i = 0; i < 7; i++) { - out[i] = get$1$1(format2, (i + shift) % 7, field, "day"); - } - return out; -} -function listMonths(format2, index) { - return listMonthsImpl(format2, index, "months"); -} -function listMonthsShort(format2, index) { - return listMonthsImpl(format2, index, "monthsShort"); -} -function listWeekdays(localeSorted, format2, index) { - return listWeekdaysImpl(localeSorted, format2, index, "weekdays"); -} -function listWeekdaysShort(localeSorted, format2, index) { - return listWeekdaysImpl(localeSorted, format2, index, "weekdaysShort"); -} -function listWeekdaysMin(localeSorted, format2, index) { - return listWeekdaysImpl(localeSorted, format2, index, "weekdaysMin"); -} -getSetGlobalLocale("en", { - eras: [ - { - since: "0001-01-01", - until: Infinity, - offset: 1, - name: "Anno Domini", - narrow: "AD", - abbr: "AD" - }, - { - since: "0000-12-31", - until: -Infinity, - offset: 1, - name: "Before Christ", - narrow: "BC", - abbr: "BC" - } - ], - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function(number) { - var b = number % 10, output2 = toInt(number % 100 / 10) === 1 ? "th" : b === 1 ? "st" : b === 2 ? "nd" : b === 3 ? "rd" : "th"; - return number + output2; - } -}); -hooks.lang = deprecate("moment.lang is deprecated. Use moment.locale instead.", getSetGlobalLocale); -hooks.langData = deprecate("moment.langData is deprecated. Use moment.localeData instead.", getLocale); -var mathAbs = Math.abs; -function abs() { - var data = this._data; - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); - return this; -} -function addSubtract$1(duration, input, value, direction) { - var other = createDuration(input, value); - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - return duration._bubble(); -} -function add$1(input, value) { - return addSubtract$1(this, input, value, 1); -} -function subtract$1(input, value) { - return addSubtract$1(this, input, value, -1); -} -function absCeil(number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); - } -} -function bubble() { - var milliseconds2 = this._milliseconds, days2 = this._days, months2 = this._months, data = this._data, seconds2, minutes2, hours2, years2, monthsFromDays; - if (!(milliseconds2 >= 0 && days2 >= 0 && months2 >= 0 || milliseconds2 <= 0 && days2 <= 0 && months2 <= 0)) { - milliseconds2 += absCeil(monthsToDays(months2) + days2) * 864e5; - days2 = 0; - months2 = 0; - } - data.milliseconds = milliseconds2 % 1e3; - seconds2 = absFloor(milliseconds2 / 1e3); - data.seconds = seconds2 % 60; - minutes2 = absFloor(seconds2 / 60); - data.minutes = minutes2 % 60; - hours2 = absFloor(minutes2 / 60); - data.hours = hours2 % 24; - days2 += absFloor(hours2 / 24); - monthsFromDays = absFloor(daysToMonths(days2)); - months2 += monthsFromDays; - days2 -= absCeil(monthsToDays(monthsFromDays)); - years2 = absFloor(months2 / 12); - months2 %= 12; - data.days = days2; - data.months = months2; - data.years = years2; - return this; -} -function daysToMonths(days2) { - return days2 * 4800 / 146097; -} -function monthsToDays(months2) { - return months2 * 146097 / 4800; -} -function as(units) { - if (!this.isValid()) { - return NaN; - } - var days2, months2, milliseconds2 = this._milliseconds; - units = normalizeUnits(units); - if (units === "month" || units === "quarter" || units === "year") { - days2 = this._days + milliseconds2 / 864e5; - months2 = this._months + daysToMonths(days2); - switch (units) { - case "month": - return months2; - case "quarter": - return months2 / 3; - case "year": - return months2 / 12; - } - } else { - days2 = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case "week": - return days2 / 7 + milliseconds2 / 6048e5; - case "day": - return days2 + milliseconds2 / 864e5; - case "hour": - return days2 * 24 + milliseconds2 / 36e5; - case "minute": - return days2 * 1440 + milliseconds2 / 6e4; - case "second": - return days2 * 86400 + milliseconds2 / 1e3; - case "millisecond": - return Math.floor(days2 * 864e5) + milliseconds2; - default: - throw new Error("Unknown unit " + units); - } - } -} -function valueOf$1() { - if (!this.isValid()) { - return NaN; - } - return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6; -} -function makeAs(alias) { - return function() { - return this.as(alias); - }; -} -var asMilliseconds = makeAs("ms"), asSeconds = makeAs("s"), asMinutes = makeAs("m"), asHours = makeAs("h"), asDays = makeAs("d"), asWeeks = makeAs("w"), asMonths = makeAs("M"), asQuarters = makeAs("Q"), asYears = makeAs("y"); -function clone$1() { - return createDuration(this); -} -function get$2(units) { - units = normalizeUnits(units); - return this.isValid() ? this[units + "s"]() : NaN; -} -function makeGetter(name) { - return function() { - return this.isValid() ? this._data[name] : NaN; - }; -} -var milliseconds = makeGetter("milliseconds"), seconds = makeGetter("seconds"), minutes = makeGetter("minutes"), hours = makeGetter("hours"), days = makeGetter("days"), months = makeGetter("months"), years = makeGetter("years"); -function weeks() { - return absFloor(this.days() / 7); -} -var round$1 = Math.round, thresholds = { - ss: 44, - s: 45, - m: 45, - h: 22, - d: 26, - w: null, - M: 11 -}; -function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale2) { - return locale2.relativeTime(number || 1, !!withoutSuffix, string, isFuture); -} -function relativeTime$1(posNegDuration, withoutSuffix, thresholds2, locale2) { - var duration = createDuration(posNegDuration).abs(), seconds2 = round$1(duration.as("s")), minutes2 = round$1(duration.as("m")), hours2 = round$1(duration.as("h")), days2 = round$1(duration.as("d")), months2 = round$1(duration.as("M")), weeks2 = round$1(duration.as("w")), years2 = round$1(duration.as("y")), a = seconds2 <= thresholds2.ss && ["s", seconds2] || seconds2 < thresholds2.s && ["ss", seconds2] || minutes2 <= 1 && ["m"] || minutes2 < thresholds2.m && ["mm", minutes2] || hours2 <= 1 && ["h"] || hours2 < thresholds2.h && ["hh", hours2] || days2 <= 1 && ["d"] || days2 < thresholds2.d && ["dd", days2]; - if (thresholds2.w != null) { - a = a || weeks2 <= 1 && ["w"] || weeks2 < thresholds2.w && ["ww", weeks2]; - } - a = a || months2 <= 1 && ["M"] || months2 < thresholds2.M && ["MM", months2] || years2 <= 1 && ["y"] || ["yy", years2]; - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale2; - return substituteTimeAgo.apply(null, a); -} -function getSetRelativeTimeRounding(roundingFunction) { - if (roundingFunction === void 0) { - return round$1; - } - if (typeof roundingFunction === "function") { - round$1 = roundingFunction; - return true; - } - return false; -} -function getSetRelativeTimeThreshold(threshold, limit) { - if (thresholds[threshold] === void 0) { - return false; - } - if (limit === void 0) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - if (threshold === "s") { - thresholds.ss = limit - 1; - } - return true; -} -function humanize(argWithSuffix, argThresholds) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - var withSuffix = false, th2 = thresholds, locale2, output2; - if (typeof argWithSuffix === "object") { - argThresholds = argWithSuffix; - argWithSuffix = false; - } - if (typeof argWithSuffix === "boolean") { - withSuffix = argWithSuffix; - } - if (typeof argThresholds === "object") { - th2 = Object.assign({}, thresholds, argThresholds); - if (argThresholds.s != null && argThresholds.ss == null) { - th2.ss = argThresholds.s - 1; - } - } - locale2 = this.localeData(); - output2 = relativeTime$1(this, !withSuffix, th2, locale2); - if (withSuffix) { - output2 = locale2.pastFuture(+this, output2); - } - return locale2.postformat(output2); -} -var abs$1 = Math.abs; -function sign(x2) { - return (x2 > 0) - (x2 < 0) || +x2; -} -function toISOString$1() { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - var seconds2 = abs$1(this._milliseconds) / 1e3, days2 = abs$1(this._days), months2 = abs$1(this._months), minutes2, hours2, years2, s, total = this.asSeconds(), totalSign, ymSign, daysSign, hmsSign; - if (!total) { - return "P0D"; - } - minutes2 = absFloor(seconds2 / 60); - hours2 = absFloor(minutes2 / 60); - seconds2 %= 60; - minutes2 %= 60; - years2 = absFloor(months2 / 12); - months2 %= 12; - s = seconds2 ? seconds2.toFixed(3).replace(/\.?0+$/, "") : ""; - totalSign = total < 0 ? "-" : ""; - ymSign = sign(this._months) !== sign(total) ? "-" : ""; - daysSign = sign(this._days) !== sign(total) ? "-" : ""; - hmsSign = sign(this._milliseconds) !== sign(total) ? "-" : ""; - return totalSign + "P" + (years2 ? ymSign + years2 + "Y" : "") + (months2 ? ymSign + months2 + "M" : "") + (days2 ? daysSign + days2 + "D" : "") + (hours2 || minutes2 || seconds2 ? "T" : "") + (hours2 ? hmsSign + hours2 + "H" : "") + (minutes2 ? hmsSign + minutes2 + "M" : "") + (seconds2 ? hmsSign + s + "S" : ""); -} -var proto$2 = Duration.prototype; -proto$2.isValid = isValid$1$1; -proto$2.abs = abs; -proto$2.add = add$1; -proto$2.subtract = subtract$1; -proto$2.as = as; -proto$2.asMilliseconds = asMilliseconds; -proto$2.asSeconds = asSeconds; -proto$2.asMinutes = asMinutes; -proto$2.asHours = asHours; -proto$2.asDays = asDays; -proto$2.asWeeks = asWeeks; -proto$2.asMonths = asMonths; -proto$2.asQuarters = asQuarters; -proto$2.asYears = asYears; -proto$2.valueOf = valueOf$1; -proto$2._bubble = bubble; -proto$2.clone = clone$1; -proto$2.get = get$2; -proto$2.milliseconds = milliseconds; -proto$2.seconds = seconds; -proto$2.minutes = minutes; -proto$2.hours = hours; -proto$2.days = days; -proto$2.weeks = weeks; -proto$2.months = months; -proto$2.years = years; -proto$2.humanize = humanize; -proto$2.toISOString = toISOString$1; -proto$2.toString = toISOString$1; -proto$2.toJSON = toISOString$1; -proto$2.locale = locale$1; -proto$2.localeData = localeData; -proto$2.toIsoString = deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", toISOString$1); -proto$2.lang = lang; -addFormatToken("X", 0, 0, "unix"); -addFormatToken("x", 0, 0, "valueOf"); -addRegexToken("x", matchSigned); -addRegexToken("X", matchTimestamp); -addParseToken("X", function(input, array, config) { - config._d = new Date(parseFloat(input) * 1e3); -}); -addParseToken("x", function(input, array, config) { - config._d = new Date(toInt(input)); -}); -//! moment.js -hooks.version = "2.29.1"; -setHookCallback(createLocal); -hooks.fn = proto; -hooks.min = min$1; -hooks.max = max$1; -hooks.now = now; -hooks.utc = createUTC; -hooks.unix = createUnix; -hooks.months = listMonths; -hooks.isDate = isDate$1; -hooks.locale = getSetGlobalLocale; -hooks.invalid = createInvalid; -hooks.duration = createDuration; -hooks.isMoment = isMoment; -hooks.weekdays = listWeekdays; -hooks.parseZone = createInZone; -hooks.localeData = getLocale; -hooks.isDuration = isDuration; -hooks.monthsShort = listMonthsShort; -hooks.weekdaysMin = listWeekdaysMin; -hooks.defineLocale = defineLocale; -hooks.updateLocale = updateLocale; -hooks.locales = listLocales; -hooks.weekdaysShort = listWeekdaysShort; -hooks.normalizeUnits = normalizeUnits; -hooks.relativeTimeRounding = getSetRelativeTimeRounding; -hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; -hooks.calendarFormat = getCalendarFormat; -hooks.prototype = proto; -hooks.HTML5_FMT = { - DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", - DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", - DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", - DATE: "YYYY-MM-DD", - TIME: "HH:mm", - TIME_SECONDS: "HH:mm:ss", - TIME_MS: "HH:mm:ss.SSS", - WEEK: "GGGG-[W]WW", - MONTH: "YYYY-MM" -}; async function changeMemo(memoid, originalContent, content, memoType) { - const { - dailyNotes - } = dailyNotesService.getState(); + const { dailyNotes } = dailyNotesService.getState(); const { vault } = appStore.getState().dailyNotesState.app; const timeString = memoid.slice(0, 11) + "00"; const idString = parseInt(memoid.slice(14)); - const changeDate = hooks(timeString, "YYYYMMDDHHmmSS"); + const changeDate = require$$0.moment(timeString, "YYYYMMDDHHmmSS"); const dailyNote = getDailyNote_1(changeDate, dailyNotes); - const fileContent = await vault.cachedRead(dailyNote); + const fileContent = await vault.read(dailyNote); const fileLines = getAllLinesFromFile$9(fileContent); const removeEnter = content.replace(/\n/g, "
    "); const originalLine = fileLines[idString]; @@ -11969,21 +8284,21 @@ const findQuery = async () => { const absolutePath = filePath + "/query.md"; const queryFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (queryFile instanceof require$$0.TFile) { - const fileContents = await vault.cachedRead(queryFile); + const fileContents = await vault.read(queryFile); const fileLines = getAllLinesFromFile$8(fileContents); if (fileLines && fileLines.length != 0) { for (let i = 0; i < fileLines.length; i++) { if (fileLines[i] === "") continue; const createdDateString = getCreatedDateFromLine(fileLines[i]); - const createdDate = hooks(createdDateString, "YYYYMMDDHHmmss").format("YYYY/MM/DD HH:mm:ss"); + const createdDate = require$$0.moment(createdDateString, "YYYYMMDDHHmmss").format("YYYY/MM/DD HH:mm:ss"); const updatedDate = createdDate; const id2 = createdDateString + getIDFromLine$1(fileLines[i]); const querystring = getStringFromLine(fileLines[i]); const title = getTitleFromLine(fileLines[i]); let pinnedDate; if (/^(.+)pinnedAt(.+)$/.test(fileLines[i])) { - pinnedDate = hooks(getPinnedDateFromLine$1(fileLines[i]), "YYYYMMDDHHmmss"); + pinnedDate = require$$0.moment(getPinnedDateFromLine$1(fileLines[i]), "YYYYMMDDHHmmss"); queryList2.push({ createdAt: createdDate, id: id2, @@ -12046,9 +8361,9 @@ const createObsidianQuery = async (title, querystring) => { const absolutePath = filePath + "/query.md"; const queryFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (queryFile instanceof require$$0.TFile) { - const fileContents = await vault.cachedRead(queryFile); + const fileContents = await vault.read(queryFile); const fileLines = getAllLinesFromFile$7(fileContents); - const date = hooks(); + const date = require$$0.moment(); const createdDate = date.format("YYYY/MM/DD HH:mm:ss"); const updatedDate = createdDate; let lineNum; @@ -12073,8 +8388,8 @@ const createObsidianQuery = async (title, querystring) => { } else { const queryFilePath = require$$0.normalizePath(absolutePath); const file = await createQueryFile(queryFilePath); - const fileContents = await vault.cachedRead(file); - const date = hooks(); + const fileContents = await vault.read(file); + const date = require$$0.moment(); const createdDate = date.format("YYYY/MM/DD HH:mm:ss"); const updatedDate = createdDate; const id2 = date.format("YYYYMMDDHHmmss") + 1; @@ -12121,7 +8436,7 @@ async function getRemainingTasks(note) { return 0; } const { vault } = appStore.getState().dailyNotesState.app; - let fileContents = await vault.cachedRead(note); + let fileContents = await vault.read(note); const matchLength = (fileContents.match(/(-|\*) (\[ \]\s)?((\)?\d{1,2}\:\d{2})?/g) || []).length; const re2 = new RegExp(ProcessEntriesBelow.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"), "g"); const processEntriesHeader = (fileContents.match(re2) || []).length; @@ -12138,7 +8453,7 @@ async function getTasksFromDailyNote(dailyNote, dailyEvents) { const { vault } = appStore.getState().dailyNotesState.app; const Tasks = await getRemainingTasks(dailyNote); if (Tasks) { - let fileContents = await vault.cachedRead(dailyNote); + let fileContents = await vault.read(dailyNote); let fileLines = getAllLinesFromFile$6(fileContents); const startDate = getDateFromFile_1(dailyNote, "day"); const endDate = getDateFromFile_1(dailyNote, "day"); @@ -12239,7 +8554,7 @@ const updateObsidianQuery = async (queryId, title, queryString) => { const absolutePath = filePath + "/query.md"; const queryFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (queryFile instanceof require$$0.TFile) { - const fileContents = await vault.cachedRead(queryFile); + const fileContents = await vault.read(queryFile); const fileLines = getAllLinesFromFile$5(fileContents); let lineID; if (/^\d{1,3}$/.test(queryId)) { @@ -12250,7 +8565,7 @@ const updateObsidianQuery = async (queryId, title, queryString) => { const lineNum = parseInt(lineID) - 1; if (fileLines && fileLines.length != 0) { const oldContent = fileLines[lineNum]; - const date = hooks(); + const date = require$$0.moment(); const updatedDateString = date.format("YYYYMMDDHHmmss"); const updatedDate = date.format("YYYY/MM/DD HH:mm:ss"); const newLineNum = lineNum + 1; @@ -12259,31 +8574,35 @@ const updateObsidianQuery = async (queryId, title, queryString) => { const pinnedString = getPinnedStringFromLine(oldContent); const pinnedDateString = getPinnedDateFromLine(oldContent); const newContent = id2 + " " + title + " " + queryString + " " + pinnedString; - const pinnedAtDate = hooks(pinnedDateString, "YYYYMMDDHHmmss").format("YYYY/MM/DD HH:mm:ss"); + const pinnedAtDate = require$$0.moment(pinnedDateString, "YYYYMMDDHHmmss").format("YYYY/MM/DD HH:mm:ss"); const newFileContents = fileContents.replace(oldContent, newContent); await vault.modify(queryFile, newFileContents); - return [{ - createdAt: updatedDate, - id: id2, - pinnedAt: pinnedAtDate, - querystring: queryString, - title, - updatedAt: updatedDate, - userId: "" - }]; + return [ + { + createdAt: updatedDate, + id: id2, + pinnedAt: pinnedAtDate, + querystring: queryString, + title, + updatedAt: updatedDate, + userId: "" + } + ]; } else { const newContent = id2 + " " + title + " " + queryString; const newFileContents = fileContents.replace(oldContent, newContent); await vault.modify(queryFile, newFileContents); - return [{ - createdAt: updatedDate, - id: id2, - pinnedAt: "", - querystring: queryString, - title, - updatedAt: updatedDate, - userId: "" - }]; + return [ + { + createdAt: updatedDate, + id: id2, + pinnedAt: "", + querystring: queryString, + title, + updatedAt: updatedDate, + userId: "" + } + ]; } } } @@ -12318,7 +8637,7 @@ function getLinesInString(input) { async function waitForInsert(MemoContent, isList2) { const { vault } = appStore.getState().dailyNotesState.app; const removeEnter = MemoContent.replace(/\n/g, "
    "); - const date = hooks(); + const date = require$$0.moment(); const timeHour = date.format("HH"); const timeMinute = date.format("mm"); let newEvent; @@ -12333,7 +8652,7 @@ async function waitForInsert(MemoContent, isList2) { if (!existingFile) { const file = await createDailyNote_1(date); await dailyNotesService.getMyAllDailyNotes(); - const fileContents = await vault.cachedRead(file); + const fileContents = await vault.read(file); const newFileContent = await insertAfterHandler(InsertAfter, newEvent, fileContents); await vault.modify(file, newFileContent.content); if (newFileContent.posNum === -1) { @@ -12362,7 +8681,7 @@ async function waitForInsert(MemoContent, isList2) { }; } } else { - const fileContents = await vault.cachedRead(existingFile); + const fileContents = await vault.read(existingFile); const newFileContent = await insertAfterHandler(InsertAfter, newEvent, fileContents); await vault.modify(existingFile, newFileContent.content); if (newFileContent.posNum === -1) { @@ -12454,7 +8773,7 @@ async function restoreDeletedMemo(deletedMemoid) { const absolutePath = filePath + "/delete.md"; const deleteFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (deleteFile instanceof require$$0.TFile) { - let fileContents = await vault.cachedRead(deleteFile); + let fileContents = await vault.read(deleteFile); let fileLines = getAllLinesFromFile$3(fileContents); if (fileLines.length === 0) { return; @@ -12465,7 +8784,7 @@ async function restoreDeletedMemo(deletedMemoid) { await vault.modify(deleteFile, newDeletefileContents); if (/^- (.+)$/.test(line)) { const id2 = extractIDfromText(line); - const date = hooks(id2, "YYYYMMDDHHmmss"); + const date = require$$0.moment(id2, "YYYYMMDDHHmmss"); const timeHour = date.format("HH"); const timeMinute = date.format("mm"); const newEvent = `- ` + String(timeHour) + `:` + String(timeMinute) + ` ` + extractContentfromText$1(line); @@ -12473,19 +8792,23 @@ async function restoreDeletedMemo(deletedMemoid) { const existingFile = getDailyNote_1(date, dailyNotes); if (!existingFile) { const file = await createDailyNote_1(date); - const fileContents2 = await vault.cachedRead(file); + const fileContents2 = await vault.read(file); const newFileContent = await insertAfterHandler(InsertAfter, newEvent, fileContents2); await vault.modify(file, newFileContent.content); - return [{ - deletedAt: "" - }]; + return [ + { + deletedAt: "" + } + ]; } else { - const fileContents2 = await vault.cachedRead(existingFile); + const fileContents2 = await vault.read(existingFile); const newFileContent = await insertAfterHandler(InsertAfter, newEvent, fileContents2); await vault.modify(existingFile, newFileContent.content); - return [{ - deletedAt: "" - }]; + return [ + { + deletedAt: "" + } + ]; } } fileLines = null; @@ -12501,7 +8824,7 @@ async function deleteForever(deletedMemoid) { const absolutePath = filePath + "/delete.md"; const deleteFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (deleteFile instanceof require$$0.TFile) { - let fileContents = await vault.cachedRead(deleteFile); + let fileContents = await vault.read(deleteFile); let fileLines = getAllLinesFromFile$3(fileContents); if (fileLines.length === 0) { return; @@ -12525,7 +8848,7 @@ async function getDeletedMemos() { const deletedMemos = []; const deleteFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (deleteFile instanceof require$$0.TFile) { - let fileContents = await vault.cachedRead(deleteFile); + let fileContents = await vault.read(deleteFile); let fileLines = getAllLinesFromFile$3(fileContents); if (fileLines.length === 0) { return deletedMemos; @@ -12537,9 +8860,9 @@ async function getDeletedMemos() { } else { const id2 = extractIDfromText(line); const timeString = id2.slice(0, 13); - const createdDate = hooks(timeString, "YYYYMMDDHHmmss"); + const createdDate = require$$0.moment(timeString, "YYYYMMDDHHmmss"); const deletedDateID = extractDeleteDatefromText(fileLines[i]); - const deletedDate = hooks(deletedDateID.slice(0, 13), "YYYYMMDDHHmmss"); + const deletedDate = require$$0.moment(deletedDateID.slice(0, 13), "YYYYMMDDHHmmss"); const content = extractContentfromText$1(fileLines[i]); deletedMemos.push({ id: deletedDateID, @@ -12563,9 +8886,9 @@ const sendMemoToDelete = async (memoContent) => { const absolutePath = filePath + "/delete.md"; const deleteFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (deleteFile instanceof require$$0.TFile) { - const fileContents = await vault.cachedRead(deleteFile); + const fileContents = await vault.read(deleteFile); const fileLines = getAllLinesFromFile$3(fileContents); - const date = hooks(); + const date = require$$0.moment(); const deleteDate = date.format("YYYY/MM/DD HH:mm:ss"); let lineNum; if (fileLines.length === 1 && fileLines[0] === "") { @@ -12579,7 +8902,7 @@ const sendMemoToDelete = async (memoContent) => { } else { const deleteFilePath = require$$0.normalizePath(absolutePath); const file = await createdeleteFile(deleteFilePath); - const date = hooks(); + const date = require$$0.moment(); const deleteDate = date.format("YYYY/MM/DD HH:mm:ss"); const lineNum = 1; const deleteDateID = date.format("YYYYMMDDHHmmss") + lineNum; @@ -12622,16 +8945,14 @@ const extractDeleteDatefromText = (line) => { return (_a = /^- (\d+)\s(.+)\s(deletedAt: )(.+)$/.exec(line)) == null ? void 0 : _a[4]; }; async function obHideMemo(memoid) { - const { - dailyNotes - } = dailyNotesService.getState(); + const { dailyNotes } = dailyNotesService.getState(); if (/\d{14,}/.test(memoid)) { const { vault } = appStore.getState().dailyNotesState.app; const timeString = memoid.slice(0, 13); const idString = parseInt(memoid.slice(14)); - const changeDate = hooks(timeString, "YYYYMMDDHHmmSS"); + const changeDate = require$$0.moment(timeString, "YYYYMMDDHHmmSS"); const dailyNote = getDailyNote_1(changeDate, dailyNotes); - const fileContent = await vault.cachedRead(dailyNote); + const fileContent = await vault.read(dailyNote); const fileLines = getAllLinesFromFile$2(fileContent); const content = extractContentfromText(fileLines[idString]); const originalLine = "- " + memoid + " " + content; @@ -12654,7 +8975,7 @@ async function deleteQueryForever(queryID) { const absolutePath = filePath + "/query.md"; const queryFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (queryFile instanceof require$$0.TFile) { - let fileContents = await vault.cachedRead(queryFile); + let fileContents = await vault.read(queryFile); let fileLines = getAllLinesFromFile$1(fileContents); if (fileLines.length === 0) { return; @@ -12679,9 +9000,9 @@ const pinQueryInFile = async (queryID) => { const absolutePath = filePath + "/query.md"; const queryFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (queryFile instanceof require$$0.TFile) { - const fileContents = await vault.cachedRead(queryFile); + const fileContents = await vault.read(queryFile); const fileLines = getAllLinesFromFile(fileContents); - const date = hooks(); + const date = require$$0.moment(); const originalLineNum = parseInt(queryID.slice(14)); const originalContent = fileLines[originalLineNum - 1]; const pinnedAtDate = date.format("YYYY/MM/DD HH:mm:ss"); @@ -12705,7 +9026,7 @@ const unpinQueryInFile = async (queryID) => { const absolutePath = filePath + "/query.md"; const queryFile = metadataCache.getFirstLinkpathDest("", absolutePath); if (queryFile instanceof require$$0.TFile) { - const fileContents = await vault.cachedRead(queryFile); + const fileContents = await vault.read(queryFile); const fileLines = getAllLinesFromFile(fileContents); const originalLineNum = parseInt(queryID.slice(14)); const originalContent = fileLines[originalLineNum - 1]; @@ -12966,14 +9287,14 @@ class ResourceService { const fileArray = await file.arrayBuffer(); const ext = getExt(file.type); const dailyNotes = getAllDailyNotes_1(); - const date = hooks(); + const date = require$$0.moment(); const existingFile = getDailyNote_1(date, dailyNotes); let newFile; if (!existingFile) { const dailyFile = await createDailyNote_1(date); - newFile = await vault.createBinary(await vault.getAvailablePathForAttachments(`Pasted Image ${hooks().format("YYYYMMDDHHmmss")}`, ext, dailyFile), fileArray); + newFile = await vault.createBinary(await vault.getAvailablePathForAttachments(`Pasted Image ${require$$0.moment().format("YYYYMMDDHHmmss")}`, ext, dailyFile), fileArray); } else if (existingFile instanceof require$$0.TFile) { - newFile = await vault.createBinary(await vault.getAvailablePathForAttachments(`Pasted Image ${hooks().format("YYYYMMDDHHmmss")}`, ext, existingFile), fileArray); + newFile = await vault.createBinary(await vault.getAvailablePathForAttachments(`Pasted Image ${require$$0.moment().format("YYYYMMDDHHmmss")}`, ext, existingFile), fileArray); } const newFilePath = fileManager.generateMarkdownLink(newFile, newFile.path, "", ""); return newFilePath; @@ -13935,13 +10256,13 @@ var ReactTextareaAutocomplete = /* @__PURE__ */ function(_React$Component2) { item }); } - var computeCaretPosition = function computeCaretPosition2(position, token2, startToken) { + var computeCaretPosition = function computeCaretPosition2(position, token, startToken) { switch (position) { case "start": return startToken; case "next": case "end": - return startToken + token2.length; + return startToken + token.length; default: if (!Number.isInteger(position)) { throw new Error('RTA: caretPosition should be "start", "next", "end" or number.'); @@ -14694,9 +11015,9 @@ const Editor = _react_17_0_2_react.exports.forwardRef((props, ref) => { scrollToItem: true, trigger: { "#": { - dataProvider: (token2) => { - actualToken = token2; - return usedTags(token2).map(({ + dataProvider: (token) => { + actualToken = token; + return usedTags(token).map(({ name, char }) => ({ @@ -14709,9 +11030,9 @@ const Editor = _react_17_0_2_react.exports.forwardRef((props, ref) => { output: (item) => item.char }, "[[": { - dataProvider: (token2) => { - actualToken = token2; - return getSuggestions(token2).slice(0, 10).map(({ + dataProvider: (token) => { + actualToken = token; + return getSuggestions(token).slice(0, 10).map(({ name, char, file @@ -14804,16 +11125,16 @@ function __rest(s, e) { } return t2; } -function __spreadArray(to2, from2, pack) { +function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) - for (var i = 0, l2 = from2.length, ar; i < l2; i++) { - if (ar || !(i in from2)) { + for (var i = 0, l2 = from.length, ar; i < l2; i++) { + if (ar || !(i in from)) { if (!ar) - ar = Array.prototype.slice.call(from2, 0, i); - ar[i] = from2[i]; + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; } } - return to2.concat(ar || Array.prototype.slice.call(from2)); + return to.concat(ar || Array.prototype.slice.call(from)); } function canUseDOM() { return !!(typeof window !== "undefined" && window.document && window.document.createElement); @@ -14968,8 +11289,8 @@ function startOfUTCWeek(dirtyDate, dirtyOptions) { } var date = toDate(dirtyDate); var day = date.getUTCDay(); - var diff2 = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; - date.setUTCDate(date.getUTCDate() - diff2); + var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; } @@ -14999,8 +11320,8 @@ function addMonths(dirtyDate, dirtyAmount) { var dayOfMonth = date.getDate(); var endOfDesiredMonth = new Date(date.getTime()); endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0); - var daysInMonth2 = endOfDesiredMonth.getDate(); - if (dayOfMonth >= daysInMonth2) { + var daysInMonth = endOfDesiredMonth.getDate(); + if (dayOfMonth >= daysInMonth) { return endOfDesiredMonth; } else { date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth); @@ -15025,8 +11346,8 @@ function startOfWeek(dirtyDate, dirtyOptions) { } var date = toDate(dirtyDate); var day = date.getDay(); - var diff2 = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; - date.setDate(date.getDate() - diff2); + var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + date.setDate(date.getDate() - diff); date.setHours(0, 0, 0, 0); return date; } @@ -15053,8 +11374,8 @@ function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) { function addWeeks(dirtyDate, dirtyAmount) { requiredArgs(2, arguments); var amount = toInteger(dirtyAmount); - var days2 = amount * 7; - return addDays(dirtyDate, days2); + var days = amount * 7; + return addDays(dirtyDate, days); } function addYears(dirtyDate, dirtyAmount) { requiredArgs(2, arguments); @@ -15084,8 +11405,8 @@ function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) { var dateLeft = toDate(dirtyDateLeft); var dateRight = toDate(dirtyDateRight); var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear(); - var monthDiff2 = dateLeft.getMonth() - dateRight.getMonth(); - return yearDiff * 12 + monthDiff2; + var monthDiff = dateLeft.getMonth() - dateRight.getMonth(); + return yearDiff * 12 + monthDiff; } var MILLISECONDS_IN_WEEK$3 = 6048e5; function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) { @@ -15131,8 +11452,8 @@ function endOfWeek(dirtyDate, dirtyOptions) { } var date = toDate(dirtyDate); var day = date.getDay(); - var diff2 = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); - date.setDate(date.getDate() + diff2); + var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); + date.setDate(date.getDate() + diff); date.setHours(23, 59, 59, 999); return date; } @@ -15199,9 +11520,9 @@ var formatDistanceLocale = { other: "almost {{count}} years" } }; -var formatDistance = function(token2, count, options) { +var formatDistance = function(token, count, options) { var result; - var tokenValue = formatDistanceLocale[token2]; + var tokenValue = formatDistanceLocale[token]; if (typeof tokenValue === "string") { result = tokenValue; } else if (count === 1) { @@ -15260,8 +11581,8 @@ var formatRelativeLocale = { nextWeek: "eeee 'at' p", other: "P" }; -var formatRelative = function(token2, _date, _baseDate, _options) { - return formatRelativeLocale[token2]; +var formatRelative = function(token, _date, _baseDate, _options) { + return formatRelativeLocale[token]; }; var formatRelative$1 = formatRelative; var eraValues = { @@ -15523,8 +11844,8 @@ function startOfUTCISOWeek(dirtyDate) { var weekStartsOn = 1; var date = toDate(dirtyDate); var day = date.getUTCDay(); - var diff2 = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; - date.setUTCDate(date.getUTCDate() - diff2); + var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; } @@ -15561,8 +11882,8 @@ var MILLISECONDS_IN_WEEK$2 = 6048e5; function getUTCISOWeek(dirtyDate) { requiredArgs(1, arguments); var date = toDate(dirtyDate); - var diff2 = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); - return Math.round(diff2 / MILLISECONDS_IN_WEEK$2) + 1; + var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); + return Math.round(diff / MILLISECONDS_IN_WEEK$2) + 1; } function getUTCWeekYear(dirtyDate, dirtyOptions) { requiredArgs(1, arguments); @@ -15610,33 +11931,33 @@ var MILLISECONDS_IN_WEEK$1 = 6048e5; function getUTCWeek(dirtyDate, options) { requiredArgs(1, arguments); var date = toDate(dirtyDate); - var diff2 = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); - return Math.round(diff2 / MILLISECONDS_IN_WEEK$1) + 1; + var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); + return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1; } function addLeadingZeros(number, targetLength) { - var sign2 = number < 0 ? "-" : ""; + var sign = number < 0 ? "-" : ""; var output2 = Math.abs(number).toString(); while (output2.length < targetLength) { output2 = "0" + output2; } - return sign2 + output2; + return sign + output2; } var formatters$3 = { - y: function(date, token2) { + y: function(date, token) { var signedYear = date.getUTCFullYear(); var year = signedYear > 0 ? signedYear : 1 - signedYear; - return addLeadingZeros(token2 === "yy" ? year % 100 : year, token2.length); + return addLeadingZeros(token === "yy" ? year % 100 : year, token.length); }, - M: function(date, token2) { + M: function(date, token) { var month = date.getUTCMonth(); - return token2 === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2); + return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2); }, - d: function(date, token2) { - return addLeadingZeros(date.getUTCDate(), token2.length); + d: function(date, token) { + return addLeadingZeros(date.getUTCDate(), token.length); }, - a: function(date, token2) { + a: function(date, token) { var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? "pm" : "am"; - switch (token2) { + switch (token) { case "a": case "aa": return dayPeriodEnumValue.toUpperCase(); @@ -15649,23 +11970,23 @@ var formatters$3 = { return dayPeriodEnumValue === "am" ? "a.m." : "p.m."; } }, - h: function(date, token2) { - return addLeadingZeros(date.getUTCHours() % 12 || 12, token2.length); + h: function(date, token) { + return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length); }, - H: function(date, token2) { - return addLeadingZeros(date.getUTCHours(), token2.length); + H: function(date, token) { + return addLeadingZeros(date.getUTCHours(), token.length); }, - m: function(date, token2) { - return addLeadingZeros(date.getUTCMinutes(), token2.length); + m: function(date, token) { + return addLeadingZeros(date.getUTCMinutes(), token.length); }, - s: function(date, token2) { - return addLeadingZeros(date.getUTCSeconds(), token2.length); + s: function(date, token) { + return addLeadingZeros(date.getUTCSeconds(), token.length); }, - S: function(date, token2) { - var numberOfDigits = token2.length; - var milliseconds2 = date.getUTCMilliseconds(); - var fractionalSeconds = Math.floor(milliseconds2 * Math.pow(10, numberOfDigits - 3)); - return addLeadingZeros(fractionalSeconds, token2.length); + S: function(date, token) { + var numberOfDigits = token.length; + var milliseconds = date.getUTCMilliseconds(); + var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3)); + return addLeadingZeros(fractionalSeconds, token.length); } }; var formatters$4 = formatters$3; @@ -15680,9 +12001,9 @@ var dayPeriodEnum = { night: "night" }; var formatters$1 = { - G: function(date, token2, localize2) { + G: function(date, token, localize2) { var era = date.getUTCFullYear() > 0 ? 1 : 0; - switch (token2) { + switch (token) { case "G": case "GG": case "GGG": @@ -15700,41 +12021,41 @@ var formatters$1 = { }); } }, - y: function(date, token2, localize2) { - if (token2 === "yo") { + y: function(date, token, localize2) { + if (token === "yo") { var signedYear = date.getUTCFullYear(); var year = signedYear > 0 ? signedYear : 1 - signedYear; return localize2.ordinalNumber(year, { unit: "year" }); } - return formatters$4.y(date, token2); + return formatters$4.y(date, token); }, - Y: function(date, token2, localize2, options) { + Y: function(date, token, localize2, options) { var signedWeekYear = getUTCWeekYear(date, options); var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; - if (token2 === "YY") { + if (token === "YY") { var twoDigitYear = weekYear % 100; return addLeadingZeros(twoDigitYear, 2); } - if (token2 === "Yo") { + if (token === "Yo") { return localize2.ordinalNumber(weekYear, { unit: "year" }); } - return addLeadingZeros(weekYear, token2.length); + return addLeadingZeros(weekYear, token.length); }, - R: function(date, token2) { + R: function(date, token) { var isoWeekYear = getUTCISOWeekYear(date); - return addLeadingZeros(isoWeekYear, token2.length); + return addLeadingZeros(isoWeekYear, token.length); }, - u: function(date, token2) { + u: function(date, token) { var year = date.getUTCFullYear(); - return addLeadingZeros(year, token2.length); + return addLeadingZeros(year, token.length); }, - Q: function(date, token2, localize2) { + Q: function(date, token, localize2) { var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); - switch (token2) { + switch (token) { case "Q": return String(quarter); case "QQ": @@ -15761,9 +12082,9 @@ var formatters$1 = { }); } }, - q: function(date, token2, localize2) { + q: function(date, token, localize2) { var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); - switch (token2) { + switch (token) { case "q": return String(quarter); case "qq": @@ -15790,12 +12111,12 @@ var formatters$1 = { }); } }, - M: function(date, token2, localize2) { + M: function(date, token, localize2) { var month = date.getUTCMonth(); - switch (token2) { + switch (token) { case "M": case "MM": - return formatters$4.M(date, token2); + return formatters$4.M(date, token); case "Mo": return localize2.ordinalNumber(month + 1, { unit: "month" @@ -15818,9 +12139,9 @@ var formatters$1 = { }); } }, - L: function(date, token2, localize2) { + L: function(date, token, localize2) { var month = date.getUTCMonth(); - switch (token2) { + switch (token) { case "L": return String(month + 1); case "LL": @@ -15847,44 +12168,44 @@ var formatters$1 = { }); } }, - w: function(date, token2, localize2, options) { + w: function(date, token, localize2, options) { var week = getUTCWeek(date, options); - if (token2 === "wo") { + if (token === "wo") { return localize2.ordinalNumber(week, { unit: "week" }); } - return addLeadingZeros(week, token2.length); + return addLeadingZeros(week, token.length); }, - I: function(date, token2, localize2) { + I: function(date, token, localize2) { var isoWeek = getUTCISOWeek(date); - if (token2 === "Io") { + if (token === "Io") { return localize2.ordinalNumber(isoWeek, { unit: "week" }); } - return addLeadingZeros(isoWeek, token2.length); + return addLeadingZeros(isoWeek, token.length); }, - d: function(date, token2, localize2) { - if (token2 === "do") { + d: function(date, token, localize2) { + if (token === "do") { return localize2.ordinalNumber(date.getUTCDate(), { unit: "date" }); } - return formatters$4.d(date, token2); + return formatters$4.d(date, token); }, - D: function(date, token2, localize2) { + D: function(date, token, localize2) { var dayOfYear = getUTCDayOfYear(date); - if (token2 === "Do") { + if (token === "Do") { return localize2.ordinalNumber(dayOfYear, { unit: "dayOfYear" }); } - return addLeadingZeros(dayOfYear, token2.length); + return addLeadingZeros(dayOfYear, token.length); }, - E: function(date, token2, localize2) { + E: function(date, token, localize2) { var dayOfWeek = date.getUTCDay(); - switch (token2) { + switch (token) { case "E": case "EE": case "EEE": @@ -15910,10 +12231,10 @@ var formatters$1 = { }); } }, - e: function(date, token2, localize2, options) { + e: function(date, token, localize2, options) { var dayOfWeek = date.getUTCDay(); var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token2) { + switch (token) { case "e": return String(localDayOfWeek); case "ee": @@ -15945,14 +12266,14 @@ var formatters$1 = { }); } }, - c: function(date, token2, localize2, options) { + c: function(date, token, localize2, options) { var dayOfWeek = date.getUTCDay(); var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token2) { + switch (token) { case "c": return String(localDayOfWeek); case "cc": - return addLeadingZeros(localDayOfWeek, token2.length); + return addLeadingZeros(localDayOfWeek, token.length); case "co": return localize2.ordinalNumber(localDayOfWeek, { unit: "day" @@ -15980,14 +12301,14 @@ var formatters$1 = { }); } }, - i: function(date, token2, localize2) { + i: function(date, token, localize2) { var dayOfWeek = date.getUTCDay(); var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; - switch (token2) { + switch (token) { case "i": return String(isoDayOfWeek); case "ii": - return addLeadingZeros(isoDayOfWeek, token2.length); + return addLeadingZeros(isoDayOfWeek, token.length); case "io": return localize2.ordinalNumber(isoDayOfWeek, { unit: "day" @@ -16015,10 +12336,10 @@ var formatters$1 = { }); } }, - a: function(date, token2, localize2) { - var hours2 = date.getUTCHours(); - var dayPeriodEnumValue = hours2 / 12 >= 1 ? "pm" : "am"; - switch (token2) { + a: function(date, token, localize2) { + var hours = date.getUTCHours(); + var dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; + switch (token) { case "a": case "aa": return localize2.dayPeriod(dayPeriodEnumValue, { @@ -16043,17 +12364,17 @@ var formatters$1 = { }); } }, - b: function(date, token2, localize2) { - var hours2 = date.getUTCHours(); + b: function(date, token, localize2) { + var hours = date.getUTCHours(); var dayPeriodEnumValue; - if (hours2 === 12) { + if (hours === 12) { dayPeriodEnumValue = dayPeriodEnum.noon; - } else if (hours2 === 0) { + } else if (hours === 0) { dayPeriodEnumValue = dayPeriodEnum.midnight; } else { - dayPeriodEnumValue = hours2 / 12 >= 1 ? "pm" : "am"; + dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; } - switch (token2) { + switch (token) { case "b": case "bb": return localize2.dayPeriod(dayPeriodEnumValue, { @@ -16078,19 +12399,19 @@ var formatters$1 = { }); } }, - B: function(date, token2, localize2) { - var hours2 = date.getUTCHours(); + B: function(date, token, localize2) { + var hours = date.getUTCHours(); var dayPeriodEnumValue; - if (hours2 >= 17) { + if (hours >= 17) { dayPeriodEnumValue = dayPeriodEnum.evening; - } else if (hours2 >= 12) { + } else if (hours >= 12) { dayPeriodEnumValue = dayPeriodEnum.afternoon; - } else if (hours2 >= 4) { + } else if (hours >= 4) { dayPeriodEnumValue = dayPeriodEnum.morning; } else { dayPeriodEnumValue = dayPeriodEnum.night; } - switch (token2) { + switch (token) { case "B": case "BB": case "BBB": @@ -16111,71 +12432,71 @@ var formatters$1 = { }); } }, - h: function(date, token2, localize2) { - if (token2 === "ho") { - var hours2 = date.getUTCHours() % 12; - if (hours2 === 0) - hours2 = 12; - return localize2.ordinalNumber(hours2, { + h: function(date, token, localize2) { + if (token === "ho") { + var hours = date.getUTCHours() % 12; + if (hours === 0) + hours = 12; + return localize2.ordinalNumber(hours, { unit: "hour" }); } - return formatters$4.h(date, token2); + return formatters$4.h(date, token); }, - H: function(date, token2, localize2) { - if (token2 === "Ho") { + H: function(date, token, localize2) { + if (token === "Ho") { return localize2.ordinalNumber(date.getUTCHours(), { unit: "hour" }); } - return formatters$4.H(date, token2); + return formatters$4.H(date, token); }, - K: function(date, token2, localize2) { - var hours2 = date.getUTCHours() % 12; - if (token2 === "Ko") { - return localize2.ordinalNumber(hours2, { + K: function(date, token, localize2) { + var hours = date.getUTCHours() % 12; + if (token === "Ko") { + return localize2.ordinalNumber(hours, { unit: "hour" }); } - return addLeadingZeros(hours2, token2.length); + return addLeadingZeros(hours, token.length); }, - k: function(date, token2, localize2) { - var hours2 = date.getUTCHours(); - if (hours2 === 0) - hours2 = 24; - if (token2 === "ko") { - return localize2.ordinalNumber(hours2, { + k: function(date, token, localize2) { + var hours = date.getUTCHours(); + if (hours === 0) + hours = 24; + if (token === "ko") { + return localize2.ordinalNumber(hours, { unit: "hour" }); } - return addLeadingZeros(hours2, token2.length); + return addLeadingZeros(hours, token.length); }, - m: function(date, token2, localize2) { - if (token2 === "mo") { + m: function(date, token, localize2) { + if (token === "mo") { return localize2.ordinalNumber(date.getUTCMinutes(), { unit: "minute" }); } - return formatters$4.m(date, token2); + return formatters$4.m(date, token); }, - s: function(date, token2, localize2) { - if (token2 === "so") { + s: function(date, token, localize2) { + if (token === "so") { return localize2.ordinalNumber(date.getUTCSeconds(), { unit: "second" }); } - return formatters$4.s(date, token2); + return formatters$4.s(date, token); }, - S: function(date, token2) { - return formatters$4.S(date, token2); + S: function(date, token) { + return formatters$4.S(date, token); }, - X: function(date, token2, _localize, options) { + X: function(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); if (timezoneOffset === 0) { return "Z"; } - switch (token2) { + switch (token) { case "X": return formatTimezoneWithOptionalMinutes(timezoneOffset); case "XXXX": @@ -16187,10 +12508,10 @@ var formatters$1 = { return formatTimezone(timezoneOffset, ":"); } }, - x: function(date, token2, _localize, options) { + x: function(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); - switch (token2) { + switch (token) { case "x": return formatTimezoneWithOptionalMinutes(timezoneOffset); case "xxxx": @@ -16202,10 +12523,10 @@ var formatters$1 = { return formatTimezone(timezoneOffset, ":"); } }, - O: function(date, token2, _localize, options) { + O: function(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); - switch (token2) { + switch (token) { case "O": case "OO": case "OOO": @@ -16215,10 +12536,10 @@ var formatters$1 = { return "GMT" + formatTimezone(timezoneOffset, ":"); } }, - z: function(date, token2, _localize, options) { + z: function(date, token, _localize, options) { var originalDate = options._originalDate || date; var timezoneOffset = originalDate.getTimezoneOffset(); - switch (token2) { + switch (token) { case "z": case "zz": case "zzz": @@ -16228,42 +12549,42 @@ var formatters$1 = { return "GMT" + formatTimezone(timezoneOffset, ":"); } }, - t: function(date, token2, _localize, options) { + t: function(date, token, _localize, options) { var originalDate = options._originalDate || date; var timestamp = Math.floor(originalDate.getTime() / 1e3); - return addLeadingZeros(timestamp, token2.length); + return addLeadingZeros(timestamp, token.length); }, - T: function(date, token2, _localize, options) { + T: function(date, token, _localize, options) { var originalDate = options._originalDate || date; var timestamp = originalDate.getTime(); - return addLeadingZeros(timestamp, token2.length); + return addLeadingZeros(timestamp, token.length); } }; function formatTimezoneShort(offset2, dirtyDelimiter) { - var sign2 = offset2 > 0 ? "-" : "+"; + var sign = offset2 > 0 ? "-" : "+"; var absOffset = Math.abs(offset2); - var hours2 = Math.floor(absOffset / 60); - var minutes2 = absOffset % 60; - if (minutes2 === 0) { - return sign2 + String(hours2); + var hours = Math.floor(absOffset / 60); + var minutes = absOffset % 60; + if (minutes === 0) { + return sign + String(hours); } var delimiter = dirtyDelimiter || ""; - return sign2 + String(hours2) + delimiter + addLeadingZeros(minutes2, 2); + return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2); } function formatTimezoneWithOptionalMinutes(offset2, dirtyDelimiter) { if (offset2 % 60 === 0) { - var sign2 = offset2 > 0 ? "-" : "+"; - return sign2 + addLeadingZeros(Math.abs(offset2) / 60, 2); + var sign = offset2 > 0 ? "-" : "+"; + return sign + addLeadingZeros(Math.abs(offset2) / 60, 2); } return formatTimezone(offset2, dirtyDelimiter); } function formatTimezone(offset2, dirtyDelimiter) { var delimiter = dirtyDelimiter || ""; - var sign2 = offset2 > 0 ? "-" : "+"; + var sign = offset2 > 0 ? "-" : "+"; var absOffset = Math.abs(offset2); - var hours2 = addLeadingZeros(Math.floor(absOffset / 60), 2); - var minutes2 = addLeadingZeros(absOffset % 60, 2); - return sign2 + hours2 + delimiter + minutes2; + var hours = addLeadingZeros(Math.floor(absOffset / 60), 2); + var minutes = addLeadingZeros(absOffset % 60, 2); + return sign + hours + delimiter + minutes; } var formatters$2 = formatters$1; function dateLongFormatter(pattern, formatLong2) { @@ -16348,20 +12669,20 @@ var longFormatters = { var longFormatters$1 = longFormatters; var protectedDayOfYearTokens = ["D", "DD"]; var protectedWeekYearTokens = ["YY", "YYYY"]; -function isProtectedDayOfYearToken(token2) { - return protectedDayOfYearTokens.indexOf(token2) !== -1; +function isProtectedDayOfYearToken(token) { + return protectedDayOfYearTokens.indexOf(token) !== -1; } -function isProtectedWeekYearToken(token2) { - return protectedWeekYearTokens.indexOf(token2) !== -1; +function isProtectedWeekYearToken(token) { + return protectedWeekYearTokens.indexOf(token) !== -1; } -function throwProtectedError(token2, format2, input) { - if (token2 === "YYYY") { +function throwProtectedError(token, format2, input) { + if (token === "YYYY") { throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr")); - } else if (token2 === "YY") { + } else if (token === "YY") { throw new RangeError("Use `yy` instead of `YY` (in `".concat(format2, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr")); - } else if (token2 === "D") { + } else if (token === "D") { throw new RangeError("Use `d` instead of `D` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr")); - } else if (token2 === "DD") { + } else if (token === "DD") { throw new RangeError("Use `dd` instead of `DD` (in `".concat(format2, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr")); } } @@ -16505,8 +12826,8 @@ var MILLISECONDS_IN_WEEK = 6048e5; function getWeek(dirtyDate, options) { requiredArgs(1, arguments); var date = toDate(dirtyDate); - var diff2 = startOfWeek(date, options).getTime() - startOfWeekYear(date, options).getTime(); - return Math.round(diff2 / MILLISECONDS_IN_WEEK) + 1; + var diff = startOfWeek(date, options).getTime() - startOfWeekYear(date, options).getTime(); + return Math.round(diff / MILLISECONDS_IN_WEEK) + 1; } function lastDayOfMonth(dirtyDate) { requiredArgs(1, arguments); @@ -16553,8 +12874,8 @@ function setMonth(dirtyDate, dirtyMonth) { var dateWithDesiredMonth = new Date(0); dateWithDesiredMonth.setFullYear(year, month, 15); dateWithDesiredMonth.setHours(0, 0, 0, 0); - var daysInMonth2 = getDaysInMonth(dateWithDesiredMonth); - date.setMonth(month, Math.min(day, daysInMonth2)); + var daysInMonth = getDaysInMonth(dateWithDesiredMonth); + date.setMonth(month, Math.min(day, daysInMonth)); return date; } function setYear(dirtyDate, dirtyYear) { @@ -16633,19 +12954,19 @@ function Navigation(props) { function YearsDropdown(props) { var displayMonth = props.displayMonth; var _a = useDayPicker(), fromDate = _a.fromDate, toDate2 = _a.toDate, locale2 = _a.locale, styles = _a.styles, classNames = _a.classNames, Dropdown2 = _a.components.Dropdown, formatYearCaption2 = _a.formatters.formatYearCaption, labelYearDropdown2 = _a.labels.labelYearDropdown; - var years2 = []; + var years = []; if (fromDate && toDate2) { var fromYear = fromDate.getFullYear(); var toYear = toDate2.getFullYear(); for (var year = fromYear; year <= toYear; year++) { - years2.push(setYear(startOfYear(new Date()), year)); + years.push(setYear(startOfYear(new Date()), year)); } } var handleChange = function(e) { var newMonth = setYear(new Date(displayMonth), Number(e.target.value)); props.onChange(newMonth); }; - return React$1.createElement(Dropdown2, { "aria-label": labelYearDropdown2(), className: classNames.dropdown_month, style: styles.dropdown_month, onChange: handleChange, value: displayMonth.getFullYear(), caption: formatYearCaption2(displayMonth, { locale: locale2 }) }, years2.map(function(year2) { + return React$1.createElement(Dropdown2, { "aria-label": labelYearDropdown2(), className: classNames.dropdown_month, style: styles.dropdown_month, onChange: handleChange, value: displayMonth.getFullYear(), caption: formatYearCaption2(displayMonth, { locale: locale2 }) }, years.map(function(year2) { return React$1.createElement("option", { key: year2.getFullYear(), value: year2.getFullYear() }, formatYearCaption2(year2, { locale: locale2 })); })); } @@ -16683,14 +13004,14 @@ function getDisplayMonths(month, _a) { var start2 = startOfMonth(month); var end2 = startOfMonth(addMonths(start2, numberOfMonths)); var monthsDiff = differenceInCalendarMonths(end2, start2); - var months2 = []; + var months = []; for (var i = 0; i < monthsDiff; i++) { var nextMonth = addMonths(start2, i); - months2.push(nextMonth); + months.push(nextMonth); } if (reverseMonths) - months2 = months2.reverse(); - return months2; + months = months.reverse(); + return months; } function getNextMonth(startingMonth, options) { if (options.disableNavigation) { @@ -16823,16 +13144,16 @@ function SelectMultipleProviderInternal(_a) { if (isMaxSelected) { return; } - var days2 = selected ? __spreadArray([], selected, true) : []; + var days = selected ? __spreadArray([], selected, true) : []; if (modifiers2.selected) { - var index = days2.findIndex(function(selectedDay) { + var index = days.findIndex(function(selectedDay) { return isSameDay(day, selectedDay); }); - days2.splice(index, 1); + days.splice(index, 1); } else { - days2.push(day); + days.push(day); } - (_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, days2, day, modifiers2, e); + (_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, days, day, modifiers2, e); }; var modifiers = { disabled: [] @@ -16862,32 +13183,32 @@ function isDayPickerRange(props) { return props.mode === "range"; } function addToRange(day, range) { - var _a = range || {}, from2 = _a.from, to2 = _a.to; - if (!from2) { + var _a = range || {}, from = _a.from, to = _a.to; + if (!from) { return { from: day, to: day }; } - if (!to2 && isSameDay(from2, day)) { + if (!to && isSameDay(from, day)) { return void 0; } - if (!to2 && isBefore(day, from2)) { - return { from: day, to: from2 }; + if (!to && isBefore(day, from)) { + return { from: day, to: from }; } - if (!to2) { - return { from: from2, to: day }; + if (!to) { + return { from, to: day }; } - if (isSameDay(to2, day) && isSameDay(from2, day)) { + if (isSameDay(to, day) && isSameDay(from, day)) { return void 0; } - if (isSameDay(to2, day)) { - return { from: to2, to: to2 }; + if (isSameDay(to, day)) { + return { from: to, to }; } - if (isSameDay(from2, day)) { + if (isSameDay(from, day)) { return void 0; } - if (isAfter(from2, day)) { - return { from: day, to: to2 }; + if (isAfter(from, day)) { + return { from: day, to }; } - return { from: from2, to: day }; + return { from, to: day }; } var SelectRangeContext = React$1.createContext(void 0); function SelectRangeProvider(props) { @@ -16915,11 +13236,11 @@ function SelectRangeProviderInternal(_a) { (_a2 = initialProps.onDayClick) === null || _a2 === void 0 ? void 0 : _a2.call(initialProps, day, modifiers2, e); var newValue = addToRange(day, selected); if ((min2 || max2) && selected && (newValue === null || newValue === void 0 ? void 0 : newValue.to) && newValue.from && newValue.from !== newValue.to) { - var diff2 = Math.abs(differenceInCalendarDays(newValue === null || newValue === void 0 ? void 0 : newValue.to, newValue === null || newValue === void 0 ? void 0 : newValue.from)); - if (min2 && diff2 < min2) { + var diff = Math.abs(differenceInCalendarDays(newValue === null || newValue === void 0 ? void 0 : newValue.to, newValue === null || newValue === void 0 ? void 0 : newValue.from)); + if (min2 && diff < min2) { return; } - if (max2 && diff2 >= max2) { + if (max2 && diff >= max2) { return; } } @@ -16945,26 +13266,26 @@ function SelectRangeProviderInternal(_a) { modifiers.disabled = [ function(date) { if (max2 && selected.to && selected.from && isBefore(date, selected.from)) { - var diff2 = differenceInCalendarDays(selected.to, date); - if (diff2 >= max2) { + var diff = differenceInCalendarDays(selected.to, date); + if (diff >= max2) { return true; } } if (max2 && selected.to && selected.from && isAfter(date, selected.to)) { - var diff2 = differenceInCalendarDays(date, selected.from); - if (diff2 >= max2) { + var diff = differenceInCalendarDays(date, selected.from); + if (diff >= max2) { return true; } } if (min2 && selected.from && isBefore(date, selected.from)) { - var diff2 = differenceInCalendarDays(selected.from, date); - if (diff2 < min2) { + var diff = differenceInCalendarDays(selected.from, date); + if (diff < min2) { return true; } } if (min2 && selected.to && selected.from && isAfter(date, selected.to)) { - var diff2 = differenceInCalendarDays(date, selected.from); - if (diff2 < min2) { + var diff = differenceInCalendarDays(date, selected.from); + if (diff < min2) { return true; } } @@ -17103,21 +13424,21 @@ function isDayOfWeekType(value) { } function isDateInRange(date, range) { var _a; - var from2 = range.from, to2 = range.to; - if (!from2) { + var from = range.from, to = range.to; + if (!from) { return false; } - if (!to2 && isSameDay(from2, date)) { + if (!to && isSameDay(from, date)) { return true; } - if (!to2) { + if (!to) { return false; } - var isToBeforeFrom = differenceInCalendarDays(to2, from2) < 0; - if (to2 && isToBeforeFrom) { - _a = [to2, from2], from2 = _a[0], to2 = _a[1]; + var isToBeforeFrom = differenceInCalendarDays(to, from) < 0; + if (to && isToBeforeFrom) { + _a = [to, from], from = _a[0], to = _a[1]; } - return differenceInCalendarDays(date, from2) >= 0 && differenceInCalendarDays(to2, date) >= 0; + return differenceInCalendarDays(date, from) >= 0 && differenceInCalendarDays(to, date) >= 0; } function isDateType(value) { return isDate(value); @@ -17565,12 +13886,12 @@ function Footer() { } function getWeekdays(locale2) { var start2 = startOfWeek(new Date(), { locale: locale2 }); - var days2 = []; + var days = []; for (var i = 0; i < 7; i++) { var day = addDays(start2, i); - days2.push(day); + days.push(day); } - return days2; + return days; } function Head() { var _a = useDayPicker(), classNames = _a.classNames, styles = _a.styles, showWeekNumber = _a.showWeekNumber, locale2 = _a.locale, formatWeekdayName2 = _a.formatters.formatWeekdayName, labelWeekday2 = _a.labels.labelWeekday; @@ -17767,39 +14088,39 @@ function useDayPicker() { return context; } function getOutsideEndDays(month, options) { - var days2 = []; + var days = []; var lastDayOfWeek = endOfWeek(month, options); var endDiff = differenceInCalendarDays(lastDayOfWeek, month); for (var i = 1; i <= endDiff; i++) { var dayDate = addDays(month, i); - days2.push(dayDate); + days.push(dayDate); } - return days2; + return days; } function getOutsideStartDays(month, options) { - var days2 = []; + var days = []; var firstDayOfWeek = startOfWeek(month, options); var startDiff = differenceInCalendarDays(month, firstDayOfWeek); for (var i = 0; i < startDiff; i++) { var newDay = addDays(firstDayOfWeek, i); - days2.push(newDay); + days.push(newDay); } - return days2; + return days; } function getWeeks(month, _a) { var locale2 = _a.locale, fixedWeeks = _a.fixedWeeks; var monthStart = startOfMonth(month); var monthEnd = endOfMonth(month); - var diff2 = differenceInCalendarDays(monthEnd, monthStart); - var weeks2 = []; + var diff = differenceInCalendarDays(monthEnd, monthStart); + var weeks = []; var lastWeek = { weekNumber: 0, dates: [] }; - for (var i = 0; i <= diff2; i++) { + for (var i = 0; i <= diff; i++) { var date = addDays(monthStart, i); var week = getWeek(date, { locale: locale2 }); if (lastWeek.weekNumber !== week) { var startDays = getOutsideStartDays(date, { locale: locale2 }); lastWeek = { weekNumber: week, dates: startDays }; - weeks2.push(lastWeek); + weeks.push(lastWeek); } lastWeek.dates.push(date); } @@ -17816,18 +14137,18 @@ function getWeeks(month, _a) { var week = getWeek(date, { locale: locale2 }); if (lastWeek.weekNumber !== week) { lastWeek = { weekNumber: week, dates: [] }; - weeks2.push(lastWeek); + weeks.push(lastWeek); } lastWeek.dates.push(date); } } } - return weeks2; + return weeks; } function Table(props) { var _a = useDayPicker(), locale2 = _a.locale, classNames = _a.classNames, styles = _a.styles, hideHead = _a.hideHead, fixedWeeks = _a.fixedWeeks, _b = _a.components, Head2 = _b.Head, Row2 = _b.Row, Footer2 = _b.Footer; - var weeks2 = getWeeks(props.displayMonth, { locale: locale2, fixedWeeks }); - return React$1.createElement("table", { className: classNames.table, style: styles.table, role: "grid", "aria-labelledby": props["aria-labelledby"] }, !hideHead && React$1.createElement(Head2, null), React$1.createElement("tbody", { className: classNames.tbody, style: styles.tbody }, weeks2.map(function(week) { + var weeks = getWeeks(props.displayMonth, { locale: locale2, fixedWeeks }); + return React$1.createElement("table", { className: classNames.table, style: styles.table, role: "grid", "aria-labelledby": props["aria-labelledby"] }, !hideHead && React$1.createElement(Head2, null), React$1.createElement("tbody", { className: classNames.tbody, style: styles.tbody }, weeks.map(function(week) { return React$1.createElement(Row2, { displayMonth: props.displayMonth, key: week.weekNumber, dates: week.dates, weekNumber: week.weekNumber }); })), React$1.createElement(Footer2, null)); } @@ -18138,8 +14459,8 @@ function getOffsetParent(element) { function getMainAxisFromPlacement(placement) { return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; } -function within(min$12, value, max$12) { - return max(min$12, min(value, max$12)); +function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); } function withinMaxClamp(min2, value, max2) { var v2 = within(min2, value, max2); @@ -18156,8 +14477,8 @@ function getFreshSideObject() { function mergePaddingObject(paddingObject) { return Object.assign({}, getFreshSideObject(), paddingObject); } -function expandToHashMap(value, keys2) { - return keys2.reduce(function(hashMap, key) { +function expandToHashMap(value, keys) { + return keys.reduce(function(hashMap, key) { hashMap[key] = value; return hashMap; }, {}); @@ -18895,8 +15216,8 @@ function preventOverflow(_ref) { var altSide = mainAxis === "y" ? bottom : right; var len = mainAxis === "y" ? "height" : "width"; var offset2 = popperOffsets2[mainAxis]; - var min$12 = offset2 + overflow[mainSide]; - var max$12 = offset2 - overflow[altSide]; + var min$1 = offset2 + overflow[mainSide]; + var max$1 = offset2 - overflow[altSide]; var additive = tether ? -popperRect[len] / 2 : 0; var minLen = variation === start ? referenceRect[len] : popperRect[len]; var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; @@ -18916,7 +15237,7 @@ function preventOverflow(_ref) { var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset; var tetherMax = offset2 + maxOffset - offsetModifierValue; - var preventedOffset = within(tether ? min(min$12, tetherMin) : min$12, offset2, tether ? max(max$12, tetherMax) : max$12); + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset2, tether ? max(max$1, tetherMax) : max$1); popperOffsets2[mainAxis] = preventedOffset; data[mainAxis] = preventedOffset - offset2; } @@ -19000,18 +15321,18 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { }; } function order(modifiers) { - var map2 = new Map(); + var map = new Map(); var visited = new Set(); var result = []; modifiers.forEach(function(modifier) { - map2.set(modifier.name, modifier); + map.set(modifier.name, modifier); }); function sort(modifier) { visited.add(modifier.name); var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); requires.forEach(function(dep) { if (!visited.has(dep)) { - var depModifier = map2.get(dep); + var depModifier = map.get(dep); if (depModifier) { sort(depModifier); } @@ -19206,7 +15527,7 @@ function equal(a, b) { if (a && b && typeof a == "object" && typeof b == "object") { if (a.constructor !== b.constructor) return false; - var length, i, keys2; + var length, i, keys; if (Array.isArray(a)) { length = a.length; if (length != b.length) @@ -19254,20 +15575,20 @@ function equal(a, b) { return a.valueOf() === b.valueOf(); if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - keys2 = Object.keys(a); - length = keys2.length; + keys = Object.keys(a); + length = keys.length; if (length !== Object.keys(b).length) return false; for (i = length; i-- !== 0; ) - if (!Object.prototype.hasOwnProperty.call(b, keys2[i])) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; if (hasElementType && a instanceof Element) return false; for (i = length; i-- !== 0; ) { - if ((keys2[i] === "_owner" || keys2[i] === "__v" || keys2[i] === "__o") && a.$$typeof) { + if ((keys[i] === "_owner" || keys[i] === "__v" || keys[i] === "__o") && a.$$typeof) { continue; } - if (!equal(a[keys2[i]], b[keys2[i]])) + if (!equal(a[keys[i]], b[keys[i]])) return false; } return true; @@ -19609,14 +15930,14 @@ var isFocusable = function isFocusable2(node, options) { * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE */ function ownKeys$7(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys2.push.apply(keys2, symbols); + })), keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { @@ -20842,7 +17163,7 @@ const MemoEditor = () => { const selectionStart = editorRef.current.element.selectionStart; const prevString = currentValue.slice(0, selectionStart); const nextString = currentValue.slice(selectionStart); - const todayMoment = hooks(date); + const todayMoment = require$$0.moment(date); if (!editorRef.current) { return; } @@ -20944,6 +17265,7 @@ const MemoEditor = () => { }, []); const handleUploadFileBtnClick = _react_17_0_2_react.exports.useCallback(() => { const inputEl = document.createElement("input"); + document.body.appendChild(inputEl); inputEl.type = "file"; inputEl.multiple = false; inputEl.accept = "image/png, image/gif, image/jpeg"; @@ -21292,9 +17614,9 @@ const MemosHeader = () => { } }, [filter, queries]); const handleMemoTextClick = _react_17_0_2_react.exports.useCallback(() => { - const now2 = Date.now(); - if (now2 - prevRequestTimestamp > 10 * 1e3) { - prevRequestTimestamp = now2; + const now = Date.now(); + if (now - prevRequestTimestamp > 10 * 1e3) { + prevRequestTimestamp = now; memoService.fetchAllMemos().catch(() => { }); } @@ -21452,7 +17774,7 @@ function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); } function ownKeys(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { @@ -21460,9 +17782,9 @@ function ownKeys(object, enumerableOnly) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } - keys2.push.apply(keys2, symbols); + keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { @@ -21486,7 +17808,7 @@ var consoleLogger = { log: function log(args) { this.output("log", args); }, - warn: function warn2(args) { + warn: function warn(args) { this.output("warn", args); }, error: function error(args) { @@ -21527,7 +17849,7 @@ var Logger = function() { } }, { key: "warn", - value: function warn3() { + value: function warn2() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } @@ -21543,7 +17865,7 @@ var Logger = function() { } }, { key: "deprecate", - value: function deprecate2() { + value: function deprecate() { for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { args[_key4] = arguments[_key4]; } @@ -21752,7 +18074,7 @@ function looksLikeObjectPath(key, nsSeparator, keySeparator) { return matched; } function ownKeys$1(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { @@ -21760,9 +18082,9 @@ function ownKeys$1(object, enumerableOnly) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } - keys2.push.apply(keys2, symbols); + keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { @@ -22007,7 +18329,7 @@ var ResourceStore = function(_EventEmitter) { } }, { key: "toJSON", - value: function toJSON2() { + value: function toJSON() { return this.data; } }]); @@ -22028,7 +18350,7 @@ var postProcessor = { } }; function ownKeys$2(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { @@ -22036,9 +18358,9 @@ function ownKeys$2(object, enumerableOnly) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } - keys2.push.apply(keys2, symbols); + keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { @@ -22155,19 +18477,19 @@ var Translator = function(_EventEmitter) { } }, { key: "translate", - value: function translate(keys2, options, lastKey) { + value: function translate(keys, options, lastKey) { var _this2 = this; if (_typeof(options) !== "object" && this.options.overloadTranslationOptionHandler) { options = this.options.overloadTranslationOptionHandler(arguments); } if (!options) options = {}; - if (keys2 === void 0 || keys2 === null) + if (keys === void 0 || keys === null) return ""; - if (!Array.isArray(keys2)) - keys2 = [String(keys2)]; + if (!Array.isArray(keys)) + keys = [String(keys)]; var keySeparator = options.keySeparator !== void 0 ? options.keySeparator : this.options.keySeparator; - var _this$extractFromKey = this.extractFromKey(keys2[keys2.length - 1], options), key = _this$extractFromKey.key, namespaces = _this$extractFromKey.namespaces; + var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options), key = _this$extractFromKey.key, namespaces = _this$extractFromKey.namespaces; var namespace = namespaces[namespaces.length - 1]; var lng = options.lng || this.language; var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode; @@ -22178,7 +18500,7 @@ var Translator = function(_EventEmitter) { } return key; } - var resolved = this.resolve(keys2, options); + var resolved = this.resolve(keys, options); var res = resolved && resolved.res; var resUsedKey = resolved && resolved.usedKey || key; var resExactUsedKey = resolved && resolved.exactUsedKey || key; @@ -22216,7 +18538,7 @@ var Translator = function(_EventEmitter) { } else if (handleAsObjectInI18nFormat && typeof joinArrays === "string" && resType === "[object Array]") { res = res.join(joinArrays); if (res) - res = this.extendTranslation(res, keys2, options, lastKey); + res = this.extendTranslation(res, keys, options, lastKey); } else { var usedDefault = false; var usedKey = false; @@ -22276,7 +18598,7 @@ var Translator = function(_EventEmitter) { } } } - res = this.extendTranslation(res, keys2, options, resolved, lastKey); + res = this.extendTranslation(res, keys, options, resolved, lastKey); if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = "".concat(namespace, ":").concat(key); if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) @@ -22338,7 +18660,7 @@ var Translator = function(_EventEmitter) { } }, { key: "resolve", - value: function resolve(keys2) { + value: function resolve(keys) { var _this4 = this; var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; var found; @@ -22346,9 +18668,9 @@ var Translator = function(_EventEmitter) { var exactUsedKey; var usedLng; var usedNS; - if (typeof keys2 === "string") - keys2 = [keys2]; - keys2.forEach(function(k) { + if (typeof keys === "string") + keys = [keys]; + keys.forEach(function(k) { if (_this4.isValidLookup(found)) return; var extracted = _this4.extractFromKey(k, options); @@ -22773,11 +19095,11 @@ var suffixesOrder = { }; function createRules() { var rules = {}; - sets.forEach(function(set2) { - set2.lngs.forEach(function(l2) { + sets.forEach(function(set) { + set.lngs.forEach(function(l2) { rules[l2] = { - numbers: set2.nr, - plurals: _rulesPluralsTypes[set2.fc] + numbers: set.nr, + plurals: _rulesPluralsTypes[set.fc] }; }); }); @@ -22906,7 +19228,7 @@ var PluralResolver = function() { return PluralResolver2; }(); function ownKeys$3(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { @@ -22914,9 +19236,9 @@ function ownKeys$3(object, enumerableOnly) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } - keys2.push.apply(keys2, symbols); + keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { @@ -22990,7 +19312,7 @@ var Interpolator = function() { key: "interpolate", value: function interpolate(str, data, lng, options) { var _this = this; - var match5; + var match2; var value; var replaces; var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {}; @@ -23027,27 +19349,27 @@ var Interpolator = function() { }]; todos.forEach(function(todo) { replaces = 0; - while (match5 = todo.regex.exec(str)) { - value = handleFormat(match5[1].trim()); + while (match2 = todo.regex.exec(str)) { + value = handleFormat(match2[1].trim()); if (value === void 0) { if (typeof missingInterpolationHandler === "function") { - var temp = missingInterpolationHandler(str, match5, options); + var temp = missingInterpolationHandler(str, match2, options); value = typeof temp === "string" ? temp : ""; } else if (skipOnVariables) { - value = match5[0]; + value = match2[0]; continue; } else { - _this.logger.warn("missed to pass in variable ".concat(match5[1], " for interpolating ").concat(str)); + _this.logger.warn("missed to pass in variable ".concat(match2[1], " for interpolating ").concat(str)); value = ""; } } else if (typeof value !== "string" && !_this.useRawValueToEscape) { value = makeString(value); } var safeValue = todo.safeValue(value); - str = str.replace(match5[0], safeValue); + str = str.replace(match2[0], safeValue); if (skipOnVariables) { todo.regex.lastIndex += safeValue.length; - todo.regex.lastIndex -= match5[0].length; + todo.regex.lastIndex -= match2[0].length; } else { todo.regex.lastIndex = 0; } @@ -23064,7 +19386,7 @@ var Interpolator = function() { value: function nest(str, fc2) { var _this2 = this; var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - var match5; + var match2; var value; var clonedOptions = _objectSpread$3({}, options); clonedOptions.applyPostProcessor = false; @@ -23089,34 +19411,34 @@ var Interpolator = function() { delete clonedOptions.defaultValue; return key; } - while (match5 = this.nestingRegexp.exec(str)) { + while (match2 = this.nestingRegexp.exec(str)) { var formatters2 = []; var doReduce = false; - if (match5[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match5[1])) { - var r2 = match5[1].split(this.formatSeparator).map(function(elem) { + if (match2[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match2[1])) { + var r2 = match2[1].split(this.formatSeparator).map(function(elem) { return elem.trim(); }); - match5[1] = r2.shift(); + match2[1] = r2.shift(); formatters2 = r2; doReduce = true; } - value = fc2(handleHasOptions.call(this, match5[1].trim(), clonedOptions), clonedOptions); - if (value && match5[0] === str && typeof value !== "string") + value = fc2(handleHasOptions.call(this, match2[1].trim(), clonedOptions), clonedOptions); + if (value && match2[0] === str && typeof value !== "string") return value; if (typeof value !== "string") value = makeString(value); if (!value) { - this.logger.warn("missed to resolve ".concat(match5[1], " for nesting ").concat(str)); + this.logger.warn("missed to resolve ".concat(match2[1], " for nesting ").concat(str)); value = ""; } if (doReduce) { value = formatters2.reduce(function(v2, f2) { return _this2.format(v2, f2, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, { - interpolationkey: match5[1].trim() + interpolationkey: match2[1].trim() })); }, value.trim()); } - str = str.replace(match5[0], value); + str = str.replace(match2[0], value); this.regexp.lastIndex = 0; } return str; @@ -23125,7 +19447,7 @@ var Interpolator = function() { return Interpolator2; }(); function ownKeys$4(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { @@ -23133,9 +19455,9 @@ function ownKeys$4(object, enumerableOnly) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } - keys2.push.apply(keys2, symbols); + keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { @@ -23228,7 +19550,7 @@ var Formatter = function() { } }, { key: "add", - value: function add2(name, fc2) { + value: function add(name, fc2) { this.formats[name] = fc2; } }, { @@ -23259,7 +19581,7 @@ var Formatter = function() { return Formatter2; }(); function ownKeys$5(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { @@ -23267,9 +19589,9 @@ function ownKeys$5(object, enumerableOnly) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } - keys2.push.apply(keys2, symbols); + keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { @@ -23610,7 +19932,7 @@ function transformOptions(options) { return options; } function ownKeys$6(object, enumerableOnly) { - var keys2 = Object.keys(object); + var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { @@ -23618,9 +19940,9 @@ function ownKeys$6(object, enumerableOnly) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } - keys2.push.apply(keys2, symbols); + keys.push.apply(keys, symbols); } - return keys2; + return keys; } function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { @@ -24150,32 +20472,32 @@ var I18n = function(_EventEmitter) { var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), { isClone: true }); - var clone2 = new I18n2(mergedOptions); + var clone = new I18n2(mergedOptions); var membersToCopy = ["store", "services", "language"]; membersToCopy.forEach(function(m2) { - clone2[m2] = _this8[m2]; + clone[m2] = _this8[m2]; }); - clone2.services = _objectSpread$6({}, this.services); - clone2.services.utils = { - hasLoadedNamespace: clone2.hasLoadedNamespace.bind(clone2) + clone.services = _objectSpread$6({}, this.services); + clone.services.utils = { + hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone) }; - clone2.translator = new Translator(clone2.services, clone2.options); - clone2.translator.on("*", function(event) { + clone.translator = new Translator(clone.services, clone.options); + clone.translator.on("*", function(event) { for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { args[_key4 - 1] = arguments[_key4]; } - clone2.emit.apply(clone2, [event].concat(args)); + clone.emit.apply(clone, [event].concat(args)); }); - clone2.init(mergedOptions, callback); - clone2.translator.options = clone2.options; - clone2.translator.backendConnector.services.utils = { - hasLoadedNamespace: clone2.hasLoadedNamespace.bind(clone2) + clone.init(mergedOptions, callback); + clone.translator.options = clone.options; + clone.translator.backendConnector.services.utils = { + hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone) }; - return clone2; + return clone; } }, { key: "toJSON", - value: function toJSON2() { + value: function toJSON() { return { options: this.options, store: this.store, @@ -24262,7 +20584,7 @@ const MemoFilter = () => { children: [/* @__PURE__ */ jsx("span", { className: "icon-text", children: "\u{1F5D3}\uFE0F" - }), " ", utils$1.getDateString(duration.from), " ", instance.t("to"), " ", hooks(duration.to, "x").add(1, "days").format("YYYY/MM/DD")] + }), " ", utils$1.getDateString(duration.from), " ", instance.t("to"), " ", require$$0.moment(duration.to, "x").add(1, "days").format("YYYY/MM/DD")] }) : null, /* @__PURE__ */ jsxs("div", { className: "filter-item-container " + (textQuery ? "" : "hidden"), onClick: () => { @@ -24915,8 +21237,9 @@ const convertResourceToDataURL = async (url, useCache = true) => { url, contentType: "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" }); - const enc = new TextEncoder(); - const bf2 = enc.encode(download); + const enc = new TextEncoder().encode(download); + const bf2 = enc; + console.log(bf2); const blob = new Blob([bf2], { type: "image/png" }); return new Promise((resolve) => { const reader = new FileReader(); @@ -25329,7 +21652,7 @@ const showMemoInDailyNotes = async (memoId) => { const { app: app2, dailyNotes } = dailyNotesService.getState(); const lineNum = parseInt(memoId.slice(14)); const memoDateString = memoId.slice(0, 13); - const date = hooks(memoDateString, "YYYYMMDDHHmmss"); + const date = require$$0.moment(memoDateString, "YYYYMMDDHHmmss"); const file = getDailyNote_1(date, dailyNotes); if (!require$$0.Platform.isMobile) { const leaf = app2.workspace.splitActiveLeaf(); @@ -26387,7 +22710,7 @@ const AboutSiteDialog = ({ children: ["\u57FA\u4E8E ", /* @__PURE__ */ jsx("a", { href: "https://github.com/justmemos/memos", children: "memos" - }), " \u5F00\u6E90\u9879\u76EE\u6240\u6784\u5EFA\u7684\u9879\u76EE\u3002 NOTE: Based on ", /* @__PURE__ */ jsx("a", { + }), " \u5F00\u6E90\u9879\u76EE\u6240\u6784\u5EFA\u7684\u9879\u76EE\u3002 NOTE: Based on", " ", /* @__PURE__ */ jsx("a", { href: "https://github.com/justmemos/memos", children: "memos" }), " project to build."] @@ -26395,7 +22718,7 @@ const AboutSiteDialog = ({ children: ["\u{1F3D7} This project is working in progress, ", /* @__PURE__ */ jsx("br", {}), " and very pleasure to welcome your", " ", /* @__PURE__ */ jsx("a", { href: "https://github.com/Quorafind/obsidian-memos/issues", children: "issues" - }), " and ", /* @__PURE__ */ jsx("a", { + }), " and", " ", /* @__PURE__ */ jsx("a", { href: "https://github.com/Quorafind/obsidian-memos/pulls", children: "Pull Request" }), "."] @@ -27620,7 +23943,7 @@ const UsageHeatMap = () => { const nullCell = new Array(7 - todayDay).fill(0); const usedDaysAmount = (tableConfig.width - 1) * tableConfig.height + todayDay; const beginDayTimestamp = utils$1.getDateStampByDate(todayTimeStamp - usedDaysAmount * DAILY_TIMESTAMP); - const startDate = hooks().subtract(usedDaysAmount, "days").endOf("day"); + const startDate = require$$0.moment().subtract(usedDaysAmount, "days").endOf("day"); const { memoState: { memos @@ -27634,7 +23957,7 @@ const UsageHeatMap = () => { _react_17_0_2_react.exports.useEffect(() => { const newStat = getInitialUsageStat(usedDaysAmount, beginDayTimestamp); for (const m2 of memos) { - const creationDate = hooks(m2.createdAt.replaceAll("/", "-")); + const creationDate = require$$0.moment(m2.createdAt.replaceAll("/", "-")); const index = creationDate.diff(startDate, "days"); if (index >= 0 && index < newStat.length) { newStat[index].count += 1; @@ -27672,7 +23995,7 @@ const UsageHeatMap = () => { if (!["/", "/recycle"].includes(locationService.getState().pathname)) { locationService.setPathname("/"); } - locationService.setFromAndToQuery(item.timestamp, utils$1.getTimeStampByDate(hooks(item.timestamp + DAILY_TIMESTAMP).subtract(1, "days").endOf("day").format("YYYY-MM-DD HH:mm:ss"))); + locationService.setFromAndToQuery(item.timestamp, utils$1.getTimeStampByDate(require$$0.moment(item.timestamp + DAILY_TIMESTAMP).subtract(1, "days").endOf("day").format("YYYY-MM-DD HH:mm:ss"))); setCurrentStat(item); } }, []); @@ -27711,7 +24034,7 @@ const UsageHeatMap = () => { }), /* @__PURE__ */ jsxs("div", { ref: popupRef, className: "usage-detail-container pop-up " + (popupStat ? "" : "hidden"), - children: [popupStat == null ? void 0 : popupStat.count, " memos on ", /* @__PURE__ */ jsx("span", { + children: [popupStat == null ? void 0 : popupStat.count, " memos on", " ", /* @__PURE__ */ jsx("span", { className: "date-text", children: new Date(popupStat == null ? void 0 : popupStat.timestamp).toDateString() })] @@ -27851,35 +24174,6 @@ class Memos extends require$$0.ItemView { __publicField(this, "hoverPopover"); __publicField(this, "memosComponent"); this.plugin = plugin; - this.onMemosSettingsUpdate = this.onMemosSettingsUpdate.bind(this); - this.onFileCreated = this.onFileCreated.bind(this); - this.onFileDeleted = this.onFileDeleted.bind(this); - this.onFileModified = this.onFileModified.bind(this); - this.registerEvent(this.plugin.app.workspace.on("layout-change", () => { - if (!this.memosComponent) - return; - if (!this.app.workspace.getLeavesOfType(MEMOS_VIEW_TYPE).length) { - return; - } - const side = this.app.workspace.getLeavesOfType(MEMOS_VIEW_TYPE)[0].getRoot().side; - const sidebar = document.querySelector("div[data-type='memos_view'] .view-content .memos-sidebar-wrapper"); - const page = document.querySelector("div[data-type='memos_view'] .view-content .content-wrapper"); - if (side !== void 0 && (side === "left" || side === "right")) { - if (!(sidebar == null ? void 0 : sidebar.className.contains("memos-sidebar-wrapper-display")) && page !== void 0) { - sidebar.addClass("memos-sidebar-wrapper-display"); - page.className = "content-wrapper-padding-fix"; - } - } else { - if ((sidebar == null ? void 0 : sidebar.classList.contains("memos-sidebar-wrapper-display")) && page !== void 0) { - sidebar.removeClass("memos-sidebar-wrapper-display"); - page.className = "content-wrapper"; - } - } - })); - this.registerEvent(this.app.workspace.on("obsidian-memos:settings-updated", this.onMemosSettingsUpdate)); - this.registerEvent(this.app.vault.on("create", this.onFileCreated)); - this.registerEvent(this.app.vault.on("delete", this.onFileDeleted)); - this.registerEvent(this.app.vault.on("modify", this.onFileModified)); } getDisplayText() { return "Memos"; @@ -27904,7 +24198,6 @@ class Memos extends require$$0.ItemView { async onFileModified(file) { const date = getDateFromFile_1(file, "day"); if (date && this.memosComponent) { - memoService.clearMemos(); memoService.fetchAllMemos(); } } @@ -27912,13 +24205,40 @@ class Memos extends require$$0.ItemView { if (this.app.workspace.layoutReady && this.memosComponent) { if (getDateFromFile_1(file, "day")) { dailyNotesService.getMyAllDailyNotes(); - memoService.clearMemos(); memoService.fetchAllMemos(); } } } async onOpen() { - await this.plugin.loadSettings(); + this.onMemosSettingsUpdate = this.onMemosSettingsUpdate.bind(this); + this.onFileCreated = this.onFileCreated.bind(this); + this.onFileDeleted = this.onFileDeleted.bind(this); + this.onFileModified = this.onFileModified.bind(this); + this.registerEvent(this.plugin.app.workspace.on("layout-change", () => { + if (!this.memosComponent) + return; + if (!this.app.workspace.getLeavesOfType(MEMOS_VIEW_TYPE).length) { + return; + } + const side = this.app.workspace.getLeavesOfType(MEMOS_VIEW_TYPE)[0].getRoot().side; + const sidebar = document.querySelector("div[data-type='memos_view'] .view-content .memos-sidebar-wrapper"); + const page = document.querySelector("div[data-type='memos_view'] .view-content .content-wrapper"); + if (side !== void 0 && (side === "left" || side === "right")) { + if (!(sidebar == null ? void 0 : sidebar.className.contains("memos-sidebar-wrapper-display")) && page !== void 0) { + sidebar.addClass("memos-sidebar-wrapper-display"); + page.className = "content-wrapper-padding-fix"; + } + } else { + if ((sidebar == null ? void 0 : sidebar.classList.contains("memos-sidebar-wrapper-display")) && page !== void 0) { + sidebar.removeClass("memos-sidebar-wrapper-display"); + page.className = "content-wrapper"; + } + } + })); + this.registerEvent(this.app.workspace.on("obsidian-memos:settings-updated", this.onMemosSettingsUpdate)); + this.registerEvent(this.app.vault.on("create", this.onFileCreated)); + this.registerEvent(this.app.vault.on("delete", this.onFileDeleted)); + this.registerEvent(this.app.vault.on("modify", this.onFileModified)); dailyNotesService.getApp(this.app); InsertAfter = this.plugin.settings.InsertAfter; UserName = this.plugin.settings.UserName; @@ -28101,7 +24421,20 @@ const TRANSLATIONS_ZH = { const TRANSLATIONS_EN = { welcome: "Welcome to the Memos", ribbonIconTitle: "Memos", - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + months: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], weekDays: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], weekDaysShort: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], to: "to" @@ -28165,9 +24498,7 @@ class MemosPlugin extends require$$0.Plugin { if (this.settings.OpenMemosAutomatically !== true) { return; } - if (this.app.workspace.getLeavesOfType(MEMOS_VIEW_TYPE).length !== null && this.app.workspace.getLeavesOfType(MEMOS_VIEW_TYPE).length !== void 0) { - this.openMemos(); - } + this.openMemos(); } async openDailyMemo() { const workspaceLeaves = this.app.workspace.getLeavesOfType(MEMOS_VIEW_TYPE); @@ -28183,37 +24514,24 @@ class MemosPlugin extends require$$0.Plugin { } } async openMemos() { - const { view } = this.app.workspace.activeLeaf; const workspace = this.app.workspace; workspace.detachLeavesOfType(MEMOS_VIEW_TYPE); - if (!require$$0.Platform.isMobile) { - if (!(view instanceof require$$0.FileView)) { - await workspace.getLeaf(false).setViewState({ type: MEMOS_VIEW_TYPE }); - } else { - await workspace.getLeaf(true).setViewState({ type: MEMOS_VIEW_TYPE }); - } - } else { - await workspace.getLeaf(false).setViewState({ type: MEMOS_VIEW_TYPE }); + const leaf = workspace.getLeaf(!require$$0.Platform.isMobile && workspace.activeLeaf && workspace.activeLeaf.view instanceof require$$0.FileView); + await leaf.setViewState({ type: MEMOS_VIEW_TYPE }); + workspace.revealLeaf(leaf); + if (FocusOnEditor !== false) { + leaf.view.containerEl.querySelector("textarea").focus(); } - workspace.revealLeaf(workspace.getLeavesOfType(MEMOS_VIEW_TYPE)[0]); - setTimeout(() => { - if (FocusOnEditor !== false) { - document.querySelector("div[data-type='memos_view'] .view-content textarea").focus(); - } - }, 100); } - async focusOnEditor() { + focusOnEditor() { const workspace = this.app.workspace; - if (workspace.getLeavesOfType(MEMOS_VIEW_TYPE)[0] !== null && workspace.getLeavesOfType(MEMOS_VIEW_TYPE).length !== 0) { - workspace.setActiveLeaf(workspace.getLeavesOfType(MEMOS_VIEW_TYPE)[0]); - document.querySelector("textarea").focus(); + const leaves = workspace.getLeavesOfType(MEMOS_VIEW_TYPE); + if (leaves.length > 0) { + const leaf = leaves[0]; + workspace.setActiveLeaf(leaf); + leaf.view.containerEl.querySelector("textarea").focus(); } else { this.openMemos(); - setTimeout(() => { - if (FocusOnEditor !== true && workspace.getLeavesOfType(MEMOS_VIEW_TYPE).length !== 0) { - document.querySelector("div[data-type='memos_view'] .view-content textarea").focus(); - } - }, 100); } } async initLocalization() { @@ -28231,4 +24549,4 @@ class MemosPlugin extends require$$0.Plugin { } } module.exports = MemosPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsic3JjL2NvbnN0YW50cy50cyIsIm5vZGVfbW9kdWxlcy9fb2JqZWN0LWFzc2lnbkA0LjEuMUBvYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdEAxNy4wLjJAcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdEAxNy4wLjJAcmVhY3QvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX3NjaGVkdWxlckAwLjIwLjJAc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCJub2RlX21vZHVsZXMvX3NjaGVkdWxlckAwLjIwLjJAc2NoZWR1bGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kb21AMTcuMC4yQHJlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kb21AMTcuMC4yQHJlYWN0LWRvbS9pbmRleC5qcyIsInNyYy9sYWJzL2NvbWJpbmVSZWR1Y2Vycy50cyIsInNyYy9sYWJzL2NyZWF0ZVN0b3JlLnRzIiwic3JjL3N0b3Jlcy9nbG9iYWxTdGF0ZVN0b3JlLnRzIiwic3JjL3N0b3Jlcy9sb2NhdGlvblN0b3JlLnRzIiwic3JjL2hlbHBlcnMvdXRpbHMudHMiLCJzcmMvc3RvcmVzL21lbW9TdG9yZS50cyIsInNyYy9zdG9yZXMvdXNlclN0b3JlLnRzIiwic3JjL3N0b3Jlcy9xdWVyeVN0b3JlLnRzIiwibm9kZV9tb2R1bGVzL19vYnNpZGlhbi1kYWlseS1ub3Rlcy1pbnRlcmZhY2VAMC45LjRAb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlL2Rpc3QvbWFpbi5qcyIsInNyYy9zdG9yZXMvZGFpbHlOb3Rlc1N0b3JlLnRzIiwic3JjL3N0b3Jlcy9hcHBTdG9yZS50cyIsInNyYy9zdG9yZXMvYXBwQ29udGV4dC50cyIsInNyYy9zZXJ2aWNlcy9kYWlseU5vdGVzU2VydmljZS50cyIsInNyYy9oZWxwZXJzL3N0b3JhZ2UudHMiLCJzcmMvc2VydmljZXMvZ2xvYmFsU3RhdGVTZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL2xvY2F0aW9uU2VydmljZS50cyIsIm5vZGVfbW9kdWxlcy9fbW9tZW50QDIuMjkuMUBtb21lbnQvZGlzdC9tb21lbnQuanMiLCJzcmMvb2JDb21wb25lbnRzL29iVXBkYXRlTWVtby50cyIsInNyYy9vYkNvbXBvbmVudHMvb2JHZXRRdWVyaWVzLnRzIiwic3JjL29iQ29tcG9uZW50cy9vYkNyZWF0ZVF1ZXJ5LnRzIiwic3JjL29iQ29tcG9uZW50cy9vYkdldE1lbW9zLnRzIiwic3JjL29iQ29tcG9uZW50cy9vYlVwZGF0ZVF1ZXJ5LnRzIiwic3JjL29iQ29tcG9uZW50cy9vYkNyZWF0ZU1lbW8udHMiLCJzcmMvb2JDb21wb25lbnRzL29iRGVsZXRlTWVtby50cyIsInNyYy9vYkNvbXBvbmVudHMvb2JIaWRlTWVtby50cyIsInNyYy9vYkNvbXBvbmVudHMvb2JEZWxldGVRdWVyeS50cyIsInNyYy9vYkNvbXBvbmVudHMvb2JQaW5RdWVyeS50cyIsInNyYy9oZWxwZXJzL2FwaS50cyIsInNyYy9oZWxwZXJzL2NvbnN0cy50cyIsInNyYy9zZXJ2aWNlcy9tZW1vU2VydmljZS50cyIsInNyYy9zZXJ2aWNlcy9xdWVyeVNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvcmVzb3VyY2VTZXJ2aWNlLnRzIiwibm9kZV9tb2R1bGVzL190aW55LXVuZG9AMC4wLjhAdGlueS11bmRvL2Rpc3QvVGlueVVuZG8uanMiLCJzcmMvaG9va3MvdXNlUmVmcmVzaC50cyIsIm5vZGVfbW9kdWxlcy9fcmVhY3RAMTcuMC4yQHJlYWN0L2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3RAMTcuMC4yQHJlYWN0L2pzeC1ydW50aW1lLmpzIiwicmVhY3QvanN4LXJ1bnRpbWUiLCJzcmMvY29tcG9uZW50cy9jb21tb24vT25seVdoZW4udHN4Iiwibm9kZV9tb2R1bGVzL190ZXh0YXJlYS1jYXJldEAzLjAuMkB0ZXh0YXJlYS1jYXJldC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fY3VzdG9tLWV2ZW50QDEuMC4xQGN1c3RvbS1ldmVudC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fQHdlYnNjb3BlaW9fcmVhY3QtdGV4dGFyZWEtYXV0b2NvbXBsZXRlQDQuOS4xQEB3ZWJzY29wZWlvL3JlYWN0LXRleHRhcmVhLWF1dG9jb21wbGV0ZS9kaXN0L3JlYWN0LXRleHRhcmVhLWF1dG9jb21wbGV0ZS5lcy5qcyIsInNyYy9vYkNvbXBvbmVudHMvb2JUYWdTdWdnZXN0ZXIudHMiLCJzcmMvb2JDb21wb25lbnRzL29iRmlsZVN1Z2dlc3Rlci50cyIsInNyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3IudHN4Iiwibm9kZV9tb2R1bGVzL190c2xpYkAyLjMuMUB0c2xpYi90c2xpYi5lczYuanMiLCJub2RlX21vZHVsZXMvX0ByZWFjaF91dGlsc0AwLjE2LjBAQHJlYWNoL3V0aWxzL2Nhbi11c2UtZG9tL2Rpc3QvcmVhY2gtdXRpbHMtY2FuLXVzZS1kb20uZXNtLmpzIiwibm9kZV9tb2R1bGVzL19AcmVhY2hfdXRpbHNAMC4xNi4wQEByZWFjaC91dGlscy91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0L2Rpc3QvcmVhY2gtdXRpbHMtdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdC5lc20uanMiLCJub2RlX21vZHVsZXMvX0ByZWFjaF9hdXRvLWlkQDAuMTYuMEBAcmVhY2gvYXV0by1pZC9kaXN0L3JlYWNoLWF1dG8taWQuZXNtLmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9fbGliL2J1aWxkRm9ybWF0TG9uZ0ZuL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9fbGliL2J1aWxkTG9jYWxpemVGbi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9sb2NhbGUvX2xpYi9idWlsZE1hdGNoUGF0dGVybkZuL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9fbGliL2J1aWxkTWF0Y2hGbi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS90b0RhdGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi90b0ludGVnZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9zdGFydE9mVVRDV2Vlay9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9hZGREYXlzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2FkZE1vbnRocy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9hZGRNaWxsaXNlY29uZHMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vc3RhcnRPZldlZWsvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL3N0YXJ0T2ZEYXkvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2FkZFdlZWtzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2FkZFllYXJzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2lzU2FtZURheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9pc0RhdGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vaXNWYWxpZC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9kaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9kaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2VuZE9mTW9udGgvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vc3RhcnRPZk1vbnRoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL3N0YXJ0T2ZZZWFyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2VuZE9mV2Vlay9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9sb2NhbGUvZW4tVVMvX2xpYi9mb3JtYXREaXN0YW5jZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9sb2NhbGUvZW4tVVMvX2xpYi9mb3JtYXRMb25nL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9lbi1VUy9fbGliL2Zvcm1hdFJlbGF0aXZlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9lbi1VUy9fbGliL2xvY2FsaXplL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9lbi1VUy9fbGliL21hdGNoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9lbi1VUy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9zdWJNaWxsaXNlY29uZHMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9nZXRVVENEYXlPZlllYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9zdGFydE9mVVRDSVNPV2Vlay9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2dldFVUQ0lTT1dlZWtZZWFyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvc3RhcnRPZlVUQ0lTT1dlZWtZZWFyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvZ2V0VVRDSVNPV2Vlay9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2dldFVUQ1dlZWtZZWFyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvc3RhcnRPZlVUQ1dlZWtZZWFyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvZ2V0VVRDV2Vlay9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2FkZExlYWRpbmdaZXJvcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2Zvcm1hdC9saWdodEZvcm1hdHRlcnMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9mb3JtYXQvZm9ybWF0dGVycy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2Zvcm1hdC9sb25nRm9ybWF0dGVycy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL3Byb3RlY3RlZFRva2Vucy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9mb3JtYXQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vZ2V0RGF5c0luTW9udGgvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vZ2V0VGltZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9nZXRVbml4VGltZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9nZXRXZWVrWWVhci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9zdGFydE9mV2Vla1llYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vZ2V0V2Vlay9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9sYXN0RGF5T2ZNb250aC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9nZXRXZWVrc0luTW9udGgvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vaXNBZnRlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9pc0JlZm9yZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9pc1NhbWVNb250aC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9pc1NhbWVZZWFyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL3NldE1vbnRoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL3NldFllYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvTW9udGhzRHJvcGRvd24vTW9udGhzRHJvcGRvd24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvQnV0dG9uL0J1dHRvbi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9OYXZpZ2F0aW9uL05hdmlnYXRpb24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvWWVhcnNEcm9wZG93bi9ZZWFyc0Ryb3Bkb3duLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9ob29rcy91c2VDb250cm9sbGVkVmFsdWUvdXNlQ29udHJvbGxlZFZhbHVlLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9OYXZpZ2F0aW9uL3V0aWxzL2dldEluaXRpYWxNb250aC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTmF2aWdhdGlvbi91c2VOYXZpZ2F0aW9uU3RhdGUuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL05hdmlnYXRpb24vdXRpbHMvZ2V0RGlzcGxheU1vbnRocy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTmF2aWdhdGlvbi91dGlscy9nZXROZXh0TW9udGguanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL05hdmlnYXRpb24vdXRpbHMvZ2V0UHJldmlvdXNNb250aC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTmF2aWdhdGlvbi9OYXZpZ2F0aW9uQ29udGV4dC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTmF2aWdhdGlvbi91c2VOYXZpZ2F0aW9uLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0NhcHRpb24vQ2FwdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9DYXB0aW9uTGFiZWwvQ2FwdGlvbkxhYmVsLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC90eXBlcy9EYXlQaWNrZXJNdWx0aXBsZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvU2VsZWN0TXVsdGlwbGUvU2VsZWN0TXVsdGlwbGVDb250ZXh0LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9TZWxlY3RNdWx0aXBsZS91c2VTZWxlY3RNdWx0aXBsZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvdHlwZXMvRGF5UGlja2VyUmFuZ2UuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL1NlbGVjdFJhbmdlL3V0aWxzL2FkZFRvUmFuZ2UuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL1NlbGVjdFJhbmdlL1NlbGVjdFJhbmdlQ29udGV4dC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvU2VsZWN0UmFuZ2UvdXNlU2VsZWN0UmFuZ2UuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL3R5cGVzL0RheVBpY2tlclNpbmdsZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvU2VsZWN0U2luZ2xlL1NlbGVjdFNpbmdsZUNvbnRleHQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL1NlbGVjdFNpbmdsZS91c2VTZWxlY3RTaW5nbGUuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL01vZGlmaWVycy91dGlscy90b01hdGNoZXJBcnJheS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTW9kaWZpZXJzL3V0aWxzL2dldEN1c3RvbU1vZGlmaWVycy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvdHlwZXMvTW9kaWZpZXJzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9Nb2RpZmllcnMvdXRpbHMvZ2V0SW50ZXJuYWxNb2RpZmllcnMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL01vZGlmaWVycy9Nb2RpZmllcnNDb250ZXh0LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9Nb2RpZmllcnMvdXNlTW9kaWZpZXJzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC90eXBlcy9NYXRjaGVycy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvaG9va3MvdXNlRGF5TW9kaWZpZXJzL3V0aWxzL2lzRGF0ZUluUmFuZ2UuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2hvb2tzL3VzZURheU1vZGlmaWVycy91dGlscy9pc01hdGNoLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9ob29rcy91c2VEYXlNb2RpZmllcnMvdXRpbHMvZ2V0TW9kaWZpZXJTdGF0dXMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2hvb2tzL3VzZURheU1vZGlmaWVycy91c2VEYXlNb2RpZmllcnMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0ZvY3VzL2dldEluaXRpYWxGb2N1c1RhcmdldC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRm9jdXMvRm9jdXNDb250ZXh0LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9Gb2N1cy91c2VGb2N1cy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9EYXkvaG9va3MvdXNlRGF5Rm9jdXMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvRGF5L2hvb2tzL3VzZURheS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9EYXkvRGF5LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0RheUNvbnRlbnQvRGF5Q29udGVudC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9Ecm9wZG93bi9Ecm9wZG93bi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0hlYWQvdXRpbHMvZ2V0V2Vla2RheXMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvSGVhZC9IZWFkLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0ljb25Ecm9wZG93bi9JY29uRHJvcGRvd24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvSWNvbkxlZnQvSWNvbkxlZnQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvSWNvblJpZ2h0L0ljb25SaWdodC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9Sb3cvUm93LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL1dlZWtOdW1iZXIvV2Vla051bWJlci5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2RlZmF1bHRDbGFzc05hbWVzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvZm9ybWF0dGVycy9mb3JtYXRDYXB0aW9uLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvZm9ybWF0dGVycy9mb3JtYXREYXkuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9mb3JtYXR0ZXJzL2Zvcm1hdE1vbnRoQ2FwdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2Zvcm1hdHRlcnMvZm9ybWF0V2Vla051bWJlci5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2Zvcm1hdHRlcnMvZm9ybWF0V2Vla2RheU5hbWUuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9mb3JtYXR0ZXJzL2Zvcm1hdFllYXJDYXB0aW9uLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvbGFiZWxzL2xhYmVsRGF5LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvbGFiZWxzL2xhYmVsTW9udGhEcm9wZG93bi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2xhYmVscy9sYWJlbE5leHQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9sYWJlbHMvbGFiZWxQcmV2aW91cy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2xhYmVscy9sYWJlbFdlZWtkYXkuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9sYWJlbHMvbGFiZWxXZWVrTnVtYmVyLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvbGFiZWxzL2xhYmVsWWVhckRyb3Bkb3duLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvdXRpbHMvcGFyc2VGcm9tVG9Qcm9wcy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL0RheVBpY2tlckNvbnRleHQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci91c2VEYXlQaWNrZXIuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvVGFibGUvdXRpbHMvZ2V0T3V0c2lkZUVuZERheXMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvVGFibGUvdXRpbHMvZ2V0T3V0c2lkZVN0YXJ0RGF5cy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9UYWJsZS91dGlscy9nZXRXZWVrcy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9UYWJsZS9UYWJsZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9Nb250aC9Nb250aC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9Sb290L1Jvb3QuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL1Jvb3RQcm92aWRlci5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvRGF5UGlja2VyLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1wb3BwZXJAMi4yLjVAcmVhY3QtcG9wcGVyL2xpYi9lc20vdXRpbHMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZW51bXMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldE5vZGVOYW1lLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3cuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2luc3RhbmNlT2YuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2FwcGx5U3R5bGVzLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvbWF0aC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9jb250YWlucy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Q29tcHV0ZWRTdHlsZS5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvaXNUYWJsZUVsZW1lbnQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0UGFyZW50Tm9kZS5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy93aXRoaW4uanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0RnJlc2hTaWRlT2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21lcmdlUGFkZGluZ09iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9leHBhbmRUb0hhc2hNYXAuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2Fycm93LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldFZhcmlhdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvY29tcHV0ZVN0eWxlcy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvZXZlbnRMaXN0ZW5lcnMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0T3Bwb3NpdGVQbGFjZW1lbnQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFdpbmRvd1Njcm9sbC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0V2luZG93U2Nyb2xsQmFyWC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Vmlld3BvcnRSZWN0LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXREb2N1bWVudFJlY3QuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzU2Nyb2xsUGFyZW50LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRTY3JvbGxQYXJlbnQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2xpc3RTY3JvbGxQYXJlbnRzLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENsaXBwaW5nUmVjdC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9jb21wdXRlT2Zmc2V0cy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9kZXRlY3RPdmVyZmxvdy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9jb21wdXRlQXV0b1BsYWNlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvZmxpcC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvaGlkZS5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvb2Zmc2V0LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wb3BwZXJPZmZzZXRzLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEFsdEF4aXMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL3ByZXZlbnRPdmVyZmxvdy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0SFRNTEVsZW1lbnRTY3JvbGwuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldE5vZGVTY3JvbGwuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENvbXBvc2l0ZVJlY3QuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvb3JkZXJNb2RpZmllcnMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZGVib3VuY2UuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvbWVyZ2VCeU5hbWUuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvY3JlYXRlUG9wcGVyLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3BvcHBlci5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZmFzdC1jb21wYXJlQDMuMi4wQHJlYWN0LWZhc3QtY29tcGFyZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtcG9wcGVyQDIuMi41QHJlYWN0LXBvcHBlci9saWIvZXNtL3VzZVBvcHBlci5qcyIsIm5vZGVfbW9kdWxlcy9fcHJvcC10eXBlc0AxNS44LjFAcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMiLCJub2RlX21vZHVsZXMvX3Byb3AtdHlwZXNAMTUuOC4xQHByb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzIiwibm9kZV9tb2R1bGVzL19wcm9wLXR5cGVzQDE1LjguMUBwcm9wLXR5cGVzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL190YWJiYWJsZUA1LjIuMUB0YWJiYWJsZS9kaXN0L2luZGV4LmVzbS5qcyIsIm5vZGVfbW9kdWxlcy9fZm9jdXMtdHJhcEA2LjcuMkBmb2N1cy10cmFwL2Rpc3QvZm9jdXMtdHJhcC5lc20uanMiLCJub2RlX21vZHVsZXMvX2ZvY3VzLXRyYXAtcmVhY3RAOC45LjFAZm9jdXMtdHJhcC1yZWFjdC9kaXN0L2ZvY3VzLXRyYXAtcmVhY3QuanMiLCJzcmMvaG9va3MvdXNlVG9nZ2xlLnRzIiwic3JjL2NvbXBvbmVudHMvTWVtb0VkaXRvci50c3giLCJzcmMvaGVscGVycy9maWx0ZXIudHMiLCJzcmMvY29tcG9uZW50cy9TZWFyY2hCYXIudHN4Iiwic3JjL2NvbXBvbmVudHMvTWVtb3NIZWFkZXIudHN4Iiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcyIsIm5vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xNi43QEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsIm5vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xNi43QEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NldFByb3RvdHlwZU9mLmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsIm5vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xNi43QEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aEhvbGVzLmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5LmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIm5vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xNi43QEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9BcnJheS5qcyIsIm5vZGVfbW9kdWxlcy9faTE4bmV4dEAyMS42LjZAaTE4bmV4dC9kaXN0L2VzbS9pMThuZXh0LmpzIiwic3JjL2NvbXBvbmVudHMvTWVtb0ZpbHRlci50c3giLCJzcmMvaGVscGVycy9tYXJrZWQudHMiLCJzcmMvbGFicy9Qcm92aWRlci50c3giLCJzcmMvY29tcG9uZW50cy9EaWFsb2cudHN4Iiwic3JjL2NvbXBvbmVudHMvUHJldmlld0ltYWdlRGlhbG9nLnRzeCIsInNyYy9jb21wb25lbnRzL0ltYWdlLnRzeCIsInNyYy9jb21wb25lbnRzL01lbW9DYXJkRGlhbG9nLnRzeCIsInNyYy9sYWJzL2h0bWwyaW1hZ2UvY29udmVydFJlc291cmNlVG9EYXRhVVJMLnRzIiwic3JjL2xhYnMvaHRtbDJpbWFnZS9nZXRDbG9uZVN0eWxlZEVsZW1lbnQudHMiLCJzcmMvbGFicy9odG1sMmltYWdlL2dldEZvbnRzU3R5bGVFbGVtZW50LnRzIiwic3JjL2xhYnMvaHRtbDJpbWFnZS9pbmRleC50cyIsInNyYy9jb21wb25lbnRzL1NoYXJlTWVtb0ltYWdlRGlhbG9nLnRzeCIsInNyYy9vYkNvbXBvbmVudHMvb2JTaG93TWVtby50cyIsInNyYy9jb21wb25lbnRzL01lbW8udHN4Iiwic3JjL2NvbXBvbmVudHMvTWVtb0xpc3QudHN4Iiwic3JjL3BhZ2VzL01lbW9zLnRzeCIsInNyYy9ob29rcy91c2VMb2FkaW5nLnRzIiwic3JjL2NvbXBvbmVudHMvRGVsZXRlZE1lbW8udHN4Iiwic3JjL3BhZ2VzL01lbW9UcmFzaC50c3giLCJzcmMvY29tcG9uZW50cy9QcmVmZXJlbmNlc1NlY3Rpb24udHN4Iiwic3JjL3BhZ2VzL1NldHRpbmcudHN4Iiwic3JjL3JvdXRlcnMvaG9tZVJvdXRlci50c3giLCJzcmMvcm91dGVycy9pbmRleC50cyIsInNyYy9jb21wb25lbnRzL0Fib3V0U2l0ZURpYWxvZy50c3giLCJzcmMvY29tcG9uZW50cy9NZW51QnRuc1BvcHVwLnRzeCIsInNyYy9jb21wb25lbnRzL0RhaWx5TWVtby50c3giLCJzcmMvY29tcG9uZW50cy9jb21tb24vRGF0ZVBpY2tlci50c3giLCJzcmMvY29tcG9uZW50cy9EYWlseU1lbW9EaWFyeURpYWxvZy50c3giLCJzcmMvY29tcG9uZW50cy9Vc2VyQmFubmVyLnRzeCIsInNyYy9jb21wb25lbnRzL2NvbW1vbi9TZWxlY3Rvci50c3giLCJzcmMvY29tcG9uZW50cy9DcmVhdGVRdWVyeURpYWxvZy50c3giLCJzcmMvY29tcG9uZW50cy9RdWVyeUxpc3QudHN4Iiwic3JjL2NvbXBvbmVudHMvVGFnTGlzdC50c3giLCJzcmMvY29tcG9uZW50cy9Vc2FnZUhlYXRNYXAudHN4Iiwic3JjL2NvbXBvbmVudHMvU2lkZWJhci50c3giLCJzcmMvcGFnZXMvSG9tZS50c3giLCJzcmMvaGVscGVycy9wb2x5ZmlsbC50cyIsInNyYy9BcHAudHN4Iiwic3JjL21lbW9zLnRzIiwic3JjL29iQ29tcG9uZW50cy9jdXN0b21JY29ucy50cyIsInNyYy9zZXR0aW5nLnRzIiwic3JjL3RyYW5zbGF0aW9ucy96aC90cmFuc2xhdGlvbnMudHMiLCJzcmMvdHJhbnNsYXRpb25zL2VuL3RyYW5zbGF0aW9ucy50cyIsInNyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTUVNT1NfVklFV19UWVBFID0gXCJtZW1vc192aWV3XCI7XG5leHBvcnQgY29uc3QgVklFV19UWVBFID0gXCJyZWFjdC12aWV3XCI7XG4iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNy4wLjJcbiAqIHJlYWN0LnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0Jzt2YXIgbD1yZXF1aXJlKFwib2JqZWN0LWFzc2lnblwiKSxuPTYwMTAzLHA9NjAxMDY7ZXhwb3J0cy5GcmFnbWVudD02MDEwNztleHBvcnRzLlN0cmljdE1vZGU9NjAxMDg7ZXhwb3J0cy5Qcm9maWxlcj02MDExNDt2YXIgcT02MDEwOSxyPTYwMTEwLHQ9NjAxMTI7ZXhwb3J0cy5TdXNwZW5zZT02MDExMzt2YXIgdT02MDExNSx2PTYwMTE2O1xuaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcil7dmFyIHc9U3ltYm9sLmZvcjtuPXcoXCJyZWFjdC5lbGVtZW50XCIpO3A9dyhcInJlYWN0LnBvcnRhbFwiKTtleHBvcnRzLkZyYWdtZW50PXcoXCJyZWFjdC5mcmFnbWVudFwiKTtleHBvcnRzLlN0cmljdE1vZGU9dyhcInJlYWN0LnN0cmljdF9tb2RlXCIpO2V4cG9ydHMuUHJvZmlsZXI9dyhcInJlYWN0LnByb2ZpbGVyXCIpO3E9dyhcInJlYWN0LnByb3ZpZGVyXCIpO3I9dyhcInJlYWN0LmNvbnRleHRcIik7dD13KFwicmVhY3QuZm9yd2FyZF9yZWZcIik7ZXhwb3J0cy5TdXNwZW5zZT13KFwicmVhY3Quc3VzcGVuc2VcIik7dT13KFwicmVhY3QubWVtb1wiKTt2PXcoXCJyZWFjdC5sYXp5XCIpfXZhciB4PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcjtcbmZ1bmN0aW9uIHkoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPXgmJmFbeF18fGFbXCJAQGl0ZXJhdG9yXCJdO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbH1mdW5jdGlvbiB6KGEpe2Zvcih2YXIgYj1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2EsYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYis9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbY10pO3JldHVyblwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2ErXCI7IHZpc2l0IFwiK2IrXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLlwifVxudmFyIEE9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEI9e307ZnVuY3Rpb24gQyhhLGIsYyl7dGhpcy5wcm9wcz1hO3RoaXMuY29udGV4dD1iO3RoaXMucmVmcz1CO3RoaXMudXBkYXRlcj1jfHxBfUMucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e307Qy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYSxiKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGEmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhJiZudWxsIT1hKXRocm93IEVycm9yKHooODUpKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsYSxiLFwic2V0U3RhdGVcIil9O0MucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGEpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxhLFwiZm9yY2VVcGRhdGVcIil9O1xuZnVuY3Rpb24gRCgpe31ELnByb3RvdHlwZT1DLnByb3RvdHlwZTtmdW5jdGlvbiBFKGEsYixjKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUI7dGhpcy51cGRhdGVyPWN8fEF9dmFyIEY9RS5wcm90b3R5cGU9bmV3IEQ7Ri5jb25zdHJ1Y3Rvcj1FO2woRixDLnByb3RvdHlwZSk7Ri5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgRz17Y3VycmVudDpudWxsfSxIPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksST17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gSihhLGIsYyl7dmFyIGUsZD17fSxrPW51bGwsaD1udWxsO2lmKG51bGwhPWIpZm9yKGUgaW4gdm9pZCAwIT09Yi5yZWYmJihoPWIucmVmKSx2b2lkIDAhPT1iLmtleSYmKGs9XCJcIitiLmtleSksYilILmNhbGwoYixlKSYmIUkuaGFzT3duUHJvcGVydHkoZSkmJihkW2VdPWJbZV0pO3ZhciBnPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ZylkLmNoaWxkcmVuPWM7ZWxzZSBpZigxPGcpe2Zvcih2YXIgZj1BcnJheShnKSxtPTA7bTxnO20rKylmW21dPWFyZ3VtZW50c1ttKzJdO2QuY2hpbGRyZW49Zn1pZihhJiZhLmRlZmF1bHRQcm9wcylmb3IoZSBpbiBnPWEuZGVmYXVsdFByb3BzLGcpdm9pZCAwPT09ZFtlXSYmKGRbZV09Z1tlXSk7cmV0dXJueyQkdHlwZW9mOm4sdHlwZTphLGtleTprLHJlZjpoLHByb3BzOmQsX293bmVyOkcuY3VycmVudH19XG5mdW5jdGlvbiBLKGEsYil7cmV0dXJueyQkdHlwZW9mOm4sdHlwZTphLnR5cGUsa2V5OmIscmVmOmEucmVmLHByb3BzOmEucHJvcHMsX293bmVyOmEuX293bmVyfX1mdW5jdGlvbiBMKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1ufWZ1bmN0aW9uIGVzY2FwZShhKXt2YXIgYj17XCI9XCI6XCI9MFwiLFwiOlwiOlwiPTJcIn07cmV0dXJuXCIkXCIrYS5yZXBsYWNlKC9bPTpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIGJbYV19KX12YXIgTT0vXFwvKy9nO2Z1bmN0aW9uIE4oYSxiKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZudWxsIT1hLmtleT9lc2NhcGUoXCJcIithLmtleSk6Yi50b1N0cmluZygzNil9XG5mdW5jdGlvbiBPKGEsYixjLGUsZCl7dmFyIGs9dHlwZW9mIGE7aWYoXCJ1bmRlZmluZWRcIj09PWt8fFwiYm9vbGVhblwiPT09aylhPW51bGw7dmFyIGg9ITE7aWYobnVsbD09PWEpaD0hMDtlbHNlIHN3aXRjaChrKXtjYXNlIFwic3RyaW5nXCI6Y2FzZSBcIm51bWJlclwiOmg9ITA7YnJlYWs7Y2FzZSBcIm9iamVjdFwiOnN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIG46Y2FzZSBwOmg9ITB9fWlmKGgpcmV0dXJuIGg9YSxkPWQoaCksYT1cIlwiPT09ZT9cIi5cIitOKGgsMCk6ZSxBcnJheS5pc0FycmF5KGQpPyhjPVwiXCIsbnVsbCE9YSYmKGM9YS5yZXBsYWNlKE0sXCIkJi9cIikrXCIvXCIpLE8oZCxiLGMsXCJcIixmdW5jdGlvbihhKXtyZXR1cm4gYX0pKTpudWxsIT1kJiYoTChkKSYmKGQ9SyhkLGMrKCFkLmtleXx8aCYmaC5rZXk9PT1kLmtleT9cIlwiOihcIlwiK2Qua2V5KS5yZXBsYWNlKE0sXCIkJi9cIikrXCIvXCIpK2EpKSxiLnB1c2goZCkpLDE7aD0wO2U9XCJcIj09PWU/XCIuXCI6ZStcIjpcIjtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgZz1cbjA7ZzxhLmxlbmd0aDtnKyspe2s9YVtnXTt2YXIgZj1lK04oayxnKTtoKz1PKGssYixjLGYsZCl9ZWxzZSBpZihmPXkoYSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGYpZm9yKGE9Zi5jYWxsKGEpLGc9MDshKGs9YS5uZXh0KCkpLmRvbmU7KWs9ay52YWx1ZSxmPWUrTihrLGcrKyksaCs9TyhrLGIsYyxmLGQpO2Vsc2UgaWYoXCJvYmplY3RcIj09PWspdGhyb3cgYj1cIlwiK2EsRXJyb3IoeigzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09Yj9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGEpLmpvaW4oXCIsIFwiKStcIn1cIjpiKSk7cmV0dXJuIGh9ZnVuY3Rpb24gUChhLGIsYyl7aWYobnVsbD09YSlyZXR1cm4gYTt2YXIgZT1bXSxkPTA7TyhhLGUsXCJcIixcIlwiLGZ1bmN0aW9uKGEpe3JldHVybiBiLmNhbGwoYyxhLGQrKyl9KTtyZXR1cm4gZX1cbmZ1bmN0aW9uIFEoYSl7aWYoLTE9PT1hLl9zdGF0dXMpe3ZhciBiPWEuX3Jlc3VsdDtiPWIoKTthLl9zdGF0dXM9MDthLl9yZXN1bHQ9YjtiLnRoZW4oZnVuY3Rpb24oYil7MD09PWEuX3N0YXR1cyYmKGI9Yi5kZWZhdWx0LGEuX3N0YXR1cz0xLGEuX3Jlc3VsdD1iKX0sZnVuY3Rpb24oYil7MD09PWEuX3N0YXR1cyYmKGEuX3N0YXR1cz0yLGEuX3Jlc3VsdD1iKX0pfWlmKDE9PT1hLl9zdGF0dXMpcmV0dXJuIGEuX3Jlc3VsdDt0aHJvdyBhLl9yZXN1bHQ7fXZhciBSPXtjdXJyZW50Om51bGx9O2Z1bmN0aW9uIFMoKXt2YXIgYT1SLmN1cnJlbnQ7aWYobnVsbD09PWEpdGhyb3cgRXJyb3IoeigzMjEpKTtyZXR1cm4gYX12YXIgVD17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpSLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOnt0cmFuc2l0aW9uOjB9LFJlYWN0Q3VycmVudE93bmVyOkcsSXNTb21lUmVuZGVyZXJBY3Rpbmc6e2N1cnJlbnQ6ITF9LGFzc2lnbjpsfTtcbmV4cG9ydHMuQ2hpbGRyZW49e21hcDpQLGZvckVhY2g6ZnVuY3Rpb24oYSxiLGMpe1AoYSxmdW5jdGlvbigpe2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxjKX0sY291bnQ6ZnVuY3Rpb24oYSl7dmFyIGI9MDtQKGEsZnVuY3Rpb24oKXtiKyt9KTtyZXR1cm4gYn0sdG9BcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gUChhLGZ1bmN0aW9uKGEpe3JldHVybiBhfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGEpe2lmKCFMKGEpKXRocm93IEVycm9yKHooMTQzKSk7cmV0dXJuIGF9fTtleHBvcnRzLkNvbXBvbmVudD1DO2V4cG9ydHMuUHVyZUNvbXBvbmVudD1FO2V4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9VDtcbmV4cG9ydHMuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGEsYixjKXtpZihudWxsPT09YXx8dm9pZCAwPT09YSl0aHJvdyBFcnJvcih6KDI2NyxhKSk7dmFyIGU9bCh7fSxhLnByb3BzKSxkPWEua2V5LGs9YS5yZWYsaD1hLl9vd25lcjtpZihudWxsIT1iKXt2b2lkIDAhPT1iLnJlZiYmKGs9Yi5yZWYsaD1HLmN1cnJlbnQpO3ZvaWQgMCE9PWIua2V5JiYoZD1cIlwiK2Iua2V5KTtpZihhLnR5cGUmJmEudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGc9YS50eXBlLmRlZmF1bHRQcm9wcztmb3IoZiBpbiBiKUguY2FsbChiLGYpJiYhSS5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09dm9pZCAwPT09YltmXSYmdm9pZCAwIT09Zz9nW2ZdOmJbZl0pfXZhciBmPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ZillLmNoaWxkcmVuPWM7ZWxzZSBpZigxPGYpe2c9QXJyYXkoZik7Zm9yKHZhciBtPTA7bTxmO20rKylnW21dPWFyZ3VtZW50c1ttKzJdO2UuY2hpbGRyZW49Z31yZXR1cm57JCR0eXBlb2Y6bix0eXBlOmEudHlwZSxcbmtleTpkLHJlZjprLHByb3BzOmUsX293bmVyOmh9fTtleHBvcnRzLmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24oYSxiKXt2b2lkIDA9PT1iJiYoYj1udWxsKTthPXskJHR5cGVvZjpyLF9jYWxjdWxhdGVDaGFuZ2VkQml0czpiLF9jdXJyZW50VmFsdWU6YSxfY3VycmVudFZhbHVlMjphLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH07YS5Qcm92aWRlcj17JCR0eXBlb2Y6cSxfY29udGV4dDphfTtyZXR1cm4gYS5Db25zdW1lcj1hfTtleHBvcnRzLmNyZWF0ZUVsZW1lbnQ9SjtleHBvcnRzLmNyZWF0ZUZhY3Rvcnk9ZnVuY3Rpb24oYSl7dmFyIGI9Si5iaW5kKG51bGwsYSk7Yi50eXBlPWE7cmV0dXJuIGJ9O2V4cG9ydHMuY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19O2V4cG9ydHMuZm9yd2FyZFJlZj1mdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6dCxyZW5kZXI6YX19O2V4cG9ydHMuaXNWYWxpZEVsZW1lbnQ9TDtcbmV4cG9ydHMubGF6eT1mdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6dixfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmF9LF9pbml0OlF9fTtleHBvcnRzLm1lbW89ZnVuY3Rpb24oYSxiKXtyZXR1cm57JCR0eXBlb2Y6dSx0eXBlOmEsY29tcGFyZTp2b2lkIDA9PT1iP251bGw6Yn19O2V4cG9ydHMudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUygpLnVzZUNhbGxiYWNrKGEsYil9O2V4cG9ydHMudXNlQ29udGV4dD1mdW5jdGlvbihhLGIpe3JldHVybiBTKCkudXNlQ29udGV4dChhLGIpfTtleHBvcnRzLnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9O2V4cG9ydHMudXNlRWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VFZmZlY3QoYSxiKX07ZXhwb3J0cy51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUygpLnVzZUltcGVyYXRpdmVIYW5kbGUoYSxiLGMpfTtcbmV4cG9ydHMudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VMYXlvdXRFZmZlY3QoYSxiKX07ZXhwb3J0cy51c2VNZW1vPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VNZW1vKGEsYil9O2V4cG9ydHMudXNlUmVkdWNlcj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIFMoKS51c2VSZWR1Y2VyKGEsYixjKX07ZXhwb3J0cy51c2VSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIFMoKS51c2VSZWYoYSl9O2V4cG9ydHMudXNlU3RhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIFMoKS51c2VTdGF0ZShhKX07ZXhwb3J0cy52ZXJzaW9uPVwiMTcuMC4yXCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MC4yMC4yXG4gKiBzY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBmLGcsaCxrO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgcGVyZm9ybWFuY2UmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBsPXBlcmZvcm1hbmNlO2V4cG9ydHMudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHA9RGF0ZSxxPXAubm93KCk7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcC5ub3coKS1xfX1cbmlmKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciB0PW51bGwsdT1udWxsLHc9ZnVuY3Rpb24oKXtpZihudWxsIT09dCl0cnl7dmFyIGE9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTt0KCEwLGEpO3Q9bnVsbH1jYXRjaChiKXt0aHJvdyBzZXRUaW1lb3V0KHcsMCksYjt9fTtmPWZ1bmN0aW9uKGEpe251bGwhPT10P3NldFRpbWVvdXQoZiwwLGEpOih0PWEsc2V0VGltZW91dCh3LDApKX07Zz1mdW5jdGlvbihhLGIpe3U9c2V0VGltZW91dChhLGIpfTtoPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHUpfTtleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkPWZ1bmN0aW9uKCl7cmV0dXJuITF9O2s9ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbigpe319ZWxzZXt2YXIgeD13aW5kb3cuc2V0VGltZW91dCx5PXdpbmRvdy5jbGVhclRpbWVvdXQ7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjb25zb2xlKXt2YXIgej1cbndpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZTtcImZ1bmN0aW9uXCIhPT10eXBlb2Ygd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSYmY29uc29sZS5lcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzXCIpO1wiZnVuY3Rpb25cIiE9PXR5cGVvZiB6JiZjb25zb2xlLmVycm9yKFwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBjYW5jZWxBbmltYXRpb25GcmFtZS4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3JlYWN0LXBvbHlmaWxsc1wiKX12YXIgQT0hMSxCPW51bGwsQz0tMSxEPTUsRT0wO2V4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQ9ZnVuY3Rpb24oKXtyZXR1cm4gZXhwb3J0cy51bnN0YWJsZV9ub3coKT49XG5FfTtrPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGEpezA+YXx8MTI1PGE/Y29uc29sZS5lcnJvcihcImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZFwiKTpEPTA8YT9NYXRoLmZsb29yKDFFMy9hKTo1fTt2YXIgRj1uZXcgTWVzc2FnZUNoYW5uZWwsRz1GLnBvcnQyO0YucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7aWYobnVsbCE9PUIpe3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7RT1hK0Q7dHJ5e0IoITAsYSk/Ry5wb3N0TWVzc2FnZShudWxsKTooQT0hMSxCPW51bGwpfWNhdGNoKGIpe3Rocm93IEcucG9zdE1lc3NhZ2UobnVsbCksYjt9fWVsc2UgQT0hMX07Zj1mdW5jdGlvbihhKXtCPWE7QXx8KEE9ITAsRy5wb3N0TWVzc2FnZShudWxsKSl9O2c9ZnVuY3Rpb24oYSxiKXtDPVxueChmdW5jdGlvbigpe2EoZXhwb3J0cy51bnN0YWJsZV9ub3coKSl9LGIpfTtoPWZ1bmN0aW9uKCl7eShDKTtDPS0xfX1mdW5jdGlvbiBIKGEsYil7dmFyIGM9YS5sZW5ndGg7YS5wdXNoKGIpO2E6Zm9yKDs7KXt2YXIgZD1jLTE+Pj4xLGU9YVtkXTtpZih2b2lkIDAhPT1lJiYwPEkoZSxiKSlhW2RdPWIsYVtjXT1lLGM9ZDtlbHNlIGJyZWFrIGF9fWZ1bmN0aW9uIEooYSl7YT1hWzBdO3JldHVybiB2b2lkIDA9PT1hP251bGw6YX1cbmZ1bmN0aW9uIEsoYSl7dmFyIGI9YVswXTtpZih2b2lkIDAhPT1iKXt2YXIgYz1hLnBvcCgpO2lmKGMhPT1iKXthWzBdPWM7YTpmb3IodmFyIGQ9MCxlPWEubGVuZ3RoO2Q8ZTspe3ZhciBtPTIqKGQrMSktMSxuPWFbbV0sdj1tKzEscj1hW3ZdO2lmKHZvaWQgMCE9PW4mJjA+SShuLGMpKXZvaWQgMCE9PXImJjA+SShyLG4pPyhhW2RdPXIsYVt2XT1jLGQ9dik6KGFbZF09bixhW21dPWMsZD1tKTtlbHNlIGlmKHZvaWQgMCE9PXImJjA+SShyLGMpKWFbZF09cixhW3ZdPWMsZD12O2Vsc2UgYnJlYWsgYX19cmV0dXJuIGJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gSShhLGIpe3ZhciBjPWEuc29ydEluZGV4LWIuc29ydEluZGV4O3JldHVybiAwIT09Yz9jOmEuaWQtYi5pZH12YXIgTD1bXSxNPVtdLE49MSxPPW51bGwsUD0zLFE9ITEsUj0hMSxTPSExO1xuZnVuY3Rpb24gVChhKXtmb3IodmFyIGI9SihNKTtudWxsIT09Yjspe2lmKG51bGw9PT1iLmNhbGxiYWNrKUsoTSk7ZWxzZSBpZihiLnN0YXJ0VGltZTw9YSlLKE0pLGIuc29ydEluZGV4PWIuZXhwaXJhdGlvblRpbWUsSChMLGIpO2Vsc2UgYnJlYWs7Yj1KKE0pfX1mdW5jdGlvbiBVKGEpe1M9ITE7VChhKTtpZighUilpZihudWxsIT09SihMKSlSPSEwLGYoVik7ZWxzZXt2YXIgYj1KKE0pO251bGwhPT1iJiZnKFUsYi5zdGFydFRpbWUtYSl9fVxuZnVuY3Rpb24gVihhLGIpe1I9ITE7UyYmKFM9ITEsaCgpKTtRPSEwO3ZhciBjPVA7dHJ5e1QoYik7Zm9yKE89SihMKTtudWxsIT09TyYmKCEoTy5leHBpcmF0aW9uVGltZT5iKXx8YSYmIWV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQoKSk7KXt2YXIgZD1PLmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXtPLmNhbGxiYWNrPW51bGw7UD1PLnByaW9yaXR5TGV2ZWw7dmFyIGU9ZChPLmV4cGlyYXRpb25UaW1lPD1iKTtiPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGU/Ty5jYWxsYmFjaz1lOk89PT1KKEwpJiZLKEwpO1QoYil9ZWxzZSBLKEwpO089SihMKX1pZihudWxsIT09Tyl2YXIgbT0hMDtlbHNle3ZhciBuPUooTSk7bnVsbCE9PW4mJmcoVSxuLnN0YXJ0VGltZS1iKTttPSExfXJldHVybiBtfWZpbmFsbHl7Tz1udWxsLFA9YyxRPSExfX12YXIgVz1rO2V4cG9ydHMudW5zdGFibGVfSWRsZVByaW9yaXR5PTU7XG5leHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTE7ZXhwb3J0cy51bnN0YWJsZV9Mb3dQcmlvcml0eT00O2V4cG9ydHMudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MztleHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsO2V4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MjtleHBvcnRzLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGEpe2EuY2FsbGJhY2s9bnVsbH07ZXhwb3J0cy51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe1J8fFF8fChSPSEwLGYoVikpfTtleHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIFB9O2V4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gSihMKX07XG5leHBvcnRzLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oYSl7c3dpdGNoKFApe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBiPTM7YnJlYWs7ZGVmYXVsdDpiPVB9dmFyIGM9UDtQPWI7dHJ5e3JldHVybiBhKCl9ZmluYWxseXtQPWN9fTtleHBvcnRzLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludD1XO2V4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDphPTN9dmFyIGM9UDtQPWE7dHJ5e3JldHVybiBiKCl9ZmluYWxseXtQPWN9fTtcbmV4cG9ydHMudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcIm9iamVjdFwiPT09dHlwZW9mIGMmJm51bGwhPT1jPyhjPWMuZGVsYXksYz1cIm51bWJlclwiPT09dHlwZW9mIGMmJjA8Yz9kK2M6ZCk6Yz1kO3N3aXRjaChhKXtjYXNlIDE6dmFyIGU9LTE7YnJlYWs7Y2FzZSAyOmU9MjUwO2JyZWFrO2Nhc2UgNTplPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0OmU9MUU0O2JyZWFrO2RlZmF1bHQ6ZT01RTN9ZT1jK2U7YT17aWQ6TisrLGNhbGxiYWNrOmIscHJpb3JpdHlMZXZlbDphLHN0YXJ0VGltZTpjLGV4cGlyYXRpb25UaW1lOmUsc29ydEluZGV4Oi0xfTtjPmQ/KGEuc29ydEluZGV4PWMsSChNLGEpLG51bGw9PT1KKEwpJiZhPT09SihNKSYmKFM/aCgpOlM9ITAsZyhVLGMtZCkpKTooYS5zb3J0SW5kZXg9ZSxIKEwsYSksUnx8UXx8KFI9ITAsZihWKSkpO3JldHVybiBhfTtcbmV4cG9ydHMudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKGEpe3ZhciBiPVA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9UDtQPWI7dHJ5e3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e1A9Y319fTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbi8qXG4gTW9kZXJuaXpyIDMuMC4wcHJlIChDdXN0b20gQnVpbGQpIHwgTUlUXG4qL1xuJ3VzZSBzdHJpY3QnO3ZhciBhYT1yZXF1aXJlKFwicmVhY3RcIiksbT1yZXF1aXJlKFwib2JqZWN0LWFzc2lnblwiKSxyPXJlcXVpcmUoXCJzY2hlZHVsZXJcIik7ZnVuY3Rpb24geShhKXtmb3IodmFyIGI9XCJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD1cIithLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWIrPVwiJmFyZ3NbXT1cIitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW2NdKTtyZXR1cm5cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIithK1wiOyB2aXNpdCBcIitiK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5cIn1pZighYWEpdGhyb3cgRXJyb3IoeSgyMjcpKTt2YXIgYmE9bmV3IFNldCxjYT17fTtmdW5jdGlvbiBkYShhLGIpe2VhKGEsYik7ZWEoYStcIkNhcHR1cmVcIixiKX1cbmZ1bmN0aW9uIGVhKGEsYil7Y2FbYV09Yjtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWJhLmFkZChiW2FdKX1cbnZhciBmYT0hKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudHx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksaGE9L15bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQvLGlhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXG5qYT17fSxrYT17fTtmdW5jdGlvbiBsYShhKXtpZihpYS5jYWxsKGthLGEpKXJldHVybiEwO2lmKGlhLmNhbGwoamEsYSkpcmV0dXJuITE7aWYoaGEudGVzdChhKSlyZXR1cm4ga2FbYV09ITA7amFbYV09ITA7cmV0dXJuITF9ZnVuY3Rpb24gbWEoYSxiLGMsZCl7aWYobnVsbCE9PWMmJjA9PT1jLnR5cGUpcmV0dXJuITE7c3dpdGNoKHR5cGVvZiBiKXtjYXNlIFwiZnVuY3Rpb25cIjpjYXNlIFwic3ltYm9sXCI6cmV0dXJuITA7Y2FzZSBcImJvb2xlYW5cIjppZihkKXJldHVybiExO2lmKG51bGwhPT1jKXJldHVybiFjLmFjY2VwdHNCb29sZWFuczthPWEudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpO3JldHVyblwiZGF0YS1cIiE9PWEmJlwiYXJpYS1cIiE9PWE7ZGVmYXVsdDpyZXR1cm4hMX19XG5mdW5jdGlvbiBuYShhLGIsYyxkKXtpZihudWxsPT09Ynx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBifHxtYShhLGIsYyxkKSlyZXR1cm4hMDtpZihkKXJldHVybiExO2lmKG51bGwhPT1jKXN3aXRjaChjLnR5cGUpe2Nhc2UgMzpyZXR1cm4hYjtjYXNlIDQ6cmV0dXJuITE9PT1iO2Nhc2UgNTpyZXR1cm4gaXNOYU4oYik7Y2FzZSA2OnJldHVybiBpc05hTihiKXx8MT5ifXJldHVybiExfWZ1bmN0aW9uIEIoYSxiLGMsZCxlLGYsZyl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PWJ8fDM9PT1ifHw0PT09Yjt0aGlzLmF0dHJpYnV0ZU5hbWU9ZDt0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1lO3RoaXMubXVzdFVzZVByb3BlcnR5PWM7dGhpcy5wcm9wZXJ0eU5hbWU9YTt0aGlzLnR5cGU9Yjt0aGlzLnNhbml0aXplVVJMPWY7dGhpcy5yZW1vdmVFbXB0eVN0cmluZz1nfXZhciBEPXt9O1xuXCJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMCwhMSxhLG51bGwsITEsITEpfSk7W1tcImFjY2VwdENoYXJzZXRcIixcImFjY2VwdC1jaGFyc2V0XCJdLFtcImNsYXNzTmFtZVwiLFwiY2xhc3NcIl0sW1wiaHRtbEZvclwiLFwiZm9yXCJdLFtcImh0dHBFcXVpdlwiLFwiaHR0cC1lcXVpdlwiXV0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hWzBdO0RbYl09bmV3IEIoYiwxLCExLGFbMV0sbnVsbCwhMSwhMSl9KTtbXCJjb250ZW50RWRpdGFibGVcIixcImRyYWdnYWJsZVwiLFwic3BlbGxDaGVja1wiLFwidmFsdWVcIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMiwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbltcImF1dG9SZXZlcnNlXCIsXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCIsXCJmb2N1c2FibGVcIixcInByZXNlcnZlQWxwaGFcIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMiwhMSxhLG51bGwsITEsITEpfSk7XCJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xzIGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGZvcm1Ob1ZhbGlkYXRlIGhpZGRlbiBsb29wIG5vTW9kdWxlIG5vVmFsaWRhdGUgb3BlbiBwbGF5c0lubGluZSByZWFkT25seSByZXF1aXJlZCByZXZlcnNlZCBzY29wZWQgc2VhbWxlc3MgaXRlbVNjb3BlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDMsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5bXCJjaGVja2VkXCIsXCJtdWx0aXBsZVwiLFwibXV0ZWRcIixcInNlbGVjdGVkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDMsITAsYSxudWxsLCExLCExKX0pO1tcImNhcHR1cmVcIixcImRvd25sb2FkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDQsITEsYSxudWxsLCExLCExKX0pO1tcImNvbHNcIixcInJvd3NcIixcInNpemVcIixcInNwYW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsNiwhMSxhLG51bGwsITEsITEpfSk7W1wicm93U3BhblwiLFwic3RhcnRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsNSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTt2YXIgb2E9L1tcXC06XShbYS16XSkvZztmdW5jdGlvbiBwYShhKXtyZXR1cm4gYVsxXS50b1VwcGVyQ2FzZSgpfVxuXCJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShvYSxcbnBhKTtEW2JdPW5ldyBCKGIsMSwhMSxhLG51bGwsITEsITEpfSk7XCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2Uob2EscGEpO0RbYl09bmV3IEIoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITEsITEpfSk7W1wieG1sOmJhc2VcIixcInhtbDpsYW5nXCIsXCJ4bWw6c3BhY2VcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2Uob2EscGEpO0RbYl09bmV3IEIoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIiwhMSwhMSl9KTtbXCJ0YWJJbmRleFwiLFwiY3Jvc3NPcmlnaW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbkQueGxpbmtIcmVmPW5ldyBCKFwieGxpbmtIcmVmXCIsMSwhMSxcInhsaW5rOmhyZWZcIixcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMCwhMSk7W1wic3JjXCIsXCJocmVmXCIsXCJhY3Rpb25cIixcImZvcm1BY3Rpb25cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMCwhMCl9KTtcbmZ1bmN0aW9uIHFhKGEsYixjLGQpe3ZhciBlPUQuaGFzT3duUHJvcGVydHkoYik/RFtiXTpudWxsO3ZhciBmPW51bGwhPT1lPzA9PT1lLnR5cGU6ZD8hMTohKDI8Yi5sZW5ndGgpfHxcIm9cIiE9PWJbMF0mJlwiT1wiIT09YlswXXx8XCJuXCIhPT1iWzFdJiZcIk5cIiE9PWJbMV0/ITE6ITA7Znx8KG5hKGIsYyxlLGQpJiYoYz1udWxsKSxkfHxudWxsPT09ZT9sYShiKSYmKG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOmEuc2V0QXR0cmlidXRlKGIsXCJcIitjKSk6ZS5tdXN0VXNlUHJvcGVydHk/YVtlLnByb3BlcnR5TmFtZV09bnVsbD09PWM/Mz09PWUudHlwZT8hMTpcIlwiOmM6KGI9ZS5hdHRyaWJ1dGVOYW1lLGQ9ZS5hdHRyaWJ1dGVOYW1lc3BhY2UsbnVsbD09PWM/YS5yZW1vdmVBdHRyaWJ1dGUoYik6KGU9ZS50eXBlLGM9Mz09PWV8fDQ9PT1lJiYhMD09PWM/XCJcIjpcIlwiK2MsZD9hLnNldEF0dHJpYnV0ZU5TKGQsYixjKTphLnNldEF0dHJpYnV0ZShiLGMpKSkpfVxudmFyIHJhPWFhLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELHNhPTYwMTAzLHRhPTYwMTA2LHVhPTYwMTA3LHdhPTYwMTA4LHhhPTYwMTE0LHlhPTYwMTA5LHphPTYwMTEwLEFhPTYwMTEyLEJhPTYwMTEzLENhPTYwMTIwLERhPTYwMTE1LEVhPTYwMTE2LEZhPTYwMTIxLEdhPTYwMTI4LEhhPTYwMTI5LElhPTYwMTMwLEphPTYwMTMxO1xuaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcil7dmFyIEU9U3ltYm9sLmZvcjtzYT1FKFwicmVhY3QuZWxlbWVudFwiKTt0YT1FKFwicmVhY3QucG9ydGFsXCIpO3VhPUUoXCJyZWFjdC5mcmFnbWVudFwiKTt3YT1FKFwicmVhY3Quc3RyaWN0X21vZGVcIik7eGE9RShcInJlYWN0LnByb2ZpbGVyXCIpO3lhPUUoXCJyZWFjdC5wcm92aWRlclwiKTt6YT1FKFwicmVhY3QuY29udGV4dFwiKTtBYT1FKFwicmVhY3QuZm9yd2FyZF9yZWZcIik7QmE9RShcInJlYWN0LnN1c3BlbnNlXCIpO0NhPUUoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpO0RhPUUoXCJyZWFjdC5tZW1vXCIpO0VhPUUoXCJyZWFjdC5sYXp5XCIpO0ZhPUUoXCJyZWFjdC5ibG9ja1wiKTtFKFwicmVhY3Quc2NvcGVcIik7R2E9RShcInJlYWN0Lm9wYXF1ZS5pZFwiKTtIYT1FKFwicmVhY3QuZGVidWdfdHJhY2VfbW9kZVwiKTtJYT1FKFwicmVhY3Qub2Zmc2NyZWVuXCIpO0phPUUoXCJyZWFjdC5sZWdhY3lfaGlkZGVuXCIpfVxudmFyIEthPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBMYShhKXtpZihudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBhKXJldHVybiBudWxsO2E9S2EmJmFbS2FdfHxhW1wiQEBpdGVyYXRvclwiXTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hOm51bGx9dmFyIE1hO2Z1bmN0aW9uIE5hKGEpe2lmKHZvaWQgMD09PU1hKXRyeXt0aHJvdyBFcnJvcigpO31jYXRjaChjKXt2YXIgYj1jLnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO01hPWImJmJbMV18fFwiXCJ9cmV0dXJuXCJcXG5cIitNYSthfXZhciBPYT0hMTtcbmZ1bmN0aW9uIFBhKGEsYil7aWYoIWF8fE9hKXJldHVyblwiXCI7T2E9ITA7dmFyIGM9RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dm9pZCAwO3RyeXtpZihiKWlmKGI9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO30sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIucHJvdG90eXBlLFwicHJvcHNcIix7c2V0OmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKTt9fSksXCJvYmplY3RcIj09PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmNvbnN0cnVjdCl7dHJ5e1JlZmxlY3QuY29uc3RydWN0KGIsW10pfWNhdGNoKGspe3ZhciBkPWt9UmVmbGVjdC5jb25zdHJ1Y3QoYSxbXSxiKX1lbHNle3RyeXtiLmNhbGwoKX1jYXRjaChrKXtkPWt9YS5jYWxsKGIucHJvdG90eXBlKX1lbHNle3RyeXt0aHJvdyBFcnJvcigpO31jYXRjaChrKXtkPWt9YSgpfX1jYXRjaChrKXtpZihrJiZkJiZcInN0cmluZ1wiPT09dHlwZW9mIGsuc3RhY2spe2Zvcih2YXIgZT1rLnN0YWNrLnNwbGl0KFwiXFxuXCIpLFxuZj1kLnN0YWNrLnNwbGl0KFwiXFxuXCIpLGc9ZS5sZW5ndGgtMSxoPWYubGVuZ3RoLTE7MTw9ZyYmMDw9aCYmZVtnXSE9PWZbaF07KWgtLTtmb3IoOzE8PWcmJjA8PWg7Zy0tLGgtLSlpZihlW2ddIT09ZltoXSl7aWYoMSE9PWd8fDEhPT1oKXtkbyBpZihnLS0saC0tLDA+aHx8ZVtnXSE9PWZbaF0pcmV0dXJuXCJcXG5cIitlW2ddLnJlcGxhY2UoXCIgYXQgbmV3IFwiLFwiIGF0IFwiKTt3aGlsZSgxPD1nJiYwPD1oKX1icmVha319fWZpbmFsbHl7T2E9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9Y31yZXR1cm4oYT1hP2EuZGlzcGxheU5hbWV8fGEubmFtZTpcIlwiKT9OYShhKTpcIlwifVxuZnVuY3Rpb24gUWEoYSl7c3dpdGNoKGEudGFnKXtjYXNlIDU6cmV0dXJuIE5hKGEudHlwZSk7Y2FzZSAxNjpyZXR1cm4gTmEoXCJMYXp5XCIpO2Nhc2UgMTM6cmV0dXJuIE5hKFwiU3VzcGVuc2VcIik7Y2FzZSAxOTpyZXR1cm4gTmEoXCJTdXNwZW5zZUxpc3RcIik7Y2FzZSAwOmNhc2UgMjpjYXNlIDE1OnJldHVybiBhPVBhKGEudHlwZSwhMSksYTtjYXNlIDExOnJldHVybiBhPVBhKGEudHlwZS5yZW5kZXIsITEpLGE7Y2FzZSAyMjpyZXR1cm4gYT1QYShhLnR5cGUuX3JlbmRlciwhMSksYTtjYXNlIDE6cmV0dXJuIGE9UGEoYS50eXBlLCEwKSxhO2RlZmF1bHQ6cmV0dXJuXCJcIn19XG5mdW5jdGlvbiBSYShhKXtpZihudWxsPT1hKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBhLmRpc3BsYXlOYW1lfHxhLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKXJldHVybiBhO3N3aXRjaChhKXtjYXNlIHVhOnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIHRhOnJldHVyblwiUG9ydGFsXCI7Y2FzZSB4YTpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB3YTpyZXR1cm5cIlN0cmljdE1vZGVcIjtjYXNlIEJhOnJldHVyblwiU3VzcGVuc2VcIjtjYXNlIENhOnJldHVyblwiU3VzcGVuc2VMaXN0XCJ9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIHphOnJldHVybihhLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuQ29uc3VtZXJcIjtjYXNlIHlhOnJldHVybihhLl9jb250ZXh0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuUHJvdmlkZXJcIjtjYXNlIEFhOnZhciBiPWEucmVuZGVyO2I9Yi5kaXNwbGF5TmFtZXx8Yi5uYW1lfHxcIlwiO1xucmV0dXJuIGEuZGlzcGxheU5hbWV8fChcIlwiIT09Yj9cIkZvcndhcmRSZWYoXCIrYitcIilcIjpcIkZvcndhcmRSZWZcIik7Y2FzZSBEYTpyZXR1cm4gUmEoYS50eXBlKTtjYXNlIEZhOnJldHVybiBSYShhLl9yZW5kZXIpO2Nhc2UgRWE6Yj1hLl9wYXlsb2FkO2E9YS5faW5pdDt0cnl7cmV0dXJuIFJhKGEoYikpfWNhdGNoKGMpe319cmV0dXJuIG51bGx9ZnVuY3Rpb24gU2EoYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlIFwiYm9vbGVhblwiOmNhc2UgXCJudW1iZXJcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJ1bmRlZmluZWRcIjpyZXR1cm4gYTtkZWZhdWx0OnJldHVyblwiXCJ9fWZ1bmN0aW9uIFRhKGEpe3ZhciBiPWEudHlwZTtyZXR1cm4oYT1hLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09YS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09Ynx8XCJyYWRpb1wiPT09Yil9XG5mdW5jdGlvbiBVYShhKXt2YXIgYj1UYShhKT9cImNoZWNrZWRcIjpcInZhbHVlXCIsYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEuY29uc3RydWN0b3IucHJvdG90eXBlLGIpLGQ9XCJcIithW2JdO2lmKCFhLmhhc093blByb3BlcnR5KGIpJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmdldCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuc2V0KXt2YXIgZT1jLmdldCxmPWMuc2V0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oYSl7ZD1cIlwiK2E7Zi5jYWxsKHRoaXMsYSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7ZW51bWVyYWJsZTpjLmVudW1lcmFibGV9KTtyZXR1cm57Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc2V0VmFsdWU6ZnVuY3Rpb24oYSl7ZD1cIlwiK2F9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2EuX3ZhbHVlVHJhY2tlcj1cbm51bGw7ZGVsZXRlIGFbYl19fX19ZnVuY3Rpb24gVmEoYSl7YS5fdmFsdWVUcmFja2VyfHwoYS5fdmFsdWVUcmFja2VyPVVhKGEpKX1mdW5jdGlvbiBXYShhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hLl92YWx1ZVRyYWNrZXI7aWYoIWIpcmV0dXJuITA7dmFyIGM9Yi5nZXRWYWx1ZSgpO3ZhciBkPVwiXCI7YSYmKGQ9VGEoYSk/YS5jaGVja2VkP1widHJ1ZVwiOlwiZmFsc2VcIjphLnZhbHVlKTthPWQ7cmV0dXJuIGEhPT1jPyhiLnNldFZhbHVlKGEpLCEwKTohMX1mdW5jdGlvbiBYYShhKXthPWF8fChcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCk7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBhKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYS5hY3RpdmVFbGVtZW50fHxhLmJvZHl9Y2F0Y2goYil7cmV0dXJuIGEuYm9keX19XG5mdW5jdGlvbiBZYShhLGIpe3ZhciBjPWIuY2hlY2tlZDtyZXR1cm4gbSh7fSxiLHtkZWZhdWx0Q2hlY2tlZDp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCx2YWx1ZTp2b2lkIDAsY2hlY2tlZDpudWxsIT1jP2M6YS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkfSl9ZnVuY3Rpb24gWmEoYSxiKXt2YXIgYz1udWxsPT1iLmRlZmF1bHRWYWx1ZT9cIlwiOmIuZGVmYXVsdFZhbHVlLGQ9bnVsbCE9Yi5jaGVja2VkP2IuY2hlY2tlZDpiLmRlZmF1bHRDaGVja2VkO2M9U2EobnVsbCE9Yi52YWx1ZT9iLnZhbHVlOmMpO2EuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbENoZWNrZWQ6ZCxpbml0aWFsVmFsdWU6Yyxjb250cm9sbGVkOlwiY2hlY2tib3hcIj09PWIudHlwZXx8XCJyYWRpb1wiPT09Yi50eXBlP251bGwhPWIuY2hlY2tlZDpudWxsIT1iLnZhbHVlfX1mdW5jdGlvbiAkYShhLGIpe2I9Yi5jaGVja2VkO251bGwhPWImJnFhKGEsXCJjaGVja2VkXCIsYiwhMSl9XG5mdW5jdGlvbiBhYihhLGIpeyRhKGEsYik7dmFyIGM9U2EoYi52YWx1ZSksZD1iLnR5cGU7aWYobnVsbCE9YylpZihcIm51bWJlclwiPT09ZCl7aWYoMD09PWMmJlwiXCI9PT1hLnZhbHVlfHxhLnZhbHVlIT1jKWEudmFsdWU9XCJcIitjfWVsc2UgYS52YWx1ZSE9PVwiXCIrYyYmKGEudmFsdWU9XCJcIitjKTtlbHNlIGlmKFwic3VibWl0XCI9PT1kfHxcInJlc2V0XCI9PT1kKXthLnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpO3JldHVybn1iLmhhc093blByb3BlcnR5KFwidmFsdWVcIik/YmIoYSxiLnR5cGUsYyk6Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSYmYmIoYSxiLnR5cGUsU2EoYi5kZWZhdWx0VmFsdWUpKTtudWxsPT1iLmNoZWNrZWQmJm51bGwhPWIuZGVmYXVsdENoZWNrZWQmJihhLmRlZmF1bHRDaGVja2VkPSEhYi5kZWZhdWx0Q2hlY2tlZCl9XG5mdW5jdGlvbiBjYihhLGIsYyl7aWYoYi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpfHxiLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpKXt2YXIgZD1iLnR5cGU7aWYoIShcInN1Ym1pdFwiIT09ZCYmXCJyZXNldFwiIT09ZHx8dm9pZCAwIT09Yi52YWx1ZSYmbnVsbCE9PWIudmFsdWUpKXJldHVybjtiPVwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTtjfHxiPT09YS52YWx1ZXx8KGEudmFsdWU9Yik7YS5kZWZhdWx0VmFsdWU9Yn1jPWEubmFtZTtcIlwiIT09YyYmKGEubmFtZT1cIlwiKTthLmRlZmF1bHRDaGVja2VkPSEhYS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkO1wiXCIhPT1jJiYoYS5uYW1lPWMpfVxuZnVuY3Rpb24gYmIoYSxiLGMpe2lmKFwibnVtYmVyXCIhPT1ifHxYYShhLm93bmVyRG9jdW1lbnQpIT09YSludWxsPT1jP2EuZGVmYXVsdFZhbHVlPVwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTphLmRlZmF1bHRWYWx1ZSE9PVwiXCIrYyYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrYyl9ZnVuY3Rpb24gZGIoYSl7dmFyIGI9XCJcIjthYS5DaGlsZHJlbi5mb3JFYWNoKGEsZnVuY3Rpb24oYSl7bnVsbCE9YSYmKGIrPWEpfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gZWIoYSxiKXthPW0oe2NoaWxkcmVuOnZvaWQgMH0sYik7aWYoYj1kYihiLmNoaWxkcmVuKSlhLmNoaWxkcmVuPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBmYihhLGIsYyxkKXthPWEub3B0aW9ucztpZihiKXtiPXt9O2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKWJbXCIkXCIrY1tlXV09ITA7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKyllPWIuaGFzT3duUHJvcGVydHkoXCIkXCIrYVtjXS52YWx1ZSksYVtjXS5zZWxlY3RlZCE9PWUmJihhW2NdLnNlbGVjdGVkPWUpLGUmJmQmJihhW2NdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtjPVwiXCIrU2EoYyk7Yj1udWxsO2ZvcihlPTA7ZTxhLmxlbmd0aDtlKyspe2lmKGFbZV0udmFsdWU9PT1jKXthW2VdLnNlbGVjdGVkPSEwO2QmJihhW2VdLmRlZmF1bHRTZWxlY3RlZD0hMCk7cmV0dXJufW51bGwhPT1ifHxhW2VdLmRpc2FibGVkfHwoYj1hW2VdKX1udWxsIT09YiYmKGIuc2VsZWN0ZWQ9ITApfX1cbmZ1bmN0aW9uIGdiKGEsYil7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcih5KDkxKSk7cmV0dXJuIG0oe30sYix7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlfSl9ZnVuY3Rpb24gaGIoYSxiKXt2YXIgYz1iLnZhbHVlO2lmKG51bGw9PWMpe2M9Yi5jaGlsZHJlbjtiPWIuZGVmYXVsdFZhbHVlO2lmKG51bGwhPWMpe2lmKG51bGwhPWIpdGhyb3cgRXJyb3IoeSg5MikpO2lmKEFycmF5LmlzQXJyYXkoYykpe2lmKCEoMT49Yy5sZW5ndGgpKXRocm93IEVycm9yKHkoOTMpKTtjPWNbMF19Yj1jfW51bGw9PWImJihiPVwiXCIpO2M9Yn1hLl93cmFwcGVyU3RhdGU9e2luaXRpYWxWYWx1ZTpTYShjKX19XG5mdW5jdGlvbiBpYihhLGIpe3ZhciBjPVNhKGIudmFsdWUpLGQ9U2EoYi5kZWZhdWx0VmFsdWUpO251bGwhPWMmJihjPVwiXCIrYyxjIT09YS52YWx1ZSYmKGEudmFsdWU9YyksbnVsbD09Yi5kZWZhdWx0VmFsdWUmJmEuZGVmYXVsdFZhbHVlIT09YyYmKGEuZGVmYXVsdFZhbHVlPWMpKTtudWxsIT1kJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitkKX1mdW5jdGlvbiBqYihhKXt2YXIgYj1hLnRleHRDb250ZW50O2I9PT1hLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlJiZcIlwiIT09YiYmbnVsbCE9PWImJihhLnZhbHVlPWIpfXZhciBrYj17aHRtbDpcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIixtYXRobWw6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCIsc3ZnOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn07XG5mdW5jdGlvbiBsYihhKXtzd2l0Y2goYSl7Y2FzZSBcInN2Z1wiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtjYXNlIFwibWF0aFwiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiO2RlZmF1bHQ6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCJ9fWZ1bmN0aW9uIG1iKGEsYil7cmV0dXJuIG51bGw9PWF8fFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPT09YT9sYihiKTpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI9PT1hJiZcImZvcmVpZ25PYmplY3RcIj09PWI/XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI6YX1cbnZhciBuYixvYj1mdW5jdGlvbihhKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihiLGMsZCxlKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBhKGIsYyxkLGUpfSl9OmF9KGZ1bmN0aW9uKGEsYil7aWYoYS5uYW1lc3BhY2VVUkkhPT1rYi5zdmd8fFwiaW5uZXJIVE1MXCJpbiBhKWEuaW5uZXJIVE1MPWI7ZWxzZXtuYj1uYnx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtuYi5pbm5lckhUTUw9XCI8c3ZnPlwiK2IudmFsdWVPZigpLnRvU3RyaW5nKCkrXCI8L3N2Zz5cIjtmb3IoYj1uYi5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7Yi5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGIuZmlyc3RDaGlsZCl9fSk7XG5mdW5jdGlvbiBwYihhLGIpe2lmKGIpe3ZhciBjPWEuZmlyc3RDaGlsZDtpZihjJiZjPT09YS5sYXN0Q2hpbGQmJjM9PT1jLm5vZGVUeXBlKXtjLm5vZGVWYWx1ZT1iO3JldHVybn19YS50ZXh0Q29udGVudD1ifVxudmFyIHFiPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxcbmZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHJiPVtcIldlYmtpdFwiLFwibXNcIixcIk1velwiLFwiT1wiXTtPYmplY3Qua2V5cyhxYikuZm9yRWFjaChmdW5jdGlvbihhKXtyYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2I9YithLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEpO3FiW2JdPXFiW2FdfSl9KTtmdW5jdGlvbiBzYihhLGIsYyl7cmV0dXJuIG51bGw9PWJ8fFwiYm9vbGVhblwiPT09dHlwZW9mIGJ8fFwiXCI9PT1iP1wiXCI6Y3x8XCJudW1iZXJcIiE9PXR5cGVvZiBifHwwPT09Ynx8cWIuaGFzT3duUHJvcGVydHkoYSkmJnFiW2FdPyhcIlwiK2IpLnRyaW0oKTpiK1wicHhcIn1cbmZ1bmN0aW9uIHRiKGEsYil7YT1hLnN0eWxlO2Zvcih2YXIgYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPTA9PT1jLmluZGV4T2YoXCItLVwiKSxlPXNiKGMsYltjXSxkKTtcImZsb2F0XCI9PT1jJiYoYz1cImNzc0Zsb2F0XCIpO2Q/YS5zZXRQcm9wZXJ0eShjLGUpOmFbY109ZX19dmFyIHViPW0oe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7XG5mdW5jdGlvbiB2YihhLGIpe2lmKGIpe2lmKHViW2FdJiYobnVsbCE9Yi5jaGlsZHJlbnx8bnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoeSgxMzcsYSkpO2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpe2lmKG51bGwhPWIuY2hpbGRyZW4pdGhyb3cgRXJyb3IoeSg2MCkpO2lmKCEoXCJvYmplY3RcIj09PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZcIl9faHRtbFwiaW4gYi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoeSg2MSkpO31pZihudWxsIT1iLnN0eWxlJiZcIm9iamVjdFwiIT09dHlwZW9mIGIuc3R5bGUpdGhyb3cgRXJyb3IoeSg2MikpO319XG5mdW5jdGlvbiB3YihhLGIpe2lmKC0xPT09YS5pbmRleE9mKFwiLVwiKSlyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGIuaXM7c3dpdGNoKGEpe2Nhc2UgXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2UgXCJjb2xvci1wcm9maWxlXCI6Y2FzZSBcImZvbnQtZmFjZVwiOmNhc2UgXCJmb250LWZhY2Utc3JjXCI6Y2FzZSBcImZvbnQtZmFjZS11cmlcIjpjYXNlIFwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2UgXCJmb250LWZhY2UtbmFtZVwiOmNhc2UgXCJtaXNzaW5nLWdseXBoXCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19ZnVuY3Rpb24geGIoYSl7YT1hLnRhcmdldHx8YS5zcmNFbGVtZW50fHx3aW5kb3c7YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGE9YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCk7cmV0dXJuIDM9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphfXZhciB5Yj1udWxsLHpiPW51bGwsQWI9bnVsbDtcbmZ1bmN0aW9uIEJiKGEpe2lmKGE9Q2IoYSkpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB5Yil0aHJvdyBFcnJvcih5KDI4MCkpO3ZhciBiPWEuc3RhdGVOb2RlO2ImJihiPURiKGIpLHliKGEuc3RhdGVOb2RlLGEudHlwZSxiKSl9fWZ1bmN0aW9uIEViKGEpe3piP0FiP0FiLnB1c2goYSk6QWI9W2FdOnpiPWF9ZnVuY3Rpb24gRmIoKXtpZih6Yil7dmFyIGE9emIsYj1BYjtBYj16Yj1udWxsO0JiKGEpO2lmKGIpZm9yKGE9MDthPGIubGVuZ3RoO2ErKylCYihiW2FdKX19ZnVuY3Rpb24gR2IoYSxiKXtyZXR1cm4gYShiKX1mdW5jdGlvbiBIYihhLGIsYyxkLGUpe3JldHVybiBhKGIsYyxkLGUpfWZ1bmN0aW9uIEliKCl7fXZhciBKYj1HYixLYj0hMSxMYj0hMTtmdW5jdGlvbiBNYigpe2lmKG51bGwhPT16Ynx8bnVsbCE9PUFiKUliKCksRmIoKX1cbmZ1bmN0aW9uIE5iKGEsYixjKXtpZihMYilyZXR1cm4gYShiLGMpO0xiPSEwO3RyeXtyZXR1cm4gSmIoYSxiLGMpfWZpbmFsbHl7TGI9ITEsTWIoKX19XG5mdW5jdGlvbiBPYihhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO2lmKG51bGw9PT1jKXJldHVybiBudWxsO3ZhciBkPURiKGMpO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2M9ZFtiXTthOnN3aXRjaChiKXtjYXNlIFwib25DbGlja1wiOmNhc2UgXCJvbkNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZSBcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VEb3duXCI6Y2FzZSBcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlTW92ZVwiOmNhc2UgXCJvbk1vdXNlTW92ZUNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZVVwXCI6Y2FzZSBcIm9uTW91c2VVcENhcHR1cmVcIjpjYXNlIFwib25Nb3VzZUVudGVyXCI6KGQ9IWQuZGlzYWJsZWQpfHwoYT1hLnR5cGUsZD0hKFwiYnV0dG9uXCI9PT1hfHxcImlucHV0XCI9PT1hfHxcInNlbGVjdFwiPT09YXx8XCJ0ZXh0YXJlYVwiPT09YSkpO2E9IWQ7YnJlYWsgYTtkZWZhdWx0OmE9ITF9aWYoYSlyZXR1cm4gbnVsbDtpZihjJiZcImZ1bmN0aW9uXCIhPT1cbnR5cGVvZiBjKXRocm93IEVycm9yKHkoMjMxLGIsdHlwZW9mIGMpKTtyZXR1cm4gY312YXIgUGI9ITE7aWYoZmEpdHJ5e3ZhciBRYj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUWIsXCJwYXNzaXZlXCIse2dldDpmdW5jdGlvbigpe1BiPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLFFiLFFiKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRlc3RcIixRYixRYil9Y2F0Y2goYSl7UGI9ITF9ZnVuY3Rpb24gUmIoYSxiLGMsZCxlLGYsZyxoLGspe3ZhciBsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7Yi5hcHBseShjLGwpfWNhdGNoKG4pe3RoaXMub25FcnJvcihuKX19dmFyIFNiPSExLFRiPW51bGwsVWI9ITEsVmI9bnVsbCxXYj17b25FcnJvcjpmdW5jdGlvbihhKXtTYj0hMDtUYj1hfX07ZnVuY3Rpb24gWGIoYSxiLGMsZCxlLGYsZyxoLGspe1NiPSExO1RiPW51bGw7UmIuYXBwbHkoV2IsYXJndW1lbnRzKX1cbmZ1bmN0aW9uIFliKGEsYixjLGQsZSxmLGcsaCxrKXtYYi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoU2Ipe2lmKFNiKXt2YXIgbD1UYjtTYj0hMTtUYj1udWxsfWVsc2UgdGhyb3cgRXJyb3IoeSgxOTgpKTtVYnx8KFViPSEwLFZiPWwpfX1mdW5jdGlvbiBaYihhKXt2YXIgYj1hLGM9YTtpZihhLmFsdGVybmF0ZSlmb3IoO2IucmV0dXJuOyliPWIucmV0dXJuO2Vsc2V7YT1iO2RvIGI9YSwwIT09KGIuZmxhZ3MmMTAyNikmJihjPWIucmV0dXJuKSxhPWIucmV0dXJuO3doaWxlKGEpfXJldHVybiAzPT09Yi50YWc/YzpudWxsfWZ1bmN0aW9uICRiKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09YiYmKGE9YS5hbHRlcm5hdGUsbnVsbCE9PWEmJihiPWEubWVtb2l6ZWRTdGF0ZSkpO2lmKG51bGwhPT1iKXJldHVybiBiLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYWMoYSl7aWYoWmIoYSkhPT1hKXRocm93IEVycm9yKHkoMTg4KSk7fVxuZnVuY3Rpb24gYmMoYSl7dmFyIGI9YS5hbHRlcm5hdGU7aWYoIWIpe2I9WmIoYSk7aWYobnVsbD09PWIpdGhyb3cgRXJyb3IoeSgxODgpKTtyZXR1cm4gYiE9PWE/bnVsbDphfWZvcih2YXIgYz1hLGQ9Yjs7KXt2YXIgZT1jLnJldHVybjtpZihudWxsPT09ZSlicmVhazt2YXIgZj1lLmFsdGVybmF0ZTtpZihudWxsPT09Zil7ZD1lLnJldHVybjtpZihudWxsIT09ZCl7Yz1kO2NvbnRpbnVlfWJyZWFrfWlmKGUuY2hpbGQ9PT1mLmNoaWxkKXtmb3IoZj1lLmNoaWxkO2Y7KXtpZihmPT09YylyZXR1cm4gYWMoZSksYTtpZihmPT09ZClyZXR1cm4gYWMoZSksYjtmPWYuc2libGluZ310aHJvdyBFcnJvcih5KDE4OCkpO31pZihjLnJldHVybiE9PWQucmV0dXJuKWM9ZSxkPWY7ZWxzZXtmb3IodmFyIGc9ITEsaD1lLmNoaWxkO2g7KXtpZihoPT09Yyl7Zz0hMDtjPWU7ZD1mO2JyZWFrfWlmKGg9PT1kKXtnPSEwO2Q9ZTtjPWY7YnJlYWt9aD1oLnNpYmxpbmd9aWYoIWcpe2ZvcihoPWYuY2hpbGQ7aDspe2lmKGg9PT1cbmMpe2c9ITA7Yz1mO2Q9ZTticmVha31pZihoPT09ZCl7Zz0hMDtkPWY7Yz1lO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXRocm93IEVycm9yKHkoMTg5KSk7fX1pZihjLmFsdGVybmF0ZSE9PWQpdGhyb3cgRXJyb3IoeSgxOTApKTt9aWYoMyE9PWMudGFnKXRocm93IEVycm9yKHkoMTg4KSk7cmV0dXJuIGMuc3RhdGVOb2RlLmN1cnJlbnQ9PT1jP2E6Yn1mdW5jdGlvbiBjYyhhKXthPWJjKGEpO2lmKCFhKXJldHVybiBudWxsO2Zvcih2YXIgYj1hOzspe2lmKDU9PT1iLnRhZ3x8Nj09PWIudGFnKXJldHVybiBiO2lmKGIuY2hpbGQpYi5jaGlsZC5yZXR1cm49YixiPWIuY2hpbGQ7ZWxzZXtpZihiPT09YSlicmVhaztmb3IoOyFiLnNpYmxpbmc7KXtpZighYi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm47Yj1iLnNpYmxpbmd9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gZGMoYSxiKXtmb3IodmFyIGM9YS5hbHRlcm5hdGU7bnVsbCE9PWI7KXtpZihiPT09YXx8Yj09PWMpcmV0dXJuITA7Yj1iLnJldHVybn1yZXR1cm4hMX12YXIgZWMsZmMsZ2MsaGMsaWM9ITEsamM9W10sa2M9bnVsbCxsYz1udWxsLG1jPW51bGwsbmM9bmV3IE1hcCxvYz1uZXcgTWFwLHBjPVtdLHFjPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0IHN1Ym1pdFwiLnNwbGl0KFwiIFwiKTtcbmZ1bmN0aW9uIHJjKGEsYixjLGQsZSl7cmV0dXJue2Jsb2NrZWRPbjphLGRvbUV2ZW50TmFtZTpiLGV2ZW50U3lzdGVtRmxhZ3M6Y3wxNixuYXRpdmVFdmVudDplLHRhcmdldENvbnRhaW5lcnM6W2RdfX1mdW5jdGlvbiBzYyhhLGIpe3N3aXRjaChhKXtjYXNlIFwiZm9jdXNpblwiOmNhc2UgXCJmb2N1c291dFwiOmtjPW51bGw7YnJlYWs7Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnbGVhdmVcIjpsYz1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwibW91c2VvdXRcIjptYz1udWxsO2JyZWFrO2Nhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJwb2ludGVyb3V0XCI6bmMuZGVsZXRlKGIucG9pbnRlcklkKTticmVhaztjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6b2MuZGVsZXRlKGIucG9pbnRlcklkKX19XG5mdW5jdGlvbiB0YyhhLGIsYyxkLGUsZil7aWYobnVsbD09PWF8fGEubmF0aXZlRXZlbnQhPT1mKXJldHVybiBhPXJjKGIsYyxkLGUsZiksbnVsbCE9PWImJihiPUNiKGIpLG51bGwhPT1iJiZmYyhiKSksYTthLmV2ZW50U3lzdGVtRmxhZ3N8PWQ7Yj1hLnRhcmdldENvbnRhaW5lcnM7bnVsbCE9PWUmJi0xPT09Yi5pbmRleE9mKGUpJiZiLnB1c2goZSk7cmV0dXJuIGF9XG5mdW5jdGlvbiB1YyhhLGIsYyxkLGUpe3N3aXRjaChiKXtjYXNlIFwiZm9jdXNpblwiOnJldHVybiBrYz10YyhrYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJkcmFnZW50ZXJcIjpyZXR1cm4gbGM9dGMobGMsYSxiLGMsZCxlKSwhMDtjYXNlIFwibW91c2VvdmVyXCI6cmV0dXJuIG1jPXRjKG1jLGEsYixjLGQsZSksITA7Y2FzZSBcInBvaW50ZXJvdmVyXCI6dmFyIGY9ZS5wb2ludGVySWQ7bmMuc2V0KGYsdGMobmMuZ2V0KGYpfHxudWxsLGEsYixjLGQsZSkpO3JldHVybiEwO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOnJldHVybiBmPWUucG9pbnRlcklkLG9jLnNldChmLHRjKG9jLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKSwhMH1yZXR1cm4hMX1cbmZ1bmN0aW9uIHZjKGEpe3ZhciBiPXdjKGEudGFyZ2V0KTtpZihudWxsIT09Yil7dmFyIGM9WmIoYik7aWYobnVsbCE9PWMpaWYoYj1jLnRhZywxMz09PWIpe2lmKGI9JGIoYyksbnVsbCE9PWIpe2EuYmxvY2tlZE9uPWI7aGMoYS5sYW5lUHJpb3JpdHksZnVuY3Rpb24oKXtyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eShhLnByaW9yaXR5LGZ1bmN0aW9uKCl7Z2MoYyl9KX0pO3JldHVybn19ZWxzZSBpZigzPT09YiYmYy5zdGF0ZU5vZGUuaHlkcmF0ZSl7YS5ibG9ja2VkT249Mz09PWMudGFnP2Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtyZXR1cm59fWEuYmxvY2tlZE9uPW51bGx9XG5mdW5jdGlvbiB4YyhhKXtpZihudWxsIT09YS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciBiPWEudGFyZ2V0Q29udGFpbmVyczswPGIubGVuZ3RoOyl7dmFyIGM9eWMoYS5kb21FdmVudE5hbWUsYS5ldmVudFN5c3RlbUZsYWdzLGJbMF0sYS5uYXRpdmVFdmVudCk7aWYobnVsbCE9PWMpcmV0dXJuIGI9Q2IoYyksbnVsbCE9PWImJmZjKGIpLGEuYmxvY2tlZE9uPWMsITE7Yi5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIHpjKGEsYixjKXt4YyhhKSYmYy5kZWxldGUoYil9XG5mdW5jdGlvbiBBYygpe2ZvcihpYz0hMTswPGpjLmxlbmd0aDspe3ZhciBhPWpjWzBdO2lmKG51bGwhPT1hLmJsb2NrZWRPbil7YT1DYihhLmJsb2NrZWRPbik7bnVsbCE9PWEmJmVjKGEpO2JyZWFrfWZvcih2YXIgYj1hLnRhcmdldENvbnRhaW5lcnM7MDxiLmxlbmd0aDspe3ZhciBjPXljKGEuZG9tRXZlbnROYW1lLGEuZXZlbnRTeXN0ZW1GbGFncyxiWzBdLGEubmF0aXZlRXZlbnQpO2lmKG51bGwhPT1jKXthLmJsb2NrZWRPbj1jO2JyZWFrfWIuc2hpZnQoKX1udWxsPT09YS5ibG9ja2VkT24mJmpjLnNoaWZ0KCl9bnVsbCE9PWtjJiZ4YyhrYykmJihrYz1udWxsKTtudWxsIT09bGMmJnhjKGxjKSYmKGxjPW51bGwpO251bGwhPT1tYyYmeGMobWMpJiYobWM9bnVsbCk7bmMuZm9yRWFjaCh6Yyk7b2MuZm9yRWFjaCh6Yyl9XG5mdW5jdGlvbiBCYyhhLGIpe2EuYmxvY2tlZE9uPT09YiYmKGEuYmxvY2tlZE9uPW51bGwsaWN8fChpYz0hMCxyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxBYykpKX1cbmZ1bmN0aW9uIENjKGEpe2Z1bmN0aW9uIGIoYil7cmV0dXJuIEJjKGIsYSl9aWYoMDxqYy5sZW5ndGgpe0JjKGpjWzBdLGEpO2Zvcih2YXIgYz0xO2M8amMubGVuZ3RoO2MrKyl7dmFyIGQ9amNbY107ZC5ibG9ja2VkT249PT1hJiYoZC5ibG9ja2VkT249bnVsbCl9fW51bGwhPT1rYyYmQmMoa2MsYSk7bnVsbCE9PWxjJiZCYyhsYyxhKTtudWxsIT09bWMmJkJjKG1jLGEpO25jLmZvckVhY2goYik7b2MuZm9yRWFjaChiKTtmb3IoYz0wO2M8cGMubGVuZ3RoO2MrKylkPXBjW2NdLGQuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxwYy5sZW5ndGgmJihjPXBjWzBdLG51bGw9PT1jLmJsb2NrZWRPbik7KXZjKGMpLG51bGw9PT1jLmJsb2NrZWRPbiYmcGMuc2hpZnQoKX1cbmZ1bmN0aW9uIERjKGEsYil7dmFyIGM9e307Y1thLnRvTG93ZXJDYXNlKCldPWIudG9Mb3dlckNhc2UoKTtjW1wiV2Via2l0XCIrYV09XCJ3ZWJraXRcIitiO2NbXCJNb3pcIithXT1cIm1velwiK2I7cmV0dXJuIGN9dmFyIEVjPXthbmltYXRpb25lbmQ6RGMoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246RGMoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpEYyhcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbmVuZDpEYyhcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25FbmRcIil9LEZjPXt9LEdjPXt9O1xuZmEmJihHYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlLFwiQW5pbWF0aW9uRXZlbnRcImluIHdpbmRvd3x8KGRlbGV0ZSBFYy5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBFYy5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBFYy5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLFwiVHJhbnNpdGlvbkV2ZW50XCJpbiB3aW5kb3d8fGRlbGV0ZSBFYy50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO2Z1bmN0aW9uIEhjKGEpe2lmKEZjW2FdKXJldHVybiBGY1thXTtpZighRWNbYV0pcmV0dXJuIGE7dmFyIGI9RWNbYV0sYztmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmMgaW4gR2MpcmV0dXJuIEZjW2FdPWJbY107cmV0dXJuIGF9XG52YXIgSWM9SGMoXCJhbmltYXRpb25lbmRcIiksSmM9SGMoXCJhbmltYXRpb25pdGVyYXRpb25cIiksS2M9SGMoXCJhbmltYXRpb25zdGFydFwiKSxMYz1IYyhcInRyYW5zaXRpb25lbmRcIiksTWM9bmV3IE1hcCxOYz1uZXcgTWFwLE9jPVtcImFib3J0XCIsXCJhYm9ydFwiLEljLFwiYW5pbWF0aW9uRW5kXCIsSmMsXCJhbmltYXRpb25JdGVyYXRpb25cIixLYyxcImFuaW1hdGlvblN0YXJ0XCIsXCJjYW5wbGF5XCIsXCJjYW5QbGF5XCIsXCJjYW5wbGF5dGhyb3VnaFwiLFwiY2FuUGxheVRocm91Z2hcIixcImR1cmF0aW9uY2hhbmdlXCIsXCJkdXJhdGlvbkNoYW5nZVwiLFwiZW1wdGllZFwiLFwiZW1wdGllZFwiLFwiZW5jcnlwdGVkXCIsXCJlbmNyeXB0ZWRcIixcImVuZGVkXCIsXCJlbmRlZFwiLFwiZXJyb3JcIixcImVycm9yXCIsXCJnb3Rwb2ludGVyY2FwdHVyZVwiLFwiZ290UG9pbnRlckNhcHR1cmVcIixcImxvYWRcIixcImxvYWRcIixcImxvYWRlZGRhdGFcIixcImxvYWRlZERhdGFcIixcImxvYWRlZG1ldGFkYXRhXCIsXCJsb2FkZWRNZXRhZGF0YVwiLFwibG9hZHN0YXJ0XCIsXCJsb2FkU3RhcnRcIixcblwibG9zdHBvaW50ZXJjYXB0dXJlXCIsXCJsb3N0UG9pbnRlckNhcHR1cmVcIixcInBsYXlpbmdcIixcInBsYXlpbmdcIixcInByb2dyZXNzXCIsXCJwcm9ncmVzc1wiLFwic2Vla2luZ1wiLFwic2Vla2luZ1wiLFwic3RhbGxlZFwiLFwic3RhbGxlZFwiLFwic3VzcGVuZFwiLFwic3VzcGVuZFwiLFwidGltZXVwZGF0ZVwiLFwidGltZVVwZGF0ZVwiLExjLFwidHJhbnNpdGlvbkVuZFwiLFwid2FpdGluZ1wiLFwid2FpdGluZ1wiXTtmdW5jdGlvbiBQYyhhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7Yys9Mil7dmFyIGQ9YVtjXSxlPWFbYysxXTtlPVwib25cIisoZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSkpO05jLnNldChkLGIpO01jLnNldChkLGUpO2RhKGUsW2RdKX19dmFyIFFjPXIudW5zdGFibGVfbm93O1FjKCk7dmFyIEY9ODtcbmZ1bmN0aW9uIFJjKGEpe2lmKDAhPT0oMSZhKSlyZXR1cm4gRj0xNSwxO2lmKDAhPT0oMiZhKSlyZXR1cm4gRj0xNCwyO2lmKDAhPT0oNCZhKSlyZXR1cm4gRj0xMyw0O3ZhciBiPTI0JmE7aWYoMCE9PWIpcmV0dXJuIEY9MTIsYjtpZigwIT09KGEmMzIpKXJldHVybiBGPTExLDMyO2I9MTkyJmE7aWYoMCE9PWIpcmV0dXJuIEY9MTAsYjtpZigwIT09KGEmMjU2KSlyZXR1cm4gRj05LDI1NjtiPTM1ODQmYTtpZigwIT09YilyZXR1cm4gRj04LGI7aWYoMCE9PShhJjQwOTYpKXJldHVybiBGPTcsNDA5NjtiPTQxODYxMTImYTtpZigwIT09YilyZXR1cm4gRj02LGI7Yj02MjkxNDU2MCZhO2lmKDAhPT1iKXJldHVybiBGPTUsYjtpZihhJjY3MTA4ODY0KXJldHVybiBGPTQsNjcxMDg4NjQ7aWYoMCE9PShhJjEzNDIxNzcyOCkpcmV0dXJuIEY9MywxMzQyMTc3Mjg7Yj04MDUzMDYzNjgmYTtpZigwIT09YilyZXR1cm4gRj0yLGI7aWYoMCE9PSgxMDczNzQxODI0JmEpKXJldHVybiBGPTEsMTA3Mzc0MTgyNDtcbkY9ODtyZXR1cm4gYX1mdW5jdGlvbiBTYyhhKXtzd2l0Y2goYSl7Y2FzZSA5OTpyZXR1cm4gMTU7Y2FzZSA5ODpyZXR1cm4gMTA7Y2FzZSA5NzpjYXNlIDk2OnJldHVybiA4O2Nhc2UgOTU6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gVGMoYSl7c3dpdGNoKGEpe2Nhc2UgMTU6Y2FzZSAxNDpyZXR1cm4gOTk7Y2FzZSAxMzpjYXNlIDEyOmNhc2UgMTE6Y2FzZSAxMDpyZXR1cm4gOTg7Y2FzZSA5OmNhc2UgODpjYXNlIDc6Y2FzZSA2OmNhc2UgNDpjYXNlIDU6cmV0dXJuIDk3O2Nhc2UgMzpjYXNlIDI6Y2FzZSAxOnJldHVybiA5NTtjYXNlIDA6cmV0dXJuIDkwO2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzNTgsYSkpO319XG5mdW5jdGlvbiBVYyhhLGIpe3ZhciBjPWEucGVuZGluZ0xhbmVzO2lmKDA9PT1jKXJldHVybiBGPTA7dmFyIGQ9MCxlPTAsZj1hLmV4cGlyZWRMYW5lcyxnPWEuc3VzcGVuZGVkTGFuZXMsaD1hLnBpbmdlZExhbmVzO2lmKDAhPT1mKWQ9ZixlPUY9MTU7ZWxzZSBpZihmPWMmMTM0MjE3NzI3LDAhPT1mKXt2YXIgaz1mJn5nOzAhPT1rPyhkPVJjKGspLGU9Rik6KGgmPWYsMCE9PWgmJihkPVJjKGgpLGU9RikpfWVsc2UgZj1jJn5nLDAhPT1mPyhkPVJjKGYpLGU9Rik6MCE9PWgmJihkPVJjKGgpLGU9Rik7aWYoMD09PWQpcmV0dXJuIDA7ZD0zMS1WYyhkKTtkPWMmKCgwPmQ/MDoxPDxkKTw8MSktMTtpZigwIT09YiYmYiE9PWQmJjA9PT0oYiZnKSl7UmMoYik7aWYoZTw9RilyZXR1cm4gYjtGPWV9Yj1hLmVudGFuZ2xlZExhbmVzO2lmKDAhPT1iKWZvcihhPWEuZW50YW5nbGVtZW50cyxiJj1kOzA8YjspYz0zMS1WYyhiKSxlPTE8PGMsZHw9YVtjXSxiJj1+ZTtyZXR1cm4gZH1cbmZ1bmN0aW9uIFdjKGEpe2E9YS5wZW5kaW5nTGFuZXMmLTEwNzM3NDE4MjU7cmV0dXJuIDAhPT1hP2E6YSYxMDczNzQxODI0PzEwNzM3NDE4MjQ6MH1mdW5jdGlvbiBYYyhhLGIpe3N3aXRjaChhKXtjYXNlIDE1OnJldHVybiAxO2Nhc2UgMTQ6cmV0dXJuIDI7Y2FzZSAxMjpyZXR1cm4gYT1ZYygyNCZ+YiksMD09PWE/WGMoMTAsYik6YTtjYXNlIDEwOnJldHVybiBhPVljKDE5MiZ+YiksMD09PWE/WGMoOCxiKTphO2Nhc2UgODpyZXR1cm4gYT1ZYygzNTg0Jn5iKSwwPT09YSYmKGE9WWMoNDE4NjExMiZ+YiksMD09PWEmJihhPTUxMikpLGE7Y2FzZSAyOnJldHVybiBiPVljKDgwNTMwNjM2OCZ+YiksMD09PWImJihiPTI2ODQzNTQ1NiksYn10aHJvdyBFcnJvcih5KDM1OCxhKSk7fWZ1bmN0aW9uIFljKGEpe3JldHVybiBhJi1hfWZ1bmN0aW9uIFpjKGEpe2Zvcih2YXIgYj1bXSxjPTA7MzE+YztjKyspYi5wdXNoKGEpO3JldHVybiBifVxuZnVuY3Rpb24gJGMoYSxiLGMpe2EucGVuZGluZ0xhbmVzfD1iO3ZhciBkPWItMTthLnN1c3BlbmRlZExhbmVzJj1kO2EucGluZ2VkTGFuZXMmPWQ7YT1hLmV2ZW50VGltZXM7Yj0zMS1WYyhiKTthW2JdPWN9dmFyIFZjPU1hdGguY2x6MzI/TWF0aC5jbHozMjphZCxiZD1NYXRoLmxvZyxjZD1NYXRoLkxOMjtmdW5jdGlvbiBhZChhKXtyZXR1cm4gMD09PWE/MzI6MzEtKGJkKGEpL2NkfDApfDB9dmFyIGRkPXIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksZWQ9ci51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksZmQ9ITA7ZnVuY3Rpb24gZ2QoYSxiLGMsZCl7S2J8fEliKCk7dmFyIGU9aGQsZj1LYjtLYj0hMDt0cnl7SGIoZSxhLGIsYyxkKX1maW5hbGx5eyhLYj1mKXx8TWIoKX19ZnVuY3Rpb24gaWQoYSxiLGMsZCl7ZWQoZGQsaGQuYmluZChudWxsLGEsYixjLGQpKX1cbmZ1bmN0aW9uIGhkKGEsYixjLGQpe2lmKGZkKXt2YXIgZTtpZigoZT0wPT09KGImNCkpJiYwPGpjLmxlbmd0aCYmLTE8cWMuaW5kZXhPZihhKSlhPXJjKG51bGwsYSxiLGMsZCksamMucHVzaChhKTtlbHNle3ZhciBmPXljKGEsYixjLGQpO2lmKG51bGw9PT1mKWUmJnNjKGEsZCk7ZWxzZXtpZihlKXtpZigtMTxxYy5pbmRleE9mKGEpKXthPXJjKGYsYSxiLGMsZCk7amMucHVzaChhKTtyZXR1cm59aWYodWMoZixhLGIsYyxkKSlyZXR1cm47c2MoYSxkKX1qZChhLGIsZCxudWxsLGMpfX19fVxuZnVuY3Rpb24geWMoYSxiLGMsZCl7dmFyIGU9eGIoZCk7ZT13YyhlKTtpZihudWxsIT09ZSl7dmFyIGY9WmIoZSk7aWYobnVsbD09PWYpZT1udWxsO2Vsc2V7dmFyIGc9Zi50YWc7aWYoMTM9PT1nKXtlPSRiKGYpO2lmKG51bGwhPT1lKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKDM9PT1nKXtpZihmLnN0YXRlTm9kZS5oeWRyYXRlKXJldHVybiAzPT09Zi50YWc/Zi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2U9bnVsbH1lbHNlIGYhPT1lJiYoZT1udWxsKX19amQoYSxiLGQsZSxjKTtyZXR1cm4gbnVsbH12YXIga2Q9bnVsbCxsZD1udWxsLG1kPW51bGw7XG5mdW5jdGlvbiBuZCgpe2lmKG1kKXJldHVybiBtZDt2YXIgYSxiPWxkLGM9Yi5sZW5ndGgsZCxlPVwidmFsdWVcImluIGtkP2tkLnZhbHVlOmtkLnRleHRDb250ZW50LGY9ZS5sZW5ndGg7Zm9yKGE9MDthPGMmJmJbYV09PT1lW2FdO2ErKyk7dmFyIGc9Yy1hO2ZvcihkPTE7ZDw9ZyYmYltjLWRdPT09ZVtmLWRdO2QrKyk7cmV0dXJuIG1kPWUuc2xpY2UoYSwxPGQ/MS1kOnZvaWQgMCl9ZnVuY3Rpb24gb2QoYSl7dmFyIGI9YS5rZXlDb2RlO1wiY2hhckNvZGVcImluIGE/KGE9YS5jaGFyQ29kZSwwPT09YSYmMTM9PT1iJiYoYT0xMykpOmE9YjsxMD09PWEmJihhPTEzKTtyZXR1cm4gMzI8PWF8fDEzPT09YT9hOjB9ZnVuY3Rpb24gcGQoKXtyZXR1cm4hMH1mdW5jdGlvbiBxZCgpe3JldHVybiExfVxuZnVuY3Rpb24gcmQoYSl7ZnVuY3Rpb24gYihiLGQsZSxmLGcpe3RoaXMuX3JlYWN0TmFtZT1iO3RoaXMuX3RhcmdldEluc3Q9ZTt0aGlzLnR5cGU9ZDt0aGlzLm5hdGl2ZUV2ZW50PWY7dGhpcy50YXJnZXQ9Zzt0aGlzLmN1cnJlbnRUYXJnZXQ9bnVsbDtmb3IodmFyIGMgaW4gYSlhLmhhc093blByb3BlcnR5KGMpJiYoYj1hW2NdLHRoaXNbY109Yj9iKGYpOmZbY10pO3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT1mLmRlZmF1bHRQcmV2ZW50ZWQ/Zi5kZWZhdWx0UHJldmVudGVkOiExPT09Zi5yZXR1cm5WYWx1ZSk/cGQ6cWQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1xZDtyZXR1cm4gdGhpc31tKGIucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTpcInVua25vd25cIiE9PXR5cGVvZiBhLnJldHVyblZhbHVlJiZcbihhLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1wZCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEuc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5jYW5jZWxCdWJibGUmJihhLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1wZCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpwZH0pO3JldHVybiBifVxudmFyIHNkPXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LHRkPXJkKHNkKSx1ZD1tKHt9LHNkLHt2aWV3OjAsZGV0YWlsOjB9KSx2ZD1yZCh1ZCksd2QseGQseWQsQWQ9bSh7fSx1ZCx7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YS5yZWxhdGVkVGFyZ2V0P2EuZnJvbUVsZW1lbnQ9PT1hLnNyY0VsZW1lbnQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudDphLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihhKXtpZihcIm1vdmVtZW50WFwiaW5cbmEpcmV0dXJuIGEubW92ZW1lbnRYO2EhPT15ZCYmKHlkJiZcIm1vdXNlbW92ZVwiPT09YS50eXBlPyh3ZD1hLnNjcmVlblgteWQuc2NyZWVuWCx4ZD1hLnNjcmVlblkteWQuc2NyZWVuWSk6eGQ9d2Q9MCx5ZD1hKTtyZXR1cm4gd2R9LG1vdmVtZW50WTpmdW5jdGlvbihhKXtyZXR1cm5cIm1vdmVtZW50WVwiaW4gYT9hLm1vdmVtZW50WTp4ZH19KSxCZD1yZChBZCksQ2Q9bSh7fSxBZCx7ZGF0YVRyYW5zZmVyOjB9KSxEZD1yZChDZCksRWQ9bSh7fSx1ZCx7cmVsYXRlZFRhcmdldDowfSksRmQ9cmQoRWQpLEdkPW0oe30sc2Qse2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLEhkPXJkKEdkKSxJZD1tKHt9LHNkLHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGEpe3JldHVyblwiY2xpcGJvYXJkRGF0YVwiaW4gYT9hLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksSmQ9cmQoSWQpLEtkPW0oe30sc2Qse2RhdGE6MH0pLExkPXJkKEtkKSxNZD17RXNjOlwiRXNjYXBlXCIsXG5TcGFjZWJhcjpcIiBcIixMZWZ0OlwiQXJyb3dMZWZ0XCIsVXA6XCJBcnJvd1VwXCIsUmlnaHQ6XCJBcnJvd1JpZ2h0XCIsRG93bjpcIkFycm93RG93blwiLERlbDpcIkRlbGV0ZVwiLFdpbjpcIk9TXCIsTWVudTpcIkNvbnRleHRNZW51XCIsQXBwczpcIkNvbnRleHRNZW51XCIsU2Nyb2xsOlwiU2Nyb2xsTG9ja1wiLE1velByaW50YWJsZUtleTpcIlVuaWRlbnRpZmllZFwifSxOZD17ODpcIkJhY2tzcGFjZVwiLDk6XCJUYWJcIiwxMjpcIkNsZWFyXCIsMTM6XCJFbnRlclwiLDE2OlwiU2hpZnRcIiwxNzpcIkNvbnRyb2xcIiwxODpcIkFsdFwiLDE5OlwiUGF1c2VcIiwyMDpcIkNhcHNMb2NrXCIsMjc6XCJFc2NhcGVcIiwzMjpcIiBcIiwzMzpcIlBhZ2VVcFwiLDM0OlwiUGFnZURvd25cIiwzNTpcIkVuZFwiLDM2OlwiSG9tZVwiLDM3OlwiQXJyb3dMZWZ0XCIsMzg6XCJBcnJvd1VwXCIsMzk6XCJBcnJvd1JpZ2h0XCIsNDA6XCJBcnJvd0Rvd25cIiw0NTpcIkluc2VydFwiLDQ2OlwiRGVsZXRlXCIsMTEyOlwiRjFcIiwxMTM6XCJGMlwiLDExNDpcIkYzXCIsMTE1OlwiRjRcIiwxMTY6XCJGNVwiLDExNzpcIkY2XCIsMTE4OlwiRjdcIixcbjExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0sT2Q9e0FsdDpcImFsdEtleVwiLENvbnRyb2w6XCJjdHJsS2V5XCIsTWV0YTpcIm1ldGFLZXlcIixTaGlmdDpcInNoaWZ0S2V5XCJ9O2Z1bmN0aW9uIFBkKGEpe3ZhciBiPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIGIuZ2V0TW9kaWZpZXJTdGF0ZT9iLmdldE1vZGlmaWVyU3RhdGUoYSk6KGE9T2RbYV0pPyEhYlthXTohMX1mdW5jdGlvbiB6ZCgpe3JldHVybiBQZH1cbnZhciBRZD1tKHt9LHVkLHtrZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPU1kW2Eua2V5XXx8YS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PWIpcmV0dXJuIGJ9cmV0dXJuXCJrZXlwcmVzc1wiPT09YS50eXBlPyhhPW9kKGEpLDEzPT09YT9cIkVudGVyXCI6U3RyaW5nLmZyb21DaGFyQ29kZShhKSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9OZFthLmtleUNvZGVdfHxcIlVuaWRlbnRpZmllZFwiOlwiXCJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOnpkLGNoYXJDb2RlOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT9vZChhKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5cHJlc3NcIj09PVxuYS50eXBlP29kKGEpOlwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9fSksUmQ9cmQoUWQpLFNkPW0oe30sQWQse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSksVGQ9cmQoU2QpLFVkPW0oe30sdWQse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZH0pLFZkPXJkKFVkKSxXZD1tKHt9LHNkLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLFhkPXJkKFdkKSxZZD1tKHt9LEFkLHtkZWx0YVg6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVhcImluIGE/YS5kZWx0YVg6XCJ3aGVlbERlbHRhWFwiaW4gYT8tYS53aGVlbERlbHRhWDowfSxcbmRlbHRhWTpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWVwiaW4gYT9hLmRlbHRhWTpcIndoZWVsRGVsdGFZXCJpbiBhPy1hLndoZWVsRGVsdGFZOlwid2hlZWxEZWx0YVwiaW4gYT8tYS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSksWmQ9cmQoWWQpLCRkPVs5LDEzLDI3LDMyXSxhZT1mYSYmXCJDb21wb3NpdGlvbkV2ZW50XCJpbiB3aW5kb3csYmU9bnVsbDtmYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYoYmU9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgY2U9ZmEmJlwiVGV4dEV2ZW50XCJpbiB3aW5kb3cmJiFiZSxkZT1mYSYmKCFhZXx8YmUmJjg8YmUmJjExPj1iZSksZWU9U3RyaW5nLmZyb21DaGFyQ29kZSgzMiksZmU9ITE7XG5mdW5jdGlvbiBnZShhLGIpe3N3aXRjaChhKXtjYXNlIFwia2V5dXBcIjpyZXR1cm4tMSE9PSRkLmluZGV4T2YoYi5rZXlDb2RlKTtjYXNlIFwia2V5ZG93blwiOnJldHVybiAyMjkhPT1iLmtleUNvZGU7Y2FzZSBcImtleXByZXNzXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJmb2N1c291dFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGhlKGEpe2E9YS5kZXRhaWw7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZcImRhdGFcImluIGE/YS5kYXRhOm51bGx9dmFyIGllPSExO2Z1bmN0aW9uIGplKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiBoZShiKTtjYXNlIFwia2V5cHJlc3NcIjppZigzMiE9PWIud2hpY2gpcmV0dXJuIG51bGw7ZmU9ITA7cmV0dXJuIGVlO2Nhc2UgXCJ0ZXh0SW5wdXRcIjpyZXR1cm4gYT1iLmRhdGEsYT09PWVlJiZmZT9udWxsOmE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBrZShhLGIpe2lmKGllKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWF8fCFhZSYmZ2UoYSxiKT8oYT1uZCgpLG1kPWxkPWtkPW51bGwsaWU9ITEsYSk6bnVsbDtzd2l0Y2goYSl7Y2FzZSBcInBhc3RlXCI6cmV0dXJuIG51bGw7Y2FzZSBcImtleXByZXNzXCI6aWYoIShiLmN0cmxLZXl8fGIuYWx0S2V5fHxiLm1ldGFLZXkpfHxiLmN0cmxLZXkmJmIuYWx0S2V5KXtpZihiLmNoYXImJjE8Yi5jaGFyLmxlbmd0aClyZXR1cm4gYi5jaGFyO2lmKGIud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYi53aGljaCl9cmV0dXJuIG51bGw7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIGRlJiZcImtvXCIhPT1iLmxvY2FsZT9udWxsOmIuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbnZhciBsZT17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCxcImRhdGV0aW1lLWxvY2FsXCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBtZShhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuXCJpbnB1dFwiPT09Yj8hIWxlW2EudHlwZV06XCJ0ZXh0YXJlYVwiPT09Yj8hMDohMX1mdW5jdGlvbiBuZShhLGIsYyxkKXtFYihkKTtiPW9lKGIsXCJvbkNoYW5nZVwiKTswPGIubGVuZ3RoJiYoYz1uZXcgdGQoXCJvbkNoYW5nZVwiLFwiY2hhbmdlXCIsbnVsbCxjLGQpLGEucHVzaCh7ZXZlbnQ6YyxsaXN0ZW5lcnM6Yn0pKX12YXIgcGU9bnVsbCxxZT1udWxsO2Z1bmN0aW9uIHJlKGEpe3NlKGEsMCl9ZnVuY3Rpb24gdGUoYSl7dmFyIGI9dWUoYSk7aWYoV2EoYikpcmV0dXJuIGF9XG5mdW5jdGlvbiB2ZShhLGIpe2lmKFwiY2hhbmdlXCI9PT1hKXJldHVybiBifXZhciB3ZT0hMTtpZihmYSl7dmFyIHhlO2lmKGZhKXt2YXIgeWU9XCJvbmlucHV0XCJpbiBkb2N1bWVudDtpZigheWUpe3ZhciB6ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3plLnNldEF0dHJpYnV0ZShcIm9uaW5wdXRcIixcInJldHVybjtcIik7eWU9XCJmdW5jdGlvblwiPT09dHlwZW9mIHplLm9uaW5wdXR9eGU9eWV9ZWxzZSB4ZT0hMTt3ZT14ZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBBZSgpe3BlJiYocGUuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsQmUpLHFlPXBlPW51bGwpfWZ1bmN0aW9uIEJlKGEpe2lmKFwidmFsdWVcIj09PWEucHJvcGVydHlOYW1lJiZ0ZShxZSkpe3ZhciBiPVtdO25lKGIscWUsYSx4YihhKSk7YT1yZTtpZihLYilhKGIpO2Vsc2V7S2I9ITA7dHJ5e0diKGEsYil9ZmluYWxseXtLYj0hMSxNYigpfX19fVxuZnVuY3Rpb24gQ2UoYSxiLGMpe1wiZm9jdXNpblwiPT09YT8oQWUoKSxwZT1iLHFlPWMscGUuYXR0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsQmUpKTpcImZvY3Vzb3V0XCI9PT1hJiZBZSgpfWZ1bmN0aW9uIERlKGEpe2lmKFwic2VsZWN0aW9uY2hhbmdlXCI9PT1hfHxcImtleXVwXCI9PT1hfHxcImtleWRvd25cIj09PWEpcmV0dXJuIHRlKHFlKX1mdW5jdGlvbiBFZShhLGIpe2lmKFwiY2xpY2tcIj09PWEpcmV0dXJuIHRlKGIpfWZ1bmN0aW9uIEZlKGEsYil7aWYoXCJpbnB1dFwiPT09YXx8XCJjaGFuZ2VcIj09PWEpcmV0dXJuIHRlKGIpfWZ1bmN0aW9uIEdlKGEsYil7cmV0dXJuIGE9PT1iJiYoMCE9PWF8fDEvYT09PTEvYil8fGEhPT1hJiZiIT09Yn12YXIgSGU9XCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6R2UsSWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbmZ1bmN0aW9uIEplKGEsYil7aWYoSGUoYSxiKSlyZXR1cm4hMDtpZihcIm9iamVjdFwiIT09dHlwZW9mIGF8fG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGJ8fG51bGw9PT1iKXJldHVybiExO3ZhciBjPU9iamVjdC5rZXlzKGEpLGQ9T2JqZWN0LmtleXMoYik7aWYoYy5sZW5ndGghPT1kLmxlbmd0aClyZXR1cm4hMTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKWlmKCFJZS5jYWxsKGIsY1tkXSl8fCFIZShhW2NbZF1dLGJbY1tkXV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEtlKGEpe2Zvcig7YSYmYS5maXJzdENoaWxkOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX1cbmZ1bmN0aW9uIExlKGEsYil7dmFyIGM9S2UoYSk7YT0wO2Zvcih2YXIgZDtjOyl7aWYoMz09PWMubm9kZVR5cGUpe2Q9YStjLnRleHRDb250ZW50Lmxlbmd0aDtpZihhPD1iJiZkPj1iKXJldHVybntub2RlOmMsb2Zmc2V0OmItYX07YT1kfWE6e2Zvcig7Yzspe2lmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGluZzticmVhayBhfWM9Yy5wYXJlbnROb2RlfWM9dm9pZCAwfWM9S2UoYyl9fWZ1bmN0aW9uIE1lKGEsYil7cmV0dXJuIGEmJmI/YT09PWI/ITA6YSYmMz09PWEubm9kZVR5cGU/ITE6YiYmMz09PWIubm9kZVR5cGU/TWUoYSxiLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIGE/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPyEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpOiExOiExfVxuZnVuY3Rpb24gTmUoKXtmb3IodmFyIGE9d2luZG93LGI9WGEoKTtiIGluc3RhbmNlb2YgYS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYz1cInN0cmluZ1wiPT09dHlwZW9mIGIuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGQpe2M9ITF9aWYoYylhPWIuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2I9WGEoYS5kb2N1bWVudCl9cmV0dXJuIGJ9ZnVuY3Rpb24gT2UoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiJiYoXCJpbnB1dFwiPT09YiYmKFwidGV4dFwiPT09YS50eXBlfHxcInNlYXJjaFwiPT09YS50eXBlfHxcInRlbFwiPT09YS50eXBlfHxcInVybFwiPT09YS50eXBlfHxcInBhc3N3b3JkXCI9PT1hLnR5cGUpfHxcInRleHRhcmVhXCI9PT1ifHxcInRydWVcIj09PWEuY29udGVudEVkaXRhYmxlKX1cbnZhciBQZT1mYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLFFlPW51bGwsUmU9bnVsbCxTZT1udWxsLFRlPSExO1xuZnVuY3Rpb24gVWUoYSxiLGMpe3ZhciBkPWMud2luZG93PT09Yz9jLmRvY3VtZW50Ojk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50O1RlfHxudWxsPT1RZXx8UWUhPT1YYShkKXx8KGQ9UWUsXCJzZWxlY3Rpb25TdGFydFwiaW4gZCYmT2UoZCk/ZD17c3RhcnQ6ZC5zZWxlY3Rpb25TdGFydCxlbmQ6ZC5zZWxlY3Rpb25FbmR9OihkPShkLm93bmVyRG9jdW1lbnQmJmQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxkPXthbmNob3JOb2RlOmQuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6ZC5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmQuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmQuZm9jdXNPZmZzZXR9KSxTZSYmSmUoU2UsZCl8fChTZT1kLGQ9b2UoUmUsXCJvblNlbGVjdFwiKSwwPGQubGVuZ3RoJiYoYj1uZXcgdGQoXCJvblNlbGVjdFwiLFwic2VsZWN0XCIsbnVsbCxiLGMpLGEucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6ZH0pLGIudGFyZ2V0PVFlKSkpfVxuUGMoXCJjYW5jZWwgY2FuY2VsIGNsaWNrIGNsaWNrIGNsb3NlIGNsb3NlIGNvbnRleHRtZW51IGNvbnRleHRNZW51IGNvcHkgY29weSBjdXQgY3V0IGF1eGNsaWNrIGF1eENsaWNrIGRibGNsaWNrIGRvdWJsZUNsaWNrIGRyYWdlbmQgZHJhZ0VuZCBkcmFnc3RhcnQgZHJhZ1N0YXJ0IGRyb3AgZHJvcCBmb2N1c2luIGZvY3VzIGZvY3Vzb3V0IGJsdXIgaW5wdXQgaW5wdXQgaW52YWxpZCBpbnZhbGlkIGtleWRvd24ga2V5RG93biBrZXlwcmVzcyBrZXlQcmVzcyBrZXl1cCBrZXlVcCBtb3VzZWRvd24gbW91c2VEb3duIG1vdXNldXAgbW91c2VVcCBwYXN0ZSBwYXN0ZSBwYXVzZSBwYXVzZSBwbGF5IHBsYXkgcG9pbnRlcmNhbmNlbCBwb2ludGVyQ2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJEb3duIHBvaW50ZXJ1cCBwb2ludGVyVXAgcmF0ZWNoYW5nZSByYXRlQ2hhbmdlIHJlc2V0IHJlc2V0IHNlZWtlZCBzZWVrZWQgc3VibWl0IHN1Ym1pdCB0b3VjaGNhbmNlbCB0b3VjaENhbmNlbCB0b3VjaGVuZCB0b3VjaEVuZCB0b3VjaHN0YXJ0IHRvdWNoU3RhcnQgdm9sdW1lY2hhbmdlIHZvbHVtZUNoYW5nZVwiLnNwbGl0KFwiIFwiKSxcbjApO1BjKFwiZHJhZyBkcmFnIGRyYWdlbnRlciBkcmFnRW50ZXIgZHJhZ2V4aXQgZHJhZ0V4aXQgZHJhZ2xlYXZlIGRyYWdMZWF2ZSBkcmFnb3ZlciBkcmFnT3ZlciBtb3VzZW1vdmUgbW91c2VNb3ZlIG1vdXNlb3V0IG1vdXNlT3V0IG1vdXNlb3ZlciBtb3VzZU92ZXIgcG9pbnRlcm1vdmUgcG9pbnRlck1vdmUgcG9pbnRlcm91dCBwb2ludGVyT3V0IHBvaW50ZXJvdmVyIHBvaW50ZXJPdmVyIHNjcm9sbCBzY3JvbGwgdG9nZ2xlIHRvZ2dsZSB0b3VjaG1vdmUgdG91Y2hNb3ZlIHdoZWVsIHdoZWVsXCIuc3BsaXQoXCIgXCIpLDEpO1BjKE9jLDIpO2Zvcih2YXIgVmU9XCJjaGFuZ2Ugc2VsZWN0aW9uY2hhbmdlIHRleHRJbnB1dCBjb21wb3NpdGlvbnN0YXJ0IGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9udXBkYXRlXCIuc3BsaXQoXCIgXCIpLFdlPTA7V2U8VmUubGVuZ3RoO1dlKyspTmMuc2V0KFZlW1dlXSwwKTtlYShcIm9uTW91c2VFbnRlclwiLFtcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl0pO1xuZWEoXCJvbk1vdXNlTGVhdmVcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKTtlYShcIm9uUG9pbnRlckVudGVyXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pO2VhKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSk7ZGEoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2RhKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSk7ZGEoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKTtkYShcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTtcbmRhKFwib25Db21wb3NpdGlvblN0YXJ0XCIsXCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTtkYShcIm9uQ29tcG9zaXRpb25VcGRhdGVcIixcImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTt2YXIgWGU9XCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nXCIuc3BsaXQoXCIgXCIpLFllPW5ldyBTZXQoXCJjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCB0b2dnbGVcIi5zcGxpdChcIiBcIikuY29uY2F0KFhlKSk7XG5mdW5jdGlvbiBaZShhLGIsYyl7dmFyIGQ9YS50eXBlfHxcInVua25vd24tZXZlbnRcIjthLmN1cnJlbnRUYXJnZXQ9YztZYihkLGIsdm9pZCAwLGEpO2EuY3VycmVudFRhcmdldD1udWxsfVxuZnVuY3Rpb24gc2UoYSxiKXtiPTAhPT0oYiY0KTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZXZlbnQ7ZD1kLmxpc3RlbmVyczthOnt2YXIgZj12b2lkIDA7aWYoYilmb3IodmFyIGc9ZC5sZW5ndGgtMTswPD1nO2ctLSl7dmFyIGg9ZFtnXSxrPWguaW5zdGFuY2UsbD1oLmN1cnJlbnRUYXJnZXQ7aD1oLmxpc3RlbmVyO2lmKGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtaZShlLGgsbCk7Zj1rfWVsc2UgZm9yKGc9MDtnPGQubGVuZ3RoO2crKyl7aD1kW2ddO2s9aC5pbnN0YW5jZTtsPWguY3VycmVudFRhcmdldDtoPWgubGlzdGVuZXI7aWYoayE9PWYmJmUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBhO1plKGUsaCxsKTtmPWt9fX1pZihVYil0aHJvdyBhPVZiLFViPSExLFZiPW51bGwsYTt9XG5mdW5jdGlvbiBHKGEsYil7dmFyIGM9JGUoYiksZD1hK1wiX19idWJibGVcIjtjLmhhcyhkKXx8KGFmKGIsYSwyLCExKSxjLmFkZChkKSl9dmFyIGJmPVwiX3JlYWN0TGlzdGVuaW5nXCIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gY2YoYSl7YVtiZl18fChhW2JmXT0hMCxiYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1llLmhhcyhiKXx8ZGYoYiwhMSxhLG51bGwpO2RmKGIsITAsYSxudWxsKX0pKX1cbmZ1bmN0aW9uIGRmKGEsYixjLGQpe3ZhciBlPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTowLGY9YztcInNlbGVjdGlvbmNoYW5nZVwiPT09YSYmOSE9PWMubm9kZVR5cGUmJihmPWMub3duZXJEb2N1bWVudCk7aWYobnVsbCE9PWQmJiFiJiZZZS5oYXMoYSkpe2lmKFwic2Nyb2xsXCIhPT1hKXJldHVybjtlfD0yO2Y9ZH12YXIgZz0kZShmKSxoPWErXCJfX1wiKyhiP1wiY2FwdHVyZVwiOlwiYnViYmxlXCIpO2cuaGFzKGgpfHwoYiYmKGV8PTQpLGFmKGYsYSxlLGIpLGcuYWRkKGgpKX1cbmZ1bmN0aW9uIGFmKGEsYixjLGQpe3ZhciBlPU5jLmdldChiKTtzd2l0Y2godm9pZCAwPT09ZT8yOmUpe2Nhc2UgMDplPWdkO2JyZWFrO2Nhc2UgMTplPWlkO2JyZWFrO2RlZmF1bHQ6ZT1oZH1jPWUuYmluZChudWxsLGIsYyxhKTtlPXZvaWQgMDshUGJ8fFwidG91Y2hzdGFydFwiIT09YiYmXCJ0b3VjaG1vdmVcIiE9PWImJlwid2hlZWxcIiE9PWJ8fChlPSEwKTtkP3ZvaWQgMCE9PWU/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx7Y2FwdHVyZTohMCxwYXNzaXZlOmV9KTphLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEwKTp2b2lkIDAhPT1lP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMse3Bhc3NpdmU6ZX0pOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpfVxuZnVuY3Rpb24gamQoYSxiLGMsZCxlKXt2YXIgZj1kO2lmKDA9PT0oYiYxKSYmMD09PShiJjIpJiZudWxsIT09ZClhOmZvcig7Oyl7aWYobnVsbD09PWQpcmV0dXJuO3ZhciBnPWQudGFnO2lmKDM9PT1nfHw0PT09Zyl7dmFyIGg9ZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihoPT09ZXx8OD09PWgubm9kZVR5cGUmJmgucGFyZW50Tm9kZT09PWUpYnJlYWs7aWYoND09PWcpZm9yKGc9ZC5yZXR1cm47bnVsbCE9PWc7KXt2YXIgaz1nLnRhZztpZigzPT09a3x8ND09PWspaWYoaz1nLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGs9PT1lfHw4PT09ay5ub2RlVHlwZSYmay5wYXJlbnROb2RlPT09ZSlyZXR1cm47Zz1nLnJldHVybn1mb3IoO251bGwhPT1oOyl7Zz13YyhoKTtpZihudWxsPT09ZylyZXR1cm47az1nLnRhZztpZig1PT09a3x8Nj09PWspe2Q9Zj1nO2NvbnRpbnVlIGF9aD1oLnBhcmVudE5vZGV9fWQ9ZC5yZXR1cm59TmIoZnVuY3Rpb24oKXt2YXIgZD1mLGU9eGIoYyksZz1bXTtcbmE6e3ZhciBoPU1jLmdldChhKTtpZih2b2lkIDAhPT1oKXt2YXIgaz10ZCx4PWE7c3dpdGNoKGEpe2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDA9PT1vZChjKSlicmVhayBhO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6az1SZDticmVhaztjYXNlIFwiZm9jdXNpblwiOng9XCJmb2N1c1wiO2s9RmQ7YnJlYWs7Y2FzZSBcImZvY3Vzb3V0XCI6eD1cImJsdXJcIjtrPUZkO2JyZWFrO2Nhc2UgXCJiZWZvcmVibHVyXCI6Y2FzZSBcImFmdGVyYmx1clwiOms9RmQ7YnJlYWs7Y2FzZSBcImNsaWNrXCI6aWYoMj09PWMuYnV0dG9uKWJyZWFrIGE7Y2FzZSBcImF1eGNsaWNrXCI6Y2FzZSBcImRibGNsaWNrXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJtb3VzZW1vdmVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJtb3VzZW91dFwiOmNhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwiY29udGV4dG1lbnVcIjprPUJkO2JyZWFrO2Nhc2UgXCJkcmFnXCI6Y2FzZSBcImRyYWdlbmRcIjpjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdleGl0XCI6Y2FzZSBcImRyYWdsZWF2ZVwiOmNhc2UgXCJkcmFnb3ZlclwiOmNhc2UgXCJkcmFnc3RhcnRcIjpjYXNlIFwiZHJvcFwiOms9XG5EZDticmVhaztjYXNlIFwidG91Y2hjYW5jZWxcIjpjYXNlIFwidG91Y2hlbmRcIjpjYXNlIFwidG91Y2htb3ZlXCI6Y2FzZSBcInRvdWNoc3RhcnRcIjprPVZkO2JyZWFrO2Nhc2UgSWM6Y2FzZSBKYzpjYXNlIEtjOms9SGQ7YnJlYWs7Y2FzZSBMYzprPVhkO2JyZWFrO2Nhc2UgXCJzY3JvbGxcIjprPXZkO2JyZWFrO2Nhc2UgXCJ3aGVlbFwiOms9WmQ7YnJlYWs7Y2FzZSBcImNvcHlcIjpjYXNlIFwiY3V0XCI6Y2FzZSBcInBhc3RlXCI6az1KZDticmVhaztjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcInBvaW50ZXJjYW5jZWxcIjpjYXNlIFwicG9pbnRlcmRvd25cIjpjYXNlIFwicG9pbnRlcm1vdmVcIjpjYXNlIFwicG9pbnRlcm91dFwiOmNhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJwb2ludGVydXBcIjprPVRkfXZhciB3PTAhPT0oYiY0KSx6PSF3JiZcInNjcm9sbFwiPT09YSx1PXc/bnVsbCE9PWg/aCtcIkNhcHR1cmVcIjpudWxsOmg7dz1bXTtmb3IodmFyIHQ9ZCxxO251bGwhPT1cbnQ7KXtxPXQ7dmFyIHY9cS5zdGF0ZU5vZGU7NT09PXEudGFnJiZudWxsIT09diYmKHE9dixudWxsIT09dSYmKHY9T2IodCx1KSxudWxsIT12JiZ3LnB1c2goZWYodCx2LHEpKSkpO2lmKHopYnJlYWs7dD10LnJldHVybn0wPHcubGVuZ3RoJiYoaD1uZXcgayhoLHgsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6aCxsaXN0ZW5lcnM6d30pKX19aWYoMD09PShiJjcpKXthOntoPVwibW91c2VvdmVyXCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hO2s9XCJtb3VzZW91dFwiPT09YXx8XCJwb2ludGVyb3V0XCI9PT1hO2lmKGgmJjA9PT0oYiYxNikmJih4PWMucmVsYXRlZFRhcmdldHx8Yy5mcm9tRWxlbWVudCkmJih3Yyh4KXx8eFtmZl0pKWJyZWFrIGE7aWYoa3x8aCl7aD1lLndpbmRvdz09PWU/ZTooaD1lLm93bmVyRG9jdW1lbnQpP2guZGVmYXVsdFZpZXd8fGgucGFyZW50V2luZG93OndpbmRvdztpZihrKXtpZih4PWMucmVsYXRlZFRhcmdldHx8Yy50b0VsZW1lbnQsaz1kLHg9eD93Yyh4KTpudWxsLG51bGwhPT1cbngmJih6PVpiKHgpLHghPT16fHw1IT09eC50YWcmJjYhPT14LnRhZykpeD1udWxsfWVsc2Ugaz1udWxsLHg9ZDtpZihrIT09eCl7dz1CZDt2PVwib25Nb3VzZUxlYXZlXCI7dT1cIm9uTW91c2VFbnRlclwiO3Q9XCJtb3VzZVwiO2lmKFwicG9pbnRlcm91dFwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YSl3PVRkLHY9XCJvblBvaW50ZXJMZWF2ZVwiLHU9XCJvblBvaW50ZXJFbnRlclwiLHQ9XCJwb2ludGVyXCI7ej1udWxsPT1rP2g6dWUoayk7cT1udWxsPT14P2g6dWUoeCk7aD1uZXcgdyh2LHQrXCJsZWF2ZVwiLGssYyxlKTtoLnRhcmdldD16O2gucmVsYXRlZFRhcmdldD1xO3Y9bnVsbDt3YyhlKT09PWQmJih3PW5ldyB3KHUsdCtcImVudGVyXCIseCxjLGUpLHcudGFyZ2V0PXEsdy5yZWxhdGVkVGFyZ2V0PXosdj13KTt6PXY7aWYoayYmeCliOnt3PWs7dT14O3Q9MDtmb3IocT13O3E7cT1nZihxKSl0Kys7cT0wO2Zvcih2PXU7djt2PWdmKHYpKXErKztmb3IoOzA8dC1xOyl3PWdmKHcpLHQtLTtmb3IoOzA8cS10Oyl1PVxuZ2YodSkscS0tO2Zvcig7dC0tOyl7aWYodz09PXV8fG51bGwhPT11JiZ3PT09dS5hbHRlcm5hdGUpYnJlYWsgYjt3PWdmKHcpO3U9Z2YodSl9dz1udWxsfWVsc2Ugdz1udWxsO251bGwhPT1rJiZoZihnLGgsayx3LCExKTtudWxsIT09eCYmbnVsbCE9PXomJmhmKGcseix4LHcsITApfX19YTp7aD1kP3VlKGQpOndpbmRvdztrPWgubm9kZU5hbWUmJmgubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihcInNlbGVjdFwiPT09a3x8XCJpbnB1dFwiPT09ayYmXCJmaWxlXCI9PT1oLnR5cGUpdmFyIEo9dmU7ZWxzZSBpZihtZShoKSlpZih3ZSlKPUZlO2Vsc2V7Sj1EZTt2YXIgSz1DZX1lbHNlKGs9aC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWsudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWgudHlwZXx8XCJyYWRpb1wiPT09aC50eXBlKSYmKEo9RWUpO2lmKEomJihKPUooYSxkKSkpe25lKGcsSixjLGUpO2JyZWFrIGF9SyYmSyhhLGgsZCk7XCJmb2N1c291dFwiPT09YSYmKEs9aC5fd3JhcHBlclN0YXRlKSYmXG5LLmNvbnRyb2xsZWQmJlwibnVtYmVyXCI9PT1oLnR5cGUmJmJiKGgsXCJudW1iZXJcIixoLnZhbHVlKX1LPWQ/dWUoZCk6d2luZG93O3N3aXRjaChhKXtjYXNlIFwiZm9jdXNpblwiOmlmKG1lKEspfHxcInRydWVcIj09PUsuY29udGVudEVkaXRhYmxlKVFlPUssUmU9ZCxTZT1udWxsO2JyZWFrO2Nhc2UgXCJmb2N1c291dFwiOlNlPVJlPVFlPW51bGw7YnJlYWs7Y2FzZSBcIm1vdXNlZG93blwiOlRlPSEwO2JyZWFrO2Nhc2UgXCJjb250ZXh0bWVudVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcImRyYWdlbmRcIjpUZT0hMTtVZShnLGMsZSk7YnJlYWs7Y2FzZSBcInNlbGVjdGlvbmNoYW5nZVwiOmlmKFBlKWJyZWFrO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6VWUoZyxjLGUpfXZhciBRO2lmKGFlKWI6e3N3aXRjaChhKXtjYXNlIFwiY29tcG9zaXRpb25zdGFydFwiOnZhciBMPVwib25Db21wb3NpdGlvblN0YXJ0XCI7YnJlYWsgYjtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpMPVwib25Db21wb3NpdGlvbkVuZFwiO2JyZWFrIGI7XG5jYXNlIFwiY29tcG9zaXRpb251cGRhdGVcIjpMPVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIGJ9TD12b2lkIDB9ZWxzZSBpZT9nZShhLGMpJiYoTD1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1hJiYyMjk9PT1jLmtleUNvZGUmJihMPVwib25Db21wb3NpdGlvblN0YXJ0XCIpO0wmJihkZSYmXCJrb1wiIT09Yy5sb2NhbGUmJihpZXx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PUw/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT1MJiZpZSYmKFE9bmQoKSk6KGtkPWUsbGQ9XCJ2YWx1ZVwiaW4ga2Q/a2QudmFsdWU6a2QudGV4dENvbnRlbnQsaWU9ITApKSxLPW9lKGQsTCksMDxLLmxlbmd0aCYmKEw9bmV3IExkKEwsYSxudWxsLGMsZSksZy5wdXNoKHtldmVudDpMLGxpc3RlbmVyczpLfSksUT9MLmRhdGE9UTooUT1oZShjKSxudWxsIT09USYmKEwuZGF0YT1RKSkpKTtpZihRPWNlP2plKGEsYyk6a2UoYSxjKSlkPW9lKGQsXCJvbkJlZm9yZUlucHV0XCIpLDA8ZC5sZW5ndGgmJihlPW5ldyBMZChcIm9uQmVmb3JlSW5wdXRcIixcblwiYmVmb3JlaW5wdXRcIixudWxsLGMsZSksZy5wdXNoKHtldmVudDplLGxpc3RlbmVyczpkfSksZS5kYXRhPVEpfXNlKGcsYil9KX1mdW5jdGlvbiBlZihhLGIsYyl7cmV0dXJue2luc3RhbmNlOmEsbGlzdGVuZXI6YixjdXJyZW50VGFyZ2V0OmN9fWZ1bmN0aW9uIG9lKGEsYil7Zm9yKHZhciBjPWIrXCJDYXB0dXJlXCIsZD1bXTtudWxsIT09YTspe3ZhciBlPWEsZj1lLnN0YXRlTm9kZTs1PT09ZS50YWcmJm51bGwhPT1mJiYoZT1mLGY9T2IoYSxjKSxudWxsIT1mJiZkLnVuc2hpZnQoZWYoYSxmLGUpKSxmPU9iKGEsYiksbnVsbCE9ZiYmZC5wdXNoKGVmKGEsZixlKSkpO2E9YS5yZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gZ2YoYSl7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7ZG8gYT1hLnJldHVybjt3aGlsZShhJiY1IT09YS50YWcpO3JldHVybiBhP2E6bnVsbH1cbmZ1bmN0aW9uIGhmKGEsYixjLGQsZSl7Zm9yKHZhciBmPWIuX3JlYWN0TmFtZSxnPVtdO251bGwhPT1jJiZjIT09ZDspe3ZhciBoPWMsaz1oLmFsdGVybmF0ZSxsPWguc3RhdGVOb2RlO2lmKG51bGwhPT1rJiZrPT09ZClicmVhazs1PT09aC50YWcmJm51bGwhPT1sJiYoaD1sLGU/KGs9T2IoYyxmKSxudWxsIT1rJiZnLnVuc2hpZnQoZWYoYyxrLGgpKSk6ZXx8KGs9T2IoYyxmKSxudWxsIT1rJiZnLnB1c2goZWYoYyxrLGgpKSkpO2M9Yy5yZXR1cm59MCE9PWcubGVuZ3RoJiZhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmd9KX1mdW5jdGlvbiBqZigpe312YXIga2Y9bnVsbCxsZj1udWxsO2Z1bmN0aW9uIG1mKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJidXR0b25cIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInRleHRhcmVhXCI6cmV0dXJuISFiLmF1dG9Gb2N1c31yZXR1cm4hMX1cbmZ1bmN0aW9uIG5mKGEsYil7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09YXx8XCJvcHRpb25cIj09PWF8fFwibm9zY3JpcHRcIj09PWF8fFwic3RyaW5nXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJudW1iZXJcIj09PXR5cGVvZiBiLmNoaWxkcmVufHxcIm9iamVjdFwiPT09dHlwZW9mIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgb2Y9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDp2b2lkIDAscGY9XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwO2Z1bmN0aW9uIHFmKGEpezE9PT1hLm5vZGVUeXBlP2EudGV4dENvbnRlbnQ9XCJcIjo5PT09YS5ub2RlVHlwZSYmKGE9YS5ib2R5LG51bGwhPWEmJihhLnRleHRDb250ZW50PVwiXCIpKX1cbmZ1bmN0aW9uIHJmKGEpe2Zvcig7bnVsbCE9YTthPWEubmV4dFNpYmxpbmcpe3ZhciBiPWEubm9kZVR5cGU7aWYoMT09PWJ8fDM9PT1iKWJyZWFrfXJldHVybiBhfWZ1bmN0aW9uIHNmKGEpe2E9YS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciBiPTA7YTspe2lmKDg9PT1hLm5vZGVUeXBlKXt2YXIgYz1hLmRhdGE7aWYoXCIkXCI9PT1jfHxcIiQhXCI9PT1jfHxcIiQ/XCI9PT1jKXtpZigwPT09YilyZXR1cm4gYTtiLS19ZWxzZVwiLyRcIj09PWMmJmIrK31hPWEucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfXZhciB0Zj0wO2Z1bmN0aW9uIHVmKGEpe3JldHVybnskJHR5cGVvZjpHYSx0b1N0cmluZzphLHZhbHVlT2Y6YX19dmFyIHZmPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLHdmPVwiX19yZWFjdEZpYmVyJFwiK3ZmLHhmPVwiX19yZWFjdFByb3BzJFwiK3ZmLGZmPVwiX19yZWFjdENvbnRhaW5lciRcIit2Zix5Zj1cIl9fcmVhY3RFdmVudHMkXCIrdmY7XG5mdW5jdGlvbiB3YyhhKXt2YXIgYj1hW3dmXTtpZihiKXJldHVybiBiO2Zvcih2YXIgYz1hLnBhcmVudE5vZGU7Yzspe2lmKGI9Y1tmZl18fGNbd2ZdKXtjPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1iLmNoaWxkfHxudWxsIT09YyYmbnVsbCE9PWMuY2hpbGQpZm9yKGE9c2YoYSk7bnVsbCE9PWE7KXtpZihjPWFbd2ZdKXJldHVybiBjO2E9c2YoYSl9cmV0dXJuIGJ9YT1jO2M9YS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIENiKGEpe2E9YVt3Zl18fGFbZmZdO3JldHVybiFhfHw1IT09YS50YWcmJjYhPT1hLnRhZyYmMTMhPT1hLnRhZyYmMyE9PWEudGFnP251bGw6YX1mdW5jdGlvbiB1ZShhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IoeSgzMykpO31mdW5jdGlvbiBEYihhKXtyZXR1cm4gYVt4Zl18fG51bGx9XG5mdW5jdGlvbiAkZShhKXt2YXIgYj1hW3lmXTt2b2lkIDA9PT1iJiYoYj1hW3lmXT1uZXcgU2V0KTtyZXR1cm4gYn12YXIgemY9W10sQWY9LTE7ZnVuY3Rpb24gQmYoYSl7cmV0dXJue2N1cnJlbnQ6YX19ZnVuY3Rpb24gSChhKXswPkFmfHwoYS5jdXJyZW50PXpmW0FmXSx6ZltBZl09bnVsbCxBZi0tKX1mdW5jdGlvbiBJKGEsYil7QWYrKzt6ZltBZl09YS5jdXJyZW50O2EuY3VycmVudD1ifXZhciBDZj17fSxNPUJmKENmKSxOPUJmKCExKSxEZj1DZjtcbmZ1bmN0aW9uIEVmKGEsYil7dmFyIGM9YS50eXBlLmNvbnRleHRUeXBlcztpZighYylyZXR1cm4gQ2Y7dmFyIGQ9YS5zdGF0ZU5vZGU7aWYoZCYmZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09YilyZXR1cm4gZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgZT17fSxmO2ZvcihmIGluIGMpZVtmXT1iW2ZdO2QmJihhPWEuc3RhdGVOb2RlLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1iLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9ZSk7cmV0dXJuIGV9ZnVuY3Rpb24gRmYoYSl7YT1hLmNoaWxkQ29udGV4dFR5cGVzO3JldHVybiBudWxsIT09YSYmdm9pZCAwIT09YX1mdW5jdGlvbiBHZigpe0goTik7SChNKX1mdW5jdGlvbiBIZihhLGIsYyl7aWYoTS5jdXJyZW50IT09Q2YpdGhyb3cgRXJyb3IoeSgxNjgpKTtJKE0sYik7SShOLGMpfVxuZnVuY3Rpb24gSWYoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2E9Yi5jaGlsZENvbnRleHRUeXBlcztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZC5nZXRDaGlsZENvbnRleHQpcmV0dXJuIGM7ZD1kLmdldENoaWxkQ29udGV4dCgpO2Zvcih2YXIgZSBpbiBkKWlmKCEoZSBpbiBhKSl0aHJvdyBFcnJvcih5KDEwOCxSYShiKXx8XCJVbmtub3duXCIsZSkpO3JldHVybiBtKHt9LGMsZCl9ZnVuY3Rpb24gSmYoYSl7YT0oYT1hLnN0YXRlTm9kZSkmJmEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fENmO0RmPU0uY3VycmVudDtJKE0sYSk7SShOLE4uY3VycmVudCk7cmV0dXJuITB9ZnVuY3Rpb24gS2YoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2lmKCFkKXRocm93IEVycm9yKHkoMTY5KSk7Yz8oYT1JZihhLGIsRGYpLGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9YSxIKE4pLEgoTSksSShNLGEpKTpIKE4pO0koTixjKX1cbnZhciBMZj1udWxsLE1mPW51bGwsTmY9ci51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksT2Y9ci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFBmPXIudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssUWY9ci51bnN0YWJsZV9zaG91bGRZaWVsZCxSZj1yLnVuc3RhYmxlX3JlcXVlc3RQYWludCxTZj1yLnVuc3RhYmxlX25vdyxUZj1yLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLFVmPXIudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksVmY9ci51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxXZj1yLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LFhmPXIudW5zdGFibGVfTG93UHJpb3JpdHksWWY9ci51bnN0YWJsZV9JZGxlUHJpb3JpdHksWmY9e30sJGY9dm9pZCAwIT09UmY/UmY6ZnVuY3Rpb24oKXt9LGFnPW51bGwsYmc9bnVsbCxjZz0hMSxkZz1TZigpLE89MUU0PmRnP1NmOmZ1bmN0aW9uKCl7cmV0dXJuIFNmKCktZGd9O1xuZnVuY3Rpb24gZWcoKXtzd2l0Y2goVGYoKSl7Y2FzZSBVZjpyZXR1cm4gOTk7Y2FzZSBWZjpyZXR1cm4gOTg7Y2FzZSBXZjpyZXR1cm4gOTc7Y2FzZSBYZjpyZXR1cm4gOTY7Y2FzZSBZZjpyZXR1cm4gOTU7ZGVmYXVsdDp0aHJvdyBFcnJvcih5KDMzMikpO319ZnVuY3Rpb24gZmcoYSl7c3dpdGNoKGEpe2Nhc2UgOTk6cmV0dXJuIFVmO2Nhc2UgOTg6cmV0dXJuIFZmO2Nhc2UgOTc6cmV0dXJuIFdmO2Nhc2UgOTY6cmV0dXJuIFhmO2Nhc2UgOTU6cmV0dXJuIFlmO2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzMzIpKTt9fWZ1bmN0aW9uIGdnKGEsYil7YT1mZyhhKTtyZXR1cm4gTmYoYSxiKX1mdW5jdGlvbiBoZyhhLGIsYyl7YT1mZyhhKTtyZXR1cm4gT2YoYSxiLGMpfWZ1bmN0aW9uIGlnKCl7aWYobnVsbCE9PWJnKXt2YXIgYT1iZztiZz1udWxsO1BmKGEpfWpnKCl9XG5mdW5jdGlvbiBqZygpe2lmKCFjZyYmbnVsbCE9PWFnKXtjZz0hMDt2YXIgYT0wO3RyeXt2YXIgYj1hZztnZyg5OSxmdW5jdGlvbigpe2Zvcig7YTxiLmxlbmd0aDthKyspe3ZhciBjPWJbYV07ZG8gYz1jKCEwKTt3aGlsZShudWxsIT09Yyl9fSk7YWc9bnVsbH1jYXRjaChjKXt0aHJvdyBudWxsIT09YWcmJihhZz1hZy5zbGljZShhKzEpKSxPZihVZixpZyksYzt9ZmluYWxseXtjZz0hMX19fXZhciBrZz1yYS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZztmdW5jdGlvbiBsZyhhLGIpe2lmKGEmJmEuZGVmYXVsdFByb3BzKXtiPW0oe30sYik7YT1hLmRlZmF1bHRQcm9wcztmb3IodmFyIGMgaW4gYSl2b2lkIDA9PT1iW2NdJiYoYltjXT1hW2NdKTtyZXR1cm4gYn1yZXR1cm4gYn12YXIgbWc9QmYobnVsbCksbmc9bnVsbCxvZz1udWxsLHBnPW51bGw7ZnVuY3Rpb24gcWcoKXtwZz1vZz1uZz1udWxsfVxuZnVuY3Rpb24gcmcoYSl7dmFyIGI9bWcuY3VycmVudDtIKG1nKTthLnR5cGUuX2NvbnRleHQuX2N1cnJlbnRWYWx1ZT1ifWZ1bmN0aW9uIHNnKGEsYil7Zm9yKDtudWxsIT09YTspe3ZhciBjPWEuYWx0ZXJuYXRlO2lmKChhLmNoaWxkTGFuZXMmYik9PT1iKWlmKG51bGw9PT1jfHwoYy5jaGlsZExhbmVzJmIpPT09YilicmVhaztlbHNlIGMuY2hpbGRMYW5lc3w9YjtlbHNlIGEuY2hpbGRMYW5lc3w9YixudWxsIT09YyYmKGMuY2hpbGRMYW5lc3w9Yik7YT1hLnJldHVybn19ZnVuY3Rpb24gdGcoYSxiKXtuZz1hO3BnPW9nPW51bGw7YT1hLmRlcGVuZGVuY2llcztudWxsIT09YSYmbnVsbCE9PWEuZmlyc3RDb250ZXh0JiYoMCE9PShhLmxhbmVzJmIpJiYodWc9ITApLGEuZmlyc3RDb250ZXh0PW51bGwpfVxuZnVuY3Rpb24gdmcoYSxiKXtpZihwZyE9PWEmJiExIT09YiYmMCE9PWIpe2lmKFwibnVtYmVyXCIhPT10eXBlb2YgYnx8MTA3Mzc0MTgyMz09PWIpcGc9YSxiPTEwNzM3NDE4MjM7Yj17Y29udGV4dDphLG9ic2VydmVkQml0czpiLG5leHQ6bnVsbH07aWYobnVsbD09PW9nKXtpZihudWxsPT09bmcpdGhyb3cgRXJyb3IoeSgzMDgpKTtvZz1iO25nLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6YixyZXNwb25kZXJzOm51bGx9fWVsc2Ugb2c9b2cubmV4dD1ifXJldHVybiBhLl9jdXJyZW50VmFsdWV9dmFyIHdnPSExO2Z1bmN0aW9uIHhnKGEpe2EudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTphLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbH0sZWZmZWN0czpudWxsfX1cbmZ1bmN0aW9uIHlnKGEsYil7YT1hLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9PT1hJiYoYi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTphLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTphLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDphLnNoYXJlZCxlZmZlY3RzOmEuZWZmZWN0c30pfWZ1bmN0aW9uIHpnKGEsYil7cmV0dXJue2V2ZW50VGltZTphLGxhbmU6Yix0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIEFnKGEsYil7YT1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1hKXthPWEuc2hhcmVkO3ZhciBjPWEucGVuZGluZztudWxsPT09Yz9iLm5leHQ9YjooYi5uZXh0PWMubmV4dCxjLm5leHQ9Yik7YS5wZW5kaW5nPWJ9fVxuZnVuY3Rpb24gQmcoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlLGQ9YS5hbHRlcm5hdGU7aWYobnVsbCE9PWQmJihkPWQudXBkYXRlUXVldWUsYz09PWQpKXt2YXIgZT1udWxsLGY9bnVsbDtjPWMuZmlyc3RCYXNlVXBkYXRlO2lmKG51bGwhPT1jKXtkb3t2YXIgZz17ZXZlbnRUaW1lOmMuZXZlbnRUaW1lLGxhbmU6Yy5sYW5lLHRhZzpjLnRhZyxwYXlsb2FkOmMucGF5bG9hZCxjYWxsYmFjazpjLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWY/ZT1mPWc6Zj1mLm5leHQ9ZztjPWMubmV4dH13aGlsZShudWxsIT09Yyk7bnVsbD09PWY/ZT1mPWI6Zj1mLm5leHQ9Yn1lbHNlIGU9Zj1iO2M9e2Jhc2VTdGF0ZTpkLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZSxsYXN0QmFzZVVwZGF0ZTpmLHNoYXJlZDpkLnNoYXJlZCxlZmZlY3RzOmQuZWZmZWN0c307YS51cGRhdGVRdWV1ZT1jO3JldHVybn1hPWMubGFzdEJhc2VVcGRhdGU7bnVsbD09PWE/Yy5maXJzdEJhc2VVcGRhdGU9YjphLm5leHQ9XG5iO2MubGFzdEJhc2VVcGRhdGU9Yn1cbmZ1bmN0aW9uIENnKGEsYixjLGQpe3ZhciBlPWEudXBkYXRlUXVldWU7d2c9ITE7dmFyIGY9ZS5maXJzdEJhc2VVcGRhdGUsZz1lLmxhc3RCYXNlVXBkYXRlLGg9ZS5zaGFyZWQucGVuZGluZztpZihudWxsIT09aCl7ZS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBrPWgsbD1rLm5leHQ7ay5uZXh0PW51bGw7bnVsbD09PWc/Zj1sOmcubmV4dD1sO2c9azt2YXIgbj1hLmFsdGVybmF0ZTtpZihudWxsIT09bil7bj1uLnVwZGF0ZVF1ZXVlO3ZhciBBPW4ubGFzdEJhc2VVcGRhdGU7QSE9PWcmJihudWxsPT09QT9uLmZpcnN0QmFzZVVwZGF0ZT1sOkEubmV4dD1sLG4ubGFzdEJhc2VVcGRhdGU9ayl9fWlmKG51bGwhPT1mKXtBPWUuYmFzZVN0YXRlO2c9MDtuPWw9az1udWxsO2Rve2g9Zi5sYW5lO3ZhciBwPWYuZXZlbnRUaW1lO2lmKChkJmgpPT09aCl7bnVsbCE9PW4mJihuPW4ubmV4dD17ZXZlbnRUaW1lOnAsbGFuZTowLHRhZzpmLnRhZyxwYXlsb2FkOmYucGF5bG9hZCxjYWxsYmFjazpmLmNhbGxiYWNrLFxubmV4dDpudWxsfSk7YTp7dmFyIEM9YSx4PWY7aD1iO3A9Yztzd2l0Y2goeC50YWcpe2Nhc2UgMTpDPXgucGF5bG9hZDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgQyl7QT1DLmNhbGwocCxBLGgpO2JyZWFrIGF9QT1DO2JyZWFrIGE7Y2FzZSAzOkMuZmxhZ3M9Qy5mbGFncyYtNDA5N3w2NDtjYXNlIDA6Qz14LnBheWxvYWQ7aD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgQz9DLmNhbGwocCxBLGgpOkM7aWYobnVsbD09PWh8fHZvaWQgMD09PWgpYnJlYWsgYTtBPW0oe30sQSxoKTticmVhayBhO2Nhc2UgMjp3Zz0hMH19bnVsbCE9PWYuY2FsbGJhY2smJihhLmZsYWdzfD0zMixoPWUuZWZmZWN0cyxudWxsPT09aD9lLmVmZmVjdHM9W2ZdOmgucHVzaChmKSl9ZWxzZSBwPXtldmVudFRpbWU6cCxsYW5lOmgsdGFnOmYudGFnLHBheWxvYWQ6Zi5wYXlsb2FkLGNhbGxiYWNrOmYuY2FsbGJhY2ssbmV4dDpudWxsfSxudWxsPT09bj8obD1uPXAsaz1BKTpuPW4ubmV4dD1wLGd8PWg7Zj1mLm5leHQ7aWYobnVsbD09PVxuZilpZihoPWUuc2hhcmVkLnBlbmRpbmcsbnVsbD09PWgpYnJlYWs7ZWxzZSBmPWgubmV4dCxoLm5leHQ9bnVsbCxlLmxhc3RCYXNlVXBkYXRlPWgsZS5zaGFyZWQucGVuZGluZz1udWxsfXdoaWxlKDEpO251bGw9PT1uJiYoaz1BKTtlLmJhc2VTdGF0ZT1rO2UuZmlyc3RCYXNlVXBkYXRlPWw7ZS5sYXN0QmFzZVVwZGF0ZT1uO0RnfD1nO2EubGFuZXM9ZzthLm1lbW9pemVkU3RhdGU9QX19ZnVuY3Rpb24gRWcoYSxiLGMpe2E9Yi5lZmZlY3RzO2IuZWZmZWN0cz1udWxsO2lmKG51bGwhPT1hKWZvcihiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBkPWFbYl0sZT1kLmNhbGxiYWNrO2lmKG51bGwhPT1lKXtkLmNhbGxiYWNrPW51bGw7ZD1jO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlKXRocm93IEVycm9yKHkoMTkxLGUpKTtlLmNhbGwoZCl9fX12YXIgRmc9KG5ldyBhYS5Db21wb25lbnQpLnJlZnM7XG5mdW5jdGlvbiBHZyhhLGIsYyxkKXtiPWEubWVtb2l6ZWRTdGF0ZTtjPWMoZCxiKTtjPW51bGw9PT1jfHx2b2lkIDA9PT1jP2I6bSh7fSxiLGMpO2EubWVtb2l6ZWRTdGF0ZT1jOzA9PT1hLmxhbmVzJiYoYS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9Yyl9XG52YXIgS2c9e2lzTW91bnRlZDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLl9yZWFjdEludGVybmFscyk/WmIoYSk9PT1hOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9SGcoKSxlPUlnKGEpLGY9emcoZCxlKTtmLnBheWxvYWQ9Yjt2b2lkIDAhPT1jJiZudWxsIT09YyYmKGYuY2FsbGJhY2s9Yyk7QWcoYSxmKTtKZyhhLGUsZCl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9SGcoKSxlPUlnKGEpLGY9emcoZCxlKTtmLnRhZz0xO2YucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZi5jYWxsYmFjaz1jKTtBZyhhLGYpO0pnKGEsZSxkKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT1hLl9yZWFjdEludGVybmFsczt2YXIgYz1IZygpLGQ9SWcoYSksZT16ZyhjLGQpO2UudGFnPTI7dm9pZCAwIT09YiYmbnVsbCE9PWImJihlLmNhbGxiYWNrPVxuYik7QWcoYSxlKTtKZyhhLGQsYyl9fTtmdW5jdGlvbiBMZyhhLGIsYyxkLGUsZixnKXthPWEuc3RhdGVOb2RlO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShkLGYsZyk6Yi5wcm90b3R5cGUmJmIucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFKZShjLGQpfHwhSmUoZSxmKTohMH1cbmZ1bmN0aW9uIE1nKGEsYixjKXt2YXIgZD0hMSxlPUNmO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9mPXZnKGYpOihlPUZmKGIpP0RmOk0uY3VycmVudCxkPWIuY29udGV4dFR5cGVzLGY9KGQ9bnVsbCE9PWQmJnZvaWQgMCE9PWQpP0VmKGEsZSk6Q2YpO2I9bmV3IGIoYyxmKTthLm1lbW9pemVkU3RhdGU9bnVsbCE9PWIuc3RhdGUmJnZvaWQgMCE9PWIuc3RhdGU/Yi5zdGF0ZTpudWxsO2IudXBkYXRlcj1LZzthLnN0YXRlTm9kZT1iO2IuX3JlYWN0SW50ZXJuYWxzPWE7ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1mKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIE5nKGEsYixjLGQpe2E9Yi5zdGF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO2Iuc3RhdGUhPT1hJiZLZy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGIsYi5zdGF0ZSxudWxsKX1cbmZ1bmN0aW9uIE9nKGEsYixjLGQpe3ZhciBlPWEuc3RhdGVOb2RlO2UucHJvcHM9YztlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtlLnJlZnM9Rmc7eGcoYSk7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2UuY29udGV4dD12ZyhmKTooZj1GZihiKT9EZjpNLmN1cnJlbnQsZS5jb250ZXh0PUVmKGEsZikpO0NnKGEsYyxlLGQpO2Uuc3RhdGU9YS5tZW1vaXplZFN0YXRlO2Y9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJihHZyhhLGIsZixjKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50fHxcbihiPWUuc3RhdGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50JiZlLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLGIhPT1lLnN0YXRlJiZLZy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGUsZS5zdGF0ZSxudWxsKSxDZyhhLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50RGlkTW91bnQmJihhLmZsYWdzfD00KX12YXIgUGc9QXJyYXkuaXNBcnJheTtcbmZ1bmN0aW9uIFFnKGEsYixjKXthPWMucmVmO2lmKG51bGwhPT1hJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmXCJvYmplY3RcIiE9PXR5cGVvZiBhKXtpZihjLl9vd25lcil7Yz1jLl9vd25lcjtpZihjKXtpZigxIT09Yy50YWcpdGhyb3cgRXJyb3IoeSgzMDkpKTt2YXIgZD1jLnN0YXRlTm9kZX1pZighZCl0aHJvdyBFcnJvcih5KDE0NyxhKSk7dmFyIGU9XCJcIithO2lmKG51bGwhPT1iJiZudWxsIT09Yi5yZWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLnJlZiYmYi5yZWYuX3N0cmluZ1JlZj09PWUpcmV0dXJuIGIucmVmO2I9ZnVuY3Rpb24oYSl7dmFyIGI9ZC5yZWZzO2I9PT1GZyYmKGI9ZC5yZWZzPXt9KTtudWxsPT09YT9kZWxldGUgYltlXTpiW2VdPWF9O2IuX3N0cmluZ1JlZj1lO3JldHVybiBifWlmKFwic3RyaW5nXCIhPT10eXBlb2YgYSl0aHJvdyBFcnJvcih5KDI4NCkpO2lmKCFjLl9vd25lcil0aHJvdyBFcnJvcih5KDI5MCxhKSk7fXJldHVybiBhfVxuZnVuY3Rpb24gUmcoYSxiKXtpZihcInRleHRhcmVhXCIhPT1hLnR5cGUpdGhyb3cgRXJyb3IoeSgzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGIpP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYikuam9pbihcIiwgXCIpK1wifVwiOmIpKTt9XG5mdW5jdGlvbiBTZyhhKXtmdW5jdGlvbiBiKGIsYyl7aWYoYSl7dmFyIGQ9Yi5sYXN0RWZmZWN0O251bGwhPT1kPyhkLm5leHRFZmZlY3Q9YyxiLmxhc3RFZmZlY3Q9Yyk6Yi5maXJzdEVmZmVjdD1iLmxhc3RFZmZlY3Q9YztjLm5leHRFZmZlY3Q9bnVsbDtjLmZsYWdzPTh9fWZ1bmN0aW9uIGMoYyxkKXtpZighYSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1kOyliKGMsZCksZD1kLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChhLGIpe2ZvcihhPW5ldyBNYXA7bnVsbCE9PWI7KW51bGwhPT1iLmtleT9hLnNldChiLmtleSxiKTphLnNldChiLmluZGV4LGIpLGI9Yi5zaWJsaW5nO3JldHVybiBhfWZ1bmN0aW9uIGUoYSxiKXthPVRnKGEsYik7YS5pbmRleD0wO2Euc2libGluZz1udWxsO3JldHVybiBhfWZ1bmN0aW9uIGYoYixjLGQpe2IuaW5kZXg9ZDtpZighYSlyZXR1cm4gYztkPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1kKXJldHVybiBkPWQuaW5kZXgsZDxjPyhiLmZsYWdzPTIsXG5jKTpkO2IuZmxhZ3M9MjtyZXR1cm4gY31mdW5jdGlvbiBnKGIpe2EmJm51bGw9PT1iLmFsdGVybmF0ZSYmKGIuZmxhZ3M9Mik7cmV0dXJuIGJ9ZnVuY3Rpb24gaChhLGIsYyxkKXtpZihudWxsPT09Ynx8NiE9PWIudGFnKXJldHVybiBiPVVnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIGsoYSxiLGMsZCl7aWYobnVsbCE9PWImJmIuZWxlbWVudFR5cGU9PT1jLnR5cGUpcmV0dXJuIGQ9ZShiLGMucHJvcHMpLGQucmVmPVFnKGEsYixjKSxkLnJldHVybj1hLGQ7ZD1WZyhjLnR5cGUsYy5rZXksYy5wcm9wcyxudWxsLGEubW9kZSxkKTtkLnJlZj1RZyhhLGIsYyk7ZC5yZXR1cm49YTtyZXR1cm4gZH1mdW5jdGlvbiBsKGEsYixjLGQpe2lmKG51bGw9PT1ifHw0IT09Yi50YWd8fGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1jLmNvbnRhaW5lckluZm98fGIuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09Yy5pbXBsZW1lbnRhdGlvbilyZXR1cm4gYj1cbldnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjLmNoaWxkcmVufHxbXSk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBuKGEsYixjLGQsZil7aWYobnVsbD09PWJ8fDchPT1iLnRhZylyZXR1cm4gYj1YZyhjLGEubW9kZSxkLGYpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIEEoYSxiLGMpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYnx8XCJudW1iZXJcIj09PXR5cGVvZiBiKXJldHVybiBiPVVnKFwiXCIrYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmbnVsbCE9PWIpe3N3aXRjaChiLiQkdHlwZW9mKXtjYXNlIHNhOnJldHVybiBjPVZnKGIudHlwZSxiLmtleSxiLnByb3BzLG51bGwsYS5tb2RlLGMpLGMucmVmPVFnKGEsbnVsbCxiKSxjLnJldHVybj1hLGM7Y2FzZSB0YTpyZXR1cm4gYj1XZyhiLGEubW9kZSxjKSxiLnJldHVybj1hLGJ9aWYoUGcoYil8fExhKGIpKXJldHVybiBiPVhnKGIsXG5hLm1vZGUsYyxudWxsKSxiLnJldHVybj1hLGI7UmcoYSxiKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGEsYixjLGQpe3ZhciBlPW51bGwhPT1iP2Iua2V5Om51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBjfHxcIm51bWJlclwiPT09dHlwZW9mIGMpcmV0dXJuIG51bGwhPT1lP251bGw6aChhLGIsXCJcIitjLGQpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWMpe3N3aXRjaChjLiQkdHlwZW9mKXtjYXNlIHNhOnJldHVybiBjLmtleT09PWU/Yy50eXBlPT09dWE/bihhLGIsYy5wcm9wcy5jaGlsZHJlbixkLGUpOmsoYSxiLGMsZCk6bnVsbDtjYXNlIHRhOnJldHVybiBjLmtleT09PWU/bChhLGIsYyxkKTpudWxsfWlmKFBnKGMpfHxMYShjKSlyZXR1cm4gbnVsbCE9PWU/bnVsbDpuKGEsYixjLGQsbnVsbCk7UmcoYSxjKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDKGEsYixjLGQsZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBkfHxcIm51bWJlclwiPT09dHlwZW9mIGQpcmV0dXJuIGE9YS5nZXQoYyl8fFxubnVsbCxoKGIsYSxcIlwiK2QsZSk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2Ugc2E6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGQudHlwZT09PXVhP24oYixhLGQucHJvcHMuY2hpbGRyZW4sZSxkLmtleSk6ayhiLGEsZCxlKTtjYXNlIHRhOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxsKGIsYSxkLGUpfWlmKFBnKGQpfHxMYShkKSlyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxuKGIsYSxkLGUsbnVsbCk7UmcoYixkKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB4KGUsZyxoLGspe2Zvcih2YXIgbD1udWxsLHQ9bnVsbCx1PWcsej1nPTAscT1udWxsO251bGwhPT11JiZ6PGgubGVuZ3RoO3orKyl7dS5pbmRleD56PyhxPXUsdT1udWxsKTpxPXUuc2libGluZzt2YXIgbj1wKGUsdSxoW3pdLGspO2lmKG51bGw9PT1uKXtudWxsPT09dSYmKHU9cSk7YnJlYWt9YSYmdSYmbnVsbD09PVxubi5hbHRlcm5hdGUmJmIoZSx1KTtnPWYobixnLHopO251bGw9PT10P2w9bjp0LnNpYmxpbmc9bjt0PW47dT1xfWlmKHo9PT1oLmxlbmd0aClyZXR1cm4gYyhlLHUpLGw7aWYobnVsbD09PXUpe2Zvcig7ejxoLmxlbmd0aDt6KyspdT1BKGUsaFt6XSxrKSxudWxsIT09dSYmKGc9Zih1LGcseiksbnVsbD09PXQ/bD11OnQuc2libGluZz11LHQ9dSk7cmV0dXJuIGx9Zm9yKHU9ZChlLHUpO3o8aC5sZW5ndGg7eisrKXE9Qyh1LGUseixoW3pdLGspLG51bGwhPT1xJiYoYSYmbnVsbCE9PXEuYWx0ZXJuYXRlJiZ1LmRlbGV0ZShudWxsPT09cS5rZXk/ejpxLmtleSksZz1mKHEsZyx6KSxudWxsPT09dD9sPXE6dC5zaWJsaW5nPXEsdD1xKTthJiZ1LmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO3JldHVybiBsfWZ1bmN0aW9uIHcoZSxnLGgsayl7dmFyIGw9TGEoaCk7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGwpdGhyb3cgRXJyb3IoeSgxNTApKTtoPWwuY2FsbChoKTtpZihudWxsPT1cbmgpdGhyb3cgRXJyb3IoeSgxNTEpKTtmb3IodmFyIHQ9bD1udWxsLHU9Zyx6PWc9MCxxPW51bGwsbj1oLm5leHQoKTtudWxsIT09dSYmIW4uZG9uZTt6Kyssbj1oLm5leHQoKSl7dS5pbmRleD56PyhxPXUsdT1udWxsKTpxPXUuc2libGluZzt2YXIgdz1wKGUsdSxuLnZhbHVlLGspO2lmKG51bGw9PT13KXtudWxsPT09dSYmKHU9cSk7YnJlYWt9YSYmdSYmbnVsbD09PXcuYWx0ZXJuYXRlJiZiKGUsdSk7Zz1mKHcsZyx6KTtudWxsPT09dD9sPXc6dC5zaWJsaW5nPXc7dD13O3U9cX1pZihuLmRvbmUpcmV0dXJuIGMoZSx1KSxsO2lmKG51bGw9PT11KXtmb3IoOyFuLmRvbmU7eisrLG49aC5uZXh0KCkpbj1BKGUsbi52YWx1ZSxrKSxudWxsIT09biYmKGc9ZihuLGcseiksbnVsbD09PXQ/bD1uOnQuc2libGluZz1uLHQ9bik7cmV0dXJuIGx9Zm9yKHU9ZChlLHUpOyFuLmRvbmU7eisrLG49aC5uZXh0KCkpbj1DKHUsZSx6LG4udmFsdWUsayksbnVsbCE9PW4mJihhJiZudWxsIT09bi5hbHRlcm5hdGUmJlxudS5kZWxldGUobnVsbD09PW4ua2V5P3o6bi5rZXkpLGc9ZihuLGcseiksbnVsbD09PXQ/bD1uOnQuc2libGluZz1uLHQ9bik7YSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtyZXR1cm4gbH1yZXR1cm4gZnVuY3Rpb24oYSxkLGYsaCl7dmFyIGs9XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09ZiYmZi50eXBlPT09dWEmJm51bGw9PT1mLmtleTtrJiYoZj1mLnByb3BzLmNoaWxkcmVuKTt2YXIgbD1cIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mO2lmKGwpc3dpdGNoKGYuJCR0eXBlb2Ype2Nhc2Ugc2E6YTp7bD1mLmtleTtmb3Ioaz1kO251bGwhPT1rOyl7aWYoay5rZXk9PT1sKXtzd2l0Y2goay50YWcpe2Nhc2UgNzppZihmLnR5cGU9PT11YSl7YyhhLGsuc2libGluZyk7ZD1lKGssZi5wcm9wcy5jaGlsZHJlbik7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1icmVhaztkZWZhdWx0OmlmKGsuZWxlbWVudFR5cGU9PT1mLnR5cGUpe2MoYSxrLnNpYmxpbmcpO1xuZD1lKGssZi5wcm9wcyk7ZC5yZWY9UWcoYSxrLGYpO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9fWMoYSxrKTticmVha31lbHNlIGIoYSxrKTtrPWsuc2libGluZ31mLnR5cGU9PT11YT8oZD1YZyhmLnByb3BzLmNoaWxkcmVuLGEubW9kZSxoLGYua2V5KSxkLnJldHVybj1hLGE9ZCk6KGg9VmcoZi50eXBlLGYua2V5LGYucHJvcHMsbnVsbCxhLm1vZGUsaCksaC5yZWY9UWcoYSxkLGYpLGgucmV0dXJuPWEsYT1oKX1yZXR1cm4gZyhhKTtjYXNlIHRhOmE6e2ZvcihrPWYua2V5O251bGwhPT1kOyl7aWYoZC5rZXk9PT1rKWlmKDQ9PT1kLnRhZyYmZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWYuY29udGFpbmVySW5mbyYmZC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1mLmltcGxlbWVudGF0aW9uKXtjKGEsZC5zaWJsaW5nKTtkPWUoZCxmLmNoaWxkcmVufHxbXSk7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1lbHNle2MoYSxkKTticmVha31lbHNlIGIoYSxkKTtkPWQuc2libGluZ31kPVxuV2coZixhLm1vZGUsaCk7ZC5yZXR1cm49YTthPWR9cmV0dXJuIGcoYSl9aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBmfHxcIm51bWJlclwiPT09dHlwZW9mIGYpcmV0dXJuIGY9XCJcIitmLG51bGwhPT1kJiY2PT09ZC50YWc/KGMoYSxkLnNpYmxpbmcpLGQ9ZShkLGYpLGQucmV0dXJuPWEsYT1kKTooYyhhLGQpLGQ9VWcoZixhLm1vZGUsaCksZC5yZXR1cm49YSxhPWQpLGcoYSk7aWYoUGcoZikpcmV0dXJuIHgoYSxkLGYsaCk7aWYoTGEoZikpcmV0dXJuIHcoYSxkLGYsaCk7bCYmUmcoYSxmKTtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGYmJiFrKXN3aXRjaChhLnRhZyl7Y2FzZSAxOmNhc2UgMjI6Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp0aHJvdyBFcnJvcih5KDE1MixSYShhLnR5cGUpfHxcIkNvbXBvbmVudFwiKSk7fXJldHVybiBjKGEsZCl9fXZhciBZZz1TZyghMCksWmc9U2coITEpLCRnPXt9LGFoPUJmKCRnKSxiaD1CZigkZyksY2g9QmYoJGcpO1xuZnVuY3Rpb24gZGgoYSl7aWYoYT09PSRnKXRocm93IEVycm9yKHkoMTc0KSk7cmV0dXJuIGF9ZnVuY3Rpb24gZWgoYSxiKXtJKGNoLGIpO0koYmgsYSk7SShhaCwkZyk7YT1iLm5vZGVUeXBlO3N3aXRjaChhKXtjYXNlIDk6Y2FzZSAxMTpiPShiPWIuZG9jdW1lbnRFbGVtZW50KT9iLm5hbWVzcGFjZVVSSTptYihudWxsLFwiXCIpO2JyZWFrO2RlZmF1bHQ6YT04PT09YT9iLnBhcmVudE5vZGU6YixiPWEubmFtZXNwYWNlVVJJfHxudWxsLGE9YS50YWdOYW1lLGI9bWIoYixhKX1IKGFoKTtJKGFoLGIpfWZ1bmN0aW9uIGZoKCl7SChhaCk7SChiaCk7SChjaCl9ZnVuY3Rpb24gZ2goYSl7ZGgoY2guY3VycmVudCk7dmFyIGI9ZGgoYWguY3VycmVudCk7dmFyIGM9bWIoYixhLnR5cGUpO2IhPT1jJiYoSShiaCxhKSxJKGFoLGMpKX1mdW5jdGlvbiBoaChhKXtiaC5jdXJyZW50PT09YSYmKEgoYWgpLEgoYmgpKX12YXIgUD1CZigwKTtcbmZ1bmN0aW9uIGloKGEpe2Zvcih2YXIgYj1hO251bGwhPT1iOyl7aWYoMTM9PT1iLnRhZyl7dmFyIGM9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1jJiYoYz1jLmRlaHlkcmF0ZWQsbnVsbD09PWN8fFwiJD9cIj09PWMuZGF0YXx8XCIkIVwiPT09Yy5kYXRhKSlyZXR1cm4gYn1lbHNlIGlmKDE5PT09Yi50YWcmJnZvaWQgMCE9PWIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcil7aWYoMCE9PShiLmZsYWdzJjY0KSlyZXR1cm4gYn1lbHNlIGlmKG51bGwhPT1iLmNoaWxkKXtiLmNoaWxkLnJldHVybj1iO2I9Yi5jaGlsZDtjb250aW51ZX1pZihiPT09YSlicmVhaztmb3IoO251bGw9PT1iLnNpYmxpbmc7KXtpZihudWxsPT09Yi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm47Yj1iLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIGpoPW51bGwsa2g9bnVsbCxsaD0hMTtcbmZ1bmN0aW9uIG1oKGEsYil7dmFyIGM9bmgoNSxudWxsLG51bGwsMCk7Yy5lbGVtZW50VHlwZT1cIkRFTEVURURcIjtjLnR5cGU9XCJERUxFVEVEXCI7Yy5zdGF0ZU5vZGU9YjtjLnJldHVybj1hO2MuZmxhZ3M9ODtudWxsIT09YS5sYXN0RWZmZWN0PyhhLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1jLGEubGFzdEVmZmVjdD1jKTphLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1jfWZ1bmN0aW9uIG9oKGEsYil7c3dpdGNoKGEudGFnKXtjYXNlIDU6dmFyIGM9YS50eXBlO2I9MSE9PWIubm9kZVR5cGV8fGMudG9Mb3dlckNhc2UoKSE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOmI7cmV0dXJuIG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLCEwKTohMTtjYXNlIDY6cmV0dXJuIGI9XCJcIj09PWEucGVuZGluZ1Byb3BzfHwzIT09Yi5ub2RlVHlwZT9udWxsOmIsbnVsbCE9PWI/KGEuc3RhdGVOb2RlPWIsITApOiExO2Nhc2UgMTM6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19XG5mdW5jdGlvbiBwaChhKXtpZihsaCl7dmFyIGI9a2g7aWYoYil7dmFyIGM9YjtpZighb2goYSxiKSl7Yj1yZihjLm5leHRTaWJsaW5nKTtpZighYnx8IW9oKGEsYikpe2EuZmxhZ3M9YS5mbGFncyYtMTAyNXwyO2xoPSExO2poPWE7cmV0dXJufW1oKGpoLGMpfWpoPWE7a2g9cmYoYi5maXJzdENoaWxkKX1lbHNlIGEuZmxhZ3M9YS5mbGFncyYtMTAyNXwyLGxoPSExLGpoPWF9fWZ1bmN0aW9uIHFoKGEpe2ZvcihhPWEucmV0dXJuO251bGwhPT1hJiY1IT09YS50YWcmJjMhPT1hLnRhZyYmMTMhPT1hLnRhZzspYT1hLnJldHVybjtqaD1hfVxuZnVuY3Rpb24gcmgoYSl7aWYoYSE9PWpoKXJldHVybiExO2lmKCFsaClyZXR1cm4gcWgoYSksbGg9ITAsITE7dmFyIGI9YS50eXBlO2lmKDUhPT1hLnRhZ3x8XCJoZWFkXCIhPT1iJiZcImJvZHlcIiE9PWImJiFuZihiLGEubWVtb2l6ZWRQcm9wcykpZm9yKGI9a2g7YjspbWgoYSxiKSxiPXJmKGIubmV4dFNpYmxpbmcpO3FoKGEpO2lmKDEzPT09YS50YWcpe2E9YS5tZW1vaXplZFN0YXRlO2E9bnVsbCE9PWE/YS5kZWh5ZHJhdGVkOm51bGw7aWYoIWEpdGhyb3cgRXJyb3IoeSgzMTcpKTthOnthPWEubmV4dFNpYmxpbmc7Zm9yKGI9MDthOyl7aWYoOD09PWEubm9kZVR5cGUpe3ZhciBjPWEuZGF0YTtpZihcIi8kXCI9PT1jKXtpZigwPT09Yil7a2g9cmYoYS5uZXh0U2libGluZyk7YnJlYWsgYX1iLS19ZWxzZVwiJFwiIT09YyYmXCIkIVwiIT09YyYmXCIkP1wiIT09Y3x8YisrfWE9YS5uZXh0U2libGluZ31raD1udWxsfX1lbHNlIGtoPWpoP3JmKGEuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfVxuZnVuY3Rpb24gc2goKXtraD1qaD1udWxsO2xoPSExfXZhciB0aD1bXTtmdW5jdGlvbiB1aCgpe2Zvcih2YXIgYT0wO2E8dGgubGVuZ3RoO2ErKyl0aFthXS5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1udWxsO3RoLmxlbmd0aD0wfXZhciB2aD1yYS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHdoPXJhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLHhoPTAsUj1udWxsLFM9bnVsbCxUPW51bGwseWg9ITEsemg9ITE7ZnVuY3Rpb24gQWgoKXt0aHJvdyBFcnJvcih5KDMyMSkpO31mdW5jdGlvbiBCaChhLGIpe2lmKG51bGw9PT1iKXJldHVybiExO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGgmJmM8YS5sZW5ndGg7YysrKWlmKCFIZShhW2NdLGJbY10pKXJldHVybiExO3JldHVybiEwfVxuZnVuY3Rpb24gQ2goYSxiLGMsZCxlLGYpe3hoPWY7Uj1iO2IubWVtb2l6ZWRTdGF0ZT1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtiLmxhbmVzPTA7dmguY3VycmVudD1udWxsPT09YXx8bnVsbD09PWEubWVtb2l6ZWRTdGF0ZT9EaDpFaDthPWMoZCxlKTtpZih6aCl7Zj0wO2Rve3poPSExO2lmKCEoMjU+ZikpdGhyb3cgRXJyb3IoeSgzMDEpKTtmKz0xO1Q9Uz1udWxsO2IudXBkYXRlUXVldWU9bnVsbDt2aC5jdXJyZW50PUZoO2E9YyhkLGUpfXdoaWxlKHpoKX12aC5jdXJyZW50PUdoO2I9bnVsbCE9PVMmJm51bGwhPT1TLm5leHQ7eGg9MDtUPVM9Uj1udWxsO3loPSExO2lmKGIpdGhyb3cgRXJyb3IoeSgzMDApKTtyZXR1cm4gYX1mdW5jdGlvbiBIaCgpe3ZhciBhPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O251bGw9PT1UP1IubWVtb2l6ZWRTdGF0ZT1UPWE6VD1ULm5leHQ9YTtyZXR1cm4gVH1cbmZ1bmN0aW9uIEloKCl7aWYobnVsbD09PVMpe3ZhciBhPVIuYWx0ZXJuYXRlO2E9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBhPVMubmV4dDt2YXIgYj1udWxsPT09VD9SLm1lbW9pemVkU3RhdGU6VC5uZXh0O2lmKG51bGwhPT1iKVQ9YixTPWE7ZWxzZXtpZihudWxsPT09YSl0aHJvdyBFcnJvcih5KDMxMCkpO1M9YTthPXttZW1vaXplZFN0YXRlOlMubWVtb2l6ZWRTdGF0ZSxiYXNlU3RhdGU6Uy5iYXNlU3RhdGUsYmFzZVF1ZXVlOlMuYmFzZVF1ZXVlLHF1ZXVlOlMucXVldWUsbmV4dDpudWxsfTtudWxsPT09VD9SLm1lbW9pemVkU3RhdGU9VD1hOlQ9VC5uZXh0PWF9cmV0dXJuIFR9ZnVuY3Rpb24gSmgoYSxiKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYj9iKGEpOmJ9XG5mdW5jdGlvbiBLaChhKXt2YXIgYj1JaCgpLGM9Yi5xdWV1ZTtpZihudWxsPT09Yyl0aHJvdyBFcnJvcih5KDMxMSkpO2MubGFzdFJlbmRlcmVkUmVkdWNlcj1hO3ZhciBkPVMsZT1kLmJhc2VRdWV1ZSxmPWMucGVuZGluZztpZihudWxsIT09Zil7aWYobnVsbCE9PWUpe3ZhciBnPWUubmV4dDtlLm5leHQ9Zi5uZXh0O2YubmV4dD1nfWQuYmFzZVF1ZXVlPWU9ZjtjLnBlbmRpbmc9bnVsbH1pZihudWxsIT09ZSl7ZT1lLm5leHQ7ZD1kLmJhc2VTdGF0ZTt2YXIgaD1nPWY9bnVsbCxrPWU7ZG97dmFyIGw9ay5sYW5lO2lmKCh4aCZsKT09PWwpbnVsbCE9PWgmJihoPWgubmV4dD17bGFuZTowLGFjdGlvbjprLmFjdGlvbixlYWdlclJlZHVjZXI6ay5lYWdlclJlZHVjZXIsZWFnZXJTdGF0ZTprLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSksZD1rLmVhZ2VyUmVkdWNlcj09PWE/ay5lYWdlclN0YXRlOmEoZCxrLmFjdGlvbik7ZWxzZXt2YXIgbj17bGFuZTpsLGFjdGlvbjprLmFjdGlvbixlYWdlclJlZHVjZXI6ay5lYWdlclJlZHVjZXIsXG5lYWdlclN0YXRlOmsuZWFnZXJTdGF0ZSxuZXh0Om51bGx9O251bGw9PT1oPyhnPWg9bixmPWQpOmg9aC5uZXh0PW47Ui5sYW5lc3w9bDtEZ3w9bH1rPWsubmV4dH13aGlsZShudWxsIT09ayYmayE9PWUpO251bGw9PT1oP2Y9ZDpoLm5leHQ9ZztIZShkLGIubWVtb2l6ZWRTdGF0ZSl8fCh1Zz0hMCk7Yi5tZW1vaXplZFN0YXRlPWQ7Yi5iYXNlU3RhdGU9ZjtiLmJhc2VRdWV1ZT1oO2MubGFzdFJlbmRlcmVkU3RhdGU9ZH1yZXR1cm5bYi5tZW1vaXplZFN0YXRlLGMuZGlzcGF0Y2hdfVxuZnVuY3Rpb24gTGgoYSl7dmFyIGI9SWgoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IoeSgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1jLmRpc3BhdGNoLGU9Yy5wZW5kaW5nLGY9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1lKXtjLnBlbmRpbmc9bnVsbDt2YXIgZz1lPWUubmV4dDtkbyBmPWEoZixnLmFjdGlvbiksZz1nLm5leHQ7d2hpbGUoZyE9PWUpO0hlKGYsYi5tZW1vaXplZFN0YXRlKXx8KHVnPSEwKTtiLm1lbW9pemVkU3RhdGU9ZjtudWxsPT09Yi5iYXNlUXVldWUmJihiLmJhc2VTdGF0ZT1mKTtjLmxhc3RSZW5kZXJlZFN0YXRlPWZ9cmV0dXJuW2YsZF19XG5mdW5jdGlvbiBNaChhLGIsYyl7dmFyIGQ9Yi5fZ2V0VmVyc2lvbjtkPWQoYi5fc291cmNlKTt2YXIgZT1iLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5O2lmKG51bGwhPT1lKWE9ZT09PWQ7ZWxzZSBpZihhPWEubXV0YWJsZVJlYWRMYW5lcyxhPSh4aCZhKT09PWEpYi5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1kLHRoLnB1c2goYik7aWYoYSlyZXR1cm4gYyhiLl9zb3VyY2UpO3RoLnB1c2goYik7dGhyb3cgRXJyb3IoeSgzNTApKTt9XG5mdW5jdGlvbiBOaChhLGIsYyxkKXt2YXIgZT1VO2lmKG51bGw9PT1lKXRocm93IEVycm9yKHkoMzQ5KSk7dmFyIGY9Yi5fZ2V0VmVyc2lvbixnPWYoYi5fc291cmNlKSxoPXZoLmN1cnJlbnQsaz1oLnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIE1oKGUsYixjKX0pLGw9a1sxXSxuPWtbMF07az1UO3ZhciBBPWEubWVtb2l6ZWRTdGF0ZSxwPUEucmVmcyxDPXAuZ2V0U25hcHNob3QseD1BLnNvdXJjZTtBPUEuc3Vic2NyaWJlO3ZhciB3PVI7YS5tZW1vaXplZFN0YXRlPXtyZWZzOnAsc291cmNlOmIsc3Vic2NyaWJlOmR9O2gudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cC5nZXRTbmFwc2hvdD1jO3Auc2V0U25hcHNob3Q9bDt2YXIgYT1mKGIuX3NvdXJjZSk7aWYoIUhlKGcsYSkpe2E9YyhiLl9zb3VyY2UpO0hlKG4sYSl8fChsKGEpLGE9SWcodyksZS5tdXRhYmxlUmVhZExhbmVzfD1hJmUucGVuZGluZ0xhbmVzKTthPWUubXV0YWJsZVJlYWRMYW5lcztlLmVudGFuZ2xlZExhbmVzfD1hO2Zvcih2YXIgZD1cbmUuZW50YW5nbGVtZW50cyxoPWE7MDxoOyl7dmFyIGs9MzEtVmMoaCksdj0xPDxrO2Rba118PWE7aCY9fnZ9fX0sW2MsYixkXSk7aC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZChiLl9zb3VyY2UsZnVuY3Rpb24oKXt2YXIgYT1wLmdldFNuYXBzaG90LGM9cC5zZXRTbmFwc2hvdDt0cnl7YyhhKGIuX3NvdXJjZSkpO3ZhciBkPUlnKHcpO2UubXV0YWJsZVJlYWRMYW5lc3w9ZCZlLnBlbmRpbmdMYW5lc31jYXRjaChxKXtjKGZ1bmN0aW9uKCl7dGhyb3cgcTt9KX19KX0sW2IsZF0pO0hlKEMsYykmJkhlKHgsYikmJkhlKEEsZCl8fChhPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkpoLGxhc3RSZW5kZXJlZFN0YXRlOm59LGEuZGlzcGF0Y2g9bD1PaC5iaW5kKG51bGwsUixhKSxrLnF1ZXVlPWEsay5iYXNlUXVldWU9bnVsbCxuPU1oKGUsYixjKSxrLm1lbW9pemVkU3RhdGU9ay5iYXNlU3RhdGU9bik7cmV0dXJuIG59XG5mdW5jdGlvbiBQaChhLGIsYyl7dmFyIGQ9SWgoKTtyZXR1cm4gTmgoZCxhLGIsYyl9ZnVuY3Rpb24gUWgoYSl7dmFyIGI9SGgoKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmKGE9YSgpKTtiLm1lbW9pemVkU3RhdGU9Yi5iYXNlU3RhdGU9YTthPWIucXVldWU9e3BlbmRpbmc6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6SmgsbGFzdFJlbmRlcmVkU3RhdGU6YX07YT1hLmRpc3BhdGNoPU9oLmJpbmQobnVsbCxSLGEpO3JldHVybltiLm1lbW9pemVkU3RhdGUsYV19XG5mdW5jdGlvbiBSaChhLGIsYyxkKXthPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH07Yj1SLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGx9LFIudXBkYXRlUXVldWU9YixiLmxhc3RFZmZlY3Q9YS5uZXh0PWEpOihjPWIubGFzdEVmZmVjdCxudWxsPT09Yz9iLmxhc3RFZmZlY3Q9YS5uZXh0PWE6KGQ9Yy5uZXh0LGMubmV4dD1hLGEubmV4dD1kLGIubGFzdEVmZmVjdD1hKSk7cmV0dXJuIGF9ZnVuY3Rpb24gU2goYSl7dmFyIGI9SGgoKTthPXtjdXJyZW50OmF9O3JldHVybiBiLm1lbW9pemVkU3RhdGU9YX1mdW5jdGlvbiBUaCgpe3JldHVybiBJaCgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gVWgoYSxiLGMsZCl7dmFyIGU9SGgoKTtSLmZsYWdzfD1hO2UubWVtb2l6ZWRTdGF0ZT1SaCgxfGIsYyx2b2lkIDAsdm9pZCAwPT09ZD9udWxsOmQpfVxuZnVuY3Rpb24gVmgoYSxiLGMsZCl7dmFyIGU9SWgoKTtkPXZvaWQgMD09PWQ/bnVsbDpkO3ZhciBmPXZvaWQgMDtpZihudWxsIT09Uyl7dmFyIGc9Uy5tZW1vaXplZFN0YXRlO2Y9Zy5kZXN0cm95O2lmKG51bGwhPT1kJiZCaChkLGcuZGVwcykpe1JoKGIsYyxmLGQpO3JldHVybn19Ui5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9UmgoMXxiLGMsZixkKX1mdW5jdGlvbiBXaChhLGIpe3JldHVybiBVaCg1MTYsNCxhLGIpfWZ1bmN0aW9uIFhoKGEsYil7cmV0dXJuIFZoKDUxNiw0LGEsYil9ZnVuY3Rpb24gWWgoYSxiKXtyZXR1cm4gVmgoNCwyLGEsYil9ZnVuY3Rpb24gWmgoYSxiKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYilyZXR1cm4gYT1hKCksYihhKSxmdW5jdGlvbigpe2IobnVsbCl9O2lmKG51bGwhPT1iJiZ2b2lkIDAhPT1iKXJldHVybiBhPWEoKSxiLmN1cnJlbnQ9YSxmdW5jdGlvbigpe2IuY3VycmVudD1udWxsfX1cbmZ1bmN0aW9uICRoKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4gVmgoNCwyLFpoLmJpbmQobnVsbCxiLGEpLGMpfWZ1bmN0aW9uIGFpKCl7fWZ1bmN0aW9uIGJpKGEsYil7dmFyIGM9SWgoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJkJoKGIsZFsxXSkpcmV0dXJuIGRbMF07Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfWZ1bmN0aW9uIGNpKGEsYil7dmFyIGM9SWgoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJkJoKGIsZFsxXSkpcmV0dXJuIGRbMF07YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfVxuZnVuY3Rpb24gZGkoYSxiKXt2YXIgYz1lZygpO2dnKDk4PmM/OTg6YyxmdW5jdGlvbigpe2EoITApfSk7Z2coOTc8Yz85NzpjLGZ1bmN0aW9uKCl7dmFyIGM9d2gudHJhbnNpdGlvbjt3aC50cmFuc2l0aW9uPTE7dHJ5e2EoITEpLGIoKX1maW5hbGx5e3doLnRyYW5zaXRpb249Y319KX1cbmZ1bmN0aW9uIE9oKGEsYixjKXt2YXIgZD1IZygpLGU9SWcoYSksZj17bGFuZTplLGFjdGlvbjpjLGVhZ2VyUmVkdWNlcjpudWxsLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LGc9Yi5wZW5kaW5nO251bGw9PT1nP2YubmV4dD1mOihmLm5leHQ9Zy5uZXh0LGcubmV4dD1mKTtiLnBlbmRpbmc9ZjtnPWEuYWx0ZXJuYXRlO2lmKGE9PT1SfHxudWxsIT09ZyYmZz09PVIpemg9eWg9ITA7ZWxzZXtpZigwPT09YS5sYW5lcyYmKG51bGw9PT1nfHwwPT09Zy5sYW5lcykmJihnPWIubGFzdFJlbmRlcmVkUmVkdWNlcixudWxsIT09ZykpdHJ5e3ZhciBoPWIubGFzdFJlbmRlcmVkU3RhdGUsaz1nKGgsYyk7Zi5lYWdlclJlZHVjZXI9ZztmLmVhZ2VyU3RhdGU9aztpZihIZShrLGgpKXJldHVybn1jYXRjaChsKXt9ZmluYWxseXt9SmcoYSxlLGQpfX1cbnZhciBHaD17cmVhZENvbnRleHQ6dmcsdXNlQ2FsbGJhY2s6QWgsdXNlQ29udGV4dDpBaCx1c2VFZmZlY3Q6QWgsdXNlSW1wZXJhdGl2ZUhhbmRsZTpBaCx1c2VMYXlvdXRFZmZlY3Q6QWgsdXNlTWVtbzpBaCx1c2VSZWR1Y2VyOkFoLHVzZVJlZjpBaCx1c2VTdGF0ZTpBaCx1c2VEZWJ1Z1ZhbHVlOkFoLHVzZURlZmVycmVkVmFsdWU6QWgsdXNlVHJhbnNpdGlvbjpBaCx1c2VNdXRhYmxlU291cmNlOkFoLHVzZU9wYXF1ZUlkZW50aWZpZXI6QWgsdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxEaD17cmVhZENvbnRleHQ6dmcsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXtIaCgpLm1lbW9pemVkU3RhdGU9W2Esdm9pZCAwPT09Yj9udWxsOmJdO3JldHVybiBhfSx1c2VDb250ZXh0OnZnLHVzZUVmZmVjdDpXaCx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4gVWgoNCwyLFpoLmJpbmQobnVsbCxcbmIsYSksYyl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiBVaCg0LDIsYSxiKX0sdXNlTWVtbzpmdW5jdGlvbihhLGIpe3ZhciBjPUhoKCk7Yj12b2lkIDA9PT1iP251bGw6YjthPWEoKTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPUhoKCk7Yj12b2lkIDAhPT1jP2MoYik6YjtkLm1lbW9pemVkU3RhdGU9ZC5iYXNlU3RhdGU9YjthPWQucXVldWU9e3BlbmRpbmc6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTpifTthPWEuZGlzcGF0Y2g9T2guYmluZChudWxsLFIsYSk7cmV0dXJuW2QubWVtb2l6ZWRTdGF0ZSxhXX0sdXNlUmVmOlNoLHVzZVN0YXRlOlFoLHVzZURlYnVnVmFsdWU6YWksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1RaChhKSxjPWJbMF0sZD1iWzFdO1doKGZ1bmN0aW9uKCl7dmFyIGI9d2gudHJhbnNpdGlvbjtcbndoLnRyYW5zaXRpb249MTt0cnl7ZChhKX1maW5hbGx5e3doLnRyYW5zaXRpb249Yn19LFthXSk7cmV0dXJuIGN9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1RaCghMSksYj1hWzBdO2E9ZGkuYmluZChudWxsLGFbMV0pO1NoKGEpO3JldHVyblthLGJdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1IaCgpO2QubWVtb2l6ZWRTdGF0ZT17cmVmczp7Z2V0U25hcHNob3Q6YixzZXRTbmFwc2hvdDpudWxsfSxzb3VyY2U6YSxzdWJzY3JpYmU6Y307cmV0dXJuIE5oKGQsYSxiLGMpfSx1c2VPcGFxdWVJZGVudGlmaWVyOmZ1bmN0aW9uKCl7aWYobGgpe3ZhciBhPSExLGI9dWYoZnVuY3Rpb24oKXthfHwoYT0hMCxjKFwicjpcIisodGYrKykudG9TdHJpbmcoMzYpKSk7dGhyb3cgRXJyb3IoeSgzNTUpKTt9KSxjPVFoKGIpWzFdOzA9PT0oUi5tb2RlJjIpJiYoUi5mbGFnc3w9NTE2LFJoKDUsZnVuY3Rpb24oKXtjKFwicjpcIisodGYrKykudG9TdHJpbmcoMzYpKX0sXG52b2lkIDAsbnVsbCkpO3JldHVybiBifWI9XCJyOlwiKyh0ZisrKS50b1N0cmluZygzNik7UWgoYik7cmV0dXJuIGJ9LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sRWg9e3JlYWRDb250ZXh0OnZnLHVzZUNhbGxiYWNrOmJpLHVzZUNvbnRleHQ6dmcsdXNlRWZmZWN0OlhoLHVzZUltcGVyYXRpdmVIYW5kbGU6JGgsdXNlTGF5b3V0RWZmZWN0OlloLHVzZU1lbW86Y2ksdXNlUmVkdWNlcjpLaCx1c2VSZWY6VGgsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gS2goSmgpfSx1c2VEZWJ1Z1ZhbHVlOmFpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9S2goSmgpLGM9YlswXSxkPWJbMV07WGgoZnVuY3Rpb24oKXt2YXIgYj13aC50cmFuc2l0aW9uO3doLnRyYW5zaXRpb249MTt0cnl7ZChhKX1maW5hbGx5e3doLnRyYW5zaXRpb249Yn19LFthXSk7cmV0dXJuIGN9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1LaChKaClbMF07cmV0dXJuW1RoKCkuY3VycmVudCxcbmFdfSx1c2VNdXRhYmxlU291cmNlOlBoLHVzZU9wYXF1ZUlkZW50aWZpZXI6ZnVuY3Rpb24oKXtyZXR1cm4gS2goSmgpWzBdfSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LEZoPXtyZWFkQ29udGV4dDp2Zyx1c2VDYWxsYmFjazpiaSx1c2VDb250ZXh0OnZnLHVzZUVmZmVjdDpYaCx1c2VJbXBlcmF0aXZlSGFuZGxlOiRoLHVzZUxheW91dEVmZmVjdDpZaCx1c2VNZW1vOmNpLHVzZVJlZHVjZXI6TGgsdXNlUmVmOlRoLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIExoKEpoKX0sdXNlRGVidWdWYWx1ZTphaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPUxoKEpoKSxjPWJbMF0sZD1iWzFdO1hoKGZ1bmN0aW9uKCl7dmFyIGI9d2gudHJhbnNpdGlvbjt3aC50cmFuc2l0aW9uPTE7dHJ5e2QoYSl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWJ9fSxbYV0pO3JldHVybiBjfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9TGgoSmgpWzBdO3JldHVybltUaCgpLmN1cnJlbnQsXG5hXX0sdXNlTXV0YWJsZVNvdXJjZTpQaCx1c2VPcGFxdWVJZGVudGlmaWVyOmZ1bmN0aW9uKCl7cmV0dXJuIExoKEpoKVswXX0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxlaT1yYS5SZWFjdEN1cnJlbnRPd25lcix1Zz0hMTtmdW5jdGlvbiBmaShhLGIsYyxkKXtiLmNoaWxkPW51bGw9PT1hP1pnKGIsbnVsbCxjLGQpOllnKGIsYS5jaGlsZCxjLGQpfWZ1bmN0aW9uIGdpKGEsYixjLGQsZSl7Yz1jLnJlbmRlcjt2YXIgZj1iLnJlZjt0ZyhiLGUpO2Q9Q2goYSxiLGMsZCxmLGUpO2lmKG51bGwhPT1hJiYhdWcpcmV0dXJuIGIudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxiLmZsYWdzJj0tNTE3LGEubGFuZXMmPX5lLGhpKGEsYixlKTtiLmZsYWdzfD0xO2ZpKGEsYixkLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gaWkoYSxiLGMsZCxlLGYpe2lmKG51bGw9PT1hKXt2YXIgZz1jLnR5cGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcmJiFqaShnKSYmdm9pZCAwPT09Zy5kZWZhdWx0UHJvcHMmJm51bGw9PT1jLmNvbXBhcmUmJnZvaWQgMD09PWMuZGVmYXVsdFByb3BzKXJldHVybiBiLnRhZz0xNSxiLnR5cGU9ZyxraShhLGIsZyxkLGUsZik7YT1WZyhjLnR5cGUsbnVsbCxkLGIsYi5tb2RlLGYpO2EucmVmPWIucmVmO2EucmV0dXJuPWI7cmV0dXJuIGIuY2hpbGQ9YX1nPWEuY2hpbGQ7aWYoMD09PShlJmYpJiYoZT1nLm1lbW9pemVkUHJvcHMsYz1jLmNvbXBhcmUsYz1udWxsIT09Yz9jOkplLGMoZSxkKSYmYS5yZWY9PT1iLnJlZikpcmV0dXJuIGhpKGEsYixmKTtiLmZsYWdzfD0xO2E9VGcoZyxkKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9XG5mdW5jdGlvbiBraShhLGIsYyxkLGUsZil7aWYobnVsbCE9PWEmJkplKGEubWVtb2l6ZWRQcm9wcyxkKSYmYS5yZWY9PT1iLnJlZilpZih1Zz0hMSwwIT09KGYmZSkpMCE9PShhLmZsYWdzJjE2Mzg0KSYmKHVnPSEwKTtlbHNlIHJldHVybiBiLmxhbmVzPWEubGFuZXMsaGkoYSxiLGYpO3JldHVybiBsaShhLGIsYyxkLGYpfVxuZnVuY3Rpb24gbWkoYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5jaGlsZHJlbixmPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKFwiaGlkZGVuXCI9PT1kLm1vZGV8fFwidW5zdGFibGUtZGVmZXItd2l0aG91dC1oaWRpbmdcIj09PWQubW9kZSlpZigwPT09KGIubW9kZSY0KSliLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowfSxuaShiLGMpO2Vsc2UgaWYoMCE9PShjJjEwNzM3NDE4MjQpKWIubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjB9LG5pKGIsbnVsbCE9PWY/Zi5iYXNlTGFuZXM6Yyk7ZWxzZSByZXR1cm4gYT1udWxsIT09Zj9mLmJhc2VMYW5lc3xjOmMsYi5sYW5lcz1iLmNoaWxkTGFuZXM9MTA3Mzc0MTgyNCxiLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczphfSxuaShiLGEpLG51bGw7ZWxzZSBudWxsIT09Zj8oZD1mLmJhc2VMYW5lc3xjLGIubWVtb2l6ZWRTdGF0ZT1udWxsKTpkPWMsbmkoYixkKTtmaShhLGIsZSxjKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIG9pKGEsYil7dmFyIGM9Yi5yZWY7aWYobnVsbD09PWEmJm51bGwhPT1jfHxudWxsIT09YSYmYS5yZWYhPT1jKWIuZmxhZ3N8PTEyOH1mdW5jdGlvbiBsaShhLGIsYyxkLGUpe3ZhciBmPUZmKGMpP0RmOk0uY3VycmVudDtmPUVmKGIsZik7dGcoYixlKTtjPUNoKGEsYixjLGQsZixlKTtpZihudWxsIT09YSYmIXVnKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTUxNyxhLmxhbmVzJj1+ZSxoaShhLGIsZSk7Yi5mbGFnc3w9MTtmaShhLGIsYyxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIHBpKGEsYixjLGQsZSl7aWYoRmYoYykpe3ZhciBmPSEwO0pmKGIpfWVsc2UgZj0hMTt0ZyhiLGUpO2lmKG51bGw9PT1iLnN0YXRlTm9kZSludWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmZsYWdzfD0yKSxNZyhiLGMsZCksT2coYixjLGQsZSksZD0hMDtlbHNlIGlmKG51bGw9PT1hKXt2YXIgZz1iLnN0YXRlTm9kZSxoPWIubWVtb2l6ZWRQcm9wcztnLnByb3BzPWg7dmFyIGs9Zy5jb250ZXh0LGw9Yy5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGwmJm51bGwhPT1sP2w9dmcobCk6KGw9RmYoYyk/RGY6TS5jdXJyZW50LGw9RWYoYixsKSk7dmFyIG49Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsQT1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7QXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlxuXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGghPT1kfHxrIT09bCkmJk5nKGIsZyxkLGwpO3dnPSExO3ZhciBwPWIubWVtb2l6ZWRTdGF0ZTtnLnN0YXRlPXA7Q2coYixkLGcsZSk7az1iLm1lbW9pemVkU3RhdGU7aCE9PWR8fHAhPT1rfHxOLmN1cnJlbnR8fHdnPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgbiYmKEdnKGIsYyxuLGQpLGs9Yi5tZW1vaXplZFN0YXRlKSwoaD13Z3x8TGcoYixjLGgsZCxwLGssbCkpPyhBfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnR8fChcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnQmJmcuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLFwiZnVuY3Rpb25cIj09PVxudHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00KSk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NCksYi5tZW1vaXplZFByb3BzPWQsYi5tZW1vaXplZFN0YXRlPWspLGcucHJvcHM9ZCxnLnN0YXRlPWssZy5jb250ZXh0PWwsZD1oKTooXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00KSxkPSExKX1lbHNle2c9Yi5zdGF0ZU5vZGU7eWcoYSxiKTtoPWIubWVtb2l6ZWRQcm9wcztsPWIudHlwZT09PWIuZWxlbWVudFR5cGU/aDpsZyhiLnR5cGUsaCk7Zy5wcm9wcz1sO0E9Yi5wZW5kaW5nUHJvcHM7cD1nLmNvbnRleHQ7az1jLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgayYmbnVsbCE9PWs/az12ZyhrKTooaz1GZihjKT9EZjpNLmN1cnJlbnQsaz1FZihiLGspKTt2YXIgQz1jLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczsobj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgQ3x8XG5cImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoaCE9PUF8fHAhPT1rKSYmTmcoYixnLGQsayk7d2c9ITE7cD1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1wO0NnKGIsZCxnLGUpO3ZhciB4PWIubWVtb2l6ZWRTdGF0ZTtoIT09QXx8cCE9PXh8fE4uY3VycmVudHx8d2c/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBDJiYoR2coYixjLEMsZCkseD1iLm1lbW9pemVkU3RhdGUpLChsPXdnfHxMZyhiLGMsbCxkLHAseCxrKSk/KG58fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsVXBkYXRlfHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZSYmZy5jb21wb25lbnRXaWxsVXBkYXRlKGQsXG54LGspLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGQseCxrKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlJiYoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihiLmZsYWdzfD0yNTYpKTooXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnA9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0yNTYpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT14KSxnLnByb3BzPWQsZy5zdGF0ZT14LGcuY29udGV4dD1rLGQ9bCk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8XG5oPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnA9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0yNTYpLGQ9ITEpfXJldHVybiBxaShhLGIsYyxkLGYsZSl9XG5mdW5jdGlvbiBxaShhLGIsYyxkLGUsZil7b2koYSxiKTt2YXIgZz0wIT09KGIuZmxhZ3MmNjQpO2lmKCFkJiYhZylyZXR1cm4gZSYmS2YoYixjLCExKSxoaShhLGIsZik7ZD1iLnN0YXRlTm9kZTtlaS5jdXJyZW50PWI7dmFyIGg9ZyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGMuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6ZC5yZW5kZXIoKTtiLmZsYWdzfD0xO251bGwhPT1hJiZnPyhiLmNoaWxkPVlnKGIsYS5jaGlsZCxudWxsLGYpLGIuY2hpbGQ9WWcoYixudWxsLGgsZikpOmZpKGEsYixoLGYpO2IubWVtb2l6ZWRTdGF0ZT1kLnN0YXRlO2UmJktmKGIsYywhMCk7cmV0dXJuIGIuY2hpbGR9ZnVuY3Rpb24gcmkoYSl7dmFyIGI9YS5zdGF0ZU5vZGU7Yi5wZW5kaW5nQ29udGV4dD9IZihhLGIucGVuZGluZ0NvbnRleHQsYi5wZW5kaW5nQ29udGV4dCE9PWIuY29udGV4dCk6Yi5jb250ZXh0JiZIZihhLGIuY29udGV4dCwhMSk7ZWgoYSxiLmNvbnRhaW5lckluZm8pfVxudmFyIHNpPXtkZWh5ZHJhdGVkOm51bGwscmV0cnlMYW5lOjB9O1xuZnVuY3Rpb24gdGkoYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9UC5jdXJyZW50LGY9ITEsZzsoZz0wIT09KGIuZmxhZ3MmNjQpKXx8KGc9bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGU/ITE6MCE9PShlJjIpKTtnPyhmPSEwLGIuZmxhZ3MmPS02NSk6bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGV8fHZvaWQgMD09PWQuZmFsbGJhY2t8fCEwPT09ZC51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8KGV8PTEpO0koUCxlJjEpO2lmKG51bGw9PT1hKXt2b2lkIDAhPT1kLmZhbGxiYWNrJiZwaChiKTthPWQuY2hpbGRyZW47ZT1kLmZhbGxiYWNrO2lmKGYpcmV0dXJuIGE9dWkoYixhLGUsYyksYi5jaGlsZC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6Y30sYi5tZW1vaXplZFN0YXRlPXNpLGE7aWYoXCJudW1iZXJcIj09PXR5cGVvZiBkLnVuc3RhYmxlX2V4cGVjdGVkTG9hZFRpbWUpcmV0dXJuIGE9dWkoYixhLGUsYyksYi5jaGlsZC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6Y30sXG5iLm1lbW9pemVkU3RhdGU9c2ksYi5sYW5lcz0zMzU1NDQzMixhO2M9dmkoe21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46YX0sYi5tb2RlLGMsbnVsbCk7Yy5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1jfWlmKG51bGwhPT1hLm1lbW9pemVkU3RhdGUpe2lmKGYpcmV0dXJuIGQ9d2koYSxiLGQuY2hpbGRyZW4sZC5mYWxsYmFjayxjKSxmPWIuY2hpbGQsZT1hLmNoaWxkLm1lbW9pemVkU3RhdGUsZi5tZW1vaXplZFN0YXRlPW51bGw9PT1lP3tiYXNlTGFuZXM6Y306e2Jhc2VMYW5lczplLmJhc2VMYW5lc3xjfSxmLmNoaWxkTGFuZXM9YS5jaGlsZExhbmVzJn5jLGIubWVtb2l6ZWRTdGF0ZT1zaSxkO2M9eGkoYSxiLGQuY2hpbGRyZW4sYyk7Yi5tZW1vaXplZFN0YXRlPW51bGw7cmV0dXJuIGN9aWYoZilyZXR1cm4gZD13aShhLGIsZC5jaGlsZHJlbixkLmZhbGxiYWNrLGMpLGY9Yi5jaGlsZCxlPWEuY2hpbGQubWVtb2l6ZWRTdGF0ZSxmLm1lbW9pemVkU3RhdGU9bnVsbD09PWU/e2Jhc2VMYW5lczpjfTpcbntiYXNlTGFuZXM6ZS5iYXNlTGFuZXN8Y30sZi5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcyZ+YyxiLm1lbW9pemVkU3RhdGU9c2ksZDtjPXhpKGEsYixkLmNoaWxkcmVuLGMpO2IubWVtb2l6ZWRTdGF0ZT1udWxsO3JldHVybiBjfWZ1bmN0aW9uIHVpKGEsYixjLGQpe3ZhciBlPWEubW9kZSxmPWEuY2hpbGQ7Yj17bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOmJ9OzA9PT0oZSYyKSYmbnVsbCE9PWY/KGYuY2hpbGRMYW5lcz0wLGYucGVuZGluZ1Byb3BzPWIpOmY9dmkoYixlLDAsbnVsbCk7Yz1YZyhjLGUsZCxudWxsKTtmLnJldHVybj1hO2MucmV0dXJuPWE7Zi5zaWJsaW5nPWM7YS5jaGlsZD1mO3JldHVybiBjfVxuZnVuY3Rpb24geGkoYSxiLGMsZCl7dmFyIGU9YS5jaGlsZDthPWUuc2libGluZztjPVRnKGUse21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46Y30pOzA9PT0oYi5tb2RlJjIpJiYoYy5sYW5lcz1kKTtjLnJldHVybj1iO2Muc2libGluZz1udWxsO251bGwhPT1hJiYoYS5uZXh0RWZmZWN0PW51bGwsYS5mbGFncz04LGIuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWEpO3JldHVybiBiLmNoaWxkPWN9XG5mdW5jdGlvbiB3aShhLGIsYyxkLGUpe3ZhciBmPWIubW9kZSxnPWEuY2hpbGQ7YT1nLnNpYmxpbmc7dmFyIGg9e21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpjfTswPT09KGYmMikmJmIuY2hpbGQhPT1nPyhjPWIuY2hpbGQsYy5jaGlsZExhbmVzPTAsYy5wZW5kaW5nUHJvcHM9aCxnPWMubGFzdEVmZmVjdCxudWxsIT09Zz8oYi5maXJzdEVmZmVjdD1jLmZpcnN0RWZmZWN0LGIubGFzdEVmZmVjdD1nLGcubmV4dEVmZmVjdD1udWxsKTpiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1udWxsKTpjPVRnKGcsaCk7bnVsbCE9PWE/ZD1UZyhhLGQpOihkPVhnKGQsZixlLG51bGwpLGQuZmxhZ3N8PTIpO2QucmV0dXJuPWI7Yy5yZXR1cm49YjtjLnNpYmxpbmc9ZDtiLmNoaWxkPWM7cmV0dXJuIGR9ZnVuY3Rpb24geWkoYSxiKXthLmxhbmVzfD1iO3ZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1jJiYoYy5sYW5lc3w9Yik7c2coYS5yZXR1cm4sYil9XG5mdW5jdGlvbiB6aShhLGIsYyxkLGUsZil7dmFyIGc9YS5tZW1vaXplZFN0YXRlO251bGw9PT1nP2EubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6YixyZW5kZXJpbmc6bnVsbCxyZW5kZXJpbmdTdGFydFRpbWU6MCxsYXN0OmQsdGFpbDpjLHRhaWxNb2RlOmUsbGFzdEVmZmVjdDpmfTooZy5pc0JhY2t3YXJkcz1iLGcucmVuZGVyaW5nPW51bGwsZy5yZW5kZXJpbmdTdGFydFRpbWU9MCxnLmxhc3Q9ZCxnLnRhaWw9YyxnLnRhaWxNb2RlPWUsZy5sYXN0RWZmZWN0PWYpfVxuZnVuY3Rpb24gQWkoYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5yZXZlYWxPcmRlcixmPWQudGFpbDtmaShhLGIsZC5jaGlsZHJlbixjKTtkPVAuY3VycmVudDtpZigwIT09KGQmMikpZD1kJjF8MixiLmZsYWdzfD02NDtlbHNle2lmKG51bGwhPT1hJiYwIT09KGEuZmxhZ3MmNjQpKWE6Zm9yKGE9Yi5jaGlsZDtudWxsIT09YTspe2lmKDEzPT09YS50YWcpbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSYmeWkoYSxjKTtlbHNlIGlmKDE5PT09YS50YWcpeWkoYSxjKTtlbHNlIGlmKG51bGwhPT1hLmNoaWxkKXthLmNoaWxkLnJldHVybj1hO2E9YS5jaGlsZDtjb250aW51ZX1pZihhPT09YilicmVhayBhO2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8YS5yZXR1cm49PT1iKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfWQmPTF9SShQLGQpO2lmKDA9PT0oYi5tb2RlJjIpKWIubWVtb2l6ZWRTdGF0ZT1cbm51bGw7ZWxzZSBzd2l0Y2goZSl7Y2FzZSBcImZvcndhcmRzXCI6Yz1iLmNoaWxkO2ZvcihlPW51bGw7bnVsbCE9PWM7KWE9Yy5hbHRlcm5hdGUsbnVsbCE9PWEmJm51bGw9PT1paChhKSYmKGU9YyksYz1jLnNpYmxpbmc7Yz1lO251bGw9PT1jPyhlPWIuY2hpbGQsYi5jaGlsZD1udWxsKTooZT1jLnNpYmxpbmcsYy5zaWJsaW5nPW51bGwpO3ppKGIsITEsZSxjLGYsYi5sYXN0RWZmZWN0KTticmVhaztjYXNlIFwiYmFja3dhcmRzXCI6Yz1udWxsO2U9Yi5jaGlsZDtmb3IoYi5jaGlsZD1udWxsO251bGwhPT1lOyl7YT1lLmFsdGVybmF0ZTtpZihudWxsIT09YSYmbnVsbD09PWloKGEpKXtiLmNoaWxkPWU7YnJlYWt9YT1lLnNpYmxpbmc7ZS5zaWJsaW5nPWM7Yz1lO2U9YX16aShiLCEwLGMsbnVsbCxmLGIubGFzdEVmZmVjdCk7YnJlYWs7Y2FzZSBcInRvZ2V0aGVyXCI6emkoYiwhMSxudWxsLG51bGwsdm9pZCAwLGIubGFzdEVmZmVjdCk7YnJlYWs7ZGVmYXVsdDpiLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGhpKGEsYixjKXtudWxsIT09YSYmKGIuZGVwZW5kZW5jaWVzPWEuZGVwZW5kZW5jaWVzKTtEZ3w9Yi5sYW5lcztpZigwIT09KGMmYi5jaGlsZExhbmVzKSl7aWYobnVsbCE9PWEmJmIuY2hpbGQhPT1hLmNoaWxkKXRocm93IEVycm9yKHkoMTUzKSk7aWYobnVsbCE9PWIuY2hpbGQpe2E9Yi5jaGlsZDtjPVRnKGEsYS5wZW5kaW5nUHJvcHMpO2IuY2hpbGQ9Yztmb3IoYy5yZXR1cm49YjtudWxsIT09YS5zaWJsaW5nOylhPWEuc2libGluZyxjPWMuc2libGluZz1UZyhhLGEucGVuZGluZ1Byb3BzKSxjLnJldHVybj1iO2Muc2libGluZz1udWxsfXJldHVybiBiLmNoaWxkfXJldHVybiBudWxsfXZhciBCaSxDaSxEaSxFaTtcbkJpPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGQ7bnVsbCE9PWM7KXtpZig1PT09Yy50YWd8fDY9PT1jLnRhZylhLmFwcGVuZENoaWxkKGMuc3RhdGVOb2RlKTtlbHNlIGlmKDQhPT1jLnRhZyYmbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1iKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1iKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fTtDaT1mdW5jdGlvbigpe307XG5EaT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLm1lbW9pemVkUHJvcHM7aWYoZSE9PWQpe2E9Yi5zdGF0ZU5vZGU7ZGgoYWguY3VycmVudCk7dmFyIGY9bnVsbDtzd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6ZT1ZYShhLGUpO2Q9WWEoYSxkKTtmPVtdO2JyZWFrO2Nhc2UgXCJvcHRpb25cIjplPWViKGEsZSk7ZD1lYihhLGQpO2Y9W107YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmU9bSh7fSxlLHt2YWx1ZTp2b2lkIDB9KTtkPW0oe30sZCx7dmFsdWU6dm9pZCAwfSk7Zj1bXTticmVhaztjYXNlIFwidGV4dGFyZWFcIjplPWdiKGEsZSk7ZD1nYihhLGQpO2Y9W107YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5vbkNsaWNrJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5vbkNsaWNrJiYoYS5vbmNsaWNrPWpmKX12YihjLGQpO3ZhciBnO2M9bnVsbDtmb3IobCBpbiBlKWlmKCFkLmhhc093blByb3BlcnR5KGwpJiZlLmhhc093blByb3BlcnR5KGwpJiZudWxsIT1lW2xdKWlmKFwic3R5bGVcIj09PVxubCl7dmFyIGg9ZVtsXTtmb3IoZyBpbiBoKWguaGFzT3duUHJvcGVydHkoZykmJihjfHwoYz17fSksY1tnXT1cIlwiKX1lbHNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiIT09bCYmXCJjaGlsZHJlblwiIT09bCYmXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWwmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1sJiZcImF1dG9Gb2N1c1wiIT09bCYmKGNhLmhhc093blByb3BlcnR5KGwpP2Z8fChmPVtdKTooZj1mfHxbXSkucHVzaChsLG51bGwpKTtmb3IobCBpbiBkKXt2YXIgaz1kW2xdO2g9bnVsbCE9ZT9lW2xdOnZvaWQgMDtpZihkLmhhc093blByb3BlcnR5KGwpJiZrIT09aCYmKG51bGwhPWt8fG51bGwhPWgpKWlmKFwic3R5bGVcIj09PWwpaWYoaCl7Zm9yKGcgaW4gaCkhaC5oYXNPd25Qcm9wZXJ0eShnKXx8ayYmay5oYXNPd25Qcm9wZXJ0eShnKXx8KGN8fChjPXt9KSxjW2ddPVwiXCIpO2ZvcihnIGluIGspay5oYXNPd25Qcm9wZXJ0eShnKSYmaFtnXSE9PWtbZ10mJihjfHxcbihjPXt9KSxjW2ddPWtbZ10pfWVsc2UgY3x8KGZ8fChmPVtdKSxmLnB1c2gobCxjKSksYz1rO2Vsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1sPyhrPWs/ay5fX2h0bWw6dm9pZCAwLGg9aD9oLl9faHRtbDp2b2lkIDAsbnVsbCE9ayYmaCE9PWsmJihmPWZ8fFtdKS5wdXNoKGwsaykpOlwiY2hpbGRyZW5cIj09PWw/XCJzdHJpbmdcIiE9PXR5cGVvZiBrJiZcIm51bWJlclwiIT09dHlwZW9mIGt8fChmPWZ8fFtdKS5wdXNoKGwsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09bCYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWwmJihjYS5oYXNPd25Qcm9wZXJ0eShsKT8obnVsbCE9ayYmXCJvblNjcm9sbFwiPT09bCYmRyhcInNjcm9sbFwiLGEpLGZ8fGg9PT1rfHwoZj1bXSkpOlwib2JqZWN0XCI9PT10eXBlb2YgayYmbnVsbCE9PWsmJmsuJCR0eXBlb2Y9PT1HYT9rLnRvU3RyaW5nKCk6KGY9Znx8W10pLnB1c2gobCxrKSl9YyYmKGY9Znx8W10pLnB1c2goXCJzdHlsZVwiLFxuYyk7dmFyIGw9ZjtpZihiLnVwZGF0ZVF1ZXVlPWwpYi5mbGFnc3w9NH19O0VpPWZ1bmN0aW9uKGEsYixjLGQpe2MhPT1kJiYoYi5mbGFnc3w9NCl9O2Z1bmN0aW9uIEZpKGEsYil7aWYoIWxoKXN3aXRjaChhLnRhaWxNb2RlKXtjYXNlIFwiaGlkZGVuXCI6Yj1hLnRhaWw7Zm9yKHZhciBjPW51bGw7bnVsbCE9PWI7KW51bGwhPT1iLmFsdGVybmF0ZSYmKGM9YiksYj1iLnNpYmxpbmc7bnVsbD09PWM/YS50YWlsPW51bGw6Yy5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSBcImNvbGxhcHNlZFwiOmM9YS50YWlsO2Zvcih2YXIgZD1udWxsO251bGwhPT1jOyludWxsIT09Yy5hbHRlcm5hdGUmJihkPWMpLGM9Yy5zaWJsaW5nO251bGw9PT1kP2J8fG51bGw9PT1hLnRhaWw/YS50YWlsPW51bGw6YS50YWlsLnNpYmxpbmc9bnVsbDpkLnNpYmxpbmc9bnVsbH19XG5mdW5jdGlvbiBHaShhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHM7c3dpdGNoKGIudGFnKXtjYXNlIDI6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIEZmKGIudHlwZSkmJkdmKCksbnVsbDtjYXNlIDM6ZmgoKTtIKE4pO0goTSk7dWgoKTtkPWIuc3RhdGVOb2RlO2QucGVuZGluZ0NvbnRleHQmJihkLmNvbnRleHQ9ZC5wZW5kaW5nQ29udGV4dCxkLnBlbmRpbmdDb250ZXh0PW51bGwpO2lmKG51bGw9PT1hfHxudWxsPT09YS5jaGlsZClyaChiKT9iLmZsYWdzfD00OmQuaHlkcmF0ZXx8KGIuZmxhZ3N8PTI1Nik7Q2koYik7cmV0dXJuIG51bGw7Y2FzZSA1OmhoKGIpO3ZhciBlPWRoKGNoLmN1cnJlbnQpO2M9Yi50eXBlO2lmKG51bGwhPT1hJiZudWxsIT1iLnN0YXRlTm9kZSlEaShhLGIsYyxkLGUpLGEucmVmIT09Yi5yZWYmJihiLmZsYWdzfD0xMjgpO2Vsc2V7aWYoIWQpe2lmKG51bGw9PT1cbmIuc3RhdGVOb2RlKXRocm93IEVycm9yKHkoMTY2KSk7cmV0dXJuIG51bGx9YT1kaChhaC5jdXJyZW50KTtpZihyaChiKSl7ZD1iLnN0YXRlTm9kZTtjPWIudHlwZTt2YXIgZj1iLm1lbW9pemVkUHJvcHM7ZFt3Zl09YjtkW3hmXT1mO3N3aXRjaChjKXtjYXNlIFwiZGlhbG9nXCI6RyhcImNhbmNlbFwiLGQpO0coXCJjbG9zZVwiLGQpO2JyZWFrO2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixkKTticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoYT0wO2E8WGUubGVuZ3RoO2ErKylHKFhlW2FdLGQpO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpHKFwiZXJyb3JcIixkKTticmVhaztjYXNlIFwiaW1nXCI6Y2FzZSBcImltYWdlXCI6Y2FzZSBcImxpbmtcIjpHKFwiZXJyb3JcIixkKTtHKFwibG9hZFwiLGQpO2JyZWFrO2Nhc2UgXCJkZXRhaWxzXCI6RyhcInRvZ2dsZVwiLGQpO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGQsZik7RyhcImludmFsaWRcIixkKTticmVhaztjYXNlIFwic2VsZWN0XCI6ZC5fd3JhcHBlclN0YXRlPVxue3dhc011bHRpcGxlOiEhZi5tdWx0aXBsZX07RyhcImludmFsaWRcIixkKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpoYihkLGYpLEcoXCJpbnZhbGlkXCIsZCl9dmIoYyxmKTthPW51bGw7Zm9yKHZhciBnIGluIGYpZi5oYXNPd25Qcm9wZXJ0eShnKSYmKGU9ZltnXSxcImNoaWxkcmVuXCI9PT1nP1wic3RyaW5nXCI9PT10eXBlb2YgZT9kLnRleHRDb250ZW50IT09ZSYmKGE9W1wiY2hpbGRyZW5cIixlXSk6XCJudW1iZXJcIj09PXR5cGVvZiBlJiZkLnRleHRDb250ZW50IT09XCJcIitlJiYoYT1bXCJjaGlsZHJlblwiLFwiXCIrZV0pOmNhLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1lJiZcIm9uU2Nyb2xsXCI9PT1nJiZHKFwic2Nyb2xsXCIsZCkpO3N3aXRjaChjKXtjYXNlIFwiaW5wdXRcIjpWYShkKTtjYihkLGYsITApO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZhKGQpO2piKGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpjYXNlIFwib3B0aW9uXCI6YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5vbkNsaWNrJiYoZC5vbmNsaWNrPVxuamYpfWQ9YTtiLnVwZGF0ZVF1ZXVlPWQ7bnVsbCE9PWQmJihiLmZsYWdzfD00KX1lbHNle2c9OT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQ7YT09PWtiLmh0bWwmJihhPWxiKGMpKTthPT09a2IuaHRtbD9cInNjcmlwdFwiPT09Yz8oYT1nLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksYS5pbm5lckhUTUw9XCI8c2NyaXB0PlxceDNjL3NjcmlwdD5cIixhPWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKSk6XCJzdHJpbmdcIj09PXR5cGVvZiBkLmlzP2E9Zy5jcmVhdGVFbGVtZW50KGMse2lzOmQuaXN9KTooYT1nLmNyZWF0ZUVsZW1lbnQoYyksXCJzZWxlY3RcIj09PWMmJihnPWEsZC5tdWx0aXBsZT9nLm11bHRpcGxlPSEwOmQuc2l6ZSYmKGcuc2l6ZT1kLnNpemUpKSk6YT1nLmNyZWF0ZUVsZW1lbnROUyhhLGMpO2Fbd2ZdPWI7YVt4Zl09ZDtCaShhLGIsITEsITEpO2Iuc3RhdGVOb2RlPWE7Zz13YihjLGQpO3N3aXRjaChjKXtjYXNlIFwiZGlhbG9nXCI6RyhcImNhbmNlbFwiLGEpO0coXCJjbG9zZVwiLGEpO1xuZT1kO2JyZWFrO2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcInZpZGVvXCI6Y2FzZSBcImF1ZGlvXCI6Zm9yKGU9MDtlPFhlLmxlbmd0aDtlKyspRyhYZVtlXSxhKTtlPWQ7YnJlYWs7Y2FzZSBcInNvdXJjZVwiOkcoXCJlcnJvclwiLGEpO2U9ZDticmVhaztjYXNlIFwiaW1nXCI6Y2FzZSBcImltYWdlXCI6Y2FzZSBcImxpbmtcIjpHKFwiZXJyb3JcIixhKTtHKFwibG9hZFwiLGEpO2U9ZDticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImlucHV0XCI6WmEoYSxkKTtlPVlhKGEsZCk7RyhcImludmFsaWRcIixhKTticmVhaztjYXNlIFwib3B0aW9uXCI6ZT1lYihhLGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhZC5tdWx0aXBsZX07ZT1tKHt9LGQse3ZhbHVlOnZvaWQgMH0pO0coXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aGIoYSxkKTtlPVxuZ2IoYSxkKTtHKFwiaW52YWxpZFwiLGEpO2JyZWFrO2RlZmF1bHQ6ZT1kfXZiKGMsZSk7dmFyIGg9ZTtmb3IoZiBpbiBoKWlmKGguaGFzT3duUHJvcGVydHkoZikpe3ZhciBrPWhbZl07XCJzdHlsZVwiPT09Zj90YihhLGspOlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWY/KGs9az9rLl9faHRtbDp2b2lkIDAsbnVsbCE9ayYmb2IoYSxrKSk6XCJjaGlsZHJlblwiPT09Zj9cInN0cmluZ1wiPT09dHlwZW9mIGs/KFwidGV4dGFyZWFcIiE9PWN8fFwiXCIhPT1rKSYmcGIoYSxrKTpcIm51bWJlclwiPT09dHlwZW9mIGsmJnBiKGEsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09ZiYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWYmJlwiYXV0b0ZvY3VzXCIhPT1mJiYoY2EuaGFzT3duUHJvcGVydHkoZik/bnVsbCE9ayYmXCJvblNjcm9sbFwiPT09ZiYmRyhcInNjcm9sbFwiLGEpOm51bGwhPWsmJnFhKGEsZixrLGcpKX1zd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoYSk7Y2IoYSxkLCExKTtcbmJyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZhKGEpO2piKGEpO2JyZWFrO2Nhc2UgXCJvcHRpb25cIjpudWxsIT1kLnZhbHVlJiZhLnNldEF0dHJpYnV0ZShcInZhbHVlXCIsXCJcIitTYShkLnZhbHVlKSk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmEubXVsdGlwbGU9ISFkLm11bHRpcGxlO2Y9ZC52YWx1ZTtudWxsIT1mP2ZiKGEsISFkLm11bHRpcGxlLGYsITEpOm51bGwhPWQuZGVmYXVsdFZhbHVlJiZmYihhLCEhZC5tdWx0aXBsZSxkLmRlZmF1bHRWYWx1ZSwhMCk7YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5vbkNsaWNrJiYoYS5vbmNsaWNrPWpmKX1tZihjLGQpJiYoYi5mbGFnc3w9NCl9bnVsbCE9PWIucmVmJiYoYi5mbGFnc3w9MTI4KX1yZXR1cm4gbnVsbDtjYXNlIDY6aWYoYSYmbnVsbCE9Yi5zdGF0ZU5vZGUpRWkoYSxiLGEubWVtb2l6ZWRQcm9wcyxkKTtlbHNle2lmKFwic3RyaW5nXCIhPT10eXBlb2YgZCYmbnVsbD09PWIuc3RhdGVOb2RlKXRocm93IEVycm9yKHkoMTY2KSk7XG5jPWRoKGNoLmN1cnJlbnQpO2RoKGFoLmN1cnJlbnQpO3JoKGIpPyhkPWIuc3RhdGVOb2RlLGM9Yi5tZW1vaXplZFByb3BzLGRbd2ZdPWIsZC5ub2RlVmFsdWUhPT1jJiYoYi5mbGFnc3w9NCkpOihkPSg5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoZCksZFt3Zl09YixiLnN0YXRlTm9kZT1kKX1yZXR1cm4gbnVsbDtjYXNlIDEzOkgoUCk7ZD1iLm1lbW9pemVkU3RhdGU7aWYoMCE9PShiLmZsYWdzJjY0KSlyZXR1cm4gYi5sYW5lcz1jLGI7ZD1udWxsIT09ZDtjPSExO251bGw9PT1hP3ZvaWQgMCE9PWIubWVtb2l6ZWRQcm9wcy5mYWxsYmFjayYmcmgoYik6Yz1udWxsIT09YS5tZW1vaXplZFN0YXRlO2lmKGQmJiFjJiYwIT09KGIubW9kZSYyKSlpZihudWxsPT09YSYmITAhPT1iLm1lbW9pemVkUHJvcHMudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fDAhPT0oUC5jdXJyZW50JjEpKTA9PT1WJiYoVj0zKTtlbHNle2lmKDA9PT1WfHwzPT09VilWPVxuNDtudWxsPT09VXx8MD09PShEZyYxMzQyMTc3MjcpJiYwPT09KEhpJjEzNDIxNzcyNyl8fElpKFUsVyl9aWYoZHx8YyliLmZsYWdzfD00O3JldHVybiBudWxsO2Nhc2UgNDpyZXR1cm4gZmgoKSxDaShiKSxudWxsPT09YSYmY2YoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksbnVsbDtjYXNlIDEwOnJldHVybiByZyhiKSxudWxsO2Nhc2UgMTc6cmV0dXJuIEZmKGIudHlwZSkmJkdmKCksbnVsbDtjYXNlIDE5OkgoUCk7ZD1iLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PWQpcmV0dXJuIG51bGw7Zj0wIT09KGIuZmxhZ3MmNjQpO2c9ZC5yZW5kZXJpbmc7aWYobnVsbD09PWcpaWYoZilGaShkLCExKTtlbHNle2lmKDAhPT1WfHxudWxsIT09YSYmMCE9PShhLmZsYWdzJjY0KSlmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7Zz1paChhKTtpZihudWxsIT09Zyl7Yi5mbGFnc3w9NjQ7RmkoZCwhMSk7Zj1nLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiYoYi51cGRhdGVRdWV1ZT1mLGIuZmxhZ3N8PTQpO1xubnVsbD09PWQubGFzdEVmZmVjdCYmKGIuZmlyc3RFZmZlY3Q9bnVsbCk7Yi5sYXN0RWZmZWN0PWQubGFzdEVmZmVjdDtkPWM7Zm9yKGM9Yi5jaGlsZDtudWxsIT09YzspZj1jLGE9ZCxmLmZsYWdzJj0yLGYubmV4dEVmZmVjdD1udWxsLGYuZmlyc3RFZmZlY3Q9bnVsbCxmLmxhc3RFZmZlY3Q9bnVsbCxnPWYuYWx0ZXJuYXRlLG51bGw9PT1nPyhmLmNoaWxkTGFuZXM9MCxmLmxhbmVzPWEsZi5jaGlsZD1udWxsLGYubWVtb2l6ZWRQcm9wcz1udWxsLGYubWVtb2l6ZWRTdGF0ZT1udWxsLGYudXBkYXRlUXVldWU9bnVsbCxmLmRlcGVuZGVuY2llcz1udWxsLGYuc3RhdGVOb2RlPW51bGwpOihmLmNoaWxkTGFuZXM9Zy5jaGlsZExhbmVzLGYubGFuZXM9Zy5sYW5lcyxmLmNoaWxkPWcuY2hpbGQsZi5tZW1vaXplZFByb3BzPWcubWVtb2l6ZWRQcm9wcyxmLm1lbW9pemVkU3RhdGU9Zy5tZW1vaXplZFN0YXRlLGYudXBkYXRlUXVldWU9Zy51cGRhdGVRdWV1ZSxmLnR5cGU9Zy50eXBlLGE9Zy5kZXBlbmRlbmNpZXMsXG5mLmRlcGVuZGVuY2llcz1udWxsPT09YT9udWxsOntsYW5lczphLmxhbmVzLGZpcnN0Q29udGV4dDphLmZpcnN0Q29udGV4dH0pLGM9Yy5zaWJsaW5nO0koUCxQLmN1cnJlbnQmMXwyKTtyZXR1cm4gYi5jaGlsZH1hPWEuc2libGluZ31udWxsIT09ZC50YWlsJiZPKCk+SmkmJihiLmZsYWdzfD02NCxmPSEwLEZpKGQsITEpLGIubGFuZXM9MzM1NTQ0MzIpfWVsc2V7aWYoIWYpaWYoYT1paChnKSxudWxsIT09YSl7aWYoYi5mbGFnc3w9NjQsZj0hMCxjPWEudXBkYXRlUXVldWUsbnVsbCE9PWMmJihiLnVwZGF0ZVF1ZXVlPWMsYi5mbGFnc3w9NCksRmkoZCwhMCksbnVsbD09PWQudGFpbCYmXCJoaWRkZW5cIj09PWQudGFpbE1vZGUmJiFnLmFsdGVybmF0ZSYmIWxoKXJldHVybiBiPWIubGFzdEVmZmVjdD1kLmxhc3RFZmZlY3QsbnVsbCE9PWImJihiLm5leHRFZmZlY3Q9bnVsbCksbnVsbH1lbHNlIDIqTygpLWQucmVuZGVyaW5nU3RhcnRUaW1lPkppJiYxMDczNzQxODI0IT09YyYmKGIuZmxhZ3N8PVxuNjQsZj0hMCxGaShkLCExKSxiLmxhbmVzPTMzNTU0NDMyKTtkLmlzQmFja3dhcmRzPyhnLnNpYmxpbmc9Yi5jaGlsZCxiLmNoaWxkPWcpOihjPWQubGFzdCxudWxsIT09Yz9jLnNpYmxpbmc9ZzpiLmNoaWxkPWcsZC5sYXN0PWcpfXJldHVybiBudWxsIT09ZC50YWlsPyhjPWQudGFpbCxkLnJlbmRlcmluZz1jLGQudGFpbD1jLnNpYmxpbmcsZC5sYXN0RWZmZWN0PWIubGFzdEVmZmVjdCxkLnJlbmRlcmluZ1N0YXJ0VGltZT1PKCksYy5zaWJsaW5nPW51bGwsYj1QLmN1cnJlbnQsSShQLGY/YiYxfDI6YiYxKSxjKTpudWxsO2Nhc2UgMjM6Y2FzZSAyNDpyZXR1cm4gS2koKSxudWxsIT09YSYmbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSE9PShudWxsIT09Yi5tZW1vaXplZFN0YXRlKSYmXCJ1bnN0YWJsZS1kZWZlci13aXRob3V0LWhpZGluZ1wiIT09ZC5tb2RlJiYoYi5mbGFnc3w9NCksbnVsbH10aHJvdyBFcnJvcih5KDE1NixiLnRhZykpO31cbmZ1bmN0aW9uIExpKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAxOkZmKGEudHlwZSkmJkdmKCk7dmFyIGI9YS5mbGFncztyZXR1cm4gYiY0MDk2PyhhLmZsYWdzPWImLTQwOTd8NjQsYSk6bnVsbDtjYXNlIDM6ZmgoKTtIKE4pO0goTSk7dWgoKTtiPWEuZmxhZ3M7aWYoMCE9PShiJjY0KSl0aHJvdyBFcnJvcih5KDI4NSkpO2EuZmxhZ3M9YiYtNDA5N3w2NDtyZXR1cm4gYTtjYXNlIDU6cmV0dXJuIGhoKGEpLG51bGw7Y2FzZSAxMzpyZXR1cm4gSChQKSxiPWEuZmxhZ3MsYiY0MDk2PyhhLmZsYWdzPWImLTQwOTd8NjQsYSk6bnVsbDtjYXNlIDE5OnJldHVybiBIKFApLG51bGw7Y2FzZSA0OnJldHVybiBmaCgpLG51bGw7Y2FzZSAxMDpyZXR1cm4gcmcoYSksbnVsbDtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIEtpKCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX1cbmZ1bmN0aW9uIE1pKGEsYil7dHJ5e3ZhciBjPVwiXCIsZD1iO2RvIGMrPVFhKGQpLGQ9ZC5yZXR1cm47d2hpbGUoZCk7dmFyIGU9Y31jYXRjaChmKXtlPVwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIrZi5tZXNzYWdlK1wiXFxuXCIrZi5zdGFja31yZXR1cm57dmFsdWU6YSxzb3VyY2U6YixzdGFjazplfX1mdW5jdGlvbiBOaShhLGIpe3RyeXtjb25zb2xlLmVycm9yKGIudmFsdWUpfWNhdGNoKGMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBjO30pfX12YXIgT2k9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24gUGkoYSxiLGMpe2M9emcoLTEsYyk7Yy50YWc9MztjLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIGQ9Yi52YWx1ZTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7UWl8fChRaT0hMCxSaT1kKTtOaShhLGIpfTtyZXR1cm4gY31cbmZ1bmN0aW9uIFNpKGEsYixjKXtjPXpnKC0xLGMpO2MudGFnPTM7dmFyIGQ9YS50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7dmFyIGU9Yi52YWx1ZTtjLnBheWxvYWQ9ZnVuY3Rpb24oKXtOaShhLGIpO3JldHVybiBkKGUpfX12YXIgZj1hLnN0YXRlTm9kZTtudWxsIT09ZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGYuY29tcG9uZW50RGlkQ2F0Y2gmJihjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiIT09dHlwZW9mIGQmJihudWxsPT09VGk/VGk9bmV3IFNldChbdGhpc10pOlRpLmFkZCh0aGlzKSxOaShhLGIpKTt2YXIgYz1iLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goYi52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PWM/YzpcIlwifSl9KTtyZXR1cm4gY312YXIgVWk9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQ7XG5mdW5jdGlvbiBWaShhKXt2YXIgYj1hLnJlZjtpZihudWxsIT09YilpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYil0cnl7YihudWxsKX1jYXRjaChjKXtXaShhLGMpfWVsc2UgYi5jdXJyZW50PW51bGx9ZnVuY3Rpb24gWGkoYSxiKXtzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAyMjpyZXR1cm47Y2FzZSAxOmlmKGIuZmxhZ3MmMjU2JiZudWxsIT09YSl7dmFyIGM9YS5tZW1vaXplZFByb3BzLGQ9YS5tZW1vaXplZFN0YXRlO2E9Yi5zdGF0ZU5vZGU7Yj1hLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGIuZWxlbWVudFR5cGU9PT1iLnR5cGU/YzpsZyhiLnR5cGUsYyksZCk7YS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1ifXJldHVybjtjYXNlIDM6Yi5mbGFncyYyNTYmJnFmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO3JldHVybjtjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OnJldHVybn10aHJvdyBFcnJvcih5KDE2MykpO31cbmZ1bmN0aW9uIFlpKGEsYixjKXtzd2l0Y2goYy50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAyMjpiPWMudXBkYXRlUXVldWU7Yj1udWxsIT09Yj9iLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yil7YT1iPWIubmV4dDtkb3tpZigzPT09KGEudGFnJjMpKXt2YXIgZD1hLmNyZWF0ZTthLmRlc3Ryb3k9ZCgpfWE9YS5uZXh0fXdoaWxlKGEhPT1iKX1iPWMudXBkYXRlUXVldWU7Yj1udWxsIT09Yj9iLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yil7YT1iPWIubmV4dDtkb3t2YXIgZT1hO2Q9ZS5uZXh0O2U9ZS50YWc7MCE9PShlJjQpJiYwIT09KGUmMSkmJihaaShjLGEpLCRpKGMsYSkpO2E9ZH13aGlsZShhIT09Yil9cmV0dXJuO2Nhc2UgMTphPWMuc3RhdGVOb2RlO2MuZmxhZ3MmNCYmKG51bGw9PT1iP2EuY29tcG9uZW50RGlkTW91bnQoKTooZD1jLmVsZW1lbnRUeXBlPT09Yy50eXBlP2IubWVtb2l6ZWRQcm9wczpsZyhjLnR5cGUsYi5tZW1vaXplZFByb3BzKSxhLmNvbXBvbmVudERpZFVwZGF0ZShkLFxuYi5tZW1vaXplZFN0YXRlLGEuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpKSk7Yj1jLnVwZGF0ZVF1ZXVlO251bGwhPT1iJiZFZyhjLGIsYSk7cmV0dXJuO2Nhc2UgMzpiPWMudXBkYXRlUXVldWU7aWYobnVsbCE9PWIpe2E9bnVsbDtpZihudWxsIT09Yy5jaGlsZClzd2l0Y2goYy5jaGlsZC50YWcpe2Nhc2UgNTphPWMuY2hpbGQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMTphPWMuY2hpbGQuc3RhdGVOb2RlfUVnKGMsYixhKX1yZXR1cm47Y2FzZSA1OmE9Yy5zdGF0ZU5vZGU7bnVsbD09PWImJmMuZmxhZ3MmNCYmbWYoYy50eXBlLGMubWVtb2l6ZWRQcm9wcykmJmEuZm9jdXMoKTtyZXR1cm47Y2FzZSA2OnJldHVybjtjYXNlIDQ6cmV0dXJuO2Nhc2UgMTI6cmV0dXJuO2Nhc2UgMTM6bnVsbD09PWMubWVtb2l6ZWRTdGF0ZSYmKGM9Yy5hbHRlcm5hdGUsbnVsbCE9PWMmJihjPWMubWVtb2l6ZWRTdGF0ZSxudWxsIT09YyYmKGM9Yy5kZWh5ZHJhdGVkLG51bGwhPT1jJiZDYyhjKSkpKTtcbnJldHVybjtjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMDpjYXNlIDIxOmNhc2UgMjM6Y2FzZSAyNDpyZXR1cm59dGhyb3cgRXJyb3IoeSgxNjMpKTt9XG5mdW5jdGlvbiBhaihhLGIpe2Zvcih2YXIgYz1hOzspe2lmKDU9PT1jLnRhZyl7dmFyIGQ9Yy5zdGF0ZU5vZGU7aWYoYilkPWQuc3R5bGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIGQuc2V0UHJvcGVydHk/ZC5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKTpkLmRpc3BsYXk9XCJub25lXCI7ZWxzZXtkPWMuc3RhdGVOb2RlO3ZhciBlPWMubWVtb2l6ZWRQcm9wcy5zdHlsZTtlPXZvaWQgMCE9PWUmJm51bGwhPT1lJiZlLmhhc093blByb3BlcnR5KFwiZGlzcGxheVwiKT9lLmRpc3BsYXk6bnVsbDtkLnN0eWxlLmRpc3BsYXk9c2IoXCJkaXNwbGF5XCIsZSl9fWVsc2UgaWYoNj09PWMudGFnKWMuc3RhdGVOb2RlLm5vZGVWYWx1ZT1iP1wiXCI6Yy5tZW1vaXplZFByb3BzO2Vsc2UgaWYoKDIzIT09Yy50YWcmJjI0IT09Yy50YWd8fG51bGw9PT1jLm1lbW9pemVkU3RhdGV8fGM9PT1hKSYmbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1cbmEpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWEpcmV0dXJuO2M9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319XG5mdW5jdGlvbiBiaihhLGIpe2lmKE1mJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgTWYub25Db21taXRGaWJlclVubW91bnQpdHJ5e01mLm9uQ29tbWl0RmliZXJVbm1vdW50KExmLGIpfWNhdGNoKGYpe31zd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDIyOmE9Yi51cGRhdGVRdWV1ZTtpZihudWxsIT09YSYmKGE9YS5sYXN0RWZmZWN0LG51bGwhPT1hKSl7dmFyIGM9YT1hLm5leHQ7ZG97dmFyIGQ9YyxlPWQuZGVzdHJveTtkPWQudGFnO2lmKHZvaWQgMCE9PWUpaWYoMCE9PShkJjQpKVppKGIsYyk7ZWxzZXtkPWI7dHJ5e2UoKX1jYXRjaChmKXtXaShkLGYpfX1jPWMubmV4dH13aGlsZShjIT09YSl9YnJlYWs7Y2FzZSAxOlZpKGIpO2E9Yi5zdGF0ZU5vZGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuY29tcG9uZW50V2lsbFVubW91bnQpdHJ5e2EucHJvcHM9Yi5tZW1vaXplZFByb3BzLGEuc3RhdGU9Yi5tZW1vaXplZFN0YXRlLGEuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChmKXtXaShiLFxuZil9YnJlYWs7Y2FzZSA1OlZpKGIpO2JyZWFrO2Nhc2UgNDpjaihhLGIpfX1mdW5jdGlvbiBkaihhKXthLmFsdGVybmF0ZT1udWxsO2EuY2hpbGQ9bnVsbDthLmRlcGVuZGVuY2llcz1udWxsO2EuZmlyc3RFZmZlY3Q9bnVsbDthLmxhc3RFZmZlY3Q9bnVsbDthLm1lbW9pemVkUHJvcHM9bnVsbDthLm1lbW9pemVkU3RhdGU9bnVsbDthLnBlbmRpbmdQcm9wcz1udWxsO2EucmV0dXJuPW51bGw7YS51cGRhdGVRdWV1ZT1udWxsfWZ1bmN0aW9uIGVqKGEpe3JldHVybiA1PT09YS50YWd8fDM9PT1hLnRhZ3x8ND09PWEudGFnfVxuZnVuY3Rpb24gZmooYSl7YTp7Zm9yKHZhciBiPWEucmV0dXJuO251bGwhPT1iOyl7aWYoZWooYikpYnJlYWsgYTtiPWIucmV0dXJufXRocm93IEVycm9yKHkoMTYwKSk7fXZhciBjPWI7Yj1jLnN0YXRlTm9kZTtzd2l0Y2goYy50YWcpe2Nhc2UgNTp2YXIgZD0hMTticmVhaztjYXNlIDM6Yj1iLmNvbnRhaW5lckluZm87ZD0hMDticmVhaztjYXNlIDQ6Yj1iLmNvbnRhaW5lckluZm87ZD0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHkoMTYxKSk7fWMuZmxhZ3MmMTYmJihwYihiLFwiXCIpLGMuZmxhZ3MmPS0xNyk7YTpiOmZvcihjPWE7Oyl7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxlaihjLnJldHVybikpe2M9bnVsbDticmVhayBhfWM9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtmb3IoYz1jLnNpYmxpbmc7NSE9PWMudGFnJiY2IT09Yy50YWcmJjE4IT09Yy50YWc7KXtpZihjLmZsYWdzJjIpY29udGludWUgYjtpZihudWxsPT09XG5jLmNoaWxkfHw0PT09Yy50YWcpY29udGludWUgYjtlbHNlIGMuY2hpbGQucmV0dXJuPWMsYz1jLmNoaWxkfWlmKCEoYy5mbGFncyYyKSl7Yz1jLnN0YXRlTm9kZTticmVhayBhfX1kP2dqKGEsYyxiKTpoaihhLGMsYil9XG5mdW5jdGlvbiBnaihhLGIsYyl7dmFyIGQ9YS50YWcsZT01PT09ZHx8Nj09PWQ7aWYoZSlhPWU/YS5zdGF0ZU5vZGU6YS5zdGF0ZU5vZGUuaW5zdGFuY2UsYj84PT09Yy5ub2RlVHlwZT9jLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYik6Yy5pbnNlcnRCZWZvcmUoYSxiKTooOD09PWMubm9kZVR5cGU/KGI9Yy5wYXJlbnROb2RlLGIuaW5zZXJ0QmVmb3JlKGEsYykpOihiPWMsYi5hcHBlbmRDaGlsZChhKSksYz1jLl9yZWFjdFJvb3RDb250YWluZXIsbnVsbCE9PWMmJnZvaWQgMCE9PWN8fG51bGwhPT1iLm9uY2xpY2t8fChiLm9uY2xpY2s9amYpKTtlbHNlIGlmKDQhPT1kJiYoYT1hLmNoaWxkLG51bGwhPT1hKSlmb3IoZ2ooYSxiLGMpLGE9YS5zaWJsaW5nO251bGwhPT1hOylnaihhLGIsYyksYT1hLnNpYmxpbmd9XG5mdW5jdGlvbiBoaihhLGIsYyl7dmFyIGQ9YS50YWcsZT01PT09ZHx8Nj09PWQ7aWYoZSlhPWU/YS5zdGF0ZU5vZGU6YS5zdGF0ZU5vZGUuaW5zdGFuY2UsYj9jLmluc2VydEJlZm9yZShhLGIpOmMuYXBwZW5kQ2hpbGQoYSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKGhqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspaGooYSxiLGMpLGE9YS5zaWJsaW5nfVxuZnVuY3Rpb24gY2ooYSxiKXtmb3IodmFyIGM9YixkPSExLGUsZjs7KXtpZighZCl7ZD1jLnJldHVybjthOmZvcig7Oyl7aWYobnVsbD09PWQpdGhyb3cgRXJyb3IoeSgxNjApKTtlPWQuc3RhdGVOb2RlO3N3aXRjaChkLnRhZyl7Y2FzZSA1OmY9ITE7YnJlYWsgYTtjYXNlIDM6ZT1lLmNvbnRhaW5lckluZm87Zj0hMDticmVhayBhO2Nhc2UgNDplPWUuY29udGFpbmVySW5mbztmPSEwO2JyZWFrIGF9ZD1kLnJldHVybn1kPSEwfWlmKDU9PT1jLnRhZ3x8Nj09PWMudGFnKXthOmZvcih2YXIgZz1hLGg9YyxrPWg7OylpZihiaihnLGspLG51bGwhPT1rLmNoaWxkJiY0IT09ay50YWcpay5jaGlsZC5yZXR1cm49ayxrPWsuY2hpbGQ7ZWxzZXtpZihrPT09aClicmVhayBhO2Zvcig7bnVsbD09PWsuc2libGluZzspe2lmKG51bGw9PT1rLnJldHVybnx8ay5yZXR1cm49PT1oKWJyZWFrIGE7az1rLnJldHVybn1rLnNpYmxpbmcucmV0dXJuPWsucmV0dXJuO2s9ay5zaWJsaW5nfWY/KGc9ZSxoPWMuc3RhdGVOb2RlLFxuOD09PWcubm9kZVR5cGU/Zy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGgpOmcucmVtb3ZlQ2hpbGQoaCkpOmUucmVtb3ZlQ2hpbGQoYy5zdGF0ZU5vZGUpfWVsc2UgaWYoND09PWMudGFnKXtpZihudWxsIT09Yy5jaGlsZCl7ZT1jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2Y9ITA7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9fWVsc2UgaWYoYmooYSxjKSxudWxsIT09Yy5jaGlsZCl7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9aWYoYz09PWIpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWIpcmV0dXJuO2M9Yy5yZXR1cm47ND09PWMudGFnJiYoZD0hMSl9Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319XG5mdW5jdGlvbiBpaihhLGIpe3N3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMjI6dmFyIGM9Yi51cGRhdGVRdWV1ZTtjPW51bGwhPT1jP2MubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1jKXt2YXIgZD1jPWMubmV4dDtkbyAzPT09KGQudGFnJjMpJiYoYT1kLmRlc3Ryb3ksZC5kZXN0cm95PXZvaWQgMCx2b2lkIDAhPT1hJiZhKCkpLGQ9ZC5uZXh0O3doaWxlKGQhPT1jKX1yZXR1cm47Y2FzZSAxOnJldHVybjtjYXNlIDU6Yz1iLnN0YXRlTm9kZTtpZihudWxsIT1jKXtkPWIubWVtb2l6ZWRQcm9wczt2YXIgZT1udWxsIT09YT9hLm1lbW9pemVkUHJvcHM6ZDthPWIudHlwZTt2YXIgZj1iLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9bnVsbDtpZihudWxsIT09Zil7Y1t4Zl09ZDtcImlucHV0XCI9PT1hJiZcInJhZGlvXCI9PT1kLnR5cGUmJm51bGwhPWQubmFtZSYmJGEoYyxkKTt3YihhLGUpO2I9d2IoYSxkKTtmb3IoZT0wO2U8Zi5sZW5ndGg7ZSs9XG4yKXt2YXIgZz1mW2VdLGg9ZltlKzFdO1wic3R5bGVcIj09PWc/dGIoYyxoKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1nP29iKGMsaCk6XCJjaGlsZHJlblwiPT09Zz9wYihjLGgpOnFhKGMsZyxoLGIpfXN3aXRjaChhKXtjYXNlIFwiaW5wdXRcIjphYihjLGQpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGMsZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmE9Yy5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlLGMuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIWQubXVsdGlwbGUsZj1kLnZhbHVlLG51bGwhPWY/ZmIoYywhIWQubXVsdGlwbGUsZiwhMSk6YSE9PSEhZC5tdWx0aXBsZSYmKG51bGwhPWQuZGVmYXVsdFZhbHVlP2ZiKGMsISFkLm11bHRpcGxlLGQuZGVmYXVsdFZhbHVlLCEwKTpmYihjLCEhZC5tdWx0aXBsZSxkLm11bHRpcGxlP1tdOlwiXCIsITEpKX19fXJldHVybjtjYXNlIDY6aWYobnVsbD09PWIuc3RhdGVOb2RlKXRocm93IEVycm9yKHkoMTYyKSk7Yi5zdGF0ZU5vZGUubm9kZVZhbHVlPVxuYi5tZW1vaXplZFByb3BzO3JldHVybjtjYXNlIDM6Yz1iLnN0YXRlTm9kZTtjLmh5ZHJhdGUmJihjLmh5ZHJhdGU9ITEsQ2MoYy5jb250YWluZXJJbmZvKSk7cmV0dXJuO2Nhc2UgMTI6cmV0dXJuO2Nhc2UgMTM6bnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSYmKGpqPU8oKSxhaihiLmNoaWxkLCEwKSk7a2ooYik7cmV0dXJuO2Nhc2UgMTk6a2ooYik7cmV0dXJuO2Nhc2UgMTc6cmV0dXJuO2Nhc2UgMjM6Y2FzZSAyNDphaihiLG51bGwhPT1iLm1lbW9pemVkU3RhdGUpO3JldHVybn10aHJvdyBFcnJvcih5KDE2MykpO31mdW5jdGlvbiBraihhKXt2YXIgYj1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGM9YS5zdGF0ZU5vZGU7bnVsbD09PWMmJihjPWEuc3RhdGVOb2RlPW5ldyBVaSk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWxqLmJpbmQobnVsbCxhLGIpO2MuaGFzKGIpfHwoYy5hZGQoYiksYi50aGVuKGQsZCkpfSl9fVxuZnVuY3Rpb24gbWooYSxiKXtyZXR1cm4gbnVsbCE9PWEmJihhPWEubWVtb2l6ZWRTdGF0ZSxudWxsPT09YXx8bnVsbCE9PWEuZGVoeWRyYXRlZCk/KGI9Yi5tZW1vaXplZFN0YXRlLG51bGwhPT1iJiZudWxsPT09Yi5kZWh5ZHJhdGVkKTohMX12YXIgbmo9TWF0aC5jZWlsLG9qPXJhLlJlYWN0Q3VycmVudERpc3BhdGNoZXIscGo9cmEuUmVhY3RDdXJyZW50T3duZXIsWD0wLFU9bnVsbCxZPW51bGwsVz0wLHFqPTAscmo9QmYoMCksVj0wLHNqPW51bGwsdGo9MCxEZz0wLEhpPTAsdWo9MCx2aj1udWxsLGpqPTAsSmk9SW5maW5pdHk7ZnVuY3Rpb24gd2ooKXtKaT1PKCkrNTAwfXZhciBaPW51bGwsUWk9ITEsUmk9bnVsbCxUaT1udWxsLHhqPSExLHlqPW51bGwsemo9OTAsQWo9W10sQmo9W10sQ2o9bnVsbCxEaj0wLEVqPW51bGwsRmo9LTEsR2o9MCxIaj0wLElqPW51bGwsSmo9ITE7ZnVuY3Rpb24gSGcoKXtyZXR1cm4gMCE9PShYJjQ4KT9PKCk6LTEhPT1Gaj9GajpGaj1PKCl9XG5mdW5jdGlvbiBJZyhhKXthPWEubW9kZTtpZigwPT09KGEmMikpcmV0dXJuIDE7aWYoMD09PShhJjQpKXJldHVybiA5OT09PWVnKCk/MToyOzA9PT1HaiYmKEdqPXRqKTtpZigwIT09a2cudHJhbnNpdGlvbil7MCE9PUhqJiYoSGo9bnVsbCE9PXZqP3ZqLnBlbmRpbmdMYW5lczowKTthPUdqO3ZhciBiPTQxODYxMTImfkhqO2ImPS1iOzA9PT1iJiYoYT00MTg2MTEyJn5hLGI9YSYtYSwwPT09YiYmKGI9ODE5MikpO3JldHVybiBifWE9ZWcoKTswIT09KFgmNCkmJjk4PT09YT9hPVhjKDEyLEdqKTooYT1TYyhhKSxhPVhjKGEsR2opKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIEpnKGEsYixjKXtpZig1MDxEail0aHJvdyBEaj0wLEVqPW51bGwsRXJyb3IoeSgxODUpKTthPUtqKGEsYik7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7JGMoYSxiLGMpO2E9PT1VJiYoSGl8PWIsND09PVYmJklpKGEsVykpO3ZhciBkPWVnKCk7MT09PWI/MCE9PShYJjgpJiYwPT09KFgmNDgpP0xqKGEpOihNaihhLGMpLDA9PT1YJiYod2ooKSxpZygpKSk6KDA9PT0oWCY0KXx8OTghPT1kJiY5OSE9PWR8fChudWxsPT09Q2o/Q2o9bmV3IFNldChbYV0pOkNqLmFkZChhKSksTWooYSxjKSk7dmo9YX1mdW5jdGlvbiBLaihhLGIpe2EubGFuZXN8PWI7dmFyIGM9YS5hbHRlcm5hdGU7bnVsbCE9PWMmJihjLmxhbmVzfD1iKTtjPWE7Zm9yKGE9YS5yZXR1cm47bnVsbCE9PWE7KWEuY2hpbGRMYW5lc3w9YixjPWEuYWx0ZXJuYXRlLG51bGwhPT1jJiYoYy5jaGlsZExhbmVzfD1iKSxjPWEsYT1hLnJldHVybjtyZXR1cm4gMz09PWMudGFnP2Muc3RhdGVOb2RlOm51bGx9XG5mdW5jdGlvbiBNaihhLGIpe2Zvcih2YXIgYz1hLmNhbGxiYWNrTm9kZSxkPWEuc3VzcGVuZGVkTGFuZXMsZT1hLnBpbmdlZExhbmVzLGY9YS5leHBpcmF0aW9uVGltZXMsZz1hLnBlbmRpbmdMYW5lczswPGc7KXt2YXIgaD0zMS1WYyhnKSxrPTE8PGgsbD1mW2hdO2lmKC0xPT09bCl7aWYoMD09PShrJmQpfHwwIT09KGsmZSkpe2w9YjtSYyhrKTt2YXIgbj1GO2ZbaF09MTA8PW4/bCsyNTA6Njw9bj9sKzVFMzotMX19ZWxzZSBsPD1iJiYoYS5leHBpcmVkTGFuZXN8PWspO2cmPX5rfWQ9VWMoYSxhPT09VT9XOjApO2I9RjtpZigwPT09ZCludWxsIT09YyYmKGMhPT1aZiYmUGYoYyksYS5jYWxsYmFja05vZGU9bnVsbCxhLmNhbGxiYWNrUHJpb3JpdHk9MCk7ZWxzZXtpZihudWxsIT09Yyl7aWYoYS5jYWxsYmFja1ByaW9yaXR5PT09YilyZXR1cm47YyE9PVpmJiZQZihjKX0xNT09PWI/KGM9TGouYmluZChudWxsLGEpLG51bGw9PT1hZz8oYWc9W2NdLGJnPU9mKFVmLGpnKSk6YWcucHVzaChjKSxcbmM9WmYpOjE0PT09Yj9jPWhnKDk5LExqLmJpbmQobnVsbCxhKSk6KGM9VGMoYiksYz1oZyhjLE5qLmJpbmQobnVsbCxhKSkpO2EuY2FsbGJhY2tQcmlvcml0eT1iO2EuY2FsbGJhY2tOb2RlPWN9fVxuZnVuY3Rpb24gTmooYSl7Rmo9LTE7SGo9R2o9MDtpZigwIT09KFgmNDgpKXRocm93IEVycm9yKHkoMzI3KSk7dmFyIGI9YS5jYWxsYmFja05vZGU7aWYoT2ooKSYmYS5jYWxsYmFja05vZGUhPT1iKXJldHVybiBudWxsO3ZhciBjPVVjKGEsYT09PVU/VzowKTtpZigwPT09YylyZXR1cm4gbnVsbDt2YXIgZD1jO3ZhciBlPVg7WHw9MTY7dmFyIGY9UGooKTtpZihVIT09YXx8VyE9PWQpd2ooKSxRaihhLGQpO2RvIHRyeXtSaigpO2JyZWFrfWNhdGNoKGgpe1NqKGEsaCl9d2hpbGUoMSk7cWcoKTtvai5jdXJyZW50PWY7WD1lO251bGwhPT1ZP2Q9MDooVT1udWxsLFc9MCxkPVYpO2lmKDAhPT0odGomSGkpKVFqKGEsMCk7ZWxzZSBpZigwIT09ZCl7Mj09PWQmJihYfD02NCxhLmh5ZHJhdGUmJihhLmh5ZHJhdGU9ITEscWYoYS5jb250YWluZXJJbmZvKSksYz1XYyhhKSwwIT09YyYmKGQ9VGooYSxjKSkpO2lmKDE9PT1kKXRocm93IGI9c2osUWooYSwwKSxJaShhLGMpLE1qKGEsTygpKSxiO2EuZmluaXNoZWRXb3JrPVxuYS5jdXJyZW50LmFsdGVybmF0ZTthLmZpbmlzaGVkTGFuZXM9Yztzd2l0Y2goZCl7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcih5KDM0NSkpO2Nhc2UgMjpVaihhKTticmVhaztjYXNlIDM6SWkoYSxjKTtpZigoYyY2MjkxNDU2MCk9PT1jJiYoZD1qais1MDAtTygpLDEwPGQpKXtpZigwIT09VWMoYSwwKSlicmVhaztlPWEuc3VzcGVuZGVkTGFuZXM7aWYoKGUmYykhPT1jKXtIZygpO2EucGluZ2VkTGFuZXN8PWEuc3VzcGVuZGVkTGFuZXMmZTticmVha31hLnRpbWVvdXRIYW5kbGU9b2YoVWouYmluZChudWxsLGEpLGQpO2JyZWFrfVVqKGEpO2JyZWFrO2Nhc2UgNDpJaShhLGMpO2lmKChjJjQxODYxMTIpPT09YylicmVhaztkPWEuZXZlbnRUaW1lcztmb3IoZT0tMTswPGM7KXt2YXIgZz0zMS1WYyhjKTtmPTE8PGc7Zz1kW2ddO2c+ZSYmKGU9Zyk7YyY9fmZ9Yz1lO2M9TygpLWM7Yz0oMTIwPmM/MTIwOjQ4MD5jPzQ4MDoxMDgwPmM/MTA4MDoxOTIwPmM/MTkyMDozRTM+Yz8zRTM6NDMyMD5cbmM/NDMyMDoxOTYwKm5qKGMvMTk2MCkpLWM7aWYoMTA8Yyl7YS50aW1lb3V0SGFuZGxlPW9mKFVqLmJpbmQobnVsbCxhKSxjKTticmVha31VaihhKTticmVhaztjYXNlIDU6VWooYSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih5KDMyOSkpO319TWooYSxPKCkpO3JldHVybiBhLmNhbGxiYWNrTm9kZT09PWI/TmouYmluZChudWxsLGEpOm51bGx9ZnVuY3Rpb24gSWkoYSxiKXtiJj1+dWo7YiY9fkhpO2Euc3VzcGVuZGVkTGFuZXN8PWI7YS5waW5nZWRMYW5lcyY9fmI7Zm9yKGE9YS5leHBpcmF0aW9uVGltZXM7MDxiOyl7dmFyIGM9MzEtVmMoYiksZD0xPDxjO2FbY109LTE7YiY9fmR9fVxuZnVuY3Rpb24gTGooYSl7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMyNykpO09qKCk7aWYoYT09PVUmJjAhPT0oYS5leHBpcmVkTGFuZXMmVykpe3ZhciBiPVc7dmFyIGM9VGooYSxiKTswIT09KHRqJkhpKSYmKGI9VWMoYSxiKSxjPVRqKGEsYikpfWVsc2UgYj1VYyhhLDApLGM9VGooYSxiKTswIT09YS50YWcmJjI9PT1jJiYoWHw9NjQsYS5oeWRyYXRlJiYoYS5oeWRyYXRlPSExLHFmKGEuY29udGFpbmVySW5mbykpLGI9V2MoYSksMCE9PWImJihjPVRqKGEsYikpKTtpZigxPT09Yyl0aHJvdyBjPXNqLFFqKGEsMCksSWkoYSxiKSxNaihhLE8oKSksYzthLmZpbmlzaGVkV29yaz1hLmN1cnJlbnQuYWx0ZXJuYXRlO2EuZmluaXNoZWRMYW5lcz1iO1VqKGEpO01qKGEsTygpKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFZqKCl7aWYobnVsbCE9PUNqKXt2YXIgYT1DajtDaj1udWxsO2EuZm9yRWFjaChmdW5jdGlvbihhKXthLmV4cGlyZWRMYW5lc3w9MjQmYS5wZW5kaW5nTGFuZXM7TWooYSxPKCkpfSl9aWcoKX1mdW5jdGlvbiBXaihhLGIpe3ZhciBjPVg7WHw9MTt0cnl7cmV0dXJuIGEoYil9ZmluYWxseXtYPWMsMD09PVgmJih3aigpLGlnKCkpfX1mdW5jdGlvbiBYaihhLGIpe3ZhciBjPVg7WCY9LTI7WHw9ODt0cnl7cmV0dXJuIGEoYil9ZmluYWxseXtYPWMsMD09PVgmJih3aigpLGlnKCkpfX1mdW5jdGlvbiBuaShhLGIpe0kocmoscWopO3FqfD1iO3RqfD1ifWZ1bmN0aW9uIEtpKCl7cWo9cmouY3VycmVudDtIKHJqKX1cbmZ1bmN0aW9uIFFqKGEsYil7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkTGFuZXM9MDt2YXIgYz1hLnRpbWVvdXRIYW5kbGU7LTEhPT1jJiYoYS50aW1lb3V0SGFuZGxlPS0xLHBmKGMpKTtpZihudWxsIT09WSlmb3IoYz1ZLnJldHVybjtudWxsIT09Yzspe3ZhciBkPWM7c3dpdGNoKGQudGFnKXtjYXNlIDE6ZD1kLnR5cGUuY2hpbGRDb250ZXh0VHlwZXM7bnVsbCE9PWQmJnZvaWQgMCE9PWQmJkdmKCk7YnJlYWs7Y2FzZSAzOmZoKCk7SChOKTtIKE0pO3VoKCk7YnJlYWs7Y2FzZSA1OmhoKGQpO2JyZWFrO2Nhc2UgNDpmaCgpO2JyZWFrO2Nhc2UgMTM6SChQKTticmVhaztjYXNlIDE5OkgoUCk7YnJlYWs7Y2FzZSAxMDpyZyhkKTticmVhaztjYXNlIDIzOmNhc2UgMjQ6S2koKX1jPWMucmV0dXJufVU9YTtZPVRnKGEuY3VycmVudCxudWxsKTtXPXFqPXRqPWI7Vj0wO3NqPW51bGw7dWo9SGk9RGc9MH1cbmZ1bmN0aW9uIFNqKGEsYil7ZG97dmFyIGM9WTt0cnl7cWcoKTt2aC5jdXJyZW50PUdoO2lmKHloKXtmb3IodmFyIGQ9Ui5tZW1vaXplZFN0YXRlO251bGwhPT1kOyl7dmFyIGU9ZC5xdWV1ZTtudWxsIT09ZSYmKGUucGVuZGluZz1udWxsKTtkPWQubmV4dH15aD0hMX14aD0wO1Q9Uz1SPW51bGw7emg9ITE7cGouY3VycmVudD1udWxsO2lmKG51bGw9PT1jfHxudWxsPT09Yy5yZXR1cm4pe1Y9MTtzaj1iO1k9bnVsbDticmVha31hOnt2YXIgZj1hLGc9Yy5yZXR1cm4saD1jLGs9YjtiPVc7aC5mbGFnc3w9MjA0ODtoLmZpcnN0RWZmZWN0PWgubGFzdEVmZmVjdD1udWxsO2lmKG51bGwhPT1rJiZcIm9iamVjdFwiPT09dHlwZW9mIGsmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBrLnRoZW4pe3ZhciBsPWs7aWYoMD09PShoLm1vZGUmMikpe3ZhciBuPWguYWx0ZXJuYXRlO24/KGgudXBkYXRlUXVldWU9bi51cGRhdGVRdWV1ZSxoLm1lbW9pemVkU3RhdGU9bi5tZW1vaXplZFN0YXRlLGgubGFuZXM9bi5sYW5lcyk6XG4oaC51cGRhdGVRdWV1ZT1udWxsLGgubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgQT0wIT09KFAuY3VycmVudCYxKSxwPWc7ZG97dmFyIEM7aWYoQz0xMz09PXAudGFnKXt2YXIgeD1wLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXgpQz1udWxsIT09eC5kZWh5ZHJhdGVkPyEwOiExO2Vsc2V7dmFyIHc9cC5tZW1vaXplZFByb3BzO0M9dm9pZCAwPT09dy5mYWxsYmFjaz8hMTohMCE9PXcudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2s/ITA6QT8hMTohMH19aWYoQyl7dmFyIHo9cC51cGRhdGVRdWV1ZTtpZihudWxsPT09eil7dmFyIHU9bmV3IFNldDt1LmFkZChsKTtwLnVwZGF0ZVF1ZXVlPXV9ZWxzZSB6LmFkZChsKTtpZigwPT09KHAubW9kZSYyKSl7cC5mbGFnc3w9NjQ7aC5mbGFnc3w9MTYzODQ7aC5mbGFncyY9LTI5ODE7aWYoMT09PWgudGFnKWlmKG51bGw9PT1oLmFsdGVybmF0ZSloLnRhZz0xNztlbHNle3ZhciB0PXpnKC0xLDEpO3QudGFnPTI7QWcoaCx0KX1oLmxhbmVzfD0xO2JyZWFrIGF9az1cbnZvaWQgMDtoPWI7dmFyIHE9Zi5waW5nQ2FjaGU7bnVsbD09PXE/KHE9Zi5waW5nQ2FjaGU9bmV3IE9pLGs9bmV3IFNldCxxLnNldChsLGspKTooaz1xLmdldChsKSx2b2lkIDA9PT1rJiYoaz1uZXcgU2V0LHEuc2V0KGwsaykpKTtpZighay5oYXMoaCkpe2suYWRkKGgpO3ZhciB2PVlqLmJpbmQobnVsbCxmLGwsaCk7bC50aGVuKHYsdil9cC5mbGFnc3w9NDA5NjtwLmxhbmVzPWI7YnJlYWsgYX1wPXAucmV0dXJufXdoaWxlKG51bGwhPT1wKTtrPUVycm9yKChSYShoLnR5cGUpfHxcIkEgUmVhY3QgY29tcG9uZW50XCIpK1wiIHN1c3BlbmRlZCB3aGlsZSByZW5kZXJpbmcsIGJ1dCBubyBmYWxsYmFjayBVSSB3YXMgc3BlY2lmaWVkLlxcblxcbkFkZCBhIDxTdXNwZW5zZSBmYWxsYmFjaz0uLi4+IGNvbXBvbmVudCBoaWdoZXIgaW4gdGhlIHRyZWUgdG8gcHJvdmlkZSBhIGxvYWRpbmcgaW5kaWNhdG9yIG9yIHBsYWNlaG9sZGVyIHRvIGRpc3BsYXkuXCIpfTUhPT1WJiYoVj0yKTtrPU1pKGssaCk7cD1cbmc7ZG97c3dpdGNoKHAudGFnKXtjYXNlIDM6Zj1rO3AuZmxhZ3N8PTQwOTY7YiY9LWI7cC5sYW5lc3w9Yjt2YXIgSj1QaShwLGYsYik7QmcocCxKKTticmVhayBhO2Nhc2UgMTpmPWs7dmFyIEs9cC50eXBlLFE9cC5zdGF0ZU5vZGU7aWYoMD09PShwLmZsYWdzJjY0KSYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBLLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PVEmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBRLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PVRpfHwhVGkuaGFzKFEpKSkpe3AuZmxhZ3N8PTQwOTY7YiY9LWI7cC5sYW5lc3w9Yjt2YXIgTD1TaShwLGYsYik7QmcocCxMKTticmVhayBhfX1wPXAucmV0dXJufXdoaWxlKG51bGwhPT1wKX1aaihjKX1jYXRjaCh2YSl7Yj12YTtZPT09YyYmbnVsbCE9PWMmJihZPWM9Yy5yZXR1cm4pO2NvbnRpbnVlfWJyZWFrfXdoaWxlKDEpfVxuZnVuY3Rpb24gUGooKXt2YXIgYT1vai5jdXJyZW50O29qLmN1cnJlbnQ9R2g7cmV0dXJuIG51bGw9PT1hP0doOmF9ZnVuY3Rpb24gVGooYSxiKXt2YXIgYz1YO1h8PTE2O3ZhciBkPVBqKCk7VT09PWEmJlc9PT1ifHxRaihhLGIpO2RvIHRyeXthaygpO2JyZWFrfWNhdGNoKGUpe1NqKGEsZSl9d2hpbGUoMSk7cWcoKTtYPWM7b2ouY3VycmVudD1kO2lmKG51bGwhPT1ZKXRocm93IEVycm9yKHkoMjYxKSk7VT1udWxsO1c9MDtyZXR1cm4gVn1mdW5jdGlvbiBhaygpe2Zvcig7bnVsbCE9PVk7KWJrKFkpfWZ1bmN0aW9uIFJqKCl7Zm9yKDtudWxsIT09WSYmIVFmKCk7KWJrKFkpfWZ1bmN0aW9uIGJrKGEpe3ZhciBiPWNrKGEuYWx0ZXJuYXRlLGEscWopO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcztudWxsPT09Yj9aaihhKTpZPWI7cGouY3VycmVudD1udWxsfVxuZnVuY3Rpb24gWmooYSl7dmFyIGI9YTtkb3t2YXIgYz1iLmFsdGVybmF0ZTthPWIucmV0dXJuO2lmKDA9PT0oYi5mbGFncyYyMDQ4KSl7Yz1HaShjLGIscWopO2lmKG51bGwhPT1jKXtZPWM7cmV0dXJufWM9YjtpZigyNCE9PWMudGFnJiYyMyE9PWMudGFnfHxudWxsPT09Yy5tZW1vaXplZFN0YXRlfHwwIT09KHFqJjEwNzM3NDE4MjQpfHwwPT09KGMubW9kZSY0KSl7Zm9yKHZhciBkPTAsZT1jLmNoaWxkO251bGwhPT1lOylkfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxlPWUuc2libGluZztjLmNoaWxkTGFuZXM9ZH1udWxsIT09YSYmMD09PShhLmZsYWdzJjIwNDgpJiYobnVsbD09PWEuZmlyc3RFZmZlY3QmJihhLmZpcnN0RWZmZWN0PWIuZmlyc3RFZmZlY3QpLG51bGwhPT1iLmxhc3RFZmZlY3QmJihudWxsIT09YS5sYXN0RWZmZWN0JiYoYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9Yi5maXJzdEVmZmVjdCksYS5sYXN0RWZmZWN0PWIubGFzdEVmZmVjdCksMTxiLmZsYWdzJiYobnVsbCE9PVxuYS5sYXN0RWZmZWN0P2EubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWI6YS5maXJzdEVmZmVjdD1iLGEubGFzdEVmZmVjdD1iKSl9ZWxzZXtjPUxpKGIpO2lmKG51bGwhPT1jKXtjLmZsYWdzJj0yMDQ3O1k9YztyZXR1cm59bnVsbCE9PWEmJihhLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1udWxsLGEuZmxhZ3N8PTIwNDgpfWI9Yi5zaWJsaW5nO2lmKG51bGwhPT1iKXtZPWI7cmV0dXJufVk9Yj1hfXdoaWxlKG51bGwhPT1iKTswPT09ViYmKFY9NSl9ZnVuY3Rpb24gVWooYSl7dmFyIGI9ZWcoKTtnZyg5OSxkay5iaW5kKG51bGwsYSxiKSk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBkayhhLGIpe2RvIE9qKCk7d2hpbGUobnVsbCE9PXlqKTtpZigwIT09KFgmNDgpKXRocm93IEVycm9yKHkoMzI3KSk7dmFyIGM9YS5maW5pc2hlZFdvcms7aWYobnVsbD09PWMpcmV0dXJuIG51bGw7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkTGFuZXM9MDtpZihjPT09YS5jdXJyZW50KXRocm93IEVycm9yKHkoMTc3KSk7YS5jYWxsYmFja05vZGU9bnVsbDt2YXIgZD1jLmxhbmVzfGMuY2hpbGRMYW5lcyxlPWQsZj1hLnBlbmRpbmdMYW5lcyZ+ZTthLnBlbmRpbmdMYW5lcz1lO2Euc3VzcGVuZGVkTGFuZXM9MDthLnBpbmdlZExhbmVzPTA7YS5leHBpcmVkTGFuZXMmPWU7YS5tdXRhYmxlUmVhZExhbmVzJj1lO2EuZW50YW5nbGVkTGFuZXMmPWU7ZT1hLmVudGFuZ2xlbWVudHM7Zm9yKHZhciBnPWEuZXZlbnRUaW1lcyxoPWEuZXhwaXJhdGlvblRpbWVzOzA8Zjspe3ZhciBrPTMxLVZjKGYpLGw9MTw8aztlW2tdPTA7Z1trXT0tMTtoW2tdPS0xO2YmPX5sfW51bGwhPT1cbkNqJiYwPT09KGQmMjQpJiZDai5oYXMoYSkmJkNqLmRlbGV0ZShhKTthPT09VSYmKFk9VT1udWxsLFc9MCk7MTxjLmZsYWdzP251bGwhPT1jLmxhc3RFZmZlY3Q/KGMubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWMsZD1jLmZpcnN0RWZmZWN0KTpkPWM6ZD1jLmZpcnN0RWZmZWN0O2lmKG51bGwhPT1kKXtlPVg7WHw9MzI7cGouY3VycmVudD1udWxsO2tmPWZkO2c9TmUoKTtpZihPZShnKSl7aWYoXCJzZWxlY3Rpb25TdGFydFwiaW4gZyloPXtzdGFydDpnLnNlbGVjdGlvblN0YXJ0LGVuZDpnLnNlbGVjdGlvbkVuZH07ZWxzZSBhOmlmKGg9KGg9Zy5vd25lckRvY3VtZW50KSYmaC5kZWZhdWx0Vmlld3x8d2luZG93LChsPWguZ2V0U2VsZWN0aW9uJiZoLmdldFNlbGVjdGlvbigpKSYmMCE9PWwucmFuZ2VDb3VudCl7aD1sLmFuY2hvck5vZGU7Zj1sLmFuY2hvck9mZnNldDtrPWwuZm9jdXNOb2RlO2w9bC5mb2N1c09mZnNldDt0cnl7aC5ub2RlVHlwZSxrLm5vZGVUeXBlfWNhdGNoKHZhKXtoPW51bGw7XG5icmVhayBhfXZhciBuPTAsQT0tMSxwPS0xLEM9MCx4PTAsdz1nLHo9bnVsbDtiOmZvcig7Oyl7Zm9yKHZhciB1Ozspe3chPT1ofHwwIT09ZiYmMyE9PXcubm9kZVR5cGV8fChBPW4rZik7dyE9PWt8fDAhPT1sJiYzIT09dy5ub2RlVHlwZXx8KHA9bitsKTszPT09dy5ub2RlVHlwZSYmKG4rPXcubm9kZVZhbHVlLmxlbmd0aCk7aWYobnVsbD09PSh1PXcuZmlyc3RDaGlsZCkpYnJlYWs7ej13O3c9dX1mb3IoOzspe2lmKHc9PT1nKWJyZWFrIGI7ej09PWgmJisrQz09PWYmJihBPW4pO3o9PT1rJiYrK3g9PT1sJiYocD1uKTtpZihudWxsIT09KHU9dy5uZXh0U2libGluZykpYnJlYWs7dz16O3o9dy5wYXJlbnROb2RlfXc9dX1oPS0xPT09QXx8LTE9PT1wP251bGw6e3N0YXJ0OkEsZW5kOnB9fWVsc2UgaD1udWxsO2g9aHx8e3N0YXJ0OjAsZW5kOjB9fWVsc2UgaD1udWxsO2xmPXtmb2N1c2VkRWxlbTpnLHNlbGVjdGlvblJhbmdlOmh9O2ZkPSExO0lqPW51bGw7Smo9ITE7Wj1kO2RvIHRyeXtlaygpfWNhdGNoKHZhKXtpZihudWxsPT09XG5aKXRocm93IEVycm9yKHkoMzMwKSk7V2koWix2YSk7Wj1aLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVopO0lqPW51bGw7Wj1kO2RvIHRyeXtmb3IoZz1hO251bGwhPT1aOyl7dmFyIHQ9Wi5mbGFnczt0JjE2JiZwYihaLnN0YXRlTm9kZSxcIlwiKTtpZih0JjEyOCl7dmFyIHE9Wi5hbHRlcm5hdGU7aWYobnVsbCE9PXEpe3ZhciB2PXEucmVmO251bGwhPT12JiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHY/dihudWxsKTp2LmN1cnJlbnQ9bnVsbCl9fXN3aXRjaCh0JjEwMzgpe2Nhc2UgMjpmaihaKTtaLmZsYWdzJj0tMzticmVhaztjYXNlIDY6ZmooWik7Wi5mbGFncyY9LTM7aWooWi5hbHRlcm5hdGUsWik7YnJlYWs7Y2FzZSAxMDI0OlouZmxhZ3MmPS0xMDI1O2JyZWFrO2Nhc2UgMTAyODpaLmZsYWdzJj0tMTAyNTtpaihaLmFsdGVybmF0ZSxaKTticmVhaztjYXNlIDQ6aWooWi5hbHRlcm5hdGUsWik7YnJlYWs7Y2FzZSA4Omg9WjtjaihnLGgpO3ZhciBKPWguYWx0ZXJuYXRlO2RqKGgpO251bGwhPT1cbkomJmRqKEopfVo9Wi5uZXh0RWZmZWN0fX1jYXRjaCh2YSl7aWYobnVsbD09PVopdGhyb3cgRXJyb3IoeSgzMzApKTtXaShaLHZhKTtaPVoubmV4dEVmZmVjdH13aGlsZShudWxsIT09Wik7dj1sZjtxPU5lKCk7dD12LmZvY3VzZWRFbGVtO2c9di5zZWxlY3Rpb25SYW5nZTtpZihxIT09dCYmdCYmdC5vd25lckRvY3VtZW50JiZNZSh0Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHQpKXtudWxsIT09ZyYmT2UodCkmJihxPWcuc3RhcnQsdj1nLmVuZCx2b2lkIDA9PT12JiYodj1xKSxcInNlbGVjdGlvblN0YXJ0XCJpbiB0Pyh0LnNlbGVjdGlvblN0YXJ0PXEsdC5zZWxlY3Rpb25FbmQ9TWF0aC5taW4odix0LnZhbHVlLmxlbmd0aCkpOih2PShxPXQub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZxLmRlZmF1bHRWaWV3fHx3aW5kb3csdi5nZXRTZWxlY3Rpb24mJih2PXYuZ2V0U2VsZWN0aW9uKCksaD10LnRleHRDb250ZW50Lmxlbmd0aCxKPU1hdGgubWluKGcuc3RhcnQsaCksZz12b2lkIDA9PT1cbmcuZW5kP0o6TWF0aC5taW4oZy5lbmQsaCksIXYuZXh0ZW5kJiZKPmcmJihoPWcsZz1KLEo9aCksaD1MZSh0LEopLGY9TGUodCxnKSxoJiZmJiYoMSE9PXYucmFuZ2VDb3VudHx8di5hbmNob3JOb2RlIT09aC5ub2RlfHx2LmFuY2hvck9mZnNldCE9PWgub2Zmc2V0fHx2LmZvY3VzTm9kZSE9PWYubm9kZXx8di5mb2N1c09mZnNldCE9PWYub2Zmc2V0KSYmKHE9cS5jcmVhdGVSYW5nZSgpLHEuc2V0U3RhcnQoaC5ub2RlLGgub2Zmc2V0KSx2LnJlbW92ZUFsbFJhbmdlcygpLEo+Zz8odi5hZGRSYW5nZShxKSx2LmV4dGVuZChmLm5vZGUsZi5vZmZzZXQpKToocS5zZXRFbmQoZi5ub2RlLGYub2Zmc2V0KSx2LmFkZFJhbmdlKHEpKSkpKSk7cT1bXTtmb3Iodj10O3Y9di5wYXJlbnROb2RlOykxPT09di5ub2RlVHlwZSYmcS5wdXNoKHtlbGVtZW50OnYsbGVmdDp2LnNjcm9sbExlZnQsdG9wOnYuc2Nyb2xsVG9wfSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZm9jdXMmJnQuZm9jdXMoKTtmb3IodD1cbjA7dDxxLmxlbmd0aDt0Kyspdj1xW3RdLHYuZWxlbWVudC5zY3JvbGxMZWZ0PXYubGVmdCx2LmVsZW1lbnQuc2Nyb2xsVG9wPXYudG9wfWZkPSEha2Y7bGY9a2Y9bnVsbDthLmN1cnJlbnQ9YztaPWQ7ZG8gdHJ5e2Zvcih0PWE7bnVsbCE9PVo7KXt2YXIgSz1aLmZsYWdzO0smMzYmJllpKHQsWi5hbHRlcm5hdGUsWik7aWYoSyYxMjgpe3E9dm9pZCAwO3ZhciBRPVoucmVmO2lmKG51bGwhPT1RKXt2YXIgTD1aLnN0YXRlTm9kZTtzd2l0Y2goWi50YWcpe2Nhc2UgNTpxPUw7YnJlYWs7ZGVmYXVsdDpxPUx9XCJmdW5jdGlvblwiPT09dHlwZW9mIFE/UShxKTpRLmN1cnJlbnQ9cX19Wj1aLm5leHRFZmZlY3R9fWNhdGNoKHZhKXtpZihudWxsPT09Wil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKFosdmEpO1o9Wi5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1aKTtaPW51bGw7JGYoKTtYPWV9ZWxzZSBhLmN1cnJlbnQ9YztpZih4ail4aj0hMSx5aj1hLHpqPWI7ZWxzZSBmb3IoWj1kO251bGwhPT1aOyliPVxuWi5uZXh0RWZmZWN0LFoubmV4dEVmZmVjdD1udWxsLFouZmxhZ3MmOCYmKEs9WixLLnNpYmxpbmc9bnVsbCxLLnN0YXRlTm9kZT1udWxsKSxaPWI7ZD1hLnBlbmRpbmdMYW5lczswPT09ZCYmKFRpPW51bGwpOzE9PT1kP2E9PT1Faj9EaisrOihEaj0wLEVqPWEpOkRqPTA7Yz1jLnN0YXRlTm9kZTtpZihNZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIE1mLm9uQ29tbWl0RmliZXJSb290KXRyeXtNZi5vbkNvbW1pdEZpYmVyUm9vdChMZixjLHZvaWQgMCw2ND09PShjLmN1cnJlbnQuZmxhZ3MmNjQpKX1jYXRjaCh2YSl7fU1qKGEsTygpKTtpZihRaSl0aHJvdyBRaT0hMSxhPVJpLFJpPW51bGwsYTtpZigwIT09KFgmOCkpcmV0dXJuIG51bGw7aWcoKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGVrKCl7Zm9yKDtudWxsIT09Wjspe3ZhciBhPVouYWx0ZXJuYXRlO0pqfHxudWxsPT09SWp8fCgwIT09KFouZmxhZ3MmOCk/ZGMoWixJaikmJihKaj0hMCk6MTM9PT1aLnRhZyYmbWooYSxaKSYmZGMoWixJaikmJihKaj0hMCkpO3ZhciBiPVouZmxhZ3M7MCE9PShiJjI1NikmJlhpKGEsWik7MD09PShiJjUxMil8fHhqfHwoeGo9ITAsaGcoOTcsZnVuY3Rpb24oKXtPaigpO3JldHVybiBudWxsfSkpO1o9Wi5uZXh0RWZmZWN0fX1mdW5jdGlvbiBPaigpe2lmKDkwIT09emope3ZhciBhPTk3PHpqPzk3OnpqO3pqPTkwO3JldHVybiBnZyhhLGZrKX1yZXR1cm4hMX1mdW5jdGlvbiAkaShhLGIpe0FqLnB1c2goYixhKTt4anx8KHhqPSEwLGhnKDk3LGZ1bmN0aW9uKCl7T2ooKTtyZXR1cm4gbnVsbH0pKX1mdW5jdGlvbiBaaShhLGIpe0JqLnB1c2goYixhKTt4anx8KHhqPSEwLGhnKDk3LGZ1bmN0aW9uKCl7T2ooKTtyZXR1cm4gbnVsbH0pKX1cbmZ1bmN0aW9uIGZrKCl7aWYobnVsbD09PXlqKXJldHVybiExO3ZhciBhPXlqO3lqPW51bGw7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMzMSkpO3ZhciBiPVg7WHw9MzI7dmFyIGM9Qmo7Qmo9W107Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKz0yKXt2YXIgZT1jW2RdLGY9Y1tkKzFdLGc9ZS5kZXN0cm95O2UuZGVzdHJveT12b2lkIDA7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcpdHJ5e2coKX1jYXRjaChrKXtpZihudWxsPT09Zil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKGYsayl9fWM9QWo7QWo9W107Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrPTIpe2U9Y1tkXTtmPWNbZCsxXTt0cnl7dmFyIGg9ZS5jcmVhdGU7ZS5kZXN0cm95PWgoKX1jYXRjaChrKXtpZihudWxsPT09Zil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKGYsayl9fWZvcihoPWEuY3VycmVudC5maXJzdEVmZmVjdDtudWxsIT09aDspYT1oLm5leHRFZmZlY3QsaC5uZXh0RWZmZWN0PW51bGwsaC5mbGFncyY4JiYoaC5zaWJsaW5nPVxubnVsbCxoLnN0YXRlTm9kZT1udWxsKSxoPWE7WD1iO2lnKCk7cmV0dXJuITB9ZnVuY3Rpb24gZ2soYSxiLGMpe2I9TWkoYyxiKTtiPVBpKGEsYiwxKTtBZyhhLGIpO2I9SGcoKTthPUtqKGEsMSk7bnVsbCE9PWEmJigkYyhhLDEsYiksTWooYSxiKSl9XG5mdW5jdGlvbiBXaShhLGIpe2lmKDM9PT1hLnRhZylnayhhLGEsYik7ZWxzZSBmb3IodmFyIGM9YS5yZXR1cm47bnVsbCE9PWM7KXtpZigzPT09Yy50YWcpe2drKGMsYSxiKTticmVha31lbHNlIGlmKDE9PT1jLnRhZyl7dmFyIGQ9Yy5zdGF0ZU5vZGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGMudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PVRpfHwhVGkuaGFzKGQpKSl7YT1NaShiLGEpO3ZhciBlPVNpKGMsYSwxKTtBZyhjLGUpO2U9SGcoKTtjPUtqKGMsMSk7aWYobnVsbCE9PWMpJGMoYywxLGUpLE1qKGMsZSk7ZWxzZSBpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1UaXx8IVRpLmhhcyhkKSkpdHJ5e2QuY29tcG9uZW50RGlkQ2F0Y2goYixhKX1jYXRjaChmKXt9YnJlYWt9fWM9Yy5yZXR1cm59fVxuZnVuY3Rpb24gWWooYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO251bGwhPT1kJiZkLmRlbGV0ZShiKTtiPUhnKCk7YS5waW5nZWRMYW5lc3w9YS5zdXNwZW5kZWRMYW5lcyZjO1U9PT1hJiYoVyZjKT09PWMmJig0PT09Vnx8Mz09PVYmJihXJjYyOTE0NTYwKT09PVcmJjUwMD5PKCktamo/UWooYSwwKTp1anw9Yyk7TWooYSxiKX1mdW5jdGlvbiBsaihhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO251bGwhPT1jJiZjLmRlbGV0ZShiKTtiPTA7MD09PWImJihiPWEubW9kZSwwPT09KGImMik/Yj0xOjA9PT0oYiY0KT9iPTk5PT09ZWcoKT8xOjI6KDA9PT1HaiYmKEdqPXRqKSxiPVljKDYyOTE0NTYwJn5HaiksMD09PWImJihiPTQxOTQzMDQpKSk7Yz1IZygpO2E9S2ooYSxiKTtudWxsIT09YSYmKCRjKGEsYixjKSxNaihhLGMpKX12YXIgY2s7XG5jaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5sYW5lcztpZihudWxsIT09YSlpZihhLm1lbW9pemVkUHJvcHMhPT1iLnBlbmRpbmdQcm9wc3x8Ti5jdXJyZW50KXVnPSEwO2Vsc2UgaWYoMCE9PShjJmQpKXVnPTAhPT0oYS5mbGFncyYxNjM4NCk/ITA6ITE7ZWxzZXt1Zz0hMTtzd2l0Y2goYi50YWcpe2Nhc2UgMzpyaShiKTtzaCgpO2JyZWFrO2Nhc2UgNTpnaChiKTticmVhaztjYXNlIDE6RmYoYi50eXBlKSYmSmYoYik7YnJlYWs7Y2FzZSA0OmVoKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpkPWIubWVtb2l6ZWRQcm9wcy52YWx1ZTt2YXIgZT1iLnR5cGUuX2NvbnRleHQ7SShtZyxlLl9jdXJyZW50VmFsdWUpO2UuX2N1cnJlbnRWYWx1ZT1kO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSl7aWYoMCE9PShjJmIuY2hpbGQuY2hpbGRMYW5lcykpcmV0dXJuIHRpKGEsYixjKTtJKFAsUC5jdXJyZW50JjEpO2I9aGkoYSxiLGMpO3JldHVybiBudWxsIT09XG5iP2Iuc2libGluZzpudWxsfUkoUCxQLmN1cnJlbnQmMSk7YnJlYWs7Y2FzZSAxOTpkPTAhPT0oYyZiLmNoaWxkTGFuZXMpO2lmKDAhPT0oYS5mbGFncyY2NCkpe2lmKGQpcmV0dXJuIEFpKGEsYixjKTtiLmZsYWdzfD02NH1lPWIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGUucmVuZGVyaW5nPW51bGwsZS50YWlsPW51bGwsZS5sYXN0RWZmZWN0PW51bGwpO0koUCxQLmN1cnJlbnQpO2lmKGQpYnJlYWs7ZWxzZSByZXR1cm4gbnVsbDtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIGIubGFuZXM9MCxtaShhLGIsYyl9cmV0dXJuIGhpKGEsYixjKX1lbHNlIHVnPSExO2IubGFuZXM9MDtzd2l0Y2goYi50YWcpe2Nhc2UgMjpkPWIudHlwZTtudWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmZsYWdzfD0yKTthPWIucGVuZGluZ1Byb3BzO2U9RWYoYixNLmN1cnJlbnQpO3RnKGIsYyk7ZT1DaChudWxsLGIsZCxhLGUsYyk7Yi5mbGFnc3w9MTtpZihcIm9iamVjdFwiPT09XG50eXBlb2YgZSYmbnVsbCE9PWUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnJlbmRlciYmdm9pZCAwPT09ZS4kJHR5cGVvZil7Yi50YWc9MTtiLm1lbW9pemVkU3RhdGU9bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7aWYoRmYoZCkpe3ZhciBmPSEwO0pmKGIpfWVsc2UgZj0hMTtiLm1lbW9pemVkU3RhdGU9bnVsbCE9PWUuc3RhdGUmJnZvaWQgMCE9PWUuc3RhdGU/ZS5zdGF0ZTpudWxsO3hnKGIpO3ZhciBnPWQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBnJiZHZyhiLGQsZyxhKTtlLnVwZGF0ZXI9S2c7Yi5zdGF0ZU5vZGU9ZTtlLl9yZWFjdEludGVybmFscz1iO09nKGIsZCxhLGMpO2I9cWkobnVsbCxiLGQsITAsZixjKX1lbHNlIGIudGFnPTAsZmkobnVsbCxiLGUsYyksYj1iLmNoaWxkO3JldHVybiBiO2Nhc2UgMTY6ZT1iLmVsZW1lbnRUeXBlO2E6e251bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZmxhZ3N8PTIpO1xuYT1iLnBlbmRpbmdQcm9wcztmPWUuX2luaXQ7ZT1mKGUuX3BheWxvYWQpO2IudHlwZT1lO2Y9Yi50YWc9aGsoZSk7YT1sZyhlLGEpO3N3aXRjaChmKXtjYXNlIDA6Yj1saShudWxsLGIsZSxhLGMpO2JyZWFrIGE7Y2FzZSAxOmI9cGkobnVsbCxiLGUsYSxjKTticmVhayBhO2Nhc2UgMTE6Yj1naShudWxsLGIsZSxhLGMpO2JyZWFrIGE7Y2FzZSAxNDpiPWlpKG51bGwsYixlLGxnKGUudHlwZSxhKSxkLGMpO2JyZWFrIGF9dGhyb3cgRXJyb3IoeSgzMDYsZSxcIlwiKSk7fXJldHVybiBiO2Nhc2UgMDpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6bGcoZCxlKSxsaShhLGIsZCxlLGMpO2Nhc2UgMTpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6bGcoZCxlKSxwaShhLGIsZCxlLGMpO2Nhc2UgMzpyaShiKTtkPWIudXBkYXRlUXVldWU7aWYobnVsbD09PWF8fG51bGw9PT1kKXRocm93IEVycm9yKHkoMjgyKSk7XG5kPWIucGVuZGluZ1Byb3BzO2U9Yi5tZW1vaXplZFN0YXRlO2U9bnVsbCE9PWU/ZS5lbGVtZW50Om51bGw7eWcoYSxiKTtDZyhiLGQsbnVsbCxjKTtkPWIubWVtb2l6ZWRTdGF0ZS5lbGVtZW50O2lmKGQ9PT1lKXNoKCksYj1oaShhLGIsYyk7ZWxzZXtlPWIuc3RhdGVOb2RlO2lmKGY9ZS5oeWRyYXRlKWtoPXJmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksamg9YixmPWxoPSEwO2lmKGYpe2E9ZS5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhO2lmKG51bGwhPWEpZm9yKGU9MDtlPGEubGVuZ3RoO2UrPTIpZj1hW2VdLGYuX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9YVtlKzFdLHRoLnB1c2goZik7Yz1aZyhiLG51bGwsZCxjKTtmb3IoYi5jaGlsZD1jO2M7KWMuZmxhZ3M9Yy5mbGFncyYtM3wxMDI0LGM9Yy5zaWJsaW5nfWVsc2UgZmkoYSxiLGQsYyksc2goKTtiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA1OnJldHVybiBnaChiKSxudWxsPT09YSYmXG5waChiKSxkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGY9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOm51bGwsZz1lLmNoaWxkcmVuLG5mKGQsZSk/Zz1udWxsOm51bGwhPT1mJiZuZihkLGYpJiYoYi5mbGFnc3w9MTYpLG9pKGEsYiksZmkoYSxiLGcsYyksYi5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1hJiZwaChiKSxudWxsO2Nhc2UgMTM6cmV0dXJuIHRpKGEsYixjKTtjYXNlIDQ6cmV0dXJuIGVoKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksZD1iLnBlbmRpbmdQcm9wcyxudWxsPT09YT9iLmNoaWxkPVlnKGIsbnVsbCxkLGMpOmZpKGEsYixkLGMpLGIuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6bGcoZCxlKSxnaShhLGIsZCxlLGMpO2Nhc2UgNzpyZXR1cm4gZmkoYSxiLGIucGVuZGluZ1Byb3BzLGMpLGIuY2hpbGQ7Y2FzZSA4OnJldHVybiBmaShhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sXG5jKSxiLmNoaWxkO2Nhc2UgMTI6cmV0dXJuIGZpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTA6YTp7ZD1iLnR5cGUuX2NvbnRleHQ7ZT1iLnBlbmRpbmdQcm9wcztnPWIubWVtb2l6ZWRQcm9wcztmPWUudmFsdWU7dmFyIGg9Yi50eXBlLl9jb250ZXh0O0kobWcsaC5fY3VycmVudFZhbHVlKTtoLl9jdXJyZW50VmFsdWU9ZjtpZihudWxsIT09ZylpZihoPWcudmFsdWUsZj1IZShoLGYpPzA6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLl9jYWxjdWxhdGVDaGFuZ2VkQml0cz9kLl9jYWxjdWxhdGVDaGFuZ2VkQml0cyhoLGYpOjEwNzM3NDE4MjMpfDAsMD09PWYpe2lmKGcuY2hpbGRyZW49PT1lLmNoaWxkcmVuJiYhTi5jdXJyZW50KXtiPWhpKGEsYixjKTticmVhayBhfX1lbHNlIGZvcihoPWIuY2hpbGQsbnVsbCE9PWgmJihoLnJldHVybj1iKTtudWxsIT09aDspe3ZhciBrPWguZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1rKXtnPWguY2hpbGQ7Zm9yKHZhciBsPVxuay5maXJzdENvbnRleHQ7bnVsbCE9PWw7KXtpZihsLmNvbnRleHQ9PT1kJiYwIT09KGwub2JzZXJ2ZWRCaXRzJmYpKXsxPT09aC50YWcmJihsPXpnKC0xLGMmLWMpLGwudGFnPTIsQWcoaCxsKSk7aC5sYW5lc3w9YztsPWguYWx0ZXJuYXRlO251bGwhPT1sJiYobC5sYW5lc3w9Yyk7c2coaC5yZXR1cm4sYyk7ay5sYW5lc3w9YzticmVha31sPWwubmV4dH19ZWxzZSBnPTEwPT09aC50YWc/aC50eXBlPT09Yi50eXBlP251bGw6aC5jaGlsZDpoLmNoaWxkO2lmKG51bGwhPT1nKWcucmV0dXJuPWg7ZWxzZSBmb3IoZz1oO251bGwhPT1nOyl7aWYoZz09PWIpe2c9bnVsbDticmVha31oPWcuc2libGluZztpZihudWxsIT09aCl7aC5yZXR1cm49Zy5yZXR1cm47Zz1oO2JyZWFrfWc9Zy5yZXR1cm59aD1nfWZpKGEsYixlLmNoaWxkcmVuLGMpO2I9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDk6cmV0dXJuIGU9Yi50eXBlLGY9Yi5wZW5kaW5nUHJvcHMsZD1mLmNoaWxkcmVuLHRnKGIsYyksZT12ZyhlLFxuZi51bnN0YWJsZV9vYnNlcnZlZEJpdHMpLGQ9ZChlKSxiLmZsYWdzfD0xLGZpKGEsYixkLGMpLGIuY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gZT1iLnR5cGUsZj1sZyhlLGIucGVuZGluZ1Byb3BzKSxmPWxnKGUudHlwZSxmKSxpaShhLGIsZSxmLGQsYyk7Y2FzZSAxNTpyZXR1cm4ga2koYSxiLGIudHlwZSxiLnBlbmRpbmdQcm9wcyxkLGMpO2Nhc2UgMTc6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSksbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9MiksYi50YWc9MSxGZihkKT8oYT0hMCxKZihiKSk6YT0hMSx0ZyhiLGMpLE1nKGIsZCxlKSxPZyhiLGQsZSxjKSxxaShudWxsLGIsZCwhMCxhLGMpO2Nhc2UgMTk6cmV0dXJuIEFpKGEsYixjKTtjYXNlIDIzOnJldHVybiBtaShhLGIsYyk7Y2FzZSAyNDpyZXR1cm4gbWkoYSxiLGMpfXRocm93IEVycm9yKHkoMTU2LGIudGFnKSk7XG59O2Z1bmN0aW9uIGlrKGEsYixjLGQpe3RoaXMudGFnPWE7dGhpcy5rZXk9Yzt0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsO3RoaXMuaW5kZXg9MDt0aGlzLnJlZj1udWxsO3RoaXMucGVuZGluZ1Byb3BzPWI7dGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGw7dGhpcy5tb2RlPWQ7dGhpcy5mbGFncz0wO3RoaXMubGFzdEVmZmVjdD10aGlzLmZpcnN0RWZmZWN0PXRoaXMubmV4dEVmZmVjdD1udWxsO3RoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTA7dGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiBuaChhLGIsYyxkKXtyZXR1cm4gbmV3IGlrKGEsYixjLGQpfWZ1bmN0aW9uIGppKGEpe2E9YS5wcm90b3R5cGU7cmV0dXJuISghYXx8IWEuaXNSZWFjdENvbXBvbmVudCl9XG5mdW5jdGlvbiBoayhhKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gamkoYSk/MTowO2lmKHZvaWQgMCE9PWEmJm51bGwhPT1hKXthPWEuJCR0eXBlb2Y7aWYoYT09PUFhKXJldHVybiAxMTtpZihhPT09RGEpcmV0dXJuIDE0fXJldHVybiAyfVxuZnVuY3Rpb24gVGcoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtudWxsPT09Yz8oYz1uaChhLnRhZyxiLGEua2V5LGEubW9kZSksYy5lbGVtZW50VHlwZT1hLmVsZW1lbnRUeXBlLGMudHlwZT1hLnR5cGUsYy5zdGF0ZU5vZGU9YS5zdGF0ZU5vZGUsYy5hbHRlcm5hdGU9YSxhLmFsdGVybmF0ZT1jKTooYy5wZW5kaW5nUHJvcHM9YixjLnR5cGU9YS50eXBlLGMuZmxhZ3M9MCxjLm5leHRFZmZlY3Q9bnVsbCxjLmZpcnN0RWZmZWN0PW51bGwsYy5sYXN0RWZmZWN0PW51bGwpO2MuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXM7Yy5sYW5lcz1hLmxhbmVzO2MuY2hpbGQ9YS5jaGlsZDtjLm1lbW9pemVkUHJvcHM9YS5tZW1vaXplZFByb3BzO2MubWVtb2l6ZWRTdGF0ZT1hLm1lbW9pemVkU3RhdGU7Yy51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlO2I9YS5kZXBlbmRlbmNpZXM7Yy5kZXBlbmRlbmNpZXM9bnVsbD09PWI/bnVsbDp7bGFuZXM6Yi5sYW5lcyxmaXJzdENvbnRleHQ6Yi5maXJzdENvbnRleHR9O1xuYy5zaWJsaW5nPWEuc2libGluZztjLmluZGV4PWEuaW5kZXg7Yy5yZWY9YS5yZWY7cmV0dXJuIGN9XG5mdW5jdGlvbiBWZyhhLGIsYyxkLGUsZil7dmFyIGc9MjtkPWE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpamkoYSkmJihnPTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKWc9NTtlbHNlIGE6c3dpdGNoKGEpe2Nhc2UgdWE6cmV0dXJuIFhnKGMuY2hpbGRyZW4sZSxmLGIpO2Nhc2UgSGE6Zz04O2V8PTE2O2JyZWFrO2Nhc2Ugd2E6Zz04O2V8PTE7YnJlYWs7Y2FzZSB4YTpyZXR1cm4gYT1uaCgxMixjLGIsZXw4KSxhLmVsZW1lbnRUeXBlPXhhLGEudHlwZT14YSxhLmxhbmVzPWYsYTtjYXNlIEJhOnJldHVybiBhPW5oKDEzLGMsYixlKSxhLnR5cGU9QmEsYS5lbGVtZW50VHlwZT1CYSxhLmxhbmVzPWYsYTtjYXNlIENhOnJldHVybiBhPW5oKDE5LGMsYixlKSxhLmVsZW1lbnRUeXBlPUNhLGEubGFuZXM9ZixhO2Nhc2UgSWE6cmV0dXJuIHZpKGMsZSxmLGIpO2Nhc2UgSmE6cmV0dXJuIGE9bmgoMjQsYyxiLGUpLGEuZWxlbWVudFR5cGU9SmEsYS5sYW5lcz1mLGE7ZGVmYXVsdDppZihcIm9iamVjdFwiPT09XG50eXBlb2YgYSYmbnVsbCE9PWEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgeWE6Zz0xMDticmVhayBhO2Nhc2UgemE6Zz05O2JyZWFrIGE7Y2FzZSBBYTpnPTExO2JyZWFrIGE7Y2FzZSBEYTpnPTE0O2JyZWFrIGE7Y2FzZSBFYTpnPTE2O2Q9bnVsbDticmVhayBhO2Nhc2UgRmE6Zz0yMjticmVhayBhfXRocm93IEVycm9yKHkoMTMwLG51bGw9PWE/YTp0eXBlb2YgYSxcIlwiKSk7fWI9bmgoZyxjLGIsZSk7Yi5lbGVtZW50VHlwZT1hO2IudHlwZT1kO2IubGFuZXM9ZjtyZXR1cm4gYn1mdW5jdGlvbiBYZyhhLGIsYyxkKXthPW5oKDcsYSxkLGIpO2EubGFuZXM9YztyZXR1cm4gYX1mdW5jdGlvbiB2aShhLGIsYyxkKXthPW5oKDIzLGEsZCxiKTthLmVsZW1lbnRUeXBlPUlhO2EubGFuZXM9YztyZXR1cm4gYX1mdW5jdGlvbiBVZyhhLGIsYyl7YT1uaCg2LGEsbnVsbCxiKTthLmxhbmVzPWM7cmV0dXJuIGF9XG5mdW5jdGlvbiBXZyhhLGIsYyl7Yj1uaCg0LG51bGwhPT1hLmNoaWxkcmVuP2EuY2hpbGRyZW46W10sYS5rZXksYik7Yi5sYW5lcz1jO2Iuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmEuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjphLmltcGxlbWVudGF0aW9ufTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGprKGEsYixjKXt0aGlzLnRhZz1iO3RoaXMuY29udGFpbmVySW5mbz1hO3RoaXMuZmluaXNoZWRXb3JrPXRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsO3RoaXMudGltZW91dEhhbmRsZT0tMTt0aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsO3RoaXMuaHlkcmF0ZT1jO3RoaXMuY2FsbGJhY2tOb2RlPW51bGw7dGhpcy5jYWxsYmFja1ByaW9yaXR5PTA7dGhpcy5ldmVudFRpbWVzPVpjKDApO3RoaXMuZXhwaXJhdGlvblRpbWVzPVpjKC0xKTt0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTA7dGhpcy5lbnRhbmdsZW1lbnRzPVpjKDApO3RoaXMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1udWxsfVxuZnVuY3Rpb24ga2soYSxiLGMpe3ZhciBkPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjp0YSxrZXk6bnVsbD09ZD9udWxsOlwiXCIrZCxjaGlsZHJlbjphLGNvbnRhaW5lckluZm86YixpbXBsZW1lbnRhdGlvbjpjfX1cbmZ1bmN0aW9uIGxrKGEsYixjLGQpe3ZhciBlPWIuY3VycmVudCxmPUhnKCksZz1JZyhlKTthOmlmKGMpe2M9Yy5fcmVhY3RJbnRlcm5hbHM7Yjp7aWYoWmIoYykhPT1jfHwxIT09Yy50YWcpdGhyb3cgRXJyb3IoeSgxNzApKTt2YXIgaD1jO2Rve3N3aXRjaChoLnRhZyl7Y2FzZSAzOmg9aC5zdGF0ZU5vZGUuY29udGV4dDticmVhayBiO2Nhc2UgMTppZihGZihoLnR5cGUpKXtoPWguc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIGJ9fWg9aC5yZXR1cm59d2hpbGUobnVsbCE9PWgpO3Rocm93IEVycm9yKHkoMTcxKSk7fWlmKDE9PT1jLnRhZyl7dmFyIGs9Yy50eXBlO2lmKEZmKGspKXtjPUlmKGMsayxoKTticmVhayBhfX1jPWh9ZWxzZSBjPUNmO251bGw9PT1iLmNvbnRleHQ/Yi5jb250ZXh0PWM6Yi5wZW5kaW5nQ29udGV4dD1jO2I9emcoZixnKTtiLnBheWxvYWQ9e2VsZW1lbnQ6YX07ZD12b2lkIDA9PT1kP251bGw6ZDtudWxsIT09XG5kJiYoYi5jYWxsYmFjaz1kKTtBZyhlLGIpO0pnKGUsZyxmKTtyZXR1cm4gZ31mdW5jdGlvbiBtayhhKXthPWEuY3VycmVudDtpZighYS5jaGlsZClyZXR1cm4gbnVsbDtzd2l0Y2goYS5jaGlsZC50YWcpe2Nhc2UgNTpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGU7ZGVmYXVsdDpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uIG5rKGEsYil7YT1hLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWEmJm51bGwhPT1hLmRlaHlkcmF0ZWQpe3ZhciBjPWEucmV0cnlMYW5lO2EucmV0cnlMYW5lPTAhPT1jJiZjPGI/YzpifX1mdW5jdGlvbiBvayhhLGIpe25rKGEsYik7KGE9YS5hbHRlcm5hdGUpJiZuayhhLGIpfWZ1bmN0aW9uIHBrKCl7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBxayhhLGIsYyl7dmFyIGQ9bnVsbCE9YyYmbnVsbCE9Yy5oeWRyYXRpb25PcHRpb25zJiZjLmh5ZHJhdGlvbk9wdGlvbnMubXV0YWJsZVNvdXJjZXN8fG51bGw7Yz1uZXcgamsoYSxiLG51bGwhPWMmJiEwPT09Yy5oeWRyYXRlKTtiPW5oKDMsbnVsbCxudWxsLDI9PT1iPzc6MT09PWI/MzowKTtjLmN1cnJlbnQ9YjtiLnN0YXRlTm9kZT1jO3hnKGIpO2FbZmZdPWMuY3VycmVudDtjZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7aWYoZClmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKXtiPWRbYV07dmFyIGU9Yi5fZ2V0VmVyc2lvbjtlPWUoYi5fc291cmNlKTtudWxsPT1jLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE/Yy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVtiLGVdOmMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKGIsZSl9dGhpcy5faW50ZXJuYWxSb290PWN9XG5xay5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe2xrKGEsdGhpcy5faW50ZXJuYWxSb290LG51bGwsbnVsbCl9O3FrLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5faW50ZXJuYWxSb290LGI9YS5jb250YWluZXJJbmZvO2xrKG51bGwsYSxudWxsLGZ1bmN0aW9uKCl7YltmZl09bnVsbH0pfTtmdW5jdGlvbiByayhhKXtyZXR1cm4hKCFhfHwxIT09YS5ub2RlVHlwZSYmOSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZSYmKDghPT1hLm5vZGVUeXBlfHxcIiByZWFjdC1tb3VudC1wb2ludC11bnN0YWJsZSBcIiE9PWEubm9kZVZhbHVlKSl9XG5mdW5jdGlvbiBzayhhLGIpe2J8fChiPWE/OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YS5maXJzdENoaWxkOm51bGwsYj0hKCFifHwxIT09Yi5ub2RlVHlwZXx8IWIuaGFzQXR0cmlidXRlKFwiZGF0YS1yZWFjdHJvb3RcIikpKTtpZighYilmb3IodmFyIGM7Yz1hLmxhc3RDaGlsZDspYS5yZW1vdmVDaGlsZChjKTtyZXR1cm4gbmV3IHFrKGEsMCxiP3toeWRyYXRlOiEwfTp2b2lkIDApfVxuZnVuY3Rpb24gdGsoYSxiLGMsZCxlKXt2YXIgZj1jLl9yZWFjdFJvb3RDb250YWluZXI7aWYoZil7dmFyIGc9Zi5faW50ZXJuYWxSb290O2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXt2YXIgaD1lO2U9ZnVuY3Rpb24oKXt2YXIgYT1tayhnKTtoLmNhbGwoYSl9fWxrKGIsZyxhLGUpfWVsc2V7Zj1jLl9yZWFjdFJvb3RDb250YWluZXI9c2soYyxkKTtnPWYuX2ludGVybmFsUm9vdDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl7dmFyIGs9ZTtlPWZ1bmN0aW9uKCl7dmFyIGE9bWsoZyk7ay5jYWxsKGEpfX1YaihmdW5jdGlvbigpe2xrKGIsZyxhLGUpfSl9cmV0dXJuIG1rKGcpfWVjPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPUhnKCk7SmcoYSw0LGIpO29rKGEsNCl9fTtmYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1IZygpO0pnKGEsNjcxMDg4NjQsYik7b2soYSw2NzEwODg2NCl9fTtcbmdjPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPUhnKCksYz1JZyhhKTtKZyhhLGMsYik7b2soYSxjKX19O2hjPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIoKX07XG55Yj1mdW5jdGlvbihhLGIsYyl7c3dpdGNoKGIpe2Nhc2UgXCJpbnB1dFwiOmFiKGEsYyk7Yj1jLm5hbWU7aWYoXCJyYWRpb1wiPT09Yy50eXBlJiZudWxsIT1iKXtmb3IoYz1hO2MucGFyZW50Tm9kZTspYz1jLnBhcmVudE5vZGU7Yz1jLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFtuYW1lPVwiK0pTT04uc3RyaW5naWZ5KFwiXCIrYikrJ11bdHlwZT1cInJhZGlvXCJdJyk7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKyl7dmFyIGQ9Y1tiXTtpZihkIT09YSYmZC5mb3JtPT09YS5mb3JtKXt2YXIgZT1EYihkKTtpZighZSl0aHJvdyBFcnJvcih5KDkwKSk7V2EoZCk7YWIoZCxlKX19fWJyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGEsYyk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmI9Yy52YWx1ZSxudWxsIT1iJiZmYihhLCEhYy5tdWx0aXBsZSxiLCExKX19O0diPVdqO1xuSGI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1YO1h8PTQ7dHJ5e3JldHVybiBnZyg5OCxhLmJpbmQobnVsbCxiLGMsZCxlKSl9ZmluYWxseXtYPWYsMD09PVgmJih3aigpLGlnKCkpfX07SWI9ZnVuY3Rpb24oKXswPT09KFgmNDkpJiYoVmooKSxPaigpKX07SmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1YO1h8PTI7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7WD1jLDA9PT1YJiYod2ooKSxpZygpKX19O2Z1bmN0aW9uIHVrKGEsYil7dmFyIGM9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIXJrKGIpKXRocm93IEVycm9yKHkoMjAwKSk7cmV0dXJuIGtrKGEsYixudWxsLGMpfXZhciB2az17RXZlbnRzOltDYix1ZSxEYixFYixGYixPaix7Y3VycmVudDohMX1dfSx3az17ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6d2MsYnVuZGxlVHlwZTowLHZlcnNpb246XCIxNy4wLjJcIixyZW5kZXJlclBhY2thZ2VOYW1lOlwicmVhY3QtZG9tXCJ9O1xudmFyIHhrPXtidW5kbGVUeXBlOndrLmJ1bmRsZVR5cGUsdmVyc2lvbjp3ay52ZXJzaW9uLHJlbmRlcmVyUGFja2FnZU5hbWU6d2sucmVuZGVyZXJQYWNrYWdlTmFtZSxyZW5kZXJlckNvbmZpZzp3ay5yZW5kZXJlckNvbmZpZyxvdmVycmlkZUhvb2tTdGF0ZTpudWxsLG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDpudWxsLG92ZXJyaWRlUHJvcHM6bnVsbCxvdmVycmlkZVByb3BzRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjpyYS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOmZ1bmN0aW9uKGEpe2E9Y2MoYSk7cmV0dXJuIG51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGV9LGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOndrLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlfHxcbnBrLGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGx9O2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKXt2YXIgeWs9X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKCF5ay5pc0Rpc2FibGVkJiZ5ay5zdXBwb3J0c0ZpYmVyKXRyeXtMZj15ay5pbmplY3QoeGspLE1mPXlrfWNhdGNoKGEpe319ZXhwb3J0cy5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD12aztleHBvcnRzLmNyZWF0ZVBvcnRhbD11aztcbmV4cG9ydHMuZmluZERPTU5vZGU9ZnVuY3Rpb24oYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZigxPT09YS5ub2RlVHlwZSlyZXR1cm4gYTt2YXIgYj1hLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1iKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5yZW5kZXIpdGhyb3cgRXJyb3IoeSgxODgpKTt0aHJvdyBFcnJvcih5KDI2OCxPYmplY3Qua2V5cyhhKSkpO31hPWNjKGIpO2E9bnVsbD09PWE/bnVsbDphLnN0YXRlTm9kZTtyZXR1cm4gYX07ZXhwb3J0cy5mbHVzaFN5bmM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1YO2lmKDAhPT0oYyY0OCkpcmV0dXJuIGEoYik7WHw9MTt0cnl7aWYoYSlyZXR1cm4gZ2coOTksYS5iaW5kKG51bGwsYikpfWZpbmFsbHl7WD1jLGlnKCl9fTtleHBvcnRzLmh5ZHJhdGU9ZnVuY3Rpb24oYSxiLGMpe2lmKCFyayhiKSl0aHJvdyBFcnJvcih5KDIwMCkpO3JldHVybiB0ayhudWxsLGEsYiwhMCxjKX07XG5leHBvcnRzLnJlbmRlcj1mdW5jdGlvbihhLGIsYyl7aWYoIXJrKGIpKXRocm93IEVycm9yKHkoMjAwKSk7cmV0dXJuIHRrKG51bGwsYSxiLCExLGMpfTtleHBvcnRzLnVubW91bnRDb21wb25lbnRBdE5vZGU9ZnVuY3Rpb24oYSl7aWYoIXJrKGEpKXRocm93IEVycm9yKHkoNDApKTtyZXR1cm4gYS5fcmVhY3RSb290Q29udGFpbmVyPyhYaihmdW5jdGlvbigpe3RrKG51bGwsbnVsbCxhLCExLGZ1bmN0aW9uKCl7YS5fcmVhY3RSb290Q29udGFpbmVyPW51bGw7YVtmZl09bnVsbH0pfSksITApOiExfTtleHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPVdqO2V4cG9ydHMudW5zdGFibGVfY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHVrKGEsYiwyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCl9O1xuZXhwb3J0cy51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihhLGIsYyxkKXtpZighcmsoYykpdGhyb3cgRXJyb3IoeSgyMDApKTtpZihudWxsPT1hfHx2b2lkIDA9PT1hLl9yZWFjdEludGVybmFscyl0aHJvdyBFcnJvcih5KDM4KSk7cmV0dXJuIHRrKGEsYixjLCExLGQpfTtleHBvcnRzLnZlcnNpb249XCIxNy4wLjJcIjtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsImltcG9ydCB7IEFjdGlvbiwgUmVkdWNlciwgU3RhdGUgfSBmcm9tIFwiLi9jcmVhdGVTdG9yZVwiO1xyXG5cclxuaW50ZXJmYWNlIFJlZHVjZXJzTWFwT2JqZWN0PFMgZXh0ZW5kcyBTdGF0ZSA9IGFueSwgQSBleHRlbmRzIEFjdGlvbiA9IGFueT4ge1xyXG4gIFtrZXk6IHN0cmluZ106IFJlZHVjZXI8UywgQT47XHJcbn1cclxuXHJcbnR5cGUgU3RhdGVGcm9tUmVkdWNlcnNNYXBPYmplY3Q8TT4gPSBNIGV4dGVuZHMgUmVkdWNlcnNNYXBPYmplY3RcclxuICA/IHsgW1AgaW4ga2V5b2YgTV06IE1bUF0gZXh0ZW5kcyBSZWR1Y2VyPGluZmVyIFMsIGFueT4gPyBTIDogbmV2ZXIgfVxyXG4gIDogbmV2ZXI7XHJcblxyXG5mdW5jdGlvbiBjb21iaW5lUmVkdWNlcnM8UyBleHRlbmRzIFN0YXRlLCBBIGV4dGVuZHMgQWN0aW9uPihyZWR1Y2VyczogUmVkdWNlcnNNYXBPYmplY3QpOiBSZWR1Y2VyPFMsIEE+IHtcclxuICBjb25zdCByZWR1Y2VyS2V5cyA9IE9iamVjdC5rZXlzKHJlZHVjZXJzKTtcclxuICBjb25zdCBmaW5hbFJlZHVjZXJzT2JqOiBSZWR1Y2Vyc01hcE9iamVjdCA9IHt9O1xyXG5cclxuICBmb3IgKGNvbnN0IGtleSBvZiByZWR1Y2VyS2V5cykge1xyXG4gICAgaWYgKHR5cGVvZiByZWR1Y2Vyc1trZXldID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgZmluYWxSZWR1Y2Vyc09ialtrZXldID0gcmVkdWNlcnNba2V5XTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiAoKHN0YXRlOiBTdGF0ZUZyb21SZWR1Y2Vyc01hcE9iamVjdDx0eXBlb2YgcmVkdWNlcnM+ID0ge30sIGFjdGlvbjogQSkgPT4ge1xyXG4gICAgbGV0IGhhc0NoYW5nZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IG5leHRTdGF0ZTogU3RhdGVGcm9tUmVkdWNlcnNNYXBPYmplY3Q8dHlwZW9mIHJlZHVjZXJzPiA9IHt9O1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIHJlZHVjZXJLZXlzKSB7XHJcbiAgICAgIGNvbnN0IHByZXZTdGF0ZUZvcktleSA9IHN0YXRlW2tleV07XHJcbiAgICAgIGNvbnN0IG5leHRTdGF0ZUZvcktleSA9IGZpbmFsUmVkdWNlcnNPYmpba2V5XShwcmV2U3RhdGVGb3JLZXksIGFjdGlvbik7XHJcbiAgICAgIG5leHRTdGF0ZVtrZXldID0gbmV4dFN0YXRlRm9yS2V5O1xyXG4gICAgICBoYXNDaGFuZ2VkID0gaGFzQ2hhbmdlZCB8fCBuZXh0U3RhdGVGb3JLZXkgIT09IHByZXZTdGF0ZUZvcktleTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaGFzQ2hhbmdlZCA/IG5leHRTdGF0ZSA6IHN0YXRlO1xyXG4gIH0pIGFzIGFueSBhcyBSZWR1Y2VyPFMsIEE+O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjb21iaW5lUmVkdWNlcnM7XHJcbiIsImV4cG9ydCB0eXBlIFN0YXRlID0gUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgYW55Pj47XHJcbmV4cG9ydCB0eXBlIEFjdGlvbiA9IHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgcGF5bG9hZDogYW55O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUmVkdWNlcjxTIGV4dGVuZHMgU3RhdGUsIEEgZXh0ZW5kcyBBY3Rpb24+ID0gKHM6IFMsIGE6IEEpID0+IFM7XHJcbnR5cGUgTGlzdGVuZXI8UyBleHRlbmRzIFN0YXRlPiA9IChuczogUywgcHM/OiBTKSA9PiB2b2lkO1xyXG50eXBlIFVuc3Vic2NyaWJlID0gKCkgPT4gdm9pZDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmU8UyBleHRlbmRzIFN0YXRlLCBBIGV4dGVuZHMgQWN0aW9uPiB7XHJcbiAgZGlzcGF0Y2g6IChhOiBBKSA9PiB2b2lkO1xyXG4gIGdldFN0YXRlOiAoKSA9PiBTO1xyXG4gIHN1YnNjcmliZTogKGxpc3RlbmVyOiBMaXN0ZW5lcjxTPikgPT4gVW5zdWJzY3JpYmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDnroDljZXlrp7njrDnmoQgUmVkdXhcclxuICogQHBhcmFtIHByZWxvYWRlZFN0YXRlIOWIneWniyBzdGF0ZVxyXG4gKiBAcGFyYW0gcmVkdWNlciByZWR1Y2VyIHB1cmUgZnVuY3Rpb25cclxuICogQHJldHVybnMgc3RvcmVcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlPFMgZXh0ZW5kcyBTdGF0ZSwgQSBleHRlbmRzIEFjdGlvbj4ocHJlbG9hZGVkU3RhdGU6IFMsIHJlZHVjZXI6IFJlZHVjZXI8UywgQT4pOiBTdG9yZTxSZWFkb25seTxTPiwgQT4ge1xyXG4gIGNvbnN0IGxpc3RlbmVyczogTGlzdGVuZXI8Uz5bXSA9IFtdO1xyXG4gIGxldCBjdXJyZW50U3RhdGUgPSBwcmVsb2FkZWRTdGF0ZTtcclxuXHJcbiAgY29uc3QgZGlzcGF0Y2ggPSAoYWN0aW9uOiBBKSA9PiB7XHJcbiAgICBjb25zdCBuZXh0U3RhdGUgPSByZWR1Y2VyKGN1cnJlbnRTdGF0ZSwgYWN0aW9uKTtcclxuICAgIGNvbnN0IHByZXZTdGF0ZSA9IGN1cnJlbnRTdGF0ZTtcclxuICAgIGN1cnJlbnRTdGF0ZSA9IG5leHRTdGF0ZTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNiIG9mIGxpc3RlbmVycykge1xyXG4gICAgICBjYihjdXJyZW50U3RhdGUsIHByZXZTdGF0ZSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc3Vic2NyaWJlID0gKGxpc3RlbmVyOiBMaXN0ZW5lcjxTPikgPT4ge1xyXG4gICAgbGV0IGlzU3Vic2NyaWJlZCA9IHRydWU7XHJcbiAgICBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgaWYgKCFpc1N1YnNjcmliZWQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGluZGV4ID0gbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xyXG4gICAgICBsaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgaXNTdWJzY3JpYmVkID0gZmFsc2U7XHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGdldFN0YXRlID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcclxuICB9O1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgZGlzcGF0Y2gsXHJcbiAgICBnZXRTdGF0ZSxcclxuICAgIHN1YnNjcmliZSxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVTdG9yZTtcclxuIiwiZXhwb3J0IGludGVyZmFjZSBBcHBTZXR0aW5nIHtcclxuICBzaG91bGRTcGxpdE1lbW9Xb3JkOiBib29sZWFuO1xyXG4gIHNob3VsZEhpZGVJbWFnZVVybDogYm9vbGVhbjtcclxuICBzaG91bGRVc2VNYXJrZG93blBhcnNlcjogYm9vbGVhbjtcclxuICB1c2VUaW55VW5kb0hpc3RvcnlDYWNoZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZSBleHRlbmRzIEFwcFNldHRpbmcge1xyXG4gIG1hcmtNZW1vSWQ6IHN0cmluZztcclxuICBlZGl0TWVtb0lkOiBzdHJpbmc7XHJcbiAgaXNNb2JpbGVWaWV3OiBib29sZWFuO1xyXG4gIHNob3dTaWRlcmJhckluTW9iaWxlVmlldzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNldE1hcmtNZW1vSWRBY3Rpb24ge1xyXG4gIHR5cGU6IFwiU0VUX01BUktfTUVNT19JRFwiO1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIG1hcmtNZW1vSWQ6IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU2V0RWRpdE1lbW9JZEFjdGlvbiB7XHJcbiAgdHlwZTogXCJTRVRfRURJVF9NRU1PX0lEXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgZWRpdE1lbW9JZDogc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRNb2JpbGVWaWV3QWN0aW9uIHtcclxuICB0eXBlOiBcIlNFVF9NT0JJTEVfVklFV1wiO1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIGlzTW9iaWxlVmlldzogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU2V0U2hvd1NpZGViYXJBY3Rpb24ge1xyXG4gIHR5cGU6IFwiU0VUX1NIT1dfU0lERUJBUl9JTl9NT0JJTEVfVklFV1wiO1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIHNob3dTaWRlcmJhckluTW9iaWxlVmlldzogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU2V0QXBwU2V0dGluZ0FjdGlvbiB7XHJcbiAgdHlwZTogXCJTRVRfQVBQX1NFVFRJTkdcIjtcclxuICBwYXlsb2FkOiBQYXJ0aWFsPEFwcFNldHRpbmc+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25zID0gU2V0TW9iaWxlVmlld0FjdGlvbiB8IFNldFNob3dTaWRlYmFyQWN0aW9uIHwgU2V0RWRpdE1lbW9JZEFjdGlvbiB8IFNldE1hcmtNZW1vSWRBY3Rpb24gfCBTZXRBcHBTZXR0aW5nQWN0aW9uO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZXIoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbnMpIHtcclxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XHJcbiAgICBjYXNlIFwiU0VUX01BUktfTUVNT19JRFwiOiB7XHJcbiAgICAgIGlmIChhY3Rpb24ucGF5bG9hZC5tYXJrTWVtb0lkID09PSBzdGF0ZS5tYXJrTWVtb0lkKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIG1hcmtNZW1vSWQ6IGFjdGlvbi5wYXlsb2FkLm1hcmtNZW1vSWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX0VESVRfTUVNT19JRFwiOiB7XHJcbiAgICAgIGlmIChhY3Rpb24ucGF5bG9hZC5lZGl0TWVtb0lkID09PSBzdGF0ZS5lZGl0TWVtb0lkKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIGVkaXRNZW1vSWQ6IGFjdGlvbi5wYXlsb2FkLmVkaXRNZW1vSWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX01PQklMRV9WSUVXXCI6IHtcclxuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkLmlzTW9iaWxlVmlldyA9PT0gc3RhdGUuaXNNb2JpbGVWaWV3KSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIGlzTW9iaWxlVmlldzogYWN0aW9uLnBheWxvYWQuaXNNb2JpbGVWaWV3LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIlNFVF9TSE9XX1NJREVCQVJfSU5fTU9CSUxFX1ZJRVdcIjoge1xyXG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQuc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3ID09PSBzdGF0ZS5zaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcpIHtcclxuICAgICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3OiBhY3Rpb24ucGF5bG9hZC5zaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX0FQUF9TRVRUSU5HXCI6IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGRlZmF1bHQ6IHtcclxuICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTdGF0ZTogU3RhdGUgPSB7XHJcbiAgbWFya01lbW9JZDogXCJcIixcclxuICBlZGl0TWVtb0lkOiBcIlwiLFxyXG4gIHNob3VsZFNwbGl0TWVtb1dvcmQ6IHRydWUsXHJcbiAgc2hvdWxkSGlkZUltYWdlVXJsOiB0cnVlLFxyXG4gIHNob3VsZFVzZU1hcmtkb3duUGFyc2VyOiB0cnVlLFxyXG4gIHVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlOiBmYWxzZSxcclxuICBpc01vYmlsZVZpZXc6IGZhbHNlLFxyXG4gIHNob3dTaWRlcmJhckluTW9iaWxlVmlldzogZmFsc2UsXHJcbn07XHJcbiIsImV4cG9ydCB0eXBlIFN0YXRlID0gQXBwTG9jYXRpb247XHJcblxyXG5pbnRlcmZhY2UgU2V0TG9jYXRpb24ge1xyXG4gIHR5cGU6IFwiU0VUX0xPQ0FUSU9OXCI7XHJcbiAgcGF5bG9hZDogU3RhdGU7XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRQYXRobmFtZUFjdGlvbiB7XHJcbiAgdHlwZTogXCJTRVRfUEFUSE5BTUVcIjtcclxuICBwYXlsb2FkOiB7XHJcbiAgICBwYXRobmFtZTogc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRRdWVyeSB7XHJcbiAgdHlwZTogXCJTRVRfUVVFUllcIjtcclxuICBwYXlsb2FkOiBRdWVyeTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNldFF1ZXJ5RmlsdGVyQWN0aW9uIHtcclxuICB0eXBlOiBcIlNFVF9RVUVSWV9GSUxURVJcIjtcclxuICBwYXlsb2FkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRUYWdRdWVyeUFjdGlvbiB7XHJcbiAgdHlwZTogXCJTRVRfVEFHX1FVRVJZXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgdGFnOiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNldEZyb21BbmRUb1F1ZXJ5QWN0aW9uIHtcclxuICB0eXBlOiBcIlNFVF9EVVJBVElPTl9RVUVSWVwiO1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIGR1cmF0aW9uOiBEdXJhdGlvbiB8IG51bGw7XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNldFR5cGVBY3Rpb24ge1xyXG4gIHR5cGU6IFwiU0VUX1RZUEVcIjtcclxuICBwYXlsb2FkOiB7XHJcbiAgICB0eXBlOiBNZW1vU3BlY1R5cGUgfCBcIlwiO1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRUZXh0QWN0aW9uIHtcclxuICB0eXBlOiBcIlNFVF9URVhUXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRIYXNoQWN0aW9uIHtcclxuICB0eXBlOiBcIlNFVF9IQVNIXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgaGFzaDogc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnMgPVxyXG4gIHwgU2V0TG9jYXRpb25cclxuICB8IFNldFBhdGhuYW1lQWN0aW9uXHJcbiAgfCBTZXRRdWVyeVxyXG4gIHwgU2V0VGFnUXVlcnlBY3Rpb25cclxuICB8IFNldEZyb21BbmRUb1F1ZXJ5QWN0aW9uXHJcbiAgfCBTZXRUeXBlQWN0aW9uXHJcbiAgfCBTZXRUZXh0QWN0aW9uXHJcbiAgfCBTZXRRdWVyeUZpbHRlckFjdGlvblxyXG4gIHwgU2V0SGFzaEFjdGlvbjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKSB7XHJcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xyXG4gICAgY2FzZSBcIlNFVF9MT0NBVElPTlwiOiB7XHJcbiAgICAgIHJldHVybiBhY3Rpb24ucGF5bG9hZDtcclxuICAgIH1cclxuICAgIGNhc2UgXCJTRVRfUEFUSE5BTUVcIjoge1xyXG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQucGF0aG5hbWUgPT09IHN0YXRlLnBhdGhuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIHBhdGhuYW1lOiBhY3Rpb24ucGF5bG9hZC5wYXRobmFtZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNhc2UgXCJTRVRfSEFTSFwiOiB7XHJcbiAgICAgIGlmIChhY3Rpb24ucGF5bG9hZC5oYXNoID09PSBzdGF0ZS5oYXNoKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIGhhc2g6IGFjdGlvbi5wYXlsb2FkLmhhc2gsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX1FVRVJZXCI6IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBxdWVyeToge1xyXG4gICAgICAgICAgLi4uYWN0aW9uLnBheWxvYWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNhc2UgXCJTRVRfVEFHX1FVRVJZXCI6IHtcclxuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkLnRhZyA9PT0gc3RhdGUucXVlcnkudGFnKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIHF1ZXJ5OiB7XHJcbiAgICAgICAgICAuLi5zdGF0ZS5xdWVyeSxcclxuICAgICAgICAgIHRhZzogYWN0aW9uLnBheWxvYWQudGFnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX0RVUkFUSU9OX1FVRVJZXCI6IHtcclxuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkLmR1cmF0aW9uID09PSBzdGF0ZS5xdWVyeS5kdXJhdGlvbikge1xyXG4gICAgICAgIHJldHVybiBzdGF0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBxdWVyeToge1xyXG4gICAgICAgICAgLi4uc3RhdGUucXVlcnksXHJcbiAgICAgICAgICBkdXJhdGlvbjoge1xyXG4gICAgICAgICAgICAuLi5zdGF0ZS5xdWVyeS5kdXJhdGlvbixcclxuICAgICAgICAgICAgLi4uYWN0aW9uLnBheWxvYWQuZHVyYXRpb24sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX1RZUEVcIjoge1xyXG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQudHlwZSA9PT0gc3RhdGUucXVlcnkudHlwZSkge1xyXG4gICAgICAgIHJldHVybiBzdGF0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBxdWVyeToge1xyXG4gICAgICAgICAgLi4uc3RhdGUucXVlcnksXHJcbiAgICAgICAgICB0eXBlOiBhY3Rpb24ucGF5bG9hZC50eXBlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX1RFWFRcIjoge1xyXG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQudGV4dCA9PT0gc3RhdGUucXVlcnkudGV4dCkge1xyXG4gICAgICAgIHJldHVybiBzdGF0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBxdWVyeToge1xyXG4gICAgICAgICAgLi4uc3RhdGUucXVlcnksXHJcbiAgICAgICAgICB0ZXh0OiBhY3Rpb24ucGF5bG9hZC50ZXh0LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiU0VUX1FVRVJZX0ZJTFRFUlwiOiB7XHJcbiAgICAgIGlmIChhY3Rpb24ucGF5bG9hZCA9PT0gc3RhdGUucXVlcnkuZmlsdGVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIHF1ZXJ5OiB7XHJcbiAgICAgICAgICAuLi5zdGF0ZS5xdWVyeSxcclxuICAgICAgICAgIGZpbHRlcjogYWN0aW9uLnBheWxvYWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGRlZmF1bHQ6IHtcclxuICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTdGF0ZTogU3RhdGUgPSB7XHJcbiAgcGF0aG5hbWU6IFwiL1wiLFxyXG4gIGhhc2g6IFwiXCIsXHJcbiAgcXVlcnk6IHtcclxuICAgIHRhZzogXCJcIixcclxuICAgIGR1cmF0aW9uOiBudWxsLFxyXG4gICAgdHlwZTogXCJcIixcclxuICAgIHRleHQ6IFwiXCIsXHJcbiAgICBmaWx0ZXI6IFwiXCIsXHJcbiAgfSxcclxufTtcclxuIiwibmFtZXNwYWNlIHV0aWxzIHtcclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Tm93VGltZVN0YW1wKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gRGF0ZS5ub3coKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRPU1ZlcnNpb24oKTogXCJXaW5kb3dzXCIgfCBcIk1hY09TXCIgfCBcIkxpbnV4XCIgfCBcIlVua25vd25cIiB7XHJcbiAgICBjb25zdCBhcHBWZXJzaW9uID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuICAgIGxldCBkZXRlY3RlZE9TOiBcIldpbmRvd3NcIiB8IFwiTWFjT1NcIiB8IFwiTGludXhcIiB8IFwiVW5rbm93blwiID0gXCJVbmtub3duXCI7XHJcblxyXG4gICAgaWYgKGFwcFZlcnNpb24uaW5kZXhPZihcIldpblwiKSAhPSAtMSkge1xyXG4gICAgICBkZXRlY3RlZE9TID0gXCJXaW5kb3dzXCI7XHJcbiAgICB9IGVsc2UgaWYgKGFwcFZlcnNpb24uaW5kZXhPZihcIk1hY1wiKSAhPSAtMSkge1xyXG4gICAgICBkZXRlY3RlZE9TID0gXCJNYWNPU1wiO1xyXG4gICAgfSBlbHNlIGlmIChhcHBWZXJzaW9uLmluZGV4T2YoXCJMaW51eFwiKSAhPSAtMSkge1xyXG4gICAgICBkZXRlY3RlZE9TID0gXCJMaW51eFwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZXRlY3RlZE9TO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVTdGFtcEJ5RGF0ZSh0OiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGlmICh0eXBlb2YgdCA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICB0ID0gdC5yZXBsYWNlQWxsKFwiLVwiLCBcIi9cIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IERhdGUodCkuZ2V0VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVTdGFtcEJ5RGF0ZSh0OiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShnZXRUaW1lU3RhbXBCeURhdGUodCkpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSkuZ2V0VGltZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXREYXRlU3RyaW5nKHQ6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGdldFRpbWVTdGFtcEJ5RGF0ZSh0KSk7XHJcblxyXG4gICAgY29uc3QgeWVhciA9IGQuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gZC5nZXRNb250aCgpICsgMTtcclxuICAgIGNvbnN0IGRhdGUgPSBkLmdldERhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gYCR7eWVhcn0vJHttb250aH0vJHtkYXRlfWA7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0VGltZVN0cmluZyh0OiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShnZXRUaW1lU3RhbXBCeURhdGUodCkpO1xyXG5cclxuICAgIGNvbnN0IGhvdXJzID0gZC5nZXRIb3VycygpO1xyXG4gICAgY29uc3QgbWlucyA9IGQuZ2V0TWludXRlcygpO1xyXG5cclxuICAgIGNvbnN0IGhvdXJzU3RyID0gaG91cnMgPCAxMCA/IFwiMFwiICsgaG91cnMgOiBob3VycztcclxuICAgIGNvbnN0IG1pbnNTdHIgPSBtaW5zIDwgMTAgPyBcIjBcIiArIG1pbnMgOiBtaW5zO1xyXG5cclxuICAgIHJldHVybiBgJHtob3Vyc1N0cn06JHttaW5zU3RyfWA7XHJcbiAgfVxyXG5cclxuICAvLyBGb3IgZXhhbXBsZTogMjAyMS00LTggMTc6NTI6MTdcclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVRpbWVTdHJpbmcodDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoZ2V0VGltZVN0YW1wQnlEYXRlKHQpKTtcclxuXHJcbiAgICBjb25zdCB5ZWFyID0gZC5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSBkLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgY29uc3QgZGF0ZSA9IGQuZ2V0RGF0ZSgpO1xyXG4gICAgY29uc3QgaG91cnMgPSBkLmdldEhvdXJzKCk7XHJcbiAgICBjb25zdCBtaW5zID0gZC5nZXRNaW51dGVzKCk7XHJcbiAgICAvLyBjb25zdCBzZWNzID0gZC5nZXRTZWNvbmRzKCk7XHJcblxyXG4gICAgY29uc3QgbW9udGhTdHIgPSBtb250aCA8IDEwID8gXCIwXCIgKyBtb250aCA6IG1vbnRoO1xyXG4gICAgY29uc3QgZGF0ZVN0ciA9IGRhdGUgPCAxMCA/IFwiMFwiICsgZGF0ZSA6IGRhdGU7XHJcbiAgICBjb25zdCBob3Vyc1N0ciA9IGhvdXJzIDwgMTAgPyBcIjBcIiArIGhvdXJzIDogaG91cnM7XHJcbiAgICBjb25zdCBtaW5zU3RyID0gbWlucyA8IDEwID8gXCIwXCIgKyBtaW5zIDogbWlucztcclxuICAgIC8vIGNvbnN0IHNlY3NTdHIgPSBzZWNzIDwgMTAgPyBcIjBcIiArIHNlY3MgOiBzZWNzO1xyXG4gICAgY29uc3Qgc2Vjc1N0ciA9IFwiMDBcIjtcclxuXHJcbiAgICByZXR1cm4gYCR7eWVhcn0vJHttb250aFN0cn0vJHtkYXRlU3RyfSAke2hvdXJzU3RyfToke21pbnNTdHJ9OiR7c2Vjc1N0cn1gO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRlZHVwZTxUPihkYXRhOiBUW10pOiBUW10ge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZGVkdXBlT2JqZWN0V2l0aElkPFQgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4oZGF0YTogVFtdKTogVFtdIHtcclxuICAgIGNvbnN0IGlkU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGQgb2YgZGF0YSkge1xyXG4gICAgICBpZiAoIWlkU2V0LmhhcyhkLmlkKSkge1xyXG4gICAgICAgIGlkU2V0LmFkZChkLmlkKTtcclxuICAgICAgICByZXN1bHQucHVzaChkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZm46IEZ1bmN0aW9uVHlwZSwgZGVsYXk6IG51bWJlcikge1xyXG4gICAgbGV0IHRpbWVyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBpZiAodGltZXIpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgICAgIHRpbWVyID0gc2V0VGltZW91dChmbiwgZGVsYXkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRpbWVyID0gc2V0VGltZW91dChmbiwgZGVsYXkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHRocm90dGxlKGZuOiBGdW5jdGlvblR5cGUsIGRlbGF5OiBudW1iZXIpIHtcclxuICAgIGxldCB2YWxpZCA9IHRydWU7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgaWYgKCF2YWxpZCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB2YWxpZCA9IGZhbHNlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBmbigpO1xyXG4gICAgICAgIHZhbGlkID0gdHJ1ZTtcclxuICAgICAgfSwgZGVsYXkpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3RUb1BhcmFtc1N0cmluZyhvYmplY3Q6IEtWT2JqZWN0KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IFtdO1xyXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCkuc29ydCgpO1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcclxuICAgICAgY29uc3QgdmFsID0gb2JqZWN0W2tleV07XHJcbiAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgcGFyYW1zLnB1c2goLi4udHJhbnNmb3JtT2JqZWN0VG9QYXJhbXNTdHJpbmcodmFsKS5zcGxpdChcIiZcIikpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwYXJhbXMucHVzaChgJHtrZXl9PSR7dmFsfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYXJhbXMuam9pbihcIiZcIik7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUGFyYW1zU3RyaW5nVG9PYmplY3QocGFyYW1zU3RyaW5nOiBzdHJpbmcpOiBLVk9iamVjdCB7XHJcbiAgICBjb25zdCBvYmplY3Q6IEtWT2JqZWN0ID0ge307XHJcbiAgICBjb25zdCBwYXJhbXMgPSBwYXJhbXNTdHJpbmcuc3BsaXQoXCImXCIpO1xyXG5cclxuICAgIGZvciAoY29uc3QgcCBvZiBwYXJhbXMpIHtcclxuICAgICAgY29uc3QgW2tleSwgdmFsXSA9IHAuc3BsaXQoXCI9XCIpO1xyXG4gICAgICBpZiAoa2V5ICYmIHZhbCkge1xyXG4gICAgICAgIG9iamVjdFtrZXldID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9iamVjdDtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPYmplY3ROdWxsS2V5cyhvYmplY3Q6IEtWT2JqZWN0KTogS1ZPYmplY3Qge1xyXG4gICAgaWYgKCFvYmplY3QpIHtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbmFsT2JqZWN0OiBLVk9iamVjdCA9IHt9O1xyXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCkuc29ydCgpO1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcclxuICAgICAgY29uc3QgdmFsID0gb2JqZWN0W2tleV07XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgY29uc3QgdGVtcCA9IGZpbHRlck9iamVjdE51bGxLZXlzKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsKSkpO1xyXG4gICAgICAgIGlmICh0ZW1wICYmIE9iamVjdC5rZXlzKHRlbXApLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGZpbmFsT2JqZWN0W2tleV0gPSB0ZW1wO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICBmaW5hbE9iamVjdFtrZXldID0gdmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmaW5hbE9iamVjdDtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5VGV4dFRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZykge1xyXG4gICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXCJDb3B5IHRvIGNsaXBib2FyZCBmYWlsZWQuXCIsIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKFwiQ29weSB0byBjbGlwYm9hcmQgZmFpbGVkLCBtZXRob2RzIG5vdCBzdXBwb3J0cy5cIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VTaXplKHNyYzogc3RyaW5nKTogUHJvbWlzZTx7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICBjb25zdCBpbWdFbCA9IG5ldyBJbWFnZSgpO1xyXG5cclxuICAgICAgaW1nRWwub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gaW1nRWw7XHJcblxyXG4gICAgICAgIGlmICh3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh7IHdpZHRoLCBoZWlnaHQgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc29sdmUoeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIGltZ0VsLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZSh7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSk7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpbWdFbC5jbGFzc05hbWUgPSBcImhpZGRlblwiO1xyXG4gICAgICBpbWdFbC5zcmMgPSBzcmM7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nRWwpO1xyXG4gICAgICBpbWdFbC5yZW1vdmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XHJcbiIsImltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XHJcbiAgbWVtb3M6IE1vZGVsLk1lbW9bXTtcclxuICB0YWdzOiBzdHJpbmdbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNldE1lbW9zQWN0aW9uIHtcclxuICB0eXBlOiBcIlNFVF9NRU1PU1wiO1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIG1lbW9zOiBNb2RlbC5NZW1vW107XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNldFRhZ3NBY3Rpb24ge1xyXG4gIHR5cGU6IFwiU0VUX1RBR1NcIjtcclxuICBwYXlsb2FkOiB7XHJcbiAgICB0YWdzOiBzdHJpbmdbXTtcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSW5zZXJ0TWVtb0FjdGlvbiB7XHJcbiAgdHlwZTogXCJJTlNFUlRfTUVNT1wiO1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIG1lbW86IE1vZGVsLk1lbW87XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIERlbGV0ZU1lbW9CeUlkQWN0aW9uIHtcclxuICB0eXBlOiBcIkRFTEVURV9NRU1PX0JZX0lEXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRWRpdE1lbW9CeUlkQWN0aW9uIHtcclxuICB0eXBlOiBcIkVESVRfTUVNT1wiO1xyXG4gIHBheWxvYWQ6IE1vZGVsLk1lbW87XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnMgPSBTZXRNZW1vc0FjdGlvbiB8IFNldFRhZ3NBY3Rpb24gfCBJbnNlcnRNZW1vQWN0aW9uIHwgRGVsZXRlTWVtb0J5SWRBY3Rpb24gfCBFZGl0TWVtb0J5SWRBY3Rpb247XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlcihzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9ucyk6IFN0YXRlIHtcclxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XHJcbiAgICBjYXNlIFwiU0VUX01FTU9TXCI6IHtcclxuXHJcbiAgICAgIGNvbnN0IG1lbW9zID0gdXRpbHMuZGVkdXBlT2JqZWN0V2l0aElkKFxyXG4gICAgICAgIGFjdGlvbi5wYXlsb2FkLm1lbW9zLnNvcnQoKGEsIGIpID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmNyZWF0ZWRBdCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5jcmVhdGVkQXQpKVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gY29uc3QgbWVtb3MgPSBhY3Rpb24ucGF5bG9hZC5tZW1vcy5zb3J0KChhLCBiKSA9PiB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYi5jcmVhdGVkQXQpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIG1lbW9zOiBbLi4ubWVtb3NdLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIlNFVF9UQUdTXCI6IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICB0YWdzOiBhY3Rpb24ucGF5bG9hZC50YWdzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIklOU0VSVF9NRU1PXCI6IHtcclxuICAgICAgY29uc3QgbWVtb3MgPSB1dGlscy5kZWR1cGVPYmplY3RXaXRoSWQoXHJcbiAgICAgICAgW2FjdGlvbi5wYXlsb2FkLm1lbW8sIC4uLnN0YXRlLm1lbW9zXS5zb3J0KChhLCBiKSA9PiB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYi5jcmVhdGVkQXQpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgbWVtb3MsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiREVMRVRFX01FTU9fQllfSURcIjoge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIG1lbW9zOiBbLi4uc3RhdGUubWVtb3NdLmZpbHRlcigobWVtbykgPT4gbWVtby5pZCAhPT0gYWN0aW9uLnBheWxvYWQuaWQpLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIkVESVRfTUVNT1wiOiB7XHJcbiAgICAgIGNvbnN0IG1lbW9zID0gc3RhdGUubWVtb3MubWFwKChtKSA9PiB7XHJcbiAgICAgICAgaWYgKG0uaWQgPT09IGFjdGlvbi5wYXlsb2FkLmlkKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5tLFxyXG4gICAgICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBtO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIG1lbW9zLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZGVmYXVsdDoge1xyXG4gICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZGVmYXVsdFN0YXRlOiBTdGF0ZSA9IHtcclxuICBtZW1vczogW10sXHJcbiAgdGFnczogW10sXHJcbn07XHJcbiIsImV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHVzZXI6IE1vZGVsLlVzZXIgfCBudWxsO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU2lnbkluQWN0aW9uIHtcclxuICB0eXBlOiBcIlNJR05fSU5cIjtcclxuICBwYXlsb2FkOiBTdGF0ZTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFNpZ25PdXRBY3Rpb24ge1xyXG4gIHR5cGU6IFwiU0lHTl9PVVRcIjtcclxuICBwYXlsb2FkOiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25zID0gU2lnbkluQWN0aW9uIHwgU2lnbk91dEFjdGlvbjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogU3RhdGUge1xyXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcclxuICAgIGNhc2UgXCJTSUdOX0lOXCI6IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB1c2VyOiBhY3Rpb24ucGF5bG9hZC51c2VyLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIlNJR05fT1VUXCI6IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB1c2VyOiBudWxsLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZGVmYXVsdDoge1xyXG4gICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZGVmYXVsdFN0YXRlOiBTdGF0ZSA9IHsgdXNlcjogbnVsbCB9O1xyXG4iLCJpbXBvcnQgdXRpbHMgZnJvbSBcIi4uL2hlbHBlcnMvdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHF1ZXJpZXM6IE1vZGVsLlF1ZXJ5W107XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRRdWVyaWVzIHtcclxuICB0eXBlOiBcIlNFVF9RVUVSSUVTXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgcXVlcmllczogTW9kZWwuUXVlcnlbXTtcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSW5zZXJ0UXVlcnlBY3Rpb24ge1xyXG4gIHR5cGU6IFwiSU5TRVJUX1FVRVJZXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgcXVlcnk6IE1vZGVsLlF1ZXJ5O1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBEZWxldGVRdWVyeUJ5SWRBY3Rpb24ge1xyXG4gIHR5cGU6IFwiREVMRVRFX1FVRVJZX0JZX0lEXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgVXBkYXRlUXVlcnlBY3Rpb24ge1xyXG4gIHR5cGU6IFwiVVBEQVRFX1FVRVJZXCI7XHJcbiAgcGF5bG9hZDogTW9kZWwuUXVlcnk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnMgPSBTZXRRdWVyaWVzIHwgSW5zZXJ0UXVlcnlBY3Rpb24gfCBEZWxldGVRdWVyeUJ5SWRBY3Rpb24gfCBVcGRhdGVRdWVyeUFjdGlvbjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogU3RhdGUge1xyXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcclxuICAgIGNhc2UgXCJTRVRfUVVFUklFU1wiOiB7XHJcbiAgICAgIGNvbnN0IHF1ZXJpZXMgPSB1dGlscy5kZWR1cGVPYmplY3RXaXRoSWQoXHJcbiAgICAgICAgYWN0aW9uLnBheWxvYWQucXVlcmllc1xyXG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmNyZWF0ZWRBdCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5jcmVhdGVkQXQpKVxyXG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLnBpbm5lZEF0ID8/IDApIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEucGlubmVkQXQgPz8gMCkpXHJcbiAgICAgICk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIHF1ZXJpZXMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiSU5TRVJUX1FVRVJZXCI6IHtcclxuICAgICAgY29uc3QgcXVlcmllcyA9IHV0aWxzLmRlZHVwZU9iamVjdFdpdGhJZChcclxuICAgICAgICBbYWN0aW9uLnBheWxvYWQucXVlcnksIC4uLnN0YXRlLnF1ZXJpZXNdLnNvcnQoXHJcbiAgICAgICAgICAoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGIuY3JlYXRlZEF0KSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShhLmNyZWF0ZWRBdClcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIHF1ZXJpZXMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiREVMRVRFX1FVRVJZX0JZX0lEXCI6IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBxdWVyaWVzOiBbLi4uc3RhdGUucXVlcmllc10uZmlsdGVyKChxdWVyeSkgPT4gcXVlcnkuaWQgIT09IGFjdGlvbi5wYXlsb2FkLmlkKSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNhc2UgXCJVUERBVEVfUVVFUllcIjoge1xyXG4gICAgICBjb25zdCBxdWVyaWVzID0gc3RhdGUucXVlcmllcy5tYXAoKG0pID0+IHtcclxuICAgICAgICBpZiAobS5pZCA9PT0gYWN0aW9uLnBheWxvYWQuaWQpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLm0sXHJcbiAgICAgICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgcXVlcmllcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGRlZmF1bHQ6IHtcclxuICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTdGF0ZTogU3RhdGUgPSB7XHJcbiAgcXVlcmllczogW10sXHJcbn07XHJcbiIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblxudmFyIG9ic2lkaWFuID0gcmVxdWlyZSgnb2JzaWRpYW4nKTtcblxuY29uc3QgREVGQVVMVF9EQUlMWV9OT1RFX0ZPUk1BVCA9IFwiWVlZWS1NTS1ERFwiO1xuY29uc3QgREVGQVVMVF9XRUVLTFlfTk9URV9GT1JNQVQgPSBcImdnZ2ctW1ddd3dcIjtcbmNvbnN0IERFRkFVTFRfTU9OVEhMWV9OT1RFX0ZPUk1BVCA9IFwiWVlZWS1NTVwiO1xuY29uc3QgREVGQVVMVF9RVUFSVEVSTFlfTk9URV9GT1JNQVQgPSBcIllZWVktW1FdUVwiO1xuY29uc3QgREVGQVVMVF9ZRUFSTFlfTk9URV9GT1JNQVQgPSBcIllZWVlcIjtcblxuZnVuY3Rpb24gc2hvdWxkVXNlUGVyaW9kaWNOb3Rlc1NldHRpbmdzKHBlcmlvZGljaXR5KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gd2luZG93LmFwcC5wbHVnaW5zLmdldFBsdWdpbihcInBlcmlvZGljLW5vdGVzXCIpO1xuICAgIHJldHVybiBwZXJpb2RpY05vdGVzICYmIHBlcmlvZGljTm90ZXMuc2V0dGluZ3M/LltwZXJpb2RpY2l0eV0/LmVuYWJsZWQ7XG59XG4vKipcbiAqIFJlYWQgdGhlIHVzZXIgc2V0dGluZ3MgZm9yIHRoZSBgZGFpbHktbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldERhaWx5Tm90ZVNldHRpbmdzKCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IHsgaW50ZXJuYWxQbHVnaW5zLCBwbHVnaW5zIH0gPSB3aW5kb3cuYXBwO1xuICAgICAgICBpZiAoc2hvdWxkVXNlUGVyaW9kaWNOb3Rlc1NldHRpbmdzKFwiZGFpbHlcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZm9ybWF0LCBmb2xkZXIsIHRlbXBsYXRlIH0gPSBwbHVnaW5zLmdldFBsdWdpbihcInBlcmlvZGljLW5vdGVzXCIpPy5zZXR0aW5ncz8uZGFpbHkgfHwge307XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZvcm1hdDogZm9ybWF0IHx8IERFRkFVTFRfREFJTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICAgICAgZm9sZGVyOiBmb2xkZXI/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZT8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZm9sZGVyLCBmb3JtYXQsIHRlbXBsYXRlIH0gPSBpbnRlcm5hbFBsdWdpbnMuZ2V0UGx1Z2luQnlJZChcImRhaWx5LW5vdGVzXCIpPy5pbnN0YW5jZT8ub3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZvcm1hdDogZm9ybWF0IHx8IERFRkFVTFRfREFJTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICBmb2xkZXI6IGZvbGRlcj8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSBkYWlseSBub3RlIHNldHRpbmdzIGZvdW5kIVwiLCBlcnIpO1xuICAgIH1cbn1cbi8qKlxuICogUmVhZCB0aGUgdXNlciBzZXR0aW5ncyBmb3IgdGhlIGB3ZWVrbHktbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldFdlZWtseU5vdGVTZXR0aW5ncygpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBwbHVnaW5NYW5hZ2VyID0gd2luZG93LmFwcC5wbHVnaW5zO1xuICAgICAgICBjb25zdCBjYWxlbmRhclNldHRpbmdzID0gcGx1Z2luTWFuYWdlci5nZXRQbHVnaW4oXCJjYWxlbmRhclwiKT8ub3B0aW9ucztcbiAgICAgICAgY29uc3QgcGVyaW9kaWNOb3Rlc1NldHRpbmdzID0gcGx1Z2luTWFuYWdlci5nZXRQbHVnaW4oXCJwZXJpb2RpYy1ub3Rlc1wiKT8uc2V0dGluZ3M/LndlZWtseTtcbiAgICAgICAgaWYgKHNob3VsZFVzZVBlcmlvZGljTm90ZXNTZXR0aW5ncyhcIndlZWtseVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IHBlcmlvZGljTm90ZXNTZXR0aW5ncy5mb3JtYXQgfHwgREVGQVVMVF9XRUVLTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICAgICAgZm9sZGVyOiBwZXJpb2RpY05vdGVzU2V0dGluZ3MuZm9sZGVyPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogcGVyaW9kaWNOb3Rlc1NldHRpbmdzLnRlbXBsYXRlPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBjYWxlbmRhclNldHRpbmdzIHx8IHt9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ybWF0OiBzZXR0aW5ncy53ZWVrbHlOb3RlRm9ybWF0IHx8IERFRkFVTFRfV0VFS0xZX05PVEVfRk9STUFULFxuICAgICAgICAgICAgZm9sZGVyOiBzZXR0aW5ncy53ZWVrbHlOb3RlRm9sZGVyPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgIHRlbXBsYXRlOiBzZXR0aW5ncy53ZWVrbHlOb3RlVGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSB3ZWVrbHkgbm90ZSBzZXR0aW5ncyBmb3VuZCFcIiwgZXJyKTtcbiAgICB9XG59XG4vKipcbiAqIFJlYWQgdGhlIHVzZXIgc2V0dGluZ3MgZm9yIHRoZSBgcGVyaW9kaWMtbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldE1vbnRobHlOb3RlU2V0dGluZ3MoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwbHVnaW5NYW5hZ2VyID0gd2luZG93LmFwcC5wbHVnaW5zO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gKHNob3VsZFVzZVBlcmlvZGljTm90ZXNTZXR0aW5ncyhcIm1vbnRobHlcIikgJiZcbiAgICAgICAgICAgIHBsdWdpbk1hbmFnZXIuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik/LnNldHRpbmdzPy5tb250aGx5KSB8fFxuICAgICAgICAgICAge307XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmb3JtYXQ6IHNldHRpbmdzLmZvcm1hdCB8fCBERUZBVUxUX01PTlRITFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICBmb2xkZXI6IHNldHRpbmdzLmZvbGRlcj8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogc2V0dGluZ3MudGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSBtb250aGx5IG5vdGUgc2V0dGluZ3MgZm91bmQhXCIsIGVycik7XG4gICAgfVxufVxuLyoqXG4gKiBSZWFkIHRoZSB1c2VyIHNldHRpbmdzIGZvciB0aGUgYHBlcmlvZGljLW5vdGVzYCBwbHVnaW5cbiAqIHRvIGtlZXAgYmVoYXZpb3Igb2YgY3JlYXRpbmcgYSBuZXcgbm90ZSBpbi1zeW5jLlxuICovXG5mdW5jdGlvbiBnZXRRdWFydGVybHlOb3RlU2V0dGluZ3MoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwbHVnaW5NYW5hZ2VyID0gd2luZG93LmFwcC5wbHVnaW5zO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gKHNob3VsZFVzZVBlcmlvZGljTm90ZXNTZXR0aW5ncyhcInF1YXJ0ZXJseVwiKSAmJlxuICAgICAgICAgICAgcGx1Z2luTWFuYWdlci5nZXRQbHVnaW4oXCJwZXJpb2RpYy1ub3Rlc1wiKT8uc2V0dGluZ3M/LnF1YXJ0ZXJseSkgfHxcbiAgICAgICAgICAgIHt9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ybWF0OiBzZXR0aW5ncy5mb3JtYXQgfHwgREVGQVVMVF9RVUFSVEVSTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICBmb2xkZXI6IHNldHRpbmdzLmZvbGRlcj8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogc2V0dGluZ3MudGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSBxdWFydGVybHkgbm90ZSBzZXR0aW5ncyBmb3VuZCFcIiwgZXJyKTtcbiAgICB9XG59XG4vKipcbiAqIFJlYWQgdGhlIHVzZXIgc2V0dGluZ3MgZm9yIHRoZSBgcGVyaW9kaWMtbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldFllYXJseU5vdGVTZXR0aW5ncygpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHBsdWdpbk1hbmFnZXIgPSB3aW5kb3cuYXBwLnBsdWdpbnM7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSAoc2hvdWxkVXNlUGVyaW9kaWNOb3Rlc1NldHRpbmdzKFwieWVhcmx5XCIpICYmXG4gICAgICAgICAgICBwbHVnaW5NYW5hZ2VyLmdldFBsdWdpbihcInBlcmlvZGljLW5vdGVzXCIpPy5zZXR0aW5ncz8ueWVhcmx5KSB8fFxuICAgICAgICAgICAge307XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmb3JtYXQ6IHNldHRpbmdzLmZvcm1hdCB8fCBERUZBVUxUX1lFQVJMWV9OT1RFX0ZPUk1BVCxcbiAgICAgICAgICAgIGZvbGRlcjogc2V0dGluZ3MuZm9sZGVyPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgIHRlbXBsYXRlOiBzZXR0aW5ncy50ZW1wbGF0ZT8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5pbmZvKFwiTm8gY3VzdG9tIHllYXJseSBub3RlIHNldHRpbmdzIGZvdW5kIVwiLCBlcnIpO1xuICAgIH1cbn1cblxuLy8gQ3JlZGl0OiBAY3JlYXRpb25peC9wYXRoLmpzXG5mdW5jdGlvbiBqb2luKC4uLnBhcnRTZWdtZW50cykge1xuICAgIC8vIFNwbGl0IHRoZSBpbnB1dHMgaW50byBhIGxpc3Qgb2YgcGF0aCBjb21tYW5kcy5cbiAgICBsZXQgcGFydHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHBhcnRTZWdtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgcGFydHMgPSBwYXJ0cy5jb25jYXQocGFydFNlZ21lbnRzW2ldLnNwbGl0KFwiL1wiKSk7XG4gICAgfVxuICAgIC8vIEludGVycHJldCB0aGUgcGF0aCBjb21tYW5kcyB0byBnZXQgdGhlIG5ldyByZXNvbHZlZCBwYXRoLlxuICAgIGNvbnN0IG5ld1BhcnRzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgY29uc3QgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgICAvLyBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc2xhc2hlc1xuICAgICAgICAvLyBBbHNvIHJlbW92ZSBcIi5cIiBzZWdtZW50c1xuICAgICAgICBpZiAoIXBhcnQgfHwgcGFydCA9PT0gXCIuXCIpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgLy8gUHVzaCBuZXcgcGF0aCBzZWdtZW50cy5cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgbmV3UGFydHMucHVzaChwYXJ0KTtcbiAgICB9XG4gICAgLy8gUHJlc2VydmUgdGhlIGluaXRpYWwgc2xhc2ggaWYgdGhlcmUgd2FzIG9uZS5cbiAgICBpZiAocGFydHNbMF0gPT09IFwiXCIpXG4gICAgICAgIG5ld1BhcnRzLnVuc2hpZnQoXCJcIik7XG4gICAgLy8gVHVybiBiYWNrIGludG8gYSBzaW5nbGUgc3RyaW5nIHBhdGguXG4gICAgcmV0dXJuIG5ld1BhcnRzLmpvaW4oXCIvXCIpO1xufVxuZnVuY3Rpb24gYmFzZW5hbWUoZnVsbFBhdGgpIHtcbiAgICBsZXQgYmFzZSA9IGZ1bGxQYXRoLnN1YnN0cmluZyhmdWxsUGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKTtcbiAgICBpZiAoYmFzZS5sYXN0SW5kZXhPZihcIi5cIikgIT0gLTEpXG4gICAgICAgIGJhc2UgPSBiYXNlLnN1YnN0cmluZygwLCBiYXNlLmxhc3RJbmRleE9mKFwiLlwiKSk7XG4gICAgcmV0dXJuIGJhc2U7XG59XG5hc3luYyBmdW5jdGlvbiBlbnN1cmVGb2xkZXJFeGlzdHMocGF0aCkge1xuICAgIGNvbnN0IGRpcnMgPSBwYXRoLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpLnNwbGl0KFwiL1wiKTtcbiAgICBkaXJzLnBvcCgpOyAvLyByZW1vdmUgYmFzZW5hbWVcbiAgICBpZiAoZGlycy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZGlyID0gam9pbiguLi5kaXJzKTtcbiAgICAgICAgaWYgKCF3aW5kb3cuYXBwLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChkaXIpKSB7XG4gICAgICAgICAgICBhd2FpdCB3aW5kb3cuYXBwLnZhdWx0LmNyZWF0ZUZvbGRlcihkaXIpO1xuICAgICAgICB9XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Tm90ZVBhdGgoZGlyZWN0b3J5LCBmaWxlbmFtZSkge1xuICAgIGlmICghZmlsZW5hbWUuZW5kc1dpdGgoXCIubWRcIikpIHtcbiAgICAgICAgZmlsZW5hbWUgKz0gXCIubWRcIjtcbiAgICB9XG4gICAgY29uc3QgcGF0aCA9IG9ic2lkaWFuLm5vcm1hbGl6ZVBhdGgoam9pbihkaXJlY3RvcnksIGZpbGVuYW1lKSk7XG4gICAgYXdhaXQgZW5zdXJlRm9sZGVyRXhpc3RzKHBhdGgpO1xuICAgIHJldHVybiBwYXRoO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlKSB7XG4gICAgY29uc3QgeyBtZXRhZGF0YUNhY2hlLCB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB0ZW1wbGF0ZVBhdGggPSBvYnNpZGlhbi5ub3JtYWxpemVQYXRoKHRlbXBsYXRlKTtcbiAgICBpZiAodGVtcGxhdGVQYXRoID09PSBcIi9cIikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtcIlwiLCBudWxsXSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlRmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QodGVtcGxhdGVQYXRoLCBcIlwiKTtcbiAgICAgICAgY29uc3QgY29udGVudHMgPSBhd2FpdCB2YXVsdC5jYWNoZWRSZWFkKHRlbXBsYXRlRmlsZSk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IElGb2xkSW5mbyA9IHdpbmRvdy5hcHAuZm9sZE1hbmFnZXIubG9hZCh0ZW1wbGF0ZUZpbGUpO1xuICAgICAgICByZXR1cm4gW2NvbnRlbnRzLCBJRm9sZEluZm9dO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byByZWFkIHRoZSBkYWlseSBub3RlIHRlbXBsYXRlICcke3RlbXBsYXRlUGF0aH0nYCwgZXJyKTtcbiAgICAgICAgbmV3IG9ic2lkaWFuLk5vdGljZShcIkZhaWxlZCB0byByZWFkIHRoZSBkYWlseSBub3RlIHRlbXBsYXRlXCIpO1xuICAgICAgICByZXR1cm4gW1wiXCIsIG51bGxdO1xuICAgIH1cbn1cblxuLyoqXG4gKiBkYXRlVUlEIGlzIGEgd2F5IG9mIHdlZWtseSBpZGVudGlmeWluZyBkYWlseS93ZWVrbHkvbW9udGhseSBub3Rlcy5cbiAqIFRoZXkgYXJlIHByZWZpeGVkIHdpdGggdGhlIGdyYW51bGFyaXR5IHRvIGF2b2lkIGFtYmlndWl0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0RGF0ZVVJRChkYXRlLCBncmFudWxhcml0eSA9IFwiZGF5XCIpIHtcbiAgICBjb25zdCB0cyA9IGRhdGUuY2xvbmUoKS5zdGFydE9mKGdyYW51bGFyaXR5KS5mb3JtYXQoKTtcbiAgICByZXR1cm4gYCR7Z3JhbnVsYXJpdHl9LSR7dHN9YDtcbn1cbmZ1bmN0aW9uIHJlbW92ZUVzY2FwZWRDaGFyYWN0ZXJzKGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXQucmVwbGFjZSgvXFxbW15cXF1dKlxcXS9nLCBcIlwiKTsgLy8gcmVtb3ZlIGV2ZXJ5dGhpbmcgd2l0aGluIGJyYWNrZXRzXG59XG4vKipcbiAqIFhYWDogV2hlbiBwYXJzaW5nIGRhdGVzIHRoYXQgY29udGFpbiBib3RoIHdlZWsgbnVtYmVycyBhbmQgbW9udGhzLFxuICogTW9tZW50IGNob3NlcyB0byBpZ25vcmUgdGhlIHdlZWsgbnVtYmVycy4gRm9yIHRoZSB3ZWVrIGRhdGVVSUQsIHdlXG4gKiB3YW50IHRoZSBvcHBvc2l0ZSBiZWhhdmlvci4gU3RyaXAgdGhlIE1NTSBmcm9tIHRoZSBmb3JtYXQgdG8gcGF0Y2guXG4gKi9cbmZ1bmN0aW9uIGlzRm9ybWF0QW1iaWd1b3VzKGZvcm1hdCwgZ3JhbnVsYXJpdHkpIHtcbiAgICBpZiAoZ3JhbnVsYXJpdHkgPT09IFwid2Vla1wiKSB7XG4gICAgICAgIGNvbnN0IGNsZWFuRm9ybWF0ID0gcmVtb3ZlRXNjYXBlZENoYXJhY3RlcnMoZm9ybWF0KTtcbiAgICAgICAgcmV0dXJuICgvd3sxLDJ9L2kudGVzdChjbGVhbkZvcm1hdCkgJiZcbiAgICAgICAgICAgICgvTXsxLDR9Ly50ZXN0KGNsZWFuRm9ybWF0KSB8fCAvRHsxLDR9Ly50ZXN0KGNsZWFuRm9ybWF0KSkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBnZXREYXRlRnJvbUZpbGUoZmlsZSwgZ3JhbnVsYXJpdHkpIHtcbiAgICByZXR1cm4gZ2V0RGF0ZUZyb21GaWxlbmFtZShmaWxlLmJhc2VuYW1lLCBncmFudWxhcml0eSk7XG59XG5mdW5jdGlvbiBnZXREYXRlRnJvbVBhdGgocGF0aCwgZ3JhbnVsYXJpdHkpIHtcbiAgICByZXR1cm4gZ2V0RGF0ZUZyb21GaWxlbmFtZShiYXNlbmFtZShwYXRoKSwgZ3JhbnVsYXJpdHkpO1xufVxuZnVuY3Rpb24gZ2V0RGF0ZUZyb21GaWxlbmFtZShmaWxlbmFtZSwgZ3JhbnVsYXJpdHkpIHtcbiAgICBjb25zdCBnZXRTZXR0aW5ncyA9IHtcbiAgICAgICAgZGF5OiBnZXREYWlseU5vdGVTZXR0aW5ncyxcbiAgICAgICAgd2VlazogZ2V0V2Vla2x5Tm90ZVNldHRpbmdzLFxuICAgICAgICBtb250aDogZ2V0TW9udGhseU5vdGVTZXR0aW5ncyxcbiAgICAgICAgcXVhcnRlcjogZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzLFxuICAgICAgICB5ZWFyOiBnZXRZZWFybHlOb3RlU2V0dGluZ3MsXG4gICAgfTtcbiAgICBjb25zdCBmb3JtYXQgPSBnZXRTZXR0aW5nc1tncmFudWxhcml0eV0oKS5mb3JtYXQuc3BsaXQoXCIvXCIpLnBvcCgpO1xuICAgIGNvbnN0IG5vdGVEYXRlID0gd2luZG93Lm1vbWVudChmaWxlbmFtZSwgZm9ybWF0LCB0cnVlKTtcbiAgICBpZiAoIW5vdGVEYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGlzRm9ybWF0QW1iaWd1b3VzKGZvcm1hdCwgZ3JhbnVsYXJpdHkpKSB7XG4gICAgICAgIGlmIChncmFudWxhcml0eSA9PT0gXCJ3ZWVrXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuRm9ybWF0ID0gcmVtb3ZlRXNjYXBlZENoYXJhY3RlcnMoZm9ybWF0KTtcbiAgICAgICAgICAgIGlmICgvd3sxLDJ9L2kudGVzdChjbGVhbkZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93Lm1vbWVudChmaWxlbmFtZSwgXG4gICAgICAgICAgICAgICAgLy8gSWYgZm9ybWF0IGNvbnRhaW5zIHdlZWssIHJlbW92ZSBkYXkgJiBtb250aCBmb3JtYXR0aW5nXG4gICAgICAgICAgICAgICAgZm9ybWF0LnJlcGxhY2UoL017MSw0fS9nLCBcIlwiKS5yZXBsYWNlKC9EezEsNH0vZywgXCJcIiksIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm90ZURhdGU7XG59XG5cbmNsYXNzIERhaWx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gbWltaWNzIHRoZSBiZWhhdmlvciBvZiB0aGUgZGFpbHktbm90ZXMgcGx1Z2luXG4gKiBzbyBpdCB3aWxsIHJlcGxhY2Uge3tkYXRlfX0sIHt7dGl0bGV9fSwgYW5kIHt7dGltZX19IHdpdGggdGhlXG4gKiBmb3JtYXR0ZWQgdGltZXN0YW1wLlxuICpcbiAqIE5vdGU6IGl0IGhhcyBhbiBhZGRlZCBib251cyB0aGF0IGl0J3Mgbm90ICd0b2RheScgc3BlY2lmaWMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZURhaWx5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgYXBwID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHZhdWx0IH0gPSBhcHA7XG4gICAgY29uc3QgbW9tZW50ID0gd2luZG93Lm1vbWVudDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0RGFpbHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCBbdGVtcGxhdGVDb250ZW50cywgSUZvbGRJbmZvXSA9IGF3YWl0IGdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBkYXRlLmZvcm1hdChmb3JtYXQpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gYXdhaXQgZ2V0Tm90ZVBhdGgoZm9sZGVyLCBmaWxlbmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY3JlYXRlZEZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGUobm9ybWFsaXplZFBhdGgsIHRlbXBsYXRlQ29udGVudHNcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccypkYXRlXFxzKn19L2dpLCBmaWxlbmFtZSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aW1lXFxzKn19L2dpLCBtb21lbnQoKS5mb3JtYXQoXCJISDptbVwiKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aXRsZVxccyp9fS9naSwgZmlsZW5hbWUpXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqKGRhdGV8dGltZSlcXHMqKChbKy1dXFxkKykoW3lxbXdkaHNdKSk/XFxzKig6Lis/KT99fS9naSwgKF8sIF90aW1lT3JEYXRlLCBjYWxjLCB0aW1lRGVsdGEsIHVuaXQsIG1vbWVudEZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gbW9tZW50KCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IGRhdGUuY2xvbmUoKS5zZXQoe1xuICAgICAgICAgICAgICAgIGhvdXI6IG5vdy5nZXQoXCJob3VyXCIpLFxuICAgICAgICAgICAgICAgIG1pbnV0ZTogbm93LmdldChcIm1pbnV0ZVwiKSxcbiAgICAgICAgICAgICAgICBzZWNvbmQ6IG5vdy5nZXQoXCJzZWNvbmRcIiksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChjYWxjKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKHBhcnNlSW50KHRpbWVEZWx0YSwgMTApLCB1bml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtb21lbnRGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KG1vbWVudEZvcm1hdC5zdWJzdHJpbmcoMSkudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50RGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp5ZXN0ZXJkYXlcXHMqfX0vZ2ksIGRhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCBcImRheVwiKS5mb3JtYXQoZm9ybWF0KSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0b21vcnJvd1xccyp9fS9naSwgZGF0ZS5jbG9uZSgpLmFkZCgxLCBcImRcIikuZm9ybWF0KGZvcm1hdCkpKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgYXBwLmZvbGRNYW5hZ2VyLnNhdmUoY3JlYXRlZEZpbGUsIElGb2xkSW5mbyk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkRmlsZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGZpbGU6ICcke25vcm1hbGl6ZWRQYXRofSdgLCBlcnIpO1xuICAgICAgICBuZXcgb2JzaWRpYW4uTm90aWNlKFwiVW5hYmxlIHRvIGNyZWF0ZSBuZXcgZmlsZS5cIik7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0RGFpbHlOb3RlKGRhdGUsIGRhaWx5Tm90ZXMpIHtcbiAgICByZXR1cm4gZGFpbHlOb3Rlc1tnZXREYXRlVUlEKGRhdGUsIFwiZGF5XCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsRGFpbHlOb3RlcygpIHtcbiAgICAvKipcbiAgICAgKiBGaW5kIGFsbCBkYWlseSBub3RlcyBpbiB0aGUgZGFpbHkgbm90ZSBmb2xkZXJcbiAgICAgKi9cbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSBnZXREYWlseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IGRhaWx5Tm90ZXNGb2xkZXIgPSB2YXVsdC5nZXRBYnN0cmFjdEZpbGVCeVBhdGgob2JzaWRpYW4ubm9ybWFsaXplUGF0aChmb2xkZXIpKTtcbiAgICBpZiAoIWRhaWx5Tm90ZXNGb2xkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IERhaWx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IoXCJGYWlsZWQgdG8gZmluZCBkYWlseSBub3RlcyBmb2xkZXJcIik7XG4gICAgfVxuICAgIGNvbnN0IGRhaWx5Tm90ZXMgPSB7fTtcbiAgICBvYnNpZGlhbi5WYXVsdC5yZWN1cnNlQ2hpbGRyZW4oZGFpbHlOb3Rlc0ZvbGRlciwgKG5vdGUpID0+IHtcbiAgICAgICAgaWYgKG5vdGUgaW5zdGFuY2VvZiBvYnNpZGlhbi5URmlsZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGdldERhdGVGcm9tRmlsZShub3RlLCBcImRheVwiKTtcbiAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGdldERhdGVVSUQoZGF0ZSwgXCJkYXlcIik7XG4gICAgICAgICAgICAgICAgZGFpbHlOb3Rlc1tkYXRlU3RyaW5nXSA9IG5vdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGFpbHlOb3Rlcztcbn1cblxuY2xhc3MgV2Vla2x5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5mdW5jdGlvbiBnZXREYXlzT2ZXZWVrKCkge1xuICAgIGNvbnN0IHsgbW9tZW50IH0gPSB3aW5kb3c7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBsZXQgd2Vla1N0YXJ0ID0gbW9tZW50LmxvY2FsZURhdGEoKS5fd2Vlay5kb3c7XG4gICAgY29uc3QgZGF5c09mV2VlayA9IFtcbiAgICAgICAgXCJzdW5kYXlcIixcbiAgICAgICAgXCJtb25kYXlcIixcbiAgICAgICAgXCJ0dWVzZGF5XCIsXG4gICAgICAgIFwid2VkbmVzZGF5XCIsXG4gICAgICAgIFwidGh1cnNkYXlcIixcbiAgICAgICAgXCJmcmlkYXlcIixcbiAgICAgICAgXCJzYXR1cmRheVwiLFxuICAgIF07XG4gICAgd2hpbGUgKHdlZWtTdGFydCkge1xuICAgICAgICBkYXlzT2ZXZWVrLnB1c2goZGF5c09mV2Vlay5zaGlmdCgpKTtcbiAgICAgICAgd2Vla1N0YXJ0LS07XG4gICAgfVxuICAgIHJldHVybiBkYXlzT2ZXZWVrO1xufVxuZnVuY3Rpb24gZ2V0RGF5T2ZXZWVrTnVtZXJpY2FsVmFsdWUoZGF5T2ZXZWVrTmFtZSkge1xuICAgIHJldHVybiBnZXREYXlzT2ZXZWVrKCkuaW5kZXhPZihkYXlPZldlZWtOYW1lLnRvTG93ZXJDYXNlKCkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlV2Vla2x5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0V2Vla2x5Tm90ZVNldHRpbmdzKCk7XG4gICAgY29uc3QgW3RlbXBsYXRlQ29udGVudHMsIElGb2xkSW5mb10gPSBhd2FpdCBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGUpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gZGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGF3YWl0IGdldE5vdGVQYXRoKGZvbGRlciwgZmlsZW5hbWUpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWRGaWxlID0gYXdhaXQgdmF1bHQuY3JlYXRlKG5vcm1hbGl6ZWRQYXRoLCB0ZW1wbGF0ZUNvbnRlbnRzXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqKGRhdGV8dGltZSlcXHMqKChbKy1dXFxkKykoW3lxbXdkaHNdKSk/XFxzKig6Lis/KT99fS9naSwgKF8sIF90aW1lT3JEYXRlLCBjYWxjLCB0aW1lRGVsdGEsIHVuaXQsIG1vbWVudEZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gd2luZG93Lm1vbWVudCgpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBkYXRlLmNsb25lKCkuc2V0KHtcbiAgICAgICAgICAgICAgICBob3VyOiBub3cuZ2V0KFwiaG91clwiKSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IG5vdy5nZXQoXCJtaW51dGVcIiksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiBub3cuZ2V0KFwic2Vjb25kXCIpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoY2FsYykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnREYXRlLmFkZChwYXJzZUludCh0aW1lRGVsdGEsIDEwKSwgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9tZW50Rm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnREYXRlLmZvcm1hdChtb21lbnRGb3JtYXQuc3Vic3RyaW5nKDEpLnRyaW0oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KGZvcm1hdCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqdGl0bGVcXHMqfX0vZ2ksIGZpbGVuYW1lKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKnRpbWVcXHMqfX0vZ2ksIHdpbmRvdy5tb21lbnQoKS5mb3JtYXQoXCJISDptbVwiKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyooc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpXFxzKjooLio/KX19L2dpLCAoXywgZGF5T2ZXZWVrLCBtb21lbnRGb3JtYXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRheSA9IGdldERheU9mV2Vla051bWVyaWNhbFZhbHVlKGRheU9mV2Vlayk7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS53ZWVrZGF5KGRheSkuZm9ybWF0KG1vbWVudEZvcm1hdC50cmltKCkpO1xuICAgICAgICB9KSk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHdpbmRvdy5hcHAuZm9sZE1hbmFnZXIuc2F2ZShjcmVhdGVkRmlsZSwgSUZvbGRJbmZvKTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRGaWxlO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZmlsZTogJyR7bm9ybWFsaXplZFBhdGh9J2AsIGVycik7XG4gICAgICAgIG5ldyBvYnNpZGlhbi5Ob3RpY2UoXCJVbmFibGUgdG8gY3JlYXRlIG5ldyBmaWxlLlwiKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRXZWVrbHlOb3RlKGRhdGUsIHdlZWtseU5vdGVzKSB7XG4gICAgcmV0dXJuIHdlZWtseU5vdGVzW2dldERhdGVVSUQoZGF0ZSwgXCJ3ZWVrXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsV2Vla2x5Tm90ZXMoKSB7XG4gICAgY29uc3Qgd2Vla2x5Tm90ZXMgPSB7fTtcbiAgICBpZiAoIWFwcEhhc1dlZWtseU5vdGVzUGx1Z2luTG9hZGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHdlZWtseU5vdGVzO1xuICAgIH1cbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSBnZXRXZWVrbHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCB3ZWVrbHlOb3Rlc0ZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICghd2Vla2x5Tm90ZXNGb2xkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFdlZWtseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yKFwiRmFpbGVkIHRvIGZpbmQgd2Vla2x5IG5vdGVzIGZvbGRlclwiKTtcbiAgICB9XG4gICAgb2JzaWRpYW4uVmF1bHQucmVjdXJzZUNoaWxkcmVuKHdlZWtseU5vdGVzRm9sZGVyLCAobm90ZSkgPT4ge1xuICAgICAgICBpZiAobm90ZSBpbnN0YW5jZW9mIG9ic2lkaWFuLlRGaWxlKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gZ2V0RGF0ZUZyb21GaWxlKG5vdGUsIFwid2Vla1wiKTtcbiAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGdldERhdGVVSUQoZGF0ZSwgXCJ3ZWVrXCIpO1xuICAgICAgICAgICAgICAgIHdlZWtseU5vdGVzW2RhdGVTdHJpbmddID0gbm90ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB3ZWVrbHlOb3Rlcztcbn1cblxuY2xhc3MgTW9udGhseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIG1pbWljcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGRhaWx5LW5vdGVzIHBsdWdpblxuICogc28gaXQgd2lsbCByZXBsYWNlIHt7ZGF0ZX19LCB7e3RpdGxlfX0sIGFuZCB7e3RpbWV9fSB3aXRoIHRoZVxuICogZm9ybWF0dGVkIHRpbWVzdGFtcC5cbiAqXG4gKiBOb3RlOiBpdCBoYXMgYW4gYWRkZWQgYm9udXMgdGhhdCBpdCdzIG5vdCAndG9kYXknIHNwZWNpZmljLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVNb250aGx5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0TW9udGhseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IFt0ZW1wbGF0ZUNvbnRlbnRzLCBJRm9sZEluZm9dID0gYXdhaXQgZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGRhdGUuZm9ybWF0KGZvcm1hdCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBhd2FpdCBnZXROb3RlUGF0aChmb2xkZXIsIGZpbGVuYW1lKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBjcmVhdGVkRmlsZSA9IGF3YWl0IHZhdWx0LmNyZWF0ZShub3JtYWxpemVkUGF0aCwgdGVtcGxhdGVDb250ZW50c1xuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKihkYXRlfHRpbWUpXFxzKigoWystXVxcZCspKFt5cW13ZGhzXSkpP1xccyooOi4rPyk/fX0vZ2ksIChfLCBfdGltZU9yRGF0ZSwgY2FsYywgdGltZURlbHRhLCB1bml0LCBtb21lbnRGb3JtYXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IHdpbmRvdy5tb21lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gZGF0ZS5jbG9uZSgpLnNldCh7XG4gICAgICAgICAgICAgICAgaG91cjogbm93LmdldChcImhvdXJcIiksXG4gICAgICAgICAgICAgICAgbWludXRlOiBub3cuZ2V0KFwibWludXRlXCIpLFxuICAgICAgICAgICAgICAgIHNlY29uZDogbm93LmdldChcInNlY29uZFwiKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGNhbGMpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50RGF0ZS5hZGQocGFyc2VJbnQodGltZURlbHRhLCAxMCksIHVuaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1vbWVudEZvcm1hdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50RGF0ZS5mb3JtYXQobW9tZW50Rm9ybWF0LnN1YnN0cmluZygxKS50cmltKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnREYXRlLmZvcm1hdChmb3JtYXQpO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKmRhdGVcXHMqfX0vZ2ksIGZpbGVuYW1lKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKnRpbWVcXHMqfX0vZ2ksIHdpbmRvdy5tb21lbnQoKS5mb3JtYXQoXCJISDptbVwiKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aXRsZVxccyp9fS9naSwgZmlsZW5hbWUpKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgd2luZG93LmFwcC5mb2xkTWFuYWdlci5zYXZlKGNyZWF0ZWRGaWxlLCBJRm9sZEluZm8pO1xuICAgICAgICByZXR1cm4gY3JlYXRlZEZpbGU7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBmaWxlOiAnJHtub3JtYWxpemVkUGF0aH0nYCwgZXJyKTtcbiAgICAgICAgbmV3IG9ic2lkaWFuLk5vdGljZShcIlVuYWJsZSB0byBjcmVhdGUgbmV3IGZpbGUuXCIpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldE1vbnRobHlOb3RlKGRhdGUsIG1vbnRobHlOb3Rlcykge1xuICAgIHJldHVybiBtb250aGx5Tm90ZXNbZ2V0RGF0ZVVJRChkYXRlLCBcIm1vbnRoXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsTW9udGhseU5vdGVzKCkge1xuICAgIGNvbnN0IG1vbnRobHlOb3RlcyA9IHt9O1xuICAgIGlmICghYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIG1vbnRobHlOb3RlcztcbiAgICB9XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IGZvbGRlciB9ID0gZ2V0TW9udGhseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IG1vbnRobHlOb3Rlc0ZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICghbW9udGhseU5vdGVzRm9sZGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBNb250aGx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IoXCJGYWlsZWQgdG8gZmluZCBtb250aGx5IG5vdGVzIGZvbGRlclwiKTtcbiAgICB9XG4gICAgb2JzaWRpYW4uVmF1bHQucmVjdXJzZUNoaWxkcmVuKG1vbnRobHlOb3Rlc0ZvbGRlciwgKG5vdGUpID0+IHtcbiAgICAgICAgaWYgKG5vdGUgaW5zdGFuY2VvZiBvYnNpZGlhbi5URmlsZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGdldERhdGVGcm9tRmlsZShub3RlLCBcIm1vbnRoXCIpO1xuICAgICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZ2V0RGF0ZVVJRChkYXRlLCBcIm1vbnRoXCIpO1xuICAgICAgICAgICAgICAgIG1vbnRobHlOb3Rlc1tkYXRlU3RyaW5nXSA9IG5vdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbW9udGhseU5vdGVzO1xufVxuXG5jbGFzcyBRdWFydGVybHlOb3Rlc0ZvbGRlck1pc3NpbmdFcnJvciBleHRlbmRzIEVycm9yIHtcbn1cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBtaW1pY3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBkYWlseS1ub3RlcyBwbHVnaW5cbiAqIHNvIGl0IHdpbGwgcmVwbGFjZSB7e2RhdGV9fSwge3t0aXRsZX19LCBhbmQge3t0aW1lfX0gd2l0aCB0aGVcbiAqIGZvcm1hdHRlZCB0aW1lc3RhbXAuXG4gKlxuICogTm90ZTogaXQgaGFzIGFuIGFkZGVkIGJvbnVzIHRoYXQgaXQncyBub3QgJ3RvZGF5JyBzcGVjaWZpYy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlUXVhcnRlcmx5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzKCk7XG4gICAgY29uc3QgW3RlbXBsYXRlQ29udGVudHMsIElGb2xkSW5mb10gPSBhd2FpdCBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGUpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gZGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGF3YWl0IGdldE5vdGVQYXRoKGZvbGRlciwgZmlsZW5hbWUpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWRGaWxlID0gYXdhaXQgdmF1bHQuY3JlYXRlKG5vcm1hbGl6ZWRQYXRoLCB0ZW1wbGF0ZUNvbnRlbnRzXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqKGRhdGV8dGltZSlcXHMqKChbKy1dXFxkKykoW3lxbXdkaHNdKSk/XFxzKig6Lis/KT99fS9naSwgKF8sIF90aW1lT3JEYXRlLCBjYWxjLCB0aW1lRGVsdGEsIHVuaXQsIG1vbWVudEZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gd2luZG93Lm1vbWVudCgpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBkYXRlLmNsb25lKCkuc2V0KHtcbiAgICAgICAgICAgICAgICBob3VyOiBub3cuZ2V0KFwiaG91clwiKSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IG5vdy5nZXQoXCJtaW51dGVcIiksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiBub3cuZ2V0KFwic2Vjb25kXCIpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoY2FsYykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnREYXRlLmFkZChwYXJzZUludCh0aW1lRGVsdGEsIDEwKSwgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9tZW50Rm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnREYXRlLmZvcm1hdChtb21lbnRGb3JtYXQuc3Vic3RyaW5nKDEpLnRyaW0oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KGZvcm1hdCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqZGF0ZVxccyp9fS9naSwgZmlsZW5hbWUpXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqdGltZVxccyp9fS9naSwgd2luZG93Lm1vbWVudCgpLmZvcm1hdChcIkhIOm1tXCIpKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKnRpdGxlXFxzKn19L2dpLCBmaWxlbmFtZSkpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB3aW5kb3cuYXBwLmZvbGRNYW5hZ2VyLnNhdmUoY3JlYXRlZEZpbGUsIElGb2xkSW5mbyk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkRmlsZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGZpbGU6ICcke25vcm1hbGl6ZWRQYXRofSdgLCBlcnIpO1xuICAgICAgICBuZXcgb2JzaWRpYW4uTm90aWNlKFwiVW5hYmxlIHRvIGNyZWF0ZSBuZXcgZmlsZS5cIik7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0UXVhcnRlcmx5Tm90ZShkYXRlLCBxdWFydGVybHkpIHtcbiAgICByZXR1cm4gcXVhcnRlcmx5W2dldERhdGVVSUQoZGF0ZSwgXCJxdWFydGVyXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsUXVhcnRlcmx5Tm90ZXMoKSB7XG4gICAgY29uc3QgcXVhcnRlcmx5ID0ge307XG4gICAgaWYgKCFhcHBIYXNRdWFydGVybHlOb3Rlc1BsdWdpbkxvYWRlZCgpKSB7XG4gICAgICAgIHJldHVybiBxdWFydGVybHk7XG4gICAgfVxuICAgIGNvbnN0IHsgdmF1bHQgfSA9IHdpbmRvdy5hcHA7XG4gICAgY29uc3QgeyBmb2xkZXIgfSA9IGdldFF1YXJ0ZXJseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IHF1YXJ0ZXJseUZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICghcXVhcnRlcmx5Rm9sZGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBRdWFydGVybHlOb3Rlc0ZvbGRlck1pc3NpbmdFcnJvcihcIkZhaWxlZCB0byBmaW5kIHF1YXJ0ZXJseSBub3RlcyBmb2xkZXJcIik7XG4gICAgfVxuICAgIG9ic2lkaWFuLlZhdWx0LnJlY3Vyc2VDaGlsZHJlbihxdWFydGVybHlGb2xkZXIsIChub3RlKSA9PiB7XG4gICAgICAgIGlmIChub3RlIGluc3RhbmNlb2Ygb2JzaWRpYW4uVEZpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBnZXREYXRlRnJvbUZpbGUobm90ZSwgXCJxdWFydGVyXCIpO1xuICAgICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZ2V0RGF0ZVVJRChkYXRlLCBcInF1YXJ0ZXJcIik7XG4gICAgICAgICAgICAgICAgcXVhcnRlcmx5W2RhdGVTdHJpbmddID0gbm90ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBxdWFydGVybHk7XG59XG5cbmNsYXNzIFllYXJseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIG1pbWljcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGRhaWx5LW5vdGVzIHBsdWdpblxuICogc28gaXQgd2lsbCByZXBsYWNlIHt7ZGF0ZX19LCB7e3RpdGxlfX0sIGFuZCB7e3RpbWV9fSB3aXRoIHRoZVxuICogZm9ybWF0dGVkIHRpbWVzdGFtcC5cbiAqXG4gKiBOb3RlOiBpdCBoYXMgYW4gYWRkZWQgYm9udXMgdGhhdCBpdCdzIG5vdCAndG9kYXknIHNwZWNpZmljLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVZZWFybHlOb3RlKGRhdGUpIHtcbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgdGVtcGxhdGUsIGZvcm1hdCwgZm9sZGVyIH0gPSBnZXRZZWFybHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCBbdGVtcGxhdGVDb250ZW50cywgSUZvbGRJbmZvXSA9IGF3YWl0IGdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBkYXRlLmZvcm1hdChmb3JtYXQpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gYXdhaXQgZ2V0Tm90ZVBhdGgoZm9sZGVyLCBmaWxlbmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY3JlYXRlZEZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGUobm9ybWFsaXplZFBhdGgsIHRlbXBsYXRlQ29udGVudHNcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyooZGF0ZXx0aW1lKVxccyooKFsrLV1cXGQrKShbeXFtd2Roc10pKT9cXHMqKDouKz8pP319L2dpLCAoXywgX3RpbWVPckRhdGUsIGNhbGMsIHRpbWVEZWx0YSwgdW5pdCwgbW9tZW50Rm9ybWF0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub3cgPSB3aW5kb3cubW9tZW50KCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IGRhdGUuY2xvbmUoKS5zZXQoe1xuICAgICAgICAgICAgICAgIGhvdXI6IG5vdy5nZXQoXCJob3VyXCIpLFxuICAgICAgICAgICAgICAgIG1pbnV0ZTogbm93LmdldChcIm1pbnV0ZVwiKSxcbiAgICAgICAgICAgICAgICBzZWNvbmQ6IG5vdy5nZXQoXCJzZWNvbmRcIiksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChjYWxjKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKHBhcnNlSW50KHRpbWVEZWx0YSwgMTApLCB1bml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtb21lbnRGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KG1vbWVudEZvcm1hdC5zdWJzdHJpbmcoMSkudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50RGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccypkYXRlXFxzKn19L2dpLCBmaWxlbmFtZSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aW1lXFxzKn19L2dpLCB3aW5kb3cubW9tZW50KCkuZm9ybWF0KFwiSEg6bW1cIikpXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqdGl0bGVcXHMqfX0vZ2ksIGZpbGVuYW1lKSk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHdpbmRvdy5hcHAuZm9sZE1hbmFnZXIuc2F2ZShjcmVhdGVkRmlsZSwgSUZvbGRJbmZvKTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRGaWxlO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZmlsZTogJyR7bm9ybWFsaXplZFBhdGh9J2AsIGVycik7XG4gICAgICAgIG5ldyBvYnNpZGlhbi5Ob3RpY2UoXCJVbmFibGUgdG8gY3JlYXRlIG5ldyBmaWxlLlwiKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRZZWFybHlOb3RlKGRhdGUsIHllYXJseU5vdGVzKSB7XG4gICAgcmV0dXJuIHllYXJseU5vdGVzW2dldERhdGVVSUQoZGF0ZSwgXCJ5ZWFyXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsWWVhcmx5Tm90ZXMoKSB7XG4gICAgY29uc3QgeWVhcmx5Tm90ZXMgPSB7fTtcbiAgICBpZiAoIWFwcEhhc1llYXJseU5vdGVzUGx1Z2luTG9hZGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHllYXJseU5vdGVzO1xuICAgIH1cbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSBnZXRZZWFybHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCB5ZWFybHlOb3Rlc0ZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICgheWVhcmx5Tm90ZXNGb2xkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFllYXJseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yKFwiRmFpbGVkIHRvIGZpbmQgeWVhcmx5IG5vdGVzIGZvbGRlclwiKTtcbiAgICB9XG4gICAgb2JzaWRpYW4uVmF1bHQucmVjdXJzZUNoaWxkcmVuKHllYXJseU5vdGVzRm9sZGVyLCAobm90ZSkgPT4ge1xuICAgICAgICBpZiAobm90ZSBpbnN0YW5jZW9mIG9ic2lkaWFuLlRGaWxlKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gZ2V0RGF0ZUZyb21GaWxlKG5vdGUsIFwieWVhclwiKTtcbiAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGdldERhdGVVSUQoZGF0ZSwgXCJ5ZWFyXCIpO1xuICAgICAgICAgICAgICAgIHllYXJseU5vdGVzW2RhdGVTdHJpbmddID0gbm90ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB5ZWFybHlOb3Rlcztcbn1cblxuZnVuY3Rpb24gYXBwSGFzRGFpbHlOb3Rlc1BsdWdpbkxvYWRlZCgpIHtcbiAgICBjb25zdCB7IGFwcCB9ID0gd2luZG93O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgZGFpbHlOb3Rlc1BsdWdpbiA9IGFwcC5pbnRlcm5hbFBsdWdpbnMucGx1Z2luc1tcImRhaWx5LW5vdGVzXCJdO1xuICAgIGlmIChkYWlseU5vdGVzUGx1Z2luICYmIGRhaWx5Tm90ZXNQbHVnaW4uZW5hYmxlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8uZGFpbHk/LmVuYWJsZWQ7XG59XG4vKipcbiAqIFhYWDogXCJXZWVrbHkgTm90ZXNcIiBsaXZlIGluIGVpdGhlciB0aGUgQ2FsZW5kYXIgcGx1Z2luIG9yIHRoZSBwZXJpb2RpYy1ub3RlcyBwbHVnaW4uXG4gKiBDaGVjayBib3RoIHVudGlsIHRoZSB3ZWVrbHkgbm90ZXMgZmVhdHVyZSBpcyByZW1vdmVkIGZyb20gdGhlIENhbGVuZGFyIHBsdWdpbi5cbiAqL1xuZnVuY3Rpb24gYXBwSGFzV2Vla2x5Tm90ZXNQbHVnaW5Mb2FkZWQoKSB7XG4gICAgY29uc3QgeyBhcHAgfSA9IHdpbmRvdztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGlmIChhcHAucGx1Z2lucy5nZXRQbHVnaW4oXCJjYWxlbmRhclwiKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8ud2Vla2x5Py5lbmFibGVkO1xufVxuZnVuY3Rpb24gYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkKCkge1xuICAgIGNvbnN0IHsgYXBwIH0gPSB3aW5kb3c7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8ubW9udGhseT8uZW5hYmxlZDtcbn1cbmZ1bmN0aW9uIGFwcEhhc1F1YXJ0ZXJseU5vdGVzUGx1Z2luTG9hZGVkKCkge1xuICAgIGNvbnN0IHsgYXBwIH0gPSB3aW5kb3c7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8ucXVhcnRlcmx5Py5lbmFibGVkO1xufVxuZnVuY3Rpb24gYXBwSGFzWWVhcmx5Tm90ZXNQbHVnaW5Mb2FkZWQoKSB7XG4gICAgY29uc3QgeyBhcHAgfSA9IHdpbmRvdztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHBlcmlvZGljTm90ZXMgPSBhcHAucGx1Z2lucy5nZXRQbHVnaW4oXCJwZXJpb2RpYy1ub3Rlc1wiKTtcbiAgICByZXR1cm4gcGVyaW9kaWNOb3RlcyAmJiBwZXJpb2RpY05vdGVzLnNldHRpbmdzPy55ZWFybHk/LmVuYWJsZWQ7XG59XG5mdW5jdGlvbiBnZXRQZXJpb2RpY05vdGVTZXR0aW5ncyhncmFudWxhcml0eSkge1xuICAgIGNvbnN0IGdldFNldHRpbmdzID0ge1xuICAgICAgICBkYXk6IGdldERhaWx5Tm90ZVNldHRpbmdzLFxuICAgICAgICB3ZWVrOiBnZXRXZWVrbHlOb3RlU2V0dGluZ3MsXG4gICAgICAgIG1vbnRoOiBnZXRNb250aGx5Tm90ZVNldHRpbmdzLFxuICAgICAgICBxdWFydGVyOiBnZXRRdWFydGVybHlOb3RlU2V0dGluZ3MsXG4gICAgICAgIHllYXI6IGdldFllYXJseU5vdGVTZXR0aW5ncyxcbiAgICB9W2dyYW51bGFyaXR5XTtcbiAgICByZXR1cm4gZ2V0U2V0dGluZ3MoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBlcmlvZGljTm90ZShncmFudWxhcml0eSwgZGF0ZSkge1xuICAgIGNvbnN0IGNyZWF0ZUZuID0ge1xuICAgICAgICBkYXk6IGNyZWF0ZURhaWx5Tm90ZSxcbiAgICAgICAgbW9udGg6IGNyZWF0ZU1vbnRobHlOb3RlLFxuICAgICAgICB3ZWVrOiBjcmVhdGVXZWVrbHlOb3RlLFxuICAgIH07XG4gICAgcmV0dXJuIGNyZWF0ZUZuW2dyYW51bGFyaXR5XShkYXRlKTtcbn1cblxuZXhwb3J0cy5ERUZBVUxUX0RBSUxZX05PVEVfRk9STUFUID0gREVGQVVMVF9EQUlMWV9OT1RFX0ZPUk1BVDtcbmV4cG9ydHMuREVGQVVMVF9NT05USExZX05PVEVfRk9STUFUID0gREVGQVVMVF9NT05USExZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5ERUZBVUxUX1FVQVJURVJMWV9OT1RFX0ZPUk1BVCA9IERFRkFVTFRfUVVBUlRFUkxZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5ERUZBVUxUX1dFRUtMWV9OT1RFX0ZPUk1BVCA9IERFRkFVTFRfV0VFS0xZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5ERUZBVUxUX1lFQVJMWV9OT1RFX0ZPUk1BVCA9IERFRkFVTFRfWUVBUkxZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5hcHBIYXNEYWlseU5vdGVzUGx1Z2luTG9hZGVkID0gYXBwSGFzRGFpbHlOb3Rlc1BsdWdpbkxvYWRlZDtcbmV4cG9ydHMuYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkID0gYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5hcHBIYXNRdWFydGVybHlOb3Rlc1BsdWdpbkxvYWRlZCA9IGFwcEhhc1F1YXJ0ZXJseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5hcHBIYXNXZWVrbHlOb3Rlc1BsdWdpbkxvYWRlZCA9IGFwcEhhc1dlZWtseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5hcHBIYXNZZWFybHlOb3Rlc1BsdWdpbkxvYWRlZCA9IGFwcEhhc1llYXJseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5jcmVhdGVEYWlseU5vdGUgPSBjcmVhdGVEYWlseU5vdGU7XG5leHBvcnRzLmNyZWF0ZU1vbnRobHlOb3RlID0gY3JlYXRlTW9udGhseU5vdGU7XG5leHBvcnRzLmNyZWF0ZVBlcmlvZGljTm90ZSA9IGNyZWF0ZVBlcmlvZGljTm90ZTtcbmV4cG9ydHMuY3JlYXRlUXVhcnRlcmx5Tm90ZSA9IGNyZWF0ZVF1YXJ0ZXJseU5vdGU7XG5leHBvcnRzLmNyZWF0ZVdlZWtseU5vdGUgPSBjcmVhdGVXZWVrbHlOb3RlO1xuZXhwb3J0cy5jcmVhdGVZZWFybHlOb3RlID0gY3JlYXRlWWVhcmx5Tm90ZTtcbmV4cG9ydHMuZ2V0QWxsRGFpbHlOb3RlcyA9IGdldEFsbERhaWx5Tm90ZXM7XG5leHBvcnRzLmdldEFsbE1vbnRobHlOb3RlcyA9IGdldEFsbE1vbnRobHlOb3RlcztcbmV4cG9ydHMuZ2V0QWxsUXVhcnRlcmx5Tm90ZXMgPSBnZXRBbGxRdWFydGVybHlOb3RlcztcbmV4cG9ydHMuZ2V0QWxsV2Vla2x5Tm90ZXMgPSBnZXRBbGxXZWVrbHlOb3RlcztcbmV4cG9ydHMuZ2V0QWxsWWVhcmx5Tm90ZXMgPSBnZXRBbGxZZWFybHlOb3RlcztcbmV4cG9ydHMuZ2V0RGFpbHlOb3RlID0gZ2V0RGFpbHlOb3RlO1xuZXhwb3J0cy5nZXREYWlseU5vdGVTZXR0aW5ncyA9IGdldERhaWx5Tm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXREYXRlRnJvbUZpbGUgPSBnZXREYXRlRnJvbUZpbGU7XG5leHBvcnRzLmdldERhdGVGcm9tUGF0aCA9IGdldERhdGVGcm9tUGF0aDtcbmV4cG9ydHMuZ2V0RGF0ZVVJRCA9IGdldERhdGVVSUQ7XG5leHBvcnRzLmdldE1vbnRobHlOb3RlID0gZ2V0TW9udGhseU5vdGU7XG5leHBvcnRzLmdldE1vbnRobHlOb3RlU2V0dGluZ3MgPSBnZXRNb250aGx5Tm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXRQZXJpb2RpY05vdGVTZXR0aW5ncyA9IGdldFBlcmlvZGljTm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXRRdWFydGVybHlOb3RlID0gZ2V0UXVhcnRlcmx5Tm90ZTtcbmV4cG9ydHMuZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzID0gZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXRUZW1wbGF0ZUluZm8gPSBnZXRUZW1wbGF0ZUluZm87XG5leHBvcnRzLmdldFdlZWtseU5vdGUgPSBnZXRXZWVrbHlOb3RlO1xuZXhwb3J0cy5nZXRXZWVrbHlOb3RlU2V0dGluZ3MgPSBnZXRXZWVrbHlOb3RlU2V0dGluZ3M7XG5leHBvcnRzLmdldFllYXJseU5vdGUgPSBnZXRZZWFybHlOb3RlO1xuZXhwb3J0cy5nZXRZZWFybHlOb3RlU2V0dGluZ3MgPSBnZXRZZWFybHlOb3RlU2V0dGluZ3M7XG4iLCJpbXBvcnQgeyBBcHAsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGdldEFsbERhaWx5Tm90ZXMgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcclxuICBkYWlseU5vdGVzOiBSZWNvcmQ8c3RyaW5nLCBURmlsZT47XHJcbiAgYXBwOiBBcHA7XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXREYWlseU5vdGVzQWN0aW9uIHtcclxuICB0eXBlOiBcIlNFVF9EQUlMWU5PVEVTXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgZGFpbHlOb3RlczogUmVjb3JkPHN0cmluZywgVEZpbGU+O1xyXG4gIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXRPYnNpZGlhbkFwcEFjdGlvbiB7XHJcbiAgdHlwZTogXCJTRVRfQVBQXCI7XHJcbiAgcGF5bG9hZDoge1xyXG4gICAgYXBwOiBBcHA7XHJcbiAgfTtcclxufVxyXG5cclxuLy8gaW50ZXJmYWNlIEluc2VydERhaWx5Tm90ZUFjdGlvbiB7XHJcbi8vICAgdHlwZTogXCJJTlNFUlRfREFJTFlOT1RFXCI7XHJcbi8vICAgcGF5bG9hZDoge1xyXG4vLyAgICAgZGFpbHlOb3RlOiBURmlsZTtcclxuLy8gICB9O1xyXG4vLyB9XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25zID0gU2V0RGFpbHlOb3Rlc0FjdGlvbiB8IFNldE9ic2lkaWFuQXBwQWN0aW9uIDtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogU3RhdGUge1xyXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcclxuICAgIGNhc2UgXCJTRVRfREFJTFlOT1RFU1wiOiB7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBkYWlseU5vdGVzID0gZ2V0QWxsRGFpbHlOb3RlcygpO1xyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBkYWlseU5vdGVzOiBkYWlseU5vdGVzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIlNFVF9BUFBcIjoge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIGFwcDogYWN0aW9uLnBheWxvYWQuYXBwLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZGVmYXVsdDoge1xyXG4gICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZGVmYXVsdFN0YXRlOiBTdGF0ZSA9IHtcclxuICBkYWlseU5vdGVzOiBudWxsLFxyXG4gIGFwcDogbnVsbCxcclxufTtcclxuIiwiaW1wb3J0IGNvbWJpbmVSZWR1Y2VycyBmcm9tIFwiLi4vbGFicy9jb21iaW5lUmVkdWNlcnNcIjtcclxuaW1wb3J0IGNyZWF0ZVN0b3JlIGZyb20gXCIuLi9sYWJzL2NyZWF0ZVN0b3JlXCI7XHJcbmltcG9ydCAqIGFzIGdsb2JhbFN0b3JlIGZyb20gXCIuL2dsb2JhbFN0YXRlU3RvcmVcIjtcclxuaW1wb3J0ICogYXMgbG9jYXRpb25TdG9yZSBmcm9tIFwiLi9sb2NhdGlvblN0b3JlXCI7XHJcbmltcG9ydCAqIGFzIG1lbW9TdG9yZSBmcm9tIFwiLi9tZW1vU3RvcmVcIjtcclxuaW1wb3J0ICogYXMgdXNlclN0b3JlIGZyb20gXCIuL3VzZXJTdG9yZVwiO1xyXG5pbXBvcnQgKiBhcyBxdWVyeVN0b3JlIGZyb20gXCIuL3F1ZXJ5U3RvcmVcIjtcclxuaW1wb3J0ICogYXMgZGFpbHlOb3Rlc1N0b3JlIGZyb20gXCIuL2RhaWx5Tm90ZXNTdG9yZVwiO1xyXG5cclxuaW50ZXJmYWNlIEFwcFN0YXRlIHtcclxuICBnbG9iYWxTdGF0ZTogZ2xvYmFsU3RvcmUuU3RhdGU7XHJcbiAgbG9jYXRpb25TdGF0ZTogbG9jYXRpb25TdG9yZS5TdGF0ZTtcclxuICBtZW1vU3RhdGU6IG1lbW9TdG9yZS5TdGF0ZTtcclxuICB1c2VyU3RhdGU6IHVzZXJTdG9yZS5TdGF0ZTtcclxuICBxdWVyeVN0YXRlOiBxdWVyeVN0b3JlLlN0YXRlO1xyXG4gIGRhaWx5Tm90ZXNTdGF0ZTogZGFpbHlOb3Rlc1N0b3JlLlN0YXRlO1xyXG59XHJcblxyXG50eXBlIEFwcFN0YXRlQWN0aW9ucyA9IGdsb2JhbFN0b3JlLkFjdGlvbnMgfCBsb2NhdGlvblN0b3JlLkFjdGlvbnMgfCBtZW1vU3RvcmUuQWN0aW9ucyB8IHVzZXJTdG9yZS5BY3Rpb25zIHwgcXVlcnlTdG9yZS5BY3Rpb25zIHwgZGFpbHlOb3Rlc1N0b3JlLkFjdGlvbnM7XHJcblxyXG5jb25zdCBhcHBTdG9yZSA9IGNyZWF0ZVN0b3JlPEFwcFN0YXRlLCBBcHBTdGF0ZUFjdGlvbnM+KFxyXG4gIHtcclxuICAgIGdsb2JhbFN0YXRlOiBnbG9iYWxTdG9yZS5kZWZhdWx0U3RhdGUsXHJcbiAgICBsb2NhdGlvblN0YXRlOiBsb2NhdGlvblN0b3JlLmRlZmF1bHRTdGF0ZSxcclxuICAgIG1lbW9TdGF0ZTogbWVtb1N0b3JlLmRlZmF1bHRTdGF0ZSxcclxuICAgIHVzZXJTdGF0ZTogdXNlclN0b3JlLmRlZmF1bHRTdGF0ZSxcclxuICAgIHF1ZXJ5U3RhdGU6IHF1ZXJ5U3RvcmUuZGVmYXVsdFN0YXRlLFxyXG4gICAgZGFpbHlOb3Rlc1N0YXRlOiBkYWlseU5vdGVzU3RvcmUuZGVmYXVsdFN0YXRlLFxyXG4gIH0sXHJcbiAgY29tYmluZVJlZHVjZXJzPEFwcFN0YXRlLCBBcHBTdGF0ZUFjdGlvbnM+KHtcclxuICAgIGdsb2JhbFN0YXRlOiBnbG9iYWxTdG9yZS5yZWR1Y2VyLFxyXG4gICAgbG9jYXRpb25TdGF0ZTogbG9jYXRpb25TdG9yZS5yZWR1Y2VyLFxyXG4gICAgbWVtb1N0YXRlOiBtZW1vU3RvcmUucmVkdWNlcixcclxuICAgIHVzZXJTdGF0ZTogdXNlclN0b3JlLnJlZHVjZXIsXHJcbiAgICBxdWVyeVN0YXRlOiBxdWVyeVN0b3JlLnJlZHVjZXIsXHJcbiAgICBkYWlseU5vdGVzU3RhdGU6IGRhaWx5Tm90ZXNTdG9yZS5yZWR1Y2VyLFxyXG4gIH0pXHJcbik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBhcHBTdG9yZTtcclxuIiwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgYXBwU3RvcmUgZnJvbSBcIi4vYXBwU3RvcmVcIjtcclxuXHJcbmNvbnN0IGFwcENvbnRleHQgPSBjcmVhdGVDb250ZXh0KGFwcFN0b3JlLmdldFN0YXRlKCkpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgYXBwQ29udGV4dDtcclxuIiwiLy8gaW1wb3J0IHVzZXJTZXJ2aWNlIGZyb20gXCIuL3VzZXJTZXJ2aWNlXCI7XHJcbi8vIGltcG9ydCBhcGkgZnJvbSBcIi4uL2hlbHBlcnMvYXBpXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCB7IGdldEFsbERhaWx5Tm90ZXMsIGdldERhaWx5Tm90ZSB9IGZyb20gJ29ic2lkaWFuLWRhaWx5LW5vdGVzLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFwcCwgVEZpbGUgfSBmcm9tICdvYnNpZGlhbic7XHJcbmltcG9ydCB0eXBlIHsgTW9tZW50IH0gZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuY2xhc3MgRGFpbHlOb3Rlc1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBnZXRTdGF0ZSgpIHtcclxuICAgIHJldHVybiBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBcHAoYXBwOiBBcHApIHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfQVBQXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBhcHAsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBhcHA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0TXlBbGxEYWlseU5vdGVzKCkge1xyXG5cclxuICAgIGNvbnN0IGRhaWx5Tm90ZXMgPSBnZXRBbGxEYWlseU5vdGVzKCk7XHJcblxyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIlNFVF9EQUlMWU5PVEVTXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBkYWlseU5vdGVzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZGFpbHlOb3RlcztcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBwdXNoRGFpbHlOb3RlKGRhaWx5Tm90ZTogVEZpbGUpIHtcclxuICAvLyAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAvLyAgICAgdHlwZTogXCJJTlNFUlRfREFJTFlOT1RFXCIsXHJcbiAgLy8gICAgIHBheWxvYWQ6IHtcclxuICAvLyAgICAgICBtZW1vOiB7XHJcbiAgLy8gICAgICAgICAuLi5tZW1vLFxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgIH0sXHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREYWlseU5vdGVCeU1lbW8oZGF0ZTogTW9tZW50KTogUHJvbWlzZTxURmlsZT4ge1xyXG4gICAgY29uc3QgeyBkYWlseU5vdGVzIH0gPSB0aGlzLmdldFN0YXRlKCk7XHJcbiAgICBjb25zdCBkYWlseU5vdGUgPSBnZXREYWlseU5vdGUoZGF0ZSwgZGFpbHlOb3Rlcyk7XHJcbiAgICByZXR1cm4gZGFpbHlOb3RlO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgZGFpbHlOb3Rlc1NlcnZpY2UgPSBuZXcgRGFpbHlOb3Rlc1NlcnZpY2UoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGRhaWx5Tm90ZXNTZXJ2aWNlO1xyXG4iLCJpbXBvcnQgeyBJbnB1dEFjdGlvbiB9IGZyb20gXCJ0aW55LXVuZG9cIjtcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmUgc3RvcmFnZSBkYXRhIHR5cGVcclxuICovXHJcbmludGVyZmFjZSBTdG9yYWdlRGF0YSB7XHJcbiAgLy8g57yW6L6R5Zmo6L6T5YWl57yT5a2Y5YaF5a65XHJcbiAgZWRpdG9yQ29udGVudENhY2hlOiBzdHJpbmc7XHJcbiAgLy8g5YiG6K+N5byA5YWzXHJcbiAgc2hvdWxkU3BsaXRNZW1vV29yZDogYm9vbGVhbjtcclxuICAvLyDmmK/lkKbpmpDol4/lm77niYfpk77mjqXlnLDlnYBcclxuICBzaG91bGRIaWRlSW1hZ2VVcmw6IGJvb2xlYW47XHJcbiAgLy8gbWFya2Rvd24g6Kej5p6Q5byA5YWzXHJcbiAgc2hvdWxkVXNlTWFya2Rvd25QYXJzZXI6IGJvb2xlYW47XHJcblxyXG4gIC8vIEVkaXRvciBzZXR0aW5nXHJcbiAgdXNlVGlueVVuZG9IaXN0b3J5Q2FjaGU6IGJvb2xlYW47XHJcblxyXG4gIC8vIHRpbnkgdW5kbyBhY3Rpb25zIGNhY2hlXHJcbiAgdGlueVVuZG9BY3Rpb25zQ2FjaGU6IElucHV0QWN0aW9uW107XHJcbiAgLy8gdGlueSB1bmRvIGluZGV4IGNhY2hlXHJcbiAgdGlueVVuZG9JbmRleENhY2hlOiBudW1iZXI7XHJcbn1cclxuXHJcbnR5cGUgU3RvcmFnZUtleSA9IGtleW9mIFN0b3JhZ2VEYXRhO1xyXG5cclxuLyoqXHJcbiAqIHN0b3JhZ2UgaGVscGVyXHJcbiAqL1xyXG5leHBvcnQgbmFtZXNwYWNlIHN0b3JhZ2Uge1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXQoa2V5czogU3RvcmFnZUtleVtdKTogUGFydGlhbDxTdG9yYWdlRGF0YT4ge1xyXG4gICAgY29uc3QgZGF0YTogUGFydGlhbDxTdG9yYWdlRGF0YT4gPSB7fTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3Qgc3RyaW5naWZ5VmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xyXG4gICAgICAgIGlmIChzdHJpbmdpZnlWYWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgdmFsID0gSlNPTi5wYXJzZShzdHJpbmdpZnlWYWx1ZSk7XHJcbiAgICAgICAgICBkYXRhW2tleV0gPSB2YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkdldCBzdG9yYWdlIGZhaWxlZCBpbiBcIiwga2V5LCBlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBzZXQoZGF0YTogUGFydGlhbDxTdG9yYWdlRGF0YT4pIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBzdHJpbmdpZnlWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KGRhdGFba2V5IGFzIFN0b3JhZ2VLZXldKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHN0cmluZ2lmeVZhbHVlKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJTYXZlIHN0b3JhZ2UgZmFpbGVkIGluIFwiLCBrZXksIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZShrZXlzOiBTdG9yYWdlS2V5W10pIHtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIlJlbW92ZSBzdG9yYWdlIGZhaWxlZCBpbiBcIiwga2V5LCBlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBlbWl0U3RvcmFnZUNoYW5nZWRFdmVudCgpIHtcclxuICAgIGNvbnN0IGlmcmFtZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtcclxuICAgIGlmcmFtZUVsLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWwpO1xyXG5cclxuICAgIGlmcmFtZUVsLmNvbnRlbnRXaW5kb3c/LmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwidFwiLCBEYXRlLm5vdygpLnRvU3RyaW5nKCkpO1xyXG4gICAgaWZyYW1lRWwucmVtb3ZlKCk7XHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IHN0b3JhZ2UgfSBmcm9tIFwiLi4vaGVscGVycy9zdG9yYWdlXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCB7IEFwcFNldHRpbmcgfSBmcm9tIFwiLi4vc3RvcmVzL2dsb2JhbFN0YXRlU3RvcmVcIjtcclxuXHJcbmNsYXNzIEdsb2JhbFN0YXRlU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBjYWNoZWRTZXR0aW5nID0gc3RvcmFnZS5nZXQoW1wic2hvdWxkU3BsaXRNZW1vV29yZFwiLCBcInNob3VsZEhpZGVJbWFnZVVybFwiLCBcInNob3VsZFVzZU1hcmtkb3duUGFyc2VyXCIsIFwidXNlVGlueVVuZG9IaXN0b3J5Q2FjaGVcIl0pO1xyXG4gICAgY29uc3QgZGVmYXVsdEFwcFNldHRpbmcgPSB7XHJcbiAgICAgIHNob3VsZFNwbGl0TWVtb1dvcmQ6IGNhY2hlZFNldHRpbmcuc2hvdWxkU3BsaXRNZW1vV29yZCA/PyB0cnVlLFxyXG4gICAgICBzaG91bGRIaWRlSW1hZ2VVcmw6IGNhY2hlZFNldHRpbmcuc2hvdWxkSGlkZUltYWdlVXJsID8/IHRydWUsXHJcbiAgICAgIHNob3VsZFVzZU1hcmtkb3duUGFyc2VyOiBjYWNoZWRTZXR0aW5nLnNob3VsZFVzZU1hcmtkb3duUGFyc2VyID8/IHRydWUsXHJcbiAgICAgIHVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlOiBjYWNoZWRTZXR0aW5nLnVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlID8/IGZhbHNlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNldEFwcFNldHRpbmcoZGVmYXVsdEFwcFNldHRpbmcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0YXRlID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIGFwcFN0b3JlLmdldFN0YXRlKCkuZ2xvYmFsU3RhdGU7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHNldEVkaXRNZW1vSWQgPSAoZWRpdE1lbW9JZDogc3RyaW5nKSA9PiB7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX0VESVRfTUVNT19JRFwiLFxyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZWRpdE1lbW9JZCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBzZXRNYXJrTWVtb0lkID0gKG1hcmtNZW1vSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIlNFVF9NQVJLX01FTU9fSURcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIG1hcmtNZW1vSWQsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0SXNNb2JpbGVWaWV3ID0gKGlzTW9iaWxlVmlldzogYm9vbGVhbikgPT4ge1xyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIlNFVF9NT0JJTEVfVklFV1wiLFxyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgaXNNb2JpbGVWaWV3LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHNldFNob3dTaWRlcmJhckluTW9iaWxlVmlldyA9IChzaG93U2lkZXJiYXJJbk1vYmlsZVZpZXc6IGJvb2xlYW4pID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfU0hPV19TSURFQkFSX0lOX01PQklMRV9WSUVXXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBzaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0QXBwU2V0dGluZyA9IChhcHBTZXR0aW5nOiBQYXJ0aWFsPEFwcFNldHRpbmc+KSA9PiB7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX0FQUF9TRVRUSU5HXCIsXHJcbiAgICAgIHBheWxvYWQ6IGFwcFNldHRpbmcsXHJcbiAgICB9KTtcclxuICAgIHN0b3JhZ2Uuc2V0KGFwcFNldHRpbmcpO1xyXG4gIH07XHJcbn1cclxuXHJcbmNvbnN0IGdsb2JhbFN0YXRlU2VydmljZSA9IG5ldyBHbG9iYWxTdGF0ZVNlcnZpY2UoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGdsb2JhbFN0YXRlU2VydmljZTtcclxuIiwiLy8gaW1wb3J0IHV0aWxzIGZyb20gXCIuLi9oZWxwZXJzL3V0aWxzXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcblxyXG4vLyBjb25zdCB1cGRhdGVMb2NhdGlvblVybCA9IChtZXRob2Q6IFwicmVwbGFjZVwiIHwgXCJwdXNoXCIgPSBcInJlcGxhY2VcIikgPT4ge1xyXG4vLyAgIGNvbnN0IHsgcXVlcnksIHBhdGhuYW1lLCBoYXNoIH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmxvY2F0aW9uU3RhdGU7XHJcbi8vICAgbGV0IHF1ZXJ5U3RyaW5nID0gdXRpbHMudHJhbnNmb3JtT2JqZWN0VG9QYXJhbXNTdHJpbmcocXVlcnkpO1xyXG4vLyAgIGlmIChxdWVyeVN0cmluZykge1xyXG4vLyAgICAgcXVlcnlTdHJpbmcgPSBcIj9cIiArIHF1ZXJ5U3RyaW5nO1xyXG4vLyAgIH0gZWxzZSB7XHJcbi8vICAgICBxdWVyeVN0cmluZyA9IFwiXCI7XHJcbi8vICAgfVxyXG5cclxuLy8gICBpZiAobWV0aG9kID09PSBcInJlcGxhY2VcIikge1xyXG4vLyAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIFwiXCIsIHBhdGhuYW1lICsgaGFzaCArIHF1ZXJ5U3RyaW5nKTtcclxuLy8gICB9IGVsc2Uge1xyXG4vLyAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsIFwiXCIsIHBhdGhuYW1lICsgaGFzaCArIHF1ZXJ5U3RyaW5nKTtcclxuLy8gICB9XHJcbi8vIH07XHJcblxyXG5jbGFzcyBMb2NhdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZVdpdGhMb2NhdGlvbigpO1xyXG4gICAgd2luZG93Lm9ucG9wc3RhdGUgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlU3RhdGVXaXRoTG9jYXRpb24oKTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlU3RhdGVXaXRoTG9jYXRpb24gPSAoKSA9PiB7XHJcbiAgICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2gsIGhhc2ggfSA9IHdpbmRvdy5sb2NhdGlvbjtcclxuICAgIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoc2VhcmNoKTtcclxuICAgIGNvbnN0IHN0YXRlOiBBcHBMb2NhdGlvbiA9IHtcclxuICAgICAgcGF0aG5hbWU6IFwiL1wiLFxyXG4gICAgICBoYXNoOiBcIlwiLFxyXG4gICAgICBxdWVyeToge1xyXG4gICAgICAgIHRhZzogXCJcIixcclxuICAgICAgICBkdXJhdGlvbjogbnVsbCxcclxuICAgICAgICB0ZXh0OiBcIlwiLFxyXG4gICAgICAgIHR5cGU6IFwiXCIsXHJcbiAgICAgICAgZmlsdGVyOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHN0YXRlLnF1ZXJ5LnRhZyA9IHVybFBhcmFtcy5nZXQoXCJ0YWdcIikgPz8gXCJcIjtcclxuICAgIHN0YXRlLnF1ZXJ5LnR5cGUgPSAodXJsUGFyYW1zLmdldChcInR5cGVcIikgPz8gXCJcIikgYXMgTWVtb1NwZWNUeXBlO1xyXG4gICAgc3RhdGUucXVlcnkudGV4dCA9IHVybFBhcmFtcy5nZXQoXCJ0ZXh0XCIpID8/IFwiXCI7XHJcbiAgICBzdGF0ZS5xdWVyeS5maWx0ZXIgPSB1cmxQYXJhbXMuZ2V0KFwiZmlsdGVyXCIpID8/IFwiXCI7XHJcbiAgICBjb25zdCBmcm9tID0gcGFyc2VJbnQodXJsUGFyYW1zLmdldChcImZyb21cIikgPz8gXCIwXCIpO1xyXG4gICAgY29uc3QgdG8gPSBwYXJzZUludCh1cmxQYXJhbXMuZ2V0KFwidG9cIikgPz8gXCIwXCIpO1xyXG4gICAgaWYgKHRvID4gZnJvbSAmJiB0byAhPT0gMCkge1xyXG4gICAgICBzdGF0ZS5xdWVyeS5kdXJhdGlvbiA9IHtcclxuICAgICAgICBmcm9tLFxyXG4gICAgICAgIHRvLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgc3RhdGUuaGFzaCA9IGhhc2g7XHJcbiAgICBzdGF0ZS5wYXRobmFtZSA9IHRoaXMuZ2V0VmFsaWRQYXRobmFtZShwYXRobmFtZSk7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX0xPQ0FUSU9OXCIsXHJcbiAgICAgIHBheWxvYWQ6IHN0YXRlLFxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldFN0YXRlID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIGFwcFN0b3JlLmdldFN0YXRlKCkubG9jYXRpb25TdGF0ZTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgY2xlYXJRdWVyeSA9ICgpID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfUVVFUllcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIHRhZzogXCJcIixcclxuICAgICAgICBkdXJhdGlvbjogbnVsbCxcclxuICAgICAgICB0ZXh0OiBcIlwiLFxyXG4gICAgICAgIHR5cGU6IFwiXCIsXHJcbiAgICAgICAgZmlsdGVyOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0UXVlcnkgPSAocXVlcnk6IFF1ZXJ5KSA9PiB7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX1FVRVJZXCIsXHJcbiAgICAgIHBheWxvYWQ6IHF1ZXJ5LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0SGFzaCA9IChoYXNoOiBzdHJpbmcpID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfSEFTSFwiLFxyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgaGFzaCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHVwZGF0ZUxvY2F0aW9uVXJsKCk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHNldFBhdGhuYW1lID0gKHBhdGhuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfUEFUSE5BTUVcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIHBhdGhuYW1lLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcHVzaEhpc3RvcnkgPSAocGF0aG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIlNFVF9QQVRITkFNRVwiLFxyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgcGF0aG5hbWUsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB1cGRhdGVMb2NhdGlvblVybChcInB1c2hcIik7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHJlcGxhY2VIaXN0b3J5ID0gKHBhdGhuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfUEFUSE5BTUVcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIHBhdGhuYW1lLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoXCJyZXBsYWNlXCIpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBzZXRNZW1vVHlwZVF1ZXJ5ID0gKHR5cGU6IE1lbW9TcGVjVHlwZSB8IFwiXCIgPSBcIlwiKSA9PiB7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX1RZUEVcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB1cGRhdGVMb2NhdGlvblVybCgpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBzZXRNZW1vRmlsdGVyID0gKGZpbHRlcklkOiBzdHJpbmcpID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfUVVFUllfRklMVEVSXCIsXHJcbiAgICAgIHBheWxvYWQ6IGZpbHRlcklkLFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0VGV4dFF1ZXJ5ID0gKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIlNFVF9URVhUXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICB0ZXh0LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0VGFnUXVlcnkgPSAodGFnOiBzdHJpbmcpID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfVEFHX1FVRVJZXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICB0YWcsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB1cGRhdGVMb2NhdGlvblVybCgpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBzZXRGcm9tQW5kVG9RdWVyeSA9IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpID0+IHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJTRVRfRFVSQVRJT05fUVVFUllcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGR1cmF0aW9uOiB7IGZyb20sIHRvIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB1cGRhdGVMb2NhdGlvblVybCgpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXRWYWxpZFBhdGhuYW1lID0gKHBhdGhuYW1lOiBzdHJpbmcpOiBBcHBSb3V0ZXIgPT4ge1xyXG4gICAgaWYgKFtcIi9cIiwgXCIvcmVjeWNsZVwiLCBcIi9zZXR0aW5nXCJdLmluY2x1ZGVzKHBhdGhuYW1lKSkge1xyXG4gICAgICByZXR1cm4gcGF0aG5hbWUgYXMgQXBwUm91dGVyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFwiL1wiO1xyXG4gICAgfVxyXG4gIH07XHJcbn1cclxuXHJcbmNvbnN0IGxvY2F0aW9uU2VydmljZSA9IG5ldyBMb2NhdGlvblNlcnZpY2UoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGxvY2F0aW9uU2VydmljZTtcclxuIiwiLy8hIG1vbWVudC5qc1xuLy8hIHZlcnNpb24gOiAyLjI5LjFcbi8vISBhdXRob3JzIDogVGltIFdvb2QsIElza3JlbiBDaGVybmV2LCBNb21lbnQuanMgY29udHJpYnV0b3JzXG4vLyEgbGljZW5zZSA6IE1JVFxuLy8hIG1vbWVudGpzLmNvbVxuXG52YXIgaG9va0NhbGxiYWNrO1xuXG5mdW5jdGlvbiBob29rcygpIHtcbiAgICByZXR1cm4gaG9va0NhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG59XG5cbi8vIFRoaXMgaXMgZG9uZSB0byByZWdpc3RlciB0aGUgbWV0aG9kIGNhbGxlZCB3aXRoIG1vbWVudCgpXG4vLyB3aXRob3V0IGNyZWF0aW5nIGNpcmN1bGFyIGRlcGVuZGVuY2llcy5cbmZ1bmN0aW9uIHNldEhvb2tDYWxsYmFjayhjYWxsYmFjaykge1xuICAgIGhvb2tDYWxsYmFjayA9IGNhbGxiYWNrO1xufVxuXG5mdW5jdGlvbiBpc0FycmF5KGlucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgaW5wdXQgaW5zdGFuY2VvZiBBcnJheSB8fFxuICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBBcnJheV0nXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoaW5wdXQpIHtcbiAgICAvLyBJRTggd2lsbCB0cmVhdCB1bmRlZmluZWQgYW5kIG51bGwgYXMgb2JqZWN0IGlmIGl0IHdhc24ndCBmb3JcbiAgICAvLyBpbnB1dCAhPSBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgICAgaW5wdXQgIT0gbnVsbCAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBPYmplY3RdJ1xuICAgICk7XG59XG5cbmZ1bmN0aW9uIGhhc093blByb3AoYSwgYikge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgYik7XG59XG5cbmZ1bmN0aW9uIGlzT2JqZWN0RW1wdHkob2JqKSB7XG4gICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLmxlbmd0aCA9PT0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgaztcbiAgICAgICAgZm9yIChrIGluIG9iaikge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3Aob2JqLCBrKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKGlucHV0KSB7XG4gICAgcmV0dXJuIGlucHV0ID09PSB2b2lkIDA7XG59XG5cbmZ1bmN0aW9uIGlzTnVtYmVyKGlucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyB8fFxuICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBOdW1iZXJdJ1xuICAgICk7XG59XG5cbmZ1bmN0aW9uIGlzRGF0ZShpbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICAgIGlucHV0IGluc3RhbmNlb2YgRGF0ZSB8fFxuICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBEYXRlXSdcbiAgICApO1xufVxuXG5mdW5jdGlvbiBtYXAoYXJyLCBmbikge1xuICAgIHZhciByZXMgPSBbXSxcbiAgICAgICAgaTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHJlcy5wdXNoKGZuKGFycltpXSwgaSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuXG5mdW5jdGlvbiBleHRlbmQoYSwgYikge1xuICAgIGZvciAodmFyIGkgaW4gYikge1xuICAgICAgICBpZiAoaGFzT3duUHJvcChiLCBpKSkge1xuICAgICAgICAgICAgYVtpXSA9IGJbaV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzT3duUHJvcChiLCAndG9TdHJpbmcnKSkge1xuICAgICAgICBhLnRvU3RyaW5nID0gYi50b1N0cmluZztcbiAgICB9XG5cbiAgICBpZiAoaGFzT3duUHJvcChiLCAndmFsdWVPZicpKSB7XG4gICAgICAgIGEudmFsdWVPZiA9IGIudmFsdWVPZjtcbiAgICB9XG5cbiAgICByZXR1cm4gYTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgcmV0dXJuIGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIHRydWUpLnV0YygpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0UGFyc2luZ0ZsYWdzKCkge1xuICAgIC8vIFdlIG5lZWQgdG8gZGVlcCBjbG9uZSB0aGlzIG9iamVjdC5cbiAgICByZXR1cm4ge1xuICAgICAgICBlbXB0eTogZmFsc2UsXG4gICAgICAgIHVudXNlZFRva2VuczogW10sXG4gICAgICAgIHVudXNlZElucHV0OiBbXSxcbiAgICAgICAgb3ZlcmZsb3c6IC0yLFxuICAgICAgICBjaGFyc0xlZnRPdmVyOiAwLFxuICAgICAgICBudWxsSW5wdXQ6IGZhbHNlLFxuICAgICAgICBpbnZhbGlkRXJhOiBudWxsLFxuICAgICAgICBpbnZhbGlkTW9udGg6IG51bGwsXG4gICAgICAgIGludmFsaWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgICB1c2VySW52YWxpZGF0ZWQ6IGZhbHNlLFxuICAgICAgICBpc286IGZhbHNlLFxuICAgICAgICBwYXJzZWREYXRlUGFydHM6IFtdLFxuICAgICAgICBlcmE6IG51bGwsXG4gICAgICAgIG1lcmlkaWVtOiBudWxsLFxuICAgICAgICByZmMyODIyOiBmYWxzZSxcbiAgICAgICAgd2Vla2RheU1pc21hdGNoOiBmYWxzZSxcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQYXJzaW5nRmxhZ3MobSkge1xuICAgIGlmIChtLl9wZiA9PSBudWxsKSB7XG4gICAgICAgIG0uX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpO1xuICAgIH1cbiAgICByZXR1cm4gbS5fcGY7XG59XG5cbnZhciBzb21lO1xuaWYgKEFycmF5LnByb3RvdHlwZS5zb21lKSB7XG4gICAgc29tZSA9IEFycmF5LnByb3RvdHlwZS5zb21lO1xufSBlbHNlIHtcbiAgICBzb21lID0gZnVuY3Rpb24gKGZ1bikge1xuICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKSxcbiAgICAgICAgICAgIGxlbiA9IHQubGVuZ3RoID4+PiAwLFxuICAgICAgICAgICAgaTtcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpIGluIHQgJiYgZnVuLmNhbGwodGhpcywgdFtpXSwgaSwgdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkKG0pIHtcbiAgICBpZiAobS5faXNWYWxpZCA9PSBudWxsKSB7XG4gICAgICAgIHZhciBmbGFncyA9IGdldFBhcnNpbmdGbGFncyhtKSxcbiAgICAgICAgICAgIHBhcnNlZFBhcnRzID0gc29tZS5jYWxsKGZsYWdzLnBhcnNlZERhdGVQYXJ0cywgZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaSAhPSBudWxsO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBpc05vd1ZhbGlkID1cbiAgICAgICAgICAgICAgICAhaXNOYU4obS5fZC5nZXRUaW1lKCkpICYmXG4gICAgICAgICAgICAgICAgZmxhZ3Mub3ZlcmZsb3cgPCAwICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmVtcHR5ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRFcmEgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZE1vbnRoICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRXZWVrZGF5ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLndlZWtkYXlNaXNtYXRjaCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy5udWxsSW5wdXQgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZEZvcm1hdCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy51c2VySW52YWxpZGF0ZWQgJiZcbiAgICAgICAgICAgICAgICAoIWZsYWdzLm1lcmlkaWVtIHx8IChmbGFncy5tZXJpZGllbSAmJiBwYXJzZWRQYXJ0cykpO1xuXG4gICAgICAgIGlmIChtLl9zdHJpY3QpIHtcbiAgICAgICAgICAgIGlzTm93VmFsaWQgPVxuICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgJiZcbiAgICAgICAgICAgICAgICBmbGFncy5jaGFyc0xlZnRPdmVyID09PSAwICYmXG4gICAgICAgICAgICAgICAgZmxhZ3MudW51c2VkVG9rZW5zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgICAgIGZsYWdzLmJpZ0hvdXIgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChPYmplY3QuaXNGcm96ZW4gPT0gbnVsbCB8fCAhT2JqZWN0LmlzRnJvemVuKG0pKSB7XG4gICAgICAgICAgICBtLl9pc1ZhbGlkID0gaXNOb3dWYWxpZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpc05vd1ZhbGlkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtLl9pc1ZhbGlkO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVJbnZhbGlkKGZsYWdzKSB7XG4gICAgdmFyIG0gPSBjcmVhdGVVVEMoTmFOKTtcbiAgICBpZiAoZmxhZ3MgIT0gbnVsbCkge1xuICAgICAgICBleHRlbmQoZ2V0UGFyc2luZ0ZsYWdzKG0pLCBmbGFncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLnVzZXJJbnZhbGlkYXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG07XG59XG5cbi8vIFBsdWdpbnMgdGhhdCBhZGQgcHJvcGVydGllcyBzaG91bGQgYWxzbyBhZGQgdGhlIGtleSBoZXJlIChudWxsIHZhbHVlKSxcbi8vIHNvIHdlIGNhbiBwcm9wZXJseSBjbG9uZSBvdXJzZWx2ZXMuXG52YXIgbW9tZW50UHJvcGVydGllcyA9IChob29rcy5tb21lbnRQcm9wZXJ0aWVzID0gW10pLFxuICAgIHVwZGF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuZnVuY3Rpb24gY29weUNvbmZpZyh0bywgZnJvbSkge1xuICAgIHZhciBpLCBwcm9wLCB2YWw7XG5cbiAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzQU1vbWVudE9iamVjdCkpIHtcbiAgICAgICAgdG8uX2lzQU1vbWVudE9iamVjdCA9IGZyb20uX2lzQU1vbWVudE9iamVjdDtcbiAgICB9XG4gICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pKSkge1xuICAgICAgICB0by5faSA9IGZyb20uX2k7XG4gICAgfVxuICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fZikpIHtcbiAgICAgICAgdG8uX2YgPSBmcm9tLl9mO1xuICAgIH1cbiAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2wpKSB7XG4gICAgICAgIHRvLl9sID0gZnJvbS5fbDtcbiAgICB9XG4gICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9zdHJpY3QpKSB7XG4gICAgICAgIHRvLl9zdHJpY3QgPSBmcm9tLl9zdHJpY3Q7XG4gICAgfVxuICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fdHptKSkge1xuICAgICAgICB0by5fdHptID0gZnJvbS5fdHptO1xuICAgIH1cbiAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzVVRDKSkge1xuICAgICAgICB0by5faXNVVEMgPSBmcm9tLl9pc1VUQztcbiAgICB9XG4gICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9vZmZzZXQpKSB7XG4gICAgICAgIHRvLl9vZmZzZXQgPSBmcm9tLl9vZmZzZXQ7XG4gICAgfVxuICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fcGYpKSB7XG4gICAgICAgIHRvLl9wZiA9IGdldFBhcnNpbmdGbGFncyhmcm9tKTtcbiAgICB9XG4gICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9sb2NhbGUpKSB7XG4gICAgICAgIHRvLl9sb2NhbGUgPSBmcm9tLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgaWYgKG1vbWVudFByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbW9tZW50UHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcHJvcCA9IG1vbWVudFByb3BlcnRpZXNbaV07XG4gICAgICAgICAgICB2YWwgPSBmcm9tW3Byb3BdO1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2YWwpKSB7XG4gICAgICAgICAgICAgICAgdG9bcHJvcF0gPSB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG87XG59XG5cbi8vIE1vbWVudCBwcm90b3R5cGUgb2JqZWN0XG5mdW5jdGlvbiBNb21lbnQoY29uZmlnKSB7XG4gICAgY29weUNvbmZpZyh0aGlzLCBjb25maWcpO1xuICAgIHRoaXMuX2QgPSBuZXcgRGF0ZShjb25maWcuX2QgIT0gbnVsbCA/IGNvbmZpZy5fZC5nZXRUaW1lKCkgOiBOYU4pO1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgdGhpcy5fZCA9IG5ldyBEYXRlKE5hTik7XG4gICAgfVxuICAgIC8vIFByZXZlbnQgaW5maW5pdGUgbG9vcCBpbiBjYXNlIHVwZGF0ZU9mZnNldCBjcmVhdGVzIG5ldyBtb21lbnRcbiAgICAvLyBvYmplY3RzLlxuICAgIGlmICh1cGRhdGVJblByb2dyZXNzID09PSBmYWxzZSkge1xuICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBpc01vbWVudChvYmopIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBvYmogaW5zdGFuY2VvZiBNb21lbnQgfHwgKG9iaiAhPSBudWxsICYmIG9iai5faXNBTW9tZW50T2JqZWN0ICE9IG51bGwpXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gd2Fybihtc2cpIHtcbiAgICBpZiAoXG4gICAgICAgIGhvb2tzLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9PT0gZmFsc2UgJiZcbiAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIGNvbnNvbGUud2FyblxuICAgICkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0RlcHJlY2F0aW9uIHdhcm5pbmc6ICcgKyBtc2cpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZGVwcmVjYXRlKG1zZywgZm4pIHtcbiAgICB2YXIgZmlyc3RUaW1lID0gdHJ1ZTtcblxuICAgIHJldHVybiBleHRlbmQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlcihudWxsLCBtc2cpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaXJzdFRpbWUpIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gW10sXG4gICAgICAgICAgICAgICAgYXJnLFxuICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAga2V5O1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGFyZyA9ICcnO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYXJndW1lbnRzW2ldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBhcmcgKz0gJ1xcblsnICsgaSArICddICc7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoa2V5IGluIGFyZ3VtZW50c1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc093blByb3AoYXJndW1lbnRzWzBdLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnICs9IGtleSArICc6ICcgKyBhcmd1bWVudHNbMF1ba2V5XSArICcsICc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGNvbW1hIGFuZCBzcGFjZVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXJncy5wdXNoKGFyZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgICAgIG1zZyArXG4gICAgICAgICAgICAgICAgICAgICdcXG5Bcmd1bWVudHM6ICcgK1xuICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKS5qb2luKCcnKSArXG4gICAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICAgbmV3IEVycm9yKCkuc3RhY2tcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaXJzdFRpbWUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9LCBmbik7XG59XG5cbnZhciBkZXByZWNhdGlvbnMgPSB7fTtcblxuZnVuY3Rpb24gZGVwcmVjYXRlU2ltcGxlKG5hbWUsIG1zZykge1xuICAgIGlmIChob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgIT0gbnVsbCkge1xuICAgICAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIobmFtZSwgbXNnKTtcbiAgICB9XG4gICAgaWYgKCFkZXByZWNhdGlvbnNbbmFtZV0pIHtcbiAgICAgICAgd2Fybihtc2cpO1xuICAgICAgICBkZXByZWNhdGlvbnNbbmFtZV0gPSB0cnVlO1xuICAgIH1cbn1cblxuaG9va3Muc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID0gZmFsc2U7XG5ob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgPSBudWxsO1xuXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGlucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHR5cGVvZiBGdW5jdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgaW5wdXQgaW5zdGFuY2VvZiBGdW5jdGlvbikgfHxcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJ1xuICAgICk7XG59XG5cbmZ1bmN0aW9uIHNldChjb25maWcpIHtcbiAgICB2YXIgcHJvcCwgaTtcbiAgICBmb3IgKGkgaW4gY29uZmlnKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wKGNvbmZpZywgaSkpIHtcbiAgICAgICAgICAgIHByb3AgPSBjb25maWdbaV07XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihwcm9wKSkge1xuICAgICAgICAgICAgICAgIHRoaXNbaV0gPSBwcm9wO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzWydfJyArIGldID0gcHJvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgLy8gTGVuaWVudCBvcmRpbmFsIHBhcnNpbmcgYWNjZXB0cyBqdXN0IGEgbnVtYmVyIGluIGFkZGl0aW9uIHRvXG4gICAgLy8gbnVtYmVyICsgKHBvc3NpYmx5KSBzdHVmZiBjb21pbmcgZnJvbSBfZGF5T2ZNb250aE9yZGluYWxQYXJzZS5cbiAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgdGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQgPSBuZXcgUmVnRXhwKFxuICAgICAgICAodGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZS5zb3VyY2UgfHwgdGhpcy5fb3JkaW5hbFBhcnNlLnNvdXJjZSkgK1xuICAgICAgICAgICAgJ3wnICtcbiAgICAgICAgICAgIC9cXGR7MSwyfS8uc291cmNlXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY2hpbGRDb25maWcpIHtcbiAgICB2YXIgcmVzID0gZXh0ZW5kKHt9LCBwYXJlbnRDb25maWcpLFxuICAgICAgICBwcm9wO1xuICAgIGZvciAocHJvcCBpbiBjaGlsZENvbmZpZykge1xuICAgICAgICBpZiAoaGFzT3duUHJvcChjaGlsZENvbmZpZywgcHJvcCkpIHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdChwYXJlbnRDb25maWdbcHJvcF0pICYmIGlzT2JqZWN0KGNoaWxkQ29uZmlnW3Byb3BdKSkge1xuICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHt9O1xuICAgICAgICAgICAgICAgIGV4dGVuZChyZXNbcHJvcF0sIHBhcmVudENvbmZpZ1twcm9wXSk7XG4gICAgICAgICAgICAgICAgZXh0ZW5kKHJlc1twcm9wXSwgY2hpbGRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZENvbmZpZ1twcm9wXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gY2hpbGRDb25maWdbcHJvcF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNbcHJvcF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yIChwcm9wIGluIHBhcmVudENvbmZpZykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBoYXNPd25Qcm9wKHBhcmVudENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICFoYXNPd25Qcm9wKGNoaWxkQ29uZmlnLCBwcm9wKSAmJlxuICAgICAgICAgICAgaXNPYmplY3QocGFyZW50Q29uZmlnW3Byb3BdKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBjaGFuZ2VzIHRvIHByb3BlcnRpZXMgZG9uJ3QgbW9kaWZ5IHBhcmVudCBjb25maWdcbiAgICAgICAgICAgIHJlc1twcm9wXSA9IGV4dGVuZCh7fSwgcmVzW3Byb3BdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuXG5mdW5jdGlvbiBMb2NhbGUoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0KGNvbmZpZyk7XG4gICAgfVxufVxuXG52YXIga2V5cztcblxuaWYgKE9iamVjdC5rZXlzKSB7XG4gICAga2V5cyA9IE9iamVjdC5rZXlzO1xufSBlbHNlIHtcbiAgICBrZXlzID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGkgaW4gb2JqKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGkpKSB7XG4gICAgICAgICAgICAgICAgcmVzLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xufVxuXG52YXIgZGVmYXVsdENhbGVuZGFyID0ge1xuICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICBzYW1lRWxzZTogJ0wnLFxufTtcblxuZnVuY3Rpb24gY2FsZW5kYXIoa2V5LCBtb20sIG5vdykge1xuICAgIHZhciBvdXRwdXQgPSB0aGlzLl9jYWxlbmRhcltrZXldIHx8IHRoaXMuX2NhbGVuZGFyWydzYW1lRWxzZSddO1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKG91dHB1dCkgPyBvdXRwdXQuY2FsbChtb20sIG5vdykgOiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIHplcm9GaWxsKG51bWJlciwgdGFyZ2V0TGVuZ3RoLCBmb3JjZVNpZ24pIHtcbiAgICB2YXIgYWJzTnVtYmVyID0gJycgKyBNYXRoLmFicyhudW1iZXIpLFxuICAgICAgICB6ZXJvc1RvRmlsbCA9IHRhcmdldExlbmd0aCAtIGFic051bWJlci5sZW5ndGgsXG4gICAgICAgIHNpZ24gPSBudW1iZXIgPj0gMDtcbiAgICByZXR1cm4gKFxuICAgICAgICAoc2lnbiA/IChmb3JjZVNpZ24gPyAnKycgOiAnJykgOiAnLScpICtcbiAgICAgICAgTWF0aC5wb3coMTAsIE1hdGgubWF4KDAsIHplcm9zVG9GaWxsKSkudG9TdHJpbmcoKS5zdWJzdHIoMSkgK1xuICAgICAgICBhYnNOdW1iZXJcbiAgICApO1xufVxuXG52YXIgZm9ybWF0dGluZ1Rva2VucyA9IC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhbSGhdbW0oc3MpP3xNb3xNTT9NP00/fERvfERERG98REQ/RD9EP3xkZGQ/ZD98ZG8/fHdbb3x3XT98V1tvfFddP3xRbz98TnsxLDV9fFlZWVlZWXxZWVlZWXxZWVlZfFlZfHl7Miw0fXx5bz98Z2coZ2dnPyk/fEdHKEdHRz8pP3xlfEV8YXxBfGhoP3xISD98a2s/fG1tP3xzcz98U3sxLDl9fHh8WHx6ej98Wlo/fC4pL2csXG4gICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zID0gLyhcXFtbXlxcW10qXFxdKXwoXFxcXCk/KExUU3xMVHxMTD9MP0w/fGx7MSw0fSkvZyxcbiAgICBmb3JtYXRGdW5jdGlvbnMgPSB7fSxcbiAgICBmb3JtYXRUb2tlbkZ1bmN0aW9ucyA9IHt9O1xuXG4vLyB0b2tlbjogICAgJ00nXG4vLyBwYWRkZWQ6ICAgWydNTScsIDJdXG4vLyBvcmRpbmFsOiAgJ01vJ1xuLy8gY2FsbGJhY2s6IGZ1bmN0aW9uICgpIHsgdGhpcy5tb250aCgpICsgMSB9XG5mdW5jdGlvbiBhZGRGb3JtYXRUb2tlbih0b2tlbiwgcGFkZGVkLCBvcmRpbmFsLCBjYWxsYmFjaykge1xuICAgIHZhciBmdW5jID0gY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzW2NhbGxiYWNrXSgpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dID0gZnVuYztcbiAgICB9XG4gICAgaWYgKHBhZGRlZCkge1xuICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1twYWRkZWRbMF1dID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHplcm9GaWxsKGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgcGFkZGVkWzFdLCBwYWRkZWRbMl0pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAob3JkaW5hbCkge1xuICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1tvcmRpbmFsXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5vcmRpbmFsKFxuICAgICAgICAgICAgICAgIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSxcbiAgICAgICAgICAgICAgICB0b2tlblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoaW5wdXQpIHtcbiAgICBpZiAoaW5wdXQubWF0Y2goL1xcW1tcXHNcXFNdLykpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL15cXFt8XFxdJC9nLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXFxcL2csICcnKTtcbn1cblxuZnVuY3Rpb24gbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCkge1xuICAgIHZhciBhcnJheSA9IGZvcm1hdC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSxcbiAgICAgICAgaSxcbiAgICAgICAgbGVuZ3RoO1xuXG4gICAgZm9yIChpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXSkge1xuICAgICAgICAgICAgYXJyYXlbaV0gPSBmb3JtYXRUb2tlbkZ1bmN0aW9uc1thcnJheVtpXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcnJheVtpXSA9IHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoYXJyYXlbaV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtb20pIHtcbiAgICAgICAgdmFyIG91dHB1dCA9ICcnLFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gaXNGdW5jdGlvbihhcnJheVtpXSlcbiAgICAgICAgICAgICAgICA/IGFycmF5W2ldLmNhbGwobW9tLCBmb3JtYXQpXG4gICAgICAgICAgICAgICAgOiBhcnJheVtpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH07XG59XG5cbi8vIGZvcm1hdCBkYXRlIHVzaW5nIG5hdGl2ZSBkYXRlIG9iamVjdFxuZnVuY3Rpb24gZm9ybWF0TW9tZW50KG0sIGZvcm1hdCkge1xuICAgIGlmICghbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIG0ubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgfVxuXG4gICAgZm9ybWF0ID0gZXhwYW5kRm9ybWF0KGZvcm1hdCwgbS5sb2NhbGVEYXRhKCkpO1xuICAgIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdID1cbiAgICAgICAgZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gfHwgbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCk7XG5cbiAgICByZXR1cm4gZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0obSk7XG59XG5cbmZ1bmN0aW9uIGV4cGFuZEZvcm1hdChmb3JtYXQsIGxvY2FsZSkge1xuICAgIHZhciBpID0gNTtcblxuICAgIGZ1bmN0aW9uIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2VucyhpbnB1dCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLmxvbmdEYXRlRm9ybWF0KGlucHV0KSB8fCBpbnB1dDtcbiAgICB9XG5cbiAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMubGFzdEluZGV4ID0gMDtcbiAgICB3aGlsZSAoaSA+PSAwICYmIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMsXG4gICAgICAgICAgICByZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnNcbiAgICAgICAgKTtcbiAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGkgLT0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybWF0O1xufVxuXG52YXIgZGVmYXVsdExvbmdEYXRlRm9ybWF0ID0ge1xuICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgTFQ6ICdoOm1tIEEnLFxuICAgIEw6ICdNTS9ERC9ZWVlZJyxcbiAgICBMTDogJ01NTU0gRCwgWVlZWScsXG4gICAgTExMOiAnTU1NTSBELCBZWVlZIGg6bW0gQScsXG4gICAgTExMTDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnLFxufTtcblxuZnVuY3Rpb24gbG9uZ0RhdGVGb3JtYXQoa2V5KSB7XG4gICAgdmFyIGZvcm1hdCA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0sXG4gICAgICAgIGZvcm1hdFVwcGVyID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5LnRvVXBwZXJDYXNlKCldO1xuXG4gICAgaWYgKGZvcm1hdCB8fCAhZm9ybWF0VXBwZXIpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldID0gZm9ybWF0VXBwZXJcbiAgICAgICAgLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpXG4gICAgICAgIC5tYXAoZnVuY3Rpb24gKHRvaykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRvayA9PT0gJ01NTU0nIHx8XG4gICAgICAgICAgICAgICAgdG9rID09PSAnTU0nIHx8XG4gICAgICAgICAgICAgICAgdG9rID09PSAnREQnIHx8XG4gICAgICAgICAgICAgICAgdG9rID09PSAnZGRkZCdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b2suc2xpY2UoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9rO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbignJyk7XG5cbiAgICByZXR1cm4gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XTtcbn1cblxudmFyIGRlZmF1bHRJbnZhbGlkRGF0ZSA9ICdJbnZhbGlkIGRhdGUnO1xuXG5mdW5jdGlvbiBpbnZhbGlkRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7XG59XG5cbnZhciBkZWZhdWx0T3JkaW5hbCA9ICclZCcsXG4gICAgZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UgPSAvXFxkezEsMn0vO1xuXG5mdW5jdGlvbiBvcmRpbmFsKG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLl9vcmRpbmFsLnJlcGxhY2UoJyVkJywgbnVtYmVyKTtcbn1cblxudmFyIGRlZmF1bHRSZWxhdGl2ZVRpbWUgPSB7XG4gICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICBzczogJyVkIHNlY29uZHMnLFxuICAgIG06ICdhIG1pbnV0ZScsXG4gICAgbW06ICclZCBtaW51dGVzJyxcbiAgICBoOiAnYW4gaG91cicsXG4gICAgaGg6ICclZCBob3VycycsXG4gICAgZDogJ2EgZGF5JyxcbiAgICBkZDogJyVkIGRheXMnLFxuICAgIHc6ICdhIHdlZWsnLFxuICAgIHd3OiAnJWQgd2Vla3MnLFxuICAgIE06ICdhIG1vbnRoJyxcbiAgICBNTTogJyVkIG1vbnRocycsXG4gICAgeTogJ2EgeWVhcicsXG4gICAgeXk6ICclZCB5ZWFycycsXG59O1xuXG5mdW5jdGlvbiByZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgdmFyIG91dHB1dCA9IHRoaXMuX3JlbGF0aXZlVGltZVtzdHJpbmddO1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKG91dHB1dClcbiAgICAgICAgPyBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKVxuICAgICAgICA6IG91dHB1dC5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xufVxuXG5mdW5jdGlvbiBwYXN0RnV0dXJlKGRpZmYsIG91dHB1dCkge1xuICAgIHZhciBmb3JtYXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbZGlmZiA+IDAgPyAnZnV0dXJlJyA6ICdwYXN0J107XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZm9ybWF0KSA/IGZvcm1hdChvdXRwdXQpIDogZm9ybWF0LnJlcGxhY2UoLyVzL2ksIG91dHB1dCk7XG59XG5cbnZhciBhbGlhc2VzID0ge307XG5cbmZ1bmN0aW9uIGFkZFVuaXRBbGlhcyh1bml0LCBzaG9ydGhhbmQpIHtcbiAgICB2YXIgbG93ZXJDYXNlID0gdW5pdC50b0xvd2VyQ2FzZSgpO1xuICAgIGFsaWFzZXNbbG93ZXJDYXNlXSA9IGFsaWFzZXNbbG93ZXJDYXNlICsgJ3MnXSA9IGFsaWFzZXNbc2hvcnRoYW5kXSA9IHVuaXQ7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB1bml0cyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBhbGlhc2VzW3VuaXRzXSB8fCBhbGlhc2VzW3VuaXRzLnRvTG93ZXJDYXNlKCldXG4gICAgICAgIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVPYmplY3RVbml0cyhpbnB1dE9iamVjdCkge1xuICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSB7fSxcbiAgICAgICAgbm9ybWFsaXplZFByb3AsXG4gICAgICAgIHByb3A7XG5cbiAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHtcbiAgICAgICAgaWYgKGhhc093blByb3AoaW5wdXRPYmplY3QsIHByb3ApKSB7XG4gICAgICAgICAgICBub3JtYWxpemVkUHJvcCA9IG5vcm1hbGl6ZVVuaXRzKHByb3ApO1xuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZElucHV0W25vcm1hbGl6ZWRQcm9wXSA9IGlucHV0T2JqZWN0W3Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRJbnB1dDtcbn1cblxudmFyIHByaW9yaXRpZXMgPSB7fTtcblxuZnVuY3Rpb24gYWRkVW5pdFByaW9yaXR5KHVuaXQsIHByaW9yaXR5KSB7XG4gICAgcHJpb3JpdGllc1t1bml0XSA9IHByaW9yaXR5O1xufVxuXG5mdW5jdGlvbiBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzT2JqKSB7XG4gICAgdmFyIHVuaXRzID0gW10sXG4gICAgICAgIHU7XG4gICAgZm9yICh1IGluIHVuaXRzT2JqKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wKHVuaXRzT2JqLCB1KSkge1xuICAgICAgICAgICAgdW5pdHMucHVzaCh7IHVuaXQ6IHUsIHByaW9yaXR5OiBwcmlvcml0aWVzW3VdIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVuaXRzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIGEucHJpb3JpdHkgLSBiLnByaW9yaXR5O1xuICAgIH0pO1xuICAgIHJldHVybiB1bml0cztcbn1cblxuZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7XG4gICAgcmV0dXJuICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKSB8fCB5ZWFyICUgNDAwID09PSAwO1xufVxuXG5mdW5jdGlvbiBhYnNGbG9vcihudW1iZXIpIHtcbiAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAvLyAtMCAtPiAwXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKSB8fCAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB0b0ludChhcmd1bWVudEZvckNvZXJjaW9uKSB7XG4gICAgdmFyIGNvZXJjZWROdW1iZXIgPSArYXJndW1lbnRGb3JDb2VyY2lvbixcbiAgICAgICAgdmFsdWUgPSAwO1xuXG4gICAgaWYgKGNvZXJjZWROdW1iZXIgIT09IDAgJiYgaXNGaW5pdGUoY29lcmNlZE51bWJlcikpIHtcbiAgICAgICAgdmFsdWUgPSBhYnNGbG9vcihjb2VyY2VkTnVtYmVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIG1ha2VHZXRTZXQodW5pdCwga2VlcFRpbWUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBzZXQkMSh0aGlzLCB1bml0LCB2YWx1ZSk7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywga2VlcFRpbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsIHVuaXQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0KG1vbSwgdW5pdCkge1xuICAgIHJldHVybiBtb20uaXNWYWxpZCgpXG4gICAgICAgID8gbW9tLl9kWydnZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKClcbiAgICAgICAgOiBOYU47XG59XG5cbmZ1bmN0aW9uIHNldCQxKG1vbSwgdW5pdCwgdmFsdWUpIHtcbiAgICBpZiAobW9tLmlzVmFsaWQoKSAmJiAhaXNOYU4odmFsdWUpKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHVuaXQgPT09ICdGdWxsWWVhcicgJiZcbiAgICAgICAgICAgIGlzTGVhcFllYXIobW9tLnllYXIoKSkgJiZcbiAgICAgICAgICAgIG1vbS5tb250aCgpID09PSAxICYmXG4gICAgICAgICAgICBtb20uZGF0ZSgpID09PSAyOVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIG1vbS5tb250aCgpLFxuICAgICAgICAgICAgICAgIGRheXNJbk1vbnRoKHZhbHVlLCBtb20ubW9udGgoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0odmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBNT01FTlRTXG5cbmZ1bmN0aW9uIHN0cmluZ0dldCh1bml0cykge1xuICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICByZXR1cm4gdGhpc1t1bml0c10oKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ1NldCh1bml0cywgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHVuaXRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKHVuaXRzKTtcbiAgICAgICAgdmFyIHByaW9yaXRpemVkID0gZ2V0UHJpb3JpdGl6ZWRVbml0cyh1bml0cyksXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcHJpb3JpdGl6ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXNbcHJpb3JpdGl6ZWRbaV0udW5pdF0odW5pdHNbcHJpb3JpdGl6ZWRbaV0udW5pdF0pO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbn1cblxudmFyIG1hdGNoMSA9IC9cXGQvLCAvLyAgICAgICAwIC0gOVxuICAgIG1hdGNoMiA9IC9cXGRcXGQvLCAvLyAgICAgIDAwIC0gOTlcbiAgICBtYXRjaDMgPSAvXFxkezN9LywgLy8gICAgIDAwMCAtIDk5OVxuICAgIG1hdGNoNCA9IC9cXGR7NH0vLCAvLyAgICAwMDAwIC0gOTk5OVxuICAgIG1hdGNoNiA9IC9bKy1dP1xcZHs2fS8sIC8vIC05OTk5OTkgLSA5OTk5OTlcbiAgICBtYXRjaDF0bzIgPSAvXFxkXFxkPy8sIC8vICAgICAgIDAgLSA5OVxuICAgIG1hdGNoM3RvNCA9IC9cXGRcXGRcXGRcXGQ/LywgLy8gICAgIDk5OSAtIDk5OTlcbiAgICBtYXRjaDV0bzYgPSAvXFxkXFxkXFxkXFxkXFxkXFxkPy8sIC8vICAgOTk5OTkgLSA5OTk5OTlcbiAgICBtYXRjaDF0bzMgPSAvXFxkezEsM30vLCAvLyAgICAgICAwIC0gOTk5XG4gICAgbWF0Y2gxdG80ID0gL1xcZHsxLDR9LywgLy8gICAgICAgMCAtIDk5OTlcbiAgICBtYXRjaDF0bzYgPSAvWystXT9cXGR7MSw2fS8sIC8vIC05OTk5OTkgLSA5OTk5OTlcbiAgICBtYXRjaFVuc2lnbmVkID0gL1xcZCsvLCAvLyAgICAgICAwIC0gaW5mXG4gICAgbWF0Y2hTaWduZWQgPSAvWystXT9cXGQrLywgLy8gICAgLWluZiAtIGluZlxuICAgIG1hdGNoT2Zmc2V0ID0gL1p8WystXVxcZFxcZDo/XFxkXFxkL2dpLCAvLyArMDA6MDAgLTAwOjAwICswMDAwIC0wMDAwIG9yIFpcbiAgICBtYXRjaFNob3J0T2Zmc2V0ID0gL1p8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8vZ2ksIC8vICswMCAtMDAgKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgbWF0Y2hUaW1lc3RhbXAgPSAvWystXT9cXGQrKFxcLlxcZHsxLDN9KT8vLCAvLyAxMjM0NTY3ODkgMTIzNDU2Nzg5LjEyM1xuICAgIC8vIGFueSB3b3JkIChvciB0d28pIGNoYXJhY3RlcnMgb3IgbnVtYmVycyBpbmNsdWRpbmcgdHdvL3RocmVlIHdvcmQgbW9udGggaW4gYXJhYmljLlxuICAgIC8vIGluY2x1ZGVzIHNjb3R0aXNoIGdhZWxpYyB0d28gd29yZCBhbmQgaHlwaGVuYXRlZCBtb250aHNcbiAgICBtYXRjaFdvcmQgPSAvWzAtOV17MCwyNTZ9WydhLXpcXHUwMEEwLVxcdTA1RkZcXHUwNzAwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGMDdcXHVGRjEwLVxcdUZGRUZdezEsMjU2fXxbXFx1MDYwMC1cXHUwNkZGXFwvXXsxLDI1Nn0oXFxzKj9bXFx1MDYwMC1cXHUwNkZGXXsxLDI1Nn0pezEsMn0vaSxcbiAgICByZWdleGVzO1xuXG5yZWdleGVzID0ge307XG5cbmZ1bmN0aW9uIGFkZFJlZ2V4VG9rZW4odG9rZW4sIHJlZ2V4LCBzdHJpY3RSZWdleCkge1xuICAgIHJlZ2V4ZXNbdG9rZW5dID0gaXNGdW5jdGlvbihyZWdleClcbiAgICAgICAgPyByZWdleFxuICAgICAgICA6IGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlRGF0YSkge1xuICAgICAgICAgICAgICByZXR1cm4gaXNTdHJpY3QgJiYgc3RyaWN0UmVnZXggPyBzdHJpY3RSZWdleCA6IHJlZ2V4O1xuICAgICAgICAgIH07XG59XG5cbmZ1bmN0aW9uIGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSB7XG4gICAgaWYgKCFoYXNPd25Qcm9wKHJlZ2V4ZXMsIHRva2VuKSkge1xuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCh1bmVzY2FwZUZvcm1hdCh0b2tlbikpO1xuICAgIH1cblxuICAgIHJldHVybiByZWdleGVzW3Rva2VuXShjb25maWcuX3N0cmljdCwgY29uZmlnLl9sb2NhbGUpO1xufVxuXG4vLyBDb2RlIGZyb20gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNTYxNDkzL2lzLXRoZXJlLWEtcmVnZXhwLWVzY2FwZS1mdW5jdGlvbi1pbi1qYXZhc2NyaXB0XG5mdW5jdGlvbiB1bmVzY2FwZUZvcm1hdChzKSB7XG4gICAgcmV0dXJuIHJlZ2V4RXNjYXBlKFxuICAgICAgICBzXG4gICAgICAgICAgICAucmVwbGFjZSgnXFxcXCcsICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFwoXFxbKXxcXFxcKFxcXSl8XFxbKFteXFxdXFxbXSopXFxdfFxcXFwoLikvZywgZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgIG1hdGNoZWQsXG4gICAgICAgICAgICAgICAgcDEsXG4gICAgICAgICAgICAgICAgcDIsXG4gICAgICAgICAgICAgICAgcDMsXG4gICAgICAgICAgICAgICAgcDRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwMSB8fCBwMiB8fCBwMyB8fCBwNDtcbiAgICAgICAgICAgIH0pXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gcmVnZXhFc2NhcGUocykge1xuICAgIHJldHVybiBzLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xufVxuXG52YXIgdG9rZW5zID0ge307XG5cbmZ1bmN0aW9uIGFkZFBhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgdmFyIGksXG4gICAgICAgIGZ1bmMgPSBjYWxsYmFjaztcbiAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgICB0b2tlbiA9IFt0b2tlbl07XG4gICAgfVxuICAgIGlmIChpc051bWJlcihjYWxsYmFjaykpIHtcbiAgICAgICAgZnVuYyA9IGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgICAgIGFycmF5W2NhbGxiYWNrXSA9IHRvSW50KGlucHV0KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZm9yIChpID0gMDsgaSA8IHRva2VuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRva2Vuc1t0b2tlbltpXV0gPSBmdW5jO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gYWRkV2Vla1BhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgYWRkUGFyc2VUb2tlbih0b2tlbiwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnLCB0b2tlbikge1xuICAgICAgICBjb25maWcuX3cgPSBjb25maWcuX3cgfHwge307XG4gICAgICAgIGNhbGxiYWNrKGlucHV0LCBjb25maWcuX3csIGNvbmZpZywgdG9rZW4pO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykge1xuICAgIGlmIChpbnB1dCAhPSBudWxsICYmIGhhc093blByb3AodG9rZW5zLCB0b2tlbikpIHtcbiAgICAgICAgdG9rZW5zW3Rva2VuXShpbnB1dCwgY29uZmlnLl9hLCBjb25maWcsIHRva2VuKTtcbiAgICB9XG59XG5cbnZhciBZRUFSID0gMCxcbiAgICBNT05USCA9IDEsXG4gICAgREFURSA9IDIsXG4gICAgSE9VUiA9IDMsXG4gICAgTUlOVVRFID0gNCxcbiAgICBTRUNPTkQgPSA1LFxuICAgIE1JTExJU0VDT05EID0gNixcbiAgICBXRUVLID0gNyxcbiAgICBXRUVLREFZID0gODtcblxuZnVuY3Rpb24gbW9kKG4sIHgpIHtcbiAgICByZXR1cm4gKChuICUgeCkgKyB4KSAlIHg7XG59XG5cbnZhciBpbmRleE9mO1xuXG5pZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICBpbmRleE9mID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2Y7XG59IGVsc2Uge1xuICAgIGluZGV4T2YgPSBmdW5jdGlvbiAobykge1xuICAgICAgICAvLyBJIGtub3dcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBpZiAodGhpc1tpXSA9PT0gbykge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkge1xuICAgIGlmIChpc05hTih5ZWFyKSB8fCBpc05hTihtb250aCkpIHtcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG4gICAgdmFyIG1vZE1vbnRoID0gbW9kKG1vbnRoLCAxMik7XG4gICAgeWVhciArPSAobW9udGggLSBtb2RNb250aCkgLyAxMjtcbiAgICByZXR1cm4gbW9kTW9udGggPT09IDFcbiAgICAgICAgPyBpc0xlYXBZZWFyKHllYXIpXG4gICAgICAgICAgICA/IDI5XG4gICAgICAgICAgICA6IDI4XG4gICAgICAgIDogMzEgLSAoKG1vZE1vbnRoICUgNykgJSAyKTtcbn1cblxuLy8gRk9STUFUVElOR1xuXG5hZGRGb3JtYXRUb2tlbignTScsIFsnTU0nLCAyXSwgJ01vJywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLm1vbnRoKCkgKyAxO1xufSk7XG5cbmFkZEZvcm1hdFRva2VuKCdNTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1vbnRoc1Nob3J0KHRoaXMsIGZvcm1hdCk7XG59KTtcblxuYWRkRm9ybWF0VG9rZW4oJ01NTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1vbnRocyh0aGlzLCBmb3JtYXQpO1xufSk7XG5cbi8vIEFMSUFTRVNcblxuYWRkVW5pdEFsaWFzKCdtb250aCcsICdNJyk7XG5cbi8vIFBSSU9SSVRZXG5cbmFkZFVuaXRQcmlvcml0eSgnbW9udGgnLCA4KTtcblxuLy8gUEFSU0lOR1xuXG5hZGRSZWdleFRva2VuKCdNJywgbWF0Y2gxdG8yKTtcbmFkZFJlZ2V4VG9rZW4oJ01NJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuYWRkUmVnZXhUb2tlbignTU1NJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3QpO1xufSk7XG5hZGRSZWdleFRva2VuKCdNTU1NJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1JlZ2V4KGlzU3RyaWN0KTtcbn0pO1xuXG5hZGRQYXJzZVRva2VuKFsnTScsICdNTSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgYXJyYXlbTU9OVEhdID0gdG9JbnQoaW5wdXQpIC0gMTtcbn0pO1xuXG5hZGRQYXJzZVRva2VuKFsnTU1NJywgJ01NTU0nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnLCB0b2tlbikge1xuICAgIHZhciBtb250aCA9IGNvbmZpZy5fbG9jYWxlLm1vbnRoc1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpO1xuICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIGEgbW9udGggbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkLlxuICAgIGlmIChtb250aCAhPSBudWxsKSB7XG4gICAgICAgIGFycmF5W01PTlRIXSA9IG1vbnRoO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRNb250aCA9IGlucHV0O1xuICAgIH1cbn0pO1xuXG4vLyBMT0NBTEVTXG5cbnZhciBkZWZhdWx0TG9jYWxlTW9udGhzID0gJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAnXydcbiAgICApLFxuICAgIGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCA9ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoXG4gICAgICAgICdfJ1xuICAgICksXG4gICAgTU9OVEhTX0lOX0ZPUk1BVCA9IC9EW29EXT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK01NTU0/LyxcbiAgICBkZWZhdWx0TW9udGhzU2hvcnRSZWdleCA9IG1hdGNoV29yZCxcbiAgICBkZWZhdWx0TW9udGhzUmVnZXggPSBtYXRjaFdvcmQ7XG5cbmZ1bmN0aW9uIGxvY2FsZU1vbnRocyhtLCBmb3JtYXQpIHtcbiAgICBpZiAoIW0pIHtcbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzKVxuICAgICAgICAgICAgPyB0aGlzLl9tb250aHNcbiAgICAgICAgICAgIDogdGhpcy5fbW9udGhzWydzdGFuZGFsb25lJ107XG4gICAgfVxuICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocylcbiAgICAgICAgPyB0aGlzLl9tb250aHNbbS5tb250aCgpXVxuICAgICAgICA6IHRoaXMuX21vbnRoc1tcbiAgICAgICAgICAgICAgKHRoaXMuX21vbnRocy5pc0Zvcm1hdCB8fCBNT05USFNfSU5fRk9STUFUKS50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgICAgICAgID8gJ2Zvcm1hdCdcbiAgICAgICAgICAgICAgICAgIDogJ3N0YW5kYWxvbmUnXG4gICAgICAgICAgXVttLm1vbnRoKCldO1xufVxuXG5mdW5jdGlvbiBsb2NhbGVNb250aHNTaG9ydChtLCBmb3JtYXQpIHtcbiAgICBpZiAoIW0pIHtcbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzU2hvcnQpXG4gICAgICAgICAgICA/IHRoaXMuX21vbnRoc1Nob3J0XG4gICAgICAgICAgICA6IHRoaXMuX21vbnRoc1Nob3J0WydzdGFuZGFsb25lJ107XG4gICAgfVxuICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRoc1Nob3J0KVxuICAgICAgICA/IHRoaXMuX21vbnRoc1Nob3J0W20ubW9udGgoKV1cbiAgICAgICAgOiB0aGlzLl9tb250aHNTaG9ydFtcbiAgICAgICAgICAgICAgTU9OVEhTX0lOX0ZPUk1BVC50ZXN0KGZvcm1hdCkgPyAnZm9ybWF0JyA6ICdzdGFuZGFsb25lJ1xuICAgICAgICAgIF1bbS5tb250aCgpXTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UobW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgIHZhciBpLFxuICAgICAgICBpaSxcbiAgICAgICAgbW9tLFxuICAgICAgICBsbGMgPSBtb250aE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBpZiAoIXRoaXMuX21vbnRoc1BhcnNlKSB7XG4gICAgICAgIC8vIHRoaXMgaXMgbm90IHVzZWRcbiAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlID0gW107XG4gICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyArK2kpIHtcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzU2hvcnQoXG4gICAgICAgICAgICAgICAgbW9tLFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICApLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRocyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0cmljdCkge1xuICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gbG9jYWxlTW9udGhzUGFyc2UobW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgIHZhciBpLCBtb20sIHJlZ2V4O1xuXG4gICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVN0cmljdFBhcnNlLmNhbGwodGhpcywgbW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICB0aGlzLl9tb250aHNQYXJzZSA9IFtdO1xuICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGFkZCBzb3J0aW5nXG4gICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlclxuICAgIC8vIHNlZSBzb3J0aW5nIGluIGNvbXB1dGVNb250aHNQYXJzZVxuICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsXG4gICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAgICAgJ14nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLFxuICAgICAgICAgICAgICAgICdpJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXN0cmljdCAmJiAhdGhpcy5fbW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgIHJlZ2V4ID1cbiAgICAgICAgICAgICAgICAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKSArICd8XicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpO1xuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXhcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3RyaWN0ICYmXG4gICAgICAgICAgICBmb3JtYXQgPT09ICdNTU1NJyAmJlxuICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgc3RyaWN0ICYmXG4gICAgICAgICAgICBmb3JtYXQgPT09ICdNTU0nICYmXG4gICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fbW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gTU9NRU5UU1xuXG5mdW5jdGlvbiBzZXRNb250aChtb20sIHZhbHVlKSB7XG4gICAgdmFyIGRheU9mTW9udGg7XG5cbiAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgLy8gTm8gb3BcbiAgICAgICAgcmV0dXJuIG1vbTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoL15cXGQrJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBtb20ubG9jYWxlRGF0YSgpLm1vbnRoc1BhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIC8vIFRPRE86IEFub3RoZXIgc2lsZW50IGZhaWx1cmU/XG4gICAgICAgICAgICBpZiAoIWlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkYXlPZk1vbnRoID0gTWF0aC5taW4obW9tLmRhdGUoKSwgZGF5c0luTW9udGgobW9tLnllYXIoKSwgdmFsdWUpKTtcbiAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgJ01vbnRoJ10odmFsdWUsIGRheU9mTW9udGgpO1xuICAgIHJldHVybiBtb207XG59XG5cbmZ1bmN0aW9uIGdldFNldE1vbnRoKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgc2V0TW9udGgodGhpcywgdmFsdWUpO1xuICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBnZXQodGhpcywgJ01vbnRoJyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXREYXlzSW5Nb250aCgpIHtcbiAgICByZXR1cm4gZGF5c0luTW9udGgodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSk7XG59XG5cbmZ1bmN0aW9uIG1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3QpIHtcbiAgICBpZiAodGhpcy5fbW9udGhzUGFyc2VFeGFjdCkge1xuICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSBkZWZhdWx0TW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgPyB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4XG4gICAgICAgICAgICA6IHRoaXMuX21vbnRoc1Nob3J0UmVnZXg7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBtb250aHNSZWdleChpc1N0cmljdCkge1xuICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgIGNvbXB1dGVNb250aHNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgdGhpcy5fbW9udGhzUmVnZXggPSBkZWZhdWx0TW9udGhzUmVnZXg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICA/IHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4XG4gICAgICAgICAgICA6IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgIH1cbn1cblxuZnVuY3Rpb24gY29tcHV0ZU1vbnRoc1BhcnNlKCkge1xuICAgIGZ1bmN0aW9uIGNtcExlblJldihhLCBiKSB7XG4gICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgIH1cblxuICAgIHZhciBzaG9ydFBpZWNlcyA9IFtdLFxuICAgICAgICBsb25nUGllY2VzID0gW10sXG4gICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgIGksXG4gICAgICAgIG1vbTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgIHNob3J0UGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChtb20sICcnKSk7XG4gICAgICAgIGxvbmdQaWVjZXMucHVzaCh0aGlzLm1vbnRocyhtb20sICcnKSk7XG4gICAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHMobW9tLCAnJykpO1xuICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykpO1xuICAgIH1cbiAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIG1vbnRoIChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgLy8gd2lsbCBtYXRjaCB0aGUgbG9uZ2VyIHBpZWNlLlxuICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICBtaXhlZFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgc2hvcnRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShzaG9ydFBpZWNlc1tpXSk7XG4gICAgICAgIGxvbmdQaWVjZXNbaV0gPSByZWdleEVzY2FwZShsb25nUGllY2VzW2ldKTtcbiAgICB9XG4gICAgZm9yIChpID0gMDsgaSA8IDI0OyBpKyspIHtcbiAgICAgICAgbWl4ZWRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShtaXhlZFBpZWNlc1tpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5fbW9udGhzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgdGhpcy5fbW9udGhzU2hvcnRSZWdleCA9IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAnaSdcbiAgICApO1xuICAgIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnXignICsgc2hvcnRQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAnaSdcbiAgICApO1xufVxuXG4vLyBGT1JNQVRUSU5HXG5cbmFkZEZvcm1hdFRva2VuKCdZJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHZhciB5ID0gdGhpcy55ZWFyKCk7XG4gICAgcmV0dXJuIHkgPD0gOTk5OSA/IHplcm9GaWxsKHksIDQpIDogJysnICsgeTtcbn0pO1xuXG5hZGRGb3JtYXRUb2tlbigwLCBbJ1lZJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy55ZWFyKCkgJSAxMDA7XG59KTtcblxuYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZJywgNF0sIDAsICd5ZWFyJyk7XG5hZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVlZJywgNV0sIDAsICd5ZWFyJyk7XG5hZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVlZWScsIDYsIHRydWVdLCAwLCAneWVhcicpO1xuXG4vLyBBTElBU0VTXG5cbmFkZFVuaXRBbGlhcygneWVhcicsICd5Jyk7XG5cbi8vIFBSSU9SSVRJRVNcblxuYWRkVW5pdFByaW9yaXR5KCd5ZWFyJywgMSk7XG5cbi8vIFBBUlNJTkdcblxuYWRkUmVnZXhUb2tlbignWScsIG1hdGNoU2lnbmVkKTtcbmFkZFJlZ2V4VG9rZW4oJ1lZJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuYWRkUmVnZXhUb2tlbignWVlZWScsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbmFkZFJlZ2V4VG9rZW4oJ1lZWVlZJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuYWRkUmVnZXhUb2tlbignWVlZWVlZJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG5hZGRQYXJzZVRva2VuKFsnWVlZWVknLCAnWVlZWVlZJ10sIFlFQVIpO1xuYWRkUGFyc2VUb2tlbignWVlZWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICBhcnJheVtZRUFSXSA9XG4gICAgICAgIGlucHV0Lmxlbmd0aCA9PT0gMiA/IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KSA6IHRvSW50KGlucHV0KTtcbn0pO1xuYWRkUGFyc2VUb2tlbignWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgYXJyYXlbWUVBUl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG59KTtcbmFkZFBhcnNlVG9rZW4oJ1knLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgYXJyYXlbWUVBUl0gPSBwYXJzZUludChpbnB1dCwgMTApO1xufSk7XG5cbi8vIEhFTFBFUlNcblxuZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIoeWVhcikgPyAzNjYgOiAzNjU7XG59XG5cbi8vIEhPT0tTXG5cbmhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgcmV0dXJuIHRvSW50KGlucHV0KSArICh0b0ludChpbnB1dCkgPiA2OCA/IDE5MDAgOiAyMDAwKTtcbn07XG5cbi8vIE1PTUVOVFNcblxudmFyIGdldFNldFllYXIgPSBtYWtlR2V0U2V0KCdGdWxsWWVhcicsIHRydWUpO1xuXG5mdW5jdGlvbiBnZXRJc0xlYXBZZWFyKCkge1xuICAgIHJldHVybiBpc0xlYXBZZWFyKHRoaXMueWVhcigpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGF0ZSh5LCBtLCBkLCBoLCBNLCBzLCBtcykge1xuICAgIC8vIGNhbid0IGp1c3QgYXBwbHkoKSB0byBjcmVhdGUgYSBkYXRlOlxuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8xODEzNDhcbiAgICB2YXIgZGF0ZTtcbiAgICAvLyB0aGUgZGF0ZSBjb25zdHJ1Y3RvciByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKHkgKyA0MDAsIG0sIGQsIGgsIE0sIHMsIG1zKTtcbiAgICAgICAgaWYgKGlzRmluaXRlKGRhdGUuZ2V0RnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoeSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlID0gbmV3IERhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVVVENEYXRlKHkpIHtcbiAgICB2YXIgZGF0ZSwgYXJncztcbiAgICAvLyB0aGUgRGF0ZS5VVEMgZnVuY3Rpb24gcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwKSB7XG4gICAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICBhcmdzWzBdID0geSArIDQwMDtcbiAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsIGFyZ3MpKTtcbiAgICAgICAgaWYgKGlzRmluaXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoeSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCwgYXJndW1lbnRzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGU7XG59XG5cbi8vIHN0YXJ0LW9mLWZpcnN0LXdlZWsgLSBzdGFydC1vZi15ZWFyXG5mdW5jdGlvbiBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpIHtcbiAgICB2YXIgLy8gZmlyc3Qtd2VlayBkYXkgLS0gd2hpY2ggamFudWFyeSBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgKDQgZm9yIGlzbywgMSBmb3Igb3RoZXIpXG4gICAgICAgIGZ3ZCA9IDcgKyBkb3cgLSBkb3ksXG4gICAgICAgIC8vIGZpcnN0LXdlZWsgZGF5IGxvY2FsIHdlZWtkYXkgLS0gd2hpY2ggbG9jYWwgd2Vla2RheSBpcyBmd2RcbiAgICAgICAgZndkbHcgPSAoNyArIGNyZWF0ZVVUQ0RhdGUoeWVhciwgMCwgZndkKS5nZXRVVENEYXkoKSAtIGRvdykgJSA3O1xuXG4gICAgcmV0dXJuIC1md2RsdyArIGZ3ZCAtIDE7XG59XG5cbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUjQ2FsY3VsYXRpbmdfYV9kYXRlX2dpdmVuX3RoZV95ZWFyLjJDX3dlZWtfbnVtYmVyX2FuZF93ZWVrZGF5XG5mdW5jdGlvbiBkYXlPZlllYXJGcm9tV2Vla3MoeWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICB2YXIgbG9jYWxXZWVrZGF5ID0gKDcgKyB3ZWVrZGF5IC0gZG93KSAlIDcsXG4gICAgICAgIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpLFxuICAgICAgICBkYXlPZlllYXIgPSAxICsgNyAqICh3ZWVrIC0gMSkgKyBsb2NhbFdlZWtkYXkgKyB3ZWVrT2Zmc2V0LFxuICAgICAgICByZXNZZWFyLFxuICAgICAgICByZXNEYXlPZlllYXI7XG5cbiAgICBpZiAoZGF5T2ZZZWFyIDw9IDApIHtcbiAgICAgICAgcmVzWWVhciA9IHllYXIgLSAxO1xuICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlzSW5ZZWFyKHJlc1llYXIpICsgZGF5T2ZZZWFyO1xuICAgIH0gZWxzZSBpZiAoZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyKSkge1xuICAgICAgICByZXNZZWFyID0geWVhciArIDE7XG4gICAgICAgIHJlc0RheU9mWWVhciA9IGRheU9mWWVhciAtIGRheXNJblllYXIoeWVhcik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzWWVhciA9IHllYXI7XG4gICAgICAgIHJlc0RheU9mWWVhciA9IGRheU9mWWVhcjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB5ZWFyOiByZXNZZWFyLFxuICAgICAgICBkYXlPZlllYXI6IHJlc0RheU9mWWVhcixcbiAgICB9O1xufVxuXG5mdW5jdGlvbiB3ZWVrT2ZZZWFyKG1vbSwgZG93LCBkb3kpIHtcbiAgICB2YXIgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldChtb20ueWVhcigpLCBkb3csIGRveSksXG4gICAgICAgIHdlZWsgPSBNYXRoLmZsb29yKChtb20uZGF5T2ZZZWFyKCkgLSB3ZWVrT2Zmc2V0IC0gMSkgLyA3KSArIDEsXG4gICAgICAgIHJlc1dlZWssXG4gICAgICAgIHJlc1llYXI7XG5cbiAgICBpZiAod2VlayA8IDEpIHtcbiAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCkgLSAxO1xuICAgICAgICByZXNXZWVrID0gd2VlayArIHdlZWtzSW5ZZWFyKHJlc1llYXIsIGRvdywgZG95KTtcbiAgICB9IGVsc2UgaWYgKHdlZWsgPiB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSkpIHtcbiAgICAgICAgcmVzV2VlayA9IHdlZWsgLSB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSk7XG4gICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpICsgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKTtcbiAgICAgICAgcmVzV2VlayA9IHdlZWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2VlazogcmVzV2VlayxcbiAgICAgICAgeWVhcjogcmVzWWVhcixcbiAgICB9O1xufVxuXG5mdW5jdGlvbiB3ZWVrc0luWWVhcih5ZWFyLCBkb3csIGRveSkge1xuICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgd2Vla09mZnNldE5leHQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciArIDEsIGRvdywgZG95KTtcbiAgICByZXR1cm4gKGRheXNJblllYXIoeWVhcikgLSB3ZWVrT2Zmc2V0ICsgd2Vla09mZnNldE5leHQpIC8gNztcbn1cblxuLy8gRk9STUFUVElOR1xuXG5hZGRGb3JtYXRUb2tlbigndycsIFsnd3cnLCAyXSwgJ3dvJywgJ3dlZWsnKTtcbmFkZEZvcm1hdFRva2VuKCdXJywgWydXVycsIDJdLCAnV28nLCAnaXNvV2VlaycpO1xuXG4vLyBBTElBU0VTXG5cbmFkZFVuaXRBbGlhcygnd2VlaycsICd3Jyk7XG5hZGRVbml0QWxpYXMoJ2lzb1dlZWsnLCAnVycpO1xuXG4vLyBQUklPUklUSUVTXG5cbmFkZFVuaXRQcmlvcml0eSgnd2VlaycsIDUpO1xuYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrJywgNSk7XG5cbi8vIFBBUlNJTkdcblxuYWRkUmVnZXhUb2tlbigndycsIG1hdGNoMXRvMik7XG5hZGRSZWdleFRva2VuKCd3dycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbmFkZFJlZ2V4VG9rZW4oJ1cnLCBtYXRjaDF0bzIpO1xuYWRkUmVnZXhUb2tlbignV1cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5cbmFkZFdlZWtQYXJzZVRva2VuKFsndycsICd3dycsICdXJywgJ1dXJ10sIGZ1bmN0aW9uIChcbiAgICBpbnB1dCxcbiAgICB3ZWVrLFxuICAgIGNvbmZpZyxcbiAgICB0b2tlblxuKSB7XG4gICAgd2Vla1t0b2tlbi5zdWJzdHIoMCwgMSldID0gdG9JbnQoaW5wdXQpO1xufSk7XG5cbi8vIEhFTFBFUlNcblxuLy8gTE9DQUxFU1xuXG5mdW5jdGlvbiBsb2NhbGVXZWVrKG1vbSkge1xuICAgIHJldHVybiB3ZWVrT2ZZZWFyKG1vbSwgdGhpcy5fd2Vlay5kb3csIHRoaXMuX3dlZWsuZG95KS53ZWVrO1xufVxuXG52YXIgZGVmYXVsdExvY2FsZVdlZWsgPSB7XG4gICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbn07XG5cbmZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZXZWVrKCkge1xuICAgIHJldHVybiB0aGlzLl93ZWVrLmRvdztcbn1cblxuZnVuY3Rpb24gbG9jYWxlRmlyc3REYXlPZlllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dlZWsuZG95O1xufVxuXG4vLyBNT01FTlRTXG5cbmZ1bmN0aW9uIGdldFNldFdlZWsoaW5wdXQpIHtcbiAgICB2YXIgd2VlayA9IHRoaXMubG9jYWxlRGF0YSgpLndlZWsodGhpcyk7XG4gICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpO1xufVxuXG5mdW5jdGlvbiBnZXRTZXRJU09XZWVrKGlucHV0KSB7XG4gICAgdmFyIHdlZWsgPSB3ZWVrT2ZZZWFyKHRoaXMsIDEsIDQpLndlZWs7XG4gICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpO1xufVxuXG4vLyBGT1JNQVRUSU5HXG5cbmFkZEZvcm1hdFRva2VuKCdkJywgMCwgJ2RvJywgJ2RheScpO1xuXG5hZGRGb3JtYXRUb2tlbignZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsIGZvcm1hdCk7XG59KTtcblxuYWRkRm9ybWF0VG9rZW4oJ2RkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLCBmb3JtYXQpO1xufSk7XG5cbmFkZEZvcm1hdFRva2VuKCdkZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5cyh0aGlzLCBmb3JtYXQpO1xufSk7XG5cbmFkZEZvcm1hdFRva2VuKCdlJywgMCwgMCwgJ3dlZWtkYXknKTtcbmFkZEZvcm1hdFRva2VuKCdFJywgMCwgMCwgJ2lzb1dlZWtkYXknKTtcblxuLy8gQUxJQVNFU1xuXG5hZGRVbml0QWxpYXMoJ2RheScsICdkJyk7XG5hZGRVbml0QWxpYXMoJ3dlZWtkYXknLCAnZScpO1xuYWRkVW5pdEFsaWFzKCdpc29XZWVrZGF5JywgJ0UnKTtcblxuLy8gUFJJT1JJVFlcbmFkZFVuaXRQcmlvcml0eSgnZGF5JywgMTEpO1xuYWRkVW5pdFByaW9yaXR5KCd3ZWVrZGF5JywgMTEpO1xuYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrZGF5JywgMTEpO1xuXG4vLyBQQVJTSU5HXG5cbmFkZFJlZ2V4VG9rZW4oJ2QnLCBtYXRjaDF0bzIpO1xuYWRkUmVnZXhUb2tlbignZScsIG1hdGNoMXRvMik7XG5hZGRSZWdleFRva2VuKCdFJywgbWF0Y2gxdG8yKTtcbmFkZFJlZ2V4VG9rZW4oJ2RkJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzTWluUmVnZXgoaXNTdHJpY3QpO1xufSk7XG5hZGRSZWdleFRva2VuKCdkZGQnLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0KTtcbn0pO1xuYWRkUmVnZXhUb2tlbignZGRkZCcsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KTtcbn0pO1xuXG5hZGRXZWVrUGFyc2VUb2tlbihbJ2RkJywgJ2RkZCcsICdkZGRkJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgIHZhciB3ZWVrZGF5ID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IGEgd2Vla2RheSBuYW1lLCBtYXJrIHRoZSBkYXRlIGFzIGludmFsaWRcbiAgICBpZiAod2Vla2RheSAhPSBudWxsKSB7XG4gICAgICAgIHdlZWsuZCA9IHdlZWtkYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZFdlZWtkYXkgPSBpbnB1dDtcbiAgICB9XG59KTtcblxuYWRkV2Vla1BhcnNlVG9rZW4oWydkJywgJ2UnLCAnRSddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICB3ZWVrW3Rva2VuXSA9IHRvSW50KGlucHV0KTtcbn0pO1xuXG4vLyBIRUxQRVJTXG5cbmZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cblxuICAgIGlmICghaXNOYU4oaW5wdXQpKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludChpbnB1dCwgMTApO1xuICAgIH1cblxuICAgIGlucHV0ID0gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpO1xuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcGFyc2VJc29XZWVrZGF5KGlucHV0LCBsb2NhbGUpIHtcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpICUgNyB8fCA3O1xuICAgIH1cbiAgICByZXR1cm4gaXNOYU4oaW5wdXQpID8gbnVsbCA6IGlucHV0O1xufVxuXG4vLyBMT0NBTEVTXG5mdW5jdGlvbiBzaGlmdFdlZWtkYXlzKHdzLCBuKSB7XG4gICAgcmV0dXJuIHdzLnNsaWNlKG4sIDcpLmNvbmNhdCh3cy5zbGljZSgwLCBuKSk7XG59XG5cbnZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXMgPSAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAnXydcbiAgICApLFxuICAgIGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0ID0gJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICBkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4gPSAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgZGVmYXVsdFdlZWtkYXlzUmVnZXggPSBtYXRjaFdvcmQsXG4gICAgZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleCA9IG1hdGNoV29yZCxcbiAgICBkZWZhdWx0V2Vla2RheXNNaW5SZWdleCA9IG1hdGNoV29yZDtcblxuZnVuY3Rpb24gbG9jYWxlV2Vla2RheXMobSwgZm9ybWF0KSB7XG4gICAgdmFyIHdlZWtkYXlzID0gaXNBcnJheSh0aGlzLl93ZWVrZGF5cylcbiAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1xuICAgICAgICA6IHRoaXMuX3dlZWtkYXlzW1xuICAgICAgICAgICAgICBtICYmIG0gIT09IHRydWUgJiYgdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChmb3JtYXQpXG4gICAgICAgICAgICAgICAgICA/ICdmb3JtYXQnXG4gICAgICAgICAgICAgICAgICA6ICdzdGFuZGFsb25lJ1xuICAgICAgICAgIF07XG4gICAgcmV0dXJuIG0gPT09IHRydWVcbiAgICAgICAgPyBzaGlmdFdlZWtkYXlzKHdlZWtkYXlzLCB0aGlzLl93ZWVrLmRvdylcbiAgICAgICAgOiBtXG4gICAgICAgID8gd2Vla2RheXNbbS5kYXkoKV1cbiAgICAgICAgOiB3ZWVrZGF5cztcbn1cblxuZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNTaG9ydChtKSB7XG4gICAgcmV0dXJuIG0gPT09IHRydWVcbiAgICAgICAgPyBzaGlmdFdlZWtkYXlzKHRoaXMuX3dlZWtkYXlzU2hvcnQsIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICA6IG1cbiAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1Nob3J0W20uZGF5KCldXG4gICAgICAgIDogdGhpcy5fd2Vla2RheXNTaG9ydDtcbn1cblxuZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNNaW4obSkge1xuICAgIHJldHVybiBtID09PSB0cnVlXG4gICAgICAgID8gc2hpZnRXZWVrZGF5cyh0aGlzLl93ZWVrZGF5c01pbiwgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgIDogbVxuICAgICAgICA/IHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldXG4gICAgICAgIDogdGhpcy5fd2Vla2RheXNNaW47XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVN0cmljdFBhcnNlJDEod2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgdmFyIGksXG4gICAgICAgIGlpLFxuICAgICAgICBtb20sXG4gICAgICAgIGxsYyA9IHdlZWtkYXlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2UgPSBbXTtcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgKytpKSB7XG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5c01pbihcbiAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNTaG9ydChcbiAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdkZGRkJykge1xuICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnZGRkJykge1xuICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBsb2NhbGVXZWVrZGF5c1BhcnNlKHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgIHZhciBpLCBtb20sIHJlZ2V4O1xuXG4gICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICByZXR1cm4gaGFuZGxlU3RyaWN0UGFyc2UkMS5jYWxsKHRoaXMsIHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuXG4gICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAnXicgKyB0aGlzLndlZWtkYXlzKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFxcXC4/JykgKyAnJCcsXG4gICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAnXicgKyB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJyxcbiAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAnXicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFxcXC4/JykgKyAnJCcsXG4gICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZVtpXSkge1xuICAgICAgICAgICAgcmVnZXggPVxuICAgICAgICAgICAgICAgICdeJyArXG4gICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5cyhtb20sICcnKSArXG4gICAgICAgICAgICAgICAgJ3xeJyArXG4gICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpICtcbiAgICAgICAgICAgICAgICAnfF4nICtcbiAgICAgICAgICAgICAgICB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpO1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAocmVnZXgucmVwbGFjZSgnLicsICcnKSwgJ2knKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgIGZvcm1hdCA9PT0gJ2RkZGQnICYmXG4gICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgc3RyaWN0ICYmXG4gICAgICAgICAgICBmb3JtYXQgPT09ICdkZGQnICYmXG4gICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgZm9ybWF0ID09PSAnZGQnICYmXG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXN0cmljdCAmJiB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gTU9NRU5UU1xuXG5mdW5jdGlvbiBnZXRTZXREYXlPZldlZWsoaW5wdXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICB9XG4gICAgdmFyIGRheSA9IHRoaXMuX2lzVVRDID8gdGhpcy5fZC5nZXRVVENEYXkoKSA6IHRoaXMuX2QuZ2V0RGF5KCk7XG4gICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgaW5wdXQgPSBwYXJzZVdlZWtkYXkoaW5wdXQsIHRoaXMubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKGlucHV0IC0gZGF5LCAnZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkYXk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRTZXRMb2NhbGVEYXlPZldlZWsoaW5wdXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICB9XG4gICAgdmFyIHdlZWtkYXkgPSAodGhpcy5kYXkoKSArIDcgLSB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3cpICUgNztcbiAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWtkYXkgOiB0aGlzLmFkZChpbnB1dCAtIHdlZWtkYXksICdkJyk7XG59XG5cbmZ1bmN0aW9uIGdldFNldElTT0RheU9mV2VlayhpbnB1dCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgIH1cblxuICAgIC8vIGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9tZW50I2RheSBleGNlcHRcbiAgICAvLyBhcyBhIGdldHRlciwgcmV0dXJucyA3IGluc3RlYWQgb2YgMCAoMS03IHJhbmdlIGluc3RlYWQgb2YgMC02KVxuICAgIC8vIGFzIGEgc2V0dGVyLCBzdW5kYXkgc2hvdWxkIGJlbG9uZyB0byB0aGUgcHJldmlvdXMgd2Vlay5cblxuICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gcGFyc2VJc29XZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRheSh0aGlzLmRheSgpICUgNyA/IHdlZWtkYXkgOiB3ZWVrZGF5IC0gNyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF5KCkgfHwgNztcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHdlZWtkYXlzUmVnZXgoaXNTdHJpY3QpIHtcbiAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgY29tcHV0ZVdlZWtkYXlzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUmVnZXggPSBkZWZhdWx0V2Vla2RheXNSZWdleDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4XG4gICAgICAgICAgICA6IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB3ZWVrZGF5c1Nob3J0UmVnZXgoaXNTdHJpY3QpIHtcbiAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgY29tcHV0ZVdlZWtkYXlzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCA9IGRlZmF1bHRXZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXhcbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgIH1cbn1cblxuZnVuY3Rpb24gd2Vla2RheXNNaW5SZWdleChpc1N0cmljdCkge1xuICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5SZWdleDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzTWluUmVnZXgnKSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IGRlZmF1bHRXZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXhcbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNNaW5SZWdleDtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVXZWVrZGF5c1BhcnNlKCkge1xuICAgIGZ1bmN0aW9uIGNtcExlblJldihhLCBiKSB7XG4gICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgIH1cblxuICAgIHZhciBtaW5QaWVjZXMgPSBbXSxcbiAgICAgICAgc2hvcnRQaWVjZXMgPSBbXSxcbiAgICAgICAgbG9uZ1BpZWNlcyA9IFtdLFxuICAgICAgICBtaXhlZFBpZWNlcyA9IFtdLFxuICAgICAgICBpLFxuICAgICAgICBtb20sXG4gICAgICAgIG1pbnAsXG4gICAgICAgIHNob3J0cCxcbiAgICAgICAgbG9uZ3A7XG4gICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICBtaW5wID0gcmVnZXhFc2NhcGUodGhpcy53ZWVrZGF5c01pbihtb20sICcnKSk7XG4gICAgICAgIHNob3J0cCA9IHJlZ2V4RXNjYXBlKHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSk7XG4gICAgICAgIGxvbmdwID0gcmVnZXhFc2NhcGUodGhpcy53ZWVrZGF5cyhtb20sICcnKSk7XG4gICAgICAgIG1pblBpZWNlcy5wdXNoKG1pbnApO1xuICAgICAgICBzaG9ydFBpZWNlcy5wdXNoKHNob3J0cCk7XG4gICAgICAgIGxvbmdQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgIG1peGVkUGllY2VzLnB1c2gobWlucCk7XG4gICAgICAgIG1peGVkUGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChsb25ncCk7XG4gICAgfVxuICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgd2Vla2RheSAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlciBpdFxuICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICBtaW5QaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICBtaXhlZFBpZWNlcy5zb3J0KGNtcExlblJldik7XG5cbiAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG5cbiAgICB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAnaSdcbiAgICApO1xuICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICdeKCcgKyBzaG9ydFBpZWNlcy5qb2luKCd8JykgKyAnKScsXG4gICAgICAgICdpJ1xuICAgICk7XG4gICAgdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICdeKCcgKyBtaW5QaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAnaSdcbiAgICApO1xufVxuXG4vLyBGT1JNQVRUSU5HXG5cbmZ1bmN0aW9uIGhGb3JtYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG91cnMoKSAlIDEyIHx8IDEyO1xufVxuXG5mdW5jdGlvbiBrRm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmhvdXJzKCkgfHwgMjQ7XG59XG5cbmFkZEZvcm1hdFRva2VuKCdIJywgWydISCcsIDJdLCAwLCAnaG91cicpO1xuYWRkRm9ybWF0VG9rZW4oJ2gnLCBbJ2hoJywgMl0sIDAsIGhGb3JtYXQpO1xuYWRkRm9ybWF0VG9rZW4oJ2snLCBbJ2trJywgMl0sIDAsIGtGb3JtYXQpO1xuXG5hZGRGb3JtYXRUb2tlbignaG1tJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAnJyArIGhGb3JtYXQuYXBwbHkodGhpcykgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMik7XG59KTtcblxuYWRkRm9ybWF0VG9rZW4oJ2htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAoXG4gICAgICAgICcnICtcbiAgICAgICAgaEZvcm1hdC5hcHBseSh0aGlzKSArXG4gICAgICAgIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKSArXG4gICAgICAgIHplcm9GaWxsKHRoaXMuc2Vjb25kcygpLCAyKVxuICAgICk7XG59KTtcblxuYWRkRm9ybWF0VG9rZW4oJ0htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gJycgKyB0aGlzLmhvdXJzKCkgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMik7XG59KTtcblxuYWRkRm9ybWF0VG9rZW4oJ0htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAoXG4gICAgICAgICcnICtcbiAgICAgICAgdGhpcy5ob3VycygpICtcbiAgICAgICAgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICtcbiAgICAgICAgemVyb0ZpbGwodGhpcy5zZWNvbmRzKCksIDIpXG4gICAgKTtcbn0pO1xuXG5mdW5jdGlvbiBtZXJpZGllbSh0b2tlbiwgbG93ZXJjYXNlKSB7XG4gICAgYWRkRm9ybWF0VG9rZW4odG9rZW4sIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1lcmlkaWVtKFxuICAgICAgICAgICAgdGhpcy5ob3VycygpLFxuICAgICAgICAgICAgdGhpcy5taW51dGVzKCksXG4gICAgICAgICAgICBsb3dlcmNhc2VcbiAgICAgICAgKTtcbiAgICB9KTtcbn1cblxubWVyaWRpZW0oJ2EnLCB0cnVlKTtcbm1lcmlkaWVtKCdBJywgZmFsc2UpO1xuXG4vLyBBTElBU0VTXG5cbmFkZFVuaXRBbGlhcygnaG91cicsICdoJyk7XG5cbi8vIFBSSU9SSVRZXG5hZGRVbml0UHJpb3JpdHkoJ2hvdXInLCAxMyk7XG5cbi8vIFBBUlNJTkdcblxuZnVuY3Rpb24gbWF0Y2hNZXJpZGllbShpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgcmV0dXJuIGxvY2FsZS5fbWVyaWRpZW1QYXJzZTtcbn1cblxuYWRkUmVnZXhUb2tlbignYScsIG1hdGNoTWVyaWRpZW0pO1xuYWRkUmVnZXhUb2tlbignQScsIG1hdGNoTWVyaWRpZW0pO1xuYWRkUmVnZXhUb2tlbignSCcsIG1hdGNoMXRvMik7XG5hZGRSZWdleFRva2VuKCdoJywgbWF0Y2gxdG8yKTtcbmFkZFJlZ2V4VG9rZW4oJ2snLCBtYXRjaDF0bzIpO1xuYWRkUmVnZXhUb2tlbignSEgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5hZGRSZWdleFRva2VuKCdoaCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbmFkZFJlZ2V4VG9rZW4oJ2trJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuXG5hZGRSZWdleFRva2VuKCdobW0nLCBtYXRjaDN0bzQpO1xuYWRkUmVnZXhUb2tlbignaG1tc3MnLCBtYXRjaDV0bzYpO1xuYWRkUmVnZXhUb2tlbignSG1tJywgbWF0Y2gzdG80KTtcbmFkZFJlZ2V4VG9rZW4oJ0htbXNzJywgbWF0Y2g1dG82KTtcblxuYWRkUGFyc2VUb2tlbihbJ0gnLCAnSEgnXSwgSE9VUik7XG5hZGRQYXJzZVRva2VuKFsnaycsICdrayddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICB2YXIga0lucHV0ID0gdG9JbnQoaW5wdXQpO1xuICAgIGFycmF5W0hPVVJdID0ga0lucHV0ID09PSAyNCA/IDAgOiBrSW5wdXQ7XG59KTtcbmFkZFBhcnNlVG9rZW4oWydhJywgJ0EnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgY29uZmlnLl9pc1BtID0gY29uZmlnLl9sb2NhbGUuaXNQTShpbnB1dCk7XG4gICAgY29uZmlnLl9tZXJpZGllbSA9IGlucHV0O1xufSk7XG5hZGRQYXJzZVRva2VuKFsnaCcsICdoaCddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0KTtcbiAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbn0pO1xuYWRkUGFyc2VUb2tlbignaG1tJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MpKTtcbiAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbn0pO1xuYWRkUGFyc2VUb2tlbignaG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQsXG4gICAgICAgIHBvczIgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICBhcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczIpKTtcbiAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbn0pO1xuYWRkUGFyc2VUb2tlbignSG1tJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MpKTtcbn0pO1xuYWRkUGFyc2VUb2tlbignSG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQsXG4gICAgICAgIHBvczIgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICBhcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczIpKTtcbn0pO1xuXG4vLyBMT0NBTEVTXG5cbmZ1bmN0aW9uIGxvY2FsZUlzUE0oaW5wdXQpIHtcbiAgICAvLyBJRTggUXVpcmtzIE1vZGUgJiBJRTcgU3RhbmRhcmRzIE1vZGUgZG8gbm90IGFsbG93IGFjY2Vzc2luZyBzdHJpbmdzIGxpa2UgYXJyYXlzXG4gICAgLy8gVXNpbmcgY2hhckF0IHNob3VsZCBiZSBtb3JlIGNvbXBhdGlibGUuXG4gICAgcmV0dXJuIChpbnB1dCArICcnKS50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSA9PT0gJ3AnO1xufVxuXG52YXIgZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2UgPSAvW2FwXVxcLj9tP1xcLj8vaSxcbiAgICAvLyBTZXR0aW5nIHRoZSBob3VyIHNob3VsZCBrZWVwIHRoZSB0aW1lLCBiZWNhdXNlIHRoZSB1c2VyIGV4cGxpY2l0bHlcbiAgICAvLyBzcGVjaWZpZWQgd2hpY2ggaG91ciB0aGV5IHdhbnQuIFNvIHRyeWluZyB0byBtYWludGFpbiB0aGUgc2FtZSBob3VyIChpblxuICAgIC8vIGEgbmV3IHRpbWV6b25lKSBtYWtlcyBzZW5zZS4gQWRkaW5nL3N1YnRyYWN0aW5nIGhvdXJzIGRvZXMgbm90IGZvbGxvd1xuICAgIC8vIHRoaXMgcnVsZS5cbiAgICBnZXRTZXRIb3VyID0gbWFrZUdldFNldCgnSG91cnMnLCB0cnVlKTtcblxuZnVuY3Rpb24gbG9jYWxlTWVyaWRpZW0oaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwbScgOiAnUE0nO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2FtJyA6ICdBTSc7XG4gICAgfVxufVxuXG52YXIgYmFzZUNvbmZpZyA9IHtcbiAgICBjYWxlbmRhcjogZGVmYXVsdENhbGVuZGFyLFxuICAgIGxvbmdEYXRlRm9ybWF0OiBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQsXG4gICAgaW52YWxpZERhdGU6IGRlZmF1bHRJbnZhbGlkRGF0ZSxcbiAgICBvcmRpbmFsOiBkZWZhdWx0T3JkaW5hbCxcbiAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSxcbiAgICByZWxhdGl2ZVRpbWU6IGRlZmF1bHRSZWxhdGl2ZVRpbWUsXG5cbiAgICBtb250aHM6IGRlZmF1bHRMb2NhbGVNb250aHMsXG4gICAgbW9udGhzU2hvcnQ6IGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCxcblxuICAgIHdlZWs6IGRlZmF1bHRMb2NhbGVXZWVrLFxuXG4gICAgd2Vla2RheXM6IGRlZmF1bHRMb2NhbGVXZWVrZGF5cyxcbiAgICB3ZWVrZGF5c01pbjogZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluLFxuICAgIHdlZWtkYXlzU2hvcnQ6IGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0LFxuXG4gICAgbWVyaWRpZW1QYXJzZTogZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2UsXG59O1xuXG4vLyBpbnRlcm5hbCBzdG9yYWdlIGZvciBsb2NhbGUgY29uZmlnIGZpbGVzXG52YXIgbG9jYWxlcyA9IHt9LFxuICAgIGxvY2FsZUZhbWlsaWVzID0ge30sXG4gICAgZ2xvYmFsTG9jYWxlO1xuXG5mdW5jdGlvbiBjb21tb25QcmVmaXgoYXJyMSwgYXJyMikge1xuICAgIHZhciBpLFxuICAgICAgICBtaW5sID0gTWF0aC5taW4oYXJyMS5sZW5ndGgsIGFycjIubGVuZ3RoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbWlubDsgaSArPSAxKSB7XG4gICAgICAgIGlmIChhcnIxW2ldICE9PSBhcnIyW2ldKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWlubDtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGtleSkge1xuICAgIHJldHVybiBrZXkgPyBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdfJywgJy0nKSA6IGtleTtcbn1cblxuLy8gcGljayB0aGUgbG9jYWxlIGZyb20gdGhlIGFycmF5XG4vLyB0cnkgWydlbi1hdScsICdlbi1nYiddIGFzICdlbi1hdScsICdlbi1nYicsICdlbicsIGFzIGluIG1vdmUgdGhyb3VnaCB0aGUgbGlzdCB0cnlpbmcgZWFjaFxuLy8gc3Vic3RyaW5nIGZyb20gbW9zdCBzcGVjaWZpYyB0byBsZWFzdCwgYnV0IG1vdmUgdG8gdGhlIG5leHQgYXJyYXkgaXRlbSBpZiBpdCdzIGEgbW9yZSBzcGVjaWZpYyB2YXJpYW50IHRoYW4gdGhlIGN1cnJlbnQgcm9vdFxuZnVuY3Rpb24gY2hvb3NlTG9jYWxlKG5hbWVzKSB7XG4gICAgdmFyIGkgPSAwLFxuICAgICAgICBqLFxuICAgICAgICBuZXh0LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHNwbGl0O1xuXG4gICAgd2hpbGUgKGkgPCBuYW1lcy5sZW5ndGgpIHtcbiAgICAgICAgc3BsaXQgPSBub3JtYWxpemVMb2NhbGUobmFtZXNbaV0pLnNwbGl0KCctJyk7XG4gICAgICAgIGogPSBzcGxpdC5sZW5ndGg7XG4gICAgICAgIG5leHQgPSBub3JtYWxpemVMb2NhbGUobmFtZXNbaSArIDFdKTtcbiAgICAgICAgbmV4dCA9IG5leHQgPyBuZXh0LnNwbGl0KCctJykgOiBudWxsO1xuICAgICAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoc3BsaXQuc2xpY2UoMCwgaikuam9pbignLScpKTtcbiAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG5leHQgJiZcbiAgICAgICAgICAgICAgICBuZXh0Lmxlbmd0aCA+PSBqICYmXG4gICAgICAgICAgICAgICAgY29tbW9uUHJlZml4KHNwbGl0LCBuZXh0KSA+PSBqIC0gMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy90aGUgbmV4dCBhcnJheSBpdGVtIGlzIGJldHRlciB0aGFuIGEgc2hhbGxvd2VyIHN1YnN0cmluZyBvZiB0aGlzIG9uZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgai0tO1xuICAgICAgICB9XG4gICAgICAgIGkrKztcbiAgICB9XG4gICAgcmV0dXJuIGdsb2JhbExvY2FsZTtcbn1cblxuZnVuY3Rpb24gbG9hZExvY2FsZShuYW1lKSB7XG4gICAgdmFyIG9sZExvY2FsZSA9IG51bGwsXG4gICAgICAgIGFsaWFzZWRSZXF1aXJlO1xuICAgIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIHJlZ2lzdGVyIGFuZCBsb2FkIGFsbCB0aGUgbG9jYWxlcyBpbiBOb2RlXG4gICAgaWYgKFxuICAgICAgICBsb2NhbGVzW25hbWVdID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgbW9kdWxlICYmXG4gICAgICAgIG1vZHVsZS5leHBvcnRzXG4gICAgKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBvbGRMb2NhbGUgPSBnbG9iYWxMb2NhbGUuX2FiYnI7XG4gICAgICAgICAgICBhbGlhc2VkUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgICAgICAgICBhbGlhc2VkUmVxdWlyZSgnLi9sb2NhbGUvJyArIG5hbWUpO1xuICAgICAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG9sZExvY2FsZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIG1hcmsgYXMgbm90IGZvdW5kIHRvIGF2b2lkIHJlcGVhdGluZyBleHBlbnNpdmUgZmlsZSByZXF1aXJlIGNhbGwgY2F1c2luZyBoaWdoIENQVVxuICAgICAgICAgICAgLy8gd2hlbiB0cnlpbmcgdG8gZmluZCBlbi1VUywgZW5fVVMsIGVuLXVzIGZvciBldmVyeSBmb3JtYXQgY2FsbFxuICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IG51bGw7IC8vIG51bGwgbWVhbnMgbm90IGZvdW5kXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gd2lsbCBsb2FkIGxvY2FsZSBhbmQgdGhlbiBzZXQgdGhlIGdsb2JhbCBsb2NhbGUuICBJZlxuLy8gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4sIGl0IHdpbGwgc2ltcGx5IHJldHVybiB0aGUgY3VycmVudCBnbG9iYWxcbi8vIGxvY2FsZSBrZXkuXG5mdW5jdGlvbiBnZXRTZXRHbG9iYWxMb2NhbGUoa2V5LCB2YWx1ZXMpIHtcbiAgICB2YXIgZGF0YTtcbiAgICBpZiAoa2V5KSB7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWx1ZXMpKSB7XG4gICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxlKGtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhID0gZGVmaW5lTG9jYWxlKGtleSwgdmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAvLyBtb21lbnQuZHVyYXRpb24uX2xvY2FsZSA9IG1vbWVudC5fbG9jYWxlID0gZGF0YTtcbiAgICAgICAgICAgIGdsb2JhbExvY2FsZSA9IGRhdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgICAgIC8vd2FybiB1c2VyIGlmIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ1dCB0aGUgbG9jYWxlIGNvdWxkIG5vdCBiZSBzZXRcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICdMb2NhbGUgJyArIGtleSArICcgbm90IGZvdW5kLiBEaWQgeW91IGZvcmdldCB0byBsb2FkIGl0PydcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGdsb2JhbExvY2FsZS5fYWJicjtcbn1cblxuZnVuY3Rpb24gZGVmaW5lTG9jYWxlKG5hbWUsIGNvbmZpZykge1xuICAgIGlmIChjb25maWcgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIGxvY2FsZSxcbiAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG4gICAgICAgIGNvbmZpZy5hYmJyID0gbmFtZTtcbiAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgZGVwcmVjYXRlU2ltcGxlKFxuICAgICAgICAgICAgICAgICdkZWZpbmVMb2NhbGVPdmVycmlkZScsXG4gICAgICAgICAgICAgICAgJ3VzZSBtb21lbnQudXBkYXRlTG9jYWxlKGxvY2FsZU5hbWUsIGNvbmZpZykgdG8gY2hhbmdlICcgK1xuICAgICAgICAgICAgICAgICAgICAnYW4gZXhpc3RpbmcgbG9jYWxlLiBtb21lbnQuZGVmaW5lTG9jYWxlKGxvY2FsZU5hbWUsICcgK1xuICAgICAgICAgICAgICAgICAgICAnY29uZmlnKSBzaG91bGQgb25seSBiZSB1c2VkIGZvciBjcmVhdGluZyBhIG5ldyBsb2NhbGUgJyArXG4gICAgICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kZWZpbmUtbG9jYWxlLyBmb3IgbW9yZSBpbmZvLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW25hbWVdLl9jb25maWc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxlc1tjb25maWcucGFyZW50TG9jYWxlXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gbG9jYWxlc1tjb25maWcucGFyZW50TG9jYWxlXS5fY29uZmlnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKGNvbmZpZy5wYXJlbnRMb2NhbGUpO1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxvY2FsZXNbbmFtZV0gPSBuZXcgTG9jYWxlKG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZykpO1xuXG4gICAgICAgIGlmIChsb2NhbGVGYW1pbGllc1tuYW1lXSkge1xuICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbbmFtZV0uZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgIGRlZmluZUxvY2FsZSh4Lm5hbWUsIHguY29uZmlnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIGxvY2FsZSBBRlRFUiBhbGwgY2hpbGQgbG9jYWxlcyBoYXZlIGJlZW5cbiAgICAgICAgLy8gY3JlYXRlZCwgc28gd2Ugd29uJ3QgZW5kIHVwIHdpdGggdGhlIGNoaWxkIGxvY2FsZSBzZXQuXG4gICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcblxuICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyB1c2VmdWwgZm9yIHRlc3RpbmdcbiAgICAgICAgZGVsZXRlIGxvY2FsZXNbbmFtZV07XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlTG9jYWxlKG5hbWUsIGNvbmZpZykge1xuICAgIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgICAgICB2YXIgbG9jYWxlLFxuICAgICAgICAgICAgdG1wTG9jYWxlLFxuICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gYmFzZUNvbmZpZztcblxuICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsICYmIGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyBjaGlsZCBsb2NhbGUgaW4tcGxhY2UgdG8gYXZvaWQgbWVtb3J5LWxlYWtzXG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdLnNldChtZXJnZUNvbmZpZ3MobG9jYWxlc1tuYW1lXS5fY29uZmlnLCBjb25maWcpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE1FUkdFXG4gICAgICAgICAgICB0bXBMb2NhbGUgPSBsb2FkTG9jYWxlKG5hbWUpO1xuICAgICAgICAgICAgaWYgKHRtcExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gdG1wTG9jYWxlLl9jb25maWc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcgPSBtZXJnZUNvbmZpZ3MocGFyZW50Q29uZmlnLCBjb25maWcpO1xuICAgICAgICAgICAgaWYgKHRtcExvY2FsZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlTG9jYWxlIGlzIGNhbGxlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlXG4gICAgICAgICAgICAgICAgLy8gU2V0IGFiYnIgc28gaXQgd2lsbCBoYXZlIGEgbmFtZSAoZ2V0dGVycyByZXR1cm5cbiAgICAgICAgICAgICAgICAvLyB1bmRlZmluZWQgb3RoZXJ3aXNlKS5cbiAgICAgICAgICAgICAgICBjb25maWcuYWJiciA9IG5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2NhbGUgPSBuZXcgTG9jYWxlKGNvbmZpZyk7XG4gICAgICAgICAgICBsb2NhbGUucGFyZW50TG9jYWxlID0gbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBsb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBiYWNrd2FyZHMgY29tcGF0IGZvciBub3c6IGFsc28gc2V0IHRoZSBsb2NhbGVcbiAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBhc3MgbnVsbCBmb3IgY29uZmlnIHRvIHVudXBkYXRlLCB1c2VmdWwgZm9yIHRlc3RzXG4gICAgICAgIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlO1xuICAgICAgICAgICAgICAgIGlmIChuYW1lID09PSBnZXRTZXRHbG9iYWxMb2NhbGUoKSkge1xuICAgICAgICAgICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbn1cblxuLy8gcmV0dXJucyBsb2NhbGUgZGF0YVxuZnVuY3Rpb24gZ2V0TG9jYWxlKGtleSkge1xuICAgIHZhciBsb2NhbGU7XG5cbiAgICBpZiAoa2V5ICYmIGtleS5fbG9jYWxlICYmIGtleS5fbG9jYWxlLl9hYmJyKSB7XG4gICAgICAgIGtleSA9IGtleS5fbG9jYWxlLl9hYmJyO1xuICAgIH1cblxuICAgIGlmICgha2V5KSB7XG4gICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgfVxuXG4gICAgaWYgKCFpc0FycmF5KGtleSkpIHtcbiAgICAgICAgLy9zaG9ydC1jaXJjdWl0IGV2ZXJ5dGhpbmcgZWxzZVxuICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKGtleSk7XG4gICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAga2V5ID0gW2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNob29zZUxvY2FsZShrZXkpO1xufVxuXG5mdW5jdGlvbiBsaXN0TG9jYWxlcygpIHtcbiAgICByZXR1cm4ga2V5cyhsb2NhbGVzKTtcbn1cblxuZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyhtKSB7XG4gICAgdmFyIG92ZXJmbG93LFxuICAgICAgICBhID0gbS5fYTtcblxuICAgIGlmIChhICYmIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9PT0gLTIpIHtcbiAgICAgICAgb3ZlcmZsb3cgPVxuICAgICAgICAgICAgYVtNT05USF0gPCAwIHx8IGFbTU9OVEhdID4gMTFcbiAgICAgICAgICAgICAgICA/IE1PTlRIXG4gICAgICAgICAgICAgICAgOiBhW0RBVEVdIDwgMSB8fCBhW0RBVEVdID4gZGF5c0luTW9udGgoYVtZRUFSXSwgYVtNT05USF0pXG4gICAgICAgICAgICAgICAgPyBEQVRFXG4gICAgICAgICAgICAgICAgOiBhW0hPVVJdIDwgMCB8fFxuICAgICAgICAgICAgICAgICAgYVtIT1VSXSA+IDI0IHx8XG4gICAgICAgICAgICAgICAgICAoYVtIT1VSXSA9PT0gMjQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoYVtNSU5VVEVdICE9PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFbU0VDT05EXSAhPT0gMCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhW01JTExJU0VDT05EXSAhPT0gMCkpXG4gICAgICAgICAgICAgICAgPyBIT1VSXG4gICAgICAgICAgICAgICAgOiBhW01JTlVURV0gPCAwIHx8IGFbTUlOVVRFXSA+IDU5XG4gICAgICAgICAgICAgICAgPyBNSU5VVEVcbiAgICAgICAgICAgICAgICA6IGFbU0VDT05EXSA8IDAgfHwgYVtTRUNPTkRdID4gNTlcbiAgICAgICAgICAgICAgICA/IFNFQ09ORFxuICAgICAgICAgICAgICAgIDogYVtNSUxMSVNFQ09ORF0gPCAwIHx8IGFbTUlMTElTRUNPTkRdID4gOTk5XG4gICAgICAgICAgICAgICAgPyBNSUxMSVNFQ09ORFxuICAgICAgICAgICAgICAgIDogLTE7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd0RheU9mWWVhciAmJlxuICAgICAgICAgICAgKG92ZXJmbG93IDwgWUVBUiB8fCBvdmVyZmxvdyA+IERBVEUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgb3ZlcmZsb3cgPSBEQVRFO1xuICAgICAgICB9XG4gICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93V2Vla3MgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICBvdmVyZmxvdyA9IFdFRUs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrZGF5ICYmIG92ZXJmbG93ID09PSAtMSkge1xuICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLREFZO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLm92ZXJmbG93ID0gb3ZlcmZsb3c7XG4gICAgfVxuXG4gICAgcmV0dXJuIG07XG59XG5cbi8vIGlzbyA4NjAxIHJlZ2V4XG4vLyAwMDAwLTAwLTAwIDAwMDAtVzAwIG9yIDAwMDAtVzAwLTAgKyBUICsgMDAgb3IgMDA6MDAgb3IgMDA6MDA6MDAgb3IgMDA6MDA6MDAuMDAwICsgKzAwOjAwIG9yICswMDAwIG9yICswMClcbnZhciBleHRlbmRlZElzb1JlZ2V4ID0gL15cXHMqKCg/OlsrLV1cXGR7Nn18XFxkezR9KS0oPzpcXGRcXGQtXFxkXFxkfFdcXGRcXGQtXFxkfFdcXGRcXGR8XFxkXFxkXFxkfFxcZFxcZCkpKD86KFR8ICkoXFxkXFxkKD86OlxcZFxcZCg/OjpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoWystXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC8sXG4gICAgYmFzaWNJc29SZWdleCA9IC9eXFxzKigoPzpbKy1dXFxkezZ9fFxcZHs0fSkoPzpcXGRcXGRcXGRcXGR8V1xcZFxcZFxcZHxXXFxkXFxkfFxcZFxcZFxcZHxcXGRcXGR8KSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoWystXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC8sXG4gICAgdHpSZWdleCA9IC9afFsrLV1cXGRcXGQoPzo6P1xcZFxcZCk/LyxcbiAgICBpc29EYXRlcyA9IFtcbiAgICAgICAgWydZWVlZWVktTU0tREQnLCAvWystXVxcZHs2fS1cXGRcXGQtXFxkXFxkL10sXG4gICAgICAgIFsnWVlZWS1NTS1ERCcsIC9cXGR7NH0tXFxkXFxkLVxcZFxcZC9dLFxuICAgICAgICBbJ0dHR0ctW1ddV1ctRScsIC9cXGR7NH0tV1xcZFxcZC1cXGQvXSxcbiAgICAgICAgWydHR0dHLVtXXVdXJywgL1xcZHs0fS1XXFxkXFxkLywgZmFsc2VdLFxuICAgICAgICBbJ1lZWVktREREJywgL1xcZHs0fS1cXGR7M30vXSxcbiAgICAgICAgWydZWVlZLU1NJywgL1xcZHs0fS1cXGRcXGQvLCBmYWxzZV0sXG4gICAgICAgIFsnWVlZWVlZTU1ERCcsIC9bKy1dXFxkezEwfS9dLFxuICAgICAgICBbJ1lZWVlNTUREJywgL1xcZHs4fS9dLFxuICAgICAgICBbJ0dHR0dbV11XV0UnLCAvXFxkezR9V1xcZHszfS9dLFxuICAgICAgICBbJ0dHR0dbV11XVycsIC9cXGR7NH1XXFxkezJ9LywgZmFsc2VdLFxuICAgICAgICBbJ1lZWVlEREQnLCAvXFxkezd9L10sXG4gICAgICAgIFsnWVlZWU1NJywgL1xcZHs2fS8sIGZhbHNlXSxcbiAgICAgICAgWydZWVlZJywgL1xcZHs0fS8sIGZhbHNlXSxcbiAgICBdLFxuICAgIC8vIGlzbyB0aW1lIGZvcm1hdHMgYW5kIHJlZ2V4ZXNcbiAgICBpc29UaW1lcyA9IFtcbiAgICAgICAgWydISDptbTpzcy5TU1NTJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkXFwuXFxkKy9dLFxuICAgICAgICBbJ0hIOm1tOnNzLFNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGQsXFxkKy9dLFxuICAgICAgICBbJ0hIOm1tOnNzJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgIFsnSEg6bW0nLCAvXFxkXFxkOlxcZFxcZC9dLFxuICAgICAgICBbJ0hIbW1zcy5TU1NTJywgL1xcZFxcZFxcZFxcZFxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgWydISG1tc3MsU1NTUycsIC9cXGRcXGRcXGRcXGRcXGRcXGQsXFxkKy9dLFxuICAgICAgICBbJ0hIbW1zcycsIC9cXGRcXGRcXGRcXGRcXGRcXGQvXSxcbiAgICAgICAgWydISG1tJywgL1xcZFxcZFxcZFxcZC9dLFxuICAgICAgICBbJ0hIJywgL1xcZFxcZC9dLFxuICAgIF0sXG4gICAgYXNwTmV0SnNvblJlZ2V4ID0gL15cXC8/RGF0ZVxcKCgtP1xcZCspL2ksXG4gICAgLy8gUkZDIDI4MjIgcmVnZXg6IEZvciBkZXRhaWxzIHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjgyMiNzZWN0aW9uLTMuM1xuICAgIHJmYzI4MjIgPSAvXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLD9cXHMpPyhcXGR7MSwyfSlcXHMoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXFxzKFxcZHsyLDR9KVxccyhcXGRcXGQpOihcXGRcXGQpKD86OihcXGRcXGQpKT9cXHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KFsrLV1cXGR7NH0pKSQvLFxuICAgIG9ic09mZnNldHMgPSB7XG4gICAgICAgIFVUOiAwLFxuICAgICAgICBHTVQ6IDAsXG4gICAgICAgIEVEVDogLTQgKiA2MCxcbiAgICAgICAgRVNUOiAtNSAqIDYwLFxuICAgICAgICBDRFQ6IC01ICogNjAsXG4gICAgICAgIENTVDogLTYgKiA2MCxcbiAgICAgICAgTURUOiAtNiAqIDYwLFxuICAgICAgICBNU1Q6IC03ICogNjAsXG4gICAgICAgIFBEVDogLTcgKiA2MCxcbiAgICAgICAgUFNUOiAtOCAqIDYwLFxuICAgIH07XG5cbi8vIGRhdGUgZnJvbSBpc28gZm9ybWF0XG5mdW5jdGlvbiBjb25maWdGcm9tSVNPKGNvbmZpZykge1xuICAgIHZhciBpLFxuICAgICAgICBsLFxuICAgICAgICBzdHJpbmcgPSBjb25maWcuX2ksXG4gICAgICAgIG1hdGNoID0gZXh0ZW5kZWRJc29SZWdleC5leGVjKHN0cmluZykgfHwgYmFzaWNJc29SZWdleC5leGVjKHN0cmluZyksXG4gICAgICAgIGFsbG93VGltZSxcbiAgICAgICAgZGF0ZUZvcm1hdCxcbiAgICAgICAgdGltZUZvcm1hdCxcbiAgICAgICAgdHpGb3JtYXQ7XG5cbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaXNvID0gdHJ1ZTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvRGF0ZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaXNvRGF0ZXNbaV1bMV0uZXhlYyhtYXRjaFsxXSkpIHtcbiAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ID0gaXNvRGF0ZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgYWxsb3dUaW1lID0gaXNvRGF0ZXNbaV1bMl0gIT09IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRlRm9ybWF0ID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXRjaFszXSkge1xuICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb1RpbWVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpc29UaW1lc1tpXVsxXS5leGVjKG1hdGNoWzNdKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaFsyXSBzaG91bGQgYmUgJ1QnIG9yIHNwYWNlXG4gICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQgPSAobWF0Y2hbMl0gfHwgJyAnKSArIGlzb1RpbWVzW2ldWzBdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGltZUZvcm1hdCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghYWxsb3dUaW1lICYmIHRpbWVGb3JtYXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoWzRdKSB7XG4gICAgICAgICAgICBpZiAodHpSZWdleC5leGVjKG1hdGNoWzRdKSkge1xuICAgICAgICAgICAgICAgIHR6Rm9ybWF0ID0gJ1onO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uZmlnLl9mID0gZGF0ZUZvcm1hdCArICh0aW1lRm9ybWF0IHx8ICcnKSArICh0ekZvcm1hdCB8fCAnJyk7XG4gICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MoXG4gICAgeWVhclN0cixcbiAgICBtb250aFN0cixcbiAgICBkYXlTdHIsXG4gICAgaG91clN0cixcbiAgICBtaW51dGVTdHIsXG4gICAgc2Vjb25kU3RyXG4pIHtcbiAgICB2YXIgcmVzdWx0ID0gW1xuICAgICAgICB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpLFxuICAgICAgICBwYXJzZUludChkYXlTdHIsIDEwKSxcbiAgICAgICAgcGFyc2VJbnQoaG91clN0ciwgMTApLFxuICAgICAgICBwYXJzZUludChtaW51dGVTdHIsIDEwKSxcbiAgICBdO1xuXG4gICAgaWYgKHNlY29uZFN0cikge1xuICAgICAgICByZXN1bHQucHVzaChwYXJzZUludChzZWNvbmRTdHIsIDEwKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gdW50cnVuY2F0ZVllYXIoeWVhclN0cikge1xuICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoeWVhclN0ciwgMTApO1xuICAgIGlmICh5ZWFyIDw9IDQ5KSB7XG4gICAgICAgIHJldHVybiAyMDAwICsgeWVhcjtcbiAgICB9IGVsc2UgaWYgKHllYXIgPD0gOTk5KSB7XG4gICAgICAgIHJldHVybiAxOTAwICsgeWVhcjtcbiAgICB9XG4gICAgcmV0dXJuIHllYXI7XG59XG5cbmZ1bmN0aW9uIHByZXByb2Nlc3NSRkMyODIyKHMpIHtcbiAgICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICAgIHJldHVybiBzXG4gICAgICAgIC5yZXBsYWNlKC9cXChbXildKlxcKXxbXFxuXFx0XS9nLCAnICcpXG4gICAgICAgIC5yZXBsYWNlKC8oXFxzXFxzKykvZywgJyAnKVxuICAgICAgICAucmVwbGFjZSgvXlxcc1xccyovLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xufVxuXG5mdW5jdGlvbiBjaGVja1dlZWtkYXkod2Vla2RheVN0ciwgcGFyc2VkSW5wdXQsIGNvbmZpZykge1xuICAgIGlmICh3ZWVrZGF5U3RyKSB7XG4gICAgICAgIC8vIFRPRE86IFJlcGxhY2UgdGhlIHZhbmlsbGEgSlMgRGF0ZSBvYmplY3Qgd2l0aCBhbiBpbmRlcGVuZGVudCBkYXktb2Ytd2VlayBjaGVjay5cbiAgICAgICAgdmFyIHdlZWtkYXlQcm92aWRlZCA9IGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0ciksXG4gICAgICAgICAgICB3ZWVrZGF5QWN0dWFsID0gbmV3IERhdGUoXG4gICAgICAgICAgICAgICAgcGFyc2VkSW5wdXRbMF0sXG4gICAgICAgICAgICAgICAgcGFyc2VkSW5wdXRbMV0sXG4gICAgICAgICAgICAgICAgcGFyc2VkSW5wdXRbMl1cbiAgICAgICAgICAgICkuZ2V0RGF5KCk7XG4gICAgICAgIGlmICh3ZWVrZGF5UHJvdmlkZWQgIT09IHdlZWtkYXlBY3R1YWwpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLndlZWtkYXlNaXNtYXRjaCA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlT2Zmc2V0KG9ic09mZnNldCwgbWlsaXRhcnlPZmZzZXQsIG51bU9mZnNldCkge1xuICAgIGlmIChvYnNPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIG9ic09mZnNldHNbb2JzT2Zmc2V0XTtcbiAgICB9IGVsc2UgaWYgKG1pbGl0YXJ5T2Zmc2V0KSB7XG4gICAgICAgIC8vIHRoZSBvbmx5IGFsbG93ZWQgbWlsaXRhcnkgdHogaXMgWlxuICAgICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgaG0gPSBwYXJzZUludChudW1PZmZzZXQsIDEwKSxcbiAgICAgICAgICAgIG0gPSBobSAlIDEwMCxcbiAgICAgICAgICAgIGggPSAoaG0gLSBtKSAvIDEwMDtcbiAgICAgICAgcmV0dXJuIGggKiA2MCArIG07XG4gICAgfVxufVxuXG4vLyBkYXRlIGFuZCB0aW1lIGZyb20gcmVmIDI4MjIgZm9ybWF0XG5mdW5jdGlvbiBjb25maWdGcm9tUkZDMjgyMihjb25maWcpIHtcbiAgICB2YXIgbWF0Y2ggPSByZmMyODIyLmV4ZWMocHJlcHJvY2Vzc1JGQzI4MjIoY29uZmlnLl9pKSksXG4gICAgICAgIHBhcnNlZEFycmF5O1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgICBwYXJzZWRBcnJheSA9IGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MoXG4gICAgICAgICAgICBtYXRjaFs0XSxcbiAgICAgICAgICAgIG1hdGNoWzNdLFxuICAgICAgICAgICAgbWF0Y2hbMl0sXG4gICAgICAgICAgICBtYXRjaFs1XSxcbiAgICAgICAgICAgIG1hdGNoWzZdLFxuICAgICAgICAgICAgbWF0Y2hbN11cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFjaGVja1dlZWtkYXkobWF0Y2hbMV0sIHBhcnNlZEFycmF5LCBjb25maWcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWcuX2EgPSBwYXJzZWRBcnJheTtcbiAgICAgICAgY29uZmlnLl90em0gPSBjYWxjdWxhdGVPZmZzZXQobWF0Y2hbOF0sIG1hdGNoWzldLCBtYXRjaFsxMF0pO1xuXG4gICAgICAgIGNvbmZpZy5fZCA9IGNyZWF0ZVVUQ0RhdGUuYXBwbHkobnVsbCwgY29uZmlnLl9hKTtcbiAgICAgICAgY29uZmlnLl9kLnNldFVUQ01pbnV0ZXMoY29uZmlnLl9kLmdldFVUQ01pbnV0ZXMoKSAtIGNvbmZpZy5fdHptKTtcblxuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5yZmMyODIyID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICB9XG59XG5cbi8vIGRhdGUgZnJvbSAxKSBBU1AuTkVULCAyKSBJU08sIDMpIFJGQyAyODIyIGZvcm1hdHMsIG9yIDQpIG9wdGlvbmFsIGZhbGxiYWNrIGlmIHBhcnNpbmcgaXNuJ3Qgc3RyaWN0XG5mdW5jdGlvbiBjb25maWdGcm9tU3RyaW5nKGNvbmZpZykge1xuICAgIHZhciBtYXRjaGVkID0gYXNwTmV0SnNvblJlZ2V4LmV4ZWMoY29uZmlnLl9pKTtcbiAgICBpZiAobWF0Y2hlZCAhPT0gbnVsbCkge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgrbWF0Y2hlZFsxXSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICBkZWxldGUgY29uZmlnLl9pc1ZhbGlkO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLl9zdHJpY3QpIHtcbiAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRmluYWwgYXR0ZW1wdCwgdXNlIElucHV0IEZhbGxiYWNrXG4gICAgICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrKGNvbmZpZyk7XG4gICAgfVxufVxuXG5ob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayA9IGRlcHJlY2F0ZShcbiAgICAndmFsdWUgcHJvdmlkZWQgaXMgbm90IGluIGEgcmVjb2duaXplZCBSRkMyODIyIG9yIElTTyBmb3JtYXQuIG1vbWVudCBjb25zdHJ1Y3Rpb24gZmFsbHMgYmFjayB0byBqcyBEYXRlKCksICcgK1xuICAgICAgICAnd2hpY2ggaXMgbm90IHJlbGlhYmxlIGFjcm9zcyBhbGwgYnJvd3NlcnMgYW5kIHZlcnNpb25zLiBOb24gUkZDMjgyMi9JU08gZGF0ZSBmb3JtYXRzIGFyZSAnICtcbiAgICAgICAgJ2Rpc2NvdXJhZ2VkLiBQbGVhc2UgcmVmZXIgdG8gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9qcy1kYXRlLyBmb3IgbW9yZSBpbmZvLicsXG4gICAgZnVuY3Rpb24gKGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpO1xuICAgIH1cbik7XG5cbi8vIFBpY2sgdGhlIGZpcnN0IGRlZmluZWQgb2YgdHdvIG9yIHRocmVlIGFyZ3VtZW50cy5cbmZ1bmN0aW9uIGRlZmF1bHRzKGEsIGIsIGMpIHtcbiAgICBpZiAoYSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBhO1xuICAgIH1cbiAgICBpZiAoYiAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBiO1xuICAgIH1cbiAgICByZXR1cm4gYztcbn1cblxuZnVuY3Rpb24gY3VycmVudERhdGVBcnJheShjb25maWcpIHtcbiAgICAvLyBob29rcyBpcyBhY3R1YWxseSB0aGUgZXhwb3J0ZWQgbW9tZW50IG9iamVjdFxuICAgIHZhciBub3dWYWx1ZSA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICBpZiAoY29uZmlnLl91c2VVVEMpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG5vd1ZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgICAgICAgICBub3dWYWx1ZS5nZXRVVENNb250aCgpLFxuICAgICAgICAgICAgbm93VmFsdWUuZ2V0VVRDRGF0ZSgpLFxuICAgICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW25vd1ZhbHVlLmdldEZ1bGxZZWFyKCksIG5vd1ZhbHVlLmdldE1vbnRoKCksIG5vd1ZhbHVlLmdldERhdGUoKV07XG59XG5cbi8vIGNvbnZlcnQgYW4gYXJyYXkgdG8gYSBkYXRlLlxuLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3dcbi8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLlxuLy8gW3llYXIsIG1vbnRoLCBkYXkgLCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdXG5mdW5jdGlvbiBjb25maWdGcm9tQXJyYXkoY29uZmlnKSB7XG4gICAgdmFyIGksXG4gICAgICAgIGRhdGUsXG4gICAgICAgIGlucHV0ID0gW10sXG4gICAgICAgIGN1cnJlbnREYXRlLFxuICAgICAgICBleHBlY3RlZFdlZWtkYXksXG4gICAgICAgIHllYXJUb1VzZTtcblxuICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGVBcnJheShjb25maWcpO1xuXG4gICAgLy9jb21wdXRlIGRheSBvZiB0aGUgeWVhciBmcm9tIHdlZWtzIGFuZCB3ZWVrZGF5c1xuICAgIGlmIChjb25maWcuX3cgJiYgY29uZmlnLl9hW0RBVEVdID09IG51bGwgJiYgY29uZmlnLl9hW01PTlRIXSA9PSBudWxsKSB7XG4gICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpO1xuICAgIH1cblxuICAgIC8vaWYgdGhlIGRheSBvZiB0aGUgeWVhciBpcyBzZXQsIGZpZ3VyZSBvdXQgd2hhdCBpdCBpc1xuICAgIGlmIChjb25maWcuX2RheU9mWWVhciAhPSBudWxsKSB7XG4gICAgICAgIHllYXJUb1VzZSA9IGRlZmF1bHRzKGNvbmZpZy5fYVtZRUFSXSwgY3VycmVudERhdGVbWUVBUl0pO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyVG9Vc2UpIHx8XG4gICAgICAgICAgICBjb25maWcuX2RheU9mWWVhciA9PT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd0RheU9mWWVhciA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZSh5ZWFyVG9Vc2UsIDAsIGNvbmZpZy5fZGF5T2ZZZWFyKTtcbiAgICAgICAgY29uZmlnLl9hW01PTlRIXSA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgY29uZmlnLl9hW0RBVEVdID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IGRhdGUuXG4gICAgLy8gKiBpZiBubyB5ZWFyLCBtb250aCwgZGF5IG9mIG1vbnRoIGFyZSBnaXZlbiwgZGVmYXVsdCB0byB0b2RheVxuICAgIC8vICogaWYgZGF5IG9mIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG1vbnRoIGFuZCB5ZWFyXG4gICAgLy8gKiBpZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBvbmx5IHllYXJcbiAgICAvLyAqIGlmIHllYXIgaXMgZ2l2ZW4sIGRvbid0IGRlZmF1bHQgYW55dGhpbmdcbiAgICBmb3IgKGkgPSAwOyBpIDwgMyAmJiBjb25maWcuX2FbaV0gPT0gbnVsbDsgKytpKSB7XG4gICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gY3VycmVudERhdGVbaV07XG4gICAgfVxuXG4gICAgLy8gWmVybyBvdXQgd2hhdGV2ZXIgd2FzIG5vdCBkZWZhdWx0ZWQsIGluY2x1ZGluZyB0aW1lXG4gICAgZm9yICg7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgY29uZmlnLl9hW2ldID0gaW5wdXRbaV0gPVxuICAgICAgICAgICAgY29uZmlnLl9hW2ldID09IG51bGwgPyAoaSA9PT0gMiA/IDEgOiAwKSA6IGNvbmZpZy5fYVtpXTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgMjQ6MDA6MDAuMDAwXG4gICAgaWYgKFxuICAgICAgICBjb25maWcuX2FbSE9VUl0gPT09IDI0ICYmXG4gICAgICAgIGNvbmZpZy5fYVtNSU5VVEVdID09PSAwICYmXG4gICAgICAgIGNvbmZpZy5fYVtTRUNPTkRdID09PSAwICYmXG4gICAgICAgIGNvbmZpZy5fYVtNSUxMSVNFQ09ORF0gPT09IDBcbiAgICApIHtcbiAgICAgICAgY29uZmlnLl9uZXh0RGF5ID0gdHJ1ZTtcbiAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMDtcbiAgICB9XG5cbiAgICBjb25maWcuX2QgPSAoY29uZmlnLl91c2VVVEMgPyBjcmVhdGVVVENEYXRlIDogY3JlYXRlRGF0ZSkuYXBwbHkoXG4gICAgICAgIG51bGwsXG4gICAgICAgIGlucHV0XG4gICAgKTtcbiAgICBleHBlY3RlZFdlZWtkYXkgPSBjb25maWcuX3VzZVVUQ1xuICAgICAgICA/IGNvbmZpZy5fZC5nZXRVVENEYXkoKVxuICAgICAgICA6IGNvbmZpZy5fZC5nZXREYXkoKTtcblxuICAgIC8vIEFwcGx5IHRpbWV6b25lIG9mZnNldCBmcm9tIGlucHV0LiBUaGUgYWN0dWFsIHV0Y09mZnNldCBjYW4gYmUgY2hhbmdlZFxuICAgIC8vIHdpdGggcGFyc2Vab25lLlxuICAgIGlmIChjb25maWcuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgLSBjb25maWcuX3R6bSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5fbmV4dERheSkge1xuICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAyNDtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBmb3IgbWlzbWF0Y2hpbmcgZGF5IG9mIHdlZWtcbiAgICBpZiAoXG4gICAgICAgIGNvbmZpZy5fdyAmJlxuICAgICAgICB0eXBlb2YgY29uZmlnLl93LmQgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIGNvbmZpZy5fdy5kICE9PSBleHBlY3RlZFdlZWtkYXlcbiAgICApIHtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpIHtcbiAgICB2YXIgdywgd2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95LCB0ZW1wLCB3ZWVrZGF5T3ZlcmZsb3csIGN1cldlZWs7XG5cbiAgICB3ID0gY29uZmlnLl93O1xuICAgIGlmICh3LkdHICE9IG51bGwgfHwgdy5XICE9IG51bGwgfHwgdy5FICE9IG51bGwpIHtcbiAgICAgICAgZG93ID0gMTtcbiAgICAgICAgZG95ID0gNDtcblxuICAgICAgICAvLyBUT0RPOiBXZSBuZWVkIHRvIHRha2UgdGhlIGN1cnJlbnQgaXNvV2Vla1llYXIsIGJ1dCB0aGF0IGRlcGVuZHMgb25cbiAgICAgICAgLy8gaG93IHdlIGludGVycHJldCBub3cgKGxvY2FsLCB1dGMsIGZpeGVkIG9mZnNldCkuIFNvIGNyZWF0ZVxuICAgICAgICAvLyBhIG5vdyB2ZXJzaW9uIG9mIGN1cnJlbnQgY29uZmlnICh0YWtlIGxvY2FsL3V0Yy9vZmZzZXQgZmxhZ3MsIGFuZFxuICAgICAgICAvLyBjcmVhdGUgbm93KS5cbiAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyhcbiAgICAgICAgICAgIHcuR0csXG4gICAgICAgICAgICBjb25maWcuX2FbWUVBUl0sXG4gICAgICAgICAgICB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIDEsIDQpLnllYXJcbiAgICAgICAgKTtcbiAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcuVywgMSk7XG4gICAgICAgIHdlZWtkYXkgPSBkZWZhdWx0cyh3LkUsIDEpO1xuICAgICAgICBpZiAod2Vla2RheSA8IDEgfHwgd2Vla2RheSA+IDcpIHtcbiAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBkb3cgPSBjb25maWcuX2xvY2FsZS5fd2Vlay5kb3c7XG4gICAgICAgIGRveSA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRveTtcblxuICAgICAgICBjdXJXZWVrID0gd2Vla09mWWVhcihjcmVhdGVMb2NhbCgpLCBkb3csIGRveSk7XG5cbiAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyh3LmdnLCBjb25maWcuX2FbWUVBUl0sIGN1cldlZWsueWVhcik7XG5cbiAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHdlZWsuXG4gICAgICAgIHdlZWsgPSBkZWZhdWx0cyh3LncsIGN1cldlZWsud2Vlayk7XG5cbiAgICAgICAgaWYgKHcuZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyB3ZWVrZGF5IC0tIGxvdyBkYXkgbnVtYmVycyBhcmUgY29uc2lkZXJlZCBuZXh0IHdlZWtcbiAgICAgICAgICAgIHdlZWtkYXkgPSB3LmQ7XG4gICAgICAgICAgICBpZiAod2Vla2RheSA8IDAgfHwgd2Vla2RheSA+IDYpIHtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHcuZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBsb2NhbCB3ZWVrZGF5IC0tIGNvdW50aW5nIHN0YXJ0cyBmcm9tIGJlZ2lubmluZyBvZiB3ZWVrXG4gICAgICAgICAgICB3ZWVrZGF5ID0gdy5lICsgZG93O1xuICAgICAgICAgICAgaWYgKHcuZSA8IDAgfHwgdy5lID4gNikge1xuICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBkZWZhdWx0IHRvIGJlZ2lubmluZyBvZiB3ZWVrXG4gICAgICAgICAgICB3ZWVrZGF5ID0gZG93O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh3ZWVrIDwgMSB8fCB3ZWVrID4gd2Vla3NJblllYXIod2Vla1llYXIsIGRvdywgZG95KSkge1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrcyA9IHRydWU7XG4gICAgfSBlbHNlIGlmICh3ZWVrZGF5T3ZlcmZsb3cgIT0gbnVsbCkge1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrZGF5ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0ZW1wID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSk7XG4gICAgICAgIGNvbmZpZy5fYVtZRUFSXSA9IHRlbXAueWVhcjtcbiAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0ZW1wLmRheU9mWWVhcjtcbiAgICB9XG59XG5cbi8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBJU08gc3RhbmRhcmRcbmhvb2tzLklTT184NjAxID0gZnVuY3Rpb24gKCkge307XG5cbi8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBSRkMgMjgyMiBmb3JtXG5ob29rcy5SRkNfMjgyMiA9IGZ1bmN0aW9uICgpIHt9O1xuXG4vLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBmb3JtYXQgc3RyaW5nXG5mdW5jdGlvbiBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZykge1xuICAgIC8vIFRPRE86IE1vdmUgdGhpcyB0byBhbm90aGVyIHBhcnQgb2YgdGhlIGNyZWF0aW9uIGZsb3cgdG8gcHJldmVudCBjaXJjdWxhciBkZXBzXG4gICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuSVNPXzg2MDEpIHtcbiAgICAgICAgY29uZmlnRnJvbUlTTyhjb25maWcpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjb25maWcuX2YgPT09IGhvb2tzLlJGQ18yODIyKSB7XG4gICAgICAgIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uZmlnLl9hID0gW107XG4gICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSB0cnVlO1xuXG4gICAgLy8gVGhpcyBhcnJheSBpcyB1c2VkIHRvIG1ha2UgYSBEYXRlLCBlaXRoZXIgd2l0aCBgbmV3IERhdGVgIG9yIGBEYXRlLlVUQ2BcbiAgICB2YXIgc3RyaW5nID0gJycgKyBjb25maWcuX2ksXG4gICAgICAgIGksXG4gICAgICAgIHBhcnNlZElucHV0LFxuICAgICAgICB0b2tlbnMsXG4gICAgICAgIHRva2VuLFxuICAgICAgICBza2lwcGVkLFxuICAgICAgICBzdHJpbmdMZW5ndGggPSBzdHJpbmcubGVuZ3RoLFxuICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoID0gMCxcbiAgICAgICAgZXJhO1xuXG4gICAgdG9rZW5zID1cbiAgICAgICAgZXhwYW5kRm9ybWF0KGNvbmZpZy5fZiwgY29uZmlnLl9sb2NhbGUpLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpIHx8IFtdO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0b2tlbiA9IHRva2Vuc1tpXTtcbiAgICAgICAgcGFyc2VkSW5wdXQgPSAoc3RyaW5nLm1hdGNoKGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSkgfHxcbiAgICAgICAgICAgIFtdKVswXTtcbiAgICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICBza2lwcGVkID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkpO1xuICAgICAgICAgICAgaWYgKHNraXBwZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZElucHV0LnB1c2goc2tpcHBlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdHJpbmcgPSBzdHJpbmcuc2xpY2UoXG4gICAgICAgICAgICAgICAgc3RyaW5nLmluZGV4T2YocGFyc2VkSW5wdXQpICsgcGFyc2VkSW5wdXQubGVuZ3RoXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCArPSBwYXJzZWRJbnB1dC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZG9uJ3QgcGFyc2UgaWYgaXQncyBub3QgYSBrbm93biB0b2tlblxuICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lbXB0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgcGFyc2VkSW5wdXQsIGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLl9zdHJpY3QgJiYgIXBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhZGQgcmVtYWluaW5nIHVucGFyc2VkIGlucHV0IGxlbmd0aCB0byB0aGUgc3RyaW5nXG4gICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuY2hhcnNMZWZ0T3ZlciA9XG4gICAgICAgIHN0cmluZ0xlbmd0aCAtIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGg7XG4gICAgaWYgKHN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZElucHV0LnB1c2goc3RyaW5nKTtcbiAgICB9XG5cbiAgICAvLyBjbGVhciBfMTJoIGZsYWcgaWYgaG91ciBpcyA8PSAxMlxuICAgIGlmIChcbiAgICAgICAgY29uZmlnLl9hW0hPVVJdIDw9IDEyICYmXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPT09IHRydWUgJiZcbiAgICAgICAgY29uZmlnLl9hW0hPVVJdID4gMFxuICAgICkge1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnBhcnNlZERhdGVQYXJ0cyA9IGNvbmZpZy5fYS5zbGljZSgwKTtcbiAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5tZXJpZGllbSA9IGNvbmZpZy5fbWVyaWRpZW07XG4gICAgLy8gaGFuZGxlIG1lcmlkaWVtXG4gICAgY29uZmlnLl9hW0hPVVJdID0gbWVyaWRpZW1GaXhXcmFwKFxuICAgICAgICBjb25maWcuX2xvY2FsZSxcbiAgICAgICAgY29uZmlnLl9hW0hPVVJdLFxuICAgICAgICBjb25maWcuX21lcmlkaWVtXG4gICAgKTtcblxuICAgIC8vIGhhbmRsZSBlcmFcbiAgICBlcmEgPSBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lcmE7XG4gICAgaWYgKGVyYSAhPT0gbnVsbCkge1xuICAgICAgICBjb25maWcuX2FbWUVBUl0gPSBjb25maWcuX2xvY2FsZS5lcmFzQ29udmVydFllYXIoZXJhLCBjb25maWcuX2FbWUVBUl0pO1xuICAgIH1cblxuICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgIGNoZWNrT3ZlcmZsb3coY29uZmlnKTtcbn1cblxuZnVuY3Rpb24gbWVyaWRpZW1GaXhXcmFwKGxvY2FsZSwgaG91ciwgbWVyaWRpZW0pIHtcbiAgICB2YXIgaXNQbTtcblxuICAgIGlmIChtZXJpZGllbSA9PSBudWxsKSB7XG4gICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgfVxuICAgIGlmIChsb2NhbGUubWVyaWRpZW1Ib3VyICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5tZXJpZGllbUhvdXIoaG91ciwgbWVyaWRpZW0pO1xuICAgIH0gZWxzZSBpZiAobG9jYWxlLmlzUE0gIT0gbnVsbCkge1xuICAgICAgICAvLyBGYWxsYmFja1xuICAgICAgICBpc1BtID0gbG9jYWxlLmlzUE0obWVyaWRpZW0pO1xuICAgICAgICBpZiAoaXNQbSAmJiBob3VyIDwgMTIpIHtcbiAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1BtICYmIGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaG91cjtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0aGlzIGlzIG5vdCBzdXBwb3NlZCB0byBoYXBwZW5cbiAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgfVxufVxuXG4vLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBhcnJheSBvZiBmb3JtYXQgc3RyaW5nc1xuZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZykge1xuICAgIHZhciB0ZW1wQ29uZmlnLFxuICAgICAgICBiZXN0TW9tZW50LFxuICAgICAgICBzY29yZVRvQmVhdCxcbiAgICAgICAgaSxcbiAgICAgICAgY3VycmVudFNjb3JlLFxuICAgICAgICB2YWxpZEZvcm1hdEZvdW5kLFxuICAgICAgICBiZXN0Rm9ybWF0SXNWYWxpZCA9IGZhbHNlO1xuXG4gICAgaWYgKGNvbmZpZy5fZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEZvcm1hdCA9IHRydWU7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKE5hTik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgY29uZmlnLl9mLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGN1cnJlbnRTY29yZSA9IDA7XG4gICAgICAgIHZhbGlkRm9ybWF0Rm91bmQgPSBmYWxzZTtcbiAgICAgICAgdGVtcENvbmZpZyA9IGNvcHlDb25maWcoe30sIGNvbmZpZyk7XG4gICAgICAgIGlmIChjb25maWcuX3VzZVVUQyAhPSBudWxsKSB7XG4gICAgICAgICAgICB0ZW1wQ29uZmlnLl91c2VVVEMgPSBjb25maWcuX3VzZVVUQztcbiAgICAgICAgfVxuICAgICAgICB0ZW1wQ29uZmlnLl9mID0gY29uZmlnLl9mW2ldO1xuICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KHRlbXBDb25maWcpO1xuXG4gICAgICAgIGlmIChpc1ZhbGlkKHRlbXBDb25maWcpKSB7XG4gICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHRoZXJlIGlzIGFueSBpbnB1dCB0aGF0IHdhcyBub3QgcGFyc2VkIGFkZCBhIHBlbmFsdHkgZm9yIHRoYXQgZm9ybWF0XG4gICAgICAgIGN1cnJlbnRTY29yZSArPSBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuY2hhcnNMZWZ0T3ZlcjtcblxuICAgICAgICAvL29yIHRva2Vuc1xuICAgICAgICBjdXJyZW50U2NvcmUgKz0gZ2V0UGFyc2luZ0ZsYWdzKHRlbXBDb25maWcpLnVudXNlZFRva2Vucy5sZW5ndGggKiAxMDtcblxuICAgICAgICBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuc2NvcmUgPSBjdXJyZW50U2NvcmU7XG5cbiAgICAgICAgaWYgKCFiZXN0Rm9ybWF0SXNWYWxpZCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCB8fFxuICAgICAgICAgICAgICAgIHZhbGlkRm9ybWF0Rm91bmRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgIGJlc3RNb21lbnQgPSB0ZW1wQ29uZmlnO1xuICAgICAgICAgICAgICAgIGlmICh2YWxpZEZvcm1hdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RGb3JtYXRJc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFNjb3JlIDwgc2NvcmVUb0JlYXQpIHtcbiAgICAgICAgICAgICAgICBzY29yZVRvQmVhdCA9IGN1cnJlbnRTY29yZTtcbiAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4dGVuZChjb25maWcsIGJlc3RNb21lbnQgfHwgdGVtcENvbmZpZyk7XG59XG5cbmZ1bmN0aW9uIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5fZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGkgPSBub3JtYWxpemVPYmplY3RVbml0cyhjb25maWcuX2kpLFxuICAgICAgICBkYXlPckRhdGUgPSBpLmRheSA9PT0gdW5kZWZpbmVkID8gaS5kYXRlIDogaS5kYXk7XG4gICAgY29uZmlnLl9hID0gbWFwKFxuICAgICAgICBbaS55ZWFyLCBpLm1vbnRoLCBkYXlPckRhdGUsIGkuaG91ciwgaS5taW51dGUsIGkuc2Vjb25kLCBpLm1pbGxpc2Vjb25kXSxcbiAgICAgICAgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgcmV0dXJuIG9iaiAmJiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRnJvbUNvbmZpZyhjb25maWcpIHtcbiAgICB2YXIgcmVzID0gbmV3IE1vbWVudChjaGVja092ZXJmbG93KHByZXBhcmVDb25maWcoY29uZmlnKSkpO1xuICAgIGlmIChyZXMuX25leHREYXkpIHtcbiAgICAgICAgLy8gQWRkaW5nIGlzIHNtYXJ0IGVub3VnaCBhcm91bmQgRFNUXG4gICAgICAgIHJlcy5hZGQoMSwgJ2QnKTtcbiAgICAgICAgcmVzLl9uZXh0RGF5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVDb25maWcoY29uZmlnKSB7XG4gICAgdmFyIGlucHV0ID0gY29uZmlnLl9pLFxuICAgICAgICBmb3JtYXQgPSBjb25maWcuX2Y7XG5cbiAgICBjb25maWcuX2xvY2FsZSA9IGNvbmZpZy5fbG9jYWxlIHx8IGdldExvY2FsZShjb25maWcuX2wpO1xuXG4gICAgaWYgKGlucHV0ID09PSBudWxsIHx8IChmb3JtYXQgPT09IHVuZGVmaW5lZCAmJiBpbnB1dCA9PT0gJycpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKHsgbnVsbElucHV0OiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbmZpZy5faSA9IGlucHV0ID0gY29uZmlnLl9sb2NhbGUucHJlcGFyc2UoaW5wdXQpO1xuICAgIH1cblxuICAgIGlmIChpc01vbWVudChpbnB1dCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb21lbnQoY2hlY2tPdmVyZmxvdyhpbnB1dCkpO1xuICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgICAgICBjb25maWcuX2QgPSBpbnB1dDtcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZm9ybWF0KSkge1xuICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kQXJyYXkoY29uZmlnKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1hdCkge1xuICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uZmlnRnJvbUlucHV0KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkKGNvbmZpZykpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnO1xufVxuXG5mdW5jdGlvbiBjb25maWdGcm9tSW5wdXQoY29uZmlnKSB7XG4gICAgdmFyIGlucHV0ID0gY29uZmlnLl9pO1xuICAgIGlmIChpc1VuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaG9va3Mubm93KCkpO1xuICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25maWdGcm9tU3RyaW5nKGNvbmZpZyk7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KGlucHV0KSkge1xuICAgICAgICBjb25maWcuX2EgPSBtYXAoaW5wdXQuc2xpY2UoMCksIGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoaW5wdXQpKSB7XG4gICAgICAgIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKTtcbiAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgICAgICAvLyBmcm9tIG1pbGxpc2Vjb25kc1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soY29uZmlnKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIGlzVVRDKSB7XG4gICAgdmFyIGMgPSB7fTtcblxuICAgIGlmIChmb3JtYXQgPT09IHRydWUgfHwgZm9ybWF0ID09PSBmYWxzZSkge1xuICAgICAgICBzdHJpY3QgPSBmb3JtYXQ7XG4gICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAobG9jYWxlID09PSB0cnVlIHx8IGxvY2FsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgc3RyaWN0ID0gbG9jYWxlO1xuICAgICAgICBsb2NhbGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgICAoaXNPYmplY3QoaW5wdXQpICYmIGlzT2JqZWN0RW1wdHkoaW5wdXQpKSB8fFxuICAgICAgICAoaXNBcnJheShpbnB1dCkgJiYgaW5wdXQubGVuZ3RoID09PSAwKVxuICAgICkge1xuICAgICAgICBpbnB1dCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiBtdXN0IGJlIGRvbmUgdGhpcyB3YXkuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzE0MjNcbiAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlO1xuICAgIGMuX3VzZVVUQyA9IGMuX2lzVVRDID0gaXNVVEM7XG4gICAgYy5fbCA9IGxvY2FsZTtcbiAgICBjLl9pID0gaW5wdXQ7XG4gICAgYy5fZiA9IGZvcm1hdDtcbiAgICBjLl9zdHJpY3QgPSBzdHJpY3Q7XG5cbiAgICByZXR1cm4gY3JlYXRlRnJvbUNvbmZpZyhjKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9jYWwoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpIHtcbiAgICByZXR1cm4gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgZmFsc2UpO1xufVxuXG52YXIgcHJvdG90eXBlTWluID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubWluIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWF4IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8nLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA8IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApLFxuICAgIHByb3RvdHlwZU1heCA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudCgpLm1heCBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1pbiBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvJyxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJiBvdGhlci5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPiB0aGlzID8gdGhpcyA6IG90aGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuLy8gUGljayBhIG1vbWVudCBtIGZyb20gbW9tZW50cyBzbyB0aGF0IG1bZm5dKG90aGVyKSBpcyB0cnVlIGZvciBhbGxcbi8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS5cbi8vXG4vLyBtb21lbnRzIHNob3VsZCBlaXRoZXIgYmUgYW4gYXJyYXkgb2YgbW9tZW50IG9iamVjdHMgb3IgYW4gYXJyYXksIHdob3NlXG4vLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLlxuZnVuY3Rpb24gcGlja0J5KGZuLCBtb21lbnRzKSB7XG4gICAgdmFyIHJlcywgaTtcbiAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkge1xuICAgICAgICBtb21lbnRzID0gbW9tZW50c1swXTtcbiAgICB9XG4gICAgaWYgKCFtb21lbnRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoKTtcbiAgICB9XG4gICAgcmVzID0gbW9tZW50c1swXTtcbiAgICBmb3IgKGkgPSAxOyBpIDwgbW9tZW50cy5sZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIW1vbWVudHNbaV0uaXNWYWxpZCgpIHx8IG1vbWVudHNbaV1bZm5dKHJlcykpIHtcbiAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn1cblxuLy8gVE9ETzogVXNlIFtdLnNvcnQgaW5zdGVhZD9cbmZ1bmN0aW9uIG1pbigpIHtcbiAgICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcblxuICAgIHJldHVybiBwaWNrQnkoJ2lzQmVmb3JlJywgYXJncyk7XG59XG5cbmZ1bmN0aW9uIG1heCgpIHtcbiAgICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcblxuICAgIHJldHVybiBwaWNrQnkoJ2lzQWZ0ZXInLCBhcmdzKTtcbn1cblxudmFyIG5vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gRGF0ZS5ub3cgPyBEYXRlLm5vdygpIDogK25ldyBEYXRlKCk7XG59O1xuXG52YXIgb3JkZXJpbmcgPSBbXG4gICAgJ3llYXInLFxuICAgICdxdWFydGVyJyxcbiAgICAnbW9udGgnLFxuICAgICd3ZWVrJyxcbiAgICAnZGF5JyxcbiAgICAnaG91cicsXG4gICAgJ21pbnV0ZScsXG4gICAgJ3NlY29uZCcsXG4gICAgJ21pbGxpc2Vjb25kJyxcbl07XG5cbmZ1bmN0aW9uIGlzRHVyYXRpb25WYWxpZChtKSB7XG4gICAgdmFyIGtleSxcbiAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSBmYWxzZSxcbiAgICAgICAgaTtcbiAgICBmb3IgKGtleSBpbiBtKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGhhc093blByb3AobSwga2V5KSAmJlxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICBpbmRleE9mLmNhbGwob3JkZXJpbmcsIGtleSkgIT09IC0xICYmXG4gICAgICAgICAgICAgICAgKG1ba2V5XSA9PSBudWxsIHx8ICFpc05hTihtW2tleV0pKVxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoaSA9IDA7IGkgPCBvcmRlcmluZy5sZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAobVtvcmRlcmluZ1tpXV0pIHtcbiAgICAgICAgICAgIGlmICh1bml0SGFzRGVjaW1hbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25seSBhbGxvdyBub24taW50ZWdlcnMgZm9yIHNtYWxsZXN0IHVuaXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUZsb2F0KG1bb3JkZXJpbmdbaV1dKSAhPT0gdG9JbnQobVtvcmRlcmluZ1tpXV0pKSB7XG4gICAgICAgICAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGlzVmFsaWQkMSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlSW52YWxpZCQxKCkge1xuICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbihOYU4pO1xufVxuXG5mdW5jdGlvbiBEdXJhdGlvbihkdXJhdGlvbikge1xuICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSBub3JtYWxpemVPYmplY3RVbml0cyhkdXJhdGlvbiksXG4gICAgICAgIHllYXJzID0gbm9ybWFsaXplZElucHV0LnllYXIgfHwgMCxcbiAgICAgICAgcXVhcnRlcnMgPSBub3JtYWxpemVkSW5wdXQucXVhcnRlciB8fCAwLFxuICAgICAgICBtb250aHMgPSBub3JtYWxpemVkSW5wdXQubW9udGggfHwgMCxcbiAgICAgICAgd2Vla3MgPSBub3JtYWxpemVkSW5wdXQud2VlayB8fCBub3JtYWxpemVkSW5wdXQuaXNvV2VlayB8fCAwLFxuICAgICAgICBkYXlzID0gbm9ybWFsaXplZElucHV0LmRheSB8fCAwLFxuICAgICAgICBob3VycyA9IG5vcm1hbGl6ZWRJbnB1dC5ob3VyIHx8IDAsXG4gICAgICAgIG1pbnV0ZXMgPSBub3JtYWxpemVkSW5wdXQubWludXRlIHx8IDAsXG4gICAgICAgIHNlY29uZHMgPSBub3JtYWxpemVkSW5wdXQuc2Vjb25kIHx8IDAsXG4gICAgICAgIG1pbGxpc2Vjb25kcyA9IG5vcm1hbGl6ZWRJbnB1dC5taWxsaXNlY29uZCB8fCAwO1xuXG4gICAgdGhpcy5faXNWYWxpZCA9IGlzRHVyYXRpb25WYWxpZChub3JtYWxpemVkSW5wdXQpO1xuXG4gICAgLy8gcmVwcmVzZW50YXRpb24gZm9yIGRhdGVBZGRSZW1vdmVcbiAgICB0aGlzLl9taWxsaXNlY29uZHMgPVxuICAgICAgICArbWlsbGlzZWNvbmRzICtcbiAgICAgICAgc2Vjb25kcyAqIDFlMyArIC8vIDEwMDBcbiAgICAgICAgbWludXRlcyAqIDZlNCArIC8vIDEwMDAgKiA2MFxuICAgICAgICBob3VycyAqIDEwMDAgKiA2MCAqIDYwOyAvL3VzaW5nIDEwMDAgKiA2MCAqIDYwIGluc3RlYWQgb2YgMzZlNSB0byBhdm9pZCBmbG9hdGluZyBwb2ludCByb3VuZGluZyBlcnJvcnMgaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzI5NzhcbiAgICAvLyBCZWNhdXNlIG9mIGRhdGVBZGRSZW1vdmUgdHJlYXRzIDI0IGhvdXJzIGFzIGRpZmZlcmVudCBmcm9tIGFcbiAgICAvLyBkYXkgd2hlbiB3b3JraW5nIGFyb3VuZCBEU1QsIHdlIG5lZWQgdG8gc3RvcmUgdGhlbSBzZXBhcmF0ZWx5XG4gICAgdGhpcy5fZGF5cyA9ICtkYXlzICsgd2Vla3MgKiA3O1xuICAgIC8vIEl0IGlzIGltcG9zc2libGUgdG8gdHJhbnNsYXRlIG1vbnRocyBpbnRvIGRheXMgd2l0aG91dCBrbm93aW5nXG4gICAgLy8gd2hpY2ggbW9udGhzIHlvdSBhcmUgYXJlIHRhbGtpbmcgYWJvdXQsIHNvIHdlIGhhdmUgdG8gc3RvcmVcbiAgICAvLyBpdCBzZXBhcmF0ZWx5LlxuICAgIHRoaXMuX21vbnRocyA9ICttb250aHMgKyBxdWFydGVycyAqIDMgKyB5ZWFycyAqIDEyO1xuXG4gICAgdGhpcy5fZGF0YSA9IHt9O1xuXG4gICAgdGhpcy5fbG9jYWxlID0gZ2V0TG9jYWxlKCk7XG5cbiAgICB0aGlzLl9idWJibGUoKTtcbn1cblxuZnVuY3Rpb24gaXNEdXJhdGlvbihvYmopIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRHVyYXRpb247XG59XG5cbmZ1bmN0aW9uIGFic1JvdW5kKG51bWJlcikge1xuICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKC0xICogbnVtYmVyKSAqIC0xO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bWJlcik7XG4gICAgfVxufVxuXG4vLyBjb21wYXJlIHR3byBhcnJheXMsIHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZmZlcmVuY2VzXG5mdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycmF5MSwgYXJyYXkyLCBkb250Q29udmVydCkge1xuICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcnJheTEubGVuZ3RoLCBhcnJheTIubGVuZ3RoKSxcbiAgICAgICAgbGVuZ3RoRGlmZiA9IE1hdGguYWJzKGFycmF5MS5sZW5ndGggLSBhcnJheTIubGVuZ3RoKSxcbiAgICAgICAgZGlmZnMgPSAwLFxuICAgICAgICBpO1xuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoZG9udENvbnZlcnQgJiYgYXJyYXkxW2ldICE9PSBhcnJheTJbaV0pIHx8XG4gICAgICAgICAgICAoIWRvbnRDb252ZXJ0ICYmIHRvSW50KGFycmF5MVtpXSkgIT09IHRvSW50KGFycmF5MltpXSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZGlmZnMrKztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlmZnMgKyBsZW5ndGhEaWZmO1xufVxuXG4vLyBGT1JNQVRUSU5HXG5cbmZ1bmN0aW9uIG9mZnNldCh0b2tlbiwgc2VwYXJhdG9yKSB7XG4gICAgYWRkRm9ybWF0VG9rZW4odG9rZW4sIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMudXRjT2Zmc2V0KCksXG4gICAgICAgICAgICBzaWduID0gJysnO1xuICAgICAgICBpZiAob2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDtcbiAgICAgICAgICAgIHNpZ24gPSAnLSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHNpZ24gK1xuICAgICAgICAgICAgemVyb0ZpbGwofn4ob2Zmc2V0IC8gNjApLCAyKSArXG4gICAgICAgICAgICBzZXBhcmF0b3IgK1xuICAgICAgICAgICAgemVyb0ZpbGwofn5vZmZzZXQgJSA2MCwgMilcbiAgICAgICAgKTtcbiAgICB9KTtcbn1cblxub2Zmc2V0KCdaJywgJzonKTtcbm9mZnNldCgnWlonLCAnJyk7XG5cbi8vIFBBUlNJTkdcblxuYWRkUmVnZXhUb2tlbignWicsIG1hdGNoU2hvcnRPZmZzZXQpO1xuYWRkUmVnZXhUb2tlbignWlonLCBtYXRjaFNob3J0T2Zmc2V0KTtcbmFkZFBhcnNlVG9rZW4oWydaJywgJ1paJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgIGNvbmZpZy5fdXNlVVRDID0gdHJ1ZTtcbiAgICBjb25maWcuX3R6bSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xufSk7XG5cbi8vIEhFTFBFUlNcblxuLy8gdGltZXpvbmUgY2h1bmtlclxuLy8gJysxMDowMCcgPiBbJzEwJywgICcwMCddXG4vLyAnLTE1MzAnICA+IFsnLTE1JywgJzMwJ11cbnZhciBjaHVua09mZnNldCA9IC8oW1xcK1xcLV18XFxkXFxkKS9naTtcblxuZnVuY3Rpb24gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaGVyLCBzdHJpbmcpIHtcbiAgICB2YXIgbWF0Y2hlcyA9IChzdHJpbmcgfHwgJycpLm1hdGNoKG1hdGNoZXIpLFxuICAgICAgICBjaHVuayxcbiAgICAgICAgcGFydHMsXG4gICAgICAgIG1pbnV0ZXM7XG5cbiAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjaHVuayA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXTtcbiAgICBwYXJ0cyA9IChjaHVuayArICcnKS5tYXRjaChjaHVua09mZnNldCkgfHwgWyctJywgMCwgMF07XG4gICAgbWludXRlcyA9ICsocGFydHNbMV0gKiA2MCkgKyB0b0ludChwYXJ0c1syXSk7XG5cbiAgICByZXR1cm4gbWludXRlcyA9PT0gMCA/IDAgOiBwYXJ0c1swXSA9PT0gJysnID8gbWludXRlcyA6IC1taW51dGVzO1xufVxuXG4vLyBSZXR1cm4gYSBtb21lbnQgZnJvbSBpbnB1dCwgdGhhdCBpcyBsb2NhbC91dGMvem9uZSBlcXVpdmFsZW50IHRvIG1vZGVsLlxuZnVuY3Rpb24gY2xvbmVXaXRoT2Zmc2V0KGlucHV0LCBtb2RlbCkge1xuICAgIHZhciByZXMsIGRpZmY7XG4gICAgaWYgKG1vZGVsLl9pc1VUQykge1xuICAgICAgICByZXMgPSBtb2RlbC5jbG9uZSgpO1xuICAgICAgICBkaWZmID1cbiAgICAgICAgICAgIChpc01vbWVudChpbnB1dCkgfHwgaXNEYXRlKGlucHV0KVxuICAgICAgICAgICAgICAgID8gaW5wdXQudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgOiBjcmVhdGVMb2NhbChpbnB1dCkudmFsdWVPZigpKSAtIHJlcy52YWx1ZU9mKCk7XG4gICAgICAgIC8vIFVzZSBsb3ctbGV2ZWwgYXBpLCBiZWNhdXNlIHRoaXMgZm4gaXMgbG93LWxldmVsIGFwaS5cbiAgICAgICAgcmVzLl9kLnNldFRpbWUocmVzLl9kLnZhbHVlT2YoKSArIGRpZmYpO1xuICAgICAgICBob29rcy51cGRhdGVPZmZzZXQocmVzLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKGlucHV0KS5sb2NhbCgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGF0ZU9mZnNldChtKSB7XG4gICAgLy8gT24gRmlyZWZveC4yNCBEYXRlI2dldFRpbWV6b25lT2Zmc2V0IHJldHVybnMgYSBmbG9hdGluZyBwb2ludC5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9wdWxsLzE4NzFcbiAgICByZXR1cm4gLU1hdGgucm91bmQobS5fZC5nZXRUaW1lem9uZU9mZnNldCgpKTtcbn1cblxuLy8gSE9PS1NcblxuLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLlxuLy8gSXQgaXMgaW50ZW5kZWQgdG8ga2VlcCB0aGUgb2Zmc2V0IGluIHN5bmMgd2l0aCB0aGUgdGltZXpvbmUuXG5ob29rcy51cGRhdGVPZmZzZXQgPSBmdW5jdGlvbiAoKSB7fTtcblxuLy8gTU9NRU5UU1xuXG4vLyBrZWVwTG9jYWxUaW1lID0gdHJ1ZSBtZWFucyBvbmx5IGNoYW5nZSB0aGUgdGltZXpvbmUsIHdpdGhvdXRcbi8vIGFmZmVjdGluZyB0aGUgbG9jYWwgaG91ci4gU28gNTozMToyNiArMDMwMCAtLVt1dGNPZmZzZXQoMiwgdHJ1ZSldLS0+XG4vLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IHdpdGggb2Zmc2V0XG4vLyArMDIwMCwgc28gd2UgYWRqdXN0IHRoZSB0aW1lIGFzIG5lZWRlZCwgdG8gYmUgdmFsaWQuXG4vL1xuLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpXG4vLyBmcm9tIHRoZSBhY3R1YWwgcmVwcmVzZW50ZWQgdGltZS4gVGhhdCBpcyB3aHkgd2UgY2FsbCB1cGRhdGVPZmZzZXRcbi8vIGEgc2Vjb25kIHRpbWUuIEluIGNhc2UgaXQgd2FudHMgdXMgdG8gY2hhbmdlIHRoZSBvZmZzZXQgYWdhaW5cbi8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZVxuLy8gdGhlcmUgaXMgbm8gc3VjaCB0aW1lIGluIHRoZSBnaXZlbiB0aW1lem9uZS5cbmZ1bmN0aW9uIGdldFNldE9mZnNldChpbnB1dCwga2VlcExvY2FsVGltZSwga2VlcE1pbnV0ZXMpIHtcbiAgICB2YXIgb2Zmc2V0ID0gdGhpcy5fb2Zmc2V0IHx8IDAsXG4gICAgICAgIGxvY2FsQWRqdXN0O1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgIH1cbiAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaW5wdXQgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoU2hvcnRPZmZzZXQsIGlucHV0KTtcbiAgICAgICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGlucHV0KSA8IDE2ICYmICFrZWVwTWludXRlcykge1xuICAgICAgICAgICAgaW5wdXQgPSBpbnB1dCAqIDYwO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkge1xuICAgICAgICAgICAgbG9jYWxBZGp1c3QgPSBnZXREYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29mZnNldCA9IGlucHV0O1xuICAgICAgICB0aGlzLl9pc1VUQyA9IHRydWU7XG4gICAgICAgIGlmIChsb2NhbEFkanVzdCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmFkZChsb2NhbEFkanVzdCwgJ20nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2Zmc2V0ICE9PSBpbnB1dCkge1xuICAgICAgICAgICAgaWYgKCFrZWVwTG9jYWxUaW1lIHx8IHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICBhZGRTdWJ0cmFjdChcbiAgICAgICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlRHVyYXRpb24oaW5wdXQgLSBvZmZzZXQsICdtJyksXG4gICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gb2Zmc2V0IDogZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldFNldFpvbmUoaW5wdXQsIGtlZXBMb2NhbFRpbWUpIHtcbiAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaW5wdXQgPSAtaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnV0Y09mZnNldChpbnB1dCwga2VlcExvY2FsVGltZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIC10aGlzLnV0Y09mZnNldCgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gc2V0T2Zmc2V0VG9VVEMoa2VlcExvY2FsVGltZSkge1xuICAgIHJldHVybiB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbn1cblxuZnVuY3Rpb24gc2V0T2Zmc2V0VG9Mb2NhbChrZWVwTG9jYWxUaW1lKSB7XG4gICAgaWYgKHRoaXMuX2lzVVRDKSB7XG4gICAgICAgIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgICAgICB0aGlzLl9pc1VUQyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnRyYWN0KGdldERhdGVPZmZzZXQodGhpcyksICdtJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0KCkge1xuICAgIGlmICh0aGlzLl90em0gIT0gbnVsbCkge1xuICAgICAgICB0aGlzLnV0Y09mZnNldCh0aGlzLl90em0sIGZhbHNlLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLl9pID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YXIgdFpvbmUgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoT2Zmc2V0LCB0aGlzLl9pKTtcbiAgICAgICAgaWYgKHRab25lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KHRab25lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KDAsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBoYXNBbGlnbmVkSG91ck9mZnNldChpbnB1dCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpbnB1dCA9IGlucHV0ID8gY3JlYXRlTG9jYWwoaW5wdXQpLnV0Y09mZnNldCgpIDogMDtcblxuICAgIHJldHVybiAodGhpcy51dGNPZmZzZXQoKSAtIGlucHV0KSAlIDYwID09PSAwO1xufVxuXG5mdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLnV0Y09mZnNldCgpID4gdGhpcy5jbG9uZSgpLm1vbnRoKDApLnV0Y09mZnNldCgpIHx8XG4gICAgICAgIHRoaXMudXRjT2Zmc2V0KCkgPiB0aGlzLmNsb25lKCkubW9udGgoNSkudXRjT2Zmc2V0KClcbiAgICApO1xufVxuXG5mdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQoKSB7XG4gICAgaWYgKCFpc1VuZGVmaW5lZCh0aGlzLl9pc0RTVFNoaWZ0ZWQpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgfVxuXG4gICAgdmFyIGMgPSB7fSxcbiAgICAgICAgb3RoZXI7XG5cbiAgICBjb3B5Q29uZmlnKGMsIHRoaXMpO1xuICAgIGMgPSBwcmVwYXJlQ29uZmlnKGMpO1xuXG4gICAgaWYgKGMuX2EpIHtcbiAgICAgICAgb3RoZXIgPSBjLl9pc1VUQyA/IGNyZWF0ZVVUQyhjLl9hKSA6IGNyZWF0ZUxvY2FsKGMuX2EpO1xuICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPVxuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiYgY29tcGFyZUFycmF5cyhjLl9hLCBvdGhlci50b0FycmF5KCkpID4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xufVxuXG5mdW5jdGlvbiBpc0xvY2FsKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/ICF0aGlzLl9pc1VUQyA6IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc1V0Y09mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyA6IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc1V0YygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyAmJiB0aGlzLl9vZmZzZXQgPT09IDAgOiBmYWxzZTtcbn1cblxuLy8gQVNQLk5FVCBqc29uIGRhdGUgZm9ybWF0IHJlZ2V4XG52YXIgYXNwTmV0UmVnZXggPSAvXigtfFxcKyk/KD86KFxcZCopWy4gXSk/KFxcZCspOihcXGQrKSg/OjooXFxkKykoXFwuXFxkKik/KT8kLyxcbiAgICAvLyBmcm9tIGh0dHA6Ly9kb2NzLmNsb3N1cmUtbGlicmFyeS5nb29nbGVjb2RlLmNvbS9naXQvY2xvc3VyZV9nb29nX2RhdGVfZGF0ZS5qcy5zb3VyY2UuaHRtbFxuICAgIC8vIHNvbWV3aGF0IG1vcmUgaW4gbGluZSB3aXRoIDQuNC4zLjIgMjAwNCBzcGVjLCBidXQgYWxsb3dzIGRlY2ltYWwgYW55d2hlcmVcbiAgICAvLyBhbmQgZnVydGhlciBtb2RpZmllZCB0byBhbGxvdyBmb3Igc3RyaW5ncyBjb250YWluaW5nIGJvdGggd2VlayBhbmQgZGF5XG4gICAgaXNvUmVnZXggPSAvXigtfFxcKyk/UCg/OihbLStdP1swLTksLl0qKVkpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVcpPyg/OihbLStdP1swLTksLl0qKUQpPyg/OlQoPzooWy0rXT9bMC05LC5dKilIKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilTKT8pPyQvO1xuXG5mdW5jdGlvbiBjcmVhdGVEdXJhdGlvbihpbnB1dCwga2V5KSB7XG4gICAgdmFyIGR1cmF0aW9uID0gaW5wdXQsXG4gICAgICAgIC8vIG1hdGNoaW5nIGFnYWluc3QgcmVnZXhwIGlzIGV4cGVuc2l2ZSwgZG8gaXQgb24gZGVtYW5kXG4gICAgICAgIG1hdGNoID0gbnVsbCxcbiAgICAgICAgc2lnbixcbiAgICAgICAgcmV0LFxuICAgICAgICBkaWZmUmVzO1xuXG4gICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpKSB7XG4gICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgbXM6IGlucHV0Ll9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICBkOiBpbnB1dC5fZGF5cyxcbiAgICAgICAgICAgIE06IGlucHV0Ll9tb250aHMsXG4gICAgICAgIH07XG4gICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkgfHwgIWlzTmFOKCtpbnB1dCkpIHtcbiAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgZHVyYXRpb25ba2V5XSA9ICtpbnB1dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGR1cmF0aW9uLm1pbGxpc2Vjb25kcyA9ICtpbnB1dDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoKG1hdGNoID0gYXNwTmV0UmVnZXguZXhlYyhpbnB1dCkpKSB7XG4gICAgICAgIHNpZ24gPSBtYXRjaFsxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICBkOiB0b0ludChtYXRjaFtEQVRFXSkgKiBzaWduLFxuICAgICAgICAgICAgaDogdG9JbnQobWF0Y2hbSE9VUl0pICogc2lnbixcbiAgICAgICAgICAgIG06IHRvSW50KG1hdGNoW01JTlVURV0pICogc2lnbixcbiAgICAgICAgICAgIHM6IHRvSW50KG1hdGNoW1NFQ09ORF0pICogc2lnbixcbiAgICAgICAgICAgIG1zOiB0b0ludChhYnNSb3VuZChtYXRjaFtNSUxMSVNFQ09ORF0gKiAxMDAwKSkgKiBzaWduLCAvLyB0aGUgbWlsbGlzZWNvbmQgZGVjaW1hbCBwb2ludCBpcyBpbmNsdWRlZCBpbiB0aGUgbWF0Y2hcbiAgICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKChtYXRjaCA9IGlzb1JlZ2V4LmV4ZWMoaW5wdXQpKSkge1xuICAgICAgICBzaWduID0gbWF0Y2hbMV0gPT09ICctJyA/IC0xIDogMTtcbiAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICB5OiBwYXJzZUlzbyhtYXRjaFsyXSwgc2lnbiksXG4gICAgICAgICAgICBNOiBwYXJzZUlzbyhtYXRjaFszXSwgc2lnbiksXG4gICAgICAgICAgICB3OiBwYXJzZUlzbyhtYXRjaFs0XSwgc2lnbiksXG4gICAgICAgICAgICBkOiBwYXJzZUlzbyhtYXRjaFs1XSwgc2lnbiksXG4gICAgICAgICAgICBoOiBwYXJzZUlzbyhtYXRjaFs2XSwgc2lnbiksXG4gICAgICAgICAgICBtOiBwYXJzZUlzbyhtYXRjaFs3XSwgc2lnbiksXG4gICAgICAgICAgICBzOiBwYXJzZUlzbyhtYXRjaFs4XSwgc2lnbiksXG4gICAgICAgIH07XG4gICAgfSBlbHNlIGlmIChkdXJhdGlvbiA9PSBudWxsKSB7XG4gICAgICAgIC8vIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0eXBlb2YgZHVyYXRpb24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICgnZnJvbScgaW4gZHVyYXRpb24gfHwgJ3RvJyBpbiBkdXJhdGlvbilcbiAgICApIHtcbiAgICAgICAgZGlmZlJlcyA9IG1vbWVudHNEaWZmZXJlbmNlKFxuICAgICAgICAgICAgY3JlYXRlTG9jYWwoZHVyYXRpb24uZnJvbSksXG4gICAgICAgICAgICBjcmVhdGVMb2NhbChkdXJhdGlvbi50bylcbiAgICAgICAgKTtcblxuICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICBkdXJhdGlvbi5tcyA9IGRpZmZSZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICBkdXJhdGlvbi5NID0gZGlmZlJlcy5tb250aHM7XG4gICAgfVxuXG4gICAgcmV0ID0gbmV3IER1cmF0aW9uKGR1cmF0aW9uKTtcblxuICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSAmJiBoYXNPd25Qcm9wKGlucHV0LCAnX2xvY2FsZScpKSB7XG4gICAgICAgIHJldC5fbG9jYWxlID0gaW5wdXQuX2xvY2FsZTtcbiAgICB9XG5cbiAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkgJiYgaGFzT3duUHJvcChpbnB1dCwgJ19pc1ZhbGlkJykpIHtcbiAgICAgICAgcmV0Ll9pc1ZhbGlkID0gaW5wdXQuX2lzVmFsaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbn1cblxuY3JlYXRlRHVyYXRpb24uZm4gPSBEdXJhdGlvbi5wcm90b3R5cGU7XG5jcmVhdGVEdXJhdGlvbi5pbnZhbGlkID0gY3JlYXRlSW52YWxpZCQxO1xuXG5mdW5jdGlvbiBwYXJzZUlzbyhpbnAsIHNpZ24pIHtcbiAgICAvLyBXZSdkIG5vcm1hbGx5IHVzZSB+fmlucCBmb3IgdGhpcywgYnV0IHVuZm9ydHVuYXRlbHkgaXQgYWxzb1xuICAgIC8vIGNvbnZlcnRzIGZsb2F0cyB0byBpbnRzLlxuICAgIC8vIGlucCBtYXkgYmUgdW5kZWZpbmVkLCBzbyBjYXJlZnVsIGNhbGxpbmcgcmVwbGFjZSBvbiBpdC5cbiAgICB2YXIgcmVzID0gaW5wICYmIHBhcnNlRmxvYXQoaW5wLnJlcGxhY2UoJywnLCAnLicpKTtcbiAgICAvLyBhcHBseSBzaWduIHdoaWxlIHdlJ3JlIGF0IGl0XG4gICAgcmV0dXJuIChpc05hTihyZXMpID8gMCA6IHJlcykgKiBzaWduO1xufVxuXG5mdW5jdGlvbiBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgdmFyIHJlcyA9IHt9O1xuXG4gICAgcmVzLm1vbnRocyA9XG4gICAgICAgIG90aGVyLm1vbnRoKCkgLSBiYXNlLm1vbnRoKCkgKyAob3RoZXIueWVhcigpIC0gYmFzZS55ZWFyKCkpICogMTI7XG4gICAgaWYgKGJhc2UuY2xvbmUoKS5hZGQocmVzLm1vbnRocywgJ00nKS5pc0FmdGVyKG90aGVyKSkge1xuICAgICAgICAtLXJlcy5tb250aHM7XG4gICAgfVxuXG4gICAgcmVzLm1pbGxpc2Vjb25kcyA9ICtvdGhlciAtICtiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJyk7XG5cbiAgICByZXR1cm4gcmVzO1xufVxuXG5mdW5jdGlvbiBtb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcikge1xuICAgIHZhciByZXM7XG4gICAgaWYgKCEoYmFzZS5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSkge1xuICAgICAgICByZXR1cm4geyBtaWxsaXNlY29uZHM6IDAsIG1vbnRoczogMCB9O1xuICAgIH1cblxuICAgIG90aGVyID0gY2xvbmVXaXRoT2Zmc2V0KG90aGVyLCBiYXNlKTtcbiAgICBpZiAoYmFzZS5pc0JlZm9yZShvdGhlcikpIHtcbiAgICAgICAgcmVzID0gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzID0gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShvdGhlciwgYmFzZSk7XG4gICAgICAgIHJlcy5taWxsaXNlY29uZHMgPSAtcmVzLm1pbGxpc2Vjb25kcztcbiAgICAgICAgcmVzLm1vbnRocyA9IC1yZXMubW9udGhzO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG59XG5cbi8vIFRPRE86IHJlbW92ZSAnbmFtZScgYXJnIGFmdGVyIGRlcHJlY2F0aW9uIGlzIHJlbW92ZWRcbmZ1bmN0aW9uIGNyZWF0ZUFkZGVyKGRpcmVjdGlvbiwgbmFtZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBwZXJpb2QpIHtcbiAgICAgICAgdmFyIGR1ciwgdG1wO1xuICAgICAgICAvL2ludmVydCB0aGUgYXJndW1lbnRzLCBidXQgY29tcGxhaW4gYWJvdXQgaXRcbiAgICAgICAgaWYgKHBlcmlvZCAhPT0gbnVsbCAmJiAhaXNOYU4oK3BlcmlvZCkpIHtcbiAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICdtb21lbnQoKS4nICtcbiAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICcocGVyaW9kLCBudW1iZXIpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgbW9tZW50KCkuJyArXG4gICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAnKG51bWJlciwgcGVyaW9kKS4gJyArXG4gICAgICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9hZGQtaW52ZXJ0ZWQtcGFyYW0vIGZvciBtb3JlIGluZm8uJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRtcCA9IHZhbDtcbiAgICAgICAgICAgIHZhbCA9IHBlcmlvZDtcbiAgICAgICAgICAgIHBlcmlvZCA9IHRtcDtcbiAgICAgICAgfVxuXG4gICAgICAgIGR1ciA9IGNyZWF0ZUR1cmF0aW9uKHZhbCwgcGVyaW9kKTtcbiAgICAgICAgYWRkU3VidHJhY3QodGhpcywgZHVyLCBkaXJlY3Rpb24pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBhZGRTdWJ0cmFjdChtb20sIGR1cmF0aW9uLCBpc0FkZGluZywgdXBkYXRlT2Zmc2V0KSB7XG4gICAgdmFyIG1pbGxpc2Vjb25kcyA9IGR1cmF0aW9uLl9taWxsaXNlY29uZHMsXG4gICAgICAgIGRheXMgPSBhYnNSb3VuZChkdXJhdGlvbi5fZGF5cyksXG4gICAgICAgIG1vbnRocyA9IGFic1JvdW5kKGR1cmF0aW9uLl9tb250aHMpO1xuXG4gICAgaWYgKCFtb20uaXNWYWxpZCgpKSB7XG4gICAgICAgIC8vIE5vIG9wXG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB1cGRhdGVPZmZzZXQgPSB1cGRhdGVPZmZzZXQgPT0gbnVsbCA/IHRydWUgOiB1cGRhdGVPZmZzZXQ7XG5cbiAgICBpZiAobW9udGhzKSB7XG4gICAgICAgIHNldE1vbnRoKG1vbSwgZ2V0KG1vbSwgJ01vbnRoJykgKyBtb250aHMgKiBpc0FkZGluZyk7XG4gICAgfVxuICAgIGlmIChkYXlzKSB7XG4gICAgICAgIHNldCQxKG1vbSwgJ0RhdGUnLCBnZXQobW9tLCAnRGF0ZScpICsgZGF5cyAqIGlzQWRkaW5nKTtcbiAgICB9XG4gICAgaWYgKG1pbGxpc2Vjb25kcykge1xuICAgICAgICBtb20uX2Quc2V0VGltZShtb20uX2QudmFsdWVPZigpICsgbWlsbGlzZWNvbmRzICogaXNBZGRpbmcpO1xuICAgIH1cbiAgICBpZiAodXBkYXRlT2Zmc2V0KSB7XG4gICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldChtb20sIGRheXMgfHwgbW9udGhzKTtcbiAgICB9XG59XG5cbnZhciBhZGQgPSBjcmVhdGVBZGRlcigxLCAnYWRkJyksXG4gICAgc3VidHJhY3QgPSBjcmVhdGVBZGRlcigtMSwgJ3N1YnRyYWN0Jyk7XG5cbmZ1bmN0aW9uIGlzU3RyaW5nKGlucHV0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XG59XG5cbi8vIHR5cGUgTW9tZW50SW5wdXQgPSBNb21lbnQgfCBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgKG51bWJlciB8IHN0cmluZylbXSB8IE1vbWVudElucHV0T2JqZWN0IHwgdm9pZDsgLy8gbnVsbCB8IHVuZGVmaW5lZFxuZnVuY3Rpb24gaXNNb21lbnRJbnB1dChpbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICAgIGlzTW9tZW50KGlucHV0KSB8fFxuICAgICAgICBpc0RhdGUoaW5wdXQpIHx8XG4gICAgICAgIGlzU3RyaW5nKGlucHV0KSB8fFxuICAgICAgICBpc051bWJlcihpbnB1dCkgfHxcbiAgICAgICAgaXNOdW1iZXJPclN0cmluZ0FycmF5KGlucHV0KSB8fFxuICAgICAgICBpc01vbWVudElucHV0T2JqZWN0KGlucHV0KSB8fFxuICAgICAgICBpbnB1dCA9PT0gbnVsbCB8fFxuICAgICAgICBpbnB1dCA9PT0gdW5kZWZpbmVkXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gaXNNb21lbnRJbnB1dE9iamVjdChpbnB1dCkge1xuICAgIHZhciBvYmplY3RUZXN0ID0gaXNPYmplY3QoaW5wdXQpICYmICFpc09iamVjdEVtcHR5KGlucHV0KSxcbiAgICAgICAgcHJvcGVydHlUZXN0ID0gZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXMgPSBbXG4gICAgICAgICAgICAneWVhcnMnLFxuICAgICAgICAgICAgJ3llYXInLFxuICAgICAgICAgICAgJ3knLFxuICAgICAgICAgICAgJ21vbnRocycsXG4gICAgICAgICAgICAnbW9udGgnLFxuICAgICAgICAgICAgJ00nLFxuICAgICAgICAgICAgJ2RheXMnLFxuICAgICAgICAgICAgJ2RheScsXG4gICAgICAgICAgICAnZCcsXG4gICAgICAgICAgICAnZGF0ZXMnLFxuICAgICAgICAgICAgJ2RhdGUnLFxuICAgICAgICAgICAgJ0QnLFxuICAgICAgICAgICAgJ2hvdXJzJyxcbiAgICAgICAgICAgICdob3VyJyxcbiAgICAgICAgICAgICdoJyxcbiAgICAgICAgICAgICdtaW51dGVzJyxcbiAgICAgICAgICAgICdtaW51dGUnLFxuICAgICAgICAgICAgJ20nLFxuICAgICAgICAgICAgJ3NlY29uZHMnLFxuICAgICAgICAgICAgJ3NlY29uZCcsXG4gICAgICAgICAgICAncycsXG4gICAgICAgICAgICAnbWlsbGlzZWNvbmRzJyxcbiAgICAgICAgICAgICdtaWxsaXNlY29uZCcsXG4gICAgICAgICAgICAnbXMnLFxuICAgICAgICBdLFxuICAgICAgICBpLFxuICAgICAgICBwcm9wZXJ0eTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIHByb3BlcnR5ID0gcHJvcGVydGllc1tpXTtcbiAgICAgICAgcHJvcGVydHlUZXN0ID0gcHJvcGVydHlUZXN0IHx8IGhhc093blByb3AoaW5wdXQsIHByb3BlcnR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JqZWN0VGVzdCAmJiBwcm9wZXJ0eVRlc3Q7XG59XG5cbmZ1bmN0aW9uIGlzTnVtYmVyT3JTdHJpbmdBcnJheShpbnB1dCkge1xuICAgIHZhciBhcnJheVRlc3QgPSBpc0FycmF5KGlucHV0KSxcbiAgICAgICAgZGF0YVR5cGVUZXN0ID0gZmFsc2U7XG4gICAgaWYgKGFycmF5VGVzdCkge1xuICAgICAgICBkYXRhVHlwZVRlc3QgPVxuICAgICAgICAgICAgaW5wdXQuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc051bWJlcihpdGVtKSAmJiBpc1N0cmluZyhpbnB1dCk7XG4gICAgICAgICAgICB9KS5sZW5ndGggPT09IDA7XG4gICAgfVxuICAgIHJldHVybiBhcnJheVRlc3QgJiYgZGF0YVR5cGVUZXN0O1xufVxuXG5mdW5jdGlvbiBpc0NhbGVuZGFyU3BlYyhpbnB1dCkge1xuICAgIHZhciBvYmplY3RUZXN0ID0gaXNPYmplY3QoaW5wdXQpICYmICFpc09iamVjdEVtcHR5KGlucHV0KSxcbiAgICAgICAgcHJvcGVydHlUZXN0ID0gZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXMgPSBbXG4gICAgICAgICAgICAnc2FtZURheScsXG4gICAgICAgICAgICAnbmV4dERheScsXG4gICAgICAgICAgICAnbGFzdERheScsXG4gICAgICAgICAgICAnbmV4dFdlZWsnLFxuICAgICAgICAgICAgJ2xhc3RXZWVrJyxcbiAgICAgICAgICAgICdzYW1lRWxzZScsXG4gICAgICAgIF0sXG4gICAgICAgIGksXG4gICAgICAgIHByb3BlcnR5O1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW2ldO1xuICAgICAgICBwcm9wZXJ0eVRlc3QgPSBwcm9wZXJ0eVRlc3QgfHwgaGFzT3duUHJvcChpbnB1dCwgcHJvcGVydHkpO1xuICAgIH1cblxuICAgIHJldHVybiBvYmplY3RUZXN0ICYmIHByb3BlcnR5VGVzdDtcbn1cblxuZnVuY3Rpb24gZ2V0Q2FsZW5kYXJGb3JtYXQobXlNb21lbnQsIG5vdykge1xuICAgIHZhciBkaWZmID0gbXlNb21lbnQuZGlmZihub3csICdkYXlzJywgdHJ1ZSk7XG4gICAgcmV0dXJuIGRpZmYgPCAtNlxuICAgICAgICA/ICdzYW1lRWxzZSdcbiAgICAgICAgOiBkaWZmIDwgLTFcbiAgICAgICAgPyAnbGFzdFdlZWsnXG4gICAgICAgIDogZGlmZiA8IDBcbiAgICAgICAgPyAnbGFzdERheSdcbiAgICAgICAgOiBkaWZmIDwgMVxuICAgICAgICA/ICdzYW1lRGF5J1xuICAgICAgICA6IGRpZmYgPCAyXG4gICAgICAgID8gJ25leHREYXknXG4gICAgICAgIDogZGlmZiA8IDdcbiAgICAgICAgPyAnbmV4dFdlZWsnXG4gICAgICAgIDogJ3NhbWVFbHNlJztcbn1cblxuZnVuY3Rpb24gY2FsZW5kYXIkMSh0aW1lLCBmb3JtYXRzKSB7XG4gICAgLy8gU3VwcG9ydCBmb3Igc2luZ2xlIHBhcmFtZXRlciwgZm9ybWF0cyBvbmx5IG92ZXJsb2FkIHRvIHRoZSBjYWxlbmRhciBmdW5jdGlvblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGlmICghYXJndW1lbnRzWzBdKSB7XG4gICAgICAgICAgICB0aW1lID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgZm9ybWF0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmIChpc01vbWVudElucHV0KGFyZ3VtZW50c1swXSkpIHtcbiAgICAgICAgICAgIHRpbWUgPSBhcmd1bWVudHNbMF07XG4gICAgICAgICAgICBmb3JtYXRzID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQ2FsZW5kYXJTcGVjKGFyZ3VtZW50c1swXSkpIHtcbiAgICAgICAgICAgIGZvcm1hdHMgPSBhcmd1bWVudHNbMF07XG4gICAgICAgICAgICB0aW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuXG4gICAgLy8gR2V0dGluZyBzdGFydC1vZi10b2RheSBkZXBlbmRzIG9uIHdoZXRoZXIgd2UncmUgbG9jYWwvdXRjL29mZnNldCBvciBub3QuXG4gICAgdmFyIG5vdyA9IHRpbWUgfHwgY3JlYXRlTG9jYWwoKSxcbiAgICAgICAgc29kID0gY2xvbmVXaXRoT2Zmc2V0KG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksXG4gICAgICAgIGZvcm1hdCA9IGhvb2tzLmNhbGVuZGFyRm9ybWF0KHRoaXMsIHNvZCkgfHwgJ3NhbWVFbHNlJyxcbiAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgIGZvcm1hdHMgJiZcbiAgICAgICAgICAgIChpc0Z1bmN0aW9uKGZvcm1hdHNbZm9ybWF0XSlcbiAgICAgICAgICAgICAgICA/IGZvcm1hdHNbZm9ybWF0XS5jYWxsKHRoaXMsIG5vdylcbiAgICAgICAgICAgICAgICA6IGZvcm1hdHNbZm9ybWF0XSk7XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtYXQoXG4gICAgICAgIG91dHB1dCB8fCB0aGlzLmxvY2FsZURhdGEoKS5jYWxlbmRhcihmb3JtYXQsIHRoaXMsIGNyZWF0ZUxvY2FsKG5vdykpXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBNb21lbnQodGhpcyk7XG59XG5cbmZ1bmN0aW9uIGlzQWZ0ZXIoaW5wdXQsIHVuaXRzKSB7XG4gICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB8fCAnbWlsbGlzZWNvbmQnO1xuICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPiBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbG9jYWxJbnB1dC52YWx1ZU9mKCkgPCB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNCZWZvcmUoaW5wdXQsIHVuaXRzKSB7XG4gICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB8fCAnbWlsbGlzZWNvbmQnO1xuICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzQmV0d2Vlbihmcm9tLCB0bywgdW5pdHMsIGluY2x1c2l2aXR5KSB7XG4gICAgdmFyIGxvY2FsRnJvbSA9IGlzTW9tZW50KGZyb20pID8gZnJvbSA6IGNyZWF0ZUxvY2FsKGZyb20pLFxuICAgICAgICBsb2NhbFRvID0gaXNNb21lbnQodG8pID8gdG8gOiBjcmVhdGVMb2NhbCh0byk7XG4gICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxGcm9tLmlzVmFsaWQoKSAmJiBsb2NhbFRvLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpbmNsdXNpdml0eSA9IGluY2x1c2l2aXR5IHx8ICcoKSc7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKGluY2x1c2l2aXR5WzBdID09PSAnKCdcbiAgICAgICAgICAgID8gdGhpcy5pc0FmdGVyKGxvY2FsRnJvbSwgdW5pdHMpXG4gICAgICAgICAgICA6ICF0aGlzLmlzQmVmb3JlKGxvY2FsRnJvbSwgdW5pdHMpKSAmJlxuICAgICAgICAoaW5jbHVzaXZpdHlbMV0gPT09ICcpJ1xuICAgICAgICAgICAgPyB0aGlzLmlzQmVmb3JlKGxvY2FsVG8sIHVuaXRzKVxuICAgICAgICAgICAgOiAhdGhpcy5pc0FmdGVyKGxvY2FsVG8sIHVuaXRzKSlcbiAgICApO1xufVxuXG5mdW5jdGlvbiBpc1NhbWUoaW5wdXQsIHVuaXRzKSB7XG4gICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KSxcbiAgICAgICAgaW5wdXRNcztcbiAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB8fCAnbWlsbGlzZWNvbmQnO1xuICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPT09IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlucHV0TXMgPSBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCkgPD0gaW5wdXRNcyAmJlxuICAgICAgICAgICAgaW5wdXRNcyA8PSB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKVxuICAgICAgICApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNTYW1lT3JBZnRlcihpbnB1dCwgdW5pdHMpIHtcbiAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQWZ0ZXIoaW5wdXQsIHVuaXRzKTtcbn1cblxuZnVuY3Rpb24gaXNTYW1lT3JCZWZvcmUoaW5wdXQsIHVuaXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTYW1lKGlucHV0LCB1bml0cykgfHwgdGhpcy5pc0JlZm9yZShpbnB1dCwgdW5pdHMpO1xufVxuXG5mdW5jdGlvbiBkaWZmKGlucHV0LCB1bml0cywgYXNGbG9hdCkge1xuICAgIHZhciB0aGF0LCB6b25lRGVsdGEsIG91dHB1dDtcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG5cbiAgICB0aGF0ID0gY2xvbmVXaXRoT2Zmc2V0KGlucHV0LCB0aGlzKTtcblxuICAgIGlmICghdGhhdC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG5cbiAgICB6b25lRGVsdGEgPSAodGhhdC51dGNPZmZzZXQoKSAtIHRoaXMudXRjT2Zmc2V0KCkpICogNmU0O1xuXG4gICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMTI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDFlMztcbiAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwXG4gICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gNmU0O1xuICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MFxuICAgICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAzNmU1O1xuICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwXG4gICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gODY0ZTU7XG4gICAgICAgICAgICBicmVhazsgLy8gMTAwMCAqIDYwICogNjAgKiAyNCwgbmVnYXRlIGRzdFxuICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA2MDQ4ZTU7XG4gICAgICAgICAgICBicmVhazsgLy8gMTAwMCAqIDYwICogNjAgKiAyNCAqIDcsIG5lZ2F0ZSBkc3RcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG91dHB1dCA9IHRoaXMgLSB0aGF0O1xuICAgIH1cblxuICAgIHJldHVybiBhc0Zsb2F0ID8gb3V0cHV0IDogYWJzRmxvb3Iob3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gbW9udGhEaWZmKGEsIGIpIHtcbiAgICBpZiAoYS5kYXRlKCkgPCBiLmRhdGUoKSkge1xuICAgICAgICAvLyBlbmQtb2YtbW9udGggY2FsY3VsYXRpb25zIHdvcmsgY29ycmVjdCB3aGVuIHRoZSBzdGFydCBtb250aCBoYXMgbW9yZVxuICAgICAgICAvLyBkYXlzIHRoYW4gdGhlIGVuZCBtb250aC5cbiAgICAgICAgcmV0dXJuIC1tb250aERpZmYoYiwgYSk7XG4gICAgfVxuICAgIC8vIGRpZmZlcmVuY2UgaW4gbW9udGhzXG4gICAgdmFyIHdob2xlTW9udGhEaWZmID0gKGIueWVhcigpIC0gYS55ZWFyKCkpICogMTIgKyAoYi5tb250aCgpIC0gYS5tb250aCgpKSxcbiAgICAgICAgLy8gYiBpcyBpbiAoYW5jaG9yIC0gMSBtb250aCwgYW5jaG9yICsgMSBtb250aClcbiAgICAgICAgYW5jaG9yID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiwgJ21vbnRocycpLFxuICAgICAgICBhbmNob3IyLFxuICAgICAgICBhZGp1c3Q7XG5cbiAgICBpZiAoYiAtIGFuY2hvciA8IDApIHtcbiAgICAgICAgYW5jaG9yMiA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYgLSAxLCAnbW9udGhzJyk7XG4gICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgIGFkanVzdCA9IChiIC0gYW5jaG9yKSAvIChhbmNob3IgLSBhbmNob3IyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiArIDEsICdtb250aHMnKTtcbiAgICAgICAgLy8gbGluZWFyIGFjcm9zcyB0aGUgbW9udGhcbiAgICAgICAgYWRqdXN0ID0gKGIgLSBhbmNob3IpIC8gKGFuY2hvcjIgLSBhbmNob3IpO1xuICAgIH1cblxuICAgIC8vY2hlY2sgZm9yIG5lZ2F0aXZlIHplcm8sIHJldHVybiB6ZXJvIGlmIG5lZ2F0aXZlIHplcm9cbiAgICByZXR1cm4gLSh3aG9sZU1vbnRoRGlmZiArIGFkanVzdCkgfHwgMDtcbn1cblxuaG9va3MuZGVmYXVsdEZvcm1hdCA9ICdZWVlZLU1NLUREVEhIOm1tOnNzWic7XG5ob29rcy5kZWZhdWx0Rm9ybWF0VXRjID0gJ1lZWVktTU0tRERUSEg6bW06c3NbWl0nO1xuXG5mdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmxvY2FsZSgnZW4nKS5mb3JtYXQoJ2RkZCBNTU0gREQgWVlZWSBISDptbTpzcyBbR01UXVpaJyk7XG59XG5cbmZ1bmN0aW9uIHRvSVNPU3RyaW5nKGtlZXBPZmZzZXQpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgdXRjID0ga2VlcE9mZnNldCAhPT0gdHJ1ZSxcbiAgICAgICAgbSA9IHV0YyA/IHRoaXMuY2xvbmUoKS51dGMoKSA6IHRoaXM7XG4gICAgaWYgKG0ueWVhcigpIDwgMCB8fCBtLnllYXIoKSA+IDk5OTkpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChcbiAgICAgICAgICAgIG0sXG4gICAgICAgICAgICB1dGNcbiAgICAgICAgICAgICAgICA/ICdZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nXG4gICAgICAgICAgICAgICAgOiAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWidcbiAgICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpKSB7XG4gICAgICAgIC8vIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBpcyB+NTB4IGZhc3RlciwgdXNlIGl0IHdoZW4gd2UgY2FuXG4gICAgICAgIGlmICh1dGMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkgKyB0aGlzLnV0Y09mZnNldCgpICogNjAgKiAxMDAwKVxuICAgICAgICAgICAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ1onLCBmb3JtYXRNb21lbnQobSwgJ1onKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdE1vbWVudChcbiAgICAgICAgbSxcbiAgICAgICAgdXRjID8gJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nIDogJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJ1xuICAgICk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgaHVtYW4gcmVhZGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBtb21lbnQgdGhhdCBjYW5cbiAqIGFsc28gYmUgZXZhbHVhdGVkIHRvIGdldCBhIG5ldyBtb21lbnQgd2hpY2ggaXMgdGhlIHNhbWVcbiAqXG4gKiBAbGluayBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QvZG9jcy9hcGkvdXRpbC5odG1sI3V0aWxfY3VzdG9tX2luc3BlY3RfZnVuY3Rpb25fb25fb2JqZWN0c1xuICovXG5mdW5jdGlvbiBpbnNwZWN0KCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuICdtb21lbnQuaW52YWxpZCgvKiAnICsgdGhpcy5faSArICcgKi8pJztcbiAgICB9XG4gICAgdmFyIGZ1bmMgPSAnbW9tZW50JyxcbiAgICAgICAgem9uZSA9ICcnLFxuICAgICAgICBwcmVmaXgsXG4gICAgICAgIHllYXIsXG4gICAgICAgIGRhdGV0aW1lLFxuICAgICAgICBzdWZmaXg7XG4gICAgaWYgKCF0aGlzLmlzTG9jYWwoKSkge1xuICAgICAgICBmdW5jID0gdGhpcy51dGNPZmZzZXQoKSA9PT0gMCA/ICdtb21lbnQudXRjJyA6ICdtb21lbnQucGFyc2Vab25lJztcbiAgICAgICAgem9uZSA9ICdaJztcbiAgICB9XG4gICAgcHJlZml4ID0gJ1snICsgZnVuYyArICcoXCJdJztcbiAgICB5ZWFyID0gMCA8PSB0aGlzLnllYXIoKSAmJiB0aGlzLnllYXIoKSA8PSA5OTk5ID8gJ1lZWVknIDogJ1lZWVlZWSc7XG4gICAgZGF0ZXRpbWUgPSAnLU1NLUREW1RdSEg6bW06c3MuU1NTJztcbiAgICBzdWZmaXggPSB6b25lICsgJ1tcIildJztcblxuICAgIHJldHVybiB0aGlzLmZvcm1hdChwcmVmaXggKyB5ZWFyICsgZGF0ZXRpbWUgKyBzdWZmaXgpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXQoaW5wdXRTdHJpbmcpIHtcbiAgICBpZiAoIWlucHV0U3RyaW5nKSB7XG4gICAgICAgIGlucHV0U3RyaW5nID0gdGhpcy5pc1V0YygpXG4gICAgICAgICAgICA/IGhvb2tzLmRlZmF1bHRGb3JtYXRVdGNcbiAgICAgICAgICAgIDogaG9va3MuZGVmYXVsdEZvcm1hdDtcbiAgICB9XG4gICAgdmFyIG91dHB1dCA9IGZvcm1hdE1vbWVudCh0aGlzLCBpbnB1dFN0cmluZyk7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLnBvc3Rmb3JtYXQob3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gZnJvbSh0aW1lLCB3aXRob3V0U3VmZml4KSB7XG4gICAgaWYgKFxuICAgICAgICB0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAoKGlzTW9tZW50KHRpbWUpICYmIHRpbWUuaXNWYWxpZCgpKSB8fCBjcmVhdGVMb2NhbCh0aW1lKS5pc1ZhbGlkKCkpXG4gICAgKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7IHRvOiB0aGlzLCBmcm9tOiB0aW1lIH0pXG4gICAgICAgICAgICAubG9jYWxlKHRoaXMubG9jYWxlKCkpXG4gICAgICAgICAgICAuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZnJvbU5vdyh3aXRob3V0U3VmZml4KSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbShjcmVhdGVMb2NhbCgpLCB3aXRob3V0U3VmZml4KTtcbn1cblxuZnVuY3Rpb24gdG8odGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgIGlmIChcbiAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgKChpc01vbWVudCh0aW1lKSAmJiB0aW1lLmlzVmFsaWQoKSkgfHwgY3JlYXRlTG9jYWwodGltZSkuaXNWYWxpZCgpKVxuICAgICkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oeyBmcm9tOiB0aGlzLCB0bzogdGltZSB9KVxuICAgICAgICAgICAgLmxvY2FsZSh0aGlzLmxvY2FsZSgpKVxuICAgICAgICAgICAgLmh1bWFuaXplKCF3aXRob3V0U3VmZml4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvTm93KHdpdGhvdXRTdWZmaXgpIHtcbiAgICByZXR1cm4gdGhpcy50byhjcmVhdGVMb2NhbCgpLCB3aXRob3V0U3VmZml4KTtcbn1cblxuLy8gSWYgcGFzc2VkIGEgbG9jYWxlIGtleSwgaXQgd2lsbCBzZXQgdGhlIGxvY2FsZSBmb3IgdGhpc1xuLy8gaW5zdGFuY2UuICBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8gdmFyaWFibGVzIGZvciB0aGlzIGluc3RhbmNlLlxuZnVuY3Rpb24gbG9jYWxlKGtleSkge1xuICAgIHZhciBuZXdMb2NhbGVEYXRhO1xuXG4gICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGUuX2FiYnI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbmV3TG9jYWxlRGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICBpZiAobmV3TG9jYWxlRGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NhbGUgPSBuZXdMb2NhbGVEYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxudmFyIGxhbmcgPSBkZXByZWNhdGUoXG4gICAgJ21vbWVudCgpLmxhbmcoKSBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkLCB1c2UgbW9tZW50KCkubG9jYWxlRGF0YSgpIHRvIGdldCB0aGUgbGFuZ3VhZ2UgY29uZmlndXJhdGlvbi4gVXNlIG1vbWVudCgpLmxvY2FsZSgpIHRvIGNoYW5nZSBsYW5ndWFnZXMuJyxcbiAgICBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKGtleSk7XG4gICAgICAgIH1cbiAgICB9XG4pO1xuXG5mdW5jdGlvbiBsb2NhbGVEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG59XG5cbnZhciBNU19QRVJfU0VDT05EID0gMTAwMCxcbiAgICBNU19QRVJfTUlOVVRFID0gNjAgKiBNU19QRVJfU0VDT05ELFxuICAgIE1TX1BFUl9IT1VSID0gNjAgKiBNU19QRVJfTUlOVVRFLFxuICAgIE1TX1BFUl80MDBfWUVBUlMgPSAoMzY1ICogNDAwICsgOTcpICogMjQgKiBNU19QRVJfSE9VUjtcblxuLy8gYWN0dWFsIG1vZHVsbyAtIGhhbmRsZXMgbmVnYXRpdmUgbnVtYmVycyAoZm9yIGRhdGVzIGJlZm9yZSAxOTcwKTpcbmZ1bmN0aW9uIG1vZCQxKGRpdmlkZW5kLCBkaXZpc29yKSB7XG4gICAgcmV0dXJuICgoZGl2aWRlbmQgJSBkaXZpc29yKSArIGRpdmlzb3IpICUgZGl2aXNvcjtcbn1cblxuZnVuY3Rpb24gbG9jYWxTdGFydE9mRGF0ZSh5LCBtLCBkKSB7XG4gICAgLy8gdGhlIGRhdGUgY29uc3RydWN0b3IgcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwKSB7XG4gICAgICAgIC8vIHByZXNlcnZlIGxlYXAgeWVhcnMgdXNpbmcgYSBmdWxsIDQwMCB5ZWFyIGN5Y2xlLCB0aGVuIHJlc2V0XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ICsgNDAwLCBtLCBkKSAtIE1TX1BFUl80MDBfWUVBUlM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHksIG0sIGQpLnZhbHVlT2YoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHV0Y1N0YXJ0T2ZEYXRlKHksIG0sIGQpIHtcbiAgICAvLyBEYXRlLlVUQyByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgcmV0dXJuIERhdGUuVVRDKHkgKyA0MDAsIG0sIGQpIC0gTVNfUEVSXzQwMF9ZRUFSUztcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGF0ZS5VVEMoeSwgbSwgZCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBzdGFydE9mKHVuaXRzKSB7XG4gICAgdmFyIHRpbWUsIHN0YXJ0T2ZEYXRlO1xuICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgIGlmICh1bml0cyA9PT0gdW5kZWZpbmVkIHx8IHVuaXRzID09PSAnbWlsbGlzZWNvbmQnIHx8ICF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzdGFydE9mRGF0ZSA9IHRoaXMuX2lzVVRDID8gdXRjU3RhcnRPZkRhdGUgOiBsb2NhbFN0YXJ0T2ZEYXRlO1xuXG4gICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgMCwgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgdGhpcy5tb250aCgpIC0gKHRoaXMubW9udGgoKSAlIDMpLFxuICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCksIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtIHRoaXMud2Vla2RheSgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtICh0aGlzLmlzb1dlZWtkYXkoKSAtIDEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCksIHRoaXMuZGF0ZSgpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEoXG4gICAgICAgICAgICAgICAgdGltZSArICh0aGlzLl9pc1VUQyA/IDAgOiB0aGlzLnV0Y09mZnNldCgpICogTVNfUEVSX01JTlVURSksXG4gICAgICAgICAgICAgICAgTVNfUEVSX0hPVVJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEodGltZSwgTVNfUEVSX01JTlVURSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEodGltZSwgTVNfUEVSX1NFQ09ORCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLl9kLnNldFRpbWUodGltZSk7XG4gICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBlbmRPZih1bml0cykge1xuICAgIHZhciB0aW1lLCBzdGFydE9mRGF0ZTtcbiAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJyB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCkgKyAxLCAwLCAxKSAtIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICB0aW1lID1cbiAgICAgICAgICAgICAgICBzdGFydE9mRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSAtICh0aGlzLm1vbnRoKCkgJSAzKSArIDMsXG4gICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApIC0gMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSArIDEsIDEpIC0gMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgICAgIHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtIHRoaXMud2Vla2RheSgpICsgN1xuICAgICAgICAgICAgICAgICkgLSAxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgdGltZSA9XG4gICAgICAgICAgICAgICAgc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSgpIC0gKHRoaXMuaXNvV2Vla2RheSgpIC0gMSkgKyA3XG4gICAgICAgICAgICAgICAgKSAtIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgdGhpcy5kYXRlKCkgKyAxKSAtIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICB0aW1lICs9XG4gICAgICAgICAgICAgICAgTVNfUEVSX0hPVVIgLVxuICAgICAgICAgICAgICAgIG1vZCQxKFxuICAgICAgICAgICAgICAgICAgICB0aW1lICsgKHRoaXMuX2lzVVRDID8gMCA6IHRoaXMudXRjT2Zmc2V0KCkgKiBNU19QRVJfTUlOVVRFKSxcbiAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVJcbiAgICAgICAgICAgICAgICApIC1cbiAgICAgICAgICAgICAgICAxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9NSU5VVEUgLSBtb2QkMSh0aW1lLCBNU19QRVJfTUlOVVRFKSAtIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIHRpbWUgKz0gTVNfUEVSX1NFQ09ORCAtIG1vZCQxKHRpbWUsIE1TX1BFUl9TRUNPTkQpIC0gMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMuX2Quc2V0VGltZSh0aW1lKTtcbiAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHZhbHVlT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2QudmFsdWVPZigpIC0gKHRoaXMuX29mZnNldCB8fCAwKSAqIDYwMDAwO1xufVxuXG5mdW5jdGlvbiB1bml4KCkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpIC8gMTAwMCk7XG59XG5cbmZ1bmN0aW9uIHRvRGF0ZSgpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpO1xufVxuXG5mdW5jdGlvbiB0b0FycmF5KCkge1xuICAgIHZhciBtID0gdGhpcztcbiAgICByZXR1cm4gW1xuICAgICAgICBtLnllYXIoKSxcbiAgICAgICAgbS5tb250aCgpLFxuICAgICAgICBtLmRhdGUoKSxcbiAgICAgICAgbS5ob3VyKCksXG4gICAgICAgIG0ubWludXRlKCksXG4gICAgICAgIG0uc2Vjb25kKCksXG4gICAgICAgIG0ubWlsbGlzZWNvbmQoKSxcbiAgICBdO1xufVxuXG5mdW5jdGlvbiB0b09iamVjdCgpIHtcbiAgICB2YXIgbSA9IHRoaXM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeWVhcnM6IG0ueWVhcigpLFxuICAgICAgICBtb250aHM6IG0ubW9udGgoKSxcbiAgICAgICAgZGF0ZTogbS5kYXRlKCksXG4gICAgICAgIGhvdXJzOiBtLmhvdXJzKCksXG4gICAgICAgIG1pbnV0ZXM6IG0ubWludXRlcygpLFxuICAgICAgICBzZWNvbmRzOiBtLnNlY29uZHMoKSxcbiAgICAgICAgbWlsbGlzZWNvbmRzOiBtLm1pbGxpc2Vjb25kcygpLFxuICAgIH07XG59XG5cbmZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICAvLyBuZXcgRGF0ZShOYU4pLnRvSlNPTigpID09PSBudWxsXG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy50b0lTT1N0cmluZygpIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNWYWxpZCQyKCkge1xuICAgIHJldHVybiBpc1ZhbGlkKHRoaXMpO1xufVxuXG5mdW5jdGlvbiBwYXJzaW5nRmxhZ3MoKSB7XG4gICAgcmV0dXJuIGV4dGVuZCh7fSwgZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpKTtcbn1cblxuZnVuY3Rpb24gaW52YWxpZEF0KCkge1xuICAgIHJldHVybiBnZXRQYXJzaW5nRmxhZ3ModGhpcykub3ZlcmZsb3c7XG59XG5cbmZ1bmN0aW9uIGNyZWF0aW9uRGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpbnB1dDogdGhpcy5faSxcbiAgICAgICAgZm9ybWF0OiB0aGlzLl9mLFxuICAgICAgICBsb2NhbGU6IHRoaXMuX2xvY2FsZSxcbiAgICAgICAgaXNVVEM6IHRoaXMuX2lzVVRDLFxuICAgICAgICBzdHJpY3Q6IHRoaXMuX3N0cmljdCxcbiAgICB9O1xufVxuXG5hZGRGb3JtYXRUb2tlbignTicsIDAsIDAsICdlcmFBYmJyJyk7XG5hZGRGb3JtYXRUb2tlbignTk4nLCAwLCAwLCAnZXJhQWJicicpO1xuYWRkRm9ybWF0VG9rZW4oJ05OTicsIDAsIDAsICdlcmFBYmJyJyk7XG5hZGRGb3JtYXRUb2tlbignTk5OTicsIDAsIDAsICdlcmFOYW1lJyk7XG5hZGRGb3JtYXRUb2tlbignTk5OTk4nLCAwLCAwLCAnZXJhTmFycm93Jyk7XG5cbmFkZEZvcm1hdFRva2VuKCd5JywgWyd5JywgMV0sICd5bycsICdlcmFZZWFyJyk7XG5hZGRGb3JtYXRUb2tlbigneScsIFsneXknLCAyXSwgMCwgJ2VyYVllYXInKTtcbmFkZEZvcm1hdFRva2VuKCd5JywgWyd5eXknLCAzXSwgMCwgJ2VyYVllYXInKTtcbmFkZEZvcm1hdFRva2VuKCd5JywgWyd5eXl5JywgNF0sIDAsICdlcmFZZWFyJyk7XG5cbmFkZFJlZ2V4VG9rZW4oJ04nLCBtYXRjaEVyYUFiYnIpO1xuYWRkUmVnZXhUb2tlbignTk4nLCBtYXRjaEVyYUFiYnIpO1xuYWRkUmVnZXhUb2tlbignTk5OJywgbWF0Y2hFcmFBYmJyKTtcbmFkZFJlZ2V4VG9rZW4oJ05OTk4nLCBtYXRjaEVyYU5hbWUpO1xuYWRkUmVnZXhUb2tlbignTk5OTk4nLCBtYXRjaEVyYU5hcnJvdyk7XG5cbmFkZFBhcnNlVG9rZW4oWydOJywgJ05OJywgJ05OTicsICdOTk5OJywgJ05OTk5OJ10sIGZ1bmN0aW9uIChcbiAgICBpbnB1dCxcbiAgICBhcnJheSxcbiAgICBjb25maWcsXG4gICAgdG9rZW5cbikge1xuICAgIHZhciBlcmEgPSBjb25maWcuX2xvY2FsZS5lcmFzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgaWYgKGVyYSkge1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lcmEgPSBlcmE7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEVyYSA9IGlucHV0O1xuICAgIH1cbn0pO1xuXG5hZGRSZWdleFRva2VuKCd5JywgbWF0Y2hVbnNpZ25lZCk7XG5hZGRSZWdleFRva2VuKCd5eScsIG1hdGNoVW5zaWduZWQpO1xuYWRkUmVnZXhUb2tlbigneXl5JywgbWF0Y2hVbnNpZ25lZCk7XG5hZGRSZWdleFRva2VuKCd5eXl5JywgbWF0Y2hVbnNpZ25lZCk7XG5hZGRSZWdleFRva2VuKCd5bycsIG1hdGNoRXJhWWVhck9yZGluYWwpO1xuXG5hZGRQYXJzZVRva2VuKFsneScsICd5eScsICd5eXknLCAneXl5eSddLCBZRUFSKTtcbmFkZFBhcnNlVG9rZW4oWyd5byddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgdmFyIG1hdGNoO1xuICAgIGlmIChjb25maWcuX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCkge1xuICAgICAgICBtYXRjaCA9IGlucHV0Lm1hdGNoKGNvbmZpZy5fbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4KTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLl9sb2NhbGUuZXJhWWVhck9yZGluYWxQYXJzZSkge1xuICAgICAgICBhcnJheVtZRUFSXSA9IGNvbmZpZy5fbG9jYWxlLmVyYVllYXJPcmRpbmFsUGFyc2UoaW5wdXQsIG1hdGNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhcnJheVtZRUFSXSA9IHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgfVxufSk7XG5cbmZ1bmN0aW9uIGxvY2FsZUVyYXMobSwgZm9ybWF0KSB7XG4gICAgdmFyIGksXG4gICAgICAgIGwsXG4gICAgICAgIGRhdGUsXG4gICAgICAgIGVyYXMgPSB0aGlzLl9lcmFzIHx8IGdldExvY2FsZSgnZW4nKS5fZXJhcztcbiAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICAgICAgZGF0ZSA9IGhvb2tzKGVyYXNbaV0uc2luY2UpLnN0YXJ0T2YoJ2RheScpO1xuICAgICAgICAgICAgICAgIGVyYXNbaV0uc2luY2UgPSBkYXRlLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIGVyYXNbaV0udW50aWwpIHtcbiAgICAgICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICAgICAgZXJhc1tpXS51bnRpbCA9ICtJbmZpbml0eTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgICAgIGRhdGUgPSBob29rcyhlcmFzW2ldLnVudGlsKS5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgZXJhc1tpXS51bnRpbCA9IGRhdGUudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlcmFzO1xufVxuXG5mdW5jdGlvbiBsb2NhbGVFcmFzUGFyc2UoZXJhTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbCxcbiAgICAgICAgZXJhcyA9IHRoaXMuZXJhcygpLFxuICAgICAgICBuYW1lLFxuICAgICAgICBhYmJyLFxuICAgICAgICBuYXJyb3c7XG4gICAgZXJhTmFtZSA9IGVyYU5hbWUudG9VcHBlckNhc2UoKTtcblxuICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICBuYW1lID0gZXJhc1tpXS5uYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIGFiYnIgPSBlcmFzW2ldLmFiYnIudG9VcHBlckNhc2UoKTtcbiAgICAgICAgbmFycm93ID0gZXJhc1tpXS5uYXJyb3cudG9VcHBlckNhc2UoKTtcblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ04nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ05OJzpcbiAgICAgICAgICAgICAgICBjYXNlICdOTk4nOlxuICAgICAgICAgICAgICAgICAgICBpZiAoYWJiciA9PT0gZXJhTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdOTk5OJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09IGVyYU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnTk5OTk4nOlxuICAgICAgICAgICAgICAgICAgICBpZiAobmFycm93ID09PSBlcmFOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChbbmFtZSwgYWJiciwgbmFycm93XS5pbmRleE9mKGVyYU5hbWUpID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBsb2NhbGVFcmFzQ29udmVydFllYXIoZXJhLCB5ZWFyKSB7XG4gICAgdmFyIGRpciA9IGVyYS5zaW5jZSA8PSBlcmEudW50aWwgPyArMSA6IC0xO1xuICAgIGlmICh5ZWFyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGhvb2tzKGVyYS5zaW5jZSkueWVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBob29rcyhlcmEuc2luY2UpLnllYXIoKSArICh5ZWFyIC0gZXJhLm9mZnNldCkgKiBkaXI7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRFcmFOYW1lKCkge1xuICAgIHZhciBpLFxuICAgICAgICBsLFxuICAgICAgICB2YWwsXG4gICAgICAgIGVyYXMgPSB0aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7XG4gICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgdmFsID0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICBpZiAoZXJhc1tpXS5zaW5jZSA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0udW50aWwpIHtcbiAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVyYXNbaV0udW50aWwgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnNpbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5uYW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRFcmFOYXJyb3coKSB7XG4gICAgdmFyIGksXG4gICAgICAgIGwsXG4gICAgICAgIHZhbCxcbiAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICB2YWwgPSB0aGlzLmNsb25lKCkuc3RhcnRPZignZGF5JykudmFsdWVPZigpO1xuXG4gICAgICAgIGlmIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkge1xuICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0ubmFycm93O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcmFzW2ldLnVudGlsIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0ubmFycm93O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRFcmFBYmJyKCkge1xuICAgIHZhciBpLFxuICAgICAgICBsLFxuICAgICAgICB2YWwsXG4gICAgICAgIGVyYXMgPSB0aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7XG4gICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgdmFsID0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICBpZiAoZXJhc1tpXS5zaW5jZSA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0udW50aWwpIHtcbiAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLmFiYnI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVyYXNbaV0udW50aWwgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnNpbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5hYmJyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRFcmFZZWFyKCkge1xuICAgIHZhciBpLFxuICAgICAgICBsLFxuICAgICAgICBkaXIsXG4gICAgICAgIHZhbCxcbiAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgZGlyID0gZXJhc1tpXS5zaW5jZSA8PSBlcmFzW2ldLnVudGlsID8gKzEgOiAtMTtcblxuICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgIHZhbCA9IHRoaXMuY2xvbmUoKS5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGVyYXNbaV0uc2luY2UgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnVudGlsKSB8fFxuICAgICAgICAgICAgKGVyYXNbaV0udW50aWwgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnNpbmNlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHRoaXMueWVhcigpIC0gaG9va3MoZXJhc1tpXS5zaW5jZSkueWVhcigpKSAqIGRpciArXG4gICAgICAgICAgICAgICAgZXJhc1tpXS5vZmZzZXRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy55ZWFyKCk7XG59XG5cbmZ1bmN0aW9uIGVyYXNOYW1lUmVnZXgoaXNTdHJpY3QpIHtcbiAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19lcmFzTmFtZVJlZ2V4JykpIHtcbiAgICAgICAgY29tcHV0ZUVyYXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gaXNTdHJpY3QgPyB0aGlzLl9lcmFzTmFtZVJlZ2V4IDogdGhpcy5fZXJhc1JlZ2V4O1xufVxuXG5mdW5jdGlvbiBlcmFzQWJiclJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfZXJhc0FiYnJSZWdleCcpKSB7XG4gICAgICAgIGNvbXB1dGVFcmFzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzU3RyaWN0ID8gdGhpcy5fZXJhc0FiYnJSZWdleCA6IHRoaXMuX2VyYXNSZWdleDtcbn1cblxuZnVuY3Rpb24gZXJhc05hcnJvd1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfZXJhc05hcnJvd1JlZ2V4JykpIHtcbiAgICAgICAgY29tcHV0ZUVyYXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gaXNTdHJpY3QgPyB0aGlzLl9lcmFzTmFycm93UmVnZXggOiB0aGlzLl9lcmFzUmVnZXg7XG59XG5cbmZ1bmN0aW9uIG1hdGNoRXJhQWJicihpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgcmV0dXJuIGxvY2FsZS5lcmFzQWJiclJlZ2V4KGlzU3RyaWN0KTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hFcmFOYW1lKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlLmVyYXNOYW1lUmVnZXgoaXNTdHJpY3QpO1xufVxuXG5mdW5jdGlvbiBtYXRjaEVyYU5hcnJvdyhpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgcmV0dXJuIGxvY2FsZS5lcmFzTmFycm93UmVnZXgoaXNTdHJpY3QpO1xufVxuXG5mdW5jdGlvbiBtYXRjaEVyYVllYXJPcmRpbmFsKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4IHx8IG1hdGNoVW5zaWduZWQ7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVFcmFzUGFyc2UoKSB7XG4gICAgdmFyIGFiYnJQaWVjZXMgPSBbXSxcbiAgICAgICAgbmFtZVBpZWNlcyA9IFtdLFxuICAgICAgICBuYXJyb3dQaWVjZXMgPSBbXSxcbiAgICAgICAgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgaSxcbiAgICAgICAgbCxcbiAgICAgICAgZXJhcyA9IHRoaXMuZXJhcygpO1xuXG4gICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgIG5hbWVQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hbWUpKTtcbiAgICAgICAgYWJiclBpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0uYWJicikpO1xuICAgICAgICBuYXJyb3dQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hcnJvdykpO1xuXG4gICAgICAgIG1peGVkUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5uYW1lKSk7XG4gICAgICAgIG1peGVkUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5hYmJyKSk7XG4gICAgICAgIG1peGVkUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5uYXJyb3cpKTtcbiAgICB9XG5cbiAgICB0aGlzLl9lcmFzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgdGhpcy5fZXJhc05hbWVSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG5hbWVQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgIHRoaXMuX2VyYXNBYmJyUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBhYmJyUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICB0aGlzLl9lcmFzTmFycm93UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAnXignICsgbmFycm93UGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgJ2knXG4gICAgKTtcbn1cblxuLy8gRk9STUFUVElOR1xuXG5hZGRGb3JtYXRUb2tlbigwLCBbJ2dnJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy53ZWVrWWVhcigpICUgMTAwO1xufSk7XG5cbmFkZEZvcm1hdFRva2VuKDAsIFsnR0cnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmlzb1dlZWtZZWFyKCkgJSAxMDA7XG59KTtcblxuZnVuY3Rpb24gYWRkV2Vla1llYXJGb3JtYXRUb2tlbih0b2tlbiwgZ2V0dGVyKSB7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgW3Rva2VuLCB0b2tlbi5sZW5ndGhdLCAwLCBnZXR0ZXIpO1xufVxuXG5hZGRXZWVrWWVhckZvcm1hdFRva2VuKCdnZ2dnJywgJ3dlZWtZZWFyJyk7XG5hZGRXZWVrWWVhckZvcm1hdFRva2VuKCdnZ2dnZycsICd3ZWVrWWVhcicpO1xuYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHRycsICdpc29XZWVrWWVhcicpO1xuYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHR0cnLCAnaXNvV2Vla1llYXInKTtcblxuLy8gQUxJQVNFU1xuXG5hZGRVbml0QWxpYXMoJ3dlZWtZZWFyJywgJ2dnJyk7XG5hZGRVbml0QWxpYXMoJ2lzb1dlZWtZZWFyJywgJ0dHJyk7XG5cbi8vIFBSSU9SSVRZXG5cbmFkZFVuaXRQcmlvcml0eSgnd2Vla1llYXInLCAxKTtcbmFkZFVuaXRQcmlvcml0eSgnaXNvV2Vla1llYXInLCAxKTtcblxuLy8gUEFSU0lOR1xuXG5hZGRSZWdleFRva2VuKCdHJywgbWF0Y2hTaWduZWQpO1xuYWRkUmVnZXhUb2tlbignZycsIG1hdGNoU2lnbmVkKTtcbmFkZFJlZ2V4VG9rZW4oJ0dHJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuYWRkUmVnZXhUb2tlbignZ2cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5hZGRSZWdleFRva2VuKCdHR0dHJywgbWF0Y2gxdG80LCBtYXRjaDQpO1xuYWRkUmVnZXhUb2tlbignZ2dnZycsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbmFkZFJlZ2V4VG9rZW4oJ0dHR0dHJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuYWRkUmVnZXhUb2tlbignZ2dnZ2cnLCBtYXRjaDF0bzYsIG1hdGNoNik7XG5cbmFkZFdlZWtQYXJzZVRva2VuKFsnZ2dnZycsICdnZ2dnZycsICdHR0dHJywgJ0dHR0dHJ10sIGZ1bmN0aW9uIChcbiAgICBpbnB1dCxcbiAgICB3ZWVrLFxuICAgIGNvbmZpZyxcbiAgICB0b2tlblxuKSB7XG4gICAgd2Vla1t0b2tlbi5zdWJzdHIoMCwgMildID0gdG9JbnQoaW5wdXQpO1xufSk7XG5cbmFkZFdlZWtQYXJzZVRva2VuKFsnZ2cnLCAnR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgd2Vla1t0b2tlbl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG59KTtcblxuLy8gTU9NRU5UU1xuXG5mdW5jdGlvbiBnZXRTZXRXZWVrWWVhcihpbnB1dCkge1xuICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKFxuICAgICAgICB0aGlzLFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgdGhpcy53ZWVrKCksXG4gICAgICAgIHRoaXMud2Vla2RheSgpLFxuICAgICAgICB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3csXG4gICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRveVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIGdldFNldElTT1dlZWtZZWFyKGlucHV0KSB7XG4gICAgcmV0dXJuIGdldFNldFdlZWtZZWFySGVscGVyLmNhbGwoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGlucHV0LFxuICAgICAgICB0aGlzLmlzb1dlZWsoKSxcbiAgICAgICAgdGhpcy5pc29XZWVrZGF5KCksXG4gICAgICAgIDEsXG4gICAgICAgIDRcbiAgICApO1xufVxuXG5mdW5jdGlvbiBnZXRJU09XZWVrc0luWWVhcigpIHtcbiAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIDEsIDQpO1xufVxuXG5mdW5jdGlvbiBnZXRJU09XZWVrc0luSVNPV2Vla1llYXIoKSB7XG4gICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMuaXNvV2Vla1llYXIoKSwgMSwgNCk7XG59XG5cbmZ1bmN0aW9uIGdldFdlZWtzSW5ZZWFyKCkge1xuICAgIHZhciB3ZWVrSW5mbyA9IHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrO1xuICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgd2Vla0luZm8uZG93LCB3ZWVrSW5mby5kb3kpO1xufVxuXG5mdW5jdGlvbiBnZXRXZWVrc0luV2Vla1llYXIoKSB7XG4gICAgdmFyIHdlZWtJbmZvID0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7XG4gICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMud2Vla1llYXIoKSwgd2Vla0luZm8uZG93LCB3ZWVrSW5mby5kb3kpO1xufVxuXG5mdW5jdGlvbiBnZXRTZXRXZWVrWWVhckhlbHBlcihpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICB2YXIgd2Vla3NUYXJnZXQ7XG4gICAgaWYgKGlucHV0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIodGhpcywgZG93LCBkb3kpLnllYXI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2Vla3NUYXJnZXQgPSB3ZWVrc0luWWVhcihpbnB1dCwgZG93LCBkb3kpO1xuICAgICAgICBpZiAod2VlayA+IHdlZWtzVGFyZ2V0KSB7XG4gICAgICAgICAgICB3ZWVrID0gd2Vla3NUYXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNldFdlZWtBbGwuY2FsbCh0aGlzLCBpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gc2V0V2Vla0FsbCh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICB2YXIgZGF5T2ZZZWFyRGF0YSA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpLFxuICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZShkYXlPZlllYXJEYXRhLnllYXIsIDAsIGRheU9mWWVhckRhdGEuZGF5T2ZZZWFyKTtcblxuICAgIHRoaXMueWVhcihkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpO1xuICAgIHRoaXMubW9udGgoZGF0ZS5nZXRVVENNb250aCgpKTtcbiAgICB0aGlzLmRhdGUoZGF0ZS5nZXRVVENEYXRlKCkpO1xuICAgIHJldHVybiB0aGlzO1xufVxuXG4vLyBGT1JNQVRUSU5HXG5cbmFkZEZvcm1hdFRva2VuKCdRJywgMCwgJ1FvJywgJ3F1YXJ0ZXInKTtcblxuLy8gQUxJQVNFU1xuXG5hZGRVbml0QWxpYXMoJ3F1YXJ0ZXInLCAnUScpO1xuXG4vLyBQUklPUklUWVxuXG5hZGRVbml0UHJpb3JpdHkoJ3F1YXJ0ZXInLCA3KTtcblxuLy8gUEFSU0lOR1xuXG5hZGRSZWdleFRva2VuKCdRJywgbWF0Y2gxKTtcbmFkZFBhcnNlVG9rZW4oJ1EnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgYXJyYXlbTU9OVEhdID0gKHRvSW50KGlucHV0KSAtIDEpICogMztcbn0pO1xuXG4vLyBNT01FTlRTXG5cbmZ1bmN0aW9uIGdldFNldFF1YXJ0ZXIoaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQgPT0gbnVsbFxuICAgICAgICA/IE1hdGguY2VpbCgodGhpcy5tb250aCgpICsgMSkgLyAzKVxuICAgICAgICA6IHRoaXMubW9udGgoKGlucHV0IC0gMSkgKiAzICsgKHRoaXMubW9udGgoKSAlIDMpKTtcbn1cblxuLy8gRk9STUFUVElOR1xuXG5hZGRGb3JtYXRUb2tlbignRCcsIFsnREQnLCAyXSwgJ0RvJywgJ2RhdGUnKTtcblxuLy8gQUxJQVNFU1xuXG5hZGRVbml0QWxpYXMoJ2RhdGUnLCAnRCcpO1xuXG4vLyBQUklPUklUWVxuYWRkVW5pdFByaW9yaXR5KCdkYXRlJywgOSk7XG5cbi8vIFBBUlNJTkdcblxuYWRkUmVnZXhUb2tlbignRCcsIG1hdGNoMXRvMik7XG5hZGRSZWdleFRva2VuKCdERCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbmFkZFJlZ2V4VG9rZW4oJ0RvJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgcmV0dXJuIGlzU3RyaWN0XG4gICAgICAgID8gbG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlIHx8IGxvY2FsZS5fb3JkaW5hbFBhcnNlXG4gICAgICAgIDogbG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudDtcbn0pO1xuXG5hZGRQYXJzZVRva2VuKFsnRCcsICdERCddLCBEQVRFKTtcbmFkZFBhcnNlVG9rZW4oJ0RvJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgIGFycmF5W0RBVEVdID0gdG9JbnQoaW5wdXQubWF0Y2gobWF0Y2gxdG8yKVswXSk7XG59KTtcblxuLy8gTU9NRU5UU1xuXG52YXIgZ2V0U2V0RGF5T2ZNb250aCA9IG1ha2VHZXRTZXQoJ0RhdGUnLCB0cnVlKTtcblxuLy8gRk9STUFUVElOR1xuXG5hZGRGb3JtYXRUb2tlbignREREJywgWydEREREJywgM10sICdERERvJywgJ2RheU9mWWVhcicpO1xuXG4vLyBBTElBU0VTXG5cbmFkZFVuaXRBbGlhcygnZGF5T2ZZZWFyJywgJ0RERCcpO1xuXG4vLyBQUklPUklUWVxuYWRkVW5pdFByaW9yaXR5KCdkYXlPZlllYXInLCA0KTtcblxuLy8gUEFSU0lOR1xuXG5hZGRSZWdleFRva2VuKCdEREQnLCBtYXRjaDF0bzMpO1xuYWRkUmVnZXhUb2tlbignRERERCcsIG1hdGNoMyk7XG5hZGRQYXJzZVRva2VuKFsnREREJywgJ0REREQnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgY29uZmlnLl9kYXlPZlllYXIgPSB0b0ludChpbnB1dCk7XG59KTtcblxuLy8gSEVMUEVSU1xuXG4vLyBNT01FTlRTXG5cbmZ1bmN0aW9uIGdldFNldERheU9mWWVhcihpbnB1dCkge1xuICAgIHZhciBkYXlPZlllYXIgPVxuICAgICAgICBNYXRoLnJvdW5kKFxuICAgICAgICAgICAgKHRoaXMuY2xvbmUoKS5zdGFydE9mKCdkYXknKSAtIHRoaXMuY2xvbmUoKS5zdGFydE9mKCd5ZWFyJykpIC8gODY0ZTVcbiAgICAgICAgKSArIDE7XG4gICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyBkYXlPZlllYXIgOiB0aGlzLmFkZChpbnB1dCAtIGRheU9mWWVhciwgJ2QnKTtcbn1cblxuLy8gRk9STUFUVElOR1xuXG5hZGRGb3JtYXRUb2tlbignbScsIFsnbW0nLCAyXSwgMCwgJ21pbnV0ZScpO1xuXG4vLyBBTElBU0VTXG5cbmFkZFVuaXRBbGlhcygnbWludXRlJywgJ20nKTtcblxuLy8gUFJJT1JJVFlcblxuYWRkVW5pdFByaW9yaXR5KCdtaW51dGUnLCAxNCk7XG5cbi8vIFBBUlNJTkdcblxuYWRkUmVnZXhUb2tlbignbScsIG1hdGNoMXRvMik7XG5hZGRSZWdleFRva2VuKCdtbScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbmFkZFBhcnNlVG9rZW4oWydtJywgJ21tJ10sIE1JTlVURSk7XG5cbi8vIE1PTUVOVFNcblxudmFyIGdldFNldE1pbnV0ZSA9IG1ha2VHZXRTZXQoJ01pbnV0ZXMnLCBmYWxzZSk7XG5cbi8vIEZPUk1BVFRJTkdcblxuYWRkRm9ybWF0VG9rZW4oJ3MnLCBbJ3NzJywgMl0sIDAsICdzZWNvbmQnKTtcblxuLy8gQUxJQVNFU1xuXG5hZGRVbml0QWxpYXMoJ3NlY29uZCcsICdzJyk7XG5cbi8vIFBSSU9SSVRZXG5cbmFkZFVuaXRQcmlvcml0eSgnc2Vjb25kJywgMTUpO1xuXG4vLyBQQVJTSU5HXG5cbmFkZFJlZ2V4VG9rZW4oJ3MnLCBtYXRjaDF0bzIpO1xuYWRkUmVnZXhUb2tlbignc3MnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5hZGRQYXJzZVRva2VuKFsncycsICdzcyddLCBTRUNPTkQpO1xuXG4vLyBNT01FTlRTXG5cbnZhciBnZXRTZXRTZWNvbmQgPSBtYWtlR2V0U2V0KCdTZWNvbmRzJywgZmFsc2UpO1xuXG4vLyBGT1JNQVRUSU5HXG5cbmFkZEZvcm1hdFRva2VuKCdTJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMDApO1xufSk7XG5cbmFkZEZvcm1hdFRva2VuKDAsIFsnU1MnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMCk7XG59KTtcblxuYWRkRm9ybWF0VG9rZW4oMCwgWydTU1MnLCAzXSwgMCwgJ21pbGxpc2Vjb25kJyk7XG5hZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1MnLCA0XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDtcbn0pO1xuYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTUycsIDVdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDtcbn0pO1xuYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1MnLCA2XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwO1xufSk7XG5hZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1MnLCA3XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDtcbn0pO1xuYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTUycsIDhdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwMDtcbn0pO1xuYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTU1MnLCA5XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDAwO1xufSk7XG5cbi8vIEFMSUFTRVNcblxuYWRkVW5pdEFsaWFzKCdtaWxsaXNlY29uZCcsICdtcycpO1xuXG4vLyBQUklPUklUWVxuXG5hZGRVbml0UHJpb3JpdHkoJ21pbGxpc2Vjb25kJywgMTYpO1xuXG4vLyBQQVJTSU5HXG5cbmFkZFJlZ2V4VG9rZW4oJ1MnLCBtYXRjaDF0bzMsIG1hdGNoMSk7XG5hZGRSZWdleFRva2VuKCdTUycsIG1hdGNoMXRvMywgbWF0Y2gyKTtcbmFkZFJlZ2V4VG9rZW4oJ1NTUycsIG1hdGNoMXRvMywgbWF0Y2gzKTtcblxudmFyIHRva2VuLCBnZXRTZXRNaWxsaXNlY29uZDtcbmZvciAodG9rZW4gPSAnU1NTUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICBhZGRSZWdleFRva2VuKHRva2VuLCBtYXRjaFVuc2lnbmVkKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VNcyhpbnB1dCwgYXJyYXkpIHtcbiAgICBhcnJheVtNSUxMSVNFQ09ORF0gPSB0b0ludCgoJzAuJyArIGlucHV0KSAqIDEwMDApO1xufVxuXG5mb3IgKHRva2VuID0gJ1MnOyB0b2tlbi5sZW5ndGggPD0gOTsgdG9rZW4gKz0gJ1MnKSB7XG4gICAgYWRkUGFyc2VUb2tlbih0b2tlbiwgcGFyc2VNcyk7XG59XG5cbmdldFNldE1pbGxpc2Vjb25kID0gbWFrZUdldFNldCgnTWlsbGlzZWNvbmRzJywgZmFsc2UpO1xuXG4vLyBGT1JNQVRUSU5HXG5cbmFkZEZvcm1hdFRva2VuKCd6JywgMCwgMCwgJ3pvbmVBYmJyJyk7XG5hZGRGb3JtYXRUb2tlbignenonLCAwLCAwLCAnem9uZU5hbWUnKTtcblxuLy8gTU9NRU5UU1xuXG5mdW5jdGlvbiBnZXRab25lQWJicigpIHtcbiAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnVVRDJyA6ICcnO1xufVxuXG5mdW5jdGlvbiBnZXRab25lTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7XG59XG5cbnZhciBwcm90byA9IE1vbWVudC5wcm90b3R5cGU7XG5cbnByb3RvLmFkZCA9IGFkZDtcbnByb3RvLmNhbGVuZGFyID0gY2FsZW5kYXIkMTtcbnByb3RvLmNsb25lID0gY2xvbmU7XG5wcm90by5kaWZmID0gZGlmZjtcbnByb3RvLmVuZE9mID0gZW5kT2Y7XG5wcm90by5mb3JtYXQgPSBmb3JtYXQ7XG5wcm90by5mcm9tID0gZnJvbTtcbnByb3RvLmZyb21Ob3cgPSBmcm9tTm93O1xucHJvdG8udG8gPSB0bztcbnByb3RvLnRvTm93ID0gdG9Ob3c7XG5wcm90by5nZXQgPSBzdHJpbmdHZXQ7XG5wcm90by5pbnZhbGlkQXQgPSBpbnZhbGlkQXQ7XG5wcm90by5pc0FmdGVyID0gaXNBZnRlcjtcbnByb3RvLmlzQmVmb3JlID0gaXNCZWZvcmU7XG5wcm90by5pc0JldHdlZW4gPSBpc0JldHdlZW47XG5wcm90by5pc1NhbWUgPSBpc1NhbWU7XG5wcm90by5pc1NhbWVPckFmdGVyID0gaXNTYW1lT3JBZnRlcjtcbnByb3RvLmlzU2FtZU9yQmVmb3JlID0gaXNTYW1lT3JCZWZvcmU7XG5wcm90by5pc1ZhbGlkID0gaXNWYWxpZCQyO1xucHJvdG8ubGFuZyA9IGxhbmc7XG5wcm90by5sb2NhbGUgPSBsb2NhbGU7XG5wcm90by5sb2NhbGVEYXRhID0gbG9jYWxlRGF0YTtcbnByb3RvLm1heCA9IHByb3RvdHlwZU1heDtcbnByb3RvLm1pbiA9IHByb3RvdHlwZU1pbjtcbnByb3RvLnBhcnNpbmdGbGFncyA9IHBhcnNpbmdGbGFncztcbnByb3RvLnNldCA9IHN0cmluZ1NldDtcbnByb3RvLnN0YXJ0T2YgPSBzdGFydE9mO1xucHJvdG8uc3VidHJhY3QgPSBzdWJ0cmFjdDtcbnByb3RvLnRvQXJyYXkgPSB0b0FycmF5O1xucHJvdG8udG9PYmplY3QgPSB0b09iamVjdDtcbnByb3RvLnRvRGF0ZSA9IHRvRGF0ZTtcbnByb3RvLnRvSVNPU3RyaW5nID0gdG9JU09TdHJpbmc7XG5wcm90by5pbnNwZWN0ID0gaW5zcGVjdDtcbmlmICh0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wuZm9yICE9IG51bGwpIHtcbiAgICBwcm90b1tTeW1ib2wuZm9yKCdub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbScpXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICdNb21lbnQ8JyArIHRoaXMuZm9ybWF0KCkgKyAnPic7XG4gICAgfTtcbn1cbnByb3RvLnRvSlNPTiA9IHRvSlNPTjtcbnByb3RvLnRvU3RyaW5nID0gdG9TdHJpbmc7XG5wcm90by51bml4ID0gdW5peDtcbnByb3RvLnZhbHVlT2YgPSB2YWx1ZU9mO1xucHJvdG8uY3JlYXRpb25EYXRhID0gY3JlYXRpb25EYXRhO1xucHJvdG8uZXJhTmFtZSA9IGdldEVyYU5hbWU7XG5wcm90by5lcmFOYXJyb3cgPSBnZXRFcmFOYXJyb3c7XG5wcm90by5lcmFBYmJyID0gZ2V0RXJhQWJicjtcbnByb3RvLmVyYVllYXIgPSBnZXRFcmFZZWFyO1xucHJvdG8ueWVhciA9IGdldFNldFllYXI7XG5wcm90by5pc0xlYXBZZWFyID0gZ2V0SXNMZWFwWWVhcjtcbnByb3RvLndlZWtZZWFyID0gZ2V0U2V0V2Vla1llYXI7XG5wcm90by5pc29XZWVrWWVhciA9IGdldFNldElTT1dlZWtZZWFyO1xucHJvdG8ucXVhcnRlciA9IHByb3RvLnF1YXJ0ZXJzID0gZ2V0U2V0UXVhcnRlcjtcbnByb3RvLm1vbnRoID0gZ2V0U2V0TW9udGg7XG5wcm90by5kYXlzSW5Nb250aCA9IGdldERheXNJbk1vbnRoO1xucHJvdG8ud2VlayA9IHByb3RvLndlZWtzID0gZ2V0U2V0V2VlaztcbnByb3RvLmlzb1dlZWsgPSBwcm90by5pc29XZWVrcyA9IGdldFNldElTT1dlZWs7XG5wcm90by53ZWVrc0luWWVhciA9IGdldFdlZWtzSW5ZZWFyO1xucHJvdG8ud2Vla3NJbldlZWtZZWFyID0gZ2V0V2Vla3NJbldlZWtZZWFyO1xucHJvdG8uaXNvV2Vla3NJblllYXIgPSBnZXRJU09XZWVrc0luWWVhcjtcbnByb3RvLmlzb1dlZWtzSW5JU09XZWVrWWVhciA9IGdldElTT1dlZWtzSW5JU09XZWVrWWVhcjtcbnByb3RvLmRhdGUgPSBnZXRTZXREYXlPZk1vbnRoO1xucHJvdG8uZGF5ID0gcHJvdG8uZGF5cyA9IGdldFNldERheU9mV2VlaztcbnByb3RvLndlZWtkYXkgPSBnZXRTZXRMb2NhbGVEYXlPZldlZWs7XG5wcm90by5pc29XZWVrZGF5ID0gZ2V0U2V0SVNPRGF5T2ZXZWVrO1xucHJvdG8uZGF5T2ZZZWFyID0gZ2V0U2V0RGF5T2ZZZWFyO1xucHJvdG8uaG91ciA9IHByb3RvLmhvdXJzID0gZ2V0U2V0SG91cjtcbnByb3RvLm1pbnV0ZSA9IHByb3RvLm1pbnV0ZXMgPSBnZXRTZXRNaW51dGU7XG5wcm90by5zZWNvbmQgPSBwcm90by5zZWNvbmRzID0gZ2V0U2V0U2Vjb25kO1xucHJvdG8ubWlsbGlzZWNvbmQgPSBwcm90by5taWxsaXNlY29uZHMgPSBnZXRTZXRNaWxsaXNlY29uZDtcbnByb3RvLnV0Y09mZnNldCA9IGdldFNldE9mZnNldDtcbnByb3RvLnV0YyA9IHNldE9mZnNldFRvVVRDO1xucHJvdG8ubG9jYWwgPSBzZXRPZmZzZXRUb0xvY2FsO1xucHJvdG8ucGFyc2Vab25lID0gc2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQ7XG5wcm90by5oYXNBbGlnbmVkSG91ck9mZnNldCA9IGhhc0FsaWduZWRIb3VyT2Zmc2V0O1xucHJvdG8uaXNEU1QgPSBpc0RheWxpZ2h0U2F2aW5nVGltZTtcbnByb3RvLmlzTG9jYWwgPSBpc0xvY2FsO1xucHJvdG8uaXNVdGNPZmZzZXQgPSBpc1V0Y09mZnNldDtcbnByb3RvLmlzVXRjID0gaXNVdGM7XG5wcm90by5pc1VUQyA9IGlzVXRjO1xucHJvdG8uem9uZUFiYnIgPSBnZXRab25lQWJicjtcbnByb3RvLnpvbmVOYW1lID0gZ2V0Wm9uZU5hbWU7XG5wcm90by5kYXRlcyA9IGRlcHJlY2F0ZShcbiAgICAnZGF0ZXMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIGRhdGUgaW5zdGVhZC4nLFxuICAgIGdldFNldERheU9mTW9udGhcbik7XG5wcm90by5tb250aHMgPSBkZXByZWNhdGUoXG4gICAgJ21vbnRocyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgbW9udGggaW5zdGVhZCcsXG4gICAgZ2V0U2V0TW9udGhcbik7XG5wcm90by55ZWFycyA9IGRlcHJlY2F0ZShcbiAgICAneWVhcnMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIHllYXIgaW5zdGVhZCcsXG4gICAgZ2V0U2V0WWVhclxuKTtcbnByb3RvLnpvbmUgPSBkZXByZWNhdGUoXG4gICAgJ21vbWVudCgpLnpvbmUgaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudCgpLnV0Y09mZnNldCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL3pvbmUvJyxcbiAgICBnZXRTZXRab25lXG4pO1xucHJvdG8uaXNEU1RTaGlmdGVkID0gZGVwcmVjYXRlKFxuICAgICdpc0RTVFNoaWZ0ZWQgaXMgZGVwcmVjYXRlZC4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZHN0LXNoaWZ0ZWQvIGZvciBtb3JlIGluZm9ybWF0aW9uJyxcbiAgICBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWRcbik7XG5cbmZ1bmN0aW9uIGNyZWF0ZVVuaXgoaW5wdXQpIHtcbiAgICByZXR1cm4gY3JlYXRlTG9jYWwoaW5wdXQgKiAxMDAwKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlSW5ab25lKCkge1xuICAgIHJldHVybiBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhcnNlWm9uZSgpO1xufVxuXG5mdW5jdGlvbiBwcmVQYXJzZVBvc3RGb3JtYXQoc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZztcbn1cblxudmFyIHByb3RvJDEgPSBMb2NhbGUucHJvdG90eXBlO1xuXG5wcm90byQxLmNhbGVuZGFyID0gY2FsZW5kYXI7XG5wcm90byQxLmxvbmdEYXRlRm9ybWF0ID0gbG9uZ0RhdGVGb3JtYXQ7XG5wcm90byQxLmludmFsaWREYXRlID0gaW52YWxpZERhdGU7XG5wcm90byQxLm9yZGluYWwgPSBvcmRpbmFsO1xucHJvdG8kMS5wcmVwYXJzZSA9IHByZVBhcnNlUG9zdEZvcm1hdDtcbnByb3RvJDEucG9zdGZvcm1hdCA9IHByZVBhcnNlUG9zdEZvcm1hdDtcbnByb3RvJDEucmVsYXRpdmVUaW1lID0gcmVsYXRpdmVUaW1lO1xucHJvdG8kMS5wYXN0RnV0dXJlID0gcGFzdEZ1dHVyZTtcbnByb3RvJDEuc2V0ID0gc2V0O1xucHJvdG8kMS5lcmFzID0gbG9jYWxlRXJhcztcbnByb3RvJDEuZXJhc1BhcnNlID0gbG9jYWxlRXJhc1BhcnNlO1xucHJvdG8kMS5lcmFzQ29udmVydFllYXIgPSBsb2NhbGVFcmFzQ29udmVydFllYXI7XG5wcm90byQxLmVyYXNBYmJyUmVnZXggPSBlcmFzQWJiclJlZ2V4O1xucHJvdG8kMS5lcmFzTmFtZVJlZ2V4ID0gZXJhc05hbWVSZWdleDtcbnByb3RvJDEuZXJhc05hcnJvd1JlZ2V4ID0gZXJhc05hcnJvd1JlZ2V4O1xuXG5wcm90byQxLm1vbnRocyA9IGxvY2FsZU1vbnRocztcbnByb3RvJDEubW9udGhzU2hvcnQgPSBsb2NhbGVNb250aHNTaG9ydDtcbnByb3RvJDEubW9udGhzUGFyc2UgPSBsb2NhbGVNb250aHNQYXJzZTtcbnByb3RvJDEubW9udGhzUmVnZXggPSBtb250aHNSZWdleDtcbnByb3RvJDEubW9udGhzU2hvcnRSZWdleCA9IG1vbnRoc1Nob3J0UmVnZXg7XG5wcm90byQxLndlZWsgPSBsb2NhbGVXZWVrO1xucHJvdG8kMS5maXJzdERheU9mWWVhciA9IGxvY2FsZUZpcnN0RGF5T2ZZZWFyO1xucHJvdG8kMS5maXJzdERheU9mV2VlayA9IGxvY2FsZUZpcnN0RGF5T2ZXZWVrO1xuXG5wcm90byQxLndlZWtkYXlzID0gbG9jYWxlV2Vla2RheXM7XG5wcm90byQxLndlZWtkYXlzTWluID0gbG9jYWxlV2Vla2RheXNNaW47XG5wcm90byQxLndlZWtkYXlzU2hvcnQgPSBsb2NhbGVXZWVrZGF5c1Nob3J0O1xucHJvdG8kMS53ZWVrZGF5c1BhcnNlID0gbG9jYWxlV2Vla2RheXNQYXJzZTtcblxucHJvdG8kMS53ZWVrZGF5c1JlZ2V4ID0gd2Vla2RheXNSZWdleDtcbnByb3RvJDEud2Vla2RheXNTaG9ydFJlZ2V4ID0gd2Vla2RheXNTaG9ydFJlZ2V4O1xucHJvdG8kMS53ZWVrZGF5c01pblJlZ2V4ID0gd2Vla2RheXNNaW5SZWdleDtcblxucHJvdG8kMS5pc1BNID0gbG9jYWxlSXNQTTtcbnByb3RvJDEubWVyaWRpZW0gPSBsb2NhbGVNZXJpZGllbTtcblxuZnVuY3Rpb24gZ2V0JDEoZm9ybWF0LCBpbmRleCwgZmllbGQsIHNldHRlcikge1xuICAgIHZhciBsb2NhbGUgPSBnZXRMb2NhbGUoKSxcbiAgICAgICAgdXRjID0gY3JlYXRlVVRDKCkuc2V0KHNldHRlciwgaW5kZXgpO1xuICAgIHJldHVybiBsb2NhbGVbZmllbGRdKHV0YywgZm9ybWF0KTtcbn1cblxuZnVuY3Rpb24gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICBpZiAoaXNOdW1iZXIoZm9ybWF0KSkge1xuICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcblxuICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBnZXQkMShmb3JtYXQsIGluZGV4LCBmaWVsZCwgJ21vbnRoJyk7XG4gICAgfVxuXG4gICAgdmFyIGksXG4gICAgICAgIG91dCA9IFtdO1xuICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgIG91dFtpXSA9IGdldCQxKGZvcm1hdCwgaSwgZmllbGQsICdtb250aCcpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xufVxuXG4vLyAoKVxuLy8gKDUpXG4vLyAoZm10LCA1KVxuLy8gKGZtdClcbi8vICh0cnVlKVxuLy8gKHRydWUsIDUpXG4vLyAodHJ1ZSwgZm10LCA1KVxuLy8gKHRydWUsIGZtdClcbmZ1bmN0aW9uIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCBmaWVsZCkge1xuICAgIGlmICh0eXBlb2YgbG9jYWxlU29ydGVkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcm1hdCA9IGxvY2FsZVNvcnRlZDtcbiAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgIGxvY2FsZVNvcnRlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICB9XG5cbiAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCksXG4gICAgICAgIHNoaWZ0ID0gbG9jYWxlU29ydGVkID8gbG9jYWxlLl93ZWVrLmRvdyA6IDAsXG4gICAgICAgIGksXG4gICAgICAgIG91dCA9IFtdO1xuXG4gICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGdldCQxKGZvcm1hdCwgKGluZGV4ICsgc2hpZnQpICUgNywgZmllbGQsICdkYXknKTtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgIG91dFtpXSA9IGdldCQxKGZvcm1hdCwgKGkgKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiBsaXN0TW9udGhzKGZvcm1hdCwgaW5kZXgpIHtcbiAgICByZXR1cm4gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgJ21vbnRocycpO1xufVxuXG5mdW5jdGlvbiBsaXN0TW9udGhzU2hvcnQoZm9ybWF0LCBpbmRleCkge1xuICAgIHJldHVybiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCAnbW9udGhzU2hvcnQnKTtcbn1cblxuZnVuY3Rpb24gbGlzdFdlZWtkYXlzKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzJyk7XG59XG5cbmZ1bmN0aW9uIGxpc3RXZWVrZGF5c1Nob3J0KGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzU2hvcnQnKTtcbn1cblxuZnVuY3Rpb24gbGlzdFdlZWtkYXlzTWluKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzTWluJyk7XG59XG5cbmdldFNldEdsb2JhbExvY2FsZSgnZW4nLCB7XG4gICAgZXJhczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBzaW5jZTogJzAwMDEtMDEtMDEnLFxuICAgICAgICAgICAgdW50aWw6ICtJbmZpbml0eSxcbiAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgIG5hbWU6ICdBbm5vIERvbWluaScsXG4gICAgICAgICAgICBuYXJyb3c6ICdBRCcsXG4gICAgICAgICAgICBhYmJyOiAnQUQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBzaW5jZTogJzAwMDAtMTItMzEnLFxuICAgICAgICAgICAgdW50aWw6IC1JbmZpbml0eSxcbiAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgIG5hbWU6ICdCZWZvcmUgQ2hyaXN0JyxcbiAgICAgICAgICAgIG5hcnJvdzogJ0JDJyxcbiAgICAgICAgICAgIGFiYnI6ICdCQycsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0odGh8c3R8bmR8cmQpLyxcbiAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgIHRvSW50KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgfSxcbn0pO1xuXG4vLyBTaWRlIGVmZmVjdCBpbXBvcnRzXG5cbmhvb2tzLmxhbmcgPSBkZXByZWNhdGUoXG4gICAgJ21vbWVudC5sYW5nIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlIGluc3RlYWQuJyxcbiAgICBnZXRTZXRHbG9iYWxMb2NhbGVcbik7XG5ob29rcy5sYW5nRGF0YSA9IGRlcHJlY2F0ZShcbiAgICAnbW9tZW50LmxhbmdEYXRhIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlRGF0YSBpbnN0ZWFkLicsXG4gICAgZ2V0TG9jYWxlXG4pO1xuXG52YXIgbWF0aEFicyA9IE1hdGguYWJzO1xuXG5mdW5jdGlvbiBhYnMoKSB7XG4gICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXG4gICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gbWF0aEFicyh0aGlzLl9taWxsaXNlY29uZHMpO1xuICAgIHRoaXMuX2RheXMgPSBtYXRoQWJzKHRoaXMuX2RheXMpO1xuICAgIHRoaXMuX21vbnRocyA9IG1hdGhBYnModGhpcy5fbW9udGhzKTtcblxuICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWF0aEFicyhkYXRhLm1pbGxpc2Vjb25kcyk7XG4gICAgZGF0YS5zZWNvbmRzID0gbWF0aEFicyhkYXRhLnNlY29uZHMpO1xuICAgIGRhdGEubWludXRlcyA9IG1hdGhBYnMoZGF0YS5taW51dGVzKTtcbiAgICBkYXRhLmhvdXJzID0gbWF0aEFicyhkYXRhLmhvdXJzKTtcbiAgICBkYXRhLm1vbnRocyA9IG1hdGhBYnMoZGF0YS5tb250aHMpO1xuICAgIGRhdGEueWVhcnMgPSBtYXRoQWJzKGRhdGEueWVhcnMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIGFkZFN1YnRyYWN0JDEoZHVyYXRpb24sIGlucHV0LCB2YWx1ZSwgZGlyZWN0aW9uKSB7XG4gICAgdmFyIG90aGVyID0gY3JlYXRlRHVyYXRpb24oaW5wdXQsIHZhbHVlKTtcblxuICAgIGR1cmF0aW9uLl9taWxsaXNlY29uZHMgKz0gZGlyZWN0aW9uICogb3RoZXIuX21pbGxpc2Vjb25kcztcbiAgICBkdXJhdGlvbi5fZGF5cyArPSBkaXJlY3Rpb24gKiBvdGhlci5fZGF5cztcbiAgICBkdXJhdGlvbi5fbW9udGhzICs9IGRpcmVjdGlvbiAqIG90aGVyLl9tb250aHM7XG5cbiAgICByZXR1cm4gZHVyYXRpb24uX2J1YmJsZSgpO1xufVxuXG4vLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBhZGQoMSwgJ3MnKSBvciBhZGQoZHVyYXRpb24pXG5mdW5jdGlvbiBhZGQkMShpbnB1dCwgdmFsdWUpIHtcbiAgICByZXR1cm4gYWRkU3VidHJhY3QkMSh0aGlzLCBpbnB1dCwgdmFsdWUsIDEpO1xufVxuXG4vLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBzdWJ0cmFjdCgxLCAncycpIG9yIHN1YnRyYWN0KGR1cmF0aW9uKVxuZnVuY3Rpb24gc3VidHJhY3QkMShpbnB1dCwgdmFsdWUpIHtcbiAgICByZXR1cm4gYWRkU3VidHJhY3QkMSh0aGlzLCBpbnB1dCwgdmFsdWUsIC0xKTtcbn1cblxuZnVuY3Rpb24gYWJzQ2VpbChudW1iZXIpIHtcbiAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGJ1YmJsZSgpIHtcbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzLFxuICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyxcbiAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzLFxuICAgICAgICBkYXRhID0gdGhpcy5fZGF0YSxcbiAgICAgICAgc2Vjb25kcyxcbiAgICAgICAgbWludXRlcyxcbiAgICAgICAgaG91cnMsXG4gICAgICAgIHllYXJzLFxuICAgICAgICBtb250aHNGcm9tRGF5cztcblxuICAgIC8vIGlmIHdlIGhhdmUgYSBtaXggb2YgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHZhbHVlcywgYnViYmxlIGRvd24gZmlyc3RcbiAgICAvLyBjaGVjazogaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzIxNjZcbiAgICBpZiAoXG4gICAgICAgICEoXG4gICAgICAgICAgICAobWlsbGlzZWNvbmRzID49IDAgJiYgZGF5cyA+PSAwICYmIG1vbnRocyA+PSAwKSB8fFxuICAgICAgICAgICAgKG1pbGxpc2Vjb25kcyA8PSAwICYmIGRheXMgPD0gMCAmJiBtb250aHMgPD0gMClcbiAgICAgICAgKVxuICAgICkge1xuICAgICAgICBtaWxsaXNlY29uZHMgKz0gYWJzQ2VpbChtb250aHNUb0RheXMobW9udGhzKSArIGRheXMpICogODY0ZTU7XG4gICAgICAgIGRheXMgPSAwO1xuICAgICAgICBtb250aHMgPSAwO1xuICAgIH1cblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBidWJibGVzIHVwIHZhbHVlcywgc2VlIHRoZSB0ZXN0cyBmb3JcbiAgICAvLyBleGFtcGxlcyBvZiB3aGF0IHRoYXQgbWVhbnMuXG4gICAgZGF0YS5taWxsaXNlY29uZHMgPSBtaWxsaXNlY29uZHMgJSAxMDAwO1xuXG4gICAgc2Vjb25kcyA9IGFic0Zsb29yKG1pbGxpc2Vjb25kcyAvIDEwMDApO1xuICAgIGRhdGEuc2Vjb25kcyA9IHNlY29uZHMgJSA2MDtcblxuICAgIG1pbnV0ZXMgPSBhYnNGbG9vcihzZWNvbmRzIC8gNjApO1xuICAgIGRhdGEubWludXRlcyA9IG1pbnV0ZXMgJSA2MDtcblxuICAgIGhvdXJzID0gYWJzRmxvb3IobWludXRlcyAvIDYwKTtcbiAgICBkYXRhLmhvdXJzID0gaG91cnMgJSAyNDtcblxuICAgIGRheXMgKz0gYWJzRmxvb3IoaG91cnMgLyAyNCk7XG5cbiAgICAvLyBjb252ZXJ0IGRheXMgdG8gbW9udGhzXG4gICAgbW9udGhzRnJvbURheXMgPSBhYnNGbG9vcihkYXlzVG9Nb250aHMoZGF5cykpO1xuICAgIG1vbnRocyArPSBtb250aHNGcm9tRGF5cztcbiAgICBkYXlzIC09IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRoc0Zyb21EYXlzKSk7XG5cbiAgICAvLyAxMiBtb250aHMgLT4gMSB5ZWFyXG4gICAgeWVhcnMgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgbW9udGhzICU9IDEyO1xuXG4gICAgZGF0YS5kYXlzID0gZGF5cztcbiAgICBkYXRhLm1vbnRocyA9IG1vbnRocztcbiAgICBkYXRhLnllYXJzID0geWVhcnM7XG5cbiAgICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gZGF5c1RvTW9udGhzKGRheXMpIHtcbiAgICAvLyA0MDAgeWVhcnMgaGF2ZSAxNDYwOTcgZGF5cyAodGFraW5nIGludG8gYWNjb3VudCBsZWFwIHllYXIgcnVsZXMpXG4gICAgLy8gNDAwIHllYXJzIGhhdmUgMTIgbW9udGhzID09PSA0ODAwXG4gICAgcmV0dXJuIChkYXlzICogNDgwMCkgLyAxNDYwOTc7XG59XG5cbmZ1bmN0aW9uIG1vbnRoc1RvRGF5cyhtb250aHMpIHtcbiAgICAvLyB0aGUgcmV2ZXJzZSBvZiBkYXlzVG9Nb250aHNcbiAgICByZXR1cm4gKG1vbnRocyAqIDE0NjA5NykgLyA0ODAwO1xufVxuXG5mdW5jdGlvbiBhcyh1bml0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG4gICAgdmFyIGRheXMsXG4gICAgICAgIG1vbnRocyxcbiAgICAgICAgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzO1xuXG4gICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICBpZiAodW5pdHMgPT09ICdtb250aCcgfHwgdW5pdHMgPT09ICdxdWFydGVyJyB8fCB1bml0cyA9PT0gJ3llYXInKSB7XG4gICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgIG1vbnRocyA9IHRoaXMuX21vbnRocyArIGRheXNUb01vbnRocyhkYXlzKTtcbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHM7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzIC8gMztcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHMgLyAxMjtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGhhbmRsZSBtaWxsaXNlY29uZHMgc2VwYXJhdGVseSBiZWNhdXNlIG9mIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIChpc3N1ZSAjMTg2NylcbiAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMgKyBNYXRoLnJvdW5kKG1vbnRoc1RvRGF5cyh0aGlzLl9tb250aHMpKTtcbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgLyA3ICsgbWlsbGlzZWNvbmRzIC8gNjA0OGU1O1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKiAyNCArIG1pbGxpc2Vjb25kcyAvIDM2ZTU7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXlzICogMTQ0MCArIG1pbGxpc2Vjb25kcyAvIDZlNDtcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKiA4NjQwMCArIG1pbGxpc2Vjb25kcyAvIDEwMDA7XG4gICAgICAgICAgICAvLyBNYXRoLmZsb29yIHByZXZlbnRzIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIGhlcmVcbiAgICAgICAgICAgIGNhc2UgJ21pbGxpc2Vjb25kJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihkYXlzICogODY0ZTUpICsgbWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdW5pdCAnICsgdW5pdHMpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBUT0RPOiBVc2UgdGhpcy5hcygnbXMnKT9cbmZ1bmN0aW9uIHZhbHVlT2YkMSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgIHJldHVybiBOYU47XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyArXG4gICAgICAgIHRoaXMuX2RheXMgKiA4NjRlNSArXG4gICAgICAgICh0aGlzLl9tb250aHMgJSAxMikgKiAyNTkyZTYgK1xuICAgICAgICB0b0ludCh0aGlzLl9tb250aHMgLyAxMikgKiAzMTUzNmU2XG4gICAgKTtcbn1cblxuZnVuY3Rpb24gbWFrZUFzKGFsaWFzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXMoYWxpYXMpO1xuICAgIH07XG59XG5cbnZhciBhc01pbGxpc2Vjb25kcyA9IG1ha2VBcygnbXMnKSxcbiAgICBhc1NlY29uZHMgPSBtYWtlQXMoJ3MnKSxcbiAgICBhc01pbnV0ZXMgPSBtYWtlQXMoJ20nKSxcbiAgICBhc0hvdXJzID0gbWFrZUFzKCdoJyksXG4gICAgYXNEYXlzID0gbWFrZUFzKCdkJyksXG4gICAgYXNXZWVrcyA9IG1ha2VBcygndycpLFxuICAgIGFzTW9udGhzID0gbWFrZUFzKCdNJyksXG4gICAgYXNRdWFydGVycyA9IG1ha2VBcygnUScpLFxuICAgIGFzWWVhcnMgPSBtYWtlQXMoJ3knKTtcblxuZnVuY3Rpb24gY2xvbmUkMSgpIHtcbiAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24odGhpcyk7XG59XG5cbmZ1bmN0aW9uIGdldCQyKHVuaXRzKSB7XG4gICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpc1t1bml0cyArICdzJ10oKSA6IE5hTjtcbn1cblxuZnVuY3Rpb24gbWFrZUdldHRlcihuYW1lKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5fZGF0YVtuYW1lXSA6IE5hTjtcbiAgICB9O1xufVxuXG52YXIgbWlsbGlzZWNvbmRzID0gbWFrZUdldHRlcignbWlsbGlzZWNvbmRzJyksXG4gICAgc2Vjb25kcyA9IG1ha2VHZXR0ZXIoJ3NlY29uZHMnKSxcbiAgICBtaW51dGVzID0gbWFrZUdldHRlcignbWludXRlcycpLFxuICAgIGhvdXJzID0gbWFrZUdldHRlcignaG91cnMnKSxcbiAgICBkYXlzID0gbWFrZUdldHRlcignZGF5cycpLFxuICAgIG1vbnRocyA9IG1ha2VHZXR0ZXIoJ21vbnRocycpLFxuICAgIHllYXJzID0gbWFrZUdldHRlcigneWVhcnMnKTtcblxuZnVuY3Rpb24gd2Vla3MoKSB7XG4gICAgcmV0dXJuIGFic0Zsb29yKHRoaXMuZGF5cygpIC8gNyk7XG59XG5cbnZhciByb3VuZCA9IE1hdGgucm91bmQsXG4gICAgdGhyZXNob2xkcyA9IHtcbiAgICAgICAgc3M6IDQ0LCAvLyBhIGZldyBzZWNvbmRzIHRvIHNlY29uZHNcbiAgICAgICAgczogNDUsIC8vIHNlY29uZHMgdG8gbWludXRlXG4gICAgICAgIG06IDQ1LCAvLyBtaW51dGVzIHRvIGhvdXJcbiAgICAgICAgaDogMjIsIC8vIGhvdXJzIHRvIGRheVxuICAgICAgICBkOiAyNiwgLy8gZGF5cyB0byBtb250aC93ZWVrXG4gICAgICAgIHc6IG51bGwsIC8vIHdlZWtzIHRvIG1vbnRoXG4gICAgICAgIE06IDExLCAvLyBtb250aHMgdG8geWVhclxuICAgIH07XG5cbi8vIGhlbHBlciBmdW5jdGlvbiBmb3IgbW9tZW50LmZuLmZyb20sIG1vbWVudC5mbi5mcm9tTm93LCBhbmQgbW9tZW50LmR1cmF0aW9uLmZuLmh1bWFuaXplXG5mdW5jdGlvbiBzdWJzdGl0dXRlVGltZUFnbyhzdHJpbmcsIG51bWJlciwgd2l0aG91dFN1ZmZpeCwgaXNGdXR1cmUsIGxvY2FsZSkge1xuICAgIHJldHVybiBsb2NhbGUucmVsYXRpdmVUaW1lKG51bWJlciB8fCAxLCAhIXdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpO1xufVxuXG5mdW5jdGlvbiByZWxhdGl2ZVRpbWUkMShwb3NOZWdEdXJhdGlvbiwgd2l0aG91dFN1ZmZpeCwgdGhyZXNob2xkcywgbG9jYWxlKSB7XG4gICAgdmFyIGR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb24ocG9zTmVnRHVyYXRpb24pLmFicygpLFxuICAgICAgICBzZWNvbmRzID0gcm91bmQoZHVyYXRpb24uYXMoJ3MnKSksXG4gICAgICAgIG1pbnV0ZXMgPSByb3VuZChkdXJhdGlvbi5hcygnbScpKSxcbiAgICAgICAgaG91cnMgPSByb3VuZChkdXJhdGlvbi5hcygnaCcpKSxcbiAgICAgICAgZGF5cyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdkJykpLFxuICAgICAgICBtb250aHMgPSByb3VuZChkdXJhdGlvbi5hcygnTScpKSxcbiAgICAgICAgd2Vla3MgPSByb3VuZChkdXJhdGlvbi5hcygndycpKSxcbiAgICAgICAgeWVhcnMgPSByb3VuZChkdXJhdGlvbi5hcygneScpKSxcbiAgICAgICAgYSA9XG4gICAgICAgICAgICAoc2Vjb25kcyA8PSB0aHJlc2hvbGRzLnNzICYmIFsncycsIHNlY29uZHNdKSB8fFxuICAgICAgICAgICAgKHNlY29uZHMgPCB0aHJlc2hvbGRzLnMgJiYgWydzcycsIHNlY29uZHNdKSB8fFxuICAgICAgICAgICAgKG1pbnV0ZXMgPD0gMSAmJiBbJ20nXSkgfHxcbiAgICAgICAgICAgIChtaW51dGVzIDwgdGhyZXNob2xkcy5tICYmIFsnbW0nLCBtaW51dGVzXSkgfHxcbiAgICAgICAgICAgIChob3VycyA8PSAxICYmIFsnaCddKSB8fFxuICAgICAgICAgICAgKGhvdXJzIDwgdGhyZXNob2xkcy5oICYmIFsnaGgnLCBob3Vyc10pIHx8XG4gICAgICAgICAgICAoZGF5cyA8PSAxICYmIFsnZCddKSB8fFxuICAgICAgICAgICAgKGRheXMgPCB0aHJlc2hvbGRzLmQgJiYgWydkZCcsIGRheXNdKTtcblxuICAgIGlmICh0aHJlc2hvbGRzLncgIT0gbnVsbCkge1xuICAgICAgICBhID1cbiAgICAgICAgICAgIGEgfHxcbiAgICAgICAgICAgICh3ZWVrcyA8PSAxICYmIFsndyddKSB8fFxuICAgICAgICAgICAgKHdlZWtzIDwgdGhyZXNob2xkcy53ICYmIFsnd3cnLCB3ZWVrc10pO1xuICAgIH1cbiAgICBhID0gYSB8fFxuICAgICAgICAobW9udGhzIDw9IDEgJiYgWydNJ10pIHx8XG4gICAgICAgIChtb250aHMgPCB0aHJlc2hvbGRzLk0gJiYgWydNTScsIG1vbnRoc10pIHx8XG4gICAgICAgICh5ZWFycyA8PSAxICYmIFsneSddKSB8fCBbJ3l5JywgeWVhcnNdO1xuXG4gICAgYVsyXSA9IHdpdGhvdXRTdWZmaXg7XG4gICAgYVszXSA9ICtwb3NOZWdEdXJhdGlvbiA+IDA7XG4gICAgYVs0XSA9IGxvY2FsZTtcbiAgICByZXR1cm4gc3Vic3RpdHV0ZVRpbWVBZ28uYXBwbHkobnVsbCwgYSk7XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBzZXQgdGhlIHJvdW5kaW5nIGZ1bmN0aW9uIGZvciByZWxhdGl2ZSB0aW1lIHN0cmluZ3NcbmZ1bmN0aW9uIGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nKHJvdW5kaW5nRnVuY3Rpb24pIHtcbiAgICBpZiAocm91bmRpbmdGdW5jdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiByb3VuZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByb3VuZGluZ0Z1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJvdW5kID0gcm91bmRpbmdGdW5jdGlvbjtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCBhIHRocmVzaG9sZCBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG5mdW5jdGlvbiBnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQodGhyZXNob2xkLCBsaW1pdCkge1xuICAgIGlmICh0aHJlc2hvbGRzW3RocmVzaG9sZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChsaW1pdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aHJlc2hvbGRzW3RocmVzaG9sZF07XG4gICAgfVxuICAgIHRocmVzaG9sZHNbdGhyZXNob2xkXSA9IGxpbWl0O1xuICAgIGlmICh0aHJlc2hvbGQgPT09ICdzJykge1xuICAgICAgICB0aHJlc2hvbGRzLnNzID0gbGltaXQgLSAxO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gaHVtYW5pemUoYXJnV2l0aFN1ZmZpeCwgYXJnVGhyZXNob2xkcykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgfVxuXG4gICAgdmFyIHdpdGhTdWZmaXggPSBmYWxzZSxcbiAgICAgICAgdGggPSB0aHJlc2hvbGRzLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG91dHB1dDtcblxuICAgIGlmICh0eXBlb2YgYXJnV2l0aFN1ZmZpeCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgYXJnVGhyZXNob2xkcyA9IGFyZ1dpdGhTdWZmaXg7XG4gICAgICAgIGFyZ1dpdGhTdWZmaXggPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhcmdXaXRoU3VmZml4ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgd2l0aFN1ZmZpeCA9IGFyZ1dpdGhTdWZmaXg7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXJnVGhyZXNob2xkcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGggPSBPYmplY3QuYXNzaWduKHt9LCB0aHJlc2hvbGRzLCBhcmdUaHJlc2hvbGRzKTtcbiAgICAgICAgaWYgKGFyZ1RocmVzaG9sZHMucyAhPSBudWxsICYmIGFyZ1RocmVzaG9sZHMuc3MgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGguc3MgPSBhcmdUaHJlc2hvbGRzLnMgLSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9jYWxlID0gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgb3V0cHV0ID0gcmVsYXRpdmVUaW1lJDEodGhpcywgIXdpdGhTdWZmaXgsIHRoLCBsb2NhbGUpO1xuXG4gICAgaWYgKHdpdGhTdWZmaXgpIHtcbiAgICAgICAgb3V0cHV0ID0gbG9jYWxlLnBhc3RGdXR1cmUoK3RoaXMsIG91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvY2FsZS5wb3N0Zm9ybWF0KG91dHB1dCk7XG59XG5cbnZhciBhYnMkMSA9IE1hdGguYWJzO1xuXG5mdW5jdGlvbiBzaWduKHgpIHtcbiAgICByZXR1cm4gKHggPiAwKSAtICh4IDwgMCkgfHwgK3g7XG59XG5cbmZ1bmN0aW9uIHRvSVNPU3RyaW5nJDEoKSB7XG4gICAgLy8gZm9yIElTTyBzdHJpbmdzIHdlIGRvIG5vdCB1c2UgdGhlIG5vcm1hbCBidWJibGluZyBydWxlczpcbiAgICAvLyAgKiBtaWxsaXNlY29uZHMgYnViYmxlIHVwIHVudGlsIHRoZXkgYmVjb21lIGhvdXJzXG4gICAgLy8gICogZGF5cyBkbyBub3QgYnViYmxlIGF0IGFsbFxuICAgIC8vICAqIG1vbnRocyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgeWVhcnNcbiAgICAvLyBUaGlzIGlzIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29udGV4dC1mcmVlIGNvbnZlcnNpb24gYmV0d2VlbiBob3VycyBhbmQgZGF5c1xuICAgIC8vICh0aGluayBvZiBjbG9jayBjaGFuZ2VzKVxuICAgIC8vIGFuZCBhbHNvIG5vdCBiZXR3ZWVuIGRheXMgYW5kIG1vbnRocyAoMjgtMzEgZGF5cyBwZXIgbW9udGgpXG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICB9XG5cbiAgICB2YXIgc2Vjb25kcyA9IGFicyQxKHRoaXMuX21pbGxpc2Vjb25kcykgLyAxMDAwLFxuICAgICAgICBkYXlzID0gYWJzJDEodGhpcy5fZGF5cyksXG4gICAgICAgIG1vbnRocyA9IGFicyQxKHRoaXMuX21vbnRocyksXG4gICAgICAgIG1pbnV0ZXMsXG4gICAgICAgIGhvdXJzLFxuICAgICAgICB5ZWFycyxcbiAgICAgICAgcyxcbiAgICAgICAgdG90YWwgPSB0aGlzLmFzU2Vjb25kcygpLFxuICAgICAgICB0b3RhbFNpZ24sXG4gICAgICAgIHltU2lnbixcbiAgICAgICAgZGF5c1NpZ24sXG4gICAgICAgIGhtc1NpZ247XG5cbiAgICBpZiAoIXRvdGFsKSB7XG4gICAgICAgIC8vIHRoaXMgaXMgdGhlIHNhbWUgYXMgQyMncyAoTm9kYSkgYW5kIHB5dGhvbiAoaXNvZGF0ZSkuLi5cbiAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKVxuICAgICAgICByZXR1cm4gJ1AwRCc7XG4gICAgfVxuXG4gICAgLy8gMzYwMCBzZWNvbmRzIC0+IDYwIG1pbnV0ZXMgLT4gMSBob3VyXG4gICAgbWludXRlcyA9IGFic0Zsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgaG91cnMgPSBhYnNGbG9vcihtaW51dGVzIC8gNjApO1xuICAgIHNlY29uZHMgJT0gNjA7XG4gICAgbWludXRlcyAlPSA2MDtcblxuICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICB5ZWFycyA9IGFic0Zsb29yKG1vbnRocyAvIDEyKTtcbiAgICBtb250aHMgJT0gMTI7XG5cbiAgICAvLyBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vZG9yZGlsbGUvbW9tZW50LWlzb2R1cmF0aW9uL2Jsb2IvbWFzdGVyL21vbWVudC5pc29kdXJhdGlvbi5qc1xuICAgIHMgPSBzZWNvbmRzID8gc2Vjb25kcy50b0ZpeGVkKDMpLnJlcGxhY2UoL1xcLj8wKyQvLCAnJykgOiAnJztcblxuICAgIHRvdGFsU2lnbiA9IHRvdGFsIDwgMCA/ICctJyA6ICcnO1xuICAgIHltU2lnbiA9IHNpZ24odGhpcy5fbW9udGhzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcbiAgICBkYXlzU2lnbiA9IHNpZ24odGhpcy5fZGF5cykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG4gICAgaG1zU2lnbiA9IHNpZ24odGhpcy5fbWlsbGlzZWNvbmRzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcblxuICAgIHJldHVybiAoXG4gICAgICAgIHRvdGFsU2lnbiArXG4gICAgICAgICdQJyArXG4gICAgICAgICh5ZWFycyA/IHltU2lnbiArIHllYXJzICsgJ1knIDogJycpICtcbiAgICAgICAgKG1vbnRocyA/IHltU2lnbiArIG1vbnRocyArICdNJyA6ICcnKSArXG4gICAgICAgIChkYXlzID8gZGF5c1NpZ24gKyBkYXlzICsgJ0QnIDogJycpICtcbiAgICAgICAgKGhvdXJzIHx8IG1pbnV0ZXMgfHwgc2Vjb25kcyA/ICdUJyA6ICcnKSArXG4gICAgICAgIChob3VycyA/IGhtc1NpZ24gKyBob3VycyArICdIJyA6ICcnKSArXG4gICAgICAgIChtaW51dGVzID8gaG1zU2lnbiArIG1pbnV0ZXMgKyAnTScgOiAnJykgK1xuICAgICAgICAoc2Vjb25kcyA/IGhtc1NpZ24gKyBzICsgJ1MnIDogJycpXG4gICAgKTtcbn1cblxudmFyIHByb3RvJDIgPSBEdXJhdGlvbi5wcm90b3R5cGU7XG5cbnByb3RvJDIuaXNWYWxpZCA9IGlzVmFsaWQkMTtcbnByb3RvJDIuYWJzID0gYWJzO1xucHJvdG8kMi5hZGQgPSBhZGQkMTtcbnByb3RvJDIuc3VidHJhY3QgPSBzdWJ0cmFjdCQxO1xucHJvdG8kMi5hcyA9IGFzO1xucHJvdG8kMi5hc01pbGxpc2Vjb25kcyA9IGFzTWlsbGlzZWNvbmRzO1xucHJvdG8kMi5hc1NlY29uZHMgPSBhc1NlY29uZHM7XG5wcm90byQyLmFzTWludXRlcyA9IGFzTWludXRlcztcbnByb3RvJDIuYXNIb3VycyA9IGFzSG91cnM7XG5wcm90byQyLmFzRGF5cyA9IGFzRGF5cztcbnByb3RvJDIuYXNXZWVrcyA9IGFzV2Vla3M7XG5wcm90byQyLmFzTW9udGhzID0gYXNNb250aHM7XG5wcm90byQyLmFzUXVhcnRlcnMgPSBhc1F1YXJ0ZXJzO1xucHJvdG8kMi5hc1llYXJzID0gYXNZZWFycztcbnByb3RvJDIudmFsdWVPZiA9IHZhbHVlT2YkMTtcbnByb3RvJDIuX2J1YmJsZSA9IGJ1YmJsZTtcbnByb3RvJDIuY2xvbmUgPSBjbG9uZSQxO1xucHJvdG8kMi5nZXQgPSBnZXQkMjtcbnByb3RvJDIubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzO1xucHJvdG8kMi5zZWNvbmRzID0gc2Vjb25kcztcbnByb3RvJDIubWludXRlcyA9IG1pbnV0ZXM7XG5wcm90byQyLmhvdXJzID0gaG91cnM7XG5wcm90byQyLmRheXMgPSBkYXlzO1xucHJvdG8kMi53ZWVrcyA9IHdlZWtzO1xucHJvdG8kMi5tb250aHMgPSBtb250aHM7XG5wcm90byQyLnllYXJzID0geWVhcnM7XG5wcm90byQyLmh1bWFuaXplID0gaHVtYW5pemU7XG5wcm90byQyLnRvSVNPU3RyaW5nID0gdG9JU09TdHJpbmckMTtcbnByb3RvJDIudG9TdHJpbmcgPSB0b0lTT1N0cmluZyQxO1xucHJvdG8kMi50b0pTT04gPSB0b0lTT1N0cmluZyQxO1xucHJvdG8kMi5sb2NhbGUgPSBsb2NhbGU7XG5wcm90byQyLmxvY2FsZURhdGEgPSBsb2NhbGVEYXRhO1xuXG5wcm90byQyLnRvSXNvU3RyaW5nID0gZGVwcmVjYXRlKFxuICAgICd0b0lzb1N0cmluZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdG9JU09TdHJpbmcoKSBpbnN0ZWFkIChub3RpY2UgdGhlIGNhcGl0YWxzKScsXG4gICAgdG9JU09TdHJpbmckMVxuKTtcbnByb3RvJDIubGFuZyA9IGxhbmc7XG5cbi8vIEZPUk1BVFRJTkdcblxuYWRkRm9ybWF0VG9rZW4oJ1gnLCAwLCAwLCAndW5peCcpO1xuYWRkRm9ybWF0VG9rZW4oJ3gnLCAwLCAwLCAndmFsdWVPZicpO1xuXG4vLyBQQVJTSU5HXG5cbmFkZFJlZ2V4VG9rZW4oJ3gnLCBtYXRjaFNpZ25lZCk7XG5hZGRSZWdleFRva2VuKCdYJywgbWF0Y2hUaW1lc3RhbXApO1xuYWRkUGFyc2VUb2tlbignWCcsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQpICogMTAwMCk7XG59KTtcbmFkZFBhcnNlVG9rZW4oJ3gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSh0b0ludChpbnB1dCkpO1xufSk7XG5cbi8vISBtb21lbnQuanNcblxuaG9va3MudmVyc2lvbiA9ICcyLjI5LjEnO1xuXG5zZXRIb29rQ2FsbGJhY2soY3JlYXRlTG9jYWwpO1xuXG5ob29rcy5mbiA9IHByb3RvO1xuaG9va3MubWluID0gbWluO1xuaG9va3MubWF4ID0gbWF4O1xuaG9va3Mubm93ID0gbm93O1xuaG9va3MudXRjID0gY3JlYXRlVVRDO1xuaG9va3MudW5peCA9IGNyZWF0ZVVuaXg7XG5ob29rcy5tb250aHMgPSBsaXN0TW9udGhzO1xuaG9va3MuaXNEYXRlID0gaXNEYXRlO1xuaG9va3MubG9jYWxlID0gZ2V0U2V0R2xvYmFsTG9jYWxlO1xuaG9va3MuaW52YWxpZCA9IGNyZWF0ZUludmFsaWQ7XG5ob29rcy5kdXJhdGlvbiA9IGNyZWF0ZUR1cmF0aW9uO1xuaG9va3MuaXNNb21lbnQgPSBpc01vbWVudDtcbmhvb2tzLndlZWtkYXlzID0gbGlzdFdlZWtkYXlzO1xuaG9va3MucGFyc2Vab25lID0gY3JlYXRlSW5ab25lO1xuaG9va3MubG9jYWxlRGF0YSA9IGdldExvY2FsZTtcbmhvb2tzLmlzRHVyYXRpb24gPSBpc0R1cmF0aW9uO1xuaG9va3MubW9udGhzU2hvcnQgPSBsaXN0TW9udGhzU2hvcnQ7XG5ob29rcy53ZWVrZGF5c01pbiA9IGxpc3RXZWVrZGF5c01pbjtcbmhvb2tzLmRlZmluZUxvY2FsZSA9IGRlZmluZUxvY2FsZTtcbmhvb2tzLnVwZGF0ZUxvY2FsZSA9IHVwZGF0ZUxvY2FsZTtcbmhvb2tzLmxvY2FsZXMgPSBsaXN0TG9jYWxlcztcbmhvb2tzLndlZWtkYXlzU2hvcnQgPSBsaXN0V2Vla2RheXNTaG9ydDtcbmhvb2tzLm5vcm1hbGl6ZVVuaXRzID0gbm9ybWFsaXplVW5pdHM7XG5ob29rcy5yZWxhdGl2ZVRpbWVSb3VuZGluZyA9IGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nO1xuaG9va3MucmVsYXRpdmVUaW1lVGhyZXNob2xkID0gZ2V0U2V0UmVsYXRpdmVUaW1lVGhyZXNob2xkO1xuaG9va3MuY2FsZW5kYXJGb3JtYXQgPSBnZXRDYWxlbmRhckZvcm1hdDtcbmhvb2tzLnByb3RvdHlwZSA9IHByb3RvO1xuXG4vLyBjdXJyZW50bHkgSFRNTDUgaW5wdXQgdHlwZSBvbmx5IHN1cHBvcnRzIDI0LWhvdXIgZm9ybWF0c1xuaG9va3MuSFRNTDVfRk1UID0ge1xuICAgIERBVEVUSU1FX0xPQ0FMOiAnWVlZWS1NTS1ERFRISDptbScsIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiAvPlxuICAgIERBVEVUSU1FX0xPQ0FMX1NFQ09ORFM6ICdZWVlZLU1NLUREVEhIOm1tOnNzJywgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIxXCIgLz5cbiAgICBEQVRFVElNRV9MT0NBTF9NUzogJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJywgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgREFURTogJ1lZWVktTU0tREQnLCAvLyA8aW5wdXQgdHlwZT1cImRhdGVcIiAvPlxuICAgIFRJTUU6ICdISDptbScsIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIC8+XG4gICAgVElNRV9TRUNPTkRTOiAnSEg6bW06c3MnLCAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiBzdGVwPVwiMVwiIC8+XG4gICAgVElNRV9NUzogJ0hIOm1tOnNzLlNTUycsIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgV0VFSzogJ0dHR0ctW1ddV1cnLCAvLyA8aW5wdXQgdHlwZT1cIndlZWtcIiAvPlxuICAgIE1PTlRIOiAnWVlZWS1NTScsIC8vIDxpbnB1dCB0eXBlPVwibW9udGhcIiAvPlxufTtcblxuZXhwb3J0IGRlZmF1bHQgaG9va3M7XG4iLCJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IGdldERhaWx5Tm90ZSwgZ2V0RGFpbHlOb3RlU2V0dGluZ3MgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XHJcbi8vIGltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCBkYWlseU5vdGVzU2VydmljZSBmcm9tICcuLi9zZXJ2aWNlcy9kYWlseU5vdGVzU2VydmljZSc7XHJcbmltcG9ydCB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcblxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoYW5nZU1lbW8obWVtb2lkOiBzdHJpbmcsIG9yaWdpbmFsQ29udGVudDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIG1lbW9UeXBlOiBzdHJpbmcpOiBQcm9taXNlPE1vZGVsLk1lbW8+IHtcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgICAgZGFpbHlOb3Rlc1xyXG4gICAgICB9ID0gZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0U3RhdGUoKTtcclxuICAgIGNvbnN0IHsgdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICAgIGNvbnN0IHRpbWVTdHJpbmcgPSBtZW1vaWQuc2xpY2UoMCwxMSkgKyBcIjAwXCI7XHJcbiAgICBjb25zdCBpZFN0cmluZyA9IHBhcnNlSW50KG1lbW9pZC5zbGljZSgxNCkpO1xyXG4gICAgY29uc3QgY2hhbmdlRGF0ZSA9IG1vbWVudCh0aW1lU3RyaW5nLCBcIllZWVlNTURESEhtbVNTXCIpO1xyXG4gICAgY29uc3QgZGFpbHlOb3RlID0gZ2V0RGFpbHlOb3RlKGNoYW5nZURhdGUsIGRhaWx5Tm90ZXMpO1xyXG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCB2YXVsdC5jYWNoZWRSZWFkKGRhaWx5Tm90ZSk7XHJcbiAgICBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50KTtcclxuICAgIGNvbnN0IHJlbW92ZUVudGVyID0gY29udGVudC5yZXBsYWNlKC9cXG4vZywgXCI8YnI+XCIpO1xyXG4gICAgY29uc3Qgb3JpZ2luYWxMaW5lID0gZmlsZUxpbmVzW2lkU3RyaW5nXTtcclxuICAgIGNvbnN0IG5ld0xpbmUgPSBmaWxlTGluZXNbaWRTdHJpbmddLnJlcGxhY2Uob3JpZ2luYWxDb250ZW50ICwgcmVtb3ZlRW50ZXIpO1xyXG4gICAgY29uc3QgbmV3RmlsZUNvbnRlbnQgPSBmaWxlQ29udGVudC5yZXBsYWNlKG9yaWdpbmFsTGluZSAsIG5ld0xpbmUpO1xyXG4gICAgYXdhaXQgdmF1bHQubW9kaWZ5KGRhaWx5Tm90ZSwgbmV3RmlsZUNvbnRlbnQpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpZDogbWVtb2lkLFxyXG4gICAgICAgIGNvbnRlbnQ6IHJlbW92ZUVudGVyLFxyXG4gICAgICAgIGRlbGV0ZWRBdDogXCJcIixcclxuICAgICAgICBjcmVhdGVkQXQ6IGNoYW5nZURhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOlNTJyksXHJcbiAgICAgICAgdXBkYXRlZEF0OiBjaGFuZ2VEYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpTUycpLFxyXG4gICAgICAgIG1lbW9UeXBlOiBtZW1vVHlwZSxcclxuICAgICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZShtZW1vaWQ6IHN0cmluZyk6IFRGaWxlIHtcclxuXHJcbiAgY29uc3Qge1xyXG4gICAgICBkYWlseU5vdGVzXHJcbiAgICB9ID0gZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0U3RhdGUoKTtcclxuICBjb25zdCB0aW1lU3RyaW5nID0gbWVtb2lkLnNsaWNlKDAsMTMpO1xyXG4gIGNvbnN0IGNoYW5nZURhdGUgPSBtb21lbnQodGltZVN0cmluZywgXCJZWVlZTU1EREhIbW1TU1wiKTtcclxuICBjb25zdCBkYWlseU5vdGUgPSBnZXREYWlseU5vdGUoY2hhbmdlRGF0ZSwgZGFpbHlOb3Rlcyk7XHJcbiAgcmV0dXJuIGRhaWx5Tm90ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERhaWx5Tm90ZVBhdGgoKTogc3RyaW5nIHtcclxuICBjb25zdCBkYWlseU5vdGVzU2V0dGluZyA9IGdldERhaWx5Tm90ZVNldHRpbmdzKCk7XHJcbiAgY29uc3QgZGFpbHlOb3RlUGF0aCA9IGRhaWx5Tm90ZXNTZXR0aW5nLmZvbGRlcjtcclxuICByZXR1cm4gZGFpbHlOb3RlUGF0aDtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pXHJcblxyXG4iLCJpbXBvcnQgeyBnZXREYWlseU5vdGVQYXRoIH0gZnJvbSBcIi4vb2JVcGRhdGVNZW1vXCI7XHJcbmltcG9ydCB7IFRGaWxlIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZmluZFF1ZXJ5ID0gYXN5bmMgKCk6IFByb21pc2U8YW55W10+ID0+IHtcclxuXHJcbiAgICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsIHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gICAgY29uc3QgcXVlcnlMaXN0ID0gW107XHJcblxyXG4gICAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArIFwiL3F1ZXJ5Lm1kXCI7XHJcblxyXG4gICAgY29uc3QgcXVlcnlGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChcIlwiICwgYWJzb2x1dGVQYXRoKTtcclxuICAgIGlmKHF1ZXJ5RmlsZSBpbnN0YW5jZW9mIFRGaWxlKXtcclxuICAgICAgICBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5jYWNoZWRSZWFkKHF1ZXJ5RmlsZSk7XHJcbiAgICAgICAgY29uc3QgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xyXG4gICAgICAgIGlmKGZpbGVMaW5lcyAmJiBmaWxlTGluZXMubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKGZpbGVMaW5lc1tpXSA9PT0gXCJcIikgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjcmVhdGVkRGF0ZVN0cmluZyA9IGdldENyZWF0ZWREYXRlRnJvbUxpbmUoZmlsZUxpbmVzW2ldKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWREYXRlID0gbW9tZW50KGNyZWF0ZWREYXRlU3RyaW5nLCBcIllZWVlNTURESEhtbXNzXCIpLmZvcm1hdChcIllZWVkvTU0vREQgSEg6bW06c3NcIik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0ZSA9IGNyZWF0ZWREYXRlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaWQgPSBjcmVhdGVkRGF0ZVN0cmluZyArIGdldElERnJvbUxpbmUoZmlsZUxpbmVzW2ldKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5c3RyaW5nID0gZ2V0U3RyaW5nRnJvbUxpbmUoZmlsZUxpbmVzW2ldKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gZ2V0VGl0bGVGcm9tTGluZShmaWxlTGluZXNbaV0pO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBpbm5lZERhdGU7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYoL14oLispcGlubmVkQXQoLispJC8udGVzdChmaWxlTGluZXNbaV0pKXtcclxuICAgICAgICAgICAgICAgICAgICBwaW5uZWREYXRlID0gbW9tZW50KGdldFBpbm5lZERhdGVGcm9tTGluZShmaWxlTGluZXNbaV0pLFwiWVlZWU1NRERISG1tc3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZEF0OiBwaW5uZWREYXRlLmZvcm1hdChcIllZWVkvTU0vREQgSEg6bW06c3NcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5c3RyaW5nOiBxdWVyeXN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQXQ6IHVwZGF0ZWREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VySWQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1lbHNlIGlmKC9eKC4rKVxcW1xcXSguKyk/JC8udGVzdChmaWxlTGluZXNbaV0pKXtcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogY3JlYXRlZERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkQXQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5c3RyaW5nOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDogdXBkYXRlZERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5TGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRBdDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlzdHJpbmc6IHF1ZXJ5c3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDogdXBkYXRlZERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVyeUxpc3Q7XHJcbn1cclxuXHJcblxyXG5jb25zdCBnZXRBbGxMaW5lc0Zyb21GaWxlID0gKGNhY2hlOiBzdHJpbmcpID0+IGNhY2hlLnNwbGl0KC9cXHI/XFxuLyk7XHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmNvbnN0IGdldENyZWF0ZWREYXRlRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PiAvXihcXGR7MTR9KS8uZXhlYyhsaW5lKT8uWzFdXHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmNvbnN0IGdldElERnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PiAvXihcXGR7MTR9KShcXGR7MSx9KVxccy8uZXhlYyhsaW5lKT8uWzJdXHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmNvbnN0IGdldFN0cmluZ0Zyb21MaW5lID0gKGxpbmU6IHN0cmluZykgPT4gL14oXFxkezE0fSkoXFxkezEsfSlcXHMoLispXFxzKFxcWyguKyk/XFxdKS8uZXhlYyhsaW5lKT8uWzRdXHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmNvbnN0IGdldFRpdGxlRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PiAvXihcXGR7MTR9KShcXGR7MSx9KVxccyguKylcXHMoXFxbKC4rKVxcXSkvLmV4ZWMobGluZSk/LlszXVxyXG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG5jb25zdCBnZXRQaW5uZWREYXRlRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PiAvXihcXGR7MTR9KShcXGR7MSx9KVxccyguKylcXHMoXFxbKC4rKVxcXSlcXHMocGlubmVkQXRcXDogKFxcZHsxNH0pKS8uZXhlYyhsaW5lKT8uWzddXHJcblxyXG4iLCJpbXBvcnQgeyBnZXREYWlseU5vdGVQYXRoIH0gZnJvbSBcIi4vb2JVcGRhdGVNZW1vXCI7XHJcbmltcG9ydCB7IFRGaWxlLCBub3JtYWxpemVQYXRoLCBOb3RpY2UgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlT2JzaWRpYW5RdWVyeSA9IGFzeW5jICh0aXRsZTogc3RyaW5nLCBxdWVyeXN0cmluZzogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsIHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gIGNvbnN0IGZpbGVQYXRoID0gZ2V0RGFpbHlOb3RlUGF0aCgpO1xyXG4gIGNvbnN0IGFic29sdXRlUGF0aCA9IGZpbGVQYXRoICsgXCIvcXVlcnkubWRcIjtcclxuXHJcbiAgY29uc3QgcXVlcnlGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChcIlwiLCBhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICBpZiAocXVlcnlGaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcclxuICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LmNhY2hlZFJlYWQocXVlcnlGaWxlKTtcclxuICAgIGNvbnN0IGZpbGVMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUoZmlsZUNvbnRlbnRzKTtcclxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKTtcclxuICAgIGNvbnN0IGNyZWF0ZWREYXRlID0gZGF0ZS5mb3JtYXQoXCJZWVlZL01NL0REIEhIOm1tOnNzXCIpO1xyXG4gICAgY29uc3QgdXBkYXRlZERhdGUgPSBjcmVhdGVkRGF0ZTtcclxuICAgIC8vIGNvbnN0IGxpbmVOdW0gPSBmaWxlTGluZXMubGVuZ3RoICsgMTtcclxuICAgIC8vIGxldCBsaW5lTnVtO1xyXG4gICAgbGV0IGxpbmVOdW07XHJcbiAgICBpZiAoZmlsZUxpbmVzLmxlbmd0aCA9PT0gMSAmJiBmaWxlTGluZXNbMF0gPT09IFwiXCIpIHtcclxuICAgICAgbGluZU51bSA9IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsaW5lTnVtID0gZmlsZUxpbmVzLmxlbmd0aCArIDE7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpZCA9IGRhdGUuZm9ybWF0KFwiWVlZWU1NRERISG1tc3NcIikgKyBsaW5lTnVtO1xyXG5cclxuICAgIGF3YWl0IGNyZWF0ZVF1ZXJ5SW5GaWxlKHF1ZXJ5RmlsZSwgZmlsZUNvbnRlbnRzLCBpZCwgdGl0bGUsIHF1ZXJ5c3RyaW5nKTtcclxuXHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkRGF0ZSxcclxuICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgcGlubmVkQXQ6IFwiXCIsXHJcbiAgICAgICAgcXVlcnlzdHJpbmc6IHF1ZXJ5c3RyaW5nLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICB1cGRhdGVkQXQ6IHVwZGF0ZWREYXRlLFxyXG4gICAgICAgIHVzZXJJZDogXCJcIixcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IHF1ZXJ5RmlsZVBhdGggPSBub3JtYWxpemVQYXRoKGFic29sdXRlUGF0aCk7XHJcbiAgICBjb25zdCBmaWxlID0gYXdhaXQgY3JlYXRlUXVlcnlGaWxlKHF1ZXJ5RmlsZVBhdGgpO1xyXG4gICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChmaWxlKTtcclxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKTtcclxuICAgIGNvbnN0IGNyZWF0ZWREYXRlID0gZGF0ZS5mb3JtYXQoXCJZWVlZL01NL0REIEhIOm1tOnNzXCIpO1xyXG4gICAgY29uc3QgdXBkYXRlZERhdGUgPSBjcmVhdGVkRGF0ZTtcclxuICAgIGNvbnN0IGlkID0gZGF0ZS5mb3JtYXQoXCJZWVlZTU1EREhIbW1zc1wiKSArIDE7XHJcblxyXG4gICAgYXdhaXQgY3JlYXRlUXVlcnlJbkZpbGUoZmlsZSwgZmlsZUNvbnRlbnRzLCBpZCwgdGl0bGUsIHF1ZXJ5c3RyaW5nKTtcclxuXHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkRGF0ZSxcclxuICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgcGlubmVkQXQ6IFwiXCIsXHJcbiAgICAgICAgcXVlcnlzdHJpbmc6IHF1ZXJ5c3RyaW5nLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICB1cGRhdGVkQXQ6IHVwZGF0ZWREYXRlLFxyXG4gICAgICAgIHVzZXJJZDogXCJcIixcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5SW5GaWxlID0gYXN5bmMgKGZpbGU6IFRGaWxlLCBmaWxlQ29udGVudDogc3RyaW5nLCBpZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBxdWVyeVN0cmluZzogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICBjb25zdCB7IHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcbiAgbGV0IG5ld0NvbnRlbnQ7XHJcbiAgaWYgKGZpbGVDb250ZW50ID09PSBcIlwiKSB7XHJcbiAgICBuZXdDb250ZW50ID0gaWQgKyBcIiBcIiArIHRpdGxlICsgXCIgXCIgKyBxdWVyeVN0cmluZztcclxuICB9IGVsc2Uge1xyXG4gICAgbmV3Q29udGVudCA9IGZpbGVDb250ZW50ICsgXCJcXG5cIiArIGlkICsgXCIgXCIgKyB0aXRsZSArIFwiIFwiICsgcXVlcnlTdHJpbmc7XHJcbiAgfVxyXG5cclxuICBhd2FpdCB2YXVsdC5tb2RpZnkoZmlsZSwgbmV3Q29udGVudCk7XHJcblxyXG4gIHJldHVybiB0cnVlO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5RmlsZSA9IGFzeW5jIChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFRGaWxlPiA9PiB7XHJcbiAgY29uc3QgeyB2YXVsdCB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgY3JlYXRlZEZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGUocGF0aCwgXCJcIik7XHJcbiAgICByZXR1cm4gY3JlYXRlZEZpbGU7XHJcbiAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGZpbGU6ICcke3BhdGh9J2AsIGVycik7XHJcbiAgICBuZXcgTm90aWNlKFwiVW5hYmxlIHRvIGNyZWF0ZSBuZXcgZmlsZS5cIik7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pOyIsImltcG9ydCB7IG5vcm1hbGl6ZVBhdGgsIFRGb2xkZXIsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGdldEFsbERhaWx5Tm90ZXMsIGdldERhaWx5Tm90ZVNldHRpbmdzLCBnZXREYXRlRnJvbUZpbGUgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCB7IFByb2Nlc3NFbnRyaWVzQmVsb3cgfSBmcm9tIFwiLi4vbWVtb3NcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBEYWlseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige31cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZW1haW5pbmdUYXNrcyhub3RlOiBURmlsZSk6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgaWYgKCFub3RlKSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgY29uc3QgeyB2YXVsdCB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG4gIGxldCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5jYWNoZWRSZWFkKG5vdGUpO1xyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgY29uc3QgbWF0Y2hMZW5ndGggPSAoZmlsZUNvbnRlbnRzLm1hdGNoKC8oLXxcXCopIChcXFsgXFxdXFxzKT8oKFxcPHRpbWVcXD4pP1xcZHsxLDJ9XFw6XFxkezJ9KT8vZykgfHwgW10pLmxlbmd0aDtcclxuICBjb25zdCByZSA9IG5ldyBSZWdFeHAoUHJvY2Vzc0VudHJpZXNCZWxvdy5yZXBsYWNlKC8oWy4/KiteJFtcXF1cXFxcKCl7fXwtXSkvZywgXCJcXFxcJDFcIiksIFwiZ1wiKTtcclxuICBjb25zdCBwcm9jZXNzRW50cmllc0hlYWRlciA9IChmaWxlQ29udGVudHMubWF0Y2gocmUpIHx8IFtdKS5sZW5ndGg7XHJcbiAgZmlsZUNvbnRlbnRzID0gbnVsbDtcclxuICBpZiAocHJvY2Vzc0VudHJpZXNIZWFkZXIpIHtcclxuICAgIHJldHVybiBtYXRjaExlbmd0aDtcclxuICB9XHJcbiAgcmV0dXJuIDA7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUYXNrc0Zyb21EYWlseU5vdGUoZGFpbHlOb3RlOiBURmlsZSB8IG51bGwsIGRhaWx5RXZlbnRzOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcclxuICBpZiAoIWRhaWx5Tm90ZSkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBjb25zdCB7IHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcbiAgY29uc3QgVGFza3MgPSBhd2FpdCBnZXRSZW1haW5pbmdUYXNrcyhkYWlseU5vdGUpO1xyXG5cclxuICBpZiAoVGFza3MpIHtcclxuICAgIGxldCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5jYWNoZWRSZWFkKGRhaWx5Tm90ZSk7XHJcbiAgICBsZXQgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xyXG4gICAgY29uc3Qgc3RhcnREYXRlID0gZ2V0RGF0ZUZyb21GaWxlKGRhaWx5Tm90ZSwgXCJkYXlcIik7XHJcbiAgICBjb25zdCBlbmREYXRlID0gZ2V0RGF0ZUZyb21GaWxlKGRhaWx5Tm90ZSwgXCJkYXlcIik7XHJcbiAgICBsZXQgcHJvY2Vzc0hlYWRlckZvdW5kID0gZmFsc2U7XHJcbiAgICBsZXQgbWVtb1R5cGU6IHN0cmluZztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxpbmUgPSBmaWxlTGluZXNbaV07XHJcbiAgICAgIGlmIChsaW5lLmxlbmd0aCA9PT0gMCkgY29udGludWU7XHJcbiAgICAgIGlmIChwcm9jZXNzSGVhZGVyRm91bmQgPT0gZmFsc2UgJiYgbGluZUNvbnRhaW5zUGFyc2VCZWxvd1Rva2VuKGxpbmUpKSB7XHJcbiAgICAgICAgcHJvY2Vzc0hlYWRlckZvdW5kID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocHJvY2Vzc0hlYWRlckZvdW5kID09IHRydWUgJiYgIWxpbmVDb250YWluc1BhcnNlQmVsb3dUb2tlbihsaW5lKSAmJiAvXiN7MSx9IC9nLnRlc3QobGluZSkpIHtcclxuICAgICAgICBwcm9jZXNzSGVhZGVyRm91bmQgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGxpbmVDb250YWluc1RpbWUobGluZSkgJiYgcHJvY2Vzc0hlYWRlckZvdW5kKSB7XHJcbiAgICAgICAgc3RhcnREYXRlLmhvdXJzKHBhcnNlSW50KGV4dHJhY3RIb3VyRnJvbUJ1bGxldExpbmUobGluZSkpKTtcclxuICAgICAgICBzdGFydERhdGUubWludXRlcyhwYXJzZUludChleHRyYWN0TWluRnJvbUJ1bGxldExpbmUobGluZSkpKTtcclxuICAgICAgICBlbmREYXRlLmhvdXJzKHBhcnNlSW50KGV4dHJhY3RIb3VyRnJvbUJ1bGxldExpbmUobGluZSkpKTtcclxuICAgICAgICBpZiAocGFyc2VJbnQoZXh0cmFjdEhvdXJGcm9tQnVsbGV0TGluZShsaW5lKSkgPiAyMikge1xyXG4gICAgICAgICAgZW5kRGF0ZS5taW51dGVzKHBhcnNlSW50KGV4dHJhY3RNaW5Gcm9tQnVsbGV0TGluZShsaW5lKSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBlbmREYXRlLm1pbnV0ZXMocGFyc2VJbnQoZXh0cmFjdE1pbkZyb21CdWxsZXRMaW5lKGxpbmUpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKC9eXFxzKlstKl1cXHMoXFxbKC57MX0pXFxdKVxccy9nLnRlc3QobGluZSkpe1xyXG4gICAgICAgICAgY29uc3QgbWVtb1Rhc2tUeXBlID0gZXh0cmFjdE1lbW9UYXNrVHlwZUZyb21MaW5lKGxpbmUpO1xyXG4gICAgICAgICAgaWYoIG1lbW9UYXNrVHlwZSA9PT0gXCIgXCIpe1xyXG4gICAgICAgICAgICBtZW1vVHlwZSA9IFwiVEFTSy1UT0RPXCJcclxuICAgICAgICAgIH1lbHNlIGlmKCBtZW1vVGFza1R5cGUgPT09IFwieFwiIHx8IG1lbW9UYXNrVHlwZSA9PT0gXCJYXCIpe1xyXG4gICAgICAgICAgICBtZW1vVHlwZSA9IFwiVEFTSy1ET05FXCI7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbWVtb1R5cGUgPSBcIlRBU0stXCIgKyBtZW1vVGFza1R5cGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBtZW1vVHlwZSA9IFwiSk9VUk5BTFwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByYXdUZXh0ID0gZXh0cmFjdFRleHRGcm9tVG9kb0xpbmUobGluZSk7XHJcbiAgICAgICAgZGFpbHlFdmVudHMucHVzaCh7XHJcbiAgICAgICAgICBpZDogc3RhcnREYXRlLmZvcm1hdChcIllZWVlNTURESEhtbVNTXCIpICsgaSxcclxuICAgICAgICAgIGNvbnRlbnQ6IHJhd1RleHQsXHJcbiAgICAgICAgICB1c2VyX2lkOiAxLFxyXG4gICAgICAgICAgY3JlYXRlZEF0OiBzdGFydERhdGUuZm9ybWF0KFwiWVlZWS9NTS9ERCBISDptbTpTU1wiKSxcclxuICAgICAgICAgIHVwZGF0ZWRBdDogZW5kRGF0ZS5mb3JtYXQoXCJZWVlZL01NL0REIEhIOm1tOlNTXCIpLFxyXG4gICAgICAgICAgbWVtb1R5cGU6IG1lbW9UeXBlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmaWxlTGluZXMgPSBudWxsO1xyXG4gICAgZmlsZUNvbnRlbnRzID0gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRNZW1vcygpOiBQcm9taXNlPGFueVtdPiB7XHJcbiAgY29uc3QgZXZlbnRzOiBhbnlbXSB8IFByb21pc2VMaWtlPGFueVtdPiA9IFtdO1xyXG4gIGNvbnN0IHsgdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICBjb25zdCB7IGZvbGRlciB9ID0gZ2V0RGFpbHlOb3RlU2V0dGluZ3MoKTtcclxuXHJcbiAgY29uc3QgZGFpbHlOb3Rlc0ZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChub3JtYWxpemVQYXRoKGZvbGRlcikpIGFzIFRGb2xkZXI7XHJcblxyXG4gIGlmICghZGFpbHlOb3Rlc0ZvbGRlcikge1xyXG4gICAgdGhyb3cgbmV3IERhaWx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IoXCJGYWlsZWQgdG8gZmluZCBkYWlseSBub3RlcyBmb2xkZXJcIik7XHJcbiAgfVxyXG5cclxuICBjb25zdCBkYWlseU5vdGVzID0gZ2V0QWxsRGFpbHlOb3RlcygpO1xyXG5cclxuICBmb3IgKGNvbnN0IHN0cmluZyBpbiBkYWlseU5vdGVzKSB7XHJcbiAgICBpZiAoZGFpbHlOb3Rlc1tzdHJpbmddIGluc3RhbmNlb2YgVEZpbGUpIHtcclxuICAgICAgYXdhaXQgZ2V0VGFza3NGcm9tRGFpbHlOb3RlKGRhaWx5Tm90ZXNbc3RyaW5nXSwgZXZlbnRzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBldmVudHM7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbExpbmVzRnJvbUZpbGUgPSAoY2FjaGU6IHN0cmluZykgPT4gY2FjaGUuc3BsaXQoL1xccj9cXG4vKTtcclxuLy8gY29uc3QgbGluZUlzVmFsaWRUb2RvID0gKGxpbmU6IHN0cmluZykgPT4ge1xyXG4vLyAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4vLyAgIHJldHVybiAvXlxccypbXFwtXFwqXVxcc1xcWyhcXHN8eHxYfFxcXFx8XFwtfFxcPnxEfFxcP3xcXC98XFwrfFJ8XFwhfGl8QnxQfEMpXFxdXFxzP1xccypcXFMvLnRlc3QobGluZSlcclxuLy8gfVxyXG5jb25zdCBsaW5lQ29udGFpbnNUaW1lID0gKGxpbmU6IHN0cmluZykgPT4ge1xyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgcmV0dXJuIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXVxccyk/KFxcPHRpbWVcXD4pP1xcZHsxLDJ9XFw6XFxkezJ9KC4qKSQvLnRlc3QobGluZSk7XHJcbiAgLy8gVGhlIGJlbG93IGxpbmUgZXhjbHVkZXMgZW50cmllcyB3aXRoIGEgJzonIGFmdGVyIHRoZSB0aW1lIGFzIEkgd2FzIGhhdmluZyBpc3N1ZXMgd2l0aCBteSBjYWxlbmRhclxyXG4gIC8vIGJlaW5nIHB1bGxlZCBpbi4gT25jZSBtYWRlIGNvbmZpZ3VyYWJsZSB3aWxsIGJlIHNpbXBsZXIgdG8gbWFuYWdlLlxyXG4gIC8vIHJldHVybiAvXlxccypbXFwtXFwqXVxccyhcXFsoXFxzfHh8WHxcXFxcfFxcLXxcXD58RHxcXD98XFwvfFxcK3xSfFxcIXxpfEJ8UHxDKVxcXVxccyk/KFxcPHRpbWVcXD4pP1xcZHsxLDJ9XFw6XFxkezJ9W146XSguKikkLy50ZXN0KGxpbmUpO1xyXG59O1xyXG5cclxuY29uc3QgbGluZUNvbnRhaW5zUGFyc2VCZWxvd1Rva2VuID0gKGxpbmU6IHN0cmluZykgPT4ge1xyXG4gIGlmIChQcm9jZXNzRW50cmllc0JlbG93ID09PSBcIlwiKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKFByb2Nlc3NFbnRyaWVzQmVsb3cucmVwbGFjZSgvKFsuPyorXiRbXFxdXFxcXCgpe318LV0pL2csIFwiXFxcXCQxXCIpLCBcIlwiKTtcclxuICByZXR1cm4gcmUudGVzdChsaW5lKTtcclxufTtcclxuXHJcbmNvbnN0IGV4dHJhY3RUZXh0RnJvbVRvZG9MaW5lID0gKGxpbmU6IHN0cmluZykgPT5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXVxccz8pPyhcXDx0aW1lXFw+KT8oKFxcZHsxLDJ9KVxcOihcXGR7Mn0pKT8oXFw8XFwvdGltZVxcPik/XFxzPyguKikkLy5leGVjKGxpbmUpPy5bOF07XHJcblxyXG5jb25zdCBleHRyYWN0SG91ckZyb21CdWxsZXRMaW5lID0gKGxpbmU6IHN0cmluZykgPT5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXVxccz8pPyhcXDx0aW1lXFw+KT8oXFxkezEsMn0pXFw6KFxcZHsyfSkoLiopJC8uZXhlYyhsaW5lKT8uWzRdO1xyXG5cclxuY29uc3QgZXh0cmFjdE1pbkZyb21CdWxsZXRMaW5lID0gKGxpbmU6IHN0cmluZykgPT5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXVxccz8pPyhcXDx0aW1lXFw+KT8oXFxkezEsMn0pXFw6KFxcZHsyfSkoLiopJC8uZXhlYyhsaW5lKT8uWzVdO1xyXG5cclxuY29uc3QgZXh0cmFjdE1lbW9UYXNrVHlwZUZyb21MaW5lID0gKGxpbmU6IHN0cmluZykgPT5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXSlcXHMoLiopJC8uZXhlYyhsaW5lKT8uWzJdO1xyXG4gIC8vIFRoZSBiZWxvdyBsaW5lIGV4Y2x1ZGVzIGVudHJpZXMgd2l0aCBhICc6JyBhZnRlciB0aGUgdGltZSBhcyBJIHdhcyBoYXZpbmcgaXNzdWVzIHdpdGggbXkgY2FsZW5kYXJcclxuICAvLyBiZWluZyBwdWxsZWQgaW4uIE9uY2UgbWFkZSBjb25maWd1cmFibGUgd2lsbCBiZSBzaW1wbGVyIHRvIG1hbmFnZS5cclxuICAvLyByZXR1cm4gL15cXHMqW1xcLVxcKl1cXHMoXFxbKFxcc3x4fFh8XFxcXHxcXC18XFw+fER8XFw/fFxcL3xcXCt8UnxcXCF8aXxCfFB8QylcXF1cXHMpPyhcXDx0aW1lXFw+KT9cXGR7MSwyfVxcOlxcZHsyfVteOl0oLiopJC8udGVzdChsaW5lKTsiLCJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFRGaWxlICB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgYXBwU3RvcmUgZnJvbSBcIi4uL3N0b3Jlcy9hcHBTdG9yZVwiO1xyXG5pbXBvcnQgeyBnZXREYWlseU5vdGVQYXRoIH0gZnJvbSBcIi4vb2JVcGRhdGVNZW1vXCI7XHJcblxyXG5leHBvcnQgY29uc3QgdXBkYXRlT2JzaWRpYW5RdWVyeSA9IGFzeW5jIChxdWVyeUlkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT57XHJcbiAgICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsIHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gICAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArIFwiL3F1ZXJ5Lm1kXCI7XHJcblxyXG4gICAgY29uc3QgcXVlcnlGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChcIlwiICwgYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZihxdWVyeUZpbGUgaW5zdGFuY2VvZiBURmlsZSl7XHJcbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChxdWVyeUZpbGUpO1xyXG4gICAgICAgIGNvbnN0IGZpbGVMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUoZmlsZUNvbnRlbnRzKTtcclxuXHJcbiAgICAgICAgbGV0IGxpbmVJRDtcclxuXHJcbiAgICAgICAgaWYoL15cXGR7MSwzfSQvLnRlc3QocXVlcnlJZCkpe1xyXG4gICAgICAgICAgICBsaW5lSUQgPSBxdWVyeUlkO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBsaW5lSUQgPSBnZXRJREZyb21MaW5lKHF1ZXJ5SWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbGluZU51bSA9IHBhcnNlSW50KGxpbmVJRCkgLSAxO1xyXG5cclxuICAgICAgICBpZihmaWxlTGluZXMgJiYgZmlsZUxpbmVzLmxlbmd0aCAhPSAwKXtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG9sZENvbnRlbnQgPSBmaWxlTGluZXNbbGluZU51bV07XHJcblxyXG4gICAgICAgICAgICBjb25zdCBkYXRlID0gbW9tZW50KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRlU3RyaW5nID0gZGF0ZS5mb3JtYXQoXCJZWVlZTU1EREhIbW1zc1wiKTtcclxuICAgICAgICAgICAgY29uc3QgdXBkYXRlZERhdGUgPSBkYXRlLmZvcm1hdChcIllZWVkvTU0vREQgSEg6bW06c3NcIik7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0xpbmVOdW0gPSBsaW5lTnVtICsgMTtcclxuICAgICAgICAgICAgY29uc3QgaWQgPSB1cGRhdGVkRGF0ZVN0cmluZyArIG5ld0xpbmVOdW07XHJcbiAgICAgICAgICAgIGlmKC9eKC4rKXBpbm5lZEF0KC4rKSQvLnRlc3Qob2xkQ29udGVudCkpe1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGlubmVkU3RyaW5nID0gZ2V0UGlubmVkU3RyaW5nRnJvbUxpbmUob2xkQ29udGVudCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwaW5uZWREYXRlU3RyaW5nID0gZ2V0UGlubmVkRGF0ZUZyb21MaW5lKG9sZENvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IGlkICsgXCIgXCIgKyB0aXRsZSArIFwiIFwiICsgcXVlcnlTdHJpbmcgKyBcIiBcIiArIHBpbm5lZFN0cmluZztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBpbm5lZEF0RGF0ZSA9IG1vbWVudChwaW5uZWREYXRlU3RyaW5nLCBcIllZWVlNTURESEhtbXNzXCIpLmZvcm1hdChcIllZWVkvTU0vREQgSEg6bW06c3NcIik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWxlQ29udGVudHMgPSBmaWxlQ29udGVudHMucmVwbGFjZShvbGRDb250ZW50LG5ld0NvbnRlbnQpO1xyXG5cclxuICAgICAgICAgICAgICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShxdWVyeUZpbGUsIG5ld0ZpbGVDb250ZW50cyk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFt7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiB1cGRhdGVkRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcGlubmVkQXQ6IHBpbm5lZEF0RGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeXN0cmluZzogcXVlcnlTdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDogdXBkYXRlZERhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgfV1cclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdDb250ZW50ID0gaWQgKyBcIiBcIiArIHRpdGxlICsgXCIgXCIgKyBxdWVyeVN0cmluZztcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWxlQ29udGVudHMgPSBmaWxlQ29udGVudHMucmVwbGFjZShvbGRDb250ZW50LG5ld0NvbnRlbnQpO1xyXG5cclxuICAgICAgICAgICAgICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShxdWVyeUZpbGUsIG5ld0ZpbGVDb250ZW50cyk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFt7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiB1cGRhdGVkRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcGlubmVkQXQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlzdHJpbmc6IHF1ZXJ5U3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQXQ6IHVwZGF0ZWREYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZDogXCJcIixcclxuICAgICAgICAgICAgICAgIH1dXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbExpbmVzRnJvbUZpbGUgPSAoY2FjaGU6IHN0cmluZykgPT4gY2FjaGUuc3BsaXQoL1xccj9cXG4vKTtcclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuY29uc3QgZ2V0SURGcm9tTGluZSA9IChsaW5lOiBzdHJpbmcpID0+IC9eKFxcZHsxNH0pKFxcZHsxLH0pLy5leGVjKGxpbmUpPy5bMl1cclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuY29uc3QgZ2V0UGlubmVkU3RyaW5nRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PiAvXihcXGR7MTR9KShcXGR7MSx9KVxccyguKylcXHMoXFxbKC4rKVxcXSlcXHMocGlubmVkQXRcXDogKFxcZHsxNH0pXFxkKykvLmV4ZWMobGluZSk/Lls2XVxyXG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG5jb25zdCBnZXRQaW5uZWREYXRlRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PiAvXihcXGR7MTR9KShcXGR7MSx9KVxccyguKylcXHMoXFxbKC4rKVxcXSlcXHMocGlubmVkQXRcXDogKFxcZHsxNH0pXFxkKykvLmV4ZWMobGluZSk/Lls3XSIsImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgY3JlYXRlRGFpbHlOb3RlLCBnZXRBbGxEYWlseU5vdGVzLCBnZXREYWlseU5vdGUgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCB7IEluc2VydEFmdGVyIH0gZnJvbSBcIi4uL21lbW9zXCI7XHJcbmltcG9ydCB7IGRhaWx5Tm90ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuaW50ZXJmYWNlIE1Db250ZW50IHtcclxuICAgIGNvbnRlbnQ6IHN0cmluZztcclxuICAgIHBvc051bT86IG51bWJlcjtcclxufVxyXG5cclxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzExNTE1MC9ob3ctdG8tZXNjYXBlLXJlZ3VsYXItZXhwcmVzc2lvbi1zcGVjaWFsLWNoYXJhY3RlcnMtdXNpbmctamF2YXNjcmlwdFxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHRleHQgOiBhbnkpIHtcclxuICAgIHJldHVybiBhd2FpdCB0ZXh0LnJlcGxhY2UoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCAnXFxcXCQmJyk7XHJcbn1cclxuICBcclxuLy9jcmVkaXQgdG8gY2hob3VtYW5uLCBvcmlnaW5hbCBjb2RlIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGhvdW1hbm4vcXVpY2thZGQvYmxvYi83NTM2YTEyMDcwMWE2MjZlZjAxMGRiNTY3Y2VhN2NmMzAxOGU2YzgyL3NyYy91dGlsaXR5LnRzI0wxMzBcclxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmVzSW5TdHJpbmcoaW5wdXQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBsZXQgdGVtcFN0cmluZyA9IGlucHV0O1xyXG5cclxuICAgIHdoaWxlICh0ZW1wU3RyaW5nLmNvbnRhaW5zKFwiXFxuXCIpKSB7XHJcbiAgICAgICAgY29uc3QgbGluZUVuZEluZGV4ID0gdGVtcFN0cmluZy5pbmRleE9mKFwiXFxuXCIpO1xyXG4gICAgICAgIGxpbmVzLnB1c2godGVtcFN0cmluZy5zbGljZSgwLCBsaW5lRW5kSW5kZXgpKTtcclxuICAgICAgICB0ZW1wU3RyaW5nID0gdGVtcFN0cmluZy5zbGljZShsaW5lRW5kSW5kZXggKyAxKTtcclxuICAgIH1cclxuICBcclxuICAgIGxpbmVzLnB1c2godGVtcFN0cmluZyk7XHJcblxyXG4gICAgcmV0dXJuIGxpbmVzO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckluc2VydChNZW1vQ29udGVudDogc3RyaW5nLCBpc0xpc3Q6IGJvb2xlYW4pIDogUHJvbWlzZTxNb2RlbC5NZW1vPntcclxuICAgIC8vIGNvbnN0IHBsdWdpbiA9IHdpbmRvdy5wbHVnaW47XHJcbiAgICBjb25zdCB7IHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcbiAgICBjb25zdCByZW1vdmVFbnRlciA9IE1lbW9Db250ZW50LnJlcGxhY2UoL1xcbi9nLCBcIjxicj5cIilcclxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKTtcclxuICAgIGNvbnN0IHRpbWVIb3VyID0gZGF0ZS5mb3JtYXQoJ0hIJyk7XHJcbiAgICBjb25zdCB0aW1lTWludXRlID0gZGF0ZS5mb3JtYXQoJ21tJyk7XHJcbiAgICBsZXQgbmV3RXZlbnQ7XHJcbiAgICBsZXQgbGluZU51bTtcclxuXHJcbiAgICBpZiAoIGlzTGlzdCApe1xyXG4gICAgICAgIG5ld0V2ZW50ID0gYC0gWyBdIGAgKyBTdHJpbmcodGltZUhvdXIpICsgYDpgICsgU3RyaW5nKHRpbWVNaW51dGUpICsgYCBgICsgcmVtb3ZlRW50ZXI7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBuZXdFdmVudCA9IGAtIGAgKyBTdHJpbmcodGltZUhvdXIpICsgYDpgICsgU3RyaW5nKHRpbWVNaW51dGUpICsgYCBgICsgcmVtb3ZlRW50ZXI7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IGRhaWx5Tm90ZXMgPSBhd2FpdCBnZXRBbGxEYWlseU5vdGVzKCk7XHJcbiAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSBnZXREYWlseU5vdGUoZGF0ZSwgZGFpbHlOb3Rlcyk7XHJcbiAgICBpZighZXhpc3RpbmdGaWxlKXtcclxuICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGNyZWF0ZURhaWx5Tm90ZShkYXRlKTtcclxuICAgICAgYXdhaXQgZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0TXlBbGxEYWlseU5vdGVzKCk7XHJcbiAgICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LmNhY2hlZFJlYWQoZmlsZSk7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGVDb250ZW50ID0gYXdhaXQgaW5zZXJ0QWZ0ZXJIYW5kbGVyKEluc2VydEFmdGVyLCBuZXdFdmVudCAsZmlsZUNvbnRlbnRzKTtcclxuICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KGZpbGUsIG5ld0ZpbGVDb250ZW50LmNvbnRlbnQpO1xyXG4gICAgICBpZihuZXdGaWxlQ29udGVudC5wb3NOdW0gPT09IC0xKXtcclxuICAgICAgICBjb25zdCBhbGxMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUobmV3RmlsZUNvbnRlbnQuY29udGVudCk7XHJcbiAgICAgICAgbGluZU51bSA9IGFsbExpbmVzLmxlbmd0aCArIDE7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGxpbmVOdW0gPSBuZXdGaWxlQ29udGVudC5wb3NOdW0gKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICggaXNMaXN0ICl7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpZDogZGF0ZS5mb3JtYXQoJ1lZWVlNTURESEhtbScpICsgXCIwMFwiICsgbGluZU51bSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IE1lbW9Db250ZW50LFxyXG4gICAgICAgICAgICAgICAgZGVsZXRlZEF0OiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBkYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEF0OiBkYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpLFxyXG4gICAgICAgICAgICAgICAgbWVtb1R5cGU6IFwiVEFTSy1UT0RPXCIsXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGRhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW0nKSArIFwiMDBcIiArIGxpbmVOdW0sXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBNZW1vQ29udGVudCxcclxuICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogXCJcIixcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcclxuICAgICAgICAgICAgICAgIG1lbW9UeXBlOiBcIkpPVVJOQUxcIixcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICBcclxuICAgIH1lbHNle1xyXG4gICAgICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LmNhY2hlZFJlYWQoZXhpc3RpbmdGaWxlKTtcclxuICAgICAgICBjb25zdCBuZXdGaWxlQ29udGVudCA9IGF3YWl0IGluc2VydEFmdGVySGFuZGxlcihJbnNlcnRBZnRlciwgbmV3RXZlbnQgLGZpbGVDb250ZW50cyk7XHJcbiAgICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KGV4aXN0aW5nRmlsZSwgbmV3RmlsZUNvbnRlbnQuY29udGVudCk7XHJcbiAgICAgICAgaWYobmV3RmlsZUNvbnRlbnQucG9zTnVtID09PSAtMSl7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbExpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShuZXdGaWxlQ29udGVudC5jb250ZW50KTtcclxuICAgICAgICAgICAgbGluZU51bSA9IGFsbExpbmVzLmxlbmd0aCArIDE7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGxpbmVOdW0gPSBuZXdGaWxlQ29udGVudC5wb3NOdW0gKyAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIGlzTGlzdCApe1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGRhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW0nKSArIFwiMDBcIiArIGxpbmVOdW0sXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBNZW1vQ29udGVudCxcclxuICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogXCJcIixcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcclxuICAgICAgICAgICAgICAgIG1lbW9UeXBlOiBcIlRPRE8tQmxhbmtcIixcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGRhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW0nKSArIFwiMDBcIiArIGxpbmVOdW0sXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBNZW1vQ29udGVudCxcclxuICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogXCJcIixcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcclxuICAgICAgICAgICAgICAgIG1lbW9UeXBlOiBcIkpPVVJOQUxcIixcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLy9jcmVkaXQgdG8gY2hob3VtYW5uLCBvcmlnaW5hbCBjb2RlIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGhvdW1hbm4vcXVpY2thZGRcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydEFmdGVySGFuZGxlcih0YXJnZXRTdHJpbmc6IHN0cmluZywgZm9ybWF0dGVkOiBzdHJpbmcsIGZpbGVDb250ZW50OiBzdHJpbmcpIHtcclxuICAgIC8vIGNvbnN0IHRhcmdldFN0cmluZzogc3RyaW5nID0gcGx1Z2luLnNldHRpbmdzLkluc2VydEFmdGVyO1xyXG4gICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIGNvbnN0IHRhcmdldFJlZ2V4ID0gbmV3IFJlZ0V4cChgXFxzKiR7YXdhaXQgZXNjYXBlUmVnRXhwKHRhcmdldFN0cmluZyl9XFxzKmApO1xyXG4gICAgY29uc3QgZmlsZUNvbnRlbnRMaW5lczogc3RyaW5nW10gPSBnZXRMaW5lc0luU3RyaW5nKGZpbGVDb250ZW50KTtcclxuXHJcbiAgICBjb25zdCB0YXJnZXRQb3NpdGlvbiA9IGZpbGVDb250ZW50TGluZXMuZmluZEluZGV4KGxpbmUgPT4gdGFyZ2V0UmVnZXgudGVzdChsaW5lKSk7XHJcbiAgICBjb25zdCB0YXJnZXROb3RGb3VuZCA9IHRhcmdldFBvc2l0aW9uID09PSAtMTtcclxuICAgIGlmICh0YXJnZXROb3RGb3VuZCkge1xyXG4gICAgICAgIC8vIGlmICh0aGlzLmNob2ljZS5pbnNlcnRBZnRlcj8uY3JlYXRlSWZOb3RGb3VuZCkge1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gYXdhaXQgY3JlYXRlSW5zZXJ0QWZ0ZXJJZk5vdEZvdW5kKGZvcm1hdHRlZCk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcInVuYWJsZSB0byBmaW5kIGluc2VydCBhZnRlciBsaW5lIGluIGZpbGUuXCIpXHJcbiAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5leHRIZWFkZXJQb3NpdGlvbkFmdGVyVGFyZ2V0UG9zaXRpb24gPSBmaWxlQ29udGVudExpbmVzXHJcbiAgICAgICAgICAgIC5zbGljZSh0YXJnZXRQb3NpdGlvbiArIDEpXHJcbiAgICAgICAgICAgIC5maW5kSW5kZXgobGluZSA9PiAoL14jKyB8LS0tLykudGVzdChsaW5lKSlcclxuICAgICAgICBjb25zdCBmb3VuZE5leHRIZWFkZXIgPSBuZXh0SGVhZGVyUG9zaXRpb25BZnRlclRhcmdldFBvc2l0aW9uICE9PSAtMTtcclxuXHJcbiAgICAgICAgaWYgKGZvdW5kTmV4dEhlYWRlcikge1xyXG4gICAgICAgICAgICBsZXQgZW5kT2ZTZWN0aW9uSW5kZXg6IG51bWJlcjtcclxuICBcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IG5leHRIZWFkZXJQb3NpdGlvbkFmdGVyVGFyZ2V0UG9zaXRpb24gKyB0YXJnZXRQb3NpdGlvbjsgaSA+IHRhcmdldFBvc2l0aW9uOyBpLS0pIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVJc05ld2xpbmU6IGJvb2xlYW4gPSAoL15bXFxzXFxuIF0qJC8pLnRlc3QoZmlsZUNvbnRlbnRMaW5lc1tpXSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWxpbmVJc05ld2xpbmUpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbmRPZlNlY3Rpb25JbmRleCA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghZW5kT2ZTZWN0aW9uSW5kZXgpIGVuZE9mU2VjdGlvbkluZGV4ID0gdGFyZ2V0UG9zaXRpb247XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgaW5zZXJ0VGV4dEFmdGVyUG9zaXRpb25JbkJvZHkoZm9ybWF0dGVkLCBmaWxlQ29udGVudCwgZW5kT2ZTZWN0aW9uSW5kZXgsIGZvdW5kTmV4dEhlYWRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGluc2VydFRleHRBZnRlclBvc2l0aW9uSW5Cb2R5KGZvcm1hdHRlZCwgZmlsZUNvbnRlbnQsIGZpbGVDb250ZW50TGluZXMubGVuZ3RoIC0gMSwgZm91bmROZXh0SGVhZGVyKTtcclxuICAgICAgICB9XHJcbiAgICAvLyByZXR1cm4gaW5zZXJ0VGV4dEFmdGVyUG9zaXRpb25JbkJvZHkoZm9ybWF0dGVkLCBmaWxlQ29udGVudCwgdGFyZ2V0UG9zaXRpb24pO1xyXG4gIH1cclxuICBcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydFRleHRBZnRlclBvc2l0aW9uSW5Cb2R5KHRleHQ6IHN0cmluZywgYm9keTogc3RyaW5nLCBwb3M6IG51bWJlciwgZm91bmQ/OiBib29sZWFuKTogUHJvbWlzZTxNQ29udGVudD4ge1xyXG4gICAgaWYgKHBvcyA9PT0gLTEpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb250ZW50OiBgJHtib2R5fVxcbiR7dGV4dH1gLFxyXG4gICAgICAgICAgICBwb3NOdW06IC0xLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCBzcGxpdENvbnRlbnQgPSBib2R5LnNwbGl0KFwiXFxuXCIpO1xyXG4gIFxyXG4gICAgaWYoZm91bmQpe1xyXG4gICAgICAgIGNvbnN0IHByZSA9IHNwbGl0Q29udGVudC5zbGljZSgwLCBwb3MgKyAxKS5qb2luKFwiXFxuXCIpO1xyXG4gICAgICAgIGNvbnN0IHBvc3QgPSBzcGxpdENvbnRlbnQuc2xpY2UocG9zICsgMSkuam9pbihcIlxcblwiKTtcclxuICAgICAgICAvLyByZXR1cm4gYCR7cHJlfVxcbiR7dGV4dH1cXG4ke3Bvc3R9YDtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb250ZW50OiBgJHtwcmV9XFxuJHt0ZXh0fVxcbiR7cG9zdH1gLFxyXG4gICAgICAgICAgICBwb3NOdW06IHBvcyxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgICBjb25zdCBwcmUgPSBzcGxpdENvbnRlbnQuc2xpY2UoMCwgcG9zKzEpLmpvaW4oXCJcXG5cIik7XHJcbiAgICAgICAgY29uc3QgcG9zdCA9IHNwbGl0Q29udGVudC5zbGljZShwb3MrMSkuam9pbihcIlxcblwiKTtcclxuICAgICAgICAvLyByZXR1cm4gYCR7cHJlfSR7dGV4dH1cXG4ke3Bvc3R9YDtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb250ZW50OiBgJHtwcmV9JHt0ZXh0fVxcbiR7cG9zdH1gLFxyXG4gICAgICAgICAgICBwb3NOdW06IHBvcyxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBnZXRBbGxMaW5lc0Zyb21GaWxlID0gKGNhY2hlOiBzdHJpbmcpID0+IGNhY2hlLnNwbGl0KC9cXHI/XFxuLykiLCJpbXBvcnQgeyBnZXREYWlseU5vdGVQYXRoIH0gZnJvbSBcIi4vb2JVcGRhdGVNZW1vXCI7XHJcbmltcG9ydCB7IFRGaWxlLCBub3JtYWxpemVQYXRoLCBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuaW1wb3J0IHsgY3JlYXRlRGFpbHlOb3RlLCBnZXRBbGxEYWlseU5vdGVzLCBnZXREYWlseU5vdGUgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IGluc2VydEFmdGVySGFuZGxlciB9IGZyb20gXCIuL29iQ3JlYXRlTWVtb1wiO1xyXG5pbXBvcnQgeyBJbnNlcnRBZnRlciB9IGZyb20gXCIuLi9tZW1vc1wiO1xyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVEZWxldGVkTWVtbyhkZWxldGVkTWVtb2lkOiBzdHJpbmcpOiBQcm9taXNlPGFueVtdPiB7XHJcblxyXG4gICAgY29uc3QgeyB2YXVsdCwgbWV0YWRhdGFDYWNoZSB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG4gICAgaWYoL1xcZHsxNCx9Ly50ZXN0KGRlbGV0ZWRNZW1vaWQpKXtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gZmlsZVBhdGggKyBcIi9kZWxldGUubWRcIjtcclxuICAgICAgICBjb25zdCBkZWxldGVGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChcIlwiICwgYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgICAgaWYgKGRlbGV0ZUZpbGUgaW5zdGFuY2VvZiBURmlsZSkge1xyXG4gICAgICAgICAgICBsZXQgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChkZWxldGVGaWxlKTtcclxuICAgICAgICAgICAgbGV0IGZpbGVMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUoZmlsZUNvbnRlbnRzKTtcclxuICAgICAgICAgICAgaWYoZmlsZUxpbmVzLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVOdW0gPSBwYXJzZUludChkZWxldGVkTWVtb2lkLnNsaWNlKDE0LCkpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IGZpbGVMaW5lc1tsaW5lTnVtLTFdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RGVsZXRlZmlsZUNvbnRlbnRzID0gZmlsZUNvbnRlbnRzLnJlcGxhY2UobGluZSxcIlwiKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShkZWxldGVGaWxlLCBuZXdEZWxldGVmaWxlQ29udGVudHMpO1xyXG4gICAgICAgICAgICAgICAgaWYoKC9eLSAoLispJC8udGVzdChsaW5lKSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gZXh0cmFjdElEZnJvbVRleHQobGluZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChpZCxcIllZWVlNTURESEhtbXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVIb3VyID0gIGRhdGUuZm9ybWF0KCdISCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVNaW51dGUgPSBkYXRlLmZvcm1hdCgnbW0nKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3RXZlbnQgPSBgLSBgICsgU3RyaW5nKHRpbWVIb3VyKSArIGA6YCArIFN0cmluZyh0aW1lTWludXRlKSArIGAgYCArIGV4dHJhY3RDb250ZW50ZnJvbVRleHQobGluZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGFpbHlOb3RlcyA9IGF3YWl0IGdldEFsbERhaWx5Tm90ZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSBnZXREYWlseU5vdGUoZGF0ZSwgZGFpbHlOb3Rlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoIWV4aXN0aW5nRmlsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCBjcmVhdGVEYWlseU5vdGUoZGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LmNhY2hlZFJlYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpbGVDb250ZW50ID0gYXdhaXQgaW5zZXJ0QWZ0ZXJIYW5kbGVyKEluc2VydEFmdGVyLCBuZXdFdmVudCAsZmlsZUNvbnRlbnRzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KGZpbGUsIG5ld0ZpbGVDb250ZW50LmNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfV1cclxuICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChleGlzdGluZ0ZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWxlQ29udGVudCA9IGF3YWl0IGluc2VydEFmdGVySGFuZGxlcihJbnNlcnRBZnRlciwgbmV3RXZlbnQgLGZpbGVDb250ZW50cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShleGlzdGluZ0ZpbGUsIG5ld0ZpbGVDb250ZW50LmNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfV1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaWxlTGluZXMgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgZmlsZUNvbnRlbnRzID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVGb3JldmVyKGRlbGV0ZWRNZW1vaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIGNvbnN0IHsgdmF1bHQsIG1ldGFkYXRhQ2FjaGUgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICAgIGlmKC9cXGR7MTQsfS8udGVzdChkZWxldGVkTWVtb2lkKSl7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gZ2V0RGFpbHlOb3RlUGF0aCgpO1xyXG4gICAgICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGZpbGVQYXRoICsgXCIvZGVsZXRlLm1kXCI7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlRmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoXCJcIiAsIGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChkZWxldGVGaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcclxuICAgICAgICAgICAgbGV0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LmNhY2hlZFJlYWQoZGVsZXRlRmlsZSk7XHJcbiAgICAgICAgICAgIGxldCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XHJcbiAgICAgICAgICAgIGlmKGZpbGVMaW5lcy5sZW5ndGggPT09IDApe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lTnVtID0gcGFyc2VJbnQoZGVsZXRlZE1lbW9pZC5zbGljZSgxNCwpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBmaWxlTGluZXNbbGluZU51bS0xXTtcclxuICAgICAgICAgICAgICAgIGlmKCgvXi0gKC4rKSQvLnRlc3QobGluZSkpKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBpZCA9IGV4dHJhY3RJRGZyb21UZXh0KGZpbGVMaW5lc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3RmlsZUNvbnRlbnQgPSBmaWxlQ29udGVudHMucmVwbGFjZShsaW5lLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB2YXVsdC5tb2RpZnkoZGVsZXRlRmlsZSwgbmV3RmlsZUNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgZmlsZUxpbmVzID0gbnVsbDtcclxuICAgICAgICBmaWxlQ29udGVudHMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHJldHVybiBkZWxldGVkTWVtb3M7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZWxldGVkTWVtb3MoKTogUHJvbWlzZTxhbnlbXT4ge1xyXG5cclxuICAgIGNvbnN0IHsgdmF1bHQsIG1ldGFkYXRhQ2FjaGUgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuXHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcclxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGZpbGVQYXRoICsgXCIvZGVsZXRlLm1kXCI7XHJcbiAgICBjb25zdCBkZWxldGVkTWVtb3M6IGFueVtdIHwgUHJvbWlzZUxpa2U8YW55W10+ID0gW107XHJcbiAgICBjb25zdCBkZWxldGVGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChcIlwiICwgYWJzb2x1dGVQYXRoKTtcclxuICAgIGlmIChkZWxldGVGaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcclxuICAgICAgbGV0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LmNhY2hlZFJlYWQoZGVsZXRlRmlsZSk7XHJcbiAgICAgIGxldCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XHJcbiAgICAgIGlmKGZpbGVMaW5lcy5sZW5ndGggPT09IDApe1xyXG4gICAgICAgICAgcmV0dXJuIGRlbGV0ZWRNZW1vcztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbGluZSA9IGZpbGVMaW5lc1tpXTtcclxuICAgICAgICAgICAgaWYoISgvLSAvLnRlc3QobGluZSkpKXtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gZXh0cmFjdElEZnJvbVRleHQobGluZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lU3RyaW5nID0gaWQuc2xpY2UoMCwxMyk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBpZFN0cmluZyA9IHBhcnNlSW50KGlkLnNsaWNlKDE0KSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjcmVhdGVkRGF0ZSA9IG1vbWVudCh0aW1lU3RyaW5nLCBcIllZWVlNTURESEhtbXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGVsZXRlZERhdGVJRCA9IGV4dHJhY3REZWxldGVEYXRlZnJvbVRleHQoZmlsZUxpbmVzW2ldKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZWREYXRlID0gbW9tZW50KGRlbGV0ZWREYXRlSUQuc2xpY2UoMCwxMyksXCJZWVlZTU1EREhIbW1zc1wiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBleHRyYWN0Q29udGVudGZyb21UZXh0KGZpbGVMaW5lc1tpXSk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVkTWVtb3MucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGlkOiBkZWxldGVkRGF0ZUlELFxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICB1c2VyX2lkOiAxLFxyXG4gICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWREYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpTUycpLFxyXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkQXQ6IGNyZWF0ZWREYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpTUycpLFxyXG4gICAgICAgICAgICAgICAgICBkZWxldGVkQXQ6IGRlbGV0ZWREYXRlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZpbGVMaW5lcyA9IG51bGw7XHJcbiAgICAgIGZpbGVDb250ZW50cyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVsZXRlZE1lbW9zO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHNlbmRNZW1vVG9EZWxldGUgPSBhc3luYyAobWVtb0NvbnRlbnQ6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PntcclxuXHJcbiAgICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsIHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gICAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArIFwiL2RlbGV0ZS5tZFwiO1xyXG5cclxuICAgIGNvbnN0IGRlbGV0ZUZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KFwiXCIgLCBhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmKGRlbGV0ZUZpbGUgaW5zdGFuY2VvZiBURmlsZSl7XHJcbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChkZWxldGVGaWxlKTtcclxuICAgICAgICBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpO1xyXG4gICAgICAgIGNvbnN0IGRlbGV0ZURhdGUgPSBkYXRlLmZvcm1hdChcIllZWVkvTU0vREQgSEg6bW06c3NcIik7XHJcbiAgICAgICAgbGV0IGxpbmVOdW07XHJcbiAgICAgICAgaWYoZmlsZUxpbmVzLmxlbmd0aCA9PT0gMSAmJiBmaWxlTGluZXNbMF0gPT09IFwiXCIpe1xyXG4gICAgICAgICAgICBsaW5lTnVtID0gMTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbGluZU51bSA9IGZpbGVMaW5lcy5sZW5ndGggKyAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkZWxldGVEYXRlSUQgPSBkYXRlLmZvcm1hdChcIllZWVlNTURESEhtbXNzXCIpICsgbGluZU51bTtcclxuXHJcbiAgICAgICAgYXdhaXQgY3JlYXRlRGVsZXRlTWVtb0luRmlsZShkZWxldGVGaWxlLCBmaWxlQ29udGVudHMgLCBtZW1vQ29udGVudCAsIGRlbGV0ZURhdGVJRCk7XHJcblxyXG4gICAgICAgIHJldHVybiBkZWxldGVEYXRlXHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCBkZWxldGVGaWxlUGF0aCA9IG5vcm1hbGl6ZVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgY3JlYXRlZGVsZXRlRmlsZShkZWxldGVGaWxlUGF0aCk7XHJcbiAgICAgICAgLy8gY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChkZWxldGVGaWxlKTtcclxuICAgICAgICAvLyBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpO1xyXG4gICAgICAgIGNvbnN0IGRlbGV0ZURhdGUgPSBkYXRlLmZvcm1hdChcIllZWVkvTU0vREQgSEg6bW06c3NcIik7XHJcbiAgICAgICAgY29uc3QgbGluZU51bSA9IDE7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlRGF0ZUlEID0gZGF0ZS5mb3JtYXQoXCJZWVlZTU1EREhIbW1zc1wiKSArIGxpbmVOdW07XHJcblxyXG4gICAgICAgIGF3YWl0IGNyZWF0ZURlbGV0ZU1lbW9JbkZpbGUoZmlsZSwgXCJcIiAsIG1lbW9Db250ZW50ICwgZGVsZXRlRGF0ZUlEKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRlbGV0ZURhdGVcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVEZWxldGVNZW1vSW5GaWxlID0gYXN5bmMgKGZpbGU6IFRGaWxlLCBmaWxlQ29udGVudDogc3RyaW5nLCBtZW1vQ29udGVudDogc3RyaW5nLCBkZWxldGVEYXRlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT57XHJcblxyXG4gICAgY29uc3QgeyB2YXVsdCB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG4gICAgbGV0IG5ld0NvbnRlbnQ7XHJcbiAgICBpZihmaWxlQ29udGVudCA9PT0gXCJcIil7XHJcbiAgICAgICAgbmV3Q29udGVudCA9IG1lbW9Db250ZW50ICsgXCIgZGVsZXRlZEF0OiBcIiArIGRlbGV0ZURhdGU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBuZXdDb250ZW50ID0gZmlsZUNvbnRlbnQgKyBcIlxcblwiICsgbWVtb0NvbnRlbnQgKyBcIiBkZWxldGVkQXQ6IFwiICsgZGVsZXRlRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCB2YXVsdC5tb2RpZnkoZmlsZSwgbmV3Q29udGVudCk7XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlZGVsZXRlRmlsZSA9IGFzeW5jIChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFRGaWxlPiA9PiB7XHJcbiAgICBjb25zdCB7IHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBjcmVhdGVkRmlsZSA9IGF3YWl0IHZhdWx0LmNyZWF0ZShwYXRoLCBcIlwiKTtcclxuICAgICAgICByZXR1cm4gY3JlYXRlZEZpbGU7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBmaWxlOiAnJHtwYXRofSdgLCBlcnIpO1xyXG4gICAgICAgIG5ldyBOb3RpY2UoXCJVbmFibGUgdG8gY3JlYXRlIG5ldyBmaWxlLlwiKTtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pO1xyXG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG5jb25zdCBleHRyYWN0SURmcm9tVGV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eLSAoXFxkezE0fSkoXFxkKylcXHMoLispXFxzKGRlbGV0ZWRBdDogKSguKykkLy5leGVjKGxpbmUpPy5bMV1cclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuY29uc3QgZXh0cmFjdENvbnRlbnRmcm9tVGV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eLSAoXFxkKylcXHMoLispXFxzKGRlbGV0ZWRBdDogKSguKykkLy5leGVjKGxpbmUpPy5bMl1cclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuY29uc3QgZXh0cmFjdERlbGV0ZURhdGVmcm9tVGV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eLSAoXFxkKylcXHMoLispXFxzKGRlbGV0ZWRBdDogKSguKykkLy5leGVjKGxpbmUpPy5bNF1cclxuLy8gY29uc3QgZXh0cmFjdE1lbW9UYXNrVHlwZUZyb21MaW5lID0gKGxpbmU6IHN0cmluZykgPT5cclxuLy8gICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4vLyAgIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXSlcXHMoLiopJC8uZXhlYyhsaW5lKT8uWzJdOyIsImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgZ2V0RGFpbHlOb3RlIH0gZnJvbSBcIm9ic2lkaWFuLWRhaWx5LW5vdGVzLWludGVyZmFjZVwiO1xyXG4vLyBpbXBvcnQgYXBwU3RvcmUgZnJvbSBcIi4uL3N0b3Jlcy9hcHBTdG9yZVwiO1xyXG5pbXBvcnQgZGFpbHlOb3Rlc1NlcnZpY2UgZnJvbSAnLi4vc2VydmljZXMvZGFpbHlOb3Rlc1NlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgYXBwU3RvcmUgZnJvbSBcIi4uL3N0b3Jlcy9hcHBTdG9yZVwiO1xyXG5pbXBvcnQgeyBzZW5kTWVtb1RvRGVsZXRlIH0gZnJvbSBcIi4vb2JEZWxldGVNZW1vXCI7XHJcblxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9iSGlkZU1lbW8obWVtb2lkOiBzdHJpbmcpOiBQcm9taXNlPE1vZGVsLk1lbW8+IHtcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgICAgZGFpbHlOb3Rlc1xyXG4gICAgICB9ID0gZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0U3RhdGUoKTtcclxuICAgIGlmKC9cXGR7MTQsfS8udGVzdChtZW1vaWQpKXtcclxuICAgICAgICBjb25zdCB7IHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcbiAgICAgICAgY29uc3QgdGltZVN0cmluZyA9IG1lbW9pZC5zbGljZSgwLDEzKTtcclxuICAgICAgICBjb25zdCBpZFN0cmluZyA9IHBhcnNlSW50KG1lbW9pZC5zbGljZSgxNCkpO1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZURhdGUgPSBtb21lbnQodGltZVN0cmluZywgXCJZWVlZTU1EREhIbW1TU1wiKTtcclxuICAgICAgICBjb25zdCBkYWlseU5vdGUgPSBnZXREYWlseU5vdGUoY2hhbmdlRGF0ZSwgZGFpbHlOb3Rlcyk7XHJcbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCB2YXVsdC5jYWNoZWRSZWFkKGRhaWx5Tm90ZSk7XHJcbiAgICAgICAgY29uc3QgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudCk7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IGV4dHJhY3RDb250ZW50ZnJvbVRleHQoZmlsZUxpbmVzW2lkU3RyaW5nXSk7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lID0gXCItIFwiICsgbWVtb2lkICsgXCIgXCIgKyBjb250ZW50O1xyXG4gICAgICAgIGNvbnN0IG5ld0xpbmUgPSBmaWxlTGluZXNbaWRTdHJpbmddO1xyXG4gICAgICAgIGNvbnN0IG5ld0ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQucmVwbGFjZShuZXdMaW5lLCBcIlwiKTtcclxuICAgICAgICBhd2FpdCB2YXVsdC5tb2RpZnkoZGFpbHlOb3RlLCBuZXdGaWxlQ29udGVudCk7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlRGF0ZSA9IGF3YWl0IHNlbmRNZW1vVG9EZWxldGUob3JpZ2luYWxMaW5lKTtcclxuICAgICAgICByZXR1cm4gZGVsZXRlRGF0ZTtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pXHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmNvbnN0IGV4dHJhY3RDb250ZW50ZnJvbVRleHQgPSAobGluZTogc3RyaW5nKSA9PiAvXlxccypbXFwtXFwqXVxccyhcXFsoXFxzfHh8WHxcXFxcfFxcLXxcXD58RHxcXD98XFwvfFxcK3xSfFxcIXxpfEJ8UHxDKVxcXVxccz8pPyhcXDx0aW1lXFw+KT8oKFxcZHsxLDJ9KVxcOihcXGR7Mn0pKT8oXFw8XFwvdGltZVxcPik/XFxzPyguKikkLy5leGVjKGxpbmUpPy5bOF1cclxuXHJcblxyXG5cclxuIiwiaW1wb3J0IHsgZ2V0RGFpbHlOb3RlUGF0aCB9IGZyb20gXCIuL29iVXBkYXRlTWVtb1wiO1xyXG5pbXBvcnQgeyBURmlsZSB9IGZyb20gJ29ic2lkaWFuJztcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVRdWVyeUZvcmV2ZXIocXVlcnlJRDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgY29uc3QgeyB2YXVsdCwgbWV0YWRhdGFDYWNoZSB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG4gICAgaWYoL1xcZHsxNCx9Ly50ZXN0KHF1ZXJ5SUQpKXtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gZmlsZVBhdGggKyBcIi9xdWVyeS5tZFwiO1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5RmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoXCJcIiAsIGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChxdWVyeUZpbGUgaW5zdGFuY2VvZiBURmlsZSkge1xyXG4gICAgICAgICAgICBsZXQgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChxdWVyeUZpbGUpO1xyXG4gICAgICAgICAgICBsZXQgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xyXG4gICAgICAgICAgICBpZihmaWxlTGluZXMubGVuZ3RoID09PSAwKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiA7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGluZU51bSA9IHBhcnNlSW50KHF1ZXJ5SUQuc2xpY2UoMTQsKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gZmlsZUxpbmVzW2xpbmVOdW0tMV07XHJcbiAgICAgICAgICAgICAgICBpZigoL15cXGR7MTQsfSguKykkLy50ZXN0KGxpbmUpKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgaWQgPSBleHRyYWN0SURmcm9tVGV4dChmaWxlTGluZXNbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnRzLnJlcGxhY2UobGluZSwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KHF1ZXJ5RmlsZSwgbmV3RmlsZUNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgZmlsZUxpbmVzID0gbnVsbDtcclxuICAgICAgICBmaWxlQ29udGVudHMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxuICAgIC8vIHJldHVybiBkZWxldGVkTWVtb3M7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbExpbmVzRnJvbUZpbGUgPSAoY2FjaGU6IHN0cmluZykgPT4gY2FjaGUuc3BsaXQoL1xccj9cXG4vKTsiLCJpbXBvcnQgeyBnZXREYWlseU5vdGVQYXRoIH0gZnJvbSBcIi4vb2JVcGRhdGVNZW1vXCI7XHJcbmltcG9ydCB7IFRGaWxlLCBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBwaW5RdWVyeUluRmlsZSA9IGFzeW5jIChxdWVyeUlEOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT57XHJcblxyXG4gICAgY29uc3QgeyBtZXRhZGF0YUNhY2hlLCB2YXVsdCB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG4gICAgaWYoL1xcZHsxNCx9Ly50ZXN0KHF1ZXJ5SUQpKXtcclxuICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcclxuICAgICAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArIFwiL3F1ZXJ5Lm1kXCI7XHJcblxyXG4gICAgICAgIGNvbnN0IHF1ZXJ5RmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoXCJcIiAsIGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICAgIGlmKHF1ZXJ5RmlsZSBpbnN0YW5jZW9mIFRGaWxlKXtcclxuICAgICAgICAgICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChxdWVyeUZpbGUpO1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKTtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lTnVtID0gcGFyc2VJbnQocXVlcnlJRC5zbGljZSgxNCkpO1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbENvbnRlbnQgPSBmaWxlTGluZXNbb3JpZ2luYWxMaW5lTnVtLTFdO1xyXG4gICAgICAgICAgICBjb25zdCBwaW5uZWRBdERhdGUgPSBkYXRlLmZvcm1hdChcIllZWVkvTU0vREQgSEg6bW06c3NcIik7XHJcbiAgICAgICAgICAgIGxldCBsaW5lTnVtO1xyXG4gICAgICAgICAgICBpZihmaWxlTGluZXMubGVuZ3RoID09PSAxICYmIGZpbGVMaW5lc1swXSA9PT0gXCJcIil7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtID0gMTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtID0gZmlsZUxpbmVzLmxlbmd0aCArIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgcGlubmVkQXREYXRlSUQgPSBkYXRlLmZvcm1hdChcIllZWVlNTURESEhtbXNzXCIpICsgbGluZU51bTtcclxuICAgICAgICAgICAgY29uc3QgbmV3UXVlcnkgPSBvcmlnaW5hbENvbnRlbnQgKyBcIiBwaW5uZWRBdDogXCIgKyBwaW5uZWRBdERhdGVJRDtcclxuICAgICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IGZpbGVDb250ZW50cy5yZXBsYWNlKG9yaWdpbmFsQ29udGVudCwgbmV3UXVlcnkpO1xyXG4gICAgICAgICAgICBhd2FpdCB2YXVsdC5tb2RpZnkocXVlcnlGaWxlLCBuZXdDb250ZW50KTtcclxuICAgICAgICAgICAgLy8gYXdhaXQgY3JlYXRlRGVsZXRlTWVtb0luRmlsZShxdWVyeUZpbGUsIGZpbGVDb250ZW50cyAsIG9yaWdpbmFsQ29udGVudCAsIHBpbm5lZEF0RGF0ZUlEKTtcclxuICAgICAgICAgICAgcmV0dXJuIHBpbm5lZEF0RGF0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB1bnBpblF1ZXJ5SW5GaWxlID0gYXN5bmMgKHF1ZXJ5SUQ6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PntcclxuXHJcbiAgICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsIHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gICAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArIFwiL3F1ZXJ5Lm1kXCI7XHJcblxyXG4gICAgY29uc3QgcXVlcnlGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChcIlwiICwgYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZihxdWVyeUZpbGUgaW5zdGFuY2VvZiBURmlsZSl7XHJcbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQuY2FjaGVkUmVhZChxdWVyeUZpbGUpO1xyXG4gICAgICAgIGNvbnN0IGZpbGVMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUoZmlsZUNvbnRlbnRzKTtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbExpbmVOdW0gPSBwYXJzZUludChxdWVyeUlELnNsaWNlKDE0KSk7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxDb250ZW50ID0gZmlsZUxpbmVzW29yaWdpbmFsTGluZU51bS0xXTtcclxuICAgICAgICBjb25zdCBwaW5uZWRBdFN0cmluZyA9IGV4dHJhY3RQaW5uZWRBdGZyb21UZXh0KG9yaWdpbmFsQ29udGVudCk7XHJcbiAgICAgICAgY29uc3QgbmV3RmlsZUNvbnRlbnRzID0gZmlsZUNvbnRlbnRzLnJlcGxhY2UocGlubmVkQXRTdHJpbmcsXCJcIik7XHJcbiAgICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KHF1ZXJ5RmlsZSxuZXdGaWxlQ29udGVudHMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVEZWxldGVNZW1vSW5GaWxlID0gYXN5bmMgKGZpbGU6IFRGaWxlLCBmaWxlQ29udGVudDogc3RyaW5nLCBtZW1vQ29udGVudDogc3RyaW5nLCBwaW5uZWRBdERhdGVJRDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+e1xyXG5cclxuICAgIGNvbnN0IHsgdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICAgIGxldCBuZXdDb250ZW50O1xyXG4gICAgaWYoZmlsZUNvbnRlbnQgPT09IFwiXCIpe1xyXG4gICAgICAgIG5ld0NvbnRlbnQgPSBtZW1vQ29udGVudCArIFwiIHBpbm5lZEF0OiBcIiArIHBpbm5lZEF0RGF0ZUlEO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgbmV3Q29udGVudCA9IGZpbGVDb250ZW50ICsgXCJcXG5cIiArIG1lbW9Db250ZW50ICsgXCIgcGlubmVkQXQ6IFwiICsgcGlubmVkQXREYXRlSUQ7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgdmF1bHQubW9kaWZ5KGZpbGUsIG5ld0NvbnRlbnQpO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZXF1ZXJ5RmlsZSA9IGFzeW5jIChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFRGaWxlPiA9PiB7XHJcbiAgICBjb25zdCB7IHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBjcmVhdGVkRmlsZSA9IGF3YWl0IHZhdWx0LmNyZWF0ZShwYXRoLCBcIlwiKTtcclxuICAgICAgICByZXR1cm4gY3JlYXRlZEZpbGU7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBmaWxlOiAnJHtwYXRofSdgLCBlcnIpO1xyXG4gICAgICAgIG5ldyBOb3RpY2UoXCJVbmFibGUgdG8gY3JlYXRlIG5ldyBmaWxlLlwiKTtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pO1xyXG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG5jb25zdCBleHRyYWN0UGlubmVkQXRmcm9tVGV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eKFxcZHsxNH0pKFxcZHsxLH0pXFxzKC4rKVxccyhcXFsoLispXFxdKShcXHNwaW5uZWRBdFxcOiAoXFxkezE0LH0pKSQvLmV4ZWMobGluZSk/Lls2XVxyXG4iLCIvLyBpbXBvcnQgdXRpbHMgZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmltcG9ydCB7IGZpbmRRdWVyeSB9IGZyb20gXCIuLi9vYkNvbXBvbmVudHMvb2JHZXRRdWVyaWVzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZU9ic2lkaWFuUXVlcnkgfSBmcm9tIFwiLi4vb2JDb21wb25lbnRzL29iQ3JlYXRlUXVlcnlcIjtcclxuaW1wb3J0IHsgZ2V0TWVtb3MgfSBmcm9tIFwiLi4vb2JDb21wb25lbnRzL29iR2V0TWVtb3NcIjtcclxuaW1wb3J0IHsgdXBkYXRlT2JzaWRpYW5RdWVyeSB9IGZyb20gXCIuLi9vYkNvbXBvbmVudHMvb2JVcGRhdGVRdWVyeVwiO1xyXG5pbXBvcnQgeyBvYkhpZGVNZW1vIH0gZnJvbSBcIi4uL29iQ29tcG9uZW50cy9vYkhpZGVNZW1vXCI7XHJcbmltcG9ydCB7IGRlbGV0ZUZvcmV2ZXIsIGdldERlbGV0ZWRNZW1vcywgcmVzdG9yZURlbGV0ZWRNZW1vIH0gZnJvbSBcIi4uL29iQ29tcG9uZW50cy9vYkRlbGV0ZU1lbW9cIjtcclxuaW1wb3J0IHsgZGVsZXRlUXVlcnlGb3JldmVyIH0gZnJvbSBcIi4uL29iQ29tcG9uZW50cy9vYkRlbGV0ZVF1ZXJ5XCI7XHJcbmltcG9ydCB7IHBpblF1ZXJ5SW5GaWxlLCB1bnBpblF1ZXJ5SW5GaWxlIH0gZnJvbSBcIi4uL29iQ29tcG9uZW50cy9vYlBpblF1ZXJ5XCI7XHJcblxyXG5cclxuLy8gdHlwZSBSZXNwb25zZVR5cGU8VCA9IHVua25vd24+ID0ge1xyXG4vLyAgIHN1Y2NlZWQ6IGJvb2xlYW47XHJcbi8vICAgbWVzc2FnZTogc3RyaW5nO1xyXG4vLyAgIGRhdGE6IFQ7XHJcbi8vIH07XHJcblxyXG4vLyB0eXBlIFJlcXVlc3RDb25maWcgPSB7XHJcbi8vICAgbWV0aG9kOiBzdHJpbmc7XHJcbi8vICAgdXJsOiBzdHJpbmc7XHJcbi8vICAgZGF0YT86IGFueTtcclxuLy8gICBkYXRhVHlwZT86IFwianNvblwiIHwgXCJmaWxlXCI7XHJcbi8vIH07XHJcblxyXG4vLyBhc3luYyBmdW5jdGlvbiByZXF1ZXN0PFQ+KGNvbmZpZzogUmVxdWVzdENvbmZpZyk6IFByb21pc2U8UmVzcG9uc2VUeXBlPFQ+PiB7XHJcbi8vICAgY29uc3QgeyBtZXRob2QsIHVybCwgZGF0YSwgZGF0YVR5cGUgfSA9IGNvbmZpZztcclxuLy8gICBjb25zdCByZXF1ZXN0Q29uZmlnOiBSZXF1ZXN0SW5pdCA9IHtcclxuLy8gICAgIG1ldGhvZCxcclxuLy8gICB9O1xyXG5cclxuLy8gICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcbi8vICAgICBpZiAoZGF0YVR5cGUgPT09IFwiZmlsZVwiKSB7XHJcbi8vICAgICAgIHJlcXVlc3RDb25maWcuYm9keSA9IGRhdGE7XHJcbi8vICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICByZXF1ZXN0Q29uZmlnLmhlYWRlcnMgPSB7XHJcbi8vICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbi8vICAgICAgIH07XHJcbi8vICAgICAgIHJlcXVlc3RDb25maWcuYm9keSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuXHJcbi8vICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHJlcXVlc3RDb25maWcpO1xyXG4vLyAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFJlc3BvbnNlVHlwZTxUPjtcclxuXHJcbi8vICAgaWYgKCFyZXNwb25zZURhdGEuc3VjY2VlZCkge1xyXG4vLyAgICAgdGhyb3cgcmVzcG9uc2VEYXRhO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgcmV0dXJuIHJlc3BvbnNlRGF0YTtcclxuLy8gfVxyXG5cclxubmFtZXNwYWNlIGFwaSB7XHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFVzZXJJbmZvKCkge1xyXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Q8TW9kZWwuVXNlcj4oe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAvLyAgIHVybDogXCIvYXBpL3VzZXIvbWVcIixcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gZXhwb3J0IGZ1bmN0aW9uIHNpZ25pbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgLy8gICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgLy8gICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgLy8gICAgIHVybDogXCIvYXBpL2F1dGgvc2lnbmluXCIsXHJcbiAgLy8gICAgIGRhdGE6IHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0sXHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBzaWdudXAodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xyXG4gIC8vICAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gIC8vICAgICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gIC8vICAgICB1cmw6IFwiL2FwaS9hdXRoL3NpZ251cFwiLFxyXG4gIC8vICAgICBkYXRhOiB7IHVzZXJuYW1lLCBwYXNzd29yZCB9LFxyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBleHBvcnQgZnVuY3Rpb24gc2lnbm91dCgpIHtcclxuICAvLyAgIHJldHVybiByZXF1ZXN0KHtcclxuICAvLyAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAvLyAgICAgdXJsOiBcIi9hcGkvYXV0aC9zaWdub3V0XCIsXHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVXNlcm5hbWVVc2FibGUodXNlcm5hbWU6IHN0cmluZykge1xyXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Q8Ym9vbGVhbj4oe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgLy8gICB1cmw6IFwiL2FwaS91c2VyL2NoZWNrdXNlcm5hbWVcIixcclxuICAgIC8vICAgZGF0YTogeyB1c2VybmFtZSB9LFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIGV4cG9ydCBmdW5jdGlvbiBjaGVja1Bhc3N3b3JkVmFsaWQocGFzc3dvcmQ6IHN0cmluZykge1xyXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Q8Ym9vbGVhbj4oe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgLy8gICB1cmw6IFwiL2FwaS91c2VyL3ZhbGlkcGFzc3dvcmRcIixcclxuICAgIC8vICAgZGF0YTogeyBwYXNzd29yZCB9LFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICBleHBvcnQgZnVuY3Rpb24gdXBkYXRlVXNlcmluZm8odXNlcmluZm86IFBhcnRpYWw8eyB1c2VybmFtZTogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nOyBnaXRodWJOYW1lOiBzdHJpbmcgfT4pIHtcclxuICAgIC8vIHJldHVybiByZXF1ZXN0KHtcclxuICAgIC8vICAgbWV0aG9kOiBcIlBBVENIXCIsXHJcbiAgICAvLyAgIHVybDogXCIvYXBpL3VzZXIvbWVcIixcclxuICAgIC8vICAgZGF0YTogdXNlcmluZm8sXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRNeU1lbW9zKCkge1xyXG4gICAgcmV0dXJuIGF3YWl0IGdldE1lbW9zKCk7XHJcblxyXG5cclxuICAgIC8vIHJldHVybiByZXF1ZXN0PE1vZGVsLk1lbW9bXT4oe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAvLyAgIHVybDogXCIvYXBpL21lbW8vYWxsXCIsXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNeURlbGV0ZWRNZW1vcygpIHtcclxuICAgIHJldHVybiBnZXREZWxldGVkTWVtb3MoKTtcclxuICAgIC8vIHJldHVybiByZXF1ZXN0PE1vZGVsLk1lbW9bXT4oe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAvLyAgIHVybDogXCIvYXBpL21lbW8vYWxsP2RlbGV0ZWQ9dHJ1ZVwiLFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICAvLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVtbyhjb250ZW50OiBzdHJpbmcpIHtcclxuICAvLyAgIHJldHVybiBjcmVhdGVNZW1vcyhjb250ZW50KTtcclxuICAvLyAgIC8vIHJldHVybiByZXF1ZXN0PE1vZGVsLk1lbW8+KHtcclxuICAvLyAgIC8vICAgbWV0aG9kOiBcIlBVVFwiLFxyXG4gIC8vICAgLy8gICB1cmw6IFwiL2FwaS9tZW1vL1wiLFxyXG4gIC8vICAgLy8gICBkYXRhOiB7IGNvbnRlbnQgfSxcclxuICAvLyAgIC8vIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAvLyBleHBvcnQgZnVuY3Rpb24gdXBkYXRlTWVtbyhtZW1vSWQ6IHN0cmluZywgY29udGVudDogc3RyaW5nKSB7XHJcbiAgLy8gICAvLyByZXR1cm4gcmVxdWVzdDxNb2RlbC5NZW1vPih7XHJcbiAgLy8gICAvLyAgIG1ldGhvZDogXCJQQVRDSFwiLFxyXG4gIC8vICAgLy8gICB1cmw6IGAvYXBpL21lbW8vJHttZW1vSWR9YCxcclxuICAvLyAgIC8vICAgZGF0YTogeyBjb250ZW50IH0sXHJcbiAgLy8gICAvLyB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGhpZGVNZW1vKG1lbW9JZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gb2JIaWRlTWVtbyhtZW1vSWQpO1xyXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiUEFUQ0hcIixcclxuICAgIC8vICAgdXJsOiBgL2FwaS9tZW1vLyR7bWVtb0lkfWAsXHJcbiAgICAvLyAgIGRhdGE6IHtcclxuICAgIC8vICAgICBkZWxldGVkQXQ6IHV0aWxzLmdldERhdGVUaW1lU3RyaW5nKERhdGUubm93KCkpLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIGV4cG9ydCBmdW5jdGlvbiByZXN0b3JlTWVtbyhtZW1vSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHJlc3RvcmVEZWxldGVkTWVtbyhtZW1vSWQpO1xyXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiUEFUQ0hcIixcclxuICAgIC8vICAgdXJsOiBgL2FwaS9tZW1vLyR7bWVtb0lkfWAsXHJcbiAgICAvLyAgIGRhdGE6IHtcclxuICAgIC8vICAgICBkZWxldGVkQXQ6IFwiXCIsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICBleHBvcnQgZnVuY3Rpb24gZGVsZXRlTWVtbyhtZW1vSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGRlbGV0ZUZvcmV2ZXIobWVtb0lkKTtcclxuICAgIC8vIHJldHVybiByZXF1ZXN0KHtcclxuICAgIC8vICAgbWV0aG9kOiBcIkRFTEVURVwiLFxyXG4gICAgLy8gICB1cmw6IGAvYXBpL21lbW8vJHttZW1vSWR9YCxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE15UXVlcmllcygpIHtcclxuICAgIHJldHVybiBmaW5kUXVlcnkoKTtcclxuICAgIC8vIHJldHVybiByZXF1ZXN0PE1vZGVsLlF1ZXJ5W10+KHtcclxuICAgIC8vICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgLy8gICB1cmw6IFwiL2FwaS9xdWVyeS9hbGxcIixcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVRdWVyeSh0aXRsZTogc3RyaW5nLCBxdWVyeXN0cmluZzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gY3JlYXRlT2JzaWRpYW5RdWVyeSh0aXRsZSwgcXVlcnlzdHJpbmcpO1xyXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Q8TW9kZWwuUXVlcnk+KHtcclxuICAgIC8vICAgbWV0aG9kOiBcIlBVVFwiLFxyXG4gICAgLy8gICB1cmw6IFwiL2FwaS9xdWVyeS9cIixcclxuICAgIC8vICAgZGF0YTogeyB0aXRsZSwgcXVlcnlzdHJpbmcgfSxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIGV4cG9ydCBmdW5jdGlvbiB1cGRhdGVRdWVyeShxdWVyeUlkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHF1ZXJ5c3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB1cGRhdGVPYnNpZGlhblF1ZXJ5KHF1ZXJ5SWQsIHRpdGxlLCBxdWVyeXN0cmluZyk7XHJcbiAgICAvLyByZXR1cm4gcmVxdWVzdDxNb2RlbC5RdWVyeT4oe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiUEFUQ0hcIixcclxuICAgIC8vICAgdXJsOiBgL2FwaS9xdWVyeS8ke3F1ZXJ5SWR9YCxcclxuICAgIC8vICAgZGF0YTogeyB0aXRsZSwgcXVlcnlzdHJpbmcgfSxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWxldGVRdWVyeUJ5SWQocXVlcnlJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gZGVsZXRlUXVlcnlGb3JldmVyKHF1ZXJ5SWQpO1xyXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgLy8gICBtZXRob2Q6IFwiREVMRVRFXCIsXHJcbiAgICAvLyAgIHVybDogYC9hcGkvcXVlcnkvJHtxdWVyeUlkfWAsXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICBleHBvcnQgZnVuY3Rpb24gcGluUXVlcnkocXVlcnlJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gcGluUXVlcnlJbkZpbGUocXVlcnlJZCk7XHJcbiAgICAvLyByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICAvLyAgIG1ldGhvZDogXCJQQVRDSFwiLFxyXG4gICAgLy8gICB1cmw6IGAvYXBpL3F1ZXJ5LyR7cXVlcnlJZH1gLFxyXG4gICAgLy8gICBkYXRhOiB7IHBpbm5lZEF0OiB1dGlscy5nZXREYXRlVGltZVN0cmluZyhEYXRlLm5vdygpKSB9LFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHVucGluUXVlcnkocXVlcnlJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdW5waW5RdWVyeUluRmlsZShxdWVyeUlkKTtcclxuICAgIC8vIHJldHVybiByZXF1ZXN0KHtcclxuICAgIC8vICAgbWV0aG9kOiBcIlBBVENIXCIsXHJcbiAgICAvLyAgIHVybDogYC9hcGkvcXVlcnkvJHtxdWVyeUlkfWAsXHJcbiAgICAvLyAgIGRhdGE6IHsgcGlubmVkQXQ6IFwiXCIgfSxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIC8vIGV4cG9ydCBmdW5jdGlvbiB1cGxvYWRGaWxlKGZvcm1EYXRhOiBGb3JtRGF0YSkge1xyXG4gIC8vICAgLy8gcmV0dXJuIHJlcXVlc3Q8TW9kZWwuUmVzb3VyY2U+KHtcclxuICAvLyAgIC8vICAgbWV0aG9kOiBcIlBVVFwiLFxyXG4gIC8vICAgLy8gICB1cmw6IFwiL2FwaS9yZXNvdXJjZS9cIixcclxuICAvLyAgIC8vICAgZGF0YTogZm9ybURhdGEsXHJcbiAgLy8gICAvLyAgIGRhdGFUeXBlOiBcImZpbGVcIixcclxuICAvLyAgIC8vIH0pO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgYXBpO1xyXG4iLCIvLyDnp7vliqjnq6/moLflvI/pgILphY3pop3lpJbnsbvlkI1cclxuZXhwb3J0IGNvbnN0IFNIT1dfU0lERVJCQVJfTU9CSUxFX0NMQVNTTkFNRSA9IFwibW9iaWxlLXNob3ctc2lkZWJhclwiO1xyXG5cclxuLy8g6buY6K6k5Yqo55S75oyB57ut5pe26ZW/XHJcbmV4cG9ydCBjb25zdCBBTklNQVRJT05fRFVSQVRJT04gPSAyMDA7XHJcblxyXG4vLyB0b2FzdCDliqjnlLvmjIHnu63ml7bplb9cclxuZXhwb3J0IGNvbnN0IFRPQVNUX0FOSU1BVElPTl9EVVJBVElPTiA9IDQwMDtcclxuXHJcbi8vIOS4gOWkqeeahOavq+enkuaVsFxyXG5leHBvcnQgY29uc3QgREFJTFlfVElNRVNUQU1QID0gMzYwMCAqIDI0ICogMTAwMDtcclxuXHJcbi8vIOagh+etviDmraPliJlcclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuZXhwb3J0IGNvbnN0IFRBR19SRUcgPSAvXFxzIyhbXFxwe0xldHRlcn1cXHB7RW1vamlfUHJlc2VudGF0aW9ufVxccHtOdW1iZXJ9XFwvXy1dKykvZ3U7XHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmV4cG9ydCBjb25zdCBGSVJTVF9UQUdfUkVHID0gLyg8cD4pIyhbXFxwe0xldHRlcn1cXHB7RW1vamlfUHJlc2VudGF0aW9ufVxccHtOdW1iZXJ9XFwvXy1dKykvZ3U7XHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmV4cG9ydCBjb25zdCBOT1BfRklSU1RfVEFHX1JFRyA9IC9eIyhbXFxwe0xldHRlcn1cXHB7RW1vamlfUHJlc2VudGF0aW9ufVxccHtOdW1iZXJ9XFwvXy1dKykvZ3U7XHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmV4cG9ydCBjb25zdCBBTExfVEFHX1JFRyA9IC8oW1xccHtMZXR0ZXJ9XFxwe0Vtb2ppX1ByZXNlbnRhdGlvbn1cXHB7TnVtYmVyfVxcL18tXSspL3VcclxuXHJcbi8vIFVSTCDmraPliJlcclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuZXhwb3J0IGNvbnN0IExJTktfUkVHID0gLyhcXHN877yafD4pKChodHRwfGZ0cHxodHRwcyk6XFwvXFwvKFtcXHdfLV0rKD86KD86XFwuW1xcd18tXSspKykpKFtcXHcuLEA/Xj0lJjpcXC9+KyMtXSpbXFx3QD9ePSUmXFwvfisjLV0pKS9nO1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IENIRUNLX0xJTktfUkVHID0gLyhcXCgoXFxzKikpKGh0dHB8ZnRwfGh0dHBzKTpcXC9cXC8oW1xcd18tXSsoPzooPzpcXC5bXFx3Xy1dKykrKSkoW1xcdy4sQD9ePSUmOlxcL34rIy1dKltcXHdAP149JSZcXC9+KyMtXSkvZztcclxuLy8gZXhwb3J0IGNvbnN0IExJTktfUkVHID0gLyhodHRwcz86XFwvXFwvW15cXHM8XFxcXCo+J10rKS9nO1xyXG5cclxuXHJcbi8vIE1BUktET1dOIFVSTCDmraPliJlcclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuZXhwb3J0IGNvbnN0IE1EX0xJTktfUkVHID0gL1xcWyhbXFxzXFxTXSo/KVxcXVxcKChbXFxzXFxTXSo/KVxcKS9ndTtcclxuXHJcbi8vIOWbvueJhyDmraPliJlcclxuZXhwb3J0IGNvbnN0IElNQUdFX1VSTF9SRUcgPSAvKFteXFxzPFxcXFwqPiddK1xcLihqcGVnfGpwZ3xnaWZ8cG5nfHN2ZykpKFxcXVxcXSk/KFxcKSk/L2c7XHJcblxyXG4vLyBNYXJrZG93biDlhoXpg6jlm77niYfmraPliJkgXHJcbi8vIEdyb3VwIDEg5Li65Zu+54mHXHJcbi8vIEdyb3VwIDIg5Li657yp5pS+5q+U5L6LXHJcbmV4cG9ydCBjb25zdCBNQVJLRE9XTl9VUkxfUkVHID0gLyghXFxbKFteXFxdXSopKFxcfCk/KC4qPylcXF1cXCgoLio/KShcIig/Oi4qW15cIl0pXCIpP1xccypcXCkpL2c7XHJcblxyXG4vLyDmo4DmtYvmmK/lkKbkuLrlpJbpg6jlm77niYdcclxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuZXhwb3J0IGNvbnN0IE1BUktET1dOX1dFQl9VUkxfUkVHID0gLyhcXHN877yafF4pKGh0dHBbc10/OlxcL1xcLykoW15cXC9cXHNdK1xcLykoLio/KShqcGVnfGpwZ3xnaWZ8cG5nfHN2Z3xibXB8d2VwZykoPyFcXCkpL2c7XHJcblxyXG5cclxuLy8gV2lraSDlm77niYfmraPliJlcclxuLy8gR3JvdXAgMSDkuLrlm77niYdcclxuLy8gR3JvdXAgNSDkuLrnvKnmlL7mr5TkvotcclxuZXhwb3J0IGNvbnN0IFdJS0lfSU1BR0VfVVJMX1JFRyA9IC8hXFxbXFxbKCguKj8pXFwuKGpwZWd8anBnfGdpZnxwbmd8c3ZnfGJtcHx3ZXBnKSk/KFxcfCk/KC4qPylcXF1cXF0vZztcclxuXHJcbi8vIG1lbW8g5YWz6IGU5q2j5YiZXHJcbmV4cG9ydCBjb25zdCBNRU1PX0xJTktfUkVHID0gL1xcW0AoLis/KVxcXVxcKCguKz8pXFwpL2c7XHJcblxyXG5cclxuLy8gSW50ZXJuYWwgIiwiaW1wb3J0IGFwaSBmcm9tIFwiLi4vaGVscGVycy9hcGlcIjtcclxuaW1wb3J0IHsgTk9QX0ZJUlNUX1RBR19SRUcsIFRBR19SRUcgfSBmcm9tIFwiLi4vaGVscGVycy9jb25zdHNcIjtcclxuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi9oZWxwZXJzL3V0aWxzXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCB7IHdhaXRGb3JJbnNlcnQgfSBmcm9tIFwiLi4vb2JDb21wb25lbnRzL29iQ3JlYXRlTWVtb1wiO1xyXG5pbXBvcnQgeyBjaGFuZ2VNZW1vIH0gZnJvbSBcIi4uL29iQ29tcG9uZW50cy9vYlVwZGF0ZU1lbW9cIjtcclxuLy8gaW1wb3J0IHVzZXJTZXJ2aWNlIGZyb20gXCIuL3VzZXJTZXJ2aWNlXCI7XHJcblxyXG5jbGFzcyBNZW1vU2VydmljZSB7XHJcbiAgcHVibGljIGluaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBnZXRTdGF0ZSgpIHtcclxuICAgIHJldHVybiBhcHBTdG9yZS5nZXRTdGF0ZSgpLm1lbW9TdGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBmZXRjaEFsbE1lbW9zKCkge1xyXG4gICAgLy8gaWYgKCF1c2VyU2VydmljZS5nZXRTdGF0ZSgpLnVzZXIpIHtcclxuICAgIC8vICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgYXBpLmdldE15TWVtb3MoKTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0TXlNZW1vcygpO1xyXG4gICAgY29uc3QgbWVtb3MgPSBbXSBhcyBhbnlbXTtcclxuICAgIGZvciAoY29uc3QgbSBvZiBkYXRhKSB7XHJcbiAgICAgIG1lbW9zLnB1c2gobSk7XHJcbiAgICB9XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX01FTU9TXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBtZW1vcyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWVtb3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZmV0Y2hEZWxldGVkTWVtb3MoKSB7XHJcbiAgICAvLyBpZiAoIXVzZXJTZXJ2aWNlLmdldFN0YXRlKCkudXNlcikge1xyXG4gICAgLy8gICByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaS5nZXRNeURlbGV0ZWRNZW1vcygpO1xyXG4gICAgZGF0YS5zb3J0KChhOiB7IGRlbGV0ZWRBdDogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZTsgfSwgYjogeyBkZWxldGVkQXQ6IHN0cmluZyB8IG51bWJlciB8IERhdGU7IH0pID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmRlbGV0ZWRBdCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5kZWxldGVkQXQpKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHB1c2hNZW1vKG1lbW86IE1vZGVsLk1lbW8pIHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJJTlNFUlRfTUVNT1wiLFxyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgbWVtbzoge1xyXG4gICAgICAgICAgLi4ubWVtbyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TWVtb0J5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgZm9yIChjb25zdCBtIG9mIHRoaXMuZ2V0U3RhdGUoKS5tZW1vcykge1xyXG4gICAgICBpZiAobS5pZCA9PT0gaWQpIHtcclxuICAgICAgICByZXR1cm4gbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhpZGVNZW1vQnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICBhd2FpdCBhcGkuaGlkZU1lbW8oaWQpO1xyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIkRFTEVURV9NRU1PX0JZX0lEXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBpZDogaWQsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXN0b3JlTWVtb0J5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgYXdhaXQgYXBpLnJlc3RvcmVNZW1vKGlkKTtcclxuICAgIC8vIG1lbW9TZXJ2aWNlLmNsZWFyTWVtb3MoKTtcclxuICAgIC8vIG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkZWxldGVNZW1vQnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICBhd2FpdCBhcGkuZGVsZXRlTWVtbyhpZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdE1lbW8obWVtbzogTW9kZWwuTWVtbykge1xyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIkVESVRfTUVNT1wiLFxyXG4gICAgICBwYXlsb2FkOiBtZW1vLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVGFnc1N0YXRlKCkge1xyXG4gICAgY29uc3QgeyBtZW1vcyB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xyXG4gICAgY29uc3QgdGFnc1NldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgZm9yIChjb25zdCBtIG9mIG1lbW9zKSB7XHJcbiAgICAgIGZvciAoY29uc3QgdCBvZiBBcnJheS5mcm9tKG0uY29udGVudC5tYXRjaChUQUdfUkVHKSA/PyBbXSkpIHtcclxuICAgICAgICB0YWdzU2V0LmFkZCh0LnJlcGxhY2UoVEFHX1JFRywgXCIkMVwiKS50cmltKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAoY29uc3QgdCBvZiBBcnJheS5mcm9tKG0uY29udGVudC5tYXRjaChOT1BfRklSU1RfVEFHX1JFRykgPz8gW10pKSB7XHJcbiAgICAgICAgdGFnc1NldC5hZGQodC5yZXBsYWNlKE5PUF9GSVJTVF9UQUdfUkVHLCBcIiQxXCIpLnRyaW0oKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX1RBR1NcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIHRhZ3M6IEFycmF5LmZyb20odGFnc1NldCksXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhck1lbW9zKCkge1xyXG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBcIlNFVF9NRU1PU1wiLFxyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgbWVtb3M6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0TGlua2VkTWVtb3MobWVtb0lkOiBzdHJpbmcpOiBQcm9taXNlPE1vZGVsLk1lbW9bXT4ge1xyXG4gICAgY29uc3QgeyBtZW1vcyB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xyXG4gICAgcmV0dXJuIG1lbW9zLmZpbHRlcigobSkgPT4gbS5jb250ZW50LmluY2x1ZGVzKG1lbW9JZCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZU1lbW8odGV4dDogc3RyaW5nLCBpc0xpc3Q6IGJvb2xlYW4pOiBQcm9taXNlPE1vZGVsLk1lbW8+IHtcclxuICAgIGNvbnN0IG1lbW8gPSBhd2FpdCB3YWl0Rm9ySW5zZXJ0KHRleHQsIGlzTGlzdCk7XHJcbiAgICByZXR1cm4gbWVtbztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVNZW1vKG1lbW9JZDogc3RyaW5nLCBvcmlnaW5hbFRleHQ6IHN0cmluZywgdGV4dDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPE1vZGVsLk1lbW8+IHtcclxuICAgIGNvbnN0IG1lbW8gPSBhd2FpdCBjaGFuZ2VNZW1vKG1lbW9JZCwgb3JpZ2luYWxUZXh0LCB0ZXh0LCB0eXBlKTtcclxuICAgIHJldHVybiBtZW1vO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgbWVtb1NlcnZpY2UgPSBuZXcgTWVtb1NlcnZpY2UoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG1lbW9TZXJ2aWNlO1xyXG4iLCIvLyBpbXBvcnQgdXNlclNlcnZpY2UgZnJvbSBcIi4vdXNlclNlcnZpY2VcIjtcclxuaW1wb3J0IGFwaSBmcm9tIFwiLi4vaGVscGVycy9hcGlcIjtcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuXHJcbmNsYXNzIFF1ZXJ5U2VydmljZSB7XHJcbiAgcHVibGljIGdldFN0YXRlKCkge1xyXG4gICAgcmV0dXJuIGFwcFN0b3JlLmdldFN0YXRlKCkucXVlcnlTdGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRNeUFsbFF1ZXJpZXMoKSB7XHJcbiAgICAvLyBpZiAoIXVzZXJTZXJ2aWNlLmdldFN0YXRlKCkudXNlcikge1xyXG4gICAgLy8gICByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBhcGkuZ2V0TXlRdWVyaWVzKCk7XHJcbiAgICAvLyBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAvLyAgIHR5cGU6IFwiU0VUX1FVRVJJRVNcIixcclxuICAgIC8vICAgcGF5bG9hZDoge1xyXG4gICAgLy8gICAgIHF1ZXJpZXM6IGRhdGEsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyB9KTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0TXlRdWVyaWVzKCk7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiU0VUX1FVRVJJRVNcIixcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIHF1ZXJpZXM6IGRhdGEsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFF1ZXJ5QnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICBmb3IgKGNvbnN0IHEgb2YgdGhpcy5nZXRTdGF0ZSgpLnF1ZXJpZXMpIHtcclxuICAgICAgaWYgKHEuaWQgPT09IGlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXNoUXVlcnkocXVlcnk6IE1vZGVsLlF1ZXJ5KSB7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiSU5TRVJUX1FVRVJZXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBxdWVyeToge1xyXG4gICAgICAgICAgLi4ucXVlcnksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVkaXRRdWVyeShxdWVyeTogTW9kZWwuUXVlcnkpIHtcclxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcclxuICAgICAgdHlwZTogXCJVUERBVEVfUVVFUllcIixcclxuICAgICAgcGF5bG9hZDogcXVlcnksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkZWxldGVRdWVyeShxdWVyeUlkOiBzdHJpbmcpIHtcclxuICAgIGF3YWl0IGFwaS5kZWxldGVRdWVyeUJ5SWQocXVlcnlJZCk7XHJcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IFwiREVMRVRFX1FVRVJZX0JZX0lEXCIsXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBpZDogcXVlcnlJZCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZVF1ZXJ5KHRpdGxlOiBzdHJpbmcsIHF1ZXJ5c3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRhdGEgID0gYXdhaXQgYXBpLmNyZWF0ZVF1ZXJ5KHRpdGxlLCBxdWVyeXN0cmluZyk7XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVRdWVyeShxdWVyeUlkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHF1ZXJ5c3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkudXBkYXRlUXVlcnkocXVlcnlJZCwgdGl0bGUsIHF1ZXJ5c3RyaW5nKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBpblF1ZXJ5KHF1ZXJ5SWQ6IHN0cmluZykge1xyXG4gICAgYXdhaXQgYXBpLnBpblF1ZXJ5KHF1ZXJ5SWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVucGluUXVlcnkocXVlcnlJZDogc3RyaW5nKSB7XHJcbiAgICBhd2FpdCBhcGkudW5waW5RdWVyeShxdWVyeUlkKTtcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IHF1ZXJ5U2VydmljZSA9IG5ldyBRdWVyeVNlcnZpY2UoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHF1ZXJ5U2VydmljZTtcclxuIiwiLy8gaW1wb3J0IGFwaSBmcm9tIFwiLi4vaGVscGVycy9hcGlcIjtcclxuXHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgY3JlYXRlRGFpbHlOb3RlLCBnZXRBbGxEYWlseU5vdGVzLCBnZXREYWlseU5vdGUgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcblxyXG4vLyBpbnRlcmZhY2UgRmlsZURhdGEge1xyXG4vLyAgIGJ1ZmZlcjogQXJyYXlCdWZmZXI7XHJcbi8vICAgbWltZVR5cGU6IHN0cmluZztcclxuLy8gICBvcmlnaW5hbE5hbWU6IHN0cmluZztcclxuLy8gfVxyXG5cclxuY2xhc3MgUmVzb3VyY2VTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBVcGxvYWQgcmVzb3VyY2UgZmlsZSB0byBzZXJ2ZXIsXHJcbiAgICogQHBhcmFtIGZpbGUgZmlsZVxyXG4gICAqIEByZXR1cm5zIHJlc291cmNlOiBpZCwgZmlsZW5hbWVcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgdXBsb2FkKGZpbGU6IEZpbGUpIHtcclxuICAgIC8vIGNvbnN0IHsgbmFtZTogZmlsZW5hbWUsIHNpemUgfSA9IGZpbGU7XHJcblxyXG4gICAgY29uc3QgeyB2YXVsdCxmaWxlTWFuYWdlciB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG5cclxuICAgIGNvbnN0IGZpbGVBcnJheSA9IGF3YWl0IGZpbGUuYXJyYXlCdWZmZXIoKTtcclxuICAgIGNvbnN0IGV4dCA9IGdldEV4dChmaWxlLnR5cGUpO1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKG5ld09uZSk7XHJcblxyXG4gICAgLy8gY29uc3QgZmlsZU5hbWUgPSBcIlBhc3RlIEltYWdlIFwiICsgbW9tZW50KCkuZm9ybWF0KFwiWVlZWU1NRERISG1tc3NcIik7XHJcbiAgICBjb25zdCBkYWlseU5vdGVzID0gZ2V0QWxsRGFpbHlOb3RlcygpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpO1xyXG4gICAgY29uc3QgZXhpc3RpbmdGaWxlID0gZ2V0RGFpbHlOb3RlKGRhdGUsIGRhaWx5Tm90ZXMpO1xyXG4gICAgbGV0IG5ld0ZpbGU7XHJcbiAgICBpZighZXhpc3RpbmdGaWxlKXtcclxuICAgICAgY29uc3QgZGFpbHlGaWxlID0gYXdhaXQgY3JlYXRlRGFpbHlOb3RlKGRhdGUpO1xyXG4gICAgICBuZXdGaWxlID0gYXdhaXQgdmF1bHQuY3JlYXRlQmluYXJ5KFxyXG4gICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgICAgICAgYXdhaXQgdmF1bHQuZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzKGBQYXN0ZWQgSW1hZ2UgJHttb21lbnQoKS5mb3JtYXQoXCJZWVlZTU1EREhIbW1zc1wiKX1gLCBleHQsIGRhaWx5RmlsZSksXHJcbiAgICAgICAgZmlsZUFycmF5XHJcbiAgICAgICk7XHJcbiAgICB9ZWxzZSBpZihleGlzdGluZ0ZpbGUgaW5zdGFuY2VvZiBURmlsZSl7XHJcbiAgICAgIG5ld0ZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGVCaW5hcnkoXHJcbiAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICBhd2FpdCB2YXVsdC5nZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMoYFBhc3RlZCBJbWFnZSAke21vbWVudCgpLmZvcm1hdChcIllZWVlNTURESEhtbXNzXCIpfWAsIGV4dCwgZXhpc3RpbmdGaWxlKSxcclxuICAgICAgICBmaWxlQXJyYXlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0ZpbGVQYXRoID0gZmlsZU1hbmFnZXIuZ2VuZXJhdGVNYXJrZG93bkxpbmsobmV3RmlsZSwgbmV3RmlsZS5wYXRoLCBcIlwiLFwiXCIpO1xyXG5cclxuICAgIHJldHVybiBuZXdGaWxlUGF0aDtcclxuXHJcbiAgICAvLyBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IHZhdWx0LmdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyhmaWxlTmFtZSwgXCJwbmdcIiwgXCJcIik7XHJcblxyXG4gICAgLy8gY29uc3QgIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAvLyByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZS5hcnJheUJ1ZmZlcik7XHJcbiAgICAvLyByZWFkZXIub25sb2FkID0gKCkgPT57XHJcbiAgICAvLyAgIC8vIGNvbnNvbGUubG9nKCdSRVNVTFQnLCByZWFkZXIucmVzdWx0KVxyXG4gICAgLy8gICBmaWxlQXJyYXJ5ID0gcmVhZGVyLnJlc3VsdDtcclxuICAgIC8vICAgY29uc29sZS5sb2coZmlsZUFycmFyeSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gaWYgKHNpemUgPiA1IDw8IDIwKSB7XHJcbiAgICAvLyAgIHJldHVybiBQcm9taXNlLnJlamVjdChcIui2hei/h+acgOWkp+aWh+S7tuWkp+WwjyA1TWJcIik7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuXHJcbiAgICAvLyBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUsIGZpbGVuYW1lKTtcclxuXHJcbiAgICAvLyBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGFwaS51cGxvYWRGaWxlKGZvcm1EYXRhKTtcclxuICB9XHJcbn1cclxuXHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmNvbnN0IGdldEV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eaW1hZ2VcXC8oLispJC8uZXhlYyhsaW5lKT8uWzFdXHJcblxyXG5jb25zdCByZXNvdXJjZVNlcnZpY2UgPSBuZXcgUmVzb3VyY2VTZXJ2aWNlKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCByZXNvdXJjZVNlcnZpY2U7XHJcbiIsImNvbnN0IGdldEluaXRpYWxBY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJpbml0aWFsVGV4dFwiLFxuICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICBzZWxlY3Rpb25TdGFydDogMCxcbiAgICAgICAgc2VsZWN0aW9uRW5kOiAwLFxuICAgIH07XG59O1xuY29uc3QgZGVmYXVsdENvbmZpZyA9IHtcbiAgICBpbml0aWFsVmFsdWU6IFwiXCIsXG4gICAgaW50ZXJ2YWw6IDMwMCxcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaW55VW5kbyB7XG4gICAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnID0gZGVmYXVsdENvbmZpZykge1xuICAgICAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xuICAgICAgICB0aGlzLnJ1blVuZG8gPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0uc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0udmFsdWU7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY3Vyc29yUG9zaXRpb24sIGN1cnNvclBvc2l0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ydW5SZWRvID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5hY3Rpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSB0aGlzLmFjdGlvbnNbdGhpcy5jdXJyZW50SW5kZXhdLnNlbGVjdGlvbkVuZDtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0udmFsdWU7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY3Vyc29yUG9zaXRpb24sIGN1cnNvclBvc2l0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5nZXRBY3Rpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucztcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSA9IChhY3Rpb25zLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLmFjdGlvbnNdO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBpbmRleCA8IHRoaXMuYWN0aW9ucy5sZW5ndGggPyBpbmRleCA6IHRoaXMuYWN0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZSgpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJlc2V0U3RhdGUgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSBbZ2V0SW5pdGlhbEFjdGlvbigpXTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ybUV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlID0gKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVFbGVtZW50S2V5ZG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5Ym9hcmRFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQua2V5ID09PSBcInpcIiAmJiAha2V5Ym9hcmRFdmVudC5zaGlmdEtleSAmJiAoa2V5Ym9hcmRFdmVudC5tZXRhS2V5IHx8IGtleWJvYXJkRXZlbnQuY3RybEtleSkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMucnVuVW5kbygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoKGtleWJvYXJkRXZlbnQua2V5ID09PSBcInpcIiAmJiBrZXlib2FyZEV2ZW50LnNoaWZ0S2V5ICYmIChrZXlib2FyZEV2ZW50Lm1ldGFLZXkgfHwga2V5Ym9hcmRFdmVudC5jdHJsS2V5KSkgfHxcbiAgICAgICAgICAgICAgICAoa2V5Ym9hcmRFdmVudC5rZXkgPT09IFwieVwiICYmIChrZXlib2FyZEV2ZW50Lm1ldGFLZXkgfHwga2V5Ym9hcmRFdmVudC5jdHJsS2V5KSkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMucnVuUmVkbygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmhhbmRsZUVsZW1lbnRJbnB1dCA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5wdXRFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgY29uc3QgbGFzdEFjdGlvbiA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF07XG4gICAgICAgICAgICB0aGlzLnB1c2hOZXdBY3Rpb24oe1xuICAgICAgICAgICAgICAgIHR5cGU6IGlucHV0RXZlbnQuaW5wdXRUeXBlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmVsZW1lbnQudmFsdWUsXG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0YXJ0OiB0aGlzLmVsZW1lbnQuc2VsZWN0aW9uRW5kIC0gKHRoaXMuZWxlbWVudC52YWx1ZS5sZW5ndGggLSBsYXN0QWN0aW9uLnZhbHVlLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uRW5kOiB0aGlzLmVsZW1lbnQuc2VsZWN0aW9uRW5kLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5oYW5kbGVFbGVtZW50S2V5ZG93bik7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIHRoaXMuaGFuZGxlRWxlbWVudElucHV0KTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ybUV2ZW50TGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuaGFuZGxlRWxlbWVudEtleWRvd24pO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB0aGlzLmhhbmRsZUVsZW1lbnRJbnB1dCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucHVzaE5ld0FjdGlvbiA9IChhY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RBY3Rpb24gPSB0aGlzLmFjdGlvbnNbdGhpcy5jdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgaWYgKGxhc3RBY3Rpb24gJiYgbGFzdEFjdGlvbi50eXBlID09PSBhY3Rpb24udHlwZSAmJiBhY3Rpb24udGltZXN0YW1wIC0gbGFzdEFjdGlvbi50aW1lc3RhbXAgPCB0aGlzLmNvbmZpZy5pbnRlcnZhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGxhc3RBY3Rpb24pLCB7IHZhbHVlOiBhY3Rpb24udmFsdWUsIHNlbGVjdGlvbkVuZDogYWN0aW9uLnNlbGVjdGlvbkVuZCwgdGltZXN0YW1wOiBhY3Rpb24udGltZXN0YW1wIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLm1heFNpemUgJiYgdGhpcy5jdXJyZW50SW5kZXggPj0gdGhpcy5jb25maWcubWF4U2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zWzBdID0gZ2V0SW5pdGlhbEFjdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zW3RoaXMuY3VycmVudEluZGV4XSA9IGFjdGlvbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuc2xpY2UoMCwgdGhpcy5jdXJyZW50SW5kZXggKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2Igb2YgdGhpcy5saXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBjYihbLi4udGhpcy5hY3Rpb25zXSwgdGhpcy5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENvbmZpZyksIGNvbmZpZyk7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5pbml0aWFsQWN0aW9ucyAmJiB0aGlzLmNvbmZpZy5pbml0aWFsQWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmNvbmZpZy5pbml0aWFsQWN0aW9ucztcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5pbml0aWFsSW5kZXggIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbmZpZy5pbml0aWFsSW5kZXggPCB0aGlzLmFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLmNvbmZpZy5pbml0aWFsSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IHRoaXMuYWN0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gW2dldEluaXRpYWxBY3Rpb24oKV07XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuaW5pdGlhbFZhbHVlICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImluc2VydFRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuY29uZmlnLmluaXRpYWxWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TdGFydDogMCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uRW5kOiB0aGlzLmNvbmZpZy5pbml0aWFsVmFsdWUubGVuZ3RoLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdGhpcy5hY3Rpb25zW3RoaXMuY3VycmVudEluZGV4XS52YWx1ZTtcbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuZnVuY3Rpb24gdXNlUmVmcmVzaCgpIHtcclxuICBjb25zdCBbLCBzZXRCb29sZWFuXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgY29uc3QgcmVmcmVzaCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIHNldEJvb2xlYW4oKHBzKSA9PiB7XHJcbiAgICAgIHJldHVybiAhcHM7XHJcbiAgICB9KTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiByZWZyZXNoO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB1c2VSZWZyZXNoO1xyXG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3JlcXVpcmUoXCJvYmplY3QtYXNzaWduXCIpO3ZhciBmPXJlcXVpcmUoXCJyZWFjdFwiKSxnPTYwMTAzO2V4cG9ydHMuRnJhZ21lbnQ9NjAxMDc7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcil7dmFyIGg9U3ltYm9sLmZvcjtnPWgoXCJyZWFjdC5lbGVtZW50XCIpO2V4cG9ydHMuRnJhZ21lbnQ9aChcInJlYWN0LmZyYWdtZW50XCIpfXZhciBtPWYuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIsbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHA9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtcbmZ1bmN0aW9uIHEoYyxhLGspe3ZhciBiLGQ9e30sZT1udWxsLGw9bnVsbDt2b2lkIDAhPT1rJiYoZT1cIlwiK2spO3ZvaWQgMCE9PWEua2V5JiYoZT1cIlwiK2Eua2V5KTt2b2lkIDAhPT1hLnJlZiYmKGw9YS5yZWYpO2ZvcihiIGluIGEpbi5jYWxsKGEsYikmJiFwLmhhc093blByb3BlcnR5KGIpJiYoZFtiXT1hW2JdKTtpZihjJiZjLmRlZmF1bHRQcm9wcylmb3IoYiBpbiBhPWMuZGVmYXVsdFByb3BzLGEpdm9pZCAwPT09ZFtiXSYmKGRbYl09YVtiXSk7cmV0dXJueyQkdHlwZW9mOmcsdHlwZTpjLGtleTplLHJlZjpsLHByb3BzOmQsX293bmVyOm0uY3VycmVudH19ZXhwb3J0cy5qc3g9cTtleHBvcnRzLmpzeHM9cTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiaW1wb3J0ICogYXMganN4UnVudGltZSBmcm9tIFwiRTpcXFxcb2JkZXZcXFxcLm9ic2lkaWFuXFxcXHBsdWdpbnNcXFxcb2JzaWRpYW4tbWVtb3NcXFxcbm9kZV9tb2R1bGVzXFxcXHJlYWN0XFxcXGpzeC1ydW50aW1lLmpzXCJcbmV4cG9ydCBjb25zdCBqc3ggPSBqc3hSdW50aW1lLmpzeFxuZXhwb3J0IGNvbnN0IGpzeHMgPSBqc3hSdW50aW1lLmpzeHNcbmV4cG9ydCBjb25zdCBGcmFnbWVudCA9IGpzeFJ1bnRpbWUuRnJhZ21lbnQiLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuaW50ZXJmYWNlIE9ubHlXaGVuUHJvcHMge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgd2hlbjogYm9vbGVhbjtcclxufVxyXG5cclxuY29uc3QgT25seVdoZW46IFJlYWN0LkZDPE9ubHlXaGVuUHJvcHM+ID0gKHByb3BzOiBPbmx5V2hlblByb3BzKSA9PiB7XHJcbiAgY29uc3QgeyBjaGlsZHJlbiwgd2hlbiB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIHdoZW4gPyA8PntjaGlsZHJlbn08Lz4gOiBudWxsO1xyXG59O1xyXG5cclxuY29uc3QgT25seSA9IE9ubHlXaGVuO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgT25seTtcclxuIiwiLyoganNoaW50IGJyb3dzZXI6IHRydWUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblxuLy8gVGhlIHByb3BlcnRpZXMgdGhhdCB3ZSBjb3B5IGludG8gYSBtaXJyb3JlZCBkaXYuXG4vLyBOb3RlIHRoYXQgc29tZSBicm93c2Vycywgc3VjaCBhcyBGaXJlZm94LFxuLy8gZG8gbm90IGNvbmNhdGVuYXRlIHByb3BlcnRpZXMsIGkuZS4gcGFkZGluZy10b3AsIGJvdHRvbSBldGMuIC0+IHBhZGRpbmcsXG4vLyBzbyB3ZSBoYXZlIHRvIGRvIGV2ZXJ5IHNpbmdsZSBwcm9wZXJ0eSBzcGVjaWZpY2FsbHkuXG52YXIgcHJvcGVydGllcyA9IFtcbiAgJ2RpcmVjdGlvbicsICAvLyBSVEwgc3VwcG9ydFxuICAnYm94U2l6aW5nJyxcbiAgJ3dpZHRoJywgIC8vIG9uIENocm9tZSBhbmQgSUUsIGV4Y2x1ZGUgdGhlIHNjcm9sbGJhciwgc28gdGhlIG1pcnJvciBkaXYgd3JhcHMgZXhhY3RseSBhcyB0aGUgdGV4dGFyZWEgZG9lc1xuICAnaGVpZ2h0JyxcbiAgJ292ZXJmbG93WCcsXG4gICdvdmVyZmxvd1knLCAgLy8gY29weSB0aGUgc2Nyb2xsYmFyIGZvciBJRVxuXG4gICdib3JkZXJUb3BXaWR0aCcsXG4gICdib3JkZXJSaWdodFdpZHRoJyxcbiAgJ2JvcmRlckJvdHRvbVdpZHRoJyxcbiAgJ2JvcmRlckxlZnRXaWR0aCcsXG4gICdib3JkZXJTdHlsZScsXG5cbiAgJ3BhZGRpbmdUb3AnLFxuICAncGFkZGluZ1JpZ2h0JyxcbiAgJ3BhZGRpbmdCb3R0b20nLFxuICAncGFkZGluZ0xlZnQnLFxuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9mb250XG4gICdmb250U3R5bGUnLFxuICAnZm9udFZhcmlhbnQnLFxuICAnZm9udFdlaWdodCcsXG4gICdmb250U3RyZXRjaCcsXG4gICdmb250U2l6ZScsXG4gICdmb250U2l6ZUFkanVzdCcsXG4gICdsaW5lSGVpZ2h0JyxcbiAgJ2ZvbnRGYW1pbHknLFxuXG4gICd0ZXh0QWxpZ24nLFxuICAndGV4dFRyYW5zZm9ybScsXG4gICd0ZXh0SW5kZW50JyxcbiAgJ3RleHREZWNvcmF0aW9uJywgIC8vIG1pZ2h0IG5vdCBtYWtlIGEgZGlmZmVyZW5jZSwgYnV0IGJldHRlciBiZSBzYWZlXG5cbiAgJ2xldHRlclNwYWNpbmcnLFxuICAnd29yZFNwYWNpbmcnLFxuXG4gICd0YWJTaXplJyxcbiAgJ01velRhYlNpemUnXG5cbl07XG5cbnZhciBpc0Jyb3dzZXIgPSAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpO1xudmFyIGlzRmlyZWZveCA9IChpc0Jyb3dzZXIgJiYgd2luZG93Lm1veklubmVyU2NyZWVuWCAhPSBudWxsKTtcblxuZnVuY3Rpb24gZ2V0Q2FyZXRDb29yZGluYXRlcyhlbGVtZW50LCBwb3NpdGlvbiwgb3B0aW9ucykge1xuICBpZighaXNCcm93c2VyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0ZXh0YXJlYS1jYXJldC1wb3NpdGlvbiNnZXRDYXJldENvb3JkaW5hdGVzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBhIGJyb3dzZXInKTtcbiAgfVxuXG4gIHZhciBkZWJ1ZyA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWJ1ZyB8fCBmYWxzZTtcbiAgaWYgKGRlYnVnKSB7XG4gICAgdmFyIGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2lucHV0LXRleHRhcmVhLWNhcmV0LXBvc2l0aW9uLW1pcnJvci1kaXYnKTtcbiAgICBpZiAoIGVsICkgeyBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsgfVxuICB9XG5cbiAgLy8gbWlycm9yZWQgZGl2XG4gIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgZGl2LmlkID0gJ2lucHV0LXRleHRhcmVhLWNhcmV0LXBvc2l0aW9uLW1pcnJvci1kaXYnO1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG5cbiAgdmFyIHN0eWxlID0gZGl2LnN0eWxlO1xuICB2YXIgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZT8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSA6IGVsZW1lbnQuY3VycmVudFN0eWxlOyAgLy8gY3VycmVudFN0eWxlIGZvciBJRSA8IDlcblxuICAvLyBkZWZhdWx0IHRleHRhcmVhIHN0eWxlc1xuICBzdHlsZS53aGl0ZVNwYWNlID0gJ3ByZS13cmFwJztcbiAgaWYgKGVsZW1lbnQubm9kZU5hbWUgIT09ICdJTlBVVCcpXG4gICAgc3R5bGUud29yZFdyYXAgPSAnYnJlYWstd29yZCc7ICAvLyBvbmx5IGZvciB0ZXh0YXJlYS1zXG5cbiAgLy8gcG9zaXRpb24gb2ZmLXNjcmVlblxuICBzdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7ICAvLyByZXF1aXJlZCB0byByZXR1cm4gY29vcmRpbmF0ZXMgcHJvcGVybHlcbiAgaWYgKCFkZWJ1ZylcbiAgICBzdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7ICAvLyBub3QgJ2Rpc3BsYXk6IG5vbmUnIGJlY2F1c2Ugd2Ugd2FudCByZW5kZXJpbmdcblxuICAvLyB0cmFuc2ZlciB0aGUgZWxlbWVudCdzIHByb3BlcnRpZXMgdG8gdGhlIGRpdlxuICBwcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHtcbiAgICBzdHlsZVtwcm9wXSA9IGNvbXB1dGVkW3Byb3BdO1xuICB9KTtcblxuICBpZiAoaXNGaXJlZm94KSB7XG4gICAgLy8gRmlyZWZveCBsaWVzIGFib3V0IHRoZSBvdmVyZmxvdyBwcm9wZXJ0eSBmb3IgdGV4dGFyZWFzOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQyNzVcbiAgICBpZiAoZWxlbWVudC5zY3JvbGxIZWlnaHQgPiBwYXJzZUludChjb21wdXRlZC5oZWlnaHQpKVxuICAgICAgc3R5bGUub3ZlcmZsb3dZID0gJ3Njcm9sbCc7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsgIC8vIGZvciBDaHJvbWUgdG8gbm90IHJlbmRlciBhIHNjcm9sbGJhcjsgSUUga2VlcHMgb3ZlcmZsb3dZID0gJ3Njcm9sbCdcbiAgfVxuXG4gIGRpdi50ZXh0Q29udGVudCA9IGVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKDAsIHBvc2l0aW9uKTtcbiAgLy8gdGhlIHNlY29uZCBzcGVjaWFsIGhhbmRsaW5nIGZvciBpbnB1dCB0eXBlPVwidGV4dFwiIHZzIHRleHRhcmVhOiBzcGFjZXMgbmVlZCB0byBiZSByZXBsYWNlZCB3aXRoIG5vbi1icmVha2luZyBzcGFjZXMgLSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xMzQwMjAzNS8xMjY5MDM3XG4gIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnSU5QVVQnKVxuICAgIGRpdi50ZXh0Q29udGVudCA9IGRpdi50ZXh0Q29udGVudC5yZXBsYWNlKC9cXHMvZywgJ1xcdTAwYTAnKTtcblxuICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgLy8gV3JhcHBpbmcgbXVzdCBiZSByZXBsaWNhdGVkICpleGFjdGx5KiwgaW5jbHVkaW5nIHdoZW4gYSBsb25nIHdvcmQgZ2V0c1xuICAvLyBvbnRvIHRoZSBuZXh0IGxpbmUsIHdpdGggd2hpdGVzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIGJlZm9yZSAoIzcpLlxuICAvLyBUaGUgICpvbmx5KiByZWxpYWJsZSB3YXkgdG8gZG8gdGhhdCBpcyB0byBjb3B5IHRoZSAqZW50aXJlKiByZXN0IG9mIHRoZVxuICAvLyB0ZXh0YXJlYSdzIGNvbnRlbnQgaW50byB0aGUgPHNwYW4+IGNyZWF0ZWQgYXQgdGhlIGNhcmV0IHBvc2l0aW9uLlxuICAvLyBmb3IgaW5wdXRzLCBqdXN0ICcuJyB3b3VsZCBiZSBlbm91Z2gsIGJ1dCB3aHkgYm90aGVyP1xuICBzcGFuLnRleHRDb250ZW50ID0gZWxlbWVudC52YWx1ZS5zdWJzdHJpbmcocG9zaXRpb24pIHx8ICcuJzsgIC8vIHx8IGJlY2F1c2UgYSBjb21wbGV0ZWx5IGVtcHR5IGZhdXggc3BhbiBkb2Vzbid0IHJlbmRlciBhdCBhbGxcbiAgZGl2LmFwcGVuZENoaWxkKHNwYW4pO1xuXG4gIHZhciBjb29yZGluYXRlcyA9IHtcbiAgICB0b3A6IHNwYW4ub2Zmc2V0VG9wICsgcGFyc2VJbnQoY29tcHV0ZWRbJ2JvcmRlclRvcFdpZHRoJ10pLFxuICAgIGxlZnQ6IHNwYW4ub2Zmc2V0TGVmdCArIHBhcnNlSW50KGNvbXB1dGVkWydib3JkZXJMZWZ0V2lkdGgnXSlcbiAgfTtcblxuICBpZiAoZGVidWcpIHtcbiAgICBzcGFuLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjYWFhJztcbiAgfSBlbHNlIHtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7XG4gIH1cblxuICByZXR1cm4gY29vcmRpbmF0ZXM7XG59XG5cbmlmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyAhPSAndW5kZWZpbmVkJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IGdldENhcmV0Q29vcmRpbmF0ZXM7XG59IGVsc2UgaWYoaXNCcm93c2VyKXtcbiAgd2luZG93LmdldENhcmV0Q29vcmRpbmF0ZXMgPSBnZXRDYXJldENvb3JkaW5hdGVzO1xufVxuXG59KCkpO1xuIiwiXG52YXIgTmF0aXZlQ3VzdG9tRXZlbnQgPSBnbG9iYWwuQ3VzdG9tRXZlbnQ7XG5cbmZ1bmN0aW9uIHVzZU5hdGl2ZSAoKSB7XG4gIHRyeSB7XG4gICAgdmFyIHAgPSBuZXcgTmF0aXZlQ3VzdG9tRXZlbnQoJ2NhdCcsIHsgZGV0YWlsOiB7IGZvbzogJ2JhcicgfSB9KTtcbiAgICByZXR1cm4gICdjYXQnID09PSBwLnR5cGUgJiYgJ2JhcicgPT09IHAuZGV0YWlsLmZvbztcbiAgfSBjYXRjaCAoZSkge1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDcm9zcy1icm93c2VyIGBDdXN0b21FdmVudGAgY29uc3RydWN0b3IuXG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0N1c3RvbUV2ZW50LkN1c3RvbUV2ZW50XG4gKlxuICogQHB1YmxpY1xuICovXG5cbm1vZHVsZS5leHBvcnRzID0gdXNlTmF0aXZlKCkgPyBOYXRpdmVDdXN0b21FdmVudCA6XG5cbi8vIElFID49IDlcbid1bmRlZmluZWQnICE9PSB0eXBlb2YgZG9jdW1lbnQgJiYgJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUV2ZW50ID8gZnVuY3Rpb24gQ3VzdG9tRXZlbnQgKHR5cGUsIHBhcmFtcykge1xuICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICBpZiAocGFyYW1zKSB7XG4gICAgZS5pbml0Q3VzdG9tRXZlbnQodHlwZSwgcGFyYW1zLmJ1YmJsZXMsIHBhcmFtcy5jYW5jZWxhYmxlLCBwYXJhbXMuZGV0YWlsKTtcbiAgfSBlbHNlIHtcbiAgICBlLmluaXRDdXN0b21FdmVudCh0eXBlLCBmYWxzZSwgZmFsc2UsIHZvaWQgMCk7XG4gIH1cbiAgcmV0dXJuIGU7XG59IDpcblxuLy8gSUUgPD0gOFxuZnVuY3Rpb24gQ3VzdG9tRXZlbnQgKHR5cGUsIHBhcmFtcykge1xuICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCk7XG4gIGUudHlwZSA9IHR5cGU7XG4gIGlmIChwYXJhbXMpIHtcbiAgICBlLmJ1YmJsZXMgPSBCb29sZWFuKHBhcmFtcy5idWJibGVzKTtcbiAgICBlLmNhbmNlbGFibGUgPSBCb29sZWFuKHBhcmFtcy5jYW5jZWxhYmxlKTtcbiAgICBlLmRldGFpbCA9IHBhcmFtcy5kZXRhaWw7XG4gIH0gZWxzZSB7XG4gICAgZS5idWJibGVzID0gZmFsc2U7XG4gICAgZS5jYW5jZWxhYmxlID0gZmFsc2U7XG4gICAgZS5kZXRhaWwgPSB2b2lkIDA7XG4gIH1cbiAgcmV0dXJuIGU7XG59XG4iLCIvKipcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNyBKYWt1YiBCZW5lxaEgPGJlbmVzQHdlYnNjb3BlLmlvPlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgZ2V0Q2FyZXRDb29yZGluYXRlcyBmcm9tICd0ZXh0YXJlYS1jYXJldCc7XG5pbXBvcnQgQ3VzdG9tRXZlbnQgZnJvbSAnY3VzdG9tLWV2ZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSBpbiBvYmopIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9ialtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9O1xuICAgIHZhciBvd25LZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcblxuICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb3duS2V5cyA9IG93bktleXMuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKS5maWx0ZXIoZnVuY3Rpb24gKHN5bSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBvd25LZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICByZXR1cm4gQ29uc3RydWN0b3I7XG59XG5cbmZ1bmN0aW9uIF90eXBlb2YyKG9iaikge1xuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mMiA9IGZ1bmN0aW9uIF90eXBlb2YyKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBfdHlwZW9mMiA9IGZ1bmN0aW9uIF90eXBlb2YyKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBfdHlwZW9mMihvYmopO1xufVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIF90eXBlb2YyKFN5bWJvbC5pdGVyYXRvcikgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBfdHlwZW9mMihvYmopO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogX3R5cGVvZjIob2JqKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7XG4gIGlmIChzZWxmID09PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIH1cblxuICByZXR1cm4gc2VsZjtcbn1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9XG5cbiAgcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7XG59XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gIF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gICAgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTtcbiAgfTtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTtcbn1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gICAgby5fX3Byb3RvX18gPSBwO1xuICAgIHJldHVybiBvO1xuICB9O1xuXG4gIHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7XG59XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7XG59XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkge1xuICAgIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGFyci5sZW5ndGgpOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcnIyW2ldID0gYXJyW2ldO1xuICAgIH1cblxuICAgIHJldHVybiBhcnIyO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChpdGVyKSB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaXRlcikgPT09IFwiW29iamVjdCBBcmd1bWVudHNdXCIpIHJldHVybiBBcnJheS5mcm9tKGl0ZXIpO1xufVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZVwiKTtcbn1cblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gX2FycmF5V2l0aG91dEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF9ub25JdGVyYWJsZVNwcmVhZCgpO1xufVxuXG52YXIgS0VZX0NPREVTID0ge1xuICBFU0M6IDI3LFxuICBVUDogMzgsXG4gIERPV046IDQwLFxuICBMRUZUOiAzNyxcbiAgUklHSFQ6IDM5LFxuICBFTlRFUjogMTMsXG4gIFRBQjogOVxufTsgLy8gVGhpcyBpcyBzZWxmLW1hZGUga2V5IHNob3J0Y3V0cyBtYW5hZ2VyLCB1c2VkIGZvciBjYWNoaW5nIGtleSBzdHJva2VzXG5cbnZhciBMaXN0ZW5lciA9IGZ1bmN0aW9uIExpc3RlbmVyKCkge1xuICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaXN0ZW5lcik7XG5cbiAgdGhpcy5zdGFydExpc3RlbiA9IGZ1bmN0aW9uIChyZWYpIHtcbiAgICBpZiAoIXJlZikgcmV0dXJuO1xuICAgIHJlZi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBfdGhpcy5mKTtcbiAgfTtcblxuICB0aGlzLnN0b3BMaXN0ZW4gPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgaWYgKCFyZWYpIHJldHVybjtcbiAgICByZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgX3RoaXMuZik7XG4gIH07XG5cbiAgdGhpcy5hZGQgPSBmdW5jdGlvbiAoa2V5Q29kZXMsIGZuKSB7XG4gICAgdmFyIGtleUNvZGUgPSBrZXlDb2RlcztcbiAgICBpZiAodHlwZW9mIGtleUNvZGUgIT09IFwib2JqZWN0XCIpIGtleUNvZGUgPSBba2V5Q29kZV07XG4gICAgX3RoaXMubGlzdGVuZXJzW190aGlzLmluZGV4XSA9IHtcbiAgICAgIGtleUNvZGU6IGtleUNvZGUsXG4gICAgICBmbjogZm5cbiAgICB9O1xuICAgIHJldHVybiBfdGhpcy5pbmRleCsrO1xuICB9O1xuXG4gIHRoaXMucmVtb3ZlID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgZGVsZXRlIF90aGlzLmxpc3RlbmVyc1tpZF07XG4gIH07XG5cbiAgdGhpcy5yZW1vdmVBbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgX3RoaXMubGlzdGVuZXJzID0ge307XG4gICAgX3RoaXMuaW5kZXggPSAxO1xuICB9O1xuXG4gIHRoaXMuaW5kZXggPSAxO1xuICB0aGlzLmxpc3RlbmVycyA9IHt9O1xuXG4gIHRoaXMuZiA9IGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKCFlKSByZXR1cm47XG4gICAgdmFyIGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcbiAgICBPYmplY3QudmFsdWVzKF90aGlzLmxpc3RlbmVycykuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGtleUNvZGUgPSBfcmVmLmtleUNvZGUsXG4gICAgICAgICAgZm4gPSBfcmVmLmZuO1xuXG4gICAgICBpZiAoa2V5Q29kZS5pbmNsdWRlcyhjb2RlKSkge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGZuKGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xufTtcblxudmFyIExpc3RlbmVycyA9IG5ldyBMaXN0ZW5lcigpO1xuXG52YXIgSXRlbSA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoSXRlbSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gSXRlbSgpIHtcbiAgICB2YXIgX2dldFByb3RvdHlwZU9mMjtcblxuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJdGVtKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChfZ2V0UHJvdG90eXBlT2YyID0gX2dldFByb3RvdHlwZU9mKEl0ZW0pKS5jYWxsLmFwcGx5KF9nZXRQcm90b3R5cGVPZjIsIFt0aGlzXS5jb25jYXQoYXJncykpKTtcblxuICAgIF90aGlzLnNlbGVjdEl0ZW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBpdGVtID0gX3RoaXMkcHJvcHMuaXRlbSxcbiAgICAgICAgICBvblNlbGVjdEhhbmRsZXIgPSBfdGhpcyRwcm9wcy5vblNlbGVjdEhhbmRsZXI7XG4gICAgICBvblNlbGVjdEhhbmRsZXIoaXRlbSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJdGVtLCBbe1xuICAgIGtleTogXCJzaG91bGRDb21wb25lbnRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgaWYgKHRoaXMucHJvcHMuaXRlbSAhPT0gbmV4dFByb3BzLml0ZW0gfHwgdGhpcy5wcm9wcy5zZWxlY3RlZCAhPT0gbmV4dFByb3BzLnNlbGVjdGVkIHx8IHRoaXMucHJvcHMuc3R5bGUgIT09IG5leHRQcm9wcy5zdHlsZSB8fCB0aGlzLnByb3BzLmNsYXNzTmFtZSAhPT0gbmV4dFByb3BzLmNsYXNzTmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIENvbXBvbmVudCA9IF90aGlzJHByb3BzMi5jb21wb25lbnQsXG4gICAgICAgICAgc3R5bGUgPSBfdGhpcyRwcm9wczIuc3R5bGUsXG4gICAgICAgICAgb25DbGlja0hhbmRsZXIgPSBfdGhpcyRwcm9wczIub25DbGlja0hhbmRsZXIsXG4gICAgICAgICAgaXRlbSA9IF90aGlzJHByb3BzMi5pdGVtLFxuICAgICAgICAgIHNlbGVjdGVkID0gX3RoaXMkcHJvcHMyLnNlbGVjdGVkLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzMi5jbGFzc05hbWUsXG4gICAgICAgICAgaW5uZXJSZWYgPSBfdGhpcyRwcm9wczIuaW5uZXJSZWY7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInJ0YV9faXRlbSAgXCIuY29uY2F0KHNlbGVjdGVkID09PSB0cnVlID8gXCJydGFfX2l0ZW0tLXNlbGVjdGVkXCIgOiBcIlwiLCBcIiBcIikuY29uY2F0KGNsYXNzTmFtZSB8fCBcIlwiKSxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInJ0YV9fZW50aXR5IFwiLmNvbmNhdChzZWxlY3RlZCA9PT0gdHJ1ZSA/IFwicnRhX19lbnRpdHktLXNlbGVjdGVkXCIgOiBcIlwiKSxcbiAgICAgICAgcm9sZTogXCJidXR0b25cIixcbiAgICAgICAgdGFiSW5kZXg6IDAsXG4gICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tIYW5kbGVyLFxuICAgICAgICBvbkZvY3VzOiB0aGlzLnNlbGVjdEl0ZW0sXG4gICAgICAgIG9uTW91c2VFbnRlcjogdGhpcy5zZWxlY3RJdGVtLFxuICAgICAgICBvblRvdWNoU3RhcnQ6IGZ1bmN0aW9uIG9uVG91Y2hTdGFydCgpIHtcbiAgICAgICAgICBfdGhpczIuY2xpY2tlZCA9IHRydWU7XG5cbiAgICAgICAgICBfdGhpczIuc2VsZWN0SXRlbSgpO1xuICAgICAgICB9LFxuICAgICAgICBvblRvdWNoRW5kOiBmdW5jdGlvbiBvblRvdWNoRW5kKGUpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICBpZiAoX3RoaXMyLmNsaWNrZWQpIHtcbiAgICAgICAgICAgIG9uQ2xpY2tIYW5kbGVyKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25Ub3VjaE1vdmU6IGZ1bmN0aW9uIG9uVG91Y2hNb3ZlKCkge1xuICAgICAgICAgIF90aGlzMi5jbGlja2VkID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIG9uVG91Y2hDYW5jZWw6IGZ1bmN0aW9uIG9uVG91Y2hDYW5jZWwoKSB7XG4gICAgICAgICAgX3RoaXMyLmNsaWNrZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvKiAkRmxvd0ZpeE1lICovXG4gICAgICAgICxcbiAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHtcbiAgICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkLFxuICAgICAgICBlbnRpdHk6IGl0ZW1cbiAgICAgIH0pKSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEl0ZW07XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbnZhciBMaXN0ID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhMaXN0LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBMaXN0KCkge1xuICAgIHZhciBfZ2V0UHJvdG90eXBlT2YyO1xuXG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpc3QpO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKF9nZXRQcm90b3R5cGVPZjIgPSBfZ2V0UHJvdG90eXBlT2YoTGlzdCkpLmNhbGwuYXBwbHkoX2dldFByb3RvdHlwZU9mMiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgc2VsZWN0ZWRJdGVtOiBudWxsXG4gICAgfTtcbiAgICBfdGhpcy5jYWNoZWRJZE9mSXRlbXMgPSBuZXcgTWFwKCk7XG5cbiAgICBfdGhpcy5vblByZXNzRW50ZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKHR5cGVvZiBlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHZhbHVlcyA9IF90aGlzLnByb3BzLnZhbHVlcztcblxuICAgICAgX3RoaXMubW9kaWZ5VGV4dCh2YWx1ZXNbX3RoaXMuZ2V0UG9zaXRpb25Jbkxpc3QoKV0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5nZXRQb3NpdGlvbkluTGlzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB2YWx1ZXMgPSBfdGhpcy5wcm9wcy52YWx1ZXM7XG4gICAgICB2YXIgc2VsZWN0ZWRJdGVtID0gX3RoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtO1xuICAgICAgaWYgKCFzZWxlY3RlZEl0ZW0pIHJldHVybiAwO1xuICAgICAgcmV0dXJuIHZhbHVlcy5maW5kSW5kZXgoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmdldElkKGEpID09PSBfdGhpcy5nZXRJZChzZWxlY3RlZEl0ZW0pO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzLmdldElkID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIGlmIChfdGhpcy5jYWNoZWRJZE9mSXRlbXMuaGFzKGl0ZW0pKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVcbiAgICAgICAgcmV0dXJuIF90aGlzLmNhY2hlZElkT2ZJdGVtcy5nZXQoaXRlbSk7XG4gICAgICB9XG5cbiAgICAgIHZhciB0ZXh0VG9SZXBsYWNlID0gX3RoaXMucHJvcHMuZ2V0VGV4dFRvUmVwbGFjZShpdGVtKTtcblxuICAgICAgdmFyIGNvbXB1dGVJZCA9IGZ1bmN0aW9uIGNvbXB1dGVJZCgpIHtcbiAgICAgICAgaWYgKHRleHRUb1JlcGxhY2UpIHtcbiAgICAgICAgICBpZiAodGV4dFRvUmVwbGFjZS5rZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0VG9SZXBsYWNlLmtleTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIgfHwgIWl0ZW0ua2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dFRvUmVwbGFjZS50ZXh0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXRlbS5rZXkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJdGVtIFwiLmNvbmNhdChKU09OLnN0cmluZ2lmeShpdGVtKSwgXCIgaGFzIHRvIGhhdmUgZGVmaW5lZCBcXFwia2V5XFxcIiBwcm9wZXJ0eVwiKSk7XG4gICAgICAgIH0gLy8gJEZsb3dGaXhNZVxuXG5cbiAgICAgICAgcmV0dXJuIGl0ZW0ua2V5O1xuICAgICAgfTtcblxuICAgICAgdmFyIGlkID0gY29tcHV0ZUlkKCk7XG5cbiAgICAgIF90aGlzLmNhY2hlZElkT2ZJdGVtcy5zZXQoaXRlbSwgaWQpO1xuXG4gICAgICByZXR1cm4gaWQ7XG4gICAgfTtcblxuICAgIF90aGlzLmxpc3RlbmVycyA9IFtdO1xuICAgIF90aGlzLml0ZW1zUmVmID0ge307XG5cbiAgICBfdGhpcy5tb2RpZnlUZXh0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICB2YXIgb25TZWxlY3QgPSBfdGhpcy5wcm9wcy5vblNlbGVjdDtcbiAgICAgIG9uU2VsZWN0KHZhbHVlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc2VsZWN0SXRlbSA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIga2V5Ym9hcmQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlO1xuICAgICAgdmFyIG9uSXRlbUhpZ2hsaWdodGVkID0gX3RoaXMucHJvcHMub25JdGVtSGlnaGxpZ2h0ZWQ7XG4gICAgICBpZiAoX3RoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtID09PSBpdGVtKSByZXR1cm47XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgc2VsZWN0ZWRJdGVtOiBpdGVtXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIG9uSXRlbUhpZ2hsaWdodGVkKGl0ZW0pO1xuXG4gICAgICAgIGlmIChrZXlib2FyZCkge1xuICAgICAgICAgIF90aGlzLnByb3BzLmRyb3Bkb3duU2Nyb2xsKF90aGlzLml0ZW1zUmVmW190aGlzLmdldElkKGl0ZW0pXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5zY3JvbGwgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdmFyIHZhbHVlcyA9IF90aGlzLnByb3BzLnZhbHVlcztcbiAgICAgIHZhciBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XG5cbiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IF90aGlzLmdldFBvc2l0aW9uSW5MaXN0KCk7XG5cbiAgICAgIHZhciBuZXdQb3NpdGlvbjtcblxuICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgIGNhc2UgS0VZX0NPREVTLkRPV046XG4gICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbiArIDE7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBLRVlfQ09ERVMuVVA6XG4gICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbiAtIDE7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBuZXdQb3NpdGlvbiA9IG9sZFBvc2l0aW9uO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBuZXdQb3NpdGlvbiA9IChuZXdQb3NpdGlvbiAlIHZhbHVlcy5sZW5ndGggKyB2YWx1ZXMubGVuZ3RoKSAlIHZhbHVlcy5sZW5ndGg7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgICAgX3RoaXMuc2VsZWN0SXRlbSh2YWx1ZXNbbmV3UG9zaXRpb25dLCBbS0VZX0NPREVTLkRPV04sIEtFWV9DT0RFUy5VUF0uaW5jbHVkZXMoY29kZSkpO1xuICAgIH07XG5cbiAgICBfdGhpcy5pc1NlbGVjdGVkID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBzZWxlY3RlZEl0ZW0gPSBfdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW07XG4gICAgICBpZiAoIXNlbGVjdGVkSXRlbSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIF90aGlzLmdldElkKHNlbGVjdGVkSXRlbSkgPT09IF90aGlzLmdldElkKGl0ZW0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTGlzdCwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKExpc3RlbmVycy5hZGQoW0tFWV9DT0RFUy5ET1dOLCBLRVlfQ09ERVMuVVBdLCB0aGlzLnNjcm9sbCksIExpc3RlbmVycy5hZGQoW0tFWV9DT0RFUy5FTlRFUiwgS0VZX0NPREVTLlRBQl0sIHRoaXMub25QcmVzc0VudGVyKSk7XG4gICAgICB2YXIgdmFsdWVzID0gdGhpcy5wcm9wcy52YWx1ZXM7XG4gICAgICBpZiAodmFsdWVzICYmIHZhbHVlc1swXSkgdGhpcy5zZWxlY3RJdGVtKHZhbHVlc1swXSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoX3JlZikge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBvbGRWYWx1ZXMgPSBfcmVmLnZhbHVlcztcbiAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnByb3BzLnZhbHVlcztcbiAgICAgIHZhciBvbGRWYWx1ZXNTZXJpYWxpemVkID0gb2xkVmFsdWVzLm1hcChmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIuZ2V0SWQodmFsKTtcbiAgICAgIH0pLmpvaW4oXCJcIik7XG4gICAgICB2YXIgbmV3VmFsdWVzU2VyaWFsaXplZCA9IHZhbHVlcy5tYXAoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICByZXR1cm4gX3RoaXMyLmdldElkKHZhbCk7XG4gICAgICB9KS5qb2luKFwiXCIpO1xuXG4gICAgICBpZiAob2xkVmFsdWVzU2VyaWFsaXplZCAhPT0gbmV3VmFsdWVzU2VyaWFsaXplZCAmJiB2YWx1ZXMgJiYgdmFsdWVzWzBdKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbSh2YWx1ZXNbMF0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHZhciBsaXN0ZW5lcjtcblxuICAgICAgd2hpbGUgKHRoaXMubGlzdGVuZXJzLmxlbmd0aCkge1xuICAgICAgICBsaXN0ZW5lciA9IHRoaXMubGlzdGVuZXJzLnBvcCgpO1xuICAgICAgICBMaXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHZhbHVlcyA9IF90aGlzJHByb3BzLnZhbHVlcyxcbiAgICAgICAgICBjb21wb25lbnQgPSBfdGhpcyRwcm9wcy5jb21wb25lbnQsXG4gICAgICAgICAgc3R5bGUgPSBfdGhpcyRwcm9wcy5zdHlsZSxcbiAgICAgICAgICBpdGVtQ2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuaXRlbUNsYXNzTmFtZSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgaXRlbVN0eWxlID0gX3RoaXMkcHJvcHMuaXRlbVN0eWxlO1xuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJydGFfX2xpc3QgXCIuY29uY2F0KGNsYXNzTmFtZSB8fCBcIlwiKSxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCB2YWx1ZXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KEl0ZW0sIHtcbiAgICAgICAgICBrZXk6IF90aGlzMy5nZXRJZChpdGVtKSxcbiAgICAgICAgICBpbm5lclJlZjogZnVuY3Rpb24gaW5uZXJSZWYocmVmKSB7XG4gICAgICAgICAgICBfdGhpczMuaXRlbXNSZWZbX3RoaXMzLmdldElkKGl0ZW0pXSA9IHJlZjtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNlbGVjdGVkOiBfdGhpczMuaXNTZWxlY3RlZChpdGVtKSxcbiAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgIGNsYXNzTmFtZTogaXRlbUNsYXNzTmFtZSxcbiAgICAgICAgICBzdHlsZTogaXRlbVN0eWxlLFxuICAgICAgICAgIG9uQ2xpY2tIYW5kbGVyOiBfdGhpczMub25QcmVzc0VudGVyLFxuICAgICAgICAgIG9uU2VsZWN0SGFuZGxlcjogX3RoaXMzLnNlbGVjdEl0ZW0sXG4gICAgICAgICAgY29tcG9uZW50OiBjb21wb25lbnRcbiAgICAgICAgfSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIExpc3Q7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTY3JvbGxUb0l0ZW0oY29udGFpbmVyLCBpdGVtKSB7XG4gIHZhciBpdGVtSGVpZ2h0ID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShpdGVtKS5nZXRQcm9wZXJ0eVZhbHVlKFwiaGVpZ2h0XCIpLCAxMCk7XG4gIHZhciBjb250YWluZXJIaWdodCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoY29udGFpbmVyKS5nZXRQcm9wZXJ0eVZhbHVlKFwiaGVpZ2h0XCIpLCAxMCkgLSBpdGVtSGVpZ2h0O1xuICB2YXIgaXRlbU9mZnNldFRvcCA9IGl0ZW0ub2Zmc2V0VG9wO1xuICB2YXIgYWN0dWFsU2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcDtcblxuICBpZiAoaXRlbU9mZnNldFRvcCA8IGFjdHVhbFNjcm9sbFRvcCArIGNvbnRhaW5lckhpZ2h0ICYmIGFjdHVhbFNjcm9sbFRvcCA8IGl0ZW1PZmZzZXRUb3ApIHtcbiAgICByZXR1cm47XG4gIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5cblxuICBjb250YWluZXIuc2Nyb2xsVG9wID0gaXRlbU9mZnNldFRvcDtcbn1cblxudmFyIERFRkFVTFRfQ0FSRVRfUE9TSVRJT04gPSBcIm5leHRcIjtcbnZhciBQT1NJVElPTl9DT05GSUdVUkFUSU9OID0ge1xuICBYOiB7XG4gICAgTEVGVDogXCJydGFfX2F1dG9jb21wbGV0ZS0tbGVmdFwiLFxuICAgIFJJR0hUOiBcInJ0YV9fYXV0b2NvbXBsZXRlLS1yaWdodFwiXG4gIH0sXG4gIFk6IHtcbiAgICBUT1A6IFwicnRhX19hdXRvY29tcGxldGUtLXRvcFwiLFxuICAgIEJPVFRPTTogXCJydGFfX2F1dG9jb21wbGV0ZS0tYm90dG9tXCJcbiAgfVxufTtcblxudmFyIGVycm9yTWVzc2FnZSA9IGZ1bmN0aW9uIGVycm9yTWVzc2FnZShtZXNzYWdlKSB7XG4gIHJldHVybiBjb25zb2xlLmVycm9yKFwiUlRBOiBkYXRhUHJvdmlkZXIgZmFpbHM6IFwiLmNvbmNhdChtZXNzYWdlLCBcIlxcbiAgICBcXG5DaGVjayB0aGUgZG9jdW1lbnRhdGlvbiBvciBjcmVhdGUgaXNzdWUgaWYgeW91IHRoaW5rIGl0J3MgYnVnLiBodHRwczovL2dpdGh1Yi5jb20vd2Vic2NvcGVpby9yZWFjdC10ZXh0YXJlYS1hdXRvY29tcGxldGUvaXNzdWVzXCIpKTtcbn07XG5cbnZhciByZXNlcnZlZFJlZ2V4Q2hhcnMgPSBbXCIuXCIsIFwiXlwiLCBcIiRcIiwgXCIqXCIsIFwiK1wiLCBcIi1cIiwgXCI/XCIsIFwiKFwiLCBcIilcIiwgXCJbXCIsIFwiXVwiLCBcIntcIiwgXCJ9XCIsIFwiXFxcXFwiLCBcInxcIl07XG5cbnZhciBlc2NhcGVSZWdleCA9IGZ1bmN0aW9uIGVzY2FwZVJlZ2V4KHRleHQpIHtcbiAgcmV0dXJuIF90b0NvbnN1bWFibGVBcnJheSh0ZXh0KS5tYXAoZnVuY3Rpb24gKGNoYXJhY3Rlcikge1xuICAgIHJldHVybiByZXNlcnZlZFJlZ2V4Q2hhcnMuaW5jbHVkZXMoY2hhcmFjdGVyKSA/IFwiXFxcXFwiLmNvbmNhdChjaGFyYWN0ZXIpIDogY2hhcmFjdGVyO1xuICB9KS5qb2luKFwiXCIpO1xufTsgLy8gVGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIGNvbXBvbmVudCBpcyB0byBmaWd1cmUgb3V0IHRvIHdoaWNoIHNpZGUgdGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgYmUgb3BlbmVkXG5cblxudmFyIEF1dG9jb21wbGV0ZSA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQXV0b2NvbXBsZXRlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBBdXRvY29tcGxldGUoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEF1dG9jb21wbGV0ZSk7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX2dldFByb3RvdHlwZU9mKEF1dG9jb21wbGV0ZSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQXV0b2NvbXBsZXRlLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHZhciBib3VuZGFyaWVzRWxlbWVudCA9IHRoaXMucHJvcHMuYm91bmRhcmllc0VsZW1lbnQ7XG5cbiAgICAgIGlmICh0eXBlb2YgYm91bmRhcmllc0VsZW1lbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGJvdW5kYXJpZXNFbGVtZW50KTtcblxuICAgICAgICBpZiAoIWVsZW0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSVEE6IEludmFsaWQgcHJvcCBib3VuZGFyaWVzRWxlbWVudDogaXQgaGFzIHRvIGJlIHN0cmluZyBvciBIVE1MRWxlbWVudC5cIik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW0gPSBlbGVtO1xuICAgICAgfSBlbHNlIGlmIChib3VuZGFyaWVzRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyRWxlbSA9IGJvdW5kYXJpZXNFbGVtZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUlRBOiBJbnZhbGlkIHByb3AgYm91bmRhcmllc0VsZW1lbnQ6IGl0IGhhcyB0byBiZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQuXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuY29udGFpbmVyRWxlbSB8fCAhdGhpcy5jb250YWluZXJFbGVtLmNvbnRhaW5zKHRoaXMucmVmKSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwidGVzdFwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUlRBOiBJbnZhbGlkIHByb3AgYm91bmRhcmllc0VsZW1lbnQ6IGl0IGhhcyB0byBiZSBvbmUgb2YgdGhlIHBhcmVudHMgb2YgdGhlIFJUQS5cIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIHZhciBfdGhpcyRyZWYkY2xhc3NMaXN0LCBfdGhpcyRyZWYkY2xhc3NMaXN0MjtcblxuICAgICAgdmFyIHRvcCA9IHRoaXMucHJvcHMudG9wIHx8IDA7XG4gICAgICB2YXIgbGVmdCA9IHRoaXMucHJvcHMubGVmdCB8fCAwO1xuICAgICAgdmFyIHVzZWRDbGFzc2VzID0gW107XG4gICAgICB2YXIgdW51c2VkQ2xhc3NlcyA9IFtdO1xuICAgICAgdmFyIHRvcFBvc2l0aW9uID0gMDtcbiAgICAgIHZhciBsZWZ0UG9zaXRpb24gPSAwO1xuICAgICAgdmFyIGNvbnRhaW5lckJvdW5kcyA9IHRoaXMuY29udGFpbmVyRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHZhciBkcm9wZG93bkJvdW5kcyA9IHRoaXMucmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdmFyIHRleHRhcmVhQm91bmRzID0gdGhpcy5wcm9wcy50ZXh0YXJlYVJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYpO1xuICAgICAgdmFyIG1hcmdpblRvcCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcIm1hcmdpbi10b3BcIiksIDEwKTtcbiAgICAgIHZhciBtYXJnaW5Cb3R0b20gPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoXCJtYXJnaW4tYm90dG9tXCIpLCAxMCk7XG4gICAgICB2YXIgbWFyZ2luTGVmdCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcIm1hcmdpbi1sZWZ0XCIpLCAxMCk7XG4gICAgICB2YXIgbWFyZ2luUmlnaHQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoXCJtYXJnaW4tcmlnaHRcIiksIDEwKTtcbiAgICAgIHZhciBkcm9wZG93bkJvdHRvbSA9IG1hcmdpblRvcCArIG1hcmdpbkJvdHRvbSArIHRleHRhcmVhQm91bmRzLnRvcCArIHRvcCArIGRyb3Bkb3duQm91bmRzLmhlaWdodDtcbiAgICAgIHZhciBkcm9wZG93blJpZ2h0ID0gbWFyZ2luTGVmdCArIG1hcmdpblJpZ2h0ICsgdGV4dGFyZWFCb3VuZHMubGVmdCArIGxlZnQgKyBkcm9wZG93bkJvdW5kcy53aWR0aDtcblxuICAgICAgaWYgKGRyb3Bkb3duUmlnaHQgPiBjb250YWluZXJCb3VuZHMucmlnaHQgJiYgdGV4dGFyZWFCb3VuZHMubGVmdCArIGxlZnQgPiBkcm9wZG93bkJvdW5kcy53aWR0aCkge1xuICAgICAgICBsZWZ0UG9zaXRpb24gPSBsZWZ0IC0gZHJvcGRvd25Cb3VuZHMud2lkdGg7XG4gICAgICAgIHVzZWRDbGFzc2VzLnB1c2goUE9TSVRJT05fQ09ORklHVVJBVElPTi5YLkxFRlQpO1xuICAgICAgICB1bnVzZWRDbGFzc2VzLnB1c2goUE9TSVRJT05fQ09ORklHVVJBVElPTi5YLlJJR0hUKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlZnRQb3NpdGlvbiA9IGxlZnQ7XG4gICAgICAgIHVzZWRDbGFzc2VzLnB1c2goUE9TSVRJT05fQ09ORklHVVJBVElPTi5YLlJJR0hUKTtcbiAgICAgICAgdW51c2VkQ2xhc3Nlcy5wdXNoKFBPU0lUSU9OX0NPTkZJR1VSQVRJT04uWC5MRUZUKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRyb3Bkb3duQm90dG9tID4gY29udGFpbmVyQm91bmRzLmJvdHRvbSAmJiB0ZXh0YXJlYUJvdW5kcy50b3AgKyB0b3AgPiBkcm9wZG93bkJvdW5kcy5oZWlnaHQpIHtcbiAgICAgICAgdG9wUG9zaXRpb24gPSB0b3AgLSBkcm9wZG93bkJvdW5kcy5oZWlnaHQ7XG4gICAgICAgIHVzZWRDbGFzc2VzLnB1c2goUE9TSVRJT05fQ09ORklHVVJBVElPTi5ZLlRPUCk7XG4gICAgICAgIHVudXNlZENsYXNzZXMucHVzaChQT1NJVElPTl9DT05GSUdVUkFUSU9OLlkuQk9UVE9NKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvcFBvc2l0aW9uID0gdG9wO1xuICAgICAgICB1c2VkQ2xhc3Nlcy5wdXNoKFBPU0lUSU9OX0NPTkZJR1VSQVRJT04uWS5CT1RUT00pO1xuICAgICAgICB1bnVzZWRDbGFzc2VzLnB1c2goUE9TSVRJT05fQ09ORklHVVJBVElPTi5ZLlRPUCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLnJlbmRlclRvQm9keSkge1xuICAgICAgICB0b3BQb3NpdGlvbiArPSB0ZXh0YXJlYUJvdW5kcy50b3A7XG4gICAgICAgIGxlZnRQb3NpdGlvbiArPSB0ZXh0YXJlYUJvdW5kcy5sZWZ0O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlZi5zdHlsZS50b3AgPSBcIlwiLmNvbmNhdCh0b3BQb3NpdGlvbiwgXCJweFwiKTtcbiAgICAgIHRoaXMucmVmLnN0eWxlLmxlZnQgPSBcIlwiLmNvbmNhdChsZWZ0UG9zaXRpb24sIFwicHhcIik7XG5cbiAgICAgIChfdGhpcyRyZWYkY2xhc3NMaXN0ID0gdGhpcy5yZWYuY2xhc3NMaXN0KS5yZW1vdmUuYXBwbHkoX3RoaXMkcmVmJGNsYXNzTGlzdCwgdW51c2VkQ2xhc3Nlcyk7XG5cbiAgICAgIChfdGhpcyRyZWYkY2xhc3NMaXN0MiA9IHRoaXMucmVmLmNsYXNzTGlzdCkuYWRkLmFwcGx5KF90aGlzJHJlZiRjbGFzc0xpc3QyLCB1c2VkQ2xhc3Nlcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMuc3R5bGUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGlubmVyUmVmID0gX3RoaXMkcHJvcHMuaW5uZXJSZWYsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICByZW5kZXJUb0JvZHkgPSBfdGhpcyRwcm9wcy5yZW5kZXJUb0JvZHk7XG4gICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmJvZHk7XG4gICAgICB2YXIgYXV0b2NvbXBsZXRlQ29udGFpbmVyID0gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKF9yZWYpIHtcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lXG4gICAgICAgICAgX3RoaXMucmVmID0gX3JlZjsgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgaW5uZXJSZWYoX3JlZik7XG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZTogXCJydGFfX2F1dG9jb21wbGV0ZSBcIi5jb25jYXQoY2xhc3NOYW1lIHx8IFwiXCIpLFxuICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICAgIHJldHVybiByZW5kZXJUb0JvZHkgJiYgYm9keSAhPT0gbnVsbCA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChhdXRvY29tcGxldGVDb250YWluZXIsIGJvZHkpIDogYXV0b2NvbXBsZXRlQ29udGFpbmVyO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBBdXRvY29tcGxldGU7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbnZhciBSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZSwgX1JlYWN0JENvbXBvbmVudDIpO1xuXG4gIGZ1bmN0aW9uIFJlYWN0VGV4dGFyZWFBdXRvY29tcGxldGUoX3Byb3BzKSB7XG4gICAgdmFyIF90aGlzMjtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlKTtcblxuICAgIF90aGlzMiA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlKS5jYWxsKHRoaXMsIF9wcm9wcykpO1xuICAgIF90aGlzMi5zdGF0ZSA9IHtcbiAgICAgIHRvcDogbnVsbCxcbiAgICAgIGxlZnQ6IG51bGwsXG4gICAgICBjdXJyZW50VHJpZ2dlcjogbnVsbCxcbiAgICAgIGFjdHVhbFRva2VuOiBcIlwiLFxuICAgICAgZGF0YTogbnVsbCxcbiAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgZGF0YUxvYWRpbmc6IGZhbHNlLFxuICAgICAgc2VsZWN0aW9uRW5kOiAwLFxuICAgICAgY29tcG9uZW50OiBudWxsLFxuICAgICAgdGV4dFRvUmVwbGFjZTogbnVsbFxuICAgIH07XG5cbiAgICBfdGhpczIuZXNjTGlzdGVuZXJJbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFfdGhpczIuZXNjTGlzdGVuZXIpIHtcbiAgICAgICAgX3RoaXMyLmVzY0xpc3RlbmVyID0gTGlzdGVuZXJzLmFkZChLRVlfQ09ERVMuRVNDLCBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMyLmVzY0xpc3RlbmVyRGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfdGhpczIuZXNjTGlzdGVuZXIpIHtcbiAgICAgICAgTGlzdGVuZXJzLnJlbW92ZShfdGhpczIuZXNjTGlzdGVuZXIpO1xuICAgICAgICBfdGhpczIuZXNjTGlzdGVuZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpczIuZ2V0U2VsZWN0aW9uUG9zaXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIV90aGlzMi50ZXh0YXJlYVJlZikgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZWxlY3Rpb25TdGFydDogX3RoaXMyLnRleHRhcmVhUmVmLnNlbGVjdGlvblN0YXJ0LFxuICAgICAgICBzZWxlY3Rpb25FbmQ6IF90aGlzMi50ZXh0YXJlYVJlZi5zZWxlY3Rpb25FbmRcbiAgICAgIH07XG4gICAgfTtcblxuICAgIF90aGlzMi5nZXRTZWxlY3RlZFRleHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIV90aGlzMi50ZXh0YXJlYVJlZikgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgX3RoaXMyJHRleHRhcmVhUmVmID0gX3RoaXMyLnRleHRhcmVhUmVmLFxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gX3RoaXMyJHRleHRhcmVhUmVmLnNlbGVjdGlvblN0YXJ0LFxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IF90aGlzMiR0ZXh0YXJlYVJlZi5zZWxlY3Rpb25FbmQ7XG4gICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPT09IHNlbGVjdGlvbkVuZCkgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gX3RoaXMyLnN0YXRlLnZhbHVlLnN1YnN0cihzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIC0gc2VsZWN0aW9uU3RhcnQpO1xuICAgIH07XG5cbiAgICBfdGhpczIuc2V0Q2FyZXRQb3NpdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwb3NpdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogMDtcbiAgICAgIGlmICghX3RoaXMyLnRleHRhcmVhUmVmKSByZXR1cm47XG5cbiAgICAgIF90aGlzMi50ZXh0YXJlYVJlZi5mb2N1cygpO1xuXG4gICAgICBfdGhpczIudGV4dGFyZWFSZWYuc2V0U2VsZWN0aW9uUmFuZ2UocG9zaXRpb24sIHBvc2l0aW9uKTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLmdldENhcmV0UG9zaXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIV90aGlzMi50ZXh0YXJlYVJlZikge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgdmFyIHBvc2l0aW9uID0gX3RoaXMyLnRleHRhcmVhUmVmLnNlbGVjdGlvbkVuZDtcbiAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9oYW5kbGVDYXJldENoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgY2xlYW5MYXN0VHJpZ2dlciA9IGZ1bmN0aW9uIGNsZWFuTGFzdFRyaWdnZXIoKSB7XG4gICAgICAgIHZhciBiZWZvcmVIYW5kbGUgPSBfdGhpczIuZ2V0Q2FyZXRQb3NpdGlvbigpIC0gMTtcbiAgICAgICAgX3RoaXMyLmxhc3RUcmlnZ2VyID0gX3RoaXMyLmxhc3RUcmlnZ2VyID8gYmVmb3JlSGFuZGxlIDogMDtcbiAgICAgIH07XG5cbiAgICAgIGlmIChlLnR5cGUgPT09IFwia2V5ZG93blwiKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWVcbiAgICAgICAgdmFyIGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcblxuICAgICAgICBzd2l0Y2ggKGNvZGUpIHtcbiAgICAgICAgICBjYXNlIEtFWV9DT0RFUy5VUDpcbiAgICAgICAgICBjYXNlIEtFWV9DT0RFUy5ET1dOOlxuICAgICAgICAgICAgaWYgKCFfdGhpczIuX2lzQXV0b2NvbXBsZXRlT3BlbigpKSB7XG4gICAgICAgICAgICAgIGNsZWFuTGFzdFRyaWdnZXIoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIEtFWV9DT0RFUy5MRUZUOlxuICAgICAgICAgIGNhc2UgS0VZX0NPREVTLlJJR0hUOlxuICAgICAgICAgICAgY2xlYW5MYXN0VHJpZ2dlcigpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjbGVhbkxhc3RUcmlnZ2VyKCk7XG4gICAgfTtcblxuICAgIF90aGlzMi5fb25TZWxlY3QgPSBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIF90aGlzMiRzdGF0ZSA9IF90aGlzMi5zdGF0ZSxcbiAgICAgICAgICBzZWxlY3Rpb25FbmQgPSBfdGhpczIkc3RhdGUuc2VsZWN0aW9uRW5kLFxuICAgICAgICAgIGN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyJHN0YXRlLmN1cnJlbnRUcmlnZ2VyLFxuICAgICAgICAgIHRleHRhcmVhVmFsdWUgPSBfdGhpczIkc3RhdGUudmFsdWU7XG4gICAgICB2YXIgb25JdGVtU2VsZWN0ZWQgPSBfdGhpczIucHJvcHMub25JdGVtU2VsZWN0ZWQ7XG4gICAgICBpZiAoIWN1cnJlbnRUcmlnZ2VyKSByZXR1cm47XG5cbiAgICAgIHZhciBnZXRUZXh0VG9SZXBsYWNlRm9yQ3VycmVudFRyaWdnZXIgPSBfdGhpczIuX2dldFRleHRUb1JlcGxhY2UoY3VycmVudFRyaWdnZXIpO1xuXG4gICAgICBpZiAoIWdldFRleHRUb1JlcGxhY2VGb3JDdXJyZW50VHJpZ2dlcikge1xuICAgICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgbmV3VG9rZW4gPSBnZXRUZXh0VG9SZXBsYWNlRm9yQ3VycmVudFRyaWdnZXIoaXRlbSk7XG5cbiAgICAgIGlmICghbmV3VG9rZW4pIHtcbiAgICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG9uSXRlbVNlbGVjdGVkKSB7XG4gICAgICAgIG9uSXRlbVNlbGVjdGVkKHtcbiAgICAgICAgICBjdXJyZW50VHJpZ2dlcjogY3VycmVudFRyaWdnZXIsXG4gICAgICAgICAgaXRlbTogaXRlbVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFyIGNvbXB1dGVDYXJldFBvc2l0aW9uID0gZnVuY3Rpb24gY29tcHV0ZUNhcmV0UG9zaXRpb24ocG9zaXRpb24sIHRva2VuLCBzdGFydFRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAocG9zaXRpb24pIHtcbiAgICAgICAgICBjYXNlIFwic3RhcnRcIjpcbiAgICAgICAgICAgIHJldHVybiBzdGFydFRva2VuO1xuXG4gICAgICAgICAgY2FzZSBcIm5leHRcIjpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gc3RhcnRUb2tlbiArIHRva2VuLmxlbmd0aDtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIocG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUlRBOiBjYXJldFBvc2l0aW9uIHNob3VsZCBiZSBcInN0YXJ0XCIsIFwibmV4dFwiLCBcImVuZFwiIG9yIG51bWJlci4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICB2YXIgdGV4dFRvTW9kaWZ5ID0gdGV4dGFyZWFWYWx1ZS5zbGljZSgwLCBzZWxlY3Rpb25FbmQpO1xuICAgICAgLyoqXG4gICAgICAgKiBJdCdzIGltcG9ydGFudCB0byBlc2NhcGUgdGhlIGN1cnJlbnRUcmlnZ2VyIGNoYXIgZm9yIGNoYXJzIGxpa2UgWywgKCwuLi5cbiAgICAgICAqIFRoaXMgaXMgYSByaWRpY3Vsb3VzIGRhcmsgbWFnaWMsIGJhc2ljYWxseSB3ZSBmb3VuZCBwb3NpdGlvbiBvZiB0aGUgbGFzdCBjdXJyZW50IHRva2VuIChmcm9tIGN1cnJlbnQgdHJpZ2dlcikgYW5kIHRoZW4gd2UgcmVwbGFjZSB0aGUgdGV4dCBmcm9tIHRoYXQgcG9zaXRpb24gKGNhbGN1bGF0aW5nIHRoZSBvZmZzZXQpXG4gICAgICAgKi9cblxuICAgICAgdmFyIGVzY2FwZWRDdXJyZW50VHJpZ2dlciA9IGVzY2FwZVJlZ2V4KGN1cnJlbnRUcmlnZ2VyKTtcbiAgICAgIHZhciB0cmlnZ2VyT2Zmc2V0ID0gdGV4dFRvTW9kaWZ5Lmxlbmd0aCAtIHRleHRUb01vZGlmeS5sYXN0SW5kZXhPZihjdXJyZW50VHJpZ2dlcik7XG4gICAgICB2YXIgc3RhcnRPZlRva2VuUG9zaXRpb24gPSB0ZXh0VG9Nb2RpZnkuc2VhcmNoKG5ldyBSZWdFeHAoXCIoPyFcIi5jb25jYXQoZXNjYXBlZEN1cnJlbnRUcmlnZ2VyLCBcIikkXCIpKSkgLSB0cmlnZ2VyT2Zmc2V0OyAvLyB3ZSBhZGQgc3BhY2UgYWZ0ZXIgZW1vamkgaXMgc2VsZWN0ZWQgaWYgYSBjYXJldCBwb3NpdGlvbiBpcyBuZXh0XG5cbiAgICAgIHZhciBuZXdUb2tlblN0cmluZyA9IG5ld1Rva2VuLmNhcmV0UG9zaXRpb24gPT09IFwibmV4dFwiID8gXCJcIi5jb25jYXQobmV3VG9rZW4udGV4dCwgXCIgXCIpIDogbmV3VG9rZW4udGV4dDtcbiAgICAgIHZhciBuZXdDYXJldFBvc2l0aW9uID0gY29tcHV0ZUNhcmV0UG9zaXRpb24obmV3VG9rZW4uY2FyZXRQb3NpdGlvbiwgbmV3VG9rZW5TdHJpbmcsIHN0YXJ0T2ZUb2tlblBvc2l0aW9uKTtcbiAgICAgIHZhciBtb2RpZmllZFRleHQgPSB0ZXh0VG9Nb2RpZnkuc3Vic3RyaW5nKDAsIHN0YXJ0T2ZUb2tlblBvc2l0aW9uKSArIG5ld1Rva2VuU3RyaW5nO1xuICAgICAgdmFyIG5ld1ZhbHVlID0gdGV4dGFyZWFWYWx1ZS5yZXBsYWNlKHRleHRUb01vZGlmeSwgbW9kaWZpZWRUZXh0KTsgLy8gc2V0IHRoZSBuZXcgdGV4dGFyZWEgdmFsdWUgYW5kIGFmdGVyIHRoYXQgc2V0IHRoZSBjYXJldCBiYWNrIHRvIGl0cyBwb3NpdGlvblxuXG4gICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgIGRhdGFMb2FkaW5nOiBmYWxzZVxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaW5zZXJ0ZWRUcmlnZ2VyID0gX3RoaXMyLnRva2VuUmVnRXhwRW5kaW5nLmV4ZWMobmV3VG9rZW5TdHJpbmcpO1xuXG4gICAgICAgIHZhciBpbnNlcnRlZFRyaWdnZXJNb2RpZmllciA9IGluc2VydGVkVHJpZ2dlciA/IGluc2VydGVkVHJpZ2dlclswXS5sZW5ndGggOiAxO1xuICAgICAgICBfdGhpczIubGFzdFRyaWdnZXIgPSBuZXdDYXJldFBvc2l0aW9uID8gbmV3Q2FyZXRQb3NpdGlvbiAtIGluc2VydGVkVHJpZ2dlck1vZGlmaWVyIDogbmV3Q2FyZXRQb3NpdGlvbjtcbiAgICAgICAgX3RoaXMyLnRleHRhcmVhUmVmLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIF90aGlzMi50ZXh0YXJlYVJlZi5zZWxlY3Rpb25FbmQgPSBuZXdDYXJldFBvc2l0aW9uO1xuXG4gICAgICAgIF90aGlzMi5fY2hhbmdlSGFuZGxlcigpO1xuXG4gICAgICAgIHZhciBzY3JvbGxUb3AgPSBfdGhpczIudGV4dGFyZWFSZWYuc2Nyb2xsVG9wO1xuXG4gICAgICAgIF90aGlzMi5zZXRDYXJldFBvc2l0aW9uKG5ld0NhcmV0UG9zaXRpb24pO1xuICAgICAgICAvKlxuICAgICAgICAgIENocm9tZSBkb2VzIG5vdCBtYWludGFpbiBzY3JvbGwgcG9zaXRpb25cbiAgICAgICAgICBSZWxldmFudCBkaXNjdXNzaW9uIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJzY29wZWlvL3JlYWN0LXRleHRhcmVhLWF1dG9jb21wbGV0ZS9wdWxsLzk3XG4gICAgICAgICovXG5cblxuICAgICAgICBpZiAod2luZG93LmNocm9tZSkge1xuICAgICAgICAgIF90aGlzMi50ZXh0YXJlYVJlZi5zY3JvbGxUb3AgPSBzY3JvbGxUb3A7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpczIuX2dldFRleHRUb1JlcGxhY2UgPSBmdW5jdGlvbiAoY3VycmVudFRyaWdnZXIpIHtcbiAgICAgIHZhciB0cmlnZ2VyU2V0dGluZ3MgPSBfdGhpczIucHJvcHMudHJpZ2dlcltjdXJyZW50VHJpZ2dlcl07XG4gICAgICBpZiAoIWN1cnJlbnRUcmlnZ2VyIHx8ICF0cmlnZ2VyU2V0dGluZ3MpIHJldHVybiBudWxsO1xuICAgICAgdmFyIG91dHB1dCA9IHRyaWdnZXJTZXR0aW5ncy5vdXRwdXQ7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSBcIm9iamVjdFwiICYmICghb3V0cHV0IHx8IHR5cGVvZiBvdXRwdXQgIT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ091dHB1dCBmdW5jdG9yIGlzIG5vdCBkZWZpbmVkISBJZiB5b3UgYXJlIHVzaW5nIGl0ZW1zIGFzIG9iamVjdCB5b3UgaGF2ZSB0byBkZWZpbmUgXCJvdXRwdXRcIiBmdW5jdGlvbi4gaHR0cHM6Ly9naXRodWIuY29tL3dlYnNjb3BlaW8vcmVhY3QtdGV4dGFyZWEtYXV0b2NvbXBsZXRlI3RyaWdnZXItdHlwZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG91dHB1dCkge1xuICAgICAgICAgIHZhciB0ZXh0VG9SZXBsYWNlID0gb3V0cHV0KGl0ZW0sIGN1cnJlbnRUcmlnZ2VyKTtcblxuICAgICAgICAgIGlmICh0ZXh0VG9SZXBsYWNlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHRleHRUb1JlcGxhY2UgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk91dHB1dCBmdW5jdG9yIHNob3VsZCByZXR1cm4gc3RyaW5nIG9yIG9iamVjdCBpbiBzaGFwZSB7dGV4dDogc3RyaW5nLCBjYXJldFBvc2l0aW9uOiBzdHJpbmcgfCBudW1iZXJ9LlxcbkdvdCBcXFwiXCIuY29uY2F0KFN0cmluZyh0ZXh0VG9SZXBsYWNlKSwgXCJcXFwiLiBDaGVjayB0aGUgaW1wbGVtZW50YXRpb24gZm9yIHRyaWdnZXIgXFxcIlwiKS5jb25jYXQoY3VycmVudFRyaWdnZXIsIFwiXFxcIlxcblxcblNlZSBodHRwczovL2dpdGh1Yi5jb20vd2Vic2NvcGVpby9yZWFjdC10ZXh0YXJlYS1hdXRvY29tcGxldGUjdHJpZ2dlci10eXBlIGZvciBtb3JlIGluZm9ybWF0aW9uLlxcblwiKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRleHRUb1JlcGxhY2UgPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0ZXh0VG9SZXBsYWNlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0ZXh0OiB0ZXh0VG9SZXBsYWNlLFxuICAgICAgICAgICAgICBjYXJldFBvc2l0aW9uOiBERUZBVUxUX0NBUkVUX1BPU0lUSU9OXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghdGV4dFRvUmVwbGFjZS50ZXh0ICYmIHR5cGVvZiB0ZXh0VG9SZXBsYWNlLnRleHQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPdXRwdXQgXFxcInRleHRcXFwiIGlzIG5vdCBkZWZpbmVkISBPYmplY3Qgc2hvdWxkIGhhcyBzaGFwZSB7dGV4dDogc3RyaW5nLCBjYXJldFBvc2l0aW9uOiBzdHJpbmcgfCBudW1iZXJ9LiBDaGVjayB0aGUgaW1wbGVtZW50YXRpb24gZm9yIHRyaWdnZXIgXFxcIlwiLmNvbmNhdChjdXJyZW50VHJpZ2dlciwgXCJcXFwiXFxuXCIpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXRleHRUb1JlcGxhY2UuY2FyZXRQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT3V0cHV0IFxcXCJjYXJldFBvc2l0aW9uXFxcIiBpcyBub3QgZGVmaW5lZCEgT2JqZWN0IHNob3VsZCBoYXMgc2hhcGUge3RleHQ6IHN0cmluZywgY2FyZXRQb3NpdGlvbjogc3RyaW5nIHwgbnVtYmVyfS4gQ2hlY2sgdGhlIGltcGxlbWVudGF0aW9uIGZvciB0cmlnZ2VyIFxcXCJcIi5jb25jYXQoY3VycmVudFRyaWdnZXIsIFwiXFxcIlxcblwiKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRleHRUb1JlcGxhY2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPdXRwdXQgaXRlbSBzaG91bGQgYmUgc3RyaW5nXFxuXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0ZXh0OiBcIlwiLmNvbmNhdChjdXJyZW50VHJpZ2dlcikuY29uY2F0KGl0ZW0pLmNvbmNhdChjdXJyZW50VHJpZ2dlciksXG4gICAgICAgICAgY2FyZXRQb3NpdGlvbjogREVGQVVMVF9DQVJFVF9QT1NJVElPTlxuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9nZXRDdXJyZW50VHJpZ2dlclNldHRpbmdzID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyO1xuICAgICAgaWYgKCFjdXJyZW50VHJpZ2dlcikgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gX3RoaXMyLnByb3BzLnRyaWdnZXJbY3VycmVudFRyaWdnZXJdO1xuICAgIH07XG5cbiAgICBfdGhpczIuX2dldFZhbHVlc0Zyb21Qcm92aWRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBfdGhpczIkc3RhdGUyID0gX3RoaXMyLnN0YXRlLFxuICAgICAgICAgIGN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyJHN0YXRlMi5jdXJyZW50VHJpZ2dlcixcbiAgICAgICAgICBhY3R1YWxUb2tlbiA9IF90aGlzMiRzdGF0ZTIuYWN0dWFsVG9rZW47XG5cbiAgICAgIHZhciB0cmlnZ2VyU2V0dGluZ3MgPSBfdGhpczIuX2dldEN1cnJlbnRUcmlnZ2VyU2V0dGluZ3MoKTtcblxuICAgICAgaWYgKCFjdXJyZW50VHJpZ2dlciB8fCAhdHJpZ2dlclNldHRpbmdzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGRhdGFQcm92aWRlciA9IHRyaWdnZXJTZXR0aW5ncy5kYXRhUHJvdmlkZXIsXG4gICAgICAgICAgY29tcG9uZW50ID0gdHJpZ2dlclNldHRpbmdzLmNvbXBvbmVudDtcblxuICAgICAgaWYgKHR5cGVvZiBkYXRhUHJvdmlkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmlnZ2VyIHByb3ZpZGVyIGhhcyB0byBiZSBhIGZ1bmN0aW9uIVwiKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgZGF0YUxvYWRpbmc6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgcHJvdmlkZWREYXRhID0gZGF0YVByb3ZpZGVyKGFjdHVhbFRva2VuKTtcblxuICAgICAgaWYgKCEocHJvdmlkZWREYXRhIGluc3RhbmNlb2YgUHJvbWlzZSkpIHtcbiAgICAgICAgcHJvdmlkZWREYXRhID0gUHJvbWlzZS5yZXNvbHZlKHByb3ZpZGVkRGF0YSk7XG4gICAgICB9XG5cbiAgICAgIHByb3ZpZGVkRGF0YS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRyaWdnZXIgcHJvdmlkZXIgaGFzIHRvIHByb3ZpZGUgYW4gYXJyYXkhXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnQgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbXBvbmVudCBzaG91bGQgYmUgZGVmaW5lZCFcIik7XG4gICAgICAgIH0gLy8gdGhyb3cgYXdheSBpZiB3ZSByZXNvbHZlZCBvbGQgdHJpZ2dlclxuXG5cbiAgICAgICAgaWYgKGN1cnJlbnRUcmlnZ2VyICE9PSBfdGhpczIuc3RhdGUuY3VycmVudFRyaWdnZXIpIHJldHVybjsgLy8gaWYgd2UgaGF2ZW4ndCByZXNvbHZlZCBhbnkgZGF0YSBsZXQncyBjbG9zZSB0aGUgYXV0b2NvbXBsZXRlXG5cbiAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIF90aGlzMi5fY2xvc2VBdXRvY29tcGxldGUoKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgZGF0YUxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgY29tcG9uZW50OiBjb21wb25lbnRcbiAgICAgICAgfSk7XG4gICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSkge1xuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlKGUubWVzc2FnZSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9nZXRTdWdnZXN0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBfdGhpczIkc3RhdGUzID0gX3RoaXMyLnN0YXRlLFxuICAgICAgICAgIGN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyJHN0YXRlMy5jdXJyZW50VHJpZ2dlcixcbiAgICAgICAgICBkYXRhID0gX3RoaXMyJHN0YXRlMy5kYXRhO1xuICAgICAgaWYgKCFjdXJyZW50VHJpZ2dlciB8fCAhZGF0YSB8fCBkYXRhICYmICFkYXRhLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9jcmVhdGVSZWdFeHAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgdHJpZ2dlciA9IF90aGlzMi5wcm9wcy50cmlnZ2VyOyAvLyBuZWdhdGl2ZSBsb29rYWhlYWQgdG8gbWF0Y2ggb25seSB0aGUgdHJpZ2dlciArIHRoZSBhY3R1YWwgdG9rZW4gPSBcImJsYWRod2Q6YWRhd2Q6d29yZCB0ZXN0XCIgPT4gXCI6d29yZFwiXG4gICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvODA1NzgyNy8yNzE5OTE3XG5cbiAgICAgIF90aGlzMi50b2tlblJlZ0V4cCA9IG5ldyBSZWdFeHAoXCIoXCIuY29uY2F0KE9iamVjdC5rZXlzKHRyaWdnZXIpIC8vIHRoZSBzb3J0IGlzIGltcG9ydGFudCBmb3IgbXVsdGktY2hhciBjb21ib3MgYXMgXCIva2lja1wiLCBcIi9cIlxuICAgICAgLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgaWYgKGEgPCBiKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYSA+IGIpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH0pLm1hcChmdW5jdGlvbiAoYSkge1xuICAgICAgICByZXR1cm4gZXNjYXBlUmVnZXgoYSk7XG4gICAgICB9KS5qb2luKFwifFwiKSwgXCIpKCg/Oig/IVxcXFwxKVteXFxcXHNdKSokKVwiKSk7XG4gICAgICBfdGhpczIudG9rZW5SZWdFeHBFbmRpbmcgPSBuZXcgUmVnRXhwKFwiKFwiLmNvbmNhdChPYmplY3Qua2V5cyh0cmlnZ2VyKSAvLyB0aGUgc29ydCBpcyBpbXBvcnRhbnQgZm9yIG11bHRpLWNoYXIgY29tYm9zIGFzIFwiL2tpY2tcIiwgXCIvXCJcbiAgICAgIC5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgIGlmIChhIDwgYikge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGEgPiBiKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9KS5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIGVzY2FwZVJlZ2V4KGEpO1xuICAgICAgfSkuam9pbihcInxcIiksIFwiKSRcIikpO1xuICAgIH07XG5cbiAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyO1xuXG4gICAgICBfdGhpczIuZXNjTGlzdGVuZXJEZXN0cm95KCk7XG5cbiAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgIGRhdGFMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgY3VycmVudFRyaWdnZXI6IG51bGxcbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRUcmlnZ2VyKSBfdGhpczIuX29uSXRlbUhpZ2hsaWdodGVkSGFuZGxlcihudWxsKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpczIuX2NsZWFuVXBQcm9wcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcm9wcyA9IF9vYmplY3RTcHJlYWQoe30sIF90aGlzMi5wcm9wcyk7XG5cbiAgICAgIHZhciBub3RTYWZlID0gW1wibG9hZGluZ0NvbXBvbmVudFwiLCBcImJvdW5kYXJpZXNFbGVtZW50XCIsIFwiY29udGFpbmVyU3R5bGVcIiwgXCJtaW5DaGFyXCIsIFwic2Nyb2xsVG9JdGVtXCIsIFwicmVmXCIsIFwiaW5uZXJSZWZcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQ2FyZXRQb3NpdGlvbkNoYW5nZVwiLCBcImNsYXNzTmFtZVwiLCBcInZhbHVlXCIsIFwidHJpZ2dlclwiLCBcImxpc3RTdHlsZVwiLCBcIml0ZW1TdHlsZVwiLCBcImNvbnRhaW5lclN0eWxlXCIsIFwibG9hZGVyU3R5bGVcIiwgXCJjbGFzc05hbWVcIiwgXCJjb250YWluZXJDbGFzc05hbWVcIiwgXCJsaXN0Q2xhc3NOYW1lXCIsIFwiaXRlbUNsYXNzTmFtZVwiLCBcImxvYWRlckNsYXNzTmFtZVwiLCBcImRyb3Bkb3duU3R5bGVcIiwgXCJkcm9wZG93bkNsYXNzTmFtZVwiLCBcIm1vdmVQb3B1cEFzWW91VHlwZVwiLCBcInRleHRBcmVhQ29tcG9uZW50XCIsIFwicmVuZGVyVG9Cb2R5XCIsIFwib25JdGVtU2VsZWN0ZWRcIiwgXCJvbkl0ZW1IaWdobGlnaHRlZFwiXTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5cbiAgICAgIGZvciAodmFyIHByb3AgaW4gcHJvcHMpIHtcbiAgICAgICAgaWYgKG5vdFNhZmUuaW5jbHVkZXMocHJvcCkpIGRlbGV0ZSBwcm9wc1twcm9wXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH07XG5cbiAgICBfdGhpczIuX2NoYW5nZUhhbmRsZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIF90aGlzMiRwcm9wcyA9IF90aGlzMi5wcm9wcyxcbiAgICAgICAgICB0cmlnZ2VyID0gX3RoaXMyJHByb3BzLnRyaWdnZXIsXG4gICAgICAgICAgb25DaGFuZ2UgPSBfdGhpczIkcHJvcHMub25DaGFuZ2UsXG4gICAgICAgICAgbWluQ2hhciA9IF90aGlzMiRwcm9wcy5taW5DaGFyLFxuICAgICAgICAgIG9uQ2FyZXRQb3NpdGlvbkNoYW5nZSA9IF90aGlzMiRwcm9wcy5vbkNhcmV0UG9zaXRpb25DaGFuZ2UsXG4gICAgICAgICAgbW92ZVBvcHVwQXNZb3VUeXBlID0gX3RoaXMyJHByb3BzLm1vdmVQb3B1cEFzWW91VHlwZTtcbiAgICAgIHZhciBfdGhpczIkc3RhdGU0ID0gX3RoaXMyLnN0YXRlLFxuICAgICAgICAgIHRvcCA9IF90aGlzMiRzdGF0ZTQudG9wLFxuICAgICAgICAgIGxlZnQgPSBfdGhpczIkc3RhdGU0LmxlZnQ7XG4gICAgICB2YXIgZXZlbnQgPSBlO1xuXG4gICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgIC8vIGZpcmUgb25DaGFuZ2UgZXZlbnQgYWZ0ZXIgc3VjY2Vzc2Z1bCBzZWxlY3Rpb25cbiAgICAgICAgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoXCJjaGFuZ2VcIiwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgX3RoaXMyLnRleHRhcmVhUmVmLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICB2YXIgdGV4dGFyZWEgPSBldmVudC50YXJnZXQgfHwgX3RoaXMyLnRleHRhcmVhUmVmOyAvLyBmYWxsYmFjayB0byBzdXBwb3J0IFNoYWRvdyBET01cblxuICAgICAgdmFyIHNlbGVjdGlvbkVuZCA9IHRleHRhcmVhLnNlbGVjdGlvbkVuZDtcbiAgICAgIHZhciB2YWx1ZSA9IHRleHRhcmVhLnZhbHVlO1xuICAgICAgX3RoaXMyLmxhc3RWYWx1ZUJ1YmJsZWRFdmVudCA9IHZhbHVlO1xuXG4gICAgICBpZiAob25DaGFuZ2UgJiYgZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucGVyc2lzdCAmJiBldmVudC5wZXJzaXN0KCk7XG4gICAgICAgIG9uQ2hhbmdlKG5ldyBQcm94eShldmVudCwge1xuICAgICAgICAgIGdldDogZnVuY3Rpb24gZ2V0KG9yaWdpbmFsLCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHByb3AgPT09IFwidGFyZ2V0XCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRleHRhcmVhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQob3JpZ2luYWwsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9uQ2FyZXRQb3NpdGlvbkNoYW5nZSkge1xuICAgICAgICB2YXIgY2FyZXRQb3NpdGlvbiA9IF90aGlzMi5nZXRDYXJldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgb25DYXJldFBvc2l0aW9uQ2hhbmdlKGNhcmV0UG9zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgc2V0VG9wTGVmdCA9IGZ1bmN0aW9uIHNldFRvcExlZnQoKSB7XG4gICAgICAgIHZhciBfZ2V0Q2FyZXRDb29yZGluYXRlcyA9IGdldENhcmV0Q29vcmRpbmF0ZXModGV4dGFyZWEsIHNlbGVjdGlvbkVuZCksXG4gICAgICAgICAgICBuZXdUb3AgPSBfZ2V0Q2FyZXRDb29yZGluYXRlcy50b3AsXG4gICAgICAgICAgICBuZXdMZWZ0ID0gX2dldENhcmV0Q29vcmRpbmF0ZXMubGVmdDtcblxuICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgIC8vIG1ha2UgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGV4dGFyZWFcbiAgICAgICAgICB0b3A6IG5ld1RvcCAtIF90aGlzMi50ZXh0YXJlYVJlZi5zY3JvbGxUb3AgfHwgMCxcbiAgICAgICAgICBsZWZ0OiBuZXdMZWZ0XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgdmFyIGNsZWFuTGFzdFRyaWdnZXIgPSBmdW5jdGlvbiBjbGVhbkxhc3RUcmlnZ2VyKHRyaWdnZXJMZW5ndGgpIHtcbiAgICAgICAgX3RoaXMyLmxhc3RUcmlnZ2VyID0gc2VsZWN0aW9uRW5kIC0gdHJpZ2dlckxlbmd0aDtcblxuICAgICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG5cbiAgICAgICAgc2V0VG9wTGVmdCgpO1xuICAgICAgfTtcblxuICAgICAgaWYgKHNlbGVjdGlvbkVuZCA8PSBfdGhpczIubGFzdFRyaWdnZXIpIHtcbiAgICAgICAgdmFyIF9hZmZlY3RlZFRleHRhcmVhVmFsdWUgPSB2YWx1ZS5zbGljZSgwLCBzZWxlY3Rpb25FbmQpO1xuXG4gICAgICAgIHZhciBfbmV3VHJpZ2dlciA9IF90aGlzMi50b2tlblJlZ0V4cC5leGVjKF9hZmZlY3RlZFRleHRhcmVhVmFsdWUpO1xuXG4gICAgICAgIGNsZWFuTGFzdFRyaWdnZXIoX25ld1RyaWdnZXIgPyBfbmV3VHJpZ2dlclswXS5sZW5ndGggOiAwKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGFmZmVjdGVkVGV4dGFyZWFWYWx1ZSA9IHZhbHVlLnNsaWNlKF90aGlzMi5sYXN0VHJpZ2dlciwgc2VsZWN0aW9uRW5kKTtcblxuICAgICAgdmFyIHRva2VuTWF0Y2ggPSBfdGhpczIudG9rZW5SZWdFeHAuZXhlYyhhZmZlY3RlZFRleHRhcmVhVmFsdWUpO1xuXG4gICAgICB2YXIgbGFzdFRva2VuID0gdG9rZW5NYXRjaCAmJiB0b2tlbk1hdGNoWzBdO1xuICAgICAgdmFyIGN1cnJlbnRUcmlnZ2VyID0gdG9rZW5NYXRjaCAmJiB0b2tlbk1hdGNoWzFdIHx8IG51bGw7XG4gICAgICB2YXIgY3VycmVudFRyaWdnZXJMZW5ndGggPSBjdXJyZW50VHJpZ2dlciA/IGN1cnJlbnRUcmlnZ2VyLmxlbmd0aCAtIDEgOiAwOyAvLyB3aXRoIHRoaXMgYXBwcm9hY2ggd2Ugd2FudCB0byBrbm93IGlmIHRoZSB1c2VyIGp1c3QgaW5zZXJ0ZWQgYSBuZXcgdHJpZ2dlciBzZXF1ZW5jZVxuXG4gICAgICB2YXIgbmV3VHJpZ2dlciA9IF90aGlzMi50b2tlblJlZ0V4cEVuZGluZy5leGVjKGFmZmVjdGVkVGV4dGFyZWFWYWx1ZSk7XG5cbiAgICAgIGlmIChuZXdUcmlnZ2VyKSB7XG4gICAgICAgIGNsZWFuTGFzdFRyaWdnZXIobmV3VHJpZ2dlclswXS5sZW5ndGgpO1xuICAgICAgfSBlbHNlIGlmICghX3RoaXMyLl9pc0F1dG9jb21wbGV0ZU9wZW4oKSkge1xuICAgICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgICAvKlxuICAgICAgIGlmIHdlIGxvc3QgdGhlIHRyaWdnZXIgdG9rZW4gb3IgdGhlcmUgaXMgbm8gZm9sbG93aW5nIGNoYXJhY3RlciB3ZSB3YW50IHRvIGNsb3NlXG4gICAgICAgdGhlIGF1dG9jb21wbGV0ZVxuICAgICAgKi9cblxuXG4gICAgICBpZiAoKCFsYXN0VG9rZW4gfHwgbGFzdFRva2VuLmxlbmd0aCA8PSBtaW5DaGFyICsgY3VycmVudFRyaWdnZXJMZW5ndGgpICYmICggLy8gY2hlY2sgaWYgb3VyIGN1cnJlbnQgdHJpZ2dlciBkaXNhbGxvd3Mgd2hpdGVzcGFjZVxuICAgICAgX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyICYmICF0cmlnZ2VyW190aGlzMi5zdGF0ZS5jdXJyZW50VHJpZ2dlcl0uYWxsb3dXaGl0ZXNwYWNlIHx8ICFfdGhpczIuc3RhdGUuY3VycmVudFRyaWdnZXIpKSB7XG4gICAgICAgIF90aGlzMi5fY2xvc2VBdXRvY29tcGxldGUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgY29kZSBoYXMgdG8gYmUgc3luYyB0aGF0IGlzIHRoZSByZWFzb24gd2h5IHdlIG9idGFpbiB0aGUgY3VycmVudFRyaWdnZXJcbiAgICAgICAqIGZyb20gY3VycmVudFRyaWdnZXIgbm90IHRoaXMuc3RhdGUuY3VycmVudFRyaWdnZXJcbiAgICAgICAqXG4gICAgICAgKiBDaGVjayBpZiB0aGUgY3VycmVudGx5IHR5cGVkIHRva2VuIGhhcyB0byBiZSBhZnRlcldoaXRlc3BhY2UsIG9yIG5vdC5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIHNldHRpbmcgbWVhbnMgdGhhdCB0aGVyZSBoYXMgdG8gYmUgd2hpdGVzcGFjZSBiZWZvcmUgdGhlIHRva2VuIChvbiBpdCBoYXMgdG8gYmUgdGhlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdHlwZWQgaW50byB0ZXh0YXJlYSlcbiAgICAgICAqL1xuXG5cbiAgICAgIGlmIChjdXJyZW50VHJpZ2dlciAmJiB0cmlnZ2VyW2N1cnJlbnRUcmlnZ2VyXS5hZnRlcldoaXRlc3BhY2UgJiYgIS9cXHMvLnRlc3QodmFsdWVbc2VsZWN0aW9uRW5kIC0gbGFzdFRva2VuLmxlbmd0aCAtIDFdKSAmJiB2YWx1ZVtzZWxlY3Rpb25FbmQgLSBsYXN0VG9rZW4ubGVuZ3RoIC0gMV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAgIElmIG91ciBjdXJyZW50IHRyaWdnZXIgYWxsb3dzIHdoaXRlc3BhY2VcbiAgICAgICAgZ2V0IHRoZSBjb3JyZWN0IHRva2VuIGZvciBEYXRhUHJvdmlkZXIsIHNvIHdlIG5lZWQgdG8gY29uc3RydWN0IG5ldyBSZWdFeHBcbiAgICAgICAqL1xuXG5cbiAgICAgIGlmIChfdGhpczIuc3RhdGUuY3VycmVudFRyaWdnZXIgJiYgdHJpZ2dlcltfdGhpczIuc3RhdGUuY3VycmVudFRyaWdnZXJdLmFsbG93V2hpdGVzcGFjZSkge1xuICAgICAgICB0b2tlbk1hdGNoID0gbmV3IFJlZ0V4cChcIlwiLmNvbmNhdChlc2NhcGVSZWdleChfdGhpczIuc3RhdGUuY3VycmVudFRyaWdnZXIpLCBcIi4qJFwiKSkuZXhlYyh2YWx1ZS5zbGljZSgwLCBzZWxlY3Rpb25FbmQpKTtcbiAgICAgICAgbGFzdFRva2VuID0gdG9rZW5NYXRjaCAmJiB0b2tlbk1hdGNoWzBdO1xuXG4gICAgICAgIGlmICghbGFzdFRva2VuKSB7XG4gICAgICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFRyaWdnZXIgPSBPYmplY3Qua2V5cyh0cmlnZ2VyKS5maW5kKGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgcmV0dXJuIGEuc2xpY2UoMCwgY3VycmVudFRyaWdnZXJMZW5ndGggKyAxKSA9PT0gbGFzdFRva2VuLnNsaWNlKDAsIGN1cnJlbnRUcmlnZ2VyTGVuZ3RoICsgMSk7XG4gICAgICAgIH0pIHx8IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHZhciBhY3R1YWxUb2tlbiA9IGxhc3RUb2tlbi5zbGljZSgxKTsgLy8gaWYgdHJpZ2dlciBpcyBub3QgY29uZmlndXJlZCBzdGVwIG91dCBmcm9tIHRoZSBmdW5jdGlvbiwgb3RoZXJ3aXNlIHByb2NlZWRcblxuICAgICAgaWYgKCFjdXJyZW50VHJpZ2dlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChtb3ZlUG9wdXBBc1lvdVR5cGUgfHwgdG9wID09PSBudWxsICYmIGxlZnQgPT09IG51bGwgfHwgLy8gaWYgdGhlIHRyaWdnZXIgZ290IGNoYW5nZWQsIGxldCdzIHJlcG9zaXRpb24gdGhlIGF1dG9jb21wbGV0ZVxuICAgICAgX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyICE9PSBjdXJyZW50VHJpZ2dlcikge1xuICAgICAgICBzZXRUb3BMZWZ0KCk7XG4gICAgICB9XG5cbiAgICAgIF90aGlzMi5lc2NMaXN0ZW5lckluaXQoKTtcblxuICAgICAgdmFyIHRleHRUb1JlcGxhY2UgPSBfdGhpczIuX2dldFRleHRUb1JlcGxhY2UoY3VycmVudFRyaWdnZXIpO1xuXG4gICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICBzZWxlY3Rpb25FbmQ6IHNlbGVjdGlvbkVuZCxcbiAgICAgICAgY3VycmVudFRyaWdnZXI6IGN1cnJlbnRUcmlnZ2VyLFxuICAgICAgICB0ZXh0VG9SZXBsYWNlOiB0ZXh0VG9SZXBsYWNlLFxuICAgICAgICBhY3R1YWxUb2tlbjogYWN0dWFsVG9rZW5cbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBfdGhpczIuX2dldFZhbHVlc0Zyb21Qcm92aWRlcigpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UoZXJyLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9zZWxlY3RIYW5kbGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpczIkcHJvcHMyID0gX3RoaXMyLnByb3BzLFxuICAgICAgICAgIG9uQ2FyZXRQb3NpdGlvbkNoYW5nZSA9IF90aGlzMiRwcm9wczIub25DYXJldFBvc2l0aW9uQ2hhbmdlLFxuICAgICAgICAgIG9uU2VsZWN0ID0gX3RoaXMyJHByb3BzMi5vblNlbGVjdDtcblxuICAgICAgaWYgKG9uQ2FyZXRQb3NpdGlvbkNoYW5nZSkge1xuICAgICAgICB2YXIgY2FyZXRQb3NpdGlvbiA9IF90aGlzMi5nZXRDYXJldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgb25DYXJldFBvc2l0aW9uQ2hhbmdlKGNhcmV0UG9zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICBpZiAob25TZWxlY3QpIHtcbiAgICAgICAgZS5wZXJzaXN0KCk7XG4gICAgICAgIG9uU2VsZWN0KGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpczIuX3Nob3VsZFN0YXlPcGVuID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBlbCA9IGUucmVsYXRlZFRhcmdldDsgLy8gSUUxMSBkb2Vzbid0IGtub3cgYWJvdXQgYHJlbGF0ZWRUYXJnZXRgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80OTMyNTE5Ni8yNzE5OTE3XG5cbiAgICAgIGlmIChlbCA9PT0gbnVsbCkge1xuICAgICAgICBlbCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpczIuZHJvcGRvd25SZWYgJiYgZWwgaW5zdGFuY2VvZiBOb2RlICYmIF90aGlzMi5kcm9wZG93blJlZi5jb250YWlucyhlbCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9vbkNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBvbkNsaWNrID0gX3RoaXMyLnByb3BzLm9uQ2xpY2s7XG5cbiAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgIGUucGVyc2lzdCgpO1xuICAgICAgICBvbkNsaWNrKGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoX3RoaXMyLl9zaG91bGRTdGF5T3BlbihlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIF90aGlzMi5fY2xvc2VBdXRvY29tcGxldGUoKTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9vbkJsdXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIG9uQmx1ciA9IF90aGlzMi5wcm9wcy5vbkJsdXI7XG5cbiAgICAgIGlmIChvbkJsdXIpIHtcbiAgICAgICAgZS5wZXJzaXN0KCk7XG4gICAgICAgIG9uQmx1cihlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKF90aGlzMi5fc2hvdWxkU3RheU9wZW4oZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIF90aGlzMi5fb25TY3JvbGxIYW5kbGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuICAgIH07XG5cbiAgICBfdGhpczIuX29uSXRlbUhpZ2hsaWdodGVkSGFuZGxlciA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgb25JdGVtSGlnaGxpZ2h0ZWQgPSBfdGhpczIucHJvcHMub25JdGVtSGlnaGxpZ2h0ZWQ7XG4gICAgICB2YXIgY3VycmVudFRyaWdnZXIgPSBfdGhpczIuc3RhdGUuY3VycmVudFRyaWdnZXI7XG5cbiAgICAgIGlmIChvbkl0ZW1IaWdobGlnaHRlZCkge1xuICAgICAgICBpZiAodHlwZW9mIG9uSXRlbUhpZ2hsaWdodGVkID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBvbkl0ZW1IaWdobGlnaHRlZCh7XG4gICAgICAgICAgICBjdXJyZW50VHJpZ2dlcjogY3VycmVudFRyaWdnZXIsXG4gICAgICAgICAgICBpdGVtOiBpdGVtXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYG9uSXRlbUhpZ2hsaWdodGVkYCBoYXMgdG8gYmUgYSBmdW5jdGlvblwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpczIuX2Ryb3Bkb3duU2Nyb2xsID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBzY3JvbGxUb0l0ZW0gPSBfdGhpczIucHJvcHMuc2Nyb2xsVG9JdGVtO1xuICAgICAgaWYgKCFzY3JvbGxUb0l0ZW0pIHJldHVybjtcblxuICAgICAgaWYgKHNjcm9sbFRvSXRlbSA9PT0gdHJ1ZSkge1xuICAgICAgICBkZWZhdWx0U2Nyb2xsVG9JdGVtKF90aGlzMi5kcm9wZG93blJlZiwgaXRlbSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBzY3JvbGxUb0l0ZW0gIT09IFwiZnVuY3Rpb25cIiB8fCBzY3JvbGxUb0l0ZW0ubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImBzY3JvbGxUb0l0ZW1gIGhhcyB0byBiZSBib29sZWFuICh0cnVlIGZvciBkZWZhdWx0IGltcGxlbWVudGF0aW9uKSBvciBmdW5jdGlvbiB3aXRoIHR3byBwYXJhbWV0ZXJzOiBjb250YWluZXIsIGl0ZW0uXCIpO1xuICAgICAgfVxuXG4gICAgICBzY3JvbGxUb0l0ZW0oX3RoaXMyLmRyb3Bkb3duUmVmLCBpdGVtKTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9pc0F1dG9jb21wbGV0ZU9wZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3RoaXMyJHN0YXRlNSA9IF90aGlzMi5zdGF0ZSxcbiAgICAgICAgICBkYXRhTG9hZGluZyA9IF90aGlzMiRzdGF0ZTUuZGF0YUxvYWRpbmcsXG4gICAgICAgICAgY3VycmVudFRyaWdnZXIgPSBfdGhpczIkc3RhdGU1LmN1cnJlbnRUcmlnZ2VyO1xuXG4gICAgICB2YXIgc3VnZ2VzdGlvbkRhdGEgPSBfdGhpczIuX2dldFN1Z2dlc3Rpb25zKCk7XG5cbiAgICAgIHJldHVybiAhISgoZGF0YUxvYWRpbmcgfHwgc3VnZ2VzdGlvbkRhdGEpICYmIGN1cnJlbnRUcmlnZ2VyKTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl90ZXh0YXJlYVJlZiA9IGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIC8vICRGbG93Rml4TWUgLSByZWYgaXMgYWN0dWFsbHkgYSBgP0hUTUxUZXh0QXJlYUVsZW1lbnRgXG4gICAgICBfdGhpczIucHJvcHMuaW5uZXJSZWYgJiYgX3RoaXMyLnByb3BzLmlubmVyUmVmKHJlZik7XG4gICAgICBfdGhpczIudGV4dGFyZWFSZWYgPSByZWY7XG4gICAgfTtcblxuICAgIF90aGlzMi5sYXN0VHJpZ2dlciA9IDA7XG4gICAgX3RoaXMyLmVzY0xpc3RlbmVyID0gbnVsbDtcbiAgICB2YXIgX3RoaXMyJHByb3BzMyA9IF90aGlzMi5wcm9wcyxcbiAgICAgICAgbG9hZGluZ0NvbXBvbmVudCA9IF90aGlzMiRwcm9wczMubG9hZGluZ0NvbXBvbmVudCxcbiAgICAgICAgX3RyaWdnZXIgPSBfdGhpczIkcHJvcHMzLnRyaWdnZXIsXG4gICAgICAgIF92YWx1ZSA9IF90aGlzMiRwcm9wczMudmFsdWU7XG4gICAgaWYgKF92YWx1ZSkgX3RoaXMyLnN0YXRlLnZhbHVlID0gX3ZhbHVlO1xuXG4gICAgX3RoaXMyLl9jcmVhdGVSZWdFeHAoKTtcblxuICAgIGlmICghbG9hZGluZ0NvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUlRBOiBsb2FkaW5nQ29tcG9uZW50IGlzIG5vdCBkZWZpbmVkXCIpO1xuICAgIH1cblxuICAgIGlmICghX3RyaWdnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJUQTogdHJpZ2dlciBpcyBub3QgZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3RoaXMyO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFJlYWN0VGV4dGFyZWFBdXRvY29tcGxldGUsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgTGlzdGVuZXJzLnN0YXJ0TGlzdGVuKHRoaXMudGV4dGFyZWFSZWYpOyAvLyBoYW5kbGUgY2FyZXQgY2hhbmdlXG5cbiAgICAgIHRoaXMudGV4dGFyZWFSZWYgJiYgdGhpcy50ZXh0YXJlYVJlZi5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIiwgdGhpcy5faGFuZGxlQ2FyZXRDaGFuZ2UpO1xuICAgICAgdGhpcy50ZXh0YXJlYVJlZiAmJiB0aGlzLnRleHRhcmVhUmVmLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVDYXJldENoYW5nZSk7XG4gICAgICB0aGlzLnRleHRhcmVhUmVmICYmIHRoaXMudGV4dGFyZWFSZWYuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5faGFuZGxlQ2FyZXRDaGFuZ2UpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKF9yZWYyKSB7XG4gICAgICB2YXIgb2xkVHJpZ2dlciA9IF9yZWYyLnRyaWdnZXIsXG4gICAgICAgICAgb2xkVmFsdWUgPSBfcmVmMi52YWx1ZTtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHRyaWdnZXIgPSBfdGhpcyRwcm9wczIudHJpZ2dlcixcbiAgICAgICAgICB2YWx1ZSA9IF90aGlzJHByb3BzMi52YWx1ZTtcblxuICAgICAgaWYgKE9iamVjdC5rZXlzKHRyaWdnZXIpLmpvaW4oXCJcIikgIT09IE9iamVjdC5rZXlzKG9sZFRyaWdnZXIpLmpvaW4oXCJcIikpIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlUmVnRXhwKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvbGRWYWx1ZSAhPT0gdmFsdWUgJiYgdGhpcy5sYXN0VmFsdWVCdWJibGVkRXZlbnQgIT09IHZhbHVlKSB7XG4gICAgICAgIHRoaXMubGFzdFRyaWdnZXIgPSAwO1xuXG4gICAgICAgIHRoaXMuX2NoYW5nZUhhbmRsZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLmVzY0xpc3RlbmVyRGVzdHJveSgpO1xuICAgICAgTGlzdGVuZXJzLnN0b3BMaXN0ZW4odGhpcy50ZXh0YXJlYVJlZik7IC8vIGhhbmRsZSBjYXJldCBjaGFuZ2VcblxuICAgICAgdGhpcy50ZXh0YXJlYVJlZiAmJiB0aGlzLnRleHRhcmVhUmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCB0aGlzLl9oYW5kbGVDYXJldENoYW5nZSk7XG4gICAgICB0aGlzLnRleHRhcmVhUmVmICYmIHRoaXMudGV4dGFyZWFSZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuX2hhbmRsZUNhcmV0Q2hhbmdlKTtcbiAgICAgIHRoaXMudGV4dGFyZWFSZWYgJiYgdGhpcy50ZXh0YXJlYVJlZi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9oYW5kbGVDYXJldENoYW5nZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzMyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgTG9hZGVyID0gX3RoaXMkcHJvcHMzLmxvYWRpbmdDb21wb25lbnQsXG4gICAgICAgICAgc3R5bGUgPSBfdGhpcyRwcm9wczMuc3R5bGUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMzLmNsYXNzTmFtZSxcbiAgICAgICAgICBsaXN0U3R5bGUgPSBfdGhpcyRwcm9wczMubGlzdFN0eWxlLFxuICAgICAgICAgIGl0ZW1TdHlsZSA9IF90aGlzJHByb3BzMy5pdGVtU3R5bGUsXG4gICAgICAgICAgYm91bmRhcmllc0VsZW1lbnQgPSBfdGhpcyRwcm9wczMuYm91bmRhcmllc0VsZW1lbnQsXG4gICAgICAgICAgbW92ZVBvcHVwQXNZb3VUeXBlID0gX3RoaXMkcHJvcHMzLm1vdmVQb3B1cEFzWW91VHlwZSxcbiAgICAgICAgICBsaXN0Q2xhc3NOYW1lID0gX3RoaXMkcHJvcHMzLmxpc3RDbGFzc05hbWUsXG4gICAgICAgICAgaXRlbUNsYXNzTmFtZSA9IF90aGlzJHByb3BzMy5pdGVtQ2xhc3NOYW1lLFxuICAgICAgICAgIGRyb3Bkb3duQ2xhc3NOYW1lID0gX3RoaXMkcHJvcHMzLmRyb3Bkb3duQ2xhc3NOYW1lLFxuICAgICAgICAgIGRyb3Bkb3duU3R5bGUgPSBfdGhpcyRwcm9wczMuZHJvcGRvd25TdHlsZSxcbiAgICAgICAgICBjb250YWluZXJTdHlsZSA9IF90aGlzJHByb3BzMy5jb250YWluZXJTdHlsZSxcbiAgICAgICAgICBjb250YWluZXJDbGFzc05hbWUgPSBfdGhpcyRwcm9wczMuY29udGFpbmVyQ2xhc3NOYW1lLFxuICAgICAgICAgIGxvYWRlclN0eWxlID0gX3RoaXMkcHJvcHMzLmxvYWRlclN0eWxlLFxuICAgICAgICAgIGxvYWRlckNsYXNzTmFtZSA9IF90aGlzJHByb3BzMy5sb2FkZXJDbGFzc05hbWUsXG4gICAgICAgICAgdGV4dEFyZWFDb21wb25lbnQgPSBfdGhpcyRwcm9wczMudGV4dEFyZWFDb21wb25lbnQsXG4gICAgICAgICAgcmVuZGVyVG9Cb2R5ID0gX3RoaXMkcHJvcHMzLnJlbmRlclRvQm9keTtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZSA9IHRoaXMuc3RhdGUsXG4gICAgICAgICAgbGVmdCA9IF90aGlzJHN0YXRlLmxlZnQsXG4gICAgICAgICAgdG9wID0gX3RoaXMkc3RhdGUudG9wLFxuICAgICAgICAgIGRhdGFMb2FkaW5nID0gX3RoaXMkc3RhdGUuZGF0YUxvYWRpbmcsXG4gICAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkc3RhdGUuY29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlID0gX3RoaXMkc3RhdGUudmFsdWUsXG4gICAgICAgICAgdGV4dFRvUmVwbGFjZSA9IF90aGlzJHN0YXRlLnRleHRUb1JlcGxhY2U7XG5cbiAgICAgIHZhciBpc0F1dG9jb21wbGV0ZU9wZW4gPSB0aGlzLl9pc0F1dG9jb21wbGV0ZU9wZW4oKTtcblxuICAgICAgdmFyIHN1Z2dlc3Rpb25EYXRhID0gdGhpcy5fZ2V0U3VnZ2VzdGlvbnMoKTtcblxuICAgICAgdmFyIGV4dHJhQXR0cnMgPSB7fTtcbiAgICAgIHZhciBUZXh0QXJlYUNvbXBvbmVudDtcblxuICAgICAgaWYgKHRleHRBcmVhQ29tcG9uZW50LmNvbXBvbmVudCkge1xuICAgICAgICBUZXh0QXJlYUNvbXBvbmVudCA9IHRleHRBcmVhQ29tcG9uZW50LmNvbXBvbmVudDtcbiAgICAgICAgZXh0cmFBdHRyc1t0ZXh0QXJlYUNvbXBvbmVudC5yZWZdID0gdGhpcy5fdGV4dGFyZWFSZWY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBUZXh0QXJlYUNvbXBvbmVudCA9IHRleHRBcmVhQ29tcG9uZW50O1xuICAgICAgICBleHRyYUF0dHJzLnJlZiA9IHRoaXMuX3RleHRhcmVhUmVmO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJydGEgXCIuY29uY2F0KGRhdGFMb2FkaW5nID09PSB0cnVlID8gXCJydGEtLWxvYWRpbmdcIiA6IFwiXCIsIFwiIFwiKS5jb25jYXQoY29udGFpbmVyQ2xhc3NOYW1lIHx8IFwiXCIpLFxuICAgICAgICBzdHlsZTogY29udGFpbmVyU3R5bGVcbiAgICAgIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGV4dEFyZWFDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2NsZWFuVXBQcm9wcygpLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJydGFfX3RleHRhcmVhIFwiLmNvbmNhdChjbGFzc05hbWUgfHwgXCJcIiksXG4gICAgICAgIG9uQ2hhbmdlOiB0aGlzLl9jaGFuZ2VIYW5kbGVyLFxuICAgICAgICBvblNlbGVjdDogdGhpcy5fc2VsZWN0SGFuZGxlcixcbiAgICAgICAgb25TY3JvbGw6IHRoaXMuX29uU2Nyb2xsSGFuZGxlcixcbiAgICAgICAgb25DbGljazogLy8gVGhlIHRleHRhcmVhIGl0c2VsZiBpcyBvdXRzaWRlIHRoZSBhdXRvc2VsZWN0IGRyb3Bkb3duLlxuICAgICAgICB0aGlzLl9vbkNsaWNrLFxuICAgICAgICBvbkJsdXI6IHRoaXMuX29uQmx1cixcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgIH0sIGV4dHJhQXR0cnMpKSwgaXNBdXRvY29tcGxldGVPcGVuICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXV0b2NvbXBsZXRlLCB7XG4gICAgICAgIGlubmVyUmVmOiBmdW5jdGlvbiBpbm5lclJlZihyZWYpIHtcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lXG4gICAgICAgICAgX3RoaXMzLmRyb3Bkb3duUmVmID0gcmVmO1xuICAgICAgICB9LFxuICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgbGVmdDogbGVmdCxcbiAgICAgICAgc3R5bGU6IGRyb3Bkb3duU3R5bGUsXG4gICAgICAgIGNsYXNzTmFtZTogZHJvcGRvd25DbGFzc05hbWUsXG4gICAgICAgIG1vdmVQb3B1cEFzWW91VHlwZTogbW92ZVBvcHVwQXNZb3VUeXBlLFxuICAgICAgICBib3VuZGFyaWVzRWxlbWVudDogYm91bmRhcmllc0VsZW1lbnQsXG4gICAgICAgIHRleHRhcmVhUmVmOiB0aGlzLnRleHRhcmVhUmVmLFxuICAgICAgICByZW5kZXJUb0JvZHk6IHJlbmRlclRvQm9keVxuICAgICAgfSwgc3VnZ2VzdGlvbkRhdGEgJiYgY29tcG9uZW50ICYmIHRleHRUb1JlcGxhY2UgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChMaXN0LCB7XG4gICAgICAgIHZhbHVlczogc3VnZ2VzdGlvbkRhdGEsXG4gICAgICAgIGNvbXBvbmVudDogY29tcG9uZW50LFxuICAgICAgICBzdHlsZTogbGlzdFN0eWxlLFxuICAgICAgICBjbGFzc05hbWU6IGxpc3RDbGFzc05hbWUsXG4gICAgICAgIGl0ZW1DbGFzc05hbWU6IGl0ZW1DbGFzc05hbWUsXG4gICAgICAgIGl0ZW1TdHlsZTogaXRlbVN0eWxlLFxuICAgICAgICBnZXRUZXh0VG9SZXBsYWNlOiB0ZXh0VG9SZXBsYWNlLFxuICAgICAgICBvbkl0ZW1IaWdobGlnaHRlZDogdGhpcy5fb25JdGVtSGlnaGxpZ2h0ZWRIYW5kbGVyLFxuICAgICAgICBvblNlbGVjdDogdGhpcy5fb25TZWxlY3QsXG4gICAgICAgIGRyb3Bkb3duU2Nyb2xsOiB0aGlzLl9kcm9wZG93blNjcm9sbFxuICAgICAgfSksIGRhdGFMb2FkaW5nICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwicnRhX19sb2FkZXIgXCIuY29uY2F0KHN1Z2dlc3Rpb25EYXRhICE9PSBudWxsID8gXCJydGFfX2xvYWRlci0tc3VnZ2VzdGlvbi1kYXRhXCIgOiBcInJ0YV9fbG9hZGVyLS1lbXB0eS1zdWdnZXN0aW9uLWRhdGFcIiwgXCIgXCIpLmNvbmNhdChsb2FkZXJDbGFzc05hbWUgfHwgXCJcIiksXG4gICAgICAgIHN0eWxlOiBsb2FkZXJTdHlsZVxuICAgICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkZXIsIHtcbiAgICAgICAgZGF0YTogc3VnZ2VzdGlvbkRhdGFcbiAgICAgIH0pKSkpO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoX3JlZjMpIHtcbiAgICAgIHZhciB2YWx1ZSA9IF9yZWYzLnZhbHVlO1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICB9O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5SZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlLmRlZmF1bHRQcm9wcyA9IHtcbiAgbW92ZVBvcHVwQXNZb3VUeXBlOiBmYWxzZSxcbiAgdmFsdWU6IG51bGwsXG4gIG1pbkNoYXI6IDEsXG4gIGJvdW5kYXJpZXNFbGVtZW50OiBcImJvZHlcIixcbiAgc2Nyb2xsVG9JdGVtOiB0cnVlLFxuICB0ZXh0QXJlYUNvbXBvbmVudDogXCJ0ZXh0YXJlYVwiLFxuICByZW5kZXJUb0JvZHk6IGZhbHNlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlO1xuIiwiLy8gQ3JlZGl0cyBnbyB0byBMaWFtJ3MgUGVyaW9kaWMgTm90ZXMgUGx1Z2luOiBodHRwczovL2dpdGh1Yi5jb20vbGlhbWNhaW4vb2JzaWRpYW4tcGVyaW9kaWMtbm90ZXNcclxuLy8gaW1wb3J0IHsgVGV4dElucHV0U3VnZ2VzdCB9IGZyb20gXCIuL29iU3VnZ2VzdFwiO1xyXG5pbXBvcnQgbWVtb1NlcnZpY2UgZnJvbSAnLi4vc2VydmljZXMvbWVtb1NlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IHVzZWRUYWdzID0gKHNlbGV0ZWNUZXh0OiBzdHJpbmcpID0+IHtcclxuICAgIFxyXG4gICAgY29uc3QgeyB0YWdzIH0gPSBtZW1vU2VydmljZS5nZXRTdGF0ZSgpO1xyXG4gICAgY29uc3QgbG93ZXJDYXNlSW5wdXRTdHIgPSBzZWxldGVjVGV4dC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgY29uc3QgdXNlZFRhZ3MgPSBbXSBhcyBhbnk7XHJcblxyXG4gICAgdGFncy5mb3JFYWNoKCh0YWc6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGFnICYmXHJcbiAgICAgICAgICAgIHRhZy50b0xvd2VyQ2FzZSgpLmNvbnRhaW5zKGxvd2VyQ2FzZUlucHV0U3RyKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB1c2VkVGFncy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IHRhZyBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICBjaGFyOiB0YWcgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdXNlZFRhZ3M7XHJcbn1cclxuIiwiLy8gQ3JlZGl0cyBnbyB0byBMaWFtJ3MgUGVyaW9kaWMgTm90ZXMgUGx1Z2luOiBodHRwczovL2dpdGh1Yi5jb20vbGlhbWNhaW4vb2JzaWRpYW4tcGVyaW9kaWMtbm90ZXNcclxuaW1wb3J0IHsgVEFic3RyYWN0RmlsZSwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IGRhaWx5Tm90ZXNTZXJ2aWNlIGZyb20gJy4uL3NlcnZpY2VzL2RhaWx5Tm90ZXNTZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTdWdnZXN0aW9ucyA9IChpbnB1dFN0cjogc3RyaW5nKSA9PiB7XHJcbiAgY29uc3QgeyBhcHAgfSA9IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCk7XHJcblxyXG4gIGNvbnN0IGFic3RyYWN0RmlsZXMgPSBhcHAudmF1bHQuZ2V0QWxsTG9hZGVkRmlsZXMoKTtcclxuICAvLyBjb25zdCBmaWxlczogVEZpbGVbXSA9IFtdO1xyXG4gIGNvbnN0IGZpbGVzID0gW10gYXMgYW55O1xyXG4gIFxyXG4gIGxldCBhY3R1YWxJbnB1dDogc3RyaW5nO1xyXG5cclxuICBhYnN0cmFjdEZpbGVzLmZvckVhY2goKGZpbGU6IFRBYnN0cmFjdEZpbGUpID0+IHtcclxuICAgIGlmKGlucHV0U3RyID09PSBcIltcIikge1xyXG4gICAgICBhY3R1YWxJbnB1dCA9IFwiXCI7XHJcbiAgICAgIGNvbnN0IGxvd2VyQ2FzZUlucHV0U3RyID0gYWN0dWFsSW5wdXQudG9Mb3dlckNhc2UoKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZpbGUgaW5zdGFuY2VvZiBURmlsZSAmJlxyXG4gICAgICAgIChmaWxlLmV4dGVuc2lvbiA9PT0gXCJtZFwiIHx8IGZpbGUuZXh0ZW5zaW9uID09PSBcInBuZ1wiIHx8IGZpbGUuZXh0ZW5zaW9uID09PSBcImpwZ1wiIHx8IGZpbGUuZXh0ZW5zaW9uID09PSBcImpwZWdcIiB8fCBmaWxlLmV4dGVuc2lvbiA9PT0gXCJnaWZcIikgJiZcclxuICAgICAgICBmaWxlLnBhdGgudG9Mb3dlckNhc2UoKS5jb250YWlucyhsb3dlckNhc2VJbnB1dFN0cilcclxuICAgICAgKSB7XHJcbiAgICAgICAgZmlsZXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiBmaWxlLmJhc2VuYW1lIGFzIHN0cmluZyxcclxuICAgICAgICAgIGNoYXI6IGZpbGUubmFtZSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICBmaWxlOiBmaWxlIGFzIFRGaWxlLFxyXG4gICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICggaW5wdXRTdHIuY29udGFpbnMoXCJbXCIpICkge1xyXG4gICAgICBhY3R1YWxJbnB1dCA9IGlucHV0U3RyLnNsaWNlKDEpO1xyXG4gICAgICBjb25zdCBsb3dlckNhc2VJbnB1dFN0ciA9IGFjdHVhbElucHV0LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmaWxlIGluc3RhbmNlb2YgVEZpbGUgJiZcclxuICAgICAgICAoZmlsZS5leHRlbnNpb24gPT09IFwibWRcIiB8fCBmaWxlLmV4dGVuc2lvbiA9PT0gXCJwbmdcIiB8fCBmaWxlLmV4dGVuc2lvbiA9PT0gXCJqcGdcIiB8fCBmaWxlLmV4dGVuc2lvbiA9PT0gXCJqcGVnXCIgfHwgZmlsZS5leHRlbnNpb24gPT09IFwiZ2lmXCIpICYmXHJcbiAgICAgICAgZmlsZS5wYXRoLnRvTG93ZXJDYXNlKCkuY29udGFpbnMobG93ZXJDYXNlSW5wdXRTdHIpXHJcbiAgICAgICkge1xyXG4gICAgICAgIGZpbGVzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogZmlsZS5iYXNlbmFtZSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICBjaGFyOiBmaWxlLm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgZmlsZTogZmlsZSBhcyBURmlsZSxcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59IiwiaW1wb3J0IHsgZm9yd2FyZFJlZiwgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUaW55VW5kbyBmcm9tIFwidGlueS11bmRvXCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi8uLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgeyBzdG9yYWdlLCByZW1vdmUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3N0b3JhZ2UnO1xyXG5pbXBvcnQgdXNlUmVmcmVzaCBmcm9tIFwiLi4vLi4vaG9va3MvdXNlUmVmcmVzaFwiO1xyXG5pbXBvcnQgT25seSBmcm9tIFwiLi4vY29tbW9uL09ubHlXaGVuXCI7XHJcbmltcG9ydCBcIi4uLy4uL2xlc3MvZWRpdG9yLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZSBmcm9tIFwiQHdlYnNjb3BlaW8vcmVhY3QtdGV4dGFyZWEtYXV0b2NvbXBsZXRlXCI7XHJcbmltcG9ydCB7IHVzZWRUYWdzIH0gZnJvbSAnLi4vLi4vb2JDb21wb25lbnRzL29iVGFnU3VnZ2VzdGVyJztcclxuaW1wb3J0IFwiLi4vLi4vbGVzcy9zdWdnZXN0Lmxlc3NcIjtcclxuaW1wb3J0IHsgRm9jdXNPbkVkaXRvciwgU2F2ZU1lbW9CdXR0b25MYWJlbCB9IGZyb20gXCIuLi8uLi9tZW1vc1wiO1xyXG5pbXBvcnQgeyBnZXRTdWdnZXN0aW9ucyB9IGZyb20gXCIuLi8uLi9vYkNvbXBvbmVudHMvb2JGaWxlU3VnZ2VzdGVyXCI7XHJcbmltcG9ydCB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcblxyXG50eXBlIEl0ZW1Qcm9wcyA9IHtcclxuICBlbnRpdHk6IHtcclxuICAgIGNoYXI6IHN0cmluZyxcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGZpbGU/OiBURmlsZVxyXG4gIH1cclxufTtcclxuXHJcbnR5cGUgTG9hZGluZ1Byb3BzID0ge1xyXG4gIGRhdGE6IEFycmF5PHsgbmFtZTogc3RyaW5nLCBjaGFyOiBzdHJpbmcgfT5cclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yUmVmQWN0aW9ucyB7XHJcbiAgZWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudDtcclxuICBmb2N1czogRnVuY3Rpb25UeXBlO1xyXG4gIGluc2VydFRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgc2V0Q29udGVudDogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcclxuICBnZXRDb250ZW50OiAoKSA9PiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBFZGl0b3JQcm9wcyB7XHJcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XHJcbiAgaW5pdGlhbENvbnRlbnQ6IHN0cmluZztcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIHNob3dDb25maXJtQnRuOiBib29sZWFuO1xyXG4gIHNob3dDYW5jZWxCdG46IGJvb2xlYW47XHJcbiAgdG9vbHM/OiBSZWFjdE5vZGU7XHJcbiAgb25Db25maXJtQnRuQ2xpY2s6IChjb250ZW50OiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgb25DYW5jZWxCdG5DbGljazogKCkgPT4gdm9pZDtcclxuICBvbkNvbnRlbnRDaGFuZ2U6IChjb250ZW50OiBzdHJpbmcpID0+IHZvaWQ7XHJcbn1cclxuXHJcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbmNvbnN0IFRJdGVtID0gKHsgZW50aXR5OiB7IG5hbWUsIGNoYXIsIGZpbGUgfSB9OiBJdGVtUHJvcHMpID0+IHsgcmV0dXJuIDxkaXY+e2Ake2NoYXJ9YH08L2Rpdj59O1xyXG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG5jb25zdCBMb2FkaW5nID0gKHsgZGF0YSB9OiBMb2FkaW5nUHJvcHMpID0+IHsgcmV0dXJuIDxkaXY+TG9hZGluZzwvZGl2PiB9O1xyXG5cclxuZXhwb3J0IGxldCBlZGl0b3JJbnB1dDogSFRNTFRleHRBcmVhRWxlbWVudDtcclxuXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9kaXNwbGF5LW5hbWVcclxuY29uc3QgRWRpdG9yID0gZm9yd2FyZFJlZigocHJvcHM6IEVkaXRvclByb3BzLCByZWY6IFJlYWN0LkZvcndhcmRlZFJlZjxFZGl0b3JSZWZBY3Rpb25zPikgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIGdsb2JhbFN0YXRlOiB7IHVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlIH0sXHJcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XHJcbiAgY29uc3Qge1xyXG4gICAgY2xhc3NOYW1lLFxyXG4gICAgaW5pdGlhbENvbnRlbnQsXHJcbiAgICBwbGFjZWhvbGRlcixcclxuICAgIHNob3dDb25maXJtQnRuLFxyXG4gICAgc2hvd0NhbmNlbEJ0bixcclxuICAgIG9uQ29uZmlybUJ0bkNsaWNrOiBoYW5kbGVDb25maXJtQnRuQ2xpY2tDYWxsYmFjayxcclxuICAgIG9uQ2FuY2VsQnRuQ2xpY2s6IGhhbmRsZUNhbmNlbEJ0bkNsaWNrQ2FsbGJhY2ssXHJcbiAgICBvbkNvbnRlbnRDaGFuZ2U6IGhhbmRsZUNvbnRlbnRDaGFuZ2VDYWxsYmFjayxcclxuICB9ID0gcHJvcHM7XHJcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xyXG4gIGNvbnN0IHRpbnlVbmRvUmVmID0gdXNlUmVmPFRpbnlVbmRvIHwgbnVsbD4obnVsbCk7XHJcbiAgY29uc3QgcmVmcmVzaCA9IHVzZVJlZnJlc2goKTtcclxuICAvLyBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKFwiXCIpXHJcbiAgXHJcbiAgbGV0IGFjdHVhbFRva2VuOiBzdHJpbmc7XHJcbiAgXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbml0aWFsQ29udGVudCkge1xyXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC52YWx1ZSA9IGluaXRpYWxDb250ZW50O1xyXG4gICAgICByZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfSwgW10pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlKSB7XHJcbiAgICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgdGlueVVuZG9BY3Rpb25zQ2FjaGUsIHRpbnlVbmRvSW5kZXhDYWNoZSB9ID0gc3RvcmFnZS5nZXQoW1widGlueVVuZG9BY3Rpb25zQ2FjaGVcIiwgXCJ0aW55VW5kb0luZGV4Q2FjaGVcIl0pO1xyXG5cclxuICAgICAgdGlueVVuZG9SZWYuY3VycmVudCA9IG5ldyBUaW55VW5kbyhlZGl0b3JSZWYuY3VycmVudCwge1xyXG4gICAgICAgIGludGVydmFsOiA1MDAwLFxyXG4gICAgICAgIGluaXRpYWxBY3Rpb25zOiB0aW55VW5kb0FjdGlvbnNDYWNoZSxcclxuICAgICAgICBpbml0aWFsSW5kZXg6IHRpbnlVbmRvSW5kZXhDYWNoZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aW55VW5kb1JlZi5jdXJyZW50LnN1YnNjcmliZSgoYWN0aW9ucywgaW5kZXgpID0+IHtcclxuICAgICAgICBzdG9yYWdlLnNldCh7XHJcbiAgICAgICAgICB0aW55VW5kb0FjdGlvbnNDYWNoZTogYWN0aW9ucyxcclxuICAgICAgICAgIHRpbnlVbmRvSW5kZXhDYWNoZTogaW5kZXgsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICB0aW55VW5kb1JlZi5jdXJyZW50Py5kZXN0cm95KCk7XHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aW55VW5kb1JlZi5jdXJyZW50Py5kZXN0cm95KCk7XHJcbiAgICAgIHRpbnlVbmRvUmVmLmN1cnJlbnQgPSBudWxsO1xyXG4gICAgICBzdG9yYWdlLnJlbW92ZShbXCJ0aW55VW5kb0FjdGlvbnNDYWNoZVwiLCBcInRpbnlVbmRvSW5kZXhDYWNoZVwiXSk7XHJcbiAgICB9XHJcbiAgfSwgW3VzZVRpbnlVbmRvSGlzdG9yeUNhY2hlXSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0ID0gXCJhdXRvXCI7XHJcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLmhlaWdodCA9IChlZGl0b3JSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQgPz8gMCkgKyBcInB4XCI7XHJcbiAgICB9XHJcbiAgfSwgW2VkaXRvclJlZi5jdXJyZW50Py52YWx1ZV0pO1xyXG5cclxuICB1c2VJbXBlcmF0aXZlSGFuZGxlKFxyXG4gICAgcmVmLFxyXG4gICAgKCkgPT4gKHtcclxuICAgICAgZWxlbWVudDogZWRpdG9yUmVmLmN1cnJlbnQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCxcclxuICAgICAgZm9jdXM6ICgpID0+IHtcclxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICAgICAgfSxcclxuICAgICAgaW5zZXJ0VGV4dDogKHJhd1RleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IGVkaXRvclJlZi5jdXJyZW50LnZhbHVlO1xyXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlID1cclxuICAgICAgICAgIHByZXZWYWx1ZS5zbGljZSgwLCBlZGl0b3JSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCkgKyByYXdUZXh0ICsgcHJldlZhbHVlLnNsaWNlKGVkaXRvclJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0KTtcclxuICAgICAgICBoYW5kbGVDb250ZW50Q2hhbmdlQ2FsbGJhY2soZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUpO1xyXG4gICAgICAgIHJlZnJlc2goKTtcclxuICAgICAgfSxcclxuICAgICAgc2V0Q29udGVudDogKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmIChlZGl0b3JSZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUgPSB0ZXh0O1xyXG4gICAgICAgICAgaGFuZGxlQ29udGVudENoYW5nZUNhbGxiYWNrKGVkaXRvclJlZi5jdXJyZW50LnZhbHVlKTtcclxuICAgICAgICAgIHJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGdldENvbnRlbnQ6ICgpOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIHJldHVybiBlZGl0b3JSZWYuY3VycmVudD8udmFsdWUgPz8gXCJcIjtcclxuICAgICAgfSxcclxuICAgIH0pLFxyXG4gICAgW11cclxuICApO1xyXG5cclxuICBjb25zdCBoYW5kbGVJbnNlcnRUcmlnZ2VyID0gKGV2ZW50OiB7IGN1cnJlbnRUcmlnZ2VyOiBzdHJpbmc7IGl0ZW06IGFueX0pID0+IHtcclxuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZmlsZU1hbmFnZXIgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuXHJcbiAgICBpZihldmVudC5jdXJyZW50VHJpZ2dlciA9PT0gXCIjXCIpIHtcclxuICAgICAgY29uc3QgcHJldlZhbHVlID0gZWRpdG9yUmVmLmN1cnJlbnQudmFsdWU7XHJcbiAgICAgIGxldCByZW1vdmVDaGFyTnVtO1xyXG4gICAgICBpZihhY3R1YWxUb2tlbiAhPT0gbnVsbCAmJiBhY3R1YWxUb2tlbiAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICByZW1vdmVDaGFyTnVtID0gYWN0dWFsVG9rZW4ubGVuZ3RoO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZW1vdmVDaGFyTnVtID0gMDtcclxuICAgICAgfVxyXG4gICAgICBsZXQgYmVoaW5kQ2hhck51bSA9IGVkaXRvclJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJldlZhbHVlLmxlbmd0aDtpKyspe1xyXG4gICAgICAgIGlmKHByZXZWYWx1ZVtiZWhpbmRDaGFyTnVtXSAhPT0gXCIgXCIgKXtcclxuICAgICAgICAgIGJlaGluZENoYXJOdW0rKztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlID1cclxuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICBwcmV2VmFsdWUuc2xpY2UoMCwgZWRpdG9yUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgLSByZW1vdmVDaGFyTnVtKSArIGV2ZW50Lml0ZW0uY2hhciArIHByZXZWYWx1ZS5zbGljZShiZWhpbmRDaGFyTnVtKTtcclxuICAgICAgaGFuZGxlQ29udGVudENoYW5nZUNhbGxiYWNrKGVkaXRvclJlZi5jdXJyZW50LnZhbHVlKTtcclxuICAgICAgcmVmcmVzaCgpO1xyXG4gICAgfWVsc2UgaWYoZXZlbnQuY3VycmVudFRyaWdnZXIgPT09IFwiW1tcIil7XHJcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZU1hbmFnZXIuZ2VuZXJhdGVNYXJrZG93bkxpbmsoZXZlbnQuaXRlbS5maWxlLCBldmVudC5pdGVtLmZpbGUucGF0aCwgXCJcIixcIlwiKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IGVkaXRvclJlZi5jdXJyZW50LnZhbHVlO1xyXG4gICAgICBsZXQgcmVtb3ZlQ2hhck51bTtcclxuICAgICAgaWYoYWN0dWFsVG9rZW4gIT09IG51bGwgJiYgYWN0dWFsVG9rZW4gIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgaWYoZmlsZVBhdGguY29udGFpbnMoXCJbW1wiKSl7XHJcbiAgICAgICAgICByZW1vdmVDaGFyTnVtID0gYWN0dWFsVG9rZW4ubGVuZ3RoICsgMTtcclxuICAgICAgICB9ZWxzZSBpZihldmVudC5pdGVtLmZpbGUuZXh0ZW5zaW9uICE9PSBcIm1kXCIpe1xyXG4gICAgICAgICAgcmVtb3ZlQ2hhck51bSA9IGFjdHVhbFRva2VuLmxlbmd0aCArIDE7XHJcbiAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgcmVtb3ZlQ2hhck51bSA9IGFjdHVhbFRva2VuLmxlbmd0aCArIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZW1vdmVDaGFyTnVtID0gMjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgYmVoaW5kQ2hhck51bSA9IGVkaXRvclJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJldlZhbHVlLmxlbmd0aDtpKyspe1xyXG4gICAgICAgIGlmKHByZXZWYWx1ZVtiZWhpbmRDaGFyTnVtXSAhPT0gXCIgXCIgKXtcclxuICAgICAgICAgIGJlaGluZENoYXJOdW0rKztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlID1cclxuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICBwcmV2VmFsdWUuc2xpY2UoMCwgZWRpdG9yUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgLSByZW1vdmVDaGFyTnVtKSArIGZpbGVQYXRoICsgcHJldlZhbHVlLnNsaWNlKGJlaGluZENoYXJOdW0pO1xyXG4gICAgICBoYW5kbGVDb250ZW50Q2hhbmdlQ2FsbGJhY2soZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUpO1xyXG4gICAgICByZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIGhhbmRsZUNvbnRlbnRDaGFuZ2VDYWxsYmFjayhlZGl0b3JSZWYuY3VycmVudD8udmFsdWUgPz8gXCJcIik7XHJcbiAgICByZWZyZXNoKCk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBoYW5kbGVFZGl0b3JLZXlEb3duID0gdXNlQ2FsbGJhY2soKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gXCJFbnRlclwiKSB7XHJcbiAgICAgIGlmIChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpIHtcclxuICAgICAgICBoYW5kbGVDb21tb25Db25maXJtQnRuQ2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVmcmVzaCgpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlQ29tbW9uQ29uZmlybUJ0bkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUgPSBnZXRFZGl0b3JDb250ZW50Q2FjaGUoKTtcclxuXHJcbiAgICBoYW5kbGVDb25maXJtQnRuQ2xpY2tDYWxsYmFjayhlZGl0b3JSZWYuY3VycmVudC52YWx1ZSk7XHJcbiAgICBlZGl0b3JSZWYuY3VycmVudC52YWx1ZSA9IFwiXCI7XHJcblxyXG4gICAgcmVmcmVzaCgpO1xyXG4gICAgLy8gQWZ0ZXIgY29uZmlybSBidG4gY2xpY2tlZCwgdGlueS11bmRvIHNob3VsZCByZXNldCBzdGF0ZShjbGVhciBhY3Rpb25zIGFuZCBpbmRleClcclxuICAgIHRpbnlVbmRvUmVmLmN1cnJlbnQ/LnJlc2V0U3RhdGUoKTtcclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZUNvbW1vbkNhbmNlbEJ0bkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgaGFuZGxlQ2FuY2VsQnRuQ2xpY2tDYWxsYmFjaygpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgZ2V0RWRpdG9yQ29udGVudENhY2hlID0gKCk6IHN0cmluZyA9PiB7XHJcbiAgICByZXR1cm4gc3RvcmFnZS5nZXQoW1wiZWRpdG9yQ29udGVudENhY2hlXCJdKS5lZGl0b3JDb250ZW50Q2FjaGUgPz8gXCJcIjtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdldEVkaXRvckNvbnRlbnQgPSAoKTogc3RyaW5nID0+IHtcclxuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlID0gZ2V0RWRpdG9yQ29udGVudENhY2hlKCk7XHJcbiAgICAvLyBpZiggRm9jdXNPbkVkaXRvciApe1xyXG4gICAgLy8gICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICAgIC8vIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbW1vbi1lZGl0b3Itd3JhcHBlciBcIiArIGNsYXNzTmFtZX0+XHJcbiAgICAgIDxSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICBhdXRvRm9jdXNcclxuICAgICAgICAgIGNsYXNzTmFtZT1cImNvbW1vbi1lZGl0b3ItaW5wdXRlciBzY3JvbGxcIlxyXG4gICAgICAgICAgbG9hZGluZ0NvbXBvbmVudD17TG9hZGluZ31cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG1vdmVQb3B1cEFzWW91VHlwZT17dHJ1ZX1cclxuICAgICAgICAgIC8vIHJlbmRlclRvQm9keT17dHJ1ZX1cclxuXHJcbiAgICAgICAgICByZWY9e3J0YSA9PiB7XHJcbiAgICAgICAgICAgIHJ0YSA9IHJ0YTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB2YWx1ZT17Z2V0RWRpdG9yQ29udGVudCgpfVxyXG4gICAgICAgICAgaW5uZXJSZWY9e3RleHRhcmVhID0+IHtcclxuICAgICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQgPSB0ZXh0YXJlYTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBvbklucHV0PXtoYW5kbGVFZGl0b3JJbnB1dH1cclxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlRWRpdG9yS2V5RG93bn1cclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIG1pbkhlaWdodDogNDgsXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgZHJvcGRvd25TdHlsZT17e1xyXG4gICAgICAgICAgICBtaW5XaWR0aDogMTgwLFxyXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IDI1MCxcclxuICAgICAgICAgICAgb3ZlcmZsb3dZOiBcImF1dG9cIixcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBtaW5DaGFyPXswfVxyXG4gICAgICAgICAgb25JdGVtU2VsZWN0ZWQ9e2hhbmRsZUluc2VydFRyaWdnZXJ9XHJcbiAgICAgICAgICBzY3JvbGxUb0l0ZW09e3RydWV9XHJcblxyXG4gICAgICAgICAgdHJpZ2dlcj17e1xyXG4gICAgICAgICAgICBcIiNcIjoge1xyXG4gICAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdG9rZW4gPT4ge1xyXG4gICAgICAgICAgICAgICAgYWN0dWFsVG9rZW4gPSB0b2tlbjtcclxuICAgICAgICAgICAgICAgIHJldHVybiB1c2VkVGFncyh0b2tlbilcclxuICAgICAgICAgICAgICAgICAgLm1hcCgoeyBuYW1lLCBjaGFyIH0pID0+ICh7IG5hbWUsIGNoYXIgfSkpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICAgICAgICBjb21wb25lbnQ6IFRJdGVtLFxyXG4gICAgICAgICAgICAgIGFmdGVyV2hpdGVzcGFjZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBvdXRwdXQ6IChpdGVtKSA9PiBpdGVtLmNoYXIsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIFwiW1tcIjoge1xyXG4gICAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdG9rZW4gPT4ge1xyXG4gICAgICAgICAgICAgICAgYWN0dWFsVG9rZW4gPSB0b2tlbjtcclxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTdWdnZXN0aW9ucyh0b2tlbilcclxuICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsMTApXHJcbiAgICAgICAgICAgICAgICAgIC5tYXAoKHsgbmFtZSwgY2hhciwgZmlsZSB9KSA9PiAoeyBuYW1lLCBjaGFyLCBmaWxlIH0pKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBUSXRlbSxcclxuICAgICAgICAgICAgICBhZnRlcldoaXRlc3BhY2U6IHRydWUsXHJcbiAgICAgICAgICAgICAgb3V0cHV0OiAoaXRlbSkgPT4gaXRlbS5jaGFyLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyBcIltbXCI6IHtcclxuICAgICAgICAgICAgLy8gICBkYXRhUHJvdmlkZXI6IHRva2VuID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGFjdHVhbFRva2VuID0gdG9rZW47XHJcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gdXNlZFRhZ3ModG9rZW4pXHJcbiAgICAgICAgICAgIC8vICAgICAgIC5zbGljZSgwLCAxMClcclxuICAgICAgICAgICAgLy8gICAgICAgLm1hcCgoeyBuYW1lLCBjaGFyIH0pID0+ICh7IG5hbWUsIGNoYXIgfSkpO1xyXG4gICAgICAgICAgICAvLyAgIH0sXHJcbiAgICAgICAgICAgIC8vICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICAgICAgLy8gICBjb21wb25lbnQ6IEl0ZW0sXHJcbiAgICAgICAgICAgIC8vICAgYWZ0ZXJXaGl0ZXNwYWNlOiB0cnVlLFxyXG4gICAgICAgICAgICAvLyAgIG91dHB1dDogKGl0ZW0sIHRyaWdnZXIpID0+IGl0ZW0uY2hhcixcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbW1vbi10b29scy13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tb24tdG9vbHMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8T25seSB3aGVuPXtwcm9wcy50b29scyAhPT0gdW5kZWZpbmVkfT57cHJvcHMudG9vbHN9PC9Pbmx5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRucy1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxPbmx5IHdoZW49e3Nob3dDYW5jZWxCdG59PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImFjdGlvbi1idG4gY2FuY2VsLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUNvbW1vbkNhbmNlbEJ0bkNsaWNrfT5cclxuICAgICAgICAgICAgICBDQU5DRUwgRURJVFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvT25seT5cclxuICAgICAgICAgIDxPbmx5IHdoZW49e3Nob3dDb25maXJtQnRufT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhY3Rpb24tYnRuIGNvbmZpcm0tYnRuXCIgZGlzYWJsZWQ9eyFlZGl0b3JSZWYuY3VycmVudD8udmFsdWV9IG9uQ2xpY2s9e2hhbmRsZUNvbW1vbkNvbmZpcm1CdG5DbGlja30+XHJcbiAgICAgICAgICAgICAge1NhdmVNZW1vQnV0dG9uTGFiZWx9PHNwYW4gY2xhc3NOYW1lPVwiaWNvbi10ZXh0XCI+4pyN77iPPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvT25seT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59KTtcclxuXHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yOyIsIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XHJcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XHJcbn1cclxuIiwiZnVuY3Rpb24gY2FuVXNlRE9NKCkge1xuICByZXR1cm4gISEodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuZG9jdW1lbnQgJiYgd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xufVxuXG5leHBvcnQgeyBjYW5Vc2VET00gfTtcbiIsImltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY2FuVXNlRE9NIH0gZnJvbSAnLi4vLi4vY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanMnO1xuXG4vKipcbiAqIFJlYWN0IGN1cnJlbnRseSB0aHJvd3MgYSB3YXJuaW5nIHdoZW4gdXNpbmcgdXNlTGF5b3V0RWZmZWN0IG9uIHRoZSBzZXJ2ZXIuIFRvXG4gKiBnZXQgYXJvdW5kIGl0LCB3ZSBjYW4gY29uZGl0aW9uYWxseSB1c2VFZmZlY3Qgb24gdGhlIHNlcnZlciAobm8tb3ApIGFuZFxuICogdXNlTGF5b3V0RWZmZWN0IGluIHRoZSBicm93c2VyLiBXZSBvY2Nhc2lvbmFsbHkgbmVlZCB1c2VMYXlvdXRFZmZlY3QgdG9cbiAqIGVuc3VyZSB3ZSBkb24ndCBnZXQgYSByZW5kZXIgZmxhc2ggZm9yIGNlcnRhaW4gb3BlcmF0aW9ucywgYnV0IHdlIG1heSBhbHNvXG4gKiBuZWVkIGFmZmVjdGVkIGNvbXBvbmVudHMgdG8gcmVuZGVyIG9uIHRoZSBzZXJ2ZXIuIE9uZSBleGFtcGxlIGlzIHdoZW4gc2V0dGluZ1xuICogYSBjb21wb25lbnQncyBkZXNjZW5kYW50cyB0byByZXRyaWV2ZSB0aGVpciBpbmRleCB2YWx1ZXMuXG4gKlxuICogSW1wb3J0YW50IHRvIG5vdGUgdGhhdCB1c2luZyB0aGlzIGhvb2sgYXMgYW4gZXNjYXBlIGhhdGNoIHdpbGwgYnJlYWsgdGhlXG4gKiBlc2xpbnQgZGVwZW5kZW5jeSB3YXJuaW5ncyB1bmxlc3MgeW91IHJlbmFtZSB0aGUgaW1wb3J0IHRvIGB1c2VMYXlvdXRFZmZlY3RgLlxuICogVXNlIHNwYXJpbmdseSBvbmx5IHdoZW4gdGhlIGVmZmVjdCB3b24ndCBlZmZlY3QgdGhlIHJlbmRlcmVkIEhUTUwgdG8gYXZvaWRcbiAqIGFueSBzZXJ2ZXIvY2xpZW50IG1pc21hdGNoLlxuICpcbiAqIElmIGEgdXNlTGF5b3V0RWZmZWN0IGlzIG5lZWRlZCBhbmQgdGhlIHJlc3VsdCB3b3VsZCBjcmVhdGUgYSBtaXNtYXRjaCwgaXQnc1xuICogbGlrZWx5IHRoYXQgdGhlIGNvbXBvbmVudCBpbiBxdWVzdGlvbiBzaG91bGRuJ3QgYmUgcmVuZGVyZWQgb24gdGhlIHNlcnZlciBhdFxuICogYWxsLCBzbyBhIGJldHRlciBhcHByb2FjaCB3b3VsZCBiZSB0byBsYXppbHkgcmVuZGVyIHRob3NlIGluIGEgcGFyZW50XG4gKiBjb21wb25lbnQgYWZ0ZXIgY2xpZW50LXNpZGUgaHlkcmF0aW9uLlxuICpcbiAqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2dhZWFyb24vZTdkOTdjZGYzOGEyOTA3OTI0ZWExMmU0ZWJkZjNjODVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWR1eGpzL3JlYWN0LXJlZHV4L2Jsb2IvbWFzdGVyL3NyYy91dGlscy91c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LmpzXG4gKlxuICogQHBhcmFtIGVmZmVjdFxuICogQHBhcmFtIGRlcHNcbiAqL1xuXG52YXIgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IC8qI19fUFVSRV9fKi9jYW5Vc2VET00oKSA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuZXhwb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9O1xuIiwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbi8qXG4gKiBXZWxjb21lIHRvIEByZWFjaC9hdXRvLWlkIVxuXG4gKiBMZXQncyBzZWUgaWYgd2UgY2FuIG1ha2Ugc2Vuc2Ugb2Ygd2h5IHRoaXMgaG9vayBleGlzdHMgYW5kIGl0c1xuICogaW1wbGVtZW50YXRpb24uXG4gKlxuICogU29tZSBiYWNrZ3JvdW5kOlxuICogICAxLiBBY2Nlc3NpYmlsaXR5IEFQSXMgcmVseSBoZWF2aWx5IG9uIGVsZW1lbnQgSURzXG4gKiAgIDIuIFJlcXVpcmluZyBkZXZlbG9wZXJzIHRvIHB1dCBJRHMgb24gZXZlcnkgZWxlbWVudCBpbiBSZWFjaCBVSSBpcyBib3RoXG4gKiAgICAgIGN1bWJlcnNvbWUgYW5kIGVycm9yLXByb25lXG4gKiAgIDMuIFdpdGggYSBjb21wb25lbnQgbW9kZWwsIHdlIGNhbiBnZW5lcmF0ZSBJRHMgZm9yIHRoZW0hXG4gKlxuICogU29sdXRpb24gMTogR2VuZXJhdGUgcmFuZG9tIElEcy5cbiAqXG4gKiBUaGlzIHdvcmtzIGdyZWF0IGFzIGxvbmcgYXMgeW91IGRvbid0IHNlcnZlciByZW5kZXIgeW91ciBhcHAuIFdoZW4gUmVhY3QgKGluXG4gKiB0aGUgY2xpZW50KSB0cmllcyB0byByZXVzZSB0aGUgbWFya3VwIGZyb20gdGhlIHNlcnZlciwgdGhlIElEcyB3b24ndCBtYXRjaFxuICogYW5kIFJlYWN0IHdpbGwgdGhlbiByZWNyZWF0ZSB0aGUgZW50aXJlIERPTSB0cmVlLlxuICpcbiAqIFNvbHV0aW9uIDI6IEluY3JlbWVudCBhbiBpbnRlZ2VyXG4gKlxuICogVGhpcyBzb3VuZHMgZ3JlYXQuIFNpbmNlIHdlJ3JlIHJlbmRlcmluZyB0aGUgZXhhY3Qgc2FtZSB0cmVlIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBjbGllbnQsIHdlIGNhbiBpbmNyZW1lbnQgYSBjb3VudGVyIGFuZCBnZXQgYSBkZXRlcm1pbmlzdGljIHJlc3VsdCBiZXR3ZWVuXG4gKiBjbGllbnQgYW5kIHNlcnZlci4gQWxzbywgSlMgaW50ZWdlcnMgY2FuIGdvIHVwIHRvIG5pbmUtcXVhZHJpbGxpb24uIEknbVxuICogcHJldHR5IHN1cmUgdGhlIHRhYiB3aWxsIGJlIGNsb3NlZCBiZWZvcmUgYW4gYXBwIG5ldmVyIG5lZWRzXG4gKiAxMCBxdWFkcmlsbGlvbiBJRHMhXG4gKlxuICogUHJvYmxlbSBzb2x2ZWQsIHJpZ2h0P1xuICpcbiAqIEFoLCBidXQgdGhlcmUncyBhIGNhdGNoISBSZWFjdCdzIGNvbmN1cnJlbnQgcmVuZGVyaW5nIG1ha2VzIHRoaXMgYXBwcm9hY2hcbiAqIG5vbi1kZXRlcm1pbmlzdGljLiBXaGlsZSB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgd2lsbCBlbmQgdXAgd2l0aCB0aGUgc2FtZVxuICogZWxlbWVudHMgaW4gdGhlIGVuZCwgZGVwZW5kaW5nIG9uIHN1c3BlbnNlIGJvdW5kYXJpZXMgKGFuZCBwb3NzaWJseSBzb21lIHVzZXJcbiAqIGlucHV0IGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIpIHRoZSBpbmNyZW1lbnRpbmcgaW50ZWdlcnMgd29uJ3QgYWx3YXlzIG1hdGNoXG4gKiB1cC5cbiAqXG4gKiBTb2x1dGlvbiAzOiBEb24ndCB1c2UgSURzIGF0IGFsbCBvbiB0aGUgc2VydmVyOyBwYXRjaCBhZnRlciBmaXJzdCByZW5kZXIuXG4gKlxuICogV2hhdCB3ZSd2ZSBkb25lIGhlcmUgaXMgc29sdXRpb24gMiB3aXRoIHNvbWUgdHJpY2tzLiBXaXRoIHRoaXMgYXBwcm9hY2gsIHRoZVxuICogSUQgcmV0dXJuZWQgaXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBmaXJzdCByZW5kZXIuIFRoaXMgd2F5IHRoZSBzZXJ2ZXIgYW5kXG4gKiBjbGllbnQgaGF2ZSB0aGUgc2FtZSBtYXJrdXAgbm8gbWF0dGVyIGhvdyB3aWxkIHRoZSBjb25jdXJyZW50IHJlbmRlcmluZyBtYXlcbiAqIGhhdmUgZ290dGVuLlxuICpcbiAqIEFmdGVyIHRoZSByZW5kZXIsIHdlIHBhdGNoIHVwIHRoZSBjb21wb25lbnRzIHdpdGggYW4gaW5jcmVtZW50ZWQgSUQuIFRoaXNcbiAqIGNhdXNlcyBhIGRvdWJsZSByZW5kZXIgb24gYW55IGNvbXBvbmVudHMgd2l0aCBgdXNlSWRgLiBTaG91bGRuJ3QgYmUgYSBwcm9ibGVtXG4gKiBzaW5jZSB0aGUgY29tcG9uZW50cyB1c2luZyB0aGlzIGhvb2sgc2hvdWxkIGJlIHNtYWxsLCBhbmQgd2UncmUgb25seSB1cGRhdGluZ1xuICogdGhlIElEIGF0dHJpYnV0ZSBvbiB0aGUgRE9NLCBub3RoaW5nIGJpZyBpcyBoYXBwZW5pbmcuXG4gKlxuICogSXQgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGluY3JlbWVudGVkIG51bWJlciwgdGhvdWdoLS13ZSBjb3VsZCBkbyBnZW5lcmF0ZVxuICogcmFuZG9tIHN0cmluZ3MgaW5zdGVhZCwgYnV0IGluY3JlbWVudGluZyBhIG51bWJlciBpcyBwcm9iYWJseSB0aGUgY2hlYXBlc3RcbiAqIHRoaW5nIHdlIGNhbiBkby5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIHdlIG9ubHkgZG8gdGhpcyBwYXRjaHVwIG9uIHRoZSB2ZXJ5IGZpcnN0IGNsaWVudCByZW5kZXIgZXZlci5cbiAqIEFueSBjYWxscyB0byBgdXNlSWRgIHRoYXQgaGFwcGVuIGR5bmFtaWNhbGx5IGluIHRoZSBjbGllbnQgd2lsbCBiZVxuICogcG9wdWxhdGVkIGltbWVkaWF0ZWx5IHdpdGggYSB2YWx1ZS4gU28sIHdlIG9ubHkgZ2V0IHRoZSBkb3VibGUgcmVuZGVyIGFmdGVyXG4gKiBzZXJ2ZXIgaHlkcmF0aW9uIGFuZCBuZXZlciBhZ2FpbiwgU08gQkFDSyBPRkYgQUxSSUdIVD9cbiAqL1xudmFyIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IGZhbHNlO1xudmFyIGlkID0gMDtcblxudmFyIGdlbklkID0gZnVuY3Rpb24gZ2VuSWQoKSB7XG4gIHJldHVybiArK2lkO1xufTtcbi8qKlxuICogdXNlSWRcbiAqXG4gKiBBdXRvZ2VuZXJhdGUgSURzIHRvIGZhY2lsaXRhdGUgV0FJLUFSSUEgYW5kIHNlcnZlciByZW5kZXJpbmcuXG4gKlxuICogTm90ZTogVGhlIHJldHVybmVkIElEIHdpbGwgaW5pdGlhbGx5IGJlIGBudWxsYCBhbmQgd2lsbCB1cGRhdGUgYWZ0ZXIgYVxuICogY29tcG9uZW50IG1vdW50cy4gVXNlcnMgbWF5IG5lZWQgdG8gc3VwcGx5IHRoZWlyIG93biBJRCBpZiB0aGV5IG5lZWRcbiAqIGNvbnNpc3RlbnQgdmFsdWVzIGZvciBTU1IuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9hdXRvLWlkXG4gKi9cblxuXG5mdW5jdGlvbiB1c2VJZChpZEZyb21Qcm9wcykge1xuICAvKlxuICAgKiBJZiB0aGlzIGluc3RhbmNlIGlzbid0IHBhcnQgb2YgdGhlIGluaXRpYWwgcmVuZGVyLCB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoZVxuICAgKiBkb3VibGUgcmVuZGVyL3BhdGNoLXVwIGRhbmNlLiBXZSBjYW4ganVzdCBnZW5lcmF0ZSB0aGUgSUQgYW5kIHJldHVybiBpdC5cbiAgICovXG4gIHZhciBpbml0aWFsSWQgPSBpZEZyb21Qcm9wcyB8fCAoc2VydmVySGFuZG9mZkNvbXBsZXRlID8gZ2VuSWQoKSA6IG51bGwpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShpbml0aWFsSWQpLFxuICAgICAgaWQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJZCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaWQgPT09IG51bGwpIHtcbiAgICAgIC8qXG4gICAgICAgKiBQYXRjaCB0aGUgSUQgYWZ0ZXIgcmVuZGVyLiBXZSBkbyB0aGlzIGluIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGF2b2lkIGFueVxuICAgICAgICogcmVuZGVyaW5nIGZsaWNrZXIsIHRob3VnaCBpdCdsbCBtYWtlIHRoZSBmaXJzdCByZW5kZXIgc2xvd2VyICh1bmxpa2VseVxuICAgICAgICogdG8gbWF0dGVyLCBidXQgeW91J3JlIHdlbGNvbWUgdG8gbWVhc3VyZSB5b3VyIGFwcCBhbmQgbGV0IHVzIGtub3cgaWZcbiAgICAgICAqIGl0J3MgYSBwcm9ibGVtKS5cbiAgICAgICAqL1xuICAgICAgc2V0SWQoZ2VuSWQoKSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgW10pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAvKlxuICAgICAgICogRmxhZyBhbGwgZnV0dXJlIHVzZXMgb2YgYHVzZUlkYCB0byBza2lwIHRoZSB1cGRhdGUgZGFuY2UuIFRoaXMgaXMgaW5cbiAgICAgICAqIGB1c2VFZmZlY3RgIGJlY2F1c2UgaXQgZ29lcyBhZnRlciBgdXNlTGF5b3V0RWZmZWN0YCwgZW5zdXJpbmcgd2UgZG9uJ3RcbiAgICAgICAqIGFjY2lkZW50YWxseSBiYWlsIG91dCBvZiB0aGUgcGF0Y2gtdXAgZGFuY2UgcHJlbWF0dXJlbHkuXG4gICAgICAgKi9cbiAgICAgIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IHRydWU7XG4gICAgfVxuICB9LCBbXSk7XG4gIHJldHVybiBpZCAhPSBudWxsID8gU3RyaW5nKGlkKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHsgdXNlSWQgfTtcbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkRm9ybWF0TG9uZ0ZuKGFyZ3MpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgLy8gVE9ETzogUmVtb3ZlIFN0cmluZygpXG4gICAgdmFyIHdpZHRoID0gb3B0aW9ucy53aWR0aCA/IFN0cmluZyhvcHRpb25zLndpZHRoKSA6IGFyZ3MuZGVmYXVsdFdpZHRoO1xuICAgIHZhciBmb3JtYXQgPSBhcmdzLmZvcm1hdHNbd2lkdGhdIHx8IGFyZ3MuZm9ybWF0c1thcmdzLmRlZmF1bHRXaWR0aF07XG4gICAgcmV0dXJuIGZvcm1hdDtcbiAgfTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBidWlsZExvY2FsaXplRm4oYXJncykge1xuICByZXR1cm4gZnVuY3Rpb24gKGRpcnR5SW5kZXgsIGRpcnR5T3B0aW9ucykge1xuICAgIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICAgIHZhciBjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0ID8gU3RyaW5nKG9wdGlvbnMuY29udGV4dCkgOiAnc3RhbmRhbG9uZSc7XG4gICAgdmFyIHZhbHVlc0FycmF5O1xuXG4gICAgaWYgKGNvbnRleHQgPT09ICdmb3JtYXR0aW5nJyAmJiBhcmdzLmZvcm1hdHRpbmdWYWx1ZXMpIHtcbiAgICAgIHZhciBkZWZhdWx0V2lkdGggPSBhcmdzLmRlZmF1bHRGb3JtYXR0aW5nV2lkdGggfHwgYXJncy5kZWZhdWx0V2lkdGg7XG4gICAgICB2YXIgd2lkdGggPSBvcHRpb25zLndpZHRoID8gU3RyaW5nKG9wdGlvbnMud2lkdGgpIDogZGVmYXVsdFdpZHRoO1xuICAgICAgdmFsdWVzQXJyYXkgPSBhcmdzLmZvcm1hdHRpbmdWYWx1ZXNbd2lkdGhdIHx8IGFyZ3MuZm9ybWF0dGluZ1ZhbHVlc1tkZWZhdWx0V2lkdGhdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2RlZmF1bHRXaWR0aCA9IGFyZ3MuZGVmYXVsdFdpZHRoO1xuXG4gICAgICB2YXIgX3dpZHRoID0gb3B0aW9ucy53aWR0aCA/IFN0cmluZyhvcHRpb25zLndpZHRoKSA6IGFyZ3MuZGVmYXVsdFdpZHRoO1xuXG4gICAgICB2YWx1ZXNBcnJheSA9IGFyZ3MudmFsdWVzW193aWR0aF0gfHwgYXJncy52YWx1ZXNbX2RlZmF1bHRXaWR0aF07XG4gICAgfVxuXG4gICAgdmFyIGluZGV4ID0gYXJncy5hcmd1bWVudENhbGxiYWNrID8gYXJncy5hcmd1bWVudENhbGxiYWNrKGRpcnR5SW5kZXgpIDogZGlydHlJbmRleDsgLy8gQHRzLWlnbm9yZTogRm9yIHNvbWUgcmVhc29uIFR5cGVTY3JpcHQganVzdCBkb24ndCB3YW50IHRvIG1hdGNoIGl0LCBubyBtYXR0ZXIgaG93IGhhcmQgd2UgdHJ5LiBJIGNoYWxsZW5nZSB5b3UgdG8gdHJ5IHRvIHJlbW92ZSBpdCFcblxuICAgIHJldHVybiB2YWx1ZXNBcnJheVtpbmRleF07XG4gIH07XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnVpbGRNYXRjaFBhdHRlcm5GbihhcmdzKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgIHZhciBtYXRjaFJlc3VsdCA9IHN0cmluZy5tYXRjaChhcmdzLm1hdGNoUGF0dGVybik7XG4gICAgaWYgKCFtYXRjaFJlc3VsdCkgcmV0dXJuIG51bGw7XG4gICAgdmFyIG1hdGNoZWRTdHJpbmcgPSBtYXRjaFJlc3VsdFswXTtcbiAgICB2YXIgcGFyc2VSZXN1bHQgPSBzdHJpbmcubWF0Y2goYXJncy5wYXJzZVBhdHRlcm4pO1xuICAgIGlmICghcGFyc2VSZXN1bHQpIHJldHVybiBudWxsO1xuICAgIHZhciB2YWx1ZSA9IGFyZ3MudmFsdWVDYWxsYmFjayA/IGFyZ3MudmFsdWVDYWxsYmFjayhwYXJzZVJlc3VsdFswXSkgOiBwYXJzZVJlc3VsdFswXTtcbiAgICB2YWx1ZSA9IG9wdGlvbnMudmFsdWVDYWxsYmFjayA/IG9wdGlvbnMudmFsdWVDYWxsYmFjayh2YWx1ZSkgOiB2YWx1ZTtcbiAgICB2YXIgcmVzdCA9IHN0cmluZy5zbGljZShtYXRjaGVkU3RyaW5nLmxlbmd0aCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHJlc3Q6IHJlc3RcbiAgICB9O1xuICB9O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkTWF0Y2hGbihhcmdzKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgIHZhciB3aWR0aCA9IG9wdGlvbnMud2lkdGg7XG4gICAgdmFyIG1hdGNoUGF0dGVybiA9IHdpZHRoICYmIGFyZ3MubWF0Y2hQYXR0ZXJuc1t3aWR0aF0gfHwgYXJncy5tYXRjaFBhdHRlcm5zW2FyZ3MuZGVmYXVsdE1hdGNoV2lkdGhdO1xuICAgIHZhciBtYXRjaFJlc3VsdCA9IHN0cmluZy5tYXRjaChtYXRjaFBhdHRlcm4pO1xuXG4gICAgaWYgKCFtYXRjaFJlc3VsdCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIG1hdGNoZWRTdHJpbmcgPSBtYXRjaFJlc3VsdFswXTtcbiAgICB2YXIgcGFyc2VQYXR0ZXJucyA9IHdpZHRoICYmIGFyZ3MucGFyc2VQYXR0ZXJuc1t3aWR0aF0gfHwgYXJncy5wYXJzZVBhdHRlcm5zW2FyZ3MuZGVmYXVsdFBhcnNlV2lkdGhdO1xuICAgIHZhciBrZXkgPSBBcnJheS5pc0FycmF5KHBhcnNlUGF0dGVybnMpID8gZmluZEluZGV4KHBhcnNlUGF0dGVybnMsIGZ1bmN0aW9uIChwYXR0ZXJuKSB7XG4gICAgICByZXR1cm4gcGF0dGVybi50ZXN0KG1hdGNoZWRTdHJpbmcpO1xuICAgIH0pIDogZmluZEtleShwYXJzZVBhdHRlcm5zLCBmdW5jdGlvbiAocGF0dGVybikge1xuICAgICAgcmV0dXJuIHBhdHRlcm4udGVzdChtYXRjaGVkU3RyaW5nKTtcbiAgICB9KTtcbiAgICB2YXIgdmFsdWU7XG4gICAgdmFsdWUgPSBhcmdzLnZhbHVlQ2FsbGJhY2sgPyBhcmdzLnZhbHVlQ2FsbGJhY2soa2V5KSA6IGtleTtcbiAgICB2YWx1ZSA9IG9wdGlvbnMudmFsdWVDYWxsYmFjayA/IG9wdGlvbnMudmFsdWVDYWxsYmFjayh2YWx1ZSkgOiB2YWx1ZTtcbiAgICB2YXIgcmVzdCA9IHN0cmluZy5zbGljZShtYXRjaGVkU3RyaW5nLmxlbmd0aCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHJlc3Q6IHJlc3RcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBmaW5kS2V5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAob2JqZWN0Lmhhc093blByb3BlcnR5KGtleSkgJiYgcHJlZGljYXRlKG9iamVjdFtrZXldKSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSkge1xuICBmb3IgKHZhciBrZXkgPSAwOyBrZXkgPCBhcnJheS5sZW5ndGg7IGtleSsrKSB7XG4gICAgaWYgKHByZWRpY2F0ZShhcnJheVtrZXldKSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlcXVpcmVkQXJncyhyZXF1aXJlZCwgYXJncykge1xuICBpZiAoYXJncy5sZW5ndGggPCByZXF1aXJlZCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocmVxdWlyZWQgKyAnIGFyZ3VtZW50JyArIChyZXF1aXJlZCA+IDEgPyAncycgOiAnJykgKyAnIHJlcXVpcmVkLCBidXQgb25seSAnICsgYXJncy5sZW5ndGggKyAnIHByZXNlbnQnKTtcbiAgfVxufSIsImltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIHRvRGF0ZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCB0aGUgZ2l2ZW4gYXJndW1lbnQgdG8gYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgaXRzIGNsb25lLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhIG51bWJlciwgaXQgaXMgdHJlYXRlZCBhcyBhIHRpbWVzdGFtcC5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgbm9uZSBvZiB0aGUgYWJvdmUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIEludmFsaWQgRGF0ZS5cbiAqXG4gKiAqKk5vdGUqKjogKmFsbCogRGF0ZSBhcmd1bWVudHMgcGFzc2VkIHRvIGFueSAqZGF0ZS1mbnMqIGZ1bmN0aW9uIGlzIHByb2Nlc3NlZCBieSBgdG9EYXRlYC5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBhcmd1bWVudCAtIHRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDbG9uZSB0aGUgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IHRvRGF0ZShuZXcgRGF0ZSgyMDE0LCAxLCAxMSwgMTEsIDMwLCAzMCkpXG4gKiAvLz0+IFR1ZSBGZWIgMTEgMjAxNCAxMTozMDozMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IHRoZSB0aW1lc3RhbXAgdG8gZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IHRvRGF0ZSgxMzkyMDk4NDMwMDAwKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0b0RhdGUoYXJndW1lbnQpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBhcmdTdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnQpOyAvLyBDbG9uZSB0aGUgZGF0ZVxuXG4gIGlmIChhcmd1bWVudCBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIGFyZ3VtZW50ID09PSAnb2JqZWN0JyAmJiBhcmdTdHIgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgIC8vIFByZXZlbnQgdGhlIGRhdGUgdG8gbG9zZSB0aGUgbWlsbGlzZWNvbmRzIHdoZW4gcGFzc2VkIHRvIG5ldyBEYXRlKCkgaW4gSUUxMFxuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudC5nZXRUaW1lKCkpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudCA9PT0gJ251bWJlcicgfHwgYXJnU3RyID09PSAnW29iamVjdCBOdW1iZXJdJykge1xuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCh0eXBlb2YgYXJndW1lbnQgPT09ICdzdHJpbmcnIHx8IGFyZ1N0ciA9PT0gJ1tvYmplY3QgU3RyaW5nXScpICYmIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcIlN0YXJ0aW5nIHdpdGggdjIuMC4wLWJldGEuMSBkYXRlLWZucyBkb2Vzbid0IGFjY2VwdCBzdHJpbmdzIGFzIGRhdGUgYXJndW1lbnRzLiBQbGVhc2UgdXNlIGBwYXJzZUlTT2AgdG8gcGFyc2Ugc3RyaW5ncy4gU2VlOiBodHRwczovL2dpdC5pby9manVsZVwiKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcblxuICAgICAgY29uc29sZS53YXJuKG5ldyBFcnJvcigpLnN0YWNrKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvSW50ZWdlcihkaXJ0eU51bWJlcikge1xuICBpZiAoZGlydHlOdW1iZXIgPT09IG51bGwgfHwgZGlydHlOdW1iZXIgPT09IHRydWUgfHwgZGlydHlOdW1iZXIgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIHZhciBudW1iZXIgPSBOdW1iZXIoZGlydHlOdW1iZXIpO1xuXG4gIGlmIChpc05hTihudW1iZXIpKSB7XG4gICAgcmV0dXJuIG51bWJlcjtcbiAgfVxuXG4gIHJldHVybiBudW1iZXIgPCAwID8gTWF0aC5jZWlsKG51bWJlcikgOiBNYXRoLmZsb29yKG51bWJlcik7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbmltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL3RvSW50ZWdlci9pbmRleC5qc1wiOyAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgYSBwYXJ0IG9mIHB1YmxpYyBBUEkgd2hlbiBVVEMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZC5cbi8vIFNlZSBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8zNzZcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RhcnRPZlVUQ1dlZWsoZGlydHlEYXRlLCBkaXJ0eU9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGU7XG4gIHZhciBsb2NhbGVXZWVrU3RhcnRzT24gPSBsb2NhbGUgJiYgbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMud2Vla1N0YXJ0c09uO1xuICB2YXIgZGVmYXVsdFdlZWtTdGFydHNPbiA9IGxvY2FsZVdlZWtTdGFydHNPbiA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihsb2NhbGVXZWVrU3RhcnRzT24pO1xuICB2YXIgd2Vla1N0YXJ0c09uID0gb3B0aW9ucy53ZWVrU3RhcnRzT24gPT0gbnVsbCA/IGRlZmF1bHRXZWVrU3RhcnRzT24gOiB0b0ludGVnZXIob3B0aW9ucy53ZWVrU3RhcnRzT24pOyAvLyBUZXN0IGlmIHdlZWtTdGFydHNPbiBpcyBiZXR3ZWVuIDAgYW5kIDYgX2FuZF8gaXMgbm90IE5hTlxuXG4gIGlmICghKHdlZWtTdGFydHNPbiA+PSAwICYmIHdlZWtTdGFydHNPbiA8PSA2KSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd3ZWVrU3RhcnRzT24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYgaW5jbHVzaXZlbHknKTtcbiAgfVxuXG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkYXkgPSBkYXRlLmdldFVUQ0RheSgpO1xuICB2YXIgZGlmZiA9IChkYXkgPCB3ZWVrU3RhcnRzT24gPyA3IDogMCkgKyBkYXkgLSB3ZWVrU3RhcnRzT247XG4gIGRhdGUuc2V0VVRDRGF0ZShkYXRlLmdldFVUQ0RhdGUoKSAtIGRpZmYpO1xuICBkYXRlLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBhZGREYXlzXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBkYXlzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgZGF5cyB0byBiZSBhZGRlZC4gUG9zaXRpdmUgZGVjaW1hbHMgd2lsbCBiZSByb3VuZGVkIHVzaW5nIGBNYXRoLmZsb29yYCwgZGVjaW1hbHMgbGVzcyB0aGFuIHplcm8gd2lsbCBiZSByb3VuZGVkIHVzaW5nIGBNYXRoLmNlaWxgLlxuICogQHJldHVybnMge0RhdGV9IC0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIGRheXMgYWRkZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gLSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMTAgZGF5cyB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gYWRkRGF5cyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgMTApXG4gKiAvLz0+IFRodSBTZXAgMTEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZERheXMoZGlydHlEYXRlLCBkaXJ0eUFtb3VudCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG5cbiAgaWYgKGlzTmFOKGFtb3VudCkpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIGlmICghYW1vdW50KSB7XG4gICAgLy8gSWYgMCBkYXlzLCBuby1vcCB0byBhdm9pZCBjaGFuZ2luZyB0aW1lcyBpbiB0aGUgaG91ciBiZWZvcmUgZW5kIG9mIERTVFxuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgYW1vdW50KTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgYWRkTW9udGhzXG4gKiBAY2F0ZWdvcnkgTW9udGggSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1vbnRocyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtb250aHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgbW9udGhzIHRvIGJlIGFkZGVkLiBQb3NpdGl2ZSBkZWNpbWFscyB3aWxsIGJlIHJvdW5kZWQgdXNpbmcgYE1hdGguZmxvb3JgLCBkZWNpbWFscyBsZXNzIHRoYW4gemVybyB3aWxsIGJlIHJvdW5kZWQgdXNpbmcgYE1hdGguY2VpbGAuXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIG1vbnRocyBhZGRlZFxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNSBtb250aHMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZE1vbnRocyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgNSlcbiAqIC8vPT4gU3VuIEZlYiAwMSAyMDE1IDAwOjAwOjAwXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkTW9udGhzKGRpcnR5RGF0ZSwgZGlydHlBbW91bnQpIHtcbiAgcmVxdWlyZWRBcmdzKDIsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBhbW91bnQgPSB0b0ludGVnZXIoZGlydHlBbW91bnQpO1xuXG4gIGlmIChpc05hTihhbW91bnQpKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cblxuICBpZiAoIWFtb3VudCkge1xuICAgIC8vIElmIDAgbW9udGhzLCBuby1vcCB0byBhdm9pZCBjaGFuZ2luZyB0aW1lcyBpbiB0aGUgaG91ciBiZWZvcmUgZW5kIG9mIERTVFxuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgdmFyIGRheU9mTW9udGggPSBkYXRlLmdldERhdGUoKTsgLy8gVGhlIEpTIERhdGUgb2JqZWN0IHN1cHBvcnRzIGRhdGUgbWF0aCBieSBhY2NlcHRpbmcgb3V0LW9mLWJvdW5kcyB2YWx1ZXMgZm9yXG4gIC8vIG1vbnRoLCBkYXksIGV0Yy4gRm9yIGV4YW1wbGUsIG5ldyBEYXRlKDIwMjAsIDAsIDApIHJldHVybnMgMzEgRGVjIDIwMTkgYW5kXG4gIC8vIG5ldyBEYXRlKDIwMjAsIDEzLCAxKSByZXR1cm5zIDEgRmViIDIwMjEuICBUaGlzIGlzICphbG1vc3QqIHRoZSBiZWhhdmlvciB3ZVxuICAvLyB3YW50IGV4Y2VwdCB0aGF0IGRhdGVzIHdpbGwgd3JhcCBhcm91bmQgdGhlIGVuZCBvZiBhIG1vbnRoLCBtZWFuaW5nIHRoYXRcbiAgLy8gbmV3IERhdGUoMjAyMCwgMTMsIDMxKSB3aWxsIHJldHVybiAzIE1hciAyMDIxIG5vdCAyOCBGZWIgMjAyMSBhcyBkZXNpcmVkLiBTb1xuICAvLyB3ZSdsbCBkZWZhdWx0IHRvIHRoZSBlbmQgb2YgdGhlIGRlc2lyZWQgbW9udGggYnkgYWRkaW5nIDEgdG8gdGhlIGRlc2lyZWRcbiAgLy8gbW9udGggYW5kIHVzaW5nIGEgZGF0ZSBvZiAwIHRvIGJhY2sgdXAgb25lIGRheSB0byB0aGUgZW5kIG9mIHRoZSBkZXNpcmVkXG4gIC8vIG1vbnRoLlxuXG4gIHZhciBlbmRPZkRlc2lyZWRNb250aCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcbiAgZW5kT2ZEZXNpcmVkTW9udGguc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgYW1vdW50ICsgMSwgMCk7XG4gIHZhciBkYXlzSW5Nb250aCA9IGVuZE9mRGVzaXJlZE1vbnRoLmdldERhdGUoKTtcblxuICBpZiAoZGF5T2ZNb250aCA+PSBkYXlzSW5Nb250aCkge1xuICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgYXQgdGhlIGVuZCBvZiB0aGUgbW9udGgsIHRoZW4gdGhpcyBpcyB0aGUgY29ycmVjdCBkYXRlXG4gICAgLy8gYW5kIHdlJ3JlIGRvbmUuXG4gICAgcmV0dXJuIGVuZE9mRGVzaXJlZE1vbnRoO1xuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSwgd2Ugbm93IGtub3cgdGhhdCBzZXR0aW5nIHRoZSBvcmlnaW5hbCBkYXktb2YtbW9udGggdmFsdWUgd29uJ3RcbiAgICAvLyBjYXVzZSBhbiBvdmVyZmxvdywgc28gc2V0IHRoZSBkZXNpcmVkIGRheS1vZi1tb250aC4gTm90ZSB0aGF0IHdlIGNhbid0XG4gICAgLy8ganVzdCBzZXQgdGhlIGRhdGUgb2YgYGVuZE9mRGVzaXJlZE1vbnRoYCBiZWNhdXNlIHRoYXQgb2JqZWN0IG1heSBoYXZlIGhhZFxuICAgIC8vIGl0cyB0aW1lIGNoYW5nZWQgaW4gdGhlIHVudXN1YWwgY2FzZSB3aGVyZSB3aGVyZSBhIERTVCB0cmFuc2l0aW9uIHdhcyBvblxuICAgIC8vIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGggYW5kIGl0cyBsb2NhbCB0aW1lIHdhcyBpbiB0aGUgaG91ciBza2lwcGVkIG9yXG4gICAgLy8gcmVwZWF0ZWQgbmV4dCB0byBhIERTVCB0cmFuc2l0aW9uLiAgU28gd2UgdXNlIGBkYXRlYCBpbnN0ZWFkIHdoaWNoIGlzXG4gICAgLy8gZ3VhcmFudGVlZCB0byBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbCB0aW1lLlxuICAgIGRhdGUuc2V0RnVsbFllYXIoZW5kT2ZEZXNpcmVkTW9udGguZ2V0RnVsbFllYXIoKSwgZW5kT2ZEZXNpcmVkTW9udGguZ2V0TW9udGgoKSwgZGF5T2ZNb250aCk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn0iLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBhZGRNaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBNaWxsaXNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0ge051bWJlcn0gYW1vdW50IC0gdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdG8gYmUgYWRkZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgbWlsbGlzZWNvbmRzIGFkZGVkXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFkZCA3NTAgbWlsbGlzZWNvbmRzIHRvIDEwIEp1bHkgMjAxNCAxMjo0NTozMC4wMDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRNaWxsaXNlY29uZHMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCA0NSwgMzAsIDApLCA3NTApXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjo0NTozMC43NTBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRNaWxsaXNlY29uZHMoZGlydHlEYXRlLCBkaXJ0eUFtb3VudCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIHRpbWVzdGFtcCA9IHRvRGF0ZShkaXJ0eURhdGUpLmdldFRpbWUoKTtcbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG4gIHJldHVybiBuZXcgRGF0ZSh0aW1lc3RhbXAgKyBhbW91bnQpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgc3RhcnQgb2YgYSB3ZWVrXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZXZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFN1biBBdWcgMzEgMjAxNCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0aGUgd2VlayBzdGFydHMgb24gTW9uZGF5LCB0aGUgc3RhcnQgb2YgdGhlIHdlZWsgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiBNb24gU2VwIDAxIDIwMTQgMDA6MDA6MDBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdGFydE9mV2VlayhkaXJ0eURhdGUsIGRpcnR5T3B0aW9ucykge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIG9wdGlvbnMgPSBkaXJ0eU9wdGlvbnMgfHwge307XG4gIHZhciBsb2NhbGUgPSBvcHRpb25zLmxvY2FsZTtcbiAgdmFyIGxvY2FsZVdlZWtTdGFydHNPbiA9IGxvY2FsZSAmJiBsb2NhbGUub3B0aW9ucyAmJiBsb2NhbGUub3B0aW9ucy53ZWVrU3RhcnRzT247XG4gIHZhciBkZWZhdWx0V2Vla1N0YXJ0c09uID0gbG9jYWxlV2Vla1N0YXJ0c09uID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKGxvY2FsZVdlZWtTdGFydHNPbik7XG4gIHZhciB3ZWVrU3RhcnRzT24gPSBvcHRpb25zLndlZWtTdGFydHNPbiA9PSBudWxsID8gZGVmYXVsdFdlZWtTdGFydHNPbiA6IHRvSW50ZWdlcihvcHRpb25zLndlZWtTdGFydHNPbik7IC8vIFRlc3QgaWYgd2Vla1N0YXJ0c09uIGlzIGJldHdlZW4gMCBhbmQgNiBfYW5kXyBpcyBub3QgTmFOXG5cbiAgaWYgKCEod2Vla1N0YXJ0c09uID49IDAgJiYgd2Vla1N0YXJ0c09uIDw9IDYpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3dlZWtTdGFydHNPbiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNiBpbmNsdXNpdmVseScpO1xuICB9XG5cbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRheSA9IGRhdGUuZ2V0RGF5KCk7XG4gIHZhciBkaWZmID0gKGRheSA8IHdlZWtTdGFydHNPbiA/IDcgOiAwKSArIGRheSAtIHdlZWtTdGFydHNPbjtcbiAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpIC0gZGlmZik7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHJldHVybiBkYXRlO1xufSIsIi8qKlxuICogR29vZ2xlIENocm9tZSBhcyBvZiA2Ny4wLjMzOTYuODcgaW50cm9kdWNlZCB0aW1lem9uZXMgd2l0aCBvZmZzZXQgdGhhdCBpbmNsdWRlcyBzZWNvbmRzLlxuICogVGhleSB1c3VhbGx5IGFwcGVhciBmb3IgZGF0ZXMgdGhhdCBkZW5vdGUgdGltZSBiZWZvcmUgdGhlIHRpbWV6b25lcyB3ZXJlIGludHJvZHVjZWRcbiAqIChlLmcuIGZvciAnRXVyb3BlL1ByYWd1ZScgdGltZXpvbmUgdGhlIG9mZnNldCBpcyBHTVQrMDA6NTc6NDQgYmVmb3JlIDEgT2N0b2JlciAxODkxXG4gKiBhbmQgR01UKzAxOjAwOjAwIGFmdGVyIHRoYXQgZGF0ZSlcbiAqXG4gKiBEYXRlI2dldFRpbWV6b25lT2Zmc2V0IHJldHVybnMgdGhlIG9mZnNldCBpbiBtaW51dGVzIGFuZCB3b3VsZCByZXR1cm4gNTcgZm9yIHRoZSBleGFtcGxlIGFib3ZlLFxuICogd2hpY2ggd291bGQgbGVhZCB0byBpbmNvcnJlY3QgY2FsY3VsYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdGltZXpvbmUgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyB0aGF0IHRha2VzIHNlY29uZHMgaW4gYWNjb3VudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhkYXRlKSB7XG4gIHZhciB1dGNEYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCBkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkpO1xuICB1dGNEYXRlLnNldFVUQ0Z1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG4gIHJldHVybiBkYXRlLmdldFRpbWUoKSAtIHV0Y0RhdGUuZ2V0VGltZSgpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgc3RhcnRPZkRheVxuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgZGF5IGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBkYXkgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHJldHVybnMge0RhdGV9IHRoZSBzdGFydCBvZiBhIGRheVxuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhIGRheSBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZEYXkobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gVHVlIFNlcCAwMiAyMDE0IDAwOjAwOjAwXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RhcnRPZkRheShkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHJldHVybiBkYXRlO1xufSIsImltcG9ydCBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIGZyb20gXCIuLi9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mRGF5IGZyb20gXCIuLi9zdGFydE9mRGF5L2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9EQVkgPSA4NjQwMDAwMDtcbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBjYWxlbmRhciBkYXlzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHRpbWVzIGFyZSByZW1vdmVkXG4gKiBmcm9tIHRoZSBkYXRlcyBhbmQgdGhlbiB0aGUgZGlmZmVyZW5jZSBpbiBkYXlzIGlzIGNhbGN1bGF0ZWQuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlTGVmdCAtIHRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlUmlnaHQgLSB0aGUgZWFybGllciBkYXRlXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXNcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6MDA6MDAgYW5kIDIgSnVseSAyMDEyIDAwOjAwOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKFxuICogICBuZXcgRGF0ZSgyMDEyLCA2LCAyLCAwLCAwKSxcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMiwgMjMsIDApXG4gKiApXG4gKiAvLz0+IDM2NlxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6NTk6MDAgYW5kIDMgSnVseSAyMDExIDAwOjAxOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKFxuICogICBuZXcgRGF0ZSgyMDExLCA2LCAzLCAwLCAxKSxcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMiwgMjMsIDU5KVxuICogKVxuICogLy89PiAxXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRpcnR5RGF0ZUxlZnQsIGRpcnR5RGF0ZVJpZ2h0KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgc3RhcnRPZkRheUxlZnQgPSBzdGFydE9mRGF5KGRpcnR5RGF0ZUxlZnQpO1xuICB2YXIgc3RhcnRPZkRheVJpZ2h0ID0gc3RhcnRPZkRheShkaXJ0eURhdGVSaWdodCk7XG4gIHZhciB0aW1lc3RhbXBMZWZ0ID0gc3RhcnRPZkRheUxlZnQuZ2V0VGltZSgpIC0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhzdGFydE9mRGF5TGVmdCk7XG4gIHZhciB0aW1lc3RhbXBSaWdodCA9IHN0YXJ0T2ZEYXlSaWdodC5nZXRUaW1lKCkgLSBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKHN0YXJ0T2ZEYXlSaWdodCk7IC8vIFJvdW5kIHRoZSBudW1iZXIgb2YgZGF5cyB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyXG4gIC8vIGJlY2F1c2UgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYSBkYXkgaXMgbm90IGNvbnN0YW50XG4gIC8vIChlLmcuIGl0J3MgZGlmZmVyZW50IGluIHRoZSBkYXkgb2YgdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KVxuXG4gIHJldHVybiBNYXRoLnJvdW5kKCh0aW1lc3RhbXBMZWZ0IC0gdGltZXN0YW1wUmlnaHQpIC8gTUlMTElTRUNPTkRTX0lOX0RBWSk7XG59IiwiaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCBhZGREYXlzIGZyb20gXCIuLi9hZGREYXlzL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBhZGRXZWVrc1xuICogQGNhdGVnb3J5IFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHdlZWtzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHdlZWsgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2Ygd2Vla3MgdG8gYmUgYWRkZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgd2Vla3MgYWRkZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDQgd2Vla3MgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZFdlZWtzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCA0KVxuICogLy89PiBNb24gU2VwIDI5IDIwMTQgMDA6MDA6MDBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRXZWVrcyhkaXJ0eURhdGUsIGRpcnR5QW1vdW50KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgYW1vdW50ID0gdG9JbnRlZ2VyKGRpcnR5QW1vdW50KTtcbiAgdmFyIGRheXMgPSBhbW91bnQgKiA3O1xuICByZXR1cm4gYWRkRGF5cyhkaXJ0eURhdGUsIGRheXMpO1xufSIsImltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzXCI7XG5pbXBvcnQgYWRkTW9udGhzIGZyb20gXCIuLi9hZGRNb250aHMvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIGFkZFllYXJzXG4gKiBAY2F0ZWdvcnkgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgeWVhcnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgeWVhcnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgeWVhcnMgdG8gYmUgYWRkZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgeWVhcnMgYWRkZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDUgeWVhcnMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZFllYXJzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCA1KVxuICogLy89PiBTdW4gU2VwIDAxIDIwMTkgMDA6MDA6MDBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRZZWFycyhkaXJ0eURhdGUsIGRpcnR5QW1vdW50KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgYW1vdW50ID0gdG9JbnRlZ2VyKGRpcnR5QW1vdW50KTtcbiAgcmV0dXJuIGFkZE1vbnRocyhkaXJ0eURhdGUsIGFtb3VudCAqIDEyKTtcbn0iLCJpbXBvcnQgc3RhcnRPZkRheSBmcm9tIFwiLi4vc3RhcnRPZkRheS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgaXNTYW1lRGF5XG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgZGF5IChhbmQgeWVhciBhbmQgbW9udGgpP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSBkYXkgKGFuZCB5ZWFyIGFuZCBtb250aCk/XG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlTGVmdCAtIHRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlUmlnaHQgLSB0aGUgc2Vjb25kIGRhdGUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtCb29sZWFufSB0aGUgZGF0ZXMgYXJlIGluIHRoZSBzYW1lIGRheSAoYW5kIHllYXIgYW5kIG1vbnRoKVxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgNCBTZXB0ZW1iZXIgMDY6MDA6MDAgYW5kIDQgU2VwdGVtYmVyIDE4OjAwOjAwIGluIHRoZSBzYW1lIGRheT9cbiAqIHZhciByZXN1bHQgPSBpc1NhbWVEYXkobmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMCksIG5ldyBEYXRlKDIwMTQsIDgsIDQsIDE4LCAwKSlcbiAqIC8vPT4gdHJ1ZVxuICogXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDQgU2VwdGVtYmVyIGFuZCA0IE9jdG9iZXIgaW4gdGhlIHNhbWUgZGF5P1xuICogdmFyIHJlc3VsdCA9IGlzU2FtZURheShuZXcgRGF0ZSgyMDE0LCA4LCA0KSwgbmV3IERhdGUoMjAxNCwgOSwgNCkpXG4gKiAvLz0+IGZhbHNlXG4gKiBcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgNCBTZXB0ZW1iZXIsIDIwMTQgYW5kIDQgU2VwdGVtYmVyLCAyMDE1IGluIHRoZSBzYW1lIGRheT9cbiAqIHZhciByZXN1bHQgPSBpc1NhbWVEYXkobmV3IERhdGUoMjAxNCwgOCwgNCksIG5ldyBEYXRlKDIwMTUsIDgsIDQpKVxuICogLy89PiBmYWxzZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzU2FtZURheShkaXJ0eURhdGVMZWZ0LCBkaXJ0eURhdGVSaWdodCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGVMZWZ0U3RhcnRPZkRheSA9IHN0YXJ0T2ZEYXkoZGlydHlEYXRlTGVmdCk7XG4gIHZhciBkYXRlUmlnaHRTdGFydE9mRGF5ID0gc3RhcnRPZkRheShkaXJ0eURhdGVSaWdodCk7XG4gIHJldHVybiBkYXRlTGVmdFN0YXJ0T2ZEYXkuZ2V0VGltZSgpID09PSBkYXRlUmlnaHRTdGFydE9mRGF5LmdldFRpbWUoKTtcbn0iLCJpbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc0RhdGVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIHZhbHVlIGEgZGF0ZT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZS4gVGhlIGZ1bmN0aW9uIHdvcmtzIGZvciBkYXRlcyB0cmFuc2ZlcnJlZCBhY3Jvc3MgaWZyYW1lcy5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgLSB0aGUgdmFsdWUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIGRhdGVcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIGEgdmFsaWQgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzRGF0ZShuZXcgRGF0ZSgpKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBhbiBpbnZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUobmV3IERhdGUoTmFOKSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3Igc29tZSB2YWx1ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzRGF0ZSgnMjAxNC0wMi0zMScpXG4gKiAvLz0+IGZhbHNlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBhbiBvYmplY3Q6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUoe30pXG4gKiAvLz0+IGZhbHNlXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNEYXRlKHZhbHVlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xufSIsImltcG9ydCBpc0RhdGUgZnJvbSBcIi4uL2lzRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc1ZhbGlkXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIHZhbGlkP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyBmYWxzZSBpZiBhcmd1bWVudCBpcyBJbnZhbGlkIERhdGUgYW5kIHRydWUgb3RoZXJ3aXNlLlxuICogQXJndW1lbnQgaXMgY29udmVydGVkIHRvIERhdGUgdXNpbmcgYHRvRGF0ZWAuIFNlZSBbdG9EYXRlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL3RvRGF0ZX1cbiAqIEludmFsaWQgRGF0ZSBpcyBhIERhdGUsIHdob3NlIHRpbWUgdmFsdWUgaXMgTmFOLlxuICpcbiAqIFRpbWUgdmFsdWUgb2YgRGF0ZTogaHR0cDovL2VzNS5naXRodWIuaW8vI3gxNS45LjEuMVxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogLSBOb3cgYGlzVmFsaWRgIGRvZXNuJ3QgdGhyb3cgYW4gZXhjZXB0aW9uXG4gKiAgIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqICAgSW5zdGVhZCwgYXJndW1lbnQgaXMgY29udmVydGVkIGJlZm9yZWhhbmQgdXNpbmcgYHRvRGF0ZWAuXG4gKlxuICogICBFeGFtcGxlczpcbiAqXG4gKiAgIHwgYGlzVmFsaWRgIGFyZ3VtZW50ICAgICAgICB8IEJlZm9yZSB2Mi4wLjAgfCB2Mi4wLjAgb253YXJkIHxcbiAqICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfFxuICogICB8IGBuZXcgRGF0ZSgpYCAgICAgICAgICAgICAgfCBgdHJ1ZWAgICAgICAgIHwgYHRydWVgICAgICAgICB8XG4gKiAgIHwgYG5ldyBEYXRlKCcyMDE2LTAxLTAxJylgICB8IGB0cnVlYCAgICAgICAgfCBgdHJ1ZWAgICAgICAgIHxcbiAqICAgfCBgbmV3IERhdGUoJycpYCAgICAgICAgICAgIHwgYGZhbHNlYCAgICAgICB8IGBmYWxzZWAgICAgICAgfFxuICogICB8IGBuZXcgRGF0ZSgxNDg4MzcwODM1MDgxKWAgfCBgdHJ1ZWAgICAgICAgIHwgYHRydWVgICAgICAgICB8XG4gKiAgIHwgYG5ldyBEYXRlKE5hTilgICAgICAgICAgICB8IGBmYWxzZWAgICAgICAgfCBgZmFsc2VgICAgICAgIHxcbiAqICAgfCBgJzIwMTYtMDEtMDEnYCAgICAgICAgICAgIHwgYFR5cGVFcnJvcmAgICB8IGBmYWxzZWAgICAgICAgfFxuICogICB8IGAnJ2AgICAgICAgICAgICAgICAgICAgICAgfCBgVHlwZUVycm9yYCAgIHwgYGZhbHNlYCAgICAgICB8XG4gKiAgIHwgYDE0ODgzNzA4MzUwODFgICAgICAgICAgICB8IGBUeXBlRXJyb3JgICAgfCBgdHJ1ZWAgICAgICAgIHxcbiAqICAgfCBgTmFOYCAgICAgICAgICAgICAgICAgICAgIHwgYFR5cGVFcnJvcmAgICB8IGBmYWxzZWAgICAgICAgfFxuICpcbiAqICAgV2UgaW50cm9kdWNlIHRoaXMgY2hhbmdlIHRvIG1ha2UgKmRhdGUtZm5zKiBjb25zaXN0ZW50IHdpdGggRUNNQVNjcmlwdCBiZWhhdmlvclxuICogICB0aGF0IHRyeSB0byBjb2VyY2UgYXJndW1lbnRzIHRvIHRoZSBleHBlY3RlZCB0eXBlXG4gKiAgICh3aGljaCBpcyBhbHNvIHRoZSBjYXNlIHdpdGggb3RoZXIgKmRhdGUtZm5zKiBmdW5jdGlvbnMpLlxuICpcbiAqIEBwYXJhbSB7Kn0gZGF0ZSAtIHRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gdGhlIGRhdGUgaXMgdmFsaWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIHZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc1ZhbGlkKG5ldyBEYXRlKDIwMTQsIDEsIDMxKSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIHZhbHVlLCBjb252ZXJ0YWJsZSBpbnRvIGEgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzVmFsaWQoMTM5MzgwNDgwMDAwMClcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIGludmFsaWQgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzVmFsaWQobmV3IERhdGUoJycpKVxuICogLy89PiBmYWxzZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzVmFsaWQoZGlydHlEYXRlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuXG4gIGlmICghaXNEYXRlKGRpcnR5RGF0ZSkgJiYgdHlwZW9mIGRpcnR5RGF0ZSAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICByZXR1cm4gIWlzTmFOKE51bWJlcihkYXRlKSk7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoc1xuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIG1vbnRocyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIG1vbnRocyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVMZWZ0IC0gdGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVSaWdodCAtIHRoZSBlYXJsaWVyIGRhdGVcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgbW9udGhzXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIG1vbnRocyBhcmUgYmV0d2VlbiAzMSBKYW51YXJ5IDIwMTQgYW5kIDEgU2VwdGVtYmVyIDIwMTQ/XG4gKiB2YXIgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDgsIDEpLFxuICogICBuZXcgRGF0ZSgyMDE0LCAwLCAzMSlcbiAqIClcbiAqIC8vPT4gOFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzKGRpcnR5RGF0ZUxlZnQsIGRpcnR5RGF0ZVJpZ2h0KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZUxlZnQgPSB0b0RhdGUoZGlydHlEYXRlTGVmdCk7XG4gIHZhciBkYXRlUmlnaHQgPSB0b0RhdGUoZGlydHlEYXRlUmlnaHQpO1xuICB2YXIgeWVhckRpZmYgPSBkYXRlTGVmdC5nZXRGdWxsWWVhcigpIC0gZGF0ZVJpZ2h0LmdldEZ1bGxZZWFyKCk7XG4gIHZhciBtb250aERpZmYgPSBkYXRlTGVmdC5nZXRNb250aCgpIC0gZGF0ZVJpZ2h0LmdldE1vbnRoKCk7XG4gIHJldHVybiB5ZWFyRGlmZiAqIDEyICsgbW9udGhEaWZmO1xufSIsImltcG9ydCBzdGFydE9mV2VlayBmcm9tIFwiLi4vc3RhcnRPZldlZWsvaW5kZXguanNcIjtcbmltcG9ydCBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIGZyb20gXCIuLi9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG52YXIgTUlMTElTRUNPTkRTX0lOX1dFRUsgPSA2MDQ4MDAwMDA7XG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3NcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3MgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlTGVmdCAtIHRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlUmlnaHQgLSB0aGUgZWFybGllciBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3NcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgd2Vla3MgYXJlIGJldHdlZW4gNSBKdWx5IDIwMTQgYW5kIDIwIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgNSlcbiAqIClcbiAqIC8vPT4gM1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0aGUgd2VlayBzdGFydHMgb24gTW9uZGF5LFxuICogLy8gaG93IG1hbnkgY2FsZW5kYXIgd2Vla3MgYXJlIGJldHdlZW4gNSBKdWx5IDIwMTQgYW5kIDIwIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgNSksXG4gKiAgIHsgd2Vla1N0YXJ0c09uOiAxIH1cbiAqIClcbiAqIC8vPT4gMlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MoZGlydHlEYXRlTGVmdCwgZGlydHlEYXRlUmlnaHQsIGRpcnR5T3B0aW9ucykge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIHN0YXJ0T2ZXZWVrTGVmdCA9IHN0YXJ0T2ZXZWVrKGRpcnR5RGF0ZUxlZnQsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciBzdGFydE9mV2Vla1JpZ2h0ID0gc3RhcnRPZldlZWsoZGlydHlEYXRlUmlnaHQsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciB0aW1lc3RhbXBMZWZ0ID0gc3RhcnRPZldlZWtMZWZ0LmdldFRpbWUoKSAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoc3RhcnRPZldlZWtMZWZ0KTtcbiAgdmFyIHRpbWVzdGFtcFJpZ2h0ID0gc3RhcnRPZldlZWtSaWdodC5nZXRUaW1lKCkgLSBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKHN0YXJ0T2ZXZWVrUmlnaHQpOyAvLyBSb3VuZCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdGhlIG5lYXJlc3QgaW50ZWdlclxuICAvLyBiZWNhdXNlIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIGEgd2VlayBpcyBub3QgY29uc3RhbnRcbiAgLy8gKGUuZy4gaXQncyBkaWZmZXJlbnQgaW4gdGhlIHdlZWsgb2YgdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KVxuXG4gIHJldHVybiBNYXRoLnJvdW5kKCh0aW1lc3RhbXBMZWZ0IC0gdGltZXN0YW1wUmlnaHQpIC8gTUlMTElTRUNPTkRTX0lOX1dFRUspO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgZW5kT2ZNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZW5kIG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgYSBtb250aCBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGVuZCBvZiBhIG1vbnRoXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIGVuZCBvZiBhIG1vbnRoIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZNb250aChuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBUdWUgU2VwIDMwIDIwMTQgMjM6NTk6NTkuOTk5XG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZW5kT2ZNb250aChkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoICsgMSwgMCk7XG4gIGRhdGUuc2V0SG91cnMoMjMsIDU5LCA1OSwgOTk5KTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBzdGFydE9mTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBzdGFydCBvZiBhIG1vbnRoIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIG9yaWdpbmFsIGRhdGVcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgc3RhcnQgb2YgYSBtb250aFxuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhIG1vbnRoIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZk1vbnRoKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IE1vbiBTZXAgMDEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZNb250aChkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIGRhdGUuc2V0RGF0ZSgxKTtcbiAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBzdGFydE9mWWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBzdGFydCBvZiBhIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBzdGFydCBvZiBhIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHJldHVybnMge0RhdGV9IHRoZSBzdGFydCBvZiBhIHllYXJcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSB5ZWFyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZlllYXIobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwMCkpXG4gKiAvLz0+IFdlZCBKYW4gMDEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZZZWFyKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGNsZWFuRGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKDApO1xuICBkYXRlLnNldEZ1bGxZZWFyKGNsZWFuRGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcblxuLyoqXG4gKiBAbmFtZSBlbmRPZldlZWtcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZW5kIG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGVuZCBvZiBhIHdlZWsgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIGFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge0xvY2FsZX0gW29wdGlvbnMubG9jYWxlPWRlZmF1bHRMb2NhbGVdIC0gdGhlIGxvY2FsZSBvYmplY3QuIFNlZSBbTG9jYWxlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL0xvY2FsZX1cbiAqIEBwYXJhbSB7MHwxfDJ8M3w0fDV8Nn0gW29wdGlvbnMud2Vla1N0YXJ0c09uPTBdIC0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAgLSBTdW5kYXkpXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGVuZCBvZiBhIHdlZWtcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gYG9wdGlvbnMud2Vla1N0YXJ0c09uYCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgZW5kIG9mIGEgd2VlayBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGVuZE9mV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBTYXQgU2VwIDA2IDIwMTQgMjM6NTk6NTkuOTk5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRoZSB3ZWVrIHN0YXJ0cyBvbiBNb25kYXksIHRoZSBlbmQgb2YgdGhlIHdlZWsgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZldlZWsobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSwgeyB3ZWVrU3RhcnRzT246IDEgfSlcbiAqIC8vPT4gU3VuIFNlcCAwNyAyMDE0IDIzOjU5OjU5Ljk5OVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBlbmRPZldlZWsoZGlydHlEYXRlLCBkaXJ0eU9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGU7XG4gIHZhciBsb2NhbGVXZWVrU3RhcnRzT24gPSBsb2NhbGUgJiYgbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMud2Vla1N0YXJ0c09uO1xuICB2YXIgZGVmYXVsdFdlZWtTdGFydHNPbiA9IGxvY2FsZVdlZWtTdGFydHNPbiA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihsb2NhbGVXZWVrU3RhcnRzT24pO1xuICB2YXIgd2Vla1N0YXJ0c09uID0gb3B0aW9ucy53ZWVrU3RhcnRzT24gPT0gbnVsbCA/IGRlZmF1bHRXZWVrU3RhcnRzT24gOiB0b0ludGVnZXIob3B0aW9ucy53ZWVrU3RhcnRzT24pOyAvLyBUZXN0IGlmIHdlZWtTdGFydHNPbiBpcyBiZXR3ZWVuIDAgYW5kIDYgX2FuZF8gaXMgbm90IE5hTlxuXG4gIGlmICghKHdlZWtTdGFydHNPbiA+PSAwICYmIHdlZWtTdGFydHNPbiA8PSA2KSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd3ZWVrU3RhcnRzT24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYgaW5jbHVzaXZlbHknKTtcbiAgfVxuXG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkYXkgPSBkYXRlLmdldERheSgpO1xuICB2YXIgZGlmZiA9IChkYXkgPCB3ZWVrU3RhcnRzT24gPyAtNyA6IDApICsgNiAtIChkYXkgLSB3ZWVrU3RhcnRzT24pO1xuICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyBkaWZmKTtcbiAgZGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJ2YXIgZm9ybWF0RGlzdGFuY2VMb2NhbGUgPSB7XG4gIGxlc3NUaGFuWFNlY29uZHM6IHtcbiAgICBvbmU6ICdsZXNzIHRoYW4gYSBzZWNvbmQnLFxuICAgIG90aGVyOiAnbGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzJ1xuICB9LFxuICB4U2Vjb25kczoge1xuICAgIG9uZTogJzEgc2Vjb25kJyxcbiAgICBvdGhlcjogJ3t7Y291bnR9fSBzZWNvbmRzJ1xuICB9LFxuICBoYWxmQU1pbnV0ZTogJ2hhbGYgYSBtaW51dGUnLFxuICBsZXNzVGhhblhNaW51dGVzOiB7XG4gICAgb25lOiAnbGVzcyB0aGFuIGEgbWludXRlJyxcbiAgICBvdGhlcjogJ2xlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcydcbiAgfSxcbiAgeE1pbnV0ZXM6IHtcbiAgICBvbmU6ICcxIG1pbnV0ZScsXG4gICAgb3RoZXI6ICd7e2NvdW50fX0gbWludXRlcydcbiAgfSxcbiAgYWJvdXRYSG91cnM6IHtcbiAgICBvbmU6ICdhYm91dCAxIGhvdXInLFxuICAgIG90aGVyOiAnYWJvdXQge3tjb3VudH19IGhvdXJzJ1xuICB9LFxuICB4SG91cnM6IHtcbiAgICBvbmU6ICcxIGhvdXInLFxuICAgIG90aGVyOiAne3tjb3VudH19IGhvdXJzJ1xuICB9LFxuICB4RGF5czoge1xuICAgIG9uZTogJzEgZGF5JyxcbiAgICBvdGhlcjogJ3t7Y291bnR9fSBkYXlzJ1xuICB9LFxuICBhYm91dFhXZWVrczoge1xuICAgIG9uZTogJ2Fib3V0IDEgd2VlaycsXG4gICAgb3RoZXI6ICdhYm91dCB7e2NvdW50fX0gd2Vla3MnXG4gIH0sXG4gIHhXZWVrczoge1xuICAgIG9uZTogJzEgd2VlaycsXG4gICAgb3RoZXI6ICd7e2NvdW50fX0gd2Vla3MnXG4gIH0sXG4gIGFib3V0WE1vbnRoczoge1xuICAgIG9uZTogJ2Fib3V0IDEgbW9udGgnLFxuICAgIG90aGVyOiAnYWJvdXQge3tjb3VudH19IG1vbnRocydcbiAgfSxcbiAgeE1vbnRoczoge1xuICAgIG9uZTogJzEgbW9udGgnLFxuICAgIG90aGVyOiAne3tjb3VudH19IG1vbnRocydcbiAgfSxcbiAgYWJvdXRYWWVhcnM6IHtcbiAgICBvbmU6ICdhYm91dCAxIHllYXInLFxuICAgIG90aGVyOiAnYWJvdXQge3tjb3VudH19IHllYXJzJ1xuICB9LFxuICB4WWVhcnM6IHtcbiAgICBvbmU6ICcxIHllYXInLFxuICAgIG90aGVyOiAne3tjb3VudH19IHllYXJzJ1xuICB9LFxuICBvdmVyWFllYXJzOiB7XG4gICAgb25lOiAnb3ZlciAxIHllYXInLFxuICAgIG90aGVyOiAnb3ZlciB7e2NvdW50fX0geWVhcnMnXG4gIH0sXG4gIGFsbW9zdFhZZWFyczoge1xuICAgIG9uZTogJ2FsbW9zdCAxIHllYXInLFxuICAgIG90aGVyOiAnYWxtb3N0IHt7Y291bnR9fSB5ZWFycydcbiAgfVxufTtcblxudmFyIGZvcm1hdERpc3RhbmNlID0gZnVuY3Rpb24gKHRva2VuLCBjb3VudCwgb3B0aW9ucykge1xuICB2YXIgcmVzdWx0O1xuICB2YXIgdG9rZW5WYWx1ZSA9IGZvcm1hdERpc3RhbmNlTG9jYWxlW3Rva2VuXTtcblxuICBpZiAodHlwZW9mIHRva2VuVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmVzdWx0ID0gdG9rZW5WYWx1ZTtcbiAgfSBlbHNlIGlmIChjb3VudCA9PT0gMSkge1xuICAgIHJlc3VsdCA9IHRva2VuVmFsdWUub25lO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IHRva2VuVmFsdWUub3RoZXIucmVwbGFjZSgne3tjb3VudH19JywgY291bnQudG9TdHJpbmcoKSk7XG4gIH1cblxuICBpZiAob3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5hZGRTdWZmaXgpIHtcbiAgICBpZiAob3B0aW9ucy5jb21wYXJpc29uICYmIG9wdGlvbnMuY29tcGFyaXNvbiA+IDApIHtcbiAgICAgIHJldHVybiAnaW4gJyArIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdCArICcgYWdvJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0RGlzdGFuY2U7IiwiaW1wb3J0IGJ1aWxkRm9ybWF0TG9uZ0ZuIGZyb20gXCIuLi8uLi8uLi9fbGliL2J1aWxkRm9ybWF0TG9uZ0ZuL2luZGV4LmpzXCI7XG52YXIgZGF0ZUZvcm1hdHMgPSB7XG4gIGZ1bGw6ICdFRUVFLCBNTU1NIGRvLCB5JyxcbiAgbG9uZzogJ01NTU0gZG8sIHknLFxuICBtZWRpdW06ICdNTU0gZCwgeScsXG4gIHNob3J0OiAnTU0vZGQveXl5eSdcbn07XG52YXIgdGltZUZvcm1hdHMgPSB7XG4gIGZ1bGw6ICdoOm1tOnNzIGEgenp6eicsXG4gIGxvbmc6ICdoOm1tOnNzIGEgeicsXG4gIG1lZGl1bTogJ2g6bW06c3MgYScsXG4gIHNob3J0OiAnaDptbSBhJ1xufTtcbnZhciBkYXRlVGltZUZvcm1hdHMgPSB7XG4gIGZ1bGw6IFwie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fVwiLFxuICBsb25nOiBcInt7ZGF0ZX19ICdhdCcge3t0aW1lfX1cIixcbiAgbWVkaXVtOiAne3tkYXRlfX0sIHt7dGltZX19JyxcbiAgc2hvcnQ6ICd7e2RhdGV9fSwge3t0aW1lfX0nXG59O1xudmFyIGZvcm1hdExvbmcgPSB7XG4gIGRhdGU6IGJ1aWxkRm9ybWF0TG9uZ0ZuKHtcbiAgICBmb3JtYXRzOiBkYXRlRm9ybWF0cyxcbiAgICBkZWZhdWx0V2lkdGg6ICdmdWxsJ1xuICB9KSxcbiAgdGltZTogYnVpbGRGb3JtYXRMb25nRm4oe1xuICAgIGZvcm1hdHM6IHRpbWVGb3JtYXRzLFxuICAgIGRlZmF1bHRXaWR0aDogJ2Z1bGwnXG4gIH0pLFxuICBkYXRlVGltZTogYnVpbGRGb3JtYXRMb25nRm4oe1xuICAgIGZvcm1hdHM6IGRhdGVUaW1lRm9ybWF0cyxcbiAgICBkZWZhdWx0V2lkdGg6ICdmdWxsJ1xuICB9KVxufTtcbmV4cG9ydCBkZWZhdWx0IGZvcm1hdExvbmc7IiwidmFyIGZvcm1hdFJlbGF0aXZlTG9jYWxlID0ge1xuICBsYXN0V2VlazogXCInbGFzdCcgZWVlZSAnYXQnIHBcIixcbiAgeWVzdGVyZGF5OiBcIid5ZXN0ZXJkYXkgYXQnIHBcIixcbiAgdG9kYXk6IFwiJ3RvZGF5IGF0JyBwXCIsXG4gIHRvbW9ycm93OiBcIid0b21vcnJvdyBhdCcgcFwiLFxuICBuZXh0V2VlazogXCJlZWVlICdhdCcgcFwiLFxuICBvdGhlcjogJ1AnXG59O1xuXG52YXIgZm9ybWF0UmVsYXRpdmUgPSBmdW5jdGlvbiAodG9rZW4sIF9kYXRlLCBfYmFzZURhdGUsIF9vcHRpb25zKSB7XG4gIHJldHVybiBmb3JtYXRSZWxhdGl2ZUxvY2FsZVt0b2tlbl07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmb3JtYXRSZWxhdGl2ZTsiLCJpbXBvcnQgYnVpbGRMb2NhbGl6ZUZuIGZyb20gXCIuLi8uLi8uLi9fbGliL2J1aWxkTG9jYWxpemVGbi9pbmRleC5qc1wiO1xudmFyIGVyYVZhbHVlcyA9IHtcbiAgbmFycm93OiBbJ0InLCAnQSddLFxuICBhYmJyZXZpYXRlZDogWydCQycsICdBRCddLFxuICB3aWRlOiBbJ0JlZm9yZSBDaHJpc3QnLCAnQW5ubyBEb21pbmknXVxufTtcbnZhciBxdWFydGVyVmFsdWVzID0ge1xuICBuYXJyb3c6IFsnMScsICcyJywgJzMnLCAnNCddLFxuICBhYmJyZXZpYXRlZDogWydRMScsICdRMicsICdRMycsICdRNCddLFxuICB3aWRlOiBbJzFzdCBxdWFydGVyJywgJzJuZCBxdWFydGVyJywgJzNyZCBxdWFydGVyJywgJzR0aCBxdWFydGVyJ11cbn07IC8vIE5vdGU6IGluIEVuZ2xpc2gsIHRoZSBuYW1lcyBvZiBkYXlzIG9mIHRoZSB3ZWVrIGFuZCBtb250aHMgYXJlIGNhcGl0YWxpemVkLlxuLy8gSWYgeW91IGFyZSBtYWtpbmcgYSBuZXcgbG9jYWxlIGJhc2VkIG9uIHRoaXMgb25lLCBjaGVjayBpZiB0aGUgc2FtZSBpcyB0cnVlIGZvciB0aGUgbGFuZ3VhZ2UgeW91J3JlIHdvcmtpbmcgb24uXG4vLyBHZW5lcmFsbHksIGZvcm1hdHRlZCBkYXRlcyBzaG91bGQgbG9vayBsaWtlIHRoZXkgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBzZW50ZW5jZSxcbi8vIGUuZy4gaW4gU3BhbmlzaCBsYW5ndWFnZSB0aGUgd2Vla2RheXMgYW5kIG1vbnRocyBzaG91bGQgYmUgaW4gdGhlIGxvd2VyY2FzZS5cblxudmFyIG1vbnRoVmFsdWVzID0ge1xuICBuYXJyb3c6IFsnSicsICdGJywgJ00nLCAnQScsICdNJywgJ0onLCAnSicsICdBJywgJ1MnLCAnTycsICdOJywgJ0QnXSxcbiAgYWJicmV2aWF0ZWQ6IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXSxcbiAgd2lkZTogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ11cbn07XG52YXIgZGF5VmFsdWVzID0ge1xuICBuYXJyb3c6IFsnUycsICdNJywgJ1QnLCAnVycsICdUJywgJ0YnLCAnUyddLFxuICBzaG9ydDogWydTdScsICdNbycsICdUdScsICdXZScsICdUaCcsICdGcicsICdTYSddLFxuICBhYmJyZXZpYXRlZDogWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXSxcbiAgd2lkZTogWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddXG59O1xudmFyIGRheVBlcmlvZFZhbHVlcyA9IHtcbiAgbmFycm93OiB7XG4gICAgYW06ICdhJyxcbiAgICBwbTogJ3AnLFxuICAgIG1pZG5pZ2h0OiAnbWknLFxuICAgIG5vb246ICduJyxcbiAgICBtb3JuaW5nOiAnbW9ybmluZycsXG4gICAgYWZ0ZXJub29uOiAnYWZ0ZXJub29uJyxcbiAgICBldmVuaW5nOiAnZXZlbmluZycsXG4gICAgbmlnaHQ6ICduaWdodCdcbiAgfSxcbiAgYWJicmV2aWF0ZWQ6IHtcbiAgICBhbTogJ0FNJyxcbiAgICBwbTogJ1BNJyxcbiAgICBtaWRuaWdodDogJ21pZG5pZ2h0JyxcbiAgICBub29uOiAnbm9vbicsXG4gICAgbW9ybmluZzogJ21vcm5pbmcnLFxuICAgIGFmdGVybm9vbjogJ2FmdGVybm9vbicsXG4gICAgZXZlbmluZzogJ2V2ZW5pbmcnLFxuICAgIG5pZ2h0OiAnbmlnaHQnXG4gIH0sXG4gIHdpZGU6IHtcbiAgICBhbTogJ2EubS4nLFxuICAgIHBtOiAncC5tLicsXG4gICAgbWlkbmlnaHQ6ICdtaWRuaWdodCcsXG4gICAgbm9vbjogJ25vb24nLFxuICAgIG1vcm5pbmc6ICdtb3JuaW5nJyxcbiAgICBhZnRlcm5vb246ICdhZnRlcm5vb24nLFxuICAgIGV2ZW5pbmc6ICdldmVuaW5nJyxcbiAgICBuaWdodDogJ25pZ2h0J1xuICB9XG59O1xudmFyIGZvcm1hdHRpbmdEYXlQZXJpb2RWYWx1ZXMgPSB7XG4gIG5hcnJvdzoge1xuICAgIGFtOiAnYScsXG4gICAgcG06ICdwJyxcbiAgICBtaWRuaWdodDogJ21pJyxcbiAgICBub29uOiAnbicsXG4gICAgbW9ybmluZzogJ2luIHRoZSBtb3JuaW5nJyxcbiAgICBhZnRlcm5vb246ICdpbiB0aGUgYWZ0ZXJub29uJyxcbiAgICBldmVuaW5nOiAnaW4gdGhlIGV2ZW5pbmcnLFxuICAgIG5pZ2h0OiAnYXQgbmlnaHQnXG4gIH0sXG4gIGFiYnJldmlhdGVkOiB7XG4gICAgYW06ICdBTScsXG4gICAgcG06ICdQTScsXG4gICAgbWlkbmlnaHQ6ICdtaWRuaWdodCcsXG4gICAgbm9vbjogJ25vb24nLFxuICAgIG1vcm5pbmc6ICdpbiB0aGUgbW9ybmluZycsXG4gICAgYWZ0ZXJub29uOiAnaW4gdGhlIGFmdGVybm9vbicsXG4gICAgZXZlbmluZzogJ2luIHRoZSBldmVuaW5nJyxcbiAgICBuaWdodDogJ2F0IG5pZ2h0J1xuICB9LFxuICB3aWRlOiB7XG4gICAgYW06ICdhLm0uJyxcbiAgICBwbTogJ3AubS4nLFxuICAgIG1pZG5pZ2h0OiAnbWlkbmlnaHQnLFxuICAgIG5vb246ICdub29uJyxcbiAgICBtb3JuaW5nOiAnaW4gdGhlIG1vcm5pbmcnLFxuICAgIGFmdGVybm9vbjogJ2luIHRoZSBhZnRlcm5vb24nLFxuICAgIGV2ZW5pbmc6ICdpbiB0aGUgZXZlbmluZycsXG4gICAgbmlnaHQ6ICdhdCBuaWdodCdcbiAgfVxufTtcblxudmFyIG9yZGluYWxOdW1iZXIgPSBmdW5jdGlvbiAoZGlydHlOdW1iZXIsIF9vcHRpb25zKSB7XG4gIHZhciBudW1iZXIgPSBOdW1iZXIoZGlydHlOdW1iZXIpOyAvLyBJZiBvcmRpbmFsIG51bWJlcnMgZGVwZW5kIG9uIGNvbnRleHQsIGZvciBleGFtcGxlLFxuICAvLyBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgZm9yIGRpZmZlcmVudCBncmFtbWF0aWNhbCBnZW5kZXJzLFxuICAvLyB1c2UgYG9wdGlvbnMudW5pdGAuXG4gIC8vXG4gIC8vIGB1bml0YCBjYW4gYmUgJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RhdGUnLCAnZGF5T2ZZZWFyJyxcbiAgLy8gJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLlxuXG4gIHZhciByZW0xMDAgPSBudW1iZXIgJSAxMDA7XG5cbiAgaWYgKHJlbTEwMCA+IDIwIHx8IHJlbTEwMCA8IDEwKSB7XG4gICAgc3dpdGNoIChyZW0xMDAgJSAxMCkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gbnVtYmVyICsgJ3N0JztcblxuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gbnVtYmVyICsgJ25kJztcblxuICAgICAgY2FzZSAzOlxuICAgICAgICByZXR1cm4gbnVtYmVyICsgJ3JkJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVtYmVyICsgJ3RoJztcbn07XG5cbnZhciBsb2NhbGl6ZSA9IHtcbiAgb3JkaW5hbE51bWJlcjogb3JkaW5hbE51bWJlcixcbiAgZXJhOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogZXJhVmFsdWVzLFxuICAgIGRlZmF1bHRXaWR0aDogJ3dpZGUnXG4gIH0pLFxuICBxdWFydGVyOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogcXVhcnRlclZhbHVlcyxcbiAgICBkZWZhdWx0V2lkdGg6ICd3aWRlJyxcbiAgICBhcmd1bWVudENhbGxiYWNrOiBmdW5jdGlvbiAocXVhcnRlcikge1xuICAgICAgcmV0dXJuIHF1YXJ0ZXIgLSAxO1xuICAgIH1cbiAgfSksXG4gIG1vbnRoOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogbW9udGhWYWx1ZXMsXG4gICAgZGVmYXVsdFdpZHRoOiAnd2lkZSdcbiAgfSksXG4gIGRheTogYnVpbGRMb2NhbGl6ZUZuKHtcbiAgICB2YWx1ZXM6IGRheVZhbHVlcyxcbiAgICBkZWZhdWx0V2lkdGg6ICd3aWRlJ1xuICB9KSxcbiAgZGF5UGVyaW9kOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogZGF5UGVyaW9kVmFsdWVzLFxuICAgIGRlZmF1bHRXaWR0aDogJ3dpZGUnLFxuICAgIGZvcm1hdHRpbmdWYWx1ZXM6IGZvcm1hdHRpbmdEYXlQZXJpb2RWYWx1ZXMsXG4gICAgZGVmYXVsdEZvcm1hdHRpbmdXaWR0aDogJ3dpZGUnXG4gIH0pXG59O1xuZXhwb3J0IGRlZmF1bHQgbG9jYWxpemU7IiwiaW1wb3J0IGJ1aWxkTWF0Y2hGbiBmcm9tIFwiLi4vLi4vLi4vX2xpYi9idWlsZE1hdGNoRm4vaW5kZXguanNcIjtcbmltcG9ydCBidWlsZE1hdGNoUGF0dGVybkZuIGZyb20gXCIuLi8uLi8uLi9fbGliL2J1aWxkTWF0Y2hQYXR0ZXJuRm4vaW5kZXguanNcIjtcbnZhciBtYXRjaE9yZGluYWxOdW1iZXJQYXR0ZXJuID0gL14oXFxkKykodGh8c3R8bmR8cmQpPy9pO1xudmFyIHBhcnNlT3JkaW5hbE51bWJlclBhdHRlcm4gPSAvXFxkKy9pO1xudmFyIG1hdGNoRXJhUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL14oYnxhKS9pLFxuICBhYmJyZXZpYXRlZDogL14oYlxcLj9cXHM/Y1xcLj98YlxcLj9cXHM/Y1xcLj9cXHM/ZVxcLj98YVxcLj9cXHM/ZFxcLj98Y1xcLj9cXHM/ZVxcLj8pL2ksXG4gIHdpZGU6IC9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaVxufTtcbnZhciBwYXJzZUVyYVBhdHRlcm5zID0ge1xuICBhbnk6IFsvXmIvaSwgL14oYXxjKS9pXVxufTtcbnZhciBtYXRjaFF1YXJ0ZXJQYXR0ZXJucyA9IHtcbiAgbmFycm93OiAvXlsxMjM0XS9pLFxuICBhYmJyZXZpYXRlZDogL15xWzEyMzRdL2ksXG4gIHdpZGU6IC9eWzEyMzRdKHRofHN0fG5kfHJkKT8gcXVhcnRlci9pXG59O1xudmFyIHBhcnNlUXVhcnRlclBhdHRlcm5zID0ge1xuICBhbnk6IFsvMS9pLCAvMi9pLCAvMy9pLCAvNC9pXVxufTtcbnZhciBtYXRjaE1vbnRoUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL15bamZtYXNvbmRdL2ksXG4gIGFiYnJldmlhdGVkOiAvXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSxcbiAgd2lkZTogL14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaVxufTtcbnZhciBwYXJzZU1vbnRoUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogWy9eai9pLCAvXmYvaSwgL15tL2ksIC9eYS9pLCAvXm0vaSwgL15qL2ksIC9eai9pLCAvXmEvaSwgL15zL2ksIC9eby9pLCAvXm4vaSwgL15kL2ldLFxuICBhbnk6IFsvXmphL2ksIC9eZi9pLCAvXm1hci9pLCAvXmFwL2ksIC9ebWF5L2ksIC9eanVuL2ksIC9eanVsL2ksIC9eYXUvaSwgL15zL2ksIC9eby9pLCAvXm4vaSwgL15kL2ldXG59O1xudmFyIG1hdGNoRGF5UGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL15bc210d2ZdL2ksXG4gIHNob3J0OiAvXihzdXxtb3x0dXx3ZXx0aHxmcnxzYSkvaSxcbiAgYWJicmV2aWF0ZWQ6IC9eKHN1bnxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdCkvaSxcbiAgd2lkZTogL14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2lcbn07XG52YXIgcGFyc2VEYXlQYXR0ZXJucyA9IHtcbiAgbmFycm93OiBbL15zL2ksIC9ebS9pLCAvXnQvaSwgL153L2ksIC9edC9pLCAvXmYvaSwgL15zL2ldLFxuICBhbnk6IFsvXnN1L2ksIC9ebS9pLCAvXnR1L2ksIC9edy9pLCAvXnRoL2ksIC9eZi9pLCAvXnNhL2ldXG59O1xudmFyIG1hdGNoRGF5UGVyaW9kUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL14oYXxwfG1pfG58KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLFxuICBhbnk6IC9eKFthcF1cXC4/XFxzP21cXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pXG59O1xudmFyIHBhcnNlRGF5UGVyaW9kUGF0dGVybnMgPSB7XG4gIGFueToge1xuICAgIGFtOiAvXmEvaSxcbiAgICBwbTogL15wL2ksXG4gICAgbWlkbmlnaHQ6IC9ebWkvaSxcbiAgICBub29uOiAvXm5vL2ksXG4gICAgbW9ybmluZzogL21vcm5pbmcvaSxcbiAgICBhZnRlcm5vb246IC9hZnRlcm5vb24vaSxcbiAgICBldmVuaW5nOiAvZXZlbmluZy9pLFxuICAgIG5pZ2h0OiAvbmlnaHQvaVxuICB9XG59O1xudmFyIG1hdGNoID0ge1xuICBvcmRpbmFsTnVtYmVyOiBidWlsZE1hdGNoUGF0dGVybkZuKHtcbiAgICBtYXRjaFBhdHRlcm46IG1hdGNoT3JkaW5hbE51bWJlclBhdHRlcm4sXG4gICAgcGFyc2VQYXR0ZXJuOiBwYXJzZU9yZGluYWxOdW1iZXJQYXR0ZXJuLFxuICAgIHZhbHVlQ2FsbGJhY2s6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgfVxuICB9KSxcbiAgZXJhOiBidWlsZE1hdGNoRm4oe1xuICAgIG1hdGNoUGF0dGVybnM6IG1hdGNoRXJhUGF0dGVybnMsXG4gICAgZGVmYXVsdE1hdGNoV2lkdGg6ICd3aWRlJyxcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZUVyYVBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55J1xuICB9KSxcbiAgcXVhcnRlcjogYnVpbGRNYXRjaEZuKHtcbiAgICBtYXRjaFBhdHRlcm5zOiBtYXRjaFF1YXJ0ZXJQYXR0ZXJucyxcbiAgICBkZWZhdWx0TWF0Y2hXaWR0aDogJ3dpZGUnLFxuICAgIHBhcnNlUGF0dGVybnM6IHBhcnNlUXVhcnRlclBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55JyxcbiAgICB2YWx1ZUNhbGxiYWNrOiBmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgIHJldHVybiBpbmRleCArIDE7XG4gICAgfVxuICB9KSxcbiAgbW9udGg6IGJ1aWxkTWF0Y2hGbih7XG4gICAgbWF0Y2hQYXR0ZXJuczogbWF0Y2hNb250aFBhdHRlcm5zLFxuICAgIGRlZmF1bHRNYXRjaFdpZHRoOiAnd2lkZScsXG4gICAgcGFyc2VQYXR0ZXJuczogcGFyc2VNb250aFBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55J1xuICB9KSxcbiAgZGF5OiBidWlsZE1hdGNoRm4oe1xuICAgIG1hdGNoUGF0dGVybnM6IG1hdGNoRGF5UGF0dGVybnMsXG4gICAgZGVmYXVsdE1hdGNoV2lkdGg6ICd3aWRlJyxcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZURheVBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55J1xuICB9KSxcbiAgZGF5UGVyaW9kOiBidWlsZE1hdGNoRm4oe1xuICAgIG1hdGNoUGF0dGVybnM6IG1hdGNoRGF5UGVyaW9kUGF0dGVybnMsXG4gICAgZGVmYXVsdE1hdGNoV2lkdGg6ICdhbnknLFxuICAgIHBhcnNlUGF0dGVybnM6IHBhcnNlRGF5UGVyaW9kUGF0dGVybnMsXG4gICAgZGVmYXVsdFBhcnNlV2lkdGg6ICdhbnknXG4gIH0pXG59O1xuZXhwb3J0IGRlZmF1bHQgbWF0Y2g7IiwiaW1wb3J0IGZvcm1hdERpc3RhbmNlIGZyb20gXCIuL19saWIvZm9ybWF0RGlzdGFuY2UvaW5kZXguanNcIjtcbmltcG9ydCBmb3JtYXRMb25nIGZyb20gXCIuL19saWIvZm9ybWF0TG9uZy9pbmRleC5qc1wiO1xuaW1wb3J0IGZvcm1hdFJlbGF0aXZlIGZyb20gXCIuL19saWIvZm9ybWF0UmVsYXRpdmUvaW5kZXguanNcIjtcbmltcG9ydCBsb2NhbGl6ZSBmcm9tIFwiLi9fbGliL2xvY2FsaXplL2luZGV4LmpzXCI7XG5pbXBvcnQgbWF0Y2ggZnJvbSBcIi4vX2xpYi9tYXRjaC9pbmRleC5qc1wiO1xuXG4vKipcbiAqIEB0eXBlIHtMb2NhbGV9XG4gKiBAY2F0ZWdvcnkgTG9jYWxlc1xuICogQHN1bW1hcnkgRW5nbGlzaCBsb2NhbGUgKFVuaXRlZCBTdGF0ZXMpLlxuICogQGxhbmd1YWdlIEVuZ2xpc2hcbiAqIEBpc28tNjM5LTIgZW5nXG4gKiBAYXV0aG9yIFNhc2hhIEtvc3MgW0Brb3Nzbm9jb3JwXXtAbGluayBodHRwczovL2dpdGh1Yi5jb20va29zc25vY29ycH1cbiAqIEBhdXRob3IgTGVzaGEgS29zcyBbQGxlc2hha29zc117QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2xlc2hha29zc31cbiAqL1xudmFyIGxvY2FsZSA9IHtcbiAgY29kZTogJ2VuLVVTJyxcbiAgZm9ybWF0RGlzdGFuY2U6IGZvcm1hdERpc3RhbmNlLFxuICBmb3JtYXRMb25nOiBmb3JtYXRMb25nLFxuICBmb3JtYXRSZWxhdGl2ZTogZm9ybWF0UmVsYXRpdmUsXG4gIGxvY2FsaXplOiBsb2NhbGl6ZSxcbiAgbWF0Y2g6IG1hdGNoLFxuICBvcHRpb25zOiB7XG4gICAgd2Vla1N0YXJ0c09uOiAwXG4gICAgLyogU3VuZGF5ICovXG4gICAgLFxuICAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZTogMVxuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgbG9jYWxlOyIsImltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzXCI7XG5pbXBvcnQgYWRkTWlsbGlzZWNvbmRzIGZyb20gXCIuLi9hZGRNaWxsaXNlY29uZHMvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIHN1Yk1pbGxpc2Vjb25kc1xuICogQGNhdGVnb3J5IE1pbGxpc2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgbWlsbGlzZWNvbmRzIHRvIGJlIHN1YnRyYWN0ZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgbWlsbGlzZWNvbmRzIHN1YnRyYWN0ZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgNzUwIG1pbGxpc2Vjb25kcyBmcm9tIDEwIEp1bHkgMjAxNCAxMjo0NTozMC4wMDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJNaWxsaXNlY29uZHMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCA0NSwgMzAsIDApLCA3NTApXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjo0NToyOS4yNTBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdWJNaWxsaXNlY29uZHMoZGlydHlEYXRlLCBkaXJ0eUFtb3VudCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG4gIHJldHVybiBhZGRNaWxsaXNlY29uZHMoZGlydHlEYXRlLCAtYW1vdW50KTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi8uLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9EQVkgPSA4NjQwMDAwMDsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVUQ0RheU9mWWVhcihkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciB0aW1lc3RhbXAgPSBkYXRlLmdldFRpbWUoKTtcbiAgZGF0ZS5zZXRVVENNb250aCgwLCAxKTtcbiAgZGF0ZS5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZZZWFyVGltZXN0YW1wID0gZGF0ZS5nZXRUaW1lKCk7XG4gIHZhciBkaWZmZXJlbmNlID0gdGltZXN0YW1wIC0gc3RhcnRPZlllYXJUaW1lc3RhbXA7XG4gIHJldHVybiBNYXRoLmZsb29yKGRpZmZlcmVuY2UgLyBNSUxMSVNFQ09ORFNfSU5fREFZKSArIDE7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZVVENJU09XZWVrKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIHdlZWtTdGFydHNPbiA9IDE7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkYXkgPSBkYXRlLmdldFVUQ0RheSgpO1xuICB2YXIgZGlmZiA9IChkYXkgPCB3ZWVrU3RhcnRzT24gPyA3IDogMCkgKyBkYXkgLSB3ZWVrU3RhcnRzT247XG4gIGRhdGUuc2V0VVRDRGF0ZShkYXRlLmdldFVUQ0RhdGUoKSAtIGRpZmYpO1xuICBkYXRlLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi8uLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZVVENJU09XZWVrIGZyb20gXCIuLi9zdGFydE9mVVRDSVNPV2Vlay9pbmRleC5qc1wiOyAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgYSBwYXJ0IG9mIHB1YmxpYyBBUEkgd2hlbiBVVEMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZC5cbi8vIFNlZSBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8zNzZcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VVRDSVNPV2Vla1llYXIoZGlydHlEYXRlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgdmFyIGZvdXJ0aE9mSmFudWFyeU9mTmV4dFllYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZm91cnRoT2ZKYW51YXJ5T2ZOZXh0WWVhci5zZXRVVENGdWxsWWVhcih5ZWFyICsgMSwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeU9mTmV4dFllYXIuc2V0VVRDSG91cnMoMCwgMCwgMCwgMCk7XG4gIHZhciBzdGFydE9mTmV4dFllYXIgPSBzdGFydE9mVVRDSVNPV2Vlayhmb3VydGhPZkphbnVhcnlPZk5leHRZZWFyKTtcbiAgdmFyIGZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZm91cnRoT2ZKYW51YXJ5T2ZUaGlzWWVhci5zZXRVVENGdWxsWWVhcih5ZWFyLCAwLCA0KTtcbiAgZm91cnRoT2ZKYW51YXJ5T2ZUaGlzWWVhci5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZUaGlzWWVhciA9IHN0YXJ0T2ZVVENJU09XZWVrKGZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIpO1xuXG4gIGlmIChkYXRlLmdldFRpbWUoKSA+PSBzdGFydE9mTmV4dFllYXIuZ2V0VGltZSgpKSB7XG4gICAgcmV0dXJuIHllYXIgKyAxO1xuICB9IGVsc2UgaWYgKGRhdGUuZ2V0VGltZSgpID49IHN0YXJ0T2ZUaGlzWWVhci5nZXRUaW1lKCkpIHtcbiAgICByZXR1cm4geWVhcjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geWVhciAtIDE7XG4gIH1cbn0iLCJpbXBvcnQgZ2V0VVRDSVNPV2Vla1llYXIgZnJvbSBcIi4uL2dldFVUQ0lTT1dlZWtZZWFyL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ0lTT1dlZWsgZnJvbSBcIi4uL3N0YXJ0T2ZVVENJU09XZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZVVENJU09XZWVrWWVhcihkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciB5ZWFyID0gZ2V0VVRDSVNPV2Vla1llYXIoZGlydHlEYXRlKTtcbiAgdmFyIGZvdXJ0aE9mSmFudWFyeSA9IG5ldyBEYXRlKDApO1xuICBmb3VydGhPZkphbnVhcnkuc2V0VVRDRnVsbFllYXIoeWVhciwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeS5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIGRhdGUgPSBzdGFydE9mVVRDSVNPV2Vlayhmb3VydGhPZkphbnVhcnkpO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi8uLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mVVRDSVNPV2VlayBmcm9tIFwiLi4vc3RhcnRPZlVUQ0lTT1dlZWsvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mVVRDSVNPV2Vla1llYXIgZnJvbSBcIi4uL3N0YXJ0T2ZVVENJU09XZWVrWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG52YXIgTUlMTElTRUNPTkRTX0lOX1dFRUsgPSA2MDQ4MDAwMDA7IC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBhIHBhcnQgb2YgcHVibGljIEFQSSB3aGVuIFVUQyBmdW5jdGlvbiB3aWxsIGJlIGltcGxlbWVudGVkLlxuLy8gU2VlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM3NlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRVVENJU09XZWVrKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRpZmYgPSBzdGFydE9mVVRDSVNPV2VlayhkYXRlKS5nZXRUaW1lKCkgLSBzdGFydE9mVVRDSVNPV2Vla1llYXIoZGF0ZSkuZ2V0VGltZSgpOyAvLyBSb3VuZCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdGhlIG5lYXJlc3QgaW50ZWdlclxuICAvLyBiZWNhdXNlIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIGEgd2VlayBpcyBub3QgY29uc3RhbnRcbiAgLy8gKGUuZy4gaXQncyBkaWZmZXJlbnQgaW4gdGhlIHdlZWsgb2YgdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KVxuXG4gIHJldHVybiBNYXRoLnJvdW5kKGRpZmYgLyBNSUxMSVNFQ09ORFNfSU5fV0VFSykgKyAxO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uLy4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ1dlZWsgZnJvbSBcIi4uL3N0YXJ0T2ZVVENXZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi90b0ludGVnZXIvaW5kZXguanNcIjsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVUQ1dlZWtZZWFyKGRpcnR5RGF0ZSwgZGlydHlPcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgdmFyIG9wdGlvbnMgPSBkaXJ0eU9wdGlvbnMgfHwge307XG4gIHZhciBsb2NhbGUgPSBvcHRpb25zLmxvY2FsZTtcbiAgdmFyIGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IGxvY2FsZSAmJiBsb2NhbGUub3B0aW9ucyAmJiBsb2NhbGUub3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGU7XG4gIHZhciBkZWZhdWx0Rmlyc3RXZWVrQ29udGFpbnNEYXRlID0gbG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlID09IG51bGwgPyAxIDogdG9JbnRlZ2VyKGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7XG4gIHZhciBmaXJzdFdlZWtDb250YWluc0RhdGUgPSBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9PSBudWxsID8gZGVmYXVsdEZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA6IHRvSW50ZWdlcihvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7IC8vIFRlc3QgaWYgd2Vla1N0YXJ0c09uIGlzIGJldHdlZW4gMSBhbmQgNyBfYW5kXyBpcyBub3QgTmFOXG5cbiAgaWYgKCEoZmlyc3RXZWVrQ29udGFpbnNEYXRlID49IDEgJiYgZmlyc3RXZWVrQ29udGFpbnNEYXRlIDw9IDcpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNyBpbmNsdXNpdmVseScpO1xuICB9XG5cbiAgdmFyIGZpcnN0V2Vla09mTmV4dFllYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRVVENGdWxsWWVhcih5ZWFyICsgMSwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZOZXh0WWVhciA9IHN0YXJ0T2ZVVENXZWVrKGZpcnN0V2Vla09mTmV4dFllYXIsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciBmaXJzdFdlZWtPZlRoaXNZZWFyID0gbmV3IERhdGUoMCk7XG4gIGZpcnN0V2Vla09mVGhpc1llYXIuc2V0VVRDRnVsbFllYXIoeWVhciwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrT2ZUaGlzWWVhci5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZUaGlzWWVhciA9IHN0YXJ0T2ZVVENXZWVrKGZpcnN0V2Vla09mVGhpc1llYXIsIGRpcnR5T3B0aW9ucyk7XG5cbiAgaWYgKGRhdGUuZ2V0VGltZSgpID49IHN0YXJ0T2ZOZXh0WWVhci5nZXRUaW1lKCkpIHtcbiAgICByZXR1cm4geWVhciArIDE7XG4gIH0gZWxzZSBpZiAoZGF0ZS5nZXRUaW1lKCkgPj0gc3RhcnRPZlRoaXNZZWFyLmdldFRpbWUoKSkge1xuICAgIHJldHVybiB5ZWFyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB5ZWFyIC0gMTtcbiAgfVxufSIsImltcG9ydCBnZXRVVENXZWVrWWVhciBmcm9tIFwiLi4vZ2V0VVRDV2Vla1llYXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZVVENXZWVrIGZyb20gXCIuLi9zdGFydE9mVVRDV2Vlay9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vdG9JbnRlZ2VyL2luZGV4LmpzXCI7IC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBhIHBhcnQgb2YgcHVibGljIEFQSSB3aGVuIFVUQyBmdW5jdGlvbiB3aWxsIGJlIGltcGxlbWVudGVkLlxuLy8gU2VlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM3NlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdGFydE9mVVRDV2Vla1llYXIoZGlydHlEYXRlLCBkaXJ0eU9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGU7XG4gIHZhciBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGUgJiYgbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlO1xuICB2YXIgZGVmYXVsdEZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9PSBudWxsID8gMSA6IHRvSW50ZWdlcihsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUpO1xuICB2YXIgZmlyc3RXZWVrQ29udGFpbnNEYXRlID0gb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgOiB0b0ludGVnZXIob3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGUpO1xuICB2YXIgeWVhciA9IGdldFVUQ1dlZWtZZWFyKGRpcnR5RGF0ZSwgZGlydHlPcHRpb25zKTtcbiAgdmFyIGZpcnN0V2VlayA9IG5ldyBEYXRlKDApO1xuICBmaXJzdFdlZWsuc2V0VVRDRnVsbFllYXIoeWVhciwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xuICB2YXIgZGF0ZSA9IHN0YXJ0T2ZVVENXZWVrKGZpcnN0V2VlaywgZGlydHlPcHRpb25zKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ1dlZWsgZnJvbSBcIi4uL3N0YXJ0T2ZVVENXZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ1dlZWtZZWFyIGZyb20gXCIuLi9zdGFydE9mVVRDV2Vla1llYXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9XRUVLID0gNjA0ODAwMDAwOyAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgYSBwYXJ0IG9mIHB1YmxpYyBBUEkgd2hlbiBVVEMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZC5cbi8vIFNlZSBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8zNzZcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VVRDV2VlayhkaXJ0eURhdGUsIG9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkaWZmID0gc3RhcnRPZlVUQ1dlZWsoZGF0ZSwgb3B0aW9ucykuZ2V0VGltZSgpIC0gc3RhcnRPZlVUQ1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpLmdldFRpbWUoKTsgLy8gUm91bmQgdGhlIG51bWJlciBvZiBkYXlzIHRvIHRoZSBuZWFyZXN0IGludGVnZXJcbiAgLy8gYmVjYXVzZSB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhIHdlZWsgaXMgbm90IGNvbnN0YW50XG4gIC8vIChlLmcuIGl0J3MgZGlmZmVyZW50IGluIHRoZSB3ZWVrIG9mIHRoZSBkYXlsaWdodCBzYXZpbmcgdGltZSBjbG9jayBzaGlmdClcblxuICByZXR1cm4gTWF0aC5yb3VuZChkaWZmIC8gTUlMTElTRUNPTkRTX0lOX1dFRUspICsgMTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRMZWFkaW5nWmVyb3MobnVtYmVyLCB0YXJnZXRMZW5ndGgpIHtcbiAgdmFyIHNpZ24gPSBudW1iZXIgPCAwID8gJy0nIDogJyc7XG4gIHZhciBvdXRwdXQgPSBNYXRoLmFicyhudW1iZXIpLnRvU3RyaW5nKCk7XG5cbiAgd2hpbGUgKG91dHB1dC5sZW5ndGggPCB0YXJnZXRMZW5ndGgpIHtcbiAgICBvdXRwdXQgPSAnMCcgKyBvdXRwdXQ7XG4gIH1cblxuICByZXR1cm4gc2lnbiArIG91dHB1dDtcbn0iLCJpbXBvcnQgYWRkTGVhZGluZ1plcm9zIGZyb20gXCIuLi8uLi9hZGRMZWFkaW5nWmVyb3MvaW5kZXguanNcIjtcbi8qXG4gKiB8ICAgICB8IFVuaXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFVuaXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICBhICB8IEFNLCBQTSAgICAgICAgICAgICAgICAgICAgICAgICB8ICBBKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBkICB8IERheSBvZiBtb250aCAgICAgICAgICAgICAgICAgICB8ICBEICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBoICB8IEhvdXIgWzEtMTJdICAgICAgICAgICAgICAgICAgICB8ICBIICB8IEhvdXIgWzAtMjNdICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBtICB8IE1pbnV0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICBNICB8IE1vbnRoICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBzICB8IFNlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICB8ICBTICB8IEZyYWN0aW9uIG9mIHNlY29uZCAgICAgICAgICAgICB8XG4gKiB8ICB5ICB8IFllYXIgKGFicykgICAgICAgICAgICAgICAgICAgICB8ICBZICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICogTGV0dGVycyBtYXJrZWQgYnkgKiBhcmUgbm90IGltcGxlbWVudGVkIGJ1dCByZXNlcnZlZCBieSBVbmljb2RlIHN0YW5kYXJkLlxuICovXG5cbnZhciBmb3JtYXR0ZXJzID0ge1xuICAvLyBZZWFyXG4gIHk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIC8vIEZyb20gaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS0zMS90cjM1LWRhdGVzLmh0bWwjRGF0ZV9Gb3JtYXRfdG9rZW5zXG4gICAgLy8gfCBZZWFyICAgICB8ICAgICB5IHwgeXkgfCAgIHl5eSB8ICB5eXl5IHwgeXl5eXkgfFxuICAgIC8vIHwtLS0tLS0tLS0tfC0tLS0tLS18LS0tLXwtLS0tLS0tfC0tLS0tLS18LS0tLS0tLXxcbiAgICAvLyB8IEFEIDEgICAgIHwgICAgIDEgfCAwMSB8ICAgMDAxIHwgIDAwMDEgfCAwMDAwMSB8XG4gICAgLy8gfCBBRCAxMiAgICB8ICAgIDEyIHwgMTIgfCAgIDAxMiB8ICAwMDEyIHwgMDAwMTIgfFxuICAgIC8vIHwgQUQgMTIzICAgfCAgIDEyMyB8IDIzIHwgICAxMjMgfCAgMDEyMyB8IDAwMTIzIHxcbiAgICAvLyB8IEFEIDEyMzQgIHwgIDEyMzQgfCAzNCB8ICAxMjM0IHwgIDEyMzQgfCAwMTIzNCB8XG4gICAgLy8gfCBBRCAxMjM0NSB8IDEyMzQ1IHwgNDUgfCAxMjM0NSB8IDEyMzQ1IHwgMTIzNDUgfFxuICAgIHZhciBzaWduZWRZZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpOyAvLyBSZXR1cm5zIDEgZm9yIDEgQkMgKHdoaWNoIGlzIHllYXIgMCBpbiBKYXZhU2NyaXB0KVxuXG4gICAgdmFyIHllYXIgPSBzaWduZWRZZWFyID4gMCA/IHNpZ25lZFllYXIgOiAxIC0gc2lnbmVkWWVhcjtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHRva2VuID09PSAneXknID8geWVhciAlIDEwMCA6IHllYXIsIHRva2VuLmxlbmd0aCk7XG4gIH0sXG4gIC8vIE1vbnRoXG4gIE06IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIHZhciBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICByZXR1cm4gdG9rZW4gPT09ICdNJyA/IFN0cmluZyhtb250aCArIDEpIDogYWRkTGVhZGluZ1plcm9zKG1vbnRoICsgMSwgMik7XG4gIH0sXG4gIC8vIERheSBvZiB0aGUgbW9udGhcbiAgZDogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ0RhdGUoKSwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gQU0gb3IgUE1cbiAgYTogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgdmFyIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRhdGUuZ2V0VVRDSG91cnMoKSAvIDEyID49IDEgPyAncG0nIDogJ2FtJztcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgY2FzZSAnYWEnOlxuICAgICAgICByZXR1cm4gZGF5UGVyaW9kRW51bVZhbHVlLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgIGNhc2UgJ2FhYSc6XG4gICAgICAgIHJldHVybiBkYXlQZXJpb2RFbnVtVmFsdWU7XG5cbiAgICAgIGNhc2UgJ2FhYWFhJzpcbiAgICAgICAgcmV0dXJuIGRheVBlcmlvZEVudW1WYWx1ZVswXTtcblxuICAgICAgY2FzZSAnYWFhYSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZGF5UGVyaW9kRW51bVZhbHVlID09PSAnYW0nID8gJ2EubS4nIDogJ3AubS4nO1xuICAgIH1cbiAgfSxcbiAgLy8gSG91ciBbMS0xMl1cbiAgaDogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ0hvdXJzKCkgJSAxMiB8fCAxMiwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gSG91ciBbMC0yM11cbiAgSDogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ0hvdXJzKCksIHRva2VuLmxlbmd0aCk7XG4gIH0sXG4gIC8vIE1pbnV0ZVxuICBtOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4pIHtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGRhdGUuZ2V0VVRDTWludXRlcygpLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBTZWNvbmRcbiAgczogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ1NlY29uZHMoKSwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gRnJhY3Rpb24gb2Ygc2Vjb25kXG4gIFM6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIHZhciBudW1iZXJPZkRpZ2l0cyA9IHRva2VuLmxlbmd0aDtcbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gZGF0ZS5nZXRVVENNaWxsaXNlY29uZHMoKTtcbiAgICB2YXIgZnJhY3Rpb25hbFNlY29uZHMgPSBNYXRoLmZsb29yKG1pbGxpc2Vjb25kcyAqIE1hdGgucG93KDEwLCBudW1iZXJPZkRpZ2l0cyAtIDMpKTtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGZyYWN0aW9uYWxTZWNvbmRzLCB0b2tlbi5sZW5ndGgpO1xuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgZm9ybWF0dGVyczsiLCJpbXBvcnQgZ2V0VVRDRGF5T2ZZZWFyIGZyb20gXCIuLi8uLi8uLi9fbGliL2dldFVUQ0RheU9mWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IGdldFVUQ0lTT1dlZWsgZnJvbSBcIi4uLy4uLy4uL19saWIvZ2V0VVRDSVNPV2Vlay9pbmRleC5qc1wiO1xuaW1wb3J0IGdldFVUQ0lTT1dlZWtZZWFyIGZyb20gXCIuLi8uLi8uLi9fbGliL2dldFVUQ0lTT1dlZWtZZWFyL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0VVRDV2VlayBmcm9tIFwiLi4vLi4vLi4vX2xpYi9nZXRVVENXZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0VVRDV2Vla1llYXIgZnJvbSBcIi4uLy4uLy4uL19saWIvZ2V0VVRDV2Vla1llYXIvaW5kZXguanNcIjtcbmltcG9ydCBhZGRMZWFkaW5nWmVyb3MgZnJvbSBcIi4uLy4uL2FkZExlYWRpbmdaZXJvcy9pbmRleC5qc1wiO1xuaW1wb3J0IGxpZ2h0Rm9ybWF0dGVycyBmcm9tIFwiLi4vbGlnaHRGb3JtYXR0ZXJzL2luZGV4LmpzXCI7XG52YXIgZGF5UGVyaW9kRW51bSA9IHtcbiAgYW06ICdhbScsXG4gIHBtOiAncG0nLFxuICBtaWRuaWdodDogJ21pZG5pZ2h0JyxcbiAgbm9vbjogJ25vb24nLFxuICBtb3JuaW5nOiAnbW9ybmluZycsXG4gIGFmdGVybm9vbjogJ2FmdGVybm9vbicsXG4gIGV2ZW5pbmc6ICdldmVuaW5nJyxcbiAgbmlnaHQ6ICduaWdodCdcbn07XG4vKlxuICogfCAgICAgfCBVbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBVbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAgYSAgfCBBTSwgUE0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgQSogfCBNaWxsaXNlY29uZHMgaW4gZGF5ICAgICAgICAgICAgfFxuICogfCAgYiAgfCBBTSwgUE0sIG5vb24sIG1pZG5pZ2h0ICAgICAgICAgfCAgQiAgfCBGbGV4aWJsZSBkYXkgcGVyaW9kICAgICAgICAgICAgfFxuICogfCAgYyAgfCBTdGFuZC1hbG9uZSBsb2NhbCBkYXkgb2Ygd2VlayAgfCAgQyogfCBMb2NhbGl6ZWQgaG91ciB3LyBkYXkgcGVyaW9kICAgfFxuICogfCAgZCAgfCBEYXkgb2YgbW9udGggICAgICAgICAgICAgICAgICAgfCAgRCAgfCBEYXkgb2YgeWVhciAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgZSAgfCBMb2NhbCBkYXkgb2Ygd2VlayAgICAgICAgICAgICAgfCAgRSAgfCBEYXkgb2Ygd2VlayAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgZiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgRiogfCBEYXkgb2Ygd2VlayBpbiBtb250aCAgICAgICAgICAgfFxuICogfCAgZyogfCBNb2RpZmllZCBKdWxpYW4gZGF5ICAgICAgICAgICAgfCAgRyAgfCBFcmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgaCAgfCBIb3VyIFsxLTEyXSAgICAgICAgICAgICAgICAgICAgfCAgSCAgfCBIb3VyIFswLTIzXSAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgaSEgfCBJU08gZGF5IG9mIHdlZWsgICAgICAgICAgICAgICAgfCAgSSEgfCBJU08gd2VlayBvZiB5ZWFyICAgICAgICAgICAgICAgfFxuICogfCAgaiogfCBMb2NhbGl6ZWQgaG91ciB3LyBkYXkgcGVyaW9kICAgfCAgSiogfCBMb2NhbGl6ZWQgaG91ciB3L28gZGF5IHBlcmlvZCAgfFxuICogfCAgayAgfCBIb3VyIFsxLTI0XSAgICAgICAgICAgICAgICAgICAgfCAgSyAgfCBIb3VyIFswLTExXSAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgbCogfCAoZGVwcmVjYXRlZCkgICAgICAgICAgICAgICAgICAgfCAgTCAgfCBTdGFuZC1hbG9uZSBtb250aCAgICAgICAgICAgICAgfFxuICogfCAgbSAgfCBNaW51dGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgTSAgfCBNb250aCAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgbiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgTiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgbyEgfCBPcmRpbmFsIG51bWJlciBtb2RpZmllciAgICAgICAgfCAgTyAgfCBUaW1lem9uZSAoR01UKSAgICAgICAgICAgICAgICAgfFxuICogfCAgcCEgfCBMb25nIGxvY2FsaXplZCB0aW1lICAgICAgICAgICAgfCAgUCEgfCBMb25nIGxvY2FsaXplZCBkYXRlICAgICAgICAgICAgfFxuICogfCAgcSAgfCBTdGFuZC1hbG9uZSBxdWFydGVyICAgICAgICAgICAgfCAgUSAgfCBRdWFydGVyICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgciogfCBSZWxhdGVkIEdyZWdvcmlhbiB5ZWFyICAgICAgICAgfCAgUiEgfCBJU08gd2Vlay1udW1iZXJpbmcgeWVhciAgICAgICAgfFxuICogfCAgcyAgfCBTZWNvbmQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgUyAgfCBGcmFjdGlvbiBvZiBzZWNvbmQgICAgICAgICAgICAgfFxuICogfCAgdCEgfCBTZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgICAgICAgfCAgVCEgfCBNaWxsaXNlY29uZHMgdGltZXN0YW1wICAgICAgICAgfFxuICogfCAgdSAgfCBFeHRlbmRlZCB5ZWFyICAgICAgICAgICAgICAgICAgfCAgVSogfCBDeWNsaWMgeWVhciAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgdiogfCBUaW1lem9uZSAoZ2VuZXJpYyBub24tbG9jYXQuKSAgfCAgViogfCBUaW1lem9uZSAobG9jYXRpb24pICAgICAgICAgICAgfFxuICogfCAgdyAgfCBMb2NhbCB3ZWVrIG9mIHllYXIgICAgICAgICAgICAgfCAgVyogfCBXZWVrIG9mIG1vbnRoICAgICAgICAgICAgICAgICAgfFxuICogfCAgeCAgfCBUaW1lem9uZSAoSVNPLTg2MDEgdy9vIFopICAgICAgfCAgWCAgfCBUaW1lem9uZSAoSVNPLTg2MDEpICAgICAgICAgICAgfFxuICogfCAgeSAgfCBZZWFyIChhYnMpICAgICAgICAgICAgICAgICAgICAgfCAgWSAgfCBMb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyICAgICAgfFxuICogfCAgeiAgfCBUaW1lem9uZSAoc3BlY2lmaWMgbm9uLWxvY2F0LikgfCAgWiogfCBUaW1lem9uZSAoYWxpYXNlcykgICAgICAgICAgICAgfFxuICpcbiAqIExldHRlcnMgbWFya2VkIGJ5ICogYXJlIG5vdCBpbXBsZW1lbnRlZCBidXQgcmVzZXJ2ZWQgYnkgVW5pY29kZSBzdGFuZGFyZC5cbiAqXG4gKiBMZXR0ZXJzIG1hcmtlZCBieSAhIGFyZSBub24tc3RhbmRhcmQsIGJ1dCBpbXBsZW1lbnRlZCBieSBkYXRlLWZuczpcbiAqIC0gYG9gIG1vZGlmaWVzIHRoZSBwcmV2aW91cyB0b2tlbiB0byB0dXJuIGl0IGludG8gYW4gb3JkaW5hbCAoc2VlIGBmb3JtYXRgIGRvY3MpXG4gKiAtIGBpYCBpcyBJU08gZGF5IG9mIHdlZWsuIEZvciBgaWAgYW5kIGBpaWAgaXMgcmV0dXJucyBudW1lcmljIElTTyB3ZWVrIGRheXMsXG4gKiAgIGkuZS4gNyBmb3IgU3VuZGF5LCAxIGZvciBNb25kYXksIGV0Yy5cbiAqIC0gYElgIGlzIElTTyB3ZWVrIG9mIHllYXIsIGFzIG9wcG9zZWQgdG8gYHdgIHdoaWNoIGlzIGxvY2FsIHdlZWsgb2YgeWVhci5cbiAqIC0gYFJgIGlzIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyLCBhcyBvcHBvc2VkIHRvIGBZYCB3aGljaCBpcyBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyLlxuICogICBgUmAgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBJYCBhbmQgYGlgXG4gKiAgIGZvciB1bml2ZXJzYWwgSVNPIHdlZWstbnVtYmVyaW5nIGRhdGUsIHdoZXJlYXNcbiAqICAgYFlgIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgd2AgYW5kIGBlYFxuICogICBmb3Igd2Vlay1udW1iZXJpbmcgZGF0ZSBzcGVjaWZpYyB0byB0aGUgbG9jYWxlLlxuICogLSBgUGAgaXMgbG9uZyBsb2NhbGl6ZWQgZGF0ZSBmb3JtYXRcbiAqIC0gYHBgIGlzIGxvbmcgbG9jYWxpemVkIHRpbWUgZm9ybWF0XG4gKi9cblxudmFyIGZvcm1hdHRlcnMgPSB7XG4gIC8vIEVyYVxuICBHOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGVyYSA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKSA+IDAgPyAxIDogMDtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIEFELCBCQ1xuICAgICAgY2FzZSAnRyc6XG4gICAgICBjYXNlICdHRyc6XG4gICAgICBjYXNlICdHR0cnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZXJhKGVyYSwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnXG4gICAgICAgIH0pO1xuICAgICAgLy8gQSwgQlxuXG4gICAgICBjYXNlICdHR0dHRyc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5lcmEoZXJhLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnXG4gICAgICAgIH0pO1xuICAgICAgLy8gQW5ubyBEb21pbmksIEJlZm9yZSBDaHJpc3RcblxuICAgICAgY2FzZSAnR0dHRyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZXJhKGVyYSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZSdcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuICAvLyBZZWFyXG4gIHk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICAvLyBPcmRpbmFsIG51bWJlclxuICAgIGlmICh0b2tlbiA9PT0gJ3lvJykge1xuICAgICAgdmFyIHNpZ25lZFllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7IC8vIFJldHVybnMgMSBmb3IgMSBCQyAod2hpY2ggaXMgeWVhciAwIGluIEphdmFTY3JpcHQpXG5cbiAgICAgIHZhciB5ZWFyID0gc2lnbmVkWWVhciA+IDAgPyBzaWduZWRZZWFyIDogMSAtIHNpZ25lZFllYXI7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcih5ZWFyLCB7XG4gICAgICAgIHVuaXQ6ICd5ZWFyJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy55KGRhdGUsIHRva2VuKTtcbiAgfSxcbiAgLy8gTG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhclxuICBZOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIHNpZ25lZFdlZWtZZWFyID0gZ2V0VVRDV2Vla1llYXIoZGF0ZSwgb3B0aW9ucyk7IC8vIFJldHVybnMgMSBmb3IgMSBCQyAod2hpY2ggaXMgeWVhciAwIGluIEphdmFTY3JpcHQpXG5cbiAgICB2YXIgd2Vla1llYXIgPSBzaWduZWRXZWVrWWVhciA+IDAgPyBzaWduZWRXZWVrWWVhciA6IDEgLSBzaWduZWRXZWVrWWVhcjsgLy8gVHdvIGRpZ2l0IHllYXJcblxuICAgIGlmICh0b2tlbiA9PT0gJ1lZJykge1xuICAgICAgdmFyIHR3b0RpZ2l0WWVhciA9IHdlZWtZZWFyICUgMTAwO1xuICAgICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyh0d29EaWdpdFllYXIsIDIpO1xuICAgIH0gLy8gT3JkaW5hbCBudW1iZXJcblxuXG4gICAgaWYgKHRva2VuID09PSAnWW8nKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcih3ZWVrWWVhciwge1xuICAgICAgICB1bml0OiAneWVhcidcbiAgICAgIH0pO1xuICAgIH0gLy8gUGFkZGluZ1xuXG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHdlZWtZZWFyLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBJU08gd2Vlay1udW1iZXJpbmcgeWVhclxuICBSOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4pIHtcbiAgICB2YXIgaXNvV2Vla1llYXIgPSBnZXRVVENJU09XZWVrWWVhcihkYXRlKTsgLy8gUGFkZGluZ1xuXG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhpc29XZWVrWWVhciwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gRXh0ZW5kZWQgeWVhci4gVGhpcyBpcyBhIHNpbmdsZSBudW1iZXIgZGVzaWduYXRpbmcgdGhlIHllYXIgb2YgdGhpcyBjYWxlbmRhciBzeXN0ZW0uXG4gIC8vIFRoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiBgeWAgYW5kIGB1YCBsb2NhbGl6ZXJzIGFyZSBCLkMuIHllYXJzOlxuICAvLyB8IFllYXIgfCBgeWAgfCBgdWAgfFxuICAvLyB8LS0tLS0tfC0tLS0tfC0tLS0tfFxuICAvLyB8IEFDIDEgfCAgIDEgfCAgIDEgfFxuICAvLyB8IEJDIDEgfCAgIDEgfCAgIDAgfFxuICAvLyB8IEJDIDIgfCAgIDIgfCAgLTEgfFxuICAvLyBBbHNvIGB5eWAgYWx3YXlzIHJldHVybnMgdGhlIGxhc3QgdHdvIGRpZ2l0cyBvZiBhIHllYXIsXG4gIC8vIHdoaWxlIGB1dWAgcGFkcyBzaW5nbGUgZGlnaXQgeWVhcnMgdG8gMiBjaGFyYWN0ZXJzIGFuZCByZXR1cm5zIG90aGVyIHllYXJzIHVuY2hhbmdlZC5cbiAgdTogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgdmFyIHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyh5ZWFyLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBRdWFydGVyXG4gIFE6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgcXVhcnRlciA9IE1hdGguY2VpbCgoZGF0ZS5nZXRVVENNb250aCgpICsgMSkgLyAzKTtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIDMsIDRcbiAgICAgIGNhc2UgJ1EnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKHF1YXJ0ZXIpO1xuICAgICAgLy8gMDEsIDAyLCAwMywgMDRcblxuICAgICAgY2FzZSAnUVEnOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHF1YXJ0ZXIsIDIpO1xuICAgICAgLy8gMXN0LCAybmQsIDNyZCwgNHRoXG5cbiAgICAgIGNhc2UgJ1FvJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIocXVhcnRlciwge1xuICAgICAgICAgIHVuaXQ6ICdxdWFydGVyJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFExLCBRMiwgUTMsIFE0XG5cbiAgICAgIGNhc2UgJ1FRUSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5xdWFydGVyKHF1YXJ0ZXIsIHtcbiAgICAgICAgICB3aWR0aDogJ2FiYnJldmlhdGVkJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyAxLCAyLCAzLCA0IChuYXJyb3cgcXVhcnRlcjsgY291bGQgYmUgbm90IG51bWVyaWNhbClcblxuICAgICAgY2FzZSAnUVFRUVEnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUucXVhcnRlcihxdWFydGVyLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIDFzdCBxdWFydGVyLCAybmQgcXVhcnRlciwgLi4uXG5cbiAgICAgIGNhc2UgJ1FRUVEnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLnF1YXJ0ZXIocXVhcnRlciwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gU3RhbmQtYWxvbmUgcXVhcnRlclxuICBxOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIHF1YXJ0ZXIgPSBNYXRoLmNlaWwoKGRhdGUuZ2V0VVRDTW9udGgoKSArIDEpIC8gMyk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyAxLCAyLCAzLCA0XG4gICAgICBjYXNlICdxJzpcbiAgICAgICAgcmV0dXJuIFN0cmluZyhxdWFydGVyKTtcbiAgICAgIC8vIDAxLCAwMiwgMDMsIDA0XG5cbiAgICAgIGNhc2UgJ3FxJzpcbiAgICAgICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhxdWFydGVyLCAyKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAzcmQsIDR0aFxuXG4gICAgICBjYXNlICdxbyc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKHF1YXJ0ZXIsIHtcbiAgICAgICAgICB1bml0OiAncXVhcnRlcidcbiAgICAgICAgfSk7XG4gICAgICAvLyBRMSwgUTIsIFEzLCBRNFxuXG4gICAgICBjYXNlICdxcXEnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUucXVhcnRlcihxdWFydGVyLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ3N0YW5kYWxvbmUnXG4gICAgICAgIH0pO1xuICAgICAgLy8gMSwgMiwgMywgNCAobmFycm93IHF1YXJ0ZXI7IGNvdWxkIGJlIG5vdCBudW1lcmljYWwpXG5cbiAgICAgIGNhc2UgJ3FxcXFxJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLnF1YXJ0ZXIocXVhcnRlciwge1xuICAgICAgICAgIHdpZHRoOiAnbmFycm93JyxcbiAgICAgICAgICBjb250ZXh0OiAnc3RhbmRhbG9uZSdcbiAgICAgICAgfSk7XG4gICAgICAvLyAxc3QgcXVhcnRlciwgMm5kIHF1YXJ0ZXIsIC4uLlxuXG4gICAgICBjYXNlICdxcXFxJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5xdWFydGVyKHF1YXJ0ZXIsIHtcbiAgICAgICAgICB3aWR0aDogJ3dpZGUnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG4gIC8vIE1vbnRoXG4gIE06IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlICdNJzpcbiAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy5NKGRhdGUsIHRva2VuKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDEydGhcblxuICAgICAgY2FzZSAnTW8nOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihtb250aCArIDEsIHtcbiAgICAgICAgICB1bml0OiAnbW9udGgnXG4gICAgICAgIH0pO1xuICAgICAgLy8gSmFuLCBGZWIsIC4uLiwgRGVjXG5cbiAgICAgIGNhc2UgJ01NTSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIEosIEYsIC4uLiwgRFxuXG4gICAgICBjYXNlICdNTU1NTSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiAnbmFycm93JyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyBKYW51YXJ5LCBGZWJydWFyeSwgLi4uLCBEZWNlbWJlclxuXG4gICAgICBjYXNlICdNTU1NJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gU3RhbmQtYWxvbmUgbW9udGhcbiAgTDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIHZhciBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIC4uLiwgMTJcbiAgICAgIGNhc2UgJ0wnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKG1vbnRoICsgMSk7XG4gICAgICAvLyAwMSwgMDIsIC4uLiwgMTJcblxuICAgICAgY2FzZSAnTEwnOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKG1vbnRoICsgMSwgMik7XG4gICAgICAvLyAxc3QsIDJuZCwgLi4uLCAxMnRoXG5cbiAgICAgIGNhc2UgJ0xvJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIobW9udGggKyAxLCB7XG4gICAgICAgICAgdW5pdDogJ21vbnRoJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIEphbiwgRmViLCAuLi4sIERlY1xuXG4gICAgICBjYXNlICdMTEwnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHtcbiAgICAgICAgICB3aWR0aDogJ2FiYnJldmlhdGVkJyxcbiAgICAgICAgICBjb250ZXh0OiAnc3RhbmRhbG9uZSdcbiAgICAgICAgfSk7XG4gICAgICAvLyBKLCBGLCAuLi4sIERcblxuICAgICAgY2FzZSAnTExMTEwnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHtcbiAgICAgICAgICB3aWR0aDogJ25hcnJvdycsXG4gICAgICAgICAgY29udGV4dDogJ3N0YW5kYWxvbmUnXG4gICAgICAgIH0pO1xuICAgICAgLy8gSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXJcblxuICAgICAgY2FzZSAnTExMTCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHtcbiAgICAgICAgICB3aWR0aDogJ3dpZGUnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG4gIC8vIExvY2FsIHdlZWsgb2YgeWVhclxuICB3OiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIHdlZWsgPSBnZXRVVENXZWVrKGRhdGUsIG9wdGlvbnMpO1xuXG4gICAgaWYgKHRva2VuID09PSAnd28nKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcih3ZWVrLCB7XG4gICAgICAgIHVuaXQ6ICd3ZWVrJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyh3ZWVrLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBJU08gd2VlayBvZiB5ZWFyXG4gIEk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgaXNvV2VlayA9IGdldFVUQ0lTT1dlZWsoZGF0ZSk7XG5cbiAgICBpZiAodG9rZW4gPT09ICdJbycpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGlzb1dlZWssIHtcbiAgICAgICAgdW5pdDogJ3dlZWsnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGlzb1dlZWssIHRva2VuLmxlbmd0aCk7XG4gIH0sXG4gIC8vIERheSBvZiB0aGUgbW9udGhcbiAgZDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGlmICh0b2tlbiA9PT0gJ2RvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF0ZS5nZXRVVENEYXRlKCksIHtcbiAgICAgICAgdW5pdDogJ2RhdGUnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGlnaHRGb3JtYXR0ZXJzLmQoZGF0ZSwgdG9rZW4pO1xuICB9LFxuICAvLyBEYXkgb2YgeWVhclxuICBEOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGRheU9mWWVhciA9IGdldFVUQ0RheU9mWWVhcihkYXRlKTtcblxuICAgIGlmICh0b2tlbiA9PT0gJ0RvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF5T2ZZZWFyLCB7XG4gICAgICAgIHVuaXQ6ICdkYXlPZlllYXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGRheU9mWWVhciwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gRGF5IG9mIHdlZWtcbiAgRTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIHZhciBkYXlPZldlZWsgPSBkYXRlLmdldFVUQ0RheSgpO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gVHVlXG4gICAgICBjYXNlICdFJzpcbiAgICAgIGNhc2UgJ0VFJzpcbiAgICAgIGNhc2UgJ0VFRSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVFxuXG4gICAgICBjYXNlICdFRUVFRSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFR1XG5cbiAgICAgIGNhc2UgJ0VFRUVFRSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdzaG9ydCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVlc2RheVxuXG4gICAgICBjYXNlICdFRUVFJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICd3aWRlJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuICAvLyBMb2NhbCBkYXkgb2Ygd2Vla1xuICBlOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gICAgdmFyIGxvY2FsRGF5T2ZXZWVrID0gKGRheU9mV2VlayAtIG9wdGlvbnMud2Vla1N0YXJ0c09uICsgOCkgJSA3IHx8IDc7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBOdW1lcmljYWwgdmFsdWUgKE50aCBkYXkgb2Ygd2VlayB3aXRoIGN1cnJlbnQgbG9jYWxlIG9yIHdlZWtTdGFydHNPbilcbiAgICAgIGNhc2UgJ2UnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGxvY2FsRGF5T2ZXZWVrKTtcbiAgICAgIC8vIFBhZGRlZCBudW1lcmljYWwgdmFsdWVcblxuICAgICAgY2FzZSAnZWUnOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGxvY2FsRGF5T2ZXZWVrLCAyKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDd0aFxuXG4gICAgICBjYXNlICdlbyc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGxvY2FsRGF5T2ZXZWVrLCB7XG4gICAgICAgICAgdW5pdDogJ2RheSdcbiAgICAgICAgfSk7XG5cbiAgICAgIGNhc2UgJ2VlZSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVFxuXG4gICAgICBjYXNlICdlZWVlZSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFR1XG5cbiAgICAgIGNhc2UgJ2VlZWVlZSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdzaG9ydCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVlc2RheVxuXG4gICAgICBjYXNlICdlZWVlJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICd3aWRlJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuICAvLyBTdGFuZC1hbG9uZSBsb2NhbCBkYXkgb2Ygd2Vla1xuICBjOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gICAgdmFyIGxvY2FsRGF5T2ZXZWVrID0gKGRheU9mV2VlayAtIG9wdGlvbnMud2Vla1N0YXJ0c09uICsgOCkgJSA3IHx8IDc7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBOdW1lcmljYWwgdmFsdWUgKHNhbWUgYXMgaW4gYGVgKVxuICAgICAgY2FzZSAnYyc6XG4gICAgICAgIHJldHVybiBTdHJpbmcobG9jYWxEYXlPZldlZWspO1xuICAgICAgLy8gUGFkZGVkIG51bWVyaWNhbCB2YWx1ZVxuXG4gICAgICBjYXNlICdjYyc6XG4gICAgICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MobG9jYWxEYXlPZldlZWssIHRva2VuLmxlbmd0aCk7XG4gICAgICAvLyAxc3QsIDJuZCwgLi4uLCA3dGhcblxuICAgICAgY2FzZSAnY28nOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihsb2NhbERheU9mV2Vlaywge1xuICAgICAgICAgIHVuaXQ6ICdkYXknXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdjY2MnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFRcblxuICAgICAgY2FzZSAnY2NjY2MnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnbmFycm93JyxcbiAgICAgICAgICBjb250ZXh0OiAnc3RhbmRhbG9uZSdcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdVxuXG4gICAgICBjYXNlICdjY2NjY2MnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnc2hvcnQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFR1ZXNkYXlcblxuICAgICAgY2FzZSAnY2NjYyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ3N0YW5kYWxvbmUnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gSVNPIGRheSBvZiB3ZWVrXG4gIGk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgZGF5T2ZXZWVrID0gZGF0ZS5nZXRVVENEYXkoKTtcbiAgICB2YXIgaXNvRGF5T2ZXZWVrID0gZGF5T2ZXZWVrID09PSAwID8gNyA6IGRheU9mV2VlaztcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDJcbiAgICAgIGNhc2UgJ2knOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGlzb0RheU9mV2Vlayk7XG4gICAgICAvLyAwMlxuXG4gICAgICBjYXNlICdpaSc6XG4gICAgICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoaXNvRGF5T2ZXZWVrLCB0b2tlbi5sZW5ndGgpO1xuICAgICAgLy8gMm5kXG5cbiAgICAgIGNhc2UgJ2lvJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaXNvRGF5T2ZXZWVrLCB7XG4gICAgICAgICAgdW5pdDogJ2RheSdcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdWVcblxuICAgICAgY2FzZSAnaWlpJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ2FiYnJldmlhdGVkJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyBUXG5cbiAgICAgIGNhc2UgJ2lpaWlpJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ25hcnJvdycsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVcblxuICAgICAgY2FzZSAnaWlpaWlpJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ3Nob3J0JyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdWVzZGF5XG5cbiAgICAgIGNhc2UgJ2lpaWknOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ3dpZGUnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG4gIC8vIEFNIG9yIFBNXG4gIGE6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XG4gICAgdmFyIGRheVBlcmlvZEVudW1WYWx1ZSA9IGhvdXJzIC8gMTIgPj0gMSA/ICdwbScgOiAnYW0nO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSAnYSc6XG4gICAgICBjYXNlICdhYSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdhYWEnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjYXNlICdhYWFhYSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAnYWFhYSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gQU0sIFBNLCBtaWRuaWdodCwgbm9vblxuICBiOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgIHZhciBkYXlQZXJpb2RFbnVtVmFsdWU7XG5cbiAgICBpZiAoaG91cnMgPT09IDEyKSB7XG4gICAgICBkYXlQZXJpb2RFbnVtVmFsdWUgPSBkYXlQZXJpb2RFbnVtLm5vb247XG4gICAgfSBlbHNlIGlmIChob3VycyA9PT0gMCkge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gZGF5UGVyaW9kRW51bS5taWRuaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gaG91cnMgLyAxMiA+PSAxID8gJ3BtJyA6ICdhbSc7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSAnYic6XG4gICAgICBjYXNlICdiYic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdiYmInOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjYXNlICdiYmJiYic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAnYmJiYic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gaW4gdGhlIG1vcm5pbmcsIGluIHRoZSBhZnRlcm5vb24sIGluIHRoZSBldmVuaW5nLCBhdCBuaWdodFxuICBCOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgIHZhciBkYXlQZXJpb2RFbnVtVmFsdWU7XG5cbiAgICBpZiAoaG91cnMgPj0gMTcpIHtcbiAgICAgIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRheVBlcmlvZEVudW0uZXZlbmluZztcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDEyKSB7XG4gICAgICBkYXlQZXJpb2RFbnVtVmFsdWUgPSBkYXlQZXJpb2RFbnVtLmFmdGVybm9vbjtcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDQpIHtcbiAgICAgIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRheVBlcmlvZEVudW0ubW9ybmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gZGF5UGVyaW9kRW51bS5uaWdodDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlICdCJzpcbiAgICAgIGNhc2UgJ0JCJzpcbiAgICAgIGNhc2UgJ0JCQic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdCQkJCQic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAnQkJCQic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gSG91ciBbMS0xMl1cbiAgaDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGlmICh0b2tlbiA9PT0gJ2hvJykge1xuICAgICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpICUgMTI7XG4gICAgICBpZiAoaG91cnMgPT09IDApIGhvdXJzID0gMTI7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihob3Vycywge1xuICAgICAgICB1bml0OiAnaG91cidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMuaChkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIEhvdXIgWzAtMjNdXG4gIEg6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBpZiAodG9rZW4gPT09ICdIbycpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGRhdGUuZ2V0VVRDSG91cnMoKSwge1xuICAgICAgICB1bml0OiAnaG91cidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMuSChkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIEhvdXIgWzAtMTFdXG4gIEs6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCkgJSAxMjtcblxuICAgIGlmICh0b2tlbiA9PT0gJ0tvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaG91cnMsIHtcbiAgICAgICAgdW5pdDogJ2hvdXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGhvdXJzLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBIb3VyIFsxLTI0XVxuICBrOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgIGlmIChob3VycyA9PT0gMCkgaG91cnMgPSAyNDtcblxuICAgIGlmICh0b2tlbiA9PT0gJ2tvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaG91cnMsIHtcbiAgICAgICAgdW5pdDogJ2hvdXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGhvdXJzLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBNaW51dGVcbiAgbTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGlmICh0b2tlbiA9PT0gJ21vJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF0ZS5nZXRVVENNaW51dGVzKCksIHtcbiAgICAgICAgdW5pdDogJ21pbnV0ZSdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMubShkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIFNlY29uZFxuICBzOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgaWYgKHRva2VuID09PSAnc28nKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihkYXRlLmdldFVUQ1NlY29uZHMoKSwge1xuICAgICAgICB1bml0OiAnc2Vjb25kJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy5zKGRhdGUsIHRva2VuKTtcbiAgfSxcbiAgLy8gRnJhY3Rpb24gb2Ygc2Vjb25kXG4gIFM6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMuUyhkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIFRpbWV6b25lIChJU08tODYwMS4gSWYgb2Zmc2V0IGlzIDAsIG91dHB1dCBpcyBhbHdheXMgYCdaJ2ApXG4gIFg6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lem9uZU9mZnNldCA9IG9yaWdpbmFsRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xuXG4gICAgaWYgKHRpbWV6b25lT2Zmc2V0ID09PSAwKSB7XG4gICAgICByZXR1cm4gJ1onO1xuICAgIH1cblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIEhvdXJzIGFuZCBvcHRpb25hbCBtaW51dGVzXG4gICAgICBjYXNlICdYJzpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyh0aW1lem9uZU9mZnNldCk7XG4gICAgICAvLyBIb3VycywgbWludXRlcyBhbmQgb3B0aW9uYWwgc2Vjb25kcyB3aXRob3V0IGA6YCBkZWxpbWl0ZXJcbiAgICAgIC8vIE5vdGU6IG5laXRoZXIgSVNPLTg2MDEgbm9yIEphdmFTY3JpcHQgc3VwcG9ydHMgc2Vjb25kcyBpbiB0aW1lem9uZSBvZmZzZXRzXG4gICAgICAvLyBzbyB0aGlzIHRva2VuIGFsd2F5cyBoYXMgdGhlIHNhbWUgb3V0cHV0IGFzIGBYWGBcblxuICAgICAgY2FzZSAnWFhYWCc6XG4gICAgICBjYXNlICdYWCc6XG4gICAgICAgIC8vIEhvdXJzIGFuZCBtaW51dGVzIHdpdGhvdXQgYDpgIGRlbGltaXRlclxuICAgICAgICByZXR1cm4gZm9ybWF0VGltZXpvbmUodGltZXpvbmVPZmZzZXQpO1xuICAgICAgLy8gSG91cnMsIG1pbnV0ZXMgYW5kIG9wdGlvbmFsIHNlY29uZHMgd2l0aCBgOmAgZGVsaW1pdGVyXG4gICAgICAvLyBOb3RlOiBuZWl0aGVyIElTTy04NjAxIG5vciBKYXZhU2NyaXB0IHN1cHBvcnRzIHNlY29uZHMgaW4gdGltZXpvbmUgb2Zmc2V0c1xuICAgICAgLy8gc28gdGhpcyB0b2tlbiBhbHdheXMgaGFzIHRoZSBzYW1lIG91dHB1dCBhcyBgWFhYYFxuXG4gICAgICBjYXNlICdYWFhYWCc6XG4gICAgICBjYXNlICdYWFgnOiAvLyBIb3VycyBhbmQgbWludXRlcyB3aXRoIGA6YCBkZWxpbWl0ZXJcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0LCAnOicpO1xuICAgIH1cbiAgfSxcbiAgLy8gVGltZXpvbmUgKElTTy04NjAxLiBJZiBvZmZzZXQgaXMgMCwgb3V0cHV0IGlzIGAnKzAwOjAwJ2Agb3IgZXF1aXZhbGVudClcbiAgeDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBfbG9jYWxpemUsIG9wdGlvbnMpIHtcbiAgICB2YXIgb3JpZ2luYWxEYXRlID0gb3B0aW9ucy5fb3JpZ2luYWxEYXRlIHx8IGRhdGU7XG4gICAgdmFyIHRpbWV6b25lT2Zmc2V0ID0gb3JpZ2luYWxEYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBIb3VycyBhbmQgb3B0aW9uYWwgbWludXRlc1xuICAgICAgY2FzZSAneCc6XG4gICAgICAgIHJldHVybiBmb3JtYXRUaW1lem9uZVdpdGhPcHRpb25hbE1pbnV0ZXModGltZXpvbmVPZmZzZXQpO1xuICAgICAgLy8gSG91cnMsIG1pbnV0ZXMgYW5kIG9wdGlvbmFsIHNlY29uZHMgd2l0aG91dCBgOmAgZGVsaW1pdGVyXG4gICAgICAvLyBOb3RlOiBuZWl0aGVyIElTTy04NjAxIG5vciBKYXZhU2NyaXB0IHN1cHBvcnRzIHNlY29uZHMgaW4gdGltZXpvbmUgb2Zmc2V0c1xuICAgICAgLy8gc28gdGhpcyB0b2tlbiBhbHdheXMgaGFzIHRoZSBzYW1lIG91dHB1dCBhcyBgeHhgXG5cbiAgICAgIGNhc2UgJ3h4eHgnOlxuICAgICAgY2FzZSAneHgnOlxuICAgICAgICAvLyBIb3VycyBhbmQgbWludXRlcyB3aXRob3V0IGA6YCBkZWxpbWl0ZXJcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0KTtcbiAgICAgIC8vIEhvdXJzLCBtaW51dGVzIGFuZCBvcHRpb25hbCBzZWNvbmRzIHdpdGggYDpgIGRlbGltaXRlclxuICAgICAgLy8gTm90ZTogbmVpdGhlciBJU08tODYwMSBub3IgSmF2YVNjcmlwdCBzdXBwb3J0cyBzZWNvbmRzIGluIHRpbWV6b25lIG9mZnNldHNcbiAgICAgIC8vIHNvIHRoaXMgdG9rZW4gYWx3YXlzIGhhcyB0aGUgc2FtZSBvdXRwdXQgYXMgYHh4eGBcblxuICAgICAgY2FzZSAneHh4eHgnOlxuICAgICAgY2FzZSAneHh4JzogLy8gSG91cnMgYW5kIG1pbnV0ZXMgd2l0aCBgOmAgZGVsaW1pdGVyXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmb3JtYXRUaW1lem9uZSh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICB9XG4gIH0sXG4gIC8vIFRpbWV6b25lIChHTVQpXG4gIE86IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lem9uZU9mZnNldCA9IG9yaWdpbmFsRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gU2hvcnRcbiAgICAgIGNhc2UgJ08nOlxuICAgICAgY2FzZSAnT08nOlxuICAgICAgY2FzZSAnT09PJzpcbiAgICAgICAgcmV0dXJuICdHTVQnICsgZm9ybWF0VGltZXpvbmVTaG9ydCh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICAgIC8vIExvbmdcblxuICAgICAgY2FzZSAnT09PTyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ0dNVCcgKyBmb3JtYXRUaW1lem9uZSh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICB9XG4gIH0sXG4gIC8vIFRpbWV6b25lIChzcGVjaWZpYyBub24tbG9jYXRpb24pXG4gIHo6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lem9uZU9mZnNldCA9IG9yaWdpbmFsRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gU2hvcnRcbiAgICAgIGNhc2UgJ3onOlxuICAgICAgY2FzZSAnenonOlxuICAgICAgY2FzZSAnenp6JzpcbiAgICAgICAgcmV0dXJuICdHTVQnICsgZm9ybWF0VGltZXpvbmVTaG9ydCh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICAgIC8vIExvbmdcblxuICAgICAgY2FzZSAnenp6eic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ0dNVCcgKyBmb3JtYXRUaW1lem9uZSh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICB9XG4gIH0sXG4gIC8vIFNlY29uZHMgdGltZXN0YW1wXG4gIHQ6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lc3RhbXAgPSBNYXRoLmZsb29yKG9yaWdpbmFsRGF0ZS5nZXRUaW1lKCkgLyAxMDAwKTtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHRpbWVzdGFtcCwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gTWlsbGlzZWNvbmRzIHRpbWVzdGFtcFxuICBUOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIF9sb2NhbGl6ZSwgb3B0aW9ucykge1xuICAgIHZhciBvcmlnaW5hbERhdGUgPSBvcHRpb25zLl9vcmlnaW5hbERhdGUgfHwgZGF0ZTtcbiAgICB2YXIgdGltZXN0YW1wID0gb3JpZ2luYWxEYXRlLmdldFRpbWUoKTtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHRpbWVzdGFtcCwgdG9rZW4ubGVuZ3RoKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gZm9ybWF0VGltZXpvbmVTaG9ydChvZmZzZXQsIGRpcnR5RGVsaW1pdGVyKSB7XG4gIHZhciBzaWduID0gb2Zmc2V0ID4gMCA/ICctJyA6ICcrJztcbiAgdmFyIGFic09mZnNldCA9IE1hdGguYWJzKG9mZnNldCk7XG4gIHZhciBob3VycyA9IE1hdGguZmxvb3IoYWJzT2Zmc2V0IC8gNjApO1xuICB2YXIgbWludXRlcyA9IGFic09mZnNldCAlIDYwO1xuXG4gIGlmIChtaW51dGVzID09PSAwKSB7XG4gICAgcmV0dXJuIHNpZ24gKyBTdHJpbmcoaG91cnMpO1xuICB9XG5cbiAgdmFyIGRlbGltaXRlciA9IGRpcnR5RGVsaW1pdGVyIHx8ICcnO1xuICByZXR1cm4gc2lnbiArIFN0cmluZyhob3VycykgKyBkZWxpbWl0ZXIgKyBhZGRMZWFkaW5nWmVyb3MobWludXRlcywgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyhvZmZzZXQsIGRpcnR5RGVsaW1pdGVyKSB7XG4gIGlmIChvZmZzZXQgJSA2MCA9PT0gMCkge1xuICAgIHZhciBzaWduID0gb2Zmc2V0ID4gMCA/ICctJyA6ICcrJztcbiAgICByZXR1cm4gc2lnbiArIGFkZExlYWRpbmdaZXJvcyhNYXRoLmFicyhvZmZzZXQpIC8gNjAsIDIpO1xuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKG9mZnNldCwgZGlydHlEZWxpbWl0ZXIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRUaW1lem9uZShvZmZzZXQsIGRpcnR5RGVsaW1pdGVyKSB7XG4gIHZhciBkZWxpbWl0ZXIgPSBkaXJ0eURlbGltaXRlciB8fCAnJztcbiAgdmFyIHNpZ24gPSBvZmZzZXQgPiAwID8gJy0nIDogJysnO1xuICB2YXIgYWJzT2Zmc2V0ID0gTWF0aC5hYnMob2Zmc2V0KTtcbiAgdmFyIGhvdXJzID0gYWRkTGVhZGluZ1plcm9zKE1hdGguZmxvb3IoYWJzT2Zmc2V0IC8gNjApLCAyKTtcbiAgdmFyIG1pbnV0ZXMgPSBhZGRMZWFkaW5nWmVyb3MoYWJzT2Zmc2V0ICUgNjAsIDIpO1xuICByZXR1cm4gc2lnbiArIGhvdXJzICsgZGVsaW1pdGVyICsgbWludXRlcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0dGVyczsiLCJmdW5jdGlvbiBkYXRlTG9uZ0Zvcm1hdHRlcihwYXR0ZXJuLCBmb3JtYXRMb25nKSB7XG4gIHN3aXRjaCAocGF0dGVybikge1xuICAgIGNhc2UgJ1AnOlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcuZGF0ZSh7XG4gICAgICAgIHdpZHRoOiAnc2hvcnQnXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1BQJzpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLmRhdGUoe1xuICAgICAgICB3aWR0aDogJ21lZGl1bSdcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnUFBQJzpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLmRhdGUoe1xuICAgICAgICB3aWR0aDogJ2xvbmcnXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1BQUFAnOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy5kYXRlKHtcbiAgICAgICAgd2lkdGg6ICdmdWxsJ1xuICAgICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdGltZUxvbmdGb3JtYXR0ZXIocGF0dGVybiwgZm9ybWF0TG9uZykge1xuICBzd2l0Y2ggKHBhdHRlcm4pIHtcbiAgICBjYXNlICdwJzpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLnRpbWUoe1xuICAgICAgICB3aWR0aDogJ3Nob3J0J1xuICAgICAgfSk7XG5cbiAgICBjYXNlICdwcCc6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy50aW1lKHtcbiAgICAgICAgd2lkdGg6ICdtZWRpdW0nXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ3BwcCc6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy50aW1lKHtcbiAgICAgICAgd2lkdGg6ICdsb25nJ1xuICAgICAgfSk7XG5cbiAgICBjYXNlICdwcHBwJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcudGltZSh7XG4gICAgICAgIHdpZHRoOiAnZnVsbCdcbiAgICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRhdGVUaW1lTG9uZ0Zvcm1hdHRlcihwYXR0ZXJuLCBmb3JtYXRMb25nKSB7XG4gIHZhciBtYXRjaFJlc3VsdCA9IHBhdHRlcm4ubWF0Y2goLyhQKykocCspPy8pIHx8IFtdO1xuICB2YXIgZGF0ZVBhdHRlcm4gPSBtYXRjaFJlc3VsdFsxXTtcbiAgdmFyIHRpbWVQYXR0ZXJuID0gbWF0Y2hSZXN1bHRbMl07XG5cbiAgaWYgKCF0aW1lUGF0dGVybikge1xuICAgIHJldHVybiBkYXRlTG9uZ0Zvcm1hdHRlcihwYXR0ZXJuLCBmb3JtYXRMb25nKTtcbiAgfVxuXG4gIHZhciBkYXRlVGltZUZvcm1hdDtcblxuICBzd2l0Y2ggKGRhdGVQYXR0ZXJuKSB7XG4gICAgY2FzZSAnUCc6XG4gICAgICBkYXRlVGltZUZvcm1hdCA9IGZvcm1hdExvbmcuZGF0ZVRpbWUoe1xuICAgICAgICB3aWR0aDogJ3Nob3J0J1xuICAgICAgfSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ1BQJzpcbiAgICAgIGRhdGVUaW1lRm9ybWF0ID0gZm9ybWF0TG9uZy5kYXRlVGltZSh7XG4gICAgICAgIHdpZHRoOiAnbWVkaXVtJ1xuICAgICAgfSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ1BQUCc6XG4gICAgICBkYXRlVGltZUZvcm1hdCA9IGZvcm1hdExvbmcuZGF0ZVRpbWUoe1xuICAgICAgICB3aWR0aDogJ2xvbmcnXG4gICAgICB9KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnUFBQUCc6XG4gICAgZGVmYXVsdDpcbiAgICAgIGRhdGVUaW1lRm9ybWF0ID0gZm9ybWF0TG9uZy5kYXRlVGltZSh7XG4gICAgICAgIHdpZHRoOiAnZnVsbCdcbiAgICAgIH0pO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gZGF0ZVRpbWVGb3JtYXQucmVwbGFjZSgne3tkYXRlfX0nLCBkYXRlTG9uZ0Zvcm1hdHRlcihkYXRlUGF0dGVybiwgZm9ybWF0TG9uZykpLnJlcGxhY2UoJ3t7dGltZX19JywgdGltZUxvbmdGb3JtYXR0ZXIodGltZVBhdHRlcm4sIGZvcm1hdExvbmcpKTtcbn1cblxudmFyIGxvbmdGb3JtYXR0ZXJzID0ge1xuICBwOiB0aW1lTG9uZ0Zvcm1hdHRlcixcbiAgUDogZGF0ZVRpbWVMb25nRm9ybWF0dGVyXG59O1xuZXhwb3J0IGRlZmF1bHQgbG9uZ0Zvcm1hdHRlcnM7IiwidmFyIHByb3RlY3RlZERheU9mWWVhclRva2VucyA9IFsnRCcsICdERCddO1xudmFyIHByb3RlY3RlZFdlZWtZZWFyVG9rZW5zID0gWydZWScsICdZWVlZJ107XG5leHBvcnQgZnVuY3Rpb24gaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbih0b2tlbikge1xuICByZXR1cm4gcHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW5zLmluZGV4T2YodG9rZW4pICE9PSAtMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4odG9rZW4pIHtcbiAgcmV0dXJuIHByb3RlY3RlZFdlZWtZZWFyVG9rZW5zLmluZGV4T2YodG9rZW4pICE9PSAtMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1Byb3RlY3RlZEVycm9yKHRva2VuLCBmb3JtYXQsIGlucHV0KSB7XG4gIGlmICh0b2tlbiA9PT0gJ1lZWVknKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJVc2UgYHl5eXlgIGluc3RlYWQgb2YgYFlZWVlgIChpbiBgXCIuY29uY2F0KGZvcm1hdCwgXCJgKSBmb3IgZm9ybWF0dGluZyB5ZWFycyB0byB0aGUgaW5wdXQgYFwiKS5jb25jYXQoaW5wdXQsIFwiYDsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clwiKSk7XG4gIH0gZWxzZSBpZiAodG9rZW4gPT09ICdZWScpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlVzZSBgeXlgIGluc3RlYWQgb2YgYFlZYCAoaW4gYFwiLmNvbmNhdChmb3JtYXQsIFwiYCkgZm9yIGZvcm1hdHRpbmcgeWVhcnMgdG8gdGhlIGlucHV0IGBcIikuY29uY2F0KGlucHV0LCBcImA7IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXJcIikpO1xuICB9IGVsc2UgaWYgKHRva2VuID09PSAnRCcpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlVzZSBgZGAgaW5zdGVhZCBvZiBgRGAgKGluIGBcIi5jb25jYXQoZm9ybWF0LCBcImApIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHRvIHRoZSBpbnB1dCBgXCIpLmNvbmNhdChpbnB1dCwgXCJgOyBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXCIpKTtcbiAgfSBlbHNlIGlmICh0b2tlbiA9PT0gJ0REJykge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiVXNlIGBkZGAgaW5zdGVhZCBvZiBgRERgIChpbiBgXCIuY29uY2F0KGZvcm1hdCwgXCJgKSBmb3IgZm9ybWF0dGluZyBkYXlzIG9mIHRoZSBtb250aCB0byB0aGUgaW5wdXQgYFwiKS5jb25jYXQoaW5wdXQsIFwiYDsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clwiKSk7XG4gIH1cbn0iLCJpbXBvcnQgaXNWYWxpZCBmcm9tIFwiLi4vaXNWYWxpZC9pbmRleC5qc1wiO1xuaW1wb3J0IGRlZmF1bHRMb2NhbGUgZnJvbSBcIi4uL2xvY2FsZS9lbi1VUy9pbmRleC5qc1wiO1xuaW1wb3J0IHN1Yk1pbGxpc2Vjb25kcyBmcm9tIFwiLi4vc3ViTWlsbGlzZWNvbmRzL2luZGV4LmpzXCI7XG5pbXBvcnQgdG9EYXRlIGZyb20gXCIuLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCBmb3JtYXR0ZXJzIGZyb20gXCIuLi9fbGliL2Zvcm1hdC9mb3JtYXR0ZXJzL2luZGV4LmpzXCI7XG5pbXBvcnQgbG9uZ0Zvcm1hdHRlcnMgZnJvbSBcIi4uL19saWIvZm9ybWF0L2xvbmdGb3JtYXR0ZXJzL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyBmcm9tIFwiLi4vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBpc1Byb3RlY3RlZERheU9mWWVhclRva2VuLCBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4sIHRocm93UHJvdGVjdGVkRXJyb3IgfSBmcm9tIFwiLi4vX2xpYi9wcm90ZWN0ZWRUb2tlbnMvaW5kZXguanNcIjtcbmltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiOyAvLyBUaGlzIFJlZ0V4cCBjb25zaXN0cyBvZiB0aHJlZSBwYXJ0cyBzZXBhcmF0ZWQgYnkgYHxgOlxuLy8gLSBbeVlRcU1Md0lkRGVjaWhIS2ttc11vIG1hdGNoZXMgYW55IGF2YWlsYWJsZSBvcmRpbmFsIG51bWJlciB0b2tlblxuLy8gICAob25lIG9mIHRoZSBjZXJ0YWluIGxldHRlcnMgZm9sbG93ZWQgYnkgYG9gKVxuLy8gLSAoXFx3KVxcMSogbWF0Y2hlcyBhbnkgc2VxdWVuY2VzIG9mIHRoZSBzYW1lIGxldHRlclxuLy8gLSAnJyBtYXRjaGVzIHR3byBxdW90ZSBjaGFyYWN0ZXJzIGluIGEgcm93XG4vLyAtICcoJyd8W14nXSkrKCd8JCkgbWF0Y2hlcyBhbnl0aGluZyBzdXJyb3VuZGVkIGJ5IHR3byBxdW90ZSBjaGFyYWN0ZXJzICgnKSxcbi8vICAgZXhjZXB0IGEgc2luZ2xlIHF1b3RlIHN5bWJvbCwgd2hpY2ggZW5kcyB0aGUgc2VxdWVuY2UuXG4vLyAgIFR3byBxdW90ZSBjaGFyYWN0ZXJzIGRvIG5vdCBlbmQgdGhlIHNlcXVlbmNlLlxuLy8gICBJZiB0aGVyZSBpcyBubyBtYXRjaGluZyBzaW5nbGUgcXVvdGVcbi8vICAgdGhlbiB0aGUgc2VxdWVuY2Ugd2lsbCBjb250aW51ZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuXG4vLyAtIC4gbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlciB1bm1hdGNoZWQgYnkgcHJldmlvdXMgcGFydHMgb2YgdGhlIFJlZ0V4cHNcblxudmFyIGZvcm1hdHRpbmdUb2tlbnNSZWdFeHAgPSAvW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXFx3KVxcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2c7IC8vIFRoaXMgUmVnRXhwIGNhdGNoZXMgc3ltYm9scyBlc2NhcGVkIGJ5IHF1b3RlcywgYW5kIGFsc29cbi8vIHNlcXVlbmNlcyBvZiBzeW1ib2xzIFAsIHAsIGFuZCB0aGUgY29tYmluYXRpb25zIGxpa2UgYFBQUFBQUFBwcHBwcGBcblxudmFyIGxvbmdGb3JtYXR0aW5nVG9rZW5zUmVnRXhwID0gL1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2c7XG52YXIgZXNjYXBlZFN0cmluZ1JlZ0V4cCA9IC9eJyhbXl0qPyknPyQvO1xudmFyIGRvdWJsZVF1b3RlUmVnRXhwID0gLycnL2c7XG52YXIgdW5lc2NhcGVkTGF0aW5DaGFyYWN0ZXJSZWdFeHAgPSAvW2EtekEtWl0vO1xuLyoqXG4gKiBAbmFtZSBmb3JtYXRcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgRm9ybWF0IHRoZSBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmcgaW4gdGhlIGdpdmVuIGZvcm1hdC4gVGhlIHJlc3VsdCBtYXkgdmFyeSBieSBsb2NhbGUuXG4gKlxuICogPiDimqDvuI8gUGxlYXNlIG5vdGUgdGhhdCB0aGUgYGZvcm1hdGAgdG9rZW5zIGRpZmZlciBmcm9tIE1vbWVudC5qcyBhbmQgb3RoZXIgbGlicmFyaWVzLlxuICogPiBTZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKlxuICogVGhlIGNoYXJhY3RlcnMgd3JhcHBlZCBiZXR3ZWVuIHR3byBzaW5nbGUgcXVvdGVzIGNoYXJhY3RlcnMgKCcpIGFyZSBlc2NhcGVkLlxuICogVHdvIHNpbmdsZSBxdW90ZXMgaW4gYSByb3csIHdoZXRoZXIgaW5zaWRlIG9yIG91dHNpZGUgYSBxdW90ZWQgc2VxdWVuY2UsIHJlcHJlc2VudCBhICdyZWFsJyBzaW5nbGUgcXVvdGUuXG4gKiAoc2VlIHRoZSBsYXN0IGV4YW1wbGUpXG4gKlxuICogRm9ybWF0IG9mIHRoZSBzdHJpbmcgaXMgYmFzZWQgb24gVW5pY29kZSBUZWNobmljYWwgU3RhbmRhcmQgIzM1OlxuICogaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtZGF0ZXMuaHRtbCNEYXRlX0ZpZWxkX1N5bWJvbF9UYWJsZVxuICogd2l0aCBhIGZldyBhZGRpdGlvbnMgKHNlZSBub3RlIDcgYmVsb3cgdGhlIHRhYmxlKS5cbiAqXG4gKiBBY2NlcHRlZCBwYXR0ZXJuczpcbiAqIHwgVW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhdHRlcm4gfCBSZXN1bHQgZXhhbXBsZXMgICAgICAgICAgICAgICAgICAgfCBOb3RlcyB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tfFxuICogfCBFcmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRy4uR0dHICB8IEFELCBCQyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdHR0cgICAgfCBBbm5vIERvbWluaSwgQmVmb3JlIENocmlzdCAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHR0dHRyAgIHwgQSwgQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBDYWxlbmRhciB5ZWFyICAgICAgICAgICAgICAgICAgIHwgeSAgICAgICB8IDQ0LCAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHlvICAgICAgfCA0NHRoLCAxc3QsIDB0aCwgMTd0aCAgICAgICAgICAgICAgfCA1LDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB5eSAgICAgIHwgNDQsIDAxLCAwMCwgMTcgICAgICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeXl5ICAgICB8IDA0NCwgMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHl5eXkgICAgfCAwMDQ0LCAwMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB5eXl5eSAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyw1ICAgfFxuICogfCBMb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyICAgICAgIHwgWSAgICAgICB8IDQ0LCAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFlvICAgICAgfCA0NHRoLCAxc3QsIDE5MDB0aCwgMjAxN3RoICAgICAgICAgfCA1LDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBZWSAgICAgIHwgNDQsIDAxLCAwMCwgMTcgICAgICAgICAgICAgICAgICAgIHwgNSw4ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWVlZICAgICB8IDA0NCwgMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFlZWVkgICAgfCAwMDQ0LCAwMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgfCA1LDggICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBZWVlZWSAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyw1ICAgfFxuICogfCBJU08gd2Vlay1udW1iZXJpbmcgeWVhciAgICAgICAgIHwgUiAgICAgICB8IC00MywgMCwgMSwgMTkwMCwgMjAxNyAgICAgICAgICAgICB8IDUsNyAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJSICAgICAgfCAtNDMsIDAwLCAwMSwgMTkwMCwgMjAxNyAgICAgICAgICAgfCA1LDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSUlIgICAgIHwgLTA0MywgMDAwLCAwMDEsIDE5MDAsIDIwMTcgICAgICAgIHwgNSw3ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUlJSUiAgICB8IC0wMDQzLCAwMDAwLCAwMDAxLCAxOTAwLCAyMDE3ICAgICB8IDUsNyAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJSUlJSICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzLDUsNyB8XG4gKiB8IEV4dGVuZGVkIHllYXIgICAgICAgICAgICAgICAgICAgfCB1ICAgICAgIHwgLTQzLCAwLCAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdXUgICAgICB8IC00MywgMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHV1dSAgICAgfCAtMDQzLCAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1dXV1ICAgIHwgLTAwNDMsIDAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdXV1dXUgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMsNSAgIHxcbiAqIHwgUXVhcnRlciAoZm9ybWF0dGluZykgICAgICAgICAgICB8IFEgICAgICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBRbyAgICAgIHwgMXN0LCAybmQsIDNyZCwgNHRoICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUVEgICAgICB8IDAxLCAwMiwgMDMsIDA0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFFRUSAgICAgfCBRMSwgUTIsIFEzLCBRNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBRUVFRICAgIHwgMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi4gICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUVFRUVEgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgUXVhcnRlciAoc3RhbmQtYWxvbmUpICAgICAgICAgICB8IHEgICAgICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBxbyAgICAgIHwgMXN0LCAybmQsIDNyZCwgNHRoICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcXEgICAgICB8IDAxLCAwMiwgMDMsIDA0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHFxcSAgICAgfCBRMSwgUTIsIFEzLCBRNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBxcXFxICAgIHwgMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi4gICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcXFxcXEgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgTW9udGggKGZvcm1hdHRpbmcpICAgICAgICAgICAgICB8IE0gICAgICAgfCAxLCAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTJ0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTU0gICAgICB8IDAxLCAwMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1NTSAgICAgfCBKYW4sIEZlYiwgLi4uLCBEZWMgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNTU1NICAgIHwgSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXIgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTU1NTU0gICB8IEosIEYsIC4uLiwgRCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgTW9udGggKHN0YW5kLWFsb25lKSAgICAgICAgICAgICB8IEwgICAgICAgfCAxLCAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTJ0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTEwgICAgICB8IDAxLCAwMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExMTCAgICAgfCBKYW4sIEZlYiwgLi4uLCBEZWMgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMTExMICAgIHwgSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXIgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTExMTEwgICB8IEosIEYsIC4uLiwgRCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgTG9jYWwgd2VlayBvZiB5ZWFyICAgICAgICAgICAgICB8IHcgICAgICAgfCAxLCAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3byAgICAgIHwgMXN0LCAybmQsIC4uLiwgNTN0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgd3cgICAgICB8IDAxLCAwMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgSVNPIHdlZWsgb2YgeWVhciAgICAgICAgICAgICAgICB8IEkgICAgICAgfCAxLCAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBJbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgNTN0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSUkgICAgICB8IDAxLCAwMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgRGF5IG9mIG1vbnRoICAgICAgICAgICAgICAgICAgICB8IGQgICAgICAgfCAxLCAyLCAuLi4sIDMxICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMzFzdCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGQgICAgICB8IDAxLCAwMiwgLi4uLCAzMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgRGF5IG9mIHllYXIgICAgICAgICAgICAgICAgICAgICB8IEQgICAgICAgfCAxLCAyLCAuLi4sIDM2NSwgMzY2ICAgICAgICAgICAgICAgfCA5ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMzY1dGgsIDM2NnRoICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgREQgICAgICB8IDAxLCAwMiwgLi4uLCAzNjUsIDM2NiAgICAgICAgICAgICB8IDkgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERERCAgICAgfCAwMDEsIDAwMiwgLi4uLCAzNjUsIDM2NiAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEREREICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyAgICAgfFxuICogfCBEYXkgb2Ygd2VlayAoZm9ybWF0dGluZykgICAgICAgIHwgRS4uRUVFICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3VuICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEVFRUUgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFRUVFRSAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRUVFRUVFICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8ICAgICAgIHxcbiAqIHwgSVNPIGRheSBvZiB3ZWVrIChmb3JtYXR0aW5nKSAgICB8IGkgICAgICAgfCAxLCAyLCAzLCAuLi4sIDcgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgN3RoICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaWkgICAgICB8IDAxLCAwMiwgLi4uLCAwNyAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGlpaSAgICAgfCBNb24sIFR1ZSwgV2VkLCAuLi4sIFN1biAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpaWlpICAgIHwgTW9uZGF5LCBUdWVzZGF5LCAuLi4sIFN1bmRheSAgICAgIHwgMiw3ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaWlpaWkgICB8IE0sIFQsIFcsIFQsIEYsIFMsIFMgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGlpaWlpaSAgfCBNbywgVHUsIFdlLCBUaCwgRnIsIFNhLCBTdSAgICAgICAgfCA3ICAgICB8XG4gKiB8IExvY2FsIGRheSBvZiB3ZWVrIChmb3JtYXR0aW5nKSAgfCBlICAgICAgIHwgMiwgMywgNCwgLi4uLCAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZW8gICAgICB8IDJuZCwgM3JkLCAuLi4sIDFzdCAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVlICAgICAgfCAwMiwgMDMsIC4uLiwgMDEgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBlZWUgICAgIHwgTW9uLCBUdWUsIFdlZCwgLi4uLCBTdW4gICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZWVlZSAgICB8IE1vbmRheSwgVHVlc2RheSwgLi4uLCBTdW5kYXkgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVlZWVlICAgfCBNLCBULCBXLCBULCBGLCBTLCBTICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBlZWVlZWUgIHwgTW8sIFR1LCBXZSwgVGgsIEZyLCBTYSwgU3UgICAgICAgIHwgICAgICAgfFxuICogfCBMb2NhbCBkYXkgb2Ygd2VlayAoc3RhbmQtYWxvbmUpIHwgYyAgICAgICB8IDIsIDMsIDQsIC4uLiwgMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNvICAgICAgfCAybmQsIDNyZCwgLi4uLCAxc3QgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjYyAgICAgIHwgMDIsIDAzLCAuLi4sIDAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2NjICAgICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3VuICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNjY2MgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjY2NjYyAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2NjY2NjICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8ICAgICAgIHxcbiAqIHwgQU0sIFBNICAgICAgICAgICAgICAgICAgICAgICAgICB8IGEuLmFhICAgfCBBTSwgUE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhYWEgICAgIHwgYW0sIHBtICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWFhYSAgICB8IGEubS4sIHAubS4gICAgICAgICAgICAgICAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFhYWFhICAgfCBhLCBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEFNLCBQTSwgbm9vbiwgbWlkbmlnaHQgICAgICAgICAgfCBiLi5iYiAgIHwgQU0sIFBNLCBub29uLCBtaWRuaWdodCAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYmJiICAgICB8IGFtLCBwbSwgbm9vbiwgbWlkbmlnaHQgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGJiYmIgICAgfCBhLm0uLCBwLm0uLCBub29uLCBtaWRuaWdodCAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBiYmJiYiAgIHwgYSwgcCwgbiwgbWkgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBGbGV4aWJsZSBkYXkgcGVyaW9kICAgICAgICAgICAgIHwgQi4uQkJCICB8IGF0IG5pZ2h0LCBpbiB0aGUgbW9ybmluZywgLi4uICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJCQkIgICAgfCBhdCBuaWdodCwgaW4gdGhlIG1vcm5pbmcsIC4uLiAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBCQkJCQiAgIHwgYXQgbmlnaHQsIGluIHRoZSBtb3JuaW5nLCAuLi4gICAgIHwgICAgICAgfFxuICogfCBIb3VyIFsxLTEyXSAgICAgICAgICAgICAgICAgICAgIHwgaCAgICAgICB8IDEsIDIsIC4uLiwgMTEsIDEyICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhvICAgICAgfCAxc3QsIDJuZCwgLi4uLCAxMXRoLCAxMnRoICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBoaCAgICAgIHwgMDEsIDAyLCAuLi4sIDExLCAxMiAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBIb3VyIFswLTIzXSAgICAgICAgICAgICAgICAgICAgIHwgSCAgICAgICB8IDAsIDEsIDIsIC4uLiwgMjMgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEhvICAgICAgfCAwdGgsIDFzdCwgMm5kLCAuLi4sIDIzcmQgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBISCAgICAgIHwgMDAsIDAxLCAwMiwgLi4uLCAyMyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBIb3VyIFswLTExXSAgICAgICAgICAgICAgICAgICAgIHwgSyAgICAgICB8IDEsIDIsIC4uLiwgMTEsIDAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEtvICAgICAgfCAxc3QsIDJuZCwgLi4uLCAxMXRoLCAwdGggICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBLSyAgICAgIHwgMDEsIDAyLCAuLi4sIDExLCAwMCAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBIb3VyIFsxLTI0XSAgICAgICAgICAgICAgICAgICAgIHwgayAgICAgICB8IDI0LCAxLCAyLCAuLi4sIDIzICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGtvICAgICAgfCAyNHRoLCAxc3QsIDJuZCwgLi4uLCAyM3JkICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBrayAgICAgIHwgMjQsIDAxLCAwMiwgLi4uLCAyMyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBNaW51dGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbSAgICAgICB8IDAsIDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1vICAgICAgfCAwdGgsIDFzdCwgLi4uLCA1OXRoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtbSAgICAgIHwgMDAsIDAxLCAuLi4sIDU5ICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBTZWNvbmQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcyAgICAgICB8IDAsIDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNvICAgICAgfCAwdGgsIDFzdCwgLi4uLCA1OXRoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzcyAgICAgIHwgMDAsIDAxLCAuLi4sIDU5ICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBGcmFjdGlvbiBvZiBzZWNvbmQgICAgICAgICAgICAgIHwgUyAgICAgICB8IDAsIDEsIC4uLiwgOSAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNTICAgICAgfCAwMCwgMDEsIC4uLiwgOTkgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTU1MgICAgIHwgMDAwLCAwMDEsIC4uLiwgOTk5ICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU1NTUyAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMgICAgIHxcbiAqIHwgVGltZXpvbmUgKElTTy04NjAxIHcvIFopICAgICAgICB8IFggICAgICAgfCAtMDgsICswNTMwLCBaICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYWCAgICAgIHwgLTA4MDAsICswNTMwLCBaICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWFhYICAgICB8IC0wODowMCwgKzA1OjMwLCBaICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFhYWFggICAgfCAtMDgwMCwgKzA1MzAsIFosICsxMjM0NTYgICAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYWFhYWCAgIHwgLTA4OjAwLCArMDU6MzAsIFosICsxMjozNDo1NiAgICAgIHwgICAgICAgfFxuICogfCBUaW1lem9uZSAoSVNPLTg2MDEgdy9vIFopICAgICAgIHwgeCAgICAgICB8IC0wOCwgKzA1MzAsICswMCAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHh4ICAgICAgfCAtMDgwMCwgKzA1MzAsICswMDAwICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB4eHggICAgIHwgLTA4OjAwLCArMDU6MzAsICswMDowMCAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeHh4eCAgICB8IC0wODAwLCArMDUzMCwgKzAwMDAsICsxMjM0NTYgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHh4eHh4ICAgfCAtMDg6MDAsICswNTozMCwgKzAwOjAwLCArMTI6MzQ6NTYgfCAgICAgICB8XG4gKiB8IFRpbWV6b25lIChHTVQpICAgICAgICAgICAgICAgICAgfCBPLi4uT09PIHwgR01ULTgsIEdNVCs1OjMwLCBHTVQrMCAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgT09PTyAgICB8IEdNVC0wODowMCwgR01UKzA1OjMwLCBHTVQrMDA6MDAgICB8IDIgICAgIHxcbiAqIHwgVGltZXpvbmUgKHNwZWNpZmljIG5vbi1sb2NhdC4pICB8IHouLi56enogfCBHTVQtOCwgR01UKzU6MzAsIEdNVCswICAgICAgICAgICAgfCA2ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB6enp6ICAgIHwgR01ULTA4OjAwLCBHTVQrMDU6MzAsIEdNVCswMDowMCAgIHwgMiw2ICAgfFxuICogfCBTZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgICAgICAgIHwgdCAgICAgICB8IDUxMjk2OTUyMCAgICAgICAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHR0ICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzLDcgICB8XG4gKiB8IE1pbGxpc2Vjb25kcyB0aW1lc3RhbXAgICAgICAgICAgfCBUICAgICAgIHwgNTEyOTY5NTIwOTAwICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVFQgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMsNyAgIHxcbiAqIHwgTG9uZyBsb2NhbGl6ZWQgZGF0ZSAgICAgICAgICAgICB8IFAgICAgICAgfCAwNC8yOS8xNDUzICAgICAgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQUCAgICAgIHwgQXByIDI5LCAxNDUzICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFBQICAgICB8IEFwcmlsIDI5dGgsIDE0NTMgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBQUFAgICAgfCBGcmlkYXksIEFwcmlsIDI5dGgsIDE0NTMgICAgICAgICAgfCAyLDcgICB8XG4gKiB8IExvbmcgbG9jYWxpemVkIHRpbWUgICAgICAgICAgICAgfCBwICAgICAgIHwgMTI6MDAgQU0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcHAgICAgICB8IDEyOjAwOjAwIEFNICAgICAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBwcCAgICAgfCAxMjowMDowMCBBTSBHTVQrMiAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwcHBwICAgIHwgMTI6MDA6MDAgQU0gR01UKzAyOjAwICAgICAgICAgICAgIHwgMiw3ICAgfFxuICogfCBDb21iaW5hdGlvbiBvZiBkYXRlIGFuZCB0aW1lICAgIHwgUHAgICAgICB8IDA0LzI5LzE0NTMsIDEyOjAwIEFNICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBQcHAgICAgfCBBcHIgMjksIDE0NTMsIDEyOjAwOjAwIEFNICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQUFBwcHAgIHwgQXByaWwgMjl0aCwgMTQ1MyBhdCAuLi4gICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFBQUHBwcHB8IEZyaWRheSwgQXByaWwgMjl0aCwgMTQ1MyBhdCAuLi4gICB8IDIsNyAgIHxcbiAqIE5vdGVzOlxuICogMS4gXCJGb3JtYXR0aW5nXCIgdW5pdHMgKGUuZy4gZm9ybWF0dGluZyBxdWFydGVyKSBpbiB0aGUgZGVmYXVsdCBlbi1VUyBsb2NhbGVcbiAqICAgIGFyZSB0aGUgc2FtZSBhcyBcInN0YW5kLWFsb25lXCIgdW5pdHMsIGJ1dCBhcmUgZGlmZmVyZW50IGluIHNvbWUgbGFuZ3VhZ2VzLlxuICogICAgXCJGb3JtYXR0aW5nXCIgdW5pdHMgYXJlIGRlY2xpbmVkIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgdGhlIGxhbmd1YWdlXG4gKiAgICBpbiB0aGUgY29udGV4dCBvZiBhIGRhdGUuIFwiU3RhbmQtYWxvbmVcIiB1bml0cyBhcmUgYWx3YXlzIG5vbWluYXRpdmUgc2luZ3VsYXI6XG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdkbyBMTExMJywge2xvY2FsZTogY3N9KSAvLz0+ICc2LiBsaXN0b3BhZCdgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdkbyBNTU1NJywge2xvY2FsZTogY3N9KSAvLz0+ICc2LiBsaXN0b3BhZHUnYFxuICpcbiAqIDIuIEFueSBzZXF1ZW5jZSBvZiB0aGUgaWRlbnRpY2FsIGxldHRlcnMgaXMgYSBwYXR0ZXJuLCB1bmxlc3MgaXQgaXMgZXNjYXBlZCBieVxuICogICAgdGhlIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIChzZWUgYmVsb3cpLlxuICogICAgSWYgdGhlIHNlcXVlbmNlIGlzIGxvbmdlciB0aGFuIGxpc3RlZCBpbiB0YWJsZSAoZS5nLiBgRUVFRUVFRUVFRUVgKVxuICogICAgdGhlIG91dHB1dCB3aWxsIGJlIHRoZSBzYW1lIGFzIGRlZmF1bHQgcGF0dGVybiBmb3IgdGhpcyB1bml0LCB1c3VhbGx5XG4gKiAgICB0aGUgbG9uZ2VzdCBvbmUgKGluIGNhc2Ugb2YgSVNPIHdlZWtkYXlzLCBgRUVFRWApLiBEZWZhdWx0IHBhdHRlcm5zIGZvciB1bml0c1xuICogICAgYXJlIG1hcmtlZCB3aXRoIFwiMlwiIGluIHRoZSBsYXN0IGNvbHVtbiBvZiB0aGUgdGFibGUuXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdNTU0nKSAvLz0+ICdOb3YnYFxuICpcbiAqICAgIGBmb3JtYXQobmV3IERhdGUoMjAxNywgMTAsIDYpLCAnTU1NTScpIC8vPT4gJ05vdmVtYmVyJ2BcbiAqXG4gKiAgICBgZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDEwLCA2KSwgJ01NTU1NJykgLy89PiAnTidgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdNTU1NTU0nKSAvLz0+ICdOb3ZlbWJlcidgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdNTU1NTU1NJykgLy89PiAnTm92ZW1iZXInYFxuICpcbiAqIDMuIFNvbWUgcGF0dGVybnMgY291bGQgYmUgdW5saW1pdGVkIGxlbmd0aCAoc3VjaCBhcyBgeXl5eXl5eXlgKS5cbiAqICAgIFRoZSBvdXRwdXQgd2lsbCBiZSBwYWRkZWQgd2l0aCB6ZXJvcyB0byBtYXRjaCB0aGUgbGVuZ3RoIG9mIHRoZSBwYXR0ZXJuLlxuICpcbiAqICAgIGBmb3JtYXQobmV3IERhdGUoMjAxNywgMTAsIDYpLCAneXl5eXl5eXknKSAvLz0+ICcwMDAwMjAxNydgXG4gKlxuICogNC4gYFFRUVFRYCBhbmQgYHFxcXFxYCBjb3VsZCBiZSBub3Qgc3RyaWN0bHkgbnVtZXJpY2FsIGluIHNvbWUgbG9jYWxlcy5cbiAqICAgIFRoZXNlIHRva2VucyByZXByZXNlbnQgdGhlIHNob3J0ZXN0IGZvcm0gb2YgdGhlIHF1YXJ0ZXIuXG4gKlxuICogNS4gVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIGB5YCBhbmQgYHVgIHBhdHRlcm5zIGFyZSBCLkMuIHllYXJzOlxuICpcbiAqICAgIHwgWWVhciB8IGB5YCB8IGB1YCB8XG4gKiAgICB8LS0tLS0tfC0tLS0tfC0tLS0tfFxuICogICAgfCBBQyAxIHwgICAxIHwgICAxIHxcbiAqICAgIHwgQkMgMSB8ICAgMSB8ICAgMCB8XG4gKiAgICB8IEJDIDIgfCAgIDIgfCAgLTEgfFxuICpcbiAqICAgIEFsc28gYHl5YCBhbHdheXMgcmV0dXJucyB0aGUgbGFzdCB0d28gZGlnaXRzIG9mIGEgeWVhcixcbiAqICAgIHdoaWxlIGB1dWAgcGFkcyBzaW5nbGUgZGlnaXQgeWVhcnMgdG8gMiBjaGFyYWN0ZXJzIGFuZCByZXR1cm5zIG90aGVyIHllYXJzIHVuY2hhbmdlZDpcbiAqXG4gKiAgICB8IFllYXIgfCBgeXlgIHwgYHV1YCB8XG4gKiAgICB8LS0tLS0tfC0tLS0tLXwtLS0tLS18XG4gKiAgICB8IDEgICAgfCAgIDAxIHwgICAwMSB8XG4gKiAgICB8IDE0ICAgfCAgIDE0IHwgICAxNCB8XG4gKiAgICB8IDM3NiAgfCAgIDc2IHwgIDM3NiB8XG4gKiAgICB8IDE0NTMgfCAgIDUzIHwgMTQ1MyB8XG4gKlxuICogICAgVGhlIHNhbWUgZGlmZmVyZW5jZSBpcyB0cnVlIGZvciBsb2NhbCBhbmQgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzIChgWWAgYW5kIGBSYCksXG4gKiAgICBleGNlcHQgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhcnMgYXJlIGRlcGVuZGVudCBvbiBgb3B0aW9ucy53ZWVrU3RhcnRzT25gXG4gKiAgICBhbmQgYG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlYCAoY29tcGFyZSBbZ2V0SVNPV2Vla1llYXJde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvZ2V0SVNPV2Vla1llYXJ9XG4gKiAgICBhbmQgW2dldFdlZWtZZWFyXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL2dldFdlZWtZZWFyfSkuXG4gKlxuICogNi4gU3BlY2lmaWMgbm9uLWxvY2F0aW9uIHRpbWV6b25lcyBhcmUgY3VycmVudGx5IHVuYXZhaWxhYmxlIGluIGBkYXRlLWZuc2AsXG4gKiAgICBzbyByaWdodCBub3cgdGhlc2UgdG9rZW5zIGZhbGwgYmFjayB0byBHTVQgdGltZXpvbmVzLlxuICpcbiAqIDcuIFRoZXNlIHBhdHRlcm5zIGFyZSBub3QgaW4gdGhlIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICMzNTpcbiAqICAgIC0gYGlgOiBJU08gZGF5IG9mIHdlZWtcbiAqICAgIC0gYElgOiBJU08gd2VlayBvZiB5ZWFyXG4gKiAgICAtIGBSYDogSVNPIHdlZWstbnVtYmVyaW5nIHllYXJcbiAqICAgIC0gYHRgOiBzZWNvbmRzIHRpbWVzdGFtcFxuICogICAgLSBgVGA6IG1pbGxpc2Vjb25kcyB0aW1lc3RhbXBcbiAqICAgIC0gYG9gOiBvcmRpbmFsIG51bWJlciBtb2RpZmllclxuICogICAgLSBgUGA6IGxvbmcgbG9jYWxpemVkIGRhdGVcbiAqICAgIC0gYHBgOiBsb25nIGxvY2FsaXplZCB0aW1lXG4gKlxuICogOC4gYFlZYCBhbmQgYFlZWVlgIHRva2VucyByZXByZXNlbnQgd2Vlay1udW1iZXJpbmcgeWVhcnMgYnV0IHRoZXkgYXJlIG9mdGVuIGNvbmZ1c2VkIHdpdGggeWVhcnMuXG4gKiAgICBZb3Ugc2hvdWxkIGVuYWJsZSBgb3B0aW9ucy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnNgIHRvIHVzZSB0aGVtLiBTZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKlxuICogOS4gYERgIGFuZCBgRERgIHRva2VucyByZXByZXNlbnQgZGF5cyBvZiB0aGUgeWVhciBidXQgdGhleSBhcmUgb2Z0ZW4gY29uZnVzZWQgd2l0aCBkYXlzIG9mIHRoZSBtb250aC5cbiAqICAgIFlvdSBzaG91bGQgZW5hYmxlIGBvcHRpb25zLnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnNgIHRvIHVzZSB0aGVtLiBTZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiAtIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgbm93IHJlcXVpcmVkIGZvciB0aGUgc2FrZSBvZiBleHBsaWNpdG5lc3MuXG4gKlxuICogICBgYGBqYXZhc2NyaXB0XG4gKiAgIC8vIEJlZm9yZSB2Mi4wLjBcbiAqICAgZm9ybWF0KG5ldyBEYXRlKDIwMTYsIDAsIDEpKVxuICpcbiAqICAgLy8gdjIuMC4wIG9ud2FyZFxuICogICBmb3JtYXQobmV3IERhdGUoMjAxNiwgMCwgMSksIFwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzLlNTU3h4eFwiKVxuICogICBgYGBcbiAqXG4gKiAtIE5ldyBmb3JtYXQgc3RyaW5nIEFQSSBmb3IgYGZvcm1hdGAgZnVuY3Rpb25cbiAqICAgd2hpY2ggaXMgYmFzZWQgb24gW1VuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICMzNV0oaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtZGF0ZXMuaHRtbCNEYXRlX0ZpZWxkX1N5bWJvbF9UYWJsZSkuXG4gKiAgIFNlZSBbdGhpcyBwb3N0XShodHRwczovL2Jsb2cuZGF0ZS1mbnMub3JnL3Bvc3QvdW5pY29kZS10b2tlbnMtaW4tZGF0ZS1mbnMtdjItc3JlYXR5a2k5MWpnKSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIC0gQ2hhcmFjdGVycyBhcmUgbm93IGVzY2FwZWQgdXNpbmcgc2luZ2xlIHF1b3RlIHN5bWJvbHMgKGAnYCkgaW5zdGVhZCBvZiBzcXVhcmUgYnJhY2tldHMuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gZm9ybWF0IC0gdGhlIHN0cmluZyBvZiB0b2tlbnNcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gLSBhbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICogQHBhcmFtIHtMb2NhbGV9IFtvcHRpb25zLmxvY2FsZT1kZWZhdWx0TG9jYWxlXSAtIHRoZSBsb2NhbGUgb2JqZWN0LiBTZWUgW0xvY2FsZV17QGxpbmsgaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9Mb2NhbGV9XG4gKiBAcGFyYW0gezB8MXwyfDN8NHw1fDZ9IFtvcHRpb25zLndlZWtTdGFydHNPbj0wXSAtIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwIC0gU3VuZGF5KVxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT0xXSAtIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXNcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMudXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zPWZhbHNlXSAtIGlmIHRydWUsIGFsbG93cyB1c2FnZSBvZiB0aGUgd2Vlay1udW1iZXJpbmcgeWVhciB0b2tlbnMgYFlZYCBhbmQgYFlZWVlgO1xuICogICBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnM9ZmFsc2VdIC0gaWYgdHJ1ZSwgYWxsb3dzIHVzYWdlIG9mIHRoZSBkYXkgb2YgeWVhciB0b2tlbnMgYERgIGFuZCBgRERgO1xuICogICBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKiBAcmV0dXJucyB7U3RyaW5nfSB0aGUgZm9ybWF0dGVkIGRhdGUgc3RyaW5nXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgZGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy5sb2NhbGVgIG11c3QgY29udGFpbiBgbG9jYWxpemVgIHByb3BlcnR5XG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy5sb2NhbGVgIG11c3QgY29udGFpbiBgZm9ybWF0TG9uZ2AgcHJvcGVydHlcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDdcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IHVzZSBgeXl5eWAgaW5zdGVhZCBvZiBgWVlZWWAgZm9yIGZvcm1hdHRpbmcgeWVhcnMgdXNpbmcgW2Zvcm1hdCBwcm92aWRlZF0gdG8gdGhlIGlucHV0IFtpbnB1dCBwcm92aWRlZF07IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXJcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IHVzZSBgeXlgIGluc3RlYWQgb2YgYFlZYCBmb3IgZm9ybWF0dGluZyB5ZWFycyB1c2luZyBbZm9ybWF0IHByb3ZpZGVkXSB0byB0aGUgaW5wdXQgW2lucHV0IHByb3ZpZGVkXTsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gdXNlIGBkYCBpbnN0ZWFkIG9mIGBEYCBmb3IgZm9ybWF0dGluZyBkYXlzIG9mIHRoZSBtb250aCB1c2luZyBbZm9ybWF0IHByb3ZpZGVkXSB0byB0aGUgaW5wdXQgW2lucHV0IHByb3ZpZGVkXTsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gdXNlIGBkZGAgaW5zdGVhZCBvZiBgRERgIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHVzaW5nIFtmb3JtYXQgcHJvdmlkZWRdIHRvIHRoZSBpbnB1dCBbaW5wdXQgcHJvdmlkZWRdOyBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBmb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDExIEZlYnJ1YXJ5IDIwMTQgaW4gbWlkZGxlLWVuZGlhbiBmb3JtYXQ6XG4gKiB2YXIgcmVzdWx0ID0gZm9ybWF0KG5ldyBEYXRlKDIwMTQsIDEsIDExKSwgJ01NL2RkL3l5eXknKVxuICogLy89PiAnMDIvMTEvMjAxNCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDIgSnVseSAyMDE0IGluIEVzcGVyYW50bzpcbiAqIGltcG9ydCB7IGVvTG9jYWxlIH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlL2VvJ1xuICogdmFyIHJlc3VsdCA9IGZvcm1hdChuZXcgRGF0ZSgyMDE0LCA2LCAyKSwgXCJkbyAnZGUnIE1NTU0geXl5eVwiLCB7XG4gKiAgIGxvY2FsZTogZW9Mb2NhbGVcbiAqIH0pXG4gKiAvLz0+ICcyLWEgZGUganVsaW8gMjAxNCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXNjYXBlIHN0cmluZyBieSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVyczpcbiAqIHZhciByZXN1bHQgPSBmb3JtYXQobmV3IERhdGUoMjAxNCwgNiwgMiwgMTUpLCBcImggJ28nJ2Nsb2NrJ1wiKVxuICogLy89PiBcIjMgbydjbG9ja1wiXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0KGRpcnR5RGF0ZSwgZGlydHlGb3JtYXRTdHIsIGRpcnR5T3B0aW9ucykge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGZvcm1hdFN0ciA9IFN0cmluZyhkaXJ0eUZvcm1hdFN0cik7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgfHwgZGVmYXVsdExvY2FsZTtcbiAgdmFyIGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IGxvY2FsZS5vcHRpb25zICYmIGxvY2FsZS5vcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgdmFyIGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IDEgOiB0b0ludGVnZXIobG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlID09IG51bGwgPyBkZWZhdWx0Rmlyc3RXZWVrQ29udGFpbnNEYXRlIDogdG9JbnRlZ2VyKG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKTsgLy8gVGVzdCBpZiB3ZWVrU3RhcnRzT24gaXMgYmV0d2VlbiAxIGFuZCA3IF9hbmRfIGlzIG5vdCBOYU5cblxuICBpZiAoIShmaXJzdFdlZWtDb250YWluc0RhdGUgPj0gMSAmJiBmaXJzdFdlZWtDb250YWluc0RhdGUgPD0gNykpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZmlyc3RXZWVrQ29udGFpbnNEYXRlIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA3IGluY2x1c2l2ZWx5Jyk7XG4gIH1cblxuICB2YXIgbG9jYWxlV2Vla1N0YXJ0c09uID0gbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMud2Vla1N0YXJ0c09uO1xuICB2YXIgZGVmYXVsdFdlZWtTdGFydHNPbiA9IGxvY2FsZVdlZWtTdGFydHNPbiA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihsb2NhbGVXZWVrU3RhcnRzT24pO1xuICB2YXIgd2Vla1N0YXJ0c09uID0gb3B0aW9ucy53ZWVrU3RhcnRzT24gPT0gbnVsbCA/IGRlZmF1bHRXZWVrU3RhcnRzT24gOiB0b0ludGVnZXIob3B0aW9ucy53ZWVrU3RhcnRzT24pOyAvLyBUZXN0IGlmIHdlZWtTdGFydHNPbiBpcyBiZXR3ZWVuIDAgYW5kIDYgX2FuZF8gaXMgbm90IE5hTlxuXG4gIGlmICghKHdlZWtTdGFydHNPbiA+PSAwICYmIHdlZWtTdGFydHNPbiA8PSA2KSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd3ZWVrU3RhcnRzT24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYgaW5jbHVzaXZlbHknKTtcbiAgfVxuXG4gIGlmICghbG9jYWxlLmxvY2FsaXplKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2xvY2FsZSBtdXN0IGNvbnRhaW4gbG9jYWxpemUgcHJvcGVydHknKTtcbiAgfVxuXG4gIGlmICghbG9jYWxlLmZvcm1hdExvbmcpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignbG9jYWxlIG11c3QgY29udGFpbiBmb3JtYXRMb25nIHByb3BlcnR5Jyk7XG4gIH1cblxuICB2YXIgb3JpZ2luYWxEYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG5cbiAgaWYgKCFpc1ZhbGlkKG9yaWdpbmFsRGF0ZSkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCB0aW1lIHZhbHVlJyk7XG4gIH0gLy8gQ29udmVydCB0aGUgZGF0ZSBpbiBzeXN0ZW0gdGltZXpvbmUgdG8gdGhlIHNhbWUgZGF0ZSBpbiBVVEMrMDA6MDAgdGltZXpvbmUuXG4gIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHdoZW4gVVRDIGZ1bmN0aW9ucyB3aWxsIGJlIGltcGxlbWVudGVkLCBsb2NhbGVzIHdpbGwgYmUgY29tcGF0aWJsZSB3aXRoIHRoZW0uXG4gIC8vIFNlZSBhbiBpc3N1ZSBhYm91dCBVVEMgZnVuY3Rpb25zOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM3NlxuXG5cbiAgdmFyIHRpbWV6b25lT2Zmc2V0ID0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhvcmlnaW5hbERhdGUpO1xuICB2YXIgdXRjRGF0ZSA9IHN1Yk1pbGxpc2Vjb25kcyhvcmlnaW5hbERhdGUsIHRpbWV6b25lT2Zmc2V0KTtcbiAgdmFyIGZvcm1hdHRlck9wdGlvbnMgPSB7XG4gICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiBmaXJzdFdlZWtDb250YWluc0RhdGUsXG4gICAgd2Vla1N0YXJ0c09uOiB3ZWVrU3RhcnRzT24sXG4gICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgX29yaWdpbmFsRGF0ZTogb3JpZ2luYWxEYXRlXG4gIH07XG4gIHZhciByZXN1bHQgPSBmb3JtYXRTdHIubWF0Y2gobG9uZ0Zvcm1hdHRpbmdUb2tlbnNSZWdFeHApLm1hcChmdW5jdGlvbiAoc3Vic3RyaW5nKSB7XG4gICAgdmFyIGZpcnN0Q2hhcmFjdGVyID0gc3Vic3RyaW5nWzBdO1xuXG4gICAgaWYgKGZpcnN0Q2hhcmFjdGVyID09PSAncCcgfHwgZmlyc3RDaGFyYWN0ZXIgPT09ICdQJykge1xuICAgICAgdmFyIGxvbmdGb3JtYXR0ZXIgPSBsb25nRm9ybWF0dGVyc1tmaXJzdENoYXJhY3Rlcl07XG4gICAgICByZXR1cm4gbG9uZ0Zvcm1hdHRlcihzdWJzdHJpbmcsIGxvY2FsZS5mb3JtYXRMb25nLCBmb3JtYXR0ZXJPcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3Vic3RyaW5nO1xuICB9KS5qb2luKCcnKS5tYXRjaChmb3JtYXR0aW5nVG9rZW5zUmVnRXhwKS5tYXAoZnVuY3Rpb24gKHN1YnN0cmluZykge1xuICAgIC8vIFJlcGxhY2UgdHdvIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIHdpdGggb25lIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJcbiAgICBpZiAoc3Vic3RyaW5nID09PSBcIicnXCIpIHtcbiAgICAgIHJldHVybiBcIidcIjtcbiAgICB9XG5cbiAgICB2YXIgZmlyc3RDaGFyYWN0ZXIgPSBzdWJzdHJpbmdbMF07XG5cbiAgICBpZiAoZmlyc3RDaGFyYWN0ZXIgPT09IFwiJ1wiKSB7XG4gICAgICByZXR1cm4gY2xlYW5Fc2NhcGVkU3RyaW5nKHN1YnN0cmluZyk7XG4gICAgfVxuXG4gICAgdmFyIGZvcm1hdHRlciA9IGZvcm1hdHRlcnNbZmlyc3RDaGFyYWN0ZXJdO1xuXG4gICAgaWYgKGZvcm1hdHRlcikge1xuICAgICAgaWYgKCFvcHRpb25zLnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyAmJiBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4oc3Vic3RyaW5nKSkge1xuICAgICAgICB0aHJvd1Byb3RlY3RlZEVycm9yKHN1YnN0cmluZywgZGlydHlGb3JtYXRTdHIsIGRpcnR5RGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zICYmIGlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4oc3Vic3RyaW5nKSkge1xuICAgICAgICB0aHJvd1Byb3RlY3RlZEVycm9yKHN1YnN0cmluZywgZGlydHlGb3JtYXRTdHIsIGRpcnR5RGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3JtYXR0ZXIodXRjRGF0ZSwgc3Vic3RyaW5nLCBsb2NhbGUubG9jYWxpemUsIGZvcm1hdHRlck9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChmaXJzdENoYXJhY3Rlci5tYXRjaCh1bmVzY2FwZWRMYXRpbkNoYXJhY3RlclJlZ0V4cCkpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCcgKyBmaXJzdENoYXJhY3RlciArICdgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0cmluZztcbiAgfSkuam9pbignJyk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGNsZWFuRXNjYXBlZFN0cmluZyhpbnB1dCkge1xuICByZXR1cm4gaW5wdXQubWF0Y2goZXNjYXBlZFN0cmluZ1JlZ0V4cClbMV0ucmVwbGFjZShkb3VibGVRdW90ZVJlZ0V4cCwgXCInXCIpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgZ2V0RGF5c0luTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGdpdmVuIGRhdGVcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZGF5cyBhcmUgaW4gRmVicnVhcnkgMjAwMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldERheXNJbk1vbnRoKG5ldyBEYXRlKDIwMDAsIDEpKVxuICogLy89PiAyOVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERheXNJbk1vbnRoKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIHZhciBtb250aEluZGV4ID0gZGF0ZS5nZXRNb250aCgpO1xuICB2YXIgbGFzdERheU9mTW9udGggPSBuZXcgRGF0ZSgwKTtcbiAgbGFzdERheU9mTW9udGguc2V0RnVsbFllYXIoeWVhciwgbW9udGhJbmRleCArIDEsIDApO1xuICBsYXN0RGF5T2ZNb250aC5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGxhc3REYXlPZk1vbnRoLmdldERhdGUoKTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIGdldFRpbWVcbiAqIEBjYXRlZ29yeSBUaW1lc3RhbXAgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBtaWxsaXNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBtaWxsaXNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBnaXZlbiBkYXRlXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgdGltZXN0YW1wXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gR2V0IHRoZSB0aW1lc3RhbXAgb2YgMjkgRmVicnVhcnkgMjAxMiAxMTo0NTowNS4xMjM6XG4gKiBjb25zdCByZXN1bHQgPSBnZXRUaW1lKG5ldyBEYXRlKDIwMTIsIDEsIDI5LCAxMSwgNDUsIDUsIDEyMykpXG4gKiAvLz0+IDEzMzA1MTU5MDUxMjNcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRUaW1lKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIHRpbWVzdGFtcCA9IGRhdGUuZ2V0VGltZSgpO1xuICByZXR1cm4gdGltZXN0YW1wO1xufSIsImltcG9ydCBnZXRUaW1lIGZyb20gXCIuLi9nZXRUaW1lL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBnZXRVbml4VGltZVxuICogQGNhdGVnb3J5IFRpbWVzdGFtcCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIHNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBzZWNvbmRzIHRpbWVzdGFtcCBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZ2l2ZW4gZGF0ZVxuICogQHJldHVybnMge051bWJlcn0gdGhlIHRpbWVzdGFtcFxuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEdldCB0aGUgdGltZXN0YW1wIG9mIDI5IEZlYnJ1YXJ5IDIwMTIgMTE6NDU6MDUgQ0VUOlxuICogY29uc3QgcmVzdWx0ID0gZ2V0VW5peFRpbWUobmV3IERhdGUoMjAxMiwgMSwgMjksIDExLCA0NSwgNSkpXG4gKiAvLz0+IDEzMzA1MTIzMDVcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRVbml4VGltZShkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHJldHVybiBNYXRoLmZsb29yKGdldFRpbWUoZGlydHlEYXRlKSAvIDEwMDApO1xufSIsImltcG9ydCBzdGFydE9mV2VlayBmcm9tIFwiLi4vc3RhcnRPZldlZWsvaW5kZXguanNcIjtcbmltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZ2V0V2Vla1llYXJcbiAqIEBjYXRlZ29yeSBXZWVrLU51bWJlcmluZyBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSBleGFjdCBjYWxjdWxhdGlvbiBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgb2ZcbiAqIGBvcHRpb25zLndlZWtTdGFydHNPbmAgKHdoaWNoIGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrKVxuICogYW5kIGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgKHdoaWNoIGlzIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXMgYWx3YXlzIGluXG4gKiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgd2Vlay1udW1iZXJpbmcgeWVhcilcbiAqXG4gKiBXZWVrIG51bWJlcmluZzogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2VlayNXZWVrX251bWJlcmluZ1xuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBnaXZlbiBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEBwYXJhbSB7MXwyfDN8NHw1fDZ8N30gW29wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlPTFdIC0gdGhlIGRheSBvZiBKYW51YXJ5LCB3aGljaCBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXJcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggd2VlayBudW1iZXJpbmcgeWVhciBpcyAyNiBEZWNlbWJlciAyMDA0IHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3M/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrWWVhcihuZXcgRGF0ZSgyMDA0LCAxMSwgMjYpKVxuICogLy89PiAyMDA1XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIHdlZWsgbnVtYmVyaW5nIHllYXIgaXMgMjYgRGVjZW1iZXIgMjAwNCBpZiB3ZWVrIHN0YXJ0cyBvbiBTYXR1cmRheT9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldFdlZWtZZWFyKG5ldyBEYXRlKDIwMDQsIDExLCAyNiksIHsgd2Vla1N0YXJ0c09uOiA2IH0pXG4gKiAvLz0+IDIwMDRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggd2VlayBudW1iZXJpbmcgeWVhciBpcyAyNiBEZWNlbWJlciAyMDA0IGlmIHRoZSBmaXJzdCB3ZWVrIGNvbnRhaW5zIDQgSmFudWFyeT9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldFdlZWtZZWFyKG5ldyBEYXRlKDIwMDQsIDExLCAyNiksIHsgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiA0IH0pXG4gKiAvLz0+IDIwMDRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2Vla1llYXIoZGlydHlEYXRlLCBvcHRpb25zKSB7XG4gIHZhciBfb3B0aW9ucyRsb2NhbGUsIF9vcHRpb25zJGxvY2FsZSRvcHRpbztcblxuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIHZhciBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfb3B0aW9ucyRsb2NhbGUgPSBvcHRpb25zLmxvY2FsZSkgPT09IG51bGwgfHwgX29wdGlvbnMkbG9jYWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX29wdGlvbnMkbG9jYWxlJG9wdGlvID0gX29wdGlvbnMkbG9jYWxlLm9wdGlvbnMpID09PSBudWxsIHx8IF9vcHRpb25zJGxvY2FsZSRvcHRpbyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29wdGlvbnMkbG9jYWxlJG9wdGlvLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgdmFyIGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IDEgOiB0b0ludGVnZXIobG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSA9PSBudWxsID8gZGVmYXVsdEZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA6IHRvSW50ZWdlcihvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7IC8vIFRlc3QgaWYgd2Vla1N0YXJ0c09uIGlzIGJldHdlZW4gMSBhbmQgNyBfYW5kXyBpcyBub3QgTmFOXG5cbiAgaWYgKCEoZmlyc3RXZWVrQ29udGFpbnNEYXRlID49IDEgJiYgZmlyc3RXZWVrQ29udGFpbnNEYXRlIDw9IDcpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNyBpbmNsdXNpdmVseScpO1xuICB9XG5cbiAgdmFyIGZpcnN0V2Vla09mTmV4dFllYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRGdWxsWWVhcih5ZWFyICsgMSwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZOZXh0WWVhciA9IHN0YXJ0T2ZXZWVrKGZpcnN0V2Vla09mTmV4dFllYXIsIG9wdGlvbnMpO1xuICB2YXIgZmlyc3RXZWVrT2ZUaGlzWWVhciA9IG5ldyBEYXRlKDApO1xuICBmaXJzdFdlZWtPZlRoaXNZZWFyLnNldEZ1bGxZZWFyKHllYXIsIDAsIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7XG4gIGZpcnN0V2Vla09mVGhpc1llYXIuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHZhciBzdGFydE9mVGhpc1llYXIgPSBzdGFydE9mV2VlayhmaXJzdFdlZWtPZlRoaXNZZWFyLCBvcHRpb25zKTtcblxuICBpZiAoZGF0ZS5nZXRUaW1lKCkgPj0gc3RhcnRPZk5leHRZZWFyLmdldFRpbWUoKSkge1xuICAgIHJldHVybiB5ZWFyICsgMTtcbiAgfSBlbHNlIGlmIChkYXRlLmdldFRpbWUoKSA+PSBzdGFydE9mVGhpc1llYXIuZ2V0VGltZSgpKSB7XG4gICAgcmV0dXJuIHllYXI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHllYXIgLSAxO1xuICB9XG59IiwiaW1wb3J0IGdldFdlZWtZZWFyIGZyb20gXCIuLi9nZXRXZWVrWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZXZWVrIGZyb20gXCIuLi9zdGFydE9mV2Vlay9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZldlZWtZZWFyXG4gKiBAY2F0ZWdvcnkgV2Vlay1OdW1iZXJpbmcgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhci5cbiAqIFRoZSBleGFjdCBjYWxjdWxhdGlvbiBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgb2ZcbiAqIGBvcHRpb25zLndlZWtTdGFydHNPbmAgKHdoaWNoIGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrKVxuICogYW5kIGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgKHdoaWNoIGlzIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXMgYWx3YXlzIGluXG4gKiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgd2Vlay1udW1iZXJpbmcgeWVhcilcbiAqXG4gKiBXZWVrIG51bWJlcmluZzogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2VlayNXZWVrX251bWJlcmluZ1xuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEBwYXJhbSB7MXwyfDN8NHw1fDZ8N30gW29wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlPTFdIC0gdGhlIGRheSBvZiBKYW51YXJ5LCB3aGljaCBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXJcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgc3RhcnQgb2YgYSB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGFuIGEgd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgMiBKdWx5IDIwMDUgd2l0aCBkZWZhdWx0IHNldHRpbmdzOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZldlZWtZZWFyKG5ldyBEYXRlKDIwMDUsIDYsIDIpKVxuICogLy89PiBTdW4gRGVjIDI2IDIwMDQgMDA6MDA6MDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGEgd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgMiBKdWx5IDIwMDVcbiAqIC8vIGlmIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWtcbiAqIC8vIGFuZCA0IEphbnVhcnkgaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZldlZWtZZWFyKG5ldyBEYXRlKDIwMDUsIDYsIDIpLCB7XG4gKiAgIHdlZWtTdGFydHNPbjogMSxcbiAqICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiA0XG4gKiB9KVxuICogLy89PiBNb24gSmFuIDAzIDIwMDUgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RhcnRPZldlZWtZZWFyKGRpcnR5RGF0ZSwgZGlydHlPcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgb3B0aW9ucyA9IGRpcnR5T3B0aW9ucyB8fCB7fTtcbiAgdmFyIGxvY2FsZSA9IG9wdGlvbnMubG9jYWxlO1xuICB2YXIgbG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlID0gbG9jYWxlICYmIGxvY2FsZS5vcHRpb25zICYmIGxvY2FsZS5vcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgdmFyIGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IDEgOiB0b0ludGVnZXIobG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlID09IG51bGwgPyBkZWZhdWx0Rmlyc3RXZWVrQ29udGFpbnNEYXRlIDogdG9JbnRlZ2VyKG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIHllYXIgPSBnZXRXZWVrWWVhcihkaXJ0eURhdGUsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciBmaXJzdFdlZWsgPSBuZXcgRGF0ZSgwKTtcbiAgZmlyc3RXZWVrLnNldEZ1bGxZZWFyKHllYXIsIDAsIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7XG4gIGZpcnN0V2Vlay5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIGRhdGUgPSBzdGFydE9mV2VlayhmaXJzdFdlZWssIGRpcnR5T3B0aW9ucyk7XG4gIHJldHVybiBkYXRlO1xufSIsImltcG9ydCBzdGFydE9mV2VlayBmcm9tIFwiLi4vc3RhcnRPZldlZWsvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mV2Vla1llYXIgZnJvbSBcIi4uL3N0YXJ0T2ZXZWVrWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9XRUVLID0gNjA0ODAwMDAwO1xuLyoqXG4gKiBAbmFtZSBnZXRXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIGxvY2FsIHdlZWsgaW5kZXggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIGxvY2FsIHdlZWsgaW5kZXggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgZXhhY3QgY2FsY3VsYXRpb24gZGVwZW5kcyBvbiB0aGUgdmFsdWVzIG9mXG4gKiBgb3B0aW9ucy53ZWVrU3RhcnRzT25gICh3aGljaCBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaylcbiAqIGFuZCBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgICh3aGljaCBpcyB0aGUgZGF5IG9mIEphbnVhcnksIHdoaWNoIGlzIGFsd2F5cyBpblxuICogdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHdlZWstbnVtYmVyaW5nIHllYXIpXG4gKlxuICogV2VlayBudW1iZXJpbmc6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dlZWsjV2Vla19udW1iZXJpbmdcbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIGFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge0xvY2FsZX0gW29wdGlvbnMubG9jYWxlPWRlZmF1bHRMb2NhbGVdIC0gdGhlIGxvY2FsZSBvYmplY3QuIFNlZSBbTG9jYWxlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL0xvY2FsZX1cbiAqIEBwYXJhbSB7MHwxfDJ8M3w0fDV8Nn0gW29wdGlvbnMud2Vla1N0YXJ0c09uPTBdIC0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAgLSBTdW5kYXkpXG4gKiBAcGFyYW0gezF8MnwzfDR8NXw2fDd9IFtvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT0xXSAtIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgd2Vla1xuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy53ZWVrU3RhcnRzT25gIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA2XG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA3XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIHdlZWsgb2YgdGhlIGxvY2FsIHdlZWsgbnVtYmVyaW5nIHllYXIgaXMgMiBKYW51YXJ5IDIwMDUgd2l0aCBkZWZhdWx0IG9wdGlvbnM/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrKG5ldyBEYXRlKDIwMDUsIDAsIDIpKVxuICogLy89PiAyXG4gKlxuICogLy8gV2hpY2ggd2VlayBvZiB0aGUgbG9jYWwgd2VlayBudW1iZXJpbmcgeWVhciBpcyAyIEphbnVhcnkgMjAwNSxcbiAqIC8vIGlmIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLFxuICogLy8gYW5kIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyIGFsd2F5cyBjb250YWlucyA0IEphbnVhcnk/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrKG5ldyBEYXRlKDIwMDUsIDAsIDIpLCB7XG4gKiAgIHdlZWtTdGFydHNPbjogMSxcbiAqICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiA0XG4gKiB9KVxuICogLy89PiA1M1xuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdlZWsoZGlydHlEYXRlLCBvcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgZGlmZiA9IHN0YXJ0T2ZXZWVrKGRhdGUsIG9wdGlvbnMpLmdldFRpbWUoKSAtIHN0YXJ0T2ZXZWVrWWVhcihkYXRlLCBvcHRpb25zKS5nZXRUaW1lKCk7IC8vIFJvdW5kIHRoZSBudW1iZXIgb2YgZGF5cyB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyXG4gIC8vIGJlY2F1c2UgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYSB3ZWVrIGlzIG5vdCBjb25zdGFudFxuICAvLyAoZS5nLiBpdCdzIGRpZmZlcmVudCBpbiB0aGUgd2VlayBvZiB0aGUgZGF5bGlnaHQgc2F2aW5nIHRpbWUgY2xvY2sgc2hpZnQpXG5cbiAgcmV0dXJuIE1hdGgucm91bmQoZGlmZiAvIE1JTExJU0VDT05EU19JTl9XRUVLKSArIDE7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBsYXN0RGF5T2ZNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgbGFzdCBkYXkgb2YgYSBtb250aCBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGxhc3QgZGF5IG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHJldHVybnMge0RhdGV9IHRoZSBsYXN0IGRheSBvZiBhIG1vbnRoXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIGxhc3QgZGF5IG9mIGEgbW9udGggZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiB2YXIgcmVzdWx0ID0gbGFzdERheU9mTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gVHVlIFNlcCAzMCAyMDE0IDAwOjAwOjAwXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGFzdERheU9mTW9udGgoZGlydHlEYXRlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gIGRhdGUuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aCArIDEsIDApO1xuICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyBmcm9tIFwiLi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcy9pbmRleC5qc1wiO1xuaW1wb3J0IGxhc3REYXlPZk1vbnRoIGZyb20gXCIuLi9sYXN0RGF5T2ZNb250aC9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZNb250aCBmcm9tIFwiLi4vc3RhcnRPZk1vbnRoL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGdldFdlZWtzSW5Nb250aFxuICogQGNhdGVnb3J5IFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3MgYSBtb250aCBzcGFucy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzIHRoZSBtb250aCBpbiB0aGUgZ2l2ZW4gZGF0ZSBzcGFucy5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIGFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge0xvY2FsZX0gW29wdGlvbnMubG9jYWxlPWRlZmF1bHRMb2NhbGVdIC0gdGhlIGxvY2FsZSBvYmplY3QuIFNlZSBbTG9jYWxlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL0xvY2FsZX1cbiAqIEBwYXJhbSB7MHwxfDJ8M3w0fDV8Nn0gW29wdGlvbnMud2Vla1N0YXJ0c09uPTBdIC0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAgLSBTdW5kYXkpXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy53ZWVrU3RhcnRzT25gIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA2XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIHdlZWtzIGRvZXMgRmVicnVhcnkgMjAxNSBzcGFuP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2Vla3NJbk1vbnRoKG5ldyBEYXRlKDIwMTUsIDEsIDgpKVxuICogLy89PiA0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRoZSB3ZWVrIHN0YXJ0cyBvbiBNb25kYXksXG4gKiAvLyBob3cgbWFueSBjYWxlbmRhciB3ZWVrcyBkb2VzIEp1bHkgMjAxNyBzcGFuP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2Vla3NJbk1vbnRoKG5ldyBEYXRlKDIwMTcsIDYsIDUpLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiA2XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdlZWtzSW5Nb250aChkYXRlLCBvcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICByZXR1cm4gZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyhsYXN0RGF5T2ZNb250aChkYXRlKSwgc3RhcnRPZk1vbnRoKGRhdGUpLCBvcHRpb25zKSArIDE7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc0FmdGVyXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBmaXJzdCBkYXRlIGFmdGVyIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYWZ0ZXIgdGhlIG90aGVyIG9uZSB0byByZXR1cm4gdHJ1ZVxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZVRvQ29tcGFyZSAtIHRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aFxuICogQHJldHVybnMge0Jvb2xlYW59IHRoZSBmaXJzdCBkYXRlIGlzIGFmdGVyIHRoZSBzZWNvbmQgZGF0ZVxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYWZ0ZXIgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIHZhciByZXN1bHQgPSBpc0FmdGVyKG5ldyBEYXRlKDE5ODksIDYsIDEwKSwgbmV3IERhdGUoMTk4NywgMSwgMTEpKVxuICogLy89PiB0cnVlXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBZnRlcihkaXJ0eURhdGUsIGRpcnR5RGF0ZVRvQ29tcGFyZSkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGlydHlEYXRlVG9Db21wYXJlKTtcbiAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpID4gZGF0ZVRvQ29tcGFyZS5nZXRUaW1lKCk7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc0JlZm9yZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYmVmb3JlIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVUb0NvbXBhcmUgLSB0aGUgZGF0ZSB0byBjb21wYXJlIHdpdGhcbiAqIEByZXR1cm5zIHtCb29sZWFufSB0aGUgZmlyc3QgZGF0ZSBpcyBiZWZvcmUgdGhlIHNlY29uZCBkYXRlXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBiZWZvcmUgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIHZhciByZXN1bHQgPSBpc0JlZm9yZShuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0JlZm9yZShkaXJ0eURhdGUsIGRpcnR5RGF0ZVRvQ29tcGFyZSkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGlydHlEYXRlVG9Db21wYXJlKTtcbiAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpIDwgZGF0ZVRvQ29tcGFyZS5nZXRUaW1lKCk7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc1NhbWVNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKT9cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVMZWZ0IC0gdGhlIGZpcnN0IGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVSaWdodCAtIHRoZSBzZWNvbmQgZGF0ZSB0byBjaGVja1xuICogQHJldHVybnMge0Jvb2xlYW59IHRoZSBkYXRlcyBhcmUgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKVxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgMiBTZXB0ZW1iZXIgMjAxNCBhbmQgMjUgU2VwdGVtYmVyIDIwMTQgaW4gdGhlIHNhbWUgbW9udGg/XG4gKiB2YXIgcmVzdWx0ID0gaXNTYW1lTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiksIG5ldyBEYXRlKDIwMTQsIDgsIDI1KSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgMiBTZXB0ZW1iZXIgMjAxNCBhbmQgMjUgU2VwdGVtYmVyIDIwMTUgaW4gdGhlIHNhbWUgbW9udGg/XG4gKiB2YXIgcmVzdWx0ID0gaXNTYW1lTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiksIG5ldyBEYXRlKDIwMTUsIDgsIDI1KSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1NhbWVNb250aChkaXJ0eURhdGVMZWZ0LCBkaXJ0eURhdGVSaWdodCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGVMZWZ0ID0gdG9EYXRlKGRpcnR5RGF0ZUxlZnQpO1xuICB2YXIgZGF0ZVJpZ2h0ID0gdG9EYXRlKGRpcnR5RGF0ZVJpZ2h0KTtcbiAgcmV0dXJuIGRhdGVMZWZ0LmdldEZ1bGxZZWFyKCkgPT09IGRhdGVSaWdodC5nZXRGdWxsWWVhcigpICYmIGRhdGVMZWZ0LmdldE1vbnRoKCkgPT09IGRhdGVSaWdodC5nZXRNb250aCgpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgaXNTYW1lWWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB5ZWFyP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB5ZWFyP1xuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZUxlZnQgLSB0aGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZVJpZ2h0IC0gdGhlIHNlY29uZCBkYXRlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gdGhlIGRhdGVzIGFyZSBpbiB0aGUgc2FtZSB5ZWFyXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSAyIFNlcHRlbWJlciAyMDE0IGFuZCAyNSBTZXB0ZW1iZXIgMjAxNCBpbiB0aGUgc2FtZSB5ZWFyP1xuICogdmFyIHJlc3VsdCA9IGlzU2FtZVllYXIobmV3IERhdGUoMjAxNCwgOCwgMiksIG5ldyBEYXRlKDIwMTQsIDgsIDI1KSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzU2FtZVllYXIoZGlydHlEYXRlTGVmdCwgZGlydHlEYXRlUmlnaHQpIHtcbiAgcmVxdWlyZWRBcmdzKDIsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlTGVmdCA9IHRvRGF0ZShkaXJ0eURhdGVMZWZ0KTtcbiAgdmFyIGRhdGVSaWdodCA9IHRvRGF0ZShkaXJ0eURhdGVSaWdodCk7XG4gIHJldHVybiBkYXRlTGVmdC5nZXRGdWxsWWVhcigpID09PSBkYXRlUmlnaHQuZ2V0RnVsbFllYXIoKTtcbn0iLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0RGF5c0luTW9udGggZnJvbSBcIi4uL2dldERheXNJbk1vbnRoL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBzZXRNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgbW9udGggdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIG1vbnRoIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB7TnVtYmVyfSBtb250aCAtIHRoZSBtb250aCBvZiB0aGUgbmV3IGRhdGVcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgbW9udGggc2V0XG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCBGZWJydWFyeSB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc2V0TW9udGgobmV3IERhdGUoMjAxNCwgOCwgMSksIDEpXG4gKiAvLz0+IFNhdCBGZWIgMDEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldE1vbnRoKGRpcnR5RGF0ZSwgZGlydHlNb250aCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIG1vbnRoID0gdG9JbnRlZ2VyKGRpcnR5TW9udGgpO1xuICB2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgdmFyIGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xuICB2YXIgZGF0ZVdpdGhEZXNpcmVkTW9udGggPSBuZXcgRGF0ZSgwKTtcbiAgZGF0ZVdpdGhEZXNpcmVkTW9udGguc2V0RnVsbFllYXIoeWVhciwgbW9udGgsIDE1KTtcbiAgZGF0ZVdpdGhEZXNpcmVkTW9udGguc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHZhciBkYXlzSW5Nb250aCA9IGdldERheXNJbk1vbnRoKGRhdGVXaXRoRGVzaXJlZE1vbnRoKTsgLy8gU2V0IHRoZSBsYXN0IGRheSBvZiB0aGUgbmV3IG1vbnRoXG4gIC8vIGlmIHRoZSBvcmlnaW5hbCBkYXRlIHdhcyB0aGUgbGFzdCBkYXkgb2YgdGhlIGxvbmdlciBtb250aFxuXG4gIGRhdGUuc2V0TW9udGgobW9udGgsIE1hdGgubWluKGRheSwgZGF5c0luTW9udGgpKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgc2V0WWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgU2V0IHRoZSB5ZWFyIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU2V0IHRoZSB5ZWFyIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB7TnVtYmVyfSB5ZWFyIC0gdGhlIHllYXIgb2YgdGhlIG5ldyBkYXRlXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIHllYXIgc2V0XG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCB5ZWFyIDIwMTMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldFllYXIobmV3IERhdGUoMjAxNCwgOCwgMSksIDIwMTMpXG4gKiAvLz0+IFN1biBTZXAgMDEgMjAxMyAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldFllYXIoZGlydHlEYXRlLCBkaXJ0eVllYXIpIHtcbiAgcmVxdWlyZWRBcmdzKDIsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciB5ZWFyID0gdG9JbnRlZ2VyKGRpcnR5WWVhcik7IC8vIENoZWNrIGlmIGRhdGUgaXMgSW52YWxpZCBEYXRlIGJlY2F1c2UgRGF0ZS5wcm90b3R5cGUuc2V0RnVsbFllYXIgaWdub3JlcyB0aGUgdmFsdWUgb2YgSW52YWxpZCBEYXRlXG5cbiAgaWYgKGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG5cbiAgZGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzU2FtZVllYXIsIHNldE1vbnRoIGFzIHNldERhdGVNb250aCwgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIHRoZSBkcm9wZG93biB0byBuYXZpZ2F0ZSBiZXR3ZWVuIG1vbnRocy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1vbnRoc0Ryb3Bkb3duKHByb3BzKSB7XG4gICAgdmFyIGRpc3BsYXlNb250aCA9IHByb3BzLmRpc3BsYXlNb250aDtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgZnJvbURhdGUgPSBfYS5mcm9tRGF0ZSwgdG9EYXRlID0gX2EudG9EYXRlLCBzdHlsZXMgPSBfYS5zdHlsZXMsIGxvY2FsZSA9IF9hLmxvY2FsZSwgZm9ybWF0TW9udGhDYXB0aW9uID0gX2EuZm9ybWF0dGVycy5mb3JtYXRNb250aENhcHRpb24sIGNsYXNzTmFtZXMgPSBfYS5jbGFzc05hbWVzLCBEcm9wZG93biA9IF9hLmNvbXBvbmVudHMuRHJvcGRvd24sIGxhYmVsTW9udGhEcm9wZG93biA9IF9hLmxhYmVscy5sYWJlbE1vbnRoRHJvcGRvd247XG4gICAgaWYgKCFmcm9tRGF0ZSAmJiAhdG9EYXRlKSB7XG4gICAgICAgIC8vIFRPRE86IHVzZSB0eXBlIGd1YXJkc1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCk7XG4gICAgfVxuICAgIHZhciBkcm9wZG93bk1vbnRocyA9IFtdO1xuICAgIGlmIChmcm9tRGF0ZSAmJiB0b0RhdGUpIHtcbiAgICAgICAgaWYgKGlzU2FtZVllYXIoZnJvbURhdGUsIHRvRGF0ZSkpIHtcbiAgICAgICAgICAgIC8vIG9ubHkgZGlzcGxheSB0aGUgbW9udGhzIGluY2x1ZGVkIGluIHRoZSByYW5nZVxuICAgICAgICAgICAgZm9yICh2YXIgbW9udGggPSBmcm9tRGF0ZS5nZXRNb250aCgpOyBtb250aCA8PSB0b0RhdGUuZ2V0TW9udGgoKTsgbW9udGgrKykge1xuICAgICAgICAgICAgICAgIGRyb3Bkb3duTW9udGhzLnB1c2goc2V0RGF0ZU1vbnRoKHN0YXJ0T2ZNb250aChmcm9tRGF0ZSksIG1vbnRoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBkaXNwbGF5IGFsbCB0aGUgMTIgbW9udGhzXG4gICAgICAgICAgICBmb3IgKHZhciBtb250aCA9IDA7IG1vbnRoIDw9IDExOyBtb250aCsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFueURhdGUgPSBuZXcgRGF0ZSgpOyAvLyBhbnkgZGF0ZSBpcyBPSywgd2UganVzdCBuZWVkIHRoZSB5ZWFyXG4gICAgICAgICAgICAgICAgZHJvcGRvd25Nb250aHMucHVzaChzZXREYXRlTW9udGgoc3RhcnRPZk1vbnRoKGFueURhdGUpLCBtb250aCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBoYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgbmV3TW9udGggPSBzZXREYXRlTW9udGgobmV3IERhdGUoZGlzcGxheU1vbnRoKSwgTnVtYmVyKGUudGFyZ2V0LnZhbHVlKSk7XG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKG5ld01vbnRoKTtcbiAgICB9O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChEcm9wZG93biwgeyBcImFyaWEtbGFiZWxcIjogbGFiZWxNb250aERyb3Bkb3duKCksIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5kcm9wZG93bl9tb250aCwgc3R5bGU6IHN0eWxlcy5kcm9wZG93bl9tb250aCwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgdmFsdWU6IGRpc3BsYXlNb250aC5nZXRNb250aCgpLCBjYXB0aW9uOiBmb3JtYXRNb250aENhcHRpb24oZGlzcGxheU1vbnRoLCB7IGxvY2FsZTogbG9jYWxlIH0pIH0sIGRyb3Bkb3duTW9udGhzLm1hcChmdW5jdGlvbiAobSkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJvcHRpb25cIiwgeyBrZXk6IG0uZ2V0TW9udGgoKSwgdmFsdWU6IG0uZ2V0TW9udGgoKSB9LCBmb3JtYXRNb250aENhcHRpb24obSwgeyBsb2NhbGU6IGxvY2FsZSB9KSkpOyB9KSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9udGhzRHJvcGRvd24uanMubWFwIiwiaW1wb3J0IHsgX19hc3NpZ24gfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuLyoqXG4gKiBSZW5kZXIgYSBidXR0b24gSFRNTCBlbGVtZW50IGFwcGx5aW5nIHRoZSByZXNldCBjbGFzcyBuYW1lLlxuICovXG5leHBvcnQgdmFyIEJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgY2xhc3NOYW1lcyA9IF9hLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9hLnN0eWxlcztcbiAgICB2YXIgY2xhc3NOYW1lc0FyciA9IFtjbGFzc05hbWVzLmJ1dHRvbl9yZXNldCwgY2xhc3NOYW1lcy5idXR0b25dO1xuICAgIGlmIChwcm9wcy5jbGFzc05hbWUpIHtcbiAgICAgICAgY2xhc3NOYW1lc0Fyci5wdXNoKHByb3BzLmNsYXNzTmFtZSk7XG4gICAgfVxuICAgIHZhciBjbGFzc05hbWUgPSBjbGFzc05hbWVzQXJyLmpvaW4oJyAnKTtcbiAgICB2YXIgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3R5bGVzLmJ1dHRvbl9yZXNldCksIHN0eWxlcy5idXR0b24pO1xuICAgIGlmIChwcm9wcy5zdHlsZSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBwcm9wcy5zdHlsZSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgcmVmOiByZWYsIHR5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzdHlsZTogc3R5bGUgfSkpKTtcbn0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QnV0dG9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbi8qKiBBIGNvbXBvbmVudCByZW5kZXJpbmcgdGhlIG5hdmlnYXRpb24gYnV0dG9ucyBvciB0aGUgZHJvcC1kb3ducy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBOYXZpZ2F0aW9uKHByb3BzKSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBfYiA9IHVzZURheVBpY2tlcigpLCBkaXIgPSBfYi5kaXIsIGxvY2FsZSA9IF9iLmxvY2FsZSwgY2xhc3NOYW1lcyA9IF9iLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9iLnN0eWxlcywgX2MgPSBfYi5sYWJlbHMsIGxhYmVsUHJldmlvdXMgPSBfYy5sYWJlbFByZXZpb3VzLCBsYWJlbE5leHQgPSBfYy5sYWJlbE5leHQsIF9kID0gX2IuY29tcG9uZW50cywgSWNvblJpZ2h0ID0gX2QuSWNvblJpZ2h0LCBJY29uTGVmdCA9IF9kLkljb25MZWZ0O1xuICAgIHZhciBvblByZXZpb3VzQ2xpY2sgPSBwcm9wcy5vblByZXZpb3VzQ2xpY2ssIG9uTmV4dENsaWNrID0gcHJvcHMub25OZXh0Q2xpY2s7XG4gICAgaWYgKGRpciA9PT0gJ3J0bCcpIHtcbiAgICAgICAgX2EgPSBbb25QcmV2aW91c0NsaWNrLCBvbk5leHRDbGlja10sIG9uTmV4dENsaWNrID0gX2FbMF0sIG9uUHJldmlvdXNDbGljayA9IF9hWzFdO1xuICAgIH1cbiAgICB2YXIgcHJldmlvdXNNb250aCA9IHByb3BzLnByZXZpb3VzTW9udGgsIG5leHRNb250aCA9IHByb3BzLm5leHRNb250aDtcbiAgICB2YXIgcHJldmlvdXNMYWJlbCA9IGxhYmVsUHJldmlvdXMocHJldmlvdXNNb250aCwgeyBsb2NhbGU6IGxvY2FsZSB9KTtcbiAgICB2YXIgcHJldmlvdXNDbGFzc05hbWUgPSBbXG4gICAgICAgIGNsYXNzTmFtZXMubmF2X2J1dHRvbixcbiAgICAgICAgY2xhc3NOYW1lcy5uYXZfYnV0dG9uX3ByZXZpb3VzXG4gICAgXS5qb2luKCcgJyk7XG4gICAgdmFyIG5leHRMYWJlbCA9IGxhYmVsTmV4dChuZXh0TW9udGgsIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgdmFyIG5leHRDbGFzc05hbWUgPSBbXG4gICAgICAgIGNsYXNzTmFtZXMubmF2X2J1dHRvbixcbiAgICAgICAgY2xhc3NOYW1lcy5uYXZfYnV0dG9uX25leHRcbiAgICBdLmpvaW4oJyAnKTtcbiAgICBpZiAoIW5leHRNb250aCAmJiAhcHJldmlvdXNNb250aCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5uYXYsIHN0eWxlOiBzdHlsZXMubmF2IH0sXG4gICAgICAgICFwcm9wcy5oaWRlUHJldmlvdXMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBwcmV2aW91c0xhYmVsLCBjbGFzc05hbWU6IHByZXZpb3VzQ2xhc3NOYW1lLCBzdHlsZTogc3R5bGVzLm5hdl9idXR0b25fbmV4dCwgZGlzYWJsZWQ6ICFwcmV2aW91c01vbnRoLCBvbkNsaWNrOiBkaXIgPT09ICdydGwnID8gb25OZXh0Q2xpY2sgOiBvblByZXZpb3VzQ2xpY2sgfSwgZGlyID09PSAncnRsJyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25SaWdodCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMubmF2X2ljb24sIHN0eWxlOiBzdHlsZXMubmF2X2ljb24gfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkxlZnQsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm5hdl9pY29uLCBzdHlsZTogc3R5bGVzLm5hdl9pY29uIH0pKSkpLFxuICAgICAgICAhcHJvcHMuaGlkZU5leHQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBuZXh0TGFiZWwsIGNsYXNzTmFtZTogbmV4dENsYXNzTmFtZSwgc3R5bGU6IHN0eWxlcy5uYXZfYnV0dG9uX25leHQsIGRpc2FibGVkOiAhbmV4dE1vbnRoLCBvbkNsaWNrOiBkaXIgPT09ICdydGwnID8gb25QcmV2aW91c0NsaWNrIDogb25OZXh0Q2xpY2sgfSwgZGlyID09PSAncnRsJyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25MZWZ0LCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5uYXZfaWNvbiwgc3R5bGU6IHN0eWxlcy5uYXZfaWNvbiB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uUmlnaHQsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm5hdl9pY29uLCBzdHlsZTogc3R5bGVzLm5hdl9pY29uIH0pKSkpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZpZ2F0aW9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzZXRZZWFyLCBzdGFydE9mWWVhciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG4vKipcbiAqIFJlbmRlciBhIGRyb3Bkb3duIHRvIGNoYW5nZSB0aGUgeWVhci4gVGFrZSBpbiBhY2NvdW50IHRoZSBgbmF2LmZyb21EYXRlYCBhbmRcbiAqIGB0b0RhdGVgIGZyb20gY29udGV4dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFllYXJzRHJvcGRvd24ocHJvcHMpIHtcbiAgICB2YXIgZGlzcGxheU1vbnRoID0gcHJvcHMuZGlzcGxheU1vbnRoO1xuICAgIHZhciBfYSA9IHVzZURheVBpY2tlcigpLCBmcm9tRGF0ZSA9IF9hLmZyb21EYXRlLCB0b0RhdGUgPSBfYS50b0RhdGUsIGxvY2FsZSA9IF9hLmxvY2FsZSwgc3R5bGVzID0gX2Euc3R5bGVzLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgRHJvcGRvd24gPSBfYS5jb21wb25lbnRzLkRyb3Bkb3duLCBmb3JtYXRZZWFyQ2FwdGlvbiA9IF9hLmZvcm1hdHRlcnMuZm9ybWF0WWVhckNhcHRpb24sIGxhYmVsWWVhckRyb3Bkb3duID0gX2EubGFiZWxzLmxhYmVsWWVhckRyb3Bkb3duO1xuICAgIHZhciB5ZWFycyA9IFtdO1xuICAgIGlmIChmcm9tRGF0ZSAmJiB0b0RhdGUpIHtcbiAgICAgICAgdmFyIGZyb21ZZWFyID0gZnJvbURhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgdmFyIHRvWWVhciA9IHRvRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICBmb3IgKHZhciB5ZWFyID0gZnJvbVllYXI7IHllYXIgPD0gdG9ZZWFyOyB5ZWFyKyspIHtcbiAgICAgICAgICAgIHllYXJzLnB1c2goc2V0WWVhcihzdGFydE9mWWVhcihuZXcgRGF0ZSgpKSwgeWVhcikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBoYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgbmV3TW9udGggPSBzZXRZZWFyKG5ldyBEYXRlKGRpc3BsYXlNb250aCksIE51bWJlcihlLnRhcmdldC52YWx1ZSkpO1xuICAgICAgICBwcm9wcy5vbkNoYW5nZShuZXdNb250aCk7XG4gICAgfTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRHJvcGRvd24sIHsgXCJhcmlhLWxhYmVsXCI6IGxhYmVsWWVhckRyb3Bkb3duKCksIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5kcm9wZG93bl9tb250aCwgc3R5bGU6IHN0eWxlcy5kcm9wZG93bl9tb250aCwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgdmFsdWU6IGRpc3BsYXlNb250aC5nZXRGdWxsWWVhcigpLCBjYXB0aW9uOiBmb3JtYXRZZWFyQ2FwdGlvbihkaXNwbGF5TW9udGgsIHsgbG9jYWxlOiBsb2NhbGUgfSkgfSwgeWVhcnMubWFwKGZ1bmN0aW9uICh5ZWFyKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcIm9wdGlvblwiLCB7IGtleTogeWVhci5nZXRGdWxsWWVhcigpLCB2YWx1ZTogeWVhci5nZXRGdWxsWWVhcigpIH0sIGZvcm1hdFllYXJDYXB0aW9uKHllYXIsIHsgbG9jYWxlOiBsb2NhbGUgfSkpKTsgfSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVllYXJzRHJvcGRvd24uanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogSGVscGVyIGhvb2sgZm9yIHVzaW5nIGNvbnRyb2xsZWQvdW5jb250cm9sbGVkIHZhbHVlcyBmcm9tIGEgY29tcG9uZW50IHByb3BzLlxuICpcbiAqIFdoZW4gdGhlIHZhbHVlIGlzIG5vdCBjb250cm9sbGVkLCBwYXNzIGB1bmRlZmluZWRgIGFzIGBjb250cm9sbGVkVmFsdWVgIGFuZFxuICogdXNlIHRoZSByZXR1cm5lZCBzZXR0ZXIgdG8gdXBkYXRlIGl0LlxuICpcbiAqIFdoZW4gdGhlIHZhbHVlIGlzIGNvbnRyb2xsZWQsIHBhc3MgdGhlIGNvbnRyb2xsZWQgdmFsdWUgYXMgc2Vjb25kXG4gKiBhcmd1bWVudCwgd2hpY2ggd2lsbCBiZSBhbHdheXMgcmV0dXJuZWQgYXMgYHZhbHVlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRWYWx1ZShkZWZhdWx0VmFsdWUsIGNvbnRyb2xsZWRWYWx1ZSkge1xuICAgIHZhciBfYSA9IFJlYWN0LnVzZVN0YXRlKGRlZmF1bHRWYWx1ZSksIHVuY29udHJvbGxlZFZhbHVlID0gX2FbMF0sIHNldFZhbHVlID0gX2FbMV07XG4gICAgdmFyIHZhbHVlID0gY29udHJvbGxlZFZhbHVlID09PSB1bmRlZmluZWQgPyB1bmNvbnRyb2xsZWRWYWx1ZSA6IGNvbnRyb2xsZWRWYWx1ZTtcbiAgICByZXR1cm4gW3ZhbHVlLCBzZXRWYWx1ZV07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VDb250cm9sbGVkVmFsdWUuanMubWFwIiwiaW1wb3J0IHsgYWRkTW9udGhzLCBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocywgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqIFJldHVybiB0aGUgaW5pdGlhbCBtb250aCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIG9wdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbE1vbnRoKGNvbnRleHQpIHtcbiAgICB2YXIgbW9udGggPSBjb250ZXh0Lm1vbnRoLCBkZWZhdWx0TW9udGggPSBjb250ZXh0LmRlZmF1bHRNb250aCwgdG9kYXkgPSBjb250ZXh0LnRvZGF5O1xuICAgIHZhciBpbml0aWFsTW9udGggPSBtb250aCB8fCBkZWZhdWx0TW9udGggfHwgdG9kYXkgfHwgbmV3IERhdGUoKTtcbiAgICB2YXIgdG9EYXRlID0gY29udGV4dC50b0RhdGUsIGZyb21EYXRlID0gY29udGV4dC5mcm9tRGF0ZSwgX2EgPSBjb250ZXh0Lm51bWJlck9mTW9udGhzLCBudW1iZXJPZk1vbnRocyA9IF9hID09PSB2b2lkIDAgPyAxIDogX2E7XG4gICAgLy8gRml4IHRoZSBpbml0aWFsTW9udGggaWYgaXMgYWZ0ZXIgdGhlIHRvLWRhdGVcbiAgICBpZiAodG9EYXRlICYmIGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzKHRvRGF0ZSwgaW5pdGlhbE1vbnRoKSA8IDApIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IC0xICogKG51bWJlck9mTW9udGhzIC0gMSk7XG4gICAgICAgIGluaXRpYWxNb250aCA9IGFkZE1vbnRocyh0b0RhdGUsIG9mZnNldCk7XG4gICAgfVxuICAgIC8vIEZpeCB0aGUgaW5pdGlhbE1vbnRoIGlmIGlzIGJlZm9yZSB0aGUgZnJvbS1kYXRlXG4gICAgaWYgKGZyb21EYXRlICYmIGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzKGluaXRpYWxNb250aCwgZnJvbURhdGUpIDwgMCkge1xuICAgICAgICBpbml0aWFsTW9udGggPSBmcm9tRGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0T2ZNb250aChpbml0aWFsTW9udGgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0SW5pdGlhbE1vbnRoLmpzLm1hcCIsImltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkVmFsdWUgfSBmcm9tICcuLi8uLi9ob29rcy91c2VDb250cm9sbGVkVmFsdWUnO1xuaW1wb3J0IHsgZ2V0SW5pdGlhbE1vbnRoIH0gZnJvbSAnLi91dGlscy9nZXRJbml0aWFsTW9udGgnO1xuLyoqIENvbnRyb2xzIHRoZSBuYXZpZ2F0aW9uIHN0YXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU5hdmlnYXRpb25TdGF0ZSgpIHtcbiAgICB2YXIgY29udGV4dCA9IHVzZURheVBpY2tlcigpO1xuICAgIHZhciBpbml0aWFsTW9udGggPSBnZXRJbml0aWFsTW9udGgoY29udGV4dCk7XG4gICAgdmFyIF9hID0gdXNlQ29udHJvbGxlZFZhbHVlKGluaXRpYWxNb250aCwgY29udGV4dC5tb250aCksIG1vbnRoID0gX2FbMF0sIHNldE1vbnRoID0gX2FbMV07XG4gICAgdmFyIGdvVG9Nb250aCA9IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmRpc2FibGVOYXZpZ2F0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRNb250aChkYXRlKTtcbiAgICB9O1xuICAgIHJldHVybiBbbW9udGgsIGdvVG9Nb250aF07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VOYXZpZ2F0aW9uU3RhdGUuanMubWFwIiwiaW1wb3J0IHsgYWRkTW9udGhzLCBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocywgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqXG4gKiBSZXR1cm4gdGhlIG1vbnRocyB0byBkaXNwbGF5IGluIHRoZSBjb21wb25lbnQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2ZcbiAqIG1vbnRocyBhbmQgdGhlIGZyb20vdG8gZGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3BsYXlNb250aHMobW9udGgsIF9hKSB7XG4gICAgdmFyIHJldmVyc2VNb250aHMgPSBfYS5yZXZlcnNlTW9udGhzLCBudW1iZXJPZk1vbnRocyA9IF9hLm51bWJlck9mTW9udGhzO1xuICAgIHZhciBzdGFydCA9IHN0YXJ0T2ZNb250aChtb250aCk7XG4gICAgdmFyIGVuZCA9IHN0YXJ0T2ZNb250aChhZGRNb250aHMoc3RhcnQsIG51bWJlck9mTW9udGhzKSk7XG4gICAgdmFyIG1vbnRoc0RpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyhlbmQsIHN0YXJ0KTtcbiAgICB2YXIgbW9udGhzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb250aHNEaWZmOyBpKyspIHtcbiAgICAgICAgdmFyIG5leHRNb250aCA9IGFkZE1vbnRocyhzdGFydCwgaSk7XG4gICAgICAgIG1vbnRocy5wdXNoKG5leHRNb250aCk7XG4gICAgfVxuICAgIGlmIChyZXZlcnNlTW9udGhzKVxuICAgICAgICBtb250aHMgPSBtb250aHMucmV2ZXJzZSgpO1xuICAgIHJldHVybiBtb250aHM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXREaXNwbGF5TW9udGhzLmpzLm1hcCIsImltcG9ydCB7IGFkZE1vbnRocywgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMsIHN0YXJ0T2ZNb250aCB9IGZyb20gJ2RhdGUtZm5zJztcbi8qKlxuICogUmV0dXJucyB0aGUgbmV4dCBtb250aCB0aGUgdXNlciBjYW4gbmF2aWdhdGUgdG8gYWNjb3JkaW5nIHRvIHRoZSBnaXZlblxuICogb3B0aW9ucy5cbiAqXG4gKiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBuZXh0IG1vbnRoIGlzIG5vdCBhbHdheXMgdGhlIG5leHQgY2FsZW5kYXIgbW9udGg6XG4gKlxuICogLSBpZiBhZnRlciB0aGUgYHRvRGF0ZWAgcmFuZ2UsIGlzIHVuZGVmaW5lZDtcbiAqIC0gaWYgdGhlIG5hdmlnYXRpb24gaXMgcGFnZWQsIGlzIHRoZSBudW1iZXIgb2YgbW9udGhzIGRpc3BsYXllZCBhaGVhZC5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0TW9udGgoc3RhcnRpbmdNb250aCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmRpc2FibGVOYXZpZ2F0aW9uKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHZhciB0b0RhdGUgPSBvcHRpb25zLnRvRGF0ZSwgcGFnZWROYXZpZ2F0aW9uID0gb3B0aW9ucy5wYWdlZE5hdmlnYXRpb24sIF9hID0gb3B0aW9ucy5udW1iZXJPZk1vbnRocywgbnVtYmVyT2ZNb250aHMgPSBfYSA9PT0gdm9pZCAwID8gMSA6IF9hO1xuICAgIHZhciBvZmZzZXQgPSBwYWdlZE5hdmlnYXRpb24gPyBudW1iZXJPZk1vbnRocyA6IDE7XG4gICAgdmFyIG1vbnRoID0gc3RhcnRPZk1vbnRoKHN0YXJ0aW5nTW9udGgpO1xuICAgIGlmICghdG9EYXRlKSB7XG4gICAgICAgIHJldHVybiBhZGRNb250aHMobW9udGgsIG9mZnNldCk7XG4gICAgfVxuICAgIHZhciBtb250aHNEaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHModG9EYXRlLCBzdGFydGluZ01vbnRoKTtcbiAgICBpZiAobW9udGhzRGlmZiA8IG51bWJlck9mTW9udGhzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIEp1bXAgZm9yd2FyZCBhcyB0aGUgbnVtYmVyIG9mIG1vbnRocyB3aGVuIHBhZ2VkIG5hdmlnYXRpb25cbiAgICByZXR1cm4gYWRkTW9udGhzKG1vbnRoLCBvZmZzZXQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0TmV4dE1vbnRoLmpzLm1hcCIsImltcG9ydCB7IGFkZE1vbnRocywgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMsIHN0YXJ0T2ZNb250aCB9IGZyb20gJ2RhdGUtZm5zJztcbi8qKlxuICogUmV0dXJucyB0aGUgbmV4dCBwcmV2aW91cyB0aGUgdXNlciBjYW4gbmF2aWdhdGUgdG8sIGFjY29yZGluZyB0byB0aGUgZ2l2ZW5cbiAqIG9wdGlvbnMuXG4gKlxuICogUGxlYXNlIG5vdGUgdGhhdCB0aGUgcHJldmlvdXMgbW9udGggaXMgbm90IGFsd2F5cyB0aGUgcHJldmlvdXMgY2FsZW5kYXJcbiAqIG1vbnRoOlxuICpcbiAqIC0gaWYgYmVmb3JlIHRoZSBgZnJvbURhdGVgIGRhdGUsIGlzIGB1bmRlZmluZWRgO1xuICogLSBpZiB0aGUgbmF2aWdhdGlvbiBpcyBwYWdlZCwgaXMgdGhlIG51bWJlciBvZiBtb250aHMgZGlzcGxheWVkIGJlZm9yZS5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c01vbnRoKHN0YXJ0aW5nTW9udGgsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5kaXNhYmxlTmF2aWdhdGlvbikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB2YXIgZnJvbURhdGUgPSBvcHRpb25zLmZyb21EYXRlLCBwYWdlZE5hdmlnYXRpb24gPSBvcHRpb25zLnBhZ2VkTmF2aWdhdGlvbiwgX2EgPSBvcHRpb25zLm51bWJlck9mTW9udGhzLCBudW1iZXJPZk1vbnRocyA9IF9hID09PSB2b2lkIDAgPyAxIDogX2E7XG4gICAgdmFyIG9mZnNldCA9IHBhZ2VkTmF2aWdhdGlvbiA/IG51bWJlck9mTW9udGhzIDogMTtcbiAgICB2YXIgbW9udGggPSBzdGFydE9mTW9udGgoc3RhcnRpbmdNb250aCk7XG4gICAgaWYgKCFmcm9tRGF0ZSkge1xuICAgICAgICByZXR1cm4gYWRkTW9udGhzKG1vbnRoLCAtb2Zmc2V0KTtcbiAgICB9XG4gICAgdmFyIG1vbnRoc0RpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyhtb250aCwgZnJvbURhdGUpO1xuICAgIGlmIChtb250aHNEaWZmIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gSnVtcCBiYWNrIGFzIHRoZSBudW1iZXIgb2YgbW9udGhzIHdoZW4gcGFnZWQgbmF2aWdhdGlvblxuICAgIHJldHVybiBhZGRNb250aHMobW9udGgsIC1vZmZzZXQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0UHJldmlvdXNNb250aC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vRGF5UGlja2VyJztcbmltcG9ydCB7IHVzZU5hdmlnYXRpb25TdGF0ZSB9IGZyb20gJy4vdXNlTmF2aWdhdGlvblN0YXRlJztcbmltcG9ydCB7IGdldERpc3BsYXlNb250aHMgfSBmcm9tICcuL3V0aWxzL2dldERpc3BsYXlNb250aHMnO1xuaW1wb3J0IHsgZ2V0TmV4dE1vbnRoIH0gZnJvbSAnLi91dGlscy9nZXROZXh0TW9udGgnO1xuaW1wb3J0IHsgZ2V0UHJldmlvdXNNb250aCB9IGZyb20gJy4vdXRpbHMvZ2V0UHJldmlvdXNNb250aCc7XG4vKipcbiAqIFRoZSBOYXZpZ2F0aW9uIGNvbnRleHQgc2hhcmVzIGRldGFpbHMgYWJvdXQgdGhlIG1vbnRocyBiZWluZyBuYXZpZ2F0ZWQgaW4gRGF5UGlja2VyLlxuICpcbiAqIEFjY2VzcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VOYXZpZ2F0aW9uXV0gaG9vay5cbiAqL1xuZXhwb3J0IHZhciBOYXZpZ2F0aW9uQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbi8qKiBQcm92aWRlcyB0aGUgdmFsdWVzIGZvciB0aGUgW1tOYXZpZ2F0aW9uQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE5hdmlnYXRpb25Qcm92aWRlcihwcm9wcykge1xuICAgIHZhciBjb250ZXh0ID0gdXNlRGF5UGlja2VyKCk7XG4gICAgdmFyIF9hID0gdXNlTmF2aWdhdGlvblN0YXRlKCksIG1vbnRoID0gX2FbMF0sIGdvVG9Nb250aCA9IF9hWzFdO1xuICAgIHZhciBkaXNwbGF5TW9udGhzID0gZ2V0RGlzcGxheU1vbnRocyhtb250aCwgY29udGV4dCk7XG4gICAgdmFyIG5leHRNb250aCA9IGdldE5leHRNb250aChtb250aCwgY29udGV4dCk7XG4gICAgdmFyIHByZXZpb3VzTW9udGggPSBnZXRQcmV2aW91c01vbnRoKG1vbnRoLCBjb250ZXh0KTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmF2aWdhdGlvbkNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHtcbiAgICAgICAgICAgIG1vbnRoOiBtb250aCxcbiAgICAgICAgICAgIGRpc3BsYXlNb250aHM6IGRpc3BsYXlNb250aHMsXG4gICAgICAgICAgICBnb1RvTW9udGg6IGdvVG9Nb250aCxcbiAgICAgICAgICAgIHByZXZpb3VzTW9udGg6IHByZXZpb3VzTW9udGgsXG4gICAgICAgICAgICBuZXh0TW9udGg6IG5leHRNb250aFxuICAgICAgICB9IH0sIHByb3BzLmNoaWxkcmVuKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZpZ2F0aW9uQ29udGV4dC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHQgfSBmcm9tICcuL05hdmlnYXRpb25Db250ZXh0Jztcbi8qKiBIb29rIHRvIGFjY2VzcyB0aGUgW1tOYXZpZ2F0aW9uQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU5hdmlnYXRpb24oKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KE5hdmlnYXRpb25Db250ZXh0KTtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1c2VOYXZpZ2F0aW9uIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBOYXZpZ2F0aW9uUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VOYXZpZ2F0aW9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc1NhbWVNb250aCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IE1vbnRoc0Ryb3Bkb3duIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Nb250aHNEcm9wZG93bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9OYXZpZ2F0aW9uJztcbmltcG9ydCB7IFllYXJzRHJvcGRvd24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1llYXJzRHJvcGRvd24nO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi8uLi9jb250ZXh0cy9OYXZpZ2F0aW9uJztcbi8qKlxuICogUmVuZGVyIHRoZSBjYXB0aW9uIG9mIGEgbW9udGgsIHdoaWNoIGluY2x1ZGVzIHRpdGxlIGFuZCBuYXZpZ2F0aW9uIGJ1dHRvbnMuXG4gKiBUaGUgY2FwdGlvbiBoYXMgYSBkaWZmZXJlbnQgbGF5b3V0IHdoZW4gc2V0dGluZyB0aGUgW1tEYXlQaWNrZXJQcm9wcy5jYXB0aW9uTGF5b3V0XV0gcHJvcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhcHRpb24ocHJvcHMpIHtcbiAgICB2YXIgX2E7XG4gICAgdmFyIGRpc3BsYXlNb250aCA9IHByb3BzLmRpc3BsYXlNb250aDtcbiAgICB2YXIgY29udGV4dCA9IHVzZURheVBpY2tlcigpO1xuICAgIHZhciBjbGFzc05hbWVzID0gY29udGV4dC5jbGFzc05hbWVzLCBudW1iZXJPZk1vbnRocyA9IGNvbnRleHQubnVtYmVyT2ZNb250aHMsIGRpc2FibGVOYXZpZ2F0aW9uID0gY29udGV4dC5kaXNhYmxlTmF2aWdhdGlvbiwgc3R5bGVzID0gY29udGV4dC5zdHlsZXMsIGNhcHRpb25MYXlvdXQgPSBjb250ZXh0LmNhcHRpb25MYXlvdXQsIG9uTW9udGhDaGFuZ2UgPSBjb250ZXh0Lm9uTW9udGhDaGFuZ2UsIGRpciA9IGNvbnRleHQuZGlyLCBDYXB0aW9uTGFiZWwgPSBjb250ZXh0LmNvbXBvbmVudHMuQ2FwdGlvbkxhYmVsO1xuICAgIHZhciBfYiA9IHVzZU5hdmlnYXRpb24oKSwgcHJldmlvdXNNb250aCA9IF9iLnByZXZpb3VzTW9udGgsIG5leHRNb250aCA9IF9iLm5leHRNb250aCwgZ29Ub01vbnRoID0gX2IuZ29Ub01vbnRoLCBkaXNwbGF5TW9udGhzID0gX2IuZGlzcGxheU1vbnRocztcbiAgICB2YXIgaGFuZGxlUHJldmlvdXNDbGljayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFwcmV2aW91c01vbnRoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBnb1RvTW9udGgocHJldmlvdXNNb250aCk7XG4gICAgICAgIG9uTW9udGhDaGFuZ2UgPT09IG51bGwgfHwgb25Nb250aENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Nb250aENoYW5nZShwcmV2aW91c01vbnRoKTtcbiAgICB9O1xuICAgIHZhciBoYW5kbGVOZXh0Q2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghbmV4dE1vbnRoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBnb1RvTW9udGgobmV4dE1vbnRoKTtcbiAgICAgICAgb25Nb250aENoYW5nZSA9PT0gbnVsbCB8fCBvbk1vbnRoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk1vbnRoQ2hhbmdlKG5leHRNb250aCk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlTW9udGhDaGFuZ2UgPSBmdW5jdGlvbiAobmV3TW9udGgpIHtcbiAgICAgICAgZ29Ub01vbnRoKG5ld01vbnRoKTtcbiAgICAgICAgb25Nb250aENoYW5nZSA9PT0gbnVsbCB8fCBvbk1vbnRoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk1vbnRoQ2hhbmdlKG5ld01vbnRoKTtcbiAgICB9O1xuICAgIHZhciBkaXNwbGF5SW5kZXggPSBkaXNwbGF5TW9udGhzLmZpbmRJbmRleChmdW5jdGlvbiAobW9udGgpIHtcbiAgICAgICAgcmV0dXJuIGlzU2FtZU1vbnRoKGRpc3BsYXlNb250aCwgbW9udGgpO1xuICAgIH0pO1xuICAgIHZhciBpc0ZpcnN0ID0gZGlzcGxheUluZGV4ID09PSAwO1xuICAgIHZhciBpc0xhc3QgPSBkaXNwbGF5SW5kZXggPT09IGRpc3BsYXlNb250aHMubGVuZ3RoIC0gMTtcbiAgICBpZiAoZGlyID09PSAncnRsJykge1xuICAgICAgICBfYSA9IFtpc0ZpcnN0LCBpc0xhc3RdLCBpc0xhc3QgPSBfYVswXSwgaXNGaXJzdCA9IF9hWzFdO1xuICAgIH1cbiAgICB2YXIgaGlkZU5leHQgPSBudW1iZXJPZk1vbnRocyA+IDEgJiYgKGlzRmlyc3QgfHwgIWlzTGFzdCk7XG4gICAgdmFyIGhpZGVQcmV2aW91cyA9IG51bWJlck9mTW9udGhzID4gMSAmJiAoaXNMYXN0IHx8ICFpc0ZpcnN0KTtcbiAgICB2YXIgY2FwdGlvbkxhYmVsID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FwdGlvbkxhYmVsLCB7IGlkOiBwcm9wcy5pZCwgZGlzcGxheU1vbnRoOiBkaXNwbGF5TW9udGggfSkpO1xuICAgIHZhciBjYXB0aW9uQ29udGVudDtcbiAgICBpZiAoZGlzYWJsZU5hdmlnYXRpb24pIHtcbiAgICAgICAgY2FwdGlvbkNvbnRlbnQgPSBjYXB0aW9uTGFiZWw7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNhcHRpb25MYXlvdXQgPT09ICdkcm9wZG93bicpIHtcbiAgICAgICAgY2FwdGlvbkNvbnRlbnQgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5jYXB0aW9uX2Ryb3Bkb3ducywgc3R5bGU6IHN0eWxlcy5jYXB0aW9uX2Ryb3Bkb3ducyB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy52aGlkZGVuIH0sIGNhcHRpb25MYWJlbCksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE1vbnRoc0Ryb3Bkb3duLCB7IG9uQ2hhbmdlOiBoYW5kbGVNb250aENoYW5nZSwgZGlzcGxheU1vbnRoOiBkaXNwbGF5TW9udGggfSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFllYXJzRHJvcGRvd24sIHsgb25DaGFuZ2U6IGhhbmRsZU1vbnRoQ2hhbmdlLCBkaXNwbGF5TW9udGg6IGRpc3BsYXlNb250aCB9KSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2FwdGlvbkNvbnRlbnQgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgICAgIGNhcHRpb25MYWJlbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmF2aWdhdGlvbiwgeyBkaXNwbGF5TW9udGg6IGRpc3BsYXlNb250aCwgaGlkZU5leHQ6IGhpZGVOZXh0LCBoaWRlUHJldmlvdXM6IGhpZGVQcmV2aW91cywgbmV4dE1vbnRoOiBuZXh0TW9udGgsIHByZXZpb3VzTW9udGg6IHByZXZpb3VzTW9udGgsIG9uUHJldmlvdXNDbGljazogaGFuZGxlUHJldmlvdXNDbGljaywgb25OZXh0Q2xpY2s6IGhhbmRsZU5leHRDbGljayB9KSkpO1xuICAgIH1cbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMuY2FwdGlvbiwgc3R5bGU6IHN0eWxlcy5jYXB0aW9uIH0sIGNhcHRpb25Db250ZW50KSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DYXB0aW9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuLyoqIFJlbmRlciB0aGUgY2FwdGlvbiBmb3IgdGhlIGRpc3BsYXllZCBtb250aC4gVGhpcyBjb21wb25lbnQgaXMgdXNlZCB3aGVuIGBjYXB0aW9uTGF5b3V0PVwiYnV0dG9uc1wiYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDYXB0aW9uTGFiZWwocHJvcHMpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgbG9jYWxlID0gX2EubG9jYWxlLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGVzID0gX2Euc3R5bGVzLCBmb3JtYXRDYXB0aW9uID0gX2EuZm9ybWF0dGVycy5mb3JtYXRDYXB0aW9uO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImgyXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmNhcHRpb25fbGFiZWwsIHN0eWxlOiBzdHlsZXMuY2FwdGlvbl9sYWJlbCwgXCJhcmlhLWxpdmVcIjogXCJwb2xpdGVcIiwgXCJhcmlhLWF0b21pY1wiOiBcInRydWVcIiwgaWQ6IHByb3BzLmlkIH0sIGZvcm1hdENhcHRpb24ocHJvcHMuZGlzcGxheU1vbnRoLCB7IGxvY2FsZTogbG9jYWxlIH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DYXB0aW9uTGFiZWwuanMubWFwIiwiLyoqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBwcm9wcyBhcmUgb2YgdHlwZSBbW0RheVBpY2tlck11bHRpcGxlXV0uICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXlQaWNrZXJNdWx0aXBsZShwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy5tb2RlID09PSAnbXVsdGlwbGUnO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5UGlja2VyTXVsdGlwbGUuanMubWFwIiwiaW1wb3J0IHsgX19zcHJlYWRBcnJheSB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzU2FtZURheSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGlzRGF5UGlja2VyTXVsdGlwbGUgfSBmcm9tICcuLi8uLi90eXBlcy9EYXlQaWNrZXJNdWx0aXBsZSc7XG4vKipcbiAqIFRoZSBTZWxlY3RNdWx0aXBsZSBjb250ZXh0IHNoYXJlcyBkZXRhaWxzIGFib3V0IHRoZSBzZWxlY3RlZCBkYXlzIHdoZW4gaW5cbiAqIG11bHRpcGxlIHNlbGVjdGlvbiBtb2RlLlxuICpcbiAqIEFjY2VzcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VTZWxlY3RNdWx0aXBsZV1dIGhvb2suXG4gKi9cbmV4cG9ydCB2YXIgU2VsZWN0TXVsdGlwbGVDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqIFByb3ZpZGVzIHRoZSB2YWx1ZXMgZm9yIHRoZSBbW1NlbGVjdE11bHRpcGxlQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdE11bHRpcGxlUHJvdmlkZXIocHJvcHMpIHtcbiAgICBpZiAoIWlzRGF5UGlja2VyTXVsdGlwbGUocHJvcHMuaW5pdGlhbFByb3BzKSkge1xuICAgICAgICB2YXIgZW1wdHlDb250ZXh0VmFsdWUgPSB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbW9kaWZpZXJzOiB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGVtcHR5Q29udGV4dFZhbHVlIH0sIHByb3BzLmNoaWxkcmVuKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZVByb3ZpZGVySW50ZXJuYWwsIHsgaW5pdGlhbFByb3BzOiBwcm9wcy5pbml0aWFsUHJvcHMsIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0TXVsdGlwbGVQcm92aWRlckludGVybmFsKF9hKSB7XG4gICAgdmFyIGluaXRpYWxQcm9wcyA9IF9hLmluaXRpYWxQcm9wcywgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbjtcbiAgICB2YXIgc2VsZWN0ZWQgPSBpbml0aWFsUHJvcHMuc2VsZWN0ZWQ7XG4gICAgdmFyIG9uRGF5Q2xpY2sgPSBmdW5jdGlvbiAoZGF5LCBtb2RpZmllcnMsIGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9hID0gaW5pdGlhbFByb3BzLm9uRGF5Q2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGluaXRpYWxQcm9wcywgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgICAgICB2YXIgaXNNaW5TZWxlY3RlZCA9IEJvb2xlYW4oaW5pdGlhbFByb3BzLm1pbiAmJlxuICAgICAgICAgICAgbW9kaWZpZXJzLnNlbGVjdGVkICYmXG4gICAgICAgICAgICBzZWxlY3RlZCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWQubGVuZ3RoID09PSBpbml0aWFsUHJvcHMubWluKTtcbiAgICAgICAgaWYgKGlzTWluU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNNYXhTZWxlY3RlZCA9IEJvb2xlYW4oaW5pdGlhbFByb3BzLm1heCAmJlxuICAgICAgICAgICAgIW1vZGlmaWVycy5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkLmxlbmd0aCA9PT0gaW5pdGlhbFByb3BzLm1heCk7XG4gICAgICAgIGlmIChpc01heFNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRheXMgPSBzZWxlY3RlZCA/IF9fc3ByZWFkQXJyYXkoW10sIHNlbGVjdGVkLCB0cnVlKSA6IFtdO1xuICAgICAgICBpZiAobW9kaWZpZXJzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBkYXlzLmZpbmRJbmRleChmdW5jdGlvbiAoc2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTYW1lRGF5KGRheSwgc2VsZWN0ZWREYXkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkYXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkYXlzLnB1c2goZGF5KTtcbiAgICAgICAgfVxuICAgICAgICAoX2IgPSBpbml0aWFsUHJvcHMub25TZWxlY3QpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKGluaXRpYWxQcm9wcywgZGF5cywgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIG1vZGlmaWVycyA9IHtcbiAgICAgICAgZGlzYWJsZWQ6IFtdXG4gICAgfTtcbiAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgbW9kaWZpZXJzLmRpc2FibGVkID0gW1xuICAgICAgICAgICAgZnVuY3Rpb24gZGlzYWJsZURheShkYXkpIHtcbiAgICAgICAgICAgICAgICB2YXIgaXNNYXhTZWxlY3RlZCA9IGluaXRpYWxQcm9wcy5tYXggJiZcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQubGVuZ3RoID4gaW5pdGlhbFByb3BzLm1heCAtIDE7XG4gICAgICAgICAgICAgICAgdmFyIGlzU2VsZWN0ZWQgPSBzZWxlY3RlZCA9PT0gbnVsbCB8fCBzZWxlY3RlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VsZWN0ZWQuc29tZShmdW5jdGlvbiAoc2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzU2FtZURheShzZWxlY3RlZERheSwgZGF5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbihpc01heFNlbGVjdGVkICYmICFpc1NlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG4gICAgdmFyIGNvbnRleHRWYWx1ZSA9IHsgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBvbkRheUNsaWNrOiBvbkRheUNsaWNrLCBtb2RpZmllcnM6IG1vZGlmaWVycyB9O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LCBjaGlsZHJlbikpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VsZWN0TXVsdGlwbGVDb250ZXh0LmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3RNdWx0aXBsZUNvbnRleHQgfSBmcm9tICcuL1NlbGVjdE11bHRpcGxlQ29udGV4dCc7XG4vKiogSG9vayB0byBhY2Nlc3MgdGhlIFtbU2VsZWN0TXVsdGlwbGVDb250ZXh0XV0uICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0TXVsdGlwbGUoKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFNlbGVjdE11bHRpcGxlQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlU2VsZWN0TXVsdGlwbGUgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNlbGVjdE11bHRpcGxlUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VTZWxlY3RNdWx0aXBsZS5qcy5tYXAiLCIvKiogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHByb3BzIGFyZSBvZiB0eXBlIFtbRGF5UGlja2VyUmFuZ2VdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RheVBpY2tlclJhbmdlKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLm1vZGUgPT09ICdyYW5nZSc7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXlQaWNrZXJSYW5nZS5qcy5tYXAiLCJpbXBvcnQgeyBpc0FmdGVyLCBpc0JlZm9yZSwgaXNTYW1lRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqXG4gKiBBZGQgYSBkYXkgdG8gYW4gZXhpc3RpbmcgcmFuZ2UuXG4gKlxuICogVGhlIHJldHVybmVkIHJhbmdlIHRha2VzIGluIGFjY291bnQgdGhlIGB1bmRlZmluZWRgIHZhbHVlcyBhbmQgaWYgdGhlIGFkZGVkXG4gKiBkYXkgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSByYW5nZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvUmFuZ2UoZGF5LCByYW5nZSkge1xuICAgIHZhciBfYSA9IHJhbmdlIHx8IHt9LCBmcm9tID0gX2EuZnJvbSwgdG8gPSBfYS50bztcbiAgICBpZiAoIWZyb20pIHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogZGF5LCB0bzogZGF5IH07XG4gICAgfVxuICAgIGlmICghdG8gJiYgaXNTYW1lRGF5KGZyb20sIGRheSkpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCF0byAmJiBpc0JlZm9yZShkYXksIGZyb20pKSB7XG4gICAgICAgIHJldHVybiB7IGZyb206IGRheSwgdG86IGZyb20gfTtcbiAgICB9XG4gICAgaWYgKCF0bykge1xuICAgICAgICByZXR1cm4geyBmcm9tOiBmcm9tLCB0bzogZGF5IH07XG4gICAgfVxuICAgIGlmIChpc1NhbWVEYXkodG8sIGRheSkgJiYgaXNTYW1lRGF5KGZyb20sIGRheSkpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKGlzU2FtZURheSh0bywgZGF5KSkge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB0bywgdG86IHRvIH07XG4gICAgfVxuICAgIGlmIChpc1NhbWVEYXkoZnJvbSwgZGF5KSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoaXNBZnRlcihmcm9tLCBkYXkpKSB7XG4gICAgICAgIHJldHVybiB7IGZyb206IGRheSwgdG86IHRvIH07XG4gICAgfVxuICAgIHJldHVybiB7IGZyb206IGZyb20sIHRvOiBkYXkgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZFRvUmFuZ2UuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cywgaXNBZnRlciwgaXNCZWZvcmUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclJhbmdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvRGF5UGlja2VyUmFuZ2UnO1xuaW1wb3J0IHsgYWRkVG9SYW5nZSB9IGZyb20gJy4vdXRpbHMvYWRkVG9SYW5nZSc7XG4vKipcbiAqIFRoZSBTZWxlY3RSYW5nZSBjb250ZXh0IHNoYXJlcyBkZXRhaWxzIGFib3V0IHRoZSBzZWxlY3RlZCBkYXlzIHdoZW4gaW5cbiAqIHJhbmdlIHNlbGVjdGlvbiBtb2RlLlxuICpcbiAqIEFjY2VzcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VTZWxlY3RSYW5nZV1dIGhvb2suXG4gKi9cbmV4cG9ydCB2YXIgU2VsZWN0UmFuZ2VDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqIFByb3ZpZGVzIHRoZSB2YWx1ZXMgZm9yIHRoZSBbW1NlbGVjdFJhbmdlUHJvdmlkZXJdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3RSYW5nZVByb3ZpZGVyKHByb3BzKSB7XG4gICAgaWYgKCFpc0RheVBpY2tlclJhbmdlKHByb3BzLmluaXRpYWxQcm9wcykpIHtcbiAgICAgICAgdmFyIGVtcHR5Q29udGV4dFZhbHVlID0ge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG1vZGlmaWVyczoge1xuICAgICAgICAgICAgICAgIHJhbmdlX3N0YXJ0OiBbXSxcbiAgICAgICAgICAgICAgICByYW5nZV9lbmQ6IFtdLFxuICAgICAgICAgICAgICAgIHJhbmdlX21pZGRsZTogW10sXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RSYW5nZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGVtcHR5Q29udGV4dFZhbHVlIH0sIHByb3BzLmNoaWxkcmVuKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RSYW5nZVByb3ZpZGVySW50ZXJuYWwsIHsgaW5pdGlhbFByb3BzOiBwcm9wcy5pbml0aWFsUHJvcHMsIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0UmFuZ2VQcm92aWRlckludGVybmFsKF9hKSB7XG4gICAgdmFyIGluaXRpYWxQcm9wcyA9IF9hLmluaXRpYWxQcm9wcywgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbjtcbiAgICB2YXIgc2VsZWN0ZWQgPSBpbml0aWFsUHJvcHMuc2VsZWN0ZWQ7XG4gICAgdmFyIG1pbiA9IGluaXRpYWxQcm9wcy5taW47XG4gICAgdmFyIG1heCA9IGluaXRpYWxQcm9wcy5tYXg7XG4gICAgdmFyIG9uRGF5Q2xpY2sgPSBmdW5jdGlvbiAoZGF5LCBtb2RpZmllcnMsIGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9hID0gaW5pdGlhbFByb3BzLm9uRGF5Q2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGluaXRpYWxQcm9wcywgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgICAgICB2YXIgbmV3VmFsdWUgPSBhZGRUb1JhbmdlKGRheSwgc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoKG1pbiB8fCBtYXgpICYmXG4gICAgICAgICAgICBzZWxlY3RlZCAmJlxuICAgICAgICAgICAgKG5ld1ZhbHVlID09PSBudWxsIHx8IG5ld1ZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXdWYWx1ZS50bykgJiZcbiAgICAgICAgICAgIG5ld1ZhbHVlLmZyb20gJiZcbiAgICAgICAgICAgIG5ld1ZhbHVlLmZyb20gIT09IG5ld1ZhbHVlLnRvKSB7XG4gICAgICAgICAgICB2YXIgZGlmZiA9IE1hdGguYWJzKGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhuZXdWYWx1ZSA9PT0gbnVsbCB8fCBuZXdWYWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV3VmFsdWUudG8sIG5ld1ZhbHVlID09PSBudWxsIHx8IG5ld1ZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXdWYWx1ZS5mcm9tKSk7XG4gICAgICAgICAgICBpZiAobWluICYmIGRpZmYgPCBtaW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF4ICYmIGRpZmYgPj0gbWF4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIChfYiA9IGluaXRpYWxQcm9wcy5vblNlbGVjdCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoaW5pdGlhbFByb3BzLCBuZXdWYWx1ZSwgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIG1vZGlmaWVycyA9IHtcbiAgICAgICAgcmFuZ2Vfc3RhcnQ6IFtdLFxuICAgICAgICByYW5nZV9lbmQ6IFtdLFxuICAgICAgICByYW5nZV9taWRkbGU6IFtdLFxuICAgICAgICBkaXNhYmxlZDogW11cbiAgICB9O1xuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICBpZiAoc2VsZWN0ZWQuZnJvbSkge1xuICAgICAgICAgICAgbW9kaWZpZXJzLnJhbmdlX3N0YXJ0ID0gW3NlbGVjdGVkLmZyb21dO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkLnRvKSB7XG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzLnJhbmdlX21pZGRsZSA9IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXI6IHNlbGVjdGVkLmZyb20sXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmU6IHNlbGVjdGVkLnRvXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGlmIChtYXggfHwgbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVycy5kaXNhYmxlZCA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC50byAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5mcm9tICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQmVmb3JlKGRhdGUsIHNlbGVjdGVkLmZyb20pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHNlbGVjdGVkLnRvLCBkYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZmYgPj0gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRvICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLmZyb20gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBZnRlcihkYXRlLCBzZWxlY3RlZC50bykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoZGF0ZSwgc2VsZWN0ZWQuZnJvbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWZmID49IG1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiAmJiBzZWxlY3RlZC5mcm9tICYmIGlzQmVmb3JlKGRhdGUsIHNlbGVjdGVkLmZyb20pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHNlbGVjdGVkLmZyb20sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiA8IG1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC50byAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5mcm9tICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQWZ0ZXIoZGF0ZSwgc2VsZWN0ZWQudG8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRhdGUsIHNlbGVjdGVkLmZyb20pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiA8IG1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb2RpZmllcnMucmFuZ2VfZW5kID0gW3NlbGVjdGVkLnRvXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZGlmaWVycy5yYW5nZV9lbmQgPSBbc2VsZWN0ZWQuZnJvbV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdFJhbmdlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyBzZWxlY3RlZDogc2VsZWN0ZWQsIG9uRGF5Q2xpY2s6IG9uRGF5Q2xpY2ssIG1vZGlmaWVyczogbW9kaWZpZXJzIH0gfSwgY2hpbGRyZW4pKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNlbGVjdFJhbmdlQ29udGV4dC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU2VsZWN0UmFuZ2VDb250ZXh0IH0gZnJvbSAnLi9TZWxlY3RSYW5nZUNvbnRleHQnO1xuLyoqIEhvb2sgdG8gYWNjZXNzIHRoZSBbW1NlbGVjdFJhbmdlQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdFJhbmdlKCkge1xuICAgIHZhciBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChTZWxlY3RSYW5nZUNvbnRleHQpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNlbGVjdFJhbmdlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBTZWxlY3RSYW5nZVByb3ZpZGVyJyk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlU2VsZWN0UmFuZ2UuanMubWFwIiwiLyoqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBwcm9wcyBhcmUgb2YgdHlwZSBbW0RheVBpY2tlclNpbmdsZV1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF5UGlja2VyU2luZ2xlKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLm1vZGUgPT09ICdzaW5nbGUnO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5UGlja2VyU2luZ2xlLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclNpbmdsZSB9IGZyb20gJy4uLy4uL3R5cGVzL0RheVBpY2tlclNpbmdsZSc7XG4vKipcbiAqIFRoZSBTZWxlY3RTaW5nbGUgY29udGV4dCBzaGFyZXMgZGV0YWlscyBhYm91dCB0aGUgc2VsZWN0ZWQgZGF5cyB3aGVuIGluXG4gKiBzaW5nbGUgc2VsZWN0aW9uIG1vZGUuXG4gKlxuICogQWNjZXNzIHRoaXMgY29udGV4dCBmcm9tIHRoZSBbW3VzZVNlbGVjdFNpbmdsZV1dIGhvb2suXG4gKi9cbmV4cG9ydCB2YXIgU2VsZWN0U2luZ2xlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbi8qKiBQcm92aWRlcyB0aGUgdmFsdWVzIGZvciB0aGUgW1tTZWxlY3RTaW5nbGVQcm92aWRlcl1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdFNpbmdsZVByb3ZpZGVyKHByb3BzKSB7XG4gICAgaWYgKCFpc0RheVBpY2tlclNpbmdsZShwcm9wcy5pbml0aWFsUHJvcHMpKSB7XG4gICAgICAgIHZhciBlbXB0eUNvbnRleHRWYWx1ZSA9IHtcbiAgICAgICAgICAgIHNlbGVjdGVkOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdFNpbmdsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGVtcHR5Q29udGV4dFZhbHVlIH0sIHByb3BzLmNoaWxkcmVuKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RTaW5nbGVQcm92aWRlckludGVybmFsLCB7IGluaXRpYWxQcm9wczogcHJvcHMuaW5pdGlhbFByb3BzLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdFNpbmdsZVByb3ZpZGVySW50ZXJuYWwoX2EpIHtcbiAgICB2YXIgaW5pdGlhbFByb3BzID0gX2EuaW5pdGlhbFByb3BzLCBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuO1xuICAgIHZhciBvbkRheUNsaWNrID0gZnVuY3Rpb24gKGRheSwgZGF5TW9kaWZpZXJzLCBlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChkYXlNb2RpZmllcnMuc2VsZWN0ZWQgJiYgIWluaXRpYWxQcm9wcy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgKF9hID0gaW5pdGlhbFByb3BzLm9uU2VsZWN0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChpbml0aWFsUHJvcHMsIHVuZGVmaW5lZCwgZGF5LCBkYXlNb2RpZmllcnMsIGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYiA9IGluaXRpYWxQcm9wcy5vblNlbGVjdCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoaW5pdGlhbFByb3BzLCBkYXksIGRheSwgZGF5TW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIHZhciBjb250ZXh0VmFsdWUgPSB7XG4gICAgICAgIHNlbGVjdGVkOiBpbml0aWFsUHJvcHMuc2VsZWN0ZWQsXG4gICAgICAgIG9uRGF5Q2xpY2s6IG9uRGF5Q2xpY2tcbiAgICB9O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RTaW5nbGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSwgY2hpbGRyZW4pKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNlbGVjdFNpbmdsZUNvbnRleHQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNlbGVjdFNpbmdsZUNvbnRleHQgfSBmcm9tICcuL1NlbGVjdFNpbmdsZUNvbnRleHQnO1xuLyoqIEhvb2sgdG8gYWNjZXNzIHRoZSBbW1NlbGVjdFNpbmdsZUNvbnRleHRdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RTaW5nbGUoKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFNlbGVjdFNpbmdsZUNvbnRleHQpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNlbGVjdFNpbmdsZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgU2VsZWN0U2luZ2xlUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VTZWxlY3RTaW5nbGUuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIHRvTWF0Y2hlckFycmF5KG1vZGlmaWVyRnJvbVByb3ApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RpZmllckZyb21Qcm9wKSkge1xuICAgICAgICByZXR1cm4gbW9kaWZpZXJGcm9tUHJvcDtcbiAgICB9XG4gICAgZWxzZSBpZiAobW9kaWZpZXJGcm9tUHJvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbbW9kaWZpZXJGcm9tUHJvcF07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dG9NYXRjaGVyQXJyYXkuanMubWFwIiwiaW1wb3J0IHsgdG9NYXRjaGVyQXJyYXkgfSBmcm9tICcuL3RvTWF0Y2hlckFycmF5Jztcbi8qKiBSZXR1cm4gdGhlIFtbQ3VzdG9tTW9kaWZpZXJzXV0gZnJvbSB0aGUgRGF5UGlja2VyIGNvbnRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VzdG9tTW9kaWZpZXJzKGRheVBpY2tlcikge1xuICAgIHZhciBjdXN0b21Nb2RpZmllcnMgPSB7fTtcbiAgICBPYmplY3QuZW50cmllcyhkYXlQaWNrZXIubW9kaWZpZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICB2YXIgbW9kaWZpZXIgPSBfYVswXSwgbWF0Y2hlciA9IF9hWzFdO1xuICAgICAgICBjdXN0b21Nb2RpZmllcnNbbW9kaWZpZXJdID0gdG9NYXRjaGVyQXJyYXkobWF0Y2hlcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGN1c3RvbU1vZGlmaWVycztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldEN1c3RvbU1vZGlmaWVycy5qcy5tYXAiLCIvKiogVGhlIG1vZGlmaWVycyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkgYnkgRGF5UGlja2VyLiAqL1xuZXhwb3J0IHZhciBJbnRlcm5hbE1vZGlmaWVyO1xuKGZ1bmN0aW9uIChJbnRlcm5hbE1vZGlmaWVyKSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRpc2FibGVkIGRheXMsIHVzaW5nIHRoZSBgZGlzYWJsZWRgIHByb3AuICovXG4gICAgSW50ZXJuYWxNb2RpZmllcltcIkRpc2FibGVkXCJdID0gXCJkaXNhYmxlZFwiO1xuICAgIC8qKiBOYW1lIG9mIHRoZSBtb2RpZmllciBhcHBsaWVkIHRvIHRoZSBzZWxlY3RlZCBkYXlzIHVzaW5nIHRoZSBgc2VsZWN0ZWRgIHByb3ApLiAqL1xuICAgIEludGVybmFsTW9kaWZpZXJbXCJTZWxlY3RlZFwiXSA9IFwic2VsZWN0ZWRcIjtcbiAgICAvKiogTmFtZSBvZiB0aGUgbW9kaWZpZXIgYXBwbGllZCB0byB0aGUgaGlkZGVuIGRheXMgdXNpbmcgdGhlIGBoaWRkZW5gIHByb3ApLiAqL1xuICAgIEludGVybmFsTW9kaWZpZXJbXCJIaWRkZW5cIl0gPSBcImhpZGRlblwiO1xuICAgIC8qKiBOYW1lIG9mIHRoZSBtb2RpZmllciBhcHBsaWVkIHRvIHRoZSBkYXkgc3BlY2lmaWVkIHVzaW5nIHRoZSBgdG9kYXlgIHByb3ApLiAqL1xuICAgIEludGVybmFsTW9kaWZpZXJbXCJUb2RheVwiXSA9IFwidG9kYXlcIjtcbiAgICAvKiogVGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRheSBzdGFydGluZyBhIHNlbGVjdGVkIHJhbmdlLCB3aGVuIGluIHJhbmdlIHNlbGVjdGlvbiBtb2RlLiAgKi9cbiAgICBJbnRlcm5hbE1vZGlmaWVyW1wiUmFuZ2VTdGFydFwiXSA9IFwicmFuZ2Vfc3RhcnRcIjtcbiAgICAvKiogVGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRheSBlbmRpbmcgYSBzZWxlY3RlZCByYW5nZSwgd2hlbiBpbiByYW5nZSBzZWxlY3Rpb24gbW9kZS4gICovXG4gICAgSW50ZXJuYWxNb2RpZmllcltcIlJhbmdlRW5kXCJdID0gXCJyYW5nZV9lbmRcIjtcbiAgICAvKiogVGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRheXMgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIHRoZSBlbmQgb2YgYSBzZWxlY3RlZCByYW5nZSwgd2hlbiBpbiByYW5nZSBzZWxlY3Rpb24gbW9kZS4gICovXG4gICAgSW50ZXJuYWxNb2RpZmllcltcIlJhbmdlTWlkZGxlXCJdID0gXCJyYW5nZV9taWRkbGVcIjtcbn0pKEludGVybmFsTW9kaWZpZXIgfHwgKEludGVybmFsTW9kaWZpZXIgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kaWZpZXJzLmpzLm1hcCIsImltcG9ydCB7IGlzRGF5UGlja2VyTXVsdGlwbGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9EYXlQaWNrZXJNdWx0aXBsZSc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclJhbmdlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvRGF5UGlja2VyUmFuZ2UnO1xuaW1wb3J0IHsgSW50ZXJuYWxNb2RpZmllciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL01vZGlmaWVycyc7XG5pbXBvcnQgeyB0b01hdGNoZXJBcnJheSB9IGZyb20gJy4vdG9NYXRjaGVyQXJyYXknO1xuLyoqIFJldHVybiB0aGUgW1tJbnRlcm5hbE1vZGlmaWVyc11dIGZyb20gdGhlIERheVBpY2tlciBhbmQgc2VsZWN0IGNvbnRleHRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJzKGRheVBpY2tlciwgc2VsZWN0TXVsdGlwbGUsIHNlbGVjdFJhbmdlKSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBpbnRlcm5hbE1vZGlmaWVycyA9IChfYSA9IHt9LFxuICAgICAgICBfYVtJbnRlcm5hbE1vZGlmaWVyLlNlbGVjdGVkXSA9IHRvTWF0Y2hlckFycmF5KGRheVBpY2tlci5zZWxlY3RlZCksXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuRGlzYWJsZWRdID0gdG9NYXRjaGVyQXJyYXkoZGF5UGlja2VyLmRpc2FibGVkKSxcbiAgICAgICAgX2FbSW50ZXJuYWxNb2RpZmllci5IaWRkZW5dID0gdG9NYXRjaGVyQXJyYXkoZGF5UGlja2VyLmhpZGRlbiksXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuVG9kYXldID0gW2RheVBpY2tlci50b2RheV0sXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuUmFuZ2VFbmRdID0gW10sXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuUmFuZ2VNaWRkbGVdID0gW10sXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuUmFuZ2VTdGFydF0gPSBbXSxcbiAgICAgICAgX2EpO1xuICAgIGlmIChkYXlQaWNrZXIuZnJvbURhdGUpIHtcbiAgICAgICAgaW50ZXJuYWxNb2RpZmllcnMuZGlzYWJsZWQucHVzaCh7IGJlZm9yZTogZGF5UGlja2VyLmZyb21EYXRlIH0pO1xuICAgIH1cbiAgICBpZiAoZGF5UGlja2VyLnRvRGF0ZSkge1xuICAgICAgICBpbnRlcm5hbE1vZGlmaWVycy5kaXNhYmxlZC5wdXNoKHsgYWZ0ZXI6IGRheVBpY2tlci50b0RhdGUgfSk7XG4gICAgfVxuICAgIGlmIChpc0RheVBpY2tlck11bHRpcGxlKGRheVBpY2tlcikpIHtcbiAgICAgICAgaW50ZXJuYWxNb2RpZmllcnMuZGlzYWJsZWQgPSBpbnRlcm5hbE1vZGlmaWVycy5kaXNhYmxlZC5jb25jYXQoc2VsZWN0TXVsdGlwbGUubW9kaWZpZXJzLmRpc2FibGVkKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNEYXlQaWNrZXJSYW5nZShkYXlQaWNrZXIpKSB7XG4gICAgICAgIGludGVybmFsTW9kaWZpZXJzLmRpc2FibGVkID0gaW50ZXJuYWxNb2RpZmllcnMuZGlzYWJsZWQuY29uY2F0KHNlbGVjdFJhbmdlLm1vZGlmaWVycy5kaXNhYmxlZCk7XG4gICAgICAgIGludGVybmFsTW9kaWZpZXJzLnJhbmdlX3N0YXJ0ID0gc2VsZWN0UmFuZ2UubW9kaWZpZXJzLnJhbmdlX3N0YXJ0O1xuICAgICAgICBpbnRlcm5hbE1vZGlmaWVycy5yYW5nZV9taWRkbGUgPSBzZWxlY3RSYW5nZS5tb2RpZmllcnMucmFuZ2VfbWlkZGxlO1xuICAgICAgICBpbnRlcm5hbE1vZGlmaWVycy5yYW5nZV9lbmQgPSBzZWxlY3RSYW5nZS5tb2RpZmllcnMucmFuZ2VfZW5kO1xuICAgIH1cbiAgICByZXR1cm4gaW50ZXJuYWxNb2RpZmllcnM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRJbnRlcm5hbE1vZGlmaWVycy5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VTZWxlY3RNdWx0aXBsZSB9IGZyb20gJy4uLy4uL2NvbnRleHRzL1NlbGVjdE11bHRpcGxlJztcbmltcG9ydCB7IHVzZVNlbGVjdFJhbmdlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvU2VsZWN0UmFuZ2UnO1xuaW1wb3J0IHsgZ2V0Q3VzdG9tTW9kaWZpZXJzIH0gZnJvbSAnLi91dGlscy9nZXRDdXN0b21Nb2RpZmllcnMnO1xuaW1wb3J0IHsgZ2V0SW50ZXJuYWxNb2RpZmllcnMgfSBmcm9tICcuL3V0aWxzL2dldEludGVybmFsTW9kaWZpZXJzJztcbi8qKiBUaGUgTW9kaWZpZXJzIGNvbnRleHQgc3RvcmUgdGhlIG1vZGlmaWVycyB1c2VkIGluIERheVBpY2tlci4gVG8gYWNjZXNzIHRoZSB2YWx1ZSBvZiB0aGlzIGNvbnRleHQsIHVzZSBbW3VzZU1vZGlmaWVyc11dLiAqL1xuZXhwb3J0IHZhciBNb2RpZmllcnNDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqIFByb3ZpZGUgdGhlIHZhbHVlIGZvciB0aGUgW1tNb2RpZmllcnNDb250ZXh0XV0uICovXG5leHBvcnQgZnVuY3Rpb24gTW9kaWZpZXJzUHJvdmlkZXIocHJvcHMpIHtcbiAgICB2YXIgZGF5UGlja2VyID0gdXNlRGF5UGlja2VyKCk7XG4gICAgdmFyIHNlbGVjdE11bHRpcGxlID0gdXNlU2VsZWN0TXVsdGlwbGUoKTtcbiAgICB2YXIgc2VsZWN0UmFuZ2UgPSB1c2VTZWxlY3RSYW5nZSgpO1xuICAgIHZhciBpbnRlcm5hbE1vZGlmaWVycyA9IGdldEludGVybmFsTW9kaWZpZXJzKGRheVBpY2tlciwgc2VsZWN0TXVsdGlwbGUsIHNlbGVjdFJhbmdlKTtcbiAgICB2YXIgY3VzdG9tTW9kaWZpZXJzID0gZ2V0Q3VzdG9tTW9kaWZpZXJzKGRheVBpY2tlcik7XG4gICAgdmFyIG1vZGlmaWVycyA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBpbnRlcm5hbE1vZGlmaWVycyksIGN1c3RvbU1vZGlmaWVycyk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KE1vZGlmaWVyc0NvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IG1vZGlmaWVycyB9LCBwcm9wcy5jaGlsZHJlbikpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kaWZpZXJzQ29udGV4dC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW9kaWZpZXJzQ29udGV4dCB9IGZyb20gJy4vTW9kaWZpZXJzQ29udGV4dCc7XG4vKiogSG9vayB0byBhY2Nlc3MgdGhlIFtbTW9kaWZpZXJzQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vZGlmaWVycygpIHtcbiAgICB2YXIgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoTW9kaWZpZXJzQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlTW9kaWZpZXJzIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBNb2RpZmllcnNQcm92aWRlcicpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGV4dDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZU1vZGlmaWVycy5qcy5tYXAiLCIvKiogUmV0dXJucyB0cnVlIGlmIGBtYXRjaGVyYCBpcyBvZiB0eXBlIFtbRGF0ZUludGVydmFsXV0uICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlSW50ZXJ2YWwobWF0Y2hlcikge1xuICAgIHJldHVybiBCb29sZWFuKG1hdGNoZXIgJiZcbiAgICAgICAgdHlwZW9mIG1hdGNoZXIgPT09ICdvYmplY3QnICYmXG4gICAgICAgICdiZWZvcmUnIGluIG1hdGNoZXIgJiZcbiAgICAgICAgJ2FmdGVyJyBpbiBtYXRjaGVyKTtcbn1cbi8qKiBSZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyBhIFtbRGF0ZVJhbmdlXV0gdHlwZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVSYW5nZSh2YWx1ZSkge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIGRhdGVzPyFcbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdmcm9tJyBpbiB2YWx1ZSk7XG59XG4vKiogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgb2YgdHlwZSBbW0RhdGVBZnRlcl1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUFmdGVyVHlwZSh2YWx1ZSkge1xuICAgIHJldHVybiBCb29sZWFuKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ2FmdGVyJyBpbiB2YWx1ZSk7XG59XG4vKiogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgb2YgdHlwZSBbW0RhdGVCZWZvcmVdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVCZWZvcmVUeXBlKHZhbHVlKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnYmVmb3JlJyBpbiB2YWx1ZSk7XG59XG4vKiogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgYSBbW0RheU9mV2Vla11dIHR5cGUuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXlPZldlZWtUeXBlKHZhbHVlKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnZGF5T2ZXZWVrJyBpbiB2YWx1ZSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1NYXRjaGVycy5qcy5tYXAiLCJpbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsIGlzU2FtZURheSB9IGZyb20gJ2RhdGUtZm5zJztcbi8qKiBSZXR1cm4gYHRydWVgIHdoZXRoZXIgdGhlIGdpdmVuIGRhdGUgaXMgaW5zaWRlIHRoZSByYW5nZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVJblJhbmdlKGRhdGUsIHJhbmdlKSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBmcm9tID0gcmFuZ2UuZnJvbSwgdG8gPSByYW5nZS50bztcbiAgICBpZiAoIWZyb20pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRvICYmIGlzU2FtZURheShmcm9tLCBkYXRlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF0bykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBpc1RvQmVmb3JlRnJvbSA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyh0bywgZnJvbSkgPCAwO1xuICAgIGlmICh0byAmJiBpc1RvQmVmb3JlRnJvbSkge1xuICAgICAgICBfYSA9IFt0bywgZnJvbV0sIGZyb20gPSBfYVswXSwgdG8gPSBfYVsxXTtcbiAgICB9XG4gICAgcmV0dXJuIChkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoZGF0ZSwgZnJvbSkgPj0gMCAmJlxuICAgICAgICBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXModG8sIGRhdGUpID49IDApO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNEYXRlSW5SYW5nZS5qcy5tYXAiLCJpbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsIGlzRGF0ZSwgaXNTYW1lRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgaXNEYXRlQWZ0ZXJUeXBlLCBpc0RhdGVCZWZvcmVUeXBlLCBpc0RhdGVJbnRlcnZhbCwgaXNEYXRlUmFuZ2UsIGlzRGF5T2ZXZWVrVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL01hdGNoZXJzJztcbmltcG9ydCB7IGlzRGF0ZUluUmFuZ2UgfSBmcm9tICcuL2lzRGF0ZUluUmFuZ2UnO1xuLyoqIFJldHVybnMgdHJ1ZSBpZiBgdmFsdWVgIGlzIGEgRGF0ZSB0eXBlLiAqL1xuZnVuY3Rpb24gaXNEYXRlVHlwZSh2YWx1ZSkge1xuICAgIHJldHVybiBpc0RhdGUodmFsdWUpO1xufVxuLyoqIFJldHVybnMgdHJ1ZSBpZiBgdmFsdWVgIGlzIGFuIGFycmF5IG9mIHZhbGlkIGRhdGVzLiAqL1xuZnVuY3Rpb24gaXNBcnJheU9mRGF0ZXModmFsdWUpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUuZXZlcnkoaXNEYXRlKTtcbn1cbi8qKlxuICogUmV0dXJucyBgdHJ1ZWAgd2hldGhlciB0aGUgZGF5IG1hdGNoZXMgYWdhaW5zdCB0aGUgZ2l2ZW4gbWF0Y2hlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01hdGNoKGRheSwgbWF0Y2hlcnMpIHtcbiAgICByZXR1cm4gbWF0Y2hlcnMuc29tZShmdW5jdGlvbiAobWF0Y2hlcikge1xuICAgICAgICBpZiAodHlwZW9mIG1hdGNoZXIgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGF0ZVR5cGUobWF0Y2hlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBpc1NhbWVEYXkoZGF5LCBtYXRjaGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNBcnJheU9mRGF0ZXMobWF0Y2hlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVyLmluY2x1ZGVzKGRheSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGF0ZVJhbmdlKG1hdGNoZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNEYXRlSW5SYW5nZShkYXksIG1hdGNoZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0RheU9mV2Vla1R5cGUobWF0Y2hlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVyLmRheU9mV2Vlay5pbmNsdWRlcyhkYXkuZ2V0RGF5KCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0RhdGVJbnRlcnZhbChtYXRjaGVyKSkge1xuICAgICAgICAgICAgdmFyIGlzQmVmb3JlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKG1hdGNoZXIuYmVmb3JlLCBkYXkpID4gMDtcbiAgICAgICAgICAgIHZhciBpc0FmdGVyID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRheSwgbWF0Y2hlci5hZnRlcikgPiAwO1xuICAgICAgICAgICAgcmV0dXJuIGlzQmVmb3JlICYmIGlzQWZ0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGF0ZUFmdGVyVHlwZShtYXRjaGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhkYXksIG1hdGNoZXIuYWZ0ZXIpID4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEYXRlQmVmb3JlVHlwZShtYXRjaGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhtYXRjaGVyLmJlZm9yZSwgZGF5KSA+IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBtYXRjaGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlcihkYXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzTWF0Y2guanMubWFwIiwiaW1wb3J0IHsgaXNNYXRjaCB9IGZyb20gJy4vaXNNYXRjaCc7XG4vKipcbiAqIFJldHVybiB0aGUgc3RhdHVzIG9mIHRoZSBtb2RpZmllcnMgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBkYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kaWZpZXJTdGF0dXMoZGF0ZSwgXG4vKiogVGhlIG1vZGlmaWVycyB0byBtYXRjaCBmb3IgdGhlIGdpdmVuIGRhdGUuICovXG5tb2RpZmllcnMpIHtcbiAgICB2YXIgbW9kaWZpZXJzTGlzdCA9IE9iamVjdC5rZXlzKG1vZGlmaWVycykucmVkdWNlKGZ1bmN0aW9uIChwcmV2aW91c1ZhbHVlLCBrZXkpIHtcbiAgICAgICAgdmFyIG1vZGlmaWVyID0gbW9kaWZpZXJzW2tleV07XG4gICAgICAgIGlmIChpc01hdGNoKGRhdGUsIG1vZGlmaWVyKSkge1xuICAgICAgICAgICAgcHJldmlvdXNWYWx1ZS5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgfSwgW10pO1xuICAgIHZhciBtb2RpZmllcnNTdGF0dXMgPSB7fTtcbiAgICBtb2RpZmllcnNMaXN0LmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7IHJldHVybiAobW9kaWZpZXJzU3RhdHVzW21vZGlmaWVyXSA9IHRydWUpOyB9KTtcbiAgICByZXR1cm4gbW9kaWZpZXJzU3RhdHVzO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0TW9kaWZpZXJTdGF0dXMuanMubWFwIiwiaW1wb3J0IHsgX19hc3NpZ24gfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VNb2RpZmllcnMgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9Nb2RpZmllcnMnO1xuaW1wb3J0IHsgZ2V0TW9kaWZpZXJTdGF0dXMgfSBmcm9tICcuL3V0aWxzL2dldE1vZGlmaWVyU3RhdHVzJztcbi8qKiBSZXR1cm4gdGhlIG1vZGlmaWVycyBhbmQgaXRzIHN0eWxlcyBmb3IgdGhlIHNwZWNpZmllZCBkYXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURheU1vZGlmaWVycyhkYXRlKSB7XG4gICAgdmFyIGNvbnRleHQgPSB1c2VEYXlQaWNrZXIoKTtcbiAgICB2YXIgbW9kaWZpZXJzQ29udGV4dCA9IHVzZU1vZGlmaWVycygpO1xuICAgIC8vIFRPRE86IElzIHRoZXJlIGEgYmV0dGVyIG5hbWUgZm9yIHRoZSB0eXBlIE1vZGlmaWVyU3RhdHVzP1xuICAgIHZhciBtb2RpZmllcnMgPSBnZXRNb2RpZmllclN0YXR1cyhkYXRlLCBtb2RpZmllcnNDb250ZXh0KTtcbiAgICB2YXIgbW9kaWZpZXJDbGFzc05hbWVzID0gW107XG4gICAgT2JqZWN0LmtleXMobW9kaWZpZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChtb2RpZmllcikge1xuICAgICAgICB2YXIgY3VzdG9tQ2xhc3NOYW1lID0gY29udGV4dC5tb2RpZmllckNsYXNzTmFtZXNbbW9kaWZpZXJdO1xuICAgICAgICBpZiAoY3VzdG9tQ2xhc3NOYW1lKSB7XG4gICAgICAgICAgICBtb2RpZmllckNsYXNzTmFtZXMucHVzaChjdXN0b21DbGFzc05hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbW9kaWZpZXJDbGFzc05hbWVzLnB1c2goXCJcIiArIGNvbnRleHQubW9kaWZpZXJQcmVmaXggKyBtb2RpZmllcik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgbW9kaWZpZXJTdHlsZSA9IHt9O1xuICAgIGlmIChjb250ZXh0Lm1vZGlmaWVyU3R5bGVzKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG1vZGlmaWVycykuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIG1vZGlmaWVyU3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgbW9kaWZpZXJTdHlsZSksIChfYSA9IGNvbnRleHQubW9kaWZpZXJTdHlsZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVttb2RpZmllcl0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbW9kaWZpZXJzOiBtb2RpZmllcnMsXG4gICAgICAgIG1vZGlmaWVyQ2xhc3NOYW1lczogbW9kaWZpZXJDbGFzc05hbWVzLFxuICAgICAgICBtb2RpZmllclN0eWxlOiBtb2RpZmllclN0eWxlXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZURheU1vZGlmaWVycy5qcy5tYXAiLCJpbXBvcnQgeyBhZGREYXlzLCBlbmRPZk1vbnRoLCBzdGFydE9mTW9udGggfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBnZXRNb2RpZmllclN0YXR1cyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURheU1vZGlmaWVycy91dGlscy9nZXRNb2RpZmllclN0YXR1cyc7XG52YXIgaXNGb2N1c2FibGUgPSBmdW5jdGlvbiAobW9kaWZpZXJzKSB7XG4gICAgcmV0dXJuICFtb2RpZmllcnMuZGlzYWJsZWQgJiYgIW1vZGlmaWVycy5oaWRkZW47XG59O1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBkYXkgdGhhdCBzaG91bGQgYmUgdGhlIHRhcmdldCBvZiB0aGUgZm9jdXMgd2hlbiBpbml0aWFsbHlcbiAqIHJlbmRlcmVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50czpcbiAqICAxLiBpZiB0aGVyZSBpcyBhIHNlbGVjdGVkIGRheSwgZm9jdXMgb24gdGhlIChmaXJzdCkgc2VsZWN0ZWQgZGF5XG4gKiAgMi4gZWxzZSBpZiB0aGUgZGlzcGxheSBtb250aHMgaW5jbHVkZSB0aGUgY3VycmVudCBkYXRlICh0b2RheSkgZm9jdXMgb24gdGhlIGN1cnJlbnQgZGF0ZVxuICogIDMuIGVsc2UgZm9jdXMgb24gdGhlIGZpcnN0IGZvY3VzYWJsZSBkYXlcbiAqICA0LiBlbHNlIHRoZXJlIGlzIG5vdGhpbmcgdG8gZm9jdXMgb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxGb2N1c1RhcmdldChkaXNwbGF5TW9udGhzLCBtb2RpZmllcnNDb250ZXh0KSB7XG4gICAgdmFyIGZpcnN0RGF5SW5Nb250aCA9IHN0YXJ0T2ZNb250aChkaXNwbGF5TW9udGhzWzBdKTtcbiAgICB2YXIgbGFzdERheUluTW9udGggPSBlbmRPZk1vbnRoKGRpc3BsYXlNb250aHNbZGlzcGxheU1vbnRocy5sZW5ndGggLSAxXSk7XG4gICAgdmFyIGZpcnN0Rm9jdXNhYmxlRGF5O1xuICAgIHZhciB0b2RheTtcbiAgICB2YXIgZGF0ZSA9IGZpcnN0RGF5SW5Nb250aDtcbiAgICB3aGlsZSAoZGF0ZSA8PSBsYXN0RGF5SW5Nb250aCkge1xuICAgICAgICB2YXIgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJTdGF0dXMoZGF0ZSwgbW9kaWZpZXJzQ29udGV4dCk7XG4gICAgICAgIGlmICghaXNGb2N1c2FibGUobW9kaWZpZXJzKSkge1xuICAgICAgICAgICAgZGF0ZSA9IGFkZERheXMoZGF0ZSwgMSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kaWZpZXJzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kaWZpZXJzLnRvZGF5ICYmICF0b2RheSkge1xuICAgICAgICAgICAgdG9kYXkgPSBkYXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZmlyc3RGb2N1c2FibGVEYXkpIHtcbiAgICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRGF5ID0gZGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBkYXRlID0gYWRkRGF5cyhkYXRlLCAxKTtcbiAgICB9XG4gICAgaWYgKHRvZGF5KSB7XG4gICAgICAgIHJldHVybiB0b2RheTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBmaXJzdEZvY3VzYWJsZURheTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRJbml0aWFsRm9jdXNUYXJnZXQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFkZERheXMsIGFkZE1vbnRocywgYWRkV2Vla3MsIGFkZFllYXJzLCBlbmRPZldlZWssIGlzU2FtZU1vbnRoLCBzdGFydE9mV2VlayB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VNb2RpZmllcnMgfSBmcm9tICcuLi9Nb2RpZmllcnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb24vdXNlTmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRJbml0aWFsRm9jdXNUYXJnZXQgfSBmcm9tICcuL2dldEluaXRpYWxGb2N1c1RhcmdldCc7XG4vKipcbiAqIFRoZSBGb2N1cyBjb250ZXh0IHNoYXJlcyBkZXRhaWxzIGFib3V0IHRoZSBmb2N1c2VkIGRheSBmb3IgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gKlxuICogQWNjZXNzIHRoaXMgY29udGV4dCBmcm9tIHRoZSBbW3VzZUZvY3VzXV0gaG9vay5cbiAqL1xuZXhwb3J0IHZhciBGb2N1c0NvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG4vKiogVGhlIHByb3ZpZGVyIGZvciB0aGUgW1tGb2N1c0NvbnRleHRdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBGb2N1c1Byb3ZpZGVyKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW47XG4gICAgdmFyIF9iID0gUmVhY3QudXNlU3RhdGUoKSwgZm9jdXNlZERheSA9IF9iWzBdLCBzZXREYXkgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSB1c2VOYXZpZ2F0aW9uKCksIGdvVG9Nb250aCA9IF9jLmdvVG9Nb250aCwgZGlzcGxheU1vbnRocyA9IF9jLmRpc3BsYXlNb250aHM7XG4gICAgdmFyIG51bWJlck9mTW9udGhzID0gdXNlRGF5UGlja2VyKCkubnVtYmVyT2ZNb250aHM7XG4gICAgdmFyIG1vZGlmaWVyc0NvbnRleHQgPSB1c2VNb2RpZmllcnMoKTtcbiAgICB2YXIgaW5pdGlhbEZvY3VzVGFyZ2V0ID0gZ2V0SW5pdGlhbEZvY3VzVGFyZ2V0KGRpc3BsYXlNb250aHMsIG1vZGlmaWVyc0NvbnRleHQpO1xuICAgIHZhciBfZCA9IFJlYWN0LnVzZVN0YXRlKCksIGxhc3RGb2N1c2VkRGF5ID0gX2RbMF0sIHNldExhc3RGb2N1c2VkRGF5ID0gX2RbMV07XG4gICAgdmFyIGlzV2l0aGluRGlzcGxheU1vbnRocyA9IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIHJldHVybiBkaXNwbGF5TW9udGhzLnNvbWUoZnVuY3Rpb24gKGRpc3BsYXlNb250aCkgeyByZXR1cm4gaXNTYW1lTW9udGgoZGF0ZSwgZGlzcGxheU1vbnRoKTsgfSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNUYXJnZXQgPSAoZm9jdXNlZERheSAhPT0gbnVsbCAmJiBmb2N1c2VkRGF5ICE9PSB2b2lkIDAgPyBmb2N1c2VkRGF5IDogKGxhc3RGb2N1c2VkRGF5ICYmIGlzV2l0aGluRGlzcGxheU1vbnRocyhsYXN0Rm9jdXNlZERheSkpKVxuICAgICAgICA/IGxhc3RGb2N1c2VkRGF5XG4gICAgICAgIDogaW5pdGlhbEZvY3VzVGFyZ2V0O1xuICAgIHZhciBibHVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRMYXN0Rm9jdXNlZERheShmb2N1c2VkRGF5KTtcbiAgICAgICAgc2V0RGF5KHVuZGVmaW5lZCk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXMgPSBmdW5jdGlvbiAoZGF0ZSkgeyByZXR1cm4gc2V0RGF5KGRhdGUpOyB9O1xuICAgIHZhciBzd2l0Y2hNb250aCA9IGZ1bmN0aW9uIChkYXRlLCBvZmZzZXQpIHtcbiAgICAgICAgaWYgKGRpc3BsYXlNb250aHMuc29tZShmdW5jdGlvbiAobSkgeyByZXR1cm4gaXNTYW1lTW9udGgoZGF0ZSwgbSk7IH0pKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAob2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgZ29Ub01vbnRoKGFkZE1vbnRocyhkYXRlLCAxICsgb2Zmc2V0KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBnb1RvTW9udGgoZGF0ZSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHZhciBmb2N1c0RheUJlZm9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgYmVmb3JlID0gYWRkRGF5cyhmb2N1c2VkRGF5LCAtMSk7XG4gICAgICAgIGZvY3VzKGJlZm9yZSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKGJlZm9yZSwgbnVtYmVyT2ZNb250aHMgKiAtMSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNEYXlBZnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgYWZ0ZXIgPSBhZGREYXlzKGZvY3VzZWREYXksIDEpO1xuICAgICAgICBmb2N1cyhhZnRlcik7XG4gICAgICAgIHN3aXRjaE1vbnRoKGFmdGVyLCBudW1iZXJPZk1vbnRocyk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNXZWVrQmVmb3JlRGF5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWZvY3VzZWREYXkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciB1cCA9IGFkZFdlZWtzKGZvY3VzZWREYXksIC0xKTtcbiAgICAgICAgZm9jdXModXApO1xuICAgICAgICBzd2l0Y2hNb250aCh1cCwgbnVtYmVyT2ZNb250aHMgKiAtMSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNXZWVrQWZ0ZXJEYXkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghZm9jdXNlZERheSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIGRvd24gPSBhZGRXZWVrcyhmb2N1c2VkRGF5LCAxKTtcbiAgICAgICAgZm9jdXMoZG93bik7XG4gICAgICAgIHN3aXRjaE1vbnRoKGRvd24sIG51bWJlck9mTW9udGhzKTtcbiAgICB9O1xuICAgIHZhciBmb2N1c1N0YXJ0T2ZXZWVrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWZvY3VzZWREYXkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciBkYXlUb0ZvY3VzID0gc3RhcnRPZldlZWsoZm9jdXNlZERheSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKGRheVRvRm9jdXMsIG51bWJlck9mTW9udGhzKTtcbiAgICAgICAgZm9jdXMoZGF5VG9Gb2N1cyk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNFbmRPZldlZWsgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghZm9jdXNlZERheSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIGRheVRvRm9jdXMgPSBlbmRPZldlZWsoZm9jdXNlZERheSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKGRheVRvRm9jdXMsIG51bWJlck9mTW9udGhzKTtcbiAgICAgICAgZm9jdXMoZGF5VG9Gb2N1cyk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNNb250aEJlZm9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgbW9udGhCZWZvcmUgPSBhZGRNb250aHMoZm9jdXNlZERheSwgLTEpO1xuICAgICAgICBzd2l0Y2hNb250aChtb250aEJlZm9yZSwgbnVtYmVyT2ZNb250aHMpO1xuICAgICAgICBmb2N1cyhtb250aEJlZm9yZSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNNb250aEFmdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWZvY3VzZWREYXkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciBtb250aEFmdGVyID0gYWRkTW9udGhzKGZvY3VzZWREYXksIDEpO1xuICAgICAgICBzd2l0Y2hNb250aChtb250aEFmdGVyLCBudW1iZXJPZk1vbnRocyk7XG4gICAgICAgIGZvY3VzKG1vbnRoQWZ0ZXIpO1xuICAgIH07XG4gICAgdmFyIGZvY3VzWWVhckJlZm9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgeWVhckJlZm9yZSA9IGFkZFllYXJzKGZvY3VzZWREYXksIC0xKTtcbiAgICAgICAgc3dpdGNoTW9udGgoeWVhckJlZm9yZSwgbnVtYmVyT2ZNb250aHMpO1xuICAgICAgICBmb2N1cyh5ZWFyQmVmb3JlKTtcbiAgICB9O1xuICAgIHZhciBmb2N1c1llYXJBZnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgeWVhckFmdGVyID0gYWRkWWVhcnMoZm9jdXNlZERheSwgMSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKHllYXJBZnRlciwgbnVtYmVyT2ZNb250aHMpO1xuICAgICAgICBmb2N1cyh5ZWFyQWZ0ZXIpO1xuICAgIH07XG4gICAgdmFyIHZhbHVlID0ge1xuICAgICAgICBmb2N1c2VkRGF5OiBmb2N1c2VkRGF5LFxuICAgICAgICBmb2N1c1RhcmdldDogZm9jdXNUYXJnZXQsXG4gICAgICAgIGJsdXI6IGJsdXIsXG4gICAgICAgIGZvY3VzOiBmb2N1cyxcbiAgICAgICAgZm9jdXNEYXlBZnRlcjogZm9jdXNEYXlBZnRlcixcbiAgICAgICAgZm9jdXNEYXlCZWZvcmU6IGZvY3VzRGF5QmVmb3JlLFxuICAgICAgICBmb2N1c1dlZWtBZnRlckRheTogZm9jdXNXZWVrQWZ0ZXJEYXksXG4gICAgICAgIGZvY3VzV2Vla0JlZm9yZURheTogZm9jdXNXZWVrQmVmb3JlRGF5LFxuICAgICAgICBmb2N1c01vbnRoQmVmb3JlOiBmb2N1c01vbnRoQmVmb3JlLFxuICAgICAgICBmb2N1c01vbnRoQWZ0ZXI6IGZvY3VzTW9udGhBZnRlcixcbiAgICAgICAgZm9jdXNZZWFyQmVmb3JlOiBmb2N1c1llYXJCZWZvcmUsXG4gICAgICAgIGZvY3VzWWVhckFmdGVyOiBmb2N1c1llYXJBZnRlcixcbiAgICAgICAgZm9jdXNTdGFydE9mV2VlazogZm9jdXNTdGFydE9mV2VlayxcbiAgICAgICAgZm9jdXNFbmRPZldlZWs6IGZvY3VzRW5kT2ZXZWVrXG4gICAgfTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9jdXNDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB2YWx1ZSB9LCBjaGlsZHJlbikpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Rm9jdXNDb250ZXh0LmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb2N1c0NvbnRleHQgfSBmcm9tICcuL0ZvY3VzQ29udGV4dCc7XG4vKiogSG9vayB0byBhY2Nlc3MgdGhlIFtbRm9jdXNDb250ZXh0XV0uICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRm9jdXMoKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KEZvY3VzQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlRm9jdXMgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEZvY3VzUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VGb2N1cy5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNTYW1lRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbmltcG9ydCB7IHVzZUZvY3VzIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dHMvRm9jdXMnO1xuLyoqIEhhbmRsZSB0aGUgZm9jdXMgZm9yIHRoZSBkYXkgZWxlbWVudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXlGb2N1cyhkYXRlLCBidXR0b25SZWYpIHtcbiAgICB2YXIgX2EgPSB1c2VGb2N1cygpLCBmb2N1c2VkRGF5ID0gX2EuZm9jdXNlZERheSwgZm9jdXNUYXJnZXQgPSBfYS5mb2N1c1RhcmdldCwgZm9jdXNEYXlBZnRlciA9IF9hLmZvY3VzRGF5QWZ0ZXIsIGZvY3VzRGF5QmVmb3JlID0gX2EuZm9jdXNEYXlCZWZvcmUsIGZvY3VzV2Vla0FmdGVyRGF5ID0gX2EuZm9jdXNXZWVrQWZ0ZXJEYXksIGZvY3VzV2Vla0JlZm9yZURheSA9IF9hLmZvY3VzV2Vla0JlZm9yZURheSwgYmx1ciA9IF9hLmJsdXIsIGZvY3VzID0gX2EuZm9jdXMsIGZvY3VzTW9udGhCZWZvcmUgPSBfYS5mb2N1c01vbnRoQmVmb3JlLCBmb2N1c01vbnRoQWZ0ZXIgPSBfYS5mb2N1c01vbnRoQWZ0ZXIsIGZvY3VzWWVhckJlZm9yZSA9IF9hLmZvY3VzWWVhckJlZm9yZSwgZm9jdXNZZWFyQWZ0ZXIgPSBfYS5mb2N1c1llYXJBZnRlciwgZm9jdXNTdGFydE9mV2VlayA9IF9hLmZvY3VzU3RhcnRPZldlZWssIGZvY3VzRW5kT2ZXZWVrID0gX2EuZm9jdXNFbmRPZldlZWs7XG4gICAgdmFyIGRpciA9IHVzZURheVBpY2tlcigpLmRpcjtcbiAgICAvLyBGb2N1cyB0aGUgSFRNTCBlbGVtZW50IGlmIHRoaXMgaXMgdGhlIGZvY3VzZWQgZGF5LlxuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoaXNTYW1lRGF5KGZvY3VzZWREYXksIGRhdGUpKSB7XG4gICAgICAgICAgICAoX2EgPSBidXR0b25SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9LCBbZm9jdXNlZERheSwgZGF0ZSwgYnV0dG9uUmVmXSk7XG4gICAgdmFyIGZvY3VzT25LZXlEb3duID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgc3dpdGNoIChlLmtleSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBkaXIgPT09ICdydGwnID8gZm9jdXNEYXlBZnRlcigpIDogZm9jdXNEYXlCZWZvcmUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGRpciA9PT0gJ3J0bCcgPyBmb2N1c0RheUJlZm9yZSgpIDogZm9jdXNEYXlBZnRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBmb2N1c1dlZWtBZnRlckRheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZm9jdXNXZWVrQmVmb3JlRGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUuc2hpZnRLZXkgPyBmb2N1c1llYXJCZWZvcmUoKSA6IGZvY3VzTW9udGhCZWZvcmUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnNoaWZ0S2V5ID8gZm9jdXNZZWFyQWZ0ZXIoKSA6IGZvY3VzTW9udGhBZnRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZm9jdXNTdGFydE9mV2VlaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBmb2N1c0VuZE9mV2VlaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB2YXIgaXNGb2N1c1RhcmdldCA9IEJvb2xlYW4oZm9jdXNUYXJnZXQgJiYgaXNTYW1lRGF5KGZvY3VzVGFyZ2V0LCBkYXRlKSk7XG4gICAgcmV0dXJuIHsgZm9jdXM6IGZvY3VzLCBibHVyOiBibHVyLCBmb2N1c09uS2V5RG93bjogZm9jdXNPbktleURvd24sIGlzRm9jdXNUYXJnZXQ6IGlzRm9jdXNUYXJnZXQgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZURheUZvY3VzLmpzLm1hcCIsImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNTYW1lTW9udGggfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgdXNlU2VsZWN0TXVsdGlwbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0cy9TZWxlY3RNdWx0aXBsZSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RSYW5nZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHRzL1NlbGVjdFJhbmdlJztcbmltcG9ydCB7IHVzZVNlbGVjdFNpbmdsZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHRzL1NlbGVjdFNpbmdsZSc7XG5pbXBvcnQgeyB1c2VEYXlNb2RpZmllcnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VEYXlNb2RpZmllcnMnO1xuaW1wb3J0IHsgaXNEYXlQaWNrZXJNdWx0aXBsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0RheVBpY2tlck11bHRpcGxlJztcbmltcG9ydCB7IGlzRGF5UGlja2VyUmFuZ2UgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9EYXlQaWNrZXJSYW5nZSc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclNpbmdsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0RheVBpY2tlclNpbmdsZSc7XG5pbXBvcnQgeyB1c2VEYXlGb2N1cyB9IGZyb20gJy4vdXNlRGF5Rm9jdXMnO1xuLyoqXG4gKiBUaGlzIGhvb2sgcmV0dXJucyBkZXRhaWxzIGFib3V0IHRoZSBjb250ZW50IHRvIHJlbmRlciBpbiB0aGUgZGF5IGNlbGwuXG4gKlxuICpcbiAqIFdoZW4gYSBkYXkgY2VsbCBpcyByZW5kZXJlZCBpbiB0aGUgdGFibGUsIERheVBpY2tlciBjYW4gZWl0aGVyOlxuICpcbiAqIC0gcmVuZGVyIG5vdGhpbmc6IHdoZW4gdGhlIGRheSBpcyBvdXRzaWRlIHRoZSBtb250aCBvciBoYXMgbWF0Y2hlZCB0aGVcbiAqICAgXCJoaWRkZW5cIiBtb2RpZmllci5cbiAqIC0gcmVuZGVyIGEgYnV0dG9uLiBXaGVuIGEgc2VsZWN0aW9uIG1vZGUgaXMgc2V0LCBEYXlQaWNrZXIgcmVuZGVycyBhIGJ1dHRvblxuICogICB0byBhbGxvdyB0aGUgZm9jdXMgYW5kIHRoZSBzZWxlY3Rpb24uIEluIGNhc2Ugb2YgYGN1c3RvbWAgc2VsZWN0aW9uXG4gKiAgIG1vZGUsIERheVBpY2tlciBleHBlY3RzIGEgYG9uRGF5Q2xpY2tgIHByb3AgdG8gcmVuZGVyIGEgYnV0dG9uLlxuICogLSByZW5kZXIgYSBub24taW50ZXJhY3RpdmUgZWxlbWVudDogd2hlbiBubyBzZWxlY3Rpb24gbW9kZSBpcyBzZXQsIHRoZSBkYXlcbiAqICAgY2VsbCBzaG91bGRu4oCZdCByZXNwb25kIHRvIGFueSBpbnRlcmFjdGlvbi4gRGF5UGlja2VyIHNob3VsZCByZW5kZXIgYSBgZGl2YFxuICogICBvciBhIGBzcGFuYC5cbiAqXG4gKiAjIyMgVXNhZ2VcbiAqXG4gKiBVc2UgdGhpcyBob29rIHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFtbRGF5XV0gY29tcG9uZW50LiBDcmVhdGUgYVxuICogbmV3IGBEYXlgIGNvbXBvbmVudCB1c2luZyB0aGlzIGhvb2sgYW5kIHBhc3MgaXQgdG8gdGhlIGBjb21wb25lbnRzYCBwcm9wLlxuICogVGhlIHNvdXJjZSBvZiBbW0RheV1dIGNhbiBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuXG4gKlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXkoXG4vKiogVGhlIGRheSByZW5kZXJlZCBpbiB0aGUgbW9udGguICovXG5kYXRlLCBcbi8qKiBUaGUgbW9udGggd2hlcmUgdGhlIGRhdGUgaXMgZGlzcGxheWVkLiBEYXlQaWNrZXIgcmVuZGVycyBkYXlzIG91dHNpZGUgdGhlIGRpc3BsYXkgbW9udGggd2hlbiBgc2hvd091dHNpZGVEYXlzYCBpcyB0cnVlLiAqL1xuZGlzcGxheU1vbnRoLCBcbi8qKiBBIHJlZiB0byB0aGUgYnV0dG9uIGVsZW1lbnQuICovXG5idXR0b25SZWYpIHtcbiAgICB2YXIgY29udGV4dCA9IHVzZURheVBpY2tlcigpO1xuICAgIHZhciBzaW5nbGUgPSB1c2VTZWxlY3RTaW5nbGUoKTtcbiAgICB2YXIgbXVsdGlwbGUgPSB1c2VTZWxlY3RNdWx0aXBsZSgpO1xuICAgIHZhciByYW5nZSA9IHVzZVNlbGVjdFJhbmdlKCk7XG4gICAgdmFyIF9hID0gdXNlRGF5Rm9jdXMoZGF0ZSwgYnV0dG9uUmVmKSwgZm9jdXMgPSBfYS5mb2N1cywgYmx1ciA9IF9hLmJsdXIsIGZvY3VzT25LZXlEb3duID0gX2EuZm9jdXNPbktleURvd24sIGlzRm9jdXNUYXJnZXQgPSBfYS5pc0ZvY3VzVGFyZ2V0O1xuICAgIHZhciBfYiA9IHVzZURheU1vZGlmaWVycyhkYXRlKSwgbW9kaWZpZXJzID0gX2IubW9kaWZpZXJzLCBtb2RpZmllckNsYXNzTmFtZXMgPSBfYi5tb2RpZmllckNsYXNzTmFtZXMsIG1vZGlmaWVyU3R5bGUgPSBfYi5tb2RpZmllclN0eWxlO1xuICAgIHZhciBpc091dHNpZGUgPSAhaXNTYW1lTW9udGgoZGF0ZSwgZGlzcGxheU1vbnRoKTtcbiAgICB2YXIgcmV0dXJuVmFsdWUgPSB7XG4gICAgICAgIGlzT3V0c2lkZTogaXNPdXRzaWRlLFxuICAgICAgICBtb2RpZmllcnM6IG1vZGlmaWVycyxcbiAgICAgICAgc2VsZWN0ZWQ6IGlzRGF5UGlja2VyU2luZ2xlKGNvbnRleHQpXG4gICAgICAgICAgICA/IHNpbmdsZS5zZWxlY3RlZFxuICAgICAgICAgICAgOiBpc0RheVBpY2tlck11bHRpcGxlKGNvbnRleHQpXG4gICAgICAgICAgICAgICAgPyBtdWx0aXBsZS5zZWxlY3RlZFxuICAgICAgICAgICAgICAgIDogaXNEYXlQaWNrZXJSYW5nZShjb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICA/IHJhbmdlLnNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBzaW5nbGU6IHNpbmdsZSxcbiAgICAgICAgbXVsdGlwbGU6IG11bHRpcGxlLFxuICAgICAgICByYW5nZTogcmFuZ2VcbiAgICB9O1xuICAgIGlmIChpc091dHNpZGUgJiYgIWNvbnRleHQuc2hvd091dHNpZGVEYXlzKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICB9XG4gICAgaWYgKG1vZGlmaWVycy5oaWRkZW4pIHtcbiAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgIH1cbiAgICB2YXIgY2xhc3NOYW1lcyA9IFtjb250ZXh0LmNsYXNzTmFtZXMuZGF5XS5jb25jYXQobW9kaWZpZXJDbGFzc05hbWVzKTtcbiAgICB2YXIgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29udGV4dC5zdHlsZXMuZGF5KSwgbW9kaWZpZXJTdHlsZSk7XG4gICAgaWYgKGlzT3V0c2lkZSkge1xuICAgICAgICBjbGFzc05hbWVzLnB1c2goY29udGV4dC5jbGFzc05hbWVzLmRheV9vdXRzaWRlKTtcbiAgICAgICAgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29udGV4dC5zdHlsZXMpLCBjb250ZXh0LnN0eWxlcy5kYXlfb3V0c2lkZSk7XG4gICAgfVxuICAgIHZhciBEYXlDb250ZW50ID0gY29udGV4dC5jb21wb25lbnRzLkRheUNvbnRlbnQ7XG4gICAgdmFyIGNoaWxkcmVuID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF5Q29udGVudCwgeyBkYXRlOiBkYXRlLCBkaXNwbGF5TW9udGg6IGRpc3BsYXlNb250aCwgbW9kaWZpZXJzOiBtb2RpZmllcnMgfSkpO1xuICAgIHZhciBjbGFzc05hbWUgPSBjbGFzc05hbWVzLmpvaW4oJyAnKTtcbiAgICBpZiAoIWNvbnRleHQubW9kZSAmJiAhY29udGV4dC5vbkRheUNsaWNrKSB7XG4gICAgICAgIHJldHVybiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgcmV0dXJuVmFsdWUpLCB7IG5vbkludGVyYWN0aXZlUHJvcHM6IHtcbiAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgICAgICAgICB9IH0pO1xuICAgIH1cbiAgICAvLyAjcmVnaW9uIEV2ZW50IGhhbmRsZXJzXG4gICAgdmFyIGhhbmRsZUNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoaXNEYXlQaWNrZXJTaW5nbGUoY29udGV4dCkpIHtcbiAgICAgICAgICAgIChfYSA9IHNpbmdsZS5vbkRheUNsaWNrKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChzaW5nbGUsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNEYXlQaWNrZXJNdWx0aXBsZShjb250ZXh0KSkge1xuICAgICAgICAgICAgKF9iID0gbXVsdGlwbGUub25EYXlDbGljaykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwobXVsdGlwbGUsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNEYXlQaWNrZXJSYW5nZShjb250ZXh0KSkge1xuICAgICAgICAgICAgKF9jID0gcmFuZ2Uub25EYXlDbGljaykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwocmFuZ2UsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgICAgIH1cbiAgICAgICAgKF9kID0gY29udGV4dC5vbkRheUNsaWNrKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZUZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb2N1cyhkYXRlKTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheUZvY3VzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZUJsdXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGJsdXIoKTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheUJsdXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlS2V5RG93biA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgZm9jdXNPbktleURvd24oZSk7XG4gICAgICAgIChfYSA9IGNvbnRleHQub25EYXlLZXlEb3duKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZUtleVVwID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBjb250ZXh0Lm9uRGF5S2V5VXApID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlTW91c2VFbnRlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheU1vdXNlRW50ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlTW91c2VMZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheU1vdXNlTGVhdmUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlVG91Y2hDYW5jZWwgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIChfYSA9IGNvbnRleHQub25EYXlUb3VjaENhbmNlbCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY29udGV4dCwgZGF0ZSwgbW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIHZhciBoYW5kbGVUb3VjaEVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheVRvdWNoRW5kKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZVRvdWNoTW92ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheVRvdWNoTW92ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY29udGV4dCwgZGF0ZSwgbW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIHZhciBoYW5kbGVUb3VjaFN0YXJ0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBjb250ZXh0Lm9uRGF5VG91Y2hTdGFydCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY29udGV4dCwgZGF0ZSwgbW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIGlmIChpc091dHNpZGUpIHtcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGNvbnRleHQuY2xhc3NOYW1lcy5kYXlfb3V0c2lkZSk7XG4gICAgICAgIHN0eWxlID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbnRleHQuc3R5bGVzKSwgY29udGV4dC5zdHlsZXMuZGF5X291dHNpZGUpO1xuICAgIH1cbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWVzLmpvaW4oJyAnKTtcbiAgICB2YXIgc2VsZWN0ZWQgPSBtb2RpZmllcnMuc2VsZWN0ZWQsIGRpc2FibGVkID0gbW9kaWZpZXJzLmRpc2FibGVkO1xuICAgIHZhciB0YWJJbmRleCA9IGlzRm9jdXNUYXJnZXQgPyAwIDogLTE7XG4gICAgcmV0dXJuIF9fYXNzaWduKF9fYXNzaWduKHt9LCByZXR1cm5WYWx1ZSksIHsgYnV0dG9uUHJvcHM6IHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICAgICAgICAgICdhcmlhLXByZXNzZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICAgICAgdGFiSW5kZXg6IHRhYkluZGV4LFxuICAgICAgICAgICAgb25DbGljazogaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyxcbiAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlQmx1cixcbiAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlS2V5RG93bixcbiAgICAgICAgICAgIG9uS2V5VXA6IGhhbmRsZUtleVVwLFxuICAgICAgICAgICAgb25Nb3VzZUVudGVyOiBoYW5kbGVNb3VzZUVudGVyLFxuICAgICAgICAgICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICAgICAgICAgICAgb25Ub3VjaENhbmNlbDogaGFuZGxlVG91Y2hDYW5jZWwsXG4gICAgICAgICAgICBvblRvdWNoRW5kOiBoYW5kbGVUb3VjaEVuZCxcbiAgICAgICAgICAgIG9uVG91Y2hNb3ZlOiBoYW5kbGVUb3VjaE1vdmUsXG4gICAgICAgICAgICBvblRvdWNoU3RhcnQ6IGhhbmRsZVRvdWNoU3RhcnRcbiAgICAgICAgfSB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZURheS5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyB1c2VEYXkgfSBmcm9tICcuL2hvb2tzL3VzZURheSc7XG4vKipcbiAqIFRoZSBjb250ZW50IG9mIGEgZGF5IGNlbGwg4oCTIGFzIGEgYnV0dG9uIG9yIHNwYW4gZWxlbWVudCBhY2NvcmRpbmcgdG8gaXRzXG4gKiBtb2RpZmllcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEYXkocHJvcHMpIHtcbiAgICB2YXIgYnV0dG9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBkYXkgPSB1c2VEYXkocHJvcHMuZGF0ZSwgcHJvcHMuZGlzcGxheU1vbnRoLCBidXR0b25SZWYpO1xuICAgIHZhciBidXR0b25Qcm9wcyA9IGRheS5idXR0b25Qcm9wcywgbm9uSW50ZXJhY3RpdmVQcm9wcyA9IGRheS5ub25JbnRlcmFjdGl2ZVByb3BzO1xuICAgIGlmICghYnV0dG9uUHJvcHMgJiYgIW5vbkludGVyYWN0aXZlUHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwpO1xuICAgIH1cbiAgICBpZiAobm9uSW50ZXJhY3RpdmVQcm9wcykge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgbm9uSW50ZXJhY3RpdmVQcm9wcykpO1xuICAgIH1cbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIF9fYXNzaWduKHsgcmVmOiBidXR0b25SZWYgfSwgYnV0dG9uUHJvcHMpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURheS5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIHRoZSBjb250ZW50IG9mIHRoZSBkYXkgY2VsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERheUNvbnRlbnQocHJvcHMpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgbG9jYWxlID0gX2EubG9jYWxlLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGVzID0gX2Euc3R5bGVzLCBsYWJlbERheSA9IF9hLmxhYmVscy5sYWJlbERheSwgZm9ybWF0RGF5ID0gX2EuZm9ybWF0dGVycy5mb3JtYXREYXk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIgfSwgZm9ybWF0RGF5KHByb3BzLmRhdGUsIHsgbG9jYWxlOiBsb2NhbGUgfSkpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy52aGlkZGVuLCBzdHlsZTogc3R5bGVzLnZoaWRkZW4gfSwgbGFiZWxEYXkocHJvcHMuZGF0ZSwgcHJvcHMubW9kaWZpZXJzLCB7IGxvY2FsZTogbG9jYWxlIH0pKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5Q29udGVudC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIGEgc3R5bGVkIHNlbGVjdCBjb21wb25lbnQg4oCTIGRpc3BsYXlpbmcgYSBjYXB0aW9uIGFuZCBhIGN1c3RvbVxuICogZHJvcC1kb3duIGljb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEcm9wZG93bihwcm9wcykge1xuICAgIHZhciBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLCB2YWx1ZSA9IHByb3BzLnZhbHVlLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjYXB0aW9uID0gcHJvcHMuY2FwdGlvbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCBzdHlsZSA9IHByb3BzLnN0eWxlO1xuICAgIHZhciBfYSA9IHVzZURheVBpY2tlcigpLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGVzID0gX2Euc3R5bGVzLCBJY29uRHJvcGRvd24gPSBfYS5jb21wb25lbnRzLkljb25Ecm9wZG93bjtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc3R5bGU6IHN0eWxlIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnZoaWRkZW4gfSwgcHJvcHNbJ2FyaWEtbGFiZWwnXSksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIiwgeyBcImFyaWEtbGFiZWxcIjogcHJvcHNbJ2FyaWEtbGFiZWwnXSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmRyb3Bkb3duLCBzdHlsZTogc3R5bGVzLmRyb3Bkb3duLCB2YWx1ZTogdmFsdWUsIG9uQ2hhbmdlOiBvbkNoYW5nZSB9LCBjaGlsZHJlbiksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMuY2FwdGlvbl9sYWJlbCwgc3R5bGU6IHN0eWxlcy5jYXB0aW9uX2xhYmVsLCBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgICBjYXB0aW9uLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uRHJvcGRvd24sIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmRyb3Bkb3duX2ljb24sIHN0eWxlOiBzdHlsZXMuZHJvcGRvd25faWNvbiB9KSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuLyoqIFJlbmRlciB0aGUgRm9vdGVyIGNvbXBvbmVudCAoZW1wdHkgYXMgZGVmYXVsdCkuKi9cbmV4cG9ydCBmdW5jdGlvbiBGb290ZXIoKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGZvb3RlciA9IF9hLmZvb3Rlciwgc3R5bGVzID0gX2Euc3R5bGVzLCB0Zm9vdCA9IF9hLmNsYXNzTmFtZXMudGZvb3Q7XG4gICAgaWYgKCFmb290ZXIpXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0Zm9vdFwiLCB7IGNsYXNzTmFtZTogdGZvb3QsIHN0eWxlOiBzdHlsZXMudGZvb3QgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInRyXCIsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidGRcIiwgeyBjb2xTcGFuOiA4IH0sIGZvb3RlcikpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXIuanMubWFwIiwiaW1wb3J0IHsgYWRkRGF5cywgc3RhcnRPZldlZWsgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIEdlbmVyYXRlIGEgc2VyaWVzIG9mIDcgZGF5cywgc3RhcnRpbmcgZnJvbSB0aGUgd2VlaywgdG8gdXNlIGZvciBmb3JtYXR0aW5nXG4gKiB0aGUgd2Vla2RheSBuYW1lcyAoTW9uZGF5LCBUdWVzZGF5LCBldGMuKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdlZWtkYXlzKGxvY2FsZSkge1xuICAgIHZhciBzdGFydCA9IHN0YXJ0T2ZXZWVrKG5ldyBEYXRlKCksIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgdmFyIGRheXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICB2YXIgZGF5ID0gYWRkRGF5cyhzdGFydCwgaSk7XG4gICAgICAgIGRheXMucHVzaChkYXkpO1xuICAgIH1cbiAgICByZXR1cm4gZGF5cztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldFdlZWtkYXlzLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgZ2V0V2Vla2RheXMgfSBmcm9tICcuL3V0aWxzJztcbi8qKlxuICogUmVuZGVyIHRoZSBIZWFkIGNvbXBvbmVudCAtIGkuZS4gdGhlIHRhYmxlIGhlYWQgd2l0aCB0aGUgd2Vla2RheSBuYW1lcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhlYWQoKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGNsYXNzTmFtZXMgPSBfYS5jbGFzc05hbWVzLCBzdHlsZXMgPSBfYS5zdHlsZXMsIHNob3dXZWVrTnVtYmVyID0gX2Euc2hvd1dlZWtOdW1iZXIsIGxvY2FsZSA9IF9hLmxvY2FsZSwgZm9ybWF0V2Vla2RheU5hbWUgPSBfYS5mb3JtYXR0ZXJzLmZvcm1hdFdlZWtkYXlOYW1lLCBsYWJlbFdlZWtkYXkgPSBfYS5sYWJlbHMubGFiZWxXZWVrZGF5O1xuICAgIHZhciB3ZWVrZGF5cyA9IGdldFdlZWtkYXlzKGxvY2FsZSk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwidGhlYWRcIiwgeyBzdHlsZTogc3R5bGVzLmhlYWQsIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5oZWFkIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0clwiLCB7IHN0eWxlOiBzdHlsZXMuaGVhZF9yb3csIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5oZWFkX3JvdyB9LFxuICAgICAgICAgICAgc2hvd1dlZWtOdW1iZXIgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aFwiLCB7IHNjb3BlOiBcImNvbFwiLCBzdHlsZTogc3R5bGVzLmhlYWRfY2VsbCwgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmhlYWRfY2VsbCB9KSksXG4gICAgICAgICAgICB3ZWVrZGF5cy5tYXAoZnVuY3Rpb24gKHdlZWtkYXksIGkpIHsgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwidGhcIiwgeyBrZXk6IGksIHNjb3BlOiBcImNvbFwiLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMuaGVhZF9jZWxsLCBzdHlsZTogc3R5bGVzLmhlYWRfY2VsbCB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0sIGZvcm1hdFdlZWtkYXlOYW1lKHdlZWtkYXksIHsgbG9jYWxlOiBsb2NhbGUgfSkpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnZoaWRkZW4gfSwgbGFiZWxXZWVrZGF5KHdlZWtkYXksIHsgbG9jYWxlOiBsb2NhbGUgfSkpKSk7IH0pKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVhZC5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBpY29uIGluIHRoZSBzdHlsZWQgZHJvcC1kb3duLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSWNvbkRyb3Bkb3duKHByb3BzKSB7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9fYXNzaWduKHsgd2lkdGg6IFwiOHB4XCIsIGhlaWdodDogXCI4cHhcIiwgdmlld0JveDogXCIwIDAgMTIwIDEyMFwiLCBcImRhdGEtdGVzdGlkXCI6IFwiaWNvbkRyb3Bkb3duXCIgfSwgcHJvcHMpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGQ6IFwiTTQuMjIxODI1NDEsNDguMjIxODI1NCBDOC40NDIyMjgyOCw0NC4wMDE0MjI1IDE1LjIzODg0OTQsNDMuOTI3MzgwNCAxOS41NDk2NDU5LDQ3Ljk5OTY5ODkgTDE5Ljc3ODE3NDYsNDguMjIxODI1NCBMNjAsODguNDQzIEwxMDAuMjIxODI1LDQ4LjIyMTgyNTQgQzEwNC40NDIyMjgsNDQuMDAxNDIyNSAxMTEuMjM4ODQ5LDQzLjkyNzM4MDQgMTE1LjU0OTY0Niw0Ny45OTk2OTg5IEwxMTUuNzc4MTc1LDQ4LjIyMTgyNTQgQzExOS45OTg1NzcsNTIuNDQyMjI4MyAxMjAuMDcyNjIsNTkuMjM4ODQ5NCAxMTYuMDAwMzAxLDYzLjU0OTY0NTkgTDExNS43NzgxNzUsNjMuNzc4MTc0NiBMNjcuNzc4MTc0NiwxMTEuNzc4MTc1IEM2My41NTc3NzE3LDExNS45OTg1NzcgNTYuNzYxMTUwNiwxMTYuMDcyNjIgNTIuNDUwMzU0MSwxMTIuMDAwMzAxIEw1Mi4yMjE4MjU0LDExMS43NzgxNzUgTDQuMjIxODI1NDEsNjMuNzc4MTc0NiBDLTAuMDczOTQxODAyMyw1OS40ODI0MDc0IC0wLjA3Mzk0MTgwMjMsNTIuNTE3NTkyNiA0LjIyMTgyNTQxLDQ4LjIyMTgyNTQgWlwiLCBmaWxsOiBcImN1cnJlbnRDb2xvclwiLCBmaWxsUnVsZTogXCJub256ZXJvXCIgfSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUljb25Ecm9wZG93bi5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBcInByZXZpb3VzIG1vbnRoXCIgYnV0dG9uIGluIHRoZSBuYXZpZ2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSWNvbkxlZnQocHJvcHMpIHtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX19hc3NpZ24oeyB3aWR0aDogXCIxNnB4XCIsIGhlaWdodDogXCIxNnB4XCIsIHZpZXdCb3g6IFwiMCAwIDEyMCAxMjBcIiwgXCJkYXRhLXRlc3RpZFwiOiBcImljb25MZWZ0XCIgfSwgcHJvcHMpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGQ6IFwiTTY5LjQ5MDMzMiwzLjM0MzE0NTc1IEM3Mi42MTQ1MjYzLDAuMjE4OTUxNDE2IDc3LjY3OTg0NjIsMC4yMTg5NTE0MTYgODAuODA0MDQwNSwzLjM0MzE0NTc1IEM4My44NjE3NjI2LDYuNDAwODY3ODYgODMuOTI2ODIwNSwxMS4zMTc5OTMxIDgwLjk5OTIxNDMsMTQuNDU0ODM4OCBMODAuODA0MDQwNSwxNC42NTY4NTQyIEwzNS40NjEsNjAgTDgwLjgwNDA0MDUsMTA1LjM0MzE0NiBDODMuODYxNzYyNiwxMDguNDAwODY4IDgzLjkyNjgyMDUsMTEzLjMxNzk5MyA4MC45OTkyMTQzLDExNi40NTQ4MzkgTDgwLjgwNDA0MDUsMTE2LjY1Njg1NCBDNzcuNzQ2MzE4NCwxMTkuNzE0NTc2IDcyLjgyOTE5MzEsMTE5Ljc3OTYzNCA2OS42OTIzNDc1LDExNi44NTIwMjggTDY5LjQ5MDMzMiwxMTYuNjU2ODU0IEwxOC40OTAzMzIsNjUuNjU2ODU0MiBDMTUuNDMyNjA5OSw2Mi41OTkxMzIxIDE1LjM2NzU1Miw1Ny42ODIwMDY5IDE4LjI5NTE1ODMsNTQuNTQ1MTYxMiBMMTguNDkwMzMyLDU0LjM0MzE0NTggTDY5LjQ5MDMzMiwzLjM0MzE0NTc1IFpcIiwgZmlsbDogXCJjdXJyZW50Q29sb3JcIiwgZmlsbFJ1bGU6IFwibm9uemVyb1wiIH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1JY29uTGVmdC5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBcIm5leHQgbW9udGhcIiBidXR0b24gaW4gdGhlIG5hdmlnYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBJY29uUmlnaHQocHJvcHMpIHtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX19hc3NpZ24oeyB3aWR0aDogXCIxNnB4XCIsIGhlaWdodDogXCIxNnB4XCIsIHZpZXdCb3g6IFwiMCAwIDEyMCAxMjBcIiB9LCBwcm9wcywgeyBcImRhdGEtdGVzdGlkXCI6IFwiaWNvblJpZ2h0XCIgfSksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZDogXCJNNDkuODA0MDQwNSwzLjM0MzE0NTc1IEM0Ni42Nzk4NDYyLDAuMjE4OTUxNDE2IDQxLjYxNDUyNjMsMC4yMTg5NTE0MTYgMzguNDkwMzMyLDMuMzQzMTQ1NzUgQzM1LjQzMjYwOTksNi40MDA4Njc4NiAzNS4zNjc1NTIsMTEuMzE3OTkzMSAzOC4yOTUxNTgzLDE0LjQ1NDgzODggTDM4LjQ5MDMzMiwxNC42NTY4NTQyIEw4My44MzMzNzI1LDYwIEwzOC40OTAzMzIsMTA1LjM0MzE0NiBDMzUuNDMyNjA5OSwxMDguNDAwODY4IDM1LjM2NzU1MiwxMTMuMzE3OTkzIDM4LjI5NTE1ODMsMTE2LjQ1NDgzOSBMMzguNDkwMzMyLDExNi42NTY4NTQgQzQxLjU0ODA1NDEsMTE5LjcxNDU3NiA0Ni40NjUxNzk0LDExOS43Nzk2MzQgNDkuNjAyMDI1LDExNi44NTIwMjggTDQ5LjgwNDA0MDUsMTE2LjY1Njg1NCBMMTAwLjgwNDA0MSw2NS42NTY4NTQyIEMxMDMuODYxNzYzLDYyLjU5OTEzMjEgMTAzLjkyNjgyMSw1Ny42ODIwMDY5IDEwMC45OTkyMTQsNTQuNTQ1MTYxMiBMMTAwLjgwNDA0MSw1NC4zNDMxNDU4IEw0OS44MDQwNDA1LDMuMzQzMTQ1NzUgWlwiLCBmaWxsOiBcImN1cnJlbnRDb2xvclwiIH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1JY29uUmlnaHQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldFVuaXhUaW1lIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIGEgcm93IGluIHRoZSBjYWxlbmRhciwgd2l0aCB0aGUgZGF5cyBhbmQgb3B0aW9uYWxseSB0aGUgd2VlayBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSb3cocHJvcHMpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgc3R5bGVzID0gX2Euc3R5bGVzLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc2hvd1dlZWtOdW1iZXIgPSBfYS5zaG93V2Vla051bWJlciwgX2IgPSBfYS5jb21wb25lbnRzLCBEYXkgPSBfYi5EYXksIFdlZWtOdW1iZXIgPSBfYi5XZWVrTnVtYmVyO1xuICAgIHZhciB3ZWVrTnVtYmVyQ2VsbDtcbiAgICBpZiAoc2hvd1dlZWtOdW1iZXIpIHtcbiAgICAgICAgd2Vla051bWJlckNlbGwgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChcInRkXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmNlbGwsIHN0eWxlOiBzdHlsZXMuY2VsbCB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChXZWVrTnVtYmVyLCB7IG51bWJlcjogcHJvcHMud2Vla051bWJlciwgZGF0ZXM6IHByb3BzLmRhdGVzIH0pKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInRyXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnJvdywgc3R5bGU6IHN0eWxlcy5yb3cgfSxcbiAgICAgICAgd2Vla051bWJlckNlbGwsXG4gICAgICAgIHByb3BzLmRhdGVzLm1hcChmdW5jdGlvbiAoZGF0ZSkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5jZWxsLCBzdHlsZTogc3R5bGVzLmNlbGwsIGtleTogZ2V0VW5peFRpbWUoZGF0ZSkgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF5LCB7IGRpc3BsYXlNb250aDogcHJvcHMuZGlzcGxheU1vbnRoLCBkYXRlOiBkYXRlIH0pKSk7IH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Sb3cuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuLyoqXG4gKiBSZW5kZXIgdGhlIHdlZWsgbnVtYmVyIGVsZW1lbnQuIElmIGBvbldlZWtOdW1iZXJDbGlja2AgaXMgcGFzc2VkIHRvIERheVBpY2tlciwgaXRcbiAqIHJlbmRlcnMgYSBidXR0b24sIG90aGVyd2lzZSBhIHNwYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdlZWtOdW1iZXIocHJvcHMpIHtcbiAgICB2YXIgd2Vla051bWJlciA9IHByb3BzLm51bWJlciwgZGF0ZXMgPSBwcm9wcy5kYXRlcztcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgb25XZWVrTnVtYmVyQ2xpY2sgPSBfYS5vbldlZWtOdW1iZXJDbGljaywgc3R5bGVzID0gX2Euc3R5bGVzLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgbG9jYWxlID0gX2EubG9jYWxlLCBsYWJlbFdlZWtOdW1iZXIgPSBfYS5sYWJlbHMubGFiZWxXZWVrTnVtYmVyLCBmb3JtYXRXZWVrTnVtYmVyID0gX2EuZm9ybWF0dGVycy5mb3JtYXRXZWVrTnVtYmVyO1xuICAgIHZhciBoYW5kbGVDbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIG9uV2Vla051bWJlckNsaWNrID09PSBudWxsIHx8IG9uV2Vla051bWJlckNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbldlZWtOdW1iZXJDbGljayh3ZWVrTnVtYmVyLCBkYXRlcywgZSk7XG4gICAgfTtcbiAgICB2YXIgY29udGVudCA9IGZvcm1hdFdlZWtOdW1iZXIoTnVtYmVyKHdlZWtOdW1iZXIpLCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgIGlmICghb25XZWVrTnVtYmVyQ2xpY2spIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy53ZWVrbnVtYmVyLCBzdHlsZTogc3R5bGVzLndlZWtudW1iZXIgfSwgY29udGVudCkpO1xuICAgIH1cbiAgICB2YXIgbGFiZWwgPSBsYWJlbFdlZWtOdW1iZXIoTnVtYmVyKHdlZWtOdW1iZXIpLCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGxhYmVsLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMud2Vla251bWJlciwgc3R5bGU6IHN0eWxlcy53ZWVrbnVtYmVyLCBvbkNsaWNrOiBoYW5kbGVDbGljayB9LCBjb250ZW50KSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1XZWVrTnVtYmVyLmpzLm1hcCIsIi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgQ1NTIGNsYXNzZXMuXG4gKi9cbmV4cG9ydCB2YXIgZGVmYXVsdENsYXNzTmFtZXMgPSB7XG4gICAgcm9vdDogJ3JkcCcsXG4gICAgbXVsdGlwbGVfbW9udGhzOiAncmRwLW11bHRpcGxlX21vbnRocycsXG4gICAgd2l0aF93ZWVrbnVtYmVyOiAncmRwLXdpdGhfd2Vla251bWJlcicsXG4gICAgdmhpZGRlbjogJ3JkcC12aGlkZGVuJyxcbiAgICBidXR0b25fcmVzZXQ6ICdyZHAtYnV0dG9uX3Jlc2V0JyxcbiAgICBidXR0b246ICdyZHAtYnV0dG9uJyxcbiAgICBjYXB0aW9uOiAncmRwLWNhcHRpb24nLFxuICAgIGNhcHRpb25fc3RhcnQ6ICdyZHAtY2FwdGlvbl9zdGFydCcsXG4gICAgY2FwdGlvbl9lbmQ6ICdyZHAtY2FwdGlvbl9lbmQnLFxuICAgIGNhcHRpb25fYmV0d2VlbjogJ3JkcC1jYXB0aW9uX2JldHdlZW4nLFxuICAgIGNhcHRpb25fbGFiZWw6ICdyZHAtY2FwdGlvbl9sYWJlbCcsXG4gICAgY2FwdGlvbl9kcm9wZG93bnM6ICdyZHAtY2FwdGlvbl9kcm9wZG93bnMnLFxuICAgIGRyb3Bkb3duOiAncmRwLWRyb3Bkb3duJyxcbiAgICBkcm9wZG93bl9tb250aDogJ3JkcC1kcm9wZG93bl9tb250aCcsXG4gICAgZHJvcGRvd25feWVhcjogJ3JkcC1kcm9wZG93bl95ZWFyJyxcbiAgICBkcm9wZG93bl9pY29uOiAncmRwLWRyb3Bkb3duX2ljb24nLFxuICAgIG1vbnRoczogJ3JkcC1tb250aHMnLFxuICAgIG1vbnRoOiAncmRwLW1vbnRoJyxcbiAgICB0YWJsZTogJ3JkcC10YWJsZScsXG4gICAgdGJvZHk6ICdyZHAtdGJvZHknLFxuICAgIHRmb290OiAncmRwLXRmb290JyxcbiAgICBoZWFkOiAncmRwLWhlYWQnLFxuICAgIGhlYWRfcm93OiAncmRwLWhlYWRfcm93JyxcbiAgICBoZWFkX2NlbGw6ICdyZHAtaGVhZF9jZWxsJyxcbiAgICBuYXY6ICdyZHAtbmF2JyxcbiAgICBuYXZfYnV0dG9uOiAncmRwLW5hdl9idXR0b24nLFxuICAgIG5hdl9idXR0b25fcHJldmlvdXM6ICdyZHAtbmF2X2J1dHRvbl9wcmV2aW91cycsXG4gICAgbmF2X2J1dHRvbl9uZXh0OiAncmRwLW5hdl9idXR0b25fbmV4dCcsXG4gICAgbmF2X2ljb246ICdyZHAtbmF2X2ljb24nLFxuICAgIHJvdzogJ3JkcC1yb3cnLFxuICAgIHdlZWtudW1iZXI6ICdyZHAtd2Vla251bWJlcicsXG4gICAgY2VsbDogJ3JkcC1jZWxsJyxcbiAgICBkYXk6ICdyZHAtZGF5JyxcbiAgICBkYXlfb3V0c2lkZTogJ3JkcC1kYXlfb3V0c2lkZSdcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0Q2xhc3NOYW1lcy5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIGNhcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDYXB0aW9uKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdChtb250aCwgJ0xMTEwgeScsIG9wdGlvbnMpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0Q2FwdGlvbi5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIERheSBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXkoZGF5LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdChkYXksICdkJywgb3B0aW9ucyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXREYXkuanMubWFwIiwiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqXG4gKiBUaGUgZGVmYXVsdCBmb3JtYXR0ZXIgZm9yIHRoZSBNb250aCBjYXB0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TW9udGhDYXB0aW9uKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdChtb250aCwgJ0xMTEwnLCBvcHRpb25zKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1hdE1vbnRoQ2FwdGlvbi5qcy5tYXAiLCIvKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIHdlZWsgbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V2Vla051bWJlcih3ZWVrTnVtYmVyKSB7XG4gICAgcmV0dXJuIFwiXCIgKyB3ZWVrTnVtYmVyO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0V2Vla051bWJlci5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIHdlZWtkYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXZWVrZGF5TmFtZSh3ZWVrZGF5LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdCh3ZWVrZGF5LCAnY2NjY2NjJywgb3B0aW9ucyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXRXZWVrZGF5TmFtZS5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIFllYXIgY2FwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFllYXJDYXB0aW9uKHllYXIsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gZm9ybWF0KHllYXIsICd5eXl5Jywgb3B0aW9ucyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXRZZWFyQ2FwdGlvbi5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIHRoZSBkYXkgYnV0dG9uLlxuICovXG5leHBvcnQgdmFyIGxhYmVsRGF5ID0gZnVuY3Rpb24gKGRheSwgbW9kaWZlcnMsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gZm9ybWF0KGRheSwgJ2RvIE1NTU0gKEVFRUUpJywgb3B0aW9ucyk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGFiZWxEYXkuanMubWFwIiwiLyoqXG4gKiBUaGUgZGVmYXVsdCBBUklBIGxhYmVsIGZvciB0aGUgV2Vla051bWJlciBlbGVtZW50LlxuICovXG5leHBvcnQgdmFyIGxhYmVsTW9udGhEcm9wZG93biA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gJ01vbnRoOiAnO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxhYmVsTW9udGhEcm9wZG93bi5qcy5tYXAiLCIvKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIG5leHQgbW9udGggYnV0dG9uIGluIG5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IHZhciBsYWJlbE5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICdHbyB0byBuZXh0IG1vbnRoJztcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYWJlbE5leHQuanMubWFwIiwiLyoqXG4gKiBUaGUgZGVmYXVsdCBBUklBIGxhYmVsIGZvciBwcmV2aW91cyBtb250aCBidXR0b24gaW4gbmF2aWdhdGlvblxuICovXG5leHBvcnQgdmFyIGxhYmVsUHJldmlvdXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICdHbyB0byBwcmV2aW91cyBtb250aCc7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGFiZWxQcmV2aW91cy5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIHRoZSBXZWVrZGF5IGVsZW1lbnQuXG4gKi9cbmV4cG9ydCB2YXIgbGFiZWxXZWVrZGF5ID0gZnVuY3Rpb24gKGRheSwgb3B0aW9ucykge1xuICAgIHJldHVybiBmb3JtYXQoZGF5LCAnY2NjYycsIG9wdGlvbnMpO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxhYmVsV2Vla2RheS5qcy5tYXAiLCIvKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIHRoZSBXZWVrTnVtYmVyIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCB2YXIgbGFiZWxXZWVrTnVtYmVyID0gZnVuY3Rpb24gKG4pIHtcbiAgICByZXR1cm4gXCJXZWVrIG4uIFwiICsgbjtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYWJlbFdlZWtOdW1iZXIuanMubWFwIiwiLyoqXG4gKiBUaGUgZGVmYXVsdCBBUklBIGxhYmVsIGZvciB0aGUgV2Vla051bWJlciBlbGVtZW50LlxuICovXG5leHBvcnQgdmFyIGxhYmVsWWVhckRyb3Bkb3duID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAnWWVhcjogJztcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYWJlbFllYXJEcm9wZG93bi5qcy5tYXAiLCJpbXBvcnQgeyBzdGFydE9mRGF5LCBzdGFydE9mTW9udGggfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIEJ1aWxkIHRoZSBgZnJvbURhdGVgIGFuZCBgdG9EYXRlYCB2YWx1ZXMsIGdpdmVuIHRoZSBmcm9tTW9udGgvdG9Nb250aFxuICogb3IgZnJvbVllYXIvdG9ZZWFyIHByb3BzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcm9tVG9Qcm9wcyhwcm9wcykge1xuICAgIHZhciBmcm9tWWVhciA9IHByb3BzLmZyb21ZZWFyLCB0b1llYXIgPSBwcm9wcy50b1llYXIsIGZyb21Nb250aCA9IHByb3BzLmZyb21Nb250aCwgdG9Nb250aCA9IHByb3BzLnRvTW9udGg7XG4gICAgdmFyIGZyb21EYXRlID0gcHJvcHMuZnJvbURhdGUsIHRvRGF0ZSA9IHByb3BzLnRvRGF0ZTtcbiAgICBpZiAoZnJvbU1vbnRoKSB7XG4gICAgICAgIGZyb21EYXRlID0gc3RhcnRPZk1vbnRoKGZyb21Nb250aCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGZyb21ZZWFyKSB7XG4gICAgICAgIGZyb21EYXRlID0gbmV3IERhdGUoZnJvbVllYXIsIDAsIDEpO1xuICAgIH1cbiAgICBpZiAodG9Nb250aCkge1xuICAgICAgICB0b0RhdGUgPSBzdGFydE9mTW9udGgodG9Nb250aCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRvWWVhcikge1xuICAgICAgICB0b0RhdGUgPSBuZXcgRGF0ZSh0b1llYXIsIDExLCAzMSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGZyb21EYXRlOiBmcm9tRGF0ZSA/IHN0YXJ0T2ZEYXkoZnJvbURhdGUpIDogdW5kZWZpbmVkLFxuICAgICAgICB0b0RhdGU6IHRvRGF0ZSA/IHN0YXJ0T2ZEYXkodG9EYXRlKSA6IHVuZGVmaW5lZFxuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXJzZUZyb21Ub1Byb3BzLmpzLm1hcCIsImltcG9ydCB7IF9fYXNzaWduLCBfX3Jlc3QgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBlblVTIH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlJztcbmltcG9ydCB7IENhcHRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0NhcHRpb24nO1xuaW1wb3J0IHsgQ2FwdGlvbkxhYmVsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9DYXB0aW9uTGFiZWwnO1xuaW1wb3J0IHsgRGF5IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9EYXknO1xuaW1wb3J0IHsgRGF5Q29udGVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRGF5Q29udGVudCc7XG5pbXBvcnQgeyBEcm9wZG93biB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRHJvcGRvd24nO1xuaW1wb3J0IHsgRm9vdGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Gb290ZXInO1xuaW1wb3J0IHsgSGVhZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvSGVhZCc7XG5pbXBvcnQgeyBJY29uRHJvcGRvd24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0ljb25Ecm9wZG93bic7XG5pbXBvcnQgeyBJY29uTGVmdCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvSWNvbkxlZnQnO1xuaW1wb3J0IHsgSWNvblJpZ2h0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9JY29uUmlnaHQnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Sb3cnO1xuaW1wb3J0IHsgV2Vla051bWJlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvV2Vla051bWJlcic7XG5pbXBvcnQgeyBkZWZhdWx0Q2xhc3NOYW1lcyB9IGZyb20gJy4vZGVmYXVsdENsYXNzTmFtZXMnO1xuaW1wb3J0ICogYXMgZm9ybWF0dGVycyBmcm9tICcuL2Zvcm1hdHRlcnMnO1xuaW1wb3J0ICogYXMgbGFiZWxzIGZyb20gJy4vbGFiZWxzJztcbmltcG9ydCB7IHBhcnNlRnJvbVRvUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbi8qKlxuICogVGhlIERheVBpY2tlciBDb250ZXh0IHNoYXJlcyB0aGUgcHJvcHMgcGFzc2VkIHRvIERheVBpY2tlciB3aXRoaW4gaW50ZXJuYWxcbiAqIGFuZCBjdXN0b20gY29tcG9uZW50cy4gSXQgaXMgdXNlZCB0byBzZXQgdGhlIGRlZmF1bHQgdmFsdWVzIGFuZCBwZXJmb3JtXG4gKiBvbmUtdGltZSBjYWxjdWxhdGlvbnMgcmVxdWlyZWQgdG8gcmVuZGVyIHRoZSBkYXlzLlxuICpcbiAqIERldmVsb3BlcnMgbWF5IGFjY2VzcyB0byB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VEYXlQaWNrZXJdXSBob29rIHdoZW5cbiAqIHVzaW5nIGN1c3RvbSBjb21wb25lbnRzLlxuICovXG5leHBvcnQgdmFyIERheVBpY2tlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG4vKipcbiAqIFRoZSBwcm92aWRlciBmb3IgdGhlIFtbRGF5UGlja2VyQ29udGV4dF1dLlxuICpcbiAqIFRoZSBjb250ZXh0IHZhbHVlIGlzIHNldCBieSBhc3NpZ25pbmcgZGVmYXVsdHMgZnJvbSB0aGUgaW5pdGlhbCBEYXlQaWNrZXJcbiAqIHByb3BzLlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBEYXlQaWNrZXJQcm92aWRlcihwcm9wcykge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZztcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgaW5pdGlhbFByb3BzID0gcHJvcHMuaW5pdGlhbFByb3BzO1xuICAgIHZhciBsb2NhbGUgPSAoX2EgPSBpbml0aWFsUHJvcHMubG9jYWxlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBlblVTO1xuICAgIHZhciBudW1iZXJPZk1vbnRocyA9IChfYiA9IGluaXRpYWxQcm9wcy5udW1iZXJPZk1vbnRocykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMTtcbiAgICB2YXIgdG9kYXkgPSAoX2MgPSBpbml0aWFsUHJvcHMudG9kYXkpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IG5ldyBEYXRlKCk7XG4gICAgLy8gTGltaXQgbmF2aWdhdGlvblxuICAgIHZhciBfaCA9IHBhcnNlRnJvbVRvUHJvcHMoaW5pdGlhbFByb3BzKSwgZnJvbURhdGUgPSBfaC5mcm9tRGF0ZSwgdG9EYXRlID0gX2gudG9EYXRlO1xuICAgIC8vIERlZmF1bHQgY2FwdGlvbiBsYXlvdXQuIElmIGNhbGVuZGFyIG5hdmlnYXRpb24gaXMgdW5saW1pdGVkLCBpdCBtdXN0IGJlXG4gICAgLy8gYWx3YXlzIGBidXR0b25zYCDigJMgYXMgd2UgY2Fubm90IGRpc3BsYXkgeWV0IGluZmluaXRlIG9wdGlvbnMgaW4gdGhlIGRyb3Bkb3duLlxuICAgIHZhciBjYXB0aW9uTGF5b3V0ID0gKF9kID0gaW5pdGlhbFByb3BzLmNhcHRpb25MYXlvdXQpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6ICdidXR0b25zJztcbiAgICBpZiAoIWZyb21EYXRlICYmICF0b0RhdGUpXG4gICAgICAgIGNhcHRpb25MYXlvdXQgPSAnYnV0dG9ucyc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHZhciB0b1llYXIgPSBpbml0aWFsUHJvcHMudG9ZZWFyLCBmcm9tWWVhciA9IGluaXRpYWxQcm9wcy5mcm9tWWVhciwgdG9Nb250aCA9IGluaXRpYWxQcm9wcy50b01vbnRoLCBmcm9tTW9udGggPSBpbml0aWFsUHJvcHMuZnJvbU1vbnRoLCBjb250ZXh0UHJvcHMgPSBfX3Jlc3QoaW5pdGlhbFByb3BzLCBbXCJ0b1llYXJcIiwgXCJmcm9tWWVhclwiLCBcInRvTW9udGhcIiwgXCJmcm9tTW9udGhcIl0pO1xuICAgIHZhciBjb250ZXh0ID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbnRleHRQcm9wcyksIHsgY2FwdGlvbkxheW91dDogY2FwdGlvbkxheW91dCwgZnJvbURhdGU6IGZyb21EYXRlLCB0b0RhdGU6IHRvRGF0ZSwgdG9kYXk6IHRvZGF5LCBsb2NhbGU6IGxvY2FsZSwgbW9kaWZpZXJDbGFzc05hbWVzOiAoX2UgPSBpbml0aWFsUHJvcHMubW9kaWZpZXJDbGFzc05hbWVzKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiB7fSwgXG4gICAgICAgIC8vIFRPRE86IFNob3VsZCB0aGlzIGJlIGluaXRpYWxQcm9wcy5tb2RpZmllclByZWZpeCA/PyAncmRwLWRheV8nP1xuICAgICAgICBtb2RpZmllclByZWZpeDogJ3JkcC1kYXlfJywgbW9kaWZpZXJzOiAoX2YgPSBpbml0aWFsUHJvcHMubW9kaWZpZXJzKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiB7fSwgbnVtYmVyT2ZNb250aHM6IG51bWJlck9mTW9udGhzLCBzdHlsZXM6IChfZyA9IGluaXRpYWxQcm9wcy5zdHlsZXMpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IHt9LCBjbGFzc05hbWVzOiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZGVmYXVsdENsYXNzTmFtZXMpLCBpbml0aWFsUHJvcHMuY2xhc3NOYW1lcyksIGZvcm1hdHRlcnM6IF9fYXNzaWduKF9fYXNzaWduKHt9LCBmb3JtYXR0ZXJzKSwgaW5pdGlhbFByb3BzLmZvcm1hdHRlcnMpLCBsYWJlbHM6IF9fYXNzaWduKF9fYXNzaWduKHt9LCBsYWJlbHMpLCBpbml0aWFsUHJvcHMubGFiZWxzKSwgY29tcG9uZW50czogX19hc3NpZ24oeyBDYXB0aW9uOiBDYXB0aW9uLCBDYXB0aW9uTGFiZWw6IENhcHRpb25MYWJlbCwgRGF5OiBEYXksIERheUNvbnRlbnQ6IERheUNvbnRlbnQsIERyb3Bkb3duOiBEcm9wZG93biwgRm9vdGVyOiBGb290ZXIsIEhlYWQ6IEhlYWQsIEljb25Ecm9wZG93bjogSWNvbkRyb3Bkb3duLCBJY29uUmlnaHQ6IEljb25SaWdodCwgSWNvbkxlZnQ6IEljb25MZWZ0LCBSb3c6IFJvdywgV2Vla051bWJlcjogV2Vla051bWJlciB9LCBpbml0aWFsUHJvcHMuY29tcG9uZW50cykgfSk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KERheVBpY2tlckNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHQgfSwgY2hpbGRyZW4pKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURheVBpY2tlckNvbnRleHQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IERheVBpY2tlckNvbnRleHQgfSBmcm9tICcuL0RheVBpY2tlckNvbnRleHQnO1xuLyoqXG4gKiBIb29rIHRvIGFjY2VzcyB0aGUgW1tEYXlQaWNrZXJDb250ZXh0XV0uXG4gKlxuICogVG8gdXNlIHRoaXMgaG9vayBtYWtlIHN1cmUgdG8gd3JhcCB0aGUgY29tcG9uZW50cyB3aXRoIGEgb25lXG4gKiBbW0RheVBpY2tlclByb3ZpZGVyXV0uXG4gKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURheVBpY2tlcigpIHtcbiAgICB2YXIgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRGF5UGlja2VyQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbnRleHQgaXMgbm90IGRlZmluZWQuIHVzZURheVBpY2tlciBtdXN0IGJlIHVzZWQgd2l0aGluIGEgRGF5UGlja2VyUHJvdmlkZXIgd2l0aCBhIHZhbGlkIHZhbHVlcy5cIik7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlRGF5UGlja2VyLmpzLm1hcCIsImltcG9ydCB7IGFkZERheXMsIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cywgZW5kT2ZXZWVrIH0gZnJvbSAnZGF0ZS1mbnMnO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE91dHNpZGVFbmREYXlzKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheXMgPSBbXTtcbiAgICB2YXIgbGFzdERheU9mV2VlayA9IGVuZE9mV2Vlayhtb250aCwgb3B0aW9ucyk7XG4gICAgdmFyIGVuZERpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobGFzdERheU9mV2VlaywgbW9udGgpO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IGVuZERpZmY7IGkrKykge1xuICAgICAgICB2YXIgZGF5RGF0ZSA9IGFkZERheXMobW9udGgsIGkpO1xuICAgICAgICBkYXlzLnB1c2goZGF5RGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBkYXlzO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0T3V0c2lkZUVuZERheXMuanMubWFwIiwiaW1wb3J0IHsgYWRkRGF5cywgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLCBzdGFydE9mV2VlayB9IGZyb20gJ2RhdGUtZm5zJztcbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRzaWRlU3RhcnREYXlzKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheXMgPSBbXTtcbiAgICB2YXIgZmlyc3REYXlPZldlZWsgPSBzdGFydE9mV2Vlayhtb250aCwgb3B0aW9ucyk7XG4gICAgdmFyIHN0YXJ0RGlmZiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhtb250aCwgZmlyc3REYXlPZldlZWspO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhcnREaWZmOyBpKyspIHtcbiAgICAgICAgdmFyIG5ld0RheSA9IGFkZERheXMoZmlyc3REYXlPZldlZWssIGkpO1xuICAgICAgICBkYXlzLnB1c2gobmV3RGF5KTtcbiAgICB9XG4gICAgcmV0dXJuIGRheXM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRPdXRzaWRlU3RhcnREYXlzLmpzLm1hcCIsImltcG9ydCB7IGFkZERheXMsIGFkZFdlZWtzLCBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsIGVuZE9mTW9udGgsIGdldFdlZWssIGdldFdlZWtzSW5Nb250aCwgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0T3V0c2lkZUVuZERheXMgfSBmcm9tICcuL2dldE91dHNpZGVFbmREYXlzJztcbmltcG9ydCB7IGdldE91dHNpZGVTdGFydERheXMgfSBmcm9tICcuL2dldE91dHNpZGVTdGFydERheXMnO1xuLyoqXG4gKiBSZXR1cm4gdGhlIHdlZWtzIGJlbG9uZ2luZyB0byB0aGUgZ2l2ZW4gbW9udGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWVrcyhtb250aCwgX2EpIHtcbiAgICB2YXIgbG9jYWxlID0gX2EubG9jYWxlLCBmaXhlZFdlZWtzID0gX2EuZml4ZWRXZWVrcztcbiAgICB2YXIgbW9udGhTdGFydCA9IHN0YXJ0T2ZNb250aChtb250aCk7XG4gICAgdmFyIG1vbnRoRW5kID0gZW5kT2ZNb250aChtb250aCk7XG4gICAgdmFyIGRpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobW9udGhFbmQsIG1vbnRoU3RhcnQpO1xuICAgIHZhciB3ZWVrcyA9IFtdO1xuICAgIHZhciBsYXN0V2VlayA9IHsgd2Vla051bWJlcjogMCwgZGF0ZXM6IFtdIH07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gZGlmZjsgaSsrKSB7XG4gICAgICAgIHZhciBkYXRlID0gYWRkRGF5cyhtb250aFN0YXJ0LCBpKTtcbiAgICAgICAgdmFyIHdlZWsgPSBnZXRXZWVrKGRhdGUsIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgICAgIGlmIChsYXN0V2Vlay53ZWVrTnVtYmVyICE9PSB3ZWVrKSB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgd2VlayBieSBhZGRpbmcgb3V0c2lkZSBzdGFydCBkYXlzXG4gICAgICAgICAgICB2YXIgc3RhcnREYXlzID0gZ2V0T3V0c2lkZVN0YXJ0RGF5cyhkYXRlLCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgICAgICAgICAgbGFzdFdlZWsgPSB7IHdlZWtOdW1iZXI6IHdlZWssIGRhdGVzOiBzdGFydERheXMgfTtcbiAgICAgICAgICAgIHdlZWtzLnB1c2gobGFzdFdlZWspO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RXZWVrLmRhdGVzLnB1c2goZGF0ZSk7XG4gICAgfVxuICAgIHZhciBsYXN0RGF5ID0gbGFzdFdlZWsuZGF0ZXNbbGFzdFdlZWsuZGF0ZXMubGVuZ3RoIC0gMV07XG4gICAgdmFyIGVuZERheXMgPSBnZXRPdXRzaWRlRW5kRGF5cyhsYXN0RGF5LCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgIGxhc3RXZWVrLmRhdGVzID0gbGFzdFdlZWsuZGF0ZXMuY29uY2F0KGVuZERheXMpO1xuICAgIC8vIEFkZCBleHRyYSB3ZWVrcyB0byB0aGUgbW9udGgsIHVwIHRvIDYgd2Vla3NcbiAgICBpZiAoZml4ZWRXZWVrcykge1xuICAgICAgICB2YXIgbGFzdFdlZWtEYXRlID0gbGFzdFdlZWsuZGF0ZXNbbGFzdFdlZWsuZGF0ZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIHZhciB3ZWVrc0luTW9udGggPSBnZXRXZWVrc0luTW9udGgobW9udGgsIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgICAgIGlmICh3ZWVrc0luTW9udGggPCA2KSB7XG4gICAgICAgICAgICB2YXIgZGlmZkRheXMgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoYWRkV2Vla3MobGFzdFdlZWtEYXRlLCA2IC0gd2Vla3NJbk1vbnRoKSwgbGFzdFdlZWtEYXRlKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlmZkRheXM7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBkYXRlID0gYWRkRGF5cyhsYXN0V2Vla0RhdGUsIGkgKyAxKTtcbiAgICAgICAgICAgICAgICB2YXIgd2VlayA9IGdldFdlZWsoZGF0ZSwgeyBsb2NhbGU6IGxvY2FsZSB9KTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdFdlZWsud2Vla051bWJlciAhPT0gd2Vlaykge1xuICAgICAgICAgICAgICAgICAgICBsYXN0V2VlayA9IHsgd2Vla051bWJlcjogd2VlaywgZGF0ZXM6IFtdIH07XG4gICAgICAgICAgICAgICAgICAgIHdlZWtzLnB1c2gobGFzdFdlZWspO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsYXN0V2Vlay5kYXRlcy5wdXNoKGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3ZWVrcztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldFdlZWtzLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgZ2V0V2Vla3MgfSBmcm9tICcuL3V0aWxzL2dldFdlZWtzJztcbi8qKlxuICogUmVuZGVyIHRoZSB0YWJsZSB3aXRoIHRoZSBjYWxlbmRhci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhYmxlKHByb3BzKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGxvY2FsZSA9IF9hLmxvY2FsZSwgY2xhc3NOYW1lcyA9IF9hLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9hLnN0eWxlcywgaGlkZUhlYWQgPSBfYS5oaWRlSGVhZCwgZml4ZWRXZWVrcyA9IF9hLmZpeGVkV2Vla3MsIF9iID0gX2EuY29tcG9uZW50cywgSGVhZCA9IF9iLkhlYWQsIFJvdyA9IF9iLlJvdywgRm9vdGVyID0gX2IuRm9vdGVyO1xuICAgIHZhciB3ZWVrcyA9IGdldFdlZWtzKHByb3BzLmRpc3BsYXlNb250aCwgeyBsb2NhbGU6IGxvY2FsZSwgZml4ZWRXZWVrczogZml4ZWRXZWVrcyB9KTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0YWJsZVwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy50YWJsZSwgc3R5bGU6IHN0eWxlcy50YWJsZSwgcm9sZTogXCJncmlkXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHByb3BzWydhcmlhLWxhYmVsbGVkYnknXSB9LFxuICAgICAgICAhaGlkZUhlYWQgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChIZWFkLCBudWxsKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInRib2R5XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnRib2R5LCBzdHlsZTogc3R5bGVzLnRib2R5IH0sIHdlZWtzLm1hcChmdW5jdGlvbiAod2VlaykgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUm93LCB7IGRpc3BsYXlNb250aDogcHJvcHMuZGlzcGxheU1vbnRoLCBrZXk6IHdlZWsud2Vla051bWJlciwgZGF0ZXM6IHdlZWsuZGF0ZXMsIHdlZWtOdW1iZXI6IHdlZWsud2Vla051bWJlciB9KSk7IH0pKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb290ZXIsIG51bGwpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZS5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJlYWNoL2F1dG8taWQnO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1RhYmxlJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvTmF2aWdhdGlvbic7XG4vKiogUmVuZGVyIGEgbW9udGguICovXG5leHBvcnQgZnVuY3Rpb24gTW9udGgocHJvcHMpIHtcbiAgICB2YXIgX2E7XG4gICAgdmFyIF9iID0gdXNlRGF5UGlja2VyKCksIGRpciA9IF9iLmRpciwgY2xhc3NOYW1lcyA9IF9iLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9iLnN0eWxlcywgQ2FwdGlvbiA9IF9iLmNvbXBvbmVudHMuQ2FwdGlvbjtcbiAgICB2YXIgZGlzcGxheU1vbnRocyA9IHVzZU5hdmlnYXRpb24oKS5kaXNwbGF5TW9udGhzO1xuICAgIHZhciBjYXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIHZhciBjbGFzc05hbWUgPSBbY2xhc3NOYW1lcy5tb250aF07XG4gICAgdmFyIHN0eWxlID0gc3R5bGVzLm1vbnRoO1xuICAgIHZhciBpc1N0YXJ0ID0gcHJvcHMuZGlzcGxheUluZGV4ID09PSAwO1xuICAgIHZhciBpc0VuZCA9IHByb3BzLmRpc3BsYXlJbmRleCA9PT0gZGlzcGxheU1vbnRocy5sZW5ndGggLSAxO1xuICAgIHZhciBpc0NlbnRlciA9ICFpc1N0YXJ0ICYmICFpc0VuZDtcbiAgICBpZiAoZGlyID09PSAncnRsJykge1xuICAgICAgICBfYSA9IFtpc1N0YXJ0LCBpc0VuZF0sIGlzRW5kID0gX2FbMF0sIGlzU3RhcnQgPSBfYVsxXTtcbiAgICB9XG4gICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgICAgY2xhc3NOYW1lLnB1c2goY2xhc3NOYW1lcy5jYXB0aW9uX3N0YXJ0KTtcbiAgICAgICAgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3R5bGUpLCBzdHlsZXMuY2FwdGlvbl9zdGFydCk7XG4gICAgfVxuICAgIGlmIChpc0VuZCkge1xuICAgICAgICBjbGFzc05hbWUucHVzaChjbGFzc05hbWVzLmNhcHRpb25fZW5kKTtcbiAgICAgICAgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3R5bGUpLCBzdHlsZXMuY2FwdGlvbl9lbmQpO1xuICAgIH1cbiAgICBpZiAoaXNDZW50ZXIpIHtcbiAgICAgICAgY2xhc3NOYW1lLnB1c2goY2xhc3NOYW1lcy5jYXB0aW9uX2JldHdlZW4pO1xuICAgICAgICBzdHlsZSA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBzdHlsZSksIHN0eWxlcy5jYXB0aW9uX2JldHdlZW4pO1xuICAgIH1cbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBrZXk6IHByb3BzLmRpc3BsYXlJbmRleCwgY2xhc3NOYW1lOiBjbGFzc05hbWUuam9pbignICcpLCBzdHlsZTogc3R5bGUgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChDYXB0aW9uLCB7IGlkOiBjYXB0aW9uSWQsIGRpc3BsYXlNb250aDogcHJvcHMuZGlzcGxheU1vbnRoIH0pLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYmxlLCB7IFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGNhcHRpb25JZCwgZGlzcGxheU1vbnRoOiBwcm9wcy5kaXNwbGF5TW9udGggfSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1vbnRoLmpzLm1hcCIsImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW9udGggfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL01vbnRoJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VGb2N1cyB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0ZvY3VzJztcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi8uLi9jb250ZXh0cy9OYXZpZ2F0aW9uJztcbi8qKlxuICogUmVuZGVyIHRoZSBjb250YWluZXIgd2l0aCB0aGUgbW9udGhzIGFuZCB0aGVpciBjYXB0aW9ucy4gVGhlIG51bWJlciBvZiBtb250aHNcbiAqIHJlbmRlcmVkIGRlcGVuZHMgYnkgdGhlIGBudW1iZXJPZk1vbnRoc2AgcHJvcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJvb3QoKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGRpciA9IF9hLmRpciwgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGUgPSBfYS5zdHlsZSwgc3R5bGVzID0gX2Euc3R5bGVzLCBudW1iZXJPZk1vbnRocyA9IF9hLm51bWJlck9mTW9udGhzLCBzaG93V2Vla051bWJlciA9IF9hLnNob3dXZWVrTnVtYmVyLCBpbml0aWFsRm9jdXMgPSBfYS5pbml0aWFsRm9jdXM7XG4gICAgdmFyIF9iID0gdXNlRm9jdXMoKSwgZm9jdXNUYXJnZXQgPSBfYi5mb2N1c1RhcmdldCwgZm9jdXMgPSBfYi5mb2N1cztcbiAgICB2YXIgX2MgPSBSZWFjdC51c2VTdGF0ZShmYWxzZSksIGhhc0luaXRpYWxGb2N1cyA9IF9jWzBdLCBzZXRIYXNJbml0aWFsRm9jdXMgPSBfY1sxXTtcbiAgICB2YXIgZGlzcGxheU1vbnRocyA9IHVzZU5hdmlnYXRpb24oKS5kaXNwbGF5TW9udGhzO1xuICAgIHZhciByb290Q2xhc3NOYW1lcyA9IFtjbGFzc05hbWUgIT09IG51bGwgJiYgY2xhc3NOYW1lICE9PSB2b2lkIDAgPyBjbGFzc05hbWUgOiBjbGFzc05hbWVzLnJvb3RdO1xuICAgIGlmIChudW1iZXJPZk1vbnRocyA+IDEpIHtcbiAgICAgICAgcm9vdENsYXNzTmFtZXMucHVzaChjbGFzc05hbWVzLm11bHRpcGxlX21vbnRocyk7XG4gICAgfVxuICAgIGlmIChzaG93V2Vla051bWJlcikge1xuICAgICAgICByb290Q2xhc3NOYW1lcy5wdXNoKGNsYXNzTmFtZXMud2l0aF93ZWVrbnVtYmVyKTtcbiAgICB9XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGluaXRpYWxGb2N1cyAmJiAhaGFzSW5pdGlhbEZvY3VzICYmIGZvY3VzVGFyZ2V0KSB7XG4gICAgICAgICAgICBmb2N1cyhmb2N1c1RhcmdldCk7XG4gICAgICAgICAgICBzZXRIYXNJbml0aWFsRm9jdXModHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbaW5pdGlhbEZvY3VzLCBoYXNJbml0aWFsRm9jdXMsIGZvY3VzLCBmb2N1c1RhcmdldF0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogcm9vdENsYXNzTmFtZXMuam9pbignICcpLCBzdHlsZTogX19hc3NpZ24oX19hc3NpZ24oe30sIHN0eWxlcy5yb290KSwgc3R5bGUpLCBkaXI6IGRpciB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm1vbnRocywgc3R5bGU6IHN0eWxlcy5tb250aHMgfSwgZGlzcGxheU1vbnRocy5tYXAoZnVuY3Rpb24gKG1vbnRoLCBpKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChNb250aCwgeyBrZXk6IGksIGRpc3BsYXlJbmRleDogaSwgZGlzcGxheU1vbnRoOiBtb250aCB9KSk7IH0pKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Um9vdC5qcy5tYXAiLCJpbXBvcnQgeyBfX3Jlc3QgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEYXlQaWNrZXJQcm92aWRlciB9IGZyb20gJy4vRGF5UGlja2VyJztcbmltcG9ydCB7IEZvY3VzUHJvdmlkZXIgfSBmcm9tICcuL0ZvY3VzJztcbmltcG9ydCB7IE1vZGlmaWVyc1Byb3ZpZGVyIH0gZnJvbSAnLi9Nb2RpZmllcnMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9OYXZpZ2F0aW9uJztcbmltcG9ydCB7IFNlbGVjdE11bHRpcGxlUHJvdmlkZXIgfSBmcm9tICcuL1NlbGVjdE11bHRpcGxlJztcbmltcG9ydCB7IFNlbGVjdFJhbmdlUHJvdmlkZXIgfSBmcm9tICcuL1NlbGVjdFJhbmdlJztcbmltcG9ydCB7IFNlbGVjdFNpbmdsZVByb3ZpZGVyIH0gZnJvbSAnLi9TZWxlY3RTaW5nbGUnO1xuLyoqIFByb3ZpZGUgdGhlIHZhbHVlIGZvciBhbGwgdGhlIGNvbnRleHQgcHJvdmlkZXJzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJvb3RQcm92aWRlcihwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBpbml0aWFsUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCJdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF5UGlja2VyUHJvdmlkZXIsIHsgaW5pdGlhbFByb3BzOiBpbml0aWFsUHJvcHMgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChOYXZpZ2F0aW9uUHJvdmlkZXIsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdFNpbmdsZVByb3ZpZGVyLCB7IGluaXRpYWxQcm9wczogaW5pdGlhbFByb3BzIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZVByb3ZpZGVyLCB7IGluaXRpYWxQcm9wczogaW5pdGlhbFByb3BzIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VsZWN0UmFuZ2VQcm92aWRlciwgeyBpbml0aWFsUHJvcHM6IGluaXRpYWxQcm9wcyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChNb2RpZmllcnNQcm92aWRlciwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvY3VzUHJvdmlkZXIsIG51bGwsIGNoaWxkcmVuKSkpKSkpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Sb290UHJvdmlkZXIuanMubWFwIiwiaW1wb3J0IHsgX19hc3NpZ24gfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSb290IH0gZnJvbSAnLi9jb21wb25lbnRzL1Jvb3QnO1xuaW1wb3J0IHsgUm9vdFByb3ZpZGVyIH0gZnJvbSAnLi9jb250ZXh0cy9Sb290UHJvdmlkZXInO1xuLyoqXG4gKiBEYXlQaWNrZXIgcmVuZGVyIGEgZGF0ZSBwaWNrZXIgY29tcG9uZW50IHRvIGxldCB1c2VycyBwaWNrIGRhdGVzIGZyb20gYVxuICogY2FsZW5kYXIuIFNlZSBodHRwOi8vcmVhY3QtZGF5LXBpY2tlci5qcy5vcmcgZm9yIHVwZGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmRcbiAqIGV4YW1wbGVzLlxuICpcbiAqICMjIyBDdXN0b21pemF0aW9uXG4gKlxuICogRGF5UGlja2VyIG9mZmVycyBkaWZmZXJlbnQgY3VzdG9taXphdGlvbiBwcm9wcy4gRm9yIGV4YW1wbGUsXG4gKlxuICogLSBzaG93IG11bHRpcGxlIG1vbnRocyB1c2luZyBgbnVtYmVyT2ZNb250aHNgXG4gKiAtIGRpc3BsYXkgYSBkcm9wZG93biB0byBuYXZpZ2F0ZSB0aGUgbW9udGhzIHZpYSBgY2FwdGlvbkxheW91dGBcbiAqIC0gZGlzcGxheSB0aGUgd2VlayBudW1iZXJzIHdpdGggYHNob3dXZWVrTnVtYmVyc2BcbiAqIC0gZGlzYWJsZSBvciBoaWRlIGRheXMgd2l0aCBgZGlzYWJsZWRgIG9yIGBoaWRkZW5gXG4gKlxuICogIyMjIENvbnRyb2xsaW5nIHRoZSBtb250aHNcbiAqXG4gKiBDaGFuZ2UgdGhlIGluaXRpYWxseSBkaXNwbGF5ZWQgbW9udGggdXNpbmcgdGhlIGBkZWZhdWx0TW9udGhgIHByb3AuIFRoZVxuICogZGlzcGxheWVkIG1vbnRocyBhcmUgY29udHJvbGxlZCBieSBEYXlQaWNrZXIgYW5kIHN0b3JlZCBpbiBpdHMgaW50ZXJuYWxcbiAqIHN0YXRlLiBUbyBjb250cm9sIHRoZSBtb250aHMgeW91cnNlbGYsIHVzZSBgbW9udGhgIGluc3RlYWQgb2YgYGRlZmF1bHRNb250aGBcbiAqIGFuZCB1c2UgdGhlIGBvbk1vbnRoQ2hhbmdlYCBldmVudCB0byBzZXQgaXQuXG4gKlxuICogVG8gbGltaXQgdGhlIG1vbnRocyB0aGUgdXNlciBjYW4gbmF2aWdhdGUgdG8sIHVzZVxuICogYGZyb21EYXRlYC9gZnJvbU1vbnRoYC9gZnJvbVllYXJgIG9yIGB0b0RhdGVgL2B0b01vbnRoYC9gdG9ZZWFyYC5cbiAqXG4gKiAjIyMgU2VsZWN0aW9uIG1vZGVzXG4gKlxuICogRGF5UGlja2VyIHN1cHBvcnRzIGRpZmZlcmVudCBzZWxlY3Rpb24gbW9kZSB0aGF0IGNhbiBiZSB0b2dnbGVkIHVzaW5nIHRoZVxuICogYG1vZGVgIHByb3A6XG4gKlxuICogLSBgbW9kZT1cInNpbmdsZVwiYDogb25seSBvbmUgZGF5IGNhbiBiZSBzZWxlY3RlZC4gVXNlIGByZXF1aXJlZGAgdG8gbWFrZSB0aGVcbiAqICAgc2VsZWN0aW9uIHJlcXVpcmVkLiBVc2UgdGhlIGBvblNlbGVjdGAgZXZlbnQgaGFuZGxlciB0byBnZXQgdGhlIHNlbGVjdGVkXG4gKiAgIGRheXMuXG4gKiAtIGBtb2RlPVwibXVsdGlwbGVcImA6IHVzZXJzIGNhbiBzZWxlY3Qgb25lIG9yIG1vcmUgZGF5cy4gTGltaXQgdGhlIGFtb3VudCBvZlxuICogICBkYXlzIHRoYXQgY2FuIGJlIHNlbGVjdGVkIHdpdGggdGhlIGBtaW5gIG9yIHRoZSBgbWF4YCBwcm9wcy5cbiAqIC0gYG1vZGU9XCJyYW5nZVwiYDogdXNlcnMgY2FuIHNlbGVjdCBhIHJhbmdlIG9mIGRheXMuIExpbWl0IHRoZSBhbW91bnQgb2YgZGF5c1xuICogICBpbiB0aGUgcmFuZ2Ugd2l0aCB0aGUgYG1pbmAgb3IgdGhlIGBtYXhgIHByb3BzLlxuICogLSBgbW9kZT1cImN1c3RvbVwiYDogaW1wbGVtZW50IHlvdXIgb3duIHNlbGVjdGlvbiBtb2RlIHdpdGggYG9uRGF5Q2xpY2tgLlxuICpcbiAqIFRoZXNlIHNlbGVjdGlvbiBtb2RlcyBzaG91bGQgY292ZXIgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlcy4gSW4gY2FzZSB5b3VcbiAqIG5lZWQgYSBtb3JlIHJlZmluZWQgd2F5IG9mIHNlbGVjdGluZyBkYXlzLCB1c2UgYG1vZGU9XCJjdXN0b21cImAuIFVzZSB0aGVcbiAqIGBzZWxlY3RlZGAgcHJvcHMgYW5kIGFkZCB0aGUgZGF5IGV2ZW50IGhhbmRsZXJzIHRvIGFkZC9yZW1vdmUgZGF5cyBmcm9tIHRoZVxuICogc2VsZWN0aW9uLlxuICpcbiAqICMjIyBNb2RpZmllcnNcbiAqXG4gKiBBIF9tb2RpZmllcl8gcmVwcmVzZW50cyBkaWZmZXJlbnQgc3R5bGVzIG9yIHN0YXRlcyBmb3IgdGhlIGRheXMgZGlzcGxheWVkIGluXG4gKiB0aGUgY2FsZW5kYXIgKGxpa2UgXCJzZWxlY3RlZFwiIG9yIFwiZGlzYWJsZWRcIikuIERlZmluZSBjdXN0b20gbW9kaWZpZXJzIHVzaW5nXG4gKiB0aGUgYG1vZGlmaWVyc2AgcHJvcC5cbiAqXG4gKiAjIyMgRm9ybWF0dGVycyBhbmQgY3VzdG9tIGNvbXBvbmVudFxuICpcbiAqIFlvdSBjYW4gY3VzdG9taXplIGhvdyB0aGUgY29udGVudCBpcyBkaXNwbGF5ZWQgaW4gdGhlIGRhdGUgcGlja2VyIGJ5IHVzaW5nXG4gKiBlaXRoZXIgdGhlIGZvcm1hdHRlcnMgb3IgcmVwbGFjaW5nIHRoZSBpbnRlcm5hbCBjb21wb25lbnRzLlxuICpcbiAqIEZvciB0aGUgbW9zdCBjb21tb24gY2FzZXMgeW91IHdhbnQgdG8gdXNlIHRoZSBgZm9ybWF0dGVyc2AgcHJvcCB0byBjaGFuZ2UgaG93XG4gKiB0aGUgY29udGVudCBpcyBmb3JtYXR0ZWQgaW4gdGhlIGNhbGVuZGFyLiBVc2UgdGhlIGBjb21wb25lbnRzYCBwcm9wIHRvXG4gKiByZXBsYWNlIHRoZSBpbnRlcm5hbCBjb21wb25lbnRzLCBsaWtlIHRoZSBuYXZpZ2F0aW9uIGljb25zLlxuICpcbiAqICMjIyBTdHlsaW5nXG4gKlxuICogRGF5UGlja2VyIGNvbWVzIHdpdGggYSBkZWZhdWx0LCBiYXNpYyBzdHlsZSBpbiBgcmVhY3QtZGF5LXBpY2tlci9zdHlsZWAg4oCTIHVzZVxuICogaXQgYXMgdGVtcGxhdGUgZm9yIHlvdXIgb3duIHN0eWxlLlxuICpcbiAqIElmIHlvdSBhcmUgdXNpbmcgQ1NTIG1vZHVsZXMsIHBhc3MgdGhlIGltcG9ydGVkIHN0eWxlcyBvYmplY3QgdGhlXG4gKiBgY2xhc3NOYW1lc2AgcHJvcHMuXG4gKlxuICogWW91IGNhbiBhbHNvIHN0eWxlIHRoZSBlbGVtZW50cyB2aWEgaW5saW5lLXN0eWxlcyB1c2luZyB0aGUgYHN0eWxlc2AgcHJvcC5cbiAqXG4gKiAjIyMgRm9ybSBmaWVsZHNcbiAqXG4gKiBJZiB5b3UgbmVlZCB0byBiaW5kIHRoZSBkYXRlIHBpY2tlciB0byBhIGZvcm0gZmllbGQsIHlvdSBjYW4gdXNlIHRoZVxuICogYHVzZUlucHV0YCBob29rcyBmb3IgYSBiYXNpYyBiZWhhdmlvci4gU2VlIHRoZSBgdXNlSW5wdXRgIHNvdXJjZSBhcyBhblxuICogZXhhbXBsZSB0byBiaW5kIHRoZSBkYXRlIHBpY2tlciB3aXRoIGZvcm0gZmllbGRzLlxuICpcbiAqICMjIyBMb2NhbGl6YXRpb25cbiAqXG4gKiBUbyBsb2NhbGl6ZSBEYXlQaWNrZXIsIGltcG9ydCB0aGUgbG9jYWxlIGZyb20gYGRhdGUtZm5zYCBwYWNrYWdlIGFuZCB1c2UgdGhlXG4gKiBgbG9jYWxlYCBwcm9wLlxuICpcbiAqIEZvciBleGFtcGxlLCB0byB1c2UgU3BhbmlzaCBsb2NhbGU6XG4gKlxuICogYGBgXG4gKiBpbXBvcnQgZXMgZnJvbSAnZGF0ZS1mbnMvbG9jYWxlL2VzJztcbiAqIDxEYXlQaWNrZXIgbG9jYWxlPXtlc30gLz5cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gRGF5UGlja2VyKHByb3BzKSB7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJvb3RQcm92aWRlciwgX19hc3NpZ24oe30sIHByb3BzKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChSb290LCBudWxsKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5UGlja2VyLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuLyoqXG4gKiBUYWtlcyBhbiBhcmd1bWVudCBhbmQgaWYgaXQncyBhbiBhcnJheSwgcmV0dXJucyB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXksXG4gKiBvdGhlcndpc2UgcmV0dXJucyB0aGUgYXJndW1lbnQuIFVzZWQgZm9yIFByZWFjdCBjb21wYXRpYmlsaXR5LlxuICovXG5leHBvcnQgdmFyIHVud3JhcEFycmF5ID0gZnVuY3Rpb24gdW53cmFwQXJyYXkoYXJnKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGFyZykgPyBhcmdbMF0gOiBhcmc7XG59O1xuLyoqXG4gKiBUYWtlcyBhIG1heWJlLXVuZGVmaW5lZCBmdW5jdGlvbiBhbmQgYXJiaXRyYXJ5IGFyZ3MgYW5kIGludm9rZXMgdGhlIGZ1bmN0aW9uXG4gKiBvbmx5IGlmIGl0IGlzIGRlZmluZWQuXG4gKi9cblxuZXhwb3J0IHZhciBzYWZlSW52b2tlID0gZnVuY3Rpb24gc2FmZUludm9rZShmbikge1xuICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZuLmFwcGx5KHZvaWQgMCwgYXJncyk7XG4gIH1cbn07XG4vKipcbiAqIFNldHMgYSByZWYgdXNpbmcgZWl0aGVyIGEgcmVmIGNhbGxiYWNrIG9yIGEgcmVmIG9iamVjdFxuICovXG5cbmV4cG9ydCB2YXIgc2V0UmVmID0gZnVuY3Rpb24gc2V0UmVmKHJlZiwgbm9kZSkge1xuICAvLyBpZiBpdHMgYSBmdW5jdGlvbiBjYWxsIGl0XG4gIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHNhZmVJbnZva2UocmVmLCBub2RlKTtcbiAgfSAvLyBvdGhlcndpc2Ugd2Ugc2hvdWxkIHRyZWF0IGl0IGFzIGEgcmVmIG9iamVjdFxuICBlbHNlIGlmIChyZWYgIT0gbnVsbCkge1xuICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH1cbn07XG4vKipcbiAqIFNpbXBsZSBwb255ZmlsbCBmb3IgT2JqZWN0LmZyb21FbnRyaWVzXG4gKi9cblxuZXhwb3J0IHZhciBmcm9tRW50cmllcyA9IGZ1bmN0aW9uIGZyb21FbnRyaWVzKGVudHJpZXMpIHtcbiAgcmV0dXJuIGVudHJpZXMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIF9yZWYpIHtcbiAgICB2YXIga2V5ID0gX3JlZlswXSxcbiAgICAgICAgdmFsdWUgPSBfcmVmWzFdO1xuICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufTtcbi8qKlxuICogU21hbGwgd3JhcHBlciBhcm91bmQgYHVzZUxheW91dEVmZmVjdGAgdG8gZ2V0IHJpZCBvZiB0aGUgd2FybmluZyBvbiBTU1IgZW52c1xuICovXG5cbmV4cG9ydCB2YXIgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCA/IFJlYWN0LnVzZUxheW91dEVmZmVjdCA6IFJlYWN0LnVzZUVmZmVjdDsiLCJleHBvcnQgdmFyIHRvcCA9ICd0b3AnO1xuZXhwb3J0IHZhciBib3R0b20gPSAnYm90dG9tJztcbmV4cG9ydCB2YXIgcmlnaHQgPSAncmlnaHQnO1xuZXhwb3J0IHZhciBsZWZ0ID0gJ2xlZnQnO1xuZXhwb3J0IHZhciBhdXRvID0gJ2F1dG8nO1xuZXhwb3J0IHZhciBiYXNlUGxhY2VtZW50cyA9IFt0b3AsIGJvdHRvbSwgcmlnaHQsIGxlZnRdO1xuZXhwb3J0IHZhciBzdGFydCA9ICdzdGFydCc7XG5leHBvcnQgdmFyIGVuZCA9ICdlbmQnO1xuZXhwb3J0IHZhciBjbGlwcGluZ1BhcmVudHMgPSAnY2xpcHBpbmdQYXJlbnRzJztcbmV4cG9ydCB2YXIgdmlld3BvcnQgPSAndmlld3BvcnQnO1xuZXhwb3J0IHZhciBwb3BwZXIgPSAncG9wcGVyJztcbmV4cG9ydCB2YXIgcmVmZXJlbmNlID0gJ3JlZmVyZW5jZSc7XG5leHBvcnQgdmFyIHZhcmlhdGlvblBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovYmFzZVBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50ICsgXCItXCIgKyBzdGFydCwgcGxhY2VtZW50ICsgXCItXCIgKyBlbmRdKTtcbn0sIFtdKTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9bXS5jb25jYXQoYmFzZVBsYWNlbWVudHMsIFthdXRvXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50LCBwbGFjZW1lbnQgKyBcIi1cIiArIHN0YXJ0LCBwbGFjZW1lbnQgKyBcIi1cIiArIGVuZF0pO1xufSwgW10pOyAvLyBtb2RpZmllcnMgdGhhdCBuZWVkIHRvIHJlYWQgdGhlIERPTVxuXG5leHBvcnQgdmFyIGJlZm9yZVJlYWQgPSAnYmVmb3JlUmVhZCc7XG5leHBvcnQgdmFyIHJlYWQgPSAncmVhZCc7XG5leHBvcnQgdmFyIGFmdGVyUmVhZCA9ICdhZnRlclJlYWQnOyAvLyBwdXJlLWxvZ2ljIG1vZGlmaWVyc1xuXG5leHBvcnQgdmFyIGJlZm9yZU1haW4gPSAnYmVmb3JlTWFpbic7XG5leHBvcnQgdmFyIG1haW4gPSAnbWFpbic7XG5leHBvcnQgdmFyIGFmdGVyTWFpbiA9ICdhZnRlck1haW4nOyAvLyBtb2RpZmllciB3aXRoIHRoZSBwdXJwb3NlIHRvIHdyaXRlIHRvIHRoZSBET00gKG9yIHdyaXRlIGludG8gYSBmcmFtZXdvcmsgc3RhdGUpXG5cbmV4cG9ydCB2YXIgYmVmb3JlV3JpdGUgPSAnYmVmb3JlV3JpdGUnO1xuZXhwb3J0IHZhciB3cml0ZSA9ICd3cml0ZSc7XG5leHBvcnQgdmFyIGFmdGVyV3JpdGUgPSAnYWZ0ZXJXcml0ZSc7XG5leHBvcnQgdmFyIG1vZGlmaWVyUGhhc2VzID0gW2JlZm9yZVJlYWQsIHJlYWQsIGFmdGVyUmVhZCwgYmVmb3JlTWFpbiwgbWFpbiwgYWZ0ZXJNYWluLCBiZWZvcmVXcml0ZSwgd3JpdGUsIGFmdGVyV3JpdGVdOyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE5vZGVOYW1lKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnQgPyAoZWxlbWVudC5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSA6IG51bGw7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcbiAgaWYgKG5vZGUgPT0gbnVsbCkge1xuICAgIHJldHVybiB3aW5kb3c7XG4gIH1cblxuICBpZiAobm9kZS50b1N0cmluZygpICE9PSAnW29iamVjdCBXaW5kb3ddJykge1xuICAgIHZhciBvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50O1xuICAgIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiB3aW5kb3c7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5FbGVtZW50O1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIE93bkVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5IVE1MRWxlbWVudDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaXNTaGFkb3dSb290KG5vZGUpIHtcbiAgLy8gSUUgMTEgaGFzIG5vIFNoYWRvd1Jvb3RcbiAgaWYgKHR5cGVvZiBTaGFkb3dSb290ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLlNoYWRvd1Jvb3Q7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgT3duRWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgU2hhZG93Um9vdDtcbn1cblxuZXhwb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc1NoYWRvd1Jvb3QgfTsiLCJpbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4uL2RvbS11dGlscy9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiOyAvLyBUaGlzIG1vZGlmaWVyIHRha2VzIHRoZSBzdHlsZXMgcHJlcGFyZWQgYnkgdGhlIGBjb21wdXRlU3R5bGVzYCBtb2RpZmllclxuLy8gYW5kIGFwcGxpZXMgdGhlbSB0byB0aGUgSFRNTEVsZW1lbnRzIHN1Y2ggYXMgcG9wcGVyIGFuZCBhcnJvd1xuXG5mdW5jdGlvbiBhcHBseVN0eWxlcyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGU7XG4gIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdmFyIHN0eWxlID0gc3RhdGUuc3R5bGVzW25hbWVdIHx8IHt9O1xuICAgIHZhciBhdHRyaWJ1dGVzID0gc3RhdGUuYXR0cmlidXRlc1tuYW1lXSB8fCB7fTtcbiAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdOyAvLyBhcnJvdyBpcyBvcHRpb25hbCArIHZpcnR1YWwgZWxlbWVudHNcblxuICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIEZsb3cgZG9lc24ndCBzdXBwb3J0IHRvIGV4dGVuZCB0aGlzIHByb3BlcnR5LCBidXQgaXQncyB0aGUgbW9zdFxuICAgIC8vIGVmZmVjdGl2ZSB3YXkgdG8gYXBwbHkgc3R5bGVzIHRvIGFuIEhUTUxFbGVtZW50XG4gICAgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdXG5cblxuICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGUpO1xuICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGF0dHJpYnV0ZXNbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSA9PT0gdHJ1ZSA/ICcnIDogdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZWZmZWN0KF9yZWYyKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYyLnN0YXRlO1xuICB2YXIgaW5pdGlhbFN0eWxlcyA9IHtcbiAgICBwb3BwZXI6IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgbGVmdDogJzAnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICBtYXJnaW46ICcwJ1xuICAgIH0sXG4gICAgYXJyb3c6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnXG4gICAgfSxcbiAgICByZWZlcmVuY2U6IHt9XG4gIH07XG4gIE9iamVjdC5hc3NpZ24oc3RhdGUuZWxlbWVudHMucG9wcGVyLnN0eWxlLCBpbml0aWFsU3R5bGVzLnBvcHBlcik7XG4gIHN0YXRlLnN0eWxlcyA9IGluaXRpYWxTdHlsZXM7XG5cbiAgaWYgKHN0YXRlLmVsZW1lbnRzLmFycm93KSB7XG4gICAgT2JqZWN0LmFzc2lnbihzdGF0ZS5lbGVtZW50cy5hcnJvdy5zdHlsZSwgaW5pdGlhbFN0eWxlcy5hcnJvdyk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdO1xuICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBzdGF0ZS5hdHRyaWJ1dGVzW25hbWVdIHx8IHt9O1xuICAgICAgdmFyIHN0eWxlUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHN0YXRlLnN0eWxlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSA/IHN0YXRlLnN0eWxlc1tuYW1lXSA6IGluaXRpYWxTdHlsZXNbbmFtZV0pOyAvLyBTZXQgYWxsIHZhbHVlcyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlbVxuXG4gICAgICB2YXIgc3R5bGUgPSBzdHlsZVByb3BlcnRpZXMucmVkdWNlKGZ1bmN0aW9uIChzdHlsZSwgcHJvcGVydHkpIHtcbiAgICAgICAgc3R5bGVbcHJvcGVydHldID0gJyc7XG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgIH0sIHt9KTsgLy8gYXJyb3cgaXMgb3B0aW9uYWwgKyB2aXJ0dWFsIGVsZW1lbnRzXG5cbiAgICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnQuc3R5bGUsIHN0eWxlKTtcbiAgICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcHBseVN0eWxlcycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnd3JpdGUnLFxuICBmbjogYXBwbHlTdHlsZXMsXG4gIGVmZmVjdDogZWZmZWN0LFxuICByZXF1aXJlczogWydjb21wdXRlU3R5bGVzJ11cbn07IiwiaW1wb3J0IHsgYXV0byB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xufSIsImV4cG9ydCB2YXIgbWF4ID0gTWF0aC5tYXg7XG5leHBvcnQgdmFyIG1pbiA9IE1hdGgubWluO1xuZXhwb3J0IHZhciByb3VuZCA9IE1hdGgucm91bmQ7IiwiaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBpbmNsdWRlU2NhbGUpIHtcbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cblxuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBzY2FsZVggPSAxO1xuICB2YXIgc2NhbGVZID0gMTtcblxuICBpZiAoaXNIVE1MRWxlbWVudChlbGVtZW50KSAmJiBpbmNsdWRlU2NhbGUpIHtcbiAgICB2YXIgb2Zmc2V0SGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgdmFyIG9mZnNldFdpZHRoID0gZWxlbWVudC5vZmZzZXRXaWR0aDsgLy8gRG8gbm90IGF0dGVtcHQgdG8gZGl2aWRlIGJ5IDAsIG90aGVyd2lzZSB3ZSBnZXQgYEluZmluaXR5YCBhcyBzY2FsZVxuICAgIC8vIEZhbGxiYWNrIHRvIDEgaW4gY2FzZSBib3RoIHZhbHVlcyBhcmUgYDBgXG5cbiAgICBpZiAob2Zmc2V0V2lkdGggPiAwKSB7XG4gICAgICBzY2FsZVggPSByb3VuZChyZWN0LndpZHRoKSAvIG9mZnNldFdpZHRoIHx8IDE7XG4gICAgfVxuXG4gICAgaWYgKG9mZnNldEhlaWdodCA+IDApIHtcbiAgICAgIHNjYWxlWSA9IHJvdW5kKHJlY3QuaGVpZ2h0KSAvIG9mZnNldEhlaWdodCB8fCAxO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHJlY3Qud2lkdGggLyBzY2FsZVgsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCAvIHNjYWxlWSxcbiAgICB0b3A6IHJlY3QudG9wIC8gc2NhbGVZLFxuICAgIHJpZ2h0OiByZWN0LnJpZ2h0IC8gc2NhbGVYLFxuICAgIGJvdHRvbTogcmVjdC5ib3R0b20gLyBzY2FsZVksXG4gICAgbGVmdDogcmVjdC5sZWZ0IC8gc2NhbGVYLFxuICAgIHg6IHJlY3QubGVmdCAvIHNjYWxlWCxcbiAgICB5OiByZWN0LnRvcCAvIHNjYWxlWVxuICB9O1xufSIsImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7IC8vIFJldHVybnMgdGhlIGxheW91dCByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC4gTGF5b3V0XG4vLyBtZWFucyBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRyYW5zZm9ybXMuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldExheW91dFJlY3QoZWxlbWVudCkge1xuICB2YXIgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTsgLy8gVXNlIHRoZSBjbGllbnRSZWN0IHNpemVzIGlmIGl0J3Mgbm90IGJlZW4gdHJhbnNmb3JtZWQuXG4gIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTIyM1xuXG4gIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICBpZiAoTWF0aC5hYnMoY2xpZW50UmVjdC53aWR0aCAtIHdpZHRoKSA8PSAxKSB7XG4gICAgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKGNsaWVudFJlY3QuaGVpZ2h0IC0gaGVpZ2h0KSA8PSAxKSB7XG4gICAgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IGVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICB5OiBlbGVtZW50Lm9mZnNldFRvcCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn0iLCJpbXBvcnQgeyBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb250YWlucyhwYXJlbnQsIGNoaWxkKSB7XG4gIHZhciByb290Tm9kZSA9IGNoaWxkLmdldFJvb3ROb2RlICYmIGNoaWxkLmdldFJvb3ROb2RlKCk7IC8vIEZpcnN0LCBhdHRlbXB0IHdpdGggZmFzdGVyIG5hdGl2ZSBtZXRob2RcblxuICBpZiAocGFyZW50LmNvbnRhaW5zKGNoaWxkKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIHRoZW4gZmFsbGJhY2sgdG8gY3VzdG9tIGltcGxlbWVudGF0aW9uIHdpdGggU2hhZG93IERPTSBzdXBwb3J0XG4gIGVsc2UgaWYgKHJvb3ROb2RlICYmIGlzU2hhZG93Um9vdChyb290Tm9kZSkpIHtcbiAgICAgIHZhciBuZXh0ID0gY2hpbGQ7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKG5leHQgJiYgcGFyZW50LmlzU2FtZU5vZGUobmV4dCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ106IG5lZWQgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGlzLi4uXG5cblxuICAgICAgICBuZXh0ID0gbmV4dC5wYXJlbnROb2RlIHx8IG5leHQuaG9zdDtcbiAgICAgIH0gd2hpbGUgKG5leHQpO1xuICAgIH0gLy8gR2l2ZSB1cCwgdGhlIHJlc3VsdCBpcyBmYWxzZVxuXG5cbiAgcmV0dXJuIGZhbHNlO1xufSIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldFdpbmRvdyhlbGVtZW50KS5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xufSIsImltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNUYWJsZUVsZW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gWyd0YWJsZScsICd0ZCcsICd0aCddLmluZGV4T2YoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpID49IDA7XG59IiwiaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpIHtcbiAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogYXNzdW1lIGJvZHkgaXMgYWx3YXlzIGF2YWlsYWJsZVxuICByZXR1cm4gKChpc0VsZW1lbnQoZWxlbWVudCkgPyBlbGVtZW50Lm93bmVyRG9jdW1lbnQgOiAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgZWxlbWVudC5kb2N1bWVudCkgfHwgd2luZG93LmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQ7XG59IiwiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSB7XG4gIGlmIChnZXROb2RlTmFtZShlbGVtZW50KSA9PT0gJ2h0bWwnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gKC8vIHRoaXMgaXMgYSBxdWlja2VyIChidXQgbGVzcyB0eXBlIHNhZmUpIHdheSB0byBzYXZlIHF1aXRlIHNvbWUgYnl0ZXMgZnJvbSB0aGUgYnVuZGxlXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuICAgIC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgIGVsZW1lbnQuYXNzaWduZWRTbG90IHx8IC8vIHN0ZXAgaW50byB0aGUgc2hhZG93IERPTSBvZiB0aGUgcGFyZW50IG9mIGEgc2xvdHRlZCBub2RlXG4gICAgZWxlbWVudC5wYXJlbnROb2RlIHx8ICggLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWRcbiAgICBpc1NoYWRvd1Jvb3QoZWxlbWVudCkgPyBlbGVtZW50Lmhvc3QgOiBudWxsKSB8fCAvLyBTaGFkb3dSb290IGRldGVjdGVkXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtY2FsbF06IEhUTUxFbGVtZW50IGlzIGEgTm9kZVxuICAgIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSAvLyBmYWxsYmFja1xuXG4gICk7XG59IiwiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBpc1RhYmxlRWxlbWVudCBmcm9tIFwiLi9pc1RhYmxlRWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvODM3XG4gIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50Lm9mZnNldFBhcmVudDtcbn0gLy8gYC5vZmZzZXRQYXJlbnRgIHJlcG9ydHMgYG51bGxgIGZvciBmaXhlZCBlbGVtZW50cywgd2hpbGUgYWJzb2x1dGUgZWxlbWVudHNcbi8vIHJldHVybiB0aGUgY29udGFpbmluZyBibG9ja1xuXG5cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIHZhciBpc0ZpcmVmb3ggPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpICE9PSAtMTtcbiAgdmFyIGlzSUUgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1RyaWRlbnQnKSAhPT0gLTE7XG5cbiAgaWYgKGlzSUUgJiYgaXNIVE1MRWxlbWVudChlbGVtZW50KSkge1xuICAgIC8vIEluIElFIDksIDEwIGFuZCAxMSBmaXhlZCBlbGVtZW50cyBjb250YWluaW5nIGJsb2NrIGlzIGFsd2F5cyBlc3RhYmxpc2hlZCBieSB0aGUgdmlld3BvcnRcbiAgICB2YXIgZWxlbWVudENzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG5cbiAgICBpZiAoZWxlbWVudENzcy5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgdmFyIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcblxuICB3aGlsZSAoaXNIVE1MRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgWydodG1sJywgJ2JvZHknXS5pbmRleE9mKGdldE5vZGVOYW1lKGN1cnJlbnROb2RlKSkgPCAwKSB7XG4gICAgdmFyIGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudE5vZGUpOyAvLyBUaGlzIGlzIG5vbi1leGhhdXN0aXZlIGJ1dCBjb3ZlcnMgdGhlIG1vc3QgY29tbW9uIENTUyBwcm9wZXJ0aWVzIHRoYXRcbiAgICAvLyBjcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG5cbiAgICBpZiAoY3NzLnRyYW5zZm9ybSAhPT0gJ25vbmUnIHx8IGNzcy5wZXJzcGVjdGl2ZSAhPT0gJ25vbmUnIHx8IGNzcy5jb250YWluID09PSAncGFpbnQnIHx8IFsndHJhbnNmb3JtJywgJ3BlcnNwZWN0aXZlJ10uaW5kZXhPZihjc3Mud2lsbENoYW5nZSkgIT09IC0xIHx8IGlzRmlyZWZveCAmJiBjc3Mud2lsbENoYW5nZSA9PT0gJ2ZpbHRlcicgfHwgaXNGaXJlZm94ICYmIGNzcy5maWx0ZXIgJiYgY3NzLmZpbHRlciAhPT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0gLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICB2YXIgd2luZG93ID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICB2YXIgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50KTtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50KTtcbiAgfVxuXG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdodG1sJyB8fCBnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpID09PSAnYm9keScgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luZG93O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIFsndG9wJywgJ2JvdHRvbSddLmluZGV4T2YocGxhY2VtZW50KSA+PSAwID8gJ3gnIDogJ3knO1xufSIsImltcG9ydCB7IG1heCBhcyBtYXRoTWF4LCBtaW4gYXMgbWF0aE1pbiB9IGZyb20gXCIuL21hdGguanNcIjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoaW4obWluLCB2YWx1ZSwgbWF4KSB7XG4gIHJldHVybiBtYXRoTWF4KG1pbiwgbWF0aE1pbih2YWx1ZSwgbWF4KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gd2l0aGluTWF4Q2xhbXAobWluLCB2YWx1ZSwgbWF4KSB7XG4gIHZhciB2ID0gd2l0aGluKG1pbiwgdmFsdWUsIG1heCk7XG4gIHJldHVybiB2ID4gbWF4ID8gbWF4IDogdjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRGcmVzaFNpZGVPYmplY3QoKSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwXG4gIH07XG59IiwiaW1wb3J0IGdldEZyZXNoU2lkZU9iamVjdCBmcm9tIFwiLi9nZXRGcmVzaFNpZGVPYmplY3QuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlUGFkZGluZ09iamVjdChwYWRkaW5nT2JqZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBnZXRGcmVzaFNpZGVPYmplY3QoKSwgcGFkZGluZ09iamVjdCk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXhwYW5kVG9IYXNoTWFwKHZhbHVlLCBrZXlzKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZShmdW5jdGlvbiAoaGFzaE1hcCwga2V5KSB7XG4gICAgaGFzaE1hcFtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIGhhc2hNYXA7XG4gIH0sIHt9KTtcbn0iLCJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4uL2RvbS11dGlscy9jb250YWlucy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4gfSBmcm9tIFwiLi4vdXRpbHMvd2l0aGluLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuLi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4uL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qc1wiO1xuaW1wb3J0IHsgbGVmdCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB0b3AsIGJvdHRvbSB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB0b1BhZGRpbmdPYmplY3QgPSBmdW5jdGlvbiB0b1BhZGRpbmdPYmplY3QocGFkZGluZywgc3RhdGUpIHtcbiAgcGFkZGluZyA9IHR5cGVvZiBwYWRkaW5nID09PSAnZnVuY3Rpb24nID8gcGFkZGluZyhPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5yZWN0cywge1xuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pKSA6IHBhZGRpbmc7XG4gIHJldHVybiBtZXJnZVBhZGRpbmdPYmplY3QodHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gcGFkZGluZyA6IGV4cGFuZFRvSGFzaE1hcChwYWRkaW5nLCBiYXNlUGxhY2VtZW50cykpO1xufTtcblxuZnVuY3Rpb24gYXJyb3coX3JlZikge1xuICB2YXIgX3N0YXRlJG1vZGlmaWVyc0RhdGEkO1xuXG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucztcbiAgdmFyIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93O1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cztcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBheGlzID0gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KGJhc2VQbGFjZW1lbnQpO1xuICB2YXIgaXNWZXJ0aWNhbCA9IFtsZWZ0LCByaWdodF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSA+PSAwO1xuICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICBpZiAoIWFycm93RWxlbWVudCB8fCAhcG9wcGVyT2Zmc2V0cykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gdG9QYWRkaW5nT2JqZWN0KG9wdGlvbnMucGFkZGluZywgc3RhdGUpO1xuICB2YXIgYXJyb3dSZWN0ID0gZ2V0TGF5b3V0UmVjdChhcnJvd0VsZW1lbnQpO1xuICB2YXIgbWluUHJvcCA9IGF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gIHZhciBtYXhQcm9wID0gYXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gIHZhciBlbmREaWZmID0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2xlbl0gKyBzdGF0ZS5yZWN0cy5yZWZlcmVuY2VbYXhpc10gLSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucG9wcGVyW2xlbl07XG4gIHZhciBzdGFydERpZmYgPSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2F4aXNdO1xuICB2YXIgYXJyb3dPZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQoYXJyb3dFbGVtZW50KTtcbiAgdmFyIGNsaWVudFNpemUgPSBhcnJvd09mZnNldFBhcmVudCA/IGF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudEhlaWdodCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50V2lkdGggfHwgMCA6IDA7XG4gIHZhciBjZW50ZXJUb1JlZmVyZW5jZSA9IGVuZERpZmYgLyAyIC0gc3RhcnREaWZmIC8gMjsgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBkb2Vzbid0IG92ZXJmbG93IHRoZSBwb3BwZXIgaWYgdGhlIGNlbnRlciBwb2ludCBpc1xuICAvLyBvdXRzaWRlIG9mIHRoZSBwb3BwZXIgYm91bmRzXG5cbiAgdmFyIG1pbiA9IHBhZGRpbmdPYmplY3RbbWluUHJvcF07XG4gIHZhciBtYXggPSBjbGllbnRTaXplIC0gYXJyb3dSZWN0W2xlbl0gLSBwYWRkaW5nT2JqZWN0W21heFByb3BdO1xuICB2YXIgY2VudGVyID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd1JlY3RbbGVuXSAvIDIgKyBjZW50ZXJUb1JlZmVyZW5jZTtcbiAgdmFyIG9mZnNldCA9IHdpdGhpbihtaW4sIGNlbnRlciwgbWF4KTsgLy8gUHJldmVudHMgYnJlYWtpbmcgc3ludGF4IGhpZ2hsaWdodGluZy4uLlxuXG4gIHZhciBheGlzUHJvcCA9IGF4aXM7XG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSAoX3N0YXRlJG1vZGlmaWVyc0RhdGEkID0ge30sIF9zdGF0ZSRtb2RpZmllcnNEYXRhJFtheGlzUHJvcF0gPSBvZmZzZXQsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJC5jZW50ZXJPZmZzZXQgPSBvZmZzZXQgLSBjZW50ZXIsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJCk7XG59XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmMikge1xuICB2YXIgc3RhdGUgPSBfcmVmMi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmMi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZWxlbWVudCA9IG9wdGlvbnMuZWxlbWVudCxcbiAgICAgIGFycm93RWxlbWVudCA9IF9vcHRpb25zJGVsZW1lbnQgPT09IHZvaWQgMCA/ICdbZGF0YS1wb3BwZXItYXJyb3ddJyA6IF9vcHRpb25zJGVsZW1lbnQ7XG5cbiAgaWYgKGFycm93RWxlbWVudCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIENTUyBzZWxlY3RvclxuXG5cbiAgaWYgKHR5cGVvZiBhcnJvd0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgYXJyb3dFbGVtZW50ID0gc3RhdGUuZWxlbWVudHMucG9wcGVyLnF1ZXJ5U2VsZWN0b3IoYXJyb3dFbGVtZW50KTtcblxuICAgIGlmICghYXJyb3dFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGlmICghaXNIVE1MRWxlbWVudChhcnJvd0VsZW1lbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBcImFycm93XCIgZWxlbWVudCBtdXN0IGJlIGFuIEhUTUxFbGVtZW50IChub3QgYW4gU1ZHRWxlbWVudCkuJywgJ1RvIHVzZSBhbiBTVkcgYXJyb3csIHdyYXAgaXQgaW4gYW4gSFRNTEVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgYXMnLCAndGhlIGFycm93LiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFjb250YWlucyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIsIGFycm93RWxlbWVudCkpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBcImFycm93XCIgbW9kaWZpZXJcXCdzIGBlbGVtZW50YCBtdXN0IGJlIGEgY2hpbGQgb2YgdGhlIHBvcHBlcicsICdlbGVtZW50LiddLmpvaW4oJyAnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3RhdGUuZWxlbWVudHMuYXJyb3cgPSBhcnJvd0VsZW1lbnQ7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcnJvdycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIGZuOiBhcnJvdyxcbiAgZWZmZWN0OiBlZmZlY3QsXG4gIHJlcXVpcmVzOiBbJ3BvcHBlck9mZnNldHMnXSxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydwcmV2ZW50T3ZlcmZsb3cnXVxufTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn0iLCJpbXBvcnQgeyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20sIGVuZCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi4vdXRpbHMvZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgeyByb3VuZCB9IGZyb20gXCIuLi91dGlscy9tYXRoLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxudmFyIHVuc2V0U2lkZXMgPSB7XG4gIHRvcDogJ2F1dG8nLFxuICByaWdodDogJ2F1dG8nLFxuICBib3R0b206ICdhdXRvJyxcbiAgbGVmdDogJ2F1dG8nXG59OyAvLyBSb3VuZCB0aGUgb2Zmc2V0cyB0byB0aGUgbmVhcmVzdCBzdWl0YWJsZSBzdWJwaXhlbCBiYXNlZCBvbiB0aGUgRFBSLlxuLy8gWm9vbWluZyBjYW4gY2hhbmdlIHRoZSBEUFIsIGJ1dCBpdCBzZWVtcyB0byByZXBvcnQgYSB2YWx1ZSB0aGF0IHdpbGxcbi8vIGNsZWFubHkgZGl2aWRlIHRoZSB2YWx1ZXMgaW50byB0aGUgYXBwcm9wcmlhdGUgc3VicGl4ZWxzLlxuXG5mdW5jdGlvbiByb3VuZE9mZnNldHNCeURQUihfcmVmKSB7XG4gIHZhciB4ID0gX3JlZi54LFxuICAgICAgeSA9IF9yZWYueTtcbiAgdmFyIHdpbiA9IHdpbmRvdztcbiAgdmFyIGRwciA9IHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG4gIHJldHVybiB7XG4gICAgeDogcm91bmQoeCAqIGRwcikgLyBkcHIgfHwgMCxcbiAgICB5OiByb3VuZCh5ICogZHByKSAvIGRwciB8fCAwXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb1N0eWxlcyhfcmVmMikge1xuICB2YXIgX09iamVjdCRhc3NpZ24yO1xuXG4gIHZhciBwb3BwZXIgPSBfcmVmMi5wb3BwZXIsXG4gICAgICBwb3BwZXJSZWN0ID0gX3JlZjIucG9wcGVyUmVjdCxcbiAgICAgIHBsYWNlbWVudCA9IF9yZWYyLnBsYWNlbWVudCxcbiAgICAgIHZhcmlhdGlvbiA9IF9yZWYyLnZhcmlhdGlvbixcbiAgICAgIG9mZnNldHMgPSBfcmVmMi5vZmZzZXRzLFxuICAgICAgcG9zaXRpb24gPSBfcmVmMi5wb3NpdGlvbixcbiAgICAgIGdwdUFjY2VsZXJhdGlvbiA9IF9yZWYyLmdwdUFjY2VsZXJhdGlvbixcbiAgICAgIGFkYXB0aXZlID0gX3JlZjIuYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHMgPSBfcmVmMi5yb3VuZE9mZnNldHMsXG4gICAgICBpc0ZpeGVkID0gX3JlZjIuaXNGaXhlZDtcbiAgdmFyIF9vZmZzZXRzJHggPSBvZmZzZXRzLngsXG4gICAgICB4ID0gX29mZnNldHMkeCA9PT0gdm9pZCAwID8gMCA6IF9vZmZzZXRzJHgsXG4gICAgICBfb2Zmc2V0cyR5ID0gb2Zmc2V0cy55LFxuICAgICAgeSA9IF9vZmZzZXRzJHkgPT09IHZvaWQgMCA/IDAgOiBfb2Zmc2V0cyR5O1xuXG4gIHZhciBfcmVmMyA9IHR5cGVvZiByb3VuZE9mZnNldHMgPT09ICdmdW5jdGlvbicgPyByb3VuZE9mZnNldHMoe1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9KSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjMueDtcbiAgeSA9IF9yZWYzLnk7XG4gIHZhciBoYXNYID0gb2Zmc2V0cy5oYXNPd25Qcm9wZXJ0eSgneCcpO1xuICB2YXIgaGFzWSA9IG9mZnNldHMuaGFzT3duUHJvcGVydHkoJ3knKTtcbiAgdmFyIHNpZGVYID0gbGVmdDtcbiAgdmFyIHNpZGVZID0gdG9wO1xuICB2YXIgd2luID0gd2luZG93O1xuXG4gIGlmIChhZGFwdGl2ZSkge1xuICAgIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQocG9wcGVyKTtcbiAgICB2YXIgaGVpZ2h0UHJvcCA9ICdjbGllbnRIZWlnaHQnO1xuICAgIHZhciB3aWR0aFByb3AgPSAnY2xpZW50V2lkdGgnO1xuXG4gICAgaWYgKG9mZnNldFBhcmVudCA9PT0gZ2V0V2luZG93KHBvcHBlcikpIHtcbiAgICAgIG9mZnNldFBhcmVudCA9IGdldERvY3VtZW50RWxlbWVudChwb3BwZXIpO1xuXG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uICE9PSAnc3RhdGljJyAmJiBwb3NpdGlvbiA9PT0gJ2Fic29sdXRlJykge1xuICAgICAgICBoZWlnaHRQcm9wID0gJ3Njcm9sbEhlaWdodCc7XG4gICAgICAgIHdpZHRoUHJvcCA9ICdzY3JvbGxXaWR0aCc7XG4gICAgICB9XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYXN0XTogZm9yY2UgdHlwZSByZWZpbmVtZW50LCB3ZSBjb21wYXJlIG9mZnNldFBhcmVudCB3aXRoIHdpbmRvdyBhYm92ZSwgYnV0IEZsb3cgZG9lc24ndCBkZXRlY3QgaXRcblxuXG4gICAgb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50O1xuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gdG9wIHx8IChwbGFjZW1lbnQgPT09IGxlZnQgfHwgcGxhY2VtZW50ID09PSByaWdodCkgJiYgdmFyaWF0aW9uID09PSBlbmQpIHtcbiAgICAgIHNpZGVZID0gYm90dG9tO1xuICAgICAgdmFyIG9mZnNldFkgPSBpc0ZpeGVkICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgICAgIG9mZnNldFBhcmVudFtoZWlnaHRQcm9wXTtcbiAgICAgIHkgLT0gb2Zmc2V0WSAtIHBvcHBlclJlY3QuaGVpZ2h0O1xuICAgICAgeSAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gbGVmdCB8fCAocGxhY2VtZW50ID09PSB0b3AgfHwgcGxhY2VtZW50ID09PSBib3R0b20pICYmIHZhcmlhdGlvbiA9PT0gZW5kKSB7XG4gICAgICBzaWRlWCA9IHJpZ2h0O1xuICAgICAgdmFyIG9mZnNldFggPSBpc0ZpeGVkICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC53aWR0aCA6IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgICAgb2Zmc2V0UGFyZW50W3dpZHRoUHJvcF07XG4gICAgICB4IC09IG9mZnNldFggLSBwb3BwZXJSZWN0LndpZHRoO1xuICAgICAgeCAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHBvc2l0aW9uOiBwb3NpdGlvblxuICB9LCBhZGFwdGl2ZSAmJiB1bnNldFNpZGVzKTtcblxuICB2YXIgX3JlZjQgPSByb3VuZE9mZnNldHMgPT09IHRydWUgPyByb3VuZE9mZnNldHNCeURQUih7XG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH0pIDoge1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9O1xuXG4gIHggPSBfcmVmNC54O1xuICB5ID0gX3JlZjQueTtcblxuICBpZiAoZ3B1QWNjZWxlcmF0aW9uKSB7XG4gICAgdmFyIF9PYmplY3QkYXNzaWduO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywgKF9PYmplY3QkYXNzaWduID0ge30sIF9PYmplY3QkYXNzaWduW3NpZGVZXSA9IGhhc1kgPyAnMCcgOiAnJywgX09iamVjdCRhc3NpZ25bc2lkZVhdID0gaGFzWCA/ICcwJyA6ICcnLCBfT2JqZWN0JGFzc2lnbi50cmFuc2Zvcm0gPSAod2luLmRldmljZVBpeGVsUmF0aW8gfHwgMSkgPD0gMSA/IFwidHJhbnNsYXRlKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgpXCIgOiBcInRyYW5zbGF0ZTNkKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgsIDApXCIsIF9PYmplY3QkYXNzaWduKSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCAoX09iamVjdCRhc3NpZ24yID0ge30sIF9PYmplY3QkYXNzaWduMltzaWRlWV0gPSBoYXNZID8geSArIFwicHhcIiA6ICcnLCBfT2JqZWN0JGFzc2lnbjJbc2lkZVhdID0gaGFzWCA/IHggKyBcInB4XCIgOiAnJywgX09iamVjdCRhc3NpZ24yLnRyYW5zZm9ybSA9ICcnLCBfT2JqZWN0JGFzc2lnbjIpKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVN0eWxlcyhfcmVmNSkge1xuICB2YXIgc3RhdGUgPSBfcmVmNS5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmNS5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZ3B1QWNjZWxlcmF0ID0gb3B0aW9ucy5ncHVBY2NlbGVyYXRpb24sXG4gICAgICBncHVBY2NlbGVyYXRpb24gPSBfb3B0aW9ucyRncHVBY2NlbGVyYXQgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRncHVBY2NlbGVyYXQsXG4gICAgICBfb3B0aW9ucyRhZGFwdGl2ZSA9IG9wdGlvbnMuYWRhcHRpdmUsXG4gICAgICBhZGFwdGl2ZSA9IF9vcHRpb25zJGFkYXB0aXZlID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWRhcHRpdmUsXG4gICAgICBfb3B0aW9ucyRyb3VuZE9mZnNldHMgPSBvcHRpb25zLnJvdW5kT2Zmc2V0cyxcbiAgICAgIHJvdW5kT2Zmc2V0cyA9IF9vcHRpb25zJHJvdW5kT2Zmc2V0cyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJvdW5kT2Zmc2V0cztcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIHRyYW5zaXRpb25Qcm9wZXJ0eSA9IGdldENvbXB1dGVkU3R5bGUoc3RhdGUuZWxlbWVudHMucG9wcGVyKS50cmFuc2l0aW9uUHJvcGVydHkgfHwgJyc7XG5cbiAgICBpZiAoYWRhcHRpdmUgJiYgWyd0cmFuc2Zvcm0nLCAndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10uc29tZShmdW5jdGlvbiAocHJvcGVydHkpIHtcbiAgICAgIHJldHVybiB0cmFuc2l0aW9uUHJvcGVydHkuaW5kZXhPZihwcm9wZXJ0eSkgPj0gMDtcbiAgICB9KSkge1xuICAgICAgY29uc29sZS53YXJuKFsnUG9wcGVyOiBEZXRlY3RlZCBDU1MgdHJhbnNpdGlvbnMgb24gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcnLCAnQ1NTIHByb3BlcnRpZXM6IFwidHJhbnNmb3JtXCIsIFwidG9wXCIsIFwicmlnaHRcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIuJywgJ1xcblxcbicsICdEaXNhYmxlIHRoZSBcImNvbXB1dGVTdHlsZXNcIiBtb2RpZmllclxcJ3MgYGFkYXB0aXZlYCBvcHRpb24gdG8gYWxsb3cnLCAnZm9yIHNtb290aCB0cmFuc2l0aW9ucywgb3IgcmVtb3ZlIHRoZXNlIHByb3BlcnRpZXMgZnJvbSB0aGUgQ1NTJywgJ3RyYW5zaXRpb24gZGVjbGFyYXRpb24gb24gdGhlIHBvcHBlciBlbGVtZW50IGlmIG9ubHkgdHJhbnNpdGlvbmluZycsICdvcGFjaXR5IG9yIGJhY2tncm91bmQtY29sb3IgZm9yIGV4YW1wbGUuJywgJ1xcblxcbicsICdXZSByZWNvbW1lbmQgdXNpbmcgdGhlIHBvcHBlciBlbGVtZW50IGFzIGEgd3JhcHBlciBhcm91bmQgYW4gaW5uZXInLCAnZWxlbWVudCB0aGF0IGNhbiBoYXZlIGFueSBDU1MgcHJvcGVydHkgdHJhbnNpdGlvbmVkIGZvciBhbmltYXRpb25zLiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IHtcbiAgICBwbGFjZW1lbnQ6IGdldEJhc2VQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KSxcbiAgICB2YXJpYXRpb246IGdldFZhcmlhdGlvbihzdGF0ZS5wbGFjZW1lbnQpLFxuICAgIHBvcHBlcjogc3RhdGUuZWxlbWVudHMucG9wcGVyLFxuICAgIHBvcHBlclJlY3Q6IHN0YXRlLnJlY3RzLnBvcHBlcixcbiAgICBncHVBY2NlbGVyYXRpb246IGdwdUFjY2VsZXJhdGlvbixcbiAgICBpc0ZpeGVkOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnXG4gIH07XG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyAhPSBudWxsKSB7XG4gICAgc3RhdGUuc3R5bGVzLnBvcHBlciA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnN0eWxlcy5wb3BwZXIsIG1hcFRvU3R5bGVzKE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywge1xuICAgICAgb2Zmc2V0czogc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLFxuICAgICAgcG9zaXRpb246IHN0YXRlLm9wdGlvbnMuc3RyYXRlZ3ksXG4gICAgICBhZGFwdGl2ZTogYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHM6IHJvdW5kT2Zmc2V0c1xuICAgIH0pKSk7XG4gIH1cblxuICBpZiAoc3RhdGUubW9kaWZpZXJzRGF0YS5hcnJvdyAhPSBudWxsKSB7XG4gICAgc3RhdGUuc3R5bGVzLmFycm93ID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc3R5bGVzLmFycm93LCBtYXBUb1N0eWxlcyhPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIHtcbiAgICAgIG9mZnNldHM6IHN0YXRlLm1vZGlmaWVyc0RhdGEuYXJyb3csXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGFkYXB0aXZlOiBmYWxzZSxcbiAgICAgIHJvdW5kT2Zmc2V0czogcm91bmRPZmZzZXRzXG4gICAgfSkpKTtcbiAgfVxuXG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcGxhY2VtZW50Jzogc3RhdGUucGxhY2VtZW50XG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnY29tcHV0ZVN0eWxlcycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnYmVmb3JlV3JpdGUnLFxuICBmbjogY29tcHV0ZVN0eWxlcyxcbiAgZGF0YToge31cbn07IiwiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldFdpbmRvdy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciBwYXNzaXZlID0ge1xuICBwYXNzaXZlOiB0cnVlXG59O1xuXG5mdW5jdGlvbiBlZmZlY3QoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgaW5zdGFuY2UgPSBfcmVmLmluc3RhbmNlLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucztcbiAgdmFyIF9vcHRpb25zJHNjcm9sbCA9IG9wdGlvbnMuc2Nyb2xsLFxuICAgICAgc2Nyb2xsID0gX29wdGlvbnMkc2Nyb2xsID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkc2Nyb2xsLFxuICAgICAgX29wdGlvbnMkcmVzaXplID0gb3B0aW9ucy5yZXNpemUsXG4gICAgICByZXNpemUgPSBfb3B0aW9ucyRyZXNpemUgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRyZXNpemU7XG4gIHZhciB3aW5kb3cgPSBnZXRXaW5kb3coc3RhdGUuZWxlbWVudHMucG9wcGVyKTtcbiAgdmFyIHNjcm9sbFBhcmVudHMgPSBbXS5jb25jYXQoc3RhdGUuc2Nyb2xsUGFyZW50cy5yZWZlcmVuY2UsIHN0YXRlLnNjcm9sbFBhcmVudHMucG9wcGVyKTtcblxuICBpZiAoc2Nyb2xsKSB7XG4gICAgc2Nyb2xsUGFyZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzY3JvbGxQYXJlbnQpIHtcbiAgICAgIHNjcm9sbFBhcmVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKHJlc2l6ZSkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2Nyb2xsKSB7XG4gICAgICBzY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24gKHNjcm9sbFBhcmVudCkge1xuICAgICAgICBzY3JvbGxQYXJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaW5zdGFuY2UudXBkYXRlLCBwYXNzaXZlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChyZXNpemUpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgIH1cbiAgfTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2V2ZW50TGlzdGVuZXJzJyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICd3cml0ZScsXG4gIGZuOiBmdW5jdGlvbiBmbigpIHt9LFxuICBlZmZlY3Q6IGVmZmVjdCxcbiAgZGF0YToge31cbn07IiwidmFyIGhhc2ggPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59IiwidmFyIGhhc2ggPSB7XG4gIHN0YXJ0OiAnZW5kJyxcbiAgZW5kOiAnc3RhcnQnXG59O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvc3RhcnR8ZW5kL2csIGZ1bmN0aW9uIChtYXRjaGVkKSB7XG4gICAgcmV0dXJuIGhhc2hbbWF0Y2hlZF07XG4gIH0pO1xufSIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGwobm9kZSkge1xuICB2YXIgd2luID0gZ2V0V2luZG93KG5vZGUpO1xuICB2YXIgc2Nyb2xsTGVmdCA9IHdpbi5wYWdlWE9mZnNldDtcbiAgdmFyIHNjcm9sbFRvcCA9IHdpbi5wYWdlWU9mZnNldDtcbiAgcmV0dXJuIHtcbiAgICBzY3JvbGxMZWZ0OiBzY3JvbGxMZWZ0LFxuICAgIHNjcm9sbFRvcDogc2Nyb2xsVG9wXG4gIH07XG59IiwiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSB7XG4gIC8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbiAgLy8gaW5jb3JyZWN0IGZvciBSVEwuXG4gIC8vIFBvcHBlciAxIGlzIGJyb2tlbiBpbiB0aGlzIGNhc2UgYW5kIG5ldmVyIGhhZCBhIGJ1ZyByZXBvcnQgc28gbGV0J3MgYXNzdW1lXG4gIC8vIGl0J3Mgbm90IGFuIGlzc3VlLiBJIGRvbid0IHRoaW5rIGFueW9uZSBldmVyIHNwZWNpZmllcyB3aWR0aCBvbiA8aHRtbD5cbiAgLy8gYW55d2F5LlxuICAvLyBCcm93c2VycyB3aGVyZSB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBjYXVzZSBhbiBpc3N1ZSByZXBvcnQgYDBgIGZvclxuICAvLyB0aGlzIChlLmcuIEVkZ2UgMjAxOSwgSUUxMSwgU2FmYXJpKVxuICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGdldFdpbmRvd1Njcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xufSIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQpIHtcbiAgdmFyIHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgdmFyIGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIHZhciB2aXN1YWxWaWV3cG9ydCA9IHdpbi52aXN1YWxWaWV3cG9ydDtcbiAgdmFyIHdpZHRoID0gaHRtbC5jbGllbnRXaWR0aDtcbiAgdmFyIGhlaWdodCA9IGh0bWwuY2xpZW50SGVpZ2h0O1xuICB2YXIgeCA9IDA7XG4gIHZhciB5ID0gMDsgLy8gTkI6IFRoaXMgaXNuJ3Qgc3VwcG9ydGVkIG9uIGlPUyA8PSAxMi4gSWYgdGhlIGtleWJvYXJkIGlzIG9wZW4sIHRoZSBwb3BwZXJcbiAgLy8gY2FuIGJlIG9ic2N1cmVkIHVuZGVybmVhdGggaXQuXG4gIC8vIEFsc28sIGBodG1sLmNsaWVudEhlaWdodGAgYWRkcyB0aGUgYm90dG9tIGJhciBoZWlnaHQgaW4gU2FmYXJpIGlPUywgZXZlblxuICAvLyBpZiBpdCBpc24ndCBvcGVuLCBzbyBpZiB0aGlzIGlzbid0IGF2YWlsYWJsZSwgdGhlIHBvcHBlciB3aWxsIGJlIGRldGVjdGVkXG4gIC8vIHRvIG92ZXJmbG93IHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiB0b28gZWFybHkuXG5cbiAgaWYgKHZpc3VhbFZpZXdwb3J0KSB7XG4gICAgd2lkdGggPSB2aXN1YWxWaWV3cG9ydC53aWR0aDtcbiAgICBoZWlnaHQgPSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7IC8vIFVzZXMgTGF5b3V0IFZpZXdwb3J0IChsaWtlIENocm9tZTsgU2FmYXJpIGRvZXMgbm90IGN1cnJlbnRseSlcbiAgICAvLyBJbiBDaHJvbWUsIGl0IHJldHVybnMgYSB2YWx1ZSB2ZXJ5IGNsb3NlIHRvIDAgKCsvLSkgYnV0IGNvbnRhaW5zIHJvdW5kaW5nXG4gICAgLy8gZXJyb3JzIGR1ZSB0byBmbG9hdGluZyBwb2ludCBudW1iZXJzLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHByZWNpc2lvbi5cbiAgICAvLyBTYWZhcmkgcmV0dXJucyBhIG51bWJlciA8PSAwLCB1c3VhbGx5IDwgLTEgd2hlbiBwaW5jaC16b29tZWRcbiAgICAvLyBGZWF0dXJlIGRldGVjdGlvbiBmYWlscyBpbiBtb2JpbGUgZW11bGF0aW9uIG1vZGUgaW4gQ2hyb21lLlxuICAgIC8vIE1hdGguYWJzKHdpbi5pbm5lcldpZHRoIC8gdmlzdWFsVmlld3BvcnQuc2NhbGUgLSB2aXN1YWxWaWV3cG9ydC53aWR0aCkgPFxuICAgIC8vIDAuMDAxXG4gICAgLy8gRmFsbGJhY2sgaGVyZTogXCJOb3QgU2FmYXJpXCIgdXNlckFnZW50XG5cbiAgICBpZiAoIS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHtcbiAgICAgIHggPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgeSA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4OiB4ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSxcbiAgICB5OiB5XG4gIH07XG59IiwiaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGxCYXJYIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbEJhclguanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGwgZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsLmpzXCI7XG5pbXBvcnQgeyBtYXggfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiOyAvLyBHZXRzIHRoZSBlbnRpcmUgc2l6ZSBvZiB0aGUgc2Nyb2xsYWJsZSBkb2N1bWVudCBhcmVhLCBldmVuIGV4dGVuZGluZyBvdXRzaWRlXG4vLyBvZiB0aGUgYDxodG1sPmAgYW5kIGA8Ym9keT5gIHJlY3QgYm91bmRzIGlmIGhvcml6b250YWxseSBzY3JvbGxhYmxlXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERvY3VtZW50UmVjdChlbGVtZW50KSB7XG4gIHZhciBfZWxlbWVudCRvd25lckRvY3VtZW47XG5cbiAgdmFyIGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIHZhciB3aW5TY3JvbGwgPSBnZXRXaW5kb3dTY3JvbGwoZWxlbWVudCk7XG4gIHZhciBib2R5ID0gKF9lbGVtZW50JG93bmVyRG9jdW1lbiA9IGVsZW1lbnQub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lbGVtZW50JG93bmVyRG9jdW1lbi5ib2R5O1xuICB2YXIgd2lkdGggPSBtYXgoaHRtbC5zY3JvbGxXaWR0aCwgaHRtbC5jbGllbnRXaWR0aCwgYm9keSA/IGJvZHkuc2Nyb2xsV2lkdGggOiAwLCBib2R5ID8gYm9keS5jbGllbnRXaWR0aCA6IDApO1xuICB2YXIgaGVpZ2h0ID0gbWF4KGh0bWwuc2Nyb2xsSGVpZ2h0LCBodG1sLmNsaWVudEhlaWdodCwgYm9keSA/IGJvZHkuc2Nyb2xsSGVpZ2h0IDogMCwgYm9keSA/IGJvZHkuY2xpZW50SGVpZ2h0IDogMCk7XG4gIHZhciB4ID0gLXdpblNjcm9sbC5zY3JvbGxMZWZ0ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KTtcbiAgdmFyIHkgPSAtd2luU2Nyb2xsLnNjcm9sbFRvcDtcblxuICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShib2R5IHx8IGh0bWwpLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICB4ICs9IG1heChodG1sLmNsaWVudFdpZHRoLCBib2R5ID8gYm9keS5jbGllbnRXaWR0aCA6IDApIC0gd2lkdGg7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcbn0iLCJpbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1Njcm9sbFBhcmVudChlbGVtZW50KSB7XG4gIC8vIEZpcmVmb3ggd2FudHMgdXMgdG8gY2hlY2sgYC14YCBhbmQgYC15YCB2YXJpYXRpb25zIGFzIHdlbGxcbiAgdmFyIF9nZXRDb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSxcbiAgICAgIG92ZXJmbG93ID0gX2dldENvbXB1dGVkU3R5bGUub3ZlcmZsb3csXG4gICAgICBvdmVyZmxvd1ggPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvd1gsXG4gICAgICBvdmVyZmxvd1kgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvd1k7XG5cbiAgcmV0dXJuIC9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbi8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCk7XG59IiwiaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGlzU2Nyb2xsUGFyZW50IGZyb20gXCIuL2lzU2Nyb2xsUGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQobm9kZSkge1xuICBpZiAoWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5kZXhPZihnZXROb2RlTmFtZShub2RlKSkgPj0gMCkge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cblxuICBpZiAoaXNIVE1MRWxlbWVudChub2RlKSAmJiBpc1Njcm9sbFBhcmVudChub2RlKSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKG5vZGUpKTtcbn0iLCJpbXBvcnQgZ2V0U2Nyb2xsUGFyZW50IGZyb20gXCIuL2dldFNjcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuLypcbmdpdmVuIGEgRE9NIGVsZW1lbnQsIHJldHVybiB0aGUgbGlzdCBvZiBhbGwgc2Nyb2xsIHBhcmVudHMsIHVwIHRoZSBsaXN0IG9mIGFuY2Vzb3JzXG51bnRpbCB3ZSBnZXQgdG8gdGhlIHRvcCB3aW5kb3cgb2JqZWN0LiBUaGlzIGxpc3QgaXMgd2hhdCB3ZSBhdHRhY2ggc2Nyb2xsIGxpc3RlbmVyc1xudG8sIGJlY2F1c2UgaWYgYW55IG9mIHRoZXNlIHBhcmVudCBlbGVtZW50cyBzY3JvbGwsIHdlJ2xsIG5lZWQgdG8gcmUtY2FsY3VsYXRlIHRoZVxucmVmZXJlbmNlIGVsZW1lbnQncyBwb3NpdGlvbi5cbiovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxpc3RTY3JvbGxQYXJlbnRzKGVsZW1lbnQsIGxpc3QpIHtcbiAgdmFyIF9lbGVtZW50JG93bmVyRG9jdW1lbjtcblxuICBpZiAobGlzdCA9PT0gdm9pZCAwKSB7XG4gICAgbGlzdCA9IFtdO1xuICB9XG5cbiAgdmFyIHNjcm9sbFBhcmVudCA9IGdldFNjcm9sbFBhcmVudChlbGVtZW50KTtcbiAgdmFyIGlzQm9keSA9IHNjcm9sbFBhcmVudCA9PT0gKChfZWxlbWVudCRvd25lckRvY3VtZW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZWxlbWVudCRvd25lckRvY3VtZW4uYm9keSk7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3coc2Nyb2xsUGFyZW50KTtcbiAgdmFyIHRhcmdldCA9IGlzQm9keSA/IFt3aW5dLmNvbmNhdCh3aW4udmlzdWFsVmlld3BvcnQgfHwgW10sIGlzU2Nyb2xsUGFyZW50KHNjcm9sbFBhcmVudCkgPyBzY3JvbGxQYXJlbnQgOiBbXSkgOiBzY3JvbGxQYXJlbnQ7XG4gIHZhciB1cGRhdGVkTGlzdCA9IGxpc3QuY29uY2F0KHRhcmdldCk7XG4gIHJldHVybiBpc0JvZHkgPyB1cGRhdGVkTGlzdCA6IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLWNhbGxdOiBpc0JvZHkgdGVsbHMgdXMgdGFyZ2V0IHdpbGwgYmUgYW4gSFRNTEVsZW1lbnQgaGVyZVxuICB1cGRhdGVkTGlzdC5jb25jYXQobGlzdFNjcm9sbFBhcmVudHMoZ2V0UGFyZW50Tm9kZSh0YXJnZXQpKSk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZWN0LCB7XG4gICAgbGVmdDogcmVjdC54LFxuICAgIHRvcDogcmVjdC55LFxuICAgIHJpZ2h0OiByZWN0LnggKyByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogcmVjdC55ICsgcmVjdC5oZWlnaHRcbiAgfSk7XG59IiwiaW1wb3J0IHsgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWaWV3cG9ydFJlY3QgZnJvbSBcIi4vZ2V0Vmlld3BvcnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRSZWN0IGZyb20gXCIuL2dldERvY3VtZW50UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2xpc3RTY3JvbGxQYXJlbnRzLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0UGFyZW50Tm9kZSBmcm9tIFwiLi9nZXRQYXJlbnROb2RlLmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4vY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4uL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCB7IG1heCwgbWluIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTtcbiAgcmVjdC50b3AgPSByZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICByZWN0LmxlZnQgPSByZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudExlZnQ7XG4gIHJlY3QuYm90dG9tID0gcmVjdC50b3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcbiAgcmVjdC5yaWdodCA9IHJlY3QubGVmdCArIGVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIHJlY3Qud2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoO1xuICByZWN0LmhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICByZWN0LnggPSByZWN0LmxlZnQ7XG4gIHJlY3QueSA9IHJlY3QudG9wO1xuICByZXR1cm4gcmVjdDtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQpIHtcbiAgcmV0dXJuIGNsaXBwaW5nUGFyZW50ID09PSB2aWV3cG9ydCA/IHJlY3RUb0NsaWVudFJlY3QoZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQpKSA6IGlzRWxlbWVudChjbGlwcGluZ1BhcmVudCkgPyBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ1BhcmVudCkgOiByZWN0VG9DbGllbnRSZWN0KGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpKTtcbn0gLy8gQSBcImNsaXBwaW5nIHBhcmVudFwiIGlzIGFuIG92ZXJmbG93YWJsZSBjb250YWluZXIgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpdGggYSBwb3NpdGlvbiBkaWZmZXJlbnQgZnJvbVxuLy8gYGluaXRpYWxgXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIHtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xuICB2YXIgY2FuRXNjYXBlQ2xpcHBpbmcgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSA+PSAwO1xuICB2YXIgY2xpcHBlckVsZW1lbnQgPSBjYW5Fc2NhcGVDbGlwcGluZyAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIDogZWxlbWVudDtcblxuICBpZiAoIWlzRWxlbWVudChjbGlwcGVyRWxlbWVudCkpIHtcbiAgICByZXR1cm4gW107XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzE0MTRcblxuXG4gIHJldHVybiBjbGlwcGluZ1BhcmVudHMuZmlsdGVyKGZ1bmN0aW9uIChjbGlwcGluZ1BhcmVudCkge1xuICAgIHJldHVybiBpc0VsZW1lbnQoY2xpcHBpbmdQYXJlbnQpICYmIGNvbnRhaW5zKGNsaXBwaW5nUGFyZW50LCBjbGlwcGVyRWxlbWVudCkgJiYgZ2V0Tm9kZU5hbWUoY2xpcHBpbmdQYXJlbnQpICE9PSAnYm9keSc7XG4gIH0pO1xufSAvLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBwYXJlbnRzXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KGVsZW1lbnQsIGJvdW5kYXJ5LCByb290Qm91bmRhcnkpIHtcbiAgdmFyIG1haW5DbGlwcGluZ1BhcmVudHMgPSBib3VuZGFyeSA9PT0gJ2NsaXBwaW5nUGFyZW50cycgPyBnZXRDbGlwcGluZ1BhcmVudHMoZWxlbWVudCkgOiBbXS5jb25jYXQoYm91bmRhcnkpO1xuICB2YXIgY2xpcHBpbmdQYXJlbnRzID0gW10uY29uY2F0KG1haW5DbGlwcGluZ1BhcmVudHMsIFtyb290Qm91bmRhcnldKTtcbiAgdmFyIGZpcnN0Q2xpcHBpbmdQYXJlbnQgPSBjbGlwcGluZ1BhcmVudHNbMF07XG4gIHZhciBjbGlwcGluZ1JlY3QgPSBjbGlwcGluZ1BhcmVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2NSZWN0LCBjbGlwcGluZ1BhcmVudCkge1xuICAgIHZhciByZWN0ID0gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQpO1xuICAgIGFjY1JlY3QudG9wID0gbWF4KHJlY3QudG9wLCBhY2NSZWN0LnRvcCk7XG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcbiAgICBhY2NSZWN0LmJvdHRvbSA9IG1pbihyZWN0LmJvdHRvbSwgYWNjUmVjdC5ib3R0b20pO1xuICAgIGFjY1JlY3QubGVmdCA9IG1heChyZWN0LmxlZnQsIGFjY1JlY3QubGVmdCk7XG4gICAgcmV0dXJuIGFjY1JlY3Q7XG4gIH0sIGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGZpcnN0Q2xpcHBpbmdQYXJlbnQpKTtcbiAgY2xpcHBpbmdSZWN0LndpZHRoID0gY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQ7XG4gIGNsaXBwaW5nUmVjdC5oZWlnaHQgPSBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcDtcbiAgY2xpcHBpbmdSZWN0LnggPSBjbGlwcGluZ1JlY3QubGVmdDtcbiAgY2xpcHBpbmdSZWN0LnkgPSBjbGlwcGluZ1JlY3QudG9wO1xuICByZXR1cm4gY2xpcHBpbmdSZWN0O1xufSIsImltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4vZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBzdGFydCwgZW5kIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciByZWZlcmVuY2UgPSBfcmVmLnJlZmVyZW5jZSxcbiAgICAgIGVsZW1lbnQgPSBfcmVmLmVsZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfcmVmLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBwbGFjZW1lbnQgPyBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgdmFyaWF0aW9uID0gcGxhY2VtZW50ID8gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgY29tbW9uWCA9IHJlZmVyZW5jZS54ICsgcmVmZXJlbmNlLndpZHRoIC8gMiAtIGVsZW1lbnQud2lkdGggLyAyO1xuICB2YXIgY29tbW9uWSA9IHJlZmVyZW5jZS55ICsgcmVmZXJlbmNlLmhlaWdodCAvIDIgLSBlbGVtZW50LmhlaWdodCAvIDI7XG4gIHZhciBvZmZzZXRzO1xuXG4gIHN3aXRjaCAoYmFzZVBsYWNlbWVudCkge1xuICAgIGNhc2UgdG9wOlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBlbGVtZW50LmhlaWdodFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBib3R0b206XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiBjb21tb25YLFxuICAgICAgICB5OiByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcmlnaHQ6XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBsZWZ0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLnggLSBlbGVtZW50LndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG5cbiAgdmFyIG1haW5BeGlzID0gYmFzZVBsYWNlbWVudCA/IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KSA6IG51bGw7XG5cbiAgaWYgKG1haW5BeGlzICE9IG51bGwpIHtcbiAgICB2YXIgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHN3aXRjaCAodmFyaWF0aW9uKSB7XG4gICAgICBjYXNlIHN0YXJ0OlxuICAgICAgICBvZmZzZXRzW21haW5BeGlzXSA9IG9mZnNldHNbbWFpbkF4aXNdIC0gKHJlZmVyZW5jZVtsZW5dIC8gMiAtIGVsZW1lbnRbbGVuXSAvIDIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBlbmQ6XG4gICAgICAgIG9mZnNldHNbbWFpbkF4aXNdID0gb2Zmc2V0c1ttYWluQXhpc10gKyAocmVmZXJlbmNlW2xlbl0gLyAyIC0gZWxlbWVudFtsZW5dIC8gMik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvZmZzZXRzO1xufSIsImltcG9ydCBnZXRDbGlwcGluZ1JlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi9jb21wdXRlT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4vcmVjdFRvQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IHsgY2xpcHBpbmdQYXJlbnRzLCByZWZlcmVuY2UsIHBvcHBlciwgYm90dG9tLCB0b3AsIHJpZ2h0LCBiYXNlUGxhY2VtZW50cywgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IG1lcmdlUGFkZGluZ09iamVjdCBmcm9tIFwiLi9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4vZXhwYW5kVG9IYXNoTWFwLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsXG4gICAgICBfb3B0aW9ucyRwbGFjZW1lbnQgPSBfb3B0aW9ucy5wbGFjZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfb3B0aW9ucyRwbGFjZW1lbnQgPT09IHZvaWQgMCA/IHN0YXRlLnBsYWNlbWVudCA6IF9vcHRpb25zJHBsYWNlbWVudCxcbiAgICAgIF9vcHRpb25zJGJvdW5kYXJ5ID0gX29wdGlvbnMuYm91bmRhcnksXG4gICAgICBib3VuZGFyeSA9IF9vcHRpb25zJGJvdW5kYXJ5ID09PSB2b2lkIDAgPyBjbGlwcGluZ1BhcmVudHMgOiBfb3B0aW9ucyRib3VuZGFyeSxcbiAgICAgIF9vcHRpb25zJHJvb3RCb3VuZGFyeSA9IF9vcHRpb25zLnJvb3RCb3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeSA9IF9vcHRpb25zJHJvb3RCb3VuZGFyeSA9PT0gdm9pZCAwID8gdmlld3BvcnQgOiBfb3B0aW9ucyRyb290Qm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRlbGVtZW50Q29udGUgPSBfb3B0aW9ucy5lbGVtZW50Q29udGV4dCxcbiAgICAgIGVsZW1lbnRDb250ZXh0ID0gX29wdGlvbnMkZWxlbWVudENvbnRlID09PSB2b2lkIDAgPyBwb3BwZXIgOiBfb3B0aW9ucyRlbGVtZW50Q29udGUsXG4gICAgICBfb3B0aW9ucyRhbHRCb3VuZGFyeSA9IF9vcHRpb25zLmFsdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnkgPSBfb3B0aW9ucyRhbHRCb3VuZGFyeSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRhbHRCb3VuZGFyeSxcbiAgICAgIF9vcHRpb25zJHBhZGRpbmcgPSBfb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgcGFkZGluZyA9IF9vcHRpb25zJHBhZGRpbmcgPT09IHZvaWQgMCA/IDAgOiBfb3B0aW9ucyRwYWRkaW5nO1xuICB2YXIgcGFkZGluZ09iamVjdCA9IG1lcmdlUGFkZGluZ09iamVjdCh0eXBlb2YgcGFkZGluZyAhPT0gJ251bWJlcicgPyBwYWRkaW5nIDogZXhwYW5kVG9IYXNoTWFwKHBhZGRpbmcsIGJhc2VQbGFjZW1lbnRzKSk7XG4gIHZhciBhbHRDb250ZXh0ID0gZWxlbWVudENvbnRleHQgPT09IHBvcHBlciA/IHJlZmVyZW5jZSA6IHBvcHBlcjtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciBlbGVtZW50ID0gc3RhdGUuZWxlbWVudHNbYWx0Qm91bmRhcnkgPyBhbHRDb250ZXh0IDogZWxlbWVudENvbnRleHRdO1xuICB2YXIgY2xpcHBpbmdDbGllbnRSZWN0ID0gZ2V0Q2xpcHBpbmdSZWN0KGlzRWxlbWVudChlbGVtZW50KSA/IGVsZW1lbnQgOiBlbGVtZW50LmNvbnRleHRFbGVtZW50IHx8IGdldERvY3VtZW50RWxlbWVudChzdGF0ZS5lbGVtZW50cy5wb3BwZXIpLCBib3VuZGFyeSwgcm9vdEJvdW5kYXJ5KTtcbiAgdmFyIHJlZmVyZW5jZUNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlKTtcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBjb21wdXRlT2Zmc2V0cyh7XG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VDbGllbnRSZWN0LFxuICAgIGVsZW1lbnQ6IHBvcHBlclJlY3QsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBwbGFjZW1lbnRcbiAgfSk7XG4gIHZhciBwb3BwZXJDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChPYmplY3QuYXNzaWduKHt9LCBwb3BwZXJSZWN0LCBwb3BwZXJPZmZzZXRzKSk7XG4gIHZhciBlbGVtZW50Q2xpZW50UmVjdCA9IGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgPyBwb3BwZXJDbGllbnRSZWN0IDogcmVmZXJlbmNlQ2xpZW50UmVjdDsgLy8gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgcmVjdFxuICAvLyAwIG9yIG5lZ2F0aXZlID0gd2l0aGluIHRoZSBjbGlwcGluZyByZWN0XG5cbiAgdmFyIG92ZXJmbG93T2Zmc2V0cyA9IHtcbiAgICB0b3A6IGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCxcbiAgICBib3R0b206IGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSxcbiAgICBsZWZ0OiBjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQsXG4gICAgcmlnaHQ6IGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodFxuICB9O1xuICB2YXIgb2Zmc2V0RGF0YSA9IHN0YXRlLm1vZGlmaWVyc0RhdGEub2Zmc2V0OyAvLyBPZmZzZXRzIGNhbiBiZSBhcHBsaWVkIG9ubHkgdG8gdGhlIHBvcHBlciBlbGVtZW50XG5cbiAgaWYgKGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgJiYgb2Zmc2V0RGF0YSkge1xuICAgIHZhciBvZmZzZXQgPSBvZmZzZXREYXRhW3BsYWNlbWVudF07XG4gICAgT2JqZWN0LmtleXMob3ZlcmZsb3dPZmZzZXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHZhciBtdWx0aXBseSA9IFtyaWdodCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/IDEgOiAtMTtcbiAgICAgIHZhciBheGlzID0gW3RvcCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/ICd5JyA6ICd4JztcbiAgICAgIG92ZXJmbG93T2Zmc2V0c1trZXldICs9IG9mZnNldFtheGlzXSAqIG11bHRpcGx5O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG92ZXJmbG93T2Zmc2V0cztcbn0iLCJpbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IHsgdmFyaWF0aW9uUGxhY2VtZW50cywgYmFzZVBsYWNlbWVudHMsIHBsYWNlbWVudHMgYXMgYWxsUGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlQXV0b1BsYWNlbWVudChzdGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIHBsYWNlbWVudCA9IF9vcHRpb25zLnBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5ID0gX29wdGlvbnMuYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBfb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gX29wdGlvbnMucGFkZGluZyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMuZmxpcFZhcmlhdGlvbnMsXG4gICAgICBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPSBfb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHMsXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHMgPSBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPT09IHZvaWQgMCA/IGFsbFBsYWNlbWVudHMgOiBfb3B0aW9ucyRhbGxvd2VkQXV0b1A7XG4gIHZhciB2YXJpYXRpb24gPSBnZXRWYXJpYXRpb24ocGxhY2VtZW50KTtcbiAgdmFyIHBsYWNlbWVudHMgPSB2YXJpYXRpb24gPyBmbGlwVmFyaWF0aW9ucyA/IHZhcmlhdGlvblBsYWNlbWVudHMgOiB2YXJpYXRpb25QbGFjZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSB2YXJpYXRpb247XG4gIH0pIDogYmFzZVBsYWNlbWVudHM7XG4gIHZhciBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gYWxsb3dlZEF1dG9QbGFjZW1lbnRzLmluZGV4T2YocGxhY2VtZW50KSA+PSAwO1xuICB9KTtcblxuICBpZiAoYWxsb3dlZFBsYWNlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgYWxsb3dlZFBsYWNlbWVudHMgPSBwbGFjZW1lbnRzO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgY29uc29sZS5lcnJvcihbJ1BvcHBlcjogVGhlIGBhbGxvd2VkQXV0b1BsYWNlbWVudHNgIG9wdGlvbiBkaWQgbm90IGFsbG93IGFueScsICdwbGFjZW1lbnRzLiBFbnN1cmUgdGhlIGBwbGFjZW1lbnRgIG9wdGlvbiBtYXRjaGVzIHRoZSB2YXJpYXRpb24nLCAnb2YgdGhlIGFsbG93ZWQgcGxhY2VtZW50cy4nLCAnRm9yIGV4YW1wbGUsIFwiYXV0b1wiIGNhbm5vdCBiZSB1c2VkIHRvIGFsbG93IFwiYm90dG9tLXN0YXJ0XCIuJywgJ1VzZSBcImF1dG8tc3RhcnRcIiBpbnN0ZWFkLiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdOiBGbG93IHNlZW1zIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCB0d28gYXJyYXkgdW5pb25zLi4uXG5cblxuICB2YXIgb3ZlcmZsb3dzID0gYWxsb3dlZFBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICAgIGFjY1twbGFjZW1lbnRdID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nXG4gICAgfSlbZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpXTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvdmVyZmxvd3MpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dzW2FdIC0gb3ZlcmZsb3dzW2JdO1xuICB9KTtcbn0iLCJpbXBvcnQgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuLi91dGlscy9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGNvbXB1dGVBdXRvUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9jb21wdXRlQXV0b1BsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgYm90dG9tLCB0b3AsIHN0YXJ0LCByaWdodCwgbGVmdCwgYXV0byB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi4vdXRpbHMvZ2V0VmFyaWF0aW9uLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZnVuY3Rpb24gZ2V0RXhwYW5kZWRGYWxsYmFja1BsYWNlbWVudHMocGxhY2VtZW50KSB7XG4gIGlmIChnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgPT09IGF1dG8pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgb3Bwb3NpdGVQbGFjZW1lbnQgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICByZXR1cm4gW2dldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50KHBsYWNlbWVudCksIG9wcG9zaXRlUGxhY2VtZW50LCBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChvcHBvc2l0ZVBsYWNlbWVudCldO1xufVxuXG5mdW5jdGlvbiBmbGlwKF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhW25hbWVdLl9za2lwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIF9vcHRpb25zJG1haW5BeGlzID0gb3B0aW9ucy5tYWluQXhpcyxcbiAgICAgIGNoZWNrTWFpbkF4aXMgPSBfb3B0aW9ucyRtYWluQXhpcyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJG1haW5BeGlzLFxuICAgICAgX29wdGlvbnMkYWx0QXhpcyA9IG9wdGlvbnMuYWx0QXhpcyxcbiAgICAgIGNoZWNrQWx0QXhpcyA9IF9vcHRpb25zJGFsdEF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzID0gb3B0aW9ucy5mYWxsYmFja1BsYWNlbWVudHMsXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRmbGlwVmFyaWF0aW8gPSBvcHRpb25zLmZsaXBWYXJpYXRpb25zLFxuICAgICAgZmxpcFZhcmlhdGlvbnMgPSBfb3B0aW9ucyRmbGlwVmFyaWF0aW8gPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRmbGlwVmFyaWF0aW8sXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHMgPSBvcHRpb25zLmFsbG93ZWRBdXRvUGxhY2VtZW50cztcbiAgdmFyIHByZWZlcnJlZFBsYWNlbWVudCA9IHN0YXRlLm9wdGlvbnMucGxhY2VtZW50O1xuICB2YXIgYmFzZVBsYWNlbWVudCA9IGdldEJhc2VQbGFjZW1lbnQocHJlZmVycmVkUGxhY2VtZW50KTtcbiAgdmFyIGlzQmFzZVBsYWNlbWVudCA9IGJhc2VQbGFjZW1lbnQgPT09IHByZWZlcnJlZFBsYWNlbWVudDtcbiAgdmFyIGZhbGxiYWNrUGxhY2VtZW50cyA9IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyB8fCAoaXNCYXNlUGxhY2VtZW50IHx8ICFmbGlwVmFyaWF0aW9ucyA/IFtnZXRPcHBvc2l0ZVBsYWNlbWVudChwcmVmZXJyZWRQbGFjZW1lbnQpXSA6IGdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzKHByZWZlcnJlZFBsYWNlbWVudCkpO1xuICB2YXIgcGxhY2VtZW50cyA9IFtwcmVmZXJyZWRQbGFjZW1lbnRdLmNvbmNhdChmYWxsYmFja1BsYWNlbWVudHMpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gYWNjLmNvbmNhdChnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgPT09IGF1dG8gPyBjb21wdXRlQXV0b1BsYWNlbWVudChzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmcsXG4gICAgICBmbGlwVmFyaWF0aW9uczogZmxpcFZhcmlhdGlvbnMsXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IGFsbG93ZWRBdXRvUGxhY2VtZW50c1xuICAgIH0pIDogcGxhY2VtZW50KTtcbiAgfSwgW10pO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciBjaGVja3NNYXAgPSBuZXcgTWFwKCk7XG4gIHZhciBtYWtlRmFsbGJhY2tDaGVja3MgPSB0cnVlO1xuICB2YXIgZmlyc3RGaXR0aW5nUGxhY2VtZW50ID0gcGxhY2VtZW50c1swXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHBsYWNlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGxhY2VtZW50ID0gcGxhY2VtZW50c1tpXTtcblxuICAgIHZhciBfYmFzZVBsYWNlbWVudCA9IGdldEJhc2VQbGFjZW1lbnQocGxhY2VtZW50KTtcblxuICAgIHZhciBpc1N0YXJ0VmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgPT09IHN0YXJ0O1xuICAgIHZhciBpc1ZlcnRpY2FsID0gW3RvcCwgYm90dG9tXS5pbmRleE9mKF9iYXNlUGxhY2VtZW50KSA+PSAwO1xuICAgIHZhciBsZW4gPSBpc1ZlcnRpY2FsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIHZhciBvdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeTogcm9vdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnk6IGFsdEJvdW5kYXJ5LFxuICAgICAgcGFkZGluZzogcGFkZGluZ1xuICAgIH0pO1xuICAgIHZhciBtYWluVmFyaWF0aW9uU2lkZSA9IGlzVmVydGljYWwgPyBpc1N0YXJ0VmFyaWF0aW9uID8gcmlnaHQgOiBsZWZ0IDogaXNTdGFydFZhcmlhdGlvbiA/IGJvdHRvbSA6IHRvcDtcblxuICAgIGlmIChyZWZlcmVuY2VSZWN0W2xlbl0gPiBwb3BwZXJSZWN0W2xlbl0pIHtcbiAgICAgIG1haW5WYXJpYXRpb25TaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpblZhcmlhdGlvblNpZGUpO1xuICAgIH1cblxuICAgIHZhciBhbHRWYXJpYXRpb25TaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpblZhcmlhdGlvblNpZGUpO1xuICAgIHZhciBjaGVja3MgPSBbXTtcblxuICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICBjaGVja3MucHVzaChvdmVyZmxvd1tfYmFzZVBsYWNlbWVudF0gPD0gMCk7XG4gICAgfVxuXG4gICAgaWYgKGNoZWNrQWx0QXhpcykge1xuICAgICAgY2hlY2tzLnB1c2gob3ZlcmZsb3dbbWFpblZhcmlhdGlvblNpZGVdIDw9IDAsIG92ZXJmbG93W2FsdFZhcmlhdGlvblNpZGVdIDw9IDApO1xuICAgIH1cblxuICAgIGlmIChjaGVja3MuZXZlcnkoZnVuY3Rpb24gKGNoZWNrKSB7XG4gICAgICByZXR1cm4gY2hlY2s7XG4gICAgfSkpIHtcbiAgICAgIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudDtcbiAgICAgIG1ha2VGYWxsYmFja0NoZWNrcyA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2hlY2tzTWFwLnNldChwbGFjZW1lbnQsIGNoZWNrcyk7XG4gIH1cblxuICBpZiAobWFrZUZhbGxiYWNrQ2hlY2tzKSB7XG4gICAgLy8gYDJgIG1heSBiZSBkZXNpcmVkIGluIHNvbWUgY2FzZXMg4oCTIHJlc2VhcmNoIGxhdGVyXG4gICAgdmFyIG51bWJlck9mQ2hlY2tzID0gZmxpcFZhcmlhdGlvbnMgPyAzIDogMTtcblxuICAgIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKF9pKSB7XG4gICAgICB2YXIgZml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudHMuZmluZChmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgICAgIHZhciBjaGVja3MgPSBjaGVja3NNYXAuZ2V0KHBsYWNlbWVudCk7XG5cbiAgICAgICAgaWYgKGNoZWNrcykge1xuICAgICAgICAgIHJldHVybiBjaGVja3Muc2xpY2UoMCwgX2kpLmV2ZXJ5KGZ1bmN0aW9uIChjaGVjaykge1xuICAgICAgICAgICAgcmV0dXJuIGNoZWNrO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGZpdHRpbmdQbGFjZW1lbnQpIHtcbiAgICAgICAgZmlyc3RGaXR0aW5nUGxhY2VtZW50ID0gZml0dGluZ1BsYWNlbWVudDtcbiAgICAgICAgcmV0dXJuIFwiYnJlYWtcIjtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9yICh2YXIgX2kgPSBudW1iZXJPZkNoZWNrczsgX2kgPiAwOyBfaS0tKSB7XG4gICAgICB2YXIgX3JldCA9IF9sb29wKF9pKTtcblxuICAgICAgaWYgKF9yZXQgPT09IFwiYnJlYWtcIikgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0YXRlLnBsYWNlbWVudCAhPT0gZmlyc3RGaXR0aW5nUGxhY2VtZW50KSB7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXS5fc2tpcCA9IHRydWU7XG4gICAgc3RhdGUucGxhY2VtZW50ID0gZmlyc3RGaXR0aW5nUGxhY2VtZW50O1xuICAgIHN0YXRlLnJlc2V0ID0gdHJ1ZTtcbiAgfVxufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZmxpcCcsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIGZuOiBmbGlwLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ29mZnNldCddLFxuICBkYXRhOiB7XG4gICAgX3NraXA6IGZhbHNlXG4gIH1cbn07IiwiaW1wb3J0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5cbmZ1bmN0aW9uIGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0LCBwcmV2ZW50ZWRPZmZzZXRzKSB7XG4gIGlmIChwcmV2ZW50ZWRPZmZzZXRzID09PSB2b2lkIDApIHtcbiAgICBwcmV2ZW50ZWRPZmZzZXRzID0ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IG92ZXJmbG93LnRvcCAtIHJlY3QuaGVpZ2h0IC0gcHJldmVudGVkT2Zmc2V0cy55LFxuICAgIHJpZ2h0OiBvdmVyZmxvdy5yaWdodCAtIHJlY3Qud2lkdGggKyBwcmV2ZW50ZWRPZmZzZXRzLngsXG4gICAgYm90dG9tOiBvdmVyZmxvdy5ib3R0b20gLSByZWN0LmhlaWdodCArIHByZXZlbnRlZE9mZnNldHMueSxcbiAgICBsZWZ0OiBvdmVyZmxvdy5sZWZ0IC0gcmVjdC53aWR0aCAtIHByZXZlbnRlZE9mZnNldHMueFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdLnNvbWUoZnVuY3Rpb24gKHNpZGUpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dbc2lkZV0gPj0gMDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhpZGUoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgcHJldmVudGVkT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucHJldmVudE92ZXJmbG93O1xuICB2YXIgcmVmZXJlbmNlT3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGVsZW1lbnRDb250ZXh0OiAncmVmZXJlbmNlJ1xuICB9KTtcbiAgdmFyIHBvcHBlckFsdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBhbHRCb3VuZGFyeTogdHJ1ZVxuICB9KTtcbiAgdmFyIHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKHJlZmVyZW5jZU92ZXJmbG93LCByZWZlcmVuY2VSZWN0KTtcbiAgdmFyIHBvcHBlckVzY2FwZU9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhwb3BwZXJBbHRPdmVyZmxvdywgcG9wcGVyUmVjdCwgcHJldmVudGVkT2Zmc2V0cyk7XG4gIHZhciBpc1JlZmVyZW5jZUhpZGRlbiA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChyZWZlcmVuY2VDbGlwcGluZ09mZnNldHMpO1xuICB2YXIgaGFzUG9wcGVyRXNjYXBlZCA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChwb3BwZXJFc2NhcGVPZmZzZXRzKTtcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IHtcbiAgICByZWZlcmVuY2VDbGlwcGluZ09mZnNldHM6IHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyxcbiAgICBwb3BwZXJFc2NhcGVPZmZzZXRzOiBwb3BwZXJFc2NhcGVPZmZzZXRzLFxuICAgIGlzUmVmZXJlbmNlSGlkZGVuOiBpc1JlZmVyZW5jZUhpZGRlbixcbiAgICBoYXNQb3BwZXJFc2NhcGVkOiBoYXNQb3BwZXJFc2NhcGVkXG4gIH07XG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcmVmZXJlbmNlLWhpZGRlbic6IGlzUmVmZXJlbmNlSGlkZGVuLFxuICAgICdkYXRhLXBvcHBlci1lc2NhcGVkJzogaGFzUG9wcGVyRXNjYXBlZFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2hpZGUnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ3ByZXZlbnRPdmVyZmxvdyddLFxuICBmbjogaGlkZVxufTsiLCJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgcGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZUFuZFNraWRkaW5nVG9YWShwbGFjZW1lbnQsIHJlY3RzLCBvZmZzZXQpIHtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHZhciBpbnZlcnREaXN0YW5jZSA9IFtsZWZ0LCB0b3BdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMCA/IC0xIDogMTtcblxuICB2YXIgX3JlZiA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgcmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KSkgOiBvZmZzZXQsXG4gICAgICBza2lkZGluZyA9IF9yZWZbMF0sXG4gICAgICBkaXN0YW5jZSA9IF9yZWZbMV07XG5cbiAgc2tpZGRpbmcgPSBza2lkZGluZyB8fCAwO1xuICBkaXN0YW5jZSA9IChkaXN0YW5jZSB8fCAwKSAqIGludmVydERpc3RhbmNlO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpID49IDAgPyB7XG4gICAgeDogZGlzdGFuY2UsXG4gICAgeTogc2tpZGRpbmdcbiAgfSA6IHtcbiAgICB4OiBza2lkZGluZyxcbiAgICB5OiBkaXN0YW5jZVxuICB9O1xufVxuXG5mdW5jdGlvbiBvZmZzZXQoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmMi5uYW1lO1xuICB2YXIgX29wdGlvbnMkb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQsXG4gICAgICBvZmZzZXQgPSBfb3B0aW9ucyRvZmZzZXQgPT09IHZvaWQgMCA/IFswLCAwXSA6IF9vcHRpb25zJG9mZnNldDtcbiAgdmFyIGRhdGEgPSBwbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRpc3RhbmNlQW5kU2tpZGRpbmdUb1hZKHBsYWNlbWVudCwgc3RhdGUucmVjdHMsIG9mZnNldCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICB2YXIgX2RhdGEkc3RhdGUkcGxhY2VtZW50ID0gZGF0YVtzdGF0ZS5wbGFjZW1lbnRdLFxuICAgICAgeCA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC54LFxuICAgICAgeSA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC55O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54ICs9IHg7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkgKz0geTtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnb2Zmc2V0JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICBmbjogb2Zmc2V0XG59OyIsImltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZU9mZnNldHMuanNcIjtcblxuZnVuY3Rpb24gcG9wcGVyT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICAvLyBPZmZzZXRzIGFyZSB0aGUgYWN0dWFsIHBvc2l0aW9uIHRoZSBwb3BwZXIgbmVlZHMgdG8gaGF2ZSB0byBiZVxuICAvLyBwcm9wZXJseSBwb3NpdGlvbmVkIG5lYXIgaXRzIHJlZmVyZW5jZSBlbGVtZW50XG4gIC8vIFRoaXMgaXMgdGhlIG1vc3QgYmFzaWMgcGxhY2VtZW50LCBhbmQgd2lsbCBiZSBhZGp1c3RlZCBieVxuICAvLyB0aGUgbW9kaWZpZXJzIGluIHRoZSBuZXh0IHN0ZXBcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IGNvbXB1dGVPZmZzZXRzKHtcbiAgICByZWZlcmVuY2U6IHN0YXRlLnJlY3RzLnJlZmVyZW5jZSxcbiAgICBlbGVtZW50OiBzdGF0ZS5yZWN0cy5wb3BwZXIsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBzdGF0ZS5wbGFjZW1lbnRcbiAgfSk7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdwb3BwZXJPZmZzZXRzJyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdyZWFkJyxcbiAgZm46IHBvcHBlck9mZnNldHMsXG4gIGRhdGE6IHt9XG59OyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFsdEF4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufSIsImltcG9ydCB7IHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgc3RhcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRBbHRBeGlzIGZyb20gXCIuLi91dGlscy9nZXRBbHRBeGlzLmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4sIHdpdGhpbk1heENsYW1wIH0gZnJvbSBcIi4uL3V0aWxzL3dpdGhpbi5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuLi91dGlscy9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4uL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qc1wiO1xuaW1wb3J0IHsgbWluIGFzIG1hdGhNaW4sIG1heCBhcyBtYXRoTWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gcHJldmVudE92ZXJmbG93KF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICB2YXIgX29wdGlvbnMkbWFpbkF4aXMgPSBvcHRpb25zLm1haW5BeGlzLFxuICAgICAgY2hlY2tNYWluQXhpcyA9IF9vcHRpb25zJG1haW5BeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkbWFpbkF4aXMsXG4gICAgICBfb3B0aW9ucyRhbHRBeGlzID0gb3B0aW9ucy5hbHRBeGlzLFxuICAgICAgY2hlY2tBbHRBeGlzID0gX29wdGlvbnMkYWx0QXhpcyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgX29wdGlvbnMkdGV0aGVyID0gb3B0aW9ucy50ZXRoZXIsXG4gICAgICB0ZXRoZXIgPSBfb3B0aW9ucyR0ZXRoZXIgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyR0ZXRoZXIsXG4gICAgICBfb3B0aW9ucyR0ZXRoZXJPZmZzZXQgPSBvcHRpb25zLnRldGhlck9mZnNldCxcbiAgICAgIHRldGhlck9mZnNldCA9IF9vcHRpb25zJHRldGhlck9mZnNldCA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHRldGhlck9mZnNldDtcbiAgdmFyIG92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgcGFkZGluZzogcGFkZGluZyxcbiAgICBhbHRCb3VuZGFyeTogYWx0Qm91bmRhcnlcbiAgfSk7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5wbGFjZW1lbnQpO1xuICB2YXIgdmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSAhdmFyaWF0aW9uO1xuICB2YXIgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoYmFzZVBsYWNlbWVudCk7XG4gIHZhciBhbHRBeGlzID0gZ2V0QWx0QXhpcyhtYWluQXhpcyk7XG4gIHZhciBwb3BwZXJPZmZzZXRzID0gc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciB0ZXRoZXJPZmZzZXRWYWx1ZSA9IHR5cGVvZiB0ZXRoZXJPZmZzZXQgPT09ICdmdW5jdGlvbicgPyB0ZXRoZXJPZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHN0YXRlLnBsYWNlbWVudFxuICB9KSkgOiB0ZXRoZXJPZmZzZXQ7XG4gIHZhciBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUgPSB0eXBlb2YgdGV0aGVyT2Zmc2V0VmFsdWUgPT09ICdudW1iZXInID8ge1xuICAgIG1haW5BeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZSxcbiAgICBhbHRBeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZVxuICB9IDogT2JqZWN0LmFzc2lnbih7XG4gICAgbWFpbkF4aXM6IDAsXG4gICAgYWx0QXhpczogMFxuICB9LCB0ZXRoZXJPZmZzZXRWYWx1ZSk7XG4gIHZhciBvZmZzZXRNb2RpZmllclN0YXRlID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQgPyBzdGF0ZS5tb2RpZmllcnNEYXRhLm9mZnNldFtzdGF0ZS5wbGFjZW1lbnRdIDogbnVsbDtcbiAgdmFyIGRhdGEgPSB7XG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG5cbiAgaWYgKCFwb3BwZXJPZmZzZXRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICB2YXIgX29mZnNldE1vZGlmaWVyU3RhdGUkO1xuXG4gICAgdmFyIG1haW5TaWRlID0gbWFpbkF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gICAgdmFyIGFsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG4gICAgdmFyIG9mZnNldCA9IHBvcHBlck9mZnNldHNbbWFpbkF4aXNdO1xuICAgIHZhciBtaW4gPSBvZmZzZXQgKyBvdmVyZmxvd1ttYWluU2lkZV07XG4gICAgdmFyIG1heCA9IG9mZnNldCAtIG92ZXJmbG93W2FsdFNpZGVdO1xuICAgIHZhciBhZGRpdGl2ZSA9IHRldGhlciA/IC1wb3BwZXJSZWN0W2xlbl0gLyAyIDogMDtcbiAgICB2YXIgbWluTGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IHJlZmVyZW5jZVJlY3RbbGVuXSA6IHBvcHBlclJlY3RbbGVuXTtcbiAgICB2YXIgbWF4TGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IC1wb3BwZXJSZWN0W2xlbl0gOiAtcmVmZXJlbmNlUmVjdFtsZW5dOyAvLyBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIGFycm93IGluIHRoZSBjYWxjdWxhdGlvbiBzbyB0aGUgYXJyb3cgZG9lc24ndCBnb1xuICAgIC8vIG91dHNpZGUgdGhlIHJlZmVyZW5jZSBib3VuZHNcblxuICAgIHZhciBhcnJvd0VsZW1lbnQgPSBzdGF0ZS5lbGVtZW50cy5hcnJvdztcbiAgICB2YXIgYXJyb3dSZWN0ID0gdGV0aGVyICYmIGFycm93RWxlbWVudCA/IGdldExheW91dFJlY3QoYXJyb3dFbGVtZW50KSA6IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nT2JqZWN0ID0gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddID8gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddLnBhZGRpbmcgOiBnZXRGcmVzaFNpZGVPYmplY3QoKTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWluID0gYXJyb3dQYWRkaW5nT2JqZWN0W21haW5TaWRlXTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWF4ID0gYXJyb3dQYWRkaW5nT2JqZWN0W2FsdFNpZGVdOyAvLyBJZiB0aGUgcmVmZXJlbmNlIGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gdGhlIGFycm93IGxlbmd0aCwgd2UgZG9uJ3Qgd2FudFxuICAgIC8vIHRvIGluY2x1ZGUgaXRzIGZ1bGwgc2l6ZSBpbiB0aGUgY2FsY3VsYXRpb24uIElmIHRoZSByZWZlcmVuY2UgaXMgc21hbGxcbiAgICAvLyBhbmQgbmVhciB0aGUgZWRnZSBvZiBhIGJvdW5kYXJ5LCB0aGUgcG9wcGVyIGNhbiBvdmVyZmxvdyBldmVuIGlmIHRoZVxuICAgIC8vIHJlZmVyZW5jZSBpcyBub3Qgb3ZlcmZsb3dpbmcgYXMgd2VsbCAoZS5nLiB2aXJ0dWFsIGVsZW1lbnRzIHdpdGggbm9cbiAgICAvLyB3aWR0aCBvciBoZWlnaHQpXG5cbiAgICB2YXIgYXJyb3dMZW4gPSB3aXRoaW4oMCwgcmVmZXJlbmNlUmVjdFtsZW5dLCBhcnJvd1JlY3RbbGVuXSk7XG4gICAgdmFyIG1pbk9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IHJlZmVyZW5jZVJlY3RbbGVuXSAvIDIgLSBhZGRpdGl2ZSAtIGFycm93TGVuIC0gYXJyb3dQYWRkaW5nTWluIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzIDogbWluTGVuIC0gYXJyb3dMZW4gLSBhcnJvd1BhZGRpbmdNaW4gLSBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUubWFpbkF4aXM7XG4gICAgdmFyIG1heE9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IC1yZWZlcmVuY2VSZWN0W2xlbl0gLyAyICsgYWRkaXRpdmUgKyBhcnJvd0xlbiArIGFycm93UGFkZGluZ01heCArIG5vcm1hbGl6ZWRUZXRoZXJPZmZzZXRWYWx1ZS5tYWluQXhpcyA6IG1heExlbiArIGFycm93TGVuICsgYXJyb3dQYWRkaW5nTWF4ICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzO1xuICAgIHZhciBhcnJvd09mZnNldFBhcmVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93ICYmIGdldE9mZnNldFBhcmVudChzdGF0ZS5lbGVtZW50cy5hcnJvdyk7XG4gICAgdmFyIGNsaWVudE9mZnNldCA9IGFycm93T2Zmc2V0UGFyZW50ID8gbWFpbkF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFRvcCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50TGVmdCB8fCAwIDogMDtcbiAgICB2YXIgb2Zmc2V0TW9kaWZpZXJWYWx1ZSA9IChfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQgPSBvZmZzZXRNb2RpZmllclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBvZmZzZXRNb2RpZmllclN0YXRlW21haW5BeGlzXSkgIT0gbnVsbCA/IF9vZmZzZXRNb2RpZmllclN0YXRlJCA6IDA7XG4gICAgdmFyIHRldGhlck1pbiA9IG9mZnNldCArIG1pbk9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWUgLSBjbGllbnRPZmZzZXQ7XG4gICAgdmFyIHRldGhlck1heCA9IG9mZnNldCArIG1heE9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWU7XG4gICAgdmFyIHByZXZlbnRlZE9mZnNldCA9IHdpdGhpbih0ZXRoZXIgPyBtYXRoTWluKG1pbiwgdGV0aGVyTWluKSA6IG1pbiwgb2Zmc2V0LCB0ZXRoZXIgPyBtYXRoTWF4KG1heCwgdGV0aGVyTWF4KSA6IG1heCk7XG4gICAgcG9wcGVyT2Zmc2V0c1ttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQ7XG4gICAgZGF0YVttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQgLSBvZmZzZXQ7XG4gIH1cblxuICBpZiAoY2hlY2tBbHRBeGlzKSB7XG4gICAgdmFyIF9vZmZzZXRNb2RpZmllclN0YXRlJDI7XG5cbiAgICB2YXIgX21haW5TaWRlID0gbWFpbkF4aXMgPT09ICd4JyA/IHRvcCA6IGxlZnQ7XG5cbiAgICB2YXIgX2FsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gYm90dG9tIDogcmlnaHQ7XG5cbiAgICB2YXIgX29mZnNldCA9IHBvcHBlck9mZnNldHNbYWx0QXhpc107XG5cbiAgICB2YXIgX2xlbiA9IGFsdEF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHZhciBfbWluID0gX29mZnNldCArIG92ZXJmbG93W19tYWluU2lkZV07XG5cbiAgICB2YXIgX21heCA9IF9vZmZzZXQgLSBvdmVyZmxvd1tfYWx0U2lkZV07XG5cbiAgICB2YXIgaXNPcmlnaW5TaWRlID0gW3RvcCwgbGVmdF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSAhPT0gLTE7XG5cbiAgICB2YXIgX29mZnNldE1vZGlmaWVyVmFsdWUgPSAoX29mZnNldE1vZGlmaWVyU3RhdGUkMiA9IG9mZnNldE1vZGlmaWVyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9mZnNldE1vZGlmaWVyU3RhdGVbYWx0QXhpc10pICE9IG51bGwgPyBfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQyIDogMDtcblxuICAgIHZhciBfdGV0aGVyTWluID0gaXNPcmlnaW5TaWRlID8gX21pbiA6IF9vZmZzZXQgLSByZWZlcmVuY2VSZWN0W19sZW5dIC0gcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXM7XG5cbiAgICB2YXIgX3RldGhlck1heCA9IGlzT3JpZ2luU2lkZSA/IF9vZmZzZXQgKyByZWZlcmVuY2VSZWN0W19sZW5dICsgcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXMgOiBfbWF4O1xuXG4gICAgdmFyIF9wcmV2ZW50ZWRPZmZzZXQgPSB0ZXRoZXIgJiYgaXNPcmlnaW5TaWRlID8gd2l0aGluTWF4Q2xhbXAoX3RldGhlck1pbiwgX29mZnNldCwgX3RldGhlck1heCkgOiB3aXRoaW4odGV0aGVyID8gX3RldGhlck1pbiA6IF9taW4sIF9vZmZzZXQsIHRldGhlciA/IF90ZXRoZXJNYXggOiBfbWF4KTtcblxuICAgIHBvcHBlck9mZnNldHNbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0O1xuICAgIGRhdGFbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0IC0gX29mZnNldDtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgZm46IHByZXZlbnRPdmVyZmxvdyxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXVxufTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRIVE1MRWxlbWVudFNjcm9sbChlbGVtZW50KSB7XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgfTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgZ2V0SFRNTEVsZW1lbnRTY3JvbGwgZnJvbSBcIi4vZ2V0SFRNTEVsZW1lbnRTY3JvbGwuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE5vZGVTY3JvbGwobm9kZSkge1xuICBpZiAobm9kZSA9PT0gZ2V0V2luZG93KG5vZGUpIHx8ICFpc0hUTUxFbGVtZW50KG5vZGUpKSB7XG4gICAgcmV0dXJuIGdldFdpbmRvd1Njcm9sbChub2RlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRTY3JvbGwobm9kZSk7XG4gIH1cbn0iLCJpbXBvcnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gXCIuL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGdldE5vZGVTY3JvbGwgZnJvbSBcIi4vZ2V0Tm9kZVNjcm9sbC5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnRTY2FsZWQoZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBzY2FsZVggPSByb3VuZChyZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMTtcbiAgdmFyIHNjYWxlWSA9IHJvdW5kKHJlY3QuaGVpZ2h0KSAvIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDE7XG4gIHJldHVybiBzY2FsZVggIT09IDEgfHwgc2NhbGVZICE9PSAxO1xufSAvLyBSZXR1cm5zIHRoZSBjb21wb3NpdGUgcmVjdCBvZiBhbiBlbGVtZW50IHJlbGF0aXZlIHRvIGl0cyBvZmZzZXRQYXJlbnQuXG4vLyBDb21wb3NpdGUgbWVhbnMgaXQgdGFrZXMgaW50byBhY2NvdW50IHRyYW5zZm9ybXMgYXMgd2VsbCBhcyBsYXlvdXQuXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcG9zaXRlUmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50LCBpc0ZpeGVkKSB7XG4gIGlmIChpc0ZpeGVkID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkID0gZmFsc2U7XG4gIH1cblxuICB2YXIgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIHZhciBvZmZzZXRQYXJlbnRJc1NjYWxlZCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc0VsZW1lbnRTY2FsZWQob2Zmc2V0UGFyZW50KTtcbiAgdmFyIGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICB2YXIgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50SXNTY2FsZWQpO1xuICB2YXIgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIHZhciBvZmZzZXRzID0ge1xuICAgIHg6IDAsXG4gICAgeTogMFxuICB9O1xuXG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTA3OFxuICAgIGlzU2Nyb2xsUGFyZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBvZmZzZXRzID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSk7XG4gICAgICBvZmZzZXRzLnggKz0gb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgKz0gb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgb2Zmc2V0cy54ID0gZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgeDogcmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSBvZmZzZXRzLngsXG4gICAgeTogcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn0iLCJpbXBvcnQgeyBtb2RpZmllclBoYXNlcyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBzb3VyY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5ODc1MjU1XG5cbmZ1bmN0aW9uIG9yZGVyKG1vZGlmaWVycykge1xuICB2YXIgbWFwID0gbmV3IE1hcCgpO1xuICB2YXIgdmlzaXRlZCA9IG5ldyBTZXQoKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBtYXAuc2V0KG1vZGlmaWVyLm5hbWUsIG1vZGlmaWVyKTtcbiAgfSk7IC8vIE9uIHZpc2l0aW5nIG9iamVjdCwgY2hlY2sgZm9yIGl0cyBkZXBlbmRlbmNpZXMgYW5kIHZpc2l0IHRoZW0gcmVjdXJzaXZlbHlcblxuICBmdW5jdGlvbiBzb3J0KG1vZGlmaWVyKSB7XG4gICAgdmlzaXRlZC5hZGQobW9kaWZpZXIubmFtZSk7XG4gICAgdmFyIHJlcXVpcmVzID0gW10uY29uY2F0KG1vZGlmaWVyLnJlcXVpcmVzIHx8IFtdLCBtb2RpZmllci5yZXF1aXJlc0lmRXhpc3RzIHx8IFtdKTtcbiAgICByZXF1aXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChkZXApIHtcbiAgICAgIGlmICghdmlzaXRlZC5oYXMoZGVwKSkge1xuICAgICAgICB2YXIgZGVwTW9kaWZpZXIgPSBtYXAuZ2V0KGRlcCk7XG5cbiAgICAgICAgaWYgKGRlcE1vZGlmaWVyKSB7XG4gICAgICAgICAgc29ydChkZXBNb2RpZmllcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXN1bHQucHVzaChtb2RpZmllcik7XG4gIH1cblxuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBpZiAoIXZpc2l0ZWQuaGFzKG1vZGlmaWVyLm5hbWUpKSB7XG4gICAgICAvLyBjaGVjayBmb3IgdmlzaXRlZCBvYmplY3RcbiAgICAgIHNvcnQobW9kaWZpZXIpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9yZGVyTW9kaWZpZXJzKG1vZGlmaWVycykge1xuICAvLyBvcmRlciBiYXNlZCBvbiBkZXBlbmRlbmNpZXNcbiAgdmFyIG9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcihtb2RpZmllcnMpOyAvLyBvcmRlciBiYXNlZCBvbiBwaGFzZVxuXG4gIHJldHVybiBtb2RpZmllclBoYXNlcy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGhhc2UpIHtcbiAgICByZXR1cm4gYWNjLmNvbmNhdChvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgIHJldHVybiBtb2RpZmllci5waGFzZSA9PT0gcGhhc2U7XG4gICAgfSkpO1xuICB9LCBbXSk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVib3VuY2UoZm4pIHtcbiAgdmFyIHBlbmRpbmc7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFwZW5kaW5nKSB7XG4gICAgICBwZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXNvbHZlKGZuKCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwZW5kaW5nO1xuICB9O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQnlOYW1lKG1vZGlmaWVycykge1xuICB2YXIgbWVyZ2VkID0gbW9kaWZpZXJzLnJlZHVjZShmdW5jdGlvbiAobWVyZ2VkLCBjdXJyZW50KSB7XG4gICAgdmFyIGV4aXN0aW5nID0gbWVyZ2VkW2N1cnJlbnQubmFtZV07XG4gICAgbWVyZ2VkW2N1cnJlbnQubmFtZV0gPSBleGlzdGluZyA/IE9iamVjdC5hc3NpZ24oe30sIGV4aXN0aW5nLCBjdXJyZW50LCB7XG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBleGlzdGluZy5vcHRpb25zLCBjdXJyZW50Lm9wdGlvbnMpLFxuICAgICAgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZXhpc3RpbmcuZGF0YSwgY3VycmVudC5kYXRhKVxuICAgIH0pIDogY3VycmVudDtcbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9LCB7fSk7IC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBPYmplY3QudmFsdWVzXG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1lcmdlZCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbWVyZ2VkW2tleV07XG4gIH0pO1xufSIsImltcG9ydCBnZXRDb21wb3NpdGVSZWN0IGZyb20gXCIuL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0TGF5b3V0UmVjdCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2RvbS11dGlscy9saXN0U2Nyb2xsUGFyZW50cy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IG9yZGVyTW9kaWZpZXJzIGZyb20gXCIuL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzXCI7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcIi4vdXRpbHMvZGVib3VuY2UuanNcIjtcbmltcG9ydCB2YWxpZGF0ZU1vZGlmaWVycyBmcm9tIFwiLi91dGlscy92YWxpZGF0ZU1vZGlmaWVycy5qc1wiO1xuaW1wb3J0IHVuaXF1ZUJ5IGZyb20gXCIuL3V0aWxzL3VuaXF1ZUJ5LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgbWVyZ2VCeU5hbWUgZnJvbSBcIi4vdXRpbHMvbWVyZ2VCeU5hbWUuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi91dGlscy9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4vZG9tLXV0aWxzL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCB7IGF1dG8gfSBmcm9tIFwiLi9lbnVtcy5qc1wiO1xudmFyIElOVkFMSURfRUxFTUVOVF9FUlJPUiA9ICdQb3BwZXI6IEludmFsaWQgcmVmZXJlbmNlIG9yIHBvcHBlciBhcmd1bWVudCBwcm92aWRlZC4gVGhleSBtdXN0IGJlIGVpdGhlciBhIERPTSBlbGVtZW50IG9yIHZpcnR1YWwgZWxlbWVudC4nO1xudmFyIElORklOSVRFX0xPT1BfRVJST1IgPSAnUG9wcGVyOiBBbiBpbmZpbml0ZSBsb29wIGluIHRoZSBtb2RpZmllcnMgY3ljbGUgaGFzIGJlZW4gZGV0ZWN0ZWQhIFRoZSBjeWNsZSBoYXMgYmVlbiBpbnRlcnJ1cHRlZCB0byBwcmV2ZW50IGEgYnJvd3NlciBjcmFzaC4nO1xudmFyIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgbW9kaWZpZXJzOiBbXSxcbiAgc3RyYXRlZ3k6ICdhYnNvbHV0ZSdcbn07XG5cbmZ1bmN0aW9uIGFyZVZhbGlkRWxlbWVudHMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gIWFyZ3Muc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHJldHVybiAhKGVsZW1lbnQgJiYgdHlwZW9mIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID09PSAnZnVuY3Rpb24nKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3BwZXJHZW5lcmF0b3IoZ2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoZ2VuZXJhdG9yT3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgZ2VuZXJhdG9yT3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9nZW5lcmF0b3JPcHRpb25zID0gZ2VuZXJhdG9yT3B0aW9ucyxcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZiA9IF9nZW5lcmF0b3JPcHRpb25zLmRlZmF1bHRNb2RpZmllcnMsXG4gICAgICBkZWZhdWx0TW9kaWZpZXJzID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmID09PSB2b2lkIDAgPyBbXSA6IF9nZW5lcmF0b3JPcHRpb25zJGRlZixcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZjIgPSBfZ2VuZXJhdG9yT3B0aW9ucy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIGRlZmF1bHRPcHRpb25zID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmMiA9PT0gdm9pZCAwID8gREVGQVVMVF9PUFRJT05TIDogX2dlbmVyYXRvck9wdGlvbnMkZGVmMjtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVBvcHBlcihyZWZlcmVuY2UsIHBvcHBlciwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICAgIG9wdGlvbnMgPSBkZWZhdWx0T3B0aW9ucztcbiAgICB9XG5cbiAgICB2YXIgc3RhdGUgPSB7XG4gICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgb3JkZXJlZE1vZGlmaWVyczogW10sXG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMsIGRlZmF1bHRPcHRpb25zKSxcbiAgICAgIG1vZGlmaWVyc0RhdGE6IHt9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlOiByZWZlcmVuY2UsXG4gICAgICAgIHBvcHBlcjogcG9wcGVyXG4gICAgICB9LFxuICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICBzdHlsZXM6IHt9XG4gICAgfTtcbiAgICB2YXIgZWZmZWN0Q2xlYW51cEZucyA9IFtdO1xuICAgIHZhciBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHZhciBpbnN0YW5jZSA9IHtcbiAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgIHNldE9wdGlvbnM6IGZ1bmN0aW9uIHNldE9wdGlvbnMoc2V0T3B0aW9uc0FjdGlvbikge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzZXRPcHRpb25zQWN0aW9uID09PSAnZnVuY3Rpb24nID8gc2V0T3B0aW9uc0FjdGlvbihzdGF0ZS5vcHRpb25zKSA6IHNldE9wdGlvbnNBY3Rpb247XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgc3RhdGUub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBzdGF0ZS5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgc3RhdGUuc2Nyb2xsUGFyZW50cyA9IHtcbiAgICAgICAgICByZWZlcmVuY2U6IGlzRWxlbWVudChyZWZlcmVuY2UpID8gbGlzdFNjcm9sbFBhcmVudHMocmVmZXJlbmNlKSA6IHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCA/IGxpc3RTY3JvbGxQYXJlbnRzKHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkgOiBbXSxcbiAgICAgICAgICBwb3BwZXI6IGxpc3RTY3JvbGxQYXJlbnRzKHBvcHBlcilcbiAgICAgICAgfTsgLy8gT3JkZXJzIHRoZSBtb2RpZmllcnMgYmFzZWQgb24gdGhlaXIgZGVwZW5kZW5jaWVzIGFuZCBgcGhhc2VgXG4gICAgICAgIC8vIHByb3BlcnRpZXNcblxuICAgICAgICB2YXIgb3JkZXJlZE1vZGlmaWVycyA9IG9yZGVyTW9kaWZpZXJzKG1lcmdlQnlOYW1lKFtdLmNvbmNhdChkZWZhdWx0TW9kaWZpZXJzLCBzdGF0ZS5vcHRpb25zLm1vZGlmaWVycykpKTsgLy8gU3RyaXAgb3V0IGRpc2FibGVkIG1vZGlmaWVyc1xuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobSkge1xuICAgICAgICAgIHJldHVybiBtLmVuYWJsZWQ7XG4gICAgICAgIH0pOyAvLyBWYWxpZGF0ZSB0aGUgcHJvdmlkZWQgbW9kaWZpZXJzIHNvIHRoYXQgdGhlIGNvbnN1bWVyIHdpbGwgZ2V0IHdhcm5lZFxuICAgICAgICAvLyBpZiBvbmUgb2YgdGhlIG1vZGlmaWVycyBpcyBpbnZhbGlkIGZvciBhbnkgcmVhc29uXG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIHZhciBtb2RpZmllcnMgPSB1bmlxdWVCeShbXS5jb25jYXQob3JkZXJlZE1vZGlmaWVycywgc3RhdGUub3B0aW9ucy5tb2RpZmllcnMpLCBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBfcmVmLm5hbWU7XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB2YWxpZGF0ZU1vZGlmaWVycyhtb2RpZmllcnMpO1xuXG4gICAgICAgICAgaWYgKGdldEJhc2VQbGFjZW1lbnQoc3RhdGUub3B0aW9ucy5wbGFjZW1lbnQpID09PSBhdXRvKSB7XG4gICAgICAgICAgICB2YXIgZmxpcE1vZGlmaWVyID0gc3RhdGUub3JkZXJlZE1vZGlmaWVycy5maW5kKGZ1bmN0aW9uIChfcmVmMikge1xuICAgICAgICAgICAgICB2YXIgbmFtZSA9IF9yZWYyLm5hbWU7XG4gICAgICAgICAgICAgIHJldHVybiBuYW1lID09PSAnZmxpcCc7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCFmbGlwTW9kaWZpZXIpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihbJ1BvcHBlcjogXCJhdXRvXCIgcGxhY2VtZW50cyByZXF1aXJlIHRoZSBcImZsaXBcIiBtb2RpZmllciBiZScsICdwcmVzZW50IGFuZCBlbmFibGVkIHRvIHdvcmsuJ10uam9pbignICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX2dldENvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBvcHBlciksXG4gICAgICAgICAgICAgIG1hcmdpblRvcCA9IF9nZXRDb21wdXRlZFN0eWxlLm1hcmdpblRvcCxcbiAgICAgICAgICAgICAgbWFyZ2luUmlnaHQgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodCxcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tID0gX2dldENvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tLFxuICAgICAgICAgICAgICBtYXJnaW5MZWZ0ID0gX2dldENvbXB1dGVkU3R5bGUubWFyZ2luTGVmdDsgLy8gV2Ugbm8gbG9uZ2VyIHRha2UgaW50byBhY2NvdW50IGBtYXJnaW5zYCBvbiB0aGUgcG9wcGVyLCBhbmQgaXQgY2FuXG4gICAgICAgICAgLy8gY2F1c2UgYnVncyB3aXRoIHBvc2l0aW9uaW5nLCBzbyB3ZSdsbCB3YXJuIHRoZSBjb25zdW1lclxuXG5cbiAgICAgICAgICBpZiAoW21hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdF0uc29tZShmdW5jdGlvbiAobWFyZ2luKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChtYXJnaW4pO1xuICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oWydQb3BwZXI6IENTUyBcIm1hcmdpblwiIHN0eWxlcyBjYW5ub3QgYmUgdXNlZCB0byBhcHBseSBwYWRkaW5nJywgJ2JldHdlZW4gdGhlIHBvcHBlciBhbmQgaXRzIHJlZmVyZW5jZSBlbGVtZW50IG9yIGJvdW5kYXJ5LicsICdUbyByZXBsaWNhdGUgbWFyZ2luLCB1c2UgdGhlIGBvZmZzZXRgIG1vZGlmaWVyLCBhcyB3ZWxsIGFzJywgJ3RoZSBgcGFkZGluZ2Agb3B0aW9uIGluIHRoZSBgcHJldmVudE92ZXJmbG93YCBhbmQgYGZsaXBgJywgJ21vZGlmaWVycy4nXS5qb2luKCcgJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bk1vZGlmaWVyRWZmZWN0cygpO1xuICAgICAgICByZXR1cm4gaW5zdGFuY2UudXBkYXRlKCk7XG4gICAgICB9LFxuICAgICAgLy8gU3luYyB1cGRhdGUg4oCTIGl0IHdpbGwgYWx3YXlzIGJlIGV4ZWN1dGVkLCBldmVuIGlmIG5vdCBuZWNlc3NhcnkuIFRoaXNcbiAgICAgIC8vIGlzIHVzZWZ1bCBmb3IgbG93IGZyZXF1ZW5jeSB1cGRhdGVzIHdoZXJlIHN5bmMgYmVoYXZpb3Igc2ltcGxpZmllcyB0aGVcbiAgICAgIC8vIGxvZ2ljLlxuICAgICAgLy8gRm9yIGhpZ2ggZnJlcXVlbmN5IHVwZGF0ZXMgKGUuZy4gYHJlc2l6ZWAgYW5kIGBzY3JvbGxgIGV2ZW50cyksIGFsd2F5c1xuICAgICAgLy8gcHJlZmVyIHRoZSBhc3luYyBQb3BwZXIjdXBkYXRlIG1ldGhvZFxuICAgICAgZm9yY2VVcGRhdGU6IGZ1bmN0aW9uIGZvcmNlVXBkYXRlKCkge1xuICAgICAgICBpZiAoaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3N0YXRlJGVsZW1lbnRzID0gc3RhdGUuZWxlbWVudHMsXG4gICAgICAgICAgICByZWZlcmVuY2UgPSBfc3RhdGUkZWxlbWVudHMucmVmZXJlbmNlLFxuICAgICAgICAgICAgcG9wcGVyID0gX3N0YXRlJGVsZW1lbnRzLnBvcHBlcjsgLy8gRG9uJ3QgcHJvY2VlZCBpZiBgcmVmZXJlbmNlYCBvciBgcG9wcGVyYCBhcmUgbm90IHZhbGlkIGVsZW1lbnRzXG4gICAgICAgIC8vIGFueW1vcmVcblxuICAgICAgICBpZiAoIWFyZVZhbGlkRWxlbWVudHMocmVmZXJlbmNlLCBwb3BwZXIpKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihJTlZBTElEX0VMRU1FTlRfRVJST1IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBTdG9yZSB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXIgcmVjdHMgdG8gYmUgcmVhZCBieSBtb2RpZmllcnNcblxuXG4gICAgICAgIHN0YXRlLnJlY3RzID0ge1xuICAgICAgICAgIHJlZmVyZW5jZTogZ2V0Q29tcG9zaXRlUmVjdChyZWZlcmVuY2UsIGdldE9mZnNldFBhcmVudChwb3BwZXIpLCBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnKSxcbiAgICAgICAgICBwb3BwZXI6IGdldExheW91dFJlY3QocG9wcGVyKVxuICAgICAgICB9OyAvLyBNb2RpZmllcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byByZXNldCB0aGUgY3VycmVudCB1cGRhdGUgY3ljbGUuIFRoZVxuICAgICAgICAvLyBtb3N0IGNvbW1vbiB1c2UgY2FzZSBmb3IgdGhpcyBpcyB0aGUgYGZsaXBgIG1vZGlmaWVyIGNoYW5naW5nIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQsIHdoaWNoIHRoZW4gbmVlZHMgdG8gcmUtcnVuIGFsbCB0aGUgbW9kaWZpZXJzLCBiZWNhdXNlIHRoZVxuICAgICAgICAvLyBsb2dpYyB3YXMgcHJldmlvdXNseSByYW4gZm9yIHRoZSBwcmV2aW91cyBwbGFjZW1lbnQgYW5kIGlzIHRoZXJlZm9yZVxuICAgICAgICAvLyBzdGFsZS9pbmNvcnJlY3RcblxuICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5wbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDsgLy8gT24gZWFjaCB1cGRhdGUgY3ljbGUsIHRoZSBgbW9kaWZpZXJzRGF0YWAgcHJvcGVydHkgZm9yIGVhY2ggbW9kaWZpZXJcbiAgICAgICAgLy8gaXMgZmlsbGVkIHdpdGggdGhlIGluaXRpYWwgZGF0YSBzcGVjaWZpZWQgYnkgdGhlIG1vZGlmaWVyLiBUaGlzIG1lYW5zXG4gICAgICAgIC8vIGl0IGRvZXNuJ3QgcGVyc2lzdCBhbmQgaXMgZnJlc2ggb24gZWFjaCB1cGRhdGUuXG4gICAgICAgIC8vIFRvIGVuc3VyZSBwZXJzaXN0ZW50IGRhdGEsIHVzZSBgJHtuYW1lfSNwZXJzaXN0ZW50YFxuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGUubW9kaWZpZXJzRGF0YVttb2RpZmllci5uYW1lXSA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGlmaWVyLmRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fZGVidWdfbG9vcHNfXyA9IDA7XG5cbiAgICAgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHN0YXRlLm9yZGVyZWRNb2RpZmllcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgX19kZWJ1Z19sb29wc19fICs9IDE7XG5cbiAgICAgICAgICAgIGlmIChfX2RlYnVnX2xvb3BzX18gPiAxMDApIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihJTkZJTklURV9MT09QX0VSUk9SKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHN0YXRlLnJlc2V0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBfc3RhdGUkb3JkZXJlZE1vZGlmaWUgPSBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzW2luZGV4XSxcbiAgICAgICAgICAgICAgZm4gPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUuZm4sXG4gICAgICAgICAgICAgIF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUub3B0aW9ucyxcbiAgICAgICAgICAgICAgX29wdGlvbnMgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUyID09PSB2b2lkIDAgPyB7fSA6IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIsXG4gICAgICAgICAgICAgIG5hbWUgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUubmFtZTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHN0YXRlID0gZm4oe1xuICAgICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IF9vcHRpb25zLFxuICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2VcbiAgICAgICAgICAgIH0pIHx8IHN0YXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEFzeW5jIGFuZCBvcHRpbWlzdGljYWxseSBvcHRpbWl6ZWQgdXBkYXRlIOKAkyBpdCB3aWxsIG5vdCBiZSBleGVjdXRlZCBpZlxuICAgICAgLy8gbm90IG5lY2Vzc2FyeSAoZGVib3VuY2VkIHRvIHJ1biBhdCBtb3N0IG9uY2UtcGVyLXRpY2spXG4gICAgICB1cGRhdGU6IGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgaW5zdGFuY2UuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgICByZXNvbHZlKHN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIWFyZVZhbGlkRWxlbWVudHMocmVmZXJlbmNlLCBwb3BwZXIpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoSU5WQUxJRF9FTEVNRU5UX0VSUk9SKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cblxuICAgIGluc3RhbmNlLnNldE9wdGlvbnMob3B0aW9ucykudGhlbihmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgIGlmICghaXNEZXN0cm95ZWQgJiYgb3B0aW9ucy5vbkZpcnN0VXBkYXRlKSB7XG4gICAgICAgIG9wdGlvbnMub25GaXJzdFVwZGF0ZShzdGF0ZSk7XG4gICAgICB9XG4gICAgfSk7IC8vIE1vZGlmaWVycyBoYXZlIHRoZSBhYmlsaXR5IHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgYmVmb3JlIHRoZSBmaXJzdFxuICAgIC8vIHVwZGF0ZSBjeWNsZSBydW5zLiBUaGV5IHdpbGwgYmUgZXhlY3V0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHVwZGF0ZVxuICAgIC8vIGN5Y2xlLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGEgbW9kaWZpZXIgYWRkcyBzb21lIHBlcnNpc3RlbnQgZGF0YSB0aGF0XG4gICAgLy8gb3RoZXIgbW9kaWZpZXJzIG5lZWQgdG8gdXNlLCBidXQgdGhlIG1vZGlmaWVyIGlzIHJ1biBhZnRlciB0aGUgZGVwZW5kZW50XG4gICAgLy8gb25lLlxuXG4gICAgZnVuY3Rpb24gcnVuTW9kaWZpZXJFZmZlY3RzKCkge1xuICAgICAgc3RhdGUub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmMykge1xuICAgICAgICB2YXIgbmFtZSA9IF9yZWYzLm5hbWUsXG4gICAgICAgICAgICBfcmVmMyRvcHRpb25zID0gX3JlZjMub3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnMgPSBfcmVmMyRvcHRpb25zID09PSB2b2lkIDAgPyB7fSA6IF9yZWYzJG9wdGlvbnMsXG4gICAgICAgICAgICBlZmZlY3QgPSBfcmVmMy5lZmZlY3Q7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBlZmZlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgY2xlYW51cEZuID0gZWZmZWN0KHtcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB2YXIgbm9vcEZuID0gZnVuY3Rpb24gbm9vcEZuKCkge307XG5cbiAgICAgICAgICBlZmZlY3RDbGVhbnVwRm5zLnB1c2goY2xlYW51cEZuIHx8IG5vb3BGbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKSB7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgICAgfSk7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xufVxuZXhwb3J0IHZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKCk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgZGV0ZWN0T3ZlcmZsb3cgfTsiLCJpbXBvcnQgeyBwb3BwZXJHZW5lcmF0b3IsIGRldGVjdE92ZXJmbG93IH0gZnJvbSBcIi4vY3JlYXRlUG9wcGVyLmpzXCI7XG5pbXBvcnQgZXZlbnRMaXN0ZW5lcnMgZnJvbSBcIi4vbW9kaWZpZXJzL2V2ZW50TGlzdGVuZXJzLmpzXCI7XG5pbXBvcnQgcG9wcGVyT2Zmc2V0cyBmcm9tIFwiLi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IGNvbXB1dGVTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2NvbXB1dGVTdHlsZXMuanNcIjtcbmltcG9ydCBhcHBseVN0eWxlcyBmcm9tIFwiLi9tb2RpZmllcnMvYXBwbHlTdHlsZXMuanNcIjtcbmltcG9ydCBvZmZzZXQgZnJvbSBcIi4vbW9kaWZpZXJzL29mZnNldC5qc1wiO1xuaW1wb3J0IGZsaXAgZnJvbSBcIi4vbW9kaWZpZXJzL2ZsaXAuanNcIjtcbmltcG9ydCBwcmV2ZW50T3ZlcmZsb3cgZnJvbSBcIi4vbW9kaWZpZXJzL3ByZXZlbnRPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGFycm93IGZyb20gXCIuL21vZGlmaWVycy9hcnJvdy5qc1wiO1xuaW1wb3J0IGhpZGUgZnJvbSBcIi4vbW9kaWZpZXJzL2hpZGUuanNcIjtcbnZhciBkZWZhdWx0TW9kaWZpZXJzID0gW2V2ZW50TGlzdGVuZXJzLCBwb3BwZXJPZmZzZXRzLCBjb21wdXRlU3R5bGVzLCBhcHBseVN0eWxlcywgb2Zmc2V0LCBmbGlwLCBwcmV2ZW50T3ZlcmZsb3csIGFycm93LCBoaWRlXTtcbnZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKHtcbiAgZGVmYXVsdE1vZGlmaWVyczogZGVmYXVsdE1vZGlmaWVyc1xufSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyLCBwb3BwZXJHZW5lcmF0b3IsIGRlZmF1bHRNb2RpZmllcnMsIGRldGVjdE92ZXJmbG93IH07IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckxpdGUgfSBmcm9tIFwiLi9wb3BwZXItbGl0ZS5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGlmaWVycy9pbmRleC5qc1wiOyIsIi8qIGdsb2JhbCBNYXA6cmVhZG9ubHksIFNldDpyZWFkb25seSwgQXJyYXlCdWZmZXI6cmVhZG9ubHkgKi9cblxudmFyIGhhc0VsZW1lbnRUeXBlID0gdHlwZW9mIEVsZW1lbnQgIT09ICd1bmRlZmluZWQnO1xudmFyIGhhc01hcCA9IHR5cGVvZiBNYXAgPT09ICdmdW5jdGlvbic7XG52YXIgaGFzU2V0ID0gdHlwZW9mIFNldCA9PT0gJ2Z1bmN0aW9uJztcbnZhciBoYXNBcnJheUJ1ZmZlciA9IHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiAhIUFycmF5QnVmZmVyLmlzVmlldztcblxuLy8gTm90ZTogV2UgKipkb24ndCoqIG5lZWQgYGVudkhhc0JpZ0ludDY0QXJyYXlgIGluIGZkZSBlczYvaW5kZXguanNcblxuZnVuY3Rpb24gZXF1YWwoYSwgYikge1xuICAvLyBTVEFSVDogZmFzdC1kZWVwLWVxdWFsIGVzNi9pbmRleC5qcyAzLjEuMVxuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PSAnb2JqZWN0Jykge1xuICAgIGlmIChhLmNvbnN0cnVjdG9yICE9PSBiLmNvbnN0cnVjdG9yKSByZXR1cm4gZmFsc2U7XG5cbiAgICB2YXIgbGVuZ3RoLCBpLCBrZXlzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gU1RBUlQ6IE1vZGlmaWNhdGlvbnM6XG4gICAgLy8gMS4gRXh0cmEgYGhhczxUeXBlPiAmJmAgaGVscGVycyBpbiBpbml0aWFsIGNvbmRpdGlvbiBhbGxvdyBlczYgY29kZVxuICAgIC8vICAgIHRvIGNvLWV4aXN0IHdpdGggZXM1LlxuICAgIC8vIDIuIFJlcGxhY2UgYGZvciBvZmAgd2l0aCBlczUgY29tcGxpYW50IGl0ZXJhdGlvbiB1c2luZyBgZm9yYC5cbiAgICAvLyAgICBCYXNpY2FsbHksIHRha2U6XG4gICAgLy9cbiAgICAvLyAgICBgYGBqc1xuICAgIC8vICAgIGZvciAoaSBvZiBhLmVudHJpZXMoKSlcbiAgICAvLyAgICAgIGlmICghYi5oYXMoaVswXSkpIHJldHVybiBmYWxzZTtcbiAgICAvLyAgICBgYGBcbiAgICAvL1xuICAgIC8vICAgIC4uLiBhbmQgY29udmVydCB0bzpcbiAgICAvL1xuICAgIC8vICAgIGBgYGpzXG4gICAgLy8gICAgaXQgPSBhLmVudHJpZXMoKTtcbiAgICAvLyAgICB3aGlsZSAoIShpID0gaXQubmV4dCgpKS5kb25lKVxuICAgIC8vICAgICAgaWYgKCFiLmhhcyhpLnZhbHVlWzBdKSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vICAgIGBgYFxuICAgIC8vXG4gICAgLy8gICAgKipOb3RlKio6IGBpYCBhY2Nlc3Mgc3dpdGNoZXMgdG8gYGkudmFsdWVgLlxuICAgIHZhciBpdDtcbiAgICBpZiAoaGFzTWFwICYmIChhIGluc3RhbmNlb2YgTWFwKSAmJiAoYiBpbnN0YW5jZW9mIE1hcCkpIHtcbiAgICAgIGlmIChhLnNpemUgIT09IGIuc2l6ZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaXQgPSBhLmVudHJpZXMoKTtcbiAgICAgIHdoaWxlICghKGkgPSBpdC5uZXh0KCkpLmRvbmUpXG4gICAgICAgIGlmICghYi5oYXMoaS52YWx1ZVswXSkpIHJldHVybiBmYWxzZTtcbiAgICAgIGl0ID0gYS5lbnRyaWVzKCk7XG4gICAgICB3aGlsZSAoIShpID0gaXQubmV4dCgpKS5kb25lKVxuICAgICAgICBpZiAoIWVxdWFsKGkudmFsdWVbMV0sIGIuZ2V0KGkudmFsdWVbMF0pKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGhhc1NldCAmJiAoYSBpbnN0YW5jZW9mIFNldCkgJiYgKGIgaW5zdGFuY2VvZiBTZXQpKSB7XG4gICAgICBpZiAoYS5zaXplICE9PSBiLnNpemUpIHJldHVybiBmYWxzZTtcbiAgICAgIGl0ID0gYS5lbnRyaWVzKCk7XG4gICAgICB3aGlsZSAoIShpID0gaXQubmV4dCgpKS5kb25lKVxuICAgICAgICBpZiAoIWIuaGFzKGkudmFsdWVbMF0pKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gRU5EOiBNb2RpZmljYXRpb25zXG5cbiAgICBpZiAoaGFzQXJyYXlCdWZmZXIgJiYgQXJyYXlCdWZmZXIuaXNWaWV3KGEpICYmIEFycmF5QnVmZmVyLmlzVmlldyhiKSkge1xuICAgICAgbGVuZ3RoID0gYS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspXG4gICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoYS5jb25zdHJ1Y3RvciA9PT0gUmVnRXhwKSByZXR1cm4gYS5zb3VyY2UgPT09IGIuc291cmNlICYmIGEuZmxhZ3MgPT09IGIuZmxhZ3M7XG4gICAgaWYgKGEudmFsdWVPZiAhPT0gT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mKSByZXR1cm4gYS52YWx1ZU9mKCkgPT09IGIudmFsdWVPZigpO1xuICAgIGlmIChhLnRvU3RyaW5nICE9PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKSByZXR1cm4gYS50b1N0cmluZygpID09PSBiLnRvU3RyaW5nKCk7XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7XG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspXG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIEVORDogZmFzdC1kZWVwLWVxdWFsXG5cbiAgICAvLyBTVEFSVDogcmVhY3QtZmFzdC1jb21wYXJlXG4gICAgLy8gY3VzdG9tIGhhbmRsaW5nIGZvciBET00gZWxlbWVudHNcbiAgICBpZiAoaGFzRWxlbWVudFR5cGUgJiYgYSBpbnN0YW5jZW9mIEVsZW1lbnQpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIGN1c3RvbSBoYW5kbGluZyBmb3IgUmVhY3QvUHJlYWN0XG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICBpZiAoKGtleXNbaV0gPT09ICdfb3duZXInIHx8IGtleXNbaV0gPT09ICdfX3YnIHx8IGtleXNbaV0gPT09ICdfX28nKSAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIC8vIFJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFJlYWN0IGVsZW1lbnRzJyBfb3duZXJcbiAgICAgICAgLy8gUHJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFByZWFjdCBlbGVtZW50cycgX192IGFuZCBfX29cbiAgICAgICAgLy8gICAgX192ID0gJF9vcmlnaW5hbCAvICRfdm5vZGVcbiAgICAgICAgLy8gICAgX19vID0gJF9vd25lclxuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNvbnRhaW4gY2lyY3VsYXIgcmVmZXJlbmNlcyBhbmQgYXJlIG5vdCBuZWVkZWQgd2hlblxuICAgICAgICAvLyBjb21wYXJpbmcgdGhlIGFjdHVhbCBlbGVtZW50cyAoYW5kIG5vdCB0aGVpciBvd25lcnMpXG4gICAgICAgIC8vIC4kJHR5cGVvZiBhbmQgLl9zdG9yZSBvbiBqdXN0IHJlYXNvbmFibGUgbWFya2VycyBvZiBlbGVtZW50c1xuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBhbGwgb3RoZXIgcHJvcGVydGllcyBzaG91bGQgYmUgdHJhdmVyc2VkIGFzIHVzdWFsXG4gICAgICBpZiAoIWVxdWFsKGFba2V5c1tpXV0sIGJba2V5c1tpXV0pKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIEVORDogcmVhY3QtZmFzdC1jb21wYXJlXG5cbiAgICAvLyBTVEFSVDogZmFzdC1kZWVwLWVxdWFsXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGlzRXF1YWwoYSwgYikge1xuICB0cnkge1xuICAgIHJldHVybiBlcXVhbChhLCBiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoKChlcnJvci5tZXNzYWdlIHx8ICcnKS5tYXRjaCgvc3RhY2t8cmVjdXJzaW9uL2kpKSkge1xuICAgICAgLy8gd2FybiBvbiBjaXJjdWxhciByZWZlcmVuY2VzLCBkb24ndCBjcmFzaFxuICAgICAgLy8gYnJvd3NlcnMgZ2l2ZSB0aGlzIGRpZmZlcmVudCBlcnJvcnMgbmFtZSBhbmQgbWVzc2FnZXM6XG4gICAgICAvLyBjaHJvbWUvc2FmYXJpOiBcIlJhbmdlRXJyb3JcIiwgXCJNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZFwiXG4gICAgICAvLyBmaXJlZm94OiBcIkludGVybmFsRXJyb3JcIiwgdG9vIG11Y2ggcmVjdXJzaW9uXCJcbiAgICAgIC8vIGVkZ2U6IFwiRXJyb3JcIiwgXCJPdXQgb2Ygc3RhY2sgc3BhY2VcIlxuICAgICAgY29uc29sZS53YXJuKCdyZWFjdC1mYXN0LWNvbXBhcmUgY2Fubm90IGhhbmRsZSBjaXJjdWxhciByZWZzJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIHNvbWUgb3RoZXIgZXJyb3IuIHdlIHNob3VsZCBkZWZpbml0ZWx5IGtub3cgYWJvdXQgdGhlc2VcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcHBlciBhcyBkZWZhdWx0Q3JlYXRlUG9wcGVyIH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAncmVhY3QtZmFzdC1jb21wYXJlJztcbmltcG9ydCB7IGZyb21FbnRyaWVzLCB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnLi91dGlscyc7XG52YXIgRU1QVFlfTU9ESUZJRVJTID0gW107XG5leHBvcnQgdmFyIHVzZVBvcHBlciA9IGZ1bmN0aW9uIHVzZVBvcHBlcihyZWZlcmVuY2VFbGVtZW50LCBwb3BwZXJFbGVtZW50LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICB2YXIgcHJldk9wdGlvbnMgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIHZhciBvcHRpb25zV2l0aERlZmF1bHRzID0ge1xuICAgIG9uRmlyc3RVcGRhdGU6IG9wdGlvbnMub25GaXJzdFVwZGF0ZSxcbiAgICBwbGFjZW1lbnQ6IG9wdGlvbnMucGxhY2VtZW50IHx8ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5OiBvcHRpb25zLnN0cmF0ZWd5IHx8ICdhYnNvbHV0ZScsXG4gICAgbW9kaWZpZXJzOiBvcHRpb25zLm1vZGlmaWVycyB8fCBFTVBUWV9NT0RJRklFUlNcbiAgfTtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIHN0eWxlczoge1xuICAgICAgcG9wcGVyOiB7XG4gICAgICAgIHBvc2l0aW9uOiBvcHRpb25zV2l0aERlZmF1bHRzLnN0cmF0ZWd5LFxuICAgICAgICBsZWZ0OiAnMCcsXG4gICAgICAgIHRvcDogJzAnXG4gICAgICB9LFxuICAgICAgYXJyb3c6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbiAgICAgIH1cbiAgICB9LFxuICAgIGF0dHJpYnV0ZXM6IHt9XG4gIH0pLFxuICAgICAgc3RhdGUgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRTdGF0ZSA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB2YXIgdXBkYXRlU3RhdGVNb2RpZmllciA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAndXBkYXRlU3RhdGUnLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHBoYXNlOiAnd3JpdGUnLFxuICAgICAgZm46IGZ1bmN0aW9uIGZuKF9yZWYpIHtcbiAgICAgICAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZTtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gT2JqZWN0LmtleXMoc3RhdGUuZWxlbWVudHMpO1xuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgc3R5bGVzOiBmcm9tRW50cmllcyhlbGVtZW50cy5tYXAoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbZWxlbWVudCwgc3RhdGUuc3R5bGVzW2VsZW1lbnRdIHx8IHt9XTtcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgYXR0cmlidXRlczogZnJvbUVudHJpZXMoZWxlbWVudHMubWFwKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW2VsZW1lbnQsIHN0YXRlLmF0dHJpYnV0ZXNbZWxlbWVudF1dO1xuICAgICAgICAgIH0pKVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICByZXF1aXJlczogWydjb21wdXRlU3R5bGVzJ11cbiAgICB9O1xuICB9LCBbXSk7XG4gIHZhciBwb3BwZXJPcHRpb25zID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG5ld09wdGlvbnMgPSB7XG4gICAgICBvbkZpcnN0VXBkYXRlOiBvcHRpb25zV2l0aERlZmF1bHRzLm9uRmlyc3RVcGRhdGUsXG4gICAgICBwbGFjZW1lbnQ6IG9wdGlvbnNXaXRoRGVmYXVsdHMucGxhY2VtZW50LFxuICAgICAgc3RyYXRlZ3k6IG9wdGlvbnNXaXRoRGVmYXVsdHMuc3RyYXRlZ3ksXG4gICAgICBtb2RpZmllcnM6IFtdLmNvbmNhdChvcHRpb25zV2l0aERlZmF1bHRzLm1vZGlmaWVycywgW3VwZGF0ZVN0YXRlTW9kaWZpZXIsIHtcbiAgICAgICAgbmFtZTogJ2FwcGx5U3R5bGVzJyxcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICAgIH1dKVxuICAgIH07XG5cbiAgICBpZiAoaXNFcXVhbChwcmV2T3B0aW9ucy5jdXJyZW50LCBuZXdPcHRpb25zKSkge1xuICAgICAgcmV0dXJuIHByZXZPcHRpb25zLmN1cnJlbnQgfHwgbmV3T3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgcHJldk9wdGlvbnMuY3VycmVudCA9IG5ld09wdGlvbnM7XG4gICAgICByZXR1cm4gbmV3T3B0aW9ucztcbiAgICB9XG4gIH0sIFtvcHRpb25zV2l0aERlZmF1bHRzLm9uRmlyc3RVcGRhdGUsIG9wdGlvbnNXaXRoRGVmYXVsdHMucGxhY2VtZW50LCBvcHRpb25zV2l0aERlZmF1bHRzLnN0cmF0ZWd5LCBvcHRpb25zV2l0aERlZmF1bHRzLm1vZGlmaWVycywgdXBkYXRlU3RhdGVNb2RpZmllcl0pO1xuICB2YXIgcG9wcGVySW5zdGFuY2VSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgIHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQuc2V0T3B0aW9ucyhwb3BwZXJPcHRpb25zKTtcbiAgICB9XG4gIH0sIFtwb3BwZXJPcHRpb25zXSk7XG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChyZWZlcmVuY2VFbGVtZW50ID09IG51bGwgfHwgcG9wcGVyRWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGNyZWF0ZVBvcHBlciA9IG9wdGlvbnMuY3JlYXRlUG9wcGVyIHx8IGRlZmF1bHRDcmVhdGVQb3BwZXI7XG4gICAgdmFyIHBvcHBlckluc3RhbmNlID0gY3JlYXRlUG9wcGVyKHJlZmVyZW5jZUVsZW1lbnQsIHBvcHBlckVsZW1lbnQsIHBvcHBlck9wdGlvbnMpO1xuICAgIHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQgPSBwb3BwZXJJbnN0YW5jZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcG9wcGVySW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfTtcbiAgfSwgW3JlZmVyZW5jZUVsZW1lbnQsIHBvcHBlckVsZW1lbnQsIG9wdGlvbnMuY3JlYXRlUG9wcGVyXSk7XG4gIHJldHVybiB7XG4gICAgc3RhdGU6IHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQgPyBwb3BwZXJJbnN0YW5jZVJlZi5jdXJyZW50LnN0YXRlIDogbnVsbCxcbiAgICBzdHlsZXM6IHN0YXRlLnN0eWxlcyxcbiAgICBhdHRyaWJ1dGVzOiBzdGF0ZS5hdHRyaWJ1dGVzLFxuICAgIHVwZGF0ZTogcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA/IHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQudXBkYXRlIDogbnVsbCxcbiAgICBmb3JjZVVwZGF0ZTogcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA/IHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQuZm9yY2VVcGRhdGUgOiBudWxsXG4gIH07XG59OyIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJpZ2ludDogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIiwiLyohXG4qIHRhYmJhYmxlIDUuMi4xXG4qIEBsaWNlbnNlIE1JVCwgaHR0cHM6Ly9naXRodWIuY29tL2ZvY3VzLXRyYXAvdGFiYmFibGUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuKi9cbnZhciBjYW5kaWRhdGVTZWxlY3RvcnMgPSBbJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYScsICdhW2hyZWZdJywgJ2J1dHRvbicsICdbdGFiaW5kZXhdJywgJ2F1ZGlvW2NvbnRyb2xzXScsICd2aWRlb1tjb250cm9sc10nLCAnW2NvbnRlbnRlZGl0YWJsZV06bm90KFtjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiXSknLCAnZGV0YWlscz5zdW1tYXJ5OmZpcnN0LW9mLXR5cGUnLCAnZGV0YWlscyddO1xudmFyIGNhbmRpZGF0ZVNlbGVjdG9yID0gLyogI19fUFVSRV9fICovY2FuZGlkYXRlU2VsZWN0b3JzLmpvaW4oJywnKTtcbnZhciBtYXRjaGVzID0gdHlwZW9mIEVsZW1lbnQgPT09ICd1bmRlZmluZWQnID8gZnVuY3Rpb24gKCkge30gOiBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzIHx8IEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvcjtcblxudmFyIGdldENhbmRpZGF0ZXMgPSBmdW5jdGlvbiBnZXRDYW5kaWRhdGVzKGVsLCBpbmNsdWRlQ29udGFpbmVyLCBmaWx0ZXIpIHtcbiAgdmFyIGNhbmRpZGF0ZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoZWwucXVlcnlTZWxlY3RvckFsbChjYW5kaWRhdGVTZWxlY3RvcikpO1xuXG4gIGlmIChpbmNsdWRlQ29udGFpbmVyICYmIG1hdGNoZXMuY2FsbChlbCwgY2FuZGlkYXRlU2VsZWN0b3IpKSB7XG4gICAgY2FuZGlkYXRlcy51bnNoaWZ0KGVsKTtcbiAgfVxuXG4gIGNhbmRpZGF0ZXMgPSBjYW5kaWRhdGVzLmZpbHRlcihmaWx0ZXIpO1xuICByZXR1cm4gY2FuZGlkYXRlcztcbn07XG5cbnZhciBpc0NvbnRlbnRFZGl0YWJsZSA9IGZ1bmN0aW9uIGlzQ29udGVudEVkaXRhYmxlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuY29udGVudEVkaXRhYmxlID09PSAndHJ1ZSc7XG59O1xuXG52YXIgZ2V0VGFiaW5kZXggPSBmdW5jdGlvbiBnZXRUYWJpbmRleChub2RlKSB7XG4gIHZhciB0YWJpbmRleEF0dHIgPSBwYXJzZUludChub2RlLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSwgMTApO1xuXG4gIGlmICghaXNOYU4odGFiaW5kZXhBdHRyKSkge1xuICAgIHJldHVybiB0YWJpbmRleEF0dHI7XG4gIH0gLy8gQnJvd3NlcnMgZG8gbm90IHJldHVybiBgdGFiSW5kZXhgIGNvcnJlY3RseSBmb3IgY29udGVudEVkaXRhYmxlIG5vZGVzO1xuICAvLyBzbyBpZiB0aGV5IGRvbid0IGhhdmUgYSB0YWJpbmRleCBhdHRyaWJ1dGUgc3BlY2lmaWNhbGx5IHNldCwgYXNzdW1lIGl0J3MgMC5cblxuXG4gIGlmIChpc0NvbnRlbnRFZGl0YWJsZShub2RlKSkge1xuICAgIHJldHVybiAwO1xuICB9IC8vIGluIENocm9tZSwgPGRldGFpbHMvPiwgPGF1ZGlvIGNvbnRyb2xzLz4gYW5kIDx2aWRlbyBjb250cm9scy8+IGVsZW1lbnRzIGdldCBhIGRlZmF1bHRcbiAgLy8gIGB0YWJJbmRleGAgb2YgLTEgd2hlbiB0aGUgJ3RhYmluZGV4JyBhdHRyaWJ1dGUgaXNuJ3Qgc3BlY2lmaWVkIGluIHRoZSBET00sXG4gIC8vICB5ZXQgdGhleSBhcmUgc3RpbGwgcGFydCBvZiB0aGUgcmVndWxhciB0YWIgb3JkZXI7IGluIEZGLCB0aGV5IGdldCBhIGRlZmF1bHRcbiAgLy8gIGB0YWJJbmRleGAgb2YgMDsgc2luY2UgQ2hyb21lIHN0aWxsIHB1dHMgdGhvc2UgZWxlbWVudHMgaW4gdGhlIHJlZ3VsYXIgdGFiXG4gIC8vICBvcmRlciwgY29uc2lkZXIgdGhlaXIgdGFiIGluZGV4IHRvIGJlIDAuXG5cblxuICBpZiAoKG5vZGUubm9kZU5hbWUgPT09ICdBVURJTycgfHwgbm9kZS5ub2RlTmFtZSA9PT0gJ1ZJREVPJyB8fCBub2RlLm5vZGVOYW1lID09PSAnREVUQUlMUycpICYmIG5vZGUuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpID09PSBudWxsKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gbm9kZS50YWJJbmRleDtcbn07XG5cbnZhciBzb3J0T3JkZXJlZFRhYmJhYmxlcyA9IGZ1bmN0aW9uIHNvcnRPcmRlcmVkVGFiYmFibGVzKGEsIGIpIHtcbiAgcmV0dXJuIGEudGFiSW5kZXggPT09IGIudGFiSW5kZXggPyBhLmRvY3VtZW50T3JkZXIgLSBiLmRvY3VtZW50T3JkZXIgOiBhLnRhYkluZGV4IC0gYi50YWJJbmRleDtcbn07XG5cbnZhciBpc0lucHV0ID0gZnVuY3Rpb24gaXNJbnB1dChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdJTlBVVCc7XG59O1xuXG52YXIgaXNIaWRkZW5JbnB1dCA9IGZ1bmN0aW9uIGlzSGlkZGVuSW5wdXQobm9kZSkge1xuICByZXR1cm4gaXNJbnB1dChub2RlKSAmJiBub2RlLnR5cGUgPT09ICdoaWRkZW4nO1xufTtcblxudmFyIGlzRGV0YWlsc1dpdGhTdW1tYXJ5ID0gZnVuY3Rpb24gaXNEZXRhaWxzV2l0aFN1bW1hcnkobm9kZSkge1xuICB2YXIgciA9IG5vZGUudGFnTmFtZSA9PT0gJ0RFVEFJTFMnICYmIEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShub2RlLmNoaWxkcmVuKS5zb21lKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZC50YWdOYW1lID09PSAnU1VNTUFSWSc7XG4gIH0pO1xuICByZXR1cm4gcjtcbn07XG5cbnZhciBnZXRDaGVja2VkUmFkaW8gPSBmdW5jdGlvbiBnZXRDaGVja2VkUmFkaW8obm9kZXMsIGZvcm0pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChub2Rlc1tpXS5jaGVja2VkICYmIG5vZGVzW2ldLmZvcm0gPT09IGZvcm0pIHtcbiAgICAgIHJldHVybiBub2Rlc1tpXTtcbiAgICB9XG4gIH1cbn07XG5cbnZhciBpc1RhYmJhYmxlUmFkaW8gPSBmdW5jdGlvbiBpc1RhYmJhYmxlUmFkaW8obm9kZSkge1xuICBpZiAoIW5vZGUubmFtZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIHJhZGlvU2NvcGUgPSBub2RlLmZvcm0gfHwgbm9kZS5vd25lckRvY3VtZW50O1xuXG4gIHZhciBxdWVyeVJhZGlvcyA9IGZ1bmN0aW9uIHF1ZXJ5UmFkaW9zKG5hbWUpIHtcbiAgICByZXR1cm4gcmFkaW9TY29wZS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIicgKyBuYW1lICsgJ1wiXScpO1xuICB9O1xuXG4gIHZhciByYWRpb1NldDtcblxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5DU1MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuQ1NTLmVzY2FwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJhZGlvU2V0ID0gcXVlcnlSYWRpb3Mod2luZG93LkNTUy5lc2NhcGUobm9kZS5uYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIHJhZGlvU2V0ID0gcXVlcnlSYWRpb3Mobm9kZS5uYW1lKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKCdMb29rcyBsaWtlIHlvdSBoYXZlIGEgcmFkaW8gYnV0dG9uIHdpdGggYSBuYW1lIGF0dHJpYnV0ZSBjb250YWluaW5nIGludmFsaWQgQ1NTIHNlbGVjdG9yIGNoYXJhY3RlcnMgYW5kIG5lZWQgdGhlIENTUy5lc2NhcGUgcG9seWZpbGw6ICVzJywgZXJyLm1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjaGVja2VkID0gZ2V0Q2hlY2tlZFJhZGlvKHJhZGlvU2V0LCBub2RlLmZvcm0pO1xuICByZXR1cm4gIWNoZWNrZWQgfHwgY2hlY2tlZCA9PT0gbm9kZTtcbn07XG5cbnZhciBpc1JhZGlvID0gZnVuY3Rpb24gaXNSYWRpbyhub2RlKSB7XG4gIHJldHVybiBpc0lucHV0KG5vZGUpICYmIG5vZGUudHlwZSA9PT0gJ3JhZGlvJztcbn07XG5cbnZhciBpc05vblRhYmJhYmxlUmFkaW8gPSBmdW5jdGlvbiBpc05vblRhYmJhYmxlUmFkaW8obm9kZSkge1xuICByZXR1cm4gaXNSYWRpbyhub2RlKSAmJiAhaXNUYWJiYWJsZVJhZGlvKG5vZGUpO1xufTtcblxudmFyIGlzSGlkZGVuID0gZnVuY3Rpb24gaXNIaWRkZW4obm9kZSwgZGlzcGxheUNoZWNrKSB7XG4gIGlmIChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIgaXNEaXJlY3RTdW1tYXJ5ID0gbWF0Y2hlcy5jYWxsKG5vZGUsICdkZXRhaWxzPnN1bW1hcnk6Zmlyc3Qtb2YtdHlwZScpO1xuICB2YXIgbm9kZVVuZGVyRGV0YWlscyA9IGlzRGlyZWN0U3VtbWFyeSA/IG5vZGUucGFyZW50RWxlbWVudCA6IG5vZGU7XG5cbiAgaWYgKG1hdGNoZXMuY2FsbChub2RlVW5kZXJEZXRhaWxzLCAnZGV0YWlsczpub3QoW29wZW5dKSAqJykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZGlzcGxheUNoZWNrIHx8IGRpc3BsYXlDaGVjayA9PT0gJ2Z1bGwnKSB7XG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGlzcGxheUNoZWNrID09PSAnbm9uLXplcm8tYXJlYScpIHtcbiAgICB2YXIgX25vZGUkZ2V0Qm91bmRpbmdDbGllID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgd2lkdGggPSBfbm9kZSRnZXRCb3VuZGluZ0NsaWUud2lkdGgsXG4gICAgICAgIGhlaWdodCA9IF9ub2RlJGdldEJvdW5kaW5nQ2xpZS5oZWlnaHQ7XG5cbiAgICByZXR1cm4gd2lkdGggPT09IDAgJiYgaGVpZ2h0ID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTsgLy8gZm9ybSBmaWVsZHMgKG5lc3RlZCkgaW5zaWRlIGEgZGlzYWJsZWQgZmllbGRzZXQgYXJlIG5vdCBmb2N1c2FibGUvdGFiYmFibGVcbi8vICB1bmxlc3MgdGhleSBhcmUgaW4gdGhlIF9maXJzdF8gPGxlZ2VuZD4gZWxlbWVudCBvZiB0aGUgdG9wLW1vc3QgZGlzYWJsZWRcbi8vICBmaWVsZHNldFxuXG5cbnZhciBpc0Rpc2FibGVkRnJvbUZpZWxkc2V0ID0gZnVuY3Rpb24gaXNEaXNhYmxlZEZyb21GaWVsZHNldChub2RlKSB7XG4gIGlmIChpc0lucHV0KG5vZGUpIHx8IG5vZGUudGFnTmFtZSA9PT0gJ1NFTEVDVCcgfHwgbm9kZS50YWdOYW1lID09PSAnVEVYVEFSRUEnIHx8IG5vZGUudGFnTmFtZSA9PT0gJ0JVVFRPTicpIHtcbiAgICB2YXIgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcblxuICAgIHdoaWxlIChwYXJlbnROb2RlKSB7XG4gICAgICBpZiAocGFyZW50Tm9kZS50YWdOYW1lID09PSAnRklFTERTRVQnICYmIHBhcmVudE5vZGUuZGlzYWJsZWQpIHtcbiAgICAgICAgLy8gbG9vayBmb3IgdGhlIGZpcnN0IDxsZWdlbmQ+IGFzIGFuIGltbWVkaWF0ZSBjaGlsZCBvZiB0aGUgZGlzYWJsZWRcbiAgICAgICAgLy8gIDxmaWVsZHNldD46IGlmIHRoZSBub2RlIGlzIGluIHRoYXQgbGVnZW5kLCBpdCdsbCBiZSBlbmFibGVkIGV2ZW5cbiAgICAgICAgLy8gIHRob3VnaCB0aGUgZmllbGRzZXQgaXMgZGlzYWJsZWQ7IG90aGVyd2lzZSwgdGhlIG5vZGUgaXMgaW4gYVxuICAgICAgICAvLyAgc2Vjb25kYXJ5L3N1YnNlcXVlbnQgbGVnZW5kLCBvciBzb21ld2hlcmUgZWxzZSB3aXRoaW4gdGhlIGZpZWxkc2V0XG4gICAgICAgIC8vICAoaG93ZXZlciBkZWVwIG5lc3RlZCkgYW5kIGl0J2xsIGJlIGRpc2FibGVkXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjaGlsZCA9IHBhcmVudE5vZGUuY2hpbGRyZW4uaXRlbShpKTtcblxuICAgICAgICAgIGlmIChjaGlsZC50YWdOYW1lID09PSAnTEVHRU5EJykge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmNvbnRhaW5zKG5vZGUpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0gLy8gdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGZpcnN0IGxlZ2VuZCAoaW4gZG9jIG9yZGVyKSwgc28gbm8gbWF0dGVyXG4gICAgICAgICAgICAvLyAgd2hlcmUgaXQgaXMgbm93LCBpdCdsbCBiZSBkaXNhYmxlZFxuXG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSAvLyB0aGUgbm9kZSBpc24ndCBpbiBhIGxlZ2VuZCwgc28gbm8gbWF0dGVyIHdoZXJlIGl0IGlzIG5vdywgaXQnbGwgYmUgZGlzYWJsZWRcblxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnRFbGVtZW50O1xuICAgIH1cbiAgfSAvLyBlbHNlLCBub2RlJ3MgdGFiYmFibGUvZm9jdXNhYmxlIHN0YXRlIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgYSBmaWVsZHNldCdzXG4gIC8vICBlbmFibGVkL2Rpc2FibGVkIHN0YXRlXG5cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG52YXIgaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZSA9IGZ1bmN0aW9uIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUob3B0aW9ucywgbm9kZSkge1xuICBpZiAobm9kZS5kaXNhYmxlZCB8fCBpc0hpZGRlbklucHV0KG5vZGUpIHx8IGlzSGlkZGVuKG5vZGUsIG9wdGlvbnMuZGlzcGxheUNoZWNrKSB8fCAvLyBGb3IgYSBkZXRhaWxzIGVsZW1lbnQgd2l0aCBhIHN1bW1hcnksIHRoZSBzdW1tYXJ5IGVsZW1lbnQgZ2V0cyB0aGUgZm9jdXNcbiAgaXNEZXRhaWxzV2l0aFN1bW1hcnkobm9kZSkgfHwgaXNEaXNhYmxlZEZyb21GaWVsZHNldChub2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxudmFyIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZSA9IGZ1bmN0aW9uIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZShvcHRpb25zLCBub2RlKSB7XG4gIGlmICghaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZShvcHRpb25zLCBub2RlKSB8fCBpc05vblRhYmJhYmxlUmFkaW8obm9kZSkgfHwgZ2V0VGFiaW5kZXgobm9kZSkgPCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG52YXIgdGFiYmFibGUgPSBmdW5jdGlvbiB0YWJiYWJsZShlbCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIHJlZ3VsYXJUYWJiYWJsZXMgPSBbXTtcbiAgdmFyIG9yZGVyZWRUYWJiYWJsZXMgPSBbXTtcbiAgdmFyIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzKGVsLCBvcHRpb25zLmluY2x1ZGVDb250YWluZXIsIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZS5iaW5kKG51bGwsIG9wdGlvbnMpKTtcbiAgY2FuZGlkYXRlcy5mb3JFYWNoKGZ1bmN0aW9uIChjYW5kaWRhdGUsIGkpIHtcbiAgICB2YXIgY2FuZGlkYXRlVGFiaW5kZXggPSBnZXRUYWJpbmRleChjYW5kaWRhdGUpO1xuXG4gICAgaWYgKGNhbmRpZGF0ZVRhYmluZGV4ID09PSAwKSB7XG4gICAgICByZWd1bGFyVGFiYmFibGVzLnB1c2goY2FuZGlkYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3JkZXJlZFRhYmJhYmxlcy5wdXNoKHtcbiAgICAgICAgZG9jdW1lbnRPcmRlcjogaSxcbiAgICAgICAgdGFiSW5kZXg6IGNhbmRpZGF0ZVRhYmluZGV4LFxuICAgICAgICBub2RlOiBjYW5kaWRhdGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIHZhciB0YWJiYWJsZU5vZGVzID0gb3JkZXJlZFRhYmJhYmxlcy5zb3J0KHNvcnRPcmRlcmVkVGFiYmFibGVzKS5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICByZXR1cm4gYS5ub2RlO1xuICB9KS5jb25jYXQocmVndWxhclRhYmJhYmxlcyk7XG4gIHJldHVybiB0YWJiYWJsZU5vZGVzO1xufTtcblxudmFyIGZvY3VzYWJsZSA9IGZ1bmN0aW9uIGZvY3VzYWJsZShlbCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzKGVsLCBvcHRpb25zLmluY2x1ZGVDb250YWluZXIsIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUuYmluZChudWxsLCBvcHRpb25zKSk7XG4gIHJldHVybiBjYW5kaWRhdGVzO1xufTtcblxudmFyIGlzVGFiYmFibGUgPSBmdW5jdGlvbiBpc1RhYmJhYmxlKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgaWYgKCFub2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBub2RlIHByb3ZpZGVkJyk7XG4gIH1cblxuICBpZiAobWF0Y2hlcy5jYWxsKG5vZGUsIGNhbmRpZGF0ZVNlbGVjdG9yKSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaXNOb2RlTWF0Y2hpbmdTZWxlY3RvclRhYmJhYmxlKG9wdGlvbnMsIG5vZGUpO1xufTtcblxudmFyIGZvY3VzYWJsZUNhbmRpZGF0ZVNlbGVjdG9yID0gLyogI19fUFVSRV9fICovY2FuZGlkYXRlU2VsZWN0b3JzLmNvbmNhdCgnaWZyYW1lJykuam9pbignLCcpO1xuXG52YXIgaXNGb2N1c2FibGUgPSBmdW5jdGlvbiBpc0ZvY3VzYWJsZShub2RlLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIGlmICghbm9kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gbm9kZSBwcm92aWRlZCcpO1xuICB9XG5cbiAgaWYgKG1hdGNoZXMuY2FsbChub2RlLCBmb2N1c2FibGVDYW5kaWRhdGVTZWxlY3RvcikgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUob3B0aW9ucywgbm9kZSk7XG59O1xuXG5leHBvcnQgeyBmb2N1c2FibGUsIGlzRm9jdXNhYmxlLCBpc1RhYmJhYmxlLCB0YWJiYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguZXNtLmpzLm1hcFxuIiwiLyohXG4qIGZvY3VzLXRyYXAgNi43LjJcbiogQGxpY2Vuc2UgTUlULCBodHRwczovL2dpdGh1Yi5jb20vZm9jdXMtdHJhcC9mb2N1cy10cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiovXG5pbXBvcnQgeyB0YWJiYWJsZSwgaXNGb2N1c2FibGUsIGlzVGFiYmFibGUgfSBmcm9tICd0YWJiYWJsZSc7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkge1xuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtcbiAgICBlbnVtZXJhYmxlT25seSAmJiAoc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlO1xuICAgIH0pKSwga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpO1xuICB9XG5cbiAgcmV0dXJuIGtleXM7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQyKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBudWxsICE9IGFyZ3VtZW50c1tpXSA/IGFyZ3VtZW50c1tpXSA6IHt9O1xuICAgIGkgJSAyID8gb3duS2V5cyhPYmplY3Qoc291cmNlKSwgITApLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSkgOiBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbnZhciBhY3RpdmVGb2N1c1RyYXBzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdHJhcFF1ZXVlID0gW107XG4gIHJldHVybiB7XG4gICAgYWN0aXZhdGVUcmFwOiBmdW5jdGlvbiBhY3RpdmF0ZVRyYXAodHJhcCkge1xuICAgICAgaWYgKHRyYXBRdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciBhY3RpdmVUcmFwID0gdHJhcFF1ZXVlW3RyYXBRdWV1ZS5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoYWN0aXZlVHJhcCAhPT0gdHJhcCkge1xuICAgICAgICAgIGFjdGl2ZVRyYXAucGF1c2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdHJhcEluZGV4ID0gdHJhcFF1ZXVlLmluZGV4T2YodHJhcCk7XG5cbiAgICAgIGlmICh0cmFwSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHRyYXBRdWV1ZS5wdXNoKHRyYXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbW92ZSB0aGlzIGV4aXN0aW5nIHRyYXAgdG8gdGhlIGZyb250IG9mIHRoZSBxdWV1ZVxuICAgICAgICB0cmFwUXVldWUuc3BsaWNlKHRyYXBJbmRleCwgMSk7XG4gICAgICAgIHRyYXBRdWV1ZS5wdXNoKHRyYXApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZGVhY3RpdmF0ZVRyYXA6IGZ1bmN0aW9uIGRlYWN0aXZhdGVUcmFwKHRyYXApIHtcbiAgICAgIHZhciB0cmFwSW5kZXggPSB0cmFwUXVldWUuaW5kZXhPZih0cmFwKTtcblxuICAgICAgaWYgKHRyYXBJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdHJhcFF1ZXVlLnNwbGljZSh0cmFwSW5kZXgsIDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHJhcFF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdHJhcFF1ZXVlW3RyYXBRdWV1ZS5sZW5ndGggLSAxXS51bnBhdXNlKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufSgpO1xuXG52YXIgaXNTZWxlY3RhYmxlSW5wdXQgPSBmdW5jdGlvbiBpc1NlbGVjdGFibGVJbnB1dChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWUgJiYgbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgdHlwZW9mIG5vZGUuc2VsZWN0ID09PSAnZnVuY3Rpb24nO1xufTtcblxudmFyIGlzRXNjYXBlRXZlbnQgPSBmdW5jdGlvbiBpc0VzY2FwZUV2ZW50KGUpIHtcbiAgcmV0dXJuIGUua2V5ID09PSAnRXNjYXBlJyB8fCBlLmtleSA9PT0gJ0VzYycgfHwgZS5rZXlDb2RlID09PSAyNztcbn07XG5cbnZhciBpc1RhYkV2ZW50ID0gZnVuY3Rpb24gaXNUYWJFdmVudChlKSB7XG4gIHJldHVybiBlLmtleSA9PT0gJ1RhYicgfHwgZS5rZXlDb2RlID09PSA5O1xufTtcblxudmFyIGRlbGF5ID0gZnVuY3Rpb24gZGVsYXkoZm4pIHtcbiAgcmV0dXJuIHNldFRpbWVvdXQoZm4sIDApO1xufTsgLy8gQXJyYXkuZmluZC9maW5kSW5kZXgoKSBhcmUgbm90IHN1cHBvcnRlZCBvbiBJRTsgdGhpcyByZXBsaWNhdGVzIGVub3VnaFxuLy8gIG9mIEFycmF5LmZpbmRJbmRleCgpIGZvciBvdXIgbmVlZHNcblxuXG52YXIgZmluZEluZGV4ID0gZnVuY3Rpb24gZmluZEluZGV4KGFyciwgZm4pIHtcbiAgdmFyIGlkeCA9IC0xO1xuICBhcnIuZXZlcnkoZnVuY3Rpb24gKHZhbHVlLCBpKSB7XG4gICAgaWYgKGZuKHZhbHVlKSkge1xuICAgICAgaWR4ID0gaTtcbiAgICAgIHJldHVybiBmYWxzZTsgLy8gYnJlYWtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTsgLy8gbmV4dFxuICB9KTtcbiAgcmV0dXJuIGlkeDtcbn07XG4vKipcbiAqIEdldCBhbiBvcHRpb24ncyB2YWx1ZSB3aGVuIGl0IGNvdWxkIGJlIGEgcGxhaW4gdmFsdWUsIG9yIGEgaGFuZGxlciB0aGF0IHByb3ZpZGVzXG4gKiAgdGhlIHZhbHVlLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBPcHRpb24ncyB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7Li4uKn0gW3BhcmFtc10gQW55IHBhcmFtZXRlcnMgdG8gcGFzcyB0byB0aGUgaGFuZGxlciwgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLlxuICogQHJldHVybnMgeyp9IFRoZSBgdmFsdWVgLCBvciB0aGUgaGFuZGxlcidzIHJldHVybmVkIHZhbHVlLlxuICovXG5cblxudmFyIHZhbHVlT3JIYW5kbGVyID0gZnVuY3Rpb24gdmFsdWVPckhhbmRsZXIodmFsdWUpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHBhcmFtcyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgcGFyYW1zW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZS5hcHBseSh2b2lkIDAsIHBhcmFtcykgOiB2YWx1ZTtcbn07XG5cbnZhciBnZXRBY3R1YWxUYXJnZXQgPSBmdW5jdGlvbiBnZXRBY3R1YWxUYXJnZXQoZXZlbnQpIHtcbiAgLy8gTk9URTogSWYgdGhlIHRyYXAgaXMgX2luc2lkZV8gYSBzaGFkb3cgRE9NLCBldmVudC50YXJnZXQgd2lsbCBhbHdheXMgYmUgdGhlXG4gIC8vICBzaGFkb3cgaG9zdC4gSG93ZXZlciwgZXZlbnQudGFyZ2V0LmNvbXBvc2VkUGF0aCgpIHdpbGwgYmUgYW4gYXJyYXkgb2ZcbiAgLy8gIG5vZGVzIFwiY2xpY2tlZFwiIGZyb20gaW5uZXItbW9zdCAodGhlIGFjdHVhbCBlbGVtZW50IGluc2lkZSB0aGUgc2hhZG93KSB0b1xuICAvLyAgb3V0ZXItbW9zdCAodGhlIGhvc3QgSFRNTCBkb2N1bWVudCkuIElmIHdlIGhhdmUgYWNjZXNzIHRvIGNvbXBvc2VkUGF0aCgpLFxuICAvLyAgdGhlbiB1c2UgaXRzIGZpcnN0IGVsZW1lbnQ7IG90aGVyd2lzZSwgZmFsbCBiYWNrIHRvIGV2ZW50LnRhcmdldCAoYW5kXG4gIC8vICB0aGlzIG9ubHkgd29ya3MgZm9yIGFuIF9vcGVuXyBzaGFkb3cgRE9NOyBvdGhlcndpc2UsXG4gIC8vICBjb21wb3NlZFBhdGgoKVswXSA9PT0gZXZlbnQudGFyZ2V0IGFsd2F5cykuXG4gIHJldHVybiBldmVudC50YXJnZXQuc2hhZG93Um9vdCAmJiB0eXBlb2YgZXZlbnQuY29tcG9zZWRQYXRoID09PSAnZnVuY3Rpb24nID8gZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gOiBldmVudC50YXJnZXQ7XG59O1xuXG52YXIgY3JlYXRlRm9jdXNUcmFwID0gZnVuY3Rpb24gY3JlYXRlRm9jdXNUcmFwKGVsZW1lbnRzLCB1c2VyT3B0aW9ucykge1xuICAvLyBTU1I6IGEgbGl2ZSB0cmFwIHNob3VsZG4ndCBiZSBjcmVhdGVkIGluIHRoaXMgdHlwZSBvZiBlbnZpcm9ubWVudCBzbyB0aGlzXG4gIC8vICBzaG91bGQgYmUgc2FmZSBjb2RlIHRvIGV4ZWN1dGUgaWYgdGhlIGBkb2N1bWVudGAgb3B0aW9uIGlzbid0IHNwZWNpZmllZFxuICB2YXIgZG9jID0gKHVzZXJPcHRpb25zID09PSBudWxsIHx8IHVzZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiB1c2VyT3B0aW9ucy5kb2N1bWVudCkgfHwgZG9jdW1lbnQ7XG5cbiAgdmFyIGNvbmZpZyA9IF9vYmplY3RTcHJlYWQyKHtcbiAgICByZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZTogdHJ1ZSxcbiAgICBlc2NhcGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICBkZWxheUluaXRpYWxGb2N1czogdHJ1ZVxuICB9LCB1c2VyT3B0aW9ucyk7XG5cbiAgdmFyIHN0YXRlID0ge1xuICAgIC8vIEB0eXBlIHtBcnJheTxIVE1MRWxlbWVudD59XG4gICAgY29udGFpbmVyczogW10sXG4gICAgLy8gbGlzdCBvZiBvYmplY3RzIGlkZW50aWZ5aW5nIHRoZSBmaXJzdCBhbmQgbGFzdCB0YWJiYWJsZSBub2RlcyBpbiBhbGwgY29udGFpbmVycy9ncm91cHMgaW5cbiAgICAvLyAgdGhlIHRyYXBcbiAgICAvLyBOT1RFOiBpdCdzIHBvc3NpYmxlIHRoYXQgYSBncm91cCBoYXMgbm8gdGFiYmFibGUgbm9kZXMgaWYgbm9kZXMgZ2V0IHJlbW92ZWQgd2hpbGUgdGhlIHRyYXBcbiAgICAvLyAgaXMgYWN0aXZlLCBidXQgdGhlIHRyYXAgc2hvdWxkIG5ldmVyIGdldCB0byBhIHN0YXRlIHdoZXJlIHRoZXJlIGlzbid0IGF0IGxlYXN0IG9uZSBncm91cFxuICAgIC8vICB3aXRoIGF0IGxlYXN0IG9uZSB0YWJiYWJsZSBub2RlIGluIGl0ICh0aGF0IHdvdWxkIGxlYWQgdG8gYW4gZXJyb3IgY29uZGl0aW9uIHRoYXQgd291bGRcbiAgICAvLyAgcmVzdWx0IGluIGFuIGVycm9yIGJlaW5nIHRocm93bilcbiAgICAvLyBAdHlwZSB7QXJyYXk8eyBjb250YWluZXI6IEhUTUxFbGVtZW50LCBmaXJzdFRhYmJhYmxlTm9kZTogSFRNTEVsZW1lbnR8bnVsbCwgbGFzdFRhYmJhYmxlTm9kZTogSFRNTEVsZW1lbnR8bnVsbCB9Pn1cbiAgICB0YWJiYWJsZUdyb3VwczogW10sXG4gICAgbm9kZUZvY3VzZWRCZWZvcmVBY3RpdmF0aW9uOiBudWxsLFxuICAgIG1vc3RSZWNlbnRseUZvY3VzZWROb2RlOiBudWxsLFxuICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICAvLyB0aW1lciBJRCBmb3Igd2hlbiBkZWxheUluaXRpYWxGb2N1cyBpcyB0cnVlIGFuZCBpbml0aWFsIGZvY3VzIGluIHRoaXMgdHJhcFxuICAgIC8vICBoYXMgYmVlbiBkZWxheWVkIGR1cmluZyBhY3RpdmF0aW9uXG4gICAgZGVsYXlJbml0aWFsRm9jdXNUaW1lcjogdW5kZWZpbmVkXG4gIH07XG4gIHZhciB0cmFwOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByZWZlci1jb25zdCAtLSBzb21lIHByaXZhdGUgZnVuY3Rpb25zIHJlZmVyZW5jZSBpdCwgYW5kIGl0cyBtZXRob2RzIHJlZmVyZW5jZSBwcml2YXRlIGZ1bmN0aW9ucywgc28gd2UgbXVzdCBkZWNsYXJlIGhlcmUgYW5kIGRlZmluZSBsYXRlclxuXG4gIHZhciBnZXRPcHRpb24gPSBmdW5jdGlvbiBnZXRPcHRpb24oY29uZmlnT3ZlcnJpZGVPcHRpb25zLCBvcHRpb25OYW1lLCBjb25maWdPcHRpb25OYW1lKSB7XG4gICAgcmV0dXJuIGNvbmZpZ092ZXJyaWRlT3B0aW9ucyAmJiBjb25maWdPdmVycmlkZU9wdGlvbnNbb3B0aW9uTmFtZV0gIT09IHVuZGVmaW5lZCA/IGNvbmZpZ092ZXJyaWRlT3B0aW9uc1tvcHRpb25OYW1lXSA6IGNvbmZpZ1tjb25maWdPcHRpb25OYW1lIHx8IG9wdGlvbk5hbWVdO1xuICB9O1xuXG4gIHZhciBjb250YWluZXJzQ29udGFpbiA9IGZ1bmN0aW9uIGNvbnRhaW5lcnNDb250YWluKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gISEoZWxlbWVudCAmJiBzdGF0ZS5jb250YWluZXJzLnNvbWUoZnVuY3Rpb24gKGNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIGNvbnRhaW5lci5jb250YWlucyhlbGVtZW50KTtcbiAgICB9KSk7XG4gIH07XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBub2RlIGZvciB0aGUgZ2l2ZW4gb3B0aW9uLCB3aGljaCBpcyBleHBlY3RlZCB0byBiZSBhbiBvcHRpb24gdGhhdFxuICAgKiAgY2FuIGJlIGVpdGhlciBhIERPTSBub2RlLCBhIHN0cmluZyB0aGF0IGlzIGEgc2VsZWN0b3IgdG8gZ2V0IGEgbm9kZSwgYGZhbHNlYFxuICAgKiAgKGlmIGEgbm9kZSBpcyBleHBsaWNpdGx5IE5PVCBnaXZlbiksIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFueSBvZiB0aGVzZVxuICAgKiAgdmFsdWVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9uTmFtZVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkIHwgZmFsc2UgfCBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnR9IFJldHVybnNcbiAgICogIGB1bmRlZmluZWRgIGlmIHRoZSBvcHRpb24gaXMgbm90IHNwZWNpZmllZDsgYGZhbHNlYCBpZiB0aGUgb3B0aW9uXG4gICAqICByZXNvbHZlZCB0byBgZmFsc2VgIChub2RlIGV4cGxpY2l0bHkgbm90IGdpdmVuKTsgb3RoZXJ3aXNlLCB0aGUgcmVzb2x2ZWRcbiAgICogIERPTSBub2RlLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIG9wdGlvbiBpcyBzZXQsIG5vdCBgZmFsc2VgLCBhbmQgaXMgbm90LCBvciBkb2VzIG5vdFxuICAgKiAgcmVzb2x2ZSB0byBhIG5vZGUuXG4gICAqL1xuXG5cbiAgdmFyIGdldE5vZGVGb3JPcHRpb24gPSBmdW5jdGlvbiBnZXROb2RlRm9yT3B0aW9uKG9wdGlvbk5hbWUpIHtcbiAgICB2YXIgb3B0aW9uVmFsdWUgPSBjb25maWdbb3B0aW9uTmFtZV07XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvblZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIHBhcmFtcyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIHBhcmFtc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uVmFsdWUgPSBvcHRpb25WYWx1ZS5hcHBseSh2b2lkIDAsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25WYWx1ZSkge1xuICAgICAgaWYgKG9wdGlvblZhbHVlID09PSB1bmRlZmluZWQgfHwgb3B0aW9uVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25WYWx1ZTtcbiAgICAgIH0gLy8gZWxzZSwgZW1wdHkgc3RyaW5nIChpbnZhbGlkKSwgbnVsbCAoaW52YWxpZCksIDAgKGludmFsaWQpXG5cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgd2FzIHNwZWNpZmllZCBidXQgd2FzIG5vdCBhIG5vZGUsIG9yIGRpZCBub3QgcmV0dXJuIGEgbm9kZVwiKSk7XG4gICAgfVxuXG4gICAgdmFyIG5vZGUgPSBvcHRpb25WYWx1ZTsgLy8gY291bGQgYmUgSFRNTEVsZW1lbnQsIFNWR0VsZW1lbnQsIG9yIG5vbi1lbXB0eSBzdHJpbmcgYXQgdGhpcyBwb2ludFxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG5vZGUgPSBkb2MucXVlcnlTZWxlY3RvcihvcHRpb25WYWx1ZSk7IC8vIHJlc29sdmUgdG8gbm9kZSwgb3IgbnVsbCBpZiBmYWlsc1xuXG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgYXMgc2VsZWN0b3IgcmVmZXJzIHRvIG5vIGtub3duIG5vZGVcIikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9O1xuXG4gIHZhciBnZXRJbml0aWFsRm9jdXNOb2RlID0gZnVuY3Rpb24gZ2V0SW5pdGlhbEZvY3VzTm9kZSgpIHtcbiAgICB2YXIgbm9kZSA9IGdldE5vZGVGb3JPcHRpb24oJ2luaXRpYWxGb2N1cycpOyAvLyBmYWxzZSBleHBsaWNpdGx5IGluZGljYXRlcyB3ZSB3YW50IG5vIGluaXRpYWxGb2N1cyBhdCBhbGxcblxuICAgIGlmIChub2RlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIG9wdGlvbiBub3Qgc3BlY2lmaWVkOiB1c2UgZmFsbGJhY2sgb3B0aW9uc1xuICAgICAgaWYgKGNvbnRhaW5lcnNDb250YWluKGRvYy5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICBub2RlID0gZG9jLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZmlyc3RUYWJiYWJsZUdyb3VwID0gc3RhdGUudGFiYmFibGVHcm91cHNbMF07XG4gICAgICAgIHZhciBmaXJzdFRhYmJhYmxlTm9kZSA9IGZpcnN0VGFiYmFibGVHcm91cCAmJiBmaXJzdFRhYmJhYmxlR3JvdXAuZmlyc3RUYWJiYWJsZU5vZGU7IC8vIE5PVEU6IGBmYWxsYmFja0ZvY3VzYCBvcHRpb24gZnVuY3Rpb24gY2Fubm90IHJldHVybiBgZmFsc2VgIChub3Qgc3VwcG9ydGVkKVxuXG4gICAgICAgIG5vZGUgPSBmaXJzdFRhYmJhYmxlTm9kZSB8fCBnZXROb2RlRm9yT3B0aW9uKCdmYWxsYmFja0ZvY3VzJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFub2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdXIgZm9jdXMtdHJhcCBuZWVkcyB0byBoYXZlIGF0IGxlYXN0IG9uZSBmb2N1c2FibGUgZWxlbWVudCcpO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9O1xuXG4gIHZhciB1cGRhdGVUYWJiYWJsZU5vZGVzID0gZnVuY3Rpb24gdXBkYXRlVGFiYmFibGVOb2RlcygpIHtcbiAgICBzdGF0ZS50YWJiYWJsZUdyb3VwcyA9IHN0YXRlLmNvbnRhaW5lcnMubWFwKGZ1bmN0aW9uIChjb250YWluZXIpIHtcbiAgICAgIHZhciB0YWJiYWJsZU5vZGVzID0gdGFiYmFibGUoY29udGFpbmVyKTtcblxuICAgICAgaWYgKHRhYmJhYmxlTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyLFxuICAgICAgICAgIGZpcnN0VGFiYmFibGVOb2RlOiB0YWJiYWJsZU5vZGVzWzBdLFxuICAgICAgICAgIGxhc3RUYWJiYWJsZU5vZGU6IHRhYmJhYmxlTm9kZXNbdGFiYmFibGVOb2Rlcy5sZW5ndGggLSAxXVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pLmZpbHRlcihmdW5jdGlvbiAoZ3JvdXApIHtcbiAgICAgIHJldHVybiAhIWdyb3VwO1xuICAgIH0pOyAvLyByZW1vdmUgZ3JvdXBzIHdpdGggbm8gdGFiYmFibGUgbm9kZXNcbiAgICAvLyB0aHJvdyBpZiBubyBncm91cHMgaGF2ZSB0YWJiYWJsZSBub2RlcyBhbmQgd2UgZG9uJ3QgaGF2ZSBhIGZhbGxiYWNrIGZvY3VzIG5vZGUgZWl0aGVyXG5cbiAgICBpZiAoc3RhdGUudGFiYmFibGVHcm91cHMubGVuZ3RoIDw9IDAgJiYgIWdldE5vZGVGb3JPcHRpb24oJ2ZhbGxiYWNrRm9jdXMnKSAvLyByZXR1cm5pbmcgZmFsc2Ugbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcHRpb25cbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91ciBmb2N1cy10cmFwIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgY29udGFpbmVyIHdpdGggYXQgbGVhc3Qgb25lIHRhYmJhYmxlIG5vZGUgaW4gaXQgYXQgYWxsIHRpbWVzJyk7XG4gICAgfVxuICB9O1xuXG4gIHZhciB0cnlGb2N1cyA9IGZ1bmN0aW9uIHRyeUZvY3VzKG5vZGUpIHtcbiAgICBpZiAobm9kZSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gZG9jLmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIW5vZGUgfHwgIW5vZGUuZm9jdXMpIHtcbiAgICAgIHRyeUZvY3VzKGdldEluaXRpYWxGb2N1c05vZGUoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbm9kZS5mb2N1cyh7XG4gICAgICBwcmV2ZW50U2Nyb2xsOiAhIWNvbmZpZy5wcmV2ZW50U2Nyb2xsXG4gICAgfSk7XG4gICAgc3RhdGUubW9zdFJlY2VudGx5Rm9jdXNlZE5vZGUgPSBub2RlO1xuXG4gICAgaWYgKGlzU2VsZWN0YWJsZUlucHV0KG5vZGUpKSB7XG4gICAgICBub2RlLnNlbGVjdCgpO1xuICAgIH1cbiAgfTtcblxuICB2YXIgZ2V0UmV0dXJuRm9jdXNOb2RlID0gZnVuY3Rpb24gZ2V0UmV0dXJuRm9jdXNOb2RlKHByZXZpb3VzQWN0aXZlRWxlbWVudCkge1xuICAgIHZhciBub2RlID0gZ2V0Tm9kZUZvck9wdGlvbignc2V0UmV0dXJuRm9jdXMnLCBwcmV2aW91c0FjdGl2ZUVsZW1lbnQpO1xuICAgIHJldHVybiBub2RlID8gbm9kZSA6IG5vZGUgPT09IGZhbHNlID8gZmFsc2UgOiBwcmV2aW91c0FjdGl2ZUVsZW1lbnQ7XG4gIH07IC8vIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSBvbiBtb3VzZWRvd24gYW5kIHRvdWNoc3RhcnQgaW5zdGVhZCBvZiBjbGlja1xuICAvLyBzbyB0aGF0IGl0IHByZWNlZGVzIHRoZSBmb2N1cyBldmVudC5cblxuXG4gIHZhciBjaGVja1BvaW50ZXJEb3duID0gZnVuY3Rpb24gY2hlY2tQb2ludGVyRG93bihlKSB7XG4gICAgdmFyIHRhcmdldCA9IGdldEFjdHVhbFRhcmdldChlKTtcblxuICAgIGlmIChjb250YWluZXJzQ29udGFpbih0YXJnZXQpKSB7XG4gICAgICAvLyBhbGxvdyB0aGUgY2xpY2sgc2luY2UgaXQgb2N1cnJlZCBpbnNpZGUgdGhlIHRyYXBcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWVPckhhbmRsZXIoY29uZmlnLmNsaWNrT3V0c2lkZURlYWN0aXZhdGVzLCBlKSkge1xuICAgICAgLy8gaW1tZWRpYXRlbHkgZGVhY3RpdmF0ZSB0aGUgdHJhcFxuICAgICAgdHJhcC5kZWFjdGl2YXRlKHtcbiAgICAgICAgLy8gaWYsIG9uIGRlYWN0aXZhdGlvbiwgd2Ugc2hvdWxkIHJldHVybiBmb2N1cyB0byB0aGUgbm9kZSBvcmlnaW5hbGx5LWZvY3VzZWRcbiAgICAgICAgLy8gIHdoZW4gdGhlIHRyYXAgd2FzIGFjdGl2YXRlZCAob3IgdGhlIGNvbmZpZ3VyZWQgYHNldFJldHVybkZvY3VzYCBub2RlKSxcbiAgICAgICAgLy8gIHRoZW4gYXNzdW1lIGl0J3MgYWxzbyBPSyB0byByZXR1cm4gZm9jdXMgdG8gdGhlIG91dHNpZGUgbm9kZSB0aGF0IHdhc1xuICAgICAgICAvLyAganVzdCBjbGlja2VkLCBjYXVzaW5nIGRlYWN0aXZhdGlvbiwgYXMgbG9uZyBhcyB0aGF0IG5vZGUgaXMgZm9jdXNhYmxlO1xuICAgICAgICAvLyAgaWYgaXQgaXNuJ3QgZm9jdXNhYmxlLCB0aGVuIHJldHVybiBmb2N1cyB0byB0aGUgb3JpZ2luYWwgbm9kZSBmb2N1c2VkXG4gICAgICAgIC8vICBvbiBhY3RpdmF0aW9uIChvciB0aGUgY29uZmlndXJlZCBgc2V0UmV0dXJuRm9jdXNgIG5vZGUpXG4gICAgICAgIC8vIE5PVEU6IGJ5IHNldHRpbmcgYHJldHVybkZvY3VzOiBmYWxzZWAsIGRlYWN0aXZhdGUoKSB3aWxsIGRvIG5vdGhpbmcsXG4gICAgICAgIC8vICB3aGljaCB3aWxsIHJlc3VsdCBpbiB0aGUgb3V0c2lkZSBjbGljayBzZXR0aW5nIGZvY3VzIHRvIHRoZSBub2RlXG4gICAgICAgIC8vICB0aGF0IHdhcyBjbGlja2VkLCB3aGV0aGVyIGl0J3MgZm9jdXNhYmxlIG9yIG5vdDsgYnkgc2V0dGluZ1xuICAgICAgICAvLyAgYHJldHVybkZvY3VzOiB0cnVlYCwgd2UnbGwgYXR0ZW1wdCB0byByZS1mb2N1cyB0aGUgbm9kZSBvcmlnaW5hbGx5LWZvY3VzZWRcbiAgICAgICAgLy8gIG9uIGFjdGl2YXRpb24gKG9yIHRoZSBjb25maWd1cmVkIGBzZXRSZXR1cm5Gb2N1c2Agbm9kZSlcbiAgICAgICAgcmV0dXJuRm9jdXM6IGNvbmZpZy5yZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZSAmJiAhaXNGb2N1c2FibGUodGFyZ2V0KVxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgbW9iaWxlIGRldmljZXMuXG4gICAgLy8gKElmIHdlJ2xsIG9ubHkgbGV0IGBjbGlja2AgZXZlbnRzIHRocm91Z2gsXG4gICAgLy8gdGhlbiBvbiBtb2JpbGUgdGhleSB3aWxsIGJlIGJsb2NrZWQgYW55d2F5cyBpZiBgdG91Y2hzdGFydGAgaXMgYmxvY2tlZC4pXG5cblxuICAgIGlmICh2YWx1ZU9ySGFuZGxlcihjb25maWcuYWxsb3dPdXRzaWRlQ2xpY2ssIGUpKSB7XG4gICAgICAvLyBhbGxvdyB0aGUgY2xpY2sgb3V0c2lkZSB0aGUgdHJhcCB0byB0YWtlIHBsYWNlXG4gICAgICByZXR1cm47XG4gICAgfSAvLyBvdGhlcndpc2UsIHByZXZlbnQgdGhlIGNsaWNrXG5cblxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfTsgLy8gSW4gY2FzZSBmb2N1cyBlc2NhcGVzIHRoZSB0cmFwIGZvciBzb21lIHN0cmFuZ2UgcmVhc29uLCBwdWxsIGl0IGJhY2sgaW4uXG5cblxuICB2YXIgY2hlY2tGb2N1c0luID0gZnVuY3Rpb24gY2hlY2tGb2N1c0luKGUpIHtcbiAgICB2YXIgdGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGUpO1xuICAgIHZhciB0YXJnZXRDb250YWluZWQgPSBjb250YWluZXJzQ29udGFpbih0YXJnZXQpOyAvLyBJbiBGaXJlZm94IHdoZW4geW91IFRhYiBvdXQgb2YgYW4gaWZyYW1lIHRoZSBEb2N1bWVudCBpcyBicmllZmx5IGZvY3VzZWQuXG5cbiAgICBpZiAodGFyZ2V0Q29udGFpbmVkIHx8IHRhcmdldCBpbnN0YW5jZW9mIERvY3VtZW50KSB7XG4gICAgICBpZiAodGFyZ2V0Q29udGFpbmVkKSB7XG4gICAgICAgIHN0YXRlLm1vc3RSZWNlbnRseUZvY3VzZWROb2RlID0gdGFyZ2V0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlc2NhcGVkISBwdWxsIGl0IGJhY2sgaW4gdG8gd2hlcmUgaXQganVzdCBsZWZ0XG4gICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgdHJ5Rm9jdXMoc3RhdGUubW9zdFJlY2VudGx5Rm9jdXNlZE5vZGUgfHwgZ2V0SW5pdGlhbEZvY3VzTm9kZSgpKTtcbiAgICB9XG4gIH07IC8vIEhpamFjayBUYWIgZXZlbnRzIG9uIHRoZSBmaXJzdCBhbmQgbGFzdCBmb2N1c2FibGUgbm9kZXMgb2YgdGhlIHRyYXAsXG4gIC8vIGluIG9yZGVyIHRvIHByZXZlbnQgZm9jdXMgZnJvbSBlc2NhcGluZy4gSWYgaXQgZXNjYXBlcyBmb3IgZXZlbiBhXG4gIC8vIG1vbWVudCBpdCBjYW4gZW5kIHVwIHNjcm9sbGluZyB0aGUgcGFnZSBhbmQgY2F1c2luZyBjb25mdXNpb24gc28gd2VcbiAgLy8ga2luZCBvZiBuZWVkIHRvIGNhcHR1cmUgdGhlIGFjdGlvbiBhdCB0aGUga2V5ZG93biBwaGFzZS5cblxuXG4gIHZhciBjaGVja1RhYiA9IGZ1bmN0aW9uIGNoZWNrVGFiKGUpIHtcbiAgICB2YXIgdGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGUpO1xuICAgIHVwZGF0ZVRhYmJhYmxlTm9kZXMoKTtcbiAgICB2YXIgZGVzdGluYXRpb25Ob2RlID0gbnVsbDtcblxuICAgIGlmIChzdGF0ZS50YWJiYWJsZUdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBtYWtlIHN1cmUgdGhlIHRhcmdldCBpcyBhY3R1YWxseSBjb250YWluZWQgaW4gYSBncm91cFxuICAgICAgLy8gTk9URTogdGhlIHRhcmdldCBtYXkgYWxzbyBiZSB0aGUgY29udGFpbmVyIGl0c2VsZiBpZiBpdCdzIGZvY3VzYWJsZVxuICAgICAgLy8gIHdpdGggdGFiSW5kZXg9Jy0xJyBhbmQgd2FzIGdpdmVuIGluaXRpYWwgZm9jdXNcbiAgICAgIHZhciBjb250YWluZXJJbmRleCA9IGZpbmRJbmRleChzdGF0ZS50YWJiYWJsZUdyb3VwcywgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IF9yZWYuY29udGFpbmVyO1xuICAgICAgICByZXR1cm4gY29udGFpbmVyLmNvbnRhaW5zKHRhcmdldCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvbnRhaW5lckluZGV4IDwgMCkge1xuICAgICAgICAvLyB0YXJnZXQgbm90IGZvdW5kIGluIGFueSBncm91cDogcXVpdGUgcG9zc2libGUgZm9jdXMgaGFzIGVzY2FwZWQgdGhlIHRyYXAsXG4gICAgICAgIC8vICBzbyBicmluZyBpdCBiYWNrIGluIHRvLi4uXG4gICAgICAgIGlmIChlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgLy8gLi4udGhlIGxhc3Qgbm9kZSBpbiB0aGUgbGFzdCBncm91cFxuICAgICAgICAgIGRlc3RpbmF0aW9uTm9kZSA9IHN0YXRlLnRhYmJhYmxlR3JvdXBzW3N0YXRlLnRhYmJhYmxlR3JvdXBzLmxlbmd0aCAtIDFdLmxhc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gLi4udGhlIGZpcnN0IG5vZGUgaW4gdGhlIGZpcnN0IGdyb3VwXG4gICAgICAgICAgZGVzdGluYXRpb25Ob2RlID0gc3RhdGUudGFiYmFibGVHcm91cHNbMF0uZmlyc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZS5zaGlmdEtleSkge1xuICAgICAgICAvLyBSRVZFUlNFXG4gICAgICAgIC8vIGlzIHRoZSB0YXJnZXQgdGhlIGZpcnN0IHRhYmJhYmxlIG5vZGUgaW4gYSBncm91cD9cbiAgICAgICAgdmFyIHN0YXJ0T2ZHcm91cEluZGV4ID0gZmluZEluZGV4KHN0YXRlLnRhYmJhYmxlR3JvdXBzLCBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgICB2YXIgZmlyc3RUYWJiYWJsZU5vZGUgPSBfcmVmMi5maXJzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgICByZXR1cm4gdGFyZ2V0ID09PSBmaXJzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHN0YXJ0T2ZHcm91cEluZGV4IDwgMCAmJiAoc3RhdGUudGFiYmFibGVHcm91cHNbY29udGFpbmVySW5kZXhdLmNvbnRhaW5lciA9PT0gdGFyZ2V0IHx8IGlzRm9jdXNhYmxlKHRhcmdldCkgJiYgIWlzVGFiYmFibGUodGFyZ2V0KSkpIHtcbiAgICAgICAgICAvLyBhbiBleGNlcHRpb24gY2FzZSB3aGVyZSB0aGUgdGFyZ2V0IGlzIGVpdGhlciB0aGUgY29udGFpbmVyIGl0c2VsZiwgb3JcbiAgICAgICAgICAvLyAgYSBub24tdGFiYmFibGUgbm9kZSB0aGF0IHdhcyBnaXZlbiBmb2N1cyAoaS5lLiB0YWJpbmRleCBpcyBuZWdhdGl2ZVxuICAgICAgICAgIC8vICBhbmQgdXNlciBjbGlja2VkIG9uIGl0IG9yIG5vZGUgd2FzIHByb2dyYW1tYXRpY2FsbHkgZ2l2ZW4gZm9jdXMpLCBpbiB3aGljaFxuICAgICAgICAgIC8vICBjYXNlLCB3ZSBzaG91bGQgaGFuZGxlIHNoaWZ0K3RhYiBhcyBpZiBmb2N1cyB3ZXJlIG9uIHRoZSBjb250YWluZXInc1xuICAgICAgICAgIC8vICBmaXJzdCB0YWJiYWJsZSBub2RlLCBhbmQgZ28gdG8gdGhlIGxhc3QgdGFiYmFibGUgbm9kZSBvZiB0aGUgTEFTVCBncm91cFxuICAgICAgICAgIHN0YXJ0T2ZHcm91cEluZGV4ID0gY29udGFpbmVySW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhcnRPZkdyb3VwSW5kZXggPj0gMCkge1xuICAgICAgICAgIC8vIFlFUzogdGhlbiBzaGlmdCt0YWIgc2hvdWxkIGdvIHRvIHRoZSBsYXN0IHRhYmJhYmxlIG5vZGUgaW4gdGhlXG4gICAgICAgICAgLy8gIHByZXZpb3VzIGdyb3VwIChhbmQgd3JhcCBhcm91bmQgdG8gdGhlIGxhc3QgdGFiYmFibGUgbm9kZSBvZlxuICAgICAgICAgIC8vICB0aGUgTEFTVCBncm91cCBpZiBpdCdzIHRoZSBmaXJzdCB0YWJiYWJsZSBub2RlIG9mIHRoZSBGSVJTVCBncm91cClcbiAgICAgICAgICB2YXIgZGVzdGluYXRpb25Hcm91cEluZGV4ID0gc3RhcnRPZkdyb3VwSW5kZXggPT09IDAgPyBzdGF0ZS50YWJiYWJsZUdyb3Vwcy5sZW5ndGggLSAxIDogc3RhcnRPZkdyb3VwSW5kZXggLSAxO1xuICAgICAgICAgIHZhciBkZXN0aW5hdGlvbkdyb3VwID0gc3RhdGUudGFiYmFibGVHcm91cHNbZGVzdGluYXRpb25Hcm91cEluZGV4XTtcbiAgICAgICAgICBkZXN0aW5hdGlvbk5vZGUgPSBkZXN0aW5hdGlvbkdyb3VwLmxhc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZPUldBUkRcbiAgICAgICAgLy8gaXMgdGhlIHRhcmdldCB0aGUgbGFzdCB0YWJiYWJsZSBub2RlIGluIGEgZ3JvdXA/XG4gICAgICAgIHZhciBsYXN0T2ZHcm91cEluZGV4ID0gZmluZEluZGV4KHN0YXRlLnRhYmJhYmxlR3JvdXBzLCBmdW5jdGlvbiAoX3JlZjMpIHtcbiAgICAgICAgICB2YXIgbGFzdFRhYmJhYmxlTm9kZSA9IF9yZWYzLmxhc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgICAgcmV0dXJuIHRhcmdldCA9PT0gbGFzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGxhc3RPZkdyb3VwSW5kZXggPCAwICYmIChzdGF0ZS50YWJiYWJsZUdyb3Vwc1tjb250YWluZXJJbmRleF0uY29udGFpbmVyID09PSB0YXJnZXQgfHwgaXNGb2N1c2FibGUodGFyZ2V0KSAmJiAhaXNUYWJiYWJsZSh0YXJnZXQpKSkge1xuICAgICAgICAgIC8vIGFuIGV4Y2VwdGlvbiBjYXNlIHdoZXJlIHRoZSB0YXJnZXQgaXMgdGhlIGNvbnRhaW5lciBpdHNlbGYsIG9yXG4gICAgICAgICAgLy8gIGEgbm9uLXRhYmJhYmxlIG5vZGUgdGhhdCB3YXMgZ2l2ZW4gZm9jdXMgKGkuZS4gdGFiaW5kZXggaXMgbmVnYXRpdmVcbiAgICAgICAgICAvLyAgYW5kIHVzZXIgY2xpY2tlZCBvbiBpdCBvciBub2RlIHdhcyBwcm9ncmFtbWF0aWNhbGx5IGdpdmVuIGZvY3VzKSwgaW4gd2hpY2hcbiAgICAgICAgICAvLyAgY2FzZSwgd2Ugc2hvdWxkIGhhbmRsZSB0YWIgYXMgaWYgZm9jdXMgd2VyZSBvbiB0aGUgY29udGFpbmVyJ3NcbiAgICAgICAgICAvLyAgbGFzdCB0YWJiYWJsZSBub2RlLCBhbmQgZ28gdG8gdGhlIGZpcnN0IHRhYmJhYmxlIG5vZGUgb2YgdGhlIEZJUlNUIGdyb3VwXG4gICAgICAgICAgbGFzdE9mR3JvdXBJbmRleCA9IGNvbnRhaW5lckluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxhc3RPZkdyb3VwSW5kZXggPj0gMCkge1xuICAgICAgICAgIC8vIFlFUzogdGhlbiB0YWIgc2hvdWxkIGdvIHRvIHRoZSBmaXJzdCB0YWJiYWJsZSBub2RlIGluIHRoZSBuZXh0XG4gICAgICAgICAgLy8gIGdyb3VwIChhbmQgd3JhcCBhcm91bmQgdG8gdGhlIGZpcnN0IHRhYmJhYmxlIG5vZGUgb2YgdGhlIEZJUlNUXG4gICAgICAgICAgLy8gIGdyb3VwIGlmIGl0J3MgdGhlIGxhc3QgdGFiYmFibGUgbm9kZSBvZiB0aGUgTEFTVCBncm91cClcbiAgICAgICAgICB2YXIgX2Rlc3RpbmF0aW9uR3JvdXBJbmRleCA9IGxhc3RPZkdyb3VwSW5kZXggPT09IHN0YXRlLnRhYmJhYmxlR3JvdXBzLmxlbmd0aCAtIDEgPyAwIDogbGFzdE9mR3JvdXBJbmRleCArIDE7XG5cbiAgICAgICAgICB2YXIgX2Rlc3RpbmF0aW9uR3JvdXAgPSBzdGF0ZS50YWJiYWJsZUdyb3Vwc1tfZGVzdGluYXRpb25Hcm91cEluZGV4XTtcbiAgICAgICAgICBkZXN0aW5hdGlvbk5vZGUgPSBfZGVzdGluYXRpb25Hcm91cC5maXJzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOT1RFOiB0aGUgZmFsbGJhY2tGb2N1cyBvcHRpb24gZG9lcyBub3Qgc3VwcG9ydCByZXR1cm5pbmcgZmFsc2UgdG8gb3B0LW91dFxuICAgICAgZGVzdGluYXRpb25Ob2RlID0gZ2V0Tm9kZUZvck9wdGlvbignZmFsbGJhY2tGb2N1cycpO1xuICAgIH1cblxuICAgIGlmIChkZXN0aW5hdGlvbk5vZGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRyeUZvY3VzKGRlc3RpbmF0aW9uTm9kZSk7XG4gICAgfSAvLyBlbHNlLCBsZXQgdGhlIGJyb3dzZXIgdGFrZSBjYXJlIG9mIFtzaGlmdCtddGFiIGFuZCBtb3ZlIHRoZSBmb2N1c1xuXG4gIH07XG5cbiAgdmFyIGNoZWNrS2V5ID0gZnVuY3Rpb24gY2hlY2tLZXkoZSkge1xuICAgIGlmIChpc0VzY2FwZUV2ZW50KGUpICYmIHZhbHVlT3JIYW5kbGVyKGNvbmZpZy5lc2NhcGVEZWFjdGl2YXRlcywgZSkgIT09IGZhbHNlKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0cmFwLmRlYWN0aXZhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNUYWJFdmVudChlKSkge1xuICAgICAgY2hlY2tUYWIoZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIHZhciBjaGVja0NsaWNrID0gZnVuY3Rpb24gY2hlY2tDbGljayhlKSB7XG4gICAgaWYgKHZhbHVlT3JIYW5kbGVyKGNvbmZpZy5jbGlja091dHNpZGVEZWFjdGl2YXRlcywgZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGUpO1xuXG4gICAgaWYgKGNvbnRhaW5lcnNDb250YWluKHRhcmdldCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWVPckhhbmRsZXIoY29uZmlnLmFsbG93T3V0c2lkZUNsaWNrLCBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICB9OyAvL1xuICAvLyBFVkVOVCBMSVNURU5FUlNcbiAgLy9cblxuXG4gIHZhciBhZGRMaXN0ZW5lcnMgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKCFzdGF0ZS5hY3RpdmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSBsaXN0ZW5pbmcgZm9jdXMgdHJhcCBhdCBhIHRpbWVcblxuXG4gICAgYWN0aXZlRm9jdXNUcmFwcy5hY3RpdmF0ZVRyYXAodHJhcCk7IC8vIERlbGF5IGVuc3VyZXMgdGhhdCB0aGUgZm9jdXNlZCBlbGVtZW50IGRvZXNuJ3QgY2FwdHVyZSB0aGUgZXZlbnRcbiAgICAvLyB0aGF0IGNhdXNlZCB0aGUgZm9jdXMgdHJhcCBhY3RpdmF0aW9uLlxuXG4gICAgc3RhdGUuZGVsYXlJbml0aWFsRm9jdXNUaW1lciA9IGNvbmZpZy5kZWxheUluaXRpYWxGb2N1cyA/IGRlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyeUZvY3VzKGdldEluaXRpYWxGb2N1c05vZGUoKSk7XG4gICAgfSkgOiB0cnlGb2N1cyhnZXRJbml0aWFsRm9jdXNOb2RlKCkpO1xuICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgY2hlY2tGb2N1c0luLCB0cnVlKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgY2hlY2tQb2ludGVyRG93biwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgfSk7XG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBjaGVja1BvaW50ZXJEb3duLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjaGVja0NsaWNrLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGNoZWNrS2V5LCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gdHJhcDtcbiAgfTtcblxuICB2YXIgcmVtb3ZlTGlzdGVuZXJzID0gZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgIGlmICghc3RhdGUuYWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBjaGVja0ZvY3VzSW4sIHRydWUpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBjaGVja1BvaW50ZXJEb3duLCB0cnVlKTtcbiAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGNoZWNrUG9pbnRlckRvd24sIHRydWUpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGNoZWNrQ2xpY2ssIHRydWUpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgY2hlY2tLZXksIHRydWUpO1xuICAgIHJldHVybiB0cmFwO1xuICB9OyAvL1xuICAvLyBUUkFQIERFRklOSVRJT05cbiAgLy9cblxuXG4gIHRyYXAgPSB7XG4gICAgYWN0aXZhdGU6IGZ1bmN0aW9uIGFjdGl2YXRlKGFjdGl2YXRlT3B0aW9ucykge1xuICAgICAgaWYgKHN0YXRlLmFjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgdmFyIG9uQWN0aXZhdGUgPSBnZXRPcHRpb24oYWN0aXZhdGVPcHRpb25zLCAnb25BY3RpdmF0ZScpO1xuICAgICAgdmFyIG9uUG9zdEFjdGl2YXRlID0gZ2V0T3B0aW9uKGFjdGl2YXRlT3B0aW9ucywgJ29uUG9zdEFjdGl2YXRlJyk7XG4gICAgICB2YXIgY2hlY2tDYW5Gb2N1c1RyYXAgPSBnZXRPcHRpb24oYWN0aXZhdGVPcHRpb25zLCAnY2hlY2tDYW5Gb2N1c1RyYXAnKTtcblxuICAgICAgaWYgKCFjaGVja0NhbkZvY3VzVHJhcCkge1xuICAgICAgICB1cGRhdGVUYWJiYWJsZU5vZGVzKCk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLmFjdGl2ZSA9IHRydWU7XG4gICAgICBzdGF0ZS5wYXVzZWQgPSBmYWxzZTtcbiAgICAgIHN0YXRlLm5vZGVGb2N1c2VkQmVmb3JlQWN0aXZhdGlvbiA9IGRvYy5hY3RpdmVFbGVtZW50O1xuXG4gICAgICBpZiAob25BY3RpdmF0ZSkge1xuICAgICAgICBvbkFjdGl2YXRlKCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBmaW5pc2hBY3RpdmF0aW9uID0gZnVuY3Rpb24gZmluaXNoQWN0aXZhdGlvbigpIHtcbiAgICAgICAgaWYgKGNoZWNrQ2FuRm9jdXNUcmFwKSB7XG4gICAgICAgICAgdXBkYXRlVGFiYmFibGVOb2RlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgYWRkTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKG9uUG9zdEFjdGl2YXRlKSB7XG4gICAgICAgICAgb25Qb3N0QWN0aXZhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgaWYgKGNoZWNrQ2FuRm9jdXNUcmFwKSB7XG4gICAgICAgIGNoZWNrQ2FuRm9jdXNUcmFwKHN0YXRlLmNvbnRhaW5lcnMuY29uY2F0KCkpLnRoZW4oZmluaXNoQWN0aXZhdGlvbiwgZmluaXNoQWN0aXZhdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBmaW5pc2hBY3RpdmF0aW9uKCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGRlYWN0aXZhdGU6IGZ1bmN0aW9uIGRlYWN0aXZhdGUoZGVhY3RpdmF0ZU9wdGlvbnMpIHtcbiAgICAgIGlmICghc3RhdGUuYWN0aXZlKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBjbGVhclRpbWVvdXQoc3RhdGUuZGVsYXlJbml0aWFsRm9jdXNUaW1lcik7IC8vIG5vb3AgaWYgdW5kZWZpbmVkXG5cbiAgICAgIHN0YXRlLmRlbGF5SW5pdGlhbEZvY3VzVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICByZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgIHN0YXRlLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgc3RhdGUucGF1c2VkID0gZmFsc2U7XG4gICAgICBhY3RpdmVGb2N1c1RyYXBzLmRlYWN0aXZhdGVUcmFwKHRyYXApO1xuICAgICAgdmFyIG9uRGVhY3RpdmF0ZSA9IGdldE9wdGlvbihkZWFjdGl2YXRlT3B0aW9ucywgJ29uRGVhY3RpdmF0ZScpO1xuICAgICAgdmFyIG9uUG9zdERlYWN0aXZhdGUgPSBnZXRPcHRpb24oZGVhY3RpdmF0ZU9wdGlvbnMsICdvblBvc3REZWFjdGl2YXRlJyk7XG4gICAgICB2YXIgY2hlY2tDYW5SZXR1cm5Gb2N1cyA9IGdldE9wdGlvbihkZWFjdGl2YXRlT3B0aW9ucywgJ2NoZWNrQ2FuUmV0dXJuRm9jdXMnKTtcblxuICAgICAgaWYgKG9uRGVhY3RpdmF0ZSkge1xuICAgICAgICBvbkRlYWN0aXZhdGUoKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJldHVybkZvY3VzID0gZ2V0T3B0aW9uKGRlYWN0aXZhdGVPcHRpb25zLCAncmV0dXJuRm9jdXMnLCAncmV0dXJuRm9jdXNPbkRlYWN0aXZhdGUnKTtcblxuICAgICAgdmFyIGZpbmlzaERlYWN0aXZhdGlvbiA9IGZ1bmN0aW9uIGZpbmlzaERlYWN0aXZhdGlvbigpIHtcbiAgICAgICAgZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChyZXR1cm5Gb2N1cykge1xuICAgICAgICAgICAgdHJ5Rm9jdXMoZ2V0UmV0dXJuRm9jdXNOb2RlKHN0YXRlLm5vZGVGb2N1c2VkQmVmb3JlQWN0aXZhdGlvbikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvblBvc3REZWFjdGl2YXRlKSB7XG4gICAgICAgICAgICBvblBvc3REZWFjdGl2YXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXR1cm5Gb2N1cyAmJiBjaGVja0NhblJldHVybkZvY3VzKSB7XG4gICAgICAgIGNoZWNrQ2FuUmV0dXJuRm9jdXMoZ2V0UmV0dXJuRm9jdXNOb2RlKHN0YXRlLm5vZGVGb2N1c2VkQmVmb3JlQWN0aXZhdGlvbikpLnRoZW4oZmluaXNoRGVhY3RpdmF0aW9uLCBmaW5pc2hEZWFjdGl2YXRpb24pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgZmluaXNoRGVhY3RpdmF0aW9uKCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHBhdXNlOiBmdW5jdGlvbiBwYXVzZSgpIHtcbiAgICAgIGlmIChzdGF0ZS5wYXVzZWQgfHwgIXN0YXRlLmFjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgc3RhdGUucGF1c2VkID0gdHJ1ZTtcbiAgICAgIHJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICB1bnBhdXNlOiBmdW5jdGlvbiB1bnBhdXNlKCkge1xuICAgICAgaWYgKCFzdGF0ZS5wYXVzZWQgfHwgIXN0YXRlLmFjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgc3RhdGUucGF1c2VkID0gZmFsc2U7XG4gICAgICB1cGRhdGVUYWJiYWJsZU5vZGVzKCk7XG4gICAgICBhZGRMaXN0ZW5lcnMoKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgdXBkYXRlQ29udGFpbmVyRWxlbWVudHM6IGZ1bmN0aW9uIHVwZGF0ZUNvbnRhaW5lckVsZW1lbnRzKGNvbnRhaW5lckVsZW1lbnRzKSB7XG4gICAgICB2YXIgZWxlbWVudHNBc0FycmF5ID0gW10uY29uY2F0KGNvbnRhaW5lckVsZW1lbnRzKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICBzdGF0ZS5jb250YWluZXJzID0gZWxlbWVudHNBc0FycmF5Lm1hcChmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnID8gZG9jLnF1ZXJ5U2VsZWN0b3IoZWxlbWVudCkgOiBlbGVtZW50O1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChzdGF0ZS5hY3RpdmUpIHtcbiAgICAgICAgdXBkYXRlVGFiYmFibGVOb2RlcygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH07IC8vIGluaXRpYWxpemUgY29udGFpbmVyIGVsZW1lbnRzXG5cbiAgdHJhcC51cGRhdGVDb250YWluZXJFbGVtZW50cyhlbGVtZW50cyk7XG4gIHJldHVybiB0cmFwO1xufTtcblxuZXhwb3J0IHsgY3JlYXRlRm9jdXNUcmFwIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb2N1cy10cmFwLmVzbS5qcy5tYXBcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IHJldHVybiBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfSwgX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFwicHJvdG90eXBlXCIsIHsgd3JpdGFibGU6IGZhbHNlIH0pOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN1YkNsYXNzLCBcInByb3RvdHlwZVwiLCB7IHdyaXRhYmxlOiBmYWxzZSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSBlbHNlIGlmIChjYWxsICE9PSB2b2lkIDApIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgUmVhY3RET00gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcblxudmFyIFByb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnZm9jdXMtdHJhcCcpLFxuICAgIGNyZWF0ZUZvY3VzVHJhcCA9IF9yZXF1aXJlLmNyZWF0ZUZvY3VzVHJhcDsgLy8gVE9ETzogVGhlc2UgaXNzdWVzIGFyZSByZWxhdGVkIHRvIG9sZGVyIFJlYWN0IGZlYXR1cmVzIHdoaWNoIHdlJ2xsIGxpa2VseSBuZWVkXG4vLyAgdG8gZml4IGluIG9yZGVyIHRvIG1vdmUgdGhlIGNvZGUgZm9yd2FyZCB0byB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIFJlYWN0LlxuLy8gIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2RhdmlkdGhlY2xhcmsvZm9jdXMtdHJhcC1yZWFjdC9pc3N1ZXMvNzdcblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tZmluZC1kb20tbm9kZSAqL1xuXG5cbnZhciBGb2N1c1RyYXAgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEZvY3VzVHJhcCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihGb2N1c1RyYXApO1xuXG4gIGZ1bmN0aW9uIEZvY3VzVHJhcChwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBGb2N1c1RyYXApO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7IC8vIFdlIG5lZWQgdG8gaGlqYWNrIHRoZSByZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZSBvcHRpb24sXG4gICAgLy8gYmVjYXVzZSBSZWFjdCBjYW4gbW92ZSBmb2N1cyBpbnRvIHRoZSBlbGVtZW50IGJlZm9yZSB3ZSBhcnJpdmVkIGF0XG4gICAgLy8gdGhpcyBsaWZlY3ljbGUgaG9vayAoZS5nLiB3aXRoIGF1dG9Gb2N1cyBpbnB1dHMpLiBTbyB0aGUgY29tcG9uZW50XG4gICAgLy8gY2FwdHVyZXMgdGhlIHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCBpbiBjb21wb25lbnRXaWxsTW91bnQsXG4gICAgLy8gdGhlbiAob3B0aW9uYWxseSkgcmV0dXJucyBmb2N1cyB0byBpdCBpbiBjb21wb25lbnRXaWxsVW5tb3VudC5cblxuICAgIF90aGlzLnRhaWxvcmVkRm9jdXNUcmFwT3B0aW9ucyA9IHtcbiAgICAgIHJldHVybkZvY3VzT25EZWFjdGl2YXRlOiBmYWxzZVxuICAgIH07IC8vIGJlY2F1c2Ugb2YgdGhlIGFib3ZlLCB3ZSBtYWludGFpbiBvdXIgb3duIGZsYWcgZm9yIHRoaXMgb3B0aW9uLCBhbmRcbiAgICAvLyAgZGVmYXVsdCBpdCB0byBgdHJ1ZWAgYmVjYXVzZSB0aGF0J3MgZm9jdXMtdHJhcCdzIGRlZmF1bHRcblxuICAgIF90aGlzLnJldHVybkZvY3VzT25EZWFjdGl2YXRlID0gdHJ1ZTtcbiAgICB2YXIgZm9jdXNUcmFwT3B0aW9ucyA9IHByb3BzLmZvY3VzVHJhcE9wdGlvbnM7XG5cbiAgICBmb3IgKHZhciBvcHRpb25OYW1lIGluIGZvY3VzVHJhcE9wdGlvbnMpIHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvY3VzVHJhcE9wdGlvbnMsIG9wdGlvbk5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uTmFtZSA9PT0gJ3JldHVybkZvY3VzT25EZWFjdGl2YXRlJykge1xuICAgICAgICBfdGhpcy5yZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZSA9ICEhZm9jdXNUcmFwT3B0aW9uc1tvcHRpb25OYW1lXTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25OYW1lID09PSAnb25Qb3N0RGVhY3RpdmF0ZScpIHtcbiAgICAgICAgX3RoaXMub25Qb3N0RGVhY3RpdmF0ZSA9IGZvY3VzVHJhcE9wdGlvbnNbb3B0aW9uTmFtZV07XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy50YWlsb3JlZEZvY3VzVHJhcE9wdGlvbnNbb3B0aW9uTmFtZV0gPSBmb2N1c1RyYXBPcHRpb25zW29wdGlvbk5hbWVdO1xuICAgIH0gLy8gZWxlbWVudHMgZnJvbSB3aGljaCB0byBjcmVhdGUgdGhlIGZvY3VzIHRyYXAgb24gbW91bnQ7IGlmIGEgY2hpbGQgaXMgdXNlZFxuICAgIC8vICBpbnN0ZWFkIG9mIHRoZSBgY29udGFpbmVyRWxlbWVudHNgIHByb3AsIHdlJ2xsIGdldCB0aGUgY2hpbGQncyByZWxhdGVkXG4gICAgLy8gIGVsZW1lbnQgd2hlbiB0aGUgdHJhcCByZW5kZXJzIGFuZCB0aGVuIGlzIGRlY2xhcmVkICdtb3VudGVkJ1xuXG5cbiAgICBfdGhpcy5mb2N1c1RyYXBFbGVtZW50cyA9IHByb3BzLmNvbnRhaW5lckVsZW1lbnRzIHx8IFtdOyAvLyBub3cgd2UgcmVtZW1iZXIgd2hhdCB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCBpcywgbm90IHJlbHlpbmcgb24gZm9jdXMtdHJhcFxuXG4gICAgX3RoaXMudXBkYXRlUHJldmlvdXNFbGVtZW50KCk7XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgdGhlIGNvbmZpZ3VyZWQgZG9jdW1lbnQuXG4gICAqIEByZXR1cm5zIHtEb2N1bWVudHx1bmRlZmluZWR9IENvbmZpZ3VyZWQgZG9jdW1lbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgbWFpblxuICAgKiAgZG9jdW1lbnQsIGlmIGl0IGV4aXN0cy4gRHVyaW5nIFNTUiwgYHVuZGVmaW5lZGAgaXMgcmV0dXJuZWQgc2luY2UgdGhlXG4gICAqICBkb2N1bWVudCBkb2Vzbid0IGV4aXN0LlxuICAgKi9cblxuXG4gIF9jcmVhdGVDbGFzcyhGb2N1c1RyYXAsIFt7XG4gICAga2V5OiBcImdldERvY3VtZW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERvY3VtZW50KCkge1xuICAgICAgLy8gU1NSOiBjYXJlZnVsIHRvIGNoZWNrIGlmIGBkb2N1bWVudGAgZXhpc3RzIGJlZm9yZSBhY2Nlc3NpbmcgaXQgYXMgYSB2YXJpYWJsZVxuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuZm9jdXNUcmFwT3B0aW9ucy5kb2N1bWVudCB8fCAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDogdW5kZWZpbmVkKTtcbiAgICB9IC8vIFRPRE86IE5lZWQgbW9yZSB0ZXN0IGNvdmVyYWdlIGZvciB0aGlzIGZ1bmN0aW9uXG5cbiAgfSwge1xuICAgIGtleTogXCJnZXROb2RlRm9yT3B0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldE5vZGVGb3JPcHRpb24ob3B0aW9uTmFtZSkge1xuICAgICAgdmFyIG9wdGlvblZhbHVlID0gdGhpcy50YWlsb3JlZEZvY3VzVHJhcE9wdGlvbnNbb3B0aW9uTmFtZV07XG5cbiAgICAgIGlmICghb3B0aW9uVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHZhciBub2RlID0gb3B0aW9uVmFsdWU7XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBfdGhpcyRnZXREb2N1bWVudDtcblxuICAgICAgICBub2RlID0gKF90aGlzJGdldERvY3VtZW50ID0gdGhpcy5nZXREb2N1bWVudCgpKSA9PT0gbnVsbCB8fCBfdGhpcyRnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkZ2V0RG9jdW1lbnQucXVlcnlTZWxlY3RvcihvcHRpb25WYWx1ZSk7XG5cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgcmVmZXJzIHRvIG5vIGtub3duIG5vZGVcIikpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgbm9kZSA9IG9wdGlvblZhbHVlKCk7XG5cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgZGlkIG5vdCByZXR1cm4gYSBub2RlXCIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UmV0dXJuRm9jdXNOb2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJldHVybkZvY3VzTm9kZSgpIHtcbiAgICAgIHZhciBub2RlID0gdGhpcy5nZXROb2RlRm9yT3B0aW9uKCdzZXRSZXR1cm5Gb2N1cycpO1xuICAgICAgcmV0dXJuIG5vZGUgPyBub2RlIDogdGhpcy5wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ7XG4gICAgfVxuICAgIC8qKiBVcGRhdGUgdGhlIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50IHdpdGggdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQuICovXG5cbiAgfSwge1xuICAgIGtleTogXCJ1cGRhdGVQcmV2aW91c0VsZW1lbnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdXBkYXRlUHJldmlvdXNFbGVtZW50KCkge1xuICAgICAgdmFyIGN1cnJlbnREb2N1bWVudCA9IHRoaXMuZ2V0RG9jdW1lbnQoKTtcblxuICAgICAgaWYgKGN1cnJlbnREb2N1bWVudCkge1xuICAgICAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGN1cnJlbnREb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZWFjdGl2YXRlVHJhcFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkZWFjdGl2YXRlVHJhcCgpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgX3RoaXMkdGFpbG9yZWRGb2N1c1RyID0gdGhpcy50YWlsb3JlZEZvY3VzVHJhcE9wdGlvbnMsXG4gICAgICAgICAgY2hlY2tDYW5SZXR1cm5Gb2N1cyA9IF90aGlzJHRhaWxvcmVkRm9jdXNUci5jaGVja0NhblJldHVybkZvY3VzLFxuICAgICAgICAgIF90aGlzJHRhaWxvcmVkRm9jdXNUcjIgPSBfdGhpcyR0YWlsb3JlZEZvY3VzVHIucHJldmVudFNjcm9sbCxcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsID0gX3RoaXMkdGFpbG9yZWRGb2N1c1RyMiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfdGhpcyR0YWlsb3JlZEZvY3VzVHIyO1xuXG4gICAgICBpZiAodGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgLy8gTk9URTogd2UgbmV2ZXIgbGV0IHRoZSB0cmFwIHJldHVybiB0aGUgZm9jdXMgc2luY2Ugd2UgZG8gdGhhdCBvdXJzZWx2ZXNcbiAgICAgICAgdGhpcy5mb2N1c1RyYXAuZGVhY3RpdmF0ZSh7XG4gICAgICAgICAgcmV0dXJuRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB2YXIgZmluaXNoRGVhY3RpdmF0aW9uID0gZnVuY3Rpb24gZmluaXNoRGVhY3RpdmF0aW9uKCkge1xuICAgICAgICB2YXIgcmV0dXJuRm9jdXNOb2RlID0gX3RoaXMyLmdldFJldHVybkZvY3VzTm9kZSgpO1xuXG4gICAgICAgIHZhciBjYW5SZXR1cm5Gb2N1cyA9IChyZXR1cm5Gb2N1c05vZGUgPT09IG51bGwgfHwgcmV0dXJuRm9jdXNOb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXR1cm5Gb2N1c05vZGUuZm9jdXMpICYmIF90aGlzMi5yZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZTtcblxuICAgICAgICBpZiAoY2FuUmV0dXJuRm9jdXMpIHtcbiAgICAgICAgICAvKiogUmV0dXJucyBmb2N1cyB0byB0aGUgZWxlbWVudCB0aGF0IGhhZCBmb2N1cyB3aGVuIHRoZSB0cmFwIHdhcyBhY3RpdmF0ZWQuICovXG4gICAgICAgICAgcmV0dXJuRm9jdXNOb2RlLmZvY3VzKHtcbiAgICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHByZXZlbnRTY3JvbGxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdGhpczIub25Qb3N0RGVhY3RpdmF0ZSkge1xuICAgICAgICAgIF90aGlzMi5vblBvc3REZWFjdGl2YXRlLmNhbGwobnVsbCk7IC8vIGRvbid0IGNhbGwgaXQgaW4gY29udGV4dCBvZiBcInRoaXNcIlxuXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmIChjaGVja0NhblJldHVybkZvY3VzKSB7XG4gICAgICAgIGNoZWNrQ2FuUmV0dXJuRm9jdXModGhpcy5nZXRSZXR1cm5Gb2N1c05vZGUoKSkudGhlbihmaW5pc2hEZWFjdGl2YXRpb24sIGZpbmlzaERlYWN0aXZhdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaW5pc2hEZWFjdGl2YXRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2V0dXBGb2N1c1RyYXBcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0dXBGb2N1c1RyYXAoKSB7XG4gICAgICBpZiAoIXRoaXMuZm9jdXNUcmFwKSB7XG4gICAgICAgIHZhciBmb2N1c1RyYXBFbGVtZW50RE9NTm9kZXMgPSB0aGlzLmZvY3VzVHJhcEVsZW1lbnRzLm1hcCggLy8gTk9URTogYGZpbmRET01Ob2RlKClgIGRvZXMgbm90IHN1cHBvcnQgQ1NTIHNlbGVjdG9yczsgaXQnbGwganVzdCByZXR1cm5cbiAgICAgICAgLy8gIGEgbmV3IHRleHQgbm9kZSB3aXRoIHRoZSB0ZXh0IHdyYXBwZWQgaW4gaXQgaW5zdGVhZCBvZiB0cmVhdGluZyB0aGVcbiAgICAgICAgLy8gIHN0cmluZyBhcyBhIHNlbGVjdG9yIGFuZCByZXNvbHZpbmcgaXQgdG8gYSBub2RlIGluIHRoZSBET01cbiAgICAgICAgUmVhY3RET00uZmluZERPTU5vZGUpO1xuICAgICAgICB2YXIgbm9kZXNFeGlzdCA9IGZvY3VzVHJhcEVsZW1lbnRET01Ob2Rlcy5zb21lKEJvb2xlYW4pO1xuXG4gICAgICAgIGlmIChub2Rlc0V4aXN0KSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXMgLS0gX2NyZWF0ZUZvY3VzVHJhcCBpcyBhbiBpbnRlcm5hbCBwcm9wXG4gICAgICAgICAgdGhpcy5mb2N1c1RyYXAgPSB0aGlzLnByb3BzLl9jcmVhdGVGb2N1c1RyYXAoZm9jdXNUcmFwRWxlbWVudERPTU5vZGVzLCB0aGlzLnRhaWxvcmVkRm9jdXNUcmFwT3B0aW9ucyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLmFjdGl2YXRlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5wYXVzZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmFjdGl2ZSkge1xuICAgICAgICB0aGlzLnNldHVwRm9jdXNUcmFwKCk7XG4gICAgICB9IC8vIGVsc2UsIHdhaXQgZm9yIGxhdGVyIGFjdGl2YXRpb24gaW4gY2FzZSB0aGUgYGZvY3VzVHJhcE9wdGlvbnNgIHdpbGwgYmUgdXBkYXRlZFxuICAgICAgLy8gIGFnYWluIGJlZm9yZSB0aGUgdHJhcCBpcyBhY3RpdmF0ZWQgKGUuZy4gaWYgd2FpdGluZyB0byBrbm93IHdoYXQgdGhlIGRvY3VtZW50XG4gICAgICAvLyAgb2JqZWN0IHdpbGwgYmUsIHNvIHRoZSBUcmFwIG11c3QgYmUgcmVuZGVyZWQsIGJ1dCB0aGUgY29uc3VtZXIgaXMgd2FpdGluZyB0b1xuICAgICAgLy8gIGFjdGl2YXRlIHVudGlsIHRoZXkgaGF2ZSBvYnRhaW5lZCB0aGUgZG9jdW1lbnQgZnJvbSBhIHJlZilcbiAgICAgIC8vICBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb2N1cy10cmFwL2ZvY3VzLXRyYXAtcmVhY3QvaXNzdWVzLzUzOVxuXG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAodGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgaWYgKHByZXZQcm9wcy5jb250YWluZXJFbGVtZW50cyAhPT0gdGhpcy5wcm9wcy5jb250YWluZXJFbGVtZW50cykge1xuICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLnVwZGF0ZUNvbnRhaW5lckVsZW1lbnRzKHRoaXMucHJvcHMuY29udGFpbmVyRWxlbWVudHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhc0FjdGl2YXRlZCA9ICFwcmV2UHJvcHMuYWN0aXZlICYmIHRoaXMucHJvcHMuYWN0aXZlO1xuICAgICAgICB2YXIgaGFzRGVhY3RpdmF0ZWQgPSBwcmV2UHJvcHMuYWN0aXZlICYmICF0aGlzLnByb3BzLmFjdGl2ZTtcbiAgICAgICAgdmFyIGhhc1BhdXNlZCA9ICFwcmV2UHJvcHMucGF1c2VkICYmIHRoaXMucHJvcHMucGF1c2VkO1xuICAgICAgICB2YXIgaGFzVW5wYXVzZWQgPSBwcmV2UHJvcHMucGF1c2VkICYmICF0aGlzLnByb3BzLnBhdXNlZDtcblxuICAgICAgICBpZiAoaGFzQWN0aXZhdGVkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVQcmV2aW91c0VsZW1lbnQoKTtcbiAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5hY3RpdmF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0RlYWN0aXZhdGVkKSB7XG4gICAgICAgICAgdGhpcy5kZWFjdGl2YXRlVHJhcCgpO1xuICAgICAgICAgIHJldHVybjsgLy8gdW4vcGF1c2UgZG9lcyBub3RoaW5nIG9uIGFuIGluYWN0aXZlIHRyYXBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNQYXVzZWQpIHtcbiAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5wYXVzZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc1VucGF1c2VkKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c1RyYXAudW5wYXVzZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOT1RFOiBpZiB3ZSdyZSBpbiBgY29tcG9uZW50RGlkVXBkYXRlYCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIHRyYXAgeWV0LFxuICAgICAgICAvLyAgaXQgZWl0aGVyIG1lYW5zIGl0IHNob3VsZG4ndCBiZSBhY3RpdmUsIG9yIGl0IHNob3VsZCBiZSBidXQgbm9uZSBvZlxuICAgICAgICAvLyAgb2YgZ2l2ZW4gYGNvbnRhaW5lckVsZW1lbnRzYCB3ZXJlIHByZXNlbnQgaW4gdGhlIERPTSB0aGUgbGFzdCB0aW1lXG4gICAgICAgIC8vICB3ZSB0cmllZCB0byBjcmVhdGUgdGhlIHRyYXBcbiAgICAgICAgaWYgKHByZXZQcm9wcy5jb250YWluZXJFbGVtZW50cyAhPT0gdGhpcy5wcm9wcy5jb250YWluZXJFbGVtZW50cykge1xuICAgICAgICAgIHRoaXMuZm9jdXNUcmFwRWxlbWVudHMgPSB0aGlzLnByb3BzLmNvbnRhaW5lckVsZW1lbnRzO1xuICAgICAgICB9IC8vIGRvbid0IGNyZWF0ZSB0aGUgdHJhcCB1bmxlc3MgaXQgc2hvdWxkIGJlIGFjdGl2ZSBpbiBjYXNlIHRoZSBjb25zdW1lclxuICAgICAgICAvLyAgaXMgc3RpbGwgdXBkYXRpbmcgYGZvY3VzVHJhcE9wdGlvbnNgXG4gICAgICAgIC8vICBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb2N1cy10cmFwL2ZvY3VzLXRyYXAtcmVhY3QvaXNzdWVzLzUzOVxuXG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYWN0aXZlKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVQcmV2aW91c0VsZW1lbnQoKTtcbiAgICAgICAgICB0aGlzLnNldHVwRm9jdXNUcmFwKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGVUcmFwKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgdmFyIGNoaWxkID0gdGhpcy5wcm9wcy5jaGlsZHJlbiA/IFJlYWN0LkNoaWxkcmVuLm9ubHkodGhpcy5wcm9wcy5jaGlsZHJlbikgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQudHlwZSAmJiBjaGlsZC50eXBlID09PSBSZWFjdC5GcmFnbWVudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBmb2N1cy10cmFwIGNhbm5vdCB1c2UgYSBGcmFnbWVudCBhcyBpdHMgY2hpbGQgY29udGFpbmVyLiBUcnkgcmVwbGFjaW5nIGl0IHdpdGggYSA8ZGl2PiBlbGVtZW50LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNvbXBvc2VkUmVmQ2FsbGJhY2sgPSBmdW5jdGlvbiBjb21wb3NlZFJlZkNhbGxiYWNrKGVsZW1lbnQpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVyRWxlbWVudHMgPSBfdGhpczMucHJvcHMuY29udGFpbmVyRWxlbWVudHM7XG5cbiAgICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGQucmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlZihlbGVtZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQucmVmKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlZi5jdXJyZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfdGhpczMuZm9jdXNUcmFwRWxlbWVudHMgPSBjb250YWluZXJFbGVtZW50cyA/IGNvbnRhaW5lckVsZW1lbnRzIDogW2VsZW1lbnRdO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBjaGlsZFdpdGhSZWYgPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICByZWY6IGNvbXBvc2VkUmVmQ2FsbGJhY2tcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjaGlsZFdpdGhSZWY7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBGb2N1c1RyYXA7XG59KFJlYWN0LkNvbXBvbmVudCk7IC8vIHN1cHBvcnQgc2VydmVyLXNpZGUgcmVuZGVyaW5nIHdoZXJlIGBFbGVtZW50YCB3aWxsIG5vdCBiZSBkZWZpbmVkXG5cblxudmFyIEVsZW1lbnRUeXBlID0gdHlwZW9mIEVsZW1lbnQgPT09ICd1bmRlZmluZWQnID8gRnVuY3Rpb24gOiBFbGVtZW50O1xuRm9jdXNUcmFwLnByb3BUeXBlcyA9IHtcbiAgYWN0aXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgcGF1c2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZm9jdXNUcmFwT3B0aW9uczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBkb2N1bWVudDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkFjdGl2YXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblBvc3RBY3RpdmF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2hlY2tDYW5Gb2N1c1RyYXA6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGVhY3RpdmF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25Qb3N0RGVhY3RpdmF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2hlY2tDYW5SZXR1cm5Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaW5pdGlhbEZvY3VzOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuaW5zdGFuY2VPZihFbGVtZW50VHlwZSksIFByb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMuYm9vbF0pLFxuICAgIGZhbGxiYWNrRm9jdXM6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5pbnN0YW5jZU9mKEVsZW1lbnRUeXBlKSwgUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgICBlc2NhcGVEZWFjdGl2YXRlczogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ib29sLCBQcm9wVHlwZXMuZnVuY10pLFxuICAgIHJldHVybkZvY3VzT25EZWFjdGl2YXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzZXRSZXR1cm5Gb2N1czogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmluc3RhbmNlT2YoRWxlbWVudFR5cGUpLCBQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZnVuY10pLFxuICAgIGFsbG93T3V0c2lkZUNsaWNrOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYm9vbCwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgICBwcmV2ZW50U2Nyb2xsOiBQcm9wVHlwZXMuYm9vbFxuICB9KSxcbiAgY29udGFpbmVyRWxlbWVudHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5pbnN0YW5jZU9mKEVsZW1lbnRUeXBlKSksXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuZWxlbWVudCwgLy8gUmVhY3QgZWxlbWVudFxuICBQcm9wVHlwZXMuaW5zdGFuY2VPZihFbGVtZW50VHlwZSkgLy8gRE9NIGVsZW1lbnRcbiAgXSkgLy8gTk9URTogX2NyZWF0ZUZvY3VzVHJhcCBpcyBpbnRlcm5hbCwgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSwgc28gd2UgZG9uJ3RcbiAgLy8gIHNwZWNpZnkgaXQgaGVyZS4gSXQncyBleHBlY3RlZCB0byBiZSBzZXQgdG8gdGhlIGZ1bmN0aW9uIHJldHVybmVkIGZyb21cbiAgLy8gIHJlcXVpcmUoJ2ZvY3VzLXRyYXAnKSwgb3Igb25lIHdpdGggYSBjb21wYXRpYmxlIGludGVyZmFjZS5cblxufTtcbkZvY3VzVHJhcC5kZWZhdWx0UHJvcHMgPSB7XG4gIGFjdGl2ZTogdHJ1ZSxcbiAgcGF1c2VkOiBmYWxzZSxcbiAgZm9jdXNUcmFwT3B0aW9uczoge30sXG4gIF9jcmVhdGVGb2N1c1RyYXA6IGNyZWF0ZUZvY3VzVHJhcFxufTtcbm1vZHVsZS5leHBvcnRzID0gRm9jdXNUcmFwOyIsImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuLy8gUGFyYW1ldGVyIGlzIHRoZSBib29sZWFuLCB3aXRoIGRlZmF1bHQgXCJmYWxzZVwiIHZhbHVlXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVRvZ2dsZShpbml0aWFsU3RhdGUgPSBmYWxzZSk6IFtib29sZWFuLCAobmV4dFN0YXRlPzogYm9vbGVhbikgPT4gdm9pZF0ge1xyXG4gIC8vIEluaXRpYWxpemUgdGhlIHN0YXRlXHJcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZShpbml0aWFsU3RhdGUpO1xyXG5cclxuICAvLyBEZWZpbmUgYW5kIG1lbW9yaXplIHRvZ2dsZXIgZnVuY3Rpb24gaW4gY2FzZSB3ZSBwYXNzIGRvd24gdGhlIGNvbW9wbmVudCxcclxuICAvLyBUaGlzIGZ1bmN0aW9uIGNoYW5nZSB0aGUgYm9vbGVhbiB2YWx1ZSB0byBpdCdzIG9wcG9zaXRlIHZhbHVlXHJcbiAgY29uc3QgdG9nZ2xlID0gdXNlQ2FsbGJhY2soKG5leHRTdGF0ZT86IGJvb2xlYW4pID0+IHtcclxuICAgIGlmIChuZXh0U3RhdGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzZXRTdGF0ZShuZXh0U3RhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0U3RhdGUoKHN0YXRlKSA9PiAhc3RhdGUpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIFtzdGF0ZSwgdG9nZ2xlXTtcclxufVxyXG4iLCJpbXBvcnQgUmVhY3QsIHsgQ2hhbmdlRXZlbnRIYW5kbGVyLCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgeyBnbG9iYWxTdGF0ZVNlcnZpY2UsIGxvY2F0aW9uU2VydmljZSwgbWVtb1NlcnZpY2UsIHJlc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL2hlbHBlcnMvdXRpbHNcIjtcclxuaW1wb3J0IHsgc3RvcmFnZSB9IGZyb20gXCIuLi9oZWxwZXJzL3N0b3JhZ2VcIjtcclxuaW1wb3J0IEVkaXRvciwgeyBFZGl0b3JSZWZBY3Rpb25zIH0gZnJvbSBcIi4vRWRpdG9yL0VkaXRvclwiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL21lbW8tZWRpdG9yLmxlc3NcIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9zZWxlY3QtZGF0ZS1waWNrZXIubGVzc1wiO1xyXG5pbXBvcnQgdGFnIGZyb20gXCIuLi9pY29ucy90YWcuc3ZnXCI7XHJcbmltcG9ydCBpbWFnZVN2ZyBmcm9tIFwiLi4vaWNvbnMvaW1hZ2Uuc3ZnXCI7XHJcbmltcG9ydCB0YXNrU3ZnIGZyb20gXCIuLi9pY29ucy90YXNrLnN2Z1wiO1xyXG5pbXBvcnQgc2hvd0VkaXRvclN2ZyBmcm9tIFwiLi4vaWNvbnMvc2hvdy1lZGl0b3Iuc3ZnXCJcclxuaW1wb3J0IGpvdXJuYWxTdmcgZnJvbSBcIi4uL2ljb25zL2pvdXJuYWwuc3ZnXCI7XHJcbmltcG9ydCB7IERheVBpY2tlciB9ICBmcm9tIFwicmVhY3QtZGF5LXBpY2tlclwiO1xyXG5pbXBvcnQgeyB1c2VQb3BwZXIgfSBmcm9tICdyZWFjdC1wb3BwZXInO1xyXG4vLyBpbXBvcnQgeyBjcmVhdGVQb3BwZXIgfSBmcm9tICdAcG9wcGVyanMvY29yZSdcclxuLy8gaW1wb3J0IHsgZm9ybWF0LCBpc1ZhbGlkLCBwYXJzZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IEZvY3VzVHJhcCBmcm9tICdmb2N1cy10cmFwLXJlYWN0JztcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IERlZmF1bHRFZGl0b3JMb2NhdGlvbiwgRGVmYXVsdFByZWZpeCwgSW5zZXJ0RGF0ZUZvcm1hdCwgVXNlQnV0dG9uVG9TaG93RWRpdG9yIH0gZnJvbSBcIi4uL21lbW9zXCI7XHJcbmltcG9ydCB1c2VUb2dnbGUgZnJvbSBcIi4uL2hvb2tzL3VzZVRvZ2dsZVwiO1xyXG4vLyBpbXBvcnQgZGFpbHlOb3Rlc1NlcnZpY2UgZnJvbSAnLi4vc2VydmljZXMvZGFpbHlOb3Rlc1NlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBUYWdzU3VnZ2VzdCB9IGZyb20gXCIuLi9vYkNvbXBvbmVudHMvb2JUYWdTdWdnZXN0ZXJcIjtcclxuaW1wb3J0IHsgTm90aWNlLCBQbGF0Zm9ybSB9IGZyb20gJ29ic2lkaWFuJztcclxuXHJcbmNvbnN0IGdldEN1cnNvclBvc3Rpb24gPSAoaW5wdXQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQpID0+IHtcclxuICBjb25zdCB7IG9mZnNldExlZnQ6IGlucHV0WCwgb2Zmc2V0VG9wOiBpbnB1dFksIG9mZnNldEhlaWdodDogaW5wdXRILCBvZmZzZXRXaWR0aDogaW5wdXRXLCBzZWxlY3Rpb25FbmQ6IHNlbGVjdGlvblBvaW50IH0gPSBpbnB1dDtcclxuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5cclxuICBjb25zdCBjb3B5U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbnB1dCk7XHJcbiAgZm9yIChjb25zdCBpdGVtIG9mIGNvcHlTdHlsZSkge1xyXG4gICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KGl0ZW0sIGNvcHlTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGl0ZW0pKTtcclxuICB9XHJcbiAgZGl2LnN0eWxlLnBvc2l0aW9uID0gXCJmaXhlZFwiO1xyXG4gIGRpdi5zdHlsZS52aXNpYmlsaXR5ID0gXCJoaWRkZW5cIjtcclxuICBkaXYuc3R5bGUud2hpdGVTcGFjZSA9IFwicHJlLXdyYXBcIjtcclxuXHJcbiAgLy8gd2UgbmVlZCBhIGNoYXJhY3RlciB0aGF0IHdpbGwgcmVwbGFjZSB3aGl0ZXNwYWNlIHdoZW4gZmlsbGluZyBvdXIgZHVtbXkgZWxlbWVudCBpZiBpdCdzIGEgc2luZ2xlIGxpbmUgPGlucHV0Lz5cclxuICBjb25zdCBzd2FwID0gXCIuXCI7XHJcbiAgY29uc3QgaW5wdXRWYWx1ZSA9IGlucHV0LnRhZ05hbWUgPT09IFwiSU5QVVRcIiA/IGlucHV0LnZhbHVlLnJlcGxhY2UoLyAvZywgc3dhcCkgOiBpbnB1dC52YWx1ZTtcclxuICBjb25zdCB0ZXh0Q29udGVudCA9IGlucHV0VmFsdWUuc3Vic3RyaW5nKDAsIHNlbGVjdGlvblBvaW50IHx8IDApO1xyXG4gIGRpdi50ZXh0Q29udGVudCA9IHRleHRDb250ZW50O1xyXG4gIGlmIChpbnB1dC50YWdOYW1lID09PSBcIlRFWFRBUkVBXCIpIHtcclxuICAgIGRpdi5zdHlsZS5oZWlnaHQgPSBcImF1dG9cIjtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcclxuICBzcGFuLnRleHRDb250ZW50ID0gaW5wdXRWYWx1ZS5zdWJzdHJpbmcoc2VsZWN0aW9uUG9pbnQgfHwgMCkgfHwgXCIuXCI7XHJcbiAgZGl2LmFwcGVuZENoaWxkKHNwYW4pO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcclxuICBjb25zdCB7IG9mZnNldExlZnQ6IHNwYW5YLCBvZmZzZXRUb3A6IHNwYW5ZLCBvZmZzZXRIZWlnaHQ6IHNwYW5ILCBvZmZzZXRXaWR0aDogc3BhblcgfSA9IHNwYW47XHJcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiBpbnB1dFggKyBzcGFuWCxcclxuICAgIHk6IGlucHV0WSArIHNwYW5ZLFxyXG4gICAgaDogaW5wdXRIICsgc3BhbkgsXHJcbiAgICB3OiBpbnB1dFcgKyBzcGFuVyxcclxuICB9O1xyXG59O1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHt9XHJcblxyXG5sZXQgaXNMaXN0OiBib29sZWFuO1xyXG5sZXQgaXNFZGl0b3IgPSBmYWxzZSBhcyBib29sZWFuO1xyXG5sZXQgaXNFZGl0b3JHbyA9IHRydWUgYXMgYm9vbGVhbjtcclxubGV0IHBvc2l0aW9uWDogbnVtYmVyO1xyXG5cclxuY29uc3QgTWVtb0VkaXRvcjogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHsgZ2xvYmFsU3RhdGUgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XHJcbiAgY29uc3QgW2lzTGlzdFNob3duLCB0b2dnbGVMaXN0XSA9IHVzZVRvZ2dsZShmYWxzZSk7XHJcbiAgY29uc3QgW2lzRWRpdG9yU2hvd24sIHRvZ2dsZUVkaXRvcl0gPSB1c2VUb2dnbGUoZmFsc2UpO1xyXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxFZGl0b3JSZWZBY3Rpb25zPihudWxsKTtcclxuICBjb25zdCBwcmV2R2xvYmFsU3RhdGVSZWYgPSB1c2VSZWYoZ2xvYmFsU3RhdGUpO1xyXG4gIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcclxuICBjb25zdCBbaXNQb3BwZXJPcGVuLCBzZXRJc1BvcHBlck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICBjb25zdCBwb3BwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xyXG4gIGNvbnN0IFtwb3BwZXJFbGVtZW50LCBzZXRQb3BwZXJFbGVtZW50XSA9IHVzZVN0YXRlKG51bGwpO1xyXG4gIGxldCBwb3BwZXI7XHJcbiAgXHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoRGVmYXVsdFByZWZpeCA9PT0gXCJMaXN0XCIpIHtcclxuICAgICAgaXNMaXN0ID0gZmFsc2U7XHJcbiAgICAgIHRvZ2dsZUxpc3QoZmFsc2UpO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBpc0xpc3QgPSB0cnVlO1xyXG4gICAgICB0b2dnbGVMaXN0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChQbGF0Zm9ybS5pc01vYmlsZSAhPT0gdHJ1ZSB8fCB3aW5kb3cuaW5uZXJXaWR0aCA+IDg3NSkge1xyXG4gICAgICBoYW5kbGVTaG93RWRpdG9yKCk7XHJcbiAgICB9XHJcbiAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZihVc2VCdXR0b25Ub1Nob3dFZGl0b3IgPT09IHRydWUgJiYgRGVmYXVsdEVkaXRvckxvY2F0aW9uID09PSBcIkJvdHRvbVwiICYmIFBsYXRmb3JtLmlzTW9iaWxlID09PSB0cnVlICYmIHdpbmRvdy5pbm5lcldpZHRoIDwgODc1KXtcclxuICAgICAgY29uc3QgZGl2VGhpcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xyXG4gICAgICBjb25zdCBtZW1vRWRpdG9yRGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImRpdltkYXRhLXR5cGU9J21lbW9zX3ZpZXcnXSAudmlldy1jb250ZW50IC5tZW1vLWVkaXRvci13cmFwcGVyXCIpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBkaXZUaGlzLnNyYyA9IGAke3Nob3dFZGl0b3JTdmd9YDtcclxuICAgICAgaWYoaXNFZGl0b3JTaG93bil7XHJcbiAgICAgICAgZGl2VGhpcy5jbGFzc05hbWU9XCJtZW1vLXNob3ctZWRpdG9yLWJ1dHRvbiBoaWRkZW5cIjtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZGl2VGhpcy5jbGFzc05hbWU9XCJtZW1vLXNob3ctZWRpdG9yLWJ1dHRvblwiO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGJ1dHRvblRvcCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIDIwMDtcclxuICAgICAgY29uc3QgYnV0dG9uTGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoLzIgLSAyNTtcclxuICAgICAgZGl2VGhpcy5zdHlsZS50b3AgPSBidXR0b25Ub3AgKyBcInB4XCI7XHJcbiAgICAgIGRpdlRoaXMuc3R5bGUubGVmdCA9IGJ1dHRvbkxlZnQgKyBcInB4XCI7XHJcbiAgICAgIFxyXG4gICAgICBkaXZUaGlzLm9uY2xpY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgIGxldCBzY2FsZUVsZW1lbnRBbmkgPSBkaXZUaGlzLmFuaW1hdGUoW1xyXG4gICAgICAgICAgLy8ga2V5ZnJhbWVzXHJcbiAgICAgICAgICB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKSBzY2FsZSgxKScgfSxcclxuICAgICAgICAgIHsgdHJhbnNmb3JtOiAncm90YXRlKDYwZGVnKSBzY2FsZSgxLjUpJyB9XHJcbiAgICAgICAgXSwge1xyXG4gICAgICAgICAgLy8gdGltaW5nIG9wdGlvbnNcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAsXHJcbiAgICAgICAgICBpdGVyYXRpb25zOiBJbmZpbml0eVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgZGl2VGhpcy5jbGFzc05hbWU9XCJtZW1vLXNob3ctZWRpdG9yLWJ1dHRvbiBoaWRkZW5cIjtcclxuICAgICAgICAgIGhhbmRsZVNob3dFZGl0b3IodHJ1ZSk7XHJcbiAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKTtcclxuICAgICAgICAgIHNjYWxlRWxlbWVudEFuaS5yZXZlcnNlKCk7XHJcbiAgICAgICAgICAvLyByb3RhdGVFbGVtZW50QW5pLnBhdXNlKCk7XHJcbiAgICAgICAgfSwgMzAwKTtcclxuICAgICAgfVxyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2W2RhdGEtdHlwZT0nbWVtb3NfdmlldyddIC52aWV3LWNvbnRlbnQgLmNvbnRlbnQtd3JhcHBlclwiKS5wcmVwZW5kKGRpdlRoaXMpO1xyXG5cclxuICAgICAgY29uc3QgbWVtb2xpc3RTY3JvbGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2W2RhdGEtdHlwZT0nbWVtb3NfdmlldyddIC52aWV3LWNvbnRlbnQgLm1lbW9saXN0LXdyYXBwZXJcIikgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIG1lbW9saXN0U2Nyb2xsLm9uc2Nyb2xsID0gZnVuY3Rpb24oKXsgXHJcbiAgICAgICAgaWYoaXNFZGl0b3IgJiYgaXNFZGl0b3JHbyl7XHJcbiAgICAgICAgICBpc0VkaXRvckdvID0gZmFsc2U7XHJcbiAgICAgICAgICBsZXQgc2NhbGVFZGl0b3JFbGVtZW50QW5pID0gbWVtb0VkaXRvckRpdi5hbmltYXRlKFtcclxuICAgICAgICAgICAgLy8ga2V5ZnJhbWVzXHJcbiAgICAgICAgICAgIHsgdHJhbnNmb3JtOiAnc2NhbGUoMSknLCBvcGFjaXR5OiAxfSxcclxuICAgICAgICAgICAgeyB0cmFuc2Zvcm06ICdzY2FsZSgwLjQpJywgb3BhY2l0eTogMCB9XHJcbiAgICAgICAgICBdLCB7XHJcbiAgICAgICAgICAgIC8vIHRpbWluZyBvcHRpb25zXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAsXHJcbiAgICAgICAgICAgIGl0ZXJhdGlvbnM6IDFcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgbGV0IHNjYWxlT25lRWxlbWVudEFuaTogQW5pbWF0aW9uO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHNjYWxlT25lRWxlbWVudEFuaSA9IGRpdlRoaXMuYW5pbWF0ZShbXHJcbiAgICAgICAgICAgICAgLy8ga2V5ZnJhbWVzXHJcbiAgICAgICAgICAgICAgeyB0cmFuc2Zvcm06ICdyb3RhdGUoMjBkZWcpIHNjYWxlKDEuNSknIH0sXHJcbiAgICAgICAgICAgICAgeyB0cmFuc2Zvcm06ICdyb3RhdGUoMGRlZykgc2NhbGUoMSknIH1cclxuICAgICAgICAgICAgXSwge1xyXG4gICAgICAgICAgICAgIC8vIHRpbWluZyBvcHRpb25zXHJcbiAgICAgICAgICAgICAgZHVyYXRpb246IDEwMCxcclxuICAgICAgICAgICAgICBpdGVyYXRpb25zOiAxXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSwgMzAwKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBoYW5kbGVTaG93RWRpdG9yKGZhbHNlKTtcclxuICAgICAgICAgICAgZGl2VGhpcy5jbGFzc05hbWU9XCJtZW1vLXNob3ctZWRpdG9yLWJ1dHRvblwiO1xyXG4gICAgICAgICAgfSwgMzAwKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBzY2FsZU9uZUVsZW1lbnRBbmkuY2FuY2VsKCk7XHJcbiAgICAgICAgICAgIHNjYWxlRWRpdG9yRWxlbWVudEFuaS5yZXZlcnNlKCk7XHJcbiAgICAgICAgICB9LCA3MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfWVsc2UgaWYoVXNlQnV0dG9uVG9TaG93RWRpdG9yID09PSBmYWxzZSAmJiBEZWZhdWx0RWRpdG9yTG9jYXRpb24gPT09IFwiQm90dG9tXCIgJiYgUGxhdGZvcm0uaXNNb2JpbGUgPT09IHRydWUgJiYgd2luZG93LmlubmVyV2lkdGggPCA4NzUpe1xyXG4gICAgICAgIGhhbmRsZVNob3dFZGl0b3IodHJ1ZSk7XHJcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBoYW5kbGVTaG93RWRpdG9yKHRydWUpO1xyXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgaWYoIVBsYXRmb3JtLmlzTW9iaWxlKXtcclxuICAgIHBvcHBlciA9IHVzZVBvcHBlcihwb3BwZXJSZWYuY3VycmVudCwgcG9wcGVyRWxlbWVudCwge1xyXG4gICAgICBwbGFjZW1lbnQ6ICdyaWdodC1lbmQnLFxyXG4gICAgICBtb2RpZmllcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnZmxpcCcsXHJcbiAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWydib3R0b20nXSxcclxuICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLCAvLyBieSBkZWZhdWx0LCBhbGwgdGhlIHBsYWNlbWVudHMgYXJlIGFsbG93ZWRcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG4gIH1lbHNlIGlmKFBsYXRmb3JtLmlzTW9iaWxlICYmIERlZmF1bHRFZGl0b3JMb2NhdGlvbiAhPT0gXCJCb3R0b21cIil7XHJcbiAgICBjb25zdCBzZWxldG9yUG9wdXBXaWR0aCA9IDI4MDtcclxuICAgIGlmKCB3aW5kb3cuaW5uZXJXaWR0aCAtIHBvc2l0aW9uWCA+IHNlbGV0b3JQb3B1cFdpZHRoKjEuMiApe1xyXG4gICAgICBwb3BwZXIgPSB1c2VQb3BwZXIocG9wcGVyUmVmLmN1cnJlbnQsIHBvcHBlckVsZW1lbnQsIHtcclxuICAgICAgICBwbGFjZW1lbnQ6ICdyaWdodC1lbmQnLFxyXG4gICAgICAgIG1vZGlmaWVyczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnZmxpcCcsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IFsnbGVmdC1lbmQnXSxcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsIC8vIGJ5IGRlZmF1bHQsIGFsbCB0aGUgcGxhY2VtZW50cyBhcmUgYWxsb3dlZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgfWVsc2UgaWYoIHdpbmRvdy5pbm5lcldpZHRoIC0gcG9zaXRpb25YIDwgc2VsZXRvclBvcHVwV2lkdGgpe1xyXG4gICAgICBwb3BwZXIgPSB1c2VQb3BwZXIocG9wcGVyUmVmLmN1cnJlbnQsIHBvcHBlckVsZW1lbnQsIHtcclxuICAgICAgICBwbGFjZW1lbnQ6ICdsZWZ0LWVuZCcsXHJcbiAgICAgICAgbW9kaWZpZXJzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWydyaWdodC1lbmQnXSxcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsIC8vIGJ5IGRlZmF1bHQsIGFsbCB0aGUgcGxhY2VtZW50cyBhcmUgYWxsb3dlZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBwb3BwZXIgPSB1c2VQb3BwZXIocG9wcGVyUmVmLmN1cnJlbnQsIHBvcHBlckVsZW1lbnQsIHtcclxuICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxyXG4gICAgICAgIG1vZGlmaWVyczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnZmxpcCcsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IFsnYm90dG9tJ10sXHJcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLCAvLyBieSBkZWZhdWx0LCBhbGwgdGhlIHBsYWNlbWVudHMgYXJlIGFsbG93ZWRcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9ZWxzZSBpZihQbGF0Zm9ybS5pc01vYmlsZSAmJiBEZWZhdWx0RWRpdG9yTG9jYXRpb24gPT09IFwiQm90dG9tXCIpe1xyXG4gICAgY29uc3Qgc2VsZXRvclBvcHVwV2lkdGggPSAyODA7XHJcbiAgICBpZiggd2luZG93LmlubmVyV2lkdGggLSBwb3NpdGlvblggPiBzZWxldG9yUG9wdXBXaWR0aCoxLjIgKXtcclxuICAgICAgcG9wcGVyID0gdXNlUG9wcGVyKHBvcHBlclJlZi5jdXJyZW50LCBwb3BwZXJFbGVtZW50LCB7XHJcbiAgICAgICAgcGxhY2VtZW50OiAndG9wLWVuZCcsXHJcbiAgICAgICAgbW9kaWZpZXJzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWyd0b3Atc3RhcnQnXSxcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsIC8vIGJ5IGRlZmF1bHQsIGFsbCB0aGUgcGxhY2VtZW50cyBhcmUgYWxsb3dlZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgfWVsc2UgaWYoIHdpbmRvdy5pbm5lcldpZHRoIC0gcG9zaXRpb25YIDwgc2VsZXRvclBvcHVwV2lkdGggJiYgcG9zaXRpb25YID4gc2VsZXRvclBvcHVwV2lkdGgpe1xyXG4gICAgICBwb3BwZXIgPSB1c2VQb3BwZXIocG9wcGVyUmVmLmN1cnJlbnQsIHBvcHBlckVsZW1lbnQsIHtcclxuICAgICAgICBwbGFjZW1lbnQ6ICd0b3Atc3RhcnQnLFxyXG4gICAgICAgIG1vZGlmaWVyczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnZmxpcCcsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IFsndG9wLWVuZCddLFxyXG4gICAgICAgICAgICAgIHJvb3RCb3VuZGFyeTogJ2RvY3VtZW50JywgLy8gYnkgZGVmYXVsdCwgYWxsIHRoZSBwbGFjZW1lbnRzIGFyZSBhbGxvd2VkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgIHJvb3RCb3VuZGFyeTogJ2RvY3VtZW50JyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHBvcHBlciA9IHVzZVBvcHBlcihwb3BwZXJSZWYuY3VycmVudCwgcG9wcGVyRWxlbWVudCwge1xyXG4gICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXHJcbiAgICAgICAgbW9kaWZpZXJzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWyd0b3AnXSxcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsIC8vIGJ5IGRlZmF1bHQsIGFsbCB0aGUgcGxhY2VtZW50cyBhcmUgYWxsb3dlZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy8gcG9wcGVyID0gdXNlUG9wcGVyKHBvcHBlclJlZi5jdXJyZW50LCBwb3BwZXJFbGVtZW50LCB7XHJcbiAgICAvLyAgIHBsYWNlbWVudDogJ3RvcCcsXHJcbiAgICAvLyAgIG1vZGlmaWVyczogW1xyXG4gICAgLy8gICAgIHtcclxuICAgIC8vICAgICAgIG5hbWU6ICdmbGlwJyxcclxuICAgIC8vICAgICAgIG9wdGlvbnM6IHtcclxuICAgIC8vICAgICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzOiBbJ3RvcCddLFxyXG4gICAgLy8gICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsIC8vIGJ5IGRlZmF1bHQsIGFsbCB0aGUgcGxhY2VtZW50cyBhcmUgYWxsb3dlZFxyXG4gICAgLy8gICAgICAgfSxcclxuICAgIC8vICAgICB9LFxyXG4gICAgLy8gICAgIHtcclxuICAgIC8vICAgICAgIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxyXG4gICAgLy8gICAgICAgb3B0aW9uczoge1xyXG4gICAgLy8gICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsXHJcbiAgICAvLyAgICAgICB9LFxyXG4gICAgLy8gICAgIH0sXHJcbiAgICAvLyAgIF0sXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGNsb3NlUG9wcGVyID0gKCkgPT4ge1xyXG4gICAgc2V0SXNQb3BwZXJPcGVuKGZhbHNlKTtcclxuICAgIC8vIGJ1dHRvblJlZj8uY3VycmVudD8uZm9jdXMoKTtcclxuICB9O1xyXG4gIFxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoZ2xvYmFsU3RhdGUubWFya01lbW9JZCkge1xyXG4gICAgICBjb25zdCBlZGl0b3JDdXJyZW50VmFsdWUgPSBlZGl0b3JSZWYuY3VycmVudD8uZ2V0Q29udGVudCgpO1xyXG4gICAgICBjb25zdCBtZW1vTGlua1RleHQgPSBgJHtlZGl0b3JDdXJyZW50VmFsdWUgPyBcIlxcblwiIDogXCJcIn1NYXJrOiBbQE1FTU9dKCR7Z2xvYmFsU3RhdGUubWFya01lbW9JZH0pYDtcclxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/Lmluc2VydFRleHQobWVtb0xpbmtUZXh0KTtcclxuICAgICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldE1hcmtNZW1vSWQoXCJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGdsb2JhbFN0YXRlLmVkaXRNZW1vSWQgJiYgZ2xvYmFsU3RhdGUuZWRpdE1lbW9JZCAhPT0gcHJldkdsb2JhbFN0YXRlUmVmLmN1cnJlbnQuZWRpdE1lbW9JZCkge1xyXG4gICAgICBjb25zdCBlZGl0TWVtbyA9IG1lbW9TZXJ2aWNlLmdldE1lbW9CeUlkKGdsb2JhbFN0YXRlLmVkaXRNZW1vSWQpO1xyXG4gICAgICBpZiAoZWRpdE1lbW8pIHtcclxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uc2V0Q29udGVudChlZGl0TWVtby5jb250ZW50LnJlcGxhY2UoL1xcPGJyXFw+L2csIFwiXFxuXCIpID8/IFwiXCIpO1xyXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJldkdsb2JhbFN0YXRlUmVmLmN1cnJlbnQgPSBnbG9iYWxTdGF0ZTtcclxuICB9LCBbZ2xvYmFsU3RhdGUubWFya01lbW9JZCwgZ2xvYmFsU3RhdGUuZWRpdE1lbW9JZF0pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbmV3IFRhZ3NTdWdnZXN0KGFwcCwgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudCk7XHJcblxyXG4gICAgY29uc3QgaGFuZGxlUGFzdGVFdmVudCA9IGFzeW5jIChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGV2ZW50LmNsaXBib2FyZERhdGEgJiYgZXZlbnQuY2xpcGJvYXJkRGF0YS5maWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBjb25zdCBmaWxlID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5maWxlc1swXTtcclxuICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCBoYW5kbGVVcGxvYWRGaWxlKGZpbGUpO1xyXG4gICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5pbnNlcnRUZXh0KHVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGhhbmRsZURyb3BFdmVudCA9IGFzeW5jIChldmVudDogRHJhZ0V2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF07XHJcbiAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgaGFuZGxlVXBsb2FkRmlsZShmaWxlKTtcclxuICAgICAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0VGV4dCh1cmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBoYW5kbGVDbGlja0V2ZW50ID0gKCkgPT4ge1xyXG4gICAgICBoYW5kbGVDb250ZW50Q2hhbmdlKGVkaXRvclJlZi5jdXJyZW50Py5lbGVtZW50LnZhbHVlID8/IFwiXCIpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duRXZlbnQgPSAoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGhhbmRsZUNvbnRlbnRDaGFuZ2UoZWRpdG9yUmVmLmN1cnJlbnQ/LmVsZW1lbnQudmFsdWUgPz8gXCJcIik7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwYXN0ZVwiLCBoYW5kbGVQYXN0ZUV2ZW50KTtcclxuICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImRyb3BcIiwgaGFuZGxlRHJvcEV2ZW50KTtcclxuICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrRXZlbnQpO1xyXG4gICAgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duRXZlbnQpO1xyXG5cclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYXN0ZVwiLCBoYW5kbGVQYXN0ZUV2ZW50KTtcclxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImRyb3BcIiwgaGFuZGxlRHJvcEV2ZW50KTtcclxuICAgIH07XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBoYW5kbGVVcGxvYWRGaWxlID0gdXNlQ2FsbGJhY2soYXN5bmMgKGZpbGU6IEZpbGUpID0+IHtcclxuICAgIGNvbnN0IHsgdHlwZSB9ID0gZmlsZTtcclxuXHJcbiAgICBpZiAoIXR5cGUuc3RhcnRzV2l0aChcImltYWdlXCIpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IHJlc291cmNlU2VydmljZS51cGxvYWQoZmlsZSk7XHJcbiAgICAgIGNvbnN0IHVybCA9IGAke2ltYWdlfWA7XHJcblxyXG4gICAgICByZXR1cm4gdXJsO1xyXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICBuZXcgTm90aWNlKGVycm9yKTtcclxuICAgIH1cclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZVNhdmVCdG5DbGljayA9IHVzZUNhbGxiYWNrKGFzeW5jIChjb250ZW50OiBzdHJpbmcpID0+IHtcclxuICAgIGlmIChjb250ZW50ID09PSBcIlwiKSB7XHJcbiAgICAgIG5ldyBOb3RpY2UoXCLlhoXlrrnkuI3og73kuLrnqbrlkYBcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB7IGVkaXRNZW1vSWQgfSA9IGdsb2JhbFN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xyXG4gICAgY29udGVudCA9IGNvbnRlbnQucmVwbGFjZUFsbChcIiZuYnNwO1wiLCBcIiBcIik7XHJcblxyXG4gICAgc2V0RWRpdG9yQ29udGVudENhY2hlKFwiXCIpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGVkaXRNZW1vSWQpIHtcclxuICAgICAgICBjb25zdCBwcmV2TWVtbyA9IG1lbW9TZXJ2aWNlLmdldE1lbW9CeUlkKGVkaXRNZW1vSWQpO1xyXG4gICAgICAgIGlmIChwcmV2TWVtbyAmJiBwcmV2TWVtby5jb250ZW50ICE9PSBjb250ZW50KSB7XHJcbiAgICAgICAgICBjb25zdCBlZGl0ZWRNZW1vID0gYXdhaXQgbWVtb1NlcnZpY2UudXBkYXRlTWVtbyhwcmV2TWVtby5pZCwgcHJldk1lbW8uY29udGVudCwgY29udGVudCwgcHJldk1lbW8ubWVtb1R5cGUpO1xyXG4gICAgICAgICAgZWRpdGVkTWVtby51cGRhdGVkQXQgPSB1dGlscy5nZXREYXRlVGltZVN0cmluZyhEYXRlLm5vdygpKTtcclxuICAgICAgICAgIG1lbW9TZXJ2aWNlLmVkaXRNZW1vKGVkaXRlZE1lbW8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0RWRpdE1lbW9JZChcIlwiKTtcclxuICAgICAgICBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBuZXdNZW1vID0gYXdhaXQgbWVtb1NlcnZpY2UuY3JlYXRlTWVtbyhjb250ZW50LCBpc0xpc3QpO1xyXG4gICAgICAgIG1lbW9TZXJ2aWNlLnB1c2hNZW1vKG5ld01lbW8pO1xyXG4gICAgICAgIC8vIG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKTtcclxuICAgICAgICBsb2NhdGlvblNlcnZpY2UuY2xlYXJRdWVyeSgpO1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgIG5ldyBOb3RpY2UoZXJyb3IubWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RWRpdG9yQ29udGVudENhY2hlKFwiXCIpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlQ2FuY2VsQnRuQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XHJcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0RWRpdE1lbW9JZChcIlwiKTtcclxuICAgIGVkaXRvclJlZi5jdXJyZW50Py5zZXRDb250ZW50KFwiXCIpO1xyXG4gICAgc2V0RWRpdG9yQ29udGVudENhY2hlKFwiXCIpO1xyXG4gIH0sIFtdKTtcclxuXHJcblxyXG4gIGNvbnN0IGhhbmRsZUNvbnRlbnRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoY29udGVudDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gY29udGVudDtcclxuICAgIGlmICh0ZW1wRGl2LmlubmVyVGV4dC50cmltKCkgPT09IFwiXCIpIHtcclxuICAgICAgY29udGVudCA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBzZXRFZGl0b3JDb250ZW50Q2FjaGUoY29udGVudCk7XHJcblxyXG4gICAgaWYgKGVkaXRvclJlZi5jdXJyZW50KSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGVkaXRvclJlZi5jdXJyZW50LmdldENvbnRlbnQoKTtcclxuICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICBjb25zdCBwcmV2U3RyaW5nID0gY3VycmVudFZhbHVlLnNsaWNlKDAsIHNlbGVjdGlvblN0YXJ0KTtcclxuICAgICAgY29uc3QgbmV4dFN0cmluZyA9IGN1cnJlbnRWYWx1ZS5zbGljZShzZWxlY3Rpb25TdGFydCk7XHJcblxyXG4gICAgICBpZiAoKHByZXZTdHJpbmcuZW5kc1dpdGgoXCJAXCIpIHx8IHByZXZTdHJpbmcuZW5kc1dpdGgoXCLwn5OGXCIpKSAmJiBuZXh0U3RyaW5nLnN0YXJ0c1dpdGgoXCIgXCIpKSB7XHJcbiAgICAgICAgdXBkYXRlRGF0ZVNlbGVjdG9yUG9wdXBQb3NpdGlvbigpO1xyXG4gICAgICAgIHNldElzUG9wcGVyT3Blbih0cnVlKTtcclxuICAgICAgfSBlbHNlIGlmICgocHJldlN0cmluZy5lbmRzV2l0aChcIkBcIikgfHwgcHJldlN0cmluZy5lbmRzV2l0aChcIvCfk4ZcIikpICYmIG5leHRTdHJpbmcgPT09IFwiXCIpIHtcclxuICAgICAgICB1cGRhdGVEYXRlU2VsZWN0b3JQb3B1cFBvc2l0aW9uKCk7XHJcbiAgICAgICAgc2V0SXNQb3BwZXJPcGVuKHRydWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNldElzUG9wcGVyT3BlbihmYWxzZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZURhdGVJbnNlcnRUcmlnZ2VyID0gKGRhdGU6IERhdGUpID0+IHtcclxuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRlKSB7XHJcbiAgICAgIGNsb3NlUG9wcGVyKCk7XHJcbiAgICAgIGlzTGlzdCA9IHRydWU7XHJcbiAgICAgIHRvZ2dsZUxpc3QodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBlZGl0b3JSZWYuY3VycmVudC5nZXRDb250ZW50KCk7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICBjb25zdCBwcmV2U3RyaW5nID0gY3VycmVudFZhbHVlLnNsaWNlKDAsIHNlbGVjdGlvblN0YXJ0KTtcclxuICAgIGNvbnN0IG5leHRTdHJpbmcgPSBjdXJyZW50VmFsdWUuc2xpY2Uoc2VsZWN0aW9uU3RhcnQpO1xyXG4gICAgY29uc3QgdG9kYXlNb21lbnQgPSBtb21lbnQoZGF0ZSk7XHJcblxyXG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHByZXZTdHJpbmcuZW5kc1dpdGgoXCJAXCIpKSB7XHJcbiAgICAgIGlmKCBJbnNlcnREYXRlRm9ybWF0ID09PSBcIkRhdGF2aWV3XCIpIHtcclxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnZhbHVlID1cclxuICAgICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gICAgICAgICAgY3VycmVudFZhbHVlLnNsaWNlKDAsIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2VsZWN0aW9uU3RhcnQtMSkgKyBcIltkdWU6OlwiICsgdG9kYXlNb21lbnQuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSArIFwiXVwiKyBuZXh0U3RyaW5nO1xyXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQrMTcsIHNlbGVjdGlvblN0YXJ0KzE3KTtcclxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgICAgIGhhbmRsZUNvbnRlbnRDaGFuZ2UoZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC52YWx1ZSk7XHJcbiAgICAgIH1lbHNlIGlmKCBJbnNlcnREYXRlRm9ybWF0ID09PSBcIlRhc2tzXCIgKSB7XHJcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC52YWx1ZSA9XHJcbiAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICAgIGN1cnJlbnRWYWx1ZS5zbGljZSgwLCBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNlbGVjdGlvblN0YXJ0LTEpICsgXCLwn5OGXCIgKyB0b2RheU1vbWVudC5mb3JtYXQoXCJZWVlZLU1NLUREXCIpICsgbmV4dFN0cmluZztcclxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0KzExLCBzZWxlY3Rpb25TdGFydCsxMSk7XHJcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICBoYW5kbGVDb250ZW50Q2hhbmdlKGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnZhbHVlID1cclxuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICBwcmV2U3RyaW5nICsgdG9kYXlNb21lbnQuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSArIG5leHRTdHJpbmc7XHJcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQrMTAsIHNlbGVjdGlvblN0YXJ0KzEwKTtcclxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgaGFuZGxlQ29udGVudENoYW5nZShlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGhhbmRsZUNoYW5nZVN0YXR1cyA9ICgpID0+IHtcclxuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGlzTGlzdCl7XHJcbiAgICAgIGlzTGlzdCA9IGZhbHNlO1xyXG4gICAgICB0b2dnbGVMaXN0KGZhbHNlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICBpc0xpc3QgPSB0cnVlO1xyXG4gICAgICB0b2dnbGVMaXN0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaGFuZGxlU2hvd0VkaXRvciA9IChmbGFnPzogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIWlzRWRpdG9yIHx8IGZsYWcgPT09IHRydWUpe1xyXG4gICAgICBpc0VkaXRvciA9IHRydWU7XHJcbiAgICAgIHRvZ2dsZUVkaXRvcih0cnVlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICBpc0VkaXRvciA9IGZhbHNlO1xyXG4gICAgICBpc0VkaXRvckdvID0gdHJ1ZTtcclxuICAgICAgdG9nZ2xlRWRpdG9yKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGhhbmRsZVRhZ1RleHRCdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGVkaXRvclJlZi5jdXJyZW50LmdldENvbnRlbnQoKTtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgIGNvbnN0IHByZXZTdHJpbmcgPSBjdXJyZW50VmFsdWUuc2xpY2UoMCwgc2VsZWN0aW9uU3RhcnQpO1xyXG4gICAgY29uc3QgbmV4dFN0cmluZyA9IGN1cnJlbnRWYWx1ZS5zbGljZShzZWxlY3Rpb25TdGFydCk7XHJcblxyXG4gICAgbGV0IG5leHRWYWx1ZSA9IHByZXZTdHJpbmcgKyBcIiMgXCIgKyBuZXh0U3RyaW5nO1xyXG4gICAgbGV0IGN1cnNvckluZGV4ID0gcHJldlN0cmluZy5sZW5ndGggKyAxO1xyXG5cclxuICAgIGlmIChwcmV2U3RyaW5nLmVuZHNXaXRoKFwiI1wiKSAmJiBuZXh0U3RyaW5nLnN0YXJ0c1dpdGgoXCIgXCIpKSB7XHJcbiAgICAgIG5leHRWYWx1ZSA9IHByZXZTdHJpbmcuc2xpY2UoMCwgcHJldlN0cmluZy5sZW5ndGggLSAxKSArIG5leHRTdHJpbmcuc2xpY2UoMSk7XHJcbiAgICAgIGN1cnNvckluZGV4ID0gcHJldlN0cmluZy5sZW5ndGggLSAxO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQudmFsdWUgPSBuZXh0VmFsdWU7XHJcbiAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGN1cnNvckluZGV4LCBjdXJzb3JJbmRleCk7XHJcbiAgICBlZGl0b3JSZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgaGFuZGxlQ29udGVudENoYW5nZShlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnZhbHVlKTtcclxuXHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCB1cGRhdGVEYXRlU2VsZWN0b3JQb3B1cFBvc2l0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCB8fCAhcG9wcGVyUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNlbGV0b3JQb3B1cFdpZHRoID0gMjgwO1xyXG4gICAgY29uc3QgZWRpdG9yV2lkdGggPSBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LmNsaWVudFdpZHRoO1xyXG5cclxuICAgIC8vIHBvc2l0aW9uWCA9IGVkaXRvcldpZHRoO1xyXG4gICAgXHJcbiAgICBjb25zdCB7IHgsIHkgfSA9IGdldEN1cnNvclBvc3Rpb24oZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudCk7XHJcbiAgICAvLyBjb25zdCBsZWZ0ID0geCArIHNlbGV0b3JQb3B1cFdpZHRoICsgMTYgPiBlZGl0b3JXaWR0aCA/IGVkaXRvcldpZHRoICsgMjAgLSBzZWxldG9yUG9wdXBXaWR0aCA6IHggKyAyO1xyXG4gICAgbGV0IGxlZnQ6IG51bWJlcjtcclxuICAgIGxldCB0b3A6IG51bWJlcjtcclxuICAgIGlmKCFQbGF0Zm9ybS5pc01vYmlsZSl7XHJcbiAgICAgIGxlZnQgPSB4ICsgc2VsZXRvclBvcHVwV2lkdGggKyAxNiA+IGVkaXRvcldpZHRoID8geCArIDIgOiB4ICsgMjtcclxuICAgICAgdG9wID0geSArIDIwO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoIC0geCA+IHNlbGV0b3JQb3B1cFdpZHRoICl7XHJcbiAgICAgICAgbGVmdCA9IHggKyBzZWxldG9yUG9wdXBXaWR0aCArIDE2ID4gZWRpdG9yV2lkdGggPyB4ICsgMiA6IHggKyAyO1xyXG4gICAgICB9ZWxzZSBpZih3aW5kb3cuaW5uZXJXaWR0aCAtIHggPCBzZWxldG9yUG9wdXBXaWR0aCl7XHJcbiAgICAgICAgbGVmdCA9IHggKyBzZWxldG9yUG9wdXBXaWR0aCArIDE2ID4gZWRpdG9yV2lkdGggPyB4ICsgMTggOiB4ICsgMTg7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBsZWZ0ID0gZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5jbGllbnRXaWR0aC8yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gXCJCb3R0b21cIiAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+IDg3NSl7XHJcbiAgICAgICAgdG9wID0geSArIDIwO1xyXG4gICAgICB9ZWxzZSBpZihEZWZhdWx0RWRpdG9yTG9jYXRpb24gPT09IFwiQm90dG9tXCIgJiYgd2luZG93LmlubmVyV2lkdGggPD0gODc1KXtcclxuICAgICAgICB0b3AgPSB5ICsgMzU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwb3NpdGlvblggPSB4O1xyXG5cclxuICAgIHBvcHBlclJlZi5jdXJyZW50LnN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YDtcclxuICAgIHBvcHBlclJlZi5jdXJyZW50LnN0eWxlLnRvcCA9IGAke3RvcH1weGA7XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBoYW5kbGVVcGxvYWRGaWxlQnRuQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XHJcbiAgICBjb25zdCBpbnB1dEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xyXG4gICAgaW5wdXRFbC50eXBlID0gXCJmaWxlXCI7XHJcbiAgICBpbnB1dEVsLm11bHRpcGxlID0gZmFsc2U7XHJcbiAgICBpbnB1dEVsLmFjY2VwdCA9IFwiaW1hZ2UvcG5nLCBpbWFnZS9naWYsIGltYWdlL2pwZWdcIjtcclxuICAgIGlucHV0RWwub25jaGFuZ2UgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgIGlmICghaW5wdXRFbC5maWxlcyB8fCBpbnB1dEVsLmZpbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgZmlsZSA9IGlucHV0RWwuZmlsZXNbMF07XHJcbiAgICAgIGNvbnN0IHVybCA9IGF3YWl0IGhhbmRsZVVwbG9hZEZpbGUoZmlsZSk7XHJcbiAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0VGV4dCh1cmwpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaW5wdXRFbC5jbGljaygpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3Qgc2hvd0VkaXRTdGF0dXMgPSBCb29sZWFuKGdsb2JhbFN0YXRlLmVkaXRNZW1vSWQpO1xyXG5cclxuICBjb25zdCBlZGl0b3JDb25maWcgPSB1c2VNZW1vKFxyXG4gICAgKCkgPT4gKHtcclxuICAgICAgY2xhc3NOYW1lOiBcIm1lbW8tZWRpdG9yXCIsXHJcbiAgICAgIGluaXRpYWxDb250ZW50OiBnZXRFZGl0b3JDb250ZW50Q2FjaGUoKSxcclxuICAgICAgcGxhY2Vob2xkZXI6IFwiV2hhdCBkbyB5b3UgdGhpbmsgbm93Li4uXCIsXHJcbiAgICAgIHNob3dDb25maXJtQnRuOiB0cnVlLFxyXG4gICAgICBzaG93Q2FuY2VsQnRuOiBzaG93RWRpdFN0YXR1cyxcclxuICAgICAgc2hvd1Rvb2xzOiB0cnVlLFxyXG4gICAgICBvbkNvbmZpcm1CdG5DbGljazogaGFuZGxlU2F2ZUJ0bkNsaWNrLFxyXG4gICAgICBvbkNhbmNlbEJ0bkNsaWNrOiBoYW5kbGVDYW5jZWxCdG5DbGljayxcclxuICAgICAgb25Db250ZW50Q2hhbmdlOiBoYW5kbGVDb250ZW50Q2hhbmdlLFxyXG4gICAgfSksXHJcbiAgICBbc2hvd0VkaXRTdGF0dXNdXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuICggXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17YG1lbW8tZWRpdG9yLXdyYXBwZXIgJHtzaG93RWRpdFN0YXR1cyA/IFwiZWRpdC1pbmdcIiA6IFwiXCJ9ICR7aXNFZGl0b3JTaG93biA/IFwiXCIgOiBcImhpZGRlblwifWB9PlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT17YHRpcC10ZXh0ICR7c2hvd0VkaXRTdGF0dXMgPyBcIlwiIDogXCJoaWRkZW5cIn1gfT5Nb2RpZnlpbmcuLi48L3A+XHJcbiAgICAgICAgPEVkaXRvclxyXG4gICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XHJcbiAgICAgICAgICB7Li4uZWRpdG9yQ29uZmlnfVxyXG4gICAgICAgICAgdG9vbHM9e1xyXG4gICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiYWN0aW9uLWJ0biBhZGQtdGFnXCIgc3JjPXt0YWd9IG9uQ2xpY2s9e2hhbmRsZVRhZ1RleHRCdG5DbGlja30gLz5cclxuICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImFjdGlvbi1idG4gZmlsZS11cGxvYWRcIiBzcmM9e2ltYWdlU3ZnfSBvbkNsaWNrPXtoYW5kbGVVcGxvYWRGaWxlQnRuQ2xpY2t9IC8+XHJcbiAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJhY3Rpb24tYnRuIGxpc3Qtb3ItdGFza1wiIHNyYz17YCR7IWlzTGlzdFNob3duID8gam91cm5hbFN2ZyA6IHRhc2tTdmd9YH0gb25DbGljaz17aGFuZGxlQ2hhbmdlU3RhdHVzfSAvPlxyXG4gICAgICAgICAgICAgIHsvKiA8aW1nIGNsYXNzTmFtZT17YGFjdGlvbi1idG4gJHtpc0xpc3RTaG93biA/IFwiXCIgOiBcImhpZGRlblwifWB9IHNyYz17dGFza1N2Z30gb25DbGljaz17aGFuZGxlQ2hhbmdlU3RhdHVzfSAvPiAqL31cclxuICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2IHJlZj17cG9wcGVyUmVmfSBjbGFzc05hbWU9XCJkYXRlLXBpY2tlclwiPlxyXG4gICAgICAgICAgICB7aXNQb3BwZXJPcGVuICYmIChcclxuICAgICAgICAgICAgICA8Rm9jdXNUcmFwXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVcclxuICAgICAgICAgICAgICAgIGZvY3VzVHJhcE9wdGlvbnM9e3tcclxuICAgICAgICAgICAgICAgICAgaW5pdGlhbEZvY3VzOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBvbkRlYWN0aXZhdGU6IGNsb3NlUG9wcGVyXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17cG9wcGVyLnN0eWxlcy5wb3BwZXJ9XHJcbiAgICAgICAgICAgICAgICAgIHsuLi5wb3BwZXIuYXR0cmlidXRlcy5wb3BwZXJ9XHJcbiAgICAgICAgICAgICAgICAgIHJlZj17c2V0UG9wcGVyRWxlbWVudH1cclxuICAgICAgICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPERheVBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxGb2N1cz17aXNQb3BwZXJPcGVufVxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGU9XCJzaW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNb250aD17c2VsZWN0ZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtoYW5kbGVEYXRlSW5zZXJ0VHJpZ2dlcn1cclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvRm9jdXNUcmFwPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0RWRpdG9yQ29udGVudENhY2hlKCk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHN0b3JhZ2UuZ2V0KFtcImVkaXRvckNvbnRlbnRDYWNoZVwiXSkuZWRpdG9yQ29udGVudENhY2hlID8/IFwiXCI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEVkaXRvckNvbnRlbnRDYWNoZShjb250ZW50OiBzdHJpbmcpIHtcclxuICBzdG9yYWdlLnNldCh7XHJcbiAgICBlZGl0b3JDb250ZW50Q2FjaGU6IGNvbnRlbnQsXHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbW9FZGl0b3I7IiwiaW1wb3J0IHsgSU1BR0VfVVJMX1JFRywgTElOS19SRUcsIE1FTU9fTElOS19SRUcsIE5PUF9GSVJTVF9UQUdfUkVHLCBUQUdfUkVHIH0gZnJvbSBcIi4vY29uc3RzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgcmVsYXRpb25Db25zdHMgPSBbXHJcbiAgeyB0ZXh0OiBcIkFORFwiLCB2YWx1ZTogXCJBTkRcIiB9LFxyXG4gIHsgdGV4dDogXCJPUlwiLCB2YWx1ZTogXCJPUlwiIH0sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgZmlsdGVyQ29uc3RzID0ge1xyXG4gIFRBRzoge1xyXG4gICAgdmFsdWU6IFwiVEFHXCIsXHJcbiAgICB0ZXh0OiBcIlRBR1wiLFxyXG4gICAgb3BlcmF0b3JzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0ZXh0OiBcIklOQ0xVREVcIixcclxuICAgICAgICB2YWx1ZTogXCJDT05UQUlOXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0ZXh0OiBcIkVYQ0xVREVcIixcclxuICAgICAgICB2YWx1ZTogXCJOT1RfQ09OVEFJTlwiLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICB9LFxyXG4gIFRZUEU6IHtcclxuICAgIHZhbHVlOiBcIlRZUEVcIixcclxuICAgIHRleHQ6IFwiVFlQRVwiLFxyXG4gICAgb3BlcmF0b3JzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB2YWx1ZTogXCJJU1wiLFxyXG4gICAgICAgIHRleHQ6IFwiSVNcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHZhbHVlOiBcIklTX05PVFwiLFxyXG4gICAgICAgIHRleHQ6IFwiSVNOT1RcIixcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICB2YWx1ZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHZhbHVlOiBcIkNPTk5FQ1RFRFwiLFxyXG4gICAgICAgIHRleHQ6IFwiTElOS0VEXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB2YWx1ZTogXCJOT1RfVEFHR0VEXCIsXHJcbiAgICAgICAgdGV4dDogXCJOTyBUQUdTXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB2YWx1ZTogXCJMSU5LRURcIixcclxuICAgICAgICB0ZXh0OiBcIkhBUyBMSU5LU1wiLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdmFsdWU6IFwiSU1BR0VEXCIsXHJcbiAgICAgICAgdGV4dDogXCJIQVMgSU1BR0VTXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAgVEVYVDoge1xyXG4gICAgdmFsdWU6IFwiVEVYVFwiLFxyXG4gICAgdGV4dDogXCJURVhUXCIsXHJcbiAgICBvcGVyYXRvcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHZhbHVlOiBcIkNPTlRBSU5cIixcclxuICAgICAgICB0ZXh0OiBcIklOQ0xVREVcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHZhbHVlOiBcIk5PVF9DT05UQUlOXCIsXHJcbiAgICAgICAgdGV4dDogXCJFWENMVURFXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWVtb1NwZWNpYWxUeXBlcyA9IGZpbHRlckNvbnN0c1tcIlRZUEVcIl0udmFsdWVzO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFRleHRXaXRoTWVtb1R5cGUgPSAodHlwZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICBmb3IgKGNvbnN0IHQgb2YgbWVtb1NwZWNpYWxUeXBlcykge1xyXG4gICAgaWYgKHQudmFsdWUgPT09IHR5cGUpIHtcclxuICAgICAgcmV0dXJuIHQudGV4dDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIFwiXCI7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdEZpbHRlciA9ICgpOiBCYXNlRmlsdGVyID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgdHlwZTogXCJUQUdcIixcclxuICAgIHZhbHVlOiB7XHJcbiAgICAgIG9wZXJhdG9yOiBcIkNPTlRBSU5cIixcclxuICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgcmVsYXRpb246IFwiQU5EXCIsXHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja1Nob3VsZFNob3dNZW1vV2l0aEZpbHRlcnMgPSAobWVtbzogTW9kZWwuTWVtbywgZmlsdGVyczogRmlsdGVyW10pID0+IHtcclxuICBsZXQgc2hvdWxkU2hvdyA9IHRydWU7XHJcblxyXG4gIGZvciAoY29uc3QgZiBvZiBmaWx0ZXJzKSB7XHJcbiAgICBjb25zdCB7IHJlbGF0aW9uIH0gPSBmO1xyXG4gICAgY29uc3QgciA9IGNoZWNrU2hvdWxkU2hvd01lbW8obWVtbywgZik7XHJcbiAgICBpZiAocmVsYXRpb24gPT09IFwiT1JcIikge1xyXG4gICAgICBzaG91bGRTaG93ID0gc2hvdWxkU2hvdyB8fCByO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2hvdWxkU2hvdyA9IHNob3VsZFNob3cgJiYgcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBzaG91bGRTaG93O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrU2hvdWxkU2hvd01lbW8gPSAobWVtbzogTW9kZWwuTWVtbywgZmlsdGVyOiBGaWx0ZXIpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICB0eXBlLFxyXG4gICAgdmFsdWU6IHsgb3BlcmF0b3IsIHZhbHVlIH0sXHJcbiAgfSA9IGZpbHRlcjtcclxuXHJcbiAgaWYgKHZhbHVlID09PSBcIlwiKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGxldCBzaG91bGRTaG93ID0gdHJ1ZTtcclxuXHJcbiAgaWYgKHR5cGUgPT09IFwiVEFHXCIpIHtcclxuICAgIGxldCBjb250YWluZWQgPSB0cnVlO1xyXG4gICAgY29uc3QgdGFnc1NldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgZm9yIChjb25zdCB0IG9mIEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFRBR19SRUcpID8/IFtdKSkge1xyXG4gICAgICBjb25zdCB0YWcgPSB0LnJlcGxhY2UoVEFHX1JFRywgXCIkMVwiKS50cmltKCk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGFnLnNwbGl0KFwiL1wiKTtcclxuICAgICAgbGV0IHRlbXAgPSBcIlwiO1xyXG4gICAgICBmb3IgKGNvbnN0IGkgb2YgaXRlbXMpIHtcclxuICAgICAgICB0ZW1wICs9IGk7XHJcbiAgICAgICAgdGFnc1NldC5hZGQodGVtcCk7XHJcbiAgICAgICAgdGVtcCArPSBcIi9cIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCB0IG9mIEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE5PUF9GSVJTVF9UQUdfUkVHKSA/PyBbXSkpIHtcclxuICAgICAgY29uc3QgdGFnID0gdC5yZXBsYWNlKE5PUF9GSVJTVF9UQUdfUkVHLCBcIiQxXCIpLnRyaW0oKTtcclxuICAgICAgY29uc3QgaXRlbXMgPSB0YWcuc3BsaXQoXCIvXCIpO1xyXG4gICAgICBsZXQgdGVtcCA9IFwiXCI7XHJcbiAgICAgIGZvciAoY29uc3QgaSBvZiBpdGVtcykge1xyXG4gICAgICAgIHRlbXAgKz0gaTtcclxuICAgICAgICB0YWdzU2V0LmFkZCh0ZW1wKTtcclxuICAgICAgICB0ZW1wICs9IFwiL1wiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXRhZ3NTZXQuaGFzKHZhbHVlKSkge1xyXG4gICAgICBjb250YWluZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChvcGVyYXRvciA9PT0gXCJOT1RfQ09OVEFJTlwiKSB7XHJcbiAgICAgIGNvbnRhaW5lZCA9ICFjb250YWluZWQ7XHJcbiAgICB9XHJcbiAgICBzaG91bGRTaG93ID0gY29udGFpbmVkO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJUWVBFXCIpIHtcclxuICAgIGxldCBtYXRjaGVkID0gZmFsc2U7XHJcbiAgICBpZiAodmFsdWUgPT09IFwiTk9UX1RBR0dFRFwiICYmIG1lbW8uY29udGVudC5tYXRjaChUQUdfUkVHKSA9PT0gbnVsbCkge1xyXG4gICAgICBtYXRjaGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiTElOS0VEXCIgJiYgbWVtby5jb250ZW50Lm1hdGNoKExJTktfUkVHKSAhPT0gbnVsbCkge1xyXG4gICAgICBtYXRjaGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiSU1BR0VEXCIgJiYgbWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpICE9PSBudWxsKSB7XHJcbiAgICAgIG1hdGNoZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gXCJDT05ORUNURURcIiAmJiBtZW1vLmNvbnRlbnQubWF0Y2goTUVNT19MSU5LX1JFRykgIT09IG51bGwpIHtcclxuICAgICAgbWF0Y2hlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAob3BlcmF0b3IgPT09IFwiSVNfTk9UXCIpIHtcclxuICAgICAgbWF0Y2hlZCA9ICFtYXRjaGVkO1xyXG4gICAgfVxyXG4gICAgc2hvdWxkU2hvdyA9IG1hdGNoZWQ7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcIlRFWFRcIikge1xyXG4gICAgbGV0IGNvbnRhaW5lZCA9IG1lbW8uY29udGVudC5pbmNsdWRlcyh2YWx1ZSk7XHJcbiAgICBpZiAob3BlcmF0b3IgPT09IFwiTk9UX0NPTlRBSU5cIikge1xyXG4gICAgICBjb250YWluZWQgPSAhY29udGFpbmVkO1xyXG4gICAgfVxyXG4gICAgc2hvdWxkU2hvdyA9IGNvbnRhaW5lZDtcclxuICB9XHJcblxyXG4gIHJldHVybiBzaG91bGRTaG93O1xyXG59O1xyXG4iLCJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgeyBsb2NhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgbWVtb1NwZWNpYWxUeXBlcyB9IGZyb20gXCIuLi9oZWxwZXJzL2ZpbHRlclwiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL3NlYXJjaC1iYXIubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBzZWFyY2ggZnJvbSBcIi4uL2ljb25zL3NlYXJjaC5zdmdcIjtcclxuLy8gaW1wb3J0IHVzZVRvZ2dsZSBmcm9tIFwiLi4vaG9va3MvdXNlVG9nZ2xlXCI7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge31cclxuXHJcbmV4cG9ydCBsZXQgc2VhcmNoQm94SW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcbi8vIGxldCBpc1NlYXJjaEJhciA9IGZhbHNlIGFzIGJvb2xlYW47XHJcblxyXG5jb25zdCBTZWFyY2hCYXI6IFJlYWN0LkZDPFByb3BzPiA9ICgpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICBsb2NhdGlvblN0YXRlOiB7XHJcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6IG1lbW9UeXBlIH0sXHJcbiAgICB9LFxyXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xyXG4gIC8vIGNvbnN0IFtpc1NlYXJjaEJhclNob3duLCB0b2dnbGVTZWFyY2hiYXJdID0gdXNlVG9nZ2xlKGZhbHNlKTtcclxuICBcclxuICBjb25zdCBoYW5kbGVNZW1vVHlwZUl0ZW1DbGljayA9ICh0eXBlOiBNZW1vU3BlY1R5cGUgfCBcIlwiKSA9PiB7XHJcbiAgICBjb25zdCB7IHR5cGU6IHByZXZUeXBlIH0gPSBsb2NhdGlvblNlcnZpY2UuZ2V0U3RhdGUoKS5xdWVyeTtcclxuICAgIGlmICh0eXBlID09PSBwcmV2VHlwZSkge1xyXG4gICAgICB0eXBlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGxvY2F0aW9uU2VydmljZS5zZXRNZW1vVHlwZVF1ZXJ5KHR5cGUpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZVRleHRRdWVyeUlucHV0ID0gKGV2ZW50OiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcclxuICAgIGNvbnN0IHRleHQgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xyXG4gICAgbG9jYXRpb25TZXJ2aWNlLnNldFRleHRRdWVyeSh0ZXh0KTtcclxuICB9O1xyXG5cclxuICAvLyBjb25zdCBoYW5kbGVTZWFyY2hCYXJTdGF0dXMgPSAoKSA9PiB7XHJcbiAgLy8gICBpZihpc1NlYXJjaEJhcil7XHJcbiAgLy8gICAgIGlzU2VhcmNoQmFyID0gZmFsc2U7XHJcbiAgLy8gICAgIHRvZ2dsZVNlYXJjaGJhcihmYWxzZSk7XHJcbiAgLy8gICB9ZWxzZXtcclxuICAvLyAgICAgaXNTZWFyY2hCYXIgPSB0cnVlO1xyXG4gIC8vICAgICB0b2dnbGVTZWFyY2hiYXIodHJ1ZSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgLy8gPGRpdiBjbGFzc05hbWU9e2Ake2lzU2VhcmNoQmFyU2hvd24gPyBcInNlYXJjaC1iYXItY29udGFpbmVyLWxvbmdcIiA6IFwic2VhcmNoLWJhci1jb250YWluZXItc2hvcnRcIn1gfT5cclxuICAgIC8vICAgPGRpdiBjbGFzc05hbWU9e2Ake2lzU2VhcmNoQmFyU2hvd24gPyBcInNlYXJjaC1iYXItaW5wdXRlci1sb25nXCIgOiBcInNlYXJjaC1iYXItaW5wdXRlci1zaG9ydFwifWB9PlxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzZWFyY2gtYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYXJjaC1iYXItaW5wdXRlclwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e3NlYXJjaH0gLz5cclxuICAgICAgICA8aW5wdXQgY2xhc3NOYW1lPVwidGV4dC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJcIiBvbkNoYW5nZT17aGFuZGxlVGV4dFF1ZXJ5SW5wdXR9IC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInF1aWNrbHktYWN0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInF1aWNrbHktYWN0aW9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGl0bGUtdGV4dFwiPlFVSUNLTFkgRklMVEVSPC9wPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWNvbnRhaW5lciB0eXBlcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic2VjdGlvbi10ZXh0XCI+VFlQRTo8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmFsdWVzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIHttZW1vU3BlY2lhbFR5cGVzLm1hcCgodCwgaWR4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17dC52YWx1ZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHR5cGUtaXRlbSAke21lbW9UeXBlID09PSB0LnZhbHVlID8gXCJzZWxlY3RlZFwiIDogXCJcIn1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNZW1vVHlwZUl0ZW1DbGljayh0LnZhbHVlIGFzIE1lbW9TcGVjVHlwZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0LnRleHR9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIHtpZHggKyAxIDwgbWVtb1NwZWNpYWxUeXBlcy5sZW5ndGggPyA8c3BhbiBjbGFzc05hbWU9XCJzcGxpdC10ZXh0XCI+Lzwvc3Bhbj4gOiBudWxsfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFNlYXJjaEJhcjtcclxuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGFwcENvbnRleHQgZnJvbSBcIi4uL3N0b3Jlcy9hcHBDb250ZXh0XCI7XHJcbmltcG9ydCBTZWFyY2hCYXIgZnJvbSBcIi4vU2VhcmNoQmFyXCI7XHJcbmltcG9ydCB7IGdsb2JhbFN0YXRlU2VydmljZSwgbWVtb1NlcnZpY2UsIHF1ZXJ5U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgT25seSBmcm9tIFwiLi9jb21tb24vT25seVdoZW5cIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9tZW1vcy1oZWFkZXIubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBtZW51U3ZnIGZyb20gXCIuLi9pY29ucy9tZW51LnN2Z1wiO1xyXG5cclxubGV0IHByZXZSZXF1ZXN0VGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7fVxyXG5cclxuY29uc3QgTWVtb3NIZWFkZXI6IFJlYWN0LkZDPFByb3BzPiA9ICgpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICBsb2NhdGlvblN0YXRlOiB7XHJcbiAgICAgIHF1ZXJ5OiB7IGZpbHRlciB9LFxyXG4gICAgfSxcclxuICAgIGdsb2JhbFN0YXRlOiB7IGlzTW9iaWxlVmlldyB9LFxyXG4gICAgcXVlcnlTdGF0ZTogeyBxdWVyaWVzIH0sXHJcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XHJcblxyXG4gIGNvbnN0IFt0aXRsZVRleHQsIHNldFRpdGxlVGV4dF0gPSB1c2VTdGF0ZShcIk1FTU9TXCIpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgcXVlcnkgPSBxdWVyeVNlcnZpY2UuZ2V0UXVlcnlCeUlkKGZpbHRlcik7XHJcbiAgICBpZiAocXVlcnkpIHtcclxuICAgICAgc2V0VGl0bGVUZXh0KHF1ZXJ5LnRpdGxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldFRpdGxlVGV4dChcIk1FTU9TXCIpO1xyXG4gICAgfVxyXG4gIH0sIFtmaWx0ZXIsIHF1ZXJpZXNdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlTWVtb1RleHRDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICBpZiAobm93IC0gcHJldlJlcXVlc3RUaW1lc3RhbXAgPiAxMCAqIDEwMDApIHtcclxuICAgICAgcHJldlJlcXVlc3RUaW1lc3RhbXAgPSBub3c7XHJcbiAgICAgIG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKS5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgLy8gZG8gbnRoXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlU2hvd1NpZGViYXJCdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRTaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcodHJ1ZSk7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWhlYWRlci1jb250YWluZXIgbWVtb3MtaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIiBvbkNsaWNrPXtoYW5kbGVNZW1vVGV4dENsaWNrfT5cclxuICAgICAgICA8T25seSB3aGVuPXtpc01vYmlsZVZpZXd9PlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhY3Rpb24tYnRuXCIgb25DbGljaz17aGFuZGxlU2hvd1NpZGViYXJCdG5DbGlja30+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e21lbnVTdmd9IGFsdD1cIm1lbnVcIiAvPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9Pbmx5PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+e3RpdGxlVGV4dH08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8U2VhcmNoQmFyIC8+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVtb3NIZWFkZXI7XHJcbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvYmopIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgfSA6IGZ1bmN0aW9uIChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqO1xuICB9LCBfdHlwZW9mKG9iaik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn0iLCJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHtcbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICAgIG8uX19wcm90b19fID0gcDtcbiAgICByZXR1cm4gbztcbiAgfTtcblxuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufSIsImltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3ViQ2xhc3MsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSk7XG4gIGlmIChzdXBlckNsYXNzKSBzZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7XG59IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIi4vdHlwZW9mLmpzXCI7XG5pbXBvcnQgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9IGVsc2UgaWYgKGNhbGwgIT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtcbiAgfVxuXG4gIHJldHVybiBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO1xuICB9O1xuICByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSBpbiBvYmopIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9ialtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgaXRlcltTeW1ib2wuaXRlcmF0b3JdICE9IG51bGwgfHwgaXRlcltcIkBAaXRlcmF0b3JcIl0gIT0gbnVsbCkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyMltpXSA9IGFycltpXTtcbiAgfVxuXG4gIHJldHVybiBhcnIyO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn0iLCJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vaXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVJlc3QgZnJvbSBcIi4vbm9uSXRlcmFibGVSZXN0LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdG9BcnJheShhcnIpIHtcbiAgcmV0dXJuIGFycmF5V2l0aEhvbGVzKGFycikgfHwgaXRlcmFibGVUb0FycmF5KGFycikgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn0iLCJpbXBvcnQgX3R5cGVvZiBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZCc7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfZ2V0UHJvdG90eXBlT2YgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YnO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgX3RvQXJyYXkgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9BcnJheSc7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHsgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyB9IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxudmFyIGNvbnNvbGVMb2dnZXIgPSB7XG4gIHR5cGU6ICdsb2dnZXInLFxuICBsb2c6IGZ1bmN0aW9uIGxvZyhhcmdzKSB7XG4gICAgdGhpcy5vdXRwdXQoJ2xvZycsIGFyZ3MpO1xuICB9LFxuICB3YXJuOiBmdW5jdGlvbiB3YXJuKGFyZ3MpIHtcbiAgICB0aGlzLm91dHB1dCgnd2FybicsIGFyZ3MpO1xuICB9LFxuICBlcnJvcjogZnVuY3Rpb24gZXJyb3IoYXJncykge1xuICAgIHRoaXMub3V0cHV0KCdlcnJvcicsIGFyZ3MpO1xuICB9LFxuICBvdXRwdXQ6IGZ1bmN0aW9uIG91dHB1dCh0eXBlLCBhcmdzKSB7XG4gICAgaWYgKGNvbnNvbGUgJiYgY29uc29sZVt0eXBlXSkgY29uc29sZVt0eXBlXS5hcHBseShjb25zb2xlLCBhcmdzKTtcbiAgfVxufTtcblxudmFyIExvZ2dlciA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gTG9nZ2VyKGNvbmNyZXRlTG9nZ2VyKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExvZ2dlcik7XG5cbiAgICB0aGlzLmluaXQoY29uY3JldGVMb2dnZXIsIG9wdGlvbnMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExvZ2dlciwgW3tcbiAgICBrZXk6IFwiaW5pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0KGNvbmNyZXRlTG9nZ2VyKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICB0aGlzLnByZWZpeCA9IG9wdGlvbnMucHJlZml4IHx8ICdpMThuZXh0Oic7XG4gICAgICB0aGlzLmxvZ2dlciA9IGNvbmNyZXRlTG9nZ2VyIHx8IGNvbnNvbGVMb2dnZXI7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgdGhpcy5kZWJ1ZyA9IG9wdGlvbnMuZGVidWc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNldERlYnVnXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldERlYnVnKGJvb2wpIHtcbiAgICAgIHRoaXMuZGVidWcgPSBib29sO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2dcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9nKCkge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZvcndhcmQoYXJncywgJ2xvZycsICcnLCB0cnVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwid2FyblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB3YXJuKCkge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCAnd2FybicsICcnLCB0cnVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZXJyb3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZXJyb3IoKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMyA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjMpLCBfa2V5MyA9IDA7IF9rZXkzIDwgX2xlbjM7IF9rZXkzKyspIHtcbiAgICAgICAgYXJnc1tfa2V5M10gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5mb3J3YXJkKGFyZ3MsICdlcnJvcicsICcnKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGVwcmVjYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRlcHJlY2F0ZSgpIHtcbiAgICAgIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNCksIF9rZXk0ID0gMDsgX2tleTQgPCBfbGVuNDsgX2tleTQrKykge1xuICAgICAgICBhcmdzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZvcndhcmQoYXJncywgJ3dhcm4nLCAnV0FSTklORyBERVBSRUNBVEVEOiAnLCB0cnVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9yd2FyZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3J3YXJkKGFyZ3MsIGx2bCwgcHJlZml4LCBkZWJ1Z09ubHkpIHtcbiAgICAgIGlmIChkZWJ1Z09ubHkgJiYgIXRoaXMuZGVidWcpIHJldHVybiBudWxsO1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykgYXJnc1swXSA9IFwiXCIuY29uY2F0KHByZWZpeCkuY29uY2F0KHRoaXMucHJlZml4LCBcIiBcIikuY29uY2F0KGFyZ3NbMF0pO1xuICAgICAgcmV0dXJuIHRoaXMubG9nZ2VyW2x2bF0oYXJncyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNyZWF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjcmVhdGUobW9kdWxlTmFtZSkge1xuICAgICAgcmV0dXJuIG5ldyBMb2dnZXIodGhpcy5sb2dnZXIsIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwge1xuICAgICAgICBwcmVmaXg6IFwiXCIuY29uY2F0KHRoaXMucHJlZml4LCBcIjpcIikuY29uY2F0KG1vZHVsZU5hbWUsIFwiOlwiKVxuICAgICAgfSksIHRoaXMub3B0aW9ucykpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMb2dnZXI7XG59KCk7XG5cbnZhciBiYXNlTG9nZ2VyID0gbmV3IExvZ2dlcigpO1xuXG52YXIgRXZlbnRFbWl0dGVyID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEV2ZW50RW1pdHRlcik7XG5cbiAgICB0aGlzLm9ic2VydmVycyA9IHt9O1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEV2ZW50RW1pdHRlciwgW3tcbiAgICBrZXk6IFwib25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb24oZXZlbnRzLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgZXZlbnRzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgX3RoaXMub2JzZXJ2ZXJzW2V2ZW50XSA9IF90aGlzLm9ic2VydmVyc1tldmVudF0gfHwgW107XG5cbiAgICAgICAgX3RoaXMub2JzZXJ2ZXJzW2V2ZW50XS5wdXNoKGxpc3RlbmVyKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9mZlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvZmYoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgICBpZiAoIXRoaXMub2JzZXJ2ZXJzW2V2ZW50XSkgcmV0dXJuO1xuXG4gICAgICBpZiAoIWxpc3RlbmVyKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLm9ic2VydmVyc1tldmVudF07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vYnNlcnZlcnNbZXZlbnRdID0gdGhpcy5vYnNlcnZlcnNbZXZlbnRdLmZpbHRlcihmdW5jdGlvbiAobCkge1xuICAgICAgICByZXR1cm4gbCAhPT0gbGlzdGVuZXI7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZW1pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBlbWl0KGV2ZW50KSB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vYnNlcnZlcnNbZXZlbnRdKSB7XG4gICAgICAgIHZhciBjbG9uZWQgPSBbXS5jb25jYXQodGhpcy5vYnNlcnZlcnNbZXZlbnRdKTtcbiAgICAgICAgY2xvbmVkLmZvckVhY2goZnVuY3Rpb24gKG9ic2VydmVyKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuYXBwbHkodm9pZCAwLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9ic2VydmVyc1snKiddKSB7XG4gICAgICAgIHZhciBfY2xvbmVkID0gW10uY29uY2F0KHRoaXMub2JzZXJ2ZXJzWycqJ10pO1xuXG4gICAgICAgIF9jbG9uZWQuZm9yRWFjaChmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICBvYnNlcnZlci5hcHBseShvYnNlcnZlciwgW2V2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRXZlbnRFbWl0dGVyO1xufSgpO1xuXG5mdW5jdGlvbiBkZWZlcigpIHtcbiAgdmFyIHJlcztcbiAgdmFyIHJlajtcbiAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgcmVzID0gcmVzb2x2ZTtcbiAgICByZWogPSByZWplY3Q7XG4gIH0pO1xuICBwcm9taXNlLnJlc29sdmUgPSByZXM7XG4gIHByb21pc2UucmVqZWN0ID0gcmVqO1xuICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VTdHJpbmcob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkgcmV0dXJuICcnO1xuICByZXR1cm4gJycgKyBvYmplY3Q7XG59XG5mdW5jdGlvbiBjb3B5KGEsIHMsIHQpIHtcbiAgYS5mb3JFYWNoKGZ1bmN0aW9uIChtKSB7XG4gICAgaWYgKHNbbV0pIHRbbV0gPSBzW21dO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgsIEVtcHR5KSB7XG4gIGZ1bmN0aW9uIGNsZWFuS2V5KGtleSkge1xuICAgIHJldHVybiBrZXkgJiYga2V5LmluZGV4T2YoJyMjIycpID4gLTEgPyBrZXkucmVwbGFjZSgvIyMjL2csICcuJykgOiBrZXk7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5Ob3RUcmF2ZXJzZURlZXBlcigpIHtcbiAgICByZXR1cm4gIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ID09PSAnc3RyaW5nJztcbiAgfVxuXG4gIHZhciBzdGFjayA9IHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJyA/IFtdLmNvbmNhdChwYXRoKSA6IHBhdGguc3BsaXQoJy4nKTtcblxuICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMSkge1xuICAgIGlmIChjYW5Ob3RUcmF2ZXJzZURlZXBlcigpKSByZXR1cm4ge307XG4gICAgdmFyIGtleSA9IGNsZWFuS2V5KHN0YWNrLnNoaWZ0KCkpO1xuICAgIGlmICghb2JqZWN0W2tleV0gJiYgRW1wdHkpIG9iamVjdFtrZXldID0gbmV3IEVtcHR5KCk7XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgb2JqZWN0ID0gb2JqZWN0W2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdCA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGlmIChjYW5Ob3RUcmF2ZXJzZURlZXBlcigpKSByZXR1cm4ge307XG4gIHJldHVybiB7XG4gICAgb2JqOiBvYmplY3QsXG4gICAgazogY2xlYW5LZXkoc3RhY2suc2hpZnQoKSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2V0UGF0aChvYmplY3QsIHBhdGgsIG5ld1ZhbHVlKSB7XG4gIHZhciBfZ2V0TGFzdE9mUGF0aCA9IGdldExhc3RPZlBhdGgob2JqZWN0LCBwYXRoLCBPYmplY3QpLFxuICAgICAgb2JqID0gX2dldExhc3RPZlBhdGgub2JqLFxuICAgICAgayA9IF9nZXRMYXN0T2ZQYXRoLms7XG5cbiAgb2JqW2tdID0gbmV3VmFsdWU7XG59XG5mdW5jdGlvbiBwdXNoUGF0aChvYmplY3QsIHBhdGgsIG5ld1ZhbHVlLCBjb25jYXQpIHtcbiAgdmFyIF9nZXRMYXN0T2ZQYXRoMiA9IGdldExhc3RPZlBhdGgob2JqZWN0LCBwYXRoLCBPYmplY3QpLFxuICAgICAgb2JqID0gX2dldExhc3RPZlBhdGgyLm9iaixcbiAgICAgIGsgPSBfZ2V0TGFzdE9mUGF0aDIuaztcblxuICBvYmpba10gPSBvYmpba10gfHwgW107XG4gIGlmIChjb25jYXQpIG9ialtrXSA9IG9ialtrXS5jb25jYXQobmV3VmFsdWUpO1xuICBpZiAoIWNvbmNhdCkgb2JqW2tdLnB1c2gobmV3VmFsdWUpO1xufVxuZnVuY3Rpb24gZ2V0UGF0aChvYmplY3QsIHBhdGgpIHtcbiAgdmFyIF9nZXRMYXN0T2ZQYXRoMyA9IGdldExhc3RPZlBhdGgob2JqZWN0LCBwYXRoKSxcbiAgICAgIG9iaiA9IF9nZXRMYXN0T2ZQYXRoMy5vYmosXG4gICAgICBrID0gX2dldExhc3RPZlBhdGgzLms7XG5cbiAgaWYgKCFvYmopIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBvYmpba107XG59XG5mdW5jdGlvbiBnZXRQYXRoV2l0aERlZmF1bHRzKGRhdGEsIGRlZmF1bHREYXRhLCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gZ2V0UGF0aChkYXRhLCBrZXkpO1xuXG4gIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIGdldFBhdGgoZGVmYXVsdERhdGEsIGtleSk7XG59XG5mdW5jdGlvbiBkZWVwRXh0ZW5kKHRhcmdldCwgc291cmNlLCBvdmVyd3JpdGUpIHtcbiAgZm9yICh2YXIgcHJvcCBpbiBzb3VyY2UpIHtcbiAgICBpZiAocHJvcCAhPT0gJ19fcHJvdG9fXycgJiYgcHJvcCAhPT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgaWYgKHByb3AgaW4gdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0W3Byb3BdID09PSAnc3RyaW5nJyB8fCB0YXJnZXRbcHJvcF0gaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIHNvdXJjZVtwcm9wXSA9PT0gJ3N0cmluZycgfHwgc291cmNlW3Byb3BdIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICAgICAgaWYgKG92ZXJ3cml0ZSkgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlZXBFeHRlbmQodGFyZ2V0W3Byb3BdLCBzb3VyY2VbcHJvcF0sIG92ZXJ3cml0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldFtwcm9wXSA9IHNvdXJjZVtwcm9wXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuZnVuY3Rpb24gcmVnZXhFc2NhcGUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvW1xcLVxcW1xcXVxcL1xce1xcfVxcKFxcKVxcKlxcK1xcP1xcLlxcXFxcXF5cXCRcXHxdL2csICdcXFxcJCYnKTtcbn1cbnZhciBfZW50aXR5TWFwID0ge1xuICAnJic6ICcmYW1wOycsXG4gICc8JzogJyZsdDsnLFxuICAnPic6ICcmZ3Q7JyxcbiAgJ1wiJzogJyZxdW90OycsXG4gIFwiJ1wiOiAnJiMzOTsnLFxuICAnLyc6ICcmI3gyRjsnXG59O1xuZnVuY3Rpb24gZXNjYXBlKGRhdGEpIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkYXRhLnJlcGxhY2UoL1smPD5cIidcXC9dL2csIGZ1bmN0aW9uIChzKSB7XG4gICAgICByZXR1cm4gX2VudGl0eU1hcFtzXTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxudmFyIGlzSUUxMCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5uYXZpZ2F0b3IgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignTVNJRScpID4gLTE7XG52YXIgY2hhcnMgPSBbJyAnLCAnLCcsICc/JywgJyEnLCAnOyddO1xuZnVuY3Rpb24gbG9va3NMaWtlT2JqZWN0UGF0aChrZXksIG5zU2VwYXJhdG9yLCBrZXlTZXBhcmF0b3IpIHtcbiAgbnNTZXBhcmF0b3IgPSBuc1NlcGFyYXRvciB8fCAnJztcbiAga2V5U2VwYXJhdG9yID0ga2V5U2VwYXJhdG9yIHx8ICcnO1xuICB2YXIgcG9zc2libGVDaGFycyA9IGNoYXJzLmZpbHRlcihmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiBuc1NlcGFyYXRvci5pbmRleE9mKGMpIDwgMCAmJiBrZXlTZXBhcmF0b3IuaW5kZXhPZihjKSA8IDA7XG4gIH0pO1xuICBpZiAocG9zc2libGVDaGFycy5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuICB2YXIgciA9IG5ldyBSZWdFeHAoXCIoXCIuY29uY2F0KHBvc3NpYmxlQ2hhcnMubWFwKGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIGMgPT09ICc/JyA/ICdcXFxcPycgOiBjO1xuICB9KS5qb2luKCd8JyksIFwiKVwiKSk7XG4gIHZhciBtYXRjaGVkID0gIXIudGVzdChrZXkpO1xuXG4gIGlmICghbWF0Y2hlZCkge1xuICAgIHZhciBraSA9IGtleS5pbmRleE9mKGtleVNlcGFyYXRvcik7XG5cbiAgICBpZiAoa2kgPiAwICYmICFyLnRlc3Qoa2V5LnN1YnN0cmluZygwLCBraSkpKSB7XG4gICAgICBtYXRjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWF0Y2hlZDtcbn1cblxuZnVuY3Rpb24gb3duS2V5cyQxKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSB7IHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsgfSBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCQxKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMkMShPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzJDEoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBkZWVwRmluZChvYmosIHBhdGgpIHtcbiAgdmFyIGtleVNlcGFyYXRvciA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogJy4nO1xuICBpZiAoIW9iaikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKG9ialtwYXRoXSkgcmV0dXJuIG9ialtwYXRoXTtcbiAgdmFyIHBhdGhzID0gcGF0aC5zcGxpdChrZXlTZXBhcmF0b3IpO1xuICB2YXIgY3VycmVudCA9IG9iajtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGhzLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKCFjdXJyZW50KSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgaWYgKHR5cGVvZiBjdXJyZW50W3BhdGhzW2ldXSA9PT0gJ3N0cmluZycgJiYgaSArIDEgPCBwYXRocy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRbcGF0aHNbaV1dID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciBqID0gMjtcbiAgICAgIHZhciBwID0gcGF0aHMuc2xpY2UoaSwgaSArIGopLmpvaW4oa2V5U2VwYXJhdG9yKTtcbiAgICAgIHZhciBtaXggPSBjdXJyZW50W3BdO1xuXG4gICAgICB3aGlsZSAobWl4ID09PSB1bmRlZmluZWQgJiYgcGF0aHMubGVuZ3RoID4gaSArIGopIHtcbiAgICAgICAgaisrO1xuICAgICAgICBwID0gcGF0aHMuc2xpY2UoaSwgaSArIGopLmpvaW4oa2V5U2VwYXJhdG9yKTtcbiAgICAgICAgbWl4ID0gY3VycmVudFtwXTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1peCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICBpZiAocGF0aC5lbmRzV2l0aChwKSkge1xuICAgICAgICBpZiAodHlwZW9mIG1peCA9PT0gJ3N0cmluZycpIHJldHVybiBtaXg7XG4gICAgICAgIGlmIChwICYmIHR5cGVvZiBtaXhbcF0gPT09ICdzdHJpbmcnKSByZXR1cm4gbWl4W3BdO1xuICAgICAgfVxuXG4gICAgICB2YXIgam9pbmVkUGF0aCA9IHBhdGhzLnNsaWNlKGkgKyBqKS5qb2luKGtleVNlcGFyYXRvcik7XG4gICAgICBpZiAoam9pbmVkUGF0aCkgcmV0dXJuIGRlZXBGaW5kKG1peCwgam9pbmVkUGF0aCwga2V5U2VwYXJhdG9yKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY3VycmVudCA9IGN1cnJlbnRbcGF0aHNbaV1dO1xuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbnZhciBSZXNvdXJjZVN0b3JlID0gZnVuY3Rpb24gKF9FdmVudEVtaXR0ZXIpIHtcbiAgX2luaGVyaXRzKFJlc291cmNlU3RvcmUsIF9FdmVudEVtaXR0ZXIpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoUmVzb3VyY2VTdG9yZSk7XG5cbiAgZnVuY3Rpb24gUmVzb3VyY2VTdG9yZShkYXRhKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHtcbiAgICAgIG5zOiBbJ3RyYW5zbGF0aW9uJ10sXG4gICAgICBkZWZhdWx0TlM6ICd0cmFuc2xhdGlvbidcbiAgICB9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc291cmNlU3RvcmUpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBfdGhpcy5kYXRhID0gZGF0YSB8fCB7fTtcbiAgICBfdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGlmIChfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9ICcuJztcbiAgICB9XG5cbiAgICBpZiAoX3RoaXMub3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIF90aGlzLm9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFJlc291cmNlU3RvcmUsIFt7XG4gICAga2V5OiBcImFkZE5hbWVzcGFjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkTmFtZXNwYWNlcyhucykge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKG5zKSA8IDApIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5zLnB1c2gobnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW1vdmVOYW1lc3BhY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZU5hbWVzcGFjZXMobnMpIHtcbiAgICAgIHZhciBpbmRleCA9IHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKG5zKTtcblxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFJlc291cmNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJlc291cmNlKGxuZywgbnMsIGtleSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuICAgICAgdmFyIGtleVNlcGFyYXRvciA9IG9wdGlvbnMua2V5U2VwYXJhdG9yICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmtleVNlcGFyYXRvciA6IHRoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3I7XG4gICAgICB2YXIgaWdub3JlSlNPTlN0cnVjdHVyZSA9IG9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlIDogdGhpcy5vcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmU7XG4gICAgICB2YXIgcGF0aCA9IFtsbmcsIG5zXTtcbiAgICAgIGlmIChrZXkgJiYgdHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHBhdGggPSBwYXRoLmNvbmNhdChrZXkpO1xuICAgICAgaWYgKGtleSAmJiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgcGF0aCA9IHBhdGguY29uY2F0KGtleVNlcGFyYXRvciA/IGtleS5zcGxpdChrZXlTZXBhcmF0b3IpIDoga2V5KTtcblxuICAgICAgaWYgKGxuZy5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICBwYXRoID0gbG5nLnNwbGl0KCcuJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXN1bHQgPSBnZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCk7XG4gICAgICBpZiAocmVzdWx0IHx8ICFpZ25vcmVKU09OU3RydWN0dXJlIHx8IHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSByZXR1cm4gcmVzdWx0O1xuICAgICAgcmV0dXJuIGRlZXBGaW5kKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGFbbG5nXSAmJiB0aGlzLmRhdGFbbG5nXVtuc10sIGtleSwga2V5U2VwYXJhdG9yKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYWRkUmVzb3VyY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUmVzb3VyY2UobG5nLCBucywga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSB0aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yO1xuICAgICAgaWYgKGtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSBrZXlTZXBhcmF0b3IgPSAnLic7XG4gICAgICB2YXIgcGF0aCA9IFtsbmcsIG5zXTtcbiAgICAgIGlmIChrZXkpIHBhdGggPSBwYXRoLmNvbmNhdChrZXlTZXBhcmF0b3IgPyBrZXkuc3BsaXQoa2V5U2VwYXJhdG9yKSA6IGtleSk7XG5cbiAgICAgIGlmIChsbmcuaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IGxuZy5zcGxpdCgnLicpO1xuICAgICAgICB2YWx1ZSA9IG5zO1xuICAgICAgICBucyA9IHBhdGhbMV07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWRkTmFtZXNwYWNlcyhucyk7XG4gICAgICBzZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkgdGhpcy5lbWl0KCdhZGRlZCcsIGxuZywgbnMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRSZXNvdXJjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUmVzb3VyY2VzKGxuZywgbnMsIHJlc291cmNlcykge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcblxuICAgICAgZm9yICh2YXIgbSBpbiByZXNvdXJjZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvdXJjZXNbbV0gPT09ICdzdHJpbmcnIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkocmVzb3VyY2VzW21dKSA9PT0gJ1tvYmplY3QgQXJyYXldJykgdGhpcy5hZGRSZXNvdXJjZShsbmcsIG5zLCBtLCByZXNvdXJjZXNbbV0sIHtcbiAgICAgICAgICBzaWxlbnQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHRoaXMuZW1pdCgnYWRkZWQnLCBsbmcsIG5zLCByZXNvdXJjZXMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRSZXNvdXJjZUJ1bmRsZShsbmcsIG5zLCByZXNvdXJjZXMsIGRlZXAsIG92ZXJ3cml0ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBwYXRoID0gW2xuZywgbnNdO1xuXG4gICAgICBpZiAobG5nLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICAgIHBhdGggPSBsbmcuc3BsaXQoJy4nKTtcbiAgICAgICAgZGVlcCA9IHJlc291cmNlcztcbiAgICAgICAgcmVzb3VyY2VzID0gbnM7XG4gICAgICAgIG5zID0gcGF0aFsxXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGROYW1lc3BhY2VzKG5zKTtcbiAgICAgIHZhciBwYWNrID0gZ2V0UGF0aCh0aGlzLmRhdGEsIHBhdGgpIHx8IHt9O1xuXG4gICAgICBpZiAoZGVlcCkge1xuICAgICAgICBkZWVwRXh0ZW5kKHBhY2ssIHJlc291cmNlcywgb3ZlcndyaXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhY2sgPSBfb2JqZWN0U3ByZWFkJDEoX29iamVjdFNwcmVhZCQxKHt9LCBwYWNrKSwgcmVzb3VyY2VzKTtcbiAgICAgIH1cblxuICAgICAgc2V0UGF0aCh0aGlzLmRhdGEsIHBhdGgsIHBhY2spO1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkgdGhpcy5lbWl0KCdhZGRlZCcsIGxuZywgbnMsIHJlc291cmNlcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbW92ZVJlc291cmNlQnVuZGxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZVJlc291cmNlQnVuZGxlKGxuZywgbnMpIHtcbiAgICAgIGlmICh0aGlzLmhhc1Jlc291cmNlQnVuZGxlKGxuZywgbnMpKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmRhdGFbbG5nXVtuc107XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVtb3ZlTmFtZXNwYWNlcyhucyk7XG4gICAgICB0aGlzLmVtaXQoJ3JlbW92ZWQnLCBsbmcsIG5zKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaGFzUmVzb3VyY2VCdW5kbGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzUmVzb3VyY2VCdW5kbGUobG5nLCBucykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2UobG5nLCBucykgIT09IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UmVzb3VyY2VCdW5kbGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UmVzb3VyY2VCdW5kbGUobG5nLCBucykge1xuICAgICAgaWYgKCFucykgbnMgPSB0aGlzLm9wdGlvbnMuZGVmYXVsdE5TO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5QVBJID09PSAndjEnKSByZXR1cm4gX29iamVjdFNwcmVhZCQxKF9vYmplY3RTcHJlYWQkMSh7fSwge30pLCB0aGlzLmdldFJlc291cmNlKGxuZywgbnMpKTtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlKGxuZywgbnMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXREYXRhQnlMYW5ndWFnZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREYXRhQnlMYW5ndWFnZShsbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFbbG5nXTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaGFzTGFuZ3VhZ2VTb21lVHJhbnNsYXRpb25zXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhc0xhbmd1YWdlU29tZVRyYW5zbGF0aW9ucyhsbmcpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5nZXREYXRhQnlMYW5ndWFnZShsbmcpO1xuICAgICAgdmFyIG4gPSBkYXRhICYmIE9iamVjdC5rZXlzKGRhdGEpIHx8IFtdO1xuICAgICAgcmV0dXJuICEhbi5maW5kKGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBkYXRhW3ZdICYmIE9iamVjdC5rZXlzKGRhdGFbdl0pLmxlbmd0aCA+IDA7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidG9KU09OXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFJlc291cmNlU3RvcmU7XG59KEV2ZW50RW1pdHRlcik7XG5cbnZhciBwb3N0UHJvY2Vzc29yID0ge1xuICBwcm9jZXNzb3JzOiB7fSxcbiAgYWRkUG9zdFByb2Nlc3NvcjogZnVuY3Rpb24gYWRkUG9zdFByb2Nlc3Nvcihtb2R1bGUpIHtcbiAgICB0aGlzLnByb2Nlc3NvcnNbbW9kdWxlLm5hbWVdID0gbW9kdWxlO1xuICB9LFxuICBoYW5kbGU6IGZ1bmN0aW9uIGhhbmRsZShwcm9jZXNzb3JzLCB2YWx1ZSwga2V5LCBvcHRpb25zLCB0cmFuc2xhdG9yKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgIHByb2Nlc3NvcnMuZm9yRWFjaChmdW5jdGlvbiAocHJvY2Vzc29yKSB7XG4gICAgICBpZiAoX3RoaXMucHJvY2Vzc29yc1twcm9jZXNzb3JdKSB2YWx1ZSA9IF90aGlzLnByb2Nlc3NvcnNbcHJvY2Vzc29yXS5wcm9jZXNzKHZhbHVlLCBrZXksIG9wdGlvbnMsIHRyYW5zbGF0b3IpO1xuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZnVuY3Rpb24gb3duS2V5cyQyKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSB7IHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsgfSBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCQyKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMkMihPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzJDIoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlciQxKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0JDEoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0JDEoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxudmFyIGNoZWNrZWRMb2FkZWRGb3IgPSB7fTtcblxudmFyIFRyYW5zbGF0b3IgPSBmdW5jdGlvbiAoX0V2ZW50RW1pdHRlcikge1xuICBfaW5oZXJpdHMoVHJhbnNsYXRvciwgX0V2ZW50RW1pdHRlcik7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlciQxKFRyYW5zbGF0b3IpO1xuXG4gIGZ1bmN0aW9uIFRyYW5zbGF0b3Ioc2VydmljZXMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJhbnNsYXRvcik7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpO1xuXG4gICAgaWYgKGlzSUUxMCkge1xuICAgICAgRXZlbnRFbWl0dGVyLmNhbGwoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgIH1cblxuICAgIGNvcHkoWydyZXNvdXJjZVN0b3JlJywgJ2xhbmd1YWdlVXRpbHMnLCAncGx1cmFsUmVzb2x2ZXInLCAnaW50ZXJwb2xhdG9yJywgJ2JhY2tlbmRDb25uZWN0b3InLCAnaTE4bkZvcm1hdCcsICd1dGlscyddLCBzZXJ2aWNlcywgX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgIF90aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgaWYgKF90aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIF90aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yID0gJy4nO1xuICAgIH1cblxuICAgIF90aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXIuY3JlYXRlKCd0cmFuc2xhdG9yJyk7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRyYW5zbGF0b3IsIFt7XG4gICAga2V5OiBcImNoYW5nZUxhbmd1YWdlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNoYW5nZUxhbmd1YWdlKGxuZykge1xuICAgICAgaWYgKGxuZykgdGhpcy5sYW5ndWFnZSA9IGxuZztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZXhpc3RzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGV4aXN0cyhrZXkpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7XG4gICAgICAgIGludGVycG9sYXRpb246IHt9XG4gICAgICB9O1xuXG4gICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQgfHwga2V5ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlc29sdmVkID0gdGhpcy5yZXNvbHZlKGtleSwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzb2x2ZWQgJiYgcmVzb2x2ZWQucmVzICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4dHJhY3RGcm9tS2V5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGV4dHJhY3RGcm9tS2V5KGtleSwgb3B0aW9ucykge1xuICAgICAgdmFyIG5zU2VwYXJhdG9yID0gb3B0aW9ucy5uc1NlcGFyYXRvciAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5uc1NlcGFyYXRvciA6IHRoaXMub3B0aW9ucy5uc1NlcGFyYXRvcjtcbiAgICAgIGlmIChuc1NlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSBuc1NlcGFyYXRvciA9ICc6JztcbiAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSBvcHRpb25zLmtleVNlcGFyYXRvciAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5rZXlTZXBhcmF0b3IgOiB0aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yO1xuICAgICAgdmFyIG5hbWVzcGFjZXMgPSBvcHRpb25zLm5zIHx8IHRoaXMub3B0aW9ucy5kZWZhdWx0TlMgfHwgW107XG4gICAgICB2YXIgd291bGRDaGVja0Zvck5zSW5LZXkgPSBuc1NlcGFyYXRvciAmJiBrZXkuaW5kZXhPZihuc1NlcGFyYXRvcikgPiAtMTtcbiAgICAgIHZhciBzZWVtc05hdHVyYWxMYW5ndWFnZSA9ICF0aGlzLm9wdGlvbnMudXNlckRlZmluZWRLZXlTZXBhcmF0b3IgJiYgIW9wdGlvbnMua2V5U2VwYXJhdG9yICYmICF0aGlzLm9wdGlvbnMudXNlckRlZmluZWROc1NlcGFyYXRvciAmJiAhb3B0aW9ucy5uc1NlcGFyYXRvciAmJiAhbG9va3NMaWtlT2JqZWN0UGF0aChrZXksIG5zU2VwYXJhdG9yLCBrZXlTZXBhcmF0b3IpO1xuXG4gICAgICBpZiAod291bGRDaGVja0Zvck5zSW5LZXkgJiYgIXNlZW1zTmF0dXJhbExhbmd1YWdlKSB7XG4gICAgICAgIHZhciBtID0ga2V5Lm1hdGNoKHRoaXMuaW50ZXJwb2xhdG9yLm5lc3RpbmdSZWdleHApO1xuXG4gICAgICAgIGlmIChtICYmIG0ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIG5hbWVzcGFjZXM6IG5hbWVzcGFjZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHBhcnRzID0ga2V5LnNwbGl0KG5zU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKG5zU2VwYXJhdG9yICE9PSBrZXlTZXBhcmF0b3IgfHwgbnNTZXBhcmF0b3IgPT09IGtleVNlcGFyYXRvciAmJiB0aGlzLm9wdGlvbnMubnMuaW5kZXhPZihwYXJ0c1swXSkgPiAtMSkgbmFtZXNwYWNlcyA9IHBhcnRzLnNoaWZ0KCk7XG4gICAgICAgIGtleSA9IHBhcnRzLmpvaW4oa2V5U2VwYXJhdG9yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBuYW1lc3BhY2VzID09PSAnc3RyaW5nJykgbmFtZXNwYWNlcyA9IFtuYW1lc3BhY2VzXTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBuYW1lc3BhY2VzOiBuYW1lc3BhY2VzXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0cmFuc2xhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdHJhbnNsYXRlKGtleXMsIG9wdGlvbnMsIGxhc3RLZXkpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICBpZiAoX3R5cGVvZihvcHRpb25zKSAhPT0gJ29iamVjdCcgJiYgdGhpcy5vcHRpb25zLm92ZXJsb2FkVHJhbnNsYXRpb25PcHRpb25IYW5kbGVyKSB7XG4gICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMub3ZlcmxvYWRUcmFuc2xhdGlvbk9wdGlvbkhhbmRsZXIoYXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gICAgICBpZiAoa2V5cyA9PT0gdW5kZWZpbmVkIHx8IGtleXMgPT09IG51bGwpIHJldHVybiAnJztcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShrZXlzKSkga2V5cyA9IFtTdHJpbmcoa2V5cyldO1xuICAgICAgdmFyIGtleVNlcGFyYXRvciA9IG9wdGlvbnMua2V5U2VwYXJhdG9yICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmtleVNlcGFyYXRvciA6IHRoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3I7XG5cbiAgICAgIHZhciBfdGhpcyRleHRyYWN0RnJvbUtleSA9IHRoaXMuZXh0cmFjdEZyb21LZXkoa2V5c1trZXlzLmxlbmd0aCAtIDFdLCBvcHRpb25zKSxcbiAgICAgICAgICBrZXkgPSBfdGhpcyRleHRyYWN0RnJvbUtleS5rZXksXG4gICAgICAgICAgbmFtZXNwYWNlcyA9IF90aGlzJGV4dHJhY3RGcm9tS2V5Lm5hbWVzcGFjZXM7XG5cbiAgICAgIHZhciBuYW1lc3BhY2UgPSBuYW1lc3BhY2VzW25hbWVzcGFjZXMubGVuZ3RoIC0gMV07XG4gICAgICB2YXIgbG5nID0gb3B0aW9ucy5sbmcgfHwgdGhpcy5sYW5ndWFnZTtcbiAgICAgIHZhciBhcHBlbmROYW1lc3BhY2VUb0NJTW9kZSA9IG9wdGlvbnMuYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGUgfHwgdGhpcy5vcHRpb25zLmFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlO1xuXG4gICAgICBpZiAobG5nICYmIGxuZy50b0xvd2VyQ2FzZSgpID09PSAnY2ltb2RlJykge1xuICAgICAgICBpZiAoYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGUpIHtcbiAgICAgICAgICB2YXIgbnNTZXBhcmF0b3IgPSBvcHRpb25zLm5zU2VwYXJhdG9yIHx8IHRoaXMub3B0aW9ucy5uc1NlcGFyYXRvcjtcbiAgICAgICAgICByZXR1cm4gbmFtZXNwYWNlICsgbnNTZXBhcmF0b3IgKyBrZXk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmUoa2V5cywgb3B0aW9ucyk7XG4gICAgICB2YXIgcmVzID0gcmVzb2x2ZWQgJiYgcmVzb2x2ZWQucmVzO1xuICAgICAgdmFyIHJlc1VzZWRLZXkgPSByZXNvbHZlZCAmJiByZXNvbHZlZC51c2VkS2V5IHx8IGtleTtcbiAgICAgIHZhciByZXNFeGFjdFVzZWRLZXkgPSByZXNvbHZlZCAmJiByZXNvbHZlZC5leGFjdFVzZWRLZXkgfHwga2V5O1xuICAgICAgdmFyIHJlc1R5cGUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHJlcyk7XG4gICAgICB2YXIgbm9PYmplY3QgPSBbJ1tvYmplY3QgTnVtYmVyXScsICdbb2JqZWN0IEZ1bmN0aW9uXScsICdbb2JqZWN0IFJlZ0V4cF0nXTtcbiAgICAgIHZhciBqb2luQXJyYXlzID0gb3B0aW9ucy5qb2luQXJyYXlzICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmpvaW5BcnJheXMgOiB0aGlzLm9wdGlvbnMuam9pbkFycmF5cztcbiAgICAgIHZhciBoYW5kbGVBc09iamVjdEluSTE4bkZvcm1hdCA9ICF0aGlzLmkxOG5Gb3JtYXQgfHwgdGhpcy5pMThuRm9ybWF0LmhhbmRsZUFzT2JqZWN0O1xuICAgICAgdmFyIGhhbmRsZUFzT2JqZWN0ID0gdHlwZW9mIHJlcyAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHJlcyAhPT0gJ2Jvb2xlYW4nICYmIHR5cGVvZiByZXMgIT09ICdudW1iZXInO1xuXG4gICAgICBpZiAoaGFuZGxlQXNPYmplY3RJbkkxOG5Gb3JtYXQgJiYgcmVzICYmIGhhbmRsZUFzT2JqZWN0ICYmIG5vT2JqZWN0LmluZGV4T2YocmVzVHlwZSkgPCAwICYmICEodHlwZW9mIGpvaW5BcnJheXMgPT09ICdzdHJpbmcnICYmIHJlc1R5cGUgPT09ICdbb2JqZWN0IEFycmF5XScpKSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5yZXR1cm5PYmplY3RzICYmICF0aGlzLm9wdGlvbnMucmV0dXJuT2JqZWN0cykge1xuICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zLnJldHVybmVkT2JqZWN0SGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybignYWNjZXNzaW5nIGFuIG9iamVjdCAtIGJ1dCByZXR1cm5PYmplY3RzIG9wdGlvbnMgaXMgbm90IGVuYWJsZWQhJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXR1cm5lZE9iamVjdEhhbmRsZXIgPyB0aGlzLm9wdGlvbnMucmV0dXJuZWRPYmplY3RIYW5kbGVyKHJlc1VzZWRLZXksIHJlcywgX29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSwgb3B0aW9ucyksIHt9LCB7XG4gICAgICAgICAgICBuczogbmFtZXNwYWNlc1xuICAgICAgICAgIH0pKSA6IFwia2V5ICdcIi5jb25jYXQoa2V5LCBcIiAoXCIpLmNvbmNhdCh0aGlzLmxhbmd1YWdlLCBcIiknIHJldHVybmVkIGFuIG9iamVjdCBpbnN0ZWFkIG9mIHN0cmluZy5cIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5U2VwYXJhdG9yKSB7XG4gICAgICAgICAgdmFyIHJlc1R5cGVJc0FycmF5ID0gcmVzVHlwZSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbiAgICAgICAgICB2YXIgY29weSA9IHJlc1R5cGVJc0FycmF5ID8gW10gOiB7fTtcbiAgICAgICAgICB2YXIgbmV3S2V5VG9Vc2UgPSByZXNUeXBlSXNBcnJheSA/IHJlc0V4YWN0VXNlZEtleSA6IHJlc1VzZWRLZXk7XG5cbiAgICAgICAgICBmb3IgKHZhciBtIGluIHJlcykge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXMsIG0pKSB7XG4gICAgICAgICAgICAgIHZhciBkZWVwS2V5ID0gXCJcIi5jb25jYXQobmV3S2V5VG9Vc2UpLmNvbmNhdChrZXlTZXBhcmF0b3IpLmNvbmNhdChtKTtcbiAgICAgICAgICAgICAgY29weVttXSA9IHRoaXMudHJhbnNsYXRlKGRlZXBLZXksIF9vYmplY3RTcHJlYWQkMihfb2JqZWN0U3ByZWFkJDIoe30sIG9wdGlvbnMpLCB7XG4gICAgICAgICAgICAgICAgam9pbkFycmF5czogZmFsc2UsXG4gICAgICAgICAgICAgICAgbnM6IG5hbWVzcGFjZXNcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICBpZiAoY29weVttXSA9PT0gZGVlcEtleSkgY29weVttXSA9IHJlc1ttXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXMgPSBjb3B5O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGhhbmRsZUFzT2JqZWN0SW5JMThuRm9ybWF0ICYmIHR5cGVvZiBqb2luQXJyYXlzID09PSAnc3RyaW5nJyAmJiByZXNUeXBlID09PSAnW29iamVjdCBBcnJheV0nKSB7XG4gICAgICAgIHJlcyA9IHJlcy5qb2luKGpvaW5BcnJheXMpO1xuICAgICAgICBpZiAocmVzKSByZXMgPSB0aGlzLmV4dGVuZFRyYW5zbGF0aW9uKHJlcywga2V5cywgb3B0aW9ucywgbGFzdEtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgdXNlZERlZmF1bHQgPSBmYWxzZTtcbiAgICAgICAgdmFyIHVzZWRLZXkgPSBmYWxzZTtcbiAgICAgICAgdmFyIG5lZWRzUGx1cmFsSGFuZGxpbmcgPSBvcHRpb25zLmNvdW50ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMuY291bnQgIT09ICdzdHJpbmcnO1xuICAgICAgICB2YXIgaGFzRGVmYXVsdFZhbHVlID0gVHJhbnNsYXRvci5oYXNEZWZhdWx0VmFsdWUob3B0aW9ucyk7XG4gICAgICAgIHZhciBkZWZhdWx0VmFsdWVTdWZmaXggPSBuZWVkc1BsdXJhbEhhbmRsaW5nID8gdGhpcy5wbHVyYWxSZXNvbHZlci5nZXRTdWZmaXgobG5nLCBvcHRpb25zLmNvdW50LCBvcHRpb25zKSA6ICcnO1xuICAgICAgICB2YXIgZGVmYXVsdFZhbHVlID0gb3B0aW9uc1tcImRlZmF1bHRWYWx1ZVwiLmNvbmNhdChkZWZhdWx0VmFsdWVTdWZmaXgpXSB8fCBvcHRpb25zLmRlZmF1bHRWYWx1ZTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZExvb2t1cChyZXMpICYmIGhhc0RlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgIHVzZWREZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgICByZXMgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZExvb2t1cChyZXMpKSB7XG4gICAgICAgICAgdXNlZEtleSA9IHRydWU7XG4gICAgICAgICAgcmVzID0ga2V5O1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG1pc3NpbmdLZXlOb1ZhbHVlRmFsbGJhY2tUb0tleSA9IG9wdGlvbnMubWlzc2luZ0tleU5vVmFsdWVGYWxsYmFja1RvS2V5IHx8IHRoaXMub3B0aW9ucy5taXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXk7XG4gICAgICAgIHZhciByZXNGb3JNaXNzaW5nID0gbWlzc2luZ0tleU5vVmFsdWVGYWxsYmFja1RvS2V5ICYmIHVzZWRLZXkgPyB1bmRlZmluZWQgOiByZXM7XG4gICAgICAgIHZhciB1cGRhdGVNaXNzaW5nID0gaGFzRGVmYXVsdFZhbHVlICYmIGRlZmF1bHRWYWx1ZSAhPT0gcmVzICYmIHRoaXMub3B0aW9ucy51cGRhdGVNaXNzaW5nO1xuXG4gICAgICAgIGlmICh1c2VkS2V5IHx8IHVzZWREZWZhdWx0IHx8IHVwZGF0ZU1pc3NpbmcpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5sb2codXBkYXRlTWlzc2luZyA/ICd1cGRhdGVLZXknIDogJ21pc3NpbmdLZXknLCBsbmcsIG5hbWVzcGFjZSwga2V5LCB1cGRhdGVNaXNzaW5nID8gZGVmYXVsdFZhbHVlIDogcmVzKTtcblxuICAgICAgICAgIGlmIChrZXlTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIHZhciBmayA9IHRoaXMucmVzb2x2ZShrZXksIF9vYmplY3RTcHJlYWQkMihfb2JqZWN0U3ByZWFkJDIoe30sIG9wdGlvbnMpLCB7fSwge1xuICAgICAgICAgICAgICBrZXlTZXBhcmF0b3I6IGZhbHNlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBpZiAoZmsgJiYgZmsucmVzKSB0aGlzLmxvZ2dlci53YXJuKCdTZWVtcyB0aGUgbG9hZGVkIHRyYW5zbGF0aW9ucyB3ZXJlIGluIGZsYXQgSlNPTiBmb3JtYXQgaW5zdGVhZCBvZiBuZXN0ZWQuIEVpdGhlciBzZXQga2V5U2VwYXJhdG9yOiBmYWxzZSBvbiBpbml0IG9yIG1ha2Ugc3VyZSB5b3VyIHRyYW5zbGF0aW9ucyBhcmUgcHVibGlzaGVkIGluIG5lc3RlZCBmb3JtYXQuJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGxuZ3MgPSBbXTtcbiAgICAgICAgICB2YXIgZmFsbGJhY2tMbmdzID0gdGhpcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nLCBvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlKTtcblxuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2F2ZU1pc3NpbmdUbyA9PT0gJ2ZhbGxiYWNrJyAmJiBmYWxsYmFja0xuZ3MgJiYgZmFsbGJhY2tMbmdzWzBdKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZhbGxiYWNrTG5ncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBsbmdzLnB1c2goZmFsbGJhY2tMbmdzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZ1RvID09PSAnYWxsJykge1xuICAgICAgICAgICAgbG5ncyA9IHRoaXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkob3B0aW9ucy5sbmcgfHwgdGhpcy5sYW5ndWFnZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxuZ3MucHVzaChvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgc2VuZCA9IGZ1bmN0aW9uIHNlbmQobCwgaywgc3BlY2lmaWNEZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBkZWZhdWx0Rm9yTWlzc2luZyA9IGhhc0RlZmF1bHRWYWx1ZSAmJiBzcGVjaWZpY0RlZmF1bHRWYWx1ZSAhPT0gcmVzID8gc3BlY2lmaWNEZWZhdWx0VmFsdWUgOiByZXNGb3JNaXNzaW5nO1xuXG4gICAgICAgICAgICBpZiAoX3RoaXMyLm9wdGlvbnMubWlzc2luZ0tleUhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgX3RoaXMyLm9wdGlvbnMubWlzc2luZ0tleUhhbmRsZXIobCwgbmFtZXNwYWNlLCBrLCBkZWZhdWx0Rm9yTWlzc2luZywgdXBkYXRlTWlzc2luZywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKF90aGlzMi5iYWNrZW5kQ29ubmVjdG9yICYmIF90aGlzMi5iYWNrZW5kQ29ubmVjdG9yLnNhdmVNaXNzaW5nKSB7XG4gICAgICAgICAgICAgIF90aGlzMi5iYWNrZW5kQ29ubmVjdG9yLnNhdmVNaXNzaW5nKGwsIG5hbWVzcGFjZSwgaywgZGVmYXVsdEZvck1pc3NpbmcsIHVwZGF0ZU1pc3NpbmcsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfdGhpczIuZW1pdCgnbWlzc2luZ0tleScsIGwsIG5hbWVzcGFjZSwgaywgcmVzKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZykge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZ1BsdXJhbHMgJiYgbmVlZHNQbHVyYWxIYW5kbGluZykge1xuICAgICAgICAgICAgICBsbmdzLmZvckVhY2goZnVuY3Rpb24gKGxhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnBsdXJhbFJlc29sdmVyLmdldFN1ZmZpeGVzKGxhbmd1YWdlKS5mb3JFYWNoKGZ1bmN0aW9uIChzdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgIHNlbmQoW2xhbmd1YWdlXSwga2V5ICsgc3VmZml4LCBvcHRpb25zW1wiZGVmYXVsdFZhbHVlXCIuY29uY2F0KHN1ZmZpeCldIHx8IGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2VuZChsbmdzLCBrZXksIGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVzID0gdGhpcy5leHRlbmRUcmFuc2xhdGlvbihyZXMsIGtleXMsIG9wdGlvbnMsIHJlc29sdmVkLCBsYXN0S2V5KTtcbiAgICAgICAgaWYgKHVzZWRLZXkgJiYgcmVzID09PSBrZXkgJiYgdGhpcy5vcHRpb25zLmFwcGVuZE5hbWVzcGFjZVRvTWlzc2luZ0tleSkgcmVzID0gXCJcIi5jb25jYXQobmFtZXNwYWNlLCBcIjpcIikuY29uY2F0KGtleSk7XG4gICAgICAgIGlmICgodXNlZEtleSB8fCB1c2VkRGVmYXVsdCkgJiYgdGhpcy5vcHRpb25zLnBhcnNlTWlzc2luZ0tleUhhbmRsZXIpIHJlcyA9IHRoaXMub3B0aW9ucy5wYXJzZU1pc3NpbmdLZXlIYW5kbGVyKHJlcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4dGVuZFRyYW5zbGF0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGV4dGVuZFRyYW5zbGF0aW9uKHJlcywga2V5LCBvcHRpb25zLCByZXNvbHZlZCwgbGFzdEtleSkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIGlmICh0aGlzLmkxOG5Gb3JtYXQgJiYgdGhpcy5pMThuRm9ybWF0LnBhcnNlKSB7XG4gICAgICAgIHJlcyA9IHRoaXMuaTE4bkZvcm1hdC5wYXJzZShyZXMsIG9wdGlvbnMsIHJlc29sdmVkLnVzZWRMbmcsIHJlc29sdmVkLnVzZWROUywgcmVzb2x2ZWQudXNlZEtleSwge1xuICAgICAgICAgIHJlc29sdmVkOiByZXNvbHZlZFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuc2tpcEludGVycG9sYXRpb24pIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuaW50ZXJwb2xhdGlvbikgdGhpcy5pbnRlcnBvbGF0b3IuaW5pdChfb2JqZWN0U3ByZWFkJDIoX29iamVjdFNwcmVhZCQyKHt9LCBvcHRpb25zKSwge1xuICAgICAgICAgIGludGVycG9sYXRpb246IF9vYmplY3RTcHJlYWQkMihfb2JqZWN0U3ByZWFkJDIoe30sIHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uKSwgb3B0aW9ucy5pbnRlcnBvbGF0aW9uKVxuICAgICAgICB9KSk7XG4gICAgICAgIHZhciBza2lwT25WYXJpYWJsZXMgPSB0eXBlb2YgcmVzID09PSAnc3RyaW5nJyAmJiAob3B0aW9ucy5pbnRlcnBvbGF0aW9uICYmIG9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXMgfHwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uc2tpcE9uVmFyaWFibGVzKTtcbiAgICAgICAgdmFyIG5lc3RCZWY7XG5cbiAgICAgICAgaWYgKHNraXBPblZhcmlhYmxlcykge1xuICAgICAgICAgIHZhciBuYiA9IHJlcy5tYXRjaCh0aGlzLmludGVycG9sYXRvci5uZXN0aW5nUmVnZXhwKTtcbiAgICAgICAgICBuZXN0QmVmID0gbmIgJiYgbmIubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRhdGEgPSBvcHRpb25zLnJlcGxhY2UgJiYgdHlwZW9mIG9wdGlvbnMucmVwbGFjZSAhPT0gJ3N0cmluZycgPyBvcHRpb25zLnJlcGxhY2UgOiBvcHRpb25zO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZGVmYXVsdFZhcmlhYmxlcykgZGF0YSA9IF9vYmplY3RTcHJlYWQkMihfb2JqZWN0U3ByZWFkJDIoe30sIHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmRlZmF1bHRWYXJpYWJsZXMpLCBkYXRhKTtcbiAgICAgICAgcmVzID0gdGhpcy5pbnRlcnBvbGF0b3IuaW50ZXJwb2xhdGUocmVzLCBkYXRhLCBvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlLCBvcHRpb25zKTtcblxuICAgICAgICBpZiAoc2tpcE9uVmFyaWFibGVzKSB7XG4gICAgICAgICAgdmFyIG5hID0gcmVzLm1hdGNoKHRoaXMuaW50ZXJwb2xhdG9yLm5lc3RpbmdSZWdleHApO1xuICAgICAgICAgIHZhciBuZXN0QWZ0ID0gbmEgJiYgbmEubGVuZ3RoO1xuICAgICAgICAgIGlmIChuZXN0QmVmIDwgbmVzdEFmdCkgb3B0aW9ucy5uZXN0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5uZXN0ICE9PSBmYWxzZSkgcmVzID0gdGhpcy5pbnRlcnBvbGF0b3IubmVzdChyZXMsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGxhc3RLZXkgJiYgbGFzdEtleVswXSA9PT0gYXJnc1swXSAmJiAhb3B0aW9ucy5jb250ZXh0KSB7XG4gICAgICAgICAgICBfdGhpczMubG9nZ2VyLndhcm4oXCJJdCBzZWVtcyB5b3UgYXJlIG5lc3RpbmcgcmVjdXJzaXZlbHkga2V5OiBcIi5jb25jYXQoYXJnc1swXSwgXCIgaW4ga2V5OiBcIikuY29uY2F0KGtleVswXSkpO1xuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gX3RoaXMzLnRyYW5zbGF0ZS5hcHBseShfdGhpczMsIGFyZ3MuY29uY2F0KFtrZXldKSk7XG4gICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5pbnRlcnBvbGF0aW9uKSB0aGlzLmludGVycG9sYXRvci5yZXNldCgpO1xuICAgICAgfVxuXG4gICAgICB2YXIgcG9zdFByb2Nlc3MgPSBvcHRpb25zLnBvc3RQcm9jZXNzIHx8IHRoaXMub3B0aW9ucy5wb3N0UHJvY2VzcztcbiAgICAgIHZhciBwb3N0UHJvY2Vzc29yTmFtZXMgPSB0eXBlb2YgcG9zdFByb2Nlc3MgPT09ICdzdHJpbmcnID8gW3Bvc3RQcm9jZXNzXSA6IHBvc3RQcm9jZXNzO1xuXG4gICAgICBpZiAocmVzICE9PSB1bmRlZmluZWQgJiYgcmVzICE9PSBudWxsICYmIHBvc3RQcm9jZXNzb3JOYW1lcyAmJiBwb3N0UHJvY2Vzc29yTmFtZXMubGVuZ3RoICYmIG9wdGlvbnMuYXBwbHlQb3N0UHJvY2Vzc29yICE9PSBmYWxzZSkge1xuICAgICAgICByZXMgPSBwb3N0UHJvY2Vzc29yLmhhbmRsZShwb3N0UHJvY2Vzc29yTmFtZXMsIHJlcywga2V5LCB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnBvc3RQcm9jZXNzUGFzc1Jlc29sdmVkID8gX29iamVjdFNwcmVhZCQyKHtcbiAgICAgICAgICBpMThuUmVzb2x2ZWQ6IHJlc29sdmVkXG4gICAgICAgIH0sIG9wdGlvbnMpIDogb3B0aW9ucywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc29sdmVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzb2x2ZShrZXlzKSB7XG4gICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgdmFyIGZvdW5kO1xuICAgICAgdmFyIHVzZWRLZXk7XG4gICAgICB2YXIgZXhhY3RVc2VkS2V5O1xuICAgICAgdmFyIHVzZWRMbmc7XG4gICAgICB2YXIgdXNlZE5TO1xuICAgICAgaWYgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJykga2V5cyA9IFtrZXlzXTtcbiAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgICAgICBpZiAoX3RoaXM0LmlzVmFsaWRMb29rdXAoZm91bmQpKSByZXR1cm47XG5cbiAgICAgICAgdmFyIGV4dHJhY3RlZCA9IF90aGlzNC5leHRyYWN0RnJvbUtleShrLCBvcHRpb25zKTtcblxuICAgICAgICB2YXIga2V5ID0gZXh0cmFjdGVkLmtleTtcbiAgICAgICAgdXNlZEtleSA9IGtleTtcbiAgICAgICAgdmFyIG5hbWVzcGFjZXMgPSBleHRyYWN0ZWQubmFtZXNwYWNlcztcbiAgICAgICAgaWYgKF90aGlzNC5vcHRpb25zLmZhbGxiYWNrTlMpIG5hbWVzcGFjZXMgPSBuYW1lc3BhY2VzLmNvbmNhdChfdGhpczQub3B0aW9ucy5mYWxsYmFja05TKTtcbiAgICAgICAgdmFyIG5lZWRzUGx1cmFsSGFuZGxpbmcgPSBvcHRpb25zLmNvdW50ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMuY291bnQgIT09ICdzdHJpbmcnO1xuXG4gICAgICAgIHZhciBuZWVkc1plcm9TdWZmaXhMb29rdXAgPSBuZWVkc1BsdXJhbEhhbmRsaW5nICYmICFvcHRpb25zLm9yZGluYWwgJiYgb3B0aW9ucy5jb3VudCA9PT0gMCAmJiBfdGhpczQucGx1cmFsUmVzb2x2ZXIuc2hvdWxkVXNlSW50bEFwaSgpO1xuXG4gICAgICAgIHZhciBuZWVkc0NvbnRleHRIYW5kbGluZyA9IG9wdGlvbnMuY29udGV4dCAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAnbnVtYmVyJykgJiYgb3B0aW9ucy5jb250ZXh0ICE9PSAnJztcbiAgICAgICAgdmFyIGNvZGVzID0gb3B0aW9ucy5sbmdzID8gb3B0aW9ucy5sbmdzIDogX3RoaXM0Lmxhbmd1YWdlVXRpbHMudG9SZXNvbHZlSGllcmFyY2h5KG9wdGlvbnMubG5nIHx8IF90aGlzNC5sYW5ndWFnZSwgb3B0aW9ucy5mYWxsYmFja0xuZyk7XG4gICAgICAgIG5hbWVzcGFjZXMuZm9yRWFjaChmdW5jdGlvbiAobnMpIHtcbiAgICAgICAgICBpZiAoX3RoaXM0LmlzVmFsaWRMb29rdXAoZm91bmQpKSByZXR1cm47XG4gICAgICAgICAgdXNlZE5TID0gbnM7XG5cbiAgICAgICAgICBpZiAoIWNoZWNrZWRMb2FkZWRGb3JbXCJcIi5jb25jYXQoY29kZXNbMF0sIFwiLVwiKS5jb25jYXQobnMpXSAmJiBfdGhpczQudXRpbHMgJiYgX3RoaXM0LnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZSAmJiAhX3RoaXM0LnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZSh1c2VkTlMpKSB7XG4gICAgICAgICAgICBjaGVja2VkTG9hZGVkRm9yW1wiXCIuY29uY2F0KGNvZGVzWzBdLCBcIi1cIikuY29uY2F0KG5zKV0gPSB0cnVlO1xuXG4gICAgICAgICAgICBfdGhpczQubG9nZ2VyLndhcm4oXCJrZXkgXFxcIlwiLmNvbmNhdCh1c2VkS2V5LCBcIlxcXCIgZm9yIGxhbmd1YWdlcyBcXFwiXCIpLmNvbmNhdChjb2Rlcy5qb2luKCcsICcpLCBcIlxcXCIgd29uJ3QgZ2V0IHJlc29sdmVkIGFzIG5hbWVzcGFjZSBcXFwiXCIpLmNvbmNhdCh1c2VkTlMsIFwiXFxcIiB3YXMgbm90IHlldCBsb2FkZWRcIiksICdUaGlzIG1lYW5zIHNvbWV0aGluZyBJUyBXUk9ORyBpbiB5b3VyIHNldHVwLiBZb3UgYWNjZXNzIHRoZSB0IGZ1bmN0aW9uIGJlZm9yZSBpMThuZXh0LmluaXQgLyBpMThuZXh0LmxvYWROYW1lc3BhY2UgLyBpMThuZXh0LmNoYW5nZUxhbmd1YWdlIHdhcyBkb25lLiBXYWl0IGZvciB0aGUgY2FsbGJhY2sgb3IgUHJvbWlzZSB0byByZXNvbHZlIGJlZm9yZSBhY2Nlc3NpbmcgaXQhISEnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXM0LmlzVmFsaWRMb29rdXAoZm91bmQpKSByZXR1cm47XG4gICAgICAgICAgICB1c2VkTG5nID0gY29kZTtcbiAgICAgICAgICAgIHZhciBmaW5hbEtleXMgPSBba2V5XTtcblxuICAgICAgICAgICAgaWYgKF90aGlzNC5pMThuRm9ybWF0ICYmIF90aGlzNC5pMThuRm9ybWF0LmFkZExvb2t1cEtleXMpIHtcbiAgICAgICAgICAgICAgX3RoaXM0LmkxOG5Gb3JtYXQuYWRkTG9va3VwS2V5cyhmaW5hbEtleXMsIGtleSwgY29kZSwgbnMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIHBsdXJhbFN1ZmZpeDtcbiAgICAgICAgICAgICAgaWYgKG5lZWRzUGx1cmFsSGFuZGxpbmcpIHBsdXJhbFN1ZmZpeCA9IF90aGlzNC5wbHVyYWxSZXNvbHZlci5nZXRTdWZmaXgoY29kZSwgb3B0aW9ucy5jb3VudCwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgIHZhciB6ZXJvU3VmZml4ID0gJ196ZXJvJztcblxuICAgICAgICAgICAgICBpZiAobmVlZHNQbHVyYWxIYW5kbGluZykge1xuICAgICAgICAgICAgICAgIGZpbmFsS2V5cy5wdXNoKGtleSArIHBsdXJhbFN1ZmZpeCk7XG5cbiAgICAgICAgICAgICAgICBpZiAobmVlZHNaZXJvU3VmZml4TG9va3VwKSB7XG4gICAgICAgICAgICAgICAgICBmaW5hbEtleXMucHVzaChrZXkgKyB6ZXJvU3VmZml4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAobmVlZHNDb250ZXh0SGFuZGxpbmcpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29udGV4dEtleSA9IFwiXCIuY29uY2F0KGtleSkuY29uY2F0KF90aGlzNC5vcHRpb25zLmNvbnRleHRTZXBhcmF0b3IpLmNvbmNhdChvcHRpb25zLmNvbnRleHQpO1xuICAgICAgICAgICAgICAgIGZpbmFsS2V5cy5wdXNoKGNvbnRleHRLZXkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG5lZWRzUGx1cmFsSGFuZGxpbmcpIHtcbiAgICAgICAgICAgICAgICAgIGZpbmFsS2V5cy5wdXNoKGNvbnRleHRLZXkgKyBwbHVyYWxTdWZmaXgpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAobmVlZHNaZXJvU3VmZml4TG9va3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsS2V5cy5wdXNoKGNvbnRleHRLZXkgKyB6ZXJvU3VmZml4KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBvc3NpYmxlS2V5O1xuXG4gICAgICAgICAgICB3aGlsZSAocG9zc2libGVLZXkgPSBmaW5hbEtleXMucG9wKCkpIHtcbiAgICAgICAgICAgICAgaWYgKCFfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpIHtcbiAgICAgICAgICAgICAgICBleGFjdFVzZWRLZXkgPSBwb3NzaWJsZUtleTtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IF90aGlzNC5nZXRSZXNvdXJjZShjb2RlLCBucywgcG9zc2libGVLZXksIG9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXM6IGZvdW5kLFxuICAgICAgICB1c2VkS2V5OiB1c2VkS2V5LFxuICAgICAgICBleGFjdFVzZWRLZXk6IGV4YWN0VXNlZEtleSxcbiAgICAgICAgdXNlZExuZzogdXNlZExuZyxcbiAgICAgICAgdXNlZE5TOiB1c2VkTlNcbiAgICAgIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImlzVmFsaWRMb29rdXBcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaXNWYWxpZExvb2t1cChyZXMpIHtcbiAgICAgIHJldHVybiByZXMgIT09IHVuZGVmaW5lZCAmJiAhKCF0aGlzLm9wdGlvbnMucmV0dXJuTnVsbCAmJiByZXMgPT09IG51bGwpICYmICEoIXRoaXMub3B0aW9ucy5yZXR1cm5FbXB0eVN0cmluZyAmJiByZXMgPT09ICcnKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UmVzb3VyY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UmVzb3VyY2UoY29kZSwgbnMsIGtleSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuICAgICAgaWYgKHRoaXMuaTE4bkZvcm1hdCAmJiB0aGlzLmkxOG5Gb3JtYXQuZ2V0UmVzb3VyY2UpIHJldHVybiB0aGlzLmkxOG5Gb3JtYXQuZ2V0UmVzb3VyY2UoY29kZSwgbnMsIGtleSwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gdGhpcy5yZXNvdXJjZVN0b3JlLmdldFJlc291cmNlKGNvZGUsIG5zLCBrZXksIG9wdGlvbnMpO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImhhc0RlZmF1bHRWYWx1ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNEZWZhdWx0VmFsdWUob3B0aW9ucykge1xuICAgICAgdmFyIHByZWZpeCA9ICdkZWZhdWx0VmFsdWUnO1xuXG4gICAgICBmb3IgKHZhciBvcHRpb24gaW4gb3B0aW9ucykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsIG9wdGlvbikgJiYgcHJlZml4ID09PSBvcHRpb24uc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgpICYmIHVuZGVmaW5lZCAhPT0gb3B0aW9uc1tvcHRpb25dKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUcmFuc2xhdG9yO1xufShFdmVudEVtaXR0ZXIpO1xuXG5mdW5jdGlvbiBjYXBpdGFsaXplKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyaW5nLnNsaWNlKDEpO1xufVxuXG52YXIgTGFuZ3VhZ2VVdGlsID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBMYW5ndWFnZVV0aWwob3B0aW9ucykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMYW5ndWFnZVV0aWwpO1xuXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnN1cHBvcnRlZExuZ3MgPSB0aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5ncyB8fCBmYWxzZTtcbiAgICB0aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXIuY3JlYXRlKCdsYW5ndWFnZVV0aWxzJyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTGFuZ3VhZ2VVdGlsLCBbe1xuICAgIGtleTogXCJnZXRTY3JpcHRQYXJ0RnJvbUNvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U2NyaXB0UGFydEZyb21Db2RlKGNvZGUpIHtcbiAgICAgIGlmICghY29kZSB8fCBjb2RlLmluZGV4T2YoJy0nKSA8IDApIHJldHVybiBudWxsO1xuICAgICAgdmFyIHAgPSBjb2RlLnNwbGl0KCctJyk7XG4gICAgICBpZiAocC5sZW5ndGggPT09IDIpIHJldHVybiBudWxsO1xuICAgICAgcC5wb3AoKTtcbiAgICAgIGlmIChwW3AubGVuZ3RoIC0gMV0udG9Mb3dlckNhc2UoKSA9PT0gJ3gnKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShwLmpvaW4oJy0nKSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldExhbmd1YWdlUGFydEZyb21Db2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpIHtcbiAgICAgIGlmICghY29kZSB8fCBjb2RlLmluZGV4T2YoJy0nKSA8IDApIHJldHVybiBjb2RlO1xuICAgICAgdmFyIHAgPSBjb2RlLnNwbGl0KCctJyk7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUocFswXSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvcm1hdExhbmd1YWdlQ29kZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3JtYXRMYW5ndWFnZUNvZGUoY29kZSkge1xuICAgICAgaWYgKHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJyAmJiBjb2RlLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgICAgIHZhciBzcGVjaWFsQ2FzZXMgPSBbJ2hhbnMnLCAnaGFudCcsICdsYXRuJywgJ2N5cmwnLCAnY2FucycsICdtb25nJywgJ2FyYWInXTtcbiAgICAgICAgdmFyIHAgPSBjb2RlLnNwbGl0KCctJyk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb3dlckNhc2VMbmcpIHtcbiAgICAgICAgICBwID0gcC5tYXAoZnVuY3Rpb24gKHBhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJ0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAocC5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBwWzBdID0gcFswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHBbMV0gPSBwWzFdLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgaWYgKHNwZWNpYWxDYXNlcy5pbmRleE9mKHBbMV0udG9Mb3dlckNhc2UoKSkgPiAtMSkgcFsxXSA9IGNhcGl0YWxpemUocFsxXS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfSBlbHNlIGlmIChwLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgIHBbMF0gPSBwWzBdLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgaWYgKHBbMV0ubGVuZ3RoID09PSAyKSBwWzFdID0gcFsxXS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgIGlmIChwWzBdICE9PSAnc2duJyAmJiBwWzJdLmxlbmd0aCA9PT0gMikgcFsyXSA9IHBbMl0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgICBpZiAoc3BlY2lhbENhc2VzLmluZGV4T2YocFsxXS50b0xvd2VyQ2FzZSgpKSA+IC0xKSBwWzFdID0gY2FwaXRhbGl6ZShwWzFdLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgIGlmIChzcGVjaWFsQ2FzZXMuaW5kZXhPZihwWzJdLnRvTG93ZXJDYXNlKCkpID4gLTEpIHBbMl0gPSBjYXBpdGFsaXplKHBbMl0udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcC5qb2luKCctJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY2xlYW5Db2RlIHx8IHRoaXMub3B0aW9ucy5sb3dlckNhc2VMbmcgPyBjb2RlLnRvTG93ZXJDYXNlKCkgOiBjb2RlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc1N1cHBvcnRlZENvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaXNTdXBwb3J0ZWRDb2RlKGNvZGUpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9hZCA9PT0gJ2xhbmd1YWdlT25seScgfHwgdGhpcy5vcHRpb25zLm5vbkV4cGxpY2l0U3VwcG9ydGVkTG5ncykge1xuICAgICAgICBjb2RlID0gdGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICF0aGlzLnN1cHBvcnRlZExuZ3MgfHwgIXRoaXMuc3VwcG9ydGVkTG5ncy5sZW5ndGggfHwgdGhpcy5zdXBwb3J0ZWRMbmdzLmluZGV4T2YoY29kZSkgPiAtMTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0QmVzdE1hdGNoRnJvbUNvZGVzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldEJlc3RNYXRjaEZyb21Db2Rlcyhjb2Rlcykge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgaWYgKCFjb2RlcykgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgZm91bmQ7XG4gICAgICBjb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgIGlmIChmb3VuZCkgcmV0dXJuO1xuXG4gICAgICAgIHZhciBjbGVhbmVkTG5nID0gX3RoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpO1xuXG4gICAgICAgIGlmICghX3RoaXMub3B0aW9ucy5zdXBwb3J0ZWRMbmdzIHx8IF90aGlzLmlzU3VwcG9ydGVkQ29kZShjbGVhbmVkTG5nKSkgZm91bmQgPSBjbGVhbmVkTG5nO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICghZm91bmQgJiYgdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MpIHtcbiAgICAgICAgY29kZXMuZm9yRWFjaChmdW5jdGlvbiAoY29kZSkge1xuICAgICAgICAgIGlmIChmb3VuZCkgcmV0dXJuO1xuXG4gICAgICAgICAgdmFyIGxuZ09ubHkgPSBfdGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKTtcblxuICAgICAgICAgIGlmIChfdGhpcy5pc1N1cHBvcnRlZENvZGUobG5nT25seSkpIHJldHVybiBmb3VuZCA9IGxuZ09ubHk7XG4gICAgICAgICAgZm91bmQgPSBfdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MuZmluZChmdW5jdGlvbiAoc3VwcG9ydGVkTG5nKSB7XG4gICAgICAgICAgICBpZiAoc3VwcG9ydGVkTG5nLmluZGV4T2YobG5nT25seSkgPT09IDApIHJldHVybiBzdXBwb3J0ZWRMbmc7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWZvdW5kKSBmb3VuZCA9IHRoaXMuZ2V0RmFsbGJhY2tDb2Rlcyh0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcpWzBdO1xuICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRGYWxsYmFja0NvZGVzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldEZhbGxiYWNrQ29kZXMoZmFsbGJhY2tzLCBjb2RlKSB7XG4gICAgICBpZiAoIWZhbGxiYWNrcykgcmV0dXJuIFtdO1xuICAgICAgaWYgKHR5cGVvZiBmYWxsYmFja3MgPT09ICdmdW5jdGlvbicpIGZhbGxiYWNrcyA9IGZhbGxiYWNrcyhjb2RlKTtcbiAgICAgIGlmICh0eXBlb2YgZmFsbGJhY2tzID09PSAnc3RyaW5nJykgZmFsbGJhY2tzID0gW2ZhbGxiYWNrc107XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShmYWxsYmFja3MpID09PSAnW29iamVjdCBBcnJheV0nKSByZXR1cm4gZmFsbGJhY2tzO1xuICAgICAgaWYgKCFjb2RlKSByZXR1cm4gZmFsbGJhY2tzW1wiZGVmYXVsdFwiXSB8fCBbXTtcbiAgICAgIHZhciBmb3VuZCA9IGZhbGxiYWNrc1tjb2RlXTtcbiAgICAgIGlmICghZm91bmQpIGZvdW5kID0gZmFsbGJhY2tzW3RoaXMuZ2V0U2NyaXB0UGFydEZyb21Db2RlKGNvZGUpXTtcbiAgICAgIGlmICghZm91bmQpIGZvdW5kID0gZmFsbGJhY2tzW3RoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpXTtcbiAgICAgIGlmICghZm91bmQpIGZvdW5kID0gZmFsbGJhY2tzW3RoaXMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSldO1xuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSBmYWxsYmFja3NbXCJkZWZhdWx0XCJdO1xuICAgICAgcmV0dXJuIGZvdW5kIHx8IFtdO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0b1Jlc29sdmVIaWVyYXJjaHlcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdG9SZXNvbHZlSGllcmFyY2h5KGNvZGUsIGZhbGxiYWNrQ29kZSkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBmYWxsYmFja0NvZGVzID0gdGhpcy5nZXRGYWxsYmFja0NvZGVzKGZhbGxiYWNrQ29kZSB8fCB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcgfHwgW10sIGNvZGUpO1xuICAgICAgdmFyIGNvZGVzID0gW107XG5cbiAgICAgIHZhciBhZGRDb2RlID0gZnVuY3Rpb24gYWRkQ29kZShjKSB7XG4gICAgICAgIGlmICghYykgcmV0dXJuO1xuXG4gICAgICAgIGlmIChfdGhpczIuaXNTdXBwb3J0ZWRDb2RlKGMpKSB7XG4gICAgICAgICAgY29kZXMucHVzaChjKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpczIubG9nZ2VyLndhcm4oXCJyZWplY3RpbmcgbGFuZ3VhZ2UgY29kZSBub3QgZm91bmQgaW4gc3VwcG9ydGVkTG5nczogXCIuY29uY2F0KGMpKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgaWYgKHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJyAmJiBjb2RlLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9hZCAhPT0gJ2xhbmd1YWdlT25seScpIGFkZENvZGUodGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSkpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvYWQgIT09ICdsYW5ndWFnZU9ubHknICYmIHRoaXMub3B0aW9ucy5sb2FkICE9PSAnY3VycmVudE9ubHknKSBhZGRDb2RlKHRoaXMuZ2V0U2NyaXB0UGFydEZyb21Db2RlKGNvZGUpKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb2FkICE9PSAnY3VycmVudE9ubHknKSBhZGRDb2RlKHRoaXMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgYWRkQ29kZSh0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShjb2RlKSk7XG4gICAgICB9XG5cbiAgICAgIGZhbGxiYWNrQ29kZXMuZm9yRWFjaChmdW5jdGlvbiAoZmMpIHtcbiAgICAgICAgaWYgKGNvZGVzLmluZGV4T2YoZmMpIDwgMCkgYWRkQ29kZShfdGhpczIuZm9ybWF0TGFuZ3VhZ2VDb2RlKGZjKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb2RlcztcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTGFuZ3VhZ2VVdGlsO1xufSgpO1xuXG52YXIgc2V0cyA9IFt7XG4gIGxuZ3M6IFsnYWNoJywgJ2FrJywgJ2FtJywgJ2FybicsICdicicsICdmaWwnLCAnZ3VuJywgJ2xuJywgJ21mZScsICdtZycsICdtaScsICdvYycsICdwdCcsICdwdC1CUicsICd0ZycsICd0bCcsICd0aScsICd0cicsICd1eicsICd3YSddLFxuICBucjogWzEsIDJdLFxuICBmYzogMVxufSwge1xuICBsbmdzOiBbJ2FmJywgJ2FuJywgJ2FzdCcsICdheicsICdiZycsICdibicsICdjYScsICdkYScsICdkZScsICdkZXYnLCAnZWwnLCAnZW4nLCAnZW8nLCAnZXMnLCAnZXQnLCAnZXUnLCAnZmknLCAnZm8nLCAnZnVyJywgJ2Z5JywgJ2dsJywgJ2d1JywgJ2hhJywgJ2hpJywgJ2h1JywgJ2h5JywgJ2lhJywgJ2l0JywgJ2trJywgJ2tuJywgJ2t1JywgJ2xiJywgJ21haScsICdtbCcsICdtbicsICdtcicsICduYWgnLCAnbmFwJywgJ25iJywgJ25lJywgJ25sJywgJ25uJywgJ25vJywgJ25zbycsICdwYScsICdwYXAnLCAncG1zJywgJ3BzJywgJ3B0LVBUJywgJ3JtJywgJ3NjbycsICdzZScsICdzaScsICdzbycsICdzb24nLCAnc3EnLCAnc3YnLCAnc3cnLCAndGEnLCAndGUnLCAndGsnLCAndXInLCAneW8nXSxcbiAgbnI6IFsxLCAyXSxcbiAgZmM6IDJcbn0sIHtcbiAgbG5nczogWydheScsICdibycsICdjZ2cnLCAnZmEnLCAnaHQnLCAnaWQnLCAnamEnLCAnamJvJywgJ2thJywgJ2ttJywgJ2tvJywgJ2t5JywgJ2xvJywgJ21zJywgJ3NhaCcsICdzdScsICd0aCcsICd0dCcsICd1ZycsICd2aScsICd3bycsICd6aCddLFxuICBucjogWzFdLFxuICBmYzogM1xufSwge1xuICBsbmdzOiBbJ2JlJywgJ2JzJywgJ2NucicsICdkeicsICdocicsICdydScsICdzcicsICd1ayddLFxuICBucjogWzEsIDIsIDVdLFxuICBmYzogNFxufSwge1xuICBsbmdzOiBbJ2FyJ10sXG4gIG5yOiBbMCwgMSwgMiwgMywgMTEsIDEwMF0sXG4gIGZjOiA1XG59LCB7XG4gIGxuZ3M6IFsnY3MnLCAnc2snXSxcbiAgbnI6IFsxLCAyLCA1XSxcbiAgZmM6IDZcbn0sIHtcbiAgbG5nczogWydjc2InLCAncGwnXSxcbiAgbnI6IFsxLCAyLCA1XSxcbiAgZmM6IDdcbn0sIHtcbiAgbG5nczogWydjeSddLFxuICBucjogWzEsIDIsIDMsIDhdLFxuICBmYzogOFxufSwge1xuICBsbmdzOiBbJ2ZyJ10sXG4gIG5yOiBbMSwgMl0sXG4gIGZjOiA5XG59LCB7XG4gIGxuZ3M6IFsnZ2EnXSxcbiAgbnI6IFsxLCAyLCAzLCA3LCAxMV0sXG4gIGZjOiAxMFxufSwge1xuICBsbmdzOiBbJ2dkJ10sXG4gIG5yOiBbMSwgMiwgMywgMjBdLFxuICBmYzogMTFcbn0sIHtcbiAgbG5nczogWydpcyddLFxuICBucjogWzEsIDJdLFxuICBmYzogMTJcbn0sIHtcbiAgbG5nczogWydqdiddLFxuICBucjogWzAsIDFdLFxuICBmYzogMTNcbn0sIHtcbiAgbG5nczogWydrdyddLFxuICBucjogWzEsIDIsIDMsIDRdLFxuICBmYzogMTRcbn0sIHtcbiAgbG5nczogWydsdCddLFxuICBucjogWzEsIDIsIDEwXSxcbiAgZmM6IDE1XG59LCB7XG4gIGxuZ3M6IFsnbHYnXSxcbiAgbnI6IFsxLCAyLCAwXSxcbiAgZmM6IDE2XG59LCB7XG4gIGxuZ3M6IFsnbWsnXSxcbiAgbnI6IFsxLCAyXSxcbiAgZmM6IDE3XG59LCB7XG4gIGxuZ3M6IFsnbW5rJ10sXG4gIG5yOiBbMCwgMSwgMl0sXG4gIGZjOiAxOFxufSwge1xuICBsbmdzOiBbJ210J10sXG4gIG5yOiBbMSwgMiwgMTEsIDIwXSxcbiAgZmM6IDE5XG59LCB7XG4gIGxuZ3M6IFsnb3InXSxcbiAgbnI6IFsyLCAxXSxcbiAgZmM6IDJcbn0sIHtcbiAgbG5nczogWydybyddLFxuICBucjogWzEsIDIsIDIwXSxcbiAgZmM6IDIwXG59LCB7XG4gIGxuZ3M6IFsnc2wnXSxcbiAgbnI6IFs1LCAxLCAyLCAzXSxcbiAgZmM6IDIxXG59LCB7XG4gIGxuZ3M6IFsnaGUnLCAnaXcnXSxcbiAgbnI6IFsxLCAyLCAyMCwgMjFdLFxuICBmYzogMjJcbn1dO1xudmFyIF9ydWxlc1BsdXJhbHNUeXBlcyA9IHtcbiAgMTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID4gMSk7XG4gIH0sXG4gIDI6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAhPSAxKTtcbiAgfSxcbiAgMzogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIDA7XG4gIH0sXG4gIDQ6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAlIDEwID09IDEgJiYgbiAlIDEwMCAhPSAxMSA/IDAgOiBuICUgMTAgPj0gMiAmJiBuICUgMTAgPD0gNCAmJiAobiAlIDEwMCA8IDEwIHx8IG4gJSAxMDAgPj0gMjApID8gMSA6IDIpO1xuICB9LFxuICA1OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMCA/IDAgOiBuID09IDEgPyAxIDogbiA9PSAyID8gMiA6IG4gJSAxMDAgPj0gMyAmJiBuICUgMTAwIDw9IDEwID8gMyA6IG4gJSAxMDAgPj0gMTEgPyA0IDogNSk7XG4gIH0sXG4gIDY6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPj0gMiAmJiBuIDw9IDQgPyAxIDogMik7XG4gIH0sXG4gIDc6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gJSAxMCA+PSAyICYmIG4gJSAxMCA8PSA0ICYmIChuICUgMTAwIDwgMTAgfHwgbiAlIDEwMCA+PSAyMCkgPyAxIDogMik7XG4gIH0sXG4gIDg6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMiA/IDEgOiBuICE9IDggJiYgbiAhPSAxMSA/IDIgOiAzKTtcbiAgfSxcbiAgOTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID49IDIpO1xuICB9LFxuICAxMDogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA9PSAyID8gMSA6IG4gPCA3ID8gMiA6IG4gPCAxMSA/IDMgOiA0KTtcbiAgfSxcbiAgMTE6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxIHx8IG4gPT0gMTEgPyAwIDogbiA9PSAyIHx8IG4gPT0gMTIgPyAxIDogbiA+IDIgJiYgbiA8IDIwID8gMiA6IDMpO1xuICB9LFxuICAxMjogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICUgMTAgIT0gMSB8fCBuICUgMTAwID09IDExKTtcbiAgfSxcbiAgMTM6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAhPT0gMCk7XG4gIH0sXG4gIDE0OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID09IDIgPyAxIDogbiA9PSAzID8gMiA6IDMpO1xuICB9LFxuICAxNTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICUgMTAgPT0gMSAmJiBuICUgMTAwICE9IDExID8gMCA6IG4gJSAxMCA+PSAyICYmIChuICUgMTAwIDwgMTAgfHwgbiAlIDEwMCA+PSAyMCkgPyAxIDogMik7XG4gIH0sXG4gIDE2OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMCA9PSAxICYmIG4gJSAxMDAgIT0gMTEgPyAwIDogbiAhPT0gMCA/IDEgOiAyKTtcbiAgfSxcbiAgMTc6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxIHx8IG4gJSAxMCA9PSAxICYmIG4gJSAxMDAgIT0gMTEgPyAwIDogMSk7XG4gIH0sXG4gIDE4OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMCA/IDAgOiBuID09IDEgPyAxIDogMik7XG4gIH0sXG4gIDE5OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID09IDAgfHwgbiAlIDEwMCA+IDEgJiYgbiAlIDEwMCA8IDExID8gMSA6IG4gJSAxMDAgPiAxMCAmJiBuICUgMTAwIDwgMjAgPyAyIDogMyk7XG4gIH0sXG4gIDIwOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID09IDAgfHwgbiAlIDEwMCA+IDAgJiYgbiAlIDEwMCA8IDIwID8gMSA6IDIpO1xuICB9LFxuICAyMTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICUgMTAwID09IDEgPyAxIDogbiAlIDEwMCA9PSAyID8gMiA6IG4gJSAxMDAgPT0gMyB8fCBuICUgMTAwID09IDQgPyAzIDogMCk7XG4gIH0sXG4gIDIyOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID09IDIgPyAxIDogKG4gPCAwIHx8IG4gPiAxMCkgJiYgbiAlIDEwID09IDAgPyAyIDogMyk7XG4gIH1cbn07XG52YXIgZGVwcmVjYXRlZEpzb25WZXJzaW9ucyA9IFsndjEnLCAndjInLCAndjMnXTtcbnZhciBzdWZmaXhlc09yZGVyID0ge1xuICB6ZXJvOiAwLFxuICBvbmU6IDEsXG4gIHR3bzogMixcbiAgZmV3OiAzLFxuICBtYW55OiA0LFxuICBvdGhlcjogNVxufTtcblxuZnVuY3Rpb24gY3JlYXRlUnVsZXMoKSB7XG4gIHZhciBydWxlcyA9IHt9O1xuICBzZXRzLmZvckVhY2goZnVuY3Rpb24gKHNldCkge1xuICAgIHNldC5sbmdzLmZvckVhY2goZnVuY3Rpb24gKGwpIHtcbiAgICAgIHJ1bGVzW2xdID0ge1xuICAgICAgICBudW1iZXJzOiBzZXQubnIsXG4gICAgICAgIHBsdXJhbHM6IF9ydWxlc1BsdXJhbHNUeXBlc1tzZXQuZmNdXG4gICAgICB9O1xuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIHJ1bGVzO1xufVxuXG52YXIgUGx1cmFsUmVzb2x2ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIFBsdXJhbFJlc29sdmVyKGxhbmd1YWdlVXRpbHMpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUGx1cmFsUmVzb2x2ZXIpO1xuXG4gICAgdGhpcy5sYW5ndWFnZVV0aWxzID0gbGFuZ3VhZ2VVdGlscztcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ3BsdXJhbFJlc29sdmVyJyk7XG5cbiAgICBpZiAoKCF0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04gfHwgdGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OID09PSAndjQnKSAmJiAodHlwZW9mIEludGwgPT09ICd1bmRlZmluZWQnIHx8ICFJbnRsLlBsdXJhbFJ1bGVzKSkge1xuICAgICAgdGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OID0gJ3YzJztcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdZb3VyIGVudmlyb25tZW50IHNlZW1zIG5vdCB0byBiZSBJbnRsIEFQSSBjb21wYXRpYmxlLCB1c2UgYW4gSW50bC5QbHVyYWxSdWxlcyBwb2x5ZmlsbC4gV2lsbCBmYWxsYmFjayB0byB0aGUgY29tcGF0aWJpbGl0eUpTT04gdjMgZm9ybWF0IGhhbmRsaW5nLicpO1xuICAgIH1cblxuICAgIHRoaXMucnVsZXMgPSBjcmVhdGVSdWxlcygpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFBsdXJhbFJlc29sdmVyLCBbe1xuICAgIGtleTogXCJhZGRSdWxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGFkZFJ1bGUobG5nLCBvYmopIHtcbiAgICAgIHRoaXMucnVsZXNbbG5nXSA9IG9iajtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UnVsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRSdWxlKGNvZGUpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuICAgICAgaWYgKHRoaXMuc2hvdWxkVXNlSW50bEFwaSgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLlBsdXJhbFJ1bGVzKGNvZGUsIHtcbiAgICAgICAgICAgIHR5cGU6IG9wdGlvbnMub3JkaW5hbCA/ICdvcmRpbmFsJyA6ICdjYXJkaW5hbCdcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoX3VudXNlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5ydWxlc1tjb2RlXSB8fCB0aGlzLnJ1bGVzW3RoaXMubGFuZ3VhZ2VVdGlscy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKV07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm5lZWRzUGx1cmFsXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG5lZWRzUGx1cmFsKGNvZGUpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgIHZhciBydWxlID0gdGhpcy5nZXRSdWxlKGNvZGUsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAodGhpcy5zaG91bGRVc2VJbnRsQXBpKCkpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGUgJiYgcnVsZS5yZXNvbHZlZE9wdGlvbnMoKS5wbHVyYWxDYXRlZ29yaWVzLmxlbmd0aCA+IDE7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBydWxlICYmIHJ1bGUubnVtYmVycy5sZW5ndGggPiAxO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRQbHVyYWxGb3Jtc09mS2V5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFBsdXJhbEZvcm1zT2ZLZXkoY29kZSwga2V5KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gICAgICByZXR1cm4gdGhpcy5nZXRTdWZmaXhlcyhjb2RlLCBvcHRpb25zKS5tYXAoZnVuY3Rpb24gKHN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gXCJcIi5jb25jYXQoa2V5KS5jb25jYXQoc3VmZml4KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRTdWZmaXhlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTdWZmaXhlcyhjb2RlKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICB2YXIgcnVsZSA9IHRoaXMuZ2V0UnVsZShjb2RlLCBvcHRpb25zKTtcblxuICAgICAgaWYgKCFydWxlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2hvdWxkVXNlSW50bEFwaSgpKSB7XG4gICAgICAgIHJldHVybiBydWxlLnJlc29sdmVkT3B0aW9ucygpLnBsdXJhbENhdGVnb3JpZXMuc29ydChmdW5jdGlvbiAocGx1cmFsQ2F0ZWdvcnkxLCBwbHVyYWxDYXRlZ29yeTIpIHtcbiAgICAgICAgICByZXR1cm4gc3VmZml4ZXNPcmRlcltwbHVyYWxDYXRlZ29yeTFdIC0gc3VmZml4ZXNPcmRlcltwbHVyYWxDYXRlZ29yeTJdO1xuICAgICAgICB9KS5tYXAoZnVuY3Rpb24gKHBsdXJhbENhdGVnb3J5KSB7XG4gICAgICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KF90aGlzLm9wdGlvbnMucHJlcGVuZCkuY29uY2F0KHBsdXJhbENhdGVnb3J5KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBydWxlLm51bWJlcnMubWFwKGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmdldFN1ZmZpeChjb2RlLCBudW1iZXIsIG9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFN1ZmZpeFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTdWZmaXgoY29kZSwgY291bnQpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcbiAgICAgIHZhciBydWxlID0gdGhpcy5nZXRSdWxlKGNvZGUsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAocnVsZSkge1xuICAgICAgICBpZiAodGhpcy5zaG91bGRVc2VJbnRsQXBpKCkpIHtcbiAgICAgICAgICByZXR1cm4gXCJcIi5jb25jYXQodGhpcy5vcHRpb25zLnByZXBlbmQpLmNvbmNhdChydWxlLnNlbGVjdChjb3VudCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3VmZml4UmV0cm9Db21wYXRpYmxlKHJ1bGUsIGNvdW50KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dnZXIud2FybihcIm5vIHBsdXJhbCBydWxlIGZvdW5kIGZvcjogXCIuY29uY2F0KGNvZGUpKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0U3VmZml4UmV0cm9Db21wYXRpYmxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFN1ZmZpeFJldHJvQ29tcGF0aWJsZShydWxlLCBjb3VudCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBpZHggPSBydWxlLm5vQWJzID8gcnVsZS5wbHVyYWxzKGNvdW50KSA6IHJ1bGUucGx1cmFscyhNYXRoLmFicyhjb3VudCkpO1xuICAgICAgdmFyIHN1ZmZpeCA9IHJ1bGUubnVtYmVyc1tpZHhdO1xuXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnNpbXBsaWZ5UGx1cmFsU3VmZml4ICYmIHJ1bGUubnVtYmVycy5sZW5ndGggPT09IDIgJiYgcnVsZS5udW1iZXJzWzBdID09PSAxKSB7XG4gICAgICAgIGlmIChzdWZmaXggPT09IDIpIHtcbiAgICAgICAgICBzdWZmaXggPSAncGx1cmFsJztcbiAgICAgICAgfSBlbHNlIGlmIChzdWZmaXggPT09IDEpIHtcbiAgICAgICAgICBzdWZmaXggPSAnJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgcmV0dXJuU3VmZml4ID0gZnVuY3Rpb24gcmV0dXJuU3VmZml4KCkge1xuICAgICAgICByZXR1cm4gX3RoaXMyLm9wdGlvbnMucHJlcGVuZCAmJiBzdWZmaXgudG9TdHJpbmcoKSA/IF90aGlzMi5vcHRpb25zLnByZXBlbmQgKyBzdWZmaXgudG9TdHJpbmcoKSA6IHN1ZmZpeC50b1N0cmluZygpO1xuICAgICAgfTtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTiA9PT0gJ3YxJykge1xuICAgICAgICBpZiAoc3VmZml4ID09PSAxKSByZXR1cm4gJyc7XG4gICAgICAgIGlmICh0eXBlb2Ygc3VmZml4ID09PSAnbnVtYmVyJykgcmV0dXJuIFwiX3BsdXJhbF9cIi5jb25jYXQoc3VmZml4LnRvU3RyaW5nKCkpO1xuICAgICAgICByZXR1cm4gcmV0dXJuU3VmZml4KCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTiA9PT0gJ3YyJykge1xuICAgICAgICByZXR1cm4gcmV0dXJuU3VmZml4KCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeCAmJiBydWxlLm51bWJlcnMubGVuZ3RoID09PSAyICYmIHJ1bGUubnVtYmVyc1swXSA9PT0gMSkge1xuICAgICAgICByZXR1cm4gcmV0dXJuU3VmZml4KCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucHJlcGVuZCAmJiBpZHgudG9TdHJpbmcoKSA/IHRoaXMub3B0aW9ucy5wcmVwZW5kICsgaWR4LnRvU3RyaW5nKCkgOiBpZHgudG9TdHJpbmcoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2hvdWxkVXNlSW50bEFwaVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzaG91bGRVc2VJbnRsQXBpKCkge1xuICAgICAgcmV0dXJuICFkZXByZWNhdGVkSnNvblZlcnNpb25zLmluY2x1ZGVzKHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFBsdXJhbFJlc29sdmVyO1xufSgpO1xuXG5mdW5jdGlvbiBvd25LZXlzJDMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHsgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyB9IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkJDModGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyQzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMkMyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxudmFyIEludGVycG9sYXRvciA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gSW50ZXJwb2xhdG9yKCkge1xuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnRlcnBvbGF0b3IpO1xuXG4gICAgdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgnaW50ZXJwb2xhdG9yJyk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIHRoaXMuZm9ybWF0ID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uICYmIG9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQgfHwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHRoaXMuaW5pdChvcHRpb25zKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJbnRlcnBvbGF0b3IsIFt7XG4gICAga2V5OiBcImluaXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIGlmICghb3B0aW9ucy5pbnRlcnBvbGF0aW9uKSBvcHRpb25zLmludGVycG9sYXRpb24gPSB7XG4gICAgICAgIGVzY2FwZVZhbHVlOiB0cnVlXG4gICAgICB9O1xuICAgICAgdmFyIGlPcHRzID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uO1xuICAgICAgdGhpcy5lc2NhcGUgPSBpT3B0cy5lc2NhcGUgIT09IHVuZGVmaW5lZCA/IGlPcHRzLmVzY2FwZSA6IGVzY2FwZTtcbiAgICAgIHRoaXMuZXNjYXBlVmFsdWUgPSBpT3B0cy5lc2NhcGVWYWx1ZSAhPT0gdW5kZWZpbmVkID8gaU9wdHMuZXNjYXBlVmFsdWUgOiB0cnVlO1xuICAgICAgdGhpcy51c2VSYXdWYWx1ZVRvRXNjYXBlID0gaU9wdHMudXNlUmF3VmFsdWVUb0VzY2FwZSAhPT0gdW5kZWZpbmVkID8gaU9wdHMudXNlUmF3VmFsdWVUb0VzY2FwZSA6IGZhbHNlO1xuICAgICAgdGhpcy5wcmVmaXggPSBpT3B0cy5wcmVmaXggPyByZWdleEVzY2FwZShpT3B0cy5wcmVmaXgpIDogaU9wdHMucHJlZml4RXNjYXBlZCB8fCAne3snO1xuICAgICAgdGhpcy5zdWZmaXggPSBpT3B0cy5zdWZmaXggPyByZWdleEVzY2FwZShpT3B0cy5zdWZmaXgpIDogaU9wdHMuc3VmZml4RXNjYXBlZCB8fCAnfX0nO1xuICAgICAgdGhpcy5mb3JtYXRTZXBhcmF0b3IgPSBpT3B0cy5mb3JtYXRTZXBhcmF0b3IgPyBpT3B0cy5mb3JtYXRTZXBhcmF0b3IgOiBpT3B0cy5mb3JtYXRTZXBhcmF0b3IgfHwgJywnO1xuICAgICAgdGhpcy51bmVzY2FwZVByZWZpeCA9IGlPcHRzLnVuZXNjYXBlU3VmZml4ID8gJycgOiBpT3B0cy51bmVzY2FwZVByZWZpeCB8fCAnLSc7XG4gICAgICB0aGlzLnVuZXNjYXBlU3VmZml4ID0gdGhpcy51bmVzY2FwZVByZWZpeCA/ICcnIDogaU9wdHMudW5lc2NhcGVTdWZmaXggfHwgJyc7XG4gICAgICB0aGlzLm5lc3RpbmdQcmVmaXggPSBpT3B0cy5uZXN0aW5nUHJlZml4ID8gcmVnZXhFc2NhcGUoaU9wdHMubmVzdGluZ1ByZWZpeCkgOiBpT3B0cy5uZXN0aW5nUHJlZml4RXNjYXBlZCB8fCByZWdleEVzY2FwZSgnJHQoJyk7XG4gICAgICB0aGlzLm5lc3RpbmdTdWZmaXggPSBpT3B0cy5uZXN0aW5nU3VmZml4ID8gcmVnZXhFc2NhcGUoaU9wdHMubmVzdGluZ1N1ZmZpeCkgOiBpT3B0cy5uZXN0aW5nU3VmZml4RXNjYXBlZCB8fCByZWdleEVzY2FwZSgnKScpO1xuICAgICAgdGhpcy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvciA9IGlPcHRzLm5lc3RpbmdPcHRpb25zU2VwYXJhdG9yID8gaU9wdHMubmVzdGluZ09wdGlvbnNTZXBhcmF0b3IgOiBpT3B0cy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvciB8fCAnLCc7XG4gICAgICB0aGlzLm1heFJlcGxhY2VzID0gaU9wdHMubWF4UmVwbGFjZXMgPyBpT3B0cy5tYXhSZXBsYWNlcyA6IDEwMDA7XG4gICAgICB0aGlzLmFsd2F5c0Zvcm1hdCA9IGlPcHRzLmFsd2F5c0Zvcm1hdCAhPT0gdW5kZWZpbmVkID8gaU9wdHMuYWx3YXlzRm9ybWF0IDogZmFsc2U7XG4gICAgICB0aGlzLnJlc2V0UmVnRXhwKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc2V0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucykgdGhpcy5pbml0KHRoaXMub3B0aW9ucyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc2V0UmVnRXhwXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc2V0UmVnRXhwKCkge1xuICAgICAgdmFyIHJlZ2V4cFN0ciA9IFwiXCIuY29uY2F0KHRoaXMucHJlZml4LCBcIiguKz8pXCIpLmNvbmNhdCh0aGlzLnN1ZmZpeCk7XG4gICAgICB0aGlzLnJlZ2V4cCA9IG5ldyBSZWdFeHAocmVnZXhwU3RyLCAnZycpO1xuICAgICAgdmFyIHJlZ2V4cFVuZXNjYXBlU3RyID0gXCJcIi5jb25jYXQodGhpcy5wcmVmaXgpLmNvbmNhdCh0aGlzLnVuZXNjYXBlUHJlZml4LCBcIiguKz8pXCIpLmNvbmNhdCh0aGlzLnVuZXNjYXBlU3VmZml4KS5jb25jYXQodGhpcy5zdWZmaXgpO1xuICAgICAgdGhpcy5yZWdleHBVbmVzY2FwZSA9IG5ldyBSZWdFeHAocmVnZXhwVW5lc2NhcGVTdHIsICdnJyk7XG4gICAgICB2YXIgbmVzdGluZ1JlZ2V4cFN0ciA9IFwiXCIuY29uY2F0KHRoaXMubmVzdGluZ1ByZWZpeCwgXCIoLis/KVwiKS5jb25jYXQodGhpcy5uZXN0aW5nU3VmZml4KTtcbiAgICAgIHRoaXMubmVzdGluZ1JlZ2V4cCA9IG5ldyBSZWdFeHAobmVzdGluZ1JlZ2V4cFN0ciwgJ2cnKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaW50ZXJwb2xhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW50ZXJwb2xhdGUoc3RyLCBkYXRhLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIHZhciBtYXRjaDtcbiAgICAgIHZhciB2YWx1ZTtcbiAgICAgIHZhciByZXBsYWNlcztcbiAgICAgIHZhciBkZWZhdWx0RGF0YSA9IHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbiAmJiB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5kZWZhdWx0VmFyaWFibGVzIHx8IHt9O1xuXG4gICAgICBmdW5jdGlvbiByZWdleFNhZmUodmFsKSB7XG4gICAgICAgIHJldHVybiB2YWwucmVwbGFjZSgvXFwkL2csICckJCQkJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBoYW5kbGVGb3JtYXQgPSBmdW5jdGlvbiBoYW5kbGVGb3JtYXQoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuaW5kZXhPZihfdGhpcy5mb3JtYXRTZXBhcmF0b3IpIDwgMCkge1xuICAgICAgICAgIHZhciBwYXRoID0gZ2V0UGF0aFdpdGhEZWZhdWx0cyhkYXRhLCBkZWZhdWx0RGF0YSwga2V5KTtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuYWx3YXlzRm9ybWF0ID8gX3RoaXMuZm9ybWF0KHBhdGgsIHVuZGVmaW5lZCwgbG5nLCBfb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKF9vYmplY3RTcHJlYWQkMyh7fSwgb3B0aW9ucyksIGRhdGEpLCB7fSwge1xuICAgICAgICAgICAgaW50ZXJwb2xhdGlvbmtleToga2V5XG4gICAgICAgICAgfSkpIDogcGF0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwID0ga2V5LnNwbGl0KF90aGlzLmZvcm1hdFNlcGFyYXRvcik7XG4gICAgICAgIHZhciBrID0gcC5zaGlmdCgpLnRyaW0oKTtcbiAgICAgICAgdmFyIGYgPSBwLmpvaW4oX3RoaXMuZm9ybWF0U2VwYXJhdG9yKS50cmltKCk7XG4gICAgICAgIHJldHVybiBfdGhpcy5mb3JtYXQoZ2V0UGF0aFdpdGhEZWZhdWx0cyhkYXRhLCBkZWZhdWx0RGF0YSwgayksIGYsIGxuZywgX29iamVjdFNwcmVhZCQzKF9vYmplY3RTcHJlYWQkMyhfb2JqZWN0U3ByZWFkJDMoe30sIG9wdGlvbnMpLCBkYXRhKSwge30sIHtcbiAgICAgICAgICBpbnRlcnBvbGF0aW9ua2V5OiBrXG4gICAgICAgIH0pKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVzZXRSZWdFeHAoKTtcbiAgICAgIHZhciBtaXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIgPSBvcHRpb25zICYmIG9wdGlvbnMubWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyIHx8IHRoaXMub3B0aW9ucy5taXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXI7XG4gICAgICB2YXIgc2tpcE9uVmFyaWFibGVzID0gb3B0aW9ucyAmJiBvcHRpb25zLmludGVycG9sYXRpb24gJiYgb3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlcyB8fCB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXM7XG4gICAgICB2YXIgdG9kb3MgPSBbe1xuICAgICAgICByZWdleDogdGhpcy5yZWdleHBVbmVzY2FwZSxcbiAgICAgICAgc2FmZVZhbHVlOiBmdW5jdGlvbiBzYWZlVmFsdWUodmFsKSB7XG4gICAgICAgICAgcmV0dXJuIHJlZ2V4U2FmZSh2YWwpO1xuICAgICAgICB9XG4gICAgICB9LCB7XG4gICAgICAgIHJlZ2V4OiB0aGlzLnJlZ2V4cCxcbiAgICAgICAgc2FmZVZhbHVlOiBmdW5jdGlvbiBzYWZlVmFsdWUodmFsKSB7XG4gICAgICAgICAgcmV0dXJuIF90aGlzLmVzY2FwZVZhbHVlID8gcmVnZXhTYWZlKF90aGlzLmVzY2FwZSh2YWwpKSA6IHJlZ2V4U2FmZSh2YWwpO1xuICAgICAgICB9XG4gICAgICB9XTtcbiAgICAgIHRvZG9zLmZvckVhY2goZnVuY3Rpb24gKHRvZG8pIHtcbiAgICAgICAgcmVwbGFjZXMgPSAwO1xuXG4gICAgICAgIHdoaWxlIChtYXRjaCA9IHRvZG8ucmVnZXguZXhlYyhzdHIpKSB7XG4gICAgICAgICAgdmFsdWUgPSBoYW5kbGVGb3JtYXQobWF0Y2hbMV0udHJpbSgpKTtcblxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB2YXIgdGVtcCA9IG1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlcihzdHIsIG1hdGNoLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgdmFsdWUgPSB0eXBlb2YgdGVtcCA9PT0gJ3N0cmluZycgPyB0ZW1wIDogJyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNraXBPblZhcmlhYmxlcykge1xuICAgICAgICAgICAgICB2YWx1ZSA9IG1hdGNoWzBdO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIF90aGlzLmxvZ2dlci53YXJuKFwibWlzc2VkIHRvIHBhc3MgaW4gdmFyaWFibGUgXCIuY29uY2F0KG1hdGNoWzFdLCBcIiBmb3IgaW50ZXJwb2xhdGluZyBcIikuY29uY2F0KHN0cikpO1xuXG4gICAgICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnICYmICFfdGhpcy51c2VSYXdWYWx1ZVRvRXNjYXBlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG1ha2VTdHJpbmcodmFsdWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBzYWZlVmFsdWUgPSB0b2RvLnNhZmVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UobWF0Y2hbMF0sIHNhZmVWYWx1ZSk7XG5cbiAgICAgICAgICBpZiAoc2tpcE9uVmFyaWFibGVzKSB7XG4gICAgICAgICAgICB0b2RvLnJlZ2V4Lmxhc3RJbmRleCArPSBzYWZlVmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgdG9kby5yZWdleC5sYXN0SW5kZXggLT0gbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b2RvLnJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVwbGFjZXMrKztcblxuICAgICAgICAgIGlmIChyZXBsYWNlcyA+PSBfdGhpcy5tYXhSZXBsYWNlcykge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm5lc3RcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbmVzdChzdHIsIGZjKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICAgICAgdmFyIG1hdGNoO1xuICAgICAgdmFyIHZhbHVlO1xuXG4gICAgICB2YXIgY2xvbmVkT3B0aW9ucyA9IF9vYmplY3RTcHJlYWQkMyh7fSwgb3B0aW9ucyk7XG5cbiAgICAgIGNsb25lZE9wdGlvbnMuYXBwbHlQb3N0UHJvY2Vzc29yID0gZmFsc2U7XG4gICAgICBkZWxldGUgY2xvbmVkT3B0aW9ucy5kZWZhdWx0VmFsdWU7XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUhhc09wdGlvbnMoa2V5LCBpbmhlcml0ZWRPcHRpb25zKSB7XG4gICAgICAgIHZhciBzZXAgPSB0aGlzLm5lc3RpbmdPcHRpb25zU2VwYXJhdG9yO1xuICAgICAgICBpZiAoa2V5LmluZGV4T2Yoc2VwKSA8IDApIHJldHVybiBrZXk7XG4gICAgICAgIHZhciBjID0ga2V5LnNwbGl0KG5ldyBSZWdFeHAoXCJcIi5jb25jYXQoc2VwLCBcIlsgXSp7XCIpKSk7XG4gICAgICAgIHZhciBvcHRpb25zU3RyaW5nID0gXCJ7XCIuY29uY2F0KGNbMV0pO1xuICAgICAgICBrZXkgPSBjWzBdO1xuICAgICAgICBvcHRpb25zU3RyaW5nID0gdGhpcy5pbnRlcnBvbGF0ZShvcHRpb25zU3RyaW5nLCBjbG9uZWRPcHRpb25zKTtcbiAgICAgICAgb3B0aW9uc1N0cmluZyA9IG9wdGlvbnNTdHJpbmcucmVwbGFjZSgvJy9nLCAnXCInKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNsb25lZE9wdGlvbnMgPSBKU09OLnBhcnNlKG9wdGlvbnNTdHJpbmcpO1xuICAgICAgICAgIGlmIChpbmhlcml0ZWRPcHRpb25zKSBjbG9uZWRPcHRpb25zID0gX29iamVjdFNwcmVhZCQzKF9vYmplY3RTcHJlYWQkMyh7fSwgaW5oZXJpdGVkT3B0aW9ucyksIGNsb25lZE9wdGlvbnMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcImZhaWxlZCBwYXJzaW5nIG9wdGlvbnMgc3RyaW5nIGluIG5lc3RpbmcgZm9yIGtleSBcIi5jb25jYXQoa2V5KSwgZSk7XG4gICAgICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KGtleSkuY29uY2F0KHNlcCkuY29uY2F0KG9wdGlvbnNTdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIGNsb25lZE9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobWF0Y2ggPSB0aGlzLm5lc3RpbmdSZWdleHAuZXhlYyhzdHIpKSB7XG4gICAgICAgIHZhciBmb3JtYXR0ZXJzID0gW107XG4gICAgICAgIHZhciBkb1JlZHVjZSA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChtYXRjaFswXS5pbmRleE9mKHRoaXMuZm9ybWF0U2VwYXJhdG9yKSAhPT0gLTEgJiYgIS97Lip9Ly50ZXN0KG1hdGNoWzFdKSkge1xuICAgICAgICAgIHZhciByID0gbWF0Y2hbMV0uc3BsaXQodGhpcy5mb3JtYXRTZXBhcmF0b3IpLm1hcChmdW5jdGlvbiAoZWxlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW0udHJpbSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1hdGNoWzFdID0gci5zaGlmdCgpO1xuICAgICAgICAgIGZvcm1hdHRlcnMgPSByO1xuICAgICAgICAgIGRvUmVkdWNlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlID0gZmMoaGFuZGxlSGFzT3B0aW9ucy5jYWxsKHRoaXMsIG1hdGNoWzFdLnRyaW0oKSwgY2xvbmVkT3B0aW9ucyksIGNsb25lZE9wdGlvbnMpO1xuICAgICAgICBpZiAodmFsdWUgJiYgbWF0Y2hbMF0gPT09IHN0ciAmJiB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB2YWx1ZSA9IG1ha2VTdHJpbmcodmFsdWUpO1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwibWlzc2VkIHRvIHJlc29sdmUgXCIuY29uY2F0KG1hdGNoWzFdLCBcIiBmb3IgbmVzdGluZyBcIikuY29uY2F0KHN0cikpO1xuICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZG9SZWR1Y2UpIHtcbiAgICAgICAgICB2YWx1ZSA9IGZvcm1hdHRlcnMucmVkdWNlKGZ1bmN0aW9uICh2LCBmKSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMyLmZvcm1hdCh2LCBmLCBvcHRpb25zLmxuZywgX29iamVjdFNwcmVhZCQzKF9vYmplY3RTcHJlYWQkMyh7fSwgb3B0aW9ucyksIHt9LCB7XG4gICAgICAgICAgICAgIGludGVycG9sYXRpb25rZXk6IG1hdGNoWzFdLnRyaW0oKVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH0sIHZhbHVlLnRyaW0oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtYXRjaFswXSwgdmFsdWUpO1xuICAgICAgICB0aGlzLnJlZ2V4cC5sYXN0SW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBJbnRlcnBvbGF0b3I7XG59KCk7XG5cbmZ1bmN0aW9uIG93bktleXMkNChvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgeyBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IH0ga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQkNCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzJDQoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyQ0KE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBwYXJzZUZvcm1hdFN0cihmb3JtYXRTdHIpIHtcbiAgdmFyIGZvcm1hdE5hbWUgPSBmb3JtYXRTdHIudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gIHZhciBmb3JtYXRPcHRpb25zID0ge307XG5cbiAgaWYgKGZvcm1hdFN0ci5pbmRleE9mKCcoJykgPiAtMSkge1xuICAgIHZhciBwID0gZm9ybWF0U3RyLnNwbGl0KCcoJyk7XG4gICAgZm9ybWF0TmFtZSA9IHBbMF0udG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgdmFyIG9wdFN0ciA9IHBbMV0uc3Vic3RyaW5nKDAsIHBbMV0ubGVuZ3RoIC0gMSk7XG5cbiAgICBpZiAoZm9ybWF0TmFtZSA9PT0gJ2N1cnJlbmN5JyAmJiBvcHRTdHIuaW5kZXhPZignOicpIDwgMCkge1xuICAgICAgaWYgKCFmb3JtYXRPcHRpb25zLmN1cnJlbmN5KSBmb3JtYXRPcHRpb25zLmN1cnJlbmN5ID0gb3B0U3RyLnRyaW0oKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1hdE5hbWUgPT09ICdyZWxhdGl2ZXRpbWUnICYmIG9wdFN0ci5pbmRleE9mKCc6JykgPCAwKSB7XG4gICAgICBpZiAoIWZvcm1hdE9wdGlvbnMucmFuZ2UpIGZvcm1hdE9wdGlvbnMucmFuZ2UgPSBvcHRTdHIudHJpbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgb3B0cyA9IG9wdFN0ci5zcGxpdCgnOycpO1xuICAgICAgb3B0cy5mb3JFYWNoKGZ1bmN0aW9uIChvcHQpIHtcbiAgICAgICAgaWYgKCFvcHQpIHJldHVybjtcblxuICAgICAgICB2YXIgX29wdCRzcGxpdCA9IG9wdC5zcGxpdCgnOicpLFxuICAgICAgICAgICAgX29wdCRzcGxpdDIgPSBfdG9BcnJheShfb3B0JHNwbGl0KSxcbiAgICAgICAgICAgIGtleSA9IF9vcHQkc3BsaXQyWzBdLFxuICAgICAgICAgICAgcmVzdCA9IF9vcHQkc3BsaXQyLnNsaWNlKDEpO1xuXG4gICAgICAgIHZhciB2YWwgPSByZXN0LmpvaW4oJzonKTtcbiAgICAgICAgaWYgKHZhbC50cmltKCkgPT09ICdmYWxzZScpIGZvcm1hdE9wdGlvbnNba2V5LnRyaW0oKV0gPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbC50cmltKCkgPT09ICd0cnVlJykgZm9ybWF0T3B0aW9uc1trZXkudHJpbSgpXSA9IHRydWU7XG4gICAgICAgIGlmICghaXNOYU4odmFsLnRyaW0oKSkpIGZvcm1hdE9wdGlvbnNba2V5LnRyaW0oKV0gPSBwYXJzZUludCh2YWwudHJpbSgpLCAxMCk7XG4gICAgICAgIGlmICghZm9ybWF0T3B0aW9uc1trZXkudHJpbSgpXSkgZm9ybWF0T3B0aW9uc1trZXkudHJpbSgpXSA9IHZhbC50cmltKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZvcm1hdE5hbWU6IGZvcm1hdE5hbWUsXG4gICAgZm9ybWF0T3B0aW9uczogZm9ybWF0T3B0aW9uc1xuICB9O1xufVxuXG52YXIgRm9ybWF0dGVyID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBGb3JtYXR0ZXIoKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEZvcm1hdHRlcik7XG5cbiAgICB0aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXIuY3JlYXRlKCdmb3JtYXR0ZXInKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuZm9ybWF0cyA9IHtcbiAgICAgIG51bWJlcjogZnVuY3Rpb24gbnVtYmVyKHZhbCwgbG5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG5nLCBvcHRpb25zKS5mb3JtYXQodmFsKTtcbiAgICAgIH0sXG4gICAgICBjdXJyZW5jeTogZnVuY3Rpb24gY3VycmVuY3kodmFsLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsbmcsIF9vYmplY3RTcHJlYWQkNChfb2JqZWN0U3ByZWFkJDQoe30sIG9wdGlvbnMpLCB7fSwge1xuICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knXG4gICAgICAgIH0pKS5mb3JtYXQodmFsKTtcbiAgICAgIH0sXG4gICAgICBkYXRldGltZTogZnVuY3Rpb24gZGF0ZXRpbWUodmFsLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxuZywgX29iamVjdFNwcmVhZCQ0KHt9LCBvcHRpb25zKSkuZm9ybWF0KHZhbCk7XG4gICAgICB9LFxuICAgICAgcmVsYXRpdmV0aW1lOiBmdW5jdGlvbiByZWxhdGl2ZXRpbWUodmFsLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdChsbmcsIF9vYmplY3RTcHJlYWQkNCh7fSwgb3B0aW9ucykpLmZvcm1hdCh2YWwsIG9wdGlvbnMucmFuZ2UgfHwgJ2RheScpO1xuICAgICAgfSxcbiAgICAgIGxpc3Q6IGZ1bmN0aW9uIGxpc3QodmFsLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkxpc3RGb3JtYXQobG5nLCBfb2JqZWN0U3ByZWFkJDQoe30sIG9wdGlvbnMpKS5mb3JtYXQodmFsKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuaW5pdChvcHRpb25zKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhGb3JtYXR0ZXIsIFt7XG4gICAga2V5OiBcImluaXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdChzZXJ2aWNlcykge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHtcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge31cbiAgICAgIH07XG4gICAgICB2YXIgaU9wdHMgPSBvcHRpb25zLmludGVycG9sYXRpb247XG4gICAgICB0aGlzLmZvcm1hdFNlcGFyYXRvciA9IGlPcHRzLmZvcm1hdFNlcGFyYXRvciA/IGlPcHRzLmZvcm1hdFNlcGFyYXRvciA6IGlPcHRzLmZvcm1hdFNlcGFyYXRvciB8fCAnLCc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImFkZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGQobmFtZSwgZmMpIHtcbiAgICAgIHRoaXMuZm9ybWF0c1tuYW1lXSA9IGZjO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb3JtYXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0KHZhbHVlLCBfZm9ybWF0LCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIHZhciBmb3JtYXRzID0gX2Zvcm1hdC5zcGxpdCh0aGlzLmZvcm1hdFNlcGFyYXRvcik7XG5cbiAgICAgIHZhciByZXN1bHQgPSBmb3JtYXRzLnJlZHVjZShmdW5jdGlvbiAobWVtLCBmKSB7XG4gICAgICAgIHZhciBfcGFyc2VGb3JtYXRTdHIgPSBwYXJzZUZvcm1hdFN0cihmKSxcbiAgICAgICAgICAgIGZvcm1hdE5hbWUgPSBfcGFyc2VGb3JtYXRTdHIuZm9ybWF0TmFtZSxcbiAgICAgICAgICAgIGZvcm1hdE9wdGlvbnMgPSBfcGFyc2VGb3JtYXRTdHIuZm9ybWF0T3B0aW9ucztcblxuICAgICAgICBpZiAoX3RoaXMuZm9ybWF0c1tmb3JtYXROYW1lXSkge1xuICAgICAgICAgIHZhciBmb3JtYXR0ZWQgPSBtZW07XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHZhbE9wdGlvbnMgPSBvcHRpb25zICYmIG9wdGlvbnMuZm9ybWF0UGFyYW1zICYmIG9wdGlvbnMuZm9ybWF0UGFyYW1zW29wdGlvbnMuaW50ZXJwb2xhdGlvbmtleV0gfHwge307XG4gICAgICAgICAgICB2YXIgbCA9IHZhbE9wdGlvbnMubG9jYWxlIHx8IHZhbE9wdGlvbnMubG5nIHx8IG9wdGlvbnMubG9jYWxlIHx8IG9wdGlvbnMubG5nIHx8IGxuZztcbiAgICAgICAgICAgIGZvcm1hdHRlZCA9IF90aGlzLmZvcm1hdHNbZm9ybWF0TmFtZV0obWVtLCBsLCBfb2JqZWN0U3ByZWFkJDQoX29iamVjdFNwcmVhZCQ0KF9vYmplY3RTcHJlYWQkNCh7fSwgZm9ybWF0T3B0aW9ucyksIG9wdGlvbnMpLCB2YWxPcHRpb25zKSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIF90aGlzLmxvZ2dlci53YXJuKGVycm9yKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzLmxvZ2dlci53YXJuKFwidGhlcmUgd2FzIG5vIGZvcm1hdCBmdW5jdGlvbiBmb3IgXCIuY29uY2F0KGZvcm1hdE5hbWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZW07XG4gICAgICB9LCB2YWx1ZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBGb3JtYXR0ZXI7XG59KCk7XG5cbmZ1bmN0aW9uIG93bktleXMkNShvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgeyBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IH0ga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQkNSh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzJDUoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyQ1KE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIkMihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCQyKCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCQyKCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gcmVtb3ZlKGFyciwgd2hhdCkge1xuICB2YXIgZm91bmQgPSBhcnIuaW5kZXhPZih3aGF0KTtcblxuICB3aGlsZSAoZm91bmQgIT09IC0xKSB7XG4gICAgYXJyLnNwbGljZShmb3VuZCwgMSk7XG4gICAgZm91bmQgPSBhcnIuaW5kZXhPZih3aGF0KTtcbiAgfVxufVxuXG52YXIgQ29ubmVjdG9yID0gZnVuY3Rpb24gKF9FdmVudEVtaXR0ZXIpIHtcbiAgX2luaGVyaXRzKENvbm5lY3RvciwgX0V2ZW50RW1pdHRlcik7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlciQyKENvbm5lY3Rvcik7XG5cbiAgZnVuY3Rpb24gQ29ubmVjdG9yKGJhY2tlbmQsIHN0b3JlLCBzZXJ2aWNlcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiB7fTtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb25uZWN0b3IpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBfdGhpcy5iYWNrZW5kID0gYmFja2VuZDtcbiAgICBfdGhpcy5zdG9yZSA9IHN0b3JlO1xuICAgIF90aGlzLnNlcnZpY2VzID0gc2VydmljZXM7XG4gICAgX3RoaXMubGFuZ3VhZ2VVdGlscyA9IHNlcnZpY2VzLmxhbmd1YWdlVXRpbHM7XG4gICAgX3RoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgX3RoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ2JhY2tlbmRDb25uZWN0b3InKTtcbiAgICBfdGhpcy5zdGF0ZSA9IHt9O1xuICAgIF90aGlzLnF1ZXVlID0gW107XG5cbiAgICBpZiAoX3RoaXMuYmFja2VuZCAmJiBfdGhpcy5iYWNrZW5kLmluaXQpIHtcbiAgICAgIF90aGlzLmJhY2tlbmQuaW5pdChzZXJ2aWNlcywgb3B0aW9ucy5iYWNrZW5kLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ29ubmVjdG9yLCBbe1xuICAgIGtleTogXCJxdWV1ZUxvYWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcXVldWVMb2FkKGxhbmd1YWdlcywgbmFtZXNwYWNlcywgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgdG9Mb2FkID0gW107XG4gICAgICB2YXIgcGVuZGluZyA9IFtdO1xuICAgICAgdmFyIHRvTG9hZExhbmd1YWdlcyA9IFtdO1xuICAgICAgdmFyIHRvTG9hZE5hbWVzcGFjZXMgPSBbXTtcbiAgICAgIGxhbmd1YWdlcy5mb3JFYWNoKGZ1bmN0aW9uIChsbmcpIHtcbiAgICAgICAgdmFyIGhhc0FsbE5hbWVzcGFjZXMgPSB0cnVlO1xuICAgICAgICBuYW1lc3BhY2VzLmZvckVhY2goZnVuY3Rpb24gKG5zKSB7XG4gICAgICAgICAgdmFyIG5hbWUgPSBcIlwiLmNvbmNhdChsbmcsIFwifFwiKS5jb25jYXQobnMpO1xuXG4gICAgICAgICAgaWYgKCFvcHRpb25zLnJlbG9hZCAmJiBfdGhpczIuc3RvcmUuaGFzUmVzb3VyY2VCdW5kbGUobG5nLCBucykpIHtcbiAgICAgICAgICAgIF90aGlzMi5zdGF0ZVtuYW1lXSA9IDI7XG4gICAgICAgICAgfSBlbHNlIGlmIChfdGhpczIuc3RhdGVbbmFtZV0gPCAwKSA7IGVsc2UgaWYgKF90aGlzMi5zdGF0ZVtuYW1lXSA9PT0gMSkge1xuICAgICAgICAgICAgaWYgKHBlbmRpbmcuaW5kZXhPZihuYW1lKSA8IDApIHBlbmRpbmcucHVzaChuYW1lKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMyLnN0YXRlW25hbWVdID0gMTtcbiAgICAgICAgICAgIGhhc0FsbE5hbWVzcGFjZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChwZW5kaW5nLmluZGV4T2YobmFtZSkgPCAwKSBwZW5kaW5nLnB1c2gobmFtZSk7XG4gICAgICAgICAgICBpZiAodG9Mb2FkLmluZGV4T2YobmFtZSkgPCAwKSB0b0xvYWQucHVzaChuYW1lKTtcbiAgICAgICAgICAgIGlmICh0b0xvYWROYW1lc3BhY2VzLmluZGV4T2YobnMpIDwgMCkgdG9Mb2FkTmFtZXNwYWNlcy5wdXNoKG5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIWhhc0FsbE5hbWVzcGFjZXMpIHRvTG9hZExhbmd1YWdlcy5wdXNoKGxuZyk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRvTG9hZC5sZW5ndGggfHwgcGVuZGluZy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5xdWV1ZS5wdXNoKHtcbiAgICAgICAgICBwZW5kaW5nOiBwZW5kaW5nLFxuICAgICAgICAgIGxvYWRlZDoge30sXG4gICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2tcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvTG9hZDogdG9Mb2FkLFxuICAgICAgICBwZW5kaW5nOiBwZW5kaW5nLFxuICAgICAgICB0b0xvYWRMYW5ndWFnZXM6IHRvTG9hZExhbmd1YWdlcyxcbiAgICAgICAgdG9Mb2FkTmFtZXNwYWNlczogdG9Mb2FkTmFtZXNwYWNlc1xuICAgICAgfTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibG9hZGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWRlZChuYW1lLCBlcnIsIGRhdGEpIHtcbiAgICAgIHZhciBzID0gbmFtZS5zcGxpdCgnfCcpO1xuICAgICAgdmFyIGxuZyA9IHNbMF07XG4gICAgICB2YXIgbnMgPSBzWzFdO1xuICAgICAgaWYgKGVycikgdGhpcy5lbWl0KCdmYWlsZWRMb2FkaW5nJywgbG5nLCBucywgZXJyKTtcblxuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5hZGRSZXNvdXJjZUJ1bmRsZShsbmcsIG5zLCBkYXRhKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zdGF0ZVtuYW1lXSA9IGVyciA/IC0xIDogMjtcbiAgICAgIHZhciBsb2FkZWQgPSB7fTtcbiAgICAgIHRoaXMucXVldWUuZm9yRWFjaChmdW5jdGlvbiAocSkge1xuICAgICAgICBwdXNoUGF0aChxLmxvYWRlZCwgW2xuZ10sIG5zKTtcbiAgICAgICAgcmVtb3ZlKHEucGVuZGluZywgbmFtZSk7XG4gICAgICAgIGlmIChlcnIpIHEuZXJyb3JzLnB1c2goZXJyKTtcblxuICAgICAgICBpZiAocS5wZW5kaW5nLmxlbmd0aCA9PT0gMCAmJiAhcS5kb25lKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMocS5sb2FkZWQpLmZvckVhY2goZnVuY3Rpb24gKGwpIHtcbiAgICAgICAgICAgIGlmICghbG9hZGVkW2xdKSBsb2FkZWRbbF0gPSBbXTtcblxuICAgICAgICAgICAgaWYgKHEubG9hZGVkW2xdLmxlbmd0aCkge1xuICAgICAgICAgICAgICBxLmxvYWRlZFtsXS5mb3JFYWNoKGZ1bmN0aW9uIChucykge1xuICAgICAgICAgICAgICAgIGlmIChsb2FkZWRbbF0uaW5kZXhPZihucykgPCAwKSBsb2FkZWRbbF0ucHVzaChucyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHEuZG9uZSA9IHRydWU7XG5cbiAgICAgICAgICBpZiAocS5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBxLmNhbGxiYWNrKHEuZXJyb3JzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcS5jYWxsYmFjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmVtaXQoJ2xvYWRlZCcsIGxvYWRlZCk7XG4gICAgICB0aGlzLnF1ZXVlID0gdGhpcy5xdWV1ZS5maWx0ZXIoZnVuY3Rpb24gKHEpIHtcbiAgICAgICAgcmV0dXJuICFxLmRvbmU7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVhZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWFkKGxuZywgbnMsIGZjTmFtZSkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciB0cmllZCA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogMDtcbiAgICAgIHZhciB3YWl0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAzNTA7XG4gICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gNSA/IGFyZ3VtZW50c1s1XSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmICghbG5nLmxlbmd0aCkgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHt9KTtcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRbZmNOYW1lXShsbmcsIG5zLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICAgIGlmIChlcnIgJiYgZGF0YSAmJiB0cmllZCA8IDUpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMy5yZWFkLmNhbGwoX3RoaXMzLCBsbmcsIG5zLCBmY05hbWUsIHRyaWVkICsgMSwgd2FpdCAqIDIsIGNhbGxiYWNrKTtcbiAgICAgICAgICB9LCB3YWl0KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjYWxsYmFjayhlcnIsIGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInByZXBhcmVMb2FkaW5nXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHByZXBhcmVMb2FkaW5nKGxhbmd1YWdlcywgbmFtZXNwYWNlcykge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAzID8gYXJndW1lbnRzWzNdIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoIXRoaXMuYmFja2VuZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdObyBiYWNrZW5kIHdhcyBhZGRlZCB2aWEgaTE4bmV4dC51c2UuIFdpbGwgbm90IGxvYWQgcmVzb3VyY2VzLicpO1xuICAgICAgICByZXR1cm4gY2FsbGJhY2sgJiYgY2FsbGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBsYW5ndWFnZXMgPT09ICdzdHJpbmcnKSBsYW5ndWFnZXMgPSB0aGlzLmxhbmd1YWdlVXRpbHMudG9SZXNvbHZlSGllcmFyY2h5KGxhbmd1YWdlcyk7XG4gICAgICBpZiAodHlwZW9mIG5hbWVzcGFjZXMgPT09ICdzdHJpbmcnKSBuYW1lc3BhY2VzID0gW25hbWVzcGFjZXNdO1xuICAgICAgdmFyIHRvTG9hZCA9IHRoaXMucXVldWVMb2FkKGxhbmd1YWdlcywgbmFtZXNwYWNlcywgb3B0aW9ucywgY2FsbGJhY2spO1xuXG4gICAgICBpZiAoIXRvTG9hZC50b0xvYWQubGVuZ3RoKSB7XG4gICAgICAgIGlmICghdG9Mb2FkLnBlbmRpbmcubGVuZ3RoKSBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdG9Mb2FkLnRvTG9hZC5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIF90aGlzNC5sb2FkT25lKG5hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9hZChsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIGNhbGxiYWNrKSB7XG4gICAgICB0aGlzLnByZXBhcmVMb2FkaW5nKGxhbmd1YWdlcywgbmFtZXNwYWNlcywge30sIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVsb2FkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbG9hZChsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIGNhbGxiYWNrKSB7XG4gICAgICB0aGlzLnByZXBhcmVMb2FkaW5nKGxhbmd1YWdlcywgbmFtZXNwYWNlcywge1xuICAgICAgICByZWxvYWQ6IHRydWVcbiAgICAgIH0sIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibG9hZE9uZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkT25lKG5hbWUpIHtcbiAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgICB2YXIgcHJlZml4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAnJztcbiAgICAgIHZhciBzID0gbmFtZS5zcGxpdCgnfCcpO1xuICAgICAgdmFyIGxuZyA9IHNbMF07XG4gICAgICB2YXIgbnMgPSBzWzFdO1xuICAgICAgdGhpcy5yZWFkKGxuZywgbnMsICdyZWFkJywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgICAgaWYgKGVycikgX3RoaXM1LmxvZ2dlci53YXJuKFwiXCIuY29uY2F0KHByZWZpeCwgXCJsb2FkaW5nIG5hbWVzcGFjZSBcIikuY29uY2F0KG5zLCBcIiBmb3IgbGFuZ3VhZ2UgXCIpLmNvbmNhdChsbmcsIFwiIGZhaWxlZFwiKSwgZXJyKTtcbiAgICAgICAgaWYgKCFlcnIgJiYgZGF0YSkgX3RoaXM1LmxvZ2dlci5sb2coXCJcIi5jb25jYXQocHJlZml4LCBcImxvYWRlZCBuYW1lc3BhY2UgXCIpLmNvbmNhdChucywgXCIgZm9yIGxhbmd1YWdlIFwiKS5jb25jYXQobG5nKSwgZGF0YSk7XG5cbiAgICAgICAgX3RoaXM1LmxvYWRlZChuYW1lLCBlcnIsIGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNhdmVNaXNzaW5nXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNhdmVNaXNzaW5nKGxhbmd1YWdlcywgbmFtZXNwYWNlLCBrZXksIGZhbGxiYWNrVmFsdWUsIGlzVXBkYXRlKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDoge307XG5cbiAgICAgIGlmICh0aGlzLnNlcnZpY2VzLnV0aWxzICYmIHRoaXMuc2VydmljZXMudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlICYmICF0aGlzLnNlcnZpY2VzLnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZShuYW1lc3BhY2UpKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJkaWQgbm90IHNhdmUga2V5IFxcXCJcIi5jb25jYXQoa2V5LCBcIlxcXCIgYXMgdGhlIG5hbWVzcGFjZSBcXFwiXCIpLmNvbmNhdChuYW1lc3BhY2UsIFwiXFxcIiB3YXMgbm90IHlldCBsb2FkZWRcIiksICdUaGlzIG1lYW5zIHNvbWV0aGluZyBJUyBXUk9ORyBpbiB5b3VyIHNldHVwLiBZb3UgYWNjZXNzIHRoZSB0IGZ1bmN0aW9uIGJlZm9yZSBpMThuZXh0LmluaXQgLyBpMThuZXh0LmxvYWROYW1lc3BhY2UgLyBpMThuZXh0LmNoYW5nZUxhbmd1YWdlIHdhcyBkb25lLiBXYWl0IGZvciB0aGUgY2FsbGJhY2sgb3IgUHJvbWlzZSB0byByZXNvbHZlIGJlZm9yZSBhY2Nlc3NpbmcgaXQhISEnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQgfHwga2V5ID09PSBudWxsIHx8IGtleSA9PT0gJycpIHJldHVybjtcblxuICAgICAgaWYgKHRoaXMuYmFja2VuZCAmJiB0aGlzLmJhY2tlbmQuY3JlYXRlKSB7XG4gICAgICAgIHRoaXMuYmFja2VuZC5jcmVhdGUobGFuZ3VhZ2VzLCBuYW1lc3BhY2UsIGtleSwgZmFsbGJhY2tWYWx1ZSwgbnVsbCwgX29iamVjdFNwcmVhZCQ1KF9vYmplY3RTcHJlYWQkNSh7fSwgb3B0aW9ucyksIHt9LCB7XG4gICAgICAgICAgaXNVcGRhdGU6IGlzVXBkYXRlXG4gICAgICAgIH0pKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFsYW5ndWFnZXMgfHwgIWxhbmd1YWdlc1swXSkgcmV0dXJuO1xuICAgICAgdGhpcy5zdG9yZS5hZGRSZXNvdXJjZShsYW5ndWFnZXNbMF0sIG5hbWVzcGFjZSwga2V5LCBmYWxsYmFja1ZhbHVlKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ29ubmVjdG9yO1xufShFdmVudEVtaXR0ZXIpO1xuXG5mdW5jdGlvbiBnZXQoKSB7XG4gIHJldHVybiB7XG4gICAgZGVidWc6IGZhbHNlLFxuICAgIGluaXRJbW1lZGlhdGU6IHRydWUsXG4gICAgbnM6IFsndHJhbnNsYXRpb24nXSxcbiAgICBkZWZhdWx0TlM6IFsndHJhbnNsYXRpb24nXSxcbiAgICBmYWxsYmFja0xuZzogWydkZXYnXSxcbiAgICBmYWxsYmFja05TOiBmYWxzZSxcbiAgICBzdXBwb3J0ZWRMbmdzOiBmYWxzZSxcbiAgICBub25FeHBsaWNpdFN1cHBvcnRlZExuZ3M6IGZhbHNlLFxuICAgIGxvYWQ6ICdhbGwnLFxuICAgIHByZWxvYWQ6IGZhbHNlLFxuICAgIHNpbXBsaWZ5UGx1cmFsU3VmZml4OiB0cnVlLFxuICAgIGtleVNlcGFyYXRvcjogJy4nLFxuICAgIG5zU2VwYXJhdG9yOiAnOicsXG4gICAgcGx1cmFsU2VwYXJhdG9yOiAnXycsXG4gICAgY29udGV4dFNlcGFyYXRvcjogJ18nLFxuICAgIHBhcnRpYWxCdW5kbGVkTGFuZ3VhZ2VzOiBmYWxzZSxcbiAgICBzYXZlTWlzc2luZzogZmFsc2UsXG4gICAgdXBkYXRlTWlzc2luZzogZmFsc2UsXG4gICAgc2F2ZU1pc3NpbmdUbzogJ2ZhbGxiYWNrJyxcbiAgICBzYXZlTWlzc2luZ1BsdXJhbHM6IHRydWUsXG4gICAgbWlzc2luZ0tleUhhbmRsZXI6IGZhbHNlLFxuICAgIG1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlcjogZmFsc2UsXG4gICAgcG9zdFByb2Nlc3M6IGZhbHNlLFxuICAgIHBvc3RQcm9jZXNzUGFzc1Jlc29sdmVkOiBmYWxzZSxcbiAgICByZXR1cm5OdWxsOiB0cnVlLFxuICAgIHJldHVybkVtcHR5U3RyaW5nOiB0cnVlLFxuICAgIHJldHVybk9iamVjdHM6IGZhbHNlLFxuICAgIGpvaW5BcnJheXM6IGZhbHNlLFxuICAgIHJldHVybmVkT2JqZWN0SGFuZGxlcjogZmFsc2UsXG4gICAgcGFyc2VNaXNzaW5nS2V5SGFuZGxlcjogZmFsc2UsXG4gICAgYXBwZW5kTmFtZXNwYWNlVG9NaXNzaW5nS2V5OiBmYWxzZSxcbiAgICBhcHBlbmROYW1lc3BhY2VUb0NJTW9kZTogZmFsc2UsXG4gICAgb3ZlcmxvYWRUcmFuc2xhdGlvbk9wdGlvbkhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZShhcmdzKSB7XG4gICAgICB2YXIgcmV0ID0ge307XG4gICAgICBpZiAoX3R5cGVvZihhcmdzWzFdKSA9PT0gJ29iamVjdCcpIHJldCA9IGFyZ3NbMV07XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMV0gPT09ICdzdHJpbmcnKSByZXQuZGVmYXVsdFZhbHVlID0gYXJnc1sxXTtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1syXSA9PT0gJ3N0cmluZycpIHJldC50RGVzY3JpcHRpb24gPSBhcmdzWzJdO1xuXG4gICAgICBpZiAoX3R5cGVvZihhcmdzWzJdKSA9PT0gJ29iamVjdCcgfHwgX3R5cGVvZihhcmdzWzNdKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSBhcmdzWzNdIHx8IGFyZ3NbMl07XG4gICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgIHJldFtrZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuICAgIGludGVycG9sYXRpb246IHtcbiAgICAgIGVzY2FwZVZhbHVlOiB0cnVlLFxuICAgICAgZm9ybWF0OiBmdW5jdGlvbiBmb3JtYXQodmFsdWUsIF9mb3JtYXQsIGxuZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgICAgcHJlZml4OiAne3snLFxuICAgICAgc3VmZml4OiAnfX0nLFxuICAgICAgZm9ybWF0U2VwYXJhdG9yOiAnLCcsXG4gICAgICB1bmVzY2FwZVByZWZpeDogJy0nLFxuICAgICAgbmVzdGluZ1ByZWZpeDogJyR0KCcsXG4gICAgICBuZXN0aW5nU3VmZml4OiAnKScsXG4gICAgICBuZXN0aW5nT3B0aW9uc1NlcGFyYXRvcjogJywnLFxuICAgICAgbWF4UmVwbGFjZXM6IDEwMDAsXG4gICAgICBza2lwT25WYXJpYWJsZXM6IHRydWVcbiAgICB9XG4gIH07XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1PcHRpb25zKG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLm5zID09PSAnc3RyaW5nJykgb3B0aW9ucy5ucyA9IFtvcHRpb25zLm5zXTtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmZhbGxiYWNrTG5nID09PSAnc3RyaW5nJykgb3B0aW9ucy5mYWxsYmFja0xuZyA9IFtvcHRpb25zLmZhbGxiYWNrTG5nXTtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmZhbGxiYWNrTlMgPT09ICdzdHJpbmcnKSBvcHRpb25zLmZhbGxiYWNrTlMgPSBbb3B0aW9ucy5mYWxsYmFja05TXTtcblxuICBpZiAob3B0aW9ucy5zdXBwb3J0ZWRMbmdzICYmIG9wdGlvbnMuc3VwcG9ydGVkTG5ncy5pbmRleE9mKCdjaW1vZGUnKSA8IDApIHtcbiAgICBvcHRpb25zLnN1cHBvcnRlZExuZ3MgPSBvcHRpb25zLnN1cHBvcnRlZExuZ3MuY29uY2F0KFsnY2ltb2RlJ10pO1xuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmZ1bmN0aW9uIG93bktleXMkNihvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgeyBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IH0ga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQkNih0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzJDYoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyQ2KE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIkMyhEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCQzKCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCQzKCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbmZ1bmN0aW9uIGJpbmRNZW1iZXJGdW5jdGlvbnMoaW5zdCkge1xuICB2YXIgbWVtcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0KSk7XG4gIG1lbXMuZm9yRWFjaChmdW5jdGlvbiAobWVtKSB7XG4gICAgaWYgKHR5cGVvZiBpbnN0W21lbV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluc3RbbWVtXSA9IGluc3RbbWVtXS5iaW5kKGluc3QpO1xuICAgIH1cbiAgfSk7XG59XG5cbnZhciBJMThuID0gZnVuY3Rpb24gKF9FdmVudEVtaXR0ZXIpIHtcbiAgX2luaGVyaXRzKEkxOG4sIF9FdmVudEVtaXR0ZXIpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIkMyhJMThuKTtcblxuICBmdW5jdGlvbiBJMThuKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJMThuKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcyk7XG5cbiAgICBpZiAoaXNJRTEwKSB7XG4gICAgICBFdmVudEVtaXR0ZXIuY2FsbChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgfVxuXG4gICAgX3RoaXMub3B0aW9ucyA9IHRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucyk7XG4gICAgX3RoaXMuc2VydmljZXMgPSB7fTtcbiAgICBfdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyO1xuICAgIF90aGlzLm1vZHVsZXMgPSB7XG4gICAgICBleHRlcm5hbDogW11cbiAgICB9O1xuICAgIGJpbmRNZW1iZXJGdW5jdGlvbnMoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuXG4gICAgaWYgKGNhbGxiYWNrICYmICFfdGhpcy5pc0luaXRpYWxpemVkICYmICFvcHRpb25zLmlzQ2xvbmUpIHtcbiAgICAgIGlmICghX3RoaXMub3B0aW9ucy5pbml0SW1tZWRpYXRlKSB7XG4gICAgICAgIF90aGlzLmluaXQob3B0aW9ucywgY2FsbGJhY2spO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihfdGhpcywgX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgICAgfVxuXG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMuaW5pdChvcHRpb25zLCBjYWxsYmFjayk7XG4gICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoSTE4biwgW3tcbiAgICBrZXk6IFwiaW5pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgICBvcHRpb25zID0ge307XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucy5kZWZhdWx0TlMgJiYgb3B0aW9ucy5ucykge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgb3B0aW9ucy5kZWZhdWx0TlMgPSBvcHRpb25zLm5zO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMubnMuaW5kZXhPZigndHJhbnNsYXRpb24nKSA8IDApIHtcbiAgICAgICAgICBvcHRpb25zLmRlZmF1bHROUyA9IG9wdGlvbnMubnNbMF07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGRlZk9wdHMgPSBnZXQoKTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IF9vYmplY3RTcHJlYWQkNihfb2JqZWN0U3ByZWFkJDYoX29iamVjdFNwcmVhZCQ2KHt9LCBkZWZPcHRzKSwgdGhpcy5vcHRpb25zKSwgdHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKSk7XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUFQSSAhPT0gJ3YxJykge1xuICAgICAgICB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbiA9IF9vYmplY3RTcHJlYWQkNihfb2JqZWN0U3ByZWFkJDYoe30sIGRlZk9wdHMuaW50ZXJwb2xhdGlvbiksIHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMua2V5U2VwYXJhdG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLnVzZXJEZWZpbmVkS2V5U2VwYXJhdG9yID0gb3B0aW9ucy5rZXlTZXBhcmF0b3I7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLm5zU2VwYXJhdG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLnVzZXJEZWZpbmVkTnNTZXBhcmF0b3IgPSBvcHRpb25zLm5zU2VwYXJhdG9yO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBjcmVhdGVDbGFzc09uRGVtYW5kKENsYXNzT3JPYmplY3QpIHtcbiAgICAgICAgaWYgKCFDbGFzc09yT2JqZWN0KSByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKHR5cGVvZiBDbGFzc09yT2JqZWN0ID09PSAnZnVuY3Rpb24nKSByZXR1cm4gbmV3IENsYXNzT3JPYmplY3QoKTtcbiAgICAgICAgcmV0dXJuIENsYXNzT3JPYmplY3Q7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5vcHRpb25zLmlzQ2xvbmUpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kdWxlcy5sb2dnZXIpIHtcbiAgICAgICAgICBiYXNlTG9nZ2VyLmluaXQoY3JlYXRlQ2xhc3NPbkRlbWFuZCh0aGlzLm1vZHVsZXMubG9nZ2VyKSwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBiYXNlTG9nZ2VyLmluaXQobnVsbCwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBmb3JtYXR0ZXI7XG5cbiAgICAgICAgaWYgKHRoaXMubW9kdWxlcy5mb3JtYXR0ZXIpIHtcbiAgICAgICAgICBmb3JtYXR0ZXIgPSB0aGlzLm1vZHVsZXMuZm9ybWF0dGVyO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBJbnRsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGZvcm1hdHRlciA9IEZvcm1hdHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsdSA9IG5ldyBMYW5ndWFnZVV0aWwodGhpcy5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5zdG9yZSA9IG5ldyBSZXNvdXJjZVN0b3JlKHRoaXMub3B0aW9ucy5yZXNvdXJjZXMsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciBzID0gdGhpcy5zZXJ2aWNlcztcbiAgICAgICAgcy5sb2dnZXIgPSBiYXNlTG9nZ2VyO1xuICAgICAgICBzLnJlc291cmNlU3RvcmUgPSB0aGlzLnN0b3JlO1xuICAgICAgICBzLmxhbmd1YWdlVXRpbHMgPSBsdTtcbiAgICAgICAgcy5wbHVyYWxSZXNvbHZlciA9IG5ldyBQbHVyYWxSZXNvbHZlcihsdSwge1xuICAgICAgICAgIHByZXBlbmQ6IHRoaXMub3B0aW9ucy5wbHVyYWxTZXBhcmF0b3IsXG4gICAgICAgICAgY29tcGF0aWJpbGl0eUpTT046IHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTixcbiAgICAgICAgICBzaW1wbGlmeVBsdXJhbFN1ZmZpeDogdGhpcy5vcHRpb25zLnNpbXBsaWZ5UGx1cmFsU3VmZml4XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChmb3JtYXR0ZXIgJiYgKCF0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQgfHwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZm9ybWF0ID09PSBkZWZPcHRzLmludGVycG9sYXRpb24uZm9ybWF0KSkge1xuICAgICAgICAgIHMuZm9ybWF0dGVyID0gY3JlYXRlQ2xhc3NPbkRlbWFuZChmb3JtYXR0ZXIpO1xuICAgICAgICAgIHMuZm9ybWF0dGVyLmluaXQocywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQgPSBzLmZvcm1hdHRlci5mb3JtYXQuYmluZChzLmZvcm1hdHRlcik7XG4gICAgICAgIH1cblxuICAgICAgICBzLmludGVycG9sYXRvciA9IG5ldyBJbnRlcnBvbGF0b3IodGhpcy5vcHRpb25zKTtcbiAgICAgICAgcy51dGlscyA9IHtcbiAgICAgICAgICBoYXNMb2FkZWROYW1lc3BhY2U6IHRoaXMuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQodGhpcylcbiAgICAgICAgfTtcbiAgICAgICAgcy5iYWNrZW5kQ29ubmVjdG9yID0gbmV3IENvbm5lY3RvcihjcmVhdGVDbGFzc09uRGVtYW5kKHRoaXMubW9kdWxlcy5iYWNrZW5kKSwgcy5yZXNvdXJjZVN0b3JlLCBzLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBzLmJhY2tlbmRDb25uZWN0b3Iub24oJyonLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfdGhpczIuZW1pdC5hcHBseShfdGhpczIsIFtldmVudF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMubW9kdWxlcy5sYW5ndWFnZURldGVjdG9yKSB7XG4gICAgICAgICAgcy5sYW5ndWFnZURldGVjdG9yID0gY3JlYXRlQ2xhc3NPbkRlbWFuZCh0aGlzLm1vZHVsZXMubGFuZ3VhZ2VEZXRlY3Rvcik7XG4gICAgICAgICAgcy5sYW5ndWFnZURldGVjdG9yLmluaXQocywgdGhpcy5vcHRpb25zLmRldGVjdGlvbiwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZHVsZXMuaTE4bkZvcm1hdCkge1xuICAgICAgICAgIHMuaTE4bkZvcm1hdCA9IGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmkxOG5Gb3JtYXQpO1xuICAgICAgICAgIGlmIChzLmkxOG5Gb3JtYXQuaW5pdCkgcy5pMThuRm9ybWF0LmluaXQodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRyYW5zbGF0b3IgPSBuZXcgVHJhbnNsYXRvcih0aGlzLnNlcnZpY2VzLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0b3Iub24oJyonLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIgPiAxID8gX2xlbjIgLSAxIDogMCksIF9rZXkyID0gMTsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfdGhpczIuZW1pdC5hcHBseShfdGhpczIsIFtldmVudF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubW9kdWxlcy5leHRlcm5hbC5mb3JFYWNoKGZ1bmN0aW9uIChtKSB7XG4gICAgICAgICAgaWYgKG0uaW5pdCkgbS5pbml0KF90aGlzMik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm1hdCA9IHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmZvcm1hdDtcbiAgICAgIGlmICghY2FsbGJhY2spIGNhbGxiYWNrID0gbm9vcDtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyAmJiAhdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yICYmICF0aGlzLm9wdGlvbnMubG5nKSB7XG4gICAgICAgIHZhciBjb2RlcyA9IHRoaXMuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRGYWxsYmFja0NvZGVzKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyk7XG4gICAgICAgIGlmIChjb2Rlcy5sZW5ndGggPiAwICYmIGNvZGVzWzBdICE9PSAnZGV2JykgdGhpcy5vcHRpb25zLmxuZyA9IGNvZGVzWzBdO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvciAmJiAhdGhpcy5vcHRpb25zLmxuZykge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdpbml0OiBubyBsYW5ndWFnZURldGVjdG9yIGlzIHVzZWQgYW5kIG5vIGxuZyBpcyBkZWZpbmVkJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBzdG9yZUFwaSA9IFsnZ2V0UmVzb3VyY2UnLCAnaGFzUmVzb3VyY2VCdW5kbGUnLCAnZ2V0UmVzb3VyY2VCdW5kbGUnLCAnZ2V0RGF0YUJ5TGFuZ3VhZ2UnXTtcbiAgICAgIHN0b3JlQXBpLmZvckVhY2goZnVuY3Rpb24gKGZjTmFtZSkge1xuICAgICAgICBfdGhpczJbZmNOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgX3RoaXMyJHN0b3JlO1xuXG4gICAgICAgICAgcmV0dXJuIChfdGhpczIkc3RvcmUgPSBfdGhpczIuc3RvcmUpW2ZjTmFtZV0uYXBwbHkoX3RoaXMyJHN0b3JlLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICB2YXIgc3RvcmVBcGlDaGFpbmVkID0gWydhZGRSZXNvdXJjZScsICdhZGRSZXNvdXJjZXMnLCAnYWRkUmVzb3VyY2VCdW5kbGUnLCAncmVtb3ZlUmVzb3VyY2VCdW5kbGUnXTtcbiAgICAgIHN0b3JlQXBpQ2hhaW5lZC5mb3JFYWNoKGZ1bmN0aW9uIChmY05hbWUpIHtcbiAgICAgICAgX3RoaXMyW2ZjTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIF90aGlzMiRzdG9yZTI7XG5cbiAgICAgICAgICAoX3RoaXMyJHN0b3JlMiA9IF90aGlzMi5zdG9yZSlbZmNOYW1lXS5hcHBseShfdGhpczIkc3RvcmUyLCBhcmd1bWVudHMpO1xuXG4gICAgICAgICAgcmV0dXJuIF90aGlzMjtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdmFyIGRlZmVycmVkID0gZGVmZXIoKTtcblxuICAgICAgdmFyIGxvYWQgPSBmdW5jdGlvbiBsb2FkKCkge1xuICAgICAgICB2YXIgZmluaXNoID0gZnVuY3Rpb24gZmluaXNoKGVyciwgdCkge1xuICAgICAgICAgIGlmIChfdGhpczIuaXNJbml0aWFsaXplZCAmJiAhX3RoaXMyLmluaXRpYWxpemVkU3RvcmVPbmNlKSBfdGhpczIubG9nZ2VyLndhcm4oJ2luaXQ6IGkxOG5leHQgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4gWW91IHNob3VsZCBjYWxsIGluaXQganVzdCBvbmNlIScpO1xuICAgICAgICAgIF90aGlzMi5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoIV90aGlzMi5vcHRpb25zLmlzQ2xvbmUpIF90aGlzMi5sb2dnZXIubG9nKCdpbml0aWFsaXplZCcsIF90aGlzMi5vcHRpb25zKTtcblxuICAgICAgICAgIF90aGlzMi5lbWl0KCdpbml0aWFsaXplZCcsIF90aGlzMi5vcHRpb25zKTtcblxuICAgICAgICAgIGRlZmVycmVkLnJlc29sdmUodCk7XG4gICAgICAgICAgY2FsbGJhY2soZXJyLCB0KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoX3RoaXMyLmxhbmd1YWdlcyAmJiBfdGhpczIub3B0aW9ucy5jb21wYXRpYmlsaXR5QVBJICE9PSAndjEnICYmICFfdGhpczIuaXNJbml0aWFsaXplZCkgcmV0dXJuIGZpbmlzaChudWxsLCBfdGhpczIudC5iaW5kKF90aGlzMikpO1xuXG4gICAgICAgIF90aGlzMi5jaGFuZ2VMYW5ndWFnZShfdGhpczIub3B0aW9ucy5sbmcsIGZpbmlzaCk7XG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnJlc291cmNlcyB8fCAhdGhpcy5vcHRpb25zLmluaXRJbW1lZGlhdGUpIHtcbiAgICAgICAgbG9hZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dChsb2FkLCAwKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlZmVycmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkUmVzb3VyY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWRSZXNvdXJjZXMobGFuZ3VhZ2UpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IG5vb3A7XG4gICAgICB2YXIgdXNlZENhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICB2YXIgdXNlZExuZyA9IHR5cGVvZiBsYW5ndWFnZSA9PT0gJ3N0cmluZycgPyBsYW5ndWFnZSA6IHRoaXMubGFuZ3VhZ2U7XG4gICAgICBpZiAodHlwZW9mIGxhbmd1YWdlID09PSAnZnVuY3Rpb24nKSB1c2VkQ2FsbGJhY2sgPSBsYW5ndWFnZTtcblxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMucmVzb3VyY2VzIHx8IHRoaXMub3B0aW9ucy5wYXJ0aWFsQnVuZGxlZExhbmd1YWdlcykge1xuICAgICAgICBpZiAodXNlZExuZyAmJiB1c2VkTG5nLnRvTG93ZXJDYXNlKCkgPT09ICdjaW1vZGUnKSByZXR1cm4gdXNlZENhbGxiYWNrKCk7XG4gICAgICAgIHZhciB0b0xvYWQgPSBbXTtcblxuICAgICAgICB2YXIgYXBwZW5kID0gZnVuY3Rpb24gYXBwZW5kKGxuZykge1xuICAgICAgICAgIGlmICghbG5nKSByZXR1cm47XG5cbiAgICAgICAgICB2YXIgbG5ncyA9IF90aGlzMy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShsbmcpO1xuXG4gICAgICAgICAgbG5ncy5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICBpZiAodG9Mb2FkLmluZGV4T2YobCkgPCAwKSB0b0xvYWQucHVzaChsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXVzZWRMbmcpIHtcbiAgICAgICAgICB2YXIgZmFsbGJhY2tzID0gdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nKTtcbiAgICAgICAgICBmYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAobCkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcHBlbmQodXNlZExuZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnByZWxvYWQpIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucHJlbG9hZC5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kKGwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLmxvYWQodG9Mb2FkLCB0aGlzLm9wdGlvbnMubnMsIHVzZWRDYWxsYmFjayk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1c2VkQ2FsbGJhY2sobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbG9hZFJlc291cmNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWxvYWRSZXNvdXJjZXMobG5ncywgbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuICAgICAgaWYgKCFsbmdzKSBsbmdzID0gdGhpcy5sYW5ndWFnZXM7XG4gICAgICBpZiAoIW5zKSBucyA9IHRoaXMub3B0aW9ucy5ucztcbiAgICAgIGlmICghY2FsbGJhY2spIGNhbGxiYWNrID0gbm9vcDtcbiAgICAgIHRoaXMuc2VydmljZXMuYmFja2VuZENvbm5lY3Rvci5yZWxvYWQobG5ncywgbnMsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZGVmZXJyZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInVzZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB1c2UobW9kdWxlKSB7XG4gICAgICBpZiAoIW1vZHVsZSkgdGhyb3cgbmV3IEVycm9yKCdZb3UgYXJlIHBhc3NpbmcgYW4gdW5kZWZpbmVkIG1vZHVsZSEgUGxlYXNlIGNoZWNrIHRoZSBvYmplY3QgeW91IGFyZSBwYXNzaW5nIHRvIGkxOG5leHQudXNlKCknKTtcbiAgICAgIGlmICghbW9kdWxlLnR5cGUpIHRocm93IG5ldyBFcnJvcignWW91IGFyZSBwYXNzaW5nIGEgd3JvbmcgbW9kdWxlISBQbGVhc2UgY2hlY2sgdGhlIG9iamVjdCB5b3UgYXJlIHBhc3NpbmcgdG8gaTE4bmV4dC51c2UoKScpO1xuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdiYWNrZW5kJykge1xuICAgICAgICB0aGlzLm1vZHVsZXMuYmFja2VuZCA9IG1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnbG9nZ2VyJyB8fCBtb2R1bGUubG9nICYmIG1vZHVsZS53YXJuICYmIG1vZHVsZS5lcnJvcikge1xuICAgICAgICB0aGlzLm1vZHVsZXMubG9nZ2VyID0gbW9kdWxlO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdsYW5ndWFnZURldGVjdG9yJykge1xuICAgICAgICB0aGlzLm1vZHVsZXMubGFuZ3VhZ2VEZXRlY3RvciA9IG1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnaTE4bkZvcm1hdCcpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmkxOG5Gb3JtYXQgPSBtb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJ3Bvc3RQcm9jZXNzb3InKSB7XG4gICAgICAgIHBvc3RQcm9jZXNzb3IuYWRkUG9zdFByb2Nlc3Nvcihtb2R1bGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdmb3JtYXR0ZXInKSB7XG4gICAgICAgIHRoaXMubW9kdWxlcy5mb3JtYXR0ZXIgPSBtb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJzNyZFBhcnR5Jykge1xuICAgICAgICB0aGlzLm1vZHVsZXMuZXh0ZXJuYWwucHVzaChtb2R1bGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY2hhbmdlTGFuZ3VhZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2hhbmdlTGFuZ3VhZ2UobG5nLCBjYWxsYmFjaykge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgIHRoaXMuaXNMYW5ndWFnZUNoYW5naW5nVG8gPSBsbmc7XG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuICAgICAgdGhpcy5lbWl0KCdsYW5ndWFnZUNoYW5naW5nJywgbG5nKTtcblxuICAgICAgdmFyIHNldExuZ1Byb3BzID0gZnVuY3Rpb24gc2V0TG5nUHJvcHMobCkge1xuICAgICAgICBfdGhpczQubGFuZ3VhZ2UgPSBsO1xuICAgICAgICBfdGhpczQubGFuZ3VhZ2VzID0gX3RoaXM0LnNlcnZpY2VzLmxhbmd1YWdlVXRpbHMudG9SZXNvbHZlSGllcmFyY2h5KGwpO1xuICAgICAgICBfdGhpczQucmVzb2x2ZWRMYW5ndWFnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKFsnY2ltb2RlJywgJ2RldiddLmluZGV4T2YobCkgPiAtMSkgcmV0dXJuO1xuXG4gICAgICAgIGZvciAodmFyIGxpID0gMDsgbGkgPCBfdGhpczQubGFuZ3VhZ2VzLmxlbmd0aDsgbGkrKykge1xuICAgICAgICAgIHZhciBsbmdJbkxuZ3MgPSBfdGhpczQubGFuZ3VhZ2VzW2xpXTtcbiAgICAgICAgICBpZiAoWydjaW1vZGUnLCAnZGV2J10uaW5kZXhPZihsbmdJbkxuZ3MpID4gLTEpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgaWYgKF90aGlzNC5zdG9yZS5oYXNMYW5ndWFnZVNvbWVUcmFuc2xhdGlvbnMobG5nSW5MbmdzKSkge1xuICAgICAgICAgICAgX3RoaXM0LnJlc29sdmVkTGFuZ3VhZ2UgPSBsbmdJbkxuZ3M7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHZhciBkb25lID0gZnVuY3Rpb24gZG9uZShlcnIsIGwpIHtcbiAgICAgICAgaWYgKGwpIHtcbiAgICAgICAgICBzZXRMbmdQcm9wcyhsKTtcblxuICAgICAgICAgIF90aGlzNC50cmFuc2xhdG9yLmNoYW5nZUxhbmd1YWdlKGwpO1xuXG4gICAgICAgICAgX3RoaXM0LmlzTGFuZ3VhZ2VDaGFuZ2luZ1RvID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgX3RoaXM0LmVtaXQoJ2xhbmd1YWdlQ2hhbmdlZCcsIGwpO1xuXG4gICAgICAgICAgX3RoaXM0LmxvZ2dlci5sb2coJ2xhbmd1YWdlQ2hhbmdlZCcsIGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzNC5pc0xhbmd1YWdlQ2hhbmdpbmdUbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmVycmVkLnJlc29sdmUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczQudC5hcHBseShfdGhpczQsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKGVyciwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczQudC5hcHBseShfdGhpczQsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgdmFyIHNldExuZyA9IGZ1bmN0aW9uIHNldExuZyhsbmdzKSB7XG4gICAgICAgIGlmICghbG5nICYmICFsbmdzICYmIF90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yKSBsbmdzID0gW107XG4gICAgICAgIHZhciBsID0gdHlwZW9mIGxuZ3MgPT09ICdzdHJpbmcnID8gbG5ncyA6IF90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEJlc3RNYXRjaEZyb21Db2RlcyhsbmdzKTtcblxuICAgICAgICBpZiAobCkge1xuICAgICAgICAgIGlmICghX3RoaXM0Lmxhbmd1YWdlKSB7XG4gICAgICAgICAgICBzZXRMbmdQcm9wcyhsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIV90aGlzNC50cmFuc2xhdG9yLmxhbmd1YWdlKSBfdGhpczQudHJhbnNsYXRvci5jaGFuZ2VMYW5ndWFnZShsKTtcbiAgICAgICAgICBpZiAoX3RoaXM0LnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IpIF90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmNhY2hlVXNlckxhbmd1YWdlKGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgX3RoaXM0LmxvYWRSZXNvdXJjZXMobCwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgIGRvbmUoZXJyLCBsKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBpZiAoIWxuZyAmJiB0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IgJiYgIXRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5hc3luYykge1xuICAgICAgICBzZXRMbmcodGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmRldGVjdCgpKTtcbiAgICAgIH0gZWxzZSBpZiAoIWxuZyAmJiB0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IgJiYgdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmFzeW5jKSB7XG4gICAgICAgIHRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5kZXRlY3Qoc2V0TG5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldExuZyhsbmcpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGVmZXJyZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldEZpeGVkVFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRGaXhlZFQobG5nLCBucywga2V5UHJlZml4KSB7XG4gICAgICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICAgICAgdmFyIGZpeGVkVCA9IGZ1bmN0aW9uIGZpeGVkVChrZXksIG9wdHMpIHtcbiAgICAgICAgdmFyIG9wdGlvbnM7XG5cbiAgICAgICAgaWYgKF90eXBlb2Yob3B0cykgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZm9yICh2YXIgX2xlbjMgPSBhcmd1bWVudHMubGVuZ3RoLCByZXN0ID0gbmV3IEFycmF5KF9sZW4zID4gMiA/IF9sZW4zIC0gMiA6IDApLCBfa2V5MyA9IDI7IF9rZXkzIDwgX2xlbjM7IF9rZXkzKyspIHtcbiAgICAgICAgICAgIHJlc3RbX2tleTMgLSAyXSA9IGFyZ3VtZW50c1tfa2V5M107XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb3B0aW9ucyA9IF90aGlzNS5vcHRpb25zLm92ZXJsb2FkVHJhbnNsYXRpb25PcHRpb25IYW5kbGVyKFtrZXksIG9wdHNdLmNvbmNhdChyZXN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3B0aW9ucyA9IF9vYmplY3RTcHJlYWQkNih7fSwgb3B0cyk7XG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb25zLmxuZyA9IG9wdGlvbnMubG5nIHx8IGZpeGVkVC5sbmc7XG4gICAgICAgIG9wdGlvbnMubG5ncyA9IG9wdGlvbnMubG5ncyB8fCBmaXhlZFQubG5ncztcbiAgICAgICAgb3B0aW9ucy5ucyA9IG9wdGlvbnMubnMgfHwgZml4ZWRULm5zO1xuICAgICAgICB2YXIga2V5U2VwYXJhdG9yID0gX3RoaXM1Lm9wdGlvbnMua2V5U2VwYXJhdG9yIHx8ICcuJztcbiAgICAgICAgdmFyIHJlc3VsdEtleSA9IGtleVByZWZpeCA/IFwiXCIuY29uY2F0KGtleVByZWZpeCkuY29uY2F0KGtleVNlcGFyYXRvcikuY29uY2F0KGtleSkgOiBrZXk7XG4gICAgICAgIHJldHVybiBfdGhpczUudChyZXN1bHRLZXksIG9wdGlvbnMpO1xuICAgICAgfTtcblxuICAgICAgaWYgKHR5cGVvZiBsbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGZpeGVkVC5sbmcgPSBsbmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaXhlZFQubG5ncyA9IGxuZztcbiAgICAgIH1cblxuICAgICAgZml4ZWRULm5zID0gbnM7XG4gICAgICBmaXhlZFQua2V5UHJlZml4ID0ga2V5UHJlZml4O1xuICAgICAgcmV0dXJuIGZpeGVkVDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0KCkge1xuICAgICAgdmFyIF90aGlzJHRyYW5zbGF0b3I7XG5cbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0b3IgJiYgKF90aGlzJHRyYW5zbGF0b3IgPSB0aGlzLnRyYW5zbGF0b3IpLnRyYW5zbGF0ZS5hcHBseShfdGhpcyR0cmFuc2xhdG9yLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJleGlzdHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZXhpc3RzKCkge1xuICAgICAgdmFyIF90aGlzJHRyYW5zbGF0b3IyO1xuXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdG9yICYmIChfdGhpcyR0cmFuc2xhdG9yMiA9IHRoaXMudHJhbnNsYXRvcikuZXhpc3RzLmFwcGx5KF90aGlzJHRyYW5zbGF0b3IyLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzZXREZWZhdWx0TmFtZXNwYWNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldERlZmF1bHROYW1lc3BhY2UobnMpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5kZWZhdWx0TlMgPSBucztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaGFzTG9hZGVkTmFtZXNwYWNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhc0xvYWRlZE5hbWVzcGFjZShucykge1xuICAgICAgdmFyIF90aGlzNiA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuICAgICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignaGFzTG9hZGVkTmFtZXNwYWNlOiBpMThuZXh0IHdhcyBub3QgaW5pdGlhbGl6ZWQnLCB0aGlzLmxhbmd1YWdlcyk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmxhbmd1YWdlcyB8fCAhdGhpcy5sYW5ndWFnZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ2hhc0xvYWRlZE5hbWVzcGFjZTogaTE4bi5sYW5ndWFnZXMgd2VyZSB1bmRlZmluZWQgb3IgZW1wdHknLCB0aGlzLmxhbmd1YWdlcyk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGxuZyA9IHRoaXMucmVzb2x2ZWRMYW5ndWFnZSB8fCB0aGlzLmxhbmd1YWdlc1swXTtcbiAgICAgIHZhciBmYWxsYmFja0xuZyA9IHRoaXMub3B0aW9ucyA/IHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyA6IGZhbHNlO1xuICAgICAgdmFyIGxhc3RMbmcgPSB0aGlzLmxhbmd1YWdlc1t0aGlzLmxhbmd1YWdlcy5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChsbmcudG9Mb3dlckNhc2UoKSA9PT0gJ2NpbW9kZScpIHJldHVybiB0cnVlO1xuXG4gICAgICB2YXIgbG9hZE5vdFBlbmRpbmcgPSBmdW5jdGlvbiBsb2FkTm90UGVuZGluZyhsLCBuKSB7XG4gICAgICAgIHZhciBsb2FkU3RhdGUgPSBfdGhpczYuc2VydmljZXMuYmFja2VuZENvbm5lY3Rvci5zdGF0ZVtcIlwiLmNvbmNhdChsLCBcInxcIikuY29uY2F0KG4pXTtcblxuICAgICAgICByZXR1cm4gbG9hZFN0YXRlID09PSAtMSB8fCBsb2FkU3RhdGUgPT09IDI7XG4gICAgICB9O1xuXG4gICAgICBpZiAob3B0aW9ucy5wcmVjaGVjaykge1xuICAgICAgICB2YXIgcHJlUmVzdWx0ID0gb3B0aW9ucy5wcmVjaGVjayh0aGlzLCBsb2FkTm90UGVuZGluZyk7XG4gICAgICAgIGlmIChwcmVSZXN1bHQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHByZVJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaGFzUmVzb3VyY2VCdW5kbGUobG5nLCBucykpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnNlcnZpY2VzLmJhY2tlbmRDb25uZWN0b3IuYmFja2VuZCkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAobG9hZE5vdFBlbmRpbmcobG5nLCBucykgJiYgKCFmYWxsYmFja0xuZyB8fCBsb2FkTm90UGVuZGluZyhsYXN0TG5nLCBucykpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibG9hZE5hbWVzcGFjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9hZE5hbWVzcGFjZXMobnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgX3RoaXM3ID0gdGhpcztcblxuICAgICAgdmFyIGRlZmVycmVkID0gZGVmZXIoKTtcblxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMubnMpIHtcbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG5zID09PSAnc3RyaW5nJykgbnMgPSBbbnNdO1xuICAgICAgbnMuZm9yRWFjaChmdW5jdGlvbiAobikge1xuICAgICAgICBpZiAoX3RoaXM3Lm9wdGlvbnMubnMuaW5kZXhPZihuKSA8IDApIF90aGlzNy5vcHRpb25zLm5zLnB1c2gobik7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubG9hZFJlc291cmNlcyhmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGRlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZGVmZXJyZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWRMYW5ndWFnZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9hZExhbmd1YWdlcyhsbmdzLCBjYWxsYmFjaykge1xuICAgICAgdmFyIGRlZmVycmVkID0gZGVmZXIoKTtcbiAgICAgIGlmICh0eXBlb2YgbG5ncyA9PT0gJ3N0cmluZycpIGxuZ3MgPSBbbG5nc107XG4gICAgICB2YXIgcHJlbG9hZGVkID0gdGhpcy5vcHRpb25zLnByZWxvYWQgfHwgW107XG4gICAgICB2YXIgbmV3TG5ncyA9IGxuZ3MuZmlsdGVyKGZ1bmN0aW9uIChsbmcpIHtcbiAgICAgICAgcmV0dXJuIHByZWxvYWRlZC5pbmRleE9mKGxuZykgPCAwO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICghbmV3TG5ncy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMub3B0aW9ucy5wcmVsb2FkID0gcHJlbG9hZGVkLmNvbmNhdChuZXdMbmdzKTtcbiAgICAgIHRoaXMubG9hZFJlc291cmNlcyhmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGRlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZGVmZXJyZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImRpclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkaXIobG5nKSB7XG4gICAgICBpZiAoIWxuZykgbG5nID0gdGhpcy5yZXNvbHZlZExhbmd1YWdlIHx8ICh0aGlzLmxhbmd1YWdlcyAmJiB0aGlzLmxhbmd1YWdlcy5sZW5ndGggPiAwID8gdGhpcy5sYW5ndWFnZXNbMF0gOiB0aGlzLmxhbmd1YWdlKTtcbiAgICAgIGlmICghbG5nKSByZXR1cm4gJ3J0bCc7XG4gICAgICB2YXIgcnRsTG5ncyA9IFsnYXInLCAnc2h1JywgJ3NxcicsICdzc2gnLCAneGFhJywgJ3loZCcsICd5dWQnLCAnYWFvJywgJ2FiaCcsICdhYnYnLCAnYWNtJywgJ2FjcScsICdhY3cnLCAnYWN4JywgJ2FjeScsICdhZGYnLCAnYWRzJywgJ2FlYicsICdhZWMnLCAnYWZiJywgJ2FqcCcsICdhcGMnLCAnYXBkJywgJ2FyYicsICdhcnEnLCAnYXJzJywgJ2FyeScsICdhcnonLCAnYXV6JywgJ2F2bCcsICdheWgnLCAnYXlsJywgJ2F5bicsICdheXAnLCAnYmJ6JywgJ3BnYScsICdoZScsICdpdycsICdwcycsICdwYnQnLCAncGJ1JywgJ3BzdCcsICdwcnAnLCAncHJkJywgJ3VnJywgJ3VyJywgJ3lkZCcsICd5ZHMnLCAneWloJywgJ2ppJywgJ3lpJywgJ2hibycsICdtZW4nLCAneG1uJywgJ2ZhJywgJ2pwcicsICdwZW8nLCAncGVzJywgJ3BycycsICdkdicsICdzYW0nLCAnY2tiJ107XG4gICAgICByZXR1cm4gcnRsTG5ncy5pbmRleE9mKHRoaXMuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShsbmcpKSA+IC0xIHx8IGxuZy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJy1hcmFiJykgPiAxID8gJ3J0bCcgOiAnbHRyJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY2xvbmVJbnN0YW5jZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbG9uZUluc3RhbmNlKCkge1xuICAgICAgdmFyIF90aGlzOCA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogbm9vcDtcblxuICAgICAgdmFyIG1lcmdlZE9wdGlvbnMgPSBfb2JqZWN0U3ByZWFkJDYoX29iamVjdFNwcmVhZCQ2KF9vYmplY3RTcHJlYWQkNih7fSwgdGhpcy5vcHRpb25zKSwgb3B0aW9ucyksIHtcbiAgICAgICAgaXNDbG9uZTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBjbG9uZSA9IG5ldyBJMThuKG1lcmdlZE9wdGlvbnMpO1xuICAgICAgdmFyIG1lbWJlcnNUb0NvcHkgPSBbJ3N0b3JlJywgJ3NlcnZpY2VzJywgJ2xhbmd1YWdlJ107XG4gICAgICBtZW1iZXJzVG9Db3B5LmZvckVhY2goZnVuY3Rpb24gKG0pIHtcbiAgICAgICAgY2xvbmVbbV0gPSBfdGhpczhbbV07XG4gICAgICB9KTtcbiAgICAgIGNsb25lLnNlcnZpY2VzID0gX29iamVjdFNwcmVhZCQ2KHt9LCB0aGlzLnNlcnZpY2VzKTtcbiAgICAgIGNsb25lLnNlcnZpY2VzLnV0aWxzID0ge1xuICAgICAgICBoYXNMb2FkZWROYW1lc3BhY2U6IGNsb25lLmhhc0xvYWRlZE5hbWVzcGFjZS5iaW5kKGNsb25lKVxuICAgICAgfTtcbiAgICAgIGNsb25lLnRyYW5zbGF0b3IgPSBuZXcgVHJhbnNsYXRvcihjbG9uZS5zZXJ2aWNlcywgY2xvbmUub3B0aW9ucyk7XG4gICAgICBjbG9uZS50cmFuc2xhdG9yLm9uKCcqJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNCA+IDEgPyBfbGVuNCAtIDEgOiAwKSwgX2tleTQgPSAxOyBfa2V5NCA8IF9sZW40OyBfa2V5NCsrKSB7XG4gICAgICAgICAgYXJnc1tfa2V5NCAtIDFdID0gYXJndW1lbnRzW19rZXk0XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNsb25lLmVtaXQuYXBwbHkoY2xvbmUsIFtldmVudF0uY29uY2F0KGFyZ3MpKTtcbiAgICAgIH0pO1xuICAgICAgY2xvbmUuaW5pdChtZXJnZWRPcHRpb25zLCBjYWxsYmFjayk7XG4gICAgICBjbG9uZS50cmFuc2xhdG9yLm9wdGlvbnMgPSBjbG9uZS5vcHRpb25zO1xuICAgICAgY2xvbmUudHJhbnNsYXRvci5iYWNrZW5kQ29ubmVjdG9yLnNlcnZpY2VzLnV0aWxzID0ge1xuICAgICAgICBoYXNMb2FkZWROYW1lc3BhY2U6IGNsb25lLmhhc0xvYWRlZE5hbWVzcGFjZS5iaW5kKGNsb25lKVxuICAgICAgfTtcbiAgICAgIHJldHVybiBjbG9uZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidG9KU09OXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgc3RvcmU6IHRoaXMuc3RvcmUsXG4gICAgICAgIGxhbmd1YWdlOiB0aGlzLmxhbmd1YWdlLFxuICAgICAgICBsYW5ndWFnZXM6IHRoaXMubGFuZ3VhZ2VzLFxuICAgICAgICByZXNvbHZlZExhbmd1YWdlOiB0aGlzLnJlc29sdmVkTGFuZ3VhZ2VcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEkxOG47XG59KEV2ZW50RW1pdHRlcik7XG5cbl9kZWZpbmVQcm9wZXJ0eShJMThuLCBcImNyZWF0ZUluc3RhbmNlXCIsIGZ1bmN0aW9uICgpIHtcbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIG5ldyBJMThuKG9wdGlvbnMsIGNhbGxiYWNrKTtcbn0pO1xuXG52YXIgaW5zdGFuY2UgPSBJMThuLmNyZWF0ZUluc3RhbmNlKCk7XG5pbnN0YW5jZS5jcmVhdGVJbnN0YW5jZSA9IEkxOG4uY3JlYXRlSW5zdGFuY2U7XG5cbnZhciBjcmVhdGVJbnN0YW5jZSA9IGluc3RhbmNlLmNyZWF0ZUluc3RhbmNlO1xudmFyIGluaXQgPSBpbnN0YW5jZS5pbml0O1xudmFyIGxvYWRSZXNvdXJjZXMgPSBpbnN0YW5jZS5sb2FkUmVzb3VyY2VzO1xudmFyIHJlbG9hZFJlc291cmNlcyA9IGluc3RhbmNlLnJlbG9hZFJlc291cmNlcztcbnZhciB1c2UgPSBpbnN0YW5jZS51c2U7XG52YXIgY2hhbmdlTGFuZ3VhZ2UgPSBpbnN0YW5jZS5jaGFuZ2VMYW5ndWFnZTtcbnZhciBnZXRGaXhlZFQgPSBpbnN0YW5jZS5nZXRGaXhlZFQ7XG52YXIgdCA9IGluc3RhbmNlLnQ7XG52YXIgZXhpc3RzID0gaW5zdGFuY2UuZXhpc3RzO1xudmFyIHNldERlZmF1bHROYW1lc3BhY2UgPSBpbnN0YW5jZS5zZXREZWZhdWx0TmFtZXNwYWNlO1xudmFyIGhhc0xvYWRlZE5hbWVzcGFjZSA9IGluc3RhbmNlLmhhc0xvYWRlZE5hbWVzcGFjZTtcbnZhciBsb2FkTmFtZXNwYWNlcyA9IGluc3RhbmNlLmxvYWROYW1lc3BhY2VzO1xudmFyIGxvYWRMYW5ndWFnZXMgPSBpbnN0YW5jZS5sb2FkTGFuZ3VhZ2VzO1xuXG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZTtcbmV4cG9ydCB7IGNoYW5nZUxhbmd1YWdlLCBjcmVhdGVJbnN0YW5jZSwgZXhpc3RzLCBnZXRGaXhlZFQsIGhhc0xvYWRlZE5hbWVzcGFjZSwgaW5pdCwgbG9hZExhbmd1YWdlcywgbG9hZE5hbWVzcGFjZXMsIGxvYWRSZXNvdXJjZXMsIHJlbG9hZFJlc291cmNlcywgc2V0RGVmYXVsdE5hbWVzcGFjZSwgdCwgdXNlIH07XG4iLCJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgeyBsb2NhdGlvblNlcnZpY2UsIHF1ZXJ5U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL2hlbHBlcnMvdXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0VGV4dFdpdGhNZW1vVHlwZSB9IGZyb20gXCIuLi9oZWxwZXJzL2ZpbHRlclwiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL21lbW8tZmlsdGVyLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgaTE4bmV4dCBmcm9tIFwiaTE4bmV4dFwiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuXHJcbmludGVyZmFjZSBGaWx0ZXJQcm9wcyB7fVxyXG5cclxuY29uc3QgTWVtb0ZpbHRlcjogUmVhY3QuRkM8RmlsdGVyUHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIGxvY2F0aW9uU3RhdGU6IHsgcXVlcnkgfSxcclxuICB9ID0gdXNlQ29udGV4dChhcHBDb250ZXh0KTtcclxuXHJcbiAgY29uc3QgeyB0YWc6IHRhZ1F1ZXJ5LCBkdXJhdGlvbiwgdHlwZTogbWVtb1R5cGUsIHRleHQ6IHRleHRRdWVyeSwgZmlsdGVyIH0gPSBxdWVyeTtcclxuXHJcbiAgY29uc3QgcXVlcnlGaWx0ZXIgPSBxdWVyeVNlcnZpY2UuZ2V0UXVlcnlCeUlkKGZpbHRlcik7XHJcbiAgY29uc3Qgc2hvd0ZpbHRlciA9IEJvb2xlYW4odGFnUXVlcnkgfHwgKGR1cmF0aW9uICYmIGR1cmF0aW9uLmZyb20gPCBkdXJhdGlvbi50bykgfHwgbWVtb1R5cGUgfHwgdGV4dFF1ZXJ5IHx8IHF1ZXJ5RmlsdGVyKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZmlsdGVyLXF1ZXJ5LWNvbnRhaW5lciAke3Nob3dGaWx0ZXIgPyBcIlwiIDogXCJoaWRkZW5cIn1gfT5cclxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGlwLXRleHRcIj5GSUxURVI6IDwvc3Bhbj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17XCJmaWx0ZXItaXRlbS1jb250YWluZXIgXCIgKyAocXVlcnlGaWx0ZXIgPyBcIlwiIDogXCJoaWRkZW5cIil9XHJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldE1lbW9GaWx0ZXIoXCJcIik7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tdGV4dFwiPvCflJY8L3NwYW4+IHtxdWVyeUZpbHRlcj8udGl0bGV9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtcImZpbHRlci1pdGVtLWNvbnRhaW5lciBcIiArICh0YWdRdWVyeSA/IFwiXCIgOiBcImhpZGRlblwiKX1cclxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0VGFnUXVlcnkoXCJcIik7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tdGV4dFwiPvCfj7fvuI88L3NwYW4+IHt0YWdRdWVyeX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e1wiZmlsdGVyLWl0ZW0tY29udGFpbmVyIFwiICsgKG1lbW9UeXBlID8gXCJcIiA6IFwiaGlkZGVuXCIpfVxyXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRNZW1vVHlwZVF1ZXJ5KFwiXCIpO1xyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj7wn5OmPC9zcGFuPiB7Z2V0VGV4dFdpdGhNZW1vVHlwZShtZW1vVHlwZSBhcyBNZW1vU3BlY1R5cGUpfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAge2R1cmF0aW9uICYmIGR1cmF0aW9uLmZyb20gPCBkdXJhdGlvbi50byA/IChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJmaWx0ZXItaXRlbS1jb250YWluZXJcIlxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0RnJvbUFuZFRvUXVlcnkoMCwgMCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tdGV4dFwiPvCfl5PvuI88L3NwYW4+IHt1dGlscy5nZXREYXRlU3RyaW5nKGR1cmF0aW9uLmZyb20pfSB7aTE4bmV4dC50KFwidG9cIil9IHttb21lbnQoZHVyYXRpb24udG8sIFwieFwiKS5hZGQoMSwnZGF5cycpLmZvcm1hdChcIllZWVkvTU0vRERcIil9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICkgOiBudWxsfVxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtcImZpbHRlci1pdGVtLWNvbnRhaW5lciBcIiArICh0ZXh0UXVlcnkgPyBcIlwiIDogXCJoaWRkZW5cIil9XHJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldFRleHRRdWVyeShcIlwiKTtcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbi10ZXh0XCI+8J+UjTwvc3Bhbj4ge3RleHRRdWVyeX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVtb0ZpbHRlcjtcclxuIiwiLy8gaW1wb3J0IHsgZ2V0RmlsZSB9IGZyb20gXCIuLi9vYkNvbXBvbmVudHMvb2JVcGRhdGVNZW1vXCI7XHJcbmltcG9ydCB7IFRGaWxlIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcclxuXHJcbi8qKlxyXG4gKiDlrp7njrDkuIDkuKrnroDmmJPniYjnmoQgbWFya2Rvd24g6Kej5p6QXHJcbiAqIC0g5YiX6KGo6Kej5p6Q77ybXHJcbiAqIC0g5Luj56CB5Z2X77ybXHJcbiAqIC0g5Yqg57KXL+aWnOS9k++8m1xyXG4gKiAtIFRPRE87XHJcbiAqL1xyXG5jb25zdCBDT0RFX0JMT0NLX1JFRyA9IC9gYGAoW1xcc1xcU10qPylgYGAvZztcclxuY29uc3QgQk9MRF9URVhUX1JFRyA9IC9cXCpcXCooLis/KVxcKlxcKi9nO1xyXG5jb25zdCBFTV9URVhUX1JFRyA9IC9cXCooLis/KVxcKi9nO1xyXG5jb25zdCBUT0RPX0JMT0NLX1JFRyA9IC9cXFsgXFxdIC9nO1xyXG5jb25zdCBET05FX0JMT0NLX1JFRyA9IC9cXFt4XFxdIC9nO1xyXG5jb25zdCBET1RfTElfUkVHID0gL1sqXSAvZztcclxuY29uc3QgTlVNX0xJX1JFRyA9IC8oXFxkKylcXC4gL2c7XHJcbi8vIGNvbnN0IEJSX1JFRyA9IC9cXDxiclxcPi9nO1xyXG5cclxuY29uc3QgSU5URVJOQUxfTURfUkVHID0gL1xcW1xcWyhbXlxcXV0rKVxcXVxcXS9nO1xyXG5jb25zdCBFWFJFUk5BTF9NRF9SRUcgPSAvXFxbKFteXFxdXSspXFxdXFwoKChbXlxcXV0rKS5tZClcXCkvZztcclxuXHJcbmNvbnN0IHBhcnNlTWFya2VkVG9IdG1sID0gKG1hcmtlZFN0cjogc3RyaW5nLCBtZW1vaWQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cclxuICBjb25zdCBodG1sVGV4dCA9IG1hcmtlZFN0clxyXG4gICAgLnJlcGxhY2UoQ09ERV9CTE9DS19SRUcsIFwiPHByZSBsYW5nPScnPiQxPC9wcmU+XCIpXHJcbiAgICAucmVwbGFjZShET1RfTElfUkVHLCBcIjxzcGFuIGNsYXNzPSdjb3VudGVyLWJsb2NrJz7igKI8L3NwYW4+XCIpXHJcbiAgICAucmVwbGFjZShOVU1fTElfUkVHLCBcIjxzcGFuIGNsYXNzPSdjb3VudGVyLWJsb2NrJz4kMS48L3NwYW4+XCIpXHJcbiAgICAucmVwbGFjZShUT0RPX0JMT0NLX1JFRywgXCI8c3BhbiBjbGFzcz0ndG9kby1ibG9jaycgZGF0YS10eXBlPSd0b2RvJz7irJw8L3NwYW4+XCIpXHJcbiAgICAucmVwbGFjZShET05FX0JMT0NLX1JFRywgXCI8c3BhbiBjbGFzcz0ndG9kby1ibG9jaycgZGF0YS10eXBlPSdkb25lJz7inIU8L3NwYW4+XCIpXHJcbiAgICAucmVwbGFjZShCT0xEX1RFWFRfUkVHLCBcIjxzdHJvbmc+JDE8L3N0cm9uZz5cIilcclxuICAgIC5yZXBsYWNlKEVNX1RFWFRfUkVHLCBcIjxlbT4kMTwvZW0+XCIpXHJcbiAgICAucmVwbGFjZSgvJmx0O2JyJmd0Oy9nLCBcIjwvcD48cD5cIilcclxuICAgIC5yZXBsYWNlKC8mYW1wOy9nLCBcIiZcIik7XHJcbiAgXHJcbiAgbGV0IG5ld0h0bWxUZXh0ID0gaHRtbFRleHQ7XHJcblxyXG4gIGlmKG1lbW9pZCl7XHJcbiAgICBpZihJTlRFUk5BTF9NRF9SRUcudGVzdChodG1sVGV4dCkpe1xyXG4gICAgICBjb25zdCBpbnRlcm5hbE1EID0gaHRtbFRleHQubWF0Y2goSU5URVJOQUxfTURfUkVHKTtcclxuICAgICAgLy8gY29uc3QgcGF0aCA9IGdldEZpbGUobWVtb2lkKS5wYXRoO1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgaW50ZXJuYWxNRC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYoISgvKGpwZWd8anBnfGdpZnxwbmd8c3ZnfGJtcHx3ZXBnKS9nLnRlc3QoaW50ZXJuYWxNRFtpXSkpKXtcclxuICAgICAgICAgIGNvbnN0IGludGVybmFsQ29udGVudCA9IGdldENvbnRlbnRGcm9tSW50ZXJuYWxMaW5rKGludGVybmFsTURbaV0pO1xyXG4gICAgICAgICAgaWYoL1xcfC9nLnRlc3QoaW50ZXJuYWxDb250ZW50KSl7XHJcbiAgICAgICAgICAgIGNvbnN0IFtsaW5rLCBsYWJlbF0gPSBpbnRlcm5hbENvbnRlbnQuc3BsaXQoXCJ8XCIpO1xyXG4gICAgICAgICAgICBjb25zdCByZXBsYWNlTWVudCA9IHJlcGxhY2VNZChsaW5rLCBsYWJlbCk7XHJcbiAgICAgICAgICAgIG5ld0h0bWxUZXh0ID0gaHRtbFRleHQucmVwbGFjZShpbnRlcm5hbE1EW2ldLCByZXBsYWNlTWVudCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29uc3QgbGluayA9IGludGVybmFsQ29udGVudDtcclxuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBcIlwiO1xyXG4gICAgICAgICAgICBjb25zdCByZXBsYWNlTWVudCA9IHJlcGxhY2VNZChsaW5rLCBsYWJlbCk7XHJcbiAgICAgICAgICAgIG5ld0h0bWxUZXh0ID0gbmV3SHRtbFRleHQucmVwbGFjZShpbnRlcm5hbE1EW2ldLCByZXBsYWNlTWVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZihFWFJFUk5BTF9NRF9SRUcudGVzdChodG1sVGV4dCkpe1xyXG4gICAgICBjb25zdCBleHRlcm5hbE1EID0gaHRtbFRleHQubWF0Y2goRVhSRVJOQUxfTURfUkVHKTtcclxuICAgICAgLy8gY29uc3QgcGF0aCA9IGdldEZpbGUobWVtb2lkKS5wYXRoO1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZXh0ZXJuYWxNRC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYoISgvKGpwZWd8anBnfGdpZnxwbmd8c3ZnfGJtcHx3ZXBnKS9nLnRlc3QoZXh0ZXJuYWxNRFtpXSkpKXtcclxuICAgICAgICAgIGNvbnN0IGxpbmsgPSBnZXRDb250ZW50RnJvbUV4dGVybmFsTGluayhleHRlcm5hbE1EW2ldKTtcclxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gZ2V0TGFiZWxGcm9tRXh0ZXJuYWxMaW5rKGV4dGVybmFsTURbaV0pO1xyXG4gICAgICAgICAgY29uc3QgcmVwbGFjZU1lbnQgPSByZXBsYWNlTWQobGluaywgbGFiZWwpO1xyXG4gICAgICAgICAgbmV3SHRtbFRleHQgPSBodG1sVGV4dC5yZXBsYWNlKGV4dGVybmFsTURbaV0sIHJlcGxhY2VNZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLy8gY29uc3QgZXh0ZXJuYWxNRCA9IG1hcmtlZFN0ci5tYXRjaChFWFJFUk5BTF9NRF9SRUcpO1xyXG5cclxuXHJcblxyXG4gIHJldHVybiBuZXdIdG1sVGV4dDtcclxufTtcclxuXHJcbmNvbnN0IHJlcGxhY2VNZCA9IChpbnRlcm5hbExpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IHN0cmluZyA9PntcclxuICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuXHJcbiAgY29uc3QgZmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZGVjb2RlVVJJQ29tcG9uZW50KGludGVybmFsTGluayksICcnKTtcclxuXHJcbiAgLy8gbGV0IGZpbGVQYXRoO1xyXG5cclxuICBpZihmaWxlIGluc3RhbmNlb2YgVEZpbGUpe1xyXG4gICAgLy8gZmlsZVBhdGggPSBmaWxlLnBhdGg7XHJcbiAgICBpZihsYWJlbCl7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGA8YSBkYXRhLWhyZWY9XCIke2ludGVybmFsTGlua31cIiBkYXRhLXR5cGU9XCJsaW5rXCIgZGF0YS1maWxlcGF0aD1cIiR7aW50ZXJuYWxMaW5rfVwiIGNsYXNzPVwiaW50ZXJuYWwtbGlua1wiPiR7bGFiZWx9PC9hPmApO1xyXG4gICAgICByZXR1cm4gYDxhIGRhdGEtaHJlZj1cIiR7aW50ZXJuYWxMaW5rfVwiIGRhdGEtdHlwZT1cImxpbmtcIiBkYXRhLWZpbGVwYXRoPVwiJHtpbnRlcm5hbExpbmt9XCIgY2xhc3M9XCJpbnRlcm5hbC1saW5rXCI+JHtsYWJlbH08L2E+YDtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gYDxhIGRhdGEtaHJlZj1cIiR7aW50ZXJuYWxMaW5rfVwiIGRhdGEtdHlwZT1cImxpbmtcIiBkYXRhLWZpbGVwYXRoPVwiJHtpbnRlcm5hbExpbmt9XCIgY2xhc3M9XCJpbnRlcm5hbC1saW5rXCI+JHtpbnRlcm5hbExpbmt9PC9hPmA7XHJcbiAgICB9XHJcbiAgfWVsc2UgaWYobGFiZWwpe1xyXG4gICAgcmV0dXJuIGA8YSBkYXRhLWhyZWY9XCIke2ludGVybmFsTGlua31cIiBkYXRhLXR5cGU9XCJsaW5rXCIgZGF0YS1maWxlcGF0aD1cIiR7aW50ZXJuYWxMaW5rfVwiIGNsYXNzPVwiaW50ZXJuYWwtbGluayBpcy11bnJlc29sdmVkXCI+JHtsYWJlbH08L2E+YDtcclxuICB9ZWxzZXtcclxuICAgIHJldHVybiBgPGEgZGF0YS1ocmVmPVwiJHtpbnRlcm5hbExpbmt9XCIgZGF0YS10eXBlPVwibGlua1wiIGRhdGEtZmlsZXBhdGg9XCIke2ludGVybmFsTGlua31cIiBjbGFzcz1cImludGVybmFsLWxpbmsgaXMtdW5yZXNvbHZlZFwiPiR7aW50ZXJuYWxMaW5rfTwvYT5gO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgZ2V0Q29udGVudEZyb21JbnRlcm5hbExpbmsgPSAobGluZTogc3RyaW5nKSA9PiAvXFxbXFxbKFteXFxdXSspXFxdXFxdL2cuZXhlYyhsaW5lKT8uWzFdO1xyXG5cclxuY29uc3QgZ2V0TGFiZWxGcm9tRXh0ZXJuYWxMaW5rID0gKGxpbmU6IHN0cmluZykgPT4gRVhSRVJOQUxfTURfUkVHLmV4ZWMobGluZSk/LlsxXTtcclxuXHJcbmNvbnN0IGdldENvbnRlbnRGcm9tRXh0ZXJuYWxMaW5rID0gKGxpbmU6IHN0cmluZykgPT4gL1xcWyhbXlxcXV0rKVxcXVxcKCgoW15cXF1dKykubWQpXFwpL2cuZXhlYyhsaW5lKT8uWzNdO1xyXG5cclxuY29uc3QgcGFyc2VIdG1sVG9SYXdUZXh0ID0gKGh0bWxTdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgY29uc3QgdGVtcEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICB0ZW1wRWwuY2xhc3NOYW1lID0gXCJtZW1vLWNvbnRlbnQtdGV4dFwiO1xyXG4gIHRlbXBFbC5pbm5lckhUTUwgPSBodG1sU3RyO1xyXG4gIGNvbnN0IHRleHQgPSB0ZW1wRWwuaW5uZXJUZXh0O1xyXG4gIHJldHVybiB0ZXh0O1xyXG59O1xyXG5cclxuY29uc3QgcGFyc2VSYXdUZXh0VG9IdG1sID0gKHJhd1RleHRTdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgY29uc3QgaHRtbFRleHQgPSByYXdUZXh0U3RyLnJlcGxhY2UoL1xcbi9nLCBcIjxicj5cIik7XHJcbiAgcmV0dXJuIGh0bWxUZXh0O1xyXG59O1xyXG5cclxuY29uc3QgZW5jb2RlSHRtbCA9IChodG1sU3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIGNvbnN0IHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIHQudGV4dENvbnRlbnQgPSBodG1sU3RyO1xyXG4gIHJldHVybiB0LmlubmVySFRNTDtcclxufTtcclxuXHJcbmV4cG9ydCB7IGVuY29kZUh0bWwsIHBhcnNlTWFya2VkVG9IdG1sLCBwYXJzZUh0bWxUb1Jhd1RleHQsIHBhcnNlUmF3VGV4dFRvSHRtbCB9O1xyXG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSBcIi4vY3JlYXRlU3RvcmVcIjtcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudDtcclxuICBzdG9yZTogU3RvcmU8YW55LCBhbnk+O1xyXG4gIGNvbnRleHQ6IFJlYWN0LkNvbnRleHQ8YW55PjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRveS1SZWR1eCBQcm92aWRlclxyXG4gKiBKdXN0IGZvciBkZWJ1ZyB3aXRoIHRoZSBhcHAgc3RvcmVcclxuICovXHJcbmNvbnN0IFByb3ZpZGVyOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHM6IFByb3BzKSA9PiB7XHJcbiAgY29uc3QgeyBjaGlsZHJlbiwgc3RvcmUsIGNvbnRleHQ6IENvbnRleHQgfSA9IHByb3BzO1xyXG4gIGNvbnN0IFthcHBTdGF0ZSwgc2V0QXBwU3RhdGVdID0gdXNlU3RhdGUoc3RvcmUuZ2V0U3RhdGUoKSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IHN0b3JlLnN1YnNjcmliZSgobnMpID0+IHtcclxuICAgICAgc2V0QXBwU3RhdGUobnMpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgdW5zdWJzY3JpYmUoKTtcclxuICAgIH07XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gPENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FwcFN0YXRlfT57Y2hpbGRyZW59PC9Db250ZXh0LlByb3ZpZGVyPjtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFByb3ZpZGVyO1xyXG4iLCJpbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xyXG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tIFwiLi4vc3RvcmVzL2FwcENvbnRleHRcIjtcclxuaW1wb3J0IFByb3ZpZGVyIGZyb20gXCIuLi9sYWJzL1Byb3ZpZGVyXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbnN0c1wiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL2RpYWxvZy5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmludGVyZmFjZSBEaWFsb2dDb25maWcge1xyXG4gIGNsYXNzTmFtZTogc3RyaW5nO1xyXG4gIHVzZUFwcENvbnRleHQ/OiBib29sZWFuO1xyXG4gIGNsaWNrU3BhY2VEZXN0cm95PzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgRGlhbG9nQ29uZmlnLCBEaWFsb2dQcm9wcyB7XHJcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcclxufVxyXG5cclxuY29uc3QgQmFzZURpYWxvZzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xyXG4gIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgY2xpY2tTcGFjZURlc3Ryb3ksIGRlc3Ryb3kgfSA9IHByb3BzO1xyXG5cclxuICBjb25zdCBoYW5kbGVTcGFjZUNsaWNrZWQgPSAoKSA9PiB7XHJcbiAgICBpZiAoY2xpY2tTcGFjZURlc3Ryb3kpIHtcclxuICAgICAgZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17YGRpYWxvZy13cmFwcGVyICR7Y2xhc3NOYW1lfWB9IG9uQ2xpY2s9e2hhbmRsZVNwYWNlQ2xpY2tlZH0+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWNvbnRhaW5lclwiIG9uQ2xpY2s9eyhlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfT5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzaG93RGlhbG9nPFQgZXh0ZW5kcyBEaWFsb2dQcm9wcz4oXHJcbiAgY29uZmlnOiBEaWFsb2dDb25maWcsXHJcbiAgRGlhbG9nQ29tcG9uZW50OiBSZWFjdC5GQzxUPixcclxuICBwcm9wcz86IE9taXQ8VCwgXCJkZXN0cm95XCI+XHJcbik6IERpYWxvZ0NhbGxiYWNrIHtcclxuICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZCh0ZW1wRGl2KTtcclxuXHJcbiAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICB0ZW1wRGl2LmZpcnN0RWxlbWVudENoaWxkPy5jbGFzc0xpc3QuYWRkKFwic2hvd3VwXCIpO1xyXG4gIH0sIDApO1xyXG5cclxuICBjb25zdCBjYnM6IERpYWxvZ0NhbGxiYWNrID0ge1xyXG4gICAgZGVzdHJveTogKCkgPT4ge1xyXG4gICAgICB0ZW1wRGl2LmZpcnN0RWxlbWVudENoaWxkPy5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd3VwXCIpO1xyXG4gICAgICB0ZW1wRGl2LmZpcnN0RWxlbWVudENoaWxkPy5jbGFzc0xpc3QuYWRkKFwic2hvd29mZlwiKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGVtcERpdi5yZW1vdmUoKTtcclxuICAgICAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRlbXBEaXYpO1xyXG4gICAgICB9LCBBTklNQVRJT05fRFVSQVRJT04pO1xyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjb25zdCBkaWFsb2dQcm9wcyA9IHtcclxuICAgIC4uLnByb3BzLFxyXG4gICAgZGVzdHJveTogY2JzLmRlc3Ryb3ksXHJcbiAgfSBhcyBUO1xyXG5cclxuICBsZXQgRnJhZ21lbnQgPSAoXHJcbiAgICA8QmFzZURpYWxvZyBkZXN0cm95PXtjYnMuZGVzdHJveX0gY2xpY2tTcGFjZURlc3Ryb3k9e3RydWV9IHsuLi5jb25maWd9PlxyXG4gICAgICA8RGlhbG9nQ29tcG9uZW50IHsuLi5kaWFsb2dQcm9wc30gLz5cclxuICAgIDwvQmFzZURpYWxvZz5cclxuICApO1xyXG5cclxuICBpZiAoY29uZmlnLnVzZUFwcENvbnRleHQpIHtcclxuICAgIEZyYWdtZW50ID0gKFxyXG4gICAgICA8UHJvdmlkZXIgc3RvcmU9e2FwcFN0b3JlfSBjb250ZXh0PXthcHBDb250ZXh0fT5cclxuICAgICAgICB7RnJhZ21lbnR9XHJcbiAgICAgIDwvUHJvdmlkZXI+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgUmVhY3RET00ucmVuZGVyKEZyYWdtZW50LCB0ZW1wRGl2KTtcclxuXHJcbiAgcmV0dXJuIGNicztcclxufVxyXG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi9oZWxwZXJzL3V0aWxzXCI7XHJcbmltcG9ydCB7IHNob3dEaWFsb2cgfSBmcm9tIFwiLi9EaWFsb2dcIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9wcmV2aWV3LWltYWdlLWRpYWxvZy5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuaW1wb3J0IGNsb3NlIGZyb20gJy4uL2ljb25zL2Nsb3NlLnN2Zyc7XHJcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgRGlhbG9nUHJvcHMge1xyXG4gIGltZ1VybDogc3RyaW5nO1xyXG4gIGZpbGVwYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5jb25zdCBQcmV2aWV3SW1hZ2VEaWFsb2c6IFJlYWN0LkZDPFByb3BzPiA9ICh7IGRlc3Ryb3ksIGltZ1VybCwgZmlsZXBhdGggfTogUHJvcHMpID0+IHtcclxuICBjb25zdCBpbWdSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudD4obnVsbCk7XHJcbiAgY29uc3QgW2ltZ1dpZHRoLCBzZXRJbWdXaWR0aF0gPSB1c2VTdGF0ZTxudW1iZXI+KC0xKTtcclxuICBjb25zdCB7IHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB1dGlscy5nZXRJbWFnZVNpemUoaW1nVXJsKS50aGVuKCh7IHdpZHRoIH0pID0+IHtcclxuICAgICAgaWYgKHdpZHRoICE9PSAwKSB7XHJcbiAgICAgICAgc2V0SW1nV2lkdGgoODApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNldEltZ1dpZHRoKDApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZUNsb3NlQnRuQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBkZXN0cm95KCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRGVjcmVhc2VJbWFnZVNpemUgPSAoKSA9PiB7XHJcbiAgICBpZiAoaW1nV2lkdGggPiAzMCkge1xyXG4gICAgICBzZXRJbWdXaWR0aChpbWdXaWR0aCAtIDEwKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVJbmNyZWFzZUltYWdlU2l6ZSA9ICgpID0+IHtcclxuICAgIHNldEltZ1dpZHRoKGltZ1dpZHRoICsgMTApO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGNvbnZlcnRCYXNlNjRUb0Jsb2IgPSAoYmFzZTY0OiBzdHJpbmcsIHR5cGU6IHN0cmluZykgPT4ge1xyXG4gICAgdmFyIGJ5dGVzID0gd2luZG93LmF0b2IoYmFzZTY0KTtcclxuICAgIHZhciBhYiA9IG5ldyBBcnJheUJ1ZmZlcihieXRlcy5sZW5ndGgpO1xyXG4gICAgdmFyIGlhID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlhW2ldID0gYnl0ZXMuY2hhckNvZGVBdChpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgQmxvYihbYWJdLCB7IHR5cGU6IHR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjb3B5SW1hZ2VUb0NsaXBib2FyZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmKChmaWxlcGF0aCA9PT0gbnVsbCB8fCBmaWxlcGF0aCA9PT0gdW5kZWZpbmVkKSAmJiBpbWdVcmwgIT09IG51bGwgKXtcclxuICAgICAgY29uc3QgbXlCYXNlNjQgPSBpbWdVcmwuc3BsaXQoJ2Jhc2U2NCwnKVsxXTtcclxuICAgICAgY29uc3QgYmxvYklucHV0ID0gY29udmVydEJhc2U2NFRvQmxvYihteUJhc2U2NCwgJ2ltYWdlL3BuZycpO1xyXG4gICAgICBjb25zdCBjbGlwYm9hcmRJdGVtSW5wdXQgPSBuZXcgQ2xpcGJvYXJkSXRlbSh7ICdpbWFnZS9wbmcnOiBibG9iSW5wdXQgfSk7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgd2luZG93Lm5hdmlnYXRvclsnY2xpcGJvYXJkJ10ud3JpdGUoW2NsaXBib2FyZEl0ZW1JbnB1dF0pO1xyXG4gICAgICBuZXcgTm90aWNlKFwiU2VuZCB0byBjbGlwYm9hcmQgc3VjY2Vzc2Z1bGx5XCIpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHZhciBidWZmZXIgPSBhd2FpdCB2YXVsdC5hZGFwdGVyLnJlYWRCaW5hcnkoZmlsZXBhdGgpO1xyXG4gICAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcclxuICBcclxuICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbYXJyXSwgeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBjb25zdCBpdGVtID0gbmV3IENsaXBib2FyZEl0ZW0oeyAnaW1hZ2UvcG5nJzogYmxvYiB9KTtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yWydjbGlwYm9hcmQnXS53cml0ZShbaXRlbV0pO1xyXG4gICAgfVxyXG5cclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gY2xvc2UtYnRuXCIgb25DbGljaz17aGFuZGxlQ2xvc2VCdG5DbGlja30+XHJcbiAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17Y2xvc2V9IC8+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWctY29udGFpbmVyIGludGVybmFsLWVtYmVkIGltYWdlLWVtYmVkIGlzLWxvYWRlZFwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3NOYW1lPXtpbWdXaWR0aCA8PSAwID8gXCJoaWRkZW5cIiA6IFwiXCJ9IHJlZj17aW1nUmVmfSB3aWR0aD17aW1nV2lkdGggKyBcIiVcIn0gc3JjPXtpbWdVcmx9IC8+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtcImxvYWRpbmctdGV4dCBcIiArIChpbWdXaWR0aCA9PT0gLTEgPyBcIlwiIDogXCJoaWRkZW5cIil9PuWbvueJh+WKoOi9veS4rS4uLjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e1wibG9hZGluZy10ZXh0IFwiICsgKGltZ1dpZHRoID09PSAwID8gXCJcIiA6IFwiaGlkZGVuXCIpfT7wn5ifIOWbvueJh+WKoOi9veWksei0pe+8jOWPr+iDveaYr+aXoOaViOeahOmTvuaOpTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFjdGlvbi1idG5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17aGFuZGxlRGVjcmVhc2VJbWFnZVNpemV9PlxyXG4gICAgICAgICAg4p6WXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG5cIiBvbkNsaWNrPXtoYW5kbGVJbmNyZWFzZUltYWdlU2l6ZX0+XHJcbiAgICAgICAgICDinpVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9eygpID0+IHNldEltZ1dpZHRoKDgwKX0+XHJcbiAgICAgICAgICDirZVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2NvcHlJbWFnZVRvQ2xpcGJvYXJkfT5cclxuICAgICAgICAgIPCfk4RcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2hvd1ByZXZpZXdJbWFnZURpYWxvZyhpbWdVcmw6IHN0cmluZywgZmlsZXBhdGg/OiBzdHJpbmcpOiB2b2lkIHtcclxuICBpZihmaWxlcGF0aCl7XHJcbiAgICBzaG93RGlhbG9nKFxyXG4gICAgICB7XHJcbiAgICAgICAgY2xhc3NOYW1lOiBcInByZXZpZXctaW1hZ2UtZGlhbG9nXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByZXZpZXdJbWFnZURpYWxvZyxcclxuICAgICAgeyBpbWdVcmwgLCBmaWxlcGF0aCB9XHJcbiAgICApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgc2hvd0RpYWxvZyhcclxuICAgICAge1xyXG4gICAgICAgIGNsYXNzTmFtZTogXCJwcmV2aWV3LWltYWdlLWRpYWxvZ1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcmV2aWV3SW1hZ2VEaWFsb2csXHJcbiAgICAgIHsgaW1nVXJsIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCBzaG93UHJldmlld0ltYWdlRGlhbG9nIGZyb20gXCIuL1ByZXZpZXdJbWFnZURpYWxvZ1wiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL2ltYWdlLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHtcclxuICBpbWdVcmw6IHN0cmluZztcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgYWx0OiBzdHJpbmc7XHJcbiAgcmVmZXJyZXJQb2xpY3k/OiBzdHJpbmc7XHJcbiAgZmlsZXBhdGg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IEltYWdlOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHM6IFByb3BzKSA9PiB7XHJcbiAgY29uc3QgeyBjbGFzc05hbWUsIGltZ1VybCwgYWx0LCByZWZlcnJlclBvbGljeSwgZmlsZXBhdGggfSA9IHByb3BzO1xyXG5cclxuICBjb25zdCBoYW5kbGVJbWFnZUNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYoZmlsZXBhdGgpe1xyXG4gICAgICBzaG93UHJldmlld0ltYWdlRGlhbG9nKGltZ1VybCAsIGZpbGVwYXRoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHNob3dQcmV2aWV3SW1hZ2VEaWFsb2coaW1nVXJsKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e1wiaW1hZ2UtY29udGFpbmVyIFwiICsgY2xhc3NOYW1lfSBvbkNsaWNrPXtoYW5kbGVJbWFnZUNsaWNrfSByZWZlcnJlclBvbGljeT17cmVmZXJyZXJQb2xpY3l9PlxyXG4gICAgICA8aW1nIHNyYz17aW1nVXJsfSBhbHQ9e2FsdH0gZGVjb2Rpbmc9XCJhc3luY1wiIGxvYWRpbmc9XCJsYXp5XCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJbWFnZTtcclxuIiwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgSU1BR0VfVVJMX1JFRywgTUFSS0RPV05fVVJMX1JFRywgTUFSS0RPV05fV0VCX1VSTF9SRUcsIE1FTU9fTElOS19SRUcsIFdJS0lfSU1BR0VfVVJMX1JFRyB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbnN0c1wiO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL2hlbHBlcnMvdXRpbHNcIjtcclxuaW1wb3J0IHsgZ2xvYmFsU3RhdGVTZXJ2aWNlLCBtZW1vU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBwYXJzZUh0bWxUb1Jhd1RleHQgfSBmcm9tIFwiLi4vaGVscGVycy9tYXJrZWRcIjtcclxuaW1wb3J0IHsgZm9ybWF0TWVtb0NvbnRlbnQgfSBmcm9tIFwiLi9NZW1vXCI7XHJcbmltcG9ydCB7IHNob3dEaWFsb2cgfSBmcm9tIFwiLi9EaWFsb2dcIjtcclxuaW1wb3J0IE9ubHkgZnJvbSBcIi4vY29tbW9uL09ubHlXaGVuXCI7XHJcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi9JbWFnZVwiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL21lbW8tY2FyZC1kaWFsb2cubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IE5vdGljZSwgVEZpbGUsIFZhdWx0IH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCBjbG9zZSBmcm9tICcuLi9pY29ucy9jbG9zZS5zdmcnO1xyXG5pbXBvcnQgZWRpdCBmcm9tICcuLi9pY29ucy9lZGl0LnN2Zyc7XHJcblxyXG5pbnRlcmZhY2UgTGlua2VkTWVtbyBleHRlbmRzIEZvcm1hdHRlZE1lbW8ge1xyXG4gIGRhdGVTdHI6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgRGlhbG9nUHJvcHMge1xyXG4gIG1lbW86IE1vZGVsLk1lbW87XHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgTGlua01hdGNoIHtcclxuICBsaW5rVGV4dDogc3RyaW5nO1xyXG4gIGFsdFRleHQ6IHN0cmluZztcclxuICBwYXRoOiBzdHJpbmc7XHJcbiAgZmlsZXBhdGg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRQYXRoT2ZJbWFnZSA9ICh2YXVsdDogVmF1bHQsIGltYWdlOiBURmlsZSkgPT4ge1xyXG4gIHJldHVybiB2YXVsdC5nZXRSZXNvdXJjZVBhdGgoaW1hZ2UpO1xyXG59O1xyXG5cclxuY29uc3QgZGV0ZWN0V2lraUludGVybmFsTGluayA9IChsaW5lVGV4dCA6IHN0cmluZykgOiBMaW5rTWF0Y2ggfCBudWxsID0+IHtcclxuXHJcbiAgY29uc3QgeyBtZXRhZGF0YUNhY2hlLHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcbiAgY29uc3QgaW50ZXJuYWxGaWxlTmFtZSA9ICBXSUtJX0lNQUdFX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/LlsxXVxyXG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9ICBXSUtJX0lNQUdFX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XVxyXG4gIGNvbnN0IGZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGRlY29kZVVSSUNvbXBvbmVudChpbnRlcm5hbEZpbGVOYW1lKSwgJycpO1xyXG4gIGlmKGZpbGUgPT09IG51bGwpe1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcclxuICAgICAgcGF0aDogXCJcIixcclxuICAgICAgZmlsZXBhdGg6IFwiXCIsXHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBjb25zdCBpbWFnZVBhdGggPSBnZXRQYXRoT2ZJbWFnZSh2YXVsdCwgZmlsZSk7XHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUucGF0aDtcclxuICAgIGlmKGludGVybmFsQWx0TmFtZSl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxyXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcclxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXHJcbiAgICAgIH1cclxuICAgIH1lbHNlIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgICBhbHRUZXh0OiBcIlwiLFxyXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcclxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbmNvbnN0IGRldGVjdE1ESW50ZXJuYWxMaW5rID0gKGxpbmVUZXh0IDogc3RyaW5nKSA6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xyXG5cclxuICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gIE1BUktET1dOX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XVxyXG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9ICBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMl1cclxuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcclxuICBpZihmaWxlID09PSBudWxsKXtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgIGZpbGVwYXRoOiBcIlwiLFxyXG4gICAgfVxyXG4gIH1lbHNlIHtcclxuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKHZhdWx0LCBmaWxlKTtcclxuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5wYXRoO1xyXG4gICAgaWYoaW50ZXJuYWxBbHROYW1lKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcclxuICAgICAgfVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICAgIGFsdFRleHQ6IFwiXCIsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY29uc3QgTWVtb0NhcmREaWFsb2c6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcclxuICBjb25zdCBbbWVtbywgc2V0TWVtb10gPSB1c2VTdGF0ZTxGb3JtYXR0ZWRNZW1vPih7XHJcbiAgICAuLi5wcm9wcy5tZW1vLFxyXG4gICAgY3JlYXRlZEF0U3RyOiB1dGlscy5nZXREYXRlVGltZVN0cmluZyhwcm9wcy5tZW1vLmNyZWF0ZWRBdCksXHJcbiAgfSk7XHJcbiAgY29uc3QgW2xpbmtNZW1vcywgc2V0TGlua01lbW9zXSA9IHVzZVN0YXRlPExpbmtlZE1lbW9bXT4oW10pO1xyXG4gIGNvbnN0IFtsaW5rZWRNZW1vcywgc2V0TGlua2VkTWVtb3NdID0gdXNlU3RhdGU8TGlua2VkTWVtb1tdPihbXSk7XHJcbiAgXHJcbiAgbGV0IGV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XHJcbiAgbGV0IGludGVybmFsSW1hZ2VVcmxzID0gW107XHJcbiAgbGV0IGFsbE1hcmtkb3duTGluazogc3RyaW5nIHwgYW55W10gPSBbXTtcclxuICBsZXQgYWxsSW50ZXJuYWxMaW5rID0gW10gYXMgYW55W107XHJcbiAgaWYoSU1BR0VfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpe1xyXG4gICAgbGV0IGFsbEV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XHJcbiAgICBsZXQgYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XHJcbiAgICBpZihNQVJLRE9XTl9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSl7XHJcbiAgICAgIGFsbE1hcmtkb3duTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1VSTF9SRUcpKTtcclxuICAgIH1cclxuICAgIGlmKFdJS0lfSU1BR0VfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpe1xyXG4gICAgICBhbGxJbnRlcm5hbExpbmsgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChXSUtJX0lNQUdFX1VSTF9SRUcpKTtcclxuICAgIH1cclxuICAgIC8vIGNvbnN0IGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xyXG4gICAgaWYoTUFSS0RPV05fV0VCX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKXtcclxuICAgICAgYWxsRXh0ZXJuYWxJbWFnZVVybHMgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChNQVJLRE9XTl9XRUJfVVJMX1JFRykpO1xyXG4gICAgfVxyXG4gICAgaWYoYWxsSW50ZXJuYWxMaW5rLmxlbmd0aCl7XHJcbiAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxJbnRlcm5hbExpbmsubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBvbmUgPSBhbGxJbnRlcm5hbExpbmtbaV07XHJcbiAgICAgICAgaW50ZXJuYWxJbWFnZVVybHMucHVzaChkZXRlY3RXaWtpSW50ZXJuYWxMaW5rKG9uZSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZihhbGxNYXJrZG93bkxpbmsubGVuZ3RoKXtcclxuICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbE1hcmtkb3duTGluay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgbGV0IHR3byA9IGFsbE1hcmtkb3duTGlua1tpXTtcclxuICAgICAgICBpZigvKC4qKWh0dHBbc10/KC4qKS8udGVzdCh0d28pKXtcclxuICAgICAgICAgIGFub3RoZXJFeHRlcm5hbEltYWdlVXJscy5wdXNoKE1BUktET1dOX1VSTF9SRUcuZXhlYyh0d28pPy5bNV0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaW50ZXJuYWxJbWFnZVVybHMucHVzaChkZXRlY3RNREludGVybmFsTGluayh0d28pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGV4dGVybmFsSW1hZ2VVcmxzID0gYWxsRXh0ZXJuYWxJbWFnZVVybHMuY29uY2F0KGFub3RoZXJFeHRlcm5hbEltYWdlVXJscyk7XHJcbiAgICAvLyBleHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcclxuICB9XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBmZXRjaExpbmtlZE1lbW9zID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGxpbmtNZW1vczogTGlua2VkTWVtb1tdID0gW107XHJcbiAgICAgICAgY29uc3QgbWF0Y2hlZEFyciA9IFsuLi5tZW1vLmNvbnRlbnQubWF0Y2hBbGwoTUVNT19MSU5LX1JFRyldO1xyXG4gICAgICAgIGZvciAoY29uc3QgbWF0Y2hSZXMgb2YgbWF0Y2hlZEFycikge1xyXG4gICAgICAgICAgaWYgKG1hdGNoUmVzICYmIG1hdGNoUmVzLmxlbmd0aCA9PT0gMykge1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IG1hdGNoUmVzWzJdO1xyXG4gICAgICAgICAgICBjb25zdCBtZW1vVGVtcCA9IG1lbW9TZXJ2aWNlLmdldE1lbW9CeUlkKGlkKTtcclxuICAgICAgICAgICAgaWYgKG1lbW9UZW1wKSB7XHJcbiAgICAgICAgICAgICAgbGlua01lbW9zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgLi4ubWVtb1RlbXAsXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRTdHI6IHV0aWxzLmdldERhdGVUaW1lU3RyaW5nKG1lbW9UZW1wLmNyZWF0ZWRBdCksXHJcbiAgICAgICAgICAgICAgICBkYXRlU3RyOiB1dGlscy5nZXREYXRlU3RyaW5nKG1lbW9UZW1wLmNyZWF0ZWRBdCksXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0TGlua01lbW9zKFsuLi5saW5rTWVtb3NdKTtcclxuXHJcbiAgICAgICAgY29uc3QgbGlua2VkTWVtb3MgPSBhd2FpdCBtZW1vU2VydmljZS5nZXRMaW5rZWRNZW1vcyhtZW1vLmlkKTtcclxuICAgICAgICBzZXRMaW5rZWRNZW1vcyhcclxuICAgICAgICAgIGxpbmtlZE1lbW9zXHJcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYi5jcmVhdGVkQXQpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSlcclxuICAgICAgICAgICAgLm1hcCgobSkgPT4gKHtcclxuICAgICAgICAgICAgICAuLi5tLFxyXG4gICAgICAgICAgICAgIGNyZWF0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcobS5jcmVhdGVkQXQpLFxyXG4gICAgICAgICAgICAgIGRhdGVTdHI6IHV0aWxzLmdldERhdGVTdHJpbmcobS5jcmVhdGVkQXQpLFxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICApO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIC8vIGRvIG50aFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGZldGNoTGlua2VkTWVtb3MoKTtcclxuICB9LCBbbWVtby5pZF0pO1xyXG5cclxuICBjb25zdCBoYW5kbGVNZW1vQ29udGVudENsaWNrID0gdXNlQ2FsbGJhY2soYXN5bmMgKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcclxuICAgIGNvbnN0IHRhcmdldEVsID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKHRhcmdldEVsLmNsYXNzTmFtZSA9PT0gXCJtZW1vLWxpbmstdGV4dFwiKSB7XHJcbiAgICAgIGNvbnN0IG5leHRNZW1vSWQgPSB0YXJnZXRFbC5kYXRhc2V0Py52YWx1ZTtcclxuICAgICAgY29uc3QgbWVtb1RlbXAgPSBtZW1vU2VydmljZS5nZXRNZW1vQnlJZChuZXh0TWVtb0lkID8/IFwiXCIpO1xyXG5cclxuICAgICAgaWYgKG1lbW9UZW1wKSB7XHJcbiAgICAgICAgY29uc3QgbmV4dE1lbW8gPSB7XHJcbiAgICAgICAgICAuLi5tZW1vVGVtcCxcclxuICAgICAgICAgIGNyZWF0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcobWVtb1RlbXAuY3JlYXRlZEF0KSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHNldExpbmtNZW1vcyhbXSk7XHJcbiAgICAgICAgc2V0TGlua2VkTWVtb3MoW10pO1xyXG4gICAgICAgIHNldE1lbW8obmV4dE1lbW8pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ldyBOb3RpY2UoXCJNRU1PIE5vdCBGb3VuZFwiKTtcclxuICAgICAgICB0YXJnZXRFbC5jbGFzc0xpc3QucmVtb3ZlKFwibWVtby1saW5rLXRleHRcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZUxpbmtlZE1lbW9DbGljayA9IHVzZUNhbGxiYWNrKChtZW1vOiBGb3JtYXR0ZWRNZW1vKSA9PiB7XHJcbiAgICBzZXRMaW5rTWVtb3MoW10pO1xyXG4gICAgc2V0TGlua2VkTWVtb3MoW10pO1xyXG4gICAgc2V0TWVtbyhtZW1vKTtcclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZUVkaXRNZW1vQnRuQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XHJcbiAgICBwcm9wcy5kZXN0cm95KCk7XHJcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0RWRpdE1lbW9JZChtZW1vLmlkKTtcclxuICB9LCBbbWVtby5pZF0pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZW1vLWNhcmQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIj57bWVtby5jcmVhdGVkQXRTdHJ9PC9wPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBlZGl0LWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUVkaXRNZW1vQnRuQ2xpY2t9PlxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2VkaXR9IC8+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBjbG9zZS1idG5cIiBvbkNsaWNrPXtwcm9wcy5kZXN0cm95fT5cclxuICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtjbG9zZX0gLz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lbW8tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1lbW8tY29udGVudC10ZXh0XCJcclxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlTWVtb0NvbnRlbnRDbGlja31cclxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBmb3JtYXRNZW1vQ29udGVudChtZW1vLmNvbnRlbnQpIH19XHJcbiAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgPE9ubHkgd2hlbj17ZXh0ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIHtleHRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXHJcbiAgICAgICAgICAgICAgPEltYWdlIGtleT17aWR4fSBjbGFzc05hbWU9XCJtZW1vLWltZ1wiIGltZ1VybD17aW1nVXJsfSBhbHQ9XCJcIiByZWZlcnJlclBvbGljeT1cIm5vLXJlZmVycmVyXCIgLz5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L09ubHk+XHJcbiAgICAgICAgPE9ubHkgd2hlbj17aW50ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy13cmFwcGVyIGludGVybmFsLWVtYmVkIGltYWdlLWVtYmVkIGlzLWxvYWRlZFwiPlxyXG4gICAgICAgICAgICB7aW50ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxyXG4gICAgICAgICAgICAgIDxJbWFnZSBrZXk9e2lkeH0gY2xhc3NOYW1lPVwibWVtby1pbWdcIiBpbWdVcmw9e2ltZ1VybC5wYXRofSBhbHQ9e2ltZ1VybC5hbHRUZXh0fSBmaWxlcGF0aD17aW1nVXJsLmZpbGVwYXRofS8+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Pbmx5PlxyXG4gICAgICAgICAgey8qIDxPbmx5IHdoZW49e2ltYWdlVXJscy5sZW5ndGggPiAwfT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIHtpbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgPEltYWdlIGNsYXNzTmFtZT1cIm1lbW8taW1nXCIga2V5PXtpZHh9IGltZ1VybD17aW1nVXJsfSAvPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvT25seT4gKi99XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci1jb250YWluZXJcIj48L2Rpdj5cclxuICAgICAgICB7bGlua01lbW9zLm1hcCgoXywgaWR4KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaWR4IDwgNCkge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJhY2tncm91bmQtbGF5ZXItY29udGFpbmVyXCJcclxuICAgICAgICAgICAgICAgIGtleT17aWR4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgYm90dG9tOiAoaWR4ICsgMSkgKiAtMyArIFwicHhcIixcclxuICAgICAgICAgICAgICAgICAgbGVmdDogKGlkeCArIDEpICogNSArIFwicHhcIixcclxuICAgICAgICAgICAgICAgICAgd2lkdGg6IGBjYWxjKDEwMCUgLSAkeyhpZHggKyAxKSAqIDEwfXB4KWAsXHJcbiAgICAgICAgICAgICAgICAgIHpJbmRleDogLWlkeCAtIDEsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAge2xpbmtNZW1vcy5sZW5ndGggPiAwID8gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGlua2VkLW1lbW9zLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+TElOS0VEIHtsaW5rTWVtb3MubGVuZ3RofSBNRU1PIDwvcD5cclxuICAgICAgICAgIHtsaW5rTWVtb3MubWFwKChtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJhd3RleHQgPSBwYXJzZUh0bWxUb1Jhd1RleHQoZm9ybWF0TWVtb0NvbnRlbnQobS5jb250ZW50KSkucmVwbGFjZUFsbChcIlxcblwiLCBcIiBcIik7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rZWQtbWVtby1jb250YWluZXJcIiBrZXk9e20uaWR9IG9uQ2xpY2s9eygpID0+IGhhbmRsZUxpbmtlZE1lbW9DbGljayhtKX0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIj57bS5kYXRlU3RyfSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7cmF3dGV4dH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApIDogbnVsbH1cclxuICAgICAge2xpbmtlZE1lbW9zLmxlbmd0aCA+IDAgPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rZWQtbWVtb3Mtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj57bGlua2VkTWVtb3MubGVuZ3RofSBNRU1PIExJTksgVE8gVEhFIE1FTU88L3A+XHJcbiAgICAgICAgICB7bGlua2VkTWVtb3MubWFwKChtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJhd3RleHQgPSBwYXJzZUh0bWxUb1Jhd1RleHQoZm9ybWF0TWVtb0NvbnRlbnQobS5jb250ZW50KSkucmVwbGFjZUFsbChcIlxcblwiLCBcIiBcIik7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rZWQtbWVtby1jb250YWluZXJcIiBrZXk9e20uaWR9IG9uQ2xpY2s9eygpID0+IGhhbmRsZUxpbmtlZE1lbW9DbGljayhtKX0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIj57bS5kYXRlU3RyfSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7cmF3dGV4dH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApIDogbnVsbH1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzaG93TWVtb0NhcmREaWFsb2cobWVtbzogTW9kZWwuTWVtbyk6IHZvaWQge1xyXG4gIHNob3dEaWFsb2coXHJcbiAgICB7XHJcbiAgICAgIGNsYXNzTmFtZTogXCJtZW1vLWNhcmQtZGlhbG9nXCIsXHJcbiAgICB9LFxyXG4gICAgTWVtb0NhcmREaWFsb2csXHJcbiAgICB7IG1lbW8gfVxyXG4gICk7XHJcbn1cclxuIiwiaW1wb3J0IHsgZGFpbHlOb3Rlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IHJlcXVlc3QgfSBmcm9tICdvYnNpZGlhbic7XHJcblxyXG5jb25zdCBjYWNoZWRSZXNvdXJjZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XHJcblxyXG5jb25zdCBjb252ZXJ0UmVzb3VyY2VUb0RhdGFVUkwgPSBhc3luYyAodXJsOiBzdHJpbmcsIHVzZUNhY2hlID0gdHJ1ZSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XHJcbiAgY29uc3QgeyB2YXVsdCB9ID0gZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0U3RhdGUoKS5hcHA7XHJcblxyXG4gIGlmICh1c2VDYWNoZSAmJiBjYWNoZWRSZXNvdXJjZU1hcC5oYXModXJsKSkge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjYWNoZWRSZXNvdXJjZU1hcC5nZXQodXJsKSBhcyBzdHJpbmcpO1xyXG4gIH1cclxuXHJcbiAgLy8gbGV0IHJlcztcclxuXHJcbiAgaWYoIS8oaHR0cHxodHRwcykvZy50ZXN0KHVybCkpe1xyXG5cclxuICAgIGlmKGF3YWl0IHZhdWx0LmFkYXB0ZXIuZXhpc3RzKHVybCkpe1xyXG4gICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCB2YXVsdC5hZGFwdGVyLnJlYWRCaW5hcnkodXJsKTtcclxuICAgICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcclxuXHJcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYXJyXSwgeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcclxuICAgICAgLy8gdmFyIGxlbiA9IGFyci5ieXRlTGVuZ3RoO1xyXG4gICAgICAvLyBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIC8vICAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSggYXJyWyBpIF0gKTtcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgLy8gcmV0dXJuIHdpbmRvdy5idG9hKCBiaW5hcnkgKTtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgYmFzZTY0VXJsID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XHJcbiAgICAgICAgICBjYWNoZWRSZXNvdXJjZU1hcC5zZXQodXJsLCBiYXNlNjRVcmwpO1xyXG4gICAgICAgICAgcmVzb2x2ZShiYXNlNjRVcmwpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgdHJ5IHtcclxuICAgICAgLy8gZ2V0QmFzZTY0SW1hZ2UodXJsKTtcclxuICAgICAgY29uc3QgZG93bmxvYWQgPSBhd2FpdCByZXF1ZXN0KHsgXHJcbiAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgICAgdXJsOiB1cmwsIFxyXG4gICAgICAgICAgICBjb250ZW50VHlwZTogXCJpbWFnZS9hdmlmLGltYWdlL3dlYnAsaW1hZ2UvYXBuZyxpbWFnZS9zdmcreG1sLGltYWdlLyosKi8qO3E9MC44XCIsXHJcbiAgICAgICAgICAgIC8vIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLy8gICBcIkNvbnRlbnQtVHlwZVwiOiBcImltYWdlL2F2aWYsaW1hZ2Uvd2VicCxpbWFnZS9hcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKiwqLyo7cT0wLjhcIixcclxuICAgICAgICAgICAgLy8gICBBY2NlcHQ6IFwiaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qLCovKjtxPTAuOFwiLFxyXG4gICAgICAgICAgICAvLyAgIFwiUHJveHktQ29ubmVjdGlvblwiOiBcImtlZXAtYWxpdmVcIixcclxuICAgICAgICAgICAgLy8gICBQcmFnbWE6IFwibm8tY2FjaGVcIixcclxuICAgICAgICAgICAgLy8gICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxyXG4gICAgICAgICAgICAvLyAgIFwiVXNlci1BZ2VudFwiOiBcIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIG9ic2lkaWFuLzAuMTIuMTkgQ2hyb21lLzkxLjAuNDQ3Mi4xNjQgRWxlY3Ryb24vMTMuNS4yIFNhZmFyaS81MzcuMzZcIixcclxuICAgICAgICAgICAgLy8gfSxcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3QgZW5jID0gbmV3IFRleHRFbmNvZGVyKCk7IC8vIGFsd2F5cyB1dGYtOFxyXG4gICAgICBjb25zdCBiZiA9IGVuYy5lbmNvZGUoZG93bmxvYWQpO1xyXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2JmXSwgeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgYmFzZTY0VXJsID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XHJcbiAgICAgICAgICBjYWNoZWRSZXNvdXJjZU1hcC5zZXQodXJsLCBiYXNlNjRVcmwpO1xyXG4gICAgICAgICAgcmVzb2x2ZShiYXNlNjRVcmwpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyByZXR1cm4gKChkb3dubG9hZCA9PT0gXCJOb3QgRm91bmRcIiB8fCBkb3dubG9hZCA9PT0gYHtcImVycm9yXCI6XCJOb3QgRm91bmRcIn1gKSA/IG51bGwgOiBkb3dubG9hZCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3IgaW4gZ3JhYlJlbGVhc2VGaWxlRnJvbVJlcG9zaXRvcnlcIiwgVVJMLCBlcnJvcilcclxuICAgIH1cclxuICB9XHJcbn07XHJcblxyXG4vLyBjb25zdCBnZXRCYXNlNjRJbWFnZSA9IChpbWc6IGFueSkgPT4ge1xyXG5cclxuLy8gICBpbWcuY3Jvc3NPcmlnaW4gPSAnJztcclxuXHJcbi8vICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XHJcbi8vICAgY2FudmFzLndpZHRoID0gaW1nLndpZHRoO1xyXG4vLyAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0O1xyXG5cclxuLy8gICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuLy8gICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7XHJcblxyXG4vLyAgIHZhciBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTChcImltYWdlL3BuZ1wiKTtcclxuXHJcbi8vICAgY29uc29sZS5sb2coZGF0YVVSTC5yZXBsYWNlKC9eZGF0YTppbWFnZVxcLyhwbmd8anBnKTtiYXNlNjQsLywgXCJcIikpO1xyXG5cclxuLy8gICByZXR1cm4gMDtcclxuLy8gfVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY29udmVydFJlc291cmNlVG9EYXRhVVJMO1xyXG4iLCIvLyBpbXBvcnQgY29udmVydFJlc291cmNlVG9EYXRhVVJMIGZyb20gXCIuL2NvbnZlcnRSZXNvdXJjZVRvRGF0YVVSTFwiO1xyXG4vLyBpbXBvcnQgeyBkYWlseU5vdGVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbmltcG9ydCBjb252ZXJ0UmVzb3VyY2VUb0RhdGFVUkwgZnJvbSBcIi4vY29udmVydFJlc291cmNlVG9EYXRhVVJMXCI7XHJcblxyXG5jb25zdCBnZXRDbG9uZVN0eWxlZEVsZW1lbnQgPSBhc3luYyAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcclxuICBjb25zdCBjbG9uZWRFbGVtZW50Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50LnRhZ05hbWUpO1xyXG4gIC8vIGNvbnN0IHsgdmF1bHQgfSA9IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCkuYXBwO1xyXG4gIGNsb25lZEVsZW1lbnRDb250YWluZXIuaW5uZXJIVE1MID0gZWxlbWVudC5pbm5lckhUTUw7XHJcblxyXG4gIGNvbnN0IGFwcGx5U3R5bGVzID0gYXN5bmMgKHNvdXJjZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbG9uZWRFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xyXG4gICAgaWYgKCFzb3VyY2VFbGVtZW50IHx8ICFjbG9uZWRFbGVtZW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzb3VyY2VTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzb3VyY2VFbGVtZW50KTtcclxuXHJcbiAgICBpZiAoc291cmNlRWxlbWVudC50YWdOYW1lID09PSBcIklNR1wiKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgY29udmVydFJlc291cmNlVG9EYXRhVVJMKHNvdXJjZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwicGF0aFwiKSA/PyBzb3VyY2VFbGVtZW50LmdldEF0dHJpYnV0ZShcInNyY1wiKSk7XHJcbiAgICAgICAgKGNsb25lZEVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudCkuc3JjID0gdXJsO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIC8vIGRvIG50aFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHNvdXJjZVN0eWxlcykge1xyXG4gICAgICBjbG9uZWRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGl0ZW0sIHNvdXJjZVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKGl0ZW0pLCBzb3VyY2VTdHlsZXMuZ2V0UHJvcGVydHlQcmlvcml0eShpdGVtKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbG9uZWRFbGVtZW50LmNoaWxkRWxlbWVudENvdW50OyBpKyspIHtcclxuICAgICAgYXdhaXQgYXBwbHlTdHlsZXMoc291cmNlRWxlbWVudC5jaGlsZHJlbltpXSBhcyBIVE1MRWxlbWVudCwgY2xvbmVkRWxlbWVudC5jaGlsZHJlbltpXSBhcyBIVE1MRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgYXdhaXQgYXBwbHlTdHlsZXMoZWxlbWVudCwgY2xvbmVkRWxlbWVudENvbnRhaW5lcik7XHJcblxyXG4gIHJldHVybiBjbG9uZWRFbGVtZW50Q29udGFpbmVyO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZ2V0Q2xvbmVTdHlsZWRFbGVtZW50O1xyXG4iLCIvLyBpbXBvcnQgY29udmVydFJlc291cmNlVG9EYXRhVVJMIGZyb20gXCIuL2NvbnZlcnRSZXNvdXJjZVRvRGF0YVVSTFwiO1xyXG5cclxuY29uc3QgZ2V0Rm9udHNTdHlsZUVsZW1lbnQgPSBhc3luYyAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcclxuICBjb25zdCBzdHlsZVNoZWV0cyA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5zdHlsZVNoZWV0cztcclxuICBjb25zdCBmb250RmFtaWx5U3R5bGVzOiBDU1NTdHlsZURlY2xhcmF0aW9uW10gPSBbXTtcclxuXHJcbiAgZm9yIChjb25zdCBzaGVldCBvZiBzdHlsZVNoZWV0cykge1xyXG4gICAgZm9yIChjb25zdCBydWxlIG9mIHNoZWV0LmNzc1J1bGVzKSB7XHJcbiAgICAgIGlmIChydWxlLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiQ1NTRm9udEZhY2VSdWxlXCIpIHtcclxuICAgICAgICBmb250RmFtaWx5U3R5bGVzLnB1c2goKHJ1bGUgYXMgQ1NTRm9udEZhY2VSdWxlKS5zdHlsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcclxuXHJcbiAgLy8gZm9yIChjb25zdCBmIG9mIGZvbnRGYW1pbHlTdHlsZXMpIHtcclxuICAgIC8vIGNvbnN0IGZvbnRGYW1pbHkgPSBmLmdldFByb3BlcnR5VmFsdWUoXCJmb250LWZhbWlseVwiKTtcclxuICAgIC8vIGNvbnN0IGZvbnRXZWlnaHQgPSBmLmdldFByb3BlcnR5VmFsdWUoXCJmb250LXdlaWdodFwiKTtcclxuICAgIC8vIGNvbnN0IHNyYyA9IGYuZ2V0UHJvcGVydHlWYWx1ZShcInNyY1wiKTtcclxuICAgIC8vIGNvbnN0IHJlc291cmNlVXJscyA9IHNyYy5zcGxpdChcIixcIikubWFwKChzKSA9PiB7XHJcbiAgICAvLyAgIHJldHVybiBzLnJlcGxhY2UoL3VybFxcKFwiPyguKz8pXCI/XFwpLywgXCIkMVwiKTtcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gY29uc3QgYmFzZTY0VXJsczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvLyBmb3IgKGNvbnN0IHVybCBvZiByZXNvdXJjZVVybHMpIHtcclxuICAgIC8vICAgdHJ5IHtcclxuICAgIC8vICAgICBjb25zdCBiYXNlNjRVcmwgPSBhd2FpdCBjb252ZXJ0UmVzb3VyY2VUb0RhdGFVUkwodXJsKTtcclxuICAgIC8vICAgICBiYXNlNjRVcmxzLnB1c2goYHVybChcIiR7YmFzZTY0VXJsfVwiKWApO1xyXG4gICAgLy8gICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8gICAgIC8vIGRvIG50aFxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gc3R5bGVFbGVtZW50LmlubmVySFRNTCArPSBgXHJcbiAgICAvLyAgIEBmb250LWZhY2Uge1xyXG4gICAgLy8gICAgIGZvbnQtZmFtaWx5OiBcIiR7Zm9udEZhbWlseX1cIjtcclxuICAgIC8vICAgICBzcmM6ICR7YmFzZTY0VXJscy5qb2luKFwiLFwiKX07XHJcbiAgICAvLyAgICAgZm9udC13ZWlnaHQ6ICR7Zm9udFdlaWdodH07XHJcbiAgICAvLyAgIH1gO1xyXG4gIC8vIH1cclxuXHJcbiAgcmV0dXJuIHN0eWxlRWxlbWVudDtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGdldEZvbnRzU3R5bGVFbGVtZW50O1xyXG4iLCIvKipcclxuICogSFRNTCB0byBJbWFnZVxyXG4gKlxyXG4gKiBSZWZlcmVuY2VzOlxyXG4gKiAxLiBodG1sLXRvLWltYWdlOiBodHRwczovL2dpdGh1Yi5jb20vYnVia29vL2h0bWwtdG8taW1hZ2VcclxuICogMi4gPGZvcmVpZ25PYmplY3Q+OiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9TVkcvRWxlbWVudC9mb3JlaWduT2JqZWN0XHJcbiAqL1xyXG5pbXBvcnQgZ2V0Q2xvbmVTdHlsZWRFbGVtZW50IGZyb20gXCIuL2dldENsb25lU3R5bGVkRWxlbWVudFwiO1xyXG5pbXBvcnQgZ2V0Rm9udHNTdHlsZUVsZW1lbnQgZnJvbSBcIi4vZ2V0Rm9udHNTdHlsZUVsZW1lbnRcIjtcclxuXHJcbnR5cGUgT3B0aW9ucyA9IFBhcnRpYWw8e1xyXG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xyXG4gIHBpeGVsUmF0aW86IG51bWJlcjtcclxufT47XHJcblxyXG5jb25zdCBnZXRFbGVtZW50U2l6ZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xyXG4gIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB3aWR0aDogcGFyc2VJbnQod2lkdGgucmVwbGFjZShcInB4XCIsIFwiXCIpKSxcclxuICAgIGhlaWdodDogcGFyc2VJbnQoaGVpZ2h0LnJlcGxhY2UoXCJweFwiLCBcIlwiKSksXHJcbiAgfTtcclxufTtcclxuXHJcbmNvbnN0IGNvbnZlcnRTVkdUb0RhdGFVUkwgPSAoc3ZnOiBTVkdFbGVtZW50KTogc3RyaW5nID0+IHtcclxuICBjb25zdCB4bWwgPSBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHN2Zyk7XHJcbiAgY29uc3QgdXJsID0gZW5jb2RlVVJJQ29tcG9uZW50KHhtbCk7XHJcbiAgcmV0dXJuIGBkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwke3VybH1gO1xyXG59O1xyXG5cclxuY29uc3QgZ2VuZXJhdGVTVkdFbGVtZW50ID0gKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBlbGVtZW50OiBIVE1MRWxlbWVudCk6IFNWR1NWR0VsZW1lbnQgPT4ge1xyXG4gIGNvbnN0IHhtbE5TID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO1xyXG4gIGNvbnN0IHN2Z0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeG1sTlMsIFwic3ZnXCIpO1xyXG5cclxuICBzdmdFbGVtZW50LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xyXG4gIHN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcclxuICBzdmdFbGVtZW50LnNldEF0dHJpYnV0ZShcInZpZXdCb3hcIiwgYDAgMCAke3dpZHRofSAke2hlaWdodH1gKTtcclxuXHJcbiAgY29uc3QgZm9yZWlnbk9iamVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh4bWxOUywgXCJmb3JlaWduT2JqZWN0XCIpO1xyXG5cclxuICBmb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIFwiMTAwJVwiKTtcclxuICBmb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBcIjEwMCVcIik7XHJcbiAgZm9yZWlnbk9iamVjdC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIFwiMFwiKTtcclxuICBmb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZShcInlcIiwgXCIwXCIpO1xyXG4gIGZvcmVpZ25PYmplY3Quc2V0QXR0cmlidXRlKFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLCBcInRydWVcIik7XHJcblxyXG4gIGZvcmVpZ25PYmplY3QuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcbiAgc3ZnRWxlbWVudC5hcHBlbmRDaGlsZChmb3JlaWduT2JqZWN0KTtcclxuXHJcbiAgcmV0dXJuIHN2Z0VsZW1lbnQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdG9TVkcgPSBhc3luYyAoZWxlbWVudDogSFRNTEVsZW1lbnQsIG9wdGlvbnM/OiBPcHRpb25zKSA9PiB7XHJcbiAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRFbGVtZW50U2l6ZShlbGVtZW50KTtcclxuXHJcbiAgY29uc3QgY2xvbmVkRWxlbWVudCA9IGF3YWl0IGdldENsb25lU3R5bGVkRWxlbWVudChlbGVtZW50KTtcclxuXHJcbiAgaWYgKG9wdGlvbnM/LmJhY2tncm91bmRDb2xvcikge1xyXG4gICAgY2xvbmVkRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBvcHRpb25zLmJhY2tncm91bmRDb2xvcjtcclxuICB9XHJcblxyXG4gIGNvbnN0IHN2ZyA9IGdlbmVyYXRlU1ZHRWxlbWVudCh3aWR0aCwgaGVpZ2h0LCBjbG9uZWRFbGVtZW50KTtcclxuICBzdmcucHJlcGVuZChhd2FpdCBnZXRGb250c1N0eWxlRWxlbWVudChlbGVtZW50KSk7XHJcblxyXG4gIGNvbnN0IHVybCA9IGNvbnZlcnRTVkdUb0RhdGFVUkwoc3ZnKTtcclxuXHJcbiAgcmV0dXJuIHVybDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB0b0NhbnZhcyA9IGFzeW5jIChlbGVtZW50OiBIVE1MRWxlbWVudCwgb3B0aW9ucz86IE9wdGlvbnMpOiBQcm9taXNlPEhUTUxDYW52YXNFbGVtZW50PiA9PiB7XHJcbiAgY29uc3QgdXJsID0gYXdhaXQgdG9TVkcoZWxlbWVudCwgb3B0aW9ucyk7XHJcblxyXG4gIGNvbnN0IGltYWdlRWwgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZUVsLnNyYyA9IHVybDtcclxuXHJcbiAgY29uc3QgcmF0aW8gPSBvcHRpb25zPy5waXhlbFJhdGlvIHx8IDE7XHJcbiAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRFbGVtZW50U2l6ZShlbGVtZW50KTtcclxuXHJcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcclxuICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuXHJcbiAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXCJDYW52YXMgZXJyb3JcIik7XHJcbiAgfVxyXG5cclxuICBjYW52YXMud2lkdGggPSB3aWR0aCAqIHJhdGlvO1xyXG4gIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQgKiByYXRpbztcclxuXHJcbiAgY2FudmFzLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9YDtcclxuICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fWA7XHJcblxyXG4gIGlmIChvcHRpb25zPy5iYWNrZ3JvdW5kQ29sb3IpIHtcclxuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gb3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgIGltYWdlRWwub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZUVsLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xyXG5cclxuICAgICAgcmVzb2x2ZShjYW52YXMpO1xyXG4gICAgfTtcclxuICB9KTtcclxufTtcclxuXHJcbmNvbnN0IHRvSW1hZ2UgPSBhc3luYyAoZWxlbWVudDogSFRNTEVsZW1lbnQsIG9wdGlvbnM/OiBPcHRpb25zKSA9PiB7XHJcblxyXG4gIGNvbnN0IGNhbnZhcyA9IGF3YWl0IHRvQ2FudmFzKGVsZW1lbnQsIG9wdGlvbnMpO1xyXG5cclxuICAvLyBjYW52YXMudG9CbG9iKGZ1bmN0aW9uIGRlYWwoYmxvYikge1xyXG4gIC8vICAgdmFyIGNsaXBib2FyZEl0ZW0gPSBuZXcgQ2xpcGJvYXJkSXRlbSh7W2BpbWFnZS9wbmdgXTogYmxvYn0pO1xyXG4gIC8vICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZShbY2xpcGJvYXJkSXRlbV0pLnRoZW4oKCkgPT4ge1xyXG4gIC8vICAgICAgIGFsZXJ0KCflpI3liLbmiJDlip8nKTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH0sKTtcclxuICAvLyBjb25zb2xlLmxvZyhjYW52YXMpO1xyXG5cclxuICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgdG9JbWFnZTtcclxuIiwiaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbi8vIGltcG9ydCB7IHVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB0b0ltYWdlIGZyb20gXCIuLi9sYWJzL2h0bWwyaW1hZ2VcIjtcclxuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBJTUFHRV9VUkxfUkVHLCBNQVJLRE9XTl9VUkxfUkVHLCBNQVJLRE9XTl9XRUJfVVJMX1JFRywgV0lLSV9JTUFHRV9VUkxfUkVHIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29uc3RzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xyXG5pbXBvcnQgeyBzaG93RGlhbG9nIH0gZnJvbSBcIi4vRGlhbG9nXCI7XHJcbmltcG9ydCB7IGZvcm1hdE1lbW9Db250ZW50IH0gZnJvbSBcIi4vTWVtb1wiO1xyXG5pbXBvcnQgT25seSBmcm9tIFwiLi9jb21tb24vT25seVdoZW5cIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9zaGFyZS1tZW1vLWltYWdlLWRpYWxvZy5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTm90aWNlLCBURmlsZSwgVmF1bHQgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuaW1wb3J0IHsgU2hhcmVGb290ZXJFbmQsIFVzZXJOYW1lLCBTaGFyZUZvb3RlclN0YXJ0IH0gZnJvbSAnLi4vbWVtb3MnO1xyXG5pbXBvcnQgY2xvc2UgZnJvbSAnLi4vaWNvbnMvY2xvc2Uuc3ZnJztcclxuaW1wb3J0IHNoYXJlIGZyb20gXCIuLi9pY29ucy9zaGFyZS5zdmdcIjtcclxuXHJcbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIERpYWxvZ1Byb3BzIHtcclxuICBtZW1vOiBNb2RlbC5NZW1vO1xyXG59XHJcblxyXG5cclxuaW50ZXJmYWNlIExpbmtNYXRjaCB7XHJcbiAgbGlua1RleHQ6IHN0cmluZztcclxuICBhbHRUZXh0OiBzdHJpbmc7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIGZpbGVQYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UGF0aE9mSW1hZ2UgPSAodmF1bHQ6IFZhdWx0LCBpbWFnZTogVEZpbGUpID0+IHtcclxuICByZXR1cm4gdmF1bHQuZ2V0UmVzb3VyY2VQYXRoKGltYWdlKTtcclxufTtcclxuXHJcbmNvbnN0IGRldGVjdFdpa2lJbnRlcm5hbExpbmsgPSAobGluZVRleHQgOiBzdHJpbmcpIDogTGlua01hdGNoIHwgbnVsbCA9PiB7XHJcblxyXG4gIGNvbnN0IHsgbWV0YWRhdGFDYWNoZSx2YXVsdCB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG4gIGNvbnN0IGludGVybmFsRmlsZU5hbWUgPSAgV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMV1cclxuICBjb25zdCBpbnRlcm5hbEFsdE5hbWUgPSAgV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bNV1cclxuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcclxuICBcclxuICBpZihmaWxlID09PSBudWxsKXtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgIGZpbGVQYXRoOiBcIlwiLFxyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgY29uc3QgaW1hZ2VQYXRoID0gZ2V0UGF0aE9mSW1hZ2UodmF1bHQsIGZpbGUpO1xyXG4gICAgaWYoaW50ZXJuYWxBbHROYW1lKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVQYXRoOiBmaWxlLnBhdGgsXHJcbiAgICAgIH1cclxuICAgIH1lbHNlIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgICBhbHRUZXh0OiBcIlwiLFxyXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcclxuICAgICAgICBmaWxlUGF0aDogZmlsZS5wYXRoLFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBkZXRlY3RNREludGVybmFsTGluayA9IChsaW5lVGV4dCA6IHN0cmluZykgOiBMaW5rTWF0Y2ggfCBudWxsID0+IHtcclxuXHJcbiAgY29uc3QgeyBtZXRhZGF0YUNhY2hlLHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XHJcbiAgY29uc3QgaW50ZXJuYWxGaWxlTmFtZSA9ICBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bNV1cclxuICBjb25zdCBpbnRlcm5hbEFsdE5hbWUgPSAgTUFSS0RPV05fVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzJdXHJcbiAgY29uc3QgZmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZGVjb2RlVVJJQ29tcG9uZW50KGludGVybmFsRmlsZU5hbWUpLCAnJyk7XHJcbiAgXHJcbiAgaWYoZmlsZSA9PT0gbnVsbCl7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxyXG4gICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICBmaWxlUGF0aDogXCJcIixcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKHZhdWx0LCBmaWxlKTtcclxuICAgIGlmKGludGVybmFsQWx0TmFtZSl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxyXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcclxuICAgICAgICBmaWxlUGF0aDogZmlsZS5wYXRoLFxyXG4gICAgICB9XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgICAgYWx0VGV4dDogXCJcIixcclxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXHJcbiAgICAgICAgZmlsZVBhdGg6IGZpbGUucGF0aCxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY29uc3QgU2hhcmVNZW1vSW1hZ2VEaWFsb2c6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcclxuXHJcbiAgY29uc3QgeyBtZW1vOiBwcm9wc01lbW8sIGRlc3Ryb3kgfSA9IHByb3BzO1xyXG4gIGNvbnN0IHtcclxuICAgIG1lbW9zXHJcbiAgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkubWVtb1N0YXRlO1xyXG4gIGxldCBtZW1vc0xlbmd0aDtcclxuICBsZXQgY3JlYXRlZERheXM7XHJcbiAgaWYgKG1lbW9zLmxlbmd0aCkge1xyXG4gICAgbWVtb3NMZW5ndGggPSBtZW1vcy5sZW5ndGggLSAxO1xyXG4gICAgY3JlYXRlZERheXMgPSBtZW1vcyA/IE1hdGguY2VpbCgoRGF0ZS5ub3coKSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShtZW1vc1ttZW1vc0xlbmd0aF0uY3JlYXRlZEF0KSkgLyAxMDAwIC8gMzYwMCAvIDI0KSA6IDA7XHJcbiAgfVxyXG4gIC8vIGNvbnN0IHsgdXNlcjogdXNlcmluZm8gfSA9IHVzZXJTZXJ2aWNlLmdldFN0YXRlKCk7XHJcbiAgY29uc3QgbWVtbzogRm9ybWF0dGVkTWVtbyA9IHtcclxuICAgIC4uLnByb3BzTWVtbyxcclxuICAgIGNyZWF0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcocHJvcHNNZW1vLmNyZWF0ZWRBdCksXHJcbiAgfTtcclxuICAvLyBjb25zdCBtZW1vSW1nVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcclxuICAvLyBjb25zdCBtZW1vc051bSA9IG1lbW9zLmxlbmd0aDtcclxuXHJcbiAgY29uc3QgZm9vdGVyRW5kID0gU2hhcmVGb290ZXJFbmQucmVwbGFjZShcIntVc2VyTmFtZX1cIiwgVXNlck5hbWUpO1xyXG4gIGNvbnN0IGZvb3RlclN0YXJ0ID0gU2hhcmVGb290ZXJTdGFydC5yZXBsYWNlKFwie01lbW9zTnVtfVwiLCBtZW1vcy5sZW5ndGgudG9TdHJpbmcoKSkucmVwbGFjZShcIntVc2VkRGF5fVwiLCBjcmVhdGVkRGF5cy50b1N0cmluZygpKTtcclxuICBcclxuICBcclxuICBsZXQgZXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcclxuICBsZXQgaW50ZXJuYWxJbWFnZVVybHMgPSBbXTtcclxuICBsZXQgYWxsTWFya2Rvd25MaW5rOiBzdHJpbmcgfCBhbnlbXSA9IFtdO1xyXG4gIGxldCBhbGxJbnRlcm5hbExpbmsgPSBbXSBhcyBhbnlbXTtcclxuICBpZihJTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSl7XHJcbiAgICBsZXQgYWxsRXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcclxuICAgIGxldCBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcclxuICAgIGlmKE1BUktET1dOX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKXtcclxuICAgICAgYWxsTWFya2Rvd25MaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTUFSS0RPV05fVVJMX1JFRykpO1xyXG4gICAgfVxyXG4gICAgaWYoV0lLSV9JTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSl7XHJcbiAgICAgIGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xyXG4gICAgfVxyXG4gICAgLy8gY29uc3QgYWxsSW50ZXJuYWxMaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goV0lLSV9JTUFHRV9VUkxfUkVHKSk7XHJcbiAgICBpZihNQVJLRE9XTl9XRUJfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpe1xyXG4gICAgICBhbGxFeHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1dFQl9VUkxfUkVHKSk7XHJcbiAgICB9XHJcbiAgICBpZihhbGxJbnRlcm5hbExpbmsubGVuZ3RoKXtcclxuICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEludGVybmFsTGluay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgbGV0IG9uZSA9IGFsbEludGVybmFsTGlua1tpXTtcclxuICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdFdpa2lJbnRlcm5hbExpbmsob25lKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKGFsbE1hcmtkb3duTGluay5sZW5ndGgpe1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsTWFya2Rvd25MaW5rLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICBsZXQgdHdvID0gYWxsTWFya2Rvd25MaW5rW2ldO1xyXG4gICAgICAgIGlmKC8oLiopaHR0cFtzXT8oLiopLy50ZXN0KHR3bykpe1xyXG4gICAgICAgICAgYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzLnB1c2goTUFSS0RPV05fVVJMX1JFRy5leGVjKHR3byk/Lls1XSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdE1ESW50ZXJuYWxMaW5rKHR3bykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZXh0ZXJuYWxJbWFnZVVybHMgPSBhbGxFeHRlcm5hbEltYWdlVXJscy5jb25jYXQoYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzKTtcclxuICAgIC8vIGV4dGVybmFsSW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPz8gW10pO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IFtzaG9ydGN1dEltZ1VybCwgc2V0U2hvcnRjdXRJbWdVcmxdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgY29uc3QgW2ltZ0Ftb3VudCwgc2V0SW1nQW1vdW50XSA9IHVzZVN0YXRlKGV4dGVybmFsSW1hZ2VVcmxzLmxlbmd0aCk7XHJcbiAgY29uc3QgbWVtb0VsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmIChpbWdBbW91bnQgPiAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCFtZW1vRWxSZWYuY3VycmVudCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdG9JbWFnZShtZW1vRWxSZWYuY3VycmVudCwge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZWFlYWVhXCIsXHJcbiAgICAgICAgcGl4ZWxSYXRpbzogd2luZG93LmRldmljZVBpeGVsUmF0aW8gKiAyLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCh1cmwpID0+IHtcclxuICAgICAgICAgIHNldFNob3J0Y3V0SW1nVXJsKHVybCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgLy8gZG8gbnRoXHJcbiAgICAgICAgfSk7XHJcbiAgICB9LCBBTklNQVRJT05fRFVSQVRJT04pO1xyXG4gIH0sIFtpbWdBbW91bnRdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlQ2xvc2VCdG5DbGljayA9ICgpID0+IHtcclxuICAgIGRlc3Ryb3koKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBjb252ZXJ0QmFzZTY0VG9CbG9iID0gKGJhc2U2NDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpID0+IHtcclxuICAgIHZhciBieXRlcyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XHJcbiAgICB2YXIgYWIgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZXMubGVuZ3RoKTtcclxuICAgIHZhciBpYSA9IG5ldyBVaW50OEFycmF5KGFiKTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpYVtpXSA9IGJ5dGVzLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW2FiXSwgeyB0eXBlOiB0eXBlIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaGFuZGxlQ29weXRvQ2xpcGJvYXJkQnRuQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBkaXZzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5tZW1vLXNob3J0Y3V0LWltZ1wiKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IG15QmFzZTY0ID0gZGl2cy5nZXRBdHRyaWJ1dGUoXCJzcmNcIikuc3BsaXQoJ2Jhc2U2NCwnKVsxXTtcclxuICAgIGNvbnN0IGJsb2JJbnB1dCA9IGNvbnZlcnRCYXNlNjRUb0Jsb2IobXlCYXNlNjQsICdpbWFnZS9wbmcnKTtcclxuICAgIGNvbnN0IGNsaXBib2FyZEl0ZW1JbnB1dCA9IG5ldyBDbGlwYm9hcmRJdGVtKHsgJ2ltYWdlL3BuZyc6IGJsb2JJbnB1dCB9KTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHdpbmRvdy5uYXZpZ2F0b3JbJ2NsaXBib2FyZCddLndyaXRlKFtjbGlwYm9hcmRJdGVtSW5wdXRdKTtcclxuICAgIG5ldyBOb3RpY2UoXCJTZW5kIHRvIGNsaXBib2FyZCBzdWNjZXNzZnVsbHlcIik7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlSW1hZ2VPbkxvYWQgPSAoZXY6IFJlYWN0LlN5bnRoZXRpY0V2ZW50PEhUTUxJbWFnZUVsZW1lbnQ+KSA9PiB7XHJcbiAgICBpZiAoZXYudHlwZSA9PT0gXCJlcnJvclwiKSB7XHJcbiAgICAgIG5ldyBOb3RpY2UoXCLmnInkuKrlm77niYfliqDovb3lpLHotKXkuobwn5ifXCIpO1xyXG4gICAgICAoZXYudGFyZ2V0IGFzIEhUTUxJbWFnZUVsZW1lbnQpLnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgc2V0SW1nQW1vdW50KGltZ0Ftb3VudCAtIDEpO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpYWxvZy1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGl0bGUtdGV4dFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbi10ZXh0XCI+8J+lsDwvc3Bhbj5TaGFyZSBNZW1vIEltYWdlXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRuLWdyb3VwXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBjb3B5LWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUNvcHl0b0NsaXBib2FyZEJ0bkNsaWNrfT5cclxuICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17c2hhcmV9IC8+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGNsb3NlLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUNsb3NlQnRuQ2xpY2t9PlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtjbG9zZX0gLz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWFsb2ctY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHRpcC13b3Jkcy1jb250YWluZXIgJHtzaG9ydGN1dEltZ1VybCA/IFwiZmluaXNoXCIgOiBcImxvYWRpbmdcIn1gfT5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+e3Nob3J0Y3V0SW1nVXJsID8gXCLihpdDbGljayB0aGUgYnV0dG9uIHRvIHNhdmVcIiA6IFwi5Zu+54mH55Sf5oiQ5LitLi4uXCJ9PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1jb250YWluZXJcIiByZWY9e21lbW9FbFJlZn0+XHJcbiAgICAgICAgICA8T25seSB3aGVuPXtzaG9ydGN1dEltZ1VybCAhPT0gXCJcIn0+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwibWVtby1zaG9ydGN1dC1pbWdcIiBzcmM9e3Nob3J0Y3V0SW1nVXJsfSAvPlxyXG4gICAgICAgICAgPC9Pbmx5PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGltZS10ZXh0XCI+e21lbW8uY3JlYXRlZEF0U3RyfTwvc3Bhbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1jb250ZW50LXRleHRcIiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGZvcm1hdE1lbW9Db250ZW50KG1lbW8uY29udGVudCkgfX0+PC9kaXY+XHJcbiAgICAgICAgICA8T25seSB3aGVuPXtleHRlcm5hbEltYWdlVXJscy5sZW5ndGggPiAwfT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAge2V4dGVybmFsSW1hZ2VVcmxzLm1hcCgoaW1nVXJsLCBpZHgpID0+IChcclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAga2V5PXtpZHh9XHJcbiAgICAgICAgICAgICAgICAgIHNyYz17aW1nVXJsfVxyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICByZWZlcnJlclBvbGljeT1cIm5vLXJlZmVycmVyXCJcclxuICAgICAgICAgICAgICAgICAgb25Mb2FkPXtoYW5kbGVJbWFnZU9uTG9hZH1cclxuICAgICAgICAgICAgICAgICAgb25FcnJvcj17aGFuZGxlSW1hZ2VPbkxvYWR9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvT25seT5cclxuICAgICAgICAgIDxPbmx5IHdoZW49e2ludGVybmFsSW1hZ2VVcmxzLmxlbmd0aCA+IDB9PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtY29udGFpbmVyIGludGVybmFsLWVtYmVkIGltYWdlLWVtYmVkIGlzLWxvYWRlZFwiPlxyXG4gICAgICAgICAgICB7aW50ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxyXG4gICAgICAgICAgICAgIDxpbWcga2V5PXtpZHh9IGNsYXNzTmFtZT1cIm1lbW8taW1nXCIgc3JjPXtpbWdVcmwucGF0aH0gYWx0PXtpbWdVcmwuYWx0VGV4dH0gcGF0aD17aW1nVXJsLmZpbGVQYXRofS8+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Pbmx5PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3YXRlcm1hcmstY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0IGZvb3Rlci1zdGFydFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hbWUtdGV4dFwiPntmb290ZXJTdGFydH08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHQgZm9vdGVyLWVuZFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hbWUtdGV4dFwiPntmb290ZXJFbmR9PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2hvd1NoYXJlTWVtb0ltYWdlRGlhbG9nKG1lbW86IE1vZGVsLk1lbW8pOiB2b2lkIHtcclxuICBzaG93RGlhbG9nKFxyXG4gICAge1xyXG4gICAgICBjbGFzc05hbWU6IFwic2hhcmUtbWVtby1pbWFnZS1kaWFsb2dcIixcclxuICAgIH0sXHJcbiAgICBTaGFyZU1lbW9JbWFnZURpYWxvZyxcclxuICAgIHsgbWVtbyB9XHJcbiAgKTtcclxufVxyXG4iLCJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCBkYWlseU5vdGVzU2VydmljZSBmcm9tICcuLi9zZXJ2aWNlcy9kYWlseU5vdGVzU2VydmljZSc7XHJcbmltcG9ydCB7IGdldERhaWx5Tm90ZSB9IGZyb20gJ29ic2lkaWFuLWRhaWx5LW5vdGVzLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBzaG93TWVtb0luRGFpbHlOb3RlcyA9IGFzeW5jICggbWVtb0lkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT4ge1xyXG5cclxuICAgIGNvbnN0IHsgYXBwLCBkYWlseU5vdGVzIH0gPSBkYWlseU5vdGVzU2VydmljZS5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIGNvbnN0IGxpbmVOdW0gPSBwYXJzZUludChtZW1vSWQuc2xpY2UoMTQpKTtcclxuICAgIGNvbnN0IG1lbW9EYXRlU3RyaW5nID0gbWVtb0lkLnNsaWNlKDAsMTMpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudChtZW1vRGF0ZVN0cmluZywgXCJZWVlZTU1EREhIbW1zc1wiKTtcclxuICAgIGNvbnN0IGZpbGUgPSBnZXREYWlseU5vdGUoZGF0ZSwgZGFpbHlOb3Rlcyk7XHJcbiAgICBpZighUGxhdGZvcm0uaXNNb2JpbGUpe1xyXG4gICAgICAgIGNvbnN0IGxlYWYgPSBhcHAud29ya3NwYWNlLnNwbGl0QWN0aXZlTGVhZigpO1xyXG4gICAgICAgIGxlYWYub3BlbkZpbGUoZmlsZSwge2VTdGF0ZToge2xpbmU6IGxpbmVOdW19fSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBsZXQgbGVhZiA9IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZjtcclxuICAgICAgICBpZihsZWFmID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxlYWYgPSBhcHAud29ya3NwYWNlLmdldExlYWYodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxlYWYub3BlbkZpbGUoZmlsZSwge2VTdGF0ZToge2xpbmU6IGxpbmVOdW19fSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gO1xyXG59IiwiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRklSU1RfVEFHX1JFRywgSU1BR0VfVVJMX1JFRywgTElOS19SRUcsIE1BUktET1dOX1VSTF9SRUcsIE1BUktET1dOX1dFQl9VUkxfUkVHLCBNRF9MSU5LX1JFRywgTUVNT19MSU5LX1JFRywgVEFHX1JFRywgV0lLSV9JTUFHRV9VUkxfUkVHIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29uc3RzXCI7XHJcbmltcG9ydCB7IGVuY29kZUh0bWwsIHBhcnNlTWFya2VkVG9IdG1sLCBwYXJzZVJhd1RleHRUb0h0bWwgfSBmcm9tIFwiLi4vaGVscGVycy9tYXJrZWRcIjtcclxuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi9oZWxwZXJzL3V0aWxzXCI7XHJcbmltcG9ydCB1c2VUb2dnbGUgZnJvbSBcIi4uL2hvb2tzL3VzZVRvZ2dsZVwiO1xyXG5pbXBvcnQgeyBnbG9iYWxTdGF0ZVNlcnZpY2UsIG1lbW9TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCBPbmx5IGZyb20gXCIuL2NvbW1vbi9Pbmx5V2hlblwiO1xyXG5pbXBvcnQgSW1hZ2UgZnJvbSBcIi4vSW1hZ2VcIjtcclxuaW1wb3J0IHNob3dNZW1vQ2FyZERpYWxvZyBmcm9tIFwiLi9NZW1vQ2FyZERpYWxvZ1wiO1xyXG5pbXBvcnQgc2hvd1NoYXJlTWVtb0ltYWdlRGlhbG9nIGZyb20gXCIuL1NoYXJlTWVtb0ltYWdlRGlhbG9nXCI7XHJcbmltcG9ydCBcIi4uL2xlc3MvbWVtby5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTm90aWNlLCBURmlsZSwgVmF1bHQgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuaW1wb3J0IHsgc2hvd01lbW9JbkRhaWx5Tm90ZXMgfSBmcm9tIFwiLi4vb2JDb21wb25lbnRzL29iU2hvd01lbW9cIjtcclxuaW1wb3J0IG1vcmUgZnJvbSBcIi4uL2ljb25zL21vcmUuc3ZnXCJcclxuaW1wb3J0IHsgVXNlQnV0dG9uVG9TaG93RWRpdG9yLCBEZWZhdWx0RWRpdG9yTG9jYXRpb24gfSBmcm9tICcuLi9tZW1vcyc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIG1lbW86IE1vZGVsLk1lbW87XHJcbn1cclxuXHJcbmludGVyZmFjZSBMaW5rTWF0Y2gge1xyXG4gIGxpbmtUZXh0OiBzdHJpbmc7XHJcbiAgYWx0VGV4dDogc3RyaW5nO1xyXG4gIHBhdGg6IHN0cmluZztcclxuICBmaWxlcGF0aD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGdldFBhdGhPZkltYWdlID0gKHZhdWx0OiBWYXVsdCwgaW1hZ2U6IFRGaWxlKSA9PiB7XHJcbiAgcmV0dXJuIHZhdWx0LmdldFJlc291cmNlUGF0aChpbWFnZSk7XHJcbn07XHJcblxyXG5jb25zdCBkZXRlY3RXaWtpSW50ZXJuYWxMaW5rID0gKGxpbmVUZXh0IDogc3RyaW5nKSA6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xyXG5cclxuICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gIFdJS0lfSU1BR0VfVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzFdXHJcbiAgY29uc3QgaW50ZXJuYWxBbHROYW1lID0gIFdJS0lfSU1BR0VfVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzVdXHJcbiAgY29uc3QgZmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZGVjb2RlVVJJQ29tcG9uZW50KGludGVybmFsRmlsZU5hbWUpLCAnJyk7XHJcbiAgLy8gY29uc29sZS5sb2coZmlsZS5wYXRoKTtcclxuICBpZihmaWxlID09PSBudWxsKXtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgIGZpbGVwYXRoOiBcIlwiLFxyXG4gICAgfVxyXG4gIH1lbHNlIHtcclxuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKHZhdWx0LCBmaWxlKTtcclxuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5wYXRoO1xyXG4gICAgaWYoaW50ZXJuYWxBbHROYW1lKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcclxuICAgICAgfVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICAgIGFsdFRleHQ6IFwiXCIsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gXHJcbn1cclxuXHJcbmNvbnN0IGRldGVjdE1ESW50ZXJuYWxMaW5rID0gKGxpbmVUZXh0IDogc3RyaW5nKSA6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xyXG5cclxuICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gIE1BUktET1dOX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XVxyXG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9ICBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMl1cclxuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcclxuICBpZihmaWxlID09PSBudWxsKXtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgIGZpbGVwYXRoOiBcIlwiLFxyXG4gICAgfVxyXG4gIH1lbHNlIHtcclxuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKHZhdWx0LCBmaWxlKTtcclxuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5wYXRoO1xyXG4gICAgaWYoaW50ZXJuYWxBbHROYW1lKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcclxuICAgICAgfVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICAgIGFsdFRleHQ6IFwiXCIsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY29uc3QgTWVtbzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xyXG4gIGNvbnN0IHsgbWVtbzogcHJvcHNNZW1vIH0gPSBwcm9wcztcclxuICBjb25zdCBtZW1vOiBGb3JtYXR0ZWRNZW1vID0ge1xyXG4gICAgLi4ucHJvcHNNZW1vLFxyXG4gICAgY3JlYXRlZEF0U3RyOiB1dGlscy5nZXREYXRlVGltZVN0cmluZyhwcm9wc01lbW8uY3JlYXRlZEF0KSxcclxuICB9O1xyXG4gIGNvbnN0IFtzaG93Q29uZmlybURlbGV0ZUJ0biwgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bl0gPSB1c2VUb2dnbGUoZmFsc2UpO1xyXG4gIFxyXG4gIC8vIGNvbnN0IGltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcclxuICBcclxuICBsZXQgZXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcclxuICBsZXQgaW50ZXJuYWxJbWFnZVVybHMgPSBbXTtcclxuICBsZXQgYWxsTWFya2Rvd25MaW5rOiBzdHJpbmcgfCBhbnlbXSA9IFtdO1xyXG4gIGxldCBhbGxJbnRlcm5hbExpbmsgPSBbXSBhcyBhbnlbXTtcclxuICBpZihJTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSl7XHJcbiAgICBsZXQgYWxsRXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcclxuICAgIGxldCBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcclxuICAgIGlmKE1BUktET1dOX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKXtcclxuICAgICAgYWxsTWFya2Rvd25MaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTUFSS0RPV05fVVJMX1JFRykpO1xyXG4gICAgfVxyXG4gICAgaWYoV0lLSV9JTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSl7XHJcbiAgICAgIGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xyXG4gICAgfVxyXG4gICAgLy8gY29uc3QgYWxsSW50ZXJuYWxMaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goV0lLSV9JTUFHRV9VUkxfUkVHKSk7XHJcbiAgICBpZihNQVJLRE9XTl9XRUJfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpe1xyXG4gICAgICBhbGxFeHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1dFQl9VUkxfUkVHKSk7XHJcbiAgICB9XHJcbiAgICBpZihhbGxJbnRlcm5hbExpbmsubGVuZ3RoKXtcclxuICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEludGVybmFsTGluay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgbGV0IG9uZSA9IGFsbEludGVybmFsTGlua1tpXTtcclxuICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdFdpa2lJbnRlcm5hbExpbmsob25lKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKGFsbE1hcmtkb3duTGluay5sZW5ndGgpe1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsTWFya2Rvd25MaW5rLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICBsZXQgdHdvID0gYWxsTWFya2Rvd25MaW5rW2ldO1xyXG4gICAgICAgIGlmKC8oLiopaHR0cFtzXT8oLiopLy50ZXN0KHR3bykpe1xyXG4gICAgICAgICAgYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzLnB1c2goTUFSS0RPV05fVVJMX1JFRy5leGVjKHR3byk/Lls1XSk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdE1ESW50ZXJuYWxMaW5rKHR3bykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZXh0ZXJuYWxJbWFnZVVybHMgPSBhbGxFeHRlcm5hbEltYWdlVXJscy5jb25jYXQoYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzKTtcclxuICAgIC8vIGV4dGVybmFsSW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPz8gW10pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaGFuZGxlU2hvd01lbW9TdG9yeURpYWxvZyA9ICgpID0+IHtcclxuICAgIHNob3dNZW1vQ2FyZERpYWxvZyhtZW1vKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVNYXJrTWVtb0NsaWNrID0gKCkgPT4ge1xyXG4gICAgXHJcbiAgICBpZiggVXNlQnV0dG9uVG9TaG93RWRpdG9yICYmIERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gXCJCb3R0b21cIikge1xyXG4gICAgICBsZXQgZWxlbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXZbZGF0YS10eXBlPSdtZW1vc192aWV3J10gLnZpZXctY29udGVudCAubWVtby1zaG93LWVkaXRvci1idXR0b25cIikgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGlmICh0eXBlb2YgZWxlbS5vbmNsaWNrID09IFwiZnVuY3Rpb25cIiAmJiBlbGVtICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBlbGVtLm9uY2xpY2suYXBwbHkoZWxlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0TWFya01lbW9JZChtZW1vLmlkKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVFZGl0TWVtb0NsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYoIFVzZUJ1dHRvblRvU2hvd0VkaXRvciAmJiBEZWZhdWx0RWRpdG9yTG9jYXRpb24gPT09IFwiQm90dG9tXCIpIHtcclxuICAgICAgbGV0IGVsZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2W2RhdGEtdHlwZT0nbWVtb3NfdmlldyddIC52aWV3LWNvbnRlbnQgLm1lbW8tc2hvdy1lZGl0b3ItYnV0dG9uXCIpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAodHlwZW9mIGVsZW0ub25jbGljayA9PSBcImZ1bmN0aW9uXCIgJiYgZWxlbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZWxlbS5vbmNsaWNrLmFwcGx5KGVsZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRFZGl0TWVtb0lkKG1lbW8uaWQpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZVNvdXJjZU1lbW9DbGljayA9ICgpID0+IHtcclxuICAgIHNob3dNZW1vSW5EYWlseU5vdGVzKG1lbW8uaWQpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZURlbGV0ZU1lbW9DbGljayA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChzaG93Q29uZmlybURlbGV0ZUJ0bikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IG1lbW9TZXJ2aWNlLmhpZGVNZW1vQnlJZChtZW1vLmlkKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIG5ldyBOb3RpY2UoZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChnbG9iYWxTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKS5lZGl0TWVtb0lkID09PSBtZW1vLmlkKSB7XHJcbiAgICAgICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEVkaXRNZW1vSWQoXCJcIik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRvZ2dsZUNvbmZpcm1EZWxldGVCdG4oKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlTWVtb1dyYXBwZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcclxuICAgICAgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlR2VuTWVtb0ltYWdlQnRuQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBzaG93U2hhcmVNZW1vSW1hZ2VEaWFsb2cobWVtbyk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlTWVtb0tleURvd24gPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcclxuICAgIFxyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkge1xyXG4gICAgICBoYW5kbGVTb3VyY2VNZW1vQ2xpY2soKTtcclxuICAgIH1cclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZU1lbW9Eb3VibGVLZXlEb3duID0gdXNlQ2FsbGJhY2soKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XHJcbiAgICBcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBoYW5kbGVFZGl0TWVtb0NsaWNrKCk7XHJcbiAgICB9XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBoYW5kbGVNZW1vQ29udGVudENsaWNrID0gYXN5bmMgKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcclxuICAgIGNvbnN0IHRhcmdldEVsID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKHRhcmdldEVsLmNsYXNzTmFtZSA9PT0gXCJtZW1vLWxpbmstdGV4dFwiKSB7XHJcbiAgICAgIGNvbnN0IG1lbW9JZCA9IHRhcmdldEVsLmRhdGFzZXQ/LnZhbHVlO1xyXG4gICAgICBjb25zdCBtZW1vVGVtcCA9IG1lbW9TZXJ2aWNlLmdldE1lbW9CeUlkKG1lbW9JZCA/PyBcIlwiKTtcclxuXHJcbiAgICAgIGlmIChtZW1vVGVtcCkge1xyXG4gICAgICAgIHNob3dNZW1vQ2FyZERpYWxvZyhtZW1vVGVtcCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3IE5vdGljZShcIk1FTU8gTm90IEZvdW5kXCIpO1xyXG4gICAgICAgIHRhcmdldEVsLmNsYXNzTGlzdC5yZW1vdmUoXCJtZW1vLWxpbmstdGV4dFwiKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0YXJnZXRFbC5jbGFzc05hbWUgPT09IFwidG9kby1ibG9ja1wiKSB7XHJcbiAgICAgIC8vIGRvIG50aFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17YG1lbW8td3JhcHBlciAke1wibWVtb3MtXCIgKyBtZW1vLmlkfSAke21lbW8ubWVtb1R5cGV9YH0gb25Nb3VzZUxlYXZlPXtoYW5kbGVNb3VzZUxlYXZlTWVtb1dyYXBwZXJ9IG9uTW91c2VEb3duPXtoYW5kbGVNZW1vS2V5RG93bn0gb25Eb3VibGVDbGljaz17aGFuZGxlTWVtb0RvdWJsZUtleURvd259PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lbW8tdG9wLXdyYXBwZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIiBvbkNsaWNrPXtoYW5kbGVTaG93TWVtb1N0b3J5RGlhbG9nfT5cclxuICAgICAgICAgIHttZW1vLmNyZWF0ZWRBdFN0cn1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuIG1vcmUtYWN0aW9uLWJ0blwiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXttb3JlfSAvPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb3JlLWFjdGlvbi1idG5zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb3JlLWFjdGlvbi1idG5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNob3dNZW1vU3RvcnlEaWFsb2d9PlxyXG4gICAgICAgICAgICAgICAgUkVBRFxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG5cIiBvbkNsaWNrPXtoYW5kbGVNYXJrTWVtb0NsaWNrfT5cclxuICAgICAgICAgICAgICAgIE1BUktcclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17aGFuZGxlR2VuTWVtb0ltYWdlQnRuQ2xpY2t9PlxyXG4gICAgICAgICAgICAgICAgU0hBUkVcclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17aGFuZGxlRWRpdE1lbW9DbGlja30+XHJcbiAgICAgICAgICAgICAgICBFRElUXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNvdXJjZU1lbW9DbGlja30+XHJcbiAgICAgICAgICAgICAgICBTT1VSQ0VcclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgYnRuIGRlbGV0ZS1idG4gJHtzaG93Q29uZmlybURlbGV0ZUJ0biA/IFwiZmluYWwtY29uZmlybVwiIDogXCJcIn1gfSBvbkNsaWNrPXtoYW5kbGVEZWxldGVNZW1vQ2xpY2t9PlxyXG4gICAgICAgICAgICAgICAge3Nob3dDb25maXJtRGVsZXRlQnRuID8gXCJDT05GSVJN77yBXCIgOiBcIkRFTEVURVwifVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9XCJtZW1vLWNvbnRlbnQtdGV4dFwiXHJcbiAgICAgICAgb25DbGljaz17aGFuZGxlTWVtb0NvbnRlbnRDbGlja31cclxuICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGZvcm1hdE1lbW9Db250ZW50KG1lbW8uY29udGVudCwgbWVtby5pZCkgfX1cclxuICAgICAgPjwvZGl2PlxyXG4gICAgICAgPE9ubHkgd2hlbj17ZXh0ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIHtleHRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXHJcbiAgICAgICAgICAgICAgPEltYWdlIGFsdD1cIlwiIGtleT17aWR4fSBjbGFzc05hbWU9XCJtZW1vLWltZ1wiIGltZ1VybD17aW1nVXJsfSByZWZlcnJlclBvbGljeT1cIm5vLXJlZmVycmVyXCIgLz5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L09ubHk+XHJcbiAgICAgICAgPE9ubHkgd2hlbj17aW50ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy13cmFwcGVyIGludGVybmFsLWVtYmVkIGltYWdlLWVtYmVkIGlzLWxvYWRlZFwiPlxyXG4gICAgICAgICAgICB7aW50ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxyXG4gICAgICAgICAgICAgIDxJbWFnZSBrZXk9e2lkeH0gY2xhc3NOYW1lPVwibWVtby1pbWdcIiBpbWdVcmw9e2ltZ1VybC5wYXRofSBhbHQ9e2ltZ1VybC5hbHRUZXh0fSBmaWxlcGF0aD17aW1nVXJsLmZpbGVwYXRofS8+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Pbmx5PlxyXG4gICAgICB7LyogPE9ubHkgd2hlbj17aW1hZ2VVcmxzLmxlbmd0aCA+IDB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2VzLXdyYXBwZXJcIj5cclxuICAgICAgICAgIHtpbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxyXG4gICAgICAgICAgICA8SW1hZ2UgY2xhc3NOYW1lPVwibWVtby1pbWdcIiBrZXk9e2lkeH0gaW1nVXJsPXtpbWdVcmx9IC8+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Pbmx5PiAqL31cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TWVtb0NvbnRlbnQoY29udGVudDogc3RyaW5nLCBtZW1vaWQ/OiBzdHJpbmcpIHtcclxuICBjb250ZW50ID0gZW5jb2RlSHRtbChjb250ZW50KTtcclxuICBjb250ZW50ID0gcGFyc2VSYXdUZXh0VG9IdG1sKGNvbnRlbnQpXHJcbiAgICAuc3BsaXQoXCI8YnI+XCIpXHJcbiAgICAubWFwKCh0KSA9PiB7XHJcbiAgICAgIHJldHVybiBgPHA+JHt0ICE9PSBcIlwiID8gdCA6IFwiPGJyPlwifTwvcD5gO1xyXG4gICAgfSlcclxuICAgIC5qb2luKFwiXCIpO1xyXG5cclxuICBjb25zdCB7IHNob3VsZFVzZU1hcmtkb3duUGFyc2VyLCBzaG91bGRIaWRlSW1hZ2VVcmwgfSA9IGdsb2JhbFN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xyXG5cclxuICBpZiAoc2hvdWxkVXNlTWFya2Rvd25QYXJzZXIpIHtcclxuICAgIGNvbnRlbnQgPSBwYXJzZU1hcmtlZFRvSHRtbChjb250ZW50LCBtZW1vaWQpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHNob3VsZEhpZGVJbWFnZVVybCkge1xyXG4gICAgY29udGVudCA9IGNvbnRlbnQucmVwbGFjZShXSUtJX0lNQUdFX1VSTF9SRUcsIFwiXCIpLnJlcGxhY2UoTUFSS0RPV05fVVJMX1JFRywgXCJcIikucmVwbGFjZShJTUFHRV9VUkxfUkVHLFwiXCIpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29uc29sZS5sb2coY29udGVudCk7XHJcblxyXG4gIC8vIOS4reiLseaWh+S5i+mXtOWKoOepuuagvFxyXG4gIC8vIGlmIChzaG91bGRTcGxpdE1lbW9Xb3JkKSB7XHJcbiAgLy8gICBjb250ZW50ID0gY29udGVudFxyXG4gIC8vICAgICAucmVwbGFjZSgvKFtcXHU0ZTAwLVxcdTlmYTVdKShbQS1aYS16MC05Py4sO1tcXF1dKykvZywgXCIkMSAkMlwiKVxyXG4gIC8vICAgICAucmVwbGFjZSgvKFtBLVphLXowLTk/Liw7W1xcXV0rKShbXFx1NGUwMC1cXHU5ZmE1XSkvZywgXCIkMSAkMlwiKTtcclxuICAvLyB9XHJcblxyXG4gIGNvbnRlbnQgPSBjb250ZW50XHJcbiAgICAucmVwbGFjZShUQUdfUkVHLCBcIjxzcGFuIGNsYXNzPSd0YWctc3Bhbic+IyQxPC9zcGFuPlwiKVxyXG4gICAgLnJlcGxhY2UoRklSU1RfVEFHX1JFRywgXCI8cD48c3BhbiBjbGFzcz0ndGFnLXNwYW4nPiMkMjwvc3Bhbj5cIilcclxuICAgIC5yZXBsYWNlKExJTktfUkVHLCBcIiQxPGEgY2xhc3M9J2xpbmsnIHRhcmdldD0nX2JsYW5rJyByZWw9J25vcmVmZXJyZXInIGhyZWY9JyQyJz4kMjwvYT5cIilcclxuICAgIC5yZXBsYWNlKE1EX0xJTktfUkVHLCBcIjxhIGNsYXNzPSdsaW5rJyB0YXJnZXQ9J19ibGFuaycgcmVsPSdub3JlZmVycmVyJyBocmVmPSckMic+JDE8L2E+XCIpXHJcbiAgICAucmVwbGFjZShNRU1PX0xJTktfUkVHLCBcIjxzcGFuIGNsYXNzPSdtZW1vLWxpbmstdGV4dCcgZGF0YS12YWx1ZT0nJDInPiQxPC9zcGFuPlwiKTtcclxuXHJcbiAgLy8gY29uc3QgY29udGVudE1hcmsgPSBjb250ZW50LnNwbGl0KCcnKTtcclxuXHJcbiAgLy8gaWYoLyguKik8YSguKikvZy50ZXN0KGNvbnRlbnQpKXtcclxuXHJcbiAgLy8gfVxyXG4gIC8vICAgZm9yKGxldCBpPTA7IGk8Y29udGVudC5sZW5ndGg7aSsrKXtcclxuICAvLyAgICAgbGV0IG1hcmsgPSBmYWxzZTtcclxuICAvLyAgICAgbGV0IGFNYXJrID0gZmFsc2U7XHJcbiAgLy8gICAgIGlmKGNvbnRlbnRNYXJrW2ldKVxyXG4gIC8vICAgfVxyXG5cclxuICBjb25zdCB0ZW1wRGl2Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICB0ZW1wRGl2Q29udGFpbmVyLmlubmVySFRNTCA9IGNvbnRlbnQ7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZW1wRGl2Q29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjID0gdGVtcERpdkNvbnRhaW5lci5jaGlsZHJlbltpXTtcclxuXHJcbiAgICBpZiAoYy50YWdOYW1lID09PSBcIlBcIiAmJiBjLnRleHRDb250ZW50ID09PSBcIlwiICYmIGMuZmlyc3RFbGVtZW50Q2hpbGQ/LnRhZ05hbWUgIT09IFwiQlJcIikge1xyXG4gICAgICBjLnJlbW92ZSgpO1xyXG4gICAgICBpLS07XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRlbXBEaXZDb250YWluZXIuaW5uZXJIVE1MO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBtZW1vKE1lbW8pO1xyXG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgeyBsb2NhdGlvblNlcnZpY2UsIG1lbW9TZXJ2aWNlLCBxdWVyeVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgSU1BR0VfVVJMX1JFRywgTElOS19SRUcsIE1FTU9fTElOS19SRUcsIE5PUF9GSVJTVF9UQUdfUkVHLCBUQUdfUkVHIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29uc3RzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xyXG5pbXBvcnQgeyBjaGVja1Nob3VsZFNob3dNZW1vV2l0aEZpbHRlcnMgfSBmcm9tIFwiLi4vaGVscGVycy9maWx0ZXJcIjtcclxuaW1wb3J0IE1lbW8gZnJvbSBcIi4vTWVtb1wiO1xyXG4vLyBpbXBvcnQgdG9hc3RIZWxwZXIgZnJvbSBcIi4vVG9hc3RcIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9tZW1vbGlzdC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGRhaWx5Tm90ZXNTZXJ2aWNlIGZyb20gJy4uL3NlcnZpY2VzL2RhaWx5Tm90ZXNTZXJ2aWNlJztcclxuaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuaW1wb3J0IHsgTm90aWNlLCBQbGF0Zm9ybSB9IGZyb20gJ29ic2lkaWFuJztcclxuaW1wb3J0IHsgSGlkZURvbmVUYXNrcyB9IGZyb20gXCIuLi9tZW1vc1wiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuLy8gaW1wb3J0IHsgRGVmYXVsdEVkaXRvckxvY2F0aW9uIH0gZnJvbSAnLi4vbWVtb3MnO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHt9XHJcblxyXG5jb25zdCBNZW1vTGlzdDogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIGxvY2F0aW9uU3RhdGU6IHsgcXVlcnkgfSxcclxuICAgIG1lbW9TdGF0ZTogeyBtZW1vcyB9LFxyXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xyXG4gIGxldCByZXZlcnNlTWVtb3M6IE1vZGVsLk1lbW9bXTtcclxuICAvLyBpZihEZWZhdWx0RWRpdG9yTG9jYXRpb24gPT09IFwiQm90dG9tXCIgJiYgd2luZG93LmlubmVyV2lkdGggPCA4NzUgJiYgUGxhdGZvcm0uaXNNb2JpbGUpe1xyXG4gIC8vICAgcmV2ZXJzZU1lbW9zID0gbWVtb3MucmV2ZXJzZSgpO1xyXG4gIC8vIH1cclxuICBjb25zdCBbaXNGZXRjaGluZywgc2V0RmV0Y2hTdGF0dXNdID0gdXNlU3RhdGUodHJ1ZSk7XHJcbiAgY29uc3Qgd3JhcHBlckVsZW1lbnQgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xyXG4gIGNvbnN0IHsgdGFnOiB0YWdRdWVyeSwgZHVyYXRpb24sIHR5cGU6IG1lbW9UeXBlLCB0ZXh0OiB0ZXh0UXVlcnksIGZpbHRlcjogcXVlcnlJZCB9ID0gcXVlcnk7XHJcbiAgLy8gY29uc3Qgc2hvd01lbW9GaWx0ZXIgPSBCb29sZWFuKHRhZ1F1ZXJ5IHx8IChkdXJhdGlvbiAmJiBkdXJhdGlvbi5mcm9tIDwgZHVyYXRpb24udG8pIHx8IG1lbW9UeXBlIHx8IHRleHRRdWVyeSB8fCBxdWVyeUlkKTtcclxuICBjb25zdCBxdWVyeUZpbHRlciA9IHF1ZXJ5U2VydmljZS5nZXRRdWVyeUJ5SWQocXVlcnlJZCk7XHJcbiAgY29uc3Qgc2hvd01lbW9GaWx0ZXIgPSBCb29sZWFuKHRhZ1F1ZXJ5IHx8IChkdXJhdGlvbiAmJiBkdXJhdGlvbi5mcm9tIDwgZHVyYXRpb24udG8pIHx8IG1lbW9UeXBlIHx8IHRleHRRdWVyeSB8fCBxdWVyeUZpbHRlcik7XHJcblxyXG4gIGNvbnN0IHNob3duTWVtb3MgPVxyXG4gICAgc2hvd01lbW9GaWx0ZXIgfHwgcXVlcnlGaWx0ZXIgfHwgSGlkZURvbmVUYXNrc1xyXG4gICAgICA/IG1lbW9zLmZpbHRlcigobWVtbykgPT4ge1xyXG4gICAgICAgICAgbGV0IHNob3VsZFNob3cgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIGlmKG1lbW8ubWVtb1R5cGUgIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIGlmKEhpZGVEb25lVGFza3MgJiYgbWVtby5tZW1vVHlwZSA9PT0gXCJUQVNLLURPTkVcIil7XHJcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHF1ZXJ5RmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKHF1ZXJ5RmlsdGVyLnF1ZXJ5c3RyaW5nKSBhcyBGaWx0ZXJbXTtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gY2hlY2tTaG91bGRTaG93TWVtb1dpdGhGaWx0ZXJzKG1lbW8sIGZpbHRlcnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhZ1F1ZXJ5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhZ3NTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB0IG9mIEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFRBR19SRUcpID8/IFtdKSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHQucmVwbGFjZShUQUdfUkVHLCBcIiQxXCIpLnRyaW0oKTtcclxuICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHRhZy5zcGxpdChcIi9cIik7XHJcbiAgICAgICAgICAgICAgbGV0IHRlbXAgPSBcIlwiO1xyXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgaSBvZiBpdGVtcykge1xyXG4gICAgICAgICAgICAgICAgdGVtcCArPSBpO1xyXG4gICAgICAgICAgICAgICAgdGFnc1NldC5hZGQodGVtcCk7XHJcbiAgICAgICAgICAgICAgICB0ZW1wICs9IFwiL1wiO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTk9QX0ZJUlNUX1RBR19SRUcpID8/IFtdKSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHQucmVwbGFjZShOT1BfRklSU1RfVEFHX1JFRywgXCIkMVwiKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0YWcuc3BsaXQoXCIvXCIpO1xyXG4gICAgICAgICAgICAgIGxldCB0ZW1wID0gXCJcIjtcclxuICAgICAgICAgICAgICBmb3IgKGNvbnN0IGkgb2YgaXRlbXMpIHtcclxuICAgICAgICAgICAgICAgIHRlbXAgKz0gaTtcclxuICAgICAgICAgICAgICAgIHRhZ3NTZXQuYWRkKHRlbXApO1xyXG4gICAgICAgICAgICAgICAgdGVtcCArPSBcIi9cIjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0YWdzU2V0Lmhhcyh0YWdRdWVyeSkpIHtcclxuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgZHVyYXRpb24gJiZcclxuICAgICAgICAgICAgZHVyYXRpb24uZnJvbSA8IGR1cmF0aW9uLnRvICYmXHJcbiAgICAgICAgICAgICh1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUobWVtby5jcmVhdGVkQXQpIDwgZHVyYXRpb24uZnJvbSB8fCB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUobWVtby5jcmVhdGVkQXQpID4gZHVyYXRpb24udG8pXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG1lbW9UeXBlKSB7XHJcbiAgICAgICAgICAgIGlmIChtZW1vVHlwZSA9PT0gXCJOT1RfVEFHR0VEXCIgJiYgKCBtZW1vLmNvbnRlbnQubWF0Y2goVEFHX1JFRykgIT09IG51bGwgfHwgbWVtby5jb250ZW50Lm1hdGNoKE5PUF9GSVJTVF9UQUdfUkVHKSAhPT0gbnVsbCkpIHtcclxuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtb1R5cGUgPT09IFwiTElOS0VEXCIgJiYgbWVtby5jb250ZW50Lm1hdGNoKExJTktfUkVHKSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHNob3VsZFNob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1vVHlwZSA9PT0gXCJJTUFHRURcIiAmJiBtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtb1R5cGUgPT09IFwiQ09OTkVDVEVEXCIgJiYgbWVtby5jb250ZW50Lm1hdGNoKE1FTU9fTElOS19SRUcpID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGV4dFF1ZXJ5ICYmICFtZW1vLmNvbnRlbnQuaW5jbHVkZXModGV4dFF1ZXJ5KSkge1xyXG4gICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHNob3VsZFNob3c7XHJcbiAgICAgICAgfSlcclxuICAgICAgOiBtZW1vcztcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIG1lbW9TZXJ2aWNlXHJcbiAgICAgIC5mZXRjaEFsbE1lbW9zKClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHNldEZldGNoU3RhdHVzKGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICBuZXcgTm90aWNlKFwi8J+YrSBGZXRjaCBFcnJvclwiKTtcclxuICAgICAgfSk7XHJcbiAgICBkYWlseU5vdGVzU2VydmljZS5nZXRNeUFsbERhaWx5Tm90ZXMoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgc2V0RmV0Y2hTdGF0dXMoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgIG5ldyBOb3RpY2UoXCLwn5itIEZldGNoIERhaWx5Tm90ZXMgRXJyb3JcIik7XHJcbiAgICAgIH0pO1xyXG4gICAgZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0U3RhdGUoKTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3cmFwcGVyRWxlbWVudC5jdXJyZW50Py5zY3JvbGxUbyh7IHRvcDogMCB9KTtcclxuICB9LCBbcXVlcnldKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlTWVtb0xpc3RDbGljayA9IHVzZUNhbGxiYWNrKChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xyXG4gICAgY29uc3QgeyB3b3Jrc3BhY2UgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICAgIFxyXG4gICAgY29uc3QgdGFyZ2V0RWwgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAodGFyZ2V0RWwudGFnTmFtZSA9PT0gXCJTUEFOXCIgJiYgdGFyZ2V0RWwuY2xhc3NOYW1lID09PSBcInRhZy1zcGFuXCIpIHtcclxuICAgICAgY29uc3QgdGFnTmFtZSA9IHRhcmdldEVsLmlubmVyVGV4dC5zbGljZSgxKTtcclxuICAgICAgY29uc3QgY3VyclRhZ1F1ZXJ5ID0gbG9jYXRpb25TZXJ2aWNlLmdldFN0YXRlKCkucXVlcnkudGFnO1xyXG4gICAgICBpZiAoY3VyclRhZ1F1ZXJ5ID09PSB0YWdOYW1lKSB7XHJcbiAgICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldFRhZ1F1ZXJ5KFwiXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRUYWdRdWVyeSh0YWdOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfWVsc2UgaWYoIHRhcmdldEVsLnRhZ05hbWUgPT09IFwiQVwiICYmIHRhcmdldEVsLmNsYXNzTmFtZSA9PT0gXCJpbnRlcm5hbC1saW5rXCIgKXtcclxuICAgICAgY29uc3Qgc291cmNlUGF0aCA9IHRhcmdldEVsLmdldEF0dHJpYnV0ZShcImRhdGEtZmlsZXBhdGhcIik7XHJcbiAgICAgIGlmKFBsYXRmb3JtLmlzTW9iaWxlKSB7XHJcbiAgICAgICAgd29ya3NwYWNlLm9wZW5MaW5rVGV4dChzb3VyY2VQYXRoLHNvdXJjZVBhdGgsZmFsc2UpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB3b3Jrc3BhY2Uub3BlbkxpbmtUZXh0KHNvdXJjZVBhdGgsc291cmNlUGF0aCx0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtgbWVtb2xpc3Qtd3JhcHBlciAke2lzRmV0Y2hpbmcgPyBcIlwiIDogXCJjb21wbGV0ZWRcIn1gfSBvbkNsaWNrPXtoYW5kbGVNZW1vTGlzdENsaWNrfSByZWY9e3dyYXBwZXJFbGVtZW50fT5cclxuICAgICAge3Nob3duTWVtb3MubWFwKChtZW1vKSA9PiAoXHJcbiAgICAgICAgPE1lbW8ga2V5PXtgJHttZW1vLmlkfS0ke21lbW8udXBkYXRlZEF0fWB9IG1lbW89e21lbW99IC8+XHJcbiAgICAgICkpfVxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0YXR1cy10ZXh0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInN0YXR1cy10ZXh0XCI+XHJcbiAgICAgICAgICB7aXNGZXRjaGluZyA/IFwiRmV0Y2hpbmcgZGF0YS4uLlwiIDogc2hvd25NZW1vcy5sZW5ndGggPT09IDAgPyBcIk5vb29vcCFcIiA6IHNob3dNZW1vRmlsdGVyID8gXCJcIiA6IFwiQWxsIERhdGEgaXMgTG9hZGVkIPCfjolcIn1cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbW9MaXN0O1xyXG4iLCJpbXBvcnQgTWVtb0VkaXRvciBmcm9tIFwiLi4vY29tcG9uZW50cy9NZW1vRWRpdG9yXCI7XHJcbmltcG9ydCBNZW1vc0hlYWRlciBmcm9tIFwiLi4vY29tcG9uZW50cy9NZW1vc0hlYWRlclwiO1xyXG5pbXBvcnQgTWVtb0ZpbHRlciBmcm9tIFwiLi4vY29tcG9uZW50cy9NZW1vRmlsdGVyXCI7XHJcbmltcG9ydCBNZW1vTGlzdCBmcm9tIFwiLi4vY29tcG9uZW50cy9NZW1vTGlzdFwiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IERlZmF1bHRFZGl0b3JMb2NhdGlvbiB9IGZyb20gXCIuLi9tZW1vc1wiO1xyXG5cclxuZnVuY3Rpb24gTWVtb3MoKSB7XHJcbiAgaWYoUGxhdGZvcm0uaXNNb2JpbGUgJiYgRGVmYXVsdEVkaXRvckxvY2F0aW9uID09PSBcIkJvdHRvbVwiKXtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAgPE1lbW9zSGVhZGVyIC8+XHJcbiAgICAgICAgPE1lbW9GaWx0ZXIgLz5cclxuICAgICAgICA8TWVtb0xpc3QgLz5cclxuICAgICAgICA8TWVtb0VkaXRvciAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfWVsc2V7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxNZW1vc0hlYWRlciAvPlxyXG4gICAgICAgIDxNZW1vRWRpdG9yIC8+XHJcbiAgICAgICAgPE1lbW9GaWx0ZXIgLz5cclxuICAgICAgICA8TWVtb0xpc3QgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbW9zO1xyXG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuZnVuY3Rpb24gdXNlTG9hZGluZyhpbml0aWFsU3RhdGUgPSB0cnVlKSB7XHJcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZSh7IGlzTG9hZGluZzogaW5pdGlhbFN0YXRlLCBpc0ZhaWxlZDogZmFsc2UsIGlzU3VjY2VlZDogZmFsc2UgfSk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICAuLi5zdGF0ZSxcclxuICAgIHNldExvYWRpbmc6ICgpID0+IHtcclxuICAgICAgc2V0U3RhdGUoe1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIGlzTG9hZGluZzogdHJ1ZSxcclxuICAgICAgICBpc0ZhaWxlZDogZmFsc2UsXHJcbiAgICAgICAgaXNTdWNjZWVkOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgc2V0RmluaXNoOiAoKSA9PiB7XHJcbiAgICAgIHNldFN0YXRlKHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBpc1N1Y2NlZWQ6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIHNldEVycm9yOiAoKSA9PiB7XHJcbiAgICAgIHNldFN0YXRlKHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIGlzRmFpbGVkOiB0cnVlLFxyXG4gICAgICAgIGlzU3VjY2VlZDogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB1c2VMb2FkaW5nO1xyXG4iLCJpbXBvcnQgeyBJTUFHRV9VUkxfUkVHLCBNQVJLRE9XTl9VUkxfUkVHLCBNQVJLRE9XTl9XRUJfVVJMX1JFRywgV0lLSV9JTUFHRV9VUkxfUkVHIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29uc3RzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xyXG5pbXBvcnQgdXNlVG9nZ2xlIGZyb20gXCIuLi9ob29rcy91c2VUb2dnbGVcIjtcclxuaW1wb3J0IHsgbWVtb1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IE9ubHkgZnJvbSBcIi4vY29tbW9uL09ubHlXaGVuXCI7XHJcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi9JbWFnZVwiO1xyXG5pbXBvcnQgeyBmb3JtYXRNZW1vQ29udGVudCB9IGZyb20gXCIuL01lbW9cIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9tZW1vLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBOb3RpY2UsIFRGaWxlLCBWYXVsdCB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgYXBwU3RvcmUgZnJvbSBcIi4uL3N0b3Jlcy9hcHBTdG9yZVwiO1xyXG5pbXBvcnQgbW9yZSBmcm9tICcuLi9pY29ucy9tb3JlLnN2Zyc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIG1lbW86IE1vZGVsLk1lbW87XHJcbiAgaGFuZGxlRGVsZXRlZE1lbW9BY3Rpb246IChtZW1vSWQ6IHN0cmluZykgPT4gdm9pZDtcclxufVxyXG5cclxuaW50ZXJmYWNlIExpbmtNYXRjaCB7XHJcbiAgbGlua1RleHQ6IHN0cmluZztcclxuICBhbHRUZXh0OiBzdHJpbmc7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIGZpbGVwYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UGF0aE9mSW1hZ2UgPSAodmF1bHQ6IFZhdWx0LCBpbWFnZTogVEZpbGUpID0+IHtcclxuICByZXR1cm4gdmF1bHQuZ2V0UmVzb3VyY2VQYXRoKGltYWdlKTtcclxufTtcclxuXHJcbmNvbnN0IGRldGVjdFdpa2lJbnRlcm5hbExpbmsgPSAobGluZVRleHQgOiBzdHJpbmcpIDogTGlua01hdGNoIHwgbnVsbCA9PiB7XHJcblxyXG4gIGNvbnN0IHsgbWV0YWRhdGFDYWNoZSx2YXVsdCB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xyXG4gIGNvbnN0IGludGVybmFsRmlsZU5hbWUgPSAgV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMV1cclxuICBjb25zdCBpbnRlcm5hbEFsdE5hbWUgPSAgV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bNV1cclxuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcclxuICBpZiggZmlsZSA9PT0gbnVsbCApe1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcclxuICAgICAgcGF0aDogXCJcIixcclxuICAgICAgZmlsZXBhdGg6IFwiXCIsXHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBjb25zdCBpbWFnZVBhdGggPSBnZXRQYXRoT2ZJbWFnZSh2YXVsdCwgZmlsZSk7XHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUucGF0aDtcclxuICAgIGlmKGludGVybmFsQWx0TmFtZSl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxyXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcclxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXHJcbiAgICAgIH1cclxuICAgIH1lbHNlIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgICBhbHRUZXh0OiBcIlwiLFxyXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcclxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGRldGVjdE1ESW50ZXJuYWxMaW5rID0gKGxpbmVUZXh0IDogc3RyaW5nKSA6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xyXG5cclxuICBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gIE1BUktET1dOX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XVxyXG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9ICBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMl1cclxuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcclxuICBpZihmaWxlID09PSBudWxsKXtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgIGZpbGVwYXRoOiBcIlwiLFxyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgY29uc3QgaW1hZ2VQYXRoID0gZ2V0UGF0aE9mSW1hZ2UodmF1bHQsIGZpbGUpO1xyXG4gICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLnBhdGg7XHJcbiAgICBpZihpbnRlcm5hbEFsdE5hbWUpe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcclxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXHJcbiAgICAgICAgZmlsZXBhdGg6IGZpbGVQYXRoLFxyXG4gICAgICB9XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgICAgYWx0VGV4dDogXCJcIixcclxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXHJcbiAgICAgICAgZmlsZXBhdGg6IGZpbGVQYXRoLFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBEZWxldGVkTWVtbzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xyXG5cclxuICAvLyBjb25zdCB7IGFwcCB9ICA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlO1xyXG5cclxuICBjb25zdCB7IG1lbW86IHByb3BzTWVtbywgaGFuZGxlRGVsZXRlZE1lbW9BY3Rpb24gfSA9IHByb3BzO1xyXG4gIGNvbnN0IG1lbW86IEZvcm1hdHRlZE1lbW8gPSB7XHJcbiAgICAuLi5wcm9wc01lbW8sXHJcbiAgICBjcmVhdGVkQXRTdHI6IHV0aWxzLmdldERhdGVUaW1lU3RyaW5nKHByb3BzTWVtby5jcmVhdGVkQXQpLFxyXG4gICAgZGVsZXRlZEF0U3RyOiB1dGlscy5nZXREYXRlVGltZVN0cmluZyhwcm9wc01lbW8uZGVsZXRlZEF0ID8/IERhdGUubm93KCkpLFxyXG4gIH07XHJcbiAgY29uc3QgW3Nob3dDb25maXJtRGVsZXRlQnRuLCB0b2dnbGVDb25maXJtRGVsZXRlQnRuXSA9IHVzZVRvZ2dsZShmYWxzZSk7XHJcbiAgLy8gY29uc3QgaW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPz8gW10pO1xyXG4gIGxldCBleHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xyXG4gIGxldCBpbnRlcm5hbEltYWdlVXJscyA9IFtdO1xyXG4gIGxldCBhbGxNYXJrZG93bkxpbms6IHN0cmluZyB8IGFueVtdID0gW107XHJcbiAgbGV0IGFsbEludGVybmFsTGluayA9IFtdIGFzIGFueVtdO1xyXG4gIGlmKElNQUdFX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKXtcclxuICAgIGxldCBhbGxFeHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xyXG4gICAgbGV0IGFub3RoZXJFeHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xyXG4gICAgaWYoTUFSS0RPV05fVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpe1xyXG4gICAgICBhbGxNYXJrZG93bkxpbmsgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChNQVJLRE9XTl9VUkxfUkVHKSk7XHJcbiAgICB9XHJcbiAgICBpZihXSUtJX0lNQUdFX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKXtcclxuICAgICAgYWxsSW50ZXJuYWxMaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goV0lLSV9JTUFHRV9VUkxfUkVHKSk7XHJcbiAgICB9XHJcbiAgICAvLyBjb25zdCBhbGxJbnRlcm5hbExpbmsgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChXSUtJX0lNQUdFX1VSTF9SRUcpKTtcclxuICAgIGlmKE1BUktET1dOX1dFQl9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSl7XHJcbiAgICAgIGFsbEV4dGVybmFsSW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTUFSS0RPV05fV0VCX1VSTF9SRUcpKTtcclxuICAgIH1cclxuICAgIGlmKGFsbEludGVybmFsTGluay5sZW5ndGgpe1xyXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsSW50ZXJuYWxMaW5rLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICBsZXQgb25lID0gYWxsSW50ZXJuYWxMaW5rW2ldO1xyXG4gICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0V2lraUludGVybmFsTGluayhvbmUpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYoYWxsTWFya2Rvd25MaW5rLmxlbmd0aCl7XHJcbiAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxNYXJrZG93bkxpbmsubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCB0d28gPSBhbGxNYXJrZG93bkxpbmtbaV07XHJcbiAgICAgICAgaWYoLyguKilodHRwW3NdPyguKikvLnRlc3QodHdvKSl7XHJcbiAgICAgICAgICBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMucHVzaChNQVJLRE9XTl9VUkxfUkVHLmV4ZWModHdvKT8uWzVdKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0TURJbnRlcm5hbExpbmsodHdvKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBleHRlcm5hbEltYWdlVXJscyA9IGFsbEV4dGVybmFsSW1hZ2VVcmxzLmNvbmNhdChhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMpO1xyXG4gICAgLy8gZXh0ZXJuYWxJbWFnZVVybHMgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChJTUFHRV9VUkxfUkVHKSA/PyBbXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBoYW5kbGVEZWxldGVNZW1vQ2xpY2sgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBhd2FpdCBtZW1vU2VydmljZS5kZWxldGVNZW1vQnlJZChtZW1vLmlkKTtcclxuICAgICAgICBoYW5kbGVEZWxldGVkTWVtb0FjdGlvbihtZW1vLmlkKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIG5ldyBOb3RpY2UoZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRvZ2dsZUNvbmZpcm1EZWxldGVCdG4oKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVSZXN0b3JlTWVtb0NsaWNrID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgYXdhaXQgbWVtb1NlcnZpY2UucmVzdG9yZU1lbW9CeUlkKG1lbW8uaWQpO1xyXG4gICAgICBoYW5kbGVEZWxldGVkTWVtb0FjdGlvbihtZW1vLmlkKTtcclxuICAgICAgbmV3IE5vdGljZShcIlJFU1RPUkUgU1VDQ0VFRFwiKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgbmV3IE5vdGljZShlcnJvci5tZXNzYWdlKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlTWVtb1dyYXBwZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcclxuICAgICAgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtgbWVtby13cmFwcGVyICR7XCJtZW1vcy1cIiArIG1lbW8uaWR9YH0gb25Nb3VzZUxlYXZlPXtoYW5kbGVNb3VzZUxlYXZlTWVtb1dyYXBwZXJ9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lbW8tdG9wLXdyYXBwZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIj5ERUxFVEUgQVQge21lbW8uZGVsZXRlZEF0U3RyfTwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ0bnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4gbW9yZS1hY3Rpb24tYnRuXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e21vcmV9IC8+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmUtYWN0aW9uLWJ0bnMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmUtYWN0aW9uLWJ0bnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuIHJlc3RvcmUtYnRuXCIgb25DbGljaz17aGFuZGxlUmVzdG9yZU1lbW9DbGlja30+XHJcbiAgICAgICAgICAgICAgICBSRVNUT1JFXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGJ0biBkZWxldGUtYnRuICR7c2hvd0NvbmZpcm1EZWxldGVCdG4gPyBcImZpbmFsLWNvbmZpcm1cIiA6IFwiXCJ9YH0gb25DbGljaz17aGFuZGxlRGVsZXRlTWVtb0NsaWNrfT5cclxuICAgICAgICAgICAgICAgIHtzaG93Q29uZmlybURlbGV0ZUJ0biA/IFwiQ09ORklSTe+8gVwiIDogXCJERUxFVEVcIn1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lbW8tY29udGVudC10ZXh0XCIgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBmb3JtYXRNZW1vQ29udGVudChtZW1vLmNvbnRlbnQpIH19PjwvZGl2PlxyXG4gICAgICA8T25seSB3aGVuPXtleHRlcm5hbEltYWdlVXJscy5sZW5ndGggPiAwfT5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2VzLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAge2V4dGVybmFsSW1hZ2VVcmxzLm1hcCgoaW1nVXJsLCBpZHgpID0+IChcclxuICAgICAgICAgICAgICA8SW1hZ2UgYWx0PVwiXCIga2V5PXtpZHh9IGNsYXNzTmFtZT1cIm1lbW8taW1nXCIgaW1nVXJsPXtpbWdVcmx9IHJlZmVycmVyUG9saWN5PVwibm8tcmVmZXJyZXJcIiAvPlxyXG4gICAgICAgICAgICApKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvT25seT5cclxuICAgICAgICA8T25seSB3aGVuPXtpbnRlcm5hbEltYWdlVXJscy5sZW5ndGggPiAwfT5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2VzLXdyYXBwZXIgaW50ZXJuYWwtZW1iZWQgaW1hZ2UtZW1iZWQgaXMtbG9hZGVkXCI+XHJcbiAgICAgICAgICAgIHtpbnRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXHJcbiAgICAgICAgICAgICAgPEltYWdlIGtleT17aWR4fSBjbGFzc05hbWU9XCJtZW1vLWltZ1wiIGltZ1VybD17aW1nVXJsLnBhdGh9IGFsdD17aW1nVXJsLmFsdFRleHR9IGZpbGVwYXRoPXtpbWdVcmwuZmlsZXBhdGh9Lz5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L09ubHk+XHJcbiAgICAgIHsvKiA8T25seSB3aGVuPXtpbWFnZVVybHMubGVuZ3RoID4gMH0+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtd3JhcHBlclwiPlxyXG4gICAgICAgICAge2ltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXHJcbiAgICAgICAgICAgIDxJbWFnZSBjbGFzc05hbWU9XCJtZW1vLWltZ1wiIGtleT17aWR4fSBpbWdVcmw9e2ltZ1VybH0gLz5cclxuICAgICAgICAgICkpfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L09ubHk+ICovfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IERlbGV0ZWRNZW1vO1xyXG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tIFwiLi4vc3RvcmVzL2FwcENvbnRleHRcIjtcclxuaW1wb3J0IHVzZUxvYWRpbmcgZnJvbSBcIi4uL2hvb2tzL3VzZUxvYWRpbmdcIjtcclxuaW1wb3J0IHsgZ2xvYmFsU3RhdGVTZXJ2aWNlLCBsb2NhdGlvblNlcnZpY2UsIG1lbW9TZXJ2aWNlLCBxdWVyeVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgSU1BR0VfVVJMX1JFRywgTElOS19SRUcsIE1FTU9fTElOS19SRUcsIE5PUF9GSVJTVF9UQUdfUkVHLCBUQUdfUkVHIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29uc3RzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xyXG5pbXBvcnQgeyBjaGVja1Nob3VsZFNob3dNZW1vV2l0aEZpbHRlcnMgfSBmcm9tIFwiLi4vaGVscGVycy9maWx0ZXJcIjtcclxuaW1wb3J0IE9ubHkgZnJvbSBcIi4uL2NvbXBvbmVudHMvY29tbW9uL09ubHlXaGVuXCI7XHJcbmltcG9ydCBEZWxldGVkTWVtbyBmcm9tIFwiLi4vY29tcG9uZW50cy9EZWxldGVkTWVtb1wiO1xyXG5pbXBvcnQgTWVtb0ZpbHRlciBmcm9tIFwiLi4vY29tcG9uZW50cy9NZW1vRmlsdGVyXCI7XHJcbmltcG9ydCBcIi4uL2xlc3MvbWVtby10cmFzaC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IG1lbnVTdmcgZnJvbSBcIi4uL2ljb25zL21lbnUuc3ZnXCI7XHJcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHt9XHJcblxyXG5jb25zdCBNZW1vVHJhc2g6IFJlYWN0LkZDPFByb3BzPiA9ICgpID0+IHtcclxuICBjb25zdCB7XHJcbiAgICBsb2NhdGlvblN0YXRlOiB7IHF1ZXJ5IH0sXHJcbiAgICBnbG9iYWxTdGF0ZTogeyBpc01vYmlsZVZpZXcgfSxcclxuICB9ID0gdXNlQ29udGV4dChhcHBDb250ZXh0KTtcclxuICBjb25zdCBsb2FkaW5nU3RhdGUgPSB1c2VMb2FkaW5nKCk7XHJcbiAgY29uc3QgW2RlbGV0ZWRNZW1vcywgc2V0RGVsZXRlZE1lbW9zXSA9IHVzZVN0YXRlPE1vZGVsLk1lbW9bXT4oW10pO1xyXG5cclxuICBjb25zdCB7IHRhZzogdGFnUXVlcnksIGR1cmF0aW9uLCB0eXBlOiBtZW1vVHlwZSwgdGV4dDogdGV4dFF1ZXJ5LCBmaWx0ZXI6IHF1ZXJ5SWQgfSA9IHF1ZXJ5O1xyXG4gIGNvbnN0IHF1ZXJ5RmlsdGVyID0gcXVlcnlTZXJ2aWNlLmdldFF1ZXJ5QnlJZChxdWVyeUlkKTtcclxuICBjb25zdCBzaG93TWVtb0ZpbHRlciA9IEJvb2xlYW4odGFnUXVlcnkgfHwgKGR1cmF0aW9uICYmIGR1cmF0aW9uLmZyb20gPCBkdXJhdGlvbi50bykgfHwgbWVtb1R5cGUgfHwgdGV4dFF1ZXJ5IHx8IHF1ZXJ5RmlsdGVyKTtcclxuXHJcbiAgY29uc3Qgc2hvd25NZW1vcyA9XHJcbiAgICBzaG93TWVtb0ZpbHRlciB8fCBxdWVyeUZpbHRlclxyXG4gICAgICA/IGRlbGV0ZWRNZW1vcy5maWx0ZXIoKG1lbW8pID0+IHtcclxuICAgICAgICAgIGxldCBzaG91bGRTaG93ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBpZiAocXVlcnlGaWx0ZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IEpTT04ucGFyc2UocXVlcnlGaWx0ZXIucXVlcnlzdHJpbmcpIGFzIEZpbHRlcltdO1xyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJzKSkge1xyXG4gICAgICAgICAgICAgIHNob3VsZFNob3cgPSBjaGVja1Nob3VsZFNob3dNZW1vV2l0aEZpbHRlcnMobWVtbywgZmlsdGVycyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGFnUXVlcnkpIHtcclxuICAgICAgICAgICAgY29uc3QgdGFnc1NldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goVEFHX1JFRykgPz8gW10pKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdGFnID0gdC5yZXBsYWNlKFRBR19SRUcsIFwiJDFcIikudHJpbSgpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGFnLnNwbGl0KFwiL1wiKTtcclxuICAgICAgICAgICAgICBsZXQgdGVtcCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBpIG9mIGl0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wICs9IGk7XHJcbiAgICAgICAgICAgICAgICB0YWdzU2V0LmFkZCh0ZW1wKTtcclxuICAgICAgICAgICAgICAgIHRlbXAgKz0gXCIvXCI7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdCBvZiBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChOT1BfRklSU1RfVEFHX1JFRykgPz8gW10pKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdGFnID0gdC5yZXBsYWNlKE5PUF9GSVJTVF9UQUdfUkVHLCBcIiQxXCIpLnRyaW0oKTtcclxuICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHRhZy5zcGxpdChcIi9cIik7XHJcbiAgICAgICAgICAgICAgbGV0IHRlbXAgPSBcIlwiO1xyXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgaSBvZiBpdGVtcykge1xyXG4gICAgICAgICAgICAgICAgdGVtcCArPSBpO1xyXG4gICAgICAgICAgICAgICAgdGFnc1NldC5hZGQodGVtcCk7XHJcbiAgICAgICAgICAgICAgICB0ZW1wICs9IFwiL1wiO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRhZ3NTZXQuaGFzKHRhZ1F1ZXJ5KSkge1xyXG4gICAgICAgICAgICAgIHNob3VsZFNob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBkdXJhdGlvbiAmJlxyXG4gICAgICAgICAgICBkdXJhdGlvbi5mcm9tIDwgZHVyYXRpb24udG8gJiZcclxuICAgICAgICAgICAgKHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShtZW1vLmNyZWF0ZWRBdCkgPCBkdXJhdGlvbi5mcm9tIHx8IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShtZW1vLmNyZWF0ZWRBdCkgPiBkdXJhdGlvbi50bylcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobWVtb1R5cGUpIHtcclxuICAgICAgICAgICAgaWYgKG1lbW9UeXBlID09PSBcIk5PVF9UQUdHRURcIiAmJiBtZW1vLmNvbnRlbnQubWF0Y2goVEFHX1JFRykgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtb1R5cGUgPT09IFwiTElOS0VEXCIgJiYgbWVtby5jb250ZW50Lm1hdGNoKExJTktfUkVHKSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHNob3VsZFNob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1vVHlwZSA9PT0gXCJJTUFHRURcIiAmJiBtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtb1R5cGUgPT09IFwiQ09OTkVDVEVEXCIgJiYgbWVtby5jb250ZW50Lm1hdGNoKE1FTU9fTElOS19SRUcpID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGV4dFF1ZXJ5ICYmICFtZW1vLmNvbnRlbnQuaW5jbHVkZXModGV4dFF1ZXJ5KSkge1xyXG4gICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHNob3VsZFNob3c7XHJcbiAgICAgICAgfSlcclxuICAgICAgOiBkZWxldGVkTWVtb3M7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBtZW1vU2VydmljZS5mZXRjaEFsbE1lbW9zKCk7XHJcbiAgICBtZW1vU2VydmljZVxyXG4gICAgICAuZmV0Y2hEZWxldGVkTWVtb3MoKVxyXG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgIHNldERlbGV0ZWRNZW1vcyhyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgIG5ldyBOb3RpY2UoXCJGYWlsZWQgdG8gZmV0Y2ggZGVsZXRlZCBtZW1vczogXCIsIGVycm9yKTtcclxuICAgICAgfSlcclxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgIGxvYWRpbmdTdGF0ZS5zZXRGaW5pc2goKTtcclxuICAgICAgfSk7XHJcbiAgICBsb2NhdGlvblNlcnZpY2UuY2xlYXJRdWVyeSgpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRGVsZXRlZE1lbW9BY3Rpb24gPSB1c2VDYWxsYmFjaygobWVtb0lkOiBzdHJpbmcpID0+IHtcclxuICAgIHNldERlbGV0ZWRNZW1vcygoZGVsZXRlZE1lbW9zKSA9PiBkZWxldGVkTWVtb3MuZmlsdGVyKChtZW1vKSA9PiBtZW1vLmlkICE9PSBtZW1vSWQpKTtcclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZVNob3dTaWRlYmFyQnRuQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XHJcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0U2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3KHRydWUpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby10cmFzaC13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjdGlvbi1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+XHJcbiAgICAgICAgICA8T25seSB3aGVuPXtpc01vYmlsZVZpZXd9PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImFjdGlvbi1idG5cIiBvbkNsaWNrPXtoYW5kbGVTaG93U2lkZWJhckJ0bkNsaWNrfT5cclxuICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXttZW51U3ZnfSBhbHQ9XCJtZW51XCIgLz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L09ubHk+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPlJlY3ljbGUgYmluPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPE1lbW9GaWx0ZXIgLz5cclxuICAgICAge2xvYWRpbmdTdGF0ZS5pc0xvYWRpbmcgPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXAtdGV4dC1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+RmV0Y2hpbmcgZGF0YS4uLjwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSA6IGRlbGV0ZWRNZW1vcy5sZW5ndGggPT09IDAgPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXAtdGV4dC1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+SGVyZSBpcyBObyBaZXR0ZWxzLjwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSA6IChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlbGV0ZWQtbWVtb3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICB7c2hvd25NZW1vcy5tYXAoKG1lbW8pID0+IChcclxuICAgICAgICAgICAgPERlbGV0ZWRNZW1vIGtleT17YCR7bWVtby5pZH0tJHttZW1vLnVwZGF0ZWRBdH1gfSBtZW1vPXttZW1vfSBoYW5kbGVEZWxldGVkTWVtb0FjdGlvbj17aGFuZGxlRGVsZXRlZE1lbW9BY3Rpb259IC8+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKX1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNZW1vVHJhc2g7XHJcbiIsImltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGFwcENvbnRleHQgZnJvbSBcIi4uL3N0b3Jlcy9hcHBDb250ZXh0XCI7XHJcbmltcG9ydCB7IGdsb2JhbFN0YXRlU2VydmljZSwgbWVtb1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgcGFyc2VIdG1sVG9SYXdUZXh0IH0gZnJvbSBcIi4uL2hlbHBlcnMvbWFya2VkXCI7XHJcbmltcG9ydCB7IGZvcm1hdE1lbW9Db250ZW50IH0gZnJvbSBcIi4vTWVtb1wiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL3ByZWZlcmVuY2VzLXNlY3Rpb24ubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjaGVja2JveEFjdGl2ZSBmcm9tIFwiLi4vaWNvbnMvY2hlY2tib3gtYWN0aXZlLnN2Z1wiO1xyXG5pbXBvcnQgY2hlY2tib3ggZnJvbSBcIi4uL2ljb25zL2NoZWNrYm94LnN2Z1wiO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHt9XHJcblxyXG5jb25zdCBQcmVmZXJlbmNlc1NlY3Rpb246IFJlYWN0LkZDPFByb3BzPiA9ICgpID0+IHtcclxuICBjb25zdCB7IGdsb2JhbFN0YXRlIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xyXG4gIGNvbnN0IHsgdXNlVGlueVVuZG9IaXN0b3J5Q2FjaGUsIHNob3VsZEhpZGVJbWFnZVVybCwgc2hvdWxkU3BsaXRNZW1vV29yZCwgc2hvdWxkVXNlTWFya2Rvd25QYXJzZXIgfSA9IGdsb2JhbFN0YXRlO1xyXG5cclxuICBjb25zdCBkZW1vTWVtb0NvbnRlbnQgPSBcIvCfkYsg5L2g5aW95ZGA772e5qyi6L+O5L2/55SobWVtb3MhXFxuKiDinKggKirlvIDmupDpobnnm64qKu+8m1xcbiog8J+YiyDnsr7nvo7kuJTnu4boioLnmoTop4bop4nmoLflvI/vvJtcXG4qIPCfk5Eg5L2T6aqM5LyY6Imv55qE5Lqk5LqS6YC76L6R77ybXCI7XHJcblxyXG4gIGNvbnN0IGhhbmRsZU9wZW5UaW55VW5kb0NoYW5nZWQgPSAoKSA9PiB7XHJcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0QXBwU2V0dGluZyh7XHJcbiAgICAgIHVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlOiAhdXNlVGlueVVuZG9IaXN0b3J5Q2FjaGUsXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVTcGxpdFdvcmRzVmFsdWVDaGFuZ2VkID0gKCkgPT4ge1xyXG4gICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEFwcFNldHRpbmcoe1xyXG4gICAgICBzaG91bGRTcGxpdE1lbW9Xb3JkOiAhc2hvdWxkU3BsaXRNZW1vV29yZCxcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZUhpZGVJbWFnZVVybFZhbHVlQ2hhbmdlZCA9ICgpID0+IHtcclxuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRBcHBTZXR0aW5nKHtcclxuICAgICAgc2hvdWxkSGlkZUltYWdlVXJsOiAhc2hvdWxkSGlkZUltYWdlVXJsLFxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlVXNlTWFya2Rvd25QYXJzZXJDaGFuZ2VkID0gKCkgPT4ge1xyXG4gICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEFwcFNldHRpbmcoe1xyXG4gICAgICBzaG91bGRVc2VNYXJrZG93blBhcnNlcjogIXNob3VsZFVzZU1hcmtkb3duUGFyc2VyLFxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRXhwb3J0QnRuQ2xpY2sgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBmb3JtYXRlZE1lbW9zID0gbWVtb1NlcnZpY2UuZ2V0U3RhdGUoKS5tZW1vcy5tYXAoKG0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5tLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QganNvblN0ciA9IEpTT04uc3RyaW5naWZ5KGZvcm1hdGVkTWVtb3MpO1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIFwiZGF0YTp0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgsXCIgKyBlbmNvZGVVUklDb21wb25lbnQoanNvblN0cikpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkb3dubG9hZFwiLCBcImRhdGEuanNvblwiKTtcclxuICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcclxuICAgIGVsZW1lbnQuY2xpY2soKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbiAgfTtcclxuXHJcbiAgLy8gY29uc3QgaGFuZGxlRm9ybWF0TWVtb3NCdG5DbGljayA9IGFzeW5jICgpID0+IHtcclxuICAvLyAgIGNvbnN0IG1lbW9zID0gbWVtb1NlcnZpY2UuZ2V0U3RhdGUoKS5tZW1vcztcclxuICAvLyAgIGZvciAoY29uc3QgbSBvZiBtZW1vcykge1xyXG4gIC8vICAgICBtZW1vU2VydmljZS51cGRhdGVNZW1vKG0uaWQsIHBhcnNlSHRtbFRvUmF3VGV4dChtLmNvbnRlbnQpKTtcclxuICAvLyAgIH1cclxuICAvLyB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWNvbnRhaW5lciBwcmVmZXJlbmNlcy1zZWN0aW9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5NZW1vIOaYvuekuuebuOWFszwvcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJkZW1vLWNvbnRlbnQtY29udGFpbmVyIG1lbW8tY29udGVudC10ZXh0XCJcclxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogZm9ybWF0TWVtb0NvbnRlbnQoZGVtb01lbW9Db250ZW50KSB9fVxyXG4gICAgICAgID48L2Rpdj5cclxuICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZm9ybS1sYWJlbCBjaGVja2JveC1mb3JtLWxhYmVsXCIgb25DbGljaz17aGFuZGxlU3BsaXRXb3Jkc1ZhbHVlQ2hhbmdlZH0+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPuS4reiLseaWh+WGheWuueiHquWKqOmXtOmalDwvc3Bhbj5cclxuICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e3Nob3VsZFNwbGl0TWVtb1dvcmQgPyBjaGVja2JveEFjdGl2ZSA6IGNoZWNrYm94fSAvPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWwgY2hlY2tib3gtZm9ybS1sYWJlbFwiIG9uQ2xpY2s9e2hhbmRsZVVzZU1hcmtkb3duUGFyc2VyQ2hhbmdlZH0+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPumDqOWIhiBtYXJrZG93biDmoLzlvI/op6PmnpA8L3NwYW4+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtzaG91bGRVc2VNYXJrZG93blBhcnNlciA/IGNoZWNrYm94QWN0aXZlIDogY2hlY2tib3h9IC8+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZm9ybS1sYWJlbCBjaGVja2JveC1mb3JtLWxhYmVsXCIgb25DbGljaz17aGFuZGxlSGlkZUltYWdlVXJsVmFsdWVDaGFuZ2VkfT5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+6ZqQ6JeP5Zu+54mH6ZO+5o6l5Zyw5Z2APC9zcGFuPlxyXG4gICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17c2hvdWxkSGlkZUltYWdlVXJsID8gY2hlY2tib3hBY3RpdmUgOiBjaGVja2JveH0gLz5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWNvbnRhaW5lciBwcmVmZXJlbmNlcy1zZWN0aW9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj7nvJbovpHlmag8L3A+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWwgY2hlY2tib3gtZm9ybS1sYWJlbFwiIG9uQ2xpY2s9e2hhbmRsZU9wZW5UaW55VW5kb0NoYW5nZWR9PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj5cclxuICAgICAgICAgICAg5ZCv55Soe1wiIFwifVxyXG4gICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2Jvb2phY2svdGlueS11bmRvXCIgb25DbGljaz17KGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9IHJlbD1cIm5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgICB0aW55LXVuZG9cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17dXNlVGlueVVuZG9IaXN0b3J5Q2FjaGUgPyBjaGVja2JveEFjdGl2ZSA6IGNoZWNrYm94fSAvPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlY3Rpb24tY29udGFpbmVyIGhpZGRlblwiPlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj7lhbbku5Y8L3A+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG4tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBleHBvcnQtYnRuXCIgb25DbGljaz17aGFuZGxlRXhwb3J0QnRuQ2xpY2t9PlxyXG4gICAgICAgICAgICDlr7zlh7rmlbDmja4oSlNPTilcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgey8qIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGZvcm1hdC1idG5cIiBvbkNsaWNrPXtoYW5kbGVGb3JtYXRNZW1vc0J0bkNsaWNrfT5cclxuICAgICAgICAgICAg5qC85byP5YyW5pWw5o2uXHJcbiAgICAgICAgICA8L2J1dHRvbj4gKi99XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFByZWZlcmVuY2VzU2VjdGlvbjtcclxuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tIFwiLi4vc3RvcmVzL2FwcENvbnRleHRcIjtcclxuaW1wb3J0IHsgZ2xvYmFsU3RhdGVTZXJ2aWNlLCBtZW1vU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgUHJlZmVyZW5jZXNTZWN0aW9uIGZyb20gXCIuLi9jb21wb25lbnRzL1ByZWZlcmVuY2VzU2VjdGlvblwiO1xyXG5pbXBvcnQgT25seSBmcm9tIFwiLi4vY29tcG9uZW50cy9jb21tb24vT25seVdoZW5cIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9zZXR0aW5nLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgbWVudVN2ZyBmcm9tIFwiLi4vaWNvbnMvbWVudS5zdmdcIjtcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7fVxyXG5cclxuY29uc3QgU2V0dGluZzogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIGdsb2JhbFN0YXRlOiB7IGlzTW9iaWxlVmlldyB9LFxyXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgbWVtb1NlcnZpY2UuZmV0Y2hBbGxNZW1vcygpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlU2hvd1NpZGViYXJCdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRTaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcodHJ1ZSk7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwcmVmZXJlbmNlLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5cclxuICAgICAgICAgIDxPbmx5IHdoZW49e2lzTW9iaWxlVmlld30+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYWN0aW9uLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNob3dTaWRlYmFyQnRuQ2xpY2t9PlxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e21lbnVTdmd9IGFsdD1cIm1lbnVcIiAvPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvT25seT5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+6LSm5Y+35LiO6K6+572uPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjdGlvbnMtd3JhcHBlclwiPlxyXG4gICAgICAgIDxQcmVmZXJlbmNlc1NlY3Rpb24gLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2V0dGluZztcclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTWVtb3MgZnJvbSBcIi4uL3BhZ2VzL01lbW9zXCI7XHJcbmltcG9ydCBNZW1vVHJhc2ggZnJvbSBcIi4uL3BhZ2VzL01lbW9UcmFzaFwiO1xyXG5pbXBvcnQgU2V0dGluZyBmcm9tIFwiLi4vcGFnZXMvU2V0dGluZ1wiO1xyXG5cclxuY29uc3QgaG9tZVJvdXRlciA9IHtcclxuICBcIi9yZWN5Y2xlXCI6IDxNZW1vVHJhc2ggLz4sXHJcbiAgXCIvc2V0dGluZ1wiOiA8U2V0dGluZyAvPixcclxuICBcIipcIjogPE1lbW9zIC8+LFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgaG9tZVJvdXRlcjtcclxuIiwiLy8gaW1wb3J0IGFwcFJvdXRlciBmcm9tIFwiLi9hcHBSb3V0ZXJcIjtcclxuaW1wb3J0IGhvbWVSb3V0ZXIgZnJvbSBcIi4vaG9tZVJvdXRlclwiO1xyXG5cclxuLy8ganVzdCBsaWtlIFJlYWN0LVJvdXRlclxyXG5pbnRlcmZhY2UgUm91dGVyIHtcclxuICBba2V5OiBzdHJpbmddOiBKU1guRWxlbWVudCB8IG51bGw7XHJcbiAgXCIqXCI6IEpTWC5FbGVtZW50IHwgbnVsbDtcclxufVxyXG5cclxuY29uc3Qgcm91dGVyU3dpdGNoID0gKHJvdXRlcjogUm91dGVyKSA9PiB7XHJcbiAgcmV0dXJuIChwYXRobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhyb3V0ZXIpKSB7XHJcbiAgICAgIGlmIChrZXkgPT09IHBhdGhuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHJvdXRlcltrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm91dGVyW1wiKlwiXTtcclxuICB9O1xyXG59O1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IGFwcFJvdXRlclN3aXRjaCA9IHJvdXRlclN3aXRjaChhcHBSb3V0ZXIpO1xyXG5leHBvcnQgY29uc3QgaG9tZVJvdXRlclN3aXRjaCA9IHJvdXRlclN3aXRjaChob21lUm91dGVyKTtcclxuIiwiaW1wb3J0IHsgc2hvd0RpYWxvZyB9IGZyb20gXCIuL0RpYWxvZ1wiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL2Fib3V0LXNpdGUtZGlhbG9nLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xvc2UgZnJvbSBcIi4uL2ljb25zL2Nsb3NlLnN2Z1wiO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgRGlhbG9nUHJvcHMge31cclxuXHJcbmNvbnN0IEFib3V0U2l0ZURpYWxvZzogUmVhY3QuRkM8UHJvcHM+ID0gKHsgZGVzdHJveSB9OiBQcm9wcykgPT4ge1xyXG4gIGNvbnN0IGhhbmRsZUNsb3NlQnRuQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBkZXN0cm95KCk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj7wn6SgPC9zcGFuPkFib3V0IDxiPk9ic2lkaWFuLU1lbW9zPC9iPlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBjbG9zZS1idG5cIiBvbkNsaWNrPXtoYW5kbGVDbG9zZUJ0bkNsaWNrfT5cclxuICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Nsb3NlfSAvPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWFsb2ctY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICBIaSwgSSBhbSBRdW9yYWZpbmQoQm9uaW5hbGwpLCBpZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gdGhpcyBwcm9qZWN0LCBwbGVhc2Ugc3VwcG9ydCBteSB3b3JrIGFuZCBlbnRodXNpYXNtIGJ5IGJ1eWluZyBtZSBhIGNvZmZlZSBvbiA8YSBocmVmPVwiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9ib25pbmFsbFwiPmh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYm9uaW5hbGw8L2E+XHJcbiAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYm9uaW5hbGxcIj48aW1nIHNyYz17YGh0dHBzOi8vaW1nLmJ1eW1lYWNvZmZlZS5jb20vYnV0dG9uLWFwaS8/dGV4dD1CdXkgbWUgYSBjb2ZmZWUmZW1vamk9JnNsdWc9Ym9uaW5hbGwmYnV0dG9uX2NvbG91cj02NDk1RUQmZm9udF9jb2xvdXI9ZmZmZmZmJmZvbnRfZmFtaWx5PUxhdG8mb3V0bGluZV9jb2xvdXI9MDAwMDAwJmNvZmZlZV9jb2xvdXI9RkZERDAwYH0gLz48L2E+XHJcbiAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgPHA+XHJcbiAgICAgICAg5Z+65LqOIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vanVzdG1lbW9zL21lbW9zXCI+bWVtb3M8L2E+IOW8gOa6kOmhueebruaJgOaehOW7uueahOmhueebruOAgiBOT1RFOiBCYXNlZCBvbiA8YSBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2p1c3RtZW1vcy9tZW1vc1wiPm1lbW9zPC9hPiBwcm9qZWN0IHRvIGJ1aWxkLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICA8cD5cclxuICAgICAgICAgIPCfj5cgVGhpcyBwcm9qZWN0IGlzIHdvcmtpbmcgaW4gcHJvZ3Jlc3MsIDxiciAvPiBhbmQgdmVyeSBwbGVhc3VyZSB0byB3ZWxjb21lIHlvdXJ7XCIgXCJ9XHJcbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL1F1b3JhZmluZC9vYnNpZGlhbi1tZW1vcy9pc3N1ZXNcIj5pc3N1ZXM8L2E+IGFuZCA8YSBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL1F1b3JhZmluZC9vYnNpZGlhbi1tZW1vcy9wdWxsc1wiPlB1bGwgUmVxdWVzdDwvYT4uXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxociAvPlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+XHJcbiAgICAgICAgICBMYXN0IHVwZGF0ZWQgb24gPHNwYW4gY2xhc3NOYW1lPVwicHJlLXRleHRcIj4yMDIyLzAxLzA0IDIyOjU1OjE1PC9zcGFuPiDwn46JXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzaG93QWJvdXRTaXRlRGlhbG9nKCk6IHZvaWQge1xyXG4gIHNob3dEaWFsb2coXHJcbiAgICB7XHJcbiAgICAgIGNsYXNzTmFtZTogXCJhYm91dC1zaXRlLWRpYWxvZ1wiLFxyXG4gICAgfSxcclxuICAgIEFib3V0U2l0ZURpYWxvZ1xyXG4gICk7XHJcbn1cclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCBzaG93QWJvdXRTaXRlRGlhbG9nIGZyb20gXCIuL0Fib3V0U2l0ZURpYWxvZ1wiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL21lbnUtYnRucy1wb3B1cC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGRhaWx5Tm90ZXNTZXJ2aWNlIGZyb20gJy4uL3NlcnZpY2VzL2RhaWx5Tm90ZXNTZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgc2hvd25TdGF0dXM6IGJvb2xlYW47XHJcbiAgc2V0U2hvd25TdGF0dXM6IChzdGF0dXM6IGJvb2xlYW4pID0+IHZvaWQ7XHJcbn1cclxuXHJcbmNvbnN0IE1lbnVCdG5zUG9wdXA6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcclxuICBjb25zdCB7IHNob3duU3RhdHVzLCBzZXRTaG93blN0YXR1cyB9ID0gcHJvcHM7XHJcbiAgY29uc3QgeyBhcHAgfSA9IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCk7XHJcblxyXG4gIGNvbnN0IHBvcHVwRWxSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHNob3duU3RhdHVzKSB7XHJcbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghcG9wdXBFbFJlZi5jdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcclxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRTaG93blN0YXR1cyhmYWxzZSk7XHJcbiAgICAgIH07XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2tPdXRzaWRlLCB7XHJcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcclxuICAgICAgICBvbmNlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9LCBbc2hvd25TdGF0dXNdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlTXlBY2NvdW50QnRuQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBhcHAuc2V0dGluZy5vcGVuKCk7XHJcbiAgICBhcHAuc2V0dGluZy5vcGVuVGFiQnlJZChcIm9ic2lkaWFuLW1lbW9zXCIpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZU1lbW9zVHJhc2hCdG5DbGljayA9ICgpID0+IHtcclxuICAgIGxvY2F0aW9uU2VydmljZS5wdXNoSGlzdG9yeShcIi9yZWN5Y2xlXCIpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZUFib3V0QnRuQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBzaG93QWJvdXRTaXRlRGlhbG9nKCk7XHJcbiAgfTtcclxuXHJcbiAgLy8gY29uc3QgaGFuZGxlU2lnbk91dEJ0bkNsaWNrID0gYXN5bmMgKCkgPT4ge1xyXG4gIC8vICAgYXdhaXQgdXNlclNlcnZpY2UuZG9TaWduT3V0KCk7XHJcbiAgLy8gfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtgbWVudS1idG5zLXBvcHVwICR7c2hvd25TdGF0dXMgPyBcIlwiIDogXCJoaWRkZW5cIn1gfSByZWY9e3BvcHVwRWxSZWZ9PlxyXG4gICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBhY3Rpb24tYnRuXCIgb25DbGljaz17aGFuZGxlTXlBY2NvdW50QnRuQ2xpY2t9PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj7wn5GkPC9zcGFuPiBTZXR0aW5nc1xyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYWN0aW9uLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZU1lbW9zVHJhc2hCdG5DbGlja30+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPvCfl5HvuI88L3NwYW4+IFJlY3ljbGUgYmluXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBhY3Rpb24tYnRuXCIgb25DbGljaz17aGFuZGxlQWJvdXRCdG5DbGlja30+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPvCfpKA8L3NwYW4+IEFib3V0IE1FXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB7LyogPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYWN0aW9uLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNpZ25PdXRCdG5DbGlja30+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPvCfkYs8L3NwYW4+IOmAgOWHulxyXG4gICAgICA8L2J1dHRvbj4gKi99XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVudUJ0bnNQb3B1cDtcclxuIiwiaW1wb3J0IHsgSU1BR0VfVVJMX1JFRywgTUFSS0RPV05fVVJMX1JFRywgTUFSS0RPV05fV0VCX1VSTF9SRUcsIFdJS0lfSU1BR0VfVVJMX1JFRyB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbnN0c1wiO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL2hlbHBlcnMvdXRpbHNcIjtcclxuaW1wb3J0IHsgZm9ybWF0TWVtb0NvbnRlbnQgfSBmcm9tIFwiLi9NZW1vXCI7XHJcbmltcG9ydCBPbmx5IGZyb20gXCIuL2NvbW1vbi9Pbmx5V2hlblwiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL2RhaWx5LW1lbW8ubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFRGaWxlLCBWYXVsdCwgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5pbXBvcnQgYXBwU3RvcmUgZnJvbSBcIi4uL3N0b3Jlcy9hcHBTdG9yZVwiO1xyXG4vLyBpbXBvcnQgYXBwQ29udGV4dCBmcm9tIFwiLi4vc3RvcmVzL2FwcENvbnRleHRcIjtcclxuLy8gaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcclxuLy8gaW1wb3J0IHsgZGFpbHlOb3Rlc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuXHJcbmludGVyZmFjZSBEYWlseU1lbW8gZXh0ZW5kcyBGb3JtYXR0ZWRNZW1vIHtcclxuICB0aW1lU3RyOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgbWVtbzogTW9kZWwuTWVtbztcclxufVxyXG5cclxuaW50ZXJmYWNlIExpbmtNYXRjaCB7XHJcbiAgbGlua1RleHQ6IHN0cmluZztcclxuICBhbHRUZXh0OiBzdHJpbmc7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIGZpbGVQYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UGF0aE9mSW1hZ2UgPSAodmF1bHQ6IFZhdWx0LCBpbWFnZTogVEZpbGUpID0+IHtcclxuICByZXR1cm4gdmF1bHQuZ2V0UmVzb3VyY2VQYXRoKGltYWdlKTtcclxufTtcclxuXHJcbmNvbnN0IGRldGVjdFdpa2lJbnRlcm5hbExpbmsgPSAobGluZVRleHQgOiBzdHJpbmcsIGFwcDogQXBwKSA6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJuYWxGaWxlTmFtZSA9ICBXSUtJX0lNQUdFX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/LlsxXVxyXG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9ICBXSUtJX0lNQUdFX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XVxyXG4gIGNvbnN0IGZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcclxuICBpZihmaWxlID09PSBudWxsKXtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXHJcbiAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgIGZpbGVQYXRoOiBcIlwiLFxyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgY29uc3QgaW1hZ2VQYXRoID0gZ2V0UGF0aE9mSW1hZ2UoYXBwLnZhdWx0LCBmaWxlKTtcclxuICAgIGlmKGludGVybmFsQWx0TmFtZSl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxyXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcclxuICAgICAgICBmaWxlUGF0aDogZmlsZS5wYXRoLFxyXG4gICAgICB9XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXHJcbiAgICAgICAgYWx0VGV4dDogXCJcIixcclxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXHJcbiAgICAgICAgZmlsZVBhdGg6IGZpbGUucGF0aCxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY29uc3QgZGV0ZWN0TURJbnRlcm5hbExpbmsgPSAobGluZVRleHQgOiBzdHJpbmcsIGFwcDogQXBwKSA6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xyXG5cclxuICAvLyBjb25zdCB7IG1ldGFkYXRhQ2FjaGUsdmF1bHQgfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcclxuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gIE1BUktET1dOX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XVxyXG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9ICBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMl1cclxuICBjb25zdCBmaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZGVjb2RlVVJJQ29tcG9uZW50KGludGVybmFsRmlsZU5hbWUpLCAnJyk7XHJcbiAgaWYoZmlsZSA9PT0gbnVsbCl7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcclxuICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxyXG4gICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICBmaWxlUGF0aDogXCJcIixcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKGFwcC52YXVsdCwgZmlsZSk7XHJcbiAgICBpZihpbnRlcm5hbEFsdE5hbWUpe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcclxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXHJcbiAgICAgICAgZmlsZVBhdGg6IGZpbGUucGF0aCxcclxuICAgICAgfVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxyXG4gICAgICAgIGFsdFRleHQ6IFwiXCIsXHJcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxyXG4gICAgICAgIGZpbGVQYXRoOiBmaWxlLnBhdGgsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IERhaWx5TWVtbzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xyXG4gIC8vIGNvbnN0IHBsdWdpbiA9IE1lbW9zUGx1Z2luO1xyXG4gIGNvbnN0IHsgYXBwIH0gID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGU7XHJcbiAgY29uc3QgeyBtZW1vOiBwcm9wc01lbW8gfSA9IHByb3BzO1xyXG4gIGNvbnN0IG1lbW86IERhaWx5TWVtbyA9IHtcclxuICAgIC4uLnByb3BzTWVtbyxcclxuICAgIGNyZWF0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcocHJvcHNNZW1vLmNyZWF0ZWRBdCksXHJcbiAgICB0aW1lU3RyOiB1dGlscy5nZXRUaW1lU3RyaW5nKHByb3BzTWVtby5jcmVhdGVkQXQpLFxyXG4gIH07XHJcbiAgbGV0IGV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XHJcbiAgbGV0IGludGVybmFsSW1hZ2VVcmxzID0gW107XHJcbiAgbGV0IGFsbE1hcmtkb3duTGluazogc3RyaW5nIHwgYW55W10gPSBbXTtcclxuICBsZXQgYWxsSW50ZXJuYWxMaW5rID0gW10gYXMgYW55W107XHJcbiAgaWYoSU1BR0VfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpe1xyXG4gICAgbGV0IGFsbEV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XHJcbiAgICBsZXQgYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XHJcbiAgICBpZihNQVJLRE9XTl9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSl7XHJcbiAgICAgIGFsbE1hcmtkb3duTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1VSTF9SRUcpKTtcclxuICAgIH1cclxuICAgIGlmKFdJS0lfSU1BR0VfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpe1xyXG4gICAgICBhbGxJbnRlcm5hbExpbmsgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChXSUtJX0lNQUdFX1VSTF9SRUcpKTtcclxuICAgIH1cclxuICAgIC8vIGNvbnN0IGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xyXG4gICAgaWYoTUFSS0RPV05fV0VCX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKXtcclxuICAgICAgYWxsRXh0ZXJuYWxJbWFnZVVybHMgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChNQVJLRE9XTl9XRUJfVVJMX1JFRykpO1xyXG4gICAgfVxyXG4gICAgaWYoYWxsSW50ZXJuYWxMaW5rLmxlbmd0aCl7XHJcbiAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxJbnRlcm5hbExpbmsubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBvbmUgPSBhbGxJbnRlcm5hbExpbmtbaV07XHJcbiAgICAgICAgaW50ZXJuYWxJbWFnZVVybHMucHVzaChkZXRlY3RXaWtpSW50ZXJuYWxMaW5rKG9uZSxhcHApKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYoYWxsTWFya2Rvd25MaW5rLmxlbmd0aCl7XHJcbiAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxNYXJrZG93bkxpbmsubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCB0d28gPSBhbGxNYXJrZG93bkxpbmtbaV07XHJcbiAgICAgICAgaWYoLyguKilodHRwW3NdPyguKikvLnRlc3QodHdvKSl7XHJcbiAgICAgICAgICBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMucHVzaChNQVJLRE9XTl9VUkxfUkVHLmV4ZWModHdvKT8uWzVdKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0TURJbnRlcm5hbExpbmsodHdvLGFwcCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZXh0ZXJuYWxJbWFnZVVybHMgPSBhbGxFeHRlcm5hbEltYWdlVXJscy5jb25jYXQoYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzKTtcclxuICAgIC8vIGV4dGVybmFsSW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPz8gW10pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZGFpbHktbWVtby13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZS13cmFwcGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj57bWVtby50aW1lU3RyfTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1jb250ZW50LXRleHRcIiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGZvcm1hdE1lbW9Db250ZW50KG1lbW8uY29udGVudCkgfX0+PC9kaXY+XHJcbiAgICAgICAgPE9ubHkgd2hlbj17ZXh0ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAge2V4dGVybmFsSW1hZ2VVcmxzLm1hcCgoaW1nVXJsLCBpZHgpID0+IChcclxuICAgICAgICAgICAgICA8aW1nIGtleT17aWR4fSBzcmM9e2ltZ1VybH0gcmVmZXJyZXJQb2xpY3k9XCJuby1yZWZlcnJlclwiLz5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L09ubHk+XHJcbiAgICAgICAgPE9ubHkgd2hlbj17aW50ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy1jb250YWluZXIgaW50ZXJuYWwtZW1iZWQgaW1hZ2UtZW1iZWQgaXMtbG9hZGVkXCI+XHJcbiAgICAgICAgICAgIHtpbnRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXHJcbiAgICAgICAgICAgICAgPGltZyBrZXk9e2lkeH0gc3JjPXtpbWdVcmwucGF0aH0gYWx0PXtpbWdVcmwuYWx0VGV4dH0gcGF0aD17aW1nVXJsLmZpbGVQYXRofS8+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Pbmx5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBEYWlseU1lbW87XHJcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEQUlMWV9USU1FU1RBTVAgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9jb25zdHNcIjtcclxuaW1wb3J0IFwiLi4vLi4vbGVzcy9jb21tb24vZGF0ZS1waWNrZXIubGVzc1wiO1xyXG5pbXBvcnQgYXJyb3dMZWZ0IGZyb20gJy4uLy4uL2ljb25zL2Fycm93LWxlZnQuc3ZnJztcclxuaW1wb3J0IGFycm93UmlnaHQgZnJvbSAnLi4vLi4vaWNvbnMvYXJyb3ctcmlnaHQuc3ZnJztcclxuXHJcbmludGVyZmFjZSBEYXRlUGlja2VyUHJvcHMge1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBkYXRlc3RhbXA6IERhdGVTdGFtcDtcclxuICBoYW5kbGVEYXRlU3RhbXBDaGFuZ2U6IChkYXRhc3RhbXA6IERhdGVTdGFtcCkgPT4gdm9pZDtcclxufVxyXG5cclxuY29uc3QgRGF0ZVBpY2tlcjogUmVhY3QuRkM8RGF0ZVBpY2tlclByb3BzPiA9IChwcm9wczogRGF0ZVBpY2tlclByb3BzKSA9PiB7XHJcbiAgY29uc3QgeyBjbGFzc05hbWUsIGRhdGVzdGFtcCwgaGFuZGxlRGF0ZVN0YW1wQ2hhbmdlIH0gPSBwcm9wcztcclxuICBjb25zdCBbY3VycmVudERhdGVTdGFtcCwgc2V0Q3VycmVudERhdGVTdGFtcF0gPSB1c2VTdGF0ZTxEYXRlU3RhbXA+KGdldE1vbnRoRmlyc3REYXlEYXRlU3RhbXAoZGF0ZXN0YW1wKSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRDdXJyZW50RGF0ZVN0YW1wKGdldE1vbnRoRmlyc3REYXlEYXRlU3RhbXAoZGF0ZXN0YW1wKSk7XHJcbiAgfSwgW2RhdGVzdGFtcF0pO1xyXG5cclxuICBjb25zdCBmaXJzdERhdGUgPSBuZXcgRGF0ZShjdXJyZW50RGF0ZVN0YW1wKTtcclxuICBjb25zdCBmaXJzdERhdGVEYXkgPSBmaXJzdERhdGUuZ2V0RGF5KCkgPT09IDAgPyA3IDogZmlyc3REYXRlLmdldERheSgpO1xyXG4gIGNvbnN0IGRheUxpc3QgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMTsgaSA8IGZpcnN0RGF0ZURheTsgaSsrKSB7XHJcbiAgICBkYXlMaXN0LnB1c2goe1xyXG4gICAgICBkYXRlOiAwLFxyXG4gICAgICBkYXRlc3RhbXA6IGZpcnN0RGF0ZS5nZXRUaW1lKCkgLSBEQUlMWV9USU1FU1RBTVAgKiAoNyAtIGkpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnN0IGRheUFtb3VudCA9IGdldE1vbnRoRGF5QW1vdW50KGN1cnJlbnREYXRlU3RhbXApO1xyXG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IGRheUFtb3VudDsgaSsrKSB7XHJcbiAgICBkYXlMaXN0LnB1c2goe1xyXG4gICAgICBkYXRlOiBpLFxyXG4gICAgICBkYXRlc3RhbXA6IGZpcnN0RGF0ZS5nZXRUaW1lKCkgKyBEQUlMWV9USU1FU1RBTVAgKiAoaSAtIDEpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBoYW5kbGVEYXRlSXRlbUNsaWNrID0gKGRhdGVzdGFtcDogRGF0ZVN0YW1wKSA9PiB7XHJcbiAgICBoYW5kbGVEYXRlU3RhbXBDaGFuZ2UoZGF0ZXN0YW1wKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDaGFuZ2VNb250aEJ0bkNsaWNrID0gKGk6IC0xIHwgMSkgPT4ge1xyXG4gICAgY29uc3QgeWVhciA9IGZpcnN0RGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSBmaXJzdERhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICBsZXQgbmV4dERhdGVTdGFtcCA9IDA7XHJcbiAgICBpZiAobW9udGggPT09IDEgJiYgaSA9PT0gLTEpIHtcclxuICAgICAgbmV4dERhdGVTdGFtcCA9IG5ldyBEYXRlKGAke3llYXIgLSAxfS8xMi8xYCkuZ2V0VGltZSgpO1xyXG4gICAgfSBlbHNlIGlmIChtb250aCA9PT0gMTIgJiYgaSA9PT0gMSkge1xyXG4gICAgICBuZXh0RGF0ZVN0YW1wID0gbmV3IERhdGUoYCR7eWVhciArIDF9LzEvMWApLmdldFRpbWUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5leHREYXRlU3RhbXAgPSBuZXcgRGF0ZShgJHt5ZWFyfS8ke21vbnRoICsgaX0vMWApLmdldFRpbWUoKTtcclxuICAgIH1cclxuICAgIHNldEN1cnJlbnREYXRlU3RhbXAoZ2V0TW9udGhGaXJzdERheURhdGVTdGFtcChuZXh0RGF0ZVN0YW1wKSk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZGF0ZS1waWNrZXItd3JhcHBlciAke2NsYXNzTmFtZX1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlLXBpY2tlci1oZWFkZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tdGV4dFwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNoYW5nZU1vbnRoQnRuQ2xpY2soLTEpfT5cclxuICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Fycm93TGVmdH0gLz5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj5cclxuICAgICAgICAgIHtmaXJzdERhdGUuZ2V0RnVsbFllYXIoKX0g5bm0IHtmaXJzdERhdGUuZ2V0TW9udGgoKSArIDF9IOaciFxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tdGV4dFwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNoYW5nZU1vbnRoQnRuQ2xpY2soMSl9PlxyXG4gICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17YXJyb3dSaWdodH0gLz5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUtcGlja2VyLWRheS1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUtcGlja2VyLWRheS1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRheS1pdGVtXCI+5ZGo5LiAPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF5LWl0ZW1cIj7lkajkuow8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOS4iTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRheS1pdGVtXCI+5ZGo5ZubPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGF5LWl0ZW1cIj7lkajkupQ8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOWFrTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRheS1pdGVtXCI+5ZGo5pelPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB7ZGF5TGlzdC5tYXAoKGQpID0+IHtcclxuICAgICAgICAgIGlmIChkLmRhdGUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8c3BhbiBrZXk9e2QuZGF0ZXN0YW1wfSBjbGFzc05hbWU9XCJkYXktaXRlbSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7XCJcIn1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBrZXk9e2QuZGF0ZXN0YW1wfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZGF5LWl0ZW0gJHtkLmRhdGVzdGFtcCA9PT0gZGF0ZXN0YW1wID8gXCJjdXJyZW50XCIgOiBcIlwifWB9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEYXRlSXRlbUNsaWNrKGQuZGF0ZXN0YW1wKX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7ZC5kYXRlfVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0TW9udGhEYXlBbW91bnQoZGF0ZXN0YW1wOiBEYXRlU3RhbXApOiBudW1iZXIge1xyXG4gIGNvbnN0IGRhdGVUZW1wID0gbmV3IERhdGUoZGF0ZXN0YW1wKTtcclxuICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKGAke2RhdGVUZW1wLmdldEZ1bGxZZWFyKCl9LyR7ZGF0ZVRlbXAuZ2V0TW9udGgoKSArIDF9LzFgKTtcclxuICBjb25zdCBuZXh0TW9udGhEYXRlID1cclxuICAgIGN1cnJlbnREYXRlLmdldE1vbnRoKCkgPT09IDExXHJcbiAgICAgID8gbmV3IERhdGUoYCR7Y3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSArIDF9LzEvMWApXHJcbiAgICAgIDogbmV3IERhdGUoYCR7Y3VycmVudERhdGUuZ2V0RnVsbFllYXIoKX0vJHtjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgMn0vMWApO1xyXG5cclxuICByZXR1cm4gKG5leHRNb250aERhdGUuZ2V0VGltZSgpIC0gY3VycmVudERhdGUuZ2V0VGltZSgpKSAvIERBSUxZX1RJTUVTVEFNUDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TW9udGhGaXJzdERheURhdGVTdGFtcCh0aW1lc3RhbXA6IFRpbWVTdGFtcCk6IERhdGVTdGFtcCB7XHJcbiAgY29uc3QgZGF0ZVRlbXAgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoYCR7ZGF0ZVRlbXAuZ2V0RnVsbFllYXIoKX0vJHtkYXRlVGVtcC5nZXRNb250aCgpICsgMX0vMWApO1xyXG4gIHJldHVybiBjdXJyZW50RGF0ZS5nZXRUaW1lKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IERhdGVQaWNrZXI7XHJcbiIsImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBtZW1vU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgdG9JbWFnZSBmcm9tIFwiLi4vbGFicy9odG1sMmltYWdlXCI7XHJcbmltcG9ydCB1c2VUb2dnbGUgZnJvbSBcIi4uL2hvb2tzL3VzZVRvZ2dsZVwiO1xyXG5pbXBvcnQgdXNlTG9hZGluZyBmcm9tIFwiLi4vaG9va3MvdXNlTG9hZGluZ1wiO1xyXG5pbXBvcnQgeyBEQUlMWV9USU1FU1RBTVAgfSBmcm9tIFwiLi4vaGVscGVycy9jb25zdHNcIjtcclxuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi9oZWxwZXJzL3V0aWxzXCI7XHJcbmltcG9ydCB7IHNob3dEaWFsb2cgfSBmcm9tIFwiLi9EaWFsb2dcIjtcclxuaW1wb3J0IHNob3dQcmV2aWV3SW1hZ2VEaWFsb2cgZnJvbSBcIi4vUHJldmlld0ltYWdlRGlhbG9nXCI7XHJcbmltcG9ydCBEYWlseU1lbW8gZnJvbSBcIi4vRGFpbHlNZW1vXCI7XHJcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gXCIuL2NvbW1vbi9EYXRlUGlja2VyXCI7XHJcbmltcG9ydCBcIi4uL2xlc3MvZGFpbHktbWVtby1kaWFyeS1kaWFsb2cubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbG9zZSBmcm9tICcuLi9pY29ucy9jbG9zZS5zdmcnO1xyXG5pbXBvcnQgYXJyb3dMZWZ0IGZyb20gJy4uL2ljb25zL2Fycm93LWxlZnQuc3ZnJztcclxuaW1wb3J0IGFycm93UmlnaHQgZnJvbSAnLi4vaWNvbnMvYXJyb3ctcmlnaHQuc3ZnJztcclxuaW1wb3J0IHNoYXJlIGZyb20gJy4uL2ljb25zL3NoYXJlLnN2Zyc7XHJcbmltcG9ydCBpMThuZXh0IGZyb20gXCJpMThuZXh0XCI7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBEaWFsb2dQcm9wcyB7XHJcbiAgY3VycmVudERhdGVTdGFtcDogRGF0ZVN0YW1wO1xyXG59XHJcblxyXG5jb25zdCBEYWlseU1lbW9EaWFyeURpYWxvZzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xyXG5cclxuICBjb25zdCBsb2FkaW5nU3RhdGUgPSB1c2VMb2FkaW5nKCk7XHJcbiAgY29uc3QgW21lbW9zLCBzZXRNZW1vc10gPSB1c2VTdGF0ZTxNb2RlbC5NZW1vW10+KFtdKTtcclxuICBjb25zdCBbY3VycmVudERhdGVTdGFtcCwgc2V0Q3VycmVudERhdGVTdGFtcF0gPSB1c2VTdGF0ZSh1dGlscy5nZXREYXRlU3RhbXBCeURhdGUodXRpbHMuZ2V0RGF0ZVN0cmluZyhwcm9wcy5jdXJyZW50RGF0ZVN0YW1wKSkpO1xyXG4gIGNvbnN0IFtzaG93RGF0ZVBpY2tlciwgdG9nZ2xlU2hvd0RhdGVQaWNrZXJdID0gdXNlVG9nZ2xlKGZhbHNlKTtcclxuICBjb25zdCBtZW1vc0VsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnREYXRlU3RhbXApO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qgc2V0RGFpbHlNZW1vcyA9ICgpID0+IHtcclxuICAgICAgY29uc3QgZGFpbHlNZW1vcyA9IG1lbW9TZXJ2aWNlXHJcbiAgICAgICAgLmdldFN0YXRlKClcclxuICAgICAgICAubWVtb3MuZmlsdGVyKFxyXG4gICAgICAgICAgKGEpID0+XHJcbiAgICAgICAgICAgIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShhLmNyZWF0ZWRBdCkgPj0gY3VycmVudERhdGVTdGFtcCAmJlxyXG4gICAgICAgICAgICB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5jcmVhdGVkQXQpIDwgY3VycmVudERhdGVTdGFtcCArIERBSUxZX1RJTUVTVEFNUFxyXG4gICAgICAgIClcclxuICAgICAgICAuc29ydCgoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmNyZWF0ZWRBdCkpO1xyXG4gICAgICBzZXRNZW1vcyhkYWlseU1lbW9zKTtcclxuICAgICAgbG9hZGluZ1N0YXRlLnNldEZpbmlzaCgpO1xyXG4gICAgfTtcclxuXHJcbiAgICBzZXREYWlseU1lbW9zKCk7XHJcbiAgfSwgW2N1cnJlbnREYXRlU3RhbXBdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlU2hhcmVCdG5DbGljayA9ICgpID0+IHtcclxuICAgIHRvZ2dsZVNob3dEYXRlUGlja2VyKGZhbHNlKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCFtZW1vc0VsUmVmLmN1cnJlbnQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRvSW1hZ2UobWVtb3NFbFJlZi5jdXJyZW50LCB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiNmZmZmZmZcIixcclxuICAgICAgICBwaXhlbFJhdGlvOiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyAqIDIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKHVybCkgPT4ge1xyXG4gICAgICAgICAgc2hvd1ByZXZpZXdJbWFnZURpYWxvZyh1cmwpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIC8vIGRvIG50aFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgMCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRGF0YVBpY2tlckNoYW5nZSA9IChkYXRlc3RhbXA6IERhdGVTdGFtcCk6IHZvaWQgPT4ge1xyXG4gICAgc2V0Q3VycmVudERhdGVTdGFtcChkYXRlc3RhbXApO1xyXG4gICAgdG9nZ2xlU2hvd0RhdGVQaWNrZXIoZmFsc2UpO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpYWxvZy1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGl0bGUtdGV4dFwiPkRhaWx5IE1lbW9zPC9wPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tdGV4dFwiIG9uQ2xpY2s9eygpID0+IHNldEN1cnJlbnREYXRlU3RhbXAoY3VycmVudERhdGVTdGFtcCAtIERBSUxZX1RJTUVTVEFNUCl9PlxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Fycm93TGVmdH0gLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tdGV4dFwiIG9uQ2xpY2s9eygpID0+IHNldEN1cnJlbnREYXRlU3RhbXAoY3VycmVudERhdGVTdGFtcCArIERBSUxZX1RJTUVTVEFNUCl9PlxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Fycm93UmlnaHR9IC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuLXRleHQgc2hhcmUtYnRuXCIgb25DbGljaz17aGFuZGxlU2hhcmVCdG5DbGlja30+XHJcbiAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17c2hhcmV9IC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuLXRleHRcIiBvbkNsaWNrPXsoKSA9PiBwcm9wcy5kZXN0cm95KCl9PlxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Nsb3NlfSAvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWNvbnRlbnQtY29udGFpbmVyXCIgcmVmPXttZW1vc0VsUmVmfT5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUtY2FyZC1jb250YWluZXJcIiBvbkNsaWNrPXsoKSA9PiB0b2dnbGVTaG93RGF0ZVBpY2tlcigpfT5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwieWVhci10ZXh0XCI+e2N1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCl9PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9udGgtdGV4dFwiPntpMThuZXh0LnQoJ21vbnRocycsIHsgcmV0dXJuT2JqZWN0czogdHJ1ZSB9KVtjdXJyZW50RGF0ZS5nZXRNb250aCgpXX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlLXRleHRcIj57Y3VycmVudERhdGUuZ2V0RGF0ZSgpfTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRheS10ZXh0XCI+e2kxOG5leHQudCgnd2Vla0RheXMnLCB7IHJldHVybk9iamVjdHM6IHRydWUgfSlbY3VycmVudERhdGUuZ2V0RGF5KCldfTwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPERhdGVQaWNrZXJcclxuICAgICAgICAgIGNsYXNzTmFtZT17YGRhdGUtcGlja2VyICR7c2hvd0RhdGVQaWNrZXIgPyBcIlwiIDogXCJoaWRkZW5cIn1gfVxyXG4gICAgICAgICAgZGF0ZXN0YW1wPXtjdXJyZW50RGF0ZVN0YW1wfVxyXG4gICAgICAgICAgaGFuZGxlRGF0ZVN0YW1wQ2hhbmdlPXtoYW5kbGVEYXRhUGlja2VyQ2hhbmdlfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICAge2xvYWRpbmdTdGF0ZS5pc0xvYWRpbmcgPyAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGlwLXRleHRcIj7liqrlipvliqDovb3kuK0uLi48L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApIDogbWVtb3MubGVuZ3RoID09PSAwID8gKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+Tm9vb29wITwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhaWx5bWVtb3Mtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICB7bWVtb3MubWFwKChtZW1vKSA9PiAoXHJcbiAgICAgICAgICAgICAgPERhaWx5TWVtbyBrZXk9e2Ake21lbW8uaWR9LSR7bWVtby51cGRhdGVkQXR9YH0gbWVtbz17bWVtb30vPlxyXG4gICAgICAgICAgICApKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNob3dEYWlseU1lbW9EaWFyeURpYWxvZyhkYXRlc3RhbXA6IERhdGVTdGFtcCA9IERhdGUubm93KCkpOiB2b2lkIHtcclxuICBzaG93RGlhbG9nKFxyXG4gICAge1xyXG4gICAgICBjbGFzc05hbWU6IFwiZGFpbHktbWVtby1kaWFyeS1kaWFsb2dcIixcclxuICAgIH0sXHJcbiAgICBEYWlseU1lbW9EaWFyeURpYWxvZyxcclxuICAgIHsgY3VycmVudERhdGVTdGFtcDogZGF0ZXN0YW1wIH1cclxuICApO1xyXG59IiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgeyBsb2NhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi9oZWxwZXJzL3V0aWxzXCI7XHJcbmltcG9ydCBNZW51QnRuc1BvcHVwIGZyb20gXCIuL01lbnVCdG5zUG9wdXBcIjtcclxuaW1wb3J0IHNob3dEYWlseU1lbW9EaWFyeURpYWxvZyBmcm9tIFwiLi9EYWlseU1lbW9EaWFyeURpYWxvZ1wiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL3VzZXItYmFubmVyLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVc2VyTmFtZSB9IGZyb20gJy4uL21lbW9zJztcclxuaW1wb3J0IG1vcmUgZnJvbSBcIi4uL2ljb25zL21vcmUuc3ZnXCJcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7fVxyXG5cclxuY29uc3QgVXNlckJhbm5lcjogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIG1lbW9TdGF0ZTogeyBtZW1vcywgdGFncyB9LFxyXG4gICAgdXNlclN0YXRlOiB7IHVzZXIgfSxcclxuICB9ID0gdXNlQ29udGV4dChhcHBDb250ZXh0KTtcclxuICBjb25zdCB1c2VybmFtZSA9IHVzZXIgPyB1c2VyLnVzZXJuYW1lIDogVXNlck5hbWU7XHJcbiAgbGV0IG1lbW9zTGVuZ3RoO1xyXG4gIGxldCBjcmVhdGVkRGF5cztcclxuICBpZiAobWVtb3MubGVuZ3RoKSB7XHJcbiAgICBtZW1vc0xlbmd0aCA9IG1lbW9zLmxlbmd0aCAtIDE7XHJcbiAgICBjcmVhdGVkRGF5cyA9IG1lbW9zID8gTWF0aC5jZWlsKChEYXRlLm5vdygpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKG1lbW9zW21lbW9zTGVuZ3RoXS5jcmVhdGVkQXQpKSAvIDEwMDAgLyAzNjAwIC8gMjQpIDogMDtcclxuICB9XHJcbiAgLy8gY29uc3QgZmlyc3RNZW1vID0gbWVtb3NbXSBhcyBNb2RlbC5NZW1vO1xyXG5cclxuXHJcbiAgY29uc3QgW3Nob3VsZFNob3dQb3B1cEJ0bnMsIHNldFNob3VsZFNob3dQb3B1cEJ0bnNdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICBjb25zdCBoYW5kbGVVc2VybmFtZUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgbG9jYXRpb25TZXJ2aWNlLnB1c2hIaXN0b3J5KFwiL1wiKTtcclxuICAgIGxvY2F0aW9uU2VydmljZS5jbGVhclF1ZXJ5KCk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBoYW5kbGVQb3B1cEJ0bkNsaWNrID0gKCkgPT4ge1xyXG4gICAgY29uc3Qgc2lkZWJhckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5tZW1vcy1zaWRlYmFyLXdyYXBwZXJcIikgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCBwb3B1cEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5tZW51LWJ0bnMtcG9wdXBcIikgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBwb3B1cEVsLnN0eWxlLnRvcCA9IDcwIC0gc2lkZWJhckVsLnNjcm9sbFRvcCArIFwicHhcIjtcclxuICAgIHNldFNob3VsZFNob3dQb3B1cEJ0bnModHJ1ZSk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwidXNlci1iYW5uZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXNlcmluZm8taGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInVzZXJuYW1lLXRleHRcIiBvbkNsaWNrPXtoYW5kbGVVc2VybmFtZUNsaWNrfT5cclxuICAgICAgICAgIHt1c2VybmFtZX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYWN0aW9uLWJ0biBtZW51LXBvcHVwLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZVBvcHVwQnRuQ2xpY2t9PlxyXG4gICAgICAgICAgPGltZyBzcmM9e21vcmV9IGNsYXNzTmFtZT1cImljb24taW1nXCIgLz5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPE1lbnVCdG5zUG9wdXAgc2hvd25TdGF0dXM9e3Nob3VsZFNob3dQb3B1cEJ0bnN9IHNldFNob3duU3RhdHVzPXtzZXRTaG91bGRTaG93UG9wdXBCdG5zfSAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF0dXMtdGV4dC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0YXR1cy10ZXh0IG1lbW9zLXRleHRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFtb3VudC10ZXh0XCI+e21lbW9zLmxlbmd0aH08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0eXBlLXRleHRcIj5NRU1PPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhdHVzLXRleHQgdGFncy10ZXh0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJhbW91bnQtdGV4dFwiPnt0YWdzLmxlbmd0aH08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0eXBlLXRleHRcIj5UQUc8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF0dXMtdGV4dCBkdXJhdGlvbi10ZXh0XCIgb25DbGljaz17KCkgPT4gc2hvd0RhaWx5TWVtb0RpYXJ5RGlhbG9nKCl9PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYW1vdW50LXRleHRcIj57Y3JlYXRlZERheXN9PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidHlwZS10ZXh0XCI+REFZPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBVc2VyQmFubmVyO1xyXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB1c2VUb2dnbGUgZnJvbSBcIi4uLy4uL2hvb2tzL3VzZVRvZ2dsZVwiO1xyXG5pbXBvcnQgXCIuLi8uLi9sZXNzL2NvbW1vbi9zZWxlY3Rvci5sZXNzXCI7XHJcbi8vIGltcG9ydCBhcnJvd0xlZnQgZnJvbSAnLi4vLi4vaWNvbnMvYXJyb3ctbGVmdC5zdmcnO1xyXG5pbXBvcnQgYXJyb3dSaWdodCBmcm9tICcuLi8uLi9pY29ucy9hcnJvdy1yaWdodC5zdmcnO1xyXG5cclxuaW50ZXJmYWNlIFRWT2JqZWN0IHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFByb3BzIHtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBkYXRhU291cmNlOiBUVk9iamVjdFtdO1xyXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZD86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xyXG59XHJcblxyXG5jb25zdCBudWxsSXRlbSA9IHtcclxuICB0ZXh0OiBcIlNFTEVDVFwiLFxyXG4gIHZhbHVlOiBcIlwiLFxyXG59O1xyXG5cclxuY29uc3QgU2VsZWN0b3I6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcclxuICBjb25zdCB7IGNsYXNzTmFtZSwgZGF0YVNvdXJjZSwgaGFuZGxlVmFsdWVDaGFuZ2VkLCB2YWx1ZSB9ID0gcHJvcHM7XHJcbiAgY29uc3QgW3Nob3dTZWxlY3RvciwgdG9nZ2xlU2VsZWN0b3JTdGF0dXNdID0gdXNlVG9nZ2xlKGZhbHNlKTtcclxuXHJcbiAgY29uc3Qgc2VsZXRvckVsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuXHJcbiAgbGV0IGN1cnJlbnRJdGVtID0gbnVsbEl0ZW07XHJcbiAgZm9yIChjb25zdCBkIG9mIGRhdGFTb3VyY2UpIHtcclxuICAgIGlmIChkLnZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICBjdXJyZW50SXRlbSA9IGQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmIChzaG93U2VsZWN0b3IpIHtcclxuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKCFzZWxldG9yRWxSZWYuY3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XHJcbiAgICAgICAgICB0b2dnbGVTZWxlY3RvclN0YXR1cyhmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrT3V0c2lkZSwge1xyXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXHJcbiAgICAgICAgb25jZTogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSwgW3Nob3dTZWxlY3Rvcl0pO1xyXG5cclxuICBjb25zdCBoYW5kbGVJdGVtQ2xpY2sgPSAoaXRlbTogVFZPYmplY3QpID0+IHtcclxuICAgIGlmIChoYW5kbGVWYWx1ZUNoYW5nZWQpIHtcclxuICAgICAgaGFuZGxlVmFsdWVDaGFuZ2VkKGl0ZW0udmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdG9nZ2xlU2VsZWN0b3JTdGF0dXMoZmFsc2UpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZUN1cnJlbnRWYWx1ZUNsaWNrID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRvZ2dsZVNlbGVjdG9yU3RhdHVzKCk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtgc2VsZWN0b3Itd3JhcHBlciAke2NsYXNzTmFtZSA/PyBcIlwifWB9IHJlZj17c2VsZXRvckVsUmVmfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2BjdXJyZW50LXZhbHVlLWNvbnRhaW5lciAke3Nob3dTZWxlY3RvciA/IFwiYWN0aXZlXCIgOiBcIlwifWB9IG9uQ2xpY2s9e2hhbmRsZUN1cnJlbnRWYWx1ZUNsaWNrfT5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2YWx1ZS10ZXh0XCI+e2N1cnJlbnRJdGVtLnRleHR9PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFycm93LXRleHRcIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Fycm93UmlnaHR9IC8+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgaXRlbXMtd3JhcHBlciAke3Nob3dTZWxlY3RvciA/IFwiXCIgOiBcImhpZGRlblwifWB9PlxyXG4gICAgICAgIHtkYXRhU291cmNlLm1hcCgoZCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YGl0ZW0tY29udGFpbmVyICR7ZC52YWx1ZSA9PT0gdmFsdWUgPyBcInNlbGVjdGVkXCIgOiBcIlwifWB9XHJcbiAgICAgICAgICAgICAga2V5PXtkLnZhbHVlfVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIGhhbmRsZUl0ZW1DbGljayhkKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge2QudGV4dH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdG9yKTtcclxuIiwiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgbWVtb1NlcnZpY2UsIHF1ZXJ5U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBjaGVja1Nob3VsZFNob3dNZW1vV2l0aEZpbHRlcnMsIGZpbHRlckNvbnN0cywgZ2V0RGVmYXVsdEZpbHRlciwgcmVsYXRpb25Db25zdHMgfSBmcm9tIFwiLi4vaGVscGVycy9maWx0ZXJcIjtcclxuaW1wb3J0IHVzZUxvYWRpbmcgZnJvbSBcIi4uL2hvb2tzL3VzZUxvYWRpbmdcIjtcclxuaW1wb3J0IHsgc2hvd0RpYWxvZyB9IGZyb20gXCIuL0RpYWxvZ1wiO1xyXG5pbXBvcnQgU2VsZWN0b3IgZnJvbSBcIi4vY29tbW9uL1NlbGVjdG9yXCI7XHJcbmltcG9ydCBcIi4uL2xlc3MvY3JlYXRlLXF1ZXJ5LWRpYWxvZy5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTm90aWNlIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5pbXBvcnQgY2xvc2UgZnJvbSAnLi4vaWNvbnMvY2xvc2Uuc3ZnJztcclxuXHJcbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIERpYWxvZ1Byb3BzIHtcclxuICBxdWVyeUlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5jb25zdCBDcmVhdGVRdWVyeURpYWxvZzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xyXG4gIGNvbnN0IHsgZGVzdHJveSwgcXVlcnlJZCB9ID0gcHJvcHM7XHJcblxyXG4gIGNvbnN0IFt0aXRsZSwgc2V0VGl0bGVdID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcclxuICBjb25zdCBbZmlsdGVycywgc2V0RmlsdGVyc10gPSB1c2VTdGF0ZTxGaWx0ZXJbXT4oW10pO1xyXG4gIGNvbnN0IHJlcXVlc3RTdGF0ZSA9IHVzZUxvYWRpbmcoZmFsc2UpO1xyXG5cclxuICBjb25zdCBzaG93bk1lbW9MZW5ndGggPSBtZW1vU2VydmljZS5nZXRTdGF0ZSgpLm1lbW9zLmZpbHRlcigobWVtbykgPT4ge1xyXG4gICAgcmV0dXJuIGNoZWNrU2hvdWxkU2hvd01lbW9XaXRoRmlsdGVycyhtZW1vLCBmaWx0ZXJzKTtcclxuICB9KS5sZW5ndGg7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBxdWVyeVRlbXAgPSBxdWVyeVNlcnZpY2UuZ2V0UXVlcnlCeUlkKHF1ZXJ5SWQgPz8gXCJcIik7XHJcbiAgICBpZiAocXVlcnlUZW1wKSB7XHJcbiAgICAgIHNldFRpdGxlKHF1ZXJ5VGVtcC50aXRsZSk7XHJcbiAgICAgIGNvbnN0IHRlbXAgPSBKU09OLnBhcnNlKHF1ZXJ5VGVtcC5xdWVyeXN0cmluZyk7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRlbXApKSB7XHJcbiAgICAgICAgc2V0RmlsdGVycyh0ZW1wKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sIFtxdWVyeUlkXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZVRpdGxlSW5wdXRDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcclxuICAgIGNvbnN0IHRleHQgPSBlLnRhcmdldC52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICBzZXRUaXRsZSh0ZXh0KTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVTYXZlQnRuQ2xpY2sgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAoIXRpdGxlKSB7XHJcbiAgICAgIG5ldyBOb3RpY2UoXCJUSVRMRSBDQU5OT1QgQkUgTlVMTO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfWVsc2UgaWYoZmlsdGVycy5sZW5ndGggPT09IDApe1xyXG4gICAgICBuZXcgTm90aWNlKFwiRklMVEVSIENBTk5PVCBCRSBOVUxM77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHF1ZXJ5SWQpIHtcclxuICAgICAgICBjb25zdCBlZGl0ZWRRdWVyeSA9IGF3YWl0IHF1ZXJ5U2VydmljZS51cGRhdGVRdWVyeShxdWVyeUlkLCB0aXRsZSwgSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpO1xyXG4gICAgICAgIHF1ZXJ5U2VydmljZS5lZGl0UXVlcnkoZWRpdGVkUXVlcnkpO1xyXG4gICAgICAgIHF1ZXJ5U2VydmljZS5nZXRNeUFsbFF1ZXJpZXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IHF1ZXJ5U2VydmljZS5jcmVhdGVRdWVyeSh0aXRsZSwgSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpO1xyXG4gICAgICAgIHF1ZXJ5U2VydmljZS5wdXNoUXVlcnkocXVlcnkpO1xyXG4gICAgICAgIHF1ZXJ5U2VydmljZS5nZXRNeUFsbFF1ZXJpZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICBuZXcgTm90aWNlKGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgZGVzdHJveSgpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZUFkZEZpbHRlckJlbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBsYXN0RmlsdGVyID0gZmlsdGVyc1tmaWx0ZXJzLmxlbmd0aCAtIDFdO1xyXG4gICAgICBpZiAobGFzdEZpbHRlci52YWx1ZS52YWx1ZSA9PT0gXCJcIikge1xyXG4gICAgICAgIG5ldyBOb3RpY2UoXCLlhYjlrozlloTkuIrkuIDkuKrov4fmu6TlmajlkKdcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsdGVycyhbLi4uZmlsdGVycywgZ2V0RGVmYXVsdEZpbHRlcigpXSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRmlsdGVyQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGluZGV4OiBudW1iZXIsIGZpbHRlcjogRmlsdGVyKSA9PiB7XHJcbiAgICBzZXRGaWx0ZXJzKChmaWx0ZXJzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRlbXAgPSBbLi4uZmlsdGVyc107XHJcbiAgICAgIHRlbXBbaW5kZXhdID0gZmlsdGVyO1xyXG4gICAgICByZXR1cm4gdGVtcDtcclxuICAgIH0pO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRmlsdGVyUmVtb3ZlID0gdXNlQ2FsbGJhY2soKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIHNldEZpbHRlcnMoKGZpbHRlcnMpID0+IHtcclxuICAgICAgY29uc3QgdGVtcCA9IGZpbHRlcnMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCk7XHJcbiAgICAgIHJldHVybiB0ZW1wO1xyXG4gICAgfSk7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWFsb2ctaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tdGV4dFwiPvCflJY8L3NwYW4+XHJcbiAgICAgICAgICB7cXVlcnlJZCA/IFwiRURJVCBRVUVSWVwiIDogXCJDUkVBVEUgUVVFUllcIn1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gY2xvc2UtYnRuXCIgb25DbGljaz17ZGVzdHJveX0+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtjbG9zZX0gLz5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWl0ZW0tY29udGFpbmVyIGlucHV0LWZvcm0tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPlRJVExFPC9zcGFuPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzTmFtZT1cInRpdGxlLWlucHV0XCIgdHlwZT1cInRleHRcIiB2YWx1ZT17dGl0bGV9IG9uQ2hhbmdlPXtoYW5kbGVUaXRsZUlucHV0Q2hhbmdlfSAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1pdGVtLWNvbnRhaW5lciBmaWx0ZXItZm9ybS1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+RklMVEVSPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJzLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAge2ZpbHRlcnMubWFwKChmLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8TWVtb0ZpbHRlcklucHV0ZXJcclxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICBmaWx0ZXI9e2Z9XHJcbiAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbHRlckNoYW5nZT17aGFuZGxlRmlsdGVyQ2hhbmdlfVxyXG4gICAgICAgICAgICAgICAgICBoYW5kbGVGaWx0ZXJSZW1vdmU9e2hhbmRsZUZpbHRlclJlbW92ZX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3JlYXRlLWZpbHRlci1idG5cIiBvbkNsaWNrPXtoYW5kbGVBZGRGaWx0ZXJCZW5DbGlja30+XHJcbiAgICAgICAgICAgICAgQUREIEZJTFRFUiBURVJNU1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWFsb2ctZm9vdGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgdGlwLXRleHQgJHtmaWx0ZXJzLmxlbmd0aCA9PT0gMCAmJiBcImhpZGRlblwifWB9PlxyXG4gICAgICAgICAgICBNQVRDSCBNZW1vIDxzdHJvbmc+e3Nob3duTWVtb0xlbmd0aH08L3N0cm9uZz4gVElNRVNcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPXtgYnRuIHNhdmUtYnRuICR7cmVxdWVzdFN0YXRlLmlzTG9hZGluZyA/IFwicmVxdWVzdGluZ1wiIDogXCJcIn1gfSBvbkNsaWNrPXtoYW5kbGVTYXZlQnRuQ2xpY2t9PlxyXG4gICAgICAgICAgICBTQVZFXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuaW50ZXJmYWNlIE1lbW9GaWx0ZXJJbnB1dGVyUHJvcHMge1xyXG4gIGluZGV4OiBudW1iZXI7XHJcbiAgZmlsdGVyOiBGaWx0ZXI7XHJcbiAgaGFuZGxlRmlsdGVyQ2hhbmdlOiAoaW5kZXg6IG51bWJlciwgZmlsdGVyOiBGaWx0ZXIpID0+IHZvaWQ7XHJcbiAgaGFuZGxlRmlsdGVyUmVtb3ZlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcclxufVxyXG5cclxuY29uc3QgRmlsdGVySW5wdXRlcjogUmVhY3QuRkM8TWVtb0ZpbHRlcklucHV0ZXJQcm9wcz4gPSAocHJvcHM6IE1lbW9GaWx0ZXJJbnB1dGVyUHJvcHMpID0+IHtcclxuICBjb25zdCB7IGluZGV4LCBmaWx0ZXIsIGhhbmRsZUZpbHRlckNoYW5nZSwgaGFuZGxlRmlsdGVyUmVtb3ZlIH0gPSBwcm9wcztcclxuICBjb25zdCB7IHR5cGUgfSA9IGZpbHRlcjtcclxuICBjb25zdCBbaW5wdXRFbGVtZW50cywgc2V0SW5wdXRFbGVtZW50c10gPSB1c2VTdGF0ZTxKU1guRWxlbWVudD4oPD48Lz4pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgbGV0IG9wZXJhdG9yRWxlbWVudCA9IDw+PC8+O1xyXG4gICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlckNvbnN0cykuaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgb3BlcmF0b3JFbGVtZW50ID0gKFxyXG4gICAgICAgIDxTZWxlY3RvclxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwib3BlcmF0b3Itc2VsZWN0b3JcIlxyXG4gICAgICAgICAgZGF0YVNvdXJjZT17T2JqZWN0LnZhbHVlcyhmaWx0ZXJDb25zdHNbdHlwZSBhcyBGaWx0ZXJUeXBlXS5vcGVyYXRvcnMpfVxyXG4gICAgICAgICAgdmFsdWU9e2ZpbHRlci52YWx1ZS5vcGVyYXRvcn1cclxuICAgICAgICAgIGhhbmRsZVZhbHVlQ2hhbmdlZD17aGFuZGxlT3BlcmF0b3JDaGFuZ2V9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgdmFsdWVFbGVtZW50ID0gPD48Lz47XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBcIlRZUEVcIjoge1xyXG4gICAgICAgIHZhbHVlRWxlbWVudCA9IChcclxuICAgICAgICAgIDxTZWxlY3RvclxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ2YWx1ZS1zZWxlY3RvclwiXHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlckNvbnN0c1tcIlRZUEVcIl0udmFsdWVzfVxyXG4gICAgICAgICAgICB2YWx1ZT17ZmlsdGVyLnZhbHVlLnZhbHVlfVxyXG4gICAgICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZWQ9e2hhbmRsZVZhbHVlQ2hhbmdlfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgXCJUQUdcIjoge1xyXG4gICAgICAgIHZhbHVlRWxlbWVudCA9IChcclxuICAgICAgICAgIDxTZWxlY3RvclxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ2YWx1ZS1zZWxlY3RvclwiXHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U9e21lbW9TZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLmdldFN0YXRlKClcclxuICAgICAgICAgICAgICAudGFncy5zb3J0KClcclxuICAgICAgICAgICAgICAubWFwKCh0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0ZXh0OiB0LCB2YWx1ZTogdCB9O1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB2YWx1ZT17ZmlsdGVyLnZhbHVlLnZhbHVlfVxyXG4gICAgICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZWQ9e2hhbmRsZVZhbHVlQ2hhbmdlfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgXCJURVhUXCI6IHtcclxuICAgICAgICB2YWx1ZUVsZW1lbnQgPSAoXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ2YWx1ZS1pbnB1dGVyXCJcclxuICAgICAgICAgICAgdmFsdWU9e2ZpbHRlci52YWx1ZS52YWx1ZX1cclxuICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgIGhhbmRsZVZhbHVlQ2hhbmdlKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRJbnB1dEVsZW1lbnRzKFxyXG4gICAgICA8PlxyXG4gICAgICAgIHtvcGVyYXRvckVsZW1lbnR9XHJcbiAgICAgICAge3ZhbHVlRWxlbWVudH1cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH0sIFt0eXBlLCBmaWx0ZXJdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlUmVsYXRpb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcclxuICAgICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmIChbXCJBTkRcIiwgXCJPUlwiXS5pbmNsdWRlcyh2YWx1ZSkpIHtcclxuICAgICAgICBoYW5kbGVGaWx0ZXJDaGFuZ2UoaW5kZXgsIHtcclxuICAgICAgICAgIC4uLmZpbHRlcixcclxuICAgICAgICAgIHJlbGF0aW9uOiB2YWx1ZSBhcyBNZW1vRmlsdGVyUmFsYXRpb24sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBbZmlsdGVyXVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZVR5cGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcclxuICAgICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmIChmaWx0ZXIudHlwZSAhPT0gdmFsdWUpIHtcclxuICAgICAgICBjb25zdCBvcHMgPSBPYmplY3QudmFsdWVzKGZpbHRlckNvbnN0c1t2YWx1ZSBhcyBGaWx0ZXJUeXBlXS5vcGVyYXRvcnMpO1xyXG4gICAgICAgIGhhbmRsZUZpbHRlckNoYW5nZShpbmRleCwge1xyXG4gICAgICAgICAgLi4uZmlsdGVyLFxyXG4gICAgICAgICAgdHlwZTogdmFsdWUgYXMgRmlsdGVyVHlwZSxcclxuICAgICAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgICAgIG9wZXJhdG9yOiBvcHNbMF0udmFsdWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIFtmaWx0ZXJdXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlT3BlcmF0b3JDaGFuZ2UgPSB1c2VDYWxsYmFjayhcclxuICAgICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGhhbmRsZUZpbHRlckNoYW5nZShpbmRleCwge1xyXG4gICAgICAgIC4uLmZpbHRlcixcclxuICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgLi4uZmlsdGVyLnZhbHVlLFxyXG4gICAgICAgICAgb3BlcmF0b3I6IHZhbHVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIFtmaWx0ZXJdXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlVmFsdWVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcclxuICAgICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGhhbmRsZUZpbHRlckNoYW5nZShpbmRleCwge1xyXG4gICAgICAgIC4uLmZpbHRlcixcclxuICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgLi4uZmlsdGVyLnZhbHVlLFxyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgW2ZpbHRlcl1cclxuICApO1xyXG5cclxuICBjb25zdCBoYW5kbGVSZW1vdmVCdG5DbGljayA9ICgpID0+IHtcclxuICAgIGhhbmRsZUZpbHRlclJlbW92ZShpbmRleCk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1maWx0ZXItaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICB7aW5kZXggPiAwID8gKFxyXG4gICAgICAgIDxTZWxlY3RvclxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpb24tc2VsZWN0b3JcIlxyXG4gICAgICAgICAgZGF0YVNvdXJjZT17cmVsYXRpb25Db25zdHN9XHJcbiAgICAgICAgICB2YWx1ZT17ZmlsdGVyLnJlbGF0aW9ufVxyXG4gICAgICAgICAgaGFuZGxlVmFsdWVDaGFuZ2VkPXtoYW5kbGVSZWxhdGlvbkNoYW5nZX1cclxuICAgICAgICAvPlxyXG4gICAgICApIDogbnVsbH1cclxuICAgICAgPFNlbGVjdG9yXHJcbiAgICAgICAgY2xhc3NOYW1lPVwidHlwZS1zZWxlY3RvclwiXHJcbiAgICAgICAgZGF0YVNvdXJjZT17T2JqZWN0LnZhbHVlcyhmaWx0ZXJDb25zdHMpfVxyXG4gICAgICAgIHZhbHVlPXtmaWx0ZXIudHlwZX1cclxuICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZWQ9e2hhbmRsZVR5cGVDaGFuZ2V9XHJcbiAgICAgIC8+XHJcblxyXG4gICAgICB7aW5wdXRFbGVtZW50c31cclxuICAgICAgPGltZyBjbGFzc05hbWU9XCJyZW1vdmUtYnRuXCIgc3JjPXtjbG9zZX0gb25DbGljaz17aGFuZGxlUmVtb3ZlQnRuQ2xpY2t9IC8+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuY29uc3QgTWVtb0ZpbHRlcklucHV0ZXI6IFJlYWN0LkZDPE1lbW9GaWx0ZXJJbnB1dGVyUHJvcHM+ID0gbWVtbyhGaWx0ZXJJbnB1dGVyKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNob3dDcmVhdGVRdWVyeURpYWxvZyhxdWVyeUlkPzogc3RyaW5nKTogdm9pZCB7XHJcblxyXG4gIHNob3dEaWFsb2coXHJcbiAgICB7XHJcbiAgICAgIGNsYXNzTmFtZTogXCJjcmVhdGUtcXVlcnktZGlhbG9nXCIsXHJcbiAgICB9LFxyXG4gICAgQ3JlYXRlUXVlcnlEaWFsb2csXHJcbiAgICB7IHF1ZXJ5SWQgfVxyXG4gICk7XHJcbn1cclxuIiwiaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgdXNlVG9nZ2xlIGZyb20gXCIuLi9ob29rcy91c2VUb2dnbGVcIjtcclxuaW1wb3J0IHVzZUxvYWRpbmcgZnJvbSBcIi4uL2hvb2tzL3VzZUxvYWRpbmdcIjtcclxuaW1wb3J0IE9ubHkgZnJvbSBcIi4vY29tbW9uL09ubHlXaGVuXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xyXG5pbXBvcnQgeyBsb2NhdGlvblNlcnZpY2UsIHF1ZXJ5U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgc2hvd0NyZWF0ZVF1ZXJ5RGlhbG9nIGZyb20gXCIuL0NyZWF0ZVF1ZXJ5RGlhbG9nXCI7XHJcbmltcG9ydCBcIi4uL2xlc3MvcXVlcnktbGlzdC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IG1vcmUgZnJvbSAnLi4vaWNvbnMvbW9yZS5zdmcnO1xyXG5pbXBvcnQgbW9yZVdoaXRlIGZyb20gJy4uL2ljb25zL21vcmUtd2hpdGUuc3ZnJztcclxuaW1wb3J0IHsgTm90aWNlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge31cclxuXHJcbmNvbnN0IFF1ZXJ5TGlzdDogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIHF1ZXJ5U3RhdGU6IHsgcXVlcmllcyB9LFxyXG4gICAgbG9jYXRpb25TdGF0ZToge1xyXG4gICAgICBxdWVyeTogeyBmaWx0ZXIgfSxcclxuICAgIH0sXHJcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XHJcbiAgY29uc3QgbG9hZGluZ1N0YXRlID0gdXNlTG9hZGluZygpO1xyXG4gIGNvbnN0IHNvcnRlZFF1ZXJpZXMgPSBxdWVyaWVzXHJcbiAgICAuc29ydCgoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGIuY3JlYXRlZEF0KSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShhLmNyZWF0ZWRBdCkpXHJcbiAgICAuc29ydCgoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGIucGlubmVkQXQgPz8gMCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5waW5uZWRBdCA/PyAwKSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBxdWVyeVNlcnZpY2VcclxuICAgICAgLmdldE15QWxsUXVlcmllcygpXHJcbiAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgLy8gZG8gbnRoXHJcbiAgICAgIH0pXHJcbiAgICAgIC5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICBsb2FkaW5nU3RhdGUuc2V0RmluaXNoKCk7XHJcbiAgICAgIH0pO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwicXVlcmllcy13cmFwcGVyXCI+XHJcbiAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPlFVRVJZPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9eygpID0+IHNob3dDcmVhdGVRdWVyeURpYWxvZygpfT5cclxuICAgICAgICAgICtcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvcD5cclxuICAgICAgPE9ubHkgd2hlbj17bG9hZGluZ1N0YXRlLmlzU3VjY2VlZCAmJiBzb3J0ZWRRdWVyaWVzLmxlbmd0aCA9PT0gMH0+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjcmVhdGUtcXVlcnktYnRuLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17KCkgPT4gc2hvd0NyZWF0ZVF1ZXJ5RGlhbG9nKCl9PlxyXG4gICAgICAgICAgICBDUkVBVEUgRklMVEVSXHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvT25seT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJxdWVyaWVzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIHtzb3J0ZWRRdWVyaWVzLm1hcCgocSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIDxRdWVyeUl0ZW1Db250YWluZXIga2V5PXtxLmlkfSBxdWVyeT17cX0gaXNBY3RpdmU9e3EuaWQgPT09IGZpbHRlcn0gLz47XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmludGVyZmFjZSBRdWVyeUl0ZW1Db250YWluZXJQcm9wcyB7XHJcbiAgcXVlcnk6IE1vZGVsLlF1ZXJ5O1xyXG4gIGlzQWN0aXZlOiBib29sZWFuO1xyXG59XHJcblxyXG5jb25zdCBRdWVyeUl0ZW1Db250YWluZXI6IFJlYWN0LkZDPFF1ZXJ5SXRlbUNvbnRhaW5lclByb3BzPiA9IChwcm9wczogUXVlcnlJdGVtQ29udGFpbmVyUHJvcHMpID0+IHtcclxuICBjb25zdCB7IHF1ZXJ5LCBpc0FjdGl2ZSB9ID0gcHJvcHM7XHJcbiAgY29uc3QgW3Nob3dBY3Rpb25CdG5zLCB0b2dnbGVTaG93QWN0aW9uQnRuc10gPSB1c2VUb2dnbGUoZmFsc2UpO1xyXG4gIGNvbnN0IFtzaG93Q29uZmlybURlbGV0ZUJ0biwgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bl0gPSB1c2VUb2dnbGUoZmFsc2UpO1xyXG5cclxuICBjb25zdCBoYW5kbGVRdWVyeUNsaWNrID0gKCkgPT4ge1xyXG5cclxuICAgIGlmIChpc0FjdGl2ZSkge1xyXG4gICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0TWVtb0ZpbHRlcihcIlwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGlmICghW1wiL1wiLCBcIi9yZWN5Y2xlXCJdLmluY2x1ZGVzKGxvY2F0aW9uU2VydmljZS5nZXRTdGF0ZSgpLnBhdGhuYW1lKSkge1xyXG4gICAgICAvLyAgIGxvY2F0aW9uU2VydmljZS5zZXRQYXRobmFtZShcIi9cIik7XHJcbiAgICAgIC8vIH1cclxuICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldE1lbW9GaWx0ZXIocXVlcnkuaWQpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZVNob3dBY3Rpb25CdG5DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0b2dnbGVTaG93QWN0aW9uQnRucygpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZUFjdGlvbkJ0bkNvbnRhaW5lck1vdXNlTGVhdmUgPSAoKSA9PiB7XHJcbiAgICB0b2dnbGVTaG93QWN0aW9uQnRucyhmYWxzZSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlRGVsZXRlTWVtb0NsaWNrID0gYXN5bmMgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBhd2FpdCBxdWVyeVNlcnZpY2UuZGVsZXRlUXVlcnkocXVlcnkuaWQpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgbmV3IE5vdGljZShlcnJvci5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bigpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZUVkaXRRdWVyeUJ0bkNsaWNrID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHNob3dDcmVhdGVRdWVyeURpYWxvZyhxdWVyeS5pZCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlUGluUXVlcnlCdG5DbGljayA9IGFzeW5jIChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHF1ZXJ5LnBpbm5lZEF0KSB7XHJcbiAgICAgICAgYXdhaXQgcXVlcnlTZXJ2aWNlLnVucGluUXVlcnkocXVlcnkuaWQpO1xyXG4gICAgICAgIHF1ZXJ5U2VydmljZS5lZGl0UXVlcnkoe1xyXG4gICAgICAgICAgLi4ucXVlcnksXHJcbiAgICAgICAgICBwaW5uZWRBdDogXCJcIixcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhd2FpdCBxdWVyeVNlcnZpY2UucGluUXVlcnkocXVlcnkuaWQpO1xyXG4gICAgICAgIHF1ZXJ5U2VydmljZS5lZGl0UXVlcnkoe1xyXG4gICAgICAgICAgLi4ucXVlcnksXHJcbiAgICAgICAgICBwaW5uZWRBdDogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcoRGF0ZS5ub3coKSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIC8vIGRvIG50aFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUJ0bk1vdXNlTGVhdmUgPSAoKSA9PiB7XHJcbiAgICB0b2dnbGVDb25maXJtRGVsZXRlQnRuKGZhbHNlKTtcclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2BxdWVyeS1pdGVtLWNvbnRhaW5lciAke2lzQWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiXCJ9YH0gb25DbGljaz17aGFuZGxlUXVlcnlDbGlja30+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxdWVyeS10ZXh0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbi10ZXh0XCI+Izwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInF1ZXJ5LXRleHRcIj57cXVlcnkudGl0bGV9PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRucy1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFjdGlvbi1idG4gdG9nZ2xlLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNob3dBY3Rpb25CdG5DbGlja30+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2lzQWN0aXZlID8gbW9yZVdoaXRlIDogbW9yZX0gLz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgYWN0aW9uLWJ0bnMtd3JhcHBlciAke3Nob3dBY3Rpb25CdG5zID8gXCJcIiA6IFwiaGlkZGVuXCJ9YH0gb25Nb3VzZUxlYXZlPXtoYW5kbGVBY3Rpb25CdG5Db250YWluZXJNb3VzZUxlYXZlfT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhY3Rpb24tYnRucy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG5cIiBvbkNsaWNrPXtoYW5kbGVQaW5RdWVyeUJ0bkNsaWNrfT5cclxuICAgICAgICAgICAgICAgIHtxdWVyeS5waW5uZWRBdCA/IFwiVU5QSU5cIiA6IFwiUElOXCJ9XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2hhbmRsZUVkaXRRdWVyeUJ0bkNsaWNrfT5cclxuICAgICAgICAgICAgICAgIEVESVRcclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGJ0biBkZWxldGUtYnRuICR7c2hvd0NvbmZpcm1EZWxldGVCdG4gPyBcImZpbmFsLWNvbmZpcm1cIiA6IFwiXCJ9YH1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZURlbGV0ZU1lbW9DbGlja31cclxuICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlRGVsZXRlQnRuTW91c2VMZWF2ZX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7c2hvd0NvbmZpcm1EZWxldGVCdG4gPyBcIkNPTkZJUk3vvIFcIiA6IFwiREVMRVRFXCJ9XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBRdWVyeUxpc3Q7XHJcbiIsImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGFwcENvbnRleHQgZnJvbSBcIi4uL3N0b3Jlcy9hcHBDb250ZXh0XCI7XHJcbmltcG9ydCB7IGxvY2F0aW9uU2VydmljZSwgbWVtb1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHVzZVRvZ2dsZSBmcm9tIFwiLi4vaG9va3MvdXNlVG9nZ2xlXCI7XHJcbmltcG9ydCBPbmx5IGZyb20gXCIuL2NvbW1vbi9Pbmx5V2hlblwiO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uL2hlbHBlcnMvdXRpbHNcIjtcclxuaW1wb3J0IFwiLi4vbGVzcy90YWctbGlzdC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGFycm93UmlnaHQgZnJvbSBcIi4uL2ljb25zL2Fycm93LXJpZ2h0LnN2Z1wiXHJcblxyXG5pbnRlcmZhY2UgVGFnIHtcclxuICBrZXk6IHN0cmluZztcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgc3ViVGFnczogVGFnW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBQcm9wcyB7fVxyXG5cclxuY29uc3QgVGFnTGlzdDogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIGxvY2F0aW9uU3RhdGU6IHtcclxuICAgICAgcXVlcnk6IHsgdGFnOiB0YWdRdWVyeSB9LFxyXG4gICAgfSxcclxuICAgIG1lbW9TdGF0ZTogeyB0YWdzOiB0YWdzVGV4dCwgbWVtb3MgfSxcclxuICB9ID0gdXNlQ29udGV4dChhcHBDb250ZXh0KTtcclxuICBjb25zdCBbdGFncywgc2V0VGFnc10gPSB1c2VTdGF0ZTxUYWdbXT4oW10pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgbWVtb1NlcnZpY2UudXBkYXRlVGFnc1N0YXRlKCk7XHJcbiAgfSwgW21lbW9zXSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBzb3J0ZWRUYWdzID0gQXJyYXkuZnJvbSh0YWdzVGV4dCkuc29ydCgpO1xyXG4gICAgY29uc3Qgcm9vdDogS1ZPYmplY3Q8YW55PiA9IHtcclxuICAgICAgc3ViVGFnczogW10sXHJcbiAgICB9O1xyXG4gICAgZm9yIChjb25zdCB0YWcgb2Ygc29ydGVkVGFncykge1xyXG4gICAgICBjb25zdCBzdWJ0YWdzID0gdGFnLnNwbGl0KFwiL1wiKTtcclxuICAgICAgbGV0IHRlbXBPYmogPSByb290O1xyXG4gICAgICBsZXQgdGFnVGV4dCA9IFwiXCI7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3VidGFncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IHN1YnRhZ3NbaV07XHJcbiAgICAgICAgaWYgKGkgPT09IDApIHtcclxuICAgICAgICAgIHRhZ1RleHQgKz0ga2V5O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0YWdUZXh0ICs9IFwiL1wiICsga2V5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG9iaiA9IG51bGw7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgdCBvZiB0ZW1wT2JqLnN1YlRhZ3MpIHtcclxuICAgICAgICAgIGlmICh0LnRleHQgPT09IHRhZ1RleHQpIHtcclxuICAgICAgICAgICAgb2JqID0gdDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIW9iaikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgIHRleHQ6IHRhZ1RleHQsXHJcbiAgICAgICAgICAgIHN1YlRhZ3M6IFtdLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRlbXBPYmouc3ViVGFncy5wdXNoKG9iaik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0ZW1wT2JqID0gb2JqO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzZXRUYWdzKHJvb3Quc3ViVGFncyBhcyBUYWdbXSk7XHJcbiAgfSwgW3RhZ3NUZXh0XSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInRhZ3Mtd3JhcHBlclwiPlxyXG4gICAgICA8cCBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+VVNVQUxMWSBVU0VEIFRBR1M8L3A+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFncy1jb250YWluZXJcIj5cclxuICAgICAgICB7dGFncy5tYXAoKHQsIGlkeCkgPT4gKFxyXG4gICAgICAgICAgPFRhZ0l0ZW1Db250YWluZXIga2V5PXt0LnRleHQgKyBcIi1cIiArIGlkeH0gdGFnPXt0fSB0YWdRdWVyeT17dGFnUXVlcnl9IC8+XHJcbiAgICAgICAgKSl9XHJcbiAgICAgICAgPE9ubHkgd2hlbj17dGFncy5sZW5ndGggPCA1ICYmIG1lbW9TZXJ2aWNlLmluaXRpYWxpemVkfT5cclxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRhZy10aXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIElucHV0PHNwYW4gY2xhc3NOYW1lPVwiY29kZS10ZXh0XCI+I1RhZyA8L3NwYW4+dG8gY3JlYXRlIHRhZy4uLlxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvT25seT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuaW50ZXJmYWNlIFRhZ0l0ZW1Db250YWluZXJQcm9wcyB7XHJcbiAgdGFnOiBUYWc7XHJcbiAgdGFnUXVlcnk6IHN0cmluZztcclxufVxyXG5cclxuY29uc3QgVGFnSXRlbUNvbnRhaW5lcjogUmVhY3QuRkM8VGFnSXRlbUNvbnRhaW5lclByb3BzPiA9IChwcm9wczogVGFnSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XHJcbiAgY29uc3QgeyB0YWcsIHRhZ1F1ZXJ5IH0gPSBwcm9wcztcclxuICBjb25zdCBpc0FjdGl2ZSA9IHRhZ1F1ZXJ5ID09PSB0YWcudGV4dDtcclxuICBjb25zdCBoYXNTdWJUYWdzID0gdGFnLnN1YlRhZ3MubGVuZ3RoID4gMDtcclxuICBjb25zdCBbc2hvd1N1YlRhZ3MsIHRvZ2dsZVN1YlRhZ3NdID0gdXNlVG9nZ2xlKGZhbHNlKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlVGFnQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAoaXNBY3RpdmUpIHtcclxuICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldFRhZ1F1ZXJ5KFwiXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXRpbHMuY29weVRleHRUb0NsaXBib2FyZChgIyR7dGFnLnRleHR9IGApO1xyXG4gICAgICBpZiAoIVtcIi9cIiwgXCIvcmVjeWNsZVwiXS5pbmNsdWRlcyhsb2NhdGlvblNlcnZpY2UuZ2V0U3RhdGUoKS5wYXRobmFtZSkpIHtcclxuICAgICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0UGF0aG5hbWUoXCIvXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRUYWdRdWVyeSh0YWcudGV4dCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgaGFuZGxlVG9nZ2xlQnRuQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdG9nZ2xlU3ViVGFncygpO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YHRhZy1pdGVtLWNvbnRhaW5lciAke2lzQWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiXCJ9YH0gb25DbGljaz17aGFuZGxlVGFnQ2xpY2t9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnLXRleHQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj4jPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGFnLXRleHRcIj57dGFnLmtleX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAge2hhc1N1YlRhZ3MgPyAoXHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGFjdGlvbi1idG4gdG9nZ2xlLWJ0biAke3Nob3dTdWJUYWdzID8gXCJzaG93blwiIDogXCJcIn1gfSBvbkNsaWNrPXtoYW5kbGVUb2dnbGVCdG5DbGlja30+XHJcbiAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17YXJyb3dSaWdodH0gLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAge2hhc1N1YlRhZ3MgPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2BzdWJ0YWdzLWNvbnRhaW5lciAke3Nob3dTdWJUYWdzID8gXCJcIiA6IFwiaGlkZGVuXCJ9YH0+XHJcbiAgICAgICAgICB7dGFnLnN1YlRhZ3MubWFwKChzdCwgaWR4KSA9PiAoXHJcbiAgICAgICAgICAgIDxUYWdJdGVtQ29udGFpbmVyIGtleT17c3QudGV4dCArIFwiLVwiICsgaWR4fSB0YWc9e3N0fSB0YWdRdWVyeT17dGFnUXVlcnl9IC8+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSA6IG51bGx9XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGFnTGlzdDtcclxuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tIFwiLi4vc3RvcmVzL2FwcENvbnRleHRcIjtcclxuaW1wb3J0IHsgZ2xvYmFsU3RhdGVTZXJ2aWNlLCBsb2NhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgREFJTFlfVElNRVNUQU1QIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29uc3RzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL3VzYWdlLWhlYXQtbWFwLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IGkxOG5leHQgZnJvbSBcImkxOG5leHRcIjtcclxuXHJcbmNvbnN0IHRhYmxlQ29uZmlnID0ge1xyXG4gIHdpZHRoOiAxMixcclxuICBoZWlnaHQ6IDcsXHJcbn07XHJcblxyXG5jb25zdCBnZXRJbml0aWFsVXNhZ2VTdGF0ID0gKHVzZWREYXlzQW1vdW50OiBudW1iZXIsIGJlZ2luRGF5VGltZXN0YW1wOiBudW1iZXIpOiBEYWlseVVzYWdlU3RhdFtdID0+IHtcclxuICBjb25zdCBpbml0aWFsVXNhZ2VTdGF0OiBEYWlseVVzYWdlU3RhdFtdID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdXNlZERheXNBbW91bnQ7IGkrKykge1xyXG4gICAgaW5pdGlhbFVzYWdlU3RhdC5wdXNoKHtcclxuICAgICAgdGltZXN0YW1wOiBiZWdpbkRheVRpbWVzdGFtcCArIERBSUxZX1RJTUVTVEFNUCAqIGksXHJcbiAgICAgIGNvdW50OiAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBpbml0aWFsVXNhZ2VTdGF0O1xyXG59O1xyXG5cclxuaW50ZXJmYWNlIERhaWx5VXNhZ2VTdGF0IHtcclxuICB0aW1lc3RhbXA6IG51bWJlcjtcclxuICBjb3VudDogbnVtYmVyO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge31cclxuXHJcbmNvbnN0IFVzYWdlSGVhdE1hcDogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHRvZGF5VGltZVN0YW1wID0gdXRpbHMuZ2V0RGF0ZVN0YW1wQnlEYXRlKERhdGUubm93KCkpO1xyXG4gIGNvbnN0IHRvZGF5RGF5ID0gbmV3IERhdGUodG9kYXlUaW1lU3RhbXApLmdldERheSgpIHx8IDc7XHJcbiAgY29uc3QgbnVsbENlbGwgPSBuZXcgQXJyYXkoNyAtIHRvZGF5RGF5KS5maWxsKDApO1xyXG4gIGNvbnN0IHVzZWREYXlzQW1vdW50ID0gKHRhYmxlQ29uZmlnLndpZHRoIC0gMSkgKiB0YWJsZUNvbmZpZy5oZWlnaHQgKyB0b2RheURheTtcclxuICBjb25zdCBiZWdpbkRheVRpbWVzdGFtcCA9IHV0aWxzLmdldERhdGVTdGFtcEJ5RGF0ZSh0b2RheVRpbWVTdGFtcCAtIHVzZWREYXlzQW1vdW50ICogREFJTFlfVElNRVNUQU1QKTtcclxuICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQoKS5zdWJ0cmFjdCh1c2VkRGF5c0Ftb3VudCwgJ2RheXMnKS5lbmRPZignZGF5Jyk7XHJcblxyXG4gIGNvbnN0IHtcclxuICAgIG1lbW9TdGF0ZTogeyBtZW1vcyB9LFxyXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xyXG4gIGNvbnN0IFthbGxTdGF0LCBzZXRBbGxTdGF0XSA9IHVzZVN0YXRlPERhaWx5VXNhZ2VTdGF0W10+KGdldEluaXRpYWxVc2FnZVN0YXQodXNlZERheXNBbW91bnQsIGJlZ2luRGF5VGltZXN0YW1wKSk7XHJcbiAgY29uc3QgW3BvcHVwU3RhdCwgc2V0UG9wdXBTdGF0XSA9IHVzZVN0YXRlPERhaWx5VXNhZ2VTdGF0IHwgbnVsbD4obnVsbCk7XHJcbiAgY29uc3QgW2N1cnJlbnRTdGF0LCBzZXRDdXJyZW50U3RhdF0gPSB1c2VTdGF0ZTxEYWlseVVzYWdlU3RhdCB8IG51bGw+KG51bGwpO1xyXG4gIGNvbnN0IGNvbnRhaW5lckVsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcclxuICBjb25zdCBwb3B1cFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdTdGF0OiBEYWlseVVzYWdlU3RhdFtdID0gZ2V0SW5pdGlhbFVzYWdlU3RhdCh1c2VkRGF5c0Ftb3VudCwgYmVnaW5EYXlUaW1lc3RhbXApO1xyXG4gICAgZm9yIChjb25zdCBtIG9mIG1lbW9zKSB7XHJcbiAgICAgIGNvbnN0IGNyZWF0aW9uRGF0ZSA9IG1vbWVudChtLmNyZWF0ZWRBdC5yZXBsYWNlQWxsKFwiL1wiLCBcIi1cIikpO1xyXG4gICAgICBjb25zdCBpbmRleCA9IGNyZWF0aW9uRGF0ZS5kaWZmKHN0YXJ0RGF0ZSwgJ2RheXMnKTtcclxuICAgICAgLy8gY29uc3QgaW5kZXggPSAodXRpbHMuZ2V0RGF0ZVN0YW1wQnlEYXRlKG0uY3JlYXRlZEF0KSAtIGJlZ2luRGF5VGltZXN0YW1wKSAvICgxMDAwICogMzYwMCAqIDI0KSAtIDE7XHJcbiAgICAgIC8vIGlmKGluZGV4ICE9IG5ld1N0YXQubGVuZ3RoKSB7IH1cclxuICAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBuZXdTdGF0Lmxlbmd0aCkge1xyXG4gICAgICAgIG5ld1N0YXRbaW5kZXhdLmNvdW50ICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHNldEFsbFN0YXQoWy4uLm5ld1N0YXRdKTtcclxuICB9LCBbbWVtb3NdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlVXNhZ2VTdGF0SXRlbU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQsIGl0ZW06IERhaWx5VXNhZ2VTdGF0KSA9PiB7XHJcbiAgICBzZXRQb3B1cFN0YXQoaXRlbSk7XHJcbiAgICBpZiAoIXBvcHVwUmVmLmN1cnJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgaXNNb2JpbGVWaWV3IH0gPSBnbG9iYWxTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKTtcclxuICAgIGNvbnN0IHRhcmdldEVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3Qgc2lkZWJhckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5tZW1vcy1zaWRlYmFyLXdyYXBwZXJcIikgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBwb3B1cFJlZi5jdXJyZW50LnN0eWxlLmxlZnQgPSB0YXJnZXRFbC5vZmZzZXRMZWZ0IC0gKGNvbnRhaW5lckVsUmVmLmN1cnJlbnQ/Lm9mZnNldExlZnQgPz8gMCkgKyBcInB4XCI7XHJcbiAgICBsZXQgdG9wVmFsdWUgPSB0YXJnZXRFbC5vZmZzZXRUb3A7XHJcbiAgICBpZiAoIWlzTW9iaWxlVmlldykge1xyXG4gICAgICB0b3BWYWx1ZSAtPSBzaWRlYmFyRWwuc2Nyb2xsVG9wO1xyXG4gICAgfVxyXG4gICAgcG9wdXBSZWYuY3VycmVudC5zdHlsZS50b3AgPSB0b3BWYWx1ZSArIFwicHhcIjtcclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZVVzYWdlU3RhdEl0ZW1Nb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgc2V0UG9wdXBTdGF0KG51bGwpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlVXNhZ2VTdGF0SXRlbUNsaWNrID0gdXNlQ2FsbGJhY2soKGl0ZW06IERhaWx5VXNhZ2VTdGF0KSA9PiB7XHJcbiAgICBpZiAobG9jYXRpb25TZXJ2aWNlLmdldFN0YXRlKCkucXVlcnkuZHVyYXRpb24/LmZyb20gPT09IGl0ZW0udGltZXN0YW1wKSB7XHJcbiAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRGcm9tQW5kVG9RdWVyeSgwLCAwKTtcclxuICAgICAgc2V0Q3VycmVudFN0YXQobnVsbCk7XHJcbiAgICB9IGVsc2UgaWYgKGl0ZW0uY291bnQgPiAwKSB7XHJcbiAgICAgIGlmICghW1wiL1wiLCBcIi9yZWN5Y2xlXCJdLmluY2x1ZGVzKGxvY2F0aW9uU2VydmljZS5nZXRTdGF0ZSgpLnBhdGhuYW1lKSkge1xyXG4gICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRQYXRobmFtZShcIi9cIik7XHJcbiAgICAgIH1cclxuICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldEZyb21BbmRUb1F1ZXJ5KGl0ZW0udGltZXN0YW1wLCB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUobW9tZW50KGl0ZW0udGltZXN0YW1wICsgREFJTFlfVElNRVNUQU1QKS5zdWJ0cmFjdCgxLCBcImRheXNcIikuZW5kT2YoJ2RheScpLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW06c3NcIikpKTtcclxuICAgICAgc2V0Q3VycmVudFN0YXQoaXRlbSk7XHJcbiAgICB9XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ1c2FnZS1oZWF0LW1hcC13cmFwcGVyXCIgcmVmPXtjb250YWluZXJFbFJlZn0+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF5LXRpcC10ZXh0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+e2kxOG5leHQudCgnd2Vla0RheXNTaG9ydCcsIHsgcmV0dXJuT2JqZWN0czogdHJ1ZSB9KVswXX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGlwLXRleHRcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGlwLXRleHRcIj57aTE4bmV4dC50KCd3ZWVrRGF5c1Nob3J0JywgeyByZXR1cm5PYmplY3RzOiB0cnVlIH0pWzJdfTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aXAtdGV4dFwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aXAtdGV4dFwiPntpMThuZXh0LnQoJ3dlZWtEYXlzU2hvcnQnLCB7IHJldHVybk9iamVjdHM6IHRydWUgfSlbNF19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+e2kxOG5leHQudCgnd2Vla0RheXNTaG9ydCcsIHsgcmV0dXJuT2JqZWN0czogdHJ1ZSB9KVs2XX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgey8qIHBvcHVwICovfVxyXG4gICAgICA8ZGl2IHJlZj17cG9wdXBSZWZ9IGNsYXNzTmFtZT17XCJ1c2FnZS1kZXRhaWwtY29udGFpbmVyIHBvcC11cCBcIiArIChwb3B1cFN0YXQgPyBcIlwiIDogXCJoaWRkZW5cIil9PlxyXG4gICAgICAgIHtwb3B1cFN0YXQ/LmNvdW50fSBtZW1vcyBvbiA8c3BhbiBjbGFzc05hbWU9XCJkYXRlLXRleHRcIj57bmV3IERhdGUocG9wdXBTdGF0Py50aW1lc3RhbXAgYXMgbnVtYmVyKS50b0RhdGVTdHJpbmcoKX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1c2FnZS1oZWF0LW1hcFwiPlxyXG4gICAgICAgIHthbGxTdGF0Lm1hcCgodiwgaSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY291bnQgPSB2LmNvdW50O1xyXG4gICAgICAgICAgY29uc3QgY29sb3JMZXZlbCA9XHJcbiAgICAgICAgICAgIGNvdW50IDw9IDBcclxuICAgICAgICAgICAgICA/IFwiXCJcclxuICAgICAgICAgICAgICA6IGNvdW50IDw9IDFcclxuICAgICAgICAgICAgICA/IFwic3RhdC1kYXktTDEtYmdcIlxyXG4gICAgICAgICAgICAgIDogY291bnQgPD0gMlxyXG4gICAgICAgICAgICAgID8gXCJzdGF0LWRheS1MMi1iZ1wiXHJcbiAgICAgICAgICAgICAgOiBjb3VudCA8PSA0XHJcbiAgICAgICAgICAgICAgPyBcInN0YXQtZGF5LUwzLWJnXCJcclxuICAgICAgICAgICAgICA6IFwic3RhdC1kYXktTDQtYmdcIjtcclxuXHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHN0YXQtY29udGFpbmVyICR7Y29sb3JMZXZlbH0gJHtjdXJyZW50U3RhdCA9PT0gdiA/IFwiY3VycmVudFwiIDogXCJcIn0gJHtcclxuICAgICAgICAgICAgICAgIHRvZGF5VGltZVN0YW1wID09PSB2LnRpbWVzdGFtcCA/IFwidG9kYXlcIiA6IFwiXCJcclxuICAgICAgICAgICAgICB9YH1cclxuICAgICAgICAgICAgICBrZXk9e2l9XHJcbiAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoZSkgPT4gaGFuZGxlVXNhZ2VTdGF0SXRlbU1vdXNlRW50ZXIoZSwgdil9XHJcbiAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXtoYW5kbGVVc2FnZVN0YXRJdGVtTW91c2VMZWF2ZX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVVc2FnZVN0YXRJdGVtQ2xpY2sodil9XHJcbiAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIHtudWxsQ2VsbC5tYXAoKHYsIGkpID0+IChcclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInN0YXQtY29udGFpbmVyIG51bGxcIiBrZXk9e2l9Pjwvc3Bhbj5cclxuICAgICAgICApKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVXNhZ2VIZWF0TWFwOyIsImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgeyBTSE9XX1NJREVSQkFSX01PQklMRV9DTEFTU05BTUUgfSBmcm9tIFwiLi4vaGVscGVycy9jb25zdHNcIjtcclxuaW1wb3J0IHsgZ2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCBVc2VyQmFubmVyIGZyb20gXCIuL1VzZXJCYW5uZXJcIjtcclxuaW1wb3J0IFF1ZXJ5TGlzdCBmcm9tIFwiLi9RdWVyeUxpc3RcIjtcclxuaW1wb3J0IFRhZ0xpc3QgZnJvbSBcIi4vVGFnTGlzdFwiO1xyXG5pbXBvcnQgVXNhZ2VIZWF0TWFwIGZyb20gXCIuL1VzYWdlSGVhdE1hcFwiO1xyXG5pbXBvcnQgXCIuLi9sZXNzL3NpZGVyYmFyLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHt9XHJcblxyXG5jb25zdCBTaWRlYmFyOiBSZWFjdC5GQzxQcm9wcz4gPSAoKSA9PiB7XHJcbiAgY29uc3Qge1xyXG4gICAgbG9jYXRpb25TdGF0ZSxcclxuICAgIGdsb2JhbFN0YXRlOiB7IGlzTW9iaWxlVmlldywgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3IH0sXHJcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XHJcbiAgY29uc3Qgd3JhcHBlckVsUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50PihudWxsKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlT2ZXcmFwcGVyID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICByZXR1cm4gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IHNpZGVyYmFyU2hvd24gPSBnbG9iYWxTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKS5zaG93U2lkZXJiYXJJbk1vYmlsZVZpZXc7XHJcblxyXG4gICAgICBpZiAoIXNpZGVyYmFyU2hvd24pIHtcclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrT3V0c2lkZU9mV3JhcHBlciwge1xyXG4gICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghd3JhcHBlckVsUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xyXG4gICAgICAgIGlmICh3cmFwcGVyRWxSZWYuY3VycmVudD8ucGFyZW50Tm9kZT8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XHJcbiAgICAgICAgICBpZiAoc2lkZXJiYXJTaG93bikge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRTaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcoZmFsc2UpO1xyXG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGlja091dHNpZGVPZldyYXBwZXIsIHtcclxuICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0U2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3KGZhbHNlKTtcclxuICB9LCBbbG9jYXRpb25TdGF0ZV0pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHNob3dTaWRlcmJhckluTW9iaWxlVmlldykge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoU0hPV19TSURFUkJBUl9NT0JJTEVfQ0xBU1NOQU1FKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShTSE9XX1NJREVSQkFSX01PQklMRV9DTEFTU05BTUUpO1xyXG4gICAgfVxyXG4gIH0sIFtzaG93U2lkZXJiYXJJbk1vYmlsZVZpZXddKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmIChpc01vYmlsZVZpZXcgJiYgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3KSB7XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2tPdXRzaWRlT2ZXcmFwcGVyLCB7XHJcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSwgW2lzTW9iaWxlVmlldywgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3XSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8YXNpZGUgY2xhc3NOYW1lPVwibWVtb3Mtc2lkZWJhci13cmFwcGVyXCIgcmVmPXt3cmFwcGVyRWxSZWZ9PlxyXG4gICAgICA8VXNlckJhbm5lciAvPlxyXG4gICAgICA8VXNhZ2VIZWF0TWFwIC8+XHJcbiAgICAgIDxRdWVyeUxpc3QgLz5cclxuICAgICAgPFRhZ0xpc3QgLz5cclxuICAgIDwvYXNpZGU+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFNpZGViYXI7XHJcbiIsImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuLy8gaW1wb3J0IHsgbG9jYXRpb25TZXJ2aWNlLCB1c2VyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBob21lUm91dGVyU3dpdGNoIH0gZnJvbSBcIi4uL3JvdXRlcnNcIjtcclxuaW1wb3J0IGFwcENvbnRleHQgZnJvbSBcIi4uL3N0b3Jlcy9hcHBDb250ZXh0XCI7XHJcbmltcG9ydCBTaWRlYmFyIGZyb20gXCIuLi9jb21wb25lbnRzL1NpZGViYXJcIjtcclxuaW1wb3J0IHVzZUxvYWRpbmcgZnJvbSBcIi4uL2hvb2tzL3VzZUxvYWRpbmdcIjtcclxuaW1wb3J0IFwiLi4vbGVzcy9ob21lLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgdXNlUmVmcmVzaCBmcm9tIFwiLi4vaG9va3MvdXNlUmVmcmVzaFwiO1xyXG5pbXBvcnQgeyBNRU1PU19WSUVXX1RZUEUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGRhaWx5Tm90ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuZnVuY3Rpb24gSG9tZSgpIHtcclxuICBjb25zdCB7XHJcbiAgICBsb2NhdGlvblN0YXRlOiB7IHBhdGhuYW1lIH0sXHJcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XHJcbiAgLy8gY29uc3QgeyBhcHAgfSA9IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCk7XHJcbiAgY29uc3QgbG9hZGluZ1N0YXRlID0gdXNlTG9hZGluZygpO1xyXG4gIC8vIGNvbnN0IHJlZnJlc2ggPSB1c2VSZWZyZXNoKCk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAvLyBjb25zdCB7IHVzZXIgfSA9IHVzZXJTZXJ2aWNlLmdldFN0YXRlKCk7XHJcbiAgICAvLyBpZiAoIXVzZXIpIHtcclxuICAgIC8vICAgdXNlclNlcnZpY2VcclxuICAgIC8vICAgICAuZG9TaWduSW4oKVxyXG4gICAgLy8gICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAvLyBkbyBudGhcclxuICAgIC8vICAgICB9KVxyXG4gICAgLy8gICAgIC5maW5hbGx5KCgpID0+IHtcclxuICAgIC8vICAgICAgIC8vIGlmICh1c2VyU2VydmljZS5nZXRTdGF0ZSgpLnVzZXIpIHtcclxuICAgIC8vICAgICAgICAgbG9hZGluZ1N0YXRlLnNldEZpbmlzaCgpO1xyXG4gICAgLy8gICAgICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgICAgIC8vICAgbG9jYXRpb25TZXJ2aWNlLnJlcGxhY2VIaXN0b3J5KFwiL3NpZ25pblwiKTtcclxuICAgIC8vICAgICAgIC8vIH1cclxuICAgIC8vICAgICB9KTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIGxvYWRpbmdTdGF0ZS5zZXRGaW5pc2goKTtcclxuICAgICAgXHJcbiAgICAvLyB9XHJcbiAgfSwgW10pO1xyXG5cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIHsvKiB7bG9hZGluZ1N0YXRlLmlzTG9hZGluZyA/IG51bGwgOiAoICovfVxyXG4gICAgICA8c2VjdGlvbiBpZD1cInBhZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgIDxTaWRlYmFyIC8+XHJcbiAgICAgICAgPG1haW4gY2xhc3NOYW1lPVwiY29udGVudC13cmFwcGVyXCI+e2hvbWVSb3V0ZXJTd2l0Y2gocGF0aG5hbWUpfTwvbWFpbj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICB7LyogKX0gKi99XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBIb21lO1xyXG4iLCIoKCkgPT4ge1xyXG4gIGlmICghU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsKSB7XHJcbiAgICBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VBbGwgPSBmdW5jdGlvbiAoc3RyOiBhbnksIG5ld1N0cjogYW55KSB7XHJcbiAgICAgIC8vIElmIGEgcmVnZXggcGF0dGVyblxyXG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHN0cikudG9Mb3dlckNhc2UoKSA9PT0gXCJbb2JqZWN0IHJlZ2V4cF1cIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcGxhY2Uoc3RyLCBuZXdTdHIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJZiBhIHN0cmluZ1xyXG4gICAgICByZXR1cm4gdGhpcy5yZXBsYWNlKG5ldyBSZWdFeHAoc3RyLCBcImdcIiksIG5ld1N0cik7XHJcbiAgICB9O1xyXG4gIH1cclxufSkoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG51bGw7XHJcbiIsImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG4vLyBpbXBvcnQgeyBob21lUm91dGVyU3dpdGNoIH0gZnJvbSBcIi4vcm91dGVyc1wiO1xyXG5pbXBvcnQgSG9tZSBmcm9tIFwiLi9wYWdlcy9Ib21lXCI7XHJcbmltcG9ydCB7IGdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzXCI7XHJcbmltcG9ydCBcIi4vbGVzcy9hcHAubGVzc1wiO1xyXG5pbXBvcnQgUHJvdmlkZXIgZnJvbSBcIi4vbGFicy9Qcm92aWRlclwiO1xyXG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tIFwiLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xyXG5pbXBvcnQgYXBwU3RvcmUgZnJvbSBcIi4vc3RvcmVzL2FwcFN0b3JlXCI7XHJcbmltcG9ydCBcIi4vaGVscGVycy9wb2x5ZmlsbFwiO1xyXG5pbXBvcnQgXCIuL2xlc3MvZ2xvYmFsLmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuZnVuY3Rpb24gU3RyaWN0QXBwKCl7XHJcbiAgcmV0dXJuIDxQcm92aWRlciBzdG9yZT17YXBwU3RvcmV9IGNvbnRleHQ9e2FwcENvbnRleHR9PjxBcHAgLz48L1Byb3ZpZGVyPlxyXG59XHJcblxyXG5mdW5jdGlvbiBBcHAoKSB7XHJcbiAgY29uc3Qge1xyXG4gICAgbG9jYXRpb25TdGF0ZTogeyBwYXRobmFtZSB9LFxyXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlV2luZG93UmVzaXplID0gKCkgPT4ge1xyXG4gICAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0SXNNb2JpbGVWaWV3KGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPD0gODc1KTtcclxuICAgIH07XHJcblxyXG4gICAgXHJcblxyXG4gICAgaGFuZGxlV2luZG93UmVzaXplKCk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgaGFuZGxlV2luZG93UmVzaXplKTtcclxuXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBoYW5kbGVXaW5kb3dSZXNpemUpO1xyXG4gICAgfTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiA8PjxIb21lIC8+PC8+O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTdHJpY3RBcHA7XHJcbiIsImltcG9ydCB7IFdvcmtzcGFjZUxlYWYsIEl0ZW1WaWV3LCBIb3ZlclBvcG92ZXIsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IE1FTU9TX1ZJRVdfVFlQRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XHJcblxyXG5pbXBvcnQgQXBwIGZyb20gXCIuL0FwcFwiO1xyXG5pbXBvcnQgdHlwZSBNZW1vc1BsdWdpbiBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgeyBkYWlseU5vdGVzU2VydmljZSwgbWVtb1NlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBnZXREYXRlRnJvbUZpbGUgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTWVtb3MgZXh0ZW5kcyBJdGVtVmlldyB7XHJcblx0cGx1Z2luOiBNZW1vc1BsdWdpbjtcclxuXHRob3ZlclBvcG92ZXI6IEhvdmVyUG9wb3ZlciB8IG51bGw7XHJcblx0cHJpdmF0ZSBtZW1vc0NvbXBvbmVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihsZWFmOiBXb3Jrc3BhY2VMZWFmLCBwbHVnaW46IE1lbW9zUGx1Z2luKSB7XHJcblx0XHRzdXBlcihsZWFmKTtcclxuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG5cdFx0XHJcblx0XHR0aGlzLm9uTWVtb3NTZXR0aW5nc1VwZGF0ZSA9IHRoaXMub25NZW1vc1NldHRpbmdzVXBkYXRlLmJpbmQodGhpcyk7XHJcblx0XHR0aGlzLm9uRmlsZUNyZWF0ZWQgPSB0aGlzLm9uRmlsZUNyZWF0ZWQuYmluZCh0aGlzKTtcclxuXHRcdHRoaXMub25GaWxlRGVsZXRlZCA9IHRoaXMub25GaWxlRGVsZXRlZC5iaW5kKHRoaXMpO1xyXG5cdFx0dGhpcy5vbkZpbGVNb2RpZmllZCA9IHRoaXMub25GaWxlTW9kaWZpZWQuYmluZCh0aGlzKTtcclxuXHJcblx0XHR0aGlzLnJlZ2lzdGVyRXZlbnQoXHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLmFwcC53b3Jrc3BhY2Uub24oXCJsYXlvdXQtY2hhbmdlXCIsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5tZW1vc0NvbXBvbmVudCkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKE1FTU9TX1ZJRVdfVFlQRSkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc3Qgc2lkZSA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKVswXS5nZXRSb290KCkuc2lkZTtcclxuXHRcdFx0XHRcdGNvbnN0IHNpZGViYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2W2RhdGEtdHlwZT0nbWVtb3NfdmlldyddIC52aWV3LWNvbnRlbnQgLm1lbW9zLXNpZGViYXItd3JhcHBlclwiKSBhcyBIVE1MRWxlbWVudDtcclxuXHRcdFx0XHRcdGNvbnN0IHBhZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2W2RhdGEtdHlwZT0nbWVtb3NfdmlldyddIC52aWV3LWNvbnRlbnQgLmNvbnRlbnQtd3JhcHBlclwiKSBhcyBIVE1MRWxlbWVudDtcclxuXHRcdFx0XHRcdGlmKCBzaWRlICE9PSB1bmRlZmluZWQgJiYgKHNpZGUgPT09IFwibGVmdFwiIHx8IHNpZGUgPT09IFwicmlnaHRcIikpe1xyXG5cdFx0XHRcdFx0XHRpZighc2lkZWJhcj8uY2xhc3NOYW1lLmNvbnRhaW5zKFwibWVtb3Mtc2lkZWJhci13cmFwcGVyLWRpc3BsYXlcIikgJiYgcGFnZSAhPT0gdW5kZWZpbmVkKXtcclxuXHRcdFx0XHRcdFx0XHRzaWRlYmFyLmFkZENsYXNzKFwibWVtb3Mtc2lkZWJhci13cmFwcGVyLWRpc3BsYXlcIik7XHJcblx0XHRcdFx0XHRcdFx0cGFnZS5jbGFzc05hbWUgPSBcImNvbnRlbnQtd3JhcHBlci1wYWRkaW5nLWZpeFwiO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9ZWxzZSB7XHJcblx0XHRcdFx0XHRcdGlmKHNpZGViYXI/LmNsYXNzTGlzdC5jb250YWlucyhcIm1lbW9zLXNpZGViYXItd3JhcHBlci1kaXNwbGF5XCIpICYmIHBhZ2UgIT09IHVuZGVmaW5lZCl7XHJcblx0XHRcdFx0XHRcdFx0c2lkZWJhci5yZW1vdmVDbGFzcyhcIm1lbW9zLXNpZGViYXItd3JhcHBlci1kaXNwbGF5XCIpO1xyXG5cdFx0XHRcdFx0XHRcdHBhZ2UuY2xhc3NOYW1lID0gXCJjb250ZW50LXdyYXBwZXJcIjtcclxuXHRcdFx0XHRcdH1cdFxyXG5cdFx0XHRcdH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuXHRcdHRoaXMucmVnaXN0ZXJFdmVudChcclxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuXHRcdFx0KDxhbnk+dGhpcy5hcHAud29ya3NwYWNlKS5vbihcclxuXHRcdFx0XHRcIm9ic2lkaWFuLW1lbW9zOnNldHRpbmdzLXVwZGF0ZWRcIixcclxuXHRcdFx0XHR0aGlzLm9uTWVtb3NTZXR0aW5nc1VwZGF0ZVxyXG5cdFx0XHQpXHJcblx0XHQpO1xyXG5cclxuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC52YXVsdC5vbihcImNyZWF0ZVwiLCB0aGlzLm9uRmlsZUNyZWF0ZWQpKTtcclxuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC52YXVsdC5vbihcImRlbGV0ZVwiLCB0aGlzLm9uRmlsZURlbGV0ZWQpKTtcclxuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC52YXVsdC5vbihcIm1vZGlmeVwiLCB0aGlzLm9uRmlsZU1vZGlmaWVkKSk7XHJcblxyXG5cclxuXHRcdC8vIHRoaXMucGx1Z2luLnNldHRpbmdzID0gbnVsbDtcclxuXHRcdC8vIFx0cGx1Z2luLnNldHRpbmdzLnN1YnNjcmliZSgodmFsOmFueSkgPT4ge1xyXG5cdFx0Ly8gXHR0aGlzLnBsdWdpbi5zZXR0aW5ncyA9IHZhbDtcclxuXHJcblx0XHQvLyBcdC8vIFJlZnJlc2ggdGhlIGNhbGVuZGFyIGlmIHNldHRpbmdzIGNoYW5nZVxyXG5cdFx0Ly8gXHRpZiAodGhpcy5tZW1vc0NvbXBvbmVudCkge1xyXG5cdFx0Ly8gXHRcdHVzZVJlZnJlc2goKTtcclxuXHRcdC8vIFx0fVxyXG5cdFx0Ly8gXHR9KTtcclxuXHR9XHJcbiAgXHJcblx0Z2V0RGlzcGxheVRleHQoKTogc3RyaW5nIHtcclxuXHRcdC8vIFRPRE86IE1ha2UgdGhpcyBpbnRlcmFjdGl2ZTogRWl0aGVyIHRoZSBhY3RpdmUgd29ya3NwYWNlIG9yIHRoZSBsb2NhbCBncmFwaFxyXG5cdFx0cmV0dXJuIFwiTWVtb3NcIjtcclxuXHR9XHJcbiAgXHJcblx0Z2V0SWNvbigpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIFwiTWVtb3NcIjtcclxuXHR9XHJcbiAgXHJcblx0Z2V0Vmlld1R5cGUoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBNRU1PU19WSUVXX1RZUEU7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9uTWVtb3NTZXR0aW5nc1VwZGF0ZSgpOiB2b2lkIHtcclxuXHRcdG1lbW9TZXJ2aWNlLmNsZWFyTWVtb3MoKTtcclxuXHRcdG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXN5bmMgb25GaWxlRGVsZXRlZChmaWxlOiBURmlsZSk6IFByb21pc2U8dm9pZD4ge1xyXG5cdFx0aWYgKGdldERhdGVGcm9tRmlsZShmaWxlLCBcImRheVwiKSkge1xyXG5cdFx0XHRhd2FpdCBkYWlseU5vdGVzU2VydmljZS5nZXRNeUFsbERhaWx5Tm90ZXMoKTtcclxuXHRcdFx0bWVtb1NlcnZpY2UuY2xlYXJNZW1vcygpO1xyXG5cdFx0XHRtZW1vU2VydmljZS5mZXRjaEFsbE1lbW9zKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHByaXZhdGUgYXN5bmMgb25GaWxlTW9kaWZpZWQoZmlsZTogVEZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdGNvbnN0IGRhdGUgPSBnZXREYXRlRnJvbUZpbGUoZmlsZSwgXCJkYXlcIik7XHJcblx0XHRcclxuXHRcdGlmIChkYXRlICYmIHRoaXMubWVtb3NDb21wb25lbnQpIHtcclxuXHRcdFx0bWVtb1NlcnZpY2UuY2xlYXJNZW1vcygpO1xyXG5cdFx0XHRtZW1vU2VydmljZS5mZXRjaEFsbE1lbW9zKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9uRmlsZUNyZWF0ZWQoZmlsZTogVEZpbGUpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmFwcC53b3Jrc3BhY2UubGF5b3V0UmVhZHkgJiYgdGhpcy5tZW1vc0NvbXBvbmVudCkge1xyXG5cdFx0XHRpZiAoZ2V0RGF0ZUZyb21GaWxlKGZpbGUsIFwiZGF5XCIpKSB7XHJcblx0XHRcdFx0ZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0TXlBbGxEYWlseU5vdGVzKCk7XHJcblx0XHRcdFx0bWVtb1NlcnZpY2UuY2xlYXJNZW1vcygpO1xyXG5cdFx0XHRcdG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cdFxyXG5cdH1cclxuICBcclxuXHRhc3luYyBvbk9wZW4oKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHRhd2FpdCB0aGlzLnBsdWdpbi5sb2FkU2V0dGluZ3MoKTtcclxuXHRcdGRhaWx5Tm90ZXNTZXJ2aWNlLmdldEFwcCh0aGlzLmFwcCk7XHJcblx0XHRJbnNlcnRBZnRlciA9IHRoaXMucGx1Z2luLnNldHRpbmdzLkluc2VydEFmdGVyO1xyXG5cdFx0VXNlck5hbWUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5Vc2VyTmFtZTtcclxuXHRcdFByb2Nlc3NFbnRyaWVzQmVsb3cgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5Qcm9jZXNzRW50cmllc0JlbG93O1xyXG5cdFx0U2F2ZU1lbW9CdXR0b25MYWJlbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLlNhdmVNZW1vQnV0dG9uTGFiZWw7XHJcblx0XHREZWZhdWx0UHJlZml4ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuRGVmYXVsdFByZWZpeDtcclxuXHRcdEluc2VydERhdGVGb3JtYXQgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5JbnNlcnREYXRlRm9ybWF0O1xyXG5cdFx0RGVmYXVsdEVkaXRvckxvY2F0aW9uID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuRGVmYXVsdEVkaXRvckxvY2F0aW9uO1xyXG5cdFx0VXNlQnV0dG9uVG9TaG93RWRpdG9yID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuVXNlQnV0dG9uVG9TaG93RWRpdG9yO1xyXG5cdFx0Rm9jdXNPbkVkaXRvciA9IHRoaXMucGx1Z2luLnNldHRpbmdzLkZvY3VzT25FZGl0b3I7XHJcblx0XHRPcGVuRGFpbHlNZW1vc1dpdGhNZW1vcyA9IHRoaXMucGx1Z2luLnNldHRpbmdzLk9wZW5EYWlseU1lbW9zV2l0aE1lbW9zO1xyXG5cdFx0SGlkZURvbmVUYXNrcyA9IHRoaXMucGx1Z2luLnNldHRpbmdzLkhpZGVEb25lVGFza3M7XHJcblx0XHRTaGFyZUZvb3RlclN0YXJ0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuU2hhcmVGb290ZXJTdGFydDtcclxuXHRcdFNoYXJlRm9vdGVyRW5kID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuU2hhcmVGb290ZXJFbmQ7XHJcblx0XHRPcGVuTWVtb3NBdXRvbWF0aWNhbGx5ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuT3Blbk1lbW9zQXV0b21hdGljYWxseTtcclxuICBcclxuXHRcdHRoaXMubWVtb3NDb21wb25lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KEFwcCk7XHJcbiAgXHJcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5cdFx0UmVhY3RET00ucmVuZGVyKHRoaXMubWVtb3NDb21wb25lbnQsICh0aGlzIGFzIGFueSkuY29udGVudEVsKTtcclxuXHR9XHJcbiAgXHJcblx0YXN5bmMgb25DbG9zZSgpIHtcclxuXHRcdC8vIE5vdGhpbmcgdG8gY2xlYW4gdXAuXHJcblx0fVxyXG4gIH1cclxuICBcclxuICBleHBvcnQgbGV0IEluc2VydEFmdGVyOiBzdHJpbmc7XHJcbiAgZXhwb3J0IGxldCBVc2VyTmFtZTogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgUHJvY2Vzc0VudHJpZXNCZWxvdzogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgU2F2ZU1lbW9CdXR0b25MYWJlbDogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgRGVmYXVsdFByZWZpeDogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgSW5zZXJ0RGF0ZUZvcm1hdDogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgRGVmYXVsdEVkaXRvckxvY2F0aW9uOiBzdHJpbmc7XHJcbiAgZXhwb3J0IGxldCBVc2VCdXR0b25Ub1Nob3dFZGl0b3I6IGJvb2xlYW47XHJcbiAgZXhwb3J0IGxldCBGb2N1c09uRWRpdG9yOiBib29sZWFuO1xyXG4gIGV4cG9ydCBsZXQgT3BlbkRhaWx5TWVtb3NXaXRoTWVtb3M6IGJvb2xlYW47XHJcbiAgZXhwb3J0IGxldCBIaWRlRG9uZVRhc2tzOiBib29sZWFuO1xyXG4gIGV4cG9ydCBsZXQgU2hhcmVGb290ZXJTdGFydDogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgU2hhcmVGb290ZXJFbmQ6IHN0cmluZztcclxuICBleHBvcnQgbGV0IE9wZW5NZW1vc0F1dG9tYXRpY2FsbHk6IGJvb2xlYW47IiwiaW1wb3J0IHsgYWRkSWNvbiB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5cclxuY29uc3QgaWNvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgTWVtb3M6IGA8c3ZnIHQ9XCIxNjQxMzQ4NTA3MzM5XCIgY2xhc3M9XCJpY29uXCIgdmlld0JveD1cIjAgMCAxMDI0IDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHAtaWQ9XCIyMTIwXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMDBcIj48cGF0aCBkPVwiTTEyNi42OTI2NTMgNDc4LjA5OTYzOWwtOTAuNzU3MjgxIDBjLTE5LjAxOTQwOCAwLTM0LjQzNzMzNiAxNS40MjM5MjMtMzQuNDM3MzM2IDM0LjQxNzM1NiAwIDE4Ljk5MjQzNCAxNS40MTY5MjkgMzQuNDc3Mjk3IDM0LjQzNzMzNiAzNC40NzcyOTdsOTAuNzU3MjgxIDBjMTkuMDEzNDE0IDAgMzQuNDIzMzUtMTUuNDg0ODYzIDM0LjQyMzM1LTM0LjQ3NzI5N0MxNjEuMTE2MDAzIDQ5My41MjM1NjEgMTQ1LjcwNjA2NyA0NzguMDk5NjM5IDEyNi42OTI2NTMgNDc4LjA5OTYzOXpNMjQ0LjY2MjMzMyAyNDMuNTI2OTQzYzEzLjc0MjU2Ni0xMy4xMTAxODQgMTQuMzEwMDExLTM0Ljk0ODgzNiAxLjE4NTg0MS00OC43MDYzODhsLTYyLjY0NDc2Mi02NS42Njg4MDZjLTEzLjEyODE2Ny0xMy43NjI1NDctMzQuOTc0ODExLTE0LjIyOTA5MS00OC43MTczNzctMS4xMTg5MDZzLTE0LjI2MTA1OSAzNC45MTE4NzItMS4xMzI4OTMgNDguNjc0NDE5bDYyLjY0NDc2MiA2NS42Njg4MDZDMjA5LjEyMzA3NCAyNTYuMTMyNjIgMjMwLjkxOTc2NyAyNTYuNjM3MTI3IDI0NC42NjIzMzMgMjQzLjUyNjk0M3pNNTQzLjA2NjYzMSA5NTcuNDIyMDgzbC02MC42MDM3NTcgMGMtMTguNjU0NzY0IDAtMzMuNzk0OTY0IDE1LjE0NzE5My0zMy43OTQ5NjQgMzMuODYyODk4IDAgMTguNjYxNzU3IDE1LjE0MDIgMzIuNzE1MDIgMzMuNzk0OTY0IDMyLjcxNTAybDYwLjYwMzc1NyAwYzE4LjY1NDc2NCAwIDMzLjc5NDk2NC0xNC4wNTMyNjIgMzMuNzk0OTY0LTMyLjcxNTAyQzU3Ni44NjE1OTUgOTcyLjU2ODI3NyA1NjEuNzIxMzk1IDk1Ny40MjIwODMgNTQzLjA2NjYzMSA5NTcuNDIyMDgzek05ODguMDc2NjE3IDQ3OS4wNTA3MDlsLTkwLjc1NzI4MSAwYy0xOS4wMTk0MDggMC0zNC40MzczMzYgMTUuNDIzOTIzLTM0LjQzNzMzNiAzNC40MTczNTZzMTUuNDE2OTI5IDM0LjQ3NzI5NyAzNC40MzczMzYgMzQuNDc3Mjk3bDkwLjc1NzI4MSAwYzE5LjAxMzQxNCAwIDM0LjQyMzM1LTE1LjQ4NDg2MyAzNC40MjMzNS0zNC40NzcyOTdTMTAwNy4wOTAwMyA0NzkuMDUwNzA5IDk4OC4wNzY2MTcgNDc5LjA1MDcwOXpNNTEyLjI2ODczNyAxOTIuNzY1NTY0Yy0xNzIuNzM3MTQzIDAtMzEyLjc1NTI3IDE1MC4wNzkyOTItMzEyLjc1NTI3IDMyMi43NDY1MDMgMCAxMjUuNjMwMTkyIDc0LjA4MDU4MyAyMzMuOTU3Mjk4IDE4MC45MzYxMjggMjgzLjcwMzY2OWwwIDg0LjUxODM4YzAgMTYuNzYyNjE0IDE1LjQxMDkzNSAzMS4zNTQzNSAzNC40MjMzNSAzMS4zNTQzNSAwLjU5ODQxNSAwIDEuMTkzODMzLTAuMDE0OTg1IDEuNzg1MjU1LTAuMDQyOTU4IDAuNjE4Mzk1IDAuMDI2OTc0IDEuMjM5Nzg4IDAuMDQyOTU4IDEuODY3MTc1IDAuMDQyOTU4bDE4Ny40Nzk3MzEgMGM1LjkwNTIyNyAwIDExLjQ1NTgwMi0xLjIyMDgwNyAxNi4yODgwNzgtMy40Nzc2MDEgMTIuMjMxMDQ0LTQuNjU3NDQ3IDIwLjc5NTY3MS0xNS4zODM5NjIgMjAuNzk1NjcxLTI3Ljg3NTc1bDAtODQuMDUyODM1YzEwNy4zOTEwMjEtNDkuNTM0NTc4IDE4MS45MzUxNTEtMTU4LjE0NzQwNSAxODEuOTM1MTUxLTI4NC4xNjgyMTRDODI1LjAyNDAwNyAzNDIuODQzODU3IDY4NC45OTc4ODggMTkyLjc2NTU2NCA1MTIuMjY4NzM3IDE5Mi43NjU1NjR6TTU3NC44NjM1NDggNzQyLjcxMzk2OGwwIDgwLjE3MDYzYzAgMy4xNTk5MTEtMC4yMjE3ODMgNS45NzYxNTgtMC42NDIzNzIgOC40OTY2OTRsMCAxOS4wOTIzMzYtMTI0LjkxMDg5NSAwIDAtMTcuNzE3NjhjLTAuNDIzNTg2LTIuODU2MjA4LTAuNjQyMzcyLTYuMTIzMDE1LTAuNjQyMzcyLTkuODcwMzUxbDAtODAuNDQzMzYzYy05OS4yMDQwMjQtMjcuNzUzODctMTcxLjk3MDg5Mi0xMTguODIxODQ3LTE3MS45NzA4OTItMjI2LjkzMDE2NyAwLTEzMC4wOTQ4MjcgMTA1LjQ2ODktMjQ1LjUwNzAwNyAyMzUuNTcxNzE5LTI0NS41MDcwMDdzMjM1LjU2MzcyNyAxMTUuNDEyMTggMjM1LjU2MzcyNyAyNDUuNTA3MDA3Qzc0Ny44MzI0NjUgNjIzLjk4NDAzMSA2NzQuNTc4MDc0IDcxNS4yOTM3NzIgNTc0Ljg2MzU0OCA3NDIuNzEzOTY4ek04OTUuNDA3MjA0IDEyOS4zMjg1NzZjLTEzLjQyOTg3Mi0xMy40Mjk4NzItMzUuMjMzNTU4LTEzLjQzOTg2Mi00OC42Nzc0MTYgMC4wMDQ5OTVsLTY0LjE3NDI2NyA2NC4xNzUyNjZjLTEzLjQ0ODg1MyAxMy40NDg4NTMtMTMuNDQzODU4IDM1LjI1NzUzNC0wLjAxMzk4NiA0OC42ODc0MDYgMTMuNDI5ODcyIDEzLjQyOTg3MiAzNS4yODE1MTEgMTMuNDc3ODI1IDQ4LjczMDM2NCAwLjAyODk3Mmw2NC4xNzUyNjYtNjQuMTc1MjY2QzkwOC44ODkwMjUgMTY0LjYwNTA5MiA5MDguODM3MDc2IDE0Mi43NTg0NDggODk1LjQwNzIwNCAxMjkuMzI4NTc2ek01MTEuNzk2MTk5IDE1OS42MTc5NjdjMTguOTkyNDM0IDAgMzQuNDE3MzU2LTE1LjQxMDkzNSAzNC40MTczNTYtMzQuNDIzMzVsMC05MC43NTcyODFjMC0xOS4wMTk0MDgtMTUuNDIzOTIzLTM0LjQzNzMzNi0zNC40MTczNTYtMzQuNDM3MzM2LTE4Ljk5MjQzNCAwLTM0LjQ3NzI5NyAxNS40MTY5MjktMzQuNDc3Mjk3IDM0LjQzNzMzNmwwIDkwLjc1NzI4MUM0NzcuMzE3OTAzIDE0NC4yMDgwMzEgNDkyLjgwMjc2NiAxNTkuNjE3OTY3IDUxMS43OTYxOTkgMTU5LjYxNzk2N3pcIiBwLWlkPVwiMjEyMVwiPjwvcGF0aD48L3N2Zz5gLFxyXG59O1xyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRJY29ucygpIHtcclxuICBPYmplY3Qua2V5cyhpY29ucykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBhZGRJY29uKGtleSwgaWNvbnNba2V5XSk7XHJcbiAgfSk7XHJcbn1cclxuIiwiaW1wb3J0IHsgQXBwLCBEcm9wZG93bkNvbXBvbmVudCwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBNZW1vc1BsdWdpbiBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgbWVtb1NlcnZpY2UgZnJvbSAnLi9zZXJ2aWNlcy9tZW1vU2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lbW9zU2V0dGluZ3Mge1xyXG4gIFN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gIEluc2VydEFmdGVyOiBzdHJpbmc7XHJcbiAgVXNlck5hbWU6IHN0cmluZztcclxuICBQcm9jZXNzRW50cmllc0JlbG93OiBzdHJpbmc7XHJcbiAgTGFuZ3VhZ2U6IHN0cmluZztcclxuICBTYXZlTWVtb0J1dHRvbkxhYmVsOiBzdHJpbmc7XHJcbiAgU2hhcmVGb290ZXJTdGFydDogc3RyaW5nO1xyXG4gIFNoYXJlRm9vdGVyRW5kOiBzdHJpbmc7XHJcbiAgRGVmYXVsdFByZWZpeDogc3RyaW5nO1xyXG4gIEluc2VydERhdGVGb3JtYXQ6IHN0cmluZztcclxuICBEZWZhdWx0RWRpdG9yTG9jYXRpb246IHN0cmluZztcclxuICBVc2VCdXR0b25Ub1Nob3dFZGl0b3I6IGJvb2xlYW47XHJcbiAgRm9jdXNPbkVkaXRvcjogYm9vbGVhbjtcclxuICBPcGVuRGFpbHlNZW1vc1dpdGhNZW1vczogYm9vbGVhbjtcclxuICBIaWRlRG9uZVRhc2tzOiBib29sZWFuO1xyXG4gIE9wZW5NZW1vc0F1dG9tYXRpY2FsbHk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFVFRJTkdTOiBNZW1vc1NldHRpbmdzID0ge1xyXG4gIFN0YXJ0RGF0ZTogXCJTdW5kYXlcIixcclxuICBJbnNlcnRBZnRlcjogXCIjIEpvdXJuYWxcIixcclxuICBVc2VyTmFtZTogXCJNRU1PIPCfmIlcIixcclxuICBQcm9jZXNzRW50cmllc0JlbG93OiBcIiMgSm91cm5hbFwiLFxyXG4gIExhbmd1YWdlOiBcImVuXCIsXHJcbiAgU2F2ZU1lbW9CdXR0b25MYWJlbDogXCJOT1RFSVRcIixcclxuICBTaGFyZUZvb3RlclN0YXJ0OiBcIntNZW1vc051bX0gTWVtb3Mge1VzZWREYXl9IERheVwiLFxyXG4gIFNoYXJlRm9vdGVyRW5kOiBcIuKcje+4jyBieSB7VXNlck5hbWV9XCIsXHJcbiAgRGVmYXVsdFByZWZpeDogXCJMaXN0XCIsXHJcbiAgSW5zZXJ0RGF0ZUZvcm1hdDogXCJUYXNrc1wiLFxyXG4gIERlZmF1bHRFZGl0b3JMb2NhdGlvbjogXCJUb3BcIixcclxuICBVc2VCdXR0b25Ub1Nob3dFZGl0b3I6IGZhbHNlLFxyXG4gIEZvY3VzT25FZGl0b3I6IHRydWUsXHJcbiAgT3BlbkRhaWx5TWVtb3NXaXRoTWVtb3M6IHRydWUsXHJcbiAgSGlkZURvbmVUYXNrczogZmFsc2UsXHJcbiAgT3Blbk1lbW9zQXV0b21hdGljYWxseTogZmFsc2VcclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBNZW1vc1NldHRpbmdUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcclxuICBwbHVnaW46IE1lbW9zUGx1Z2luO1xyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgcHJpdmF0ZSBhcHBseURlYm91bmNlVGltZXI6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IE1lbW9zUGx1Z2luKSB7XHJcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIGFwcGx5U2V0dGluZ3NVcGRhdGUoKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5hcHBseURlYm91bmNlVGltZXIpO1xyXG4gICAgY29uc3QgcGx1Z2luID0gdGhpcy5wbHVnaW47XHJcbiAgICB0aGlzLmFwcGx5RGVib3VuY2VUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgfSwgMTAwKTtcclxuICAgIG1lbW9TZXJ2aWNlLnVwZGF0ZVRhZ3NTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICBhc3luYyBoaWRlKCkge31cclxuXHJcbiAgYXN5bmMgZGlzcGxheSgpIHtcclxuICAgIGF3YWl0IHRoaXMucGx1Z2luLmxvYWRTZXR0aW5ncygpO1xyXG5cclxuICAgIGNvbnN0IHsgY29udGFpbmVyRWwgfSA9IHRoaXM7XHJcbiAgICB0aGlzLmNvbnRhaW5lckVsLmVtcHR5KCk7XHJcblxyXG4gICAgdGhpcy5jb250YWluZXJFbC5jcmVhdGVFbChcImgxXCIsIHsgdGV4dDogXCJCYXNpYyBPcHRpb25zXCIgfSk7XHJcbiAgICAvLyBjb250YWluZXJFbC5jcmVhdGVEaXYoXCJcIiwgKGVsKSA9PiB7XHJcbiAgICAvLyAgIGVsLmlubmVySFRNTCA9IFwiQmFzaWMgT3B0aW9uc1wiO1xyXG4gICAgLy8gfSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKFwiVXNlciBuYW1lIGluIE1lbW9zXCIpXHJcbiAgICAgIC5zZXREZXNjKFwiU2V0IHlvdXIgdXNlciBuYW1lIGhlcmUuICdNZW1vcyDwn5iPJyBCeSBkZWZhdWx0XCIpXHJcbiAgICAgIC5hZGRUZXh0KCh0ZXh0KSA9PlxyXG4gICAgICAgIHRleHRcclxuICAgICAgICAgIC5zZXRQbGFjZWhvbGRlcihERUZBVUxUX1NFVFRJTkdTLlVzZXJOYW1lKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLlVzZXJOYW1lKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5Vc2VyTmFtZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKFwiSW5zZXJ0IGFmdGVyIGhlYWRpbmdcIilcclxuICAgICAgLnNldERlc2MoXCJZb3Ugc2hvdWxkIHNldCB0aGUgc2FtZSBoZWFkaW5nIGJlbG93IGlmIHlvdSB3YW50IHRvIGluc2VydCBhbmQgcHJvY2VzcyBtZW1vcyBiZWxvdyB0aGUgc2FtZSBoZWFkaW5nLlwiKVxyXG4gICAgICAuYWRkVGV4dCgodGV4dCkgPT5cclxuICAgICAgICB0ZXh0XHJcbiAgICAgICAgICAuc2V0UGxhY2Vob2xkZXIoREVGQVVMVF9TRVRUSU5HUy5JbnNlcnRBZnRlcilcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5JbnNlcnRBZnRlcilcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuSW5zZXJ0QWZ0ZXIgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVNldHRpbmdzVXBkYXRlKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZShcIlByb2Nlc3MgTWVtb3MgYmVsb3dcIilcclxuICAgICAgLnNldERlc2MoXHJcbiAgICAgICAgXCJPbmx5IGVudHJpZXMgYmVsb3cgdGhpcyBzdHJpbmcvc2VjdGlvbiBpbiB5b3VyIG5vdGVzIHdpbGwgYmUgcHJvY2Vzc2VkLiBJZiBpdCBkb2VzIG5vdCBleGlzdCBubyBub3RlcyB3aWxsIGJlIHByb2Nlc3NlZCBmb3IgdGhhdCBmaWxlLlwiXHJcbiAgICAgIClcclxuICAgICAgLmFkZFRleHQoKHRleHQpID0+XHJcbiAgICAgICAgdGV4dFxyXG4gICAgICAgICAgLnNldFBsYWNlaG9sZGVyKERFRkFVTFRfU0VUVElOR1MuUHJvY2Vzc0VudHJpZXNCZWxvdylcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5Qcm9jZXNzRW50cmllc0JlbG93KVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5Qcm9jZXNzRW50cmllc0JlbG93ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoXCJTYXZlIE1lbW8gYnV0dG9uIGxhYmVsXCIpXHJcbiAgICAgIC5zZXREZXNjKFwiVGhlIHRleHQgc2hvd24gb24gdGhlIHNhdmUgTWVtbyBidXR0b24gaW4gdGhlIFVJLiAnTk9URUlUJyBieSBkZWZhdWx0LlwiKVxyXG4gICAgICAuYWRkVGV4dCgodGV4dCkgPT5cclxuICAgICAgICB0ZXh0XHJcbiAgICAgICAgICAuc2V0UGxhY2Vob2xkZXIoREVGQVVMVF9TRVRUSU5HUy5TYXZlTWVtb0J1dHRvbkxhYmVsKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLlNhdmVNZW1vQnV0dG9uTGFiZWwpXHJcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLlNhdmVNZW1vQnV0dG9uTGFiZWwgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVNldHRpbmdzVXBkYXRlKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZShcIkZvY3VzIG9uIGVkaXRvciB3aGVuIG9wZW4gbWVtb3NcIilcclxuICAgICAgLnNldERlc2MoXCJGb2N1cyBvbiBlZGl0b3Igd2hlbiBvcGVuIG1lbW9zLiBGb2N1cyBieSBkZWZhdWx0LlwiKVxyXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgICAgdG9nZ2xlXHJcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuRm9jdXNPbkVkaXRvcilcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuRm9jdXNPbkVkaXRvciA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZShcIk9wZW4gZGFpbHkgbWVtb3Mgd2l0aCBvcGVuIG1lbW9zXCIpXHJcbiAgICAgIC5zZXREZXNjKFwiT3BlbiBkYWlseSBtZW1vcyB3aXRoIG9wZW4gbWVtb3MuIE9wZW4gYnkgZGVmYXVsdC5cIilcclxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICAgIHRvZ2dsZVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLk9wZW5EYWlseU1lbW9zV2l0aE1lbW9zKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5PcGVuRGFpbHlNZW1vc1dpdGhNZW1vcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZShcIk9wZW4gTWVtb3Mgd2hlbiBvYnNpZGlhbiBvcGVuc1wiKVxyXG4gICAgICAuc2V0RGVzYyhcIldIZW4gZW5hYmxlIHRoaXMsIE1lbW9zIHdpbGwgb3BlbiB3aGVuIE9ic2lkaWFuIG9wZW5zLiBGYWxzZSBieSBkZWZhdWx0LlwiKVxyXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgICAgdG9nZ2xlXHJcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuT3Blbk1lbW9zQXV0b21hdGljYWxseSlcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuT3Blbk1lbW9zQXV0b21hdGljYWxseSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gICAgXHJcbiAgICB0aGlzLmNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDFcIiwgeyB0ZXh0OiBcIlNoYXJlIE9wdGlvbnNcIiB9KTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoXCJTaGFyZSBNZW1vcyBJbWFnZSBGb290ZXIgU3RhcnRcIilcclxuICAgICAgLnNldERlc2MoXCJTZXQgYW55dGhpbmcgeW91IHdhbnQgaGVyZSwgdXNlIHtNZW1vc051bX0gdG8gZGlzcGxheSBOdW1iZXIgb2YgbWVtb3MsIHtVc2VkRGF5fSBmb3IgZGF5cy4gJ3tNZW1vc051bX0gTWVtb3Mge1VzZWREYXl9IERheXMnIEJ5IGRlZmF1bHRcIilcclxuICAgICAgLmFkZFRleHQoKHRleHQpID0+XHJcbiAgICAgICAgdGV4dFxyXG4gICAgICAgICAgLnNldFBsYWNlaG9sZGVyKERFRkFVTFRfU0VUVElOR1MuU2hhcmVGb290ZXJTdGFydClcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5TaGFyZUZvb3RlclN0YXJ0KVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5TaGFyZUZvb3RlclN0YXJ0ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoXCJTaGFyZSBNZW1vcyBJbWFnZSBGb290ZXIgRW5kXCIpXHJcbiAgICAgIC5zZXREZXNjKFwiU2V0IGFueXRoaW5nIHlvdSB3YW50IGhlcmUsIHVzZSB7VXNlck5hbWV9IGFzIHlvdXIgdXNlcm5hbWUuICfinI3vuI8gQnkge1VzZXJOYW1lfScgQnkgZGVmYXVsdFwiKVxyXG4gICAgICAuYWRkVGV4dCgodGV4dCkgPT5cclxuICAgICAgICB0ZXh0XHJcbiAgICAgICAgICAuc2V0UGxhY2Vob2xkZXIoREVGQVVMVF9TRVRUSU5HUy5TaGFyZUZvb3RlckVuZClcclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5TaGFyZUZvb3RlckVuZClcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuU2hhcmVGb290ZXJFbmQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVNldHRpbmdzVXBkYXRlKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgXHJcbiAgICB0aGlzLmNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDFcIiwgeyB0ZXh0OiBcIkFkdmFuY2VkIE9wdGlvbnNcIiB9KTtcclxuXHJcbiAgICBsZXQgZHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50O1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZShcIlVJIGxhbmd1YWdlXCIpXHJcbiAgICAgIC5zZXREZXNjKFwiVHJhbnNsYXRlcyB0aGUgVUkgbGFuZ3VhZ2UuIE9ubHkgJ2VuJyBhbmQgJ3poJyBhcmUgYXZhaWxhYmxlLlwiKVxyXG4gICAgICAuYWRkRHJvcGRvd24oYXN5bmMgKGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgICAgZHJvcGRvd24gPSBkO1xyXG4gICAgICAgIGRyb3Bkb3duLmFkZE9wdGlvbihcInpoXCIsIFwi5Lit5paHXCIpO1xyXG4gICAgICAgIGRyb3Bkb3duLmFkZE9wdGlvbihcImVuXCIsIFwiRW5nbGlzaFwiKTtcclxuICAgICAgICBkcm9wZG93blxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLkxhbmd1YWdlKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5MYW5ndWFnZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoXCJEZWZhdWx0IHByZWZpeFwiKVxyXG4gICAgICAuc2V0RGVzYyhcIlNldCB0aGUgZGVmYXVsdCBwcmVmaXggd2hlbiBjcmVhdGUgbWVtbywgJ0xpc3QnIGJ5IGRlZmF1bHQuXCIpXHJcbiAgICAgIC5hZGREcm9wZG93bihhc3luYyAoZDogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgICBkcm9wZG93biA9IGQ7XHJcbiAgICAgICAgZHJvcGRvd24uYWRkT3B0aW9uKFwiTGlzdFwiLCBcIkxpc3RcIik7XHJcbiAgICAgICAgZHJvcGRvd24uYWRkT3B0aW9uKFwiVGFza1wiLCBcIlRhc2tcIik7XHJcbiAgICAgICAgZHJvcGRvd25cclxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5EZWZhdWx0UHJlZml4KVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5EZWZhdWx0UHJlZml4ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgLnNldE5hbWUoXCJEZWZhdWx0IGluc2VydCBkYXRlIGZvcm1hdFwiKVxyXG4gICAgLnNldERlc2MoXCJTZXQgdGhlIGRlZmF1bHQgZGF0ZSBmb3JtYXQgd2hlbiBpbnNlcnQgZGF0ZSBieSBALCAnVGFza3MnIGJ5IGRlZmF1bHQuXCIpXHJcbiAgICAuYWRkRHJvcGRvd24oYXN5bmMgKGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGRyb3Bkb3duID0gZDtcclxuICAgICAgZHJvcGRvd24uYWRkT3B0aW9uKFwiVGFza3NcIiwgXCJUYXNrc1wiKTtcclxuICAgICAgZHJvcGRvd24uYWRkT3B0aW9uKFwiRGF0YXZpZXdcIiwgXCJEYXRhdmlld1wiKTtcclxuICAgICAgZHJvcGRvd25cclxuICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuSW5zZXJ0RGF0ZUZvcm1hdClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5JbnNlcnREYXRlRm9ybWF0ID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgLnNldE5hbWUoXCJEZWZhdWx0IGVkaXRvciBwb3NpdGlvbiBvbiBtb2JpbGVcIilcclxuICAgIC5zZXREZXNjKFwiU2V0IHRoZSBkZWZhdWx0IGVkaXRvciBwb3NpdGlvbiBvbiBNb2JpbGUsICdUb3AnIGJ5IGRlZmF1bHQuXCIpXHJcbiAgICAuYWRkRHJvcGRvd24oYXN5bmMgKGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGRyb3Bkb3duID0gZDtcclxuICAgICAgZHJvcGRvd24uYWRkT3B0aW9uKFwiVG9wXCIsIFwiVG9wXCIpO1xyXG4gICAgICBkcm9wZG93bi5hZGRPcHRpb24oXCJCb3R0b21cIiwgXCJCb3R0b21cIik7XHJcbiAgICAgIGRyb3Bkb3duXHJcbiAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLkRlZmF1bHRFZGl0b3JMb2NhdGlvbilcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5EZWZhdWx0RWRpdG9yTG9jYXRpb24gPSB2YWx1ZTtcclxuICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKFwiVXNlIGJ1dHRvbiB0byBzaG93IGVkaXRvciBvbiBtb2JpbGVcIilcclxuICAgICAgLnNldERlc2MoXCJTZXQgYSBmbG9hdCBidXR0b24gdG8gY2FsbCBlZGl0b3Igb24gbW9iaWxlLiBPbmx5IHdoZW4gZWRpdG9yIGxvY2F0ZWQgYXQgdGhlIGJvdHRvbSB3b3Jrcy5cIilcclxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICAgIHRvZ2dsZVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLlVzZUJ1dHRvblRvU2hvd0VkaXRvcilcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuVXNlQnV0dG9uVG9TaG93RWRpdG9yID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKFwiSGlkZSBkb25lIHRhc2tzIGluIE1lbW8gbGlzdFwiKVxyXG4gICAgICAuc2V0RGVzYyhcIkhpZGUgYWxsIGRvbmUgdGFza3MgaW4gTWVtbyBsaXN0LiBTaG93IGRvbmUgdGFza3MgYnkgZGVmYXVsdC5cIilcclxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICAgIHRvZ2dsZVxyXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLkhpZGVEb25lVGFza3MpXHJcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLkhpZGVEb25lVGFza3MgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVNldHRpbmdzVXBkYXRlKCk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLmNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDFcIiwgeyB0ZXh0OiBcIlNheSBUaGFuayBZb3VcIiB9KTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0RvbmF0ZScpXHJcbiAgICAgIC5zZXREZXNjKCdJZiB5b3UgbGlrZSB0aGlzIHBsdWdpbiwgY29uc2lkZXIgZG9uYXRpbmcgdG8gc3VwcG9ydCBjb250aW51ZWQgZGV2ZWxvcG1lbnQ6JylcclxuICAgICAgLy8gLnNldENsYXNzKFwiQVQtZXh0cmFcIilcclxuICAgICAgLmFkZEJ1dHRvbigoYnQpID0+IHtcclxuICAgICAgICAgIGJ0LmJ1dHRvbkVsLm91dGVySFRNTCA9IGA8YSBocmVmPVwiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9ib25pbmFsbFwiPjxpbWcgc3JjPVwiaHR0cHM6Ly9pbWcuYnV5bWVhY29mZmVlLmNvbS9idXR0b24tYXBpLz90ZXh0PUJ1eSBtZSBhIGNvZmZlZSZlbW9qaT0mc2x1Zz1ib25pbmFsbCZidXR0b25fY29sb3VyPTY0OTVFRCZmb250X2NvbG91cj1mZmZmZmYmZm9udF9mYW1pbHk9SW50ZXImb3V0bGluZV9jb2xvdXI9MDAwMDAwJmNvZmZlZV9jb2xvdXI9RkZERDAwXCI+PC9hPmA7XHJcbiAgICB9KTtcclxuICB9XHJcbn0iLCJleHBvcnQgY29uc3QgVFJBTlNMQVRJT05TX1pIID0ge1xyXG4gICAgd2VsY29tZTogXCLmrKLov47kvb/nlKggTWVtb3MgXCIsXHJcbiAgICByaWJib25JY29uVGl0bGU6IFwiTWVtb3NcIixcclxuICAgIG1vbnRoczogW1wi5LiA5pyIXCIsIFwi5LqM5pyIXCIsIFwi5LiJ5pyIXCIsIFwi5Zub5pyIXCIsIFwi5LqU5pyIXCIsIFwi5YWt5pyIXCIsIFwi5LiD5pyIXCIsIFwi5YWr5pyIXCIsIFwi5Lmd5pyIXCIsIFwi5Y2B5pyIXCIsIFwi5Y2B5LiA5pyIXCIsIFwi5Y2B5LqM5pyIXCJdLFxyXG4gICAgd2Vla0RheXM6IFtcIuWRqOaXpVwiLCBcIuWRqOS4gFwiLCBcIuWRqOS6jFwiLCBcIuWRqOS4iVwiLCBcIuWRqOWbm1wiLCBcIuWRqOS6lFwiLCBcIuWRqOWFrVwiXSxcclxuICAgIHdlZWtEYXlzU2hvcnQ6IFtcIuWRqOaXpVwiLCBcIuWRqOS4gFwiLCBcIuWRqOS6jFwiLCBcIuWRqOS4iVwiLCBcIuWRqOWbm1wiLCBcIuWRqOS6lFwiLCBcIuWRqOWFrVwiXSxcclxuICAgIHRvOiBcIuiHs1wiLFxyXG4gIH07IiwiZXhwb3J0IGNvbnN0IFRSQU5TTEFUSU9OU19FTiA9IHtcclxuICAgIHdlbGNvbWU6IFwiV2VsY29tZSB0byB0aGUgTWVtb3NcIixcclxuICAgIHJpYmJvbkljb25UaXRsZTogXCJNZW1vc1wiLFxyXG4gICAgbW9udGhzOiBbXCJKYW51YXJ5XCIsIFwiRmVicnVhcnlcIiwgXCJNYXJjaFwiLCBcIkFwcmlsXCIsIFwiTWF5XCIsIFwiSnVuZVwiLCBcIkp1bHlcIiwgXCJBdWd1c3RcIiwgXCJTZXB0ZW1iZXJcIiwgXCJPY3RvYmVyXCIsIFwiTm92ZW1iZXJcIiwgXCJEZWNlbWJlclwiXSxcclxuICAgIHdlZWtEYXlzOiBbXCJNb25kYXlcIiwgXCJUdWVzZGF5XCIsIFwiV2VkbmVzZGF5XCIsIFwiVGh1cnNkYXlcIiwgXCJGcmlkYXlcIiwgXCJTYXR1cmRheVwiLCBcIlN1bmRheVwiXSxcclxuICAgIHdlZWtEYXlzU2hvcnQ6IFtcIk1vblwiLCBcIlR1ZVwiLCBcIldlZFwiLCBcIlRodVwiLCBcIkZyaVwiLCBcIlNhdFwiLCBcIlN1blwiXSxcclxuICAgIHRvOiBcInRvXCIsXHJcbiAgfTsiLCJpbXBvcnQgeyBQbHVnaW4sIE5vdGljZSwgRmlsZVZpZXcsIFBsYXRmb3JtIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5pbXBvcnQgeyBNZW1vcywgRm9jdXNPbkVkaXRvciwgT3BlbkRhaWx5TWVtb3NXaXRoTWVtb3MgfSBmcm9tICcuL21lbW9zJztcbmltcG9ydCB7IE1FTU9TX1ZJRVdfVFlQRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IGFkZEljb25zIGZyb20gXCIuL29iQ29tcG9uZW50cy9jdXN0b21JY29uc1wiO1xuaW1wb3J0IFwiLi9oZWxwZXJzL3BvbHlmaWxsXCI7XG5pbXBvcnQgXCIuL2xlc3MvZ2xvYmFsLmxlc3NcIjtcbmltcG9ydCB7IE1lbW9zU2V0dGluZ1RhYiwgREVGQVVMVF9TRVRUSU5HUywgTWVtb3NTZXR0aW5ncyB9IGZyb20gXCIuL3NldHRpbmdcIjtcbmltcG9ydCB7IGFwcEhhc0RhaWx5Tm90ZXNQbHVnaW5Mb2FkZWQgfSBmcm9tIFwib2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlXCI7XG4vLyBpbXBvcnQgeyBlZGl0b3JJbnB1dCB9IGZyb20gXCIuL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclwiO1xuaW1wb3J0IHNob3dEYWlseU1lbW9EaWFyeURpYWxvZyBmcm9tIFwiLi9jb21wb25lbnRzL0RhaWx5TWVtb0RpYXJ5RGlhbG9nXCI7XG5pbXBvcnQgaTE4bmV4dCBmcm9tIFwiaTE4bmV4dFwiO1xuaW1wb3J0IHsgVFJBTlNMQVRJT05TX1pIIH0gZnJvbSBcIi4vdHJhbnNsYXRpb25zL3poL3RyYW5zbGF0aW9uc1wiO1xuaW1wb3J0IHsgVFJBTlNMQVRJT05TX0VOIH0gZnJvbSBcIi4vdHJhbnNsYXRpb25zL2VuL3RyYW5zbGF0aW9uc1wiO1xuLy8gaW1wb3J0IHsgZ2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXNcIjtcblxuLy8gZGVjbGFyZSBnbG9iYWwge1xuLy8gICBpbnRlcmZhY2UgV2luZG93IHtcbi8vICAgICBhcHA6IEFwcDtcbi8vICAgICBwbHVnaW46IE1lbW9zUGx1Z2luO1xuLy8gICB9XG4vLyB9XG5cbi8vIGRlY2xhcmUgbW9kdWxlIFwib2JzaWRpYW5cIiB7XG4vLyAgIGludGVyZmFjZSBBcHAge1xuLy8gICAgICAgaXNNb2JpbGU6IGJvb2xlYW47XG4vLyAgIH1cbi8vIH1cblxuLy8gY29uc3QgbW9ua2V5UGF0Y2hDb25zb2xlID0gKHBsdWdpbjogUGx1Z2luKSA9PiB7XG5cbi8vICAgaWYgKCFQbGF0Zm9ybS5pc01vYmlsZSkge1xuLy8gICAgICAgcmV0dXJuO1xuLy8gICB9XG5cbi8vICAgY29uc3QgbG9nRmlsZSA9IGAke3BsdWdpbi5tYW5pZmVzdC5kaXJ9L2xvZ3MudHh0YDtcbi8vICAgY29uc3QgbG9nczogc3RyaW5nW10gPSBbXTtcbi8vICAgY29uc3QgbG9nTWVzc2FnZXMgPSAocHJlZml4OiBzdHJpbmcpID0+ICguLi5tZXNzYWdlczogdW5rbm93bltdKSA9PiB7XG4vLyAgICAgICBsb2dzLnB1c2goYFxcblske3ByZWZpeH1dYCk7XG4vLyAgICAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgbWVzc2FnZXMpIHtcbi8vICAgICAgICAgICBsb2dzLnB1c2goU3RyaW5nKG1lc3NhZ2UpKTtcbi8vICAgICAgIH1cbi8vICAgICAgIHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci53cml0ZShsb2dGaWxlLCBsb2dzLmpvaW4oXCIgXCIpKTtcbi8vICAgfTtcblxuLy8gICBjb25zb2xlLmRlYnVnID0gbG9nTWVzc2FnZXMoXCJkZWJ1Z1wiKTtcbi8vICAgY29uc29sZS5lcnJvciA9IGxvZ01lc3NhZ2VzKFwiZXJyb3JcIik7XG4vLyAgIGNvbnNvbGUuaW5mbyA9IGxvZ01lc3NhZ2VzKFwiaW5mb1wiKTtcbi8vICAgY29uc29sZS5sb2cgPSBsb2dNZXNzYWdlcyhcImxvZ1wiKTtcbi8vICAgY29uc29sZS53YXJuID0gbG9nTWVzc2FnZXMoXCJ3YXJuXCIpO1xuLy8gfTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVtb3NQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBwdWJsaWMgc2V0dGluZ3M6IE1lbW9zU2V0dGluZ3M7XG4gIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhcIm9ic2lkaWFuLW1lbW9zIGxvYWRpbmcuLi5cIik7XG4gICAgLy8gdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgICBhd2FpdCB0aGlzLmluaXRMb2NhbGl6YXRpb24oKTtcblxuICAgIC8vIG1vbmtleVBhdGNoQ29uc29sZSh0aGlzKTtcblxuICAgIHRoaXMucmVnaXN0ZXJWaWV3KE1FTU9TX1ZJRVdfVFlQRSwgKGxlYWYpID0+IG5ldyBNZW1vcyhsZWFmLCB0aGlzKSk7XG5cbiAgICAvLyB0aGlzLnJlZ2lzdGVyVmlldyhcbiAgICAvLyAgIE1FTU9TX1ZJRVdfVFlQRSxcbiAgICAvLyAgIChsZWFmOiBXb3Jrc3BhY2VMZWFmKSA9PiAodGhpcy52aWV3ID0gbmV3IE1lbW9zKGxlYWYsIHRoaXMuYXBwLnBsdWdpbikpXG4gICAgLy8gKTtcblxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgTWVtb3NTZXR0aW5nVGFiKHRoaXMuYXBwLCB0aGlzKSk7XG5cbiAgICBhZGRJY29ucygpO1xuICAgIHRoaXMuYWRkUmliYm9uSWNvbihcIk1lbW9zXCIsIGkxOG5leHQudChcInJpYmJvbkljb25UaXRsZVwiKSwgKCkgPT4ge1xuICAgICAgbmV3IE5vdGljZShcIk9wZW4gTWVtb3MgU3VjY2Vzc2Z1bGx5XCIpO1xuICAgICAgdGhpcy5vcGVuTWVtb3MoKTtcbiAgICB9KTtcblxuICAgIGlmIChhcHBIYXNEYWlseU5vdGVzUGx1Z2luTG9hZGVkKCkpIHtcbiAgICAgIG5ldyBOb3RpY2UoXCJDaGVjayBpZiB5b3Ugb3BlbmVkIERhaWx5IE5vdGVzIFBsdWdpblwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwib3Blbi1tZW1vc1wiLFxuICAgICAgbmFtZTogXCJPcGVuIE1lbW9zXCIsXG4gICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5vcGVuTWVtb3MoKSxcbiAgICAgIGhvdGtleXM6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcImZvY3VzLW9uLW1lbW9zLWVkaXRvclwiLFxuICAgICAgbmFtZTogXCJGb2N1cyBPbiBNZW1vcyBFZGl0b3JcIixcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLmZvY3VzT25FZGl0b3IoKSxcbiAgICAgIGhvdGtleXM6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcInNob3ctZGFpbHktbWVtb1wiLFxuICAgICAgbmFtZTogXCJTaG93IERhaWx5IE1lbW9cIixcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLm9wZW5EYWlseU1lbW8oKSxcbiAgICAgIGhvdGtleXM6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkodGhpcy5vbkxheW91dFJlYWR5LmJpbmQodGhpcykpO1xuICAgIGNvbnNvbGUubG9nKGkxOG5leHQudChcIndlbGNvbWVcIikpO1xuICAgIGNvbnNvbGUubG9nKFwib2JzaWRpYW4tbWVtb3MgbG9hZGVkXCIpO1xuICAgIFxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWRTZXR0aW5ncygpIHtcbiAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVTZXR0aW5ncygpIHtcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xuICB9XG5cbiAgb251bmxvYWQoKSB7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLmRldGFjaExlYXZlc09mVHlwZShNRU1PU19WSUVXX1RZUEUpO1xuICAgIG5ldyBOb3RpY2UoXCJDbG9zZSBNZW1vcyBTdWNjZXNzZnVsbHlcIik7XG4gIH1cblxuICBhc3luYyBvbkxheW91dFJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgaWYgKHRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKT8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gICAgICBcbiAgICAgIGlmKCB0aGlzLnNldHRpbmdzLk9wZW5NZW1vc0F1dG9tYXRpY2FsbHkgIT09IHRydWUpe1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZih0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKE1FTU9TX1ZJRVdfVFlQRSkubGVuZ3RoICE9PSBudWxsICYmIHRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKS5sZW5ndGggIT09IHVuZGVmaW5lZCl7XG4gICAgICAgIHRoaXMub3Blbk1lbW9zKCk7XG4gICAgICB9XG4gICAgICBcbiAgfVxuXG4gIGFzeW5jIG9wZW5EYWlseU1lbW8oKSB7XG4gICAgY29uc3Qgd29ya3NwYWNlTGVhdmVzID0gdGhpcy5hcHAud29ya3NwYWNlLmdldExlYXZlc09mVHlwZShNRU1PU19WSUVXX1RZUEUpO1xuICAgIGlmKCBPcGVuRGFpbHlNZW1vc1dpdGhNZW1vcyA9PT0gdHJ1ZSl7XG4gICAgICBpZiAod29ya3NwYWNlTGVhdmVzICE9PSB1bmRlZmluZWQgJiYgd29ya3NwYWNlTGVhdmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLm9wZW5NZW1vcygpO1xuICAgICAgICBzaG93RGFpbHlNZW1vRGlhcnlEaWFsb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNob3dEYWlseU1lbW9EaWFyeURpYWxvZygpO1xuICAgICAgfVxuICAgIH1lbHNle1xuICAgICAgc2hvd0RhaWx5TWVtb0RpYXJ5RGlhbG9nKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb3Blbk1lbW9zKCkge1xuICAgIGNvbnN0IHsgdmlldyB9ID0gdGhpcy5hcHAud29ya3NwYWNlLmFjdGl2ZUxlYWY7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gdGhpcy5hcHAud29ya3NwYWNlO1xuICAgIHdvcmtzcGFjZS5kZXRhY2hMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKTtcbiAgICBpZiAoIVBsYXRmb3JtLmlzTW9iaWxlKSB7XG4gICAgICBpZiAoISh2aWV3IGluc3RhbmNlb2YgRmlsZVZpZXcpKSB7XG4gICAgICAgIGF3YWl0IHdvcmtzcGFjZS5nZXRMZWFmKGZhbHNlKS5zZXRWaWV3U3RhdGUoeyB0eXBlOiBNRU1PU19WSUVXX1RZUEUgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB3b3Jrc3BhY2UuZ2V0TGVhZih0cnVlKS5zZXRWaWV3U3RhdGUoeyB0eXBlOiBNRU1PU19WSUVXX1RZUEUgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHdvcmtzcGFjZS5nZXRMZWFmKGZhbHNlKS5zZXRWaWV3U3RhdGUoeyB0eXBlOiBNRU1PU19WSUVXX1RZUEUgfSk7XG4gICAgfVxuICAgIHdvcmtzcGFjZS5yZXZlYWxMZWFmKHdvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKVswXSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiggRm9jdXNPbkVkaXRvciAhPT0gZmFsc2UgKXtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImRpdltkYXRhLXR5cGU9J21lbW9zX3ZpZXcnXSAudmlldy1jb250ZW50IHRleHRhcmVhXCIpLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGFzeW5jIGZvY3VzT25FZGl0b3IoKSB7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gdGhpcy5hcHAud29ya3NwYWNlO1xuICAgIGlmKCB3b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKE1FTU9TX1ZJRVdfVFlQRSlbMF0gIT09IG51bGwgJiYgIHdvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKS5sZW5ndGggIT09IDApe1xuICAgICAgd29ya3NwYWNlLnNldEFjdGl2ZUxlYWYod29ya3NwYWNlLmdldExlYXZlc09mVHlwZShNRU1PU19WSUVXX1RZUEUpWzBdKTtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJ0ZXh0YXJlYVwiKS5mb2N1cygpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5vcGVuTWVtb3MoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiggRm9jdXNPbkVkaXRvciAhPT0gdHJ1ZSAmJiB3b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKE1FTU9TX1ZJRVdfVFlQRSkubGVuZ3RoICE9PSAwKXtcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2W2RhdGEtdHlwZT0nbWVtb3NfdmlldyddIC52aWV3LWNvbnRlbnQgdGV4dGFyZWFcIikuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBpbml0TG9jYWxpemF0aW9uKCkge1xuICAgIGkxOG5leHQuaW5pdCh7XG4gICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgZW46IHtcbiAgICAgICAgICB0cmFuc2xhdGlvbjogVFJBTlNMQVRJT05TX0VOLFxuICAgICAgICB9LFxuICAgICAgICB6aDoge1xuICAgICAgICAgIHRyYW5zbGF0aW9uOiBUUkFOU0xBVElPTlNfWkgsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgXG5cbiAgICBpMThuZXh0LmNoYW5nZUxhbmd1YWdlKHRoaXMuc2V0dGluZ3MuTGFuZ3VhZ2UpO1xuICB9XG59Il0sIm5hbWVzIjpbInRvT2JqZWN0IiwicmVxdWlyZSQkMCIsIm4iLCJwIiwicSIsInIiLCJCIiwiRCIsIkYiLCJFIiwiRyIsIkgiLCJJIiwiTSIsImVzY2FwZSIsIk4iLCJPIiwieSIsIlIiLCJUIiwiUCIsIlMiLCJfcmVhY3RfMTdfMF8yX3JlYWN0TW9kdWxlIiwiX3NjaGVkdWxlcl8wXzIwXzJfc2NoZWR1bGVyTW9kdWxlIiwibSIsInJlcXVpcmUkJDEiLCJyZXF1aXJlJCQyIiwiaWQiLCJfcmVhY3REb21fMTdfMF8yX3JlYWN0RG9tTW9kdWxlIiwiZGVmYXVsdFN0YXRlIiwidXRpbHMiLCJtYWluIiwiRGFpbHlOb3Rlc0ZvbGRlck1pc3NpbmdFcnJvciIsImdldEFsbERhaWx5Tm90ZXMiLCJnbG9iYWxTdG9yZS5kZWZhdWx0U3RhdGUiLCJsb2NhdGlvblN0b3JlLmRlZmF1bHRTdGF0ZSIsIm1lbW9TdG9yZS5kZWZhdWx0U3RhdGUiLCJ1c2VyU3RvcmUuZGVmYXVsdFN0YXRlIiwicXVlcnlTdG9yZS5kZWZhdWx0U3RhdGUiLCJkYWlseU5vdGVzU3RvcmUuZGVmYXVsdFN0YXRlIiwiZ2xvYmFsU3RvcmUucmVkdWNlciIsImxvY2F0aW9uU3RvcmUucmVkdWNlciIsIm1lbW9TdG9yZS5yZWR1Y2VyIiwidXNlclN0b3JlLnJlZHVjZXIiLCJxdWVyeVN0b3JlLnJlZHVjZXIiLCJkYWlseU5vdGVzU3RvcmUucmVkdWNlciIsImNyZWF0ZUNvbnRleHQiLCJnZXREYWlseU5vdGUiLCJnZXQiLCJyZWdleEVzY2FwZSIsInNldE1vbnRoIiwiaXNWYWxpZCIsImlzRGF0ZSIsIm9mZnNldCIsImZvcm1hdCIsImlzQWZ0ZXIiLCJpc0JlZm9yZSIsImxvY2FsZSIsInRvRGF0ZSIsImdldERheXNJbk1vbnRoIiwiZ2V0JDEiLCJyb3VuZCIsImlzVmFsaWQkMSIsIm1pbiIsIm1heCIsIm1vbWVudCIsImdldEFsbExpbmVzRnJvbUZpbGUiLCJnZXREYWlseU5vdGVTZXR0aW5ncyIsIlRGaWxlIiwiZ2V0SURGcm9tTGluZSIsImdldFBpbm5lZERhdGVGcm9tTGluZSIsIm5vcm1hbGl6ZVBhdGgiLCJOb3RpY2UiLCJnZXREYXRlRnJvbUZpbGUiLCJjcmVhdGVEYWlseU5vdGUiLCJleHRyYWN0Q29udGVudGZyb21UZXh0IiwiYXBpIiwidXNlU3RhdGUiLCJ1c2VDYWxsYmFjayIsImpzeFJ1bnRpbWVNb2R1bGUiLCJqc3hSdW50aW1lLmpzeCIsImpzeFJ1bnRpbWUuanN4cyIsImpzeFJ1bnRpbWUuRnJhZ21lbnQiLCJPbmx5V2hlbiIsInByb3BzIiwiY2hpbGRyZW4iLCJ3aGVuIiwiT25seSIsImdsb2JhbCIsIl9kZWZpbmVQcm9wZXJ0eSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiX3R5cGVvZiIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJfZ2V0UHJvdG90eXBlT2YiLCJfc2V0UHJvdG90eXBlT2YiLCJfaXRlcmFibGVUb0FycmF5IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2luaGVyaXRzIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfY3JlYXRlQ2xhc3MiLCJSZWFjdCIsIlJlYWN0RE9NIiwiX29iamVjdFNwcmVhZCIsIkN1c3RvbUV2ZW50IiwiVEl0ZW0iLCJlbnRpdHkiLCJuYW1lIiwiY2hhciIsImZpbGUiLCJMb2FkaW5nIiwiZGF0YSIsIkVkaXRvciIsImZvcndhcmRSZWYiLCJyZWYiLCJnbG9iYWxTdGF0ZSIsInVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlIiwidXNlQ29udGV4dCIsImFwcENvbnRleHQiLCJjbGFzc05hbWUiLCJpbml0aWFsQ29udGVudCIsInBsYWNlaG9sZGVyIiwic2hvd0NvbmZpcm1CdG4iLCJzaG93Q2FuY2VsQnRuIiwib25Db25maXJtQnRuQ2xpY2siLCJoYW5kbGVDb25maXJtQnRuQ2xpY2tDYWxsYmFjayIsIm9uQ2FuY2VsQnRuQ2xpY2siLCJoYW5kbGVDYW5jZWxCdG5DbGlja0NhbGxiYWNrIiwib25Db250ZW50Q2hhbmdlIiwiaGFuZGxlQ29udGVudENoYW5nZUNhbGxiYWNrIiwiZWRpdG9yUmVmIiwidXNlUmVmIiwidGlueVVuZG9SZWYiLCJyZWZyZXNoIiwidXNlUmVmcmVzaCIsImFjdHVhbFRva2VuIiwiY3VycmVudCIsInZhbHVlIiwidGlueVVuZG9BY3Rpb25zQ2FjaGUiLCJ0aW55VW5kb0luZGV4Q2FjaGUiLCJzdG9yYWdlIiwiVGlueVVuZG8iLCJpbnRlcnZhbCIsImluaXRpYWxBY3Rpb25zIiwiaW5pdGlhbEluZGV4Iiwic3Vic2NyaWJlIiwiYWN0aW9ucyIsImluZGV4Iiwic2V0IiwiZGVzdHJveSIsInJlbW92ZSIsInN0eWxlIiwiaGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwiZWxlbWVudCIsImZvY3VzIiwiaW5zZXJ0VGV4dCIsInJhd1RleHQiLCJwcmV2VmFsdWUiLCJzbGljZSIsInNlbGVjdGlvblN0YXJ0Iiwic2V0Q29udGVudCIsInRleHQiLCJnZXRDb250ZW50IiwiaGFuZGxlSW5zZXJ0VHJpZ2dlciIsImV2ZW50IiwiZmlsZU1hbmFnZXIiLCJhcHBTdG9yZSIsImdldFN0YXRlIiwiZGFpbHlOb3Rlc1N0YXRlIiwiYXBwIiwiY3VycmVudFRyaWdnZXIiLCJyZW1vdmVDaGFyTnVtIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiYmVoaW5kQ2hhck51bSIsImkiLCJpdGVtIiwiZmlsZVBhdGgiLCJnZW5lcmF0ZU1hcmtkb3duTGluayIsInBhdGgiLCJjb250YWlucyIsImV4dGVuc2lvbiIsImhhbmRsZUVkaXRvcklucHV0IiwiaGFuZGxlRWRpdG9yS2V5RG93biIsInN0b3BQcm9wYWdhdGlvbiIsImNvZGUiLCJtZXRhS2V5IiwiY3RybEtleSIsImhhbmRsZUNvbW1vbkNvbmZpcm1CdG5DbGljayIsImdldEVkaXRvckNvbnRlbnRDYWNoZSIsInJlc2V0U3RhdGUiLCJoYW5kbGVDb21tb25DYW5jZWxCdG5DbGljayIsImVkaXRvckNvbnRlbnRDYWNoZSIsImdldEVkaXRvckNvbnRlbnQiLCJydGEiLCJ0ZXh0YXJlYSIsIm1pbkhlaWdodCIsIm1pbldpZHRoIiwibWF4SGVpZ2h0Iiwib3ZlcmZsb3dZIiwiZGF0YVByb3ZpZGVyIiwidG9rZW4iLCJ1c2VkVGFncyIsIm1hcCIsImNvbXBvbmVudCIsImFmdGVyV2hpdGVzcGFjZSIsIm91dHB1dCIsImdldFN1Z2dlc3Rpb25zIiwidG9vbHMiLCJTYXZlTWVtb0J1dHRvbkxhYmVsIiwidXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZUVmZmVjdCIsImZpbmRJbmRleCIsIk1JTExJU0VDT05EU19JTl9EQVkiLCJNSUxMSVNFQ09ORFNfSU5fV0VFSyIsImZvcm1hdERpc3RhbmNlIiwiZm9ybWF0TG9uZyIsImZvcm1hdFJlbGF0aXZlIiwibG9jYWxpemUiLCJtYXRjaCIsImZvcm1hdHRlcnMiLCJsaWdodEZvcm1hdHRlcnMiLCJkZWZhdWx0TG9jYWxlIiwibG9uZ0Zvcm1hdHRlcnMiLCJzZXREYXRlTW9udGgiLCJpc0ZvY3VzYWJsZSIsIlJlYWN0LnVzZUxheW91dEVmZmVjdCIsIlJlYWN0LnVzZUVmZmVjdCIsImVmZmVjdCIsImdldENvbXB1dGVkU3R5bGUiLCJtYXRoTWF4IiwibWF0aE1pbiIsImhhc2giLCJhbGxQbGFjZW1lbnRzIiwicGxhY2VtZW50cyIsInBvcHBlck9mZnNldHMiLCJjb21wdXRlU3R5bGVzIiwiYXBwbHlTdHlsZXMiLCJmbGlwIiwicHJldmVudE92ZXJmbG93IiwiYXJyb3ciLCJoaWRlIiwiUmVhY3QudXNlUmVmIiwiUmVhY3QudXNlU3RhdGUiLCJSZWFjdC51c2VNZW1vIiwiaXNFcXVhbCIsImNyZWF0ZVBvcHBlciIsImRlZmF1bHRDcmVhdGVQb3BwZXIiLCJSZWFjdFByb3BUeXBlc1NlY3JldCIsIl9wcm9wVHlwZXNfMTVfOF8xX3Byb3BUeXBlc01vZHVsZSIsIm93bktleXMiLCJjcmVhdGVGb2N1c1RyYXAiLCJvYmoiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsInRhcmdldCIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsIm8iLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlN1cGVyIiwicmVzdWx0IiwiTmV3VGFyZ2V0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImFyZ3VtZW50cyIsImFwcGx5Iiwic2VsZiIsImNhbGwiLCJSZWZlcmVuY2VFcnJvciIsInNoYW0iLCJQcm94eSIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwiZSIsImdldFByb3RvdHlwZU9mIiwicmVxdWlyZSIsIlByb3BUeXBlcyIsIl9yZXF1aXJlIiwiRm9jdXNUcmFwIiwiX1JlYWN0JENvbXBvbmVudCIsIl9zdXBlciIsIl9jcmVhdGVTdXBlciIsIl90aGlzIiwidGFpbG9yZWRGb2N1c1RyYXBPcHRpb25zIiwicmV0dXJuRm9jdXNPbkRlYWN0aXZhdGUiLCJmb2N1c1RyYXBPcHRpb25zIiwib3B0aW9uTmFtZSIsImhhc093blByb3BlcnR5Iiwib25Qb3N0RGVhY3RpdmF0ZSIsImZvY3VzVHJhcEVsZW1lbnRzIiwiY29udGFpbmVyRWxlbWVudHMiLCJ1cGRhdGVQcmV2aW91c0VsZW1lbnQiLCJkb2N1bWVudCIsIm9wdGlvblZhbHVlIiwibm9kZSIsIl90aGlzJGdldERvY3VtZW50IiwiZ2V0RG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiRXJyb3IiLCJjb25jYXQiLCJnZXROb2RlRm9yT3B0aW9uIiwicHJldmlvdXNseUZvY3VzZWRFbGVtZW50IiwiY3VycmVudERvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsIl90aGlzMiIsIl90aGlzJHRhaWxvcmVkRm9jdXNUciIsImNoZWNrQ2FuUmV0dXJuRm9jdXMiLCJfdGhpcyR0YWlsb3JlZEZvY3VzVHIyIiwicHJldmVudFNjcm9sbCIsImZvY3VzVHJhcCIsImRlYWN0aXZhdGUiLCJyZXR1cm5Gb2N1cyIsImZpbmlzaERlYWN0aXZhdGlvbiIsInJldHVybkZvY3VzTm9kZSIsImdldFJldHVybkZvY3VzTm9kZSIsImNhblJldHVybkZvY3VzIiwidGhlbiIsImZvY3VzVHJhcEVsZW1lbnRET01Ob2RlcyIsImZpbmRET01Ob2RlIiwibm9kZXNFeGlzdCIsInNvbWUiLCJfY3JlYXRlRm9jdXNUcmFwIiwiYWN0aXZlIiwiYWN0aXZhdGUiLCJwYXVzZWQiLCJwYXVzZSIsInNldHVwRm9jdXNUcmFwIiwicHJldlByb3BzIiwidXBkYXRlQ29udGFpbmVyRWxlbWVudHMiLCJoYXNBY3RpdmF0ZWQiLCJoYXNEZWFjdGl2YXRlZCIsImhhc1BhdXNlZCIsImhhc1VucGF1c2VkIiwiZGVhY3RpdmF0ZVRyYXAiLCJ1bnBhdXNlIiwiX3RoaXMzIiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJ0eXBlIiwiRnJhZ21lbnQiLCJjb21wb3NlZFJlZkNhbGxiYWNrIiwiY2hpbGRXaXRoUmVmIiwiY2xvbmVFbGVtZW50IiwiQ29tcG9uZW50IiwiRWxlbWVudFR5cGUiLCJFbGVtZW50IiwiRnVuY3Rpb24iLCJwcm9wVHlwZXMiLCJib29sIiwic2hhcGUiLCJvYmplY3QiLCJvbkFjdGl2YXRlIiwiZnVuYyIsIm9uUG9zdEFjdGl2YXRlIiwiY2hlY2tDYW5Gb2N1c1RyYXAiLCJvbkRlYWN0aXZhdGUiLCJpbml0aWFsRm9jdXMiLCJvbmVPZlR5cGUiLCJpbnN0YW5jZU9mIiwic3RyaW5nIiwiZmFsbGJhY2tGb2N1cyIsImVzY2FwZURlYWN0aXZhdGVzIiwiY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXMiLCJzZXRSZXR1cm5Gb2N1cyIsImFsbG93T3V0c2lkZUNsaWNrIiwiYXJyYXlPZiIsImRlZmF1bHRQcm9wcyIsIm1vZHVsZSIsImdldEN1cnNvclBvc3Rpb24iLCJpbnB1dCIsIm9mZnNldExlZnQiLCJpbnB1dFgiLCJvZmZzZXRUb3AiLCJpbnB1dFkiLCJvZmZzZXRIZWlnaHQiLCJpbnB1dEgiLCJvZmZzZXRXaWR0aCIsImlucHV0VyIsInNlbGVjdGlvbkVuZCIsInNlbGVjdGlvblBvaW50IiwiZGl2IiwiY3JlYXRlRWxlbWVudCIsImNvcHlTdHlsZSIsIndpbmRvdyIsInNldFByb3BlcnR5IiwiZ2V0UHJvcGVydHlWYWx1ZSIsInBvc2l0aW9uIiwidmlzaWJpbGl0eSIsIndoaXRlU3BhY2UiLCJzd2FwIiwiaW5wdXRWYWx1ZSIsInRhZ05hbWUiLCJyZXBsYWNlIiwidGV4dENvbnRlbnQiLCJzdWJzdHJpbmciLCJzcGFuIiwiYXBwZW5kQ2hpbGQiLCJib2R5Iiwic3BhblgiLCJzcGFuWSIsInNwYW5IIiwic3BhblciLCJyZW1vdmVDaGlsZCIsIngiLCJoIiwidyIsImlzTGlzdCIsImlzRWRpdG9yIiwiaXNFZGl0b3JHbyIsInBvc2l0aW9uWCIsIk1lbW9FZGl0b3IiLCJpc0xpc3RTaG93biIsInRvZ2dsZUxpc3QiLCJ1c2VUb2dnbGUiLCJpc0VkaXRvclNob3duIiwidG9nZ2xlRWRpdG9yIiwicHJldkdsb2JhbFN0YXRlUmVmIiwic2VsZWN0ZWQiLCJzZXRTZWxlY3RlZCIsImlzUG9wcGVyT3BlbiIsInNldElzUG9wcGVyT3BlbiIsInBvcHBlclJlZiIsInBvcHBlckVsZW1lbnQiLCJzZXRQb3BwZXJFbGVtZW50IiwicG9wcGVyIiwiRGVmYXVsdFByZWZpeCIsIlBsYXRmb3JtIiwiaXNNb2JpbGUiLCJpbm5lcldpZHRoIiwiVXNlQnV0dG9uVG9TaG93RWRpdG9yIiwiRGVmYXVsdEVkaXRvckxvY2F0aW9uIiwiZGl2VGhpcyIsIm1lbW9FZGl0b3JEaXYiLCJzcmMiLCJzaG93RWRpdG9yU3ZnIiwiYnV0dG9uVG9wIiwiaW5uZXJIZWlnaHQiLCJidXR0b25MZWZ0IiwidG9wIiwibGVmdCIsIm9uY2xpY2siLCJzY2FsZUVsZW1lbnRBbmkiLCJhbmltYXRlIiwidHJhbnNmb3JtIiwiZHVyYXRpb24iLCJpdGVyYXRpb25zIiwiSW5maW5pdHkiLCJyZXZlcnNlIiwicHJlcGVuZCIsIm1lbW9saXN0U2Nyb2xsIiwib25zY3JvbGwiLCJzY2FsZUVkaXRvckVsZW1lbnRBbmkiLCJvcGFjaXR5Iiwic2NhbGVPbmVFbGVtZW50QW5pIiwiY2FuY2VsIiwidXNlUG9wcGVyIiwicGxhY2VtZW50IiwibW9kaWZpZXJzIiwib3B0aW9ucyIsImFsbG93ZWRBdXRvUGxhY2VtZW50cyIsInJvb3RCb3VuZGFyeSIsInNlbGV0b3JQb3B1cFdpZHRoIiwiY2xvc2VQb3BwZXIiLCJtYXJrTWVtb0lkIiwiZWRpdG9yQ3VycmVudFZhbHVlIiwibWVtb0xpbmtUZXh0Iiwic2V0TWFya01lbW9JZCIsImVkaXRNZW1vSWQiLCJlZGl0TWVtbyIsIm1lbW9TZXJ2aWNlIiwiZ2V0TWVtb0J5SWQiLCJjb250ZW50IiwiaGFuZGxlUGFzdGVFdmVudCIsImNsaXBib2FyZERhdGEiLCJmaWxlcyIsInByZXZlbnREZWZhdWx0IiwidXJsIiwiaGFuZGxlVXBsb2FkRmlsZSIsImhhbmRsZURyb3BFdmVudCIsImRhdGFUcmFuc2ZlciIsImhhbmRsZUNsaWNrRXZlbnQiLCJoYW5kbGVLZXlEb3duRXZlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInN0YXJ0c1dpdGgiLCJpbWFnZSIsInJlc291cmNlU2VydmljZSIsInVwbG9hZCIsImVycm9yIiwiaGFuZGxlU2F2ZUJ0bkNsaWNrIiwiZ2xvYmFsU3RhdGVTZXJ2aWNlIiwicmVwbGFjZUFsbCIsInByZXZNZW1vIiwiZWRpdGVkTWVtbyIsInVwZGF0ZU1lbW8iLCJtZW1vVHlwZSIsInVwZGF0ZWRBdCIsImdldERhdGVUaW1lU3RyaW5nIiwiRGF0ZSIsIm5vdyIsInNldEVkaXRNZW1vSWQiLCJuZXdNZW1vIiwiY3JlYXRlTWVtbyIsInB1c2hNZW1vIiwiY2xlYXJRdWVyeSIsIm1lc3NhZ2UiLCJoYW5kbGVDYW5jZWxCdG5DbGljayIsImhhbmRsZUNvbnRlbnRDaGFuZ2UiLCJ0ZW1wRGl2IiwiaW5uZXJIVE1MIiwiaW5uZXJUZXh0IiwidHJpbSIsImN1cnJlbnRWYWx1ZSIsInByZXZTdHJpbmciLCJuZXh0U3RyaW5nIiwiZW5kc1dpdGgiLCJoYW5kbGVEYXRlSW5zZXJ0VHJpZ2dlciIsImRhdGUiLCJ0b2RheU1vbWVudCIsIkluc2VydERhdGVGb3JtYXQiLCJzZXRTZWxlY3Rpb25SYW5nZSIsImhhbmRsZUNoYW5nZVN0YXR1cyIsImhhbmRsZVNob3dFZGl0b3IiLCJmbGFnIiwiaGFuZGxlVGFnVGV4dEJ0bkNsaWNrIiwibmV4dFZhbHVlIiwiY3Vyc29ySW5kZXgiLCJ1cGRhdGVEYXRlU2VsZWN0b3JQb3B1cFBvc2l0aW9uIiwiZWRpdG9yV2lkdGgiLCJjbGllbnRXaWR0aCIsImhhbmRsZVVwbG9hZEZpbGVCdG5DbGljayIsImlucHV0RWwiLCJtdWx0aXBsZSIsImFjY2VwdCIsIm9uY2hhbmdlIiwiY2xpY2siLCJzaG93RWRpdFN0YXR1cyIsImVkaXRvckNvbmZpZyIsInVzZU1lbW8iLCJzaG93VG9vbHMiLCJ0YWciLCJpbWFnZVN2ZyIsImpvdXJuYWxTdmciLCJ0YXNrU3ZnIiwic3R5bGVzIiwiYXR0cmlidXRlcyIsIlNlYXJjaEJhciIsImxvY2F0aW9uU3RhdGUiLCJxdWVyeSIsImhhbmRsZU1lbW9UeXBlSXRlbUNsaWNrIiwicHJldlR5cGUiLCJsb2NhdGlvblNlcnZpY2UiLCJzZXRNZW1vVHlwZVF1ZXJ5IiwiaGFuZGxlVGV4dFF1ZXJ5SW5wdXQiLCJjdXJyZW50VGFyZ2V0Iiwic2V0VGV4dFF1ZXJ5Iiwic2VhcmNoIiwibWVtb1NwZWNpYWxUeXBlcyIsInQiLCJpZHgiLCJwcmV2UmVxdWVzdFRpbWVzdGFtcCIsIk1lbW9zSGVhZGVyIiwiZmlsdGVyIiwiaXNNb2JpbGVWaWV3IiwicXVlcnlTdGF0ZSIsInF1ZXJpZXMiLCJ0aXRsZVRleHQiLCJzZXRUaXRsZVRleHQiLCJxdWVyeVNlcnZpY2UiLCJnZXRRdWVyeUJ5SWQiLCJ0aXRsZSIsImhhbmRsZU1lbW9UZXh0Q2xpY2siLCJmZXRjaEFsbE1lbW9zIiwiY2F0Y2giLCJoYW5kbGVTaG93U2lkZWJhckJ0bkNsaWNrIiwic2V0U2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3IiwibWVudVN2ZyIsImFzc2VydFRoaXNJbml0aWFsaXplZCIsImFycmF5TGlrZVRvQXJyYXkiLCJhcnJheVdpdGhIb2xlcyIsIml0ZXJhYmxlVG9BcnJheSIsInVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5Iiwibm9uSXRlcmFibGVSZXN0IiwiTWVtb0ZpbHRlciIsInRhZ1F1ZXJ5IiwidGV4dFF1ZXJ5IiwicXVlcnlGaWx0ZXIiLCJzaG93RmlsdGVyIiwiZnJvbSIsInRvIiwic2V0TWVtb0ZpbHRlciIsInNldFRhZ1F1ZXJ5IiwiZ2V0VGV4dFdpdGhNZW1vVHlwZSIsInNldEZyb21BbmRUb1F1ZXJ5IiwiZ2V0RGF0ZVN0cmluZyIsImkxOG5leHQiLCJhZGQiLCJQcm92aWRlciIsInN0b3JlIiwiY29udGV4dCIsIkNvbnRleHQiLCJhcHBTdGF0ZSIsInNldEFwcFN0YXRlIiwidW5zdWJzY3JpYmUiLCJucyIsIkJhc2VEaWFsb2ciLCJjbGlja1NwYWNlRGVzdHJveSIsImhhbmRsZVNwYWNlQ2xpY2tlZCIsImNvbmZpZyIsIkRpYWxvZ0NvbXBvbmVudCIsImFwcGVuZCIsImZpcnN0RWxlbWVudENoaWxkIiwiY2xhc3NMaXN0IiwiY2JzIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsIkFOSU1BVElPTl9EVVJBVElPTiIsImRpYWxvZ1Byb3BzIiwidXNlQXBwQ29udGV4dCIsInJlbmRlciIsIlByZXZpZXdJbWFnZURpYWxvZyIsImltZ1VybCIsImZpbGVwYXRoIiwiaW1nUmVmIiwiaW1nV2lkdGgiLCJzZXRJbWdXaWR0aCIsInZhdWx0IiwiZ2V0SW1hZ2VTaXplIiwid2lkdGgiLCJoYW5kbGVDbG9zZUJ0bkNsaWNrIiwiaGFuZGxlRGVjcmVhc2VJbWFnZVNpemUiLCJoYW5kbGVJbmNyZWFzZUltYWdlU2l6ZSIsImNvbnZlcnRCYXNlNjRUb0Jsb2IiLCJiYXNlNjQiLCJieXRlcyIsImF0b2IiLCJhYiIsIkFycmF5QnVmZmVyIiwiaWEiLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsIkJsb2IiLCJjb3B5SW1hZ2VUb0NsaXBib2FyZCIsIm15QmFzZTY0Iiwic3BsaXQiLCJibG9iSW5wdXQiLCJjbGlwYm9hcmRJdGVtSW5wdXQiLCJDbGlwYm9hcmRJdGVtIiwibmF2aWdhdG9yIiwid3JpdGUiLCJidWZmZXIiLCJhZGFwdGVyIiwicmVhZEJpbmFyeSIsImFyciIsImJsb2IiLCJjbG9zZSIsIkltYWdlIiwiYWx0IiwicmVmZXJyZXJQb2xpY3kiLCJoYW5kbGVJbWFnZUNsaWNrIiwiZ2V0UGF0aE9mSW1hZ2UiLCJnZXRSZXNvdXJjZVBhdGgiLCJkZXRlY3RXaWtpSW50ZXJuYWxMaW5rIiwibGluZVRleHQiLCJtZXRhZGF0YUNhY2hlIiwiaW50ZXJuYWxGaWxlTmFtZSIsIldJS0lfSU1BR0VfVVJMX1JFRyIsImV4ZWMiLCJpbnRlcm5hbEFsdE5hbWUiLCJnZXRGaXJzdExpbmtwYXRoRGVzdCIsImRlY29kZVVSSUNvbXBvbmVudCIsImxpbmtUZXh0IiwiYWx0VGV4dCIsImltYWdlUGF0aCIsImRldGVjdE1ESW50ZXJuYWxMaW5rIiwiTUFSS0RPV05fVVJMX1JFRyIsIk1lbW9DYXJkRGlhbG9nIiwibWVtbyIsInNldE1lbW8iLCJjcmVhdGVkQXRTdHIiLCJjcmVhdGVkQXQiLCJsaW5rTWVtb3MiLCJzZXRMaW5rTWVtb3MiLCJsaW5rZWRNZW1vcyIsInNldExpbmtlZE1lbW9zIiwiZXh0ZXJuYWxJbWFnZVVybHMiLCJpbnRlcm5hbEltYWdlVXJscyIsImFsbE1hcmtkb3duTGluayIsImFsbEludGVybmFsTGluayIsIklNQUdFX1VSTF9SRUciLCJ0ZXN0IiwiYWxsRXh0ZXJuYWxJbWFnZVVybHMiLCJhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMiLCJBcnJheSIsIk1BUktET1dOX1dFQl9VUkxfUkVHIiwib25lIiwicHVzaCIsInR3byIsImZldGNoTGlua2VkTWVtb3MiLCJtYXRjaGVkQXJyIiwibWF0Y2hBbGwiLCJNRU1PX0xJTktfUkVHIiwibWF0Y2hSZXMiLCJtZW1vVGVtcCIsImRhdGVTdHIiLCJnZXRMaW5rZWRNZW1vcyIsInNvcnQiLCJhIiwiYiIsImdldFRpbWVTdGFtcEJ5RGF0ZSIsImhhbmRsZU1lbW9Db250ZW50Q2xpY2siLCJ0YXJnZXRFbCIsIm5leHRNZW1vSWQiLCJkYXRhc2V0IiwibmV4dE1lbW8iLCJoYW5kbGVMaW5rZWRNZW1vQ2xpY2siLCJoYW5kbGVFZGl0TWVtb0J0bkNsaWNrIiwiZWRpdCIsIl9faHRtbCIsImZvcm1hdE1lbW9Db250ZW50IiwiXyIsImJvdHRvbSIsInpJbmRleCIsInJhd3RleHQiLCJwYXJzZUh0bWxUb1Jhd1RleHQiLCJyZXF1ZXN0IiwiU2hhcmVNZW1vSW1hZ2VEaWFsb2ciLCJwcm9wc01lbW8iLCJtZW1vcyIsIm1lbW9TdGF0ZSIsIm1lbW9zTGVuZ3RoIiwiY3JlYXRlZERheXMiLCJNYXRoIiwiY2VpbCIsImZvb3RlckVuZCIsIlNoYXJlRm9vdGVyRW5kIiwiVXNlck5hbWUiLCJmb290ZXJTdGFydCIsIlNoYXJlRm9vdGVyU3RhcnQiLCJ0b1N0cmluZyIsInNob3J0Y3V0SW1nVXJsIiwic2V0U2hvcnRjdXRJbWdVcmwiLCJpbWdBbW91bnQiLCJzZXRJbWdBbW91bnQiLCJtZW1vRWxSZWYiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwaXhlbFJhdGlvIiwiZGV2aWNlUGl4ZWxSYXRpbyIsImhhbmRsZUNvcHl0b0NsaXBib2FyZEJ0bkNsaWNrIiwiZGl2cyIsImdldEF0dHJpYnV0ZSIsImhhbmRsZUltYWdlT25Mb2FkIiwiZXYiLCJzaGFyZSIsIk1lbW8iLCJzaG93Q29uZmlybURlbGV0ZUJ0biIsInRvZ2dsZUNvbmZpcm1EZWxldGVCdG4iLCJoYW5kbGVTaG93TWVtb1N0b3J5RGlhbG9nIiwiaGFuZGxlTWFya01lbW9DbGljayIsImVsZW0iLCJoYW5kbGVFZGl0TWVtb0NsaWNrIiwiaGFuZGxlU291cmNlTWVtb0NsaWNrIiwiaGFuZGxlRGVsZXRlTWVtb0NsaWNrIiwiaGlkZU1lbW9CeUlkIiwiaGFuZGxlTW91c2VMZWF2ZU1lbW9XcmFwcGVyIiwiaGFuZGxlR2VuTWVtb0ltYWdlQnRuQ2xpY2siLCJoYW5kbGVNZW1vS2V5RG93biIsImhhbmRsZU1lbW9Eb3VibGVLZXlEb3duIiwibWVtb0lkIiwibW9yZSIsIm1lbW9pZCIsImVuY29kZUh0bWwiLCJwYXJzZVJhd1RleHRUb0h0bWwiLCJqb2luIiwic2hvdWxkVXNlTWFya2Rvd25QYXJzZXIiLCJzaG91bGRIaWRlSW1hZ2VVcmwiLCJwYXJzZU1hcmtlZFRvSHRtbCIsIlRBR19SRUciLCJGSVJTVF9UQUdfUkVHIiwiTElOS19SRUciLCJNRF9MSU5LX1JFRyIsInRlbXBEaXZDb250YWluZXIiLCJjIiwiTWVtb0xpc3QiLCJpc0ZldGNoaW5nIiwic2V0RmV0Y2hTdGF0dXMiLCJ3cmFwcGVyRWxlbWVudCIsInF1ZXJ5SWQiLCJzaG93TWVtb0ZpbHRlciIsInNob3duTWVtb3MiLCJIaWRlRG9uZVRhc2tzIiwic2hvdWxkU2hvdyIsImZpbHRlcnMiLCJKU09OIiwicGFyc2UiLCJxdWVyeXN0cmluZyIsImlzQXJyYXkiLCJjaGVja1Nob3VsZFNob3dNZW1vV2l0aEZpbHRlcnMiLCJ0YWdzU2V0IiwiU2V0IiwiaXRlbXMiLCJ0ZW1wIiwiTk9QX0ZJUlNUX1RBR19SRUciLCJoYXMiLCJpbmNsdWRlcyIsImdldE15QWxsRGFpbHlOb3RlcyIsInNjcm9sbFRvIiwiaGFuZGxlTWVtb0xpc3RDbGljayIsIndvcmtzcGFjZSIsImN1cnJUYWdRdWVyeSIsInNvdXJjZVBhdGgiLCJvcGVuTGlua1RleHQiLCJEZWxldGVkTWVtbyIsImhhbmRsZURlbGV0ZWRNZW1vQWN0aW9uIiwiZGVsZXRlZEF0U3RyIiwiZGVsZXRlZEF0IiwiZGVsZXRlTWVtb0J5SWQiLCJoYW5kbGVSZXN0b3JlTWVtb0NsaWNrIiwicmVzdG9yZU1lbW9CeUlkIiwiTWVtb1RyYXNoIiwibG9hZGluZ1N0YXRlIiwidXNlTG9hZGluZyIsImRlbGV0ZWRNZW1vcyIsInNldERlbGV0ZWRNZW1vcyIsImZldGNoRGVsZXRlZE1lbW9zIiwiZmluYWxseSIsInNldEZpbmlzaCIsImlzTG9hZGluZyIsIlByZWZlcmVuY2VzU2VjdGlvbiIsInNob3VsZFNwbGl0TWVtb1dvcmQiLCJkZW1vTWVtb0NvbnRlbnQiLCJoYW5kbGVPcGVuVGlueVVuZG9DaGFuZ2VkIiwic2V0QXBwU2V0dGluZyIsImhhbmRsZVNwbGl0V29yZHNWYWx1ZUNoYW5nZWQiLCJoYW5kbGVIaWRlSW1hZ2VVcmxWYWx1ZUNoYW5nZWQiLCJoYW5kbGVVc2VNYXJrZG93blBhcnNlckNoYW5nZWQiLCJoYW5kbGVFeHBvcnRCdG5DbGljayIsImZvcm1hdGVkTWVtb3MiLCJqc29uU3RyIiwic3RyaW5naWZ5Iiwic2V0QXR0cmlidXRlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZGlzcGxheSIsImNoZWNrYm94QWN0aXZlIiwiY2hlY2tib3giLCJTZXR0aW5nIiwiaG9tZVJvdXRlciIsIk1lbW9zIiwiQWJvdXRTaXRlRGlhbG9nIiwiTWVudUJ0bnNQb3B1cCIsInNob3duU3RhdHVzIiwic2V0U2hvd25TdGF0dXMiLCJkYWlseU5vdGVzU2VydmljZSIsInBvcHVwRWxSZWYiLCJoYW5kbGVDbGlja091dHNpZGUiLCJjYXB0dXJlIiwib25jZSIsImhhbmRsZU15QWNjb3VudEJ0bkNsaWNrIiwic2V0dGluZyIsIm9wZW4iLCJvcGVuVGFiQnlJZCIsImhhbmRsZU1lbW9zVHJhc2hCdG5DbGljayIsInB1c2hIaXN0b3J5IiwiaGFuZGxlQWJvdXRCdG5DbGljayIsIkRhaWx5TWVtbyIsInRpbWVTdHIiLCJnZXRUaW1lU3RyaW5nIiwiRGF0ZVBpY2tlciIsImRhdGVzdGFtcCIsImhhbmRsZURhdGVTdGFtcENoYW5nZSIsImN1cnJlbnREYXRlU3RhbXAiLCJzZXRDdXJyZW50RGF0ZVN0YW1wIiwiZ2V0TW9udGhGaXJzdERheURhdGVTdGFtcCIsImZpcnN0RGF0ZSIsImZpcnN0RGF0ZURheSIsImdldERheSIsImRheUxpc3QiLCJnZXRUaW1lIiwiREFJTFlfVElNRVNUQU1QIiwiZGF5QW1vdW50IiwiZ2V0TW9udGhEYXlBbW91bnQiLCJoYW5kbGVEYXRlSXRlbUNsaWNrIiwiaGFuZGxlQ2hhbmdlTW9udGhCdG5DbGljayIsInllYXIiLCJnZXRGdWxsWWVhciIsIm1vbnRoIiwiZ2V0TW9udGgiLCJuZXh0RGF0ZVN0YW1wIiwiYXJyb3dMZWZ0IiwiYXJyb3dSaWdodCIsImQiLCJkYXRlVGVtcCIsImN1cnJlbnREYXRlIiwibmV4dE1vbnRoRGF0ZSIsInRpbWVzdGFtcCIsIkRhaWx5TWVtb0RpYXJ5RGlhbG9nIiwic2V0TWVtb3MiLCJnZXREYXRlU3RhbXBCeURhdGUiLCJzaG93RGF0ZVBpY2tlciIsInRvZ2dsZVNob3dEYXRlUGlja2VyIiwibWVtb3NFbFJlZiIsInNldERhaWx5TWVtb3MiLCJkYWlseU1lbW9zIiwiaGFuZGxlU2hhcmVCdG5DbGljayIsImhhbmRsZURhdGFQaWNrZXJDaGFuZ2UiLCJyZXR1cm5PYmplY3RzIiwiZ2V0RGF0ZSIsIlVzZXJCYW5uZXIiLCJ0YWdzIiwidXNlclN0YXRlIiwidXNlciIsInVzZXJuYW1lIiwic2hvdWxkU2hvd1BvcHVwQnRucyIsInNldFNob3VsZFNob3dQb3B1cEJ0bnMiLCJoYW5kbGVVc2VybmFtZUNsaWNrIiwiaGFuZGxlUG9wdXBCdG5DbGljayIsInNpZGViYXJFbCIsInBvcHVwRWwiLCJzY3JvbGxUb3AiLCJzaG93RGFpbHlNZW1vRGlhcnlEaWFsb2ciLCJudWxsSXRlbSIsIlNlbGVjdG9yIiwiZGF0YVNvdXJjZSIsImhhbmRsZVZhbHVlQ2hhbmdlZCIsInNob3dTZWxlY3RvciIsInRvZ2dsZVNlbGVjdG9yU3RhdHVzIiwic2VsZXRvckVsUmVmIiwiY3VycmVudEl0ZW0iLCJoYW5kbGVJdGVtQ2xpY2siLCJoYW5kbGVDdXJyZW50VmFsdWVDbGljayIsIkNyZWF0ZVF1ZXJ5RGlhbG9nIiwic2V0VGl0bGUiLCJzZXRGaWx0ZXJzIiwicmVxdWVzdFN0YXRlIiwic2hvd25NZW1vTGVuZ3RoIiwicXVlcnlUZW1wIiwiaGFuZGxlVGl0bGVJbnB1dENoYW5nZSIsImVkaXRlZFF1ZXJ5IiwidXBkYXRlUXVlcnkiLCJlZGl0UXVlcnkiLCJnZXRNeUFsbFF1ZXJpZXMiLCJjcmVhdGVRdWVyeSIsInB1c2hRdWVyeSIsImhhbmRsZUFkZEZpbHRlckJlbkNsaWNrIiwibGFzdEZpbHRlciIsImdldERlZmF1bHRGaWx0ZXIiLCJoYW5kbGVGaWx0ZXJDaGFuZ2UiLCJoYW5kbGVGaWx0ZXJSZW1vdmUiLCJmIiwiRmlsdGVySW5wdXRlciIsImlucHV0RWxlbWVudHMiLCJzZXRJbnB1dEVsZW1lbnRzIiwib3BlcmF0b3JFbGVtZW50Iiwia2V5cyIsImZpbHRlckNvbnN0cyIsInZhbHVlcyIsIm9wZXJhdG9ycyIsIm9wZXJhdG9yIiwiaGFuZGxlT3BlcmF0b3JDaGFuZ2UiLCJ2YWx1ZUVsZW1lbnQiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsImhhbmRsZVJlbGF0aW9uQ2hhbmdlIiwicmVsYXRpb24iLCJoYW5kbGVUeXBlQ2hhbmdlIiwib3BzIiwiaGFuZGxlUmVtb3ZlQnRuQ2xpY2siLCJyZWxhdGlvbkNvbnN0cyIsIk1lbW9GaWx0ZXJJbnB1dGVyIiwiUXVlcnlMaXN0Iiwic29ydGVkUXVlcmllcyIsInBpbm5lZEF0Iiwic2hvd0NyZWF0ZVF1ZXJ5RGlhbG9nIiwiaXNTdWNjZWVkIiwiUXVlcnlJdGVtQ29udGFpbmVyIiwiaXNBY3RpdmUiLCJzaG93QWN0aW9uQnRucyIsInRvZ2dsZVNob3dBY3Rpb25CdG5zIiwiaGFuZGxlUXVlcnlDbGljayIsImhhbmRsZVNob3dBY3Rpb25CdG5DbGljayIsImhhbmRsZUFjdGlvbkJ0bkNvbnRhaW5lck1vdXNlTGVhdmUiLCJkZWxldGVRdWVyeSIsImhhbmRsZUVkaXRRdWVyeUJ0bkNsaWNrIiwiaGFuZGxlUGluUXVlcnlCdG5DbGljayIsInVucGluUXVlcnkiLCJwaW5RdWVyeSIsImhhbmRsZURlbGV0ZUJ0bk1vdXNlTGVhdmUiLCJtb3JlV2hpdGUiLCJUYWdMaXN0IiwidGFnc1RleHQiLCJzZXRUYWdzIiwidXBkYXRlVGFnc1N0YXRlIiwic29ydGVkVGFncyIsInJvb3QiLCJzdWJUYWdzIiwic3VidGFncyIsInRlbXBPYmoiLCJ0YWdUZXh0IiwiaW5pdGlhbGl6ZWQiLCJUYWdJdGVtQ29udGFpbmVyIiwiaGFzU3ViVGFncyIsInNob3dTdWJUYWdzIiwidG9nZ2xlU3ViVGFncyIsImhhbmRsZVRhZ0NsaWNrIiwiY29weVRleHRUb0NsaXBib2FyZCIsInBhdGhuYW1lIiwic2V0UGF0aG5hbWUiLCJoYW5kbGVUb2dnbGVCdG5DbGljayIsInN0IiwidGFibGVDb25maWciLCJnZXRJbml0aWFsVXNhZ2VTdGF0IiwidXNlZERheXNBbW91bnQiLCJiZWdpbkRheVRpbWVzdGFtcCIsImluaXRpYWxVc2FnZVN0YXQiLCJjb3VudCIsIlVzYWdlSGVhdE1hcCIsInRvZGF5VGltZVN0YW1wIiwidG9kYXlEYXkiLCJudWxsQ2VsbCIsImZpbGwiLCJzdGFydERhdGUiLCJzdWJ0cmFjdCIsImVuZE9mIiwiYWxsU3RhdCIsInNldEFsbFN0YXQiLCJwb3B1cFN0YXQiLCJzZXRQb3B1cFN0YXQiLCJjdXJyZW50U3RhdCIsInNldEN1cnJlbnRTdGF0IiwiY29udGFpbmVyRWxSZWYiLCJwb3B1cFJlZiIsIm5ld1N0YXQiLCJjcmVhdGlvbkRhdGUiLCJkaWZmIiwiaGFuZGxlVXNhZ2VTdGF0SXRlbU1vdXNlRW50ZXIiLCJ0b3BWYWx1ZSIsImhhbmRsZVVzYWdlU3RhdEl0ZW1Nb3VzZUxlYXZlIiwiaGFuZGxlVXNhZ2VTdGF0SXRlbUNsaWNrIiwidG9EYXRlU3RyaW5nIiwidiIsImNvbG9yTGV2ZWwiLCJTaWRlYmFyIiwic2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3Iiwid3JhcHBlckVsUmVmIiwiaGFuZGxlQ2xpY2tPdXRzaWRlT2ZXcmFwcGVyIiwic2lkZXJiYXJTaG93biIsInBhcmVudE5vZGUiLCJTSE9XX1NJREVSQkFSX01PQklMRV9DTEFTU05BTUUiLCJob21lUm91dGVyU3dpdGNoIiwiaGFuZGxlV2luZG93UmVzaXplIiwic2V0SXNNb2JpbGVWaWV3IiwiSXRlbVZpZXciLCJBcHAiLCJQbHVnaW5TZXR0aW5nVGFiIiwiUGx1Z2luIiwiYXBwSGFzRGFpbHlOb3Rlc1BsdWdpbkxvYWRlZCIsIkZpbGVWaWV3Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUFhLGtCQUFrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUS9CLElBQUksd0JBQXdCLE9BQU87QUFDbkMsSUFBSSxpQkFBaUIsT0FBTyxVQUFVO0FBQ3RDLElBQUksbUJBQW1CLE9BQU8sVUFBVTtBQUV4QyxvQkFBa0IsS0FBSztBQUN0QixNQUFJLFFBQVEsUUFBUSxRQUFRLFFBQVc7QUFDdEMsVUFBTSxJQUFJLFVBQVU7QUFBQTtBQUdyQixTQUFPLE9BQU87QUFBQTtBQUdmLDJCQUEyQjtBQUMxQixNQUFJO0FBQ0gsUUFBSSxDQUFDLE9BQU8sUUFBUTtBQUNuQixhQUFPO0FBQUE7QUFNUixRQUFJLFFBQVEsSUFBSSxPQUFPO0FBQ3ZCLFVB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QUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUc7QUFBQSxFQUNkLElBQUk7QUFBQSxHQUNIO0FBQUEsRUFDRCxNQUFNLENBQUM7QUFBQSxFQUNQLElBQUksQ0FBQyxHQUFHO0FBQUEsRUFDUixJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRztBQUFBLEVBQ1IsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHO0FBQUEsRUFDZCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHO0FBQUEsRUFDWCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHO0FBQUEsRUFDWCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRztBQUFBLEVBQ1IsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRztBQUFBLEVBQ1gsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJO0FBQUEsRUFDZixJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRztBQUFBLEVBQ1IsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRztBQUFBLEVBQ1gsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHO0FBQUEsRUFDZCxJQUFJO0FB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsic3JjL2NvbnN0YW50cy50cyIsIm5vZGVfbW9kdWxlcy9fb2JqZWN0LWFzc2lnbkA0LjEuMUBvYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdEAxNy4wLjJAcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdEAxNy4wLjJAcmVhY3QvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX3NjaGVkdWxlckAwLjIwLjJAc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCJub2RlX21vZHVsZXMvX3NjaGVkdWxlckAwLjIwLjJAc2NoZWR1bGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kb21AMTcuMC4yQHJlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kb21AMTcuMC4yQHJlYWN0LWRvbS9pbmRleC5qcyIsInNyYy9sYWJzL2NvbWJpbmVSZWR1Y2Vycy50cyIsInNyYy9sYWJzL2NyZWF0ZVN0b3JlLnRzIiwic3JjL3N0b3Jlcy9nbG9iYWxTdGF0ZVN0b3JlLnRzIiwic3JjL3N0b3Jlcy9sb2NhdGlvblN0b3JlLnRzIiwic3JjL2hlbHBlcnMvdXRpbHMudHMiLCJzcmMvc3RvcmVzL21lbW9TdG9yZS50cyIsInNyYy9zdG9yZXMvdXNlclN0b3JlLnRzIiwic3JjL3N0b3Jlcy9xdWVyeVN0b3JlLnRzIiwibm9kZV9tb2R1bGVzL19vYnNpZGlhbi1kYWlseS1ub3Rlcy1pbnRlcmZhY2VAMC45LjRAb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlL2Rpc3QvbWFpbi5qcyIsInNyYy9zdG9yZXMvZGFpbHlOb3Rlc1N0b3JlLnRzIiwic3JjL3N0b3Jlcy9hcHBTdG9yZS50cyIsInNyYy9zdG9yZXMvYXBwQ29udGV4dC50cyIsInNyYy9zZXJ2aWNlcy9kYWlseU5vdGVzU2VydmljZS50cyIsInNyYy9oZWxwZXJzL3N0b3JhZ2UudHMiLCJzcmMvc2VydmljZXMvZ2xvYmFsU3RhdGVTZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL2xvY2F0aW9uU2VydmljZS50cyIsInNyYy9vYkNvbXBvbmVudHMvb2JVcGRhdGVNZW1vLnRzIiwic3JjL29iQ29tcG9uZW50cy9vYkdldFF1ZXJpZXMudHMiLCJzcmMvb2JDb21wb25lbnRzL29iQ3JlYXRlUXVlcnkudHMiLCJzcmMvb2JDb21wb25lbnRzL29iR2V0TWVtb3MudHMiLCJzcmMvb2JDb21wb25lbnRzL29iVXBkYXRlUXVlcnkudHMiLCJzcmMvb2JDb21wb25lbnRzL29iQ3JlYXRlTWVtby50cyIsInNyYy9vYkNvbXBvbmVudHMvb2JEZWxldGVNZW1vLnRzIiwic3JjL29iQ29tcG9uZW50cy9vYkhpZGVNZW1vLnRzIiwic3JjL29iQ29tcG9uZW50cy9vYkRlbGV0ZVF1ZXJ5LnRzIiwic3JjL29iQ29tcG9uZW50cy9vYlBpblF1ZXJ5LnRzIiwic3JjL2hlbHBlcnMvYXBpLnRzIiwic3JjL2hlbHBlcnMvY29uc3RzLnRzIiwic3JjL3NlcnZpY2VzL21lbW9TZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL3F1ZXJ5U2VydmljZS50cyIsInNyYy9zZXJ2aWNlcy9yZXNvdXJjZVNlcnZpY2UudHMiLCJub2RlX21vZHVsZXMvX3RpbnktdW5kb0AwLjAuOEB0aW55LXVuZG8vZGlzdC9UaW55VW5kby5qcyIsInNyYy9ob29rcy91c2VSZWZyZXNoLnRzIiwibm9kZV9tb2R1bGVzL19yZWFjdEAxNy4wLjJAcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24ubWluLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdEAxNy4wLjJAcmVhY3QvanN4LXJ1bnRpbWUuanMiLCJyZWFjdC9qc3gtcnVudGltZSIsInNyYy9jb21wb25lbnRzL2NvbW1vbi9Pbmx5V2hlbi50c3giLCJub2RlX21vZHVsZXMvX3RleHRhcmVhLWNhcmV0QDMuMC4yQHRleHRhcmVhLWNhcmV0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19jdXN0b20tZXZlbnRAMS4wLjFAY3VzdG9tLWV2ZW50L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19Ad2Vic2NvcGVpb19yZWFjdC10ZXh0YXJlYS1hdXRvY29tcGxldGVANC45LjFAQHdlYnNjb3BlaW8vcmVhY3QtdGV4dGFyZWEtYXV0b2NvbXBsZXRlL2Rpc3QvcmVhY3QtdGV4dGFyZWEtYXV0b2NvbXBsZXRlLmVzLmpzIiwic3JjL29iQ29tcG9uZW50cy9vYlRhZ1N1Z2dlc3Rlci50cyIsInNyYy9vYkNvbXBvbmVudHMvb2JGaWxlU3VnZ2VzdGVyLnRzIiwic3JjL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvci50c3giLCJub2RlX21vZHVsZXMvX3RzbGliQDIuMy4xQHRzbGliL3RzbGliLmVzNi5qcyIsIm5vZGVfbW9kdWxlcy9fQHJlYWNoX3V0aWxzQDAuMTYuMEBAcmVhY2gvdXRpbHMvY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanMiLCJub2RlX21vZHVsZXMvX0ByZWFjaF91dGlsc0AwLjE2LjBAQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QvZGlzdC9yZWFjaC11dGlscy11c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmVzbS5qcyIsIm5vZGVfbW9kdWxlcy9fQHJlYWNoX2F1dG8taWRAMC4xNi4wQEByZWFjaC9hdXRvLWlkL2Rpc3QvcmVhY2gtYXV0by1pZC5lc20uanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vbG9jYWxlL19saWIvYnVpbGRGb3JtYXRMb25nRm4vaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vbG9jYWxlL19saWIvYnVpbGRMb2NhbGl6ZUZuL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9fbGliL2J1aWxkTWF0Y2hQYXR0ZXJuRm4vaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vbG9jYWxlL19saWIvYnVpbGRNYXRjaEZuL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL3RvRGF0ZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL3RvSW50ZWdlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL3N0YXJ0T2ZVVENXZWVrL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2FkZERheXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vYWRkTW9udGhzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2FkZE1pbGxpc2Vjb25kcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9zdGFydE9mV2Vlay9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vc3RhcnRPZkRheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vYWRkV2Vla3MvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vYWRkWWVhcnMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vaXNTYW1lRGF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2lzRGF0ZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9pc1ZhbGlkL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2RpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2RpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vZW5kT2ZNb250aC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9zdGFydE9mTW9udGgvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vc3RhcnRPZlllYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vZW5kT2ZXZWVrL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9lbi1VUy9fbGliL2Zvcm1hdERpc3RhbmNlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xvY2FsZS9lbi1VUy9fbGliL2Zvcm1hdExvbmcvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vbG9jYWxlL2VuLVVTL19saWIvZm9ybWF0UmVsYXRpdmUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vbG9jYWxlL2VuLVVTL19saWIvbG9jYWxpemUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vbG9jYWxlL2VuLVVTL19saWIvbWF0Y2gvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vbG9jYWxlL2VuLVVTL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL3N1Yk1pbGxpc2Vjb25kcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2dldFVUQ0RheU9mWWVhci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL3N0YXJ0T2ZVVENJU09XZWVrL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvZ2V0VVRDSVNPV2Vla1llYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9zdGFydE9mVVRDSVNPV2Vla1llYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9nZXRVVENJU09XZWVrL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvZ2V0VVRDV2Vla1llYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9zdGFydE9mVVRDV2Vla1llYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vX2xpYi9nZXRVVENXZWVrL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvYWRkTGVhZGluZ1plcm9zL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvZm9ybWF0L2xpZ2h0Rm9ybWF0dGVycy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9fbGliL2Zvcm1hdC9mb3JtYXR0ZXJzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvZm9ybWF0L2xvbmdGb3JtYXR0ZXJzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL19saWIvcHJvdGVjdGVkVG9rZW5zL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2Zvcm1hdC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9nZXREYXlzSW5Nb250aC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9nZXRUaW1lL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2dldFVuaXhUaW1lL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2dldFdlZWtZZWFyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL3N0YXJ0T2ZXZWVrWWVhci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9nZXRXZWVrL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2xhc3REYXlPZk1vbnRoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2dldFdlZWtzSW5Nb250aC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fZGF0ZS1mbnNAMi4yOC4wQGRhdGUtZm5zL2VzbS9pc0FmdGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2lzQmVmb3JlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2lzU2FtZU1vbnRoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19kYXRlLWZuc0AyLjI4LjBAZGF0ZS1mbnMvZXNtL2lzU2FtZVllYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vc2V0TW9udGgvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX2RhdGUtZm5zQDIuMjguMEBkYXRlLWZucy9lc20vc2V0WWVhci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9Nb250aHNEcm9wZG93bi9Nb250aHNEcm9wZG93bi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL05hdmlnYXRpb24vTmF2aWdhdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9ZZWFyc0Ryb3Bkb3duL1llYXJzRHJvcGRvd24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2hvb2tzL3VzZUNvbnRyb2xsZWRWYWx1ZS91c2VDb250cm9sbGVkVmFsdWUuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL05hdmlnYXRpb24vdXRpbHMvZ2V0SW5pdGlhbE1vbnRoLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9OYXZpZ2F0aW9uL3VzZU5hdmlnYXRpb25TdGF0ZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTmF2aWdhdGlvbi91dGlscy9nZXREaXNwbGF5TW9udGhzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9OYXZpZ2F0aW9uL3V0aWxzL2dldE5leHRNb250aC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTmF2aWdhdGlvbi91dGlscy9nZXRQcmV2aW91c01vbnRoLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9OYXZpZ2F0aW9uL05hdmlnYXRpb25Db250ZXh0LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9OYXZpZ2F0aW9uL3VzZU5hdmlnYXRpb24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvQ2FwdGlvbi9DYXB0aW9uLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0NhcHRpb25MYWJlbC9DYXB0aW9uTGFiZWwuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL3R5cGVzL0RheVBpY2tlck11bHRpcGxlLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9TZWxlY3RNdWx0aXBsZS9TZWxlY3RNdWx0aXBsZUNvbnRleHQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL1NlbGVjdE11bHRpcGxlL3VzZVNlbGVjdE11bHRpcGxlLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC90eXBlcy9EYXlQaWNrZXJSYW5nZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvU2VsZWN0UmFuZ2UvdXRpbHMvYWRkVG9SYW5nZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvU2VsZWN0UmFuZ2UvU2VsZWN0UmFuZ2VDb250ZXh0LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9TZWxlY3RSYW5nZS91c2VTZWxlY3RSYW5nZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvdHlwZXMvRGF5UGlja2VyU2luZ2xlLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9TZWxlY3RTaW5nbGUvU2VsZWN0U2luZ2xlQ29udGV4dC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvU2VsZWN0U2luZ2xlL3VzZVNlbGVjdFNpbmdsZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTW9kaWZpZXJzL3V0aWxzL3RvTWF0Y2hlckFycmF5LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9Nb2RpZmllcnMvdXRpbHMvZ2V0Q3VzdG9tTW9kaWZpZXJzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC90eXBlcy9Nb2RpZmllcnMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL01vZGlmaWVycy91dGlscy9nZXRJbnRlcm5hbE1vZGlmaWVycy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvTW9kaWZpZXJzL01vZGlmaWVyc0NvbnRleHQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL01vZGlmaWVycy91c2VNb2RpZmllcnMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL3R5cGVzL01hdGNoZXJzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9ob29rcy91c2VEYXlNb2RpZmllcnMvdXRpbHMvaXNEYXRlSW5SYW5nZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvaG9va3MvdXNlRGF5TW9kaWZpZXJzL3V0aWxzL2lzTWF0Y2guanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2hvb2tzL3VzZURheU1vZGlmaWVycy91dGlscy9nZXRNb2RpZmllclN0YXR1cy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvaG9va3MvdXNlRGF5TW9kaWZpZXJzL3VzZURheU1vZGlmaWVycy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRm9jdXMvZ2V0SW5pdGlhbEZvY3VzVGFyZ2V0LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9Gb2N1cy9Gb2N1c0NvbnRleHQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0ZvY3VzL3VzZUZvY3VzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0RheS9ob29rcy91c2VEYXlGb2N1cy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9EYXkvaG9va3MvdXNlRGF5LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0RheS9EYXkuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvRGF5Q29udGVudC9EYXlDb250ZW50LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0Ryb3Bkb3duL0Ryb3Bkb3duLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXIuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvSGVhZC91dGlscy9nZXRXZWVrZGF5cy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9IZWFkL0hlYWQuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvSWNvbkRyb3Bkb3duL0ljb25Ecm9wZG93bi5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9JY29uTGVmdC9JY29uTGVmdC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9JY29uUmlnaHQvSWNvblJpZ2h0LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL1Jvdy9Sb3cuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbXBvbmVudHMvV2Vla051bWJlci9XZWVrTnVtYmVyLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvZGVmYXVsdENsYXNzTmFtZXMuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9mb3JtYXR0ZXJzL2Zvcm1hdENhcHRpb24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9mb3JtYXR0ZXJzL2Zvcm1hdERheS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2Zvcm1hdHRlcnMvZm9ybWF0TW9udGhDYXB0aW9uLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvZm9ybWF0dGVycy9mb3JtYXRXZWVrTnVtYmVyLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvZm9ybWF0dGVycy9mb3JtYXRXZWVrZGF5TmFtZS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2Zvcm1hdHRlcnMvZm9ybWF0WWVhckNhcHRpb24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9sYWJlbHMvbGFiZWxEYXkuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9sYWJlbHMvbGFiZWxNb250aERyb3Bkb3duLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvbGFiZWxzL2xhYmVsTmV4dC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2xhYmVscy9sYWJlbFByZXZpb3VzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvbGFiZWxzL2xhYmVsV2Vla2RheS5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL2xhYmVscy9sYWJlbFdlZWtOdW1iZXIuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci9sYWJlbHMvbGFiZWxZZWFyRHJvcGRvd24uanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LWRheS1waWNrZXJAOC4wLjAtYmV0YS4zNkByZWFjdC1kYXktcGlja2VyL2J1aWxkL2NvbnRleHRzL0RheVBpY2tlci91dGlscy9wYXJzZUZyb21Ub1Byb3BzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb250ZXh0cy9EYXlQaWNrZXIvRGF5UGlja2VyQ29udGV4dC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvRGF5UGlja2VyL3VzZURheVBpY2tlci5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9UYWJsZS91dGlscy9nZXRPdXRzaWRlRW5kRGF5cy5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29tcG9uZW50cy9UYWJsZS91dGlscy9nZXRPdXRzaWRlU3RhcnREYXlzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL1RhYmxlL3V0aWxzL2dldFdlZWtzLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL1RhYmxlL1RhYmxlLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL01vbnRoL01vbnRoLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9jb21wb25lbnRzL1Jvb3QvUm9vdC5qcyIsIm5vZGVfbW9kdWxlcy9fcmVhY3QtZGF5LXBpY2tlckA4LjAuMC1iZXRhLjM2QHJlYWN0LWRheS1waWNrZXIvYnVpbGQvY29udGV4dHMvUm9vdFByb3ZpZGVyLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1kYXktcGlja2VyQDguMC4wLWJldGEuMzZAcmVhY3QtZGF5LXBpY2tlci9idWlsZC9EYXlQaWNrZXIuanMiLCJub2RlX21vZHVsZXMvX3JlYWN0LXBvcHBlckAyLjIuNUByZWFjdC1wb3BwZXIvbGliL2VzbS91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9lbnVtcy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Tm9kZU5hbWUuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFdpbmRvdy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvYXBwbHlTdHlsZXMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tYXRoLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldExheW91dFJlY3QuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2NvbnRhaW5zLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wdXRlZFN0eWxlLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1RhYmxlRWxlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0RG9jdW1lbnRFbGVtZW50LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRQYXJlbnROb2RlLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3dpdGhpbi5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRGcmVzaFNpZGVPYmplY3QuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvbWVyZ2VQYWRkaW5nT2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvYXJyb3cuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0VmFyaWF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9ldmVudExpc3RlbmVycy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRPcHBvc2l0ZVBsYWNlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0V2luZG93U2Nyb2xsLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRWaWV3cG9ydFJlY3QuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldERvY3VtZW50UmVjdC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvaXNTY3JvbGxQYXJlbnQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFNjcm9sbFBhcmVudC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvbGlzdFNjcm9sbFBhcmVudHMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvcmVjdFRvQ2xpZW50UmVjdC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Q2xpcHBpbmdSZWN0LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2NvbXB1dGVPZmZzZXRzLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2NvbXB1dGVBdXRvUGxhY2VtZW50LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9mbGlwLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9oaWRlLmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9vZmZzZXQuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL3BvcHBlck9mZnNldHMuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0QWx0QXhpcy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvcHJldmVudE92ZXJmbG93LmpzIiwibm9kZV9tb2R1bGVzL19AcG9wcGVyanNfY29yZUAyLjExLjJAQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRIVE1MRWxlbWVudFNjcm9sbC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Tm9kZVNjcm9sbC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Q29tcG9zaXRlUmVjdC5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9vcmRlck1vZGlmaWVycy5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9kZWJvdW5jZS5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tZXJnZUJ5TmFtZS5qcyIsIm5vZGVfbW9kdWxlcy9fQHBvcHBlcmpzX2NvcmVAMi4xMS4yQEBwb3BwZXJqcy9jb3JlL2xpYi9jcmVhdGVQb3BwZXIuanMiLCJub2RlX21vZHVsZXMvX0Bwb3BwZXJqc19jb3JlQDIuMTEuMkBAcG9wcGVyanMvY29yZS9saWIvcG9wcGVyLmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1mYXN0LWNvbXBhcmVAMy4yLjBAcmVhY3QtZmFzdC1jb21wYXJlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL19yZWFjdC1wb3BwZXJAMi4yLjVAcmVhY3QtcG9wcGVyL2xpYi9lc20vdXNlUG9wcGVyLmpzIiwibm9kZV9tb2R1bGVzL19wcm9wLXR5cGVzQDE1LjguMUBwcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcyIsIm5vZGVfbW9kdWxlcy9fcHJvcC10eXBlc0AxNS44LjFAcHJvcC10eXBlcy9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanMiLCJub2RlX21vZHVsZXMvX3Byb3AtdHlwZXNAMTUuOC4xQHByb3AtdHlwZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvX3RhYmJhYmxlQDUuMi4xQHRhYmJhYmxlL2Rpc3QvaW5kZXguZXNtLmpzIiwibm9kZV9tb2R1bGVzL19mb2N1cy10cmFwQDYuNy4yQGZvY3VzLXRyYXAvZGlzdC9mb2N1cy10cmFwLmVzbS5qcyIsIm5vZGVfbW9kdWxlcy9fZm9jdXMtdHJhcC1yZWFjdEA4LjkuMUBmb2N1cy10cmFwLXJlYWN0L2Rpc3QvZm9jdXMtdHJhcC1yZWFjdC5qcyIsInNyYy9ob29rcy91c2VUb2dnbGUudHMiLCJzcmMvY29tcG9uZW50cy9NZW1vRWRpdG9yLnRzeCIsInNyYy9oZWxwZXJzL2ZpbHRlci50cyIsInNyYy9jb21wb25lbnRzL1NlYXJjaEJhci50c3giLCJzcmMvY29tcG9uZW50cy9NZW1vc0hlYWRlci50c3giLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIm5vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xNi43QEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzLmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0cy5qcyIsIm5vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xNi43QEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZi5qcyIsIm5vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xNi43QEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXkuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheUxpa2VUb0FycmF5LmpzIiwibm9kZV9tb2R1bGVzL19AYmFiZWxfcnVudGltZUA3LjE2LjdAQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9ub25JdGVyYWJsZVJlc3QuanMiLCJub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTYuN0BAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0FycmF5LmpzIiwibm9kZV9tb2R1bGVzL19pMThuZXh0QDIxLjYuNkBpMThuZXh0L2Rpc3QvZXNtL2kxOG5leHQuanMiLCJzcmMvY29tcG9uZW50cy9NZW1vRmlsdGVyLnRzeCIsInNyYy9oZWxwZXJzL21hcmtlZC50cyIsInNyYy9sYWJzL1Byb3ZpZGVyLnRzeCIsInNyYy9jb21wb25lbnRzL0RpYWxvZy50c3giLCJzcmMvY29tcG9uZW50cy9QcmV2aWV3SW1hZ2VEaWFsb2cudHN4Iiwic3JjL2NvbXBvbmVudHMvSW1hZ2UudHN4Iiwic3JjL2NvbXBvbmVudHMvTWVtb0NhcmREaWFsb2cudHN4Iiwic3JjL2xhYnMvaHRtbDJpbWFnZS9jb252ZXJ0UmVzb3VyY2VUb0RhdGFVUkwudHMiLCJzcmMvbGFicy9odG1sMmltYWdlL2dldENsb25lU3R5bGVkRWxlbWVudC50cyIsInNyYy9sYWJzL2h0bWwyaW1hZ2UvZ2V0Rm9udHNTdHlsZUVsZW1lbnQudHMiLCJzcmMvbGFicy9odG1sMmltYWdlL2luZGV4LnRzIiwic3JjL2NvbXBvbmVudHMvU2hhcmVNZW1vSW1hZ2VEaWFsb2cudHN4Iiwic3JjL29iQ29tcG9uZW50cy9vYlNob3dNZW1vLnRzIiwic3JjL2NvbXBvbmVudHMvTWVtby50c3giLCJzcmMvY29tcG9uZW50cy9NZW1vTGlzdC50c3giLCJzcmMvcGFnZXMvTWVtb3MudHN4Iiwic3JjL2hvb2tzL3VzZUxvYWRpbmcudHMiLCJzcmMvY29tcG9uZW50cy9EZWxldGVkTWVtby50c3giLCJzcmMvcGFnZXMvTWVtb1RyYXNoLnRzeCIsInNyYy9jb21wb25lbnRzL1ByZWZlcmVuY2VzU2VjdGlvbi50c3giLCJzcmMvcGFnZXMvU2V0dGluZy50c3giLCJzcmMvcm91dGVycy9ob21lUm91dGVyLnRzeCIsInNyYy9yb3V0ZXJzL2luZGV4LnRzIiwic3JjL2NvbXBvbmVudHMvQWJvdXRTaXRlRGlhbG9nLnRzeCIsInNyYy9jb21wb25lbnRzL01lbnVCdG5zUG9wdXAudHN4Iiwic3JjL2NvbXBvbmVudHMvRGFpbHlNZW1vLnRzeCIsInNyYy9jb21wb25lbnRzL2NvbW1vbi9EYXRlUGlja2VyLnRzeCIsInNyYy9jb21wb25lbnRzL0RhaWx5TWVtb0RpYXJ5RGlhbG9nLnRzeCIsInNyYy9jb21wb25lbnRzL1VzZXJCYW5uZXIudHN4Iiwic3JjL2NvbXBvbmVudHMvY29tbW9uL1NlbGVjdG9yLnRzeCIsInNyYy9jb21wb25lbnRzL0NyZWF0ZVF1ZXJ5RGlhbG9nLnRzeCIsInNyYy9jb21wb25lbnRzL1F1ZXJ5TGlzdC50c3giLCJzcmMvY29tcG9uZW50cy9UYWdMaXN0LnRzeCIsInNyYy9jb21wb25lbnRzL1VzYWdlSGVhdE1hcC50c3giLCJzcmMvY29tcG9uZW50cy9TaWRlYmFyLnRzeCIsInNyYy9wYWdlcy9Ib21lLnRzeCIsInNyYy9oZWxwZXJzL3BvbHlmaWxsLnRzIiwic3JjL0FwcC50c3giLCJzcmMvbWVtb3MudHMiLCJzcmMvb2JDb21wb25lbnRzL2N1c3RvbUljb25zLnRzIiwic3JjL3NldHRpbmcudHMiLCJzcmMvdHJhbnNsYXRpb25zL3poL3RyYW5zbGF0aW9ucy50cyIsInNyYy90cmFuc2xhdGlvbnMvZW4vdHJhbnNsYXRpb25zLnRzIiwic3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNRU1PU19WSUVXX1RZUEUgPSAnbWVtb3Nfdmlldyc7XG5leHBvcnQgY29uc3QgVklFV19UWVBFID0gJ3JlYWN0LXZpZXcnO1xuIiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7dmFyIGw9cmVxdWlyZShcIm9iamVjdC1hc3NpZ25cIiksbj02MDEwMyxwPTYwMTA2O2V4cG9ydHMuRnJhZ21lbnQ9NjAxMDc7ZXhwb3J0cy5TdHJpY3RNb2RlPTYwMTA4O2V4cG9ydHMuUHJvZmlsZXI9NjAxMTQ7dmFyIHE9NjAxMDkscj02MDExMCx0PTYwMTEyO2V4cG9ydHMuU3VzcGVuc2U9NjAxMTM7dmFyIHU9NjAxMTUsdj02MDExNjtcbmlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Ipe3ZhciB3PVN5bWJvbC5mb3I7bj13KFwicmVhY3QuZWxlbWVudFwiKTtwPXcoXCJyZWFjdC5wb3J0YWxcIik7ZXhwb3J0cy5GcmFnbWVudD13KFwicmVhY3QuZnJhZ21lbnRcIik7ZXhwb3J0cy5TdHJpY3RNb2RlPXcoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTtleHBvcnRzLlByb2ZpbGVyPXcoXCJyZWFjdC5wcm9maWxlclwiKTtxPXcoXCJyZWFjdC5wcm92aWRlclwiKTtyPXcoXCJyZWFjdC5jb250ZXh0XCIpO3Q9dyhcInJlYWN0LmZvcndhcmRfcmVmXCIpO2V4cG9ydHMuU3VzcGVuc2U9dyhcInJlYWN0LnN1c3BlbnNlXCIpO3U9dyhcInJlYWN0Lm1lbW9cIik7dj13KFwicmVhY3QubGF6eVwiKX12YXIgeD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7XG5mdW5jdGlvbiB5KGEpe2lmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGEpcmV0dXJuIG51bGw7YT14JiZhW3hdfHxhW1wiQEBpdGVyYXRvclwiXTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hOm51bGx9ZnVuY3Rpb24geihhKXtmb3IodmFyIGI9XCJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD1cIithLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWIrPVwiJmFyZ3NbXT1cIitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW2NdKTtyZXR1cm5cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIithK1wiOyB2aXNpdCBcIitiK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5cIn1cbnZhciBBPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxCPXt9O2Z1bmN0aW9uIEMoYSxiLGMpe3RoaXMucHJvcHM9YTt0aGlzLmNvbnRleHQ9Yjt0aGlzLnJlZnM9Qjt0aGlzLnVwZGF0ZXI9Y3x8QX1DLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9O0MucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGEsYil7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmbnVsbCE9YSl0aHJvdyBFcnJvcih6KDg1KSk7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGEsYixcInNldFN0YXRlXCIpfTtDLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihhKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsYSxcImZvcmNlVXBkYXRlXCIpfTtcbmZ1bmN0aW9uIEQoKXt9RC5wcm90b3R5cGU9Qy5wcm90b3R5cGU7ZnVuY3Rpb24gRShhLGIsYyl7dGhpcy5wcm9wcz1hO3RoaXMuY29udGV4dD1iO3RoaXMucmVmcz1CO3RoaXMudXBkYXRlcj1jfHxBfXZhciBGPUUucHJvdG90eXBlPW5ldyBEO0YuY29uc3RydWN0b3I9RTtsKEYsQy5wcm90b3R5cGUpO0YuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEc9e2N1cnJlbnQ6bnVsbH0sSD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEk9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtcbmZ1bmN0aW9uIEooYSxiLGMpe3ZhciBlLGQ9e30saz1udWxsLGg9bnVsbDtpZihudWxsIT1iKWZvcihlIGluIHZvaWQgMCE9PWIucmVmJiYoaD1iLnJlZiksdm9pZCAwIT09Yi5rZXkmJihrPVwiXCIrYi5rZXkpLGIpSC5jYWxsKGIsZSkmJiFJLmhhc093blByb3BlcnR5KGUpJiYoZFtlXT1iW2VdKTt2YXIgZz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWcpZC5jaGlsZHJlbj1jO2Vsc2UgaWYoMTxnKXtmb3IodmFyIGY9QXJyYXkoZyksbT0wO208ZzttKyspZlttXT1hcmd1bWVudHNbbSsyXTtkLmNoaWxkcmVuPWZ9aWYoYSYmYS5kZWZhdWx0UHJvcHMpZm9yKGUgaW4gZz1hLmRlZmF1bHRQcm9wcyxnKXZvaWQgMD09PWRbZV0mJihkW2VdPWdbZV0pO3JldHVybnskJHR5cGVvZjpuLHR5cGU6YSxrZXk6ayxyZWY6aCxwcm9wczpkLF9vd25lcjpHLmN1cnJlbnR9fVxuZnVuY3Rpb24gSyhhLGIpe3JldHVybnskJHR5cGVvZjpuLHR5cGU6YS50eXBlLGtleTpiLHJlZjphLnJlZixwcm9wczphLnByb3BzLF9vd25lcjphLl9vd25lcn19ZnVuY3Rpb24gTChhKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09bn1mdW5jdGlvbiBlc2NhcGUoYSl7dmFyIGI9e1wiPVwiOlwiPTBcIixcIjpcIjpcIj0yXCJ9O3JldHVyblwiJFwiK2EucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfSl9dmFyIE09L1xcLysvZztmdW5jdGlvbiBOKGEsYil7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmbnVsbCE9YS5rZXk/ZXNjYXBlKFwiXCIrYS5rZXkpOmIudG9TdHJpbmcoMzYpfVxuZnVuY3Rpb24gTyhhLGIsYyxlLGQpe3ZhciBrPXR5cGVvZiBhO2lmKFwidW5kZWZpbmVkXCI9PT1rfHxcImJvb2xlYW5cIj09PWspYT1udWxsO3ZhciBoPSExO2lmKG51bGw9PT1hKWg9ITA7ZWxzZSBzd2l0Y2goayl7Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJudW1iZXJcIjpoPSEwO2JyZWFrO2Nhc2UgXCJvYmplY3RcIjpzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBuOmNhc2UgcDpoPSEwfX1pZihoKXJldHVybiBoPWEsZD1kKGgpLGE9XCJcIj09PWU/XCIuXCIrTihoLDApOmUsQXJyYXkuaXNBcnJheShkKT8oYz1cIlwiLG51bGwhPWEmJihjPWEucmVwbGFjZShNLFwiJCYvXCIpK1wiL1wiKSxPKGQsYixjLFwiXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGF9KSk6bnVsbCE9ZCYmKEwoZCkmJihkPUsoZCxjKyghZC5rZXl8fGgmJmgua2V5PT09ZC5rZXk/XCJcIjooXCJcIitkLmtleSkucmVwbGFjZShNLFwiJCYvXCIpK1wiL1wiKSthKSksYi5wdXNoKGQpKSwxO2g9MDtlPVwiXCI9PT1lP1wiLlwiOmUrXCI6XCI7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGc9XG4wO2c8YS5sZW5ndGg7ZysrKXtrPWFbZ107dmFyIGY9ZStOKGssZyk7aCs9TyhrLGIsYyxmLGQpfWVsc2UgaWYoZj15KGEpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmKWZvcihhPWYuY2FsbChhKSxnPTA7IShrPWEubmV4dCgpKS5kb25lOylrPWsudmFsdWUsZj1lK04oayxnKyspLGgrPU8oayxiLGMsZixkKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1rKXRocm93IGI9XCJcIithLEVycm9yKHooMzEsXCJbb2JqZWN0IE9iamVjdF1cIj09PWI/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhhKS5qb2luKFwiLCBcIikrXCJ9XCI6YikpO3JldHVybiBofWZ1bmN0aW9uIFAoYSxiLGMpe2lmKG51bGw9PWEpcmV0dXJuIGE7dmFyIGU9W10sZD0wO08oYSxlLFwiXCIsXCJcIixmdW5jdGlvbihhKXtyZXR1cm4gYi5jYWxsKGMsYSxkKyspfSk7cmV0dXJuIGV9XG5mdW5jdGlvbiBRKGEpe2lmKC0xPT09YS5fc3RhdHVzKXt2YXIgYj1hLl9yZXN1bHQ7Yj1iKCk7YS5fc3RhdHVzPTA7YS5fcmVzdWx0PWI7Yi50aGVuKGZ1bmN0aW9uKGIpezA9PT1hLl9zdGF0dXMmJihiPWIuZGVmYXVsdCxhLl9zdGF0dXM9MSxhLl9yZXN1bHQ9Yil9LGZ1bmN0aW9uKGIpezA9PT1hLl9zdGF0dXMmJihhLl9zdGF0dXM9MixhLl9yZXN1bHQ9Yil9KX1pZigxPT09YS5fc3RhdHVzKXJldHVybiBhLl9yZXN1bHQ7dGhyb3cgYS5fcmVzdWx0O312YXIgUj17Y3VycmVudDpudWxsfTtmdW5jdGlvbiBTKCl7dmFyIGE9Ui5jdXJyZW50O2lmKG51bGw9PT1hKXRocm93IEVycm9yKHooMzIxKSk7cmV0dXJuIGF9dmFyIFQ9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6UixSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzp7dHJhbnNpdGlvbjowfSxSZWFjdEN1cnJlbnRPd25lcjpHLElzU29tZVJlbmRlcmVyQWN0aW5nOntjdXJyZW50OiExfSxhc3NpZ246bH07XG5leHBvcnRzLkNoaWxkcmVuPXttYXA6UCxmb3JFYWNoOmZ1bmN0aW9uKGEsYixjKXtQKGEsZnVuY3Rpb24oKXtiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sYyl9LGNvdW50OmZ1bmN0aW9uKGEpe3ZhciBiPTA7UChhLGZ1bmN0aW9uKCl7YisrfSk7cmV0dXJuIGJ9LHRvQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIFAoYSxmdW5jdGlvbihhKXtyZXR1cm4gYX0pfHxbXX0sb25seTpmdW5jdGlvbihhKXtpZighTChhKSl0aHJvdyBFcnJvcih6KDE0MykpO3JldHVybiBhfX07ZXhwb3J0cy5Db21wb25lbnQ9QztleHBvcnRzLlB1cmVDb21wb25lbnQ9RTtleHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPVQ7XG5leHBvcnRzLmNsb25lRWxlbWVudD1mdW5jdGlvbihhLGIsYyl7aWYobnVsbD09PWF8fHZvaWQgMD09PWEpdGhyb3cgRXJyb3IoeigyNjcsYSkpO3ZhciBlPWwoe30sYS5wcm9wcyksZD1hLmtleSxrPWEucmVmLGg9YS5fb3duZXI7aWYobnVsbCE9Yil7dm9pZCAwIT09Yi5yZWYmJihrPWIucmVmLGg9Ry5jdXJyZW50KTt2b2lkIDAhPT1iLmtleSYmKGQ9XCJcIitiLmtleSk7aWYoYS50eXBlJiZhLnR5cGUuZGVmYXVsdFByb3BzKXZhciBnPWEudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGYgaW4gYilILmNhbGwoYixmKSYmIUkuaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPXZvaWQgMD09PWJbZl0mJnZvaWQgMCE9PWc/Z1tmXTpiW2ZdKX12YXIgZj1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWYpZS5jaGlsZHJlbj1jO2Vsc2UgaWYoMTxmKXtnPUFycmF5KGYpO2Zvcih2YXIgbT0wO208ZjttKyspZ1ttXT1hcmd1bWVudHNbbSsyXTtlLmNoaWxkcmVuPWd9cmV0dXJueyQkdHlwZW9mOm4sdHlwZTphLnR5cGUsXG5rZXk6ZCxyZWY6ayxwcm9wczplLF9vd25lcjpofX07ZXhwb3J0cy5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGEsYil7dm9pZCAwPT09YiYmKGI9bnVsbCk7YT17JCR0eXBlb2Y6cixfY2FsY3VsYXRlQ2hhbmdlZEJpdHM6YixfY3VycmVudFZhbHVlOmEsX2N1cnJlbnRWYWx1ZTI6YSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9O2EuUHJvdmlkZXI9eyQkdHlwZW9mOnEsX2NvbnRleHQ6YX07cmV0dXJuIGEuQ29uc3VtZXI9YX07ZXhwb3J0cy5jcmVhdGVFbGVtZW50PUo7ZXhwb3J0cy5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGEpe3ZhciBiPUouYmluZChudWxsLGEpO2IudHlwZT1hO3JldHVybiBifTtleHBvcnRzLmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fTtleHBvcnRzLmZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnQscmVuZGVyOmF9fTtleHBvcnRzLmlzVmFsaWRFbGVtZW50PUw7XG5leHBvcnRzLmxhenk9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnYsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDphfSxfaW5pdDpRfX07ZXhwb3J0cy5tZW1vPWZ1bmN0aW9uKGEsYil7cmV0dXJueyQkdHlwZW9mOnUsdHlwZTphLGNvbXBhcmU6dm9pZCAwPT09Yj9udWxsOmJ9fTtleHBvcnRzLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VDYWxsYmFjayhhLGIpfTtleHBvcnRzLnVzZUNvbnRleHQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUygpLnVzZUNvbnRleHQoYSxiKX07ZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVzZUVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBTKCkudXNlRWZmZWN0KGEsYil9O2V4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIFMoKS51c2VJbXBlcmF0aXZlSGFuZGxlKGEsYixjKX07XG5leHBvcnRzLnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBTKCkudXNlTGF5b3V0RWZmZWN0KGEsYil9O2V4cG9ydHMudXNlTWVtbz1mdW5jdGlvbihhLGIpe3JldHVybiBTKCkudXNlTWVtbyhhLGIpfTtleHBvcnRzLnVzZVJlZHVjZXI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBTKCkudXNlUmVkdWNlcihhLGIsYyl9O2V4cG9ydHMudXNlUmVmPWZ1bmN0aW9uKGEpe3JldHVybiBTKCkudXNlUmVmKGEpfTtleHBvcnRzLnVzZVN0YXRlPWZ1bmN0aW9uKGEpe3JldHVybiBTKCkudXNlU3RhdGUoYSl9O2V4cG9ydHMudmVyc2lvbj1cIjE3LjAuMlwiO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjAuMjAuMlxuICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0Jzt2YXIgZixnLGgsaztpZihcIm9iamVjdFwiPT09dHlwZW9mIHBlcmZvcm1hbmNlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgbD1wZXJmb3JtYW5jZTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBsLm5vdygpfX1lbHNle3ZhciBwPURhdGUscT1wLm5vdygpO2V4cG9ydHMudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHAubm93KCktcX19XG5pZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJmdW5jdGlvblwiIT09dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgdD1udWxsLHU9bnVsbCx3PWZ1bmN0aW9uKCl7aWYobnVsbCE9PXQpdHJ5e3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7dCghMCxhKTt0PW51bGx9Y2F0Y2goYil7dGhyb3cgc2V0VGltZW91dCh3LDApLGI7fX07Zj1mdW5jdGlvbihhKXtudWxsIT09dD9zZXRUaW1lb3V0KGYsMCxhKToodD1hLHNldFRpbWVvdXQodywwKSl9O2c9ZnVuY3Rpb24oYSxiKXt1PXNldFRpbWVvdXQoYSxiKX07aD1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh1KX07ZXhwb3J0cy51bnN0YWJsZV9zaG91bGRZaWVsZD1mdW5jdGlvbigpe3JldHVybiExfTtrPWV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oKXt9fWVsc2V7dmFyIHg9d2luZG93LnNldFRpbWVvdXQseT13aW5kb3cuY2xlYXJUaW1lb3V0O2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgY29uc29sZSl7dmFyIHo9XG53aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU7XCJmdW5jdGlvblwiIT09dHlwZW9mIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJmNvbnNvbGUuZXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IHJlcXVlc3RBbmltYXRpb25GcmFtZS4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3JlYWN0LXBvbHlmaWxsc1wiKTtcImZ1bmN0aW9uXCIhPT10eXBlb2YgeiYmY29uc29sZS5lcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgY2FuY2VsQW5pbWF0aW9uRnJhbWUuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1wb2x5ZmlsbHNcIil9dmFyIEE9ITEsQj1udWxsLEM9LTEsRD01LEU9MDtleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkPWZ1bmN0aW9uKCl7cmV0dXJuIGV4cG9ydHMudW5zdGFibGVfbm93KCk+PVxuRX07az1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihhKXswPmF8fDEyNTxhP2NvbnNvbGUuZXJyb3IoXCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWRcIik6RD0wPGE/TWF0aC5mbG9vcigxRTMvYSk6NX07dmFyIEY9bmV3IE1lc3NhZ2VDaGFubmVsLEc9Ri5wb3J0MjtGLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbigpe2lmKG51bGwhPT1CKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpO0U9YStEO3RyeXtCKCEwLGEpP0cucG9zdE1lc3NhZ2UobnVsbCk6KEE9ITEsQj1udWxsKX1jYXRjaChiKXt0aHJvdyBHLnBvc3RNZXNzYWdlKG51bGwpLGI7fX1lbHNlIEE9ITF9O2Y9ZnVuY3Rpb24oYSl7Qj1hO0F8fChBPSEwLEcucG9zdE1lc3NhZ2UobnVsbCkpfTtnPWZ1bmN0aW9uKGEsYil7Qz1cbngoZnVuY3Rpb24oKXthKGV4cG9ydHMudW5zdGFibGVfbm93KCkpfSxiKX07aD1mdW5jdGlvbigpe3koQyk7Qz0tMX19ZnVuY3Rpb24gSChhLGIpe3ZhciBjPWEubGVuZ3RoO2EucHVzaChiKTthOmZvcig7Oyl7dmFyIGQ9Yy0xPj4+MSxlPWFbZF07aWYodm9pZCAwIT09ZSYmMDxJKGUsYikpYVtkXT1iLGFbY109ZSxjPWQ7ZWxzZSBicmVhayBhfX1mdW5jdGlvbiBKKGEpe2E9YVswXTtyZXR1cm4gdm9pZCAwPT09YT9udWxsOmF9XG5mdW5jdGlvbiBLKGEpe3ZhciBiPWFbMF07aWYodm9pZCAwIT09Yil7dmFyIGM9YS5wb3AoKTtpZihjIT09Yil7YVswXT1jO2E6Zm9yKHZhciBkPTAsZT1hLmxlbmd0aDtkPGU7KXt2YXIgbT0yKihkKzEpLTEsbj1hW21dLHY9bSsxLHI9YVt2XTtpZih2b2lkIDAhPT1uJiYwPkkobixjKSl2b2lkIDAhPT1yJiYwPkkocixuKT8oYVtkXT1yLGFbdl09YyxkPXYpOihhW2RdPW4sYVttXT1jLGQ9bSk7ZWxzZSBpZih2b2lkIDAhPT1yJiYwPkkocixjKSlhW2RdPXIsYVt2XT1jLGQ9djtlbHNlIGJyZWFrIGF9fXJldHVybiBifXJldHVybiBudWxsfWZ1bmN0aW9uIEkoYSxiKXt2YXIgYz1hLnNvcnRJbmRleC1iLnNvcnRJbmRleDtyZXR1cm4gMCE9PWM/YzphLmlkLWIuaWR9dmFyIEw9W10sTT1bXSxOPTEsTz1udWxsLFA9MyxRPSExLFI9ITEsUz0hMTtcbmZ1bmN0aW9uIFQoYSl7Zm9yKHZhciBiPUooTSk7bnVsbCE9PWI7KXtpZihudWxsPT09Yi5jYWxsYmFjaylLKE0pO2Vsc2UgaWYoYi5zdGFydFRpbWU8PWEpSyhNKSxiLnNvcnRJbmRleD1iLmV4cGlyYXRpb25UaW1lLEgoTCxiKTtlbHNlIGJyZWFrO2I9SihNKX19ZnVuY3Rpb24gVShhKXtTPSExO1QoYSk7aWYoIVIpaWYobnVsbCE9PUooTCkpUj0hMCxmKFYpO2Vsc2V7dmFyIGI9SihNKTtudWxsIT09YiYmZyhVLGIuc3RhcnRUaW1lLWEpfX1cbmZ1bmN0aW9uIFYoYSxiKXtSPSExO1MmJihTPSExLGgoKSk7UT0hMDt2YXIgYz1QO3RyeXtUKGIpO2ZvcihPPUooTCk7bnVsbCE9PU8mJighKE8uZXhwaXJhdGlvblRpbWU+Yil8fGEmJiFleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkKCkpOyl7dmFyIGQ9Ty5jYWxsYmFjaztpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7Ty5jYWxsYmFjaz1udWxsO1A9Ty5wcmlvcml0eUxldmVsO3ZhciBlPWQoTy5leHBpcmF0aW9uVGltZTw9Yik7Yj1leHBvcnRzLnVuc3RhYmxlX25vdygpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBlP08uY2FsbGJhY2s9ZTpPPT09SihMKSYmSyhMKTtUKGIpfWVsc2UgSyhMKTtPPUooTCl9aWYobnVsbCE9PU8pdmFyIG09ITA7ZWxzZXt2YXIgbj1KKE0pO251bGwhPT1uJiZnKFUsbi5zdGFydFRpbWUtYik7bT0hMX1yZXR1cm4gbX1maW5hbGx5e089bnVsbCxQPWMsUT0hMX19dmFyIFc9aztleHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01O1xuZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xO2V4cG9ydHMudW5zdGFibGVfTG93UHJpb3JpdHk9NDtleHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTM7ZXhwb3J0cy51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbDtleHBvcnRzLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTI7ZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihhKXthLmNhbGxiYWNrPW51bGx9O2V4cG9ydHMudW5zdGFibGVfY29udGludWVFeGVjdXRpb249ZnVuY3Rpb24oKXtSfHxRfHwoUj0hMCxmKFYpKX07ZXhwb3J0cy51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBQfTtleHBvcnRzLnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIEooTCl9O1xuZXhwb3J0cy51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGEpe3N3aXRjaChQKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgYj0zO2JyZWFrO2RlZmF1bHQ6Yj1QfXZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7UD1jfX07ZXhwb3J0cy51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9VztleHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6YT0zfXZhciBjPVA7UD1hO3RyeXtyZXR1cm4gYigpfWZpbmFsbHl7UD1jfX07XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yz8oYz1jLmRlbGF5LGM9XCJudW1iZXJcIj09PXR5cGVvZiBjJiYwPGM/ZCtjOmQpOmM9ZDtzd2l0Y2goYSl7Y2FzZSAxOnZhciBlPS0xO2JyZWFrO2Nhc2UgMjplPTI1MDticmVhaztjYXNlIDU6ZT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDplPTFFNDticmVhaztkZWZhdWx0OmU9NUUzfWU9YytlO2E9e2lkOk4rKyxjYWxsYmFjazpiLHByaW9yaXR5TGV2ZWw6YSxzdGFydFRpbWU6YyxleHBpcmF0aW9uVGltZTplLHNvcnRJbmRleDotMX07Yz5kPyhhLnNvcnRJbmRleD1jLEgoTSxhKSxudWxsPT09SihMKSYmYT09PUooTSkmJihTP2goKTpTPSEwLGcoVSxjLWQpKSk6KGEuc29ydEluZGV4PWUsSChMLGEpLFJ8fFF8fChSPSEwLGYoVikpKTtyZXR1cm4gYX07XG5leHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1QO3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtQPWN9fX07XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNy4wLjJcbiAqIHJlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4vKlxuIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuKi9cbid1c2Ugc3RyaWN0Jzt2YXIgYWE9cmVxdWlyZShcInJlYWN0XCIpLG09cmVxdWlyZShcIm9iamVjdC1hc3NpZ25cIikscj1yZXF1aXJlKFwic2NoZWR1bGVyXCIpO2Z1bmN0aW9uIHkoYSl7Zm9yKHZhciBiPVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrYSxjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tjXSk7cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrYStcIjsgdmlzaXQgXCIrYitcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9aWYoIWFhKXRocm93IEVycm9yKHkoMjI3KSk7dmFyIGJhPW5ldyBTZXQsY2E9e307ZnVuY3Rpb24gZGEoYSxiKXtlYShhLGIpO2VhKGErXCJDYXB0dXJlXCIsYil9XG5mdW5jdGlvbiBlYShhLGIpe2NhW2FdPWI7Zm9yKGE9MDthPGIubGVuZ3RoO2ErKyliYS5hZGQoYlthXSl9XG52YXIgZmE9IShcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnR8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLGhhPS9eWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokLyxpYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFxuamE9e30sa2E9e307ZnVuY3Rpb24gbGEoYSl7aWYoaWEuY2FsbChrYSxhKSlyZXR1cm4hMDtpZihpYS5jYWxsKGphLGEpKXJldHVybiExO2lmKGhhLnRlc3QoYSkpcmV0dXJuIGthW2FdPSEwO2phW2FdPSEwO3JldHVybiExfWZ1bmN0aW9uIG1hKGEsYixjLGQpe2lmKG51bGwhPT1jJiYwPT09Yy50eXBlKXJldHVybiExO3N3aXRjaCh0eXBlb2YgYil7Y2FzZSBcImZ1bmN0aW9uXCI6Y2FzZSBcInN5bWJvbFwiOnJldHVybiEwO2Nhc2UgXCJib29sZWFuXCI6aWYoZClyZXR1cm4hMTtpZihudWxsIT09YylyZXR1cm4hYy5hY2NlcHRzQm9vbGVhbnM7YT1hLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtyZXR1cm5cImRhdGEtXCIhPT1hJiZcImFyaWEtXCIhPT1hO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gbmEoYSxiLGMsZCl7aWYobnVsbD09PWJ8fFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYnx8bWEoYSxiLGMsZCkpcmV0dXJuITA7aWYoZClyZXR1cm4hMTtpZihudWxsIT09Yylzd2l0Y2goYy50eXBlKXtjYXNlIDM6cmV0dXJuIWI7Y2FzZSA0OnJldHVybiExPT09YjtjYXNlIDU6cmV0dXJuIGlzTmFOKGIpO2Nhc2UgNjpyZXR1cm4gaXNOYU4oYil8fDE+Yn1yZXR1cm4hMX1mdW5jdGlvbiBCKGEsYixjLGQsZSxmLGcpe3RoaXMuYWNjZXB0c0Jvb2xlYW5zPTI9PT1ifHwzPT09Ynx8ND09PWI7dGhpcy5hdHRyaWJ1dGVOYW1lPWQ7dGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2U9ZTt0aGlzLm11c3RVc2VQcm9wZXJ0eT1jO3RoaXMucHJvcGVydHlOYW1lPWE7dGhpcy50eXBlPWI7dGhpcy5zYW5pdGl6ZVVSTD1mO3RoaXMucmVtb3ZlRW1wdHlTdHJpbmc9Z312YXIgRD17fTtcblwiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDAsITEsYSxudWxsLCExLCExKX0pO1tbXCJhY2NlcHRDaGFyc2V0XCIsXCJhY2NlcHQtY2hhcnNldFwiXSxbXCJjbGFzc05hbWVcIixcImNsYXNzXCJdLFtcImh0bWxGb3JcIixcImZvclwiXSxbXCJodHRwRXF1aXZcIixcImh0dHAtZXF1aXZcIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YVswXTtEW2JdPW5ldyBCKGIsMSwhMSxhWzFdLG51bGwsITEsITEpfSk7W1wiY29udGVudEVkaXRhYmxlXCIsXCJkcmFnZ2FibGVcIixcInNwZWxsQ2hlY2tcIixcInZhbHVlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDIsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5bXCJhdXRvUmV2ZXJzZVwiLFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLFwiZm9jdXNhYmxlXCIsXCJwcmVzZXJ2ZUFscGhhXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDIsITEsYSxudWxsLCExLCExKX0pO1wiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0RbYV09bmV3IEIoYSwzLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO1xuW1wiY2hlY2tlZFwiLFwibXVsdGlwbGVcIixcIm11dGVkXCIsXCJzZWxlY3RlZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0RbYV09bmV3IEIoYSwzLCEwLGEsbnVsbCwhMSwhMSl9KTtbXCJjYXB0dXJlXCIsXCJkb3dubG9hZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0RbYV09bmV3IEIoYSw0LCExLGEsbnVsbCwhMSwhMSl9KTtbXCJjb2xzXCIsXCJyb3dzXCIsXCJzaXplXCIsXCJzcGFuXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDYsITEsYSxudWxsLCExLCExKX0pO1tcInJvd1NwYW5cIixcInN0YXJ0XCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDUsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7dmFyIG9hPS9bXFwtOl0oW2Etel0pL2c7ZnVuY3Rpb24gcGEoYSl7cmV0dXJuIGFbMV0udG9VcHBlckNhc2UoKX1cblwiYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHRcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2Uob2EsXG5wYSk7RFtiXT1uZXcgQihiLDEsITEsYSxudWxsLCExLCExKX0pO1wieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKG9hLHBhKTtEW2JdPW5ldyBCKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLCExLCExKX0pO1tcInhtbDpiYXNlXCIsXCJ4bWw6bGFuZ1wiLFwieG1sOnNwYWNlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKG9hLHBhKTtEW2JdPW5ldyBCKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsITEsITEpfSk7W1widGFiSW5kZXhcIixcImNyb3NzT3JpZ2luXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5ELnhsaW5rSHJlZj1uZXcgQihcInhsaW5rSHJlZlwiLDEsITEsXCJ4bGluazpocmVmXCIsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITAsITEpO1tcInNyY1wiLFwiaHJlZlwiLFwiYWN0aW9uXCIsXCJmb3JtQWN0aW9uXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSk7XG5mdW5jdGlvbiBxYShhLGIsYyxkKXt2YXIgZT1ELmhhc093blByb3BlcnR5KGIpP0RbYl06bnVsbDt2YXIgZj1udWxsIT09ZT8wPT09ZS50eXBlOmQ/ITE6ISgyPGIubGVuZ3RoKXx8XCJvXCIhPT1iWzBdJiZcIk9cIiE9PWJbMF18fFwiblwiIT09YlsxXSYmXCJOXCIhPT1iWzFdPyExOiEwO2Z8fChuYShiLGMsZSxkKSYmKGM9bnVsbCksZHx8bnVsbD09PWU/bGEoYikmJihudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTphLnNldEF0dHJpYnV0ZShiLFwiXCIrYykpOmUubXVzdFVzZVByb3BlcnR5P2FbZS5wcm9wZXJ0eU5hbWVdPW51bGw9PT1jPzM9PT1lLnR5cGU/ITE6XCJcIjpjOihiPWUuYXR0cmlidXRlTmFtZSxkPWUuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOihlPWUudHlwZSxjPTM9PT1lfHw0PT09ZSYmITA9PT1jP1wiXCI6XCJcIitjLGQ/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKSkpKX1cbnZhciByYT1hYS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxzYT02MDEwMyx0YT02MDEwNix1YT02MDEwNyx3YT02MDEwOCx4YT02MDExNCx5YT02MDEwOSx6YT02MDExMCxBYT02MDExMixCYT02MDExMyxDYT02MDEyMCxEYT02MDExNSxFYT02MDExNixGYT02MDEyMSxHYT02MDEyOCxIYT02MDEyOSxJYT02MDEzMCxKYT02MDEzMTtcbmlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Ipe3ZhciBFPVN5bWJvbC5mb3I7c2E9RShcInJlYWN0LmVsZW1lbnRcIik7dGE9RShcInJlYWN0LnBvcnRhbFwiKTt1YT1FKFwicmVhY3QuZnJhZ21lbnRcIik7d2E9RShcInJlYWN0LnN0cmljdF9tb2RlXCIpO3hhPUUoXCJyZWFjdC5wcm9maWxlclwiKTt5YT1FKFwicmVhY3QucHJvdmlkZXJcIik7emE9RShcInJlYWN0LmNvbnRleHRcIik7QWE9RShcInJlYWN0LmZvcndhcmRfcmVmXCIpO0JhPUUoXCJyZWFjdC5zdXNwZW5zZVwiKTtDYT1FKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTtEYT1FKFwicmVhY3QubWVtb1wiKTtFYT1FKFwicmVhY3QubGF6eVwiKTtGYT1FKFwicmVhY3QuYmxvY2tcIik7RShcInJlYWN0LnNjb3BlXCIpO0dhPUUoXCJyZWFjdC5vcGFxdWUuaWRcIik7SGE9RShcInJlYWN0LmRlYnVnX3RyYWNlX21vZGVcIik7SWE9RShcInJlYWN0Lm9mZnNjcmVlblwiKTtKYT1FKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKX1cbnZhciBLYT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gTGEoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPUthJiZhW0thXXx8YVtcIkBAaXRlcmF0b3JcIl07cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsfXZhciBNYTtmdW5jdGlvbiBOYShhKXtpZih2b2lkIDA9PT1NYSl0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2goYyl7dmFyIGI9Yy5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtNYT1iJiZiWzFdfHxcIlwifXJldHVyblwiXFxuXCIrTWErYX12YXIgT2E9ITE7XG5mdW5jdGlvbiBQYShhLGIpe2lmKCFhfHxPYSlyZXR1cm5cIlwiO09hPSEwO3ZhciBjPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7aWYoYilpZihiPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKTt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLnByb3RvdHlwZSxcInByb3BzXCIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fX0pLFwib2JqZWN0XCI9PT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChiLFtdKX1jYXRjaChrKXt2YXIgZD1rfVJlZmxlY3QuY29uc3RydWN0KGEsW10sYil9ZWxzZXt0cnl7Yi5jYWxsKCl9Y2F0Y2goayl7ZD1rfWEuY2FsbChiLnByb3RvdHlwZSl9ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2goayl7ZD1rfWEoKX19Y2F0Y2goayl7aWYoayYmZCYmXCJzdHJpbmdcIj09PXR5cGVvZiBrLnN0YWNrKXtmb3IodmFyIGU9ay5zdGFjay5zcGxpdChcIlxcblwiKSxcbmY9ZC5zdGFjay5zcGxpdChcIlxcblwiKSxnPWUubGVuZ3RoLTEsaD1mLmxlbmd0aC0xOzE8PWcmJjA8PWgmJmVbZ10hPT1mW2hdOyloLS07Zm9yKDsxPD1nJiYwPD1oO2ctLSxoLS0paWYoZVtnXSE9PWZbaF0pe2lmKDEhPT1nfHwxIT09aCl7ZG8gaWYoZy0tLGgtLSwwPmh8fGVbZ10hPT1mW2hdKXJldHVyblwiXFxuXCIrZVtnXS5yZXBsYWNlKFwiIGF0IG5ldyBcIixcIiBhdCBcIik7d2hpbGUoMTw9ZyYmMDw9aCl9YnJlYWt9fX1maW5hbGx5e09hPSExLEVycm9yLnByZXBhcmVTdGFja1RyYWNlPWN9cmV0dXJuKGE9YT9hLmRpc3BsYXlOYW1lfHxhLm5hbWU6XCJcIik/TmEoYSk6XCJcIn1cbmZ1bmN0aW9uIFFhKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnJldHVybiBOYShhLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIE5hKFwiTGF6eVwiKTtjYXNlIDEzOnJldHVybiBOYShcIlN1c3BlbnNlXCIpO2Nhc2UgMTk6cmV0dXJuIE5hKFwiU3VzcGVuc2VMaXN0XCIpO2Nhc2UgMDpjYXNlIDI6Y2FzZSAxNTpyZXR1cm4gYT1QYShhLnR5cGUsITEpLGE7Y2FzZSAxMTpyZXR1cm4gYT1QYShhLnR5cGUucmVuZGVyLCExKSxhO2Nhc2UgMjI6cmV0dXJuIGE9UGEoYS50eXBlLl9yZW5kZXIsITEpLGE7Y2FzZSAxOnJldHVybiBhPVBhKGEudHlwZSwhMCksYTtkZWZhdWx0OnJldHVyblwiXCJ9fVxuZnVuY3Rpb24gUmEoYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYSlyZXR1cm4gYTtzd2l0Y2goYSl7Y2FzZSB1YTpyZXR1cm5cIkZyYWdtZW50XCI7Y2FzZSB0YTpyZXR1cm5cIlBvcnRhbFwiO2Nhc2UgeGE6cmV0dXJuXCJQcm9maWxlclwiO2Nhc2Ugd2E6cmV0dXJuXCJTdHJpY3RNb2RlXCI7Y2FzZSBCYTpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBDYTpyZXR1cm5cIlN1c3BlbnNlTGlzdFwifWlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSB6YTpyZXR1cm4oYS5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLkNvbnN1bWVyXCI7Y2FzZSB5YTpyZXR1cm4oYS5fY29udGV4dC5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLlByb3ZpZGVyXCI7Y2FzZSBBYTp2YXIgYj1hLnJlbmRlcjtiPWIuZGlzcGxheU5hbWV8fGIubmFtZXx8XCJcIjtcbnJldHVybiBhLmRpc3BsYXlOYW1lfHwoXCJcIiE9PWI/XCJGb3J3YXJkUmVmKFwiK2IrXCIpXCI6XCJGb3J3YXJkUmVmXCIpO2Nhc2UgRGE6cmV0dXJuIFJhKGEudHlwZSk7Y2FzZSBGYTpyZXR1cm4gUmEoYS5fcmVuZGVyKTtjYXNlIEVhOmI9YS5fcGF5bG9hZDthPWEuX2luaXQ7dHJ5e3JldHVybiBSYShhKGIpKX1jYXRjaChjKXt9fXJldHVybiBudWxsfWZ1bmN0aW9uIFNhKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSBcImJvb2xlYW5cIjpjYXNlIFwibnVtYmVyXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJzdHJpbmdcIjpjYXNlIFwidW5kZWZpbmVkXCI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm5cIlwifX1mdW5jdGlvbiBUYShhKXt2YXIgYj1hLnR5cGU7cmV0dXJuKGE9YS5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWEudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWJ8fFwicmFkaW9cIj09PWIpfVxuZnVuY3Rpb24gVWEoYSl7dmFyIGI9VGEoYSk/XCJjaGVja2VkXCI6XCJ2YWx1ZVwiLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxiKSxkPVwiXCIrYVtiXTtpZighYS5oYXNPd25Qcm9wZXJ0eShiKSYmXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5nZXQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLnNldCl7dmFyIGU9Yy5nZXQsZj1jLnNldDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGEpe2Q9XCJcIithO2YuY2FsbCh0aGlzLGEpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2VudW1lcmFibGU6Yy5lbnVtZXJhYmxlfSk7cmV0dXJue2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LHNldFZhbHVlOmZ1bmN0aW9uKGEpe2Q9XCJcIithfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXthLl92YWx1ZVRyYWNrZXI9XG5udWxsO2RlbGV0ZSBhW2JdfX19fWZ1bmN0aW9uIFZhKGEpe2EuX3ZhbHVlVHJhY2tlcnx8KGEuX3ZhbHVlVHJhY2tlcj1VYShhKSl9ZnVuY3Rpb24gV2EoYSl7aWYoIWEpcmV0dXJuITE7dmFyIGI9YS5fdmFsdWVUcmFja2VyO2lmKCFiKXJldHVybiEwO3ZhciBjPWIuZ2V0VmFsdWUoKTt2YXIgZD1cIlwiO2EmJihkPVRhKGEpP2EuY2hlY2tlZD9cInRydWVcIjpcImZhbHNlXCI6YS52YWx1ZSk7YT1kO3JldHVybiBhIT09Yz8oYi5zZXRWYWx1ZShhKSwhMCk6ITF9ZnVuY3Rpb24gWGEoYSl7YT1hfHwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGEuYWN0aXZlRWxlbWVudHx8YS5ib2R5fWNhdGNoKGIpe3JldHVybiBhLmJvZHl9fVxuZnVuY3Rpb24gWWEoYSxiKXt2YXIgYz1iLmNoZWNrZWQ7cmV0dXJuIG0oe30sYix7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9Yz9jOmEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIFphKGEsYil7dmFyIGM9bnVsbD09Yi5kZWZhdWx0VmFsdWU/XCJcIjpiLmRlZmF1bHRWYWx1ZSxkPW51bGwhPWIuY2hlY2tlZD9iLmNoZWNrZWQ6Yi5kZWZhdWx0Q2hlY2tlZDtjPVNhKG51bGwhPWIudmFsdWU/Yi52YWx1ZTpjKTthLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOmQsaW5pdGlhbFZhbHVlOmMsY29udHJvbGxlZDpcImNoZWNrYm94XCI9PT1iLnR5cGV8fFwicmFkaW9cIj09PWIudHlwZT9udWxsIT1iLmNoZWNrZWQ6bnVsbCE9Yi52YWx1ZX19ZnVuY3Rpb24gJGEoYSxiKXtiPWIuY2hlY2tlZDtudWxsIT1iJiZxYShhLFwiY2hlY2tlZFwiLGIsITEpfVxuZnVuY3Rpb24gYWIoYSxiKXskYShhLGIpO3ZhciBjPVNhKGIudmFsdWUpLGQ9Yi50eXBlO2lmKG51bGwhPWMpaWYoXCJudW1iZXJcIj09PWQpe2lmKDA9PT1jJiZcIlwiPT09YS52YWx1ZXx8YS52YWx1ZSE9YylhLnZhbHVlPVwiXCIrY31lbHNlIGEudmFsdWUhPT1cIlwiK2MmJihhLnZhbHVlPVwiXCIrYyk7ZWxzZSBpZihcInN1Ym1pdFwiPT09ZHx8XCJyZXNldFwiPT09ZCl7YS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtyZXR1cm59Yi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpP2JiKGEsYi50eXBlLGMpOmIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikmJmJiKGEsYi50eXBlLFNhKGIuZGVmYXVsdFZhbHVlKSk7bnVsbD09Yi5jaGVja2VkJiZudWxsIT1iLmRlZmF1bHRDaGVja2VkJiYoYS5kZWZhdWx0Q2hlY2tlZD0hIWIuZGVmYXVsdENoZWNrZWQpfVxuZnVuY3Rpb24gY2IoYSxiLGMpe2lmKGIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKXx8Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSl7dmFyIGQ9Yi50eXBlO2lmKCEoXCJzdWJtaXRcIiE9PWQmJlwicmVzZXRcIiE9PWR8fHZvaWQgMCE9PWIudmFsdWUmJm51bGwhPT1iLnZhbHVlKSlyZXR1cm47Yj1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU7Y3x8Yj09PWEudmFsdWV8fChhLnZhbHVlPWIpO2EuZGVmYXVsdFZhbHVlPWJ9Yz1hLm5hbWU7XCJcIiE9PWMmJihhLm5hbWU9XCJcIik7YS5kZWZhdWx0Q2hlY2tlZD0hIWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcIlwiIT09YyYmKGEubmFtZT1jKX1cbmZ1bmN0aW9uIGJiKGEsYixjKXtpZihcIm51bWJlclwiIT09Ynx8WGEoYS5vd25lckRvY3VtZW50KSE9PWEpbnVsbD09Yz9hLmRlZmF1bHRWYWx1ZT1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6YS5kZWZhdWx0VmFsdWUhPT1cIlwiK2MmJihhLmRlZmF1bHRWYWx1ZT1cIlwiK2MpfWZ1bmN0aW9uIGRiKGEpe3ZhciBiPVwiXCI7YWEuQ2hpbGRyZW4uZm9yRWFjaChhLGZ1bmN0aW9uKGEpe251bGwhPWEmJihiKz1hKX0pO3JldHVybiBifWZ1bmN0aW9uIGViKGEsYil7YT1tKHtjaGlsZHJlbjp2b2lkIDB9LGIpO2lmKGI9ZGIoYi5jaGlsZHJlbikpYS5jaGlsZHJlbj1iO3JldHVybiBhfVxuZnVuY3Rpb24gZmIoYSxiLGMsZCl7YT1hLm9wdGlvbnM7aWYoYil7Yj17fTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyliW1wiJFwiK2NbZV1dPSEwO2ZvcihjPTA7YzxhLmxlbmd0aDtjKyspZT1iLmhhc093blByb3BlcnR5KFwiJFwiK2FbY10udmFsdWUpLGFbY10uc2VsZWN0ZWQhPT1lJiYoYVtjXS5zZWxlY3RlZD1lKSxlJiZkJiYoYVtjXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Yz1cIlwiK1NhKGMpO2I9bnVsbDtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKXtpZihhW2VdLnZhbHVlPT09Yyl7YVtlXS5zZWxlY3RlZD0hMDtkJiYoYVtlXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1udWxsIT09Ynx8YVtlXS5kaXNhYmxlZHx8KGI9YVtlXSl9bnVsbCE9PWImJihiLnNlbGVjdGVkPSEwKX19XG5mdW5jdGlvbiBnYihhLGIpe2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpdGhyb3cgRXJyb3IoeSg5MSkpO3JldHVybiBtKHt9LGIse3ZhbHVlOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLGNoaWxkcmVuOlwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGhiKGEsYil7dmFyIGM9Yi52YWx1ZTtpZihudWxsPT1jKXtjPWIuY2hpbGRyZW47Yj1iLmRlZmF1bHRWYWx1ZTtpZihudWxsIT1jKXtpZihudWxsIT1iKXRocm93IEVycm9yKHkoOTIpKTtpZihBcnJheS5pc0FycmF5KGMpKXtpZighKDE+PWMubGVuZ3RoKSl0aHJvdyBFcnJvcih5KDkzKSk7Yz1jWzBdfWI9Y31udWxsPT1iJiYoYj1cIlwiKTtjPWJ9YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsVmFsdWU6U2EoYyl9fVxuZnVuY3Rpb24gaWIoYSxiKXt2YXIgYz1TYShiLnZhbHVlKSxkPVNhKGIuZGVmYXVsdFZhbHVlKTtudWxsIT1jJiYoYz1cIlwiK2MsYyE9PWEudmFsdWUmJihhLnZhbHVlPWMpLG51bGw9PWIuZGVmYXVsdFZhbHVlJiZhLmRlZmF1bHRWYWx1ZSE9PWMmJihhLmRlZmF1bHRWYWx1ZT1jKSk7bnVsbCE9ZCYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrZCl9ZnVuY3Rpb24gamIoYSl7dmFyIGI9YS50ZXh0Q29udGVudDtiPT09YS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmXCJcIiE9PWImJm51bGwhPT1iJiYoYS52YWx1ZT1iKX12YXIga2I9e2h0bWw6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIsbWF0aG1sOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLHN2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9O1xuZnVuY3Rpb24gbGIoYSl7c3dpdGNoKGEpe2Nhc2UgXCJzdmdcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7Y2FzZSBcIm1hdGhcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtkZWZhdWx0OnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwifX1mdW5jdGlvbiBtYihhLGIpe3JldHVybiBudWxsPT1hfHxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWE/bGIoYik6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YSYmXCJmb3JlaWduT2JqZWN0XCI9PT1iP1wiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiOmF9XG52YXIgbmIsb2I9ZnVuY3Rpb24oYSl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNU0FwcCYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24oYixjLGQsZSl7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gYShiLGMsZCxlKX0pfTphfShmdW5jdGlvbihhLGIpe2lmKGEubmFtZXNwYWNlVVJJIT09a2Iuc3ZnfHxcImlubmVySFRNTFwiaW4gYSlhLmlubmVySFRNTD1iO2Vsc2V7bmI9bmJ8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bmIuaW5uZXJIVE1MPVwiPHN2Zz5cIitiLnZhbHVlT2YoKS50b1N0cmluZygpK1wiPC9zdmc+XCI7Zm9yKGI9bmIuZmlyc3RDaGlsZDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTtmb3IoO2IuZmlyc3RDaGlsZDspYS5hcHBlbmRDaGlsZChiLmZpcnN0Q2hpbGQpfX0pO1xuZnVuY3Rpb24gcGIoYSxiKXtpZihiKXt2YXIgYz1hLmZpcnN0Q2hpbGQ7aWYoYyYmYz09PWEubGFzdENoaWxkJiYzPT09Yy5ub2RlVHlwZSl7Yy5ub2RlVmFsdWU9YjtyZXR1cm59fWEudGV4dENvbnRlbnQ9Yn1cbnZhciBxYj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYm9yZGVySW1hZ2VPdXRzZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEwLGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDohMCxjb2x1bW5Db3VudDohMCxjb2x1bW5zOiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZsZXhPcmRlcjohMCxncmlkQXJlYTohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1NwYW46ITAsZ3JpZFJvd1N0YXJ0OiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3BhbjohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZm9udFdlaWdodDohMCxsaW5lQ2xhbXA6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsdGFiU2l6ZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsXG5mbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxyYj1bXCJXZWJraXRcIixcIm1zXCIsXCJNb3pcIixcIk9cIl07T2JqZWN0LmtleXMocWIpLmZvckVhY2goZnVuY3Rpb24oYSl7cmIuZm9yRWFjaChmdW5jdGlvbihiKXtiPWIrYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnN1YnN0cmluZygxKTtxYltiXT1xYlthXX0pfSk7ZnVuY3Rpb24gc2IoYSxiLGMpe3JldHVybiBudWxsPT1ifHxcImJvb2xlYW5cIj09PXR5cGVvZiBifHxcIlwiPT09Yj9cIlwiOmN8fFwibnVtYmVyXCIhPT10eXBlb2YgYnx8MD09PWJ8fHFiLmhhc093blByb3BlcnR5KGEpJiZxYlthXT8oXCJcIitiKS50cmltKCk6YitcInB4XCJ9XG5mdW5jdGlvbiB0YihhLGIpe2E9YS5zdHlsZTtmb3IodmFyIGMgaW4gYilpZihiLmhhc093blByb3BlcnR5KGMpKXt2YXIgZD0wPT09Yy5pbmRleE9mKFwiLS1cIiksZT1zYihjLGJbY10sZCk7XCJmbG9hdFwiPT09YyYmKGM9XCJjc3NGbG9hdFwiKTtkP2Euc2V0UHJvcGVydHkoYyxlKTphW2NdPWV9fXZhciB1Yj1tKHttZW51aXRlbTohMH0se2FyZWE6ITAsYmFzZTohMCxicjohMCxjb2w6ITAsZW1iZWQ6ITAsaHI6ITAsaW1nOiEwLGlucHV0OiEwLGtleWdlbjohMCxsaW5rOiEwLG1ldGE6ITAscGFyYW06ITAsc291cmNlOiEwLHRyYWNrOiEwLHdicjohMH0pO1xuZnVuY3Rpb24gdmIoYSxiKXtpZihiKXtpZih1YlthXSYmKG51bGwhPWIuY2hpbGRyZW58fG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKHkoMTM3LGEpKTtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXtpZihudWxsIT1iLmNoaWxkcmVuKXRocm93IEVycm9yKHkoNjApKTtpZighKFwib2JqZWN0XCI9PT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmXCJfX2h0bWxcImluIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKHkoNjEpKTt9aWYobnVsbCE9Yi5zdHlsZSYmXCJvYmplY3RcIiE9PXR5cGVvZiBiLnN0eWxlKXRocm93IEVycm9yKHkoNjIpKTt9fVxuZnVuY3Rpb24gd2IoYSxiKXtpZigtMT09PWEuaW5kZXhPZihcIi1cIikpcmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBiLmlzO3N3aXRjaChhKXtjYXNlIFwiYW5ub3RhdGlvbi14bWxcIjpjYXNlIFwiY29sb3ItcHJvZmlsZVwiOmNhc2UgXCJmb250LWZhY2VcIjpjYXNlIFwiZm9udC1mYWNlLXNyY1wiOmNhc2UgXCJmb250LWZhY2UtdXJpXCI6Y2FzZSBcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlIFwiZm9udC1mYWNlLW5hbWVcIjpjYXNlIFwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIHhiKGEpe2E9YS50YXJnZXR8fGEuc3JjRWxlbWVudHx8d2luZG93O2EuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQmJihhPWEuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpO3JldHVybiAzPT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YX12YXIgeWI9bnVsbCx6Yj1udWxsLEFiPW51bGw7XG5mdW5jdGlvbiBCYihhKXtpZihhPUNiKGEpKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgeWIpdGhyb3cgRXJyb3IoeSgyODApKTt2YXIgYj1hLnN0YXRlTm9kZTtiJiYoYj1EYihiKSx5YihhLnN0YXRlTm9kZSxhLnR5cGUsYikpfX1mdW5jdGlvbiBFYihhKXt6Yj9BYj9BYi5wdXNoKGEpOkFiPVthXTp6Yj1hfWZ1bmN0aW9uIEZiKCl7aWYoemIpe3ZhciBhPXpiLGI9QWI7QWI9emI9bnVsbDtCYihhKTtpZihiKWZvcihhPTA7YTxiLmxlbmd0aDthKyspQmIoYlthXSl9fWZ1bmN0aW9uIEdiKGEsYil7cmV0dXJuIGEoYil9ZnVuY3Rpb24gSGIoYSxiLGMsZCxlKXtyZXR1cm4gYShiLGMsZCxlKX1mdW5jdGlvbiBJYigpe312YXIgSmI9R2IsS2I9ITEsTGI9ITE7ZnVuY3Rpb24gTWIoKXtpZihudWxsIT09emJ8fG51bGwhPT1BYilJYigpLEZiKCl9XG5mdW5jdGlvbiBOYihhLGIsYyl7aWYoTGIpcmV0dXJuIGEoYixjKTtMYj0hMDt0cnl7cmV0dXJuIEpiKGEsYixjKX1maW5hbGx5e0xiPSExLE1iKCl9fVxuZnVuY3Rpb24gT2IoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtpZihudWxsPT09YylyZXR1cm4gbnVsbDt2YXIgZD1EYihjKTtpZihudWxsPT09ZClyZXR1cm4gbnVsbDtjPWRbYl07YTpzd2l0Y2goYil7Y2FzZSBcIm9uQ2xpY2tcIjpjYXNlIFwib25DbGlja0NhcHR1cmVcIjpjYXNlIFwib25Eb3VibGVDbGlja1wiOmNhc2UgXCJvbkRvdWJsZUNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlRG93blwiOmNhc2UgXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZU1vdmVcIjpjYXNlIFwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VVcFwiOmNhc2UgXCJvbk1vdXNlVXBDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VFbnRlclwiOihkPSFkLmRpc2FibGVkKXx8KGE9YS50eXBlLGQ9IShcImJ1dHRvblwiPT09YXx8XCJpbnB1dFwiPT09YXx8XCJzZWxlY3RcIj09PWF8fFwidGV4dGFyZWFcIj09PWEpKTthPSFkO2JyZWFrIGE7ZGVmYXVsdDphPSExfWlmKGEpcmV0dXJuIG51bGw7aWYoYyYmXCJmdW5jdGlvblwiIT09XG50eXBlb2YgYyl0aHJvdyBFcnJvcih5KDIzMSxiLHR5cGVvZiBjKSk7cmV0dXJuIGN9dmFyIFBiPSExO2lmKGZhKXRyeXt2YXIgUWI9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KFFiLFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtQYj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIixRYixRYik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsUWIsUWIpfWNhdGNoKGEpe1BiPSExfWZ1bmN0aW9uIFJiKGEsYixjLGQsZSxmLGcsaCxrKXt2YXIgbD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e2IuYXBwbHkoYyxsKX1jYXRjaChuKXt0aGlzLm9uRXJyb3Iobil9fXZhciBTYj0hMSxUYj1udWxsLFViPSExLFZiPW51bGwsV2I9e29uRXJyb3I6ZnVuY3Rpb24oYSl7U2I9ITA7VGI9YX19O2Z1bmN0aW9uIFhiKGEsYixjLGQsZSxmLGcsaCxrKXtTYj0hMTtUYj1udWxsO1JiLmFwcGx5KFdiLGFyZ3VtZW50cyl9XG5mdW5jdGlvbiBZYihhLGIsYyxkLGUsZixnLGgsayl7WGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKFNiKXtpZihTYil7dmFyIGw9VGI7U2I9ITE7VGI9bnVsbH1lbHNlIHRocm93IEVycm9yKHkoMTk4KSk7VWJ8fChVYj0hMCxWYj1sKX19ZnVuY3Rpb24gWmIoYSl7dmFyIGI9YSxjPWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtiLnJldHVybjspYj1iLnJldHVybjtlbHNle2E9YjtkbyBiPWEsMCE9PShiLmZsYWdzJjEwMjYpJiYoYz1iLnJldHVybiksYT1iLnJldHVybjt3aGlsZShhKX1yZXR1cm4gMz09PWIudGFnP2M6bnVsbH1mdW5jdGlvbiAkYihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1hLm1lbW9pemVkU3RhdGU7bnVsbD09PWImJihhPWEuYWx0ZXJuYXRlLG51bGwhPT1hJiYoYj1hLm1lbW9pemVkU3RhdGUpKTtpZihudWxsIT09YilyZXR1cm4gYi5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIGFjKGEpe2lmKFpiKGEpIT09YSl0aHJvdyBFcnJvcih5KDE4OCkpO31cbmZ1bmN0aW9uIGJjKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO2lmKCFiKXtiPVpiKGEpO2lmKG51bGw9PT1iKXRocm93IEVycm9yKHkoMTg4KSk7cmV0dXJuIGIhPT1hP251bGw6YX1mb3IodmFyIGM9YSxkPWI7Oyl7dmFyIGU9Yy5yZXR1cm47aWYobnVsbD09PWUpYnJlYWs7dmFyIGY9ZS5hbHRlcm5hdGU7aWYobnVsbD09PWYpe2Q9ZS5yZXR1cm47aWYobnVsbCE9PWQpe2M9ZDtjb250aW51ZX1icmVha31pZihlLmNoaWxkPT09Zi5jaGlsZCl7Zm9yKGY9ZS5jaGlsZDtmOyl7aWYoZj09PWMpcmV0dXJuIGFjKGUpLGE7aWYoZj09PWQpcmV0dXJuIGFjKGUpLGI7Zj1mLnNpYmxpbmd9dGhyb3cgRXJyb3IoeSgxODgpKTt9aWYoYy5yZXR1cm4hPT1kLnJldHVybiljPWUsZD1mO2Vsc2V7Zm9yKHZhciBnPSExLGg9ZS5jaGlsZDtoOyl7aWYoaD09PWMpe2c9ITA7Yz1lO2Q9ZjticmVha31pZihoPT09ZCl7Zz0hMDtkPWU7Yz1mO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXtmb3IoaD1mLmNoaWxkO2g7KXtpZihoPT09XG5jKXtnPSEwO2M9ZjtkPWU7YnJlYWt9aWYoaD09PWQpe2c9ITA7ZD1mO2M9ZTticmVha31oPWguc2libGluZ31pZighZyl0aHJvdyBFcnJvcih5KDE4OSkpO319aWYoYy5hbHRlcm5hdGUhPT1kKXRocm93IEVycm9yKHkoMTkwKSk7fWlmKDMhPT1jLnRhZyl0aHJvdyBFcnJvcih5KDE4OCkpO3JldHVybiBjLnN0YXRlTm9kZS5jdXJyZW50PT09Yz9hOmJ9ZnVuY3Rpb24gY2MoYSl7YT1iYyhhKTtpZighYSlyZXR1cm4gbnVsbDtmb3IodmFyIGI9YTs7KXtpZig1PT09Yi50YWd8fDY9PT1iLnRhZylyZXR1cm4gYjtpZihiLmNoaWxkKWIuY2hpbGQucmV0dXJuPWIsYj1iLmNoaWxkO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDshYi5zaWJsaW5nOyl7aWYoIWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGRjKGEsYil7Zm9yKHZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1iOyl7aWYoYj09PWF8fGI9PT1jKXJldHVybiEwO2I9Yi5yZXR1cm59cmV0dXJuITF9dmFyIGVjLGZjLGdjLGhjLGljPSExLGpjPVtdLGtjPW51bGwsbGM9bnVsbCxtYz1udWxsLG5jPW5ldyBNYXAsb2M9bmV3IE1hcCxwYz1bXSxxYz1cIm1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCBzdWJtaXRcIi5zcGxpdChcIiBcIik7XG5mdW5jdGlvbiByYyhhLGIsYyxkLGUpe3JldHVybntibG9ja2VkT246YSxkb21FdmVudE5hbWU6YixldmVudFN5c3RlbUZsYWdzOmN8MTYsbmF0aXZlRXZlbnQ6ZSx0YXJnZXRDb250YWluZXJzOltkXX19ZnVuY3Rpb24gc2MoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjpjYXNlIFwiZm9jdXNvdXRcIjprYz1udWxsO2JyZWFrO2Nhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6bGM9bnVsbDticmVhaztjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcIm1vdXNlb3V0XCI6bWM9bnVsbDticmVhaztjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcm91dFwiOm5jLmRlbGV0ZShiLnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOm9jLmRlbGV0ZShiLnBvaW50ZXJJZCl9fVxuZnVuY3Rpb24gdGMoYSxiLGMsZCxlLGYpe2lmKG51bGw9PT1hfHxhLm5hdGl2ZUV2ZW50IT09ZilyZXR1cm4gYT1yYyhiLGMsZCxlLGYpLG51bGwhPT1iJiYoYj1DYihiKSxudWxsIT09YiYmZmMoYikpLGE7YS5ldmVudFN5c3RlbUZsYWdzfD1kO2I9YS50YXJnZXRDb250YWluZXJzO251bGwhPT1lJiYtMT09PWIuaW5kZXhPZihlKSYmYi5wdXNoKGUpO3JldHVybiBhfVxuZnVuY3Rpb24gdWMoYSxiLGMsZCxlKXtzd2l0Y2goYil7Y2FzZSBcImZvY3VzaW5cIjpyZXR1cm4ga2M9dGMoa2MsYSxiLGMsZCxlKSwhMDtjYXNlIFwiZHJhZ2VudGVyXCI6cmV0dXJuIGxjPXRjKGxjLGEsYixjLGQsZSksITA7Y2FzZSBcIm1vdXNlb3ZlclwiOnJldHVybiBtYz10YyhtYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJwb2ludGVyb3ZlclwiOnZhciBmPWUucG9pbnRlcklkO25jLnNldChmLHRjKG5jLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKTtyZXR1cm4hMDtjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpyZXR1cm4gZj1lLnBvaW50ZXJJZCxvYy5zZXQoZix0YyhvYy5nZXQoZil8fG51bGwsYSxiLGMsZCxlKSksITB9cmV0dXJuITF9XG5mdW5jdGlvbiB2YyhhKXt2YXIgYj13YyhhLnRhcmdldCk7aWYobnVsbCE9PWIpe3ZhciBjPVpiKGIpO2lmKG51bGwhPT1jKWlmKGI9Yy50YWcsMTM9PT1iKXtpZihiPSRiKGMpLG51bGwhPT1iKXthLmJsb2NrZWRPbj1iO2hjKGEubGFuZVByaW9yaXR5LGZ1bmN0aW9uKCl7ci51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkoYS5wcmlvcml0eSxmdW5jdGlvbigpe2djKGMpfSl9KTtyZXR1cm59fWVsc2UgaWYoMz09PWImJmMuc3RhdGVOb2RlLmh5ZHJhdGUpe2EuYmxvY2tlZE9uPTM9PT1jLnRhZz9jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX1hLmJsb2NrZWRPbj1udWxsfVxuZnVuY3Rpb24geGMoYSl7aWYobnVsbCE9PWEuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgYj1hLnRhcmdldENvbnRhaW5lcnM7MDxiLmxlbmd0aDspe3ZhciBjPXljKGEuZG9tRXZlbnROYW1lLGEuZXZlbnRTeXN0ZW1GbGFncyxiWzBdLGEubmF0aXZlRXZlbnQpO2lmKG51bGwhPT1jKXJldHVybiBiPUNiKGMpLG51bGwhPT1iJiZmYyhiKSxhLmJsb2NrZWRPbj1jLCExO2Iuc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiB6YyhhLGIsYyl7eGMoYSkmJmMuZGVsZXRlKGIpfVxuZnVuY3Rpb24gQWMoKXtmb3IoaWM9ITE7MDxqYy5sZW5ndGg7KXt2YXIgYT1qY1swXTtpZihudWxsIT09YS5ibG9ja2VkT24pe2E9Q2IoYS5ibG9ja2VkT24pO251bGwhPT1hJiZlYyhhKTticmVha31mb3IodmFyIGI9YS50YXJnZXRDb250YWluZXJzOzA8Yi5sZW5ndGg7KXt2YXIgYz15YyhhLmRvbUV2ZW50TmFtZSxhLmV2ZW50U3lzdGVtRmxhZ3MsYlswXSxhLm5hdGl2ZUV2ZW50KTtpZihudWxsIT09Yyl7YS5ibG9ja2VkT249YzticmVha31iLnNoaWZ0KCl9bnVsbD09PWEuYmxvY2tlZE9uJiZqYy5zaGlmdCgpfW51bGwhPT1rYyYmeGMoa2MpJiYoa2M9bnVsbCk7bnVsbCE9PWxjJiZ4YyhsYykmJihsYz1udWxsKTtudWxsIT09bWMmJnhjKG1jKSYmKG1jPW51bGwpO25jLmZvckVhY2goemMpO29jLmZvckVhY2goemMpfVxuZnVuY3Rpb24gQmMoYSxiKXthLmJsb2NrZWRPbj09PWImJihhLmJsb2NrZWRPbj1udWxsLGljfHwoaWM9ITAsci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKHIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksQWMpKSl9XG5mdW5jdGlvbiBDYyhhKXtmdW5jdGlvbiBiKGIpe3JldHVybiBCYyhiLGEpfWlmKDA8amMubGVuZ3RoKXtCYyhqY1swXSxhKTtmb3IodmFyIGM9MTtjPGpjLmxlbmd0aDtjKyspe3ZhciBkPWpjW2NdO2QuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpfX1udWxsIT09a2MmJkJjKGtjLGEpO251bGwhPT1sYyYmQmMobGMsYSk7bnVsbCE9PW1jJiZCYyhtYyxhKTtuYy5mb3JFYWNoKGIpO29jLmZvckVhY2goYik7Zm9yKGM9MDtjPHBjLmxlbmd0aDtjKyspZD1wY1tjXSxkLmJsb2NrZWRPbj09PWEmJihkLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8cGMubGVuZ3RoJiYoYz1wY1swXSxudWxsPT09Yy5ibG9ja2VkT24pOyl2YyhjKSxudWxsPT09Yy5ibG9ja2VkT24mJnBjLnNoaWZ0KCl9XG5mdW5jdGlvbiBEYyhhLGIpe3ZhciBjPXt9O2NbYS50b0xvd2VyQ2FzZSgpXT1iLnRvTG93ZXJDYXNlKCk7Y1tcIldlYmtpdFwiK2FdPVwid2Via2l0XCIrYjtjW1wiTW96XCIrYV09XCJtb3pcIitiO3JldHVybiBjfXZhciBFYz17YW5pbWF0aW9uZW5kOkRjKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25FbmRcIiksYW5pbWF0aW9uaXRlcmF0aW9uOkRjKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25JdGVyYXRpb25cIiksYW5pbWF0aW9uc3RhcnQ6RGMoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25lbmQ6RGMoXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uRW5kXCIpfSxGYz17fSxHYz17fTtcbmZhJiYoR2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZSxcIkFuaW1hdGlvbkV2ZW50XCJpbiB3aW5kb3d8fChkZWxldGUgRWMuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgRWMuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgRWMuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSxcIlRyYW5zaXRpb25FdmVudFwiaW4gd2luZG93fHxkZWxldGUgRWMudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtmdW5jdGlvbiBIYyhhKXtpZihGY1thXSlyZXR1cm4gRmNbYV07aWYoIUVjW2FdKXJldHVybiBhO3ZhciBiPUVjW2FdLGM7Zm9yKGMgaW4gYilpZihiLmhhc093blByb3BlcnR5KGMpJiZjIGluIEdjKXJldHVybiBGY1thXT1iW2NdO3JldHVybiBhfVxudmFyIEljPUhjKFwiYW5pbWF0aW9uZW5kXCIpLEpjPUhjKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLEtjPUhjKFwiYW5pbWF0aW9uc3RhcnRcIiksTGM9SGMoXCJ0cmFuc2l0aW9uZW5kXCIpLE1jPW5ldyBNYXAsTmM9bmV3IE1hcCxPYz1bXCJhYm9ydFwiLFwiYWJvcnRcIixJYyxcImFuaW1hdGlvbkVuZFwiLEpjLFwiYW5pbWF0aW9uSXRlcmF0aW9uXCIsS2MsXCJhbmltYXRpb25TdGFydFwiLFwiY2FucGxheVwiLFwiY2FuUGxheVwiLFwiY2FucGxheXRocm91Z2hcIixcImNhblBsYXlUaHJvdWdoXCIsXCJkdXJhdGlvbmNoYW5nZVwiLFwiZHVyYXRpb25DaGFuZ2VcIixcImVtcHRpZWRcIixcImVtcHRpZWRcIixcImVuY3J5cHRlZFwiLFwiZW5jcnlwdGVkXCIsXCJlbmRlZFwiLFwiZW5kZWRcIixcImVycm9yXCIsXCJlcnJvclwiLFwiZ290cG9pbnRlcmNhcHR1cmVcIixcImdvdFBvaW50ZXJDYXB0dXJlXCIsXCJsb2FkXCIsXCJsb2FkXCIsXCJsb2FkZWRkYXRhXCIsXCJsb2FkZWREYXRhXCIsXCJsb2FkZWRtZXRhZGF0YVwiLFwibG9hZGVkTWV0YWRhdGFcIixcImxvYWRzdGFydFwiLFwibG9hZFN0YXJ0XCIsXG5cImxvc3Rwb2ludGVyY2FwdHVyZVwiLFwibG9zdFBvaW50ZXJDYXB0dXJlXCIsXCJwbGF5aW5nXCIsXCJwbGF5aW5nXCIsXCJwcm9ncmVzc1wiLFwicHJvZ3Jlc3NcIixcInNlZWtpbmdcIixcInNlZWtpbmdcIixcInN0YWxsZWRcIixcInN0YWxsZWRcIixcInN1c3BlbmRcIixcInN1c3BlbmRcIixcInRpbWV1cGRhdGVcIixcInRpbWVVcGRhdGVcIixMYyxcInRyYW5zaXRpb25FbmRcIixcIndhaXRpbmdcIixcIndhaXRpbmdcIl07ZnVuY3Rpb24gUGMoYSxiKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrPTIpe3ZhciBkPWFbY10sZT1hW2MrMV07ZT1cIm9uXCIrKGVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpKTtOYy5zZXQoZCxiKTtNYy5zZXQoZCxlKTtkYShlLFtkXSl9fXZhciBRYz1yLnVuc3RhYmxlX25vdztRYygpO3ZhciBGPTg7XG5mdW5jdGlvbiBSYyhhKXtpZigwIT09KDEmYSkpcmV0dXJuIEY9MTUsMTtpZigwIT09KDImYSkpcmV0dXJuIEY9MTQsMjtpZigwIT09KDQmYSkpcmV0dXJuIEY9MTMsNDt2YXIgYj0yNCZhO2lmKDAhPT1iKXJldHVybiBGPTEyLGI7aWYoMCE9PShhJjMyKSlyZXR1cm4gRj0xMSwzMjtiPTE5MiZhO2lmKDAhPT1iKXJldHVybiBGPTEwLGI7aWYoMCE9PShhJjI1NikpcmV0dXJuIEY9OSwyNTY7Yj0zNTg0JmE7aWYoMCE9PWIpcmV0dXJuIEY9OCxiO2lmKDAhPT0oYSY0MDk2KSlyZXR1cm4gRj03LDQwOTY7Yj00MTg2MTEyJmE7aWYoMCE9PWIpcmV0dXJuIEY9NixiO2I9NjI5MTQ1NjAmYTtpZigwIT09YilyZXR1cm4gRj01LGI7aWYoYSY2NzEwODg2NClyZXR1cm4gRj00LDY3MTA4ODY0O2lmKDAhPT0oYSYxMzQyMTc3MjgpKXJldHVybiBGPTMsMTM0MjE3NzI4O2I9ODA1MzA2MzY4JmE7aWYoMCE9PWIpcmV0dXJuIEY9MixiO2lmKDAhPT0oMTA3Mzc0MTgyNCZhKSlyZXR1cm4gRj0xLDEwNzM3NDE4MjQ7XG5GPTg7cmV0dXJuIGF9ZnVuY3Rpb24gU2MoYSl7c3dpdGNoKGEpe2Nhc2UgOTk6cmV0dXJuIDE1O2Nhc2UgOTg6cmV0dXJuIDEwO2Nhc2UgOTc6Y2FzZSA5NjpyZXR1cm4gODtjYXNlIDk1OnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIFRjKGEpe3N3aXRjaChhKXtjYXNlIDE1OmNhc2UgMTQ6cmV0dXJuIDk5O2Nhc2UgMTM6Y2FzZSAxMjpjYXNlIDExOmNhc2UgMTA6cmV0dXJuIDk4O2Nhc2UgOTpjYXNlIDg6Y2FzZSA3OmNhc2UgNjpjYXNlIDQ6Y2FzZSA1OnJldHVybiA5NztjYXNlIDM6Y2FzZSAyOmNhc2UgMTpyZXR1cm4gOTU7Y2FzZSAwOnJldHVybiA5MDtkZWZhdWx0OnRocm93IEVycm9yKHkoMzU4LGEpKTt9fVxuZnVuY3Rpb24gVWMoYSxiKXt2YXIgYz1hLnBlbmRpbmdMYW5lcztpZigwPT09YylyZXR1cm4gRj0wO3ZhciBkPTAsZT0wLGY9YS5leHBpcmVkTGFuZXMsZz1hLnN1c3BlbmRlZExhbmVzLGg9YS5waW5nZWRMYW5lcztpZigwIT09ZilkPWYsZT1GPTE1O2Vsc2UgaWYoZj1jJjEzNDIxNzcyNywwIT09Zil7dmFyIGs9ZiZ+ZzswIT09az8oZD1SYyhrKSxlPUYpOihoJj1mLDAhPT1oJiYoZD1SYyhoKSxlPUYpKX1lbHNlIGY9YyZ+ZywwIT09Zj8oZD1SYyhmKSxlPUYpOjAhPT1oJiYoZD1SYyhoKSxlPUYpO2lmKDA9PT1kKXJldHVybiAwO2Q9MzEtVmMoZCk7ZD1jJigoMD5kPzA6MTw8ZCk8PDEpLTE7aWYoMCE9PWImJmIhPT1kJiYwPT09KGImZykpe1JjKGIpO2lmKGU8PUYpcmV0dXJuIGI7Rj1lfWI9YS5lbnRhbmdsZWRMYW5lcztpZigwIT09Yilmb3IoYT1hLmVudGFuZ2xlbWVudHMsYiY9ZDswPGI7KWM9MzEtVmMoYiksZT0xPDxjLGR8PWFbY10sYiY9fmU7cmV0dXJuIGR9XG5mdW5jdGlvbiBXYyhhKXthPWEucGVuZGluZ0xhbmVzJi0xMDczNzQxODI1O3JldHVybiAwIT09YT9hOmEmMTA3Mzc0MTgyND8xMDczNzQxODI0OjB9ZnVuY3Rpb24gWGMoYSxiKXtzd2l0Y2goYSl7Y2FzZSAxNTpyZXR1cm4gMTtjYXNlIDE0OnJldHVybiAyO2Nhc2UgMTI6cmV0dXJuIGE9WWMoMjQmfmIpLDA9PT1hP1hjKDEwLGIpOmE7Y2FzZSAxMDpyZXR1cm4gYT1ZYygxOTImfmIpLDA9PT1hP1hjKDgsYik6YTtjYXNlIDg6cmV0dXJuIGE9WWMoMzU4NCZ+YiksMD09PWEmJihhPVljKDQxODYxMTImfmIpLDA9PT1hJiYoYT01MTIpKSxhO2Nhc2UgMjpyZXR1cm4gYj1ZYyg4MDUzMDYzNjgmfmIpLDA9PT1iJiYoYj0yNjg0MzU0NTYpLGJ9dGhyb3cgRXJyb3IoeSgzNTgsYSkpO31mdW5jdGlvbiBZYyhhKXtyZXR1cm4gYSYtYX1mdW5jdGlvbiBaYyhhKXtmb3IodmFyIGI9W10sYz0wOzMxPmM7YysrKWIucHVzaChhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uICRjKGEsYixjKXthLnBlbmRpbmdMYW5lc3w9Yjt2YXIgZD1iLTE7YS5zdXNwZW5kZWRMYW5lcyY9ZDthLnBpbmdlZExhbmVzJj1kO2E9YS5ldmVudFRpbWVzO2I9MzEtVmMoYik7YVtiXT1jfXZhciBWYz1NYXRoLmNsejMyP01hdGguY2x6MzI6YWQsYmQ9TWF0aC5sb2csY2Q9TWF0aC5MTjI7ZnVuY3Rpb24gYWQoYSl7cmV0dXJuIDA9PT1hPzMyOjMxLShiZChhKS9jZHwwKXwwfXZhciBkZD1yLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LGVkPXIudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5LGZkPSEwO2Z1bmN0aW9uIGdkKGEsYixjLGQpe0tifHxJYigpO3ZhciBlPWhkLGY9S2I7S2I9ITA7dHJ5e0hiKGUsYSxiLGMsZCl9ZmluYWxseXsoS2I9Zil8fE1iKCl9fWZ1bmN0aW9uIGlkKGEsYixjLGQpe2VkKGRkLGhkLmJpbmQobnVsbCxhLGIsYyxkKSl9XG5mdW5jdGlvbiBoZChhLGIsYyxkKXtpZihmZCl7dmFyIGU7aWYoKGU9MD09PShiJjQpKSYmMDxqYy5sZW5ndGgmJi0xPHFjLmluZGV4T2YoYSkpYT1yYyhudWxsLGEsYixjLGQpLGpjLnB1c2goYSk7ZWxzZXt2YXIgZj15YyhhLGIsYyxkKTtpZihudWxsPT09ZillJiZzYyhhLGQpO2Vsc2V7aWYoZSl7aWYoLTE8cWMuaW5kZXhPZihhKSl7YT1yYyhmLGEsYixjLGQpO2pjLnB1c2goYSk7cmV0dXJufWlmKHVjKGYsYSxiLGMsZCkpcmV0dXJuO3NjKGEsZCl9amQoYSxiLGQsbnVsbCxjKX19fX1cbmZ1bmN0aW9uIHljKGEsYixjLGQpe3ZhciBlPXhiKGQpO2U9d2MoZSk7aWYobnVsbCE9PWUpe3ZhciBmPVpiKGUpO2lmKG51bGw9PT1mKWU9bnVsbDtlbHNle3ZhciBnPWYudGFnO2lmKDEzPT09Zyl7ZT0kYihmKTtpZihudWxsIT09ZSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzPT09Zyl7aWYoZi5zdGF0ZU5vZGUuaHlkcmF0ZSlyZXR1cm4gMz09PWYudGFnP2Yuc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSBmIT09ZSYmKGU9bnVsbCl9fWpkKGEsYixkLGUsYyk7cmV0dXJuIG51bGx9dmFyIGtkPW51bGwsbGQ9bnVsbCxtZD1udWxsO1xuZnVuY3Rpb24gbmQoKXtpZihtZClyZXR1cm4gbWQ7dmFyIGEsYj1sZCxjPWIubGVuZ3RoLGQsZT1cInZhbHVlXCJpbiBrZD9rZC52YWx1ZTprZC50ZXh0Q29udGVudCxmPWUubGVuZ3RoO2ZvcihhPTA7YTxjJiZiW2FdPT09ZVthXTthKyspO3ZhciBnPWMtYTtmb3IoZD0xO2Q8PWcmJmJbYy1kXT09PWVbZi1kXTtkKyspO3JldHVybiBtZD1lLnNsaWNlKGEsMTxkPzEtZDp2b2lkIDApfWZ1bmN0aW9uIG9kKGEpe3ZhciBiPWEua2V5Q29kZTtcImNoYXJDb2RlXCJpbiBhPyhhPWEuY2hhckNvZGUsMD09PWEmJjEzPT09YiYmKGE9MTMpKTphPWI7MTA9PT1hJiYoYT0xMyk7cmV0dXJuIDMyPD1hfHwxMz09PWE/YTowfWZ1bmN0aW9uIHBkKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWQoKXtyZXR1cm4hMX1cbmZ1bmN0aW9uIHJkKGEpe2Z1bmN0aW9uIGIoYixkLGUsZixnKXt0aGlzLl9yZWFjdE5hbWU9Yjt0aGlzLl90YXJnZXRJbnN0PWU7dGhpcy50eXBlPWQ7dGhpcy5uYXRpdmVFdmVudD1mO3RoaXMudGFyZ2V0PWc7dGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmKGI9YVtjXSx0aGlzW2NdPWI/YihmKTpmW2NdKTt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9Zi5kZWZhdWx0UHJldmVudGVkP2YuZGVmYXVsdFByZXZlbnRlZDohMT09PWYucmV0dXJuVmFsdWUpP3BkOnFkO3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cWQ7cmV0dXJuIHRoaXN9bShiLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5yZXR1cm5WYWx1ZSYmXG4oYS5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9cGQpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnN0b3BQcm9wYWdhdGlvbj9hLnN0b3BQcm9wYWdhdGlvbigpOlwidW5rbm93blwiIT09dHlwZW9mIGEuY2FuY2VsQnViYmxlJiYoYS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cGQpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7fSxpc1BlcnNpc3RlbnQ6cGR9KTtyZXR1cm4gYn1cbnZhciBzZD17ZXZlbnRQaGFzZTowLGJ1YmJsZXM6MCxjYW5jZWxhYmxlOjAsdGltZVN0YW1wOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDowLGlzVHJ1c3RlZDowfSx0ZD1yZChzZCksdWQ9bSh7fSxzZCx7dmlldzowLGRldGFpbDowfSksdmQ9cmQodWQpLHdkLHhkLHlkLEFkPW0oe30sdWQse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6emQsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHZvaWQgMD09PWEucmVsYXRlZFRhcmdldD9hLmZyb21FbGVtZW50PT09YS5zcmNFbGVtZW50P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ6YS5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24oYSl7aWYoXCJtb3ZlbWVudFhcImluXG5hKXJldHVybiBhLm1vdmVtZW50WDthIT09eWQmJih5ZCYmXCJtb3VzZW1vdmVcIj09PWEudHlwZT8od2Q9YS5zY3JlZW5YLXlkLnNjcmVlblgseGQ9YS5zY3JlZW5ZLXlkLnNjcmVlblkpOnhkPXdkPTAseWQ9YSk7cmV0dXJuIHdkfSxtb3ZlbWVudFk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJtb3ZlbWVudFlcImluIGE/YS5tb3ZlbWVudFk6eGR9fSksQmQ9cmQoQWQpLENkPW0oe30sQWQse2RhdGFUcmFuc2ZlcjowfSksRGQ9cmQoQ2QpLEVkPW0oe30sdWQse3JlbGF0ZWRUYXJnZXQ6MH0pLEZkPXJkKEVkKSxHZD1tKHt9LHNkLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxIZD1yZChHZCksSWQ9bSh7fSxzZCx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihhKXtyZXR1cm5cImNsaXBib2FyZERhdGFcImluIGE/YS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLEpkPXJkKElkKSxLZD1tKHt9LHNkLHtkYXRhOjB9KSxMZD1yZChLZCksTWQ9e0VzYzpcIkVzY2FwZVwiLFxuU3BhY2ViYXI6XCIgXCIsTGVmdDpcIkFycm93TGVmdFwiLFVwOlwiQXJyb3dVcFwiLFJpZ2h0OlwiQXJyb3dSaWdodFwiLERvd246XCJBcnJvd0Rvd25cIixEZWw6XCJEZWxldGVcIixXaW46XCJPU1wiLE1lbnU6XCJDb250ZXh0TWVudVwiLEFwcHM6XCJDb250ZXh0TWVudVwiLFNjcm9sbDpcIlNjcm9sbExvY2tcIixNb3pQcmludGFibGVLZXk6XCJVbmlkZW50aWZpZWRcIn0sTmQ9ezg6XCJCYWNrc3BhY2VcIiw5OlwiVGFiXCIsMTI6XCJDbGVhclwiLDEzOlwiRW50ZXJcIiwxNjpcIlNoaWZ0XCIsMTc6XCJDb250cm9sXCIsMTg6XCJBbHRcIiwxOTpcIlBhdXNlXCIsMjA6XCJDYXBzTG9ja1wiLDI3OlwiRXNjYXBlXCIsMzI6XCIgXCIsMzM6XCJQYWdlVXBcIiwzNDpcIlBhZ2VEb3duXCIsMzU6XCJFbmRcIiwzNjpcIkhvbWVcIiwzNzpcIkFycm93TGVmdFwiLDM4OlwiQXJyb3dVcFwiLDM5OlwiQXJyb3dSaWdodFwiLDQwOlwiQXJyb3dEb3duXCIsNDU6XCJJbnNlcnRcIiw0NjpcIkRlbGV0ZVwiLDExMjpcIkYxXCIsMTEzOlwiRjJcIiwxMTQ6XCJGM1wiLDExNTpcIkY0XCIsMTE2OlwiRjVcIiwxMTc6XCJGNlwiLDExODpcIkY3XCIsXG4xMTk6XCJGOFwiLDEyMDpcIkY5XCIsMTIxOlwiRjEwXCIsMTIyOlwiRjExXCIsMTIzOlwiRjEyXCIsMTQ0OlwiTnVtTG9ja1wiLDE0NTpcIlNjcm9sbExvY2tcIiwyMjQ6XCJNZXRhXCJ9LE9kPXtBbHQ6XCJhbHRLZXlcIixDb250cm9sOlwiY3RybEtleVwiLE1ldGE6XCJtZXRhS2V5XCIsU2hpZnQ6XCJzaGlmdEtleVwifTtmdW5jdGlvbiBQZChhKXt2YXIgYj10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBiLmdldE1vZGlmaWVyU3RhdGU/Yi5nZXRNb2RpZmllclN0YXRlKGEpOihhPU9kW2FdKT8hIWJbYV06ITF9ZnVuY3Rpb24gemQoKXtyZXR1cm4gUGR9XG52YXIgUWQ9bSh7fSx1ZCx7a2V5OmZ1bmN0aW9uKGEpe2lmKGEua2V5KXt2YXIgYj1NZFthLmtleV18fGEua2V5O2lmKFwiVW5pZGVudGlmaWVkXCIhPT1iKXJldHVybiBifXJldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT8oYT1vZChhKSwxMz09PWE/XCJFbnRlclwiOlN0cmluZy5mcm9tQ2hhckNvZGUoYSkpOlwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/TmRbYS5rZXlDb2RlXXx8XCJVbmlkZW50aWZpZWRcIjpcIlwifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxjaGFyQ29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/b2QoYSk6MH0sa2V5Q29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1cbmEudHlwZT9vZChhKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfX0pLFJkPXJkKFFkKSxTZD1tKHt9LEFkLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLFRkPXJkKFNkKSxVZD1tKHt9LHVkLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6emR9KSxWZD1yZChVZCksV2Q9bSh7fSxzZCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxYZD1yZChXZCksWWQ9bSh7fSxBZCx7ZGVsdGFYOmZ1bmN0aW9uKGEpe3JldHVyblwiZGVsdGFYXCJpbiBhP2EuZGVsdGFYOlwid2hlZWxEZWx0YVhcImluIGE/LWEud2hlZWxEZWx0YVg6MH0sXG5kZWx0YVk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVlcImluIGE/YS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gYT8tYS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGE/LWEud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLFpkPXJkKFlkKSwkZD1bOSwxMywyNywzMl0sYWU9ZmEmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LGJlPW51bGw7ZmEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmKGJlPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIGNlPWZhJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhYmUsZGU9ZmEmJighYWV8fGJlJiY4PGJlJiYxMT49YmUpLGVlPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLGZlPSExO1xuZnVuY3Rpb24gZ2UoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImtleXVwXCI6cmV0dXJuLTEhPT0kZC5pbmRleE9mKGIua2V5Q29kZSk7Y2FzZSBcImtleWRvd25cIjpyZXR1cm4gMjI5IT09Yi5rZXlDb2RlO2Nhc2UgXCJrZXlwcmVzc1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwiZm9jdXNvdXRcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBoZShhKXthPWEuZGV0YWlsO3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmXCJkYXRhXCJpbiBhP2EuZGF0YTpudWxsfXZhciBpZT0hMTtmdW5jdGlvbiBqZShhLGIpe3N3aXRjaChhKXtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gaGUoYik7Y2FzZSBcImtleXByZXNzXCI6aWYoMzIhPT1iLndoaWNoKXJldHVybiBudWxsO2ZlPSEwO3JldHVybiBlZTtjYXNlIFwidGV4dElucHV0XCI6cmV0dXJuIGE9Yi5kYXRhLGE9PT1lZSYmZmU/bnVsbDphO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24ga2UoYSxiKXtpZihpZSlyZXR1cm5cImNvbXBvc2l0aW9uZW5kXCI9PT1hfHwhYWUmJmdlKGEsYik/KGE9bmQoKSxtZD1sZD1rZD1udWxsLGllPSExLGEpOm51bGw7c3dpdGNoKGEpe2Nhc2UgXCJwYXN0ZVwiOnJldHVybiBudWxsO2Nhc2UgXCJrZXlwcmVzc1wiOmlmKCEoYi5jdHJsS2V5fHxiLmFsdEtleXx8Yi5tZXRhS2V5KXx8Yi5jdHJsS2V5JiZiLmFsdEtleSl7aWYoYi5jaGFyJiYxPGIuY2hhci5sZW5ndGgpcmV0dXJuIGIuY2hhcjtpZihiLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGIud2hpY2gpfXJldHVybiBudWxsO2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiBkZSYmXCJrb1wiIT09Yi5sb2NhbGU/bnVsbDpiLmRhdGE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG52YXIgbGU9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gbWUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PWI/ISFsZVthLnR5cGVdOlwidGV4dGFyZWFcIj09PWI/ITA6ITF9ZnVuY3Rpb24gbmUoYSxiLGMsZCl7RWIoZCk7Yj1vZShiLFwib25DaGFuZ2VcIik7MDxiLmxlbmd0aCYmKGM9bmV3IHRkKFwib25DaGFuZ2VcIixcImNoYW5nZVwiLG51bGwsYyxkKSxhLnB1c2goe2V2ZW50OmMsbGlzdGVuZXJzOmJ9KSl9dmFyIHBlPW51bGwscWU9bnVsbDtmdW5jdGlvbiByZShhKXtzZShhLDApfWZ1bmN0aW9uIHRlKGEpe3ZhciBiPXVlKGEpO2lmKFdhKGIpKXJldHVybiBhfVxuZnVuY3Rpb24gdmUoYSxiKXtpZihcImNoYW5nZVwiPT09YSlyZXR1cm4gYn12YXIgd2U9ITE7aWYoZmEpe3ZhciB4ZTtpZihmYSl7dmFyIHllPVwib25pbnB1dFwiaW4gZG9jdW1lbnQ7aWYoIXllKXt2YXIgemU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt6ZS5zZXRBdHRyaWJ1dGUoXCJvbmlucHV0XCIsXCJyZXR1cm47XCIpO3llPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB6ZS5vbmlucHV0fXhlPXllfWVsc2UgeGU9ITE7d2U9eGUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gQWUoKXtwZSYmKHBlLmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSxxZT1wZT1udWxsKX1mdW5jdGlvbiBCZShhKXtpZihcInZhbHVlXCI9PT1hLnByb3BlcnR5TmFtZSYmdGUocWUpKXt2YXIgYj1bXTtuZShiLHFlLGEseGIoYSkpO2E9cmU7aWYoS2IpYShiKTtlbHNle0tiPSEwO3RyeXtHYihhLGIpfWZpbmFsbHl7S2I9ITEsTWIoKX19fX1cbmZ1bmN0aW9uIENlKGEsYixjKXtcImZvY3VzaW5cIj09PWE/KEFlKCkscGU9YixxZT1jLHBlLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSk6XCJmb2N1c291dFwiPT09YSYmQWUoKX1mdW5jdGlvbiBEZShhKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09YXx8XCJrZXl1cFwiPT09YXx8XCJrZXlkb3duXCI9PT1hKXJldHVybiB0ZShxZSl9ZnVuY3Rpb24gRWUoYSxiKXtpZihcImNsaWNrXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBGZShhLGIpe2lmKFwiaW5wdXRcIj09PWF8fFwiY2hhbmdlXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBHZShhLGIpe3JldHVybiBhPT09YiYmKDAhPT1hfHwxL2E9PT0xL2IpfHxhIT09YSYmYiE9PWJ9dmFyIEhlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOkdlLEllPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5mdW5jdGlvbiBKZShhLGIpe2lmKEhlKGEsYikpcmV0dXJuITA7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhfHxudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBifHxudWxsPT09YilyZXR1cm4hMTt2YXIgYz1PYmplY3Qua2V5cyhhKSxkPU9iamVjdC5rZXlzKGIpO2lmKGMubGVuZ3RoIT09ZC5sZW5ndGgpcmV0dXJuITE7Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrKylpZighSWUuY2FsbChiLGNbZF0pfHwhSGUoYVtjW2RdXSxiW2NbZF1dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBLZShhKXtmb3IoO2EmJmEuZmlyc3RDaGlsZDspYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9XG5mdW5jdGlvbiBMZShhLGIpe3ZhciBjPUtlKGEpO2E9MDtmb3IodmFyIGQ7Yzspe2lmKDM9PT1jLm5vZGVUeXBlKXtkPWErYy50ZXh0Q29udGVudC5sZW5ndGg7aWYoYTw9YiYmZD49YilyZXR1cm57bm9kZTpjLG9mZnNldDpiLWF9O2E9ZH1hOntmb3IoO2M7KXtpZihjLm5leHRTaWJsaW5nKXtjPWMubmV4dFNpYmxpbmc7YnJlYWsgYX1jPWMucGFyZW50Tm9kZX1jPXZvaWQgMH1jPUtlKGMpfX1mdW5jdGlvbiBNZShhLGIpe3JldHVybiBhJiZiP2E9PT1iPyEwOmEmJjM9PT1hLm5vZGVUeXBlPyExOmImJjM9PT1iLm5vZGVUeXBlP01lKGEsYi5wYXJlbnROb2RlKTpcImNvbnRhaW5zXCJpbiBhP2EuY29udGFpbnMoYik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8hIShhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjE2KTohMTohMX1cbmZ1bmN0aW9uIE5lKCl7Zm9yKHZhciBhPXdpbmRvdyxiPVhhKCk7YiBpbnN0YW5jZW9mIGEuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIGM9XCJzdHJpbmdcIj09PXR5cGVvZiBiLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChkKXtjPSExfWlmKGMpYT1iLmNvbnRlbnRXaW5kb3c7ZWxzZSBicmVhaztiPVhhKGEuZG9jdW1lbnQpfXJldHVybiBifWZ1bmN0aW9uIE9lKGEpe3ZhciBiPWEmJmEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gYiYmKFwiaW5wdXRcIj09PWImJihcInRleHRcIj09PWEudHlwZXx8XCJzZWFyY2hcIj09PWEudHlwZXx8XCJ0ZWxcIj09PWEudHlwZXx8XCJ1cmxcIj09PWEudHlwZXx8XCJwYXNzd29yZFwiPT09YS50eXBlKXx8XCJ0ZXh0YXJlYVwiPT09Ynx8XCJ0cnVlXCI9PT1hLmNvbnRlbnRFZGl0YWJsZSl9XG52YXIgUGU9ZmEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxRZT1udWxsLFJlPW51bGwsU2U9bnVsbCxUZT0hMTtcbmZ1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD1jLndpbmRvdz09PWM/Yy5kb2N1bWVudDo5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudDtUZXx8bnVsbD09UWV8fFFlIT09WGEoZCl8fChkPVFlLFwic2VsZWN0aW9uU3RhcnRcImluIGQmJk9lKGQpP2Q9e3N0YXJ0OmQuc2VsZWN0aW9uU3RhcnQsZW5kOmQuc2VsZWN0aW9uRW5kfTooZD0oZC5vd25lckRvY3VtZW50JiZkLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCksZD17YW5jaG9yTm9kZTpkLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OmQuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpkLmZvY3VzTm9kZSxmb2N1c09mZnNldDpkLmZvY3VzT2Zmc2V0fSksU2UmJkplKFNlLGQpfHwoU2U9ZCxkPW9lKFJlLFwib25TZWxlY3RcIiksMDxkLmxlbmd0aCYmKGI9bmV3IHRkKFwib25TZWxlY3RcIixcInNlbGVjdFwiLG51bGwsYixjKSxhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmR9KSxiLnRhcmdldD1RZSkpKX1cblBjKFwiY2FuY2VsIGNhbmNlbCBjbGljayBjbGljayBjbG9zZSBjbG9zZSBjb250ZXh0bWVudSBjb250ZXh0TWVudSBjb3B5IGNvcHkgY3V0IGN1dCBhdXhjbGljayBhdXhDbGljayBkYmxjbGljayBkb3VibGVDbGljayBkcmFnZW5kIGRyYWdFbmQgZHJhZ3N0YXJ0IGRyYWdTdGFydCBkcm9wIGRyb3AgZm9jdXNpbiBmb2N1cyBmb2N1c291dCBibHVyIGlucHV0IGlucHV0IGludmFsaWQgaW52YWxpZCBrZXlkb3duIGtleURvd24ga2V5cHJlc3Mga2V5UHJlc3Mga2V5dXAga2V5VXAgbW91c2Vkb3duIG1vdXNlRG93biBtb3VzZXVwIG1vdXNlVXAgcGFzdGUgcGFzdGUgcGF1c2UgcGF1c2UgcGxheSBwbGF5IHBvaW50ZXJjYW5jZWwgcG9pbnRlckNhbmNlbCBwb2ludGVyZG93biBwb2ludGVyRG93biBwb2ludGVydXAgcG9pbnRlclVwIHJhdGVjaGFuZ2UgcmF0ZUNoYW5nZSByZXNldCByZXNldCBzZWVrZWQgc2Vla2VkIHN1Ym1pdCBzdWJtaXQgdG91Y2hjYW5jZWwgdG91Y2hDYW5jZWwgdG91Y2hlbmQgdG91Y2hFbmQgdG91Y2hzdGFydCB0b3VjaFN0YXJ0IHZvbHVtZWNoYW5nZSB2b2x1bWVDaGFuZ2VcIi5zcGxpdChcIiBcIiksXG4wKTtQYyhcImRyYWcgZHJhZyBkcmFnZW50ZXIgZHJhZ0VudGVyIGRyYWdleGl0IGRyYWdFeGl0IGRyYWdsZWF2ZSBkcmFnTGVhdmUgZHJhZ292ZXIgZHJhZ092ZXIgbW91c2Vtb3ZlIG1vdXNlTW92ZSBtb3VzZW91dCBtb3VzZU91dCBtb3VzZW92ZXIgbW91c2VPdmVyIHBvaW50ZXJtb3ZlIHBvaW50ZXJNb3ZlIHBvaW50ZXJvdXQgcG9pbnRlck91dCBwb2ludGVyb3ZlciBwb2ludGVyT3ZlciBzY3JvbGwgc2Nyb2xsIHRvZ2dsZSB0b2dnbGUgdG91Y2htb3ZlIHRvdWNoTW92ZSB3aGVlbCB3aGVlbFwiLnNwbGl0KFwiIFwiKSwxKTtQYyhPYywyKTtmb3IodmFyIFZlPVwiY2hhbmdlIHNlbGVjdGlvbmNoYW5nZSB0ZXh0SW5wdXQgY29tcG9zaXRpb25zdGFydCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnVwZGF0ZVwiLnNwbGl0KFwiIFwiKSxXZT0wO1dlPFZlLmxlbmd0aDtXZSsrKU5jLnNldChWZVtXZV0sMCk7ZWEoXCJvbk1vdXNlRW50ZXJcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKTtcbmVhKFwib25Nb3VzZUxlYXZlXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSk7ZWEoXCJvblBvaW50ZXJFbnRlclwiLFtcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdKTtlYShcIm9uUG9pbnRlckxlYXZlXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pO2RhKFwib25DaGFuZ2VcIixcImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpKTtkYShcIm9uU2VsZWN0XCIsXCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2RhKFwib25CZWZvcmVJbnB1dFwiLFtcImNvbXBvc2l0aW9uZW5kXCIsXCJrZXlwcmVzc1wiLFwidGV4dElucHV0XCIsXCJwYXN0ZVwiXSk7ZGEoXCJvbkNvbXBvc2l0aW9uRW5kXCIsXCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7XG5kYShcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7ZGEoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIFhlPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZ1wiLnNwbGl0KFwiIFwiKSxZZT1uZXcgU2V0KFwiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChYZSkpO1xuZnVuY3Rpb24gWmUoYSxiLGMpe3ZhciBkPWEudHlwZXx8XCJ1bmtub3duLWV2ZW50XCI7YS5jdXJyZW50VGFyZ2V0PWM7WWIoZCxiLHZvaWQgMCxhKTthLmN1cnJlbnRUYXJnZXQ9bnVsbH1cbmZ1bmN0aW9uIHNlKGEsYil7Yj0wIT09KGImNCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmV2ZW50O2Q9ZC5saXN0ZW5lcnM7YTp7dmFyIGY9dm9pZCAwO2lmKGIpZm9yKHZhciBnPWQubGVuZ3RoLTE7MDw9ZztnLS0pe3ZhciBoPWRbZ10saz1oLmluc3RhbmNlLGw9aC5jdXJyZW50VGFyZ2V0O2g9aC5saXN0ZW5lcjtpZihrIT09ZiYmZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGE7WmUoZSxoLGwpO2Y9a31lbHNlIGZvcihnPTA7ZzxkLmxlbmd0aDtnKyspe2g9ZFtnXTtrPWguaW5zdGFuY2U7bD1oLmN1cnJlbnRUYXJnZXQ7aD1oLmxpc3RlbmVyO2lmKGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtaZShlLGgsbCk7Zj1rfX19aWYoVWIpdGhyb3cgYT1WYixVYj0hMSxWYj1udWxsLGE7fVxuZnVuY3Rpb24gRyhhLGIpe3ZhciBjPSRlKGIpLGQ9YStcIl9fYnViYmxlXCI7Yy5oYXMoZCl8fChhZihiLGEsMiwhMSksYy5hZGQoZCkpfXZhciBiZj1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIGNmKGEpe2FbYmZdfHwoYVtiZl09ITAsYmEuZm9yRWFjaChmdW5jdGlvbihiKXtZZS5oYXMoYil8fGRmKGIsITEsYSxudWxsKTtkZihiLCEwLGEsbnVsbCl9KSl9XG5mdW5jdGlvbiBkZihhLGIsYyxkKXt2YXIgZT00PGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06MCxmPWM7XCJzZWxlY3Rpb25jaGFuZ2VcIj09PWEmJjkhPT1jLm5vZGVUeXBlJiYoZj1jLm93bmVyRG9jdW1lbnQpO2lmKG51bGwhPT1kJiYhYiYmWWUuaGFzKGEpKXtpZihcInNjcm9sbFwiIT09YSlyZXR1cm47ZXw9MjtmPWR9dmFyIGc9JGUoZiksaD1hK1wiX19cIisoYj9cImNhcHR1cmVcIjpcImJ1YmJsZVwiKTtnLmhhcyhoKXx8KGImJihlfD00KSxhZihmLGEsZSxiKSxnLmFkZChoKSl9XG5mdW5jdGlvbiBhZihhLGIsYyxkKXt2YXIgZT1OYy5nZXQoYik7c3dpdGNoKHZvaWQgMD09PWU/MjplKXtjYXNlIDA6ZT1nZDticmVhaztjYXNlIDE6ZT1pZDticmVhaztkZWZhdWx0OmU9aGR9Yz1lLmJpbmQobnVsbCxiLGMsYSk7ZT12b2lkIDA7IVBifHxcInRvdWNoc3RhcnRcIiE9PWImJlwidG91Y2htb3ZlXCIhPT1iJiZcIndoZWVsXCIhPT1ifHwoZT0hMCk7ZD92b2lkIDAhPT1lP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMse2NhcHR1cmU6ITAscGFzc2l2ZTplfSk6YS5hZGRFdmVudExpc3RlbmVyKGIsYywhMCk6dm9pZCAwIT09ZT9hLmFkZEV2ZW50TGlzdGVuZXIoYixjLHtwYXNzaXZlOmV9KTphLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKX1cbmZ1bmN0aW9uIGpkKGEsYixjLGQsZSl7dmFyIGY9ZDtpZigwPT09KGImMSkmJjA9PT0oYiYyKSYmbnVsbCE9PWQpYTpmb3IoOzspe2lmKG51bGw9PT1kKXJldHVybjt2YXIgZz1kLnRhZztpZigzPT09Z3x8ND09PWcpe3ZhciBoPWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoaD09PWV8fDg9PT1oLm5vZGVUeXBlJiZoLnBhcmVudE5vZGU9PT1lKWJyZWFrO2lmKDQ9PT1nKWZvcihnPWQucmV0dXJuO251bGwhPT1nOyl7dmFyIGs9Zy50YWc7aWYoMz09PWt8fDQ9PT1rKWlmKGs9Zy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxrPT09ZXx8OD09PWsubm9kZVR5cGUmJmsucGFyZW50Tm9kZT09PWUpcmV0dXJuO2c9Zy5yZXR1cm59Zm9yKDtudWxsIT09aDspe2c9d2MoaCk7aWYobnVsbD09PWcpcmV0dXJuO2s9Zy50YWc7aWYoNT09PWt8fDY9PT1rKXtkPWY9Zztjb250aW51ZSBhfWg9aC5wYXJlbnROb2RlfX1kPWQucmV0dXJufU5iKGZ1bmN0aW9uKCl7dmFyIGQ9ZixlPXhiKGMpLGc9W107XG5hOnt2YXIgaD1NYy5nZXQoYSk7aWYodm9pZCAwIT09aCl7dmFyIGs9dGQseD1hO3N3aXRjaChhKXtjYXNlIFwia2V5cHJlc3NcIjppZigwPT09b2QoYykpYnJlYWsgYTtjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOms9UmQ7YnJlYWs7Y2FzZSBcImZvY3VzaW5cIjp4PVwiZm9jdXNcIjtrPUZkO2JyZWFrO2Nhc2UgXCJmb2N1c291dFwiOng9XCJibHVyXCI7az1GZDticmVhaztjYXNlIFwiYmVmb3JlYmx1clwiOmNhc2UgXCJhZnRlcmJsdXJcIjprPUZkO2JyZWFrO2Nhc2UgXCJjbGlja1wiOmlmKDI9PT1jLmJ1dHRvbilicmVhayBhO2Nhc2UgXCJhdXhjbGlja1wiOmNhc2UgXCJkYmxjbGlja1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwibW91c2Vtb3ZlXCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwibW91c2VvdXRcIjpjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcImNvbnRleHRtZW51XCI6az1CZDticmVhaztjYXNlIFwiZHJhZ1wiOmNhc2UgXCJkcmFnZW5kXCI6Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnZXhpdFwiOmNhc2UgXCJkcmFnbGVhdmVcIjpjYXNlIFwiZHJhZ292ZXJcIjpjYXNlIFwiZHJhZ3N0YXJ0XCI6Y2FzZSBcImRyb3BcIjprPVxuRGQ7YnJlYWs7Y2FzZSBcInRvdWNoY2FuY2VsXCI6Y2FzZSBcInRvdWNoZW5kXCI6Y2FzZSBcInRvdWNobW92ZVwiOmNhc2UgXCJ0b3VjaHN0YXJ0XCI6az1WZDticmVhaztjYXNlIEljOmNhc2UgSmM6Y2FzZSBLYzprPUhkO2JyZWFrO2Nhc2UgTGM6az1YZDticmVhaztjYXNlIFwic2Nyb2xsXCI6az12ZDticmVhaztjYXNlIFwid2hlZWxcIjprPVpkO2JyZWFrO2Nhc2UgXCJjb3B5XCI6Y2FzZSBcImN1dFwiOmNhc2UgXCJwYXN0ZVwiOms9SmQ7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJwb2ludGVyY2FuY2VsXCI6Y2FzZSBcInBvaW50ZXJkb3duXCI6Y2FzZSBcInBvaW50ZXJtb3ZlXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcnVwXCI6az1UZH12YXIgdz0wIT09KGImNCksej0hdyYmXCJzY3JvbGxcIj09PWEsdT13P251bGwhPT1oP2grXCJDYXB0dXJlXCI6bnVsbDpoO3c9W107Zm9yKHZhciB0PWQscTtudWxsIT09XG50Oyl7cT10O3ZhciB2PXEuc3RhdGVOb2RlOzU9PT1xLnRhZyYmbnVsbCE9PXYmJihxPXYsbnVsbCE9PXUmJih2PU9iKHQsdSksbnVsbCE9diYmdy5wdXNoKGVmKHQsdixxKSkpKTtpZih6KWJyZWFrO3Q9dC5yZXR1cm59MDx3Lmxlbmd0aCYmKGg9bmV3IGsoaCx4LG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmgsbGlzdGVuZXJzOnd9KSl9fWlmKDA9PT0oYiY3KSl7YTp7aD1cIm1vdXNlb3ZlclwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YTtrPVwibW91c2VvdXRcIj09PWF8fFwicG9pbnRlcm91dFwiPT09YTtpZihoJiYwPT09KGImMTYpJiYoeD1jLnJlbGF0ZWRUYXJnZXR8fGMuZnJvbUVsZW1lbnQpJiYod2MoeCl8fHhbZmZdKSlicmVhayBhO2lmKGt8fGgpe2g9ZS53aW5kb3c9PT1lP2U6KGg9ZS5vd25lckRvY3VtZW50KT9oLmRlZmF1bHRWaWV3fHxoLnBhcmVudFdpbmRvdzp3aW5kb3c7aWYoayl7aWYoeD1jLnJlbGF0ZWRUYXJnZXR8fGMudG9FbGVtZW50LGs9ZCx4PXg/d2MoeCk6bnVsbCxudWxsIT09XG54JiYoej1aYih4KSx4IT09enx8NSE9PXgudGFnJiY2IT09eC50YWcpKXg9bnVsbH1lbHNlIGs9bnVsbCx4PWQ7aWYoayE9PXgpe3c9QmQ7dj1cIm9uTW91c2VMZWF2ZVwiO3U9XCJvbk1vdXNlRW50ZXJcIjt0PVwibW91c2VcIjtpZihcInBvaW50ZXJvdXRcIj09PWF8fFwicG9pbnRlcm92ZXJcIj09PWEpdz1UZCx2PVwib25Qb2ludGVyTGVhdmVcIix1PVwib25Qb2ludGVyRW50ZXJcIix0PVwicG9pbnRlclwiO3o9bnVsbD09az9oOnVlKGspO3E9bnVsbD09eD9oOnVlKHgpO2g9bmV3IHcodix0K1wibGVhdmVcIixrLGMsZSk7aC50YXJnZXQ9ejtoLnJlbGF0ZWRUYXJnZXQ9cTt2PW51bGw7d2MoZSk9PT1kJiYodz1uZXcgdyh1LHQrXCJlbnRlclwiLHgsYyxlKSx3LnRhcmdldD1xLHcucmVsYXRlZFRhcmdldD16LHY9dyk7ej12O2lmKGsmJngpYjp7dz1rO3U9eDt0PTA7Zm9yKHE9dztxO3E9Z2YocSkpdCsrO3E9MDtmb3Iodj11O3Y7dj1nZih2KSlxKys7Zm9yKDswPHQtcTspdz1nZih3KSx0LS07Zm9yKDswPHEtdDspdT1cbmdmKHUpLHEtLTtmb3IoO3QtLTspe2lmKHc9PT11fHxudWxsIT09dSYmdz09PXUuYWx0ZXJuYXRlKWJyZWFrIGI7dz1nZih3KTt1PWdmKHUpfXc9bnVsbH1lbHNlIHc9bnVsbDtudWxsIT09ayYmaGYoZyxoLGssdywhMSk7bnVsbCE9PXgmJm51bGwhPT16JiZoZihnLHoseCx3LCEwKX19fWE6e2g9ZD91ZShkKTp3aW5kb3c7az1oLm5vZGVOYW1lJiZoLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoXCJzZWxlY3RcIj09PWt8fFwiaW5wdXRcIj09PWsmJlwiZmlsZVwiPT09aC50eXBlKXZhciBKPXZlO2Vsc2UgaWYobWUoaCkpaWYod2UpSj1GZTtlbHNle0o9RGU7dmFyIEs9Q2V9ZWxzZShrPWgubm9kZU5hbWUpJiZcImlucHV0XCI9PT1rLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT1oLnR5cGV8fFwicmFkaW9cIj09PWgudHlwZSkmJihKPUVlKTtpZihKJiYoSj1KKGEsZCkpKXtuZShnLEosYyxlKTticmVhayBhfUsmJksoYSxoLGQpO1wiZm9jdXNvdXRcIj09PWEmJihLPWguX3dyYXBwZXJTdGF0ZSkmJlxuSy5jb250cm9sbGVkJiZcIm51bWJlclwiPT09aC50eXBlJiZiYihoLFwibnVtYmVyXCIsaC52YWx1ZSl9Sz1kP3VlKGQpOndpbmRvdztzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjppZihtZShLKXx8XCJ0cnVlXCI9PT1LLmNvbnRlbnRFZGl0YWJsZSlRZT1LLFJlPWQsU2U9bnVsbDticmVhaztjYXNlIFwiZm9jdXNvdXRcIjpTZT1SZT1RZT1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZWRvd25cIjpUZT0hMDticmVhaztjYXNlIFwiY29udGV4dG1lbnVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJkcmFnZW5kXCI6VGU9ITE7VWUoZyxjLGUpO2JyZWFrO2Nhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihQZSlicmVhaztjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOlVlKGcsYyxlKX12YXIgUTtpZihhZSliOntzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgTD1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6TD1cIm9uQ29tcG9zaXRpb25FbmRcIjticmVhayBiO1xuY2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6TD1cIm9uQ29tcG9zaXRpb25VcGRhdGVcIjticmVhayBifUw9dm9pZCAwfWVsc2UgaWU/Z2UoYSxjKSYmKEw9XCJvbkNvbXBvc2l0aW9uRW5kXCIpOlwia2V5ZG93blwiPT09YSYmMjI5PT09Yy5rZXlDb2RlJiYoTD1cIm9uQ29tcG9zaXRpb25TdGFydFwiKTtMJiYoZGUmJlwia29cIiE9PWMubG9jYWxlJiYoaWV8fFwib25Db21wb3NpdGlvblN0YXJ0XCIhPT1MP1wib25Db21wb3NpdGlvbkVuZFwiPT09TCYmaWUmJihRPW5kKCkpOihrZD1lLGxkPVwidmFsdWVcImluIGtkP2tkLnZhbHVlOmtkLnRleHRDb250ZW50LGllPSEwKSksSz1vZShkLEwpLDA8Sy5sZW5ndGgmJihMPW5ldyBMZChMLGEsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6TCxsaXN0ZW5lcnM6S30pLFE/TC5kYXRhPVE6KFE9aGUoYyksbnVsbCE9PVEmJihMLmRhdGE9USkpKSk7aWYoUT1jZT9qZShhLGMpOmtlKGEsYykpZD1vZShkLFwib25CZWZvcmVJbnB1dFwiKSwwPGQubGVuZ3RoJiYoZT1uZXcgTGQoXCJvbkJlZm9yZUlucHV0XCIsXG5cImJlZm9yZWlucHV0XCIsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6ZSxsaXN0ZW5lcnM6ZH0pLGUuZGF0YT1RKX1zZShnLGIpfSl9ZnVuY3Rpb24gZWYoYSxiLGMpe3JldHVybntpbnN0YW5jZTphLGxpc3RlbmVyOmIsY3VycmVudFRhcmdldDpjfX1mdW5jdGlvbiBvZShhLGIpe2Zvcih2YXIgYz1iK1wiQ2FwdHVyZVwiLGQ9W107bnVsbCE9PWE7KXt2YXIgZT1hLGY9ZS5zdGF0ZU5vZGU7NT09PWUudGFnJiZudWxsIT09ZiYmKGU9ZixmPU9iKGEsYyksbnVsbCE9ZiYmZC51bnNoaWZ0KGVmKGEsZixlKSksZj1PYihhLGIpLG51bGwhPWYmJmQucHVzaChlZihhLGYsZSkpKTthPWEucmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIGdmKGEpe2lmKG51bGw9PT1hKXJldHVybiBudWxsO2RvIGE9YS5yZXR1cm47d2hpbGUoYSYmNSE9PWEudGFnKTtyZXR1cm4gYT9hOm51bGx9XG5mdW5jdGlvbiBoZihhLGIsYyxkLGUpe2Zvcih2YXIgZj1iLl9yZWFjdE5hbWUsZz1bXTtudWxsIT09YyYmYyE9PWQ7KXt2YXIgaD1jLGs9aC5hbHRlcm5hdGUsbD1oLnN0YXRlTm9kZTtpZihudWxsIT09ayYmaz09PWQpYnJlYWs7NT09PWgudGFnJiZudWxsIT09bCYmKGg9bCxlPyhrPU9iKGMsZiksbnVsbCE9ayYmZy51bnNoaWZ0KGVmKGMsayxoKSkpOmV8fChrPU9iKGMsZiksbnVsbCE9ayYmZy5wdXNoKGVmKGMsayxoKSkpKTtjPWMucmV0dXJufTAhPT1nLmxlbmd0aCYmYS5wdXNoKHtldmVudDpiLGxpc3RlbmVyczpnfSl9ZnVuY3Rpb24gamYoKXt9dmFyIGtmPW51bGwsbGY9bnVsbDtmdW5jdGlvbiBtZihhLGIpe3N3aXRjaChhKXtjYXNlIFwiYnV0dG9uXCI6Y2FzZSBcImlucHV0XCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJ0ZXh0YXJlYVwiOnJldHVybiEhYi5hdXRvRm9jdXN9cmV0dXJuITF9XG5mdW5jdGlvbiBuZihhLGIpe3JldHVyblwidGV4dGFyZWFcIj09PWF8fFwib3B0aW9uXCI9PT1hfHxcIm5vc2NyaXB0XCI9PT1hfHxcInN0cmluZ1wiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwibnVtYmVyXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJvYmplY3RcIj09PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIG9mPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLHBmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMDtmdW5jdGlvbiBxZihhKXsxPT09YS5ub2RlVHlwZT9hLnRleHRDb250ZW50PVwiXCI6OT09PWEubm9kZVR5cGUmJihhPWEuYm9keSxudWxsIT1hJiYoYS50ZXh0Q29udGVudD1cIlwiKSl9XG5mdW5jdGlvbiByZihhKXtmb3IoO251bGwhPWE7YT1hLm5leHRTaWJsaW5nKXt2YXIgYj1hLm5vZGVUeXBlO2lmKDE9PT1ifHwzPT09YilicmVha31yZXR1cm4gYX1mdW5jdGlvbiBzZihhKXthPWEucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgYj0wO2E7KXtpZig4PT09YS5ub2RlVHlwZSl7dmFyIGM9YS5kYXRhO2lmKFwiJFwiPT09Y3x8XCIkIVwiPT09Y3x8XCIkP1wiPT09Yyl7aWYoMD09PWIpcmV0dXJuIGE7Yi0tfWVsc2VcIi8kXCI9PT1jJiZiKyt9YT1hLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgdGY9MDtmdW5jdGlvbiB1ZihhKXtyZXR1cm57JCR0eXBlb2Y6R2EsdG9TdHJpbmc6YSx2YWx1ZU9mOmF9fXZhciB2Zj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSx3Zj1cIl9fcmVhY3RGaWJlciRcIit2Zix4Zj1cIl9fcmVhY3RQcm9wcyRcIit2ZixmZj1cIl9fcmVhY3RDb250YWluZXIkXCIrdmYseWY9XCJfX3JlYWN0RXZlbnRzJFwiK3ZmO1xuZnVuY3Rpb24gd2MoYSl7dmFyIGI9YVt3Zl07aWYoYilyZXR1cm4gYjtmb3IodmFyIGM9YS5wYXJlbnROb2RlO2M7KXtpZihiPWNbZmZdfHxjW3dmXSl7Yz1iLmFsdGVybmF0ZTtpZihudWxsIT09Yi5jaGlsZHx8bnVsbCE9PWMmJm51bGwhPT1jLmNoaWxkKWZvcihhPXNmKGEpO251bGwhPT1hOyl7aWYoYz1hW3dmXSlyZXR1cm4gYzthPXNmKGEpfXJldHVybiBifWE9YztjPWEucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDYihhKXthPWFbd2ZdfHxhW2ZmXTtyZXR1cm4hYXx8NSE9PWEudGFnJiY2IT09YS50YWcmJjEzIT09YS50YWcmJjMhPT1hLnRhZz9udWxsOmF9ZnVuY3Rpb24gdWUoYSl7aWYoNT09PWEudGFnfHw2PT09YS50YWcpcmV0dXJuIGEuc3RhdGVOb2RlO3Rocm93IEVycm9yKHkoMzMpKTt9ZnVuY3Rpb24gRGIoYSl7cmV0dXJuIGFbeGZdfHxudWxsfVxuZnVuY3Rpb24gJGUoYSl7dmFyIGI9YVt5Zl07dm9pZCAwPT09YiYmKGI9YVt5Zl09bmV3IFNldCk7cmV0dXJuIGJ9dmFyIHpmPVtdLEFmPS0xO2Z1bmN0aW9uIEJmKGEpe3JldHVybntjdXJyZW50OmF9fWZ1bmN0aW9uIEgoYSl7MD5BZnx8KGEuY3VycmVudD16ZltBZl0semZbQWZdPW51bGwsQWYtLSl9ZnVuY3Rpb24gSShhLGIpe0FmKys7emZbQWZdPWEuY3VycmVudDthLmN1cnJlbnQ9Yn12YXIgQ2Y9e30sTT1CZihDZiksTj1CZighMSksRGY9Q2Y7XG5mdW5jdGlvbiBFZihhLGIpe3ZhciBjPWEudHlwZS5jb250ZXh0VHlwZXM7aWYoIWMpcmV0dXJuIENmO3ZhciBkPWEuc3RhdGVOb2RlO2lmKGQmJmQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PWIpcmV0dXJuIGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIGU9e30sZjtmb3IoZiBpbiBjKWVbZl09YltmXTtkJiYoYT1hLnN0YXRlTm9kZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9YixhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWUpO3JldHVybiBlfWZ1bmN0aW9uIEZmKGEpe2E9YS5jaGlsZENvbnRleHRUeXBlcztyZXR1cm4gbnVsbCE9PWEmJnZvaWQgMCE9PWF9ZnVuY3Rpb24gR2YoKXtIKE4pO0goTSl9ZnVuY3Rpb24gSGYoYSxiLGMpe2lmKE0uY3VycmVudCE9PUNmKXRocm93IEVycm9yKHkoMTY4KSk7SShNLGIpO0koTixjKX1cbmZ1bmN0aW9uIElmKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTthPWIuY2hpbGRDb250ZXh0VHlwZXM7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGQuZ2V0Q2hpbGRDb250ZXh0KXJldHVybiBjO2Q9ZC5nZXRDaGlsZENvbnRleHQoKTtmb3IodmFyIGUgaW4gZClpZighKGUgaW4gYSkpdGhyb3cgRXJyb3IoeSgxMDgsUmEoYil8fFwiVW5rbm93blwiLGUpKTtyZXR1cm4gbSh7fSxjLGQpfWZ1bmN0aW9uIEpmKGEpe2E9KGE9YS5zdGF0ZU5vZGUpJiZhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxDZjtEZj1NLmN1cnJlbnQ7SShNLGEpO0koTixOLmN1cnJlbnQpO3JldHVybiEwfWZ1bmN0aW9uIEtmKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtpZighZCl0aHJvdyBFcnJvcih5KDE2OSkpO2M/KGE9SWYoYSxiLERmKSxkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWEsSChOKSxIKE0pLEkoTSxhKSk6SChOKTtJKE4sYyl9XG52YXIgTGY9bnVsbCxNZj1udWxsLE5mPXIudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5LE9mPXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxQZj1yLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLFFmPXIudW5zdGFibGVfc2hvdWxkWWllbGQsUmY9ci51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsU2Y9ci51bnN0YWJsZV9ub3csVGY9ci51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxVZj1yLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LFZmPXIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksV2Y9ci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxYZj1yLnVuc3RhYmxlX0xvd1ByaW9yaXR5LFlmPXIudW5zdGFibGVfSWRsZVByaW9yaXR5LFpmPXt9LCRmPXZvaWQgMCE9PVJmP1JmOmZ1bmN0aW9uKCl7fSxhZz1udWxsLGJnPW51bGwsY2c9ITEsZGc9U2YoKSxPPTFFND5kZz9TZjpmdW5jdGlvbigpe3JldHVybiBTZigpLWRnfTtcbmZ1bmN0aW9uIGVnKCl7c3dpdGNoKFRmKCkpe2Nhc2UgVWY6cmV0dXJuIDk5O2Nhc2UgVmY6cmV0dXJuIDk4O2Nhc2UgV2Y6cmV0dXJuIDk3O2Nhc2UgWGY6cmV0dXJuIDk2O2Nhc2UgWWY6cmV0dXJuIDk1O2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzMzIpKTt9fWZ1bmN0aW9uIGZnKGEpe3N3aXRjaChhKXtjYXNlIDk5OnJldHVybiBVZjtjYXNlIDk4OnJldHVybiBWZjtjYXNlIDk3OnJldHVybiBXZjtjYXNlIDk2OnJldHVybiBYZjtjYXNlIDk1OnJldHVybiBZZjtkZWZhdWx0OnRocm93IEVycm9yKHkoMzMyKSk7fX1mdW5jdGlvbiBnZyhhLGIpe2E9ZmcoYSk7cmV0dXJuIE5mKGEsYil9ZnVuY3Rpb24gaGcoYSxiLGMpe2E9ZmcoYSk7cmV0dXJuIE9mKGEsYixjKX1mdW5jdGlvbiBpZygpe2lmKG51bGwhPT1iZyl7dmFyIGE9Ymc7Ymc9bnVsbDtQZihhKX1qZygpfVxuZnVuY3Rpb24gamcoKXtpZighY2cmJm51bGwhPT1hZyl7Y2c9ITA7dmFyIGE9MDt0cnl7dmFyIGI9YWc7Z2coOTksZnVuY3Rpb24oKXtmb3IoO2E8Yi5sZW5ndGg7YSsrKXt2YXIgYz1iW2FdO2RvIGM9YyghMCk7d2hpbGUobnVsbCE9PWMpfX0pO2FnPW51bGx9Y2F0Y2goYyl7dGhyb3cgbnVsbCE9PWFnJiYoYWc9YWcuc2xpY2UoYSsxKSksT2YoVWYsaWcpLGM7fWZpbmFsbHl7Y2c9ITF9fX12YXIga2c9cmEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7ZnVuY3Rpb24gbGcoYSxiKXtpZihhJiZhLmRlZmF1bHRQcm9wcyl7Yj1tKHt9LGIpO2E9YS5kZWZhdWx0UHJvcHM7Zm9yKHZhciBjIGluIGEpdm9pZCAwPT09YltjXSYmKGJbY109YVtjXSk7cmV0dXJuIGJ9cmV0dXJuIGJ9dmFyIG1nPUJmKG51bGwpLG5nPW51bGwsb2c9bnVsbCxwZz1udWxsO2Z1bmN0aW9uIHFnKCl7cGc9b2c9bmc9bnVsbH1cbmZ1bmN0aW9uIHJnKGEpe3ZhciBiPW1nLmN1cnJlbnQ7SChtZyk7YS50eXBlLl9jb250ZXh0Ll9jdXJyZW50VmFsdWU9Yn1mdW5jdGlvbiBzZyhhLGIpe2Zvcig7bnVsbCE9PWE7KXt2YXIgYz1hLmFsdGVybmF0ZTtpZigoYS5jaGlsZExhbmVzJmIpPT09YilpZihudWxsPT09Y3x8KGMuY2hpbGRMYW5lcyZiKT09PWIpYnJlYWs7ZWxzZSBjLmNoaWxkTGFuZXN8PWI7ZWxzZSBhLmNoaWxkTGFuZXN8PWIsbnVsbCE9PWMmJihjLmNoaWxkTGFuZXN8PWIpO2E9YS5yZXR1cm59fWZ1bmN0aW9uIHRnKGEsYil7bmc9YTtwZz1vZz1udWxsO2E9YS5kZXBlbmRlbmNpZXM7bnVsbCE9PWEmJm51bGwhPT1hLmZpcnN0Q29udGV4dCYmKDAhPT0oYS5sYW5lcyZiKSYmKHVnPSEwKSxhLmZpcnN0Q29udGV4dD1udWxsKX1cbmZ1bmN0aW9uIHZnKGEsYil7aWYocGchPT1hJiYhMSE9PWImJjAhPT1iKXtpZihcIm51bWJlclwiIT09dHlwZW9mIGJ8fDEwNzM3NDE4MjM9PT1iKXBnPWEsYj0xMDczNzQxODIzO2I9e2NvbnRleHQ6YSxvYnNlcnZlZEJpdHM6YixuZXh0Om51bGx9O2lmKG51bGw9PT1vZyl7aWYobnVsbD09PW5nKXRocm93IEVycm9yKHkoMzA4KSk7b2c9YjtuZy5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OmIscmVzcG9uZGVyczpudWxsfX1lbHNlIG9nPW9nLm5leHQ9Yn1yZXR1cm4gYS5fY3VycmVudFZhbHVlfXZhciB3Zz0hMTtmdW5jdGlvbiB4ZyhhKXthLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6YS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGx9LGVmZmVjdHM6bnVsbH19XG5mdW5jdGlvbiB5ZyhhLGIpe2E9YS51cGRhdGVRdWV1ZTtiLnVwZGF0ZVF1ZXVlPT09YSYmKGIudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTphLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6YS5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6YS5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6YS5zaGFyZWQsZWZmZWN0czphLmVmZmVjdHN9KX1mdW5jdGlvbiB6ZyhhLGIpe3JldHVybntldmVudFRpbWU6YSxsYW5lOmIsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBBZyhhLGIpe2E9YS51cGRhdGVRdWV1ZTtpZihudWxsIT09YSl7YT1hLnNoYXJlZDt2YXIgYz1hLnBlbmRpbmc7bnVsbD09PWM/Yi5uZXh0PWI6KGIubmV4dD1jLm5leHQsYy5uZXh0PWIpO2EucGVuZGluZz1ifX1cbmZ1bmN0aW9uIEJnKGEsYil7dmFyIGM9YS51cGRhdGVRdWV1ZSxkPWEuYWx0ZXJuYXRlO2lmKG51bGwhPT1kJiYoZD1kLnVwZGF0ZVF1ZXVlLGM9PT1kKSl7dmFyIGU9bnVsbCxmPW51bGw7Yz1jLmZpcnN0QmFzZVVwZGF0ZTtpZihudWxsIT09Yyl7ZG97dmFyIGc9e2V2ZW50VGltZTpjLmV2ZW50VGltZSxsYW5lOmMubGFuZSx0YWc6Yy50YWcscGF5bG9hZDpjLnBheWxvYWQsY2FsbGJhY2s6Yy5jYWxsYmFjayxuZXh0Om51bGx9O251bGw9PT1mP2U9Zj1nOmY9Zi5uZXh0PWc7Yz1jLm5leHR9d2hpbGUobnVsbCE9PWMpO251bGw9PT1mP2U9Zj1iOmY9Zi5uZXh0PWJ9ZWxzZSBlPWY9YjtjPXtiYXNlU3RhdGU6ZC5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUsbGFzdEJhc2VVcGRhdGU6ZixzaGFyZWQ6ZC5zaGFyZWQsZWZmZWN0czpkLmVmZmVjdHN9O2EudXBkYXRlUXVldWU9YztyZXR1cm59YT1jLmxhc3RCYXNlVXBkYXRlO251bGw9PT1hP2MuZmlyc3RCYXNlVXBkYXRlPWI6YS5uZXh0PVxuYjtjLmxhc3RCYXNlVXBkYXRlPWJ9XG5mdW5jdGlvbiBDZyhhLGIsYyxkKXt2YXIgZT1hLnVwZGF0ZVF1ZXVlO3dnPSExO3ZhciBmPWUuZmlyc3RCYXNlVXBkYXRlLGc9ZS5sYXN0QmFzZVVwZGF0ZSxoPWUuc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PWgpe2Uuc2hhcmVkLnBlbmRpbmc9bnVsbDt2YXIgaz1oLGw9ay5uZXh0O2submV4dD1udWxsO251bGw9PT1nP2Y9bDpnLm5leHQ9bDtnPWs7dmFyIG49YS5hbHRlcm5hdGU7aWYobnVsbCE9PW4pe249bi51cGRhdGVRdWV1ZTt2YXIgQT1uLmxhc3RCYXNlVXBkYXRlO0EhPT1nJiYobnVsbD09PUE/bi5maXJzdEJhc2VVcGRhdGU9bDpBLm5leHQ9bCxuLmxhc3RCYXNlVXBkYXRlPWspfX1pZihudWxsIT09Zil7QT1lLmJhc2VTdGF0ZTtnPTA7bj1sPWs9bnVsbDtkb3toPWYubGFuZTt2YXIgcD1mLmV2ZW50VGltZTtpZigoZCZoKT09PWgpe251bGwhPT1uJiYobj1uLm5leHQ9e2V2ZW50VGltZTpwLGxhbmU6MCx0YWc6Zi50YWcscGF5bG9hZDpmLnBheWxvYWQsY2FsbGJhY2s6Zi5jYWxsYmFjayxcbm5leHQ6bnVsbH0pO2E6e3ZhciBDPWEseD1mO2g9YjtwPWM7c3dpdGNoKHgudGFnKXtjYXNlIDE6Qz14LnBheWxvYWQ7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIEMpe0E9Qy5jYWxsKHAsQSxoKTticmVhayBhfUE9QzticmVhayBhO2Nhc2UgMzpDLmZsYWdzPUMuZmxhZ3MmLTQwOTd8NjQ7Y2FzZSAwOkM9eC5wYXlsb2FkO2g9XCJmdW5jdGlvblwiPT09dHlwZW9mIEM/Qy5jYWxsKHAsQSxoKTpDO2lmKG51bGw9PT1ofHx2b2lkIDA9PT1oKWJyZWFrIGE7QT1tKHt9LEEsaCk7YnJlYWsgYTtjYXNlIDI6d2c9ITB9fW51bGwhPT1mLmNhbGxiYWNrJiYoYS5mbGFnc3w9MzIsaD1lLmVmZmVjdHMsbnVsbD09PWg/ZS5lZmZlY3RzPVtmXTpoLnB1c2goZikpfWVsc2UgcD17ZXZlbnRUaW1lOnAsbGFuZTpoLHRhZzpmLnRhZyxwYXlsb2FkOmYucGF5bG9hZCxjYWxsYmFjazpmLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PW4/KGw9bj1wLGs9QSk6bj1uLm5leHQ9cCxnfD1oO2Y9Zi5uZXh0O2lmKG51bGw9PT1cbmYpaWYoaD1lLnNoYXJlZC5wZW5kaW5nLG51bGw9PT1oKWJyZWFrO2Vsc2UgZj1oLm5leHQsaC5uZXh0PW51bGwsZS5sYXN0QmFzZVVwZGF0ZT1oLGUuc2hhcmVkLnBlbmRpbmc9bnVsbH13aGlsZSgxKTtudWxsPT09biYmKGs9QSk7ZS5iYXNlU3RhdGU9aztlLmZpcnN0QmFzZVVwZGF0ZT1sO2UubGFzdEJhc2VVcGRhdGU9bjtEZ3w9ZzthLmxhbmVzPWc7YS5tZW1vaXplZFN0YXRlPUF9fWZ1bmN0aW9uIEVnKGEsYixjKXthPWIuZWZmZWN0cztiLmVmZmVjdHM9bnVsbDtpZihudWxsIT09YSlmb3IoYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgZD1hW2JdLGU9ZC5jYWxsYmFjaztpZihudWxsIT09ZSl7ZC5jYWxsYmFjaz1udWxsO2Q9YztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZSl0aHJvdyBFcnJvcih5KDE5MSxlKSk7ZS5jYWxsKGQpfX19dmFyIEZnPShuZXcgYWEuQ29tcG9uZW50KS5yZWZzO1xuZnVuY3Rpb24gR2coYSxiLGMsZCl7Yj1hLm1lbW9pemVkU3RhdGU7Yz1jKGQsYik7Yz1udWxsPT09Y3x8dm9pZCAwPT09Yz9iOm0oe30sYixjKTthLm1lbW9pemVkU3RhdGU9YzswPT09YS5sYW5lcyYmKGEudXBkYXRlUXVldWUuYmFzZVN0YXRlPWMpfVxudmFyIEtnPXtpc01vdW50ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5fcmVhY3RJbnRlcm5hbHMpP1piKGEpPT09YTohMX0sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBkPUhnKCksZT1JZyhhKSxmPXpnKGQsZSk7Zi5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihmLmNhbGxiYWNrPWMpO0FnKGEsZik7SmcoYSxlLGQpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBkPUhnKCksZT1JZyhhKSxmPXpnKGQsZSk7Zi50YWc9MTtmLnBheWxvYWQ9Yjt2b2lkIDAhPT1jJiZudWxsIT09YyYmKGYuY2FsbGJhY2s9Yyk7QWcoYSxmKTtKZyhhLGUsZCl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihhLGIpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGM9SGcoKSxkPUlnKGEpLGU9emcoYyxkKTtlLnRhZz0yO3ZvaWQgMCE9PWImJm51bGwhPT1iJiYoZS5jYWxsYmFjaz1cbmIpO0FnKGEsZSk7SmcoYSxkLGMpfX07ZnVuY3Rpb24gTGcoYSxiLGMsZCxlLGYsZyl7YT1hLnN0YXRlTm9kZTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5zaG91bGRDb21wb25lbnRVcGRhdGU/YS5zaG91bGRDb21wb25lbnRVcGRhdGUoZCxmLGcpOmIucHJvdG90eXBlJiZiLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudD8hSmUoYyxkKXx8IUplKGUsZik6ITB9XG5mdW5jdGlvbiBNZyhhLGIsYyl7dmFyIGQ9ITEsZT1DZjt2YXIgZj1iLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWY/Zj12ZyhmKTooZT1GZihiKT9EZjpNLmN1cnJlbnQsZD1iLmNvbnRleHRUeXBlcyxmPShkPW51bGwhPT1kJiZ2b2lkIDAhPT1kKT9FZihhLGUpOkNmKTtiPW5ldyBiKGMsZik7YS5tZW1vaXplZFN0YXRlPW51bGwhPT1iLnN0YXRlJiZ2b2lkIDAhPT1iLnN0YXRlP2Iuc3RhdGU6bnVsbDtiLnVwZGF0ZXI9S2c7YS5zdGF0ZU5vZGU9YjtiLl9yZWFjdEludGVybmFscz1hO2QmJihhPWEuc3RhdGVOb2RlLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1lLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9Zik7cmV0dXJuIGJ9XG5mdW5jdGlvbiBOZyhhLGIsYyxkKXthPWIuc3RhdGU7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGMsZCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJmIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtiLnN0YXRlIT09YSYmS2cuZW5xdWV1ZVJlcGxhY2VTdGF0ZShiLGIuc3RhdGUsbnVsbCl9XG5mdW5jdGlvbiBPZyhhLGIsYyxkKXt2YXIgZT1hLnN0YXRlTm9kZTtlLnByb3BzPWM7ZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGU7ZS5yZWZzPUZnO3hnKGEpO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9lLmNvbnRleHQ9dmcoZik6KGY9RmYoYik/RGY6TS5jdXJyZW50LGUuY29udGV4dD1FZihhLGYpKTtDZyhhLGMsZSxkKTtlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtmPWIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBmJiYoR2coYSxiLGYsYyksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudHx8XG4oYj1lLnN0YXRlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudCYmZS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxiIT09ZS5zdGF0ZSYmS2cuZW5xdWV1ZVJlcGxhY2VTdGF0ZShlLGUuc3RhdGUsbnVsbCksQ2coYSxjLGUsZCksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudERpZE1vdW50JiYoYS5mbGFnc3w9NCl9dmFyIFBnPUFycmF5LmlzQXJyYXk7XG5mdW5jdGlvbiBRZyhhLGIsYyl7YT1jLnJlZjtpZihudWxsIT09YSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJlwib2JqZWN0XCIhPT10eXBlb2YgYSl7aWYoYy5fb3duZXIpe2M9Yy5fb3duZXI7aWYoYyl7aWYoMSE9PWMudGFnKXRocm93IEVycm9yKHkoMzA5KSk7dmFyIGQ9Yy5zdGF0ZU5vZGV9aWYoIWQpdGhyb3cgRXJyb3IoeSgxNDcsYSkpO3ZhciBlPVwiXCIrYTtpZihudWxsIT09YiYmbnVsbCE9PWIucmVmJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5yZWYmJmIucmVmLl9zdHJpbmdSZWY9PT1lKXJldHVybiBiLnJlZjtiPWZ1bmN0aW9uKGEpe3ZhciBiPWQucmVmcztiPT09RmcmJihiPWQucmVmcz17fSk7bnVsbD09PWE/ZGVsZXRlIGJbZV06YltlXT1hfTtiLl9zdHJpbmdSZWY9ZTtyZXR1cm4gYn1pZihcInN0cmluZ1wiIT09dHlwZW9mIGEpdGhyb3cgRXJyb3IoeSgyODQpKTtpZighYy5fb3duZXIpdGhyb3cgRXJyb3IoeSgyOTAsYSkpO31yZXR1cm4gYX1cbmZ1bmN0aW9uIFJnKGEsYil7aWYoXCJ0ZXh0YXJlYVwiIT09YS50eXBlKXRocm93IEVycm9yKHkoMzEsXCJbb2JqZWN0IE9iamVjdF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChiKT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGIpLmpvaW4oXCIsIFwiKStcIn1cIjpiKSk7fVxuZnVuY3Rpb24gU2coYSl7ZnVuY3Rpb24gYihiLGMpe2lmKGEpe3ZhciBkPWIubGFzdEVmZmVjdDtudWxsIT09ZD8oZC5uZXh0RWZmZWN0PWMsYi5sYXN0RWZmZWN0PWMpOmIuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWM7Yy5uZXh0RWZmZWN0PW51bGw7Yy5mbGFncz04fX1mdW5jdGlvbiBjKGMsZCl7aWYoIWEpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09ZDspYihjLGQpLGQ9ZC5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIGQoYSxiKXtmb3IoYT1uZXcgTWFwO251bGwhPT1iOyludWxsIT09Yi5rZXk/YS5zZXQoYi5rZXksYik6YS5zZXQoYi5pbmRleCxiKSxiPWIuc2libGluZztyZXR1cm4gYX1mdW5jdGlvbiBlKGEsYil7YT1UZyhhLGIpO2EuaW5kZXg9MDthLnNpYmxpbmc9bnVsbDtyZXR1cm4gYX1mdW5jdGlvbiBmKGIsYyxkKXtiLmluZGV4PWQ7aWYoIWEpcmV0dXJuIGM7ZD1iLmFsdGVybmF0ZTtpZihudWxsIT09ZClyZXR1cm4gZD1kLmluZGV4LGQ8Yz8oYi5mbGFncz0yLFxuYyk6ZDtiLmZsYWdzPTI7cmV0dXJuIGN9ZnVuY3Rpb24gZyhiKXthJiZudWxsPT09Yi5hbHRlcm5hdGUmJihiLmZsYWdzPTIpO3JldHVybiBifWZ1bmN0aW9uIGgoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDYhPT1iLnRhZylyZXR1cm4gYj1VZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYyk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBrKGEsYixjLGQpe2lmKG51bGwhPT1iJiZiLmVsZW1lbnRUeXBlPT09Yy50eXBlKXJldHVybiBkPWUoYixjLnByb3BzKSxkLnJlZj1RZyhhLGIsYyksZC5yZXR1cm49YSxkO2Q9VmcoYy50eXBlLGMua2V5LGMucHJvcHMsbnVsbCxhLm1vZGUsZCk7ZC5yZWY9UWcoYSxiLGMpO2QucmV0dXJuPWE7cmV0dXJuIGR9ZnVuY3Rpb24gbChhLGIsYyxkKXtpZihudWxsPT09Ynx8NCE9PWIudGFnfHxiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09Yy5jb250YWluZXJJbmZvfHxiLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PWMuaW1wbGVtZW50YXRpb24pcmV0dXJuIGI9XG5XZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYy5jaGlsZHJlbnx8W10pO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gbihhLGIsYyxkLGYpe2lmKG51bGw9PT1ifHw3IT09Yi50YWcpcmV0dXJuIGI9WGcoYyxhLm1vZGUsZCxmKSxiLnJldHVybj1hLGI7Yj1lKGIsYyk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBBKGEsYixjKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGJ8fFwibnVtYmVyXCI9PT10eXBlb2YgYilyZXR1cm4gYj1VZyhcIlwiK2IsYS5tb2RlLGMpLGIucmV0dXJuPWEsYjtpZihcIm9iamVjdFwiPT09dHlwZW9mIGImJm51bGwhPT1iKXtzd2l0Y2goYi4kJHR5cGVvZil7Y2FzZSBzYTpyZXR1cm4gYz1WZyhiLnR5cGUsYi5rZXksYi5wcm9wcyxudWxsLGEubW9kZSxjKSxjLnJlZj1RZyhhLG51bGwsYiksYy5yZXR1cm49YSxjO2Nhc2UgdGE6cmV0dXJuIGI9V2coYixhLm1vZGUsYyksYi5yZXR1cm49YSxifWlmKFBnKGIpfHxMYShiKSlyZXR1cm4gYj1YZyhiLFxuYS5tb2RlLGMsbnVsbCksYi5yZXR1cm49YSxiO1JnKGEsYil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcChhLGIsYyxkKXt2YXIgZT1udWxsIT09Yj9iLmtleTpudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgY3x8XCJudW1iZXJcIj09PXR5cGVvZiBjKXJldHVybiBudWxsIT09ZT9udWxsOmgoYSxiLFwiXCIrYyxkKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGMmJm51bGwhPT1jKXtzd2l0Y2goYy4kJHR5cGVvZil7Y2FzZSBzYTpyZXR1cm4gYy5rZXk9PT1lP2MudHlwZT09PXVhP24oYSxiLGMucHJvcHMuY2hpbGRyZW4sZCxlKTprKGEsYixjLGQpOm51bGw7Y2FzZSB0YTpyZXR1cm4gYy5rZXk9PT1lP2woYSxiLGMsZCk6bnVsbH1pZihQZyhjKXx8TGEoYykpcmV0dXJuIG51bGwhPT1lP251bGw6bihhLGIsYyxkLG51bGwpO1JnKGEsYyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQyhhLGIsYyxkLGUpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZHx8XCJudW1iZXJcIj09PXR5cGVvZiBkKXJldHVybiBhPWEuZ2V0KGMpfHxcbm51bGwsaChiLGEsXCJcIitkLGUpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgZCYmbnVsbCE9PWQpe3N3aXRjaChkLiQkdHlwZW9mKXtjYXNlIHNhOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxkLnR5cGU9PT11YT9uKGIsYSxkLnByb3BzLmNoaWxkcmVuLGUsZC5rZXkpOmsoYixhLGQsZSk7Y2FzZSB0YTpyZXR1cm4gYT1hLmdldChudWxsPT09ZC5rZXk/YzpkLmtleSl8fG51bGwsbChiLGEsZCxlKX1pZihQZyhkKXx8TGEoZCkpcmV0dXJuIGE9YS5nZXQoYyl8fG51bGwsbihiLGEsZCxlLG51bGwpO1JnKGIsZCl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geChlLGcsaCxrKXtmb3IodmFyIGw9bnVsbCx0PW51bGwsdT1nLHo9Zz0wLHE9bnVsbDtudWxsIT09dSYmejxoLmxlbmd0aDt6Kyspe3UuaW5kZXg+ej8ocT11LHU9bnVsbCk6cT11LnNpYmxpbmc7dmFyIG49cChlLHUsaFt6XSxrKTtpZihudWxsPT09bil7bnVsbD09PXUmJih1PXEpO2JyZWFrfWEmJnUmJm51bGw9PT1cbm4uYWx0ZXJuYXRlJiZiKGUsdSk7Zz1mKG4sZyx6KTtudWxsPT09dD9sPW46dC5zaWJsaW5nPW47dD1uO3U9cX1pZih6PT09aC5sZW5ndGgpcmV0dXJuIGMoZSx1KSxsO2lmKG51bGw9PT11KXtmb3IoO3o8aC5sZW5ndGg7eisrKXU9QShlLGhbel0sayksbnVsbCE9PXUmJihnPWYodSxnLHopLG51bGw9PT10P2w9dTp0LnNpYmxpbmc9dSx0PXUpO3JldHVybiBsfWZvcih1PWQoZSx1KTt6PGgubGVuZ3RoO3orKylxPUModSxlLHosaFt6XSxrKSxudWxsIT09cSYmKGEmJm51bGwhPT1xLmFsdGVybmF0ZSYmdS5kZWxldGUobnVsbD09PXEua2V5P3o6cS5rZXkpLGc9ZihxLGcseiksbnVsbD09PXQ/bD1xOnQuc2libGluZz1xLHQ9cSk7YSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtyZXR1cm4gbH1mdW5jdGlvbiB3KGUsZyxoLGspe3ZhciBsPUxhKGgpO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBsKXRocm93IEVycm9yKHkoMTUwKSk7aD1sLmNhbGwoaCk7aWYobnVsbD09XG5oKXRocm93IEVycm9yKHkoMTUxKSk7Zm9yKHZhciB0PWw9bnVsbCx1PWcsej1nPTAscT1udWxsLG49aC5uZXh0KCk7bnVsbCE9PXUmJiFuLmRvbmU7eisrLG49aC5uZXh0KCkpe3UuaW5kZXg+ej8ocT11LHU9bnVsbCk6cT11LnNpYmxpbmc7dmFyIHc9cChlLHUsbi52YWx1ZSxrKTtpZihudWxsPT09dyl7bnVsbD09PXUmJih1PXEpO2JyZWFrfWEmJnUmJm51bGw9PT13LmFsdGVybmF0ZSYmYihlLHUpO2c9Zih3LGcseik7bnVsbD09PXQ/bD13OnQuc2libGluZz13O3Q9dzt1PXF9aWYobi5kb25lKXJldHVybiBjKGUsdSksbDtpZihudWxsPT09dSl7Zm9yKDshbi5kb25lO3orKyxuPWgubmV4dCgpKW49QShlLG4udmFsdWUsayksbnVsbCE9PW4mJihnPWYobixnLHopLG51bGw9PT10P2w9bjp0LnNpYmxpbmc9bix0PW4pO3JldHVybiBsfWZvcih1PWQoZSx1KTshbi5kb25lO3orKyxuPWgubmV4dCgpKW49Qyh1LGUseixuLnZhbHVlLGspLG51bGwhPT1uJiYoYSYmbnVsbCE9PW4uYWx0ZXJuYXRlJiZcbnUuZGVsZXRlKG51bGw9PT1uLmtleT96Om4ua2V5KSxnPWYobixnLHopLG51bGw9PT10P2w9bjp0LnNpYmxpbmc9bix0PW4pO2EmJnUuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYihlLGEpfSk7cmV0dXJuIGx9cmV0dXJuIGZ1bmN0aW9uKGEsZCxmLGgpe3ZhciBrPVwib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWYmJmYudHlwZT09PXVhJiZudWxsPT09Zi5rZXk7ayYmKGY9Zi5wcm9wcy5jaGlsZHJlbik7dmFyIGw9XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09ZjtpZihsKXN3aXRjaChmLiQkdHlwZW9mKXtjYXNlIHNhOmE6e2w9Zi5rZXk7Zm9yKGs9ZDtudWxsIT09azspe2lmKGsua2V5PT09bCl7c3dpdGNoKGsudGFnKXtjYXNlIDc6aWYoZi50eXBlPT09dWEpe2MoYSxrLnNpYmxpbmcpO2Q9ZShrLGYucHJvcHMuY2hpbGRyZW4pO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9YnJlYWs7ZGVmYXVsdDppZihrLmVsZW1lbnRUeXBlPT09Zi50eXBlKXtjKGEsay5zaWJsaW5nKTtcbmQ9ZShrLGYucHJvcHMpO2QucmVmPVFnKGEsayxmKTtkLnJldHVybj1hO2E9ZDticmVhayBhfX1jKGEsayk7YnJlYWt9ZWxzZSBiKGEsayk7az1rLnNpYmxpbmd9Zi50eXBlPT09dWE/KGQ9WGcoZi5wcm9wcy5jaGlsZHJlbixhLm1vZGUsaCxmLmtleSksZC5yZXR1cm49YSxhPWQpOihoPVZnKGYudHlwZSxmLmtleSxmLnByb3BzLG51bGwsYS5tb2RlLGgpLGgucmVmPVFnKGEsZCxmKSxoLnJldHVybj1hLGE9aCl9cmV0dXJuIGcoYSk7Y2FzZSB0YTphOntmb3Ioaz1mLmtleTtudWxsIT09ZDspe2lmKGQua2V5PT09aylpZig0PT09ZC50YWcmJmQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1mLmNvbnRhaW5lckluZm8mJmQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09Zi5pbXBsZW1lbnRhdGlvbil7YyhhLGQuc2libGluZyk7ZD1lKGQsZi5jaGlsZHJlbnx8W10pO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9ZWxzZXtjKGEsZCk7YnJlYWt9ZWxzZSBiKGEsZCk7ZD1kLnNpYmxpbmd9ZD1cbldnKGYsYS5tb2RlLGgpO2QucmV0dXJuPWE7YT1kfXJldHVybiBnKGEpfWlmKFwic3RyaW5nXCI9PT10eXBlb2YgZnx8XCJudW1iZXJcIj09PXR5cGVvZiBmKXJldHVybiBmPVwiXCIrZixudWxsIT09ZCYmNj09PWQudGFnPyhjKGEsZC5zaWJsaW5nKSxkPWUoZCxmKSxkLnJldHVybj1hLGE9ZCk6KGMoYSxkKSxkPVVnKGYsYS5tb2RlLGgpLGQucmV0dXJuPWEsYT1kKSxnKGEpO2lmKFBnKGYpKXJldHVybiB4KGEsZCxmLGgpO2lmKExhKGYpKXJldHVybiB3KGEsZCxmLGgpO2wmJlJnKGEsZik7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBmJiYhaylzd2l0Y2goYS50YWcpe2Nhc2UgMTpjYXNlIDIyOmNhc2UgMDpjYXNlIDExOmNhc2UgMTU6dGhyb3cgRXJyb3IoeSgxNTIsUmEoYS50eXBlKXx8XCJDb21wb25lbnRcIikpO31yZXR1cm4gYyhhLGQpfX12YXIgWWc9U2coITApLFpnPVNnKCExKSwkZz17fSxhaD1CZigkZyksYmg9QmYoJGcpLGNoPUJmKCRnKTtcbmZ1bmN0aW9uIGRoKGEpe2lmKGE9PT0kZyl0aHJvdyBFcnJvcih5KDE3NCkpO3JldHVybiBhfWZ1bmN0aW9uIGVoKGEsYil7SShjaCxiKTtJKGJoLGEpO0koYWgsJGcpO2E9Yi5ub2RlVHlwZTtzd2l0Y2goYSl7Y2FzZSA5OmNhc2UgMTE6Yj0oYj1iLmRvY3VtZW50RWxlbWVudCk/Yi5uYW1lc3BhY2VVUkk6bWIobnVsbCxcIlwiKTticmVhaztkZWZhdWx0OmE9OD09PWE/Yi5wYXJlbnROb2RlOmIsYj1hLm5hbWVzcGFjZVVSSXx8bnVsbCxhPWEudGFnTmFtZSxiPW1iKGIsYSl9SChhaCk7SShhaCxiKX1mdW5jdGlvbiBmaCgpe0goYWgpO0goYmgpO0goY2gpfWZ1bmN0aW9uIGdoKGEpe2RoKGNoLmN1cnJlbnQpO3ZhciBiPWRoKGFoLmN1cnJlbnQpO3ZhciBjPW1iKGIsYS50eXBlKTtiIT09YyYmKEkoYmgsYSksSShhaCxjKSl9ZnVuY3Rpb24gaGgoYSl7YmguY3VycmVudD09PWEmJihIKGFoKSxIKGJoKSl9dmFyIFA9QmYoMCk7XG5mdW5jdGlvbiBpaChhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe3ZhciBjPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YyYmKGM9Yy5kZWh5ZHJhdGVkLG51bGw9PT1jfHxcIiQ/XCI9PT1jLmRhdGF8fFwiJCFcIj09PWMuZGF0YSkpcmV0dXJuIGJ9ZWxzZSBpZigxOT09PWIudGFnJiZ2b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPT0oYi5mbGFncyY2NCkpcmV0dXJuIGJ9ZWxzZSBpZihudWxsIT09Yi5jaGlsZCl7Yi5jaGlsZC5yZXR1cm49YjtiPWIuY2hpbGQ7Y29udGludWV9aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfXJldHVybiBudWxsfXZhciBqaD1udWxsLGtoPW51bGwsbGg9ITE7XG5mdW5jdGlvbiBtaChhLGIpe3ZhciBjPW5oKDUsbnVsbCxudWxsLDApO2MuZWxlbWVudFR5cGU9XCJERUxFVEVEXCI7Yy50eXBlPVwiREVMRVRFRFwiO2Muc3RhdGVOb2RlPWI7Yy5yZXR1cm49YTtjLmZsYWdzPTg7bnVsbCE9PWEubGFzdEVmZmVjdD8oYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9YyxhLmxhc3RFZmZlY3Q9Yyk6YS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9Y31mdW5jdGlvbiBvaChhLGIpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnZhciBjPWEudHlwZTtiPTEhPT1iLm5vZGVUeXBlfHxjLnRvTG93ZXJDYXNlKCkhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpiO3JldHVybiBudWxsIT09Yj8oYS5zdGF0ZU5vZGU9YiwhMCk6ITE7Y2FzZSA2OnJldHVybiBiPVwiXCI9PT1hLnBlbmRpbmdQcm9wc3x8MyE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLCEwKTohMTtjYXNlIDEzOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gcGgoYSl7aWYobGgpe3ZhciBiPWtoO2lmKGIpe3ZhciBjPWI7aWYoIW9oKGEsYikpe2I9cmYoYy5uZXh0U2libGluZyk7aWYoIWJ8fCFvaChhLGIpKXthLmZsYWdzPWEuZmxhZ3MmLTEwMjV8MjtsaD0hMTtqaD1hO3JldHVybn1taChqaCxjKX1qaD1hO2toPXJmKGIuZmlyc3RDaGlsZCl9ZWxzZSBhLmZsYWdzPWEuZmxhZ3MmLTEwMjV8MixsaD0hMSxqaD1hfX1mdW5jdGlvbiBxaChhKXtmb3IoYT1hLnJldHVybjtudWxsIT09YSYmNSE9PWEudGFnJiYzIT09YS50YWcmJjEzIT09YS50YWc7KWE9YS5yZXR1cm47amg9YX1cbmZ1bmN0aW9uIHJoKGEpe2lmKGEhPT1qaClyZXR1cm4hMTtpZighbGgpcmV0dXJuIHFoKGEpLGxoPSEwLCExO3ZhciBiPWEudHlwZTtpZig1IT09YS50YWd8fFwiaGVhZFwiIT09YiYmXCJib2R5XCIhPT1iJiYhbmYoYixhLm1lbW9pemVkUHJvcHMpKWZvcihiPWtoO2I7KW1oKGEsYiksYj1yZihiLm5leHRTaWJsaW5nKTtxaChhKTtpZigxMz09PWEudGFnKXthPWEubWVtb2l6ZWRTdGF0ZTthPW51bGwhPT1hP2EuZGVoeWRyYXRlZDpudWxsO2lmKCFhKXRocm93IEVycm9yKHkoMzE3KSk7YTp7YT1hLm5leHRTaWJsaW5nO2ZvcihiPTA7YTspe2lmKDg9PT1hLm5vZGVUeXBlKXt2YXIgYz1hLmRhdGE7aWYoXCIvJFwiPT09Yyl7aWYoMD09PWIpe2toPXJmKGEubmV4dFNpYmxpbmcpO2JyZWFrIGF9Yi0tfWVsc2VcIiRcIiE9PWMmJlwiJCFcIiE9PWMmJlwiJD9cIiE9PWN8fGIrK31hPWEubmV4dFNpYmxpbmd9a2g9bnVsbH19ZWxzZSBraD1qaD9yZihhLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1cbmZ1bmN0aW9uIHNoKCl7a2g9amg9bnVsbDtsaD0hMX12YXIgdGg9W107ZnVuY3Rpb24gdWgoKXtmb3IodmFyIGE9MDthPHRoLmxlbmd0aDthKyspdGhbYV0uX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9bnVsbDt0aC5sZW5ndGg9MH12YXIgdmg9cmEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcix3aD1yYS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyx4aD0wLFI9bnVsbCxTPW51bGwsVD1udWxsLHloPSExLHpoPSExO2Z1bmN0aW9uIEFoKCl7dGhyb3cgRXJyb3IoeSgzMjEpKTt9ZnVuY3Rpb24gQmgoYSxiKXtpZihudWxsPT09YilyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoJiZjPGEubGVuZ3RoO2MrKylpZighSGUoYVtjXSxiW2NdKSlyZXR1cm4hMTtyZXR1cm4hMH1cbmZ1bmN0aW9uIENoKGEsYixjLGQsZSxmKXt4aD1mO1I9YjtiLm1lbW9pemVkU3RhdGU9bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7Yi5sYW5lcz0wO3ZoLmN1cnJlbnQ9bnVsbD09PWF8fG51bGw9PT1hLm1lbW9pemVkU3RhdGU/RGg6RWg7YT1jKGQsZSk7aWYoemgpe2Y9MDtkb3t6aD0hMTtpZighKDI1PmYpKXRocm93IEVycm9yKHkoMzAxKSk7Zis9MTtUPVM9bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7dmguY3VycmVudD1GaDthPWMoZCxlKX13aGlsZSh6aCl9dmguY3VycmVudD1HaDtiPW51bGwhPT1TJiZudWxsIT09Uy5uZXh0O3hoPTA7VD1TPVI9bnVsbDt5aD0hMTtpZihiKXRocm93IEVycm9yKHkoMzAwKSk7cmV0dXJuIGF9ZnVuY3Rpb24gSGgoKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtudWxsPT09VD9SLm1lbW9pemVkU3RhdGU9VD1hOlQ9VC5uZXh0PWE7cmV0dXJuIFR9XG5mdW5jdGlvbiBJaCgpe2lmKG51bGw9PT1TKXt2YXIgYT1SLmFsdGVybmF0ZTthPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2UgYT1TLm5leHQ7dmFyIGI9bnVsbD09PVQ/Ui5tZW1vaXplZFN0YXRlOlQubmV4dDtpZihudWxsIT09YilUPWIsUz1hO2Vsc2V7aWYobnVsbD09PWEpdGhyb3cgRXJyb3IoeSgzMTApKTtTPWE7YT17bWVtb2l6ZWRTdGF0ZTpTLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOlMuYmFzZVN0YXRlLGJhc2VRdWV1ZTpTLmJhc2VRdWV1ZSxxdWV1ZTpTLnF1ZXVlLG5leHQ6bnVsbH07bnVsbD09PVQ/Ui5tZW1vaXplZFN0YXRlPVQ9YTpUPVQubmV4dD1hfXJldHVybiBUfWZ1bmN0aW9uIEpoKGEsYil7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpifVxuZnVuY3Rpb24gS2goYSl7dmFyIGI9SWgoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IoeSgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1TLGU9ZC5iYXNlUXVldWUsZj1jLnBlbmRpbmc7aWYobnVsbCE9PWYpe2lmKG51bGwhPT1lKXt2YXIgZz1lLm5leHQ7ZS5uZXh0PWYubmV4dDtmLm5leHQ9Z31kLmJhc2VRdWV1ZT1lPWY7Yy5wZW5kaW5nPW51bGx9aWYobnVsbCE9PWUpe2U9ZS5uZXh0O2Q9ZC5iYXNlU3RhdGU7dmFyIGg9Zz1mPW51bGwsaz1lO2Rve3ZhciBsPWsubGFuZTtpZigoeGgmbCk9PT1sKW51bGwhPT1oJiYoaD1oLm5leHQ9e2xhbmU6MCxhY3Rpb246ay5hY3Rpb24sZWFnZXJSZWR1Y2VyOmsuZWFnZXJSZWR1Y2VyLGVhZ2VyU3RhdGU6ay5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGQ9ay5lYWdlclJlZHVjZXI9PT1hP2suZWFnZXJTdGF0ZTphKGQsay5hY3Rpb24pO2Vsc2V7dmFyIG49e2xhbmU6bCxhY3Rpb246ay5hY3Rpb24sZWFnZXJSZWR1Y2VyOmsuZWFnZXJSZWR1Y2VyLFxuZWFnZXJTdGF0ZTprLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09aD8oZz1oPW4sZj1kKTpoPWgubmV4dD1uO1IubGFuZXN8PWw7RGd8PWx9az1rLm5leHR9d2hpbGUobnVsbCE9PWsmJmshPT1lKTtudWxsPT09aD9mPWQ6aC5uZXh0PWc7SGUoZCxiLm1lbW9pemVkU3RhdGUpfHwodWc9ITApO2IubWVtb2l6ZWRTdGF0ZT1kO2IuYmFzZVN0YXRlPWY7Yi5iYXNlUXVldWU9aDtjLmxhc3RSZW5kZXJlZFN0YXRlPWR9cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxjLmRpc3BhdGNoXX1cbmZ1bmN0aW9uIExoKGEpe3ZhciBiPUloKCksYz1iLnF1ZXVlO2lmKG51bGw9PT1jKXRocm93IEVycm9yKHkoMzExKSk7Yy5sYXN0UmVuZGVyZWRSZWR1Y2VyPWE7dmFyIGQ9Yy5kaXNwYXRjaCxlPWMucGVuZGluZyxmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZSl7Yy5wZW5kaW5nPW51bGw7dmFyIGc9ZT1lLm5leHQ7ZG8gZj1hKGYsZy5hY3Rpb24pLGc9Zy5uZXh0O3doaWxlKGchPT1lKTtIZShmLGIubWVtb2l6ZWRTdGF0ZSl8fCh1Zz0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7bnVsbD09PWIuYmFzZVF1ZXVlJiYoYi5iYXNlU3RhdGU9Zik7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mfXJldHVybltmLGRdfVxuZnVuY3Rpb24gTWgoYSxiLGMpe3ZhciBkPWIuX2dldFZlcnNpb247ZD1kKGIuX3NvdXJjZSk7dmFyIGU9Yi5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeTtpZihudWxsIT09ZSlhPWU9PT1kO2Vsc2UgaWYoYT1hLm11dGFibGVSZWFkTGFuZXMsYT0oeGgmYSk9PT1hKWIuX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9ZCx0aC5wdXNoKGIpO2lmKGEpcmV0dXJuIGMoYi5fc291cmNlKTt0aC5wdXNoKGIpO3Rocm93IEVycm9yKHkoMzUwKSk7fVxuZnVuY3Rpb24gTmgoYSxiLGMsZCl7dmFyIGU9VTtpZihudWxsPT09ZSl0aHJvdyBFcnJvcih5KDM0OSkpO3ZhciBmPWIuX2dldFZlcnNpb24sZz1mKGIuX3NvdXJjZSksaD12aC5jdXJyZW50LGs9aC51c2VTdGF0ZShmdW5jdGlvbigpe3JldHVybiBNaChlLGIsYyl9KSxsPWtbMV0sbj1rWzBdO2s9VDt2YXIgQT1hLm1lbW9pemVkU3RhdGUscD1BLnJlZnMsQz1wLmdldFNuYXBzaG90LHg9QS5zb3VyY2U7QT1BLnN1YnNjcmliZTt2YXIgdz1SO2EubWVtb2l6ZWRTdGF0ZT17cmVmczpwLHNvdXJjZTpiLHN1YnNjcmliZTpkfTtoLnVzZUVmZmVjdChmdW5jdGlvbigpe3AuZ2V0U25hcHNob3Q9YztwLnNldFNuYXBzaG90PWw7dmFyIGE9ZihiLl9zb3VyY2UpO2lmKCFIZShnLGEpKXthPWMoYi5fc291cmNlKTtIZShuLGEpfHwobChhKSxhPUlnKHcpLGUubXV0YWJsZVJlYWRMYW5lc3w9YSZlLnBlbmRpbmdMYW5lcyk7YT1lLm11dGFibGVSZWFkTGFuZXM7ZS5lbnRhbmdsZWRMYW5lc3w9YTtmb3IodmFyIGQ9XG5lLmVudGFuZ2xlbWVudHMsaD1hOzA8aDspe3ZhciBrPTMxLVZjKGgpLHY9MTw8aztkW2tdfD1hO2gmPX52fX19LFtjLGIsZF0pO2gudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGQoYi5fc291cmNlLGZ1bmN0aW9uKCl7dmFyIGE9cC5nZXRTbmFwc2hvdCxjPXAuc2V0U25hcHNob3Q7dHJ5e2MoYShiLl9zb3VyY2UpKTt2YXIgZD1JZyh3KTtlLm11dGFibGVSZWFkTGFuZXN8PWQmZS5wZW5kaW5nTGFuZXN9Y2F0Y2gocSl7YyhmdW5jdGlvbigpe3Rocm93IHE7fSl9fSl9LFtiLGRdKTtIZShDLGMpJiZIZSh4LGIpJiZIZShBLGQpfHwoYT17cGVuZGluZzpudWxsLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpKaCxsYXN0UmVuZGVyZWRTdGF0ZTpufSxhLmRpc3BhdGNoPWw9T2guYmluZChudWxsLFIsYSksay5xdWV1ZT1hLGsuYmFzZVF1ZXVlPW51bGwsbj1NaChlLGIsYyksay5tZW1vaXplZFN0YXRlPWsuYmFzZVN0YXRlPW4pO3JldHVybiBufVxuZnVuY3Rpb24gUGgoYSxiLGMpe3ZhciBkPUloKCk7cmV0dXJuIE5oKGQsYSxiLGMpfWZ1bmN0aW9uIFFoKGEpe3ZhciBiPUhoKCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGEmJihhPWEoKSk7Yi5tZW1vaXplZFN0YXRlPWIuYmFzZVN0YXRlPWE7YT1iLnF1ZXVlPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkpoLGxhc3RSZW5kZXJlZFN0YXRlOmF9O2E9YS5kaXNwYXRjaD1PaC5iaW5kKG51bGwsUixhKTtyZXR1cm5bYi5tZW1vaXplZFN0YXRlLGFdfVxuZnVuY3Rpb24gUmgoYSxiLGMsZCl7YT17dGFnOmEsY3JlYXRlOmIsZGVzdHJveTpjLGRlcHM6ZCxuZXh0Om51bGx9O2I9Ui51cGRhdGVRdWV1ZTtudWxsPT09Yj8oYj17bGFzdEVmZmVjdDpudWxsfSxSLnVwZGF0ZVF1ZXVlPWIsYi5sYXN0RWZmZWN0PWEubmV4dD1hKTooYz1iLmxhc3RFZmZlY3QsbnVsbD09PWM/Yi5sYXN0RWZmZWN0PWEubmV4dD1hOihkPWMubmV4dCxjLm5leHQ9YSxhLm5leHQ9ZCxiLmxhc3RFZmZlY3Q9YSkpO3JldHVybiBhfWZ1bmN0aW9uIFNoKGEpe3ZhciBiPUhoKCk7YT17Y3VycmVudDphfTtyZXR1cm4gYi5tZW1vaXplZFN0YXRlPWF9ZnVuY3Rpb24gVGgoKXtyZXR1cm4gSWgoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIFVoKGEsYixjLGQpe3ZhciBlPUhoKCk7Ui5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9UmgoMXxiLGMsdm9pZCAwLHZvaWQgMD09PWQ/bnVsbDpkKX1cbmZ1bmN0aW9uIFZoKGEsYixjLGQpe3ZhciBlPUloKCk7ZD12b2lkIDA9PT1kP251bGw6ZDt2YXIgZj12b2lkIDA7aWYobnVsbCE9PVMpe3ZhciBnPVMubWVtb2l6ZWRTdGF0ZTtmPWcuZGVzdHJveTtpZihudWxsIT09ZCYmQmgoZCxnLmRlcHMpKXtSaChiLGMsZixkKTtyZXR1cm59fVIuZmxhZ3N8PWE7ZS5tZW1vaXplZFN0YXRlPVJoKDF8YixjLGYsZCl9ZnVuY3Rpb24gV2goYSxiKXtyZXR1cm4gVWgoNTE2LDQsYSxiKX1mdW5jdGlvbiBYaChhLGIpe3JldHVybiBWaCg1MTYsNCxhLGIpfWZ1bmN0aW9uIFloKGEsYil7cmV0dXJuIFZoKDQsMixhLGIpfWZ1bmN0aW9uIFpoKGEsYil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpcmV0dXJuIGE9YSgpLGIoYSksZnVuY3Rpb24oKXtiKG51bGwpfTtpZihudWxsIT09YiYmdm9pZCAwIT09YilyZXR1cm4gYT1hKCksYi5jdXJyZW50PWEsZnVuY3Rpb24oKXtiLmN1cnJlbnQ9bnVsbH19XG5mdW5jdGlvbiAkaChhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIFZoKDQsMixaaC5iaW5kKG51bGwsYixhKSxjKX1mdW5jdGlvbiBhaSgpe31mdW5jdGlvbiBiaShhLGIpe3ZhciBjPUloKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZCaChiLGRbMV0pKXJldHVybiBkWzBdO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1mdW5jdGlvbiBjaShhLGIpe3ZhciBjPUloKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZCaChiLGRbMV0pKXJldHVybiBkWzBdO2E9YSgpO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1cbmZ1bmN0aW9uIGRpKGEsYil7dmFyIGM9ZWcoKTtnZyg5OD5jPzk4OmMsZnVuY3Rpb24oKXthKCEwKX0pO2dnKDk3PGM/OTc6YyxmdW5jdGlvbigpe3ZhciBjPXdoLnRyYW5zaXRpb247d2gudHJhbnNpdGlvbj0xO3RyeXthKCExKSxiKCl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWN9fSl9XG5mdW5jdGlvbiBPaChhLGIsYyl7dmFyIGQ9SGcoKSxlPUlnKGEpLGY9e2xhbmU6ZSxhY3Rpb246YyxlYWdlclJlZHVjZXI6bnVsbCxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxnPWIucGVuZGluZztudWxsPT09Zz9mLm5leHQ9ZjooZi5uZXh0PWcubmV4dCxnLm5leHQ9Zik7Yi5wZW5kaW5nPWY7Zz1hLmFsdGVybmF0ZTtpZihhPT09Unx8bnVsbCE9PWcmJmc9PT1SKXpoPXloPSEwO2Vsc2V7aWYoMD09PWEubGFuZXMmJihudWxsPT09Z3x8MD09PWcubGFuZXMpJiYoZz1iLmxhc3RSZW5kZXJlZFJlZHVjZXIsbnVsbCE9PWcpKXRyeXt2YXIgaD1iLmxhc3RSZW5kZXJlZFN0YXRlLGs9ZyhoLGMpO2YuZWFnZXJSZWR1Y2VyPWc7Zi5lYWdlclN0YXRlPWs7aWYoSGUoayxoKSlyZXR1cm59Y2F0Y2gobCl7fWZpbmFsbHl7fUpnKGEsZSxkKX19XG52YXIgR2g9e3JlYWRDb250ZXh0OnZnLHVzZUNhbGxiYWNrOkFoLHVzZUNvbnRleHQ6QWgsdXNlRWZmZWN0OkFoLHVzZUltcGVyYXRpdmVIYW5kbGU6QWgsdXNlTGF5b3V0RWZmZWN0OkFoLHVzZU1lbW86QWgsdXNlUmVkdWNlcjpBaCx1c2VSZWY6QWgsdXNlU3RhdGU6QWgsdXNlRGVidWdWYWx1ZTpBaCx1c2VEZWZlcnJlZFZhbHVlOkFoLHVzZVRyYW5zaXRpb246QWgsdXNlTXV0YWJsZVNvdXJjZTpBaCx1c2VPcGFxdWVJZGVudGlmaWVyOkFoLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sRGg9e3JlYWRDb250ZXh0OnZnLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGEsYil7SGgoKS5tZW1vaXplZFN0YXRlPVthLHZvaWQgMD09PWI/bnVsbDpiXTtyZXR1cm4gYX0sdXNlQ29udGV4dDp2Zyx1c2VFZmZlY3Q6V2gsdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIFVoKDQsMixaaC5iaW5kKG51bGwsXG5iLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVWgoNCwyLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1IaCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1IaCgpO2I9dm9pZCAwIT09Yz9jKGIpOmI7ZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWI7YT1kLnF1ZXVlPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmEsbGFzdFJlbmRlcmVkU3RhdGU6Yn07YT1hLmRpc3BhdGNoPU9oLmJpbmQobnVsbCxSLGEpO3JldHVybltkLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpTaCx1c2VTdGF0ZTpRaCx1c2VEZWJ1Z1ZhbHVlOmFpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9UWgoYSksYz1iWzBdLGQ9YlsxXTtXaChmdW5jdGlvbigpe3ZhciBiPXdoLnRyYW5zaXRpb247XG53aC50cmFuc2l0aW9uPTE7dHJ5e2QoYSl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWJ9fSxbYV0pO3JldHVybiBjfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9UWgoITEpLGI9YVswXTthPWRpLmJpbmQobnVsbCxhWzFdKTtTaChhKTtyZXR1cm5bYSxiXX0sdXNlTXV0YWJsZVNvdXJjZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9SGgoKTtkLm1lbW9pemVkU3RhdGU9e3JlZnM6e2dldFNuYXBzaG90OmIsc2V0U25hcHNob3Q6bnVsbH0sc291cmNlOmEsc3Vic2NyaWJlOmN9O3JldHVybiBOaChkLGEsYixjKX0sdXNlT3BhcXVlSWRlbnRpZmllcjpmdW5jdGlvbigpe2lmKGxoKXt2YXIgYT0hMSxiPXVmKGZ1bmN0aW9uKCl7YXx8KGE9ITAsYyhcInI6XCIrKHRmKyspLnRvU3RyaW5nKDM2KSkpO3Rocm93IEVycm9yKHkoMzU1KSk7fSksYz1RaChiKVsxXTswPT09KFIubW9kZSYyKSYmKFIuZmxhZ3N8PTUxNixSaCg1LGZ1bmN0aW9uKCl7YyhcInI6XCIrKHRmKyspLnRvU3RyaW5nKDM2KSl9LFxudm9pZCAwLG51bGwpKTtyZXR1cm4gYn1iPVwicjpcIisodGYrKykudG9TdHJpbmcoMzYpO1FoKGIpO3JldHVybiBifSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LEVoPXtyZWFkQ29udGV4dDp2Zyx1c2VDYWxsYmFjazpiaSx1c2VDb250ZXh0OnZnLHVzZUVmZmVjdDpYaCx1c2VJbXBlcmF0aXZlSGFuZGxlOiRoLHVzZUxheW91dEVmZmVjdDpZaCx1c2VNZW1vOmNpLHVzZVJlZHVjZXI6S2gsdXNlUmVmOlRoLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIEtoKEpoKX0sdXNlRGVidWdWYWx1ZTphaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPUtoKEpoKSxjPWJbMF0sZD1iWzFdO1hoKGZ1bmN0aW9uKCl7dmFyIGI9d2gudHJhbnNpdGlvbjt3aC50cmFuc2l0aW9uPTE7dHJ5e2QoYSl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWJ9fSxbYV0pO3JldHVybiBjfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9S2goSmgpWzBdO3JldHVybltUaCgpLmN1cnJlbnQsXG5hXX0sdXNlTXV0YWJsZVNvdXJjZTpQaCx1c2VPcGFxdWVJZGVudGlmaWVyOmZ1bmN0aW9uKCl7cmV0dXJuIEtoKEpoKVswXX0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxGaD17cmVhZENvbnRleHQ6dmcsdXNlQ2FsbGJhY2s6YmksdXNlQ29udGV4dDp2Zyx1c2VFZmZlY3Q6WGgsdXNlSW1wZXJhdGl2ZUhhbmRsZTokaCx1c2VMYXlvdXRFZmZlY3Q6WWgsdXNlTWVtbzpjaSx1c2VSZWR1Y2VyOkxoLHVzZVJlZjpUaCx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBMaChKaCl9LHVzZURlYnVnVmFsdWU6YWksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1MaChKaCksYz1iWzBdLGQ9YlsxXTtYaChmdW5jdGlvbigpe3ZhciBiPXdoLnRyYW5zaXRpb247d2gudHJhbnNpdGlvbj0xO3RyeXtkKGEpfWZpbmFsbHl7d2gudHJhbnNpdGlvbj1ifX0sW2FdKTtyZXR1cm4gY30sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBhPUxoKEpoKVswXTtyZXR1cm5bVGgoKS5jdXJyZW50LFxuYV19LHVzZU11dGFibGVTb3VyY2U6UGgsdXNlT3BhcXVlSWRlbnRpZmllcjpmdW5jdGlvbigpe3JldHVybiBMaChKaClbMF19LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sZWk9cmEuUmVhY3RDdXJyZW50T3duZXIsdWc9ITE7ZnVuY3Rpb24gZmkoYSxiLGMsZCl7Yi5jaGlsZD1udWxsPT09YT9aZyhiLG51bGwsYyxkKTpZZyhiLGEuY2hpbGQsYyxkKX1mdW5jdGlvbiBnaShhLGIsYyxkLGUpe2M9Yy5yZW5kZXI7dmFyIGY9Yi5yZWY7dGcoYixlKTtkPUNoKGEsYixjLGQsZixlKTtpZihudWxsIT09YSYmIXVnKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTUxNyxhLmxhbmVzJj1+ZSxoaShhLGIsZSk7Yi5mbGFnc3w9MTtmaShhLGIsZCxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGlpKGEsYixjLGQsZSxmKXtpZihudWxsPT09YSl7dmFyIGc9Yy50eXBlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnJiYhamkoZykmJnZvaWQgMD09PWcuZGVmYXVsdFByb3BzJiZudWxsPT09Yy5jb21wYXJlJiZ2b2lkIDA9PT1jLmRlZmF1bHRQcm9wcylyZXR1cm4gYi50YWc9MTUsYi50eXBlPWcsa2koYSxiLGcsZCxlLGYpO2E9VmcoYy50eXBlLG51bGwsZCxiLGIubW9kZSxmKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9Zz1hLmNoaWxkO2lmKDA9PT0oZSZmKSYmKGU9Zy5tZW1vaXplZFByb3BzLGM9Yy5jb21wYXJlLGM9bnVsbCE9PWM/YzpKZSxjKGUsZCkmJmEucmVmPT09Yi5yZWYpKXJldHVybiBoaShhLGIsZik7Yi5mbGFnc3w9MTthPVRnKGcsZCk7YS5yZWY9Yi5yZWY7YS5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1hfVxuZnVuY3Rpb24ga2koYSxiLGMsZCxlLGYpe2lmKG51bGwhPT1hJiZKZShhLm1lbW9pemVkUHJvcHMsZCkmJmEucmVmPT09Yi5yZWYpaWYodWc9ITEsMCE9PShmJmUpKTAhPT0oYS5mbGFncyYxNjM4NCkmJih1Zz0hMCk7ZWxzZSByZXR1cm4gYi5sYW5lcz1hLmxhbmVzLGhpKGEsYixmKTtyZXR1cm4gbGkoYSxiLGMsZCxmKX1cbmZ1bmN0aW9uIG1pKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQuY2hpbGRyZW4sZj1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbDtpZihcImhpZGRlblwiPT09ZC5tb2RlfHxcInVuc3RhYmxlLWRlZmVyLXdpdGhvdXQtaGlkaW5nXCI9PT1kLm1vZGUpaWYoMD09PShiLm1vZGUmNCkpYi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MH0sbmkoYixjKTtlbHNlIGlmKDAhPT0oYyYxMDczNzQxODI0KSliLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowfSxuaShiLG51bGwhPT1mP2YuYmFzZUxhbmVzOmMpO2Vsc2UgcmV0dXJuIGE9bnVsbCE9PWY/Zi5iYXNlTGFuZXN8YzpjLGIubGFuZXM9Yi5jaGlsZExhbmVzPTEwNzM3NDE4MjQsYi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6YX0sbmkoYixhKSxudWxsO2Vsc2UgbnVsbCE9PWY/KGQ9Zi5iYXNlTGFuZXN8YyxiLm1lbW9pemVkU3RhdGU9bnVsbCk6ZD1jLG5pKGIsZCk7ZmkoYSxiLGUsYyk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBvaShhLGIpe3ZhciBjPWIucmVmO2lmKG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YyliLmZsYWdzfD0xMjh9ZnVuY3Rpb24gbGkoYSxiLGMsZCxlKXt2YXIgZj1GZihjKT9EZjpNLmN1cnJlbnQ7Zj1FZihiLGYpO3RnKGIsZSk7Yz1DaChhLGIsYyxkLGYsZSk7aWYobnVsbCE9PWEmJiF1ZylyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZmxhZ3MmPS01MTcsYS5sYW5lcyY9fmUsaGkoYSxiLGUpO2IuZmxhZ3N8PTE7ZmkoYSxiLGMsZSk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBwaShhLGIsYyxkLGUpe2lmKEZmKGMpKXt2YXIgZj0hMDtKZihiKX1lbHNlIGY9ITE7dGcoYixlKTtpZihudWxsPT09Yi5zdGF0ZU5vZGUpbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9MiksTWcoYixjLGQpLE9nKGIsYyxkLGUpLGQ9ITA7ZWxzZSBpZihudWxsPT09YSl7dmFyIGc9Yi5zdGF0ZU5vZGUsaD1iLm1lbW9pemVkUHJvcHM7Zy5wcm9wcz1oO3ZhciBrPWcuY29udGV4dCxsPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBsJiZudWxsIT09bD9sPXZnKGwpOihsPUZmKGMpP0RmOk0uY3VycmVudCxsPUVmKGIsbCkpO3ZhciBuPWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLEE9XCJmdW5jdGlvblwiPT09dHlwZW9mIG58fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlO0F8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcblwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChoIT09ZHx8ayE9PWwpJiZOZyhiLGcsZCxsKTt3Zz0hMTt2YXIgcD1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1wO0NnKGIsZCxnLGUpO2s9Yi5tZW1vaXplZFN0YXRlO2ghPT1kfHxwIT09a3x8Ti5jdXJyZW50fHx3Zz8oXCJmdW5jdGlvblwiPT09dHlwZW9mIG4mJihHZyhiLGMsbixkKSxrPWIubWVtb2l6ZWRTdGF0ZSksKGg9d2d8fExnKGIsYyxoLGQscCxrLGwpKT8oQXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbE1vdW50fHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50V2lsbE1vdW50JiZnLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSxcImZ1bmN0aW9uXCI9PT1cbnR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NCkpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRNb3VudCYmKGIuZmxhZ3N8PTQpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT1rKSxnLnByb3BzPWQsZy5zdGF0ZT1rLGcuY29udGV4dD1sLGQ9aCk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NCksZD0hMSl9ZWxzZXtnPWIuc3RhdGVOb2RlO3lnKGEsYik7aD1iLm1lbW9pemVkUHJvcHM7bD1iLnR5cGU9PT1iLmVsZW1lbnRUeXBlP2g6bGcoYi50eXBlLGgpO2cucHJvcHM9bDtBPWIucGVuZGluZ1Byb3BzO3A9Zy5jb250ZXh0O2s9Yy5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rP2s9dmcoayk6KGs9RmYoYyk/RGY6TS5jdXJyZW50LGs9RWYoYixrKSk7dmFyIEM9Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7KG49XCJmdW5jdGlvblwiPT09dHlwZW9mIEN8fFxuXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGghPT1BfHxwIT09aykmJk5nKGIsZyxkLGspO3dnPSExO3A9Yi5tZW1vaXplZFN0YXRlO2cuc3RhdGU9cDtDZyhiLGQsZyxlKTt2YXIgeD1iLm1lbW9pemVkU3RhdGU7aCE9PUF8fHAhPT14fHxOLmN1cnJlbnR8fHdnPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgQyYmKEdnKGIsYyxDLGQpLHg9Yi5tZW1vaXplZFN0YXRlKSwobD13Z3x8TGcoYixjLGwsZCxwLHgsaykpPyhufHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZXx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGUmJmcuY29tcG9uZW50V2lsbFVwZGF0ZShkLFxueCxrKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShkLHgsaykpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZSYmKGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoYi5mbGFnc3w9MjU2KSk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcD09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9MjU2KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9eCksZy5wcm9wcz1kLGcuc3RhdGU9eCxnLmNvbnRleHQ9ayxkPWwpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGV8fFxuaD09PWEubWVtb2l6ZWRQcm9wcyYmcD09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9MjU2KSxkPSExKX1yZXR1cm4gcWkoYSxiLGMsZCxmLGUpfVxuZnVuY3Rpb24gcWkoYSxiLGMsZCxlLGYpe29pKGEsYik7dmFyIGc9MCE9PShiLmZsYWdzJjY0KTtpZighZCYmIWcpcmV0dXJuIGUmJktmKGIsYywhMSksaGkoYSxiLGYpO2Q9Yi5zdGF0ZU5vZGU7ZWkuY3VycmVudD1iO3ZhciBoPWcmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmQucmVuZGVyKCk7Yi5mbGFnc3w9MTtudWxsIT09YSYmZz8oYi5jaGlsZD1ZZyhiLGEuY2hpbGQsbnVsbCxmKSxiLmNoaWxkPVlnKGIsbnVsbCxoLGYpKTpmaShhLGIsaCxmKTtiLm1lbW9pemVkU3RhdGU9ZC5zdGF0ZTtlJiZLZihiLGMsITApO3JldHVybiBiLmNoaWxkfWZ1bmN0aW9uIHJpKGEpe3ZhciBiPWEuc3RhdGVOb2RlO2IucGVuZGluZ0NvbnRleHQ/SGYoYSxiLnBlbmRpbmdDb250ZXh0LGIucGVuZGluZ0NvbnRleHQhPT1iLmNvbnRleHQpOmIuY29udGV4dCYmSGYoYSxiLmNvbnRleHQsITEpO2VoKGEsYi5jb250YWluZXJJbmZvKX1cbnZhciBzaT17ZGVoeWRyYXRlZDpudWxsLHJldHJ5TGFuZTowfTtcbmZ1bmN0aW9uIHRpKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPVAuY3VycmVudCxmPSExLGc7KGc9MCE9PShiLmZsYWdzJjY0KSl8fChnPW51bGwhPT1hJiZudWxsPT09YS5tZW1vaXplZFN0YXRlPyExOjAhPT0oZSYyKSk7Zz8oZj0hMCxiLmZsYWdzJj0tNjUpOm51bGwhPT1hJiZudWxsPT09YS5tZW1vaXplZFN0YXRlfHx2b2lkIDA9PT1kLmZhbGxiYWNrfHwhMD09PWQudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fChlfD0xKTtJKFAsZSYxKTtpZihudWxsPT09YSl7dm9pZCAwIT09ZC5mYWxsYmFjayYmcGgoYik7YT1kLmNoaWxkcmVuO2U9ZC5mYWxsYmFjaztpZihmKXJldHVybiBhPXVpKGIsYSxlLGMpLGIuY2hpbGQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmN9LGIubWVtb2l6ZWRTdGF0ZT1zaSxhO2lmKFwibnVtYmVyXCI9PT10eXBlb2YgZC51bnN0YWJsZV9leHBlY3RlZExvYWRUaW1lKXJldHVybiBhPXVpKGIsYSxlLGMpLGIuY2hpbGQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmN9LFxuYi5tZW1vaXplZFN0YXRlPXNpLGIubGFuZXM9MzM1NTQ0MzIsYTtjPXZpKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmF9LGIubW9kZSxjLG51bGwpO2MucmV0dXJuPWI7cmV0dXJuIGIuY2hpbGQ9Y31pZihudWxsIT09YS5tZW1vaXplZFN0YXRlKXtpZihmKXJldHVybiBkPXdpKGEsYixkLmNoaWxkcmVuLGQuZmFsbGJhY2ssYyksZj1iLmNoaWxkLGU9YS5jaGlsZC5tZW1vaXplZFN0YXRlLGYubWVtb2l6ZWRTdGF0ZT1udWxsPT09ZT97YmFzZUxhbmVzOmN9OntiYXNlTGFuZXM6ZS5iYXNlTGFuZXN8Y30sZi5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcyZ+YyxiLm1lbW9pemVkU3RhdGU9c2ksZDtjPXhpKGEsYixkLmNoaWxkcmVuLGMpO2IubWVtb2l6ZWRTdGF0ZT1udWxsO3JldHVybiBjfWlmKGYpcmV0dXJuIGQ9d2koYSxiLGQuY2hpbGRyZW4sZC5mYWxsYmFjayxjKSxmPWIuY2hpbGQsZT1hLmNoaWxkLm1lbW9pemVkU3RhdGUsZi5tZW1vaXplZFN0YXRlPW51bGw9PT1lP3tiYXNlTGFuZXM6Y306XG57YmFzZUxhbmVzOmUuYmFzZUxhbmVzfGN9LGYuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXMmfmMsYi5tZW1vaXplZFN0YXRlPXNpLGQ7Yz14aShhLGIsZC5jaGlsZHJlbixjKTtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gY31mdW5jdGlvbiB1aShhLGIsYyxkKXt2YXIgZT1hLm1vZGUsZj1hLmNoaWxkO2I9e21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpifTswPT09KGUmMikmJm51bGwhPT1mPyhmLmNoaWxkTGFuZXM9MCxmLnBlbmRpbmdQcm9wcz1iKTpmPXZpKGIsZSwwLG51bGwpO2M9WGcoYyxlLGQsbnVsbCk7Zi5yZXR1cm49YTtjLnJldHVybj1hO2Yuc2libGluZz1jO2EuY2hpbGQ9ZjtyZXR1cm4gY31cbmZ1bmN0aW9uIHhpKGEsYixjLGQpe3ZhciBlPWEuY2hpbGQ7YT1lLnNpYmxpbmc7Yz1UZyhlLHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmN9KTswPT09KGIubW9kZSYyKSYmKGMubGFuZXM9ZCk7Yy5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbDtudWxsIT09YSYmKGEubmV4dEVmZmVjdD1udWxsLGEuZmxhZ3M9OCxiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1hKTtyZXR1cm4gYi5jaGlsZD1jfVxuZnVuY3Rpb24gd2koYSxiLGMsZCxlKXt2YXIgZj1iLm1vZGUsZz1hLmNoaWxkO2E9Zy5zaWJsaW5nO3ZhciBoPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46Y307MD09PShmJjIpJiZiLmNoaWxkIT09Zz8oYz1iLmNoaWxkLGMuY2hpbGRMYW5lcz0wLGMucGVuZGluZ1Byb3BzPWgsZz1jLmxhc3RFZmZlY3QsbnVsbCE9PWc/KGIuZmlyc3RFZmZlY3Q9Yy5maXJzdEVmZmVjdCxiLmxhc3RFZmZlY3Q9ZyxnLm5leHRFZmZlY3Q9bnVsbCk6Yi5maXJzdEVmZmVjdD1iLmxhc3RFZmZlY3Q9bnVsbCk6Yz1UZyhnLGgpO251bGwhPT1hP2Q9VGcoYSxkKTooZD1YZyhkLGYsZSxudWxsKSxkLmZsYWdzfD0yKTtkLnJldHVybj1iO2MucmV0dXJuPWI7Yy5zaWJsaW5nPWQ7Yi5jaGlsZD1jO3JldHVybiBkfWZ1bmN0aW9uIHlpKGEsYil7YS5sYW5lc3w9Yjt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmKGMubGFuZXN8PWIpO3NnKGEucmV0dXJuLGIpfVxuZnVuY3Rpb24gemkoYSxiLGMsZCxlLGYpe3ZhciBnPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zz9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpkLHRhaWw6Yyx0YWlsTW9kZTplLGxhc3RFZmZlY3Q6Zn06KGcuaXNCYWNrd2FyZHM9YixnLnJlbmRlcmluZz1udWxsLGcucmVuZGVyaW5nU3RhcnRUaW1lPTAsZy5sYXN0PWQsZy50YWlsPWMsZy50YWlsTW9kZT1lLGcubGFzdEVmZmVjdD1mKX1cbmZ1bmN0aW9uIEFpKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQucmV2ZWFsT3JkZXIsZj1kLnRhaWw7ZmkoYSxiLGQuY2hpbGRyZW4sYyk7ZD1QLmN1cnJlbnQ7aWYoMCE9PShkJjIpKWQ9ZCYxfDIsYi5mbGFnc3w9NjQ7ZWxzZXtpZihudWxsIT09YSYmMCE9PShhLmZsYWdzJjY0KSlhOmZvcihhPWIuY2hpbGQ7bnVsbCE9PWE7KXtpZigxMz09PWEudGFnKW51bGwhPT1hLm1lbW9pemVkU3RhdGUmJnlpKGEsYyk7ZWxzZSBpZigxOT09PWEudGFnKXlpKGEsYyk7ZWxzZSBpZihudWxsIT09YS5jaGlsZCl7YS5jaGlsZC5yZXR1cm49YTthPWEuY2hpbGQ7Y29udGludWV9aWYoYT09PWIpYnJlYWsgYTtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fGEucmV0dXJuPT09YilicmVhayBhO2E9YS5yZXR1cm59YS5zaWJsaW5nLnJldHVybj1hLnJldHVybjthPWEuc2libGluZ31kJj0xfUkoUCxkKTtpZigwPT09KGIubW9kZSYyKSliLm1lbW9pemVkU3RhdGU9XG5udWxsO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgXCJmb3J3YXJkc1wiOmM9Yi5jaGlsZDtmb3IoZT1udWxsO251bGwhPT1jOylhPWMuYWx0ZXJuYXRlLG51bGwhPT1hJiZudWxsPT09aWgoYSkmJihlPWMpLGM9Yy5zaWJsaW5nO2M9ZTtudWxsPT09Yz8oZT1iLmNoaWxkLGIuY2hpbGQ9bnVsbCk6KGU9Yy5zaWJsaW5nLGMuc2libGluZz1udWxsKTt6aShiLCExLGUsYyxmLGIubGFzdEVmZmVjdCk7YnJlYWs7Y2FzZSBcImJhY2t3YXJkc1wiOmM9bnVsbDtlPWIuY2hpbGQ7Zm9yKGIuY2hpbGQ9bnVsbDtudWxsIT09ZTspe2E9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PWEmJm51bGw9PT1paChhKSl7Yi5jaGlsZD1lO2JyZWFrfWE9ZS5zaWJsaW5nO2Uuc2libGluZz1jO2M9ZTtlPWF9emkoYiwhMCxjLG51bGwsZixiLmxhc3RFZmZlY3QpO2JyZWFrO2Nhc2UgXCJ0b2dldGhlclwiOnppKGIsITEsbnVsbCxudWxsLHZvaWQgMCxiLmxhc3RFZmZlY3QpO2JyZWFrO2RlZmF1bHQ6Yi5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBoaShhLGIsYyl7bnVsbCE9PWEmJihiLmRlcGVuZGVuY2llcz1hLmRlcGVuZGVuY2llcyk7RGd8PWIubGFuZXM7aWYoMCE9PShjJmIuY2hpbGRMYW5lcykpe2lmKG51bGwhPT1hJiZiLmNoaWxkIT09YS5jaGlsZCl0aHJvdyBFcnJvcih5KDE1MykpO2lmKG51bGwhPT1iLmNoaWxkKXthPWIuY2hpbGQ7Yz1UZyhhLGEucGVuZGluZ1Byb3BzKTtiLmNoaWxkPWM7Zm9yKGMucmV0dXJuPWI7bnVsbCE9PWEuc2libGluZzspYT1hLnNpYmxpbmcsYz1jLnNpYmxpbmc9VGcoYSxhLnBlbmRpbmdQcm9wcyksYy5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbH1yZXR1cm4gYi5jaGlsZH1yZXR1cm4gbnVsbH12YXIgQmksQ2ksRGksRWk7XG5CaT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkO251bGwhPT1jOyl7aWYoNT09PWMudGFnfHw2PT09Yy50YWcpYS5hcHBlbmRDaGlsZChjLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09Yy50YWcmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09YilicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YilyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX07Q2k9ZnVuY3Rpb24oKXt9O1xuRGk9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5tZW1vaXplZFByb3BzO2lmKGUhPT1kKXthPWIuc3RhdGVOb2RlO2RoKGFoLmN1cnJlbnQpO3ZhciBmPW51bGw7c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOmU9WWEoYSxlKTtkPVlhKGEsZCk7Zj1bXTticmVhaztjYXNlIFwib3B0aW9uXCI6ZT1lYihhLGUpO2Q9ZWIoYSxkKTtmPVtdO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjplPW0oe30sZSx7dmFsdWU6dm9pZCAwfSk7ZD1tKHt9LGQse3ZhbHVlOnZvaWQgMH0pO2Y9W107YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6ZT1nYihhLGUpO2Q9Z2IoYSxkKTtmPVtdO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiIT09dHlwZW9mIGUub25DbGljayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGQub25DbGljayYmKGEub25jbGljaz1qZil9dmIoYyxkKTt2YXIgZztjPW51bGw7Zm9yKGwgaW4gZSlpZighZC5oYXNPd25Qcm9wZXJ0eShsKSYmZS5oYXNPd25Qcm9wZXJ0eShsKSYmbnVsbCE9ZVtsXSlpZihcInN0eWxlXCI9PT1cbmwpe3ZhciBoPWVbbF07Zm9yKGcgaW4gaCloLmhhc093blByb3BlcnR5KGcpJiYoY3x8KGM9e30pLGNbZ109XCJcIil9ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWwmJlwiY2hpbGRyZW5cIiE9PWwmJlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1sJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09bCYmXCJhdXRvRm9jdXNcIiE9PWwmJihjYS5oYXNPd25Qcm9wZXJ0eShsKT9mfHwoZj1bXSk6KGY9Znx8W10pLnB1c2gobCxudWxsKSk7Zm9yKGwgaW4gZCl7dmFyIGs9ZFtsXTtoPW51bGwhPWU/ZVtsXTp2b2lkIDA7aWYoZC5oYXNPd25Qcm9wZXJ0eShsKSYmayE9PWgmJihudWxsIT1rfHxudWxsIT1oKSlpZihcInN0eWxlXCI9PT1sKWlmKGgpe2ZvcihnIGluIGgpIWguaGFzT3duUHJvcGVydHkoZyl8fGsmJmsuaGFzT3duUHJvcGVydHkoZyl8fChjfHwoYz17fSksY1tnXT1cIlwiKTtmb3IoZyBpbiBrKWsuaGFzT3duUHJvcGVydHkoZykmJmhbZ10hPT1rW2ddJiYoY3x8XG4oYz17fSksY1tnXT1rW2ddKX1lbHNlIGN8fChmfHwoZj1bXSksZi5wdXNoKGwsYykpLGM9aztlbHNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09bD8oaz1rP2suX19odG1sOnZvaWQgMCxoPWg/aC5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJmghPT1rJiYoZj1mfHxbXSkucHVzaChsLGspKTpcImNoaWxkcmVuXCI9PT1sP1wic3RyaW5nXCIhPT10eXBlb2YgayYmXCJudW1iZXJcIiE9PXR5cGVvZiBrfHwoZj1mfHxbXSkucHVzaChsLFwiXCIrayk6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWwmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1sJiYoY2EuaGFzT3duUHJvcGVydHkobCk/KG51bGwhPWsmJlwib25TY3JvbGxcIj09PWwmJkcoXCJzY3JvbGxcIixhKSxmfHxoPT09a3x8KGY9W10pKTpcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rJiZrLiQkdHlwZW9mPT09R2E/ay50b1N0cmluZygpOihmPWZ8fFtdKS5wdXNoKGwsaykpfWMmJihmPWZ8fFtdKS5wdXNoKFwic3R5bGVcIixcbmMpO3ZhciBsPWY7aWYoYi51cGRhdGVRdWV1ZT1sKWIuZmxhZ3N8PTR9fTtFaT1mdW5jdGlvbihhLGIsYyxkKXtjIT09ZCYmKGIuZmxhZ3N8PTQpfTtmdW5jdGlvbiBGaShhLGIpe2lmKCFsaClzd2l0Y2goYS50YWlsTW9kZSl7Y2FzZSBcImhpZGRlblwiOmI9YS50YWlsO2Zvcih2YXIgYz1udWxsO251bGwhPT1iOyludWxsIT09Yi5hbHRlcm5hdGUmJihjPWIpLGI9Yi5zaWJsaW5nO251bGw9PT1jP2EudGFpbD1udWxsOmMuc2libGluZz1udWxsO2JyZWFrO2Nhc2UgXCJjb2xsYXBzZWRcIjpjPWEudGFpbDtmb3IodmFyIGQ9bnVsbDtudWxsIT09YzspbnVsbCE9PWMuYWx0ZXJuYXRlJiYoZD1jKSxjPWMuc2libGluZztudWxsPT09ZD9ifHxudWxsPT09YS50YWlsP2EudGFpbD1udWxsOmEudGFpbC5zaWJsaW5nPW51bGw6ZC5zaWJsaW5nPW51bGx9fVxuZnVuY3Rpb24gR2koYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzO3N3aXRjaChiLnRhZyl7Y2FzZSAyOmNhc2UgMTY6Y2FzZSAxNTpjYXNlIDA6Y2FzZSAxMTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMTQ6cmV0dXJuIG51bGw7Y2FzZSAxOnJldHVybiBGZihiLnR5cGUpJiZHZigpLG51bGw7Y2FzZSAzOmZoKCk7SChOKTtIKE0pO3VoKCk7ZD1iLnN0YXRlTm9kZTtkLnBlbmRpbmdDb250ZXh0JiYoZC5jb250ZXh0PWQucGVuZGluZ0NvbnRleHQsZC5wZW5kaW5nQ29udGV4dD1udWxsKTtpZihudWxsPT09YXx8bnVsbD09PWEuY2hpbGQpcmgoYik/Yi5mbGFnc3w9NDpkLmh5ZHJhdGV8fChiLmZsYWdzfD0yNTYpO0NpKGIpO3JldHVybiBudWxsO2Nhc2UgNTpoaChiKTt2YXIgZT1kaChjaC5jdXJyZW50KTtjPWIudHlwZTtpZihudWxsIT09YSYmbnVsbCE9Yi5zdGF0ZU5vZGUpRGkoYSxiLGMsZCxlKSxhLnJlZiE9PWIucmVmJiYoYi5mbGFnc3w9MTI4KTtlbHNle2lmKCFkKXtpZihudWxsPT09XG5iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih5KDE2NikpO3JldHVybiBudWxsfWE9ZGgoYWguY3VycmVudCk7aWYocmgoYikpe2Q9Yi5zdGF0ZU5vZGU7Yz1iLnR5cGU7dmFyIGY9Yi5tZW1vaXplZFByb3BzO2Rbd2ZdPWI7ZFt4Zl09Zjtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkcoXCJjYW5jZWxcIixkKTtHKFwiY2xvc2VcIixkKTticmVhaztjYXNlIFwiaWZyYW1lXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJlbWJlZFwiOkcoXCJsb2FkXCIsZCk7YnJlYWs7Y2FzZSBcInZpZGVvXCI6Y2FzZSBcImF1ZGlvXCI6Zm9yKGE9MDthPFhlLmxlbmd0aDthKyspRyhYZVthXSxkKTticmVhaztjYXNlIFwic291cmNlXCI6RyhcImVycm9yXCIsZCk7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RyhcImVycm9yXCIsZCk7RyhcImxvYWRcIixkKTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixkKTticmVhaztjYXNlIFwiaW5wdXRcIjpaYShkLGYpO0coXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmQuX3dyYXBwZXJTdGF0ZT1cbnt3YXNNdWx0aXBsZTohIWYubXVsdGlwbGV9O0coXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aGIoZCxmKSxHKFwiaW52YWxpZFwiLGQpfXZiKGMsZik7YT1udWxsO2Zvcih2YXIgZyBpbiBmKWYuaGFzT3duUHJvcGVydHkoZykmJihlPWZbZ10sXCJjaGlsZHJlblwiPT09Zz9cInN0cmluZ1wiPT09dHlwZW9mIGU/ZC50ZXh0Q29udGVudCE9PWUmJihhPVtcImNoaWxkcmVuXCIsZV0pOlwibnVtYmVyXCI9PT10eXBlb2YgZSYmZC50ZXh0Q29udGVudCE9PVwiXCIrZSYmKGE9W1wiY2hpbGRyZW5cIixcIlwiK2VdKTpjYS5oYXNPd25Qcm9wZXJ0eShnKSYmbnVsbCE9ZSYmXCJvblNjcm9sbFwiPT09ZyYmRyhcInNjcm9sbFwiLGQpKTtzd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoZCk7Y2IoZCxmLCEwKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShkKTtqYihkKTticmVhaztjYXNlIFwic2VsZWN0XCI6Y2FzZSBcIm9wdGlvblwiOmJyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGYub25DbGljayYmKGQub25jbGljaz1cbmpmKX1kPWE7Yi51cGRhdGVRdWV1ZT1kO251bGwhPT1kJiYoYi5mbGFnc3w9NCl9ZWxzZXtnPTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O2E9PT1rYi5odG1sJiYoYT1sYihjKSk7YT09PWtiLmh0bWw/XCJzY3JpcHRcIj09PWM/KGE9Zy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGEuaW5uZXJIVE1MPVwiPHNjcmlwdD5cXHgzYy9zY3JpcHQ+XCIsYT1hLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCkpOlwic3RyaW5nXCI9PT10eXBlb2YgZC5pcz9hPWcuY3JlYXRlRWxlbWVudChjLHtpczpkLmlzfSk6KGE9Zy5jcmVhdGVFbGVtZW50KGMpLFwic2VsZWN0XCI9PT1jJiYoZz1hLGQubXVsdGlwbGU/Zy5tdWx0aXBsZT0hMDpkLnNpemUmJihnLnNpemU9ZC5zaXplKSkpOmE9Zy5jcmVhdGVFbGVtZW50TlMoYSxjKTthW3dmXT1iO2FbeGZdPWQ7QmkoYSxiLCExLCExKTtiLnN0YXRlTm9kZT1hO2c9d2IoYyxkKTtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkcoXCJjYW5jZWxcIixhKTtHKFwiY2xvc2VcIixhKTtcbmU9ZDticmVhaztjYXNlIFwiaWZyYW1lXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJlbWJlZFwiOkcoXCJsb2FkXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcihlPTA7ZTxYZS5sZW5ndGg7ZSsrKUcoWGVbZV0sYSk7ZT1kO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpHKFwiZXJyb3JcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RyhcImVycm9yXCIsYSk7RyhcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImRldGFpbHNcIjpHKFwidG9nZ2xlXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGEsZCk7ZT1ZYShhLGQpO0coXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmU9ZWIoYSxkKTticmVhaztjYXNlIFwic2VsZWN0XCI6YS5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWQubXVsdGlwbGV9O2U9bSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtHKFwiaW52YWxpZFwiLGEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGEsZCk7ZT1cbmdiKGEsZCk7RyhcImludmFsaWRcIixhKTticmVhaztkZWZhdWx0OmU9ZH12YihjLGUpO3ZhciBoPWU7Zm9yKGYgaW4gaClpZihoLmhhc093blByb3BlcnR5KGYpKXt2YXIgaz1oW2ZdO1wic3R5bGVcIj09PWY/dGIoYSxrKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1mPyhrPWs/ay5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJm9iKGEsaykpOlwiY2hpbGRyZW5cIj09PWY/XCJzdHJpbmdcIj09PXR5cGVvZiBrPyhcInRleHRhcmVhXCIhPT1jfHxcIlwiIT09aykmJnBiKGEsayk6XCJudW1iZXJcIj09PXR5cGVvZiBrJiZwYihhLFwiXCIrayk6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWYmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1mJiZcImF1dG9Gb2N1c1wiIT09ZiYmKGNhLmhhc093blByb3BlcnR5KGYpP251bGwhPWsmJlwib25TY3JvbGxcIj09PWYmJkcoXCJzY3JvbGxcIixhKTpudWxsIT1rJiZxYShhLGYsayxnKSl9c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOlZhKGEpO2NiKGEsZCwhMSk7XG5icmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShhKTtqYihhKTticmVhaztjYXNlIFwib3B0aW9uXCI6bnVsbCE9ZC52YWx1ZSYmYS5zZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiLFwiXCIrU2EoZC52YWx1ZSkpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLm11bHRpcGxlPSEhZC5tdWx0aXBsZTtmPWQudmFsdWU7bnVsbCE9Zj9mYihhLCEhZC5tdWx0aXBsZSxmLCExKTpudWxsIT1kLmRlZmF1bHRWYWx1ZSYmZmIoYSwhIWQubXVsdGlwbGUsZC5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGUub25DbGljayYmKGEub25jbGljaz1qZil9bWYoYyxkKSYmKGIuZmxhZ3N8PTQpfW51bGwhPT1iLnJlZiYmKGIuZmxhZ3N8PTEyOCl9cmV0dXJuIG51bGw7Y2FzZSA2OmlmKGEmJm51bGwhPWIuc3RhdGVOb2RlKUVpKGEsYixhLm1lbW9pemVkUHJvcHMsZCk7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGQmJm51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih5KDE2NikpO1xuYz1kaChjaC5jdXJyZW50KTtkaChhaC5jdXJyZW50KTtyaChiKT8oZD1iLnN0YXRlTm9kZSxjPWIubWVtb2l6ZWRQcm9wcyxkW3dmXT1iLGQubm9kZVZhbHVlIT09YyYmKGIuZmxhZ3N8PTQpKTooZD0oOT09PWMubm9kZVR5cGU/YzpjLm93bmVyRG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKGQpLGRbd2ZdPWIsYi5zdGF0ZU5vZGU9ZCl9cmV0dXJuIG51bGw7Y2FzZSAxMzpIKFApO2Q9Yi5tZW1vaXplZFN0YXRlO2lmKDAhPT0oYi5mbGFncyY2NCkpcmV0dXJuIGIubGFuZXM9YyxiO2Q9bnVsbCE9PWQ7Yz0hMTtudWxsPT09YT92b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMuZmFsbGJhY2smJnJoKGIpOmM9bnVsbCE9PWEubWVtb2l6ZWRTdGF0ZTtpZihkJiYhYyYmMCE9PShiLm1vZGUmMikpaWYobnVsbD09PWEmJiEwIT09Yi5tZW1vaXplZFByb3BzLnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrfHwwIT09KFAuY3VycmVudCYxKSkwPT09ViYmKFY9Myk7ZWxzZXtpZigwPT09Vnx8Mz09PVYpVj1cbjQ7bnVsbD09PVV8fDA9PT0oRGcmMTM0MjE3NzI3KSYmMD09PShIaSYxMzQyMTc3MjcpfHxJaShVLFcpfWlmKGR8fGMpYi5mbGFnc3w9NDtyZXR1cm4gbnVsbDtjYXNlIDQ6cmV0dXJuIGZoKCksQ2koYiksbnVsbD09PWEmJmNmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLG51bGw7Y2FzZSAxMDpyZXR1cm4gcmcoYiksbnVsbDtjYXNlIDE3OnJldHVybiBGZihiLnR5cGUpJiZHZigpLG51bGw7Y2FzZSAxOTpIKFApO2Q9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2Y9MCE9PShiLmZsYWdzJjY0KTtnPWQucmVuZGVyaW5nO2lmKG51bGw9PT1nKWlmKGYpRmkoZCwhMSk7ZWxzZXtpZigwIT09Vnx8bnVsbCE9PWEmJjAhPT0oYS5mbGFncyY2NCkpZm9yKGE9Yi5jaGlsZDtudWxsIT09YTspe2c9aWgoYSk7aWYobnVsbCE9PWcpe2IuZmxhZ3N8PTY0O0ZpKGQsITEpO2Y9Zy51cGRhdGVRdWV1ZTtudWxsIT09ZiYmKGIudXBkYXRlUXVldWU9ZixiLmZsYWdzfD00KTtcbm51bGw9PT1kLmxhc3RFZmZlY3QmJihiLmZpcnN0RWZmZWN0PW51bGwpO2IubGFzdEVmZmVjdD1kLmxhc3RFZmZlY3Q7ZD1jO2ZvcihjPWIuY2hpbGQ7bnVsbCE9PWM7KWY9YyxhPWQsZi5mbGFncyY9MixmLm5leHRFZmZlY3Q9bnVsbCxmLmZpcnN0RWZmZWN0PW51bGwsZi5sYXN0RWZmZWN0PW51bGwsZz1mLmFsdGVybmF0ZSxudWxsPT09Zz8oZi5jaGlsZExhbmVzPTAsZi5sYW5lcz1hLGYuY2hpbGQ9bnVsbCxmLm1lbW9pemVkUHJvcHM9bnVsbCxmLm1lbW9pemVkU3RhdGU9bnVsbCxmLnVwZGF0ZVF1ZXVlPW51bGwsZi5kZXBlbmRlbmNpZXM9bnVsbCxmLnN0YXRlTm9kZT1udWxsKTooZi5jaGlsZExhbmVzPWcuY2hpbGRMYW5lcyxmLmxhbmVzPWcubGFuZXMsZi5jaGlsZD1nLmNoaWxkLGYubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZi5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxmLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZi50eXBlPWcudHlwZSxhPWcuZGVwZW5kZW5jaWVzLFxuZi5kZXBlbmRlbmNpZXM9bnVsbD09PWE/bnVsbDp7bGFuZXM6YS5sYW5lcyxmaXJzdENvbnRleHQ6YS5maXJzdENvbnRleHR9KSxjPWMuc2libGluZztJKFAsUC5jdXJyZW50JjF8Mik7cmV0dXJuIGIuY2hpbGR9YT1hLnNpYmxpbmd9bnVsbCE9PWQudGFpbCYmTygpPkppJiYoYi5mbGFnc3w9NjQsZj0hMCxGaShkLCExKSxiLmxhbmVzPTMzNTU0NDMyKX1lbHNle2lmKCFmKWlmKGE9aWgoZyksbnVsbCE9PWEpe2lmKGIuZmxhZ3N8PTY0LGY9ITAsYz1hLnVwZGF0ZVF1ZXVlLG51bGwhPT1jJiYoYi51cGRhdGVRdWV1ZT1jLGIuZmxhZ3N8PTQpLEZpKGQsITApLG51bGw9PT1kLnRhaWwmJlwiaGlkZGVuXCI9PT1kLnRhaWxNb2RlJiYhZy5hbHRlcm5hdGUmJiFsaClyZXR1cm4gYj1iLmxhc3RFZmZlY3Q9ZC5sYXN0RWZmZWN0LG51bGwhPT1iJiYoYi5uZXh0RWZmZWN0PW51bGwpLG51bGx9ZWxzZSAyKk8oKS1kLnJlbmRlcmluZ1N0YXJ0VGltZT5KaSYmMTA3Mzc0MTgyNCE9PWMmJihiLmZsYWdzfD1cbjY0LGY9ITAsRmkoZCwhMSksYi5sYW5lcz0zMzU1NDQzMik7ZC5pc0JhY2t3YXJkcz8oZy5zaWJsaW5nPWIuY2hpbGQsYi5jaGlsZD1nKTooYz1kLmxhc3QsbnVsbCE9PWM/Yy5zaWJsaW5nPWc6Yi5jaGlsZD1nLGQubGFzdD1nKX1yZXR1cm4gbnVsbCE9PWQudGFpbD8oYz1kLnRhaWwsZC5yZW5kZXJpbmc9YyxkLnRhaWw9Yy5zaWJsaW5nLGQubGFzdEVmZmVjdD1iLmxhc3RFZmZlY3QsZC5yZW5kZXJpbmdTdGFydFRpbWU9TygpLGMuc2libGluZz1udWxsLGI9UC5jdXJyZW50LEkoUCxmP2ImMXwyOmImMSksYyk6bnVsbDtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIEtpKCksbnVsbCE9PWEmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUhPT0obnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSkmJlwidW5zdGFibGUtZGVmZXItd2l0aG91dC1oaWRpbmdcIiE9PWQubW9kZSYmKGIuZmxhZ3N8PTQpLG51bGx9dGhyb3cgRXJyb3IoeSgxNTYsYi50YWcpKTt9XG5mdW5jdGlvbiBMaShhKXtzd2l0Y2goYS50YWcpe2Nhc2UgMTpGZihhLnR5cGUpJiZHZigpO3ZhciBiPWEuZmxhZ3M7cmV0dXJuIGImNDA5Nj8oYS5mbGFncz1iJi00MDk3fDY0LGEpOm51bGw7Y2FzZSAzOmZoKCk7SChOKTtIKE0pO3VoKCk7Yj1hLmZsYWdzO2lmKDAhPT0oYiY2NCkpdGhyb3cgRXJyb3IoeSgyODUpKTthLmZsYWdzPWImLTQwOTd8NjQ7cmV0dXJuIGE7Y2FzZSA1OnJldHVybiBoaChhKSxudWxsO2Nhc2UgMTM6cmV0dXJuIEgoUCksYj1hLmZsYWdzLGImNDA5Nj8oYS5mbGFncz1iJi00MDk3fDY0LGEpOm51bGw7Y2FzZSAxOTpyZXR1cm4gSChQKSxudWxsO2Nhc2UgNDpyZXR1cm4gZmgoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIHJnKGEpLG51bGw7Y2FzZSAyMzpjYXNlIDI0OnJldHVybiBLaSgpLG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBNaShhLGIpe3RyeXt2YXIgYz1cIlwiLGQ9YjtkbyBjKz1RYShkKSxkPWQucmV0dXJuO3doaWxlKGQpO3ZhciBlPWN9Y2F0Y2goZil7ZT1cIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiK2YubWVzc2FnZStcIlxcblwiK2Yuc3RhY2t9cmV0dXJue3ZhbHVlOmEsc291cmNlOmIsc3RhY2s6ZX19ZnVuY3Rpb24gTmkoYSxiKXt0cnl7Y29uc29sZS5lcnJvcihiLnZhbHVlKX1jYXRjaChjKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX19dmFyIE9pPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwO2Z1bmN0aW9uIFBpKGEsYixjKXtjPXpnKC0xLGMpO2MudGFnPTM7Yy5wYXlsb2FkPXtlbGVtZW50Om51bGx9O3ZhciBkPWIudmFsdWU7Yy5jYWxsYmFjaz1mdW5jdGlvbigpe1FpfHwoUWk9ITAsUmk9ZCk7TmkoYSxiKX07cmV0dXJuIGN9XG5mdW5jdGlvbiBTaShhLGIsYyl7Yz16ZygtMSxjKTtjLnRhZz0zO3ZhciBkPWEudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBlPWIudmFsdWU7Yy5wYXlsb2FkPWZ1bmN0aW9uKCl7TmkoYSxiKTtyZXR1cm4gZChlKX19dmFyIGY9YS5zdGF0ZU5vZGU7bnVsbCE9PWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLmNvbXBvbmVudERpZENhdGNoJiYoYy5jYWxsYmFjaz1mdW5jdGlvbigpe1wiZnVuY3Rpb25cIiE9PXR5cGVvZiBkJiYobnVsbD09PVRpP1RpPW5ldyBTZXQoW3RoaXNdKTpUaS5hZGQodGhpcyksTmkoYSxiKSk7dmFyIGM9Yi5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKGIudmFsdWUse2NvbXBvbmVudFN0YWNrOm51bGwhPT1jP2M6XCJcIn0pfSk7cmV0dXJuIGN9dmFyIFVpPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0P1dlYWtTZXQ6U2V0O1xuZnVuY3Rpb24gVmkoYSl7dmFyIGI9YS5yZWY7aWYobnVsbCE9PWIpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpdHJ5e2IobnVsbCl9Y2F0Y2goYyl7V2koYSxjKX1lbHNlIGIuY3VycmVudD1udWxsfWZ1bmN0aW9uIFhpKGEsYil7c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhc2UgMjI6cmV0dXJuO2Nhc2UgMTppZihiLmZsYWdzJjI1NiYmbnVsbCE9PWEpe3ZhciBjPWEubWVtb2l6ZWRQcm9wcyxkPWEubWVtb2l6ZWRTdGF0ZTthPWIuc3RhdGVOb2RlO2I9YS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShiLmVsZW1lbnRUeXBlPT09Yi50eXBlP2M6bGcoYi50eXBlLGMpLGQpO2EuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9Yn1yZXR1cm47Y2FzZSAzOmIuZmxhZ3MmMjU2JiZxZihiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtyZXR1cm47Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpyZXR1cm59dGhyb3cgRXJyb3IoeSgxNjMpKTt9XG5mdW5jdGlvbiBZaShhLGIsYyl7c3dpdGNoKGMudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhc2UgMjI6Yj1jLnVwZGF0ZVF1ZXVlO2I9bnVsbCE9PWI/Yi5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWIpe2E9Yj1iLm5leHQ7ZG97aWYoMz09PShhLnRhZyYzKSl7dmFyIGQ9YS5jcmVhdGU7YS5kZXN0cm95PWQoKX1hPWEubmV4dH13aGlsZShhIT09Yil9Yj1jLnVwZGF0ZVF1ZXVlO2I9bnVsbCE9PWI/Yi5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWIpe2E9Yj1iLm5leHQ7ZG97dmFyIGU9YTtkPWUubmV4dDtlPWUudGFnOzAhPT0oZSY0KSYmMCE9PShlJjEpJiYoWmkoYyxhKSwkaShjLGEpKTthPWR9d2hpbGUoYSE9PWIpfXJldHVybjtjYXNlIDE6YT1jLnN0YXRlTm9kZTtjLmZsYWdzJjQmJihudWxsPT09Yj9hLmNvbXBvbmVudERpZE1vdW50KCk6KGQ9Yy5lbGVtZW50VHlwZT09PWMudHlwZT9iLm1lbW9pemVkUHJvcHM6bGcoYy50eXBlLGIubWVtb2l6ZWRQcm9wcyksYS5jb21wb25lbnREaWRVcGRhdGUoZCxcbmIubWVtb2l6ZWRTdGF0ZSxhLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKSkpO2I9Yy51cGRhdGVRdWV1ZTtudWxsIT09YiYmRWcoYyxiLGEpO3JldHVybjtjYXNlIDM6Yj1jLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthPW51bGw7aWYobnVsbCE9PWMuY2hpbGQpc3dpdGNoKGMuY2hpbGQudGFnKXtjYXNlIDU6YT1jLmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6YT1jLmNoaWxkLnN0YXRlTm9kZX1FZyhjLGIsYSl9cmV0dXJuO2Nhc2UgNTphPWMuc3RhdGVOb2RlO251bGw9PT1iJiZjLmZsYWdzJjQmJm1mKGMudHlwZSxjLm1lbW9pemVkUHJvcHMpJiZhLmZvY3VzKCk7cmV0dXJuO2Nhc2UgNjpyZXR1cm47Y2FzZSA0OnJldHVybjtjYXNlIDEyOnJldHVybjtjYXNlIDEzOm51bGw9PT1jLm1lbW9pemVkU3RhdGUmJihjPWMuYWx0ZXJuYXRlLG51bGwhPT1jJiYoYz1jLm1lbW9pemVkU3RhdGUsbnVsbCE9PWMmJihjPWMuZGVoeWRyYXRlZCxudWxsIT09YyYmQ2MoYykpKSk7XG5yZXR1cm47Y2FzZSAxOTpjYXNlIDE3OmNhc2UgMjA6Y2FzZSAyMTpjYXNlIDIzOmNhc2UgMjQ6cmV0dXJufXRocm93IEVycm9yKHkoMTYzKSk7fVxuZnVuY3Rpb24gYWooYSxiKXtmb3IodmFyIGM9YTs7KXtpZig1PT09Yy50YWcpe3ZhciBkPWMuc3RhdGVOb2RlO2lmKGIpZD1kLnN0eWxlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLnNldFByb3BlcnR5P2Quc2V0UHJvcGVydHkoXCJkaXNwbGF5XCIsXCJub25lXCIsXCJpbXBvcnRhbnRcIik6ZC5kaXNwbGF5PVwibm9uZVwiO2Vsc2V7ZD1jLnN0YXRlTm9kZTt2YXIgZT1jLm1lbW9pemVkUHJvcHMuc3R5bGU7ZT12b2lkIDAhPT1lJiZudWxsIT09ZSYmZS5oYXNPd25Qcm9wZXJ0eShcImRpc3BsYXlcIik/ZS5kaXNwbGF5Om51bGw7ZC5zdHlsZS5kaXNwbGF5PXNiKFwiZGlzcGxheVwiLGUpfX1lbHNlIGlmKDY9PT1jLnRhZyljLnN0YXRlTm9kZS5ub2RlVmFsdWU9Yj9cIlwiOmMubWVtb2l6ZWRQcm9wcztlbHNlIGlmKCgyMyE9PWMudGFnJiYyNCE9PWMudGFnfHxudWxsPT09Yy5tZW1vaXplZFN0YXRlfHxjPT09YSkmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09XG5hKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1hKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fVxuZnVuY3Rpb24gYmooYSxiKXtpZihNZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIE1mLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtNZi5vbkNvbW1pdEZpYmVyVW5tb3VudChMZixiKX1jYXRjaChmKXt9c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAyMjphPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWEmJihhPWEubGFzdEVmZmVjdCxudWxsIT09YSkpe3ZhciBjPWE9YS5uZXh0O2Rve3ZhciBkPWMsZT1kLmRlc3Ryb3k7ZD1kLnRhZztpZih2b2lkIDAhPT1lKWlmKDAhPT0oZCY0KSlaaShiLGMpO2Vsc2V7ZD1iO3RyeXtlKCl9Y2F0Y2goZil7V2koZCxmKX19Yz1jLm5leHR9d2hpbGUoYyE9PWEpfWJyZWFrO2Nhc2UgMTpWaShiKTthPWIuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXthLnByb3BzPWIubWVtb2l6ZWRQcm9wcyxhLnN0YXRlPWIubWVtb2l6ZWRTdGF0ZSxhLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goZil7V2koYixcbmYpfWJyZWFrO2Nhc2UgNTpWaShiKTticmVhaztjYXNlIDQ6Y2ooYSxiKX19ZnVuY3Rpb24gZGooYSl7YS5hbHRlcm5hdGU9bnVsbDthLmNoaWxkPW51bGw7YS5kZXBlbmRlbmNpZXM9bnVsbDthLmZpcnN0RWZmZWN0PW51bGw7YS5sYXN0RWZmZWN0PW51bGw7YS5tZW1vaXplZFByb3BzPW51bGw7YS5tZW1vaXplZFN0YXRlPW51bGw7YS5wZW5kaW5nUHJvcHM9bnVsbDthLnJldHVybj1udWxsO2EudXBkYXRlUXVldWU9bnVsbH1mdW5jdGlvbiBlaihhKXtyZXR1cm4gNT09PWEudGFnfHwzPT09YS50YWd8fDQ9PT1hLnRhZ31cbmZ1bmN0aW9uIGZqKGEpe2E6e2Zvcih2YXIgYj1hLnJldHVybjtudWxsIT09Yjspe2lmKGVqKGIpKWJyZWFrIGE7Yj1iLnJldHVybn10aHJvdyBFcnJvcih5KDE2MCkpO312YXIgYz1iO2I9Yy5zdGF0ZU5vZGU7c3dpdGNoKGMudGFnKXtjYXNlIDU6dmFyIGQ9ITE7YnJlYWs7Y2FzZSAzOmI9Yi5jb250YWluZXJJbmZvO2Q9ITA7YnJlYWs7Y2FzZSA0OmI9Yi5jb250YWluZXJJbmZvO2Q9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih5KDE2MSkpO31jLmZsYWdzJjE2JiYocGIoYixcIlwiKSxjLmZsYWdzJj0tMTcpO2E6Yjpmb3IoYz1hOzspe2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8ZWooYy5yZXR1cm4pKXtjPW51bGw7YnJlYWsgYX1jPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Zm9yKGM9Yy5zaWJsaW5nOzUhPT1jLnRhZyYmNiE9PWMudGFnJiYxOCE9PWMudGFnOyl7aWYoYy5mbGFncyYyKWNvbnRpbnVlIGI7aWYobnVsbD09PVxuYy5jaGlsZHx8ND09PWMudGFnKWNvbnRpbnVlIGI7ZWxzZSBjLmNoaWxkLnJldHVybj1jLGM9Yy5jaGlsZH1pZighKGMuZmxhZ3MmMikpe2M9Yy5zdGF0ZU5vZGU7YnJlYWsgYX19ZD9naihhLGMsYik6aGooYSxjLGIpfVxuZnVuY3Rpb24gZ2ooYSxiLGMpe3ZhciBkPWEudGFnLGU9NT09PWR8fDY9PT1kO2lmKGUpYT1lP2Euc3RhdGVOb2RlOmEuc3RhdGVOb2RlLmluc3RhbmNlLGI/OD09PWMubm9kZVR5cGU/Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpOmMuaW5zZXJ0QmVmb3JlKGEsYik6KDg9PT1jLm5vZGVUeXBlPyhiPWMucGFyZW50Tm9kZSxiLmluc2VydEJlZm9yZShhLGMpKTooYj1jLGIuYXBwZW5kQ2hpbGQoYSkpLGM9Yy5fcmVhY3RSb290Q29udGFpbmVyLG51bGwhPT1jJiZ2b2lkIDAhPT1jfHxudWxsIT09Yi5vbmNsaWNrfHwoYi5vbmNsaWNrPWpmKSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKGdqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspZ2ooYSxiLGMpLGE9YS5zaWJsaW5nfVxuZnVuY3Rpb24gaGooYSxiLGMpe3ZhciBkPWEudGFnLGU9NT09PWR8fDY9PT1kO2lmKGUpYT1lP2Euc3RhdGVOb2RlOmEuc3RhdGVOb2RlLmluc3RhbmNlLGI/Yy5pbnNlcnRCZWZvcmUoYSxiKTpjLmFwcGVuZENoaWxkKGEpO2Vsc2UgaWYoNCE9PWQmJihhPWEuY2hpbGQsbnVsbCE9PWEpKWZvcihoaihhLGIsYyksYT1hLnNpYmxpbmc7bnVsbCE9PWE7KWhqKGEsYixjKSxhPWEuc2libGluZ31cbmZ1bmN0aW9uIGNqKGEsYil7Zm9yKHZhciBjPWIsZD0hMSxlLGY7Oyl7aWYoIWQpe2Q9Yy5yZXR1cm47YTpmb3IoOzspe2lmKG51bGw9PT1kKXRocm93IEVycm9yKHkoMTYwKSk7ZT1kLnN0YXRlTm9kZTtzd2l0Y2goZC50YWcpe2Nhc2UgNTpmPSExO2JyZWFrIGE7Y2FzZSAzOmU9ZS5jb250YWluZXJJbmZvO2Y9ITA7YnJlYWsgYTtjYXNlIDQ6ZT1lLmNvbnRhaW5lckluZm87Zj0hMDticmVhayBhfWQ9ZC5yZXR1cm59ZD0hMH1pZig1PT09Yy50YWd8fDY9PT1jLnRhZyl7YTpmb3IodmFyIGc9YSxoPWMsaz1oOzspaWYoYmooZyxrKSxudWxsIT09ay5jaGlsZCYmNCE9PWsudGFnKWsuY2hpbGQucmV0dXJuPWssaz1rLmNoaWxkO2Vsc2V7aWYoaz09PWgpYnJlYWsgYTtmb3IoO251bGw9PT1rLnNpYmxpbmc7KXtpZihudWxsPT09ay5yZXR1cm58fGsucmV0dXJuPT09aClicmVhayBhO2s9ay5yZXR1cm59ay5zaWJsaW5nLnJldHVybj1rLnJldHVybjtrPWsuc2libGluZ31mPyhnPWUsaD1jLnN0YXRlTm9kZSxcbjg9PT1nLm5vZGVUeXBlP2cucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChoKTpnLnJlbW92ZUNoaWxkKGgpKTplLnJlbW92ZUNoaWxkKGMuc3RhdGVOb2RlKX1lbHNlIGlmKDQ9PT1jLnRhZyl7aWYobnVsbCE9PWMuY2hpbGQpe2U9Yy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztmPSEwO2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfX1lbHNlIGlmKGJqKGEsYyksbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1iKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1iKXJldHVybjtjPWMucmV0dXJuOzQ9PT1jLnRhZyYmKGQ9ITEpfWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fVxuZnVuY3Rpb24gaWooYSxiKXtzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDIyOnZhciBjPWIudXBkYXRlUXVldWU7Yz1udWxsIT09Yz9jLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yyl7dmFyIGQ9Yz1jLm5leHQ7ZG8gMz09PShkLnRhZyYzKSYmKGE9ZC5kZXN0cm95LGQuZGVzdHJveT12b2lkIDAsdm9pZCAwIT09YSYmYSgpKSxkPWQubmV4dDt3aGlsZShkIT09Yyl9cmV0dXJuO2Nhc2UgMTpyZXR1cm47Y2FzZSA1OmM9Yi5zdGF0ZU5vZGU7aWYobnVsbCE9Yyl7ZD1iLm1lbW9pemVkUHJvcHM7dmFyIGU9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOmQ7YT1iLnR5cGU7dmFyIGY9Yi51cGRhdGVRdWV1ZTtiLnVwZGF0ZVF1ZXVlPW51bGw7aWYobnVsbCE9PWYpe2NbeGZdPWQ7XCJpbnB1dFwiPT09YSYmXCJyYWRpb1wiPT09ZC50eXBlJiZudWxsIT1kLm5hbWUmJiRhKGMsZCk7d2IoYSxlKTtiPXdiKGEsZCk7Zm9yKGU9MDtlPGYubGVuZ3RoO2UrPVxuMil7dmFyIGc9ZltlXSxoPWZbZSsxXTtcInN0eWxlXCI9PT1nP3RiKGMsaCk6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09Zz9vYihjLGgpOlwiY2hpbGRyZW5cIj09PWc/cGIoYyxoKTpxYShjLGcsaCxiKX1zd2l0Y2goYSl7Y2FzZSBcImlucHV0XCI6YWIoYyxkKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjppYihjLGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphPWMuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSxjLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFkLm11bHRpcGxlLGY9ZC52YWx1ZSxudWxsIT1mP2ZiKGMsISFkLm11bHRpcGxlLGYsITEpOmEhPT0hIWQubXVsdGlwbGUmJihudWxsIT1kLmRlZmF1bHRWYWx1ZT9mYihjLCEhZC5tdWx0aXBsZSxkLmRlZmF1bHRWYWx1ZSwhMCk6ZmIoYywhIWQubXVsdGlwbGUsZC5tdWx0aXBsZT9bXTpcIlwiLCExKSl9fX1yZXR1cm47Y2FzZSA2OmlmKG51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih5KDE2MikpO2Iuc3RhdGVOb2RlLm5vZGVWYWx1ZT1cbmIubWVtb2l6ZWRQcm9wcztyZXR1cm47Y2FzZSAzOmM9Yi5zdGF0ZU5vZGU7Yy5oeWRyYXRlJiYoYy5oeWRyYXRlPSExLENjKGMuY29udGFpbmVySW5mbykpO3JldHVybjtjYXNlIDEyOnJldHVybjtjYXNlIDEzOm51bGwhPT1iLm1lbW9pemVkU3RhdGUmJihqaj1PKCksYWooYi5jaGlsZCwhMCkpO2tqKGIpO3JldHVybjtjYXNlIDE5OmtqKGIpO3JldHVybjtjYXNlIDE3OnJldHVybjtjYXNlIDIzOmNhc2UgMjQ6YWooYixudWxsIT09Yi5tZW1vaXplZFN0YXRlKTtyZXR1cm59dGhyb3cgRXJyb3IoeSgxNjMpKTt9ZnVuY3Rpb24ga2ooYSl7dmFyIGI9YS51cGRhdGVRdWV1ZTtpZihudWxsIT09Yil7YS51cGRhdGVRdWV1ZT1udWxsO3ZhciBjPWEuc3RhdGVOb2RlO251bGw9PT1jJiYoYz1hLnN0YXRlTm9kZT1uZXcgVWkpO2IuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgZD1sai5iaW5kKG51bGwsYSxiKTtjLmhhcyhiKXx8KGMuYWRkKGIpLGIudGhlbihkLGQpKX0pfX1cbmZ1bmN0aW9uIG1qKGEsYil7cmV0dXJuIG51bGwhPT1hJiYoYT1hLm1lbW9pemVkU3RhdGUsbnVsbD09PWF8fG51bGwhPT1hLmRlaHlkcmF0ZWQpPyhiPWIubWVtb2l6ZWRTdGF0ZSxudWxsIT09YiYmbnVsbD09PWIuZGVoeWRyYXRlZCk6ITF9dmFyIG5qPU1hdGguY2VpbCxvaj1yYS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHBqPXJhLlJlYWN0Q3VycmVudE93bmVyLFg9MCxVPW51bGwsWT1udWxsLFc9MCxxaj0wLHJqPUJmKDApLFY9MCxzaj1udWxsLHRqPTAsRGc9MCxIaT0wLHVqPTAsdmo9bnVsbCxqaj0wLEppPUluZmluaXR5O2Z1bmN0aW9uIHdqKCl7Smk9TygpKzUwMH12YXIgWj1udWxsLFFpPSExLFJpPW51bGwsVGk9bnVsbCx4aj0hMSx5aj1udWxsLHpqPTkwLEFqPVtdLEJqPVtdLENqPW51bGwsRGo9MCxFaj1udWxsLEZqPS0xLEdqPTAsSGo9MCxJaj1udWxsLEpqPSExO2Z1bmN0aW9uIEhnKCl7cmV0dXJuIDAhPT0oWCY0OCk/TygpOi0xIT09Rmo/Rmo6Rmo9TygpfVxuZnVuY3Rpb24gSWcoYSl7YT1hLm1vZGU7aWYoMD09PShhJjIpKXJldHVybiAxO2lmKDA9PT0oYSY0KSlyZXR1cm4gOTk9PT1lZygpPzE6MjswPT09R2omJihHaj10aik7aWYoMCE9PWtnLnRyYW5zaXRpb24pezAhPT1IaiYmKEhqPW51bGwhPT12aj92ai5wZW5kaW5nTGFuZXM6MCk7YT1Hajt2YXIgYj00MTg2MTEyJn5IajtiJj0tYjswPT09YiYmKGE9NDE4NjExMiZ+YSxiPWEmLWEsMD09PWImJihiPTgxOTIpKTtyZXR1cm4gYn1hPWVnKCk7MCE9PShYJjQpJiY5OD09PWE/YT1YYygxMixHaik6KGE9U2MoYSksYT1YYyhhLEdqKSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBKZyhhLGIsYyl7aWYoNTA8RGopdGhyb3cgRGo9MCxFaj1udWxsLEVycm9yKHkoMTg1KSk7YT1LaihhLGIpO2lmKG51bGw9PT1hKXJldHVybiBudWxsOyRjKGEsYixjKTthPT09VSYmKEhpfD1iLDQ9PT1WJiZJaShhLFcpKTt2YXIgZD1lZygpOzE9PT1iPzAhPT0oWCY4KSYmMD09PShYJjQ4KT9MaihhKTooTWooYSxjKSwwPT09WCYmKHdqKCksaWcoKSkpOigwPT09KFgmNCl8fDk4IT09ZCYmOTkhPT1kfHwobnVsbD09PUNqP0NqPW5ldyBTZXQoW2FdKTpDai5hZGQoYSkpLE1qKGEsYykpO3ZqPWF9ZnVuY3Rpb24gS2ooYSxiKXthLmxhbmVzfD1iO3ZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1jJiYoYy5sYW5lc3w9Yik7Yz1hO2ZvcihhPWEucmV0dXJuO251bGwhPT1hOylhLmNoaWxkTGFuZXN8PWIsYz1hLmFsdGVybmF0ZSxudWxsIT09YyYmKGMuY2hpbGRMYW5lc3w9YiksYz1hLGE9YS5yZXR1cm47cmV0dXJuIDM9PT1jLnRhZz9jLnN0YXRlTm9kZTpudWxsfVxuZnVuY3Rpb24gTWooYSxiKXtmb3IodmFyIGM9YS5jYWxsYmFja05vZGUsZD1hLnN1c3BlbmRlZExhbmVzLGU9YS5waW5nZWRMYW5lcyxmPWEuZXhwaXJhdGlvblRpbWVzLGc9YS5wZW5kaW5nTGFuZXM7MDxnOyl7dmFyIGg9MzEtVmMoZyksaz0xPDxoLGw9ZltoXTtpZigtMT09PWwpe2lmKDA9PT0oayZkKXx8MCE9PShrJmUpKXtsPWI7UmMoayk7dmFyIG49RjtmW2hdPTEwPD1uP2wrMjUwOjY8PW4/bCs1RTM6LTF9fWVsc2UgbDw9YiYmKGEuZXhwaXJlZExhbmVzfD1rKTtnJj1+a31kPVVjKGEsYT09PVU/VzowKTtiPUY7aWYoMD09PWQpbnVsbCE9PWMmJihjIT09WmYmJlBmKGMpLGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja1ByaW9yaXR5PTApO2Vsc2V7aWYobnVsbCE9PWMpe2lmKGEuY2FsbGJhY2tQcmlvcml0eT09PWIpcmV0dXJuO2MhPT1aZiYmUGYoYyl9MTU9PT1iPyhjPUxqLmJpbmQobnVsbCxhKSxudWxsPT09YWc/KGFnPVtjXSxiZz1PZihVZixqZykpOmFnLnB1c2goYyksXG5jPVpmKToxND09PWI/Yz1oZyg5OSxMai5iaW5kKG51bGwsYSkpOihjPVRjKGIpLGM9aGcoYyxOai5iaW5kKG51bGwsYSkpKTthLmNhbGxiYWNrUHJpb3JpdHk9YjthLmNhbGxiYWNrTm9kZT1jfX1cbmZ1bmN0aW9uIE5qKGEpe0ZqPS0xO0hqPUdqPTA7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMyNykpO3ZhciBiPWEuY2FsbGJhY2tOb2RlO2lmKE9qKCkmJmEuY2FsbGJhY2tOb2RlIT09YilyZXR1cm4gbnVsbDt2YXIgYz1VYyhhLGE9PT1VP1c6MCk7aWYoMD09PWMpcmV0dXJuIG51bGw7dmFyIGQ9Yzt2YXIgZT1YO1h8PTE2O3ZhciBmPVBqKCk7aWYoVSE9PWF8fFchPT1kKXdqKCksUWooYSxkKTtkbyB0cnl7UmooKTticmVha31jYXRjaChoKXtTaihhLGgpfXdoaWxlKDEpO3FnKCk7b2ouY3VycmVudD1mO1g9ZTtudWxsIT09WT9kPTA6KFU9bnVsbCxXPTAsZD1WKTtpZigwIT09KHRqJkhpKSlRaihhLDApO2Vsc2UgaWYoMCE9PWQpezI9PT1kJiYoWHw9NjQsYS5oeWRyYXRlJiYoYS5oeWRyYXRlPSExLHFmKGEuY29udGFpbmVySW5mbykpLGM9V2MoYSksMCE9PWMmJihkPVRqKGEsYykpKTtpZigxPT09ZCl0aHJvdyBiPXNqLFFqKGEsMCksSWkoYSxjKSxNaihhLE8oKSksYjthLmZpbmlzaGVkV29yaz1cbmEuY3VycmVudC5hbHRlcm5hdGU7YS5maW5pc2hlZExhbmVzPWM7c3dpdGNoKGQpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IoeSgzNDUpKTtjYXNlIDI6VWooYSk7YnJlYWs7Y2FzZSAzOklpKGEsYyk7aWYoKGMmNjI5MTQ1NjApPT09YyYmKGQ9amorNTAwLU8oKSwxMDxkKSl7aWYoMCE9PVVjKGEsMCkpYnJlYWs7ZT1hLnN1c3BlbmRlZExhbmVzO2lmKChlJmMpIT09Yyl7SGcoKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmU7YnJlYWt9YS50aW1lb3V0SGFuZGxlPW9mKFVqLmJpbmQobnVsbCxhKSxkKTticmVha31VaihhKTticmVhaztjYXNlIDQ6SWkoYSxjKTtpZigoYyY0MTg2MTEyKT09PWMpYnJlYWs7ZD1hLmV2ZW50VGltZXM7Zm9yKGU9LTE7MDxjOyl7dmFyIGc9MzEtVmMoYyk7Zj0xPDxnO2c9ZFtnXTtnPmUmJihlPWcpO2MmPX5mfWM9ZTtjPU8oKS1jO2M9KDEyMD5jPzEyMDo0ODA+Yz80ODA6MTA4MD5jPzEwODA6MTkyMD5jPzE5MjA6M0UzPmM/M0UzOjQzMjA+XG5jPzQzMjA6MTk2MCpuaihjLzE5NjApKS1jO2lmKDEwPGMpe2EudGltZW91dEhhbmRsZT1vZihVai5iaW5kKG51bGwsYSksYyk7YnJlYWt9VWooYSk7YnJlYWs7Y2FzZSA1OlVqKGEpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzMjkpKTt9fU1qKGEsTygpKTtyZXR1cm4gYS5jYWxsYmFja05vZGU9PT1iP05qLmJpbmQobnVsbCxhKTpudWxsfWZ1bmN0aW9uIElpKGEsYil7YiY9fnVqO2ImPX5IaTthLnN1c3BlbmRlZExhbmVzfD1iO2EucGluZ2VkTGFuZXMmPX5iO2ZvcihhPWEuZXhwaXJhdGlvblRpbWVzOzA8Yjspe3ZhciBjPTMxLVZjKGIpLGQ9MTw8YzthW2NdPS0xO2ImPX5kfX1cbmZ1bmN0aW9uIExqKGEpe2lmKDAhPT0oWCY0OCkpdGhyb3cgRXJyb3IoeSgzMjcpKTtPaigpO2lmKGE9PT1VJiYwIT09KGEuZXhwaXJlZExhbmVzJlcpKXt2YXIgYj1XO3ZhciBjPVRqKGEsYik7MCE9PSh0aiZIaSkmJihiPVVjKGEsYiksYz1UaihhLGIpKX1lbHNlIGI9VWMoYSwwKSxjPVRqKGEsYik7MCE9PWEudGFnJiYyPT09YyYmKFh8PTY0LGEuaHlkcmF0ZSYmKGEuaHlkcmF0ZT0hMSxxZihhLmNvbnRhaW5lckluZm8pKSxiPVdjKGEpLDAhPT1iJiYoYz1UaihhLGIpKSk7aWYoMT09PWMpdGhyb3cgYz1zaixRaihhLDApLElpKGEsYiksTWooYSxPKCkpLGM7YS5maW5pc2hlZFdvcms9YS5jdXJyZW50LmFsdGVybmF0ZTthLmZpbmlzaGVkTGFuZXM9YjtVaihhKTtNaihhLE8oKSk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBWaigpe2lmKG51bGwhPT1Dail7dmFyIGE9Q2o7Q2o9bnVsbDthLmZvckVhY2goZnVuY3Rpb24oYSl7YS5leHBpcmVkTGFuZXN8PTI0JmEucGVuZGluZ0xhbmVzO01qKGEsTygpKX0pfWlnKCl9ZnVuY3Rpb24gV2ooYSxiKXt2YXIgYz1YO1h8PTE7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7WD1jLDA9PT1YJiYod2ooKSxpZygpKX19ZnVuY3Rpb24gWGooYSxiKXt2YXIgYz1YO1gmPS0yO1h8PTg7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7WD1jLDA9PT1YJiYod2ooKSxpZygpKX19ZnVuY3Rpb24gbmkoYSxiKXtJKHJqLHFqKTtxanw9Yjt0anw9Yn1mdW5jdGlvbiBLaSgpe3FqPXJqLmN1cnJlbnQ7SChyail9XG5mdW5jdGlvbiBRaihhLGIpe2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7dmFyIGM9YS50aW1lb3V0SGFuZGxlOy0xIT09YyYmKGEudGltZW91dEhhbmRsZT0tMSxwZihjKSk7aWYobnVsbCE9PVkpZm9yKGM9WS5yZXR1cm47bnVsbCE9PWM7KXt2YXIgZD1jO3N3aXRjaChkLnRhZyl7Y2FzZSAxOmQ9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzO251bGwhPT1kJiZ2b2lkIDAhPT1kJiZHZigpO2JyZWFrO2Nhc2UgMzpmaCgpO0goTik7SChNKTt1aCgpO2JyZWFrO2Nhc2UgNTpoaChkKTticmVhaztjYXNlIDQ6ZmgoKTticmVhaztjYXNlIDEzOkgoUCk7YnJlYWs7Y2FzZSAxOTpIKFApO2JyZWFrO2Nhc2UgMTA6cmcoZCk7YnJlYWs7Y2FzZSAyMzpjYXNlIDI0OktpKCl9Yz1jLnJldHVybn1VPWE7WT1UZyhhLmN1cnJlbnQsbnVsbCk7Vz1xaj10aj1iO1Y9MDtzaj1udWxsO3VqPUhpPURnPTB9XG5mdW5jdGlvbiBTaihhLGIpe2Rve3ZhciBjPVk7dHJ5e3FnKCk7dmguY3VycmVudD1HaDtpZih5aCl7Zm9yKHZhciBkPVIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZDspe3ZhciBlPWQucXVldWU7bnVsbCE9PWUmJihlLnBlbmRpbmc9bnVsbCk7ZD1kLm5leHR9eWg9ITF9eGg9MDtUPVM9Uj1udWxsO3poPSExO3BqLmN1cnJlbnQ9bnVsbDtpZihudWxsPT09Y3x8bnVsbD09PWMucmV0dXJuKXtWPTE7c2o9YjtZPW51bGw7YnJlYWt9YTp7dmFyIGY9YSxnPWMucmV0dXJuLGg9YyxrPWI7Yj1XO2guZmxhZ3N8PTIwNDg7aC5maXJzdEVmZmVjdD1oLmxhc3RFZmZlY3Q9bnVsbDtpZihudWxsIT09ayYmXCJvYmplY3RcIj09PXR5cGVvZiBrJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygay50aGVuKXt2YXIgbD1rO2lmKDA9PT0oaC5tb2RlJjIpKXt2YXIgbj1oLmFsdGVybmF0ZTtuPyhoLnVwZGF0ZVF1ZXVlPW4udXBkYXRlUXVldWUsaC5tZW1vaXplZFN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxoLmxhbmVzPW4ubGFuZXMpOlxuKGgudXBkYXRlUXVldWU9bnVsbCxoLm1lbW9pemVkU3RhdGU9bnVsbCl9dmFyIEE9MCE9PShQLmN1cnJlbnQmMSkscD1nO2Rve3ZhciBDO2lmKEM9MTM9PT1wLnRhZyl7dmFyIHg9cC5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT14KUM9bnVsbCE9PXguZGVoeWRyYXRlZD8hMDohMTtlbHNle3ZhciB3PXAubWVtb2l6ZWRQcm9wcztDPXZvaWQgMD09PXcuZmFsbGJhY2s/ITE6ITAhPT13LnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrPyEwOkE/ITE6ITB9fWlmKEMpe3ZhciB6PXAudXBkYXRlUXVldWU7aWYobnVsbD09PXope3ZhciB1PW5ldyBTZXQ7dS5hZGQobCk7cC51cGRhdGVRdWV1ZT11fWVsc2Ugei5hZGQobCk7aWYoMD09PShwLm1vZGUmMikpe3AuZmxhZ3N8PTY0O2guZmxhZ3N8PTE2Mzg0O2guZmxhZ3MmPS0yOTgxO2lmKDE9PT1oLnRhZylpZihudWxsPT09aC5hbHRlcm5hdGUpaC50YWc9MTc7ZWxzZXt2YXIgdD16ZygtMSwxKTt0LnRhZz0yO0FnKGgsdCl9aC5sYW5lc3w9MTticmVhayBhfWs9XG52b2lkIDA7aD1iO3ZhciBxPWYucGluZ0NhY2hlO251bGw9PT1xPyhxPWYucGluZ0NhY2hlPW5ldyBPaSxrPW5ldyBTZXQscS5zZXQobCxrKSk6KGs9cS5nZXQobCksdm9pZCAwPT09ayYmKGs9bmV3IFNldCxxLnNldChsLGspKSk7aWYoIWsuaGFzKGgpKXtrLmFkZChoKTt2YXIgdj1Zai5iaW5kKG51bGwsZixsLGgpO2wudGhlbih2LHYpfXAuZmxhZ3N8PTQwOTY7cC5sYW5lcz1iO2JyZWFrIGF9cD1wLnJldHVybn13aGlsZShudWxsIT09cCk7az1FcnJvcigoUmEoaC50eXBlKXx8XCJBIFJlYWN0IGNvbXBvbmVudFwiKStcIiBzdXNwZW5kZWQgd2hpbGUgcmVuZGVyaW5nLCBidXQgbm8gZmFsbGJhY2sgVUkgd2FzIHNwZWNpZmllZC5cXG5cXG5BZGQgYSA8U3VzcGVuc2UgZmFsbGJhY2s9Li4uPiBjb21wb25lbnQgaGlnaGVyIGluIHRoZSB0cmVlIHRvIHByb3ZpZGUgYSBsb2FkaW5nIGluZGljYXRvciBvciBwbGFjZWhvbGRlciB0byBkaXNwbGF5LlwiKX01IT09ViYmKFY9Mik7az1NaShrLGgpO3A9XG5nO2Rve3N3aXRjaChwLnRhZyl7Y2FzZSAzOmY9aztwLmZsYWdzfD00MDk2O2ImPS1iO3AubGFuZXN8PWI7dmFyIEo9UGkocCxmLGIpO0JnKHAsSik7YnJlYWsgYTtjYXNlIDE6Zj1rO3ZhciBLPXAudHlwZSxRPXAuc3RhdGVOb2RlO2lmKDA9PT0ocC5mbGFncyY2NCkmJihcImZ1bmN0aW9uXCI9PT10eXBlb2YgSy5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT1RJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgUS5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1UaXx8IVRpLmhhcyhRKSkpKXtwLmZsYWdzfD00MDk2O2ImPS1iO3AubGFuZXN8PWI7dmFyIEw9U2kocCxmLGIpO0JnKHAsTCk7YnJlYWsgYX19cD1wLnJldHVybn13aGlsZShudWxsIT09cCl9WmooYyl9Y2F0Y2godmEpe2I9dmE7WT09PWMmJm51bGwhPT1jJiYoWT1jPWMucmV0dXJuKTtjb250aW51ZX1icmVha313aGlsZSgxKX1cbmZ1bmN0aW9uIFBqKCl7dmFyIGE9b2ouY3VycmVudDtvai5jdXJyZW50PUdoO3JldHVybiBudWxsPT09YT9HaDphfWZ1bmN0aW9uIFRqKGEsYil7dmFyIGM9WDtYfD0xNjt2YXIgZD1QaigpO1U9PT1hJiZXPT09Ynx8UWooYSxiKTtkbyB0cnl7YWsoKTticmVha31jYXRjaChlKXtTaihhLGUpfXdoaWxlKDEpO3FnKCk7WD1jO29qLmN1cnJlbnQ9ZDtpZihudWxsIT09WSl0aHJvdyBFcnJvcih5KDI2MSkpO1U9bnVsbDtXPTA7cmV0dXJuIFZ9ZnVuY3Rpb24gYWsoKXtmb3IoO251bGwhPT1ZOyliayhZKX1mdW5jdGlvbiBSaigpe2Zvcig7bnVsbCE9PVkmJiFRZigpOyliayhZKX1mdW5jdGlvbiBiayhhKXt2YXIgYj1jayhhLmFsdGVybmF0ZSxhLHFqKTthLm1lbW9pemVkUHJvcHM9YS5wZW5kaW5nUHJvcHM7bnVsbD09PWI/WmooYSk6WT1iO3BqLmN1cnJlbnQ9bnVsbH1cbmZ1bmN0aW9uIFpqKGEpe3ZhciBiPWE7ZG97dmFyIGM9Yi5hbHRlcm5hdGU7YT1iLnJldHVybjtpZigwPT09KGIuZmxhZ3MmMjA0OCkpe2M9R2koYyxiLHFqKTtpZihudWxsIT09Yyl7WT1jO3JldHVybn1jPWI7aWYoMjQhPT1jLnRhZyYmMjMhPT1jLnRhZ3x8bnVsbD09PWMubWVtb2l6ZWRTdGF0ZXx8MCE9PShxaiYxMDczNzQxODI0KXx8MD09PShjLm1vZGUmNCkpe2Zvcih2YXIgZD0wLGU9Yy5jaGlsZDtudWxsIT09ZTspZHw9ZS5sYW5lc3xlLmNoaWxkTGFuZXMsZT1lLnNpYmxpbmc7Yy5jaGlsZExhbmVzPWR9bnVsbCE9PWEmJjA9PT0oYS5mbGFncyYyMDQ4KSYmKG51bGw9PT1hLmZpcnN0RWZmZWN0JiYoYS5maXJzdEVmZmVjdD1iLmZpcnN0RWZmZWN0KSxudWxsIT09Yi5sYXN0RWZmZWN0JiYobnVsbCE9PWEubGFzdEVmZmVjdCYmKGEubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWIuZmlyc3RFZmZlY3QpLGEubGFzdEVmZmVjdD1iLmxhc3RFZmZlY3QpLDE8Yi5mbGFncyYmKG51bGwhPT1cbmEubGFzdEVmZmVjdD9hLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1iOmEuZmlyc3RFZmZlY3Q9YixhLmxhc3RFZmZlY3Q9YikpfWVsc2V7Yz1MaShiKTtpZihudWxsIT09Yyl7Yy5mbGFncyY9MjA0NztZPWM7cmV0dXJufW51bGwhPT1hJiYoYS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9bnVsbCxhLmZsYWdzfD0yMDQ4KX1iPWIuc2libGluZztpZihudWxsIT09Yil7WT1iO3JldHVybn1ZPWI9YX13aGlsZShudWxsIT09Yik7MD09PVYmJihWPTUpfWZ1bmN0aW9uIFVqKGEpe3ZhciBiPWVnKCk7Z2coOTksZGsuYmluZChudWxsLGEsYikpO3JldHVybiBudWxsfVxuZnVuY3Rpb24gZGsoYSxiKXtkbyBPaigpO3doaWxlKG51bGwhPT15aik7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMyNykpO3ZhciBjPWEuZmluaXNoZWRXb3JrO2lmKG51bGw9PT1jKXJldHVybiBudWxsO2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7aWYoYz09PWEuY3VycmVudCl0aHJvdyBFcnJvcih5KDE3NykpO2EuY2FsbGJhY2tOb2RlPW51bGw7dmFyIGQ9Yy5sYW5lc3xjLmNoaWxkTGFuZXMsZT1kLGY9YS5wZW5kaW5nTGFuZXMmfmU7YS5wZW5kaW5nTGFuZXM9ZTthLnN1c3BlbmRlZExhbmVzPTA7YS5waW5nZWRMYW5lcz0wO2EuZXhwaXJlZExhbmVzJj1lO2EubXV0YWJsZVJlYWRMYW5lcyY9ZTthLmVudGFuZ2xlZExhbmVzJj1lO2U9YS5lbnRhbmdsZW1lbnRzO2Zvcih2YXIgZz1hLmV2ZW50VGltZXMsaD1hLmV4cGlyYXRpb25UaW1lczswPGY7KXt2YXIgaz0zMS1WYyhmKSxsPTE8PGs7ZVtrXT0wO2dba109LTE7aFtrXT0tMTtmJj1+bH1udWxsIT09XG5DaiYmMD09PShkJjI0KSYmQ2ouaGFzKGEpJiZDai5kZWxldGUoYSk7YT09PVUmJihZPVU9bnVsbCxXPTApOzE8Yy5mbGFncz9udWxsIT09Yy5sYXN0RWZmZWN0PyhjLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1jLGQ9Yy5maXJzdEVmZmVjdCk6ZD1jOmQ9Yy5maXJzdEVmZmVjdDtpZihudWxsIT09ZCl7ZT1YO1h8PTMyO3BqLmN1cnJlbnQ9bnVsbDtrZj1mZDtnPU5lKCk7aWYoT2UoZykpe2lmKFwic2VsZWN0aW9uU3RhcnRcImluIGcpaD17c3RhcnQ6Zy5zZWxlY3Rpb25TdGFydCxlbmQ6Zy5zZWxlY3Rpb25FbmR9O2Vsc2UgYTppZihoPShoPWcub3duZXJEb2N1bWVudCkmJmguZGVmYXVsdFZpZXd8fHdpbmRvdywobD1oLmdldFNlbGVjdGlvbiYmaC5nZXRTZWxlY3Rpb24oKSkmJjAhPT1sLnJhbmdlQ291bnQpe2g9bC5hbmNob3JOb2RlO2Y9bC5hbmNob3JPZmZzZXQ7az1sLmZvY3VzTm9kZTtsPWwuZm9jdXNPZmZzZXQ7dHJ5e2gubm9kZVR5cGUsay5ub2RlVHlwZX1jYXRjaCh2YSl7aD1udWxsO1xuYnJlYWsgYX12YXIgbj0wLEE9LTEscD0tMSxDPTAseD0wLHc9Zyx6PW51bGw7Yjpmb3IoOzspe2Zvcih2YXIgdTs7KXt3IT09aHx8MCE9PWYmJjMhPT13Lm5vZGVUeXBlfHwoQT1uK2YpO3chPT1rfHwwIT09bCYmMyE9PXcubm9kZVR5cGV8fChwPW4rbCk7Mz09PXcubm9kZVR5cGUmJihuKz13Lm5vZGVWYWx1ZS5sZW5ndGgpO2lmKG51bGw9PT0odT13LmZpcnN0Q2hpbGQpKWJyZWFrO3o9dzt3PXV9Zm9yKDs7KXtpZih3PT09ZylicmVhayBiO3o9PT1oJiYrK0M9PT1mJiYoQT1uKTt6PT09ayYmKyt4PT09bCYmKHA9bik7aWYobnVsbCE9PSh1PXcubmV4dFNpYmxpbmcpKWJyZWFrO3c9ejt6PXcucGFyZW50Tm9kZX13PXV9aD0tMT09PUF8fC0xPT09cD9udWxsOntzdGFydDpBLGVuZDpwfX1lbHNlIGg9bnVsbDtoPWh8fHtzdGFydDowLGVuZDowfX1lbHNlIGg9bnVsbDtsZj17Zm9jdXNlZEVsZW06ZyxzZWxlY3Rpb25SYW5nZTpofTtmZD0hMTtJaj1udWxsO0pqPSExO1o9ZDtkbyB0cnl7ZWsoKX1jYXRjaCh2YSl7aWYobnVsbD09PVxuWil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKFosdmEpO1o9Wi5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1aKTtJaj1udWxsO1o9ZDtkbyB0cnl7Zm9yKGc9YTtudWxsIT09Wjspe3ZhciB0PVouZmxhZ3M7dCYxNiYmcGIoWi5zdGF0ZU5vZGUsXCJcIik7aWYodCYxMjgpe3ZhciBxPVouYWx0ZXJuYXRlO2lmKG51bGwhPT1xKXt2YXIgdj1xLnJlZjtudWxsIT09diYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB2P3YobnVsbCk6di5jdXJyZW50PW51bGwpfX1zd2l0Y2godCYxMDM4KXtjYXNlIDI6ZmooWik7Wi5mbGFncyY9LTM7YnJlYWs7Y2FzZSA2OmZqKFopO1ouZmxhZ3MmPS0zO2lqKFouYWx0ZXJuYXRlLFopO2JyZWFrO2Nhc2UgMTAyNDpaLmZsYWdzJj0tMTAyNTticmVhaztjYXNlIDEwMjg6Wi5mbGFncyY9LTEwMjU7aWooWi5hbHRlcm5hdGUsWik7YnJlYWs7Y2FzZSA0OmlqKFouYWx0ZXJuYXRlLFopO2JyZWFrO2Nhc2UgODpoPVo7Y2ooZyxoKTt2YXIgSj1oLmFsdGVybmF0ZTtkaihoKTtudWxsIT09XG5KJiZkaihKKX1aPVoubmV4dEVmZmVjdH19Y2F0Y2godmEpe2lmKG51bGw9PT1aKXRocm93IEVycm9yKHkoMzMwKSk7V2koWix2YSk7Wj1aLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVopO3Y9bGY7cT1OZSgpO3Q9di5mb2N1c2VkRWxlbTtnPXYuc2VsZWN0aW9uUmFuZ2U7aWYocSE9PXQmJnQmJnQub3duZXJEb2N1bWVudCYmTWUodC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0KSl7bnVsbCE9PWcmJk9lKHQpJiYocT1nLnN0YXJ0LHY9Zy5lbmQsdm9pZCAwPT09diYmKHY9cSksXCJzZWxlY3Rpb25TdGFydFwiaW4gdD8odC5zZWxlY3Rpb25TdGFydD1xLHQuc2VsZWN0aW9uRW5kPU1hdGgubWluKHYsdC52YWx1ZS5sZW5ndGgpKToodj0ocT10Lm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KSYmcS5kZWZhdWx0Vmlld3x8d2luZG93LHYuZ2V0U2VsZWN0aW9uJiYodj12LmdldFNlbGVjdGlvbigpLGg9dC50ZXh0Q29udGVudC5sZW5ndGgsSj1NYXRoLm1pbihnLnN0YXJ0LGgpLGc9dm9pZCAwPT09XG5nLmVuZD9KOk1hdGgubWluKGcuZW5kLGgpLCF2LmV4dGVuZCYmSj5nJiYoaD1nLGc9SixKPWgpLGg9TGUodCxKKSxmPUxlKHQsZyksaCYmZiYmKDEhPT12LnJhbmdlQ291bnR8fHYuYW5jaG9yTm9kZSE9PWgubm9kZXx8di5hbmNob3JPZmZzZXQhPT1oLm9mZnNldHx8di5mb2N1c05vZGUhPT1mLm5vZGV8fHYuZm9jdXNPZmZzZXQhPT1mLm9mZnNldCkmJihxPXEuY3JlYXRlUmFuZ2UoKSxxLnNldFN0YXJ0KGgubm9kZSxoLm9mZnNldCksdi5yZW1vdmVBbGxSYW5nZXMoKSxKPmc/KHYuYWRkUmFuZ2UocSksdi5leHRlbmQoZi5ub2RlLGYub2Zmc2V0KSk6KHEuc2V0RW5kKGYubm9kZSxmLm9mZnNldCksdi5hZGRSYW5nZShxKSkpKSkpO3E9W107Zm9yKHY9dDt2PXYucGFyZW50Tm9kZTspMT09PXYubm9kZVR5cGUmJnEucHVzaCh7ZWxlbWVudDp2LGxlZnQ6di5zY3JvbGxMZWZ0LHRvcDp2LnNjcm9sbFRvcH0pO1wiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmZvY3VzJiZ0LmZvY3VzKCk7Zm9yKHQ9XG4wO3Q8cS5sZW5ndGg7dCsrKXY9cVt0XSx2LmVsZW1lbnQuc2Nyb2xsTGVmdD12LmxlZnQsdi5lbGVtZW50LnNjcm9sbFRvcD12LnRvcH1mZD0hIWtmO2xmPWtmPW51bGw7YS5jdXJyZW50PWM7Wj1kO2RvIHRyeXtmb3IodD1hO251bGwhPT1aOyl7dmFyIEs9Wi5mbGFncztLJjM2JiZZaSh0LFouYWx0ZXJuYXRlLFopO2lmKEsmMTI4KXtxPXZvaWQgMDt2YXIgUT1aLnJlZjtpZihudWxsIT09USl7dmFyIEw9Wi5zdGF0ZU5vZGU7c3dpdGNoKFoudGFnKXtjYXNlIDU6cT1MO2JyZWFrO2RlZmF1bHQ6cT1MfVwiZnVuY3Rpb25cIj09PXR5cGVvZiBRP1EocSk6US5jdXJyZW50PXF9fVo9Wi5uZXh0RWZmZWN0fX1jYXRjaCh2YSl7aWYobnVsbD09PVopdGhyb3cgRXJyb3IoeSgzMzApKTtXaShaLHZhKTtaPVoubmV4dEVmZmVjdH13aGlsZShudWxsIT09Wik7Wj1udWxsOyRmKCk7WD1lfWVsc2UgYS5jdXJyZW50PWM7aWYoeGopeGo9ITEseWo9YSx6aj1iO2Vsc2UgZm9yKFo9ZDtudWxsIT09WjspYj1cbloubmV4dEVmZmVjdCxaLm5leHRFZmZlY3Q9bnVsbCxaLmZsYWdzJjgmJihLPVosSy5zaWJsaW5nPW51bGwsSy5zdGF0ZU5vZGU9bnVsbCksWj1iO2Q9YS5wZW5kaW5nTGFuZXM7MD09PWQmJihUaT1udWxsKTsxPT09ZD9hPT09RWo/RGorKzooRGo9MCxFaj1hKTpEaj0wO2M9Yy5zdGF0ZU5vZGU7aWYoTWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBNZi5vbkNvbW1pdEZpYmVyUm9vdCl0cnl7TWYub25Db21taXRGaWJlclJvb3QoTGYsYyx2b2lkIDAsNjQ9PT0oYy5jdXJyZW50LmZsYWdzJjY0KSl9Y2F0Y2godmEpe31NaihhLE8oKSk7aWYoUWkpdGhyb3cgUWk9ITEsYT1SaSxSaT1udWxsLGE7aWYoMCE9PShYJjgpKXJldHVybiBudWxsO2lnKCk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBlaygpe2Zvcig7bnVsbCE9PVo7KXt2YXIgYT1aLmFsdGVybmF0ZTtKanx8bnVsbD09PUlqfHwoMCE9PShaLmZsYWdzJjgpP2RjKFosSWopJiYoSmo9ITApOjEzPT09Wi50YWcmJm1qKGEsWikmJmRjKFosSWopJiYoSmo9ITApKTt2YXIgYj1aLmZsYWdzOzAhPT0oYiYyNTYpJiZYaShhLFopOzA9PT0oYiY1MTIpfHx4anx8KHhqPSEwLGhnKDk3LGZ1bmN0aW9uKCl7T2ooKTtyZXR1cm4gbnVsbH0pKTtaPVoubmV4dEVmZmVjdH19ZnVuY3Rpb24gT2ooKXtpZig5MCE9PXpqKXt2YXIgYT05Nzx6aj85Nzp6ajt6aj05MDtyZXR1cm4gZ2coYSxmayl9cmV0dXJuITF9ZnVuY3Rpb24gJGkoYSxiKXtBai5wdXNoKGIsYSk7eGp8fCh4aj0hMCxoZyg5NyxmdW5jdGlvbigpe09qKCk7cmV0dXJuIG51bGx9KSl9ZnVuY3Rpb24gWmkoYSxiKXtCai5wdXNoKGIsYSk7eGp8fCh4aj0hMCxoZyg5NyxmdW5jdGlvbigpe09qKCk7cmV0dXJuIG51bGx9KSl9XG5mdW5jdGlvbiBmaygpe2lmKG51bGw9PT15ailyZXR1cm4hMTt2YXIgYT15ajt5aj1udWxsO2lmKDAhPT0oWCY0OCkpdGhyb3cgRXJyb3IoeSgzMzEpKTt2YXIgYj1YO1h8PTMyO3ZhciBjPUJqO0JqPVtdO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCs9Mil7dmFyIGU9Y1tkXSxmPWNbZCsxXSxnPWUuZGVzdHJveTtlLmRlc3Ryb3k9dm9pZCAwO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnKXRyeXtnKCl9Y2F0Y2goayl7aWYobnVsbD09PWYpdGhyb3cgRXJyb3IoeSgzMzApKTtXaShmLGspfX1jPUFqO0FqPVtdO2ZvcihkPTA7ZDxjLmxlbmd0aDtkKz0yKXtlPWNbZF07Zj1jW2QrMV07dHJ5e3ZhciBoPWUuY3JlYXRlO2UuZGVzdHJveT1oKCl9Y2F0Y2goayl7aWYobnVsbD09PWYpdGhyb3cgRXJyb3IoeSgzMzApKTtXaShmLGspfX1mb3IoaD1hLmN1cnJlbnQuZmlyc3RFZmZlY3Q7bnVsbCE9PWg7KWE9aC5uZXh0RWZmZWN0LGgubmV4dEVmZmVjdD1udWxsLGguZmxhZ3MmOCYmKGguc2libGluZz1cbm51bGwsaC5zdGF0ZU5vZGU9bnVsbCksaD1hO1g9YjtpZygpO3JldHVybiEwfWZ1bmN0aW9uIGdrKGEsYixjKXtiPU1pKGMsYik7Yj1QaShhLGIsMSk7QWcoYSxiKTtiPUhnKCk7YT1LaihhLDEpO251bGwhPT1hJiYoJGMoYSwxLGIpLE1qKGEsYikpfVxuZnVuY3Rpb24gV2koYSxiKXtpZigzPT09YS50YWcpZ2soYSxhLGIpO2Vsc2UgZm9yKHZhciBjPWEucmV0dXJuO251bGwhPT1jOyl7aWYoMz09PWMudGFnKXtnayhjLGEsYik7YnJlYWt9ZWxzZSBpZigxPT09Yy50YWcpe3ZhciBkPWMuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1UaXx8IVRpLmhhcyhkKSkpe2E9TWkoYixhKTt2YXIgZT1TaShjLGEsMSk7QWcoYyxlKTtlPUhnKCk7Yz1LaihjLDEpO2lmKG51bGwhPT1jKSRjKGMsMSxlKSxNaihjLGUpO2Vsc2UgaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09VGl8fCFUaS5oYXMoZCkpKXRyeXtkLmNvbXBvbmVudERpZENhdGNoKGIsYSl9Y2F0Y2goZil7fWJyZWFrfX1jPWMucmV0dXJufX1cbmZ1bmN0aW9uIFlqKGEsYixjKXt2YXIgZD1hLnBpbmdDYWNoZTtudWxsIT09ZCYmZC5kZWxldGUoYik7Yj1IZygpO2EucGluZ2VkTGFuZXN8PWEuc3VzcGVuZGVkTGFuZXMmYztVPT09YSYmKFcmYyk9PT1jJiYoND09PVZ8fDM9PT1WJiYoVyY2MjkxNDU2MCk9PT1XJiY1MDA+TygpLWpqP1FqKGEsMCk6dWp8PWMpO01qKGEsYil9ZnVuY3Rpb24gbGooYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtudWxsIT09YyYmYy5kZWxldGUoYik7Yj0wOzA9PT1iJiYoYj1hLm1vZGUsMD09PShiJjIpP2I9MTowPT09KGImNCk/Yj05OT09PWVnKCk/MToyOigwPT09R2omJihHaj10aiksYj1ZYyg2MjkxNDU2MCZ+R2opLDA9PT1iJiYoYj00MTk0MzA0KSkpO2M9SGcoKTthPUtqKGEsYik7bnVsbCE9PWEmJigkYyhhLGIsYyksTWooYSxjKSl9dmFyIGNrO1xuY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIubGFuZXM7aWYobnVsbCE9PWEpaWYoYS5tZW1vaXplZFByb3BzIT09Yi5wZW5kaW5nUHJvcHN8fE4uY3VycmVudCl1Zz0hMDtlbHNlIGlmKDAhPT0oYyZkKSl1Zz0wIT09KGEuZmxhZ3MmMTYzODQpPyEwOiExO2Vsc2V7dWc9ITE7c3dpdGNoKGIudGFnKXtjYXNlIDM6cmkoYik7c2goKTticmVhaztjYXNlIDU6Z2goYik7YnJlYWs7Y2FzZSAxOkZmKGIudHlwZSkmJkpmKGIpO2JyZWFrO2Nhc2UgNDplaChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6ZD1iLm1lbW9pemVkUHJvcHMudmFsdWU7dmFyIGU9Yi50eXBlLl9jb250ZXh0O0kobWcsZS5fY3VycmVudFZhbHVlKTtlLl9jdXJyZW50VmFsdWU9ZDticmVhaztjYXNlIDEzOmlmKG51bGwhPT1iLm1lbW9pemVkU3RhdGUpe2lmKDAhPT0oYyZiLmNoaWxkLmNoaWxkTGFuZXMpKXJldHVybiB0aShhLGIsYyk7SShQLFAuY3VycmVudCYxKTtiPWhpKGEsYixjKTtyZXR1cm4gbnVsbCE9PVxuYj9iLnNpYmxpbmc6bnVsbH1JKFAsUC5jdXJyZW50JjEpO2JyZWFrO2Nhc2UgMTk6ZD0wIT09KGMmYi5jaGlsZExhbmVzKTtpZigwIT09KGEuZmxhZ3MmNjQpKXtpZihkKXJldHVybiBBaShhLGIsYyk7Yi5mbGFnc3w9NjR9ZT1iLm1lbW9pemVkU3RhdGU7bnVsbCE9PWUmJihlLnJlbmRlcmluZz1udWxsLGUudGFpbD1udWxsLGUubGFzdEVmZmVjdD1udWxsKTtJKFAsUC5jdXJyZW50KTtpZihkKWJyZWFrO2Vsc2UgcmV0dXJuIG51bGw7Y2FzZSAyMzpjYXNlIDI0OnJldHVybiBiLmxhbmVzPTAsbWkoYSxiLGMpfXJldHVybiBoaShhLGIsYyl9ZWxzZSB1Zz0hMTtiLmxhbmVzPTA7c3dpdGNoKGIudGFnKXtjYXNlIDI6ZD1iLnR5cGU7bnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9Mik7YT1iLnBlbmRpbmdQcm9wcztlPUVmKGIsTS5jdXJyZW50KTt0ZyhiLGMpO2U9Q2gobnVsbCxiLGQsYSxlLGMpO2IuZmxhZ3N8PTE7aWYoXCJvYmplY3RcIj09PVxudHlwZW9mIGUmJm51bGwhPT1lJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5yZW5kZXImJnZvaWQgMD09PWUuJCR0eXBlb2Ype2IudGFnPTE7Yi5tZW1vaXplZFN0YXRlPW51bGw7Yi51cGRhdGVRdWV1ZT1udWxsO2lmKEZmKGQpKXt2YXIgZj0hMDtKZihiKX1lbHNlIGY9ITE7Yi5tZW1vaXplZFN0YXRlPW51bGwhPT1lLnN0YXRlJiZ2b2lkIDAhPT1lLnN0YXRlP2Uuc3RhdGU6bnVsbDt4ZyhiKTt2YXIgZz1kLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcImZ1bmN0aW9uXCI9PT10eXBlb2YgZyYmR2coYixkLGcsYSk7ZS51cGRhdGVyPUtnO2Iuc3RhdGVOb2RlPWU7ZS5fcmVhY3RJbnRlcm5hbHM9YjtPZyhiLGQsYSxjKTtiPXFpKG51bGwsYixkLCEwLGYsYyl9ZWxzZSBiLnRhZz0wLGZpKG51bGwsYixlLGMpLGI9Yi5jaGlsZDtyZXR1cm4gYjtjYXNlIDE2OmU9Yi5lbGVtZW50VHlwZTthOntudWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmZsYWdzfD0yKTtcbmE9Yi5wZW5kaW5nUHJvcHM7Zj1lLl9pbml0O2U9ZihlLl9wYXlsb2FkKTtiLnR5cGU9ZTtmPWIudGFnPWhrKGUpO2E9bGcoZSxhKTtzd2l0Y2goZil7Y2FzZSAwOmI9bGkobnVsbCxiLGUsYSxjKTticmVhayBhO2Nhc2UgMTpiPXBpKG51bGwsYixlLGEsYyk7YnJlYWsgYTtjYXNlIDExOmI9Z2kobnVsbCxiLGUsYSxjKTticmVhayBhO2Nhc2UgMTQ6Yj1paShudWxsLGIsZSxsZyhlLnR5cGUsYSksZCxjKTticmVhayBhfXRocm93IEVycm9yKHkoMzA2LGUsXCJcIikpO31yZXR1cm4gYjtjYXNlIDA6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSksbGkoYSxiLGQsZSxjKTtjYXNlIDE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSkscGkoYSxiLGQsZSxjKTtjYXNlIDM6cmkoYik7ZD1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1hfHxudWxsPT09ZCl0aHJvdyBFcnJvcih5KDI4MikpO1xuZD1iLnBlbmRpbmdQcm9wcztlPWIubWVtb2l6ZWRTdGF0ZTtlPW51bGwhPT1lP2UuZWxlbWVudDpudWxsO3lnKGEsYik7Q2coYixkLG51bGwsYyk7ZD1iLm1lbW9pemVkU3RhdGUuZWxlbWVudDtpZihkPT09ZSlzaCgpLGI9aGkoYSxiLGMpO2Vsc2V7ZT1iLnN0YXRlTm9kZTtpZihmPWUuaHlkcmF0ZSlraD1yZihiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLmZpcnN0Q2hpbGQpLGpoPWIsZj1saD0hMDtpZihmKXthPWUubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YTtpZihudWxsIT1hKWZvcihlPTA7ZTxhLmxlbmd0aDtlKz0yKWY9YVtlXSxmLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PWFbZSsxXSx0aC5wdXNoKGYpO2M9WmcoYixudWxsLGQsYyk7Zm9yKGIuY2hpbGQ9YztjOyljLmZsYWdzPWMuZmxhZ3MmLTN8MTAyNCxjPWMuc2libGluZ31lbHNlIGZpKGEsYixkLGMpLHNoKCk7Yj1iLmNoaWxkfXJldHVybiBiO2Nhc2UgNTpyZXR1cm4gZ2goYiksbnVsbD09PWEmJlxucGgoYiksZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxmPW51bGwhPT1hP2EubWVtb2l6ZWRQcm9wczpudWxsLGc9ZS5jaGlsZHJlbixuZihkLGUpP2c9bnVsbDpudWxsIT09ZiYmbmYoZCxmKSYmKGIuZmxhZ3N8PTE2KSxvaShhLGIpLGZpKGEsYixnLGMpLGIuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09YSYmcGgoYiksbnVsbDtjYXNlIDEzOnJldHVybiB0aShhLGIsYyk7Y2FzZSA0OnJldHVybiBlaChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLGQ9Yi5wZW5kaW5nUHJvcHMsbnVsbD09PWE/Yi5jaGlsZD1ZZyhiLG51bGwsZCxjKTpmaShhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSksZ2koYSxiLGQsZSxjKTtjYXNlIDc6cmV0dXJuIGZpKGEsYixiLnBlbmRpbmdQcm9wcyxjKSxiLmNoaWxkO2Nhc2UgODpyZXR1cm4gZmkoYSxiLGIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFxuYyksYi5jaGlsZDtjYXNlIDEyOnJldHVybiBmaShhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYyksYi5jaGlsZDtjYXNlIDEwOmE6e2Q9Yi50eXBlLl9jb250ZXh0O2U9Yi5wZW5kaW5nUHJvcHM7Zz1iLm1lbW9pemVkUHJvcHM7Zj1lLnZhbHVlO3ZhciBoPWIudHlwZS5fY29udGV4dDtJKG1nLGguX2N1cnJlbnRWYWx1ZSk7aC5fY3VycmVudFZhbHVlPWY7aWYobnVsbCE9PWcpaWYoaD1nLnZhbHVlLGY9SGUoaCxmKT8wOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHM/ZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHMoaCxmKToxMDczNzQxODIzKXwwLDA9PT1mKXtpZihnLmNoaWxkcmVuPT09ZS5jaGlsZHJlbiYmIU4uY3VycmVudCl7Yj1oaShhLGIsYyk7YnJlYWsgYX19ZWxzZSBmb3IoaD1iLmNoaWxkLG51bGwhPT1oJiYoaC5yZXR1cm49Yik7bnVsbCE9PWg7KXt2YXIgaz1oLmRlcGVuZGVuY2llcztpZihudWxsIT09ayl7Zz1oLmNoaWxkO2Zvcih2YXIgbD1cbmsuZmlyc3RDb250ZXh0O251bGwhPT1sOyl7aWYobC5jb250ZXh0PT09ZCYmMCE9PShsLm9ic2VydmVkQml0cyZmKSl7MT09PWgudGFnJiYobD16ZygtMSxjJi1jKSxsLnRhZz0yLEFnKGgsbCkpO2gubGFuZXN8PWM7bD1oLmFsdGVybmF0ZTtudWxsIT09bCYmKGwubGFuZXN8PWMpO3NnKGgucmV0dXJuLGMpO2subGFuZXN8PWM7YnJlYWt9bD1sLm5leHR9fWVsc2UgZz0xMD09PWgudGFnP2gudHlwZT09PWIudHlwZT9udWxsOmguY2hpbGQ6aC5jaGlsZDtpZihudWxsIT09ZylnLnJldHVybj1oO2Vsc2UgZm9yKGc9aDtudWxsIT09Zzspe2lmKGc9PT1iKXtnPW51bGw7YnJlYWt9aD1nLnNpYmxpbmc7aWYobnVsbCE9PWgpe2gucmV0dXJuPWcucmV0dXJuO2c9aDticmVha31nPWcucmV0dXJufWg9Z31maShhLGIsZS5jaGlsZHJlbixjKTtiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA5OnJldHVybiBlPWIudHlwZSxmPWIucGVuZGluZ1Byb3BzLGQ9Zi5jaGlsZHJlbix0ZyhiLGMpLGU9dmcoZSxcbmYudW5zdGFibGVfb2JzZXJ2ZWRCaXRzKSxkPWQoZSksYi5mbGFnc3w9MSxmaShhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGU9Yi50eXBlLGY9bGcoZSxiLnBlbmRpbmdQcm9wcyksZj1sZyhlLnR5cGUsZiksaWkoYSxiLGUsZixkLGMpO2Nhc2UgMTU6cmV0dXJuIGtpKGEsYixiLnR5cGUsYi5wZW5kaW5nUHJvcHMsZCxjKTtjYXNlIDE3OnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpsZyhkLGUpLG51bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZmxhZ3N8PTIpLGIudGFnPTEsRmYoZCk/KGE9ITAsSmYoYikpOmE9ITEsdGcoYixjKSxNZyhiLGQsZSksT2coYixkLGUsYykscWkobnVsbCxiLGQsITAsYSxjKTtjYXNlIDE5OnJldHVybiBBaShhLGIsYyk7Y2FzZSAyMzpyZXR1cm4gbWkoYSxiLGMpO2Nhc2UgMjQ6cmV0dXJuIG1pKGEsYixjKX10aHJvdyBFcnJvcih5KDE1NixiLnRhZykpO1xufTtmdW5jdGlvbiBpayhhLGIsYyxkKXt0aGlzLnRhZz1hO3RoaXMua2V5PWM7dGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbDt0aGlzLmluZGV4PTA7dGhpcy5yZWY9bnVsbDt0aGlzLnBlbmRpbmdQcm9wcz1iO3RoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsO3RoaXMubW9kZT1kO3RoaXMuZmxhZ3M9MDt0aGlzLmxhc3RFZmZlY3Q9dGhpcy5maXJzdEVmZmVjdD10aGlzLm5leHRFZmZlY3Q9bnVsbDt0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wO3RoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gbmgoYSxiLGMsZCl7cmV0dXJuIG5ldyBpayhhLGIsYyxkKX1mdW5jdGlvbiBqaShhKXthPWEucHJvdG90eXBlO3JldHVybiEoIWF8fCFhLmlzUmVhY3RDb21wb25lbnQpfVxuZnVuY3Rpb24gaGsoYSl7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpcmV0dXJuIGppKGEpPzE6MDtpZih2b2lkIDAhPT1hJiZudWxsIT09YSl7YT1hLiQkdHlwZW9mO2lmKGE9PT1BYSlyZXR1cm4gMTE7aWYoYT09PURhKXJldHVybiAxNH1yZXR1cm4gMn1cbmZ1bmN0aW9uIFRnKGEsYil7dmFyIGM9YS5hbHRlcm5hdGU7bnVsbD09PWM/KGM9bmgoYS50YWcsYixhLmtleSxhLm1vZGUpLGMuZWxlbWVudFR5cGU9YS5lbGVtZW50VHlwZSxjLnR5cGU9YS50eXBlLGMuc3RhdGVOb2RlPWEuc3RhdGVOb2RlLGMuYWx0ZXJuYXRlPWEsYS5hbHRlcm5hdGU9Yyk6KGMucGVuZGluZ1Byb3BzPWIsYy50eXBlPWEudHlwZSxjLmZsYWdzPTAsYy5uZXh0RWZmZWN0PW51bGwsYy5maXJzdEVmZmVjdD1udWxsLGMubGFzdEVmZmVjdD1udWxsKTtjLmNoaWxkTGFuZXM9YS5jaGlsZExhbmVzO2MubGFuZXM9YS5sYW5lcztjLmNoaWxkPWEuY2hpbGQ7Yy5tZW1vaXplZFByb3BzPWEubWVtb2l6ZWRQcm9wcztjLm1lbW9pemVkU3RhdGU9YS5tZW1vaXplZFN0YXRlO2MudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZTtiPWEuZGVwZW5kZW5jaWVzO2MuZGVwZW5kZW5jaWVzPW51bGw9PT1iP251bGw6e2xhbmVzOmIubGFuZXMsZmlyc3RDb250ZXh0OmIuZmlyc3RDb250ZXh0fTtcbmMuc2libGluZz1hLnNpYmxpbmc7Yy5pbmRleD1hLmluZGV4O2MucmVmPWEucmVmO3JldHVybiBjfVxuZnVuY3Rpb24gVmcoYSxiLGMsZCxlLGYpe3ZhciBnPTI7ZD1hO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKWppKGEpJiYoZz0xKTtlbHNlIGlmKFwic3RyaW5nXCI9PT10eXBlb2YgYSlnPTU7ZWxzZSBhOnN3aXRjaChhKXtjYXNlIHVhOnJldHVybiBYZyhjLmNoaWxkcmVuLGUsZixiKTtjYXNlIEhhOmc9ODtlfD0xNjticmVhaztjYXNlIHdhOmc9ODtlfD0xO2JyZWFrO2Nhc2UgeGE6cmV0dXJuIGE9bmgoMTIsYyxiLGV8OCksYS5lbGVtZW50VHlwZT14YSxhLnR5cGU9eGEsYS5sYW5lcz1mLGE7Y2FzZSBCYTpyZXR1cm4gYT1uaCgxMyxjLGIsZSksYS50eXBlPUJhLGEuZWxlbWVudFR5cGU9QmEsYS5sYW5lcz1mLGE7Y2FzZSBDYTpyZXR1cm4gYT1uaCgxOSxjLGIsZSksYS5lbGVtZW50VHlwZT1DYSxhLmxhbmVzPWYsYTtjYXNlIElhOnJldHVybiB2aShjLGUsZixiKTtjYXNlIEphOnJldHVybiBhPW5oKDI0LGMsYixlKSxhLmVsZW1lbnRUeXBlPUphLGEubGFuZXM9ZixhO2RlZmF1bHQ6aWYoXCJvYmplY3RcIj09PVxudHlwZW9mIGEmJm51bGwhPT1hKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIHlhOmc9MTA7YnJlYWsgYTtjYXNlIHphOmc9OTticmVhayBhO2Nhc2UgQWE6Zz0xMTticmVhayBhO2Nhc2UgRGE6Zz0xNDticmVhayBhO2Nhc2UgRWE6Zz0xNjtkPW51bGw7YnJlYWsgYTtjYXNlIEZhOmc9MjI7YnJlYWsgYX10aHJvdyBFcnJvcih5KDEzMCxudWxsPT1hP2E6dHlwZW9mIGEsXCJcIikpO31iPW5oKGcsYyxiLGUpO2IuZWxlbWVudFR5cGU9YTtiLnR5cGU9ZDtiLmxhbmVzPWY7cmV0dXJuIGJ9ZnVuY3Rpb24gWGcoYSxiLGMsZCl7YT1uaCg3LGEsZCxiKTthLmxhbmVzPWM7cmV0dXJuIGF9ZnVuY3Rpb24gdmkoYSxiLGMsZCl7YT1uaCgyMyxhLGQsYik7YS5lbGVtZW50VHlwZT1JYTthLmxhbmVzPWM7cmV0dXJuIGF9ZnVuY3Rpb24gVWcoYSxiLGMpe2E9bmgoNixhLG51bGwsYik7YS5sYW5lcz1jO3JldHVybiBhfVxuZnVuY3Rpb24gV2coYSxiLGMpe2I9bmgoNCxudWxsIT09YS5jaGlsZHJlbj9hLmNoaWxkcmVuOltdLGEua2V5LGIpO2IubGFuZXM9YztiLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzphLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246YS5pbXBsZW1lbnRhdGlvbn07cmV0dXJuIGJ9XG5mdW5jdGlvbiBqayhhLGIsYyl7dGhpcy50YWc9Yjt0aGlzLmNvbnRhaW5lckluZm89YTt0aGlzLmZpbmlzaGVkV29yaz10aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbDt0aGlzLnRpbWVvdXRIYW5kbGU9LTE7dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9bnVsbDt0aGlzLmh5ZHJhdGU9Yzt0aGlzLmNhbGxiYWNrTm9kZT1udWxsO3RoaXMuY2FsbGJhY2tQcmlvcml0eT0wO3RoaXMuZXZlbnRUaW1lcz1aYygwKTt0aGlzLmV4cGlyYXRpb25UaW1lcz1aYygtMSk7dGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLmZpbmlzaGVkTGFuZXM9dGhpcy5tdXRhYmxlUmVhZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wO3RoaXMuZW50YW5nbGVtZW50cz1aYygwKTt0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9bnVsbH1cbmZ1bmN0aW9uIGtrKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6dGEsa2V5Om51bGw9PWQ/bnVsbDpcIlwiK2QsY2hpbGRyZW46YSxjb250YWluZXJJbmZvOmIsaW1wbGVtZW50YXRpb246Y319XG5mdW5jdGlvbiBsayhhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1IZygpLGc9SWcoZSk7YTppZihjKXtjPWMuX3JlYWN0SW50ZXJuYWxzO2I6e2lmKFpiKGMpIT09Y3x8MSE9PWMudGFnKXRocm93IEVycm9yKHkoMTcwKSk7dmFyIGg9Yztkb3tzd2l0Y2goaC50YWcpe2Nhc2UgMzpoPWguc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgYjtjYXNlIDE6aWYoRmYoaC50eXBlKSl7aD1oLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayBifX1oPWgucmV0dXJufXdoaWxlKG51bGwhPT1oKTt0aHJvdyBFcnJvcih5KDE3MSkpO31pZigxPT09Yy50YWcpe3ZhciBrPWMudHlwZTtpZihGZihrKSl7Yz1JZihjLGssaCk7YnJlYWsgYX19Yz1ofWVsc2UgYz1DZjtudWxsPT09Yi5jb250ZXh0P2IuY29udGV4dD1jOmIucGVuZGluZ0NvbnRleHQ9YztiPXpnKGYsZyk7Yi5wYXlsb2FkPXtlbGVtZW50OmF9O2Q9dm9pZCAwPT09ZD9udWxsOmQ7bnVsbCE9PVxuZCYmKGIuY2FsbGJhY2s9ZCk7QWcoZSxiKTtKZyhlLGcsZik7cmV0dXJuIGd9ZnVuY3Rpb24gbWsoYSl7YT1hLmN1cnJlbnQ7aWYoIWEuY2hpbGQpcmV0dXJuIG51bGw7c3dpdGNoKGEuY2hpbGQudGFnKXtjYXNlIDU6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlO2RlZmF1bHQ6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlfX1mdW5jdGlvbiBuayhhLGIpe2E9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiZudWxsIT09YS5kZWh5ZHJhdGVkKXt2YXIgYz1hLnJldHJ5TGFuZTthLnJldHJ5TGFuZT0wIT09YyYmYzxiP2M6Yn19ZnVuY3Rpb24gb2soYSxiKXtuayhhLGIpOyhhPWEuYWx0ZXJuYXRlKSYmbmsoYSxiKX1mdW5jdGlvbiBwaygpe3JldHVybiBudWxsfVxuZnVuY3Rpb24gcWsoYSxiLGMpe3ZhciBkPW51bGwhPWMmJm51bGwhPWMuaHlkcmF0aW9uT3B0aW9ucyYmYy5oeWRyYXRpb25PcHRpb25zLm11dGFibGVTb3VyY2VzfHxudWxsO2M9bmV3IGprKGEsYixudWxsIT1jJiYhMD09PWMuaHlkcmF0ZSk7Yj1uaCgzLG51bGwsbnVsbCwyPT09Yj83OjE9PT1iPzM6MCk7Yy5jdXJyZW50PWI7Yi5zdGF0ZU5vZGU9Yzt4ZyhiKTthW2ZmXT1jLmN1cnJlbnQ7Y2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO2lmKGQpZm9yKGE9MDthPGQubGVuZ3RoO2ErKyl7Yj1kW2FdO3ZhciBlPWIuX2dldFZlcnNpb247ZT1lKGIuX3NvdXJjZSk7bnVsbD09Yy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhP2MubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bYixlXTpjLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaChiLGUpfXRoaXMuX2ludGVybmFsUm9vdD1jfVxucWsucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihhKXtsayhhLHRoaXMuX2ludGVybmFsUm9vdCxudWxsLG51bGwpfTtxay5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuX2ludGVybmFsUm9vdCxiPWEuY29udGFpbmVySW5mbztsayhudWxsLGEsbnVsbCxmdW5jdGlvbigpe2JbZmZdPW51bGx9KX07ZnVuY3Rpb24gcmsoYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUmJig4IT09YS5ub2RlVHlwZXx8XCIgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgXCIhPT1hLm5vZGVWYWx1ZSkpfVxuZnVuY3Rpb24gc2soYSxiKXtifHwoYj1hPzk9PT1hLm5vZGVUeXBlP2EuZG9jdW1lbnRFbGVtZW50OmEuZmlyc3RDaGlsZDpudWxsLGI9ISghYnx8MSE9PWIubm9kZVR5cGV8fCFiLmhhc0F0dHJpYnV0ZShcImRhdGEtcmVhY3Ryb290XCIpKSk7aWYoIWIpZm9yKHZhciBjO2M9YS5sYXN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYyk7cmV0dXJuIG5ldyBxayhhLDAsYj97aHlkcmF0ZTohMH06dm9pZCAwKX1cbmZ1bmN0aW9uIHRrKGEsYixjLGQsZSl7dmFyIGY9Yy5fcmVhY3RSb290Q29udGFpbmVyO2lmKGYpe3ZhciBnPWYuX2ludGVybmFsUm9vdDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl7dmFyIGg9ZTtlPWZ1bmN0aW9uKCl7dmFyIGE9bWsoZyk7aC5jYWxsKGEpfX1sayhiLGcsYSxlKX1lbHNle2Y9Yy5fcmVhY3RSb290Q29udGFpbmVyPXNrKGMsZCk7Zz1mLl9pbnRlcm5hbFJvb3Q7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBrPWU7ZT1mdW5jdGlvbigpe3ZhciBhPW1rKGcpO2suY2FsbChhKX19WGooZnVuY3Rpb24oKXtsayhiLGcsYSxlKX0pfXJldHVybiBtayhnKX1lYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1IZygpO0pnKGEsNCxiKTtvayhhLDQpfX07ZmM9ZnVuY3Rpb24oYSl7aWYoMTM9PT1hLnRhZyl7dmFyIGI9SGcoKTtKZyhhLDY3MTA4ODY0LGIpO29rKGEsNjcxMDg4NjQpfX07XG5nYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1IZygpLGM9SWcoYSk7SmcoYSxjLGIpO29rKGEsYyl9fTtoYz1mdW5jdGlvbihhLGIpe3JldHVybiBiKCl9O1xueWI9ZnVuY3Rpb24oYSxiLGMpe3N3aXRjaChiKXtjYXNlIFwiaW5wdXRcIjphYihhLGMpO2I9Yy5uYW1lO2lmKFwicmFkaW9cIj09PWMudHlwZSYmbnVsbCE9Yil7Zm9yKGM9YTtjLnBhcmVudE5vZGU7KWM9Yy5wYXJlbnROb2RlO2M9Yy5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXRbbmFtZT1cIitKU09OLnN0cmluZ2lmeShcIlwiK2IpKyddW3R5cGU9XCJyYWRpb1wiXScpO2ZvcihiPTA7YjxjLmxlbmd0aDtiKyspe3ZhciBkPWNbYl07aWYoZCE9PWEmJmQuZm9ybT09PWEuZm9ybSl7dmFyIGU9RGIoZCk7aWYoIWUpdGhyb3cgRXJyb3IoeSg5MCkpO1dhKGQpO2FiKGQsZSl9fX1icmVhaztjYXNlIFwidGV4dGFyZWFcIjppYihhLGMpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpiPWMudmFsdWUsbnVsbCE9YiYmZmIoYSwhIWMubXVsdGlwbGUsYiwhMSl9fTtHYj1XajtcbkhiPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9WDtYfD00O3RyeXtyZXR1cm4gZ2coOTgsYS5iaW5kKG51bGwsYixjLGQsZSkpfWZpbmFsbHl7WD1mLDA9PT1YJiYod2ooKSxpZygpKX19O0liPWZ1bmN0aW9uKCl7MD09PShYJjQ5KSYmKFZqKCksT2ooKSl9O0piPWZ1bmN0aW9uKGEsYil7dmFyIGM9WDtYfD0yO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e1g9YywwPT09WCYmKHdqKCksaWcoKSl9fTtmdW5jdGlvbiB1ayhhLGIpe3ZhciBjPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKCFyayhiKSl0aHJvdyBFcnJvcih5KDIwMCkpO3JldHVybiBrayhhLGIsbnVsbCxjKX12YXIgdms9e0V2ZW50czpbQ2IsdWUsRGIsRWIsRmIsT2ose2N1cnJlbnQ6ITF9XX0sd2s9e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOndjLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOlwiMTcuMC4yXCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwifTtcbnZhciB4az17YnVuZGxlVHlwZTp3ay5idW5kbGVUeXBlLHZlcnNpb246d2sudmVyc2lvbixyZW5kZXJlclBhY2thZ2VOYW1lOndrLnJlbmRlcmVyUGFja2FnZU5hbWUscmVuZGVyZXJDb25maWc6d2sucmVuZGVyZXJDb25maWcsb3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzUmVuYW1lUGF0aDpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6cmEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihhKXthPWNjKGEpO3JldHVybiBudWxsPT09YT9udWxsOmEuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp3ay5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8XG5wayxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsfTtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIHlrPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZigheWsuaXNEaXNhYmxlZCYmeWsuc3VwcG9ydHNGaWJlcil0cnl7TGY9eWsuaW5qZWN0KHhrKSxNZj15a31jYXRjaChhKXt9fWV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9dms7ZXhwb3J0cy5jcmVhdGVQb3J0YWw9dWs7XG5leHBvcnRzLmZpbmRET01Ob2RlPWZ1bmN0aW9uKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoMT09PWEubm9kZVR5cGUpcmV0dXJuIGE7dmFyIGI9YS5fcmVhY3RJbnRlcm5hbHM7aWYodm9pZCAwPT09Yil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEucmVuZGVyKXRocm93IEVycm9yKHkoMTg4KSk7dGhyb3cgRXJyb3IoeSgyNjgsT2JqZWN0LmtleXMoYSkpKTt9YT1jYyhiKTthPW51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGU7cmV0dXJuIGF9O2V4cG9ydHMuZmx1c2hTeW5jPWZ1bmN0aW9uKGEsYil7dmFyIGM9WDtpZigwIT09KGMmNDgpKXJldHVybiBhKGIpO1h8PTE7dHJ5e2lmKGEpcmV0dXJuIGdnKDk5LGEuYmluZChudWxsLGIpKX1maW5hbGx5e1g9YyxpZygpfX07ZXhwb3J0cy5oeWRyYXRlPWZ1bmN0aW9uKGEsYixjKXtpZighcmsoYikpdGhyb3cgRXJyb3IoeSgyMDApKTtyZXR1cm4gdGsobnVsbCxhLGIsITAsYyl9O1xuZXhwb3J0cy5yZW5kZXI9ZnVuY3Rpb24oYSxiLGMpe2lmKCFyayhiKSl0aHJvdyBFcnJvcih5KDIwMCkpO3JldHVybiB0ayhudWxsLGEsYiwhMSxjKX07ZXhwb3J0cy51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKGEpe2lmKCFyayhhKSl0aHJvdyBFcnJvcih5KDQwKSk7cmV0dXJuIGEuX3JlYWN0Um9vdENvbnRhaW5lcj8oWGooZnVuY3Rpb24oKXt0ayhudWxsLG51bGwsYSwhMSxmdW5jdGlvbigpe2EuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsO2FbZmZdPW51bGx9KX0pLCEwKTohMX07ZXhwb3J0cy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1XajtleHBvcnRzLnVuc3RhYmxlX2NyZWF0ZVBvcnRhbD1mdW5jdGlvbihhLGIpe3JldHVybiB1ayhhLGIsMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwpfTtcbmV4cG9ydHMudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIXJrKGMpKXRocm93IEVycm9yKHkoMjAwKSk7aWYobnVsbD09YXx8dm9pZCAwPT09YS5fcmVhY3RJbnRlcm5hbHMpdGhyb3cgRXJyb3IoeSgzOCkpO3JldHVybiB0ayhhLGIsYywhMSxkKX07ZXhwb3J0cy52ZXJzaW9uPVwiMTcuMC4yXCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNoZWNrRENFKCkge1xuICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG4gIGlmIChcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJyB8fFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkXG4gICAgLy8gaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvbmx5IGluIGRldmVsb3BtZW50LlxuICAgIC8vIFRoZXJlZm9yZSBpZiB0aGUgYnJhbmNoIGlzIHN0aWxsIGhlcmUsIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3YXNuJ3RcbiAgICAvLyBwcm9wZXJseSBhcHBsaWVkLlxuICAgIC8vIERvbid0IGNoYW5nZSB0aGUgbWVzc2FnZS4gUmVhY3QgRGV2VG9vbHMgcmVsaWVzIG9uIGl0LiBBbHNvIG1ha2Ugc3VyZVxuICAgIC8vIHRoaXMgbWVzc2FnZSBkb2Vzbid0IG9jY3VyIGVsc2V3aGVyZSBpbiB0aGlzIGZ1bmN0aW9uLCBvciBpdCB3aWxsIGNhdXNlXG4gICAgLy8gYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ15fXicpO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFzIGJlZW4gZGVhZCBjb2RlIGVsaW1pbmF0ZWQgKERDRSdkKS5cbiAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoY2hlY2tEQ0UpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBEZXZUb29scyBzaG91bGRuJ3QgY3Jhc2ggUmVhY3QsIG5vIG1hdHRlciB3aGF0LlxuICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZXBvcnQgaW4gY2FzZSB3ZSBicmVhayB0aGlzIGNvZGUuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIERDRSBjaGVjayBzaG91bGQgaGFwcGVuIGJlZm9yZSBSZWFjdERPTSBidW5kbGUgZXhlY3V0ZXMgc28gdGhhdFxuICAvLyBEZXZUb29scyBjYW4gcmVwb3J0IGJhZCBtaW5pZmljYXRpb24gZHVyaW5nIGluamVjdGlvbi5cbiAgY2hlY2tEQ0UoKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJpbXBvcnQge0FjdGlvbiwgUmVkdWNlciwgU3RhdGV9IGZyb20gJy4vY3JlYXRlU3RvcmUnO1xuXG5pbnRlcmZhY2UgUmVkdWNlcnNNYXBPYmplY3Q8UyBleHRlbmRzIFN0YXRlID0gYW55LCBBIGV4dGVuZHMgQWN0aW9uID0gYW55PiB7XG4gIFtrZXk6IHN0cmluZ106IFJlZHVjZXI8UywgQT47XG59XG5cbnR5cGUgU3RhdGVGcm9tUmVkdWNlcnNNYXBPYmplY3Q8TT4gPSBNIGV4dGVuZHMgUmVkdWNlcnNNYXBPYmplY3RcbiAgPyB7W1AgaW4ga2V5b2YgTV06IE1bUF0gZXh0ZW5kcyBSZWR1Y2VyPGluZmVyIFMsIGFueT4gPyBTIDogbmV2ZXJ9XG4gIDogbmV2ZXI7XG5cbmZ1bmN0aW9uIGNvbWJpbmVSZWR1Y2VyczxTIGV4dGVuZHMgU3RhdGUsIEEgZXh0ZW5kcyBBY3Rpb24+KHJlZHVjZXJzOiBSZWR1Y2Vyc01hcE9iamVjdCk6IFJlZHVjZXI8UywgQT4ge1xuICBjb25zdCByZWR1Y2VyS2V5cyA9IE9iamVjdC5rZXlzKHJlZHVjZXJzKTtcbiAgY29uc3QgZmluYWxSZWR1Y2Vyc09iajogUmVkdWNlcnNNYXBPYmplY3QgPSB7fTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiByZWR1Y2VyS2V5cykge1xuICAgIGlmICh0eXBlb2YgcmVkdWNlcnNba2V5XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZmluYWxSZWR1Y2Vyc09ialtrZXldID0gcmVkdWNlcnNba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKChzdGF0ZTogU3RhdGVGcm9tUmVkdWNlcnNNYXBPYmplY3Q8dHlwZW9mIHJlZHVjZXJzPiA9IHt9LCBhY3Rpb246IEEpID0+IHtcbiAgICBsZXQgaGFzQ2hhbmdlZCA9IGZhbHNlO1xuICAgIGNvbnN0IG5leHRTdGF0ZTogU3RhdGVGcm9tUmVkdWNlcnNNYXBPYmplY3Q8dHlwZW9mIHJlZHVjZXJzPiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgcmVkdWNlcktleXMpIHtcbiAgICAgIGNvbnN0IHByZXZTdGF0ZUZvcktleSA9IHN0YXRlW2tleV07XG4gICAgICBjb25zdCBuZXh0U3RhdGVGb3JLZXkgPSBmaW5hbFJlZHVjZXJzT2JqW2tleV0ocHJldlN0YXRlRm9yS2V5LCBhY3Rpb24pO1xuICAgICAgbmV4dFN0YXRlW2tleV0gPSBuZXh0U3RhdGVGb3JLZXk7XG4gICAgICBoYXNDaGFuZ2VkID0gaGFzQ2hhbmdlZCB8fCBuZXh0U3RhdGVGb3JLZXkgIT09IHByZXZTdGF0ZUZvcktleTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFzQ2hhbmdlZCA/IG5leHRTdGF0ZSA6IHN0YXRlO1xuICB9KSBhcyBhbnkgYXMgUmVkdWNlcjxTLCBBPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29tYmluZVJlZHVjZXJzO1xuIiwiZXhwb3J0IHR5cGUgU3RhdGUgPSBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcbmV4cG9ydCB0eXBlIEFjdGlvbiA9IHtcbiAgdHlwZTogc3RyaW5nO1xuICBwYXlsb2FkOiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBSZWR1Y2VyPFMgZXh0ZW5kcyBTdGF0ZSwgQSBleHRlbmRzIEFjdGlvbj4gPSAoczogUywgYTogQSkgPT4gUztcbnR5cGUgTGlzdGVuZXI8UyBleHRlbmRzIFN0YXRlPiA9IChuczogUywgcHM/OiBTKSA9PiB2b2lkO1xudHlwZSBVbnN1YnNjcmliZSA9ICgpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmU8UyBleHRlbmRzIFN0YXRlLCBBIGV4dGVuZHMgQWN0aW9uPiB7XG4gIGRpc3BhdGNoOiAoYTogQSkgPT4gdm9pZDtcbiAgZ2V0U3RhdGU6ICgpID0+IFM7XG4gIHN1YnNjcmliZTogKGxpc3RlbmVyOiBMaXN0ZW5lcjxTPikgPT4gVW5zdWJzY3JpYmU7XG59XG5cbi8qKlxuICog566A5Y2V5a6e546w55qEIFJlZHV4XG4gKiBAcGFyYW0gcHJlbG9hZGVkU3RhdGUg5Yid5aeLIHN0YXRlXG4gKiBAcGFyYW0gcmVkdWNlciByZWR1Y2VyIHB1cmUgZnVuY3Rpb25cbiAqIEByZXR1cm5zIHN0b3JlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlPFMgZXh0ZW5kcyBTdGF0ZSwgQSBleHRlbmRzIEFjdGlvbj4oXG4gIHByZWxvYWRlZFN0YXRlOiBTLFxuICByZWR1Y2VyOiBSZWR1Y2VyPFMsIEE+LFxuKTogU3RvcmU8UmVhZG9ubHk8Uz4sIEE+IHtcbiAgY29uc3QgbGlzdGVuZXJzOiBMaXN0ZW5lcjxTPltdID0gW107XG4gIGxldCBjdXJyZW50U3RhdGUgPSBwcmVsb2FkZWRTdGF0ZTtcblxuICBjb25zdCBkaXNwYXRjaCA9IChhY3Rpb246IEEpID0+IHtcbiAgICBjb25zdCBuZXh0U3RhdGUgPSByZWR1Y2VyKGN1cnJlbnRTdGF0ZSwgYWN0aW9uKTtcbiAgICBjb25zdCBwcmV2U3RhdGUgPSBjdXJyZW50U3RhdGU7XG4gICAgY3VycmVudFN0YXRlID0gbmV4dFN0YXRlO1xuXG4gICAgZm9yIChjb25zdCBjYiBvZiBsaXN0ZW5lcnMpIHtcbiAgICAgIGNiKGN1cnJlbnRTdGF0ZSwgcHJldlN0YXRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc3Vic2NyaWJlID0gKGxpc3RlbmVyOiBMaXN0ZW5lcjxTPikgPT4ge1xuICAgIGxldCBpc1N1YnNjcmliZWQgPSB0cnVlO1xuICAgIGxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIWlzU3Vic2NyaWJlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluZGV4ID0gbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuICAgICAgbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBpc1N1YnNjcmliZWQgPSBmYWxzZTtcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IGdldFN0YXRlID0gKCkgPT4ge1xuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBkaXNwYXRjaCxcbiAgICBnZXRTdGF0ZSxcbiAgICBzdWJzY3JpYmUsXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVN0b3JlO1xuIiwiZXhwb3J0IGludGVyZmFjZSBBcHBTZXR0aW5nIHtcbiAgc2hvdWxkU3BsaXRNZW1vV29yZDogYm9vbGVhbjtcbiAgc2hvdWxkSGlkZUltYWdlVXJsOiBib29sZWFuO1xuICBzaG91bGRVc2VNYXJrZG93blBhcnNlcjogYm9vbGVhbjtcbiAgdXNlVGlueVVuZG9IaXN0b3J5Q2FjaGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUgZXh0ZW5kcyBBcHBTZXR0aW5nIHtcbiAgbWFya01lbW9JZDogc3RyaW5nO1xuICBlZGl0TWVtb0lkOiBzdHJpbmc7XG4gIGlzTW9iaWxlVmlldzogYm9vbGVhbjtcbiAgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgU2V0TWFya01lbW9JZEFjdGlvbiB7XG4gIHR5cGU6ICdTRVRfTUFSS19NRU1PX0lEJztcbiAgcGF5bG9hZDoge1xuICAgIG1hcmtNZW1vSWQ6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNldEVkaXRNZW1vSWRBY3Rpb24ge1xuICB0eXBlOiAnU0VUX0VESVRfTUVNT19JRCc7XG4gIHBheWxvYWQ6IHtcbiAgICBlZGl0TWVtb0lkOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBTZXRNb2JpbGVWaWV3QWN0aW9uIHtcbiAgdHlwZTogJ1NFVF9NT0JJTEVfVklFVyc7XG4gIHBheWxvYWQ6IHtcbiAgICBpc01vYmlsZVZpZXc6IGJvb2xlYW47XG4gIH07XG59XG5cbmludGVyZmFjZSBTZXRTaG93U2lkZWJhckFjdGlvbiB7XG4gIHR5cGU6ICdTRVRfU0hPV19TSURFQkFSX0lOX01PQklMRV9WSUVXJztcbiAgcGF5bG9hZDoge1xuICAgIHNob3dTaWRlcmJhckluTW9iaWxlVmlldzogYm9vbGVhbjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNldEFwcFNldHRpbmdBY3Rpb24ge1xuICB0eXBlOiAnU0VUX0FQUF9TRVRUSU5HJztcbiAgcGF5bG9hZDogUGFydGlhbDxBcHBTZXR0aW5nPjtcbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9ucyA9XG4gIHwgU2V0TW9iaWxlVmlld0FjdGlvblxuICB8IFNldFNob3dTaWRlYmFyQWN0aW9uXG4gIHwgU2V0RWRpdE1lbW9JZEFjdGlvblxuICB8IFNldE1hcmtNZW1vSWRBY3Rpb25cbiAgfCBTZXRBcHBTZXR0aW5nQWN0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlcihzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9ucykge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnU0VUX01BUktfTUVNT19JRCc6IHtcbiAgICAgIGlmIChhY3Rpb24ucGF5bG9hZC5tYXJrTWVtb0lkID09PSBzdGF0ZS5tYXJrTWVtb0lkKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hcmtNZW1vSWQ6IGFjdGlvbi5wYXlsb2FkLm1hcmtNZW1vSWQsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdTRVRfRURJVF9NRU1PX0lEJzoge1xuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkLmVkaXRNZW1vSWQgPT09IHN0YXRlLmVkaXRNZW1vSWQpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZWRpdE1lbW9JZDogYWN0aW9uLnBheWxvYWQuZWRpdE1lbW9JZCxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ1NFVF9NT0JJTEVfVklFVyc6IHtcbiAgICAgIGlmIChhY3Rpb24ucGF5bG9hZC5pc01vYmlsZVZpZXcgPT09IHN0YXRlLmlzTW9iaWxlVmlldykge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBpc01vYmlsZVZpZXc6IGFjdGlvbi5wYXlsb2FkLmlzTW9iaWxlVmlldyxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ1NFVF9TSE9XX1NJREVCQVJfSU5fTU9CSUxFX1ZJRVcnOiB7XG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQuc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3ID09PSBzdGF0ZS5zaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3OiBhY3Rpb24ucGF5bG9hZC5zaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdTRVRfQVBQX1NFVFRJTkcnOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgLi4uYWN0aW9uLnBheWxvYWQsXG4gICAgICB9O1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RhdGU6IFN0YXRlID0ge1xuICBtYXJrTWVtb0lkOiAnJyxcbiAgZWRpdE1lbW9JZDogJycsXG4gIHNob3VsZFNwbGl0TWVtb1dvcmQ6IHRydWUsXG4gIHNob3VsZEhpZGVJbWFnZVVybDogdHJ1ZSxcbiAgc2hvdWxkVXNlTWFya2Rvd25QYXJzZXI6IHRydWUsXG4gIHVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlOiBmYWxzZSxcbiAgaXNNb2JpbGVWaWV3OiBmYWxzZSxcbiAgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3OiBmYWxzZSxcbn07XG4iLCJleHBvcnQgdHlwZSBTdGF0ZSA9IEFwcExvY2F0aW9uO1xuXG5pbnRlcmZhY2UgU2V0TG9jYXRpb24ge1xuICB0eXBlOiAnU0VUX0xPQ0FUSU9OJztcbiAgcGF5bG9hZDogU3RhdGU7XG59XG5cbmludGVyZmFjZSBTZXRQYXRobmFtZUFjdGlvbiB7XG4gIHR5cGU6ICdTRVRfUEFUSE5BTUUnO1xuICBwYXlsb2FkOiB7XG4gICAgcGF0aG5hbWU6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNldFF1ZXJ5IHtcbiAgdHlwZTogJ1NFVF9RVUVSWSc7XG4gIHBheWxvYWQ6IFF1ZXJ5O1xufVxuXG5pbnRlcmZhY2UgU2V0UXVlcnlGaWx0ZXJBY3Rpb24ge1xuICB0eXBlOiAnU0VUX1FVRVJZX0ZJTFRFUic7XG4gIHBheWxvYWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNldFRhZ1F1ZXJ5QWN0aW9uIHtcbiAgdHlwZTogJ1NFVF9UQUdfUVVFUlknO1xuICBwYXlsb2FkOiB7XG4gICAgdGFnOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBTZXRGcm9tQW5kVG9RdWVyeUFjdGlvbiB7XG4gIHR5cGU6ICdTRVRfRFVSQVRJT05fUVVFUlknO1xuICBwYXlsb2FkOiB7XG4gICAgZHVyYXRpb246IER1cmF0aW9uIHwgbnVsbDtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNldFR5cGVBY3Rpb24ge1xuICB0eXBlOiAnU0VUX1RZUEUnO1xuICBwYXlsb2FkOiB7XG4gICAgdHlwZTogTWVtb1NwZWNUeXBlIHwgJyc7XG4gIH07XG59XG5cbmludGVyZmFjZSBTZXRUZXh0QWN0aW9uIHtcbiAgdHlwZTogJ1NFVF9URVhUJztcbiAgcGF5bG9hZDoge1xuICAgIHRleHQ6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNldEhhc2hBY3Rpb24ge1xuICB0eXBlOiAnU0VUX0hBU0gnO1xuICBwYXlsb2FkOiB7XG4gICAgaGFzaDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBBY3Rpb25zID1cbiAgfCBTZXRMb2NhdGlvblxuICB8IFNldFBhdGhuYW1lQWN0aW9uXG4gIHwgU2V0UXVlcnlcbiAgfCBTZXRUYWdRdWVyeUFjdGlvblxuICB8IFNldEZyb21BbmRUb1F1ZXJ5QWN0aW9uXG4gIHwgU2V0VHlwZUFjdGlvblxuICB8IFNldFRleHRBY3Rpb25cbiAgfCBTZXRRdWVyeUZpbHRlckFjdGlvblxuICB8IFNldEhhc2hBY3Rpb247XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdTRVRfTE9DQVRJT04nOiB7XG4gICAgICByZXR1cm4gYWN0aW9uLnBheWxvYWQ7XG4gICAgfVxuICAgIGNhc2UgJ1NFVF9QQVRITkFNRSc6IHtcbiAgICAgIGlmIChhY3Rpb24ucGF5bG9hZC5wYXRobmFtZSA9PT0gc3RhdGUucGF0aG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGF0aG5hbWU6IGFjdGlvbi5wYXlsb2FkLnBhdGhuYW1lLFxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSAnU0VUX0hBU0gnOiB7XG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQuaGFzaCA9PT0gc3RhdGUuaGFzaCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBoYXNoOiBhY3Rpb24ucGF5bG9hZC5oYXNoLFxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSAnU0VUX1FVRVJZJzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgLi4uYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdTRVRfVEFHX1FVRVJZJzoge1xuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkLnRhZyA9PT0gc3RhdGUucXVlcnkudGFnKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgLi4uc3RhdGUucXVlcnksXG4gICAgICAgICAgdGFnOiBhY3Rpb24ucGF5bG9hZC50YWcsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdTRVRfRFVSQVRJT05fUVVFUlknOiB7XG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQuZHVyYXRpb24gPT09IHN0YXRlLnF1ZXJ5LmR1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgLi4uc3RhdGUucXVlcnksXG4gICAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnF1ZXJ5LmR1cmF0aW9uLFxuICAgICAgICAgICAgLi4uYWN0aW9uLnBheWxvYWQuZHVyYXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ1NFVF9UWVBFJzoge1xuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkLnR5cGUgPT09IHN0YXRlLnF1ZXJ5LnR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5xdWVyeSxcbiAgICAgICAgICB0eXBlOiBhY3Rpb24ucGF5bG9hZC50eXBlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSAnU0VUX1RFWFQnOiB7XG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQudGV4dCA9PT0gc3RhdGUucXVlcnkudGV4dCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBxdWVyeToge1xuICAgICAgICAgIC4uLnN0YXRlLnF1ZXJ5LFxuICAgICAgICAgIHRleHQ6IGFjdGlvbi5wYXlsb2FkLnRleHQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdTRVRfUVVFUllfRklMVEVSJzoge1xuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkID09PSBzdGF0ZS5xdWVyeS5maWx0ZXIpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5xdWVyeSxcbiAgICAgICAgICBmaWx0ZXI6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFN0YXRlOiBTdGF0ZSA9IHtcbiAgcGF0aG5hbWU6ICcvJyxcbiAgaGFzaDogJycsXG4gIHF1ZXJ5OiB7XG4gICAgdGFnOiAnJyxcbiAgICBkdXJhdGlvbjogbnVsbCxcbiAgICB0eXBlOiAnJyxcbiAgICB0ZXh0OiAnJyxcbiAgICBmaWx0ZXI6ICcnLFxuICB9LFxufTtcbiIsIm5hbWVzcGFjZSB1dGlscyB7XG4gIGV4cG9ydCBmdW5jdGlvbiBnZXROb3dUaW1lU3RhbXAoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRPU1ZlcnNpb24oKTogJ1dpbmRvd3MnIHwgJ01hY09TJyB8ICdMaW51eCcgfCAnVW5rbm93bicge1xuICAgIGNvbnN0IGFwcFZlcnNpb24gPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuICAgIGxldCBkZXRlY3RlZE9TOiAnV2luZG93cycgfCAnTWFjT1MnIHwgJ0xpbnV4JyB8ICdVbmtub3duJyA9ICdVbmtub3duJztcblxuICAgIGlmIChhcHBWZXJzaW9uLmluZGV4T2YoJ1dpbicpICE9IC0xKSB7XG4gICAgICBkZXRlY3RlZE9TID0gJ1dpbmRvd3MnO1xuICAgIH0gZWxzZSBpZiAoYXBwVmVyc2lvbi5pbmRleE9mKCdNYWMnKSAhPSAtMSkge1xuICAgICAgZGV0ZWN0ZWRPUyA9ICdNYWNPUyc7XG4gICAgfSBlbHNlIGlmIChhcHBWZXJzaW9uLmluZGV4T2YoJ0xpbnV4JykgIT0gLTEpIHtcbiAgICAgIGRldGVjdGVkT1MgPSAnTGludXgnO1xuICAgIH1cblxuICAgIHJldHVybiBkZXRlY3RlZE9TO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVTdGFtcEJ5RGF0ZSh0OiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgICBpZiAodHlwZW9mIHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0ID0gdC5yZXBsYWNlQWxsKCctJywgJy8nKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEYXRlKHQpLmdldFRpbWUoKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXREYXRlU3RhbXBCeURhdGUodDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGdldFRpbWVTdGFtcEJ5RGF0ZSh0KSk7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSkuZ2V0VGltZSgpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVTdHJpbmcodDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGdldFRpbWVTdGFtcEJ5RGF0ZSh0KSk7XG5cbiAgICBjb25zdCB5ZWFyID0gZC5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gZC5nZXRNb250aCgpICsgMTtcbiAgICBjb25zdCBkYXRlID0gZC5nZXREYXRlKCk7XG5cbiAgICByZXR1cm4gYCR7eWVhcn0vJHttb250aH0vJHtkYXRlfWA7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0VGltZVN0cmluZyh0OiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoZ2V0VGltZVN0YW1wQnlEYXRlKHQpKTtcblxuICAgIGNvbnN0IGhvdXJzID0gZC5nZXRIb3VycygpO1xuICAgIGNvbnN0IG1pbnMgPSBkLmdldE1pbnV0ZXMoKTtcblxuICAgIGNvbnN0IGhvdXJzU3RyID0gaG91cnMgPCAxMCA/ICcwJyArIGhvdXJzIDogaG91cnM7XG4gICAgY29uc3QgbWluc1N0ciA9IG1pbnMgPCAxMCA/ICcwJyArIG1pbnMgOiBtaW5zO1xuXG4gICAgcmV0dXJuIGAke2hvdXJzU3RyfToke21pbnNTdHJ9YDtcbiAgfVxuXG4gIC8vIEZvciBleGFtcGxlOiAyMDIxLTQtOCAxNzo1MjoxN1xuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVRpbWVTdHJpbmcodDogRGF0ZSB8IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGdldFRpbWVTdGFtcEJ5RGF0ZSh0KSk7XG5cbiAgICBjb25zdCB5ZWFyID0gZC5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gZC5nZXRNb250aCgpICsgMTtcbiAgICBjb25zdCBkYXRlID0gZC5nZXREYXRlKCk7XG4gICAgY29uc3QgaG91cnMgPSBkLmdldEhvdXJzKCk7XG4gICAgY29uc3QgbWlucyA9IGQuZ2V0TWludXRlcygpO1xuICAgIC8vIGNvbnN0IHNlY3MgPSBkLmdldFNlY29uZHMoKTtcblxuICAgIGNvbnN0IG1vbnRoU3RyID0gbW9udGggPCAxMCA/ICcwJyArIG1vbnRoIDogbW9udGg7XG4gICAgY29uc3QgZGF0ZVN0ciA9IGRhdGUgPCAxMCA/ICcwJyArIGRhdGUgOiBkYXRlO1xuICAgIGNvbnN0IGhvdXJzU3RyID0gaG91cnMgPCAxMCA/ICcwJyArIGhvdXJzIDogaG91cnM7XG4gICAgY29uc3QgbWluc1N0ciA9IG1pbnMgPCAxMCA/ICcwJyArIG1pbnMgOiBtaW5zO1xuICAgIC8vIGNvbnN0IHNlY3NTdHIgPSBzZWNzIDwgMTAgPyBcIjBcIiArIHNlY3MgOiBzZWNzO1xuICAgIGNvbnN0IHNlY3NTdHIgPSAnMDAnO1xuXG4gICAgcmV0dXJuIGAke3llYXJ9LyR7bW9udGhTdHJ9LyR7ZGF0ZVN0cn0gJHtob3Vyc1N0cn06JHttaW5zU3RyfToke3NlY3NTdHJ9YDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWR1cGU8VD4oZGF0YTogVFtdKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGRhdGEpKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWR1cGVPYmplY3RXaXRoSWQ8VCBleHRlbmRzIHtpZDogc3RyaW5nfT4oZGF0YTogVFtdKTogVFtdIHtcbiAgICBjb25zdCBpZFNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBkIG9mIGRhdGEpIHtcbiAgICAgIGlmICghaWRTZXQuaGFzKGQuaWQpKSB7XG4gICAgICAgIGlkU2V0LmFkZChkLmlkKTtcbiAgICAgICAgcmVzdWx0LnB1c2goZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWJvdW5jZShmbjogRnVuY3Rpb25UeXBlLCBkZWxheTogbnVtYmVyKSB7XG4gICAgbGV0IHRpbWVyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAodGltZXIpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGZuLCBkZWxheSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoZm4sIGRlbGF5KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHRocm90dGxlKGZuOiBGdW5jdGlvblR5cGUsIGRlbGF5OiBudW1iZXIpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghdmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBmbigpO1xuICAgICAgICB2YWxpZCA9IHRydWU7XG4gICAgICB9LCBkZWxheSk7XG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3RUb1BhcmFtc1N0cmluZyhvYmplY3Q6IEtWT2JqZWN0KTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJhbXMgPSBbXTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KS5zb3J0KCk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICBjb25zdCB2YWwgPSBvYmplY3Rba2V5XTtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcGFyYW1zLnB1c2goLi4udHJhbnNmb3JtT2JqZWN0VG9QYXJhbXNTdHJpbmcodmFsKS5zcGxpdCgnJicpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbXMucHVzaChgJHtrZXl9PSR7dmFsfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcy5qb2luKCcmJyk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUGFyYW1zU3RyaW5nVG9PYmplY3QocGFyYW1zU3RyaW5nOiBzdHJpbmcpOiBLVk9iamVjdCB7XG4gICAgY29uc3Qgb2JqZWN0OiBLVk9iamVjdCA9IHt9O1xuICAgIGNvbnN0IHBhcmFtcyA9IHBhcmFtc1N0cmluZy5zcGxpdCgnJicpO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHBhcmFtcykge1xuICAgICAgY29uc3QgW2tleSwgdmFsXSA9IHAuc3BsaXQoJz0nKTtcbiAgICAgIGlmIChrZXkgJiYgdmFsKSB7XG4gICAgICAgIG9iamVjdFtrZXldID0gdmFsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZmlsdGVyT2JqZWN0TnVsbEtleXMob2JqZWN0OiBLVk9iamVjdCk6IEtWT2JqZWN0IHtcbiAgICBpZiAoIW9iamVjdCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmFsT2JqZWN0OiBLVk9iamVjdCA9IHt9O1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpLnNvcnQoKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGNvbnN0IHZhbCA9IG9iamVjdFtrZXldO1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IHRlbXAgPSBmaWx0ZXJPYmplY3ROdWxsS2V5cyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbCkpKTtcbiAgICAgICAgaWYgKHRlbXAgJiYgT2JqZWN0LmtleXModGVtcCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGZpbmFsT2JqZWN0W2tleV0gPSB0ZW1wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgZmluYWxPYmplY3Rba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaW5hbE9iamVjdDtcbiAgfVxuXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5VGV4dFRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZykge1xuICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQ29weSB0byBjbGlwYm9hcmQgZmFpbGVkLicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdDb3B5IHRvIGNsaXBib2FyZCBmYWlsZWQsIG1ldGhvZHMgbm90IHN1cHBvcnRzLicpO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZVNpemUoc3JjOiBzdHJpbmcpOiBQcm9taXNlPHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGltZ0VsID0gbmV3IEltYWdlKCk7XG5cbiAgICAgIGltZ0VsLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gaW1nRWw7XG5cbiAgICAgICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XG4gICAgICAgICAgcmVzb2x2ZSh7d2lkdGgsIGhlaWdodH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoe3dpZHRoOiAwLCBoZWlnaHQ6IDB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgaW1nRWwub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSh7d2lkdGg6IDAsIGhlaWdodDogMH0pO1xuICAgICAgfTtcblxuICAgICAgaW1nRWwuY2xhc3NOYW1lID0gJ2hpZGRlbic7XG4gICAgICBpbWdFbC5zcmMgPSBzcmM7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZ0VsKTtcbiAgICAgIGltZ0VsLnJlbW92ZSgpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIiwiaW1wb3J0IHV0aWxzIGZyb20gJy4uL2hlbHBlcnMvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgbWVtb3M6IE1vZGVsLk1lbW9bXTtcbiAgdGFnczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBTZXRNZW1vc0FjdGlvbiB7XG4gIHR5cGU6ICdTRVRfTUVNT1MnO1xuICBwYXlsb2FkOiB7XG4gICAgbWVtb3M6IE1vZGVsLk1lbW9bXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNldFRhZ3NBY3Rpb24ge1xuICB0eXBlOiAnU0VUX1RBR1MnO1xuICBwYXlsb2FkOiB7XG4gICAgdGFnczogc3RyaW5nW107XG4gIH07XG59XG5cbmludGVyZmFjZSBJbnNlcnRNZW1vQWN0aW9uIHtcbiAgdHlwZTogJ0lOU0VSVF9NRU1PJztcbiAgcGF5bG9hZDoge1xuICAgIG1lbW86IE1vZGVsLk1lbW87XG4gIH07XG59XG5cbmludGVyZmFjZSBEZWxldGVNZW1vQnlJZEFjdGlvbiB7XG4gIHR5cGU6ICdERUxFVEVfTUVNT19CWV9JRCc7XG4gIHBheWxvYWQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRWRpdE1lbW9CeUlkQWN0aW9uIHtcbiAgdHlwZTogJ0VESVRfTUVNTyc7XG4gIHBheWxvYWQ6IE1vZGVsLk1lbW87XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbnMgPSBTZXRNZW1vc0FjdGlvbiB8IFNldFRhZ3NBY3Rpb24gfCBJbnNlcnRNZW1vQWN0aW9uIHwgRGVsZXRlTWVtb0J5SWRBY3Rpb24gfCBFZGl0TWVtb0J5SWRBY3Rpb247XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnU0VUX01FTU9TJzoge1xuICAgICAgY29uc3QgbWVtb3MgPSB1dGlscy5kZWR1cGVPYmplY3RXaXRoSWQoXG4gICAgICAgIGFjdGlvbi5wYXlsb2FkLm1lbW9zLnNvcnQoXG4gICAgICAgICAgKGEsIGIpID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmNyZWF0ZWRBdCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5jcmVhdGVkQXQpLFxuICAgICAgICApLFxuICAgICAgKTtcblxuICAgICAgLy8gY29uc3QgbWVtb3MgPSBhY3Rpb24ucGF5bG9hZC5tZW1vcy5zb3J0KChhLCBiKSA9PiB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYi5jcmVhdGVkQXQpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBtZW1vczogWy4uLm1lbW9zXSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ1NFVF9UQUdTJzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRhZ3M6IGFjdGlvbi5wYXlsb2FkLnRhZ3MsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdJTlNFUlRfTUVNTyc6IHtcbiAgICAgIGNvbnN0IG1lbW9zID0gdXRpbHMuZGVkdXBlT2JqZWN0V2l0aElkKFxuICAgICAgICBbYWN0aW9uLnBheWxvYWQubWVtbywgLi4uc3RhdGUubWVtb3NdLnNvcnQoXG4gICAgICAgICAgKGEsIGIpID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmNyZWF0ZWRBdCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5jcmVhdGVkQXQpLFxuICAgICAgICApLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1lbW9zLFxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSAnREVMRVRFX01FTU9fQllfSUQnOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWVtb3M6IFsuLi5zdGF0ZS5tZW1vc10uZmlsdGVyKChtZW1vKSA9PiBtZW1vLmlkICE9PSBhY3Rpb24ucGF5bG9hZC5pZCksXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdFRElUX01FTU8nOiB7XG4gICAgICBjb25zdCBtZW1vcyA9IHN0YXRlLm1lbW9zLm1hcCgobSkgPT4ge1xuICAgICAgICBpZiAobS5pZCA9PT0gYWN0aW9uLnBheWxvYWQuaWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubSxcbiAgICAgICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWVtb3MsXG4gICAgICB9O1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RhdGU6IFN0YXRlID0ge1xuICBtZW1vczogW10sXG4gIHRhZ3M6IFtdLFxufTtcbiIsImV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xuICB1c2VyOiBNb2RlbC5Vc2VyIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIFNpZ25JbkFjdGlvbiB7XG4gIHR5cGU6ICdTSUdOX0lOJztcbiAgcGF5bG9hZDogU3RhdGU7XG59XG5cbmludGVyZmFjZSBTaWduT3V0QWN0aW9uIHtcbiAgdHlwZTogJ1NJR05fT1VUJztcbiAgcGF5bG9hZDogbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9ucyA9IFNpZ25JbkFjdGlvbiB8IFNpZ25PdXRBY3Rpb247XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnU0lHTl9JTic6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVzZXI6IGFjdGlvbi5wYXlsb2FkLnVzZXIsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdTSUdOX09VVCc6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVzZXI6IG51bGwsXG4gICAgICB9O1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RhdGU6IFN0YXRlID0ge3VzZXI6IG51bGx9O1xuIiwiaW1wb3J0IHV0aWxzIGZyb20gJy4uL2hlbHBlcnMvdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgcXVlcmllczogTW9kZWwuUXVlcnlbXTtcbn1cblxuaW50ZXJmYWNlIFNldFF1ZXJpZXMge1xuICB0eXBlOiAnU0VUX1FVRVJJRVMnO1xuICBwYXlsb2FkOiB7XG4gICAgcXVlcmllczogTW9kZWwuUXVlcnlbXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIEluc2VydFF1ZXJ5QWN0aW9uIHtcbiAgdHlwZTogJ0lOU0VSVF9RVUVSWSc7XG4gIHBheWxvYWQ6IHtcbiAgICBxdWVyeTogTW9kZWwuUXVlcnk7XG4gIH07XG59XG5cbmludGVyZmFjZSBEZWxldGVRdWVyeUJ5SWRBY3Rpb24ge1xuICB0eXBlOiAnREVMRVRFX1FVRVJZX0JZX0lEJztcbiAgcGF5bG9hZDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBVcGRhdGVRdWVyeUFjdGlvbiB7XG4gIHR5cGU6ICdVUERBVEVfUVVFUlknO1xuICBwYXlsb2FkOiBNb2RlbC5RdWVyeTtcbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9ucyA9IFNldFF1ZXJpZXMgfCBJbnNlcnRRdWVyeUFjdGlvbiB8IERlbGV0ZVF1ZXJ5QnlJZEFjdGlvbiB8IFVwZGF0ZVF1ZXJ5QWN0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlcihzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9ucyk6IFN0YXRlIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ1NFVF9RVUVSSUVTJzoge1xuICAgICAgY29uc3QgcXVlcmllcyA9IHV0aWxzLmRlZHVwZU9iamVjdFdpdGhJZChcbiAgICAgICAgYWN0aW9uLnBheWxvYWQucXVlcmllc1xuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYi5jcmVhdGVkQXQpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSlcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGIucGlubmVkQXQgPz8gMCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5waW5uZWRBdCA/PyAwKSksXG4gICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcXVlcmllcyxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ0lOU0VSVF9RVUVSWSc6IHtcbiAgICAgIGNvbnN0IHF1ZXJpZXMgPSB1dGlscy5kZWR1cGVPYmplY3RXaXRoSWQoXG4gICAgICAgIFthY3Rpb24ucGF5bG9hZC5xdWVyeSwgLi4uc3RhdGUucXVlcmllc10uc29ydChcbiAgICAgICAgICAoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGIuY3JlYXRlZEF0KSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShhLmNyZWF0ZWRBdCksXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcXVlcmllcyxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ0RFTEVURV9RVUVSWV9CWV9JRCc6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBxdWVyaWVzOiBbLi4uc3RhdGUucXVlcmllc10uZmlsdGVyKChxdWVyeSkgPT4gcXVlcnkuaWQgIT09IGFjdGlvbi5wYXlsb2FkLmlkKSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ1VQREFURV9RVUVSWSc6IHtcbiAgICAgIGNvbnN0IHF1ZXJpZXMgPSBzdGF0ZS5xdWVyaWVzLm1hcCgobSkgPT4ge1xuICAgICAgICBpZiAobS5pZCA9PT0gYWN0aW9uLnBheWxvYWQuaWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubSxcbiAgICAgICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcXVlcmllcyxcbiAgICAgIH07XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTdGF0ZTogU3RhdGUgPSB7XG4gIHF1ZXJpZXM6IFtdLFxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblxudmFyIG9ic2lkaWFuID0gcmVxdWlyZSgnb2JzaWRpYW4nKTtcblxuY29uc3QgREVGQVVMVF9EQUlMWV9OT1RFX0ZPUk1BVCA9IFwiWVlZWS1NTS1ERFwiO1xuY29uc3QgREVGQVVMVF9XRUVLTFlfTk9URV9GT1JNQVQgPSBcImdnZ2ctW1ddd3dcIjtcbmNvbnN0IERFRkFVTFRfTU9OVEhMWV9OT1RFX0ZPUk1BVCA9IFwiWVlZWS1NTVwiO1xuY29uc3QgREVGQVVMVF9RVUFSVEVSTFlfTk9URV9GT1JNQVQgPSBcIllZWVktW1FdUVwiO1xuY29uc3QgREVGQVVMVF9ZRUFSTFlfTk9URV9GT1JNQVQgPSBcIllZWVlcIjtcblxuZnVuY3Rpb24gc2hvdWxkVXNlUGVyaW9kaWNOb3Rlc1NldHRpbmdzKHBlcmlvZGljaXR5KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gd2luZG93LmFwcC5wbHVnaW5zLmdldFBsdWdpbihcInBlcmlvZGljLW5vdGVzXCIpO1xuICAgIHJldHVybiBwZXJpb2RpY05vdGVzICYmIHBlcmlvZGljTm90ZXMuc2V0dGluZ3M/LltwZXJpb2RpY2l0eV0/LmVuYWJsZWQ7XG59XG4vKipcbiAqIFJlYWQgdGhlIHVzZXIgc2V0dGluZ3MgZm9yIHRoZSBgZGFpbHktbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldERhaWx5Tm90ZVNldHRpbmdzKCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IHsgaW50ZXJuYWxQbHVnaW5zLCBwbHVnaW5zIH0gPSB3aW5kb3cuYXBwO1xuICAgICAgICBpZiAoc2hvdWxkVXNlUGVyaW9kaWNOb3Rlc1NldHRpbmdzKFwiZGFpbHlcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZm9ybWF0LCBmb2xkZXIsIHRlbXBsYXRlIH0gPSBwbHVnaW5zLmdldFBsdWdpbihcInBlcmlvZGljLW5vdGVzXCIpPy5zZXR0aW5ncz8uZGFpbHkgfHwge307XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZvcm1hdDogZm9ybWF0IHx8IERFRkFVTFRfREFJTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICAgICAgZm9sZGVyOiBmb2xkZXI/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZT8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZm9sZGVyLCBmb3JtYXQsIHRlbXBsYXRlIH0gPSBpbnRlcm5hbFBsdWdpbnMuZ2V0UGx1Z2luQnlJZChcImRhaWx5LW5vdGVzXCIpPy5pbnN0YW5jZT8ub3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZvcm1hdDogZm9ybWF0IHx8IERFRkFVTFRfREFJTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICBmb2xkZXI6IGZvbGRlcj8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSBkYWlseSBub3RlIHNldHRpbmdzIGZvdW5kIVwiLCBlcnIpO1xuICAgIH1cbn1cbi8qKlxuICogUmVhZCB0aGUgdXNlciBzZXR0aW5ncyBmb3IgdGhlIGB3ZWVrbHktbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldFdlZWtseU5vdGVTZXR0aW5ncygpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBwbHVnaW5NYW5hZ2VyID0gd2luZG93LmFwcC5wbHVnaW5zO1xuICAgICAgICBjb25zdCBjYWxlbmRhclNldHRpbmdzID0gcGx1Z2luTWFuYWdlci5nZXRQbHVnaW4oXCJjYWxlbmRhclwiKT8ub3B0aW9ucztcbiAgICAgICAgY29uc3QgcGVyaW9kaWNOb3Rlc1NldHRpbmdzID0gcGx1Z2luTWFuYWdlci5nZXRQbHVnaW4oXCJwZXJpb2RpYy1ub3Rlc1wiKT8uc2V0dGluZ3M/LndlZWtseTtcbiAgICAgICAgaWYgKHNob3VsZFVzZVBlcmlvZGljTm90ZXNTZXR0aW5ncyhcIndlZWtseVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IHBlcmlvZGljTm90ZXNTZXR0aW5ncy5mb3JtYXQgfHwgREVGQVVMVF9XRUVLTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICAgICAgZm9sZGVyOiBwZXJpb2RpY05vdGVzU2V0dGluZ3MuZm9sZGVyPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogcGVyaW9kaWNOb3Rlc1NldHRpbmdzLnRlbXBsYXRlPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBjYWxlbmRhclNldHRpbmdzIHx8IHt9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ybWF0OiBzZXR0aW5ncy53ZWVrbHlOb3RlRm9ybWF0IHx8IERFRkFVTFRfV0VFS0xZX05PVEVfRk9STUFULFxuICAgICAgICAgICAgZm9sZGVyOiBzZXR0aW5ncy53ZWVrbHlOb3RlRm9sZGVyPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgIHRlbXBsYXRlOiBzZXR0aW5ncy53ZWVrbHlOb3RlVGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSB3ZWVrbHkgbm90ZSBzZXR0aW5ncyBmb3VuZCFcIiwgZXJyKTtcbiAgICB9XG59XG4vKipcbiAqIFJlYWQgdGhlIHVzZXIgc2V0dGluZ3MgZm9yIHRoZSBgcGVyaW9kaWMtbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldE1vbnRobHlOb3RlU2V0dGluZ3MoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwbHVnaW5NYW5hZ2VyID0gd2luZG93LmFwcC5wbHVnaW5zO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gKHNob3VsZFVzZVBlcmlvZGljTm90ZXNTZXR0aW5ncyhcIm1vbnRobHlcIikgJiZcbiAgICAgICAgICAgIHBsdWdpbk1hbmFnZXIuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik/LnNldHRpbmdzPy5tb250aGx5KSB8fFxuICAgICAgICAgICAge307XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmb3JtYXQ6IHNldHRpbmdzLmZvcm1hdCB8fCBERUZBVUxUX01PTlRITFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICBmb2xkZXI6IHNldHRpbmdzLmZvbGRlcj8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogc2V0dGluZ3MudGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSBtb250aGx5IG5vdGUgc2V0dGluZ3MgZm91bmQhXCIsIGVycik7XG4gICAgfVxufVxuLyoqXG4gKiBSZWFkIHRoZSB1c2VyIHNldHRpbmdzIGZvciB0aGUgYHBlcmlvZGljLW5vdGVzYCBwbHVnaW5cbiAqIHRvIGtlZXAgYmVoYXZpb3Igb2YgY3JlYXRpbmcgYSBuZXcgbm90ZSBpbi1zeW5jLlxuICovXG5mdW5jdGlvbiBnZXRRdWFydGVybHlOb3RlU2V0dGluZ3MoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwbHVnaW5NYW5hZ2VyID0gd2luZG93LmFwcC5wbHVnaW5zO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gKHNob3VsZFVzZVBlcmlvZGljTm90ZXNTZXR0aW5ncyhcInF1YXJ0ZXJseVwiKSAmJlxuICAgICAgICAgICAgcGx1Z2luTWFuYWdlci5nZXRQbHVnaW4oXCJwZXJpb2RpYy1ub3Rlc1wiKT8uc2V0dGluZ3M/LnF1YXJ0ZXJseSkgfHxcbiAgICAgICAgICAgIHt9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ybWF0OiBzZXR0aW5ncy5mb3JtYXQgfHwgREVGQVVMVF9RVUFSVEVSTFlfTk9URV9GT1JNQVQsXG4gICAgICAgICAgICBmb2xkZXI6IHNldHRpbmdzLmZvbGRlcj8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogc2V0dGluZ3MudGVtcGxhdGU/LnRyaW0oKSB8fCBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIk5vIGN1c3RvbSBxdWFydGVybHkgbm90ZSBzZXR0aW5ncyBmb3VuZCFcIiwgZXJyKTtcbiAgICB9XG59XG4vKipcbiAqIFJlYWQgdGhlIHVzZXIgc2V0dGluZ3MgZm9yIHRoZSBgcGVyaW9kaWMtbm90ZXNgIHBsdWdpblxuICogdG8ga2VlcCBiZWhhdmlvciBvZiBjcmVhdGluZyBhIG5ldyBub3RlIGluLXN5bmMuXG4gKi9cbmZ1bmN0aW9uIGdldFllYXJseU5vdGVTZXR0aW5ncygpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHBsdWdpbk1hbmFnZXIgPSB3aW5kb3cuYXBwLnBsdWdpbnM7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSAoc2hvdWxkVXNlUGVyaW9kaWNOb3Rlc1NldHRpbmdzKFwieWVhcmx5XCIpICYmXG4gICAgICAgICAgICBwbHVnaW5NYW5hZ2VyLmdldFBsdWdpbihcInBlcmlvZGljLW5vdGVzXCIpPy5zZXR0aW5ncz8ueWVhcmx5KSB8fFxuICAgICAgICAgICAge307XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmb3JtYXQ6IHNldHRpbmdzLmZvcm1hdCB8fCBERUZBVUxUX1lFQVJMWV9OT1RFX0ZPUk1BVCxcbiAgICAgICAgICAgIGZvbGRlcjogc2V0dGluZ3MuZm9sZGVyPy50cmltKCkgfHwgXCJcIixcbiAgICAgICAgICAgIHRlbXBsYXRlOiBzZXR0aW5ncy50ZW1wbGF0ZT8udHJpbSgpIHx8IFwiXCIsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5pbmZvKFwiTm8gY3VzdG9tIHllYXJseSBub3RlIHNldHRpbmdzIGZvdW5kIVwiLCBlcnIpO1xuICAgIH1cbn1cblxuLy8gQ3JlZGl0OiBAY3JlYXRpb25peC9wYXRoLmpzXG5mdW5jdGlvbiBqb2luKC4uLnBhcnRTZWdtZW50cykge1xuICAgIC8vIFNwbGl0IHRoZSBpbnB1dHMgaW50byBhIGxpc3Qgb2YgcGF0aCBjb21tYW5kcy5cbiAgICBsZXQgcGFydHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHBhcnRTZWdtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgcGFydHMgPSBwYXJ0cy5jb25jYXQocGFydFNlZ21lbnRzW2ldLnNwbGl0KFwiL1wiKSk7XG4gICAgfVxuICAgIC8vIEludGVycHJldCB0aGUgcGF0aCBjb21tYW5kcyB0byBnZXQgdGhlIG5ldyByZXNvbHZlZCBwYXRoLlxuICAgIGNvbnN0IG5ld1BhcnRzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgY29uc3QgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgICAvLyBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc2xhc2hlc1xuICAgICAgICAvLyBBbHNvIHJlbW92ZSBcIi5cIiBzZWdtZW50c1xuICAgICAgICBpZiAoIXBhcnQgfHwgcGFydCA9PT0gXCIuXCIpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgLy8gUHVzaCBuZXcgcGF0aCBzZWdtZW50cy5cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgbmV3UGFydHMucHVzaChwYXJ0KTtcbiAgICB9XG4gICAgLy8gUHJlc2VydmUgdGhlIGluaXRpYWwgc2xhc2ggaWYgdGhlcmUgd2FzIG9uZS5cbiAgICBpZiAocGFydHNbMF0gPT09IFwiXCIpXG4gICAgICAgIG5ld1BhcnRzLnVuc2hpZnQoXCJcIik7XG4gICAgLy8gVHVybiBiYWNrIGludG8gYSBzaW5nbGUgc3RyaW5nIHBhdGguXG4gICAgcmV0dXJuIG5ld1BhcnRzLmpvaW4oXCIvXCIpO1xufVxuZnVuY3Rpb24gYmFzZW5hbWUoZnVsbFBhdGgpIHtcbiAgICBsZXQgYmFzZSA9IGZ1bGxQYXRoLnN1YnN0cmluZyhmdWxsUGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKTtcbiAgICBpZiAoYmFzZS5sYXN0SW5kZXhPZihcIi5cIikgIT0gLTEpXG4gICAgICAgIGJhc2UgPSBiYXNlLnN1YnN0cmluZygwLCBiYXNlLmxhc3RJbmRleE9mKFwiLlwiKSk7XG4gICAgcmV0dXJuIGJhc2U7XG59XG5hc3luYyBmdW5jdGlvbiBlbnN1cmVGb2xkZXJFeGlzdHMocGF0aCkge1xuICAgIGNvbnN0IGRpcnMgPSBwYXRoLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpLnNwbGl0KFwiL1wiKTtcbiAgICBkaXJzLnBvcCgpOyAvLyByZW1vdmUgYmFzZW5hbWVcbiAgICBpZiAoZGlycy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZGlyID0gam9pbiguLi5kaXJzKTtcbiAgICAgICAgaWYgKCF3aW5kb3cuYXBwLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChkaXIpKSB7XG4gICAgICAgICAgICBhd2FpdCB3aW5kb3cuYXBwLnZhdWx0LmNyZWF0ZUZvbGRlcihkaXIpO1xuICAgICAgICB9XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Tm90ZVBhdGgoZGlyZWN0b3J5LCBmaWxlbmFtZSkge1xuICAgIGlmICghZmlsZW5hbWUuZW5kc1dpdGgoXCIubWRcIikpIHtcbiAgICAgICAgZmlsZW5hbWUgKz0gXCIubWRcIjtcbiAgICB9XG4gICAgY29uc3QgcGF0aCA9IG9ic2lkaWFuLm5vcm1hbGl6ZVBhdGgoam9pbihkaXJlY3RvcnksIGZpbGVuYW1lKSk7XG4gICAgYXdhaXQgZW5zdXJlRm9sZGVyRXhpc3RzKHBhdGgpO1xuICAgIHJldHVybiBwYXRoO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlKSB7XG4gICAgY29uc3QgeyBtZXRhZGF0YUNhY2hlLCB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB0ZW1wbGF0ZVBhdGggPSBvYnNpZGlhbi5ub3JtYWxpemVQYXRoKHRlbXBsYXRlKTtcbiAgICBpZiAodGVtcGxhdGVQYXRoID09PSBcIi9cIikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtcIlwiLCBudWxsXSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlRmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QodGVtcGxhdGVQYXRoLCBcIlwiKTtcbiAgICAgICAgY29uc3QgY29udGVudHMgPSBhd2FpdCB2YXVsdC5jYWNoZWRSZWFkKHRlbXBsYXRlRmlsZSk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IElGb2xkSW5mbyA9IHdpbmRvdy5hcHAuZm9sZE1hbmFnZXIubG9hZCh0ZW1wbGF0ZUZpbGUpO1xuICAgICAgICByZXR1cm4gW2NvbnRlbnRzLCBJRm9sZEluZm9dO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byByZWFkIHRoZSBkYWlseSBub3RlIHRlbXBsYXRlICcke3RlbXBsYXRlUGF0aH0nYCwgZXJyKTtcbiAgICAgICAgbmV3IG9ic2lkaWFuLk5vdGljZShcIkZhaWxlZCB0byByZWFkIHRoZSBkYWlseSBub3RlIHRlbXBsYXRlXCIpO1xuICAgICAgICByZXR1cm4gW1wiXCIsIG51bGxdO1xuICAgIH1cbn1cblxuLyoqXG4gKiBkYXRlVUlEIGlzIGEgd2F5IG9mIHdlZWtseSBpZGVudGlmeWluZyBkYWlseS93ZWVrbHkvbW9udGhseSBub3Rlcy5cbiAqIFRoZXkgYXJlIHByZWZpeGVkIHdpdGggdGhlIGdyYW51bGFyaXR5IHRvIGF2b2lkIGFtYmlndWl0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0RGF0ZVVJRChkYXRlLCBncmFudWxhcml0eSA9IFwiZGF5XCIpIHtcbiAgICBjb25zdCB0cyA9IGRhdGUuY2xvbmUoKS5zdGFydE9mKGdyYW51bGFyaXR5KS5mb3JtYXQoKTtcbiAgICByZXR1cm4gYCR7Z3JhbnVsYXJpdHl9LSR7dHN9YDtcbn1cbmZ1bmN0aW9uIHJlbW92ZUVzY2FwZWRDaGFyYWN0ZXJzKGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXQucmVwbGFjZSgvXFxbW15cXF1dKlxcXS9nLCBcIlwiKTsgLy8gcmVtb3ZlIGV2ZXJ5dGhpbmcgd2l0aGluIGJyYWNrZXRzXG59XG4vKipcbiAqIFhYWDogV2hlbiBwYXJzaW5nIGRhdGVzIHRoYXQgY29udGFpbiBib3RoIHdlZWsgbnVtYmVycyBhbmQgbW9udGhzLFxuICogTW9tZW50IGNob3NlcyB0byBpZ25vcmUgdGhlIHdlZWsgbnVtYmVycy4gRm9yIHRoZSB3ZWVrIGRhdGVVSUQsIHdlXG4gKiB3YW50IHRoZSBvcHBvc2l0ZSBiZWhhdmlvci4gU3RyaXAgdGhlIE1NTSBmcm9tIHRoZSBmb3JtYXQgdG8gcGF0Y2guXG4gKi9cbmZ1bmN0aW9uIGlzRm9ybWF0QW1iaWd1b3VzKGZvcm1hdCwgZ3JhbnVsYXJpdHkpIHtcbiAgICBpZiAoZ3JhbnVsYXJpdHkgPT09IFwid2Vla1wiKSB7XG4gICAgICAgIGNvbnN0IGNsZWFuRm9ybWF0ID0gcmVtb3ZlRXNjYXBlZENoYXJhY3RlcnMoZm9ybWF0KTtcbiAgICAgICAgcmV0dXJuICgvd3sxLDJ9L2kudGVzdChjbGVhbkZvcm1hdCkgJiZcbiAgICAgICAgICAgICgvTXsxLDR9Ly50ZXN0KGNsZWFuRm9ybWF0KSB8fCAvRHsxLDR9Ly50ZXN0KGNsZWFuRm9ybWF0KSkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBnZXREYXRlRnJvbUZpbGUoZmlsZSwgZ3JhbnVsYXJpdHkpIHtcbiAgICByZXR1cm4gZ2V0RGF0ZUZyb21GaWxlbmFtZShmaWxlLmJhc2VuYW1lLCBncmFudWxhcml0eSk7XG59XG5mdW5jdGlvbiBnZXREYXRlRnJvbVBhdGgocGF0aCwgZ3JhbnVsYXJpdHkpIHtcbiAgICByZXR1cm4gZ2V0RGF0ZUZyb21GaWxlbmFtZShiYXNlbmFtZShwYXRoKSwgZ3JhbnVsYXJpdHkpO1xufVxuZnVuY3Rpb24gZ2V0RGF0ZUZyb21GaWxlbmFtZShmaWxlbmFtZSwgZ3JhbnVsYXJpdHkpIHtcbiAgICBjb25zdCBnZXRTZXR0aW5ncyA9IHtcbiAgICAgICAgZGF5OiBnZXREYWlseU5vdGVTZXR0aW5ncyxcbiAgICAgICAgd2VlazogZ2V0V2Vla2x5Tm90ZVNldHRpbmdzLFxuICAgICAgICBtb250aDogZ2V0TW9udGhseU5vdGVTZXR0aW5ncyxcbiAgICAgICAgcXVhcnRlcjogZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzLFxuICAgICAgICB5ZWFyOiBnZXRZZWFybHlOb3RlU2V0dGluZ3MsXG4gICAgfTtcbiAgICBjb25zdCBmb3JtYXQgPSBnZXRTZXR0aW5nc1tncmFudWxhcml0eV0oKS5mb3JtYXQuc3BsaXQoXCIvXCIpLnBvcCgpO1xuICAgIGNvbnN0IG5vdGVEYXRlID0gd2luZG93Lm1vbWVudChmaWxlbmFtZSwgZm9ybWF0LCB0cnVlKTtcbiAgICBpZiAoIW5vdGVEYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGlzRm9ybWF0QW1iaWd1b3VzKGZvcm1hdCwgZ3JhbnVsYXJpdHkpKSB7XG4gICAgICAgIGlmIChncmFudWxhcml0eSA9PT0gXCJ3ZWVrXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuRm9ybWF0ID0gcmVtb3ZlRXNjYXBlZENoYXJhY3RlcnMoZm9ybWF0KTtcbiAgICAgICAgICAgIGlmICgvd3sxLDJ9L2kudGVzdChjbGVhbkZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93Lm1vbWVudChmaWxlbmFtZSwgXG4gICAgICAgICAgICAgICAgLy8gSWYgZm9ybWF0IGNvbnRhaW5zIHdlZWssIHJlbW92ZSBkYXkgJiBtb250aCBmb3JtYXR0aW5nXG4gICAgICAgICAgICAgICAgZm9ybWF0LnJlcGxhY2UoL017MSw0fS9nLCBcIlwiKS5yZXBsYWNlKC9EezEsNH0vZywgXCJcIiksIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm90ZURhdGU7XG59XG5cbmNsYXNzIERhaWx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gbWltaWNzIHRoZSBiZWhhdmlvciBvZiB0aGUgZGFpbHktbm90ZXMgcGx1Z2luXG4gKiBzbyBpdCB3aWxsIHJlcGxhY2Uge3tkYXRlfX0sIHt7dGl0bGV9fSwgYW5kIHt7dGltZX19IHdpdGggdGhlXG4gKiBmb3JtYXR0ZWQgdGltZXN0YW1wLlxuICpcbiAqIE5vdGU6IGl0IGhhcyBhbiBhZGRlZCBib251cyB0aGF0IGl0J3Mgbm90ICd0b2RheScgc3BlY2lmaWMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZURhaWx5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgYXBwID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHZhdWx0IH0gPSBhcHA7XG4gICAgY29uc3QgbW9tZW50ID0gd2luZG93Lm1vbWVudDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0RGFpbHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCBbdGVtcGxhdGVDb250ZW50cywgSUZvbGRJbmZvXSA9IGF3YWl0IGdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBkYXRlLmZvcm1hdChmb3JtYXQpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gYXdhaXQgZ2V0Tm90ZVBhdGgoZm9sZGVyLCBmaWxlbmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY3JlYXRlZEZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGUobm9ybWFsaXplZFBhdGgsIHRlbXBsYXRlQ29udGVudHNcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccypkYXRlXFxzKn19L2dpLCBmaWxlbmFtZSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aW1lXFxzKn19L2dpLCBtb21lbnQoKS5mb3JtYXQoXCJISDptbVwiKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aXRsZVxccyp9fS9naSwgZmlsZW5hbWUpXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqKGRhdGV8dGltZSlcXHMqKChbKy1dXFxkKykoW3lxbXdkaHNdKSk/XFxzKig6Lis/KT99fS9naSwgKF8sIF90aW1lT3JEYXRlLCBjYWxjLCB0aW1lRGVsdGEsIHVuaXQsIG1vbWVudEZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gbW9tZW50KCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IGRhdGUuY2xvbmUoKS5zZXQoe1xuICAgICAgICAgICAgICAgIGhvdXI6IG5vdy5nZXQoXCJob3VyXCIpLFxuICAgICAgICAgICAgICAgIG1pbnV0ZTogbm93LmdldChcIm1pbnV0ZVwiKSxcbiAgICAgICAgICAgICAgICBzZWNvbmQ6IG5vdy5nZXQoXCJzZWNvbmRcIiksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChjYWxjKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKHBhcnNlSW50KHRpbWVEZWx0YSwgMTApLCB1bml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtb21lbnRGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KG1vbWVudEZvcm1hdC5zdWJzdHJpbmcoMSkudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50RGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp5ZXN0ZXJkYXlcXHMqfX0vZ2ksIGRhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCBcImRheVwiKS5mb3JtYXQoZm9ybWF0KSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0b21vcnJvd1xccyp9fS9naSwgZGF0ZS5jbG9uZSgpLmFkZCgxLCBcImRcIikuZm9ybWF0KGZvcm1hdCkpKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgYXBwLmZvbGRNYW5hZ2VyLnNhdmUoY3JlYXRlZEZpbGUsIElGb2xkSW5mbyk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkRmlsZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGZpbGU6ICcke25vcm1hbGl6ZWRQYXRofSdgLCBlcnIpO1xuICAgICAgICBuZXcgb2JzaWRpYW4uTm90aWNlKFwiVW5hYmxlIHRvIGNyZWF0ZSBuZXcgZmlsZS5cIik7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0RGFpbHlOb3RlKGRhdGUsIGRhaWx5Tm90ZXMpIHtcbiAgICByZXR1cm4gZGFpbHlOb3Rlc1tnZXREYXRlVUlEKGRhdGUsIFwiZGF5XCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsRGFpbHlOb3RlcygpIHtcbiAgICAvKipcbiAgICAgKiBGaW5kIGFsbCBkYWlseSBub3RlcyBpbiB0aGUgZGFpbHkgbm90ZSBmb2xkZXJcbiAgICAgKi9cbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSBnZXREYWlseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IGRhaWx5Tm90ZXNGb2xkZXIgPSB2YXVsdC5nZXRBYnN0cmFjdEZpbGVCeVBhdGgob2JzaWRpYW4ubm9ybWFsaXplUGF0aChmb2xkZXIpKTtcbiAgICBpZiAoIWRhaWx5Tm90ZXNGb2xkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IERhaWx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IoXCJGYWlsZWQgdG8gZmluZCBkYWlseSBub3RlcyBmb2xkZXJcIik7XG4gICAgfVxuICAgIGNvbnN0IGRhaWx5Tm90ZXMgPSB7fTtcbiAgICBvYnNpZGlhbi5WYXVsdC5yZWN1cnNlQ2hpbGRyZW4oZGFpbHlOb3Rlc0ZvbGRlciwgKG5vdGUpID0+IHtcbiAgICAgICAgaWYgKG5vdGUgaW5zdGFuY2VvZiBvYnNpZGlhbi5URmlsZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGdldERhdGVGcm9tRmlsZShub3RlLCBcImRheVwiKTtcbiAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGdldERhdGVVSUQoZGF0ZSwgXCJkYXlcIik7XG4gICAgICAgICAgICAgICAgZGFpbHlOb3Rlc1tkYXRlU3RyaW5nXSA9IG5vdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGFpbHlOb3Rlcztcbn1cblxuY2xhc3MgV2Vla2x5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG59XG5mdW5jdGlvbiBnZXREYXlzT2ZXZWVrKCkge1xuICAgIGNvbnN0IHsgbW9tZW50IH0gPSB3aW5kb3c7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBsZXQgd2Vla1N0YXJ0ID0gbW9tZW50LmxvY2FsZURhdGEoKS5fd2Vlay5kb3c7XG4gICAgY29uc3QgZGF5c09mV2VlayA9IFtcbiAgICAgICAgXCJzdW5kYXlcIixcbiAgICAgICAgXCJtb25kYXlcIixcbiAgICAgICAgXCJ0dWVzZGF5XCIsXG4gICAgICAgIFwid2VkbmVzZGF5XCIsXG4gICAgICAgIFwidGh1cnNkYXlcIixcbiAgICAgICAgXCJmcmlkYXlcIixcbiAgICAgICAgXCJzYXR1cmRheVwiLFxuICAgIF07XG4gICAgd2hpbGUgKHdlZWtTdGFydCkge1xuICAgICAgICBkYXlzT2ZXZWVrLnB1c2goZGF5c09mV2Vlay5zaGlmdCgpKTtcbiAgICAgICAgd2Vla1N0YXJ0LS07XG4gICAgfVxuICAgIHJldHVybiBkYXlzT2ZXZWVrO1xufVxuZnVuY3Rpb24gZ2V0RGF5T2ZXZWVrTnVtZXJpY2FsVmFsdWUoZGF5T2ZXZWVrTmFtZSkge1xuICAgIHJldHVybiBnZXREYXlzT2ZXZWVrKCkuaW5kZXhPZihkYXlPZldlZWtOYW1lLnRvTG93ZXJDYXNlKCkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlV2Vla2x5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0V2Vla2x5Tm90ZVNldHRpbmdzKCk7XG4gICAgY29uc3QgW3RlbXBsYXRlQ29udGVudHMsIElGb2xkSW5mb10gPSBhd2FpdCBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGUpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gZGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGF3YWl0IGdldE5vdGVQYXRoKGZvbGRlciwgZmlsZW5hbWUpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWRGaWxlID0gYXdhaXQgdmF1bHQuY3JlYXRlKG5vcm1hbGl6ZWRQYXRoLCB0ZW1wbGF0ZUNvbnRlbnRzXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqKGRhdGV8dGltZSlcXHMqKChbKy1dXFxkKykoW3lxbXdkaHNdKSk/XFxzKig6Lis/KT99fS9naSwgKF8sIF90aW1lT3JEYXRlLCBjYWxjLCB0aW1lRGVsdGEsIHVuaXQsIG1vbWVudEZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gd2luZG93Lm1vbWVudCgpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBkYXRlLmNsb25lKCkuc2V0KHtcbiAgICAgICAgICAgICAgICBob3VyOiBub3cuZ2V0KFwiaG91clwiKSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IG5vdy5nZXQoXCJtaW51dGVcIiksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiBub3cuZ2V0KFwic2Vjb25kXCIpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoY2FsYykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnREYXRlLmFkZChwYXJzZUludCh0aW1lRGVsdGEsIDEwKSwgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9tZW50Rm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnREYXRlLmZvcm1hdChtb21lbnRGb3JtYXQuc3Vic3RyaW5nKDEpLnRyaW0oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KGZvcm1hdCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqdGl0bGVcXHMqfX0vZ2ksIGZpbGVuYW1lKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKnRpbWVcXHMqfX0vZ2ksIHdpbmRvdy5tb21lbnQoKS5mb3JtYXQoXCJISDptbVwiKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyooc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpXFxzKjooLio/KX19L2dpLCAoXywgZGF5T2ZXZWVrLCBtb21lbnRGb3JtYXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRheSA9IGdldERheU9mV2Vla051bWVyaWNhbFZhbHVlKGRheU9mV2Vlayk7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS53ZWVrZGF5KGRheSkuZm9ybWF0KG1vbWVudEZvcm1hdC50cmltKCkpO1xuICAgICAgICB9KSk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHdpbmRvdy5hcHAuZm9sZE1hbmFnZXIuc2F2ZShjcmVhdGVkRmlsZSwgSUZvbGRJbmZvKTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRGaWxlO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZmlsZTogJyR7bm9ybWFsaXplZFBhdGh9J2AsIGVycik7XG4gICAgICAgIG5ldyBvYnNpZGlhbi5Ob3RpY2UoXCJVbmFibGUgdG8gY3JlYXRlIG5ldyBmaWxlLlwiKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRXZWVrbHlOb3RlKGRhdGUsIHdlZWtseU5vdGVzKSB7XG4gICAgcmV0dXJuIHdlZWtseU5vdGVzW2dldERhdGVVSUQoZGF0ZSwgXCJ3ZWVrXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsV2Vla2x5Tm90ZXMoKSB7XG4gICAgY29uc3Qgd2Vla2x5Tm90ZXMgPSB7fTtcbiAgICBpZiAoIWFwcEhhc1dlZWtseU5vdGVzUGx1Z2luTG9hZGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHdlZWtseU5vdGVzO1xuICAgIH1cbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSBnZXRXZWVrbHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCB3ZWVrbHlOb3Rlc0ZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICghd2Vla2x5Tm90ZXNGb2xkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFdlZWtseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yKFwiRmFpbGVkIHRvIGZpbmQgd2Vla2x5IG5vdGVzIGZvbGRlclwiKTtcbiAgICB9XG4gICAgb2JzaWRpYW4uVmF1bHQucmVjdXJzZUNoaWxkcmVuKHdlZWtseU5vdGVzRm9sZGVyLCAobm90ZSkgPT4ge1xuICAgICAgICBpZiAobm90ZSBpbnN0YW5jZW9mIG9ic2lkaWFuLlRGaWxlKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gZ2V0RGF0ZUZyb21GaWxlKG5vdGUsIFwid2Vla1wiKTtcbiAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGdldERhdGVVSUQoZGF0ZSwgXCJ3ZWVrXCIpO1xuICAgICAgICAgICAgICAgIHdlZWtseU5vdGVzW2RhdGVTdHJpbmddID0gbm90ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB3ZWVrbHlOb3Rlcztcbn1cblxuY2xhc3MgTW9udGhseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIG1pbWljcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGRhaWx5LW5vdGVzIHBsdWdpblxuICogc28gaXQgd2lsbCByZXBsYWNlIHt7ZGF0ZX19LCB7e3RpdGxlfX0sIGFuZCB7e3RpbWV9fSB3aXRoIHRoZVxuICogZm9ybWF0dGVkIHRpbWVzdGFtcC5cbiAqXG4gKiBOb3RlOiBpdCBoYXMgYW4gYWRkZWQgYm9udXMgdGhhdCBpdCdzIG5vdCAndG9kYXknIHNwZWNpZmljLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVNb250aGx5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0TW9udGhseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IFt0ZW1wbGF0ZUNvbnRlbnRzLCBJRm9sZEluZm9dID0gYXdhaXQgZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGRhdGUuZm9ybWF0KGZvcm1hdCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBhd2FpdCBnZXROb3RlUGF0aChmb2xkZXIsIGZpbGVuYW1lKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBjcmVhdGVkRmlsZSA9IGF3YWl0IHZhdWx0LmNyZWF0ZShub3JtYWxpemVkUGF0aCwgdGVtcGxhdGVDb250ZW50c1xuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKihkYXRlfHRpbWUpXFxzKigoWystXVxcZCspKFt5cW13ZGhzXSkpP1xccyooOi4rPyk/fX0vZ2ksIChfLCBfdGltZU9yRGF0ZSwgY2FsYywgdGltZURlbHRhLCB1bml0LCBtb21lbnRGb3JtYXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IHdpbmRvdy5tb21lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gZGF0ZS5jbG9uZSgpLnNldCh7XG4gICAgICAgICAgICAgICAgaG91cjogbm93LmdldChcImhvdXJcIiksXG4gICAgICAgICAgICAgICAgbWludXRlOiBub3cuZ2V0KFwibWludXRlXCIpLFxuICAgICAgICAgICAgICAgIHNlY29uZDogbm93LmdldChcInNlY29uZFwiKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGNhbGMpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50RGF0ZS5hZGQocGFyc2VJbnQodGltZURlbHRhLCAxMCksIHVuaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1vbWVudEZvcm1hdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50RGF0ZS5mb3JtYXQobW9tZW50Rm9ybWF0LnN1YnN0cmluZygxKS50cmltKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnREYXRlLmZvcm1hdChmb3JtYXQpO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKmRhdGVcXHMqfX0vZ2ksIGZpbGVuYW1lKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKnRpbWVcXHMqfX0vZ2ksIHdpbmRvdy5tb21lbnQoKS5mb3JtYXQoXCJISDptbVwiKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aXRsZVxccyp9fS9naSwgZmlsZW5hbWUpKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgd2luZG93LmFwcC5mb2xkTWFuYWdlci5zYXZlKGNyZWF0ZWRGaWxlLCBJRm9sZEluZm8pO1xuICAgICAgICByZXR1cm4gY3JlYXRlZEZpbGU7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBmaWxlOiAnJHtub3JtYWxpemVkUGF0aH0nYCwgZXJyKTtcbiAgICAgICAgbmV3IG9ic2lkaWFuLk5vdGljZShcIlVuYWJsZSB0byBjcmVhdGUgbmV3IGZpbGUuXCIpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldE1vbnRobHlOb3RlKGRhdGUsIG1vbnRobHlOb3Rlcykge1xuICAgIHJldHVybiBtb250aGx5Tm90ZXNbZ2V0RGF0ZVVJRChkYXRlLCBcIm1vbnRoXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsTW9udGhseU5vdGVzKCkge1xuICAgIGNvbnN0IG1vbnRobHlOb3RlcyA9IHt9O1xuICAgIGlmICghYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIG1vbnRobHlOb3RlcztcbiAgICB9XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IGZvbGRlciB9ID0gZ2V0TW9udGhseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IG1vbnRobHlOb3Rlc0ZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICghbW9udGhseU5vdGVzRm9sZGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBNb250aGx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IoXCJGYWlsZWQgdG8gZmluZCBtb250aGx5IG5vdGVzIGZvbGRlclwiKTtcbiAgICB9XG4gICAgb2JzaWRpYW4uVmF1bHQucmVjdXJzZUNoaWxkcmVuKG1vbnRobHlOb3Rlc0ZvbGRlciwgKG5vdGUpID0+IHtcbiAgICAgICAgaWYgKG5vdGUgaW5zdGFuY2VvZiBvYnNpZGlhbi5URmlsZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGdldERhdGVGcm9tRmlsZShub3RlLCBcIm1vbnRoXCIpO1xuICAgICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZ2V0RGF0ZVVJRChkYXRlLCBcIm1vbnRoXCIpO1xuICAgICAgICAgICAgICAgIG1vbnRobHlOb3Rlc1tkYXRlU3RyaW5nXSA9IG5vdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbW9udGhseU5vdGVzO1xufVxuXG5jbGFzcyBRdWFydGVybHlOb3Rlc0ZvbGRlck1pc3NpbmdFcnJvciBleHRlbmRzIEVycm9yIHtcbn1cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBtaW1pY3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBkYWlseS1ub3RlcyBwbHVnaW5cbiAqIHNvIGl0IHdpbGwgcmVwbGFjZSB7e2RhdGV9fSwge3t0aXRsZX19LCBhbmQge3t0aW1lfX0gd2l0aCB0aGVcbiAqIGZvcm1hdHRlZCB0aW1lc3RhbXAuXG4gKlxuICogTm90ZTogaXQgaGFzIGFuIGFkZGVkIGJvbnVzIHRoYXQgaXQncyBub3QgJ3RvZGF5JyBzcGVjaWZpYy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlUXVhcnRlcmx5Tm90ZShkYXRlKSB7XG4gICAgY29uc3QgeyB2YXVsdCB9ID0gd2luZG93LmFwcDtcbiAgICBjb25zdCB7IHRlbXBsYXRlLCBmb3JtYXQsIGZvbGRlciB9ID0gZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzKCk7XG4gICAgY29uc3QgW3RlbXBsYXRlQ29udGVudHMsIElGb2xkSW5mb10gPSBhd2FpdCBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGUpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gZGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGF3YWl0IGdldE5vdGVQYXRoKGZvbGRlciwgZmlsZW5hbWUpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWRGaWxlID0gYXdhaXQgdmF1bHQuY3JlYXRlKG5vcm1hbGl6ZWRQYXRoLCB0ZW1wbGF0ZUNvbnRlbnRzXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqKGRhdGV8dGltZSlcXHMqKChbKy1dXFxkKykoW3lxbXdkaHNdKSk/XFxzKig6Lis/KT99fS9naSwgKF8sIF90aW1lT3JEYXRlLCBjYWxjLCB0aW1lRGVsdGEsIHVuaXQsIG1vbWVudEZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gd2luZG93Lm1vbWVudCgpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBkYXRlLmNsb25lKCkuc2V0KHtcbiAgICAgICAgICAgICAgICBob3VyOiBub3cuZ2V0KFwiaG91clwiKSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IG5vdy5nZXQoXCJtaW51dGVcIiksXG4gICAgICAgICAgICAgICAgc2Vjb25kOiBub3cuZ2V0KFwic2Vjb25kXCIpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoY2FsYykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnREYXRlLmFkZChwYXJzZUludCh0aW1lRGVsdGEsIDEwKSwgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9tZW50Rm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnREYXRlLmZvcm1hdChtb21lbnRGb3JtYXQuc3Vic3RyaW5nKDEpLnRyaW0oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KGZvcm1hdCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqZGF0ZVxccyp9fS9naSwgZmlsZW5hbWUpXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqdGltZVxccyp9fS9naSwgd2luZG93Lm1vbWVudCgpLmZvcm1hdChcIkhIOm1tXCIpKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3t7XFxzKnRpdGxlXFxzKn19L2dpLCBmaWxlbmFtZSkpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB3aW5kb3cuYXBwLmZvbGRNYW5hZ2VyLnNhdmUoY3JlYXRlZEZpbGUsIElGb2xkSW5mbyk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkRmlsZTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGZpbGU6ICcke25vcm1hbGl6ZWRQYXRofSdgLCBlcnIpO1xuICAgICAgICBuZXcgb2JzaWRpYW4uTm90aWNlKFwiVW5hYmxlIHRvIGNyZWF0ZSBuZXcgZmlsZS5cIik7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0UXVhcnRlcmx5Tm90ZShkYXRlLCBxdWFydGVybHkpIHtcbiAgICByZXR1cm4gcXVhcnRlcmx5W2dldERhdGVVSUQoZGF0ZSwgXCJxdWFydGVyXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsUXVhcnRlcmx5Tm90ZXMoKSB7XG4gICAgY29uc3QgcXVhcnRlcmx5ID0ge307XG4gICAgaWYgKCFhcHBIYXNRdWFydGVybHlOb3Rlc1BsdWdpbkxvYWRlZCgpKSB7XG4gICAgICAgIHJldHVybiBxdWFydGVybHk7XG4gICAgfVxuICAgIGNvbnN0IHsgdmF1bHQgfSA9IHdpbmRvdy5hcHA7XG4gICAgY29uc3QgeyBmb2xkZXIgfSA9IGdldFF1YXJ0ZXJseU5vdGVTZXR0aW5ncygpO1xuICAgIGNvbnN0IHF1YXJ0ZXJseUZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICghcXVhcnRlcmx5Rm9sZGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBRdWFydGVybHlOb3Rlc0ZvbGRlck1pc3NpbmdFcnJvcihcIkZhaWxlZCB0byBmaW5kIHF1YXJ0ZXJseSBub3RlcyBmb2xkZXJcIik7XG4gICAgfVxuICAgIG9ic2lkaWFuLlZhdWx0LnJlY3Vyc2VDaGlsZHJlbihxdWFydGVybHlGb2xkZXIsIChub3RlKSA9PiB7XG4gICAgICAgIGlmIChub3RlIGluc3RhbmNlb2Ygb2JzaWRpYW4uVEZpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBnZXREYXRlRnJvbUZpbGUobm90ZSwgXCJxdWFydGVyXCIpO1xuICAgICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZ2V0RGF0ZVVJRChkYXRlLCBcInF1YXJ0ZXJcIik7XG4gICAgICAgICAgICAgICAgcXVhcnRlcmx5W2RhdGVTdHJpbmddID0gbm90ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBxdWFydGVybHk7XG59XG5cbmNsYXNzIFllYXJseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIG1pbWljcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGRhaWx5LW5vdGVzIHBsdWdpblxuICogc28gaXQgd2lsbCByZXBsYWNlIHt7ZGF0ZX19LCB7e3RpdGxlfX0sIGFuZCB7e3RpbWV9fSB3aXRoIHRoZVxuICogZm9ybWF0dGVkIHRpbWVzdGFtcC5cbiAqXG4gKiBOb3RlOiBpdCBoYXMgYW4gYWRkZWQgYm9udXMgdGhhdCBpdCdzIG5vdCAndG9kYXknIHNwZWNpZmljLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVZZWFybHlOb3RlKGRhdGUpIHtcbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgdGVtcGxhdGUsIGZvcm1hdCwgZm9sZGVyIH0gPSBnZXRZZWFybHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCBbdGVtcGxhdGVDb250ZW50cywgSUZvbGRJbmZvXSA9IGF3YWl0IGdldFRlbXBsYXRlSW5mbyh0ZW1wbGF0ZSk7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBkYXRlLmZvcm1hdChmb3JtYXQpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gYXdhaXQgZ2V0Tm90ZVBhdGgoZm9sZGVyLCBmaWxlbmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY3JlYXRlZEZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGUobm9ybWFsaXplZFBhdGgsIHRlbXBsYXRlQ29udGVudHNcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyooZGF0ZXx0aW1lKVxccyooKFsrLV1cXGQrKShbeXFtd2Roc10pKT9cXHMqKDouKz8pP319L2dpLCAoXywgX3RpbWVPckRhdGUsIGNhbGMsIHRpbWVEZWx0YSwgdW5pdCwgbW9tZW50Rm9ybWF0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub3cgPSB3aW5kb3cubW9tZW50KCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IGRhdGUuY2xvbmUoKS5zZXQoe1xuICAgICAgICAgICAgICAgIGhvdXI6IG5vdy5nZXQoXCJob3VyXCIpLFxuICAgICAgICAgICAgICAgIG1pbnV0ZTogbm93LmdldChcIm1pbnV0ZVwiKSxcbiAgICAgICAgICAgICAgICBzZWNvbmQ6IG5vdy5nZXQoXCJzZWNvbmRcIiksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChjYWxjKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKHBhcnNlSW50KHRpbWVEZWx0YSwgMTApLCB1bml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtb21lbnRGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudERhdGUuZm9ybWF0KG1vbWVudEZvcm1hdC5zdWJzdHJpbmcoMSkudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50RGF0ZS5mb3JtYXQoZm9ybWF0KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccypkYXRlXFxzKn19L2dpLCBmaWxlbmFtZSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC97e1xccyp0aW1lXFxzKn19L2dpLCB3aW5kb3cubW9tZW50KCkuZm9ybWF0KFwiSEg6bW1cIikpXG4gICAgICAgICAgICAucmVwbGFjZSgve3tcXHMqdGl0bGVcXHMqfX0vZ2ksIGZpbGVuYW1lKSk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHdpbmRvdy5hcHAuZm9sZE1hbmFnZXIuc2F2ZShjcmVhdGVkRmlsZSwgSUZvbGRJbmZvKTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRGaWxlO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZmlsZTogJyR7bm9ybWFsaXplZFBhdGh9J2AsIGVycik7XG4gICAgICAgIG5ldyBvYnNpZGlhbi5Ob3RpY2UoXCJVbmFibGUgdG8gY3JlYXRlIG5ldyBmaWxlLlwiKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRZZWFybHlOb3RlKGRhdGUsIHllYXJseU5vdGVzKSB7XG4gICAgcmV0dXJuIHllYXJseU5vdGVzW2dldERhdGVVSUQoZGF0ZSwgXCJ5ZWFyXCIpXSA/PyBudWxsO1xufVxuZnVuY3Rpb24gZ2V0QWxsWWVhcmx5Tm90ZXMoKSB7XG4gICAgY29uc3QgeWVhcmx5Tm90ZXMgPSB7fTtcbiAgICBpZiAoIWFwcEhhc1llYXJseU5vdGVzUGx1Z2luTG9hZGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIHllYXJseU5vdGVzO1xuICAgIH1cbiAgICBjb25zdCB7IHZhdWx0IH0gPSB3aW5kb3cuYXBwO1xuICAgIGNvbnN0IHsgZm9sZGVyIH0gPSBnZXRZZWFybHlOb3RlU2V0dGluZ3MoKTtcbiAgICBjb25zdCB5ZWFybHlOb3Rlc0ZvbGRlciA9IHZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChvYnNpZGlhbi5ub3JtYWxpemVQYXRoKGZvbGRlcikpO1xuICAgIGlmICgheWVhcmx5Tm90ZXNGb2xkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFllYXJseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yKFwiRmFpbGVkIHRvIGZpbmQgeWVhcmx5IG5vdGVzIGZvbGRlclwiKTtcbiAgICB9XG4gICAgb2JzaWRpYW4uVmF1bHQucmVjdXJzZUNoaWxkcmVuKHllYXJseU5vdGVzRm9sZGVyLCAobm90ZSkgPT4ge1xuICAgICAgICBpZiAobm90ZSBpbnN0YW5jZW9mIG9ic2lkaWFuLlRGaWxlKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gZ2V0RGF0ZUZyb21GaWxlKG5vdGUsIFwieWVhclwiKTtcbiAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGdldERhdGVVSUQoZGF0ZSwgXCJ5ZWFyXCIpO1xuICAgICAgICAgICAgICAgIHllYXJseU5vdGVzW2RhdGVTdHJpbmddID0gbm90ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB5ZWFybHlOb3Rlcztcbn1cblxuZnVuY3Rpb24gYXBwSGFzRGFpbHlOb3Rlc1BsdWdpbkxvYWRlZCgpIHtcbiAgICBjb25zdCB7IGFwcCB9ID0gd2luZG93O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgZGFpbHlOb3Rlc1BsdWdpbiA9IGFwcC5pbnRlcm5hbFBsdWdpbnMucGx1Z2luc1tcImRhaWx5LW5vdGVzXCJdO1xuICAgIGlmIChkYWlseU5vdGVzUGx1Z2luICYmIGRhaWx5Tm90ZXNQbHVnaW4uZW5hYmxlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8uZGFpbHk/LmVuYWJsZWQ7XG59XG4vKipcbiAqIFhYWDogXCJXZWVrbHkgTm90ZXNcIiBsaXZlIGluIGVpdGhlciB0aGUgQ2FsZW5kYXIgcGx1Z2luIG9yIHRoZSBwZXJpb2RpYy1ub3RlcyBwbHVnaW4uXG4gKiBDaGVjayBib3RoIHVudGlsIHRoZSB3ZWVrbHkgbm90ZXMgZmVhdHVyZSBpcyByZW1vdmVkIGZyb20gdGhlIENhbGVuZGFyIHBsdWdpbi5cbiAqL1xuZnVuY3Rpb24gYXBwSGFzV2Vla2x5Tm90ZXNQbHVnaW5Mb2FkZWQoKSB7XG4gICAgY29uc3QgeyBhcHAgfSA9IHdpbmRvdztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGlmIChhcHAucGx1Z2lucy5nZXRQbHVnaW4oXCJjYWxlbmRhclwiKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8ud2Vla2x5Py5lbmFibGVkO1xufVxuZnVuY3Rpb24gYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkKCkge1xuICAgIGNvbnN0IHsgYXBwIH0gPSB3aW5kb3c7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8ubW9udGhseT8uZW5hYmxlZDtcbn1cbmZ1bmN0aW9uIGFwcEhhc1F1YXJ0ZXJseU5vdGVzUGx1Z2luTG9hZGVkKCkge1xuICAgIGNvbnN0IHsgYXBwIH0gPSB3aW5kb3c7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBwZXJpb2RpY05vdGVzID0gYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFwicGVyaW9kaWMtbm90ZXNcIik7XG4gICAgcmV0dXJuIHBlcmlvZGljTm90ZXMgJiYgcGVyaW9kaWNOb3Rlcy5zZXR0aW5ncz8ucXVhcnRlcmx5Py5lbmFibGVkO1xufVxuZnVuY3Rpb24gYXBwSGFzWWVhcmx5Tm90ZXNQbHVnaW5Mb2FkZWQoKSB7XG4gICAgY29uc3QgeyBhcHAgfSA9IHdpbmRvdztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IHBlcmlvZGljTm90ZXMgPSBhcHAucGx1Z2lucy5nZXRQbHVnaW4oXCJwZXJpb2RpYy1ub3Rlc1wiKTtcbiAgICByZXR1cm4gcGVyaW9kaWNOb3RlcyAmJiBwZXJpb2RpY05vdGVzLnNldHRpbmdzPy55ZWFybHk/LmVuYWJsZWQ7XG59XG5mdW5jdGlvbiBnZXRQZXJpb2RpY05vdGVTZXR0aW5ncyhncmFudWxhcml0eSkge1xuICAgIGNvbnN0IGdldFNldHRpbmdzID0ge1xuICAgICAgICBkYXk6IGdldERhaWx5Tm90ZVNldHRpbmdzLFxuICAgICAgICB3ZWVrOiBnZXRXZWVrbHlOb3RlU2V0dGluZ3MsXG4gICAgICAgIG1vbnRoOiBnZXRNb250aGx5Tm90ZVNldHRpbmdzLFxuICAgICAgICBxdWFydGVyOiBnZXRRdWFydGVybHlOb3RlU2V0dGluZ3MsXG4gICAgICAgIHllYXI6IGdldFllYXJseU5vdGVTZXR0aW5ncyxcbiAgICB9W2dyYW51bGFyaXR5XTtcbiAgICByZXR1cm4gZ2V0U2V0dGluZ3MoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBlcmlvZGljTm90ZShncmFudWxhcml0eSwgZGF0ZSkge1xuICAgIGNvbnN0IGNyZWF0ZUZuID0ge1xuICAgICAgICBkYXk6IGNyZWF0ZURhaWx5Tm90ZSxcbiAgICAgICAgbW9udGg6IGNyZWF0ZU1vbnRobHlOb3RlLFxuICAgICAgICB3ZWVrOiBjcmVhdGVXZWVrbHlOb3RlLFxuICAgIH07XG4gICAgcmV0dXJuIGNyZWF0ZUZuW2dyYW51bGFyaXR5XShkYXRlKTtcbn1cblxuZXhwb3J0cy5ERUZBVUxUX0RBSUxZX05PVEVfRk9STUFUID0gREVGQVVMVF9EQUlMWV9OT1RFX0ZPUk1BVDtcbmV4cG9ydHMuREVGQVVMVF9NT05USExZX05PVEVfRk9STUFUID0gREVGQVVMVF9NT05USExZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5ERUZBVUxUX1FVQVJURVJMWV9OT1RFX0ZPUk1BVCA9IERFRkFVTFRfUVVBUlRFUkxZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5ERUZBVUxUX1dFRUtMWV9OT1RFX0ZPUk1BVCA9IERFRkFVTFRfV0VFS0xZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5ERUZBVUxUX1lFQVJMWV9OT1RFX0ZPUk1BVCA9IERFRkFVTFRfWUVBUkxZX05PVEVfRk9STUFUO1xuZXhwb3J0cy5hcHBIYXNEYWlseU5vdGVzUGx1Z2luTG9hZGVkID0gYXBwSGFzRGFpbHlOb3Rlc1BsdWdpbkxvYWRlZDtcbmV4cG9ydHMuYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkID0gYXBwSGFzTW9udGhseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5hcHBIYXNRdWFydGVybHlOb3Rlc1BsdWdpbkxvYWRlZCA9IGFwcEhhc1F1YXJ0ZXJseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5hcHBIYXNXZWVrbHlOb3Rlc1BsdWdpbkxvYWRlZCA9IGFwcEhhc1dlZWtseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5hcHBIYXNZZWFybHlOb3Rlc1BsdWdpbkxvYWRlZCA9IGFwcEhhc1llYXJseU5vdGVzUGx1Z2luTG9hZGVkO1xuZXhwb3J0cy5jcmVhdGVEYWlseU5vdGUgPSBjcmVhdGVEYWlseU5vdGU7XG5leHBvcnRzLmNyZWF0ZU1vbnRobHlOb3RlID0gY3JlYXRlTW9udGhseU5vdGU7XG5leHBvcnRzLmNyZWF0ZVBlcmlvZGljTm90ZSA9IGNyZWF0ZVBlcmlvZGljTm90ZTtcbmV4cG9ydHMuY3JlYXRlUXVhcnRlcmx5Tm90ZSA9IGNyZWF0ZVF1YXJ0ZXJseU5vdGU7XG5leHBvcnRzLmNyZWF0ZVdlZWtseU5vdGUgPSBjcmVhdGVXZWVrbHlOb3RlO1xuZXhwb3J0cy5jcmVhdGVZZWFybHlOb3RlID0gY3JlYXRlWWVhcmx5Tm90ZTtcbmV4cG9ydHMuZ2V0QWxsRGFpbHlOb3RlcyA9IGdldEFsbERhaWx5Tm90ZXM7XG5leHBvcnRzLmdldEFsbE1vbnRobHlOb3RlcyA9IGdldEFsbE1vbnRobHlOb3RlcztcbmV4cG9ydHMuZ2V0QWxsUXVhcnRlcmx5Tm90ZXMgPSBnZXRBbGxRdWFydGVybHlOb3RlcztcbmV4cG9ydHMuZ2V0QWxsV2Vla2x5Tm90ZXMgPSBnZXRBbGxXZWVrbHlOb3RlcztcbmV4cG9ydHMuZ2V0QWxsWWVhcmx5Tm90ZXMgPSBnZXRBbGxZZWFybHlOb3RlcztcbmV4cG9ydHMuZ2V0RGFpbHlOb3RlID0gZ2V0RGFpbHlOb3RlO1xuZXhwb3J0cy5nZXREYWlseU5vdGVTZXR0aW5ncyA9IGdldERhaWx5Tm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXREYXRlRnJvbUZpbGUgPSBnZXREYXRlRnJvbUZpbGU7XG5leHBvcnRzLmdldERhdGVGcm9tUGF0aCA9IGdldERhdGVGcm9tUGF0aDtcbmV4cG9ydHMuZ2V0RGF0ZVVJRCA9IGdldERhdGVVSUQ7XG5leHBvcnRzLmdldE1vbnRobHlOb3RlID0gZ2V0TW9udGhseU5vdGU7XG5leHBvcnRzLmdldE1vbnRobHlOb3RlU2V0dGluZ3MgPSBnZXRNb250aGx5Tm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXRQZXJpb2RpY05vdGVTZXR0aW5ncyA9IGdldFBlcmlvZGljTm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXRRdWFydGVybHlOb3RlID0gZ2V0UXVhcnRlcmx5Tm90ZTtcbmV4cG9ydHMuZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzID0gZ2V0UXVhcnRlcmx5Tm90ZVNldHRpbmdzO1xuZXhwb3J0cy5nZXRUZW1wbGF0ZUluZm8gPSBnZXRUZW1wbGF0ZUluZm87XG5leHBvcnRzLmdldFdlZWtseU5vdGUgPSBnZXRXZWVrbHlOb3RlO1xuZXhwb3J0cy5nZXRXZWVrbHlOb3RlU2V0dGluZ3MgPSBnZXRXZWVrbHlOb3RlU2V0dGluZ3M7XG5leHBvcnRzLmdldFllYXJseU5vdGUgPSBnZXRZZWFybHlOb3RlO1xuZXhwb3J0cy5nZXRZZWFybHlOb3RlU2V0dGluZ3MgPSBnZXRZZWFybHlOb3RlU2V0dGluZ3M7XG4iLCJpbXBvcnQge0FwcCwgVEZpbGV9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7Z2V0QWxsRGFpbHlOb3Rlc30gZnJvbSAnb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gIGRhaWx5Tm90ZXM6IFJlY29yZDxzdHJpbmcsIFRGaWxlPjtcbiAgYXBwOiBBcHA7XG59XG5cbmludGVyZmFjZSBTZXREYWlseU5vdGVzQWN0aW9uIHtcbiAgdHlwZTogJ1NFVF9EQUlMWU5PVEVTJztcbiAgcGF5bG9hZDoge1xuICAgIGRhaWx5Tm90ZXM6IFJlY29yZDxzdHJpbmcsIFRGaWxlPjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNldE9ic2lkaWFuQXBwQWN0aW9uIHtcbiAgdHlwZTogJ1NFVF9BUFAnO1xuICBwYXlsb2FkOiB7XG4gICAgYXBwOiBBcHA7XG4gIH07XG59XG5cbi8vIGludGVyZmFjZSBJbnNlcnREYWlseU5vdGVBY3Rpb24ge1xuLy8gICB0eXBlOiBcIklOU0VSVF9EQUlMWU5PVEVcIjtcbi8vICAgcGF5bG9hZDoge1xuLy8gICAgIGRhaWx5Tm90ZTogVEZpbGU7XG4vLyAgIH07XG4vLyB9XG5cbmV4cG9ydCB0eXBlIEFjdGlvbnMgPSBTZXREYWlseU5vdGVzQWN0aW9uIHwgU2V0T2JzaWRpYW5BcHBBY3Rpb247XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnU0VUX0RBSUxZTk9URVMnOiB7XG4gICAgICBjb25zdCBkYWlseU5vdGVzID0gZ2V0QWxsRGFpbHlOb3RlcygpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZGFpbHlOb3RlczogZGFpbHlOb3RlcyxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ1NFVF9BUFAnOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYXBwOiBhY3Rpb24ucGF5bG9hZC5hcHAsXG4gICAgICB9O1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RhdGU6IFN0YXRlID0ge1xuICBkYWlseU5vdGVzOiBudWxsLFxuICBhcHA6IG51bGwsXG59O1xuIiwiaW1wb3J0IGNvbWJpbmVSZWR1Y2VycyBmcm9tICcuLi9sYWJzL2NvbWJpbmVSZWR1Y2Vycyc7XG5pbXBvcnQgY3JlYXRlU3RvcmUgZnJvbSAnLi4vbGFicy9jcmVhdGVTdG9yZSc7XG5pbXBvcnQgKiBhcyBnbG9iYWxTdG9yZSBmcm9tICcuL2dsb2JhbFN0YXRlU3RvcmUnO1xuaW1wb3J0ICogYXMgbG9jYXRpb25TdG9yZSBmcm9tICcuL2xvY2F0aW9uU3RvcmUnO1xuaW1wb3J0ICogYXMgbWVtb1N0b3JlIGZyb20gJy4vbWVtb1N0b3JlJztcbmltcG9ydCAqIGFzIHVzZXJTdG9yZSBmcm9tICcuL3VzZXJTdG9yZSc7XG5pbXBvcnQgKiBhcyBxdWVyeVN0b3JlIGZyb20gJy4vcXVlcnlTdG9yZSc7XG5pbXBvcnQgKiBhcyBkYWlseU5vdGVzU3RvcmUgZnJvbSAnLi9kYWlseU5vdGVzU3RvcmUnO1xuXG5pbnRlcmZhY2UgQXBwU3RhdGUge1xuICBnbG9iYWxTdGF0ZTogZ2xvYmFsU3RvcmUuU3RhdGU7XG4gIGxvY2F0aW9uU3RhdGU6IGxvY2F0aW9uU3RvcmUuU3RhdGU7XG4gIG1lbW9TdGF0ZTogbWVtb1N0b3JlLlN0YXRlO1xuICB1c2VyU3RhdGU6IHVzZXJTdG9yZS5TdGF0ZTtcbiAgcXVlcnlTdGF0ZTogcXVlcnlTdG9yZS5TdGF0ZTtcbiAgZGFpbHlOb3Rlc1N0YXRlOiBkYWlseU5vdGVzU3RvcmUuU3RhdGU7XG59XG5cbnR5cGUgQXBwU3RhdGVBY3Rpb25zID1cbiAgfCBnbG9iYWxTdG9yZS5BY3Rpb25zXG4gIHwgbG9jYXRpb25TdG9yZS5BY3Rpb25zXG4gIHwgbWVtb1N0b3JlLkFjdGlvbnNcbiAgfCB1c2VyU3RvcmUuQWN0aW9uc1xuICB8IHF1ZXJ5U3RvcmUuQWN0aW9uc1xuICB8IGRhaWx5Tm90ZXNTdG9yZS5BY3Rpb25zO1xuXG5jb25zdCBhcHBTdG9yZSA9IGNyZWF0ZVN0b3JlPEFwcFN0YXRlLCBBcHBTdGF0ZUFjdGlvbnM+KFxuICB7XG4gICAgZ2xvYmFsU3RhdGU6IGdsb2JhbFN0b3JlLmRlZmF1bHRTdGF0ZSxcbiAgICBsb2NhdGlvblN0YXRlOiBsb2NhdGlvblN0b3JlLmRlZmF1bHRTdGF0ZSxcbiAgICBtZW1vU3RhdGU6IG1lbW9TdG9yZS5kZWZhdWx0U3RhdGUsXG4gICAgdXNlclN0YXRlOiB1c2VyU3RvcmUuZGVmYXVsdFN0YXRlLFxuICAgIHF1ZXJ5U3RhdGU6IHF1ZXJ5U3RvcmUuZGVmYXVsdFN0YXRlLFxuICAgIGRhaWx5Tm90ZXNTdGF0ZTogZGFpbHlOb3Rlc1N0b3JlLmRlZmF1bHRTdGF0ZSxcbiAgfSxcbiAgY29tYmluZVJlZHVjZXJzPEFwcFN0YXRlLCBBcHBTdGF0ZUFjdGlvbnM+KHtcbiAgICBnbG9iYWxTdGF0ZTogZ2xvYmFsU3RvcmUucmVkdWNlcixcbiAgICBsb2NhdGlvblN0YXRlOiBsb2NhdGlvblN0b3JlLnJlZHVjZXIsXG4gICAgbWVtb1N0YXRlOiBtZW1vU3RvcmUucmVkdWNlcixcbiAgICB1c2VyU3RhdGU6IHVzZXJTdG9yZS5yZWR1Y2VyLFxuICAgIHF1ZXJ5U3RhdGU6IHF1ZXJ5U3RvcmUucmVkdWNlcixcbiAgICBkYWlseU5vdGVzU3RhdGU6IGRhaWx5Tm90ZXNTdG9yZS5yZWR1Y2VyLFxuICB9KSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IGFwcFN0b3JlO1xuIiwiaW1wb3J0IHtjcmVhdGVDb250ZXh0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi9hcHBTdG9yZSc7XG5cbmNvbnN0IGFwcENvbnRleHQgPSBjcmVhdGVDb250ZXh0KGFwcFN0b3JlLmdldFN0YXRlKCkpO1xuXG5leHBvcnQgZGVmYXVsdCBhcHBDb250ZXh0O1xuIiwiLy8gaW1wb3J0IHsgbW9tZW50IH0gZnJvbSAnb2JzaWRpYW4nO1xuLy8gaW1wb3J0IHVzZXJTZXJ2aWNlIGZyb20gXCIuL3VzZXJTZXJ2aWNlXCI7XG4vLyBpbXBvcnQgYXBpIGZyb20gXCIuLi9oZWxwZXJzL2FwaVwiO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5pbXBvcnQge2dldEFsbERhaWx5Tm90ZXMsIGdldERhaWx5Tm90ZX0gZnJvbSAnb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlJztcbmltcG9ydCB7QXBwLCBURmlsZX0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtNb21lbnR9IGZyb20gJ19vYnNpZGlhbkAwLjEzLjExQG9ic2lkaWFuL25vZGVfbW9kdWxlcy9tb21lbnQnO1xuLy8gaW1wb3J0IHsgTW9tZW50fSAgZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmNsYXNzIERhaWx5Tm90ZXNTZXJ2aWNlIHtcbiAgcHVibGljIGdldFN0YXRlKCkge1xuICAgIHJldHVybiBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBcHAoYXBwOiBBcHApIHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0FQUCcsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGFwcCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGFwcDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRNeUFsbERhaWx5Tm90ZXMoKSB7XG4gICAgY29uc3QgZGFpbHlOb3RlcyA9IGdldEFsbERhaWx5Tm90ZXMoKTtcblxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfREFJTFlOT1RFUycsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGRhaWx5Tm90ZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBkYWlseU5vdGVzO1xuICB9XG5cbiAgLy8gcHVibGljIHB1c2hEYWlseU5vdGUoZGFpbHlOb3RlOiBURmlsZSkge1xuICAvLyAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgLy8gICAgIHR5cGU6IFwiSU5TRVJUX0RBSUxZTk9URVwiLFxuICAvLyAgICAgcGF5bG9hZDoge1xuICAvLyAgICAgICBtZW1vOiB7XG4gIC8vICAgICAgICAgLi4ubWVtbyxcbiAgLy8gICAgICAgfSxcbiAgLy8gICAgIH0sXG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0RGFpbHlOb3RlQnlNZW1vKGRhdGU6IE1vbWVudCk6IFByb21pc2U8VEZpbGU+IHtcbiAgICBjb25zdCB7ZGFpbHlOb3Rlc30gPSB0aGlzLmdldFN0YXRlKCk7XG4gICAgY29uc3QgZGFpbHlOb3RlID0gZ2V0RGFpbHlOb3RlKGRhdGUsIGRhaWx5Tm90ZXMpO1xuICAgIHJldHVybiBkYWlseU5vdGU7XG4gIH1cbn1cblxuY29uc3QgZGFpbHlOb3Rlc1NlcnZpY2UgPSBuZXcgRGFpbHlOb3Rlc1NlcnZpY2UoKTtcblxuZXhwb3J0IGRlZmF1bHQgZGFpbHlOb3Rlc1NlcnZpY2U7XG4iLCJpbXBvcnQge0lucHV0QWN0aW9ufSBmcm9tICd0aW55LXVuZG8nO1xuXG4vKipcbiAqIERlZmluZSBzdG9yYWdlIGRhdGEgdHlwZVxuICovXG5pbnRlcmZhY2UgU3RvcmFnZURhdGEge1xuICAvLyDnvJbovpHlmajovpPlhaXnvJPlrZjlhoXlrrlcbiAgZWRpdG9yQ29udGVudENhY2hlOiBzdHJpbmc7XG4gIC8vIOWIhuivjeW8gOWFs1xuICBzaG91bGRTcGxpdE1lbW9Xb3JkOiBib29sZWFuO1xuICAvLyDmmK/lkKbpmpDol4/lm77niYfpk77mjqXlnLDlnYBcbiAgc2hvdWxkSGlkZUltYWdlVXJsOiBib29sZWFuO1xuICAvLyBtYXJrZG93biDop6PmnpDlvIDlhbNcbiAgc2hvdWxkVXNlTWFya2Rvd25QYXJzZXI6IGJvb2xlYW47XG5cbiAgLy8gRWRpdG9yIHNldHRpbmdcbiAgdXNlVGlueVVuZG9IaXN0b3J5Q2FjaGU6IGJvb2xlYW47XG5cbiAgLy8gdGlueSB1bmRvIGFjdGlvbnMgY2FjaGVcbiAgdGlueVVuZG9BY3Rpb25zQ2FjaGU6IElucHV0QWN0aW9uW107XG4gIC8vIHRpbnkgdW5kbyBpbmRleCBjYWNoZVxuICB0aW55VW5kb0luZGV4Q2FjaGU6IG51bWJlcjtcbn1cblxudHlwZSBTdG9yYWdlS2V5ID0ga2V5b2YgU3RvcmFnZURhdGE7XG5cbi8qKlxuICogc3RvcmFnZSBoZWxwZXJcbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBzdG9yYWdlIHtcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldChrZXlzOiBTdG9yYWdlS2V5W10pOiBQYXJ0aWFsPFN0b3JhZ2VEYXRhPiB7XG4gICAgY29uc3QgZGF0YTogUGFydGlhbDxTdG9yYWdlRGF0YT4gPSB7fTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ2lmeVZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgaWYgKHN0cmluZ2lmeVZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdmFsID0gSlNPTi5wYXJzZShzdHJpbmdpZnlWYWx1ZSk7XG4gICAgICAgICAgZGF0YVtrZXldID0gdmFsO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0dldCBzdG9yYWdlIGZhaWxlZCBpbiAnLCBrZXksIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBzZXQoZGF0YTogUGFydGlhbDxTdG9yYWdlRGF0YT4pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzdHJpbmdpZnlWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KGRhdGFba2V5IGFzIFN0b3JhZ2VLZXldKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBzdHJpbmdpZnlWYWx1ZSk7XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NhdmUgc3RvcmFnZSBmYWlsZWQgaW4gJywga2V5LCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZShrZXlzOiBTdG9yYWdlS2V5W10pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdSZW1vdmUgc3RvcmFnZSBmYWlsZWQgaW4gJywga2V5LCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVtaXRTdG9yYWdlQ2hhbmdlZEV2ZW50KCkge1xuICAgIGNvbnN0IGlmcmFtZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lRWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsKTtcblxuICAgIGlmcmFtZUVsLmNvbnRlbnRXaW5kb3c/LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0JywgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcbiAgICBpZnJhbWVFbC5yZW1vdmUoKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtzdG9yYWdlfSBmcm9tICcuLi9oZWxwZXJzL3N0b3JhZ2UnO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5pbXBvcnQge0FwcFNldHRpbmd9IGZyb20gJy4uL3N0b3Jlcy9nbG9iYWxTdGF0ZVN0b3JlJztcblxuY2xhc3MgR2xvYmFsU3RhdGVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgY2FjaGVkU2V0dGluZyA9IHN0b3JhZ2UuZ2V0KFtcbiAgICAgICdzaG91bGRTcGxpdE1lbW9Xb3JkJyxcbiAgICAgICdzaG91bGRIaWRlSW1hZ2VVcmwnLFxuICAgICAgJ3Nob3VsZFVzZU1hcmtkb3duUGFyc2VyJyxcbiAgICAgICd1c2VUaW55VW5kb0hpc3RvcnlDYWNoZScsXG4gICAgXSk7XG4gICAgY29uc3QgZGVmYXVsdEFwcFNldHRpbmcgPSB7XG4gICAgICBzaG91bGRTcGxpdE1lbW9Xb3JkOiBjYWNoZWRTZXR0aW5nLnNob3VsZFNwbGl0TWVtb1dvcmQgPz8gdHJ1ZSxcbiAgICAgIHNob3VsZEhpZGVJbWFnZVVybDogY2FjaGVkU2V0dGluZy5zaG91bGRIaWRlSW1hZ2VVcmwgPz8gdHJ1ZSxcbiAgICAgIHNob3VsZFVzZU1hcmtkb3duUGFyc2VyOiBjYWNoZWRTZXR0aW5nLnNob3VsZFVzZU1hcmtkb3duUGFyc2VyID8/IHRydWUsXG4gICAgICB1c2VUaW55VW5kb0hpc3RvcnlDYWNoZTogY2FjaGVkU2V0dGluZy51c2VUaW55VW5kb0hpc3RvcnlDYWNoZSA/PyBmYWxzZSxcbiAgICB9O1xuXG4gICAgdGhpcy5zZXRBcHBTZXR0aW5nKGRlZmF1bHRBcHBTZXR0aW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdGF0ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gYXBwU3RvcmUuZ2V0U3RhdGUoKS5nbG9iYWxTdGF0ZTtcbiAgfTtcblxuICBwdWJsaWMgc2V0RWRpdE1lbW9JZCA9IChlZGl0TWVtb0lkOiBzdHJpbmcpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0VESVRfTUVNT19JRCcsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGVkaXRNZW1vSWQsXG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBzZXRNYXJrTWVtb0lkID0gKG1hcmtNZW1vSWQ6IHN0cmluZykgPT4ge1xuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfTUFSS19NRU1PX0lEJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgbWFya01lbW9JZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHNldElzTW9iaWxlVmlldyA9IChpc01vYmlsZVZpZXc6IGJvb2xlYW4pID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX01PQklMRV9WSUVXJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgaXNNb2JpbGVWaWV3LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgc2V0U2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3ID0gKHNob3dTaWRlcmJhckluTW9iaWxlVmlldzogYm9vbGVhbikgPT4ge1xuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfU0hPV19TSURFQkFSX0lOX01PQklMRV9WSUVXJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgc2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgc2V0QXBwU2V0dGluZyA9IChhcHBTZXR0aW5nOiBQYXJ0aWFsPEFwcFNldHRpbmc+KSA9PiB7XG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9BUFBfU0VUVElORycsXG4gICAgICBwYXlsb2FkOiBhcHBTZXR0aW5nLFxuICAgIH0pO1xuICAgIHN0b3JhZ2Uuc2V0KGFwcFNldHRpbmcpO1xuICB9O1xufVxuXG5jb25zdCBnbG9iYWxTdGF0ZVNlcnZpY2UgPSBuZXcgR2xvYmFsU3RhdGVTZXJ2aWNlKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGdsb2JhbFN0YXRlU2VydmljZTtcbiIsIi8vIGltcG9ydCB1dGlscyBmcm9tIFwiLi4vaGVscGVycy91dGlsc1wiO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5cbi8vIGNvbnN0IHVwZGF0ZUxvY2F0aW9uVXJsID0gKG1ldGhvZDogXCJyZXBsYWNlXCIgfCBcInB1c2hcIiA9IFwicmVwbGFjZVwiKSA9PiB7XG4vLyAgIGNvbnN0IHsgcXVlcnksIHBhdGhuYW1lLCBoYXNoIH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmxvY2F0aW9uU3RhdGU7XG4vLyAgIGxldCBxdWVyeVN0cmluZyA9IHV0aWxzLnRyYW5zZm9ybU9iamVjdFRvUGFyYW1zU3RyaW5nKHF1ZXJ5KTtcbi8vICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4vLyAgICAgcXVlcnlTdHJpbmcgPSBcIj9cIiArIHF1ZXJ5U3RyaW5nO1xuLy8gICB9IGVsc2Uge1xuLy8gICAgIHF1ZXJ5U3RyaW5nID0gXCJcIjtcbi8vICAgfVxuXG4vLyAgIGlmIChtZXRob2QgPT09IFwicmVwbGFjZVwiKSB7XG4vLyAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIFwiXCIsIHBhdGhuYW1lICsgaGFzaCArIHF1ZXJ5U3RyaW5nKTtcbi8vICAgfSBlbHNlIHtcbi8vICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgXCJcIiwgcGF0aG5hbWUgKyBoYXNoICsgcXVlcnlTdHJpbmcpO1xuLy8gICB9XG4vLyB9O1xuXG5jbGFzcyBMb2NhdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlV2l0aExvY2F0aW9uKCk7XG4gICAgd2luZG93Lm9ucG9wc3RhdGUgPSAoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlV2l0aExvY2F0aW9uKCk7XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZVdpdGhMb2NhdGlvbiA9ICgpID0+IHtcbiAgICBjb25zdCB7cGF0aG5hbWUsIHNlYXJjaCwgaGFzaH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2gpO1xuICAgIGNvbnN0IHN0YXRlOiBBcHBMb2NhdGlvbiA9IHtcbiAgICAgIHBhdGhuYW1lOiAnLycsXG4gICAgICBoYXNoOiAnJyxcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIHRhZzogJycsXG4gICAgICAgIGR1cmF0aW9uOiBudWxsLFxuICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgdHlwZTogJycsXG4gICAgICAgIGZpbHRlcjogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgc3RhdGUucXVlcnkudGFnID0gdXJsUGFyYW1zLmdldCgndGFnJykgPz8gJyc7XG4gICAgc3RhdGUucXVlcnkudHlwZSA9ICh1cmxQYXJhbXMuZ2V0KCd0eXBlJykgPz8gJycpIGFzIE1lbW9TcGVjVHlwZTtcbiAgICBzdGF0ZS5xdWVyeS50ZXh0ID0gdXJsUGFyYW1zLmdldCgndGV4dCcpID8/ICcnO1xuICAgIHN0YXRlLnF1ZXJ5LmZpbHRlciA9IHVybFBhcmFtcy5nZXQoJ2ZpbHRlcicpID8/ICcnO1xuICAgIGNvbnN0IGZyb20gPSBwYXJzZUludCh1cmxQYXJhbXMuZ2V0KCdmcm9tJykgPz8gJzAnKTtcbiAgICBjb25zdCB0byA9IHBhcnNlSW50KHVybFBhcmFtcy5nZXQoJ3RvJykgPz8gJzAnKTtcbiAgICBpZiAodG8gPiBmcm9tICYmIHRvICE9PSAwKSB7XG4gICAgICBzdGF0ZS5xdWVyeS5kdXJhdGlvbiA9IHtcbiAgICAgICAgZnJvbSxcbiAgICAgICAgdG8sXG4gICAgICB9O1xuICAgIH1cbiAgICBzdGF0ZS5oYXNoID0gaGFzaDtcbiAgICBzdGF0ZS5wYXRobmFtZSA9IHRoaXMuZ2V0VmFsaWRQYXRobmFtZShwYXRobmFtZSk7XG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9MT0NBVElPTicsXG4gICAgICBwYXlsb2FkOiBzdGF0ZSxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0U3RhdGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGFwcFN0b3JlLmdldFN0YXRlKCkubG9jYXRpb25TdGF0ZTtcbiAgfTtcblxuICBwdWJsaWMgY2xlYXJRdWVyeSA9ICgpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1FVRVJZJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgdGFnOiAnJyxcbiAgICAgICAgZHVyYXRpb246IG51bGwsXG4gICAgICAgIHRleHQ6ICcnLFxuICAgICAgICB0eXBlOiAnJyxcbiAgICAgICAgZmlsdGVyOiAnJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyB1cGRhdGVMb2NhdGlvblVybCgpO1xuICB9O1xuXG4gIHB1YmxpYyBzZXRRdWVyeSA9IChxdWVyeTogUXVlcnkpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1FVRVJZJyxcbiAgICAgIHBheWxvYWQ6IHF1ZXJ5LFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcbiAgfTtcblxuICBwdWJsaWMgc2V0SGFzaCA9IChoYXNoOiBzdHJpbmcpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0hBU0gnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBoYXNoLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHVwZGF0ZUxvY2F0aW9uVXJsKCk7XG4gIH07XG5cbiAgcHVibGljIHNldFBhdGhuYW1lID0gKHBhdGhuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1BBVEhOQU1FJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcbiAgfTtcblxuICBwdWJsaWMgcHVzaEhpc3RvcnkgPSAocGF0aG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfUEFUSE5BTUUnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyB1cGRhdGVMb2NhdGlvblVybChcInB1c2hcIik7XG4gIH07XG5cbiAgcHVibGljIHJlcGxhY2VIaXN0b3J5ID0gKHBhdGhuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1BBVEhOQU1FJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoXCJyZXBsYWNlXCIpO1xuICB9O1xuXG4gIHB1YmxpYyBzZXRNZW1vVHlwZVF1ZXJ5ID0gKHR5cGU6IE1lbW9TcGVjVHlwZSB8ICcnID0gJycpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1RZUEUnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICB0eXBlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHVwZGF0ZUxvY2F0aW9uVXJsKCk7XG4gIH07XG5cbiAgcHVibGljIHNldE1lbW9GaWx0ZXIgPSAoZmlsdGVySWQ6IHN0cmluZykgPT4ge1xuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfUVVFUllfRklMVEVSJyxcbiAgICAgIHBheWxvYWQ6IGZpbHRlcklkLFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcbiAgfTtcblxuICBwdWJsaWMgc2V0VGV4dFF1ZXJ5ID0gKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfVEVYVCcsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHRleHQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcbiAgfTtcblxuICBwdWJsaWMgc2V0VGFnUXVlcnkgPSAodGFnOiBzdHJpbmcpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1RBR19RVUVSWScsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHRhZyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyB1cGRhdGVMb2NhdGlvblVybCgpO1xuICB9O1xuXG4gIHB1YmxpYyBzZXRGcm9tQW5kVG9RdWVyeSA9IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpID0+IHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0RVUkFUSU9OX1FVRVJZJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZHVyYXRpb246IHtmcm9tLCB0b30sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlTG9jYXRpb25VcmwoKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0VmFsaWRQYXRobmFtZSA9IChwYXRobmFtZTogc3RyaW5nKTogQXBwUm91dGVyID0+IHtcbiAgICBpZiAoWycvJywgJy9yZWN5Y2xlJywgJy9zZXR0aW5nJ10uaW5jbHVkZXMocGF0aG5hbWUpKSB7XG4gICAgICByZXR1cm4gcGF0aG5hbWUgYXMgQXBwUm91dGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJy8nO1xuICAgIH1cbiAgfTtcbn1cblxuY29uc3QgbG9jYXRpb25TZXJ2aWNlID0gbmV3IExvY2F0aW9uU2VydmljZSgpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhdGlvblNlcnZpY2U7XG4iLCJpbXBvcnQge21vbWVudH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtnZXREYWlseU5vdGUsIGdldERhaWx5Tm90ZVNldHRpbmdzfSBmcm9tICdvYnNpZGlhbi1kYWlseS1ub3Rlcy1pbnRlcmZhY2UnO1xuLy8gaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcbmltcG9ydCBkYWlseU5vdGVzU2VydmljZSBmcm9tICcuLi9zZXJ2aWNlcy9kYWlseU5vdGVzU2VydmljZSc7XG5pbXBvcnQge1RGaWxlfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoYW5nZU1lbW8oXG4gIG1lbW9pZDogc3RyaW5nLFxuICBvcmlnaW5hbENvbnRlbnQ6IHN0cmluZyxcbiAgY29udGVudDogc3RyaW5nLFxuICBtZW1vVHlwZTogc3RyaW5nLFxuKTogUHJvbWlzZTxNb2RlbC5NZW1vPiB7XG4gIGNvbnN0IHtkYWlseU5vdGVzfSA9IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCk7XG4gIGNvbnN0IHt2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGNvbnN0IHRpbWVTdHJpbmcgPSBtZW1vaWQuc2xpY2UoMCwgMTEpICsgJzAwJztcbiAgY29uc3QgaWRTdHJpbmcgPSBwYXJzZUludChtZW1vaWQuc2xpY2UoMTQpKTtcbiAgY29uc3QgY2hhbmdlRGF0ZSA9IG1vbWVudCh0aW1lU3RyaW5nLCAnWVlZWU1NRERISG1tU1MnKTtcbiAgY29uc3QgZGFpbHlOb3RlID0gZ2V0RGFpbHlOb3RlKGNoYW5nZURhdGUsIGRhaWx5Tm90ZXMpO1xuICBjb25zdCBmaWxlQ29udGVudCA9IGF3YWl0IHZhdWx0LnJlYWQoZGFpbHlOb3RlKTtcbiAgY29uc3QgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudCk7XG4gIGNvbnN0IHJlbW92ZUVudGVyID0gY29udGVudC5yZXBsYWNlKC9cXG4vZywgJzxicj4nKTtcbiAgY29uc3Qgb3JpZ2luYWxMaW5lID0gZmlsZUxpbmVzW2lkU3RyaW5nXTtcbiAgY29uc3QgbmV3TGluZSA9IGZpbGVMaW5lc1tpZFN0cmluZ10ucmVwbGFjZShvcmlnaW5hbENvbnRlbnQsIHJlbW92ZUVudGVyKTtcbiAgY29uc3QgbmV3RmlsZUNvbnRlbnQgPSBmaWxlQ29udGVudC5yZXBsYWNlKG9yaWdpbmFsTGluZSwgbmV3TGluZSk7XG4gIGF3YWl0IHZhdWx0Lm1vZGlmeShkYWlseU5vdGUsIG5ld0ZpbGVDb250ZW50KTtcbiAgcmV0dXJuIHtcbiAgICBpZDogbWVtb2lkLFxuICAgIGNvbnRlbnQ6IHJlbW92ZUVudGVyLFxuICAgIGRlbGV0ZWRBdDogJycsXG4gICAgY3JlYXRlZEF0OiBjaGFuZ2VEYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpTUycpLFxuICAgIHVwZGF0ZWRBdDogY2hhbmdlRGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06U1MnKSxcbiAgICBtZW1vVHlwZTogbWVtb1R5cGUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlKG1lbW9pZDogc3RyaW5nKTogVEZpbGUge1xuICBjb25zdCB7ZGFpbHlOb3Rlc30gPSBkYWlseU5vdGVzU2VydmljZS5nZXRTdGF0ZSgpO1xuICBjb25zdCB0aW1lU3RyaW5nID0gbWVtb2lkLnNsaWNlKDAsIDEzKTtcbiAgY29uc3QgY2hhbmdlRGF0ZSA9IG1vbWVudCh0aW1lU3RyaW5nLCAnWVlZWU1NRERISG1tU1MnKTtcbiAgY29uc3QgZGFpbHlOb3RlID0gZ2V0RGFpbHlOb3RlKGNoYW5nZURhdGUsIGRhaWx5Tm90ZXMpO1xuICByZXR1cm4gZGFpbHlOb3RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGFpbHlOb3RlUGF0aCgpOiBzdHJpbmcge1xuICBjb25zdCBkYWlseU5vdGVzU2V0dGluZyA9IGdldERhaWx5Tm90ZVNldHRpbmdzKCk7XG4gIGNvbnN0IGRhaWx5Tm90ZVBhdGggPSBkYWlseU5vdGVzU2V0dGluZy5mb2xkZXI7XG4gIHJldHVybiBkYWlseU5vdGVQYXRoO1xufVxuXG5jb25zdCBnZXRBbGxMaW5lc0Zyb21GaWxlID0gKGNhY2hlOiBzdHJpbmcpID0+IGNhY2hlLnNwbGl0KC9cXHI/XFxuLyk7XG4iLCJpbXBvcnQge2dldERhaWx5Tm90ZVBhdGh9IGZyb20gJy4vb2JVcGRhdGVNZW1vJztcbmltcG9ydCB7VEZpbGV9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcblxuZXhwb3J0IGNvbnN0IGZpbmRRdWVyeSA9IGFzeW5jICgpOiBQcm9taXNlPGFueVtdPiA9PiB7XG4gIGNvbnN0IHttZXRhZGF0YUNhY2hlLCB2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG5cbiAgY29uc3QgcXVlcnlMaXN0ID0gW107XG5cbiAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XG4gIGNvbnN0IGFic29sdXRlUGF0aCA9IGZpbGVQYXRoICsgJy9xdWVyeS5tZCc7XG5cbiAgY29uc3QgcXVlcnlGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCgnJywgYWJzb2x1dGVQYXRoKTtcbiAgaWYgKHF1ZXJ5RmlsZSBpbnN0YW5jZW9mIFRGaWxlKSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQucmVhZChxdWVyeUZpbGUpO1xuICAgIGNvbnN0IGZpbGVMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUoZmlsZUNvbnRlbnRzKTtcbiAgICBpZiAoZmlsZUxpbmVzICYmIGZpbGVMaW5lcy5sZW5ndGggIT0gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGZpbGVMaW5lc1tpXSA9PT0gJycpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBjcmVhdGVkRGF0ZVN0cmluZyA9IGdldENyZWF0ZWREYXRlRnJvbUxpbmUoZmlsZUxpbmVzW2ldKTtcbiAgICAgICAgY29uc3QgY3JlYXRlZERhdGUgPSBtb21lbnQoY3JlYXRlZERhdGVTdHJpbmcsICdZWVlZTU1EREhIbW1zcycpLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpO1xuICAgICAgICBjb25zdCB1cGRhdGVkRGF0ZSA9IGNyZWF0ZWREYXRlO1xuICAgICAgICBjb25zdCBpZCA9IGNyZWF0ZWREYXRlU3RyaW5nICsgZ2V0SURGcm9tTGluZShmaWxlTGluZXNbaV0pO1xuICAgICAgICBjb25zdCBxdWVyeXN0cmluZyA9IGdldFN0cmluZ0Zyb21MaW5lKGZpbGVMaW5lc1tpXSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gZ2V0VGl0bGVGcm9tTGluZShmaWxlTGluZXNbaV0pO1xuICAgICAgICBsZXQgcGlubmVkRGF0ZTtcblxuICAgICAgICBpZiAoL14oLispcGlubmVkQXQoLispJC8udGVzdChmaWxlTGluZXNbaV0pKSB7XG4gICAgICAgICAgcGlubmVkRGF0ZSA9IG1vbWVudChnZXRQaW5uZWREYXRlRnJvbUxpbmUoZmlsZUxpbmVzW2ldKSwgJ1lZWVlNTURESEhtbXNzJyk7XG4gICAgICAgICAgcXVlcnlMaXN0LnB1c2goe1xuICAgICAgICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkRGF0ZSxcbiAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgIHBpbm5lZEF0OiBwaW5uZWREYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpLFxuICAgICAgICAgICAgcXVlcnlzdHJpbmc6IHF1ZXJ5c3RyaW5nLFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgdXBkYXRlZEF0OiB1cGRhdGVkRGF0ZSxcbiAgICAgICAgICAgIHVzZXJJZDogJycsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoL14oLispXFxbXFxdKC4rKT8kLy50ZXN0KGZpbGVMaW5lc1tpXSkpIHtcbiAgICAgICAgICBxdWVyeUxpc3QucHVzaCh7XG4gICAgICAgICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWREYXRlLFxuICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgcGlubmVkQXQ6ICcnLFxuICAgICAgICAgICAgcXVlcnlzdHJpbmc6ICcnLFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgdXBkYXRlZEF0OiB1cGRhdGVkRGF0ZSxcbiAgICAgICAgICAgIHVzZXJJZDogJycsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcXVlcnlMaXN0LnB1c2goe1xuICAgICAgICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkRGF0ZSxcbiAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgIHBpbm5lZEF0OiAnJyxcbiAgICAgICAgICAgIHF1ZXJ5c3RyaW5nOiBxdWVyeXN0cmluZyxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgIHVwZGF0ZWRBdDogdXBkYXRlZERhdGUsXG4gICAgICAgICAgICB1c2VySWQ6ICcnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1ZXJ5TGlzdDtcbn07XG5cbmNvbnN0IGdldEFsbExpbmVzRnJvbUZpbGUgPSAoY2FjaGU6IHN0cmluZykgPT4gY2FjaGUuc3BsaXQoL1xccj9cXG4vKTtcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBnZXRDcmVhdGVkRGF0ZUZyb21MaW5lID0gKGxpbmU6IHN0cmluZykgPT4gL14oXFxkezE0fSkvLmV4ZWMobGluZSk/LlsxXTtcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBnZXRJREZyb21MaW5lID0gKGxpbmU6IHN0cmluZykgPT4gL14oXFxkezE0fSkoXFxkezEsfSlcXHMvLmV4ZWMobGluZSk/LlsyXTtcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBnZXRTdHJpbmdGcm9tTGluZSA9IChsaW5lOiBzdHJpbmcpID0+IC9eKFxcZHsxNH0pKFxcZHsxLH0pXFxzKC4rKVxccyhcXFsoLispP1xcXSkvLmV4ZWMobGluZSk/Lls0XTtcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBnZXRUaXRsZUZyb21MaW5lID0gKGxpbmU6IHN0cmluZykgPT4gL14oXFxkezE0fSkoXFxkezEsfSlcXHMoLispXFxzKFxcWyguKylcXF0pLy5leGVjKGxpbmUpPy5bM107XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgZ2V0UGlubmVkRGF0ZUZyb21MaW5lID0gKGxpbmU6IHN0cmluZykgPT4vXihcXGR7MTR9KShcXGR7MSx9KVxccyguKylcXHMoXFxbKC4rKVxcXSlcXHMocGlubmVkQXRcXDogKFxcZHsxNH0pKS8uZXhlYyhsaW5lKT8uWzddO1xuIiwiaW1wb3J0IHtnZXREYWlseU5vdGVQYXRofSBmcm9tICcuL29iVXBkYXRlTWVtbyc7XG5pbXBvcnQge1RGaWxlLCBub3JtYWxpemVQYXRoLCBOb3RpY2V9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU9ic2lkaWFuUXVlcnkgPSBhc3luYyAodGl0bGU6IHN0cmluZywgcXVlcnlzdHJpbmc6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHttZXRhZGF0YUNhY2hlLCB2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG5cbiAgY29uc3QgZmlsZVBhdGggPSBnZXREYWlseU5vdGVQYXRoKCk7XG4gIGNvbnN0IGFic29sdXRlUGF0aCA9IGZpbGVQYXRoICsgJy9xdWVyeS5tZCc7XG5cbiAgY29uc3QgcXVlcnlGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCgnJywgYWJzb2x1dGVQYXRoKTtcblxuICBpZiAocXVlcnlGaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcbiAgICBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5yZWFkKHF1ZXJ5RmlsZSk7XG4gICAgY29uc3QgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKTtcbiAgICBjb25zdCBjcmVhdGVkRGF0ZSA9IGRhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyk7XG4gICAgY29uc3QgdXBkYXRlZERhdGUgPSBjcmVhdGVkRGF0ZTtcbiAgICAvLyBjb25zdCBsaW5lTnVtID0gZmlsZUxpbmVzLmxlbmd0aCArIDE7XG4gICAgLy8gbGV0IGxpbmVOdW07XG4gICAgbGV0IGxpbmVOdW07XG4gICAgaWYgKGZpbGVMaW5lcy5sZW5ndGggPT09IDEgJiYgZmlsZUxpbmVzWzBdID09PSAnJykge1xuICAgICAgbGluZU51bSA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmVOdW0gPSBmaWxlTGluZXMubGVuZ3RoICsgMTtcbiAgICB9XG4gICAgY29uc3QgaWQgPSBkYXRlLmZvcm1hdCgnWVlZWU1NRERISG1tc3MnKSArIGxpbmVOdW07XG5cbiAgICBhd2FpdCBjcmVhdGVRdWVyeUluRmlsZShxdWVyeUZpbGUsIGZpbGVDb250ZW50cywgaWQsIHRpdGxlLCBxdWVyeXN0cmluZyk7XG5cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWREYXRlLFxuICAgICAgICBpZDogaWQsXG4gICAgICAgIHBpbm5lZEF0OiAnJyxcbiAgICAgICAgcXVlcnlzdHJpbmc6IHF1ZXJ5c3RyaW5nLFxuICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgIHVwZGF0ZWRBdDogdXBkYXRlZERhdGUsXG4gICAgICAgIHVzZXJJZDogJycsXG4gICAgICB9LFxuICAgIF07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcXVlcnlGaWxlUGF0aCA9IG5vcm1hbGl6ZVBhdGgoYWJzb2x1dGVQYXRoKTtcbiAgICBjb25zdCBmaWxlID0gYXdhaXQgY3JlYXRlUXVlcnlGaWxlKHF1ZXJ5RmlsZVBhdGgpO1xuICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LnJlYWQoZmlsZSk7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpO1xuICAgIGNvbnN0IGNyZWF0ZWREYXRlID0gZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKTtcbiAgICBjb25zdCB1cGRhdGVkRGF0ZSA9IGNyZWF0ZWREYXRlO1xuICAgIGNvbnN0IGlkID0gZGF0ZS5mb3JtYXQoJ1lZWVlNTURESEhtbXNzJykgKyAxO1xuXG4gICAgYXdhaXQgY3JlYXRlUXVlcnlJbkZpbGUoZmlsZSwgZmlsZUNvbnRlbnRzLCBpZCwgdGl0bGUsIHF1ZXJ5c3RyaW5nKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGNyZWF0ZWRBdDogY3JlYXRlZERhdGUsXG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgcGlubmVkQXQ6ICcnLFxuICAgICAgICBxdWVyeXN0cmluZzogcXVlcnlzdHJpbmcsXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgdXBkYXRlZEF0OiB1cGRhdGVkRGF0ZSxcbiAgICAgICAgdXNlcklkOiAnJyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5SW5GaWxlID0gYXN5bmMgKFxuICBmaWxlOiBURmlsZSxcbiAgZmlsZUNvbnRlbnQ6IHN0cmluZyxcbiAgaWQ6IHN0cmluZyxcbiAgdGl0bGU6IHN0cmluZyxcbiAgcXVlcnlTdHJpbmc6IHN0cmluZyxcbik6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHt2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGxldCBuZXdDb250ZW50O1xuICBpZiAoZmlsZUNvbnRlbnQgPT09ICcnKSB7XG4gICAgbmV3Q29udGVudCA9IGlkICsgJyAnICsgdGl0bGUgKyAnICcgKyBxdWVyeVN0cmluZztcbiAgfSBlbHNlIHtcbiAgICBuZXdDb250ZW50ID0gZmlsZUNvbnRlbnQgKyAnXFxuJyArIGlkICsgJyAnICsgdGl0bGUgKyAnICcgKyBxdWVyeVN0cmluZztcbiAgfVxuXG4gIGF3YWl0IHZhdWx0Lm1vZGlmeShmaWxlLCBuZXdDb250ZW50KTtcblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVRdWVyeUZpbGUgPSBhc3luYyAocGF0aDogc3RyaW5nKTogUHJvbWlzZTxURmlsZT4gPT4ge1xuICBjb25zdCB7dmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY3JlYXRlZEZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGUocGF0aCwgJycpO1xuICAgIHJldHVybiBjcmVhdGVkRmlsZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBmaWxlOiAnJHtwYXRofSdgLCBlcnIpO1xuICAgIG5ldyBOb3RpY2UoJ1VuYWJsZSB0byBjcmVhdGUgbmV3IGZpbGUuJyk7XG4gIH1cbn07XG5cbmNvbnN0IGdldEFsbExpbmVzRnJvbUZpbGUgPSAoY2FjaGU6IHN0cmluZykgPT4gY2FjaGUuc3BsaXQoL1xccj9cXG4vKTtcbiIsImltcG9ydCB7bm9ybWFsaXplUGF0aCwgVEZvbGRlciwgVEZpbGV9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7Z2V0QWxsRGFpbHlOb3RlcywgZ2V0RGFpbHlOb3RlU2V0dGluZ3MsIGdldERhdGVGcm9tRmlsZX0gZnJvbSAnb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlJztcbmltcG9ydCBhcHBTdG9yZSBmcm9tICcuLi9zdG9yZXMvYXBwU3RvcmUnO1xuaW1wb3J0IHtQcm9jZXNzRW50cmllc0JlbG93fSBmcm9tICcuLi9tZW1vcyc7XG5cbmV4cG9ydCBjbGFzcyBEYWlseU5vdGVzRm9sZGVyTWlzc2luZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige31cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbWFpbmluZ1Rhc2tzKG5vdGU6IFRGaWxlKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgaWYgKCFub3RlKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgY29uc3Qge3ZhdWx0fSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcbiAgbGV0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LnJlYWQobm90ZSk7XG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGNvbnN0IG1hdGNoTGVuZ3RoID0gKGZpbGVDb250ZW50cy5tYXRjaCgvKC18XFwqKSAoXFxbIFxcXVxccyk/KChcXDx0aW1lXFw+KT9cXGR7MSwyfVxcOlxcZHsyfSk/L2cpIHx8IFtdKS5sZW5ndGg7XG4gIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChQcm9jZXNzRW50cmllc0JlbG93LnJlcGxhY2UoLyhbLj8qK14kW1xcXVxcXFwoKXt9fC1dKS9nLCAnXFxcXCQxJyksICdnJyk7XG4gIGNvbnN0IHByb2Nlc3NFbnRyaWVzSGVhZGVyID0gKGZpbGVDb250ZW50cy5tYXRjaChyZSkgfHwgW10pLmxlbmd0aDtcbiAgZmlsZUNvbnRlbnRzID0gbnVsbDtcbiAgaWYgKHByb2Nlc3NFbnRyaWVzSGVhZGVyKSB7XG4gICAgcmV0dXJuIG1hdGNoTGVuZ3RoO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VGFza3NGcm9tRGFpbHlOb3RlKGRhaWx5Tm90ZTogVEZpbGUgfCBudWxsLCBkYWlseUV2ZW50czogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XG4gIGlmICghZGFpbHlOb3RlKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IHt2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGNvbnN0IFRhc2tzID0gYXdhaXQgZ2V0UmVtYWluaW5nVGFza3MoZGFpbHlOb3RlKTtcblxuICBpZiAoVGFza3MpIHtcbiAgICBsZXQgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQucmVhZChkYWlseU5vdGUpO1xuICAgIGxldCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gZ2V0RGF0ZUZyb21GaWxlKGRhaWx5Tm90ZSwgJ2RheScpO1xuICAgIGNvbnN0IGVuZERhdGUgPSBnZXREYXRlRnJvbUZpbGUoZGFpbHlOb3RlLCAnZGF5Jyk7XG4gICAgbGV0IHByb2Nlc3NIZWFkZXJGb3VuZCA9IGZhbHNlO1xuICAgIGxldCBtZW1vVHlwZTogc3RyaW5nO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBsaW5lID0gZmlsZUxpbmVzW2ldO1xuICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKSBjb250aW51ZTtcbiAgICAgIGlmIChwcm9jZXNzSGVhZGVyRm91bmQgPT0gZmFsc2UgJiYgbGluZUNvbnRhaW5zUGFyc2VCZWxvd1Rva2VuKGxpbmUpKSB7XG4gICAgICAgIHByb2Nlc3NIZWFkZXJGb3VuZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvY2Vzc0hlYWRlckZvdW5kID09IHRydWUgJiYgIWxpbmVDb250YWluc1BhcnNlQmVsb3dUb2tlbihsaW5lKSAmJiAvXiN7MSx9IC9nLnRlc3QobGluZSkpIHtcbiAgICAgICAgcHJvY2Vzc0hlYWRlckZvdW5kID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5lQ29udGFpbnNUaW1lKGxpbmUpICYmIHByb2Nlc3NIZWFkZXJGb3VuZCkge1xuICAgICAgICBzdGFydERhdGUuaG91cnMocGFyc2VJbnQoZXh0cmFjdEhvdXJGcm9tQnVsbGV0TGluZShsaW5lKSkpO1xuICAgICAgICBzdGFydERhdGUubWludXRlcyhwYXJzZUludChleHRyYWN0TWluRnJvbUJ1bGxldExpbmUobGluZSkpKTtcbiAgICAgICAgZW5kRGF0ZS5ob3VycyhwYXJzZUludChleHRyYWN0SG91ckZyb21CdWxsZXRMaW5lKGxpbmUpKSk7XG4gICAgICAgIGlmIChwYXJzZUludChleHRyYWN0SG91ckZyb21CdWxsZXRMaW5lKGxpbmUpKSA+IDIyKSB7XG4gICAgICAgICAgZW5kRGF0ZS5taW51dGVzKHBhcnNlSW50KGV4dHJhY3RNaW5Gcm9tQnVsbGV0TGluZShsaW5lKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVuZERhdGUubWludXRlcyhwYXJzZUludChleHRyYWN0TWluRnJvbUJ1bGxldExpbmUobGluZSkpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoL15cXHMqWy0qXVxccyhcXFsoLnsxfSlcXF0pXFxzL2cudGVzdChsaW5lKSkge1xuICAgICAgICAgIGNvbnN0IG1lbW9UYXNrVHlwZSA9IGV4dHJhY3RNZW1vVGFza1R5cGVGcm9tTGluZShsaW5lKTtcbiAgICAgICAgICBpZiAobWVtb1Rhc2tUeXBlID09PSAnICcpIHtcbiAgICAgICAgICAgIG1lbW9UeXBlID0gJ1RBU0stVE9ETyc7XG4gICAgICAgICAgfSBlbHNlIGlmIChtZW1vVGFza1R5cGUgPT09ICd4JyB8fCBtZW1vVGFza1R5cGUgPT09ICdYJykge1xuICAgICAgICAgICAgbWVtb1R5cGUgPSAnVEFTSy1ET05FJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWVtb1R5cGUgPSAnVEFTSy0nICsgbWVtb1Rhc2tUeXBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZW1vVHlwZSA9ICdKT1VSTkFMJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYXdUZXh0ID0gZXh0cmFjdFRleHRGcm9tVG9kb0xpbmUobGluZSk7XG4gICAgICAgIGRhaWx5RXZlbnRzLnB1c2goe1xuICAgICAgICAgIGlkOiBzdGFydERhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW1TUycpICsgaSxcbiAgICAgICAgICBjb250ZW50OiByYXdUZXh0LFxuICAgICAgICAgIHVzZXJfaWQ6IDEsXG4gICAgICAgICAgY3JlYXRlZEF0OiBzdGFydERhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOlNTJyksXG4gICAgICAgICAgdXBkYXRlZEF0OiBlbmREYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpTUycpLFxuICAgICAgICAgIG1lbW9UeXBlOiBtZW1vVHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZpbGVMaW5lcyA9IG51bGw7XG4gICAgZmlsZUNvbnRlbnRzID0gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWVtb3MoKTogUHJvbWlzZTxhbnlbXT4ge1xuICBjb25zdCBldmVudHM6IGFueVtdIHwgUHJvbWlzZUxpa2U8YW55W10+ID0gW107XG4gIGNvbnN0IHt2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGNvbnN0IHtmb2xkZXJ9ID0gZ2V0RGFpbHlOb3RlU2V0dGluZ3MoKTtcblxuICBjb25zdCBkYWlseU5vdGVzRm9sZGVyID0gdmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKG5vcm1hbGl6ZVBhdGgoZm9sZGVyKSkgYXMgVEZvbGRlcjtcblxuICBpZiAoIWRhaWx5Tm90ZXNGb2xkZXIpIHtcbiAgICB0aHJvdyBuZXcgRGFpbHlOb3Rlc0ZvbGRlck1pc3NpbmdFcnJvcignRmFpbGVkIHRvIGZpbmQgZGFpbHkgbm90ZXMgZm9sZGVyJyk7XG4gIH1cblxuICBjb25zdCBkYWlseU5vdGVzID0gZ2V0QWxsRGFpbHlOb3RlcygpO1xuXG4gIGZvciAoY29uc3Qgc3RyaW5nIGluIGRhaWx5Tm90ZXMpIHtcbiAgICBpZiAoZGFpbHlOb3Rlc1tzdHJpbmddIGluc3RhbmNlb2YgVEZpbGUpIHtcbiAgICAgIGF3YWl0IGdldFRhc2tzRnJvbURhaWx5Tm90ZShkYWlseU5vdGVzW3N0cmluZ10sIGV2ZW50cyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV2ZW50cztcbn1cblxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pO1xuLy8gY29uc3QgbGluZUlzVmFsaWRUb2RvID0gKGxpbmU6IHN0cmluZykgPT4ge1xuLy8gLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbi8vICAgcmV0dXJuIC9eXFxzKltcXC1cXCpdXFxzXFxbKFxcc3x4fFh8XFxcXHxcXC18XFw+fER8XFw/fFxcL3xcXCt8UnxcXCF8aXxCfFB8QylcXF1cXHM/XFxzKlxcUy8udGVzdChsaW5lKVxuLy8gfVxuY29uc3QgbGluZUNvbnRhaW5zVGltZSA9IChsaW5lOiBzdHJpbmcpID0+IHtcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgcmV0dXJuIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXVxccyk/KFxcPHRpbWVcXD4pP1xcZHsxLDJ9XFw6XFxkezJ9KC4qKSQvLnRlc3QobGluZSk7XG4gIC8vIFRoZSBiZWxvdyBsaW5lIGV4Y2x1ZGVzIGVudHJpZXMgd2l0aCBhICc6JyBhZnRlciB0aGUgdGltZSBhcyBJIHdhcyBoYXZpbmcgaXNzdWVzIHdpdGggbXkgY2FsZW5kYXJcbiAgLy8gYmVpbmcgcHVsbGVkIGluLiBPbmNlIG1hZGUgY29uZmlndXJhYmxlIHdpbGwgYmUgc2ltcGxlciB0byBtYW5hZ2UuXG4gIC8vIHJldHVybiAvXlxccypbXFwtXFwqXVxccyhcXFsoXFxzfHh8WHxcXFxcfFxcLXxcXD58RHxcXD98XFwvfFxcK3xSfFxcIXxpfEJ8UHxDKVxcXVxccyk/KFxcPHRpbWVcXD4pP1xcZHsxLDJ9XFw6XFxkezJ9W146XSguKikkLy50ZXN0KGxpbmUpO1xufTtcblxuY29uc3QgbGluZUNvbnRhaW5zUGFyc2VCZWxvd1Rva2VuID0gKGxpbmU6IHN0cmluZykgPT4ge1xuICBpZiAoUHJvY2Vzc0VudHJpZXNCZWxvdyA9PT0gJycpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCByZSA9IG5ldyBSZWdFeHAoUHJvY2Vzc0VudHJpZXNCZWxvdy5yZXBsYWNlKC8oWy4/KiteJFtcXF1cXFxcKCl7fXwtXSkvZywgJ1xcXFwkMScpLCAnJyk7XG4gIHJldHVybiByZS50ZXN0KGxpbmUpO1xufTtcblxuY29uc3QgZXh0cmFjdFRleHRGcm9tVG9kb0xpbmUgPSAobGluZTogc3RyaW5nKSA9PlxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAvXlxccypbXFwtXFwqXVxccyhcXFsoLnsxfSlcXF1cXHM/KT8oXFw8dGltZVxcPik/KChcXGR7MSwyfSlcXDooXFxkezJ9KSk/KFxcPFxcL3RpbWVcXD4pP1xccz8oLiopJC8uZXhlYyhsaW5lKT8uWzhdO1xuXG5jb25zdCBleHRyYWN0SG91ckZyb21CdWxsZXRMaW5lID0gKGxpbmU6IHN0cmluZykgPT5cbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgL15cXHMqW1xcLVxcKl1cXHMoXFxbKC57MX0pXFxdXFxzPyk/KFxcPHRpbWVcXD4pPyhcXGR7MSwyfSlcXDooXFxkezJ9KSguKikkLy5leGVjKGxpbmUpPy5bNF07XG5cbmNvbnN0IGV4dHJhY3RNaW5Gcm9tQnVsbGV0TGluZSA9IChsaW5lOiBzdHJpbmcpID0+XG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIC9eXFxzKltcXC1cXCpdXFxzKFxcWyguezF9KVxcXVxccz8pPyhcXDx0aW1lXFw+KT8oXFxkezEsMn0pXFw6KFxcZHsyfSkoLiopJC8uZXhlYyhsaW5lKT8uWzVdO1xuXG5jb25zdCBleHRyYWN0TWVtb1Rhc2tUeXBlRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PlxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAvXlxccypbXFwtXFwqXVxccyhcXFsoLnsxfSlcXF0pXFxzKC4qKSQvLmV4ZWMobGluZSk/LlsyXTtcbi8vIFRoZSBiZWxvdyBsaW5lIGV4Y2x1ZGVzIGVudHJpZXMgd2l0aCBhICc6JyBhZnRlciB0aGUgdGltZSBhcyBJIHdhcyBoYXZpbmcgaXNzdWVzIHdpdGggbXkgY2FsZW5kYXJcbi8vIGJlaW5nIHB1bGxlZCBpbi4gT25jZSBtYWRlIGNvbmZpZ3VyYWJsZSB3aWxsIGJlIHNpbXBsZXIgdG8gbWFuYWdlLlxuLy8gcmV0dXJuIC9eXFxzKltcXC1cXCpdXFxzKFxcWyhcXHN8eHxYfFxcXFx8XFwtfFxcPnxEfFxcP3xcXC98XFwrfFJ8XFwhfGl8QnxQfEMpXFxdXFxzKT8oXFw8dGltZVxcPik/XFxkezEsMn1cXDpcXGR7Mn1bXjpdKC4qKSQvLnRlc3QobGluZSk7XG4iLCJpbXBvcnQge21vbWVudH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtURmlsZX0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5pbXBvcnQge2dldERhaWx5Tm90ZVBhdGh9IGZyb20gJy4vb2JVcGRhdGVNZW1vJztcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU9ic2lkaWFuUXVlcnkgPSBhc3luYyAocXVlcnlJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBxdWVyeVN0cmluZzogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3Qge21ldGFkYXRhQ2FjaGUsIHZhdWx0fSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcblxuICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gZmlsZVBhdGggKyAnL3F1ZXJ5Lm1kJztcblxuICBjb25zdCBxdWVyeUZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KCcnLCBhYnNvbHV0ZVBhdGgpO1xuXG4gIGlmIChxdWVyeUZpbGUgaW5zdGFuY2VvZiBURmlsZSkge1xuICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LnJlYWQocXVlcnlGaWxlKTtcbiAgICBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XG5cbiAgICBsZXQgbGluZUlEO1xuXG4gICAgaWYgKC9eXFxkezEsM30kLy50ZXN0KHF1ZXJ5SWQpKSB7XG4gICAgICBsaW5lSUQgPSBxdWVyeUlkO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lSUQgPSBnZXRJREZyb21MaW5lKHF1ZXJ5SWQpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVOdW0gPSBwYXJzZUludChsaW5lSUQpIC0gMTtcblxuICAgIGlmIChmaWxlTGluZXMgJiYgZmlsZUxpbmVzLmxlbmd0aCAhPSAwKSB7XG4gICAgICBjb25zdCBvbGRDb250ZW50ID0gZmlsZUxpbmVzW2xpbmVOdW1dO1xuXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KCk7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0ZVN0cmluZyA9IGRhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW1zcycpO1xuICAgICAgY29uc3QgdXBkYXRlZERhdGUgPSBkYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpO1xuICAgICAgY29uc3QgbmV3TGluZU51bSA9IGxpbmVOdW0gKyAxO1xuICAgICAgY29uc3QgaWQgPSB1cGRhdGVkRGF0ZVN0cmluZyArIG5ld0xpbmVOdW07XG4gICAgICBpZiAoL14oLispcGlubmVkQXQoLispJC8udGVzdChvbGRDb250ZW50KSkge1xuICAgICAgICBjb25zdCBwaW5uZWRTdHJpbmcgPSBnZXRQaW5uZWRTdHJpbmdGcm9tTGluZShvbGRDb250ZW50KTtcbiAgICAgICAgY29uc3QgcGlubmVkRGF0ZVN0cmluZyA9IGdldFBpbm5lZERhdGVGcm9tTGluZShvbGRDb250ZW50KTtcbiAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IGlkICsgJyAnICsgdGl0bGUgKyAnICcgKyBxdWVyeVN0cmluZyArICcgJyArIHBpbm5lZFN0cmluZztcbiAgICAgICAgY29uc3QgcGlubmVkQXREYXRlID0gbW9tZW50KHBpbm5lZERhdGVTdHJpbmcsICdZWVlZTU1EREhIbW1zcycpLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpO1xuICAgICAgICBjb25zdCBuZXdGaWxlQ29udGVudHMgPSBmaWxlQ29udGVudHMucmVwbGFjZShvbGRDb250ZW50LCBuZXdDb250ZW50KTtcblxuICAgICAgICBhd2FpdCB2YXVsdC5tb2RpZnkocXVlcnlGaWxlLCBuZXdGaWxlQ29udGVudHMpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY3JlYXRlZEF0OiB1cGRhdGVkRGF0ZSxcbiAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgIHBpbm5lZEF0OiBwaW5uZWRBdERhdGUsXG4gICAgICAgICAgICBxdWVyeXN0cmluZzogcXVlcnlTdHJpbmcsXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IHVwZGF0ZWREYXRlLFxuICAgICAgICAgICAgdXNlcklkOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IGlkICsgJyAnICsgdGl0bGUgKyAnICcgKyBxdWVyeVN0cmluZztcblxuICAgICAgICBjb25zdCBuZXdGaWxlQ29udGVudHMgPSBmaWxlQ29udGVudHMucmVwbGFjZShvbGRDb250ZW50LCBuZXdDb250ZW50KTtcblxuICAgICAgICBhd2FpdCB2YXVsdC5tb2RpZnkocXVlcnlGaWxlLCBuZXdGaWxlQ29udGVudHMpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY3JlYXRlZEF0OiB1cGRhdGVkRGF0ZSxcbiAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgIHBpbm5lZEF0OiAnJyxcbiAgICAgICAgICAgIHF1ZXJ5c3RyaW5nOiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgIHVwZGF0ZWRBdDogdXBkYXRlZERhdGUsXG4gICAgICAgICAgICB1c2VySWQ6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBnZXRBbGxMaW5lc0Zyb21GaWxlID0gKGNhY2hlOiBzdHJpbmcpID0+IGNhY2hlLnNwbGl0KC9cXHI/XFxuLyk7XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgZ2V0SURGcm9tTGluZSA9IChsaW5lOiBzdHJpbmcpID0+IC9eKFxcZHsxNH0pKFxcZHsxLH0pLy5leGVjKGxpbmUpPy5bMl07XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgZ2V0UGlubmVkU3RyaW5nRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9Pi9eKFxcZHsxNH0pKFxcZHsxLH0pXFxzKC4rKVxccyhcXFsoLispXFxdKVxccyhwaW5uZWRBdFxcOiAoXFxkezE0fSlcXGQrKS8uZXhlYyhsaW5lKT8uWzZdO1xuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmNvbnN0IGdldFBpbm5lZERhdGVGcm9tTGluZSA9IChsaW5lOiBzdHJpbmcpID0+L14oXFxkezE0fSkoXFxkezEsfSlcXHMoLispXFxzKFxcWyguKylcXF0pXFxzKHBpbm5lZEF0XFw6IChcXGR7MTR9KVxcZCspLy5leGVjKGxpbmUpPy5bN107XG4iLCJpbXBvcnQge21vbWVudH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtjcmVhdGVEYWlseU5vdGUsIGdldEFsbERhaWx5Tm90ZXMsIGdldERhaWx5Tm90ZX0gZnJvbSAnb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlJztcbmltcG9ydCBhcHBTdG9yZSBmcm9tICcuLi9zdG9yZXMvYXBwU3RvcmUnO1xuaW1wb3J0IHtJbnNlcnRBZnRlcn0gZnJvbSAnLi4vbWVtb3MnO1xuaW1wb3J0IHtkYWlseU5vdGVzU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuXG5pbnRlcmZhY2UgTUNvbnRlbnQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHBvc051bT86IG51bWJlcjtcbn1cblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzExNTE1MC9ob3ctdG8tZXNjYXBlLXJlZ3VsYXItZXhwcmVzc2lvbi1zcGVjaWFsLWNoYXJhY3RlcnMtdXNpbmctamF2YXNjcmlwdFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cCh0ZXh0OiBhbnkpIHtcbiAgcmV0dXJuIGF3YWl0IHRleHQucmVwbGFjZSgvWy1bXFxde30oKSorPy4sXFxcXF4kfCNcXHNdL2csICdcXFxcJCYnKTtcbn1cblxuLy9jcmVkaXQgdG8gY2hob3VtYW5uLCBvcmlnaW5hbCBjb2RlIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGhvdW1hbm4vcXVpY2thZGQvYmxvYi83NTM2YTEyMDcwMWE2MjZlZjAxMGRiNTY3Y2VhN2NmMzAxOGU2YzgyL3NyYy91dGlsaXR5LnRzI0wxMzBcbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5lc0luU3RyaW5nKGlucHV0OiBzdHJpbmcpIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XG4gIGxldCB0ZW1wU3RyaW5nID0gaW5wdXQ7XG5cbiAgd2hpbGUgKHRlbXBTdHJpbmcuY29udGFpbnMoJ1xcbicpKSB7XG4gICAgY29uc3QgbGluZUVuZEluZGV4ID0gdGVtcFN0cmluZy5pbmRleE9mKCdcXG4nKTtcbiAgICBsaW5lcy5wdXNoKHRlbXBTdHJpbmcuc2xpY2UoMCwgbGluZUVuZEluZGV4KSk7XG4gICAgdGVtcFN0cmluZyA9IHRlbXBTdHJpbmcuc2xpY2UobGluZUVuZEluZGV4ICsgMSk7XG4gIH1cblxuICBsaW5lcy5wdXNoKHRlbXBTdHJpbmcpO1xuXG4gIHJldHVybiBsaW5lcztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JJbnNlcnQoTWVtb0NvbnRlbnQ6IHN0cmluZywgaXNMaXN0OiBib29sZWFuKTogUHJvbWlzZTxNb2RlbC5NZW1vPiB7XG4gIC8vIGNvbnN0IHBsdWdpbiA9IHdpbmRvdy5wbHVnaW47XG4gIGNvbnN0IHt2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGNvbnN0IHJlbW92ZUVudGVyID0gTWVtb0NvbnRlbnQucmVwbGFjZSgvXFxuL2csICc8YnI+Jyk7XG4gIGNvbnN0IGRhdGUgPSBtb21lbnQoKTtcbiAgY29uc3QgdGltZUhvdXIgPSBkYXRlLmZvcm1hdCgnSEgnKTtcbiAgY29uc3QgdGltZU1pbnV0ZSA9IGRhdGUuZm9ybWF0KCdtbScpO1xuICBsZXQgbmV3RXZlbnQ7XG4gIGxldCBsaW5lTnVtO1xuXG4gIGlmIChpc0xpc3QpIHtcbiAgICBuZXdFdmVudCA9IGAtIFsgXSBgICsgU3RyaW5nKHRpbWVIb3VyKSArIGA6YCArIFN0cmluZyh0aW1lTWludXRlKSArIGAgYCArIHJlbW92ZUVudGVyO1xuICB9IGVsc2Uge1xuICAgIG5ld0V2ZW50ID0gYC0gYCArIFN0cmluZyh0aW1lSG91cikgKyBgOmAgKyBTdHJpbmcodGltZU1pbnV0ZSkgKyBgIGAgKyByZW1vdmVFbnRlcjtcbiAgfVxuXG4gIGNvbnN0IGRhaWx5Tm90ZXMgPSBhd2FpdCBnZXRBbGxEYWlseU5vdGVzKCk7XG4gIGNvbnN0IGV4aXN0aW5nRmlsZSA9IGdldERhaWx5Tm90ZShkYXRlLCBkYWlseU5vdGVzKTtcbiAgaWYgKCFleGlzdGluZ0ZpbGUpIHtcbiAgICBjb25zdCBmaWxlID0gYXdhaXQgY3JlYXRlRGFpbHlOb3RlKGRhdGUpO1xuICAgIGF3YWl0IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldE15QWxsRGFpbHlOb3RlcygpO1xuICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LnJlYWQoZmlsZSk7XG4gICAgY29uc3QgbmV3RmlsZUNvbnRlbnQgPSBhd2FpdCBpbnNlcnRBZnRlckhhbmRsZXIoSW5zZXJ0QWZ0ZXIsIG5ld0V2ZW50LCBmaWxlQ29udGVudHMpO1xuICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShmaWxlLCBuZXdGaWxlQ29udGVudC5jb250ZW50KTtcbiAgICBpZiAobmV3RmlsZUNvbnRlbnQucG9zTnVtID09PSAtMSkge1xuICAgICAgY29uc3QgYWxsTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKG5ld0ZpbGVDb250ZW50LmNvbnRlbnQpO1xuICAgICAgbGluZU51bSA9IGFsbExpbmVzLmxlbmd0aCArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmVOdW0gPSBuZXdGaWxlQ29udGVudC5wb3NOdW0gKyAxO1xuICAgIH1cbiAgICBpZiAoaXNMaXN0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogZGF0ZS5mb3JtYXQoJ1lZWVlNTURESEhtbScpICsgJzAwJyArIGxpbmVOdW0sXG4gICAgICAgIGNvbnRlbnQ6IE1lbW9Db250ZW50LFxuICAgICAgICBkZWxldGVkQXQ6ICcnLFxuICAgICAgICBjcmVhdGVkQXQ6IGRhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyksXG4gICAgICAgIHVwZGF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcbiAgICAgICAgbWVtb1R5cGU6ICdUQVNLLVRPRE8nLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGRhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW0nKSArICcwMCcgKyBsaW5lTnVtLFxuICAgICAgICBjb250ZW50OiBNZW1vQ29udGVudCxcbiAgICAgICAgZGVsZXRlZEF0OiAnJyxcbiAgICAgICAgY3JlYXRlZEF0OiBkYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpLFxuICAgICAgICB1cGRhdGVkQXQ6IGRhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyksXG4gICAgICAgIG1lbW9UeXBlOiAnSk9VUk5BTCcsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5yZWFkKGV4aXN0aW5nRmlsZSk7XG4gICAgY29uc3QgbmV3RmlsZUNvbnRlbnQgPSBhd2FpdCBpbnNlcnRBZnRlckhhbmRsZXIoSW5zZXJ0QWZ0ZXIsIG5ld0V2ZW50LCBmaWxlQ29udGVudHMpO1xuICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShleGlzdGluZ0ZpbGUsIG5ld0ZpbGVDb250ZW50LmNvbnRlbnQpO1xuICAgIGlmIChuZXdGaWxlQ29udGVudC5wb3NOdW0gPT09IC0xKSB7XG4gICAgICBjb25zdCBhbGxMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUobmV3RmlsZUNvbnRlbnQuY29udGVudCk7XG4gICAgICBsaW5lTnVtID0gYWxsTGluZXMubGVuZ3RoICsgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGluZU51bSA9IG5ld0ZpbGVDb250ZW50LnBvc051bSArIDE7XG4gICAgfVxuICAgIGlmIChpc0xpc3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBkYXRlLmZvcm1hdCgnWVlZWU1NRERISG1tJykgKyAnMDAnICsgbGluZU51bSxcbiAgICAgICAgY29udGVudDogTWVtb0NvbnRlbnQsXG4gICAgICAgIGRlbGV0ZWRBdDogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcbiAgICAgICAgdXBkYXRlZEF0OiBkYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpLFxuICAgICAgICBtZW1vVHlwZTogJ1RPRE8tQmxhbmsnLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGRhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW0nKSArICcwMCcgKyBsaW5lTnVtLFxuICAgICAgICBjb250ZW50OiBNZW1vQ29udGVudCxcbiAgICAgICAgZGVsZXRlZEF0OiAnJyxcbiAgICAgICAgY3JlYXRlZEF0OiBkYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpLFxuICAgICAgICB1cGRhdGVkQXQ6IGRhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyksXG4gICAgICAgIG1lbW9UeXBlOiAnSk9VUk5BTCcsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG4vL2NyZWRpdCB0byBjaGhvdW1hbm4sIG9yaWdpbmFsIGNvZGUgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL2NoaG91bWFubi9xdWlja2FkZFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydEFmdGVySGFuZGxlcih0YXJnZXRTdHJpbmc6IHN0cmluZywgZm9ybWF0dGVkOiBzdHJpbmcsIGZpbGVDb250ZW50OiBzdHJpbmcpIHtcbiAgLy8gY29uc3QgdGFyZ2V0U3RyaW5nOiBzdHJpbmcgPSBwbHVnaW4uc2V0dGluZ3MuSW5zZXJ0QWZ0ZXI7XG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGNvbnN0IHRhcmdldFJlZ2V4ID0gbmV3IFJlZ0V4cChgXFxzKiR7YXdhaXQgZXNjYXBlUmVnRXhwKHRhcmdldFN0cmluZyl9XFxzKmApO1xuICBjb25zdCBmaWxlQ29udGVudExpbmVzOiBzdHJpbmdbXSA9IGdldExpbmVzSW5TdHJpbmcoZmlsZUNvbnRlbnQpO1xuXG4gIGNvbnN0IHRhcmdldFBvc2l0aW9uID0gZmlsZUNvbnRlbnRMaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IHRhcmdldFJlZ2V4LnRlc3QobGluZSkpO1xuICBjb25zdCB0YXJnZXROb3RGb3VuZCA9IHRhcmdldFBvc2l0aW9uID09PSAtMTtcbiAgaWYgKHRhcmdldE5vdEZvdW5kKSB7XG4gICAgLy8gaWYgKHRoaXMuY2hvaWNlLmluc2VydEFmdGVyPy5jcmVhdGVJZk5vdEZvdW5kKSB7XG4gICAgLy8gICAgIHJldHVybiBhd2FpdCBjcmVhdGVJbnNlcnRBZnRlcklmTm90Rm91bmQoZm9ybWF0dGVkKTtcbiAgICAvLyB9XG5cbiAgICBjb25zb2xlLmxvZygndW5hYmxlIHRvIGZpbmQgaW5zZXJ0IGFmdGVyIGxpbmUgaW4gZmlsZS4nKTtcbiAgfVxuXG4gIGNvbnN0IG5leHRIZWFkZXJQb3NpdGlvbkFmdGVyVGFyZ2V0UG9zaXRpb24gPSBmaWxlQ29udGVudExpbmVzXG4gICAgLnNsaWNlKHRhcmdldFBvc2l0aW9uICsgMSlcbiAgICAuZmluZEluZGV4KChsaW5lKSA9PiAvXiMrIHwtLS0vLnRlc3QobGluZSkpO1xuICBjb25zdCBmb3VuZE5leHRIZWFkZXIgPSBuZXh0SGVhZGVyUG9zaXRpb25BZnRlclRhcmdldFBvc2l0aW9uICE9PSAtMTtcblxuICBpZiAoZm91bmROZXh0SGVhZGVyKSB7XG4gICAgbGV0IGVuZE9mU2VjdGlvbkluZGV4OiBudW1iZXI7XG5cbiAgICBmb3IgKGxldCBpID0gbmV4dEhlYWRlclBvc2l0aW9uQWZ0ZXJUYXJnZXRQb3NpdGlvbiArIHRhcmdldFBvc2l0aW9uOyBpID4gdGFyZ2V0UG9zaXRpb247IGktLSkge1xuICAgICAgY29uc3QgbGluZUlzTmV3bGluZTogYm9vbGVhbiA9IC9eW1xcc1xcbiBdKiQvLnRlc3QoZmlsZUNvbnRlbnRMaW5lc1tpXSk7XG4gICAgICBpZiAoIWxpbmVJc05ld2xpbmUpIHtcbiAgICAgICAgZW5kT2ZTZWN0aW9uSW5kZXggPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWVuZE9mU2VjdGlvbkluZGV4KSBlbmRPZlNlY3Rpb25JbmRleCA9IHRhcmdldFBvc2l0aW9uO1xuXG4gICAgcmV0dXJuIGF3YWl0IGluc2VydFRleHRBZnRlclBvc2l0aW9uSW5Cb2R5KGZvcm1hdHRlZCwgZmlsZUNvbnRlbnQsIGVuZE9mU2VjdGlvbkluZGV4LCBmb3VuZE5leHRIZWFkZXIpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhd2FpdCBpbnNlcnRUZXh0QWZ0ZXJQb3NpdGlvbkluQm9keShmb3JtYXR0ZWQsIGZpbGVDb250ZW50LCBmaWxlQ29udGVudExpbmVzLmxlbmd0aCAtIDEsIGZvdW5kTmV4dEhlYWRlcik7XG4gIH1cbiAgLy8gcmV0dXJuIGluc2VydFRleHRBZnRlclBvc2l0aW9uSW5Cb2R5KGZvcm1hdHRlZCwgZmlsZUNvbnRlbnQsIHRhcmdldFBvc2l0aW9uKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydFRleHRBZnRlclBvc2l0aW9uSW5Cb2R5KFxuICB0ZXh0OiBzdHJpbmcsXG4gIGJvZHk6IHN0cmluZyxcbiAgcG9zOiBudW1iZXIsXG4gIGZvdW5kPzogYm9vbGVhbixcbik6IFByb21pc2U8TUNvbnRlbnQ+IHtcbiAgaWYgKHBvcyA9PT0gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogYCR7Ym9keX1cXG4ke3RleHR9YCxcbiAgICAgIHBvc051bTogLTEsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHNwbGl0Q29udGVudCA9IGJvZHkuc3BsaXQoJ1xcbicpO1xuXG4gIGlmIChmb3VuZCkge1xuICAgIGNvbnN0IHByZSA9IHNwbGl0Q29udGVudC5zbGljZSgwLCBwb3MgKyAxKS5qb2luKCdcXG4nKTtcbiAgICBjb25zdCBwb3N0ID0gc3BsaXRDb250ZW50LnNsaWNlKHBvcyArIDEpLmpvaW4oJ1xcbicpO1xuICAgIC8vIHJldHVybiBgJHtwcmV9XFxuJHt0ZXh0fVxcbiR7cG9zdH1gO1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBgJHtwcmV9XFxuJHt0ZXh0fVxcbiR7cG9zdH1gLFxuICAgICAgcG9zTnVtOiBwb3MsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwcmUgPSBzcGxpdENvbnRlbnQuc2xpY2UoMCwgcG9zICsgMSkuam9pbignXFxuJyk7XG4gICAgY29uc3QgcG9zdCA9IHNwbGl0Q29udGVudC5zbGljZShwb3MgKyAxKS5qb2luKCdcXG4nKTtcbiAgICAvLyByZXR1cm4gYCR7cHJlfSR7dGV4dH1cXG4ke3Bvc3R9YDtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogYCR7cHJlfSR7dGV4dH1cXG4ke3Bvc3R9YCxcbiAgICAgIHBvc051bTogcG9zLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pO1xuIiwiaW1wb3J0IHtnZXREYWlseU5vdGVQYXRofSBmcm9tICcuL29iVXBkYXRlTWVtbyc7XG5pbXBvcnQge1RGaWxlLCBub3JtYWxpemVQYXRoLCBOb3RpY2V9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcbmltcG9ydCB7Y3JlYXRlRGFpbHlOb3RlLCBnZXRBbGxEYWlseU5vdGVzLCBnZXREYWlseU5vdGV9IGZyb20gJ29ic2lkaWFuLWRhaWx5LW5vdGVzLWludGVyZmFjZSc7XG5pbXBvcnQge2luc2VydEFmdGVySGFuZGxlcn0gZnJvbSAnLi9vYkNyZWF0ZU1lbW8nO1xuaW1wb3J0IHtJbnNlcnRBZnRlcn0gZnJvbSAnLi4vbWVtb3MnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzdG9yZURlbGV0ZWRNZW1vKGRlbGV0ZWRNZW1vaWQ6IHN0cmluZyk6IFByb21pc2U8YW55W10+IHtcbiAgY29uc3Qge3ZhdWx0LCBtZXRhZGF0YUNhY2hlfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcbiAgaWYgKC9cXGR7MTQsfS8udGVzdChkZWxldGVkTWVtb2lkKSkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZ2V0RGFpbHlOb3RlUGF0aCgpO1xuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGZpbGVQYXRoICsgJy9kZWxldGUubWQnO1xuICAgIGNvbnN0IGRlbGV0ZUZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KCcnLCBhYnNvbHV0ZVBhdGgpO1xuXG4gICAgaWYgKGRlbGV0ZUZpbGUgaW5zdGFuY2VvZiBURmlsZSkge1xuICAgICAgbGV0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LnJlYWQoZGVsZXRlRmlsZSk7XG4gICAgICBsZXQgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xuICAgICAgaWYgKGZpbGVMaW5lcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGluZU51bSA9IHBhcnNlSW50KGRlbGV0ZWRNZW1vaWQuc2xpY2UoMTQpKTtcbiAgICAgICAgY29uc3QgbGluZSA9IGZpbGVMaW5lc1tsaW5lTnVtIC0gMV07XG4gICAgICAgIGNvbnN0IG5ld0RlbGV0ZWZpbGVDb250ZW50cyA9IGZpbGVDb250ZW50cy5yZXBsYWNlKGxpbmUsICcnKTtcbiAgICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KGRlbGV0ZUZpbGUsIG5ld0RlbGV0ZWZpbGVDb250ZW50cyk7XG4gICAgICAgIGlmICgvXi0gKC4rKSQvLnRlc3QobGluZSkpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IGV4dHJhY3RJRGZyb21UZXh0KGxpbmUpO1xuICAgICAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoaWQsICdZWVlZTU1EREhIbW1zcycpO1xuICAgICAgICAgIGNvbnN0IHRpbWVIb3VyID0gZGF0ZS5mb3JtYXQoJ0hIJyk7XG4gICAgICAgICAgY29uc3QgdGltZU1pbnV0ZSA9IGRhdGUuZm9ybWF0KCdtbScpO1xuXG4gICAgICAgICAgY29uc3QgbmV3RXZlbnQgPSBgLSBgICsgU3RyaW5nKHRpbWVIb3VyKSArIGA6YCArIFN0cmluZyh0aW1lTWludXRlKSArIGAgYCArIGV4dHJhY3RDb250ZW50ZnJvbVRleHQobGluZSk7XG4gICAgICAgICAgY29uc3QgZGFpbHlOb3RlcyA9IGF3YWl0IGdldEFsbERhaWx5Tm90ZXMoKTtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSBnZXREYWlseU5vdGUoZGF0ZSwgZGFpbHlOb3Rlcyk7XG4gICAgICAgICAgaWYgKCFleGlzdGluZ0ZpbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCBjcmVhdGVEYWlseU5vdGUoZGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5yZWFkKGZpbGUpO1xuICAgICAgICAgICAgY29uc3QgbmV3RmlsZUNvbnRlbnQgPSBhd2FpdCBpbnNlcnRBZnRlckhhbmRsZXIoSW5zZXJ0QWZ0ZXIsIG5ld0V2ZW50LCBmaWxlQ29udGVudHMpO1xuICAgICAgICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KGZpbGUsIG5ld0ZpbGVDb250ZW50LmNvbnRlbnQpO1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogJycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5yZWFkKGV4aXN0aW5nRmlsZSk7XG4gICAgICAgICAgICBjb25zdCBuZXdGaWxlQ29udGVudCA9IGF3YWl0IGluc2VydEFmdGVySGFuZGxlcihJbnNlcnRBZnRlciwgbmV3RXZlbnQsIGZpbGVDb250ZW50cyk7XG4gICAgICAgICAgICBhd2FpdCB2YXVsdC5tb2RpZnkoZXhpc3RpbmdGaWxlLCBuZXdGaWxlQ29udGVudC5jb250ZW50KTtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkZWxldGVkQXQ6ICcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmlsZUxpbmVzID0gbnVsbDtcbiAgICAgICAgZmlsZUNvbnRlbnRzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUZvcmV2ZXIoZGVsZXRlZE1lbW9pZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHt2YXVsdCwgbWV0YWRhdGFDYWNoZX0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGlmICgvXFxkezE0LH0vLnRlc3QoZGVsZXRlZE1lbW9pZCkpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArICcvZGVsZXRlLm1kJztcbiAgICBjb25zdCBkZWxldGVGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCgnJywgYWJzb2x1dGVQYXRoKTtcblxuICAgIGlmIChkZWxldGVGaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcbiAgICAgIGxldCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5yZWFkKGRlbGV0ZUZpbGUpO1xuICAgICAgbGV0IGZpbGVMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUoZmlsZUNvbnRlbnRzKTtcbiAgICAgIGlmIChmaWxlTGluZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxpbmVOdW0gPSBwYXJzZUludChkZWxldGVkTWVtb2lkLnNsaWNlKDE0KSk7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBmaWxlTGluZXNbbGluZU51bSAtIDFdO1xuICAgICAgICBpZiAoL14tICguKykkLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgICAgLy8gY29uc3QgaWQgPSBleHRyYWN0SURmcm9tVGV4dChmaWxlTGluZXNbaV0pO1xuICAgICAgICAgIGNvbnN0IG5ld0ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnRzLnJlcGxhY2UobGluZSwgJycpO1xuICAgICAgICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShkZWxldGVGaWxlLCBuZXdGaWxlQ29udGVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpbGVMaW5lcyA9IG51bGw7XG4gICAgICBmaWxlQ29udGVudHMgPSBudWxsO1xuICAgIH1cbiAgfVxuICAvLyByZXR1cm4gZGVsZXRlZE1lbW9zO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVsZXRlZE1lbW9zKCk6IFByb21pc2U8YW55W10+IHtcbiAgY29uc3Qge3ZhdWx0LCBtZXRhZGF0YUNhY2hlfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcblxuICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gZmlsZVBhdGggKyAnL2RlbGV0ZS5tZCc7XG4gIGNvbnN0IGRlbGV0ZWRNZW1vczogYW55W10gfCBQcm9taXNlTGlrZTxhbnlbXT4gPSBbXTtcbiAgY29uc3QgZGVsZXRlRmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoJycsIGFic29sdXRlUGF0aCk7XG4gIGlmIChkZWxldGVGaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcbiAgICBsZXQgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQucmVhZChkZWxldGVGaWxlKTtcbiAgICBsZXQgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xuICAgIGlmIChmaWxlTGluZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZGVsZXRlZE1lbW9zO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBsaW5lID0gZmlsZUxpbmVzW2ldO1xuICAgICAgICBpZiAoIS8tIC8udGVzdChsaW5lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGlkID0gZXh0cmFjdElEZnJvbVRleHQobGluZSk7XG4gICAgICAgICAgY29uc3QgdGltZVN0cmluZyA9IGlkLnNsaWNlKDAsIDEzKTtcbiAgICAgICAgICAvLyBjb25zdCBpZFN0cmluZyA9IHBhcnNlSW50KGlkLnNsaWNlKDE0KSk7XG4gICAgICAgICAgY29uc3QgY3JlYXRlZERhdGUgPSBtb21lbnQodGltZVN0cmluZywgJ1lZWVlNTURESEhtbXNzJyk7XG4gICAgICAgICAgY29uc3QgZGVsZXRlZERhdGVJRCA9IGV4dHJhY3REZWxldGVEYXRlZnJvbVRleHQoZmlsZUxpbmVzW2ldKTtcbiAgICAgICAgICBjb25zdCBkZWxldGVkRGF0ZSA9IG1vbWVudChkZWxldGVkRGF0ZUlELnNsaWNlKDAsIDEzKSwgJ1lZWVlNTURESEhtbXNzJyk7XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGV4dHJhY3RDb250ZW50ZnJvbVRleHQoZmlsZUxpbmVzW2ldKTtcbiAgICAgICAgICBkZWxldGVkTWVtb3MucHVzaCh7XG4gICAgICAgICAgICBpZDogZGVsZXRlZERhdGVJRCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXG4gICAgICAgICAgICB1c2VyX2lkOiAxLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkRGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06U1MnKSxcbiAgICAgICAgICAgIHVwZGF0ZWRBdDogY3JlYXRlZERhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOlNTJyksXG4gICAgICAgICAgICBkZWxldGVkQXQ6IGRlbGV0ZWREYXRlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmlsZUxpbmVzID0gbnVsbDtcbiAgICBmaWxlQ29udGVudHMgPSBudWxsO1xuICB9XG4gIHJldHVybiBkZWxldGVkTWVtb3M7XG59XG5cbmV4cG9ydCBjb25zdCBzZW5kTWVtb1RvRGVsZXRlID0gYXN5bmMgKG1lbW9Db250ZW50OiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCB7bWV0YWRhdGFDYWNoZSwgdmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuXG4gIGNvbnN0IGZpbGVQYXRoID0gZ2V0RGFpbHlOb3RlUGF0aCgpO1xuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArICcvZGVsZXRlLm1kJztcblxuICBjb25zdCBkZWxldGVGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCgnJywgYWJzb2x1dGVQYXRoKTtcblxuICBpZiAoZGVsZXRlRmlsZSBpbnN0YW5jZW9mIFRGaWxlKSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQucmVhZChkZWxldGVGaWxlKTtcbiAgICBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpO1xuICAgIGNvbnN0IGRlbGV0ZURhdGUgPSBkYXRlLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpO1xuICAgIGxldCBsaW5lTnVtO1xuICAgIGlmIChmaWxlTGluZXMubGVuZ3RoID09PSAxICYmIGZpbGVMaW5lc1swXSA9PT0gJycpIHtcbiAgICAgIGxpbmVOdW0gPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lTnVtID0gZmlsZUxpbmVzLmxlbmd0aCArIDE7XG4gICAgfVxuICAgIGNvbnN0IGRlbGV0ZURhdGVJRCA9IGRhdGUuZm9ybWF0KCdZWVlZTU1EREhIbW1zcycpICsgbGluZU51bTtcblxuICAgIGF3YWl0IGNyZWF0ZURlbGV0ZU1lbW9JbkZpbGUoZGVsZXRlRmlsZSwgZmlsZUNvbnRlbnRzLCBtZW1vQ29udGVudCwgZGVsZXRlRGF0ZUlEKTtcblxuICAgIHJldHVybiBkZWxldGVEYXRlO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGRlbGV0ZUZpbGVQYXRoID0gbm9ybWFsaXplUGF0aChhYnNvbHV0ZVBhdGgpO1xuICAgIGNvbnN0IGZpbGUgPSBhd2FpdCBjcmVhdGVkZWxldGVGaWxlKGRlbGV0ZUZpbGVQYXRoKTtcbiAgICAvLyBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5yZWFkKGRlbGV0ZUZpbGUpO1xuICAgIC8vIGNvbnN0IGZpbGVMaW5lcyA9IGdldEFsbExpbmVzRnJvbUZpbGUoZmlsZUNvbnRlbnRzKTtcbiAgICBjb25zdCBkYXRlID0gbW9tZW50KCk7XG4gICAgY29uc3QgZGVsZXRlRGF0ZSA9IGRhdGUuZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyk7XG4gICAgY29uc3QgbGluZU51bSA9IDE7XG4gICAgY29uc3QgZGVsZXRlRGF0ZUlEID0gZGF0ZS5mb3JtYXQoJ1lZWVlNTURESEhtbXNzJykgKyBsaW5lTnVtO1xuXG4gICAgYXdhaXQgY3JlYXRlRGVsZXRlTWVtb0luRmlsZShmaWxlLCAnJywgbWVtb0NvbnRlbnQsIGRlbGV0ZURhdGVJRCk7XG5cbiAgICByZXR1cm4gZGVsZXRlRGF0ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURlbGV0ZU1lbW9JbkZpbGUgPSBhc3luYyAoXG4gIGZpbGU6IFRGaWxlLFxuICBmaWxlQ29udGVudDogc3RyaW5nLFxuICBtZW1vQ29udGVudDogc3RyaW5nLFxuICBkZWxldGVEYXRlOiBzdHJpbmcsXG4pOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCB7dmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuICBsZXQgbmV3Q29udGVudDtcbiAgaWYgKGZpbGVDb250ZW50ID09PSAnJykge1xuICAgIG5ld0NvbnRlbnQgPSBtZW1vQ29udGVudCArICcgZGVsZXRlZEF0OiAnICsgZGVsZXRlRGF0ZTtcbiAgfSBlbHNlIHtcbiAgICBuZXdDb250ZW50ID0gZmlsZUNvbnRlbnQgKyAnXFxuJyArIG1lbW9Db250ZW50ICsgJyBkZWxldGVkQXQ6ICcgKyBkZWxldGVEYXRlO1xuICB9XG5cbiAgYXdhaXQgdmF1bHQubW9kaWZ5KGZpbGUsIG5ld0NvbnRlbnQpO1xuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZWRlbGV0ZUZpbGUgPSBhc3luYyAocGF0aDogc3RyaW5nKTogUHJvbWlzZTxURmlsZT4gPT4ge1xuICBjb25zdCB7dmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY3JlYXRlZEZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGUocGF0aCwgJycpO1xuICAgIHJldHVybiBjcmVhdGVkRmlsZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBmaWxlOiAnJHtwYXRofSdgLCBlcnIpO1xuICAgIG5ldyBOb3RpY2UoJ1VuYWJsZSB0byBjcmVhdGUgbmV3IGZpbGUuJyk7XG4gIH1cbn07XG5cbmNvbnN0IGdldEFsbExpbmVzRnJvbUZpbGUgPSAoY2FjaGU6IHN0cmluZykgPT4gY2FjaGUuc3BsaXQoL1xccj9cXG4vKTtcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBleHRyYWN0SURmcm9tVGV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eLSAoXFxkezE0fSkoXFxkKylcXHMoLispXFxzKGRlbGV0ZWRBdDogKSguKykkLy5leGVjKGxpbmUpPy5bMV07XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgZXh0cmFjdENvbnRlbnRmcm9tVGV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eLSAoXFxkKylcXHMoLispXFxzKGRlbGV0ZWRBdDogKSguKykkLy5leGVjKGxpbmUpPy5bMl07XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgZXh0cmFjdERlbGV0ZURhdGVmcm9tVGV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eLSAoXFxkKylcXHMoLispXFxzKGRlbGV0ZWRBdDogKSguKykkLy5leGVjKGxpbmUpPy5bNF07XG4vLyBjb25zdCBleHRyYWN0TWVtb1Rhc2tUeXBlRnJvbUxpbmUgPSAobGluZTogc3RyaW5nKSA9PlxuLy8gICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuLy8gICAvXlxccypbXFwtXFwqXVxccyhcXFsoLnsxfSlcXF0pXFxzKC4qKSQvLmV4ZWMobGluZSk/LlsyXTtcbiIsImltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge2dldERhaWx5Tm90ZX0gZnJvbSAnb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlJztcbi8vIGltcG9ydCBhcHBTdG9yZSBmcm9tIFwiLi4vc3RvcmVzL2FwcFN0b3JlXCI7XG5pbXBvcnQgZGFpbHlOb3Rlc1NlcnZpY2UgZnJvbSAnLi4vc2VydmljZXMvZGFpbHlOb3Rlc1NlcnZpY2UnO1xuLy8gaW1wb3J0IHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCBhcHBTdG9yZSBmcm9tICcuLi9zdG9yZXMvYXBwU3RvcmUnO1xuaW1wb3J0IHtzZW5kTWVtb1RvRGVsZXRlfSBmcm9tICcuL29iRGVsZXRlTWVtbyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvYkhpZGVNZW1vKG1lbW9pZDogc3RyaW5nKTogUHJvbWlzZTxNb2RlbC5NZW1vPiB7XG4gIGNvbnN0IHtkYWlseU5vdGVzfSA9IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCk7XG4gIGlmICgvXFxkezE0LH0vLnRlc3QobWVtb2lkKSkge1xuICAgIGNvbnN0IHt2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gICAgY29uc3QgdGltZVN0cmluZyA9IG1lbW9pZC5zbGljZSgwLCAxMyk7XG4gICAgY29uc3QgaWRTdHJpbmcgPSBwYXJzZUludChtZW1vaWQuc2xpY2UoMTQpKTtcbiAgICBjb25zdCBjaGFuZ2VEYXRlID0gbW9tZW50KHRpbWVTdHJpbmcsICdZWVlZTU1EREhIbW1TUycpO1xuICAgIGNvbnN0IGRhaWx5Tm90ZSA9IGdldERhaWx5Tm90ZShjaGFuZ2VEYXRlLCBkYWlseU5vdGVzKTtcbiAgICBjb25zdCBmaWxlQ29udGVudCA9IGF3YWl0IHZhdWx0LnJlYWQoZGFpbHlOb3RlKTtcbiAgICBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50KTtcbiAgICBjb25zdCBjb250ZW50ID0gZXh0cmFjdENvbnRlbnRmcm9tVGV4dChmaWxlTGluZXNbaWRTdHJpbmddKTtcbiAgICBjb25zdCBvcmlnaW5hbExpbmUgPSAnLSAnICsgbWVtb2lkICsgJyAnICsgY29udGVudDtcbiAgICBjb25zdCBuZXdMaW5lID0gZmlsZUxpbmVzW2lkU3RyaW5nXTtcbiAgICBjb25zdCBuZXdGaWxlQ29udGVudCA9IGZpbGVDb250ZW50LnJlcGxhY2UobmV3TGluZSwgJycpO1xuICAgIGF3YWl0IHZhdWx0Lm1vZGlmeShkYWlseU5vdGUsIG5ld0ZpbGVDb250ZW50KTtcbiAgICBjb25zdCBkZWxldGVEYXRlID0gYXdhaXQgc2VuZE1lbW9Ub0RlbGV0ZShvcmlnaW5hbExpbmUpO1xuICAgIHJldHVybiBkZWxldGVEYXRlO1xuICB9XG59XG5cbmNvbnN0IGdldEFsbExpbmVzRnJvbUZpbGUgPSAoY2FjaGU6IHN0cmluZykgPT4gY2FjaGUuc3BsaXQoL1xccj9cXG4vKTtcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBleHRyYWN0Q29udGVudGZyb21UZXh0ID0gKGxpbmU6IHN0cmluZykgPT4vXlxccypbXFwtXFwqXVxccyhcXFsoXFxzfHh8WHxcXFxcfFxcLXxcXD58RHxcXD98XFwvfFxcK3xSfFxcIXxpfEJ8UHxDKVxcXVxccz8pPyhcXDx0aW1lXFw+KT8oKFxcZHsxLDJ9KVxcOihcXGR7Mn0pKT8oXFw8XFwvdGltZVxcPik/XFxzPyguKikkLy5leGVjKFxuICAgIGxpbmUsXG4gICk/Lls4XTtcbiIsImltcG9ydCB7Z2V0RGFpbHlOb3RlUGF0aH0gZnJvbSAnLi9vYlVwZGF0ZU1lbW8nO1xuaW1wb3J0IHtURmlsZX0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVRdWVyeUZvcmV2ZXIocXVlcnlJRDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHt2YXVsdCwgbWV0YWRhdGFDYWNoZX0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGlmICgvXFxkezE0LH0vLnRlc3QocXVlcnlJRCkpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArICcvcXVlcnkubWQnO1xuICAgIGNvbnN0IHF1ZXJ5RmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoJycsIGFic29sdXRlUGF0aCk7XG5cbiAgICBpZiAocXVlcnlGaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcbiAgICAgIGxldCBmaWxlQ29udGVudHMgPSBhd2FpdCB2YXVsdC5yZWFkKHF1ZXJ5RmlsZSk7XG4gICAgICBsZXQgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xuICAgICAgaWYgKGZpbGVMaW5lcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGluZU51bSA9IHBhcnNlSW50KHF1ZXJ5SUQuc2xpY2UoMTQpKTtcbiAgICAgICAgY29uc3QgbGluZSA9IGZpbGVMaW5lc1tsaW5lTnVtIC0gMV07XG4gICAgICAgIGlmICgvXlxcZHsxNCx9KC4rKSQvLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAvLyBjb25zdCBpZCA9IGV4dHJhY3RJRGZyb21UZXh0KGZpbGVMaW5lc1tpXSk7XG4gICAgICAgICAgY29uc3QgbmV3RmlsZUNvbnRlbnQgPSBmaWxlQ29udGVudHMucmVwbGFjZShsaW5lLCAnJyk7XG4gICAgICAgICAgYXdhaXQgdmF1bHQubW9kaWZ5KHF1ZXJ5RmlsZSwgbmV3RmlsZUNvbnRlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmaWxlTGluZXMgPSBudWxsO1xuICAgICAgZmlsZUNvbnRlbnRzID0gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gcmV0dXJuIGRlbGV0ZWRNZW1vcztcbn1cblxuY29uc3QgZ2V0QWxsTGluZXNGcm9tRmlsZSA9IChjYWNoZTogc3RyaW5nKSA9PiBjYWNoZS5zcGxpdCgvXFxyP1xcbi8pO1xuIiwiaW1wb3J0IHtnZXREYWlseU5vdGVQYXRofSBmcm9tICcuL29iVXBkYXRlTWVtbyc7XG5pbXBvcnQge1RGaWxlLCBOb3RpY2V9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcblxuZXhwb3J0IGNvbnN0IHBpblF1ZXJ5SW5GaWxlID0gYXN5bmMgKHF1ZXJ5SUQ6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHttZXRhZGF0YUNhY2hlLCB2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGlmICgvXFxkezE0LH0vLnRlc3QocXVlcnlJRCkpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBmaWxlUGF0aCArICcvcXVlcnkubWQnO1xuXG4gICAgY29uc3QgcXVlcnlGaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCgnJywgYWJzb2x1dGVQYXRoKTtcblxuICAgIGlmIChxdWVyeUZpbGUgaW5zdGFuY2VvZiBURmlsZSkge1xuICAgICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgdmF1bHQucmVhZChxdWVyeUZpbGUpO1xuICAgICAgY29uc3QgZmlsZUxpbmVzID0gZ2V0QWxsTGluZXNGcm9tRmlsZShmaWxlQ29udGVudHMpO1xuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpO1xuICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lTnVtID0gcGFyc2VJbnQocXVlcnlJRC5zbGljZSgxNCkpO1xuICAgICAgY29uc3Qgb3JpZ2luYWxDb250ZW50ID0gZmlsZUxpbmVzW29yaWdpbmFsTGluZU51bSAtIDFdO1xuICAgICAgY29uc3QgcGlubmVkQXREYXRlID0gZGF0ZS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKTtcbiAgICAgIGxldCBsaW5lTnVtO1xuICAgICAgaWYgKGZpbGVMaW5lcy5sZW5ndGggPT09IDEgJiYgZmlsZUxpbmVzWzBdID09PSAnJykge1xuICAgICAgICBsaW5lTnVtID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpbmVOdW0gPSBmaWxlTGluZXMubGVuZ3RoICsgMTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBpbm5lZEF0RGF0ZUlEID0gZGF0ZS5mb3JtYXQoJ1lZWVlNTURESEhtbXNzJykgKyBsaW5lTnVtO1xuICAgICAgY29uc3QgbmV3UXVlcnkgPSBvcmlnaW5hbENvbnRlbnQgKyAnIHBpbm5lZEF0OiAnICsgcGlubmVkQXREYXRlSUQ7XG4gICAgICBjb25zdCBuZXdDb250ZW50ID0gZmlsZUNvbnRlbnRzLnJlcGxhY2Uob3JpZ2luYWxDb250ZW50LCBuZXdRdWVyeSk7XG4gICAgICBhd2FpdCB2YXVsdC5tb2RpZnkocXVlcnlGaWxlLCBuZXdDb250ZW50KTtcbiAgICAgIC8vIGF3YWl0IGNyZWF0ZURlbGV0ZU1lbW9JbkZpbGUocXVlcnlGaWxlLCBmaWxlQ29udGVudHMgLCBvcmlnaW5hbENvbnRlbnQgLCBwaW5uZWRBdERhdGVJRCk7XG4gICAgICByZXR1cm4gcGlubmVkQXREYXRlO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVucGluUXVlcnlJbkZpbGUgPSBhc3luYyAocXVlcnlJRDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3Qge21ldGFkYXRhQ2FjaGUsIHZhdWx0fSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcblxuICBjb25zdCBmaWxlUGF0aCA9IGdldERhaWx5Tm90ZVBhdGgoKTtcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gZmlsZVBhdGggKyAnL3F1ZXJ5Lm1kJztcblxuICBjb25zdCBxdWVyeUZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KCcnLCBhYnNvbHV0ZVBhdGgpO1xuXG4gIGlmIChxdWVyeUZpbGUgaW5zdGFuY2VvZiBURmlsZSkge1xuICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IGF3YWl0IHZhdWx0LnJlYWQocXVlcnlGaWxlKTtcbiAgICBjb25zdCBmaWxlTGluZXMgPSBnZXRBbGxMaW5lc0Zyb21GaWxlKGZpbGVDb250ZW50cyk7XG4gICAgY29uc3Qgb3JpZ2luYWxMaW5lTnVtID0gcGFyc2VJbnQocXVlcnlJRC5zbGljZSgxNCkpO1xuICAgIGNvbnN0IG9yaWdpbmFsQ29udGVudCA9IGZpbGVMaW5lc1tvcmlnaW5hbExpbmVOdW0gLSAxXTtcbiAgICBjb25zdCBwaW5uZWRBdFN0cmluZyA9IGV4dHJhY3RQaW5uZWRBdGZyb21UZXh0KG9yaWdpbmFsQ29udGVudCk7XG4gICAgY29uc3QgbmV3RmlsZUNvbnRlbnRzID0gZmlsZUNvbnRlbnRzLnJlcGxhY2UocGlubmVkQXRTdHJpbmcsICcnKTtcbiAgICBhd2FpdCB2YXVsdC5tb2RpZnkocXVlcnlGaWxlLCBuZXdGaWxlQ29udGVudHMpO1xuICB9XG4gIHJldHVybjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWxldGVNZW1vSW5GaWxlID0gYXN5bmMgKFxuICBmaWxlOiBURmlsZSxcbiAgZmlsZUNvbnRlbnQ6IHN0cmluZyxcbiAgbWVtb0NvbnRlbnQ6IHN0cmluZyxcbiAgcGlubmVkQXREYXRlSUQ6IHN0cmluZyxcbik6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHt2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGxldCBuZXdDb250ZW50O1xuICBpZiAoZmlsZUNvbnRlbnQgPT09ICcnKSB7XG4gICAgbmV3Q29udGVudCA9IG1lbW9Db250ZW50ICsgJyBwaW5uZWRBdDogJyArIHBpbm5lZEF0RGF0ZUlEO1xuICB9IGVsc2Uge1xuICAgIG5ld0NvbnRlbnQgPSBmaWxlQ29udGVudCArICdcXG4nICsgbWVtb0NvbnRlbnQgKyAnIHBpbm5lZEF0OiAnICsgcGlubmVkQXREYXRlSUQ7XG4gIH1cblxuICBhd2FpdCB2YXVsdC5tb2RpZnkoZmlsZSwgbmV3Q29udGVudCk7XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlcXVlcnlGaWxlID0gYXN5bmMgKHBhdGg6IHN0cmluZyk6IFByb21pc2U8VEZpbGU+ID0+IHtcbiAgY29uc3Qge3ZhdWx0fSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcblxuICB0cnkge1xuICAgIGNvbnN0IGNyZWF0ZWRGaWxlID0gYXdhaXQgdmF1bHQuY3JlYXRlKHBhdGgsICcnKTtcbiAgICByZXR1cm4gY3JlYXRlZEZpbGU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZmlsZTogJyR7cGF0aH0nYCwgZXJyKTtcbiAgICBuZXcgTm90aWNlKCdVbmFibGUgdG8gY3JlYXRlIG5ldyBmaWxlLicpO1xuICB9XG59O1xuXG5jb25zdCBnZXRBbGxMaW5lc0Zyb21GaWxlID0gKGNhY2hlOiBzdHJpbmcpID0+IGNhY2hlLnNwbGl0KC9cXHI/XFxuLyk7XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgZXh0cmFjdFBpbm5lZEF0ZnJvbVRleHQgPSAobGluZTogc3RyaW5nKSA9Pi9eKFxcZHsxNH0pKFxcZHsxLH0pXFxzKC4rKVxccyhcXFsoLispXFxdKShcXHNwaW5uZWRBdFxcOiAoXFxkezE0LH0pKSQvLmV4ZWMobGluZSk/Lls2XTtcbiIsIi8vIGltcG9ydCB1dGlscyBmcm9tIFwiLi91dGlsc1wiO1xuXG5pbXBvcnQge2ZpbmRRdWVyeX0gZnJvbSAnLi4vb2JDb21wb25lbnRzL29iR2V0UXVlcmllcyc7XG5pbXBvcnQge2NyZWF0ZU9ic2lkaWFuUXVlcnl9IGZyb20gJy4uL29iQ29tcG9uZW50cy9vYkNyZWF0ZVF1ZXJ5JztcbmltcG9ydCB7Z2V0TWVtb3N9IGZyb20gJy4uL29iQ29tcG9uZW50cy9vYkdldE1lbW9zJztcbmltcG9ydCB7dXBkYXRlT2JzaWRpYW5RdWVyeX0gZnJvbSAnLi4vb2JDb21wb25lbnRzL29iVXBkYXRlUXVlcnknO1xuaW1wb3J0IHtvYkhpZGVNZW1vfSBmcm9tICcuLi9vYkNvbXBvbmVudHMvb2JIaWRlTWVtbyc7XG5pbXBvcnQge2RlbGV0ZUZvcmV2ZXIsIGdldERlbGV0ZWRNZW1vcywgcmVzdG9yZURlbGV0ZWRNZW1vfSBmcm9tICcuLi9vYkNvbXBvbmVudHMvb2JEZWxldGVNZW1vJztcbmltcG9ydCB7ZGVsZXRlUXVlcnlGb3JldmVyfSBmcm9tICcuLi9vYkNvbXBvbmVudHMvb2JEZWxldGVRdWVyeSc7XG5pbXBvcnQge3BpblF1ZXJ5SW5GaWxlLCB1bnBpblF1ZXJ5SW5GaWxlfSBmcm9tICcuLi9vYkNvbXBvbmVudHMvb2JQaW5RdWVyeSc7XG5cbi8vIHR5cGUgUmVzcG9uc2VUeXBlPFQgPSB1bmtub3duPiA9IHtcbi8vICAgc3VjY2VlZDogYm9vbGVhbjtcbi8vICAgbWVzc2FnZTogc3RyaW5nO1xuLy8gICBkYXRhOiBUO1xuLy8gfTtcblxuLy8gdHlwZSBSZXF1ZXN0Q29uZmlnID0ge1xuLy8gICBtZXRob2Q6IHN0cmluZztcbi8vICAgdXJsOiBzdHJpbmc7XG4vLyAgIGRhdGE/OiBhbnk7XG4vLyAgIGRhdGFUeXBlPzogXCJqc29uXCIgfCBcImZpbGVcIjtcbi8vIH07XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIHJlcXVlc3Q8VD4oY29uZmlnOiBSZXF1ZXN0Q29uZmlnKTogUHJvbWlzZTxSZXNwb25zZVR5cGU8VD4+IHtcbi8vICAgY29uc3QgeyBtZXRob2QsIHVybCwgZGF0YSwgZGF0YVR5cGUgfSA9IGNvbmZpZztcbi8vICAgY29uc3QgcmVxdWVzdENvbmZpZzogUmVxdWVzdEluaXQgPSB7XG4vLyAgICAgbWV0aG9kLFxuLy8gICB9O1xuXG4vLyAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbi8vICAgICBpZiAoZGF0YVR5cGUgPT09IFwiZmlsZVwiKSB7XG4vLyAgICAgICByZXF1ZXN0Q29uZmlnLmJvZHkgPSBkYXRhO1xuLy8gICAgIH0gZWxzZSB7XG4vLyAgICAgICByZXF1ZXN0Q29uZmlnLmhlYWRlcnMgPSB7XG4vLyAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuLy8gICAgICAgfTtcbi8vICAgICAgIHJlcXVlc3RDb25maWcuYm9keSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuLy8gICAgIH1cbi8vICAgfVxuXG4vLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCByZXF1ZXN0Q29uZmlnKTtcbi8vICAgY29uc3QgcmVzcG9uc2VEYXRhID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgUmVzcG9uc2VUeXBlPFQ+O1xuXG4vLyAgIGlmICghcmVzcG9uc2VEYXRhLnN1Y2NlZWQpIHtcbi8vICAgICB0aHJvdyByZXNwb25zZURhdGE7XG4vLyAgIH1cblxuLy8gICByZXR1cm4gcmVzcG9uc2VEYXRhO1xuLy8gfVxuXG5uYW1lc3BhY2UgYXBpIHtcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFVzZXJJbmZvKCkge1xuICAgIC8vIHJldHVybiByZXF1ZXN0PE1vZGVsLlVzZXI+KHtcbiAgICAvLyAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAvLyAgIHVybDogXCIvYXBpL3VzZXIvbWVcIixcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBzaWduaW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAvLyAgIHJldHVybiByZXF1ZXN0KHtcbiAgLy8gICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gIC8vICAgICB1cmw6IFwiL2FwaS9hdXRoL3NpZ25pblwiLFxuICAvLyAgICAgZGF0YTogeyB1c2VybmFtZSwgcGFzc3dvcmQgfSxcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBzaWdudXAodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAvLyAgIHJldHVybiByZXF1ZXN0KHtcbiAgLy8gICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gIC8vICAgICB1cmw6IFwiL2FwaS9hdXRoL3NpZ251cFwiLFxuICAvLyAgICAgZGF0YTogeyB1c2VybmFtZSwgcGFzc3dvcmQgfSxcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBzaWdub3V0KCkge1xuICAvLyAgIHJldHVybiByZXF1ZXN0KHtcbiAgLy8gICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gIC8vICAgICB1cmw6IFwiL2FwaS9hdXRoL3NpZ25vdXRcIixcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGV4cG9ydCBmdW5jdGlvbiBjaGVja1VzZXJuYW1lVXNhYmxlKHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgICAvLyByZXR1cm4gcmVxdWVzdDxib29sZWFuPih7XG4gICAgLy8gICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIC8vICAgdXJsOiBcIi9hcGkvdXNlci9jaGVja3VzZXJuYW1lXCIsXG4gICAgLy8gICBkYXRhOiB7IHVzZXJuYW1lIH0sXG4gICAgLy8gfSk7XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBleHBvcnQgZnVuY3Rpb24gY2hlY2tQYXNzd29yZFZhbGlkKHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICAvLyByZXR1cm4gcmVxdWVzdDxib29sZWFuPih7XG4gICAgLy8gICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIC8vICAgdXJsOiBcIi9hcGkvdXNlci92YWxpZHBhc3N3b3JkXCIsXG4gICAgLy8gICBkYXRhOiB7IHBhc3N3b3JkIH0sXG4gICAgLy8gfSk7XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBleHBvcnQgZnVuY3Rpb24gdXBkYXRlVXNlcmluZm8odXNlcmluZm86IFBhcnRpYWw8e3VzZXJuYW1lOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmc7IGdpdGh1Yk5hbWU6IHN0cmluZ30+KSB7XG4gICAgLy8gcmV0dXJuIHJlcXVlc3Qoe1xuICAgIC8vICAgbWV0aG9kOiBcIlBBVENIXCIsXG4gICAgLy8gICB1cmw6IFwiL2FwaS91c2VyL21lXCIsXG4gICAgLy8gICBkYXRhOiB1c2VyaW5mbyxcbiAgICAvLyB9KTtcbiAgfVxuXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRNeU1lbW9zKCkge1xuICAgIHJldHVybiBhd2FpdCBnZXRNZW1vcygpO1xuXG4gICAgLy8gcmV0dXJuIHJlcXVlc3Q8TW9kZWwuTWVtb1tdPih7XG4gICAgLy8gICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgLy8gICB1cmw6IFwiL2FwaS9tZW1vL2FsbFwiLFxuICAgIC8vIH0pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE15RGVsZXRlZE1lbW9zKCkge1xuICAgIHJldHVybiBnZXREZWxldGVkTWVtb3MoKTtcbiAgICAvLyByZXR1cm4gcmVxdWVzdDxNb2RlbC5NZW1vW10+KHtcbiAgICAvLyAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAvLyAgIHVybDogXCIvYXBpL21lbW8vYWxsP2RlbGV0ZWQ9dHJ1ZVwiLFxuICAgIC8vIH0pO1xuICB9XG5cbiAgLy8gZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1lbW8oY29udGVudDogc3RyaW5nKSB7XG4gIC8vICAgcmV0dXJuIGNyZWF0ZU1lbW9zKGNvbnRlbnQpO1xuICAvLyAgIC8vIHJldHVybiByZXF1ZXN0PE1vZGVsLk1lbW8+KHtcbiAgLy8gICAvLyAgIG1ldGhvZDogXCJQVVRcIixcbiAgLy8gICAvLyAgIHVybDogXCIvYXBpL21lbW8vXCIsXG4gIC8vICAgLy8gICBkYXRhOiB7IGNvbnRlbnQgfSxcbiAgLy8gICAvLyB9KTtcbiAgLy8gfVxuXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIC8vIGV4cG9ydCBmdW5jdGlvbiB1cGRhdGVNZW1vKG1lbW9JZDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpIHtcbiAgLy8gICAvLyByZXR1cm4gcmVxdWVzdDxNb2RlbC5NZW1vPih7XG4gIC8vICAgLy8gICBtZXRob2Q6IFwiUEFUQ0hcIixcbiAgLy8gICAvLyAgIHVybDogYC9hcGkvbWVtby8ke21lbW9JZH1gLFxuICAvLyAgIC8vICAgZGF0YTogeyBjb250ZW50IH0sXG4gIC8vICAgLy8gfSk7XG4gIC8vIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBleHBvcnQgZnVuY3Rpb24gaGlkZU1lbW8obWVtb0lkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gb2JIaWRlTWVtbyhtZW1vSWQpO1xuICAgIC8vIHJldHVybiByZXF1ZXN0KHtcbiAgICAvLyAgIG1ldGhvZDogXCJQQVRDSFwiLFxuICAgIC8vICAgdXJsOiBgL2FwaS9tZW1vLyR7bWVtb0lkfWAsXG4gICAgLy8gICBkYXRhOiB7XG4gICAgLy8gICAgIGRlbGV0ZWRBdDogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcoRGF0ZS5ub3coKSksXG4gICAgLy8gICB9LFxuICAgIC8vIH0pO1xuICB9XG5cbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlc3RvcmVNZW1vKG1lbW9JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlc3RvcmVEZWxldGVkTWVtbyhtZW1vSWQpO1xuICAgIC8vIHJldHVybiByZXF1ZXN0KHtcbiAgICAvLyAgIG1ldGhvZDogXCJQQVRDSFwiLFxuICAgIC8vICAgdXJsOiBgL2FwaS9tZW1vLyR7bWVtb0lkfWAsXG4gICAgLy8gICBkYXRhOiB7XG4gICAgLy8gICAgIGRlbGV0ZWRBdDogXCJcIixcbiAgICAvLyAgIH0sXG4gICAgLy8gfSk7XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBleHBvcnQgZnVuY3Rpb24gZGVsZXRlTWVtbyhtZW1vSWQ6IHN0cmluZykge1xuICAgIHJldHVybiBkZWxldGVGb3JldmVyKG1lbW9JZCk7XG4gICAgLy8gcmV0dXJuIHJlcXVlc3Qoe1xuICAgIC8vICAgbWV0aG9kOiBcIkRFTEVURVwiLFxuICAgIC8vICAgdXJsOiBgL2FwaS9tZW1vLyR7bWVtb0lkfWAsXG4gICAgLy8gfSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0TXlRdWVyaWVzKCkge1xuICAgIHJldHVybiBmaW5kUXVlcnkoKTtcbiAgICAvLyByZXR1cm4gcmVxdWVzdDxNb2RlbC5RdWVyeVtdPih7XG4gICAgLy8gICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgLy8gICB1cmw6IFwiL2FwaS9xdWVyeS9hbGxcIixcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVRdWVyeSh0aXRsZTogc3RyaW5nLCBxdWVyeXN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNyZWF0ZU9ic2lkaWFuUXVlcnkodGl0bGUsIHF1ZXJ5c3RyaW5nKTtcbiAgICAvLyByZXR1cm4gcmVxdWVzdDxNb2RlbC5RdWVyeT4oe1xuICAgIC8vICAgbWV0aG9kOiBcIlBVVFwiLFxuICAgIC8vICAgdXJsOiBcIi9hcGkvcXVlcnkvXCIsXG4gICAgLy8gICBkYXRhOiB7IHRpdGxlLCBxdWVyeXN0cmluZyB9LFxuICAgIC8vIH0pO1xuICB9XG5cbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVF1ZXJ5KHF1ZXJ5SWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgcXVlcnlzdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiB1cGRhdGVPYnNpZGlhblF1ZXJ5KHF1ZXJ5SWQsIHRpdGxlLCBxdWVyeXN0cmluZyk7XG4gICAgLy8gcmV0dXJuIHJlcXVlc3Q8TW9kZWwuUXVlcnk+KHtcbiAgICAvLyAgIG1ldGhvZDogXCJQQVRDSFwiLFxuICAgIC8vICAgdXJsOiBgL2FwaS9xdWVyeS8ke3F1ZXJ5SWR9YCxcbiAgICAvLyAgIGRhdGE6IHsgdGl0bGUsIHF1ZXJ5c3RyaW5nIH0sXG4gICAgLy8gfSk7XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBleHBvcnQgZnVuY3Rpb24gZGVsZXRlUXVlcnlCeUlkKHF1ZXJ5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiBkZWxldGVRdWVyeUZvcmV2ZXIocXVlcnlJZCk7XG4gICAgLy8gcmV0dXJuIHJlcXVlc3Qoe1xuICAgIC8vICAgbWV0aG9kOiBcIkRFTEVURVwiLFxuICAgIC8vICAgdXJsOiBgL2FwaS9xdWVyeS8ke3F1ZXJ5SWR9YCxcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGV4cG9ydCBmdW5jdGlvbiBwaW5RdWVyeShxdWVyeUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGluUXVlcnlJbkZpbGUocXVlcnlJZCk7XG4gICAgLy8gcmV0dXJuIHJlcXVlc3Qoe1xuICAgIC8vICAgbWV0aG9kOiBcIlBBVENIXCIsXG4gICAgLy8gICB1cmw6IGAvYXBpL3F1ZXJ5LyR7cXVlcnlJZH1gLFxuICAgIC8vICAgZGF0YTogeyBwaW5uZWRBdDogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcoRGF0ZS5ub3coKSkgfSxcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIGV4cG9ydCBmdW5jdGlvbiB1bnBpblF1ZXJ5KHF1ZXJ5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB1bnBpblF1ZXJ5SW5GaWxlKHF1ZXJ5SWQpO1xuICAgIC8vIHJldHVybiByZXF1ZXN0KHtcbiAgICAvLyAgIG1ldGhvZDogXCJQQVRDSFwiLFxuICAgIC8vICAgdXJsOiBgL2FwaS9xdWVyeS8ke3F1ZXJ5SWR9YCxcbiAgICAvLyAgIGRhdGE6IHsgcGlubmVkQXQ6IFwiXCIgfSxcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIC8vIGV4cG9ydCBmdW5jdGlvbiB1cGxvYWRGaWxlKGZvcm1EYXRhOiBGb3JtRGF0YSkge1xuICAvLyAgIC8vIHJldHVybiByZXF1ZXN0PE1vZGVsLlJlc291cmNlPih7XG4gIC8vICAgLy8gICBtZXRob2Q6IFwiUFVUXCIsXG4gIC8vICAgLy8gICB1cmw6IFwiL2FwaS9yZXNvdXJjZS9cIixcbiAgLy8gICAvLyAgIGRhdGE6IGZvcm1EYXRhLFxuICAvLyAgIC8vICAgZGF0YVR5cGU6IFwiZmlsZVwiLFxuICAvLyAgIC8vIH0pO1xuICAvLyB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFwaTtcbiIsIi8vIOenu+WKqOerr+agt+W8j+mAgumFjemineWkluexu+WQjVxuZXhwb3J0IGNvbnN0IFNIT1dfU0lERVJCQVJfTU9CSUxFX0NMQVNTTkFNRSA9ICdtb2JpbGUtc2hvdy1zaWRlYmFyJztcblxuLy8g6buY6K6k5Yqo55S75oyB57ut5pe26ZW/XG5leHBvcnQgY29uc3QgQU5JTUFUSU9OX0RVUkFUSU9OID0gMjAwO1xuXG4vLyB0b2FzdCDliqjnlLvmjIHnu63ml7bplb9cbmV4cG9ydCBjb25zdCBUT0FTVF9BTklNQVRJT05fRFVSQVRJT04gPSA0MDA7XG5cbi8vIOS4gOWkqeeahOavq+enkuaVsFxuZXhwb3J0IGNvbnN0IERBSUxZX1RJTUVTVEFNUCA9IDM2MDAgKiAyNCAqIDEwMDA7XG5cbi8vIOagh+etviDmraPliJlcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5leHBvcnQgY29uc3QgVEFHX1JFRyA9IC9cXHMjKFtcXHB7TGV0dGVyfVxccHtFbW9qaV9QcmVzZW50YXRpb259XFxwe051bWJlcn1cXC9fLV0rKS9ndTtcbi8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5leHBvcnQgY29uc3QgRklSU1RfVEFHX1JFRyA9IC8oPHA+KSMoW1xccHtMZXR0ZXJ9XFxwe0Vtb2ppX1ByZXNlbnRhdGlvbn1cXHB7TnVtYmVyfVxcL18tXSspL2d1O1xuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmV4cG9ydCBjb25zdCBOT1BfRklSU1RfVEFHX1JFRyA9IC9eIyhbXFxwe0xldHRlcn1cXHB7RW1vamlfUHJlc2VudGF0aW9ufVxccHtOdW1iZXJ9XFwvXy1dKykvZ3U7XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuZXhwb3J0IGNvbnN0IEFMTF9UQUdfUkVHID0gLyhbXFxwe0xldHRlcn1cXHB7RW1vamlfUHJlc2VudGF0aW9ufVxccHtOdW1iZXJ9XFwvXy1dKykvdTtcblxuLy8gVVJMIOato+WImVxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmV4cG9ydCBjb25zdCBMSU5LX1JFRyA9IC8oXFxzfO+8mnw+KSgoaHR0cHxmdHB8aHR0cHMpOlxcL1xcLyhbXFx3Xy1dKyg/Oig/OlxcLltcXHdfLV0rKSspKShbXFx3LixAP149JSY6XFwvfisjLV0qW1xcd0A/Xj0lJlxcL34rIy1dKSkvZztcblxuLy8gZXhwb3J0IGNvbnN0IENIRUNLX0xJTktfUkVHID0gLyhcXCgoXFxzKikpKGh0dHB8ZnRwfGh0dHBzKTpcXC9cXC8oW1xcd18tXSsoPzooPzpcXC5bXFx3Xy1dKykrKSkoW1xcdy4sQD9ePSUmOlxcL34rIy1dKltcXHdAP149JSZcXC9+KyMtXSkvZztcbi8vIGV4cG9ydCBjb25zdCBMSU5LX1JFRyA9IC8oaHR0cHM/OlxcL1xcL1teXFxzPFxcXFwqPiddKykvZztcblxuLy8gTUFSS0RPV04gVVJMIOato+WImVxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmV4cG9ydCBjb25zdCBNRF9MSU5LX1JFRyA9IC9cXFsoW1xcc1xcU10qPylcXF1cXCgoW1xcc1xcU10qPylcXCkvZ3U7XG5cbi8vIOWbvueJhyDmraPliJlcbmV4cG9ydCBjb25zdCBJTUFHRV9VUkxfUkVHID0gLyhbXlxcczxcXFxcKj4nXStcXC4oanBlZ3xqcGd8Z2lmfHBuZ3xzdmcpKShcXF1cXF0pPyhcXCkpPy9nO1xuXG4vLyBNYXJrZG93biDlhoXpg6jlm77niYfmraPliJlcbi8vIEdyb3VwIDEg5Li65Zu+54mHXG4vLyBHcm91cCAyIOS4uue8qeaUvuavlOS+i1xuZXhwb3J0IGNvbnN0IE1BUktET1dOX1VSTF9SRUcgPSAvKCFcXFsoW15cXF1dKikoXFx8KT8oLio/KVxcXVxcKCguKj8pKFwiKD86LipbXlwiXSlcIik/XFxzKlxcKSkvZztcblxuLy8g5qOA5rWL5piv5ZCm5Li65aSW6YOo5Zu+54mHXG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuZXhwb3J0IGNvbnN0IE1BUktET1dOX1dFQl9VUkxfUkVHID0gLyhcXHN877yafF4pKGh0dHBbc10/OlxcL1xcLykoW15cXC9cXHNdK1xcLykoLio/KShqcGVnfGpwZ3xnaWZ8cG5nfHN2Z3xibXB8d2VwZykoPyFcXCkpL2c7XG5cbi8vIFdpa2kg5Zu+54mH5q2j5YiZXG4vLyBHcm91cCAxIOS4uuWbvueJh1xuLy8gR3JvdXAgNSDkuLrnvKnmlL7mr5TkvotcbmV4cG9ydCBjb25zdCBXSUtJX0lNQUdFX1VSTF9SRUcgPSAvIVxcW1xcWygoLio/KVxcLihqcGVnfGpwZ3xnaWZ8cG5nfHN2Z3xibXB8d2VwZykpPyhcXHwpPyguKj8pXFxdXFxdL2c7XG5cbi8vIG1lbW8g5YWz6IGU5q2j5YiZXG5leHBvcnQgY29uc3QgTUVNT19MSU5LX1JFRyA9IC9cXFtAKC4rPylcXF1cXCgoLis/KVxcKS9nO1xuXG4vLyBJbnRlcm5hbFxuIiwiaW1wb3J0IGFwaSBmcm9tICcuLi9oZWxwZXJzL2FwaSc7XG5pbXBvcnQge05PUF9GSVJTVF9UQUdfUkVHLCBUQUdfUkVHfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0cyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcbmltcG9ydCB7d2FpdEZvckluc2VydH0gZnJvbSAnLi4vb2JDb21wb25lbnRzL29iQ3JlYXRlTWVtbyc7XG5pbXBvcnQge2NoYW5nZU1lbW99IGZyb20gJy4uL29iQ29tcG9uZW50cy9vYlVwZGF0ZU1lbW8nO1xuLy8gaW1wb3J0IHVzZXJTZXJ2aWNlIGZyb20gXCIuL3VzZXJTZXJ2aWNlXCI7XG5cbmNsYXNzIE1lbW9TZXJ2aWNlIHtcbiAgcHVibGljIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcHVibGljIGdldFN0YXRlKCkge1xuICAgIHJldHVybiBhcHBTdG9yZS5nZXRTdGF0ZSgpLm1lbW9TdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmZXRjaEFsbE1lbW9zKCkge1xuICAgIC8vIGlmICghdXNlclNlcnZpY2UuZ2V0U3RhdGUoKS51c2VyKSB7XG4gICAgLy8gICByZXR1cm4gZmFsc2U7XG4gICAgLy8gfVxuXG4gICAgLy8gY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBhcGkuZ2V0TXlNZW1vcygpO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0TXlNZW1vcygpO1xuICAgIGNvbnN0IG1lbW9zID0gW10gYXMgYW55W107XG4gICAgZm9yIChjb25zdCBtIG9mIGRhdGEpIHtcbiAgICAgIG1lbW9zLnB1c2gobSk7XG4gICAgfVxuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfTUVNT1MnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBtZW1vcyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBtZW1vcztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmZXRjaERlbGV0ZWRNZW1vcygpIHtcbiAgICAvLyBpZiAoIXVzZXJTZXJ2aWNlLmdldFN0YXRlKCkudXNlcikge1xuICAgIC8vICAgcmV0dXJuIGZhbHNlO1xuICAgIC8vIH1cblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkuZ2V0TXlEZWxldGVkTWVtb3MoKTtcbiAgICBkYXRhLnNvcnQoXG4gICAgICAoYToge2RlbGV0ZWRBdDogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZX0sIGI6IHtkZWxldGVkQXQ6IHN0cmluZyB8IG51bWJlciB8IERhdGV9KSA9PlxuICAgICAgICB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYi5kZWxldGVkQXQpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuZGVsZXRlZEF0KSxcbiAgICApO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHVibGljIHB1c2hNZW1vKG1lbW86IE1vZGVsLk1lbW8pIHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnSU5TRVJUX01FTU8nLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBtZW1vOiB7XG4gICAgICAgICAgLi4ubWVtbyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWVtb0J5SWQoaWQ6IHN0cmluZykge1xuICAgIGZvciAoY29uc3QgbSBvZiB0aGlzLmdldFN0YXRlKCkubWVtb3MpIHtcbiAgICAgIGlmIChtLmlkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoaWRlTWVtb0J5SWQoaWQ6IHN0cmluZykge1xuICAgIGF3YWl0IGFwaS5oaWRlTWVtbyhpZCk7XG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ0RFTEVURV9NRU1PX0JZX0lEJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXN0b3JlTWVtb0J5SWQoaWQ6IHN0cmluZykge1xuICAgIGF3YWl0IGFwaS5yZXN0b3JlTWVtbyhpZCk7XG4gICAgLy8gbWVtb1NlcnZpY2UuY2xlYXJNZW1vcygpO1xuICAgIC8vIG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVNZW1vQnlJZChpZDogc3RyaW5nKSB7XG4gICAgYXdhaXQgYXBpLmRlbGV0ZU1lbW8oaWQpO1xuICB9XG5cbiAgcHVibGljIGVkaXRNZW1vKG1lbW86IE1vZGVsLk1lbW8pIHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnRURJVF9NRU1PJyxcbiAgICAgIHBheWxvYWQ6IG1lbW8sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFnc1N0YXRlKCkge1xuICAgIGNvbnN0IHttZW1vc30gPSB0aGlzLmdldFN0YXRlKCk7XG4gICAgY29uc3QgdGFnc1NldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGZvciAoY29uc3QgbSBvZiBtZW1vcykge1xuICAgICAgZm9yIChjb25zdCB0IG9mIEFycmF5LmZyb20obS5jb250ZW50Lm1hdGNoKFRBR19SRUcpID8/IFtdKSkge1xuICAgICAgICB0YWdzU2V0LmFkZCh0LnJlcGxhY2UoVEFHX1JFRywgJyQxJykudHJpbSgpKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgdCBvZiBBcnJheS5mcm9tKG0uY29udGVudC5tYXRjaChOT1BfRklSU1RfVEFHX1JFRykgPz8gW10pKSB7XG4gICAgICAgIHRhZ3NTZXQuYWRkKHQucmVwbGFjZShOT1BfRklSU1RfVEFHX1JFRywgJyQxJykudHJpbSgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1RBR1MnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICB0YWdzOiBBcnJheS5mcm9tKHRhZ3NTZXQpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhck1lbW9zKCkge1xuICAgIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfTUVNT1MnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBtZW1vczogW10sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExpbmtlZE1lbW9zKG1lbW9JZDogc3RyaW5nKTogUHJvbWlzZTxNb2RlbC5NZW1vW10+IHtcbiAgICBjb25zdCB7bWVtb3N9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuICAgIHJldHVybiBtZW1vcy5maWx0ZXIoKG0pID0+IG0uY29udGVudC5pbmNsdWRlcyhtZW1vSWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVNZW1vKHRleHQ6IHN0cmluZywgaXNMaXN0OiBib29sZWFuKTogUHJvbWlzZTxNb2RlbC5NZW1vPiB7XG4gICAgY29uc3QgbWVtbyA9IGF3YWl0IHdhaXRGb3JJbnNlcnQodGV4dCwgaXNMaXN0KTtcbiAgICByZXR1cm4gbWVtbztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVNZW1vKG1lbW9JZDogc3RyaW5nLCBvcmlnaW5hbFRleHQ6IHN0cmluZywgdGV4dDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPE1vZGVsLk1lbW8+IHtcbiAgICBjb25zdCBtZW1vID0gYXdhaXQgY2hhbmdlTWVtbyhtZW1vSWQsIG9yaWdpbmFsVGV4dCwgdGV4dCwgdHlwZSk7XG4gICAgcmV0dXJuIG1lbW87XG4gIH1cbn1cblxuY29uc3QgbWVtb1NlcnZpY2UgPSBuZXcgTWVtb1NlcnZpY2UoKTtcblxuZXhwb3J0IGRlZmF1bHQgbWVtb1NlcnZpY2U7XG4iLCIvLyBpbXBvcnQgdXNlclNlcnZpY2UgZnJvbSBcIi4vdXNlclNlcnZpY2VcIjtcbmltcG9ydCBhcGkgZnJvbSAnLi4vaGVscGVycy9hcGknO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5cbmNsYXNzIFF1ZXJ5U2VydmljZSB7XG4gIHB1YmxpYyBnZXRTdGF0ZSgpIHtcbiAgICByZXR1cm4gYXBwU3RvcmUuZ2V0U3RhdGUoKS5xdWVyeVN0YXRlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE15QWxsUXVlcmllcygpIHtcbiAgICAvLyBpZiAoIXVzZXJTZXJ2aWNlLmdldFN0YXRlKCkudXNlcikge1xuICAgIC8vICAgcmV0dXJuIGZhbHNlO1xuICAgIC8vIH1cblxuICAgIC8vIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgYXBpLmdldE15UXVlcmllcygpO1xuICAgIC8vIGFwcFN0b3JlLmRpc3BhdGNoKHtcbiAgICAvLyAgIHR5cGU6IFwiU0VUX1FVRVJJRVNcIixcbiAgICAvLyAgIHBheWxvYWQ6IHtcbiAgICAvLyAgICAgcXVlcmllczogZGF0YSxcbiAgICAvLyAgIH0sXG4gICAgLy8gfSk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaS5nZXRNeVF1ZXJpZXMoKTtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1FVRVJJRVMnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICBxdWVyaWVzOiBkYXRhLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRdWVyeUJ5SWQoaWQ6IHN0cmluZykge1xuICAgIGZvciAoY29uc3QgcSBvZiB0aGlzLmdldFN0YXRlKCkucXVlcmllcykge1xuICAgICAgaWYgKHEuaWQgPT09IGlkKSB7XG4gICAgICAgIHJldHVybiBxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwdXNoUXVlcnkocXVlcnk6IE1vZGVsLlF1ZXJ5KSB7XG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ0lOU0VSVF9RVUVSWScsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVkaXRRdWVyeShxdWVyeTogTW9kZWwuUXVlcnkpIHtcbiAgICBhcHBTdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnVVBEQVRFX1FVRVJZJyxcbiAgICAgIHBheWxvYWQ6IHF1ZXJ5LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZVF1ZXJ5KHF1ZXJ5SWQ6IHN0cmluZykge1xuICAgIGF3YWl0IGFwaS5kZWxldGVRdWVyeUJ5SWQocXVlcnlJZCk7XG4gICAgYXBwU3RvcmUuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ0RFTEVURV9RVUVSWV9CWV9JRCcsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGlkOiBxdWVyeUlkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVRdWVyeSh0aXRsZTogc3RyaW5nLCBxdWVyeXN0cmluZzogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaS5jcmVhdGVRdWVyeSh0aXRsZSwgcXVlcnlzdHJpbmcpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVF1ZXJ5KHF1ZXJ5SWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgcXVlcnlzdHJpbmc6IHN0cmluZykge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGkudXBkYXRlUXVlcnkocXVlcnlJZCwgdGl0bGUsIHF1ZXJ5c3RyaW5nKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwaW5RdWVyeShxdWVyeUlkOiBzdHJpbmcpIHtcbiAgICBhd2FpdCBhcGkucGluUXVlcnkocXVlcnlJZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdW5waW5RdWVyeShxdWVyeUlkOiBzdHJpbmcpIHtcbiAgICBhd2FpdCBhcGkudW5waW5RdWVyeShxdWVyeUlkKTtcbiAgfVxufVxuXG5jb25zdCBxdWVyeVNlcnZpY2UgPSBuZXcgUXVlcnlTZXJ2aWNlKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHF1ZXJ5U2VydmljZTtcbiIsIi8vIGltcG9ydCBhcGkgZnJvbSBcIi4uL2hlbHBlcnMvYXBpXCI7XG5cbmltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge1RGaWxlfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge2NyZWF0ZURhaWx5Tm90ZSwgZ2V0QWxsRGFpbHlOb3RlcywgZ2V0RGFpbHlOb3RlfSBmcm9tICdvYnNpZGlhbi1kYWlseS1ub3Rlcy1pbnRlcmZhY2UnO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5cbi8vIGludGVyZmFjZSBGaWxlRGF0YSB7XG4vLyAgIGJ1ZmZlcjogQXJyYXlCdWZmZXI7XG4vLyAgIG1pbWVUeXBlOiBzdHJpbmc7XG4vLyAgIG9yaWdpbmFsTmFtZTogc3RyaW5nO1xuLy8gfVxuXG5jbGFzcyBSZXNvdXJjZVNlcnZpY2Uge1xuICAvKipcbiAgICogVXBsb2FkIHJlc291cmNlIGZpbGUgdG8gc2VydmVyLFxuICAgKiBAcGFyYW0gZmlsZSBmaWxlXG4gICAqIEByZXR1cm5zIHJlc291cmNlOiBpZCwgZmlsZW5hbWVcbiAgICovXG4gIHB1YmxpYyBhc3luYyB1cGxvYWQoZmlsZTogRmlsZSkge1xuICAgIC8vIGNvbnN0IHsgbmFtZTogZmlsZW5hbWUsIHNpemUgfSA9IGZpbGU7XG5cbiAgICBjb25zdCB7dmF1bHQsIGZpbGVNYW5hZ2VyfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcblxuICAgIGNvbnN0IGZpbGVBcnJheSA9IGF3YWl0IGZpbGUuYXJyYXlCdWZmZXIoKTtcbiAgICBjb25zdCBleHQgPSBnZXRFeHQoZmlsZS50eXBlKTtcblxuICAgIC8vIGNvbnNvbGUubG9nKG5ld09uZSk7XG5cbiAgICAvLyBjb25zdCBmaWxlTmFtZSA9IFwiUGFzdGUgSW1hZ2UgXCIgKyBtb21lbnQoKS5mb3JtYXQoXCJZWVlZTU1EREhIbW1zc1wiKTtcbiAgICBjb25zdCBkYWlseU5vdGVzID0gZ2V0QWxsRGFpbHlOb3RlcygpO1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKTtcbiAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSBnZXREYWlseU5vdGUoZGF0ZSwgZGFpbHlOb3Rlcyk7XG4gICAgbGV0IG5ld0ZpbGU7XG4gICAgaWYgKCFleGlzdGluZ0ZpbGUpIHtcbiAgICAgIGNvbnN0IGRhaWx5RmlsZSA9IGF3YWl0IGNyZWF0ZURhaWx5Tm90ZShkYXRlKTtcbiAgICAgIG5ld0ZpbGUgPSBhd2FpdCB2YXVsdC5jcmVhdGVCaW5hcnkoXG4gICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIGF3YWl0IHZhdWx0LmdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyhgUGFzdGVkIEltYWdlICR7bW9tZW50KCkuZm9ybWF0KCdZWVlZTU1EREhIbW1zcycpfWAsIGV4dCwgZGFpbHlGaWxlKSxcbiAgICAgICAgZmlsZUFycmF5LFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGV4aXN0aW5nRmlsZSBpbnN0YW5jZW9mIFRGaWxlKSB7XG4gICAgICBuZXdGaWxlID0gYXdhaXQgdmF1bHQuY3JlYXRlQmluYXJ5KFxuICAgICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICBhd2FpdCB2YXVsdC5nZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMoXG4gICAgICAgICAgYFBhc3RlZCBJbWFnZSAke21vbWVudCgpLmZvcm1hdCgnWVlZWU1NRERISG1tc3MnKX1gLFxuICAgICAgICAgIGV4dCxcbiAgICAgICAgICBleGlzdGluZ0ZpbGUsXG4gICAgICAgICksXG4gICAgICAgIGZpbGVBcnJheSxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IG5ld0ZpbGVQYXRoID0gZmlsZU1hbmFnZXIuZ2VuZXJhdGVNYXJrZG93bkxpbmsobmV3RmlsZSwgbmV3RmlsZS5wYXRoLCAnJywgJycpO1xuXG4gICAgcmV0dXJuIG5ld0ZpbGVQYXRoO1xuXG4gICAgLy8gY29uc3QgZmlsZVBhdGggPSBhd2FpdCB2YXVsdC5nZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMoZmlsZU5hbWUsIFwicG5nXCIsIFwiXCIpO1xuXG4gICAgLy8gY29uc3QgIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgLy8gcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUuYXJyYXlCdWZmZXIpO1xuICAgIC8vIHJlYWRlci5vbmxvYWQgPSAoKSA9PntcbiAgICAvLyAgIC8vIGNvbnNvbGUubG9nKCdSRVNVTFQnLCByZWFkZXIucmVzdWx0KVxuICAgIC8vICAgZmlsZUFycmFyeSA9IHJlYWRlci5yZXN1bHQ7XG4gICAgLy8gICBjb25zb2xlLmxvZyhmaWxlQXJyYXJ5KTtcbiAgICAvLyB9XG5cbiAgICAvLyBpZiAoc2l6ZSA+IDUgPDwgMjApIHtcbiAgICAvLyAgIHJldHVybiBQcm9taXNlLnJlamVjdChcIui2hei/h+acgOWkp+aWh+S7tuWkp+WwjyA1TWJcIik7XG4gICAgLy8gfVxuXG4gICAgLy8gY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgIC8vIGZvcm1EYXRhLmFwcGVuZChcImZpbGVcIiwgZmlsZSwgZmlsZW5hbWUpO1xuXG4gICAgLy8gY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBhcGkudXBsb2FkRmlsZShmb3JtRGF0YSk7XG4gIH1cbn1cblxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmNvbnN0IGdldEV4dCA9IChsaW5lOiBzdHJpbmcpID0+IC9eaW1hZ2VcXC8oLispJC8uZXhlYyhsaW5lKT8uWzFdO1xuXG5jb25zdCByZXNvdXJjZVNlcnZpY2UgPSBuZXcgUmVzb3VyY2VTZXJ2aWNlKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHJlc291cmNlU2VydmljZTtcbiIsImNvbnN0IGdldEluaXRpYWxBY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJpbml0aWFsVGV4dFwiLFxuICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICBzZWxlY3Rpb25TdGFydDogMCxcbiAgICAgICAgc2VsZWN0aW9uRW5kOiAwLFxuICAgIH07XG59O1xuY29uc3QgZGVmYXVsdENvbmZpZyA9IHtcbiAgICBpbml0aWFsVmFsdWU6IFwiXCIsXG4gICAgaW50ZXJ2YWw6IDMwMCxcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaW55VW5kbyB7XG4gICAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnID0gZGVmYXVsdENvbmZpZykge1xuICAgICAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xuICAgICAgICB0aGlzLnJ1blVuZG8gPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0uc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0udmFsdWU7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY3Vyc29yUG9zaXRpb24sIGN1cnNvclBvc2l0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ydW5SZWRvID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5hY3Rpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSB0aGlzLmFjdGlvbnNbdGhpcy5jdXJyZW50SW5kZXhdLnNlbGVjdGlvbkVuZDtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0udmFsdWU7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY3Vyc29yUG9zaXRpb24sIGN1cnNvclBvc2l0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5nZXRBY3Rpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucztcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSA9IChhY3Rpb25zLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLmFjdGlvbnNdO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBpbmRleCA8IHRoaXMuYWN0aW9ucy5sZW5ndGggPyBpbmRleCA6IHRoaXMuYWN0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZSgpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJlc2V0U3RhdGUgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSBbZ2V0SW5pdGlhbEFjdGlvbigpXTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ybUV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlID0gKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVFbGVtZW50S2V5ZG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5Ym9hcmRFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQua2V5ID09PSBcInpcIiAmJiAha2V5Ym9hcmRFdmVudC5zaGlmdEtleSAmJiAoa2V5Ym9hcmRFdmVudC5tZXRhS2V5IHx8IGtleWJvYXJkRXZlbnQuY3RybEtleSkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMucnVuVW5kbygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoKGtleWJvYXJkRXZlbnQua2V5ID09PSBcInpcIiAmJiBrZXlib2FyZEV2ZW50LnNoaWZ0S2V5ICYmIChrZXlib2FyZEV2ZW50Lm1ldGFLZXkgfHwga2V5Ym9hcmRFdmVudC5jdHJsS2V5KSkgfHxcbiAgICAgICAgICAgICAgICAoa2V5Ym9hcmRFdmVudC5rZXkgPT09IFwieVwiICYmIChrZXlib2FyZEV2ZW50Lm1ldGFLZXkgfHwga2V5Ym9hcmRFdmVudC5jdHJsS2V5KSkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMucnVuUmVkbygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmhhbmRsZUVsZW1lbnRJbnB1dCA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5wdXRFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgY29uc3QgbGFzdEFjdGlvbiA9IHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF07XG4gICAgICAgICAgICB0aGlzLnB1c2hOZXdBY3Rpb24oe1xuICAgICAgICAgICAgICAgIHR5cGU6IGlucHV0RXZlbnQuaW5wdXRUeXBlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmVsZW1lbnQudmFsdWUsXG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0YXJ0OiB0aGlzLmVsZW1lbnQuc2VsZWN0aW9uRW5kIC0gKHRoaXMuZWxlbWVudC52YWx1ZS5sZW5ndGggLSBsYXN0QWN0aW9uLnZhbHVlLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uRW5kOiB0aGlzLmVsZW1lbnQuc2VsZWN0aW9uRW5kLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5oYW5kbGVFbGVtZW50S2V5ZG93bik7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIHRoaXMuaGFuZGxlRWxlbWVudElucHV0KTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ybUV2ZW50TGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuaGFuZGxlRWxlbWVudEtleWRvd24pO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB0aGlzLmhhbmRsZUVsZW1lbnRJbnB1dCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucHVzaE5ld0FjdGlvbiA9IChhY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RBY3Rpb24gPSB0aGlzLmFjdGlvbnNbdGhpcy5jdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgaWYgKGxhc3RBY3Rpb24gJiYgbGFzdEFjdGlvbi50eXBlID09PSBhY3Rpb24udHlwZSAmJiBhY3Rpb24udGltZXN0YW1wIC0gbGFzdEFjdGlvbi50aW1lc3RhbXAgPCB0aGlzLmNvbmZpZy5pbnRlcnZhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uc1t0aGlzLmN1cnJlbnRJbmRleF0gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGxhc3RBY3Rpb24pLCB7IHZhbHVlOiBhY3Rpb24udmFsdWUsIHNlbGVjdGlvbkVuZDogYWN0aW9uLnNlbGVjdGlvbkVuZCwgdGltZXN0YW1wOiBhY3Rpb24udGltZXN0YW1wIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLm1heFNpemUgJiYgdGhpcy5jdXJyZW50SW5kZXggPj0gdGhpcy5jb25maWcubWF4U2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zWzBdID0gZ2V0SW5pdGlhbEFjdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zW3RoaXMuY3VycmVudEluZGV4XSA9IGFjdGlvbjtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuc2xpY2UoMCwgdGhpcy5jdXJyZW50SW5kZXggKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2Igb2YgdGhpcy5saXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBjYihbLi4udGhpcy5hY3Rpb25zXSwgdGhpcy5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENvbmZpZyksIGNvbmZpZyk7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5pbml0aWFsQWN0aW9ucyAmJiB0aGlzLmNvbmZpZy5pbml0aWFsQWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLmNvbmZpZy5pbml0aWFsQWN0aW9ucztcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5pbml0aWFsSW5kZXggIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbmZpZy5pbml0aWFsSW5kZXggPCB0aGlzLmFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLmNvbmZpZy5pbml0aWFsSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IHRoaXMuYWN0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gW2dldEluaXRpYWxBY3Rpb24oKV07XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuaW5pdGlhbFZhbHVlICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImluc2VydFRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuY29uZmlnLmluaXRpYWxWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TdGFydDogMCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uRW5kOiB0aGlzLmNvbmZpZy5pbml0aWFsVmFsdWUubGVuZ3RoLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdGhpcy5hY3Rpb25zW3RoaXMuY3VycmVudEluZGV4XS52YWx1ZTtcbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuICAgIH1cbn1cbiIsImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmZ1bmN0aW9uIHVzZVJlZnJlc2goKSB7XG4gIGNvbnN0IFssIHNldEJvb2xlYW5dID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0IHJlZnJlc2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0Qm9vbGVhbigocHMpID0+IHtcbiAgICAgIHJldHVybiAhcHM7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gcmVmcmVzaDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlUmVmcmVzaDtcbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7cmVxdWlyZShcIm9iamVjdC1hc3NpZ25cIik7dmFyIGY9cmVxdWlyZShcInJlYWN0XCIpLGc9NjAxMDM7ZXhwb3J0cy5GcmFnbWVudD02MDEwNztpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yKXt2YXIgaD1TeW1ib2wuZm9yO2c9aChcInJlYWN0LmVsZW1lbnRcIik7ZXhwb3J0cy5GcmFnbWVudD1oKFwicmVhY3QuZnJhZ21lbnRcIil9dmFyIG09Zi5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRC5SZWFjdEN1cnJlbnRPd25lcixuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gcShjLGEsayl7dmFyIGIsZD17fSxlPW51bGwsbD1udWxsO3ZvaWQgMCE9PWsmJihlPVwiXCIrayk7dm9pZCAwIT09YS5rZXkmJihlPVwiXCIrYS5rZXkpO3ZvaWQgMCE9PWEucmVmJiYobD1hLnJlZik7Zm9yKGIgaW4gYSluLmNhbGwoYSxiKSYmIXAuaGFzT3duUHJvcGVydHkoYikmJihkW2JdPWFbYl0pO2lmKGMmJmMuZGVmYXVsdFByb3BzKWZvcihiIGluIGE9Yy5kZWZhdWx0UHJvcHMsYSl2b2lkIDA9PT1kW2JdJiYoZFtiXT1hW2JdKTtyZXR1cm57JCR0eXBlb2Y6Zyx0eXBlOmMsa2V5OmUscmVmOmwscHJvcHM6ZCxfb3duZXI6bS5jdXJyZW50fX1leHBvcnRzLmpzeD1xO2V4cG9ydHMuanN4cz1xO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJpbXBvcnQgKiBhcyBqc3hSdW50aW1lIGZyb20gXCJFOlxcXFxvYmRldlxcXFwub2JzaWRpYW5cXFxccGx1Z2luc1xcXFxvYnNpZGlhbi1tZW1vc1xcXFxub2RlX21vZHVsZXNcXFxccmVhY3RcXFxcanN4LXJ1bnRpbWUuanNcIlxuZXhwb3J0IGNvbnN0IGpzeCA9IGpzeFJ1bnRpbWUuanN4XG5leHBvcnQgY29uc3QganN4cyA9IGpzeFJ1bnRpbWUuanN4c1xuZXhwb3J0IGNvbnN0IEZyYWdtZW50ID0ganN4UnVudGltZS5GcmFnbWVudCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1JlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuXG5pbnRlcmZhY2UgT25seVdoZW5Qcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIHdoZW46IGJvb2xlYW47XG59XG5cbmNvbnN0IE9ubHlXaGVuOiBSZWFjdC5GQzxPbmx5V2hlblByb3BzPiA9IChwcm9wczogT25seVdoZW5Qcm9wcykgPT4ge1xuICBjb25zdCB7Y2hpbGRyZW4sIHdoZW59ID0gcHJvcHM7XG4gIHJldHVybiB3aGVuID8gPD57Y2hpbGRyZW59PC8+IDogbnVsbDtcbn07XG5cbmNvbnN0IE9ubHkgPSBPbmx5V2hlbjtcblxuZXhwb3J0IGRlZmF1bHQgT25seTtcbiIsIi8qIGpzaGludCBicm93c2VyOiB0cnVlICovXG5cbihmdW5jdGlvbiAoKSB7XG5cbi8vIFRoZSBwcm9wZXJ0aWVzIHRoYXQgd2UgY29weSBpbnRvIGEgbWlycm9yZWQgZGl2LlxuLy8gTm90ZSB0aGF0IHNvbWUgYnJvd3NlcnMsIHN1Y2ggYXMgRmlyZWZveCxcbi8vIGRvIG5vdCBjb25jYXRlbmF0ZSBwcm9wZXJ0aWVzLCBpLmUuIHBhZGRpbmctdG9wLCBib3R0b20gZXRjLiAtPiBwYWRkaW5nLFxuLy8gc28gd2UgaGF2ZSB0byBkbyBldmVyeSBzaW5nbGUgcHJvcGVydHkgc3BlY2lmaWNhbGx5LlxudmFyIHByb3BlcnRpZXMgPSBbXG4gICdkaXJlY3Rpb24nLCAgLy8gUlRMIHN1cHBvcnRcbiAgJ2JveFNpemluZycsXG4gICd3aWR0aCcsICAvLyBvbiBDaHJvbWUgYW5kIElFLCBleGNsdWRlIHRoZSBzY3JvbGxiYXIsIHNvIHRoZSBtaXJyb3IgZGl2IHdyYXBzIGV4YWN0bHkgYXMgdGhlIHRleHRhcmVhIGRvZXNcbiAgJ2hlaWdodCcsXG4gICdvdmVyZmxvd1gnLFxuICAnb3ZlcmZsb3dZJywgIC8vIGNvcHkgdGhlIHNjcm9sbGJhciBmb3IgSUVcblxuICAnYm9yZGVyVG9wV2lkdGgnLFxuICAnYm9yZGVyUmlnaHRXaWR0aCcsXG4gICdib3JkZXJCb3R0b21XaWR0aCcsXG4gICdib3JkZXJMZWZ0V2lkdGgnLFxuICAnYm9yZGVyU3R5bGUnLFxuXG4gICdwYWRkaW5nVG9wJyxcbiAgJ3BhZGRpbmdSaWdodCcsXG4gICdwYWRkaW5nQm90dG9tJyxcbiAgJ3BhZGRpbmdMZWZ0JyxcblxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvZm9udFxuICAnZm9udFN0eWxlJyxcbiAgJ2ZvbnRWYXJpYW50JyxcbiAgJ2ZvbnRXZWlnaHQnLFxuICAnZm9udFN0cmV0Y2gnLFxuICAnZm9udFNpemUnLFxuICAnZm9udFNpemVBZGp1c3QnLFxuICAnbGluZUhlaWdodCcsXG4gICdmb250RmFtaWx5JyxcblxuICAndGV4dEFsaWduJyxcbiAgJ3RleHRUcmFuc2Zvcm0nLFxuICAndGV4dEluZGVudCcsXG4gICd0ZXh0RGVjb3JhdGlvbicsICAvLyBtaWdodCBub3QgbWFrZSBhIGRpZmZlcmVuY2UsIGJ1dCBiZXR0ZXIgYmUgc2FmZVxuXG4gICdsZXR0ZXJTcGFjaW5nJyxcbiAgJ3dvcmRTcGFjaW5nJyxcblxuICAndGFiU2l6ZScsXG4gICdNb3pUYWJTaXplJ1xuXG5dO1xuXG52YXIgaXNCcm93c2VyID0gKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKTtcbnZhciBpc0ZpcmVmb3ggPSAoaXNCcm93c2VyICYmIHdpbmRvdy5tb3pJbm5lclNjcmVlblggIT0gbnVsbCk7XG5cbmZ1bmN0aW9uIGdldENhcmV0Q29vcmRpbmF0ZXMoZWxlbWVudCwgcG9zaXRpb24sIG9wdGlvbnMpIHtcbiAgaWYoIWlzQnJvd3Nlcikge1xuICAgIHRocm93IG5ldyBFcnJvcigndGV4dGFyZWEtY2FyZXQtcG9zaXRpb24jZ2V0Q2FyZXRDb29yZGluYXRlcyBzaG91bGQgb25seSBiZSBjYWxsZWQgaW4gYSBicm93c2VyJyk7XG4gIH1cblxuICB2YXIgZGVidWcgPSBvcHRpb25zICYmIG9wdGlvbnMuZGVidWcgfHwgZmFsc2U7XG4gIGlmIChkZWJ1Zykge1xuICAgIHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNpbnB1dC10ZXh0YXJlYS1jYXJldC1wb3NpdGlvbi1taXJyb3ItZGl2Jyk7XG4gICAgaWYgKCBlbCApIHsgZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbCk7IH1cbiAgfVxuXG4gIC8vIG1pcnJvcmVkIGRpdlxuICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5pZCA9ICdpbnB1dC10ZXh0YXJlYS1jYXJldC1wb3NpdGlvbi1taXJyb3ItZGl2JztcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuXG4gIHZhciBzdHlsZSA9IGRpdi5zdHlsZTtcbiAgdmFyIGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGU/IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkgOiBlbGVtZW50LmN1cnJlbnRTdHlsZTsgIC8vIGN1cnJlbnRTdHlsZSBmb3IgSUUgPCA5XG5cbiAgLy8gZGVmYXVsdCB0ZXh0YXJlYSBzdHlsZXNcbiAgc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUtd3JhcCc7XG4gIGlmIChlbGVtZW50Lm5vZGVOYW1lICE9PSAnSU5QVVQnKVxuICAgIHN0eWxlLndvcmRXcmFwID0gJ2JyZWFrLXdvcmQnOyAgLy8gb25seSBmb3IgdGV4dGFyZWEtc1xuXG4gIC8vIHBvc2l0aW9uIG9mZi1zY3JlZW5cbiAgc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOyAgLy8gcmVxdWlyZWQgdG8gcmV0dXJuIGNvb3JkaW5hdGVzIHByb3Blcmx5XG4gIGlmICghZGVidWcpXG4gICAgc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOyAgLy8gbm90ICdkaXNwbGF5OiBub25lJyBiZWNhdXNlIHdlIHdhbnQgcmVuZGVyaW5nXG5cbiAgLy8gdHJhbnNmZXIgdGhlIGVsZW1lbnQncyBwcm9wZXJ0aWVzIHRvIHRoZSBkaXZcbiAgcHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgc3R5bGVbcHJvcF0gPSBjb21wdXRlZFtwcm9wXTtcbiAgfSk7XG5cbiAgaWYgKGlzRmlyZWZveCkge1xuICAgIC8vIEZpcmVmb3ggbGllcyBhYm91dCB0aGUgb3ZlcmZsb3cgcHJvcGVydHkgZm9yIHRleHRhcmVhczogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0Mjc1XG4gICAgaWYgKGVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID4gcGFyc2VJbnQoY29tcHV0ZWQuaGVpZ2h0KSlcbiAgICAgIHN0eWxlLm92ZXJmbG93WSA9ICdzY3JvbGwnO1xuICB9IGVsc2Uge1xuICAgIHN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7ICAvLyBmb3IgQ2hyb21lIHRvIG5vdCByZW5kZXIgYSBzY3JvbGxiYXI7IElFIGtlZXBzIG92ZXJmbG93WSA9ICdzY3JvbGwnXG4gIH1cblxuICBkaXYudGV4dENvbnRlbnQgPSBlbGVtZW50LnZhbHVlLnN1YnN0cmluZygwLCBwb3NpdGlvbik7XG4gIC8vIHRoZSBzZWNvbmQgc3BlY2lhbCBoYW5kbGluZyBmb3IgaW5wdXQgdHlwZT1cInRleHRcIiB2cyB0ZXh0YXJlYTogc3BhY2VzIG5lZWQgdG8gYmUgcmVwbGFjZWQgd2l0aCBub24tYnJlYWtpbmcgc3BhY2VzIC0gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTM0MDIwMzUvMTI2OTAzN1xuICBpZiAoZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0lOUFVUJylcbiAgICBkaXYudGV4dENvbnRlbnQgPSBkaXYudGV4dENvbnRlbnQucmVwbGFjZSgvXFxzL2csICdcXHUwMGEwJyk7XG5cbiAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gIC8vIFdyYXBwaW5nIG11c3QgYmUgcmVwbGljYXRlZCAqZXhhY3RseSosIGluY2x1ZGluZyB3aGVuIGEgbG9uZyB3b3JkIGdldHNcbiAgLy8gb250byB0aGUgbmV4dCBsaW5lLCB3aXRoIHdoaXRlc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSBiZWZvcmUgKCM3KS5cbiAgLy8gVGhlICAqb25seSogcmVsaWFibGUgd2F5IHRvIGRvIHRoYXQgaXMgdG8gY29weSB0aGUgKmVudGlyZSogcmVzdCBvZiB0aGVcbiAgLy8gdGV4dGFyZWEncyBjb250ZW50IGludG8gdGhlIDxzcGFuPiBjcmVhdGVkIGF0IHRoZSBjYXJldCBwb3NpdGlvbi5cbiAgLy8gZm9yIGlucHV0cywganVzdCAnLicgd291bGQgYmUgZW5vdWdoLCBidXQgd2h5IGJvdGhlcj9cbiAgc3Bhbi50ZXh0Q29udGVudCA9IGVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKHBvc2l0aW9uKSB8fCAnLic7ICAvLyB8fCBiZWNhdXNlIGEgY29tcGxldGVseSBlbXB0eSBmYXV4IHNwYW4gZG9lc24ndCByZW5kZXIgYXQgYWxsXG4gIGRpdi5hcHBlbmRDaGlsZChzcGFuKTtcblxuICB2YXIgY29vcmRpbmF0ZXMgPSB7XG4gICAgdG9wOiBzcGFuLm9mZnNldFRvcCArIHBhcnNlSW50KGNvbXB1dGVkWydib3JkZXJUb3BXaWR0aCddKSxcbiAgICBsZWZ0OiBzcGFuLm9mZnNldExlZnQgKyBwYXJzZUludChjb21wdXRlZFsnYm9yZGVyTGVmdFdpZHRoJ10pXG4gIH07XG5cbiAgaWYgKGRlYnVnKSB7XG4gICAgc3Bhbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI2FhYSc7XG4gIH0gZWxzZSB7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpO1xuICB9XG5cbiAgcmV0dXJuIGNvb3JkaW5hdGVzO1xufVxuXG5pZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgbW9kdWxlLmV4cG9ydHMgIT0gJ3VuZGVmaW5lZCcpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBnZXRDYXJldENvb3JkaW5hdGVzO1xufSBlbHNlIGlmKGlzQnJvd3Nlcil7XG4gIHdpbmRvdy5nZXRDYXJldENvb3JkaW5hdGVzID0gZ2V0Q2FyZXRDb29yZGluYXRlcztcbn1cblxufSgpKTtcbiIsIlxudmFyIE5hdGl2ZUN1c3RvbUV2ZW50ID0gZ2xvYmFsLkN1c3RvbUV2ZW50O1xuXG5mdW5jdGlvbiB1c2VOYXRpdmUgKCkge1xuICB0cnkge1xuICAgIHZhciBwID0gbmV3IE5hdGl2ZUN1c3RvbUV2ZW50KCdjYXQnLCB7IGRldGFpbDogeyBmb286ICdiYXInIH0gfSk7XG4gICAgcmV0dXJuICAnY2F0JyA9PT0gcC50eXBlICYmICdiYXInID09PSBwLmRldGFpbC5mb287XG4gIH0gY2F0Y2ggKGUpIHtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ3Jvc3MtYnJvd3NlciBgQ3VzdG9tRXZlbnRgIGNvbnN0cnVjdG9yLlxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9DdXN0b21FdmVudC5DdXN0b21FdmVudFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVzZU5hdGl2ZSgpID8gTmF0aXZlQ3VzdG9tRXZlbnQgOlxuXG4vLyBJRSA+PSA5XG4ndW5kZWZpbmVkJyAhPT0gdHlwZW9mIGRvY3VtZW50ICYmICdmdW5jdGlvbicgPT09IHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFdmVudCA/IGZ1bmN0aW9uIEN1c3RvbUV2ZW50ICh0eXBlLCBwYXJhbXMpIHtcbiAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnQ3VzdG9tRXZlbnQnKTtcbiAgaWYgKHBhcmFtcykge1xuICAgIGUuaW5pdEN1c3RvbUV2ZW50KHR5cGUsIHBhcmFtcy5idWJibGVzLCBwYXJhbXMuY2FuY2VsYWJsZSwgcGFyYW1zLmRldGFpbCk7XG4gIH0gZWxzZSB7XG4gICAgZS5pbml0Q3VzdG9tRXZlbnQodHlwZSwgZmFsc2UsIGZhbHNlLCB2b2lkIDApO1xuICB9XG4gIHJldHVybiBlO1xufSA6XG5cbi8vIElFIDw9IDhcbmZ1bmN0aW9uIEN1c3RvbUV2ZW50ICh0eXBlLCBwYXJhbXMpIHtcbiAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpO1xuICBlLnR5cGUgPSB0eXBlO1xuICBpZiAocGFyYW1zKSB7XG4gICAgZS5idWJibGVzID0gQm9vbGVhbihwYXJhbXMuYnViYmxlcyk7XG4gICAgZS5jYW5jZWxhYmxlID0gQm9vbGVhbihwYXJhbXMuY2FuY2VsYWJsZSk7XG4gICAgZS5kZXRhaWwgPSBwYXJhbXMuZGV0YWlsO1xuICB9IGVsc2Uge1xuICAgIGUuYnViYmxlcyA9IGZhbHNlO1xuICAgIGUuY2FuY2VsYWJsZSA9IGZhbHNlO1xuICAgIGUuZGV0YWlsID0gdm9pZCAwO1xuICB9XG4gIHJldHVybiBlO1xufVxuIiwiLyoqXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcgSmFrdWIgQmVuZcWhIDxiZW5lc0B3ZWJzY29wZS5pbz5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IGdldENhcmV0Q29vcmRpbmF0ZXMgZnJvbSAndGV4dGFyZWEtY2FyZXQnO1xuaW1wb3J0IEN1c3RvbUV2ZW50IGZyb20gJ2N1c3RvbS1ldmVudCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTtcbiAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgICBpZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG93bktleXMgPSBvd25LZXlzLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSkuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBzeW0pLmVudW1lcmFibGU7XG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgb3duS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5mdW5jdGlvbiBfdHlwZW9mMihvYmopIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7XG4gICAgX3R5cGVvZjIgPSBmdW5jdGlvbiBfdHlwZW9mMihvYmopIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZjIgPSBmdW5jdGlvbiBfdHlwZW9mMihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX3R5cGVvZjIob2JqKTtcbn1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBfdHlwZW9mMihTeW1ib2wuaXRlcmF0b3IpID09PSBcInN5bWJvbFwiKSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gX3R5cGVvZjIob2JqKTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IF90eXBlb2YyKG9iaik7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBfdHlwZW9mKG9iaik7XG59XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHtcbiAgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICByZXR1cm4gY2FsbDtcbiAgfVxuXG4gIHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpO1xufVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICAgIG8uX19wcm90b19fID0gcDtcbiAgICByZXR1cm4gbztcbiAgfTtcblxuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwge1xuICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICB2YWx1ZTogc3ViQ2xhc3MsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH1cbiAgfSk7XG4gIGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgYXJyMltpXSA9IGFycltpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyMjtcbiAgfVxufVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoaXRlcikgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGl0ZXIpID09PSBcIltvYmplY3QgQXJndW1lbnRzXVwiKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn1cblxuZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2VcIik7XG59XG5cbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHtcbiAgcmV0dXJuIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfbm9uSXRlcmFibGVTcHJlYWQoKTtcbn1cblxudmFyIEtFWV9DT0RFUyA9IHtcbiAgRVNDOiAyNyxcbiAgVVA6IDM4LFxuICBET1dOOiA0MCxcbiAgTEVGVDogMzcsXG4gIFJJR0hUOiAzOSxcbiAgRU5URVI6IDEzLFxuICBUQUI6IDlcbn07IC8vIFRoaXMgaXMgc2VsZi1tYWRlIGtleSBzaG9ydGN1dHMgbWFuYWdlciwgdXNlZCBmb3IgY2FjaGluZyBrZXkgc3Ryb2tlc1xuXG52YXIgTGlzdGVuZXIgPSBmdW5jdGlvbiBMaXN0ZW5lcigpIHtcbiAgdmFyIF90aGlzID0gdGhpcztcblxuICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlzdGVuZXIpO1xuXG4gIHRoaXMuc3RhcnRMaXN0ZW4gPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgaWYgKCFyZWYpIHJldHVybjtcbiAgICByZWYuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgX3RoaXMuZik7XG4gIH07XG5cbiAgdGhpcy5zdG9wTGlzdGVuID0gZnVuY3Rpb24gKHJlZikge1xuICAgIGlmICghcmVmKSByZXR1cm47XG4gICAgcmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIF90aGlzLmYpO1xuICB9O1xuXG4gIHRoaXMuYWRkID0gZnVuY3Rpb24gKGtleUNvZGVzLCBmbikge1xuICAgIHZhciBrZXlDb2RlID0ga2V5Q29kZXM7XG4gICAgaWYgKHR5cGVvZiBrZXlDb2RlICE9PSBcIm9iamVjdFwiKSBrZXlDb2RlID0gW2tleUNvZGVdO1xuICAgIF90aGlzLmxpc3RlbmVyc1tfdGhpcy5pbmRleF0gPSB7XG4gICAgICBrZXlDb2RlOiBrZXlDb2RlLFxuICAgICAgZm46IGZuXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXMuaW5kZXgrKztcbiAgfTtcblxuICB0aGlzLnJlbW92ZSA9IGZ1bmN0aW9uIChpZCkge1xuICAgIGRlbGV0ZSBfdGhpcy5saXN0ZW5lcnNbaWRdO1xuICB9O1xuXG4gIHRoaXMucmVtb3ZlQWxsID0gZnVuY3Rpb24gKCkge1xuICAgIF90aGlzLmxpc3RlbmVycyA9IHt9O1xuICAgIF90aGlzLmluZGV4ID0gMTtcbiAgfTtcblxuICB0aGlzLmluZGV4ID0gMTtcbiAgdGhpcy5saXN0ZW5lcnMgPSB7fTtcblxuICB0aGlzLmYgPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmICghZSkgcmV0dXJuO1xuICAgIHZhciBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XG4gICAgT2JqZWN0LnZhbHVlcyhfdGhpcy5saXN0ZW5lcnMpLmZvckVhY2goZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBrZXlDb2RlID0gX3JlZi5rZXlDb2RlLFxuICAgICAgICAgIGZuID0gX3JlZi5mbjtcblxuICAgICAgaWYgKGtleUNvZGUuaW5jbHVkZXMoY29kZSkpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBmbihlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn07XG5cbnZhciBMaXN0ZW5lcnMgPSBuZXcgTGlzdGVuZXIoKTtcblxudmFyIEl0ZW0gPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEl0ZW0sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEl0ZW0oKSB7XG4gICAgdmFyIF9nZXRQcm90b3R5cGVPZjI7XG5cbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSXRlbSk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoX2dldFByb3RvdHlwZU9mMiA9IF9nZXRQcm90b3R5cGVPZihJdGVtKSkuY2FsbC5hcHBseShfZ2V0UHJvdG90eXBlT2YyLCBbdGhpc10uY29uY2F0KGFyZ3MpKSk7XG5cbiAgICBfdGhpcy5zZWxlY3RJdGVtID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgaXRlbSA9IF90aGlzJHByb3BzLml0ZW0sXG4gICAgICAgICAgb25TZWxlY3RIYW5kbGVyID0gX3RoaXMkcHJvcHMub25TZWxlY3RIYW5kbGVyO1xuICAgICAgb25TZWxlY3RIYW5kbGVyKGl0ZW0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoSXRlbSwgW3tcbiAgICBrZXk6IFwic2hvdWxkQ29tcG9uZW50VXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLml0ZW0gIT09IG5leHRQcm9wcy5pdGVtIHx8IHRoaXMucHJvcHMuc2VsZWN0ZWQgIT09IG5leHRQcm9wcy5zZWxlY3RlZCB8fCB0aGlzLnByb3BzLnN0eWxlICE9PSBuZXh0UHJvcHMuc3R5bGUgfHwgdGhpcy5wcm9wcy5jbGFzc05hbWUgIT09IG5leHRQcm9wcy5jbGFzc05hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBDb21wb25lbnQgPSBfdGhpcyRwcm9wczIuY29tcG9uZW50LFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMyLnN0eWxlLFxuICAgICAgICAgIG9uQ2xpY2tIYW5kbGVyID0gX3RoaXMkcHJvcHMyLm9uQ2xpY2tIYW5kbGVyLFxuICAgICAgICAgIGl0ZW0gPSBfdGhpcyRwcm9wczIuaXRlbSxcbiAgICAgICAgICBzZWxlY3RlZCA9IF90aGlzJHByb3BzMi5zZWxlY3RlZCxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczIuY2xhc3NOYW1lLFxuICAgICAgICAgIGlubmVyUmVmID0gX3RoaXMkcHJvcHMyLmlubmVyUmVmO1xuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJydGFfX2l0ZW0gIFwiLmNvbmNhdChzZWxlY3RlZCA9PT0gdHJ1ZSA/IFwicnRhX19pdGVtLS1zZWxlY3RlZFwiIDogXCJcIiwgXCIgXCIpLmNvbmNhdChjbGFzc05hbWUgfHwgXCJcIiksXG4gICAgICAgIHN0eWxlOiBzdHlsZVxuICAgICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJydGFfX2VudGl0eSBcIi5jb25jYXQoc2VsZWN0ZWQgPT09IHRydWUgPyBcInJ0YV9fZW50aXR5LS1zZWxlY3RlZFwiIDogXCJcIiksXG4gICAgICAgIHJvbGU6IFwiYnV0dG9uXCIsXG4gICAgICAgIHRhYkluZGV4OiAwLFxuICAgICAgICBvbkNsaWNrOiBvbkNsaWNrSGFuZGxlcixcbiAgICAgICAgb25Gb2N1czogdGhpcy5zZWxlY3RJdGVtLFxuICAgICAgICBvbk1vdXNlRW50ZXI6IHRoaXMuc2VsZWN0SXRlbSxcbiAgICAgICAgb25Ub3VjaFN0YXJ0OiBmdW5jdGlvbiBvblRvdWNoU3RhcnQoKSB7XG4gICAgICAgICAgX3RoaXMyLmNsaWNrZWQgPSB0cnVlO1xuXG4gICAgICAgICAgX3RoaXMyLnNlbGVjdEl0ZW0oKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25Ub3VjaEVuZDogZnVuY3Rpb24gb25Ub3VjaEVuZChlKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgaWYgKF90aGlzMi5jbGlja2VkKSB7XG4gICAgICAgICAgICBvbkNsaWNrSGFuZGxlcihlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9uVG91Y2hNb3ZlOiBmdW5jdGlvbiBvblRvdWNoTW92ZSgpIHtcbiAgICAgICAgICBfdGhpczIuY2xpY2tlZCA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBvblRvdWNoQ2FuY2VsOiBmdW5jdGlvbiBvblRvdWNoQ2FuY2VsKCkge1xuICAgICAgICAgIF90aGlzMi5jbGlja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLyogJEZsb3dGaXhNZSAqL1xuICAgICAgICAsXG4gICAgICAgIHJlZjogaW5uZXJSZWZcbiAgICAgIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCB7XG4gICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgICAgZW50aXR5OiBpdGVtXG4gICAgICB9KSkpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBJdGVtO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG52YXIgTGlzdCA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTGlzdCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gTGlzdCgpIHtcbiAgICB2YXIgX2dldFByb3RvdHlwZU9mMjtcblxuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaXN0KTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChfZ2V0UHJvdG90eXBlT2YyID0gX2dldFByb3RvdHlwZU9mKExpc3QpKS5jYWxsLmFwcGx5KF9nZXRQcm90b3R5cGVPZjIsIFt0aGlzXS5jb25jYXQoYXJncykpKTtcbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHNlbGVjdGVkSXRlbTogbnVsbFxuICAgIH07XG4gICAgX3RoaXMuY2FjaGVkSWRPZkl0ZW1zID0gbmV3IE1hcCgpO1xuXG4gICAgX3RoaXMub25QcmVzc0VudGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmICh0eXBlb2YgZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIHZhciB2YWx1ZXMgPSBfdGhpcy5wcm9wcy52YWx1ZXM7XG5cbiAgICAgIF90aGlzLm1vZGlmeVRleHQodmFsdWVzW190aGlzLmdldFBvc2l0aW9uSW5MaXN0KCldKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0UG9zaXRpb25Jbkxpc3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgdmFsdWVzID0gX3RoaXMucHJvcHMudmFsdWVzO1xuICAgICAgdmFyIHNlbGVjdGVkSXRlbSA9IF90aGlzLnN0YXRlLnNlbGVjdGVkSXRlbTtcbiAgICAgIGlmICghc2VsZWN0ZWRJdGVtKSByZXR1cm4gMDtcbiAgICAgIHJldHVybiB2YWx1ZXMuZmluZEluZGV4KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5nZXRJZChhKSA9PT0gX3RoaXMuZ2V0SWQoc2VsZWN0ZWRJdGVtKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5nZXRJZCA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICBpZiAoX3RoaXMuY2FjaGVkSWRPZkl0ZW1zLmhhcyhpdGVtKSkge1xuICAgICAgICAvLyAkRmxvd0ZpeE1lXG4gICAgICAgIHJldHVybiBfdGhpcy5jYWNoZWRJZE9mSXRlbXMuZ2V0KGl0ZW0pO1xuICAgICAgfVxuXG4gICAgICB2YXIgdGV4dFRvUmVwbGFjZSA9IF90aGlzLnByb3BzLmdldFRleHRUb1JlcGxhY2UoaXRlbSk7XG5cbiAgICAgIHZhciBjb21wdXRlSWQgPSBmdW5jdGlvbiBjb21wdXRlSWQoKSB7XG4gICAgICAgIGlmICh0ZXh0VG9SZXBsYWNlKSB7XG4gICAgICAgICAgaWYgKHRleHRUb1JlcGxhY2Uua2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dFRvUmVwbGFjZS5rZXk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiIHx8ICFpdGVtLmtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHRleHRUb1JlcGxhY2UudGV4dDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWl0ZW0ua2V5KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSXRlbSBcIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoaXRlbSksIFwiIGhhcyB0byBoYXZlIGRlZmluZWQgXFxcImtleVxcXCIgcHJvcGVydHlcIikpO1xuICAgICAgICB9IC8vICRGbG93Rml4TWVcblxuXG4gICAgICAgIHJldHVybiBpdGVtLmtleTtcbiAgICAgIH07XG5cbiAgICAgIHZhciBpZCA9IGNvbXB1dGVJZCgpO1xuXG4gICAgICBfdGhpcy5jYWNoZWRJZE9mSXRlbXMuc2V0KGl0ZW0sIGlkKTtcblxuICAgICAgcmV0dXJuIGlkO1xuICAgIH07XG5cbiAgICBfdGhpcy5saXN0ZW5lcnMgPSBbXTtcbiAgICBfdGhpcy5pdGVtc1JlZiA9IHt9O1xuXG4gICAgX3RoaXMubW9kaWZ5VGV4dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgICAgdmFyIG9uU2VsZWN0ID0gX3RoaXMucHJvcHMub25TZWxlY3Q7XG4gICAgICBvblNlbGVjdCh2YWx1ZSk7XG4gICAgfTtcblxuICAgIF90aGlzLnNlbGVjdEl0ZW0gPSBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGtleWJvYXJkID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgICAgIHZhciBvbkl0ZW1IaWdobGlnaHRlZCA9IF90aGlzLnByb3BzLm9uSXRlbUhpZ2hsaWdodGVkO1xuICAgICAgaWYgKF90aGlzLnN0YXRlLnNlbGVjdGVkSXRlbSA9PT0gaXRlbSkgcmV0dXJuO1xuXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHNlbGVjdGVkSXRlbTogaXRlbVxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBvbkl0ZW1IaWdobGlnaHRlZChpdGVtKTtcblxuICAgICAgICBpZiAoa2V5Ym9hcmQpIHtcbiAgICAgICAgICBfdGhpcy5wcm9wcy5kcm9wZG93blNjcm9sbChfdGhpcy5pdGVtc1JlZltfdGhpcy5nZXRJZChpdGVtKV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc2Nyb2xsID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHZhciB2YWx1ZXMgPSBfdGhpcy5wcm9wcy52YWx1ZXM7XG4gICAgICB2YXIgY29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoO1xuXG4gICAgICB2YXIgb2xkUG9zaXRpb24gPSBfdGhpcy5nZXRQb3NpdGlvbkluTGlzdCgpO1xuXG4gICAgICB2YXIgbmV3UG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICBjYXNlIEtFWV9DT0RFUy5ET1dOOlxuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gb2xkUG9zaXRpb24gKyAxO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgS0VZX0NPREVTLlVQOlxuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gb2xkUG9zaXRpb24gLSAxO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgbmV3UG9zaXRpb24gPSAobmV3UG9zaXRpb24gJSB2YWx1ZXMubGVuZ3RoICsgdmFsdWVzLmxlbmd0aCkgJSB2YWx1ZXMubGVuZ3RoOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICAgIF90aGlzLnNlbGVjdEl0ZW0odmFsdWVzW25ld1Bvc2l0aW9uXSwgW0tFWV9DT0RFUy5ET1dOLCBLRVlfQ09ERVMuVVBdLmluY2x1ZGVzKGNvZGUpKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaXNTZWxlY3RlZCA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgc2VsZWN0ZWRJdGVtID0gX3RoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtO1xuICAgICAgaWYgKCFzZWxlY3RlZEl0ZW0pIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiBfdGhpcy5nZXRJZChzZWxlY3RlZEl0ZW0pID09PSBfdGhpcy5nZXRJZChpdGVtKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExpc3QsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChMaXN0ZW5lcnMuYWRkKFtLRVlfQ09ERVMuRE9XTiwgS0VZX0NPREVTLlVQXSwgdGhpcy5zY3JvbGwpLCBMaXN0ZW5lcnMuYWRkKFtLRVlfQ09ERVMuRU5URVIsIEtFWV9DT0RFUy5UQUJdLCB0aGlzLm9uUHJlc3NFbnRlcikpO1xuICAgICAgdmFyIHZhbHVlcyA9IHRoaXMucHJvcHMudmFsdWVzO1xuICAgICAgaWYgKHZhbHVlcyAmJiB2YWx1ZXNbMF0pIHRoaXMuc2VsZWN0SXRlbSh2YWx1ZXNbMF0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKF9yZWYpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgb2xkVmFsdWVzID0gX3JlZi52YWx1ZXM7XG4gICAgICB2YXIgdmFsdWVzID0gdGhpcy5wcm9wcy52YWx1ZXM7XG4gICAgICB2YXIgb2xkVmFsdWVzU2VyaWFsaXplZCA9IG9sZFZhbHVlcy5tYXAoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICByZXR1cm4gX3RoaXMyLmdldElkKHZhbCk7XG4gICAgICB9KS5qb2luKFwiXCIpO1xuICAgICAgdmFyIG5ld1ZhbHVlc1NlcmlhbGl6ZWQgPSB2YWx1ZXMubWFwKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzMi5nZXRJZCh2YWwpO1xuICAgICAgfSkuam9pbihcIlwiKTtcblxuICAgICAgaWYgKG9sZFZhbHVlc1NlcmlhbGl6ZWQgIT09IG5ld1ZhbHVlc1NlcmlhbGl6ZWQgJiYgdmFsdWVzICYmIHZhbHVlc1swXSkge1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW0odmFsdWVzWzBdKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB2YXIgbGlzdGVuZXI7XG5cbiAgICAgIHdoaWxlICh0aGlzLmxpc3RlbmVycy5sZW5ndGgpIHtcbiAgICAgICAgbGlzdGVuZXIgPSB0aGlzLmxpc3RlbmVycy5wb3AoKTtcbiAgICAgICAgTGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB2YWx1ZXMgPSBfdGhpcyRwcm9wcy52YWx1ZXMsXG4gICAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMuc3R5bGUsXG4gICAgICAgICAgaXRlbUNsYXNzTmFtZSA9IF90aGlzJHByb3BzLml0ZW1DbGFzc05hbWUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGl0ZW1TdHlsZSA9IF90aGlzJHByb3BzLml0ZW1TdHlsZTtcbiAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwicnRhX19saXN0IFwiLmNvbmNhdChjbGFzc05hbWUgfHwgXCJcIiksXG4gICAgICAgIHN0eWxlOiBzdHlsZVxuICAgICAgfSwgdmFsdWVzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChJdGVtLCB7XG4gICAgICAgICAga2V5OiBfdGhpczMuZ2V0SWQoaXRlbSksXG4gICAgICAgICAgaW5uZXJSZWY6IGZ1bmN0aW9uIGlubmVyUmVmKHJlZikge1xuICAgICAgICAgICAgX3RoaXMzLml0ZW1zUmVmW190aGlzMy5nZXRJZChpdGVtKV0gPSByZWY7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZWxlY3RlZDogX3RoaXMzLmlzU2VsZWN0ZWQoaXRlbSksXG4gICAgICAgICAgaXRlbTogaXRlbSxcbiAgICAgICAgICBjbGFzc05hbWU6IGl0ZW1DbGFzc05hbWUsXG4gICAgICAgICAgc3R5bGU6IGl0ZW1TdHlsZSxcbiAgICAgICAgICBvbkNsaWNrSGFuZGxlcjogX3RoaXMzLm9uUHJlc3NFbnRlcixcbiAgICAgICAgICBvblNlbGVjdEhhbmRsZXI6IF90aGlzMy5zZWxlY3RJdGVtLFxuICAgICAgICAgIGNvbXBvbmVudDogY29tcG9uZW50XG4gICAgICAgIH0pO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMaXN0O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5mdW5jdGlvbiBkZWZhdWx0U2Nyb2xsVG9JdGVtKGNvbnRhaW5lciwgaXRlbSkge1xuICB2YXIgaXRlbUhlaWdodCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoaXRlbSkuZ2V0UHJvcGVydHlWYWx1ZShcImhlaWdodFwiKSwgMTApO1xuICB2YXIgY29udGFpbmVySGlnaHQgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGNvbnRhaW5lcikuZ2V0UHJvcGVydHlWYWx1ZShcImhlaWdodFwiKSwgMTApIC0gaXRlbUhlaWdodDtcbiAgdmFyIGl0ZW1PZmZzZXRUb3AgPSBpdGVtLm9mZnNldFRvcDtcbiAgdmFyIGFjdHVhbFNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XG5cbiAgaWYgKGl0ZW1PZmZzZXRUb3AgPCBhY3R1YWxTY3JvbGxUb3AgKyBjb250YWluZXJIaWdodCAmJiBhY3R1YWxTY3JvbGxUb3AgPCBpdGVtT2Zmc2V0VG9wKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuXG5cbiAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGl0ZW1PZmZzZXRUb3A7XG59XG5cbnZhciBERUZBVUxUX0NBUkVUX1BPU0lUSU9OID0gXCJuZXh0XCI7XG52YXIgUE9TSVRJT05fQ09ORklHVVJBVElPTiA9IHtcbiAgWDoge1xuICAgIExFRlQ6IFwicnRhX19hdXRvY29tcGxldGUtLWxlZnRcIixcbiAgICBSSUdIVDogXCJydGFfX2F1dG9jb21wbGV0ZS0tcmlnaHRcIlxuICB9LFxuICBZOiB7XG4gICAgVE9QOiBcInJ0YV9fYXV0b2NvbXBsZXRlLS10b3BcIixcbiAgICBCT1RUT006IFwicnRhX19hdXRvY29tcGxldGUtLWJvdHRvbVwiXG4gIH1cbn07XG5cbnZhciBlcnJvck1lc3NhZ2UgPSBmdW5jdGlvbiBlcnJvck1lc3NhZ2UobWVzc2FnZSkge1xuICByZXR1cm4gY29uc29sZS5lcnJvcihcIlJUQTogZGF0YVByb3ZpZGVyIGZhaWxzOiBcIi5jb25jYXQobWVzc2FnZSwgXCJcXG4gICAgXFxuQ2hlY2sgdGhlIGRvY3VtZW50YXRpb24gb3IgY3JlYXRlIGlzc3VlIGlmIHlvdSB0aGluayBpdCdzIGJ1Zy4gaHR0cHM6Ly9naXRodWIuY29tL3dlYnNjb3BlaW8vcmVhY3QtdGV4dGFyZWEtYXV0b2NvbXBsZXRlL2lzc3Vlc1wiKSk7XG59O1xuXG52YXIgcmVzZXJ2ZWRSZWdleENoYXJzID0gW1wiLlwiLCBcIl5cIiwgXCIkXCIsIFwiKlwiLCBcIitcIiwgXCItXCIsIFwiP1wiLCBcIihcIiwgXCIpXCIsIFwiW1wiLCBcIl1cIiwgXCJ7XCIsIFwifVwiLCBcIlxcXFxcIiwgXCJ8XCJdO1xuXG52YXIgZXNjYXBlUmVnZXggPSBmdW5jdGlvbiBlc2NhcGVSZWdleCh0ZXh0KSB7XG4gIHJldHVybiBfdG9Db25zdW1hYmxlQXJyYXkodGV4dCkubWFwKGZ1bmN0aW9uIChjaGFyYWN0ZXIpIHtcbiAgICByZXR1cm4gcmVzZXJ2ZWRSZWdleENoYXJzLmluY2x1ZGVzKGNoYXJhY3RlcikgPyBcIlxcXFxcIi5jb25jYXQoY2hhcmFjdGVyKSA6IGNoYXJhY3RlcjtcbiAgfSkuam9pbihcIlwiKTtcbn07IC8vIFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBjb21wb25lbnQgaXMgdG8gZmlndXJlIG91dCB0byB3aGljaCBzaWRlIHRoZSBhdXRvY29tcGxldGUgc2hvdWxkIGJlIG9wZW5lZFxuXG5cbnZhciBBdXRvY29tcGxldGUgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEF1dG9jb21wbGV0ZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gQXV0b2NvbXBsZXRlKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBdXRvY29tcGxldGUpO1xuXG4gICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihBdXRvY29tcGxldGUpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEF1dG9jb21wbGV0ZSwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgYm91bmRhcmllc0VsZW1lbnQgPSB0aGlzLnByb3BzLmJvdW5kYXJpZXNFbGVtZW50O1xuXG4gICAgICBpZiAodHlwZW9mIGJvdW5kYXJpZXNFbGVtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihib3VuZGFyaWVzRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKCFlbGVtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUlRBOiBJbnZhbGlkIHByb3AgYm91bmRhcmllc0VsZW1lbnQ6IGl0IGhhcyB0byBiZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQuXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJFbGVtID0gZWxlbTtcbiAgICAgIH0gZWxzZSBpZiAoYm91bmRhcmllc0VsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW0gPSBib3VuZGFyaWVzRWxlbWVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJUQTogSW52YWxpZCBwcm9wIGJvdW5kYXJpZXNFbGVtZW50OiBpdCBoYXMgdG8gYmUgc3RyaW5nIG9yIEhUTUxFbGVtZW50LlwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lckVsZW0gfHwgIXRoaXMuY29udGFpbmVyRWxlbS5jb250YWlucyh0aGlzLnJlZikpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInRlc3RcIikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJUQTogSW52YWxpZCBwcm9wIGJvdW5kYXJpZXNFbGVtZW50OiBpdCBoYXMgdG8gYmUgb25lIG9mIHRoZSBwYXJlbnRzIG9mIHRoZSBSVEEuXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICB2YXIgX3RoaXMkcmVmJGNsYXNzTGlzdCwgX3RoaXMkcmVmJGNsYXNzTGlzdDI7XG5cbiAgICAgIHZhciB0b3AgPSB0aGlzLnByb3BzLnRvcCB8fCAwO1xuICAgICAgdmFyIGxlZnQgPSB0aGlzLnByb3BzLmxlZnQgfHwgMDtcbiAgICAgIHZhciB1c2VkQ2xhc3NlcyA9IFtdO1xuICAgICAgdmFyIHVudXNlZENsYXNzZXMgPSBbXTtcbiAgICAgIHZhciB0b3BQb3NpdGlvbiA9IDA7XG4gICAgICB2YXIgbGVmdFBvc2l0aW9uID0gMDtcbiAgICAgIHZhciBjb250YWluZXJCb3VuZHMgPSB0aGlzLmNvbnRhaW5lckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB2YXIgZHJvcGRvd25Cb3VuZHMgPSB0aGlzLnJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHZhciB0ZXh0YXJlYUJvdW5kcyA9IHRoaXMucHJvcHMudGV4dGFyZWFSZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmKTtcbiAgICAgIHZhciBtYXJnaW5Ub3AgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoXCJtYXJnaW4tdG9wXCIpLCAxMCk7XG4gICAgICB2YXIgbWFyZ2luQm90dG9tID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwibWFyZ2luLWJvdHRvbVwiKSwgMTApO1xuICAgICAgdmFyIG1hcmdpbkxlZnQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoXCJtYXJnaW4tbGVmdFwiKSwgMTApO1xuICAgICAgdmFyIG1hcmdpblJpZ2h0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwibWFyZ2luLXJpZ2h0XCIpLCAxMCk7XG4gICAgICB2YXIgZHJvcGRvd25Cb3R0b20gPSBtYXJnaW5Ub3AgKyBtYXJnaW5Cb3R0b20gKyB0ZXh0YXJlYUJvdW5kcy50b3AgKyB0b3AgKyBkcm9wZG93bkJvdW5kcy5oZWlnaHQ7XG4gICAgICB2YXIgZHJvcGRvd25SaWdodCA9IG1hcmdpbkxlZnQgKyBtYXJnaW5SaWdodCArIHRleHRhcmVhQm91bmRzLmxlZnQgKyBsZWZ0ICsgZHJvcGRvd25Cb3VuZHMud2lkdGg7XG5cbiAgICAgIGlmIChkcm9wZG93blJpZ2h0ID4gY29udGFpbmVyQm91bmRzLnJpZ2h0ICYmIHRleHRhcmVhQm91bmRzLmxlZnQgKyBsZWZ0ID4gZHJvcGRvd25Cb3VuZHMud2lkdGgpIHtcbiAgICAgICAgbGVmdFBvc2l0aW9uID0gbGVmdCAtIGRyb3Bkb3duQm91bmRzLndpZHRoO1xuICAgICAgICB1c2VkQ2xhc3Nlcy5wdXNoKFBPU0lUSU9OX0NPTkZJR1VSQVRJT04uWC5MRUZUKTtcbiAgICAgICAgdW51c2VkQ2xhc3Nlcy5wdXNoKFBPU0lUSU9OX0NPTkZJR1VSQVRJT04uWC5SSUdIVCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZWZ0UG9zaXRpb24gPSBsZWZ0O1xuICAgICAgICB1c2VkQ2xhc3Nlcy5wdXNoKFBPU0lUSU9OX0NPTkZJR1VSQVRJT04uWC5SSUdIVCk7XG4gICAgICAgIHVudXNlZENsYXNzZXMucHVzaChQT1NJVElPTl9DT05GSUdVUkFUSU9OLlguTEVGVCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkcm9wZG93bkJvdHRvbSA+IGNvbnRhaW5lckJvdW5kcy5ib3R0b20gJiYgdGV4dGFyZWFCb3VuZHMudG9wICsgdG9wID4gZHJvcGRvd25Cb3VuZHMuaGVpZ2h0KSB7XG4gICAgICAgIHRvcFBvc2l0aW9uID0gdG9wIC0gZHJvcGRvd25Cb3VuZHMuaGVpZ2h0O1xuICAgICAgICB1c2VkQ2xhc3Nlcy5wdXNoKFBPU0lUSU9OX0NPTkZJR1VSQVRJT04uWS5UT1ApO1xuICAgICAgICB1bnVzZWRDbGFzc2VzLnB1c2goUE9TSVRJT05fQ09ORklHVVJBVElPTi5ZLkJPVFRPTSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b3BQb3NpdGlvbiA9IHRvcDtcbiAgICAgICAgdXNlZENsYXNzZXMucHVzaChQT1NJVElPTl9DT05GSUdVUkFUSU9OLlkuQk9UVE9NKTtcbiAgICAgICAgdW51c2VkQ2xhc3Nlcy5wdXNoKFBPU0lUSU9OX0NPTkZJR1VSQVRJT04uWS5UT1ApO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5yZW5kZXJUb0JvZHkpIHtcbiAgICAgICAgdG9wUG9zaXRpb24gKz0gdGV4dGFyZWFCb3VuZHMudG9wO1xuICAgICAgICBsZWZ0UG9zaXRpb24gKz0gdGV4dGFyZWFCb3VuZHMubGVmdDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZWYuc3R5bGUudG9wID0gXCJcIi5jb25jYXQodG9wUG9zaXRpb24sIFwicHhcIik7XG4gICAgICB0aGlzLnJlZi5zdHlsZS5sZWZ0ID0gXCJcIi5jb25jYXQobGVmdFBvc2l0aW9uLCBcInB4XCIpO1xuXG4gICAgICAoX3RoaXMkcmVmJGNsYXNzTGlzdCA9IHRoaXMucmVmLmNsYXNzTGlzdCkucmVtb3ZlLmFwcGx5KF90aGlzJHJlZiRjbGFzc0xpc3QsIHVudXNlZENsYXNzZXMpO1xuXG4gICAgICAoX3RoaXMkcmVmJGNsYXNzTGlzdDIgPSB0aGlzLnJlZi5jbGFzc0xpc3QpLmFkZC5hcHBseShfdGhpcyRyZWYkY2xhc3NMaXN0MiwgdXNlZENsYXNzZXMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBzdHlsZSA9IF90aGlzJHByb3BzLnN0eWxlLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBpbm5lclJlZiA9IF90aGlzJHByb3BzLmlubmVyUmVmLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgcmVuZGVyVG9Cb2R5ID0gX3RoaXMkcHJvcHMucmVuZGVyVG9Cb2R5O1xuICAgICAgdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgICAgdmFyIGF1dG9jb21wbGV0ZUNvbnRhaW5lciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZihfcmVmKSB7XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuICAgICAgICAgIF90aGlzLnJlZiA9IF9yZWY7IC8vICRGbG93Rml4TWVcblxuICAgICAgICAgIGlubmVyUmVmKF9yZWYpO1xuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWU6IFwicnRhX19hdXRvY29tcGxldGUgXCIuY29uY2F0KGNsYXNzTmFtZSB8fCBcIlwiKSxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCBjaGlsZHJlbik7XG4gICAgICByZXR1cm4gcmVuZGVyVG9Cb2R5ICYmIGJvZHkgIT09IG51bGwgPyBSZWFjdERPTS5jcmVhdGVQb3J0YWwoYXV0b2NvbXBsZXRlQ29udGFpbmVyLCBib2R5KSA6IGF1dG9jb21wbGV0ZUNvbnRhaW5lcjtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQXV0b2NvbXBsZXRlO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG52YXIgUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZSA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudDIpIHtcbiAgX2luaGVyaXRzKFJlYWN0VGV4dGFyZWFBdXRvY29tcGxldGUsIF9SZWFjdCRDb21wb25lbnQyKTtcblxuICBmdW5jdGlvbiBSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlKF9wcm9wcykge1xuICAgIHZhciBfdGhpczI7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZSk7XG5cbiAgICBfdGhpczIgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfZ2V0UHJvdG90eXBlT2YoUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZSkuY2FsbCh0aGlzLCBfcHJvcHMpKTtcbiAgICBfdGhpczIuc3RhdGUgPSB7XG4gICAgICB0b3A6IG51bGwsXG4gICAgICBsZWZ0OiBudWxsLFxuICAgICAgY3VycmVudFRyaWdnZXI6IG51bGwsXG4gICAgICBhY3R1YWxUb2tlbjogXCJcIixcbiAgICAgIGRhdGE6IG51bGwsXG4gICAgICB2YWx1ZTogXCJcIixcbiAgICAgIGRhdGFMb2FkaW5nOiBmYWxzZSxcbiAgICAgIHNlbGVjdGlvbkVuZDogMCxcbiAgICAgIGNvbXBvbmVudDogbnVsbCxcbiAgICAgIHRleHRUb1JlcGxhY2U6IG51bGxcbiAgICB9O1xuXG4gICAgX3RoaXMyLmVzY0xpc3RlbmVySW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghX3RoaXMyLmVzY0xpc3RlbmVyKSB7XG4gICAgICAgIF90aGlzMi5lc2NMaXN0ZW5lciA9IExpc3RlbmVycy5hZGQoS0VZX0NPREVTLkVTQywgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzMi5lc2NMaXN0ZW5lckRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMyLmVzY0xpc3RlbmVyKSB7XG4gICAgICAgIExpc3RlbmVycy5yZW1vdmUoX3RoaXMyLmVzY0xpc3RlbmVyKTtcbiAgICAgICAgX3RoaXMyLmVzY0xpc3RlbmVyID0gbnVsbDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMyLmdldFNlbGVjdGlvblBvc2l0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFfdGhpczIudGV4dGFyZWFSZWYpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VsZWN0aW9uU3RhcnQ6IF90aGlzMi50ZXh0YXJlYVJlZi5zZWxlY3Rpb25TdGFydCxcbiAgICAgICAgc2VsZWN0aW9uRW5kOiBfdGhpczIudGV4dGFyZWFSZWYuc2VsZWN0aW9uRW5kXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpczIuZ2V0U2VsZWN0ZWRUZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFfdGhpczIudGV4dGFyZWFSZWYpIHJldHVybiBudWxsO1xuICAgICAgdmFyIF90aGlzMiR0ZXh0YXJlYVJlZiA9IF90aGlzMi50ZXh0YXJlYVJlZixcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IF90aGlzMiR0ZXh0YXJlYVJlZi5zZWxlY3Rpb25TdGFydCxcbiAgICAgICAgICBzZWxlY3Rpb25FbmQgPSBfdGhpczIkdGV4dGFyZWFSZWYuc2VsZWN0aW9uRW5kO1xuICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0ID09PSBzZWxlY3Rpb25FbmQpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIF90aGlzMi5zdGF0ZS52YWx1ZS5zdWJzdHIoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCAtIHNlbGVjdGlvblN0YXJ0KTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLnNldENhcmV0UG9zaXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgcG9zaXRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IDA7XG4gICAgICBpZiAoIV90aGlzMi50ZXh0YXJlYVJlZikgcmV0dXJuO1xuXG4gICAgICBfdGhpczIudGV4dGFyZWFSZWYuZm9jdXMoKTtcblxuICAgICAgX3RoaXMyLnRleHRhcmVhUmVmLnNldFNlbGVjdGlvblJhbmdlKHBvc2l0aW9uLCBwb3NpdGlvbik7XG4gICAgfTtcblxuICAgIF90aGlzMi5nZXRDYXJldFBvc2l0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFfdGhpczIudGV4dGFyZWFSZWYpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG5cbiAgICAgIHZhciBwb3NpdGlvbiA9IF90aGlzMi50ZXh0YXJlYVJlZi5zZWxlY3Rpb25FbmQ7XG4gICAgICByZXR1cm4gcG9zaXRpb247XG4gICAgfTtcblxuICAgIF90aGlzMi5faGFuZGxlQ2FyZXRDaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIGNsZWFuTGFzdFRyaWdnZXIgPSBmdW5jdGlvbiBjbGVhbkxhc3RUcmlnZ2VyKCkge1xuICAgICAgICB2YXIgYmVmb3JlSGFuZGxlID0gX3RoaXMyLmdldENhcmV0UG9zaXRpb24oKSAtIDE7XG4gICAgICAgIF90aGlzMi5sYXN0VHJpZ2dlciA9IF90aGlzMi5sYXN0VHJpZ2dlciA/IGJlZm9yZUhhbmRsZSA6IDA7XG4gICAgICB9O1xuXG4gICAgICBpZiAoZS50eXBlID09PSBcImtleWRvd25cIikge1xuICAgICAgICAvLyAkRmxvd0ZpeE1lXG4gICAgICAgIHZhciBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XG5cbiAgICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgICAgY2FzZSBLRVlfQ09ERVMuVVA6XG4gICAgICAgICAgY2FzZSBLRVlfQ09ERVMuRE9XTjpcbiAgICAgICAgICAgIGlmICghX3RoaXMyLl9pc0F1dG9jb21wbGV0ZU9wZW4oKSkge1xuICAgICAgICAgICAgICBjbGVhbkxhc3RUcmlnZ2VyKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSBLRVlfQ09ERVMuTEVGVDpcbiAgICAgICAgICBjYXNlIEtFWV9DT0RFUy5SSUdIVDpcbiAgICAgICAgICAgIGNsZWFuTGFzdFRyaWdnZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY2xlYW5MYXN0VHJpZ2dlcigpO1xuICAgIH07XG5cbiAgICBfdGhpczIuX29uU2VsZWN0ID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBfdGhpczIkc3RhdGUgPSBfdGhpczIuc3RhdGUsXG4gICAgICAgICAgc2VsZWN0aW9uRW5kID0gX3RoaXMyJHN0YXRlLnNlbGVjdGlvbkVuZCxcbiAgICAgICAgICBjdXJyZW50VHJpZ2dlciA9IF90aGlzMiRzdGF0ZS5jdXJyZW50VHJpZ2dlcixcbiAgICAgICAgICB0ZXh0YXJlYVZhbHVlID0gX3RoaXMyJHN0YXRlLnZhbHVlO1xuICAgICAgdmFyIG9uSXRlbVNlbGVjdGVkID0gX3RoaXMyLnByb3BzLm9uSXRlbVNlbGVjdGVkO1xuICAgICAgaWYgKCFjdXJyZW50VHJpZ2dlcikgcmV0dXJuO1xuXG4gICAgICB2YXIgZ2V0VGV4dFRvUmVwbGFjZUZvckN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyLl9nZXRUZXh0VG9SZXBsYWNlKGN1cnJlbnRUcmlnZ2VyKTtcblxuICAgICAgaWYgKCFnZXRUZXh0VG9SZXBsYWNlRm9yQ3VycmVudFRyaWdnZXIpIHtcbiAgICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIG5ld1Rva2VuID0gZ2V0VGV4dFRvUmVwbGFjZUZvckN1cnJlbnRUcmlnZ2VyKGl0ZW0pO1xuXG4gICAgICBpZiAoIW5ld1Rva2VuKSB7XG4gICAgICAgIF90aGlzMi5fY2xvc2VBdXRvY29tcGxldGUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChvbkl0ZW1TZWxlY3RlZCkge1xuICAgICAgICBvbkl0ZW1TZWxlY3RlZCh7XG4gICAgICAgICAgY3VycmVudFRyaWdnZXI6IGN1cnJlbnRUcmlnZ2VyLFxuICAgICAgICAgIGl0ZW06IGl0ZW1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBjb21wdXRlQ2FyZXRQb3NpdGlvbiA9IGZ1bmN0aW9uIGNvbXB1dGVDYXJldFBvc2l0aW9uKHBvc2l0aW9uLCB0b2tlbiwgc3RhcnRUb2tlbikge1xuICAgICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgICAgICAgY2FzZSBcInN0YXJ0XCI6XG4gICAgICAgICAgICByZXR1cm4gc3RhcnRUb2tlbjtcblxuICAgICAgICAgIGNhc2UgXCJuZXh0XCI6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0VG9rZW4gKyB0b2tlbi5sZW5ndGg7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHBvc2l0aW9uKSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JUQTogY2FyZXRQb3NpdGlvbiBzaG91bGQgYmUgXCJzdGFydFwiLCBcIm5leHRcIiwgXCJlbmRcIiBvciBudW1iZXIuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdmFyIHRleHRUb01vZGlmeSA9IHRleHRhcmVhVmFsdWUuc2xpY2UoMCwgc2VsZWN0aW9uRW5kKTtcbiAgICAgIC8qKlxuICAgICAgICogSXQncyBpbXBvcnRhbnQgdG8gZXNjYXBlIHRoZSBjdXJyZW50VHJpZ2dlciBjaGFyIGZvciBjaGFycyBsaWtlIFssICgsLi4uXG4gICAgICAgKiBUaGlzIGlzIGEgcmlkaWN1bG91cyBkYXJrIG1hZ2ljLCBiYXNpY2FsbHkgd2UgZm91bmQgcG9zaXRpb24gb2YgdGhlIGxhc3QgY3VycmVudCB0b2tlbiAoZnJvbSBjdXJyZW50IHRyaWdnZXIpIGFuZCB0aGVuIHdlIHJlcGxhY2UgdGhlIHRleHQgZnJvbSB0aGF0IHBvc2l0aW9uIChjYWxjdWxhdGluZyB0aGUgb2Zmc2V0KVxuICAgICAgICovXG5cbiAgICAgIHZhciBlc2NhcGVkQ3VycmVudFRyaWdnZXIgPSBlc2NhcGVSZWdleChjdXJyZW50VHJpZ2dlcik7XG4gICAgICB2YXIgdHJpZ2dlck9mZnNldCA9IHRleHRUb01vZGlmeS5sZW5ndGggLSB0ZXh0VG9Nb2RpZnkubGFzdEluZGV4T2YoY3VycmVudFRyaWdnZXIpO1xuICAgICAgdmFyIHN0YXJ0T2ZUb2tlblBvc2l0aW9uID0gdGV4dFRvTW9kaWZ5LnNlYXJjaChuZXcgUmVnRXhwKFwiKD8hXCIuY29uY2F0KGVzY2FwZWRDdXJyZW50VHJpZ2dlciwgXCIpJFwiKSkpIC0gdHJpZ2dlck9mZnNldDsgLy8gd2UgYWRkIHNwYWNlIGFmdGVyIGVtb2ppIGlzIHNlbGVjdGVkIGlmIGEgY2FyZXQgcG9zaXRpb24gaXMgbmV4dFxuXG4gICAgICB2YXIgbmV3VG9rZW5TdHJpbmcgPSBuZXdUb2tlbi5jYXJldFBvc2l0aW9uID09PSBcIm5leHRcIiA/IFwiXCIuY29uY2F0KG5ld1Rva2VuLnRleHQsIFwiIFwiKSA6IG5ld1Rva2VuLnRleHQ7XG4gICAgICB2YXIgbmV3Q2FyZXRQb3NpdGlvbiA9IGNvbXB1dGVDYXJldFBvc2l0aW9uKG5ld1Rva2VuLmNhcmV0UG9zaXRpb24sIG5ld1Rva2VuU3RyaW5nLCBzdGFydE9mVG9rZW5Qb3NpdGlvbik7XG4gICAgICB2YXIgbW9kaWZpZWRUZXh0ID0gdGV4dFRvTW9kaWZ5LnN1YnN0cmluZygwLCBzdGFydE9mVG9rZW5Qb3NpdGlvbikgKyBuZXdUb2tlblN0cmluZztcbiAgICAgIHZhciBuZXdWYWx1ZSA9IHRleHRhcmVhVmFsdWUucmVwbGFjZSh0ZXh0VG9Nb2RpZnksIG1vZGlmaWVkVGV4dCk7IC8vIHNldCB0aGUgbmV3IHRleHRhcmVhIHZhbHVlIGFuZCBhZnRlciB0aGF0IHNldCB0aGUgY2FyZXQgYmFjayB0byBpdHMgcG9zaXRpb25cblxuICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICBkYXRhTG9hZGluZzogZmFsc2VcbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc2VydGVkVHJpZ2dlciA9IF90aGlzMi50b2tlblJlZ0V4cEVuZGluZy5leGVjKG5ld1Rva2VuU3RyaW5nKTtcblxuICAgICAgICB2YXIgaW5zZXJ0ZWRUcmlnZ2VyTW9kaWZpZXIgPSBpbnNlcnRlZFRyaWdnZXIgPyBpbnNlcnRlZFRyaWdnZXJbMF0ubGVuZ3RoIDogMTtcbiAgICAgICAgX3RoaXMyLmxhc3RUcmlnZ2VyID0gbmV3Q2FyZXRQb3NpdGlvbiA/IG5ld0NhcmV0UG9zaXRpb24gLSBpbnNlcnRlZFRyaWdnZXJNb2RpZmllciA6IG5ld0NhcmV0UG9zaXRpb247XG4gICAgICAgIF90aGlzMi50ZXh0YXJlYVJlZi52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICBfdGhpczIudGV4dGFyZWFSZWYuc2VsZWN0aW9uRW5kID0gbmV3Q2FyZXRQb3NpdGlvbjtcblxuICAgICAgICBfdGhpczIuX2NoYW5nZUhhbmRsZXIoKTtcblxuICAgICAgICB2YXIgc2Nyb2xsVG9wID0gX3RoaXMyLnRleHRhcmVhUmVmLnNjcm9sbFRvcDtcblxuICAgICAgICBfdGhpczIuc2V0Q2FyZXRQb3NpdGlvbihuZXdDYXJldFBvc2l0aW9uKTtcbiAgICAgICAgLypcbiAgICAgICAgICBDaHJvbWUgZG9lcyBub3QgbWFpbnRhaW4gc2Nyb2xsIHBvc2l0aW9uXG4gICAgICAgICAgUmVsZXZhbnQgZGlzY3Vzc2lvbiBodHRwczovL2dpdGh1Yi5jb20vd2Vic2NvcGVpby9yZWFjdC10ZXh0YXJlYS1hdXRvY29tcGxldGUvcHVsbC85N1xuICAgICAgICAqL1xuXG5cbiAgICAgICAgaWYgKHdpbmRvdy5jaHJvbWUpIHtcbiAgICAgICAgICBfdGhpczIudGV4dGFyZWFSZWYuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9nZXRUZXh0VG9SZXBsYWNlID0gZnVuY3Rpb24gKGN1cnJlbnRUcmlnZ2VyKSB7XG4gICAgICB2YXIgdHJpZ2dlclNldHRpbmdzID0gX3RoaXMyLnByb3BzLnRyaWdnZXJbY3VycmVudFRyaWdnZXJdO1xuICAgICAgaWYgKCFjdXJyZW50VHJpZ2dlciB8fCAhdHJpZ2dlclNldHRpbmdzKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBvdXRwdXQgPSB0cmlnZ2VyU2V0dGluZ3Mub3V0cHV0O1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJvYmplY3RcIiAmJiAoIW91dHB1dCB8fCB0eXBlb2Ygb3V0cHV0ICE9PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPdXRwdXQgZnVuY3RvciBpcyBub3QgZGVmaW5lZCEgSWYgeW91IGFyZSB1c2luZyBpdGVtcyBhcyBvYmplY3QgeW91IGhhdmUgdG8gZGVmaW5lIFwib3V0cHV0XCIgZnVuY3Rpb24uIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJzY29wZWlvL3JlYWN0LXRleHRhcmVhLWF1dG9jb21wbGV0ZSN0cmlnZ2VyLXR5cGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvdXRwdXQpIHtcbiAgICAgICAgICB2YXIgdGV4dFRvUmVwbGFjZSA9IG91dHB1dChpdGVtLCBjdXJyZW50VHJpZ2dlcik7XG5cbiAgICAgICAgICBpZiAodGV4dFRvUmVwbGFjZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0ZXh0VG9SZXBsYWNlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPdXRwdXQgZnVuY3RvciBzaG91bGQgcmV0dXJuIHN0cmluZyBvciBvYmplY3QgaW4gc2hhcGUge3RleHQ6IHN0cmluZywgY2FyZXRQb3NpdGlvbjogc3RyaW5nIHwgbnVtYmVyfS5cXG5Hb3QgXFxcIlwiLmNvbmNhdChTdHJpbmcodGV4dFRvUmVwbGFjZSksIFwiXFxcIi4gQ2hlY2sgdGhlIGltcGxlbWVudGF0aW9uIGZvciB0cmlnZ2VyIFxcXCJcIikuY29uY2F0KGN1cnJlbnRUcmlnZ2VyLCBcIlxcXCJcXG5cXG5TZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnNjb3BlaW8vcmVhY3QtdGV4dGFyZWEtYXV0b2NvbXBsZXRlI3RyaWdnZXItdHlwZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cXG5cIikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0ZXh0VG9SZXBsYWNlID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgIGlmICh0eXBlb2YgdGV4dFRvUmVwbGFjZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdGV4dDogdGV4dFRvUmVwbGFjZSxcbiAgICAgICAgICAgICAgY2FyZXRQb3NpdGlvbjogREVGQVVMVF9DQVJFVF9QT1NJVElPTlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXRleHRUb1JlcGxhY2UudGV4dCAmJiB0eXBlb2YgdGV4dFRvUmVwbGFjZS50ZXh0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT3V0cHV0IFxcXCJ0ZXh0XFxcIiBpcyBub3QgZGVmaW5lZCEgT2JqZWN0IHNob3VsZCBoYXMgc2hhcGUge3RleHQ6IHN0cmluZywgY2FyZXRQb3NpdGlvbjogc3RyaW5nIHwgbnVtYmVyfS4gQ2hlY2sgdGhlIGltcGxlbWVudGF0aW9uIGZvciB0cmlnZ2VyIFxcXCJcIi5jb25jYXQoY3VycmVudFRyaWdnZXIsIFwiXFxcIlxcblwiKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCF0ZXh0VG9SZXBsYWNlLmNhcmV0UG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk91dHB1dCBcXFwiY2FyZXRQb3NpdGlvblxcXCIgaXMgbm90IGRlZmluZWQhIE9iamVjdCBzaG91bGQgaGFzIHNoYXBlIHt0ZXh0OiBzdHJpbmcsIGNhcmV0UG9zaXRpb246IHN0cmluZyB8IG51bWJlcn0uIENoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgdHJpZ2dlciBcXFwiXCIuY29uY2F0KGN1cnJlbnRUcmlnZ2VyLCBcIlxcXCJcXG5cIikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0ZXh0VG9SZXBsYWNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT3V0cHV0IGl0ZW0gc2hvdWxkIGJlIHN0cmluZ1xcblwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdGV4dDogXCJcIi5jb25jYXQoY3VycmVudFRyaWdnZXIpLmNvbmNhdChpdGVtKS5jb25jYXQoY3VycmVudFRyaWdnZXIpLFxuICAgICAgICAgIGNhcmV0UG9zaXRpb246IERFRkFVTFRfQ0FSRVRfUE9TSVRJT05cbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIF90aGlzMi5fZ2V0Q3VycmVudFRyaWdnZXJTZXR0aW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBjdXJyZW50VHJpZ2dlciA9IF90aGlzMi5zdGF0ZS5jdXJyZW50VHJpZ2dlcjtcbiAgICAgIGlmICghY3VycmVudFRyaWdnZXIpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIF90aGlzMi5wcm9wcy50cmlnZ2VyW2N1cnJlbnRUcmlnZ2VyXTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9nZXRWYWx1ZXNGcm9tUHJvdmlkZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3RoaXMyJHN0YXRlMiA9IF90aGlzMi5zdGF0ZSxcbiAgICAgICAgICBjdXJyZW50VHJpZ2dlciA9IF90aGlzMiRzdGF0ZTIuY3VycmVudFRyaWdnZXIsXG4gICAgICAgICAgYWN0dWFsVG9rZW4gPSBfdGhpczIkc3RhdGUyLmFjdHVhbFRva2VuO1xuXG4gICAgICB2YXIgdHJpZ2dlclNldHRpbmdzID0gX3RoaXMyLl9nZXRDdXJyZW50VHJpZ2dlclNldHRpbmdzKCk7XG5cbiAgICAgIGlmICghY3VycmVudFRyaWdnZXIgfHwgIXRyaWdnZXJTZXR0aW5ncykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBkYXRhUHJvdmlkZXIgPSB0cmlnZ2VyU2V0dGluZ3MuZGF0YVByb3ZpZGVyLFxuICAgICAgICAgIGNvbXBvbmVudCA9IHRyaWdnZXJTZXR0aW5ncy5jb21wb25lbnQ7XG5cbiAgICAgIGlmICh0eXBlb2YgZGF0YVByb3ZpZGVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHJpZ2dlciBwcm92aWRlciBoYXMgdG8gYmUgYSBmdW5jdGlvbiFcIik7XG4gICAgICB9XG5cbiAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgIGRhdGFMb2FkaW5nOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgdmFyIHByb3ZpZGVkRGF0YSA9IGRhdGFQcm92aWRlcihhY3R1YWxUb2tlbik7XG5cbiAgICAgIGlmICghKHByb3ZpZGVkRGF0YSBpbnN0YW5jZW9mIFByb21pc2UpKSB7XG4gICAgICAgIHByb3ZpZGVkRGF0YSA9IFByb21pc2UucmVzb2x2ZShwcm92aWRlZERhdGEpO1xuICAgICAgfVxuXG4gICAgICBwcm92aWRlZERhdGEudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmlnZ2VyIHByb3ZpZGVyIGhhcyB0byBwcm92aWRlIGFuIGFycmF5IVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgY29tcG9uZW50ICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb21wb25lbnQgc2hvdWxkIGJlIGRlZmluZWQhXCIpO1xuICAgICAgICB9IC8vIHRocm93IGF3YXkgaWYgd2UgcmVzb2x2ZWQgb2xkIHRyaWdnZXJcblxuXG4gICAgICAgIGlmIChjdXJyZW50VHJpZ2dlciAhPT0gX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyKSByZXR1cm47IC8vIGlmIHdlIGhhdmVuJ3QgcmVzb2x2ZWQgYW55IGRhdGEgbGV0J3MgY2xvc2UgdGhlIGF1dG9jb21wbGV0ZVxuXG4gICAgICAgIGlmICghZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgIGRhdGFMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGNvbXBvbmVudDogY29tcG9uZW50XG4gICAgICAgIH0pO1xuICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZShlLm1lc3NhZ2UpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzMi5fZ2V0U3VnZ2VzdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3RoaXMyJHN0YXRlMyA9IF90aGlzMi5zdGF0ZSxcbiAgICAgICAgICBjdXJyZW50VHJpZ2dlciA9IF90aGlzMiRzdGF0ZTMuY3VycmVudFRyaWdnZXIsXG4gICAgICAgICAgZGF0YSA9IF90aGlzMiRzdGF0ZTMuZGF0YTtcbiAgICAgIGlmICghY3VycmVudFRyaWdnZXIgfHwgIWRhdGEgfHwgZGF0YSAmJiAhZGF0YS5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcblxuICAgIF90aGlzMi5fY3JlYXRlUmVnRXhwID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHRyaWdnZXIgPSBfdGhpczIucHJvcHMudHJpZ2dlcjsgLy8gbmVnYXRpdmUgbG9va2FoZWFkIHRvIG1hdGNoIG9ubHkgdGhlIHRyaWdnZXIgKyB0aGUgYWN0dWFsIHRva2VuID0gXCJibGFkaHdkOmFkYXdkOndvcmQgdGVzdFwiID0+IFwiOndvcmRcIlxuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzgwNTc4MjcvMjcxOTkxN1xuXG4gICAgICBfdGhpczIudG9rZW5SZWdFeHAgPSBuZXcgUmVnRXhwKFwiKFwiLmNvbmNhdChPYmplY3Qua2V5cyh0cmlnZ2VyKSAvLyB0aGUgc29ydCBpcyBpbXBvcnRhbnQgZm9yIG11bHRpLWNoYXIgY29tYm9zIGFzIFwiL2tpY2tcIiwgXCIvXCJcbiAgICAgIC5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgIGlmIChhIDwgYikge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGEgPiBiKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9KS5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIGVzY2FwZVJlZ2V4KGEpO1xuICAgICAgfSkuam9pbihcInxcIiksIFwiKSgoPzooPyFcXFxcMSlbXlxcXFxzXSkqJClcIikpO1xuICAgICAgX3RoaXMyLnRva2VuUmVnRXhwRW5kaW5nID0gbmV3IFJlZ0V4cChcIihcIi5jb25jYXQoT2JqZWN0LmtleXModHJpZ2dlcikgLy8gdGhlIHNvcnQgaXMgaW1wb3J0YW50IGZvciBtdWx0aS1jaGFyIGNvbWJvcyBhcyBcIi9raWNrXCIsIFwiL1wiXG4gICAgICAuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICBpZiAoYSA8IGIpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhID4gYikge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSkubWFwKGZ1bmN0aW9uIChhKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVSZWdleChhKTtcbiAgICAgIH0pLmpvaW4oXCJ8XCIpLCBcIikkXCIpKTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBjdXJyZW50VHJpZ2dlciA9IF90aGlzMi5zdGF0ZS5jdXJyZW50VHJpZ2dlcjtcblxuICAgICAgX3RoaXMyLmVzY0xpc3RlbmVyRGVzdHJveSgpO1xuXG4gICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBkYXRhTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGN1cnJlbnRUcmlnZ2VyOiBudWxsXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChjdXJyZW50VHJpZ2dlcikgX3RoaXMyLl9vbkl0ZW1IaWdobGlnaHRlZEhhbmRsZXIobnVsbCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9jbGVhblVwUHJvcHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgcHJvcHMgPSBfb2JqZWN0U3ByZWFkKHt9LCBfdGhpczIucHJvcHMpO1xuXG4gICAgICB2YXIgbm90U2FmZSA9IFtcImxvYWRpbmdDb21wb25lbnRcIiwgXCJib3VuZGFyaWVzRWxlbWVudFwiLCBcImNvbnRhaW5lclN0eWxlXCIsIFwibWluQ2hhclwiLCBcInNjcm9sbFRvSXRlbVwiLCBcInJlZlwiLCBcImlubmVyUmVmXCIsIFwib25DaGFuZ2VcIiwgXCJvbkNhcmV0UG9zaXRpb25DaGFuZ2VcIiwgXCJjbGFzc05hbWVcIiwgXCJ2YWx1ZVwiLCBcInRyaWdnZXJcIiwgXCJsaXN0U3R5bGVcIiwgXCJpdGVtU3R5bGVcIiwgXCJjb250YWluZXJTdHlsZVwiLCBcImxvYWRlclN0eWxlXCIsIFwiY2xhc3NOYW1lXCIsIFwiY29udGFpbmVyQ2xhc3NOYW1lXCIsIFwibGlzdENsYXNzTmFtZVwiLCBcIml0ZW1DbGFzc05hbWVcIiwgXCJsb2FkZXJDbGFzc05hbWVcIiwgXCJkcm9wZG93blN0eWxlXCIsIFwiZHJvcGRvd25DbGFzc05hbWVcIiwgXCJtb3ZlUG9wdXBBc1lvdVR5cGVcIiwgXCJ0ZXh0QXJlYUNvbXBvbmVudFwiLCBcInJlbmRlclRvQm9keVwiLCBcIm9uSXRlbVNlbGVjdGVkXCIsIFwib25JdGVtSGlnaGxpZ2h0ZWRcIl07IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuXG4gICAgICBmb3IgKHZhciBwcm9wIGluIHByb3BzKSB7XG4gICAgICAgIGlmIChub3RTYWZlLmluY2x1ZGVzKHByb3ApKSBkZWxldGUgcHJvcHNbcHJvcF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcm9wcztcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9jaGFuZ2VIYW5kbGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpczIkcHJvcHMgPSBfdGhpczIucHJvcHMsXG4gICAgICAgICAgdHJpZ2dlciA9IF90aGlzMiRwcm9wcy50cmlnZ2VyLFxuICAgICAgICAgIG9uQ2hhbmdlID0gX3RoaXMyJHByb3BzLm9uQ2hhbmdlLFxuICAgICAgICAgIG1pbkNoYXIgPSBfdGhpczIkcHJvcHMubWluQ2hhcixcbiAgICAgICAgICBvbkNhcmV0UG9zaXRpb25DaGFuZ2UgPSBfdGhpczIkcHJvcHMub25DYXJldFBvc2l0aW9uQ2hhbmdlLFxuICAgICAgICAgIG1vdmVQb3B1cEFzWW91VHlwZSA9IF90aGlzMiRwcm9wcy5tb3ZlUG9wdXBBc1lvdVR5cGU7XG4gICAgICB2YXIgX3RoaXMyJHN0YXRlNCA9IF90aGlzMi5zdGF0ZSxcbiAgICAgICAgICB0b3AgPSBfdGhpczIkc3RhdGU0LnRvcCxcbiAgICAgICAgICBsZWZ0ID0gX3RoaXMyJHN0YXRlNC5sZWZ0O1xuICAgICAgdmFyIGV2ZW50ID0gZTtcblxuICAgICAgaWYgKCFldmVudCkge1xuICAgICAgICAvLyBmaXJlIG9uQ2hhbmdlIGV2ZW50IGFmdGVyIHN1Y2Nlc3NmdWwgc2VsZWN0aW9uXG4gICAgICAgIGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KFwiY2hhbmdlXCIsIHtcbiAgICAgICAgICBidWJibGVzOiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIF90aGlzMi50ZXh0YXJlYVJlZi5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgdmFyIHRleHRhcmVhID0gZXZlbnQudGFyZ2V0IHx8IF90aGlzMi50ZXh0YXJlYVJlZjsgLy8gZmFsbGJhY2sgdG8gc3VwcG9ydCBTaGFkb3cgRE9NXG5cbiAgICAgIHZhciBzZWxlY3Rpb25FbmQgPSB0ZXh0YXJlYS5zZWxlY3Rpb25FbmQ7XG4gICAgICB2YXIgdmFsdWUgPSB0ZXh0YXJlYS52YWx1ZTtcbiAgICAgIF90aGlzMi5sYXN0VmFsdWVCdWJibGVkRXZlbnQgPSB2YWx1ZTtcblxuICAgICAgaWYgKG9uQ2hhbmdlICYmIGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnBlcnNpc3QgJiYgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICBvbkNoYW5nZShuZXcgUHJveHkoZXZlbnQsIHtcbiAgICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldChvcmlnaW5hbCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSBcInRhcmdldFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0ZXh0YXJlYTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KG9yaWdpbmFsLCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvbkNhcmV0UG9zaXRpb25DaGFuZ2UpIHtcbiAgICAgICAgdmFyIGNhcmV0UG9zaXRpb24gPSBfdGhpczIuZ2V0Q2FyZXRQb3NpdGlvbigpO1xuXG4gICAgICAgIG9uQ2FyZXRQb3NpdGlvbkNoYW5nZShjYXJldFBvc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICB9KTtcblxuICAgICAgdmFyIHNldFRvcExlZnQgPSBmdW5jdGlvbiBzZXRUb3BMZWZ0KCkge1xuICAgICAgICB2YXIgX2dldENhcmV0Q29vcmRpbmF0ZXMgPSBnZXRDYXJldENvb3JkaW5hdGVzKHRleHRhcmVhLCBzZWxlY3Rpb25FbmQpLFxuICAgICAgICAgICAgbmV3VG9wID0gX2dldENhcmV0Q29vcmRpbmF0ZXMudG9wLFxuICAgICAgICAgICAgbmV3TGVmdCA9IF9nZXRDYXJldENvb3JkaW5hdGVzLmxlZnQ7XG5cbiAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAvLyBtYWtlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRleHRhcmVhXG4gICAgICAgICAgdG9wOiBuZXdUb3AgLSBfdGhpczIudGV4dGFyZWFSZWYuc2Nyb2xsVG9wIHx8IDAsXG4gICAgICAgICAgbGVmdDogbmV3TGVmdFxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHZhciBjbGVhbkxhc3RUcmlnZ2VyID0gZnVuY3Rpb24gY2xlYW5MYXN0VHJpZ2dlcih0cmlnZ2VyTGVuZ3RoKSB7XG4gICAgICAgIF90aGlzMi5sYXN0VHJpZ2dlciA9IHNlbGVjdGlvbkVuZCAtIHRyaWdnZXJMZW5ndGg7XG5cbiAgICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuXG4gICAgICAgIHNldFRvcExlZnQoKTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChzZWxlY3Rpb25FbmQgPD0gX3RoaXMyLmxhc3RUcmlnZ2VyKSB7XG4gICAgICAgIHZhciBfYWZmZWN0ZWRUZXh0YXJlYVZhbHVlID0gdmFsdWUuc2xpY2UoMCwgc2VsZWN0aW9uRW5kKTtcblxuICAgICAgICB2YXIgX25ld1RyaWdnZXIgPSBfdGhpczIudG9rZW5SZWdFeHAuZXhlYyhfYWZmZWN0ZWRUZXh0YXJlYVZhbHVlKTtcblxuICAgICAgICBjbGVhbkxhc3RUcmlnZ2VyKF9uZXdUcmlnZ2VyID8gX25ld1RyaWdnZXJbMF0ubGVuZ3RoIDogMCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhZmZlY3RlZFRleHRhcmVhVmFsdWUgPSB2YWx1ZS5zbGljZShfdGhpczIubGFzdFRyaWdnZXIsIHNlbGVjdGlvbkVuZCk7XG5cbiAgICAgIHZhciB0b2tlbk1hdGNoID0gX3RoaXMyLnRva2VuUmVnRXhwLmV4ZWMoYWZmZWN0ZWRUZXh0YXJlYVZhbHVlKTtcblxuICAgICAgdmFyIGxhc3RUb2tlbiA9IHRva2VuTWF0Y2ggJiYgdG9rZW5NYXRjaFswXTtcbiAgICAgIHZhciBjdXJyZW50VHJpZ2dlciA9IHRva2VuTWF0Y2ggJiYgdG9rZW5NYXRjaFsxXSB8fCBudWxsO1xuICAgICAgdmFyIGN1cnJlbnRUcmlnZ2VyTGVuZ3RoID0gY3VycmVudFRyaWdnZXIgPyBjdXJyZW50VHJpZ2dlci5sZW5ndGggLSAxIDogMDsgLy8gd2l0aCB0aGlzIGFwcHJvYWNoIHdlIHdhbnQgdG8ga25vdyBpZiB0aGUgdXNlciBqdXN0IGluc2VydGVkIGEgbmV3IHRyaWdnZXIgc2VxdWVuY2VcblxuICAgICAgdmFyIG5ld1RyaWdnZXIgPSBfdGhpczIudG9rZW5SZWdFeHBFbmRpbmcuZXhlYyhhZmZlY3RlZFRleHRhcmVhVmFsdWUpO1xuXG4gICAgICBpZiAobmV3VHJpZ2dlcikge1xuICAgICAgICBjbGVhbkxhc3RUcmlnZ2VyKG5ld1RyaWdnZXJbMF0ubGVuZ3RoKTtcbiAgICAgIH0gZWxzZSBpZiAoIV90aGlzMi5faXNBdXRvY29tcGxldGVPcGVuKCkpIHtcbiAgICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgICAgLypcbiAgICAgICBpZiB3ZSBsb3N0IHRoZSB0cmlnZ2VyIHRva2VuIG9yIHRoZXJlIGlzIG5vIGZvbGxvd2luZyBjaGFyYWN0ZXIgd2Ugd2FudCB0byBjbG9zZVxuICAgICAgIHRoZSBhdXRvY29tcGxldGVcbiAgICAgICovXG5cblxuICAgICAgaWYgKCghbGFzdFRva2VuIHx8IGxhc3RUb2tlbi5sZW5ndGggPD0gbWluQ2hhciArIGN1cnJlbnRUcmlnZ2VyTGVuZ3RoKSAmJiAoIC8vIGNoZWNrIGlmIG91ciBjdXJyZW50IHRyaWdnZXIgZGlzYWxsb3dzIHdoaXRlc3BhY2VcbiAgICAgIF90aGlzMi5zdGF0ZS5jdXJyZW50VHJpZ2dlciAmJiAhdHJpZ2dlcltfdGhpczIuc3RhdGUuY3VycmVudFRyaWdnZXJdLmFsbG93V2hpdGVzcGFjZSB8fCAhX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyKSkge1xuICAgICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAgKiBUaGlzIGNvZGUgaGFzIHRvIGJlIHN5bmMgdGhhdCBpcyB0aGUgcmVhc29uIHdoeSB3ZSBvYnRhaW4gdGhlIGN1cnJlbnRUcmlnZ2VyXG4gICAgICAgKiBmcm9tIGN1cnJlbnRUcmlnZ2VyIG5vdCB0aGlzLnN0YXRlLmN1cnJlbnRUcmlnZ2VyXG4gICAgICAgKlxuICAgICAgICogQ2hlY2sgaWYgdGhlIGN1cnJlbnRseSB0eXBlZCB0b2tlbiBoYXMgdG8gYmUgYWZ0ZXJXaGl0ZXNwYWNlLCBvciBub3QuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzZXR0aW5nIG1lYW5zIHRoYXQgdGhlcmUgaGFzIHRvIGJlIHdoaXRlc3BhY2UgYmVmb3JlIHRoZSB0b2tlbiAob24gaXQgaGFzIHRvIGJlIHRoZSB0aGUgZmlyc3QgY2hhcmFjdGVyIHR5cGVkIGludG8gdGV4dGFyZWEpXG4gICAgICAgKi9cblxuXG4gICAgICBpZiAoY3VycmVudFRyaWdnZXIgJiYgdHJpZ2dlcltjdXJyZW50VHJpZ2dlcl0uYWZ0ZXJXaGl0ZXNwYWNlICYmICEvXFxzLy50ZXN0KHZhbHVlW3NlbGVjdGlvbkVuZCAtIGxhc3RUb2tlbi5sZW5ndGggLSAxXSkgJiYgdmFsdWVbc2VsZWN0aW9uRW5kIC0gbGFzdFRva2VuLmxlbmd0aCAtIDFdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8qKlxuICAgICAgICBJZiBvdXIgY3VycmVudCB0cmlnZ2VyIGFsbG93cyB3aGl0ZXNwYWNlXG4gICAgICAgIGdldCB0aGUgY29ycmVjdCB0b2tlbiBmb3IgRGF0YVByb3ZpZGVyLCBzbyB3ZSBuZWVkIHRvIGNvbnN0cnVjdCBuZXcgUmVnRXhwXG4gICAgICAgKi9cblxuXG4gICAgICBpZiAoX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyICYmIHRyaWdnZXJbX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyXS5hbGxvd1doaXRlc3BhY2UpIHtcbiAgICAgICAgdG9rZW5NYXRjaCA9IG5ldyBSZWdFeHAoXCJcIi5jb25jYXQoZXNjYXBlUmVnZXgoX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyKSwgXCIuKiRcIikpLmV4ZWModmFsdWUuc2xpY2UoMCwgc2VsZWN0aW9uRW5kKSk7XG4gICAgICAgIGxhc3RUb2tlbiA9IHRva2VuTWF0Y2ggJiYgdG9rZW5NYXRjaFswXTtcblxuICAgICAgICBpZiAoIWxhc3RUb2tlbikge1xuICAgICAgICAgIF90aGlzMi5fY2xvc2VBdXRvY29tcGxldGUoKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRUcmlnZ2VyID0gT2JqZWN0LmtleXModHJpZ2dlcikuZmluZChmdW5jdGlvbiAoYSkge1xuICAgICAgICAgIHJldHVybiBhLnNsaWNlKDAsIGN1cnJlbnRUcmlnZ2VyTGVuZ3RoICsgMSkgPT09IGxhc3RUb2tlbi5zbGljZSgwLCBjdXJyZW50VHJpZ2dlckxlbmd0aCArIDEpO1xuICAgICAgICB9KSB8fCBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWN0dWFsVG9rZW4gPSBsYXN0VG9rZW4uc2xpY2UoMSk7IC8vIGlmIHRyaWdnZXIgaXMgbm90IGNvbmZpZ3VyZWQgc3RlcCBvdXQgZnJvbSB0aGUgZnVuY3Rpb24sIG90aGVyd2lzZSBwcm9jZWVkXG5cbiAgICAgIGlmICghY3VycmVudFRyaWdnZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAobW92ZVBvcHVwQXNZb3VUeXBlIHx8IHRvcCA9PT0gbnVsbCAmJiBsZWZ0ID09PSBudWxsIHx8IC8vIGlmIHRoZSB0cmlnZ2VyIGdvdCBjaGFuZ2VkLCBsZXQncyByZXBvc2l0aW9uIHRoZSBhdXRvY29tcGxldGVcbiAgICAgIF90aGlzMi5zdGF0ZS5jdXJyZW50VHJpZ2dlciAhPT0gY3VycmVudFRyaWdnZXIpIHtcbiAgICAgICAgc2V0VG9wTGVmdCgpO1xuICAgICAgfVxuXG4gICAgICBfdGhpczIuZXNjTGlzdGVuZXJJbml0KCk7XG5cbiAgICAgIHZhciB0ZXh0VG9SZXBsYWNlID0gX3RoaXMyLl9nZXRUZXh0VG9SZXBsYWNlKGN1cnJlbnRUcmlnZ2VyKTtcblxuICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgc2VsZWN0aW9uRW5kOiBzZWxlY3Rpb25FbmQsXG4gICAgICAgIGN1cnJlbnRUcmlnZ2VyOiBjdXJyZW50VHJpZ2dlcixcbiAgICAgICAgdGV4dFRvUmVwbGFjZTogdGV4dFRvUmVwbGFjZSxcbiAgICAgICAgYWN0dWFsVG9rZW46IGFjdHVhbFRva2VuXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgX3RoaXMyLl9nZXRWYWx1ZXNGcm9tUHJvdmlkZXIoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlKGVyci5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzMi5fc2VsZWN0SGFuZGxlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgX3RoaXMyJHByb3BzMiA9IF90aGlzMi5wcm9wcyxcbiAgICAgICAgICBvbkNhcmV0UG9zaXRpb25DaGFuZ2UgPSBfdGhpczIkcHJvcHMyLm9uQ2FyZXRQb3NpdGlvbkNoYW5nZSxcbiAgICAgICAgICBvblNlbGVjdCA9IF90aGlzMiRwcm9wczIub25TZWxlY3Q7XG5cbiAgICAgIGlmIChvbkNhcmV0UG9zaXRpb25DaGFuZ2UpIHtcbiAgICAgICAgdmFyIGNhcmV0UG9zaXRpb24gPSBfdGhpczIuZ2V0Q2FyZXRQb3NpdGlvbigpO1xuXG4gICAgICAgIG9uQ2FyZXRQb3NpdGlvbkNoYW5nZShjYXJldFBvc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9uU2VsZWN0KSB7XG4gICAgICAgIGUucGVyc2lzdCgpO1xuICAgICAgICBvblNlbGVjdChlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMyLl9zaG91bGRTdGF5T3BlbiA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgZWwgPSBlLnJlbGF0ZWRUYXJnZXQ7IC8vIElFMTEgZG9lc24ndCBrbm93IGFib3V0IGByZWxhdGVkVGFyZ2V0YCAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDkzMjUxOTYvMjcxOTkxN1xuXG4gICAgICBpZiAoZWwgPT09IG51bGwpIHtcbiAgICAgICAgZWwgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAoX3RoaXMyLmRyb3Bkb3duUmVmICYmIGVsIGluc3RhbmNlb2YgTm9kZSAmJiBfdGhpczIuZHJvcGRvd25SZWYuY29udGFpbnMoZWwpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIF90aGlzMi5fb25DbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgb25DbGljayA9IF90aGlzMi5wcm9wcy5vbkNsaWNrO1xuXG4gICAgICBpZiAob25DbGljaykge1xuICAgICAgICBlLnBlcnNpc3QoKTtcbiAgICAgICAgb25DbGljayhlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKF90aGlzMi5fc2hvdWxkU3RheU9wZW4oZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBfdGhpczIuX2Nsb3NlQXV0b2NvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIF90aGlzMi5fb25CbHVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBvbkJsdXIgPSBfdGhpczIucHJvcHMub25CbHVyO1xuXG4gICAgICBpZiAob25CbHVyKSB7XG4gICAgICAgIGUucGVyc2lzdCgpO1xuICAgICAgICBvbkJsdXIoZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpczIuX3Nob3VsZFN0YXlPcGVuKGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgX3RoaXMyLl9jbG9zZUF1dG9jb21wbGV0ZSgpO1xuICAgIH07XG5cbiAgICBfdGhpczIuX29uU2Nyb2xsSGFuZGxlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMi5fY2xvc2VBdXRvY29tcGxldGUoKTtcbiAgICB9O1xuXG4gICAgX3RoaXMyLl9vbkl0ZW1IaWdobGlnaHRlZEhhbmRsZXIgPSBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIG9uSXRlbUhpZ2hsaWdodGVkID0gX3RoaXMyLnByb3BzLm9uSXRlbUhpZ2hsaWdodGVkO1xuICAgICAgdmFyIGN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyLnN0YXRlLmN1cnJlbnRUcmlnZ2VyO1xuXG4gICAgICBpZiAob25JdGVtSGlnaGxpZ2h0ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvbkl0ZW1IaWdobGlnaHRlZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgb25JdGVtSGlnaGxpZ2h0ZWQoe1xuICAgICAgICAgICAgY3VycmVudFRyaWdnZXI6IGN1cnJlbnRUcmlnZ2VyLFxuICAgICAgICAgICAgaXRlbTogaXRlbVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImBvbkl0ZW1IaWdobGlnaHRlZGAgaGFzIHRvIGJlIGEgZnVuY3Rpb25cIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMyLl9kcm9wZG93blNjcm9sbCA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgc2Nyb2xsVG9JdGVtID0gX3RoaXMyLnByb3BzLnNjcm9sbFRvSXRlbTtcbiAgICAgIGlmICghc2Nyb2xsVG9JdGVtKSByZXR1cm47XG5cbiAgICAgIGlmIChzY3JvbGxUb0l0ZW0gPT09IHRydWUpIHtcbiAgICAgICAgZGVmYXVsdFNjcm9sbFRvSXRlbShfdGhpczIuZHJvcGRvd25SZWYsIGl0ZW0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygc2Nyb2xsVG9JdGVtICE9PSBcImZ1bmN0aW9uXCIgfHwgc2Nyb2xsVG9JdGVtLmxlbmd0aCAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJgc2Nyb2xsVG9JdGVtYCBoYXMgdG8gYmUgYm9vbGVhbiAodHJ1ZSBmb3IgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbikgb3IgZnVuY3Rpb24gd2l0aCB0d28gcGFyYW1ldGVyczogY29udGFpbmVyLCBpdGVtLlwiKTtcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsVG9JdGVtKF90aGlzMi5kcm9wZG93blJlZiwgaXRlbSk7XG4gICAgfTtcblxuICAgIF90aGlzMi5faXNBdXRvY29tcGxldGVPcGVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIF90aGlzMiRzdGF0ZTUgPSBfdGhpczIuc3RhdGUsXG4gICAgICAgICAgZGF0YUxvYWRpbmcgPSBfdGhpczIkc3RhdGU1LmRhdGFMb2FkaW5nLFxuICAgICAgICAgIGN1cnJlbnRUcmlnZ2VyID0gX3RoaXMyJHN0YXRlNS5jdXJyZW50VHJpZ2dlcjtcblxuICAgICAgdmFyIHN1Z2dlc3Rpb25EYXRhID0gX3RoaXMyLl9nZXRTdWdnZXN0aW9ucygpO1xuXG4gICAgICByZXR1cm4gISEoKGRhdGFMb2FkaW5nIHx8IHN1Z2dlc3Rpb25EYXRhKSAmJiBjdXJyZW50VHJpZ2dlcik7XG4gICAgfTtcblxuICAgIF90aGlzMi5fdGV4dGFyZWFSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lIC0gcmVmIGlzIGFjdHVhbGx5IGEgYD9IVE1MVGV4dEFyZWFFbGVtZW50YFxuICAgICAgX3RoaXMyLnByb3BzLmlubmVyUmVmICYmIF90aGlzMi5wcm9wcy5pbm5lclJlZihyZWYpO1xuICAgICAgX3RoaXMyLnRleHRhcmVhUmVmID0gcmVmO1xuICAgIH07XG5cbiAgICBfdGhpczIubGFzdFRyaWdnZXIgPSAwO1xuICAgIF90aGlzMi5lc2NMaXN0ZW5lciA9IG51bGw7XG4gICAgdmFyIF90aGlzMiRwcm9wczMgPSBfdGhpczIucHJvcHMsXG4gICAgICAgIGxvYWRpbmdDb21wb25lbnQgPSBfdGhpczIkcHJvcHMzLmxvYWRpbmdDb21wb25lbnQsXG4gICAgICAgIF90cmlnZ2VyID0gX3RoaXMyJHByb3BzMy50cmlnZ2VyLFxuICAgICAgICBfdmFsdWUgPSBfdGhpczIkcHJvcHMzLnZhbHVlO1xuICAgIGlmIChfdmFsdWUpIF90aGlzMi5zdGF0ZS52YWx1ZSA9IF92YWx1ZTtcblxuICAgIF90aGlzMi5fY3JlYXRlUmVnRXhwKCk7XG5cbiAgICBpZiAoIWxvYWRpbmdDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJUQTogbG9hZGluZ0NvbXBvbmVudCBpcyBub3QgZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoIV90cmlnZ2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSVEE6IHRyaWdnZXIgaXMgbm90IGRlZmluZWRcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIF90aGlzMjtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIExpc3RlbmVycy5zdGFydExpc3Rlbih0aGlzLnRleHRhcmVhUmVmKTsgLy8gaGFuZGxlIGNhcmV0IGNoYW5nZVxuXG4gICAgICB0aGlzLnRleHRhcmVhUmVmICYmIHRoaXMudGV4dGFyZWFSZWYuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIHRoaXMuX2hhbmRsZUNhcmV0Q2hhbmdlKTtcbiAgICAgIHRoaXMudGV4dGFyZWFSZWYgJiYgdGhpcy50ZXh0YXJlYVJlZi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5faGFuZGxlQ2FyZXRDaGFuZ2UpO1xuICAgICAgdGhpcy50ZXh0YXJlYVJlZiAmJiB0aGlzLnRleHRhcmVhUmVmLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuX2hhbmRsZUNhcmV0Q2hhbmdlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShfcmVmMikge1xuICAgICAgdmFyIG9sZFRyaWdnZXIgPSBfcmVmMi50cmlnZ2VyLFxuICAgICAgICAgIG9sZFZhbHVlID0gX3JlZjIudmFsdWU7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB0cmlnZ2VyID0gX3RoaXMkcHJvcHMyLnRyaWdnZXIsXG4gICAgICAgICAgdmFsdWUgPSBfdGhpcyRwcm9wczIudmFsdWU7XG5cbiAgICAgIGlmIChPYmplY3Qua2V5cyh0cmlnZ2VyKS5qb2luKFwiXCIpICE9PSBPYmplY3Qua2V5cyhvbGRUcmlnZ2VyKS5qb2luKFwiXCIpKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZVJlZ0V4cCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob2xkVmFsdWUgIT09IHZhbHVlICYmIHRoaXMubGFzdFZhbHVlQnViYmxlZEV2ZW50ICE9PSB2YWx1ZSkge1xuICAgICAgICB0aGlzLmxhc3RUcmlnZ2VyID0gMDtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VIYW5kbGVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5lc2NMaXN0ZW5lckRlc3Ryb3koKTtcbiAgICAgIExpc3RlbmVycy5zdG9wTGlzdGVuKHRoaXMudGV4dGFyZWFSZWYpOyAvLyBoYW5kbGUgY2FyZXQgY2hhbmdlXG5cbiAgICAgIHRoaXMudGV4dGFyZWFSZWYgJiYgdGhpcy50ZXh0YXJlYVJlZi5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIiwgdGhpcy5faGFuZGxlQ2FyZXRDaGFuZ2UpO1xuICAgICAgdGhpcy50ZXh0YXJlYVJlZiAmJiB0aGlzLnRleHRhcmVhUmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVDYXJldENoYW5nZSk7XG4gICAgICB0aGlzLnRleHRhcmVhUmVmICYmIHRoaXMudGV4dGFyZWFSZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5faGFuZGxlQ2FyZXRDaGFuZ2UpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIExvYWRlciA9IF90aGlzJHByb3BzMy5sb2FkaW5nQ29tcG9uZW50LFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMzLnN0eWxlLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzMy5jbGFzc05hbWUsXG4gICAgICAgICAgbGlzdFN0eWxlID0gX3RoaXMkcHJvcHMzLmxpc3RTdHlsZSxcbiAgICAgICAgICBpdGVtU3R5bGUgPSBfdGhpcyRwcm9wczMuaXRlbVN0eWxlLFxuICAgICAgICAgIGJvdW5kYXJpZXNFbGVtZW50ID0gX3RoaXMkcHJvcHMzLmJvdW5kYXJpZXNFbGVtZW50LFxuICAgICAgICAgIG1vdmVQb3B1cEFzWW91VHlwZSA9IF90aGlzJHByb3BzMy5tb3ZlUG9wdXBBc1lvdVR5cGUsXG4gICAgICAgICAgbGlzdENsYXNzTmFtZSA9IF90aGlzJHByb3BzMy5saXN0Q2xhc3NOYW1lLFxuICAgICAgICAgIGl0ZW1DbGFzc05hbWUgPSBfdGhpcyRwcm9wczMuaXRlbUNsYXNzTmFtZSxcbiAgICAgICAgICBkcm9wZG93bkNsYXNzTmFtZSA9IF90aGlzJHByb3BzMy5kcm9wZG93bkNsYXNzTmFtZSxcbiAgICAgICAgICBkcm9wZG93blN0eWxlID0gX3RoaXMkcHJvcHMzLmRyb3Bkb3duU3R5bGUsXG4gICAgICAgICAgY29udGFpbmVyU3R5bGUgPSBfdGhpcyRwcm9wczMuY29udGFpbmVyU3R5bGUsXG4gICAgICAgICAgY29udGFpbmVyQ2xhc3NOYW1lID0gX3RoaXMkcHJvcHMzLmNvbnRhaW5lckNsYXNzTmFtZSxcbiAgICAgICAgICBsb2FkZXJTdHlsZSA9IF90aGlzJHByb3BzMy5sb2FkZXJTdHlsZSxcbiAgICAgICAgICBsb2FkZXJDbGFzc05hbWUgPSBfdGhpcyRwcm9wczMubG9hZGVyQ2xhc3NOYW1lLFxuICAgICAgICAgIHRleHRBcmVhQ29tcG9uZW50ID0gX3RoaXMkcHJvcHMzLnRleHRBcmVhQ29tcG9uZW50LFxuICAgICAgICAgIHJlbmRlclRvQm9keSA9IF90aGlzJHByb3BzMy5yZW5kZXJUb0JvZHk7XG4gICAgICB2YXIgX3RoaXMkc3RhdGUgPSB0aGlzLnN0YXRlLFxuICAgICAgICAgIGxlZnQgPSBfdGhpcyRzdGF0ZS5sZWZ0LFxuICAgICAgICAgIHRvcCA9IF90aGlzJHN0YXRlLnRvcCxcbiAgICAgICAgICBkYXRhTG9hZGluZyA9IF90aGlzJHN0YXRlLmRhdGFMb2FkaW5nLFxuICAgICAgICAgIGNvbXBvbmVudCA9IF90aGlzJHN0YXRlLmNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZSA9IF90aGlzJHN0YXRlLnZhbHVlLFxuICAgICAgICAgIHRleHRUb1JlcGxhY2UgPSBfdGhpcyRzdGF0ZS50ZXh0VG9SZXBsYWNlO1xuXG4gICAgICB2YXIgaXNBdXRvY29tcGxldGVPcGVuID0gdGhpcy5faXNBdXRvY29tcGxldGVPcGVuKCk7XG5cbiAgICAgIHZhciBzdWdnZXN0aW9uRGF0YSA9IHRoaXMuX2dldFN1Z2dlc3Rpb25zKCk7XG5cbiAgICAgIHZhciBleHRyYUF0dHJzID0ge307XG4gICAgICB2YXIgVGV4dEFyZWFDb21wb25lbnQ7XG5cbiAgICAgIGlmICh0ZXh0QXJlYUNvbXBvbmVudC5jb21wb25lbnQpIHtcbiAgICAgICAgVGV4dEFyZWFDb21wb25lbnQgPSB0ZXh0QXJlYUNvbXBvbmVudC5jb21wb25lbnQ7XG4gICAgICAgIGV4dHJhQXR0cnNbdGV4dEFyZWFDb21wb25lbnQucmVmXSA9IHRoaXMuX3RleHRhcmVhUmVmO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgVGV4dEFyZWFDb21wb25lbnQgPSB0ZXh0QXJlYUNvbXBvbmVudDtcbiAgICAgICAgZXh0cmFBdHRycy5yZWYgPSB0aGlzLl90ZXh0YXJlYVJlZjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwicnRhIFwiLmNvbmNhdChkYXRhTG9hZGluZyA9PT0gdHJ1ZSA/IFwicnRhLS1sb2FkaW5nXCIgOiBcIlwiLCBcIiBcIikuY29uY2F0KGNvbnRhaW5lckNsYXNzTmFtZSB8fCBcIlwiKSxcbiAgICAgICAgc3R5bGU6IGNvbnRhaW5lclN0eWxlXG4gICAgICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFRleHRBcmVhQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jbGVhblVwUHJvcHMoKSwge1xuICAgICAgICBjbGFzc05hbWU6IFwicnRhX190ZXh0YXJlYSBcIi5jb25jYXQoY2xhc3NOYW1lIHx8IFwiXCIpLFxuICAgICAgICBvbkNoYW5nZTogdGhpcy5fY2hhbmdlSGFuZGxlcixcbiAgICAgICAgb25TZWxlY3Q6IHRoaXMuX3NlbGVjdEhhbmRsZXIsXG4gICAgICAgIG9uU2Nyb2xsOiB0aGlzLl9vblNjcm9sbEhhbmRsZXIsXG4gICAgICAgIG9uQ2xpY2s6IC8vIFRoZSB0ZXh0YXJlYSBpdHNlbGYgaXMgb3V0c2lkZSB0aGUgYXV0b3NlbGVjdCBkcm9wZG93bi5cbiAgICAgICAgdGhpcy5fb25DbGljayxcbiAgICAgICAgb25CbHVyOiB0aGlzLl9vbkJsdXIsXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCBleHRyYUF0dHJzKSksIGlzQXV0b2NvbXBsZXRlT3BlbiAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KEF1dG9jb21wbGV0ZSwge1xuICAgICAgICBpbm5lclJlZjogZnVuY3Rpb24gaW5uZXJSZWYocmVmKSB7XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuICAgICAgICAgIF90aGlzMy5kcm9wZG93blJlZiA9IHJlZjtcbiAgICAgICAgfSxcbiAgICAgICAgdG9wOiB0b3AsXG4gICAgICAgIGxlZnQ6IGxlZnQsXG4gICAgICAgIHN0eWxlOiBkcm9wZG93blN0eWxlLFxuICAgICAgICBjbGFzc05hbWU6IGRyb3Bkb3duQ2xhc3NOYW1lLFxuICAgICAgICBtb3ZlUG9wdXBBc1lvdVR5cGU6IG1vdmVQb3B1cEFzWW91VHlwZSxcbiAgICAgICAgYm91bmRhcmllc0VsZW1lbnQ6IGJvdW5kYXJpZXNFbGVtZW50LFxuICAgICAgICB0ZXh0YXJlYVJlZjogdGhpcy50ZXh0YXJlYVJlZixcbiAgICAgICAgcmVuZGVyVG9Cb2R5OiByZW5kZXJUb0JvZHlcbiAgICAgIH0sIHN1Z2dlc3Rpb25EYXRhICYmIGNvbXBvbmVudCAmJiB0ZXh0VG9SZXBsYWNlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTGlzdCwge1xuICAgICAgICB2YWx1ZXM6IHN1Z2dlc3Rpb25EYXRhLFxuICAgICAgICBjb21wb25lbnQ6IGNvbXBvbmVudCxcbiAgICAgICAgc3R5bGU6IGxpc3RTdHlsZSxcbiAgICAgICAgY2xhc3NOYW1lOiBsaXN0Q2xhc3NOYW1lLFxuICAgICAgICBpdGVtQ2xhc3NOYW1lOiBpdGVtQ2xhc3NOYW1lLFxuICAgICAgICBpdGVtU3R5bGU6IGl0ZW1TdHlsZSxcbiAgICAgICAgZ2V0VGV4dFRvUmVwbGFjZTogdGV4dFRvUmVwbGFjZSxcbiAgICAgICAgb25JdGVtSGlnaGxpZ2h0ZWQ6IHRoaXMuX29uSXRlbUhpZ2hsaWdodGVkSGFuZGxlcixcbiAgICAgICAgb25TZWxlY3Q6IHRoaXMuX29uU2VsZWN0LFxuICAgICAgICBkcm9wZG93blNjcm9sbDogdGhpcy5fZHJvcGRvd25TY3JvbGxcbiAgICAgIH0pLCBkYXRhTG9hZGluZyAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInJ0YV9fbG9hZGVyIFwiLmNvbmNhdChzdWdnZXN0aW9uRGF0YSAhPT0gbnVsbCA/IFwicnRhX19sb2FkZXItLXN1Z2dlc3Rpb24tZGF0YVwiIDogXCJydGFfX2xvYWRlci0tZW1wdHktc3VnZ2VzdGlvbi1kYXRhXCIsIFwiIFwiKS5jb25jYXQobG9hZGVyQ2xhc3NOYW1lIHx8IFwiXCIpLFxuICAgICAgICBzdHlsZTogbG9hZGVyU3R5bGVcbiAgICAgIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTG9hZGVyLCB7XG4gICAgICAgIGRhdGE6IHN1Z2dlc3Rpb25EYXRhXG4gICAgICB9KSkpKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogXCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYzKSB7XG4gICAgICB2YXIgdmFsdWUgPSBfcmVmMy52YWx1ZTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZS5kZWZhdWx0UHJvcHMgPSB7XG4gIG1vdmVQb3B1cEFzWW91VHlwZTogZmFsc2UsXG4gIHZhbHVlOiBudWxsLFxuICBtaW5DaGFyOiAxLFxuICBib3VuZGFyaWVzRWxlbWVudDogXCJib2R5XCIsXG4gIHNjcm9sbFRvSXRlbTogdHJ1ZSxcbiAgdGV4dEFyZWFDb21wb25lbnQ6IFwidGV4dGFyZWFcIixcbiAgcmVuZGVyVG9Cb2R5OiBmYWxzZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgUmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZTtcbiIsIi8vIENyZWRpdHMgZ28gdG8gTGlhbSdzIFBlcmlvZGljIE5vdGVzIFBsdWdpbjogaHR0cHM6Ly9naXRodWIuY29tL2xpYW1jYWluL29ic2lkaWFuLXBlcmlvZGljLW5vdGVzXG4vLyBpbXBvcnQgeyBUZXh0SW5wdXRTdWdnZXN0IH0gZnJvbSBcIi4vb2JTdWdnZXN0XCI7XG5pbXBvcnQgbWVtb1NlcnZpY2UgZnJvbSAnLi4vc2VydmljZXMvbWVtb1NlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgdXNlZFRhZ3MgPSAoc2VsZXRlY1RleHQ6IHN0cmluZykgPT4ge1xuICBjb25zdCB7dGFnc30gPSBtZW1vU2VydmljZS5nZXRTdGF0ZSgpO1xuICBjb25zdCBsb3dlckNhc2VJbnB1dFN0ciA9IHNlbGV0ZWNUZXh0LnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHVzZWRUYWdzID0gW10gYXMgYW55O1xuXG4gIHRhZ3MuZm9yRWFjaCgodGFnOiBzdHJpbmcpID0+IHtcbiAgICBpZiAodGFnICYmIHRhZy50b0xvd2VyQ2FzZSgpLmNvbnRhaW5zKGxvd2VyQ2FzZUlucHV0U3RyKSkge1xuICAgICAgdXNlZFRhZ3MucHVzaCh7XG4gICAgICAgIG5hbWU6IHRhZyBhcyBzdHJpbmcsXG4gICAgICAgIGNoYXI6IHRhZyBhcyBzdHJpbmcsXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1c2VkVGFncztcbn07XG4iLCIvLyBDcmVkaXRzIGdvIHRvIExpYW0ncyBQZXJpb2RpYyBOb3RlcyBQbHVnaW46IGh0dHBzOi8vZ2l0aHViLmNvbS9saWFtY2Fpbi9vYnNpZGlhbi1wZXJpb2RpYy1ub3Rlc1xuaW1wb3J0IHtUQWJzdHJhY3RGaWxlLCBURmlsZX0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IGRhaWx5Tm90ZXNTZXJ2aWNlIGZyb20gJy4uL3NlcnZpY2VzL2RhaWx5Tm90ZXNTZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGdldFN1Z2dlc3Rpb25zID0gKGlucHV0U3RyOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qge2FwcH0gPSBkYWlseU5vdGVzU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gIGNvbnN0IGFic3RyYWN0RmlsZXMgPSBhcHAudmF1bHQuZ2V0QWxsTG9hZGVkRmlsZXMoKTtcbiAgLy8gY29uc3QgZmlsZXM6IFRGaWxlW10gPSBbXTtcbiAgY29uc3QgZmlsZXMgPSBbXSBhcyBhbnk7XG5cbiAgbGV0IGFjdHVhbElucHV0OiBzdHJpbmc7XG5cbiAgYWJzdHJhY3RGaWxlcy5mb3JFYWNoKChmaWxlOiBUQWJzdHJhY3RGaWxlKSA9PiB7XG4gICAgaWYgKGlucHV0U3RyID09PSAnWycpIHtcbiAgICAgIGFjdHVhbElucHV0ID0gJyc7XG4gICAgICBjb25zdCBsb3dlckNhc2VJbnB1dFN0ciA9IGFjdHVhbElucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoXG4gICAgICAgIGZpbGUgaW5zdGFuY2VvZiBURmlsZSAmJlxuICAgICAgICAoZmlsZS5leHRlbnNpb24gPT09ICdtZCcgfHxcbiAgICAgICAgICBmaWxlLmV4dGVuc2lvbiA9PT0gJ3BuZycgfHxcbiAgICAgICAgICBmaWxlLmV4dGVuc2lvbiA9PT0gJ2pwZycgfHxcbiAgICAgICAgICBmaWxlLmV4dGVuc2lvbiA9PT0gJ2pwZWcnIHx8XG4gICAgICAgICAgZmlsZS5leHRlbnNpb24gPT09ICdnaWYnKSAmJlxuICAgICAgICBmaWxlLnBhdGgudG9Mb3dlckNhc2UoKS5jb250YWlucyhsb3dlckNhc2VJbnB1dFN0cilcbiAgICAgICkge1xuICAgICAgICBmaWxlcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWxlLmJhc2VuYW1lIGFzIHN0cmluZyxcbiAgICAgICAgICBjaGFyOiBmaWxlLm5hbWUgYXMgc3RyaW5nLFxuICAgICAgICAgIGZpbGU6IGZpbGUgYXMgVEZpbGUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW5wdXRTdHIuY29udGFpbnMoJ1snKSkge1xuICAgICAgYWN0dWFsSW5wdXQgPSBpbnB1dFN0ci5zbGljZSgxKTtcbiAgICAgIGNvbnN0IGxvd2VyQ2FzZUlucHV0U3RyID0gYWN0dWFsSW5wdXQudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChcbiAgICAgICAgZmlsZSBpbnN0YW5jZW9mIFRGaWxlICYmXG4gICAgICAgIChmaWxlLmV4dGVuc2lvbiA9PT0gJ21kJyB8fFxuICAgICAgICAgIGZpbGUuZXh0ZW5zaW9uID09PSAncG5nJyB8fFxuICAgICAgICAgIGZpbGUuZXh0ZW5zaW9uID09PSAnanBnJyB8fFxuICAgICAgICAgIGZpbGUuZXh0ZW5zaW9uID09PSAnanBlZycgfHxcbiAgICAgICAgICBmaWxlLmV4dGVuc2lvbiA9PT0gJ2dpZicpICYmXG4gICAgICAgIGZpbGUucGF0aC50b0xvd2VyQ2FzZSgpLmNvbnRhaW5zKGxvd2VyQ2FzZUlucHV0U3RyKVxuICAgICAgKSB7XG4gICAgICAgIGZpbGVzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGZpbGUuYmFzZW5hbWUgYXMgc3RyaW5nLFxuICAgICAgICAgIGNoYXI6IGZpbGUubmFtZSBhcyBzdHJpbmcsXG4gICAgICAgICAgZmlsZTogZmlsZSBhcyBURmlsZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZmlsZXM7XG59O1xuIiwiaW1wb3J0IHtmb3J3YXJkUmVmLCBSZWFjdE5vZGUsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUaW55VW5kbyBmcm9tICd0aW55LXVuZG8nO1xuaW1wb3J0IGFwcENvbnRleHQgZnJvbSAnLi4vLi4vc3RvcmVzL2FwcENvbnRleHQnO1xuaW1wb3J0IHtzdG9yYWdlLCByZW1vdmV9IGZyb20gJy4uLy4uL2hlbHBlcnMvc3RvcmFnZSc7XG5pbXBvcnQgdXNlUmVmcmVzaCBmcm9tICcuLi8uLi9ob29rcy91c2VSZWZyZXNoJztcbmltcG9ydCBPbmx5IGZyb20gJy4uL2NvbW1vbi9Pbmx5V2hlbic7XG5pbXBvcnQgJy4uLy4uL2xlc3MvZWRpdG9yLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdFRleHRhcmVhQXV0b2NvbXBsZXRlIGZyb20gJ0B3ZWJzY29wZWlvL3JlYWN0LXRleHRhcmVhLWF1dG9jb21wbGV0ZSc7XG5pbXBvcnQge3VzZWRUYWdzfSBmcm9tICcuLi8uLi9vYkNvbXBvbmVudHMvb2JUYWdTdWdnZXN0ZXInO1xuaW1wb3J0ICcuLi8uLi9sZXNzL3N1Z2dlc3QubGVzcyc7XG5pbXBvcnQge0ZvY3VzT25FZGl0b3IsIFNhdmVNZW1vQnV0dG9uTGFiZWx9IGZyb20gJy4uLy4uL21lbW9zJztcbmltcG9ydCB7Z2V0U3VnZ2VzdGlvbnN9IGZyb20gJy4uLy4uL29iQ29tcG9uZW50cy9vYkZpbGVTdWdnZXN0ZXInO1xuaW1wb3J0IHtURmlsZX0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uLy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBlbnRpdHk6IHtcbiAgICBjaGFyOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGZpbGU/OiBURmlsZTtcbiAgfTtcbn07XG5cbnR5cGUgTG9hZGluZ1Byb3BzID0ge1xuICBkYXRhOiBBcnJheTx7bmFtZTogc3RyaW5nOyBjaGFyOiBzdHJpbmd9Pjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yUmVmQWN0aW9ucyB7XG4gIGVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gIGZvY3VzOiBGdW5jdGlvblR5cGU7XG4gIGluc2VydFRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNldENvbnRlbnQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIGdldENvbnRlbnQ6ICgpID0+IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEVkaXRvclByb3BzIHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIGluaXRpYWxDb250ZW50OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHNob3dDb25maXJtQnRuOiBib29sZWFuO1xuICBzaG93Q2FuY2VsQnRuOiBib29sZWFuO1xuICB0b29scz86IFJlYWN0Tm9kZTtcbiAgb25Db25maXJtQnRuQ2xpY2s6IChjb250ZW50OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2FuY2VsQnRuQ2xpY2s6ICgpID0+IHZvaWQ7XG4gIG9uQ29udGVudENoYW5nZTogKGNvbnRlbnQ6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmNvbnN0IFRJdGVtID0gKHtlbnRpdHk6IHtuYW1lLCBjaGFyLCBmaWxlfX06IEl0ZW1Qcm9wcykgPT4ge1xuICByZXR1cm4gPGRpdj57YCR7Y2hhcn1gfTwvZGl2Pjtcbn07XG4vL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgTG9hZGluZyA9ICh7ZGF0YX06IExvYWRpbmdQcm9wcykgPT4ge1xuICByZXR1cm4gPGRpdj5Mb2FkaW5nPC9kaXY+O1xufTtcblxuZXhwb3J0IGxldCBlZGl0b3JJbnB1dDogSFRNTFRleHRBcmVhRWxlbWVudDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rpc3BsYXktbmFtZVxuY29uc3QgRWRpdG9yID0gZm9yd2FyZFJlZigocHJvcHM6IEVkaXRvclByb3BzLCByZWY6IFJlYWN0LkZvcndhcmRlZFJlZjxFZGl0b3JSZWZBY3Rpb25zPikgPT4ge1xuICBjb25zdCB7XG4gICAgZ2xvYmFsU3RhdGU6IHt1c2VUaW55VW5kb0hpc3RvcnlDYWNoZX0sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBjb25zdCB7XG4gICAgY2xhc3NOYW1lLFxuICAgIGluaXRpYWxDb250ZW50LFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIHNob3dDb25maXJtQnRuLFxuICAgIHNob3dDYW5jZWxCdG4sXG4gICAgb25Db25maXJtQnRuQ2xpY2s6IGhhbmRsZUNvbmZpcm1CdG5DbGlja0NhbGxiYWNrLFxuICAgIG9uQ2FuY2VsQnRuQ2xpY2s6IGhhbmRsZUNhbmNlbEJ0bkNsaWNrQ2FsbGJhY2ssXG4gICAgb25Db250ZW50Q2hhbmdlOiBoYW5kbGVDb250ZW50Q2hhbmdlQ2FsbGJhY2ssXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB0aW55VW5kb1JlZiA9IHVzZVJlZjxUaW55VW5kbyB8IG51bGw+KG51bGwpO1xuICBjb25zdCByZWZyZXNoID0gdXNlUmVmcmVzaCgpO1xuICAvLyBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKFwiXCIpXG5cbiAgbGV0IGFjdHVhbFRva2VuOiBzdHJpbmc7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGluaXRpYWxDb250ZW50KSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC52YWx1ZSA9IGluaXRpYWxDb250ZW50O1xuICAgICAgcmVmcmVzaCgpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHVzZVRpbnlVbmRvSGlzdG9yeUNhY2hlKSB7XG4gICAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qge3RpbnlVbmRvQWN0aW9uc0NhY2hlLCB0aW55VW5kb0luZGV4Q2FjaGV9ID0gc3RvcmFnZS5nZXQoWyd0aW55VW5kb0FjdGlvbnNDYWNoZScsICd0aW55VW5kb0luZGV4Q2FjaGUnXSk7XG5cbiAgICAgIHRpbnlVbmRvUmVmLmN1cnJlbnQgPSBuZXcgVGlueVVuZG8oZWRpdG9yUmVmLmN1cnJlbnQsIHtcbiAgICAgICAgaW50ZXJ2YWw6IDUwMDAsXG4gICAgICAgIGluaXRpYWxBY3Rpb25zOiB0aW55VW5kb0FjdGlvbnNDYWNoZSxcbiAgICAgICAgaW5pdGlhbEluZGV4OiB0aW55VW5kb0luZGV4Q2FjaGUsXG4gICAgICB9KTtcblxuICAgICAgdGlueVVuZG9SZWYuY3VycmVudC5zdWJzY3JpYmUoKGFjdGlvbnMsIGluZGV4KSA9PiB7XG4gICAgICAgIHN0b3JhZ2Uuc2V0KHtcbiAgICAgICAgICB0aW55VW5kb0FjdGlvbnNDYWNoZTogYWN0aW9ucyxcbiAgICAgICAgICB0aW55VW5kb0luZGV4Q2FjaGU6IGluZGV4LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB0aW55VW5kb1JlZi5jdXJyZW50Py5kZXN0cm95KCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aW55VW5kb1JlZi5jdXJyZW50Py5kZXN0cm95KCk7XG4gICAgICB0aW55VW5kb1JlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIHN0b3JhZ2UucmVtb3ZlKFsndGlueVVuZG9BY3Rpb25zQ2FjaGUnLCAndGlueVVuZG9JbmRleENhY2hlJ10pO1xuICAgIH1cbiAgfSwgW3VzZVRpbnlVbmRvSGlzdG9yeUNhY2hlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLmhlaWdodCA9IChlZGl0b3JSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQgPz8gMCkgKyAncHgnO1xuICAgIH1cbiAgfSwgW2VkaXRvclJlZi5jdXJyZW50Py52YWx1ZV0pO1xuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgcmVmLFxuICAgICgpID0+ICh7XG4gICAgICBlbGVtZW50OiBlZGl0b3JSZWYuY3VycmVudCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50LFxuICAgICAgZm9jdXM6ICgpID0+IHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9LFxuICAgICAgaW5zZXJ0VGV4dDogKHJhd1RleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJldlZhbHVlID0gZWRpdG9yUmVmLmN1cnJlbnQudmFsdWU7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlID1cbiAgICAgICAgICBwcmV2VmFsdWUuc2xpY2UoMCwgZWRpdG9yUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQpICtcbiAgICAgICAgICByYXdUZXh0ICtcbiAgICAgICAgICBwcmV2VmFsdWUuc2xpY2UoZWRpdG9yUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQpO1xuICAgICAgICBoYW5kbGVDb250ZW50Q2hhbmdlQ2FsbGJhY2soZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUpO1xuICAgICAgICByZWZyZXNoKCk7XG4gICAgICB9LFxuICAgICAgc2V0Q29udGVudDogKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudC52YWx1ZSA9IHRleHQ7XG4gICAgICAgICAgaGFuZGxlQ29udGVudENoYW5nZUNhbGxiYWNrKGVkaXRvclJlZi5jdXJyZW50LnZhbHVlKTtcbiAgICAgICAgICByZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXRDb250ZW50OiAoKTogc3RyaW5nID0+IHtcbiAgICAgICAgcmV0dXJuIGVkaXRvclJlZi5jdXJyZW50Py52YWx1ZSA/PyAnJztcbiAgICAgIH0sXG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlSW5zZXJ0VHJpZ2dlciA9IChldmVudDoge2N1cnJlbnRUcmlnZ2VyOiBzdHJpbmc7IGl0ZW06IGFueX0pID0+IHtcbiAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qge2ZpbGVNYW5hZ2VyfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcblxuICAgIGlmIChldmVudC5jdXJyZW50VHJpZ2dlciA9PT0gJyMnKSB7XG4gICAgICBjb25zdCBwcmV2VmFsdWUgPSBlZGl0b3JSZWYuY3VycmVudC52YWx1ZTtcbiAgICAgIGxldCByZW1vdmVDaGFyTnVtO1xuICAgICAgaWYgKGFjdHVhbFRva2VuICE9PSBudWxsICYmIGFjdHVhbFRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVtb3ZlQ2hhck51bSA9IGFjdHVhbFRva2VuLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbW92ZUNoYXJOdW0gPSAwO1xuICAgICAgfVxuICAgICAgbGV0IGJlaGluZENoYXJOdW0gPSBlZGl0b3JSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldlZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwcmV2VmFsdWVbYmVoaW5kQ2hhck51bV0gIT09ICcgJykge1xuICAgICAgICAgIGJlaGluZENoYXJOdW0rKztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC52YWx1ZSA9XG4gICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHByZXZWYWx1ZS5zbGljZSgwLCBlZGl0b3JSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCAtIHJlbW92ZUNoYXJOdW0pICtcbiAgICAgICAgZXZlbnQuaXRlbS5jaGFyICtcbiAgICAgICAgcHJldlZhbHVlLnNsaWNlKGJlaGluZENoYXJOdW0pO1xuICAgICAgaGFuZGxlQ29udGVudENoYW5nZUNhbGxiYWNrKGVkaXRvclJlZi5jdXJyZW50LnZhbHVlKTtcbiAgICAgIHJlZnJlc2goKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmN1cnJlbnRUcmlnZ2VyID09PSAnW1snKSB7XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGVNYW5hZ2VyLmdlbmVyYXRlTWFya2Rvd25MaW5rKGV2ZW50Lml0ZW0uZmlsZSwgZXZlbnQuaXRlbS5maWxlLnBhdGgsICcnLCAnJyk7XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IGVkaXRvclJlZi5jdXJyZW50LnZhbHVlO1xuICAgICAgbGV0IHJlbW92ZUNoYXJOdW07XG4gICAgICBpZiAoYWN0dWFsVG9rZW4gIT09IG51bGwgJiYgYWN0dWFsVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoZmlsZVBhdGguY29udGFpbnMoJ1tbJykpIHtcbiAgICAgICAgICByZW1vdmVDaGFyTnVtID0gYWN0dWFsVG9rZW4ubGVuZ3RoICsgMTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5pdGVtLmZpbGUuZXh0ZW5zaW9uICE9PSAnbWQnKSB7XG4gICAgICAgICAgcmVtb3ZlQ2hhck51bSA9IGFjdHVhbFRva2VuLmxlbmd0aCArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVtb3ZlQ2hhck51bSA9IGFjdHVhbFRva2VuLmxlbmd0aCArIDI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbW92ZUNoYXJOdW0gPSAyO1xuICAgICAgfVxuICAgICAgbGV0IGJlaGluZENoYXJOdW0gPSBlZGl0b3JSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldlZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwcmV2VmFsdWVbYmVoaW5kQ2hhck51bV0gIT09ICcgJykge1xuICAgICAgICAgIGJlaGluZENoYXJOdW0rKztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC52YWx1ZSA9XG4gICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHByZXZWYWx1ZS5zbGljZSgwLCBlZGl0b3JSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCAtIHJlbW92ZUNoYXJOdW0pICtcbiAgICAgICAgZmlsZVBhdGggK1xuICAgICAgICBwcmV2VmFsdWUuc2xpY2UoYmVoaW5kQ2hhck51bSk7XG4gICAgICBoYW5kbGVDb250ZW50Q2hhbmdlQ2FsbGJhY2soZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUpO1xuICAgICAgcmVmcmVzaCgpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBoYW5kbGVDb250ZW50Q2hhbmdlQ2FsbGJhY2soZWRpdG9yUmVmLmN1cnJlbnQ/LnZhbHVlID8/ICcnKTtcbiAgICByZWZyZXNoKCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0b3JLZXlEb3duID0gdXNlQ2FsbGJhY2soKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgaWYgKGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSkge1xuICAgICAgICBoYW5kbGVDb21tb25Db25maXJtQnRuQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVmcmVzaCgpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlQ29tbW9uQ29uZmlybUJ0bkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlZGl0b3JSZWYuY3VycmVudC52YWx1ZSA9IGdldEVkaXRvckNvbnRlbnRDYWNoZSgpO1xuXG4gICAgaGFuZGxlQ29uZmlybUJ0bkNsaWNrQ2FsbGJhY2soZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUpO1xuICAgIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlID0gJyc7XG5cbiAgICByZWZyZXNoKCk7XG4gICAgLy8gQWZ0ZXIgY29uZmlybSBidG4gY2xpY2tlZCwgdGlueS11bmRvIHNob3VsZCByZXNldCBzdGF0ZShjbGVhciBhY3Rpb25zIGFuZCBpbmRleClcbiAgICB0aW55VW5kb1JlZi5jdXJyZW50Py5yZXNldFN0YXRlKCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVDb21tb25DYW5jZWxCdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBoYW5kbGVDYW5jZWxCdG5DbGlja0NhbGxiYWNrKCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBnZXRFZGl0b3JDb250ZW50Q2FjaGUgPSAoKTogc3RyaW5nID0+IHtcbiAgICByZXR1cm4gc3RvcmFnZS5nZXQoWydlZGl0b3JDb250ZW50Q2FjaGUnXSkuZWRpdG9yQ29udGVudENhY2hlID8/ICcnO1xuICB9O1xuXG4gIGNvbnN0IGdldEVkaXRvckNvbnRlbnQgPSAoKTogc3RyaW5nID0+IHtcbiAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWRpdG9yUmVmLmN1cnJlbnQudmFsdWUgPSBnZXRFZGl0b3JDb250ZW50Q2FjaGUoKTtcbiAgICAvLyBpZiggRm9jdXNPbkVkaXRvciApe1xuICAgIC8vICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgLy8gfVxuXG4gICAgcmV0dXJuIGVkaXRvclJlZi5jdXJyZW50LnZhbHVlO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eydjb21tb24tZWRpdG9yLXdyYXBwZXIgJyArIGNsYXNzTmFtZX0+XG4gICAgICA8UmVhY3RUZXh0YXJlYUF1dG9jb21wbGV0ZVxuICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgY2xhc3NOYW1lPVwiY29tbW9uLWVkaXRvci1pbnB1dGVyIHNjcm9sbFwiXG4gICAgICAgIGxvYWRpbmdDb21wb25lbnQ9e0xvYWRpbmd9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgbW92ZVBvcHVwQXNZb3VUeXBlPXt0cnVlfVxuICAgICAgICAvLyByZW5kZXJUb0JvZHk9e3RydWV9XG5cbiAgICAgICAgcmVmPXsocnRhKSA9PiB7XG4gICAgICAgICAgcnRhID0gcnRhO1xuICAgICAgICB9fVxuICAgICAgICB2YWx1ZT17Z2V0RWRpdG9yQ29udGVudCgpfVxuICAgICAgICBpbm5lclJlZj17KHRleHRhcmVhKSA9PiB7XG4gICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQgPSB0ZXh0YXJlYTtcbiAgICAgICAgfX1cbiAgICAgICAgb25JbnB1dD17aGFuZGxlRWRpdG9ySW5wdXR9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlRWRpdG9yS2V5RG93bn1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBtaW5IZWlnaHQ6IDQ4LFxuICAgICAgICB9fVxuICAgICAgICBkcm9wZG93blN0eWxlPXt7XG4gICAgICAgICAgbWluV2lkdGg6IDE4MCxcbiAgICAgICAgICBtYXhIZWlnaHQ6IDI1MCxcbiAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgICAgfX1cbiAgICAgICAgbWluQ2hhcj17MH1cbiAgICAgICAgb25JdGVtU2VsZWN0ZWQ9e2hhbmRsZUluc2VydFRyaWdnZXJ9XG4gICAgICAgIHNjcm9sbFRvSXRlbT17dHJ1ZX1cbiAgICAgICAgdHJpZ2dlcj17e1xuICAgICAgICAgICcjJzoge1xuICAgICAgICAgICAgZGF0YVByb3ZpZGVyOiAodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgYWN0dWFsVG9rZW4gPSB0b2tlbjtcbiAgICAgICAgICAgICAgcmV0dXJuIHVzZWRUYWdzKHRva2VuKS5tYXAoKHtuYW1lLCBjaGFyfSkgPT4gKHtuYW1lLCBjaGFyfSkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICBjb21wb25lbnQ6IFRJdGVtLFxuICAgICAgICAgICAgYWZ0ZXJXaGl0ZXNwYWNlOiB0cnVlLFxuICAgICAgICAgICAgb3V0cHV0OiAoaXRlbSkgPT4gaXRlbS5jaGFyLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ1tbJzoge1xuICAgICAgICAgICAgZGF0YVByb3ZpZGVyOiAodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgYWN0dWFsVG9rZW4gPSB0b2tlbjtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldFN1Z2dlc3Rpb25zKHRva2VuKVxuICAgICAgICAgICAgICAgIC5zbGljZSgwLCAxMClcbiAgICAgICAgICAgICAgICAubWFwKCh7bmFtZSwgY2hhciwgZmlsZX0pID0+ICh7bmFtZSwgY2hhciwgZmlsZX0pKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgICAgY29tcG9uZW50OiBUSXRlbSxcbiAgICAgICAgICAgIGFmdGVyV2hpdGVzcGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIG91dHB1dDogKGl0ZW0pID0+IGl0ZW0uY2hhcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIFwiW1tcIjoge1xuICAgICAgICAgIC8vICAgZGF0YVByb3ZpZGVyOiB0b2tlbiA9PiB7XG4gICAgICAgICAgLy8gICAgIGFjdHVhbFRva2VuID0gdG9rZW47XG4gICAgICAgICAgLy8gICAgIHJldHVybiB1c2VkVGFncyh0b2tlbilcbiAgICAgICAgICAvLyAgICAgICAuc2xpY2UoMCwgMTApXG4gICAgICAgICAgLy8gICAgICAgLm1hcCgoeyBuYW1lLCBjaGFyIH0pID0+ICh7IG5hbWUsIGNoYXIgfSkpO1xuICAgICAgICAgIC8vICAgfSxcbiAgICAgICAgICAvLyAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgLy8gICBjb21wb25lbnQ6IEl0ZW0sXG4gICAgICAgICAgLy8gICBhZnRlcldoaXRlc3BhY2U6IHRydWUsXG4gICAgICAgICAgLy8gICBvdXRwdXQ6IChpdGVtLCB0cmlnZ2VyKSA9PiBpdGVtLmNoYXIsXG4gICAgICAgICAgLy8gfVxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29tbW9uLXRvb2xzLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tb24tdG9vbHMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPE9ubHkgd2hlbj17cHJvcHMudG9vbHMgIT09IHVuZGVmaW5lZH0+e3Byb3BzLnRvb2xzfTwvT25seT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRucy1jb250YWluZXJcIj5cbiAgICAgICAgICA8T25seSB3aGVuPXtzaG93Q2FuY2VsQnRufT5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYWN0aW9uLWJ0biBjYW5jZWwtYnRuXCIgb25DbGljaz17aGFuZGxlQ29tbW9uQ2FuY2VsQnRuQ2xpY2t9PlxuICAgICAgICAgICAgICBDQU5DRUwgRURJVFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9Pbmx5PlxuICAgICAgICAgIDxPbmx5IHdoZW49e3Nob3dDb25maXJtQnRufT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWN0aW9uLWJ0biBjb25maXJtLWJ0blwiXG4gICAgICAgICAgICAgIGRpc2FibGVkPXshZWRpdG9yUmVmLmN1cnJlbnQ/LnZhbHVlfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDb21tb25Db25maXJtQnRuQ2xpY2t9PlxuICAgICAgICAgICAgICB7U2F2ZU1lbW9CdXR0b25MYWJlbH1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbi10ZXh0XCI+4pyN77iPPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9Pbmx5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvcjtcbiIsIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XHJcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XHJcbn1cclxuIiwiZnVuY3Rpb24gY2FuVXNlRE9NKCkge1xuICByZXR1cm4gISEodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cuZG9jdW1lbnQgJiYgd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xufVxuXG5leHBvcnQgeyBjYW5Vc2VET00gfTtcbiIsImltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY2FuVXNlRE9NIH0gZnJvbSAnLi4vLi4vY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanMnO1xuXG4vKipcbiAqIFJlYWN0IGN1cnJlbnRseSB0aHJvd3MgYSB3YXJuaW5nIHdoZW4gdXNpbmcgdXNlTGF5b3V0RWZmZWN0IG9uIHRoZSBzZXJ2ZXIuIFRvXG4gKiBnZXQgYXJvdW5kIGl0LCB3ZSBjYW4gY29uZGl0aW9uYWxseSB1c2VFZmZlY3Qgb24gdGhlIHNlcnZlciAobm8tb3ApIGFuZFxuICogdXNlTGF5b3V0RWZmZWN0IGluIHRoZSBicm93c2VyLiBXZSBvY2Nhc2lvbmFsbHkgbmVlZCB1c2VMYXlvdXRFZmZlY3QgdG9cbiAqIGVuc3VyZSB3ZSBkb24ndCBnZXQgYSByZW5kZXIgZmxhc2ggZm9yIGNlcnRhaW4gb3BlcmF0aW9ucywgYnV0IHdlIG1heSBhbHNvXG4gKiBuZWVkIGFmZmVjdGVkIGNvbXBvbmVudHMgdG8gcmVuZGVyIG9uIHRoZSBzZXJ2ZXIuIE9uZSBleGFtcGxlIGlzIHdoZW4gc2V0dGluZ1xuICogYSBjb21wb25lbnQncyBkZXNjZW5kYW50cyB0byByZXRyaWV2ZSB0aGVpciBpbmRleCB2YWx1ZXMuXG4gKlxuICogSW1wb3J0YW50IHRvIG5vdGUgdGhhdCB1c2luZyB0aGlzIGhvb2sgYXMgYW4gZXNjYXBlIGhhdGNoIHdpbGwgYnJlYWsgdGhlXG4gKiBlc2xpbnQgZGVwZW5kZW5jeSB3YXJuaW5ncyB1bmxlc3MgeW91IHJlbmFtZSB0aGUgaW1wb3J0IHRvIGB1c2VMYXlvdXRFZmZlY3RgLlxuICogVXNlIHNwYXJpbmdseSBvbmx5IHdoZW4gdGhlIGVmZmVjdCB3b24ndCBlZmZlY3QgdGhlIHJlbmRlcmVkIEhUTUwgdG8gYXZvaWRcbiAqIGFueSBzZXJ2ZXIvY2xpZW50IG1pc21hdGNoLlxuICpcbiAqIElmIGEgdXNlTGF5b3V0RWZmZWN0IGlzIG5lZWRlZCBhbmQgdGhlIHJlc3VsdCB3b3VsZCBjcmVhdGUgYSBtaXNtYXRjaCwgaXQnc1xuICogbGlrZWx5IHRoYXQgdGhlIGNvbXBvbmVudCBpbiBxdWVzdGlvbiBzaG91bGRuJ3QgYmUgcmVuZGVyZWQgb24gdGhlIHNlcnZlciBhdFxuICogYWxsLCBzbyBhIGJldHRlciBhcHByb2FjaCB3b3VsZCBiZSB0byBsYXppbHkgcmVuZGVyIHRob3NlIGluIGEgcGFyZW50XG4gKiBjb21wb25lbnQgYWZ0ZXIgY2xpZW50LXNpZGUgaHlkcmF0aW9uLlxuICpcbiAqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2dhZWFyb24vZTdkOTdjZGYzOGEyOTA3OTI0ZWExMmU0ZWJkZjNjODVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWR1eGpzL3JlYWN0LXJlZHV4L2Jsb2IvbWFzdGVyL3NyYy91dGlscy91c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LmpzXG4gKlxuICogQHBhcmFtIGVmZmVjdFxuICogQHBhcmFtIGRlcHNcbiAqL1xuXG52YXIgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IC8qI19fUFVSRV9fKi9jYW5Vc2VET00oKSA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuZXhwb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9O1xuIiwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbi8qXG4gKiBXZWxjb21lIHRvIEByZWFjaC9hdXRvLWlkIVxuXG4gKiBMZXQncyBzZWUgaWYgd2UgY2FuIG1ha2Ugc2Vuc2Ugb2Ygd2h5IHRoaXMgaG9vayBleGlzdHMgYW5kIGl0c1xuICogaW1wbGVtZW50YXRpb24uXG4gKlxuICogU29tZSBiYWNrZ3JvdW5kOlxuICogICAxLiBBY2Nlc3NpYmlsaXR5IEFQSXMgcmVseSBoZWF2aWx5IG9uIGVsZW1lbnQgSURzXG4gKiAgIDIuIFJlcXVpcmluZyBkZXZlbG9wZXJzIHRvIHB1dCBJRHMgb24gZXZlcnkgZWxlbWVudCBpbiBSZWFjaCBVSSBpcyBib3RoXG4gKiAgICAgIGN1bWJlcnNvbWUgYW5kIGVycm9yLXByb25lXG4gKiAgIDMuIFdpdGggYSBjb21wb25lbnQgbW9kZWwsIHdlIGNhbiBnZW5lcmF0ZSBJRHMgZm9yIHRoZW0hXG4gKlxuICogU29sdXRpb24gMTogR2VuZXJhdGUgcmFuZG9tIElEcy5cbiAqXG4gKiBUaGlzIHdvcmtzIGdyZWF0IGFzIGxvbmcgYXMgeW91IGRvbid0IHNlcnZlciByZW5kZXIgeW91ciBhcHAuIFdoZW4gUmVhY3QgKGluXG4gKiB0aGUgY2xpZW50KSB0cmllcyB0byByZXVzZSB0aGUgbWFya3VwIGZyb20gdGhlIHNlcnZlciwgdGhlIElEcyB3b24ndCBtYXRjaFxuICogYW5kIFJlYWN0IHdpbGwgdGhlbiByZWNyZWF0ZSB0aGUgZW50aXJlIERPTSB0cmVlLlxuICpcbiAqIFNvbHV0aW9uIDI6IEluY3JlbWVudCBhbiBpbnRlZ2VyXG4gKlxuICogVGhpcyBzb3VuZHMgZ3JlYXQuIFNpbmNlIHdlJ3JlIHJlbmRlcmluZyB0aGUgZXhhY3Qgc2FtZSB0cmVlIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBjbGllbnQsIHdlIGNhbiBpbmNyZW1lbnQgYSBjb3VudGVyIGFuZCBnZXQgYSBkZXRlcm1pbmlzdGljIHJlc3VsdCBiZXR3ZWVuXG4gKiBjbGllbnQgYW5kIHNlcnZlci4gQWxzbywgSlMgaW50ZWdlcnMgY2FuIGdvIHVwIHRvIG5pbmUtcXVhZHJpbGxpb24uIEknbVxuICogcHJldHR5IHN1cmUgdGhlIHRhYiB3aWxsIGJlIGNsb3NlZCBiZWZvcmUgYW4gYXBwIG5ldmVyIG5lZWRzXG4gKiAxMCBxdWFkcmlsbGlvbiBJRHMhXG4gKlxuICogUHJvYmxlbSBzb2x2ZWQsIHJpZ2h0P1xuICpcbiAqIEFoLCBidXQgdGhlcmUncyBhIGNhdGNoISBSZWFjdCdzIGNvbmN1cnJlbnQgcmVuZGVyaW5nIG1ha2VzIHRoaXMgYXBwcm9hY2hcbiAqIG5vbi1kZXRlcm1pbmlzdGljLiBXaGlsZSB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgd2lsbCBlbmQgdXAgd2l0aCB0aGUgc2FtZVxuICogZWxlbWVudHMgaW4gdGhlIGVuZCwgZGVwZW5kaW5nIG9uIHN1c3BlbnNlIGJvdW5kYXJpZXMgKGFuZCBwb3NzaWJseSBzb21lIHVzZXJcbiAqIGlucHV0IGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIpIHRoZSBpbmNyZW1lbnRpbmcgaW50ZWdlcnMgd29uJ3QgYWx3YXlzIG1hdGNoXG4gKiB1cC5cbiAqXG4gKiBTb2x1dGlvbiAzOiBEb24ndCB1c2UgSURzIGF0IGFsbCBvbiB0aGUgc2VydmVyOyBwYXRjaCBhZnRlciBmaXJzdCByZW5kZXIuXG4gKlxuICogV2hhdCB3ZSd2ZSBkb25lIGhlcmUgaXMgc29sdXRpb24gMiB3aXRoIHNvbWUgdHJpY2tzLiBXaXRoIHRoaXMgYXBwcm9hY2gsIHRoZVxuICogSUQgcmV0dXJuZWQgaXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBmaXJzdCByZW5kZXIuIFRoaXMgd2F5IHRoZSBzZXJ2ZXIgYW5kXG4gKiBjbGllbnQgaGF2ZSB0aGUgc2FtZSBtYXJrdXAgbm8gbWF0dGVyIGhvdyB3aWxkIHRoZSBjb25jdXJyZW50IHJlbmRlcmluZyBtYXlcbiAqIGhhdmUgZ290dGVuLlxuICpcbiAqIEFmdGVyIHRoZSByZW5kZXIsIHdlIHBhdGNoIHVwIHRoZSBjb21wb25lbnRzIHdpdGggYW4gaW5jcmVtZW50ZWQgSUQuIFRoaXNcbiAqIGNhdXNlcyBhIGRvdWJsZSByZW5kZXIgb24gYW55IGNvbXBvbmVudHMgd2l0aCBgdXNlSWRgLiBTaG91bGRuJ3QgYmUgYSBwcm9ibGVtXG4gKiBzaW5jZSB0aGUgY29tcG9uZW50cyB1c2luZyB0aGlzIGhvb2sgc2hvdWxkIGJlIHNtYWxsLCBhbmQgd2UncmUgb25seSB1cGRhdGluZ1xuICogdGhlIElEIGF0dHJpYnV0ZSBvbiB0aGUgRE9NLCBub3RoaW5nIGJpZyBpcyBoYXBwZW5pbmcuXG4gKlxuICogSXQgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGluY3JlbWVudGVkIG51bWJlciwgdGhvdWdoLS13ZSBjb3VsZCBkbyBnZW5lcmF0ZVxuICogcmFuZG9tIHN0cmluZ3MgaW5zdGVhZCwgYnV0IGluY3JlbWVudGluZyBhIG51bWJlciBpcyBwcm9iYWJseSB0aGUgY2hlYXBlc3RcbiAqIHRoaW5nIHdlIGNhbiBkby5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIHdlIG9ubHkgZG8gdGhpcyBwYXRjaHVwIG9uIHRoZSB2ZXJ5IGZpcnN0IGNsaWVudCByZW5kZXIgZXZlci5cbiAqIEFueSBjYWxscyB0byBgdXNlSWRgIHRoYXQgaGFwcGVuIGR5bmFtaWNhbGx5IGluIHRoZSBjbGllbnQgd2lsbCBiZVxuICogcG9wdWxhdGVkIGltbWVkaWF0ZWx5IHdpdGggYSB2YWx1ZS4gU28sIHdlIG9ubHkgZ2V0IHRoZSBkb3VibGUgcmVuZGVyIGFmdGVyXG4gKiBzZXJ2ZXIgaHlkcmF0aW9uIGFuZCBuZXZlciBhZ2FpbiwgU08gQkFDSyBPRkYgQUxSSUdIVD9cbiAqL1xudmFyIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IGZhbHNlO1xudmFyIGlkID0gMDtcblxudmFyIGdlbklkID0gZnVuY3Rpb24gZ2VuSWQoKSB7XG4gIHJldHVybiArK2lkO1xufTtcbi8qKlxuICogdXNlSWRcbiAqXG4gKiBBdXRvZ2VuZXJhdGUgSURzIHRvIGZhY2lsaXRhdGUgV0FJLUFSSUEgYW5kIHNlcnZlciByZW5kZXJpbmcuXG4gKlxuICogTm90ZTogVGhlIHJldHVybmVkIElEIHdpbGwgaW5pdGlhbGx5IGJlIGBudWxsYCBhbmQgd2lsbCB1cGRhdGUgYWZ0ZXIgYVxuICogY29tcG9uZW50IG1vdW50cy4gVXNlcnMgbWF5IG5lZWQgdG8gc3VwcGx5IHRoZWlyIG93biBJRCBpZiB0aGV5IG5lZWRcbiAqIGNvbnNpc3RlbnQgdmFsdWVzIGZvciBTU1IuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9hdXRvLWlkXG4gKi9cblxuXG5mdW5jdGlvbiB1c2VJZChpZEZyb21Qcm9wcykge1xuICAvKlxuICAgKiBJZiB0aGlzIGluc3RhbmNlIGlzbid0IHBhcnQgb2YgdGhlIGluaXRpYWwgcmVuZGVyLCB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoZVxuICAgKiBkb3VibGUgcmVuZGVyL3BhdGNoLXVwIGRhbmNlLiBXZSBjYW4ganVzdCBnZW5lcmF0ZSB0aGUgSUQgYW5kIHJldHVybiBpdC5cbiAgICovXG4gIHZhciBpbml0aWFsSWQgPSBpZEZyb21Qcm9wcyB8fCAoc2VydmVySGFuZG9mZkNvbXBsZXRlID8gZ2VuSWQoKSA6IG51bGwpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShpbml0aWFsSWQpLFxuICAgICAgaWQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJZCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaWQgPT09IG51bGwpIHtcbiAgICAgIC8qXG4gICAgICAgKiBQYXRjaCB0aGUgSUQgYWZ0ZXIgcmVuZGVyLiBXZSBkbyB0aGlzIGluIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGF2b2lkIGFueVxuICAgICAgICogcmVuZGVyaW5nIGZsaWNrZXIsIHRob3VnaCBpdCdsbCBtYWtlIHRoZSBmaXJzdCByZW5kZXIgc2xvd2VyICh1bmxpa2VseVxuICAgICAgICogdG8gbWF0dGVyLCBidXQgeW91J3JlIHdlbGNvbWUgdG8gbWVhc3VyZSB5b3VyIGFwcCBhbmQgbGV0IHVzIGtub3cgaWZcbiAgICAgICAqIGl0J3MgYSBwcm9ibGVtKS5cbiAgICAgICAqL1xuICAgICAgc2V0SWQoZ2VuSWQoKSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgW10pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAvKlxuICAgICAgICogRmxhZyBhbGwgZnV0dXJlIHVzZXMgb2YgYHVzZUlkYCB0byBza2lwIHRoZSB1cGRhdGUgZGFuY2UuIFRoaXMgaXMgaW5cbiAgICAgICAqIGB1c2VFZmZlY3RgIGJlY2F1c2UgaXQgZ29lcyBhZnRlciBgdXNlTGF5b3V0RWZmZWN0YCwgZW5zdXJpbmcgd2UgZG9uJ3RcbiAgICAgICAqIGFjY2lkZW50YWxseSBiYWlsIG91dCBvZiB0aGUgcGF0Y2gtdXAgZGFuY2UgcHJlbWF0dXJlbHkuXG4gICAgICAgKi9cbiAgICAgIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IHRydWU7XG4gICAgfVxuICB9LCBbXSk7XG4gIHJldHVybiBpZCAhPSBudWxsID8gU3RyaW5nKGlkKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHsgdXNlSWQgfTtcbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkRm9ybWF0TG9uZ0ZuKGFyZ3MpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgLy8gVE9ETzogUmVtb3ZlIFN0cmluZygpXG4gICAgdmFyIHdpZHRoID0gb3B0aW9ucy53aWR0aCA/IFN0cmluZyhvcHRpb25zLndpZHRoKSA6IGFyZ3MuZGVmYXVsdFdpZHRoO1xuICAgIHZhciBmb3JtYXQgPSBhcmdzLmZvcm1hdHNbd2lkdGhdIHx8IGFyZ3MuZm9ybWF0c1thcmdzLmRlZmF1bHRXaWR0aF07XG4gICAgcmV0dXJuIGZvcm1hdDtcbiAgfTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBidWlsZExvY2FsaXplRm4oYXJncykge1xuICByZXR1cm4gZnVuY3Rpb24gKGRpcnR5SW5kZXgsIGRpcnR5T3B0aW9ucykge1xuICAgIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICAgIHZhciBjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0ID8gU3RyaW5nKG9wdGlvbnMuY29udGV4dCkgOiAnc3RhbmRhbG9uZSc7XG4gICAgdmFyIHZhbHVlc0FycmF5O1xuXG4gICAgaWYgKGNvbnRleHQgPT09ICdmb3JtYXR0aW5nJyAmJiBhcmdzLmZvcm1hdHRpbmdWYWx1ZXMpIHtcbiAgICAgIHZhciBkZWZhdWx0V2lkdGggPSBhcmdzLmRlZmF1bHRGb3JtYXR0aW5nV2lkdGggfHwgYXJncy5kZWZhdWx0V2lkdGg7XG4gICAgICB2YXIgd2lkdGggPSBvcHRpb25zLndpZHRoID8gU3RyaW5nKG9wdGlvbnMud2lkdGgpIDogZGVmYXVsdFdpZHRoO1xuICAgICAgdmFsdWVzQXJyYXkgPSBhcmdzLmZvcm1hdHRpbmdWYWx1ZXNbd2lkdGhdIHx8IGFyZ3MuZm9ybWF0dGluZ1ZhbHVlc1tkZWZhdWx0V2lkdGhdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2RlZmF1bHRXaWR0aCA9IGFyZ3MuZGVmYXVsdFdpZHRoO1xuXG4gICAgICB2YXIgX3dpZHRoID0gb3B0aW9ucy53aWR0aCA/IFN0cmluZyhvcHRpb25zLndpZHRoKSA6IGFyZ3MuZGVmYXVsdFdpZHRoO1xuXG4gICAgICB2YWx1ZXNBcnJheSA9IGFyZ3MudmFsdWVzW193aWR0aF0gfHwgYXJncy52YWx1ZXNbX2RlZmF1bHRXaWR0aF07XG4gICAgfVxuXG4gICAgdmFyIGluZGV4ID0gYXJncy5hcmd1bWVudENhbGxiYWNrID8gYXJncy5hcmd1bWVudENhbGxiYWNrKGRpcnR5SW5kZXgpIDogZGlydHlJbmRleDsgLy8gQHRzLWlnbm9yZTogRm9yIHNvbWUgcmVhc29uIFR5cGVTY3JpcHQganVzdCBkb24ndCB3YW50IHRvIG1hdGNoIGl0LCBubyBtYXR0ZXIgaG93IGhhcmQgd2UgdHJ5LiBJIGNoYWxsZW5nZSB5b3UgdG8gdHJ5IHRvIHJlbW92ZSBpdCFcblxuICAgIHJldHVybiB2YWx1ZXNBcnJheVtpbmRleF07XG4gIH07XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnVpbGRNYXRjaFBhdHRlcm5GbihhcmdzKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgIHZhciBtYXRjaFJlc3VsdCA9IHN0cmluZy5tYXRjaChhcmdzLm1hdGNoUGF0dGVybik7XG4gICAgaWYgKCFtYXRjaFJlc3VsdCkgcmV0dXJuIG51bGw7XG4gICAgdmFyIG1hdGNoZWRTdHJpbmcgPSBtYXRjaFJlc3VsdFswXTtcbiAgICB2YXIgcGFyc2VSZXN1bHQgPSBzdHJpbmcubWF0Y2goYXJncy5wYXJzZVBhdHRlcm4pO1xuICAgIGlmICghcGFyc2VSZXN1bHQpIHJldHVybiBudWxsO1xuICAgIHZhciB2YWx1ZSA9IGFyZ3MudmFsdWVDYWxsYmFjayA/IGFyZ3MudmFsdWVDYWxsYmFjayhwYXJzZVJlc3VsdFswXSkgOiBwYXJzZVJlc3VsdFswXTtcbiAgICB2YWx1ZSA9IG9wdGlvbnMudmFsdWVDYWxsYmFjayA/IG9wdGlvbnMudmFsdWVDYWxsYmFjayh2YWx1ZSkgOiB2YWx1ZTtcbiAgICB2YXIgcmVzdCA9IHN0cmluZy5zbGljZShtYXRjaGVkU3RyaW5nLmxlbmd0aCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHJlc3Q6IHJlc3RcbiAgICB9O1xuICB9O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkTWF0Y2hGbihhcmdzKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgIHZhciB3aWR0aCA9IG9wdGlvbnMud2lkdGg7XG4gICAgdmFyIG1hdGNoUGF0dGVybiA9IHdpZHRoICYmIGFyZ3MubWF0Y2hQYXR0ZXJuc1t3aWR0aF0gfHwgYXJncy5tYXRjaFBhdHRlcm5zW2FyZ3MuZGVmYXVsdE1hdGNoV2lkdGhdO1xuICAgIHZhciBtYXRjaFJlc3VsdCA9IHN0cmluZy5tYXRjaChtYXRjaFBhdHRlcm4pO1xuXG4gICAgaWYgKCFtYXRjaFJlc3VsdCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIG1hdGNoZWRTdHJpbmcgPSBtYXRjaFJlc3VsdFswXTtcbiAgICB2YXIgcGFyc2VQYXR0ZXJucyA9IHdpZHRoICYmIGFyZ3MucGFyc2VQYXR0ZXJuc1t3aWR0aF0gfHwgYXJncy5wYXJzZVBhdHRlcm5zW2FyZ3MuZGVmYXVsdFBhcnNlV2lkdGhdO1xuICAgIHZhciBrZXkgPSBBcnJheS5pc0FycmF5KHBhcnNlUGF0dGVybnMpID8gZmluZEluZGV4KHBhcnNlUGF0dGVybnMsIGZ1bmN0aW9uIChwYXR0ZXJuKSB7XG4gICAgICByZXR1cm4gcGF0dGVybi50ZXN0KG1hdGNoZWRTdHJpbmcpO1xuICAgIH0pIDogZmluZEtleShwYXJzZVBhdHRlcm5zLCBmdW5jdGlvbiAocGF0dGVybikge1xuICAgICAgcmV0dXJuIHBhdHRlcm4udGVzdChtYXRjaGVkU3RyaW5nKTtcbiAgICB9KTtcbiAgICB2YXIgdmFsdWU7XG4gICAgdmFsdWUgPSBhcmdzLnZhbHVlQ2FsbGJhY2sgPyBhcmdzLnZhbHVlQ2FsbGJhY2soa2V5KSA6IGtleTtcbiAgICB2YWx1ZSA9IG9wdGlvbnMudmFsdWVDYWxsYmFjayA/IG9wdGlvbnMudmFsdWVDYWxsYmFjayh2YWx1ZSkgOiB2YWx1ZTtcbiAgICB2YXIgcmVzdCA9IHN0cmluZy5zbGljZShtYXRjaGVkU3RyaW5nLmxlbmd0aCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHJlc3Q6IHJlc3RcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBmaW5kS2V5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAob2JqZWN0Lmhhc093blByb3BlcnR5KGtleSkgJiYgcHJlZGljYXRlKG9iamVjdFtrZXldKSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSkge1xuICBmb3IgKHZhciBrZXkgPSAwOyBrZXkgPCBhcnJheS5sZW5ndGg7IGtleSsrKSB7XG4gICAgaWYgKHByZWRpY2F0ZShhcnJheVtrZXldKSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlcXVpcmVkQXJncyhyZXF1aXJlZCwgYXJncykge1xuICBpZiAoYXJncy5sZW5ndGggPCByZXF1aXJlZCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocmVxdWlyZWQgKyAnIGFyZ3VtZW50JyArIChyZXF1aXJlZCA+IDEgPyAncycgOiAnJykgKyAnIHJlcXVpcmVkLCBidXQgb25seSAnICsgYXJncy5sZW5ndGggKyAnIHByZXNlbnQnKTtcbiAgfVxufSIsImltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIHRvRGF0ZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCB0aGUgZ2l2ZW4gYXJndW1lbnQgdG8gYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgaXRzIGNsb25lLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhIG51bWJlciwgaXQgaXMgdHJlYXRlZCBhcyBhIHRpbWVzdGFtcC5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgbm9uZSBvZiB0aGUgYWJvdmUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIEludmFsaWQgRGF0ZS5cbiAqXG4gKiAqKk5vdGUqKjogKmFsbCogRGF0ZSBhcmd1bWVudHMgcGFzc2VkIHRvIGFueSAqZGF0ZS1mbnMqIGZ1bmN0aW9uIGlzIHByb2Nlc3NlZCBieSBgdG9EYXRlYC5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBhcmd1bWVudCAtIHRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDbG9uZSB0aGUgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IHRvRGF0ZShuZXcgRGF0ZSgyMDE0LCAxLCAxMSwgMTEsIDMwLCAzMCkpXG4gKiAvLz0+IFR1ZSBGZWIgMTEgMjAxNCAxMTozMDozMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IHRoZSB0aW1lc3RhbXAgdG8gZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IHRvRGF0ZSgxMzkyMDk4NDMwMDAwKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0b0RhdGUoYXJndW1lbnQpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBhcmdTdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnQpOyAvLyBDbG9uZSB0aGUgZGF0ZVxuXG4gIGlmIChhcmd1bWVudCBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIGFyZ3VtZW50ID09PSAnb2JqZWN0JyAmJiBhcmdTdHIgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgIC8vIFByZXZlbnQgdGhlIGRhdGUgdG8gbG9zZSB0aGUgbWlsbGlzZWNvbmRzIHdoZW4gcGFzc2VkIHRvIG5ldyBEYXRlKCkgaW4gSUUxMFxuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudC5nZXRUaW1lKCkpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudCA9PT0gJ251bWJlcicgfHwgYXJnU3RyID09PSAnW29iamVjdCBOdW1iZXJdJykge1xuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCh0eXBlb2YgYXJndW1lbnQgPT09ICdzdHJpbmcnIHx8IGFyZ1N0ciA9PT0gJ1tvYmplY3QgU3RyaW5nXScpICYmIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcIlN0YXJ0aW5nIHdpdGggdjIuMC4wLWJldGEuMSBkYXRlLWZucyBkb2Vzbid0IGFjY2VwdCBzdHJpbmdzIGFzIGRhdGUgYXJndW1lbnRzLiBQbGVhc2UgdXNlIGBwYXJzZUlTT2AgdG8gcGFyc2Ugc3RyaW5ncy4gU2VlOiBodHRwczovL2dpdC5pby9manVsZVwiKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcblxuICAgICAgY29uc29sZS53YXJuKG5ldyBFcnJvcigpLnN0YWNrKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvSW50ZWdlcihkaXJ0eU51bWJlcikge1xuICBpZiAoZGlydHlOdW1iZXIgPT09IG51bGwgfHwgZGlydHlOdW1iZXIgPT09IHRydWUgfHwgZGlydHlOdW1iZXIgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIHZhciBudW1iZXIgPSBOdW1iZXIoZGlydHlOdW1iZXIpO1xuXG4gIGlmIChpc05hTihudW1iZXIpKSB7XG4gICAgcmV0dXJuIG51bWJlcjtcbiAgfVxuXG4gIHJldHVybiBudW1iZXIgPCAwID8gTWF0aC5jZWlsKG51bWJlcikgOiBNYXRoLmZsb29yKG51bWJlcik7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbmltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL3RvSW50ZWdlci9pbmRleC5qc1wiOyAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgYSBwYXJ0IG9mIHB1YmxpYyBBUEkgd2hlbiBVVEMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZC5cbi8vIFNlZSBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8zNzZcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RhcnRPZlVUQ1dlZWsoZGlydHlEYXRlLCBkaXJ0eU9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGU7XG4gIHZhciBsb2NhbGVXZWVrU3RhcnRzT24gPSBsb2NhbGUgJiYgbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMud2Vla1N0YXJ0c09uO1xuICB2YXIgZGVmYXVsdFdlZWtTdGFydHNPbiA9IGxvY2FsZVdlZWtTdGFydHNPbiA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihsb2NhbGVXZWVrU3RhcnRzT24pO1xuICB2YXIgd2Vla1N0YXJ0c09uID0gb3B0aW9ucy53ZWVrU3RhcnRzT24gPT0gbnVsbCA/IGRlZmF1bHRXZWVrU3RhcnRzT24gOiB0b0ludGVnZXIob3B0aW9ucy53ZWVrU3RhcnRzT24pOyAvLyBUZXN0IGlmIHdlZWtTdGFydHNPbiBpcyBiZXR3ZWVuIDAgYW5kIDYgX2FuZF8gaXMgbm90IE5hTlxuXG4gIGlmICghKHdlZWtTdGFydHNPbiA+PSAwICYmIHdlZWtTdGFydHNPbiA8PSA2KSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd3ZWVrU3RhcnRzT24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYgaW5jbHVzaXZlbHknKTtcbiAgfVxuXG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkYXkgPSBkYXRlLmdldFVUQ0RheSgpO1xuICB2YXIgZGlmZiA9IChkYXkgPCB3ZWVrU3RhcnRzT24gPyA3IDogMCkgKyBkYXkgLSB3ZWVrU3RhcnRzT247XG4gIGRhdGUuc2V0VVRDRGF0ZShkYXRlLmdldFVUQ0RhdGUoKSAtIGRpZmYpO1xuICBkYXRlLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBhZGREYXlzXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBkYXlzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgZGF5cyB0byBiZSBhZGRlZC4gUG9zaXRpdmUgZGVjaW1hbHMgd2lsbCBiZSByb3VuZGVkIHVzaW5nIGBNYXRoLmZsb29yYCwgZGVjaW1hbHMgbGVzcyB0aGFuIHplcm8gd2lsbCBiZSByb3VuZGVkIHVzaW5nIGBNYXRoLmNlaWxgLlxuICogQHJldHVybnMge0RhdGV9IC0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIGRheXMgYWRkZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gLSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMTAgZGF5cyB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gYWRkRGF5cyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgMTApXG4gKiAvLz0+IFRodSBTZXAgMTEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZERheXMoZGlydHlEYXRlLCBkaXJ0eUFtb3VudCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG5cbiAgaWYgKGlzTmFOKGFtb3VudCkpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIGlmICghYW1vdW50KSB7XG4gICAgLy8gSWYgMCBkYXlzLCBuby1vcCB0byBhdm9pZCBjaGFuZ2luZyB0aW1lcyBpbiB0aGUgaG91ciBiZWZvcmUgZW5kIG9mIERTVFxuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgYW1vdW50KTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgYWRkTW9udGhzXG4gKiBAY2F0ZWdvcnkgTW9udGggSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1vbnRocyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtb250aHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgbW9udGhzIHRvIGJlIGFkZGVkLiBQb3NpdGl2ZSBkZWNpbWFscyB3aWxsIGJlIHJvdW5kZWQgdXNpbmcgYE1hdGguZmxvb3JgLCBkZWNpbWFscyBsZXNzIHRoYW4gemVybyB3aWxsIGJlIHJvdW5kZWQgdXNpbmcgYE1hdGguY2VpbGAuXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIG1vbnRocyBhZGRlZFxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNSBtb250aHMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZE1vbnRocyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgNSlcbiAqIC8vPT4gU3VuIEZlYiAwMSAyMDE1IDAwOjAwOjAwXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkTW9udGhzKGRpcnR5RGF0ZSwgZGlydHlBbW91bnQpIHtcbiAgcmVxdWlyZWRBcmdzKDIsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBhbW91bnQgPSB0b0ludGVnZXIoZGlydHlBbW91bnQpO1xuXG4gIGlmIChpc05hTihhbW91bnQpKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cblxuICBpZiAoIWFtb3VudCkge1xuICAgIC8vIElmIDAgbW9udGhzLCBuby1vcCB0byBhdm9pZCBjaGFuZ2luZyB0aW1lcyBpbiB0aGUgaG91ciBiZWZvcmUgZW5kIG9mIERTVFxuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgdmFyIGRheU9mTW9udGggPSBkYXRlLmdldERhdGUoKTsgLy8gVGhlIEpTIERhdGUgb2JqZWN0IHN1cHBvcnRzIGRhdGUgbWF0aCBieSBhY2NlcHRpbmcgb3V0LW9mLWJvdW5kcyB2YWx1ZXMgZm9yXG4gIC8vIG1vbnRoLCBkYXksIGV0Yy4gRm9yIGV4YW1wbGUsIG5ldyBEYXRlKDIwMjAsIDAsIDApIHJldHVybnMgMzEgRGVjIDIwMTkgYW5kXG4gIC8vIG5ldyBEYXRlKDIwMjAsIDEzLCAxKSByZXR1cm5zIDEgRmViIDIwMjEuICBUaGlzIGlzICphbG1vc3QqIHRoZSBiZWhhdmlvciB3ZVxuICAvLyB3YW50IGV4Y2VwdCB0aGF0IGRhdGVzIHdpbGwgd3JhcCBhcm91bmQgdGhlIGVuZCBvZiBhIG1vbnRoLCBtZWFuaW5nIHRoYXRcbiAgLy8gbmV3IERhdGUoMjAyMCwgMTMsIDMxKSB3aWxsIHJldHVybiAzIE1hciAyMDIxIG5vdCAyOCBGZWIgMjAyMSBhcyBkZXNpcmVkLiBTb1xuICAvLyB3ZSdsbCBkZWZhdWx0IHRvIHRoZSBlbmQgb2YgdGhlIGRlc2lyZWQgbW9udGggYnkgYWRkaW5nIDEgdG8gdGhlIGRlc2lyZWRcbiAgLy8gbW9udGggYW5kIHVzaW5nIGEgZGF0ZSBvZiAwIHRvIGJhY2sgdXAgb25lIGRheSB0byB0aGUgZW5kIG9mIHRoZSBkZXNpcmVkXG4gIC8vIG1vbnRoLlxuXG4gIHZhciBlbmRPZkRlc2lyZWRNb250aCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcbiAgZW5kT2ZEZXNpcmVkTW9udGguc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgYW1vdW50ICsgMSwgMCk7XG4gIHZhciBkYXlzSW5Nb250aCA9IGVuZE9mRGVzaXJlZE1vbnRoLmdldERhdGUoKTtcblxuICBpZiAoZGF5T2ZNb250aCA+PSBkYXlzSW5Nb250aCkge1xuICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgYXQgdGhlIGVuZCBvZiB0aGUgbW9udGgsIHRoZW4gdGhpcyBpcyB0aGUgY29ycmVjdCBkYXRlXG4gICAgLy8gYW5kIHdlJ3JlIGRvbmUuXG4gICAgcmV0dXJuIGVuZE9mRGVzaXJlZE1vbnRoO1xuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSwgd2Ugbm93IGtub3cgdGhhdCBzZXR0aW5nIHRoZSBvcmlnaW5hbCBkYXktb2YtbW9udGggdmFsdWUgd29uJ3RcbiAgICAvLyBjYXVzZSBhbiBvdmVyZmxvdywgc28gc2V0IHRoZSBkZXNpcmVkIGRheS1vZi1tb250aC4gTm90ZSB0aGF0IHdlIGNhbid0XG4gICAgLy8ganVzdCBzZXQgdGhlIGRhdGUgb2YgYGVuZE9mRGVzaXJlZE1vbnRoYCBiZWNhdXNlIHRoYXQgb2JqZWN0IG1heSBoYXZlIGhhZFxuICAgIC8vIGl0cyB0aW1lIGNoYW5nZWQgaW4gdGhlIHVudXN1YWwgY2FzZSB3aGVyZSB3aGVyZSBhIERTVCB0cmFuc2l0aW9uIHdhcyBvblxuICAgIC8vIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGggYW5kIGl0cyBsb2NhbCB0aW1lIHdhcyBpbiB0aGUgaG91ciBza2lwcGVkIG9yXG4gICAgLy8gcmVwZWF0ZWQgbmV4dCB0byBhIERTVCB0cmFuc2l0aW9uLiAgU28gd2UgdXNlIGBkYXRlYCBpbnN0ZWFkIHdoaWNoIGlzXG4gICAgLy8gZ3VhcmFudGVlZCB0byBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbCB0aW1lLlxuICAgIGRhdGUuc2V0RnVsbFllYXIoZW5kT2ZEZXNpcmVkTW9udGguZ2V0RnVsbFllYXIoKSwgZW5kT2ZEZXNpcmVkTW9udGguZ2V0TW9udGgoKSwgZGF5T2ZNb250aCk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn0iLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBhZGRNaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBNaWxsaXNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0ge051bWJlcn0gYW1vdW50IC0gdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdG8gYmUgYWRkZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgbWlsbGlzZWNvbmRzIGFkZGVkXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFkZCA3NTAgbWlsbGlzZWNvbmRzIHRvIDEwIEp1bHkgMjAxNCAxMjo0NTozMC4wMDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRNaWxsaXNlY29uZHMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCA0NSwgMzAsIDApLCA3NTApXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjo0NTozMC43NTBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRNaWxsaXNlY29uZHMoZGlydHlEYXRlLCBkaXJ0eUFtb3VudCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIHRpbWVzdGFtcCA9IHRvRGF0ZShkaXJ0eURhdGUpLmdldFRpbWUoKTtcbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG4gIHJldHVybiBuZXcgRGF0ZSh0aW1lc3RhbXAgKyBhbW91bnQpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgc3RhcnQgb2YgYSB3ZWVrXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZXZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFN1biBBdWcgMzEgMjAxNCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0aGUgd2VlayBzdGFydHMgb24gTW9uZGF5LCB0aGUgc3RhcnQgb2YgdGhlIHdlZWsgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiBNb24gU2VwIDAxIDIwMTQgMDA6MDA6MDBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdGFydE9mV2VlayhkaXJ0eURhdGUsIGRpcnR5T3B0aW9ucykge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIG9wdGlvbnMgPSBkaXJ0eU9wdGlvbnMgfHwge307XG4gIHZhciBsb2NhbGUgPSBvcHRpb25zLmxvY2FsZTtcbiAgdmFyIGxvY2FsZVdlZWtTdGFydHNPbiA9IGxvY2FsZSAmJiBsb2NhbGUub3B0aW9ucyAmJiBsb2NhbGUub3B0aW9ucy53ZWVrU3RhcnRzT247XG4gIHZhciBkZWZhdWx0V2Vla1N0YXJ0c09uID0gbG9jYWxlV2Vla1N0YXJ0c09uID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKGxvY2FsZVdlZWtTdGFydHNPbik7XG4gIHZhciB3ZWVrU3RhcnRzT24gPSBvcHRpb25zLndlZWtTdGFydHNPbiA9PSBudWxsID8gZGVmYXVsdFdlZWtTdGFydHNPbiA6IHRvSW50ZWdlcihvcHRpb25zLndlZWtTdGFydHNPbik7IC8vIFRlc3QgaWYgd2Vla1N0YXJ0c09uIGlzIGJldHdlZW4gMCBhbmQgNiBfYW5kXyBpcyBub3QgTmFOXG5cbiAgaWYgKCEod2Vla1N0YXJ0c09uID49IDAgJiYgd2Vla1N0YXJ0c09uIDw9IDYpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3dlZWtTdGFydHNPbiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNiBpbmNsdXNpdmVseScpO1xuICB9XG5cbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRheSA9IGRhdGUuZ2V0RGF5KCk7XG4gIHZhciBkaWZmID0gKGRheSA8IHdlZWtTdGFydHNPbiA/IDcgOiAwKSArIGRheSAtIHdlZWtTdGFydHNPbjtcbiAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpIC0gZGlmZik7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHJldHVybiBkYXRlO1xufSIsIi8qKlxuICogR29vZ2xlIENocm9tZSBhcyBvZiA2Ny4wLjMzOTYuODcgaW50cm9kdWNlZCB0aW1lem9uZXMgd2l0aCBvZmZzZXQgdGhhdCBpbmNsdWRlcyBzZWNvbmRzLlxuICogVGhleSB1c3VhbGx5IGFwcGVhciBmb3IgZGF0ZXMgdGhhdCBkZW5vdGUgdGltZSBiZWZvcmUgdGhlIHRpbWV6b25lcyB3ZXJlIGludHJvZHVjZWRcbiAqIChlLmcuIGZvciAnRXVyb3BlL1ByYWd1ZScgdGltZXpvbmUgdGhlIG9mZnNldCBpcyBHTVQrMDA6NTc6NDQgYmVmb3JlIDEgT2N0b2JlciAxODkxXG4gKiBhbmQgR01UKzAxOjAwOjAwIGFmdGVyIHRoYXQgZGF0ZSlcbiAqXG4gKiBEYXRlI2dldFRpbWV6b25lT2Zmc2V0IHJldHVybnMgdGhlIG9mZnNldCBpbiBtaW51dGVzIGFuZCB3b3VsZCByZXR1cm4gNTcgZm9yIHRoZSBleGFtcGxlIGFib3ZlLFxuICogd2hpY2ggd291bGQgbGVhZCB0byBpbmNvcnJlY3QgY2FsY3VsYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdGltZXpvbmUgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyB0aGF0IHRha2VzIHNlY29uZHMgaW4gYWNjb3VudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhkYXRlKSB7XG4gIHZhciB1dGNEYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCBkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkpO1xuICB1dGNEYXRlLnNldFVUQ0Z1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG4gIHJldHVybiBkYXRlLmdldFRpbWUoKSAtIHV0Y0RhdGUuZ2V0VGltZSgpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgc3RhcnRPZkRheVxuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgZGF5IGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBkYXkgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHJldHVybnMge0RhdGV9IHRoZSBzdGFydCBvZiBhIGRheVxuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhIGRheSBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZEYXkobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gVHVlIFNlcCAwMiAyMDE0IDAwOjAwOjAwXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RhcnRPZkRheShkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHJldHVybiBkYXRlO1xufSIsImltcG9ydCBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIGZyb20gXCIuLi9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mRGF5IGZyb20gXCIuLi9zdGFydE9mRGF5L2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9EQVkgPSA4NjQwMDAwMDtcbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBjYWxlbmRhciBkYXlzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHRpbWVzIGFyZSByZW1vdmVkXG4gKiBmcm9tIHRoZSBkYXRlcyBhbmQgdGhlbiB0aGUgZGlmZmVyZW5jZSBpbiBkYXlzIGlzIGNhbGN1bGF0ZWQuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlTGVmdCAtIHRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlUmlnaHQgLSB0aGUgZWFybGllciBkYXRlXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXNcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6MDA6MDAgYW5kIDIgSnVseSAyMDEyIDAwOjAwOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKFxuICogICBuZXcgRGF0ZSgyMDEyLCA2LCAyLCAwLCAwKSxcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMiwgMjMsIDApXG4gKiApXG4gKiAvLz0+IDM2NlxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTEgMjM6NTk6MDAgYW5kIDMgSnVseSAyMDExIDAwOjAxOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKFxuICogICBuZXcgRGF0ZSgyMDExLCA2LCAzLCAwLCAxKSxcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMiwgMjMsIDU5KVxuICogKVxuICogLy89PiAxXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRpcnR5RGF0ZUxlZnQsIGRpcnR5RGF0ZVJpZ2h0KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgc3RhcnRPZkRheUxlZnQgPSBzdGFydE9mRGF5KGRpcnR5RGF0ZUxlZnQpO1xuICB2YXIgc3RhcnRPZkRheVJpZ2h0ID0gc3RhcnRPZkRheShkaXJ0eURhdGVSaWdodCk7XG4gIHZhciB0aW1lc3RhbXBMZWZ0ID0gc3RhcnRPZkRheUxlZnQuZ2V0VGltZSgpIC0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhzdGFydE9mRGF5TGVmdCk7XG4gIHZhciB0aW1lc3RhbXBSaWdodCA9IHN0YXJ0T2ZEYXlSaWdodC5nZXRUaW1lKCkgLSBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKHN0YXJ0T2ZEYXlSaWdodCk7IC8vIFJvdW5kIHRoZSBudW1iZXIgb2YgZGF5cyB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyXG4gIC8vIGJlY2F1c2UgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYSBkYXkgaXMgbm90IGNvbnN0YW50XG4gIC8vIChlLmcuIGl0J3MgZGlmZmVyZW50IGluIHRoZSBkYXkgb2YgdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KVxuXG4gIHJldHVybiBNYXRoLnJvdW5kKCh0aW1lc3RhbXBMZWZ0IC0gdGltZXN0YW1wUmlnaHQpIC8gTUlMTElTRUNPTkRTX0lOX0RBWSk7XG59IiwiaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCBhZGREYXlzIGZyb20gXCIuLi9hZGREYXlzL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBhZGRXZWVrc1xuICogQGNhdGVnb3J5IFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHdlZWtzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHdlZWsgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2Ygd2Vla3MgdG8gYmUgYWRkZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgd2Vla3MgYWRkZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDQgd2Vla3MgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZFdlZWtzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCA0KVxuICogLy89PiBNb24gU2VwIDI5IDIwMTQgMDA6MDA6MDBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRXZWVrcyhkaXJ0eURhdGUsIGRpcnR5QW1vdW50KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgYW1vdW50ID0gdG9JbnRlZ2VyKGRpcnR5QW1vdW50KTtcbiAgdmFyIGRheXMgPSBhbW91bnQgKiA3O1xuICByZXR1cm4gYWRkRGF5cyhkaXJ0eURhdGUsIGRheXMpO1xufSIsImltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzXCI7XG5pbXBvcnQgYWRkTW9udGhzIGZyb20gXCIuLi9hZGRNb250aHMvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIGFkZFllYXJzXG4gKiBAY2F0ZWdvcnkgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgeWVhcnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgeWVhcnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgeWVhcnMgdG8gYmUgYWRkZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgeWVhcnMgYWRkZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDUgeWVhcnMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZFllYXJzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCA1KVxuICogLy89PiBTdW4gU2VwIDAxIDIwMTkgMDA6MDA6MDBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRZZWFycyhkaXJ0eURhdGUsIGRpcnR5QW1vdW50KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgYW1vdW50ID0gdG9JbnRlZ2VyKGRpcnR5QW1vdW50KTtcbiAgcmV0dXJuIGFkZE1vbnRocyhkaXJ0eURhdGUsIGFtb3VudCAqIDEyKTtcbn0iLCJpbXBvcnQgc3RhcnRPZkRheSBmcm9tIFwiLi4vc3RhcnRPZkRheS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgaXNTYW1lRGF5XG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgZGF5IChhbmQgeWVhciBhbmQgbW9udGgpP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSBkYXkgKGFuZCB5ZWFyIGFuZCBtb250aCk/XG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlTGVmdCAtIHRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlUmlnaHQgLSB0aGUgc2Vjb25kIGRhdGUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtCb29sZWFufSB0aGUgZGF0ZXMgYXJlIGluIHRoZSBzYW1lIGRheSAoYW5kIHllYXIgYW5kIG1vbnRoKVxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgNCBTZXB0ZW1iZXIgMDY6MDA6MDAgYW5kIDQgU2VwdGVtYmVyIDE4OjAwOjAwIGluIHRoZSBzYW1lIGRheT9cbiAqIHZhciByZXN1bHQgPSBpc1NhbWVEYXkobmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMCksIG5ldyBEYXRlKDIwMTQsIDgsIDQsIDE4LCAwKSlcbiAqIC8vPT4gdHJ1ZVxuICogXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDQgU2VwdGVtYmVyIGFuZCA0IE9jdG9iZXIgaW4gdGhlIHNhbWUgZGF5P1xuICogdmFyIHJlc3VsdCA9IGlzU2FtZURheShuZXcgRGF0ZSgyMDE0LCA4LCA0KSwgbmV3IERhdGUoMjAxNCwgOSwgNCkpXG4gKiAvLz0+IGZhbHNlXG4gKiBcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgNCBTZXB0ZW1iZXIsIDIwMTQgYW5kIDQgU2VwdGVtYmVyLCAyMDE1IGluIHRoZSBzYW1lIGRheT9cbiAqIHZhciByZXN1bHQgPSBpc1NhbWVEYXkobmV3IERhdGUoMjAxNCwgOCwgNCksIG5ldyBEYXRlKDIwMTUsIDgsIDQpKVxuICogLy89PiBmYWxzZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzU2FtZURheShkaXJ0eURhdGVMZWZ0LCBkaXJ0eURhdGVSaWdodCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGVMZWZ0U3RhcnRPZkRheSA9IHN0YXJ0T2ZEYXkoZGlydHlEYXRlTGVmdCk7XG4gIHZhciBkYXRlUmlnaHRTdGFydE9mRGF5ID0gc3RhcnRPZkRheShkaXJ0eURhdGVSaWdodCk7XG4gIHJldHVybiBkYXRlTGVmdFN0YXJ0T2ZEYXkuZ2V0VGltZSgpID09PSBkYXRlUmlnaHRTdGFydE9mRGF5LmdldFRpbWUoKTtcbn0iLCJpbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc0RhdGVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIHZhbHVlIGEgZGF0ZT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZS4gVGhlIGZ1bmN0aW9uIHdvcmtzIGZvciBkYXRlcyB0cmFuc2ZlcnJlZCBhY3Jvc3MgaWZyYW1lcy5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgLSB0aGUgdmFsdWUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIGRhdGVcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIGEgdmFsaWQgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzRGF0ZShuZXcgRGF0ZSgpKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBhbiBpbnZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUobmV3IERhdGUoTmFOKSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3Igc29tZSB2YWx1ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzRGF0ZSgnMjAxNC0wMi0zMScpXG4gKiAvLz0+IGZhbHNlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBhbiBvYmplY3Q6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUoe30pXG4gKiAvLz0+IGZhbHNlXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNEYXRlKHZhbHVlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xufSIsImltcG9ydCBpc0RhdGUgZnJvbSBcIi4uL2lzRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc1ZhbGlkXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIHZhbGlkP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyBmYWxzZSBpZiBhcmd1bWVudCBpcyBJbnZhbGlkIERhdGUgYW5kIHRydWUgb3RoZXJ3aXNlLlxuICogQXJndW1lbnQgaXMgY29udmVydGVkIHRvIERhdGUgdXNpbmcgYHRvRGF0ZWAuIFNlZSBbdG9EYXRlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL3RvRGF0ZX1cbiAqIEludmFsaWQgRGF0ZSBpcyBhIERhdGUsIHdob3NlIHRpbWUgdmFsdWUgaXMgTmFOLlxuICpcbiAqIFRpbWUgdmFsdWUgb2YgRGF0ZTogaHR0cDovL2VzNS5naXRodWIuaW8vI3gxNS45LjEuMVxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogLSBOb3cgYGlzVmFsaWRgIGRvZXNuJ3QgdGhyb3cgYW4gZXhjZXB0aW9uXG4gKiAgIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqICAgSW5zdGVhZCwgYXJndW1lbnQgaXMgY29udmVydGVkIGJlZm9yZWhhbmQgdXNpbmcgYHRvRGF0ZWAuXG4gKlxuICogICBFeGFtcGxlczpcbiAqXG4gKiAgIHwgYGlzVmFsaWRgIGFyZ3VtZW50ICAgICAgICB8IEJlZm9yZSB2Mi4wLjAgfCB2Mi4wLjAgb253YXJkIHxcbiAqICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfFxuICogICB8IGBuZXcgRGF0ZSgpYCAgICAgICAgICAgICAgfCBgdHJ1ZWAgICAgICAgIHwgYHRydWVgICAgICAgICB8XG4gKiAgIHwgYG5ldyBEYXRlKCcyMDE2LTAxLTAxJylgICB8IGB0cnVlYCAgICAgICAgfCBgdHJ1ZWAgICAgICAgIHxcbiAqICAgfCBgbmV3IERhdGUoJycpYCAgICAgICAgICAgIHwgYGZhbHNlYCAgICAgICB8IGBmYWxzZWAgICAgICAgfFxuICogICB8IGBuZXcgRGF0ZSgxNDg4MzcwODM1MDgxKWAgfCBgdHJ1ZWAgICAgICAgIHwgYHRydWVgICAgICAgICB8XG4gKiAgIHwgYG5ldyBEYXRlKE5hTilgICAgICAgICAgICB8IGBmYWxzZWAgICAgICAgfCBgZmFsc2VgICAgICAgIHxcbiAqICAgfCBgJzIwMTYtMDEtMDEnYCAgICAgICAgICAgIHwgYFR5cGVFcnJvcmAgICB8IGBmYWxzZWAgICAgICAgfFxuICogICB8IGAnJ2AgICAgICAgICAgICAgICAgICAgICAgfCBgVHlwZUVycm9yYCAgIHwgYGZhbHNlYCAgICAgICB8XG4gKiAgIHwgYDE0ODgzNzA4MzUwODFgICAgICAgICAgICB8IGBUeXBlRXJyb3JgICAgfCBgdHJ1ZWAgICAgICAgIHxcbiAqICAgfCBgTmFOYCAgICAgICAgICAgICAgICAgICAgIHwgYFR5cGVFcnJvcmAgICB8IGBmYWxzZWAgICAgICAgfFxuICpcbiAqICAgV2UgaW50cm9kdWNlIHRoaXMgY2hhbmdlIHRvIG1ha2UgKmRhdGUtZm5zKiBjb25zaXN0ZW50IHdpdGggRUNNQVNjcmlwdCBiZWhhdmlvclxuICogICB0aGF0IHRyeSB0byBjb2VyY2UgYXJndW1lbnRzIHRvIHRoZSBleHBlY3RlZCB0eXBlXG4gKiAgICh3aGljaCBpcyBhbHNvIHRoZSBjYXNlIHdpdGggb3RoZXIgKmRhdGUtZm5zKiBmdW5jdGlvbnMpLlxuICpcbiAqIEBwYXJhbSB7Kn0gZGF0ZSAtIHRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gdGhlIGRhdGUgaXMgdmFsaWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIHZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc1ZhbGlkKG5ldyBEYXRlKDIwMTQsIDEsIDMxKSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIHZhbHVlLCBjb252ZXJ0YWJsZSBpbnRvIGEgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzVmFsaWQoMTM5MzgwNDgwMDAwMClcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIGludmFsaWQgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzVmFsaWQobmV3IERhdGUoJycpKVxuICogLy89PiBmYWxzZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzVmFsaWQoZGlydHlEYXRlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuXG4gIGlmICghaXNEYXRlKGRpcnR5RGF0ZSkgJiYgdHlwZW9mIGRpcnR5RGF0ZSAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICByZXR1cm4gIWlzTmFOKE51bWJlcihkYXRlKSk7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoc1xuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIG1vbnRocyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIG1vbnRocyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVMZWZ0IC0gdGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVSaWdodCAtIHRoZSBlYXJsaWVyIGRhdGVcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgbW9udGhzXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIG1vbnRocyBhcmUgYmV0d2VlbiAzMSBKYW51YXJ5IDIwMTQgYW5kIDEgU2VwdGVtYmVyIDIwMTQ/XG4gKiB2YXIgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDgsIDEpLFxuICogICBuZXcgRGF0ZSgyMDE0LCAwLCAzMSlcbiAqIClcbiAqIC8vPT4gOFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzKGRpcnR5RGF0ZUxlZnQsIGRpcnR5RGF0ZVJpZ2h0KSB7XG4gIHJlcXVpcmVkQXJncygyLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZUxlZnQgPSB0b0RhdGUoZGlydHlEYXRlTGVmdCk7XG4gIHZhciBkYXRlUmlnaHQgPSB0b0RhdGUoZGlydHlEYXRlUmlnaHQpO1xuICB2YXIgeWVhckRpZmYgPSBkYXRlTGVmdC5nZXRGdWxsWWVhcigpIC0gZGF0ZVJpZ2h0LmdldEZ1bGxZZWFyKCk7XG4gIHZhciBtb250aERpZmYgPSBkYXRlTGVmdC5nZXRNb250aCgpIC0gZGF0ZVJpZ2h0LmdldE1vbnRoKCk7XG4gIHJldHVybiB5ZWFyRGlmZiAqIDEyICsgbW9udGhEaWZmO1xufSIsImltcG9ydCBzdGFydE9mV2VlayBmcm9tIFwiLi4vc3RhcnRPZldlZWsvaW5kZXguanNcIjtcbmltcG9ydCBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIGZyb20gXCIuLi9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG52YXIgTUlMTElTRUNPTkRTX0lOX1dFRUsgPSA2MDQ4MDAwMDA7XG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3NcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3MgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlTGVmdCAtIHRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlUmlnaHQgLSB0aGUgZWFybGllciBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3NcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgd2Vla3MgYXJlIGJldHdlZW4gNSBKdWx5IDIwMTQgYW5kIDIwIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgNSlcbiAqIClcbiAqIC8vPT4gM1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0aGUgd2VlayBzdGFydHMgb24gTW9uZGF5LFxuICogLy8gaG93IG1hbnkgY2FsZW5kYXIgd2Vla3MgYXJlIGJldHdlZW4gNSBKdWx5IDIwMTQgYW5kIDIwIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgNSksXG4gKiAgIHsgd2Vla1N0YXJ0c09uOiAxIH1cbiAqIClcbiAqIC8vPT4gMlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MoZGlydHlEYXRlTGVmdCwgZGlydHlEYXRlUmlnaHQsIGRpcnR5T3B0aW9ucykge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIHN0YXJ0T2ZXZWVrTGVmdCA9IHN0YXJ0T2ZXZWVrKGRpcnR5RGF0ZUxlZnQsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciBzdGFydE9mV2Vla1JpZ2h0ID0gc3RhcnRPZldlZWsoZGlydHlEYXRlUmlnaHQsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciB0aW1lc3RhbXBMZWZ0ID0gc3RhcnRPZldlZWtMZWZ0LmdldFRpbWUoKSAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoc3RhcnRPZldlZWtMZWZ0KTtcbiAgdmFyIHRpbWVzdGFtcFJpZ2h0ID0gc3RhcnRPZldlZWtSaWdodC5nZXRUaW1lKCkgLSBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKHN0YXJ0T2ZXZWVrUmlnaHQpOyAvLyBSb3VuZCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdGhlIG5lYXJlc3QgaW50ZWdlclxuICAvLyBiZWNhdXNlIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIGEgd2VlayBpcyBub3QgY29uc3RhbnRcbiAgLy8gKGUuZy4gaXQncyBkaWZmZXJlbnQgaW4gdGhlIHdlZWsgb2YgdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KVxuXG4gIHJldHVybiBNYXRoLnJvdW5kKCh0aW1lc3RhbXBMZWZ0IC0gdGltZXN0YW1wUmlnaHQpIC8gTUlMTElTRUNPTkRTX0lOX1dFRUspO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgZW5kT2ZNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZW5kIG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgYSBtb250aCBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGVuZCBvZiBhIG1vbnRoXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIGVuZCBvZiBhIG1vbnRoIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZNb250aChuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBUdWUgU2VwIDMwIDIwMTQgMjM6NTk6NTkuOTk5XG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZW5kT2ZNb250aChkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoICsgMSwgMCk7XG4gIGRhdGUuc2V0SG91cnMoMjMsIDU5LCA1OSwgOTk5KTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBzdGFydE9mTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBzdGFydCBvZiBhIG1vbnRoIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIG9yaWdpbmFsIGRhdGVcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgc3RhcnQgb2YgYSBtb250aFxuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhIG1vbnRoIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZk1vbnRoKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IE1vbiBTZXAgMDEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZNb250aChkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIGRhdGUuc2V0RGF0ZSgxKTtcbiAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBzdGFydE9mWWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBzdGFydCBvZiBhIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBzdGFydCBvZiBhIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHJldHVybnMge0RhdGV9IHRoZSBzdGFydCBvZiBhIHllYXJcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSB5ZWFyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZlllYXIobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwMCkpXG4gKiAvLz0+IFdlZCBKYW4gMDEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZZZWFyKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGNsZWFuRGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKDApO1xuICBkYXRlLnNldEZ1bGxZZWFyKGNsZWFuRGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcblxuLyoqXG4gKiBAbmFtZSBlbmRPZldlZWtcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZW5kIG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGVuZCBvZiBhIHdlZWsgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIGFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge0xvY2FsZX0gW29wdGlvbnMubG9jYWxlPWRlZmF1bHRMb2NhbGVdIC0gdGhlIGxvY2FsZSBvYmplY3QuIFNlZSBbTG9jYWxlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL0xvY2FsZX1cbiAqIEBwYXJhbSB7MHwxfDJ8M3w0fDV8Nn0gW29wdGlvbnMud2Vla1N0YXJ0c09uPTBdIC0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAgLSBTdW5kYXkpXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGVuZCBvZiBhIHdlZWtcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gYG9wdGlvbnMud2Vla1N0YXJ0c09uYCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgZW5kIG9mIGEgd2VlayBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGVuZE9mV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBTYXQgU2VwIDA2IDIwMTQgMjM6NTk6NTkuOTk5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRoZSB3ZWVrIHN0YXJ0cyBvbiBNb25kYXksIHRoZSBlbmQgb2YgdGhlIHdlZWsgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZldlZWsobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSwgeyB3ZWVrU3RhcnRzT246IDEgfSlcbiAqIC8vPT4gU3VuIFNlcCAwNyAyMDE0IDIzOjU5OjU5Ljk5OVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBlbmRPZldlZWsoZGlydHlEYXRlLCBkaXJ0eU9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGU7XG4gIHZhciBsb2NhbGVXZWVrU3RhcnRzT24gPSBsb2NhbGUgJiYgbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMud2Vla1N0YXJ0c09uO1xuICB2YXIgZGVmYXVsdFdlZWtTdGFydHNPbiA9IGxvY2FsZVdlZWtTdGFydHNPbiA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihsb2NhbGVXZWVrU3RhcnRzT24pO1xuICB2YXIgd2Vla1N0YXJ0c09uID0gb3B0aW9ucy53ZWVrU3RhcnRzT24gPT0gbnVsbCA/IGRlZmF1bHRXZWVrU3RhcnRzT24gOiB0b0ludGVnZXIob3B0aW9ucy53ZWVrU3RhcnRzT24pOyAvLyBUZXN0IGlmIHdlZWtTdGFydHNPbiBpcyBiZXR3ZWVuIDAgYW5kIDYgX2FuZF8gaXMgbm90IE5hTlxuXG4gIGlmICghKHdlZWtTdGFydHNPbiA+PSAwICYmIHdlZWtTdGFydHNPbiA8PSA2KSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd3ZWVrU3RhcnRzT24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYgaW5jbHVzaXZlbHknKTtcbiAgfVxuXG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkYXkgPSBkYXRlLmdldERheSgpO1xuICB2YXIgZGlmZiA9IChkYXkgPCB3ZWVrU3RhcnRzT24gPyAtNyA6IDApICsgNiAtIChkYXkgLSB3ZWVrU3RhcnRzT24pO1xuICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyBkaWZmKTtcbiAgZGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJ2YXIgZm9ybWF0RGlzdGFuY2VMb2NhbGUgPSB7XG4gIGxlc3NUaGFuWFNlY29uZHM6IHtcbiAgICBvbmU6ICdsZXNzIHRoYW4gYSBzZWNvbmQnLFxuICAgIG90aGVyOiAnbGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzJ1xuICB9LFxuICB4U2Vjb25kczoge1xuICAgIG9uZTogJzEgc2Vjb25kJyxcbiAgICBvdGhlcjogJ3t7Y291bnR9fSBzZWNvbmRzJ1xuICB9LFxuICBoYWxmQU1pbnV0ZTogJ2hhbGYgYSBtaW51dGUnLFxuICBsZXNzVGhhblhNaW51dGVzOiB7XG4gICAgb25lOiAnbGVzcyB0aGFuIGEgbWludXRlJyxcbiAgICBvdGhlcjogJ2xlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcydcbiAgfSxcbiAgeE1pbnV0ZXM6IHtcbiAgICBvbmU6ICcxIG1pbnV0ZScsXG4gICAgb3RoZXI6ICd7e2NvdW50fX0gbWludXRlcydcbiAgfSxcbiAgYWJvdXRYSG91cnM6IHtcbiAgICBvbmU6ICdhYm91dCAxIGhvdXInLFxuICAgIG90aGVyOiAnYWJvdXQge3tjb3VudH19IGhvdXJzJ1xuICB9LFxuICB4SG91cnM6IHtcbiAgICBvbmU6ICcxIGhvdXInLFxuICAgIG90aGVyOiAne3tjb3VudH19IGhvdXJzJ1xuICB9LFxuICB4RGF5czoge1xuICAgIG9uZTogJzEgZGF5JyxcbiAgICBvdGhlcjogJ3t7Y291bnR9fSBkYXlzJ1xuICB9LFxuICBhYm91dFhXZWVrczoge1xuICAgIG9uZTogJ2Fib3V0IDEgd2VlaycsXG4gICAgb3RoZXI6ICdhYm91dCB7e2NvdW50fX0gd2Vla3MnXG4gIH0sXG4gIHhXZWVrczoge1xuICAgIG9uZTogJzEgd2VlaycsXG4gICAgb3RoZXI6ICd7e2NvdW50fX0gd2Vla3MnXG4gIH0sXG4gIGFib3V0WE1vbnRoczoge1xuICAgIG9uZTogJ2Fib3V0IDEgbW9udGgnLFxuICAgIG90aGVyOiAnYWJvdXQge3tjb3VudH19IG1vbnRocydcbiAgfSxcbiAgeE1vbnRoczoge1xuICAgIG9uZTogJzEgbW9udGgnLFxuICAgIG90aGVyOiAne3tjb3VudH19IG1vbnRocydcbiAgfSxcbiAgYWJvdXRYWWVhcnM6IHtcbiAgICBvbmU6ICdhYm91dCAxIHllYXInLFxuICAgIG90aGVyOiAnYWJvdXQge3tjb3VudH19IHllYXJzJ1xuICB9LFxuICB4WWVhcnM6IHtcbiAgICBvbmU6ICcxIHllYXInLFxuICAgIG90aGVyOiAne3tjb3VudH19IHllYXJzJ1xuICB9LFxuICBvdmVyWFllYXJzOiB7XG4gICAgb25lOiAnb3ZlciAxIHllYXInLFxuICAgIG90aGVyOiAnb3ZlciB7e2NvdW50fX0geWVhcnMnXG4gIH0sXG4gIGFsbW9zdFhZZWFyczoge1xuICAgIG9uZTogJ2FsbW9zdCAxIHllYXInLFxuICAgIG90aGVyOiAnYWxtb3N0IHt7Y291bnR9fSB5ZWFycydcbiAgfVxufTtcblxudmFyIGZvcm1hdERpc3RhbmNlID0gZnVuY3Rpb24gKHRva2VuLCBjb3VudCwgb3B0aW9ucykge1xuICB2YXIgcmVzdWx0O1xuICB2YXIgdG9rZW5WYWx1ZSA9IGZvcm1hdERpc3RhbmNlTG9jYWxlW3Rva2VuXTtcblxuICBpZiAodHlwZW9mIHRva2VuVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmVzdWx0ID0gdG9rZW5WYWx1ZTtcbiAgfSBlbHNlIGlmIChjb3VudCA9PT0gMSkge1xuICAgIHJlc3VsdCA9IHRva2VuVmFsdWUub25lO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IHRva2VuVmFsdWUub3RoZXIucmVwbGFjZSgne3tjb3VudH19JywgY291bnQudG9TdHJpbmcoKSk7XG4gIH1cblxuICBpZiAob3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5hZGRTdWZmaXgpIHtcbiAgICBpZiAob3B0aW9ucy5jb21wYXJpc29uICYmIG9wdGlvbnMuY29tcGFyaXNvbiA+IDApIHtcbiAgICAgIHJldHVybiAnaW4gJyArIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdCArICcgYWdvJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0RGlzdGFuY2U7IiwiaW1wb3J0IGJ1aWxkRm9ybWF0TG9uZ0ZuIGZyb20gXCIuLi8uLi8uLi9fbGliL2J1aWxkRm9ybWF0TG9uZ0ZuL2luZGV4LmpzXCI7XG52YXIgZGF0ZUZvcm1hdHMgPSB7XG4gIGZ1bGw6ICdFRUVFLCBNTU1NIGRvLCB5JyxcbiAgbG9uZzogJ01NTU0gZG8sIHknLFxuICBtZWRpdW06ICdNTU0gZCwgeScsXG4gIHNob3J0OiAnTU0vZGQveXl5eSdcbn07XG52YXIgdGltZUZvcm1hdHMgPSB7XG4gIGZ1bGw6ICdoOm1tOnNzIGEgenp6eicsXG4gIGxvbmc6ICdoOm1tOnNzIGEgeicsXG4gIG1lZGl1bTogJ2g6bW06c3MgYScsXG4gIHNob3J0OiAnaDptbSBhJ1xufTtcbnZhciBkYXRlVGltZUZvcm1hdHMgPSB7XG4gIGZ1bGw6IFwie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fVwiLFxuICBsb25nOiBcInt7ZGF0ZX19ICdhdCcge3t0aW1lfX1cIixcbiAgbWVkaXVtOiAne3tkYXRlfX0sIHt7dGltZX19JyxcbiAgc2hvcnQ6ICd7e2RhdGV9fSwge3t0aW1lfX0nXG59O1xudmFyIGZvcm1hdExvbmcgPSB7XG4gIGRhdGU6IGJ1aWxkRm9ybWF0TG9uZ0ZuKHtcbiAgICBmb3JtYXRzOiBkYXRlRm9ybWF0cyxcbiAgICBkZWZhdWx0V2lkdGg6ICdmdWxsJ1xuICB9KSxcbiAgdGltZTogYnVpbGRGb3JtYXRMb25nRm4oe1xuICAgIGZvcm1hdHM6IHRpbWVGb3JtYXRzLFxuICAgIGRlZmF1bHRXaWR0aDogJ2Z1bGwnXG4gIH0pLFxuICBkYXRlVGltZTogYnVpbGRGb3JtYXRMb25nRm4oe1xuICAgIGZvcm1hdHM6IGRhdGVUaW1lRm9ybWF0cyxcbiAgICBkZWZhdWx0V2lkdGg6ICdmdWxsJ1xuICB9KVxufTtcbmV4cG9ydCBkZWZhdWx0IGZvcm1hdExvbmc7IiwidmFyIGZvcm1hdFJlbGF0aXZlTG9jYWxlID0ge1xuICBsYXN0V2VlazogXCInbGFzdCcgZWVlZSAnYXQnIHBcIixcbiAgeWVzdGVyZGF5OiBcIid5ZXN0ZXJkYXkgYXQnIHBcIixcbiAgdG9kYXk6IFwiJ3RvZGF5IGF0JyBwXCIsXG4gIHRvbW9ycm93OiBcIid0b21vcnJvdyBhdCcgcFwiLFxuICBuZXh0V2VlazogXCJlZWVlICdhdCcgcFwiLFxuICBvdGhlcjogJ1AnXG59O1xuXG52YXIgZm9ybWF0UmVsYXRpdmUgPSBmdW5jdGlvbiAodG9rZW4sIF9kYXRlLCBfYmFzZURhdGUsIF9vcHRpb25zKSB7XG4gIHJldHVybiBmb3JtYXRSZWxhdGl2ZUxvY2FsZVt0b2tlbl07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmb3JtYXRSZWxhdGl2ZTsiLCJpbXBvcnQgYnVpbGRMb2NhbGl6ZUZuIGZyb20gXCIuLi8uLi8uLi9fbGliL2J1aWxkTG9jYWxpemVGbi9pbmRleC5qc1wiO1xudmFyIGVyYVZhbHVlcyA9IHtcbiAgbmFycm93OiBbJ0InLCAnQSddLFxuICBhYmJyZXZpYXRlZDogWydCQycsICdBRCddLFxuICB3aWRlOiBbJ0JlZm9yZSBDaHJpc3QnLCAnQW5ubyBEb21pbmknXVxufTtcbnZhciBxdWFydGVyVmFsdWVzID0ge1xuICBuYXJyb3c6IFsnMScsICcyJywgJzMnLCAnNCddLFxuICBhYmJyZXZpYXRlZDogWydRMScsICdRMicsICdRMycsICdRNCddLFxuICB3aWRlOiBbJzFzdCBxdWFydGVyJywgJzJuZCBxdWFydGVyJywgJzNyZCBxdWFydGVyJywgJzR0aCBxdWFydGVyJ11cbn07IC8vIE5vdGU6IGluIEVuZ2xpc2gsIHRoZSBuYW1lcyBvZiBkYXlzIG9mIHRoZSB3ZWVrIGFuZCBtb250aHMgYXJlIGNhcGl0YWxpemVkLlxuLy8gSWYgeW91IGFyZSBtYWtpbmcgYSBuZXcgbG9jYWxlIGJhc2VkIG9uIHRoaXMgb25lLCBjaGVjayBpZiB0aGUgc2FtZSBpcyB0cnVlIGZvciB0aGUgbGFuZ3VhZ2UgeW91J3JlIHdvcmtpbmcgb24uXG4vLyBHZW5lcmFsbHksIGZvcm1hdHRlZCBkYXRlcyBzaG91bGQgbG9vayBsaWtlIHRoZXkgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBzZW50ZW5jZSxcbi8vIGUuZy4gaW4gU3BhbmlzaCBsYW5ndWFnZSB0aGUgd2Vla2RheXMgYW5kIG1vbnRocyBzaG91bGQgYmUgaW4gdGhlIGxvd2VyY2FzZS5cblxudmFyIG1vbnRoVmFsdWVzID0ge1xuICBuYXJyb3c6IFsnSicsICdGJywgJ00nLCAnQScsICdNJywgJ0onLCAnSicsICdBJywgJ1MnLCAnTycsICdOJywgJ0QnXSxcbiAgYWJicmV2aWF0ZWQ6IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXSxcbiAgd2lkZTogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ11cbn07XG52YXIgZGF5VmFsdWVzID0ge1xuICBuYXJyb3c6IFsnUycsICdNJywgJ1QnLCAnVycsICdUJywgJ0YnLCAnUyddLFxuICBzaG9ydDogWydTdScsICdNbycsICdUdScsICdXZScsICdUaCcsICdGcicsICdTYSddLFxuICBhYmJyZXZpYXRlZDogWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXSxcbiAgd2lkZTogWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddXG59O1xudmFyIGRheVBlcmlvZFZhbHVlcyA9IHtcbiAgbmFycm93OiB7XG4gICAgYW06ICdhJyxcbiAgICBwbTogJ3AnLFxuICAgIG1pZG5pZ2h0OiAnbWknLFxuICAgIG5vb246ICduJyxcbiAgICBtb3JuaW5nOiAnbW9ybmluZycsXG4gICAgYWZ0ZXJub29uOiAnYWZ0ZXJub29uJyxcbiAgICBldmVuaW5nOiAnZXZlbmluZycsXG4gICAgbmlnaHQ6ICduaWdodCdcbiAgfSxcbiAgYWJicmV2aWF0ZWQ6IHtcbiAgICBhbTogJ0FNJyxcbiAgICBwbTogJ1BNJyxcbiAgICBtaWRuaWdodDogJ21pZG5pZ2h0JyxcbiAgICBub29uOiAnbm9vbicsXG4gICAgbW9ybmluZzogJ21vcm5pbmcnLFxuICAgIGFmdGVybm9vbjogJ2FmdGVybm9vbicsXG4gICAgZXZlbmluZzogJ2V2ZW5pbmcnLFxuICAgIG5pZ2h0OiAnbmlnaHQnXG4gIH0sXG4gIHdpZGU6IHtcbiAgICBhbTogJ2EubS4nLFxuICAgIHBtOiAncC5tLicsXG4gICAgbWlkbmlnaHQ6ICdtaWRuaWdodCcsXG4gICAgbm9vbjogJ25vb24nLFxuICAgIG1vcm5pbmc6ICdtb3JuaW5nJyxcbiAgICBhZnRlcm5vb246ICdhZnRlcm5vb24nLFxuICAgIGV2ZW5pbmc6ICdldmVuaW5nJyxcbiAgICBuaWdodDogJ25pZ2h0J1xuICB9XG59O1xudmFyIGZvcm1hdHRpbmdEYXlQZXJpb2RWYWx1ZXMgPSB7XG4gIG5hcnJvdzoge1xuICAgIGFtOiAnYScsXG4gICAgcG06ICdwJyxcbiAgICBtaWRuaWdodDogJ21pJyxcbiAgICBub29uOiAnbicsXG4gICAgbW9ybmluZzogJ2luIHRoZSBtb3JuaW5nJyxcbiAgICBhZnRlcm5vb246ICdpbiB0aGUgYWZ0ZXJub29uJyxcbiAgICBldmVuaW5nOiAnaW4gdGhlIGV2ZW5pbmcnLFxuICAgIG5pZ2h0OiAnYXQgbmlnaHQnXG4gIH0sXG4gIGFiYnJldmlhdGVkOiB7XG4gICAgYW06ICdBTScsXG4gICAgcG06ICdQTScsXG4gICAgbWlkbmlnaHQ6ICdtaWRuaWdodCcsXG4gICAgbm9vbjogJ25vb24nLFxuICAgIG1vcm5pbmc6ICdpbiB0aGUgbW9ybmluZycsXG4gICAgYWZ0ZXJub29uOiAnaW4gdGhlIGFmdGVybm9vbicsXG4gICAgZXZlbmluZzogJ2luIHRoZSBldmVuaW5nJyxcbiAgICBuaWdodDogJ2F0IG5pZ2h0J1xuICB9LFxuICB3aWRlOiB7XG4gICAgYW06ICdhLm0uJyxcbiAgICBwbTogJ3AubS4nLFxuICAgIG1pZG5pZ2h0OiAnbWlkbmlnaHQnLFxuICAgIG5vb246ICdub29uJyxcbiAgICBtb3JuaW5nOiAnaW4gdGhlIG1vcm5pbmcnLFxuICAgIGFmdGVybm9vbjogJ2luIHRoZSBhZnRlcm5vb24nLFxuICAgIGV2ZW5pbmc6ICdpbiB0aGUgZXZlbmluZycsXG4gICAgbmlnaHQ6ICdhdCBuaWdodCdcbiAgfVxufTtcblxudmFyIG9yZGluYWxOdW1iZXIgPSBmdW5jdGlvbiAoZGlydHlOdW1iZXIsIF9vcHRpb25zKSB7XG4gIHZhciBudW1iZXIgPSBOdW1iZXIoZGlydHlOdW1iZXIpOyAvLyBJZiBvcmRpbmFsIG51bWJlcnMgZGVwZW5kIG9uIGNvbnRleHQsIGZvciBleGFtcGxlLFxuICAvLyBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgZm9yIGRpZmZlcmVudCBncmFtbWF0aWNhbCBnZW5kZXJzLFxuICAvLyB1c2UgYG9wdGlvbnMudW5pdGAuXG4gIC8vXG4gIC8vIGB1bml0YCBjYW4gYmUgJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RhdGUnLCAnZGF5T2ZZZWFyJyxcbiAgLy8gJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLlxuXG4gIHZhciByZW0xMDAgPSBudW1iZXIgJSAxMDA7XG5cbiAgaWYgKHJlbTEwMCA+IDIwIHx8IHJlbTEwMCA8IDEwKSB7XG4gICAgc3dpdGNoIChyZW0xMDAgJSAxMCkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gbnVtYmVyICsgJ3N0JztcblxuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gbnVtYmVyICsgJ25kJztcblxuICAgICAgY2FzZSAzOlxuICAgICAgICByZXR1cm4gbnVtYmVyICsgJ3JkJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVtYmVyICsgJ3RoJztcbn07XG5cbnZhciBsb2NhbGl6ZSA9IHtcbiAgb3JkaW5hbE51bWJlcjogb3JkaW5hbE51bWJlcixcbiAgZXJhOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogZXJhVmFsdWVzLFxuICAgIGRlZmF1bHRXaWR0aDogJ3dpZGUnXG4gIH0pLFxuICBxdWFydGVyOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogcXVhcnRlclZhbHVlcyxcbiAgICBkZWZhdWx0V2lkdGg6ICd3aWRlJyxcbiAgICBhcmd1bWVudENhbGxiYWNrOiBmdW5jdGlvbiAocXVhcnRlcikge1xuICAgICAgcmV0dXJuIHF1YXJ0ZXIgLSAxO1xuICAgIH1cbiAgfSksXG4gIG1vbnRoOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogbW9udGhWYWx1ZXMsXG4gICAgZGVmYXVsdFdpZHRoOiAnd2lkZSdcbiAgfSksXG4gIGRheTogYnVpbGRMb2NhbGl6ZUZuKHtcbiAgICB2YWx1ZXM6IGRheVZhbHVlcyxcbiAgICBkZWZhdWx0V2lkdGg6ICd3aWRlJ1xuICB9KSxcbiAgZGF5UGVyaW9kOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogZGF5UGVyaW9kVmFsdWVzLFxuICAgIGRlZmF1bHRXaWR0aDogJ3dpZGUnLFxuICAgIGZvcm1hdHRpbmdWYWx1ZXM6IGZvcm1hdHRpbmdEYXlQZXJpb2RWYWx1ZXMsXG4gICAgZGVmYXVsdEZvcm1hdHRpbmdXaWR0aDogJ3dpZGUnXG4gIH0pXG59O1xuZXhwb3J0IGRlZmF1bHQgbG9jYWxpemU7IiwiaW1wb3J0IGJ1aWxkTWF0Y2hGbiBmcm9tIFwiLi4vLi4vLi4vX2xpYi9idWlsZE1hdGNoRm4vaW5kZXguanNcIjtcbmltcG9ydCBidWlsZE1hdGNoUGF0dGVybkZuIGZyb20gXCIuLi8uLi8uLi9fbGliL2J1aWxkTWF0Y2hQYXR0ZXJuRm4vaW5kZXguanNcIjtcbnZhciBtYXRjaE9yZGluYWxOdW1iZXJQYXR0ZXJuID0gL14oXFxkKykodGh8c3R8bmR8cmQpPy9pO1xudmFyIHBhcnNlT3JkaW5hbE51bWJlclBhdHRlcm4gPSAvXFxkKy9pO1xudmFyIG1hdGNoRXJhUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL14oYnxhKS9pLFxuICBhYmJyZXZpYXRlZDogL14oYlxcLj9cXHM/Y1xcLj98YlxcLj9cXHM/Y1xcLj9cXHM/ZVxcLj98YVxcLj9cXHM/ZFxcLj98Y1xcLj9cXHM/ZVxcLj8pL2ksXG4gIHdpZGU6IC9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaVxufTtcbnZhciBwYXJzZUVyYVBhdHRlcm5zID0ge1xuICBhbnk6IFsvXmIvaSwgL14oYXxjKS9pXVxufTtcbnZhciBtYXRjaFF1YXJ0ZXJQYXR0ZXJucyA9IHtcbiAgbmFycm93OiAvXlsxMjM0XS9pLFxuICBhYmJyZXZpYXRlZDogL15xWzEyMzRdL2ksXG4gIHdpZGU6IC9eWzEyMzRdKHRofHN0fG5kfHJkKT8gcXVhcnRlci9pXG59O1xudmFyIHBhcnNlUXVhcnRlclBhdHRlcm5zID0ge1xuICBhbnk6IFsvMS9pLCAvMi9pLCAvMy9pLCAvNC9pXVxufTtcbnZhciBtYXRjaE1vbnRoUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL15bamZtYXNvbmRdL2ksXG4gIGFiYnJldmlhdGVkOiAvXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSxcbiAgd2lkZTogL14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaVxufTtcbnZhciBwYXJzZU1vbnRoUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogWy9eai9pLCAvXmYvaSwgL15tL2ksIC9eYS9pLCAvXm0vaSwgL15qL2ksIC9eai9pLCAvXmEvaSwgL15zL2ksIC9eby9pLCAvXm4vaSwgL15kL2ldLFxuICBhbnk6IFsvXmphL2ksIC9eZi9pLCAvXm1hci9pLCAvXmFwL2ksIC9ebWF5L2ksIC9eanVuL2ksIC9eanVsL2ksIC9eYXUvaSwgL15zL2ksIC9eby9pLCAvXm4vaSwgL15kL2ldXG59O1xudmFyIG1hdGNoRGF5UGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL15bc210d2ZdL2ksXG4gIHNob3J0OiAvXihzdXxtb3x0dXx3ZXx0aHxmcnxzYSkvaSxcbiAgYWJicmV2aWF0ZWQ6IC9eKHN1bnxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdCkvaSxcbiAgd2lkZTogL14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2lcbn07XG52YXIgcGFyc2VEYXlQYXR0ZXJucyA9IHtcbiAgbmFycm93OiBbL15zL2ksIC9ebS9pLCAvXnQvaSwgL153L2ksIC9edC9pLCAvXmYvaSwgL15zL2ldLFxuICBhbnk6IFsvXnN1L2ksIC9ebS9pLCAvXnR1L2ksIC9edy9pLCAvXnRoL2ksIC9eZi9pLCAvXnNhL2ldXG59O1xudmFyIG1hdGNoRGF5UGVyaW9kUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL14oYXxwfG1pfG58KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLFxuICBhbnk6IC9eKFthcF1cXC4/XFxzP21cXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pXG59O1xudmFyIHBhcnNlRGF5UGVyaW9kUGF0dGVybnMgPSB7XG4gIGFueToge1xuICAgIGFtOiAvXmEvaSxcbiAgICBwbTogL15wL2ksXG4gICAgbWlkbmlnaHQ6IC9ebWkvaSxcbiAgICBub29uOiAvXm5vL2ksXG4gICAgbW9ybmluZzogL21vcm5pbmcvaSxcbiAgICBhZnRlcm5vb246IC9hZnRlcm5vb24vaSxcbiAgICBldmVuaW5nOiAvZXZlbmluZy9pLFxuICAgIG5pZ2h0OiAvbmlnaHQvaVxuICB9XG59O1xudmFyIG1hdGNoID0ge1xuICBvcmRpbmFsTnVtYmVyOiBidWlsZE1hdGNoUGF0dGVybkZuKHtcbiAgICBtYXRjaFBhdHRlcm46IG1hdGNoT3JkaW5hbE51bWJlclBhdHRlcm4sXG4gICAgcGFyc2VQYXR0ZXJuOiBwYXJzZU9yZGluYWxOdW1iZXJQYXR0ZXJuLFxuICAgIHZhbHVlQ2FsbGJhY2s6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgfVxuICB9KSxcbiAgZXJhOiBidWlsZE1hdGNoRm4oe1xuICAgIG1hdGNoUGF0dGVybnM6IG1hdGNoRXJhUGF0dGVybnMsXG4gICAgZGVmYXVsdE1hdGNoV2lkdGg6ICd3aWRlJyxcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZUVyYVBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55J1xuICB9KSxcbiAgcXVhcnRlcjogYnVpbGRNYXRjaEZuKHtcbiAgICBtYXRjaFBhdHRlcm5zOiBtYXRjaFF1YXJ0ZXJQYXR0ZXJucyxcbiAgICBkZWZhdWx0TWF0Y2hXaWR0aDogJ3dpZGUnLFxuICAgIHBhcnNlUGF0dGVybnM6IHBhcnNlUXVhcnRlclBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55JyxcbiAgICB2YWx1ZUNhbGxiYWNrOiBmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgIHJldHVybiBpbmRleCArIDE7XG4gICAgfVxuICB9KSxcbiAgbW9udGg6IGJ1aWxkTWF0Y2hGbih7XG4gICAgbWF0Y2hQYXR0ZXJuczogbWF0Y2hNb250aFBhdHRlcm5zLFxuICAgIGRlZmF1bHRNYXRjaFdpZHRoOiAnd2lkZScsXG4gICAgcGFyc2VQYXR0ZXJuczogcGFyc2VNb250aFBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55J1xuICB9KSxcbiAgZGF5OiBidWlsZE1hdGNoRm4oe1xuICAgIG1hdGNoUGF0dGVybnM6IG1hdGNoRGF5UGF0dGVybnMsXG4gICAgZGVmYXVsdE1hdGNoV2lkdGg6ICd3aWRlJyxcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZURheVBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiAnYW55J1xuICB9KSxcbiAgZGF5UGVyaW9kOiBidWlsZE1hdGNoRm4oe1xuICAgIG1hdGNoUGF0dGVybnM6IG1hdGNoRGF5UGVyaW9kUGF0dGVybnMsXG4gICAgZGVmYXVsdE1hdGNoV2lkdGg6ICdhbnknLFxuICAgIHBhcnNlUGF0dGVybnM6IHBhcnNlRGF5UGVyaW9kUGF0dGVybnMsXG4gICAgZGVmYXVsdFBhcnNlV2lkdGg6ICdhbnknXG4gIH0pXG59O1xuZXhwb3J0IGRlZmF1bHQgbWF0Y2g7IiwiaW1wb3J0IGZvcm1hdERpc3RhbmNlIGZyb20gXCIuL19saWIvZm9ybWF0RGlzdGFuY2UvaW5kZXguanNcIjtcbmltcG9ydCBmb3JtYXRMb25nIGZyb20gXCIuL19saWIvZm9ybWF0TG9uZy9pbmRleC5qc1wiO1xuaW1wb3J0IGZvcm1hdFJlbGF0aXZlIGZyb20gXCIuL19saWIvZm9ybWF0UmVsYXRpdmUvaW5kZXguanNcIjtcbmltcG9ydCBsb2NhbGl6ZSBmcm9tIFwiLi9fbGliL2xvY2FsaXplL2luZGV4LmpzXCI7XG5pbXBvcnQgbWF0Y2ggZnJvbSBcIi4vX2xpYi9tYXRjaC9pbmRleC5qc1wiO1xuXG4vKipcbiAqIEB0eXBlIHtMb2NhbGV9XG4gKiBAY2F0ZWdvcnkgTG9jYWxlc1xuICogQHN1bW1hcnkgRW5nbGlzaCBsb2NhbGUgKFVuaXRlZCBTdGF0ZXMpLlxuICogQGxhbmd1YWdlIEVuZ2xpc2hcbiAqIEBpc28tNjM5LTIgZW5nXG4gKiBAYXV0aG9yIFNhc2hhIEtvc3MgW0Brb3Nzbm9jb3JwXXtAbGluayBodHRwczovL2dpdGh1Yi5jb20va29zc25vY29ycH1cbiAqIEBhdXRob3IgTGVzaGEgS29zcyBbQGxlc2hha29zc117QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2xlc2hha29zc31cbiAqL1xudmFyIGxvY2FsZSA9IHtcbiAgY29kZTogJ2VuLVVTJyxcbiAgZm9ybWF0RGlzdGFuY2U6IGZvcm1hdERpc3RhbmNlLFxuICBmb3JtYXRMb25nOiBmb3JtYXRMb25nLFxuICBmb3JtYXRSZWxhdGl2ZTogZm9ybWF0UmVsYXRpdmUsXG4gIGxvY2FsaXplOiBsb2NhbGl6ZSxcbiAgbWF0Y2g6IG1hdGNoLFxuICBvcHRpb25zOiB7XG4gICAgd2Vla1N0YXJ0c09uOiAwXG4gICAgLyogU3VuZGF5ICovXG4gICAgLFxuICAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZTogMVxuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgbG9jYWxlOyIsImltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzXCI7XG5pbXBvcnQgYWRkTWlsbGlzZWNvbmRzIGZyb20gXCIuLi9hZGRNaWxsaXNlY29uZHMvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIHN1Yk1pbGxpc2Vjb25kc1xuICogQGNhdGVnb3J5IE1pbGxpc2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgbWlsbGlzZWNvbmRzIHRvIGJlIHN1YnRyYWN0ZWQuIFBvc2l0aXZlIGRlY2ltYWxzIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5mbG9vcmAsIGRlY2ltYWxzIGxlc3MgdGhhbiB6ZXJvIHdpbGwgYmUgcm91bmRlZCB1c2luZyBgTWF0aC5jZWlsYC5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgbWlsbGlzZWNvbmRzIHN1YnRyYWN0ZWRcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgNzUwIG1pbGxpc2Vjb25kcyBmcm9tIDEwIEp1bHkgMjAxNCAxMjo0NTozMC4wMDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJNaWxsaXNlY29uZHMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCA0NSwgMzAsIDApLCA3NTApXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjo0NToyOS4yNTBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdWJNaWxsaXNlY29uZHMoZGlydHlEYXRlLCBkaXJ0eUFtb3VudCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG4gIHJldHVybiBhZGRNaWxsaXNlY29uZHMoZGlydHlEYXRlLCAtYW1vdW50KTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi8uLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9EQVkgPSA4NjQwMDAwMDsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVUQ0RheU9mWWVhcihkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciB0aW1lc3RhbXAgPSBkYXRlLmdldFRpbWUoKTtcbiAgZGF0ZS5zZXRVVENNb250aCgwLCAxKTtcbiAgZGF0ZS5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZZZWFyVGltZXN0YW1wID0gZGF0ZS5nZXRUaW1lKCk7XG4gIHZhciBkaWZmZXJlbmNlID0gdGltZXN0YW1wIC0gc3RhcnRPZlllYXJUaW1lc3RhbXA7XG4gIHJldHVybiBNYXRoLmZsb29yKGRpZmZlcmVuY2UgLyBNSUxMSVNFQ09ORFNfSU5fREFZKSArIDE7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZVVENJU09XZWVrKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIHdlZWtTdGFydHNPbiA9IDE7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkYXkgPSBkYXRlLmdldFVUQ0RheSgpO1xuICB2YXIgZGlmZiA9IChkYXkgPCB3ZWVrU3RhcnRzT24gPyA3IDogMCkgKyBkYXkgLSB3ZWVrU3RhcnRzT247XG4gIGRhdGUuc2V0VVRDRGF0ZShkYXRlLmdldFVUQ0RhdGUoKSAtIGRpZmYpO1xuICBkYXRlLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi8uLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZVVENJU09XZWVrIGZyb20gXCIuLi9zdGFydE9mVVRDSVNPV2Vlay9pbmRleC5qc1wiOyAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgYSBwYXJ0IG9mIHB1YmxpYyBBUEkgd2hlbiBVVEMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZC5cbi8vIFNlZSBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8zNzZcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VVRDSVNPV2Vla1llYXIoZGlydHlEYXRlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgdmFyIGZvdXJ0aE9mSmFudWFyeU9mTmV4dFllYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZm91cnRoT2ZKYW51YXJ5T2ZOZXh0WWVhci5zZXRVVENGdWxsWWVhcih5ZWFyICsgMSwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeU9mTmV4dFllYXIuc2V0VVRDSG91cnMoMCwgMCwgMCwgMCk7XG4gIHZhciBzdGFydE9mTmV4dFllYXIgPSBzdGFydE9mVVRDSVNPV2Vlayhmb3VydGhPZkphbnVhcnlPZk5leHRZZWFyKTtcbiAgdmFyIGZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZm91cnRoT2ZKYW51YXJ5T2ZUaGlzWWVhci5zZXRVVENGdWxsWWVhcih5ZWFyLCAwLCA0KTtcbiAgZm91cnRoT2ZKYW51YXJ5T2ZUaGlzWWVhci5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZUaGlzWWVhciA9IHN0YXJ0T2ZVVENJU09XZWVrKGZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIpO1xuXG4gIGlmIChkYXRlLmdldFRpbWUoKSA+PSBzdGFydE9mTmV4dFllYXIuZ2V0VGltZSgpKSB7XG4gICAgcmV0dXJuIHllYXIgKyAxO1xuICB9IGVsc2UgaWYgKGRhdGUuZ2V0VGltZSgpID49IHN0YXJ0T2ZUaGlzWWVhci5nZXRUaW1lKCkpIHtcbiAgICByZXR1cm4geWVhcjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geWVhciAtIDE7XG4gIH1cbn0iLCJpbXBvcnQgZ2V0VVRDSVNPV2Vla1llYXIgZnJvbSBcIi4uL2dldFVUQ0lTT1dlZWtZZWFyL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ0lTT1dlZWsgZnJvbSBcIi4uL3N0YXJ0T2ZVVENJU09XZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0YXJ0T2ZVVENJU09XZWVrWWVhcihkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciB5ZWFyID0gZ2V0VVRDSVNPV2Vla1llYXIoZGlydHlEYXRlKTtcbiAgdmFyIGZvdXJ0aE9mSmFudWFyeSA9IG5ldyBEYXRlKDApO1xuICBmb3VydGhPZkphbnVhcnkuc2V0VVRDRnVsbFllYXIoeWVhciwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeS5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIGRhdGUgPSBzdGFydE9mVVRDSVNPV2Vlayhmb3VydGhPZkphbnVhcnkpO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi8uLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mVVRDSVNPV2VlayBmcm9tIFwiLi4vc3RhcnRPZlVUQ0lTT1dlZWsvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mVVRDSVNPV2Vla1llYXIgZnJvbSBcIi4uL3N0YXJ0T2ZVVENJU09XZWVrWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG52YXIgTUlMTElTRUNPTkRTX0lOX1dFRUsgPSA2MDQ4MDAwMDA7IC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBhIHBhcnQgb2YgcHVibGljIEFQSSB3aGVuIFVUQyBmdW5jdGlvbiB3aWxsIGJlIGltcGxlbWVudGVkLlxuLy8gU2VlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM3NlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRVVENJU09XZWVrKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRpZmYgPSBzdGFydE9mVVRDSVNPV2VlayhkYXRlKS5nZXRUaW1lKCkgLSBzdGFydE9mVVRDSVNPV2Vla1llYXIoZGF0ZSkuZ2V0VGltZSgpOyAvLyBSb3VuZCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdGhlIG5lYXJlc3QgaW50ZWdlclxuICAvLyBiZWNhdXNlIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIGEgd2VlayBpcyBub3QgY29uc3RhbnRcbiAgLy8gKGUuZy4gaXQncyBkaWZmZXJlbnQgaW4gdGhlIHdlZWsgb2YgdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KVxuXG4gIHJldHVybiBNYXRoLnJvdW5kKGRpZmYgLyBNSUxMSVNFQ09ORFNfSU5fV0VFSykgKyAxO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uLy4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ1dlZWsgZnJvbSBcIi4uL3N0YXJ0T2ZVVENXZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi90b0ludGVnZXIvaW5kZXguanNcIjsgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgcGFydCBvZiBwdWJsaWMgQVBJIHdoZW4gVVRDIGZ1bmN0aW9uIHdpbGwgYmUgaW1wbGVtZW50ZWQuXG4vLyBTZWUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMzc2XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVUQ1dlZWtZZWFyKGRpcnR5RGF0ZSwgZGlydHlPcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgdmFyIG9wdGlvbnMgPSBkaXJ0eU9wdGlvbnMgfHwge307XG4gIHZhciBsb2NhbGUgPSBvcHRpb25zLmxvY2FsZTtcbiAgdmFyIGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IGxvY2FsZSAmJiBsb2NhbGUub3B0aW9ucyAmJiBsb2NhbGUub3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGU7XG4gIHZhciBkZWZhdWx0Rmlyc3RXZWVrQ29udGFpbnNEYXRlID0gbG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlID09IG51bGwgPyAxIDogdG9JbnRlZ2VyKGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7XG4gIHZhciBmaXJzdFdlZWtDb250YWluc0RhdGUgPSBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9PSBudWxsID8gZGVmYXVsdEZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA6IHRvSW50ZWdlcihvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7IC8vIFRlc3QgaWYgd2Vla1N0YXJ0c09uIGlzIGJldHdlZW4gMSBhbmQgNyBfYW5kXyBpcyBub3QgTmFOXG5cbiAgaWYgKCEoZmlyc3RXZWVrQ29udGFpbnNEYXRlID49IDEgJiYgZmlyc3RXZWVrQ29udGFpbnNEYXRlIDw9IDcpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNyBpbmNsdXNpdmVseScpO1xuICB9XG5cbiAgdmFyIGZpcnN0V2Vla09mTmV4dFllYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRVVENGdWxsWWVhcih5ZWFyICsgMSwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZOZXh0WWVhciA9IHN0YXJ0T2ZVVENXZWVrKGZpcnN0V2Vla09mTmV4dFllYXIsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciBmaXJzdFdlZWtPZlRoaXNZZWFyID0gbmV3IERhdGUoMCk7XG4gIGZpcnN0V2Vla09mVGhpc1llYXIuc2V0VVRDRnVsbFllYXIoeWVhciwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrT2ZUaGlzWWVhci5zZXRVVENIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZUaGlzWWVhciA9IHN0YXJ0T2ZVVENXZWVrKGZpcnN0V2Vla09mVGhpc1llYXIsIGRpcnR5T3B0aW9ucyk7XG5cbiAgaWYgKGRhdGUuZ2V0VGltZSgpID49IHN0YXJ0T2ZOZXh0WWVhci5nZXRUaW1lKCkpIHtcbiAgICByZXR1cm4geWVhciArIDE7XG4gIH0gZWxzZSBpZiAoZGF0ZS5nZXRUaW1lKCkgPj0gc3RhcnRPZlRoaXNZZWFyLmdldFRpbWUoKSkge1xuICAgIHJldHVybiB5ZWFyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB5ZWFyIC0gMTtcbiAgfVxufSIsImltcG9ydCBnZXRVVENXZWVrWWVhciBmcm9tIFwiLi4vZ2V0VVRDV2Vla1llYXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZVVENXZWVrIGZyb20gXCIuLi9zdGFydE9mVVRDV2Vlay9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vdG9JbnRlZ2VyL2luZGV4LmpzXCI7IC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBhIHBhcnQgb2YgcHVibGljIEFQSSB3aGVuIFVUQyBmdW5jdGlvbiB3aWxsIGJlIGltcGxlbWVudGVkLlxuLy8gU2VlIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM3NlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdGFydE9mVVRDV2Vla1llYXIoZGlydHlEYXRlLCBkaXJ0eU9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGU7XG4gIHZhciBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGUgJiYgbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlO1xuICB2YXIgZGVmYXVsdEZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9PSBudWxsID8gMSA6IHRvSW50ZWdlcihsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUpO1xuICB2YXIgZmlyc3RXZWVrQ29udGFpbnNEYXRlID0gb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgOiB0b0ludGVnZXIob3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGUpO1xuICB2YXIgeWVhciA9IGdldFVUQ1dlZWtZZWFyKGRpcnR5RGF0ZSwgZGlydHlPcHRpb25zKTtcbiAgdmFyIGZpcnN0V2VlayA9IG5ldyBEYXRlKDApO1xuICBmaXJzdFdlZWsuc2V0VVRDRnVsbFllYXIoeWVhciwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrLnNldFVUQ0hvdXJzKDAsIDAsIDAsIDApO1xuICB2YXIgZGF0ZSA9IHN0YXJ0T2ZVVENXZWVrKGZpcnN0V2VlaywgZGlydHlPcHRpb25zKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ1dlZWsgZnJvbSBcIi4uL3N0YXJ0T2ZVVENXZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgc3RhcnRPZlVUQ1dlZWtZZWFyIGZyb20gXCIuLi9zdGFydE9mVVRDV2Vla1llYXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9XRUVLID0gNjA0ODAwMDAwOyAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgYSBwYXJ0IG9mIHB1YmxpYyBBUEkgd2hlbiBVVEMgZnVuY3Rpb24gd2lsbCBiZSBpbXBsZW1lbnRlZC5cbi8vIFNlZSBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8zNzZcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VVRDV2VlayhkaXJ0eURhdGUsIG9wdGlvbnMpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciBkaWZmID0gc3RhcnRPZlVUQ1dlZWsoZGF0ZSwgb3B0aW9ucykuZ2V0VGltZSgpIC0gc3RhcnRPZlVUQ1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpLmdldFRpbWUoKTsgLy8gUm91bmQgdGhlIG51bWJlciBvZiBkYXlzIHRvIHRoZSBuZWFyZXN0IGludGVnZXJcbiAgLy8gYmVjYXVzZSB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhIHdlZWsgaXMgbm90IGNvbnN0YW50XG4gIC8vIChlLmcuIGl0J3MgZGlmZmVyZW50IGluIHRoZSB3ZWVrIG9mIHRoZSBkYXlsaWdodCBzYXZpbmcgdGltZSBjbG9jayBzaGlmdClcblxuICByZXR1cm4gTWF0aC5yb3VuZChkaWZmIC8gTUlMTElTRUNPTkRTX0lOX1dFRUspICsgMTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRMZWFkaW5nWmVyb3MobnVtYmVyLCB0YXJnZXRMZW5ndGgpIHtcbiAgdmFyIHNpZ24gPSBudW1iZXIgPCAwID8gJy0nIDogJyc7XG4gIHZhciBvdXRwdXQgPSBNYXRoLmFicyhudW1iZXIpLnRvU3RyaW5nKCk7XG5cbiAgd2hpbGUgKG91dHB1dC5sZW5ndGggPCB0YXJnZXRMZW5ndGgpIHtcbiAgICBvdXRwdXQgPSAnMCcgKyBvdXRwdXQ7XG4gIH1cblxuICByZXR1cm4gc2lnbiArIG91dHB1dDtcbn0iLCJpbXBvcnQgYWRkTGVhZGluZ1plcm9zIGZyb20gXCIuLi8uLi9hZGRMZWFkaW5nWmVyb3MvaW5kZXguanNcIjtcbi8qXG4gKiB8ICAgICB8IFVuaXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFVuaXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICBhICB8IEFNLCBQTSAgICAgICAgICAgICAgICAgICAgICAgICB8ICBBKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBkICB8IERheSBvZiBtb250aCAgICAgICAgICAgICAgICAgICB8ICBEICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBoICB8IEhvdXIgWzEtMTJdICAgICAgICAgICAgICAgICAgICB8ICBIICB8IEhvdXIgWzAtMjNdICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBtICB8IE1pbnV0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICBNICB8IE1vbnRoICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBzICB8IFNlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICB8ICBTICB8IEZyYWN0aW9uIG9mIHNlY29uZCAgICAgICAgICAgICB8XG4gKiB8ICB5ICB8IFllYXIgKGFicykgICAgICAgICAgICAgICAgICAgICB8ICBZICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICogTGV0dGVycyBtYXJrZWQgYnkgKiBhcmUgbm90IGltcGxlbWVudGVkIGJ1dCByZXNlcnZlZCBieSBVbmljb2RlIHN0YW5kYXJkLlxuICovXG5cbnZhciBmb3JtYXR0ZXJzID0ge1xuICAvLyBZZWFyXG4gIHk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIC8vIEZyb20gaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS0zMS90cjM1LWRhdGVzLmh0bWwjRGF0ZV9Gb3JtYXRfdG9rZW5zXG4gICAgLy8gfCBZZWFyICAgICB8ICAgICB5IHwgeXkgfCAgIHl5eSB8ICB5eXl5IHwgeXl5eXkgfFxuICAgIC8vIHwtLS0tLS0tLS0tfC0tLS0tLS18LS0tLXwtLS0tLS0tfC0tLS0tLS18LS0tLS0tLXxcbiAgICAvLyB8IEFEIDEgICAgIHwgICAgIDEgfCAwMSB8ICAgMDAxIHwgIDAwMDEgfCAwMDAwMSB8XG4gICAgLy8gfCBBRCAxMiAgICB8ICAgIDEyIHwgMTIgfCAgIDAxMiB8ICAwMDEyIHwgMDAwMTIgfFxuICAgIC8vIHwgQUQgMTIzICAgfCAgIDEyMyB8IDIzIHwgICAxMjMgfCAgMDEyMyB8IDAwMTIzIHxcbiAgICAvLyB8IEFEIDEyMzQgIHwgIDEyMzQgfCAzNCB8ICAxMjM0IHwgIDEyMzQgfCAwMTIzNCB8XG4gICAgLy8gfCBBRCAxMjM0NSB8IDEyMzQ1IHwgNDUgfCAxMjM0NSB8IDEyMzQ1IHwgMTIzNDUgfFxuICAgIHZhciBzaWduZWRZZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpOyAvLyBSZXR1cm5zIDEgZm9yIDEgQkMgKHdoaWNoIGlzIHllYXIgMCBpbiBKYXZhU2NyaXB0KVxuXG4gICAgdmFyIHllYXIgPSBzaWduZWRZZWFyID4gMCA/IHNpZ25lZFllYXIgOiAxIC0gc2lnbmVkWWVhcjtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHRva2VuID09PSAneXknID8geWVhciAlIDEwMCA6IHllYXIsIHRva2VuLmxlbmd0aCk7XG4gIH0sXG4gIC8vIE1vbnRoXG4gIE06IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIHZhciBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICByZXR1cm4gdG9rZW4gPT09ICdNJyA/IFN0cmluZyhtb250aCArIDEpIDogYWRkTGVhZGluZ1plcm9zKG1vbnRoICsgMSwgMik7XG4gIH0sXG4gIC8vIERheSBvZiB0aGUgbW9udGhcbiAgZDogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ0RhdGUoKSwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gQU0gb3IgUE1cbiAgYTogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgdmFyIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRhdGUuZ2V0VVRDSG91cnMoKSAvIDEyID49IDEgPyAncG0nIDogJ2FtJztcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgY2FzZSAnYWEnOlxuICAgICAgICByZXR1cm4gZGF5UGVyaW9kRW51bVZhbHVlLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgIGNhc2UgJ2FhYSc6XG4gICAgICAgIHJldHVybiBkYXlQZXJpb2RFbnVtVmFsdWU7XG5cbiAgICAgIGNhc2UgJ2FhYWFhJzpcbiAgICAgICAgcmV0dXJuIGRheVBlcmlvZEVudW1WYWx1ZVswXTtcblxuICAgICAgY2FzZSAnYWFhYSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZGF5UGVyaW9kRW51bVZhbHVlID09PSAnYW0nID8gJ2EubS4nIDogJ3AubS4nO1xuICAgIH1cbiAgfSxcbiAgLy8gSG91ciBbMS0xMl1cbiAgaDogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ0hvdXJzKCkgJSAxMiB8fCAxMiwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gSG91ciBbMC0yM11cbiAgSDogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ0hvdXJzKCksIHRva2VuLmxlbmd0aCk7XG4gIH0sXG4gIC8vIE1pbnV0ZVxuICBtOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4pIHtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGRhdGUuZ2V0VVRDTWludXRlcygpLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBTZWNvbmRcbiAgczogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldFVUQ1NlY29uZHMoKSwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gRnJhY3Rpb24gb2Ygc2Vjb25kXG4gIFM6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIHZhciBudW1iZXJPZkRpZ2l0cyA9IHRva2VuLmxlbmd0aDtcbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gZGF0ZS5nZXRVVENNaWxsaXNlY29uZHMoKTtcbiAgICB2YXIgZnJhY3Rpb25hbFNlY29uZHMgPSBNYXRoLmZsb29yKG1pbGxpc2Vjb25kcyAqIE1hdGgucG93KDEwLCBudW1iZXJPZkRpZ2l0cyAtIDMpKTtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGZyYWN0aW9uYWxTZWNvbmRzLCB0b2tlbi5sZW5ndGgpO1xuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgZm9ybWF0dGVyczsiLCJpbXBvcnQgZ2V0VVRDRGF5T2ZZZWFyIGZyb20gXCIuLi8uLi8uLi9fbGliL2dldFVUQ0RheU9mWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IGdldFVUQ0lTT1dlZWsgZnJvbSBcIi4uLy4uLy4uL19saWIvZ2V0VVRDSVNPV2Vlay9pbmRleC5qc1wiO1xuaW1wb3J0IGdldFVUQ0lTT1dlZWtZZWFyIGZyb20gXCIuLi8uLi8uLi9fbGliL2dldFVUQ0lTT1dlZWtZZWFyL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0VVRDV2VlayBmcm9tIFwiLi4vLi4vLi4vX2xpYi9nZXRVVENXZWVrL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0VVRDV2Vla1llYXIgZnJvbSBcIi4uLy4uLy4uL19saWIvZ2V0VVRDV2Vla1llYXIvaW5kZXguanNcIjtcbmltcG9ydCBhZGRMZWFkaW5nWmVyb3MgZnJvbSBcIi4uLy4uL2FkZExlYWRpbmdaZXJvcy9pbmRleC5qc1wiO1xuaW1wb3J0IGxpZ2h0Rm9ybWF0dGVycyBmcm9tIFwiLi4vbGlnaHRGb3JtYXR0ZXJzL2luZGV4LmpzXCI7XG52YXIgZGF5UGVyaW9kRW51bSA9IHtcbiAgYW06ICdhbScsXG4gIHBtOiAncG0nLFxuICBtaWRuaWdodDogJ21pZG5pZ2h0JyxcbiAgbm9vbjogJ25vb24nLFxuICBtb3JuaW5nOiAnbW9ybmluZycsXG4gIGFmdGVybm9vbjogJ2FmdGVybm9vbicsXG4gIGV2ZW5pbmc6ICdldmVuaW5nJyxcbiAgbmlnaHQ6ICduaWdodCdcbn07XG4vKlxuICogfCAgICAgfCBVbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBVbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAgYSAgfCBBTSwgUE0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgQSogfCBNaWxsaXNlY29uZHMgaW4gZGF5ICAgICAgICAgICAgfFxuICogfCAgYiAgfCBBTSwgUE0sIG5vb24sIG1pZG5pZ2h0ICAgICAgICAgfCAgQiAgfCBGbGV4aWJsZSBkYXkgcGVyaW9kICAgICAgICAgICAgfFxuICogfCAgYyAgfCBTdGFuZC1hbG9uZSBsb2NhbCBkYXkgb2Ygd2VlayAgfCAgQyogfCBMb2NhbGl6ZWQgaG91ciB3LyBkYXkgcGVyaW9kICAgfFxuICogfCAgZCAgfCBEYXkgb2YgbW9udGggICAgICAgICAgICAgICAgICAgfCAgRCAgfCBEYXkgb2YgeWVhciAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgZSAgfCBMb2NhbCBkYXkgb2Ygd2VlayAgICAgICAgICAgICAgfCAgRSAgfCBEYXkgb2Ygd2VlayAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgZiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgRiogfCBEYXkgb2Ygd2VlayBpbiBtb250aCAgICAgICAgICAgfFxuICogfCAgZyogfCBNb2RpZmllZCBKdWxpYW4gZGF5ICAgICAgICAgICAgfCAgRyAgfCBFcmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgaCAgfCBIb3VyIFsxLTEyXSAgICAgICAgICAgICAgICAgICAgfCAgSCAgfCBIb3VyIFswLTIzXSAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgaSEgfCBJU08gZGF5IG9mIHdlZWsgICAgICAgICAgICAgICAgfCAgSSEgfCBJU08gd2VlayBvZiB5ZWFyICAgICAgICAgICAgICAgfFxuICogfCAgaiogfCBMb2NhbGl6ZWQgaG91ciB3LyBkYXkgcGVyaW9kICAgfCAgSiogfCBMb2NhbGl6ZWQgaG91ciB3L28gZGF5IHBlcmlvZCAgfFxuICogfCAgayAgfCBIb3VyIFsxLTI0XSAgICAgICAgICAgICAgICAgICAgfCAgSyAgfCBIb3VyIFswLTExXSAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgbCogfCAoZGVwcmVjYXRlZCkgICAgICAgICAgICAgICAgICAgfCAgTCAgfCBTdGFuZC1hbG9uZSBtb250aCAgICAgICAgICAgICAgfFxuICogfCAgbSAgfCBNaW51dGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgTSAgfCBNb250aCAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgbiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgTiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgbyEgfCBPcmRpbmFsIG51bWJlciBtb2RpZmllciAgICAgICAgfCAgTyAgfCBUaW1lem9uZSAoR01UKSAgICAgICAgICAgICAgICAgfFxuICogfCAgcCEgfCBMb25nIGxvY2FsaXplZCB0aW1lICAgICAgICAgICAgfCAgUCEgfCBMb25nIGxvY2FsaXplZCBkYXRlICAgICAgICAgICAgfFxuICogfCAgcSAgfCBTdGFuZC1hbG9uZSBxdWFydGVyICAgICAgICAgICAgfCAgUSAgfCBRdWFydGVyICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgciogfCBSZWxhdGVkIEdyZWdvcmlhbiB5ZWFyICAgICAgICAgfCAgUiEgfCBJU08gd2Vlay1udW1iZXJpbmcgeWVhciAgICAgICAgfFxuICogfCAgcyAgfCBTZWNvbmQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgUyAgfCBGcmFjdGlvbiBvZiBzZWNvbmQgICAgICAgICAgICAgfFxuICogfCAgdCEgfCBTZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgICAgICAgfCAgVCEgfCBNaWxsaXNlY29uZHMgdGltZXN0YW1wICAgICAgICAgfFxuICogfCAgdSAgfCBFeHRlbmRlZCB5ZWFyICAgICAgICAgICAgICAgICAgfCAgVSogfCBDeWNsaWMgeWVhciAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgdiogfCBUaW1lem9uZSAoZ2VuZXJpYyBub24tbG9jYXQuKSAgfCAgViogfCBUaW1lem9uZSAobG9jYXRpb24pICAgICAgICAgICAgfFxuICogfCAgdyAgfCBMb2NhbCB3ZWVrIG9mIHllYXIgICAgICAgICAgICAgfCAgVyogfCBXZWVrIG9mIG1vbnRoICAgICAgICAgICAgICAgICAgfFxuICogfCAgeCAgfCBUaW1lem9uZSAoSVNPLTg2MDEgdy9vIFopICAgICAgfCAgWCAgfCBUaW1lem9uZSAoSVNPLTg2MDEpICAgICAgICAgICAgfFxuICogfCAgeSAgfCBZZWFyIChhYnMpICAgICAgICAgICAgICAgICAgICAgfCAgWSAgfCBMb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyICAgICAgfFxuICogfCAgeiAgfCBUaW1lem9uZSAoc3BlY2lmaWMgbm9uLWxvY2F0LikgfCAgWiogfCBUaW1lem9uZSAoYWxpYXNlcykgICAgICAgICAgICAgfFxuICpcbiAqIExldHRlcnMgbWFya2VkIGJ5ICogYXJlIG5vdCBpbXBsZW1lbnRlZCBidXQgcmVzZXJ2ZWQgYnkgVW5pY29kZSBzdGFuZGFyZC5cbiAqXG4gKiBMZXR0ZXJzIG1hcmtlZCBieSAhIGFyZSBub24tc3RhbmRhcmQsIGJ1dCBpbXBsZW1lbnRlZCBieSBkYXRlLWZuczpcbiAqIC0gYG9gIG1vZGlmaWVzIHRoZSBwcmV2aW91cyB0b2tlbiB0byB0dXJuIGl0IGludG8gYW4gb3JkaW5hbCAoc2VlIGBmb3JtYXRgIGRvY3MpXG4gKiAtIGBpYCBpcyBJU08gZGF5IG9mIHdlZWsuIEZvciBgaWAgYW5kIGBpaWAgaXMgcmV0dXJucyBudW1lcmljIElTTyB3ZWVrIGRheXMsXG4gKiAgIGkuZS4gNyBmb3IgU3VuZGF5LCAxIGZvciBNb25kYXksIGV0Yy5cbiAqIC0gYElgIGlzIElTTyB3ZWVrIG9mIHllYXIsIGFzIG9wcG9zZWQgdG8gYHdgIHdoaWNoIGlzIGxvY2FsIHdlZWsgb2YgeWVhci5cbiAqIC0gYFJgIGlzIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyLCBhcyBvcHBvc2VkIHRvIGBZYCB3aGljaCBpcyBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyLlxuICogICBgUmAgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBJYCBhbmQgYGlgXG4gKiAgIGZvciB1bml2ZXJzYWwgSVNPIHdlZWstbnVtYmVyaW5nIGRhdGUsIHdoZXJlYXNcbiAqICAgYFlgIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgd2AgYW5kIGBlYFxuICogICBmb3Igd2Vlay1udW1iZXJpbmcgZGF0ZSBzcGVjaWZpYyB0byB0aGUgbG9jYWxlLlxuICogLSBgUGAgaXMgbG9uZyBsb2NhbGl6ZWQgZGF0ZSBmb3JtYXRcbiAqIC0gYHBgIGlzIGxvbmcgbG9jYWxpemVkIHRpbWUgZm9ybWF0XG4gKi9cblxudmFyIGZvcm1hdHRlcnMgPSB7XG4gIC8vIEVyYVxuICBHOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGVyYSA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKSA+IDAgPyAxIDogMDtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIEFELCBCQ1xuICAgICAgY2FzZSAnRyc6XG4gICAgICBjYXNlICdHRyc6XG4gICAgICBjYXNlICdHR0cnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZXJhKGVyYSwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnXG4gICAgICAgIH0pO1xuICAgICAgLy8gQSwgQlxuXG4gICAgICBjYXNlICdHR0dHRyc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5lcmEoZXJhLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnXG4gICAgICAgIH0pO1xuICAgICAgLy8gQW5ubyBEb21pbmksIEJlZm9yZSBDaHJpc3RcblxuICAgICAgY2FzZSAnR0dHRyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZXJhKGVyYSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZSdcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuICAvLyBZZWFyXG4gIHk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICAvLyBPcmRpbmFsIG51bWJlclxuICAgIGlmICh0b2tlbiA9PT0gJ3lvJykge1xuICAgICAgdmFyIHNpZ25lZFllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7IC8vIFJldHVybnMgMSBmb3IgMSBCQyAod2hpY2ggaXMgeWVhciAwIGluIEphdmFTY3JpcHQpXG5cbiAgICAgIHZhciB5ZWFyID0gc2lnbmVkWWVhciA+IDAgPyBzaWduZWRZZWFyIDogMSAtIHNpZ25lZFllYXI7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcih5ZWFyLCB7XG4gICAgICAgIHVuaXQ6ICd5ZWFyJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy55KGRhdGUsIHRva2VuKTtcbiAgfSxcbiAgLy8gTG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhclxuICBZOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIHNpZ25lZFdlZWtZZWFyID0gZ2V0VVRDV2Vla1llYXIoZGF0ZSwgb3B0aW9ucyk7IC8vIFJldHVybnMgMSBmb3IgMSBCQyAod2hpY2ggaXMgeWVhciAwIGluIEphdmFTY3JpcHQpXG5cbiAgICB2YXIgd2Vla1llYXIgPSBzaWduZWRXZWVrWWVhciA+IDAgPyBzaWduZWRXZWVrWWVhciA6IDEgLSBzaWduZWRXZWVrWWVhcjsgLy8gVHdvIGRpZ2l0IHllYXJcblxuICAgIGlmICh0b2tlbiA9PT0gJ1lZJykge1xuICAgICAgdmFyIHR3b0RpZ2l0WWVhciA9IHdlZWtZZWFyICUgMTAwO1xuICAgICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyh0d29EaWdpdFllYXIsIDIpO1xuICAgIH0gLy8gT3JkaW5hbCBudW1iZXJcblxuXG4gICAgaWYgKHRva2VuID09PSAnWW8nKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcih3ZWVrWWVhciwge1xuICAgICAgICB1bml0OiAneWVhcidcbiAgICAgIH0pO1xuICAgIH0gLy8gUGFkZGluZ1xuXG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHdlZWtZZWFyLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBJU08gd2Vlay1udW1iZXJpbmcgeWVhclxuICBSOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4pIHtcbiAgICB2YXIgaXNvV2Vla1llYXIgPSBnZXRVVENJU09XZWVrWWVhcihkYXRlKTsgLy8gUGFkZGluZ1xuXG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhpc29XZWVrWWVhciwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gRXh0ZW5kZWQgeWVhci4gVGhpcyBpcyBhIHNpbmdsZSBudW1iZXIgZGVzaWduYXRpbmcgdGhlIHllYXIgb2YgdGhpcyBjYWxlbmRhciBzeXN0ZW0uXG4gIC8vIFRoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiBgeWAgYW5kIGB1YCBsb2NhbGl6ZXJzIGFyZSBCLkMuIHllYXJzOlxuICAvLyB8IFllYXIgfCBgeWAgfCBgdWAgfFxuICAvLyB8LS0tLS0tfC0tLS0tfC0tLS0tfFxuICAvLyB8IEFDIDEgfCAgIDEgfCAgIDEgfFxuICAvLyB8IEJDIDEgfCAgIDEgfCAgIDAgfFxuICAvLyB8IEJDIDIgfCAgIDIgfCAgLTEgfFxuICAvLyBBbHNvIGB5eWAgYWx3YXlzIHJldHVybnMgdGhlIGxhc3QgdHdvIGRpZ2l0cyBvZiBhIHllYXIsXG4gIC8vIHdoaWxlIGB1dWAgcGFkcyBzaW5nbGUgZGlnaXQgeWVhcnMgdG8gMiBjaGFyYWN0ZXJzIGFuZCByZXR1cm5zIG90aGVyIHllYXJzIHVuY2hhbmdlZC5cbiAgdTogZnVuY3Rpb24gKGRhdGUsIHRva2VuKSB7XG4gICAgdmFyIHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyh5ZWFyLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBRdWFydGVyXG4gIFE6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgcXVhcnRlciA9IE1hdGguY2VpbCgoZGF0ZS5nZXRVVENNb250aCgpICsgMSkgLyAzKTtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIDMsIDRcbiAgICAgIGNhc2UgJ1EnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKHF1YXJ0ZXIpO1xuICAgICAgLy8gMDEsIDAyLCAwMywgMDRcblxuICAgICAgY2FzZSAnUVEnOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHF1YXJ0ZXIsIDIpO1xuICAgICAgLy8gMXN0LCAybmQsIDNyZCwgNHRoXG5cbiAgICAgIGNhc2UgJ1FvJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIocXVhcnRlciwge1xuICAgICAgICAgIHVuaXQ6ICdxdWFydGVyJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFExLCBRMiwgUTMsIFE0XG5cbiAgICAgIGNhc2UgJ1FRUSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5xdWFydGVyKHF1YXJ0ZXIsIHtcbiAgICAgICAgICB3aWR0aDogJ2FiYnJldmlhdGVkJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyAxLCAyLCAzLCA0IChuYXJyb3cgcXVhcnRlcjsgY291bGQgYmUgbm90IG51bWVyaWNhbClcblxuICAgICAgY2FzZSAnUVFRUVEnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUucXVhcnRlcihxdWFydGVyLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIDFzdCBxdWFydGVyLCAybmQgcXVhcnRlciwgLi4uXG5cbiAgICAgIGNhc2UgJ1FRUVEnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLnF1YXJ0ZXIocXVhcnRlciwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gU3RhbmQtYWxvbmUgcXVhcnRlclxuICBxOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIHF1YXJ0ZXIgPSBNYXRoLmNlaWwoKGRhdGUuZ2V0VVRDTW9udGgoKSArIDEpIC8gMyk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyAxLCAyLCAzLCA0XG4gICAgICBjYXNlICdxJzpcbiAgICAgICAgcmV0dXJuIFN0cmluZyhxdWFydGVyKTtcbiAgICAgIC8vIDAxLCAwMiwgMDMsIDA0XG5cbiAgICAgIGNhc2UgJ3FxJzpcbiAgICAgICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhxdWFydGVyLCAyKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAzcmQsIDR0aFxuXG4gICAgICBjYXNlICdxbyc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKHF1YXJ0ZXIsIHtcbiAgICAgICAgICB1bml0OiAncXVhcnRlcidcbiAgICAgICAgfSk7XG4gICAgICAvLyBRMSwgUTIsIFEzLCBRNFxuXG4gICAgICBjYXNlICdxcXEnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUucXVhcnRlcihxdWFydGVyLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ3N0YW5kYWxvbmUnXG4gICAgICAgIH0pO1xuICAgICAgLy8gMSwgMiwgMywgNCAobmFycm93IHF1YXJ0ZXI7IGNvdWxkIGJlIG5vdCBudW1lcmljYWwpXG5cbiAgICAgIGNhc2UgJ3FxcXFxJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLnF1YXJ0ZXIocXVhcnRlciwge1xuICAgICAgICAgIHdpZHRoOiAnbmFycm93JyxcbiAgICAgICAgICBjb250ZXh0OiAnc3RhbmRhbG9uZSdcbiAgICAgICAgfSk7XG4gICAgICAvLyAxc3QgcXVhcnRlciwgMm5kIHF1YXJ0ZXIsIC4uLlxuXG4gICAgICBjYXNlICdxcXFxJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5xdWFydGVyKHF1YXJ0ZXIsIHtcbiAgICAgICAgICB3aWR0aDogJ3dpZGUnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG4gIC8vIE1vbnRoXG4gIE06IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlICdNJzpcbiAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy5NKGRhdGUsIHRva2VuKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDEydGhcblxuICAgICAgY2FzZSAnTW8nOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihtb250aCArIDEsIHtcbiAgICAgICAgICB1bml0OiAnbW9udGgnXG4gICAgICAgIH0pO1xuICAgICAgLy8gSmFuLCBGZWIsIC4uLiwgRGVjXG5cbiAgICAgIGNhc2UgJ01NTSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIEosIEYsIC4uLiwgRFxuXG4gICAgICBjYXNlICdNTU1NTSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiAnbmFycm93JyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyBKYW51YXJ5LCBGZWJydWFyeSwgLi4uLCBEZWNlbWJlclxuXG4gICAgICBjYXNlICdNTU1NJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gU3RhbmQtYWxvbmUgbW9udGhcbiAgTDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIHZhciBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIC4uLiwgMTJcbiAgICAgIGNhc2UgJ0wnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKG1vbnRoICsgMSk7XG4gICAgICAvLyAwMSwgMDIsIC4uLiwgMTJcblxuICAgICAgY2FzZSAnTEwnOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKG1vbnRoICsgMSwgMik7XG4gICAgICAvLyAxc3QsIDJuZCwgLi4uLCAxMnRoXG5cbiAgICAgIGNhc2UgJ0xvJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIobW9udGggKyAxLCB7XG4gICAgICAgICAgdW5pdDogJ21vbnRoJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIEphbiwgRmViLCAuLi4sIERlY1xuXG4gICAgICBjYXNlICdMTEwnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHtcbiAgICAgICAgICB3aWR0aDogJ2FiYnJldmlhdGVkJyxcbiAgICAgICAgICBjb250ZXh0OiAnc3RhbmRhbG9uZSdcbiAgICAgICAgfSk7XG4gICAgICAvLyBKLCBGLCAuLi4sIERcblxuICAgICAgY2FzZSAnTExMTEwnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHtcbiAgICAgICAgICB3aWR0aDogJ25hcnJvdycsXG4gICAgICAgICAgY29udGV4dDogJ3N0YW5kYWxvbmUnXG4gICAgICAgIH0pO1xuICAgICAgLy8gSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXJcblxuICAgICAgY2FzZSAnTExMTCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHtcbiAgICAgICAgICB3aWR0aDogJ3dpZGUnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG4gIC8vIExvY2FsIHdlZWsgb2YgeWVhclxuICB3OiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIHdlZWsgPSBnZXRVVENXZWVrKGRhdGUsIG9wdGlvbnMpO1xuXG4gICAgaWYgKHRva2VuID09PSAnd28nKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcih3ZWVrLCB7XG4gICAgICAgIHVuaXQ6ICd3ZWVrJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyh3ZWVrLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBJU08gd2VlayBvZiB5ZWFyXG4gIEk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgaXNvV2VlayA9IGdldFVUQ0lTT1dlZWsoZGF0ZSk7XG5cbiAgICBpZiAodG9rZW4gPT09ICdJbycpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGlzb1dlZWssIHtcbiAgICAgICAgdW5pdDogJ3dlZWsnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGlzb1dlZWssIHRva2VuLmxlbmd0aCk7XG4gIH0sXG4gIC8vIERheSBvZiB0aGUgbW9udGhcbiAgZDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGlmICh0b2tlbiA9PT0gJ2RvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF0ZS5nZXRVVENEYXRlKCksIHtcbiAgICAgICAgdW5pdDogJ2RhdGUnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGlnaHRGb3JtYXR0ZXJzLmQoZGF0ZSwgdG9rZW4pO1xuICB9LFxuICAvLyBEYXkgb2YgeWVhclxuICBEOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGRheU9mWWVhciA9IGdldFVUQ0RheU9mWWVhcihkYXRlKTtcblxuICAgIGlmICh0b2tlbiA9PT0gJ0RvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF5T2ZZZWFyLCB7XG4gICAgICAgIHVuaXQ6ICdkYXlPZlllYXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGRheU9mWWVhciwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gRGF5IG9mIHdlZWtcbiAgRTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIHZhciBkYXlPZldlZWsgPSBkYXRlLmdldFVUQ0RheSgpO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gVHVlXG4gICAgICBjYXNlICdFJzpcbiAgICAgIGNhc2UgJ0VFJzpcbiAgICAgIGNhc2UgJ0VFRSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVFxuXG4gICAgICBjYXNlICdFRUVFRSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFR1XG5cbiAgICAgIGNhc2UgJ0VFRUVFRSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdzaG9ydCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVlc2RheVxuXG4gICAgICBjYXNlICdFRUVFJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICd3aWRlJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuICAvLyBMb2NhbCBkYXkgb2Ygd2Vla1xuICBlOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gICAgdmFyIGxvY2FsRGF5T2ZXZWVrID0gKGRheU9mV2VlayAtIG9wdGlvbnMud2Vla1N0YXJ0c09uICsgOCkgJSA3IHx8IDc7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBOdW1lcmljYWwgdmFsdWUgKE50aCBkYXkgb2Ygd2VlayB3aXRoIGN1cnJlbnQgbG9jYWxlIG9yIHdlZWtTdGFydHNPbilcbiAgICAgIGNhc2UgJ2UnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGxvY2FsRGF5T2ZXZWVrKTtcbiAgICAgIC8vIFBhZGRlZCBudW1lcmljYWwgdmFsdWVcblxuICAgICAgY2FzZSAnZWUnOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGxvY2FsRGF5T2ZXZWVrLCAyKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDd0aFxuXG4gICAgICBjYXNlICdlbyc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGxvY2FsRGF5T2ZXZWVrLCB7XG4gICAgICAgICAgdW5pdDogJ2RheSdcbiAgICAgICAgfSk7XG5cbiAgICAgIGNhc2UgJ2VlZSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVFxuXG4gICAgICBjYXNlICdlZWVlZSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFR1XG5cbiAgICAgIGNhc2UgJ2VlZWVlZSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICdzaG9ydCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVlc2RheVxuXG4gICAgICBjYXNlICdlZWVlJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6ICd3aWRlJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuICAvLyBTdGFuZC1hbG9uZSBsb2NhbCBkYXkgb2Ygd2Vla1xuICBjOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gICAgdmFyIGxvY2FsRGF5T2ZXZWVrID0gKGRheU9mV2VlayAtIG9wdGlvbnMud2Vla1N0YXJ0c09uICsgOCkgJSA3IHx8IDc7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBOdW1lcmljYWwgdmFsdWUgKHNhbWUgYXMgaW4gYGVgKVxuICAgICAgY2FzZSAnYyc6XG4gICAgICAgIHJldHVybiBTdHJpbmcobG9jYWxEYXlPZldlZWspO1xuICAgICAgLy8gUGFkZGVkIG51bWVyaWNhbCB2YWx1ZVxuXG4gICAgICBjYXNlICdjYyc6XG4gICAgICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MobG9jYWxEYXlPZldlZWssIHRva2VuLmxlbmd0aCk7XG4gICAgICAvLyAxc3QsIDJuZCwgLi4uLCA3dGhcblxuICAgICAgY2FzZSAnY28nOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihsb2NhbERheU9mV2Vlaywge1xuICAgICAgICAgIHVuaXQ6ICdkYXknXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdjY2MnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFRcblxuICAgICAgY2FzZSAnY2NjY2MnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnbmFycm93JyxcbiAgICAgICAgICBjb250ZXh0OiAnc3RhbmRhbG9uZSdcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdVxuXG4gICAgICBjYXNlICdjY2NjY2MnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnc2hvcnQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdzdGFuZGFsb25lJ1xuICAgICAgICB9KTtcbiAgICAgIC8vIFR1ZXNkYXlcblxuICAgICAgY2FzZSAnY2NjYyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ3N0YW5kYWxvbmUnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gSVNPIGRheSBvZiB3ZWVrXG4gIGk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgZGF5T2ZXZWVrID0gZGF0ZS5nZXRVVENEYXkoKTtcbiAgICB2YXIgaXNvRGF5T2ZXZWVrID0gZGF5T2ZXZWVrID09PSAwID8gNyA6IGRheU9mV2VlaztcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDJcbiAgICAgIGNhc2UgJ2knOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGlzb0RheU9mV2Vlayk7XG4gICAgICAvLyAwMlxuXG4gICAgICBjYXNlICdpaSc6XG4gICAgICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoaXNvRGF5T2ZXZWVrLCB0b2tlbi5sZW5ndGgpO1xuICAgICAgLy8gMm5kXG5cbiAgICAgIGNhc2UgJ2lvJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaXNvRGF5T2ZXZWVrLCB7XG4gICAgICAgICAgdW5pdDogJ2RheSdcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdWVcblxuICAgICAgY2FzZSAnaWlpJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ2FiYnJldmlhdGVkJyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyBUXG5cbiAgICAgIGNhc2UgJ2lpaWlpJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ25hcnJvdycsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVcblxuICAgICAgY2FzZSAnaWlpaWlpJzpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ3Nob3J0JyxcbiAgICAgICAgICBjb250ZXh0OiAnZm9ybWF0dGluZydcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdWVzZGF5XG5cbiAgICAgIGNhc2UgJ2lpaWknOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogJ3dpZGUnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG4gIC8vIEFNIG9yIFBNXG4gIGE6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XG4gICAgdmFyIGRheVBlcmlvZEVudW1WYWx1ZSA9IGhvdXJzIC8gMTIgPj0gMSA/ICdwbScgOiAnYW0nO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSAnYSc6XG4gICAgICBjYXNlICdhYSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdhYWEnOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjYXNlICdhYWFhYSc6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAnYWFhYSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gQU0sIFBNLCBtaWRuaWdodCwgbm9vblxuICBiOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgIHZhciBkYXlQZXJpb2RFbnVtVmFsdWU7XG5cbiAgICBpZiAoaG91cnMgPT09IDEyKSB7XG4gICAgICBkYXlQZXJpb2RFbnVtVmFsdWUgPSBkYXlQZXJpb2RFbnVtLm5vb247XG4gICAgfSBlbHNlIGlmIChob3VycyA9PT0gMCkge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gZGF5UGVyaW9kRW51bS5taWRuaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gaG91cnMgLyAxMiA+PSAxID8gJ3BtJyA6ICdhbSc7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSAnYic6XG4gICAgICBjYXNlICdiYic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdiYmInOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnYWJicmV2aWF0ZWQnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjYXNlICdiYmJiYic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAnYmJiYic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gaW4gdGhlIG1vcm5pbmcsIGluIHRoZSBhZnRlcm5vb24sIGluIHRoZSBldmVuaW5nLCBhdCBuaWdodFxuICBCOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgIHZhciBkYXlQZXJpb2RFbnVtVmFsdWU7XG5cbiAgICBpZiAoaG91cnMgPj0gMTcpIHtcbiAgICAgIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRheVBlcmlvZEVudW0uZXZlbmluZztcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDEyKSB7XG4gICAgICBkYXlQZXJpb2RFbnVtVmFsdWUgPSBkYXlQZXJpb2RFbnVtLmFmdGVybm9vbjtcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDQpIHtcbiAgICAgIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRheVBlcmlvZEVudW0ubW9ybmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gZGF5UGVyaW9kRW51bS5uaWdodDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlICdCJzpcbiAgICAgIGNhc2UgJ0JCJzpcbiAgICAgIGNhc2UgJ0JCQic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICdhYmJyZXZpYXRlZCcsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuXG4gICAgICBjYXNlICdCQkJCQic6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6ICduYXJyb3cnLFxuICAgICAgICAgIGNvbnRleHQ6ICdmb3JtYXR0aW5nJ1xuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAnQkJCQic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5UGVyaW9kKGRheVBlcmlvZEVudW1WYWx1ZSwge1xuICAgICAgICAgIHdpZHRoOiAnd2lkZScsXG4gICAgICAgICAgY29udGV4dDogJ2Zvcm1hdHRpbmcnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgLy8gSG91ciBbMS0xMl1cbiAgaDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGlmICh0b2tlbiA9PT0gJ2hvJykge1xuICAgICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpICUgMTI7XG4gICAgICBpZiAoaG91cnMgPT09IDApIGhvdXJzID0gMTI7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihob3Vycywge1xuICAgICAgICB1bml0OiAnaG91cidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMuaChkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIEhvdXIgWzAtMjNdXG4gIEg6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBpZiAodG9rZW4gPT09ICdIbycpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGRhdGUuZ2V0VVRDSG91cnMoKSwge1xuICAgICAgICB1bml0OiAnaG91cidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMuSChkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIEhvdXIgWzAtMTFdXG4gIEs6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICB2YXIgaG91cnMgPSBkYXRlLmdldFVUQ0hvdXJzKCkgJSAxMjtcblxuICAgIGlmICh0b2tlbiA9PT0gJ0tvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaG91cnMsIHtcbiAgICAgICAgdW5pdDogJ2hvdXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGhvdXJzLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBIb3VyIFsxLTI0XVxuICBrOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgdmFyIGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgIGlmIChob3VycyA9PT0gMCkgaG91cnMgPSAyNDtcblxuICAgIGlmICh0b2tlbiA9PT0gJ2tvJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaG91cnMsIHtcbiAgICAgICAgdW5pdDogJ2hvdXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGhvdXJzLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuICAvLyBNaW51dGVcbiAgbTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGlmICh0b2tlbiA9PT0gJ21vJykge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF0ZS5nZXRVVENNaW51dGVzKCksIHtcbiAgICAgICAgdW5pdDogJ21pbnV0ZSdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMubShkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIFNlY29uZFxuICBzOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgaWYgKHRva2VuID09PSAnc28nKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihkYXRlLmdldFVUQ1NlY29uZHMoKSwge1xuICAgICAgICB1bml0OiAnc2Vjb25kJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy5zKGRhdGUsIHRva2VuKTtcbiAgfSxcbiAgLy8gRnJhY3Rpb24gb2Ygc2Vjb25kXG4gIFM6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMuUyhkYXRlLCB0b2tlbik7XG4gIH0sXG4gIC8vIFRpbWV6b25lIChJU08tODYwMS4gSWYgb2Zmc2V0IGlzIDAsIG91dHB1dCBpcyBhbHdheXMgYCdaJ2ApXG4gIFg6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lem9uZU9mZnNldCA9IG9yaWdpbmFsRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xuXG4gICAgaWYgKHRpbWV6b25lT2Zmc2V0ID09PSAwKSB7XG4gICAgICByZXR1cm4gJ1onO1xuICAgIH1cblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIEhvdXJzIGFuZCBvcHRpb25hbCBtaW51dGVzXG4gICAgICBjYXNlICdYJzpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyh0aW1lem9uZU9mZnNldCk7XG4gICAgICAvLyBIb3VycywgbWludXRlcyBhbmQgb3B0aW9uYWwgc2Vjb25kcyB3aXRob3V0IGA6YCBkZWxpbWl0ZXJcbiAgICAgIC8vIE5vdGU6IG5laXRoZXIgSVNPLTg2MDEgbm9yIEphdmFTY3JpcHQgc3VwcG9ydHMgc2Vjb25kcyBpbiB0aW1lem9uZSBvZmZzZXRzXG4gICAgICAvLyBzbyB0aGlzIHRva2VuIGFsd2F5cyBoYXMgdGhlIHNhbWUgb3V0cHV0IGFzIGBYWGBcblxuICAgICAgY2FzZSAnWFhYWCc6XG4gICAgICBjYXNlICdYWCc6XG4gICAgICAgIC8vIEhvdXJzIGFuZCBtaW51dGVzIHdpdGhvdXQgYDpgIGRlbGltaXRlclxuICAgICAgICByZXR1cm4gZm9ybWF0VGltZXpvbmUodGltZXpvbmVPZmZzZXQpO1xuICAgICAgLy8gSG91cnMsIG1pbnV0ZXMgYW5kIG9wdGlvbmFsIHNlY29uZHMgd2l0aCBgOmAgZGVsaW1pdGVyXG4gICAgICAvLyBOb3RlOiBuZWl0aGVyIElTTy04NjAxIG5vciBKYXZhU2NyaXB0IHN1cHBvcnRzIHNlY29uZHMgaW4gdGltZXpvbmUgb2Zmc2V0c1xuICAgICAgLy8gc28gdGhpcyB0b2tlbiBhbHdheXMgaGFzIHRoZSBzYW1lIG91dHB1dCBhcyBgWFhYYFxuXG4gICAgICBjYXNlICdYWFhYWCc6XG4gICAgICBjYXNlICdYWFgnOiAvLyBIb3VycyBhbmQgbWludXRlcyB3aXRoIGA6YCBkZWxpbWl0ZXJcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0LCAnOicpO1xuICAgIH1cbiAgfSxcbiAgLy8gVGltZXpvbmUgKElTTy04NjAxLiBJZiBvZmZzZXQgaXMgMCwgb3V0cHV0IGlzIGAnKzAwOjAwJ2Agb3IgZXF1aXZhbGVudClcbiAgeDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBfbG9jYWxpemUsIG9wdGlvbnMpIHtcbiAgICB2YXIgb3JpZ2luYWxEYXRlID0gb3B0aW9ucy5fb3JpZ2luYWxEYXRlIHx8IGRhdGU7XG4gICAgdmFyIHRpbWV6b25lT2Zmc2V0ID0gb3JpZ2luYWxEYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBIb3VycyBhbmQgb3B0aW9uYWwgbWludXRlc1xuICAgICAgY2FzZSAneCc6XG4gICAgICAgIHJldHVybiBmb3JtYXRUaW1lem9uZVdpdGhPcHRpb25hbE1pbnV0ZXModGltZXpvbmVPZmZzZXQpO1xuICAgICAgLy8gSG91cnMsIG1pbnV0ZXMgYW5kIG9wdGlvbmFsIHNlY29uZHMgd2l0aG91dCBgOmAgZGVsaW1pdGVyXG4gICAgICAvLyBOb3RlOiBuZWl0aGVyIElTTy04NjAxIG5vciBKYXZhU2NyaXB0IHN1cHBvcnRzIHNlY29uZHMgaW4gdGltZXpvbmUgb2Zmc2V0c1xuICAgICAgLy8gc28gdGhpcyB0b2tlbiBhbHdheXMgaGFzIHRoZSBzYW1lIG91dHB1dCBhcyBgeHhgXG5cbiAgICAgIGNhc2UgJ3h4eHgnOlxuICAgICAgY2FzZSAneHgnOlxuICAgICAgICAvLyBIb3VycyBhbmQgbWludXRlcyB3aXRob3V0IGA6YCBkZWxpbWl0ZXJcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0KTtcbiAgICAgIC8vIEhvdXJzLCBtaW51dGVzIGFuZCBvcHRpb25hbCBzZWNvbmRzIHdpdGggYDpgIGRlbGltaXRlclxuICAgICAgLy8gTm90ZTogbmVpdGhlciBJU08tODYwMSBub3IgSmF2YVNjcmlwdCBzdXBwb3J0cyBzZWNvbmRzIGluIHRpbWV6b25lIG9mZnNldHNcbiAgICAgIC8vIHNvIHRoaXMgdG9rZW4gYWx3YXlzIGhhcyB0aGUgc2FtZSBvdXRwdXQgYXMgYHh4eGBcblxuICAgICAgY2FzZSAneHh4eHgnOlxuICAgICAgY2FzZSAneHh4JzogLy8gSG91cnMgYW5kIG1pbnV0ZXMgd2l0aCBgOmAgZGVsaW1pdGVyXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmb3JtYXRUaW1lem9uZSh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICB9XG4gIH0sXG4gIC8vIFRpbWV6b25lIChHTVQpXG4gIE86IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lem9uZU9mZnNldCA9IG9yaWdpbmFsRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gU2hvcnRcbiAgICAgIGNhc2UgJ08nOlxuICAgICAgY2FzZSAnT08nOlxuICAgICAgY2FzZSAnT09PJzpcbiAgICAgICAgcmV0dXJuICdHTVQnICsgZm9ybWF0VGltZXpvbmVTaG9ydCh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICAgIC8vIExvbmdcblxuICAgICAgY2FzZSAnT09PTyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ0dNVCcgKyBmb3JtYXRUaW1lem9uZSh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICB9XG4gIH0sXG4gIC8vIFRpbWV6b25lIChzcGVjaWZpYyBub24tbG9jYXRpb24pXG4gIHo6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lem9uZU9mZnNldCA9IG9yaWdpbmFsRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gU2hvcnRcbiAgICAgIGNhc2UgJ3onOlxuICAgICAgY2FzZSAnenonOlxuICAgICAgY2FzZSAnenp6JzpcbiAgICAgICAgcmV0dXJuICdHTVQnICsgZm9ybWF0VGltZXpvbmVTaG9ydCh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICAgIC8vIExvbmdcblxuICAgICAgY2FzZSAnenp6eic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ0dNVCcgKyBmb3JtYXRUaW1lem9uZSh0aW1lem9uZU9mZnNldCwgJzonKTtcbiAgICB9XG4gIH0sXG4gIC8vIFNlY29uZHMgdGltZXN0YW1wXG4gIHQ6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplLCBvcHRpb25zKSB7XG4gICAgdmFyIG9yaWdpbmFsRGF0ZSA9IG9wdGlvbnMuX29yaWdpbmFsRGF0ZSB8fCBkYXRlO1xuICAgIHZhciB0aW1lc3RhbXAgPSBNYXRoLmZsb29yKG9yaWdpbmFsRGF0ZS5nZXRUaW1lKCkgLyAxMDAwKTtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHRpbWVzdGFtcCwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbiAgLy8gTWlsbGlzZWNvbmRzIHRpbWVzdGFtcFxuICBUOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIF9sb2NhbGl6ZSwgb3B0aW9ucykge1xuICAgIHZhciBvcmlnaW5hbERhdGUgPSBvcHRpb25zLl9vcmlnaW5hbERhdGUgfHwgZGF0ZTtcbiAgICB2YXIgdGltZXN0YW1wID0gb3JpZ2luYWxEYXRlLmdldFRpbWUoKTtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHRpbWVzdGFtcCwgdG9rZW4ubGVuZ3RoKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gZm9ybWF0VGltZXpvbmVTaG9ydChvZmZzZXQsIGRpcnR5RGVsaW1pdGVyKSB7XG4gIHZhciBzaWduID0gb2Zmc2V0ID4gMCA/ICctJyA6ICcrJztcbiAgdmFyIGFic09mZnNldCA9IE1hdGguYWJzKG9mZnNldCk7XG4gIHZhciBob3VycyA9IE1hdGguZmxvb3IoYWJzT2Zmc2V0IC8gNjApO1xuICB2YXIgbWludXRlcyA9IGFic09mZnNldCAlIDYwO1xuXG4gIGlmIChtaW51dGVzID09PSAwKSB7XG4gICAgcmV0dXJuIHNpZ24gKyBTdHJpbmcoaG91cnMpO1xuICB9XG5cbiAgdmFyIGRlbGltaXRlciA9IGRpcnR5RGVsaW1pdGVyIHx8ICcnO1xuICByZXR1cm4gc2lnbiArIFN0cmluZyhob3VycykgKyBkZWxpbWl0ZXIgKyBhZGRMZWFkaW5nWmVyb3MobWludXRlcywgMik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyhvZmZzZXQsIGRpcnR5RGVsaW1pdGVyKSB7XG4gIGlmIChvZmZzZXQgJSA2MCA9PT0gMCkge1xuICAgIHZhciBzaWduID0gb2Zmc2V0ID4gMCA/ICctJyA6ICcrJztcbiAgICByZXR1cm4gc2lnbiArIGFkZExlYWRpbmdaZXJvcyhNYXRoLmFicyhvZmZzZXQpIC8gNjAsIDIpO1xuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKG9mZnNldCwgZGlydHlEZWxpbWl0ZXIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRUaW1lem9uZShvZmZzZXQsIGRpcnR5RGVsaW1pdGVyKSB7XG4gIHZhciBkZWxpbWl0ZXIgPSBkaXJ0eURlbGltaXRlciB8fCAnJztcbiAgdmFyIHNpZ24gPSBvZmZzZXQgPiAwID8gJy0nIDogJysnO1xuICB2YXIgYWJzT2Zmc2V0ID0gTWF0aC5hYnMob2Zmc2V0KTtcbiAgdmFyIGhvdXJzID0gYWRkTGVhZGluZ1plcm9zKE1hdGguZmxvb3IoYWJzT2Zmc2V0IC8gNjApLCAyKTtcbiAgdmFyIG1pbnV0ZXMgPSBhZGRMZWFkaW5nWmVyb3MoYWJzT2Zmc2V0ICUgNjAsIDIpO1xuICByZXR1cm4gc2lnbiArIGhvdXJzICsgZGVsaW1pdGVyICsgbWludXRlcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0dGVyczsiLCJmdW5jdGlvbiBkYXRlTG9uZ0Zvcm1hdHRlcihwYXR0ZXJuLCBmb3JtYXRMb25nKSB7XG4gIHN3aXRjaCAocGF0dGVybikge1xuICAgIGNhc2UgJ1AnOlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcuZGF0ZSh7XG4gICAgICAgIHdpZHRoOiAnc2hvcnQnXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1BQJzpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLmRhdGUoe1xuICAgICAgICB3aWR0aDogJ21lZGl1bSdcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnUFBQJzpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLmRhdGUoe1xuICAgICAgICB3aWR0aDogJ2xvbmcnXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1BQUFAnOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy5kYXRlKHtcbiAgICAgICAgd2lkdGg6ICdmdWxsJ1xuICAgICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdGltZUxvbmdGb3JtYXR0ZXIocGF0dGVybiwgZm9ybWF0TG9uZykge1xuICBzd2l0Y2ggKHBhdHRlcm4pIHtcbiAgICBjYXNlICdwJzpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLnRpbWUoe1xuICAgICAgICB3aWR0aDogJ3Nob3J0J1xuICAgICAgfSk7XG5cbiAgICBjYXNlICdwcCc6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy50aW1lKHtcbiAgICAgICAgd2lkdGg6ICdtZWRpdW0nXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ3BwcCc6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy50aW1lKHtcbiAgICAgICAgd2lkdGg6ICdsb25nJ1xuICAgICAgfSk7XG5cbiAgICBjYXNlICdwcHBwJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcudGltZSh7XG4gICAgICAgIHdpZHRoOiAnZnVsbCdcbiAgICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRhdGVUaW1lTG9uZ0Zvcm1hdHRlcihwYXR0ZXJuLCBmb3JtYXRMb25nKSB7XG4gIHZhciBtYXRjaFJlc3VsdCA9IHBhdHRlcm4ubWF0Y2goLyhQKykocCspPy8pIHx8IFtdO1xuICB2YXIgZGF0ZVBhdHRlcm4gPSBtYXRjaFJlc3VsdFsxXTtcbiAgdmFyIHRpbWVQYXR0ZXJuID0gbWF0Y2hSZXN1bHRbMl07XG5cbiAgaWYgKCF0aW1lUGF0dGVybikge1xuICAgIHJldHVybiBkYXRlTG9uZ0Zvcm1hdHRlcihwYXR0ZXJuLCBmb3JtYXRMb25nKTtcbiAgfVxuXG4gIHZhciBkYXRlVGltZUZvcm1hdDtcblxuICBzd2l0Y2ggKGRhdGVQYXR0ZXJuKSB7XG4gICAgY2FzZSAnUCc6XG4gICAgICBkYXRlVGltZUZvcm1hdCA9IGZvcm1hdExvbmcuZGF0ZVRpbWUoe1xuICAgICAgICB3aWR0aDogJ3Nob3J0J1xuICAgICAgfSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ1BQJzpcbiAgICAgIGRhdGVUaW1lRm9ybWF0ID0gZm9ybWF0TG9uZy5kYXRlVGltZSh7XG4gICAgICAgIHdpZHRoOiAnbWVkaXVtJ1xuICAgICAgfSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ1BQUCc6XG4gICAgICBkYXRlVGltZUZvcm1hdCA9IGZvcm1hdExvbmcuZGF0ZVRpbWUoe1xuICAgICAgICB3aWR0aDogJ2xvbmcnXG4gICAgICB9KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnUFBQUCc6XG4gICAgZGVmYXVsdDpcbiAgICAgIGRhdGVUaW1lRm9ybWF0ID0gZm9ybWF0TG9uZy5kYXRlVGltZSh7XG4gICAgICAgIHdpZHRoOiAnZnVsbCdcbiAgICAgIH0pO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gZGF0ZVRpbWVGb3JtYXQucmVwbGFjZSgne3tkYXRlfX0nLCBkYXRlTG9uZ0Zvcm1hdHRlcihkYXRlUGF0dGVybiwgZm9ybWF0TG9uZykpLnJlcGxhY2UoJ3t7dGltZX19JywgdGltZUxvbmdGb3JtYXR0ZXIodGltZVBhdHRlcm4sIGZvcm1hdExvbmcpKTtcbn1cblxudmFyIGxvbmdGb3JtYXR0ZXJzID0ge1xuICBwOiB0aW1lTG9uZ0Zvcm1hdHRlcixcbiAgUDogZGF0ZVRpbWVMb25nRm9ybWF0dGVyXG59O1xuZXhwb3J0IGRlZmF1bHQgbG9uZ0Zvcm1hdHRlcnM7IiwidmFyIHByb3RlY3RlZERheU9mWWVhclRva2VucyA9IFsnRCcsICdERCddO1xudmFyIHByb3RlY3RlZFdlZWtZZWFyVG9rZW5zID0gWydZWScsICdZWVlZJ107XG5leHBvcnQgZnVuY3Rpb24gaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbih0b2tlbikge1xuICByZXR1cm4gcHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW5zLmluZGV4T2YodG9rZW4pICE9PSAtMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4odG9rZW4pIHtcbiAgcmV0dXJuIHByb3RlY3RlZFdlZWtZZWFyVG9rZW5zLmluZGV4T2YodG9rZW4pICE9PSAtMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1Byb3RlY3RlZEVycm9yKHRva2VuLCBmb3JtYXQsIGlucHV0KSB7XG4gIGlmICh0b2tlbiA9PT0gJ1lZWVknKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJVc2UgYHl5eXlgIGluc3RlYWQgb2YgYFlZWVlgIChpbiBgXCIuY29uY2F0KGZvcm1hdCwgXCJgKSBmb3IgZm9ybWF0dGluZyB5ZWFycyB0byB0aGUgaW5wdXQgYFwiKS5jb25jYXQoaW5wdXQsIFwiYDsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clwiKSk7XG4gIH0gZWxzZSBpZiAodG9rZW4gPT09ICdZWScpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlVzZSBgeXlgIGluc3RlYWQgb2YgYFlZYCAoaW4gYFwiLmNvbmNhdChmb3JtYXQsIFwiYCkgZm9yIGZvcm1hdHRpbmcgeWVhcnMgdG8gdGhlIGlucHV0IGBcIikuY29uY2F0KGlucHV0LCBcImA7IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXJcIikpO1xuICB9IGVsc2UgaWYgKHRva2VuID09PSAnRCcpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlVzZSBgZGAgaW5zdGVhZCBvZiBgRGAgKGluIGBcIi5jb25jYXQoZm9ybWF0LCBcImApIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHRvIHRoZSBpbnB1dCBgXCIpLmNvbmNhdChpbnB1dCwgXCJgOyBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXCIpKTtcbiAgfSBlbHNlIGlmICh0b2tlbiA9PT0gJ0REJykge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiVXNlIGBkZGAgaW5zdGVhZCBvZiBgRERgIChpbiBgXCIuY29uY2F0KGZvcm1hdCwgXCJgKSBmb3IgZm9ybWF0dGluZyBkYXlzIG9mIHRoZSBtb250aCB0byB0aGUgaW5wdXQgYFwiKS5jb25jYXQoaW5wdXQsIFwiYDsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clwiKSk7XG4gIH1cbn0iLCJpbXBvcnQgaXNWYWxpZCBmcm9tIFwiLi4vaXNWYWxpZC9pbmRleC5qc1wiO1xuaW1wb3J0IGRlZmF1bHRMb2NhbGUgZnJvbSBcIi4uL2xvY2FsZS9lbi1VUy9pbmRleC5qc1wiO1xuaW1wb3J0IHN1Yk1pbGxpc2Vjb25kcyBmcm9tIFwiLi4vc3ViTWlsbGlzZWNvbmRzL2luZGV4LmpzXCI7XG5pbXBvcnQgdG9EYXRlIGZyb20gXCIuLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCBmb3JtYXR0ZXJzIGZyb20gXCIuLi9fbGliL2Zvcm1hdC9mb3JtYXR0ZXJzL2luZGV4LmpzXCI7XG5pbXBvcnQgbG9uZ0Zvcm1hdHRlcnMgZnJvbSBcIi4uL19saWIvZm9ybWF0L2xvbmdGb3JtYXR0ZXJzL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyBmcm9tIFwiLi4vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBpc1Byb3RlY3RlZERheU9mWWVhclRva2VuLCBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4sIHRocm93UHJvdGVjdGVkRXJyb3IgfSBmcm9tIFwiLi4vX2xpYi9wcm90ZWN0ZWRUb2tlbnMvaW5kZXguanNcIjtcbmltcG9ydCB0b0ludGVnZXIgZnJvbSBcIi4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiOyAvLyBUaGlzIFJlZ0V4cCBjb25zaXN0cyBvZiB0aHJlZSBwYXJ0cyBzZXBhcmF0ZWQgYnkgYHxgOlxuLy8gLSBbeVlRcU1Md0lkRGVjaWhIS2ttc11vIG1hdGNoZXMgYW55IGF2YWlsYWJsZSBvcmRpbmFsIG51bWJlciB0b2tlblxuLy8gICAob25lIG9mIHRoZSBjZXJ0YWluIGxldHRlcnMgZm9sbG93ZWQgYnkgYG9gKVxuLy8gLSAoXFx3KVxcMSogbWF0Y2hlcyBhbnkgc2VxdWVuY2VzIG9mIHRoZSBzYW1lIGxldHRlclxuLy8gLSAnJyBtYXRjaGVzIHR3byBxdW90ZSBjaGFyYWN0ZXJzIGluIGEgcm93XG4vLyAtICcoJyd8W14nXSkrKCd8JCkgbWF0Y2hlcyBhbnl0aGluZyBzdXJyb3VuZGVkIGJ5IHR3byBxdW90ZSBjaGFyYWN0ZXJzICgnKSxcbi8vICAgZXhjZXB0IGEgc2luZ2xlIHF1b3RlIHN5bWJvbCwgd2hpY2ggZW5kcyB0aGUgc2VxdWVuY2UuXG4vLyAgIFR3byBxdW90ZSBjaGFyYWN0ZXJzIGRvIG5vdCBlbmQgdGhlIHNlcXVlbmNlLlxuLy8gICBJZiB0aGVyZSBpcyBubyBtYXRjaGluZyBzaW5nbGUgcXVvdGVcbi8vICAgdGhlbiB0aGUgc2VxdWVuY2Ugd2lsbCBjb250aW51ZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuXG4vLyAtIC4gbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlciB1bm1hdGNoZWQgYnkgcHJldmlvdXMgcGFydHMgb2YgdGhlIFJlZ0V4cHNcblxudmFyIGZvcm1hdHRpbmdUb2tlbnNSZWdFeHAgPSAvW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXFx3KVxcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2c7IC8vIFRoaXMgUmVnRXhwIGNhdGNoZXMgc3ltYm9scyBlc2NhcGVkIGJ5IHF1b3RlcywgYW5kIGFsc29cbi8vIHNlcXVlbmNlcyBvZiBzeW1ib2xzIFAsIHAsIGFuZCB0aGUgY29tYmluYXRpb25zIGxpa2UgYFBQUFBQUFBwcHBwcGBcblxudmFyIGxvbmdGb3JtYXR0aW5nVG9rZW5zUmVnRXhwID0gL1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2c7XG52YXIgZXNjYXBlZFN0cmluZ1JlZ0V4cCA9IC9eJyhbXl0qPyknPyQvO1xudmFyIGRvdWJsZVF1b3RlUmVnRXhwID0gLycnL2c7XG52YXIgdW5lc2NhcGVkTGF0aW5DaGFyYWN0ZXJSZWdFeHAgPSAvW2EtekEtWl0vO1xuLyoqXG4gKiBAbmFtZSBmb3JtYXRcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgRm9ybWF0IHRoZSBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmcgaW4gdGhlIGdpdmVuIGZvcm1hdC4gVGhlIHJlc3VsdCBtYXkgdmFyeSBieSBsb2NhbGUuXG4gKlxuICogPiDimqDvuI8gUGxlYXNlIG5vdGUgdGhhdCB0aGUgYGZvcm1hdGAgdG9rZW5zIGRpZmZlciBmcm9tIE1vbWVudC5qcyBhbmQgb3RoZXIgbGlicmFyaWVzLlxuICogPiBTZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKlxuICogVGhlIGNoYXJhY3RlcnMgd3JhcHBlZCBiZXR3ZWVuIHR3byBzaW5nbGUgcXVvdGVzIGNoYXJhY3RlcnMgKCcpIGFyZSBlc2NhcGVkLlxuICogVHdvIHNpbmdsZSBxdW90ZXMgaW4gYSByb3csIHdoZXRoZXIgaW5zaWRlIG9yIG91dHNpZGUgYSBxdW90ZWQgc2VxdWVuY2UsIHJlcHJlc2VudCBhICdyZWFsJyBzaW5nbGUgcXVvdGUuXG4gKiAoc2VlIHRoZSBsYXN0IGV4YW1wbGUpXG4gKlxuICogRm9ybWF0IG9mIHRoZSBzdHJpbmcgaXMgYmFzZWQgb24gVW5pY29kZSBUZWNobmljYWwgU3RhbmRhcmQgIzM1OlxuICogaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtZGF0ZXMuaHRtbCNEYXRlX0ZpZWxkX1N5bWJvbF9UYWJsZVxuICogd2l0aCBhIGZldyBhZGRpdGlvbnMgKHNlZSBub3RlIDcgYmVsb3cgdGhlIHRhYmxlKS5cbiAqXG4gKiBBY2NlcHRlZCBwYXR0ZXJuczpcbiAqIHwgVW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhdHRlcm4gfCBSZXN1bHQgZXhhbXBsZXMgICAgICAgICAgICAgICAgICAgfCBOb3RlcyB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tfFxuICogfCBFcmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRy4uR0dHICB8IEFELCBCQyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdHR0cgICAgfCBBbm5vIERvbWluaSwgQmVmb3JlIENocmlzdCAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHR0dHRyAgIHwgQSwgQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBDYWxlbmRhciB5ZWFyICAgICAgICAgICAgICAgICAgIHwgeSAgICAgICB8IDQ0LCAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHlvICAgICAgfCA0NHRoLCAxc3QsIDB0aCwgMTd0aCAgICAgICAgICAgICAgfCA1LDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB5eSAgICAgIHwgNDQsIDAxLCAwMCwgMTcgICAgICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeXl5ICAgICB8IDA0NCwgMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHl5eXkgICAgfCAwMDQ0LCAwMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB5eXl5eSAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyw1ICAgfFxuICogfCBMb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyICAgICAgIHwgWSAgICAgICB8IDQ0LCAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFlvICAgICAgfCA0NHRoLCAxc3QsIDE5MDB0aCwgMjAxN3RoICAgICAgICAgfCA1LDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBZWSAgICAgIHwgNDQsIDAxLCAwMCwgMTcgICAgICAgICAgICAgICAgICAgIHwgNSw4ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWVlZICAgICB8IDA0NCwgMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFlZWVkgICAgfCAwMDQ0LCAwMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgfCA1LDggICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBZWVlZWSAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyw1ICAgfFxuICogfCBJU08gd2Vlay1udW1iZXJpbmcgeWVhciAgICAgICAgIHwgUiAgICAgICB8IC00MywgMCwgMSwgMTkwMCwgMjAxNyAgICAgICAgICAgICB8IDUsNyAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJSICAgICAgfCAtNDMsIDAwLCAwMSwgMTkwMCwgMjAxNyAgICAgICAgICAgfCA1LDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSUlIgICAgIHwgLTA0MywgMDAwLCAwMDEsIDE5MDAsIDIwMTcgICAgICAgIHwgNSw3ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUlJSUiAgICB8IC0wMDQzLCAwMDAwLCAwMDAxLCAxOTAwLCAyMDE3ICAgICB8IDUsNyAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJSUlJSICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzLDUsNyB8XG4gKiB8IEV4dGVuZGVkIHllYXIgICAgICAgICAgICAgICAgICAgfCB1ICAgICAgIHwgLTQzLCAwLCAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdXUgICAgICB8IC00MywgMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHV1dSAgICAgfCAtMDQzLCAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1dXV1ICAgIHwgLTAwNDMsIDAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdXV1dXUgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMsNSAgIHxcbiAqIHwgUXVhcnRlciAoZm9ybWF0dGluZykgICAgICAgICAgICB8IFEgICAgICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBRbyAgICAgIHwgMXN0LCAybmQsIDNyZCwgNHRoICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUVEgICAgICB8IDAxLCAwMiwgMDMsIDA0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFFRUSAgICAgfCBRMSwgUTIsIFEzLCBRNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBRUVFRICAgIHwgMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi4gICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUVFRUVEgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgUXVhcnRlciAoc3RhbmQtYWxvbmUpICAgICAgICAgICB8IHEgICAgICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBxbyAgICAgIHwgMXN0LCAybmQsIDNyZCwgNHRoICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcXEgICAgICB8IDAxLCAwMiwgMDMsIDA0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHFxcSAgICAgfCBRMSwgUTIsIFEzLCBRNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBxcXFxICAgIHwgMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi4gICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcXFxcXEgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgTW9udGggKGZvcm1hdHRpbmcpICAgICAgICAgICAgICB8IE0gICAgICAgfCAxLCAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTJ0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTU0gICAgICB8IDAxLCAwMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1NTSAgICAgfCBKYW4sIEZlYiwgLi4uLCBEZWMgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNTU1NICAgIHwgSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXIgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTU1NTU0gICB8IEosIEYsIC4uLiwgRCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgTW9udGggKHN0YW5kLWFsb25lKSAgICAgICAgICAgICB8IEwgICAgICAgfCAxLCAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTJ0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTEwgICAgICB8IDAxLCAwMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExMTCAgICAgfCBKYW4sIEZlYiwgLi4uLCBEZWMgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMTExMICAgIHwgSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXIgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTExMTEwgICB8IEosIEYsIC4uLiwgRCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgTG9jYWwgd2VlayBvZiB5ZWFyICAgICAgICAgICAgICB8IHcgICAgICAgfCAxLCAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3byAgICAgIHwgMXN0LCAybmQsIC4uLiwgNTN0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgd3cgICAgICB8IDAxLCAwMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgSVNPIHdlZWsgb2YgeWVhciAgICAgICAgICAgICAgICB8IEkgICAgICAgfCAxLCAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBJbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgNTN0aCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSUkgICAgICB8IDAxLCAwMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgRGF5IG9mIG1vbnRoICAgICAgICAgICAgICAgICAgICB8IGQgICAgICAgfCAxLCAyLCAuLi4sIDMxICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMzFzdCAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGQgICAgICB8IDAxLCAwMiwgLi4uLCAzMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgRGF5IG9mIHllYXIgICAgICAgICAgICAgICAgICAgICB8IEQgICAgICAgfCAxLCAyLCAuLi4sIDM2NSwgMzY2ICAgICAgICAgICAgICAgfCA5ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMzY1dGgsIDM2NnRoICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgREQgICAgICB8IDAxLCAwMiwgLi4uLCAzNjUsIDM2NiAgICAgICAgICAgICB8IDkgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERERCAgICAgfCAwMDEsIDAwMiwgLi4uLCAzNjUsIDM2NiAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEREREICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyAgICAgfFxuICogfCBEYXkgb2Ygd2VlayAoZm9ybWF0dGluZykgICAgICAgIHwgRS4uRUVFICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3VuICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEVFRUUgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFRUVFRSAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRUVFRUVFICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8ICAgICAgIHxcbiAqIHwgSVNPIGRheSBvZiB3ZWVrIChmb3JtYXR0aW5nKSAgICB8IGkgICAgICAgfCAxLCAyLCAzLCAuLi4sIDcgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgN3RoICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaWkgICAgICB8IDAxLCAwMiwgLi4uLCAwNyAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGlpaSAgICAgfCBNb24sIFR1ZSwgV2VkLCAuLi4sIFN1biAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpaWlpICAgIHwgTW9uZGF5LCBUdWVzZGF5LCAuLi4sIFN1bmRheSAgICAgIHwgMiw3ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaWlpaWkgICB8IE0sIFQsIFcsIFQsIEYsIFMsIFMgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGlpaWlpaSAgfCBNbywgVHUsIFdlLCBUaCwgRnIsIFNhLCBTdSAgICAgICAgfCA3ICAgICB8XG4gKiB8IExvY2FsIGRheSBvZiB3ZWVrIChmb3JtYXR0aW5nKSAgfCBlICAgICAgIHwgMiwgMywgNCwgLi4uLCAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZW8gICAgICB8IDJuZCwgM3JkLCAuLi4sIDFzdCAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVlICAgICAgfCAwMiwgMDMsIC4uLiwgMDEgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBlZWUgICAgIHwgTW9uLCBUdWUsIFdlZCwgLi4uLCBTdW4gICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZWVlZSAgICB8IE1vbmRheSwgVHVlc2RheSwgLi4uLCBTdW5kYXkgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVlZWVlICAgfCBNLCBULCBXLCBULCBGLCBTLCBTICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBlZWVlZWUgIHwgTW8sIFR1LCBXZSwgVGgsIEZyLCBTYSwgU3UgICAgICAgIHwgICAgICAgfFxuICogfCBMb2NhbCBkYXkgb2Ygd2VlayAoc3RhbmQtYWxvbmUpIHwgYyAgICAgICB8IDIsIDMsIDQsIC4uLiwgMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNvICAgICAgfCAybmQsIDNyZCwgLi4uLCAxc3QgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjYyAgICAgIHwgMDIsIDAzLCAuLi4sIDAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2NjICAgICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3VuICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNjY2MgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjY2NjYyAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2NjY2NjICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8ICAgICAgIHxcbiAqIHwgQU0sIFBNICAgICAgICAgICAgICAgICAgICAgICAgICB8IGEuLmFhICAgfCBBTSwgUE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhYWEgICAgIHwgYW0sIHBtICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWFhYSAgICB8IGEubS4sIHAubS4gICAgICAgICAgICAgICAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFhYWFhICAgfCBhLCBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEFNLCBQTSwgbm9vbiwgbWlkbmlnaHQgICAgICAgICAgfCBiLi5iYiAgIHwgQU0sIFBNLCBub29uLCBtaWRuaWdodCAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYmJiICAgICB8IGFtLCBwbSwgbm9vbiwgbWlkbmlnaHQgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGJiYmIgICAgfCBhLm0uLCBwLm0uLCBub29uLCBtaWRuaWdodCAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBiYmJiYiAgIHwgYSwgcCwgbiwgbWkgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBGbGV4aWJsZSBkYXkgcGVyaW9kICAgICAgICAgICAgIHwgQi4uQkJCICB8IGF0IG5pZ2h0LCBpbiB0aGUgbW9ybmluZywgLi4uICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJCQkIgICAgfCBhdCBuaWdodCwgaW4gdGhlIG1vcm5pbmcsIC4uLiAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBCQkJCQiAgIHwgYXQgbmlnaHQsIGluIHRoZSBtb3JuaW5nLCAuLi4gICAgIHwgICAgICAgfFxuICogfCBIb3VyIFsxLTEyXSAgICAgICAgICAgICAgICAgICAgIHwgaCAgICAgICB8IDEsIDIsIC4uLiwgMTEsIDEyICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhvICAgICAgfCAxc3QsIDJuZCwgLi4uLCAxMXRoLCAxMnRoICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBoaCAgICAgIHwgMDEsIDAyLCAuLi4sIDExLCAxMiAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBIb3VyIFswLTIzXSAgICAgICAgICAgICAgICAgICAgIHwgSCAgICAgICB8IDAsIDEsIDIsIC4uLiwgMjMgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEhvICAgICAgfCAwdGgsIDFzdCwgMm5kLCAuLi4sIDIzcmQgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBISCAgICAgIHwgMDAsIDAxLCAwMiwgLi4uLCAyMyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBIb3VyIFswLTExXSAgICAgICAgICAgICAgICAgICAgIHwgSyAgICAgICB8IDEsIDIsIC4uLiwgMTEsIDAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEtvICAgICAgfCAxc3QsIDJuZCwgLi4uLCAxMXRoLCAwdGggICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBLSyAgICAgIHwgMDEsIDAyLCAuLi4sIDExLCAwMCAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBIb3VyIFsxLTI0XSAgICAgICAgICAgICAgICAgICAgIHwgayAgICAgICB8IDI0LCAxLCAyLCAuLi4sIDIzICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGtvICAgICAgfCAyNHRoLCAxc3QsIDJuZCwgLi4uLCAyM3JkICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBrayAgICAgIHwgMjQsIDAxLCAwMiwgLi4uLCAyMyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBNaW51dGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbSAgICAgICB8IDAsIDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1vICAgICAgfCAwdGgsIDFzdCwgLi4uLCA1OXRoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtbSAgICAgIHwgMDAsIDAxLCAuLi4sIDU5ICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBTZWNvbmQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcyAgICAgICB8IDAsIDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNvICAgICAgfCAwdGgsIDFzdCwgLi4uLCA1OXRoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzcyAgICAgIHwgMDAsIDAxLCAuLi4sIDU5ICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBGcmFjdGlvbiBvZiBzZWNvbmQgICAgICAgICAgICAgIHwgUyAgICAgICB8IDAsIDEsIC4uLiwgOSAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNTICAgICAgfCAwMCwgMDEsIC4uLiwgOTkgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTU1MgICAgIHwgMDAwLCAwMDEsIC4uLiwgOTk5ICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU1NTUyAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMgICAgIHxcbiAqIHwgVGltZXpvbmUgKElTTy04NjAxIHcvIFopICAgICAgICB8IFggICAgICAgfCAtMDgsICswNTMwLCBaICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYWCAgICAgIHwgLTA4MDAsICswNTMwLCBaICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWFhYICAgICB8IC0wODowMCwgKzA1OjMwLCBaICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFhYWFggICAgfCAtMDgwMCwgKzA1MzAsIFosICsxMjM0NTYgICAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYWFhYWCAgIHwgLTA4OjAwLCArMDU6MzAsIFosICsxMjozNDo1NiAgICAgIHwgICAgICAgfFxuICogfCBUaW1lem9uZSAoSVNPLTg2MDEgdy9vIFopICAgICAgIHwgeCAgICAgICB8IC0wOCwgKzA1MzAsICswMCAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHh4ICAgICAgfCAtMDgwMCwgKzA1MzAsICswMDAwICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB4eHggICAgIHwgLTA4OjAwLCArMDU6MzAsICswMDowMCAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeHh4eCAgICB8IC0wODAwLCArMDUzMCwgKzAwMDAsICsxMjM0NTYgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHh4eHh4ICAgfCAtMDg6MDAsICswNTozMCwgKzAwOjAwLCArMTI6MzQ6NTYgfCAgICAgICB8XG4gKiB8IFRpbWV6b25lIChHTVQpICAgICAgICAgICAgICAgICAgfCBPLi4uT09PIHwgR01ULTgsIEdNVCs1OjMwLCBHTVQrMCAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgT09PTyAgICB8IEdNVC0wODowMCwgR01UKzA1OjMwLCBHTVQrMDA6MDAgICB8IDIgICAgIHxcbiAqIHwgVGltZXpvbmUgKHNwZWNpZmljIG5vbi1sb2NhdC4pICB8IHouLi56enogfCBHTVQtOCwgR01UKzU6MzAsIEdNVCswICAgICAgICAgICAgfCA2ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB6enp6ICAgIHwgR01ULTA4OjAwLCBHTVQrMDU6MzAsIEdNVCswMDowMCAgIHwgMiw2ICAgfFxuICogfCBTZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgICAgICAgIHwgdCAgICAgICB8IDUxMjk2OTUyMCAgICAgICAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHR0ICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzLDcgICB8XG4gKiB8IE1pbGxpc2Vjb25kcyB0aW1lc3RhbXAgICAgICAgICAgfCBUICAgICAgIHwgNTEyOTY5NTIwOTAwICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVFQgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMsNyAgIHxcbiAqIHwgTG9uZyBsb2NhbGl6ZWQgZGF0ZSAgICAgICAgICAgICB8IFAgICAgICAgfCAwNC8yOS8xNDUzICAgICAgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQUCAgICAgIHwgQXByIDI5LCAxNDUzICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFBQICAgICB8IEFwcmlsIDI5dGgsIDE0NTMgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBQUFAgICAgfCBGcmlkYXksIEFwcmlsIDI5dGgsIDE0NTMgICAgICAgICAgfCAyLDcgICB8XG4gKiB8IExvbmcgbG9jYWxpemVkIHRpbWUgICAgICAgICAgICAgfCBwICAgICAgIHwgMTI6MDAgQU0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcHAgICAgICB8IDEyOjAwOjAwIEFNICAgICAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBwcCAgICAgfCAxMjowMDowMCBBTSBHTVQrMiAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwcHBwICAgIHwgMTI6MDA6MDAgQU0gR01UKzAyOjAwICAgICAgICAgICAgIHwgMiw3ICAgfFxuICogfCBDb21iaW5hdGlvbiBvZiBkYXRlIGFuZCB0aW1lICAgIHwgUHAgICAgICB8IDA0LzI5LzE0NTMsIDEyOjAwIEFNICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBQcHAgICAgfCBBcHIgMjksIDE0NTMsIDEyOjAwOjAwIEFNICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQUFBwcHAgIHwgQXByaWwgMjl0aCwgMTQ1MyBhdCAuLi4gICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFBQUHBwcHB8IEZyaWRheSwgQXByaWwgMjl0aCwgMTQ1MyBhdCAuLi4gICB8IDIsNyAgIHxcbiAqIE5vdGVzOlxuICogMS4gXCJGb3JtYXR0aW5nXCIgdW5pdHMgKGUuZy4gZm9ybWF0dGluZyBxdWFydGVyKSBpbiB0aGUgZGVmYXVsdCBlbi1VUyBsb2NhbGVcbiAqICAgIGFyZSB0aGUgc2FtZSBhcyBcInN0YW5kLWFsb25lXCIgdW5pdHMsIGJ1dCBhcmUgZGlmZmVyZW50IGluIHNvbWUgbGFuZ3VhZ2VzLlxuICogICAgXCJGb3JtYXR0aW5nXCIgdW5pdHMgYXJlIGRlY2xpbmVkIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgdGhlIGxhbmd1YWdlXG4gKiAgICBpbiB0aGUgY29udGV4dCBvZiBhIGRhdGUuIFwiU3RhbmQtYWxvbmVcIiB1bml0cyBhcmUgYWx3YXlzIG5vbWluYXRpdmUgc2luZ3VsYXI6XG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdkbyBMTExMJywge2xvY2FsZTogY3N9KSAvLz0+ICc2LiBsaXN0b3BhZCdgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdkbyBNTU1NJywge2xvY2FsZTogY3N9KSAvLz0+ICc2LiBsaXN0b3BhZHUnYFxuICpcbiAqIDIuIEFueSBzZXF1ZW5jZSBvZiB0aGUgaWRlbnRpY2FsIGxldHRlcnMgaXMgYSBwYXR0ZXJuLCB1bmxlc3MgaXQgaXMgZXNjYXBlZCBieVxuICogICAgdGhlIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIChzZWUgYmVsb3cpLlxuICogICAgSWYgdGhlIHNlcXVlbmNlIGlzIGxvbmdlciB0aGFuIGxpc3RlZCBpbiB0YWJsZSAoZS5nLiBgRUVFRUVFRUVFRUVgKVxuICogICAgdGhlIG91dHB1dCB3aWxsIGJlIHRoZSBzYW1lIGFzIGRlZmF1bHQgcGF0dGVybiBmb3IgdGhpcyB1bml0LCB1c3VhbGx5XG4gKiAgICB0aGUgbG9uZ2VzdCBvbmUgKGluIGNhc2Ugb2YgSVNPIHdlZWtkYXlzLCBgRUVFRWApLiBEZWZhdWx0IHBhdHRlcm5zIGZvciB1bml0c1xuICogICAgYXJlIG1hcmtlZCB3aXRoIFwiMlwiIGluIHRoZSBsYXN0IGNvbHVtbiBvZiB0aGUgdGFibGUuXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdNTU0nKSAvLz0+ICdOb3YnYFxuICpcbiAqICAgIGBmb3JtYXQobmV3IERhdGUoMjAxNywgMTAsIDYpLCAnTU1NTScpIC8vPT4gJ05vdmVtYmVyJ2BcbiAqXG4gKiAgICBgZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDEwLCA2KSwgJ01NTU1NJykgLy89PiAnTidgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdNTU1NTU0nKSAvLz0+ICdOb3ZlbWJlcidgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdNTU1NTU1NJykgLy89PiAnTm92ZW1iZXInYFxuICpcbiAqIDMuIFNvbWUgcGF0dGVybnMgY291bGQgYmUgdW5saW1pdGVkIGxlbmd0aCAoc3VjaCBhcyBgeXl5eXl5eXlgKS5cbiAqICAgIFRoZSBvdXRwdXQgd2lsbCBiZSBwYWRkZWQgd2l0aCB6ZXJvcyB0byBtYXRjaCB0aGUgbGVuZ3RoIG9mIHRoZSBwYXR0ZXJuLlxuICpcbiAqICAgIGBmb3JtYXQobmV3IERhdGUoMjAxNywgMTAsIDYpLCAneXl5eXl5eXknKSAvLz0+ICcwMDAwMjAxNydgXG4gKlxuICogNC4gYFFRUVFRYCBhbmQgYHFxcXFxYCBjb3VsZCBiZSBub3Qgc3RyaWN0bHkgbnVtZXJpY2FsIGluIHNvbWUgbG9jYWxlcy5cbiAqICAgIFRoZXNlIHRva2VucyByZXByZXNlbnQgdGhlIHNob3J0ZXN0IGZvcm0gb2YgdGhlIHF1YXJ0ZXIuXG4gKlxuICogNS4gVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIGB5YCBhbmQgYHVgIHBhdHRlcm5zIGFyZSBCLkMuIHllYXJzOlxuICpcbiAqICAgIHwgWWVhciB8IGB5YCB8IGB1YCB8XG4gKiAgICB8LS0tLS0tfC0tLS0tfC0tLS0tfFxuICogICAgfCBBQyAxIHwgICAxIHwgICAxIHxcbiAqICAgIHwgQkMgMSB8ICAgMSB8ICAgMCB8XG4gKiAgICB8IEJDIDIgfCAgIDIgfCAgLTEgfFxuICpcbiAqICAgIEFsc28gYHl5YCBhbHdheXMgcmV0dXJucyB0aGUgbGFzdCB0d28gZGlnaXRzIG9mIGEgeWVhcixcbiAqICAgIHdoaWxlIGB1dWAgcGFkcyBzaW5nbGUgZGlnaXQgeWVhcnMgdG8gMiBjaGFyYWN0ZXJzIGFuZCByZXR1cm5zIG90aGVyIHllYXJzIHVuY2hhbmdlZDpcbiAqXG4gKiAgICB8IFllYXIgfCBgeXlgIHwgYHV1YCB8XG4gKiAgICB8LS0tLS0tfC0tLS0tLXwtLS0tLS18XG4gKiAgICB8IDEgICAgfCAgIDAxIHwgICAwMSB8XG4gKiAgICB8IDE0ICAgfCAgIDE0IHwgICAxNCB8XG4gKiAgICB8IDM3NiAgfCAgIDc2IHwgIDM3NiB8XG4gKiAgICB8IDE0NTMgfCAgIDUzIHwgMTQ1MyB8XG4gKlxuICogICAgVGhlIHNhbWUgZGlmZmVyZW5jZSBpcyB0cnVlIGZvciBsb2NhbCBhbmQgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzIChgWWAgYW5kIGBSYCksXG4gKiAgICBleGNlcHQgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhcnMgYXJlIGRlcGVuZGVudCBvbiBgb3B0aW9ucy53ZWVrU3RhcnRzT25gXG4gKiAgICBhbmQgYG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlYCAoY29tcGFyZSBbZ2V0SVNPV2Vla1llYXJde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvZ2V0SVNPV2Vla1llYXJ9XG4gKiAgICBhbmQgW2dldFdlZWtZZWFyXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL2dldFdlZWtZZWFyfSkuXG4gKlxuICogNi4gU3BlY2lmaWMgbm9uLWxvY2F0aW9uIHRpbWV6b25lcyBhcmUgY3VycmVudGx5IHVuYXZhaWxhYmxlIGluIGBkYXRlLWZuc2AsXG4gKiAgICBzbyByaWdodCBub3cgdGhlc2UgdG9rZW5zIGZhbGwgYmFjayB0byBHTVQgdGltZXpvbmVzLlxuICpcbiAqIDcuIFRoZXNlIHBhdHRlcm5zIGFyZSBub3QgaW4gdGhlIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICMzNTpcbiAqICAgIC0gYGlgOiBJU08gZGF5IG9mIHdlZWtcbiAqICAgIC0gYElgOiBJU08gd2VlayBvZiB5ZWFyXG4gKiAgICAtIGBSYDogSVNPIHdlZWstbnVtYmVyaW5nIHllYXJcbiAqICAgIC0gYHRgOiBzZWNvbmRzIHRpbWVzdGFtcFxuICogICAgLSBgVGA6IG1pbGxpc2Vjb25kcyB0aW1lc3RhbXBcbiAqICAgIC0gYG9gOiBvcmRpbmFsIG51bWJlciBtb2RpZmllclxuICogICAgLSBgUGA6IGxvbmcgbG9jYWxpemVkIGRhdGVcbiAqICAgIC0gYHBgOiBsb25nIGxvY2FsaXplZCB0aW1lXG4gKlxuICogOC4gYFlZYCBhbmQgYFlZWVlgIHRva2VucyByZXByZXNlbnQgd2Vlay1udW1iZXJpbmcgeWVhcnMgYnV0IHRoZXkgYXJlIG9mdGVuIGNvbmZ1c2VkIHdpdGggeWVhcnMuXG4gKiAgICBZb3Ugc2hvdWxkIGVuYWJsZSBgb3B0aW9ucy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnNgIHRvIHVzZSB0aGVtLiBTZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKlxuICogOS4gYERgIGFuZCBgRERgIHRva2VucyByZXByZXNlbnQgZGF5cyBvZiB0aGUgeWVhciBidXQgdGhleSBhcmUgb2Z0ZW4gY29uZnVzZWQgd2l0aCBkYXlzIG9mIHRoZSBtb250aC5cbiAqICAgIFlvdSBzaG91bGQgZW5hYmxlIGBvcHRpb25zLnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnNgIHRvIHVzZSB0aGVtLiBTZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiAtIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgbm93IHJlcXVpcmVkIGZvciB0aGUgc2FrZSBvZiBleHBsaWNpdG5lc3MuXG4gKlxuICogICBgYGBqYXZhc2NyaXB0XG4gKiAgIC8vIEJlZm9yZSB2Mi4wLjBcbiAqICAgZm9ybWF0KG5ldyBEYXRlKDIwMTYsIDAsIDEpKVxuICpcbiAqICAgLy8gdjIuMC4wIG9ud2FyZFxuICogICBmb3JtYXQobmV3IERhdGUoMjAxNiwgMCwgMSksIFwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzLlNTU3h4eFwiKVxuICogICBgYGBcbiAqXG4gKiAtIE5ldyBmb3JtYXQgc3RyaW5nIEFQSSBmb3IgYGZvcm1hdGAgZnVuY3Rpb25cbiAqICAgd2hpY2ggaXMgYmFzZWQgb24gW1VuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICMzNV0oaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtZGF0ZXMuaHRtbCNEYXRlX0ZpZWxkX1N5bWJvbF9UYWJsZSkuXG4gKiAgIFNlZSBbdGhpcyBwb3N0XShodHRwczovL2Jsb2cuZGF0ZS1mbnMub3JnL3Bvc3QvdW5pY29kZS10b2tlbnMtaW4tZGF0ZS1mbnMtdjItc3JlYXR5a2k5MWpnKSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIC0gQ2hhcmFjdGVycyBhcmUgbm93IGVzY2FwZWQgdXNpbmcgc2luZ2xlIHF1b3RlIHN5bWJvbHMgKGAnYCkgaW5zdGVhZCBvZiBzcXVhcmUgYnJhY2tldHMuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gZm9ybWF0IC0gdGhlIHN0cmluZyBvZiB0b2tlbnNcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gLSBhbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICogQHBhcmFtIHtMb2NhbGV9IFtvcHRpb25zLmxvY2FsZT1kZWZhdWx0TG9jYWxlXSAtIHRoZSBsb2NhbGUgb2JqZWN0LiBTZWUgW0xvY2FsZV17QGxpbmsgaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9Mb2NhbGV9XG4gKiBAcGFyYW0gezB8MXwyfDN8NHw1fDZ9IFtvcHRpb25zLndlZWtTdGFydHNPbj0wXSAtIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwIC0gU3VuZGF5KVxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT0xXSAtIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXNcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMudXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zPWZhbHNlXSAtIGlmIHRydWUsIGFsbG93cyB1c2FnZSBvZiB0aGUgd2Vlay1udW1iZXJpbmcgeWVhciB0b2tlbnMgYFlZYCBhbmQgYFlZWVlgO1xuICogICBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnM9ZmFsc2VdIC0gaWYgdHJ1ZSwgYWxsb3dzIHVzYWdlIG9mIHRoZSBkYXkgb2YgeWVhciB0b2tlbnMgYERgIGFuZCBgRERgO1xuICogICBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKiBAcmV0dXJucyB7U3RyaW5nfSB0aGUgZm9ybWF0dGVkIGRhdGUgc3RyaW5nXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgZGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy5sb2NhbGVgIG11c3QgY29udGFpbiBgbG9jYWxpemVgIHByb3BlcnR5XG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy5sb2NhbGVgIG11c3QgY29udGFpbiBgZm9ybWF0TG9uZ2AgcHJvcGVydHlcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDdcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IHVzZSBgeXl5eWAgaW5zdGVhZCBvZiBgWVlZWWAgZm9yIGZvcm1hdHRpbmcgeWVhcnMgdXNpbmcgW2Zvcm1hdCBwcm92aWRlZF0gdG8gdGhlIGlucHV0IFtpbnB1dCBwcm92aWRlZF07IHNlZTogaHR0cHM6Ly9naXQuaW8vZnhDeXJcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IHVzZSBgeXlgIGluc3RlYWQgb2YgYFlZYCBmb3IgZm9ybWF0dGluZyB5ZWFycyB1c2luZyBbZm9ybWF0IHByb3ZpZGVkXSB0byB0aGUgaW5wdXQgW2lucHV0IHByb3ZpZGVkXTsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gdXNlIGBkYCBpbnN0ZWFkIG9mIGBEYCBmb3IgZm9ybWF0dGluZyBkYXlzIG9mIHRoZSBtb250aCB1c2luZyBbZm9ybWF0IHByb3ZpZGVkXSB0byB0aGUgaW5wdXQgW2lucHV0IHByb3ZpZGVkXTsgc2VlOiBodHRwczovL2dpdC5pby9meEN5clxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gdXNlIGBkZGAgaW5zdGVhZCBvZiBgRERgIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHVzaW5nIFtmb3JtYXQgcHJvdmlkZWRdIHRvIHRoZSBpbnB1dCBbaW5wdXQgcHJvdmlkZWRdOyBzZWU6IGh0dHBzOi8vZ2l0LmlvL2Z4Q3lyXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBmb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDExIEZlYnJ1YXJ5IDIwMTQgaW4gbWlkZGxlLWVuZGlhbiBmb3JtYXQ6XG4gKiB2YXIgcmVzdWx0ID0gZm9ybWF0KG5ldyBEYXRlKDIwMTQsIDEsIDExKSwgJ01NL2RkL3l5eXknKVxuICogLy89PiAnMDIvMTEvMjAxNCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDIgSnVseSAyMDE0IGluIEVzcGVyYW50bzpcbiAqIGltcG9ydCB7IGVvTG9jYWxlIH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlL2VvJ1xuICogdmFyIHJlc3VsdCA9IGZvcm1hdChuZXcgRGF0ZSgyMDE0LCA2LCAyKSwgXCJkbyAnZGUnIE1NTU0geXl5eVwiLCB7XG4gKiAgIGxvY2FsZTogZW9Mb2NhbGVcbiAqIH0pXG4gKiAvLz0+ICcyLWEgZGUganVsaW8gMjAxNCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXNjYXBlIHN0cmluZyBieSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVyczpcbiAqIHZhciByZXN1bHQgPSBmb3JtYXQobmV3IERhdGUoMjAxNCwgNiwgMiwgMTUpLCBcImggJ28nJ2Nsb2NrJ1wiKVxuICogLy89PiBcIjMgbydjbG9ja1wiXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0KGRpcnR5RGF0ZSwgZGlydHlGb3JtYXRTdHIsIGRpcnR5T3B0aW9ucykge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGZvcm1hdFN0ciA9IFN0cmluZyhkaXJ0eUZvcm1hdFN0cik7XG4gIHZhciBvcHRpb25zID0gZGlydHlPcHRpb25zIHx8IHt9O1xuICB2YXIgbG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgfHwgZGVmYXVsdExvY2FsZTtcbiAgdmFyIGxvY2FsZUZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IGxvY2FsZS5vcHRpb25zICYmIGxvY2FsZS5vcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgdmFyIGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IDEgOiB0b0ludGVnZXIobG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlID09IG51bGwgPyBkZWZhdWx0Rmlyc3RXZWVrQ29udGFpbnNEYXRlIDogdG9JbnRlZ2VyKG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKTsgLy8gVGVzdCBpZiB3ZWVrU3RhcnRzT24gaXMgYmV0d2VlbiAxIGFuZCA3IF9hbmRfIGlzIG5vdCBOYU5cblxuICBpZiAoIShmaXJzdFdlZWtDb250YWluc0RhdGUgPj0gMSAmJiBmaXJzdFdlZWtDb250YWluc0RhdGUgPD0gNykpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZmlyc3RXZWVrQ29udGFpbnNEYXRlIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA3IGluY2x1c2l2ZWx5Jyk7XG4gIH1cblxuICB2YXIgbG9jYWxlV2Vla1N0YXJ0c09uID0gbG9jYWxlLm9wdGlvbnMgJiYgbG9jYWxlLm9wdGlvbnMud2Vla1N0YXJ0c09uO1xuICB2YXIgZGVmYXVsdFdlZWtTdGFydHNPbiA9IGxvY2FsZVdlZWtTdGFydHNPbiA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihsb2NhbGVXZWVrU3RhcnRzT24pO1xuICB2YXIgd2Vla1N0YXJ0c09uID0gb3B0aW9ucy53ZWVrU3RhcnRzT24gPT0gbnVsbCA/IGRlZmF1bHRXZWVrU3RhcnRzT24gOiB0b0ludGVnZXIob3B0aW9ucy53ZWVrU3RhcnRzT24pOyAvLyBUZXN0IGlmIHdlZWtTdGFydHNPbiBpcyBiZXR3ZWVuIDAgYW5kIDYgX2FuZF8gaXMgbm90IE5hTlxuXG4gIGlmICghKHdlZWtTdGFydHNPbiA+PSAwICYmIHdlZWtTdGFydHNPbiA8PSA2KSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd3ZWVrU3RhcnRzT24gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYgaW5jbHVzaXZlbHknKTtcbiAgfVxuXG4gIGlmICghbG9jYWxlLmxvY2FsaXplKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2xvY2FsZSBtdXN0IGNvbnRhaW4gbG9jYWxpemUgcHJvcGVydHknKTtcbiAgfVxuXG4gIGlmICghbG9jYWxlLmZvcm1hdExvbmcpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignbG9jYWxlIG11c3QgY29udGFpbiBmb3JtYXRMb25nIHByb3BlcnR5Jyk7XG4gIH1cblxuICB2YXIgb3JpZ2luYWxEYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG5cbiAgaWYgKCFpc1ZhbGlkKG9yaWdpbmFsRGF0ZSkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCB0aW1lIHZhbHVlJyk7XG4gIH0gLy8gQ29udmVydCB0aGUgZGF0ZSBpbiBzeXN0ZW0gdGltZXpvbmUgdG8gdGhlIHNhbWUgZGF0ZSBpbiBVVEMrMDA6MDAgdGltZXpvbmUuXG4gIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHdoZW4gVVRDIGZ1bmN0aW9ucyB3aWxsIGJlIGltcGxlbWVudGVkLCBsb2NhbGVzIHdpbGwgYmUgY29tcGF0aWJsZSB3aXRoIHRoZW0uXG4gIC8vIFNlZSBhbiBpc3N1ZSBhYm91dCBVVEMgZnVuY3Rpb25zOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM3NlxuXG5cbiAgdmFyIHRpbWV6b25lT2Zmc2V0ID0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhvcmlnaW5hbERhdGUpO1xuICB2YXIgdXRjRGF0ZSA9IHN1Yk1pbGxpc2Vjb25kcyhvcmlnaW5hbERhdGUsIHRpbWV6b25lT2Zmc2V0KTtcbiAgdmFyIGZvcm1hdHRlck9wdGlvbnMgPSB7XG4gICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiBmaXJzdFdlZWtDb250YWluc0RhdGUsXG4gICAgd2Vla1N0YXJ0c09uOiB3ZWVrU3RhcnRzT24sXG4gICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgX29yaWdpbmFsRGF0ZTogb3JpZ2luYWxEYXRlXG4gIH07XG4gIHZhciByZXN1bHQgPSBmb3JtYXRTdHIubWF0Y2gobG9uZ0Zvcm1hdHRpbmdUb2tlbnNSZWdFeHApLm1hcChmdW5jdGlvbiAoc3Vic3RyaW5nKSB7XG4gICAgdmFyIGZpcnN0Q2hhcmFjdGVyID0gc3Vic3RyaW5nWzBdO1xuXG4gICAgaWYgKGZpcnN0Q2hhcmFjdGVyID09PSAncCcgfHwgZmlyc3RDaGFyYWN0ZXIgPT09ICdQJykge1xuICAgICAgdmFyIGxvbmdGb3JtYXR0ZXIgPSBsb25nRm9ybWF0dGVyc1tmaXJzdENoYXJhY3Rlcl07XG4gICAgICByZXR1cm4gbG9uZ0Zvcm1hdHRlcihzdWJzdHJpbmcsIGxvY2FsZS5mb3JtYXRMb25nLCBmb3JtYXR0ZXJPcHRpb25zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3Vic3RyaW5nO1xuICB9KS5qb2luKCcnKS5tYXRjaChmb3JtYXR0aW5nVG9rZW5zUmVnRXhwKS5tYXAoZnVuY3Rpb24gKHN1YnN0cmluZykge1xuICAgIC8vIFJlcGxhY2UgdHdvIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIHdpdGggb25lIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJcbiAgICBpZiAoc3Vic3RyaW5nID09PSBcIicnXCIpIHtcbiAgICAgIHJldHVybiBcIidcIjtcbiAgICB9XG5cbiAgICB2YXIgZmlyc3RDaGFyYWN0ZXIgPSBzdWJzdHJpbmdbMF07XG5cbiAgICBpZiAoZmlyc3RDaGFyYWN0ZXIgPT09IFwiJ1wiKSB7XG4gICAgICByZXR1cm4gY2xlYW5Fc2NhcGVkU3RyaW5nKHN1YnN0cmluZyk7XG4gICAgfVxuXG4gICAgdmFyIGZvcm1hdHRlciA9IGZvcm1hdHRlcnNbZmlyc3RDaGFyYWN0ZXJdO1xuXG4gICAgaWYgKGZvcm1hdHRlcikge1xuICAgICAgaWYgKCFvcHRpb25zLnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyAmJiBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4oc3Vic3RyaW5nKSkge1xuICAgICAgICB0aHJvd1Byb3RlY3RlZEVycm9yKHN1YnN0cmluZywgZGlydHlGb3JtYXRTdHIsIGRpcnR5RGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zICYmIGlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4oc3Vic3RyaW5nKSkge1xuICAgICAgICB0aHJvd1Byb3RlY3RlZEVycm9yKHN1YnN0cmluZywgZGlydHlGb3JtYXRTdHIsIGRpcnR5RGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3JtYXR0ZXIodXRjRGF0ZSwgc3Vic3RyaW5nLCBsb2NhbGUubG9jYWxpemUsIGZvcm1hdHRlck9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChmaXJzdENoYXJhY3Rlci5tYXRjaCh1bmVzY2FwZWRMYXRpbkNoYXJhY3RlclJlZ0V4cCkpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCcgKyBmaXJzdENoYXJhY3RlciArICdgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0cmluZztcbiAgfSkuam9pbignJyk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGNsZWFuRXNjYXBlZFN0cmluZyhpbnB1dCkge1xuICByZXR1cm4gaW5wdXQubWF0Y2goZXNjYXBlZFN0cmluZ1JlZ0V4cClbMV0ucmVwbGFjZShkb3VibGVRdW90ZVJlZ0V4cCwgXCInXCIpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgZ2V0RGF5c0luTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGdpdmVuIGRhdGVcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZGF5cyBhcmUgaW4gRmVicnVhcnkgMjAwMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldERheXNJbk1vbnRoKG5ldyBEYXRlKDIwMDAsIDEpKVxuICogLy89PiAyOVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERheXNJbk1vbnRoKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIHZhciBtb250aEluZGV4ID0gZGF0ZS5nZXRNb250aCgpO1xuICB2YXIgbGFzdERheU9mTW9udGggPSBuZXcgRGF0ZSgwKTtcbiAgbGFzdERheU9mTW9udGguc2V0RnVsbFllYXIoeWVhciwgbW9udGhJbmRleCArIDEsIDApO1xuICBsYXN0RGF5T2ZNb250aC5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGxhc3REYXlPZk1vbnRoLmdldERhdGUoKTtcbn0iLCJpbXBvcnQgdG9EYXRlIGZyb20gXCIuLi90b0RhdGUvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG4vKipcbiAqIEBuYW1lIGdldFRpbWVcbiAqIEBjYXRlZ29yeSBUaW1lc3RhbXAgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBtaWxsaXNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBtaWxsaXNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBnaXZlbiBkYXRlXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgdGltZXN0YW1wXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gR2V0IHRoZSB0aW1lc3RhbXAgb2YgMjkgRmVicnVhcnkgMjAxMiAxMTo0NTowNS4xMjM6XG4gKiBjb25zdCByZXN1bHQgPSBnZXRUaW1lKG5ldyBEYXRlKDIwMTIsIDEsIDI5LCAxMSwgNDUsIDUsIDEyMykpXG4gKiAvLz0+IDEzMzA1MTU5MDUxMjNcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRUaW1lKGRpcnR5RGF0ZSkge1xuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIHRpbWVzdGFtcCA9IGRhdGUuZ2V0VGltZSgpO1xuICByZXR1cm4gdGltZXN0YW1wO1xufSIsImltcG9ydCBnZXRUaW1lIGZyb20gXCIuLi9nZXRUaW1lL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBnZXRVbml4VGltZVxuICogQGNhdGVnb3J5IFRpbWVzdGFtcCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIHNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBzZWNvbmRzIHRpbWVzdGFtcCBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZ2l2ZW4gZGF0ZVxuICogQHJldHVybnMge051bWJlcn0gdGhlIHRpbWVzdGFtcFxuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEdldCB0aGUgdGltZXN0YW1wIG9mIDI5IEZlYnJ1YXJ5IDIwMTIgMTE6NDU6MDUgQ0VUOlxuICogY29uc3QgcmVzdWx0ID0gZ2V0VW5peFRpbWUobmV3IERhdGUoMjAxMiwgMSwgMjksIDExLCA0NSwgNSkpXG4gKiAvLz0+IDEzMzA1MTIzMDVcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRVbml4VGltZShkaXJ0eURhdGUpIHtcbiAgcmVxdWlyZWRBcmdzKDEsIGFyZ3VtZW50cyk7XG4gIHJldHVybiBNYXRoLmZsb29yKGdldFRpbWUoZGlydHlEYXRlKSAvIDEwMDApO1xufSIsImltcG9ydCBzdGFydE9mV2VlayBmcm9tIFwiLi4vc3RhcnRPZldlZWsvaW5kZXguanNcIjtcbmltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZ2V0V2Vla1llYXJcbiAqIEBjYXRlZ29yeSBXZWVrLU51bWJlcmluZyBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSBleGFjdCBjYWxjdWxhdGlvbiBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgb2ZcbiAqIGBvcHRpb25zLndlZWtTdGFydHNPbmAgKHdoaWNoIGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrKVxuICogYW5kIGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgKHdoaWNoIGlzIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXMgYWx3YXlzIGluXG4gKiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgd2Vlay1udW1iZXJpbmcgeWVhcilcbiAqXG4gKiBXZWVrIG51bWJlcmluZzogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2VlayNXZWVrX251bWJlcmluZ1xuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBnaXZlbiBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEBwYXJhbSB7MXwyfDN8NHw1fDZ8N30gW29wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlPTFdIC0gdGhlIGRheSBvZiBKYW51YXJ5LCB3aGljaCBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXJcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggd2VlayBudW1iZXJpbmcgeWVhciBpcyAyNiBEZWNlbWJlciAyMDA0IHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3M/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrWWVhcihuZXcgRGF0ZSgyMDA0LCAxMSwgMjYpKVxuICogLy89PiAyMDA1XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIHdlZWsgbnVtYmVyaW5nIHllYXIgaXMgMjYgRGVjZW1iZXIgMjAwNCBpZiB3ZWVrIHN0YXJ0cyBvbiBTYXR1cmRheT9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldFdlZWtZZWFyKG5ldyBEYXRlKDIwMDQsIDExLCAyNiksIHsgd2Vla1N0YXJ0c09uOiA2IH0pXG4gKiAvLz0+IDIwMDRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggd2VlayBudW1iZXJpbmcgeWVhciBpcyAyNiBEZWNlbWJlciAyMDA0IGlmIHRoZSBmaXJzdCB3ZWVrIGNvbnRhaW5zIDQgSmFudWFyeT9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldFdlZWtZZWFyKG5ldyBEYXRlKDIwMDQsIDExLCAyNiksIHsgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiA0IH0pXG4gKiAvLz0+IDIwMDRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2Vla1llYXIoZGlydHlEYXRlLCBvcHRpb25zKSB7XG4gIHZhciBfb3B0aW9ucyRsb2NhbGUsIF9vcHRpb25zJGxvY2FsZSRvcHRpbztcblxuICByZXF1aXJlZEFyZ3MoMSwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIHZhciBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfb3B0aW9ucyRsb2NhbGUgPSBvcHRpb25zLmxvY2FsZSkgPT09IG51bGwgfHwgX29wdGlvbnMkbG9jYWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX29wdGlvbnMkbG9jYWxlJG9wdGlvID0gX29wdGlvbnMkbG9jYWxlLm9wdGlvbnMpID09PSBudWxsIHx8IF9vcHRpb25zJGxvY2FsZSRvcHRpbyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29wdGlvbnMkbG9jYWxlJG9wdGlvLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgdmFyIGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IDEgOiB0b0ludGVnZXIobG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IChvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSA9PSBudWxsID8gZGVmYXVsdEZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA6IHRvSW50ZWdlcihvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7IC8vIFRlc3QgaWYgd2Vla1N0YXJ0c09uIGlzIGJldHdlZW4gMSBhbmQgNyBfYW5kXyBpcyBub3QgTmFOXG5cbiAgaWYgKCEoZmlyc3RXZWVrQ29udGFpbnNEYXRlID49IDEgJiYgZmlyc3RXZWVrQ29udGFpbnNEYXRlIDw9IDcpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNyBpbmNsdXNpdmVseScpO1xuICB9XG5cbiAgdmFyIGZpcnN0V2Vla09mTmV4dFllYXIgPSBuZXcgRGF0ZSgwKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRGdWxsWWVhcih5ZWFyICsgMSwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrT2ZOZXh0WWVhci5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIHN0YXJ0T2ZOZXh0WWVhciA9IHN0YXJ0T2ZXZWVrKGZpcnN0V2Vla09mTmV4dFllYXIsIG9wdGlvbnMpO1xuICB2YXIgZmlyc3RXZWVrT2ZUaGlzWWVhciA9IG5ldyBEYXRlKDApO1xuICBmaXJzdFdlZWtPZlRoaXNZZWFyLnNldEZ1bGxZZWFyKHllYXIsIDAsIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7XG4gIGZpcnN0V2Vla09mVGhpc1llYXIuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHZhciBzdGFydE9mVGhpc1llYXIgPSBzdGFydE9mV2VlayhmaXJzdFdlZWtPZlRoaXNZZWFyLCBvcHRpb25zKTtcblxuICBpZiAoZGF0ZS5nZXRUaW1lKCkgPj0gc3RhcnRPZk5leHRZZWFyLmdldFRpbWUoKSkge1xuICAgIHJldHVybiB5ZWFyICsgMTtcbiAgfSBlbHNlIGlmIChkYXRlLmdldFRpbWUoKSA+PSBzdGFydE9mVGhpc1llYXIuZ2V0VGltZSgpKSB7XG4gICAgcmV0dXJuIHllYXI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHllYXIgLSAxO1xuICB9XG59IiwiaW1wb3J0IGdldFdlZWtZZWFyIGZyb20gXCIuLi9nZXRXZWVrWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZXZWVrIGZyb20gXCIuLi9zdGFydE9mV2Vlay9pbmRleC5qc1wiO1xuaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCByZXF1aXJlZEFyZ3MgZnJvbSBcIi4uL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzXCI7XG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZldlZWtZZWFyXG4gKiBAY2F0ZWdvcnkgV2Vlay1OdW1iZXJpbmcgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhci5cbiAqIFRoZSBleGFjdCBjYWxjdWxhdGlvbiBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgb2ZcbiAqIGBvcHRpb25zLndlZWtTdGFydHNPbmAgKHdoaWNoIGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrKVxuICogYW5kIGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgKHdoaWNoIGlzIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXMgYWx3YXlzIGluXG4gKiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgd2Vlay1udW1iZXJpbmcgeWVhcilcbiAqXG4gKiBXZWVrIG51bWJlcmluZzogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2VlayNXZWVrX251bWJlcmluZ1xuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gYW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9jYWxlfSBbb3B0aW9ucy5sb2NhbGU9ZGVmYXVsdExvY2FsZV0gLSB0aGUgbG9jYWxlIG9iamVjdC4gU2VlIFtMb2NhbGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvTG9jYWxlfVxuICogQHBhcmFtIHswfDF8MnwzfDR8NXw2fSBbb3B0aW9ucy53ZWVrU3RhcnRzT249MF0gLSB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAtIFN1bmRheSlcbiAqIEBwYXJhbSB7MXwyfDN8NHw1fDZ8N30gW29wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlPTFdIC0gdGhlIGRheSBvZiBKYW51YXJ5LCB3aGljaCBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXJcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgc3RhcnQgb2YgYSB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLndlZWtTdGFydHNPbmAgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDZcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGFuIGEgd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgMiBKdWx5IDIwMDUgd2l0aCBkZWZhdWx0IHNldHRpbmdzOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZldlZWtZZWFyKG5ldyBEYXRlKDIwMDUsIDYsIDIpKVxuICogLy89PiBTdW4gRGVjIDI2IDIwMDQgMDA6MDA6MDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGEgd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgMiBKdWx5IDIwMDVcbiAqIC8vIGlmIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWtcbiAqIC8vIGFuZCA0IEphbnVhcnkgaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZldlZWtZZWFyKG5ldyBEYXRlKDIwMDUsIDYsIDIpLCB7XG4gKiAgIHdlZWtTdGFydHNPbjogMSxcbiAqICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiA0XG4gKiB9KVxuICogLy89PiBNb24gSmFuIDAzIDIwMDUgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc3RhcnRPZldlZWtZZWFyKGRpcnR5RGF0ZSwgZGlydHlPcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgb3B0aW9ucyA9IGRpcnR5T3B0aW9ucyB8fCB7fTtcbiAgdmFyIGxvY2FsZSA9IG9wdGlvbnMubG9jYWxlO1xuICB2YXIgbG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlID0gbG9jYWxlICYmIGxvY2FsZS5vcHRpb25zICYmIGxvY2FsZS5vcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgdmFyIGRlZmF1bHRGaXJzdFdlZWtDb250YWluc0RhdGUgPSBsb2NhbGVGaXJzdFdlZWtDb250YWluc0RhdGUgPT0gbnVsbCA/IDEgOiB0b0ludGVnZXIobG9jYWxlRmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9IG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlID09IG51bGwgPyBkZWZhdWx0Rmlyc3RXZWVrQ29udGFpbnNEYXRlIDogdG9JbnRlZ2VyKG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgdmFyIHllYXIgPSBnZXRXZWVrWWVhcihkaXJ0eURhdGUsIGRpcnR5T3B0aW9ucyk7XG4gIHZhciBmaXJzdFdlZWsgPSBuZXcgRGF0ZSgwKTtcbiAgZmlyc3RXZWVrLnNldEZ1bGxZZWFyKHllYXIsIDAsIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7XG4gIGZpcnN0V2Vlay5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgdmFyIGRhdGUgPSBzdGFydE9mV2VlayhmaXJzdFdlZWssIGRpcnR5T3B0aW9ucyk7XG4gIHJldHVybiBkYXRlO1xufSIsImltcG9ydCBzdGFydE9mV2VlayBmcm9tIFwiLi4vc3RhcnRPZldlZWsvaW5kZXguanNcIjtcbmltcG9ydCBzdGFydE9mV2Vla1llYXIgZnJvbSBcIi4uL3N0YXJ0T2ZXZWVrWWVhci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xudmFyIE1JTExJU0VDT05EU19JTl9XRUVLID0gNjA0ODAwMDAwO1xuLyoqXG4gKiBAbmFtZSBnZXRXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIGxvY2FsIHdlZWsgaW5kZXggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIGxvY2FsIHdlZWsgaW5kZXggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgZXhhY3QgY2FsY3VsYXRpb24gZGVwZW5kcyBvbiB0aGUgdmFsdWVzIG9mXG4gKiBgb3B0aW9ucy53ZWVrU3RhcnRzT25gICh3aGljaCBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaylcbiAqIGFuZCBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgICh3aGljaCBpcyB0aGUgZGF5IG9mIEphbnVhcnksIHdoaWNoIGlzIGFsd2F5cyBpblxuICogdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHdlZWstbnVtYmVyaW5nIHllYXIpXG4gKlxuICogV2VlayBudW1iZXJpbmc6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dlZWsjV2Vla19udW1iZXJpbmdcbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIGFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge0xvY2FsZX0gW29wdGlvbnMubG9jYWxlPWRlZmF1bHRMb2NhbGVdIC0gdGhlIGxvY2FsZSBvYmplY3QuIFNlZSBbTG9jYWxlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL0xvY2FsZX1cbiAqIEBwYXJhbSB7MHwxfDJ8M3w0fDV8Nn0gW29wdGlvbnMud2Vla1N0YXJ0c09uPTBdIC0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAgLSBTdW5kYXkpXG4gKiBAcGFyYW0gezF8MnwzfDR8NXw2fDd9IFtvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT0xXSAtIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgd2Vla1xuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy53ZWVrU3RhcnRzT25gIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA2XG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA3XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIHdlZWsgb2YgdGhlIGxvY2FsIHdlZWsgbnVtYmVyaW5nIHllYXIgaXMgMiBKYW51YXJ5IDIwMDUgd2l0aCBkZWZhdWx0IG9wdGlvbnM/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrKG5ldyBEYXRlKDIwMDUsIDAsIDIpKVxuICogLy89PiAyXG4gKlxuICogLy8gV2hpY2ggd2VlayBvZiB0aGUgbG9jYWwgd2VlayBudW1iZXJpbmcgeWVhciBpcyAyIEphbnVhcnkgMjAwNSxcbiAqIC8vIGlmIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLFxuICogLy8gYW5kIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyIGFsd2F5cyBjb250YWlucyA0IEphbnVhcnk/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrKG5ldyBEYXRlKDIwMDUsIDAsIDIpLCB7XG4gKiAgIHdlZWtTdGFydHNPbjogMSxcbiAqICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiA0XG4gKiB9KVxuICogLy89PiA1M1xuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdlZWsoZGlydHlEYXRlLCBvcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgZGlmZiA9IHN0YXJ0T2ZXZWVrKGRhdGUsIG9wdGlvbnMpLmdldFRpbWUoKSAtIHN0YXJ0T2ZXZWVrWWVhcihkYXRlLCBvcHRpb25zKS5nZXRUaW1lKCk7IC8vIFJvdW5kIHRoZSBudW1iZXIgb2YgZGF5cyB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyXG4gIC8vIGJlY2F1c2UgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYSB3ZWVrIGlzIG5vdCBjb25zdGFudFxuICAvLyAoZS5nLiBpdCdzIGRpZmZlcmVudCBpbiB0aGUgd2VlayBvZiB0aGUgZGF5bGlnaHQgc2F2aW5nIHRpbWUgY2xvY2sgc2hpZnQpXG5cbiAgcmV0dXJuIE1hdGgucm91bmQoZGlmZiAvIE1JTExJU0VDT05EU19JTl9XRUVLKSArIDE7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBsYXN0RGF5T2ZNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgbGFzdCBkYXkgb2YgYSBtb250aCBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGxhc3QgZGF5IG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgb3JpZ2luYWwgZGF0ZVxuICogQHJldHVybnMge0RhdGV9IHRoZSBsYXN0IGRheSBvZiBhIG1vbnRoXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIGxhc3QgZGF5IG9mIGEgbW9udGggZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiB2YXIgcmVzdWx0ID0gbGFzdERheU9mTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gVHVlIFNlcCAzMCAyMDE0IDAwOjAwOjAwXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGFzdERheU9mTW9udGgoZGlydHlEYXRlKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICB2YXIgZGF0ZSA9IHRvRGF0ZShkaXJ0eURhdGUpO1xuICB2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gIGRhdGUuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aCArIDEsIDApO1xuICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gZGF0ZTtcbn0iLCJpbXBvcnQgZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyBmcm9tIFwiLi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcy9pbmRleC5qc1wiO1xuaW1wb3J0IGxhc3REYXlPZk1vbnRoIGZyb20gXCIuLi9sYXN0RGF5T2ZNb250aC9pbmRleC5qc1wiO1xuaW1wb3J0IHN0YXJ0T2ZNb250aCBmcm9tIFwiLi4vc3RhcnRPZk1vbnRoL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGdldFdlZWtzSW5Nb250aFxuICogQGNhdGVnb3J5IFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3MgYSBtb250aCBzcGFucy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzIHRoZSBtb250aCBpbiB0aGUgZ2l2ZW4gZGF0ZSBzcGFucy5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIGFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge0xvY2FsZX0gW29wdGlvbnMubG9jYWxlPWRlZmF1bHRMb2NhbGVdIC0gdGhlIGxvY2FsZSBvYmplY3QuIFNlZSBbTG9jYWxlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL0xvY2FsZX1cbiAqIEBwYXJhbSB7MHwxfDJ8M3w0fDV8Nn0gW29wdGlvbnMud2Vla1N0YXJ0c09uPTBdIC0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAgLSBTdW5kYXkpXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy53ZWVrU3RhcnRzT25gIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA2XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIHdlZWtzIGRvZXMgRmVicnVhcnkgMjAxNSBzcGFuP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2Vla3NJbk1vbnRoKG5ldyBEYXRlKDIwMTUsIDEsIDgpKVxuICogLy89PiA0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRoZSB3ZWVrIHN0YXJ0cyBvbiBNb25kYXksXG4gKiAvLyBob3cgbWFueSBjYWxlbmRhciB3ZWVrcyBkb2VzIEp1bHkgMjAxNyBzcGFuP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2Vla3NJbk1vbnRoKG5ldyBEYXRlKDIwMTcsIDYsIDUpLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiA2XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdlZWtzSW5Nb250aChkYXRlLCBvcHRpb25zKSB7XG4gIHJlcXVpcmVkQXJncygxLCBhcmd1bWVudHMpO1xuICByZXR1cm4gZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyhsYXN0RGF5T2ZNb250aChkYXRlKSwgc3RhcnRPZk1vbnRoKGRhdGUpLCBvcHRpb25zKSArIDE7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc0FmdGVyXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBmaXJzdCBkYXRlIGFmdGVyIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYWZ0ZXIgdGhlIG90aGVyIG9uZSB0byByZXR1cm4gdHJ1ZVxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZVRvQ29tcGFyZSAtIHRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aFxuICogQHJldHVybnMge0Jvb2xlYW59IHRoZSBmaXJzdCBkYXRlIGlzIGFmdGVyIHRoZSBzZWNvbmQgZGF0ZVxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYWZ0ZXIgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIHZhciByZXN1bHQgPSBpc0FmdGVyKG5ldyBEYXRlKDE5ODksIDYsIDEwKSwgbmV3IERhdGUoMTk4NywgMSwgMTEpKVxuICogLy89PiB0cnVlXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBZnRlcihkaXJ0eURhdGUsIGRpcnR5RGF0ZVRvQ29tcGFyZSkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGlydHlEYXRlVG9Db21wYXJlKTtcbiAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpID4gZGF0ZVRvQ29tcGFyZS5nZXRUaW1lKCk7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc0JlZm9yZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBiZWZvcmUgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYmVmb3JlIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVUb0NvbXBhcmUgLSB0aGUgZGF0ZSB0byBjb21wYXJlIHdpdGhcbiAqIEByZXR1cm5zIHtCb29sZWFufSB0aGUgZmlyc3QgZGF0ZSBpcyBiZWZvcmUgdGhlIHNlY29uZCBkYXRlXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBiZWZvcmUgMTEgRmVicnVhcnkgMTk4Nz9cbiAqIHZhciByZXN1bHQgPSBpc0JlZm9yZShuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0JlZm9yZShkaXJ0eURhdGUsIGRpcnR5RGF0ZVRvQ29tcGFyZSkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIGRhdGVUb0NvbXBhcmUgPSB0b0RhdGUoZGlydHlEYXRlVG9Db21wYXJlKTtcbiAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpIDwgZGF0ZVRvQ29tcGFyZS5nZXRUaW1lKCk7XG59IiwiaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBpc1NhbWVNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKT9cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVMZWZ0IC0gdGhlIGZpcnN0IGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGVSaWdodCAtIHRoZSBzZWNvbmQgZGF0ZSB0byBjaGVja1xuICogQHJldHVybnMge0Jvb2xlYW59IHRoZSBkYXRlcyBhcmUgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKVxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgMiBTZXB0ZW1iZXIgMjAxNCBhbmQgMjUgU2VwdGVtYmVyIDIwMTQgaW4gdGhlIHNhbWUgbW9udGg/XG4gKiB2YXIgcmVzdWx0ID0gaXNTYW1lTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiksIG5ldyBEYXRlKDIwMTQsIDgsIDI1KSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgMiBTZXB0ZW1iZXIgMjAxNCBhbmQgMjUgU2VwdGVtYmVyIDIwMTUgaW4gdGhlIHNhbWUgbW9udGg/XG4gKiB2YXIgcmVzdWx0ID0gaXNTYW1lTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiksIG5ldyBEYXRlKDIwMTUsIDgsIDI1KSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1NhbWVNb250aChkaXJ0eURhdGVMZWZ0LCBkaXJ0eURhdGVSaWdodCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGVMZWZ0ID0gdG9EYXRlKGRpcnR5RGF0ZUxlZnQpO1xuICB2YXIgZGF0ZVJpZ2h0ID0gdG9EYXRlKGRpcnR5RGF0ZVJpZ2h0KTtcbiAgcmV0dXJuIGRhdGVMZWZ0LmdldEZ1bGxZZWFyKCkgPT09IGRhdGVSaWdodC5nZXRGdWxsWWVhcigpICYmIGRhdGVMZWZ0LmdldE1vbnRoKCkgPT09IGRhdGVSaWdodC5nZXRNb250aCgpO1xufSIsImltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgaXNTYW1lWWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB5ZWFyP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB5ZWFyP1xuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZUxlZnQgLSB0aGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZVJpZ2h0IC0gdGhlIHNlY29uZCBkYXRlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gdGhlIGRhdGVzIGFyZSBpbiB0aGUgc2FtZSB5ZWFyXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSAyIFNlcHRlbWJlciAyMDE0IGFuZCAyNSBTZXB0ZW1iZXIgMjAxNCBpbiB0aGUgc2FtZSB5ZWFyP1xuICogdmFyIHJlc3VsdCA9IGlzU2FtZVllYXIobmV3IERhdGUoMjAxNCwgOCwgMiksIG5ldyBEYXRlKDIwMTQsIDgsIDI1KSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzU2FtZVllYXIoZGlydHlEYXRlTGVmdCwgZGlydHlEYXRlUmlnaHQpIHtcbiAgcmVxdWlyZWRBcmdzKDIsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlTGVmdCA9IHRvRGF0ZShkaXJ0eURhdGVMZWZ0KTtcbiAgdmFyIGRhdGVSaWdodCA9IHRvRGF0ZShkaXJ0eURhdGVSaWdodCk7XG4gIHJldHVybiBkYXRlTGVmdC5nZXRGdWxsWWVhcigpID09PSBkYXRlUmlnaHQuZ2V0RnVsbFllYXIoKTtcbn0iLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gXCIuLi9fbGliL3RvSW50ZWdlci9pbmRleC5qc1wiO1xuaW1wb3J0IHRvRGF0ZSBmcm9tIFwiLi4vdG9EYXRlL2luZGV4LmpzXCI7XG5pbXBvcnQgZ2V0RGF5c0luTW9udGggZnJvbSBcIi4uL2dldERheXNJbk1vbnRoL2luZGV4LmpzXCI7XG5pbXBvcnQgcmVxdWlyZWRBcmdzIGZyb20gXCIuLi9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAbmFtZSBzZXRNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgbW9udGggdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIG1vbnRoIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB7TnVtYmVyfSBtb250aCAtIHRoZSBtb250aCBvZiB0aGUgbmV3IGRhdGVcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgbW9udGggc2V0XG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCBGZWJydWFyeSB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc2V0TW9udGgobmV3IERhdGUoMjAxNCwgOCwgMSksIDEpXG4gKiAvLz0+IFNhdCBGZWIgMDEgMjAxNCAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldE1vbnRoKGRpcnR5RGF0ZSwgZGlydHlNb250aCkge1xuICByZXF1aXJlZEFyZ3MoMiwgYXJndW1lbnRzKTtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlKTtcbiAgdmFyIG1vbnRoID0gdG9JbnRlZ2VyKGRpcnR5TW9udGgpO1xuICB2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgdmFyIGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xuICB2YXIgZGF0ZVdpdGhEZXNpcmVkTW9udGggPSBuZXcgRGF0ZSgwKTtcbiAgZGF0ZVdpdGhEZXNpcmVkTW9udGguc2V0RnVsbFllYXIoeWVhciwgbW9udGgsIDE1KTtcbiAgZGF0ZVdpdGhEZXNpcmVkTW9udGguc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHZhciBkYXlzSW5Nb250aCA9IGdldERheXNJbk1vbnRoKGRhdGVXaXRoRGVzaXJlZE1vbnRoKTsgLy8gU2V0IHRoZSBsYXN0IGRheSBvZiB0aGUgbmV3IG1vbnRoXG4gIC8vIGlmIHRoZSBvcmlnaW5hbCBkYXRlIHdhcyB0aGUgbGFzdCBkYXkgb2YgdGhlIGxvbmdlciBtb250aFxuXG4gIGRhdGUuc2V0TW9udGgobW9udGgsIE1hdGgubWluKGRheSwgZGF5c0luTW9udGgpKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IHRvSW50ZWdlciBmcm9tIFwiLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanNcIjtcbmltcG9ydCB0b0RhdGUgZnJvbSBcIi4uL3RvRGF0ZS9pbmRleC5qc1wiO1xuaW1wb3J0IHJlcXVpcmVkQXJncyBmcm9tIFwiLi4vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanNcIjtcbi8qKlxuICogQG5hbWUgc2V0WWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgU2V0IHRoZSB5ZWFyIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU2V0IHRoZSB5ZWFyIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB7TnVtYmVyfSB5ZWFyIC0gdGhlIHllYXIgb2YgdGhlIG5ldyBkYXRlXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIHllYXIgc2V0XG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCB5ZWFyIDIwMTMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldFllYXIobmV3IERhdGUoMjAxNCwgOCwgMSksIDIwMTMpXG4gKiAvLz0+IFN1biBTZXAgMDEgMjAxMyAwMDowMDowMFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldFllYXIoZGlydHlEYXRlLCBkaXJ0eVllYXIpIHtcbiAgcmVxdWlyZWRBcmdzKDIsIGFyZ3VtZW50cyk7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSk7XG4gIHZhciB5ZWFyID0gdG9JbnRlZ2VyKGRpcnR5WWVhcik7IC8vIENoZWNrIGlmIGRhdGUgaXMgSW52YWxpZCBEYXRlIGJlY2F1c2UgRGF0ZS5wcm90b3R5cGUuc2V0RnVsbFllYXIgaWdub3JlcyB0aGUgdmFsdWUgb2YgSW52YWxpZCBEYXRlXG5cbiAgaWYgKGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG5cbiAgZGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcbiAgcmV0dXJuIGRhdGU7XG59IiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzU2FtZVllYXIsIHNldE1vbnRoIGFzIHNldERhdGVNb250aCwgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIHRoZSBkcm9wZG93biB0byBuYXZpZ2F0ZSBiZXR3ZWVuIG1vbnRocy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1vbnRoc0Ryb3Bkb3duKHByb3BzKSB7XG4gICAgdmFyIGRpc3BsYXlNb250aCA9IHByb3BzLmRpc3BsYXlNb250aDtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgZnJvbURhdGUgPSBfYS5mcm9tRGF0ZSwgdG9EYXRlID0gX2EudG9EYXRlLCBzdHlsZXMgPSBfYS5zdHlsZXMsIGxvY2FsZSA9IF9hLmxvY2FsZSwgZm9ybWF0TW9udGhDYXB0aW9uID0gX2EuZm9ybWF0dGVycy5mb3JtYXRNb250aENhcHRpb24sIGNsYXNzTmFtZXMgPSBfYS5jbGFzc05hbWVzLCBEcm9wZG93biA9IF9hLmNvbXBvbmVudHMuRHJvcGRvd24sIGxhYmVsTW9udGhEcm9wZG93biA9IF9hLmxhYmVscy5sYWJlbE1vbnRoRHJvcGRvd247XG4gICAgaWYgKCFmcm9tRGF0ZSAmJiAhdG9EYXRlKSB7XG4gICAgICAgIC8vIFRPRE86IHVzZSB0eXBlIGd1YXJkc1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCk7XG4gICAgfVxuICAgIHZhciBkcm9wZG93bk1vbnRocyA9IFtdO1xuICAgIGlmIChmcm9tRGF0ZSAmJiB0b0RhdGUpIHtcbiAgICAgICAgaWYgKGlzU2FtZVllYXIoZnJvbURhdGUsIHRvRGF0ZSkpIHtcbiAgICAgICAgICAgIC8vIG9ubHkgZGlzcGxheSB0aGUgbW9udGhzIGluY2x1ZGVkIGluIHRoZSByYW5nZVxuICAgICAgICAgICAgZm9yICh2YXIgbW9udGggPSBmcm9tRGF0ZS5nZXRNb250aCgpOyBtb250aCA8PSB0b0RhdGUuZ2V0TW9udGgoKTsgbW9udGgrKykge1xuICAgICAgICAgICAgICAgIGRyb3Bkb3duTW9udGhzLnB1c2goc2V0RGF0ZU1vbnRoKHN0YXJ0T2ZNb250aChmcm9tRGF0ZSksIG1vbnRoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBkaXNwbGF5IGFsbCB0aGUgMTIgbW9udGhzXG4gICAgICAgICAgICBmb3IgKHZhciBtb250aCA9IDA7IG1vbnRoIDw9IDExOyBtb250aCsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFueURhdGUgPSBuZXcgRGF0ZSgpOyAvLyBhbnkgZGF0ZSBpcyBPSywgd2UganVzdCBuZWVkIHRoZSB5ZWFyXG4gICAgICAgICAgICAgICAgZHJvcGRvd25Nb250aHMucHVzaChzZXREYXRlTW9udGgoc3RhcnRPZk1vbnRoKGFueURhdGUpLCBtb250aCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBoYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgbmV3TW9udGggPSBzZXREYXRlTW9udGgobmV3IERhdGUoZGlzcGxheU1vbnRoKSwgTnVtYmVyKGUudGFyZ2V0LnZhbHVlKSk7XG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKG5ld01vbnRoKTtcbiAgICB9O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChEcm9wZG93biwgeyBcImFyaWEtbGFiZWxcIjogbGFiZWxNb250aERyb3Bkb3duKCksIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5kcm9wZG93bl9tb250aCwgc3R5bGU6IHN0eWxlcy5kcm9wZG93bl9tb250aCwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgdmFsdWU6IGRpc3BsYXlNb250aC5nZXRNb250aCgpLCBjYXB0aW9uOiBmb3JtYXRNb250aENhcHRpb24oZGlzcGxheU1vbnRoLCB7IGxvY2FsZTogbG9jYWxlIH0pIH0sIGRyb3Bkb3duTW9udGhzLm1hcChmdW5jdGlvbiAobSkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJvcHRpb25cIiwgeyBrZXk6IG0uZ2V0TW9udGgoKSwgdmFsdWU6IG0uZ2V0TW9udGgoKSB9LCBmb3JtYXRNb250aENhcHRpb24obSwgeyBsb2NhbGU6IGxvY2FsZSB9KSkpOyB9KSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9udGhzRHJvcGRvd24uanMubWFwIiwiaW1wb3J0IHsgX19hc3NpZ24gfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuLyoqXG4gKiBSZW5kZXIgYSBidXR0b24gSFRNTCBlbGVtZW50IGFwcGx5aW5nIHRoZSByZXNldCBjbGFzcyBuYW1lLlxuICovXG5leHBvcnQgdmFyIEJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgY2xhc3NOYW1lcyA9IF9hLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9hLnN0eWxlcztcbiAgICB2YXIgY2xhc3NOYW1lc0FyciA9IFtjbGFzc05hbWVzLmJ1dHRvbl9yZXNldCwgY2xhc3NOYW1lcy5idXR0b25dO1xuICAgIGlmIChwcm9wcy5jbGFzc05hbWUpIHtcbiAgICAgICAgY2xhc3NOYW1lc0Fyci5wdXNoKHByb3BzLmNsYXNzTmFtZSk7XG4gICAgfVxuICAgIHZhciBjbGFzc05hbWUgPSBjbGFzc05hbWVzQXJyLmpvaW4oJyAnKTtcbiAgICB2YXIgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3R5bGVzLmJ1dHRvbl9yZXNldCksIHN0eWxlcy5idXR0b24pO1xuICAgIGlmIChwcm9wcy5zdHlsZSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBwcm9wcy5zdHlsZSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgcmVmOiByZWYsIHR5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzdHlsZTogc3R5bGUgfSkpKTtcbn0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QnV0dG9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbi8qKiBBIGNvbXBvbmVudCByZW5kZXJpbmcgdGhlIG5hdmlnYXRpb24gYnV0dG9ucyBvciB0aGUgZHJvcC1kb3ducy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBOYXZpZ2F0aW9uKHByb3BzKSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBfYiA9IHVzZURheVBpY2tlcigpLCBkaXIgPSBfYi5kaXIsIGxvY2FsZSA9IF9iLmxvY2FsZSwgY2xhc3NOYW1lcyA9IF9iLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9iLnN0eWxlcywgX2MgPSBfYi5sYWJlbHMsIGxhYmVsUHJldmlvdXMgPSBfYy5sYWJlbFByZXZpb3VzLCBsYWJlbE5leHQgPSBfYy5sYWJlbE5leHQsIF9kID0gX2IuY29tcG9uZW50cywgSWNvblJpZ2h0ID0gX2QuSWNvblJpZ2h0LCBJY29uTGVmdCA9IF9kLkljb25MZWZ0O1xuICAgIHZhciBvblByZXZpb3VzQ2xpY2sgPSBwcm9wcy5vblByZXZpb3VzQ2xpY2ssIG9uTmV4dENsaWNrID0gcHJvcHMub25OZXh0Q2xpY2s7XG4gICAgaWYgKGRpciA9PT0gJ3J0bCcpIHtcbiAgICAgICAgX2EgPSBbb25QcmV2aW91c0NsaWNrLCBvbk5leHRDbGlja10sIG9uTmV4dENsaWNrID0gX2FbMF0sIG9uUHJldmlvdXNDbGljayA9IF9hWzFdO1xuICAgIH1cbiAgICB2YXIgcHJldmlvdXNNb250aCA9IHByb3BzLnByZXZpb3VzTW9udGgsIG5leHRNb250aCA9IHByb3BzLm5leHRNb250aDtcbiAgICB2YXIgcHJldmlvdXNMYWJlbCA9IGxhYmVsUHJldmlvdXMocHJldmlvdXNNb250aCwgeyBsb2NhbGU6IGxvY2FsZSB9KTtcbiAgICB2YXIgcHJldmlvdXNDbGFzc05hbWUgPSBbXG4gICAgICAgIGNsYXNzTmFtZXMubmF2X2J1dHRvbixcbiAgICAgICAgY2xhc3NOYW1lcy5uYXZfYnV0dG9uX3ByZXZpb3VzXG4gICAgXS5qb2luKCcgJyk7XG4gICAgdmFyIG5leHRMYWJlbCA9IGxhYmVsTmV4dChuZXh0TW9udGgsIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgdmFyIG5leHRDbGFzc05hbWUgPSBbXG4gICAgICAgIGNsYXNzTmFtZXMubmF2X2J1dHRvbixcbiAgICAgICAgY2xhc3NOYW1lcy5uYXZfYnV0dG9uX25leHRcbiAgICBdLmpvaW4oJyAnKTtcbiAgICBpZiAoIW5leHRNb250aCAmJiAhcHJldmlvdXNNb250aCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5uYXYsIHN0eWxlOiBzdHlsZXMubmF2IH0sXG4gICAgICAgICFwcm9wcy5oaWRlUHJldmlvdXMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBwcmV2aW91c0xhYmVsLCBjbGFzc05hbWU6IHByZXZpb3VzQ2xhc3NOYW1lLCBzdHlsZTogc3R5bGVzLm5hdl9idXR0b25fbmV4dCwgZGlzYWJsZWQ6ICFwcmV2aW91c01vbnRoLCBvbkNsaWNrOiBkaXIgPT09ICdydGwnID8gb25OZXh0Q2xpY2sgOiBvblByZXZpb3VzQ2xpY2sgfSwgZGlyID09PSAncnRsJyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25SaWdodCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMubmF2X2ljb24sIHN0eWxlOiBzdHlsZXMubmF2X2ljb24gfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkxlZnQsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm5hdl9pY29uLCBzdHlsZTogc3R5bGVzLm5hdl9pY29uIH0pKSkpLFxuICAgICAgICAhcHJvcHMuaGlkZU5leHQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7IFwiYXJpYS1sYWJlbFwiOiBuZXh0TGFiZWwsIGNsYXNzTmFtZTogbmV4dENsYXNzTmFtZSwgc3R5bGU6IHN0eWxlcy5uYXZfYnV0dG9uX25leHQsIGRpc2FibGVkOiAhbmV4dE1vbnRoLCBvbkNsaWNrOiBkaXIgPT09ICdydGwnID8gb25QcmV2aW91c0NsaWNrIDogb25OZXh0Q2xpY2sgfSwgZGlyID09PSAncnRsJyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25MZWZ0LCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5uYXZfaWNvbiwgc3R5bGU6IHN0eWxlcy5uYXZfaWNvbiB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uUmlnaHQsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm5hdl9pY29uLCBzdHlsZTogc3R5bGVzLm5hdl9pY29uIH0pKSkpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZpZ2F0aW9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzZXRZZWFyLCBzdGFydE9mWWVhciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG4vKipcbiAqIFJlbmRlciBhIGRyb3Bkb3duIHRvIGNoYW5nZSB0aGUgeWVhci4gVGFrZSBpbiBhY2NvdW50IHRoZSBgbmF2LmZyb21EYXRlYCBhbmRcbiAqIGB0b0RhdGVgIGZyb20gY29udGV4dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFllYXJzRHJvcGRvd24ocHJvcHMpIHtcbiAgICB2YXIgZGlzcGxheU1vbnRoID0gcHJvcHMuZGlzcGxheU1vbnRoO1xuICAgIHZhciBfYSA9IHVzZURheVBpY2tlcigpLCBmcm9tRGF0ZSA9IF9hLmZyb21EYXRlLCB0b0RhdGUgPSBfYS50b0RhdGUsIGxvY2FsZSA9IF9hLmxvY2FsZSwgc3R5bGVzID0gX2Euc3R5bGVzLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgRHJvcGRvd24gPSBfYS5jb21wb25lbnRzLkRyb3Bkb3duLCBmb3JtYXRZZWFyQ2FwdGlvbiA9IF9hLmZvcm1hdHRlcnMuZm9ybWF0WWVhckNhcHRpb24sIGxhYmVsWWVhckRyb3Bkb3duID0gX2EubGFiZWxzLmxhYmVsWWVhckRyb3Bkb3duO1xuICAgIHZhciB5ZWFycyA9IFtdO1xuICAgIGlmIChmcm9tRGF0ZSAmJiB0b0RhdGUpIHtcbiAgICAgICAgdmFyIGZyb21ZZWFyID0gZnJvbURhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgdmFyIHRvWWVhciA9IHRvRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICBmb3IgKHZhciB5ZWFyID0gZnJvbVllYXI7IHllYXIgPD0gdG9ZZWFyOyB5ZWFyKyspIHtcbiAgICAgICAgICAgIHllYXJzLnB1c2goc2V0WWVhcihzdGFydE9mWWVhcihuZXcgRGF0ZSgpKSwgeWVhcikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBoYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgbmV3TW9udGggPSBzZXRZZWFyKG5ldyBEYXRlKGRpc3BsYXlNb250aCksIE51bWJlcihlLnRhcmdldC52YWx1ZSkpO1xuICAgICAgICBwcm9wcy5vbkNoYW5nZShuZXdNb250aCk7XG4gICAgfTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRHJvcGRvd24sIHsgXCJhcmlhLWxhYmVsXCI6IGxhYmVsWWVhckRyb3Bkb3duKCksIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5kcm9wZG93bl9tb250aCwgc3R5bGU6IHN0eWxlcy5kcm9wZG93bl9tb250aCwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgdmFsdWU6IGRpc3BsYXlNb250aC5nZXRGdWxsWWVhcigpLCBjYXB0aW9uOiBmb3JtYXRZZWFyQ2FwdGlvbihkaXNwbGF5TW9udGgsIHsgbG9jYWxlOiBsb2NhbGUgfSkgfSwgeWVhcnMubWFwKGZ1bmN0aW9uICh5ZWFyKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcIm9wdGlvblwiLCB7IGtleTogeWVhci5nZXRGdWxsWWVhcigpLCB2YWx1ZTogeWVhci5nZXRGdWxsWWVhcigpIH0sIGZvcm1hdFllYXJDYXB0aW9uKHllYXIsIHsgbG9jYWxlOiBsb2NhbGUgfSkpKTsgfSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVllYXJzRHJvcGRvd24uanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogSGVscGVyIGhvb2sgZm9yIHVzaW5nIGNvbnRyb2xsZWQvdW5jb250cm9sbGVkIHZhbHVlcyBmcm9tIGEgY29tcG9uZW50IHByb3BzLlxuICpcbiAqIFdoZW4gdGhlIHZhbHVlIGlzIG5vdCBjb250cm9sbGVkLCBwYXNzIGB1bmRlZmluZWRgIGFzIGBjb250cm9sbGVkVmFsdWVgIGFuZFxuICogdXNlIHRoZSByZXR1cm5lZCBzZXR0ZXIgdG8gdXBkYXRlIGl0LlxuICpcbiAqIFdoZW4gdGhlIHZhbHVlIGlzIGNvbnRyb2xsZWQsIHBhc3MgdGhlIGNvbnRyb2xsZWQgdmFsdWUgYXMgc2Vjb25kXG4gKiBhcmd1bWVudCwgd2hpY2ggd2lsbCBiZSBhbHdheXMgcmV0dXJuZWQgYXMgYHZhbHVlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRWYWx1ZShkZWZhdWx0VmFsdWUsIGNvbnRyb2xsZWRWYWx1ZSkge1xuICAgIHZhciBfYSA9IFJlYWN0LnVzZVN0YXRlKGRlZmF1bHRWYWx1ZSksIHVuY29udHJvbGxlZFZhbHVlID0gX2FbMF0sIHNldFZhbHVlID0gX2FbMV07XG4gICAgdmFyIHZhbHVlID0gY29udHJvbGxlZFZhbHVlID09PSB1bmRlZmluZWQgPyB1bmNvbnRyb2xsZWRWYWx1ZSA6IGNvbnRyb2xsZWRWYWx1ZTtcbiAgICByZXR1cm4gW3ZhbHVlLCBzZXRWYWx1ZV07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VDb250cm9sbGVkVmFsdWUuanMubWFwIiwiaW1wb3J0IHsgYWRkTW9udGhzLCBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocywgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqIFJldHVybiB0aGUgaW5pdGlhbCBtb250aCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIG9wdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbE1vbnRoKGNvbnRleHQpIHtcbiAgICB2YXIgbW9udGggPSBjb250ZXh0Lm1vbnRoLCBkZWZhdWx0TW9udGggPSBjb250ZXh0LmRlZmF1bHRNb250aCwgdG9kYXkgPSBjb250ZXh0LnRvZGF5O1xuICAgIHZhciBpbml0aWFsTW9udGggPSBtb250aCB8fCBkZWZhdWx0TW9udGggfHwgdG9kYXkgfHwgbmV3IERhdGUoKTtcbiAgICB2YXIgdG9EYXRlID0gY29udGV4dC50b0RhdGUsIGZyb21EYXRlID0gY29udGV4dC5mcm9tRGF0ZSwgX2EgPSBjb250ZXh0Lm51bWJlck9mTW9udGhzLCBudW1iZXJPZk1vbnRocyA9IF9hID09PSB2b2lkIDAgPyAxIDogX2E7XG4gICAgLy8gRml4IHRoZSBpbml0aWFsTW9udGggaWYgaXMgYWZ0ZXIgdGhlIHRvLWRhdGVcbiAgICBpZiAodG9EYXRlICYmIGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzKHRvRGF0ZSwgaW5pdGlhbE1vbnRoKSA8IDApIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IC0xICogKG51bWJlck9mTW9udGhzIC0gMSk7XG4gICAgICAgIGluaXRpYWxNb250aCA9IGFkZE1vbnRocyh0b0RhdGUsIG9mZnNldCk7XG4gICAgfVxuICAgIC8vIEZpeCB0aGUgaW5pdGlhbE1vbnRoIGlmIGlzIGJlZm9yZSB0aGUgZnJvbS1kYXRlXG4gICAgaWYgKGZyb21EYXRlICYmIGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzKGluaXRpYWxNb250aCwgZnJvbURhdGUpIDwgMCkge1xuICAgICAgICBpbml0aWFsTW9udGggPSBmcm9tRGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0T2ZNb250aChpbml0aWFsTW9udGgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0SW5pdGlhbE1vbnRoLmpzLm1hcCIsImltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkVmFsdWUgfSBmcm9tICcuLi8uLi9ob29rcy91c2VDb250cm9sbGVkVmFsdWUnO1xuaW1wb3J0IHsgZ2V0SW5pdGlhbE1vbnRoIH0gZnJvbSAnLi91dGlscy9nZXRJbml0aWFsTW9udGgnO1xuLyoqIENvbnRyb2xzIHRoZSBuYXZpZ2F0aW9uIHN0YXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU5hdmlnYXRpb25TdGF0ZSgpIHtcbiAgICB2YXIgY29udGV4dCA9IHVzZURheVBpY2tlcigpO1xuICAgIHZhciBpbml0aWFsTW9udGggPSBnZXRJbml0aWFsTW9udGgoY29udGV4dCk7XG4gICAgdmFyIF9hID0gdXNlQ29udHJvbGxlZFZhbHVlKGluaXRpYWxNb250aCwgY29udGV4dC5tb250aCksIG1vbnRoID0gX2FbMF0sIHNldE1vbnRoID0gX2FbMV07XG4gICAgdmFyIGdvVG9Nb250aCA9IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmRpc2FibGVOYXZpZ2F0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRNb250aChkYXRlKTtcbiAgICB9O1xuICAgIHJldHVybiBbbW9udGgsIGdvVG9Nb250aF07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VOYXZpZ2F0aW9uU3RhdGUuanMubWFwIiwiaW1wb3J0IHsgYWRkTW9udGhzLCBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocywgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqXG4gKiBSZXR1cm4gdGhlIG1vbnRocyB0byBkaXNwbGF5IGluIHRoZSBjb21wb25lbnQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2ZcbiAqIG1vbnRocyBhbmQgdGhlIGZyb20vdG8gZGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3BsYXlNb250aHMobW9udGgsIF9hKSB7XG4gICAgdmFyIHJldmVyc2VNb250aHMgPSBfYS5yZXZlcnNlTW9udGhzLCBudW1iZXJPZk1vbnRocyA9IF9hLm51bWJlck9mTW9udGhzO1xuICAgIHZhciBzdGFydCA9IHN0YXJ0T2ZNb250aChtb250aCk7XG4gICAgdmFyIGVuZCA9IHN0YXJ0T2ZNb250aChhZGRNb250aHMoc3RhcnQsIG51bWJlck9mTW9udGhzKSk7XG4gICAgdmFyIG1vbnRoc0RpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyhlbmQsIHN0YXJ0KTtcbiAgICB2YXIgbW9udGhzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb250aHNEaWZmOyBpKyspIHtcbiAgICAgICAgdmFyIG5leHRNb250aCA9IGFkZE1vbnRocyhzdGFydCwgaSk7XG4gICAgICAgIG1vbnRocy5wdXNoKG5leHRNb250aCk7XG4gICAgfVxuICAgIGlmIChyZXZlcnNlTW9udGhzKVxuICAgICAgICBtb250aHMgPSBtb250aHMucmV2ZXJzZSgpO1xuICAgIHJldHVybiBtb250aHM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXREaXNwbGF5TW9udGhzLmpzLm1hcCIsImltcG9ydCB7IGFkZE1vbnRocywgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMsIHN0YXJ0T2ZNb250aCB9IGZyb20gJ2RhdGUtZm5zJztcbi8qKlxuICogUmV0dXJucyB0aGUgbmV4dCBtb250aCB0aGUgdXNlciBjYW4gbmF2aWdhdGUgdG8gYWNjb3JkaW5nIHRvIHRoZSBnaXZlblxuICogb3B0aW9ucy5cbiAqXG4gKiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBuZXh0IG1vbnRoIGlzIG5vdCBhbHdheXMgdGhlIG5leHQgY2FsZW5kYXIgbW9udGg6XG4gKlxuICogLSBpZiBhZnRlciB0aGUgYHRvRGF0ZWAgcmFuZ2UsIGlzIHVuZGVmaW5lZDtcbiAqIC0gaWYgdGhlIG5hdmlnYXRpb24gaXMgcGFnZWQsIGlzIHRoZSBudW1iZXIgb2YgbW9udGhzIGRpc3BsYXllZCBhaGVhZC5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0TW9udGgoc3RhcnRpbmdNb250aCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmRpc2FibGVOYXZpZ2F0aW9uKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHZhciB0b0RhdGUgPSBvcHRpb25zLnRvRGF0ZSwgcGFnZWROYXZpZ2F0aW9uID0gb3B0aW9ucy5wYWdlZE5hdmlnYXRpb24sIF9hID0gb3B0aW9ucy5udW1iZXJPZk1vbnRocywgbnVtYmVyT2ZNb250aHMgPSBfYSA9PT0gdm9pZCAwID8gMSA6IF9hO1xuICAgIHZhciBvZmZzZXQgPSBwYWdlZE5hdmlnYXRpb24gPyBudW1iZXJPZk1vbnRocyA6IDE7XG4gICAgdmFyIG1vbnRoID0gc3RhcnRPZk1vbnRoKHN0YXJ0aW5nTW9udGgpO1xuICAgIGlmICghdG9EYXRlKSB7XG4gICAgICAgIHJldHVybiBhZGRNb250aHMobW9udGgsIG9mZnNldCk7XG4gICAgfVxuICAgIHZhciBtb250aHNEaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHModG9EYXRlLCBzdGFydGluZ01vbnRoKTtcbiAgICBpZiAobW9udGhzRGlmZiA8IG51bWJlck9mTW9udGhzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIEp1bXAgZm9yd2FyZCBhcyB0aGUgbnVtYmVyIG9mIG1vbnRocyB3aGVuIHBhZ2VkIG5hdmlnYXRpb25cbiAgICByZXR1cm4gYWRkTW9udGhzKG1vbnRoLCBvZmZzZXQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0TmV4dE1vbnRoLmpzLm1hcCIsImltcG9ydCB7IGFkZE1vbnRocywgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMsIHN0YXJ0T2ZNb250aCB9IGZyb20gJ2RhdGUtZm5zJztcbi8qKlxuICogUmV0dXJucyB0aGUgbmV4dCBwcmV2aW91cyB0aGUgdXNlciBjYW4gbmF2aWdhdGUgdG8sIGFjY29yZGluZyB0byB0aGUgZ2l2ZW5cbiAqIG9wdGlvbnMuXG4gKlxuICogUGxlYXNlIG5vdGUgdGhhdCB0aGUgcHJldmlvdXMgbW9udGggaXMgbm90IGFsd2F5cyB0aGUgcHJldmlvdXMgY2FsZW5kYXJcbiAqIG1vbnRoOlxuICpcbiAqIC0gaWYgYmVmb3JlIHRoZSBgZnJvbURhdGVgIGRhdGUsIGlzIGB1bmRlZmluZWRgO1xuICogLSBpZiB0aGUgbmF2aWdhdGlvbiBpcyBwYWdlZCwgaXMgdGhlIG51bWJlciBvZiBtb250aHMgZGlzcGxheWVkIGJlZm9yZS5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c01vbnRoKHN0YXJ0aW5nTW9udGgsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5kaXNhYmxlTmF2aWdhdGlvbikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB2YXIgZnJvbURhdGUgPSBvcHRpb25zLmZyb21EYXRlLCBwYWdlZE5hdmlnYXRpb24gPSBvcHRpb25zLnBhZ2VkTmF2aWdhdGlvbiwgX2EgPSBvcHRpb25zLm51bWJlck9mTW9udGhzLCBudW1iZXJPZk1vbnRocyA9IF9hID09PSB2b2lkIDAgPyAxIDogX2E7XG4gICAgdmFyIG9mZnNldCA9IHBhZ2VkTmF2aWdhdGlvbiA/IG51bWJlck9mTW9udGhzIDogMTtcbiAgICB2YXIgbW9udGggPSBzdGFydE9mTW9udGgoc3RhcnRpbmdNb250aCk7XG4gICAgaWYgKCFmcm9tRGF0ZSkge1xuICAgICAgICByZXR1cm4gYWRkTW9udGhzKG1vbnRoLCAtb2Zmc2V0KTtcbiAgICB9XG4gICAgdmFyIG1vbnRoc0RpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyhtb250aCwgZnJvbURhdGUpO1xuICAgIGlmIChtb250aHNEaWZmIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gSnVtcCBiYWNrIGFzIHRoZSBudW1iZXIgb2YgbW9udGhzIHdoZW4gcGFnZWQgbmF2aWdhdGlvblxuICAgIHJldHVybiBhZGRNb250aHMobW9udGgsIC1vZmZzZXQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0UHJldmlvdXNNb250aC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vRGF5UGlja2VyJztcbmltcG9ydCB7IHVzZU5hdmlnYXRpb25TdGF0ZSB9IGZyb20gJy4vdXNlTmF2aWdhdGlvblN0YXRlJztcbmltcG9ydCB7IGdldERpc3BsYXlNb250aHMgfSBmcm9tICcuL3V0aWxzL2dldERpc3BsYXlNb250aHMnO1xuaW1wb3J0IHsgZ2V0TmV4dE1vbnRoIH0gZnJvbSAnLi91dGlscy9nZXROZXh0TW9udGgnO1xuaW1wb3J0IHsgZ2V0UHJldmlvdXNNb250aCB9IGZyb20gJy4vdXRpbHMvZ2V0UHJldmlvdXNNb250aCc7XG4vKipcbiAqIFRoZSBOYXZpZ2F0aW9uIGNvbnRleHQgc2hhcmVzIGRldGFpbHMgYWJvdXQgdGhlIG1vbnRocyBiZWluZyBuYXZpZ2F0ZWQgaW4gRGF5UGlja2VyLlxuICpcbiAqIEFjY2VzcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VOYXZpZ2F0aW9uXV0gaG9vay5cbiAqL1xuZXhwb3J0IHZhciBOYXZpZ2F0aW9uQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbi8qKiBQcm92aWRlcyB0aGUgdmFsdWVzIGZvciB0aGUgW1tOYXZpZ2F0aW9uQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE5hdmlnYXRpb25Qcm92aWRlcihwcm9wcykge1xuICAgIHZhciBjb250ZXh0ID0gdXNlRGF5UGlja2VyKCk7XG4gICAgdmFyIF9hID0gdXNlTmF2aWdhdGlvblN0YXRlKCksIG1vbnRoID0gX2FbMF0sIGdvVG9Nb250aCA9IF9hWzFdO1xuICAgIHZhciBkaXNwbGF5TW9udGhzID0gZ2V0RGlzcGxheU1vbnRocyhtb250aCwgY29udGV4dCk7XG4gICAgdmFyIG5leHRNb250aCA9IGdldE5leHRNb250aChtb250aCwgY29udGV4dCk7XG4gICAgdmFyIHByZXZpb3VzTW9udGggPSBnZXRQcmV2aW91c01vbnRoKG1vbnRoLCBjb250ZXh0KTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmF2aWdhdGlvbkNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHtcbiAgICAgICAgICAgIG1vbnRoOiBtb250aCxcbiAgICAgICAgICAgIGRpc3BsYXlNb250aHM6IGRpc3BsYXlNb250aHMsXG4gICAgICAgICAgICBnb1RvTW9udGg6IGdvVG9Nb250aCxcbiAgICAgICAgICAgIHByZXZpb3VzTW9udGg6IHByZXZpb3VzTW9udGgsXG4gICAgICAgICAgICBuZXh0TW9udGg6IG5leHRNb250aFxuICAgICAgICB9IH0sIHByb3BzLmNoaWxkcmVuKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZpZ2F0aW9uQ29udGV4dC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHQgfSBmcm9tICcuL05hdmlnYXRpb25Db250ZXh0Jztcbi8qKiBIb29rIHRvIGFjY2VzcyB0aGUgW1tOYXZpZ2F0aW9uQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU5hdmlnYXRpb24oKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KE5hdmlnYXRpb25Db250ZXh0KTtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1c2VOYXZpZ2F0aW9uIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBOYXZpZ2F0aW9uUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VOYXZpZ2F0aW9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc1NhbWVNb250aCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IE1vbnRoc0Ryb3Bkb3duIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Nb250aHNEcm9wZG93bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9OYXZpZ2F0aW9uJztcbmltcG9ydCB7IFllYXJzRHJvcGRvd24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1llYXJzRHJvcGRvd24nO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi8uLi9jb250ZXh0cy9OYXZpZ2F0aW9uJztcbi8qKlxuICogUmVuZGVyIHRoZSBjYXB0aW9uIG9mIGEgbW9udGgsIHdoaWNoIGluY2x1ZGVzIHRpdGxlIGFuZCBuYXZpZ2F0aW9uIGJ1dHRvbnMuXG4gKiBUaGUgY2FwdGlvbiBoYXMgYSBkaWZmZXJlbnQgbGF5b3V0IHdoZW4gc2V0dGluZyB0aGUgW1tEYXlQaWNrZXJQcm9wcy5jYXB0aW9uTGF5b3V0XV0gcHJvcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhcHRpb24ocHJvcHMpIHtcbiAgICB2YXIgX2E7XG4gICAgdmFyIGRpc3BsYXlNb250aCA9IHByb3BzLmRpc3BsYXlNb250aDtcbiAgICB2YXIgY29udGV4dCA9IHVzZURheVBpY2tlcigpO1xuICAgIHZhciBjbGFzc05hbWVzID0gY29udGV4dC5jbGFzc05hbWVzLCBudW1iZXJPZk1vbnRocyA9IGNvbnRleHQubnVtYmVyT2ZNb250aHMsIGRpc2FibGVOYXZpZ2F0aW9uID0gY29udGV4dC5kaXNhYmxlTmF2aWdhdGlvbiwgc3R5bGVzID0gY29udGV4dC5zdHlsZXMsIGNhcHRpb25MYXlvdXQgPSBjb250ZXh0LmNhcHRpb25MYXlvdXQsIG9uTW9udGhDaGFuZ2UgPSBjb250ZXh0Lm9uTW9udGhDaGFuZ2UsIGRpciA9IGNvbnRleHQuZGlyLCBDYXB0aW9uTGFiZWwgPSBjb250ZXh0LmNvbXBvbmVudHMuQ2FwdGlvbkxhYmVsO1xuICAgIHZhciBfYiA9IHVzZU5hdmlnYXRpb24oKSwgcHJldmlvdXNNb250aCA9IF9iLnByZXZpb3VzTW9udGgsIG5leHRNb250aCA9IF9iLm5leHRNb250aCwgZ29Ub01vbnRoID0gX2IuZ29Ub01vbnRoLCBkaXNwbGF5TW9udGhzID0gX2IuZGlzcGxheU1vbnRocztcbiAgICB2YXIgaGFuZGxlUHJldmlvdXNDbGljayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFwcmV2aW91c01vbnRoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBnb1RvTW9udGgocHJldmlvdXNNb250aCk7XG4gICAgICAgIG9uTW9udGhDaGFuZ2UgPT09IG51bGwgfHwgb25Nb250aENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Nb250aENoYW5nZShwcmV2aW91c01vbnRoKTtcbiAgICB9O1xuICAgIHZhciBoYW5kbGVOZXh0Q2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghbmV4dE1vbnRoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBnb1RvTW9udGgobmV4dE1vbnRoKTtcbiAgICAgICAgb25Nb250aENoYW5nZSA9PT0gbnVsbCB8fCBvbk1vbnRoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk1vbnRoQ2hhbmdlKG5leHRNb250aCk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlTW9udGhDaGFuZ2UgPSBmdW5jdGlvbiAobmV3TW9udGgpIHtcbiAgICAgICAgZ29Ub01vbnRoKG5ld01vbnRoKTtcbiAgICAgICAgb25Nb250aENoYW5nZSA9PT0gbnVsbCB8fCBvbk1vbnRoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk1vbnRoQ2hhbmdlKG5ld01vbnRoKTtcbiAgICB9O1xuICAgIHZhciBkaXNwbGF5SW5kZXggPSBkaXNwbGF5TW9udGhzLmZpbmRJbmRleChmdW5jdGlvbiAobW9udGgpIHtcbiAgICAgICAgcmV0dXJuIGlzU2FtZU1vbnRoKGRpc3BsYXlNb250aCwgbW9udGgpO1xuICAgIH0pO1xuICAgIHZhciBpc0ZpcnN0ID0gZGlzcGxheUluZGV4ID09PSAwO1xuICAgIHZhciBpc0xhc3QgPSBkaXNwbGF5SW5kZXggPT09IGRpc3BsYXlNb250aHMubGVuZ3RoIC0gMTtcbiAgICBpZiAoZGlyID09PSAncnRsJykge1xuICAgICAgICBfYSA9IFtpc0ZpcnN0LCBpc0xhc3RdLCBpc0xhc3QgPSBfYVswXSwgaXNGaXJzdCA9IF9hWzFdO1xuICAgIH1cbiAgICB2YXIgaGlkZU5leHQgPSBudW1iZXJPZk1vbnRocyA+IDEgJiYgKGlzRmlyc3QgfHwgIWlzTGFzdCk7XG4gICAgdmFyIGhpZGVQcmV2aW91cyA9IG51bWJlck9mTW9udGhzID4gMSAmJiAoaXNMYXN0IHx8ICFpc0ZpcnN0KTtcbiAgICB2YXIgY2FwdGlvbkxhYmVsID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FwdGlvbkxhYmVsLCB7IGlkOiBwcm9wcy5pZCwgZGlzcGxheU1vbnRoOiBkaXNwbGF5TW9udGggfSkpO1xuICAgIHZhciBjYXB0aW9uQ29udGVudDtcbiAgICBpZiAoZGlzYWJsZU5hdmlnYXRpb24pIHtcbiAgICAgICAgY2FwdGlvbkNvbnRlbnQgPSBjYXB0aW9uTGFiZWw7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNhcHRpb25MYXlvdXQgPT09ICdkcm9wZG93bicpIHtcbiAgICAgICAgY2FwdGlvbkNvbnRlbnQgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5jYXB0aW9uX2Ryb3Bkb3ducywgc3R5bGU6IHN0eWxlcy5jYXB0aW9uX2Ryb3Bkb3ducyB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy52aGlkZGVuIH0sIGNhcHRpb25MYWJlbCksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE1vbnRoc0Ryb3Bkb3duLCB7IG9uQ2hhbmdlOiBoYW5kbGVNb250aENoYW5nZSwgZGlzcGxheU1vbnRoOiBkaXNwbGF5TW9udGggfSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFllYXJzRHJvcGRvd24sIHsgb25DaGFuZ2U6IGhhbmRsZU1vbnRoQ2hhbmdlLCBkaXNwbGF5TW9udGg6IGRpc3BsYXlNb250aCB9KSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY2FwdGlvbkNvbnRlbnQgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgICAgIGNhcHRpb25MYWJlbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmF2aWdhdGlvbiwgeyBkaXNwbGF5TW9udGg6IGRpc3BsYXlNb250aCwgaGlkZU5leHQ6IGhpZGVOZXh0LCBoaWRlUHJldmlvdXM6IGhpZGVQcmV2aW91cywgbmV4dE1vbnRoOiBuZXh0TW9udGgsIHByZXZpb3VzTW9udGg6IHByZXZpb3VzTW9udGgsIG9uUHJldmlvdXNDbGljazogaGFuZGxlUHJldmlvdXNDbGljaywgb25OZXh0Q2xpY2s6IGhhbmRsZU5leHRDbGljayB9KSkpO1xuICAgIH1cbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMuY2FwdGlvbiwgc3R5bGU6IHN0eWxlcy5jYXB0aW9uIH0sIGNhcHRpb25Db250ZW50KSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DYXB0aW9uLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuLyoqIFJlbmRlciB0aGUgY2FwdGlvbiBmb3IgdGhlIGRpc3BsYXllZCBtb250aC4gVGhpcyBjb21wb25lbnQgaXMgdXNlZCB3aGVuIGBjYXB0aW9uTGF5b3V0PVwiYnV0dG9uc1wiYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDYXB0aW9uTGFiZWwocHJvcHMpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgbG9jYWxlID0gX2EubG9jYWxlLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGVzID0gX2Euc3R5bGVzLCBmb3JtYXRDYXB0aW9uID0gX2EuZm9ybWF0dGVycy5mb3JtYXRDYXB0aW9uO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImgyXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmNhcHRpb25fbGFiZWwsIHN0eWxlOiBzdHlsZXMuY2FwdGlvbl9sYWJlbCwgXCJhcmlhLWxpdmVcIjogXCJwb2xpdGVcIiwgXCJhcmlhLWF0b21pY1wiOiBcInRydWVcIiwgaWQ6IHByb3BzLmlkIH0sIGZvcm1hdENhcHRpb24ocHJvcHMuZGlzcGxheU1vbnRoLCB7IGxvY2FsZTogbG9jYWxlIH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DYXB0aW9uTGFiZWwuanMubWFwIiwiLyoqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBwcm9wcyBhcmUgb2YgdHlwZSBbW0RheVBpY2tlck11bHRpcGxlXV0uICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXlQaWNrZXJNdWx0aXBsZShwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy5tb2RlID09PSAnbXVsdGlwbGUnO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5UGlja2VyTXVsdGlwbGUuanMubWFwIiwiaW1wb3J0IHsgX19zcHJlYWRBcnJheSB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzU2FtZURheSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGlzRGF5UGlja2VyTXVsdGlwbGUgfSBmcm9tICcuLi8uLi90eXBlcy9EYXlQaWNrZXJNdWx0aXBsZSc7XG4vKipcbiAqIFRoZSBTZWxlY3RNdWx0aXBsZSBjb250ZXh0IHNoYXJlcyBkZXRhaWxzIGFib3V0IHRoZSBzZWxlY3RlZCBkYXlzIHdoZW4gaW5cbiAqIG11bHRpcGxlIHNlbGVjdGlvbiBtb2RlLlxuICpcbiAqIEFjY2VzcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VTZWxlY3RNdWx0aXBsZV1dIGhvb2suXG4gKi9cbmV4cG9ydCB2YXIgU2VsZWN0TXVsdGlwbGVDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqIFByb3ZpZGVzIHRoZSB2YWx1ZXMgZm9yIHRoZSBbW1NlbGVjdE11bHRpcGxlQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdE11bHRpcGxlUHJvdmlkZXIocHJvcHMpIHtcbiAgICBpZiAoIWlzRGF5UGlja2VyTXVsdGlwbGUocHJvcHMuaW5pdGlhbFByb3BzKSkge1xuICAgICAgICB2YXIgZW1wdHlDb250ZXh0VmFsdWUgPSB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbW9kaWZpZXJzOiB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGVtcHR5Q29udGV4dFZhbHVlIH0sIHByb3BzLmNoaWxkcmVuKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZVByb3ZpZGVySW50ZXJuYWwsIHsgaW5pdGlhbFByb3BzOiBwcm9wcy5pbml0aWFsUHJvcHMsIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0TXVsdGlwbGVQcm92aWRlckludGVybmFsKF9hKSB7XG4gICAgdmFyIGluaXRpYWxQcm9wcyA9IF9hLmluaXRpYWxQcm9wcywgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbjtcbiAgICB2YXIgc2VsZWN0ZWQgPSBpbml0aWFsUHJvcHMuc2VsZWN0ZWQ7XG4gICAgdmFyIG9uRGF5Q2xpY2sgPSBmdW5jdGlvbiAoZGF5LCBtb2RpZmllcnMsIGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9hID0gaW5pdGlhbFByb3BzLm9uRGF5Q2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGluaXRpYWxQcm9wcywgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgICAgICB2YXIgaXNNaW5TZWxlY3RlZCA9IEJvb2xlYW4oaW5pdGlhbFByb3BzLm1pbiAmJlxuICAgICAgICAgICAgbW9kaWZpZXJzLnNlbGVjdGVkICYmXG4gICAgICAgICAgICBzZWxlY3RlZCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWQubGVuZ3RoID09PSBpbml0aWFsUHJvcHMubWluKTtcbiAgICAgICAgaWYgKGlzTWluU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNNYXhTZWxlY3RlZCA9IEJvb2xlYW4oaW5pdGlhbFByb3BzLm1heCAmJlxuICAgICAgICAgICAgIW1vZGlmaWVycy5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkLmxlbmd0aCA9PT0gaW5pdGlhbFByb3BzLm1heCk7XG4gICAgICAgIGlmIChpc01heFNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRheXMgPSBzZWxlY3RlZCA/IF9fc3ByZWFkQXJyYXkoW10sIHNlbGVjdGVkLCB0cnVlKSA6IFtdO1xuICAgICAgICBpZiAobW9kaWZpZXJzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBkYXlzLmZpbmRJbmRleChmdW5jdGlvbiAoc2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTYW1lRGF5KGRheSwgc2VsZWN0ZWREYXkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkYXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkYXlzLnB1c2goZGF5KTtcbiAgICAgICAgfVxuICAgICAgICAoX2IgPSBpbml0aWFsUHJvcHMub25TZWxlY3QpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKGluaXRpYWxQcm9wcywgZGF5cywgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIG1vZGlmaWVycyA9IHtcbiAgICAgICAgZGlzYWJsZWQ6IFtdXG4gICAgfTtcbiAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgbW9kaWZpZXJzLmRpc2FibGVkID0gW1xuICAgICAgICAgICAgZnVuY3Rpb24gZGlzYWJsZURheShkYXkpIHtcbiAgICAgICAgICAgICAgICB2YXIgaXNNYXhTZWxlY3RlZCA9IGluaXRpYWxQcm9wcy5tYXggJiZcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQubGVuZ3RoID4gaW5pdGlhbFByb3BzLm1heCAtIDE7XG4gICAgICAgICAgICAgICAgdmFyIGlzU2VsZWN0ZWQgPSBzZWxlY3RlZCA9PT0gbnVsbCB8fCBzZWxlY3RlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VsZWN0ZWQuc29tZShmdW5jdGlvbiAoc2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzU2FtZURheShzZWxlY3RlZERheSwgZGF5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbihpc01heFNlbGVjdGVkICYmICFpc1NlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG4gICAgdmFyIGNvbnRleHRWYWx1ZSA9IHsgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBvbkRheUNsaWNrOiBvbkRheUNsaWNrLCBtb2RpZmllcnM6IG1vZGlmaWVycyB9O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LCBjaGlsZHJlbikpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VsZWN0TXVsdGlwbGVDb250ZXh0LmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3RNdWx0aXBsZUNvbnRleHQgfSBmcm9tICcuL1NlbGVjdE11bHRpcGxlQ29udGV4dCc7XG4vKiogSG9vayB0byBhY2Nlc3MgdGhlIFtbU2VsZWN0TXVsdGlwbGVDb250ZXh0XV0uICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0TXVsdGlwbGUoKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFNlbGVjdE11bHRpcGxlQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlU2VsZWN0TXVsdGlwbGUgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNlbGVjdE11bHRpcGxlUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VTZWxlY3RNdWx0aXBsZS5qcy5tYXAiLCIvKiogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHByb3BzIGFyZSBvZiB0eXBlIFtbRGF5UGlja2VyUmFuZ2VdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RheVBpY2tlclJhbmdlKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLm1vZGUgPT09ICdyYW5nZSc7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXlQaWNrZXJSYW5nZS5qcy5tYXAiLCJpbXBvcnQgeyBpc0FmdGVyLCBpc0JlZm9yZSwgaXNTYW1lRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqXG4gKiBBZGQgYSBkYXkgdG8gYW4gZXhpc3RpbmcgcmFuZ2UuXG4gKlxuICogVGhlIHJldHVybmVkIHJhbmdlIHRha2VzIGluIGFjY291bnQgdGhlIGB1bmRlZmluZWRgIHZhbHVlcyBhbmQgaWYgdGhlIGFkZGVkXG4gKiBkYXkgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSByYW5nZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvUmFuZ2UoZGF5LCByYW5nZSkge1xuICAgIHZhciBfYSA9IHJhbmdlIHx8IHt9LCBmcm9tID0gX2EuZnJvbSwgdG8gPSBfYS50bztcbiAgICBpZiAoIWZyb20pIHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogZGF5LCB0bzogZGF5IH07XG4gICAgfVxuICAgIGlmICghdG8gJiYgaXNTYW1lRGF5KGZyb20sIGRheSkpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCF0byAmJiBpc0JlZm9yZShkYXksIGZyb20pKSB7XG4gICAgICAgIHJldHVybiB7IGZyb206IGRheSwgdG86IGZyb20gfTtcbiAgICB9XG4gICAgaWYgKCF0bykge1xuICAgICAgICByZXR1cm4geyBmcm9tOiBmcm9tLCB0bzogZGF5IH07XG4gICAgfVxuICAgIGlmIChpc1NhbWVEYXkodG8sIGRheSkgJiYgaXNTYW1lRGF5KGZyb20sIGRheSkpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKGlzU2FtZURheSh0bywgZGF5KSkge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB0bywgdG86IHRvIH07XG4gICAgfVxuICAgIGlmIChpc1NhbWVEYXkoZnJvbSwgZGF5KSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoaXNBZnRlcihmcm9tLCBkYXkpKSB7XG4gICAgICAgIHJldHVybiB7IGZyb206IGRheSwgdG86IHRvIH07XG4gICAgfVxuICAgIHJldHVybiB7IGZyb206IGZyb20sIHRvOiBkYXkgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZFRvUmFuZ2UuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cywgaXNBZnRlciwgaXNCZWZvcmUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclJhbmdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvRGF5UGlja2VyUmFuZ2UnO1xuaW1wb3J0IHsgYWRkVG9SYW5nZSB9IGZyb20gJy4vdXRpbHMvYWRkVG9SYW5nZSc7XG4vKipcbiAqIFRoZSBTZWxlY3RSYW5nZSBjb250ZXh0IHNoYXJlcyBkZXRhaWxzIGFib3V0IHRoZSBzZWxlY3RlZCBkYXlzIHdoZW4gaW5cbiAqIHJhbmdlIHNlbGVjdGlvbiBtb2RlLlxuICpcbiAqIEFjY2VzcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VTZWxlY3RSYW5nZV1dIGhvb2suXG4gKi9cbmV4cG9ydCB2YXIgU2VsZWN0UmFuZ2VDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqIFByb3ZpZGVzIHRoZSB2YWx1ZXMgZm9yIHRoZSBbW1NlbGVjdFJhbmdlUHJvdmlkZXJdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3RSYW5nZVByb3ZpZGVyKHByb3BzKSB7XG4gICAgaWYgKCFpc0RheVBpY2tlclJhbmdlKHByb3BzLmluaXRpYWxQcm9wcykpIHtcbiAgICAgICAgdmFyIGVtcHR5Q29udGV4dFZhbHVlID0ge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG1vZGlmaWVyczoge1xuICAgICAgICAgICAgICAgIHJhbmdlX3N0YXJ0OiBbXSxcbiAgICAgICAgICAgICAgICByYW5nZV9lbmQ6IFtdLFxuICAgICAgICAgICAgICAgIHJhbmdlX21pZGRsZTogW10sXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RSYW5nZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGVtcHR5Q29udGV4dFZhbHVlIH0sIHByb3BzLmNoaWxkcmVuKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RSYW5nZVByb3ZpZGVySW50ZXJuYWwsIHsgaW5pdGlhbFByb3BzOiBwcm9wcy5pbml0aWFsUHJvcHMsIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0UmFuZ2VQcm92aWRlckludGVybmFsKF9hKSB7XG4gICAgdmFyIGluaXRpYWxQcm9wcyA9IF9hLmluaXRpYWxQcm9wcywgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbjtcbiAgICB2YXIgc2VsZWN0ZWQgPSBpbml0aWFsUHJvcHMuc2VsZWN0ZWQ7XG4gICAgdmFyIG1pbiA9IGluaXRpYWxQcm9wcy5taW47XG4gICAgdmFyIG1heCA9IGluaXRpYWxQcm9wcy5tYXg7XG4gICAgdmFyIG9uRGF5Q2xpY2sgPSBmdW5jdGlvbiAoZGF5LCBtb2RpZmllcnMsIGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9hID0gaW5pdGlhbFByb3BzLm9uRGF5Q2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGluaXRpYWxQcm9wcywgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgICAgICB2YXIgbmV3VmFsdWUgPSBhZGRUb1JhbmdlKGRheSwgc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoKG1pbiB8fCBtYXgpICYmXG4gICAgICAgICAgICBzZWxlY3RlZCAmJlxuICAgICAgICAgICAgKG5ld1ZhbHVlID09PSBudWxsIHx8IG5ld1ZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXdWYWx1ZS50bykgJiZcbiAgICAgICAgICAgIG5ld1ZhbHVlLmZyb20gJiZcbiAgICAgICAgICAgIG5ld1ZhbHVlLmZyb20gIT09IG5ld1ZhbHVlLnRvKSB7XG4gICAgICAgICAgICB2YXIgZGlmZiA9IE1hdGguYWJzKGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhuZXdWYWx1ZSA9PT0gbnVsbCB8fCBuZXdWYWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV3VmFsdWUudG8sIG5ld1ZhbHVlID09PSBudWxsIHx8IG5ld1ZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXdWYWx1ZS5mcm9tKSk7XG4gICAgICAgICAgICBpZiAobWluICYmIGRpZmYgPCBtaW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF4ICYmIGRpZmYgPj0gbWF4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIChfYiA9IGluaXRpYWxQcm9wcy5vblNlbGVjdCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoaW5pdGlhbFByb3BzLCBuZXdWYWx1ZSwgZGF5LCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIG1vZGlmaWVycyA9IHtcbiAgICAgICAgcmFuZ2Vfc3RhcnQ6IFtdLFxuICAgICAgICByYW5nZV9lbmQ6IFtdLFxuICAgICAgICByYW5nZV9taWRkbGU6IFtdLFxuICAgICAgICBkaXNhYmxlZDogW11cbiAgICB9O1xuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICBpZiAoc2VsZWN0ZWQuZnJvbSkge1xuICAgICAgICAgICAgbW9kaWZpZXJzLnJhbmdlX3N0YXJ0ID0gW3NlbGVjdGVkLmZyb21dO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkLnRvKSB7XG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzLnJhbmdlX21pZGRsZSA9IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXI6IHNlbGVjdGVkLmZyb20sXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmU6IHNlbGVjdGVkLnRvXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGlmIChtYXggfHwgbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVycy5kaXNhYmxlZCA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC50byAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5mcm9tICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQmVmb3JlKGRhdGUsIHNlbGVjdGVkLmZyb20pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHNlbGVjdGVkLnRvLCBkYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZmYgPj0gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRvICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLmZyb20gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBZnRlcihkYXRlLCBzZWxlY3RlZC50bykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoZGF0ZSwgc2VsZWN0ZWQuZnJvbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWZmID49IG1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiAmJiBzZWxlY3RlZC5mcm9tICYmIGlzQmVmb3JlKGRhdGUsIHNlbGVjdGVkLmZyb20pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHNlbGVjdGVkLmZyb20sIGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiA8IG1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC50byAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5mcm9tICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQWZ0ZXIoZGF0ZSwgc2VsZWN0ZWQudG8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRhdGUsIHNlbGVjdGVkLmZyb20pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiA8IG1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb2RpZmllcnMucmFuZ2VfZW5kID0gW3NlbGVjdGVkLnRvXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZGlmaWVycy5yYW5nZV9lbmQgPSBbc2VsZWN0ZWQuZnJvbV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdFJhbmdlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyBzZWxlY3RlZDogc2VsZWN0ZWQsIG9uRGF5Q2xpY2s6IG9uRGF5Q2xpY2ssIG1vZGlmaWVyczogbW9kaWZpZXJzIH0gfSwgY2hpbGRyZW4pKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNlbGVjdFJhbmdlQ29udGV4dC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU2VsZWN0UmFuZ2VDb250ZXh0IH0gZnJvbSAnLi9TZWxlY3RSYW5nZUNvbnRleHQnO1xuLyoqIEhvb2sgdG8gYWNjZXNzIHRoZSBbW1NlbGVjdFJhbmdlQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdFJhbmdlKCkge1xuICAgIHZhciBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChTZWxlY3RSYW5nZUNvbnRleHQpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNlbGVjdFJhbmdlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBTZWxlY3RSYW5nZVByb3ZpZGVyJyk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlU2VsZWN0UmFuZ2UuanMubWFwIiwiLyoqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBwcm9wcyBhcmUgb2YgdHlwZSBbW0RheVBpY2tlclNpbmdsZV1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF5UGlja2VyU2luZ2xlKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLm1vZGUgPT09ICdzaW5nbGUnO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5UGlja2VyU2luZ2xlLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclNpbmdsZSB9IGZyb20gJy4uLy4uL3R5cGVzL0RheVBpY2tlclNpbmdsZSc7XG4vKipcbiAqIFRoZSBTZWxlY3RTaW5nbGUgY29udGV4dCBzaGFyZXMgZGV0YWlscyBhYm91dCB0aGUgc2VsZWN0ZWQgZGF5cyB3aGVuIGluXG4gKiBzaW5nbGUgc2VsZWN0aW9uIG1vZGUuXG4gKlxuICogQWNjZXNzIHRoaXMgY29udGV4dCBmcm9tIHRoZSBbW3VzZVNlbGVjdFNpbmdsZV1dIGhvb2suXG4gKi9cbmV4cG9ydCB2YXIgU2VsZWN0U2luZ2xlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbi8qKiBQcm92aWRlcyB0aGUgdmFsdWVzIGZvciB0aGUgW1tTZWxlY3RTaW5nbGVQcm92aWRlcl1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdFNpbmdsZVByb3ZpZGVyKHByb3BzKSB7XG4gICAgaWYgKCFpc0RheVBpY2tlclNpbmdsZShwcm9wcy5pbml0aWFsUHJvcHMpKSB7XG4gICAgICAgIHZhciBlbXB0eUNvbnRleHRWYWx1ZSA9IHtcbiAgICAgICAgICAgIHNlbGVjdGVkOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdFNpbmdsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGVtcHR5Q29udGV4dFZhbHVlIH0sIHByb3BzLmNoaWxkcmVuKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RTaW5nbGVQcm92aWRlckludGVybmFsLCB7IGluaXRpYWxQcm9wczogcHJvcHMuaW5pdGlhbFByb3BzLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdFNpbmdsZVByb3ZpZGVySW50ZXJuYWwoX2EpIHtcbiAgICB2YXIgaW5pdGlhbFByb3BzID0gX2EuaW5pdGlhbFByb3BzLCBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuO1xuICAgIHZhciBvbkRheUNsaWNrID0gZnVuY3Rpb24gKGRheSwgZGF5TW9kaWZpZXJzLCBlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChkYXlNb2RpZmllcnMuc2VsZWN0ZWQgJiYgIWluaXRpYWxQcm9wcy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgKF9hID0gaW5pdGlhbFByb3BzLm9uU2VsZWN0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChpbml0aWFsUHJvcHMsIHVuZGVmaW5lZCwgZGF5LCBkYXlNb2RpZmllcnMsIGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYiA9IGluaXRpYWxQcm9wcy5vblNlbGVjdCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoaW5pdGlhbFByb3BzLCBkYXksIGRheSwgZGF5TW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIHZhciBjb250ZXh0VmFsdWUgPSB7XG4gICAgICAgIHNlbGVjdGVkOiBpbml0aWFsUHJvcHMuc2VsZWN0ZWQsXG4gICAgICAgIG9uRGF5Q2xpY2s6IG9uRGF5Q2xpY2tcbiAgICB9O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RTaW5nbGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSwgY2hpbGRyZW4pKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNlbGVjdFNpbmdsZUNvbnRleHQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNlbGVjdFNpbmdsZUNvbnRleHQgfSBmcm9tICcuL1NlbGVjdFNpbmdsZUNvbnRleHQnO1xuLyoqIEhvb2sgdG8gYWNjZXNzIHRoZSBbW1NlbGVjdFNpbmdsZUNvbnRleHRdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RTaW5nbGUoKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFNlbGVjdFNpbmdsZUNvbnRleHQpO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNlbGVjdFNpbmdsZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgU2VsZWN0U2luZ2xlUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VTZWxlY3RTaW5nbGUuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIHRvTWF0Y2hlckFycmF5KG1vZGlmaWVyRnJvbVByb3ApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RpZmllckZyb21Qcm9wKSkge1xuICAgICAgICByZXR1cm4gbW9kaWZpZXJGcm9tUHJvcDtcbiAgICB9XG4gICAgZWxzZSBpZiAobW9kaWZpZXJGcm9tUHJvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbbW9kaWZpZXJGcm9tUHJvcF07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dG9NYXRjaGVyQXJyYXkuanMubWFwIiwiaW1wb3J0IHsgdG9NYXRjaGVyQXJyYXkgfSBmcm9tICcuL3RvTWF0Y2hlckFycmF5Jztcbi8qKiBSZXR1cm4gdGhlIFtbQ3VzdG9tTW9kaWZpZXJzXV0gZnJvbSB0aGUgRGF5UGlja2VyIGNvbnRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VzdG9tTW9kaWZpZXJzKGRheVBpY2tlcikge1xuICAgIHZhciBjdXN0b21Nb2RpZmllcnMgPSB7fTtcbiAgICBPYmplY3QuZW50cmllcyhkYXlQaWNrZXIubW9kaWZpZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICB2YXIgbW9kaWZpZXIgPSBfYVswXSwgbWF0Y2hlciA9IF9hWzFdO1xuICAgICAgICBjdXN0b21Nb2RpZmllcnNbbW9kaWZpZXJdID0gdG9NYXRjaGVyQXJyYXkobWF0Y2hlcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGN1c3RvbU1vZGlmaWVycztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldEN1c3RvbU1vZGlmaWVycy5qcy5tYXAiLCIvKiogVGhlIG1vZGlmaWVycyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkgYnkgRGF5UGlja2VyLiAqL1xuZXhwb3J0IHZhciBJbnRlcm5hbE1vZGlmaWVyO1xuKGZ1bmN0aW9uIChJbnRlcm5hbE1vZGlmaWVyKSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRpc2FibGVkIGRheXMsIHVzaW5nIHRoZSBgZGlzYWJsZWRgIHByb3AuICovXG4gICAgSW50ZXJuYWxNb2RpZmllcltcIkRpc2FibGVkXCJdID0gXCJkaXNhYmxlZFwiO1xuICAgIC8qKiBOYW1lIG9mIHRoZSBtb2RpZmllciBhcHBsaWVkIHRvIHRoZSBzZWxlY3RlZCBkYXlzIHVzaW5nIHRoZSBgc2VsZWN0ZWRgIHByb3ApLiAqL1xuICAgIEludGVybmFsTW9kaWZpZXJbXCJTZWxlY3RlZFwiXSA9IFwic2VsZWN0ZWRcIjtcbiAgICAvKiogTmFtZSBvZiB0aGUgbW9kaWZpZXIgYXBwbGllZCB0byB0aGUgaGlkZGVuIGRheXMgdXNpbmcgdGhlIGBoaWRkZW5gIHByb3ApLiAqL1xuICAgIEludGVybmFsTW9kaWZpZXJbXCJIaWRkZW5cIl0gPSBcImhpZGRlblwiO1xuICAgIC8qKiBOYW1lIG9mIHRoZSBtb2RpZmllciBhcHBsaWVkIHRvIHRoZSBkYXkgc3BlY2lmaWVkIHVzaW5nIHRoZSBgdG9kYXlgIHByb3ApLiAqL1xuICAgIEludGVybmFsTW9kaWZpZXJbXCJUb2RheVwiXSA9IFwidG9kYXlcIjtcbiAgICAvKiogVGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRheSBzdGFydGluZyBhIHNlbGVjdGVkIHJhbmdlLCB3aGVuIGluIHJhbmdlIHNlbGVjdGlvbiBtb2RlLiAgKi9cbiAgICBJbnRlcm5hbE1vZGlmaWVyW1wiUmFuZ2VTdGFydFwiXSA9IFwicmFuZ2Vfc3RhcnRcIjtcbiAgICAvKiogVGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRheSBlbmRpbmcgYSBzZWxlY3RlZCByYW5nZSwgd2hlbiBpbiByYW5nZSBzZWxlY3Rpb24gbW9kZS4gICovXG4gICAgSW50ZXJuYWxNb2RpZmllcltcIlJhbmdlRW5kXCJdID0gXCJyYW5nZV9lbmRcIjtcbiAgICAvKiogVGhlIG1vZGlmaWVyIGFwcGxpZWQgdG8gdGhlIGRheXMgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIHRoZSBlbmQgb2YgYSBzZWxlY3RlZCByYW5nZSwgd2hlbiBpbiByYW5nZSBzZWxlY3Rpb24gbW9kZS4gICovXG4gICAgSW50ZXJuYWxNb2RpZmllcltcIlJhbmdlTWlkZGxlXCJdID0gXCJyYW5nZV9taWRkbGVcIjtcbn0pKEludGVybmFsTW9kaWZpZXIgfHwgKEludGVybmFsTW9kaWZpZXIgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kaWZpZXJzLmpzLm1hcCIsImltcG9ydCB7IGlzRGF5UGlja2VyTXVsdGlwbGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9EYXlQaWNrZXJNdWx0aXBsZSc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclJhbmdlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvRGF5UGlja2VyUmFuZ2UnO1xuaW1wb3J0IHsgSW50ZXJuYWxNb2RpZmllciB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL01vZGlmaWVycyc7XG5pbXBvcnQgeyB0b01hdGNoZXJBcnJheSB9IGZyb20gJy4vdG9NYXRjaGVyQXJyYXknO1xuLyoqIFJldHVybiB0aGUgW1tJbnRlcm5hbE1vZGlmaWVyc11dIGZyb20gdGhlIERheVBpY2tlciBhbmQgc2VsZWN0IGNvbnRleHRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJzKGRheVBpY2tlciwgc2VsZWN0TXVsdGlwbGUsIHNlbGVjdFJhbmdlKSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBpbnRlcm5hbE1vZGlmaWVycyA9IChfYSA9IHt9LFxuICAgICAgICBfYVtJbnRlcm5hbE1vZGlmaWVyLlNlbGVjdGVkXSA9IHRvTWF0Y2hlckFycmF5KGRheVBpY2tlci5zZWxlY3RlZCksXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuRGlzYWJsZWRdID0gdG9NYXRjaGVyQXJyYXkoZGF5UGlja2VyLmRpc2FibGVkKSxcbiAgICAgICAgX2FbSW50ZXJuYWxNb2RpZmllci5IaWRkZW5dID0gdG9NYXRjaGVyQXJyYXkoZGF5UGlja2VyLmhpZGRlbiksXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuVG9kYXldID0gW2RheVBpY2tlci50b2RheV0sXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuUmFuZ2VFbmRdID0gW10sXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuUmFuZ2VNaWRkbGVdID0gW10sXG4gICAgICAgIF9hW0ludGVybmFsTW9kaWZpZXIuUmFuZ2VTdGFydF0gPSBbXSxcbiAgICAgICAgX2EpO1xuICAgIGlmIChkYXlQaWNrZXIuZnJvbURhdGUpIHtcbiAgICAgICAgaW50ZXJuYWxNb2RpZmllcnMuZGlzYWJsZWQucHVzaCh7IGJlZm9yZTogZGF5UGlja2VyLmZyb21EYXRlIH0pO1xuICAgIH1cbiAgICBpZiAoZGF5UGlja2VyLnRvRGF0ZSkge1xuICAgICAgICBpbnRlcm5hbE1vZGlmaWVycy5kaXNhYmxlZC5wdXNoKHsgYWZ0ZXI6IGRheVBpY2tlci50b0RhdGUgfSk7XG4gICAgfVxuICAgIGlmIChpc0RheVBpY2tlck11bHRpcGxlKGRheVBpY2tlcikpIHtcbiAgICAgICAgaW50ZXJuYWxNb2RpZmllcnMuZGlzYWJsZWQgPSBpbnRlcm5hbE1vZGlmaWVycy5kaXNhYmxlZC5jb25jYXQoc2VsZWN0TXVsdGlwbGUubW9kaWZpZXJzLmRpc2FibGVkKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNEYXlQaWNrZXJSYW5nZShkYXlQaWNrZXIpKSB7XG4gICAgICAgIGludGVybmFsTW9kaWZpZXJzLmRpc2FibGVkID0gaW50ZXJuYWxNb2RpZmllcnMuZGlzYWJsZWQuY29uY2F0KHNlbGVjdFJhbmdlLm1vZGlmaWVycy5kaXNhYmxlZCk7XG4gICAgICAgIGludGVybmFsTW9kaWZpZXJzLnJhbmdlX3N0YXJ0ID0gc2VsZWN0UmFuZ2UubW9kaWZpZXJzLnJhbmdlX3N0YXJ0O1xuICAgICAgICBpbnRlcm5hbE1vZGlmaWVycy5yYW5nZV9taWRkbGUgPSBzZWxlY3RSYW5nZS5tb2RpZmllcnMucmFuZ2VfbWlkZGxlO1xuICAgICAgICBpbnRlcm5hbE1vZGlmaWVycy5yYW5nZV9lbmQgPSBzZWxlY3RSYW5nZS5tb2RpZmllcnMucmFuZ2VfZW5kO1xuICAgIH1cbiAgICByZXR1cm4gaW50ZXJuYWxNb2RpZmllcnM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRJbnRlcm5hbE1vZGlmaWVycy5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VTZWxlY3RNdWx0aXBsZSB9IGZyb20gJy4uLy4uL2NvbnRleHRzL1NlbGVjdE11bHRpcGxlJztcbmltcG9ydCB7IHVzZVNlbGVjdFJhbmdlIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvU2VsZWN0UmFuZ2UnO1xuaW1wb3J0IHsgZ2V0Q3VzdG9tTW9kaWZpZXJzIH0gZnJvbSAnLi91dGlscy9nZXRDdXN0b21Nb2RpZmllcnMnO1xuaW1wb3J0IHsgZ2V0SW50ZXJuYWxNb2RpZmllcnMgfSBmcm9tICcuL3V0aWxzL2dldEludGVybmFsTW9kaWZpZXJzJztcbi8qKiBUaGUgTW9kaWZpZXJzIGNvbnRleHQgc3RvcmUgdGhlIG1vZGlmaWVycyB1c2VkIGluIERheVBpY2tlci4gVG8gYWNjZXNzIHRoZSB2YWx1ZSBvZiB0aGlzIGNvbnRleHQsIHVzZSBbW3VzZU1vZGlmaWVyc11dLiAqL1xuZXhwb3J0IHZhciBNb2RpZmllcnNDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuLyoqIFByb3ZpZGUgdGhlIHZhbHVlIGZvciB0aGUgW1tNb2RpZmllcnNDb250ZXh0XV0uICovXG5leHBvcnQgZnVuY3Rpb24gTW9kaWZpZXJzUHJvdmlkZXIocHJvcHMpIHtcbiAgICB2YXIgZGF5UGlja2VyID0gdXNlRGF5UGlja2VyKCk7XG4gICAgdmFyIHNlbGVjdE11bHRpcGxlID0gdXNlU2VsZWN0TXVsdGlwbGUoKTtcbiAgICB2YXIgc2VsZWN0UmFuZ2UgPSB1c2VTZWxlY3RSYW5nZSgpO1xuICAgIHZhciBpbnRlcm5hbE1vZGlmaWVycyA9IGdldEludGVybmFsTW9kaWZpZXJzKGRheVBpY2tlciwgc2VsZWN0TXVsdGlwbGUsIHNlbGVjdFJhbmdlKTtcbiAgICB2YXIgY3VzdG9tTW9kaWZpZXJzID0gZ2V0Q3VzdG9tTW9kaWZpZXJzKGRheVBpY2tlcik7XG4gICAgdmFyIG1vZGlmaWVycyA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBpbnRlcm5hbE1vZGlmaWVycyksIGN1c3RvbU1vZGlmaWVycyk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KE1vZGlmaWVyc0NvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IG1vZGlmaWVycyB9LCBwcm9wcy5jaGlsZHJlbikpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kaWZpZXJzQ29udGV4dC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW9kaWZpZXJzQ29udGV4dCB9IGZyb20gJy4vTW9kaWZpZXJzQ29udGV4dCc7XG4vKiogSG9vayB0byBhY2Nlc3MgdGhlIFtbTW9kaWZpZXJzQ29udGV4dF1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vZGlmaWVycygpIHtcbiAgICB2YXIgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoTW9kaWZpZXJzQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlTW9kaWZpZXJzIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBNb2RpZmllcnNQcm92aWRlcicpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGV4dDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZU1vZGlmaWVycy5qcy5tYXAiLCIvKiogUmV0dXJucyB0cnVlIGlmIGBtYXRjaGVyYCBpcyBvZiB0eXBlIFtbRGF0ZUludGVydmFsXV0uICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlSW50ZXJ2YWwobWF0Y2hlcikge1xuICAgIHJldHVybiBCb29sZWFuKG1hdGNoZXIgJiZcbiAgICAgICAgdHlwZW9mIG1hdGNoZXIgPT09ICdvYmplY3QnICYmXG4gICAgICAgICdiZWZvcmUnIGluIG1hdGNoZXIgJiZcbiAgICAgICAgJ2FmdGVyJyBpbiBtYXRjaGVyKTtcbn1cbi8qKiBSZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyBhIFtbRGF0ZVJhbmdlXV0gdHlwZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVSYW5nZSh2YWx1ZSkge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIGRhdGVzPyFcbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdmcm9tJyBpbiB2YWx1ZSk7XG59XG4vKiogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgb2YgdHlwZSBbW0RhdGVBZnRlcl1dLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUFmdGVyVHlwZSh2YWx1ZSkge1xuICAgIHJldHVybiBCb29sZWFuKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ2FmdGVyJyBpbiB2YWx1ZSk7XG59XG4vKiogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgb2YgdHlwZSBbW0RhdGVCZWZvcmVdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVCZWZvcmVUeXBlKHZhbHVlKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnYmVmb3JlJyBpbiB2YWx1ZSk7XG59XG4vKiogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgYSBbW0RheU9mV2Vla11dIHR5cGUuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXlPZldlZWtUeXBlKHZhbHVlKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnZGF5T2ZXZWVrJyBpbiB2YWx1ZSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1NYXRjaGVycy5qcy5tYXAiLCJpbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsIGlzU2FtZURheSB9IGZyb20gJ2RhdGUtZm5zJztcbi8qKiBSZXR1cm4gYHRydWVgIHdoZXRoZXIgdGhlIGdpdmVuIGRhdGUgaXMgaW5zaWRlIHRoZSByYW5nZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVJblJhbmdlKGRhdGUsIHJhbmdlKSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBmcm9tID0gcmFuZ2UuZnJvbSwgdG8gPSByYW5nZS50bztcbiAgICBpZiAoIWZyb20pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRvICYmIGlzU2FtZURheShmcm9tLCBkYXRlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF0bykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBpc1RvQmVmb3JlRnJvbSA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyh0bywgZnJvbSkgPCAwO1xuICAgIGlmICh0byAmJiBpc1RvQmVmb3JlRnJvbSkge1xuICAgICAgICBfYSA9IFt0bywgZnJvbV0sIGZyb20gPSBfYVswXSwgdG8gPSBfYVsxXTtcbiAgICB9XG4gICAgcmV0dXJuIChkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoZGF0ZSwgZnJvbSkgPj0gMCAmJlxuICAgICAgICBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXModG8sIGRhdGUpID49IDApO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNEYXRlSW5SYW5nZS5qcy5tYXAiLCJpbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsIGlzRGF0ZSwgaXNTYW1lRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgaXNEYXRlQWZ0ZXJUeXBlLCBpc0RhdGVCZWZvcmVUeXBlLCBpc0RhdGVJbnRlcnZhbCwgaXNEYXRlUmFuZ2UsIGlzRGF5T2ZXZWVrVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL01hdGNoZXJzJztcbmltcG9ydCB7IGlzRGF0ZUluUmFuZ2UgfSBmcm9tICcuL2lzRGF0ZUluUmFuZ2UnO1xuLyoqIFJldHVybnMgdHJ1ZSBpZiBgdmFsdWVgIGlzIGEgRGF0ZSB0eXBlLiAqL1xuZnVuY3Rpb24gaXNEYXRlVHlwZSh2YWx1ZSkge1xuICAgIHJldHVybiBpc0RhdGUodmFsdWUpO1xufVxuLyoqIFJldHVybnMgdHJ1ZSBpZiBgdmFsdWVgIGlzIGFuIGFycmF5IG9mIHZhbGlkIGRhdGVzLiAqL1xuZnVuY3Rpb24gaXNBcnJheU9mRGF0ZXModmFsdWUpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUuZXZlcnkoaXNEYXRlKTtcbn1cbi8qKlxuICogUmV0dXJucyBgdHJ1ZWAgd2hldGhlciB0aGUgZGF5IG1hdGNoZXMgYWdhaW5zdCB0aGUgZ2l2ZW4gbWF0Y2hlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01hdGNoKGRheSwgbWF0Y2hlcnMpIHtcbiAgICByZXR1cm4gbWF0Y2hlcnMuc29tZShmdW5jdGlvbiAobWF0Y2hlcikge1xuICAgICAgICBpZiAodHlwZW9mIG1hdGNoZXIgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGF0ZVR5cGUobWF0Y2hlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBpc1NhbWVEYXkoZGF5LCBtYXRjaGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNBcnJheU9mRGF0ZXMobWF0Y2hlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVyLmluY2x1ZGVzKGRheSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGF0ZVJhbmdlKG1hdGNoZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNEYXRlSW5SYW5nZShkYXksIG1hdGNoZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0RheU9mV2Vla1R5cGUobWF0Y2hlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVyLmRheU9mV2Vlay5pbmNsdWRlcyhkYXkuZ2V0RGF5KCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0RhdGVJbnRlcnZhbChtYXRjaGVyKSkge1xuICAgICAgICAgICAgdmFyIGlzQmVmb3JlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKG1hdGNoZXIuYmVmb3JlLCBkYXkpID4gMDtcbiAgICAgICAgICAgIHZhciBpc0FmdGVyID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRheSwgbWF0Y2hlci5hZnRlcikgPiAwO1xuICAgICAgICAgICAgcmV0dXJuIGlzQmVmb3JlICYmIGlzQWZ0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGF0ZUFmdGVyVHlwZShtYXRjaGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhkYXksIG1hdGNoZXIuYWZ0ZXIpID4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEYXRlQmVmb3JlVHlwZShtYXRjaGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhtYXRjaGVyLmJlZm9yZSwgZGF5KSA+IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBtYXRjaGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlcihkYXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzTWF0Y2guanMubWFwIiwiaW1wb3J0IHsgaXNNYXRjaCB9IGZyb20gJy4vaXNNYXRjaCc7XG4vKipcbiAqIFJldHVybiB0aGUgc3RhdHVzIG9mIHRoZSBtb2RpZmllcnMgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBkYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kaWZpZXJTdGF0dXMoZGF0ZSwgXG4vKiogVGhlIG1vZGlmaWVycyB0byBtYXRjaCBmb3IgdGhlIGdpdmVuIGRhdGUuICovXG5tb2RpZmllcnMpIHtcbiAgICB2YXIgbW9kaWZpZXJzTGlzdCA9IE9iamVjdC5rZXlzKG1vZGlmaWVycykucmVkdWNlKGZ1bmN0aW9uIChwcmV2aW91c1ZhbHVlLCBrZXkpIHtcbiAgICAgICAgdmFyIG1vZGlmaWVyID0gbW9kaWZpZXJzW2tleV07XG4gICAgICAgIGlmIChpc01hdGNoKGRhdGUsIG1vZGlmaWVyKSkge1xuICAgICAgICAgICAgcHJldmlvdXNWYWx1ZS5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgfSwgW10pO1xuICAgIHZhciBtb2RpZmllcnNTdGF0dXMgPSB7fTtcbiAgICBtb2RpZmllcnNMaXN0LmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7IHJldHVybiAobW9kaWZpZXJzU3RhdHVzW21vZGlmaWVyXSA9IHRydWUpOyB9KTtcbiAgICByZXR1cm4gbW9kaWZpZXJzU3RhdHVzO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0TW9kaWZpZXJTdGF0dXMuanMubWFwIiwiaW1wb3J0IHsgX19hc3NpZ24gfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VNb2RpZmllcnMgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9Nb2RpZmllcnMnO1xuaW1wb3J0IHsgZ2V0TW9kaWZpZXJTdGF0dXMgfSBmcm9tICcuL3V0aWxzL2dldE1vZGlmaWVyU3RhdHVzJztcbi8qKiBSZXR1cm4gdGhlIG1vZGlmaWVycyBhbmQgaXRzIHN0eWxlcyBmb3IgdGhlIHNwZWNpZmllZCBkYXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURheU1vZGlmaWVycyhkYXRlKSB7XG4gICAgdmFyIGNvbnRleHQgPSB1c2VEYXlQaWNrZXIoKTtcbiAgICB2YXIgbW9kaWZpZXJzQ29udGV4dCA9IHVzZU1vZGlmaWVycygpO1xuICAgIC8vIFRPRE86IElzIHRoZXJlIGEgYmV0dGVyIG5hbWUgZm9yIHRoZSB0eXBlIE1vZGlmaWVyU3RhdHVzP1xuICAgIHZhciBtb2RpZmllcnMgPSBnZXRNb2RpZmllclN0YXR1cyhkYXRlLCBtb2RpZmllcnNDb250ZXh0KTtcbiAgICB2YXIgbW9kaWZpZXJDbGFzc05hbWVzID0gW107XG4gICAgT2JqZWN0LmtleXMobW9kaWZpZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChtb2RpZmllcikge1xuICAgICAgICB2YXIgY3VzdG9tQ2xhc3NOYW1lID0gY29udGV4dC5tb2RpZmllckNsYXNzTmFtZXNbbW9kaWZpZXJdO1xuICAgICAgICBpZiAoY3VzdG9tQ2xhc3NOYW1lKSB7XG4gICAgICAgICAgICBtb2RpZmllckNsYXNzTmFtZXMucHVzaChjdXN0b21DbGFzc05hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbW9kaWZpZXJDbGFzc05hbWVzLnB1c2goXCJcIiArIGNvbnRleHQubW9kaWZpZXJQcmVmaXggKyBtb2RpZmllcik7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgbW9kaWZpZXJTdHlsZSA9IHt9O1xuICAgIGlmIChjb250ZXh0Lm1vZGlmaWVyU3R5bGVzKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG1vZGlmaWVycykuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIG1vZGlmaWVyU3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgbW9kaWZpZXJTdHlsZSksIChfYSA9IGNvbnRleHQubW9kaWZpZXJTdHlsZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVttb2RpZmllcl0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbW9kaWZpZXJzOiBtb2RpZmllcnMsXG4gICAgICAgIG1vZGlmaWVyQ2xhc3NOYW1lczogbW9kaWZpZXJDbGFzc05hbWVzLFxuICAgICAgICBtb2RpZmllclN0eWxlOiBtb2RpZmllclN0eWxlXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZURheU1vZGlmaWVycy5qcy5tYXAiLCJpbXBvcnQgeyBhZGREYXlzLCBlbmRPZk1vbnRoLCBzdGFydE9mTW9udGggfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBnZXRNb2RpZmllclN0YXR1cyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURheU1vZGlmaWVycy91dGlscy9nZXRNb2RpZmllclN0YXR1cyc7XG52YXIgaXNGb2N1c2FibGUgPSBmdW5jdGlvbiAobW9kaWZpZXJzKSB7XG4gICAgcmV0dXJuICFtb2RpZmllcnMuZGlzYWJsZWQgJiYgIW1vZGlmaWVycy5oaWRkZW47XG59O1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBkYXkgdGhhdCBzaG91bGQgYmUgdGhlIHRhcmdldCBvZiB0aGUgZm9jdXMgd2hlbiBpbml0aWFsbHlcbiAqIHJlbmRlcmVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50czpcbiAqICAxLiBpZiB0aGVyZSBpcyBhIHNlbGVjdGVkIGRheSwgZm9jdXMgb24gdGhlIChmaXJzdCkgc2VsZWN0ZWQgZGF5XG4gKiAgMi4gZWxzZSBpZiB0aGUgZGlzcGxheSBtb250aHMgaW5jbHVkZSB0aGUgY3VycmVudCBkYXRlICh0b2RheSkgZm9jdXMgb24gdGhlIGN1cnJlbnQgZGF0ZVxuICogIDMuIGVsc2UgZm9jdXMgb24gdGhlIGZpcnN0IGZvY3VzYWJsZSBkYXlcbiAqICA0LiBlbHNlIHRoZXJlIGlzIG5vdGhpbmcgdG8gZm9jdXMgb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxGb2N1c1RhcmdldChkaXNwbGF5TW9udGhzLCBtb2RpZmllcnNDb250ZXh0KSB7XG4gICAgdmFyIGZpcnN0RGF5SW5Nb250aCA9IHN0YXJ0T2ZNb250aChkaXNwbGF5TW9udGhzWzBdKTtcbiAgICB2YXIgbGFzdERheUluTW9udGggPSBlbmRPZk1vbnRoKGRpc3BsYXlNb250aHNbZGlzcGxheU1vbnRocy5sZW5ndGggLSAxXSk7XG4gICAgdmFyIGZpcnN0Rm9jdXNhYmxlRGF5O1xuICAgIHZhciB0b2RheTtcbiAgICB2YXIgZGF0ZSA9IGZpcnN0RGF5SW5Nb250aDtcbiAgICB3aGlsZSAoZGF0ZSA8PSBsYXN0RGF5SW5Nb250aCkge1xuICAgICAgICB2YXIgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJTdGF0dXMoZGF0ZSwgbW9kaWZpZXJzQ29udGV4dCk7XG4gICAgICAgIGlmICghaXNGb2N1c2FibGUobW9kaWZpZXJzKSkge1xuICAgICAgICAgICAgZGF0ZSA9IGFkZERheXMoZGF0ZSwgMSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kaWZpZXJzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kaWZpZXJzLnRvZGF5ICYmICF0b2RheSkge1xuICAgICAgICAgICAgdG9kYXkgPSBkYXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZmlyc3RGb2N1c2FibGVEYXkpIHtcbiAgICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRGF5ID0gZGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBkYXRlID0gYWRkRGF5cyhkYXRlLCAxKTtcbiAgICB9XG4gICAgaWYgKHRvZGF5KSB7XG4gICAgICAgIHJldHVybiB0b2RheTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBmaXJzdEZvY3VzYWJsZURheTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRJbml0aWFsRm9jdXNUYXJnZXQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFkZERheXMsIGFkZE1vbnRocywgYWRkV2Vla3MsIGFkZFllYXJzLCBlbmRPZldlZWssIGlzU2FtZU1vbnRoLCBzdGFydE9mV2VlayB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VNb2RpZmllcnMgfSBmcm9tICcuLi9Nb2RpZmllcnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb24vdXNlTmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRJbml0aWFsRm9jdXNUYXJnZXQgfSBmcm9tICcuL2dldEluaXRpYWxGb2N1c1RhcmdldCc7XG4vKipcbiAqIFRoZSBGb2N1cyBjb250ZXh0IHNoYXJlcyBkZXRhaWxzIGFib3V0IHRoZSBmb2N1c2VkIGRheSBmb3IgdGhlIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gKlxuICogQWNjZXNzIHRoaXMgY29udGV4dCBmcm9tIHRoZSBbW3VzZUZvY3VzXV0gaG9vay5cbiAqL1xuZXhwb3J0IHZhciBGb2N1c0NvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG4vKiogVGhlIHByb3ZpZGVyIGZvciB0aGUgW1tGb2N1c0NvbnRleHRdXS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBGb2N1c1Byb3ZpZGVyKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW47XG4gICAgdmFyIF9iID0gUmVhY3QudXNlU3RhdGUoKSwgZm9jdXNlZERheSA9IF9iWzBdLCBzZXREYXkgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSB1c2VOYXZpZ2F0aW9uKCksIGdvVG9Nb250aCA9IF9jLmdvVG9Nb250aCwgZGlzcGxheU1vbnRocyA9IF9jLmRpc3BsYXlNb250aHM7XG4gICAgdmFyIG51bWJlck9mTW9udGhzID0gdXNlRGF5UGlja2VyKCkubnVtYmVyT2ZNb250aHM7XG4gICAgdmFyIG1vZGlmaWVyc0NvbnRleHQgPSB1c2VNb2RpZmllcnMoKTtcbiAgICB2YXIgaW5pdGlhbEZvY3VzVGFyZ2V0ID0gZ2V0SW5pdGlhbEZvY3VzVGFyZ2V0KGRpc3BsYXlNb250aHMsIG1vZGlmaWVyc0NvbnRleHQpO1xuICAgIHZhciBfZCA9IFJlYWN0LnVzZVN0YXRlKCksIGxhc3RGb2N1c2VkRGF5ID0gX2RbMF0sIHNldExhc3RGb2N1c2VkRGF5ID0gX2RbMV07XG4gICAgdmFyIGlzV2l0aGluRGlzcGxheU1vbnRocyA9IGZ1bmN0aW9uIChkYXRlKSB7XG4gICAgICAgIHJldHVybiBkaXNwbGF5TW9udGhzLnNvbWUoZnVuY3Rpb24gKGRpc3BsYXlNb250aCkgeyByZXR1cm4gaXNTYW1lTW9udGgoZGF0ZSwgZGlzcGxheU1vbnRoKTsgfSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNUYXJnZXQgPSAoZm9jdXNlZERheSAhPT0gbnVsbCAmJiBmb2N1c2VkRGF5ICE9PSB2b2lkIDAgPyBmb2N1c2VkRGF5IDogKGxhc3RGb2N1c2VkRGF5ICYmIGlzV2l0aGluRGlzcGxheU1vbnRocyhsYXN0Rm9jdXNlZERheSkpKVxuICAgICAgICA/IGxhc3RGb2N1c2VkRGF5XG4gICAgICAgIDogaW5pdGlhbEZvY3VzVGFyZ2V0O1xuICAgIHZhciBibHVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRMYXN0Rm9jdXNlZERheShmb2N1c2VkRGF5KTtcbiAgICAgICAgc2V0RGF5KHVuZGVmaW5lZCk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXMgPSBmdW5jdGlvbiAoZGF0ZSkgeyByZXR1cm4gc2V0RGF5KGRhdGUpOyB9O1xuICAgIHZhciBzd2l0Y2hNb250aCA9IGZ1bmN0aW9uIChkYXRlLCBvZmZzZXQpIHtcbiAgICAgICAgaWYgKGRpc3BsYXlNb250aHMuc29tZShmdW5jdGlvbiAobSkgeyByZXR1cm4gaXNTYW1lTW9udGgoZGF0ZSwgbSk7IH0pKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAob2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgZ29Ub01vbnRoKGFkZE1vbnRocyhkYXRlLCAxICsgb2Zmc2V0KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBnb1RvTW9udGgoZGF0ZSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHZhciBmb2N1c0RheUJlZm9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgYmVmb3JlID0gYWRkRGF5cyhmb2N1c2VkRGF5LCAtMSk7XG4gICAgICAgIGZvY3VzKGJlZm9yZSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKGJlZm9yZSwgbnVtYmVyT2ZNb250aHMgKiAtMSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNEYXlBZnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgYWZ0ZXIgPSBhZGREYXlzKGZvY3VzZWREYXksIDEpO1xuICAgICAgICBmb2N1cyhhZnRlcik7XG4gICAgICAgIHN3aXRjaE1vbnRoKGFmdGVyLCBudW1iZXJPZk1vbnRocyk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNXZWVrQmVmb3JlRGF5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWZvY3VzZWREYXkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciB1cCA9IGFkZFdlZWtzKGZvY3VzZWREYXksIC0xKTtcbiAgICAgICAgZm9jdXModXApO1xuICAgICAgICBzd2l0Y2hNb250aCh1cCwgbnVtYmVyT2ZNb250aHMgKiAtMSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNXZWVrQWZ0ZXJEYXkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghZm9jdXNlZERheSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIGRvd24gPSBhZGRXZWVrcyhmb2N1c2VkRGF5LCAxKTtcbiAgICAgICAgZm9jdXMoZG93bik7XG4gICAgICAgIHN3aXRjaE1vbnRoKGRvd24sIG51bWJlck9mTW9udGhzKTtcbiAgICB9O1xuICAgIHZhciBmb2N1c1N0YXJ0T2ZXZWVrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWZvY3VzZWREYXkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciBkYXlUb0ZvY3VzID0gc3RhcnRPZldlZWsoZm9jdXNlZERheSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKGRheVRvRm9jdXMsIG51bWJlck9mTW9udGhzKTtcbiAgICAgICAgZm9jdXMoZGF5VG9Gb2N1cyk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNFbmRPZldlZWsgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghZm9jdXNlZERheSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIGRheVRvRm9jdXMgPSBlbmRPZldlZWsoZm9jdXNlZERheSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKGRheVRvRm9jdXMsIG51bWJlck9mTW9udGhzKTtcbiAgICAgICAgZm9jdXMoZGF5VG9Gb2N1cyk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNNb250aEJlZm9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgbW9udGhCZWZvcmUgPSBhZGRNb250aHMoZm9jdXNlZERheSwgLTEpO1xuICAgICAgICBzd2l0Y2hNb250aChtb250aEJlZm9yZSwgbnVtYmVyT2ZNb250aHMpO1xuICAgICAgICBmb2N1cyhtb250aEJlZm9yZSk7XG4gICAgfTtcbiAgICB2YXIgZm9jdXNNb250aEFmdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWZvY3VzZWREYXkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciBtb250aEFmdGVyID0gYWRkTW9udGhzKGZvY3VzZWREYXksIDEpO1xuICAgICAgICBzd2l0Y2hNb250aChtb250aEFmdGVyLCBudW1iZXJPZk1vbnRocyk7XG4gICAgICAgIGZvY3VzKG1vbnRoQWZ0ZXIpO1xuICAgIH07XG4gICAgdmFyIGZvY3VzWWVhckJlZm9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgeWVhckJlZm9yZSA9IGFkZFllYXJzKGZvY3VzZWREYXksIC0xKTtcbiAgICAgICAgc3dpdGNoTW9udGgoeWVhckJlZm9yZSwgbnVtYmVyT2ZNb250aHMpO1xuICAgICAgICBmb2N1cyh5ZWFyQmVmb3JlKTtcbiAgICB9O1xuICAgIHZhciBmb2N1c1llYXJBZnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB2YXIgeWVhckFmdGVyID0gYWRkWWVhcnMoZm9jdXNlZERheSwgMSk7XG4gICAgICAgIHN3aXRjaE1vbnRoKHllYXJBZnRlciwgbnVtYmVyT2ZNb250aHMpO1xuICAgICAgICBmb2N1cyh5ZWFyQWZ0ZXIpO1xuICAgIH07XG4gICAgdmFyIHZhbHVlID0ge1xuICAgICAgICBmb2N1c2VkRGF5OiBmb2N1c2VkRGF5LFxuICAgICAgICBmb2N1c1RhcmdldDogZm9jdXNUYXJnZXQsXG4gICAgICAgIGJsdXI6IGJsdXIsXG4gICAgICAgIGZvY3VzOiBmb2N1cyxcbiAgICAgICAgZm9jdXNEYXlBZnRlcjogZm9jdXNEYXlBZnRlcixcbiAgICAgICAgZm9jdXNEYXlCZWZvcmU6IGZvY3VzRGF5QmVmb3JlLFxuICAgICAgICBmb2N1c1dlZWtBZnRlckRheTogZm9jdXNXZWVrQWZ0ZXJEYXksXG4gICAgICAgIGZvY3VzV2Vla0JlZm9yZURheTogZm9jdXNXZWVrQmVmb3JlRGF5LFxuICAgICAgICBmb2N1c01vbnRoQmVmb3JlOiBmb2N1c01vbnRoQmVmb3JlLFxuICAgICAgICBmb2N1c01vbnRoQWZ0ZXI6IGZvY3VzTW9udGhBZnRlcixcbiAgICAgICAgZm9jdXNZZWFyQmVmb3JlOiBmb2N1c1llYXJCZWZvcmUsXG4gICAgICAgIGZvY3VzWWVhckFmdGVyOiBmb2N1c1llYXJBZnRlcixcbiAgICAgICAgZm9jdXNTdGFydE9mV2VlazogZm9jdXNTdGFydE9mV2VlayxcbiAgICAgICAgZm9jdXNFbmRPZldlZWs6IGZvY3VzRW5kT2ZXZWVrXG4gICAgfTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9jdXNDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB2YWx1ZSB9LCBjaGlsZHJlbikpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Rm9jdXNDb250ZXh0LmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb2N1c0NvbnRleHQgfSBmcm9tICcuL0ZvY3VzQ29udGV4dCc7XG4vKiogSG9vayB0byBhY2Nlc3MgdGhlIFtbRm9jdXNDb250ZXh0XV0uICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRm9jdXMoKSB7XG4gICAgdmFyIGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KEZvY3VzQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndXNlRm9jdXMgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEZvY3VzUHJvdmlkZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2VGb2N1cy5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNTYW1lRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbmltcG9ydCB7IHVzZUZvY3VzIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dHMvRm9jdXMnO1xuLyoqIEhhbmRsZSB0aGUgZm9jdXMgZm9yIHRoZSBkYXkgZWxlbWVudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXlGb2N1cyhkYXRlLCBidXR0b25SZWYpIHtcbiAgICB2YXIgX2EgPSB1c2VGb2N1cygpLCBmb2N1c2VkRGF5ID0gX2EuZm9jdXNlZERheSwgZm9jdXNUYXJnZXQgPSBfYS5mb2N1c1RhcmdldCwgZm9jdXNEYXlBZnRlciA9IF9hLmZvY3VzRGF5QWZ0ZXIsIGZvY3VzRGF5QmVmb3JlID0gX2EuZm9jdXNEYXlCZWZvcmUsIGZvY3VzV2Vla0FmdGVyRGF5ID0gX2EuZm9jdXNXZWVrQWZ0ZXJEYXksIGZvY3VzV2Vla0JlZm9yZURheSA9IF9hLmZvY3VzV2Vla0JlZm9yZURheSwgYmx1ciA9IF9hLmJsdXIsIGZvY3VzID0gX2EuZm9jdXMsIGZvY3VzTW9udGhCZWZvcmUgPSBfYS5mb2N1c01vbnRoQmVmb3JlLCBmb2N1c01vbnRoQWZ0ZXIgPSBfYS5mb2N1c01vbnRoQWZ0ZXIsIGZvY3VzWWVhckJlZm9yZSA9IF9hLmZvY3VzWWVhckJlZm9yZSwgZm9jdXNZZWFyQWZ0ZXIgPSBfYS5mb2N1c1llYXJBZnRlciwgZm9jdXNTdGFydE9mV2VlayA9IF9hLmZvY3VzU3RhcnRPZldlZWssIGZvY3VzRW5kT2ZXZWVrID0gX2EuZm9jdXNFbmRPZldlZWs7XG4gICAgdmFyIGRpciA9IHVzZURheVBpY2tlcigpLmRpcjtcbiAgICAvLyBGb2N1cyB0aGUgSFRNTCBlbGVtZW50IGlmIHRoaXMgaXMgdGhlIGZvY3VzZWQgZGF5LlxuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoaXNTYW1lRGF5KGZvY3VzZWREYXksIGRhdGUpKSB7XG4gICAgICAgICAgICAoX2EgPSBidXR0b25SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9LCBbZm9jdXNlZERheSwgZGF0ZSwgYnV0dG9uUmVmXSk7XG4gICAgdmFyIGZvY3VzT25LZXlEb3duID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgc3dpdGNoIChlLmtleSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBkaXIgPT09ICdydGwnID8gZm9jdXNEYXlBZnRlcigpIDogZm9jdXNEYXlCZWZvcmUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGRpciA9PT0gJ3J0bCcgPyBmb2N1c0RheUJlZm9yZSgpIDogZm9jdXNEYXlBZnRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBmb2N1c1dlZWtBZnRlckRheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZm9jdXNXZWVrQmVmb3JlRGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUuc2hpZnRLZXkgPyBmb2N1c1llYXJCZWZvcmUoKSA6IGZvY3VzTW9udGhCZWZvcmUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnNoaWZ0S2V5ID8gZm9jdXNZZWFyQWZ0ZXIoKSA6IGZvY3VzTW9udGhBZnRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZm9jdXNTdGFydE9mV2VlaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBmb2N1c0VuZE9mV2VlaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB2YXIgaXNGb2N1c1RhcmdldCA9IEJvb2xlYW4oZm9jdXNUYXJnZXQgJiYgaXNTYW1lRGF5KGZvY3VzVGFyZ2V0LCBkYXRlKSk7XG4gICAgcmV0dXJuIHsgZm9jdXM6IGZvY3VzLCBibHVyOiBibHVyLCBmb2N1c09uS2V5RG93bjogZm9jdXNPbktleURvd24sIGlzRm9jdXNUYXJnZXQ6IGlzRm9jdXNUYXJnZXQgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZURheUZvY3VzLmpzLm1hcCIsImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNTYW1lTW9udGggfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgdXNlU2VsZWN0TXVsdGlwbGUgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0cy9TZWxlY3RNdWx0aXBsZSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RSYW5nZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHRzL1NlbGVjdFJhbmdlJztcbmltcG9ydCB7IHVzZVNlbGVjdFNpbmdsZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHRzL1NlbGVjdFNpbmdsZSc7XG5pbXBvcnQgeyB1c2VEYXlNb2RpZmllcnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VEYXlNb2RpZmllcnMnO1xuaW1wb3J0IHsgaXNEYXlQaWNrZXJNdWx0aXBsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0RheVBpY2tlck11bHRpcGxlJztcbmltcG9ydCB7IGlzRGF5UGlja2VyUmFuZ2UgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9EYXlQaWNrZXJSYW5nZSc7XG5pbXBvcnQgeyBpc0RheVBpY2tlclNpbmdsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0RheVBpY2tlclNpbmdsZSc7XG5pbXBvcnQgeyB1c2VEYXlGb2N1cyB9IGZyb20gJy4vdXNlRGF5Rm9jdXMnO1xuLyoqXG4gKiBUaGlzIGhvb2sgcmV0dXJucyBkZXRhaWxzIGFib3V0IHRoZSBjb250ZW50IHRvIHJlbmRlciBpbiB0aGUgZGF5IGNlbGwuXG4gKlxuICpcbiAqIFdoZW4gYSBkYXkgY2VsbCBpcyByZW5kZXJlZCBpbiB0aGUgdGFibGUsIERheVBpY2tlciBjYW4gZWl0aGVyOlxuICpcbiAqIC0gcmVuZGVyIG5vdGhpbmc6IHdoZW4gdGhlIGRheSBpcyBvdXRzaWRlIHRoZSBtb250aCBvciBoYXMgbWF0Y2hlZCB0aGVcbiAqICAgXCJoaWRkZW5cIiBtb2RpZmllci5cbiAqIC0gcmVuZGVyIGEgYnV0dG9uLiBXaGVuIGEgc2VsZWN0aW9uIG1vZGUgaXMgc2V0LCBEYXlQaWNrZXIgcmVuZGVycyBhIGJ1dHRvblxuICogICB0byBhbGxvdyB0aGUgZm9jdXMgYW5kIHRoZSBzZWxlY3Rpb24uIEluIGNhc2Ugb2YgYGN1c3RvbWAgc2VsZWN0aW9uXG4gKiAgIG1vZGUsIERheVBpY2tlciBleHBlY3RzIGEgYG9uRGF5Q2xpY2tgIHByb3AgdG8gcmVuZGVyIGEgYnV0dG9uLlxuICogLSByZW5kZXIgYSBub24taW50ZXJhY3RpdmUgZWxlbWVudDogd2hlbiBubyBzZWxlY3Rpb24gbW9kZSBpcyBzZXQsIHRoZSBkYXlcbiAqICAgY2VsbCBzaG91bGRu4oCZdCByZXNwb25kIHRvIGFueSBpbnRlcmFjdGlvbi4gRGF5UGlja2VyIHNob3VsZCByZW5kZXIgYSBgZGl2YFxuICogICBvciBhIGBzcGFuYC5cbiAqXG4gKiAjIyMgVXNhZ2VcbiAqXG4gKiBVc2UgdGhpcyBob29rIHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFtbRGF5XV0gY29tcG9uZW50LiBDcmVhdGUgYVxuICogbmV3IGBEYXlgIGNvbXBvbmVudCB1c2luZyB0aGlzIGhvb2sgYW5kIHBhc3MgaXQgdG8gdGhlIGBjb21wb25lbnRzYCBwcm9wLlxuICogVGhlIHNvdXJjZSBvZiBbW0RheV1dIGNhbiBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuXG4gKlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXkoXG4vKiogVGhlIGRheSByZW5kZXJlZCBpbiB0aGUgbW9udGguICovXG5kYXRlLCBcbi8qKiBUaGUgbW9udGggd2hlcmUgdGhlIGRhdGUgaXMgZGlzcGxheWVkLiBEYXlQaWNrZXIgcmVuZGVycyBkYXlzIG91dHNpZGUgdGhlIGRpc3BsYXkgbW9udGggd2hlbiBgc2hvd091dHNpZGVEYXlzYCBpcyB0cnVlLiAqL1xuZGlzcGxheU1vbnRoLCBcbi8qKiBBIHJlZiB0byB0aGUgYnV0dG9uIGVsZW1lbnQuICovXG5idXR0b25SZWYpIHtcbiAgICB2YXIgY29udGV4dCA9IHVzZURheVBpY2tlcigpO1xuICAgIHZhciBzaW5nbGUgPSB1c2VTZWxlY3RTaW5nbGUoKTtcbiAgICB2YXIgbXVsdGlwbGUgPSB1c2VTZWxlY3RNdWx0aXBsZSgpO1xuICAgIHZhciByYW5nZSA9IHVzZVNlbGVjdFJhbmdlKCk7XG4gICAgdmFyIF9hID0gdXNlRGF5Rm9jdXMoZGF0ZSwgYnV0dG9uUmVmKSwgZm9jdXMgPSBfYS5mb2N1cywgYmx1ciA9IF9hLmJsdXIsIGZvY3VzT25LZXlEb3duID0gX2EuZm9jdXNPbktleURvd24sIGlzRm9jdXNUYXJnZXQgPSBfYS5pc0ZvY3VzVGFyZ2V0O1xuICAgIHZhciBfYiA9IHVzZURheU1vZGlmaWVycyhkYXRlKSwgbW9kaWZpZXJzID0gX2IubW9kaWZpZXJzLCBtb2RpZmllckNsYXNzTmFtZXMgPSBfYi5tb2RpZmllckNsYXNzTmFtZXMsIG1vZGlmaWVyU3R5bGUgPSBfYi5tb2RpZmllclN0eWxlO1xuICAgIHZhciBpc091dHNpZGUgPSAhaXNTYW1lTW9udGgoZGF0ZSwgZGlzcGxheU1vbnRoKTtcbiAgICB2YXIgcmV0dXJuVmFsdWUgPSB7XG4gICAgICAgIGlzT3V0c2lkZTogaXNPdXRzaWRlLFxuICAgICAgICBtb2RpZmllcnM6IG1vZGlmaWVycyxcbiAgICAgICAgc2VsZWN0ZWQ6IGlzRGF5UGlja2VyU2luZ2xlKGNvbnRleHQpXG4gICAgICAgICAgICA/IHNpbmdsZS5zZWxlY3RlZFxuICAgICAgICAgICAgOiBpc0RheVBpY2tlck11bHRpcGxlKGNvbnRleHQpXG4gICAgICAgICAgICAgICAgPyBtdWx0aXBsZS5zZWxlY3RlZFxuICAgICAgICAgICAgICAgIDogaXNEYXlQaWNrZXJSYW5nZShjb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICA/IHJhbmdlLnNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBzaW5nbGU6IHNpbmdsZSxcbiAgICAgICAgbXVsdGlwbGU6IG11bHRpcGxlLFxuICAgICAgICByYW5nZTogcmFuZ2VcbiAgICB9O1xuICAgIGlmIChpc091dHNpZGUgJiYgIWNvbnRleHQuc2hvd091dHNpZGVEYXlzKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICB9XG4gICAgaWYgKG1vZGlmaWVycy5oaWRkZW4pIHtcbiAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgIH1cbiAgICB2YXIgY2xhc3NOYW1lcyA9IFtjb250ZXh0LmNsYXNzTmFtZXMuZGF5XS5jb25jYXQobW9kaWZpZXJDbGFzc05hbWVzKTtcbiAgICB2YXIgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29udGV4dC5zdHlsZXMuZGF5KSwgbW9kaWZpZXJTdHlsZSk7XG4gICAgaWYgKGlzT3V0c2lkZSkge1xuICAgICAgICBjbGFzc05hbWVzLnB1c2goY29udGV4dC5jbGFzc05hbWVzLmRheV9vdXRzaWRlKTtcbiAgICAgICAgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29udGV4dC5zdHlsZXMpLCBjb250ZXh0LnN0eWxlcy5kYXlfb3V0c2lkZSk7XG4gICAgfVxuICAgIHZhciBEYXlDb250ZW50ID0gY29udGV4dC5jb21wb25lbnRzLkRheUNvbnRlbnQ7XG4gICAgdmFyIGNoaWxkcmVuID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF5Q29udGVudCwgeyBkYXRlOiBkYXRlLCBkaXNwbGF5TW9udGg6IGRpc3BsYXlNb250aCwgbW9kaWZpZXJzOiBtb2RpZmllcnMgfSkpO1xuICAgIHZhciBjbGFzc05hbWUgPSBjbGFzc05hbWVzLmpvaW4oJyAnKTtcbiAgICBpZiAoIWNvbnRleHQubW9kZSAmJiAhY29udGV4dC5vbkRheUNsaWNrKSB7XG4gICAgICAgIHJldHVybiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgcmV0dXJuVmFsdWUpLCB7IG5vbkludGVyYWN0aXZlUHJvcHM6IHtcbiAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgICAgICAgICB9IH0pO1xuICAgIH1cbiAgICAvLyAjcmVnaW9uIEV2ZW50IGhhbmRsZXJzXG4gICAgdmFyIGhhbmRsZUNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoaXNEYXlQaWNrZXJTaW5nbGUoY29udGV4dCkpIHtcbiAgICAgICAgICAgIChfYSA9IHNpbmdsZS5vbkRheUNsaWNrKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChzaW5nbGUsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNEYXlQaWNrZXJNdWx0aXBsZShjb250ZXh0KSkge1xuICAgICAgICAgICAgKF9iID0gbXVsdGlwbGUub25EYXlDbGljaykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwobXVsdGlwbGUsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNEYXlQaWNrZXJSYW5nZShjb250ZXh0KSkge1xuICAgICAgICAgICAgKF9jID0gcmFuZ2Uub25EYXlDbGljaykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwocmFuZ2UsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgICAgIH1cbiAgICAgICAgKF9kID0gY29udGV4dC5vbkRheUNsaWNrKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZUZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb2N1cyhkYXRlKTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheUZvY3VzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZUJsdXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGJsdXIoKTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheUJsdXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlS2V5RG93biA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgZm9jdXNPbktleURvd24oZSk7XG4gICAgICAgIChfYSA9IGNvbnRleHQub25EYXlLZXlEb3duKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZUtleVVwID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBjb250ZXh0Lm9uRGF5S2V5VXApID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlTW91c2VFbnRlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheU1vdXNlRW50ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlTW91c2VMZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheU1vdXNlTGVhdmUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNvbnRleHQsIGRhdGUsIG1vZGlmaWVycywgZSk7XG4gICAgfTtcbiAgICB2YXIgaGFuZGxlVG91Y2hDYW5jZWwgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIChfYSA9IGNvbnRleHQub25EYXlUb3VjaENhbmNlbCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY29udGV4dCwgZGF0ZSwgbW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIHZhciBoYW5kbGVUb3VjaEVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheVRvdWNoRW5kKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjb250ZXh0LCBkYXRlLCBtb2RpZmllcnMsIGUpO1xuICAgIH07XG4gICAgdmFyIGhhbmRsZVRvdWNoTW92ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gY29udGV4dC5vbkRheVRvdWNoTW92ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY29udGV4dCwgZGF0ZSwgbW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIHZhciBoYW5kbGVUb3VjaFN0YXJ0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBjb250ZXh0Lm9uRGF5VG91Y2hTdGFydCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY29udGV4dCwgZGF0ZSwgbW9kaWZpZXJzLCBlKTtcbiAgICB9O1xuICAgIGlmIChpc091dHNpZGUpIHtcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGNvbnRleHQuY2xhc3NOYW1lcy5kYXlfb3V0c2lkZSk7XG4gICAgICAgIHN0eWxlID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbnRleHQuc3R5bGVzKSwgY29udGV4dC5zdHlsZXMuZGF5X291dHNpZGUpO1xuICAgIH1cbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWVzLmpvaW4oJyAnKTtcbiAgICB2YXIgc2VsZWN0ZWQgPSBtb2RpZmllcnMuc2VsZWN0ZWQsIGRpc2FibGVkID0gbW9kaWZpZXJzLmRpc2FibGVkO1xuICAgIHZhciB0YWJJbmRleCA9IGlzRm9jdXNUYXJnZXQgPyAwIDogLTE7XG4gICAgcmV0dXJuIF9fYXNzaWduKF9fYXNzaWduKHt9LCByZXR1cm5WYWx1ZSksIHsgYnV0dG9uUHJvcHM6IHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICAgICAgICAgICdhcmlhLXByZXNzZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICAgICAgdGFiSW5kZXg6IHRhYkluZGV4LFxuICAgICAgICAgICAgb25DbGljazogaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyxcbiAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlQmx1cixcbiAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlS2V5RG93bixcbiAgICAgICAgICAgIG9uS2V5VXA6IGhhbmRsZUtleVVwLFxuICAgICAgICAgICAgb25Nb3VzZUVudGVyOiBoYW5kbGVNb3VzZUVudGVyLFxuICAgICAgICAgICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICAgICAgICAgICAgb25Ub3VjaENhbmNlbDogaGFuZGxlVG91Y2hDYW5jZWwsXG4gICAgICAgICAgICBvblRvdWNoRW5kOiBoYW5kbGVUb3VjaEVuZCxcbiAgICAgICAgICAgIG9uVG91Y2hNb3ZlOiBoYW5kbGVUb3VjaE1vdmUsXG4gICAgICAgICAgICBvblRvdWNoU3RhcnQ6IGhhbmRsZVRvdWNoU3RhcnRcbiAgICAgICAgfSB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZURheS5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyB1c2VEYXkgfSBmcm9tICcuL2hvb2tzL3VzZURheSc7XG4vKipcbiAqIFRoZSBjb250ZW50IG9mIGEgZGF5IGNlbGwg4oCTIGFzIGEgYnV0dG9uIG9yIHNwYW4gZWxlbWVudCBhY2NvcmRpbmcgdG8gaXRzXG4gKiBtb2RpZmllcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEYXkocHJvcHMpIHtcbiAgICB2YXIgYnV0dG9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBkYXkgPSB1c2VEYXkocHJvcHMuZGF0ZSwgcHJvcHMuZGlzcGxheU1vbnRoLCBidXR0b25SZWYpO1xuICAgIHZhciBidXR0b25Qcm9wcyA9IGRheS5idXR0b25Qcm9wcywgbm9uSW50ZXJhY3RpdmVQcm9wcyA9IGRheS5ub25JbnRlcmFjdGl2ZVByb3BzO1xuICAgIGlmICghYnV0dG9uUHJvcHMgJiYgIW5vbkludGVyYWN0aXZlUHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwpO1xuICAgIH1cbiAgICBpZiAobm9uSW50ZXJhY3RpdmVQcm9wcykge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfX2Fzc2lnbih7fSwgbm9uSW50ZXJhY3RpdmVQcm9wcykpO1xuICAgIH1cbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIF9fYXNzaWduKHsgcmVmOiBidXR0b25SZWYgfSwgYnV0dG9uUHJvcHMpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURheS5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIHRoZSBjb250ZW50IG9mIHRoZSBkYXkgY2VsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERheUNvbnRlbnQocHJvcHMpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgbG9jYWxlID0gX2EubG9jYWxlLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGVzID0gX2Euc3R5bGVzLCBsYWJlbERheSA9IF9hLmxhYmVscy5sYWJlbERheSwgZm9ybWF0RGF5ID0gX2EuZm9ybWF0dGVycy5mb3JtYXREYXk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIgfSwgZm9ybWF0RGF5KHByb3BzLmRhdGUsIHsgbG9jYWxlOiBsb2NhbGUgfSkpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy52aGlkZGVuLCBzdHlsZTogc3R5bGVzLnZoaWRkZW4gfSwgbGFiZWxEYXkocHJvcHMuZGF0ZSwgcHJvcHMubW9kaWZpZXJzLCB7IGxvY2FsZTogbG9jYWxlIH0pKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5Q29udGVudC5qcy5tYXAiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIGEgc3R5bGVkIHNlbGVjdCBjb21wb25lbnQg4oCTIGRpc3BsYXlpbmcgYSBjYXB0aW9uIGFuZCBhIGN1c3RvbVxuICogZHJvcC1kb3duIGljb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEcm9wZG93bihwcm9wcykge1xuICAgIHZhciBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLCB2YWx1ZSA9IHByb3BzLnZhbHVlLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjYXB0aW9uID0gcHJvcHMuY2FwdGlvbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCBzdHlsZSA9IHByb3BzLnN0eWxlO1xuICAgIHZhciBfYSA9IHVzZURheVBpY2tlcigpLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGVzID0gX2Euc3R5bGVzLCBJY29uRHJvcGRvd24gPSBfYS5jb21wb25lbnRzLkljb25Ecm9wZG93bjtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc3R5bGU6IHN0eWxlIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnZoaWRkZW4gfSwgcHJvcHNbJ2FyaWEtbGFiZWwnXSksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIiwgeyBcImFyaWEtbGFiZWxcIjogcHJvcHNbJ2FyaWEtbGFiZWwnXSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmRyb3Bkb3duLCBzdHlsZTogc3R5bGVzLmRyb3Bkb3duLCB2YWx1ZTogdmFsdWUsIG9uQ2hhbmdlOiBvbkNoYW5nZSB9LCBjaGlsZHJlbiksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMuY2FwdGlvbl9sYWJlbCwgc3R5bGU6IHN0eWxlcy5jYXB0aW9uX2xhYmVsLCBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgICBjYXB0aW9uLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uRHJvcGRvd24sIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmRyb3Bkb3duX2ljb24sIHN0eWxlOiBzdHlsZXMuZHJvcGRvd25faWNvbiB9KSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuLyoqIFJlbmRlciB0aGUgRm9vdGVyIGNvbXBvbmVudCAoZW1wdHkgYXMgZGVmYXVsdCkuKi9cbmV4cG9ydCBmdW5jdGlvbiBGb290ZXIoKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGZvb3RlciA9IF9hLmZvb3Rlciwgc3R5bGVzID0gX2Euc3R5bGVzLCB0Zm9vdCA9IF9hLmNsYXNzTmFtZXMudGZvb3Q7XG4gICAgaWYgKCFmb290ZXIpXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0Zm9vdFwiLCB7IGNsYXNzTmFtZTogdGZvb3QsIHN0eWxlOiBzdHlsZXMudGZvb3QgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInRyXCIsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidGRcIiwgeyBjb2xTcGFuOiA4IH0sIGZvb3RlcikpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXIuanMubWFwIiwiaW1wb3J0IHsgYWRkRGF5cywgc3RhcnRPZldlZWsgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIEdlbmVyYXRlIGEgc2VyaWVzIG9mIDcgZGF5cywgc3RhcnRpbmcgZnJvbSB0aGUgd2VlaywgdG8gdXNlIGZvciBmb3JtYXR0aW5nXG4gKiB0aGUgd2Vla2RheSBuYW1lcyAoTW9uZGF5LCBUdWVzZGF5LCBldGMuKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdlZWtkYXlzKGxvY2FsZSkge1xuICAgIHZhciBzdGFydCA9IHN0YXJ0T2ZXZWVrKG5ldyBEYXRlKCksIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgdmFyIGRheXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICB2YXIgZGF5ID0gYWRkRGF5cyhzdGFydCwgaSk7XG4gICAgICAgIGRheXMucHVzaChkYXkpO1xuICAgIH1cbiAgICByZXR1cm4gZGF5cztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldFdlZWtkYXlzLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgZ2V0V2Vla2RheXMgfSBmcm9tICcuL3V0aWxzJztcbi8qKlxuICogUmVuZGVyIHRoZSBIZWFkIGNvbXBvbmVudCAtIGkuZS4gdGhlIHRhYmxlIGhlYWQgd2l0aCB0aGUgd2Vla2RheSBuYW1lcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhlYWQoKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGNsYXNzTmFtZXMgPSBfYS5jbGFzc05hbWVzLCBzdHlsZXMgPSBfYS5zdHlsZXMsIHNob3dXZWVrTnVtYmVyID0gX2Euc2hvd1dlZWtOdW1iZXIsIGxvY2FsZSA9IF9hLmxvY2FsZSwgZm9ybWF0V2Vla2RheU5hbWUgPSBfYS5mb3JtYXR0ZXJzLmZvcm1hdFdlZWtkYXlOYW1lLCBsYWJlbFdlZWtkYXkgPSBfYS5sYWJlbHMubGFiZWxXZWVrZGF5O1xuICAgIHZhciB3ZWVrZGF5cyA9IGdldFdlZWtkYXlzKGxvY2FsZSk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwidGhlYWRcIiwgeyBzdHlsZTogc3R5bGVzLmhlYWQsIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5oZWFkIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0clwiLCB7IHN0eWxlOiBzdHlsZXMuaGVhZF9yb3csIGNsYXNzTmFtZTogY2xhc3NOYW1lcy5oZWFkX3JvdyB9LFxuICAgICAgICAgICAgc2hvd1dlZWtOdW1iZXIgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aFwiLCB7IHNjb3BlOiBcImNvbFwiLCBzdHlsZTogc3R5bGVzLmhlYWRfY2VsbCwgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmhlYWRfY2VsbCB9KSksXG4gICAgICAgICAgICB3ZWVrZGF5cy5tYXAoZnVuY3Rpb24gKHdlZWtkYXksIGkpIHsgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwidGhcIiwgeyBrZXk6IGksIHNjb3BlOiBcImNvbFwiLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMuaGVhZF9jZWxsLCBzdHlsZTogc3R5bGVzLmhlYWRfY2VsbCB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0sIGZvcm1hdFdlZWtkYXlOYW1lKHdlZWtkYXksIHsgbG9jYWxlOiBsb2NhbGUgfSkpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnZoaWRkZW4gfSwgbGFiZWxXZWVrZGF5KHdlZWtkYXksIHsgbG9jYWxlOiBsb2NhbGUgfSkpKSk7IH0pKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVhZC5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBpY29uIGluIHRoZSBzdHlsZWQgZHJvcC1kb3duLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSWNvbkRyb3Bkb3duKHByb3BzKSB7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9fYXNzaWduKHsgd2lkdGg6IFwiOHB4XCIsIGhlaWdodDogXCI4cHhcIiwgdmlld0JveDogXCIwIDAgMTIwIDEyMFwiLCBcImRhdGEtdGVzdGlkXCI6IFwiaWNvbkRyb3Bkb3duXCIgfSwgcHJvcHMpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGQ6IFwiTTQuMjIxODI1NDEsNDguMjIxODI1NCBDOC40NDIyMjgyOCw0NC4wMDE0MjI1IDE1LjIzODg0OTQsNDMuOTI3MzgwNCAxOS41NDk2NDU5LDQ3Ljk5OTY5ODkgTDE5Ljc3ODE3NDYsNDguMjIxODI1NCBMNjAsODguNDQzIEwxMDAuMjIxODI1LDQ4LjIyMTgyNTQgQzEwNC40NDIyMjgsNDQuMDAxNDIyNSAxMTEuMjM4ODQ5LDQzLjkyNzM4MDQgMTE1LjU0OTY0Niw0Ny45OTk2OTg5IEwxMTUuNzc4MTc1LDQ4LjIyMTgyNTQgQzExOS45OTg1NzcsNTIuNDQyMjI4MyAxMjAuMDcyNjIsNTkuMjM4ODQ5NCAxMTYuMDAwMzAxLDYzLjU0OTY0NTkgTDExNS43NzgxNzUsNjMuNzc4MTc0NiBMNjcuNzc4MTc0NiwxMTEuNzc4MTc1IEM2My41NTc3NzE3LDExNS45OTg1NzcgNTYuNzYxMTUwNiwxMTYuMDcyNjIgNTIuNDUwMzU0MSwxMTIuMDAwMzAxIEw1Mi4yMjE4MjU0LDExMS43NzgxNzUgTDQuMjIxODI1NDEsNjMuNzc4MTc0NiBDLTAuMDczOTQxODAyMyw1OS40ODI0MDc0IC0wLjA3Mzk0MTgwMjMsNTIuNTE3NTkyNiA0LjIyMTgyNTQxLDQ4LjIyMTgyNTQgWlwiLCBmaWxsOiBcImN1cnJlbnRDb2xvclwiLCBmaWxsUnVsZTogXCJub256ZXJvXCIgfSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUljb25Ecm9wZG93bi5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBcInByZXZpb3VzIG1vbnRoXCIgYnV0dG9uIGluIHRoZSBuYXZpZ2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSWNvbkxlZnQocHJvcHMpIHtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX19hc3NpZ24oeyB3aWR0aDogXCIxNnB4XCIsIGhlaWdodDogXCIxNnB4XCIsIHZpZXdCb3g6IFwiMCAwIDEyMCAxMjBcIiwgXCJkYXRhLXRlc3RpZFwiOiBcImljb25MZWZ0XCIgfSwgcHJvcHMpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGQ6IFwiTTY5LjQ5MDMzMiwzLjM0MzE0NTc1IEM3Mi42MTQ1MjYzLDAuMjE4OTUxNDE2IDc3LjY3OTg0NjIsMC4yMTg5NTE0MTYgODAuODA0MDQwNSwzLjM0MzE0NTc1IEM4My44NjE3NjI2LDYuNDAwODY3ODYgODMuOTI2ODIwNSwxMS4zMTc5OTMxIDgwLjk5OTIxNDMsMTQuNDU0ODM4OCBMODAuODA0MDQwNSwxNC42NTY4NTQyIEwzNS40NjEsNjAgTDgwLjgwNDA0MDUsMTA1LjM0MzE0NiBDODMuODYxNzYyNiwxMDguNDAwODY4IDgzLjkyNjgyMDUsMTEzLjMxNzk5MyA4MC45OTkyMTQzLDExNi40NTQ4MzkgTDgwLjgwNDA0MDUsMTE2LjY1Njg1NCBDNzcuNzQ2MzE4NCwxMTkuNzE0NTc2IDcyLjgyOTE5MzEsMTE5Ljc3OTYzNCA2OS42OTIzNDc1LDExNi44NTIwMjggTDY5LjQ5MDMzMiwxMTYuNjU2ODU0IEwxOC40OTAzMzIsNjUuNjU2ODU0MiBDMTUuNDMyNjA5OSw2Mi41OTkxMzIxIDE1LjM2NzU1Miw1Ny42ODIwMDY5IDE4LjI5NTE1ODMsNTQuNTQ1MTYxMiBMMTguNDkwMzMyLDU0LjM0MzE0NTggTDY5LjQ5MDMzMiwzLjM0MzE0NTc1IFpcIiwgZmlsbDogXCJjdXJyZW50Q29sb3JcIiwgZmlsbFJ1bGU6IFwibm9uemVyb1wiIH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1JY29uTGVmdC5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8qKlxuICogUmVuZGVyIHRoZSBcIm5leHQgbW9udGhcIiBidXR0b24gaW4gdGhlIG5hdmlnYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBJY29uUmlnaHQocHJvcHMpIHtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX19hc3NpZ24oeyB3aWR0aDogXCIxNnB4XCIsIGhlaWdodDogXCIxNnB4XCIsIHZpZXdCb3g6IFwiMCAwIDEyMCAxMjBcIiB9LCBwcm9wcywgeyBcImRhdGEtdGVzdGlkXCI6IFwiaWNvblJpZ2h0XCIgfSksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZDogXCJNNDkuODA0MDQwNSwzLjM0MzE0NTc1IEM0Ni42Nzk4NDYyLDAuMjE4OTUxNDE2IDQxLjYxNDUyNjMsMC4yMTg5NTE0MTYgMzguNDkwMzMyLDMuMzQzMTQ1NzUgQzM1LjQzMjYwOTksNi40MDA4Njc4NiAzNS4zNjc1NTIsMTEuMzE3OTkzMSAzOC4yOTUxNTgzLDE0LjQ1NDgzODggTDM4LjQ5MDMzMiwxNC42NTY4NTQyIEw4My44MzMzNzI1LDYwIEwzOC40OTAzMzIsMTA1LjM0MzE0NiBDMzUuNDMyNjA5OSwxMDguNDAwODY4IDM1LjM2NzU1MiwxMTMuMzE3OTkzIDM4LjI5NTE1ODMsMTE2LjQ1NDgzOSBMMzguNDkwMzMyLDExNi42NTY4NTQgQzQxLjU0ODA1NDEsMTE5LjcxNDU3NiA0Ni40NjUxNzk0LDExOS43Nzk2MzQgNDkuNjAyMDI1LDExNi44NTIwMjggTDQ5LjgwNDA0MDUsMTE2LjY1Njg1NCBMMTAwLjgwNDA0MSw2NS42NTY4NTQyIEMxMDMuODYxNzYzLDYyLjU5OTEzMjEgMTAzLjkyNjgyMSw1Ny42ODIwMDY5IDEwMC45OTkyMTQsNTQuNTQ1MTYxMiBMMTAwLjgwNDA0MSw1NC4zNDMxNDU4IEw0OS44MDQwNDA1LDMuMzQzMTQ1NzUgWlwiLCBmaWxsOiBcImN1cnJlbnRDb2xvclwiIH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1JY29uUmlnaHQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldFVuaXhUaW1lIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgdXNlRGF5UGlja2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvRGF5UGlja2VyJztcbi8qKlxuICogUmVuZGVyIGEgcm93IGluIHRoZSBjYWxlbmRhciwgd2l0aCB0aGUgZGF5cyBhbmQgb3B0aW9uYWxseSB0aGUgd2VlayBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSb3cocHJvcHMpIHtcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgc3R5bGVzID0gX2Euc3R5bGVzLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc2hvd1dlZWtOdW1iZXIgPSBfYS5zaG93V2Vla051bWJlciwgX2IgPSBfYS5jb21wb25lbnRzLCBEYXkgPSBfYi5EYXksIFdlZWtOdW1iZXIgPSBfYi5XZWVrTnVtYmVyO1xuICAgIHZhciB3ZWVrTnVtYmVyQ2VsbDtcbiAgICBpZiAoc2hvd1dlZWtOdW1iZXIpIHtcbiAgICAgICAgd2Vla051bWJlckNlbGwgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChcInRkXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLmNlbGwsIHN0eWxlOiBzdHlsZXMuY2VsbCB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChXZWVrTnVtYmVyLCB7IG51bWJlcjogcHJvcHMud2Vla051bWJlciwgZGF0ZXM6IHByb3BzLmRhdGVzIH0pKSk7XG4gICAgfVxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInRyXCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnJvdywgc3R5bGU6IHN0eWxlcy5yb3cgfSxcbiAgICAgICAgd2Vla051bWJlckNlbGwsXG4gICAgICAgIHByb3BzLmRhdGVzLm1hcChmdW5jdGlvbiAoZGF0ZSkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy5jZWxsLCBzdHlsZTogc3R5bGVzLmNlbGwsIGtleTogZ2V0VW5peFRpbWUoZGF0ZSkgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF5LCB7IGRpc3BsYXlNb250aDogcHJvcHMuZGlzcGxheU1vbnRoLCBkYXRlOiBkYXRlIH0pKSk7IH0pKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Sb3cuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuLyoqXG4gKiBSZW5kZXIgdGhlIHdlZWsgbnVtYmVyIGVsZW1lbnQuIElmIGBvbldlZWtOdW1iZXJDbGlja2AgaXMgcGFzc2VkIHRvIERheVBpY2tlciwgaXRcbiAqIHJlbmRlcnMgYSBidXR0b24sIG90aGVyd2lzZSBhIHNwYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdlZWtOdW1iZXIocHJvcHMpIHtcbiAgICB2YXIgd2Vla051bWJlciA9IHByb3BzLm51bWJlciwgZGF0ZXMgPSBwcm9wcy5kYXRlcztcbiAgICB2YXIgX2EgPSB1c2VEYXlQaWNrZXIoKSwgb25XZWVrTnVtYmVyQ2xpY2sgPSBfYS5vbldlZWtOdW1iZXJDbGljaywgc3R5bGVzID0gX2Euc3R5bGVzLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgbG9jYWxlID0gX2EubG9jYWxlLCBsYWJlbFdlZWtOdW1iZXIgPSBfYS5sYWJlbHMubGFiZWxXZWVrTnVtYmVyLCBmb3JtYXRXZWVrTnVtYmVyID0gX2EuZm9ybWF0dGVycy5mb3JtYXRXZWVrTnVtYmVyO1xuICAgIHZhciBoYW5kbGVDbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIG9uV2Vla051bWJlckNsaWNrID09PSBudWxsIHx8IG9uV2Vla051bWJlckNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbldlZWtOdW1iZXJDbGljayh3ZWVrTnVtYmVyLCBkYXRlcywgZSk7XG4gICAgfTtcbiAgICB2YXIgY29udGVudCA9IGZvcm1hdFdlZWtOdW1iZXIoTnVtYmVyKHdlZWtOdW1iZXIpLCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgIGlmICghb25XZWVrTnVtYmVyQ2xpY2spIHtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy53ZWVrbnVtYmVyLCBzdHlsZTogc3R5bGVzLndlZWtudW1iZXIgfSwgY29udGVudCkpO1xuICAgIH1cbiAgICB2YXIgbGFiZWwgPSBsYWJlbFdlZWtOdW1iZXIoTnVtYmVyKHdlZWtOdW1iZXIpLCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHsgXCJhcmlhLWxhYmVsXCI6IGxhYmVsLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMud2Vla251bWJlciwgc3R5bGU6IHN0eWxlcy53ZWVrbnVtYmVyLCBvbkNsaWNrOiBoYW5kbGVDbGljayB9LCBjb250ZW50KSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1XZWVrTnVtYmVyLmpzLm1hcCIsIi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgQ1NTIGNsYXNzZXMuXG4gKi9cbmV4cG9ydCB2YXIgZGVmYXVsdENsYXNzTmFtZXMgPSB7XG4gICAgcm9vdDogJ3JkcCcsXG4gICAgbXVsdGlwbGVfbW9udGhzOiAncmRwLW11bHRpcGxlX21vbnRocycsXG4gICAgd2l0aF93ZWVrbnVtYmVyOiAncmRwLXdpdGhfd2Vla251bWJlcicsXG4gICAgdmhpZGRlbjogJ3JkcC12aGlkZGVuJyxcbiAgICBidXR0b25fcmVzZXQ6ICdyZHAtYnV0dG9uX3Jlc2V0JyxcbiAgICBidXR0b246ICdyZHAtYnV0dG9uJyxcbiAgICBjYXB0aW9uOiAncmRwLWNhcHRpb24nLFxuICAgIGNhcHRpb25fc3RhcnQ6ICdyZHAtY2FwdGlvbl9zdGFydCcsXG4gICAgY2FwdGlvbl9lbmQ6ICdyZHAtY2FwdGlvbl9lbmQnLFxuICAgIGNhcHRpb25fYmV0d2VlbjogJ3JkcC1jYXB0aW9uX2JldHdlZW4nLFxuICAgIGNhcHRpb25fbGFiZWw6ICdyZHAtY2FwdGlvbl9sYWJlbCcsXG4gICAgY2FwdGlvbl9kcm9wZG93bnM6ICdyZHAtY2FwdGlvbl9kcm9wZG93bnMnLFxuICAgIGRyb3Bkb3duOiAncmRwLWRyb3Bkb3duJyxcbiAgICBkcm9wZG93bl9tb250aDogJ3JkcC1kcm9wZG93bl9tb250aCcsXG4gICAgZHJvcGRvd25feWVhcjogJ3JkcC1kcm9wZG93bl95ZWFyJyxcbiAgICBkcm9wZG93bl9pY29uOiAncmRwLWRyb3Bkb3duX2ljb24nLFxuICAgIG1vbnRoczogJ3JkcC1tb250aHMnLFxuICAgIG1vbnRoOiAncmRwLW1vbnRoJyxcbiAgICB0YWJsZTogJ3JkcC10YWJsZScsXG4gICAgdGJvZHk6ICdyZHAtdGJvZHknLFxuICAgIHRmb290OiAncmRwLXRmb290JyxcbiAgICBoZWFkOiAncmRwLWhlYWQnLFxuICAgIGhlYWRfcm93OiAncmRwLWhlYWRfcm93JyxcbiAgICBoZWFkX2NlbGw6ICdyZHAtaGVhZF9jZWxsJyxcbiAgICBuYXY6ICdyZHAtbmF2JyxcbiAgICBuYXZfYnV0dG9uOiAncmRwLW5hdl9idXR0b24nLFxuICAgIG5hdl9idXR0b25fcHJldmlvdXM6ICdyZHAtbmF2X2J1dHRvbl9wcmV2aW91cycsXG4gICAgbmF2X2J1dHRvbl9uZXh0OiAncmRwLW5hdl9idXR0b25fbmV4dCcsXG4gICAgbmF2X2ljb246ICdyZHAtbmF2X2ljb24nLFxuICAgIHJvdzogJ3JkcC1yb3cnLFxuICAgIHdlZWtudW1iZXI6ICdyZHAtd2Vla251bWJlcicsXG4gICAgY2VsbDogJ3JkcC1jZWxsJyxcbiAgICBkYXk6ICdyZHAtZGF5JyxcbiAgICBkYXlfb3V0c2lkZTogJ3JkcC1kYXlfb3V0c2lkZSdcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0Q2xhc3NOYW1lcy5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIGNhcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDYXB0aW9uKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdChtb250aCwgJ0xMTEwgeScsIG9wdGlvbnMpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0Q2FwdGlvbi5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIERheSBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXkoZGF5LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdChkYXksICdkJywgb3B0aW9ucyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXREYXkuanMubWFwIiwiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuLyoqXG4gKiBUaGUgZGVmYXVsdCBmb3JtYXR0ZXIgZm9yIHRoZSBNb250aCBjYXB0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TW9udGhDYXB0aW9uKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdChtb250aCwgJ0xMTEwnLCBvcHRpb25zKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1hdE1vbnRoQ2FwdGlvbi5qcy5tYXAiLCIvKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIHdlZWsgbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V2Vla051bWJlcih3ZWVrTnVtYmVyKSB7XG4gICAgcmV0dXJuIFwiXCIgKyB3ZWVrTnVtYmVyO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0V2Vla051bWJlci5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIHdlZWtkYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXZWVrZGF5TmFtZSh3ZWVrZGF5LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGZvcm1hdCh3ZWVrZGF5LCAnY2NjY2NjJywgb3B0aW9ucyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXRXZWVrZGF5TmFtZS5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IGZvcm1hdHRlciBmb3IgdGhlIFllYXIgY2FwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFllYXJDYXB0aW9uKHllYXIsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gZm9ybWF0KHllYXIsICd5eXl5Jywgb3B0aW9ucyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXRZZWFyQ2FwdGlvbi5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIHRoZSBkYXkgYnV0dG9uLlxuICovXG5leHBvcnQgdmFyIGxhYmVsRGF5ID0gZnVuY3Rpb24gKGRheSwgbW9kaWZlcnMsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gZm9ybWF0KGRheSwgJ2RvIE1NTU0gKEVFRUUpJywgb3B0aW9ucyk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGFiZWxEYXkuanMubWFwIiwiLyoqXG4gKiBUaGUgZGVmYXVsdCBBUklBIGxhYmVsIGZvciB0aGUgV2Vla051bWJlciBlbGVtZW50LlxuICovXG5leHBvcnQgdmFyIGxhYmVsTW9udGhEcm9wZG93biA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gJ01vbnRoOiAnO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxhYmVsTW9udGhEcm9wZG93bi5qcy5tYXAiLCIvKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIG5leHQgbW9udGggYnV0dG9uIGluIG5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IHZhciBsYWJlbE5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICdHbyB0byBuZXh0IG1vbnRoJztcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYWJlbE5leHQuanMubWFwIiwiLyoqXG4gKiBUaGUgZGVmYXVsdCBBUklBIGxhYmVsIGZvciBwcmV2aW91cyBtb250aCBidXR0b24gaW4gbmF2aWdhdGlvblxuICovXG5leHBvcnQgdmFyIGxhYmVsUHJldmlvdXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICdHbyB0byBwcmV2aW91cyBtb250aCc7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGFiZWxQcmV2aW91cy5qcy5tYXAiLCJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIHRoZSBXZWVrZGF5IGVsZW1lbnQuXG4gKi9cbmV4cG9ydCB2YXIgbGFiZWxXZWVrZGF5ID0gZnVuY3Rpb24gKGRheSwgb3B0aW9ucykge1xuICAgIHJldHVybiBmb3JtYXQoZGF5LCAnY2NjYycsIG9wdGlvbnMpO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxhYmVsV2Vla2RheS5qcy5tYXAiLCIvKipcbiAqIFRoZSBkZWZhdWx0IEFSSUEgbGFiZWwgZm9yIHRoZSBXZWVrTnVtYmVyIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCB2YXIgbGFiZWxXZWVrTnVtYmVyID0gZnVuY3Rpb24gKG4pIHtcbiAgICByZXR1cm4gXCJXZWVrIG4uIFwiICsgbjtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYWJlbFdlZWtOdW1iZXIuanMubWFwIiwiLyoqXG4gKiBUaGUgZGVmYXVsdCBBUklBIGxhYmVsIGZvciB0aGUgV2Vla051bWJlciBlbGVtZW50LlxuICovXG5leHBvcnQgdmFyIGxhYmVsWWVhckRyb3Bkb3duID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAnWWVhcjogJztcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYWJlbFllYXJEcm9wZG93bi5qcy5tYXAiLCJpbXBvcnQgeyBzdGFydE9mRGF5LCBzdGFydE9mTW9udGggfSBmcm9tICdkYXRlLWZucyc7XG4vKipcbiAqIEJ1aWxkIHRoZSBgZnJvbURhdGVgIGFuZCBgdG9EYXRlYCB2YWx1ZXMsIGdpdmVuIHRoZSBmcm9tTW9udGgvdG9Nb250aFxuICogb3IgZnJvbVllYXIvdG9ZZWFyIHByb3BzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcm9tVG9Qcm9wcyhwcm9wcykge1xuICAgIHZhciBmcm9tWWVhciA9IHByb3BzLmZyb21ZZWFyLCB0b1llYXIgPSBwcm9wcy50b1llYXIsIGZyb21Nb250aCA9IHByb3BzLmZyb21Nb250aCwgdG9Nb250aCA9IHByb3BzLnRvTW9udGg7XG4gICAgdmFyIGZyb21EYXRlID0gcHJvcHMuZnJvbURhdGUsIHRvRGF0ZSA9IHByb3BzLnRvRGF0ZTtcbiAgICBpZiAoZnJvbU1vbnRoKSB7XG4gICAgICAgIGZyb21EYXRlID0gc3RhcnRPZk1vbnRoKGZyb21Nb250aCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGZyb21ZZWFyKSB7XG4gICAgICAgIGZyb21EYXRlID0gbmV3IERhdGUoZnJvbVllYXIsIDAsIDEpO1xuICAgIH1cbiAgICBpZiAodG9Nb250aCkge1xuICAgICAgICB0b0RhdGUgPSBzdGFydE9mTW9udGgodG9Nb250aCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRvWWVhcikge1xuICAgICAgICB0b0RhdGUgPSBuZXcgRGF0ZSh0b1llYXIsIDExLCAzMSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGZyb21EYXRlOiBmcm9tRGF0ZSA/IHN0YXJ0T2ZEYXkoZnJvbURhdGUpIDogdW5kZWZpbmVkLFxuICAgICAgICB0b0RhdGU6IHRvRGF0ZSA/IHN0YXJ0T2ZEYXkodG9EYXRlKSA6IHVuZGVmaW5lZFxuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXJzZUZyb21Ub1Byb3BzLmpzLm1hcCIsImltcG9ydCB7IF9fYXNzaWduLCBfX3Jlc3QgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBlblVTIH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlJztcbmltcG9ydCB7IENhcHRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0NhcHRpb24nO1xuaW1wb3J0IHsgQ2FwdGlvbkxhYmVsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9DYXB0aW9uTGFiZWwnO1xuaW1wb3J0IHsgRGF5IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9EYXknO1xuaW1wb3J0IHsgRGF5Q29udGVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRGF5Q29udGVudCc7XG5pbXBvcnQgeyBEcm9wZG93biB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRHJvcGRvd24nO1xuaW1wb3J0IHsgRm9vdGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Gb290ZXInO1xuaW1wb3J0IHsgSGVhZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvSGVhZCc7XG5pbXBvcnQgeyBJY29uRHJvcGRvd24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0ljb25Ecm9wZG93bic7XG5pbXBvcnQgeyBJY29uTGVmdCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvSWNvbkxlZnQnO1xuaW1wb3J0IHsgSWNvblJpZ2h0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9JY29uUmlnaHQnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Sb3cnO1xuaW1wb3J0IHsgV2Vla051bWJlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvV2Vla051bWJlcic7XG5pbXBvcnQgeyBkZWZhdWx0Q2xhc3NOYW1lcyB9IGZyb20gJy4vZGVmYXVsdENsYXNzTmFtZXMnO1xuaW1wb3J0ICogYXMgZm9ybWF0dGVycyBmcm9tICcuL2Zvcm1hdHRlcnMnO1xuaW1wb3J0ICogYXMgbGFiZWxzIGZyb20gJy4vbGFiZWxzJztcbmltcG9ydCB7IHBhcnNlRnJvbVRvUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbi8qKlxuICogVGhlIERheVBpY2tlciBDb250ZXh0IHNoYXJlcyB0aGUgcHJvcHMgcGFzc2VkIHRvIERheVBpY2tlciB3aXRoaW4gaW50ZXJuYWxcbiAqIGFuZCBjdXN0b20gY29tcG9uZW50cy4gSXQgaXMgdXNlZCB0byBzZXQgdGhlIGRlZmF1bHQgdmFsdWVzIGFuZCBwZXJmb3JtXG4gKiBvbmUtdGltZSBjYWxjdWxhdGlvbnMgcmVxdWlyZWQgdG8gcmVuZGVyIHRoZSBkYXlzLlxuICpcbiAqIERldmVsb3BlcnMgbWF5IGFjY2VzcyB0byB0aGlzIGNvbnRleHQgZnJvbSB0aGUgW1t1c2VEYXlQaWNrZXJdXSBob29rIHdoZW5cbiAqIHVzaW5nIGN1c3RvbSBjb21wb25lbnRzLlxuICovXG5leHBvcnQgdmFyIERheVBpY2tlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHVuZGVmaW5lZCk7XG4vKipcbiAqIFRoZSBwcm92aWRlciBmb3IgdGhlIFtbRGF5UGlja2VyQ29udGV4dF1dLlxuICpcbiAqIFRoZSBjb250ZXh0IHZhbHVlIGlzIHNldCBieSBhc3NpZ25pbmcgZGVmYXVsdHMgZnJvbSB0aGUgaW5pdGlhbCBEYXlQaWNrZXJcbiAqIHByb3BzLlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBEYXlQaWNrZXJQcm92aWRlcihwcm9wcykge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZztcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgaW5pdGlhbFByb3BzID0gcHJvcHMuaW5pdGlhbFByb3BzO1xuICAgIHZhciBsb2NhbGUgPSAoX2EgPSBpbml0aWFsUHJvcHMubG9jYWxlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBlblVTO1xuICAgIHZhciBudW1iZXJPZk1vbnRocyA9IChfYiA9IGluaXRpYWxQcm9wcy5udW1iZXJPZk1vbnRocykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMTtcbiAgICB2YXIgdG9kYXkgPSAoX2MgPSBpbml0aWFsUHJvcHMudG9kYXkpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IG5ldyBEYXRlKCk7XG4gICAgLy8gTGltaXQgbmF2aWdhdGlvblxuICAgIHZhciBfaCA9IHBhcnNlRnJvbVRvUHJvcHMoaW5pdGlhbFByb3BzKSwgZnJvbURhdGUgPSBfaC5mcm9tRGF0ZSwgdG9EYXRlID0gX2gudG9EYXRlO1xuICAgIC8vIERlZmF1bHQgY2FwdGlvbiBsYXlvdXQuIElmIGNhbGVuZGFyIG5hdmlnYXRpb24gaXMgdW5saW1pdGVkLCBpdCBtdXN0IGJlXG4gICAgLy8gYWx3YXlzIGBidXR0b25zYCDigJMgYXMgd2UgY2Fubm90IGRpc3BsYXkgeWV0IGluZmluaXRlIG9wdGlvbnMgaW4gdGhlIGRyb3Bkb3duLlxuICAgIHZhciBjYXB0aW9uTGF5b3V0ID0gKF9kID0gaW5pdGlhbFByb3BzLmNhcHRpb25MYXlvdXQpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6ICdidXR0b25zJztcbiAgICBpZiAoIWZyb21EYXRlICYmICF0b0RhdGUpXG4gICAgICAgIGNhcHRpb25MYXlvdXQgPSAnYnV0dG9ucyc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHZhciB0b1llYXIgPSBpbml0aWFsUHJvcHMudG9ZZWFyLCBmcm9tWWVhciA9IGluaXRpYWxQcm9wcy5mcm9tWWVhciwgdG9Nb250aCA9IGluaXRpYWxQcm9wcy50b01vbnRoLCBmcm9tTW9udGggPSBpbml0aWFsUHJvcHMuZnJvbU1vbnRoLCBjb250ZXh0UHJvcHMgPSBfX3Jlc3QoaW5pdGlhbFByb3BzLCBbXCJ0b1llYXJcIiwgXCJmcm9tWWVhclwiLCBcInRvTW9udGhcIiwgXCJmcm9tTW9udGhcIl0pO1xuICAgIHZhciBjb250ZXh0ID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbnRleHRQcm9wcyksIHsgY2FwdGlvbkxheW91dDogY2FwdGlvbkxheW91dCwgZnJvbURhdGU6IGZyb21EYXRlLCB0b0RhdGU6IHRvRGF0ZSwgdG9kYXk6IHRvZGF5LCBsb2NhbGU6IGxvY2FsZSwgbW9kaWZpZXJDbGFzc05hbWVzOiAoX2UgPSBpbml0aWFsUHJvcHMubW9kaWZpZXJDbGFzc05hbWVzKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiB7fSwgXG4gICAgICAgIC8vIFRPRE86IFNob3VsZCB0aGlzIGJlIGluaXRpYWxQcm9wcy5tb2RpZmllclByZWZpeCA/PyAncmRwLWRheV8nP1xuICAgICAgICBtb2RpZmllclByZWZpeDogJ3JkcC1kYXlfJywgbW9kaWZpZXJzOiAoX2YgPSBpbml0aWFsUHJvcHMubW9kaWZpZXJzKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiB7fSwgbnVtYmVyT2ZNb250aHM6IG51bWJlck9mTW9udGhzLCBzdHlsZXM6IChfZyA9IGluaXRpYWxQcm9wcy5zdHlsZXMpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IHt9LCBjbGFzc05hbWVzOiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgZGVmYXVsdENsYXNzTmFtZXMpLCBpbml0aWFsUHJvcHMuY2xhc3NOYW1lcyksIGZvcm1hdHRlcnM6IF9fYXNzaWduKF9fYXNzaWduKHt9LCBmb3JtYXR0ZXJzKSwgaW5pdGlhbFByb3BzLmZvcm1hdHRlcnMpLCBsYWJlbHM6IF9fYXNzaWduKF9fYXNzaWduKHt9LCBsYWJlbHMpLCBpbml0aWFsUHJvcHMubGFiZWxzKSwgY29tcG9uZW50czogX19hc3NpZ24oeyBDYXB0aW9uOiBDYXB0aW9uLCBDYXB0aW9uTGFiZWw6IENhcHRpb25MYWJlbCwgRGF5OiBEYXksIERheUNvbnRlbnQ6IERheUNvbnRlbnQsIERyb3Bkb3duOiBEcm9wZG93biwgRm9vdGVyOiBGb290ZXIsIEhlYWQ6IEhlYWQsIEljb25Ecm9wZG93bjogSWNvbkRyb3Bkb3duLCBJY29uUmlnaHQ6IEljb25SaWdodCwgSWNvbkxlZnQ6IEljb25MZWZ0LCBSb3c6IFJvdywgV2Vla051bWJlcjogV2Vla051bWJlciB9LCBpbml0aWFsUHJvcHMuY29tcG9uZW50cykgfSk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KERheVBpY2tlckNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHQgfSwgY2hpbGRyZW4pKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURheVBpY2tlckNvbnRleHQuanMubWFwIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IERheVBpY2tlckNvbnRleHQgfSBmcm9tICcuL0RheVBpY2tlckNvbnRleHQnO1xuLyoqXG4gKiBIb29rIHRvIGFjY2VzcyB0aGUgW1tEYXlQaWNrZXJDb250ZXh0XV0uXG4gKlxuICogVG8gdXNlIHRoaXMgaG9vayBtYWtlIHN1cmUgdG8gd3JhcCB0aGUgY29tcG9uZW50cyB3aXRoIGEgb25lXG4gKiBbW0RheVBpY2tlclByb3ZpZGVyXV0uXG4gKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURheVBpY2tlcigpIHtcbiAgICB2YXIgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRGF5UGlja2VyQ29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbnRleHQgaXMgbm90IGRlZmluZWQuIHVzZURheVBpY2tlciBtdXN0IGJlIHVzZWQgd2l0aGluIGEgRGF5UGlja2VyUHJvdmlkZXIgd2l0aCBhIHZhbGlkIHZhbHVlcy5cIik7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlRGF5UGlja2VyLmpzLm1hcCIsImltcG9ydCB7IGFkZERheXMsIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cywgZW5kT2ZXZWVrIH0gZnJvbSAnZGF0ZS1mbnMnO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE91dHNpZGVFbmREYXlzKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheXMgPSBbXTtcbiAgICB2YXIgbGFzdERheU9mV2VlayA9IGVuZE9mV2Vlayhtb250aCwgb3B0aW9ucyk7XG4gICAgdmFyIGVuZERpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobGFzdERheU9mV2VlaywgbW9udGgpO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IGVuZERpZmY7IGkrKykge1xuICAgICAgICB2YXIgZGF5RGF0ZSA9IGFkZERheXMobW9udGgsIGkpO1xuICAgICAgICBkYXlzLnB1c2goZGF5RGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBkYXlzO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0T3V0c2lkZUVuZERheXMuanMubWFwIiwiaW1wb3J0IHsgYWRkRGF5cywgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLCBzdGFydE9mV2VlayB9IGZyb20gJ2RhdGUtZm5zJztcbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRzaWRlU3RhcnREYXlzKG1vbnRoLCBvcHRpb25zKSB7XG4gICAgdmFyIGRheXMgPSBbXTtcbiAgICB2YXIgZmlyc3REYXlPZldlZWsgPSBzdGFydE9mV2Vlayhtb250aCwgb3B0aW9ucyk7XG4gICAgdmFyIHN0YXJ0RGlmZiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhtb250aCwgZmlyc3REYXlPZldlZWspO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhcnREaWZmOyBpKyspIHtcbiAgICAgICAgdmFyIG5ld0RheSA9IGFkZERheXMoZmlyc3REYXlPZldlZWssIGkpO1xuICAgICAgICBkYXlzLnB1c2gobmV3RGF5KTtcbiAgICB9XG4gICAgcmV0dXJuIGRheXM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRPdXRzaWRlU3RhcnREYXlzLmpzLm1hcCIsImltcG9ydCB7IGFkZERheXMsIGFkZFdlZWtzLCBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsIGVuZE9mTW9udGgsIGdldFdlZWssIGdldFdlZWtzSW5Nb250aCwgc3RhcnRPZk1vbnRoIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0T3V0c2lkZUVuZERheXMgfSBmcm9tICcuL2dldE91dHNpZGVFbmREYXlzJztcbmltcG9ydCB7IGdldE91dHNpZGVTdGFydERheXMgfSBmcm9tICcuL2dldE91dHNpZGVTdGFydERheXMnO1xuLyoqXG4gKiBSZXR1cm4gdGhlIHdlZWtzIGJlbG9uZ2luZyB0byB0aGUgZ2l2ZW4gbW9udGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWVrcyhtb250aCwgX2EpIHtcbiAgICB2YXIgbG9jYWxlID0gX2EubG9jYWxlLCBmaXhlZFdlZWtzID0gX2EuZml4ZWRXZWVrcztcbiAgICB2YXIgbW9udGhTdGFydCA9IHN0YXJ0T2ZNb250aChtb250aCk7XG4gICAgdmFyIG1vbnRoRW5kID0gZW5kT2ZNb250aChtb250aCk7XG4gICAgdmFyIGRpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobW9udGhFbmQsIG1vbnRoU3RhcnQpO1xuICAgIHZhciB3ZWVrcyA9IFtdO1xuICAgIHZhciBsYXN0V2VlayA9IHsgd2Vla051bWJlcjogMCwgZGF0ZXM6IFtdIH07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gZGlmZjsgaSsrKSB7XG4gICAgICAgIHZhciBkYXRlID0gYWRkRGF5cyhtb250aFN0YXJ0LCBpKTtcbiAgICAgICAgdmFyIHdlZWsgPSBnZXRXZWVrKGRhdGUsIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgICAgIGlmIChsYXN0V2Vlay53ZWVrTnVtYmVyICE9PSB3ZWVrKSB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgd2VlayBieSBhZGRpbmcgb3V0c2lkZSBzdGFydCBkYXlzXG4gICAgICAgICAgICB2YXIgc3RhcnREYXlzID0gZ2V0T3V0c2lkZVN0YXJ0RGF5cyhkYXRlLCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgICAgICAgICAgbGFzdFdlZWsgPSB7IHdlZWtOdW1iZXI6IHdlZWssIGRhdGVzOiBzdGFydERheXMgfTtcbiAgICAgICAgICAgIHdlZWtzLnB1c2gobGFzdFdlZWspO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RXZWVrLmRhdGVzLnB1c2goZGF0ZSk7XG4gICAgfVxuICAgIHZhciBsYXN0RGF5ID0gbGFzdFdlZWsuZGF0ZXNbbGFzdFdlZWsuZGF0ZXMubGVuZ3RoIC0gMV07XG4gICAgdmFyIGVuZERheXMgPSBnZXRPdXRzaWRlRW5kRGF5cyhsYXN0RGF5LCB7IGxvY2FsZTogbG9jYWxlIH0pO1xuICAgIGxhc3RXZWVrLmRhdGVzID0gbGFzdFdlZWsuZGF0ZXMuY29uY2F0KGVuZERheXMpO1xuICAgIC8vIEFkZCBleHRyYSB3ZWVrcyB0byB0aGUgbW9udGgsIHVwIHRvIDYgd2Vla3NcbiAgICBpZiAoZml4ZWRXZWVrcykge1xuICAgICAgICB2YXIgbGFzdFdlZWtEYXRlID0gbGFzdFdlZWsuZGF0ZXNbbGFzdFdlZWsuZGF0ZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIHZhciB3ZWVrc0luTW9udGggPSBnZXRXZWVrc0luTW9udGgobW9udGgsIHsgbG9jYWxlOiBsb2NhbGUgfSk7XG4gICAgICAgIGlmICh3ZWVrc0luTW9udGggPCA2KSB7XG4gICAgICAgICAgICB2YXIgZGlmZkRheXMgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoYWRkV2Vla3MobGFzdFdlZWtEYXRlLCA2IC0gd2Vla3NJbk1vbnRoKSwgbGFzdFdlZWtEYXRlKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlmZkRheXM7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBkYXRlID0gYWRkRGF5cyhsYXN0V2Vla0RhdGUsIGkgKyAxKTtcbiAgICAgICAgICAgICAgICB2YXIgd2VlayA9IGdldFdlZWsoZGF0ZSwgeyBsb2NhbGU6IGxvY2FsZSB9KTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdFdlZWsud2Vla051bWJlciAhPT0gd2Vlaykge1xuICAgICAgICAgICAgICAgICAgICBsYXN0V2VlayA9IHsgd2Vla051bWJlcjogd2VlaywgZGF0ZXM6IFtdIH07XG4gICAgICAgICAgICAgICAgICAgIHdlZWtzLnB1c2gobGFzdFdlZWspO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsYXN0V2Vlay5kYXRlcy5wdXNoKGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3ZWVrcztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldFdlZWtzLmpzLm1hcCIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEYXlQaWNrZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9EYXlQaWNrZXInO1xuaW1wb3J0IHsgZ2V0V2Vla3MgfSBmcm9tICcuL3V0aWxzL2dldFdlZWtzJztcbi8qKlxuICogUmVuZGVyIHRoZSB0YWJsZSB3aXRoIHRoZSBjYWxlbmRhci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhYmxlKHByb3BzKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGxvY2FsZSA9IF9hLmxvY2FsZSwgY2xhc3NOYW1lcyA9IF9hLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9hLnN0eWxlcywgaGlkZUhlYWQgPSBfYS5oaWRlSGVhZCwgZml4ZWRXZWVrcyA9IF9hLmZpeGVkV2Vla3MsIF9iID0gX2EuY29tcG9uZW50cywgSGVhZCA9IF9iLkhlYWQsIFJvdyA9IF9iLlJvdywgRm9vdGVyID0gX2IuRm9vdGVyO1xuICAgIHZhciB3ZWVrcyA9IGdldFdlZWtzKHByb3BzLmRpc3BsYXlNb250aCwgeyBsb2NhbGU6IGxvY2FsZSwgZml4ZWRXZWVrczogZml4ZWRXZWVrcyB9KTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0YWJsZVwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lcy50YWJsZSwgc3R5bGU6IHN0eWxlcy50YWJsZSwgcm9sZTogXCJncmlkXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHByb3BzWydhcmlhLWxhYmVsbGVkYnknXSB9LFxuICAgICAgICAhaGlkZUhlYWQgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChIZWFkLCBudWxsKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInRib2R5XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLnRib2R5LCBzdHlsZTogc3R5bGVzLnRib2R5IH0sIHdlZWtzLm1hcChmdW5jdGlvbiAod2VlaykgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUm93LCB7IGRpc3BsYXlNb250aDogcHJvcHMuZGlzcGxheU1vbnRoLCBrZXk6IHdlZWsud2Vla051bWJlciwgZGF0ZXM6IHdlZWsuZGF0ZXMsIHdlZWtOdW1iZXI6IHdlZWsud2Vla051bWJlciB9KSk7IH0pKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGb290ZXIsIG51bGwpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZS5qcy5tYXAiLCJpbXBvcnQgeyBfX2Fzc2lnbiB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJlYWNoL2F1dG8taWQnO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1RhYmxlJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vY29udGV4dHMvTmF2aWdhdGlvbic7XG4vKiogUmVuZGVyIGEgbW9udGguICovXG5leHBvcnQgZnVuY3Rpb24gTW9udGgocHJvcHMpIHtcbiAgICB2YXIgX2E7XG4gICAgdmFyIF9iID0gdXNlRGF5UGlja2VyKCksIGRpciA9IF9iLmRpciwgY2xhc3NOYW1lcyA9IF9iLmNsYXNzTmFtZXMsIHN0eWxlcyA9IF9iLnN0eWxlcywgQ2FwdGlvbiA9IF9iLmNvbXBvbmVudHMuQ2FwdGlvbjtcbiAgICB2YXIgZGlzcGxheU1vbnRocyA9IHVzZU5hdmlnYXRpb24oKS5kaXNwbGF5TW9udGhzO1xuICAgIHZhciBjYXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIHZhciBjbGFzc05hbWUgPSBbY2xhc3NOYW1lcy5tb250aF07XG4gICAgdmFyIHN0eWxlID0gc3R5bGVzLm1vbnRoO1xuICAgIHZhciBpc1N0YXJ0ID0gcHJvcHMuZGlzcGxheUluZGV4ID09PSAwO1xuICAgIHZhciBpc0VuZCA9IHByb3BzLmRpc3BsYXlJbmRleCA9PT0gZGlzcGxheU1vbnRocy5sZW5ndGggLSAxO1xuICAgIHZhciBpc0NlbnRlciA9ICFpc1N0YXJ0ICYmICFpc0VuZDtcbiAgICBpZiAoZGlyID09PSAncnRsJykge1xuICAgICAgICBfYSA9IFtpc1N0YXJ0LCBpc0VuZF0sIGlzRW5kID0gX2FbMF0sIGlzU3RhcnQgPSBfYVsxXTtcbiAgICB9XG4gICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgICAgY2xhc3NOYW1lLnB1c2goY2xhc3NOYW1lcy5jYXB0aW9uX3N0YXJ0KTtcbiAgICAgICAgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3R5bGUpLCBzdHlsZXMuY2FwdGlvbl9zdGFydCk7XG4gICAgfVxuICAgIGlmIChpc0VuZCkge1xuICAgICAgICBjbGFzc05hbWUucHVzaChjbGFzc05hbWVzLmNhcHRpb25fZW5kKTtcbiAgICAgICAgc3R5bGUgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3R5bGUpLCBzdHlsZXMuY2FwdGlvbl9lbmQpO1xuICAgIH1cbiAgICBpZiAoaXNDZW50ZXIpIHtcbiAgICAgICAgY2xhc3NOYW1lLnB1c2goY2xhc3NOYW1lcy5jYXB0aW9uX2JldHdlZW4pO1xuICAgICAgICBzdHlsZSA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBzdHlsZSksIHN0eWxlcy5jYXB0aW9uX2JldHdlZW4pO1xuICAgIH1cbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBrZXk6IHByb3BzLmRpc3BsYXlJbmRleCwgY2xhc3NOYW1lOiBjbGFzc05hbWUuam9pbignICcpLCBzdHlsZTogc3R5bGUgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChDYXB0aW9uLCB7IGlkOiBjYXB0aW9uSWQsIGRpc3BsYXlNb250aDogcHJvcHMuZGlzcGxheU1vbnRoIH0pLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYmxlLCB7IFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGNhcHRpb25JZCwgZGlzcGxheU1vbnRoOiBwcm9wcy5kaXNwbGF5TW9udGggfSkpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1vbnRoLmpzLm1hcCIsImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW9udGggfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL01vbnRoJztcbmltcG9ydCB7IHVzZURheVBpY2tlciB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0RheVBpY2tlcic7XG5pbXBvcnQgeyB1c2VGb2N1cyB9IGZyb20gJy4uLy4uL2NvbnRleHRzL0ZvY3VzJztcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi8uLi9jb250ZXh0cy9OYXZpZ2F0aW9uJztcbi8qKlxuICogUmVuZGVyIHRoZSBjb250YWluZXIgd2l0aCB0aGUgbW9udGhzIGFuZCB0aGVpciBjYXB0aW9ucy4gVGhlIG51bWJlciBvZiBtb250aHNcbiAqIHJlbmRlcmVkIGRlcGVuZHMgYnkgdGhlIGBudW1iZXJPZk1vbnRoc2AgcHJvcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJvb3QoKSB7XG4gICAgdmFyIF9hID0gdXNlRGF5UGlja2VyKCksIGRpciA9IF9hLmRpciwgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLCBjbGFzc05hbWVzID0gX2EuY2xhc3NOYW1lcywgc3R5bGUgPSBfYS5zdHlsZSwgc3R5bGVzID0gX2Euc3R5bGVzLCBudW1iZXJPZk1vbnRocyA9IF9hLm51bWJlck9mTW9udGhzLCBzaG93V2Vla051bWJlciA9IF9hLnNob3dXZWVrTnVtYmVyLCBpbml0aWFsRm9jdXMgPSBfYS5pbml0aWFsRm9jdXM7XG4gICAgdmFyIF9iID0gdXNlRm9jdXMoKSwgZm9jdXNUYXJnZXQgPSBfYi5mb2N1c1RhcmdldCwgZm9jdXMgPSBfYi5mb2N1cztcbiAgICB2YXIgX2MgPSBSZWFjdC51c2VTdGF0ZShmYWxzZSksIGhhc0luaXRpYWxGb2N1cyA9IF9jWzBdLCBzZXRIYXNJbml0aWFsRm9jdXMgPSBfY1sxXTtcbiAgICB2YXIgZGlzcGxheU1vbnRocyA9IHVzZU5hdmlnYXRpb24oKS5kaXNwbGF5TW9udGhzO1xuICAgIHZhciByb290Q2xhc3NOYW1lcyA9IFtjbGFzc05hbWUgIT09IG51bGwgJiYgY2xhc3NOYW1lICE9PSB2b2lkIDAgPyBjbGFzc05hbWUgOiBjbGFzc05hbWVzLnJvb3RdO1xuICAgIGlmIChudW1iZXJPZk1vbnRocyA+IDEpIHtcbiAgICAgICAgcm9vdENsYXNzTmFtZXMucHVzaChjbGFzc05hbWVzLm11bHRpcGxlX21vbnRocyk7XG4gICAgfVxuICAgIGlmIChzaG93V2Vla051bWJlcikge1xuICAgICAgICByb290Q2xhc3NOYW1lcy5wdXNoKGNsYXNzTmFtZXMud2l0aF93ZWVrbnVtYmVyKTtcbiAgICB9XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGluaXRpYWxGb2N1cyAmJiAhaGFzSW5pdGlhbEZvY3VzICYmIGZvY3VzVGFyZ2V0KSB7XG4gICAgICAgICAgICBmb2N1cyhmb2N1c1RhcmdldCk7XG4gICAgICAgICAgICBzZXRIYXNJbml0aWFsRm9jdXModHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbaW5pdGlhbEZvY3VzLCBoYXNJbml0aWFsRm9jdXMsIGZvY3VzLCBmb2N1c1RhcmdldF0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogcm9vdENsYXNzTmFtZXMuam9pbignICcpLCBzdHlsZTogX19hc3NpZ24oX19hc3NpZ24oe30sIHN0eWxlcy5yb290KSwgc3R5bGUpLCBkaXI6IGRpciB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzLm1vbnRocywgc3R5bGU6IHN0eWxlcy5tb250aHMgfSwgZGlzcGxheU1vbnRocy5tYXAoZnVuY3Rpb24gKG1vbnRoLCBpKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChNb250aCwgeyBrZXk6IGksIGRpc3BsYXlJbmRleDogaSwgZGlzcGxheU1vbnRoOiBtb250aCB9KSk7IH0pKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Um9vdC5qcy5tYXAiLCJpbXBvcnQgeyBfX3Jlc3QgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEYXlQaWNrZXJQcm92aWRlciB9IGZyb20gJy4vRGF5UGlja2VyJztcbmltcG9ydCB7IEZvY3VzUHJvdmlkZXIgfSBmcm9tICcuL0ZvY3VzJztcbmltcG9ydCB7IE1vZGlmaWVyc1Byb3ZpZGVyIH0gZnJvbSAnLi9Nb2RpZmllcnMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9OYXZpZ2F0aW9uJztcbmltcG9ydCB7IFNlbGVjdE11bHRpcGxlUHJvdmlkZXIgfSBmcm9tICcuL1NlbGVjdE11bHRpcGxlJztcbmltcG9ydCB7IFNlbGVjdFJhbmdlUHJvdmlkZXIgfSBmcm9tICcuL1NlbGVjdFJhbmdlJztcbmltcG9ydCB7IFNlbGVjdFNpbmdsZVByb3ZpZGVyIH0gZnJvbSAnLi9TZWxlY3RTaW5nbGUnO1xuLyoqIFByb3ZpZGUgdGhlIHZhbHVlIGZvciBhbGwgdGhlIGNvbnRleHQgcHJvdmlkZXJzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJvb3RQcm92aWRlcihwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBpbml0aWFsUHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCJdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF5UGlja2VyUHJvdmlkZXIsIHsgaW5pdGlhbFByb3BzOiBpbml0aWFsUHJvcHMgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChOYXZpZ2F0aW9uUHJvdmlkZXIsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdFNpbmdsZVByb3ZpZGVyLCB7IGluaXRpYWxQcm9wczogaW5pdGlhbFByb3BzIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RNdWx0aXBsZVByb3ZpZGVyLCB7IGluaXRpYWxQcm9wczogaW5pdGlhbFByb3BzIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VsZWN0UmFuZ2VQcm92aWRlciwgeyBpbml0aWFsUHJvcHM6IGluaXRpYWxQcm9wcyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChNb2RpZmllcnNQcm92aWRlciwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZvY3VzUHJvdmlkZXIsIG51bGwsIGNoaWxkcmVuKSkpKSkpKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Sb290UHJvdmlkZXIuanMubWFwIiwiaW1wb3J0IHsgX19hc3NpZ24gfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSb290IH0gZnJvbSAnLi9jb21wb25lbnRzL1Jvb3QnO1xuaW1wb3J0IHsgUm9vdFByb3ZpZGVyIH0gZnJvbSAnLi9jb250ZXh0cy9Sb290UHJvdmlkZXInO1xuLyoqXG4gKiBEYXlQaWNrZXIgcmVuZGVyIGEgZGF0ZSBwaWNrZXIgY29tcG9uZW50IHRvIGxldCB1c2VycyBwaWNrIGRhdGVzIGZyb20gYVxuICogY2FsZW5kYXIuIFNlZSBodHRwOi8vcmVhY3QtZGF5LXBpY2tlci5qcy5vcmcgZm9yIHVwZGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmRcbiAqIGV4YW1wbGVzLlxuICpcbiAqICMjIyBDdXN0b21pemF0aW9uXG4gKlxuICogRGF5UGlja2VyIG9mZmVycyBkaWZmZXJlbnQgY3VzdG9taXphdGlvbiBwcm9wcy4gRm9yIGV4YW1wbGUsXG4gKlxuICogLSBzaG93IG11bHRpcGxlIG1vbnRocyB1c2luZyBgbnVtYmVyT2ZNb250aHNgXG4gKiAtIGRpc3BsYXkgYSBkcm9wZG93biB0byBuYXZpZ2F0ZSB0aGUgbW9udGhzIHZpYSBgY2FwdGlvbkxheW91dGBcbiAqIC0gZGlzcGxheSB0aGUgd2VlayBudW1iZXJzIHdpdGggYHNob3dXZWVrTnVtYmVyc2BcbiAqIC0gZGlzYWJsZSBvciBoaWRlIGRheXMgd2l0aCBgZGlzYWJsZWRgIG9yIGBoaWRkZW5gXG4gKlxuICogIyMjIENvbnRyb2xsaW5nIHRoZSBtb250aHNcbiAqXG4gKiBDaGFuZ2UgdGhlIGluaXRpYWxseSBkaXNwbGF5ZWQgbW9udGggdXNpbmcgdGhlIGBkZWZhdWx0TW9udGhgIHByb3AuIFRoZVxuICogZGlzcGxheWVkIG1vbnRocyBhcmUgY29udHJvbGxlZCBieSBEYXlQaWNrZXIgYW5kIHN0b3JlZCBpbiBpdHMgaW50ZXJuYWxcbiAqIHN0YXRlLiBUbyBjb250cm9sIHRoZSBtb250aHMgeW91cnNlbGYsIHVzZSBgbW9udGhgIGluc3RlYWQgb2YgYGRlZmF1bHRNb250aGBcbiAqIGFuZCB1c2UgdGhlIGBvbk1vbnRoQ2hhbmdlYCBldmVudCB0byBzZXQgaXQuXG4gKlxuICogVG8gbGltaXQgdGhlIG1vbnRocyB0aGUgdXNlciBjYW4gbmF2aWdhdGUgdG8sIHVzZVxuICogYGZyb21EYXRlYC9gZnJvbU1vbnRoYC9gZnJvbVllYXJgIG9yIGB0b0RhdGVgL2B0b01vbnRoYC9gdG9ZZWFyYC5cbiAqXG4gKiAjIyMgU2VsZWN0aW9uIG1vZGVzXG4gKlxuICogRGF5UGlja2VyIHN1cHBvcnRzIGRpZmZlcmVudCBzZWxlY3Rpb24gbW9kZSB0aGF0IGNhbiBiZSB0b2dnbGVkIHVzaW5nIHRoZVxuICogYG1vZGVgIHByb3A6XG4gKlxuICogLSBgbW9kZT1cInNpbmdsZVwiYDogb25seSBvbmUgZGF5IGNhbiBiZSBzZWxlY3RlZC4gVXNlIGByZXF1aXJlZGAgdG8gbWFrZSB0aGVcbiAqICAgc2VsZWN0aW9uIHJlcXVpcmVkLiBVc2UgdGhlIGBvblNlbGVjdGAgZXZlbnQgaGFuZGxlciB0byBnZXQgdGhlIHNlbGVjdGVkXG4gKiAgIGRheXMuXG4gKiAtIGBtb2RlPVwibXVsdGlwbGVcImA6IHVzZXJzIGNhbiBzZWxlY3Qgb25lIG9yIG1vcmUgZGF5cy4gTGltaXQgdGhlIGFtb3VudCBvZlxuICogICBkYXlzIHRoYXQgY2FuIGJlIHNlbGVjdGVkIHdpdGggdGhlIGBtaW5gIG9yIHRoZSBgbWF4YCBwcm9wcy5cbiAqIC0gYG1vZGU9XCJyYW5nZVwiYDogdXNlcnMgY2FuIHNlbGVjdCBhIHJhbmdlIG9mIGRheXMuIExpbWl0IHRoZSBhbW91bnQgb2YgZGF5c1xuICogICBpbiB0aGUgcmFuZ2Ugd2l0aCB0aGUgYG1pbmAgb3IgdGhlIGBtYXhgIHByb3BzLlxuICogLSBgbW9kZT1cImN1c3RvbVwiYDogaW1wbGVtZW50IHlvdXIgb3duIHNlbGVjdGlvbiBtb2RlIHdpdGggYG9uRGF5Q2xpY2tgLlxuICpcbiAqIFRoZXNlIHNlbGVjdGlvbiBtb2RlcyBzaG91bGQgY292ZXIgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlcy4gSW4gY2FzZSB5b3VcbiAqIG5lZWQgYSBtb3JlIHJlZmluZWQgd2F5IG9mIHNlbGVjdGluZyBkYXlzLCB1c2UgYG1vZGU9XCJjdXN0b21cImAuIFVzZSB0aGVcbiAqIGBzZWxlY3RlZGAgcHJvcHMgYW5kIGFkZCB0aGUgZGF5IGV2ZW50IGhhbmRsZXJzIHRvIGFkZC9yZW1vdmUgZGF5cyBmcm9tIHRoZVxuICogc2VsZWN0aW9uLlxuICpcbiAqICMjIyBNb2RpZmllcnNcbiAqXG4gKiBBIF9tb2RpZmllcl8gcmVwcmVzZW50cyBkaWZmZXJlbnQgc3R5bGVzIG9yIHN0YXRlcyBmb3IgdGhlIGRheXMgZGlzcGxheWVkIGluXG4gKiB0aGUgY2FsZW5kYXIgKGxpa2UgXCJzZWxlY3RlZFwiIG9yIFwiZGlzYWJsZWRcIikuIERlZmluZSBjdXN0b20gbW9kaWZpZXJzIHVzaW5nXG4gKiB0aGUgYG1vZGlmaWVyc2AgcHJvcC5cbiAqXG4gKiAjIyMgRm9ybWF0dGVycyBhbmQgY3VzdG9tIGNvbXBvbmVudFxuICpcbiAqIFlvdSBjYW4gY3VzdG9taXplIGhvdyB0aGUgY29udGVudCBpcyBkaXNwbGF5ZWQgaW4gdGhlIGRhdGUgcGlja2VyIGJ5IHVzaW5nXG4gKiBlaXRoZXIgdGhlIGZvcm1hdHRlcnMgb3IgcmVwbGFjaW5nIHRoZSBpbnRlcm5hbCBjb21wb25lbnRzLlxuICpcbiAqIEZvciB0aGUgbW9zdCBjb21tb24gY2FzZXMgeW91IHdhbnQgdG8gdXNlIHRoZSBgZm9ybWF0dGVyc2AgcHJvcCB0byBjaGFuZ2UgaG93XG4gKiB0aGUgY29udGVudCBpcyBmb3JtYXR0ZWQgaW4gdGhlIGNhbGVuZGFyLiBVc2UgdGhlIGBjb21wb25lbnRzYCBwcm9wIHRvXG4gKiByZXBsYWNlIHRoZSBpbnRlcm5hbCBjb21wb25lbnRzLCBsaWtlIHRoZSBuYXZpZ2F0aW9uIGljb25zLlxuICpcbiAqICMjIyBTdHlsaW5nXG4gKlxuICogRGF5UGlja2VyIGNvbWVzIHdpdGggYSBkZWZhdWx0LCBiYXNpYyBzdHlsZSBpbiBgcmVhY3QtZGF5LXBpY2tlci9zdHlsZWAg4oCTIHVzZVxuICogaXQgYXMgdGVtcGxhdGUgZm9yIHlvdXIgb3duIHN0eWxlLlxuICpcbiAqIElmIHlvdSBhcmUgdXNpbmcgQ1NTIG1vZHVsZXMsIHBhc3MgdGhlIGltcG9ydGVkIHN0eWxlcyBvYmplY3QgdGhlXG4gKiBgY2xhc3NOYW1lc2AgcHJvcHMuXG4gKlxuICogWW91IGNhbiBhbHNvIHN0eWxlIHRoZSBlbGVtZW50cyB2aWEgaW5saW5lLXN0eWxlcyB1c2luZyB0aGUgYHN0eWxlc2AgcHJvcC5cbiAqXG4gKiAjIyMgRm9ybSBmaWVsZHNcbiAqXG4gKiBJZiB5b3UgbmVlZCB0byBiaW5kIHRoZSBkYXRlIHBpY2tlciB0byBhIGZvcm0gZmllbGQsIHlvdSBjYW4gdXNlIHRoZVxuICogYHVzZUlucHV0YCBob29rcyBmb3IgYSBiYXNpYyBiZWhhdmlvci4gU2VlIHRoZSBgdXNlSW5wdXRgIHNvdXJjZSBhcyBhblxuICogZXhhbXBsZSB0byBiaW5kIHRoZSBkYXRlIHBpY2tlciB3aXRoIGZvcm0gZmllbGRzLlxuICpcbiAqICMjIyBMb2NhbGl6YXRpb25cbiAqXG4gKiBUbyBsb2NhbGl6ZSBEYXlQaWNrZXIsIGltcG9ydCB0aGUgbG9jYWxlIGZyb20gYGRhdGUtZm5zYCBwYWNrYWdlIGFuZCB1c2UgdGhlXG4gKiBgbG9jYWxlYCBwcm9wLlxuICpcbiAqIEZvciBleGFtcGxlLCB0byB1c2UgU3BhbmlzaCBsb2NhbGU6XG4gKlxuICogYGBgXG4gKiBpbXBvcnQgZXMgZnJvbSAnZGF0ZS1mbnMvbG9jYWxlL2VzJztcbiAqIDxEYXlQaWNrZXIgbG9jYWxlPXtlc30gLz5cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gRGF5UGlja2VyKHByb3BzKSB7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJvb3RQcm92aWRlciwgX19hc3NpZ24oe30sIHByb3BzKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChSb290LCBudWxsKSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF5UGlja2VyLmpzLm1hcCIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuLyoqXG4gKiBUYWtlcyBhbiBhcmd1bWVudCBhbmQgaWYgaXQncyBhbiBhcnJheSwgcmV0dXJucyB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXksXG4gKiBvdGhlcndpc2UgcmV0dXJucyB0aGUgYXJndW1lbnQuIFVzZWQgZm9yIFByZWFjdCBjb21wYXRpYmlsaXR5LlxuICovXG5leHBvcnQgdmFyIHVud3JhcEFycmF5ID0gZnVuY3Rpb24gdW53cmFwQXJyYXkoYXJnKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGFyZykgPyBhcmdbMF0gOiBhcmc7XG59O1xuLyoqXG4gKiBUYWtlcyBhIG1heWJlLXVuZGVmaW5lZCBmdW5jdGlvbiBhbmQgYXJiaXRyYXJ5IGFyZ3MgYW5kIGludm9rZXMgdGhlIGZ1bmN0aW9uXG4gKiBvbmx5IGlmIGl0IGlzIGRlZmluZWQuXG4gKi9cblxuZXhwb3J0IHZhciBzYWZlSW52b2tlID0gZnVuY3Rpb24gc2FmZUludm9rZShmbikge1xuICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZuLmFwcGx5KHZvaWQgMCwgYXJncyk7XG4gIH1cbn07XG4vKipcbiAqIFNldHMgYSByZWYgdXNpbmcgZWl0aGVyIGEgcmVmIGNhbGxiYWNrIG9yIGEgcmVmIG9iamVjdFxuICovXG5cbmV4cG9ydCB2YXIgc2V0UmVmID0gZnVuY3Rpb24gc2V0UmVmKHJlZiwgbm9kZSkge1xuICAvLyBpZiBpdHMgYSBmdW5jdGlvbiBjYWxsIGl0XG4gIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHNhZmVJbnZva2UocmVmLCBub2RlKTtcbiAgfSAvLyBvdGhlcndpc2Ugd2Ugc2hvdWxkIHRyZWF0IGl0IGFzIGEgcmVmIG9iamVjdFxuICBlbHNlIGlmIChyZWYgIT0gbnVsbCkge1xuICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH1cbn07XG4vKipcbiAqIFNpbXBsZSBwb255ZmlsbCBmb3IgT2JqZWN0LmZyb21FbnRyaWVzXG4gKi9cblxuZXhwb3J0IHZhciBmcm9tRW50cmllcyA9IGZ1bmN0aW9uIGZyb21FbnRyaWVzKGVudHJpZXMpIHtcbiAgcmV0dXJuIGVudHJpZXMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIF9yZWYpIHtcbiAgICB2YXIga2V5ID0gX3JlZlswXSxcbiAgICAgICAgdmFsdWUgPSBfcmVmWzFdO1xuICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufTtcbi8qKlxuICogU21hbGwgd3JhcHBlciBhcm91bmQgYHVzZUxheW91dEVmZmVjdGAgdG8gZ2V0IHJpZCBvZiB0aGUgd2FybmluZyBvbiBTU1IgZW52c1xuICovXG5cbmV4cG9ydCB2YXIgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCA/IFJlYWN0LnVzZUxheW91dEVmZmVjdCA6IFJlYWN0LnVzZUVmZmVjdDsiLCJleHBvcnQgdmFyIHRvcCA9ICd0b3AnO1xuZXhwb3J0IHZhciBib3R0b20gPSAnYm90dG9tJztcbmV4cG9ydCB2YXIgcmlnaHQgPSAncmlnaHQnO1xuZXhwb3J0IHZhciBsZWZ0ID0gJ2xlZnQnO1xuZXhwb3J0IHZhciBhdXRvID0gJ2F1dG8nO1xuZXhwb3J0IHZhciBiYXNlUGxhY2VtZW50cyA9IFt0b3AsIGJvdHRvbSwgcmlnaHQsIGxlZnRdO1xuZXhwb3J0IHZhciBzdGFydCA9ICdzdGFydCc7XG5leHBvcnQgdmFyIGVuZCA9ICdlbmQnO1xuZXhwb3J0IHZhciBjbGlwcGluZ1BhcmVudHMgPSAnY2xpcHBpbmdQYXJlbnRzJztcbmV4cG9ydCB2YXIgdmlld3BvcnQgPSAndmlld3BvcnQnO1xuZXhwb3J0IHZhciBwb3BwZXIgPSAncG9wcGVyJztcbmV4cG9ydCB2YXIgcmVmZXJlbmNlID0gJ3JlZmVyZW5jZSc7XG5leHBvcnQgdmFyIHZhcmlhdGlvblBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovYmFzZVBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50ICsgXCItXCIgKyBzdGFydCwgcGxhY2VtZW50ICsgXCItXCIgKyBlbmRdKTtcbn0sIFtdKTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9bXS5jb25jYXQoYmFzZVBsYWNlbWVudHMsIFthdXRvXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50LCBwbGFjZW1lbnQgKyBcIi1cIiArIHN0YXJ0LCBwbGFjZW1lbnQgKyBcIi1cIiArIGVuZF0pO1xufSwgW10pOyAvLyBtb2RpZmllcnMgdGhhdCBuZWVkIHRvIHJlYWQgdGhlIERPTVxuXG5leHBvcnQgdmFyIGJlZm9yZVJlYWQgPSAnYmVmb3JlUmVhZCc7XG5leHBvcnQgdmFyIHJlYWQgPSAncmVhZCc7XG5leHBvcnQgdmFyIGFmdGVyUmVhZCA9ICdhZnRlclJlYWQnOyAvLyBwdXJlLWxvZ2ljIG1vZGlmaWVyc1xuXG5leHBvcnQgdmFyIGJlZm9yZU1haW4gPSAnYmVmb3JlTWFpbic7XG5leHBvcnQgdmFyIG1haW4gPSAnbWFpbic7XG5leHBvcnQgdmFyIGFmdGVyTWFpbiA9ICdhZnRlck1haW4nOyAvLyBtb2RpZmllciB3aXRoIHRoZSBwdXJwb3NlIHRvIHdyaXRlIHRvIHRoZSBET00gKG9yIHdyaXRlIGludG8gYSBmcmFtZXdvcmsgc3RhdGUpXG5cbmV4cG9ydCB2YXIgYmVmb3JlV3JpdGUgPSAnYmVmb3JlV3JpdGUnO1xuZXhwb3J0IHZhciB3cml0ZSA9ICd3cml0ZSc7XG5leHBvcnQgdmFyIGFmdGVyV3JpdGUgPSAnYWZ0ZXJXcml0ZSc7XG5leHBvcnQgdmFyIG1vZGlmaWVyUGhhc2VzID0gW2JlZm9yZVJlYWQsIHJlYWQsIGFmdGVyUmVhZCwgYmVmb3JlTWFpbiwgbWFpbiwgYWZ0ZXJNYWluLCBiZWZvcmVXcml0ZSwgd3JpdGUsIGFmdGVyV3JpdGVdOyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE5vZGVOYW1lKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnQgPyAoZWxlbWVudC5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSA6IG51bGw7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcbiAgaWYgKG5vZGUgPT0gbnVsbCkge1xuICAgIHJldHVybiB3aW5kb3c7XG4gIH1cblxuICBpZiAobm9kZS50b1N0cmluZygpICE9PSAnW29iamVjdCBXaW5kb3ddJykge1xuICAgIHZhciBvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50O1xuICAgIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiB3aW5kb3c7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5FbGVtZW50O1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIE93bkVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5IVE1MRWxlbWVudDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaXNTaGFkb3dSb290KG5vZGUpIHtcbiAgLy8gSUUgMTEgaGFzIG5vIFNoYWRvd1Jvb3RcbiAgaWYgKHR5cGVvZiBTaGFkb3dSb290ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLlNoYWRvd1Jvb3Q7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgT3duRWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgU2hhZG93Um9vdDtcbn1cblxuZXhwb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc1NoYWRvd1Jvb3QgfTsiLCJpbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4uL2RvbS11dGlscy9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiOyAvLyBUaGlzIG1vZGlmaWVyIHRha2VzIHRoZSBzdHlsZXMgcHJlcGFyZWQgYnkgdGhlIGBjb21wdXRlU3R5bGVzYCBtb2RpZmllclxuLy8gYW5kIGFwcGxpZXMgdGhlbSB0byB0aGUgSFRNTEVsZW1lbnRzIHN1Y2ggYXMgcG9wcGVyIGFuZCBhcnJvd1xuXG5mdW5jdGlvbiBhcHBseVN0eWxlcyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGU7XG4gIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdmFyIHN0eWxlID0gc3RhdGUuc3R5bGVzW25hbWVdIHx8IHt9O1xuICAgIHZhciBhdHRyaWJ1dGVzID0gc3RhdGUuYXR0cmlidXRlc1tuYW1lXSB8fCB7fTtcbiAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdOyAvLyBhcnJvdyBpcyBvcHRpb25hbCArIHZpcnR1YWwgZWxlbWVudHNcblxuICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIEZsb3cgZG9lc24ndCBzdXBwb3J0IHRvIGV4dGVuZCB0aGlzIHByb3BlcnR5LCBidXQgaXQncyB0aGUgbW9zdFxuICAgIC8vIGVmZmVjdGl2ZSB3YXkgdG8gYXBwbHkgc3R5bGVzIHRvIGFuIEhUTUxFbGVtZW50XG4gICAgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdXG5cblxuICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGUpO1xuICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGF0dHJpYnV0ZXNbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSA9PT0gdHJ1ZSA/ICcnIDogdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZWZmZWN0KF9yZWYyKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYyLnN0YXRlO1xuICB2YXIgaW5pdGlhbFN0eWxlcyA9IHtcbiAgICBwb3BwZXI6IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgbGVmdDogJzAnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICBtYXJnaW46ICcwJ1xuICAgIH0sXG4gICAgYXJyb3c6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnXG4gICAgfSxcbiAgICByZWZlcmVuY2U6IHt9XG4gIH07XG4gIE9iamVjdC5hc3NpZ24oc3RhdGUuZWxlbWVudHMucG9wcGVyLnN0eWxlLCBpbml0aWFsU3R5bGVzLnBvcHBlcik7XG4gIHN0YXRlLnN0eWxlcyA9IGluaXRpYWxTdHlsZXM7XG5cbiAgaWYgKHN0YXRlLmVsZW1lbnRzLmFycm93KSB7XG4gICAgT2JqZWN0LmFzc2lnbihzdGF0ZS5lbGVtZW50cy5hcnJvdy5zdHlsZSwgaW5pdGlhbFN0eWxlcy5hcnJvdyk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHN0YXRlLmVsZW1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW25hbWVdO1xuICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBzdGF0ZS5hdHRyaWJ1dGVzW25hbWVdIHx8IHt9O1xuICAgICAgdmFyIHN0eWxlUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHN0YXRlLnN0eWxlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSA/IHN0YXRlLnN0eWxlc1tuYW1lXSA6IGluaXRpYWxTdHlsZXNbbmFtZV0pOyAvLyBTZXQgYWxsIHZhbHVlcyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlbVxuXG4gICAgICB2YXIgc3R5bGUgPSBzdHlsZVByb3BlcnRpZXMucmVkdWNlKGZ1bmN0aW9uIChzdHlsZSwgcHJvcGVydHkpIHtcbiAgICAgICAgc3R5bGVbcHJvcGVydHldID0gJyc7XG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgIH0sIHt9KTsgLy8gYXJyb3cgaXMgb3B0aW9uYWwgKyB2aXJ0dWFsIGVsZW1lbnRzXG5cbiAgICAgIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCAhZ2V0Tm9kZU5hbWUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnQuc3R5bGUsIHN0eWxlKTtcbiAgICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcHBseVN0eWxlcycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnd3JpdGUnLFxuICBmbjogYXBwbHlTdHlsZXMsXG4gIGVmZmVjdDogZWZmZWN0LFxuICByZXF1aXJlczogWydjb21wdXRlU3R5bGVzJ11cbn07IiwiaW1wb3J0IHsgYXV0byB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xufSIsImV4cG9ydCB2YXIgbWF4ID0gTWF0aC5tYXg7XG5leHBvcnQgdmFyIG1pbiA9IE1hdGgubWluO1xuZXhwb3J0IHZhciByb3VuZCA9IE1hdGgucm91bmQ7IiwiaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBpbmNsdWRlU2NhbGUpIHtcbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cblxuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBzY2FsZVggPSAxO1xuICB2YXIgc2NhbGVZID0gMTtcblxuICBpZiAoaXNIVE1MRWxlbWVudChlbGVtZW50KSAmJiBpbmNsdWRlU2NhbGUpIHtcbiAgICB2YXIgb2Zmc2V0SGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgdmFyIG9mZnNldFdpZHRoID0gZWxlbWVudC5vZmZzZXRXaWR0aDsgLy8gRG8gbm90IGF0dGVtcHQgdG8gZGl2aWRlIGJ5IDAsIG90aGVyd2lzZSB3ZSBnZXQgYEluZmluaXR5YCBhcyBzY2FsZVxuICAgIC8vIEZhbGxiYWNrIHRvIDEgaW4gY2FzZSBib3RoIHZhbHVlcyBhcmUgYDBgXG5cbiAgICBpZiAob2Zmc2V0V2lkdGggPiAwKSB7XG4gICAgICBzY2FsZVggPSByb3VuZChyZWN0LndpZHRoKSAvIG9mZnNldFdpZHRoIHx8IDE7XG4gICAgfVxuXG4gICAgaWYgKG9mZnNldEhlaWdodCA+IDApIHtcbiAgICAgIHNjYWxlWSA9IHJvdW5kKHJlY3QuaGVpZ2h0KSAvIG9mZnNldEhlaWdodCB8fCAxO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHJlY3Qud2lkdGggLyBzY2FsZVgsXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCAvIHNjYWxlWSxcbiAgICB0b3A6IHJlY3QudG9wIC8gc2NhbGVZLFxuICAgIHJpZ2h0OiByZWN0LnJpZ2h0IC8gc2NhbGVYLFxuICAgIGJvdHRvbTogcmVjdC5ib3R0b20gLyBzY2FsZVksXG4gICAgbGVmdDogcmVjdC5sZWZ0IC8gc2NhbGVYLFxuICAgIHg6IHJlY3QubGVmdCAvIHNjYWxlWCxcbiAgICB5OiByZWN0LnRvcCAvIHNjYWxlWVxuICB9O1xufSIsImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7IC8vIFJldHVybnMgdGhlIGxheW91dCByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC4gTGF5b3V0XG4vLyBtZWFucyBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRyYW5zZm9ybXMuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldExheW91dFJlY3QoZWxlbWVudCkge1xuICB2YXIgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTsgLy8gVXNlIHRoZSBjbGllbnRSZWN0IHNpemVzIGlmIGl0J3Mgbm90IGJlZW4gdHJhbnNmb3JtZWQuXG4gIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTIyM1xuXG4gIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICBpZiAoTWF0aC5hYnMoY2xpZW50UmVjdC53aWR0aCAtIHdpZHRoKSA8PSAxKSB7XG4gICAgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKGNsaWVudFJlY3QuaGVpZ2h0IC0gaGVpZ2h0KSA8PSAxKSB7XG4gICAgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IGVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICB5OiBlbGVtZW50Lm9mZnNldFRvcCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn0iLCJpbXBvcnQgeyBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb250YWlucyhwYXJlbnQsIGNoaWxkKSB7XG4gIHZhciByb290Tm9kZSA9IGNoaWxkLmdldFJvb3ROb2RlICYmIGNoaWxkLmdldFJvb3ROb2RlKCk7IC8vIEZpcnN0LCBhdHRlbXB0IHdpdGggZmFzdGVyIG5hdGl2ZSBtZXRob2RcblxuICBpZiAocGFyZW50LmNvbnRhaW5zKGNoaWxkKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIHRoZW4gZmFsbGJhY2sgdG8gY3VzdG9tIGltcGxlbWVudGF0aW9uIHdpdGggU2hhZG93IERPTSBzdXBwb3J0XG4gIGVsc2UgaWYgKHJvb3ROb2RlICYmIGlzU2hhZG93Um9vdChyb290Tm9kZSkpIHtcbiAgICAgIHZhciBuZXh0ID0gY2hpbGQ7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKG5leHQgJiYgcGFyZW50LmlzU2FtZU5vZGUobmV4dCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ106IG5lZWQgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGlzLi4uXG5cblxuICAgICAgICBuZXh0ID0gbmV4dC5wYXJlbnROb2RlIHx8IG5leHQuaG9zdDtcbiAgICAgIH0gd2hpbGUgKG5leHQpO1xuICAgIH0gLy8gR2l2ZSB1cCwgdGhlIHJlc3VsdCBpcyBmYWxzZVxuXG5cbiAgcmV0dXJuIGZhbHNlO1xufSIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldFdpbmRvdyhlbGVtZW50KS5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xufSIsImltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNUYWJsZUVsZW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gWyd0YWJsZScsICd0ZCcsICd0aCddLmluZGV4T2YoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpID49IDA7XG59IiwiaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpIHtcbiAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogYXNzdW1lIGJvZHkgaXMgYWx3YXlzIGF2YWlsYWJsZVxuICByZXR1cm4gKChpc0VsZW1lbnQoZWxlbWVudCkgPyBlbGVtZW50Lm93bmVyRG9jdW1lbnQgOiAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgZWxlbWVudC5kb2N1bWVudCkgfHwgd2luZG93LmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQ7XG59IiwiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSB7XG4gIGlmIChnZXROb2RlTmFtZShlbGVtZW50KSA9PT0gJ2h0bWwnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gKC8vIHRoaXMgaXMgYSBxdWlja2VyIChidXQgbGVzcyB0eXBlIHNhZmUpIHdheSB0byBzYXZlIHF1aXRlIHNvbWUgYnl0ZXMgZnJvbSB0aGUgYnVuZGxlXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuICAgIC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgIGVsZW1lbnQuYXNzaWduZWRTbG90IHx8IC8vIHN0ZXAgaW50byB0aGUgc2hhZG93IERPTSBvZiB0aGUgcGFyZW50IG9mIGEgc2xvdHRlZCBub2RlXG4gICAgZWxlbWVudC5wYXJlbnROb2RlIHx8ICggLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWRcbiAgICBpc1NoYWRvd1Jvb3QoZWxlbWVudCkgPyBlbGVtZW50Lmhvc3QgOiBudWxsKSB8fCAvLyBTaGFkb3dSb290IGRldGVjdGVkXG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtY2FsbF06IEhUTUxFbGVtZW50IGlzIGEgTm9kZVxuICAgIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSAvLyBmYWxsYmFja1xuXG4gICk7XG59IiwiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBpc1RhYmxlRWxlbWVudCBmcm9tIFwiLi9pc1RhYmxlRWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvODM3XG4gIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50Lm9mZnNldFBhcmVudDtcbn0gLy8gYC5vZmZzZXRQYXJlbnRgIHJlcG9ydHMgYG51bGxgIGZvciBmaXhlZCBlbGVtZW50cywgd2hpbGUgYWJzb2x1dGUgZWxlbWVudHNcbi8vIHJldHVybiB0aGUgY29udGFpbmluZyBibG9ja1xuXG5cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIHZhciBpc0ZpcmVmb3ggPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpICE9PSAtMTtcbiAgdmFyIGlzSUUgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1RyaWRlbnQnKSAhPT0gLTE7XG5cbiAgaWYgKGlzSUUgJiYgaXNIVE1MRWxlbWVudChlbGVtZW50KSkge1xuICAgIC8vIEluIElFIDksIDEwIGFuZCAxMSBmaXhlZCBlbGVtZW50cyBjb250YWluaW5nIGJsb2NrIGlzIGFsd2F5cyBlc3RhYmxpc2hlZCBieSB0aGUgdmlld3BvcnRcbiAgICB2YXIgZWxlbWVudENzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG5cbiAgICBpZiAoZWxlbWVudENzcy5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgdmFyIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcblxuICB3aGlsZSAoaXNIVE1MRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgWydodG1sJywgJ2JvZHknXS5pbmRleE9mKGdldE5vZGVOYW1lKGN1cnJlbnROb2RlKSkgPCAwKSB7XG4gICAgdmFyIGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudE5vZGUpOyAvLyBUaGlzIGlzIG5vbi1leGhhdXN0aXZlIGJ1dCBjb3ZlcnMgdGhlIG1vc3QgY29tbW9uIENTUyBwcm9wZXJ0aWVzIHRoYXRcbiAgICAvLyBjcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG5cbiAgICBpZiAoY3NzLnRyYW5zZm9ybSAhPT0gJ25vbmUnIHx8IGNzcy5wZXJzcGVjdGl2ZSAhPT0gJ25vbmUnIHx8IGNzcy5jb250YWluID09PSAncGFpbnQnIHx8IFsndHJhbnNmb3JtJywgJ3BlcnNwZWN0aXZlJ10uaW5kZXhPZihjc3Mud2lsbENoYW5nZSkgIT09IC0xIHx8IGlzRmlyZWZveCAmJiBjc3Mud2lsbENoYW5nZSA9PT0gJ2ZpbHRlcicgfHwgaXNGaXJlZm94ICYmIGNzcy5maWx0ZXIgJiYgY3NzLmZpbHRlciAhPT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0gLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICB2YXIgd2luZG93ID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICB2YXIgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50KTtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50KTtcbiAgfVxuXG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdodG1sJyB8fCBnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpID09PSAnYm9keScgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luZG93O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIFsndG9wJywgJ2JvdHRvbSddLmluZGV4T2YocGxhY2VtZW50KSA+PSAwID8gJ3gnIDogJ3knO1xufSIsImltcG9ydCB7IG1heCBhcyBtYXRoTWF4LCBtaW4gYXMgbWF0aE1pbiB9IGZyb20gXCIuL21hdGguanNcIjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoaW4obWluLCB2YWx1ZSwgbWF4KSB7XG4gIHJldHVybiBtYXRoTWF4KG1pbiwgbWF0aE1pbih2YWx1ZSwgbWF4KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gd2l0aGluTWF4Q2xhbXAobWluLCB2YWx1ZSwgbWF4KSB7XG4gIHZhciB2ID0gd2l0aGluKG1pbiwgdmFsdWUsIG1heCk7XG4gIHJldHVybiB2ID4gbWF4ID8gbWF4IDogdjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRGcmVzaFNpZGVPYmplY3QoKSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwXG4gIH07XG59IiwiaW1wb3J0IGdldEZyZXNoU2lkZU9iamVjdCBmcm9tIFwiLi9nZXRGcmVzaFNpZGVPYmplY3QuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlUGFkZGluZ09iamVjdChwYWRkaW5nT2JqZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBnZXRGcmVzaFNpZGVPYmplY3QoKSwgcGFkZGluZ09iamVjdCk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXhwYW5kVG9IYXNoTWFwKHZhbHVlLCBrZXlzKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZShmdW5jdGlvbiAoaGFzaE1hcCwga2V5KSB7XG4gICAgaGFzaE1hcFtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIGhhc2hNYXA7XG4gIH0sIHt9KTtcbn0iLCJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4uL2RvbS11dGlscy9jb250YWlucy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4gfSBmcm9tIFwiLi4vdXRpbHMvd2l0aGluLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuLi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4uL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qc1wiO1xuaW1wb3J0IHsgbGVmdCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB0b3AsIGJvdHRvbSB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB0b1BhZGRpbmdPYmplY3QgPSBmdW5jdGlvbiB0b1BhZGRpbmdPYmplY3QocGFkZGluZywgc3RhdGUpIHtcbiAgcGFkZGluZyA9IHR5cGVvZiBwYWRkaW5nID09PSAnZnVuY3Rpb24nID8gcGFkZGluZyhPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5yZWN0cywge1xuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pKSA6IHBhZGRpbmc7XG4gIHJldHVybiBtZXJnZVBhZGRpbmdPYmplY3QodHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gcGFkZGluZyA6IGV4cGFuZFRvSGFzaE1hcChwYWRkaW5nLCBiYXNlUGxhY2VtZW50cykpO1xufTtcblxuZnVuY3Rpb24gYXJyb3coX3JlZikge1xuICB2YXIgX3N0YXRlJG1vZGlmaWVyc0RhdGEkO1xuXG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucztcbiAgdmFyIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93O1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cztcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBheGlzID0gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KGJhc2VQbGFjZW1lbnQpO1xuICB2YXIgaXNWZXJ0aWNhbCA9IFtsZWZ0LCByaWdodF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSA+PSAwO1xuICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICBpZiAoIWFycm93RWxlbWVudCB8fCAhcG9wcGVyT2Zmc2V0cykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gdG9QYWRkaW5nT2JqZWN0KG9wdGlvbnMucGFkZGluZywgc3RhdGUpO1xuICB2YXIgYXJyb3dSZWN0ID0gZ2V0TGF5b3V0UmVjdChhcnJvd0VsZW1lbnQpO1xuICB2YXIgbWluUHJvcCA9IGF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gIHZhciBtYXhQcm9wID0gYXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gIHZhciBlbmREaWZmID0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2xlbl0gKyBzdGF0ZS5yZWN0cy5yZWZlcmVuY2VbYXhpc10gLSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucG9wcGVyW2xlbl07XG4gIHZhciBzdGFydERpZmYgPSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2F4aXNdO1xuICB2YXIgYXJyb3dPZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQoYXJyb3dFbGVtZW50KTtcbiAgdmFyIGNsaWVudFNpemUgPSBhcnJvd09mZnNldFBhcmVudCA/IGF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudEhlaWdodCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50V2lkdGggfHwgMCA6IDA7XG4gIHZhciBjZW50ZXJUb1JlZmVyZW5jZSA9IGVuZERpZmYgLyAyIC0gc3RhcnREaWZmIC8gMjsgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBkb2Vzbid0IG92ZXJmbG93IHRoZSBwb3BwZXIgaWYgdGhlIGNlbnRlciBwb2ludCBpc1xuICAvLyBvdXRzaWRlIG9mIHRoZSBwb3BwZXIgYm91bmRzXG5cbiAgdmFyIG1pbiA9IHBhZGRpbmdPYmplY3RbbWluUHJvcF07XG4gIHZhciBtYXggPSBjbGllbnRTaXplIC0gYXJyb3dSZWN0W2xlbl0gLSBwYWRkaW5nT2JqZWN0W21heFByb3BdO1xuICB2YXIgY2VudGVyID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd1JlY3RbbGVuXSAvIDIgKyBjZW50ZXJUb1JlZmVyZW5jZTtcbiAgdmFyIG9mZnNldCA9IHdpdGhpbihtaW4sIGNlbnRlciwgbWF4KTsgLy8gUHJldmVudHMgYnJlYWtpbmcgc3ludGF4IGhpZ2hsaWdodGluZy4uLlxuXG4gIHZhciBheGlzUHJvcCA9IGF4aXM7XG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSAoX3N0YXRlJG1vZGlmaWVyc0RhdGEkID0ge30sIF9zdGF0ZSRtb2RpZmllcnNEYXRhJFtheGlzUHJvcF0gPSBvZmZzZXQsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJC5jZW50ZXJPZmZzZXQgPSBvZmZzZXQgLSBjZW50ZXIsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJCk7XG59XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmMikge1xuICB2YXIgc3RhdGUgPSBfcmVmMi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmMi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZWxlbWVudCA9IG9wdGlvbnMuZWxlbWVudCxcbiAgICAgIGFycm93RWxlbWVudCA9IF9vcHRpb25zJGVsZW1lbnQgPT09IHZvaWQgMCA/ICdbZGF0YS1wb3BwZXItYXJyb3ddJyA6IF9vcHRpb25zJGVsZW1lbnQ7XG5cbiAgaWYgKGFycm93RWxlbWVudCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIENTUyBzZWxlY3RvclxuXG5cbiAgaWYgKHR5cGVvZiBhcnJvd0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgYXJyb3dFbGVtZW50ID0gc3RhdGUuZWxlbWVudHMucG9wcGVyLnF1ZXJ5U2VsZWN0b3IoYXJyb3dFbGVtZW50KTtcblxuICAgIGlmICghYXJyb3dFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGlmICghaXNIVE1MRWxlbWVudChhcnJvd0VsZW1lbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBcImFycm93XCIgZWxlbWVudCBtdXN0IGJlIGFuIEhUTUxFbGVtZW50IChub3QgYW4gU1ZHRWxlbWVudCkuJywgJ1RvIHVzZSBhbiBTVkcgYXJyb3csIHdyYXAgaXQgaW4gYW4gSFRNTEVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgYXMnLCAndGhlIGFycm93LiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFjb250YWlucyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIsIGFycm93RWxlbWVudCkpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBcImFycm93XCIgbW9kaWZpZXJcXCdzIGBlbGVtZW50YCBtdXN0IGJlIGEgY2hpbGQgb2YgdGhlIHBvcHBlcicsICdlbGVtZW50LiddLmpvaW4oJyAnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3RhdGUuZWxlbWVudHMuYXJyb3cgPSBhcnJvd0VsZW1lbnQ7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdhcnJvdycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIGZuOiBhcnJvdyxcbiAgZWZmZWN0OiBlZmZlY3QsXG4gIHJlcXVpcmVzOiBbJ3BvcHBlck9mZnNldHMnXSxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydwcmV2ZW50T3ZlcmZsb3cnXVxufTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn0iLCJpbXBvcnQgeyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20sIGVuZCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi4vdXRpbHMvZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgeyByb3VuZCB9IGZyb20gXCIuLi91dGlscy9tYXRoLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxudmFyIHVuc2V0U2lkZXMgPSB7XG4gIHRvcDogJ2F1dG8nLFxuICByaWdodDogJ2F1dG8nLFxuICBib3R0b206ICdhdXRvJyxcbiAgbGVmdDogJ2F1dG8nXG59OyAvLyBSb3VuZCB0aGUgb2Zmc2V0cyB0byB0aGUgbmVhcmVzdCBzdWl0YWJsZSBzdWJwaXhlbCBiYXNlZCBvbiB0aGUgRFBSLlxuLy8gWm9vbWluZyBjYW4gY2hhbmdlIHRoZSBEUFIsIGJ1dCBpdCBzZWVtcyB0byByZXBvcnQgYSB2YWx1ZSB0aGF0IHdpbGxcbi8vIGNsZWFubHkgZGl2aWRlIHRoZSB2YWx1ZXMgaW50byB0aGUgYXBwcm9wcmlhdGUgc3VicGl4ZWxzLlxuXG5mdW5jdGlvbiByb3VuZE9mZnNldHNCeURQUihfcmVmKSB7XG4gIHZhciB4ID0gX3JlZi54LFxuICAgICAgeSA9IF9yZWYueTtcbiAgdmFyIHdpbiA9IHdpbmRvdztcbiAgdmFyIGRwciA9IHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG4gIHJldHVybiB7XG4gICAgeDogcm91bmQoeCAqIGRwcikgLyBkcHIgfHwgMCxcbiAgICB5OiByb3VuZCh5ICogZHByKSAvIGRwciB8fCAwXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb1N0eWxlcyhfcmVmMikge1xuICB2YXIgX09iamVjdCRhc3NpZ24yO1xuXG4gIHZhciBwb3BwZXIgPSBfcmVmMi5wb3BwZXIsXG4gICAgICBwb3BwZXJSZWN0ID0gX3JlZjIucG9wcGVyUmVjdCxcbiAgICAgIHBsYWNlbWVudCA9IF9yZWYyLnBsYWNlbWVudCxcbiAgICAgIHZhcmlhdGlvbiA9IF9yZWYyLnZhcmlhdGlvbixcbiAgICAgIG9mZnNldHMgPSBfcmVmMi5vZmZzZXRzLFxuICAgICAgcG9zaXRpb24gPSBfcmVmMi5wb3NpdGlvbixcbiAgICAgIGdwdUFjY2VsZXJhdGlvbiA9IF9yZWYyLmdwdUFjY2VsZXJhdGlvbixcbiAgICAgIGFkYXB0aXZlID0gX3JlZjIuYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHMgPSBfcmVmMi5yb3VuZE9mZnNldHMsXG4gICAgICBpc0ZpeGVkID0gX3JlZjIuaXNGaXhlZDtcbiAgdmFyIF9vZmZzZXRzJHggPSBvZmZzZXRzLngsXG4gICAgICB4ID0gX29mZnNldHMkeCA9PT0gdm9pZCAwID8gMCA6IF9vZmZzZXRzJHgsXG4gICAgICBfb2Zmc2V0cyR5ID0gb2Zmc2V0cy55LFxuICAgICAgeSA9IF9vZmZzZXRzJHkgPT09IHZvaWQgMCA/IDAgOiBfb2Zmc2V0cyR5O1xuXG4gIHZhciBfcmVmMyA9IHR5cGVvZiByb3VuZE9mZnNldHMgPT09ICdmdW5jdGlvbicgPyByb3VuZE9mZnNldHMoe1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9KSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjMueDtcbiAgeSA9IF9yZWYzLnk7XG4gIHZhciBoYXNYID0gb2Zmc2V0cy5oYXNPd25Qcm9wZXJ0eSgneCcpO1xuICB2YXIgaGFzWSA9IG9mZnNldHMuaGFzT3duUHJvcGVydHkoJ3knKTtcbiAgdmFyIHNpZGVYID0gbGVmdDtcbiAgdmFyIHNpZGVZID0gdG9wO1xuICB2YXIgd2luID0gd2luZG93O1xuXG4gIGlmIChhZGFwdGl2ZSkge1xuICAgIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQocG9wcGVyKTtcbiAgICB2YXIgaGVpZ2h0UHJvcCA9ICdjbGllbnRIZWlnaHQnO1xuICAgIHZhciB3aWR0aFByb3AgPSAnY2xpZW50V2lkdGgnO1xuXG4gICAgaWYgKG9mZnNldFBhcmVudCA9PT0gZ2V0V2luZG93KHBvcHBlcikpIHtcbiAgICAgIG9mZnNldFBhcmVudCA9IGdldERvY3VtZW50RWxlbWVudChwb3BwZXIpO1xuXG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uICE9PSAnc3RhdGljJyAmJiBwb3NpdGlvbiA9PT0gJ2Fic29sdXRlJykge1xuICAgICAgICBoZWlnaHRQcm9wID0gJ3Njcm9sbEhlaWdodCc7XG4gICAgICAgIHdpZHRoUHJvcCA9ICdzY3JvbGxXaWR0aCc7XG4gICAgICB9XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYXN0XTogZm9yY2UgdHlwZSByZWZpbmVtZW50LCB3ZSBjb21wYXJlIG9mZnNldFBhcmVudCB3aXRoIHdpbmRvdyBhYm92ZSwgYnV0IEZsb3cgZG9lc24ndCBkZXRlY3QgaXRcblxuXG4gICAgb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50O1xuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gdG9wIHx8IChwbGFjZW1lbnQgPT09IGxlZnQgfHwgcGxhY2VtZW50ID09PSByaWdodCkgJiYgdmFyaWF0aW9uID09PSBlbmQpIHtcbiAgICAgIHNpZGVZID0gYm90dG9tO1xuICAgICAgdmFyIG9mZnNldFkgPSBpc0ZpeGVkICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgICAgIG9mZnNldFBhcmVudFtoZWlnaHRQcm9wXTtcbiAgICAgIHkgLT0gb2Zmc2V0WSAtIHBvcHBlclJlY3QuaGVpZ2h0O1xuICAgICAgeSAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gbGVmdCB8fCAocGxhY2VtZW50ID09PSB0b3AgfHwgcGxhY2VtZW50ID09PSBib3R0b20pICYmIHZhcmlhdGlvbiA9PT0gZW5kKSB7XG4gICAgICBzaWRlWCA9IHJpZ2h0O1xuICAgICAgdmFyIG9mZnNldFggPSBpc0ZpeGVkICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC53aWR0aCA6IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgICAgb2Zmc2V0UGFyZW50W3dpZHRoUHJvcF07XG4gICAgICB4IC09IG9mZnNldFggLSBwb3BwZXJSZWN0LndpZHRoO1xuICAgICAgeCAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHBvc2l0aW9uOiBwb3NpdGlvblxuICB9LCBhZGFwdGl2ZSAmJiB1bnNldFNpZGVzKTtcblxuICB2YXIgX3JlZjQgPSByb3VuZE9mZnNldHMgPT09IHRydWUgPyByb3VuZE9mZnNldHNCeURQUih7XG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH0pIDoge1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9O1xuXG4gIHggPSBfcmVmNC54O1xuICB5ID0gX3JlZjQueTtcblxuICBpZiAoZ3B1QWNjZWxlcmF0aW9uKSB7XG4gICAgdmFyIF9PYmplY3QkYXNzaWduO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywgKF9PYmplY3QkYXNzaWduID0ge30sIF9PYmplY3QkYXNzaWduW3NpZGVZXSA9IGhhc1kgPyAnMCcgOiAnJywgX09iamVjdCRhc3NpZ25bc2lkZVhdID0gaGFzWCA/ICcwJyA6ICcnLCBfT2JqZWN0JGFzc2lnbi50cmFuc2Zvcm0gPSAod2luLmRldmljZVBpeGVsUmF0aW8gfHwgMSkgPD0gMSA/IFwidHJhbnNsYXRlKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgpXCIgOiBcInRyYW5zbGF0ZTNkKFwiICsgeCArIFwicHgsIFwiICsgeSArIFwicHgsIDApXCIsIF9PYmplY3QkYXNzaWduKSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCAoX09iamVjdCRhc3NpZ24yID0ge30sIF9PYmplY3QkYXNzaWduMltzaWRlWV0gPSBoYXNZID8geSArIFwicHhcIiA6ICcnLCBfT2JqZWN0JGFzc2lnbjJbc2lkZVhdID0gaGFzWCA/IHggKyBcInB4XCIgOiAnJywgX09iamVjdCRhc3NpZ24yLnRyYW5zZm9ybSA9ICcnLCBfT2JqZWN0JGFzc2lnbjIpKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVN0eWxlcyhfcmVmNSkge1xuICB2YXIgc3RhdGUgPSBfcmVmNS5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmNS5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZ3B1QWNjZWxlcmF0ID0gb3B0aW9ucy5ncHVBY2NlbGVyYXRpb24sXG4gICAgICBncHVBY2NlbGVyYXRpb24gPSBfb3B0aW9ucyRncHVBY2NlbGVyYXQgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRncHVBY2NlbGVyYXQsXG4gICAgICBfb3B0aW9ucyRhZGFwdGl2ZSA9IG9wdGlvbnMuYWRhcHRpdmUsXG4gICAgICBhZGFwdGl2ZSA9IF9vcHRpb25zJGFkYXB0aXZlID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWRhcHRpdmUsXG4gICAgICBfb3B0aW9ucyRyb3VuZE9mZnNldHMgPSBvcHRpb25zLnJvdW5kT2Zmc2V0cyxcbiAgICAgIHJvdW5kT2Zmc2V0cyA9IF9vcHRpb25zJHJvdW5kT2Zmc2V0cyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJvdW5kT2Zmc2V0cztcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIHRyYW5zaXRpb25Qcm9wZXJ0eSA9IGdldENvbXB1dGVkU3R5bGUoc3RhdGUuZWxlbWVudHMucG9wcGVyKS50cmFuc2l0aW9uUHJvcGVydHkgfHwgJyc7XG5cbiAgICBpZiAoYWRhcHRpdmUgJiYgWyd0cmFuc2Zvcm0nLCAndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10uc29tZShmdW5jdGlvbiAocHJvcGVydHkpIHtcbiAgICAgIHJldHVybiB0cmFuc2l0aW9uUHJvcGVydHkuaW5kZXhPZihwcm9wZXJ0eSkgPj0gMDtcbiAgICB9KSkge1xuICAgICAgY29uc29sZS53YXJuKFsnUG9wcGVyOiBEZXRlY3RlZCBDU1MgdHJhbnNpdGlvbnMgb24gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcnLCAnQ1NTIHByb3BlcnRpZXM6IFwidHJhbnNmb3JtXCIsIFwidG9wXCIsIFwicmlnaHRcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIuJywgJ1xcblxcbicsICdEaXNhYmxlIHRoZSBcImNvbXB1dGVTdHlsZXNcIiBtb2RpZmllclxcJ3MgYGFkYXB0aXZlYCBvcHRpb24gdG8gYWxsb3cnLCAnZm9yIHNtb290aCB0cmFuc2l0aW9ucywgb3IgcmVtb3ZlIHRoZXNlIHByb3BlcnRpZXMgZnJvbSB0aGUgQ1NTJywgJ3RyYW5zaXRpb24gZGVjbGFyYXRpb24gb24gdGhlIHBvcHBlciBlbGVtZW50IGlmIG9ubHkgdHJhbnNpdGlvbmluZycsICdvcGFjaXR5IG9yIGJhY2tncm91bmQtY29sb3IgZm9yIGV4YW1wbGUuJywgJ1xcblxcbicsICdXZSByZWNvbW1lbmQgdXNpbmcgdGhlIHBvcHBlciBlbGVtZW50IGFzIGEgd3JhcHBlciBhcm91bmQgYW4gaW5uZXInLCAnZWxlbWVudCB0aGF0IGNhbiBoYXZlIGFueSBDU1MgcHJvcGVydHkgdHJhbnNpdGlvbmVkIGZvciBhbmltYXRpb25zLiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IHtcbiAgICBwbGFjZW1lbnQ6IGdldEJhc2VQbGFjZW1lbnQoc3RhdGUucGxhY2VtZW50KSxcbiAgICB2YXJpYXRpb246IGdldFZhcmlhdGlvbihzdGF0ZS5wbGFjZW1lbnQpLFxuICAgIHBvcHBlcjogc3RhdGUuZWxlbWVudHMucG9wcGVyLFxuICAgIHBvcHBlclJlY3Q6IHN0YXRlLnJlY3RzLnBvcHBlcixcbiAgICBncHVBY2NlbGVyYXRpb246IGdwdUFjY2VsZXJhdGlvbixcbiAgICBpc0ZpeGVkOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnXG4gIH07XG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyAhPSBudWxsKSB7XG4gICAgc3RhdGUuc3R5bGVzLnBvcHBlciA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnN0eWxlcy5wb3BwZXIsIG1hcFRvU3R5bGVzKE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywge1xuICAgICAgb2Zmc2V0czogc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLFxuICAgICAgcG9zaXRpb246IHN0YXRlLm9wdGlvbnMuc3RyYXRlZ3ksXG4gICAgICBhZGFwdGl2ZTogYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHM6IHJvdW5kT2Zmc2V0c1xuICAgIH0pKSk7XG4gIH1cblxuICBpZiAoc3RhdGUubW9kaWZpZXJzRGF0YS5hcnJvdyAhPSBudWxsKSB7XG4gICAgc3RhdGUuc3R5bGVzLmFycm93ID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc3R5bGVzLmFycm93LCBtYXBUb1N0eWxlcyhPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIHtcbiAgICAgIG9mZnNldHM6IHN0YXRlLm1vZGlmaWVyc0RhdGEuYXJyb3csXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGFkYXB0aXZlOiBmYWxzZSxcbiAgICAgIHJvdW5kT2Zmc2V0czogcm91bmRPZmZzZXRzXG4gICAgfSkpKTtcbiAgfVxuXG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcGxhY2VtZW50Jzogc3RhdGUucGxhY2VtZW50XG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnY29tcHV0ZVN0eWxlcycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnYmVmb3JlV3JpdGUnLFxuICBmbjogY29tcHV0ZVN0eWxlcyxcbiAgZGF0YToge31cbn07IiwiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldFdpbmRvdy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciBwYXNzaXZlID0ge1xuICBwYXNzaXZlOiB0cnVlXG59O1xuXG5mdW5jdGlvbiBlZmZlY3QoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgaW5zdGFuY2UgPSBfcmVmLmluc3RhbmNlLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucztcbiAgdmFyIF9vcHRpb25zJHNjcm9sbCA9IG9wdGlvbnMuc2Nyb2xsLFxuICAgICAgc2Nyb2xsID0gX29wdGlvbnMkc2Nyb2xsID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkc2Nyb2xsLFxuICAgICAgX29wdGlvbnMkcmVzaXplID0gb3B0aW9ucy5yZXNpemUsXG4gICAgICByZXNpemUgPSBfb3B0aW9ucyRyZXNpemUgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRyZXNpemU7XG4gIHZhciB3aW5kb3cgPSBnZXRXaW5kb3coc3RhdGUuZWxlbWVudHMucG9wcGVyKTtcbiAgdmFyIHNjcm9sbFBhcmVudHMgPSBbXS5jb25jYXQoc3RhdGUuc2Nyb2xsUGFyZW50cy5yZWZlcmVuY2UsIHN0YXRlLnNjcm9sbFBhcmVudHMucG9wcGVyKTtcblxuICBpZiAoc2Nyb2xsKSB7XG4gICAgc2Nyb2xsUGFyZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzY3JvbGxQYXJlbnQpIHtcbiAgICAgIHNjcm9sbFBhcmVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKHJlc2l6ZSkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2Nyb2xsKSB7XG4gICAgICBzY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24gKHNjcm9sbFBhcmVudCkge1xuICAgICAgICBzY3JvbGxQYXJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaW5zdGFuY2UudXBkYXRlLCBwYXNzaXZlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChyZXNpemUpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgIH1cbiAgfTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2V2ZW50TGlzdGVuZXJzJyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICd3cml0ZScsXG4gIGZuOiBmdW5jdGlvbiBmbigpIHt9LFxuICBlZmZlY3Q6IGVmZmVjdCxcbiAgZGF0YToge31cbn07IiwidmFyIGhhc2ggPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59IiwidmFyIGhhc2ggPSB7XG4gIHN0YXJ0OiAnZW5kJyxcbiAgZW5kOiAnc3RhcnQnXG59O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvc3RhcnR8ZW5kL2csIGZ1bmN0aW9uIChtYXRjaGVkKSB7XG4gICAgcmV0dXJuIGhhc2hbbWF0Y2hlZF07XG4gIH0pO1xufSIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGwobm9kZSkge1xuICB2YXIgd2luID0gZ2V0V2luZG93KG5vZGUpO1xuICB2YXIgc2Nyb2xsTGVmdCA9IHdpbi5wYWdlWE9mZnNldDtcbiAgdmFyIHNjcm9sbFRvcCA9IHdpbi5wYWdlWU9mZnNldDtcbiAgcmV0dXJuIHtcbiAgICBzY3JvbGxMZWZ0OiBzY3JvbGxMZWZ0LFxuICAgIHNjcm9sbFRvcDogc2Nyb2xsVG9wXG4gIH07XG59IiwiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSB7XG4gIC8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbiAgLy8gaW5jb3JyZWN0IGZvciBSVEwuXG4gIC8vIFBvcHBlciAxIGlzIGJyb2tlbiBpbiB0aGlzIGNhc2UgYW5kIG5ldmVyIGhhZCBhIGJ1ZyByZXBvcnQgc28gbGV0J3MgYXNzdW1lXG4gIC8vIGl0J3Mgbm90IGFuIGlzc3VlLiBJIGRvbid0IHRoaW5rIGFueW9uZSBldmVyIHNwZWNpZmllcyB3aWR0aCBvbiA8aHRtbD5cbiAgLy8gYW55d2F5LlxuICAvLyBCcm93c2VycyB3aGVyZSB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBjYXVzZSBhbiBpc3N1ZSByZXBvcnQgYDBgIGZvclxuICAvLyB0aGlzIChlLmcuIEVkZ2UgMjAxOSwgSUUxMSwgU2FmYXJpKVxuICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGdldFdpbmRvd1Njcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xufSIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQpIHtcbiAgdmFyIHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgdmFyIGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIHZhciB2aXN1YWxWaWV3cG9ydCA9IHdpbi52aXN1YWxWaWV3cG9ydDtcbiAgdmFyIHdpZHRoID0gaHRtbC5jbGllbnRXaWR0aDtcbiAgdmFyIGhlaWdodCA9IGh0bWwuY2xpZW50SGVpZ2h0O1xuICB2YXIgeCA9IDA7XG4gIHZhciB5ID0gMDsgLy8gTkI6IFRoaXMgaXNuJ3Qgc3VwcG9ydGVkIG9uIGlPUyA8PSAxMi4gSWYgdGhlIGtleWJvYXJkIGlzIG9wZW4sIHRoZSBwb3BwZXJcbiAgLy8gY2FuIGJlIG9ic2N1cmVkIHVuZGVybmVhdGggaXQuXG4gIC8vIEFsc28sIGBodG1sLmNsaWVudEhlaWdodGAgYWRkcyB0aGUgYm90dG9tIGJhciBoZWlnaHQgaW4gU2FmYXJpIGlPUywgZXZlblxuICAvLyBpZiBpdCBpc24ndCBvcGVuLCBzbyBpZiB0aGlzIGlzbid0IGF2YWlsYWJsZSwgdGhlIHBvcHBlciB3aWxsIGJlIGRldGVjdGVkXG4gIC8vIHRvIG92ZXJmbG93IHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiB0b28gZWFybHkuXG5cbiAgaWYgKHZpc3VhbFZpZXdwb3J0KSB7XG4gICAgd2lkdGggPSB2aXN1YWxWaWV3cG9ydC53aWR0aDtcbiAgICBoZWlnaHQgPSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7IC8vIFVzZXMgTGF5b3V0IFZpZXdwb3J0IChsaWtlIENocm9tZTsgU2FmYXJpIGRvZXMgbm90IGN1cnJlbnRseSlcbiAgICAvLyBJbiBDaHJvbWUsIGl0IHJldHVybnMgYSB2YWx1ZSB2ZXJ5IGNsb3NlIHRvIDAgKCsvLSkgYnV0IGNvbnRhaW5zIHJvdW5kaW5nXG4gICAgLy8gZXJyb3JzIGR1ZSB0byBmbG9hdGluZyBwb2ludCBudW1iZXJzLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHByZWNpc2lvbi5cbiAgICAvLyBTYWZhcmkgcmV0dXJucyBhIG51bWJlciA8PSAwLCB1c3VhbGx5IDwgLTEgd2hlbiBwaW5jaC16b29tZWRcbiAgICAvLyBGZWF0dXJlIGRldGVjdGlvbiBmYWlscyBpbiBtb2JpbGUgZW11bGF0aW9uIG1vZGUgaW4gQ2hyb21lLlxuICAgIC8vIE1hdGguYWJzKHdpbi5pbm5lcldpZHRoIC8gdmlzdWFsVmlld3BvcnQuc2NhbGUgLSB2aXN1YWxWaWV3cG9ydC53aWR0aCkgPFxuICAgIC8vIDAuMDAxXG4gICAgLy8gRmFsbGJhY2sgaGVyZTogXCJOb3QgU2FmYXJpXCIgdXNlckFnZW50XG5cbiAgICBpZiAoIS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHtcbiAgICAgIHggPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgeSA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4OiB4ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSxcbiAgICB5OiB5XG4gIH07XG59IiwiaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGxCYXJYIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbEJhclguanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGwgZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsLmpzXCI7XG5pbXBvcnQgeyBtYXggfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiOyAvLyBHZXRzIHRoZSBlbnRpcmUgc2l6ZSBvZiB0aGUgc2Nyb2xsYWJsZSBkb2N1bWVudCBhcmVhLCBldmVuIGV4dGVuZGluZyBvdXRzaWRlXG4vLyBvZiB0aGUgYDxodG1sPmAgYW5kIGA8Ym9keT5gIHJlY3QgYm91bmRzIGlmIGhvcml6b250YWxseSBzY3JvbGxhYmxlXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERvY3VtZW50UmVjdChlbGVtZW50KSB7XG4gIHZhciBfZWxlbWVudCRvd25lckRvY3VtZW47XG5cbiAgdmFyIGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIHZhciB3aW5TY3JvbGwgPSBnZXRXaW5kb3dTY3JvbGwoZWxlbWVudCk7XG4gIHZhciBib2R5ID0gKF9lbGVtZW50JG93bmVyRG9jdW1lbiA9IGVsZW1lbnQub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lbGVtZW50JG93bmVyRG9jdW1lbi5ib2R5O1xuICB2YXIgd2lkdGggPSBtYXgoaHRtbC5zY3JvbGxXaWR0aCwgaHRtbC5jbGllbnRXaWR0aCwgYm9keSA/IGJvZHkuc2Nyb2xsV2lkdGggOiAwLCBib2R5ID8gYm9keS5jbGllbnRXaWR0aCA6IDApO1xuICB2YXIgaGVpZ2h0ID0gbWF4KGh0bWwuc2Nyb2xsSGVpZ2h0LCBodG1sLmNsaWVudEhlaWdodCwgYm9keSA/IGJvZHkuc2Nyb2xsSGVpZ2h0IDogMCwgYm9keSA/IGJvZHkuY2xpZW50SGVpZ2h0IDogMCk7XG4gIHZhciB4ID0gLXdpblNjcm9sbC5zY3JvbGxMZWZ0ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KTtcbiAgdmFyIHkgPSAtd2luU2Nyb2xsLnNjcm9sbFRvcDtcblxuICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShib2R5IHx8IGh0bWwpLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICB4ICs9IG1heChodG1sLmNsaWVudFdpZHRoLCBib2R5ID8gYm9keS5jbGllbnRXaWR0aCA6IDApIC0gd2lkdGg7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcbn0iLCJpbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1Njcm9sbFBhcmVudChlbGVtZW50KSB7XG4gIC8vIEZpcmVmb3ggd2FudHMgdXMgdG8gY2hlY2sgYC14YCBhbmQgYC15YCB2YXJpYXRpb25zIGFzIHdlbGxcbiAgdmFyIF9nZXRDb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSxcbiAgICAgIG92ZXJmbG93ID0gX2dldENvbXB1dGVkU3R5bGUub3ZlcmZsb3csXG4gICAgICBvdmVyZmxvd1ggPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvd1gsXG4gICAgICBvdmVyZmxvd1kgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvd1k7XG5cbiAgcmV0dXJuIC9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbi8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCk7XG59IiwiaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGlzU2Nyb2xsUGFyZW50IGZyb20gXCIuL2lzU2Nyb2xsUGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQobm9kZSkge1xuICBpZiAoWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5kZXhPZihnZXROb2RlTmFtZShub2RlKSkgPj0gMCkge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cblxuICBpZiAoaXNIVE1MRWxlbWVudChub2RlKSAmJiBpc1Njcm9sbFBhcmVudChub2RlKSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKG5vZGUpKTtcbn0iLCJpbXBvcnQgZ2V0U2Nyb2xsUGFyZW50IGZyb20gXCIuL2dldFNjcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuLypcbmdpdmVuIGEgRE9NIGVsZW1lbnQsIHJldHVybiB0aGUgbGlzdCBvZiBhbGwgc2Nyb2xsIHBhcmVudHMsIHVwIHRoZSBsaXN0IG9mIGFuY2Vzb3JzXG51bnRpbCB3ZSBnZXQgdG8gdGhlIHRvcCB3aW5kb3cgb2JqZWN0LiBUaGlzIGxpc3QgaXMgd2hhdCB3ZSBhdHRhY2ggc2Nyb2xsIGxpc3RlbmVyc1xudG8sIGJlY2F1c2UgaWYgYW55IG9mIHRoZXNlIHBhcmVudCBlbGVtZW50cyBzY3JvbGwsIHdlJ2xsIG5lZWQgdG8gcmUtY2FsY3VsYXRlIHRoZVxucmVmZXJlbmNlIGVsZW1lbnQncyBwb3NpdGlvbi5cbiovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxpc3RTY3JvbGxQYXJlbnRzKGVsZW1lbnQsIGxpc3QpIHtcbiAgdmFyIF9lbGVtZW50JG93bmVyRG9jdW1lbjtcblxuICBpZiAobGlzdCA9PT0gdm9pZCAwKSB7XG4gICAgbGlzdCA9IFtdO1xuICB9XG5cbiAgdmFyIHNjcm9sbFBhcmVudCA9IGdldFNjcm9sbFBhcmVudChlbGVtZW50KTtcbiAgdmFyIGlzQm9keSA9IHNjcm9sbFBhcmVudCA9PT0gKChfZWxlbWVudCRvd25lckRvY3VtZW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZWxlbWVudCRvd25lckRvY3VtZW4uYm9keSk7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3coc2Nyb2xsUGFyZW50KTtcbiAgdmFyIHRhcmdldCA9IGlzQm9keSA/IFt3aW5dLmNvbmNhdCh3aW4udmlzdWFsVmlld3BvcnQgfHwgW10sIGlzU2Nyb2xsUGFyZW50KHNjcm9sbFBhcmVudCkgPyBzY3JvbGxQYXJlbnQgOiBbXSkgOiBzY3JvbGxQYXJlbnQ7XG4gIHZhciB1cGRhdGVkTGlzdCA9IGxpc3QuY29uY2F0KHRhcmdldCk7XG4gIHJldHVybiBpc0JvZHkgPyB1cGRhdGVkTGlzdCA6IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLWNhbGxdOiBpc0JvZHkgdGVsbHMgdXMgdGFyZ2V0IHdpbGwgYmUgYW4gSFRNTEVsZW1lbnQgaGVyZVxuICB1cGRhdGVkTGlzdC5jb25jYXQobGlzdFNjcm9sbFBhcmVudHMoZ2V0UGFyZW50Tm9kZSh0YXJnZXQpKSk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZWN0LCB7XG4gICAgbGVmdDogcmVjdC54LFxuICAgIHRvcDogcmVjdC55LFxuICAgIHJpZ2h0OiByZWN0LnggKyByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogcmVjdC55ICsgcmVjdC5oZWlnaHRcbiAgfSk7XG59IiwiaW1wb3J0IHsgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWaWV3cG9ydFJlY3QgZnJvbSBcIi4vZ2V0Vmlld3BvcnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRSZWN0IGZyb20gXCIuL2dldERvY3VtZW50UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2xpc3RTY3JvbGxQYXJlbnRzLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0UGFyZW50Tm9kZSBmcm9tIFwiLi9nZXRQYXJlbnROb2RlLmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4vY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4uL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCB7IG1heCwgbWluIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTtcbiAgcmVjdC50b3AgPSByZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICByZWN0LmxlZnQgPSByZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudExlZnQ7XG4gIHJlY3QuYm90dG9tID0gcmVjdC50b3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcbiAgcmVjdC5yaWdodCA9IHJlY3QubGVmdCArIGVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIHJlY3Qud2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoO1xuICByZWN0LmhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICByZWN0LnggPSByZWN0LmxlZnQ7XG4gIHJlY3QueSA9IHJlY3QudG9wO1xuICByZXR1cm4gcmVjdDtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQpIHtcbiAgcmV0dXJuIGNsaXBwaW5nUGFyZW50ID09PSB2aWV3cG9ydCA/IHJlY3RUb0NsaWVudFJlY3QoZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQpKSA6IGlzRWxlbWVudChjbGlwcGluZ1BhcmVudCkgPyBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ1BhcmVudCkgOiByZWN0VG9DbGllbnRSZWN0KGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpKTtcbn0gLy8gQSBcImNsaXBwaW5nIHBhcmVudFwiIGlzIGFuIG92ZXJmbG93YWJsZSBjb250YWluZXIgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpdGggYSBwb3NpdGlvbiBkaWZmZXJlbnQgZnJvbVxuLy8gYGluaXRpYWxgXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIHtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xuICB2YXIgY2FuRXNjYXBlQ2xpcHBpbmcgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSA+PSAwO1xuICB2YXIgY2xpcHBlckVsZW1lbnQgPSBjYW5Fc2NhcGVDbGlwcGluZyAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIDogZWxlbWVudDtcblxuICBpZiAoIWlzRWxlbWVudChjbGlwcGVyRWxlbWVudCkpIHtcbiAgICByZXR1cm4gW107XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzE0MTRcblxuXG4gIHJldHVybiBjbGlwcGluZ1BhcmVudHMuZmlsdGVyKGZ1bmN0aW9uIChjbGlwcGluZ1BhcmVudCkge1xuICAgIHJldHVybiBpc0VsZW1lbnQoY2xpcHBpbmdQYXJlbnQpICYmIGNvbnRhaW5zKGNsaXBwaW5nUGFyZW50LCBjbGlwcGVyRWxlbWVudCkgJiYgZ2V0Tm9kZU5hbWUoY2xpcHBpbmdQYXJlbnQpICE9PSAnYm9keSc7XG4gIH0pO1xufSAvLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBwYXJlbnRzXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KGVsZW1lbnQsIGJvdW5kYXJ5LCByb290Qm91bmRhcnkpIHtcbiAgdmFyIG1haW5DbGlwcGluZ1BhcmVudHMgPSBib3VuZGFyeSA9PT0gJ2NsaXBwaW5nUGFyZW50cycgPyBnZXRDbGlwcGluZ1BhcmVudHMoZWxlbWVudCkgOiBbXS5jb25jYXQoYm91bmRhcnkpO1xuICB2YXIgY2xpcHBpbmdQYXJlbnRzID0gW10uY29uY2F0KG1haW5DbGlwcGluZ1BhcmVudHMsIFtyb290Qm91bmRhcnldKTtcbiAgdmFyIGZpcnN0Q2xpcHBpbmdQYXJlbnQgPSBjbGlwcGluZ1BhcmVudHNbMF07XG4gIHZhciBjbGlwcGluZ1JlY3QgPSBjbGlwcGluZ1BhcmVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2NSZWN0LCBjbGlwcGluZ1BhcmVudCkge1xuICAgIHZhciByZWN0ID0gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQpO1xuICAgIGFjY1JlY3QudG9wID0gbWF4KHJlY3QudG9wLCBhY2NSZWN0LnRvcCk7XG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcbiAgICBhY2NSZWN0LmJvdHRvbSA9IG1pbihyZWN0LmJvdHRvbSwgYWNjUmVjdC5ib3R0b20pO1xuICAgIGFjY1JlY3QubGVmdCA9IG1heChyZWN0LmxlZnQsIGFjY1JlY3QubGVmdCk7XG4gICAgcmV0dXJuIGFjY1JlY3Q7XG4gIH0sIGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGZpcnN0Q2xpcHBpbmdQYXJlbnQpKTtcbiAgY2xpcHBpbmdSZWN0LndpZHRoID0gY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQ7XG4gIGNsaXBwaW5nUmVjdC5oZWlnaHQgPSBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcDtcbiAgY2xpcHBpbmdSZWN0LnggPSBjbGlwcGluZ1JlY3QubGVmdDtcbiAgY2xpcHBpbmdSZWN0LnkgPSBjbGlwcGluZ1JlY3QudG9wO1xuICByZXR1cm4gY2xpcHBpbmdSZWN0O1xufSIsImltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4vZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBzdGFydCwgZW5kIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciByZWZlcmVuY2UgPSBfcmVmLnJlZmVyZW5jZSxcbiAgICAgIGVsZW1lbnQgPSBfcmVmLmVsZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfcmVmLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBwbGFjZW1lbnQgPyBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgdmFyaWF0aW9uID0gcGxhY2VtZW50ID8gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgY29tbW9uWCA9IHJlZmVyZW5jZS54ICsgcmVmZXJlbmNlLndpZHRoIC8gMiAtIGVsZW1lbnQud2lkdGggLyAyO1xuICB2YXIgY29tbW9uWSA9IHJlZmVyZW5jZS55ICsgcmVmZXJlbmNlLmhlaWdodCAvIDIgLSBlbGVtZW50LmhlaWdodCAvIDI7XG4gIHZhciBvZmZzZXRzO1xuXG4gIHN3aXRjaCAoYmFzZVBsYWNlbWVudCkge1xuICAgIGNhc2UgdG9wOlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBlbGVtZW50LmhlaWdodFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBib3R0b206XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiBjb21tb25YLFxuICAgICAgICB5OiByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcmlnaHQ6XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBsZWZ0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLnggLSBlbGVtZW50LndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG5cbiAgdmFyIG1haW5BeGlzID0gYmFzZVBsYWNlbWVudCA/IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KSA6IG51bGw7XG5cbiAgaWYgKG1haW5BeGlzICE9IG51bGwpIHtcbiAgICB2YXIgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHN3aXRjaCAodmFyaWF0aW9uKSB7XG4gICAgICBjYXNlIHN0YXJ0OlxuICAgICAgICBvZmZzZXRzW21haW5BeGlzXSA9IG9mZnNldHNbbWFpbkF4aXNdIC0gKHJlZmVyZW5jZVtsZW5dIC8gMiAtIGVsZW1lbnRbbGVuXSAvIDIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBlbmQ6XG4gICAgICAgIG9mZnNldHNbbWFpbkF4aXNdID0gb2Zmc2V0c1ttYWluQXhpc10gKyAocmVmZXJlbmNlW2xlbl0gLyAyIC0gZWxlbWVudFtsZW5dIC8gMik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvZmZzZXRzO1xufSIsImltcG9ydCBnZXRDbGlwcGluZ1JlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi9jb21wdXRlT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4vcmVjdFRvQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IHsgY2xpcHBpbmdQYXJlbnRzLCByZWZlcmVuY2UsIHBvcHBlciwgYm90dG9tLCB0b3AsIHJpZ2h0LCBiYXNlUGxhY2VtZW50cywgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IG1lcmdlUGFkZGluZ09iamVjdCBmcm9tIFwiLi9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4vZXhwYW5kVG9IYXNoTWFwLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsXG4gICAgICBfb3B0aW9ucyRwbGFjZW1lbnQgPSBfb3B0aW9ucy5wbGFjZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfb3B0aW9ucyRwbGFjZW1lbnQgPT09IHZvaWQgMCA/IHN0YXRlLnBsYWNlbWVudCA6IF9vcHRpb25zJHBsYWNlbWVudCxcbiAgICAgIF9vcHRpb25zJGJvdW5kYXJ5ID0gX29wdGlvbnMuYm91bmRhcnksXG4gICAgICBib3VuZGFyeSA9IF9vcHRpb25zJGJvdW5kYXJ5ID09PSB2b2lkIDAgPyBjbGlwcGluZ1BhcmVudHMgOiBfb3B0aW9ucyRib3VuZGFyeSxcbiAgICAgIF9vcHRpb25zJHJvb3RCb3VuZGFyeSA9IF9vcHRpb25zLnJvb3RCb3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeSA9IF9vcHRpb25zJHJvb3RCb3VuZGFyeSA9PT0gdm9pZCAwID8gdmlld3BvcnQgOiBfb3B0aW9ucyRyb290Qm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRlbGVtZW50Q29udGUgPSBfb3B0aW9ucy5lbGVtZW50Q29udGV4dCxcbiAgICAgIGVsZW1lbnRDb250ZXh0ID0gX29wdGlvbnMkZWxlbWVudENvbnRlID09PSB2b2lkIDAgPyBwb3BwZXIgOiBfb3B0aW9ucyRlbGVtZW50Q29udGUsXG4gICAgICBfb3B0aW9ucyRhbHRCb3VuZGFyeSA9IF9vcHRpb25zLmFsdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnkgPSBfb3B0aW9ucyRhbHRCb3VuZGFyeSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRhbHRCb3VuZGFyeSxcbiAgICAgIF9vcHRpb25zJHBhZGRpbmcgPSBfb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgcGFkZGluZyA9IF9vcHRpb25zJHBhZGRpbmcgPT09IHZvaWQgMCA/IDAgOiBfb3B0aW9ucyRwYWRkaW5nO1xuICB2YXIgcGFkZGluZ09iamVjdCA9IG1lcmdlUGFkZGluZ09iamVjdCh0eXBlb2YgcGFkZGluZyAhPT0gJ251bWJlcicgPyBwYWRkaW5nIDogZXhwYW5kVG9IYXNoTWFwKHBhZGRpbmcsIGJhc2VQbGFjZW1lbnRzKSk7XG4gIHZhciBhbHRDb250ZXh0ID0gZWxlbWVudENvbnRleHQgPT09IHBvcHBlciA/IHJlZmVyZW5jZSA6IHBvcHBlcjtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciBlbGVtZW50ID0gc3RhdGUuZWxlbWVudHNbYWx0Qm91bmRhcnkgPyBhbHRDb250ZXh0IDogZWxlbWVudENvbnRleHRdO1xuICB2YXIgY2xpcHBpbmdDbGllbnRSZWN0ID0gZ2V0Q2xpcHBpbmdSZWN0KGlzRWxlbWVudChlbGVtZW50KSA/IGVsZW1lbnQgOiBlbGVtZW50LmNvbnRleHRFbGVtZW50IHx8IGdldERvY3VtZW50RWxlbWVudChzdGF0ZS5lbGVtZW50cy5wb3BwZXIpLCBib3VuZGFyeSwgcm9vdEJvdW5kYXJ5KTtcbiAgdmFyIHJlZmVyZW5jZUNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlKTtcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBjb21wdXRlT2Zmc2V0cyh7XG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VDbGllbnRSZWN0LFxuICAgIGVsZW1lbnQ6IHBvcHBlclJlY3QsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBwbGFjZW1lbnRcbiAgfSk7XG4gIHZhciBwb3BwZXJDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChPYmplY3QuYXNzaWduKHt9LCBwb3BwZXJSZWN0LCBwb3BwZXJPZmZzZXRzKSk7XG4gIHZhciBlbGVtZW50Q2xpZW50UmVjdCA9IGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgPyBwb3BwZXJDbGllbnRSZWN0IDogcmVmZXJlbmNlQ2xpZW50UmVjdDsgLy8gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgcmVjdFxuICAvLyAwIG9yIG5lZ2F0aXZlID0gd2l0aGluIHRoZSBjbGlwcGluZyByZWN0XG5cbiAgdmFyIG92ZXJmbG93T2Zmc2V0cyA9IHtcbiAgICB0b3A6IGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCxcbiAgICBib3R0b206IGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSxcbiAgICBsZWZ0OiBjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQsXG4gICAgcmlnaHQ6IGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodFxuICB9O1xuICB2YXIgb2Zmc2V0RGF0YSA9IHN0YXRlLm1vZGlmaWVyc0RhdGEub2Zmc2V0OyAvLyBPZmZzZXRzIGNhbiBiZSBhcHBsaWVkIG9ubHkgdG8gdGhlIHBvcHBlciBlbGVtZW50XG5cbiAgaWYgKGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgJiYgb2Zmc2V0RGF0YSkge1xuICAgIHZhciBvZmZzZXQgPSBvZmZzZXREYXRhW3BsYWNlbWVudF07XG4gICAgT2JqZWN0LmtleXMob3ZlcmZsb3dPZmZzZXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHZhciBtdWx0aXBseSA9IFtyaWdodCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/IDEgOiAtMTtcbiAgICAgIHZhciBheGlzID0gW3RvcCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/ICd5JyA6ICd4JztcbiAgICAgIG92ZXJmbG93T2Zmc2V0c1trZXldICs9IG9mZnNldFtheGlzXSAqIG11bHRpcGx5O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG92ZXJmbG93T2Zmc2V0cztcbn0iLCJpbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IHsgdmFyaWF0aW9uUGxhY2VtZW50cywgYmFzZVBsYWNlbWVudHMsIHBsYWNlbWVudHMgYXMgYWxsUGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlQXV0b1BsYWNlbWVudChzdGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIHBsYWNlbWVudCA9IF9vcHRpb25zLnBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5ID0gX29wdGlvbnMuYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBfb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gX29wdGlvbnMucGFkZGluZyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMuZmxpcFZhcmlhdGlvbnMsXG4gICAgICBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPSBfb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHMsXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHMgPSBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPT09IHZvaWQgMCA/IGFsbFBsYWNlbWVudHMgOiBfb3B0aW9ucyRhbGxvd2VkQXV0b1A7XG4gIHZhciB2YXJpYXRpb24gPSBnZXRWYXJpYXRpb24ocGxhY2VtZW50KTtcbiAgdmFyIHBsYWNlbWVudHMgPSB2YXJpYXRpb24gPyBmbGlwVmFyaWF0aW9ucyA/IHZhcmlhdGlvblBsYWNlbWVudHMgOiB2YXJpYXRpb25QbGFjZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSB2YXJpYXRpb247XG4gIH0pIDogYmFzZVBsYWNlbWVudHM7XG4gIHZhciBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gYWxsb3dlZEF1dG9QbGFjZW1lbnRzLmluZGV4T2YocGxhY2VtZW50KSA+PSAwO1xuICB9KTtcblxuICBpZiAoYWxsb3dlZFBsYWNlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgYWxsb3dlZFBsYWNlbWVudHMgPSBwbGFjZW1lbnRzO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgY29uc29sZS5lcnJvcihbJ1BvcHBlcjogVGhlIGBhbGxvd2VkQXV0b1BsYWNlbWVudHNgIG9wdGlvbiBkaWQgbm90IGFsbG93IGFueScsICdwbGFjZW1lbnRzLiBFbnN1cmUgdGhlIGBwbGFjZW1lbnRgIG9wdGlvbiBtYXRjaGVzIHRoZSB2YXJpYXRpb24nLCAnb2YgdGhlIGFsbG93ZWQgcGxhY2VtZW50cy4nLCAnRm9yIGV4YW1wbGUsIFwiYXV0b1wiIGNhbm5vdCBiZSB1c2VkIHRvIGFsbG93IFwiYm90dG9tLXN0YXJ0XCIuJywgJ1VzZSBcImF1dG8tc3RhcnRcIiBpbnN0ZWFkLiddLmpvaW4oJyAnKSk7XG4gICAgfVxuICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdOiBGbG93IHNlZW1zIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCB0d28gYXJyYXkgdW5pb25zLi4uXG5cblxuICB2YXIgb3ZlcmZsb3dzID0gYWxsb3dlZFBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICAgIGFjY1twbGFjZW1lbnRdID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nXG4gICAgfSlbZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpXTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvdmVyZmxvd3MpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dzW2FdIC0gb3ZlcmZsb3dzW2JdO1xuICB9KTtcbn0iLCJpbXBvcnQgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuLi91dGlscy9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGNvbXB1dGVBdXRvUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9jb21wdXRlQXV0b1BsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgYm90dG9tLCB0b3AsIHN0YXJ0LCByaWdodCwgbGVmdCwgYXV0byB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi4vdXRpbHMvZ2V0VmFyaWF0aW9uLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZnVuY3Rpb24gZ2V0RXhwYW5kZWRGYWxsYmFja1BsYWNlbWVudHMocGxhY2VtZW50KSB7XG4gIGlmIChnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgPT09IGF1dG8pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgb3Bwb3NpdGVQbGFjZW1lbnQgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICByZXR1cm4gW2dldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50KHBsYWNlbWVudCksIG9wcG9zaXRlUGxhY2VtZW50LCBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChvcHBvc2l0ZVBsYWNlbWVudCldO1xufVxuXG5mdW5jdGlvbiBmbGlwKF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhW25hbWVdLl9za2lwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIF9vcHRpb25zJG1haW5BeGlzID0gb3B0aW9ucy5tYWluQXhpcyxcbiAgICAgIGNoZWNrTWFpbkF4aXMgPSBfb3B0aW9ucyRtYWluQXhpcyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJG1haW5BeGlzLFxuICAgICAgX29wdGlvbnMkYWx0QXhpcyA9IG9wdGlvbnMuYWx0QXhpcyxcbiAgICAgIGNoZWNrQWx0QXhpcyA9IF9vcHRpb25zJGFsdEF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzID0gb3B0aW9ucy5mYWxsYmFja1BsYWNlbWVudHMsXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRmbGlwVmFyaWF0aW8gPSBvcHRpb25zLmZsaXBWYXJpYXRpb25zLFxuICAgICAgZmxpcFZhcmlhdGlvbnMgPSBfb3B0aW9ucyRmbGlwVmFyaWF0aW8gPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRmbGlwVmFyaWF0aW8sXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHMgPSBvcHRpb25zLmFsbG93ZWRBdXRvUGxhY2VtZW50cztcbiAgdmFyIHByZWZlcnJlZFBsYWNlbWVudCA9IHN0YXRlLm9wdGlvbnMucGxhY2VtZW50O1xuICB2YXIgYmFzZVBsYWNlbWVudCA9IGdldEJhc2VQbGFjZW1lbnQocHJlZmVycmVkUGxhY2VtZW50KTtcbiAgdmFyIGlzQmFzZVBsYWNlbWVudCA9IGJhc2VQbGFjZW1lbnQgPT09IHByZWZlcnJlZFBsYWNlbWVudDtcbiAgdmFyIGZhbGxiYWNrUGxhY2VtZW50cyA9IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyB8fCAoaXNCYXNlUGxhY2VtZW50IHx8ICFmbGlwVmFyaWF0aW9ucyA/IFtnZXRPcHBvc2l0ZVBsYWNlbWVudChwcmVmZXJyZWRQbGFjZW1lbnQpXSA6IGdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzKHByZWZlcnJlZFBsYWNlbWVudCkpO1xuICB2YXIgcGxhY2VtZW50cyA9IFtwcmVmZXJyZWRQbGFjZW1lbnRdLmNvbmNhdChmYWxsYmFja1BsYWNlbWVudHMpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gYWNjLmNvbmNhdChnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgPT09IGF1dG8gPyBjb21wdXRlQXV0b1BsYWNlbWVudChzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmcsXG4gICAgICBmbGlwVmFyaWF0aW9uczogZmxpcFZhcmlhdGlvbnMsXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IGFsbG93ZWRBdXRvUGxhY2VtZW50c1xuICAgIH0pIDogcGxhY2VtZW50KTtcbiAgfSwgW10pO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciBjaGVja3NNYXAgPSBuZXcgTWFwKCk7XG4gIHZhciBtYWtlRmFsbGJhY2tDaGVja3MgPSB0cnVlO1xuICB2YXIgZmlyc3RGaXR0aW5nUGxhY2VtZW50ID0gcGxhY2VtZW50c1swXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHBsYWNlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGxhY2VtZW50ID0gcGxhY2VtZW50c1tpXTtcblxuICAgIHZhciBfYmFzZVBsYWNlbWVudCA9IGdldEJhc2VQbGFjZW1lbnQocGxhY2VtZW50KTtcblxuICAgIHZhciBpc1N0YXJ0VmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgPT09IHN0YXJ0O1xuICAgIHZhciBpc1ZlcnRpY2FsID0gW3RvcCwgYm90dG9tXS5pbmRleE9mKF9iYXNlUGxhY2VtZW50KSA+PSAwO1xuICAgIHZhciBsZW4gPSBpc1ZlcnRpY2FsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIHZhciBvdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeTogcm9vdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnk6IGFsdEJvdW5kYXJ5LFxuICAgICAgcGFkZGluZzogcGFkZGluZ1xuICAgIH0pO1xuICAgIHZhciBtYWluVmFyaWF0aW9uU2lkZSA9IGlzVmVydGljYWwgPyBpc1N0YXJ0VmFyaWF0aW9uID8gcmlnaHQgOiBsZWZ0IDogaXNTdGFydFZhcmlhdGlvbiA/IGJvdHRvbSA6IHRvcDtcblxuICAgIGlmIChyZWZlcmVuY2VSZWN0W2xlbl0gPiBwb3BwZXJSZWN0W2xlbl0pIHtcbiAgICAgIG1haW5WYXJpYXRpb25TaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpblZhcmlhdGlvblNpZGUpO1xuICAgIH1cblxuICAgIHZhciBhbHRWYXJpYXRpb25TaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpblZhcmlhdGlvblNpZGUpO1xuICAgIHZhciBjaGVja3MgPSBbXTtcblxuICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICBjaGVja3MucHVzaChvdmVyZmxvd1tfYmFzZVBsYWNlbWVudF0gPD0gMCk7XG4gICAgfVxuXG4gICAgaWYgKGNoZWNrQWx0QXhpcykge1xuICAgICAgY2hlY2tzLnB1c2gob3ZlcmZsb3dbbWFpblZhcmlhdGlvblNpZGVdIDw9IDAsIG92ZXJmbG93W2FsdFZhcmlhdGlvblNpZGVdIDw9IDApO1xuICAgIH1cblxuICAgIGlmIChjaGVja3MuZXZlcnkoZnVuY3Rpb24gKGNoZWNrKSB7XG4gICAgICByZXR1cm4gY2hlY2s7XG4gICAgfSkpIHtcbiAgICAgIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudDtcbiAgICAgIG1ha2VGYWxsYmFja0NoZWNrcyA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2hlY2tzTWFwLnNldChwbGFjZW1lbnQsIGNoZWNrcyk7XG4gIH1cblxuICBpZiAobWFrZUZhbGxiYWNrQ2hlY2tzKSB7XG4gICAgLy8gYDJgIG1heSBiZSBkZXNpcmVkIGluIHNvbWUgY2FzZXMg4oCTIHJlc2VhcmNoIGxhdGVyXG4gICAgdmFyIG51bWJlck9mQ2hlY2tzID0gZmxpcFZhcmlhdGlvbnMgPyAzIDogMTtcblxuICAgIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKF9pKSB7XG4gICAgICB2YXIgZml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudHMuZmluZChmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgICAgIHZhciBjaGVja3MgPSBjaGVja3NNYXAuZ2V0KHBsYWNlbWVudCk7XG5cbiAgICAgICAgaWYgKGNoZWNrcykge1xuICAgICAgICAgIHJldHVybiBjaGVja3Muc2xpY2UoMCwgX2kpLmV2ZXJ5KGZ1bmN0aW9uIChjaGVjaykge1xuICAgICAgICAgICAgcmV0dXJuIGNoZWNrO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGZpdHRpbmdQbGFjZW1lbnQpIHtcbiAgICAgICAgZmlyc3RGaXR0aW5nUGxhY2VtZW50ID0gZml0dGluZ1BsYWNlbWVudDtcbiAgICAgICAgcmV0dXJuIFwiYnJlYWtcIjtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9yICh2YXIgX2kgPSBudW1iZXJPZkNoZWNrczsgX2kgPiAwOyBfaS0tKSB7XG4gICAgICB2YXIgX3JldCA9IF9sb29wKF9pKTtcblxuICAgICAgaWYgKF9yZXQgPT09IFwiYnJlYWtcIikgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0YXRlLnBsYWNlbWVudCAhPT0gZmlyc3RGaXR0aW5nUGxhY2VtZW50KSB7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXS5fc2tpcCA9IHRydWU7XG4gICAgc3RhdGUucGxhY2VtZW50ID0gZmlyc3RGaXR0aW5nUGxhY2VtZW50O1xuICAgIHN0YXRlLnJlc2V0ID0gdHJ1ZTtcbiAgfVxufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZmxpcCcsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIGZuOiBmbGlwLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ29mZnNldCddLFxuICBkYXRhOiB7XG4gICAgX3NraXA6IGZhbHNlXG4gIH1cbn07IiwiaW1wb3J0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5cbmZ1bmN0aW9uIGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0LCBwcmV2ZW50ZWRPZmZzZXRzKSB7XG4gIGlmIChwcmV2ZW50ZWRPZmZzZXRzID09PSB2b2lkIDApIHtcbiAgICBwcmV2ZW50ZWRPZmZzZXRzID0ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IG92ZXJmbG93LnRvcCAtIHJlY3QuaGVpZ2h0IC0gcHJldmVudGVkT2Zmc2V0cy55LFxuICAgIHJpZ2h0OiBvdmVyZmxvdy5yaWdodCAtIHJlY3Qud2lkdGggKyBwcmV2ZW50ZWRPZmZzZXRzLngsXG4gICAgYm90dG9tOiBvdmVyZmxvdy5ib3R0b20gLSByZWN0LmhlaWdodCArIHByZXZlbnRlZE9mZnNldHMueSxcbiAgICBsZWZ0OiBvdmVyZmxvdy5sZWZ0IC0gcmVjdC53aWR0aCAtIHByZXZlbnRlZE9mZnNldHMueFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdLnNvbWUoZnVuY3Rpb24gKHNpZGUpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dbc2lkZV0gPj0gMDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhpZGUoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgcHJldmVudGVkT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucHJldmVudE92ZXJmbG93O1xuICB2YXIgcmVmZXJlbmNlT3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGVsZW1lbnRDb250ZXh0OiAncmVmZXJlbmNlJ1xuICB9KTtcbiAgdmFyIHBvcHBlckFsdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBhbHRCb3VuZGFyeTogdHJ1ZVxuICB9KTtcbiAgdmFyIHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKHJlZmVyZW5jZU92ZXJmbG93LCByZWZlcmVuY2VSZWN0KTtcbiAgdmFyIHBvcHBlckVzY2FwZU9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhwb3BwZXJBbHRPdmVyZmxvdywgcG9wcGVyUmVjdCwgcHJldmVudGVkT2Zmc2V0cyk7XG4gIHZhciBpc1JlZmVyZW5jZUhpZGRlbiA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChyZWZlcmVuY2VDbGlwcGluZ09mZnNldHMpO1xuICB2YXIgaGFzUG9wcGVyRXNjYXBlZCA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChwb3BwZXJFc2NhcGVPZmZzZXRzKTtcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IHtcbiAgICByZWZlcmVuY2VDbGlwcGluZ09mZnNldHM6IHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyxcbiAgICBwb3BwZXJFc2NhcGVPZmZzZXRzOiBwb3BwZXJFc2NhcGVPZmZzZXRzLFxuICAgIGlzUmVmZXJlbmNlSGlkZGVuOiBpc1JlZmVyZW5jZUhpZGRlbixcbiAgICBoYXNQb3BwZXJFc2NhcGVkOiBoYXNQb3BwZXJFc2NhcGVkXG4gIH07XG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcmVmZXJlbmNlLWhpZGRlbic6IGlzUmVmZXJlbmNlSGlkZGVuLFxuICAgICdkYXRhLXBvcHBlci1lc2NhcGVkJzogaGFzUG9wcGVyRXNjYXBlZFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2hpZGUnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ3ByZXZlbnRPdmVyZmxvdyddLFxuICBmbjogaGlkZVxufTsiLCJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgcGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZUFuZFNraWRkaW5nVG9YWShwbGFjZW1lbnQsIHJlY3RzLCBvZmZzZXQpIHtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHZhciBpbnZlcnREaXN0YW5jZSA9IFtsZWZ0LCB0b3BdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMCA/IC0xIDogMTtcblxuICB2YXIgX3JlZiA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgcmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KSkgOiBvZmZzZXQsXG4gICAgICBza2lkZGluZyA9IF9yZWZbMF0sXG4gICAgICBkaXN0YW5jZSA9IF9yZWZbMV07XG5cbiAgc2tpZGRpbmcgPSBza2lkZGluZyB8fCAwO1xuICBkaXN0YW5jZSA9IChkaXN0YW5jZSB8fCAwKSAqIGludmVydERpc3RhbmNlO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpID49IDAgPyB7XG4gICAgeDogZGlzdGFuY2UsXG4gICAgeTogc2tpZGRpbmdcbiAgfSA6IHtcbiAgICB4OiBza2lkZGluZyxcbiAgICB5OiBkaXN0YW5jZVxuICB9O1xufVxuXG5mdW5jdGlvbiBvZmZzZXQoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmMi5uYW1lO1xuICB2YXIgX29wdGlvbnMkb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQsXG4gICAgICBvZmZzZXQgPSBfb3B0aW9ucyRvZmZzZXQgPT09IHZvaWQgMCA/IFswLCAwXSA6IF9vcHRpb25zJG9mZnNldDtcbiAgdmFyIGRhdGEgPSBwbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRpc3RhbmNlQW5kU2tpZGRpbmdUb1hZKHBsYWNlbWVudCwgc3RhdGUucmVjdHMsIG9mZnNldCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICB2YXIgX2RhdGEkc3RhdGUkcGxhY2VtZW50ID0gZGF0YVtzdGF0ZS5wbGFjZW1lbnRdLFxuICAgICAgeCA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC54LFxuICAgICAgeSA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC55O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54ICs9IHg7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkgKz0geTtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnb2Zmc2V0JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICBmbjogb2Zmc2V0XG59OyIsImltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZU9mZnNldHMuanNcIjtcblxuZnVuY3Rpb24gcG9wcGVyT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICAvLyBPZmZzZXRzIGFyZSB0aGUgYWN0dWFsIHBvc2l0aW9uIHRoZSBwb3BwZXIgbmVlZHMgdG8gaGF2ZSB0byBiZVxuICAvLyBwcm9wZXJseSBwb3NpdGlvbmVkIG5lYXIgaXRzIHJlZmVyZW5jZSBlbGVtZW50XG4gIC8vIFRoaXMgaXMgdGhlIG1vc3QgYmFzaWMgcGxhY2VtZW50LCBhbmQgd2lsbCBiZSBhZGp1c3RlZCBieVxuICAvLyB0aGUgbW9kaWZpZXJzIGluIHRoZSBuZXh0IHN0ZXBcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IGNvbXB1dGVPZmZzZXRzKHtcbiAgICByZWZlcmVuY2U6IHN0YXRlLnJlY3RzLnJlZmVyZW5jZSxcbiAgICBlbGVtZW50OiBzdGF0ZS5yZWN0cy5wb3BwZXIsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBzdGF0ZS5wbGFjZW1lbnRcbiAgfSk7XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdwb3BwZXJPZmZzZXRzJyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdyZWFkJyxcbiAgZm46IHBvcHBlck9mZnNldHMsXG4gIGRhdGE6IHt9XG59OyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFsdEF4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufSIsImltcG9ydCB7IHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgc3RhcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRBbHRBeGlzIGZyb20gXCIuLi91dGlscy9nZXRBbHRBeGlzLmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4sIHdpdGhpbk1heENsYW1wIH0gZnJvbSBcIi4uL3V0aWxzL3dpdGhpbi5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuLi91dGlscy9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4uL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qc1wiO1xuaW1wb3J0IHsgbWluIGFzIG1hdGhNaW4sIG1heCBhcyBtYXRoTWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gcHJldmVudE92ZXJmbG93KF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICB2YXIgX29wdGlvbnMkbWFpbkF4aXMgPSBvcHRpb25zLm1haW5BeGlzLFxuICAgICAgY2hlY2tNYWluQXhpcyA9IF9vcHRpb25zJG1haW5BeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkbWFpbkF4aXMsXG4gICAgICBfb3B0aW9ucyRhbHRBeGlzID0gb3B0aW9ucy5hbHRBeGlzLFxuICAgICAgY2hlY2tBbHRBeGlzID0gX29wdGlvbnMkYWx0QXhpcyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgX29wdGlvbnMkdGV0aGVyID0gb3B0aW9ucy50ZXRoZXIsXG4gICAgICB0ZXRoZXIgPSBfb3B0aW9ucyR0ZXRoZXIgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyR0ZXRoZXIsXG4gICAgICBfb3B0aW9ucyR0ZXRoZXJPZmZzZXQgPSBvcHRpb25zLnRldGhlck9mZnNldCxcbiAgICAgIHRldGhlck9mZnNldCA9IF9vcHRpb25zJHRldGhlck9mZnNldCA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHRldGhlck9mZnNldDtcbiAgdmFyIG92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgcGFkZGluZzogcGFkZGluZyxcbiAgICBhbHRCb3VuZGFyeTogYWx0Qm91bmRhcnlcbiAgfSk7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5wbGFjZW1lbnQpO1xuICB2YXIgdmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSAhdmFyaWF0aW9uO1xuICB2YXIgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoYmFzZVBsYWNlbWVudCk7XG4gIHZhciBhbHRBeGlzID0gZ2V0QWx0QXhpcyhtYWluQXhpcyk7XG4gIHZhciBwb3BwZXJPZmZzZXRzID0gc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciB0ZXRoZXJPZmZzZXRWYWx1ZSA9IHR5cGVvZiB0ZXRoZXJPZmZzZXQgPT09ICdmdW5jdGlvbicgPyB0ZXRoZXJPZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHN0YXRlLnBsYWNlbWVudFxuICB9KSkgOiB0ZXRoZXJPZmZzZXQ7XG4gIHZhciBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUgPSB0eXBlb2YgdGV0aGVyT2Zmc2V0VmFsdWUgPT09ICdudW1iZXInID8ge1xuICAgIG1haW5BeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZSxcbiAgICBhbHRBeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZVxuICB9IDogT2JqZWN0LmFzc2lnbih7XG4gICAgbWFpbkF4aXM6IDAsXG4gICAgYWx0QXhpczogMFxuICB9LCB0ZXRoZXJPZmZzZXRWYWx1ZSk7XG4gIHZhciBvZmZzZXRNb2RpZmllclN0YXRlID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQgPyBzdGF0ZS5tb2RpZmllcnNEYXRhLm9mZnNldFtzdGF0ZS5wbGFjZW1lbnRdIDogbnVsbDtcbiAgdmFyIGRhdGEgPSB7XG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG5cbiAgaWYgKCFwb3BwZXJPZmZzZXRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICB2YXIgX29mZnNldE1vZGlmaWVyU3RhdGUkO1xuXG4gICAgdmFyIG1haW5TaWRlID0gbWFpbkF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gICAgdmFyIGFsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG4gICAgdmFyIG9mZnNldCA9IHBvcHBlck9mZnNldHNbbWFpbkF4aXNdO1xuICAgIHZhciBtaW4gPSBvZmZzZXQgKyBvdmVyZmxvd1ttYWluU2lkZV07XG4gICAgdmFyIG1heCA9IG9mZnNldCAtIG92ZXJmbG93W2FsdFNpZGVdO1xuICAgIHZhciBhZGRpdGl2ZSA9IHRldGhlciA/IC1wb3BwZXJSZWN0W2xlbl0gLyAyIDogMDtcbiAgICB2YXIgbWluTGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IHJlZmVyZW5jZVJlY3RbbGVuXSA6IHBvcHBlclJlY3RbbGVuXTtcbiAgICB2YXIgbWF4TGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IC1wb3BwZXJSZWN0W2xlbl0gOiAtcmVmZXJlbmNlUmVjdFtsZW5dOyAvLyBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIGFycm93IGluIHRoZSBjYWxjdWxhdGlvbiBzbyB0aGUgYXJyb3cgZG9lc24ndCBnb1xuICAgIC8vIG91dHNpZGUgdGhlIHJlZmVyZW5jZSBib3VuZHNcblxuICAgIHZhciBhcnJvd0VsZW1lbnQgPSBzdGF0ZS5lbGVtZW50cy5hcnJvdztcbiAgICB2YXIgYXJyb3dSZWN0ID0gdGV0aGVyICYmIGFycm93RWxlbWVudCA/IGdldExheW91dFJlY3QoYXJyb3dFbGVtZW50KSA6IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nT2JqZWN0ID0gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddID8gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddLnBhZGRpbmcgOiBnZXRGcmVzaFNpZGVPYmplY3QoKTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWluID0gYXJyb3dQYWRkaW5nT2JqZWN0W21haW5TaWRlXTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWF4ID0gYXJyb3dQYWRkaW5nT2JqZWN0W2FsdFNpZGVdOyAvLyBJZiB0aGUgcmVmZXJlbmNlIGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gdGhlIGFycm93IGxlbmd0aCwgd2UgZG9uJ3Qgd2FudFxuICAgIC8vIHRvIGluY2x1ZGUgaXRzIGZ1bGwgc2l6ZSBpbiB0aGUgY2FsY3VsYXRpb24uIElmIHRoZSByZWZlcmVuY2UgaXMgc21hbGxcbiAgICAvLyBhbmQgbmVhciB0aGUgZWRnZSBvZiBhIGJvdW5kYXJ5LCB0aGUgcG9wcGVyIGNhbiBvdmVyZmxvdyBldmVuIGlmIHRoZVxuICAgIC8vIHJlZmVyZW5jZSBpcyBub3Qgb3ZlcmZsb3dpbmcgYXMgd2VsbCAoZS5nLiB2aXJ0dWFsIGVsZW1lbnRzIHdpdGggbm9cbiAgICAvLyB3aWR0aCBvciBoZWlnaHQpXG5cbiAgICB2YXIgYXJyb3dMZW4gPSB3aXRoaW4oMCwgcmVmZXJlbmNlUmVjdFtsZW5dLCBhcnJvd1JlY3RbbGVuXSk7XG4gICAgdmFyIG1pbk9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IHJlZmVyZW5jZVJlY3RbbGVuXSAvIDIgLSBhZGRpdGl2ZSAtIGFycm93TGVuIC0gYXJyb3dQYWRkaW5nTWluIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzIDogbWluTGVuIC0gYXJyb3dMZW4gLSBhcnJvd1BhZGRpbmdNaW4gLSBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUubWFpbkF4aXM7XG4gICAgdmFyIG1heE9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IC1yZWZlcmVuY2VSZWN0W2xlbl0gLyAyICsgYWRkaXRpdmUgKyBhcnJvd0xlbiArIGFycm93UGFkZGluZ01heCArIG5vcm1hbGl6ZWRUZXRoZXJPZmZzZXRWYWx1ZS5tYWluQXhpcyA6IG1heExlbiArIGFycm93TGVuICsgYXJyb3dQYWRkaW5nTWF4ICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzO1xuICAgIHZhciBhcnJvd09mZnNldFBhcmVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93ICYmIGdldE9mZnNldFBhcmVudChzdGF0ZS5lbGVtZW50cy5hcnJvdyk7XG4gICAgdmFyIGNsaWVudE9mZnNldCA9IGFycm93T2Zmc2V0UGFyZW50ID8gbWFpbkF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFRvcCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50TGVmdCB8fCAwIDogMDtcbiAgICB2YXIgb2Zmc2V0TW9kaWZpZXJWYWx1ZSA9IChfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQgPSBvZmZzZXRNb2RpZmllclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBvZmZzZXRNb2RpZmllclN0YXRlW21haW5BeGlzXSkgIT0gbnVsbCA/IF9vZmZzZXRNb2RpZmllclN0YXRlJCA6IDA7XG4gICAgdmFyIHRldGhlck1pbiA9IG9mZnNldCArIG1pbk9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWUgLSBjbGllbnRPZmZzZXQ7XG4gICAgdmFyIHRldGhlck1heCA9IG9mZnNldCArIG1heE9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWU7XG4gICAgdmFyIHByZXZlbnRlZE9mZnNldCA9IHdpdGhpbih0ZXRoZXIgPyBtYXRoTWluKG1pbiwgdGV0aGVyTWluKSA6IG1pbiwgb2Zmc2V0LCB0ZXRoZXIgPyBtYXRoTWF4KG1heCwgdGV0aGVyTWF4KSA6IG1heCk7XG4gICAgcG9wcGVyT2Zmc2V0c1ttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQ7XG4gICAgZGF0YVttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQgLSBvZmZzZXQ7XG4gIH1cblxuICBpZiAoY2hlY2tBbHRBeGlzKSB7XG4gICAgdmFyIF9vZmZzZXRNb2RpZmllclN0YXRlJDI7XG5cbiAgICB2YXIgX21haW5TaWRlID0gbWFpbkF4aXMgPT09ICd4JyA/IHRvcCA6IGxlZnQ7XG5cbiAgICB2YXIgX2FsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gYm90dG9tIDogcmlnaHQ7XG5cbiAgICB2YXIgX29mZnNldCA9IHBvcHBlck9mZnNldHNbYWx0QXhpc107XG5cbiAgICB2YXIgX2xlbiA9IGFsdEF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHZhciBfbWluID0gX29mZnNldCArIG92ZXJmbG93W19tYWluU2lkZV07XG5cbiAgICB2YXIgX21heCA9IF9vZmZzZXQgLSBvdmVyZmxvd1tfYWx0U2lkZV07XG5cbiAgICB2YXIgaXNPcmlnaW5TaWRlID0gW3RvcCwgbGVmdF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSAhPT0gLTE7XG5cbiAgICB2YXIgX29mZnNldE1vZGlmaWVyVmFsdWUgPSAoX29mZnNldE1vZGlmaWVyU3RhdGUkMiA9IG9mZnNldE1vZGlmaWVyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9mZnNldE1vZGlmaWVyU3RhdGVbYWx0QXhpc10pICE9IG51bGwgPyBfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQyIDogMDtcblxuICAgIHZhciBfdGV0aGVyTWluID0gaXNPcmlnaW5TaWRlID8gX21pbiA6IF9vZmZzZXQgLSByZWZlcmVuY2VSZWN0W19sZW5dIC0gcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXM7XG5cbiAgICB2YXIgX3RldGhlck1heCA9IGlzT3JpZ2luU2lkZSA/IF9vZmZzZXQgKyByZWZlcmVuY2VSZWN0W19sZW5dICsgcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXMgOiBfbWF4O1xuXG4gICAgdmFyIF9wcmV2ZW50ZWRPZmZzZXQgPSB0ZXRoZXIgJiYgaXNPcmlnaW5TaWRlID8gd2l0aGluTWF4Q2xhbXAoX3RldGhlck1pbiwgX29mZnNldCwgX3RldGhlck1heCkgOiB3aXRoaW4odGV0aGVyID8gX3RldGhlck1pbiA6IF9taW4sIF9vZmZzZXQsIHRldGhlciA/IF90ZXRoZXJNYXggOiBfbWF4KTtcblxuICAgIHBvcHBlck9mZnNldHNbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0O1xuICAgIGRhdGFbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0IC0gX29mZnNldDtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgZm46IHByZXZlbnRPdmVyZmxvdyxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXVxufTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRIVE1MRWxlbWVudFNjcm9sbChlbGVtZW50KSB7XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgfTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgZ2V0SFRNTEVsZW1lbnRTY3JvbGwgZnJvbSBcIi4vZ2V0SFRNTEVsZW1lbnRTY3JvbGwuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE5vZGVTY3JvbGwobm9kZSkge1xuICBpZiAobm9kZSA9PT0gZ2V0V2luZG93KG5vZGUpIHx8ICFpc0hUTUxFbGVtZW50KG5vZGUpKSB7XG4gICAgcmV0dXJuIGdldFdpbmRvd1Njcm9sbChub2RlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRTY3JvbGwobm9kZSk7XG4gIH1cbn0iLCJpbXBvcnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gXCIuL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGdldE5vZGVTY3JvbGwgZnJvbSBcIi4vZ2V0Tm9kZVNjcm9sbC5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnRTY2FsZWQoZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBzY2FsZVggPSByb3VuZChyZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMTtcbiAgdmFyIHNjYWxlWSA9IHJvdW5kKHJlY3QuaGVpZ2h0KSAvIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDE7XG4gIHJldHVybiBzY2FsZVggIT09IDEgfHwgc2NhbGVZICE9PSAxO1xufSAvLyBSZXR1cm5zIHRoZSBjb21wb3NpdGUgcmVjdCBvZiBhbiBlbGVtZW50IHJlbGF0aXZlIHRvIGl0cyBvZmZzZXRQYXJlbnQuXG4vLyBDb21wb3NpdGUgbWVhbnMgaXQgdGFrZXMgaW50byBhY2NvdW50IHRyYW5zZm9ybXMgYXMgd2VsbCBhcyBsYXlvdXQuXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcG9zaXRlUmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50LCBpc0ZpeGVkKSB7XG4gIGlmIChpc0ZpeGVkID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkID0gZmFsc2U7XG4gIH1cblxuICB2YXIgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIHZhciBvZmZzZXRQYXJlbnRJc1NjYWxlZCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc0VsZW1lbnRTY2FsZWQob2Zmc2V0UGFyZW50KTtcbiAgdmFyIGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICB2YXIgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50SXNTY2FsZWQpO1xuICB2YXIgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIHZhciBvZmZzZXRzID0ge1xuICAgIHg6IDAsXG4gICAgeTogMFxuICB9O1xuXG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTA3OFxuICAgIGlzU2Nyb2xsUGFyZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBvZmZzZXRzID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSk7XG4gICAgICBvZmZzZXRzLnggKz0gb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgKz0gb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgb2Zmc2V0cy54ID0gZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgeDogcmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSBvZmZzZXRzLngsXG4gICAgeTogcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn0iLCJpbXBvcnQgeyBtb2RpZmllclBoYXNlcyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBzb3VyY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5ODc1MjU1XG5cbmZ1bmN0aW9uIG9yZGVyKG1vZGlmaWVycykge1xuICB2YXIgbWFwID0gbmV3IE1hcCgpO1xuICB2YXIgdmlzaXRlZCA9IG5ldyBTZXQoKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBtYXAuc2V0KG1vZGlmaWVyLm5hbWUsIG1vZGlmaWVyKTtcbiAgfSk7IC8vIE9uIHZpc2l0aW5nIG9iamVjdCwgY2hlY2sgZm9yIGl0cyBkZXBlbmRlbmNpZXMgYW5kIHZpc2l0IHRoZW0gcmVjdXJzaXZlbHlcblxuICBmdW5jdGlvbiBzb3J0KG1vZGlmaWVyKSB7XG4gICAgdmlzaXRlZC5hZGQobW9kaWZpZXIubmFtZSk7XG4gICAgdmFyIHJlcXVpcmVzID0gW10uY29uY2F0KG1vZGlmaWVyLnJlcXVpcmVzIHx8IFtdLCBtb2RpZmllci5yZXF1aXJlc0lmRXhpc3RzIHx8IFtdKTtcbiAgICByZXF1aXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChkZXApIHtcbiAgICAgIGlmICghdmlzaXRlZC5oYXMoZGVwKSkge1xuICAgICAgICB2YXIgZGVwTW9kaWZpZXIgPSBtYXAuZ2V0KGRlcCk7XG5cbiAgICAgICAgaWYgKGRlcE1vZGlmaWVyKSB7XG4gICAgICAgICAgc29ydChkZXBNb2RpZmllcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXN1bHQucHVzaChtb2RpZmllcik7XG4gIH1cblxuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBpZiAoIXZpc2l0ZWQuaGFzKG1vZGlmaWVyLm5hbWUpKSB7XG4gICAgICAvLyBjaGVjayBmb3IgdmlzaXRlZCBvYmplY3RcbiAgICAgIHNvcnQobW9kaWZpZXIpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9yZGVyTW9kaWZpZXJzKG1vZGlmaWVycykge1xuICAvLyBvcmRlciBiYXNlZCBvbiBkZXBlbmRlbmNpZXNcbiAgdmFyIG9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcihtb2RpZmllcnMpOyAvLyBvcmRlciBiYXNlZCBvbiBwaGFzZVxuXG4gIHJldHVybiBtb2RpZmllclBoYXNlcy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGhhc2UpIHtcbiAgICByZXR1cm4gYWNjLmNvbmNhdChvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgIHJldHVybiBtb2RpZmllci5waGFzZSA9PT0gcGhhc2U7XG4gICAgfSkpO1xuICB9LCBbXSk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVib3VuY2UoZm4pIHtcbiAgdmFyIHBlbmRpbmc7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFwZW5kaW5nKSB7XG4gICAgICBwZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXNvbHZlKGZuKCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwZW5kaW5nO1xuICB9O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQnlOYW1lKG1vZGlmaWVycykge1xuICB2YXIgbWVyZ2VkID0gbW9kaWZpZXJzLnJlZHVjZShmdW5jdGlvbiAobWVyZ2VkLCBjdXJyZW50KSB7XG4gICAgdmFyIGV4aXN0aW5nID0gbWVyZ2VkW2N1cnJlbnQubmFtZV07XG4gICAgbWVyZ2VkW2N1cnJlbnQubmFtZV0gPSBleGlzdGluZyA/IE9iamVjdC5hc3NpZ24oe30sIGV4aXN0aW5nLCBjdXJyZW50LCB7XG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBleGlzdGluZy5vcHRpb25zLCBjdXJyZW50Lm9wdGlvbnMpLFxuICAgICAgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZXhpc3RpbmcuZGF0YSwgY3VycmVudC5kYXRhKVxuICAgIH0pIDogY3VycmVudDtcbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9LCB7fSk7IC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBPYmplY3QudmFsdWVzXG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1lcmdlZCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbWVyZ2VkW2tleV07XG4gIH0pO1xufSIsImltcG9ydCBnZXRDb21wb3NpdGVSZWN0IGZyb20gXCIuL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0TGF5b3V0UmVjdCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2RvbS11dGlscy9saXN0U2Nyb2xsUGFyZW50cy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IG9yZGVyTW9kaWZpZXJzIGZyb20gXCIuL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzXCI7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcIi4vdXRpbHMvZGVib3VuY2UuanNcIjtcbmltcG9ydCB2YWxpZGF0ZU1vZGlmaWVycyBmcm9tIFwiLi91dGlscy92YWxpZGF0ZU1vZGlmaWVycy5qc1wiO1xuaW1wb3J0IHVuaXF1ZUJ5IGZyb20gXCIuL3V0aWxzL3VuaXF1ZUJ5LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgbWVyZ2VCeU5hbWUgZnJvbSBcIi4vdXRpbHMvbWVyZ2VCeU5hbWUuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi91dGlscy9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4vZG9tLXV0aWxzL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCB7IGF1dG8gfSBmcm9tIFwiLi9lbnVtcy5qc1wiO1xudmFyIElOVkFMSURfRUxFTUVOVF9FUlJPUiA9ICdQb3BwZXI6IEludmFsaWQgcmVmZXJlbmNlIG9yIHBvcHBlciBhcmd1bWVudCBwcm92aWRlZC4gVGhleSBtdXN0IGJlIGVpdGhlciBhIERPTSBlbGVtZW50IG9yIHZpcnR1YWwgZWxlbWVudC4nO1xudmFyIElORklOSVRFX0xPT1BfRVJST1IgPSAnUG9wcGVyOiBBbiBpbmZpbml0ZSBsb29wIGluIHRoZSBtb2RpZmllcnMgY3ljbGUgaGFzIGJlZW4gZGV0ZWN0ZWQhIFRoZSBjeWNsZSBoYXMgYmVlbiBpbnRlcnJ1cHRlZCB0byBwcmV2ZW50IGEgYnJvd3NlciBjcmFzaC4nO1xudmFyIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgbW9kaWZpZXJzOiBbXSxcbiAgc3RyYXRlZ3k6ICdhYnNvbHV0ZSdcbn07XG5cbmZ1bmN0aW9uIGFyZVZhbGlkRWxlbWVudHMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gIWFyZ3Muc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHJldHVybiAhKGVsZW1lbnQgJiYgdHlwZW9mIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID09PSAnZnVuY3Rpb24nKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3BwZXJHZW5lcmF0b3IoZ2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoZ2VuZXJhdG9yT3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgZ2VuZXJhdG9yT3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9nZW5lcmF0b3JPcHRpb25zID0gZ2VuZXJhdG9yT3B0aW9ucyxcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZiA9IF9nZW5lcmF0b3JPcHRpb25zLmRlZmF1bHRNb2RpZmllcnMsXG4gICAgICBkZWZhdWx0TW9kaWZpZXJzID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmID09PSB2b2lkIDAgPyBbXSA6IF9nZW5lcmF0b3JPcHRpb25zJGRlZixcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZjIgPSBfZ2VuZXJhdG9yT3B0aW9ucy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIGRlZmF1bHRPcHRpb25zID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmMiA9PT0gdm9pZCAwID8gREVGQVVMVF9PUFRJT05TIDogX2dlbmVyYXRvck9wdGlvbnMkZGVmMjtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVBvcHBlcihyZWZlcmVuY2UsIHBvcHBlciwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICAgIG9wdGlvbnMgPSBkZWZhdWx0T3B0aW9ucztcbiAgICB9XG5cbiAgICB2YXIgc3RhdGUgPSB7XG4gICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgb3JkZXJlZE1vZGlmaWVyczogW10sXG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMsIGRlZmF1bHRPcHRpb25zKSxcbiAgICAgIG1vZGlmaWVyc0RhdGE6IHt9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlOiByZWZlcmVuY2UsXG4gICAgICAgIHBvcHBlcjogcG9wcGVyXG4gICAgICB9LFxuICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICBzdHlsZXM6IHt9XG4gICAgfTtcbiAgICB2YXIgZWZmZWN0Q2xlYW51cEZucyA9IFtdO1xuICAgIHZhciBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHZhciBpbnN0YW5jZSA9IHtcbiAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgIHNldE9wdGlvbnM6IGZ1bmN0aW9uIHNldE9wdGlvbnMoc2V0T3B0aW9uc0FjdGlvbikge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzZXRPcHRpb25zQWN0aW9uID09PSAnZnVuY3Rpb24nID8gc2V0T3B0aW9uc0FjdGlvbihzdGF0ZS5vcHRpb25zKSA6IHNldE9wdGlvbnNBY3Rpb247XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgc3RhdGUub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBzdGF0ZS5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgc3RhdGUuc2Nyb2xsUGFyZW50cyA9IHtcbiAgICAgICAgICByZWZlcmVuY2U6IGlzRWxlbWVudChyZWZlcmVuY2UpID8gbGlzdFNjcm9sbFBhcmVudHMocmVmZXJlbmNlKSA6IHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCA/IGxpc3RTY3JvbGxQYXJlbnRzKHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkgOiBbXSxcbiAgICAgICAgICBwb3BwZXI6IGxpc3RTY3JvbGxQYXJlbnRzKHBvcHBlcilcbiAgICAgICAgfTsgLy8gT3JkZXJzIHRoZSBtb2RpZmllcnMgYmFzZWQgb24gdGhlaXIgZGVwZW5kZW5jaWVzIGFuZCBgcGhhc2VgXG4gICAgICAgIC8vIHByb3BlcnRpZXNcblxuICAgICAgICB2YXIgb3JkZXJlZE1vZGlmaWVycyA9IG9yZGVyTW9kaWZpZXJzKG1lcmdlQnlOYW1lKFtdLmNvbmNhdChkZWZhdWx0TW9kaWZpZXJzLCBzdGF0ZS5vcHRpb25zLm1vZGlmaWVycykpKTsgLy8gU3RyaXAgb3V0IGRpc2FibGVkIG1vZGlmaWVyc1xuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobSkge1xuICAgICAgICAgIHJldHVybiBtLmVuYWJsZWQ7XG4gICAgICAgIH0pOyAvLyBWYWxpZGF0ZSB0aGUgcHJvdmlkZWQgbW9kaWZpZXJzIHNvIHRoYXQgdGhlIGNvbnN1bWVyIHdpbGwgZ2V0IHdhcm5lZFxuICAgICAgICAvLyBpZiBvbmUgb2YgdGhlIG1vZGlmaWVycyBpcyBpbnZhbGlkIGZvciBhbnkgcmVhc29uXG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIHZhciBtb2RpZmllcnMgPSB1bmlxdWVCeShbXS5jb25jYXQob3JkZXJlZE1vZGlmaWVycywgc3RhdGUub3B0aW9ucy5tb2RpZmllcnMpLCBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBfcmVmLm5hbWU7XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB2YWxpZGF0ZU1vZGlmaWVycyhtb2RpZmllcnMpO1xuXG4gICAgICAgICAgaWYgKGdldEJhc2VQbGFjZW1lbnQoc3RhdGUub3B0aW9ucy5wbGFjZW1lbnQpID09PSBhdXRvKSB7XG4gICAgICAgICAgICB2YXIgZmxpcE1vZGlmaWVyID0gc3RhdGUub3JkZXJlZE1vZGlmaWVycy5maW5kKGZ1bmN0aW9uIChfcmVmMikge1xuICAgICAgICAgICAgICB2YXIgbmFtZSA9IF9yZWYyLm5hbWU7XG4gICAgICAgICAgICAgIHJldHVybiBuYW1lID09PSAnZmxpcCc7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCFmbGlwTW9kaWZpZXIpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihbJ1BvcHBlcjogXCJhdXRvXCIgcGxhY2VtZW50cyByZXF1aXJlIHRoZSBcImZsaXBcIiBtb2RpZmllciBiZScsICdwcmVzZW50IGFuZCBlbmFibGVkIHRvIHdvcmsuJ10uam9pbignICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX2dldENvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBvcHBlciksXG4gICAgICAgICAgICAgIG1hcmdpblRvcCA9IF9nZXRDb21wdXRlZFN0eWxlLm1hcmdpblRvcCxcbiAgICAgICAgICAgICAgbWFyZ2luUmlnaHQgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodCxcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tID0gX2dldENvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tLFxuICAgICAgICAgICAgICBtYXJnaW5MZWZ0ID0gX2dldENvbXB1dGVkU3R5bGUubWFyZ2luTGVmdDsgLy8gV2Ugbm8gbG9uZ2VyIHRha2UgaW50byBhY2NvdW50IGBtYXJnaW5zYCBvbiB0aGUgcG9wcGVyLCBhbmQgaXQgY2FuXG4gICAgICAgICAgLy8gY2F1c2UgYnVncyB3aXRoIHBvc2l0aW9uaW5nLCBzbyB3ZSdsbCB3YXJuIHRoZSBjb25zdW1lclxuXG5cbiAgICAgICAgICBpZiAoW21hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdF0uc29tZShmdW5jdGlvbiAobWFyZ2luKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChtYXJnaW4pO1xuICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oWydQb3BwZXI6IENTUyBcIm1hcmdpblwiIHN0eWxlcyBjYW5ub3QgYmUgdXNlZCB0byBhcHBseSBwYWRkaW5nJywgJ2JldHdlZW4gdGhlIHBvcHBlciBhbmQgaXRzIHJlZmVyZW5jZSBlbGVtZW50IG9yIGJvdW5kYXJ5LicsICdUbyByZXBsaWNhdGUgbWFyZ2luLCB1c2UgdGhlIGBvZmZzZXRgIG1vZGlmaWVyLCBhcyB3ZWxsIGFzJywgJ3RoZSBgcGFkZGluZ2Agb3B0aW9uIGluIHRoZSBgcHJldmVudE92ZXJmbG93YCBhbmQgYGZsaXBgJywgJ21vZGlmaWVycy4nXS5qb2luKCcgJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bk1vZGlmaWVyRWZmZWN0cygpO1xuICAgICAgICByZXR1cm4gaW5zdGFuY2UudXBkYXRlKCk7XG4gICAgICB9LFxuICAgICAgLy8gU3luYyB1cGRhdGUg4oCTIGl0IHdpbGwgYWx3YXlzIGJlIGV4ZWN1dGVkLCBldmVuIGlmIG5vdCBuZWNlc3NhcnkuIFRoaXNcbiAgICAgIC8vIGlzIHVzZWZ1bCBmb3IgbG93IGZyZXF1ZW5jeSB1cGRhdGVzIHdoZXJlIHN5bmMgYmVoYXZpb3Igc2ltcGxpZmllcyB0aGVcbiAgICAgIC8vIGxvZ2ljLlxuICAgICAgLy8gRm9yIGhpZ2ggZnJlcXVlbmN5IHVwZGF0ZXMgKGUuZy4gYHJlc2l6ZWAgYW5kIGBzY3JvbGxgIGV2ZW50cyksIGFsd2F5c1xuICAgICAgLy8gcHJlZmVyIHRoZSBhc3luYyBQb3BwZXIjdXBkYXRlIG1ldGhvZFxuICAgICAgZm9yY2VVcGRhdGU6IGZ1bmN0aW9uIGZvcmNlVXBkYXRlKCkge1xuICAgICAgICBpZiAoaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3N0YXRlJGVsZW1lbnRzID0gc3RhdGUuZWxlbWVudHMsXG4gICAgICAgICAgICByZWZlcmVuY2UgPSBfc3RhdGUkZWxlbWVudHMucmVmZXJlbmNlLFxuICAgICAgICAgICAgcG9wcGVyID0gX3N0YXRlJGVsZW1lbnRzLnBvcHBlcjsgLy8gRG9uJ3QgcHJvY2VlZCBpZiBgcmVmZXJlbmNlYCBvciBgcG9wcGVyYCBhcmUgbm90IHZhbGlkIGVsZW1lbnRzXG4gICAgICAgIC8vIGFueW1vcmVcblxuICAgICAgICBpZiAoIWFyZVZhbGlkRWxlbWVudHMocmVmZXJlbmNlLCBwb3BwZXIpKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihJTlZBTElEX0VMRU1FTlRfRVJST1IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBTdG9yZSB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXIgcmVjdHMgdG8gYmUgcmVhZCBieSBtb2RpZmllcnNcblxuXG4gICAgICAgIHN0YXRlLnJlY3RzID0ge1xuICAgICAgICAgIHJlZmVyZW5jZTogZ2V0Q29tcG9zaXRlUmVjdChyZWZlcmVuY2UsIGdldE9mZnNldFBhcmVudChwb3BwZXIpLCBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnKSxcbiAgICAgICAgICBwb3BwZXI6IGdldExheW91dFJlY3QocG9wcGVyKVxuICAgICAgICB9OyAvLyBNb2RpZmllcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byByZXNldCB0aGUgY3VycmVudCB1cGRhdGUgY3ljbGUuIFRoZVxuICAgICAgICAvLyBtb3N0IGNvbW1vbiB1c2UgY2FzZSBmb3IgdGhpcyBpcyB0aGUgYGZsaXBgIG1vZGlmaWVyIGNoYW5naW5nIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQsIHdoaWNoIHRoZW4gbmVlZHMgdG8gcmUtcnVuIGFsbCB0aGUgbW9kaWZpZXJzLCBiZWNhdXNlIHRoZVxuICAgICAgICAvLyBsb2dpYyB3YXMgcHJldmlvdXNseSByYW4gZm9yIHRoZSBwcmV2aW91cyBwbGFjZW1lbnQgYW5kIGlzIHRoZXJlZm9yZVxuICAgICAgICAvLyBzdGFsZS9pbmNvcnJlY3RcblxuICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5wbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDsgLy8gT24gZWFjaCB1cGRhdGUgY3ljbGUsIHRoZSBgbW9kaWZpZXJzRGF0YWAgcHJvcGVydHkgZm9yIGVhY2ggbW9kaWZpZXJcbiAgICAgICAgLy8gaXMgZmlsbGVkIHdpdGggdGhlIGluaXRpYWwgZGF0YSBzcGVjaWZpZWQgYnkgdGhlIG1vZGlmaWVyLiBUaGlzIG1lYW5zXG4gICAgICAgIC8vIGl0IGRvZXNuJ3QgcGVyc2lzdCBhbmQgaXMgZnJlc2ggb24gZWFjaCB1cGRhdGUuXG4gICAgICAgIC8vIFRvIGVuc3VyZSBwZXJzaXN0ZW50IGRhdGEsIHVzZSBgJHtuYW1lfSNwZXJzaXN0ZW50YFxuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGUubW9kaWZpZXJzRGF0YVttb2RpZmllci5uYW1lXSA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGlmaWVyLmRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9fZGVidWdfbG9vcHNfXyA9IDA7XG5cbiAgICAgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHN0YXRlLm9yZGVyZWRNb2RpZmllcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgX19kZWJ1Z19sb29wc19fICs9IDE7XG5cbiAgICAgICAgICAgIGlmIChfX2RlYnVnX2xvb3BzX18gPiAxMDApIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihJTkZJTklURV9MT09QX0VSUk9SKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHN0YXRlLnJlc2V0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICAgICAgaW5kZXggPSAtMTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBfc3RhdGUkb3JkZXJlZE1vZGlmaWUgPSBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzW2luZGV4XSxcbiAgICAgICAgICAgICAgZm4gPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUuZm4sXG4gICAgICAgICAgICAgIF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUub3B0aW9ucyxcbiAgICAgICAgICAgICAgX29wdGlvbnMgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUyID09PSB2b2lkIDAgPyB7fSA6IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIsXG4gICAgICAgICAgICAgIG5hbWUgPSBfc3RhdGUkb3JkZXJlZE1vZGlmaWUubmFtZTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHN0YXRlID0gZm4oe1xuICAgICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IF9vcHRpb25zLFxuICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2VcbiAgICAgICAgICAgIH0pIHx8IHN0YXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEFzeW5jIGFuZCBvcHRpbWlzdGljYWxseSBvcHRpbWl6ZWQgdXBkYXRlIOKAkyBpdCB3aWxsIG5vdCBiZSBleGVjdXRlZCBpZlxuICAgICAgLy8gbm90IG5lY2Vzc2FyeSAoZGVib3VuY2VkIHRvIHJ1biBhdCBtb3N0IG9uY2UtcGVyLXRpY2spXG4gICAgICB1cGRhdGU6IGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgaW5zdGFuY2UuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgICByZXNvbHZlKHN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIWFyZVZhbGlkRWxlbWVudHMocmVmZXJlbmNlLCBwb3BwZXIpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoSU5WQUxJRF9FTEVNRU5UX0VSUk9SKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cblxuICAgIGluc3RhbmNlLnNldE9wdGlvbnMob3B0aW9ucykudGhlbihmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgIGlmICghaXNEZXN0cm95ZWQgJiYgb3B0aW9ucy5vbkZpcnN0VXBkYXRlKSB7XG4gICAgICAgIG9wdGlvbnMub25GaXJzdFVwZGF0ZShzdGF0ZSk7XG4gICAgICB9XG4gICAgfSk7IC8vIE1vZGlmaWVycyBoYXZlIHRoZSBhYmlsaXR5IHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgYmVmb3JlIHRoZSBmaXJzdFxuICAgIC8vIHVwZGF0ZSBjeWNsZSBydW5zLiBUaGV5IHdpbGwgYmUgZXhlY3V0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHVwZGF0ZVxuICAgIC8vIGN5Y2xlLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGEgbW9kaWZpZXIgYWRkcyBzb21lIHBlcnNpc3RlbnQgZGF0YSB0aGF0XG4gICAgLy8gb3RoZXIgbW9kaWZpZXJzIG5lZWQgdG8gdXNlLCBidXQgdGhlIG1vZGlmaWVyIGlzIHJ1biBhZnRlciB0aGUgZGVwZW5kZW50XG4gICAgLy8gb25lLlxuXG4gICAgZnVuY3Rpb24gcnVuTW9kaWZpZXJFZmZlY3RzKCkge1xuICAgICAgc3RhdGUub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmMykge1xuICAgICAgICB2YXIgbmFtZSA9IF9yZWYzLm5hbWUsXG4gICAgICAgICAgICBfcmVmMyRvcHRpb25zID0gX3JlZjMub3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnMgPSBfcmVmMyRvcHRpb25zID09PSB2b2lkIDAgPyB7fSA6IF9yZWYzJG9wdGlvbnMsXG4gICAgICAgICAgICBlZmZlY3QgPSBfcmVmMy5lZmZlY3Q7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBlZmZlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgY2xlYW51cEZuID0gZWZmZWN0KHtcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB2YXIgbm9vcEZuID0gZnVuY3Rpb24gbm9vcEZuKCkge307XG5cbiAgICAgICAgICBlZmZlY3RDbGVhbnVwRm5zLnB1c2goY2xlYW51cEZuIHx8IG5vb3BGbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKSB7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgICAgfSk7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xufVxuZXhwb3J0IHZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKCk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgZGV0ZWN0T3ZlcmZsb3cgfTsiLCJpbXBvcnQgeyBwb3BwZXJHZW5lcmF0b3IsIGRldGVjdE92ZXJmbG93IH0gZnJvbSBcIi4vY3JlYXRlUG9wcGVyLmpzXCI7XG5pbXBvcnQgZXZlbnRMaXN0ZW5lcnMgZnJvbSBcIi4vbW9kaWZpZXJzL2V2ZW50TGlzdGVuZXJzLmpzXCI7XG5pbXBvcnQgcG9wcGVyT2Zmc2V0cyBmcm9tIFwiLi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IGNvbXB1dGVTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2NvbXB1dGVTdHlsZXMuanNcIjtcbmltcG9ydCBhcHBseVN0eWxlcyBmcm9tIFwiLi9tb2RpZmllcnMvYXBwbHlTdHlsZXMuanNcIjtcbmltcG9ydCBvZmZzZXQgZnJvbSBcIi4vbW9kaWZpZXJzL29mZnNldC5qc1wiO1xuaW1wb3J0IGZsaXAgZnJvbSBcIi4vbW9kaWZpZXJzL2ZsaXAuanNcIjtcbmltcG9ydCBwcmV2ZW50T3ZlcmZsb3cgZnJvbSBcIi4vbW9kaWZpZXJzL3ByZXZlbnRPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGFycm93IGZyb20gXCIuL21vZGlmaWVycy9hcnJvdy5qc1wiO1xuaW1wb3J0IGhpZGUgZnJvbSBcIi4vbW9kaWZpZXJzL2hpZGUuanNcIjtcbnZhciBkZWZhdWx0TW9kaWZpZXJzID0gW2V2ZW50TGlzdGVuZXJzLCBwb3BwZXJPZmZzZXRzLCBjb21wdXRlU3R5bGVzLCBhcHBseVN0eWxlcywgb2Zmc2V0LCBmbGlwLCBwcmV2ZW50T3ZlcmZsb3csIGFycm93LCBoaWRlXTtcbnZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKHtcbiAgZGVmYXVsdE1vZGlmaWVyczogZGVmYXVsdE1vZGlmaWVyc1xufSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyLCBwb3BwZXJHZW5lcmF0b3IsIGRlZmF1bHRNb2RpZmllcnMsIGRldGVjdE92ZXJmbG93IH07IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckxpdGUgfSBmcm9tIFwiLi9wb3BwZXItbGl0ZS5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGlmaWVycy9pbmRleC5qc1wiOyIsIi8qIGdsb2JhbCBNYXA6cmVhZG9ubHksIFNldDpyZWFkb25seSwgQXJyYXlCdWZmZXI6cmVhZG9ubHkgKi9cblxudmFyIGhhc0VsZW1lbnRUeXBlID0gdHlwZW9mIEVsZW1lbnQgIT09ICd1bmRlZmluZWQnO1xudmFyIGhhc01hcCA9IHR5cGVvZiBNYXAgPT09ICdmdW5jdGlvbic7XG52YXIgaGFzU2V0ID0gdHlwZW9mIFNldCA9PT0gJ2Z1bmN0aW9uJztcbnZhciBoYXNBcnJheUJ1ZmZlciA9IHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiAhIUFycmF5QnVmZmVyLmlzVmlldztcblxuLy8gTm90ZTogV2UgKipkb24ndCoqIG5lZWQgYGVudkhhc0JpZ0ludDY0QXJyYXlgIGluIGZkZSBlczYvaW5kZXguanNcblxuZnVuY3Rpb24gZXF1YWwoYSwgYikge1xuICAvLyBTVEFSVDogZmFzdC1kZWVwLWVxdWFsIGVzNi9pbmRleC5qcyAzLjEuMVxuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PSAnb2JqZWN0Jykge1xuICAgIGlmIChhLmNvbnN0cnVjdG9yICE9PSBiLmNvbnN0cnVjdG9yKSByZXR1cm4gZmFsc2U7XG5cbiAgICB2YXIgbGVuZ3RoLCBpLCBrZXlzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gU1RBUlQ6IE1vZGlmaWNhdGlvbnM6XG4gICAgLy8gMS4gRXh0cmEgYGhhczxUeXBlPiAmJmAgaGVscGVycyBpbiBpbml0aWFsIGNvbmRpdGlvbiBhbGxvdyBlczYgY29kZVxuICAgIC8vICAgIHRvIGNvLWV4aXN0IHdpdGggZXM1LlxuICAgIC8vIDIuIFJlcGxhY2UgYGZvciBvZmAgd2l0aCBlczUgY29tcGxpYW50IGl0ZXJhdGlvbiB1c2luZyBgZm9yYC5cbiAgICAvLyAgICBCYXNpY2FsbHksIHRha2U6XG4gICAgLy9cbiAgICAvLyAgICBgYGBqc1xuICAgIC8vICAgIGZvciAoaSBvZiBhLmVudHJpZXMoKSlcbiAgICAvLyAgICAgIGlmICghYi5oYXMoaVswXSkpIHJldHVybiBmYWxzZTtcbiAgICAvLyAgICBgYGBcbiAgICAvL1xuICAgIC8vICAgIC4uLiBhbmQgY29udmVydCB0bzpcbiAgICAvL1xuICAgIC8vICAgIGBgYGpzXG4gICAgLy8gICAgaXQgPSBhLmVudHJpZXMoKTtcbiAgICAvLyAgICB3aGlsZSAoIShpID0gaXQubmV4dCgpKS5kb25lKVxuICAgIC8vICAgICAgaWYgKCFiLmhhcyhpLnZhbHVlWzBdKSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vICAgIGBgYFxuICAgIC8vXG4gICAgLy8gICAgKipOb3RlKio6IGBpYCBhY2Nlc3Mgc3dpdGNoZXMgdG8gYGkudmFsdWVgLlxuICAgIHZhciBpdDtcbiAgICBpZiAoaGFzTWFwICYmIChhIGluc3RhbmNlb2YgTWFwKSAmJiAoYiBpbnN0YW5jZW9mIE1hcCkpIHtcbiAgICAgIGlmIChhLnNpemUgIT09IGIuc2l6ZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaXQgPSBhLmVudHJpZXMoKTtcbiAgICAgIHdoaWxlICghKGkgPSBpdC5uZXh0KCkpLmRvbmUpXG4gICAgICAgIGlmICghYi5oYXMoaS52YWx1ZVswXSkpIHJldHVybiBmYWxzZTtcbiAgICAgIGl0ID0gYS5lbnRyaWVzKCk7XG4gICAgICB3aGlsZSAoIShpID0gaXQubmV4dCgpKS5kb25lKVxuICAgICAgICBpZiAoIWVxdWFsKGkudmFsdWVbMV0sIGIuZ2V0KGkudmFsdWVbMF0pKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGhhc1NldCAmJiAoYSBpbnN0YW5jZW9mIFNldCkgJiYgKGIgaW5zdGFuY2VvZiBTZXQpKSB7XG4gICAgICBpZiAoYS5zaXplICE9PSBiLnNpemUpIHJldHVybiBmYWxzZTtcbiAgICAgIGl0ID0gYS5lbnRyaWVzKCk7XG4gICAgICB3aGlsZSAoIShpID0gaXQubmV4dCgpKS5kb25lKVxuICAgICAgICBpZiAoIWIuaGFzKGkudmFsdWVbMF0pKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gRU5EOiBNb2RpZmljYXRpb25zXG5cbiAgICBpZiAoaGFzQXJyYXlCdWZmZXIgJiYgQXJyYXlCdWZmZXIuaXNWaWV3KGEpICYmIEFycmF5QnVmZmVyLmlzVmlldyhiKSkge1xuICAgICAgbGVuZ3RoID0gYS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspXG4gICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoYS5jb25zdHJ1Y3RvciA9PT0gUmVnRXhwKSByZXR1cm4gYS5zb3VyY2UgPT09IGIuc291cmNlICYmIGEuZmxhZ3MgPT09IGIuZmxhZ3M7XG4gICAgaWYgKGEudmFsdWVPZiAhPT0gT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mKSByZXR1cm4gYS52YWx1ZU9mKCkgPT09IGIudmFsdWVPZigpO1xuICAgIGlmIChhLnRvU3RyaW5nICE9PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKSByZXR1cm4gYS50b1N0cmluZygpID09PSBiLnRvU3RyaW5nKCk7XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7XG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspXG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIEVORDogZmFzdC1kZWVwLWVxdWFsXG5cbiAgICAvLyBTVEFSVDogcmVhY3QtZmFzdC1jb21wYXJlXG4gICAgLy8gY3VzdG9tIGhhbmRsaW5nIGZvciBET00gZWxlbWVudHNcbiAgICBpZiAoaGFzRWxlbWVudFR5cGUgJiYgYSBpbnN0YW5jZW9mIEVsZW1lbnQpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIGN1c3RvbSBoYW5kbGluZyBmb3IgUmVhY3QvUHJlYWN0XG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICBpZiAoKGtleXNbaV0gPT09ICdfb3duZXInIHx8IGtleXNbaV0gPT09ICdfX3YnIHx8IGtleXNbaV0gPT09ICdfX28nKSAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIC8vIFJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFJlYWN0IGVsZW1lbnRzJyBfb3duZXJcbiAgICAgICAgLy8gUHJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFByZWFjdCBlbGVtZW50cycgX192IGFuZCBfX29cbiAgICAgICAgLy8gICAgX192ID0gJF9vcmlnaW5hbCAvICRfdm5vZGVcbiAgICAgICAgLy8gICAgX19vID0gJF9vd25lclxuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNvbnRhaW4gY2lyY3VsYXIgcmVmZXJlbmNlcyBhbmQgYXJlIG5vdCBuZWVkZWQgd2hlblxuICAgICAgICAvLyBjb21wYXJpbmcgdGhlIGFjdHVhbCBlbGVtZW50cyAoYW5kIG5vdCB0aGVpciBvd25lcnMpXG4gICAgICAgIC8vIC4kJHR5cGVvZiBhbmQgLl9zdG9yZSBvbiBqdXN0IHJlYXNvbmFibGUgbWFya2VycyBvZiBlbGVtZW50c1xuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBhbGwgb3RoZXIgcHJvcGVydGllcyBzaG91bGQgYmUgdHJhdmVyc2VkIGFzIHVzdWFsXG4gICAgICBpZiAoIWVxdWFsKGFba2V5c1tpXV0sIGJba2V5c1tpXV0pKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIEVORDogcmVhY3QtZmFzdC1jb21wYXJlXG5cbiAgICAvLyBTVEFSVDogZmFzdC1kZWVwLWVxdWFsXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGlzRXF1YWwoYSwgYikge1xuICB0cnkge1xuICAgIHJldHVybiBlcXVhbChhLCBiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoKChlcnJvci5tZXNzYWdlIHx8ICcnKS5tYXRjaCgvc3RhY2t8cmVjdXJzaW9uL2kpKSkge1xuICAgICAgLy8gd2FybiBvbiBjaXJjdWxhciByZWZlcmVuY2VzLCBkb24ndCBjcmFzaFxuICAgICAgLy8gYnJvd3NlcnMgZ2l2ZSB0aGlzIGRpZmZlcmVudCBlcnJvcnMgbmFtZSBhbmQgbWVzc2FnZXM6XG4gICAgICAvLyBjaHJvbWUvc2FmYXJpOiBcIlJhbmdlRXJyb3JcIiwgXCJNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZFwiXG4gICAgICAvLyBmaXJlZm94OiBcIkludGVybmFsRXJyb3JcIiwgdG9vIG11Y2ggcmVjdXJzaW9uXCJcbiAgICAgIC8vIGVkZ2U6IFwiRXJyb3JcIiwgXCJPdXQgb2Ygc3RhY2sgc3BhY2VcIlxuICAgICAgY29uc29sZS53YXJuKCdyZWFjdC1mYXN0LWNvbXBhcmUgY2Fubm90IGhhbmRsZSBjaXJjdWxhciByZWZzJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIHNvbWUgb3RoZXIgZXJyb3IuIHdlIHNob3VsZCBkZWZpbml0ZWx5IGtub3cgYWJvdXQgdGhlc2VcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVBvcHBlciBhcyBkZWZhdWx0Q3JlYXRlUG9wcGVyIH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAncmVhY3QtZmFzdC1jb21wYXJlJztcbmltcG9ydCB7IGZyb21FbnRyaWVzLCB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnLi91dGlscyc7XG52YXIgRU1QVFlfTU9ESUZJRVJTID0gW107XG5leHBvcnQgdmFyIHVzZVBvcHBlciA9IGZ1bmN0aW9uIHVzZVBvcHBlcihyZWZlcmVuY2VFbGVtZW50LCBwb3BwZXJFbGVtZW50LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICB2YXIgcHJldk9wdGlvbnMgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIHZhciBvcHRpb25zV2l0aERlZmF1bHRzID0ge1xuICAgIG9uRmlyc3RVcGRhdGU6IG9wdGlvbnMub25GaXJzdFVwZGF0ZSxcbiAgICBwbGFjZW1lbnQ6IG9wdGlvbnMucGxhY2VtZW50IHx8ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5OiBvcHRpb25zLnN0cmF0ZWd5IHx8ICdhYnNvbHV0ZScsXG4gICAgbW9kaWZpZXJzOiBvcHRpb25zLm1vZGlmaWVycyB8fCBFTVBUWV9NT0RJRklFUlNcbiAgfTtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIHN0eWxlczoge1xuICAgICAgcG9wcGVyOiB7XG4gICAgICAgIHBvc2l0aW9uOiBvcHRpb25zV2l0aERlZmF1bHRzLnN0cmF0ZWd5LFxuICAgICAgICBsZWZ0OiAnMCcsXG4gICAgICAgIHRvcDogJzAnXG4gICAgICB9LFxuICAgICAgYXJyb3c6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbiAgICAgIH1cbiAgICB9LFxuICAgIGF0dHJpYnV0ZXM6IHt9XG4gIH0pLFxuICAgICAgc3RhdGUgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRTdGF0ZSA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB2YXIgdXBkYXRlU3RhdGVNb2RpZmllciA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAndXBkYXRlU3RhdGUnLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHBoYXNlOiAnd3JpdGUnLFxuICAgICAgZm46IGZ1bmN0aW9uIGZuKF9yZWYpIHtcbiAgICAgICAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZTtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gT2JqZWN0LmtleXMoc3RhdGUuZWxlbWVudHMpO1xuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgc3R5bGVzOiBmcm9tRW50cmllcyhlbGVtZW50cy5tYXAoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbZWxlbWVudCwgc3RhdGUuc3R5bGVzW2VsZW1lbnRdIHx8IHt9XTtcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgYXR0cmlidXRlczogZnJvbUVudHJpZXMoZWxlbWVudHMubWFwKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW2VsZW1lbnQsIHN0YXRlLmF0dHJpYnV0ZXNbZWxlbWVudF1dO1xuICAgICAgICAgIH0pKVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICByZXF1aXJlczogWydjb21wdXRlU3R5bGVzJ11cbiAgICB9O1xuICB9LCBbXSk7XG4gIHZhciBwb3BwZXJPcHRpb25zID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG5ld09wdGlvbnMgPSB7XG4gICAgICBvbkZpcnN0VXBkYXRlOiBvcHRpb25zV2l0aERlZmF1bHRzLm9uRmlyc3RVcGRhdGUsXG4gICAgICBwbGFjZW1lbnQ6IG9wdGlvbnNXaXRoRGVmYXVsdHMucGxhY2VtZW50LFxuICAgICAgc3RyYXRlZ3k6IG9wdGlvbnNXaXRoRGVmYXVsdHMuc3RyYXRlZ3ksXG4gICAgICBtb2RpZmllcnM6IFtdLmNvbmNhdChvcHRpb25zV2l0aERlZmF1bHRzLm1vZGlmaWVycywgW3VwZGF0ZVN0YXRlTW9kaWZpZXIsIHtcbiAgICAgICAgbmFtZTogJ2FwcGx5U3R5bGVzJyxcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICAgIH1dKVxuICAgIH07XG5cbiAgICBpZiAoaXNFcXVhbChwcmV2T3B0aW9ucy5jdXJyZW50LCBuZXdPcHRpb25zKSkge1xuICAgICAgcmV0dXJuIHByZXZPcHRpb25zLmN1cnJlbnQgfHwgbmV3T3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgcHJldk9wdGlvbnMuY3VycmVudCA9IG5ld09wdGlvbnM7XG4gICAgICByZXR1cm4gbmV3T3B0aW9ucztcbiAgICB9XG4gIH0sIFtvcHRpb25zV2l0aERlZmF1bHRzLm9uRmlyc3RVcGRhdGUsIG9wdGlvbnNXaXRoRGVmYXVsdHMucGxhY2VtZW50LCBvcHRpb25zV2l0aERlZmF1bHRzLnN0cmF0ZWd5LCBvcHRpb25zV2l0aERlZmF1bHRzLm1vZGlmaWVycywgdXBkYXRlU3RhdGVNb2RpZmllcl0pO1xuICB2YXIgcG9wcGVySW5zdGFuY2VSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgIHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQuc2V0T3B0aW9ucyhwb3BwZXJPcHRpb25zKTtcbiAgICB9XG4gIH0sIFtwb3BwZXJPcHRpb25zXSk7XG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChyZWZlcmVuY2VFbGVtZW50ID09IG51bGwgfHwgcG9wcGVyRWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGNyZWF0ZVBvcHBlciA9IG9wdGlvbnMuY3JlYXRlUG9wcGVyIHx8IGRlZmF1bHRDcmVhdGVQb3BwZXI7XG4gICAgdmFyIHBvcHBlckluc3RhbmNlID0gY3JlYXRlUG9wcGVyKHJlZmVyZW5jZUVsZW1lbnQsIHBvcHBlckVsZW1lbnQsIHBvcHBlck9wdGlvbnMpO1xuICAgIHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQgPSBwb3BwZXJJbnN0YW5jZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcG9wcGVySW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfTtcbiAgfSwgW3JlZmVyZW5jZUVsZW1lbnQsIHBvcHBlckVsZW1lbnQsIG9wdGlvbnMuY3JlYXRlUG9wcGVyXSk7XG4gIHJldHVybiB7XG4gICAgc3RhdGU6IHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQgPyBwb3BwZXJJbnN0YW5jZVJlZi5jdXJyZW50LnN0YXRlIDogbnVsbCxcbiAgICBzdHlsZXM6IHN0YXRlLnN0eWxlcyxcbiAgICBhdHRyaWJ1dGVzOiBzdGF0ZS5hdHRyaWJ1dGVzLFxuICAgIHVwZGF0ZTogcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA/IHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQudXBkYXRlIDogbnVsbCxcbiAgICBmb3JjZVVwZGF0ZTogcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA/IHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQuZm9yY2VVcGRhdGUgOiBudWxsXG4gIH07XG59OyIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJpZ2ludDogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIiwiLyohXG4qIHRhYmJhYmxlIDUuMi4xXG4qIEBsaWNlbnNlIE1JVCwgaHR0cHM6Ly9naXRodWIuY29tL2ZvY3VzLXRyYXAvdGFiYmFibGUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuKi9cbnZhciBjYW5kaWRhdGVTZWxlY3RvcnMgPSBbJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYScsICdhW2hyZWZdJywgJ2J1dHRvbicsICdbdGFiaW5kZXhdJywgJ2F1ZGlvW2NvbnRyb2xzXScsICd2aWRlb1tjb250cm9sc10nLCAnW2NvbnRlbnRlZGl0YWJsZV06bm90KFtjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiXSknLCAnZGV0YWlscz5zdW1tYXJ5OmZpcnN0LW9mLXR5cGUnLCAnZGV0YWlscyddO1xudmFyIGNhbmRpZGF0ZVNlbGVjdG9yID0gLyogI19fUFVSRV9fICovY2FuZGlkYXRlU2VsZWN0b3JzLmpvaW4oJywnKTtcbnZhciBtYXRjaGVzID0gdHlwZW9mIEVsZW1lbnQgPT09ICd1bmRlZmluZWQnID8gZnVuY3Rpb24gKCkge30gOiBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzIHx8IEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvcjtcblxudmFyIGdldENhbmRpZGF0ZXMgPSBmdW5jdGlvbiBnZXRDYW5kaWRhdGVzKGVsLCBpbmNsdWRlQ29udGFpbmVyLCBmaWx0ZXIpIHtcbiAgdmFyIGNhbmRpZGF0ZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoZWwucXVlcnlTZWxlY3RvckFsbChjYW5kaWRhdGVTZWxlY3RvcikpO1xuXG4gIGlmIChpbmNsdWRlQ29udGFpbmVyICYmIG1hdGNoZXMuY2FsbChlbCwgY2FuZGlkYXRlU2VsZWN0b3IpKSB7XG4gICAgY2FuZGlkYXRlcy51bnNoaWZ0KGVsKTtcbiAgfVxuXG4gIGNhbmRpZGF0ZXMgPSBjYW5kaWRhdGVzLmZpbHRlcihmaWx0ZXIpO1xuICByZXR1cm4gY2FuZGlkYXRlcztcbn07XG5cbnZhciBpc0NvbnRlbnRFZGl0YWJsZSA9IGZ1bmN0aW9uIGlzQ29udGVudEVkaXRhYmxlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuY29udGVudEVkaXRhYmxlID09PSAndHJ1ZSc7XG59O1xuXG52YXIgZ2V0VGFiaW5kZXggPSBmdW5jdGlvbiBnZXRUYWJpbmRleChub2RlKSB7XG4gIHZhciB0YWJpbmRleEF0dHIgPSBwYXJzZUludChub2RlLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSwgMTApO1xuXG4gIGlmICghaXNOYU4odGFiaW5kZXhBdHRyKSkge1xuICAgIHJldHVybiB0YWJpbmRleEF0dHI7XG4gIH0gLy8gQnJvd3NlcnMgZG8gbm90IHJldHVybiBgdGFiSW5kZXhgIGNvcnJlY3RseSBmb3IgY29udGVudEVkaXRhYmxlIG5vZGVzO1xuICAvLyBzbyBpZiB0aGV5IGRvbid0IGhhdmUgYSB0YWJpbmRleCBhdHRyaWJ1dGUgc3BlY2lmaWNhbGx5IHNldCwgYXNzdW1lIGl0J3MgMC5cblxuXG4gIGlmIChpc0NvbnRlbnRFZGl0YWJsZShub2RlKSkge1xuICAgIHJldHVybiAwO1xuICB9IC8vIGluIENocm9tZSwgPGRldGFpbHMvPiwgPGF1ZGlvIGNvbnRyb2xzLz4gYW5kIDx2aWRlbyBjb250cm9scy8+IGVsZW1lbnRzIGdldCBhIGRlZmF1bHRcbiAgLy8gIGB0YWJJbmRleGAgb2YgLTEgd2hlbiB0aGUgJ3RhYmluZGV4JyBhdHRyaWJ1dGUgaXNuJ3Qgc3BlY2lmaWVkIGluIHRoZSBET00sXG4gIC8vICB5ZXQgdGhleSBhcmUgc3RpbGwgcGFydCBvZiB0aGUgcmVndWxhciB0YWIgb3JkZXI7IGluIEZGLCB0aGV5IGdldCBhIGRlZmF1bHRcbiAgLy8gIGB0YWJJbmRleGAgb2YgMDsgc2luY2UgQ2hyb21lIHN0aWxsIHB1dHMgdGhvc2UgZWxlbWVudHMgaW4gdGhlIHJlZ3VsYXIgdGFiXG4gIC8vICBvcmRlciwgY29uc2lkZXIgdGhlaXIgdGFiIGluZGV4IHRvIGJlIDAuXG5cblxuICBpZiAoKG5vZGUubm9kZU5hbWUgPT09ICdBVURJTycgfHwgbm9kZS5ub2RlTmFtZSA9PT0gJ1ZJREVPJyB8fCBub2RlLm5vZGVOYW1lID09PSAnREVUQUlMUycpICYmIG5vZGUuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpID09PSBudWxsKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gbm9kZS50YWJJbmRleDtcbn07XG5cbnZhciBzb3J0T3JkZXJlZFRhYmJhYmxlcyA9IGZ1bmN0aW9uIHNvcnRPcmRlcmVkVGFiYmFibGVzKGEsIGIpIHtcbiAgcmV0dXJuIGEudGFiSW5kZXggPT09IGIudGFiSW5kZXggPyBhLmRvY3VtZW50T3JkZXIgLSBiLmRvY3VtZW50T3JkZXIgOiBhLnRhYkluZGV4IC0gYi50YWJJbmRleDtcbn07XG5cbnZhciBpc0lucHV0ID0gZnVuY3Rpb24gaXNJbnB1dChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdJTlBVVCc7XG59O1xuXG52YXIgaXNIaWRkZW5JbnB1dCA9IGZ1bmN0aW9uIGlzSGlkZGVuSW5wdXQobm9kZSkge1xuICByZXR1cm4gaXNJbnB1dChub2RlKSAmJiBub2RlLnR5cGUgPT09ICdoaWRkZW4nO1xufTtcblxudmFyIGlzRGV0YWlsc1dpdGhTdW1tYXJ5ID0gZnVuY3Rpb24gaXNEZXRhaWxzV2l0aFN1bW1hcnkobm9kZSkge1xuICB2YXIgciA9IG5vZGUudGFnTmFtZSA9PT0gJ0RFVEFJTFMnICYmIEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShub2RlLmNoaWxkcmVuKS5zb21lKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZC50YWdOYW1lID09PSAnU1VNTUFSWSc7XG4gIH0pO1xuICByZXR1cm4gcjtcbn07XG5cbnZhciBnZXRDaGVja2VkUmFkaW8gPSBmdW5jdGlvbiBnZXRDaGVja2VkUmFkaW8obm9kZXMsIGZvcm0pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChub2Rlc1tpXS5jaGVja2VkICYmIG5vZGVzW2ldLmZvcm0gPT09IGZvcm0pIHtcbiAgICAgIHJldHVybiBub2Rlc1tpXTtcbiAgICB9XG4gIH1cbn07XG5cbnZhciBpc1RhYmJhYmxlUmFkaW8gPSBmdW5jdGlvbiBpc1RhYmJhYmxlUmFkaW8obm9kZSkge1xuICBpZiAoIW5vZGUubmFtZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIHJhZGlvU2NvcGUgPSBub2RlLmZvcm0gfHwgbm9kZS5vd25lckRvY3VtZW50O1xuXG4gIHZhciBxdWVyeVJhZGlvcyA9IGZ1bmN0aW9uIHF1ZXJ5UmFkaW9zKG5hbWUpIHtcbiAgICByZXR1cm4gcmFkaW9TY29wZS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIicgKyBuYW1lICsgJ1wiXScpO1xuICB9O1xuXG4gIHZhciByYWRpb1NldDtcblxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5DU1MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuQ1NTLmVzY2FwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJhZGlvU2V0ID0gcXVlcnlSYWRpb3Mod2luZG93LkNTUy5lc2NhcGUobm9kZS5uYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIHJhZGlvU2V0ID0gcXVlcnlSYWRpb3Mobm9kZS5uYW1lKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKCdMb29rcyBsaWtlIHlvdSBoYXZlIGEgcmFkaW8gYnV0dG9uIHdpdGggYSBuYW1lIGF0dHJpYnV0ZSBjb250YWluaW5nIGludmFsaWQgQ1NTIHNlbGVjdG9yIGNoYXJhY3RlcnMgYW5kIG5lZWQgdGhlIENTUy5lc2NhcGUgcG9seWZpbGw6ICVzJywgZXJyLm1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjaGVja2VkID0gZ2V0Q2hlY2tlZFJhZGlvKHJhZGlvU2V0LCBub2RlLmZvcm0pO1xuICByZXR1cm4gIWNoZWNrZWQgfHwgY2hlY2tlZCA9PT0gbm9kZTtcbn07XG5cbnZhciBpc1JhZGlvID0gZnVuY3Rpb24gaXNSYWRpbyhub2RlKSB7XG4gIHJldHVybiBpc0lucHV0KG5vZGUpICYmIG5vZGUudHlwZSA9PT0gJ3JhZGlvJztcbn07XG5cbnZhciBpc05vblRhYmJhYmxlUmFkaW8gPSBmdW5jdGlvbiBpc05vblRhYmJhYmxlUmFkaW8obm9kZSkge1xuICByZXR1cm4gaXNSYWRpbyhub2RlKSAmJiAhaXNUYWJiYWJsZVJhZGlvKG5vZGUpO1xufTtcblxudmFyIGlzSGlkZGVuID0gZnVuY3Rpb24gaXNIaWRkZW4obm9kZSwgZGlzcGxheUNoZWNrKSB7XG4gIGlmIChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIgaXNEaXJlY3RTdW1tYXJ5ID0gbWF0Y2hlcy5jYWxsKG5vZGUsICdkZXRhaWxzPnN1bW1hcnk6Zmlyc3Qtb2YtdHlwZScpO1xuICB2YXIgbm9kZVVuZGVyRGV0YWlscyA9IGlzRGlyZWN0U3VtbWFyeSA/IG5vZGUucGFyZW50RWxlbWVudCA6IG5vZGU7XG5cbiAgaWYgKG1hdGNoZXMuY2FsbChub2RlVW5kZXJEZXRhaWxzLCAnZGV0YWlsczpub3QoW29wZW5dKSAqJykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZGlzcGxheUNoZWNrIHx8IGRpc3BsYXlDaGVjayA9PT0gJ2Z1bGwnKSB7XG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGlzcGxheUNoZWNrID09PSAnbm9uLXplcm8tYXJlYScpIHtcbiAgICB2YXIgX25vZGUkZ2V0Qm91bmRpbmdDbGllID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgd2lkdGggPSBfbm9kZSRnZXRCb3VuZGluZ0NsaWUud2lkdGgsXG4gICAgICAgIGhlaWdodCA9IF9ub2RlJGdldEJvdW5kaW5nQ2xpZS5oZWlnaHQ7XG5cbiAgICByZXR1cm4gd2lkdGggPT09IDAgJiYgaGVpZ2h0ID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTsgLy8gZm9ybSBmaWVsZHMgKG5lc3RlZCkgaW5zaWRlIGEgZGlzYWJsZWQgZmllbGRzZXQgYXJlIG5vdCBmb2N1c2FibGUvdGFiYmFibGVcbi8vICB1bmxlc3MgdGhleSBhcmUgaW4gdGhlIF9maXJzdF8gPGxlZ2VuZD4gZWxlbWVudCBvZiB0aGUgdG9wLW1vc3QgZGlzYWJsZWRcbi8vICBmaWVsZHNldFxuXG5cbnZhciBpc0Rpc2FibGVkRnJvbUZpZWxkc2V0ID0gZnVuY3Rpb24gaXNEaXNhYmxlZEZyb21GaWVsZHNldChub2RlKSB7XG4gIGlmIChpc0lucHV0KG5vZGUpIHx8IG5vZGUudGFnTmFtZSA9PT0gJ1NFTEVDVCcgfHwgbm9kZS50YWdOYW1lID09PSAnVEVYVEFSRUEnIHx8IG5vZGUudGFnTmFtZSA9PT0gJ0JVVFRPTicpIHtcbiAgICB2YXIgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcblxuICAgIHdoaWxlIChwYXJlbnROb2RlKSB7XG4gICAgICBpZiAocGFyZW50Tm9kZS50YWdOYW1lID09PSAnRklFTERTRVQnICYmIHBhcmVudE5vZGUuZGlzYWJsZWQpIHtcbiAgICAgICAgLy8gbG9vayBmb3IgdGhlIGZpcnN0IDxsZWdlbmQ+IGFzIGFuIGltbWVkaWF0ZSBjaGlsZCBvZiB0aGUgZGlzYWJsZWRcbiAgICAgICAgLy8gIDxmaWVsZHNldD46IGlmIHRoZSBub2RlIGlzIGluIHRoYXQgbGVnZW5kLCBpdCdsbCBiZSBlbmFibGVkIGV2ZW5cbiAgICAgICAgLy8gIHRob3VnaCB0aGUgZmllbGRzZXQgaXMgZGlzYWJsZWQ7IG90aGVyd2lzZSwgdGhlIG5vZGUgaXMgaW4gYVxuICAgICAgICAvLyAgc2Vjb25kYXJ5L3N1YnNlcXVlbnQgbGVnZW5kLCBvciBzb21ld2hlcmUgZWxzZSB3aXRoaW4gdGhlIGZpZWxkc2V0XG4gICAgICAgIC8vICAoaG93ZXZlciBkZWVwIG5lc3RlZCkgYW5kIGl0J2xsIGJlIGRpc2FibGVkXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjaGlsZCA9IHBhcmVudE5vZGUuY2hpbGRyZW4uaXRlbShpKTtcblxuICAgICAgICAgIGlmIChjaGlsZC50YWdOYW1lID09PSAnTEVHRU5EJykge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmNvbnRhaW5zKG5vZGUpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0gLy8gdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGZpcnN0IGxlZ2VuZCAoaW4gZG9jIG9yZGVyKSwgc28gbm8gbWF0dGVyXG4gICAgICAgICAgICAvLyAgd2hlcmUgaXQgaXMgbm93LCBpdCdsbCBiZSBkaXNhYmxlZFxuXG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSAvLyB0aGUgbm9kZSBpc24ndCBpbiBhIGxlZ2VuZCwgc28gbm8gbWF0dGVyIHdoZXJlIGl0IGlzIG5vdywgaXQnbGwgYmUgZGlzYWJsZWRcblxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnRFbGVtZW50O1xuICAgIH1cbiAgfSAvLyBlbHNlLCBub2RlJ3MgdGFiYmFibGUvZm9jdXNhYmxlIHN0YXRlIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgYSBmaWVsZHNldCdzXG4gIC8vICBlbmFibGVkL2Rpc2FibGVkIHN0YXRlXG5cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG52YXIgaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZSA9IGZ1bmN0aW9uIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUob3B0aW9ucywgbm9kZSkge1xuICBpZiAobm9kZS5kaXNhYmxlZCB8fCBpc0hpZGRlbklucHV0KG5vZGUpIHx8IGlzSGlkZGVuKG5vZGUsIG9wdGlvbnMuZGlzcGxheUNoZWNrKSB8fCAvLyBGb3IgYSBkZXRhaWxzIGVsZW1lbnQgd2l0aCBhIHN1bW1hcnksIHRoZSBzdW1tYXJ5IGVsZW1lbnQgZ2V0cyB0aGUgZm9jdXNcbiAgaXNEZXRhaWxzV2l0aFN1bW1hcnkobm9kZSkgfHwgaXNEaXNhYmxlZEZyb21GaWVsZHNldChub2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxudmFyIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZSA9IGZ1bmN0aW9uIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZShvcHRpb25zLCBub2RlKSB7XG4gIGlmICghaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZShvcHRpb25zLCBub2RlKSB8fCBpc05vblRhYmJhYmxlUmFkaW8obm9kZSkgfHwgZ2V0VGFiaW5kZXgobm9kZSkgPCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG52YXIgdGFiYmFibGUgPSBmdW5jdGlvbiB0YWJiYWJsZShlbCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIHJlZ3VsYXJUYWJiYWJsZXMgPSBbXTtcbiAgdmFyIG9yZGVyZWRUYWJiYWJsZXMgPSBbXTtcbiAgdmFyIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzKGVsLCBvcHRpb25zLmluY2x1ZGVDb250YWluZXIsIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZS5iaW5kKG51bGwsIG9wdGlvbnMpKTtcbiAgY2FuZGlkYXRlcy5mb3JFYWNoKGZ1bmN0aW9uIChjYW5kaWRhdGUsIGkpIHtcbiAgICB2YXIgY2FuZGlkYXRlVGFiaW5kZXggPSBnZXRUYWJpbmRleChjYW5kaWRhdGUpO1xuXG4gICAgaWYgKGNhbmRpZGF0ZVRhYmluZGV4ID09PSAwKSB7XG4gICAgICByZWd1bGFyVGFiYmFibGVzLnB1c2goY2FuZGlkYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3JkZXJlZFRhYmJhYmxlcy5wdXNoKHtcbiAgICAgICAgZG9jdW1lbnRPcmRlcjogaSxcbiAgICAgICAgdGFiSW5kZXg6IGNhbmRpZGF0ZVRhYmluZGV4LFxuICAgICAgICBub2RlOiBjYW5kaWRhdGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIHZhciB0YWJiYWJsZU5vZGVzID0gb3JkZXJlZFRhYmJhYmxlcy5zb3J0KHNvcnRPcmRlcmVkVGFiYmFibGVzKS5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICByZXR1cm4gYS5ub2RlO1xuICB9KS5jb25jYXQocmVndWxhclRhYmJhYmxlcyk7XG4gIHJldHVybiB0YWJiYWJsZU5vZGVzO1xufTtcblxudmFyIGZvY3VzYWJsZSA9IGZ1bmN0aW9uIGZvY3VzYWJsZShlbCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzKGVsLCBvcHRpb25zLmluY2x1ZGVDb250YWluZXIsIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUuYmluZChudWxsLCBvcHRpb25zKSk7XG4gIHJldHVybiBjYW5kaWRhdGVzO1xufTtcblxudmFyIGlzVGFiYmFibGUgPSBmdW5jdGlvbiBpc1RhYmJhYmxlKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgaWYgKCFub2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBub2RlIHByb3ZpZGVkJyk7XG4gIH1cblxuICBpZiAobWF0Y2hlcy5jYWxsKG5vZGUsIGNhbmRpZGF0ZVNlbGVjdG9yKSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaXNOb2RlTWF0Y2hpbmdTZWxlY3RvclRhYmJhYmxlKG9wdGlvbnMsIG5vZGUpO1xufTtcblxudmFyIGZvY3VzYWJsZUNhbmRpZGF0ZVNlbGVjdG9yID0gLyogI19fUFVSRV9fICovY2FuZGlkYXRlU2VsZWN0b3JzLmNvbmNhdCgnaWZyYW1lJykuam9pbignLCcpO1xuXG52YXIgaXNGb2N1c2FibGUgPSBmdW5jdGlvbiBpc0ZvY3VzYWJsZShub2RlLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIGlmICghbm9kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gbm9kZSBwcm92aWRlZCcpO1xuICB9XG5cbiAgaWYgKG1hdGNoZXMuY2FsbChub2RlLCBmb2N1c2FibGVDYW5kaWRhdGVTZWxlY3RvcikgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUob3B0aW9ucywgbm9kZSk7XG59O1xuXG5leHBvcnQgeyBmb2N1c2FibGUsIGlzRm9jdXNhYmxlLCBpc1RhYmJhYmxlLCB0YWJiYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguZXNtLmpzLm1hcFxuIiwiLyohXG4qIGZvY3VzLXRyYXAgNi43LjJcbiogQGxpY2Vuc2UgTUlULCBodHRwczovL2dpdGh1Yi5jb20vZm9jdXMtdHJhcC9mb2N1cy10cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiovXG5pbXBvcnQgeyB0YWJiYWJsZSwgaXNGb2N1c2FibGUsIGlzVGFiYmFibGUgfSBmcm9tICd0YWJiYWJsZSc7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkge1xuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtcbiAgICBlbnVtZXJhYmxlT25seSAmJiAoc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlO1xuICAgIH0pKSwga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpO1xuICB9XG5cbiAgcmV0dXJuIGtleXM7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQyKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBudWxsICE9IGFyZ3VtZW50c1tpXSA/IGFyZ3VtZW50c1tpXSA6IHt9O1xuICAgIGkgJSAyID8gb3duS2V5cyhPYmplY3Qoc291cmNlKSwgITApLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSkgOiBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbnZhciBhY3RpdmVGb2N1c1RyYXBzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdHJhcFF1ZXVlID0gW107XG4gIHJldHVybiB7XG4gICAgYWN0aXZhdGVUcmFwOiBmdW5jdGlvbiBhY3RpdmF0ZVRyYXAodHJhcCkge1xuICAgICAgaWYgKHRyYXBRdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciBhY3RpdmVUcmFwID0gdHJhcFF1ZXVlW3RyYXBRdWV1ZS5sZW5ndGggLSAxXTtcblxuICAgICAgICBpZiAoYWN0aXZlVHJhcCAhPT0gdHJhcCkge1xuICAgICAgICAgIGFjdGl2ZVRyYXAucGF1c2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdHJhcEluZGV4ID0gdHJhcFF1ZXVlLmluZGV4T2YodHJhcCk7XG5cbiAgICAgIGlmICh0cmFwSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHRyYXBRdWV1ZS5wdXNoKHRyYXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbW92ZSB0aGlzIGV4aXN0aW5nIHRyYXAgdG8gdGhlIGZyb250IG9mIHRoZSBxdWV1ZVxuICAgICAgICB0cmFwUXVldWUuc3BsaWNlKHRyYXBJbmRleCwgMSk7XG4gICAgICAgIHRyYXBRdWV1ZS5wdXNoKHRyYXApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZGVhY3RpdmF0ZVRyYXA6IGZ1bmN0aW9uIGRlYWN0aXZhdGVUcmFwKHRyYXApIHtcbiAgICAgIHZhciB0cmFwSW5kZXggPSB0cmFwUXVldWUuaW5kZXhPZih0cmFwKTtcblxuICAgICAgaWYgKHRyYXBJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdHJhcFF1ZXVlLnNwbGljZSh0cmFwSW5kZXgsIDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHJhcFF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdHJhcFF1ZXVlW3RyYXBRdWV1ZS5sZW5ndGggLSAxXS51bnBhdXNlKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufSgpO1xuXG52YXIgaXNTZWxlY3RhYmxlSW5wdXQgPSBmdW5jdGlvbiBpc1NlbGVjdGFibGVJbnB1dChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWUgJiYgbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgdHlwZW9mIG5vZGUuc2VsZWN0ID09PSAnZnVuY3Rpb24nO1xufTtcblxudmFyIGlzRXNjYXBlRXZlbnQgPSBmdW5jdGlvbiBpc0VzY2FwZUV2ZW50KGUpIHtcbiAgcmV0dXJuIGUua2V5ID09PSAnRXNjYXBlJyB8fCBlLmtleSA9PT0gJ0VzYycgfHwgZS5rZXlDb2RlID09PSAyNztcbn07XG5cbnZhciBpc1RhYkV2ZW50ID0gZnVuY3Rpb24gaXNUYWJFdmVudChlKSB7XG4gIHJldHVybiBlLmtleSA9PT0gJ1RhYicgfHwgZS5rZXlDb2RlID09PSA5O1xufTtcblxudmFyIGRlbGF5ID0gZnVuY3Rpb24gZGVsYXkoZm4pIHtcbiAgcmV0dXJuIHNldFRpbWVvdXQoZm4sIDApO1xufTsgLy8gQXJyYXkuZmluZC9maW5kSW5kZXgoKSBhcmUgbm90IHN1cHBvcnRlZCBvbiBJRTsgdGhpcyByZXBsaWNhdGVzIGVub3VnaFxuLy8gIG9mIEFycmF5LmZpbmRJbmRleCgpIGZvciBvdXIgbmVlZHNcblxuXG52YXIgZmluZEluZGV4ID0gZnVuY3Rpb24gZmluZEluZGV4KGFyciwgZm4pIHtcbiAgdmFyIGlkeCA9IC0xO1xuICBhcnIuZXZlcnkoZnVuY3Rpb24gKHZhbHVlLCBpKSB7XG4gICAgaWYgKGZuKHZhbHVlKSkge1xuICAgICAgaWR4ID0gaTtcbiAgICAgIHJldHVybiBmYWxzZTsgLy8gYnJlYWtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTsgLy8gbmV4dFxuICB9KTtcbiAgcmV0dXJuIGlkeDtcbn07XG4vKipcbiAqIEdldCBhbiBvcHRpb24ncyB2YWx1ZSB3aGVuIGl0IGNvdWxkIGJlIGEgcGxhaW4gdmFsdWUsIG9yIGEgaGFuZGxlciB0aGF0IHByb3ZpZGVzXG4gKiAgdGhlIHZhbHVlLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBPcHRpb24ncyB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7Li4uKn0gW3BhcmFtc10gQW55IHBhcmFtZXRlcnMgdG8gcGFzcyB0byB0aGUgaGFuZGxlciwgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLlxuICogQHJldHVybnMgeyp9IFRoZSBgdmFsdWVgLCBvciB0aGUgaGFuZGxlcidzIHJldHVybmVkIHZhbHVlLlxuICovXG5cblxudmFyIHZhbHVlT3JIYW5kbGVyID0gZnVuY3Rpb24gdmFsdWVPckhhbmRsZXIodmFsdWUpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHBhcmFtcyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgcGFyYW1zW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZS5hcHBseSh2b2lkIDAsIHBhcmFtcykgOiB2YWx1ZTtcbn07XG5cbnZhciBnZXRBY3R1YWxUYXJnZXQgPSBmdW5jdGlvbiBnZXRBY3R1YWxUYXJnZXQoZXZlbnQpIHtcbiAgLy8gTk9URTogSWYgdGhlIHRyYXAgaXMgX2luc2lkZV8gYSBzaGFkb3cgRE9NLCBldmVudC50YXJnZXQgd2lsbCBhbHdheXMgYmUgdGhlXG4gIC8vICBzaGFkb3cgaG9zdC4gSG93ZXZlciwgZXZlbnQudGFyZ2V0LmNvbXBvc2VkUGF0aCgpIHdpbGwgYmUgYW4gYXJyYXkgb2ZcbiAgLy8gIG5vZGVzIFwiY2xpY2tlZFwiIGZyb20gaW5uZXItbW9zdCAodGhlIGFjdHVhbCBlbGVtZW50IGluc2lkZSB0aGUgc2hhZG93KSB0b1xuICAvLyAgb3V0ZXItbW9zdCAodGhlIGhvc3QgSFRNTCBkb2N1bWVudCkuIElmIHdlIGhhdmUgYWNjZXNzIHRvIGNvbXBvc2VkUGF0aCgpLFxuICAvLyAgdGhlbiB1c2UgaXRzIGZpcnN0IGVsZW1lbnQ7IG90aGVyd2lzZSwgZmFsbCBiYWNrIHRvIGV2ZW50LnRhcmdldCAoYW5kXG4gIC8vICB0aGlzIG9ubHkgd29ya3MgZm9yIGFuIF9vcGVuXyBzaGFkb3cgRE9NOyBvdGhlcndpc2UsXG4gIC8vICBjb21wb3NlZFBhdGgoKVswXSA9PT0gZXZlbnQudGFyZ2V0IGFsd2F5cykuXG4gIHJldHVybiBldmVudC50YXJnZXQuc2hhZG93Um9vdCAmJiB0eXBlb2YgZXZlbnQuY29tcG9zZWRQYXRoID09PSAnZnVuY3Rpb24nID8gZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gOiBldmVudC50YXJnZXQ7XG59O1xuXG52YXIgY3JlYXRlRm9jdXNUcmFwID0gZnVuY3Rpb24gY3JlYXRlRm9jdXNUcmFwKGVsZW1lbnRzLCB1c2VyT3B0aW9ucykge1xuICAvLyBTU1I6IGEgbGl2ZSB0cmFwIHNob3VsZG4ndCBiZSBjcmVhdGVkIGluIHRoaXMgdHlwZSBvZiBlbnZpcm9ubWVudCBzbyB0aGlzXG4gIC8vICBzaG91bGQgYmUgc2FmZSBjb2RlIHRvIGV4ZWN1dGUgaWYgdGhlIGBkb2N1bWVudGAgb3B0aW9uIGlzbid0IHNwZWNpZmllZFxuICB2YXIgZG9jID0gKHVzZXJPcHRpb25zID09PSBudWxsIHx8IHVzZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiB1c2VyT3B0aW9ucy5kb2N1bWVudCkgfHwgZG9jdW1lbnQ7XG5cbiAgdmFyIGNvbmZpZyA9IF9vYmplY3RTcHJlYWQyKHtcbiAgICByZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZTogdHJ1ZSxcbiAgICBlc2NhcGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICBkZWxheUluaXRpYWxGb2N1czogdHJ1ZVxuICB9LCB1c2VyT3B0aW9ucyk7XG5cbiAgdmFyIHN0YXRlID0ge1xuICAgIC8vIEB0eXBlIHtBcnJheTxIVE1MRWxlbWVudD59XG4gICAgY29udGFpbmVyczogW10sXG4gICAgLy8gbGlzdCBvZiBvYmplY3RzIGlkZW50aWZ5aW5nIHRoZSBmaXJzdCBhbmQgbGFzdCB0YWJiYWJsZSBub2RlcyBpbiBhbGwgY29udGFpbmVycy9ncm91cHMgaW5cbiAgICAvLyAgdGhlIHRyYXBcbiAgICAvLyBOT1RFOiBpdCdzIHBvc3NpYmxlIHRoYXQgYSBncm91cCBoYXMgbm8gdGFiYmFibGUgbm9kZXMgaWYgbm9kZXMgZ2V0IHJlbW92ZWQgd2hpbGUgdGhlIHRyYXBcbiAgICAvLyAgaXMgYWN0aXZlLCBidXQgdGhlIHRyYXAgc2hvdWxkIG5ldmVyIGdldCB0byBhIHN0YXRlIHdoZXJlIHRoZXJlIGlzbid0IGF0IGxlYXN0IG9uZSBncm91cFxuICAgIC8vICB3aXRoIGF0IGxlYXN0IG9uZSB0YWJiYWJsZSBub2RlIGluIGl0ICh0aGF0IHdvdWxkIGxlYWQgdG8gYW4gZXJyb3IgY29uZGl0aW9uIHRoYXQgd291bGRcbiAgICAvLyAgcmVzdWx0IGluIGFuIGVycm9yIGJlaW5nIHRocm93bilcbiAgICAvLyBAdHlwZSB7QXJyYXk8eyBjb250YWluZXI6IEhUTUxFbGVtZW50LCBmaXJzdFRhYmJhYmxlTm9kZTogSFRNTEVsZW1lbnR8bnVsbCwgbGFzdFRhYmJhYmxlTm9kZTogSFRNTEVsZW1lbnR8bnVsbCB9Pn1cbiAgICB0YWJiYWJsZUdyb3VwczogW10sXG4gICAgbm9kZUZvY3VzZWRCZWZvcmVBY3RpdmF0aW9uOiBudWxsLFxuICAgIG1vc3RSZWNlbnRseUZvY3VzZWROb2RlOiBudWxsLFxuICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICAvLyB0aW1lciBJRCBmb3Igd2hlbiBkZWxheUluaXRpYWxGb2N1cyBpcyB0cnVlIGFuZCBpbml0aWFsIGZvY3VzIGluIHRoaXMgdHJhcFxuICAgIC8vICBoYXMgYmVlbiBkZWxheWVkIGR1cmluZyBhY3RpdmF0aW9uXG4gICAgZGVsYXlJbml0aWFsRm9jdXNUaW1lcjogdW5kZWZpbmVkXG4gIH07XG4gIHZhciB0cmFwOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByZWZlci1jb25zdCAtLSBzb21lIHByaXZhdGUgZnVuY3Rpb25zIHJlZmVyZW5jZSBpdCwgYW5kIGl0cyBtZXRob2RzIHJlZmVyZW5jZSBwcml2YXRlIGZ1bmN0aW9ucywgc28gd2UgbXVzdCBkZWNsYXJlIGhlcmUgYW5kIGRlZmluZSBsYXRlclxuXG4gIHZhciBnZXRPcHRpb24gPSBmdW5jdGlvbiBnZXRPcHRpb24oY29uZmlnT3ZlcnJpZGVPcHRpb25zLCBvcHRpb25OYW1lLCBjb25maWdPcHRpb25OYW1lKSB7XG4gICAgcmV0dXJuIGNvbmZpZ092ZXJyaWRlT3B0aW9ucyAmJiBjb25maWdPdmVycmlkZU9wdGlvbnNbb3B0aW9uTmFtZV0gIT09IHVuZGVmaW5lZCA/IGNvbmZpZ092ZXJyaWRlT3B0aW9uc1tvcHRpb25OYW1lXSA6IGNvbmZpZ1tjb25maWdPcHRpb25OYW1lIHx8IG9wdGlvbk5hbWVdO1xuICB9O1xuXG4gIHZhciBjb250YWluZXJzQ29udGFpbiA9IGZ1bmN0aW9uIGNvbnRhaW5lcnNDb250YWluKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gISEoZWxlbWVudCAmJiBzdGF0ZS5jb250YWluZXJzLnNvbWUoZnVuY3Rpb24gKGNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIGNvbnRhaW5lci5jb250YWlucyhlbGVtZW50KTtcbiAgICB9KSk7XG4gIH07XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBub2RlIGZvciB0aGUgZ2l2ZW4gb3B0aW9uLCB3aGljaCBpcyBleHBlY3RlZCB0byBiZSBhbiBvcHRpb24gdGhhdFxuICAgKiAgY2FuIGJlIGVpdGhlciBhIERPTSBub2RlLCBhIHN0cmluZyB0aGF0IGlzIGEgc2VsZWN0b3IgdG8gZ2V0IGEgbm9kZSwgYGZhbHNlYFxuICAgKiAgKGlmIGEgbm9kZSBpcyBleHBsaWNpdGx5IE5PVCBnaXZlbiksIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFueSBvZiB0aGVzZVxuICAgKiAgdmFsdWVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9uTmFtZVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkIHwgZmFsc2UgfCBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnR9IFJldHVybnNcbiAgICogIGB1bmRlZmluZWRgIGlmIHRoZSBvcHRpb24gaXMgbm90IHNwZWNpZmllZDsgYGZhbHNlYCBpZiB0aGUgb3B0aW9uXG4gICAqICByZXNvbHZlZCB0byBgZmFsc2VgIChub2RlIGV4cGxpY2l0bHkgbm90IGdpdmVuKTsgb3RoZXJ3aXNlLCB0aGUgcmVzb2x2ZWRcbiAgICogIERPTSBub2RlLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIG9wdGlvbiBpcyBzZXQsIG5vdCBgZmFsc2VgLCBhbmQgaXMgbm90LCBvciBkb2VzIG5vdFxuICAgKiAgcmVzb2x2ZSB0byBhIG5vZGUuXG4gICAqL1xuXG5cbiAgdmFyIGdldE5vZGVGb3JPcHRpb24gPSBmdW5jdGlvbiBnZXROb2RlRm9yT3B0aW9uKG9wdGlvbk5hbWUpIHtcbiAgICB2YXIgb3B0aW9uVmFsdWUgPSBjb25maWdbb3B0aW9uTmFtZV07XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvblZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIHBhcmFtcyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIHBhcmFtc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uVmFsdWUgPSBvcHRpb25WYWx1ZS5hcHBseSh2b2lkIDAsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25WYWx1ZSkge1xuICAgICAgaWYgKG9wdGlvblZhbHVlID09PSB1bmRlZmluZWQgfHwgb3B0aW9uVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25WYWx1ZTtcbiAgICAgIH0gLy8gZWxzZSwgZW1wdHkgc3RyaW5nIChpbnZhbGlkKSwgbnVsbCAoaW52YWxpZCksIDAgKGludmFsaWQpXG5cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgd2FzIHNwZWNpZmllZCBidXQgd2FzIG5vdCBhIG5vZGUsIG9yIGRpZCBub3QgcmV0dXJuIGEgbm9kZVwiKSk7XG4gICAgfVxuXG4gICAgdmFyIG5vZGUgPSBvcHRpb25WYWx1ZTsgLy8gY291bGQgYmUgSFRNTEVsZW1lbnQsIFNWR0VsZW1lbnQsIG9yIG5vbi1lbXB0eSBzdHJpbmcgYXQgdGhpcyBwb2ludFxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG5vZGUgPSBkb2MucXVlcnlTZWxlY3RvcihvcHRpb25WYWx1ZSk7IC8vIHJlc29sdmUgdG8gbm9kZSwgb3IgbnVsbCBpZiBmYWlsc1xuXG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgYXMgc2VsZWN0b3IgcmVmZXJzIHRvIG5vIGtub3duIG5vZGVcIikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9O1xuXG4gIHZhciBnZXRJbml0aWFsRm9jdXNOb2RlID0gZnVuY3Rpb24gZ2V0SW5pdGlhbEZvY3VzTm9kZSgpIHtcbiAgICB2YXIgbm9kZSA9IGdldE5vZGVGb3JPcHRpb24oJ2luaXRpYWxGb2N1cycpOyAvLyBmYWxzZSBleHBsaWNpdGx5IGluZGljYXRlcyB3ZSB3YW50IG5vIGluaXRpYWxGb2N1cyBhdCBhbGxcblxuICAgIGlmIChub2RlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIG9wdGlvbiBub3Qgc3BlY2lmaWVkOiB1c2UgZmFsbGJhY2sgb3B0aW9uc1xuICAgICAgaWYgKGNvbnRhaW5lcnNDb250YWluKGRvYy5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICBub2RlID0gZG9jLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZmlyc3RUYWJiYWJsZUdyb3VwID0gc3RhdGUudGFiYmFibGVHcm91cHNbMF07XG4gICAgICAgIHZhciBmaXJzdFRhYmJhYmxlTm9kZSA9IGZpcnN0VGFiYmFibGVHcm91cCAmJiBmaXJzdFRhYmJhYmxlR3JvdXAuZmlyc3RUYWJiYWJsZU5vZGU7IC8vIE5PVEU6IGBmYWxsYmFja0ZvY3VzYCBvcHRpb24gZnVuY3Rpb24gY2Fubm90IHJldHVybiBgZmFsc2VgIChub3Qgc3VwcG9ydGVkKVxuXG4gICAgICAgIG5vZGUgPSBmaXJzdFRhYmJhYmxlTm9kZSB8fCBnZXROb2RlRm9yT3B0aW9uKCdmYWxsYmFja0ZvY3VzJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFub2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdXIgZm9jdXMtdHJhcCBuZWVkcyB0byBoYXZlIGF0IGxlYXN0IG9uZSBmb2N1c2FibGUgZWxlbWVudCcpO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9O1xuXG4gIHZhciB1cGRhdGVUYWJiYWJsZU5vZGVzID0gZnVuY3Rpb24gdXBkYXRlVGFiYmFibGVOb2RlcygpIHtcbiAgICBzdGF0ZS50YWJiYWJsZUdyb3VwcyA9IHN0YXRlLmNvbnRhaW5lcnMubWFwKGZ1bmN0aW9uIChjb250YWluZXIpIHtcbiAgICAgIHZhciB0YWJiYWJsZU5vZGVzID0gdGFiYmFibGUoY29udGFpbmVyKTtcblxuICAgICAgaWYgKHRhYmJhYmxlTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyLFxuICAgICAgICAgIGZpcnN0VGFiYmFibGVOb2RlOiB0YWJiYWJsZU5vZGVzWzBdLFxuICAgICAgICAgIGxhc3RUYWJiYWJsZU5vZGU6IHRhYmJhYmxlTm9kZXNbdGFiYmFibGVOb2Rlcy5sZW5ndGggLSAxXVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pLmZpbHRlcihmdW5jdGlvbiAoZ3JvdXApIHtcbiAgICAgIHJldHVybiAhIWdyb3VwO1xuICAgIH0pOyAvLyByZW1vdmUgZ3JvdXBzIHdpdGggbm8gdGFiYmFibGUgbm9kZXNcbiAgICAvLyB0aHJvdyBpZiBubyBncm91cHMgaGF2ZSB0YWJiYWJsZSBub2RlcyBhbmQgd2UgZG9uJ3QgaGF2ZSBhIGZhbGxiYWNrIGZvY3VzIG5vZGUgZWl0aGVyXG5cbiAgICBpZiAoc3RhdGUudGFiYmFibGVHcm91cHMubGVuZ3RoIDw9IDAgJiYgIWdldE5vZGVGb3JPcHRpb24oJ2ZhbGxiYWNrRm9jdXMnKSAvLyByZXR1cm5pbmcgZmFsc2Ugbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcHRpb25cbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91ciBmb2N1cy10cmFwIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgY29udGFpbmVyIHdpdGggYXQgbGVhc3Qgb25lIHRhYmJhYmxlIG5vZGUgaW4gaXQgYXQgYWxsIHRpbWVzJyk7XG4gICAgfVxuICB9O1xuXG4gIHZhciB0cnlGb2N1cyA9IGZ1bmN0aW9uIHRyeUZvY3VzKG5vZGUpIHtcbiAgICBpZiAobm9kZSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gZG9jLmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIW5vZGUgfHwgIW5vZGUuZm9jdXMpIHtcbiAgICAgIHRyeUZvY3VzKGdldEluaXRpYWxGb2N1c05vZGUoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbm9kZS5mb2N1cyh7XG4gICAgICBwcmV2ZW50U2Nyb2xsOiAhIWNvbmZpZy5wcmV2ZW50U2Nyb2xsXG4gICAgfSk7XG4gICAgc3RhdGUubW9zdFJlY2VudGx5Rm9jdXNlZE5vZGUgPSBub2RlO1xuXG4gICAgaWYgKGlzU2VsZWN0YWJsZUlucHV0KG5vZGUpKSB7XG4gICAgICBub2RlLnNlbGVjdCgpO1xuICAgIH1cbiAgfTtcblxuICB2YXIgZ2V0UmV0dXJuRm9jdXNOb2RlID0gZnVuY3Rpb24gZ2V0UmV0dXJuRm9jdXNOb2RlKHByZXZpb3VzQWN0aXZlRWxlbWVudCkge1xuICAgIHZhciBub2RlID0gZ2V0Tm9kZUZvck9wdGlvbignc2V0UmV0dXJuRm9jdXMnLCBwcmV2aW91c0FjdGl2ZUVsZW1lbnQpO1xuICAgIHJldHVybiBub2RlID8gbm9kZSA6IG5vZGUgPT09IGZhbHNlID8gZmFsc2UgOiBwcmV2aW91c0FjdGl2ZUVsZW1lbnQ7XG4gIH07IC8vIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSBvbiBtb3VzZWRvd24gYW5kIHRvdWNoc3RhcnQgaW5zdGVhZCBvZiBjbGlja1xuICAvLyBzbyB0aGF0IGl0IHByZWNlZGVzIHRoZSBmb2N1cyBldmVudC5cblxuXG4gIHZhciBjaGVja1BvaW50ZXJEb3duID0gZnVuY3Rpb24gY2hlY2tQb2ludGVyRG93bihlKSB7XG4gICAgdmFyIHRhcmdldCA9IGdldEFjdHVhbFRhcmdldChlKTtcblxuICAgIGlmIChjb250YWluZXJzQ29udGFpbih0YXJnZXQpKSB7XG4gICAgICAvLyBhbGxvdyB0aGUgY2xpY2sgc2luY2UgaXQgb2N1cnJlZCBpbnNpZGUgdGhlIHRyYXBcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWVPckhhbmRsZXIoY29uZmlnLmNsaWNrT3V0c2lkZURlYWN0aXZhdGVzLCBlKSkge1xuICAgICAgLy8gaW1tZWRpYXRlbHkgZGVhY3RpdmF0ZSB0aGUgdHJhcFxuICAgICAgdHJhcC5kZWFjdGl2YXRlKHtcbiAgICAgICAgLy8gaWYsIG9uIGRlYWN0aXZhdGlvbiwgd2Ugc2hvdWxkIHJldHVybiBmb2N1cyB0byB0aGUgbm9kZSBvcmlnaW5hbGx5LWZvY3VzZWRcbiAgICAgICAgLy8gIHdoZW4gdGhlIHRyYXAgd2FzIGFjdGl2YXRlZCAob3IgdGhlIGNvbmZpZ3VyZWQgYHNldFJldHVybkZvY3VzYCBub2RlKSxcbiAgICAgICAgLy8gIHRoZW4gYXNzdW1lIGl0J3MgYWxzbyBPSyB0byByZXR1cm4gZm9jdXMgdG8gdGhlIG91dHNpZGUgbm9kZSB0aGF0IHdhc1xuICAgICAgICAvLyAganVzdCBjbGlja2VkLCBjYXVzaW5nIGRlYWN0aXZhdGlvbiwgYXMgbG9uZyBhcyB0aGF0IG5vZGUgaXMgZm9jdXNhYmxlO1xuICAgICAgICAvLyAgaWYgaXQgaXNuJ3QgZm9jdXNhYmxlLCB0aGVuIHJldHVybiBmb2N1cyB0byB0aGUgb3JpZ2luYWwgbm9kZSBmb2N1c2VkXG4gICAgICAgIC8vICBvbiBhY3RpdmF0aW9uIChvciB0aGUgY29uZmlndXJlZCBgc2V0UmV0dXJuRm9jdXNgIG5vZGUpXG4gICAgICAgIC8vIE5PVEU6IGJ5IHNldHRpbmcgYHJldHVybkZvY3VzOiBmYWxzZWAsIGRlYWN0aXZhdGUoKSB3aWxsIGRvIG5vdGhpbmcsXG4gICAgICAgIC8vICB3aGljaCB3aWxsIHJlc3VsdCBpbiB0aGUgb3V0c2lkZSBjbGljayBzZXR0aW5nIGZvY3VzIHRvIHRoZSBub2RlXG4gICAgICAgIC8vICB0aGF0IHdhcyBjbGlja2VkLCB3aGV0aGVyIGl0J3MgZm9jdXNhYmxlIG9yIG5vdDsgYnkgc2V0dGluZ1xuICAgICAgICAvLyAgYHJldHVybkZvY3VzOiB0cnVlYCwgd2UnbGwgYXR0ZW1wdCB0byByZS1mb2N1cyB0aGUgbm9kZSBvcmlnaW5hbGx5LWZvY3VzZWRcbiAgICAgICAgLy8gIG9uIGFjdGl2YXRpb24gKG9yIHRoZSBjb25maWd1cmVkIGBzZXRSZXR1cm5Gb2N1c2Agbm9kZSlcbiAgICAgICAgcmV0dXJuRm9jdXM6IGNvbmZpZy5yZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZSAmJiAhaXNGb2N1c2FibGUodGFyZ2V0KVxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgbW9iaWxlIGRldmljZXMuXG4gICAgLy8gKElmIHdlJ2xsIG9ubHkgbGV0IGBjbGlja2AgZXZlbnRzIHRocm91Z2gsXG4gICAgLy8gdGhlbiBvbiBtb2JpbGUgdGhleSB3aWxsIGJlIGJsb2NrZWQgYW55d2F5cyBpZiBgdG91Y2hzdGFydGAgaXMgYmxvY2tlZC4pXG5cblxuICAgIGlmICh2YWx1ZU9ySGFuZGxlcihjb25maWcuYWxsb3dPdXRzaWRlQ2xpY2ssIGUpKSB7XG4gICAgICAvLyBhbGxvdyB0aGUgY2xpY2sgb3V0c2lkZSB0aGUgdHJhcCB0byB0YWtlIHBsYWNlXG4gICAgICByZXR1cm47XG4gICAgfSAvLyBvdGhlcndpc2UsIHByZXZlbnQgdGhlIGNsaWNrXG5cblxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfTsgLy8gSW4gY2FzZSBmb2N1cyBlc2NhcGVzIHRoZSB0cmFwIGZvciBzb21lIHN0cmFuZ2UgcmVhc29uLCBwdWxsIGl0IGJhY2sgaW4uXG5cblxuICB2YXIgY2hlY2tGb2N1c0luID0gZnVuY3Rpb24gY2hlY2tGb2N1c0luKGUpIHtcbiAgICB2YXIgdGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGUpO1xuICAgIHZhciB0YXJnZXRDb250YWluZWQgPSBjb250YWluZXJzQ29udGFpbih0YXJnZXQpOyAvLyBJbiBGaXJlZm94IHdoZW4geW91IFRhYiBvdXQgb2YgYW4gaWZyYW1lIHRoZSBEb2N1bWVudCBpcyBicmllZmx5IGZvY3VzZWQuXG5cbiAgICBpZiAodGFyZ2V0Q29udGFpbmVkIHx8IHRhcmdldCBpbnN0YW5jZW9mIERvY3VtZW50KSB7XG4gICAgICBpZiAodGFyZ2V0Q29udGFpbmVkKSB7XG4gICAgICAgIHN0YXRlLm1vc3RSZWNlbnRseUZvY3VzZWROb2RlID0gdGFyZ2V0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlc2NhcGVkISBwdWxsIGl0IGJhY2sgaW4gdG8gd2hlcmUgaXQganVzdCBsZWZ0XG4gICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgdHJ5Rm9jdXMoc3RhdGUubW9zdFJlY2VudGx5Rm9jdXNlZE5vZGUgfHwgZ2V0SW5pdGlhbEZvY3VzTm9kZSgpKTtcbiAgICB9XG4gIH07IC8vIEhpamFjayBUYWIgZXZlbnRzIG9uIHRoZSBmaXJzdCBhbmQgbGFzdCBmb2N1c2FibGUgbm9kZXMgb2YgdGhlIHRyYXAsXG4gIC8vIGluIG9yZGVyIHRvIHByZXZlbnQgZm9jdXMgZnJvbSBlc2NhcGluZy4gSWYgaXQgZXNjYXBlcyBmb3IgZXZlbiBhXG4gIC8vIG1vbWVudCBpdCBjYW4gZW5kIHVwIHNjcm9sbGluZyB0aGUgcGFnZSBhbmQgY2F1c2luZyBjb25mdXNpb24gc28gd2VcbiAgLy8ga2luZCBvZiBuZWVkIHRvIGNhcHR1cmUgdGhlIGFjdGlvbiBhdCB0aGUga2V5ZG93biBwaGFzZS5cblxuXG4gIHZhciBjaGVja1RhYiA9IGZ1bmN0aW9uIGNoZWNrVGFiKGUpIHtcbiAgICB2YXIgdGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGUpO1xuICAgIHVwZGF0ZVRhYmJhYmxlTm9kZXMoKTtcbiAgICB2YXIgZGVzdGluYXRpb25Ob2RlID0gbnVsbDtcblxuICAgIGlmIChzdGF0ZS50YWJiYWJsZUdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBtYWtlIHN1cmUgdGhlIHRhcmdldCBpcyBhY3R1YWxseSBjb250YWluZWQgaW4gYSBncm91cFxuICAgICAgLy8gTk9URTogdGhlIHRhcmdldCBtYXkgYWxzbyBiZSB0aGUgY29udGFpbmVyIGl0c2VsZiBpZiBpdCdzIGZvY3VzYWJsZVxuICAgICAgLy8gIHdpdGggdGFiSW5kZXg9Jy0xJyBhbmQgd2FzIGdpdmVuIGluaXRpYWwgZm9jdXNcbiAgICAgIHZhciBjb250YWluZXJJbmRleCA9IGZpbmRJbmRleChzdGF0ZS50YWJiYWJsZUdyb3VwcywgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IF9yZWYuY29udGFpbmVyO1xuICAgICAgICByZXR1cm4gY29udGFpbmVyLmNvbnRhaW5zKHRhcmdldCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvbnRhaW5lckluZGV4IDwgMCkge1xuICAgICAgICAvLyB0YXJnZXQgbm90IGZvdW5kIGluIGFueSBncm91cDogcXVpdGUgcG9zc2libGUgZm9jdXMgaGFzIGVzY2FwZWQgdGhlIHRyYXAsXG4gICAgICAgIC8vICBzbyBicmluZyBpdCBiYWNrIGluIHRvLi4uXG4gICAgICAgIGlmIChlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgLy8gLi4udGhlIGxhc3Qgbm9kZSBpbiB0aGUgbGFzdCBncm91cFxuICAgICAgICAgIGRlc3RpbmF0aW9uTm9kZSA9IHN0YXRlLnRhYmJhYmxlR3JvdXBzW3N0YXRlLnRhYmJhYmxlR3JvdXBzLmxlbmd0aCAtIDFdLmxhc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gLi4udGhlIGZpcnN0IG5vZGUgaW4gdGhlIGZpcnN0IGdyb3VwXG4gICAgICAgICAgZGVzdGluYXRpb25Ob2RlID0gc3RhdGUudGFiYmFibGVHcm91cHNbMF0uZmlyc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZS5zaGlmdEtleSkge1xuICAgICAgICAvLyBSRVZFUlNFXG4gICAgICAgIC8vIGlzIHRoZSB0YXJnZXQgdGhlIGZpcnN0IHRhYmJhYmxlIG5vZGUgaW4gYSBncm91cD9cbiAgICAgICAgdmFyIHN0YXJ0T2ZHcm91cEluZGV4ID0gZmluZEluZGV4KHN0YXRlLnRhYmJhYmxlR3JvdXBzLCBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgICB2YXIgZmlyc3RUYWJiYWJsZU5vZGUgPSBfcmVmMi5maXJzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgICByZXR1cm4gdGFyZ2V0ID09PSBmaXJzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHN0YXJ0T2ZHcm91cEluZGV4IDwgMCAmJiAoc3RhdGUudGFiYmFibGVHcm91cHNbY29udGFpbmVySW5kZXhdLmNvbnRhaW5lciA9PT0gdGFyZ2V0IHx8IGlzRm9jdXNhYmxlKHRhcmdldCkgJiYgIWlzVGFiYmFibGUodGFyZ2V0KSkpIHtcbiAgICAgICAgICAvLyBhbiBleGNlcHRpb24gY2FzZSB3aGVyZSB0aGUgdGFyZ2V0IGlzIGVpdGhlciB0aGUgY29udGFpbmVyIGl0c2VsZiwgb3JcbiAgICAgICAgICAvLyAgYSBub24tdGFiYmFibGUgbm9kZSB0aGF0IHdhcyBnaXZlbiBmb2N1cyAoaS5lLiB0YWJpbmRleCBpcyBuZWdhdGl2ZVxuICAgICAgICAgIC8vICBhbmQgdXNlciBjbGlja2VkIG9uIGl0IG9yIG5vZGUgd2FzIHByb2dyYW1tYXRpY2FsbHkgZ2l2ZW4gZm9jdXMpLCBpbiB3aGljaFxuICAgICAgICAgIC8vICBjYXNlLCB3ZSBzaG91bGQgaGFuZGxlIHNoaWZ0K3RhYiBhcyBpZiBmb2N1cyB3ZXJlIG9uIHRoZSBjb250YWluZXInc1xuICAgICAgICAgIC8vICBmaXJzdCB0YWJiYWJsZSBub2RlLCBhbmQgZ28gdG8gdGhlIGxhc3QgdGFiYmFibGUgbm9kZSBvZiB0aGUgTEFTVCBncm91cFxuICAgICAgICAgIHN0YXJ0T2ZHcm91cEluZGV4ID0gY29udGFpbmVySW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhcnRPZkdyb3VwSW5kZXggPj0gMCkge1xuICAgICAgICAgIC8vIFlFUzogdGhlbiBzaGlmdCt0YWIgc2hvdWxkIGdvIHRvIHRoZSBsYXN0IHRhYmJhYmxlIG5vZGUgaW4gdGhlXG4gICAgICAgICAgLy8gIHByZXZpb3VzIGdyb3VwIChhbmQgd3JhcCBhcm91bmQgdG8gdGhlIGxhc3QgdGFiYmFibGUgbm9kZSBvZlxuICAgICAgICAgIC8vICB0aGUgTEFTVCBncm91cCBpZiBpdCdzIHRoZSBmaXJzdCB0YWJiYWJsZSBub2RlIG9mIHRoZSBGSVJTVCBncm91cClcbiAgICAgICAgICB2YXIgZGVzdGluYXRpb25Hcm91cEluZGV4ID0gc3RhcnRPZkdyb3VwSW5kZXggPT09IDAgPyBzdGF0ZS50YWJiYWJsZUdyb3Vwcy5sZW5ndGggLSAxIDogc3RhcnRPZkdyb3VwSW5kZXggLSAxO1xuICAgICAgICAgIHZhciBkZXN0aW5hdGlvbkdyb3VwID0gc3RhdGUudGFiYmFibGVHcm91cHNbZGVzdGluYXRpb25Hcm91cEluZGV4XTtcbiAgICAgICAgICBkZXN0aW5hdGlvbk5vZGUgPSBkZXN0aW5hdGlvbkdyb3VwLmxhc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZPUldBUkRcbiAgICAgICAgLy8gaXMgdGhlIHRhcmdldCB0aGUgbGFzdCB0YWJiYWJsZSBub2RlIGluIGEgZ3JvdXA/XG4gICAgICAgIHZhciBsYXN0T2ZHcm91cEluZGV4ID0gZmluZEluZGV4KHN0YXRlLnRhYmJhYmxlR3JvdXBzLCBmdW5jdGlvbiAoX3JlZjMpIHtcbiAgICAgICAgICB2YXIgbGFzdFRhYmJhYmxlTm9kZSA9IF9yZWYzLmxhc3RUYWJiYWJsZU5vZGU7XG4gICAgICAgICAgcmV0dXJuIHRhcmdldCA9PT0gbGFzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGxhc3RPZkdyb3VwSW5kZXggPCAwICYmIChzdGF0ZS50YWJiYWJsZUdyb3Vwc1tjb250YWluZXJJbmRleF0uY29udGFpbmVyID09PSB0YXJnZXQgfHwgaXNGb2N1c2FibGUodGFyZ2V0KSAmJiAhaXNUYWJiYWJsZSh0YXJnZXQpKSkge1xuICAgICAgICAgIC8vIGFuIGV4Y2VwdGlvbiBjYXNlIHdoZXJlIHRoZSB0YXJnZXQgaXMgdGhlIGNvbnRhaW5lciBpdHNlbGYsIG9yXG4gICAgICAgICAgLy8gIGEgbm9uLXRhYmJhYmxlIG5vZGUgdGhhdCB3YXMgZ2l2ZW4gZm9jdXMgKGkuZS4gdGFiaW5kZXggaXMgbmVnYXRpdmVcbiAgICAgICAgICAvLyAgYW5kIHVzZXIgY2xpY2tlZCBvbiBpdCBvciBub2RlIHdhcyBwcm9ncmFtbWF0aWNhbGx5IGdpdmVuIGZvY3VzKSwgaW4gd2hpY2hcbiAgICAgICAgICAvLyAgY2FzZSwgd2Ugc2hvdWxkIGhhbmRsZSB0YWIgYXMgaWYgZm9jdXMgd2VyZSBvbiB0aGUgY29udGFpbmVyJ3NcbiAgICAgICAgICAvLyAgbGFzdCB0YWJiYWJsZSBub2RlLCBhbmQgZ28gdG8gdGhlIGZpcnN0IHRhYmJhYmxlIG5vZGUgb2YgdGhlIEZJUlNUIGdyb3VwXG4gICAgICAgICAgbGFzdE9mR3JvdXBJbmRleCA9IGNvbnRhaW5lckluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxhc3RPZkdyb3VwSW5kZXggPj0gMCkge1xuICAgICAgICAgIC8vIFlFUzogdGhlbiB0YWIgc2hvdWxkIGdvIHRvIHRoZSBmaXJzdCB0YWJiYWJsZSBub2RlIGluIHRoZSBuZXh0XG4gICAgICAgICAgLy8gIGdyb3VwIChhbmQgd3JhcCBhcm91bmQgdG8gdGhlIGZpcnN0IHRhYmJhYmxlIG5vZGUgb2YgdGhlIEZJUlNUXG4gICAgICAgICAgLy8gIGdyb3VwIGlmIGl0J3MgdGhlIGxhc3QgdGFiYmFibGUgbm9kZSBvZiB0aGUgTEFTVCBncm91cClcbiAgICAgICAgICB2YXIgX2Rlc3RpbmF0aW9uR3JvdXBJbmRleCA9IGxhc3RPZkdyb3VwSW5kZXggPT09IHN0YXRlLnRhYmJhYmxlR3JvdXBzLmxlbmd0aCAtIDEgPyAwIDogbGFzdE9mR3JvdXBJbmRleCArIDE7XG5cbiAgICAgICAgICB2YXIgX2Rlc3RpbmF0aW9uR3JvdXAgPSBzdGF0ZS50YWJiYWJsZUdyb3Vwc1tfZGVzdGluYXRpb25Hcm91cEluZGV4XTtcbiAgICAgICAgICBkZXN0aW5hdGlvbk5vZGUgPSBfZGVzdGluYXRpb25Hcm91cC5maXJzdFRhYmJhYmxlTm9kZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOT1RFOiB0aGUgZmFsbGJhY2tGb2N1cyBvcHRpb24gZG9lcyBub3Qgc3VwcG9ydCByZXR1cm5pbmcgZmFsc2UgdG8gb3B0LW91dFxuICAgICAgZGVzdGluYXRpb25Ob2RlID0gZ2V0Tm9kZUZvck9wdGlvbignZmFsbGJhY2tGb2N1cycpO1xuICAgIH1cblxuICAgIGlmIChkZXN0aW5hdGlvbk5vZGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRyeUZvY3VzKGRlc3RpbmF0aW9uTm9kZSk7XG4gICAgfSAvLyBlbHNlLCBsZXQgdGhlIGJyb3dzZXIgdGFrZSBjYXJlIG9mIFtzaGlmdCtddGFiIGFuZCBtb3ZlIHRoZSBmb2N1c1xuXG4gIH07XG5cbiAgdmFyIGNoZWNrS2V5ID0gZnVuY3Rpb24gY2hlY2tLZXkoZSkge1xuICAgIGlmIChpc0VzY2FwZUV2ZW50KGUpICYmIHZhbHVlT3JIYW5kbGVyKGNvbmZpZy5lc2NhcGVEZWFjdGl2YXRlcywgZSkgIT09IGZhbHNlKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0cmFwLmRlYWN0aXZhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNUYWJFdmVudChlKSkge1xuICAgICAgY2hlY2tUYWIoZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIHZhciBjaGVja0NsaWNrID0gZnVuY3Rpb24gY2hlY2tDbGljayhlKSB7XG4gICAgaWYgKHZhbHVlT3JIYW5kbGVyKGNvbmZpZy5jbGlja091dHNpZGVEZWFjdGl2YXRlcywgZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0ID0gZ2V0QWN0dWFsVGFyZ2V0KGUpO1xuXG4gICAgaWYgKGNvbnRhaW5lcnNDb250YWluKHRhcmdldCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWVPckhhbmRsZXIoY29uZmlnLmFsbG93T3V0c2lkZUNsaWNrLCBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICB9OyAvL1xuICAvLyBFVkVOVCBMSVNURU5FUlNcbiAgLy9cblxuXG4gIHZhciBhZGRMaXN0ZW5lcnMgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKCFzdGF0ZS5hY3RpdmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSBsaXN0ZW5pbmcgZm9jdXMgdHJhcCBhdCBhIHRpbWVcblxuXG4gICAgYWN0aXZlRm9jdXNUcmFwcy5hY3RpdmF0ZVRyYXAodHJhcCk7IC8vIERlbGF5IGVuc3VyZXMgdGhhdCB0aGUgZm9jdXNlZCBlbGVtZW50IGRvZXNuJ3QgY2FwdHVyZSB0aGUgZXZlbnRcbiAgICAvLyB0aGF0IGNhdXNlZCB0aGUgZm9jdXMgdHJhcCBhY3RpdmF0aW9uLlxuXG4gICAgc3RhdGUuZGVsYXlJbml0aWFsRm9jdXNUaW1lciA9IGNvbmZpZy5kZWxheUluaXRpYWxGb2N1cyA/IGRlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyeUZvY3VzKGdldEluaXRpYWxGb2N1c05vZGUoKSk7XG4gICAgfSkgOiB0cnlGb2N1cyhnZXRJbml0aWFsRm9jdXNOb2RlKCkpO1xuICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgY2hlY2tGb2N1c0luLCB0cnVlKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgY2hlY2tQb2ludGVyRG93biwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgfSk7XG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBjaGVja1BvaW50ZXJEb3duLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjaGVja0NsaWNrLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGNoZWNrS2V5LCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gdHJhcDtcbiAgfTtcblxuICB2YXIgcmVtb3ZlTGlzdGVuZXJzID0gZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgIGlmICghc3RhdGUuYWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBjaGVja0ZvY3VzSW4sIHRydWUpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBjaGVja1BvaW50ZXJEb3duLCB0cnVlKTtcbiAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGNoZWNrUG9pbnRlckRvd24sIHRydWUpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGNoZWNrQ2xpY2ssIHRydWUpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgY2hlY2tLZXksIHRydWUpO1xuICAgIHJldHVybiB0cmFwO1xuICB9OyAvL1xuICAvLyBUUkFQIERFRklOSVRJT05cbiAgLy9cblxuXG4gIHRyYXAgPSB7XG4gICAgYWN0aXZhdGU6IGZ1bmN0aW9uIGFjdGl2YXRlKGFjdGl2YXRlT3B0aW9ucykge1xuICAgICAgaWYgKHN0YXRlLmFjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgdmFyIG9uQWN0aXZhdGUgPSBnZXRPcHRpb24oYWN0aXZhdGVPcHRpb25zLCAnb25BY3RpdmF0ZScpO1xuICAgICAgdmFyIG9uUG9zdEFjdGl2YXRlID0gZ2V0T3B0aW9uKGFjdGl2YXRlT3B0aW9ucywgJ29uUG9zdEFjdGl2YXRlJyk7XG4gICAgICB2YXIgY2hlY2tDYW5Gb2N1c1RyYXAgPSBnZXRPcHRpb24oYWN0aXZhdGVPcHRpb25zLCAnY2hlY2tDYW5Gb2N1c1RyYXAnKTtcblxuICAgICAgaWYgKCFjaGVja0NhbkZvY3VzVHJhcCkge1xuICAgICAgICB1cGRhdGVUYWJiYWJsZU5vZGVzKCk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLmFjdGl2ZSA9IHRydWU7XG4gICAgICBzdGF0ZS5wYXVzZWQgPSBmYWxzZTtcbiAgICAgIHN0YXRlLm5vZGVGb2N1c2VkQmVmb3JlQWN0aXZhdGlvbiA9IGRvYy5hY3RpdmVFbGVtZW50O1xuXG4gICAgICBpZiAob25BY3RpdmF0ZSkge1xuICAgICAgICBvbkFjdGl2YXRlKCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBmaW5pc2hBY3RpdmF0aW9uID0gZnVuY3Rpb24gZmluaXNoQWN0aXZhdGlvbigpIHtcbiAgICAgICAgaWYgKGNoZWNrQ2FuRm9jdXNUcmFwKSB7XG4gICAgICAgICAgdXBkYXRlVGFiYmFibGVOb2RlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgYWRkTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKG9uUG9zdEFjdGl2YXRlKSB7XG4gICAgICAgICAgb25Qb3N0QWN0aXZhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgaWYgKGNoZWNrQ2FuRm9jdXNUcmFwKSB7XG4gICAgICAgIGNoZWNrQ2FuRm9jdXNUcmFwKHN0YXRlLmNvbnRhaW5lcnMuY29uY2F0KCkpLnRoZW4oZmluaXNoQWN0aXZhdGlvbiwgZmluaXNoQWN0aXZhdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBmaW5pc2hBY3RpdmF0aW9uKCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGRlYWN0aXZhdGU6IGZ1bmN0aW9uIGRlYWN0aXZhdGUoZGVhY3RpdmF0ZU9wdGlvbnMpIHtcbiAgICAgIGlmICghc3RhdGUuYWN0aXZlKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBjbGVhclRpbWVvdXQoc3RhdGUuZGVsYXlJbml0aWFsRm9jdXNUaW1lcik7IC8vIG5vb3AgaWYgdW5kZWZpbmVkXG5cbiAgICAgIHN0YXRlLmRlbGF5SW5pdGlhbEZvY3VzVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICByZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgIHN0YXRlLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgc3RhdGUucGF1c2VkID0gZmFsc2U7XG4gICAgICBhY3RpdmVGb2N1c1RyYXBzLmRlYWN0aXZhdGVUcmFwKHRyYXApO1xuICAgICAgdmFyIG9uRGVhY3RpdmF0ZSA9IGdldE9wdGlvbihkZWFjdGl2YXRlT3B0aW9ucywgJ29uRGVhY3RpdmF0ZScpO1xuICAgICAgdmFyIG9uUG9zdERlYWN0aXZhdGUgPSBnZXRPcHRpb24oZGVhY3RpdmF0ZU9wdGlvbnMsICdvblBvc3REZWFjdGl2YXRlJyk7XG4gICAgICB2YXIgY2hlY2tDYW5SZXR1cm5Gb2N1cyA9IGdldE9wdGlvbihkZWFjdGl2YXRlT3B0aW9ucywgJ2NoZWNrQ2FuUmV0dXJuRm9jdXMnKTtcblxuICAgICAgaWYgKG9uRGVhY3RpdmF0ZSkge1xuICAgICAgICBvbkRlYWN0aXZhdGUoKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJldHVybkZvY3VzID0gZ2V0T3B0aW9uKGRlYWN0aXZhdGVPcHRpb25zLCAncmV0dXJuRm9jdXMnLCAncmV0dXJuRm9jdXNPbkRlYWN0aXZhdGUnKTtcblxuICAgICAgdmFyIGZpbmlzaERlYWN0aXZhdGlvbiA9IGZ1bmN0aW9uIGZpbmlzaERlYWN0aXZhdGlvbigpIHtcbiAgICAgICAgZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChyZXR1cm5Gb2N1cykge1xuICAgICAgICAgICAgdHJ5Rm9jdXMoZ2V0UmV0dXJuRm9jdXNOb2RlKHN0YXRlLm5vZGVGb2N1c2VkQmVmb3JlQWN0aXZhdGlvbikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvblBvc3REZWFjdGl2YXRlKSB7XG4gICAgICAgICAgICBvblBvc3REZWFjdGl2YXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXR1cm5Gb2N1cyAmJiBjaGVja0NhblJldHVybkZvY3VzKSB7XG4gICAgICAgIGNoZWNrQ2FuUmV0dXJuRm9jdXMoZ2V0UmV0dXJuRm9jdXNOb2RlKHN0YXRlLm5vZGVGb2N1c2VkQmVmb3JlQWN0aXZhdGlvbikpLnRoZW4oZmluaXNoRGVhY3RpdmF0aW9uLCBmaW5pc2hEZWFjdGl2YXRpb24pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgZmluaXNoRGVhY3RpdmF0aW9uKCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHBhdXNlOiBmdW5jdGlvbiBwYXVzZSgpIHtcbiAgICAgIGlmIChzdGF0ZS5wYXVzZWQgfHwgIXN0YXRlLmFjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgc3RhdGUucGF1c2VkID0gdHJ1ZTtcbiAgICAgIHJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICB1bnBhdXNlOiBmdW5jdGlvbiB1bnBhdXNlKCkge1xuICAgICAgaWYgKCFzdGF0ZS5wYXVzZWQgfHwgIXN0YXRlLmFjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgc3RhdGUucGF1c2VkID0gZmFsc2U7XG4gICAgICB1cGRhdGVUYWJiYWJsZU5vZGVzKCk7XG4gICAgICBhZGRMaXN0ZW5lcnMoKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgdXBkYXRlQ29udGFpbmVyRWxlbWVudHM6IGZ1bmN0aW9uIHVwZGF0ZUNvbnRhaW5lckVsZW1lbnRzKGNvbnRhaW5lckVsZW1lbnRzKSB7XG4gICAgICB2YXIgZWxlbWVudHNBc0FycmF5ID0gW10uY29uY2F0KGNvbnRhaW5lckVsZW1lbnRzKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICBzdGF0ZS5jb250YWluZXJzID0gZWxlbWVudHNBc0FycmF5Lm1hcChmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnID8gZG9jLnF1ZXJ5U2VsZWN0b3IoZWxlbWVudCkgOiBlbGVtZW50O1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChzdGF0ZS5hY3RpdmUpIHtcbiAgICAgICAgdXBkYXRlVGFiYmFibGVOb2RlcygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH07IC8vIGluaXRpYWxpemUgY29udGFpbmVyIGVsZW1lbnRzXG5cbiAgdHJhcC51cGRhdGVDb250YWluZXJFbGVtZW50cyhlbGVtZW50cyk7XG4gIHJldHVybiB0cmFwO1xufTtcblxuZXhwb3J0IHsgY3JlYXRlRm9jdXNUcmFwIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb2N1cy10cmFwLmVzbS5qcy5tYXBcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IHJldHVybiBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfSwgX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFwicHJvdG90eXBlXCIsIHsgd3JpdGFibGU6IGZhbHNlIH0pOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN1YkNsYXNzLCBcInByb3RvdHlwZVwiLCB7IHdyaXRhYmxlOiBmYWxzZSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSBlbHNlIGlmIChjYWxsICE9PSB2b2lkIDApIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgUmVhY3RET00gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcblxudmFyIFByb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnZm9jdXMtdHJhcCcpLFxuICAgIGNyZWF0ZUZvY3VzVHJhcCA9IF9yZXF1aXJlLmNyZWF0ZUZvY3VzVHJhcDsgLy8gVE9ETzogVGhlc2UgaXNzdWVzIGFyZSByZWxhdGVkIHRvIG9sZGVyIFJlYWN0IGZlYXR1cmVzIHdoaWNoIHdlJ2xsIGxpa2VseSBuZWVkXG4vLyAgdG8gZml4IGluIG9yZGVyIHRvIG1vdmUgdGhlIGNvZGUgZm9yd2FyZCB0byB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIFJlYWN0LlxuLy8gIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2RhdmlkdGhlY2xhcmsvZm9jdXMtdHJhcC1yZWFjdC9pc3N1ZXMvNzdcblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tZmluZC1kb20tbm9kZSAqL1xuXG5cbnZhciBGb2N1c1RyYXAgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEZvY3VzVHJhcCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihGb2N1c1RyYXApO1xuXG4gIGZ1bmN0aW9uIEZvY3VzVHJhcChwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBGb2N1c1RyYXApO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7IC8vIFdlIG5lZWQgdG8gaGlqYWNrIHRoZSByZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZSBvcHRpb24sXG4gICAgLy8gYmVjYXVzZSBSZWFjdCBjYW4gbW92ZSBmb2N1cyBpbnRvIHRoZSBlbGVtZW50IGJlZm9yZSB3ZSBhcnJpdmVkIGF0XG4gICAgLy8gdGhpcyBsaWZlY3ljbGUgaG9vayAoZS5nLiB3aXRoIGF1dG9Gb2N1cyBpbnB1dHMpLiBTbyB0aGUgY29tcG9uZW50XG4gICAgLy8gY2FwdHVyZXMgdGhlIHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCBpbiBjb21wb25lbnRXaWxsTW91bnQsXG4gICAgLy8gdGhlbiAob3B0aW9uYWxseSkgcmV0dXJucyBmb2N1cyB0byBpdCBpbiBjb21wb25lbnRXaWxsVW5tb3VudC5cblxuICAgIF90aGlzLnRhaWxvcmVkRm9jdXNUcmFwT3B0aW9ucyA9IHtcbiAgICAgIHJldHVybkZvY3VzT25EZWFjdGl2YXRlOiBmYWxzZVxuICAgIH07IC8vIGJlY2F1c2Ugb2YgdGhlIGFib3ZlLCB3ZSBtYWludGFpbiBvdXIgb3duIGZsYWcgZm9yIHRoaXMgb3B0aW9uLCBhbmRcbiAgICAvLyAgZGVmYXVsdCBpdCB0byBgdHJ1ZWAgYmVjYXVzZSB0aGF0J3MgZm9jdXMtdHJhcCdzIGRlZmF1bHRcblxuICAgIF90aGlzLnJldHVybkZvY3VzT25EZWFjdGl2YXRlID0gdHJ1ZTtcbiAgICB2YXIgZm9jdXNUcmFwT3B0aW9ucyA9IHByb3BzLmZvY3VzVHJhcE9wdGlvbnM7XG5cbiAgICBmb3IgKHZhciBvcHRpb25OYW1lIGluIGZvY3VzVHJhcE9wdGlvbnMpIHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvY3VzVHJhcE9wdGlvbnMsIG9wdGlvbk5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9uTmFtZSA9PT0gJ3JldHVybkZvY3VzT25EZWFjdGl2YXRlJykge1xuICAgICAgICBfdGhpcy5yZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZSA9ICEhZm9jdXNUcmFwT3B0aW9uc1tvcHRpb25OYW1lXTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25OYW1lID09PSAnb25Qb3N0RGVhY3RpdmF0ZScpIHtcbiAgICAgICAgX3RoaXMub25Qb3N0RGVhY3RpdmF0ZSA9IGZvY3VzVHJhcE9wdGlvbnNbb3B0aW9uTmFtZV07XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy50YWlsb3JlZEZvY3VzVHJhcE9wdGlvbnNbb3B0aW9uTmFtZV0gPSBmb2N1c1RyYXBPcHRpb25zW29wdGlvbk5hbWVdO1xuICAgIH0gLy8gZWxlbWVudHMgZnJvbSB3aGljaCB0byBjcmVhdGUgdGhlIGZvY3VzIHRyYXAgb24gbW91bnQ7IGlmIGEgY2hpbGQgaXMgdXNlZFxuICAgIC8vICBpbnN0ZWFkIG9mIHRoZSBgY29udGFpbmVyRWxlbWVudHNgIHByb3AsIHdlJ2xsIGdldCB0aGUgY2hpbGQncyByZWxhdGVkXG4gICAgLy8gIGVsZW1lbnQgd2hlbiB0aGUgdHJhcCByZW5kZXJzIGFuZCB0aGVuIGlzIGRlY2xhcmVkICdtb3VudGVkJ1xuXG5cbiAgICBfdGhpcy5mb2N1c1RyYXBFbGVtZW50cyA9IHByb3BzLmNvbnRhaW5lckVsZW1lbnRzIHx8IFtdOyAvLyBub3cgd2UgcmVtZW1iZXIgd2hhdCB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCBpcywgbm90IHJlbHlpbmcgb24gZm9jdXMtdHJhcFxuXG4gICAgX3RoaXMudXBkYXRlUHJldmlvdXNFbGVtZW50KCk7XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgdGhlIGNvbmZpZ3VyZWQgZG9jdW1lbnQuXG4gICAqIEByZXR1cm5zIHtEb2N1bWVudHx1bmRlZmluZWR9IENvbmZpZ3VyZWQgZG9jdW1lbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgbWFpblxuICAgKiAgZG9jdW1lbnQsIGlmIGl0IGV4aXN0cy4gRHVyaW5nIFNTUiwgYHVuZGVmaW5lZGAgaXMgcmV0dXJuZWQgc2luY2UgdGhlXG4gICAqICBkb2N1bWVudCBkb2Vzbid0IGV4aXN0LlxuICAgKi9cblxuXG4gIF9jcmVhdGVDbGFzcyhGb2N1c1RyYXAsIFt7XG4gICAga2V5OiBcImdldERvY3VtZW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERvY3VtZW50KCkge1xuICAgICAgLy8gU1NSOiBjYXJlZnVsIHRvIGNoZWNrIGlmIGBkb2N1bWVudGAgZXhpc3RzIGJlZm9yZSBhY2Nlc3NpbmcgaXQgYXMgYSB2YXJpYWJsZVxuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuZm9jdXNUcmFwT3B0aW9ucy5kb2N1bWVudCB8fCAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDogdW5kZWZpbmVkKTtcbiAgICB9IC8vIFRPRE86IE5lZWQgbW9yZSB0ZXN0IGNvdmVyYWdlIGZvciB0aGlzIGZ1bmN0aW9uXG5cbiAgfSwge1xuICAgIGtleTogXCJnZXROb2RlRm9yT3B0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldE5vZGVGb3JPcHRpb24ob3B0aW9uTmFtZSkge1xuICAgICAgdmFyIG9wdGlvblZhbHVlID0gdGhpcy50YWlsb3JlZEZvY3VzVHJhcE9wdGlvbnNbb3B0aW9uTmFtZV07XG5cbiAgICAgIGlmICghb3B0aW9uVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHZhciBub2RlID0gb3B0aW9uVmFsdWU7XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBfdGhpcyRnZXREb2N1bWVudDtcblxuICAgICAgICBub2RlID0gKF90aGlzJGdldERvY3VtZW50ID0gdGhpcy5nZXREb2N1bWVudCgpKSA9PT0gbnVsbCB8fCBfdGhpcyRnZXREb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkZ2V0RG9jdW1lbnQucXVlcnlTZWxlY3RvcihvcHRpb25WYWx1ZSk7XG5cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgcmVmZXJzIHRvIG5vIGtub3duIG5vZGVcIikpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgbm9kZSA9IG9wdGlvblZhbHVlKCk7XG5cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYFwiLmNvbmNhdChvcHRpb25OYW1lLCBcImAgZGlkIG5vdCByZXR1cm4gYSBub2RlXCIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UmV0dXJuRm9jdXNOb2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJldHVybkZvY3VzTm9kZSgpIHtcbiAgICAgIHZhciBub2RlID0gdGhpcy5nZXROb2RlRm9yT3B0aW9uKCdzZXRSZXR1cm5Gb2N1cycpO1xuICAgICAgcmV0dXJuIG5vZGUgPyBub2RlIDogdGhpcy5wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ7XG4gICAgfVxuICAgIC8qKiBVcGRhdGUgdGhlIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50IHdpdGggdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQuICovXG5cbiAgfSwge1xuICAgIGtleTogXCJ1cGRhdGVQcmV2aW91c0VsZW1lbnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdXBkYXRlUHJldmlvdXNFbGVtZW50KCkge1xuICAgICAgdmFyIGN1cnJlbnREb2N1bWVudCA9IHRoaXMuZ2V0RG9jdW1lbnQoKTtcblxuICAgICAgaWYgKGN1cnJlbnREb2N1bWVudCkge1xuICAgICAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGN1cnJlbnREb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZWFjdGl2YXRlVHJhcFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkZWFjdGl2YXRlVHJhcCgpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgX3RoaXMkdGFpbG9yZWRGb2N1c1RyID0gdGhpcy50YWlsb3JlZEZvY3VzVHJhcE9wdGlvbnMsXG4gICAgICAgICAgY2hlY2tDYW5SZXR1cm5Gb2N1cyA9IF90aGlzJHRhaWxvcmVkRm9jdXNUci5jaGVja0NhblJldHVybkZvY3VzLFxuICAgICAgICAgIF90aGlzJHRhaWxvcmVkRm9jdXNUcjIgPSBfdGhpcyR0YWlsb3JlZEZvY3VzVHIucHJldmVudFNjcm9sbCxcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsID0gX3RoaXMkdGFpbG9yZWRGb2N1c1RyMiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfdGhpcyR0YWlsb3JlZEZvY3VzVHIyO1xuXG4gICAgICBpZiAodGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgLy8gTk9URTogd2UgbmV2ZXIgbGV0IHRoZSB0cmFwIHJldHVybiB0aGUgZm9jdXMgc2luY2Ugd2UgZG8gdGhhdCBvdXJzZWx2ZXNcbiAgICAgICAgdGhpcy5mb2N1c1RyYXAuZGVhY3RpdmF0ZSh7XG4gICAgICAgICAgcmV0dXJuRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB2YXIgZmluaXNoRGVhY3RpdmF0aW9uID0gZnVuY3Rpb24gZmluaXNoRGVhY3RpdmF0aW9uKCkge1xuICAgICAgICB2YXIgcmV0dXJuRm9jdXNOb2RlID0gX3RoaXMyLmdldFJldHVybkZvY3VzTm9kZSgpO1xuXG4gICAgICAgIHZhciBjYW5SZXR1cm5Gb2N1cyA9IChyZXR1cm5Gb2N1c05vZGUgPT09IG51bGwgfHwgcmV0dXJuRm9jdXNOb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXR1cm5Gb2N1c05vZGUuZm9jdXMpICYmIF90aGlzMi5yZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZTtcblxuICAgICAgICBpZiAoY2FuUmV0dXJuRm9jdXMpIHtcbiAgICAgICAgICAvKiogUmV0dXJucyBmb2N1cyB0byB0aGUgZWxlbWVudCB0aGF0IGhhZCBmb2N1cyB3aGVuIHRoZSB0cmFwIHdhcyBhY3RpdmF0ZWQuICovXG4gICAgICAgICAgcmV0dXJuRm9jdXNOb2RlLmZvY3VzKHtcbiAgICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHByZXZlbnRTY3JvbGxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdGhpczIub25Qb3N0RGVhY3RpdmF0ZSkge1xuICAgICAgICAgIF90aGlzMi5vblBvc3REZWFjdGl2YXRlLmNhbGwobnVsbCk7IC8vIGRvbid0IGNhbGwgaXQgaW4gY29udGV4dCBvZiBcInRoaXNcIlxuXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmIChjaGVja0NhblJldHVybkZvY3VzKSB7XG4gICAgICAgIGNoZWNrQ2FuUmV0dXJuRm9jdXModGhpcy5nZXRSZXR1cm5Gb2N1c05vZGUoKSkudGhlbihmaW5pc2hEZWFjdGl2YXRpb24sIGZpbmlzaERlYWN0aXZhdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaW5pc2hEZWFjdGl2YXRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2V0dXBGb2N1c1RyYXBcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0dXBGb2N1c1RyYXAoKSB7XG4gICAgICBpZiAoIXRoaXMuZm9jdXNUcmFwKSB7XG4gICAgICAgIHZhciBmb2N1c1RyYXBFbGVtZW50RE9NTm9kZXMgPSB0aGlzLmZvY3VzVHJhcEVsZW1lbnRzLm1hcCggLy8gTk9URTogYGZpbmRET01Ob2RlKClgIGRvZXMgbm90IHN1cHBvcnQgQ1NTIHNlbGVjdG9yczsgaXQnbGwganVzdCByZXR1cm5cbiAgICAgICAgLy8gIGEgbmV3IHRleHQgbm9kZSB3aXRoIHRoZSB0ZXh0IHdyYXBwZWQgaW4gaXQgaW5zdGVhZCBvZiB0cmVhdGluZyB0aGVcbiAgICAgICAgLy8gIHN0cmluZyBhcyBhIHNlbGVjdG9yIGFuZCByZXNvbHZpbmcgaXQgdG8gYSBub2RlIGluIHRoZSBET01cbiAgICAgICAgUmVhY3RET00uZmluZERPTU5vZGUpO1xuICAgICAgICB2YXIgbm9kZXNFeGlzdCA9IGZvY3VzVHJhcEVsZW1lbnRET01Ob2Rlcy5zb21lKEJvb2xlYW4pO1xuXG4gICAgICAgIGlmIChub2Rlc0V4aXN0KSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXMgLS0gX2NyZWF0ZUZvY3VzVHJhcCBpcyBhbiBpbnRlcm5hbCBwcm9wXG4gICAgICAgICAgdGhpcy5mb2N1c1RyYXAgPSB0aGlzLnByb3BzLl9jcmVhdGVGb2N1c1RyYXAoZm9jdXNUcmFwRWxlbWVudERPTU5vZGVzLCB0aGlzLnRhaWxvcmVkRm9jdXNUcmFwT3B0aW9ucyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLmFjdGl2YXRlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5wYXVzZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmFjdGl2ZSkge1xuICAgICAgICB0aGlzLnNldHVwRm9jdXNUcmFwKCk7XG4gICAgICB9IC8vIGVsc2UsIHdhaXQgZm9yIGxhdGVyIGFjdGl2YXRpb24gaW4gY2FzZSB0aGUgYGZvY3VzVHJhcE9wdGlvbnNgIHdpbGwgYmUgdXBkYXRlZFxuICAgICAgLy8gIGFnYWluIGJlZm9yZSB0aGUgdHJhcCBpcyBhY3RpdmF0ZWQgKGUuZy4gaWYgd2FpdGluZyB0byBrbm93IHdoYXQgdGhlIGRvY3VtZW50XG4gICAgICAvLyAgb2JqZWN0IHdpbGwgYmUsIHNvIHRoZSBUcmFwIG11c3QgYmUgcmVuZGVyZWQsIGJ1dCB0aGUgY29uc3VtZXIgaXMgd2FpdGluZyB0b1xuICAgICAgLy8gIGFjdGl2YXRlIHVudGlsIHRoZXkgaGF2ZSBvYnRhaW5lZCB0aGUgZG9jdW1lbnQgZnJvbSBhIHJlZilcbiAgICAgIC8vICBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb2N1cy10cmFwL2ZvY3VzLXRyYXAtcmVhY3QvaXNzdWVzLzUzOVxuXG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAodGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgaWYgKHByZXZQcm9wcy5jb250YWluZXJFbGVtZW50cyAhPT0gdGhpcy5wcm9wcy5jb250YWluZXJFbGVtZW50cykge1xuICAgICAgICAgIHRoaXMuZm9jdXNUcmFwLnVwZGF0ZUNvbnRhaW5lckVsZW1lbnRzKHRoaXMucHJvcHMuY29udGFpbmVyRWxlbWVudHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhc0FjdGl2YXRlZCA9ICFwcmV2UHJvcHMuYWN0aXZlICYmIHRoaXMucHJvcHMuYWN0aXZlO1xuICAgICAgICB2YXIgaGFzRGVhY3RpdmF0ZWQgPSBwcmV2UHJvcHMuYWN0aXZlICYmICF0aGlzLnByb3BzLmFjdGl2ZTtcbiAgICAgICAgdmFyIGhhc1BhdXNlZCA9ICFwcmV2UHJvcHMucGF1c2VkICYmIHRoaXMucHJvcHMucGF1c2VkO1xuICAgICAgICB2YXIgaGFzVW5wYXVzZWQgPSBwcmV2UHJvcHMucGF1c2VkICYmICF0aGlzLnByb3BzLnBhdXNlZDtcblxuICAgICAgICBpZiAoaGFzQWN0aXZhdGVkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVQcmV2aW91c0VsZW1lbnQoKTtcbiAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5hY3RpdmF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0RlYWN0aXZhdGVkKSB7XG4gICAgICAgICAgdGhpcy5kZWFjdGl2YXRlVHJhcCgpO1xuICAgICAgICAgIHJldHVybjsgLy8gdW4vcGF1c2UgZG9lcyBub3RoaW5nIG9uIGFuIGluYWN0aXZlIHRyYXBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNQYXVzZWQpIHtcbiAgICAgICAgICB0aGlzLmZvY3VzVHJhcC5wYXVzZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc1VucGF1c2VkKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c1RyYXAudW5wYXVzZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOT1RFOiBpZiB3ZSdyZSBpbiBgY29tcG9uZW50RGlkVXBkYXRlYCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIHRyYXAgeWV0LFxuICAgICAgICAvLyAgaXQgZWl0aGVyIG1lYW5zIGl0IHNob3VsZG4ndCBiZSBhY3RpdmUsIG9yIGl0IHNob3VsZCBiZSBidXQgbm9uZSBvZlxuICAgICAgICAvLyAgb2YgZ2l2ZW4gYGNvbnRhaW5lckVsZW1lbnRzYCB3ZXJlIHByZXNlbnQgaW4gdGhlIERPTSB0aGUgbGFzdCB0aW1lXG4gICAgICAgIC8vICB3ZSB0cmllZCB0byBjcmVhdGUgdGhlIHRyYXBcbiAgICAgICAgaWYgKHByZXZQcm9wcy5jb250YWluZXJFbGVtZW50cyAhPT0gdGhpcy5wcm9wcy5jb250YWluZXJFbGVtZW50cykge1xuICAgICAgICAgIHRoaXMuZm9jdXNUcmFwRWxlbWVudHMgPSB0aGlzLnByb3BzLmNvbnRhaW5lckVsZW1lbnRzO1xuICAgICAgICB9IC8vIGRvbid0IGNyZWF0ZSB0aGUgdHJhcCB1bmxlc3MgaXQgc2hvdWxkIGJlIGFjdGl2ZSBpbiBjYXNlIHRoZSBjb25zdW1lclxuICAgICAgICAvLyAgaXMgc3RpbGwgdXBkYXRpbmcgYGZvY3VzVHJhcE9wdGlvbnNgXG4gICAgICAgIC8vICBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb2N1cy10cmFwL2ZvY3VzLXRyYXAtcmVhY3QvaXNzdWVzLzUzOVxuXG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYWN0aXZlKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVQcmV2aW91c0VsZW1lbnQoKTtcbiAgICAgICAgICB0aGlzLnNldHVwRm9jdXNUcmFwKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGVUcmFwKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgdmFyIGNoaWxkID0gdGhpcy5wcm9wcy5jaGlsZHJlbiA/IFJlYWN0LkNoaWxkcmVuLm9ubHkodGhpcy5wcm9wcy5jaGlsZHJlbikgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQudHlwZSAmJiBjaGlsZC50eXBlID09PSBSZWFjdC5GcmFnbWVudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBmb2N1cy10cmFwIGNhbm5vdCB1c2UgYSBGcmFnbWVudCBhcyBpdHMgY2hpbGQgY29udGFpbmVyLiBUcnkgcmVwbGFjaW5nIGl0IHdpdGggYSA8ZGl2PiBlbGVtZW50LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNvbXBvc2VkUmVmQ2FsbGJhY2sgPSBmdW5jdGlvbiBjb21wb3NlZFJlZkNhbGxiYWNrKGVsZW1lbnQpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVyRWxlbWVudHMgPSBfdGhpczMucHJvcHMuY29udGFpbmVyRWxlbWVudHM7XG5cbiAgICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGQucmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlZihlbGVtZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQucmVmKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnJlZi5jdXJyZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfdGhpczMuZm9jdXNUcmFwRWxlbWVudHMgPSBjb250YWluZXJFbGVtZW50cyA/IGNvbnRhaW5lckVsZW1lbnRzIDogW2VsZW1lbnRdO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBjaGlsZFdpdGhSZWYgPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICByZWY6IGNvbXBvc2VkUmVmQ2FsbGJhY2tcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjaGlsZFdpdGhSZWY7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBGb2N1c1RyYXA7XG59KFJlYWN0LkNvbXBvbmVudCk7IC8vIHN1cHBvcnQgc2VydmVyLXNpZGUgcmVuZGVyaW5nIHdoZXJlIGBFbGVtZW50YCB3aWxsIG5vdCBiZSBkZWZpbmVkXG5cblxudmFyIEVsZW1lbnRUeXBlID0gdHlwZW9mIEVsZW1lbnQgPT09ICd1bmRlZmluZWQnID8gRnVuY3Rpb24gOiBFbGVtZW50O1xuRm9jdXNUcmFwLnByb3BUeXBlcyA9IHtcbiAgYWN0aXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgcGF1c2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZm9jdXNUcmFwT3B0aW9uczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBkb2N1bWVudDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkFjdGl2YXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblBvc3RBY3RpdmF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2hlY2tDYW5Gb2N1c1RyYXA6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGVhY3RpdmF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25Qb3N0RGVhY3RpdmF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY2hlY2tDYW5SZXR1cm5Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaW5pdGlhbEZvY3VzOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuaW5zdGFuY2VPZihFbGVtZW50VHlwZSksIFByb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMuYm9vbF0pLFxuICAgIGZhbGxiYWNrRm9jdXM6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5pbnN0YW5jZU9mKEVsZW1lbnRUeXBlKSwgUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgICBlc2NhcGVEZWFjdGl2YXRlczogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgY2xpY2tPdXRzaWRlRGVhY3RpdmF0ZXM6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ib29sLCBQcm9wVHlwZXMuZnVuY10pLFxuICAgIHJldHVybkZvY3VzT25EZWFjdGl2YXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzZXRSZXR1cm5Gb2N1czogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmluc3RhbmNlT2YoRWxlbWVudFR5cGUpLCBQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZnVuY10pLFxuICAgIGFsbG93T3V0c2lkZUNsaWNrOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYm9vbCwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgICBwcmV2ZW50U2Nyb2xsOiBQcm9wVHlwZXMuYm9vbFxuICB9KSxcbiAgY29udGFpbmVyRWxlbWVudHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5pbnN0YW5jZU9mKEVsZW1lbnRUeXBlKSksXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuZWxlbWVudCwgLy8gUmVhY3QgZWxlbWVudFxuICBQcm9wVHlwZXMuaW5zdGFuY2VPZihFbGVtZW50VHlwZSkgLy8gRE9NIGVsZW1lbnRcbiAgXSkgLy8gTk9URTogX2NyZWF0ZUZvY3VzVHJhcCBpcyBpbnRlcm5hbCwgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSwgc28gd2UgZG9uJ3RcbiAgLy8gIHNwZWNpZnkgaXQgaGVyZS4gSXQncyBleHBlY3RlZCB0byBiZSBzZXQgdG8gdGhlIGZ1bmN0aW9uIHJldHVybmVkIGZyb21cbiAgLy8gIHJlcXVpcmUoJ2ZvY3VzLXRyYXAnKSwgb3Igb25lIHdpdGggYSBjb21wYXRpYmxlIGludGVyZmFjZS5cblxufTtcbkZvY3VzVHJhcC5kZWZhdWx0UHJvcHMgPSB7XG4gIGFjdGl2ZTogdHJ1ZSxcbiAgcGF1c2VkOiBmYWxzZSxcbiAgZm9jdXNUcmFwT3B0aW9uczoge30sXG4gIF9jcmVhdGVGb2N1c1RyYXA6IGNyZWF0ZUZvY3VzVHJhcFxufTtcbm1vZHVsZS5leHBvcnRzID0gRm9jdXNUcmFwOyIsImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbi8vIFBhcmFtZXRlciBpcyB0aGUgYm9vbGVhbiwgd2l0aCBkZWZhdWx0IFwiZmFsc2VcIiB2YWx1ZVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlVG9nZ2xlKGluaXRpYWxTdGF0ZSA9IGZhbHNlKTogW2Jvb2xlYW4sIChuZXh0U3RhdGU/OiBib29sZWFuKSA9PiB2b2lkXSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIHN0YXRlXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcblxuICAvLyBEZWZpbmUgYW5kIG1lbW9yaXplIHRvZ2dsZXIgZnVuY3Rpb24gaW4gY2FzZSB3ZSBwYXNzIGRvd24gdGhlIGNvbW9wbmVudCxcbiAgLy8gVGhpcyBmdW5jdGlvbiBjaGFuZ2UgdGhlIGJvb2xlYW4gdmFsdWUgdG8gaXQncyBvcHBvc2l0ZSB2YWx1ZVxuICBjb25zdCB0b2dnbGUgPSB1c2VDYWxsYmFjaygobmV4dFN0YXRlPzogYm9vbGVhbikgPT4ge1xuICAgIGlmIChuZXh0U3RhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2V0U3RhdGUobmV4dFN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U3RhdGUoKHN0YXRlKSA9PiAhc3RhdGUpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIHJldHVybiBbc3RhdGUsIHRvZ2dsZV07XG59XG4iLCJpbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuLi9zdG9yZXMvYXBwQ29udGV4dCc7XG5pbXBvcnQge2dsb2JhbFN0YXRlU2VydmljZSwgbG9jYXRpb25TZXJ2aWNlLCBtZW1vU2VydmljZSwgcmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQge3N0b3JhZ2V9IGZyb20gJy4uL2hlbHBlcnMvc3RvcmFnZSc7XG5pbXBvcnQgRWRpdG9yLCB7RWRpdG9yUmVmQWN0aW9uc30gZnJvbSAnLi9FZGl0b3IvRWRpdG9yJztcbmltcG9ydCAnLi4vbGVzcy9tZW1vLWVkaXRvci5sZXNzJztcbmltcG9ydCAnLi4vbGVzcy9zZWxlY3QtZGF0ZS1waWNrZXIubGVzcyc7XG5pbXBvcnQgdGFnIGZyb20gJy4uL2ljb25zL3RhZy5zdmcnO1xuaW1wb3J0IGltYWdlU3ZnIGZyb20gJy4uL2ljb25zL2ltYWdlLnN2Zyc7XG5pbXBvcnQgdGFza1N2ZyBmcm9tICcuLi9pY29ucy90YXNrLnN2Zyc7XG5pbXBvcnQgc2hvd0VkaXRvclN2ZyBmcm9tICcuLi9pY29ucy9zaG93LWVkaXRvci5zdmcnO1xuaW1wb3J0IGpvdXJuYWxTdmcgZnJvbSAnLi4vaWNvbnMvam91cm5hbC5zdmcnO1xuaW1wb3J0IHtEYXlQaWNrZXJ9IGZyb20gJ3JlYWN0LWRheS1waWNrZXInO1xuaW1wb3J0IHt1c2VQb3BwZXJ9IGZyb20gJ3JlYWN0LXBvcHBlcic7XG4vLyBpbXBvcnQgeyBjcmVhdGVQb3BwZXIgfSBmcm9tICdAcG9wcGVyanMvY29yZSdcbi8vIGltcG9ydCB7IGZvcm1hdCwgaXNWYWxpZCwgcGFyc2UgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgRm9jdXNUcmFwIGZyb20gJ2ZvY3VzLXRyYXAtcmVhY3QnO1xuaW1wb3J0IHttb21lbnR9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7RGVmYXVsdEVkaXRvckxvY2F0aW9uLCBEZWZhdWx0UHJlZml4LCBJbnNlcnREYXRlRm9ybWF0LCBVc2VCdXR0b25Ub1Nob3dFZGl0b3J9IGZyb20gJy4uL21lbW9zJztcbmltcG9ydCB1c2VUb2dnbGUgZnJvbSAnLi4vaG9va3MvdXNlVG9nZ2xlJztcbi8vIGltcG9ydCBkYWlseU5vdGVzU2VydmljZSBmcm9tICcuLi9zZXJ2aWNlcy9kYWlseU5vdGVzU2VydmljZSc7XG4vLyBpbXBvcnQgeyBUYWdzU3VnZ2VzdCB9IGZyb20gXCIuLi9vYkNvbXBvbmVudHMvb2JUYWdTdWdnZXN0ZXJcIjtcbmltcG9ydCB7Tm90aWNlLCBQbGF0Zm9ybX0gZnJvbSAnb2JzaWRpYW4nO1xuXG5jb25zdCBnZXRDdXJzb3JQb3N0aW9uID0gKGlucHV0OiBIVE1MVGV4dEFyZWFFbGVtZW50KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBvZmZzZXRMZWZ0OiBpbnB1dFgsXG4gICAgb2Zmc2V0VG9wOiBpbnB1dFksXG4gICAgb2Zmc2V0SGVpZ2h0OiBpbnB1dEgsXG4gICAgb2Zmc2V0V2lkdGg6IGlucHV0VyxcbiAgICBzZWxlY3Rpb25FbmQ6IHNlbGVjdGlvblBvaW50LFxuICB9ID0gaW5wdXQ7XG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gIGNvbnN0IGNvcHlTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlucHV0KTtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGNvcHlTdHlsZSkge1xuICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShpdGVtLCBjb3B5U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShpdGVtKSk7XG4gIH1cbiAgZGl2LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgZGl2LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgZGl2LnN0eWxlLndoaXRlU3BhY2UgPSAncHJlLXdyYXAnO1xuXG4gIC8vIHdlIG5lZWQgYSBjaGFyYWN0ZXIgdGhhdCB3aWxsIHJlcGxhY2Ugd2hpdGVzcGFjZSB3aGVuIGZpbGxpbmcgb3VyIGR1bW15IGVsZW1lbnQgaWYgaXQncyBhIHNpbmdsZSBsaW5lIDxpbnB1dC8+XG4gIGNvbnN0IHN3YXAgPSAnLic7XG4gIGNvbnN0IGlucHV0VmFsdWUgPSBpbnB1dC50YWdOYW1lID09PSAnSU5QVVQnID8gaW5wdXQudmFsdWUucmVwbGFjZSgvIC9nLCBzd2FwKSA6IGlucHV0LnZhbHVlO1xuICBjb25zdCB0ZXh0Q29udGVudCA9IGlucHV0VmFsdWUuc3Vic3RyaW5nKDAsIHNlbGVjdGlvblBvaW50IHx8IDApO1xuICBkaXYudGV4dENvbnRlbnQgPSB0ZXh0Q29udGVudDtcbiAgaWYgKGlucHV0LnRhZ05hbWUgPT09ICdURVhUQVJFQScpIHtcbiAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICB9XG5cbiAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgc3Bhbi50ZXh0Q29udGVudCA9IGlucHV0VmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblBvaW50IHx8IDApIHx8ICcuJztcbiAgZGl2LmFwcGVuZENoaWxkKHNwYW4pO1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gIGNvbnN0IHtvZmZzZXRMZWZ0OiBzcGFuWCwgb2Zmc2V0VG9wOiBzcGFuWSwgb2Zmc2V0SGVpZ2h0OiBzcGFuSCwgb2Zmc2V0V2lkdGg6IHNwYW5XfSA9IHNwYW47XG4gIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTtcbiAgcmV0dXJuIHtcbiAgICB4OiBpbnB1dFggKyBzcGFuWCxcbiAgICB5OiBpbnB1dFkgKyBzcGFuWSxcbiAgICBoOiBpbnB1dEggKyBzcGFuSCxcbiAgICB3OiBpbnB1dFcgKyBzcGFuVyxcbiAgfTtcbn07XG5cbmludGVyZmFjZSBQcm9wcyB7fVxuXG5sZXQgaXNMaXN0OiBib29sZWFuO1xubGV0IGlzRWRpdG9yID0gZmFsc2UgYXMgYm9vbGVhbjtcbmxldCBpc0VkaXRvckdvID0gdHJ1ZSBhcyBib29sZWFuO1xubGV0IHBvc2l0aW9uWDogbnVtYmVyO1xuXG5jb25zdCBNZW1vRWRpdG9yOiBSZWFjdC5GQzxQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IHtnbG9iYWxTdGF0ZX0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBjb25zdCBbaXNMaXN0U2hvd24sIHRvZ2dsZUxpc3RdID0gdXNlVG9nZ2xlKGZhbHNlKTtcbiAgY29uc3QgW2lzRWRpdG9yU2hvd24sIHRvZ2dsZUVkaXRvcl0gPSB1c2VUb2dnbGUoZmFsc2UpO1xuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VSZWY8RWRpdG9yUmVmQWN0aW9ucz4obnVsbCk7XG4gIGNvbnN0IHByZXZHbG9iYWxTdGF0ZVJlZiA9IHVzZVJlZihnbG9iYWxTdGF0ZSk7XG4gIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGU8RGF0ZT4oKTtcbiAgY29uc3QgW2lzUG9wcGVyT3Blbiwgc2V0SXNQb3BwZXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBwb3BwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbcG9wcGVyRWxlbWVudCwgc2V0UG9wcGVyRWxlbWVudF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgbGV0IHBvcHBlcjtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoRGVmYXVsdFByZWZpeCA9PT0gJ0xpc3QnKSB7XG4gICAgICBpc0xpc3QgPSBmYWxzZTtcbiAgICAgIHRvZ2dsZUxpc3QoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpc0xpc3QgPSB0cnVlO1xuICAgICAgdG9nZ2xlTGlzdCh0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChQbGF0Zm9ybS5pc01vYmlsZSAhPT0gdHJ1ZSB8fCB3aW5kb3cuaW5uZXJXaWR0aCA+IDg3NSkge1xuICAgICAgaGFuZGxlU2hvd0VkaXRvcigpO1xuICAgIH1cbiAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIFVzZUJ1dHRvblRvU2hvd0VkaXRvciA9PT0gdHJ1ZSAmJlxuICAgICAgRGVmYXVsdEVkaXRvckxvY2F0aW9uID09PSAnQm90dG9tJyAmJlxuICAgICAgUGxhdGZvcm0uaXNNb2JpbGUgPT09IHRydWUgJiZcbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIDwgODc1XG4gICAgKSB7XG4gICAgICBjb25zdCBkaXZUaGlzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgICBjb25zdCBtZW1vRWRpdG9yRGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCJkaXZbZGF0YS10eXBlPSdtZW1vc192aWV3J10gLnZpZXctY29udGVudCAubWVtby1lZGl0b3Itd3JhcHBlclwiLFxuICAgICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGRpdlRoaXMuc3JjID0gYCR7c2hvd0VkaXRvclN2Z31gO1xuICAgICAgaWYgKGlzRWRpdG9yU2hvd24pIHtcbiAgICAgICAgZGl2VGhpcy5jbGFzc05hbWUgPSAnbWVtby1zaG93LWVkaXRvci1idXR0b24gaGlkZGVuJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpdlRoaXMuY2xhc3NOYW1lID0gJ21lbW8tc2hvdy1lZGl0b3ItYnV0dG9uJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJ1dHRvblRvcCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIDIwMDtcbiAgICAgIGNvbnN0IGJ1dHRvbkxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAvIDIgLSAyNTtcbiAgICAgIGRpdlRoaXMuc3R5bGUudG9wID0gYnV0dG9uVG9wICsgJ3B4JztcbiAgICAgIGRpdlRoaXMuc3R5bGUubGVmdCA9IGJ1dHRvbkxlZnQgKyAncHgnO1xuXG4gICAgICBkaXZUaGlzLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBzY2FsZUVsZW1lbnRBbmkgPSBkaXZUaGlzLmFuaW1hdGUoXG4gICAgICAgICAgW1xuICAgICAgICAgICAgLy8ga2V5ZnJhbWVzXG4gICAgICAgICAgICB7dHJhbnNmb3JtOiAncm90YXRlKDBkZWcpIHNjYWxlKDEpJ30sXG4gICAgICAgICAgICB7dHJhbnNmb3JtOiAncm90YXRlKDYwZGVnKSBzY2FsZSgxLjUpJ30sXG4gICAgICAgICAgXSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyB0aW1pbmcgb3B0aW9uc1xuICAgICAgICAgICAgZHVyYXRpb246IDMwMCxcbiAgICAgICAgICAgIGl0ZXJhdGlvbnM6IEluZmluaXR5LFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgZGl2VGhpcy5jbGFzc05hbWUgPSAnbWVtby1zaG93LWVkaXRvci1idXR0b24gaGlkZGVuJztcbiAgICAgICAgICBoYW5kbGVTaG93RWRpdG9yKHRydWUpO1xuICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgIHNjYWxlRWxlbWVudEFuaS5yZXZlcnNlKCk7XG4gICAgICAgICAgLy8gcm90YXRlRWxlbWVudEFuaS5wYXVzZSgpO1xuICAgICAgICB9LCAzMDApO1xuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXZbZGF0YS10eXBlPSdtZW1vc192aWV3J10gLnZpZXctY29udGVudCAuY29udGVudC13cmFwcGVyXCIpLnByZXBlbmQoZGl2VGhpcyk7XG5cbiAgICAgIGNvbnN0IG1lbW9saXN0U2Nyb2xsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCJkaXZbZGF0YS10eXBlPSdtZW1vc192aWV3J10gLnZpZXctY29udGVudCAubWVtb2xpc3Qtd3JhcHBlclwiLFxuICAgICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIG1lbW9saXN0U2Nyb2xsLm9uc2Nyb2xsID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoaXNFZGl0b3IgJiYgaXNFZGl0b3JHbykge1xuICAgICAgICAgIGlzRWRpdG9yR28gPSBmYWxzZTtcbiAgICAgICAgICBsZXQgc2NhbGVFZGl0b3JFbGVtZW50QW5pID0gbWVtb0VkaXRvckRpdi5hbmltYXRlKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAvLyBrZXlmcmFtZXNcbiAgICAgICAgICAgICAge3RyYW5zZm9ybTogJ3NjYWxlKDEpJywgb3BhY2l0eTogMX0sXG4gICAgICAgICAgICAgIHt0cmFuc2Zvcm06ICdzY2FsZSgwLjQpJywgb3BhY2l0eTogMH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvLyB0aW1pbmcgb3B0aW9uc1xuICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwLFxuICAgICAgICAgICAgICBpdGVyYXRpb25zOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGxldCBzY2FsZU9uZUVsZW1lbnRBbmk6IEFuaW1hdGlvbjtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHNjYWxlT25lRWxlbWVudEFuaSA9IGRpdlRoaXMuYW5pbWF0ZShcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIC8vIGtleWZyYW1lc1xuICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06ICdyb3RhdGUoMjBkZWcpIHNjYWxlKDEuNSknfSxcbiAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiAncm90YXRlKDBkZWcpIHNjYWxlKDEpJ30sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyB0aW1pbmcgb3B0aW9uc1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxMDAsXG4gICAgICAgICAgICAgICAgaXRlcmF0aW9uczogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGhhbmRsZVNob3dFZGl0b3IoZmFsc2UpO1xuICAgICAgICAgICAgZGl2VGhpcy5jbGFzc05hbWUgPSAnbWVtby1zaG93LWVkaXRvci1idXR0b24nO1xuICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzY2FsZU9uZUVsZW1lbnRBbmkuY2FuY2VsKCk7XG4gICAgICAgICAgICBzY2FsZUVkaXRvckVsZW1lbnRBbmkucmV2ZXJzZSgpO1xuICAgICAgICAgIH0sIDcwMCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIFVzZUJ1dHRvblRvU2hvd0VkaXRvciA9PT0gZmFsc2UgJiZcbiAgICAgIERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gJ0JvdHRvbScgJiZcbiAgICAgIFBsYXRmb3JtLmlzTW9iaWxlID09PSB0cnVlICYmXG4gICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8IDg3NVxuICAgICkge1xuICAgICAgaGFuZGxlU2hvd0VkaXRvcih0cnVlKTtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVTaG93RWRpdG9yKHRydWUpO1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgaWYgKCFQbGF0Zm9ybS5pc01vYmlsZSkge1xuICAgIHBvcHBlciA9IHVzZVBvcHBlcihwb3BwZXJSZWYuY3VycmVudCwgcG9wcGVyRWxlbWVudCwge1xuICAgICAgcGxhY2VtZW50OiAncmlnaHQtZW5kJyxcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2ZsaXAnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWydib3R0b20nXSxcbiAgICAgICAgICAgIHJvb3RCb3VuZGFyeTogJ2RvY3VtZW50JywgLy8gYnkgZGVmYXVsdCwgYWxsIHRoZSBwbGFjZW1lbnRzIGFyZSBhbGxvd2VkXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoUGxhdGZvcm0uaXNNb2JpbGUgJiYgRGVmYXVsdEVkaXRvckxvY2F0aW9uICE9PSAnQm90dG9tJykge1xuICAgIGNvbnN0IHNlbGV0b3JQb3B1cFdpZHRoID0gMjgwO1xuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCAtIHBvc2l0aW9uWCA+IHNlbGV0b3JQb3B1cFdpZHRoICogMS4yKSB7XG4gICAgICBwb3BwZXIgPSB1c2VQb3BwZXIocG9wcGVyUmVmLmN1cnJlbnQsIHBvcHBlckVsZW1lbnQsIHtcbiAgICAgICAgcGxhY2VtZW50OiAncmlnaHQtZW5kJyxcbiAgICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZsaXAnLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IFsnbGVmdC1lbmQnXSxcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLCAvLyBieSBkZWZhdWx0LCBhbGwgdGhlIHBsYWNlbWVudHMgYXJlIGFsbG93ZWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCAtIHBvc2l0aW9uWCA8IHNlbGV0b3JQb3B1cFdpZHRoKSB7XG4gICAgICBwb3BwZXIgPSB1c2VQb3BwZXIocG9wcGVyUmVmLmN1cnJlbnQsIHBvcHBlckVsZW1lbnQsIHtcbiAgICAgICAgcGxhY2VtZW50OiAnbGVmdC1lbmQnLFxuICAgICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmxpcCcsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWydyaWdodC1lbmQnXSxcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLCAvLyBieSBkZWZhdWx0LCBhbGwgdGhlIHBsYWNlbWVudHMgYXJlIGFsbG93ZWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcHBlciA9IHVzZVBvcHBlcihwb3BwZXJSZWYuY3VycmVudCwgcG9wcGVyRWxlbWVudCwge1xuICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmxpcCcsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWydib3R0b20nXSxcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLCAvLyBieSBkZWZhdWx0LCBhbGwgdGhlIHBsYWNlbWVudHMgYXJlIGFsbG93ZWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKFBsYXRmb3JtLmlzTW9iaWxlICYmIERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gJ0JvdHRvbScpIHtcbiAgICBjb25zdCBzZWxldG9yUG9wdXBXaWR0aCA9IDI4MDtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggLSBwb3NpdGlvblggPiBzZWxldG9yUG9wdXBXaWR0aCAqIDEuMikge1xuICAgICAgcG9wcGVyID0gdXNlUG9wcGVyKHBvcHBlclJlZi5jdXJyZW50LCBwb3BwZXJFbGVtZW50LCB7XG4gICAgICAgIHBsYWNlbWVudDogJ3RvcC1lbmQnLFxuICAgICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmxpcCcsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIGFsbG93ZWRBdXRvUGxhY2VtZW50czogWyd0b3Atc3RhcnQnXSxcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLCAvLyBieSBkZWZhdWx0LCBhbGwgdGhlIHBsYWNlbWVudHMgYXJlIGFsbG93ZWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCAtIHBvc2l0aW9uWCA8IHNlbGV0b3JQb3B1cFdpZHRoICYmIHBvc2l0aW9uWCA+IHNlbGV0b3JQb3B1cFdpZHRoKSB7XG4gICAgICBwb3BwZXIgPSB1c2VQb3BwZXIocG9wcGVyUmVmLmN1cnJlbnQsIHBvcHBlckVsZW1lbnQsIHtcbiAgICAgICAgcGxhY2VtZW50OiAndG9wLXN0YXJ0JyxcbiAgICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZsaXAnLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IFsndG9wLWVuZCddLFxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsIC8vIGJ5IGRlZmF1bHQsIGFsbCB0aGUgcGxhY2VtZW50cyBhcmUgYWxsb3dlZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9wcGVyID0gdXNlUG9wcGVyKHBvcHBlclJlZi5jdXJyZW50LCBwb3BwZXJFbGVtZW50LCB7XG4gICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXG4gICAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzOiBbJ3RvcCddLFxuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsIC8vIGJ5IGRlZmF1bHQsIGFsbCB0aGUgcGxhY2VtZW50cyBhcmUgYWxsb3dlZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICByb290Qm91bmRhcnk6ICdkb2N1bWVudCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gcG9wcGVyID0gdXNlUG9wcGVyKHBvcHBlclJlZi5jdXJyZW50LCBwb3BwZXJFbGVtZW50LCB7XG4gICAgLy8gICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgIC8vICAgbW9kaWZpZXJzOiBbXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICBuYW1lOiAnZmxpcCcsXG4gICAgLy8gICAgICAgb3B0aW9uczoge1xuICAgIC8vICAgICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzOiBbJ3RvcCddLFxuICAgIC8vICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLCAvLyBieSBkZWZhdWx0LCBhbGwgdGhlIHBsYWNlbWVudHMgYXJlIGFsbG93ZWRcbiAgICAvLyAgICAgICB9LFxuICAgIC8vICAgICB9LFxuICAgIC8vICAgICB7XG4gICAgLy8gICAgICAgbmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXG4gICAgLy8gICAgICAgb3B0aW9uczoge1xuICAgIC8vICAgICAgICAgcm9vdEJvdW5kYXJ5OiAnZG9jdW1lbnQnLFxuICAgIC8vICAgICAgIH0sXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICBdLFxuICAgIC8vIH0pO1xuICB9XG5cbiAgY29uc3QgY2xvc2VQb3BwZXIgPSAoKSA9PiB7XG4gICAgc2V0SXNQb3BwZXJPcGVuKGZhbHNlKTtcbiAgICAvLyBidXR0b25SZWY/LmN1cnJlbnQ/LmZvY3VzKCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsU3RhdGUubWFya01lbW9JZCkge1xuICAgICAgY29uc3QgZWRpdG9yQ3VycmVudFZhbHVlID0gZWRpdG9yUmVmLmN1cnJlbnQ/LmdldENvbnRlbnQoKTtcbiAgICAgIGNvbnN0IG1lbW9MaW5rVGV4dCA9IGAke2VkaXRvckN1cnJlbnRWYWx1ZSA/ICdcXG4nIDogJyd9TWFyazogW0BNRU1PXSgke2dsb2JhbFN0YXRlLm1hcmtNZW1vSWR9KWA7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0VGV4dChtZW1vTGlua1RleHQpO1xuICAgICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldE1hcmtNZW1vSWQoJycpO1xuICAgIH1cblxuICAgIGlmIChnbG9iYWxTdGF0ZS5lZGl0TWVtb0lkICYmIGdsb2JhbFN0YXRlLmVkaXRNZW1vSWQgIT09IHByZXZHbG9iYWxTdGF0ZVJlZi5jdXJyZW50LmVkaXRNZW1vSWQpIHtcbiAgICAgIGNvbnN0IGVkaXRNZW1vID0gbWVtb1NlcnZpY2UuZ2V0TWVtb0J5SWQoZ2xvYmFsU3RhdGUuZWRpdE1lbW9JZCk7XG4gICAgICBpZiAoZWRpdE1lbW8pIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnNldENvbnRlbnQoZWRpdE1lbW8uY29udGVudC5yZXBsYWNlKC9cXDxiclxcPi9nLCAnXFxuJykgPz8gJycpO1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcmV2R2xvYmFsU3RhdGVSZWYuY3VycmVudCA9IGdsb2JhbFN0YXRlO1xuICB9LCBbZ2xvYmFsU3RhdGUubWFya01lbW9JZCwgZ2xvYmFsU3RhdGUuZWRpdE1lbW9JZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG5ldyBUYWdzU3VnZ2VzdChhcHAsIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQpO1xuXG4gICAgY29uc3QgaGFuZGxlUGFzdGVFdmVudCA9IGFzeW5jIChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5jbGlwYm9hcmREYXRhICYmIGV2ZW50LmNsaXBib2FyZERhdGEuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBmaWxlID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5maWxlc1swXTtcbiAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgaGFuZGxlVXBsb2FkRmlsZShmaWxlKTtcbiAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5pbnNlcnRUZXh0KHVybCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRHJvcEV2ZW50ID0gYXN5bmMgKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXTtcbiAgICAgICAgY29uc3QgdXJsID0gYXdhaXQgaGFuZGxlVXBsb2FkRmlsZShmaWxlKTtcbiAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5pbnNlcnRUZXh0KHVybCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2xpY2tFdmVudCA9ICgpID0+IHtcbiAgICAgIGhhbmRsZUNvbnRlbnRDaGFuZ2UoZWRpdG9yUmVmLmN1cnJlbnQ/LmVsZW1lbnQudmFsdWUgPz8gJycpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duRXZlbnQgPSAoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaGFuZGxlQ29udGVudENoYW5nZShlZGl0b3JSZWYuY3VycmVudD8uZWxlbWVudC52YWx1ZSA/PyAnJyk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIGhhbmRsZVBhc3RlRXZlbnQpO1xuICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIGhhbmRsZURyb3BFdmVudCk7XG4gICAgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrRXZlbnQpO1xuICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd25FdmVudCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFzdGUnLCBoYW5kbGVQYXN0ZUV2ZW50KTtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBoYW5kbGVEcm9wRXZlbnQpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVVcGxvYWRGaWxlID0gdXNlQ2FsbGJhY2soYXN5bmMgKGZpbGU6IEZpbGUpID0+IHtcbiAgICBjb25zdCB7dHlwZX0gPSBmaWxlO1xuXG4gICAgaWYgKCF0eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaW1hZ2UgPSBhd2FpdCByZXNvdXJjZVNlcnZpY2UudXBsb2FkKGZpbGUpO1xuICAgICAgY29uc3QgdXJsID0gYCR7aW1hZ2V9YDtcblxuICAgICAgcmV0dXJuIHVybDtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBuZXcgTm90aWNlKGVycm9yKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVTYXZlQnRuQ2xpY2sgPSB1c2VDYWxsYmFjayhhc3luYyAoY29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGNvbnRlbnQgPT09ICcnKSB7XG4gICAgICBuZXcgTm90aWNlKCflhoXlrrnkuI3og73kuLrnqbrlkYAnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7ZWRpdE1lbW9JZH0gPSBnbG9iYWxTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKTtcbiAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlQWxsKCcmbmJzcDsnLCAnICcpO1xuXG4gICAgc2V0RWRpdG9yQ29udGVudENhY2hlKCcnKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGVkaXRNZW1vSWQpIHtcbiAgICAgICAgY29uc3QgcHJldk1lbW8gPSBtZW1vU2VydmljZS5nZXRNZW1vQnlJZChlZGl0TWVtb0lkKTtcbiAgICAgICAgaWYgKHByZXZNZW1vICYmIHByZXZNZW1vLmNvbnRlbnQgIT09IGNvbnRlbnQpIHtcbiAgICAgICAgICBjb25zdCBlZGl0ZWRNZW1vID0gYXdhaXQgbWVtb1NlcnZpY2UudXBkYXRlTWVtbyhwcmV2TWVtby5pZCwgcHJldk1lbW8uY29udGVudCwgY29udGVudCwgcHJldk1lbW8ubWVtb1R5cGUpO1xuICAgICAgICAgIGVkaXRlZE1lbW8udXBkYXRlZEF0ID0gdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcoRGF0ZS5ub3coKSk7XG4gICAgICAgICAgbWVtb1NlcnZpY2UuZWRpdE1lbW8oZWRpdGVkTWVtbyk7XG4gICAgICAgIH1cbiAgICAgICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEVkaXRNZW1vSWQoJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3TWVtbyA9IGF3YWl0IG1lbW9TZXJ2aWNlLmNyZWF0ZU1lbW8oY29udGVudCwgaXNMaXN0KTtcbiAgICAgICAgbWVtb1NlcnZpY2UucHVzaE1lbW8obmV3TWVtbyk7XG4gICAgICAgIC8vIG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKTtcbiAgICAgICAgbG9jYXRpb25TZXJ2aWNlLmNsZWFyUXVlcnkoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBuZXcgTm90aWNlKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHNldEVkaXRvckNvbnRlbnRDYWNoZSgnJyk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVDYW5jZWxCdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0RWRpdE1lbW9JZCgnJyk7XG4gICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnNldENvbnRlbnQoJycpO1xuICAgIHNldEVkaXRvckNvbnRlbnRDYWNoZSgnJyk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVDb250ZW50Q2hhbmdlID0gdXNlQ2FsbGJhY2soKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0ZW1wRGl2LmlubmVySFRNTCA9IGNvbnRlbnQ7XG4gICAgaWYgKHRlbXBEaXYuaW5uZXJUZXh0LnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIGNvbnRlbnQgPSAnJztcbiAgICB9XG4gICAgc2V0RWRpdG9yQ29udGVudENhY2hlKGNvbnRlbnQpO1xuXG4gICAgaWYgKGVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBlZGl0b3JSZWYuY3VycmVudC5nZXRDb250ZW50KCk7XG4gICAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICBjb25zdCBwcmV2U3RyaW5nID0gY3VycmVudFZhbHVlLnNsaWNlKDAsIHNlbGVjdGlvblN0YXJ0KTtcbiAgICAgIGNvbnN0IG5leHRTdHJpbmcgPSBjdXJyZW50VmFsdWUuc2xpY2Uoc2VsZWN0aW9uU3RhcnQpO1xuXG4gICAgICBpZiAoKHByZXZTdHJpbmcuZW5kc1dpdGgoJ0AnKSB8fCBwcmV2U3RyaW5nLmVuZHNXaXRoKCfwn5OGJykpICYmIG5leHRTdHJpbmcuc3RhcnRzV2l0aCgnICcpKSB7XG4gICAgICAgIHVwZGF0ZURhdGVTZWxlY3RvclBvcHVwUG9zaXRpb24oKTtcbiAgICAgICAgc2V0SXNQb3BwZXJPcGVuKHRydWUpO1xuICAgICAgfSBlbHNlIGlmICgocHJldlN0cmluZy5lbmRzV2l0aCgnQCcpIHx8IHByZXZTdHJpbmcuZW5kc1dpdGgoJ/Cfk4YnKSkgJiYgbmV4dFN0cmluZyA9PT0gJycpIHtcbiAgICAgICAgdXBkYXRlRGF0ZVNlbGVjdG9yUG9wdXBQb3NpdGlvbigpO1xuICAgICAgICBzZXRJc1BvcHBlck9wZW4odHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJc1BvcHBlck9wZW4oZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVEYXRlSW5zZXJ0VHJpZ2dlciA9IChkYXRlOiBEYXRlKSA9PiB7XG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChkYXRlKSB7XG4gICAgICBjbG9zZVBvcHBlcigpO1xuICAgICAgaXNMaXN0ID0gdHJ1ZTtcbiAgICAgIHRvZ2dsZUxpc3QodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBlZGl0b3JSZWYuY3VycmVudC5nZXRDb250ZW50KCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IHByZXZTdHJpbmcgPSBjdXJyZW50VmFsdWUuc2xpY2UoMCwgc2VsZWN0aW9uU3RhcnQpO1xuICAgIGNvbnN0IG5leHRTdHJpbmcgPSBjdXJyZW50VmFsdWUuc2xpY2Uoc2VsZWN0aW9uU3RhcnQpO1xuICAgIGNvbnN0IHRvZGF5TW9tZW50ID0gbW9tZW50KGRhdGUpO1xuXG4gICAgaWYgKCFlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcmV2U3RyaW5nLmVuZHNXaXRoKCdAJykpIHtcbiAgICAgIGlmIChJbnNlcnREYXRlRm9ybWF0ID09PSAnRGF0YXZpZXcnKSB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQudmFsdWUgPVxuICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgY3VycmVudFZhbHVlLnNsaWNlKDAsIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgLSAxKSArXG4gICAgICAgICAgJ1tkdWU6OicgK1xuICAgICAgICAgIHRvZGF5TW9tZW50LmZvcm1hdCgnWVlZWS1NTS1ERCcpICtcbiAgICAgICAgICAnXScgK1xuICAgICAgICAgIG5leHRTdHJpbmc7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQgKyAxNywgc2VsZWN0aW9uU3RhcnQgKyAxNyk7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgIGhhbmRsZUNvbnRlbnRDaGFuZ2UoZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC52YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEluc2VydERhdGVGb3JtYXQgPT09ICdUYXNrcycpIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC52YWx1ZSA9XG4gICAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICBjdXJyZW50VmFsdWUuc2xpY2UoMCwgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5zZWxlY3Rpb25TdGFydCAtIDEpICtcbiAgICAgICAgICAn8J+ThicgK1xuICAgICAgICAgIHRvZGF5TW9tZW50LmZvcm1hdCgnWVlZWS1NTS1ERCcpICtcbiAgICAgICAgICBuZXh0U3RyaW5nO1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0ICsgMTEsIHNlbGVjdGlvblN0YXJ0ICsgMTEpO1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgICBoYW5kbGVDb250ZW50Q2hhbmdlKGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQudmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnZhbHVlID1cbiAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgcHJldlN0cmluZyArIHRvZGF5TW9tZW50LmZvcm1hdCgnWVlZWS1NTS1ERCcpICsgbmV4dFN0cmluZztcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQgKyAxMCwgc2VsZWN0aW9uU3RhcnQgKyAxMCk7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgaGFuZGxlQ29udGVudENoYW5nZShlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlU3RhdHVzID0gKCkgPT4ge1xuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNMaXN0KSB7XG4gICAgICBpc0xpc3QgPSBmYWxzZTtcbiAgICAgIHRvZ2dsZUxpc3QoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpc0xpc3QgPSB0cnVlO1xuICAgICAgdG9nZ2xlTGlzdCh0cnVlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2hvd0VkaXRvciA9IChmbGFnPzogYm9vbGVhbikgPT4ge1xuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzRWRpdG9yIHx8IGZsYWcgPT09IHRydWUpIHtcbiAgICAgIGlzRWRpdG9yID0gdHJ1ZTtcbiAgICAgIHRvZ2dsZUVkaXRvcih0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXNFZGl0b3IgPSBmYWxzZTtcbiAgICAgIGlzRWRpdG9yR28gPSB0cnVlO1xuICAgICAgdG9nZ2xlRWRpdG9yKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVGFnVGV4dEJ0bkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBlZGl0b3JSZWYuY3VycmVudC5nZXRDb250ZW50KCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IHByZXZTdHJpbmcgPSBjdXJyZW50VmFsdWUuc2xpY2UoMCwgc2VsZWN0aW9uU3RhcnQpO1xuICAgIGNvbnN0IG5leHRTdHJpbmcgPSBjdXJyZW50VmFsdWUuc2xpY2Uoc2VsZWN0aW9uU3RhcnQpO1xuXG4gICAgbGV0IG5leHRWYWx1ZSA9IHByZXZTdHJpbmcgKyAnIyAnICsgbmV4dFN0cmluZztcbiAgICBsZXQgY3Vyc29ySW5kZXggPSBwcmV2U3RyaW5nLmxlbmd0aCArIDE7XG5cbiAgICBpZiAocHJldlN0cmluZy5lbmRzV2l0aCgnIycpICYmIG5leHRTdHJpbmcuc3RhcnRzV2l0aCgnICcpKSB7XG4gICAgICBuZXh0VmFsdWUgPSBwcmV2U3RyaW5nLnNsaWNlKDAsIHByZXZTdHJpbmcubGVuZ3RoIC0gMSkgKyBuZXh0U3RyaW5nLnNsaWNlKDEpO1xuICAgICAgY3Vyc29ySW5kZXggPSBwcmV2U3RyaW5nLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC52YWx1ZSA9IG5leHRWYWx1ZTtcbiAgICBlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGN1cnNvckluZGV4LCBjdXJzb3JJbmRleCk7XG4gICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICBoYW5kbGVDb250ZW50Q2hhbmdlKGVkaXRvclJlZi5jdXJyZW50LmVsZW1lbnQudmFsdWUpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdXBkYXRlRGF0ZVNlbGVjdG9yUG9wdXBQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIWVkaXRvclJlZi5jdXJyZW50IHx8ICFwb3BwZXJSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGV0b3JQb3B1cFdpZHRoID0gMjgwO1xuICAgIGNvbnN0IGVkaXRvcldpZHRoID0gZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgIC8vIHBvc2l0aW9uWCA9IGVkaXRvcldpZHRoO1xuXG4gICAgY29uc3Qge3gsIHl9ID0gZ2V0Q3Vyc29yUG9zdGlvbihlZGl0b3JSZWYuY3VycmVudC5lbGVtZW50KTtcbiAgICAvLyBjb25zdCBsZWZ0ID0geCArIHNlbGV0b3JQb3B1cFdpZHRoICsgMTYgPiBlZGl0b3JXaWR0aCA/IGVkaXRvcldpZHRoICsgMjAgLSBzZWxldG9yUG9wdXBXaWR0aCA6IHggKyAyO1xuICAgIGxldCBsZWZ0OiBudW1iZXI7XG4gICAgbGV0IHRvcDogbnVtYmVyO1xuICAgIGlmICghUGxhdGZvcm0uaXNNb2JpbGUpIHtcbiAgICAgIGxlZnQgPSB4ICsgc2VsZXRvclBvcHVwV2lkdGggKyAxNiA+IGVkaXRvcldpZHRoID8geCArIDIgOiB4ICsgMjtcbiAgICAgIHRvcCA9IHkgKyAyMDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIC0geCA+IHNlbGV0b3JQb3B1cFdpZHRoKSB7XG4gICAgICAgIGxlZnQgPSB4ICsgc2VsZXRvclBvcHVwV2lkdGggKyAxNiA+IGVkaXRvcldpZHRoID8geCArIDIgOiB4ICsgMjtcbiAgICAgIH0gZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGggLSB4IDwgc2VsZXRvclBvcHVwV2lkdGgpIHtcbiAgICAgICAgbGVmdCA9IHggKyBzZWxldG9yUG9wdXBXaWR0aCArIDE2ID4gZWRpdG9yV2lkdGggPyB4ICsgMTggOiB4ICsgMTg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZWZ0ID0gZWRpdG9yUmVmLmN1cnJlbnQuZWxlbWVudC5jbGllbnRXaWR0aCAvIDI7XG4gICAgICB9XG4gICAgICBpZiAoRGVmYXVsdEVkaXRvckxvY2F0aW9uID09PSAnQm90dG9tJyAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+IDg3NSkge1xuICAgICAgICB0b3AgPSB5ICsgMjA7XG4gICAgICB9IGVsc2UgaWYgKERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gJ0JvdHRvbScgJiYgd2luZG93LmlubmVyV2lkdGggPD0gODc1KSB7XG4gICAgICAgIHRvcCA9IHkgKyAzNTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwb3NpdGlvblggPSB4O1xuXG4gICAgcG9wcGVyUmVmLmN1cnJlbnQuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHBvcHBlclJlZi5jdXJyZW50LnN0eWxlLnRvcCA9IGAke3RvcH1weGA7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVVcGxvYWRGaWxlQnRuQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dEVsKTtcbiAgICBpbnB1dEVsLnR5cGUgPSAnZmlsZSc7XG4gICAgaW5wdXRFbC5tdWx0aXBsZSA9IGZhbHNlO1xuICAgIGlucHV0RWwuYWNjZXB0ID0gJ2ltYWdlL3BuZywgaW1hZ2UvZ2lmLCBpbWFnZS9qcGVnJztcbiAgICBpbnB1dEVsLm9uY2hhbmdlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCFpbnB1dEVsLmZpbGVzIHx8IGlucHV0RWwuZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZSA9IGlucHV0RWwuZmlsZXNbMF07XG4gICAgICBjb25zdCB1cmwgPSBhd2FpdCBoYW5kbGVVcGxvYWRGaWxlKGZpbGUpO1xuICAgICAgaWYgKHVybCkge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0VGV4dCh1cmwpO1xuICAgICAgfVxuICAgIH07XG4gICAgaW5wdXRFbC5jbGljaygpO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgc2hvd0VkaXRTdGF0dXMgPSBCb29sZWFuKGdsb2JhbFN0YXRlLmVkaXRNZW1vSWQpO1xuXG4gIGNvbnN0IGVkaXRvckNvbmZpZyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGNsYXNzTmFtZTogJ21lbW8tZWRpdG9yJyxcbiAgICAgIGluaXRpYWxDb250ZW50OiBnZXRFZGl0b3JDb250ZW50Q2FjaGUoKSxcbiAgICAgIHBsYWNlaG9sZGVyOiAnV2hhdCBkbyB5b3UgdGhpbmsgbm93Li4uJyxcbiAgICAgIHNob3dDb25maXJtQnRuOiB0cnVlLFxuICAgICAgc2hvd0NhbmNlbEJ0bjogc2hvd0VkaXRTdGF0dXMsXG4gICAgICBzaG93VG9vbHM6IHRydWUsXG4gICAgICBvbkNvbmZpcm1CdG5DbGljazogaGFuZGxlU2F2ZUJ0bkNsaWNrLFxuICAgICAgb25DYW5jZWxCdG5DbGljazogaGFuZGxlQ2FuY2VsQnRuQ2xpY2ssXG4gICAgICBvbkNvbnRlbnRDaGFuZ2U6IGhhbmRsZUNvbnRlbnRDaGFuZ2UsXG4gICAgfSksXG4gICAgW3Nob3dFZGl0U3RhdHVzXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgbWVtby1lZGl0b3Itd3JhcHBlciAke3Nob3dFZGl0U3RhdHVzID8gJ2VkaXQtaW5nJyA6ICcnfSAke2lzRWRpdG9yU2hvd24gPyAnJyA6ICdoaWRkZW4nfWB9PlxuICAgICAgPHAgY2xhc3NOYW1lPXtgdGlwLXRleHQgJHtzaG93RWRpdFN0YXR1cyA/ICcnIDogJ2hpZGRlbid9YH0+TW9kaWZ5aW5nLi4uPC9wPlxuICAgICAgPEVkaXRvclxuICAgICAgICByZWY9e2VkaXRvclJlZn1cbiAgICAgICAgey4uLmVkaXRvckNvbmZpZ31cbiAgICAgICAgdG9vbHM9e1xuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImFjdGlvbi1idG4gYWRkLXRhZ1wiIHNyYz17dGFnfSBvbkNsaWNrPXtoYW5kbGVUYWdUZXh0QnRuQ2xpY2t9IC8+XG4gICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImFjdGlvbi1idG4gZmlsZS11cGxvYWRcIiBzcmM9e2ltYWdlU3ZnfSBvbkNsaWNrPXtoYW5kbGVVcGxvYWRGaWxlQnRuQ2xpY2t9IC8+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFjdGlvbi1idG4gbGlzdC1vci10YXNrXCJcbiAgICAgICAgICAgICAgc3JjPXtgJHshaXNMaXN0U2hvd24gPyBqb3VybmFsU3ZnIDogdGFza1N2Z31gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDaGFuZ2VTdGF0dXN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgey8qIDxpbWcgY2xhc3NOYW1lPXtgYWN0aW9uLWJ0biAke2lzTGlzdFNob3duID8gXCJcIiA6IFwiaGlkZGVuXCJ9YH0gc3JjPXt0YXNrU3ZnfSBvbkNsaWNrPXtoYW5kbGVDaGFuZ2VTdGF0dXN9IC8+ICovfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICAgPGRpdiByZWY9e3BvcHBlclJlZn0gY2xhc3NOYW1lPVwiZGF0ZS1waWNrZXJcIj5cbiAgICAgICAge2lzUG9wcGVyT3BlbiAmJiAoXG4gICAgICAgICAgPEZvY3VzVHJhcFxuICAgICAgICAgICAgYWN0aXZlXG4gICAgICAgICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgICAgICAgIGluaXRpYWxGb2N1czogZmFsc2UsXG4gICAgICAgICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICAgICAgICAgICAgb25EZWFjdGl2YXRlOiBjbG9zZVBvcHBlcixcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgIHN0eWxlPXtwb3BwZXIuc3R5bGVzLnBvcHBlcn1cbiAgICAgICAgICAgICAgey4uLnBvcHBlci5hdHRyaWJ1dGVzLnBvcHBlcn1cbiAgICAgICAgICAgICAgcmVmPXtzZXRQb3BwZXJFbGVtZW50fVxuICAgICAgICAgICAgICByb2xlPVwiZGlhbG9nXCI+XG4gICAgICAgICAgICAgIDxEYXlQaWNrZXJcbiAgICAgICAgICAgICAgICBpbml0aWFsRm9jdXM9e2lzUG9wcGVyT3Blbn1cbiAgICAgICAgICAgICAgICBtb2RlPVwic2luZ2xlXCJcbiAgICAgICAgICAgICAgICBkZWZhdWx0TW9udGg9e3NlbGVjdGVkfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgICAgICBvblNlbGVjdD17aGFuZGxlRGF0ZUluc2VydFRyaWdnZXJ9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0ZvY3VzVHJhcD5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZnVuY3Rpb24gZ2V0RWRpdG9yQ29udGVudENhY2hlKCk6IHN0cmluZyB7XG4gIHJldHVybiBzdG9yYWdlLmdldChbJ2VkaXRvckNvbnRlbnRDYWNoZSddKS5lZGl0b3JDb250ZW50Q2FjaGUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHNldEVkaXRvckNvbnRlbnRDYWNoZShjb250ZW50OiBzdHJpbmcpIHtcbiAgc3RvcmFnZS5zZXQoe1xuICAgIGVkaXRvckNvbnRlbnRDYWNoZTogY29udGVudCxcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lbW9FZGl0b3I7XG4iLCJpbXBvcnQge0lNQUdFX1VSTF9SRUcsIExJTktfUkVHLCBNRU1PX0xJTktfUkVHLCBOT1BfRklSU1RfVEFHX1JFRywgVEFHX1JFR30gZnJvbSAnLi9jb25zdHMnO1xuXG5leHBvcnQgY29uc3QgcmVsYXRpb25Db25zdHMgPSBbXG4gIHt0ZXh0OiAnQU5EJywgdmFsdWU6ICdBTkQnfSxcbiAge3RleHQ6ICdPUicsIHZhbHVlOiAnT1InfSxcbl07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJDb25zdHMgPSB7XG4gIFRBRzoge1xuICAgIHZhbHVlOiAnVEFHJyxcbiAgICB0ZXh0OiAnVEFHJyxcbiAgICBvcGVyYXRvcnM6IFtcbiAgICAgIHtcbiAgICAgICAgdGV4dDogJ0lOQ0xVREUnLFxuICAgICAgICB2YWx1ZTogJ0NPTlRBSU4nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGV4dDogJ0VYQ0xVREUnLFxuICAgICAgICB2YWx1ZTogJ05PVF9DT05UQUlOJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgVFlQRToge1xuICAgIHZhbHVlOiAnVFlQRScsXG4gICAgdGV4dDogJ1RZUEUnLFxuICAgIG9wZXJhdG9yczogW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogJ0lTJyxcbiAgICAgICAgdGV4dDogJ0lTJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnSVNfTk9UJyxcbiAgICAgICAgdGV4dDogJ0lTTk9UJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICB2YWx1ZXM6IFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdDT05ORUNURUQnLFxuICAgICAgICB0ZXh0OiAnTElOS0VEJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnTk9UX1RBR0dFRCcsXG4gICAgICAgIHRleHQ6ICdOTyBUQUdTJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnTElOS0VEJyxcbiAgICAgICAgdGV4dDogJ0hBUyBMSU5LUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ0lNQUdFRCcsXG4gICAgICAgIHRleHQ6ICdIQVMgSU1BR0VTJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgVEVYVDoge1xuICAgIHZhbHVlOiAnVEVYVCcsXG4gICAgdGV4dDogJ1RFWFQnLFxuICAgIG9wZXJhdG9yczogW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogJ0NPTlRBSU4nLFxuICAgICAgICB0ZXh0OiAnSU5DTFVERScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ05PVF9DT05UQUlOJyxcbiAgICAgICAgdGV4dDogJ0VYQ0xVREUnLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9TcGVjaWFsVHlwZXMgPSBmaWx0ZXJDb25zdHNbJ1RZUEUnXS52YWx1ZXM7XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0V2l0aE1lbW9UeXBlID0gKHR5cGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGZvciAoY29uc3QgdCBvZiBtZW1vU3BlY2lhbFR5cGVzKSB7XG4gICAgaWYgKHQudmFsdWUgPT09IHR5cGUpIHtcbiAgICAgIHJldHVybiB0LnRleHQ7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0RmlsdGVyID0gKCk6IEJhc2VGaWx0ZXIgPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUQUcnLFxuICAgIHZhbHVlOiB7XG4gICAgICBvcGVyYXRvcjogJ0NPTlRBSU4nLFxuICAgICAgdmFsdWU6ICcnLFxuICAgIH0sXG4gICAgcmVsYXRpb246ICdBTkQnLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrU2hvdWxkU2hvd01lbW9XaXRoRmlsdGVycyA9IChtZW1vOiBNb2RlbC5NZW1vLCBmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4ge1xuICBsZXQgc2hvdWxkU2hvdyA9IHRydWU7XG5cbiAgZm9yIChjb25zdCBmIG9mIGZpbHRlcnMpIHtcbiAgICBjb25zdCB7cmVsYXRpb259ID0gZjtcbiAgICBjb25zdCByID0gY2hlY2tTaG91bGRTaG93TWVtbyhtZW1vLCBmKTtcbiAgICBpZiAocmVsYXRpb24gPT09ICdPUicpIHtcbiAgICAgIHNob3VsZFNob3cgPSBzaG91bGRTaG93IHx8IHI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNob3VsZFNob3cgPSBzaG91bGRTaG93ICYmIHI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNob3VsZFNob3c7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tTaG91bGRTaG93TWVtbyA9IChtZW1vOiBNb2RlbC5NZW1vLCBmaWx0ZXI6IEZpbHRlcikgPT4ge1xuICBjb25zdCB7XG4gICAgdHlwZSxcbiAgICB2YWx1ZToge29wZXJhdG9yLCB2YWx1ZX0sXG4gIH0gPSBmaWx0ZXI7XG5cbiAgaWYgKHZhbHVlID09PSAnJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGV0IHNob3VsZFNob3cgPSB0cnVlO1xuXG4gIGlmICh0eXBlID09PSAnVEFHJykge1xuICAgIGxldCBjb250YWluZWQgPSB0cnVlO1xuICAgIGNvbnN0IHRhZ3NTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goVEFHX1JFRykgPz8gW10pKSB7XG4gICAgICBjb25zdCB0YWcgPSB0LnJlcGxhY2UoVEFHX1JFRywgJyQxJykudHJpbSgpO1xuICAgICAgY29uc3QgaXRlbXMgPSB0YWcuc3BsaXQoJy8nKTtcbiAgICAgIGxldCB0ZW1wID0gJyc7XG4gICAgICBmb3IgKGNvbnN0IGkgb2YgaXRlbXMpIHtcbiAgICAgICAgdGVtcCArPSBpO1xuICAgICAgICB0YWdzU2V0LmFkZCh0ZW1wKTtcbiAgICAgICAgdGVtcCArPSAnLyc7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgdCBvZiBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChOT1BfRklSU1RfVEFHX1JFRykgPz8gW10pKSB7XG4gICAgICBjb25zdCB0YWcgPSB0LnJlcGxhY2UoTk9QX0ZJUlNUX1RBR19SRUcsICckMScpLnRyaW0oKTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGFnLnNwbGl0KCcvJyk7XG4gICAgICBsZXQgdGVtcCA9ICcnO1xuICAgICAgZm9yIChjb25zdCBpIG9mIGl0ZW1zKSB7XG4gICAgICAgIHRlbXAgKz0gaTtcbiAgICAgICAgdGFnc1NldC5hZGQodGVtcCk7XG4gICAgICAgIHRlbXAgKz0gJy8nO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRhZ3NTZXQuaGFzKHZhbHVlKSkge1xuICAgICAgY29udGFpbmVkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChvcGVyYXRvciA9PT0gJ05PVF9DT05UQUlOJykge1xuICAgICAgY29udGFpbmVkID0gIWNvbnRhaW5lZDtcbiAgICB9XG4gICAgc2hvdWxkU2hvdyA9IGNvbnRhaW5lZDtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnVFlQRScpIHtcbiAgICBsZXQgbWF0Y2hlZCA9IGZhbHNlO1xuICAgIGlmICh2YWx1ZSA9PT0gJ05PVF9UQUdHRUQnICYmIG1lbW8uY29udGVudC5tYXRjaChUQUdfUkVHKSA9PT0gbnVsbCkge1xuICAgICAgbWF0Y2hlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ0xJTktFRCcgJiYgbWVtby5jb250ZW50Lm1hdGNoKExJTktfUkVHKSAhPT0gbnVsbCkge1xuICAgICAgbWF0Y2hlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ0lNQUdFRCcgJiYgbWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpICE9PSBudWxsKSB7XG4gICAgICBtYXRjaGVkID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSAnQ09OTkVDVEVEJyAmJiBtZW1vLmNvbnRlbnQubWF0Y2goTUVNT19MSU5LX1JFRykgIT09IG51bGwpIHtcbiAgICAgIG1hdGNoZWQgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAob3BlcmF0b3IgPT09ICdJU19OT1QnKSB7XG4gICAgICBtYXRjaGVkID0gIW1hdGNoZWQ7XG4gICAgfVxuICAgIHNob3VsZFNob3cgPSBtYXRjaGVkO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdURVhUJykge1xuICAgIGxldCBjb250YWluZWQgPSBtZW1vLmNvbnRlbnQuaW5jbHVkZXModmFsdWUpO1xuICAgIGlmIChvcGVyYXRvciA9PT0gJ05PVF9DT05UQUlOJykge1xuICAgICAgY29udGFpbmVkID0gIWNvbnRhaW5lZDtcbiAgICB9XG4gICAgc2hvdWxkU2hvdyA9IGNvbnRhaW5lZDtcbiAgfVxuXG4gIHJldHVybiBzaG91bGRTaG93O1xufTtcbiIsImltcG9ydCB7dXNlQ29udGV4dH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGFwcENvbnRleHQgZnJvbSAnLi4vc3RvcmVzL2FwcENvbnRleHQnO1xuaW1wb3J0IHtsb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7bWVtb1NwZWNpYWxUeXBlc30gZnJvbSAnLi4vaGVscGVycy9maWx0ZXInO1xuaW1wb3J0ICcuLi9sZXNzL3NlYXJjaC1iYXIubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHNlYXJjaCBmcm9tICcuLi9pY29ucy9zZWFyY2guc3ZnJztcbi8vIGltcG9ydCB1c2VUb2dnbGUgZnJvbSBcIi4uL2hvb2tzL3VzZVRvZ2dsZVwiO1xuXG5pbnRlcmZhY2UgUHJvcHMge31cblxuZXhwb3J0IGxldCBzZWFyY2hCb3hJbnB1dDogSFRNTElucHV0RWxlbWVudDtcbi8vIGxldCBpc1NlYXJjaEJhciA9IGZhbHNlIGFzIGJvb2xlYW47XG5cbmNvbnN0IFNlYXJjaEJhcjogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xuICBjb25zdCB7XG4gICAgbG9jYXRpb25TdGF0ZToge1xuICAgICAgcXVlcnk6IHt0eXBlOiBtZW1vVHlwZX0sXG4gICAgfSxcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XG4gIC8vIGNvbnN0IFtpc1NlYXJjaEJhclNob3duLCB0b2dnbGVTZWFyY2hiYXJdID0gdXNlVG9nZ2xlKGZhbHNlKTtcblxuICBjb25zdCBoYW5kbGVNZW1vVHlwZUl0ZW1DbGljayA9ICh0eXBlOiBNZW1vU3BlY1R5cGUgfCAnJykgPT4ge1xuICAgIGNvbnN0IHt0eXBlOiBwcmV2VHlwZX0gPSBsb2NhdGlvblNlcnZpY2UuZ2V0U3RhdGUoKS5xdWVyeTtcbiAgICBpZiAodHlwZSA9PT0gcHJldlR5cGUpIHtcbiAgICAgIHR5cGUgPSAnJztcbiAgICB9XG4gICAgbG9jYXRpb25TZXJ2aWNlLnNldE1lbW9UeXBlUXVlcnkodHlwZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVGV4dFF1ZXJ5SW5wdXQgPSAoZXZlbnQ6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHRleHQgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgIGxvY2F0aW9uU2VydmljZS5zZXRUZXh0UXVlcnkodGV4dCk7XG4gIH07XG5cbiAgLy8gY29uc3QgaGFuZGxlU2VhcmNoQmFyU3RhdHVzID0gKCkgPT4ge1xuICAvLyAgIGlmKGlzU2VhcmNoQmFyKXtcbiAgLy8gICAgIGlzU2VhcmNoQmFyID0gZmFsc2U7XG4gIC8vICAgICB0b2dnbGVTZWFyY2hiYXIoZmFsc2UpO1xuICAvLyAgIH1lbHNle1xuICAvLyAgICAgaXNTZWFyY2hCYXIgPSB0cnVlO1xuICAvLyAgICAgdG9nZ2xlU2VhcmNoYmFyKHRydWUpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIHJldHVybiAoXG4gICAgLy8gPGRpdiBjbGFzc05hbWU9e2Ake2lzU2VhcmNoQmFyU2hvd24gPyBcInNlYXJjaC1iYXItY29udGFpbmVyLWxvbmdcIiA6IFwic2VhcmNoLWJhci1jb250YWluZXItc2hvcnRcIn1gfT5cbiAgICAvLyAgIDxkaXYgY2xhc3NOYW1lPXtgJHtpc1NlYXJjaEJhclNob3duID8gXCJzZWFyY2gtYmFyLWlucHV0ZXItbG9uZ1wiIDogXCJzZWFyY2gtYmFyLWlucHV0ZXItc2hvcnRcIn1gfT5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYXJjaC1iYXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYXJjaC1iYXItaW5wdXRlclwiPlxuICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtzZWFyY2h9IC8+XG4gICAgICAgIDxpbnB1dCBjbGFzc05hbWU9XCJ0ZXh0LWlucHV0XCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlwiIG9uQ2hhbmdlPXtoYW5kbGVUZXh0UXVlcnlJbnB1dH0gLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJxdWlja2x5LWFjdGlvbi13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicXVpY2tseS1hY3Rpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGl0bGUtdGV4dFwiPlFVSUNLTFkgRklMVEVSPC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjdGlvbi1jb250YWluZXIgdHlwZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzZWN0aW9uLXRleHRcIj5UWVBFOjwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmFsdWVzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICB7bWVtb1NwZWNpYWxUeXBlcy5tYXAoKHQsIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17dC52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgdHlwZS1pdGVtICR7bWVtb1R5cGUgPT09IHQudmFsdWUgPyAnc2VsZWN0ZWQnIDogJyd9YH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNZW1vVHlwZUl0ZW1DbGljayh0LnZhbHVlIGFzIE1lbW9TcGVjVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAge3QudGV4dH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB7aWR4ICsgMSA8IG1lbW9TcGVjaWFsVHlwZXMubGVuZ3RoID8gPHNwYW4gY2xhc3NOYW1lPVwic3BsaXQtdGV4dFwiPi88L3NwYW4+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hCYXI7XG4iLCJpbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuLi9zdG9yZXMvYXBwQ29udGV4dCc7XG5pbXBvcnQgU2VhcmNoQmFyIGZyb20gJy4vU2VhcmNoQmFyJztcbmltcG9ydCB7Z2xvYmFsU3RhdGVTZXJ2aWNlLCBtZW1vU2VydmljZSwgcXVlcnlTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgT25seSBmcm9tICcuL2NvbW1vbi9Pbmx5V2hlbic7XG5pbXBvcnQgJy4uL2xlc3MvbWVtb3MtaGVhZGVyLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBtZW51U3ZnIGZyb20gJy4uL2ljb25zL21lbnUuc3ZnJztcblxubGV0IHByZXZSZXF1ZXN0VGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuaW50ZXJmYWNlIFByb3BzIHt9XG5cbmNvbnN0IE1lbW9zSGVhZGVyOiBSZWFjdC5GQzxQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsb2NhdGlvblN0YXRlOiB7XG4gICAgICBxdWVyeToge2ZpbHRlcn0sXG4gICAgfSxcbiAgICBnbG9iYWxTdGF0ZToge2lzTW9iaWxlVmlld30sXG4gICAgcXVlcnlTdGF0ZToge3F1ZXJpZXN9LFxuICB9ID0gdXNlQ29udGV4dChhcHBDb250ZXh0KTtcblxuICBjb25zdCBbdGl0bGVUZXh0LCBzZXRUaXRsZVRleHRdID0gdXNlU3RhdGUoJ01FTU9TJyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IHF1ZXJ5U2VydmljZS5nZXRRdWVyeUJ5SWQoZmlsdGVyKTtcbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIHNldFRpdGxlVGV4dChxdWVyeS50aXRsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpdGxlVGV4dCgnTUVNT1MnKTtcbiAgICB9XG4gIH0sIFtmaWx0ZXIsIHF1ZXJpZXNdKTtcblxuICBjb25zdCBoYW5kbGVNZW1vVGV4dENsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKG5vdyAtIHByZXZSZXF1ZXN0VGltZXN0YW1wID4gMTAgKiAxMDAwKSB7XG4gICAgICBwcmV2UmVxdWVzdFRpbWVzdGFtcCA9IG5vdztcbiAgICAgIG1lbW9TZXJ2aWNlLmZldGNoQWxsTWVtb3MoKS5jYXRjaCgoKSA9PiB7XG4gICAgICAgIC8vIGRvIG50aFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlU2hvd1NpZGViYXJCdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0U2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3KHRydWUpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNlY3Rpb24taGVhZGVyLWNvbnRhaW5lciBtZW1vcy1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIiBvbkNsaWNrPXtoYW5kbGVNZW1vVGV4dENsaWNrfT5cbiAgICAgICAgPE9ubHkgd2hlbj17aXNNb2JpbGVWaWV3fT5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImFjdGlvbi1idG5cIiBvbkNsaWNrPXtoYW5kbGVTaG93U2lkZWJhckJ0bkNsaWNrfT5cbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e21lbnVTdmd9IGFsdD1cIm1lbnVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L09ubHk+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+e3RpdGxlVGV4dH08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxTZWFyY2hCYXIgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lbW9zSGVhZGVyO1xuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICB9IDogZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiBvYmogJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gIH0sIF90eXBlb2Yob2JqKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufSIsImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiBmYWxzZVxuICB9KTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gICAgby5fX3Byb3RvX18gPSBwO1xuICAgIHJldHVybiBvO1xuICB9O1xuXG4gIHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7XG59IiwiaW1wb3J0IHNldFByb3RvdHlwZU9mIGZyb20gXCIuL3NldFByb3RvdHlwZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwge1xuICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICB2YWx1ZTogc3ViQ2xhc3MsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH1cbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdWJDbGFzcywgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiBmYWxzZVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmltcG9ydCBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQgZnJvbSBcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7XG4gIGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgcmV0dXJuIGNhbGw7XG4gIH0gZWxzZSBpZiAoY2FsbCAhPT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKGFycikge1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59IiwiaW1wb3J0IGFycmF5TGlrZVRvQXJyYXkgZnJvbSBcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufSIsImltcG9ydCBhcnJheVdpdGhIb2xlcyBmcm9tIFwiLi9hcnJheVdpdGhIb2xlcy5qc1wiO1xuaW1wb3J0IGl0ZXJhYmxlVG9BcnJheSBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSBmcm9tIFwiLi91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qc1wiO1xuaW1wb3J0IG5vbkl0ZXJhYmxlUmVzdCBmcm9tIFwiLi9ub25JdGVyYWJsZVJlc3QuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90b0FycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlUmVzdCgpO1xufSIsImltcG9ydCBfdHlwZW9mIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZic7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MnO1xuaW1wb3J0IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMnO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9nZXRQcm90b3R5cGVPZiBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZic7XG5pbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5JztcbmltcG9ydCBfdG9BcnJheSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0FycmF5JztcblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgeyBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IH0ga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgY29uc29sZUxvZ2dlciA9IHtcbiAgdHlwZTogJ2xvZ2dlcicsXG4gIGxvZzogZnVuY3Rpb24gbG9nKGFyZ3MpIHtcbiAgICB0aGlzLm91dHB1dCgnbG9nJywgYXJncyk7XG4gIH0sXG4gIHdhcm46IGZ1bmN0aW9uIHdhcm4oYXJncykge1xuICAgIHRoaXMub3V0cHV0KCd3YXJuJywgYXJncyk7XG4gIH0sXG4gIGVycm9yOiBmdW5jdGlvbiBlcnJvcihhcmdzKSB7XG4gICAgdGhpcy5vdXRwdXQoJ2Vycm9yJywgYXJncyk7XG4gIH0sXG4gIG91dHB1dDogZnVuY3Rpb24gb3V0cHV0KHR5cGUsIGFyZ3MpIHtcbiAgICBpZiAoY29uc29sZSAmJiBjb25zb2xlW3R5cGVdKSBjb25zb2xlW3R5cGVdLmFwcGx5KGNvbnNvbGUsIGFyZ3MpO1xuICB9XG59O1xuXG52YXIgTG9nZ2VyID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBMb2dnZXIoY29uY3JldGVMb2dnZXIpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9nZ2VyKTtcblxuICAgIHRoaXMuaW5pdChjb25jcmV0ZUxvZ2dlciwgb3B0aW9ucyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTG9nZ2VyLCBbe1xuICAgIGtleTogXCJpbml0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluaXQoY29uY3JldGVMb2dnZXIpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgIHRoaXMucHJlZml4ID0gb3B0aW9ucy5wcmVmaXggfHwgJ2kxOG5leHQ6JztcbiAgICAgIHRoaXMubG9nZ2VyID0gY29uY3JldGVMb2dnZXIgfHwgY29uc29sZUxvZ2dlcjtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICB0aGlzLmRlYnVnID0gb3B0aW9ucy5kZWJ1ZztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2V0RGVidWdcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0RGVidWcoYm9vbCkge1xuICAgICAgdGhpcy5kZWJ1ZyA9IGJvb2w7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvZ1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2coKSB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCAnbG9nJywgJycsIHRydWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ3YXJuXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHdhcm4oKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5mb3J3YXJkKGFyZ3MsICd3YXJuJywgJycsIHRydWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJlcnJvclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBlcnJvcigpIHtcbiAgICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMyksIF9rZXkzID0gMDsgX2tleTMgPCBfbGVuMzsgX2tleTMrKykge1xuICAgICAgICBhcmdzW19rZXkzXSA9IGFyZ3VtZW50c1tfa2V5M107XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZvcndhcmQoYXJncywgJ2Vycm9yJywgJycpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZXByZWNhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVwcmVjYXRlKCkge1xuICAgICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40KSwgX2tleTQgPSAwOyBfa2V5NCA8IF9sZW40OyBfa2V5NCsrKSB7XG4gICAgICAgIGFyZ3NbX2tleTRdID0gYXJndW1lbnRzW19rZXk0XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCAnd2FybicsICdXQVJOSU5HIERFUFJFQ0FURUQ6ICcsIHRydWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb3J3YXJkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvcndhcmQoYXJncywgbHZsLCBwcmVmaXgsIGRlYnVnT25seSkge1xuICAgICAgaWYgKGRlYnVnT25seSAmJiAhdGhpcy5kZWJ1ZykgcmV0dXJuIG51bGw7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSBhcmdzWzBdID0gXCJcIi5jb25jYXQocHJlZml4KS5jb25jYXQodGhpcy5wcmVmaXgsIFwiIFwiKS5jb25jYXQoYXJnc1swXSk7XG4gICAgICByZXR1cm4gdGhpcy5sb2dnZXJbbHZsXShhcmdzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY3JlYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNyZWF0ZShtb2R1bGVOYW1lKSB7XG4gICAgICByZXR1cm4gbmV3IExvZ2dlcih0aGlzLmxvZ2dlciwgX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCB7XG4gICAgICAgIHByZWZpeDogXCJcIi5jb25jYXQodGhpcy5wcmVmaXgsIFwiOlwiKS5jb25jYXQobW9kdWxlTmFtZSwgXCI6XCIpXG4gICAgICB9KSwgdGhpcy5vcHRpb25zKSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIExvZ2dlcjtcbn0oKTtcblxudmFyIGJhc2VMb2dnZXIgPSBuZXcgTG9nZ2VyKCk7XG5cbnZhciBFdmVudEVtaXR0ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRXZlbnRFbWl0dGVyKTtcblxuICAgIHRoaXMub2JzZXJ2ZXJzID0ge307XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoRXZlbnRFbWl0dGVyLCBbe1xuICAgIGtleTogXCJvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbihldmVudHMsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICBldmVudHMuc3BsaXQoJyAnKS5mb3JFYWNoKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBfdGhpcy5vYnNlcnZlcnNbZXZlbnRdID0gX3RoaXMub2JzZXJ2ZXJzW2V2ZW50XSB8fCBbXTtcblxuICAgICAgICBfdGhpcy5vYnNlcnZlcnNbZXZlbnRdLnB1c2gobGlzdGVuZXIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwib2ZmXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9mZihldmVudCwgbGlzdGVuZXIpIHtcbiAgICAgIGlmICghdGhpcy5vYnNlcnZlcnNbZXZlbnRdKSByZXR1cm47XG5cbiAgICAgIGlmICghbGlzdGVuZXIpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMub2JzZXJ2ZXJzW2V2ZW50XTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm9ic2VydmVyc1tldmVudF0gPSB0aGlzLm9ic2VydmVyc1tldmVudF0uZmlsdGVyKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgIHJldHVybiBsICE9PSBsaXN0ZW5lcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJlbWl0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGVtaXQoZXZlbnQpIHtcbiAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9ic2VydmVyc1tldmVudF0pIHtcbiAgICAgICAgdmFyIGNsb25lZCA9IFtdLmNvbmNhdCh0aGlzLm9ic2VydmVyc1tldmVudF0pO1xuICAgICAgICBjbG9uZWQuZm9yRWFjaChmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICBvYnNlcnZlci5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub2JzZXJ2ZXJzWycqJ10pIHtcbiAgICAgICAgdmFyIF9jbG9uZWQgPSBbXS5jb25jYXQodGhpcy5vYnNlcnZlcnNbJyonXSk7XG5cbiAgICAgICAgX2Nsb25lZC5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgIG9ic2VydmVyLmFwcGx5KG9ic2VydmVyLCBbZXZlbnRdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBFdmVudEVtaXR0ZXI7XG59KCk7XG5cbmZ1bmN0aW9uIGRlZmVyKCkge1xuICB2YXIgcmVzO1xuICB2YXIgcmVqO1xuICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICByZXMgPSByZXNvbHZlO1xuICAgIHJlaiA9IHJlamVjdDtcbiAgfSk7XG4gIHByb21pc2UucmVzb2x2ZSA9IHJlcztcbiAgcHJvbWlzZS5yZWplY3QgPSByZWo7XG4gIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVN0cmluZyhvYmplY3QpIHtcbiAgaWYgKG9iamVjdCA9PSBudWxsKSByZXR1cm4gJyc7XG4gIHJldHVybiAnJyArIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNvcHkoYSwgcywgdCkge1xuICBhLmZvckVhY2goZnVuY3Rpb24gKG0pIHtcbiAgICBpZiAoc1ttXSkgdFttXSA9IHNbbV07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRMYXN0T2ZQYXRoKG9iamVjdCwgcGF0aCwgRW1wdHkpIHtcbiAgZnVuY3Rpb24gY2xlYW5LZXkoa2V5KSB7XG4gICAgcmV0dXJuIGtleSAmJiBrZXkuaW5kZXhPZignIyMjJykgPiAtMSA/IGtleS5yZXBsYWNlKC8jIyMvZywgJy4nKSA6IGtleTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbk5vdFRyYXZlcnNlRGVlcGVyKCkge1xuICAgIHJldHVybiAhb2JqZWN0IHx8IHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnO1xuICB9XG5cbiAgdmFyIHN0YWNrID0gdHlwZW9mIHBhdGggIT09ICdzdHJpbmcnID8gW10uY29uY2F0KHBhdGgpIDogcGF0aC5zcGxpdCgnLicpO1xuXG4gIHdoaWxlIChzdGFjay5sZW5ndGggPiAxKSB7XG4gICAgaWYgKGNhbk5vdFRyYXZlcnNlRGVlcGVyKCkpIHJldHVybiB7fTtcbiAgICB2YXIga2V5ID0gY2xlYW5LZXkoc3RhY2suc2hpZnQoKSk7XG4gICAgaWYgKCFvYmplY3Rba2V5XSAmJiBFbXB0eSkgb2JqZWN0W2tleV0gPSBuZXcgRW1wdHkoKTtcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0ID0ge307XG4gICAgfVxuICB9XG5cbiAgaWYgKGNhbk5vdFRyYXZlcnNlRGVlcGVyKCkpIHJldHVybiB7fTtcbiAgcmV0dXJuIHtcbiAgICBvYmo6IG9iamVjdCxcbiAgICBrOiBjbGVhbktleShzdGFjay5zaGlmdCgpKVxuICB9O1xufVxuXG5mdW5jdGlvbiBzZXRQYXRoKG9iamVjdCwgcGF0aCwgbmV3VmFsdWUpIHtcbiAgdmFyIF9nZXRMYXN0T2ZQYXRoID0gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgsIE9iamVjdCksXG4gICAgICBvYmogPSBfZ2V0TGFzdE9mUGF0aC5vYmosXG4gICAgICBrID0gX2dldExhc3RPZlBhdGguaztcblxuICBvYmpba10gPSBuZXdWYWx1ZTtcbn1cbmZ1bmN0aW9uIHB1c2hQYXRoKG9iamVjdCwgcGF0aCwgbmV3VmFsdWUsIGNvbmNhdCkge1xuICB2YXIgX2dldExhc3RPZlBhdGgyID0gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgsIE9iamVjdCksXG4gICAgICBvYmogPSBfZ2V0TGFzdE9mUGF0aDIub2JqLFxuICAgICAgayA9IF9nZXRMYXN0T2ZQYXRoMi5rO1xuXG4gIG9ialtrXSA9IG9ialtrXSB8fCBbXTtcbiAgaWYgKGNvbmNhdCkgb2JqW2tdID0gb2JqW2tdLmNvbmNhdChuZXdWYWx1ZSk7XG4gIGlmICghY29uY2F0KSBvYmpba10ucHVzaChuZXdWYWx1ZSk7XG59XG5mdW5jdGlvbiBnZXRQYXRoKG9iamVjdCwgcGF0aCkge1xuICB2YXIgX2dldExhc3RPZlBhdGgzID0gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgpLFxuICAgICAgb2JqID0gX2dldExhc3RPZlBhdGgzLm9iaixcbiAgICAgIGsgPSBfZ2V0TGFzdE9mUGF0aDMuaztcblxuICBpZiAoIW9iaikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIG9ialtrXTtcbn1cbmZ1bmN0aW9uIGdldFBhdGhXaXRoRGVmYXVsdHMoZGF0YSwgZGVmYXVsdERhdGEsIGtleSkge1xuICB2YXIgdmFsdWUgPSBnZXRQYXRoKGRhdGEsIGtleSk7XG5cbiAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gZ2V0UGF0aChkZWZhdWx0RGF0YSwga2V5KTtcbn1cbmZ1bmN0aW9uIGRlZXBFeHRlbmQodGFyZ2V0LCBzb3VyY2UsIG92ZXJ3cml0ZSkge1xuICBmb3IgKHZhciBwcm9wIGluIHNvdXJjZSkge1xuICAgIGlmIChwcm9wICE9PSAnX19wcm90b19fJyAmJiBwcm9wICE9PSAnY29uc3RydWN0b3InKSB7XG4gICAgICBpZiAocHJvcCBpbiB0YXJnZXQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXRbcHJvcF0gPT09ICdzdHJpbmcnIHx8IHRhcmdldFtwcm9wXSBpbnN0YW5jZW9mIFN0cmluZyB8fCB0eXBlb2Ygc291cmNlW3Byb3BdID09PSAnc3RyaW5nJyB8fCBzb3VyY2VbcHJvcF0gaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgICAgICBpZiAob3ZlcndyaXRlKSB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVlcEV4dGVuZCh0YXJnZXRbcHJvcF0sIHNvdXJjZVtwcm9wXSwgb3ZlcndyaXRlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5mdW5jdGlvbiByZWdleEVzY2FwZShzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bXFwtXFxbXFxdXFwvXFx7XFx9XFwoXFwpXFwqXFwrXFw/XFwuXFxcXFxcXlxcJFxcfF0vZywgJ1xcXFwkJicpO1xufVxudmFyIF9lbnRpdHlNYXAgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmIzM5OycsXG4gICcvJzogJyYjeDJGOydcbn07XG5mdW5jdGlvbiBlc2NhcGUoZGF0YSkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRhdGEucmVwbGFjZSgvWyY8PlwiJ1xcL10vZywgZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBfZW50aXR5TWFwW3NdO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG52YXIgaXNJRTEwID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCAmJiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdNU0lFJykgPiAtMTtcbnZhciBjaGFycyA9IFsnICcsICcsJywgJz8nLCAnIScsICc7J107XG5mdW5jdGlvbiBsb29rc0xpa2VPYmplY3RQYXRoKGtleSwgbnNTZXBhcmF0b3IsIGtleVNlcGFyYXRvcikge1xuICBuc1NlcGFyYXRvciA9IG5zU2VwYXJhdG9yIHx8ICcnO1xuICBrZXlTZXBhcmF0b3IgPSBrZXlTZXBhcmF0b3IgfHwgJyc7XG4gIHZhciBwb3NzaWJsZUNoYXJzID0gY2hhcnMuZmlsdGVyKGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIG5zU2VwYXJhdG9yLmluZGV4T2YoYykgPCAwICYmIGtleVNlcGFyYXRvci5pbmRleE9mKGMpIDwgMDtcbiAgfSk7XG4gIGlmIChwb3NzaWJsZUNoYXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gIHZhciByID0gbmV3IFJlZ0V4cChcIihcIi5jb25jYXQocG9zc2libGVDaGFycy5tYXAoZnVuY3Rpb24gKGMpIHtcbiAgICByZXR1cm4gYyA9PT0gJz8nID8gJ1xcXFw/JyA6IGM7XG4gIH0pLmpvaW4oJ3wnKSwgXCIpXCIpKTtcbiAgdmFyIG1hdGNoZWQgPSAhci50ZXN0KGtleSk7XG5cbiAgaWYgKCFtYXRjaGVkKSB7XG4gICAgdmFyIGtpID0ga2V5LmluZGV4T2Yoa2V5U2VwYXJhdG9yKTtcblxuICAgIGlmIChraSA+IDAgJiYgIXIudGVzdChrZXkuc3Vic3RyaW5nKDAsIGtpKSkpIHtcbiAgICAgIG1hdGNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYXRjaGVkO1xufVxuXG5mdW5jdGlvbiBvd25LZXlzJDEob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHsgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyB9IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkJDEodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyQxKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMkMShPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIGRlZXBGaW5kKG9iaiwgcGF0aCkge1xuICB2YXIga2V5U2VwYXJhdG9yID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAnLic7XG4gIGlmICghb2JqKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAob2JqW3BhdGhdKSByZXR1cm4gb2JqW3BhdGhdO1xuICB2YXIgcGF0aHMgPSBwYXRoLnNwbGl0KGtleVNlcGFyYXRvcik7XG4gIHZhciBjdXJyZW50ID0gb2JqO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoIWN1cnJlbnQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodHlwZW9mIGN1cnJlbnRbcGF0aHNbaV1dID09PSAnc3RyaW5nJyAmJiBpICsgMSA8IHBhdGhzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFtwYXRoc1tpXV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGogPSAyO1xuICAgICAgdmFyIHAgPSBwYXRocy5zbGljZShpLCBpICsgaikuam9pbihrZXlTZXBhcmF0b3IpO1xuICAgICAgdmFyIG1peCA9IGN1cnJlbnRbcF07XG5cbiAgICAgIHdoaWxlIChtaXggPT09IHVuZGVmaW5lZCAmJiBwYXRocy5sZW5ndGggPiBpICsgaikge1xuICAgICAgICBqKys7XG4gICAgICAgIHAgPSBwYXRocy5zbGljZShpLCBpICsgaikuam9pbihrZXlTZXBhcmF0b3IpO1xuICAgICAgICBtaXggPSBjdXJyZW50W3BdO1xuICAgICAgfVxuXG4gICAgICBpZiAobWl4ID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChwYXRoLmVuZHNXaXRoKHApKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykgcmV0dXJuIG1peDtcbiAgICAgICAgaWYgKHAgJiYgdHlwZW9mIG1peFtwXSA9PT0gJ3N0cmluZycpIHJldHVybiBtaXhbcF07XG4gICAgICB9XG5cbiAgICAgIHZhciBqb2luZWRQYXRoID0gcGF0aHMuc2xpY2UoaSArIGopLmpvaW4oa2V5U2VwYXJhdG9yKTtcbiAgICAgIGlmIChqb2luZWRQYXRoKSByZXR1cm4gZGVlcEZpbmQobWl4LCBqb2luZWRQYXRoLCBrZXlTZXBhcmF0b3IpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjdXJyZW50ID0gY3VycmVudFtwYXRoc1tpXV07XG4gIH1cblxuICByZXR1cm4gY3VycmVudDtcbn1cblxudmFyIFJlc291cmNlU3RvcmUgPSBmdW5jdGlvbiAoX0V2ZW50RW1pdHRlcikge1xuICBfaW5oZXJpdHMoUmVzb3VyY2VTdG9yZSwgX0V2ZW50RW1pdHRlcik7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihSZXNvdXJjZVN0b3JlKTtcblxuICBmdW5jdGlvbiBSZXNvdXJjZVN0b3JlKGRhdGEpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge1xuICAgICAgbnM6IFsndHJhbnNsYXRpb24nXSxcbiAgICAgIGRlZmF1bHROUzogJ3RyYW5zbGF0aW9uJ1xuICAgIH07XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzb3VyY2VTdG9yZSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpO1xuXG4gICAgaWYgKGlzSUUxMCkge1xuICAgICAgRXZlbnRFbWl0dGVyLmNhbGwoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgIH1cblxuICAgIF90aGlzLmRhdGEgPSBkYXRhIHx8IHt9O1xuICAgIF90aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgaWYgKF90aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIF90aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yID0gJy4nO1xuICAgIH1cblxuICAgIGlmIChfdGhpcy5vcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgX3RoaXMub3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUmVzb3VyY2VTdG9yZSwgW3tcbiAgICBrZXk6IFwiYWRkTmFtZXNwYWNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGROYW1lc3BhY2VzKG5zKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLm5zLmluZGV4T2YobnMpIDwgMCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMubnMucHVzaChucyk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbW92ZU5hbWVzcGFjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVtb3ZlTmFtZXNwYWNlcyhucykge1xuICAgICAgdmFyIGluZGV4ID0gdGhpcy5vcHRpb25zLm5zLmluZGV4T2YobnMpO1xuXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLm9wdGlvbnMubnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UmVzb3VyY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UmVzb3VyY2UobG5nLCBucywga2V5KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDoge307XG4gICAgICB2YXIga2V5U2VwYXJhdG9yID0gb3B0aW9ucy5rZXlTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMua2V5U2VwYXJhdG9yIDogdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvcjtcbiAgICAgIHZhciBpZ25vcmVKU09OU3RydWN0dXJlID0gb3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmUgOiB0aGlzLm9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZTtcbiAgICAgIHZhciBwYXRoID0gW2xuZywgbnNdO1xuICAgICAgaWYgKGtleSAmJiB0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykgcGF0aCA9IHBhdGguY29uY2F0KGtleSk7XG4gICAgICBpZiAoa2V5ICYmIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKSBwYXRoID0gcGF0aC5jb25jYXQoa2V5U2VwYXJhdG9yID8ga2V5LnNwbGl0KGtleVNlcGFyYXRvcikgOiBrZXkpO1xuXG4gICAgICBpZiAobG5nLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICAgIHBhdGggPSBsbmcuc3BsaXQoJy4nKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlc3VsdCA9IGdldFBhdGgodGhpcy5kYXRhLCBwYXRoKTtcbiAgICAgIGlmIChyZXN1bHQgfHwgIWlnbm9yZUpTT05TdHJ1Y3R1cmUgfHwgdHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHJldHVybiByZXN1bHQ7XG4gICAgICByZXR1cm4gZGVlcEZpbmQodGhpcy5kYXRhICYmIHRoaXMuZGF0YVtsbmddICYmIHRoaXMuZGF0YVtsbmddW25zXSwga2V5LCBrZXlTZXBhcmF0b3IpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRSZXNvdXJjZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRSZXNvdXJjZShsbmcsIG5zLCBrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDoge1xuICAgICAgICBzaWxlbnQ6IGZhbHNlXG4gICAgICB9O1xuICAgICAgdmFyIGtleVNlcGFyYXRvciA9IHRoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3I7XG4gICAgICBpZiAoa2V5U2VwYXJhdG9yID09PSB1bmRlZmluZWQpIGtleVNlcGFyYXRvciA9ICcuJztcbiAgICAgIHZhciBwYXRoID0gW2xuZywgbnNdO1xuICAgICAgaWYgKGtleSkgcGF0aCA9IHBhdGguY29uY2F0KGtleVNlcGFyYXRvciA/IGtleS5zcGxpdChrZXlTZXBhcmF0b3IpIDoga2V5KTtcblxuICAgICAgaWYgKGxuZy5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICBwYXRoID0gbG5nLnNwbGl0KCcuJyk7XG4gICAgICAgIHZhbHVlID0gbnM7XG4gICAgICAgIG5zID0gcGF0aFsxXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGROYW1lc3BhY2VzKG5zKTtcbiAgICAgIHNldFBhdGgodGhpcy5kYXRhLCBwYXRoLCB2YWx1ZSk7XG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB0aGlzLmVtaXQoJ2FkZGVkJywgbG5nLCBucywga2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImFkZFJlc291cmNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRSZXNvdXJjZXMobG5nLCBucywgcmVzb3VyY2VzKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDoge1xuICAgICAgICBzaWxlbnQ6IGZhbHNlXG4gICAgICB9O1xuXG4gICAgICBmb3IgKHZhciBtIGluIHJlc291cmNlcykge1xuICAgICAgICBpZiAodHlwZW9mIHJlc291cmNlc1ttXSA9PT0gJ3N0cmluZycgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShyZXNvdXJjZXNbbV0pID09PSAnW29iamVjdCBBcnJheV0nKSB0aGlzLmFkZFJlc291cmNlKGxuZywgbnMsIG0sIHJlc291cmNlc1ttXSwge1xuICAgICAgICAgIHNpbGVudDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkgdGhpcy5lbWl0KCdhZGRlZCcsIGxuZywgbnMsIHJlc291cmNlcyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImFkZFJlc291cmNlQnVuZGxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGFkZFJlc291cmNlQnVuZGxlKGxuZywgbnMsIHJlc291cmNlcywgZGVlcCwgb3ZlcndyaXRlKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDoge1xuICAgICAgICBzaWxlbnQ6IGZhbHNlXG4gICAgICB9O1xuICAgICAgdmFyIHBhdGggPSBbbG5nLCBuc107XG5cbiAgICAgIGlmIChsbmcuaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IGxuZy5zcGxpdCgnLicpO1xuICAgICAgICBkZWVwID0gcmVzb3VyY2VzO1xuICAgICAgICByZXNvdXJjZXMgPSBucztcbiAgICAgICAgbnMgPSBwYXRoWzFdO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFkZE5hbWVzcGFjZXMobnMpO1xuICAgICAgdmFyIHBhY2sgPSBnZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCkgfHwge307XG5cbiAgICAgIGlmIChkZWVwKSB7XG4gICAgICAgIGRlZXBFeHRlbmQocGFjaywgcmVzb3VyY2VzLCBvdmVyd3JpdGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFjayA9IF9vYmplY3RTcHJlYWQkMShfb2JqZWN0U3ByZWFkJDEoe30sIHBhY2spLCByZXNvdXJjZXMpO1xuICAgICAgfVxuXG4gICAgICBzZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCwgcGFjayk7XG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB0aGlzLmVtaXQoJ2FkZGVkJywgbG5nLCBucywgcmVzb3VyY2VzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVtb3ZlUmVzb3VyY2VCdW5kbGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVtb3ZlUmVzb3VyY2VCdW5kbGUobG5nLCBucykge1xuICAgICAgaWYgKHRoaXMuaGFzUmVzb3VyY2VCdW5kbGUobG5nLCBucykpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtsbmddW25zXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZW1vdmVOYW1lc3BhY2VzKG5zKTtcbiAgICAgIHRoaXMuZW1pdCgncmVtb3ZlZCcsIGxuZywgbnMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZShsbmcsIG5zKSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSB7XG4gICAgICBpZiAoIW5zKSBucyA9IHRoaXMub3B0aW9ucy5kZWZhdWx0TlM7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlBUEkgPT09ICd2MScpIHJldHVybiBfb2JqZWN0U3ByZWFkJDEoX29iamVjdFNwcmVhZCQxKHt9LCB7fSksIHRoaXMuZ2V0UmVzb3VyY2UobG5nLCBucykpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2UobG5nLCBucyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldERhdGFCeUxhbmd1YWdlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERhdGFCeUxhbmd1YWdlKGxuZykge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsbmddO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNMYW5ndWFnZVNvbWVUcmFuc2xhdGlvbnNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzTGFuZ3VhZ2VTb21lVHJhbnNsYXRpb25zKGxuZykge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLmdldERhdGFCeUxhbmd1YWdlKGxuZyk7XG4gICAgICB2YXIgbiA9IGRhdGEgJiYgT2JqZWN0LmtleXMoZGF0YSkgfHwgW107XG4gICAgICByZXR1cm4gISFuLmZpbmQoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIGRhdGFbdl0gJiYgT2JqZWN0LmtleXMoZGF0YVt2XSkubGVuZ3RoID4gMDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0b0pTT05cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUmVzb3VyY2VTdG9yZTtcbn0oRXZlbnRFbWl0dGVyKTtcblxudmFyIHBvc3RQcm9jZXNzb3IgPSB7XG4gIHByb2Nlc3NvcnM6IHt9LFxuICBhZGRQb3N0UHJvY2Vzc29yOiBmdW5jdGlvbiBhZGRQb3N0UHJvY2Vzc29yKG1vZHVsZSkge1xuICAgIHRoaXMucHJvY2Vzc29yc1ttb2R1bGUubmFtZV0gPSBtb2R1bGU7XG4gIH0sXG4gIGhhbmRsZTogZnVuY3Rpb24gaGFuZGxlKHByb2Nlc3NvcnMsIHZhbHVlLCBrZXksIG9wdGlvbnMsIHRyYW5zbGF0b3IpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgcHJvY2Vzc29ycy5mb3JFYWNoKGZ1bmN0aW9uIChwcm9jZXNzb3IpIHtcbiAgICAgIGlmIChfdGhpcy5wcm9jZXNzb3JzW3Byb2Nlc3Nvcl0pIHZhbHVlID0gX3RoaXMucHJvY2Vzc29yc1twcm9jZXNzb3JdLnByb2Nlc3ModmFsdWUsIGtleSwgb3B0aW9ucywgdHJhbnNsYXRvcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5mdW5jdGlvbiBvd25LZXlzJDIob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHsgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyB9IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkJDIodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyQyKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMkMihPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyJDEoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QkMSgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QkMSgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG52YXIgY2hlY2tlZExvYWRlZEZvciA9IHt9O1xuXG52YXIgVHJhbnNsYXRvciA9IGZ1bmN0aW9uIChfRXZlbnRFbWl0dGVyKSB7XG4gIF9pbmhlcml0cyhUcmFuc2xhdG9yLCBfRXZlbnRFbWl0dGVyKTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyJDEoVHJhbnNsYXRvcik7XG5cbiAgZnVuY3Rpb24gVHJhbnNsYXRvcihzZXJ2aWNlcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmFuc2xhdG9yKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcyk7XG5cbiAgICBpZiAoaXNJRTEwKSB7XG4gICAgICBFdmVudEVtaXR0ZXIuY2FsbChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgfVxuXG4gICAgY29weShbJ3Jlc291cmNlU3RvcmUnLCAnbGFuZ3VhZ2VVdGlscycsICdwbHVyYWxSZXNvbHZlcicsICdpbnRlcnBvbGF0b3InLCAnYmFja2VuZENvbm5lY3RvcicsICdpMThuRm9ybWF0JywgJ3V0aWxzJ10sIHNlcnZpY2VzLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgX3RoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBpZiAoX3RoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgX3RoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3IgPSAnLic7XG4gICAgfVxuXG4gICAgX3RoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ3RyYW5zbGF0b3InKTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVHJhbnNsYXRvciwgW3tcbiAgICBrZXk6IFwiY2hhbmdlTGFuZ3VhZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2hhbmdlTGFuZ3VhZ2UobG5nKSB7XG4gICAgICBpZiAobG5nKSB0aGlzLmxhbmd1YWdlID0gbG5nO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJleGlzdHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZXhpc3RzKGtleSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHtcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge31cbiAgICAgIH07XG5cbiAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCB8fCBrZXkgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmUoa2V5LCBvcHRpb25zKTtcbiAgICAgIHJldHVybiByZXNvbHZlZCAmJiByZXNvbHZlZC5yZXMgIT09IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZXh0cmFjdEZyb21LZXlcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEZyb21LZXkoa2V5LCBvcHRpb25zKSB7XG4gICAgICB2YXIgbnNTZXBhcmF0b3IgPSBvcHRpb25zLm5zU2VwYXJhdG9yICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLm5zU2VwYXJhdG9yIDogdGhpcy5vcHRpb25zLm5zU2VwYXJhdG9yO1xuICAgICAgaWYgKG5zU2VwYXJhdG9yID09PSB1bmRlZmluZWQpIG5zU2VwYXJhdG9yID0gJzonO1xuICAgICAgdmFyIGtleVNlcGFyYXRvciA9IG9wdGlvbnMua2V5U2VwYXJhdG9yICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmtleVNlcGFyYXRvciA6IHRoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3I7XG4gICAgICB2YXIgbmFtZXNwYWNlcyA9IG9wdGlvbnMubnMgfHwgdGhpcy5vcHRpb25zLmRlZmF1bHROUyB8fCBbXTtcbiAgICAgIHZhciB3b3VsZENoZWNrRm9yTnNJbktleSA9IG5zU2VwYXJhdG9yICYmIGtleS5pbmRleE9mKG5zU2VwYXJhdG9yKSA+IC0xO1xuICAgICAgdmFyIHNlZW1zTmF0dXJhbExhbmd1YWdlID0gIXRoaXMub3B0aW9ucy51c2VyRGVmaW5lZEtleVNlcGFyYXRvciAmJiAhb3B0aW9ucy5rZXlTZXBhcmF0b3IgJiYgIXRoaXMub3B0aW9ucy51c2VyRGVmaW5lZE5zU2VwYXJhdG9yICYmICFvcHRpb25zLm5zU2VwYXJhdG9yICYmICFsb29rc0xpa2VPYmplY3RQYXRoKGtleSwgbnNTZXBhcmF0b3IsIGtleVNlcGFyYXRvcik7XG5cbiAgICAgIGlmICh3b3VsZENoZWNrRm9yTnNJbktleSAmJiAhc2VlbXNOYXR1cmFsTGFuZ3VhZ2UpIHtcbiAgICAgICAgdmFyIG0gPSBrZXkubWF0Y2godGhpcy5pbnRlcnBvbGF0b3IubmVzdGluZ1JlZ2V4cCk7XG5cbiAgICAgICAgaWYgKG0gJiYgbS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgbmFtZXNwYWNlczogbmFtZXNwYWNlc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcGFydHMgPSBrZXkuc3BsaXQobnNTZXBhcmF0b3IpO1xuICAgICAgICBpZiAobnNTZXBhcmF0b3IgIT09IGtleVNlcGFyYXRvciB8fCBuc1NlcGFyYXRvciA9PT0ga2V5U2VwYXJhdG9yICYmIHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKHBhcnRzWzBdKSA+IC0xKSBuYW1lc3BhY2VzID0gcGFydHMuc2hpZnQoKTtcbiAgICAgICAga2V5ID0gcGFydHMuam9pbihrZXlTZXBhcmF0b3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG5hbWVzcGFjZXMgPT09ICdzdHJpbmcnKSBuYW1lc3BhY2VzID0gW25hbWVzcGFjZXNdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIG5hbWVzcGFjZXM6IG5hbWVzcGFjZXNcbiAgICAgIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRyYW5zbGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0cmFuc2xhdGUoa2V5cywgb3B0aW9ucywgbGFzdEtleSkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIGlmIChfdHlwZW9mKG9wdGlvbnMpICE9PSAnb2JqZWN0JyAmJiB0aGlzLm9wdGlvbnMub3ZlcmxvYWRUcmFuc2xhdGlvbk9wdGlvbkhhbmRsZXIpIHtcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMub3B0aW9ucy5vdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcihhcmd1bWVudHMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcbiAgICAgIGlmIChrZXlzID09PSB1bmRlZmluZWQgfHwga2V5cyA9PT0gbnVsbCkgcmV0dXJuICcnO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSBrZXlzID0gW1N0cmluZyhrZXlzKV07XG4gICAgICB2YXIga2V5U2VwYXJhdG9yID0gb3B0aW9ucy5rZXlTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMua2V5U2VwYXJhdG9yIDogdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvcjtcblxuICAgICAgdmFyIF90aGlzJGV4dHJhY3RGcm9tS2V5ID0gdGhpcy5leHRyYWN0RnJvbUtleShrZXlzW2tleXMubGVuZ3RoIC0gMV0sIG9wdGlvbnMpLFxuICAgICAgICAgIGtleSA9IF90aGlzJGV4dHJhY3RGcm9tS2V5LmtleSxcbiAgICAgICAgICBuYW1lc3BhY2VzID0gX3RoaXMkZXh0cmFjdEZyb21LZXkubmFtZXNwYWNlcztcblxuICAgICAgdmFyIG5hbWVzcGFjZSA9IG5hbWVzcGFjZXNbbmFtZXNwYWNlcy5sZW5ndGggLSAxXTtcbiAgICAgIHZhciBsbmcgPSBvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlO1xuICAgICAgdmFyIGFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlID0gb3B0aW9ucy5hcHBlbmROYW1lc3BhY2VUb0NJTW9kZSB8fCB0aGlzLm9wdGlvbnMuYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGU7XG5cbiAgICAgIGlmIChsbmcgJiYgbG5nLnRvTG93ZXJDYXNlKCkgPT09ICdjaW1vZGUnKSB7XG4gICAgICAgIGlmIChhcHBlbmROYW1lc3BhY2VUb0NJTW9kZSkge1xuICAgICAgICAgIHZhciBuc1NlcGFyYXRvciA9IG9wdGlvbnMubnNTZXBhcmF0b3IgfHwgdGhpcy5vcHRpb25zLm5zU2VwYXJhdG9yO1xuICAgICAgICAgIHJldHVybiBuYW1lc3BhY2UgKyBuc1NlcGFyYXRvciArIGtleTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZShrZXlzLCBvcHRpb25zKTtcbiAgICAgIHZhciByZXMgPSByZXNvbHZlZCAmJiByZXNvbHZlZC5yZXM7XG4gICAgICB2YXIgcmVzVXNlZEtleSA9IHJlc29sdmVkICYmIHJlc29sdmVkLnVzZWRLZXkgfHwga2V5O1xuICAgICAgdmFyIHJlc0V4YWN0VXNlZEtleSA9IHJlc29sdmVkICYmIHJlc29sdmVkLmV4YWN0VXNlZEtleSB8fCBrZXk7XG4gICAgICB2YXIgcmVzVHlwZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkocmVzKTtcbiAgICAgIHZhciBub09iamVjdCA9IFsnW29iamVjdCBOdW1iZXJdJywgJ1tvYmplY3QgRnVuY3Rpb25dJywgJ1tvYmplY3QgUmVnRXhwXSddO1xuICAgICAgdmFyIGpvaW5BcnJheXMgPSBvcHRpb25zLmpvaW5BcnJheXMgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuam9pbkFycmF5cyA6IHRoaXMub3B0aW9ucy5qb2luQXJyYXlzO1xuICAgICAgdmFyIGhhbmRsZUFzT2JqZWN0SW5JMThuRm9ybWF0ID0gIXRoaXMuaTE4bkZvcm1hdCB8fCB0aGlzLmkxOG5Gb3JtYXQuaGFuZGxlQXNPYmplY3Q7XG4gICAgICB2YXIgaGFuZGxlQXNPYmplY3QgPSB0eXBlb2YgcmVzICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcmVzICE9PSAnYm9vbGVhbicgJiYgdHlwZW9mIHJlcyAhPT0gJ251bWJlcic7XG5cbiAgICAgIGlmIChoYW5kbGVBc09iamVjdEluSTE4bkZvcm1hdCAmJiByZXMgJiYgaGFuZGxlQXNPYmplY3QgJiYgbm9PYmplY3QuaW5kZXhPZihyZXNUeXBlKSA8IDAgJiYgISh0eXBlb2Ygam9pbkFycmF5cyA9PT0gJ3N0cmluZycgJiYgcmVzVHlwZSA9PT0gJ1tvYmplY3QgQXJyYXldJykpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnJldHVybk9iamVjdHMgJiYgIXRoaXMub3B0aW9ucy5yZXR1cm5PYmplY3RzKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMucmV0dXJuZWRPYmplY3RIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdhY2Nlc3NpbmcgYW4gb2JqZWN0IC0gYnV0IHJldHVybk9iamVjdHMgb3B0aW9ucyBpcyBub3QgZW5hYmxlZCEnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJldHVybmVkT2JqZWN0SGFuZGxlciA/IHRoaXMub3B0aW9ucy5yZXR1cm5lZE9iamVjdEhhbmRsZXIocmVzVXNlZEtleSwgcmVzLCBfb2JqZWN0U3ByZWFkJDIoX29iamVjdFNwcmVhZCQyKHt9LCBvcHRpb25zKSwge30sIHtcbiAgICAgICAgICAgIG5zOiBuYW1lc3BhY2VzXG4gICAgICAgICAgfSkpIDogXCJrZXkgJ1wiLmNvbmNhdChrZXksIFwiIChcIikuY29uY2F0KHRoaXMubGFuZ3VhZ2UsIFwiKScgcmV0dXJuZWQgYW4gb2JqZWN0IGluc3RlYWQgb2Ygc3RyaW5nLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChrZXlTZXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgcmVzVHlwZUlzQXJyYXkgPSByZXNUeXBlID09PSAnW29iamVjdCBBcnJheV0nO1xuICAgICAgICAgIHZhciBjb3B5ID0gcmVzVHlwZUlzQXJyYXkgPyBbXSA6IHt9O1xuICAgICAgICAgIHZhciBuZXdLZXlUb1VzZSA9IHJlc1R5cGVJc0FycmF5ID8gcmVzRXhhY3RVc2VkS2V5IDogcmVzVXNlZEtleTtcblxuICAgICAgICAgIGZvciAodmFyIG0gaW4gcmVzKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcywgbSkpIHtcbiAgICAgICAgICAgICAgdmFyIGRlZXBLZXkgPSBcIlwiLmNvbmNhdChuZXdLZXlUb1VzZSkuY29uY2F0KGtleVNlcGFyYXRvcikuY29uY2F0KG0pO1xuICAgICAgICAgICAgICBjb3B5W21dID0gdGhpcy50cmFuc2xhdGUoZGVlcEtleSwgX29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSwgb3B0aW9ucyksIHtcbiAgICAgICAgICAgICAgICBqb2luQXJyYXlzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBuczogbmFtZXNwYWNlc1xuICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgIGlmIChjb3B5W21dID09PSBkZWVwS2V5KSBjb3B5W21dID0gcmVzW21dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlcyA9IGNvcHk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaGFuZGxlQXNPYmplY3RJbkkxOG5Gb3JtYXQgJiYgdHlwZW9mIGpvaW5BcnJheXMgPT09ICdzdHJpbmcnICYmIHJlc1R5cGUgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICAgICAgcmVzID0gcmVzLmpvaW4oam9pbkFycmF5cyk7XG4gICAgICAgIGlmIChyZXMpIHJlcyA9IHRoaXMuZXh0ZW5kVHJhbnNsYXRpb24ocmVzLCBrZXlzLCBvcHRpb25zLCBsYXN0S2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciB1c2VkRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICB2YXIgdXNlZEtleSA9IGZhbHNlO1xuICAgICAgICB2YXIgbmVlZHNQbHVyYWxIYW5kbGluZyA9IG9wdGlvbnMuY291bnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9ucy5jb3VudCAhPT0gJ3N0cmluZyc7XG4gICAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBUcmFuc2xhdG9yLmhhc0RlZmF1bHRWYWx1ZShvcHRpb25zKTtcbiAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZVN1ZmZpeCA9IG5lZWRzUGx1cmFsSGFuZGxpbmcgPyB0aGlzLnBsdXJhbFJlc29sdmVyLmdldFN1ZmZpeChsbmcsIG9wdGlvbnMuY291bnQsIG9wdGlvbnMpIDogJyc7XG4gICAgICAgIHZhciBkZWZhdWx0VmFsdWUgPSBvcHRpb25zW1wiZGVmYXVsdFZhbHVlXCIuY29uY2F0KGRlZmF1bHRWYWx1ZVN1ZmZpeCldIHx8IG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkTG9va3VwKHJlcykgJiYgaGFzRGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgdXNlZERlZmF1bHQgPSB0cnVlO1xuICAgICAgICAgIHJlcyA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkTG9va3VwKHJlcykpIHtcbiAgICAgICAgICB1c2VkS2V5ID0gdHJ1ZTtcbiAgICAgICAgICByZXMgPSBrZXk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWlzc2luZ0tleU5vVmFsdWVGYWxsYmFja1RvS2V5ID0gb3B0aW9ucy5taXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXkgfHwgdGhpcy5vcHRpb25zLm1pc3NpbmdLZXlOb1ZhbHVlRmFsbGJhY2tUb0tleTtcbiAgICAgICAgdmFyIHJlc0Zvck1pc3NpbmcgPSBtaXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXkgJiYgdXNlZEtleSA/IHVuZGVmaW5lZCA6IHJlcztcbiAgICAgICAgdmFyIHVwZGF0ZU1pc3NpbmcgPSBoYXNEZWZhdWx0VmFsdWUgJiYgZGVmYXVsdFZhbHVlICE9PSByZXMgJiYgdGhpcy5vcHRpb25zLnVwZGF0ZU1pc3Npbmc7XG5cbiAgICAgICAgaWYgKHVzZWRLZXkgfHwgdXNlZERlZmF1bHQgfHwgdXBkYXRlTWlzc2luZykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyh1cGRhdGVNaXNzaW5nID8gJ3VwZGF0ZUtleScgOiAnbWlzc2luZ0tleScsIGxuZywgbmFtZXNwYWNlLCBrZXksIHVwZGF0ZU1pc3NpbmcgPyBkZWZhdWx0VmFsdWUgOiByZXMpO1xuXG4gICAgICAgICAgaWYgKGtleVNlcGFyYXRvcikge1xuICAgICAgICAgICAgdmFyIGZrID0gdGhpcy5yZXNvbHZlKGtleSwgX29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSwgb3B0aW9ucyksIHt9LCB7XG4gICAgICAgICAgICAgIGtleVNlcGFyYXRvcjogZmFsc2VcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGlmIChmayAmJiBmay5yZXMpIHRoaXMubG9nZ2VyLndhcm4oJ1NlZW1zIHRoZSBsb2FkZWQgdHJhbnNsYXRpb25zIHdlcmUgaW4gZmxhdCBKU09OIGZvcm1hdCBpbnN0ZWFkIG9mIG5lc3RlZC4gRWl0aGVyIHNldCBrZXlTZXBhcmF0b3I6IGZhbHNlIG9uIGluaXQgb3IgbWFrZSBzdXJlIHlvdXIgdHJhbnNsYXRpb25zIGFyZSBwdWJsaXNoZWQgaW4gbmVzdGVkIGZvcm1hdC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgbG5ncyA9IFtdO1xuICAgICAgICAgIHZhciBmYWxsYmFja0xuZ3MgPSB0aGlzLmxhbmd1YWdlVXRpbHMuZ2V0RmFsbGJhY2tDb2Rlcyh0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcsIG9wdGlvbnMubG5nIHx8IHRoaXMubGFuZ3VhZ2UpO1xuXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZ1RvID09PSAnZmFsbGJhY2snICYmIGZhbGxiYWNrTG5ncyAmJiBmYWxsYmFja0xuZ3NbMF0pIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmFsbGJhY2tMbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGxuZ3MucHVzaChmYWxsYmFja0xuZ3NbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nVG8gPT09ICdhbGwnKSB7XG4gICAgICAgICAgICBsbmdzID0gdGhpcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG5ncy5wdXNoKG9wdGlvbnMubG5nIHx8IHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBzZW5kID0gZnVuY3Rpb24gc2VuZChsLCBrLCBzcGVjaWZpY0RlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgICAgdmFyIGRlZmF1bHRGb3JNaXNzaW5nID0gaGFzRGVmYXVsdFZhbHVlICYmIHNwZWNpZmljRGVmYXVsdFZhbHVlICE9PSByZXMgPyBzcGVjaWZpY0RlZmF1bHRWYWx1ZSA6IHJlc0Zvck1pc3Npbmc7XG5cbiAgICAgICAgICAgIGlmIChfdGhpczIub3B0aW9ucy5taXNzaW5nS2V5SGFuZGxlcikge1xuICAgICAgICAgICAgICBfdGhpczIub3B0aW9ucy5taXNzaW5nS2V5SGFuZGxlcihsLCBuYW1lc3BhY2UsIGssIGRlZmF1bHRGb3JNaXNzaW5nLCB1cGRhdGVNaXNzaW5nLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXMyLmJhY2tlbmRDb25uZWN0b3IgJiYgX3RoaXMyLmJhY2tlbmRDb25uZWN0b3Iuc2F2ZU1pc3NpbmcpIHtcbiAgICAgICAgICAgICAgX3RoaXMyLmJhY2tlbmRDb25uZWN0b3Iuc2F2ZU1pc3NpbmcobCwgbmFtZXNwYWNlLCBrLCBkZWZhdWx0Rm9yTWlzc2luZywgdXBkYXRlTWlzc2luZywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF90aGlzMi5lbWl0KCdtaXNzaW5nS2V5JywgbCwgbmFtZXNwYWNlLCBrLCByZXMpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nUGx1cmFscyAmJiBuZWVkc1BsdXJhbEhhbmRsaW5nKSB7XG4gICAgICAgICAgICAgIGxuZ3MuZm9yRWFjaChmdW5jdGlvbiAobGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICBfdGhpczIucGx1cmFsUmVzb2x2ZXIuZ2V0U3VmZml4ZXMobGFuZ3VhZ2UpLmZvckVhY2goZnVuY3Rpb24gKHN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgc2VuZChbbGFuZ3VhZ2VdLCBrZXkgKyBzdWZmaXgsIG9wdGlvbnNbXCJkZWZhdWx0VmFsdWVcIi5jb25jYXQoc3VmZml4KV0gfHwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZW5kKGxuZ3MsIGtleSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXMgPSB0aGlzLmV4dGVuZFRyYW5zbGF0aW9uKHJlcywga2V5cywgb3B0aW9ucywgcmVzb2x2ZWQsIGxhc3RLZXkpO1xuICAgICAgICBpZiAodXNlZEtleSAmJiByZXMgPT09IGtleSAmJiB0aGlzLm9wdGlvbnMuYXBwZW5kTmFtZXNwYWNlVG9NaXNzaW5nS2V5KSByZXMgPSBcIlwiLmNvbmNhdChuYW1lc3BhY2UsIFwiOlwiKS5jb25jYXQoa2V5KTtcbiAgICAgICAgaWYgKCh1c2VkS2V5IHx8IHVzZWREZWZhdWx0KSAmJiB0aGlzLm9wdGlvbnMucGFyc2VNaXNzaW5nS2V5SGFuZGxlcikgcmVzID0gdGhpcy5vcHRpb25zLnBhcnNlTWlzc2luZ0tleUhhbmRsZXIocmVzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZXh0ZW5kVHJhbnNsYXRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZXh0ZW5kVHJhbnNsYXRpb24ocmVzLCBrZXksIG9wdGlvbnMsIHJlc29sdmVkLCBsYXN0S2V5KSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgaWYgKHRoaXMuaTE4bkZvcm1hdCAmJiB0aGlzLmkxOG5Gb3JtYXQucGFyc2UpIHtcbiAgICAgICAgcmVzID0gdGhpcy5pMThuRm9ybWF0LnBhcnNlKHJlcywgb3B0aW9ucywgcmVzb2x2ZWQudXNlZExuZywgcmVzb2x2ZWQudXNlZE5TLCByZXNvbHZlZC51c2VkS2V5LCB7XG4gICAgICAgICAgcmVzb2x2ZWQ6IHJlc29sdmVkXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICghb3B0aW9ucy5za2lwSW50ZXJwb2xhdGlvbikge1xuICAgICAgICBpZiAob3B0aW9ucy5pbnRlcnBvbGF0aW9uKSB0aGlzLmludGVycG9sYXRvci5pbml0KF9vYmplY3RTcHJlYWQkMihfb2JqZWN0U3ByZWFkJDIoe30sIG9wdGlvbnMpLCB7XG4gICAgICAgICAgaW50ZXJwb2xhdGlvbjogX29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24pLCBvcHRpb25zLmludGVycG9sYXRpb24pXG4gICAgICAgIH0pKTtcbiAgICAgICAgdmFyIHNraXBPblZhcmlhYmxlcyA9IHR5cGVvZiByZXMgPT09ICdzdHJpbmcnICYmIChvcHRpb25zLmludGVycG9sYXRpb24gJiYgb3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlcyB8fCB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXMpO1xuICAgICAgICB2YXIgbmVzdEJlZjtcblxuICAgICAgICBpZiAoc2tpcE9uVmFyaWFibGVzKSB7XG4gICAgICAgICAgdmFyIG5iID0gcmVzLm1hdGNoKHRoaXMuaW50ZXJwb2xhdG9yLm5lc3RpbmdSZWdleHApO1xuICAgICAgICAgIG5lc3RCZWYgPSBuYiAmJiBuYi5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGF0YSA9IG9wdGlvbnMucmVwbGFjZSAmJiB0eXBlb2Ygb3B0aW9ucy5yZXBsYWNlICE9PSAnc3RyaW5nJyA/IG9wdGlvbnMucmVwbGFjZSA6IG9wdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5kZWZhdWx0VmFyaWFibGVzKSBkYXRhID0gX29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZGVmYXVsdFZhcmlhYmxlcyksIGRhdGEpO1xuICAgICAgICByZXMgPSB0aGlzLmludGVycG9sYXRvci5pbnRlcnBvbGF0ZShyZXMsIGRhdGEsIG9wdGlvbnMubG5nIHx8IHRoaXMubGFuZ3VhZ2UsIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChza2lwT25WYXJpYWJsZXMpIHtcbiAgICAgICAgICB2YXIgbmEgPSByZXMubWF0Y2godGhpcy5pbnRlcnBvbGF0b3IubmVzdGluZ1JlZ2V4cCk7XG4gICAgICAgICAgdmFyIG5lc3RBZnQgPSBuYSAmJiBuYS5sZW5ndGg7XG4gICAgICAgICAgaWYgKG5lc3RCZWYgPCBuZXN0QWZ0KSBvcHRpb25zLm5lc3QgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLm5lc3QgIT09IGZhbHNlKSByZXMgPSB0aGlzLmludGVycG9sYXRvci5uZXN0KHJlcywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobGFzdEtleSAmJiBsYXN0S2V5WzBdID09PSBhcmdzWzBdICYmICFvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIF90aGlzMy5sb2dnZXIud2FybihcIkl0IHNlZW1zIHlvdSBhcmUgbmVzdGluZyByZWN1cnNpdmVseSBrZXk6IFwiLmNvbmNhdChhcmdzWzBdLCBcIiBpbiBrZXk6IFwiKS5jb25jYXQoa2V5WzBdKSk7XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBfdGhpczMudHJhbnNsYXRlLmFwcGx5KF90aGlzMywgYXJncy5jb25jYXQoW2tleV0pKTtcbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIGlmIChvcHRpb25zLmludGVycG9sYXRpb24pIHRoaXMuaW50ZXJwb2xhdG9yLnJlc2V0KCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBwb3N0UHJvY2VzcyA9IG9wdGlvbnMucG9zdFByb2Nlc3MgfHwgdGhpcy5vcHRpb25zLnBvc3RQcm9jZXNzO1xuICAgICAgdmFyIHBvc3RQcm9jZXNzb3JOYW1lcyA9IHR5cGVvZiBwb3N0UHJvY2VzcyA9PT0gJ3N0cmluZycgPyBbcG9zdFByb2Nlc3NdIDogcG9zdFByb2Nlc3M7XG5cbiAgICAgIGlmIChyZXMgIT09IHVuZGVmaW5lZCAmJiByZXMgIT09IG51bGwgJiYgcG9zdFByb2Nlc3Nvck5hbWVzICYmIHBvc3RQcm9jZXNzb3JOYW1lcy5sZW5ndGggJiYgb3B0aW9ucy5hcHBseVBvc3RQcm9jZXNzb3IgIT09IGZhbHNlKSB7XG4gICAgICAgIHJlcyA9IHBvc3RQcm9jZXNzb3IuaGFuZGxlKHBvc3RQcm9jZXNzb3JOYW1lcywgcmVzLCBrZXksIHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMucG9zdFByb2Nlc3NQYXNzUmVzb2x2ZWQgPyBfb2JqZWN0U3ByZWFkJDIoe1xuICAgICAgICAgIGkxOG5SZXNvbHZlZDogcmVzb2x2ZWRcbiAgICAgICAgfSwgb3B0aW9ucykgOiBvcHRpb25zLCB0aGlzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVzb2x2ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZXNvbHZlKGtleXMpIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICB2YXIgZm91bmQ7XG4gICAgICB2YXIgdXNlZEtleTtcbiAgICAgIHZhciBleGFjdFVzZWRLZXk7XG4gICAgICB2YXIgdXNlZExuZztcbiAgICAgIHZhciB1c2VkTlM7XG4gICAgICBpZiAodHlwZW9mIGtleXMgPT09ICdzdHJpbmcnKSBrZXlzID0gW2tleXNdO1xuICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgIGlmIChfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpIHJldHVybjtcblxuICAgICAgICB2YXIgZXh0cmFjdGVkID0gX3RoaXM0LmV4dHJhY3RGcm9tS2V5KGssIG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBrZXkgPSBleHRyYWN0ZWQua2V5O1xuICAgICAgICB1c2VkS2V5ID0ga2V5O1xuICAgICAgICB2YXIgbmFtZXNwYWNlcyA9IGV4dHJhY3RlZC5uYW1lc3BhY2VzO1xuICAgICAgICBpZiAoX3RoaXM0Lm9wdGlvbnMuZmFsbGJhY2tOUykgbmFtZXNwYWNlcyA9IG5hbWVzcGFjZXMuY29uY2F0KF90aGlzNC5vcHRpb25zLmZhbGxiYWNrTlMpO1xuICAgICAgICB2YXIgbmVlZHNQbHVyYWxIYW5kbGluZyA9IG9wdGlvbnMuY291bnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9ucy5jb3VudCAhPT0gJ3N0cmluZyc7XG5cbiAgICAgICAgdmFyIG5lZWRzWmVyb1N1ZmZpeExvb2t1cCA9IG5lZWRzUGx1cmFsSGFuZGxpbmcgJiYgIW9wdGlvbnMub3JkaW5hbCAmJiBvcHRpb25zLmNvdW50ID09PSAwICYmIF90aGlzNC5wbHVyYWxSZXNvbHZlci5zaG91bGRVc2VJbnRsQXBpKCk7XG5cbiAgICAgICAgdmFyIG5lZWRzQ29udGV4dEhhbmRsaW5nID0gb3B0aW9ucy5jb250ZXh0ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBvcHRpb25zLmNvbnRleHQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvcHRpb25zLmNvbnRleHQgPT09ICdudW1iZXInKSAmJiBvcHRpb25zLmNvbnRleHQgIT09ICcnO1xuICAgICAgICB2YXIgY29kZXMgPSBvcHRpb25zLmxuZ3MgPyBvcHRpb25zLmxuZ3MgOiBfdGhpczQubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkob3B0aW9ucy5sbmcgfHwgX3RoaXM0Lmxhbmd1YWdlLCBvcHRpb25zLmZhbGxiYWNrTG5nKTtcbiAgICAgICAgbmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uIChucykge1xuICAgICAgICAgIGlmIChfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpIHJldHVybjtcbiAgICAgICAgICB1c2VkTlMgPSBucztcblxuICAgICAgICAgIGlmICghY2hlY2tlZExvYWRlZEZvcltcIlwiLmNvbmNhdChjb2Rlc1swXSwgXCItXCIpLmNvbmNhdChucyldICYmIF90aGlzNC51dGlscyAmJiBfdGhpczQudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlICYmICFfdGhpczQudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlKHVzZWROUykpIHtcbiAgICAgICAgICAgIGNoZWNrZWRMb2FkZWRGb3JbXCJcIi5jb25jYXQoY29kZXNbMF0sIFwiLVwiKS5jb25jYXQobnMpXSA9IHRydWU7XG5cbiAgICAgICAgICAgIF90aGlzNC5sb2dnZXIud2FybihcImtleSBcXFwiXCIuY29uY2F0KHVzZWRLZXksIFwiXFxcIiBmb3IgbGFuZ3VhZ2VzIFxcXCJcIikuY29uY2F0KGNvZGVzLmpvaW4oJywgJyksIFwiXFxcIiB3b24ndCBnZXQgcmVzb2x2ZWQgYXMgbmFtZXNwYWNlIFxcXCJcIikuY29uY2F0KHVzZWROUywgXCJcXFwiIHdhcyBub3QgeWV0IGxvYWRlZFwiKSwgJ1RoaXMgbWVhbnMgc29tZXRoaW5nIElTIFdST05HIGluIHlvdXIgc2V0dXAuIFlvdSBhY2Nlc3MgdGhlIHQgZnVuY3Rpb24gYmVmb3JlIGkxOG5leHQuaW5pdCAvIGkxOG5leHQubG9hZE5hbWVzcGFjZSAvIGkxOG5leHQuY2hhbmdlTGFuZ3VhZ2Ugd2FzIGRvbmUuIFdhaXQgZm9yIHRoZSBjYWxsYmFjayBvciBQcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGFjY2Vzc2luZyBpdCEhIScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvZGVzLmZvckVhY2goZnVuY3Rpb24gKGNvZGUpIHtcbiAgICAgICAgICAgIGlmIChfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpIHJldHVybjtcbiAgICAgICAgICAgIHVzZWRMbmcgPSBjb2RlO1xuICAgICAgICAgICAgdmFyIGZpbmFsS2V5cyA9IFtrZXldO1xuXG4gICAgICAgICAgICBpZiAoX3RoaXM0LmkxOG5Gb3JtYXQgJiYgX3RoaXM0LmkxOG5Gb3JtYXQuYWRkTG9va3VwS2V5cykge1xuICAgICAgICAgICAgICBfdGhpczQuaTE4bkZvcm1hdC5hZGRMb29rdXBLZXlzKGZpbmFsS2V5cywga2V5LCBjb2RlLCBucywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgcGx1cmFsU3VmZml4O1xuICAgICAgICAgICAgICBpZiAobmVlZHNQbHVyYWxIYW5kbGluZykgcGx1cmFsU3VmZml4ID0gX3RoaXM0LnBsdXJhbFJlc29sdmVyLmdldFN1ZmZpeChjb2RlLCBvcHRpb25zLmNvdW50LCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgdmFyIHplcm9TdWZmaXggPSAnX3plcm8nO1xuXG4gICAgICAgICAgICAgIGlmIChuZWVkc1BsdXJhbEhhbmRsaW5nKSB7XG4gICAgICAgICAgICAgICAgZmluYWxLZXlzLnB1c2goa2V5ICsgcGx1cmFsU3VmZml4KTtcblxuICAgICAgICAgICAgICAgIGlmIChuZWVkc1plcm9TdWZmaXhMb29rdXApIHtcbiAgICAgICAgICAgICAgICAgIGZpbmFsS2V5cy5wdXNoKGtleSArIHplcm9TdWZmaXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChuZWVkc0NvbnRleHRIYW5kbGluZykge1xuICAgICAgICAgICAgICAgIHZhciBjb250ZXh0S2V5ID0gXCJcIi5jb25jYXQoa2V5KS5jb25jYXQoX3RoaXM0Lm9wdGlvbnMuY29udGV4dFNlcGFyYXRvcikuY29uY2F0KG9wdGlvbnMuY29udGV4dCk7XG4gICAgICAgICAgICAgICAgZmluYWxLZXlzLnB1c2goY29udGV4dEtleSk7XG5cbiAgICAgICAgICAgICAgICBpZiAobmVlZHNQbHVyYWxIYW5kbGluZykge1xuICAgICAgICAgICAgICAgICAgZmluYWxLZXlzLnB1c2goY29udGV4dEtleSArIHBsdXJhbFN1ZmZpeCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChuZWVkc1plcm9TdWZmaXhMb29rdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxLZXlzLnB1c2goY29udGV4dEtleSArIHplcm9TdWZmaXgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcG9zc2libGVLZXk7XG5cbiAgICAgICAgICAgIHdoaWxlIChwb3NzaWJsZUtleSA9IGZpbmFsS2V5cy5wb3AoKSkge1xuICAgICAgICAgICAgICBpZiAoIV90aGlzNC5pc1ZhbGlkTG9va3VwKGZvdW5kKSkge1xuICAgICAgICAgICAgICAgIGV4YWN0VXNlZEtleSA9IHBvc3NpYmxlS2V5O1xuICAgICAgICAgICAgICAgIGZvdW5kID0gX3RoaXM0LmdldFJlc291cmNlKGNvZGUsIG5zLCBwb3NzaWJsZUtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlczogZm91bmQsXG4gICAgICAgIHVzZWRLZXk6IHVzZWRLZXksXG4gICAgICAgIGV4YWN0VXNlZEtleTogZXhhY3RVc2VkS2V5LFxuICAgICAgICB1c2VkTG5nOiB1c2VkTG5nLFxuICAgICAgICB1c2VkTlM6IHVzZWROU1xuICAgICAgfTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNWYWxpZExvb2t1cFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc1ZhbGlkTG9va3VwKHJlcykge1xuICAgICAgcmV0dXJuIHJlcyAhPT0gdW5kZWZpbmVkICYmICEoIXRoaXMub3B0aW9ucy5yZXR1cm5OdWxsICYmIHJlcyA9PT0gbnVsbCkgJiYgISghdGhpcy5vcHRpb25zLnJldHVybkVtcHR5U3RyaW5nICYmIHJlcyA9PT0gJycpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSZXNvdXJjZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRSZXNvdXJjZShjb2RlLCBucywga2V5KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDoge307XG4gICAgICBpZiAodGhpcy5pMThuRm9ybWF0ICYmIHRoaXMuaTE4bkZvcm1hdC5nZXRSZXNvdXJjZSkgcmV0dXJuIHRoaXMuaTE4bkZvcm1hdC5nZXRSZXNvdXJjZShjb2RlLCBucywga2V5LCBvcHRpb25zKTtcbiAgICAgIHJldHVybiB0aGlzLnJlc291cmNlU3RvcmUuZ2V0UmVzb3VyY2UoY29kZSwgbnMsIGtleSwgb3B0aW9ucyk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiaGFzRGVmYXVsdFZhbHVlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhc0RlZmF1bHRWYWx1ZShvcHRpb25zKSB7XG4gICAgICB2YXIgcHJlZml4ID0gJ2RlZmF1bHRWYWx1ZSc7XG5cbiAgICAgIGZvciAodmFyIG9wdGlvbiBpbiBvcHRpb25zKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgb3B0aW9uKSAmJiBwcmVmaXggPT09IG9wdGlvbi5zdWJzdHJpbmcoMCwgcHJlZml4Lmxlbmd0aCkgJiYgdW5kZWZpbmVkICE9PSBvcHRpb25zW29wdGlvbl0pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRyYW5zbGF0b3I7XG59KEV2ZW50RW1pdHRlcik7XG5cbmZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59XG5cbnZhciBMYW5ndWFnZVV0aWwgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIExhbmd1YWdlVXRpbChvcHRpb25zKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExhbmd1YWdlVXRpbCk7XG5cbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3VwcG9ydGVkTG5ncyA9IHRoaXMub3B0aW9ucy5zdXBwb3J0ZWRMbmdzIHx8IGZhbHNlO1xuICAgIHRoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ2xhbmd1YWdlVXRpbHMnKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhMYW5ndWFnZVV0aWwsIFt7XG4gICAga2V5OiBcImdldFNjcmlwdFBhcnRGcm9tQ29kZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTY3JpcHRQYXJ0RnJvbUNvZGUoY29kZSkge1xuICAgICAgaWYgKCFjb2RlIHx8IGNvZGUuaW5kZXhPZignLScpIDwgMCkgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgcCA9IGNvZGUuc3BsaXQoJy0nKTtcbiAgICAgIGlmIChwLmxlbmd0aCA9PT0gMikgcmV0dXJuIG51bGw7XG4gICAgICBwLnBvcCgpO1xuICAgICAgaWYgKHBbcC5sZW5ndGggLSAxXS50b0xvd2VyQ2FzZSgpID09PSAneCcpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKHAuam9pbignLScpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSkge1xuICAgICAgaWYgKCFjb2RlIHx8IGNvZGUuaW5kZXhPZignLScpIDwgMCkgcmV0dXJuIGNvZGU7XG4gICAgICB2YXIgcCA9IGNvZGUuc3BsaXQoJy0nKTtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShwWzBdKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0TGFuZ3VhZ2VDb2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvcm1hdExhbmd1YWdlQ29kZShjb2RlKSB7XG4gICAgICBpZiAodHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnICYmIGNvZGUuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICAgICAgdmFyIHNwZWNpYWxDYXNlcyA9IFsnaGFucycsICdoYW50JywgJ2xhdG4nLCAnY3lybCcsICdjYW5zJywgJ21vbmcnLCAnYXJhYiddO1xuICAgICAgICB2YXIgcCA9IGNvZGUuc3BsaXQoJy0nKTtcblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvd2VyQ2FzZUxuZykge1xuICAgICAgICAgIHAgPSBwLm1hcChmdW5jdGlvbiAocGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChwLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIHBbMF0gPSBwWzBdLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgcFsxXSA9IHBbMV0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgICBpZiAoc3BlY2lhbENhc2VzLmluZGV4T2YocFsxXS50b0xvd2VyQ2FzZSgpKSA+IC0xKSBwWzFdID0gY2FwaXRhbGl6ZShwWzFdLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHAubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgcFswXSA9IHBbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBpZiAocFsxXS5sZW5ndGggPT09IDIpIHBbMV0gPSBwWzFdLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgaWYgKHBbMF0gIT09ICdzZ24nICYmIHBbMl0ubGVuZ3RoID09PSAyKSBwWzJdID0gcFsyXS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgIGlmIChzcGVjaWFsQ2FzZXMuaW5kZXhPZihwWzFdLnRvTG93ZXJDYXNlKCkpID4gLTEpIHBbMV0gPSBjYXBpdGFsaXplKHBbMV0udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgaWYgKHNwZWNpYWxDYXNlcy5pbmRleE9mKHBbMl0udG9Mb3dlckNhc2UoKSkgPiAtMSkgcFsyXSA9IGNhcGl0YWxpemUocFsyXS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwLmpvaW4oJy0nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5jbGVhbkNvZGUgfHwgdGhpcy5vcHRpb25zLmxvd2VyQ2FzZUxuZyA/IGNvZGUudG9Mb3dlckNhc2UoKSA6IGNvZGU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImlzU3VwcG9ydGVkQ29kZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc1N1cHBvcnRlZENvZGUoY29kZSkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb2FkID09PSAnbGFuZ3VhZ2VPbmx5JyB8fCB0aGlzLm9wdGlvbnMubm9uRXhwbGljaXRTdXBwb3J0ZWRMbmdzKSB7XG4gICAgICAgIGNvZGUgPSB0aGlzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gIXRoaXMuc3VwcG9ydGVkTG5ncyB8fCAhdGhpcy5zdXBwb3J0ZWRMbmdzLmxlbmd0aCB8fCB0aGlzLnN1cHBvcnRlZExuZ3MuaW5kZXhPZihjb2RlKSA+IC0xO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRCZXN0TWF0Y2hGcm9tQ29kZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0QmVzdE1hdGNoRnJvbUNvZGVzKGNvZGVzKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICBpZiAoIWNvZGVzKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBmb3VuZDtcbiAgICAgIGNvZGVzLmZvckVhY2goZnVuY3Rpb24gKGNvZGUpIHtcbiAgICAgICAgaWYgKGZvdW5kKSByZXR1cm47XG5cbiAgICAgICAgdmFyIGNsZWFuZWRMbmcgPSBfdGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSk7XG5cbiAgICAgICAgaWYgKCFfdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MgfHwgX3RoaXMuaXNTdXBwb3J0ZWRDb2RlKGNsZWFuZWRMbmcpKSBmb3VuZCA9IGNsZWFuZWRMbmc7XG4gICAgICB9KTtcblxuICAgICAgaWYgKCFmb3VuZCAmJiB0aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5ncykge1xuICAgICAgICBjb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgICAgaWYgKGZvdW5kKSByZXR1cm47XG5cbiAgICAgICAgICB2YXIgbG5nT25seSA9IF90aGlzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpO1xuXG4gICAgICAgICAgaWYgKF90aGlzLmlzU3VwcG9ydGVkQ29kZShsbmdPbmx5KSkgcmV0dXJuIGZvdW5kID0gbG5nT25seTtcbiAgICAgICAgICBmb3VuZCA9IF90aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5ncy5maW5kKGZ1bmN0aW9uIChzdXBwb3J0ZWRMbmcpIHtcbiAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRMbmcuaW5kZXhPZihsbmdPbmx5KSA9PT0gMCkgcmV0dXJuIHN1cHBvcnRlZExuZztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZm91bmQpIGZvdW5kID0gdGhpcy5nZXRGYWxsYmFja0NvZGVzKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZylbMF07XG4gICAgICByZXR1cm4gZm91bmQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldEZhbGxiYWNrQ29kZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RmFsbGJhY2tDb2RlcyhmYWxsYmFja3MsIGNvZGUpIHtcbiAgICAgIGlmICghZmFsbGJhY2tzKSByZXR1cm4gW107XG4gICAgICBpZiAodHlwZW9mIGZhbGxiYWNrcyA9PT0gJ2Z1bmN0aW9uJykgZmFsbGJhY2tzID0gZmFsbGJhY2tzKGNvZGUpO1xuICAgICAgaWYgKHR5cGVvZiBmYWxsYmFja3MgPT09ICdzdHJpbmcnKSBmYWxsYmFja3MgPSBbZmFsbGJhY2tzXTtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KGZhbGxiYWNrcykgPT09ICdbb2JqZWN0IEFycmF5XScpIHJldHVybiBmYWxsYmFja3M7XG4gICAgICBpZiAoIWNvZGUpIHJldHVybiBmYWxsYmFja3NbXCJkZWZhdWx0XCJdIHx8IFtdO1xuICAgICAgdmFyIGZvdW5kID0gZmFsbGJhY2tzW2NvZGVdO1xuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSBmYWxsYmFja3NbdGhpcy5nZXRTY3JpcHRQYXJ0RnJvbUNvZGUoY29kZSldO1xuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSBmYWxsYmFja3NbdGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSldO1xuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSBmYWxsYmFja3NbdGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKV07XG4gICAgICBpZiAoIWZvdW5kKSBmb3VuZCA9IGZhbGxiYWNrc1tcImRlZmF1bHRcIl07XG4gICAgICByZXR1cm4gZm91bmQgfHwgW107XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRvUmVzb2x2ZUhpZXJhcmNoeVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b1Jlc29sdmVIaWVyYXJjaHkoY29kZSwgZmFsbGJhY2tDb2RlKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIGZhbGxiYWNrQ29kZXMgPSB0aGlzLmdldEZhbGxiYWNrQ29kZXMoZmFsbGJhY2tDb2RlIHx8IHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyB8fCBbXSwgY29kZSk7XG4gICAgICB2YXIgY29kZXMgPSBbXTtcblxuICAgICAgdmFyIGFkZENvZGUgPSBmdW5jdGlvbiBhZGRDb2RlKGMpIHtcbiAgICAgICAgaWYgKCFjKSByZXR1cm47XG5cbiAgICAgICAgaWYgKF90aGlzMi5pc1N1cHBvcnRlZENvZGUoYykpIHtcbiAgICAgICAgICBjb2Rlcy5wdXNoKGMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzMi5sb2dnZXIud2FybihcInJlamVjdGluZyBsYW5ndWFnZSBjb2RlIG5vdCBmb3VuZCBpbiBzdXBwb3J0ZWRMbmdzOiBcIi5jb25jYXQoYykpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnICYmIGNvZGUuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb2FkICE9PSAnbGFuZ3VhZ2VPbmx5JykgYWRkQ29kZSh0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShjb2RlKSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9hZCAhPT0gJ2xhbmd1YWdlT25seScgJiYgdGhpcy5vcHRpb25zLmxvYWQgIT09ICdjdXJyZW50T25seScpIGFkZENvZGUodGhpcy5nZXRTY3JpcHRQYXJ0RnJvbUNvZGUoY29kZSkpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvYWQgIT09ICdjdXJyZW50T25seScpIGFkZENvZGUodGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJykge1xuICAgICAgICBhZGRDb2RlKHRoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpKTtcbiAgICAgIH1cblxuICAgICAgZmFsbGJhY2tDb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChmYykge1xuICAgICAgICBpZiAoY29kZXMuaW5kZXhPZihmYykgPCAwKSBhZGRDb2RlKF90aGlzMi5mb3JtYXRMYW5ndWFnZUNvZGUoZmMpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvZGVzO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMYW5ndWFnZVV0aWw7XG59KCk7XG5cbnZhciBzZXRzID0gW3tcbiAgbG5nczogWydhY2gnLCAnYWsnLCAnYW0nLCAnYXJuJywgJ2JyJywgJ2ZpbCcsICdndW4nLCAnbG4nLCAnbWZlJywgJ21nJywgJ21pJywgJ29jJywgJ3B0JywgJ3B0LUJSJywgJ3RnJywgJ3RsJywgJ3RpJywgJ3RyJywgJ3V6JywgJ3dhJ10sXG4gIG5yOiBbMSwgMl0sXG4gIGZjOiAxXG59LCB7XG4gIGxuZ3M6IFsnYWYnLCAnYW4nLCAnYXN0JywgJ2F6JywgJ2JnJywgJ2JuJywgJ2NhJywgJ2RhJywgJ2RlJywgJ2RldicsICdlbCcsICdlbicsICdlbycsICdlcycsICdldCcsICdldScsICdmaScsICdmbycsICdmdXInLCAnZnknLCAnZ2wnLCAnZ3UnLCAnaGEnLCAnaGknLCAnaHUnLCAnaHknLCAnaWEnLCAnaXQnLCAna2snLCAna24nLCAna3UnLCAnbGInLCAnbWFpJywgJ21sJywgJ21uJywgJ21yJywgJ25haCcsICduYXAnLCAnbmInLCAnbmUnLCAnbmwnLCAnbm4nLCAnbm8nLCAnbnNvJywgJ3BhJywgJ3BhcCcsICdwbXMnLCAncHMnLCAncHQtUFQnLCAncm0nLCAnc2NvJywgJ3NlJywgJ3NpJywgJ3NvJywgJ3NvbicsICdzcScsICdzdicsICdzdycsICd0YScsICd0ZScsICd0aycsICd1cicsICd5byddLFxuICBucjogWzEsIDJdLFxuICBmYzogMlxufSwge1xuICBsbmdzOiBbJ2F5JywgJ2JvJywgJ2NnZycsICdmYScsICdodCcsICdpZCcsICdqYScsICdqYm8nLCAna2EnLCAna20nLCAna28nLCAna3knLCAnbG8nLCAnbXMnLCAnc2FoJywgJ3N1JywgJ3RoJywgJ3R0JywgJ3VnJywgJ3ZpJywgJ3dvJywgJ3poJ10sXG4gIG5yOiBbMV0sXG4gIGZjOiAzXG59LCB7XG4gIGxuZ3M6IFsnYmUnLCAnYnMnLCAnY25yJywgJ2R6JywgJ2hyJywgJ3J1JywgJ3NyJywgJ3VrJ10sXG4gIG5yOiBbMSwgMiwgNV0sXG4gIGZjOiA0XG59LCB7XG4gIGxuZ3M6IFsnYXInXSxcbiAgbnI6IFswLCAxLCAyLCAzLCAxMSwgMTAwXSxcbiAgZmM6IDVcbn0sIHtcbiAgbG5nczogWydjcycsICdzayddLFxuICBucjogWzEsIDIsIDVdLFxuICBmYzogNlxufSwge1xuICBsbmdzOiBbJ2NzYicsICdwbCddLFxuICBucjogWzEsIDIsIDVdLFxuICBmYzogN1xufSwge1xuICBsbmdzOiBbJ2N5J10sXG4gIG5yOiBbMSwgMiwgMywgOF0sXG4gIGZjOiA4XG59LCB7XG4gIGxuZ3M6IFsnZnInXSxcbiAgbnI6IFsxLCAyXSxcbiAgZmM6IDlcbn0sIHtcbiAgbG5nczogWydnYSddLFxuICBucjogWzEsIDIsIDMsIDcsIDExXSxcbiAgZmM6IDEwXG59LCB7XG4gIGxuZ3M6IFsnZ2QnXSxcbiAgbnI6IFsxLCAyLCAzLCAyMF0sXG4gIGZjOiAxMVxufSwge1xuICBsbmdzOiBbJ2lzJ10sXG4gIG5yOiBbMSwgMl0sXG4gIGZjOiAxMlxufSwge1xuICBsbmdzOiBbJ2p2J10sXG4gIG5yOiBbMCwgMV0sXG4gIGZjOiAxM1xufSwge1xuICBsbmdzOiBbJ2t3J10sXG4gIG5yOiBbMSwgMiwgMywgNF0sXG4gIGZjOiAxNFxufSwge1xuICBsbmdzOiBbJ2x0J10sXG4gIG5yOiBbMSwgMiwgMTBdLFxuICBmYzogMTVcbn0sIHtcbiAgbG5nczogWydsdiddLFxuICBucjogWzEsIDIsIDBdLFxuICBmYzogMTZcbn0sIHtcbiAgbG5nczogWydtayddLFxuICBucjogWzEsIDJdLFxuICBmYzogMTdcbn0sIHtcbiAgbG5nczogWydtbmsnXSxcbiAgbnI6IFswLCAxLCAyXSxcbiAgZmM6IDE4XG59LCB7XG4gIGxuZ3M6IFsnbXQnXSxcbiAgbnI6IFsxLCAyLCAxMSwgMjBdLFxuICBmYzogMTlcbn0sIHtcbiAgbG5nczogWydvciddLFxuICBucjogWzIsIDFdLFxuICBmYzogMlxufSwge1xuICBsbmdzOiBbJ3JvJ10sXG4gIG5yOiBbMSwgMiwgMjBdLFxuICBmYzogMjBcbn0sIHtcbiAgbG5nczogWydzbCddLFxuICBucjogWzUsIDEsIDIsIDNdLFxuICBmYzogMjFcbn0sIHtcbiAgbG5nczogWydoZScsICdpdyddLFxuICBucjogWzEsIDIsIDIwLCAyMV0sXG4gIGZjOiAyMlxufV07XG52YXIgX3J1bGVzUGx1cmFsc1R5cGVzID0ge1xuICAxOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPiAxKTtcbiAgfSxcbiAgMjogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICE9IDEpO1xuICB9LFxuICAzOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gMDtcbiAgfSxcbiAgNDogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICUgMTAgPT0gMSAmJiBuICUgMTAwICE9IDExID8gMCA6IG4gJSAxMCA+PSAyICYmIG4gJSAxMCA8PSA0ICYmIChuICUgMTAwIDwgMTAgfHwgbiAlIDEwMCA+PSAyMCkgPyAxIDogMik7XG4gIH0sXG4gIDU6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAwID8gMCA6IG4gPT0gMSA/IDEgOiBuID09IDIgPyAyIDogbiAlIDEwMCA+PSAzICYmIG4gJSAxMDAgPD0gMTAgPyAzIDogbiAlIDEwMCA+PSAxMSA/IDQgOiA1KTtcbiAgfSxcbiAgNjogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA+PSAyICYmIG4gPD0gNCA/IDEgOiAyKTtcbiAgfSxcbiAgNzogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiAlIDEwID49IDIgJiYgbiAlIDEwIDw9IDQgJiYgKG4gJSAxMDAgPCAxMCB8fCBuICUgMTAwID49IDIwKSA/IDEgOiAyKTtcbiAgfSxcbiAgODogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA9PSAyID8gMSA6IG4gIT0gOCAmJiBuICE9IDExID8gMiA6IDMpO1xuICB9LFxuICA5OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPj0gMik7XG4gIH0sXG4gIDEwOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID09IDIgPyAxIDogbiA8IDcgPyAyIDogbiA8IDExID8gMyA6IDQpO1xuICB9LFxuICAxMTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgfHwgbiA9PSAxMSA/IDAgOiBuID09IDIgfHwgbiA9PSAxMiA/IDEgOiBuID4gMiAmJiBuIDwgMjAgPyAyIDogMyk7XG4gIH0sXG4gIDEyOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMCAhPSAxIHx8IG4gJSAxMDAgPT0gMTEpO1xuICB9LFxuICAxMzogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICE9PSAwKTtcbiAgfSxcbiAgMTQ6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMiA/IDEgOiBuID09IDMgPyAyIDogMyk7XG4gIH0sXG4gIDE1OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMCA9PSAxICYmIG4gJSAxMDAgIT0gMTEgPyAwIDogbiAlIDEwID49IDIgJiYgKG4gJSAxMDAgPCAxMCB8fCBuICUgMTAwID49IDIwKSA/IDEgOiAyKTtcbiAgfSxcbiAgMTY6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAlIDEwID09IDEgJiYgbiAlIDEwMCAhPSAxMSA/IDAgOiBuICE9PSAwID8gMSA6IDIpO1xuICB9LFxuICAxNzogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgfHwgbiAlIDEwID09IDEgJiYgbiAlIDEwMCAhPSAxMSA/IDAgOiAxKTtcbiAgfSxcbiAgMTg6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAwID8gMCA6IG4gPT0gMSA/IDEgOiAyKTtcbiAgfSxcbiAgMTk6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMCB8fCBuICUgMTAwID4gMSAmJiBuICUgMTAwIDwgMTEgPyAxIDogbiAlIDEwMCA+IDEwICYmIG4gJSAxMDAgPCAyMCA/IDIgOiAzKTtcbiAgfSxcbiAgMjA6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMCB8fCBuICUgMTAwID4gMCAmJiBuICUgMTAwIDwgMjAgPyAxIDogMik7XG4gIH0sXG4gIDIxOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMDAgPT0gMSA/IDEgOiBuICUgMTAwID09IDIgPyAyIDogbiAlIDEwMCA9PSAzIHx8IG4gJSAxMDAgPT0gNCA/IDMgOiAwKTtcbiAgfSxcbiAgMjI6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMiA/IDEgOiAobiA8IDAgfHwgbiA+IDEwKSAmJiBuICUgMTAgPT0gMCA/IDIgOiAzKTtcbiAgfVxufTtcbnZhciBkZXByZWNhdGVkSnNvblZlcnNpb25zID0gWyd2MScsICd2MicsICd2MyddO1xudmFyIHN1ZmZpeGVzT3JkZXIgPSB7XG4gIHplcm86IDAsXG4gIG9uZTogMSxcbiAgdHdvOiAyLFxuICBmZXc6IDMsXG4gIG1hbnk6IDQsXG4gIG90aGVyOiA1XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVSdWxlcygpIHtcbiAgdmFyIHJ1bGVzID0ge307XG4gIHNldHMuZm9yRWFjaChmdW5jdGlvbiAoc2V0KSB7XG4gICAgc2V0LmxuZ3MuZm9yRWFjaChmdW5jdGlvbiAobCkge1xuICAgICAgcnVsZXNbbF0gPSB7XG4gICAgICAgIG51bWJlcnM6IHNldC5ucixcbiAgICAgICAgcGx1cmFsczogX3J1bGVzUGx1cmFsc1R5cGVzW3NldC5mY11cbiAgICAgIH07XG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gcnVsZXM7XG59XG5cbnZhciBQbHVyYWxSZXNvbHZlciA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gUGx1cmFsUmVzb2x2ZXIobGFuZ3VhZ2VVdGlscykge1xuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQbHVyYWxSZXNvbHZlcik7XG5cbiAgICB0aGlzLmxhbmd1YWdlVXRpbHMgPSBsYW5ndWFnZVV0aWxzO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgncGx1cmFsUmVzb2x2ZXInKTtcblxuICAgIGlmICgoIXRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTiB8fCB0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04gPT09ICd2NCcpICYmICh0eXBlb2YgSW50bCA9PT0gJ3VuZGVmaW5lZCcgfHwgIUludGwuUGx1cmFsUnVsZXMpKSB7XG4gICAgICB0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04gPSAndjMnO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ1lvdXIgZW52aXJvbm1lbnQgc2VlbXMgbm90IHRvIGJlIEludGwgQVBJIGNvbXBhdGlibGUsIHVzZSBhbiBJbnRsLlBsdXJhbFJ1bGVzIHBvbHlmaWxsLiBXaWxsIGZhbGxiYWNrIHRvIHRoZSBjb21wYXRpYmlsaXR5SlNPTiB2MyBmb3JtYXQgaGFuZGxpbmcuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5ydWxlcyA9IGNyZWF0ZVJ1bGVzKCk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUGx1cmFsUmVzb2x2ZXIsIFt7XG4gICAga2V5OiBcImFkZFJ1bGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUnVsZShsbmcsIG9iaikge1xuICAgICAgdGhpcy5ydWxlc1tsbmddID0gb2JqO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSdWxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJ1bGUoY29kZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgICBpZiAodGhpcy5zaG91bGRVc2VJbnRsQXBpKCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gbmV3IEludGwuUGx1cmFsUnVsZXMoY29kZSwge1xuICAgICAgICAgICAgdHlwZTogb3B0aW9ucy5vcmRpbmFsID8gJ29yZGluYWwnIDogJ2NhcmRpbmFsJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChfdW51c2VkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnJ1bGVzW2NvZGVdIHx8IHRoaXMucnVsZXNbdGhpcy5sYW5ndWFnZVV0aWxzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpXTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibmVlZHNQbHVyYWxcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbmVlZHNQbHVyYWwoY29kZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgdmFyIHJ1bGUgPSB0aGlzLmdldFJ1bGUoY29kZSwgb3B0aW9ucyk7XG5cbiAgICAgIGlmICh0aGlzLnNob3VsZFVzZUludGxBcGkoKSkge1xuICAgICAgICByZXR1cm4gcnVsZSAmJiBydWxlLnJlc29sdmVkT3B0aW9ucygpLnBsdXJhbENhdGVnb3JpZXMubGVuZ3RoID4gMTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJ1bGUgJiYgcnVsZS5udW1iZXJzLmxlbmd0aCA+IDE7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFBsdXJhbEZvcm1zT2ZLZXlcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UGx1cmFsRm9ybXNPZktleShjb2RlLCBrZXkpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcbiAgICAgIHJldHVybiB0aGlzLmdldFN1ZmZpeGVzKGNvZGUsIG9wdGlvbnMpLm1hcChmdW5jdGlvbiAoc3VmZml4KSB7XG4gICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChrZXkpLmNvbmNhdChzdWZmaXgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFN1ZmZpeGVzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFN1ZmZpeGVzKGNvZGUpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgIHZhciBydWxlID0gdGhpcy5nZXRSdWxlKGNvZGUsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAoIXJ1bGUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zaG91bGRVc2VJbnRsQXBpKCkpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGUucmVzb2x2ZWRPcHRpb25zKCkucGx1cmFsQ2F0ZWdvcmllcy5zb3J0KGZ1bmN0aW9uIChwbHVyYWxDYXRlZ29yeTEsIHBsdXJhbENhdGVnb3J5Mikge1xuICAgICAgICAgIHJldHVybiBzdWZmaXhlc09yZGVyW3BsdXJhbENhdGVnb3J5MV0gLSBzdWZmaXhlc09yZGVyW3BsdXJhbENhdGVnb3J5Ml07XG4gICAgICAgIH0pLm1hcChmdW5jdGlvbiAocGx1cmFsQ2F0ZWdvcnkpIHtcbiAgICAgICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMub3B0aW9ucy5wcmVwZW5kKS5jb25jYXQocGx1cmFsQ2F0ZWdvcnkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJ1bGUubnVtYmVycy5tYXAoZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICByZXR1cm4gX3RoaXMuZ2V0U3VmZml4KGNvZGUsIG51bWJlciwgb3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0U3VmZml4XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFN1ZmZpeChjb2RlLCBjb3VudCkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICAgICAgdmFyIHJ1bGUgPSB0aGlzLmdldFJ1bGUoY29kZSwgb3B0aW9ucyk7XG5cbiAgICAgIGlmIChydWxlKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFVzZUludGxBcGkoKSkge1xuICAgICAgICAgIHJldHVybiBcIlwiLmNvbmNhdCh0aGlzLm9wdGlvbnMucHJlcGVuZCkuY29uY2F0KHJ1bGUuc2VsZWN0KGNvdW50KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdWZmaXhSZXRyb0NvbXBhdGlibGUocnVsZSwgY291bnQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFwibm8gcGx1cmFsIHJ1bGUgZm91bmQgZm9yOiBcIi5jb25jYXQoY29kZSkpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRTdWZmaXhSZXRyb0NvbXBhdGlibGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U3VmZml4UmV0cm9Db21wYXRpYmxlKHJ1bGUsIGNvdW50KSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIGlkeCA9IHJ1bGUubm9BYnMgPyBydWxlLnBsdXJhbHMoY291bnQpIDogcnVsZS5wbHVyYWxzKE1hdGguYWJzKGNvdW50KSk7XG4gICAgICB2YXIgc3VmZml4ID0gcnVsZS5udW1iZXJzW2lkeF07XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2ltcGxpZnlQbHVyYWxTdWZmaXggJiYgcnVsZS5udW1iZXJzLmxlbmd0aCA9PT0gMiAmJiBydWxlLm51bWJlcnNbMF0gPT09IDEpIHtcbiAgICAgICAgaWYgKHN1ZmZpeCA9PT0gMikge1xuICAgICAgICAgIHN1ZmZpeCA9ICdwbHVyYWwnO1xuICAgICAgICB9IGVsc2UgaWYgKHN1ZmZpeCA9PT0gMSkge1xuICAgICAgICAgIHN1ZmZpeCA9ICcnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciByZXR1cm5TdWZmaXggPSBmdW5jdGlvbiByZXR1cm5TdWZmaXgoKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIub3B0aW9ucy5wcmVwZW5kICYmIHN1ZmZpeC50b1N0cmluZygpID8gX3RoaXMyLm9wdGlvbnMucHJlcGVuZCArIHN1ZmZpeC50b1N0cmluZygpIDogc3VmZml4LnRvU3RyaW5nKCk7XG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OID09PSAndjEnKSB7XG4gICAgICAgIGlmIChzdWZmaXggPT09IDEpIHJldHVybiAnJztcbiAgICAgICAgaWYgKHR5cGVvZiBzdWZmaXggPT09ICdudW1iZXInKSByZXR1cm4gXCJfcGx1cmFsX1wiLmNvbmNhdChzdWZmaXgudG9TdHJpbmcoKSk7XG4gICAgICAgIHJldHVybiByZXR1cm5TdWZmaXgoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OID09PSAndjInKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5TdWZmaXgoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLnNpbXBsaWZ5UGx1cmFsU3VmZml4ICYmIHJ1bGUubnVtYmVycy5sZW5ndGggPT09IDIgJiYgcnVsZS5udW1iZXJzWzBdID09PSAxKSB7XG4gICAgICAgIHJldHVybiByZXR1cm5TdWZmaXgoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wcmVwZW5kICYmIGlkeC50b1N0cmluZygpID8gdGhpcy5vcHRpb25zLnByZXBlbmQgKyBpZHgudG9TdHJpbmcoKSA6IGlkeC50b1N0cmluZygpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzaG91bGRVc2VJbnRsQXBpXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNob3VsZFVzZUludGxBcGkoKSB7XG4gICAgICByZXR1cm4gIWRlcHJlY2F0ZWRKc29uVmVyc2lvbnMuaW5jbHVkZXModGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUGx1cmFsUmVzb2x2ZXI7XG59KCk7XG5cbmZ1bmN0aW9uIG93bktleXMkMyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgeyBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IH0ga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQkMyh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzJDMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyQzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgSW50ZXJwb2xhdG9yID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBJbnRlcnBvbGF0b3IoKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEludGVycG9sYXRvcik7XG5cbiAgICB0aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXIuY3JlYXRlKCdpbnRlcnBvbGF0b3InKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgdGhpcy5mb3JtYXQgPSBvcHRpb25zLmludGVycG9sYXRpb24gJiYgb3B0aW9ucy5pbnRlcnBvbGF0aW9uLmZvcm1hdCB8fCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgdGhpcy5pbml0KG9wdGlvbnMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEludGVycG9sYXRvciwgW3tcbiAgICBrZXk6IFwiaW5pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgICAgaWYgKCFvcHRpb25zLmludGVycG9sYXRpb24pIG9wdGlvbnMuaW50ZXJwb2xhdGlvbiA9IHtcbiAgICAgICAgZXNjYXBlVmFsdWU6IHRydWVcbiAgICAgIH07XG4gICAgICB2YXIgaU9wdHMgPSBvcHRpb25zLmludGVycG9sYXRpb247XG4gICAgICB0aGlzLmVzY2FwZSA9IGlPcHRzLmVzY2FwZSAhPT0gdW5kZWZpbmVkID8gaU9wdHMuZXNjYXBlIDogZXNjYXBlO1xuICAgICAgdGhpcy5lc2NhcGVWYWx1ZSA9IGlPcHRzLmVzY2FwZVZhbHVlICE9PSB1bmRlZmluZWQgPyBpT3B0cy5lc2NhcGVWYWx1ZSA6IHRydWU7XG4gICAgICB0aGlzLnVzZVJhd1ZhbHVlVG9Fc2NhcGUgPSBpT3B0cy51c2VSYXdWYWx1ZVRvRXNjYXBlICE9PSB1bmRlZmluZWQgPyBpT3B0cy51c2VSYXdWYWx1ZVRvRXNjYXBlIDogZmFsc2U7XG4gICAgICB0aGlzLnByZWZpeCA9IGlPcHRzLnByZWZpeCA/IHJlZ2V4RXNjYXBlKGlPcHRzLnByZWZpeCkgOiBpT3B0cy5wcmVmaXhFc2NhcGVkIHx8ICd7eyc7XG4gICAgICB0aGlzLnN1ZmZpeCA9IGlPcHRzLnN1ZmZpeCA/IHJlZ2V4RXNjYXBlKGlPcHRzLnN1ZmZpeCkgOiBpT3B0cy5zdWZmaXhFc2NhcGVkIHx8ICd9fSc7XG4gICAgICB0aGlzLmZvcm1hdFNlcGFyYXRvciA9IGlPcHRzLmZvcm1hdFNlcGFyYXRvciA/IGlPcHRzLmZvcm1hdFNlcGFyYXRvciA6IGlPcHRzLmZvcm1hdFNlcGFyYXRvciB8fCAnLCc7XG4gICAgICB0aGlzLnVuZXNjYXBlUHJlZml4ID0gaU9wdHMudW5lc2NhcGVTdWZmaXggPyAnJyA6IGlPcHRzLnVuZXNjYXBlUHJlZml4IHx8ICctJztcbiAgICAgIHRoaXMudW5lc2NhcGVTdWZmaXggPSB0aGlzLnVuZXNjYXBlUHJlZml4ID8gJycgOiBpT3B0cy51bmVzY2FwZVN1ZmZpeCB8fCAnJztcbiAgICAgIHRoaXMubmVzdGluZ1ByZWZpeCA9IGlPcHRzLm5lc3RpbmdQcmVmaXggPyByZWdleEVzY2FwZShpT3B0cy5uZXN0aW5nUHJlZml4KSA6IGlPcHRzLm5lc3RpbmdQcmVmaXhFc2NhcGVkIHx8IHJlZ2V4RXNjYXBlKCckdCgnKTtcbiAgICAgIHRoaXMubmVzdGluZ1N1ZmZpeCA9IGlPcHRzLm5lc3RpbmdTdWZmaXggPyByZWdleEVzY2FwZShpT3B0cy5uZXN0aW5nU3VmZml4KSA6IGlPcHRzLm5lc3RpbmdTdWZmaXhFc2NhcGVkIHx8IHJlZ2V4RXNjYXBlKCcpJyk7XG4gICAgICB0aGlzLm5lc3RpbmdPcHRpb25zU2VwYXJhdG9yID0gaU9wdHMubmVzdGluZ09wdGlvbnNTZXBhcmF0b3IgPyBpT3B0cy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvciA6IGlPcHRzLm5lc3RpbmdPcHRpb25zU2VwYXJhdG9yIHx8ICcsJztcbiAgICAgIHRoaXMubWF4UmVwbGFjZXMgPSBpT3B0cy5tYXhSZXBsYWNlcyA/IGlPcHRzLm1heFJlcGxhY2VzIDogMTAwMDtcbiAgICAgIHRoaXMuYWx3YXlzRm9ybWF0ID0gaU9wdHMuYWx3YXlzRm9ybWF0ICE9PSB1bmRlZmluZWQgPyBpT3B0cy5hbHdheXNGb3JtYXQgOiBmYWxzZTtcbiAgICAgIHRoaXMucmVzZXRSZWdFeHAoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVzZXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzZXQoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zKSB0aGlzLmluaXQodGhpcy5vcHRpb25zKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVzZXRSZWdFeHBcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzZXRSZWdFeHAoKSB7XG4gICAgICB2YXIgcmVnZXhwU3RyID0gXCJcIi5jb25jYXQodGhpcy5wcmVmaXgsIFwiKC4rPylcIikuY29uY2F0KHRoaXMuc3VmZml4KTtcbiAgICAgIHRoaXMucmVnZXhwID0gbmV3IFJlZ0V4cChyZWdleHBTdHIsICdnJyk7XG4gICAgICB2YXIgcmVnZXhwVW5lc2NhcGVTdHIgPSBcIlwiLmNvbmNhdCh0aGlzLnByZWZpeCkuY29uY2F0KHRoaXMudW5lc2NhcGVQcmVmaXgsIFwiKC4rPylcIikuY29uY2F0KHRoaXMudW5lc2NhcGVTdWZmaXgpLmNvbmNhdCh0aGlzLnN1ZmZpeCk7XG4gICAgICB0aGlzLnJlZ2V4cFVuZXNjYXBlID0gbmV3IFJlZ0V4cChyZWdleHBVbmVzY2FwZVN0ciwgJ2cnKTtcbiAgICAgIHZhciBuZXN0aW5nUmVnZXhwU3RyID0gXCJcIi5jb25jYXQodGhpcy5uZXN0aW5nUHJlZml4LCBcIiguKz8pXCIpLmNvbmNhdCh0aGlzLm5lc3RpbmdTdWZmaXgpO1xuICAgICAgdGhpcy5uZXN0aW5nUmVnZXhwID0gbmV3IFJlZ0V4cChuZXN0aW5nUmVnZXhwU3RyLCAnZycpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpbnRlcnBvbGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbnRlcnBvbGF0ZShzdHIsIGRhdGEsIGxuZywgb3B0aW9ucykge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgdmFyIG1hdGNoO1xuICAgICAgdmFyIHZhbHVlO1xuICAgICAgdmFyIHJlcGxhY2VzO1xuICAgICAgdmFyIGRlZmF1bHREYXRhID0gdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uICYmIHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmRlZmF1bHRWYXJpYWJsZXMgfHwge307XG5cbiAgICAgIGZ1bmN0aW9uIHJlZ2V4U2FmZSh2YWwpIHtcbiAgICAgICAgcmV0dXJuIHZhbC5yZXBsYWNlKC9cXCQvZywgJyQkJCQnKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGhhbmRsZUZvcm1hdCA9IGZ1bmN0aW9uIGhhbmRsZUZvcm1hdChrZXkpIHtcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKF90aGlzLmZvcm1hdFNlcGFyYXRvcikgPCAwKSB7XG4gICAgICAgICAgdmFyIHBhdGggPSBnZXRQYXRoV2l0aERlZmF1bHRzKGRhdGEsIGRlZmF1bHREYXRhLCBrZXkpO1xuICAgICAgICAgIHJldHVybiBfdGhpcy5hbHdheXNGb3JtYXQgPyBfdGhpcy5mb3JtYXQocGF0aCwgdW5kZWZpbmVkLCBsbmcsIF9vYmplY3RTcHJlYWQkMyhfb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKHt9LCBvcHRpb25zKSwgZGF0YSksIHt9LCB7XG4gICAgICAgICAgICBpbnRlcnBvbGF0aW9ua2V5OiBrZXlcbiAgICAgICAgICB9KSkgOiBwYXRoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHAgPSBrZXkuc3BsaXQoX3RoaXMuZm9ybWF0U2VwYXJhdG9yKTtcbiAgICAgICAgdmFyIGsgPSBwLnNoaWZ0KCkudHJpbSgpO1xuICAgICAgICB2YXIgZiA9IHAuam9pbihfdGhpcy5mb3JtYXRTZXBhcmF0b3IpLnRyaW0oKTtcbiAgICAgICAgcmV0dXJuIF90aGlzLmZvcm1hdChnZXRQYXRoV2l0aERlZmF1bHRzKGRhdGEsIGRlZmF1bHREYXRhLCBrKSwgZiwgbG5nLCBfb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKF9vYmplY3RTcHJlYWQkMyh7fSwgb3B0aW9ucyksIGRhdGEpLCB7fSwge1xuICAgICAgICAgIGludGVycG9sYXRpb25rZXk6IGtcbiAgICAgICAgfSkpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXNldFJlZ0V4cCgpO1xuICAgICAgdmFyIG1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5taXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIgfHwgdGhpcy5vcHRpb25zLm1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlcjtcbiAgICAgIHZhciBza2lwT25WYXJpYWJsZXMgPSBvcHRpb25zICYmIG9wdGlvbnMuaW50ZXJwb2xhdGlvbiAmJiBvcHRpb25zLmludGVycG9sYXRpb24uc2tpcE9uVmFyaWFibGVzIHx8IHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlcztcbiAgICAgIHZhciB0b2RvcyA9IFt7XG4gICAgICAgIHJlZ2V4OiB0aGlzLnJlZ2V4cFVuZXNjYXBlLFxuICAgICAgICBzYWZlVmFsdWU6IGZ1bmN0aW9uIHNhZmVWYWx1ZSh2YWwpIHtcbiAgICAgICAgICByZXR1cm4gcmVnZXhTYWZlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAgcmVnZXg6IHRoaXMucmVnZXhwLFxuICAgICAgICBzYWZlVmFsdWU6IGZ1bmN0aW9uIHNhZmVWYWx1ZSh2YWwpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZXNjYXBlVmFsdWUgPyByZWdleFNhZmUoX3RoaXMuZXNjYXBlKHZhbCkpIDogcmVnZXhTYWZlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH1dO1xuICAgICAgdG9kb3MuZm9yRWFjaChmdW5jdGlvbiAodG9kbykge1xuICAgICAgICByZXBsYWNlcyA9IDA7XG5cbiAgICAgICAgd2hpbGUgKG1hdGNoID0gdG9kby5yZWdleC5leGVjKHN0cikpIHtcbiAgICAgICAgICB2YWx1ZSA9IGhhbmRsZUZvcm1hdChtYXRjaFsxXS50cmltKCkpO1xuXG4gICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHZhciB0ZW1wID0gbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyKHN0ciwgbWF0Y2gsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IHR5cGVvZiB0ZW1wID09PSAnc3RyaW5nJyA/IHRlbXAgOiAnJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2tpcE9uVmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gbWF0Y2hbMF07XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgX3RoaXMubG9nZ2VyLndhcm4oXCJtaXNzZWQgdG8gcGFzcyBpbiB2YXJpYWJsZSBcIi5jb25jYXQobWF0Y2hbMV0sIFwiIGZvciBpbnRlcnBvbGF0aW5nIFwiKS5jb25jYXQoc3RyKSk7XG5cbiAgICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgJiYgIV90aGlzLnVzZVJhd1ZhbHVlVG9Fc2NhcGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbWFrZVN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHNhZmVWYWx1ZSA9IHRvZG8uc2FmZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtYXRjaFswXSwgc2FmZVZhbHVlKTtcblxuICAgICAgICAgIGlmIChza2lwT25WYXJpYWJsZXMpIHtcbiAgICAgICAgICAgIHRvZG8ucmVnZXgubGFzdEluZGV4ICs9IHNhZmVWYWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICB0b2RvLnJlZ2V4Lmxhc3RJbmRleCAtPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvZG8ucmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXBsYWNlcysrO1xuXG4gICAgICAgICAgaWYgKHJlcGxhY2VzID49IF90aGlzLm1heFJlcGxhY2VzKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibmVzdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBuZXN0KHN0ciwgZmMpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gICAgICB2YXIgbWF0Y2g7XG4gICAgICB2YXIgdmFsdWU7XG5cbiAgICAgIHZhciBjbG9uZWRPcHRpb25zID0gX29iamVjdFNwcmVhZCQzKHt9LCBvcHRpb25zKTtcblxuICAgICAgY2xvbmVkT3B0aW9ucy5hcHBseVBvc3RQcm9jZXNzb3IgPSBmYWxzZTtcbiAgICAgIGRlbGV0ZSBjbG9uZWRPcHRpb25zLmRlZmF1bHRWYWx1ZTtcblxuICAgICAgZnVuY3Rpb24gaGFuZGxlSGFzT3B0aW9ucyhrZXksIGluaGVyaXRlZE9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHNlcCA9IHRoaXMubmVzdGluZ09wdGlvbnNTZXBhcmF0b3I7XG4gICAgICAgIGlmIChrZXkuaW5kZXhPZihzZXApIDwgMCkgcmV0dXJuIGtleTtcbiAgICAgICAgdmFyIGMgPSBrZXkuc3BsaXQobmV3IFJlZ0V4cChcIlwiLmNvbmNhdChzZXAsIFwiWyBdKntcIikpKTtcbiAgICAgICAgdmFyIG9wdGlvbnNTdHJpbmcgPSBcIntcIi5jb25jYXQoY1sxXSk7XG4gICAgICAgIGtleSA9IGNbMF07XG4gICAgICAgIG9wdGlvbnNTdHJpbmcgPSB0aGlzLmludGVycG9sYXRlKG9wdGlvbnNTdHJpbmcsIGNsb25lZE9wdGlvbnMpO1xuICAgICAgICBvcHRpb25zU3RyaW5nID0gb3B0aW9uc1N0cmluZy5yZXBsYWNlKC8nL2csICdcIicpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY2xvbmVkT3B0aW9ucyA9IEpTT04ucGFyc2Uob3B0aW9uc1N0cmluZyk7XG4gICAgICAgICAgaWYgKGluaGVyaXRlZE9wdGlvbnMpIGNsb25lZE9wdGlvbnMgPSBfb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKHt9LCBpbmhlcml0ZWRPcHRpb25zKSwgY2xvbmVkT3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwiZmFpbGVkIHBhcnNpbmcgb3B0aW9ucyBzdHJpbmcgaW4gbmVzdGluZyBmb3Iga2V5IFwiLmNvbmNhdChrZXkpLCBlKTtcbiAgICAgICAgICByZXR1cm4gXCJcIi5jb25jYXQoa2V5KS5jb25jYXQoc2VwKS5jb25jYXQob3B0aW9uc1N0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICBkZWxldGUgY2xvbmVkT3B0aW9ucy5kZWZhdWx0VmFsdWU7XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChtYXRjaCA9IHRoaXMubmVzdGluZ1JlZ2V4cC5leGVjKHN0cikpIHtcbiAgICAgICAgdmFyIGZvcm1hdHRlcnMgPSBbXTtcbiAgICAgICAgdmFyIGRvUmVkdWNlID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG1hdGNoWzBdLmluZGV4T2YodGhpcy5mb3JtYXRTZXBhcmF0b3IpICE9PSAtMSAmJiAhL3suKn0vLnRlc3QobWF0Y2hbMV0pKSB7XG4gICAgICAgICAgdmFyIHIgPSBtYXRjaFsxXS5zcGxpdCh0aGlzLmZvcm1hdFNlcGFyYXRvcikubWFwKGZ1bmN0aW9uIChlbGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbS50cmltKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbWF0Y2hbMV0gPSByLnNoaWZ0KCk7XG4gICAgICAgICAgZm9ybWF0dGVycyA9IHI7XG4gICAgICAgICAgZG9SZWR1Y2UgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSBmYyhoYW5kbGVIYXNPcHRpb25zLmNhbGwodGhpcywgbWF0Y2hbMV0udHJpbSgpLCBjbG9uZWRPcHRpb25zKSwgY2xvbmVkT3B0aW9ucyk7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBtYXRjaFswXSA9PT0gc3RyICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHZhbHVlID0gbWFrZVN0cmluZyh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJtaXNzZWQgdG8gcmVzb2x2ZSBcIi5jb25jYXQobWF0Y2hbMV0sIFwiIGZvciBuZXN0aW5nIFwiKS5jb25jYXQoc3RyKSk7XG4gICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkb1JlZHVjZSkge1xuICAgICAgICAgIHZhbHVlID0gZm9ybWF0dGVycy5yZWR1Y2UoZnVuY3Rpb24gKHYsIGYpIHtcbiAgICAgICAgICAgIHJldHVybiBfdGhpczIuZm9ybWF0KHYsIGYsIG9wdGlvbnMubG5nLCBfb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKHt9LCBvcHRpb25zKSwge30sIHtcbiAgICAgICAgICAgICAgaW50ZXJwb2xhdGlvbmtleTogbWF0Y2hbMV0udHJpbSgpXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSwgdmFsdWUudHJpbSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKG1hdGNoWzBdLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMucmVnZXhwLmxhc3RJbmRleCA9IDA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEludGVycG9sYXRvcjtcbn0oKTtcblxuZnVuY3Rpb24gb3duS2V5cyQ0KG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSB7IHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsgfSBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCQ0KHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMkNChPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzJDQoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIHBhcnNlRm9ybWF0U3RyKGZvcm1hdFN0cikge1xuICB2YXIgZm9ybWF0TmFtZSA9IGZvcm1hdFN0ci50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgdmFyIGZvcm1hdE9wdGlvbnMgPSB7fTtcblxuICBpZiAoZm9ybWF0U3RyLmluZGV4T2YoJygnKSA+IC0xKSB7XG4gICAgdmFyIHAgPSBmb3JtYXRTdHIuc3BsaXQoJygnKTtcbiAgICBmb3JtYXROYW1lID0gcFswXS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICB2YXIgb3B0U3RyID0gcFsxXS5zdWJzdHJpbmcoMCwgcFsxXS5sZW5ndGggLSAxKTtcblxuICAgIGlmIChmb3JtYXROYW1lID09PSAnY3VycmVuY3knICYmIG9wdFN0ci5pbmRleE9mKCc6JykgPCAwKSB7XG4gICAgICBpZiAoIWZvcm1hdE9wdGlvbnMuY3VycmVuY3kpIGZvcm1hdE9wdGlvbnMuY3VycmVuY3kgPSBvcHRTdHIudHJpbSgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybWF0TmFtZSA9PT0gJ3JlbGF0aXZldGltZScgJiYgb3B0U3RyLmluZGV4T2YoJzonKSA8IDApIHtcbiAgICAgIGlmICghZm9ybWF0T3B0aW9ucy5yYW5nZSkgZm9ybWF0T3B0aW9ucy5yYW5nZSA9IG9wdFN0ci50cmltKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBvcHRzID0gb3B0U3RyLnNwbGl0KCc7Jyk7XG4gICAgICBvcHRzLmZvckVhY2goZnVuY3Rpb24gKG9wdCkge1xuICAgICAgICBpZiAoIW9wdCkgcmV0dXJuO1xuXG4gICAgICAgIHZhciBfb3B0JHNwbGl0ID0gb3B0LnNwbGl0KCc6JyksXG4gICAgICAgICAgICBfb3B0JHNwbGl0MiA9IF90b0FycmF5KF9vcHQkc3BsaXQpLFxuICAgICAgICAgICAga2V5ID0gX29wdCRzcGxpdDJbMF0sXG4gICAgICAgICAgICByZXN0ID0gX29wdCRzcGxpdDIuc2xpY2UoMSk7XG5cbiAgICAgICAgdmFyIHZhbCA9IHJlc3Quam9pbignOicpO1xuICAgICAgICBpZiAodmFsLnRyaW0oKSA9PT0gJ2ZhbHNlJykgZm9ybWF0T3B0aW9uc1trZXkudHJpbSgpXSA9IGZhbHNlO1xuICAgICAgICBpZiAodmFsLnRyaW0oKSA9PT0gJ3RydWUnKSBmb3JtYXRPcHRpb25zW2tleS50cmltKCldID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWwudHJpbSgpKSkgZm9ybWF0T3B0aW9uc1trZXkudHJpbSgpXSA9IHBhcnNlSW50KHZhbC50cmltKCksIDEwKTtcbiAgICAgICAgaWYgKCFmb3JtYXRPcHRpb25zW2tleS50cmltKCldKSBmb3JtYXRPcHRpb25zW2tleS50cmltKCldID0gdmFsLnRyaW0oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZm9ybWF0TmFtZTogZm9ybWF0TmFtZSxcbiAgICBmb3JtYXRPcHRpb25zOiBmb3JtYXRPcHRpb25zXG4gIH07XG59XG5cbnZhciBGb3JtYXR0ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEZvcm1hdHRlcigpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRm9ybWF0dGVyKTtcblxuICAgIHRoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ2Zvcm1hdHRlcicpO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5mb3JtYXRzID0ge1xuICAgICAgbnVtYmVyOiBmdW5jdGlvbiBudW1iZXIodmFsLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsbmcsIG9wdGlvbnMpLmZvcm1hdCh2YWwpO1xuICAgICAgfSxcbiAgICAgIGN1cnJlbmN5OiBmdW5jdGlvbiBjdXJyZW5jeSh2YWwsIGxuZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KGxuZywgX29iamVjdFNwcmVhZCQ0KF9vYmplY3RTcHJlYWQkNCh7fSwgb3B0aW9ucyksIHt9LCB7XG4gICAgICAgICAgc3R5bGU6ICdjdXJyZW5jeSdcbiAgICAgICAgfSkpLmZvcm1hdCh2YWwpO1xuICAgICAgfSxcbiAgICAgIGRhdGV0aW1lOiBmdW5jdGlvbiBkYXRldGltZSh2YWwsIGxuZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG5nLCBfb2JqZWN0U3ByZWFkJDQoe30sIG9wdGlvbnMpKS5mb3JtYXQodmFsKTtcbiAgICAgIH0sXG4gICAgICByZWxhdGl2ZXRpbWU6IGZ1bmN0aW9uIHJlbGF0aXZldGltZSh2YWwsIGxuZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KGxuZywgX29iamVjdFNwcmVhZCQ0KHt9LCBvcHRpb25zKSkuZm9ybWF0KHZhbCwgb3B0aW9ucy5yYW5nZSB8fCAnZGF5Jyk7XG4gICAgICB9LFxuICAgICAgbGlzdDogZnVuY3Rpb24gbGlzdCh2YWwsIGxuZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEludGwuTGlzdEZvcm1hdChsbmcsIF9vYmplY3RTcHJlYWQkNCh7fSwgb3B0aW9ucykpLmZvcm1hdCh2YWwpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5pbml0KG9wdGlvbnMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEZvcm1hdHRlciwgW3tcbiAgICBrZXk6IFwiaW5pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0KHNlcnZpY2VzKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge1xuICAgICAgICBpbnRlcnBvbGF0aW9uOiB7fVxuICAgICAgfTtcbiAgICAgIHZhciBpT3B0cyA9IG9wdGlvbnMuaW50ZXJwb2xhdGlvbjtcbiAgICAgIHRoaXMuZm9ybWF0U2VwYXJhdG9yID0gaU9wdHMuZm9ybWF0U2VwYXJhdG9yID8gaU9wdHMuZm9ybWF0U2VwYXJhdG9yIDogaU9wdHMuZm9ybWF0U2VwYXJhdG9yIHx8ICcsJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYWRkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGFkZChuYW1lLCBmYykge1xuICAgICAgdGhpcy5mb3JtYXRzW25hbWVdID0gZmM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvcm1hdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3JtYXQodmFsdWUsIF9mb3JtYXQsIGxuZywgb3B0aW9ucykge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgdmFyIGZvcm1hdHMgPSBfZm9ybWF0LnNwbGl0KHRoaXMuZm9ybWF0U2VwYXJhdG9yKTtcblxuICAgICAgdmFyIHJlc3VsdCA9IGZvcm1hdHMucmVkdWNlKGZ1bmN0aW9uIChtZW0sIGYpIHtcbiAgICAgICAgdmFyIF9wYXJzZUZvcm1hdFN0ciA9IHBhcnNlRm9ybWF0U3RyKGYpLFxuICAgICAgICAgICAgZm9ybWF0TmFtZSA9IF9wYXJzZUZvcm1hdFN0ci5mb3JtYXROYW1lLFxuICAgICAgICAgICAgZm9ybWF0T3B0aW9ucyA9IF9wYXJzZUZvcm1hdFN0ci5mb3JtYXRPcHRpb25zO1xuXG4gICAgICAgIGlmIChfdGhpcy5mb3JtYXRzW2Zvcm1hdE5hbWVdKSB7XG4gICAgICAgICAgdmFyIGZvcm1hdHRlZCA9IG1lbTtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgdmFsT3B0aW9ucyA9IG9wdGlvbnMgJiYgb3B0aW9ucy5mb3JtYXRQYXJhbXMgJiYgb3B0aW9ucy5mb3JtYXRQYXJhbXNbb3B0aW9ucy5pbnRlcnBvbGF0aW9ua2V5XSB8fCB7fTtcbiAgICAgICAgICAgIHZhciBsID0gdmFsT3B0aW9ucy5sb2NhbGUgfHwgdmFsT3B0aW9ucy5sbmcgfHwgb3B0aW9ucy5sb2NhbGUgfHwgb3B0aW9ucy5sbmcgfHwgbG5nO1xuICAgICAgICAgICAgZm9ybWF0dGVkID0gX3RoaXMuZm9ybWF0c1tmb3JtYXROYW1lXShtZW0sIGwsIF9vYmplY3RTcHJlYWQkNChfb2JqZWN0U3ByZWFkJDQoX29iamVjdFNwcmVhZCQ0KHt9LCBmb3JtYXRPcHRpb25zKSwgb3B0aW9ucyksIHZhbE9wdGlvbnMpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgX3RoaXMubG9nZ2VyLndhcm4oZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RoaXMubG9nZ2VyLndhcm4oXCJ0aGVyZSB3YXMgbm8gZm9ybWF0IGZ1bmN0aW9uIGZvciBcIi5jb25jYXQoZm9ybWF0TmFtZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lbTtcbiAgICAgIH0sIHZhbHVlKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEZvcm1hdHRlcjtcbn0oKTtcblxuZnVuY3Rpb24gb3duS2V5cyQ1KG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSB7IHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsgfSBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCQ1KHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMkNShPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzJDUoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlciQyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0JDIoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0JDIoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiByZW1vdmUoYXJyLCB3aGF0KSB7XG4gIHZhciBmb3VuZCA9IGFyci5pbmRleE9mKHdoYXQpO1xuXG4gIHdoaWxlIChmb3VuZCAhPT0gLTEpIHtcbiAgICBhcnIuc3BsaWNlKGZvdW5kLCAxKTtcbiAgICBmb3VuZCA9IGFyci5pbmRleE9mKHdoYXQpO1xuICB9XG59XG5cbnZhciBDb25uZWN0b3IgPSBmdW5jdGlvbiAoX0V2ZW50RW1pdHRlcikge1xuICBfaW5oZXJpdHMoQ29ubmVjdG9yLCBfRXZlbnRFbWl0dGVyKTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyJDIoQ29ubmVjdG9yKTtcblxuICBmdW5jdGlvbiBDb25uZWN0b3IoYmFja2VuZCwgc3RvcmUsIHNlcnZpY2VzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbm5lY3Rvcik7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpO1xuXG4gICAgaWYgKGlzSUUxMCkge1xuICAgICAgRXZlbnRFbWl0dGVyLmNhbGwoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgIH1cblxuICAgIF90aGlzLmJhY2tlbmQgPSBiYWNrZW5kO1xuICAgIF90aGlzLnN0b3JlID0gc3RvcmU7XG4gICAgX3RoaXMuc2VydmljZXMgPSBzZXJ2aWNlcztcbiAgICBfdGhpcy5sYW5ndWFnZVV0aWxzID0gc2VydmljZXMubGFuZ3VhZ2VVdGlscztcbiAgICBfdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICBfdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgnYmFja2VuZENvbm5lY3RvcicpO1xuICAgIF90aGlzLnN0YXRlID0ge307XG4gICAgX3RoaXMucXVldWUgPSBbXTtcblxuICAgIGlmIChfdGhpcy5iYWNrZW5kICYmIF90aGlzLmJhY2tlbmQuaW5pdCkge1xuICAgICAgX3RoaXMuYmFja2VuZC5pbml0KHNlcnZpY2VzLCBvcHRpb25zLmJhY2tlbmQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDb25uZWN0b3IsIFt7XG4gICAga2V5OiBcInF1ZXVlTG9hZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBxdWV1ZUxvYWQobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciB0b0xvYWQgPSBbXTtcbiAgICAgIHZhciBwZW5kaW5nID0gW107XG4gICAgICB2YXIgdG9Mb2FkTGFuZ3VhZ2VzID0gW107XG4gICAgICB2YXIgdG9Mb2FkTmFtZXNwYWNlcyA9IFtdO1xuICAgICAgbGFuZ3VhZ2VzLmZvckVhY2goZnVuY3Rpb24gKGxuZykge1xuICAgICAgICB2YXIgaGFzQWxsTmFtZXNwYWNlcyA9IHRydWU7XG4gICAgICAgIG5hbWVzcGFjZXMuZm9yRWFjaChmdW5jdGlvbiAobnMpIHtcbiAgICAgICAgICB2YXIgbmFtZSA9IFwiXCIuY29uY2F0KGxuZywgXCJ8XCIpLmNvbmNhdChucyk7XG5cbiAgICAgICAgICBpZiAoIW9wdGlvbnMucmVsb2FkICYmIF90aGlzMi5zdG9yZS5oYXNSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSkge1xuICAgICAgICAgICAgX3RoaXMyLnN0YXRlW25hbWVdID0gMjtcbiAgICAgICAgICB9IGVsc2UgaWYgKF90aGlzMi5zdGF0ZVtuYW1lXSA8IDApIDsgZWxzZSBpZiAoX3RoaXMyLnN0YXRlW25hbWVdID09PSAxKSB7XG4gICAgICAgICAgICBpZiAocGVuZGluZy5pbmRleE9mKG5hbWUpIDwgMCkgcGVuZGluZy5wdXNoKG5hbWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfdGhpczIuc3RhdGVbbmFtZV0gPSAxO1xuICAgICAgICAgICAgaGFzQWxsTmFtZXNwYWNlcyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHBlbmRpbmcuaW5kZXhPZihuYW1lKSA8IDApIHBlbmRpbmcucHVzaChuYW1lKTtcbiAgICAgICAgICAgIGlmICh0b0xvYWQuaW5kZXhPZihuYW1lKSA8IDApIHRvTG9hZC5wdXNoKG5hbWUpO1xuICAgICAgICAgICAgaWYgKHRvTG9hZE5hbWVzcGFjZXMuaW5kZXhPZihucykgPCAwKSB0b0xvYWROYW1lc3BhY2VzLnB1c2gobnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghaGFzQWxsTmFtZXNwYWNlcykgdG9Mb2FkTGFuZ3VhZ2VzLnB1c2gobG5nKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodG9Mb2FkLmxlbmd0aCB8fCBwZW5kaW5nLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnF1ZXVlLnB1c2goe1xuICAgICAgICAgIHBlbmRpbmc6IHBlbmRpbmcsXG4gICAgICAgICAgbG9hZGVkOiB7fSxcbiAgICAgICAgICBlcnJvcnM6IFtdLFxuICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFja1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG9Mb2FkOiB0b0xvYWQsXG4gICAgICAgIHBlbmRpbmc6IHBlbmRpbmcsXG4gICAgICAgIHRvTG9hZExhbmd1YWdlczogdG9Mb2FkTGFuZ3VhZ2VzLFxuICAgICAgICB0b0xvYWROYW1lc3BhY2VzOiB0b0xvYWROYW1lc3BhY2VzXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkZWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9hZGVkKG5hbWUsIGVyciwgZGF0YSkge1xuICAgICAgdmFyIHMgPSBuYW1lLnNwbGl0KCd8Jyk7XG4gICAgICB2YXIgbG5nID0gc1swXTtcbiAgICAgIHZhciBucyA9IHNbMV07XG4gICAgICBpZiAoZXJyKSB0aGlzLmVtaXQoJ2ZhaWxlZExvYWRpbmcnLCBsbmcsIG5zLCBlcnIpO1xuXG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aGlzLnN0b3JlLmFkZFJlc291cmNlQnVuZGxlKGxuZywgbnMsIGRhdGEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0YXRlW25hbWVdID0gZXJyID8gLTEgOiAyO1xuICAgICAgdmFyIGxvYWRlZCA9IHt9O1xuICAgICAgdGhpcy5xdWV1ZS5mb3JFYWNoKGZ1bmN0aW9uIChxKSB7XG4gICAgICAgIHB1c2hQYXRoKHEubG9hZGVkLCBbbG5nXSwgbnMpO1xuICAgICAgICByZW1vdmUocS5wZW5kaW5nLCBuYW1lKTtcbiAgICAgICAgaWYgKGVycikgcS5lcnJvcnMucHVzaChlcnIpO1xuXG4gICAgICAgIGlmIChxLnBlbmRpbmcubGVuZ3RoID09PSAwICYmICFxLmRvbmUpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhxLmxvYWRlZCkuZm9yRWFjaChmdW5jdGlvbiAobCkge1xuICAgICAgICAgICAgaWYgKCFsb2FkZWRbbF0pIGxvYWRlZFtsXSA9IFtdO1xuXG4gICAgICAgICAgICBpZiAocS5sb2FkZWRbbF0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHEubG9hZGVkW2xdLmZvckVhY2goZnVuY3Rpb24gKG5zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvYWRlZFtsXS5pbmRleE9mKG5zKSA8IDApIGxvYWRlZFtsXS5wdXNoKG5zKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcS5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChxLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHEuY2FsbGJhY2socS5lcnJvcnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxLmNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZW1pdCgnbG9hZGVkJywgbG9hZGVkKTtcbiAgICAgIHRoaXMucXVldWUgPSB0aGlzLnF1ZXVlLmZpbHRlcihmdW5jdGlvbiAocSkge1xuICAgICAgICByZXR1cm4gIXEuZG9uZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZWFkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlYWQobG5nLCBucywgZmNOYW1lKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgdmFyIHRyaWVkID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAwO1xuICAgICAgdmFyIHdhaXQgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDM1MDtcbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ID8gYXJndW1lbnRzWzVdIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKCFsbmcubGVuZ3RoKSByZXR1cm4gY2FsbGJhY2sobnVsbCwge30pO1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFtmY05hbWVdKGxuZywgbnMsIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgICAgaWYgKGVyciAmJiBkYXRhICYmIHRyaWVkIDwgNSkge1xuICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMzLnJlYWQuY2FsbChfdGhpczMsIGxuZywgbnMsIGZjTmFtZSwgdHJpZWQgKyAxLCB3YWl0ICogMiwgY2FsbGJhY2spO1xuICAgICAgICAgIH0sIHdhaXQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrKGVyciwgZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicHJlcGFyZUxvYWRpbmdcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcHJlcGFyZUxvYWRpbmcobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzKSB7XG4gICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgPyBhcmd1bWVudHNbM10gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICghdGhpcy5iYWNrZW5kKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ05vIGJhY2tlbmQgd2FzIGFkZGVkIHZpYSBpMThuZXh0LnVzZS4gV2lsbCBub3QgbG9hZCByZXNvdXJjZXMuJyk7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayAmJiBjYWxsYmFjaygpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGxhbmd1YWdlcyA9PT0gJ3N0cmluZycpIGxhbmd1YWdlcyA9IHRoaXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkobGFuZ3VhZ2VzKTtcbiAgICAgIGlmICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycpIG5hbWVzcGFjZXMgPSBbbmFtZXNwYWNlc107XG4gICAgICB2YXIgdG9Mb2FkID0gdGhpcy5xdWV1ZUxvYWQobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCBvcHRpb25zLCBjYWxsYmFjayk7XG5cbiAgICAgIGlmICghdG9Mb2FkLnRvTG9hZC5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCF0b0xvYWQucGVuZGluZy5sZW5ndGgpIGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICB0b0xvYWQudG9Mb2FkLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgX3RoaXM0LmxvYWRPbmUobmFtZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibG9hZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkKGxhbmd1YWdlcywgbmFtZXNwYWNlcywgY2FsbGJhY2spIHtcbiAgICAgIHRoaXMucHJlcGFyZUxvYWRpbmcobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCB7fSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZWxvYWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVsb2FkKGxhbmd1YWdlcywgbmFtZXNwYWNlcywgY2FsbGJhY2spIHtcbiAgICAgIHRoaXMucHJlcGFyZUxvYWRpbmcobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCB7XG4gICAgICAgIHJlbG9hZDogdHJ1ZVxuICAgICAgfSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkT25lXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWRPbmUobmFtZSkge1xuICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgIHZhciBwcmVmaXggPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6ICcnO1xuICAgICAgdmFyIHMgPSBuYW1lLnNwbGl0KCd8Jyk7XG4gICAgICB2YXIgbG5nID0gc1swXTtcbiAgICAgIHZhciBucyA9IHNbMV07XG4gICAgICB0aGlzLnJlYWQobG5nLCBucywgJ3JlYWQnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZnVuY3Rpb24gKGVyciwgZGF0YSkge1xuICAgICAgICBpZiAoZXJyKSBfdGhpczUubG9nZ2VyLndhcm4oXCJcIi5jb25jYXQocHJlZml4LCBcImxvYWRpbmcgbmFtZXNwYWNlIFwiKS5jb25jYXQobnMsIFwiIGZvciBsYW5ndWFnZSBcIikuY29uY2F0KGxuZywgXCIgZmFpbGVkXCIpLCBlcnIpO1xuICAgICAgICBpZiAoIWVyciAmJiBkYXRhKSBfdGhpczUubG9nZ2VyLmxvZyhcIlwiLmNvbmNhdChwcmVmaXgsIFwibG9hZGVkIG5hbWVzcGFjZSBcIikuY29uY2F0KG5zLCBcIiBmb3IgbGFuZ3VhZ2UgXCIpLmNvbmNhdChsbmcpLCBkYXRhKTtcblxuICAgICAgICBfdGhpczUubG9hZGVkKG5hbWUsIGVyciwgZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2F2ZU1pc3NpbmdcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2F2ZU1pc3NpbmcobGFuZ3VhZ2VzLCBuYW1lc3BhY2UsIGtleSwgZmFsbGJhY2tWYWx1ZSwgaXNVcGRhdGUpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiB7fTtcblxuICAgICAgaWYgKHRoaXMuc2VydmljZXMudXRpbHMgJiYgdGhpcy5zZXJ2aWNlcy51dGlscy5oYXNMb2FkZWROYW1lc3BhY2UgJiYgIXRoaXMuc2VydmljZXMudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlKG5hbWVzcGFjZSkpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihcImRpZCBub3Qgc2F2ZSBrZXkgXFxcIlwiLmNvbmNhdChrZXksIFwiXFxcIiBhcyB0aGUgbmFtZXNwYWNlIFxcXCJcIikuY29uY2F0KG5hbWVzcGFjZSwgXCJcXFwiIHdhcyBub3QgeWV0IGxvYWRlZFwiKSwgJ1RoaXMgbWVhbnMgc29tZXRoaW5nIElTIFdST05HIGluIHlvdXIgc2V0dXAuIFlvdSBhY2Nlc3MgdGhlIHQgZnVuY3Rpb24gYmVmb3JlIGkxOG5leHQuaW5pdCAvIGkxOG5leHQubG9hZE5hbWVzcGFjZSAvIGkxOG5leHQuY2hhbmdlTGFuZ3VhZ2Ugd2FzIGRvbmUuIFdhaXQgZm9yIHRoZSBjYWxsYmFjayBvciBQcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGFjY2Vzc2luZyBpdCEhIScpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCB8fCBrZXkgPT09IG51bGwgfHwga2V5ID09PSAnJykgcmV0dXJuO1xuXG4gICAgICBpZiAodGhpcy5iYWNrZW5kICYmIHRoaXMuYmFja2VuZC5jcmVhdGUpIHtcbiAgICAgICAgdGhpcy5iYWNrZW5kLmNyZWF0ZShsYW5ndWFnZXMsIG5hbWVzcGFjZSwga2V5LCBmYWxsYmFja1ZhbHVlLCBudWxsLCBfb2JqZWN0U3ByZWFkJDUoX29iamVjdFNwcmVhZCQ1KHt9LCBvcHRpb25zKSwge30sIHtcbiAgICAgICAgICBpc1VwZGF0ZTogaXNVcGRhdGVcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWxhbmd1YWdlcyB8fCAhbGFuZ3VhZ2VzWzBdKSByZXR1cm47XG4gICAgICB0aGlzLnN0b3JlLmFkZFJlc291cmNlKGxhbmd1YWdlc1swXSwgbmFtZXNwYWNlLCBrZXksIGZhbGxiYWNrVmFsdWUpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDb25uZWN0b3I7XG59KEV2ZW50RW1pdHRlcik7XG5cbmZ1bmN0aW9uIGdldCgpIHtcbiAgcmV0dXJuIHtcbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgaW5pdEltbWVkaWF0ZTogdHJ1ZSxcbiAgICBuczogWyd0cmFuc2xhdGlvbiddLFxuICAgIGRlZmF1bHROUzogWyd0cmFuc2xhdGlvbiddLFxuICAgIGZhbGxiYWNrTG5nOiBbJ2RldiddLFxuICAgIGZhbGxiYWNrTlM6IGZhbHNlLFxuICAgIHN1cHBvcnRlZExuZ3M6IGZhbHNlLFxuICAgIG5vbkV4cGxpY2l0U3VwcG9ydGVkTG5nczogZmFsc2UsXG4gICAgbG9hZDogJ2FsbCcsXG4gICAgcHJlbG9hZDogZmFsc2UsXG4gICAgc2ltcGxpZnlQbHVyYWxTdWZmaXg6IHRydWUsXG4gICAga2V5U2VwYXJhdG9yOiAnLicsXG4gICAgbnNTZXBhcmF0b3I6ICc6JyxcbiAgICBwbHVyYWxTZXBhcmF0b3I6ICdfJyxcbiAgICBjb250ZXh0U2VwYXJhdG9yOiAnXycsXG4gICAgcGFydGlhbEJ1bmRsZWRMYW5ndWFnZXM6IGZhbHNlLFxuICAgIHNhdmVNaXNzaW5nOiBmYWxzZSxcbiAgICB1cGRhdGVNaXNzaW5nOiBmYWxzZSxcbiAgICBzYXZlTWlzc2luZ1RvOiAnZmFsbGJhY2snLFxuICAgIHNhdmVNaXNzaW5nUGx1cmFsczogdHJ1ZSxcbiAgICBtaXNzaW5nS2V5SGFuZGxlcjogZmFsc2UsXG4gICAgbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyOiBmYWxzZSxcbiAgICBwb3N0UHJvY2VzczogZmFsc2UsXG4gICAgcG9zdFByb2Nlc3NQYXNzUmVzb2x2ZWQ6IGZhbHNlLFxuICAgIHJldHVybk51bGw6IHRydWUsXG4gICAgcmV0dXJuRW1wdHlTdHJpbmc6IHRydWUsXG4gICAgcmV0dXJuT2JqZWN0czogZmFsc2UsXG4gICAgam9pbkFycmF5czogZmFsc2UsXG4gICAgcmV0dXJuZWRPYmplY3RIYW5kbGVyOiBmYWxzZSxcbiAgICBwYXJzZU1pc3NpbmdLZXlIYW5kbGVyOiBmYWxzZSxcbiAgICBhcHBlbmROYW1lc3BhY2VUb01pc3NpbmdLZXk6IGZhbHNlLFxuICAgIGFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlOiBmYWxzZSxcbiAgICBvdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlKGFyZ3MpIHtcbiAgICAgIHZhciByZXQgPSB7fTtcbiAgICAgIGlmIChfdHlwZW9mKGFyZ3NbMV0pID09PSAnb2JqZWN0JykgcmV0ID0gYXJnc1sxXTtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1sxXSA9PT0gJ3N0cmluZycpIHJldC5kZWZhdWx0VmFsdWUgPSBhcmdzWzFdO1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzJdID09PSAnc3RyaW5nJykgcmV0LnREZXNjcmlwdGlvbiA9IGFyZ3NbMl07XG5cbiAgICAgIGlmIChfdHlwZW9mKGFyZ3NbMl0pID09PSAnb2JqZWN0JyB8fCBfdHlwZW9mKGFyZ3NbM10pID09PSAnb2JqZWN0Jykge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IGFyZ3NbM10gfHwgYXJnc1syXTtcbiAgICAgICAgT2JqZWN0LmtleXMob3B0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgcmV0W2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG4gICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgZXNjYXBlVmFsdWU6IHRydWUsXG4gICAgICBmb3JtYXQ6IGZ1bmN0aW9uIGZvcm1hdCh2YWx1ZSwgX2Zvcm1hdCwgbG5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBwcmVmaXg6ICd7eycsXG4gICAgICBzdWZmaXg6ICd9fScsXG4gICAgICBmb3JtYXRTZXBhcmF0b3I6ICcsJyxcbiAgICAgIHVuZXNjYXBlUHJlZml4OiAnLScsXG4gICAgICBuZXN0aW5nUHJlZml4OiAnJHQoJyxcbiAgICAgIG5lc3RpbmdTdWZmaXg6ICcpJyxcbiAgICAgIG5lc3RpbmdPcHRpb25zU2VwYXJhdG9yOiAnLCcsXG4gICAgICBtYXhSZXBsYWNlczogMTAwMCxcbiAgICAgIHNraXBPblZhcmlhYmxlczogdHJ1ZVxuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucykge1xuICBpZiAodHlwZW9mIG9wdGlvbnMubnMgPT09ICdzdHJpbmcnKSBvcHRpb25zLm5zID0gW29wdGlvbnMubnNdO1xuICBpZiAodHlwZW9mIG9wdGlvbnMuZmFsbGJhY2tMbmcgPT09ICdzdHJpbmcnKSBvcHRpb25zLmZhbGxiYWNrTG5nID0gW29wdGlvbnMuZmFsbGJhY2tMbmddO1xuICBpZiAodHlwZW9mIG9wdGlvbnMuZmFsbGJhY2tOUyA9PT0gJ3N0cmluZycpIG9wdGlvbnMuZmFsbGJhY2tOUyA9IFtvcHRpb25zLmZhbGxiYWNrTlNdO1xuXG4gIGlmIChvcHRpb25zLnN1cHBvcnRlZExuZ3MgJiYgb3B0aW9ucy5zdXBwb3J0ZWRMbmdzLmluZGV4T2YoJ2NpbW9kZScpIDwgMCkge1xuICAgIG9wdGlvbnMuc3VwcG9ydGVkTG5ncyA9IG9wdGlvbnMuc3VwcG9ydGVkTG5ncy5jb25jYXQoWydjaW1vZGUnXSk7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZnVuY3Rpb24gb3duS2V5cyQ2KG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSB7IHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsgfSBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCQ2KHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMkNihPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzJDYoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlciQzKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0JDMoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0JDMoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBub29wKCkge31cblxuZnVuY3Rpb24gYmluZE1lbWJlckZ1bmN0aW9ucyhpbnN0KSB7XG4gIHZhciBtZW1zID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LmdldFByb3RvdHlwZU9mKGluc3QpKTtcbiAgbWVtcy5mb3JFYWNoKGZ1bmN0aW9uIChtZW0pIHtcbiAgICBpZiAodHlwZW9mIGluc3RbbWVtXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5zdFttZW1dID0gaW5zdFttZW1dLmJpbmQoaW5zdCk7XG4gICAgfVxuICB9KTtcbn1cblxudmFyIEkxOG4gPSBmdW5jdGlvbiAoX0V2ZW50RW1pdHRlcikge1xuICBfaW5oZXJpdHMoSTE4biwgX0V2ZW50RW1pdHRlcik7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlciQzKEkxOG4pO1xuXG4gIGZ1bmN0aW9uIEkxOG4oKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEkxOG4pO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBfdGhpcy5vcHRpb25zID0gdHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKTtcbiAgICBfdGhpcy5zZXJ2aWNlcyA9IHt9O1xuICAgIF90aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXI7XG4gICAgX3RoaXMubW9kdWxlcyA9IHtcbiAgICAgIGV4dGVybmFsOiBbXVxuICAgIH07XG4gICAgYmluZE1lbWJlckZ1bmN0aW9ucyhfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG5cbiAgICBpZiAoY2FsbGJhY2sgJiYgIV90aGlzLmlzSW5pdGlhbGl6ZWQgJiYgIW9wdGlvbnMuaXNDbG9uZSkge1xuICAgICAgaWYgKCFfdGhpcy5vcHRpb25zLmluaXRJbW1lZGlhdGUpIHtcbiAgICAgICAgX3RoaXMuaW5pdChvcHRpb25zLCBjYWxsYmFjayk7XG5cbiAgICAgICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgICB9XG5cbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpcy5pbml0KG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJMThuLCBbe1xuICAgIGtleTogXCJpbml0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFvcHRpb25zLmRlZmF1bHROUyAmJiBvcHRpb25zLm5zKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBvcHRpb25zLmRlZmF1bHROUyA9IG9wdGlvbnMubnM7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5ucy5pbmRleE9mKCd0cmFuc2xhdGlvbicpIDwgMCkge1xuICAgICAgICAgIG9wdGlvbnMuZGVmYXVsdE5TID0gb3B0aW9ucy5uc1swXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgZGVmT3B0cyA9IGdldCgpO1xuICAgICAgdGhpcy5vcHRpb25zID0gX29iamVjdFNwcmVhZCQ2KF9vYmplY3RTcHJlYWQkNihfb2JqZWN0U3ByZWFkJDYoe30sIGRlZk9wdHMpLCB0aGlzLm9wdGlvbnMpLCB0cmFuc2Zvcm1PcHRpb25zKG9wdGlvbnMpKTtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5QVBJICE9PSAndjEnKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uID0gX29iamVjdFNwcmVhZCQ2KF9vYmplY3RTcHJlYWQkNih7fSwgZGVmT3B0cy5pbnRlcnBvbGF0aW9uKSwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24pO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5rZXlTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMudXNlckRlZmluZWRLZXlTZXBhcmF0b3IgPSBvcHRpb25zLmtleVNlcGFyYXRvcjtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMubnNTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMudXNlckRlZmluZWROc1NlcGFyYXRvciA9IG9wdGlvbnMubnNTZXBhcmF0b3I7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUNsYXNzT25EZW1hbmQoQ2xhc3NPck9iamVjdCkge1xuICAgICAgICBpZiAoIUNsYXNzT3JPYmplY3QpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAodHlwZW9mIENsYXNzT3JPYmplY3QgPT09ICdmdW5jdGlvbicpIHJldHVybiBuZXcgQ2xhc3NPck9iamVjdCgpO1xuICAgICAgICByZXR1cm4gQ2xhc3NPck9iamVjdDtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuaXNDbG9uZSkge1xuICAgICAgICBpZiAodGhpcy5tb2R1bGVzLmxvZ2dlcikge1xuICAgICAgICAgIGJhc2VMb2dnZXIuaW5pdChjcmVhdGVDbGFzc09uRGVtYW5kKHRoaXMubW9kdWxlcy5sb2dnZXIpLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJhc2VMb2dnZXIuaW5pdChudWxsLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGZvcm1hdHRlcjtcblxuICAgICAgICBpZiAodGhpcy5tb2R1bGVzLmZvcm1hdHRlcikge1xuICAgICAgICAgIGZvcm1hdHRlciA9IHRoaXMubW9kdWxlcy5mb3JtYXR0ZXI7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgZm9ybWF0dGVyID0gRm9ybWF0dGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGx1ID0gbmV3IExhbmd1YWdlVXRpbCh0aGlzLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLnN0b3JlID0gbmV3IFJlc291cmNlU3RvcmUodGhpcy5vcHRpb25zLnJlc291cmNlcywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdmFyIHMgPSB0aGlzLnNlcnZpY2VzO1xuICAgICAgICBzLmxvZ2dlciA9IGJhc2VMb2dnZXI7XG4gICAgICAgIHMucmVzb3VyY2VTdG9yZSA9IHRoaXMuc3RvcmU7XG4gICAgICAgIHMubGFuZ3VhZ2VVdGlscyA9IGx1O1xuICAgICAgICBzLnBsdXJhbFJlc29sdmVyID0gbmV3IFBsdXJhbFJlc29sdmVyKGx1LCB7XG4gICAgICAgICAgcHJlcGVuZDogdGhpcy5vcHRpb25zLnBsdXJhbFNlcGFyYXRvcixcbiAgICAgICAgICBjb21wYXRpYmlsaXR5SlNPTjogdGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OLFxuICAgICAgICAgIHNpbXBsaWZ5UGx1cmFsU3VmZml4OiB0aGlzLm9wdGlvbnMuc2ltcGxpZnlQbHVyYWxTdWZmaXhcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGZvcm1hdHRlciAmJiAoIXRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmZvcm1hdCB8fCB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQgPT09IGRlZk9wdHMuaW50ZXJwb2xhdGlvbi5mb3JtYXQpKSB7XG4gICAgICAgICAgcy5mb3JtYXR0ZXIgPSBjcmVhdGVDbGFzc09uRGVtYW5kKGZvcm1hdHRlcik7XG4gICAgICAgICAgcy5mb3JtYXR0ZXIuaW5pdChzLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgIHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmZvcm1hdCA9IHMuZm9ybWF0dGVyLmZvcm1hdC5iaW5kKHMuZm9ybWF0dGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHMuaW50ZXJwb2xhdG9yID0gbmV3IEludGVycG9sYXRvcih0aGlzLm9wdGlvbnMpO1xuICAgICAgICBzLnV0aWxzID0ge1xuICAgICAgICAgIGhhc0xvYWRlZE5hbWVzcGFjZTogdGhpcy5oYXNMb2FkZWROYW1lc3BhY2UuYmluZCh0aGlzKVxuICAgICAgICB9O1xuICAgICAgICBzLmJhY2tlbmRDb25uZWN0b3IgPSBuZXcgQ29ubmVjdG9yKGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmJhY2tlbmQpLCBzLnJlc291cmNlU3RvcmUsIHMsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHMuYmFja2VuZENvbm5lY3Rvci5vbignKicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIF90aGlzMi5lbWl0LmFwcGx5KF90aGlzMiwgW2V2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5tb2R1bGVzLmxhbmd1YWdlRGV0ZWN0b3IpIHtcbiAgICAgICAgICBzLmxhbmd1YWdlRGV0ZWN0b3IgPSBjcmVhdGVDbGFzc09uRGVtYW5kKHRoaXMubW9kdWxlcy5sYW5ndWFnZURldGVjdG9yKTtcbiAgICAgICAgICBzLmxhbmd1YWdlRGV0ZWN0b3IuaW5pdChzLCB0aGlzLm9wdGlvbnMuZGV0ZWN0aW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kdWxlcy5pMThuRm9ybWF0KSB7XG4gICAgICAgICAgcy5pMThuRm9ybWF0ID0gY3JlYXRlQ2xhc3NPbkRlbWFuZCh0aGlzLm1vZHVsZXMuaTE4bkZvcm1hdCk7XG4gICAgICAgICAgaWYgKHMuaTE4bkZvcm1hdC5pbml0KSBzLmkxOG5Gb3JtYXQuaW5pdCh0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHJhbnNsYXRvciA9IG5ldyBUcmFuc2xhdG9yKHRoaXMuc2VydmljZXMsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRvci5vbignKicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIF90aGlzMi5lbWl0LmFwcGx5KF90aGlzMiwgW2V2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmV4dGVybmFsLmZvckVhY2goZnVuY3Rpb24gKG0pIHtcbiAgICAgICAgICBpZiAobS5pbml0KSBtLmluaXQoX3RoaXMyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZm9ybWF0O1xuICAgICAgaWYgKCFjYWxsYmFjaykgY2FsbGJhY2sgPSBub29wO1xuXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nICYmICF0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IgJiYgIXRoaXMub3B0aW9ucy5sbmcpIHtcbiAgICAgICAgdmFyIGNvZGVzID0gdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nKTtcbiAgICAgICAgaWYgKGNvZGVzLmxlbmd0aCA+IDAgJiYgY29kZXNbMF0gIT09ICdkZXYnKSB0aGlzLm9wdGlvbnMubG5nID0gY29kZXNbMF07XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yICYmICF0aGlzLm9wdGlvbnMubG5nKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ2luaXQ6IG5vIGxhbmd1YWdlRGV0ZWN0b3IgaXMgdXNlZCBhbmQgbm8gbG5nIGlzIGRlZmluZWQnKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHN0b3JlQXBpID0gWydnZXRSZXNvdXJjZScsICdoYXNSZXNvdXJjZUJ1bmRsZScsICdnZXRSZXNvdXJjZUJ1bmRsZScsICdnZXREYXRhQnlMYW5ndWFnZSddO1xuICAgICAgc3RvcmVBcGkuZm9yRWFjaChmdW5jdGlvbiAoZmNOYW1lKSB7XG4gICAgICAgIF90aGlzMltmY05hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBfdGhpczIkc3RvcmU7XG5cbiAgICAgICAgICByZXR1cm4gKF90aGlzMiRzdG9yZSA9IF90aGlzMi5zdG9yZSlbZmNOYW1lXS5hcHBseShfdGhpczIkc3RvcmUsIGFyZ3VtZW50cyk7XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIHZhciBzdG9yZUFwaUNoYWluZWQgPSBbJ2FkZFJlc291cmNlJywgJ2FkZFJlc291cmNlcycsICdhZGRSZXNvdXJjZUJ1bmRsZScsICdyZW1vdmVSZXNvdXJjZUJ1bmRsZSddO1xuICAgICAgc3RvcmVBcGlDaGFpbmVkLmZvckVhY2goZnVuY3Rpb24gKGZjTmFtZSkge1xuICAgICAgICBfdGhpczJbZmNOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgX3RoaXMyJHN0b3JlMjtcblxuICAgICAgICAgIChfdGhpczIkc3RvcmUyID0gX3RoaXMyLnN0b3JlKVtmY05hbWVdLmFwcGx5KF90aGlzMiRzdG9yZTIsIGFyZ3VtZW50cyk7XG5cbiAgICAgICAgICByZXR1cm4gX3RoaXMyO1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuXG4gICAgICB2YXIgbG9hZCA9IGZ1bmN0aW9uIGxvYWQoKSB7XG4gICAgICAgIHZhciBmaW5pc2ggPSBmdW5jdGlvbiBmaW5pc2goZXJyLCB0KSB7XG4gICAgICAgICAgaWYgKF90aGlzMi5pc0luaXRpYWxpemVkICYmICFfdGhpczIuaW5pdGlhbGl6ZWRTdG9yZU9uY2UpIF90aGlzMi5sb2dnZXIud2FybignaW5pdDogaTE4bmV4dCBpcyBhbHJlYWR5IGluaXRpYWxpemVkLiBZb3Ugc2hvdWxkIGNhbGwgaW5pdCBqdXN0IG9uY2UhJyk7XG4gICAgICAgICAgX3RoaXMyLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgIGlmICghX3RoaXMyLm9wdGlvbnMuaXNDbG9uZSkgX3RoaXMyLmxvZ2dlci5sb2coJ2luaXRpYWxpemVkJywgX3RoaXMyLm9wdGlvbnMpO1xuXG4gICAgICAgICAgX3RoaXMyLmVtaXQoJ2luaXRpYWxpemVkJywgX3RoaXMyLm9wdGlvbnMpO1xuXG4gICAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSh0KTtcbiAgICAgICAgICBjYWxsYmFjayhlcnIsIHQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChfdGhpczIubGFuZ3VhZ2VzICYmIF90aGlzMi5vcHRpb25zLmNvbXBhdGliaWxpdHlBUEkgIT09ICd2MScgJiYgIV90aGlzMi5pc0luaXRpYWxpemVkKSByZXR1cm4gZmluaXNoKG51bGwsIF90aGlzMi50LmJpbmQoX3RoaXMyKSk7XG5cbiAgICAgICAgX3RoaXMyLmNoYW5nZUxhbmd1YWdlKF90aGlzMi5vcHRpb25zLmxuZywgZmluaXNoKTtcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMucmVzb3VyY2VzIHx8ICF0aGlzLm9wdGlvbnMuaW5pdEltbWVkaWF0ZSkge1xuICAgICAgICBsb2FkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KGxvYWQsIDApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGVmZXJyZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWRSZXNvdXJjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9hZFJlc291cmNlcyhsYW5ndWFnZSkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogbm9vcDtcbiAgICAgIHZhciB1c2VkQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgIHZhciB1c2VkTG5nID0gdHlwZW9mIGxhbmd1YWdlID09PSAnc3RyaW5nJyA/IGxhbmd1YWdlIDogdGhpcy5sYW5ndWFnZTtcbiAgICAgIGlmICh0eXBlb2YgbGFuZ3VhZ2UgPT09ICdmdW5jdGlvbicpIHVzZWRDYWxsYmFjayA9IGxhbmd1YWdlO1xuXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5yZXNvdXJjZXMgfHwgdGhpcy5vcHRpb25zLnBhcnRpYWxCdW5kbGVkTGFuZ3VhZ2VzKSB7XG4gICAgICAgIGlmICh1c2VkTG5nICYmIHVzZWRMbmcudG9Mb3dlckNhc2UoKSA9PT0gJ2NpbW9kZScpIHJldHVybiB1c2VkQ2FsbGJhY2soKTtcbiAgICAgICAgdmFyIHRvTG9hZCA9IFtdO1xuXG4gICAgICAgIHZhciBhcHBlbmQgPSBmdW5jdGlvbiBhcHBlbmQobG5nKSB7XG4gICAgICAgICAgaWYgKCFsbmcpIHJldHVybjtcblxuICAgICAgICAgIHZhciBsbmdzID0gX3RoaXMzLnNlcnZpY2VzLmxhbmd1YWdlVXRpbHMudG9SZXNvbHZlSGllcmFyY2h5KGxuZyk7XG5cbiAgICAgICAgICBsbmdzLmZvckVhY2goZnVuY3Rpb24gKGwpIHtcbiAgICAgICAgICAgIGlmICh0b0xvYWQuaW5kZXhPZihsKSA8IDApIHRvTG9hZC5wdXNoKGwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdXNlZExuZykge1xuICAgICAgICAgIHZhciBmYWxsYmFja3MgPSB0aGlzLnNlcnZpY2VzLmxhbmd1YWdlVXRpbHMuZ2V0RmFsbGJhY2tDb2Rlcyh0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcpO1xuICAgICAgICAgIGZhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kKGwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFwcGVuZCh1c2VkTG5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucHJlbG9hZCkge1xuICAgICAgICAgIHRoaXMub3B0aW9ucy5wcmVsb2FkLmZvckVhY2goZnVuY3Rpb24gKGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBlbmQobCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlcnZpY2VzLmJhY2tlbmRDb25uZWN0b3IubG9hZCh0b0xvYWQsIHRoaXMub3B0aW9ucy5ucywgdXNlZENhbGxiYWNrKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVzZWRDYWxsYmFjayhudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVsb2FkUmVzb3VyY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbG9hZFJlc291cmNlcyhsbmdzLCBucywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBkZWZlcnJlZCA9IGRlZmVyKCk7XG4gICAgICBpZiAoIWxuZ3MpIGxuZ3MgPSB0aGlzLmxhbmd1YWdlcztcbiAgICAgIGlmICghbnMpIG5zID0gdGhpcy5vcHRpb25zLm5zO1xuICAgICAgaWYgKCFjYWxsYmFjaykgY2FsbGJhY2sgPSBub29wO1xuICAgICAgdGhpcy5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLnJlbG9hZChsbmdzLCBucywgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKCk7XG4gICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidXNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHVzZShtb2R1bGUpIHtcbiAgICAgIGlmICghbW9kdWxlKSB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBhcmUgcGFzc2luZyBhbiB1bmRlZmluZWQgbW9kdWxlISBQbGVhc2UgY2hlY2sgdGhlIG9iamVjdCB5b3UgYXJlIHBhc3NpbmcgdG8gaTE4bmV4dC51c2UoKScpO1xuICAgICAgaWYgKCFtb2R1bGUudHlwZSkgdGhyb3cgbmV3IEVycm9yKCdZb3UgYXJlIHBhc3NpbmcgYSB3cm9uZyBtb2R1bGUhIFBsZWFzZSBjaGVjayB0aGUgb2JqZWN0IHlvdSBhcmUgcGFzc2luZyB0byBpMThuZXh0LnVzZSgpJyk7XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJ2JhY2tlbmQnKSB7XG4gICAgICAgIHRoaXMubW9kdWxlcy5iYWNrZW5kID0gbW9kdWxlO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdsb2dnZXInIHx8IG1vZHVsZS5sb2cgJiYgbW9kdWxlLndhcm4gJiYgbW9kdWxlLmVycm9yKSB7XG4gICAgICAgIHRoaXMubW9kdWxlcy5sb2dnZXIgPSBtb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJ2xhbmd1YWdlRGV0ZWN0b3InKSB7XG4gICAgICAgIHRoaXMubW9kdWxlcy5sYW5ndWFnZURldGVjdG9yID0gbW9kdWxlO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdpMThuRm9ybWF0Jykge1xuICAgICAgICB0aGlzLm1vZHVsZXMuaTE4bkZvcm1hdCA9IG1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAncG9zdFByb2Nlc3NvcicpIHtcbiAgICAgICAgcG9zdFByb2Nlc3Nvci5hZGRQb3N0UHJvY2Vzc29yKG1vZHVsZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJ2Zvcm1hdHRlcicpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmZvcm1hdHRlciA9IG1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnM3JkUGFydHknKSB7XG4gICAgICAgIHRoaXMubW9kdWxlcy5leHRlcm5hbC5wdXNoKG1vZHVsZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjaGFuZ2VMYW5ndWFnZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjaGFuZ2VMYW5ndWFnZShsbmcsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgdGhpcy5pc0xhbmd1YWdlQ2hhbmdpbmdUbyA9IGxuZztcbiAgICAgIHZhciBkZWZlcnJlZCA9IGRlZmVyKCk7XG4gICAgICB0aGlzLmVtaXQoJ2xhbmd1YWdlQ2hhbmdpbmcnLCBsbmcpO1xuXG4gICAgICB2YXIgc2V0TG5nUHJvcHMgPSBmdW5jdGlvbiBzZXRMbmdQcm9wcyhsKSB7XG4gICAgICAgIF90aGlzNC5sYW5ndWFnZSA9IGw7XG4gICAgICAgIF90aGlzNC5sYW5ndWFnZXMgPSBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkobCk7XG4gICAgICAgIF90aGlzNC5yZXNvbHZlZExhbmd1YWdlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoWydjaW1vZGUnLCAnZGV2J10uaW5kZXhPZihsKSA+IC0xKSByZXR1cm47XG5cbiAgICAgICAgZm9yICh2YXIgbGkgPSAwOyBsaSA8IF90aGlzNC5sYW5ndWFnZXMubGVuZ3RoOyBsaSsrKSB7XG4gICAgICAgICAgdmFyIGxuZ0luTG5ncyA9IF90aGlzNC5sYW5ndWFnZXNbbGldO1xuICAgICAgICAgIGlmIChbJ2NpbW9kZScsICdkZXYnXS5pbmRleE9mKGxuZ0luTG5ncykgPiAtMSkgY29udGludWU7XG5cbiAgICAgICAgICBpZiAoX3RoaXM0LnN0b3JlLmhhc0xhbmd1YWdlU29tZVRyYW5zbGF0aW9ucyhsbmdJbkxuZ3MpKSB7XG4gICAgICAgICAgICBfdGhpczQucmVzb2x2ZWRMYW5ndWFnZSA9IGxuZ0luTG5ncztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdmFyIGRvbmUgPSBmdW5jdGlvbiBkb25lKGVyciwgbCkge1xuICAgICAgICBpZiAobCkge1xuICAgICAgICAgIHNldExuZ1Byb3BzKGwpO1xuXG4gICAgICAgICAgX3RoaXM0LnRyYW5zbGF0b3IuY2hhbmdlTGFuZ3VhZ2UobCk7XG5cbiAgICAgICAgICBfdGhpczQuaXNMYW5ndWFnZUNoYW5naW5nVG8gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICBfdGhpczQuZW1pdCgnbGFuZ3VhZ2VDaGFuZ2VkJywgbCk7XG5cbiAgICAgICAgICBfdGhpczQubG9nZ2VyLmxvZygnbGFuZ3VhZ2VDaGFuZ2VkJywgbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RoaXM0LmlzTGFuZ3VhZ2VDaGFuZ2luZ1RvID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVmZXJyZWQucmVzb2x2ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIF90aGlzNC50LmFwcGx5KF90aGlzNCwgYXJndW1lbnRzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soZXJyLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIF90aGlzNC50LmFwcGx5KF90aGlzNCwgYXJndW1lbnRzKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICB2YXIgc2V0TG5nID0gZnVuY3Rpb24gc2V0TG5nKGxuZ3MpIHtcbiAgICAgICAgaWYgKCFsbmcgJiYgIWxuZ3MgJiYgX3RoaXM0LnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IpIGxuZ3MgPSBbXTtcbiAgICAgICAgdmFyIGwgPSB0eXBlb2YgbG5ncyA9PT0gJ3N0cmluZycgPyBsbmdzIDogX3RoaXM0LnNlcnZpY2VzLmxhbmd1YWdlVXRpbHMuZ2V0QmVzdE1hdGNoRnJvbUNvZGVzKGxuZ3MpO1xuXG4gICAgICAgIGlmIChsKSB7XG4gICAgICAgICAgaWYgKCFfdGhpczQubGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgIHNldExuZ1Byb3BzKGwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghX3RoaXM0LnRyYW5zbGF0b3IubGFuZ3VhZ2UpIF90aGlzNC50cmFuc2xhdG9yLmNoYW5nZUxhbmd1YWdlKGwpO1xuICAgICAgICAgIGlmIChfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvcikgX3RoaXM0LnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IuY2FjaGVVc2VyTGFuZ3VhZ2UobCk7XG4gICAgICAgIH1cblxuICAgICAgICBfdGhpczQubG9hZFJlc291cmNlcyhsLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgZG9uZShlcnIsIGwpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGlmICghbG5nICYmIHRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvciAmJiAhdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmFzeW5jKSB7XG4gICAgICAgIHNldExuZyh0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IuZGV0ZWN0KCkpO1xuICAgICAgfSBlbHNlIGlmICghbG5nICYmIHRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvciAmJiB0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IuYXN5bmMpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmRldGVjdChzZXRMbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0TG5nKGxuZyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Rml4ZWRUXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldEZpeGVkVChsbmcsIG5zLCBrZXlQcmVmaXgpIHtcbiAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgICB2YXIgZml4ZWRUID0gZnVuY3Rpb24gZml4ZWRUKGtleSwgb3B0cykge1xuICAgICAgICB2YXIgb3B0aW9ucztcblxuICAgICAgICBpZiAoX3R5cGVvZihvcHRzKSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBmb3IgKHZhciBfbGVuMyA9IGFyZ3VtZW50cy5sZW5ndGgsIHJlc3QgPSBuZXcgQXJyYXkoX2xlbjMgPiAyID8gX2xlbjMgLSAyIDogMCksIF9rZXkzID0gMjsgX2tleTMgPCBfbGVuMzsgX2tleTMrKykge1xuICAgICAgICAgICAgcmVzdFtfa2V5MyAtIDJdID0gYXJndW1lbnRzW19rZXkzXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBvcHRpb25zID0gX3RoaXM1Lm9wdGlvbnMub3ZlcmxvYWRUcmFuc2xhdGlvbk9wdGlvbkhhbmRsZXIoW2tleSwgb3B0c10uY29uY2F0KHJlc3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zID0gX29iamVjdFNwcmVhZCQ2KHt9LCBvcHRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMubG5nID0gb3B0aW9ucy5sbmcgfHwgZml4ZWRULmxuZztcbiAgICAgICAgb3B0aW9ucy5sbmdzID0gb3B0aW9ucy5sbmdzIHx8IGZpeGVkVC5sbmdzO1xuICAgICAgICBvcHRpb25zLm5zID0gb3B0aW9ucy5ucyB8fCBmaXhlZFQubnM7XG4gICAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSBfdGhpczUub3B0aW9ucy5rZXlTZXBhcmF0b3IgfHwgJy4nO1xuICAgICAgICB2YXIgcmVzdWx0S2V5ID0ga2V5UHJlZml4ID8gXCJcIi5jb25jYXQoa2V5UHJlZml4KS5jb25jYXQoa2V5U2VwYXJhdG9yKS5jb25jYXQoa2V5KSA6IGtleTtcbiAgICAgICAgcmV0dXJuIF90aGlzNS50KHJlc3VsdEtleSwgb3B0aW9ucyk7XG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZW9mIGxuZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZml4ZWRULmxuZyA9IGxuZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpeGVkVC5sbmdzID0gbG5nO1xuICAgICAgfVxuXG4gICAgICBmaXhlZFQubnMgPSBucztcbiAgICAgIGZpeGVkVC5rZXlQcmVmaXggPSBrZXlQcmVmaXg7XG4gICAgICByZXR1cm4gZml4ZWRUO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHQoKSB7XG4gICAgICB2YXIgX3RoaXMkdHJhbnNsYXRvcjtcblxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRvciAmJiAoX3RoaXMkdHJhbnNsYXRvciA9IHRoaXMudHJhbnNsYXRvcikudHJhbnNsYXRlLmFwcGx5KF90aGlzJHRyYW5zbGF0b3IsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4aXN0c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBleGlzdHMoKSB7XG4gICAgICB2YXIgX3RoaXMkdHJhbnNsYXRvcjI7XG5cbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0b3IgJiYgKF90aGlzJHRyYW5zbGF0b3IyID0gdGhpcy50cmFuc2xhdG9yKS5leGlzdHMuYXBwbHkoX3RoaXMkdHJhbnNsYXRvcjIsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNldERlZmF1bHROYW1lc3BhY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0RGVmYXVsdE5hbWVzcGFjZShucykge1xuICAgICAgdGhpcy5vcHRpb25zLmRlZmF1bHROUyA9IG5zO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNMb2FkZWROYW1lc3BhY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzTG9hZGVkTmFtZXNwYWNlKG5zKSB7XG4gICAgICB2YXIgX3RoaXM2ID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdoYXNMb2FkZWROYW1lc3BhY2U6IGkxOG5leHQgd2FzIG5vdCBpbml0aWFsaXplZCcsIHRoaXMubGFuZ3VhZ2VzKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMubGFuZ3VhZ2VzIHx8ICF0aGlzLmxhbmd1YWdlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignaGFzTG9hZGVkTmFtZXNwYWNlOiBpMThuLmxhbmd1YWdlcyB3ZXJlIHVuZGVmaW5lZCBvciBlbXB0eScsIHRoaXMubGFuZ3VhZ2VzKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB2YXIgbG5nID0gdGhpcy5yZXNvbHZlZExhbmd1YWdlIHx8IHRoaXMubGFuZ3VhZ2VzWzBdO1xuICAgICAgdmFyIGZhbGxiYWNrTG5nID0gdGhpcy5vcHRpb25zID8gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nIDogZmFsc2U7XG4gICAgICB2YXIgbGFzdExuZyA9IHRoaXMubGFuZ3VhZ2VzW3RoaXMubGFuZ3VhZ2VzLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKGxuZy50b0xvd2VyQ2FzZSgpID09PSAnY2ltb2RlJykgcmV0dXJuIHRydWU7XG5cbiAgICAgIHZhciBsb2FkTm90UGVuZGluZyA9IGZ1bmN0aW9uIGxvYWROb3RQZW5kaW5nKGwsIG4pIHtcbiAgICAgICAgdmFyIGxvYWRTdGF0ZSA9IF90aGlzNi5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLnN0YXRlW1wiXCIuY29uY2F0KGwsIFwifFwiKS5jb25jYXQobildO1xuXG4gICAgICAgIHJldHVybiBsb2FkU3RhdGUgPT09IC0xIHx8IGxvYWRTdGF0ZSA9PT0gMjtcbiAgICAgIH07XG5cbiAgICAgIGlmIChvcHRpb25zLnByZWNoZWNrKSB7XG4gICAgICAgIHZhciBwcmVSZXN1bHQgPSBvcHRpb25zLnByZWNoZWNrKHRoaXMsIGxvYWROb3RQZW5kaW5nKTtcbiAgICAgICAgaWYgKHByZVJlc3VsdCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gcHJlUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5oYXNSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZXMuYmFja2VuZENvbm5lY3Rvci5iYWNrZW5kKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChsb2FkTm90UGVuZGluZyhsbmcsIG5zKSAmJiAoIWZhbGxiYWNrTG5nIHx8IGxvYWROb3RQZW5kaW5nKGxhc3RMbmcsIG5zKSkpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkTmFtZXNwYWNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkTmFtZXNwYWNlcyhucywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBfdGhpczcgPSB0aGlzO1xuXG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5ucykge1xuICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbnMgPT09ICdzdHJpbmcnKSBucyA9IFtuc107XG4gICAgICBucy5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIGlmIChfdGhpczcub3B0aW9ucy5ucy5pbmRleE9mKG4pIDwgMCkgX3RoaXM3Lm9wdGlvbnMubnMucHVzaChuKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb2FkUmVzb3VyY2VzKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKGVycik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibG9hZExhbmd1YWdlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkTGFuZ3VhZ2VzKGxuZ3MsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuICAgICAgaWYgKHR5cGVvZiBsbmdzID09PSAnc3RyaW5nJykgbG5ncyA9IFtsbmdzXTtcbiAgICAgIHZhciBwcmVsb2FkZWQgPSB0aGlzLm9wdGlvbnMucHJlbG9hZCB8fCBbXTtcbiAgICAgIHZhciBuZXdMbmdzID0gbG5ncy5maWx0ZXIoZnVuY3Rpb24gKGxuZykge1xuICAgICAgICByZXR1cm4gcHJlbG9hZGVkLmluZGV4T2YobG5nKSA8IDA7XG4gICAgICB9KTtcblxuICAgICAgaWYgKCFuZXdMbmdzLmxlbmd0aCkge1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vcHRpb25zLnByZWxvYWQgPSBwcmVsb2FkZWQuY29uY2F0KG5ld0xuZ3MpO1xuICAgICAgdGhpcy5sb2FkUmVzb3VyY2VzKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKGVycik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGlyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRpcihsbmcpIHtcbiAgICAgIGlmICghbG5nKSBsbmcgPSB0aGlzLnJlc29sdmVkTGFuZ3VhZ2UgfHwgKHRoaXMubGFuZ3VhZ2VzICYmIHRoaXMubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgPyB0aGlzLmxhbmd1YWdlc1swXSA6IHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgaWYgKCFsbmcpIHJldHVybiAncnRsJztcbiAgICAgIHZhciBydGxMbmdzID0gWydhcicsICdzaHUnLCAnc3FyJywgJ3NzaCcsICd4YWEnLCAneWhkJywgJ3l1ZCcsICdhYW8nLCAnYWJoJywgJ2FidicsICdhY20nLCAnYWNxJywgJ2FjdycsICdhY3gnLCAnYWN5JywgJ2FkZicsICdhZHMnLCAnYWViJywgJ2FlYycsICdhZmInLCAnYWpwJywgJ2FwYycsICdhcGQnLCAnYXJiJywgJ2FycScsICdhcnMnLCAnYXJ5JywgJ2FyeicsICdhdXonLCAnYXZsJywgJ2F5aCcsICdheWwnLCAnYXluJywgJ2F5cCcsICdiYnonLCAncGdhJywgJ2hlJywgJ2l3JywgJ3BzJywgJ3BidCcsICdwYnUnLCAncHN0JywgJ3BycCcsICdwcmQnLCAndWcnLCAndXInLCAneWRkJywgJ3lkcycsICd5aWgnLCAnamknLCAneWknLCAnaGJvJywgJ21lbicsICd4bW4nLCAnZmEnLCAnanByJywgJ3BlbycsICdwZXMnLCAncHJzJywgJ2R2JywgJ3NhbScsICdja2InXTtcbiAgICAgIHJldHVybiBydGxMbmdzLmluZGV4T2YodGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGxuZykpID4gLTEgfHwgbG5nLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignLWFyYWInKSA+IDEgPyAncnRsJyA6ICdsdHInO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjbG9uZUluc3RhbmNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsb25lSW5zdGFuY2UoKSB7XG4gICAgICB2YXIgX3RoaXM4ID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBub29wO1xuXG4gICAgICB2YXIgbWVyZ2VkT3B0aW9ucyA9IF9vYmplY3RTcHJlYWQkNihfb2JqZWN0U3ByZWFkJDYoX29iamVjdFNwcmVhZCQ2KHt9LCB0aGlzLm9wdGlvbnMpLCBvcHRpb25zKSwge1xuICAgICAgICBpc0Nsb25lOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgdmFyIGNsb25lID0gbmV3IEkxOG4obWVyZ2VkT3B0aW9ucyk7XG4gICAgICB2YXIgbWVtYmVyc1RvQ29weSA9IFsnc3RvcmUnLCAnc2VydmljZXMnLCAnbGFuZ3VhZ2UnXTtcbiAgICAgIG1lbWJlcnNUb0NvcHkuZm9yRWFjaChmdW5jdGlvbiAobSkge1xuICAgICAgICBjbG9uZVttXSA9IF90aGlzOFttXTtcbiAgICAgIH0pO1xuICAgICAgY2xvbmUuc2VydmljZXMgPSBfb2JqZWN0U3ByZWFkJDYoe30sIHRoaXMuc2VydmljZXMpO1xuICAgICAgY2xvbmUuc2VydmljZXMudXRpbHMgPSB7XG4gICAgICAgIGhhc0xvYWRlZE5hbWVzcGFjZTogY2xvbmUuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQoY2xvbmUpXG4gICAgICB9O1xuICAgICAgY2xvbmUudHJhbnNsYXRvciA9IG5ldyBUcmFuc2xhdG9yKGNsb25lLnNlcnZpY2VzLCBjbG9uZS5vcHRpb25zKTtcbiAgICAgIGNsb25lLnRyYW5zbGF0b3Iub24oJyonLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40ID4gMSA/IF9sZW40IC0gMSA6IDApLCBfa2V5NCA9IDE7IF9rZXk0IDwgX2xlbjQ7IF9rZXk0KyspIHtcbiAgICAgICAgICBhcmdzW19rZXk0IC0gMV0gPSBhcmd1bWVudHNbX2tleTRdO1xuICAgICAgICB9XG5cbiAgICAgICAgY2xvbmUuZW1pdC5hcHBseShjbG9uZSwgW2V2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgfSk7XG4gICAgICBjbG9uZS5pbml0KG1lcmdlZE9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgIGNsb25lLnRyYW5zbGF0b3Iub3B0aW9ucyA9IGNsb25lLm9wdGlvbnM7XG4gICAgICBjbG9uZS50cmFuc2xhdG9yLmJhY2tlbmRDb25uZWN0b3Iuc2VydmljZXMudXRpbHMgPSB7XG4gICAgICAgIGhhc0xvYWRlZE5hbWVzcGFjZTogY2xvbmUuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQoY2xvbmUpXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGNsb25lO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0b0pTT05cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXG4gICAgICAgIGxhbmd1YWdlczogdGhpcy5sYW5ndWFnZXMsXG4gICAgICAgIHJlc29sdmVkTGFuZ3VhZ2U6IHRoaXMucmVzb2x2ZWRMYW5ndWFnZVxuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gSTE4bjtcbn0oRXZlbnRFbWl0dGVyKTtcblxuX2RlZmluZVByb3BlcnR5KEkxOG4sIFwiY3JlYXRlSW5zdGFuY2VcIiwgZnVuY3Rpb24gKCkge1xuICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICByZXR1cm4gbmV3IEkxOG4ob3B0aW9ucywgY2FsbGJhY2spO1xufSk7XG5cbnZhciBpbnN0YW5jZSA9IEkxOG4uY3JlYXRlSW5zdGFuY2UoKTtcbmluc3RhbmNlLmNyZWF0ZUluc3RhbmNlID0gSTE4bi5jcmVhdGVJbnN0YW5jZTtcblxudmFyIGNyZWF0ZUluc3RhbmNlID0gaW5zdGFuY2UuY3JlYXRlSW5zdGFuY2U7XG52YXIgaW5pdCA9IGluc3RhbmNlLmluaXQ7XG52YXIgbG9hZFJlc291cmNlcyA9IGluc3RhbmNlLmxvYWRSZXNvdXJjZXM7XG52YXIgcmVsb2FkUmVzb3VyY2VzID0gaW5zdGFuY2UucmVsb2FkUmVzb3VyY2VzO1xudmFyIHVzZSA9IGluc3RhbmNlLnVzZTtcbnZhciBjaGFuZ2VMYW5ndWFnZSA9IGluc3RhbmNlLmNoYW5nZUxhbmd1YWdlO1xudmFyIGdldEZpeGVkVCA9IGluc3RhbmNlLmdldEZpeGVkVDtcbnZhciB0ID0gaW5zdGFuY2UudDtcbnZhciBleGlzdHMgPSBpbnN0YW5jZS5leGlzdHM7XG52YXIgc2V0RGVmYXVsdE5hbWVzcGFjZSA9IGluc3RhbmNlLnNldERlZmF1bHROYW1lc3BhY2U7XG52YXIgaGFzTG9hZGVkTmFtZXNwYWNlID0gaW5zdGFuY2UuaGFzTG9hZGVkTmFtZXNwYWNlO1xudmFyIGxvYWROYW1lc3BhY2VzID0gaW5zdGFuY2UubG9hZE5hbWVzcGFjZXM7XG52YXIgbG9hZExhbmd1YWdlcyA9IGluc3RhbmNlLmxvYWRMYW5ndWFnZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuZXhwb3J0IHsgY2hhbmdlTGFuZ3VhZ2UsIGNyZWF0ZUluc3RhbmNlLCBleGlzdHMsIGdldEZpeGVkVCwgaGFzTG9hZGVkTmFtZXNwYWNlLCBpbml0LCBsb2FkTGFuZ3VhZ2VzLCBsb2FkTmFtZXNwYWNlcywgbG9hZFJlc291cmNlcywgcmVsb2FkUmVzb3VyY2VzLCBzZXREZWZhdWx0TmFtZXNwYWNlLCB0LCB1c2UgfTtcbiIsImltcG9ydCB7dXNlQ29udGV4dH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGFwcENvbnRleHQgZnJvbSAnLi4vc3RvcmVzL2FwcENvbnRleHQnO1xuaW1wb3J0IHtsb2NhdGlvblNlcnZpY2UsIHF1ZXJ5U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHtnZXRUZXh0V2l0aE1lbW9UeXBlfSBmcm9tICcuLi9oZWxwZXJzL2ZpbHRlcic7XG5pbXBvcnQgJy4uL2xlc3MvbWVtby1maWx0ZXIubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGkxOG5leHQgZnJvbSAnaTE4bmV4dCc7XG5pbXBvcnQge21vbWVudH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbnRlcmZhY2UgRmlsdGVyUHJvcHMge31cblxuY29uc3QgTWVtb0ZpbHRlcjogUmVhY3QuRkM8RmlsdGVyUHJvcHM+ID0gKCkgPT4ge1xuICBjb25zdCB7XG4gICAgbG9jYXRpb25TdGF0ZToge3F1ZXJ5fSxcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XG5cbiAgY29uc3Qge3RhZzogdGFnUXVlcnksIGR1cmF0aW9uLCB0eXBlOiBtZW1vVHlwZSwgdGV4dDogdGV4dFF1ZXJ5LCBmaWx0ZXJ9ID0gcXVlcnk7XG5cbiAgY29uc3QgcXVlcnlGaWx0ZXIgPSBxdWVyeVNlcnZpY2UuZ2V0UXVlcnlCeUlkKGZpbHRlcik7XG4gIGNvbnN0IHNob3dGaWx0ZXIgPSBCb29sZWFuKFxuICAgIHRhZ1F1ZXJ5IHx8IChkdXJhdGlvbiAmJiBkdXJhdGlvbi5mcm9tIDwgZHVyYXRpb24udG8pIHx8IG1lbW9UeXBlIHx8IHRleHRRdWVyeSB8fCBxdWVyeUZpbHRlcixcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZmlsdGVyLXF1ZXJ5LWNvbnRhaW5lciAke3Nob3dGaWx0ZXIgPyAnJyA6ICdoaWRkZW4nfWB9PlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGlwLXRleHRcIj5GSUxURVI6IDwvc3Bhbj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyLWl0ZW0tY29udGFpbmVyICcgKyAocXVlcnlGaWx0ZXIgPyAnJyA6ICdoaWRkZW4nKX1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRNZW1vRmlsdGVyKCcnKTtcbiAgICAgICAgfX0+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tdGV4dFwiPvCflJY8L3NwYW4+IHtxdWVyeUZpbHRlcj8udGl0bGV9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyLWl0ZW0tY29udGFpbmVyICcgKyAodGFnUXVlcnkgPyAnJyA6ICdoaWRkZW4nKX1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRUYWdRdWVyeSgnJyk7XG4gICAgICAgIH19PlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj7wn4+377iPPC9zcGFuPiB7dGFnUXVlcnl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXsnZmlsdGVyLWl0ZW0tY29udGFpbmVyICcgKyAobWVtb1R5cGUgPyAnJyA6ICdoaWRkZW4nKX1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRNZW1vVHlwZVF1ZXJ5KCcnKTtcbiAgICAgICAgfX0+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tdGV4dFwiPvCfk6Y8L3NwYW4+IHtnZXRUZXh0V2l0aE1lbW9UeXBlKG1lbW9UeXBlIGFzIE1lbW9TcGVjVHlwZSl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtkdXJhdGlvbiAmJiBkdXJhdGlvbi5mcm9tIDwgZHVyYXRpb24udG8gPyAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJmaWx0ZXItaXRlbS1jb250YWluZXJcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRGcm9tQW5kVG9RdWVyeSgwLCAwKTtcbiAgICAgICAgICB9fT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj7wn5eT77iPPC9zcGFuPiB7dXRpbHMuZ2V0RGF0ZVN0cmluZyhkdXJhdGlvbi5mcm9tKX0ge2kxOG5leHQudCgndG8nKX17JyAnfVxuICAgICAgICAgIHttb21lbnQoZHVyYXRpb24udG8sICd4JykuYWRkKDEsICdkYXlzJykuZm9ybWF0KCdZWVlZL01NL0REJyl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J2ZpbHRlci1pdGVtLWNvbnRhaW5lciAnICsgKHRleHRRdWVyeSA/ICcnIDogJ2hpZGRlbicpfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldFRleHRRdWVyeSgnJyk7XG4gICAgICAgIH19PlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj7wn5SNPC9zcGFuPiB7dGV4dFF1ZXJ5fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZW1vRmlsdGVyO1xuIiwiLy8gaW1wb3J0IHsgZ2V0RmlsZSB9IGZyb20gXCIuLi9vYkNvbXBvbmVudHMvb2JVcGRhdGVNZW1vXCI7XG5pbXBvcnQge1RGaWxlfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcblxuLyoqXG4gKiDlrp7njrDkuIDkuKrnroDmmJPniYjnmoQgbWFya2Rvd24g6Kej5p6QXG4gKiAtIOWIl+ihqOino+aekO+8m1xuICogLSDku6PnoIHlnZfvvJtcbiAqIC0g5Yqg57KXL+aWnOS9k++8m1xuICogLSBUT0RPO1xuICovXG5jb25zdCBDT0RFX0JMT0NLX1JFRyA9IC9gYGAoW1xcc1xcU10qPylgYGAvZztcbmNvbnN0IEJPTERfVEVYVF9SRUcgPSAvXFwqXFwqKC4rPylcXCpcXCovZztcbmNvbnN0IEVNX1RFWFRfUkVHID0gL1xcKiguKz8pXFwqL2c7XG5jb25zdCBUT0RPX0JMT0NLX1JFRyA9IC9cXFsgXFxdIC9nO1xuY29uc3QgRE9ORV9CTE9DS19SRUcgPSAvXFxbeFxcXSAvZztcbmNvbnN0IERPVF9MSV9SRUcgPSAvWypdIC9nO1xuY29uc3QgTlVNX0xJX1JFRyA9IC8oXFxkKylcXC4gL2c7XG4vLyBjb25zdCBCUl9SRUcgPSAvXFw8YnJcXD4vZztcblxuY29uc3QgSU5URVJOQUxfTURfUkVHID0gL1xcW1xcWyhbXlxcXV0rKVxcXVxcXS9nO1xuY29uc3QgRVhSRVJOQUxfTURfUkVHID0gL1xcWyhbXlxcXV0rKVxcXVxcKCgoW15cXF1dKykubWQpXFwpL2c7XG5cbmNvbnN0IHBhcnNlTWFya2VkVG9IdG1sID0gKG1hcmtlZFN0cjogc3RyaW5nLCBtZW1vaWQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBodG1sVGV4dCA9IG1hcmtlZFN0clxuICAgIC5yZXBsYWNlKENPREVfQkxPQ0tfUkVHLCBcIjxwcmUgbGFuZz0nJz4kMTwvcHJlPlwiKVxuICAgIC5yZXBsYWNlKERPVF9MSV9SRUcsIFwiPHNwYW4gY2xhc3M9J2NvdW50ZXItYmxvY2snPuKAojwvc3Bhbj5cIilcbiAgICAucmVwbGFjZShOVU1fTElfUkVHLCBcIjxzcGFuIGNsYXNzPSdjb3VudGVyLWJsb2NrJz4kMS48L3NwYW4+XCIpXG4gICAgLnJlcGxhY2UoVE9ET19CTE9DS19SRUcsIFwiPHNwYW4gY2xhc3M9J3RvZG8tYmxvY2snIGRhdGEtdHlwZT0ndG9kbyc+4qycPC9zcGFuPlwiKVxuICAgIC5yZXBsYWNlKERPTkVfQkxPQ0tfUkVHLCBcIjxzcGFuIGNsYXNzPSd0b2RvLWJsb2NrJyBkYXRhLXR5cGU9J2RvbmUnPuKchTwvc3Bhbj5cIilcbiAgICAucmVwbGFjZShCT0xEX1RFWFRfUkVHLCAnPHN0cm9uZz4kMTwvc3Ryb25nPicpXG4gICAgLnJlcGxhY2UoRU1fVEVYVF9SRUcsICc8ZW0+JDE8L2VtPicpXG4gICAgLnJlcGxhY2UoLyZsdDticiZndDsvZywgJzwvcD48cD4nKVxuICAgIC5yZXBsYWNlKC8mYW1wOy9nLCAnJicpO1xuXG4gIGxldCBuZXdIdG1sVGV4dCA9IGh0bWxUZXh0O1xuXG4gIGlmIChtZW1vaWQpIHtcbiAgICBpZiAoSU5URVJOQUxfTURfUkVHLnRlc3QoaHRtbFRleHQpKSB7XG4gICAgICBjb25zdCBpbnRlcm5hbE1EID0gaHRtbFRleHQubWF0Y2goSU5URVJOQUxfTURfUkVHKTtcbiAgICAgIC8vIGNvbnN0IHBhdGggPSBnZXRGaWxlKG1lbW9pZCkucGF0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW50ZXJuYWxNRC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIS8oanBlZ3xqcGd8Z2lmfHBuZ3xzdmd8Ym1wfHdlcGcpL2cudGVzdChpbnRlcm5hbE1EW2ldKSkge1xuICAgICAgICAgIGNvbnN0IGludGVybmFsQ29udGVudCA9IGdldENvbnRlbnRGcm9tSW50ZXJuYWxMaW5rKGludGVybmFsTURbaV0pO1xuICAgICAgICAgIGlmICgvXFx8L2cudGVzdChpbnRlcm5hbENvbnRlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBbbGluaywgbGFiZWxdID0gaW50ZXJuYWxDb250ZW50LnNwbGl0KCd8Jyk7XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlTWVudCA9IHJlcGxhY2VNZChsaW5rLCBsYWJlbCk7XG4gICAgICAgICAgICBuZXdIdG1sVGV4dCA9IGh0bWxUZXh0LnJlcGxhY2UoaW50ZXJuYWxNRFtpXSwgcmVwbGFjZU1lbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBsaW5rID0gaW50ZXJuYWxDb250ZW50O1xuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSAnJztcbiAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VNZW50ID0gcmVwbGFjZU1kKGxpbmssIGxhYmVsKTtcbiAgICAgICAgICAgIG5ld0h0bWxUZXh0ID0gbmV3SHRtbFRleHQucmVwbGFjZShpbnRlcm5hbE1EW2ldLCByZXBsYWNlTWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChFWFJFUk5BTF9NRF9SRUcudGVzdChodG1sVGV4dCkpIHtcbiAgICAgIGNvbnN0IGV4dGVybmFsTUQgPSBodG1sVGV4dC5tYXRjaChFWFJFUk5BTF9NRF9SRUcpO1xuICAgICAgLy8gY29uc3QgcGF0aCA9IGdldEZpbGUobWVtb2lkKS5wYXRoO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBleHRlcm5hbE1ELmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghLyhqcGVnfGpwZ3xnaWZ8cG5nfHN2Z3xibXB8d2VwZykvZy50ZXN0KGV4dGVybmFsTURbaV0pKSB7XG4gICAgICAgICAgY29uc3QgbGluayA9IGdldENvbnRlbnRGcm9tRXh0ZXJuYWxMaW5rKGV4dGVybmFsTURbaV0pO1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gZ2V0TGFiZWxGcm9tRXh0ZXJuYWxMaW5rKGV4dGVybmFsTURbaV0pO1xuICAgICAgICAgIGNvbnN0IHJlcGxhY2VNZW50ID0gcmVwbGFjZU1kKGxpbmssIGxhYmVsKTtcbiAgICAgICAgICBuZXdIdG1sVGV4dCA9IGh0bWxUZXh0LnJlcGxhY2UoZXh0ZXJuYWxNRFtpXSwgcmVwbGFjZU1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gY29uc3QgZXh0ZXJuYWxNRCA9IG1hcmtlZFN0ci5tYXRjaChFWFJFUk5BTF9NRF9SRUcpO1xuXG4gIHJldHVybiBuZXdIdG1sVGV4dDtcbn07XG5cbmNvbnN0IHJlcGxhY2VNZCA9IChpbnRlcm5hbExpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHttZXRhZGF0YUNhY2hlfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcblxuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxMaW5rKSwgJycpO1xuXG4gIC8vIGxldCBmaWxlUGF0aDtcblxuICBpZiAoZmlsZSBpbnN0YW5jZW9mIFRGaWxlKSB7XG4gICAgLy8gZmlsZVBhdGggPSBmaWxlLnBhdGg7XG4gICAgaWYgKGxhYmVsKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgPGEgZGF0YS1ocmVmPVwiJHtpbnRlcm5hbExpbmt9XCIgZGF0YS10eXBlPVwibGlua1wiIGRhdGEtZmlsZXBhdGg9XCIke2ludGVybmFsTGlua31cIiBjbGFzcz1cImludGVybmFsLWxpbmtcIj4ke2xhYmVsfTwvYT5gKTtcbiAgICAgIHJldHVybiBgPGEgZGF0YS1ocmVmPVwiJHtpbnRlcm5hbExpbmt9XCIgZGF0YS10eXBlPVwibGlua1wiIGRhdGEtZmlsZXBhdGg9XCIke2ludGVybmFsTGlua31cIiBjbGFzcz1cImludGVybmFsLWxpbmtcIj4ke2xhYmVsfTwvYT5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYDxhIGRhdGEtaHJlZj1cIiR7aW50ZXJuYWxMaW5rfVwiIGRhdGEtdHlwZT1cImxpbmtcIiBkYXRhLWZpbGVwYXRoPVwiJHtpbnRlcm5hbExpbmt9XCIgY2xhc3M9XCJpbnRlcm5hbC1saW5rXCI+JHtpbnRlcm5hbExpbmt9PC9hPmA7XG4gICAgfVxuICB9IGVsc2UgaWYgKGxhYmVsKSB7XG4gICAgcmV0dXJuIGA8YSBkYXRhLWhyZWY9XCIke2ludGVybmFsTGlua31cIiBkYXRhLXR5cGU9XCJsaW5rXCIgZGF0YS1maWxlcGF0aD1cIiR7aW50ZXJuYWxMaW5rfVwiIGNsYXNzPVwiaW50ZXJuYWwtbGluayBpcy11bnJlc29sdmVkXCI+JHtsYWJlbH08L2E+YDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYDxhIGRhdGEtaHJlZj1cIiR7aW50ZXJuYWxMaW5rfVwiIGRhdGEtdHlwZT1cImxpbmtcIiBkYXRhLWZpbGVwYXRoPVwiJHtpbnRlcm5hbExpbmt9XCIgY2xhc3M9XCJpbnRlcm5hbC1saW5rIGlzLXVucmVzb2x2ZWRcIj4ke2ludGVybmFsTGlua308L2E+YDtcbiAgfVxufTtcblxuY29uc3QgZ2V0Q29udGVudEZyb21JbnRlcm5hbExpbmsgPSAobGluZTogc3RyaW5nKSA9PiAvXFxbXFxbKFteXFxdXSspXFxdXFxdL2cuZXhlYyhsaW5lKT8uWzFdO1xuXG5jb25zdCBnZXRMYWJlbEZyb21FeHRlcm5hbExpbmsgPSAobGluZTogc3RyaW5nKSA9PiBFWFJFUk5BTF9NRF9SRUcuZXhlYyhsaW5lKT8uWzFdO1xuXG5jb25zdCBnZXRDb250ZW50RnJvbUV4dGVybmFsTGluayA9IChsaW5lOiBzdHJpbmcpID0+IC9cXFsoW15cXF1dKylcXF1cXCgoKFteXFxdXSspLm1kKVxcKS9nLmV4ZWMobGluZSk/LlszXTtcblxuY29uc3QgcGFyc2VIdG1sVG9SYXdUZXh0ID0gKGh0bWxTdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRlbXBFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICB0ZW1wRWwuY2xhc3NOYW1lID0gJ21lbW8tY29udGVudC10ZXh0JztcbiAgdGVtcEVsLmlubmVySFRNTCA9IGh0bWxTdHI7XG4gIGNvbnN0IHRleHQgPSB0ZW1wRWwuaW5uZXJUZXh0O1xuICByZXR1cm4gdGV4dDtcbn07XG5cbmNvbnN0IHBhcnNlUmF3VGV4dFRvSHRtbCA9IChyYXdUZXh0U3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBodG1sVGV4dCA9IHJhd1RleHRTdHIucmVwbGFjZSgvXFxuL2csICc8YnI+Jyk7XG4gIHJldHVybiBodG1sVGV4dDtcbn07XG5cbmNvbnN0IGVuY29kZUh0bWwgPSAoaHRtbFN0cjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICB0LnRleHRDb250ZW50ID0gaHRtbFN0cjtcbiAgcmV0dXJuIHQuaW5uZXJIVE1MO1xufTtcblxuZXhwb3J0IHtlbmNvZGVIdG1sLCBwYXJzZU1hcmtlZFRvSHRtbCwgcGFyc2VIdG1sVG9SYXdUZXh0LCBwYXJzZVJhd1RleHRUb0h0bWx9O1xuIiwiaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1N0b3JlfSBmcm9tICcuL2NyZWF0ZVN0b3JlJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudDtcbiAgc3RvcmU6IFN0b3JlPGFueSwgYW55PjtcbiAgY29udGV4dDogUmVhY3QuQ29udGV4dDxhbnk+O1xufVxuXG4vKipcbiAqIFRveS1SZWR1eCBQcm92aWRlclxuICogSnVzdCBmb3IgZGVidWcgd2l0aCB0aGUgYXBwIHN0b3JlXG4gKi9cbmNvbnN0IFByb3ZpZGVyOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IHtjaGlsZHJlbiwgc3RvcmUsIGNvbnRleHQ6IENvbnRleHR9ID0gcHJvcHM7XG4gIGNvbnN0IFthcHBTdGF0ZSwgc2V0QXBwU3RhdGVdID0gdXNlU3RhdGUoc3RvcmUuZ2V0U3RhdGUoKSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IHN0b3JlLnN1YnNjcmliZSgobnMpID0+IHtcbiAgICAgIHNldEFwcFN0YXRlKG5zKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB1bnN1YnNjcmliZSgpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICByZXR1cm4gPENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FwcFN0YXRlfT57Y2hpbGRyZW59PC9Db250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFByb3ZpZGVyO1xuIiwiaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuLi9zdG9yZXMvYXBwQ29udGV4dCc7XG5pbXBvcnQgUHJvdmlkZXIgZnJvbSAnLi4vbGFicy9Qcm92aWRlcic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0RVUkFUSU9OfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0cyc7XG5pbXBvcnQgJy4uL2xlc3MvZGlhbG9nLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW50ZXJmYWNlIERpYWxvZ0NvbmZpZyB7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICB1c2VBcHBDb250ZXh0PzogYm9vbGVhbjtcbiAgY2xpY2tTcGFjZURlc3Ryb3k/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBEaWFsb2dDb25maWcsIERpYWxvZ1Byb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuY29uc3QgQmFzZURpYWxvZzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCB7Y2hpbGRyZW4sIGNsYXNzTmFtZSwgY2xpY2tTcGFjZURlc3Ryb3ksIGRlc3Ryb3l9ID0gcHJvcHM7XG5cbiAgY29uc3QgaGFuZGxlU3BhY2VDbGlja2VkID0gKCkgPT4ge1xuICAgIGlmIChjbGlja1NwYWNlRGVzdHJveSkge1xuICAgICAgZGVzdHJveSgpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZGlhbG9nLXdyYXBwZXIgJHtjbGFzc05hbWV9YH0gb25DbGljaz17aGFuZGxlU3BhY2VDbGlja2VkfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWNvbnRhaW5lclwiIG9uQ2xpY2s9eyhlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0RpYWxvZzxUIGV4dGVuZHMgRGlhbG9nUHJvcHM+KFxuICBjb25maWc6IERpYWxvZ0NvbmZpZyxcbiAgRGlhbG9nQ29tcG9uZW50OiBSZWFjdC5GQzxUPixcbiAgcHJvcHM/OiBPbWl0PFQsICdkZXN0cm95Jz4sXG4pOiBEaWFsb2dDYWxsYmFjayB7XG4gIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmQodGVtcERpdik7XG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgdGVtcERpdi5maXJzdEVsZW1lbnRDaGlsZD8uY2xhc3NMaXN0LmFkZCgnc2hvd3VwJyk7XG4gIH0sIDApO1xuXG4gIGNvbnN0IGNiczogRGlhbG9nQ2FsbGJhY2sgPSB7XG4gICAgZGVzdHJveTogKCkgPT4ge1xuICAgICAgdGVtcERpdi5maXJzdEVsZW1lbnRDaGlsZD8uY2xhc3NMaXN0LnJlbW92ZSgnc2hvd3VwJyk7XG4gICAgICB0ZW1wRGl2LmZpcnN0RWxlbWVudENoaWxkPy5jbGFzc0xpc3QuYWRkKCdzaG93b2ZmJyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGVtcERpdi5yZW1vdmUoKTtcbiAgICAgICAgUmVhY3RET00udW5tb3VudENvbXBvbmVudEF0Tm9kZSh0ZW1wRGl2KTtcbiAgICAgIH0sIEFOSU1BVElPTl9EVVJBVElPTik7XG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBkaWFsb2dQcm9wcyA9IHtcbiAgICAuLi5wcm9wcyxcbiAgICBkZXN0cm95OiBjYnMuZGVzdHJveSxcbiAgfSBhcyBUO1xuXG4gIGxldCBGcmFnbWVudCA9IChcbiAgICA8QmFzZURpYWxvZyBkZXN0cm95PXtjYnMuZGVzdHJveX0gY2xpY2tTcGFjZURlc3Ryb3k9e3RydWV9IHsuLi5jb25maWd9PlxuICAgICAgPERpYWxvZ0NvbXBvbmVudCB7Li4uZGlhbG9nUHJvcHN9IC8+XG4gICAgPC9CYXNlRGlhbG9nPlxuICApO1xuXG4gIGlmIChjb25maWcudXNlQXBwQ29udGV4dCkge1xuICAgIEZyYWdtZW50ID0gKFxuICAgICAgPFByb3ZpZGVyIHN0b3JlPXthcHBTdG9yZX0gY29udGV4dD17YXBwQ29udGV4dH0+XG4gICAgICAgIHtGcmFnbWVudH1cbiAgICAgIDwvUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuXG4gIFJlYWN0RE9NLnJlbmRlcihGcmFnbWVudCwgdGVtcERpdik7XG5cbiAgcmV0dXJuIGNicztcbn1cbiIsImltcG9ydCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQge3Nob3dEaWFsb2d9IGZyb20gJy4vRGlhbG9nJztcbmltcG9ydCAnLi4vbGVzcy9wcmV2aWV3LWltYWdlLWRpYWxvZy5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcbmltcG9ydCBjbG9zZSBmcm9tICcuLi9pY29ucy9jbG9zZS5zdmcnO1xuaW1wb3J0IHtOb3RpY2V9IGZyb20gJ29ic2lkaWFuJztcblxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgRGlhbG9nUHJvcHMge1xuICBpbWdVcmw6IHN0cmluZztcbiAgZmlsZXBhdGg/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFByZXZpZXdJbWFnZURpYWxvZzogUmVhY3QuRkM8UHJvcHM+ID0gKHtkZXN0cm95LCBpbWdVcmwsIGZpbGVwYXRofTogUHJvcHMpID0+IHtcbiAgY29uc3QgaW1nUmVmID0gdXNlUmVmPEhUTUxJbWFnZUVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbaW1nV2lkdGgsIHNldEltZ1dpZHRoXSA9IHVzZVN0YXRlPG51bWJlcj4oLTEpO1xuICBjb25zdCB7dmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXRpbHMuZ2V0SW1hZ2VTaXplKGltZ1VybCkudGhlbigoe3dpZHRofSkgPT4ge1xuICAgICAgaWYgKHdpZHRoICE9PSAwKSB7XG4gICAgICAgIHNldEltZ1dpZHRoKDgwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEltZ1dpZHRoKDApO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VCdG5DbGljayA9ICgpID0+IHtcbiAgICBkZXN0cm95KCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVjcmVhc2VJbWFnZVNpemUgPSAoKSA9PiB7XG4gICAgaWYgKGltZ1dpZHRoID4gMzApIHtcbiAgICAgIHNldEltZ1dpZHRoKGltZ1dpZHRoIC0gMTApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVJbmNyZWFzZUltYWdlU2l6ZSA9ICgpID0+IHtcbiAgICBzZXRJbWdXaWR0aChpbWdXaWR0aCArIDEwKTtcbiAgfTtcblxuICBjb25zdCBjb252ZXJ0QmFzZTY0VG9CbG9iID0gKGJhc2U2NDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpID0+IHtcbiAgICB2YXIgYnl0ZXMgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIHZhciBhYiA9IG5ldyBBcnJheUJ1ZmZlcihieXRlcy5sZW5ndGgpO1xuICAgIHZhciBpYSA9IG5ldyBVaW50OEFycmF5KGFiKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpYVtpXSA9IGJ5dGVzLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQmxvYihbYWJdLCB7dHlwZTogdHlwZX0pO1xuICB9O1xuXG4gIGNvbnN0IGNvcHlJbWFnZVRvQ2xpcGJvYXJkID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICgoZmlsZXBhdGggPT09IG51bGwgfHwgZmlsZXBhdGggPT09IHVuZGVmaW5lZCkgJiYgaW1nVXJsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBteUJhc2U2NCA9IGltZ1VybC5zcGxpdCgnYmFzZTY0LCcpWzFdO1xuICAgICAgY29uc3QgYmxvYklucHV0ID0gY29udmVydEJhc2U2NFRvQmxvYihteUJhc2U2NCwgJ2ltYWdlL3BuZycpO1xuICAgICAgY29uc3QgY2xpcGJvYXJkSXRlbUlucHV0ID0gbmV3IENsaXBib2FyZEl0ZW0oeydpbWFnZS9wbmcnOiBibG9iSW5wdXR9KTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3JbJ2NsaXBib2FyZCddLndyaXRlKFtjbGlwYm9hcmRJdGVtSW5wdXRdKTtcbiAgICAgIG5ldyBOb3RpY2UoJ1NlbmQgdG8gY2xpcGJvYXJkIHN1Y2Nlc3NmdWxseScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYnVmZmVyID0gYXdhaXQgdmF1bHQuYWRhcHRlci5yZWFkQmluYXJ5KGZpbGVwYXRoKTtcbiAgICAgIHZhciBhcnIgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuXG4gICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFthcnJdLCB7dHlwZTogJ2ltYWdlL3BuZyd9KTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IGl0ZW0gPSBuZXcgQ2xpcGJvYXJkSXRlbSh7J2ltYWdlL3BuZyc6IGJsb2J9KTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3JbJ2NsaXBib2FyZCddLndyaXRlKFtpdGVtXSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGNsb3NlLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUNsb3NlQnRuQ2xpY2t9PlxuICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtjbG9zZX0gLz5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZy1jb250YWluZXIgaW50ZXJuYWwtZW1iZWQgaW1hZ2UtZW1iZWQgaXMtbG9hZGVkXCI+XG4gICAgICAgIDxpbWcgY2xhc3NOYW1lPXtpbWdXaWR0aCA8PSAwID8gJ2hpZGRlbicgOiAnJ30gcmVmPXtpbWdSZWZ9IHdpZHRoPXtpbWdXaWR0aCArICclJ30gc3JjPXtpbWdVcmx9IC8+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2xvYWRpbmctdGV4dCAnICsgKGltZ1dpZHRoID09PSAtMSA/ICcnIDogJ2hpZGRlbicpfT7lm77niYfliqDovb3kuK0uLi48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2xvYWRpbmctdGV4dCAnICsgKGltZ1dpZHRoID09PSAwID8gJycgOiAnaGlkZGVuJyl9PvCfmJ8g5Zu+54mH5Yqg6L295aSx6LSl77yM5Y+v6IO95piv5peg5pWI55qE6ZO+5o6lPC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWN0aW9uLWJ0bnMtY29udGFpbmVyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17aGFuZGxlRGVjcmVhc2VJbWFnZVNpemV9PlxuICAgICAgICAgIOKellxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG5cIiBvbkNsaWNrPXtoYW5kbGVJbmNyZWFzZUltYWdlU2l6ZX0+XG4gICAgICAgICAg4p6VXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9eygpID0+IHNldEltZ1dpZHRoKDgwKX0+XG4gICAgICAgICAg4q2VXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2NvcHlJbWFnZVRvQ2xpcGJvYXJkfT5cbiAgICAgICAgICDwn5OEXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzaG93UHJldmlld0ltYWdlRGlhbG9nKGltZ1VybDogc3RyaW5nLCBmaWxlcGF0aD86IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZmlsZXBhdGgpIHtcbiAgICBzaG93RGlhbG9nKFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwcmV2aWV3LWltYWdlLWRpYWxvZycsXG4gICAgICB9LFxuICAgICAgUHJldmlld0ltYWdlRGlhbG9nLFxuICAgICAge2ltZ1VybCwgZmlsZXBhdGh9LFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgc2hvd0RpYWxvZyhcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncHJldmlldy1pbWFnZS1kaWFsb2cnLFxuICAgICAgfSxcbiAgICAgIFByZXZpZXdJbWFnZURpYWxvZyxcbiAgICAgIHtpbWdVcmx9LFxuICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCBzaG93UHJldmlld0ltYWdlRGlhbG9nIGZyb20gJy4vUHJldmlld0ltYWdlRGlhbG9nJztcbmltcG9ydCAnLi4vbGVzcy9pbWFnZS5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGltZ1VybDogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xuICByZWZlcnJlclBvbGljeT86IHN0cmluZztcbiAgZmlsZXBhdGg/OiBzdHJpbmc7XG59XG5cbmNvbnN0IEltYWdlOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IHtjbGFzc05hbWUsIGltZ1VybCwgYWx0LCByZWZlcnJlclBvbGljeSwgZmlsZXBhdGh9ID0gcHJvcHM7XG5cbiAgY29uc3QgaGFuZGxlSW1hZ2VDbGljayA9ICgpID0+IHtcbiAgICBpZiAoZmlsZXBhdGgpIHtcbiAgICAgIHNob3dQcmV2aWV3SW1hZ2VEaWFsb2coaW1nVXJsLCBmaWxlcGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNob3dQcmV2aWV3SW1hZ2VEaWFsb2coaW1nVXJsKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J2ltYWdlLWNvbnRhaW5lciAnICsgY2xhc3NOYW1lfSBvbkNsaWNrPXtoYW5kbGVJbWFnZUNsaWNrfSByZWZlcnJlclBvbGljeT17cmVmZXJyZXJQb2xpY3l9PlxuICAgICAgPGltZyBzcmM9e2ltZ1VybH0gYWx0PXthbHR9IGRlY29kaW5nPVwiYXN5bmNcIiBsb2FkaW5nPVwibGF6eVwiIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZTtcbiIsImltcG9ydCB7dXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIElNQUdFX1VSTF9SRUcsXG4gIE1BUktET1dOX1VSTF9SRUcsXG4gIE1BUktET1dOX1dFQl9VUkxfUkVHLFxuICBNRU1PX0xJTktfUkVHLFxuICBXSUtJX0lNQUdFX1VSTF9SRUcsXG59IGZyb20gJy4uL2hlbHBlcnMvY29uc3RzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7Z2xvYmFsU3RhdGVTZXJ2aWNlLCBtZW1vU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHtwYXJzZUh0bWxUb1Jhd1RleHR9IGZyb20gJy4uL2hlbHBlcnMvbWFya2VkJztcbmltcG9ydCB7Zm9ybWF0TWVtb0NvbnRlbnR9IGZyb20gJy4vTWVtbyc7XG5pbXBvcnQge3Nob3dEaWFsb2d9IGZyb20gJy4vRGlhbG9nJztcbmltcG9ydCBPbmx5IGZyb20gJy4vY29tbW9uL09ubHlXaGVuJztcbmltcG9ydCBJbWFnZSBmcm9tICcuL0ltYWdlJztcbmltcG9ydCAnLi4vbGVzcy9tZW1vLWNhcmQtZGlhbG9nLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Tm90aWNlLCBURmlsZSwgVmF1bHR9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCBhcHBTdG9yZSBmcm9tICcuLi9zdG9yZXMvYXBwU3RvcmUnO1xuaW1wb3J0IGNsb3NlIGZyb20gJy4uL2ljb25zL2Nsb3NlLnN2Zyc7XG5pbXBvcnQgZWRpdCBmcm9tICcuLi9pY29ucy9lZGl0LnN2Zyc7XG5cbmludGVyZmFjZSBMaW5rZWRNZW1vIGV4dGVuZHMgRm9ybWF0dGVkTWVtbyB7XG4gIGRhdGVTdHI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgRGlhbG9nUHJvcHMge1xuICBtZW1vOiBNb2RlbC5NZW1vO1xufVxuXG5pbnRlcmZhY2UgTGlua01hdGNoIHtcbiAgbGlua1RleHQ6IHN0cmluZztcbiAgYWx0VGV4dDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGZpbGVwYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0UGF0aE9mSW1hZ2UgPSAodmF1bHQ6IFZhdWx0LCBpbWFnZTogVEZpbGUpID0+IHtcbiAgcmV0dXJuIHZhdWx0LmdldFJlc291cmNlUGF0aChpbWFnZSk7XG59O1xuXG5jb25zdCBkZXRlY3RXaWtpSW50ZXJuYWxMaW5rID0gKGxpbmVUZXh0OiBzdHJpbmcpOiBMaW5rTWF0Y2ggfCBudWxsID0+IHtcbiAgY29uc3Qge21ldGFkYXRhQ2FjaGUsIHZhdWx0fSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcbiAgY29uc3QgaW50ZXJuYWxGaWxlTmFtZSA9IFdJS0lfSU1BR0VfVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzFdO1xuICBjb25zdCBpbnRlcm5hbEFsdE5hbWUgPSBXSUtJX0lNQUdFX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XTtcbiAgY29uc3QgZmlsZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZGVjb2RlVVJJQ29tcG9uZW50KGludGVybmFsRmlsZU5hbWUpLCAnJyk7XG4gIGlmIChmaWxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxuICAgICAgcGF0aDogJycsXG4gICAgICBmaWxlcGF0aDogJycsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBpbWFnZVBhdGggPSBnZXRQYXRoT2ZJbWFnZSh2YXVsdCwgZmlsZSk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLnBhdGg7XG4gICAgaWYgKGludGVybmFsQWx0TmFtZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgICAgYWx0VGV4dDogJycsXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcbiAgICAgICAgZmlsZXBhdGg6IGZpbGVQYXRoLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGRldGVjdE1ESW50ZXJuYWxMaW5rID0gKGxpbmVUZXh0OiBzdHJpbmcpOiBMaW5rTWF0Y2ggfCBudWxsID0+IHtcbiAgY29uc3Qge21ldGFkYXRhQ2FjaGUsIHZhdWx0fSA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlLmFwcDtcbiAgY29uc3QgaW50ZXJuYWxGaWxlTmFtZSA9IE1BUktET1dOX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/Lls1XTtcbiAgY29uc3QgaW50ZXJuYWxBbHROYW1lID0gTUFSS0RPV05fVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzJdO1xuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcbiAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIGZpbGVwYXRoOiAnJyxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKHZhdWx0LCBmaWxlKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUucGF0aDtcbiAgICBpZiAoaW50ZXJuYWxBbHROYW1lKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgICBhbHRUZXh0OiAnJyxcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgTWVtb0NhcmREaWFsb2c6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgW21lbW8sIHNldE1lbW9dID0gdXNlU3RhdGU8Rm9ybWF0dGVkTWVtbz4oe1xuICAgIC4uLnByb3BzLm1lbW8sXG4gICAgY3JlYXRlZEF0U3RyOiB1dGlscy5nZXREYXRlVGltZVN0cmluZyhwcm9wcy5tZW1vLmNyZWF0ZWRBdCksXG4gIH0pO1xuICBjb25zdCBbbGlua01lbW9zLCBzZXRMaW5rTWVtb3NdID0gdXNlU3RhdGU8TGlua2VkTWVtb1tdPihbXSk7XG4gIGNvbnN0IFtsaW5rZWRNZW1vcywgc2V0TGlua2VkTWVtb3NdID0gdXNlU3RhdGU8TGlua2VkTWVtb1tdPihbXSk7XG5cbiAgbGV0IGV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XG4gIGxldCBpbnRlcm5hbEltYWdlVXJscyA9IFtdO1xuICBsZXQgYWxsTWFya2Rvd25MaW5rOiBzdHJpbmcgfCBhbnlbXSA9IFtdO1xuICBsZXQgYWxsSW50ZXJuYWxMaW5rID0gW10gYXMgYW55W107XG4gIGlmIChJTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSkge1xuICAgIGxldCBhbGxFeHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xuICAgIGxldCBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcbiAgICBpZiAoTUFSS0RPV05fVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbE1hcmtkb3duTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1VSTF9SRUcpKTtcbiAgICB9XG4gICAgaWYgKFdJS0lfSU1BR0VfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xuICAgIH1cbiAgICAvLyBjb25zdCBhbGxJbnRlcm5hbExpbmsgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChXSUtJX0lNQUdFX1VSTF9SRUcpKTtcbiAgICBpZiAoTUFSS0RPV05fV0VCX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKSB7XG4gICAgICBhbGxFeHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1dFQl9VUkxfUkVHKSk7XG4gICAgfVxuICAgIGlmIChhbGxJbnRlcm5hbExpbmsubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEludGVybmFsTGluay5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgb25lID0gYWxsSW50ZXJuYWxMaW5rW2ldO1xuICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdFdpa2lJbnRlcm5hbExpbmsob25lKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGxNYXJrZG93bkxpbmsubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbE1hcmtkb3duTGluay5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgdHdvID0gYWxsTWFya2Rvd25MaW5rW2ldO1xuICAgICAgICBpZiAoLyguKilodHRwW3NdPyguKikvLnRlc3QodHdvKSkge1xuICAgICAgICAgIGFub3RoZXJFeHRlcm5hbEltYWdlVXJscy5wdXNoKE1BUktET1dOX1VSTF9SRUcuZXhlYyh0d28pPy5bNV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0TURJbnRlcm5hbExpbmsodHdvKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuYWxJbWFnZVVybHMgPSBhbGxFeHRlcm5hbEltYWdlVXJscy5jb25jYXQoYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzKTtcbiAgICAvLyBleHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmV0Y2hMaW5rZWRNZW1vcyA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxpbmtNZW1vczogTGlua2VkTWVtb1tdID0gW107XG4gICAgICAgIGNvbnN0IG1hdGNoZWRBcnIgPSBbLi4ubWVtby5jb250ZW50Lm1hdGNoQWxsKE1FTU9fTElOS19SRUcpXTtcbiAgICAgICAgZm9yIChjb25zdCBtYXRjaFJlcyBvZiBtYXRjaGVkQXJyKSB7XG4gICAgICAgICAgaWYgKG1hdGNoUmVzICYmIG1hdGNoUmVzLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgY29uc3QgaWQgPSBtYXRjaFJlc1syXTtcbiAgICAgICAgICAgIGNvbnN0IG1lbW9UZW1wID0gbWVtb1NlcnZpY2UuZ2V0TWVtb0J5SWQoaWQpO1xuICAgICAgICAgICAgaWYgKG1lbW9UZW1wKSB7XG4gICAgICAgICAgICAgIGxpbmtNZW1vcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAuLi5tZW1vVGVtcCxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRTdHI6IHV0aWxzLmdldERhdGVUaW1lU3RyaW5nKG1lbW9UZW1wLmNyZWF0ZWRBdCksXG4gICAgICAgICAgICAgICAgZGF0ZVN0cjogdXRpbHMuZ2V0RGF0ZVN0cmluZyhtZW1vVGVtcC5jcmVhdGVkQXQpLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2V0TGlua01lbW9zKFsuLi5saW5rTWVtb3NdKTtcblxuICAgICAgICBjb25zdCBsaW5rZWRNZW1vcyA9IGF3YWl0IG1lbW9TZXJ2aWNlLmdldExpbmtlZE1lbW9zKG1lbW8uaWQpO1xuICAgICAgICBzZXRMaW5rZWRNZW1vcyhcbiAgICAgICAgICBsaW5rZWRNZW1vc1xuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmNyZWF0ZWRBdCkgLSB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5jcmVhdGVkQXQpKVxuICAgICAgICAgICAgLm1hcCgobSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4ubSxcbiAgICAgICAgICAgICAgY3JlYXRlZEF0U3RyOiB1dGlscy5nZXREYXRlVGltZVN0cmluZyhtLmNyZWF0ZWRBdCksXG4gICAgICAgICAgICAgIGRhdGVTdHI6IHV0aWxzLmdldERhdGVTdHJpbmcobS5jcmVhdGVkQXQpLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gZG8gbnRoXG4gICAgICB9XG4gICAgfTtcblxuICAgIGZldGNoTGlua2VkTWVtb3MoKTtcbiAgfSwgW21lbW8uaWRdKTtcblxuICBjb25zdCBoYW5kbGVNZW1vQ29udGVudENsaWNrID0gdXNlQ2FsbGJhY2soYXN5bmMgKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXRFbCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRhcmdldEVsLmNsYXNzTmFtZSA9PT0gJ21lbW8tbGluay10ZXh0Jykge1xuICAgICAgY29uc3QgbmV4dE1lbW9JZCA9IHRhcmdldEVsLmRhdGFzZXQ/LnZhbHVlO1xuICAgICAgY29uc3QgbWVtb1RlbXAgPSBtZW1vU2VydmljZS5nZXRNZW1vQnlJZChuZXh0TWVtb0lkID8/ICcnKTtcblxuICAgICAgaWYgKG1lbW9UZW1wKSB7XG4gICAgICAgIGNvbnN0IG5leHRNZW1vID0ge1xuICAgICAgICAgIC4uLm1lbW9UZW1wLFxuICAgICAgICAgIGNyZWF0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcobWVtb1RlbXAuY3JlYXRlZEF0KSxcbiAgICAgICAgfTtcbiAgICAgICAgc2V0TGlua01lbW9zKFtdKTtcbiAgICAgICAgc2V0TGlua2VkTWVtb3MoW10pO1xuICAgICAgICBzZXRNZW1vKG5leHRNZW1vKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ldyBOb3RpY2UoJ01FTU8gTm90IEZvdW5kJyk7XG4gICAgICAgIHRhcmdldEVsLmNsYXNzTGlzdC5yZW1vdmUoJ21lbW8tbGluay10ZXh0Jyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlTGlua2VkTWVtb0NsaWNrID0gdXNlQ2FsbGJhY2soKG1lbW86IEZvcm1hdHRlZE1lbW8pID0+IHtcbiAgICBzZXRMaW5rTWVtb3MoW10pO1xuICAgIHNldExpbmtlZE1lbW9zKFtdKTtcbiAgICBzZXRNZW1vKG1lbW8pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdE1lbW9CdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBwcm9wcy5kZXN0cm95KCk7XG4gICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEVkaXRNZW1vSWQobWVtby5pZCk7XG4gIH0sIFttZW1vLmlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZW1vLWNhcmQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpbWUtdGV4dFwiPnttZW1vLmNyZWF0ZWRBdFN0cn08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gZWRpdC1idG5cIiBvbkNsaWNrPXtoYW5kbGVFZGl0TWVtb0J0bkNsaWNrfT5cbiAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17ZWRpdH0gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gY2xvc2UtYnRuXCIgb25DbGljaz17cHJvcHMuZGVzdHJveX0+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Nsb3NlfSAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lbW8tY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibWVtby1jb250ZW50LXRleHRcIlxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlTWVtb0NvbnRlbnRDbGlja31cbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7X19odG1sOiBmb3JtYXRNZW1vQ29udGVudChtZW1vLmNvbnRlbnQpfX0+PC9kaXY+XG4gICAgICAgICAgPE9ubHkgd2hlbj17ZXh0ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIHtleHRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgPEltYWdlIGtleT17aWR4fSBjbGFzc05hbWU9XCJtZW1vLWltZ1wiIGltZ1VybD17aW1nVXJsfSBhbHQ9XCJcIiByZWZlcnJlclBvbGljeT1cIm5vLXJlZmVycmVyXCIgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L09ubHk+XG4gICAgICAgICAgPE9ubHkgd2hlbj17aW50ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy13cmFwcGVyIGludGVybmFsLWVtYmVkIGltYWdlLWVtYmVkIGlzLWxvYWRlZFwiPlxuICAgICAgICAgICAgICB7aW50ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICAgIDxJbWFnZVxuICAgICAgICAgICAgICAgICAga2V5PXtpZHh9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtZW1vLWltZ1wiXG4gICAgICAgICAgICAgICAgICBpbWdVcmw9e2ltZ1VybC5wYXRofVxuICAgICAgICAgICAgICAgICAgYWx0PXtpbWdVcmwuYWx0VGV4dH1cbiAgICAgICAgICAgICAgICAgIGZpbGVwYXRoPXtpbWdVcmwuZmlsZXBhdGh9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L09ubHk+XG4gICAgICAgICAgey8qIDxPbmx5IHdoZW49e2ltYWdlVXJscy5sZW5ndGggPiAwfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2VzLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAge2ltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgPEltYWdlIGNsYXNzTmFtZT1cIm1lbW8taW1nXCIga2V5PXtpZHh9IGltZ1VybD17aW1nVXJsfSAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvT25seT4gKi99XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxheWVyLWNvbnRhaW5lclwiPjwvZGl2PlxuICAgICAgICB7bGlua01lbW9zLm1hcCgoXywgaWR4KSA9PiB7XG4gICAgICAgICAgaWYgKGlkeCA8IDQpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiYWNrZ3JvdW5kLWxheWVyLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAga2V5PXtpZHh9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGJvdHRvbTogKGlkeCArIDEpICogLTMgKyAncHgnLFxuICAgICAgICAgICAgICAgICAgbGVmdDogKGlkeCArIDEpICogNSArICdweCcsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogYGNhbGMoMTAwJSAtICR7KGlkeCArIDEpICogMTB9cHgpYCxcbiAgICAgICAgICAgICAgICAgIHpJbmRleDogLWlkeCAtIDEsXG4gICAgICAgICAgICAgICAgfX0+PC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pfVxuICAgICAgPC9kaXY+XG4gICAgICB7bGlua01lbW9zLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGlua2VkLW1lbW9zLXdyYXBwZXJcIj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPkxJTktFRCB7bGlua01lbW9zLmxlbmd0aH0gTUVNTyA8L3A+XG4gICAgICAgICAge2xpbmtNZW1vcy5tYXAoKG0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJhd3RleHQgPSBwYXJzZUh0bWxUb1Jhd1RleHQoZm9ybWF0TWVtb0NvbnRlbnQobS5jb250ZW50KSkucmVwbGFjZUFsbCgnXFxuJywgJyAnKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGlua2VkLW1lbW8tY29udGFpbmVyXCIga2V5PXttLmlkfSBvbkNsaWNrPXsoKSA9PiBoYW5kbGVMaW5rZWRNZW1vQ2xpY2sobSl9PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpbWUtdGV4dFwiPnttLmRhdGVTdHJ9IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7cmF3dGV4dH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2xpbmtlZE1lbW9zLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGlua2VkLW1lbW9zLXdyYXBwZXJcIj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPntsaW5rZWRNZW1vcy5sZW5ndGh9IE1FTU8gTElOSyBUTyBUSEUgTUVNTzwvcD5cbiAgICAgICAgICB7bGlua2VkTWVtb3MubWFwKChtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByYXd0ZXh0ID0gcGFyc2VIdG1sVG9SYXdUZXh0KGZvcm1hdE1lbW9Db250ZW50KG0uY29udGVudCkpLnJlcGxhY2VBbGwoJ1xcbicsICcgJyk7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmtlZC1tZW1vLWNvbnRhaW5lclwiIGtleT17bS5pZH0gb25DbGljaz17KCkgPT4gaGFuZGxlTGlua2VkTWVtb0NsaWNrKG0pfT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIj57bS5kYXRlU3RyfSA8L3NwYW4+XG4gICAgICAgICAgICAgICAge3Jhd3RleHR9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNob3dNZW1vQ2FyZERpYWxvZyhtZW1vOiBNb2RlbC5NZW1vKTogdm9pZCB7XG4gIHNob3dEaWFsb2coXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbWVtby1jYXJkLWRpYWxvZycsXG4gICAgfSxcbiAgICBNZW1vQ2FyZERpYWxvZyxcbiAgICB7bWVtb30sXG4gICk7XG59XG4iLCJpbXBvcnQge2RhaWx5Tm90ZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge3JlcXVlc3R9IGZyb20gJ29ic2lkaWFuJztcblxuY29uc3QgY2FjaGVkUmVzb3VyY2VNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG5jb25zdCBjb252ZXJ0UmVzb3VyY2VUb0RhdGFVUkwgPSBhc3luYyAodXJsOiBzdHJpbmcsIHVzZUNhY2hlID0gdHJ1ZSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHt2YXVsdH0gPSBkYWlseU5vdGVzU2VydmljZS5nZXRTdGF0ZSgpLmFwcDtcblxuICBpZiAodXNlQ2FjaGUgJiYgY2FjaGVkUmVzb3VyY2VNYXAuaGFzKHVybCkpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNhY2hlZFJlc291cmNlTWFwLmdldCh1cmwpIGFzIHN0cmluZyk7XG4gIH1cblxuICAvLyBsZXQgcmVzO1xuXG4gIGlmICghLyhodHRwfGh0dHBzKS9nLnRlc3QodXJsKSkge1xuICAgIGlmIChhd2FpdCB2YXVsdC5hZGFwdGVyLmV4aXN0cyh1cmwpKSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCB2YXVsdC5hZGFwdGVyLnJlYWRCaW5hcnkodXJsKTtcbiAgICAgIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XG5cbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYXJyXSwge3R5cGU6ICdpbWFnZS9wbmcnfSk7XG4gICAgICAvLyB2YXIgbGVuID0gYXJyLmJ5dGVMZW5ndGg7XG4gICAgICAvLyBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAvLyAgICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoIGFyclsgaSBdICk7XG4gICAgICAvLyB9XG5cbiAgICAgIC8vIHJldHVybiB3aW5kb3cuYnRvYSggYmluYXJ5ICk7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBiYXNlNjRVcmwgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgICBjYWNoZWRSZXNvdXJjZU1hcC5zZXQodXJsLCBiYXNlNjRVcmwpO1xuICAgICAgICAgIHJlc29sdmUoYmFzZTY0VXJsKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGdldEJhc2U2NEltYWdlKHVybCk7XG4gICAgICBjb25zdCBkb3dubG9hZCA9IGF3YWl0IHJlcXVlc3Qoe1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgY29udGVudFR5cGU6ICdpbWFnZS9hdmlmLGltYWdlL3dlYnAsaW1hZ2UvYXBuZyxpbWFnZS9zdmcreG1sLGltYWdlLyosKi8qO3E9MC44JyxcbiAgICAgICAgLy8gaGVhZGVyczoge1xuICAgICAgICAvLyAgIFwiQ29udGVudC1UeXBlXCI6IFwiaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qLCovKjtxPTAuOFwiLFxuICAgICAgICAvLyAgIEFjY2VwdDogXCJpbWFnZS9hdmlmLGltYWdlL3dlYnAsaW1hZ2UvYXBuZyxpbWFnZS9zdmcreG1sLGltYWdlLyosKi8qO3E9MC44XCIsXG4gICAgICAgIC8vICAgXCJQcm94eS1Db25uZWN0aW9uXCI6IFwia2VlcC1hbGl2ZVwiLFxuICAgICAgICAvLyAgIFByYWdtYTogXCJuby1jYWNoZVwiLFxuICAgICAgICAvLyAgIFwiQ2FjaGUtQ29udHJvbFwiOiBcIm5vLWNhY2hlXCIsXG4gICAgICAgIC8vICAgXCJVc2VyLUFnZW50XCI6IFwiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgb2JzaWRpYW4vMC4xMi4xOSBDaHJvbWUvOTEuMC40NDcyLjE2NCBFbGVjdHJvbi8xMy41LjIgU2FmYXJpLzUzNy4zNlwiLFxuICAgICAgICAvLyB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGVuYyA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShkb3dubG9hZCk7IC8vIGFsd2F5cyB1dGYtOFxuICAgICAgY29uc3QgYmYgPSBlbmM7XG4gICAgICBjb25zb2xlLmxvZyhiZik7XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2JmXSwge3R5cGU6ICdpbWFnZS9wbmcnfSk7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBiYXNlNjRVcmwgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgICBjYWNoZWRSZXNvdXJjZU1hcC5zZXQodXJsLCBiYXNlNjRVcmwpO1xuICAgICAgICAgIHJlc29sdmUoYmFzZTY0VXJsKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG4gICAgICB9KTtcbiAgICAgIC8vIHJldHVybiAoKGRvd25sb2FkID09PSBcIk5vdCBGb3VuZFwiIHx8IGRvd25sb2FkID09PSBge1wiZXJyb3JcIjpcIk5vdCBGb3VuZFwifWApID8gbnVsbCA6IGRvd25sb2FkKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGluIGdyYWJSZWxlYXNlRmlsZUZyb21SZXBvc2l0b3J5JywgVVJMLCBlcnJvcik7XG4gICAgfVxuICB9XG59O1xuXG4vLyBjb25zdCBnZXRCYXNlNjRJbWFnZSA9IChpbWc6IGFueSkgPT4ge1xuXG4vLyAgIGltZy5jcm9zc09yaWdpbiA9ICcnO1xuXG4vLyAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuLy8gICBjYW52YXMud2lkdGggPSBpbWcud2lkdGg7XG4vLyAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0O1xuXG4vLyAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuLy8gICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7XG5cbi8vICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKFwiaW1hZ2UvcG5nXCIpO1xuXG4vLyAgIGNvbnNvbGUubG9nKGRhdGFVUkwucmVwbGFjZSgvXmRhdGE6aW1hZ2VcXC8ocG5nfGpwZyk7YmFzZTY0LC8sIFwiXCIpKTtcblxuLy8gICByZXR1cm4gMDtcbi8vIH1cblxuZXhwb3J0IGRlZmF1bHQgY29udmVydFJlc291cmNlVG9EYXRhVVJMO1xuIiwiLy8gaW1wb3J0IGNvbnZlcnRSZXNvdXJjZVRvRGF0YVVSTCBmcm9tIFwiLi9jb252ZXJ0UmVzb3VyY2VUb0RhdGFVUkxcIjtcbi8vIGltcG9ydCB7IGRhaWx5Tm90ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5pbXBvcnQgY29udmVydFJlc291cmNlVG9EYXRhVVJMIGZyb20gJy4vY29udmVydFJlc291cmNlVG9EYXRhVVJMJztcblxuY29uc3QgZ2V0Q2xvbmVTdHlsZWRFbGVtZW50ID0gYXN5bmMgKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gIGNvbnN0IGNsb25lZEVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQudGFnTmFtZSk7XG4gIC8vIGNvbnN0IHsgdmF1bHQgfSA9IGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCkuYXBwO1xuICBjbG9uZWRFbGVtZW50Q29udGFpbmVyLmlubmVySFRNTCA9IGVsZW1lbnQuaW5uZXJIVE1MO1xuXG4gIGNvbnN0IGFwcGx5U3R5bGVzID0gYXN5bmMgKHNvdXJjZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbG9uZWRFbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGlmICghc291cmNlRWxlbWVudCB8fCAhY2xvbmVkRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZVN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNvdXJjZUVsZW1lbnQpO1xuXG4gICAgaWYgKHNvdXJjZUVsZW1lbnQudGFnTmFtZSA9PT0gJ0lNRycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IGNvbnZlcnRSZXNvdXJjZVRvRGF0YVVSTChcbiAgICAgICAgICBzb3VyY2VFbGVtZW50LmdldEF0dHJpYnV0ZSgncGF0aCcpID8/IHNvdXJjZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzcmMnKSxcbiAgICAgICAgKTtcbiAgICAgICAgKGNsb25lZEVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudCkuc3JjID0gdXJsO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gZG8gbnRoXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHNvdXJjZVN0eWxlcykge1xuICAgICAgY2xvbmVkRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgaXRlbSxcbiAgICAgICAgc291cmNlU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoaXRlbSksXG4gICAgICAgIHNvdXJjZVN0eWxlcy5nZXRQcm9wZXJ0eVByaW9yaXR5KGl0ZW0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsb25lZEVsZW1lbnQuY2hpbGRFbGVtZW50Q291bnQ7IGkrKykge1xuICAgICAgYXdhaXQgYXBwbHlTdHlsZXMoc291cmNlRWxlbWVudC5jaGlsZHJlbltpXSBhcyBIVE1MRWxlbWVudCwgY2xvbmVkRWxlbWVudC5jaGlsZHJlbltpXSBhcyBIVE1MRWxlbWVudCk7XG4gICAgfVxuICB9O1xuXG4gIGF3YWl0IGFwcGx5U3R5bGVzKGVsZW1lbnQsIGNsb25lZEVsZW1lbnRDb250YWluZXIpO1xuXG4gIHJldHVybiBjbG9uZWRFbGVtZW50Q29udGFpbmVyO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0Q2xvbmVTdHlsZWRFbGVtZW50O1xuIiwiLy8gaW1wb3J0IGNvbnZlcnRSZXNvdXJjZVRvRGF0YVVSTCBmcm9tIFwiLi9jb252ZXJ0UmVzb3VyY2VUb0RhdGFVUkxcIjtcblxuY29uc3QgZ2V0Rm9udHNTdHlsZUVsZW1lbnQgPSBhc3luYyAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgY29uc3Qgc3R5bGVTaGVldHMgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuc3R5bGVTaGVldHM7XG4gIGNvbnN0IGZvbnRGYW1pbHlTdHlsZXM6IENTU1N0eWxlRGVjbGFyYXRpb25bXSA9IFtdO1xuXG4gIGZvciAoY29uc3Qgc2hlZXQgb2Ygc3R5bGVTaGVldHMpIHtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2Ygc2hlZXQuY3NzUnVsZXMpIHtcbiAgICAgIGlmIChydWxlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdDU1NGb250RmFjZVJ1bGUnKSB7XG4gICAgICAgIGZvbnRGYW1pbHlTdHlsZXMucHVzaCgocnVsZSBhcyBDU1NGb250RmFjZVJ1bGUpLnN0eWxlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gIC8vIGZvciAoY29uc3QgZiBvZiBmb250RmFtaWx5U3R5bGVzKSB7XG4gIC8vIGNvbnN0IGZvbnRGYW1pbHkgPSBmLmdldFByb3BlcnR5VmFsdWUoXCJmb250LWZhbWlseVwiKTtcbiAgLy8gY29uc3QgZm9udFdlaWdodCA9IGYuZ2V0UHJvcGVydHlWYWx1ZShcImZvbnQtd2VpZ2h0XCIpO1xuICAvLyBjb25zdCBzcmMgPSBmLmdldFByb3BlcnR5VmFsdWUoXCJzcmNcIik7XG4gIC8vIGNvbnN0IHJlc291cmNlVXJscyA9IHNyYy5zcGxpdChcIixcIikubWFwKChzKSA9PiB7XG4gIC8vICAgcmV0dXJuIHMucmVwbGFjZSgvdXJsXFwoXCI/KC4rPylcIj9cXCkvLCBcIiQxXCIpO1xuICAvLyB9KTtcbiAgLy8gY29uc3QgYmFzZTY0VXJsczogc3RyaW5nW10gPSBbXTtcblxuICAvLyBmb3IgKGNvbnN0IHVybCBvZiByZXNvdXJjZVVybHMpIHtcbiAgLy8gICB0cnkge1xuICAvLyAgICAgY29uc3QgYmFzZTY0VXJsID0gYXdhaXQgY29udmVydFJlc291cmNlVG9EYXRhVVJMKHVybCk7XG4gIC8vICAgICBiYXNlNjRVcmxzLnB1c2goYHVybChcIiR7YmFzZTY0VXJsfVwiKWApO1xuICAvLyAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gIC8vICAgICAvLyBkbyBudGhcbiAgLy8gICB9XG4gIC8vIH1cblxuICAvLyBzdHlsZUVsZW1lbnQuaW5uZXJIVE1MICs9IGBcbiAgLy8gICBAZm9udC1mYWNlIHtcbiAgLy8gICAgIGZvbnQtZmFtaWx5OiBcIiR7Zm9udEZhbWlseX1cIjtcbiAgLy8gICAgIHNyYzogJHtiYXNlNjRVcmxzLmpvaW4oXCIsXCIpfTtcbiAgLy8gICAgIGZvbnQtd2VpZ2h0OiAke2ZvbnRXZWlnaHR9O1xuICAvLyAgIH1gO1xuICAvLyB9XG5cbiAgcmV0dXJuIHN0eWxlRWxlbWVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldEZvbnRzU3R5bGVFbGVtZW50O1xuIiwiLyoqXG4gKiBIVE1MIHRvIEltYWdlXG4gKlxuICogUmVmZXJlbmNlczpcbiAqIDEuIGh0bWwtdG8taW1hZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9idWJrb28vaHRtbC10by1pbWFnZVxuICogMi4gPGZvcmVpZ25PYmplY3Q+OiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9TVkcvRWxlbWVudC9mb3JlaWduT2JqZWN0XG4gKi9cbmltcG9ydCBnZXRDbG9uZVN0eWxlZEVsZW1lbnQgZnJvbSAnLi9nZXRDbG9uZVN0eWxlZEVsZW1lbnQnO1xuaW1wb3J0IGdldEZvbnRzU3R5bGVFbGVtZW50IGZyb20gJy4vZ2V0Rm9udHNTdHlsZUVsZW1lbnQnO1xuXG50eXBlIE9wdGlvbnMgPSBQYXJ0aWFsPHtcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHBpeGVsUmF0aW86IG51bWJlcjtcbn0+O1xuXG5jb25zdCBnZXRFbGVtZW50U2l6ZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiBwYXJzZUludCh3aWR0aC5yZXBsYWNlKCdweCcsICcnKSksXG4gICAgaGVpZ2h0OiBwYXJzZUludChoZWlnaHQucmVwbGFjZSgncHgnLCAnJykpLFxuICB9O1xufTtcblxuY29uc3QgY29udmVydFNWR1RvRGF0YVVSTCA9IChzdmc6IFNWR0VsZW1lbnQpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB4bWwgPSBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHN2Zyk7XG4gIGNvbnN0IHVybCA9IGVuY29kZVVSSUNvbXBvbmVudCh4bWwpO1xuICByZXR1cm4gYGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCR7dXJsfWA7XG59O1xuXG5jb25zdCBnZW5lcmF0ZVNWR0VsZW1lbnQgPSAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogU1ZHU1ZHRWxlbWVudCA9PiB7XG4gIGNvbnN0IHhtbE5TID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJztcbiAgY29uc3Qgc3ZnRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh4bWxOUywgJ3N2ZycpO1xuXG4gIHN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCd3aWR0aCcsIGAke3dpZHRofWApO1xuICBzdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgYCR7aGVpZ2h0fWApO1xuICBzdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgndmlld0JveCcsIGAwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YCk7XG5cbiAgY29uc3QgZm9yZWlnbk9iamVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh4bWxOUywgJ2ZvcmVpZ25PYmplY3QnKTtcblxuICBmb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnMTAwJScpO1xuICBmb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzEwMCUnKTtcbiAgZm9yZWlnbk9iamVjdC5zZXRBdHRyaWJ1dGUoJ3gnLCAnMCcpO1xuICBmb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZSgneScsICcwJyk7XG4gIGZvcmVpZ25PYmplY3Quc2V0QXR0cmlidXRlKCdleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkJywgJ3RydWUnKTtcblxuICBmb3JlaWduT2JqZWN0LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICBzdmdFbGVtZW50LmFwcGVuZENoaWxkKGZvcmVpZ25PYmplY3QpO1xuXG4gIHJldHVybiBzdmdFbGVtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvU1ZHID0gYXN5bmMgKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBvcHRpb25zPzogT3B0aW9ucykgPT4ge1xuICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSBnZXRFbGVtZW50U2l6ZShlbGVtZW50KTtcblxuICBjb25zdCBjbG9uZWRFbGVtZW50ID0gYXdhaXQgZ2V0Q2xvbmVTdHlsZWRFbGVtZW50KGVsZW1lbnQpO1xuXG4gIGlmIChvcHRpb25zPy5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICBjbG9uZWRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG9wdGlvbnMuYmFja2dyb3VuZENvbG9yO1xuICB9XG5cbiAgY29uc3Qgc3ZnID0gZ2VuZXJhdGVTVkdFbGVtZW50KHdpZHRoLCBoZWlnaHQsIGNsb25lZEVsZW1lbnQpO1xuICBzdmcucHJlcGVuZChhd2FpdCBnZXRGb250c1N0eWxlRWxlbWVudChlbGVtZW50KSk7XG5cbiAgY29uc3QgdXJsID0gY29udmVydFNWR1RvRGF0YVVSTChzdmcpO1xuXG4gIHJldHVybiB1cmw7XG59O1xuXG5leHBvcnQgY29uc3QgdG9DYW52YXMgPSBhc3luYyAoZWxlbWVudDogSFRNTEVsZW1lbnQsIG9wdGlvbnM/OiBPcHRpb25zKTogUHJvbWlzZTxIVE1MQ2FudmFzRWxlbWVudD4gPT4ge1xuICBjb25zdCB1cmwgPSBhd2FpdCB0b1NWRyhlbGVtZW50LCBvcHRpb25zKTtcblxuICBjb25zdCBpbWFnZUVsID0gbmV3IEltYWdlKCk7XG4gIGltYWdlRWwuc3JjID0gdXJsO1xuXG4gIGNvbnN0IHJhdGlvID0gb3B0aW9ucz8ucGl4ZWxSYXRpbyB8fCAxO1xuICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSBnZXRFbGVtZW50U2l6ZShlbGVtZW50KTtcblxuICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gIGlmICghY29udGV4dCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnQ2FudmFzIGVycm9yJyk7XG4gIH1cblxuICBjYW52YXMud2lkdGggPSB3aWR0aCAqIHJhdGlvO1xuICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogcmF0aW87XG5cbiAgY2FudmFzLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9YDtcbiAgY2FudmFzLnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1gO1xuXG4gIGlmIChvcHRpb25zPy5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICBjb250ZXh0LmZpbGxTdHlsZSA9IG9wdGlvbnMuYmFja2dyb3VuZENvbG9yO1xuICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGltYWdlRWwub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2VFbCwgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcblxuICAgICAgcmVzb2x2ZShjYW52YXMpO1xuICAgIH07XG4gIH0pO1xufTtcblxuY29uc3QgdG9JbWFnZSA9IGFzeW5jIChlbGVtZW50OiBIVE1MRWxlbWVudCwgb3B0aW9ucz86IE9wdGlvbnMpID0+IHtcbiAgY29uc3QgY2FudmFzID0gYXdhaXQgdG9DYW52YXMoZWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgLy8gY2FudmFzLnRvQmxvYihmdW5jdGlvbiBkZWFsKGJsb2IpIHtcbiAgLy8gICB2YXIgY2xpcGJvYXJkSXRlbSA9IG5ldyBDbGlwYm9hcmRJdGVtKHtbYGltYWdlL3BuZ2BdOiBibG9ifSk7XG4gIC8vICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZShbY2xpcGJvYXJkSXRlbV0pLnRoZW4oKCkgPT4ge1xuICAvLyAgICAgICBhbGVydCgn5aSN5Yi25oiQ5YqfJyk7XG4gIC8vICAgfSk7XG4gIC8vIH0sKTtcbiAgLy8gY29uc29sZS5sb2coY2FudmFzKTtcblxuICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCgpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgdG9JbWFnZTtcbiIsImltcG9ydCB7dXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG4vLyBpbXBvcnQgeyB1c2VyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xuaW1wb3J0IHRvSW1hZ2UgZnJvbSAnLi4vbGFicy9odG1sMmltYWdlJztcbmltcG9ydCB7XG4gIEFOSU1BVElPTl9EVVJBVElPTixcbiAgSU1BR0VfVVJMX1JFRyxcbiAgTUFSS0RPV05fVVJMX1JFRyxcbiAgTUFSS0RPV05fV0VCX1VSTF9SRUcsXG4gIFdJS0lfSU1BR0VfVVJMX1JFRyxcbn0gZnJvbSAnLi4vaGVscGVycy9jb25zdHMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHtzaG93RGlhbG9nfSBmcm9tICcuL0RpYWxvZyc7XG5pbXBvcnQge2Zvcm1hdE1lbW9Db250ZW50fSBmcm9tICcuL01lbW8nO1xuaW1wb3J0IE9ubHkgZnJvbSAnLi9jb21tb24vT25seVdoZW4nO1xuaW1wb3J0ICcuLi9sZXNzL3NoYXJlLW1lbW8taW1hZ2UtZGlhbG9nLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Tm90aWNlLCBURmlsZSwgVmF1bHR9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCBhcHBTdG9yZSBmcm9tICcuLi9zdG9yZXMvYXBwU3RvcmUnO1xuaW1wb3J0IHtTaGFyZUZvb3RlckVuZCwgVXNlck5hbWUsIFNoYXJlRm9vdGVyU3RhcnR9IGZyb20gJy4uL21lbW9zJztcbmltcG9ydCBjbG9zZSBmcm9tICcuLi9pY29ucy9jbG9zZS5zdmcnO1xuaW1wb3J0IHNoYXJlIGZyb20gJy4uL2ljb25zL3NoYXJlLnN2Zyc7XG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIERpYWxvZ1Byb3BzIHtcbiAgbWVtbzogTW9kZWwuTWVtbztcbn1cblxuaW50ZXJmYWNlIExpbmtNYXRjaCB7XG4gIGxpbmtUZXh0OiBzdHJpbmc7XG4gIGFsdFRleHQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBmaWxlUGF0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGdldFBhdGhPZkltYWdlID0gKHZhdWx0OiBWYXVsdCwgaW1hZ2U6IFRGaWxlKSA9PiB7XG4gIHJldHVybiB2YXVsdC5nZXRSZXNvdXJjZVBhdGgoaW1hZ2UpO1xufTtcblxuY29uc3QgZGV0ZWN0V2lraUludGVybmFsTGluayA9IChsaW5lVGV4dDogc3RyaW5nKTogTGlua01hdGNoIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHttZXRhZGF0YUNhY2hlLCB2YXVsdH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGNvbnN0IGludGVybmFsRmlsZU5hbWUgPSBXSUtJX0lNQUdFX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/LlsxXTtcbiAgY29uc3QgaW50ZXJuYWxBbHROYW1lID0gV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bNV07XG4gIGNvbnN0IGZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGRlY29kZVVSSUNvbXBvbmVudChpbnRlcm5hbEZpbGVOYW1lKSwgJycpO1xuXG4gIGlmIChmaWxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxuICAgICAgcGF0aDogJycsXG4gICAgICBmaWxlUGF0aDogJycsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBpbWFnZVBhdGggPSBnZXRQYXRoT2ZJbWFnZSh2YXVsdCwgZmlsZSk7XG4gICAgaWYgKGludGVybmFsQWx0TmFtZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxuICAgICAgICBmaWxlUGF0aDogZmlsZS5wYXRoLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6ICcnLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVQYXRoOiBmaWxlLnBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgZGV0ZWN0TURJbnRlcm5hbExpbmsgPSAobGluZVRleHQ6IHN0cmluZyk6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xuICBjb25zdCB7bWV0YWRhdGFDYWNoZSwgdmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gTUFSS0RPV05fVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzVdO1xuICBjb25zdCBpbnRlcm5hbEFsdE5hbWUgPSBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMl07XG4gIGNvbnN0IGZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGRlY29kZVVSSUNvbXBvbmVudChpbnRlcm5hbEZpbGVOYW1lKSwgJycpO1xuXG4gIGlmIChmaWxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxuICAgICAgcGF0aDogJycsXG4gICAgICBmaWxlUGF0aDogJycsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBpbWFnZVBhdGggPSBnZXRQYXRoT2ZJbWFnZSh2YXVsdCwgZmlsZSk7XG4gICAgaWYgKGludGVybmFsQWx0TmFtZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxuICAgICAgICBmaWxlUGF0aDogZmlsZS5wYXRoLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6ICcnLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVQYXRoOiBmaWxlLnBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgU2hhcmVNZW1vSW1hZ2VEaWFsb2c6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3Qge21lbW86IHByb3BzTWVtbywgZGVzdHJveX0gPSBwcm9wcztcbiAgY29uc3Qge21lbW9zfSA9IGFwcFN0b3JlLmdldFN0YXRlKCkubWVtb1N0YXRlO1xuICBsZXQgbWVtb3NMZW5ndGg7XG4gIGxldCBjcmVhdGVkRGF5cztcbiAgaWYgKG1lbW9zLmxlbmd0aCkge1xuICAgIG1lbW9zTGVuZ3RoID0gbWVtb3MubGVuZ3RoIC0gMTtcbiAgICBjcmVhdGVkRGF5cyA9IG1lbW9zXG4gICAgICA/IE1hdGguY2VpbCgoRGF0ZS5ub3coKSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShtZW1vc1ttZW1vc0xlbmd0aF0uY3JlYXRlZEF0KSkgLyAxMDAwIC8gMzYwMCAvIDI0KVxuICAgICAgOiAwO1xuICB9XG4gIC8vIGNvbnN0IHsgdXNlcjogdXNlcmluZm8gfSA9IHVzZXJTZXJ2aWNlLmdldFN0YXRlKCk7XG4gIGNvbnN0IG1lbW86IEZvcm1hdHRlZE1lbW8gPSB7XG4gICAgLi4ucHJvcHNNZW1vLFxuICAgIGNyZWF0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcocHJvcHNNZW1vLmNyZWF0ZWRBdCksXG4gIH07XG4gIC8vIGNvbnN0IG1lbW9JbWdVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPz8gW10pO1xuICAvLyBjb25zdCBtZW1vc051bSA9IG1lbW9zLmxlbmd0aDtcblxuICBjb25zdCBmb290ZXJFbmQgPSBTaGFyZUZvb3RlckVuZC5yZXBsYWNlKCd7VXNlck5hbWV9JywgVXNlck5hbWUpO1xuICBjb25zdCBmb290ZXJTdGFydCA9IFNoYXJlRm9vdGVyU3RhcnQucmVwbGFjZSgne01lbW9zTnVtfScsIG1lbW9zLmxlbmd0aC50b1N0cmluZygpKS5yZXBsYWNlKFxuICAgICd7VXNlZERheX0nLFxuICAgIGNyZWF0ZWREYXlzLnRvU3RyaW5nKCksXG4gICk7XG5cbiAgbGV0IGV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XG4gIGxldCBpbnRlcm5hbEltYWdlVXJscyA9IFtdO1xuICBsZXQgYWxsTWFya2Rvd25MaW5rOiBzdHJpbmcgfCBhbnlbXSA9IFtdO1xuICBsZXQgYWxsSW50ZXJuYWxMaW5rID0gW10gYXMgYW55W107XG4gIGlmIChJTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSkge1xuICAgIGxldCBhbGxFeHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xuICAgIGxldCBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcbiAgICBpZiAoTUFSS0RPV05fVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbE1hcmtkb3duTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1VSTF9SRUcpKTtcbiAgICB9XG4gICAgaWYgKFdJS0lfSU1BR0VfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xuICAgIH1cbiAgICAvLyBjb25zdCBhbGxJbnRlcm5hbExpbmsgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChXSUtJX0lNQUdFX1VSTF9SRUcpKTtcbiAgICBpZiAoTUFSS0RPV05fV0VCX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKSB7XG4gICAgICBhbGxFeHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1dFQl9VUkxfUkVHKSk7XG4gICAgfVxuICAgIGlmIChhbGxJbnRlcm5hbExpbmsubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEludGVybmFsTGluay5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgb25lID0gYWxsSW50ZXJuYWxMaW5rW2ldO1xuICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdFdpa2lJbnRlcm5hbExpbmsob25lKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGxNYXJrZG93bkxpbmsubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbE1hcmtkb3duTGluay5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgdHdvID0gYWxsTWFya2Rvd25MaW5rW2ldO1xuICAgICAgICBpZiAoLyguKilodHRwW3NdPyguKikvLnRlc3QodHdvKSkge1xuICAgICAgICAgIGFub3RoZXJFeHRlcm5hbEltYWdlVXJscy5wdXNoKE1BUktET1dOX1VSTF9SRUcuZXhlYyh0d28pPy5bNV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0TURJbnRlcm5hbExpbmsodHdvKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuYWxJbWFnZVVybHMgPSBhbGxFeHRlcm5hbEltYWdlVXJscy5jb25jYXQoYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzKTtcbiAgICAvLyBleHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcbiAgfVxuXG4gIGNvbnN0IFtzaG9ydGN1dEltZ1VybCwgc2V0U2hvcnRjdXRJbWdVcmxdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaW1nQW1vdW50LCBzZXRJbWdBbW91bnRdID0gdXNlU3RhdGUoZXh0ZXJuYWxJbWFnZVVybHMubGVuZ3RoKTtcbiAgY29uc3QgbWVtb0VsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbWdBbW91bnQgPiAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIW1lbW9FbFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdG9JbWFnZShtZW1vRWxSZWYuY3VycmVudCwge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZWFlYWVhJyxcbiAgICAgICAgcGl4ZWxSYXRpbzogd2luZG93LmRldmljZVBpeGVsUmF0aW8gKiAyLFxuICAgICAgfSlcbiAgICAgICAgLnRoZW4oKHVybCkgPT4ge1xuICAgICAgICAgIHNldFNob3J0Y3V0SW1nVXJsKHVybCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgLy8gZG8gbnRoXG4gICAgICAgIH0pO1xuICAgIH0sIEFOSU1BVElPTl9EVVJBVElPTik7XG4gIH0sIFtpbWdBbW91bnRdKTtcblxuICBjb25zdCBoYW5kbGVDbG9zZUJ0bkNsaWNrID0gKCkgPT4ge1xuICAgIGRlc3Ryb3koKTtcbiAgfTtcblxuICBjb25zdCBjb252ZXJ0QmFzZTY0VG9CbG9iID0gKGJhc2U2NDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpID0+IHtcbiAgICB2YXIgYnl0ZXMgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIHZhciBhYiA9IG5ldyBBcnJheUJ1ZmZlcihieXRlcy5sZW5ndGgpO1xuICAgIHZhciBpYSA9IG5ldyBVaW50OEFycmF5KGFiKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpYVtpXSA9IGJ5dGVzLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQmxvYihbYWJdLCB7dHlwZTogdHlwZX0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNvcHl0b0NsaXBib2FyZEJ0bkNsaWNrID0gKCkgPT4ge1xuICAgIGNvbnN0IGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVtby1zaG9ydGN1dC1pbWcnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBteUJhc2U2NCA9IGRpdnMuZ2V0QXR0cmlidXRlKCdzcmMnKS5zcGxpdCgnYmFzZTY0LCcpWzFdO1xuICAgIGNvbnN0IGJsb2JJbnB1dCA9IGNvbnZlcnRCYXNlNjRUb0Jsb2IobXlCYXNlNjQsICdpbWFnZS9wbmcnKTtcbiAgICBjb25zdCBjbGlwYm9hcmRJdGVtSW5wdXQgPSBuZXcgQ2xpcGJvYXJkSXRlbSh7J2ltYWdlL3BuZyc6IGJsb2JJbnB1dH0pO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3aW5kb3cubmF2aWdhdG9yWydjbGlwYm9hcmQnXS53cml0ZShbY2xpcGJvYXJkSXRlbUlucHV0XSk7XG4gICAgbmV3IE5vdGljZSgnU2VuZCB0byBjbGlwYm9hcmQgc3VjY2Vzc2Z1bGx5Jyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSW1hZ2VPbkxvYWQgPSAoZXY6IFJlYWN0LlN5bnRoZXRpY0V2ZW50PEhUTUxJbWFnZUVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGV2LnR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgIG5ldyBOb3RpY2UoJ+acieS4quWbvueJh+WKoOi9veWksei0peS6hvCfmJ8nKTtcbiAgICAgIChldi50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudCkucmVtb3ZlKCk7XG4gICAgfVxuICAgIHNldEltZ0Ftb3VudChpbWdBbW91bnQgLSAxKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpYWxvZy1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj7wn6WwPC9zcGFuPlNoYXJlIE1lbW8gSW1hZ2VcbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ0bi1ncm91cFwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGNvcHktYnRuXCIgb25DbGljaz17aGFuZGxlQ29weXRvQ2xpcGJvYXJkQnRuQ2xpY2t9PlxuICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17c2hhcmV9IC8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gY2xvc2UtYnRuXCIgb25DbGljaz17aGFuZGxlQ2xvc2VCdG5DbGlja30+XG4gICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtjbG9zZX0gLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdGlwLXdvcmRzLWNvbnRhaW5lciAke3Nob3J0Y3V0SW1nVXJsID8gJ2ZpbmlzaCcgOiAnbG9hZGluZyd9YH0+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGlwLXRleHRcIj57c2hvcnRjdXRJbWdVcmwgPyAn4oaXQ2xpY2sgdGhlIGJ1dHRvbiB0byBzYXZlJyA6ICflm77niYfnlJ/miJDkuK0uLi4nfTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1jb250YWluZXJcIiByZWY9e21lbW9FbFJlZn0+XG4gICAgICAgICAgPE9ubHkgd2hlbj17c2hvcnRjdXRJbWdVcmwgIT09ICcnfT5cbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwibWVtby1zaG9ydGN1dC1pbWdcIiBzcmM9e3Nob3J0Y3V0SW1nVXJsfSAvPlxuICAgICAgICAgIDwvT25seT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIj57bWVtby5jcmVhdGVkQXRTdHJ9PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1jb250ZW50LXRleHRcIiBkYW5nZXJvdXNseVNldElubmVySFRNTD17e19faHRtbDogZm9ybWF0TWVtb0NvbnRlbnQobWVtby5jb250ZW50KX19PjwvZGl2PlxuICAgICAgICAgIDxPbmx5IHdoZW49e2V4dGVybmFsSW1hZ2VVcmxzLmxlbmd0aCA+IDB9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIHtleHRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICAgICAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgICAgICAgICAgICBrZXk9e2lkeH1cbiAgICAgICAgICAgICAgICAgIHNyYz17aW1nVXJsfVxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgIHJlZmVycmVyUG9saWN5PVwibm8tcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgb25Mb2FkPXtoYW5kbGVJbWFnZU9uTG9hZH1cbiAgICAgICAgICAgICAgICAgIG9uRXJyb3I9e2hhbmRsZUltYWdlT25Mb2FkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9Pbmx5PlxuICAgICAgICAgIDxPbmx5IHdoZW49e2ludGVybmFsSW1hZ2VVcmxzLmxlbmd0aCA+IDB9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtY29udGFpbmVyIGludGVybmFsLWVtYmVkIGltYWdlLWVtYmVkIGlzLWxvYWRlZFwiPlxuICAgICAgICAgICAgICB7aW50ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICAgIDxpbWcga2V5PXtpZHh9IGNsYXNzTmFtZT1cIm1lbW8taW1nXCIgc3JjPXtpbWdVcmwucGF0aH0gYWx0PXtpbWdVcmwuYWx0VGV4dH0gcGF0aD17aW1nVXJsLmZpbGVQYXRofSAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvT25seT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndhdGVybWFyay1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0IGZvb3Rlci1zdGFydFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYW1lLXRleHRcIj57Zm9vdGVyU3RhcnR9PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHQgZm9vdGVyLWVuZFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYW1lLXRleHRcIj57Zm9vdGVyRW5kfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNob3dTaGFyZU1lbW9JbWFnZURpYWxvZyhtZW1vOiBNb2RlbC5NZW1vKTogdm9pZCB7XG4gIHNob3dEaWFsb2coXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc2hhcmUtbWVtby1pbWFnZS1kaWFsb2cnLFxuICAgIH0sXG4gICAgU2hhcmVNZW1vSW1hZ2VEaWFsb2csXG4gICAge21lbW99LFxuICApO1xufVxuIiwiaW1wb3J0IHttb21lbnR9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCBkYWlseU5vdGVzU2VydmljZSBmcm9tICcuLi9zZXJ2aWNlcy9kYWlseU5vdGVzU2VydmljZSc7XG5pbXBvcnQge2dldERhaWx5Tm90ZX0gZnJvbSAnb2JzaWRpYW4tZGFpbHktbm90ZXMtaW50ZXJmYWNlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ29ic2lkaWFuJztcblxuZXhwb3J0IGNvbnN0IHNob3dNZW1vSW5EYWlseU5vdGVzID0gYXN5bmMgKG1lbW9JZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3Qge2FwcCwgZGFpbHlOb3Rlc30gPSBkYWlseU5vdGVzU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gIGNvbnN0IGxpbmVOdW0gPSBwYXJzZUludChtZW1vSWQuc2xpY2UoMTQpKTtcbiAgY29uc3QgbWVtb0RhdGVTdHJpbmcgPSBtZW1vSWQuc2xpY2UoMCwgMTMpO1xuICBjb25zdCBkYXRlID0gbW9tZW50KG1lbW9EYXRlU3RyaW5nLCAnWVlZWU1NRERISG1tc3MnKTtcbiAgY29uc3QgZmlsZSA9IGdldERhaWx5Tm90ZShkYXRlLCBkYWlseU5vdGVzKTtcbiAgaWYgKCFQbGF0Zm9ybS5pc01vYmlsZSkge1xuICAgIGNvbnN0IGxlYWYgPSBhcHAud29ya3NwYWNlLnNwbGl0QWN0aXZlTGVhZigpO1xuICAgIGxlYWYub3BlbkZpbGUoZmlsZSwge2VTdGF0ZToge2xpbmU6IGxpbmVOdW19fSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IGxlYWYgPSBhcHAud29ya3NwYWNlLmFjdGl2ZUxlYWY7XG4gICAgaWYgKGxlYWYgPT09IG51bGwpIHtcbiAgICAgIGxlYWYgPSBhcHAud29ya3NwYWNlLmdldExlYWYodHJ1ZSk7XG4gICAgfVxuICAgIGxlYWYub3BlbkZpbGUoZmlsZSwge2VTdGF0ZToge2xpbmU6IGxpbmVOdW19fSk7XG4gIH1cbiAgcmV0dXJuO1xufTtcbiIsImltcG9ydCB7bWVtbywgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIEZJUlNUX1RBR19SRUcsXG4gIElNQUdFX1VSTF9SRUcsXG4gIExJTktfUkVHLFxuICBNQVJLRE9XTl9VUkxfUkVHLFxuICBNQVJLRE9XTl9XRUJfVVJMX1JFRyxcbiAgTURfTElOS19SRUcsXG4gIE1FTU9fTElOS19SRUcsXG4gIFRBR19SRUcsXG4gIFdJS0lfSU1BR0VfVVJMX1JFRyxcbn0gZnJvbSAnLi4vaGVscGVycy9jb25zdHMnO1xuaW1wb3J0IHtlbmNvZGVIdG1sLCBwYXJzZU1hcmtlZFRvSHRtbCwgcGFyc2VSYXdUZXh0VG9IdG1sfSBmcm9tICcuLi9oZWxwZXJzL21hcmtlZCc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQgdXNlVG9nZ2xlIGZyb20gJy4uL2hvb2tzL3VzZVRvZ2dsZSc7XG5pbXBvcnQge2dsb2JhbFN0YXRlU2VydmljZSwgbWVtb1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCBPbmx5IGZyb20gJy4vY29tbW9uL09ubHlXaGVuJztcbmltcG9ydCBJbWFnZSBmcm9tICcuL0ltYWdlJztcbmltcG9ydCBzaG93TWVtb0NhcmREaWFsb2cgZnJvbSAnLi9NZW1vQ2FyZERpYWxvZyc7XG5pbXBvcnQgc2hvd1NoYXJlTWVtb0ltYWdlRGlhbG9nIGZyb20gJy4vU2hhcmVNZW1vSW1hZ2VEaWFsb2cnO1xuaW1wb3J0ICcuLi9sZXNzL21lbW8ubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtOb3RpY2UsIFRGaWxlLCBWYXVsdH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5pbXBvcnQge3Nob3dNZW1vSW5EYWlseU5vdGVzfSBmcm9tICcuLi9vYkNvbXBvbmVudHMvb2JTaG93TWVtbyc7XG5pbXBvcnQgbW9yZSBmcm9tICcuLi9pY29ucy9tb3JlLnN2Zyc7XG5pbXBvcnQge1VzZUJ1dHRvblRvU2hvd0VkaXRvciwgRGVmYXVsdEVkaXRvckxvY2F0aW9ufSBmcm9tICcuLi9tZW1vcyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIG1lbW86IE1vZGVsLk1lbW87XG59XG5cbmludGVyZmFjZSBMaW5rTWF0Y2gge1xuICBsaW5rVGV4dDogc3RyaW5nO1xuICBhbHRUZXh0OiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgZmlsZXBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRQYXRoT2ZJbWFnZSA9ICh2YXVsdDogVmF1bHQsIGltYWdlOiBURmlsZSkgPT4ge1xuICByZXR1cm4gdmF1bHQuZ2V0UmVzb3VyY2VQYXRoKGltYWdlKTtcbn07XG5cbmNvbnN0IGRldGVjdFdpa2lJbnRlcm5hbExpbmsgPSAobGluZVRleHQ6IHN0cmluZyk6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xuICBjb25zdCB7bWV0YWRhdGFDYWNoZSwgdmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMV07XG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9IFdJS0lfSU1BR0VfVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzVdO1xuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcbiAgLy8gY29uc29sZS5sb2coZmlsZS5wYXRoKTtcbiAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIGZpbGVwYXRoOiAnJyxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKHZhdWx0LCBmaWxlKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUucGF0aDtcbiAgICBpZiAoaW50ZXJuYWxBbHROYW1lKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgICBhbHRUZXh0OiAnJyxcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgZGV0ZWN0TURJbnRlcm5hbExpbmsgPSAobGluZVRleHQ6IHN0cmluZyk6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xuICBjb25zdCB7bWV0YWRhdGFDYWNoZSwgdmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gTUFSS0RPV05fVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzVdO1xuICBjb25zdCBpbnRlcm5hbEFsdE5hbWUgPSBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMl07XG4gIGNvbnN0IGZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGRlY29kZVVSSUNvbXBvbmVudChpbnRlcm5hbEZpbGVOYW1lKSwgJycpO1xuICBpZiAoZmlsZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcbiAgICAgIHBhdGg6ICcnLFxuICAgICAgZmlsZXBhdGg6ICcnLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgaW1hZ2VQYXRoID0gZ2V0UGF0aE9mSW1hZ2UodmF1bHQsIGZpbGUpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5wYXRoO1xuICAgIGlmIChpbnRlcm5hbEFsdE5hbWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcbiAgICAgICAgZmlsZXBhdGg6IGZpbGVQYXRoLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6ICcnLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcbiAgICAgIH07XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBNZW1vOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IHttZW1vOiBwcm9wc01lbW99ID0gcHJvcHM7XG4gIGNvbnN0IG1lbW86IEZvcm1hdHRlZE1lbW8gPSB7XG4gICAgLi4ucHJvcHNNZW1vLFxuICAgIGNyZWF0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcocHJvcHNNZW1vLmNyZWF0ZWRBdCksXG4gIH07XG4gIGNvbnN0IFtzaG93Q29uZmlybURlbGV0ZUJ0biwgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bl0gPSB1c2VUb2dnbGUoZmFsc2UpO1xuXG4gIC8vIGNvbnN0IGltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcblxuICBsZXQgZXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcbiAgbGV0IGludGVybmFsSW1hZ2VVcmxzID0gW107XG4gIGxldCBhbGxNYXJrZG93bkxpbms6IHN0cmluZyB8IGFueVtdID0gW107XG4gIGxldCBhbGxJbnRlcm5hbExpbmsgPSBbXSBhcyBhbnlbXTtcbiAgaWYgKElNQUdFX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKSB7XG4gICAgbGV0IGFsbEV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XG4gICAgbGV0IGFub3RoZXJFeHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xuICAgIGlmIChNQVJLRE9XTl9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSkge1xuICAgICAgYWxsTWFya2Rvd25MaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTUFSS0RPV05fVVJMX1JFRykpO1xuICAgIH1cbiAgICBpZiAoV0lLSV9JTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSkge1xuICAgICAgYWxsSW50ZXJuYWxMaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goV0lLSV9JTUFHRV9VUkxfUkVHKSk7XG4gICAgfVxuICAgIC8vIGNvbnN0IGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xuICAgIGlmIChNQVJLRE9XTl9XRUJfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbEV4dGVybmFsSW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTUFSS0RPV05fV0VCX1VSTF9SRUcpKTtcbiAgICB9XG4gICAgaWYgKGFsbEludGVybmFsTGluay5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsSW50ZXJuYWxMaW5rLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBvbmUgPSBhbGxJbnRlcm5hbExpbmtbaV07XG4gICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0V2lraUludGVybmFsTGluayhvbmUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFsbE1hcmtkb3duTGluay5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsTWFya2Rvd25MaW5rLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCB0d28gPSBhbGxNYXJrZG93bkxpbmtbaV07XG4gICAgICAgIGlmICgvKC4qKWh0dHBbc10/KC4qKS8udGVzdCh0d28pKSB7XG4gICAgICAgICAgYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzLnB1c2goTUFSS0RPV05fVVJMX1JFRy5leGVjKHR3byk/Lls1XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW50ZXJuYWxJbWFnZVVybHMucHVzaChkZXRlY3RNREludGVybmFsTGluayh0d28pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBleHRlcm5hbEltYWdlVXJscyA9IGFsbEV4dGVybmFsSW1hZ2VVcmxzLmNvbmNhdChhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMpO1xuICAgIC8vIGV4dGVybmFsSW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goSU1BR0VfVVJMX1JFRykgPz8gW10pO1xuICB9XG5cbiAgY29uc3QgaGFuZGxlU2hvd01lbW9TdG9yeURpYWxvZyA9ICgpID0+IHtcbiAgICBzaG93TWVtb0NhcmREaWFsb2cobWVtbyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlTWFya01lbW9DbGljayA9ICgpID0+IHtcbiAgICBpZiAoVXNlQnV0dG9uVG9TaG93RWRpdG9yICYmIERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gJ0JvdHRvbScpIHtcbiAgICAgIGxldCBlbGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCJkaXZbZGF0YS10eXBlPSdtZW1vc192aWV3J10gLnZpZXctY29udGVudCAubWVtby1zaG93LWVkaXRvci1idXR0b25cIixcbiAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAodHlwZW9mIGVsZW0ub25jbGljayA9PSAnZnVuY3Rpb24nICYmIGVsZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlbGVtLm9uY2xpY2suYXBwbHkoZWxlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldE1hcmtNZW1vSWQobWVtby5pZCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRWRpdE1lbW9DbGljayA9ICgpID0+IHtcbiAgICBpZiAoVXNlQnV0dG9uVG9TaG93RWRpdG9yICYmIERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gJ0JvdHRvbScpIHtcbiAgICAgIGxldCBlbGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCJkaXZbZGF0YS10eXBlPSdtZW1vc192aWV3J10gLnZpZXctY29udGVudCAubWVtby1zaG93LWVkaXRvci1idXR0b25cIixcbiAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAodHlwZW9mIGVsZW0ub25jbGljayA9PSAnZnVuY3Rpb24nICYmIGVsZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlbGVtLm9uY2xpY2suYXBwbHkoZWxlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEVkaXRNZW1vSWQobWVtby5pZCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU291cmNlTWVtb0NsaWNrID0gKCkgPT4ge1xuICAgIHNob3dNZW1vSW5EYWlseU5vdGVzKG1lbW8uaWQpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZU1lbW9DbGljayA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG1lbW9TZXJ2aWNlLmhpZGVNZW1vQnlJZChtZW1vLmlkKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgbmV3IE5vdGljZShlcnJvci5tZXNzYWdlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGdsb2JhbFN0YXRlU2VydmljZS5nZXRTdGF0ZSgpLmVkaXRNZW1vSWQgPT09IG1lbW8uaWQpIHtcbiAgICAgICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEVkaXRNZW1vSWQoJycpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0b2dnbGVDb25maXJtRGVsZXRlQnRuKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlTGVhdmVNZW1vV3JhcHBlciA9ICgpID0+IHtcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcbiAgICAgIHRvZ2dsZUNvbmZpcm1EZWxldGVCdG4oZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVHZW5NZW1vSW1hZ2VCdG5DbGljayA9ICgpID0+IHtcbiAgICBzaG93U2hhcmVNZW1vSW1hZ2VEaWFsb2cobWVtbyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlTWVtb0tleURvd24gPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7XG4gICAgICBoYW5kbGVTb3VyY2VNZW1vQ2xpY2soKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVNZW1vRG91YmxlS2V5RG93biA9IHVzZUNhbGxiYWNrKChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGlmIChldmVudCkge1xuICAgICAgaGFuZGxlRWRpdE1lbW9DbGljaygpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZU1lbW9Db250ZW50Q2xpY2sgPSBhc3luYyAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldEVsID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAodGFyZ2V0RWwuY2xhc3NOYW1lID09PSAnbWVtby1saW5rLXRleHQnKSB7XG4gICAgICBjb25zdCBtZW1vSWQgPSB0YXJnZXRFbC5kYXRhc2V0Py52YWx1ZTtcbiAgICAgIGNvbnN0IG1lbW9UZW1wID0gbWVtb1NlcnZpY2UuZ2V0TWVtb0J5SWQobWVtb0lkID8/ICcnKTtcblxuICAgICAgaWYgKG1lbW9UZW1wKSB7XG4gICAgICAgIHNob3dNZW1vQ2FyZERpYWxvZyhtZW1vVGVtcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXcgTm90aWNlKCdNRU1PIE5vdCBGb3VuZCcpO1xuICAgICAgICB0YXJnZXRFbC5jbGFzc0xpc3QucmVtb3ZlKCdtZW1vLWxpbmstdGV4dCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGFyZ2V0RWwuY2xhc3NOYW1lID09PSAndG9kby1ibG9jaycpIHtcbiAgICAgIC8vIGRvIG50aFxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17YG1lbW8td3JhcHBlciAkeydtZW1vcy0nICsgbWVtby5pZH0gJHttZW1vLm1lbW9UeXBlfWB9XG4gICAgICBvbk1vdXNlTGVhdmU9e2hhbmRsZU1vdXNlTGVhdmVNZW1vV3JhcHBlcn1cbiAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNZW1vS2V5RG93bn1cbiAgICAgIG9uRG91YmxlQ2xpY2s9e2hhbmRsZU1lbW9Eb3VibGVLZXlEb3dufT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby10b3Atd3JhcHBlclwiPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIiBvbkNsaWNrPXtoYW5kbGVTaG93TWVtb1N0b3J5RGlhbG9nfT5cbiAgICAgICAgICB7bWVtby5jcmVhdGVkQXRTdHJ9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0biBtb3JlLWFjdGlvbi1idG5cIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e21vcmV9IC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9yZS1hY3Rpb24tYnRucy13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmUtYWN0aW9uLWJ0bnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNob3dNZW1vU3RvcnlEaWFsb2d9PlxuICAgICAgICAgICAgICAgIFJFQURcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG5cIiBvbkNsaWNrPXtoYW5kbGVNYXJrTWVtb0NsaWNrfT5cbiAgICAgICAgICAgICAgICBNQVJLXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17aGFuZGxlR2VuTWVtb0ltYWdlQnRuQ2xpY2t9PlxuICAgICAgICAgICAgICAgIFNIQVJFXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17aGFuZGxlRWRpdE1lbW9DbGlja30+XG4gICAgICAgICAgICAgICAgRURJVFxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNvdXJjZU1lbW9DbGlja30+XG4gICAgICAgICAgICAgICAgU09VUkNFXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BidG4gZGVsZXRlLWJ0biAke3Nob3dDb25maXJtRGVsZXRlQnRuID8gJ2ZpbmFsLWNvbmZpcm0nIDogJyd9YH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVEZWxldGVNZW1vQ2xpY2t9PlxuICAgICAgICAgICAgICAgIHtzaG93Q29uZmlybURlbGV0ZUJ0biA/ICdDT05GSVJN77yBJyA6ICdERUxFVEUnfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwibWVtby1jb250ZW50LXRleHRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVNZW1vQ29udGVudENsaWNrfVxuICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e19faHRtbDogZm9ybWF0TWVtb0NvbnRlbnQobWVtby5jb250ZW50LCBtZW1vLmlkKX19PjwvZGl2PlxuICAgICAgPE9ubHkgd2hlbj17ZXh0ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2VzLXdyYXBwZXJcIj5cbiAgICAgICAgICB7ZXh0ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgPEltYWdlIGFsdD1cIlwiIGtleT17aWR4fSBjbGFzc05hbWU9XCJtZW1vLWltZ1wiIGltZ1VybD17aW1nVXJsfSByZWZlcnJlclBvbGljeT1cIm5vLXJlZmVycmVyXCIgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L09ubHk+XG4gICAgICA8T25seSB3aGVuPXtpbnRlcm5hbEltYWdlVXJscy5sZW5ndGggPiAwfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtd3JhcHBlciBpbnRlcm5hbC1lbWJlZCBpbWFnZS1lbWJlZCBpcy1sb2FkZWRcIj5cbiAgICAgICAgICB7aW50ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgPEltYWdlXG4gICAgICAgICAgICAgIGtleT17aWR4fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtZW1vLWltZ1wiXG4gICAgICAgICAgICAgIGltZ1VybD17aW1nVXJsLnBhdGh9XG4gICAgICAgICAgICAgIGFsdD17aW1nVXJsLmFsdFRleHR9XG4gICAgICAgICAgICAgIGZpbGVwYXRoPXtpbWdVcmwuZmlsZXBhdGh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvT25seT5cbiAgICAgIHsvKiA8T25seSB3aGVuPXtpbWFnZVVybHMubGVuZ3RoID4gMH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2VzLXdyYXBwZXJcIj5cbiAgICAgICAgICB7aW1hZ2VVcmxzLm1hcCgoaW1nVXJsLCBpZHgpID0+IChcbiAgICAgICAgICAgIDxJbWFnZSBjbGFzc05hbWU9XCJtZW1vLWltZ1wiIGtleT17aWR4fSBpbWdVcmw9e2ltZ1VybH0gLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L09ubHk+ICovfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE1lbW9Db250ZW50KGNvbnRlbnQ6IHN0cmluZywgbWVtb2lkPzogc3RyaW5nKSB7XG4gIGNvbnRlbnQgPSBlbmNvZGVIdG1sKGNvbnRlbnQpO1xuICBjb250ZW50ID0gcGFyc2VSYXdUZXh0VG9IdG1sKGNvbnRlbnQpXG4gICAgLnNwbGl0KCc8YnI+JylcbiAgICAubWFwKCh0KSA9PiB7XG4gICAgICByZXR1cm4gYDxwPiR7dCAhPT0gJycgPyB0IDogJzxicj4nfTwvcD5gO1xuICAgIH0pXG4gICAgLmpvaW4oJycpO1xuXG4gIGNvbnN0IHtzaG91bGRVc2VNYXJrZG93blBhcnNlciwgc2hvdWxkSGlkZUltYWdlVXJsfSA9IGdsb2JhbFN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gIGlmIChzaG91bGRVc2VNYXJrZG93blBhcnNlcikge1xuICAgIGNvbnRlbnQgPSBwYXJzZU1hcmtlZFRvSHRtbChjb250ZW50LCBtZW1vaWQpO1xuICB9XG5cbiAgaWYgKHNob3VsZEhpZGVJbWFnZVVybCkge1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoV0lLSV9JTUFHRV9VUkxfUkVHLCAnJykucmVwbGFjZShNQVJLRE9XTl9VUkxfUkVHLCAnJykucmVwbGFjZShJTUFHRV9VUkxfUkVHLCAnJyk7XG4gIH1cblxuICAvLyBjb25zb2xlLmxvZyhjb250ZW50KTtcblxuICAvLyDkuK3oi7HmlofkuYvpl7TliqDnqbrmoLxcbiAgLy8gaWYgKHNob3VsZFNwbGl0TWVtb1dvcmQpIHtcbiAgLy8gICBjb250ZW50ID0gY29udGVudFxuICAvLyAgICAgLnJlcGxhY2UoLyhbXFx1NGUwMC1cXHU5ZmE1XSkoW0EtWmEtejAtOT8uLDtbXFxdXSspL2csIFwiJDEgJDJcIilcbiAgLy8gICAgIC5yZXBsYWNlKC8oW0EtWmEtejAtOT8uLDtbXFxdXSspKFtcXHU0ZTAwLVxcdTlmYTVdKS9nLCBcIiQxICQyXCIpO1xuICAvLyB9XG5cbiAgY29udGVudCA9IGNvbnRlbnRcbiAgICAucmVwbGFjZShUQUdfUkVHLCBcIjxzcGFuIGNsYXNzPSd0YWctc3Bhbic+IyQxPC9zcGFuPlwiKVxuICAgIC5yZXBsYWNlKEZJUlNUX1RBR19SRUcsIFwiPHA+PHNwYW4gY2xhc3M9J3RhZy1zcGFuJz4jJDI8L3NwYW4+XCIpXG4gICAgLnJlcGxhY2UoTElOS19SRUcsIFwiJDE8YSBjbGFzcz0nbGluaycgdGFyZ2V0PSdfYmxhbmsnIHJlbD0nbm9yZWZlcnJlcicgaHJlZj0nJDInPiQyPC9hPlwiKVxuICAgIC5yZXBsYWNlKE1EX0xJTktfUkVHLCBcIjxhIGNsYXNzPSdsaW5rJyB0YXJnZXQ9J19ibGFuaycgcmVsPSdub3JlZmVycmVyJyBocmVmPSckMic+JDE8L2E+XCIpXG4gICAgLnJlcGxhY2UoTUVNT19MSU5LX1JFRywgXCI8c3BhbiBjbGFzcz0nbWVtby1saW5rLXRleHQnIGRhdGEtdmFsdWU9JyQyJz4kMTwvc3Bhbj5cIik7XG5cbiAgLy8gY29uc3QgY29udGVudE1hcmsgPSBjb250ZW50LnNwbGl0KCcnKTtcblxuICAvLyBpZigvKC4qKTxhKC4qKS9nLnRlc3QoY29udGVudCkpe1xuXG4gIC8vIH1cbiAgLy8gICBmb3IobGV0IGk9MDsgaTxjb250ZW50Lmxlbmd0aDtpKyspe1xuICAvLyAgICAgbGV0IG1hcmsgPSBmYWxzZTtcbiAgLy8gICAgIGxldCBhTWFyayA9IGZhbHNlO1xuICAvLyAgICAgaWYoY29udGVudE1hcmtbaV0pXG4gIC8vICAgfVxuXG4gIGNvbnN0IHRlbXBEaXZDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgdGVtcERpdkNvbnRhaW5lci5pbm5lckhUTUwgPSBjb250ZW50O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBEaXZDb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjID0gdGVtcERpdkNvbnRhaW5lci5jaGlsZHJlbltpXTtcblxuICAgIGlmIChjLnRhZ05hbWUgPT09ICdQJyAmJiBjLnRleHRDb250ZW50ID09PSAnJyAmJiBjLmZpcnN0RWxlbWVudENoaWxkPy50YWdOYW1lICE9PSAnQlInKSB7XG4gICAgICBjLnJlbW92ZSgpO1xuICAgICAgaS0tO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlbXBEaXZDb250YWluZXIuaW5uZXJIVE1MO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKE1lbW8pO1xuIiwiaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuLi9zdG9yZXMvYXBwQ29udGV4dCc7XG5pbXBvcnQge2xvY2F0aW9uU2VydmljZSwgbWVtb1NlcnZpY2UsIHF1ZXJ5U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHtJTUFHRV9VUkxfUkVHLCBMSU5LX1JFRywgTUVNT19MSU5LX1JFRywgTk9QX0ZJUlNUX1RBR19SRUcsIFRBR19SRUd9IGZyb20gJy4uL2hlbHBlcnMvY29uc3RzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7Y2hlY2tTaG91bGRTaG93TWVtb1dpdGhGaWx0ZXJzfSBmcm9tICcuLi9oZWxwZXJzL2ZpbHRlcic7XG5pbXBvcnQgTWVtbyBmcm9tICcuL01lbW8nO1xuLy8gaW1wb3J0IHRvYXN0SGVscGVyIGZyb20gXCIuL1RvYXN0XCI7XG5pbXBvcnQgJy4uL2xlc3MvbWVtb2xpc3QubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRhaWx5Tm90ZXNTZXJ2aWNlIGZyb20gJy4uL3NlcnZpY2VzL2RhaWx5Tm90ZXNTZXJ2aWNlJztcbmltcG9ydCBhcHBTdG9yZSBmcm9tICcuLi9zdG9yZXMvYXBwU3RvcmUnO1xuaW1wb3J0IHtOb3RpY2UsIFBsYXRmb3JtfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge0hpZGVEb25lVGFza3N9IGZyb20gJy4uL21lbW9zJztcbmltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG4vLyBpbXBvcnQgeyBEZWZhdWx0RWRpdG9yTG9jYXRpb24gfSBmcm9tICcuLi9tZW1vcyc7XG5cbmludGVyZmFjZSBQcm9wcyB7fVxuXG5jb25zdCBNZW1vTGlzdDogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xuICBjb25zdCB7XG4gICAgbG9jYXRpb25TdGF0ZToge3F1ZXJ5fSxcbiAgICBtZW1vU3RhdGU6IHttZW1vc30sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBsZXQgcmV2ZXJzZU1lbW9zOiBNb2RlbC5NZW1vW107XG4gIC8vIGlmKERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gXCJCb3R0b21cIiAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDg3NSAmJiBQbGF0Zm9ybS5pc01vYmlsZSl7XG4gIC8vICAgcmV2ZXJzZU1lbW9zID0gbWVtb3MucmV2ZXJzZSgpO1xuICAvLyB9XG4gIGNvbnN0IFtpc0ZldGNoaW5nLCBzZXRGZXRjaFN0YXR1c10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3Qgd3JhcHBlckVsZW1lbnQgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB7dGFnOiB0YWdRdWVyeSwgZHVyYXRpb24sIHR5cGU6IG1lbW9UeXBlLCB0ZXh0OiB0ZXh0UXVlcnksIGZpbHRlcjogcXVlcnlJZH0gPSBxdWVyeTtcbiAgLy8gY29uc3Qgc2hvd01lbW9GaWx0ZXIgPSBCb29sZWFuKHRhZ1F1ZXJ5IHx8IChkdXJhdGlvbiAmJiBkdXJhdGlvbi5mcm9tIDwgZHVyYXRpb24udG8pIHx8IG1lbW9UeXBlIHx8IHRleHRRdWVyeSB8fCBxdWVyeUlkKTtcbiAgY29uc3QgcXVlcnlGaWx0ZXIgPSBxdWVyeVNlcnZpY2UuZ2V0UXVlcnlCeUlkKHF1ZXJ5SWQpO1xuICBjb25zdCBzaG93TWVtb0ZpbHRlciA9IEJvb2xlYW4oXG4gICAgdGFnUXVlcnkgfHwgKGR1cmF0aW9uICYmIGR1cmF0aW9uLmZyb20gPCBkdXJhdGlvbi50bykgfHwgbWVtb1R5cGUgfHwgdGV4dFF1ZXJ5IHx8IHF1ZXJ5RmlsdGVyLFxuICApO1xuXG4gIGNvbnN0IHNob3duTWVtb3MgPVxuICAgIHNob3dNZW1vRmlsdGVyIHx8IHF1ZXJ5RmlsdGVyIHx8IEhpZGVEb25lVGFza3NcbiAgICAgID8gbWVtb3MuZmlsdGVyKChtZW1vKSA9PiB7XG4gICAgICAgICAgbGV0IHNob3VsZFNob3cgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKG1lbW8ubWVtb1R5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKEhpZGVEb25lVGFza3MgJiYgbWVtby5tZW1vVHlwZSA9PT0gJ1RBU0stRE9ORScpIHtcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChxdWVyeUZpbHRlcikge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IEpTT04ucGFyc2UocXVlcnlGaWx0ZXIucXVlcnlzdHJpbmcpIGFzIEZpbHRlcltdO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGNoZWNrU2hvdWxkU2hvd01lbW9XaXRoRmlsdGVycyhtZW1vLCBmaWx0ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGFnUXVlcnkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3NTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdCBvZiBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChUQUdfUkVHKSA/PyBbXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgdGFnID0gdC5yZXBsYWNlKFRBR19SRUcsICckMScpLnRyaW0oKTtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0YWcuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgbGV0IHRlbXAgPSAnJztcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBpIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGVtcCArPSBpO1xuICAgICAgICAgICAgICAgIHRhZ3NTZXQuYWRkKHRlbXApO1xuICAgICAgICAgICAgICAgIHRlbXAgKz0gJy8nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTk9QX0ZJUlNUX1RBR19SRUcpID8/IFtdKSkge1xuICAgICAgICAgICAgICBjb25zdCB0YWcgPSB0LnJlcGxhY2UoTk9QX0ZJUlNUX1RBR19SRUcsICckMScpLnRyaW0oKTtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0YWcuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgbGV0IHRlbXAgPSAnJztcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBpIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGVtcCArPSBpO1xuICAgICAgICAgICAgICAgIHRhZ3NTZXQuYWRkKHRlbXApO1xuICAgICAgICAgICAgICAgIHRlbXAgKz0gJy8nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRhZ3NTZXQuaGFzKHRhZ1F1ZXJ5KSkge1xuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGR1cmF0aW9uICYmXG4gICAgICAgICAgICBkdXJhdGlvbi5mcm9tIDwgZHVyYXRpb24udG8gJiZcbiAgICAgICAgICAgICh1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUobWVtby5jcmVhdGVkQXQpIDwgZHVyYXRpb24uZnJvbSB8fFxuICAgICAgICAgICAgICB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUobWVtby5jcmVhdGVkQXQpID4gZHVyYXRpb24udG8pXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtZW1vVHlwZSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBtZW1vVHlwZSA9PT0gJ05PVF9UQUdHRUQnICYmXG4gICAgICAgICAgICAgIChtZW1vLmNvbnRlbnQubWF0Y2goVEFHX1JFRykgIT09IG51bGwgfHwgbWVtby5jb250ZW50Lm1hdGNoKE5PUF9GSVJTVF9UQUdfUkVHKSAhPT0gbnVsbClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lbW9UeXBlID09PSAnTElOS0VEJyAmJiBtZW1vLmNvbnRlbnQubWF0Y2goTElOS19SRUcpID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHNob3VsZFNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtb1R5cGUgPT09ICdJTUFHRUQnICYmIG1lbW8uY29udGVudC5tYXRjaChJTUFHRV9VUkxfUkVHKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lbW9UeXBlID09PSAnQ09OTkVDVEVEJyAmJiBtZW1vLmNvbnRlbnQubWF0Y2goTUVNT19MSU5LX1JFRykgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGV4dFF1ZXJ5ICYmICFtZW1vLmNvbnRlbnQuaW5jbHVkZXModGV4dFF1ZXJ5KSkge1xuICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzaG91bGRTaG93O1xuICAgICAgICB9KVxuICAgICAgOiBtZW1vcztcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG1lbW9TZXJ2aWNlXG4gICAgICAuZmV0Y2hBbGxNZW1vcygpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHNldEZldGNoU3RhdHVzKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICBuZXcgTm90aWNlKCfwn5itIEZldGNoIEVycm9yJyk7XG4gICAgICB9KTtcbiAgICBkYWlseU5vdGVzU2VydmljZVxuICAgICAgLmdldE15QWxsRGFpbHlOb3RlcygpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHNldEZldGNoU3RhdHVzKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICBuZXcgTm90aWNlKCfwn5itIEZldGNoIERhaWx5Tm90ZXMgRXJyb3InKTtcbiAgICAgIH0pO1xuICAgIGRhaWx5Tm90ZXNTZXJ2aWNlLmdldFN0YXRlKCk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHdyYXBwZXJFbGVtZW50LmN1cnJlbnQ/LnNjcm9sbFRvKHt0b3A6IDB9KTtcbiAgfSwgW3F1ZXJ5XSk7XG5cbiAgY29uc3QgaGFuZGxlTWVtb0xpc3RDbGljayA9IHVzZUNhbGxiYWNrKChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IHt3b3Jrc3BhY2V9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuXG4gICAgY29uc3QgdGFyZ2V0RWwgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRhcmdldEVsLnRhZ05hbWUgPT09ICdTUEFOJyAmJiB0YXJnZXRFbC5jbGFzc05hbWUgPT09ICd0YWctc3BhbicpIHtcbiAgICAgIGNvbnN0IHRhZ05hbWUgPSB0YXJnZXRFbC5pbm5lclRleHQuc2xpY2UoMSk7XG4gICAgICBjb25zdCBjdXJyVGFnUXVlcnkgPSBsb2NhdGlvblNlcnZpY2UuZ2V0U3RhdGUoKS5xdWVyeS50YWc7XG4gICAgICBpZiAoY3VyclRhZ1F1ZXJ5ID09PSB0YWdOYW1lKSB7XG4gICAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRUYWdRdWVyeSgnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0VGFnUXVlcnkodGFnTmFtZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0YXJnZXRFbC50YWdOYW1lID09PSAnQScgJiYgdGFyZ2V0RWwuY2xhc3NOYW1lID09PSAnaW50ZXJuYWwtbGluaycpIHtcbiAgICAgIGNvbnN0IHNvdXJjZVBhdGggPSB0YXJnZXRFbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmlsZXBhdGgnKTtcbiAgICAgIGlmIChQbGF0Zm9ybS5pc01vYmlsZSkge1xuICAgICAgICB3b3Jrc3BhY2Uub3BlbkxpbmtUZXh0KHNvdXJjZVBhdGgsIHNvdXJjZVBhdGgsIGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdvcmtzcGFjZS5vcGVuTGlua1RleHQoc291cmNlUGF0aCwgc291cmNlUGF0aCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BtZW1vbGlzdC13cmFwcGVyICR7aXNGZXRjaGluZyA/ICcnIDogJ2NvbXBsZXRlZCd9YH1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZU1lbW9MaXN0Q2xpY2t9XG4gICAgICByZWY9e3dyYXBwZXJFbGVtZW50fT5cbiAgICAgIHtzaG93bk1lbW9zLm1hcCgobWVtbykgPT4gKFxuICAgICAgICA8TWVtbyBrZXk9e2Ake21lbW8uaWR9LSR7bWVtby51cGRhdGVkQXR9YH0gbWVtbz17bWVtb30gLz5cbiAgICAgICkpfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF0dXMtdGV4dC1jb250YWluZXJcIj5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwic3RhdHVzLXRleHRcIj5cbiAgICAgICAgICB7aXNGZXRjaGluZ1xuICAgICAgICAgICAgPyAnRmV0Y2hpbmcgZGF0YS4uLidcbiAgICAgICAgICAgIDogc2hvd25NZW1vcy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgID8gJ05vb29vcCEnXG4gICAgICAgICAgICA6IHNob3dNZW1vRmlsdGVyXG4gICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICA6ICdBbGwgRGF0YSBpcyBMb2FkZWQg8J+OiSd9XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTWVtb0xpc3Q7XG4iLCJpbXBvcnQgTWVtb0VkaXRvciBmcm9tICcuLi9jb21wb25lbnRzL01lbW9FZGl0b3InO1xuaW1wb3J0IE1lbW9zSGVhZGVyIGZyb20gJy4uL2NvbXBvbmVudHMvTWVtb3NIZWFkZXInO1xuaW1wb3J0IE1lbW9GaWx0ZXIgZnJvbSAnLi4vY29tcG9uZW50cy9NZW1vRmlsdGVyJztcbmltcG9ydCBNZW1vTGlzdCBmcm9tICcuLi9jb21wb25lbnRzL01lbW9MaXN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge0RlZmF1bHRFZGl0b3JMb2NhdGlvbn0gZnJvbSAnLi4vbWVtb3MnO1xuXG5mdW5jdGlvbiBNZW1vcygpIHtcbiAgaWYgKFBsYXRmb3JtLmlzTW9iaWxlICYmIERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9PT0gJ0JvdHRvbScpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPE1lbW9zSGVhZGVyIC8+XG4gICAgICAgIDxNZW1vRmlsdGVyIC8+XG4gICAgICAgIDxNZW1vTGlzdCAvPlxuICAgICAgICA8TWVtb0VkaXRvciAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPE1lbW9zSGVhZGVyIC8+XG4gICAgICAgIDxNZW1vRWRpdG9yIC8+XG4gICAgICAgIDxNZW1vRmlsdGVyIC8+XG4gICAgICAgIDxNZW1vTGlzdCAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNZW1vcztcbiIsImltcG9ydCB7dXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gdXNlTG9hZGluZyhpbml0aWFsU3RhdGUgPSB0cnVlKSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGUoe2lzTG9hZGluZzogaW5pdGlhbFN0YXRlLCBpc0ZhaWxlZDogZmFsc2UsIGlzU3VjY2VlZDogZmFsc2V9KTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHNldExvYWRpbmc6ICgpID0+IHtcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxuICAgICAgICBpc1N1Y2NlZWQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBzZXRGaW5pc2g6ICgpID0+IHtcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcbiAgICAgICAgaXNTdWNjZWVkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBzZXRFcnJvcjogKCkgPT4ge1xuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgaXNGYWlsZWQ6IHRydWUsXG4gICAgICAgIGlzU3VjY2VlZDogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VMb2FkaW5nO1xuIiwiaW1wb3J0IHtJTUFHRV9VUkxfUkVHLCBNQVJLRE9XTl9VUkxfUkVHLCBNQVJLRE9XTl9XRUJfVVJMX1JFRywgV0lLSV9JTUFHRV9VUkxfUkVHfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0cyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQgdXNlVG9nZ2xlIGZyb20gJy4uL2hvb2tzL3VzZVRvZ2dsZSc7XG5pbXBvcnQge21lbW9TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgT25seSBmcm9tICcuL2NvbW1vbi9Pbmx5V2hlbic7XG5pbXBvcnQgSW1hZ2UgZnJvbSAnLi9JbWFnZSc7XG5pbXBvcnQge2Zvcm1hdE1lbW9Db250ZW50fSBmcm9tICcuL01lbW8nO1xuaW1wb3J0ICcuLi9sZXNzL21lbW8ubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtOb3RpY2UsIFRGaWxlLCBWYXVsdH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IGFwcFN0b3JlIGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5pbXBvcnQgbW9yZSBmcm9tICcuLi9pY29ucy9tb3JlLnN2Zyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIG1lbW86IE1vZGVsLk1lbW87XG4gIGhhbmRsZURlbGV0ZWRNZW1vQWN0aW9uOiAobWVtb0lkOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmludGVyZmFjZSBMaW5rTWF0Y2gge1xuICBsaW5rVGV4dDogc3RyaW5nO1xuICBhbHRUZXh0OiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgZmlsZXBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRQYXRoT2ZJbWFnZSA9ICh2YXVsdDogVmF1bHQsIGltYWdlOiBURmlsZSkgPT4ge1xuICByZXR1cm4gdmF1bHQuZ2V0UmVzb3VyY2VQYXRoKGltYWdlKTtcbn07XG5cbmNvbnN0IGRldGVjdFdpa2lJbnRlcm5hbExpbmsgPSAobGluZVRleHQ6IHN0cmluZyk6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xuICBjb25zdCB7bWV0YWRhdGFDYWNoZSwgdmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMV07XG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9IFdJS0lfSU1BR0VfVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzVdO1xuICBjb25zdCBmaWxlID0gbWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcbiAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIGZpbGVwYXRoOiAnJyxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKHZhdWx0LCBmaWxlKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUucGF0aDtcbiAgICBpZiAoaW50ZXJuYWxBbHROYW1lKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgICBhbHRUZXh0OiAnJyxcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxuICAgICAgICBmaWxlcGF0aDogZmlsZVBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgZGV0ZWN0TURJbnRlcm5hbExpbmsgPSAobGluZVRleHQ6IHN0cmluZyk6IExpbmtNYXRjaCB8IG51bGwgPT4ge1xuICBjb25zdCB7bWV0YWRhdGFDYWNoZSwgdmF1bHR9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGUuYXBwO1xuICBjb25zdCBpbnRlcm5hbEZpbGVOYW1lID0gTUFSS0RPV05fVVJMX1JFRy5leGVjKGxpbmVUZXh0KT8uWzVdO1xuICBjb25zdCBpbnRlcm5hbEFsdE5hbWUgPSBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bMl07XG4gIGNvbnN0IGZpbGUgPSBtZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGRlY29kZVVSSUNvbXBvbmVudChpbnRlcm5hbEZpbGVOYW1lKSwgJycpO1xuICBpZiAoZmlsZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcbiAgICAgIHBhdGg6ICcnLFxuICAgICAgZmlsZXBhdGg6ICcnLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgaW1hZ2VQYXRoID0gZ2V0UGF0aE9mSW1hZ2UodmF1bHQsIGZpbGUpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5wYXRoO1xuICAgIGlmIChpbnRlcm5hbEFsdE5hbWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmtUZXh0OiBpbnRlcm5hbEZpbGVOYW1lLFxuICAgICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcbiAgICAgICAgZmlsZXBhdGg6IGZpbGVQYXRoLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6ICcnLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlUGF0aCxcbiAgICAgIH07XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBEZWxldGVkTWVtbzogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICAvLyBjb25zdCB7IGFwcCB9ICA9IGFwcFN0b3JlLmdldFN0YXRlKCkuZGFpbHlOb3Rlc1N0YXRlO1xuXG4gIGNvbnN0IHttZW1vOiBwcm9wc01lbW8sIGhhbmRsZURlbGV0ZWRNZW1vQWN0aW9ufSA9IHByb3BzO1xuICBjb25zdCBtZW1vOiBGb3JtYXR0ZWRNZW1vID0ge1xuICAgIC4uLnByb3BzTWVtbyxcbiAgICBjcmVhdGVkQXRTdHI6IHV0aWxzLmdldERhdGVUaW1lU3RyaW5nKHByb3BzTWVtby5jcmVhdGVkQXQpLFxuICAgIGRlbGV0ZWRBdFN0cjogdXRpbHMuZ2V0RGF0ZVRpbWVTdHJpbmcocHJvcHNNZW1vLmRlbGV0ZWRBdCA/PyBEYXRlLm5vdygpKSxcbiAgfTtcbiAgY29uc3QgW3Nob3dDb25maXJtRGVsZXRlQnRuLCB0b2dnbGVDb25maXJtRGVsZXRlQnRuXSA9IHVzZVRvZ2dsZShmYWxzZSk7XG4gIC8vIGNvbnN0IGltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcbiAgbGV0IGV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XG4gIGxldCBpbnRlcm5hbEltYWdlVXJscyA9IFtdO1xuICBsZXQgYWxsTWFya2Rvd25MaW5rOiBzdHJpbmcgfCBhbnlbXSA9IFtdO1xuICBsZXQgYWxsSW50ZXJuYWxMaW5rID0gW10gYXMgYW55W107XG4gIGlmIChJTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSkge1xuICAgIGxldCBhbGxFeHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xuICAgIGxldCBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcbiAgICBpZiAoTUFSS0RPV05fVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbE1hcmtkb3duTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1VSTF9SRUcpKTtcbiAgICB9XG4gICAgaWYgKFdJS0lfSU1BR0VfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xuICAgIH1cbiAgICAvLyBjb25zdCBhbGxJbnRlcm5hbExpbmsgPSBBcnJheS5mcm9tKG1lbW8uY29udGVudC5tYXRjaChXSUtJX0lNQUdFX1VSTF9SRUcpKTtcbiAgICBpZiAoTUFSS0RPV05fV0VCX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKSB7XG4gICAgICBhbGxFeHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE1BUktET1dOX1dFQl9VUkxfUkVHKSk7XG4gICAgfVxuICAgIGlmIChhbGxJbnRlcm5hbExpbmsubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbEludGVybmFsTGluay5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgb25lID0gYWxsSW50ZXJuYWxMaW5rW2ldO1xuICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdFdpa2lJbnRlcm5hbExpbmsob25lKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhbGxNYXJrZG93bkxpbmsubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbE1hcmtkb3duTGluay5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgdHdvID0gYWxsTWFya2Rvd25MaW5rW2ldO1xuICAgICAgICBpZiAoLyguKilodHRwW3NdPyguKikvLnRlc3QodHdvKSkge1xuICAgICAgICAgIGFub3RoZXJFeHRlcm5hbEltYWdlVXJscy5wdXNoKE1BUktET1dOX1VSTF9SRUcuZXhlYyh0d28pPy5bNV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0TURJbnRlcm5hbExpbmsodHdvKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuYWxJbWFnZVVybHMgPSBhbGxFeHRlcm5hbEltYWdlVXJscy5jb25jYXQoYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzKTtcbiAgICAvLyBleHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZU1lbW9DbGljayA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG1lbW9TZXJ2aWNlLmRlbGV0ZU1lbW9CeUlkKG1lbW8uaWQpO1xuICAgICAgICBoYW5kbGVEZWxldGVkTWVtb0FjdGlvbihtZW1vLmlkKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgbmV3IE5vdGljZShlcnJvci5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bigpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXN0b3JlTWVtb0NsaWNrID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBtZW1vU2VydmljZS5yZXN0b3JlTWVtb0J5SWQobWVtby5pZCk7XG4gICAgICBoYW5kbGVEZWxldGVkTWVtb0FjdGlvbihtZW1vLmlkKTtcbiAgICAgIG5ldyBOb3RpY2UoJ1JFU1RPUkUgU1VDQ0VFRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIG5ldyBOb3RpY2UoZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlTGVhdmVNZW1vV3JhcHBlciA9ICgpID0+IHtcbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcbiAgICAgIHRvZ2dsZUNvbmZpcm1EZWxldGVCdG4oZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgbWVtby13cmFwcGVyICR7J21lbW9zLScgKyBtZW1vLmlkfWB9IG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZU1lbW9XcmFwcGVyfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby10b3Atd3JhcHBlclwiPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lLXRleHRcIj5ERUxFVEUgQVQge21lbW8uZGVsZXRlZEF0U3RyfTwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG5zLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0biBtb3JlLWFjdGlvbi1idG5cIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e21vcmV9IC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9yZS1hY3Rpb24tYnRucy13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmUtYWN0aW9uLWJ0bnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0biByZXN0b3JlLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZVJlc3RvcmVNZW1vQ2xpY2t9PlxuICAgICAgICAgICAgICAgIFJFU1RPUkVcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGJ0biBkZWxldGUtYnRuICR7c2hvd0NvbmZpcm1EZWxldGVCdG4gPyAnZmluYWwtY29uZmlybScgOiAnJ31gfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZURlbGV0ZU1lbW9DbGlja30+XG4gICAgICAgICAgICAgICAge3Nob3dDb25maXJtRGVsZXRlQnRuID8gJ0NPTkZJUk3vvIEnIDogJ0RFTEVURSd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZW1vLWNvbnRlbnQtdGV4dFwiIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7X19odG1sOiBmb3JtYXRNZW1vQ29udGVudChtZW1vLmNvbnRlbnQpfX0+PC9kaXY+XG4gICAgICA8T25seSB3aGVuPXtleHRlcm5hbEltYWdlVXJscy5sZW5ndGggPiAwfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtd3JhcHBlclwiPlxuICAgICAgICAgIHtleHRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXG4gICAgICAgICAgICA8SW1hZ2UgYWx0PVwiXCIga2V5PXtpZHh9IGNsYXNzTmFtZT1cIm1lbW8taW1nXCIgaW1nVXJsPXtpbWdVcmx9IHJlZmVycmVyUG9saWN5PVwibm8tcmVmZXJyZXJcIiAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvT25seT5cbiAgICAgIDxPbmx5IHdoZW49e2ludGVybmFsSW1hZ2VVcmxzLmxlbmd0aCA+IDB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy13cmFwcGVyIGludGVybmFsLWVtYmVkIGltYWdlLWVtYmVkIGlzLWxvYWRlZFwiPlxuICAgICAgICAgIHtpbnRlcm5hbEltYWdlVXJscy5tYXAoKGltZ1VybCwgaWR4KSA9PiAoXG4gICAgICAgICAgICA8SW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpZHh9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1lbW8taW1nXCJcbiAgICAgICAgICAgICAgaW1nVXJsPXtpbWdVcmwucGF0aH1cbiAgICAgICAgICAgICAgYWx0PXtpbWdVcmwuYWx0VGV4dH1cbiAgICAgICAgICAgICAgZmlsZXBhdGg9e2ltZ1VybC5maWxlcGF0aH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9Pbmx5PlxuICAgICAgey8qIDxPbmx5IHdoZW49e2ltYWdlVXJscy5sZW5ndGggPiAwfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtd3JhcHBlclwiPlxuICAgICAgICAgIHtpbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgPEltYWdlIGNsYXNzTmFtZT1cIm1lbW8taW1nXCIga2V5PXtpZHh9IGltZ1VybD17aW1nVXJsfSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvT25seT4gKi99XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEZWxldGVkTWVtbztcbiIsImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gJy4uL3N0b3Jlcy9hcHBDb250ZXh0JztcbmltcG9ydCB1c2VMb2FkaW5nIGZyb20gJy4uL2hvb2tzL3VzZUxvYWRpbmcnO1xuaW1wb3J0IHtnbG9iYWxTdGF0ZVNlcnZpY2UsIGxvY2F0aW9uU2VydmljZSwgbWVtb1NlcnZpY2UsIHF1ZXJ5U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHtJTUFHRV9VUkxfUkVHLCBMSU5LX1JFRywgTUVNT19MSU5LX1JFRywgTk9QX0ZJUlNUX1RBR19SRUcsIFRBR19SRUd9IGZyb20gJy4uL2hlbHBlcnMvY29uc3RzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7Y2hlY2tTaG91bGRTaG93TWVtb1dpdGhGaWx0ZXJzfSBmcm9tICcuLi9oZWxwZXJzL2ZpbHRlcic7XG5pbXBvcnQgT25seSBmcm9tICcuLi9jb21wb25lbnRzL2NvbW1vbi9Pbmx5V2hlbic7XG5pbXBvcnQgRGVsZXRlZE1lbW8gZnJvbSAnLi4vY29tcG9uZW50cy9EZWxldGVkTWVtbyc7XG5pbXBvcnQgTWVtb0ZpbHRlciBmcm9tICcuLi9jb21wb25lbnRzL01lbW9GaWx0ZXInO1xuaW1wb3J0ICcuLi9sZXNzL21lbW8tdHJhc2gubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IG1lbnVTdmcgZnJvbSAnLi4vaWNvbnMvbWVudS5zdmcnO1xuaW1wb3J0IHtOb3RpY2V9IGZyb20gJ29ic2lkaWFuJztcblxuaW50ZXJmYWNlIFByb3BzIHt9XG5cbmNvbnN0IE1lbW9UcmFzaDogUmVhY3QuRkM8UHJvcHM+ID0gKCkgPT4ge1xuICBjb25zdCB7XG4gICAgbG9jYXRpb25TdGF0ZToge3F1ZXJ5fSxcbiAgICBnbG9iYWxTdGF0ZToge2lzTW9iaWxlVmlld30sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBjb25zdCBsb2FkaW5nU3RhdGUgPSB1c2VMb2FkaW5nKCk7XG4gIGNvbnN0IFtkZWxldGVkTWVtb3MsIHNldERlbGV0ZWRNZW1vc10gPSB1c2VTdGF0ZTxNb2RlbC5NZW1vW10+KFtdKTtcblxuICBjb25zdCB7dGFnOiB0YWdRdWVyeSwgZHVyYXRpb24sIHR5cGU6IG1lbW9UeXBlLCB0ZXh0OiB0ZXh0UXVlcnksIGZpbHRlcjogcXVlcnlJZH0gPSBxdWVyeTtcbiAgY29uc3QgcXVlcnlGaWx0ZXIgPSBxdWVyeVNlcnZpY2UuZ2V0UXVlcnlCeUlkKHF1ZXJ5SWQpO1xuICBjb25zdCBzaG93TWVtb0ZpbHRlciA9IEJvb2xlYW4oXG4gICAgdGFnUXVlcnkgfHwgKGR1cmF0aW9uICYmIGR1cmF0aW9uLmZyb20gPCBkdXJhdGlvbi50bykgfHwgbWVtb1R5cGUgfHwgdGV4dFF1ZXJ5IHx8IHF1ZXJ5RmlsdGVyLFxuICApO1xuXG4gIGNvbnN0IHNob3duTWVtb3MgPVxuICAgIHNob3dNZW1vRmlsdGVyIHx8IHF1ZXJ5RmlsdGVyXG4gICAgICA/IGRlbGV0ZWRNZW1vcy5maWx0ZXIoKG1lbW8pID0+IHtcbiAgICAgICAgICBsZXQgc2hvdWxkU2hvdyA9IHRydWU7XG5cbiAgICAgICAgICBpZiAocXVlcnlGaWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKHF1ZXJ5RmlsdGVyLnF1ZXJ5c3RyaW5nKSBhcyBGaWx0ZXJbXTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcnMpKSB7XG4gICAgICAgICAgICAgIHNob3VsZFNob3cgPSBjaGVja1Nob3VsZFNob3dNZW1vV2l0aEZpbHRlcnMobWVtbywgZmlsdGVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRhZ1F1ZXJ5KSB7XG4gICAgICAgICAgICBjb25zdCB0YWdzU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goVEFHX1JFRykgPz8gW10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHQucmVwbGFjZShUQUdfUkVHLCAnJDEnKS50cmltKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGFnLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgIGxldCB0ZW1wID0gJyc7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgaSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAgIHRlbXAgKz0gaTtcbiAgICAgICAgICAgICAgICB0YWdzU2V0LmFkZCh0ZW1wKTtcbiAgICAgICAgICAgICAgICB0ZW1wICs9ICcvJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCB0IG9mIEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKE5PUF9GSVJTVF9UQUdfUkVHKSA/PyBbXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgdGFnID0gdC5yZXBsYWNlKE5PUF9GSVJTVF9UQUdfUkVHLCAnJDEnKS50cmltKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGFnLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgIGxldCB0ZW1wID0gJyc7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgaSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAgIHRlbXAgKz0gaTtcbiAgICAgICAgICAgICAgICB0YWdzU2V0LmFkZCh0ZW1wKTtcbiAgICAgICAgICAgICAgICB0ZW1wICs9ICcvJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0YWdzU2V0Lmhhcyh0YWdRdWVyeSkpIHtcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkdXJhdGlvbiAmJlxuICAgICAgICAgICAgZHVyYXRpb24uZnJvbSA8IGR1cmF0aW9uLnRvICYmXG4gICAgICAgICAgICAodXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKG1lbW8uY3JlYXRlZEF0KSA8IGR1cmF0aW9uLmZyb20gfHxcbiAgICAgICAgICAgICAgdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKG1lbW8uY3JlYXRlZEF0KSA+IGR1cmF0aW9uLnRvKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobWVtb1R5cGUpIHtcbiAgICAgICAgICAgIGlmIChtZW1vVHlwZSA9PT0gJ05PVF9UQUdHRUQnICYmIG1lbW8uY29udGVudC5tYXRjaChUQUdfUkVHKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lbW9UeXBlID09PSAnTElOS0VEJyAmJiBtZW1vLmNvbnRlbnQubWF0Y2goTElOS19SRUcpID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHNob3VsZFNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtb1R5cGUgPT09ICdJTUFHRUQnICYmIG1lbW8uY29udGVudC5tYXRjaChJTUFHRV9VUkxfUkVHKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lbW9UeXBlID09PSAnQ09OTkVDVEVEJyAmJiBtZW1vLmNvbnRlbnQubWF0Y2goTUVNT19MSU5LX1JFRykgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGV4dFF1ZXJ5ICYmICFtZW1vLmNvbnRlbnQuaW5jbHVkZXModGV4dFF1ZXJ5KSkge1xuICAgICAgICAgICAgc2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzaG91bGRTaG93O1xuICAgICAgICB9KVxuICAgICAgOiBkZWxldGVkTWVtb3M7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBtZW1vU2VydmljZS5mZXRjaEFsbE1lbW9zKCk7XG4gICAgbWVtb1NlcnZpY2VcbiAgICAgIC5mZXRjaERlbGV0ZWRNZW1vcygpXG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgc2V0RGVsZXRlZE1lbW9zKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIG5ldyBOb3RpY2UoJ0ZhaWxlZCB0byBmZXRjaCBkZWxldGVkIG1lbW9zOiAnLCBlcnJvcik7XG4gICAgICB9KVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBsb2FkaW5nU3RhdGUuc2V0RmluaXNoKCk7XG4gICAgICB9KTtcbiAgICBsb2NhdGlvblNlcnZpY2UuY2xlYXJRdWVyeSgpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlZE1lbW9BY3Rpb24gPSB1c2VDYWxsYmFjaygobWVtb0lkOiBzdHJpbmcpID0+IHtcbiAgICBzZXREZWxldGVkTWVtb3MoKGRlbGV0ZWRNZW1vcykgPT4gZGVsZXRlZE1lbW9zLmZpbHRlcigobWVtbykgPT4gbWVtby5pZCAhPT0gbWVtb0lkKSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVTaG93U2lkZWJhckJ0bkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRTaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcodHJ1ZSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby10cmFzaC13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlY3Rpb24taGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5cbiAgICAgICAgICA8T25seSB3aGVuPXtpc01vYmlsZVZpZXd9PlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhY3Rpb24tYnRuXCIgb25DbGljaz17aGFuZGxlU2hvd1NpZGViYXJCdG5DbGlja30+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e21lbnVTdmd9IGFsdD1cIm1lbnVcIiAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9Pbmx5PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+UmVjeWNsZSBiaW48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TWVtb0ZpbHRlciAvPlxuICAgICAge2xvYWRpbmdTdGF0ZS5pc0xvYWRpbmcgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGlwLXRleHQtY29udGFpbmVyXCI+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGlwLXRleHRcIj5GZXRjaGluZyBkYXRhLi4uPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiBkZWxldGVkTWVtb3MubGVuZ3RoID09PSAwID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpcC10ZXh0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+SGVyZSBpcyBObyBaZXR0ZWxzLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlbGV0ZWQtbWVtb3MtY29udGFpbmVyXCI+XG4gICAgICAgICAge3Nob3duTWVtb3MubWFwKChtZW1vKSA9PiAoXG4gICAgICAgICAgICA8RGVsZXRlZE1lbW9cbiAgICAgICAgICAgICAga2V5PXtgJHttZW1vLmlkfS0ke21lbW8udXBkYXRlZEF0fWB9XG4gICAgICAgICAgICAgIG1lbW89e21lbW99XG4gICAgICAgICAgICAgIGhhbmRsZURlbGV0ZWRNZW1vQWN0aW9uPXtoYW5kbGVEZWxldGVkTWVtb0FjdGlvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lbW9UcmFzaDtcbiIsImltcG9ydCB7dXNlQ29udGV4dH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGFwcENvbnRleHQgZnJvbSAnLi4vc3RvcmVzL2FwcENvbnRleHQnO1xuaW1wb3J0IHtnbG9iYWxTdGF0ZVNlcnZpY2UsIG1lbW9TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQge3BhcnNlSHRtbFRvUmF3VGV4dH0gZnJvbSAnLi4vaGVscGVycy9tYXJrZWQnO1xuaW1wb3J0IHtmb3JtYXRNZW1vQ29udGVudH0gZnJvbSAnLi9NZW1vJztcbmltcG9ydCAnLi4vbGVzcy9wcmVmZXJlbmNlcy1zZWN0aW9uLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjaGVja2JveEFjdGl2ZSBmcm9tICcuLi9pY29ucy9jaGVja2JveC1hY3RpdmUuc3ZnJztcbmltcG9ydCBjaGVja2JveCBmcm9tICcuLi9pY29ucy9jaGVja2JveC5zdmcnO1xuXG5pbnRlcmZhY2UgUHJvcHMge31cblxuY29uc3QgUHJlZmVyZW5jZXNTZWN0aW9uOiBSZWFjdC5GQzxQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IHtnbG9iYWxTdGF0ZX0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBjb25zdCB7dXNlVGlueVVuZG9IaXN0b3J5Q2FjaGUsIHNob3VsZEhpZGVJbWFnZVVybCwgc2hvdWxkU3BsaXRNZW1vV29yZCwgc2hvdWxkVXNlTWFya2Rvd25QYXJzZXJ9ID0gZ2xvYmFsU3RhdGU7XG5cbiAgY29uc3QgZGVtb01lbW9Db250ZW50ID1cbiAgICAn8J+RiyDkvaDlpb3lkYDvvZ7mrKLov47kvb/nlKhtZW1vcyFcXG4qIOKcqCAqKuW8gOa6kOmhueebrioq77ybXFxuKiDwn5iLIOeyvue+juS4lOe7huiKgueahOinhuinieagt+W8j++8m1xcbiog8J+TkSDkvZPpqozkvJjoia/nmoTkuqTkupLpgLvovpHvvJsnO1xuXG4gIGNvbnN0IGhhbmRsZU9wZW5UaW55VW5kb0NoYW5nZWQgPSAoKSA9PiB7XG4gICAgZ2xvYmFsU3RhdGVTZXJ2aWNlLnNldEFwcFNldHRpbmcoe1xuICAgICAgdXNlVGlueVVuZG9IaXN0b3J5Q2FjaGU6ICF1c2VUaW55VW5kb0hpc3RvcnlDYWNoZSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTcGxpdFdvcmRzVmFsdWVDaGFuZ2VkID0gKCkgPT4ge1xuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRBcHBTZXR0aW5nKHtcbiAgICAgIHNob3VsZFNwbGl0TWVtb1dvcmQ6ICFzaG91bGRTcGxpdE1lbW9Xb3JkLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUhpZGVJbWFnZVVybFZhbHVlQ2hhbmdlZCA9ICgpID0+IHtcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0QXBwU2V0dGluZyh7XG4gICAgICBzaG91bGRIaWRlSW1hZ2VVcmw6ICFzaG91bGRIaWRlSW1hZ2VVcmwsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVXNlTWFya2Rvd25QYXJzZXJDaGFuZ2VkID0gKCkgPT4ge1xuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRBcHBTZXR0aW5nKHtcbiAgICAgIHNob3VsZFVzZU1hcmtkb3duUGFyc2VyOiAhc2hvdWxkVXNlTWFya2Rvd25QYXJzZXIsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXhwb3J0QnRuQ2xpY2sgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZm9ybWF0ZWRNZW1vcyA9IG1lbW9TZXJ2aWNlLmdldFN0YXRlKCkubWVtb3MubWFwKChtKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5tLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGpzb25TdHIgPSBKU09OLnN0cmluZ2lmeShmb3JtYXRlZE1lbW9zKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04LCcgKyBlbmNvZGVVUklDb21wb25lbnQoanNvblN0cikpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsICdkYXRhLmpzb24nKTtcbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICBlbGVtZW50LmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTtcbiAgfTtcblxuICAvLyBjb25zdCBoYW5kbGVGb3JtYXRNZW1vc0J0bkNsaWNrID0gYXN5bmMgKCkgPT4ge1xuICAvLyAgIGNvbnN0IG1lbW9zID0gbWVtb1NlcnZpY2UuZ2V0U3RhdGUoKS5tZW1vcztcbiAgLy8gICBmb3IgKGNvbnN0IG0gb2YgbWVtb3MpIHtcbiAgLy8gICAgIG1lbW9TZXJ2aWNlLnVwZGF0ZU1lbW8obS5pZCwgcGFyc2VIdG1sVG9SYXdUZXh0KG0uY29udGVudCkpO1xuICAvLyAgIH1cbiAgLy8gfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlY3Rpb24tY29udGFpbmVyIHByZWZlcmVuY2VzLXNlY3Rpb24tY29udGFpbmVyXCI+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5NZW1vIOaYvuekuuebuOWFszwvcD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImRlbW8tY29udGVudC1jb250YWluZXIgbWVtby1jb250ZW50LXRleHRcIlxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7X19odG1sOiBmb3JtYXRNZW1vQ29udGVudChkZW1vTWVtb0NvbnRlbnQpfX0+PC9kaXY+XG4gICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmb3JtLWxhYmVsIGNoZWNrYm94LWZvcm0tbGFiZWxcIiBvbkNsaWNrPXtoYW5kbGVTcGxpdFdvcmRzVmFsdWVDaGFuZ2VkfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPuS4reiLseaWh+WGheWuueiHquWKqOmXtOmalDwvc3Bhbj5cbiAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtzaG91bGRTcGxpdE1lbW9Xb3JkID8gY2hlY2tib3hBY3RpdmUgOiBjaGVja2JveH0gLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWwgY2hlY2tib3gtZm9ybS1sYWJlbFwiIG9uQ2xpY2s9e2hhbmRsZVVzZU1hcmtkb3duUGFyc2VyQ2hhbmdlZH0+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj7pg6jliIYgbWFya2Rvd24g5qC85byP6Kej5p6QPC9zcGFuPlxuICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e3Nob3VsZFVzZU1hcmtkb3duUGFyc2VyID8gY2hlY2tib3hBY3RpdmUgOiBjaGVja2JveH0gLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWwgY2hlY2tib3gtZm9ybS1sYWJlbFwiIG9uQ2xpY2s9e2hhbmRsZUhpZGVJbWFnZVVybFZhbHVlQ2hhbmdlZH0+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj7pmpDol4/lm77niYfpk77mjqXlnLDlnYA8L3NwYW4+XG4gICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17c2hvdWxkSGlkZUltYWdlVXJsID8gY2hlY2tib3hBY3RpdmUgOiBjaGVja2JveH0gLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWNvbnRhaW5lciBwcmVmZXJlbmNlcy1zZWN0aW9uLWNvbnRhaW5lclwiPlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+57yW6L6R5ZmoPC9wPlxuICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZm9ybS1sYWJlbCBjaGVja2JveC1mb3JtLWxhYmVsXCIgb25DbGljaz17aGFuZGxlT3BlblRpbnlVbmRvQ2hhbmdlZH0+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj5cbiAgICAgICAgICAgIOWQr+eUqHsnICd9XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2Jvb2phY2svdGlueS11bmRvXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgIHJlbD1cIm5vcmVmZXJyZXJcIj5cbiAgICAgICAgICAgICAgdGlueS11bmRvXG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e3VzZVRpbnlVbmRvSGlzdG9yeUNhY2hlID8gY2hlY2tib3hBY3RpdmUgOiBjaGVja2JveH0gLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWNvbnRhaW5lciBoaWRkZW5cIj5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGl0bGUtdGV4dFwiPuWFtuS7ljwvcD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidG4tY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gZXhwb3J0LWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUV4cG9ydEJ0bkNsaWNrfT5cbiAgICAgICAgICAgIOWvvOWHuuaVsOaNrihKU09OKVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIHsvKiA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBmb3JtYXQtYnRuXCIgb25DbGljaz17aGFuZGxlRm9ybWF0TWVtb3NCdG5DbGlja30+XG4gICAgICAgICAgICDmoLzlvI/ljJbmlbDmja5cbiAgICAgICAgICA8L2J1dHRvbj4gKi99XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBQcmVmZXJlbmNlc1NlY3Rpb247XG4iLCJpbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gJy4uL3N0b3Jlcy9hcHBDb250ZXh0JztcbmltcG9ydCB7Z2xvYmFsU3RhdGVTZXJ2aWNlLCBtZW1vU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IFByZWZlcmVuY2VzU2VjdGlvbiBmcm9tICcuLi9jb21wb25lbnRzL1ByZWZlcmVuY2VzU2VjdGlvbic7XG5pbXBvcnQgT25seSBmcm9tICcuLi9jb21wb25lbnRzL2NvbW1vbi9Pbmx5V2hlbic7XG5pbXBvcnQgJy4uL2xlc3Mvc2V0dGluZy5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgbWVudVN2ZyBmcm9tICcuLi9pY29ucy9tZW51LnN2Zyc7XG5cbmludGVyZmFjZSBQcm9wcyB7fVxuXG5jb25zdCBTZXR0aW5nOiBSZWFjdC5GQzxQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBnbG9iYWxTdGF0ZToge2lzTW9iaWxlVmlld30sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbWVtb1NlcnZpY2UuZmV0Y2hBbGxNZW1vcygpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlU2hvd1NpZGViYXJCdG5DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0U2hvd1NpZGVyYmFySW5Nb2JpbGVWaWV3KHRydWUpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInByZWZlcmVuY2Utd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9uLWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+XG4gICAgICAgICAgPE9ubHkgd2hlbj17aXNNb2JpbGVWaWV3fT5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYWN0aW9uLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZVNob3dTaWRlYmFyQnRuQ2xpY2t9PlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXttZW51U3ZnfSBhbHQ9XCJtZW51XCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvT25seT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPui0puWPt+S4juiuvue9rjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWN0aW9ucy13cmFwcGVyXCI+XG4gICAgICAgIDxQcmVmZXJlbmNlc1NlY3Rpb24gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2V0dGluZztcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTWVtb3MgZnJvbSAnLi4vcGFnZXMvTWVtb3MnO1xuaW1wb3J0IE1lbW9UcmFzaCBmcm9tICcuLi9wYWdlcy9NZW1vVHJhc2gnO1xuaW1wb3J0IFNldHRpbmcgZnJvbSAnLi4vcGFnZXMvU2V0dGluZyc7XG5cbmNvbnN0IGhvbWVSb3V0ZXIgPSB7XG4gICcvcmVjeWNsZSc6IDxNZW1vVHJhc2ggLz4sXG4gICcvc2V0dGluZyc6IDxTZXR0aW5nIC8+LFxuICAnKic6IDxNZW1vcyAvPixcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGhvbWVSb3V0ZXI7XG4iLCIvLyBpbXBvcnQgYXBwUm91dGVyIGZyb20gXCIuL2FwcFJvdXRlclwiO1xuaW1wb3J0IGhvbWVSb3V0ZXIgZnJvbSAnLi9ob21lUm91dGVyJztcblxuLy8ganVzdCBsaWtlIFJlYWN0LVJvdXRlclxuaW50ZXJmYWNlIFJvdXRlciB7XG4gIFtrZXk6IHN0cmluZ106IEpTWC5FbGVtZW50IHwgbnVsbDtcbiAgJyonOiBKU1guRWxlbWVudCB8IG51bGw7XG59XG5cbmNvbnN0IHJvdXRlclN3aXRjaCA9IChyb3V0ZXI6IFJvdXRlcikgPT4ge1xuICByZXR1cm4gKHBhdGhuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhyb3V0ZXIpKSB7XG4gICAgICBpZiAoa2V5ID09PSBwYXRobmFtZSkge1xuICAgICAgICByZXR1cm4gcm91dGVyW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByb3V0ZXJbJyonXTtcbiAgfTtcbn07XG5cbi8vIGV4cG9ydCBjb25zdCBhcHBSb3V0ZXJTd2l0Y2ggPSByb3V0ZXJTd2l0Y2goYXBwUm91dGVyKTtcbmV4cG9ydCBjb25zdCBob21lUm91dGVyU3dpdGNoID0gcm91dGVyU3dpdGNoKGhvbWVSb3V0ZXIpO1xuIiwiaW1wb3J0IHtzaG93RGlhbG9nfSBmcm9tICcuL0RpYWxvZyc7XG5pbXBvcnQgJy4uL2xlc3MvYWJvdXQtc2l0ZS1kaWFsb2cubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsb3NlIGZyb20gJy4uL2ljb25zL2Nsb3NlLnN2Zyc7XG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIERpYWxvZ1Byb3BzIHt9XG5cbmNvbnN0IEFib3V0U2l0ZURpYWxvZzogUmVhY3QuRkM8UHJvcHM+ID0gKHtkZXN0cm95fTogUHJvcHMpID0+IHtcbiAgY29uc3QgaGFuZGxlQ2xvc2VCdG5DbGljayA9ICgpID0+IHtcbiAgICBkZXN0cm95KCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWFsb2ctaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbi10ZXh0XCI+8J+koDwvc3Bhbj5BYm91dCA8Yj5PYnNpZGlhbi1NZW1vczwvYj5cbiAgICAgICAgPC9wPlxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBjbG9zZS1idG5cIiBvbkNsaWNrPXtoYW5kbGVDbG9zZUJ0bkNsaWNrfT5cbiAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXtjbG9zZX0gLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlhbG9nLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgIEhpLCBJIGFtIFF1b3JhZmluZChCb25pbmFsbCksIGlmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiB0aGlzIHByb2plY3QsIHBsZWFzZSBzdXBwb3J0IG15IHdvcmsgYW5kIGVudGh1c2lhc20gYnlcbiAgICAgICAgYnV5aW5nIG1lIGEgY29mZmVlIG9uIDxhIGhyZWY9XCJodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2JvbmluYWxsXCI+aHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9ib25pbmFsbDwvYT5cbiAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYm9uaW5hbGxcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBzcmM9e2BodHRwczovL2ltZy5idXltZWFjb2ZmZWUuY29tL2J1dHRvbi1hcGkvP3RleHQ9QnV5IG1lIGEgY29mZmVlJmVtb2ppPSZzbHVnPWJvbmluYWxsJmJ1dHRvbl9jb2xvdXI9NjQ5NUVEJmZvbnRfY29sb3VyPWZmZmZmZiZmb250X2ZhbWlseT1MYXRvJm91dGxpbmVfY29sb3VyPTAwMDAwMCZjb2ZmZWVfY29sb3VyPUZGREQwMGB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPHA+XG4gICAgICAgICAg5Z+65LqOIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vanVzdG1lbW9zL21lbW9zXCI+bWVtb3M8L2E+IOW8gOa6kOmhueebruaJgOaehOW7uueahOmhueebruOAgiBOT1RFOiBCYXNlZCBvbnsnICd9XG4gICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9qdXN0bWVtb3MvbWVtb3NcIj5tZW1vczwvYT4gcHJvamVjdCB0byBidWlsZC5cbiAgICAgICAgPC9wPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPHA+XG4gICAgICAgICAg8J+PlyBUaGlzIHByb2plY3QgaXMgd29ya2luZyBpbiBwcm9ncmVzcywgPGJyIC8+IGFuZCB2ZXJ5IHBsZWFzdXJlIHRvIHdlbGNvbWUgeW91cnsnICd9XG4gICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9RdW9yYWZpbmQvb2JzaWRpYW4tbWVtb3MvaXNzdWVzXCI+aXNzdWVzPC9hPiBhbmR7JyAnfVxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vUXVvcmFmaW5kL29ic2lkaWFuLW1lbW9zL3B1bGxzXCI+UHVsbCBSZXF1ZXN0PC9hPi5cbiAgICAgICAgPC9wPlxuICAgICAgICA8aHIgLz5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwibm9ybWFsLXRleHRcIj5cbiAgICAgICAgICBMYXN0IHVwZGF0ZWQgb24gPHNwYW4gY2xhc3NOYW1lPVwicHJlLXRleHRcIj4yMDIyLzAxLzA0IDIyOjU1OjE1PC9zcGFuPiDwn46JXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2hvd0Fib3V0U2l0ZURpYWxvZygpOiB2b2lkIHtcbiAgc2hvd0RpYWxvZyhcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdhYm91dC1zaXRlLWRpYWxvZycsXG4gICAgfSxcbiAgICBBYm91dFNpdGVEaWFsb2csXG4gICk7XG59XG4iLCJpbXBvcnQge3VzZUVmZmVjdCwgdXNlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHNob3dBYm91dFNpdGVEaWFsb2cgZnJvbSAnLi9BYm91dFNpdGVEaWFsb2cnO1xuaW1wb3J0ICcuLi9sZXNzL21lbnUtYnRucy1wb3B1cC5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZGFpbHlOb3Rlc1NlcnZpY2UgZnJvbSAnLi4vc2VydmljZXMvZGFpbHlOb3Rlc1NlcnZpY2UnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBzaG93blN0YXR1czogYm9vbGVhbjtcbiAgc2V0U2hvd25TdGF0dXM6IChzdGF0dXM6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbmNvbnN0IE1lbnVCdG5zUG9wdXA6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3Qge3Nob3duU3RhdHVzLCBzZXRTaG93blN0YXR1c30gPSBwcm9wcztcbiAgY29uc3Qge2FwcH0gPSBkYWlseU5vdGVzU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gIGNvbnN0IHBvcHVwRWxSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNob3duU3RhdHVzKSB7XG4gICAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFwb3B1cEVsUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHNldFNob3duU3RhdHVzKGZhbHNlKTtcbiAgICAgIH07XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3Nob3duU3RhdHVzXSk7XG5cbiAgY29uc3QgaGFuZGxlTXlBY2NvdW50QnRuQ2xpY2sgPSAoKSA9PiB7XG4gICAgYXBwLnNldHRpbmcub3BlbigpO1xuICAgIGFwcC5zZXR0aW5nLm9wZW5UYWJCeUlkKCdvYnNpZGlhbi1tZW1vcycpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU1lbW9zVHJhc2hCdG5DbGljayA9ICgpID0+IHtcbiAgICBsb2NhdGlvblNlcnZpY2UucHVzaEhpc3RvcnkoJy9yZWN5Y2xlJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQWJvdXRCdG5DbGljayA9ICgpID0+IHtcbiAgICBzaG93QWJvdXRTaXRlRGlhbG9nKCk7XG4gIH07XG5cbiAgLy8gY29uc3QgaGFuZGxlU2lnbk91dEJ0bkNsaWNrID0gYXN5bmMgKCkgPT4ge1xuICAvLyAgIGF3YWl0IHVzZXJTZXJ2aWNlLmRvU2lnbk91dCgpO1xuICAvLyB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2BtZW51LWJ0bnMtcG9wdXAgJHtzaG93blN0YXR1cyA/ICcnIDogJ2hpZGRlbid9YH0gcmVmPXtwb3B1cEVsUmVmfT5cbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGFjdGlvbi1idG5cIiBvbkNsaWNrPXtoYW5kbGVNeUFjY291bnRCdG5DbGlja30+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj7wn5GkPC9zcGFuPiBTZXR0aW5nc1xuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBhY3Rpb24tYnRuXCIgb25DbGljaz17aGFuZGxlTWVtb3NUcmFzaEJ0bkNsaWNrfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPvCfl5HvuI88L3NwYW4+IFJlY3ljbGUgYmluXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGFjdGlvbi1idG5cIiBvbkNsaWNrPXtoYW5kbGVBYm91dEJ0bkNsaWNrfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPvCfpKA8L3NwYW4+IEFib3V0IE1FXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIHsvKiA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBhY3Rpb24tYnRuXCIgb25DbGljaz17aGFuZGxlU2lnbk91dEJ0bkNsaWNrfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPvCfkYs8L3NwYW4+IOmAgOWHulxuICAgICAgPC9idXR0b24+ICovfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTWVudUJ0bnNQb3B1cDtcbiIsImltcG9ydCB7SU1BR0VfVVJMX1JFRywgTUFSS0RPV05fVVJMX1JFRywgTUFSS0RPV05fV0VCX1VSTF9SRUcsIFdJS0lfSU1BR0VfVVJMX1JFR30gZnJvbSAnLi4vaGVscGVycy9jb25zdHMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHtmb3JtYXRNZW1vQ29udGVudH0gZnJvbSAnLi9NZW1vJztcbmltcG9ydCBPbmx5IGZyb20gJy4vY29tbW9uL09ubHlXaGVuJztcbmltcG9ydCAnLi4vbGVzcy9kYWlseS1tZW1vLmxlc3MnO1xuaW1wb3J0IFJlYWN0LCB7dXNlQ29udGV4dCwgdXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1RGaWxlLCBWYXVsdCwgQXBwfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgYXBwU3RvcmUgZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlJztcbi8vIGltcG9ydCBhcHBDb250ZXh0IGZyb20gXCIuLi9zdG9yZXMvYXBwQ29udGV4dFwiO1xuLy8gaW1wb3J0IGFwcFN0b3JlIGZyb20gXCIuLi9zdG9yZXMvYXBwU3RvcmVcIjtcbi8vIGltcG9ydCB7IGRhaWx5Tm90ZXNTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzXCI7XG5cbmludGVyZmFjZSBEYWlseU1lbW8gZXh0ZW5kcyBGb3JtYXR0ZWRNZW1vIHtcbiAgdGltZVN0cjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBtZW1vOiBNb2RlbC5NZW1vO1xufVxuXG5pbnRlcmZhY2UgTGlua01hdGNoIHtcbiAgbGlua1RleHQ6IHN0cmluZztcbiAgYWx0VGV4dDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGZpbGVQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0UGF0aE9mSW1hZ2UgPSAodmF1bHQ6IFZhdWx0LCBpbWFnZTogVEZpbGUpID0+IHtcbiAgcmV0dXJuIHZhdWx0LmdldFJlc291cmNlUGF0aChpbWFnZSk7XG59O1xuXG5jb25zdCBkZXRlY3RXaWtpSW50ZXJuYWxMaW5rID0gKGxpbmVUZXh0OiBzdHJpbmcsIGFwcDogQXBwKTogTGlua01hdGNoIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGludGVybmFsRmlsZU5hbWUgPSBXSUtJX0lNQUdFX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/LlsxXTtcbiAgY29uc3QgaW50ZXJuYWxBbHROYW1lID0gV0lLSV9JTUFHRV9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bNV07XG4gIGNvbnN0IGZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChkZWNvZGVVUklDb21wb25lbnQoaW50ZXJuYWxGaWxlTmFtZSksICcnKTtcbiAgaWYgKGZpbGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICBhbHRUZXh0OiBpbnRlcm5hbEFsdE5hbWUsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIGZpbGVQYXRoOiAnJyxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGltYWdlUGF0aCA9IGdldFBhdGhPZkltYWdlKGFwcC52YXVsdCwgZmlsZSk7XG4gICAgaWYgKGludGVybmFsQWx0TmFtZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcbiAgICAgICAgcGF0aDogaW1hZ2VQYXRoLFxuICAgICAgICBmaWxlUGF0aDogZmlsZS5wYXRoLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGlua1RleHQ6IGludGVybmFsRmlsZU5hbWUsXG4gICAgICAgIGFsdFRleHQ6ICcnLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVQYXRoOiBmaWxlLnBhdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgZGV0ZWN0TURJbnRlcm5hbExpbmsgPSAobGluZVRleHQ6IHN0cmluZywgYXBwOiBBcHApOiBMaW5rTWF0Y2ggfCBudWxsID0+IHtcbiAgLy8gY29uc3QgeyBtZXRhZGF0YUNhY2hlLHZhdWx0IH0gPSBhcHBTdG9yZS5nZXRTdGF0ZSgpLmRhaWx5Tm90ZXNTdGF0ZS5hcHA7XG4gIGNvbnN0IGludGVybmFsRmlsZU5hbWUgPSBNQVJLRE9XTl9VUkxfUkVHLmV4ZWMobGluZVRleHQpPy5bNV07XG4gIGNvbnN0IGludGVybmFsQWx0TmFtZSA9IE1BUktET1dOX1VSTF9SRUcuZXhlYyhsaW5lVGV4dCk/LlsyXTtcbiAgY29uc3QgZmlsZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGRlY29kZVVSSUNvbXBvbmVudChpbnRlcm5hbEZpbGVOYW1lKSwgJycpO1xuICBpZiAoZmlsZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgIGFsdFRleHQ6IGludGVybmFsQWx0TmFtZSxcbiAgICAgIHBhdGg6ICcnLFxuICAgICAgZmlsZVBhdGg6ICcnLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgaW1hZ2VQYXRoID0gZ2V0UGF0aE9mSW1hZ2UoYXBwLnZhdWx0LCBmaWxlKTtcbiAgICBpZiAoaW50ZXJuYWxBbHROYW1lKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgICAgYWx0VGV4dDogaW50ZXJuYWxBbHROYW1lLFxuICAgICAgICBwYXRoOiBpbWFnZVBhdGgsXG4gICAgICAgIGZpbGVQYXRoOiBmaWxlLnBhdGgsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5rVGV4dDogaW50ZXJuYWxGaWxlTmFtZSxcbiAgICAgICAgYWx0VGV4dDogJycsXG4gICAgICAgIHBhdGg6IGltYWdlUGF0aCxcbiAgICAgICAgZmlsZVBhdGg6IGZpbGUucGF0aCxcbiAgICAgIH07XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBEYWlseU1lbW86IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgLy8gY29uc3QgcGx1Z2luID0gTWVtb3NQbHVnaW47XG4gIGNvbnN0IHthcHB9ID0gYXBwU3RvcmUuZ2V0U3RhdGUoKS5kYWlseU5vdGVzU3RhdGU7XG4gIGNvbnN0IHttZW1vOiBwcm9wc01lbW99ID0gcHJvcHM7XG4gIGNvbnN0IG1lbW86IERhaWx5TWVtbyA9IHtcbiAgICAuLi5wcm9wc01lbW8sXG4gICAgY3JlYXRlZEF0U3RyOiB1dGlscy5nZXREYXRlVGltZVN0cmluZyhwcm9wc01lbW8uY3JlYXRlZEF0KSxcbiAgICB0aW1lU3RyOiB1dGlscy5nZXRUaW1lU3RyaW5nKHByb3BzTWVtby5jcmVhdGVkQXQpLFxuICB9O1xuICBsZXQgZXh0ZXJuYWxJbWFnZVVybHMgPSBbXSBhcyBzdHJpbmdbXTtcbiAgbGV0IGludGVybmFsSW1hZ2VVcmxzID0gW107XG4gIGxldCBhbGxNYXJrZG93bkxpbms6IHN0cmluZyB8IGFueVtdID0gW107XG4gIGxldCBhbGxJbnRlcm5hbExpbmsgPSBbXSBhcyBhbnlbXTtcbiAgaWYgKElNQUdFX1VSTF9SRUcudGVzdChtZW1vLmNvbnRlbnQpKSB7XG4gICAgbGV0IGFsbEV4dGVybmFsSW1hZ2VVcmxzID0gW10gYXMgc3RyaW5nW107XG4gICAgbGV0IGFub3RoZXJFeHRlcm5hbEltYWdlVXJscyA9IFtdIGFzIHN0cmluZ1tdO1xuICAgIGlmIChNQVJLRE9XTl9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSkge1xuICAgICAgYWxsTWFya2Rvd25MaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTUFSS0RPV05fVVJMX1JFRykpO1xuICAgIH1cbiAgICBpZiAoV0lLSV9JTUFHRV9VUkxfUkVHLnRlc3QobWVtby5jb250ZW50KSkge1xuICAgICAgYWxsSW50ZXJuYWxMaW5rID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goV0lLSV9JTUFHRV9VUkxfUkVHKSk7XG4gICAgfVxuICAgIC8vIGNvbnN0IGFsbEludGVybmFsTGluayA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKFdJS0lfSU1BR0VfVVJMX1JFRykpO1xuICAgIGlmIChNQVJLRE9XTl9XRUJfVVJMX1JFRy50ZXN0KG1lbW8uY29udGVudCkpIHtcbiAgICAgIGFsbEV4dGVybmFsSW1hZ2VVcmxzID0gQXJyYXkuZnJvbShtZW1vLmNvbnRlbnQubWF0Y2goTUFSS0RPV05fV0VCX1VSTF9SRUcpKTtcbiAgICB9XG4gICAgaWYgKGFsbEludGVybmFsTGluay5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsSW50ZXJuYWxMaW5rLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBvbmUgPSBhbGxJbnRlcm5hbExpbmtbaV07XG4gICAgICAgIGludGVybmFsSW1hZ2VVcmxzLnB1c2goZGV0ZWN0V2lraUludGVybmFsTGluayhvbmUsIGFwcCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxsTWFya2Rvd25MaW5rLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxNYXJrZG93bkxpbmsubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IHR3byA9IGFsbE1hcmtkb3duTGlua1tpXTtcbiAgICAgICAgaWYgKC8oLiopaHR0cFtzXT8oLiopLy50ZXN0KHR3bykpIHtcbiAgICAgICAgICBhbm90aGVyRXh0ZXJuYWxJbWFnZVVybHMucHVzaChNQVJLRE9XTl9VUkxfUkVHLmV4ZWModHdvKT8uWzVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbnRlcm5hbEltYWdlVXJscy5wdXNoKGRldGVjdE1ESW50ZXJuYWxMaW5rKHR3bywgYXBwKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuYWxJbWFnZVVybHMgPSBhbGxFeHRlcm5hbEltYWdlVXJscy5jb25jYXQoYW5vdGhlckV4dGVybmFsSW1hZ2VVcmxzKTtcbiAgICAvLyBleHRlcm5hbEltYWdlVXJscyA9IEFycmF5LmZyb20obWVtby5jb250ZW50Lm1hdGNoKElNQUdFX1VSTF9SRUcpID8/IFtdKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJkYWlseS1tZW1vLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZS13cmFwcGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+e21lbW8udGltZVN0cn08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVtby1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lbW8tY29udGVudC10ZXh0XCIgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tfX2h0bWw6IGZvcm1hdE1lbW9Db250ZW50KG1lbW8uY29udGVudCl9fT48L2Rpdj5cbiAgICAgICAgPE9ubHkgd2hlbj17ZXh0ZXJuYWxJbWFnZVVybHMubGVuZ3RoID4gMH0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICB7ZXh0ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICA8aW1nIGtleT17aWR4fSBzcmM9e2ltZ1VybH0gcmVmZXJyZXJQb2xpY3k9XCJuby1yZWZlcnJlclwiIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Pbmx5PlxuICAgICAgICA8T25seSB3aGVuPXtpbnRlcm5hbEltYWdlVXJscy5sZW5ndGggPiAwfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlcy1jb250YWluZXIgaW50ZXJuYWwtZW1iZWQgaW1hZ2UtZW1iZWQgaXMtbG9hZGVkXCI+XG4gICAgICAgICAgICB7aW50ZXJuYWxJbWFnZVVybHMubWFwKChpbWdVcmwsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICA8aW1nIGtleT17aWR4fSBzcmM9e2ltZ1VybC5wYXRofSBhbHQ9e2ltZ1VybC5hbHRUZXh0fSBwYXRoPXtpbWdVcmwuZmlsZVBhdGh9IC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Pbmx5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYWlseU1lbW87XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0RBSUxZX1RJTUVTVEFNUH0gZnJvbSAnLi4vLi4vaGVscGVycy9jb25zdHMnO1xuaW1wb3J0ICcuLi8uLi9sZXNzL2NvbW1vbi9kYXRlLXBpY2tlci5sZXNzJztcbmltcG9ydCBhcnJvd0xlZnQgZnJvbSAnLi4vLi4vaWNvbnMvYXJyb3ctbGVmdC5zdmcnO1xuaW1wb3J0IGFycm93UmlnaHQgZnJvbSAnLi4vLi4vaWNvbnMvYXJyb3ctcmlnaHQuc3ZnJztcblxuaW50ZXJmYWNlIERhdGVQaWNrZXJQcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGF0ZXN0YW1wOiBEYXRlU3RhbXA7XG4gIGhhbmRsZURhdGVTdGFtcENoYW5nZTogKGRhdGFzdGFtcDogRGF0ZVN0YW1wKSA9PiB2b2lkO1xufVxuXG5jb25zdCBEYXRlUGlja2VyOiBSZWFjdC5GQzxEYXRlUGlja2VyUHJvcHM+ID0gKHByb3BzOiBEYXRlUGlja2VyUHJvcHMpID0+IHtcbiAgY29uc3Qge2NsYXNzTmFtZSwgZGF0ZXN0YW1wLCBoYW5kbGVEYXRlU3RhbXBDaGFuZ2V9ID0gcHJvcHM7XG4gIGNvbnN0IFtjdXJyZW50RGF0ZVN0YW1wLCBzZXRDdXJyZW50RGF0ZVN0YW1wXSA9IHVzZVN0YXRlPERhdGVTdGFtcD4oZ2V0TW9udGhGaXJzdERheURhdGVTdGFtcChkYXRlc3RhbXApKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEN1cnJlbnREYXRlU3RhbXAoZ2V0TW9udGhGaXJzdERheURhdGVTdGFtcChkYXRlc3RhbXApKTtcbiAgfSwgW2RhdGVzdGFtcF0pO1xuXG4gIGNvbnN0IGZpcnN0RGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnREYXRlU3RhbXApO1xuICBjb25zdCBmaXJzdERhdGVEYXkgPSBmaXJzdERhdGUuZ2V0RGF5KCkgPT09IDAgPyA3IDogZmlyc3REYXRlLmdldERheSgpO1xuICBjb25zdCBkYXlMaXN0ID0gW107XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgZmlyc3REYXRlRGF5OyBpKyspIHtcbiAgICBkYXlMaXN0LnB1c2goe1xuICAgICAgZGF0ZTogMCxcbiAgICAgIGRhdGVzdGFtcDogZmlyc3REYXRlLmdldFRpbWUoKSAtIERBSUxZX1RJTUVTVEFNUCAqICg3IC0gaSksXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgZGF5QW1vdW50ID0gZ2V0TW9udGhEYXlBbW91bnQoY3VycmVudERhdGVTdGFtcCk7XG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IGRheUFtb3VudDsgaSsrKSB7XG4gICAgZGF5TGlzdC5wdXNoKHtcbiAgICAgIGRhdGU6IGksXG4gICAgICBkYXRlc3RhbXA6IGZpcnN0RGF0ZS5nZXRUaW1lKCkgKyBEQUlMWV9USU1FU1RBTVAgKiAoaSAtIDEpLFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgaGFuZGxlRGF0ZUl0ZW1DbGljayA9IChkYXRlc3RhbXA6IERhdGVTdGFtcCkgPT4ge1xuICAgIGhhbmRsZURhdGVTdGFtcENoYW5nZShkYXRlc3RhbXApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZU1vbnRoQnRuQ2xpY2sgPSAoaTogLTEgfCAxKSA9PiB7XG4gICAgY29uc3QgeWVhciA9IGZpcnN0RGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gZmlyc3REYXRlLmdldE1vbnRoKCkgKyAxO1xuICAgIGxldCBuZXh0RGF0ZVN0YW1wID0gMDtcbiAgICBpZiAobW9udGggPT09IDEgJiYgaSA9PT0gLTEpIHtcbiAgICAgIG5leHREYXRlU3RhbXAgPSBuZXcgRGF0ZShgJHt5ZWFyIC0gMX0vMTIvMWApLmdldFRpbWUoKTtcbiAgICB9IGVsc2UgaWYgKG1vbnRoID09PSAxMiAmJiBpID09PSAxKSB7XG4gICAgICBuZXh0RGF0ZVN0YW1wID0gbmV3IERhdGUoYCR7eWVhciArIDF9LzEvMWApLmdldFRpbWUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dERhdGVTdGFtcCA9IG5ldyBEYXRlKGAke3llYXJ9LyR7bW9udGggKyBpfS8xYCkuZ2V0VGltZSgpO1xuICAgIH1cbiAgICBzZXRDdXJyZW50RGF0ZVN0YW1wKGdldE1vbnRoRmlyc3REYXlEYXRlU3RhbXAobmV4dERhdGVTdGFtcCkpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2BkYXRlLXBpY2tlci13cmFwcGVyICR7Y2xhc3NOYW1lfWB9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlLXBpY2tlci1oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuLXRleHRcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDaGFuZ2VNb250aEJ0bkNsaWNrKC0xKX0+XG4gICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17YXJyb3dMZWZ0fSAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+XG4gICAgICAgICAge2ZpcnN0RGF0ZS5nZXRGdWxsWWVhcigpfSDlubQge2ZpcnN0RGF0ZS5nZXRNb250aCgpICsgMX0g5pyIXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuLXRleHRcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDaGFuZ2VNb250aEJ0bkNsaWNrKDEpfT5cbiAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXthcnJvd1JpZ2h0fSAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZS1waWNrZXItZGF5LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUtcGlja2VyLWRheS1oZWFkZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOS4gDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOS6jDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOS4iTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOWbmzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOS6lDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOWFrTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkYXktaXRlbVwiPuWRqOaXpTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge2RheUxpc3QubWFwKChkKSA9PiB7XG4gICAgICAgICAgaWYgKGQuZGF0ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPHNwYW4ga2V5PXtkLmRhdGVzdGFtcH0gY2xhc3NOYW1lPVwiZGF5LWl0ZW0gbnVsbFwiPlxuICAgICAgICAgICAgICAgIHsnJ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBrZXk9e2QuZGF0ZXN0YW1wfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGRheS1pdGVtICR7ZC5kYXRlc3RhbXAgPT09IGRhdGVzdGFtcCA/ICdjdXJyZW50JyA6ICcnfWB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRGF0ZUl0ZW1DbGljayhkLmRhdGVzdGFtcCl9PlxuICAgICAgICAgICAgICAgIHtkLmRhdGV9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZnVuY3Rpb24gZ2V0TW9udGhEYXlBbW91bnQoZGF0ZXN0YW1wOiBEYXRlU3RhbXApOiBudW1iZXIge1xuICBjb25zdCBkYXRlVGVtcCA9IG5ldyBEYXRlKGRhdGVzdGFtcCk7XG4gIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoYCR7ZGF0ZVRlbXAuZ2V0RnVsbFllYXIoKX0vJHtkYXRlVGVtcC5nZXRNb250aCgpICsgMX0vMWApO1xuICBjb25zdCBuZXh0TW9udGhEYXRlID1cbiAgICBjdXJyZW50RGF0ZS5nZXRNb250aCgpID09PSAxMVxuICAgICAgPyBuZXcgRGF0ZShgJHtjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpICsgMX0vMS8xYClcbiAgICAgIDogbmV3IERhdGUoYCR7Y3VycmVudERhdGUuZ2V0RnVsbFllYXIoKX0vJHtjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgMn0vMWApO1xuXG4gIHJldHVybiAobmV4dE1vbnRoRGF0ZS5nZXRUaW1lKCkgLSBjdXJyZW50RGF0ZS5nZXRUaW1lKCkpIC8gREFJTFlfVElNRVNUQU1QO1xufVxuXG5mdW5jdGlvbiBnZXRNb250aEZpcnN0RGF5RGF0ZVN0YW1wKHRpbWVzdGFtcDogVGltZVN0YW1wKTogRGF0ZVN0YW1wIHtcbiAgY29uc3QgZGF0ZVRlbXAgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKGAke2RhdGVUZW1wLmdldEZ1bGxZZWFyKCl9LyR7ZGF0ZVRlbXAuZ2V0TW9udGgoKSArIDF9LzFgKTtcbiAgcmV0dXJuIGN1cnJlbnREYXRlLmdldFRpbWUoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVBpY2tlcjtcbiIsImltcG9ydCB7dXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge21lbW9TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgdG9JbWFnZSBmcm9tICcuLi9sYWJzL2h0bWwyaW1hZ2UnO1xuaW1wb3J0IHVzZVRvZ2dsZSBmcm9tICcuLi9ob29rcy91c2VUb2dnbGUnO1xuaW1wb3J0IHVzZUxvYWRpbmcgZnJvbSAnLi4vaG9va3MvdXNlTG9hZGluZyc7XG5pbXBvcnQge0RBSUxZX1RJTUVTVEFNUH0gZnJvbSAnLi4vaGVscGVycy9jb25zdHMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHtzaG93RGlhbG9nfSBmcm9tICcuL0RpYWxvZyc7XG5pbXBvcnQgc2hvd1ByZXZpZXdJbWFnZURpYWxvZyBmcm9tICcuL1ByZXZpZXdJbWFnZURpYWxvZyc7XG5pbXBvcnQgRGFpbHlNZW1vIGZyb20gJy4vRGFpbHlNZW1vJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vY29tbW9uL0RhdGVQaWNrZXInO1xuaW1wb3J0ICcuLi9sZXNzL2RhaWx5LW1lbW8tZGlhcnktZGlhbG9nLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbG9zZSBmcm9tICcuLi9pY29ucy9jbG9zZS5zdmcnO1xuaW1wb3J0IGFycm93TGVmdCBmcm9tICcuLi9pY29ucy9hcnJvdy1sZWZ0LnN2Zyc7XG5pbXBvcnQgYXJyb3dSaWdodCBmcm9tICcuLi9pY29ucy9hcnJvdy1yaWdodC5zdmcnO1xuaW1wb3J0IHNoYXJlIGZyb20gJy4uL2ljb25zL3NoYXJlLnN2Zyc7XG5pbXBvcnQgaTE4bmV4dCBmcm9tICdpMThuZXh0JztcblxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgRGlhbG9nUHJvcHMge1xuICBjdXJyZW50RGF0ZVN0YW1wOiBEYXRlU3RhbXA7XG59XG5cbmNvbnN0IERhaWx5TWVtb0RpYXJ5RGlhbG9nOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvYWRpbmdTdGF0ZSA9IHVzZUxvYWRpbmcoKTtcbiAgY29uc3QgW21lbW9zLCBzZXRNZW1vc10gPSB1c2VTdGF0ZTxNb2RlbC5NZW1vW10+KFtdKTtcbiAgY29uc3QgW2N1cnJlbnREYXRlU3RhbXAsIHNldEN1cnJlbnREYXRlU3RhbXBdID0gdXNlU3RhdGUoXG4gICAgdXRpbHMuZ2V0RGF0ZVN0YW1wQnlEYXRlKHV0aWxzLmdldERhdGVTdHJpbmcocHJvcHMuY3VycmVudERhdGVTdGFtcCkpLFxuICApO1xuICBjb25zdCBbc2hvd0RhdGVQaWNrZXIsIHRvZ2dsZVNob3dEYXRlUGlja2VyXSA9IHVzZVRvZ2dsZShmYWxzZSk7XG4gIGNvbnN0IG1lbW9zRWxSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnREYXRlU3RhbXApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2V0RGFpbHlNZW1vcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGRhaWx5TWVtb3MgPSBtZW1vU2VydmljZVxuICAgICAgICAuZ2V0U3RhdGUoKVxuICAgICAgICAubWVtb3MuZmlsdGVyKFxuICAgICAgICAgIChhKSA9PlxuICAgICAgICAgICAgdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSA+PSBjdXJyZW50RGF0ZVN0YW1wICYmXG4gICAgICAgICAgICB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoYS5jcmVhdGVkQXQpIDwgY3VycmVudERhdGVTdGFtcCArIERBSUxZX1RJTUVTVEFNUCxcbiAgICAgICAgKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEuY3JlYXRlZEF0KSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLmNyZWF0ZWRBdCkpO1xuICAgICAgc2V0TWVtb3MoZGFpbHlNZW1vcyk7XG4gICAgICBsb2FkaW5nU3RhdGUuc2V0RmluaXNoKCk7XG4gICAgfTtcblxuICAgIHNldERhaWx5TWVtb3MoKTtcbiAgfSwgW2N1cnJlbnREYXRlU3RhbXBdKTtcblxuICBjb25zdCBoYW5kbGVTaGFyZUJ0bkNsaWNrID0gKCkgPT4ge1xuICAgIHRvZ2dsZVNob3dEYXRlUGlja2VyKGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCFtZW1vc0VsUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0b0ltYWdlKG1lbW9zRWxSZWYuY3VycmVudCwge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgcGl4ZWxSYXRpbzogd2luZG93LmRldmljZVBpeGVsUmF0aW8gKiAyLFxuICAgICAgfSlcbiAgICAgICAgLnRoZW4oKHVybCkgPT4ge1xuICAgICAgICAgIHNob3dQcmV2aWV3SW1hZ2VEaWFsb2codXJsKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAvLyBkbyBudGhcbiAgICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGF0YVBpY2tlckNoYW5nZSA9IChkYXRlc3RhbXA6IERhdGVTdGFtcCk6IHZvaWQgPT4ge1xuICAgIHNldEN1cnJlbnREYXRlU3RhbXAoZGF0ZXN0YW1wKTtcbiAgICB0b2dnbGVTaG93RGF0ZVBpY2tlcihmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWFsb2ctaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci13cmFwcGVyXCI+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGl0bGUtdGV4dFwiPkRhaWx5IE1lbW9zPC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRucy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0bi10ZXh0XCIgb25DbGljaz17KCkgPT4gc2V0Q3VycmVudERhdGVTdGFtcChjdXJyZW50RGF0ZVN0YW1wIC0gREFJTFlfVElNRVNUQU1QKX0+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Fycm93TGVmdH0gLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0bi10ZXh0XCIgb25DbGljaz17KCkgPT4gc2V0Q3VycmVudERhdGVTdGFtcChjdXJyZW50RGF0ZVN0YW1wICsgREFJTFlfVElNRVNUQU1QKX0+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Fycm93UmlnaHR9IC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tdGV4dCBzaGFyZS1idG5cIiBvbkNsaWNrPXtoYW5kbGVTaGFyZUJ0bkNsaWNrfT5cbiAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17c2hhcmV9IC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tdGV4dFwiIG9uQ2xpY2s9eygpID0+IHByb3BzLmRlc3Ryb3koKX0+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2Nsb3NlfSAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWFsb2ctY29udGVudC1jb250YWluZXJcIiByZWY9e21lbW9zRWxSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUtY2FyZC1jb250YWluZXJcIiBvbkNsaWNrPXsoKSA9PiB0b2dnbGVTaG93RGF0ZVBpY2tlcigpfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInllYXItdGV4dFwiPntjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpfTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9udGgtdGV4dFwiPntpMThuZXh0LnQoJ21vbnRocycsIHtyZXR1cm5PYmplY3RzOiB0cnVlfSlbY3VycmVudERhdGUuZ2V0TW9udGgoKV19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGUtdGV4dFwiPntjdXJyZW50RGF0ZS5nZXREYXRlKCl9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRheS10ZXh0XCI+e2kxOG5leHQudCgnd2Vla0RheXMnLCB7cmV0dXJuT2JqZWN0czogdHJ1ZX0pW2N1cnJlbnREYXRlLmdldERheSgpXX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxEYXRlUGlja2VyXG4gICAgICAgICAgY2xhc3NOYW1lPXtgZGF0ZS1waWNrZXIgJHtzaG93RGF0ZVBpY2tlciA/ICcnIDogJ2hpZGRlbid9YH1cbiAgICAgICAgICBkYXRlc3RhbXA9e2N1cnJlbnREYXRlU3RhbXB9XG4gICAgICAgICAgaGFuZGxlRGF0ZVN0YW1wQ2hhbmdlPXtoYW5kbGVEYXRhUGlja2VyQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgICB7bG9hZGluZ1N0YXRlLmlzTG9hZGluZyA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+5Yqq5Yqb5Yqg6L295LitLi4uPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbWVtb3MubGVuZ3RoID09PSAwID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGlwLXRleHRcIj5Ob29vb3AhPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGFpbHltZW1vcy13cmFwcGVyXCI+XG4gICAgICAgICAgICB7bWVtb3MubWFwKChtZW1vKSA9PiAoXG4gICAgICAgICAgICAgIDxEYWlseU1lbW8ga2V5PXtgJHttZW1vLmlkfS0ke21lbW8udXBkYXRlZEF0fWB9IG1lbW89e21lbW99IC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2hvd0RhaWx5TWVtb0RpYXJ5RGlhbG9nKGRhdGVzdGFtcDogRGF0ZVN0YW1wID0gRGF0ZS5ub3coKSk6IHZvaWQge1xuICBzaG93RGlhbG9nKFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2RhaWx5LW1lbW8tZGlhcnktZGlhbG9nJyxcbiAgICB9LFxuICAgIERhaWx5TWVtb0RpYXJ5RGlhbG9nLFxuICAgIHtjdXJyZW50RGF0ZVN0YW1wOiBkYXRlc3RhbXB9LFxuICApO1xufVxuIiwiaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gJy4uL3N0b3Jlcy9hcHBDb250ZXh0JztcbmltcG9ydCB7bG9jYXRpb25TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQgTWVudUJ0bnNQb3B1cCBmcm9tICcuL01lbnVCdG5zUG9wdXAnO1xuaW1wb3J0IHNob3dEYWlseU1lbW9EaWFyeURpYWxvZyBmcm9tICcuL0RhaWx5TWVtb0RpYXJ5RGlhbG9nJztcbmltcG9ydCAnLi4vbGVzcy91c2VyLWJhbm5lci5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1VzZXJOYW1lfSBmcm9tICcuLi9tZW1vcyc7XG5pbXBvcnQgbW9yZSBmcm9tICcuLi9pY29ucy9tb3JlLnN2Zyc7XG5cbmludGVyZmFjZSBQcm9wcyB7fVxuXG5jb25zdCBVc2VyQmFubmVyOiBSZWFjdC5GQzxQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBtZW1vU3RhdGU6IHttZW1vcywgdGFnc30sXG4gICAgdXNlclN0YXRlOiB7dXNlcn0sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBjb25zdCB1c2VybmFtZSA9IHVzZXIgPyB1c2VyLnVzZXJuYW1lIDogVXNlck5hbWU7XG4gIGxldCBtZW1vc0xlbmd0aDtcbiAgbGV0IGNyZWF0ZWREYXlzO1xuICBpZiAobWVtb3MubGVuZ3RoKSB7XG4gICAgbWVtb3NMZW5ndGggPSBtZW1vcy5sZW5ndGggLSAxO1xuICAgIGNyZWF0ZWREYXlzID0gbWVtb3NcbiAgICAgID8gTWF0aC5jZWlsKChEYXRlLm5vdygpIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKG1lbW9zW21lbW9zTGVuZ3RoXS5jcmVhdGVkQXQpKSAvIDEwMDAgLyAzNjAwIC8gMjQpXG4gICAgICA6IDA7XG4gIH1cbiAgLy8gY29uc3QgZmlyc3RNZW1vID0gbWVtb3NbXSBhcyBNb2RlbC5NZW1vO1xuXG4gIGNvbnN0IFtzaG91bGRTaG93UG9wdXBCdG5zLCBzZXRTaG91bGRTaG93UG9wdXBCdG5zXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBoYW5kbGVVc2VybmFtZUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvY2F0aW9uU2VydmljZS5wdXNoSGlzdG9yeSgnLycpO1xuICAgIGxvY2F0aW9uU2VydmljZS5jbGVhclF1ZXJ5KCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVQb3B1cEJ0bkNsaWNrID0gKCkgPT4ge1xuICAgIGNvbnN0IHNpZGViYXJFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tZW1vcy1zaWRlYmFyLXdyYXBwZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBwb3B1cEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lbnUtYnRucy1wb3B1cCcpIGFzIEhUTUxFbGVtZW50O1xuICAgIHBvcHVwRWwuc3R5bGUudG9wID0gNzAgLSBzaWRlYmFyRWwuc2Nyb2xsVG9wICsgJ3B4JztcbiAgICBzZXRTaG91bGRTaG93UG9wdXBCdG5zKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ1c2VyLWJhbm5lci1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXNlcmluZm8taGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ1c2VybmFtZS10ZXh0XCIgb25DbGljaz17aGFuZGxlVXNlcm5hbWVDbGlja30+XG4gICAgICAgICAge3VzZXJuYW1lfVxuICAgICAgICA8L3A+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFjdGlvbi1idG4gbWVudS1wb3B1cC1idG5cIiBvbkNsaWNrPXtoYW5kbGVQb3B1cEJ0bkNsaWNrfT5cbiAgICAgICAgICA8aW1nIHNyYz17bW9yZX0gY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxNZW51QnRuc1BvcHVwIHNob3duU3RhdHVzPXtzaG91bGRTaG93UG9wdXBCdG5zfSBzZXRTaG93blN0YXR1cz17c2V0U2hvdWxkU2hvd1BvcHVwQnRuc30gLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF0dXMtdGV4dC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF0dXMtdGV4dCBtZW1vcy10ZXh0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYW1vdW50LXRleHRcIj57bWVtb3MubGVuZ3RofTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0eXBlLXRleHRcIj5NRU1PPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF0dXMtdGV4dCB0YWdzLXRleHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJhbW91bnQtdGV4dFwiPnt0YWdzLmxlbmd0aH08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidHlwZS10ZXh0XCI+VEFHPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF0dXMtdGV4dCBkdXJhdGlvbi10ZXh0XCIgb25DbGljaz17KCkgPT4gc2hvd0RhaWx5TWVtb0RpYXJ5RGlhbG9nKCl9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFtb3VudC10ZXh0XCI+e2NyZWF0ZWREYXlzfTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0eXBlLXRleHRcIj5EQVk8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyQmFubmVyO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7bWVtbywgdXNlRWZmZWN0LCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VUb2dnbGUgZnJvbSAnLi4vLi4vaG9va3MvdXNlVG9nZ2xlJztcbmltcG9ydCAnLi4vLi4vbGVzcy9jb21tb24vc2VsZWN0b3IubGVzcyc7XG4vLyBpbXBvcnQgYXJyb3dMZWZ0IGZyb20gJy4uLy4uL2ljb25zL2Fycm93LWxlZnQuc3ZnJztcbmltcG9ydCBhcnJvd1JpZ2h0IGZyb20gJy4uLy4uL2ljb25zL2Fycm93LXJpZ2h0LnN2Zyc7XG5cbmludGVyZmFjZSBUVk9iamVjdCB7XG4gIHRleHQ6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBkYXRhU291cmNlOiBUVk9iamVjdFtdO1xuICBoYW5kbGVWYWx1ZUNoYW5nZWQ/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuY29uc3QgbnVsbEl0ZW0gPSB7XG4gIHRleHQ6ICdTRUxFQ1QnLFxuICB2YWx1ZTogJycsXG59O1xuXG5jb25zdCBTZWxlY3RvcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCB7Y2xhc3NOYW1lLCBkYXRhU291cmNlLCBoYW5kbGVWYWx1ZUNoYW5nZWQsIHZhbHVlfSA9IHByb3BzO1xuICBjb25zdCBbc2hvd1NlbGVjdG9yLCB0b2dnbGVTZWxlY3RvclN0YXR1c10gPSB1c2VUb2dnbGUoZmFsc2UpO1xuXG4gIGNvbnN0IHNlbGV0b3JFbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgbGV0IGN1cnJlbnRJdGVtID0gbnVsbEl0ZW07XG4gIGZvciAoY29uc3QgZCBvZiBkYXRhU291cmNlKSB7XG4gICAgaWYgKGQudmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICBjdXJyZW50SXRlbSA9IGQ7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzaG93U2VsZWN0b3IpIHtcbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIXNlbGV0b3JFbFJlZi5jdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICB0b2dnbGVTZWxlY3RvclN0YXR1cyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3Nob3dTZWxlY3Rvcl0pO1xuXG4gIGNvbnN0IGhhbmRsZUl0ZW1DbGljayA9IChpdGVtOiBUVk9iamVjdCkgPT4ge1xuICAgIGlmIChoYW5kbGVWYWx1ZUNoYW5nZWQpIHtcbiAgICAgIGhhbmRsZVZhbHVlQ2hhbmdlZChpdGVtLnZhbHVlKTtcbiAgICB9XG4gICAgdG9nZ2xlU2VsZWN0b3JTdGF0dXMoZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUN1cnJlbnRWYWx1ZUNsaWNrID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdG9nZ2xlU2VsZWN0b3JTdGF0dXMoKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgc2VsZWN0b3Itd3JhcHBlciAke2NsYXNzTmFtZSA/PyAnJ31gfSByZWY9e3NlbGV0b3JFbFJlZn0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YGN1cnJlbnQtdmFsdWUtY29udGFpbmVyICR7c2hvd1NlbGVjdG9yID8gJ2FjdGl2ZScgOiAnJ31gfSBvbkNsaWNrPXtoYW5kbGVDdXJyZW50VmFsdWVDbGlja30+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInZhbHVlLXRleHRcIj57Y3VycmVudEl0ZW0udGV4dH08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFycm93LXRleHRcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImljb24taW1nXCIgc3JjPXthcnJvd1JpZ2h0fSAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9e2BpdGVtcy13cmFwcGVyICR7c2hvd1NlbGVjdG9yID8gJycgOiAnaGlkZGVuJ31gfT5cbiAgICAgICAge2RhdGFTb3VyY2UubWFwKChkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgaXRlbS1jb250YWluZXIgJHtkLnZhbHVlID09PSB2YWx1ZSA/ICdzZWxlY3RlZCcgOiAnJ31gfVxuICAgICAgICAgICAgICBrZXk9e2QudmFsdWV9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVJdGVtQ2xpY2soZCk7XG4gICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICB7ZC50ZXh0fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0b3IpO1xuIiwiaW1wb3J0IHttZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHttZW1vU2VydmljZSwgcXVlcnlTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQge2NoZWNrU2hvdWxkU2hvd01lbW9XaXRoRmlsdGVycywgZmlsdGVyQ29uc3RzLCBnZXREZWZhdWx0RmlsdGVyLCByZWxhdGlvbkNvbnN0c30gZnJvbSAnLi4vaGVscGVycy9maWx0ZXInO1xuaW1wb3J0IHVzZUxvYWRpbmcgZnJvbSAnLi4vaG9va3MvdXNlTG9hZGluZyc7XG5pbXBvcnQge3Nob3dEaWFsb2d9IGZyb20gJy4vRGlhbG9nJztcbmltcG9ydCBTZWxlY3RvciBmcm9tICcuL2NvbW1vbi9TZWxlY3Rvcic7XG5pbXBvcnQgJy4uL2xlc3MvY3JlYXRlLXF1ZXJ5LWRpYWxvZy5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge05vdGljZX0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IGNsb3NlIGZyb20gJy4uL2ljb25zL2Nsb3NlLnN2Zyc7XG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIERpYWxvZ1Byb3BzIHtcbiAgcXVlcnlJZD86IHN0cmluZztcbn1cblxuY29uc3QgQ3JlYXRlUXVlcnlEaWFsb2c6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3Qge2Rlc3Ryb3ksIHF1ZXJ5SWR9ID0gcHJvcHM7XG5cbiAgY29uc3QgW3RpdGxlLCBzZXRUaXRsZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW2ZpbHRlcnMsIHNldEZpbHRlcnNdID0gdXNlU3RhdGU8RmlsdGVyW10+KFtdKTtcbiAgY29uc3QgcmVxdWVzdFN0YXRlID0gdXNlTG9hZGluZyhmYWxzZSk7XG5cbiAgY29uc3Qgc2hvd25NZW1vTGVuZ3RoID0gbWVtb1NlcnZpY2UuZ2V0U3RhdGUoKS5tZW1vcy5maWx0ZXIoKG1lbW8pID0+IHtcbiAgICByZXR1cm4gY2hlY2tTaG91bGRTaG93TWVtb1dpdGhGaWx0ZXJzKG1lbW8sIGZpbHRlcnMpO1xuICB9KS5sZW5ndGg7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBxdWVyeVRlbXAgPSBxdWVyeVNlcnZpY2UuZ2V0UXVlcnlCeUlkKHF1ZXJ5SWQgPz8gJycpO1xuICAgIGlmIChxdWVyeVRlbXApIHtcbiAgICAgIHNldFRpdGxlKHF1ZXJ5VGVtcC50aXRsZSk7XG4gICAgICBjb25zdCB0ZW1wID0gSlNPTi5wYXJzZShxdWVyeVRlbXAucXVlcnlzdHJpbmcpO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGVtcCkpIHtcbiAgICAgICAgc2V0RmlsdGVycyh0ZW1wKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtxdWVyeUlkXSk7XG5cbiAgY29uc3QgaGFuZGxlVGl0bGVJbnB1dENoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHRleHQgPSBlLnRhcmdldC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgc2V0VGl0bGUodGV4dCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2F2ZUJ0bkNsaWNrID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghdGl0bGUpIHtcbiAgICAgIG5ldyBOb3RpY2UoJ1RJVExFIENBTk5PVCBCRSBOVUxM77yBJyk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChmaWx0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbmV3IE5vdGljZSgnRklMVEVSIENBTk5PVCBCRSBOVUxM77yBJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChxdWVyeUlkKSB7XG4gICAgICAgIGNvbnN0IGVkaXRlZFF1ZXJ5ID0gYXdhaXQgcXVlcnlTZXJ2aWNlLnVwZGF0ZVF1ZXJ5KHF1ZXJ5SWQsIHRpdGxlLCBKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSk7XG4gICAgICAgIHF1ZXJ5U2VydmljZS5lZGl0UXVlcnkoZWRpdGVkUXVlcnkpO1xuICAgICAgICBxdWVyeVNlcnZpY2UuZ2V0TXlBbGxRdWVyaWVzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IHF1ZXJ5U2VydmljZS5jcmVhdGVRdWVyeSh0aXRsZSwgSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpO1xuICAgICAgICBxdWVyeVNlcnZpY2UucHVzaFF1ZXJ5KHF1ZXJ5KTtcbiAgICAgICAgcXVlcnlTZXJ2aWNlLmdldE15QWxsUXVlcmllcygpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIG5ldyBOb3RpY2UoZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVBZGRGaWx0ZXJCZW5DbGljayA9ICgpID0+IHtcbiAgICBpZiAoZmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBsYXN0RmlsdGVyID0gZmlsdGVyc1tmaWx0ZXJzLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKGxhc3RGaWx0ZXIudmFsdWUudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIG5ldyBOb3RpY2UoJ+WFiOWujOWWhOS4iuS4gOS4qui/h+a7pOWZqOWQpycpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0RmlsdGVycyhbLi4uZmlsdGVycywgZ2V0RGVmYXVsdEZpbHRlcigpXSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRmlsdGVyQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGluZGV4OiBudW1iZXIsIGZpbHRlcjogRmlsdGVyKSA9PiB7XG4gICAgc2V0RmlsdGVycygoZmlsdGVycykgPT4ge1xuICAgICAgY29uc3QgdGVtcCA9IFsuLi5maWx0ZXJzXTtcbiAgICAgIHRlbXBbaW5kZXhdID0gZmlsdGVyO1xuICAgICAgcmV0dXJuIHRlbXA7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVGaWx0ZXJSZW1vdmUgPSB1c2VDYWxsYmFjaygoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHNldEZpbHRlcnMoKGZpbHRlcnMpID0+IHtcbiAgICAgIGNvbnN0IHRlbXAgPSBmaWx0ZXJzLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpO1xuICAgICAgcmV0dXJuIHRlbXA7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpYWxvZy1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRpdGxlLXRleHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLXRleHRcIj7wn5SWPC9zcGFuPlxuICAgICAgICAgIHtxdWVyeUlkID8gJ0VESVQgUVVFUlknIDogJ0NSRUFURSBRVUVSWSd9XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gY2xvc2UtYnRuXCIgb25DbGljaz17ZGVzdHJveX0+XG4gICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17Y2xvc2V9IC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpYWxvZy1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0taXRlbS1jb250YWluZXIgaW5wdXQtZm9ybS1jb250YWluZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPlRJVExFPC9zcGFuPlxuICAgICAgICAgIDxpbnB1dCBjbGFzc05hbWU9XCJ0aXRsZS1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgdmFsdWU9e3RpdGxlfSBvbkNoYW5nZT17aGFuZGxlVGl0bGVJbnB1dENoYW5nZX0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1pdGVtLWNvbnRhaW5lciBmaWx0ZXItZm9ybS1jb250YWluZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJub3JtYWwtdGV4dFwiPkZJTFRFUjwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcnMtd3JhcHBlclwiPlxuICAgICAgICAgICAge2ZpbHRlcnMubWFwKChmLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxNZW1vRmlsdGVySW5wdXRlclxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGZpbHRlcj17Zn1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbHRlckNoYW5nZT17aGFuZGxlRmlsdGVyQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsdGVyUmVtb3ZlPXtoYW5kbGVGaWx0ZXJSZW1vdmV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjcmVhdGUtZmlsdGVyLWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUFkZEZpbHRlckJlbkNsaWNrfT5cbiAgICAgICAgICAgICAgQUREIEZJTFRFUiBURVJNU1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpYWxvZy1mb290ZXItY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRucy1jb250YWluZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2B0aXAtdGV4dCAke2ZpbHRlcnMubGVuZ3RoID09PSAwICYmICdoaWRkZW4nfWB9PlxuICAgICAgICAgICAgTUFUQ0ggTWVtbyA8c3Ryb25nPntzaG93bk1lbW9MZW5ndGh9PC9zdHJvbmc+IFRJTUVTXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPXtgYnRuIHNhdmUtYnRuICR7cmVxdWVzdFN0YXRlLmlzTG9hZGluZyA/ICdyZXF1ZXN0aW5nJyA6ICcnfWB9IG9uQ2xpY2s9e2hhbmRsZVNhdmVCdG5DbGlja30+XG4gICAgICAgICAgICBTQVZFXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgTWVtb0ZpbHRlcklucHV0ZXJQcm9wcyB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGZpbHRlcjogRmlsdGVyO1xuICBoYW5kbGVGaWx0ZXJDaGFuZ2U6IChpbmRleDogbnVtYmVyLCBmaWx0ZXI6IEZpbHRlcikgPT4gdm9pZDtcbiAgaGFuZGxlRmlsdGVyUmVtb3ZlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbn1cblxuY29uc3QgRmlsdGVySW5wdXRlcjogUmVhY3QuRkM8TWVtb0ZpbHRlcklucHV0ZXJQcm9wcz4gPSAocHJvcHM6IE1lbW9GaWx0ZXJJbnB1dGVyUHJvcHMpID0+IHtcbiAgY29uc3Qge2luZGV4LCBmaWx0ZXIsIGhhbmRsZUZpbHRlckNoYW5nZSwgaGFuZGxlRmlsdGVyUmVtb3ZlfSA9IHByb3BzO1xuICBjb25zdCB7dHlwZX0gPSBmaWx0ZXI7XG4gIGNvbnN0IFtpbnB1dEVsZW1lbnRzLCBzZXRJbnB1dEVsZW1lbnRzXSA9IHVzZVN0YXRlPEpTWC5FbGVtZW50Pig8PjwvPik7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgb3BlcmF0b3JFbGVtZW50ID0gPD48Lz47XG4gICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlckNvbnN0cykuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgIG9wZXJhdG9yRWxlbWVudCA9IChcbiAgICAgICAgPFNlbGVjdG9yXG4gICAgICAgICAgY2xhc3NOYW1lPVwib3BlcmF0b3Itc2VsZWN0b3JcIlxuICAgICAgICAgIGRhdGFTb3VyY2U9e09iamVjdC52YWx1ZXMoZmlsdGVyQ29uc3RzW3R5cGUgYXMgRmlsdGVyVHlwZV0ub3BlcmF0b3JzKX1cbiAgICAgICAgICB2YWx1ZT17ZmlsdGVyLnZhbHVlLm9wZXJhdG9yfVxuICAgICAgICAgIGhhbmRsZVZhbHVlQ2hhbmdlZD17aGFuZGxlT3BlcmF0b3JDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZUVsZW1lbnQgPSA8PjwvPjtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ1RZUEUnOiB7XG4gICAgICAgIHZhbHVlRWxlbWVudCA9IChcbiAgICAgICAgICA8U2VsZWN0b3JcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInZhbHVlLXNlbGVjdG9yXCJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlckNvbnN0c1snVFlQRSddLnZhbHVlc31cbiAgICAgICAgICAgIHZhbHVlPXtmaWx0ZXIudmFsdWUudmFsdWV9XG4gICAgICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZWQ9e2hhbmRsZVZhbHVlQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnVEFHJzoge1xuICAgICAgICB2YWx1ZUVsZW1lbnQgPSAoXG4gICAgICAgICAgPFNlbGVjdG9yXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ2YWx1ZS1zZWxlY3RvclwiXG4gICAgICAgICAgICBkYXRhU291cmNlPXttZW1vU2VydmljZVxuICAgICAgICAgICAgICAuZ2V0U3RhdGUoKVxuICAgICAgICAgICAgICAudGFncy5zb3J0KClcbiAgICAgICAgICAgICAgLm1hcCgodCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7dGV4dDogdCwgdmFsdWU6IHR9O1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIHZhbHVlPXtmaWx0ZXIudmFsdWUudmFsdWV9XG4gICAgICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZWQ9e2hhbmRsZVZhbHVlQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnVEVYVCc6IHtcbiAgICAgICAgdmFsdWVFbGVtZW50ID0gKFxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidmFsdWUtaW5wdXRlclwiXG4gICAgICAgICAgICB2YWx1ZT17ZmlsdGVyLnZhbHVlLnZhbHVlfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICBldmVudC50YXJnZXQuZm9jdXMoKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0SW5wdXRFbGVtZW50cyhcbiAgICAgIDw+XG4gICAgICAgIHtvcGVyYXRvckVsZW1lbnR9XG4gICAgICAgIHt2YWx1ZUVsZW1lbnR9XG4gICAgICA8Lz4sXG4gICAgKTtcbiAgfSwgW3R5cGUsIGZpbHRlcl0pO1xuXG4gIGNvbnN0IGhhbmRsZVJlbGF0aW9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChbJ0FORCcsICdPUiddLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICBoYW5kbGVGaWx0ZXJDaGFuZ2UoaW5kZXgsIHtcbiAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgcmVsYXRpb246IHZhbHVlIGFzIE1lbW9GaWx0ZXJSYWxhdGlvbixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZmlsdGVyXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVUeXBlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChmaWx0ZXIudHlwZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgY29uc3Qgb3BzID0gT2JqZWN0LnZhbHVlcyhmaWx0ZXJDb25zdHNbdmFsdWUgYXMgRmlsdGVyVHlwZV0ub3BlcmF0b3JzKTtcbiAgICAgICAgaGFuZGxlRmlsdGVyQ2hhbmdlKGluZGV4LCB7XG4gICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgIHR5cGU6IHZhbHVlIGFzIEZpbHRlclR5cGUsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiBvcHNbMF0udmFsdWUsXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZmlsdGVyXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVPcGVyYXRvckNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICBoYW5kbGVGaWx0ZXJDaGFuZ2UoaW5kZXgsIHtcbiAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIC4uLmZpbHRlci52YWx1ZSxcbiAgICAgICAgICBvcGVyYXRvcjogdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtmaWx0ZXJdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVZhbHVlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIGhhbmRsZUZpbHRlckNoYW5nZShpbmRleCwge1xuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgLi4uZmlsdGVyLnZhbHVlLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbZmlsdGVyXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVSZW1vdmVCdG5DbGljayA9ICgpID0+IHtcbiAgICBoYW5kbGVGaWx0ZXJSZW1vdmUoaW5kZXgpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtZW1vLWZpbHRlci1pbnB1dC13cmFwcGVyXCI+XG4gICAgICB7aW5kZXggPiAwID8gKFxuICAgICAgICA8U2VsZWN0b3JcbiAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGlvbi1zZWxlY3RvclwiXG4gICAgICAgICAgZGF0YVNvdXJjZT17cmVsYXRpb25Db25zdHN9XG4gICAgICAgICAgdmFsdWU9e2ZpbHRlci5yZWxhdGlvbn1cbiAgICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZWQ9e2hhbmRsZVJlbGF0aW9uQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8U2VsZWN0b3JcbiAgICAgICAgY2xhc3NOYW1lPVwidHlwZS1zZWxlY3RvclwiXG4gICAgICAgIGRhdGFTb3VyY2U9e09iamVjdC52YWx1ZXMoZmlsdGVyQ29uc3RzKX1cbiAgICAgICAgdmFsdWU9e2ZpbHRlci50eXBlfVxuICAgICAgICBoYW5kbGVWYWx1ZUNoYW5nZWQ9e2hhbmRsZVR5cGVDaGFuZ2V9XG4gICAgICAvPlxuXG4gICAgICB7aW5wdXRFbGVtZW50c31cbiAgICAgIDxpbWcgY2xhc3NOYW1lPVwicmVtb3ZlLWJ0blwiIHNyYz17Y2xvc2V9IG9uQ2xpY2s9e2hhbmRsZVJlbW92ZUJ0bkNsaWNrfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgTWVtb0ZpbHRlcklucHV0ZXI6IFJlYWN0LkZDPE1lbW9GaWx0ZXJJbnB1dGVyUHJvcHM+ID0gbWVtbyhGaWx0ZXJJbnB1dGVyKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2hvd0NyZWF0ZVF1ZXJ5RGlhbG9nKHF1ZXJ5SWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgc2hvd0RpYWxvZyhcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdjcmVhdGUtcXVlcnktZGlhbG9nJyxcbiAgICB9LFxuICAgIENyZWF0ZVF1ZXJ5RGlhbG9nLFxuICAgIHtxdWVyeUlkfSxcbiAgKTtcbn1cbiIsImltcG9ydCB7dXNlQ29udGV4dCwgdXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuLi9zdG9yZXMvYXBwQ29udGV4dCc7XG5pbXBvcnQgdXNlVG9nZ2xlIGZyb20gJy4uL2hvb2tzL3VzZVRvZ2dsZSc7XG5pbXBvcnQgdXNlTG9hZGluZyBmcm9tICcuLi9ob29rcy91c2VMb2FkaW5nJztcbmltcG9ydCBPbmx5IGZyb20gJy4vY29tbW9uL09ubHlXaGVuJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7bG9jYXRpb25TZXJ2aWNlLCBxdWVyeVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCBzaG93Q3JlYXRlUXVlcnlEaWFsb2cgZnJvbSAnLi9DcmVhdGVRdWVyeURpYWxvZyc7XG5pbXBvcnQgJy4uL2xlc3MvcXVlcnktbGlzdC5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgbW9yZSBmcm9tICcuLi9pY29ucy9tb3JlLnN2Zyc7XG5pbXBvcnQgbW9yZVdoaXRlIGZyb20gJy4uL2ljb25zL21vcmUtd2hpdGUuc3ZnJztcbmltcG9ydCB7Tm90aWNlfSBmcm9tICdvYnNpZGlhbic7XG5cbmludGVyZmFjZSBQcm9wcyB7fVxuXG5jb25zdCBRdWVyeUxpc3Q6IFJlYWN0LkZDPFByb3BzPiA9ICgpID0+IHtcbiAgY29uc3Qge1xuICAgIHF1ZXJ5U3RhdGU6IHtxdWVyaWVzfSxcbiAgICBsb2NhdGlvblN0YXRlOiB7XG4gICAgICBxdWVyeToge2ZpbHRlcn0sXG4gICAgfSxcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XG4gIGNvbnN0IGxvYWRpbmdTdGF0ZSA9IHVzZUxvYWRpbmcoKTtcbiAgY29uc3Qgc29ydGVkUXVlcmllcyA9IHF1ZXJpZXNcbiAgICAuc29ydCgoYSwgYikgPT4gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGIuY3JlYXRlZEF0KSAtIHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShhLmNyZWF0ZWRBdCkpXG4gICAgLnNvcnQoKGEsIGIpID0+IHV0aWxzLmdldFRpbWVTdGFtcEJ5RGF0ZShiLnBpbm5lZEF0ID8/IDApIC0gdXRpbHMuZ2V0VGltZVN0YW1wQnlEYXRlKGEucGlubmVkQXQgPz8gMCkpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcXVlcnlTZXJ2aWNlXG4gICAgICAuZ2V0TXlBbGxRdWVyaWVzKClcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIC8vIGRvIG50aFxuICAgICAgfSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgbG9hZGluZ1N0YXRlLnNldEZpbmlzaCgpO1xuICAgICAgfSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicXVlcmllcy13cmFwcGVyXCI+XG4gICAgICA8cCBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vcm1hbC10ZXh0XCI+UVVFUlk8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9eygpID0+IHNob3dDcmVhdGVRdWVyeURpYWxvZygpfT5cbiAgICAgICAgICArXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxPbmx5IHdoZW49e2xvYWRpbmdTdGF0ZS5pc1N1Y2NlZWQgJiYgc29ydGVkUXVlcmllcy5sZW5ndGggPT09IDB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNyZWF0ZS1xdWVyeS1idG4tY29udGFpbmVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuXCIgb25DbGljaz17KCkgPT4gc2hvd0NyZWF0ZVF1ZXJ5RGlhbG9nKCl9PlxuICAgICAgICAgICAgQ1JFQVRFIEZJTFRFUlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L09ubHk+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInF1ZXJpZXMtY29udGFpbmVyXCI+XG4gICAgICAgIHtzb3J0ZWRRdWVyaWVzLm1hcCgocSkgPT4ge1xuICAgICAgICAgIHJldHVybiA8UXVlcnlJdGVtQ29udGFpbmVyIGtleT17cS5pZH0gcXVlcnk9e3F9IGlzQWN0aXZlPXtxLmlkID09PSBmaWx0ZXJ9IC8+O1xuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuaW50ZXJmYWNlIFF1ZXJ5SXRlbUNvbnRhaW5lclByb3BzIHtcbiAgcXVlcnk6IE1vZGVsLlF1ZXJ5O1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbn1cblxuY29uc3QgUXVlcnlJdGVtQ29udGFpbmVyOiBSZWFjdC5GQzxRdWVyeUl0ZW1Db250YWluZXJQcm9wcz4gPSAocHJvcHM6IFF1ZXJ5SXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHtxdWVyeSwgaXNBY3RpdmV9ID0gcHJvcHM7XG4gIGNvbnN0IFtzaG93QWN0aW9uQnRucywgdG9nZ2xlU2hvd0FjdGlvbkJ0bnNdID0gdXNlVG9nZ2xlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dDb25maXJtRGVsZXRlQnRuLCB0b2dnbGVDb25maXJtRGVsZXRlQnRuXSA9IHVzZVRvZ2dsZShmYWxzZSk7XG5cbiAgY29uc3QgaGFuZGxlUXVlcnlDbGljayA9ICgpID0+IHtcbiAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgIGxvY2F0aW9uU2VydmljZS5zZXRNZW1vRmlsdGVyKCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgKCFbXCIvXCIsIFwiL3JlY3ljbGVcIl0uaW5jbHVkZXMobG9jYXRpb25TZXJ2aWNlLmdldFN0YXRlKCkucGF0aG5hbWUpKSB7XG4gICAgICAvLyAgIGxvY2F0aW9uU2VydmljZS5zZXRQYXRobmFtZShcIi9cIik7XG4gICAgICAvLyB9XG4gICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0TWVtb0ZpbHRlcihxdWVyeS5pZCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNob3dBY3Rpb25CdG5DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRvZ2dsZVNob3dBY3Rpb25CdG5zKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uQnRuQ29udGFpbmVyTW91c2VMZWF2ZSA9ICgpID0+IHtcbiAgICB0b2dnbGVTaG93QWN0aW9uQnRucyhmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlTWVtb0NsaWNrID0gYXN5bmMgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoc2hvd0NvbmZpcm1EZWxldGVCdG4pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHF1ZXJ5U2VydmljZS5kZWxldGVRdWVyeShxdWVyeS5pZCk7XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIG5ldyBOb3RpY2UoZXJyb3IubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvZ2dsZUNvbmZpcm1EZWxldGVCdG4oKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRWRpdFF1ZXJ5QnRuQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBzaG93Q3JlYXRlUXVlcnlEaWFsb2cocXVlcnkuaWQpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVBpblF1ZXJ5QnRuQ2xpY2sgPSBhc3luYyAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAocXVlcnkucGlubmVkQXQpIHtcbiAgICAgICAgYXdhaXQgcXVlcnlTZXJ2aWNlLnVucGluUXVlcnkocXVlcnkuaWQpO1xuICAgICAgICBxdWVyeVNlcnZpY2UuZWRpdFF1ZXJ5KHtcbiAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICBwaW5uZWRBdDogJycsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgcXVlcnlTZXJ2aWNlLnBpblF1ZXJ5KHF1ZXJ5LmlkKTtcbiAgICAgICAgcXVlcnlTZXJ2aWNlLmVkaXRRdWVyeSh7XG4gICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgcGlubmVkQXQ6IHV0aWxzLmdldERhdGVUaW1lU3RyaW5nKERhdGUubm93KCkpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gZG8gbnRoXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUJ0bk1vdXNlTGVhdmUgPSAoKSA9PiB7XG4gICAgdG9nZ2xlQ29uZmlybURlbGV0ZUJ0bihmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2BxdWVyeS1pdGVtLWNvbnRhaW5lciAke2lzQWN0aXZlID8gJ2FjdGl2ZScgOiAnJ31gfSBvbkNsaWNrPXtoYW5kbGVRdWVyeUNsaWNrfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxdWVyeS10ZXh0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tdGV4dFwiPiM8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicXVlcnktdGV4dFwiPntxdWVyeS50aXRsZX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ0bnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYWN0aW9uLWJ0biB0b2dnbGUtYnRuXCIgb25DbGljaz17aGFuZGxlU2hvd0FjdGlvbkJ0bkNsaWNrfT5cbiAgICAgICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaWNvbi1pbWdcIiBzcmM9e2lzQWN0aXZlID8gbW9yZVdoaXRlIDogbW9yZX0gLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgYWN0aW9uLWJ0bnMtd3JhcHBlciAke3Nob3dBY3Rpb25CdG5zID8gJycgOiAnaGlkZGVuJ31gfVxuICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXtoYW5kbGVBY3Rpb25CdG5Db250YWluZXJNb3VzZUxlYXZlfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWN0aW9uLWJ0bnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0blwiIG9uQ2xpY2s9e2hhbmRsZVBpblF1ZXJ5QnRuQ2xpY2t9PlxuICAgICAgICAgICAgICAgIHtxdWVyeS5waW5uZWRBdCA/ICdVTlBJTicgOiAnUElOJ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG5cIiBvbkNsaWNrPXtoYW5kbGVFZGl0UXVlcnlCdG5DbGlja30+XG4gICAgICAgICAgICAgICAgRURJVFxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYnRuIGRlbGV0ZS1idG4gJHtzaG93Q29uZmlybURlbGV0ZUJ0biA/ICdmaW5hbC1jb25maXJtJyA6ICcnfWB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRGVsZXRlTWVtb0NsaWNrfVxuICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlRGVsZXRlQnRuTW91c2VMZWF2ZX0+XG4gICAgICAgICAgICAgICAge3Nob3dDb25maXJtRGVsZXRlQnRuID8gJ0NPTkZJUk3vvIEnIDogJ0RFTEVURSd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUXVlcnlMaXN0O1xuIiwiaW1wb3J0IHt1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuLi9zdG9yZXMvYXBwQ29udGV4dCc7XG5pbXBvcnQge2xvY2F0aW9uU2VydmljZSwgbWVtb1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB1c2VUb2dnbGUgZnJvbSAnLi4vaG9va3MvdXNlVG9nZ2xlJztcbmltcG9ydCBPbmx5IGZyb20gJy4vY29tbW9uL09ubHlXaGVuJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCAnLi4vbGVzcy90YWctbGlzdC5sZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXJyb3dSaWdodCBmcm9tICcuLi9pY29ucy9hcnJvdy1yaWdodC5zdmcnO1xuXG5pbnRlcmZhY2UgVGFnIHtcbiAga2V5OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgc3ViVGFnczogVGFnW107XG59XG5cbmludGVyZmFjZSBQcm9wcyB7fVxuXG5jb25zdCBUYWdMaXN0OiBSZWFjdC5GQzxQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsb2NhdGlvblN0YXRlOiB7XG4gICAgICBxdWVyeToge3RhZzogdGFnUXVlcnl9LFxuICAgIH0sXG4gICAgbWVtb1N0YXRlOiB7dGFnczogdGFnc1RleHQsIG1lbW9zfSxcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XG4gIGNvbnN0IFt0YWdzLCBzZXRUYWdzXSA9IHVzZVN0YXRlPFRhZ1tdPihbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBtZW1vU2VydmljZS51cGRhdGVUYWdzU3RhdGUoKTtcbiAgfSwgW21lbW9zXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzb3J0ZWRUYWdzID0gQXJyYXkuZnJvbSh0YWdzVGV4dCkuc29ydCgpO1xuICAgIGNvbnN0IHJvb3Q6IEtWT2JqZWN0PGFueT4gPSB7XG4gICAgICBzdWJUYWdzOiBbXSxcbiAgICB9O1xuICAgIGZvciAoY29uc3QgdGFnIG9mIHNvcnRlZFRhZ3MpIHtcbiAgICAgIGNvbnN0IHN1YnRhZ3MgPSB0YWcuc3BsaXQoJy8nKTtcbiAgICAgIGxldCB0ZW1wT2JqID0gcm9vdDtcbiAgICAgIGxldCB0YWdUZXh0ID0gJyc7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN1YnRhZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0gc3VidGFnc1tpXTtcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICB0YWdUZXh0ICs9IGtleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWdUZXh0ICs9ICcvJyArIGtleTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvYmogPSBudWxsO1xuXG4gICAgICAgIGZvciAoY29uc3QgdCBvZiB0ZW1wT2JqLnN1YlRhZ3MpIHtcbiAgICAgICAgICBpZiAodC50ZXh0ID09PSB0YWdUZXh0KSB7XG4gICAgICAgICAgICBvYmogPSB0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICBvYmogPSB7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB0ZXh0OiB0YWdUZXh0LFxuICAgICAgICAgICAgc3ViVGFnczogW10sXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0ZW1wT2JqLnN1YlRhZ3MucHVzaChvYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgdGVtcE9iaiA9IG9iajtcbiAgICAgIH1cbiAgICB9XG4gICAgc2V0VGFncyhyb290LnN1YlRhZ3MgYXMgVGFnW10pO1xuICB9LCBbdGFnc1RleHRdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwidGFncy13cmFwcGVyXCI+XG4gICAgICA8cCBjbGFzc05hbWU9XCJ0aXRsZS10ZXh0XCI+VVNVQUxMWSBVU0VEIFRBR1M8L3A+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRhZ3MtY29udGFpbmVyXCI+XG4gICAgICAgIHt0YWdzLm1hcCgodCwgaWR4KSA9PiAoXG4gICAgICAgICAgPFRhZ0l0ZW1Db250YWluZXIga2V5PXt0LnRleHQgKyAnLScgKyBpZHh9IHRhZz17dH0gdGFnUXVlcnk9e3RhZ1F1ZXJ5fSAvPlxuICAgICAgICApKX1cbiAgICAgICAgPE9ubHkgd2hlbj17dGFncy5sZW5ndGggPCA1ICYmIG1lbW9TZXJ2aWNlLmluaXRpYWxpemVkfT5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0YWctdGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgSW5wdXQ8c3BhbiBjbGFzc05hbWU9XCJjb2RlLXRleHRcIj4jVGFnIDwvc3Bhbj50byBjcmVhdGUgdGFnLi4uXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L09ubHk+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBUYWdJdGVtQ29udGFpbmVyUHJvcHMge1xuICB0YWc6IFRhZztcbiAgdGFnUXVlcnk6IHN0cmluZztcbn1cblxuY29uc3QgVGFnSXRlbUNvbnRhaW5lcjogUmVhY3QuRkM8VGFnSXRlbUNvbnRhaW5lclByb3BzPiA9IChwcm9wczogVGFnSXRlbUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHt0YWcsIHRhZ1F1ZXJ5fSA9IHByb3BzO1xuICBjb25zdCBpc0FjdGl2ZSA9IHRhZ1F1ZXJ5ID09PSB0YWcudGV4dDtcbiAgY29uc3QgaGFzU3ViVGFncyA9IHRhZy5zdWJUYWdzLmxlbmd0aCA+IDA7XG4gIGNvbnN0IFtzaG93U3ViVGFncywgdG9nZ2xlU3ViVGFnc10gPSB1c2VUb2dnbGUoZmFsc2UpO1xuXG4gIGNvbnN0IGhhbmRsZVRhZ0NsaWNrID0gKCkgPT4ge1xuICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldFRhZ1F1ZXJ5KCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXRpbHMuY29weVRleHRUb0NsaXBib2FyZChgIyR7dGFnLnRleHR9IGApO1xuICAgICAgaWYgKCFbJy8nLCAnL3JlY3ljbGUnXS5pbmNsdWRlcyhsb2NhdGlvblNlcnZpY2UuZ2V0U3RhdGUoKS5wYXRobmFtZSkpIHtcbiAgICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldFBhdGhuYW1lKCcvJyk7XG4gICAgICB9XG4gICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0VGFnUXVlcnkodGFnLnRleHQpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVUb2dnbGVCdG5DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRvZ2dsZVN1YlRhZ3MoKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YHRhZy1pdGVtLWNvbnRhaW5lciAke2lzQWN0aXZlID8gJ2FjdGl2ZScgOiAnJ31gfSBvbkNsaWNrPXtoYW5kbGVUYWdDbGlja30+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnLXRleHQtY29udGFpbmVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbi10ZXh0XCI+Izwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YWctdGV4dFwiPnt0YWcua2V5fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRucy1jb250YWluZXJcIj5cbiAgICAgICAgICB7aGFzU3ViVGFncyA/IChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGFjdGlvbi1idG4gdG9nZ2xlLWJ0biAke3Nob3dTdWJUYWdzID8gJ3Nob3duJyA6ICcnfWB9IG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZUJ0bkNsaWNrfT5cbiAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJpY29uLWltZ1wiIHNyYz17YXJyb3dSaWdodH0gLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAge2hhc1N1YlRhZ3MgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgc3VidGFncy1jb250YWluZXIgJHtzaG93U3ViVGFncyA/ICcnIDogJ2hpZGRlbid9YH0+XG4gICAgICAgICAge3RhZy5zdWJUYWdzLm1hcCgoc3QsIGlkeCkgPT4gKFxuICAgICAgICAgICAgPFRhZ0l0ZW1Db250YWluZXIga2V5PXtzdC50ZXh0ICsgJy0nICsgaWR4fSB0YWc9e3N0fSB0YWdRdWVyeT17dGFnUXVlcnl9IC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUYWdMaXN0O1xuIiwiaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuLi9zdG9yZXMvYXBwQ29udGV4dCc7XG5pbXBvcnQge2dsb2JhbFN0YXRlU2VydmljZSwgbG9jYXRpb25TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0RBSUxZX1RJTUVTVEFNUH0gZnJvbSAnLi4vaGVscGVycy9jb25zdHMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0ICcuLi9sZXNzL3VzYWdlLWhlYXQtbWFwLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7bW9tZW50fSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgaTE4bmV4dCBmcm9tICdpMThuZXh0JztcblxuY29uc3QgdGFibGVDb25maWcgPSB7XG4gIHdpZHRoOiAxMixcbiAgaGVpZ2h0OiA3LFxufTtcblxuY29uc3QgZ2V0SW5pdGlhbFVzYWdlU3RhdCA9ICh1c2VkRGF5c0Ftb3VudDogbnVtYmVyLCBiZWdpbkRheVRpbWVzdGFtcDogbnVtYmVyKTogRGFpbHlVc2FnZVN0YXRbXSA9PiB7XG4gIGNvbnN0IGluaXRpYWxVc2FnZVN0YXQ6IERhaWx5VXNhZ2VTdGF0W10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdXNlZERheXNBbW91bnQ7IGkrKykge1xuICAgIGluaXRpYWxVc2FnZVN0YXQucHVzaCh7XG4gICAgICB0aW1lc3RhbXA6IGJlZ2luRGF5VGltZXN0YW1wICsgREFJTFlfVElNRVNUQU1QICogaSxcbiAgICAgIGNvdW50OiAwLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBpbml0aWFsVXNhZ2VTdGF0O1xufTtcblxuaW50ZXJmYWNlIERhaWx5VXNhZ2VTdGF0IHtcbiAgdGltZXN0YW1wOiBudW1iZXI7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7fVxuXG5jb25zdCBVc2FnZUhlYXRNYXA6IFJlYWN0LkZDPFByb3BzPiA9ICgpID0+IHtcbiAgY29uc3QgdG9kYXlUaW1lU3RhbXAgPSB1dGlscy5nZXREYXRlU3RhbXBCeURhdGUoRGF0ZS5ub3coKSk7XG4gIGNvbnN0IHRvZGF5RGF5ID0gbmV3IERhdGUodG9kYXlUaW1lU3RhbXApLmdldERheSgpIHx8IDc7XG4gIGNvbnN0IG51bGxDZWxsID0gbmV3IEFycmF5KDcgLSB0b2RheURheSkuZmlsbCgwKTtcbiAgY29uc3QgdXNlZERheXNBbW91bnQgPSAodGFibGVDb25maWcud2lkdGggLSAxKSAqIHRhYmxlQ29uZmlnLmhlaWdodCArIHRvZGF5RGF5O1xuICBjb25zdCBiZWdpbkRheVRpbWVzdGFtcCA9IHV0aWxzLmdldERhdGVTdGFtcEJ5RGF0ZSh0b2RheVRpbWVTdGFtcCAtIHVzZWREYXlzQW1vdW50ICogREFJTFlfVElNRVNUQU1QKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KCkuc3VidHJhY3QodXNlZERheXNBbW91bnQsICdkYXlzJykuZW5kT2YoJ2RheScpO1xuXG4gIGNvbnN0IHtcbiAgICBtZW1vU3RhdGU6IHttZW1vc30sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBjb25zdCBbYWxsU3RhdCwgc2V0QWxsU3RhdF0gPSB1c2VTdGF0ZTxEYWlseVVzYWdlU3RhdFtdPihnZXRJbml0aWFsVXNhZ2VTdGF0KHVzZWREYXlzQW1vdW50LCBiZWdpbkRheVRpbWVzdGFtcCkpO1xuICBjb25zdCBbcG9wdXBTdGF0LCBzZXRQb3B1cFN0YXRdID0gdXNlU3RhdGU8RGFpbHlVc2FnZVN0YXQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2N1cnJlbnRTdGF0LCBzZXRDdXJyZW50U3RhdF0gPSB1c2VTdGF0ZTxEYWlseVVzYWdlU3RhdCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBjb250YWluZXJFbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHBvcHVwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG5ld1N0YXQ6IERhaWx5VXNhZ2VTdGF0W10gPSBnZXRJbml0aWFsVXNhZ2VTdGF0KHVzZWREYXlzQW1vdW50LCBiZWdpbkRheVRpbWVzdGFtcCk7XG4gICAgZm9yIChjb25zdCBtIG9mIG1lbW9zKSB7XG4gICAgICBjb25zdCBjcmVhdGlvbkRhdGUgPSBtb21lbnQobS5jcmVhdGVkQXQucmVwbGFjZUFsbCgnLycsICctJykpO1xuICAgICAgY29uc3QgaW5kZXggPSBjcmVhdGlvbkRhdGUuZGlmZihzdGFydERhdGUsICdkYXlzJyk7XG4gICAgICAvLyBjb25zdCBpbmRleCA9ICh1dGlscy5nZXREYXRlU3RhbXBCeURhdGUobS5jcmVhdGVkQXQpIC0gYmVnaW5EYXlUaW1lc3RhbXApIC8gKDEwMDAgKiAzNjAwICogMjQpIC0gMTtcbiAgICAgIC8vIGlmKGluZGV4ICE9IG5ld1N0YXQubGVuZ3RoKSB7IH1cbiAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgbmV3U3RhdC5sZW5ndGgpIHtcbiAgICAgICAgbmV3U3RhdFtpbmRleF0uY291bnQgKz0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgc2V0QWxsU3RhdChbLi4ubmV3U3RhdF0pO1xuICB9LCBbbWVtb3NdKTtcblxuICBjb25zdCBoYW5kbGVVc2FnZVN0YXRJdGVtTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKChldmVudDogUmVhY3QuTW91c2VFdmVudCwgaXRlbTogRGFpbHlVc2FnZVN0YXQpID0+IHtcbiAgICBzZXRQb3B1cFN0YXQoaXRlbSk7XG4gICAgaWYgKCFwb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qge2lzTW9iaWxlVmlld30gPSBnbG9iYWxTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCB0YXJnZXRFbCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBzaWRlYmFyRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVtb3Mtc2lkZWJhci13cmFwcGVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgcG9wdXBSZWYuY3VycmVudC5zdHlsZS5sZWZ0ID0gdGFyZ2V0RWwub2Zmc2V0TGVmdCAtIChjb250YWluZXJFbFJlZi5jdXJyZW50Py5vZmZzZXRMZWZ0ID8/IDApICsgJ3B4JztcbiAgICBsZXQgdG9wVmFsdWUgPSB0YXJnZXRFbC5vZmZzZXRUb3A7XG4gICAgaWYgKCFpc01vYmlsZVZpZXcpIHtcbiAgICAgIHRvcFZhbHVlIC09IHNpZGViYXJFbC5zY3JvbGxUb3A7XG4gICAgfVxuICAgIHBvcHVwUmVmLmN1cnJlbnQuc3R5bGUudG9wID0gdG9wVmFsdWUgKyAncHgnO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlVXNhZ2VTdGF0SXRlbU1vdXNlTGVhdmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UG9wdXBTdGF0KG51bGwpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlVXNhZ2VTdGF0SXRlbUNsaWNrID0gdXNlQ2FsbGJhY2soKGl0ZW06IERhaWx5VXNhZ2VTdGF0KSA9PiB7XG4gICAgaWYgKGxvY2F0aW9uU2VydmljZS5nZXRTdGF0ZSgpLnF1ZXJ5LmR1cmF0aW9uPy5mcm9tID09PSBpdGVtLnRpbWVzdGFtcCkge1xuICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldEZyb21BbmRUb1F1ZXJ5KDAsIDApO1xuICAgICAgc2V0Q3VycmVudFN0YXQobnVsbCk7XG4gICAgfSBlbHNlIGlmIChpdGVtLmNvdW50ID4gMCkge1xuICAgICAgaWYgKCFbJy8nLCAnL3JlY3ljbGUnXS5pbmNsdWRlcyhsb2NhdGlvblNlcnZpY2UuZ2V0U3RhdGUoKS5wYXRobmFtZSkpIHtcbiAgICAgICAgbG9jYXRpb25TZXJ2aWNlLnNldFBhdGhuYW1lKCcvJyk7XG4gICAgICB9XG4gICAgICBsb2NhdGlvblNlcnZpY2Uuc2V0RnJvbUFuZFRvUXVlcnkoXG4gICAgICAgIGl0ZW0udGltZXN0YW1wLFxuICAgICAgICB1dGlscy5nZXRUaW1lU3RhbXBCeURhdGUoXG4gICAgICAgICAgbW9tZW50KGl0ZW0udGltZXN0YW1wICsgREFJTFlfVElNRVNUQU1QKVxuICAgICAgICAgICAgLnN1YnRyYWN0KDEsICdkYXlzJylcbiAgICAgICAgICAgIC5lbmRPZignZGF5JylcbiAgICAgICAgICAgIC5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBzZXRDdXJyZW50U3RhdChpdGVtKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwidXNhZ2UtaGVhdC1tYXAtd3JhcHBlclwiIHJlZj17Y29udGFpbmVyRWxSZWZ9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXktdGlwLXRleHQtY29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+e2kxOG5leHQudCgnd2Vla0RheXNTaG9ydCcsIHtyZXR1cm5PYmplY3RzOiB0cnVlfSlbMF19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aXAtdGV4dFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGlwLXRleHRcIj57aTE4bmV4dC50KCd3ZWVrRGF5c1Nob3J0Jywge3JldHVybk9iamVjdHM6IHRydWV9KVsyXX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aXAtdGV4dFwiPntpMThuZXh0LnQoJ3dlZWtEYXlzU2hvcnQnLCB7cmV0dXJuT2JqZWN0czogdHJ1ZX0pWzRdfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGlwLXRleHRcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpcC10ZXh0XCI+e2kxOG5leHQudCgnd2Vla0RheXNTaG9ydCcsIHtyZXR1cm5PYmplY3RzOiB0cnVlfSlbNl19PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBwb3B1cCAqL31cbiAgICAgIDxkaXYgcmVmPXtwb3B1cFJlZn0gY2xhc3NOYW1lPXsndXNhZ2UtZGV0YWlsLWNvbnRhaW5lciBwb3AtdXAgJyArIChwb3B1cFN0YXQgPyAnJyA6ICdoaWRkZW4nKX0+XG4gICAgICAgIHtwb3B1cFN0YXQ/LmNvdW50fSBtZW1vcyBvbnsnICd9XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGUtdGV4dFwiPntuZXcgRGF0ZShwb3B1cFN0YXQ/LnRpbWVzdGFtcCBhcyBudW1iZXIpLnRvRGF0ZVN0cmluZygpfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInVzYWdlLWhlYXQtbWFwXCI+XG4gICAgICAgIHthbGxTdGF0Lm1hcCgodiwgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvdW50ID0gdi5jb3VudDtcbiAgICAgICAgICBjb25zdCBjb2xvckxldmVsID1cbiAgICAgICAgICAgIGNvdW50IDw9IDBcbiAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICA6IGNvdW50IDw9IDFcbiAgICAgICAgICAgICAgPyAnc3RhdC1kYXktTDEtYmcnXG4gICAgICAgICAgICAgIDogY291bnQgPD0gMlxuICAgICAgICAgICAgICA/ICdzdGF0LWRheS1MMi1iZydcbiAgICAgICAgICAgICAgOiBjb3VudCA8PSA0XG4gICAgICAgICAgICAgID8gJ3N0YXQtZGF5LUwzLWJnJ1xuICAgICAgICAgICAgICA6ICdzdGF0LWRheS1MNC1iZyc7XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgc3RhdC1jb250YWluZXIgJHtjb2xvckxldmVsfSAke2N1cnJlbnRTdGF0ID09PSB2ID8gJ2N1cnJlbnQnIDogJyd9ICR7XG4gICAgICAgICAgICAgICAgdG9kYXlUaW1lU3RhbXAgPT09IHYudGltZXN0YW1wID8gJ3RvZGF5JyA6ICcnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KGUpID0+IGhhbmRsZVVzYWdlU3RhdEl0ZW1Nb3VzZUVudGVyKGUsIHYpfVxuICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9e2hhbmRsZVVzYWdlU3RhdEl0ZW1Nb3VzZUxlYXZlfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVVc2FnZVN0YXRJdGVtQ2xpY2sodil9Pjwvc3Bhbj5cbiAgICAgICAgICApO1xuICAgICAgICB9KX1cbiAgICAgICAge251bGxDZWxsLm1hcCgodiwgaSkgPT4gKFxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInN0YXQtY29udGFpbmVyIG51bGxcIiBrZXk9e2l9Pjwvc3Bhbj5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVzYWdlSGVhdE1hcDtcbiIsImltcG9ydCB7dXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gJy4uL3N0b3Jlcy9hcHBDb250ZXh0JztcbmltcG9ydCB7U0hPV19TSURFUkJBUl9NT0JJTEVfQ0xBU1NOQU1FfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0cyc7XG5pbXBvcnQge2dsb2JhbFN0YXRlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IFVzZXJCYW5uZXIgZnJvbSAnLi9Vc2VyQmFubmVyJztcbmltcG9ydCBRdWVyeUxpc3QgZnJvbSAnLi9RdWVyeUxpc3QnO1xuaW1wb3J0IFRhZ0xpc3QgZnJvbSAnLi9UYWdMaXN0JztcbmltcG9ydCBVc2FnZUhlYXRNYXAgZnJvbSAnLi9Vc2FnZUhlYXRNYXAnO1xuaW1wb3J0ICcuLi9sZXNzL3NpZGVyYmFyLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW50ZXJmYWNlIFByb3BzIHt9XG5cbmNvbnN0IFNpZGViYXI6IFJlYWN0LkZDPFByb3BzPiA9ICgpID0+IHtcbiAgY29uc3Qge1xuICAgIGxvY2F0aW9uU3RhdGUsXG4gICAgZ2xvYmFsU3RhdGU6IHtpc01vYmlsZVZpZXcsIHNob3dTaWRlcmJhckluTW9iaWxlVmlld30sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICBjb25zdCB3cmFwcGVyRWxSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZU9mV3JhcHBlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHNpZGVyYmFyU2hvd24gPSBnbG9iYWxTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKS5zaG93U2lkZXJiYXJJbk1vYmlsZVZpZXc7XG5cbiAgICAgIGlmICghc2lkZXJiYXJTaG93bikge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGVPZldyYXBwZXIsIHtcbiAgICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXdyYXBwZXJFbFJlZi5jdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgaWYgKHdyYXBwZXJFbFJlZi5jdXJyZW50Py5wYXJlbnROb2RlPy5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICBpZiAoc2lkZXJiYXJTaG93bikge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRTaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcoZmFsc2UpO1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZU9mV3JhcHBlciwge1xuICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdsb2JhbFN0YXRlU2VydmljZS5zZXRTaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcoZmFsc2UpO1xuICB9LCBbbG9jYXRpb25TdGF0ZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNob3dTaWRlcmJhckluTW9iaWxlVmlldykge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFNIT1dfU0lERVJCQVJfTU9CSUxFX0NMQVNTTkFNRSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShTSE9XX1NJREVSQkFSX01PQklMRV9DTEFTU05BTUUpO1xuICAgIH1cbiAgfSwgW3Nob3dTaWRlcmJhckluTW9iaWxlVmlld10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzTW9iaWxlVmlldyAmJiBzaG93U2lkZXJiYXJJbk1vYmlsZVZpZXcpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZU9mV3JhcHBlciwge1xuICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbaXNNb2JpbGVWaWV3LCBzaG93U2lkZXJiYXJJbk1vYmlsZVZpZXddKTtcblxuICByZXR1cm4gKFxuICAgIDxhc2lkZSBjbGFzc05hbWU9XCJtZW1vcy1zaWRlYmFyLXdyYXBwZXJcIiByZWY9e3dyYXBwZXJFbFJlZn0+XG4gICAgICA8VXNlckJhbm5lciAvPlxuICAgICAgPFVzYWdlSGVhdE1hcCAvPlxuICAgICAgPFF1ZXJ5TGlzdCAvPlxuICAgICAgPFRhZ0xpc3QgLz5cbiAgICA8L2FzaWRlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2lkZWJhcjtcbiIsImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuLy8gaW1wb3J0IHsgbG9jYXRpb25TZXJ2aWNlLCB1c2VyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiO1xuaW1wb3J0IHtob21lUm91dGVyU3dpdGNofSBmcm9tICcuLi9yb3V0ZXJzJztcbmltcG9ydCBhcHBDb250ZXh0IGZyb20gJy4uL3N0b3Jlcy9hcHBDb250ZXh0JztcbmltcG9ydCBTaWRlYmFyIGZyb20gJy4uL2NvbXBvbmVudHMvU2lkZWJhcic7XG5pbXBvcnQgdXNlTG9hZGluZyBmcm9tICcuLi9ob29rcy91c2VMb2FkaW5nJztcbmltcG9ydCAnLi4vbGVzcy9ob21lLmxlc3MnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gSG9tZSgpIHtcbiAgY29uc3Qge1xuICAgIGxvY2F0aW9uU3RhdGU6IHtwYXRobmFtZX0sXG4gIH0gPSB1c2VDb250ZXh0KGFwcENvbnRleHQpO1xuICAvLyBjb25zdCB7IGFwcCB9ID0gZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0U3RhdGUoKTtcbiAgY29uc3QgbG9hZGluZ1N0YXRlID0gdXNlTG9hZGluZygpO1xuICAvLyBjb25zdCByZWZyZXNoID0gdXNlUmVmcmVzaCgpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gY29uc3QgeyB1c2VyIH0gPSB1c2VyU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIC8vIGlmICghdXNlcikge1xuICAgIC8vICAgdXNlclNlcnZpY2VcbiAgICAvLyAgICAgLmRvU2lnbkluKClcbiAgICAvLyAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAvLyAgICAgICAvLyBkbyBudGhcbiAgICAvLyAgICAgfSlcbiAgICAvLyAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgIC8vICAgICAgIC8vIGlmICh1c2VyU2VydmljZS5nZXRTdGF0ZSgpLnVzZXIpIHtcbiAgICAvLyAgICAgICAgIGxvYWRpbmdTdGF0ZS5zZXRGaW5pc2goKTtcbiAgICAvLyAgICAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgICAgIC8vICAgbG9jYXRpb25TZXJ2aWNlLnJlcGxhY2VIaXN0b3J5KFwiL3NpZ25pblwiKTtcbiAgICAvLyAgICAgICAvLyB9XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgbG9hZGluZ1N0YXRlLnNldEZpbmlzaCgpO1xuXG4gICAgLy8gfVxuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgey8qIHtsb2FkaW5nU3RhdGUuaXNMb2FkaW5nID8gbnVsbCA6ICggKi99XG4gICAgICA8c2VjdGlvbiBpZD1cInBhZ2Utd3JhcHBlclwiPlxuICAgICAgICA8U2lkZWJhciAvPlxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJjb250ZW50LXdyYXBwZXJcIj57aG9tZVJvdXRlclN3aXRjaChwYXRobmFtZSl9PC9tYWluPlxuICAgICAgPC9zZWN0aW9uPlxuICAgICAgey8qICl9ICovfVxuICAgIDwvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBIb21lO1xuIiwiKCgpID0+IHtcbiAgaWYgKCFTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VBbGwpIHtcbiAgICBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VBbGwgPSBmdW5jdGlvbiAoc3RyOiBhbnksIG5ld1N0cjogYW55KSB7XG4gICAgICAvLyBJZiBhIHJlZ2V4IHBhdHRlcm5cbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc3RyKS50b0xvd2VyQ2FzZSgpID09PSAnW29iamVjdCByZWdleHBdJykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBsYWNlKHN0ciwgbmV3U3RyKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgYSBzdHJpbmdcbiAgICAgIHJldHVybiB0aGlzLnJlcGxhY2UobmV3IFJlZ0V4cChzdHIsICdnJyksIG5ld1N0cik7XG4gICAgfTtcbiAgfVxufSkoKTtcblxuZXhwb3J0IGRlZmF1bHQgbnVsbDtcbiIsImltcG9ydCB7dXNlQ29udGV4dCwgdXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSG9tZSBmcm9tICcuL3BhZ2VzL0hvbWUnO1xuaW1wb3J0IHtnbG9iYWxTdGF0ZVNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0ICcuL2xlc3MvYXBwLmxlc3MnO1xuaW1wb3J0IFByb3ZpZGVyIGZyb20gJy4vbGFicy9Qcm92aWRlcic7XG5pbXBvcnQgYXBwQ29udGV4dCBmcm9tICcuL3N0b3Jlcy9hcHBDb250ZXh0JztcbmltcG9ydCBhcHBTdG9yZSBmcm9tICcuL3N0b3Jlcy9hcHBTdG9yZSc7XG5pbXBvcnQgJy4vaGVscGVycy9wb2x5ZmlsbCc7XG5pbXBvcnQgJy4vbGVzcy9nbG9iYWwubGVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiBTdHJpY3RBcHAoKSB7XG4gIHJldHVybiAoXG4gICAgPFByb3ZpZGVyIHN0b3JlPXthcHBTdG9yZX0gY29udGV4dD17YXBwQ29udGV4dH0+XG4gICAgICA8QXBwIC8+XG4gICAgPC9Qcm92aWRlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gQXBwKCkge1xuICBjb25zdCB7XG4gICAgbG9jYXRpb25TdGF0ZToge3BhdGhuYW1lfSxcbiAgfSA9IHVzZUNvbnRleHQoYXBwQ29udGV4dCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVXaW5kb3dSZXNpemUgPSAoKSA9PiB7XG4gICAgICBnbG9iYWxTdGF0ZVNlcnZpY2Uuc2V0SXNNb2JpbGVWaWV3KGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPD0gODc1KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlV2luZG93UmVzaXplKCk7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlV2luZG93UmVzaXplKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlV2luZG93UmVzaXplKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEhvbWUgLz5cbiAgICA8Lz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3RyaWN0QXBwO1xuIiwiaW1wb3J0IHtXb3Jrc3BhY2VMZWFmLCBJdGVtVmlldywgSG92ZXJQb3BvdmVyLCBURmlsZX0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtNRU1PU19WSUVXX1RZUEV9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcblxuaW1wb3J0IEFwcCBmcm9tICcuL0FwcCc7XG5pbXBvcnQgdHlwZSBNZW1vc1BsdWdpbiBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7ZGFpbHlOb3Rlc1NlcnZpY2UsIG1lbW9TZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7Z2V0RGF0ZUZyb21GaWxlfSBmcm9tICdvYnNpZGlhbi1kYWlseS1ub3Rlcy1pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgTWVtb3MgZXh0ZW5kcyBJdGVtVmlldyB7XG4gIHBsdWdpbjogTWVtb3NQbHVnaW47XG4gIGhvdmVyUG9wb3ZlcjogSG92ZXJQb3BvdmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSBtZW1vc0NvbXBvbmVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKGxlYWY6IFdvcmtzcGFjZUxlYWYsIHBsdWdpbjogTWVtb3NQbHVnaW4pIHtcbiAgICBzdXBlcihsZWFmKTtcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcblxuICAgIC8vIHRoaXMucGx1Z2luLnNldHRpbmdzID0gbnVsbDtcbiAgICAvLyBcdHBsdWdpbi5zZXR0aW5ncy5zdWJzY3JpYmUoKHZhbDphbnkpID0+IHtcbiAgICAvLyBcdHRoaXMucGx1Z2luLnNldHRpbmdzID0gdmFsO1xuXG4gICAgLy8gXHQvLyBSZWZyZXNoIHRoZSBjYWxlbmRhciBpZiBzZXR0aW5ncyBjaGFuZ2VcbiAgICAvLyBcdGlmICh0aGlzLm1lbW9zQ29tcG9uZW50KSB7XG4gICAgLy8gXHRcdHVzZVJlZnJlc2goKTtcbiAgICAvLyBcdH1cbiAgICAvLyBcdH0pO1xuICB9XG5cbiAgZ2V0RGlzcGxheVRleHQoKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgaW50ZXJhY3RpdmU6IEVpdGhlciB0aGUgYWN0aXZlIHdvcmtzcGFjZSBvciB0aGUgbG9jYWwgZ3JhcGhcbiAgICByZXR1cm4gJ01lbW9zJztcbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ01lbW9zJztcbiAgfVxuXG4gIGdldFZpZXdUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE1FTU9TX1ZJRVdfVFlQRTtcbiAgfVxuXG4gIHByaXZhdGUgb25NZW1vc1NldHRpbmdzVXBkYXRlKCk6IHZvaWQge1xuICAgIG1lbW9TZXJ2aWNlLmNsZWFyTWVtb3MoKTtcbiAgICBtZW1vU2VydmljZS5mZXRjaEFsbE1lbW9zKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uRmlsZURlbGV0ZWQoZmlsZTogVEZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoZ2V0RGF0ZUZyb21GaWxlKGZpbGUsICdkYXknKSkge1xuICAgICAgYXdhaXQgZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0TXlBbGxEYWlseU5vdGVzKCk7XG4gICAgICBtZW1vU2VydmljZS5jbGVhck1lbW9zKCk7XG4gICAgICBtZW1vU2VydmljZS5mZXRjaEFsbE1lbW9zKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGVNb2RpZmllZChmaWxlOiBURmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGUgPSBnZXREYXRlRnJvbUZpbGUoZmlsZSwgJ2RheScpO1xuXG4gICAgaWYgKGRhdGUgJiYgdGhpcy5tZW1vc0NvbXBvbmVudCkge1xuICAgICAgLy8gbWVtb1NlcnZpY2UuY2xlYXJNZW1vcygpO1xuICAgICAgbWVtb1NlcnZpY2UuZmV0Y2hBbGxNZW1vcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlQ3JlYXRlZChmaWxlOiBURmlsZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFwcC53b3Jrc3BhY2UubGF5b3V0UmVhZHkgJiYgdGhpcy5tZW1vc0NvbXBvbmVudCkge1xuICAgICAgaWYgKGdldERhdGVGcm9tRmlsZShmaWxlLCAnZGF5JykpIHtcbiAgICAgICAgZGFpbHlOb3Rlc1NlcnZpY2UuZ2V0TXlBbGxEYWlseU5vdGVzKCk7XG4gICAgICAgIC8vIG1lbW9TZXJ2aWNlLmNsZWFyTWVtb3MoKTtcbiAgICAgICAgbWVtb1NlcnZpY2UuZmV0Y2hBbGxNZW1vcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uT3BlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLm9uTWVtb3NTZXR0aW5nc1VwZGF0ZSA9IHRoaXMub25NZW1vc1NldHRpbmdzVXBkYXRlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbkZpbGVDcmVhdGVkID0gdGhpcy5vbkZpbGVDcmVhdGVkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbkZpbGVEZWxldGVkID0gdGhpcy5vbkZpbGVEZWxldGVkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbkZpbGVNb2RpZmllZCA9IHRoaXMub25GaWxlTW9kaWZpZWQuYmluZCh0aGlzKTtcblxuICAgIHRoaXMucmVnaXN0ZXJFdmVudChcbiAgICAgIHRoaXMucGx1Z2luLmFwcC53b3Jrc3BhY2Uub24oJ2xheW91dC1jaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5tZW1vc0NvbXBvbmVudCkgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKS5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2lkZSA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKVswXS5nZXRSb290KCkuc2lkZTtcbiAgICAgICAgY29uc3Qgc2lkZWJhciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgXCJkaXZbZGF0YS10eXBlPSdtZW1vc192aWV3J10gLnZpZXctY29udGVudCAubWVtb3Mtc2lkZWJhci13cmFwcGVyXCIsXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgIFwiZGl2W2RhdGEtdHlwZT0nbWVtb3NfdmlldyddIC52aWV3LWNvbnRlbnQgLmNvbnRlbnQtd3JhcHBlclwiLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoc2lkZSAhPT0gdW5kZWZpbmVkICYmIChzaWRlID09PSAnbGVmdCcgfHwgc2lkZSA9PT0gJ3JpZ2h0JykpIHtcbiAgICAgICAgICBpZiAoIXNpZGViYXI/LmNsYXNzTmFtZS5jb250YWlucygnbWVtb3Mtc2lkZWJhci13cmFwcGVyLWRpc3BsYXknKSAmJiBwYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNpZGViYXIuYWRkQ2xhc3MoJ21lbW9zLXNpZGViYXItd3JhcHBlci1kaXNwbGF5Jyk7XG4gICAgICAgICAgICBwYWdlLmNsYXNzTmFtZSA9ICdjb250ZW50LXdyYXBwZXItcGFkZGluZy1maXgnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc2lkZWJhcj8uY2xhc3NMaXN0LmNvbnRhaW5zKCdtZW1vcy1zaWRlYmFyLXdyYXBwZXItZGlzcGxheScpICYmIHBhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2lkZWJhci5yZW1vdmVDbGFzcygnbWVtb3Mtc2lkZWJhci13cmFwcGVyLWRpc3BsYXknKTtcbiAgICAgICAgICAgIHBhZ2UuY2xhc3NOYW1lID0gJ2NvbnRlbnQtd3JhcHBlcic7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICg8YW55PnRoaXMuYXBwLndvcmtzcGFjZSkub24oJ29ic2lkaWFuLW1lbW9zOnNldHRpbmdzLXVwZGF0ZWQnLCB0aGlzLm9uTWVtb3NTZXR0aW5nc1VwZGF0ZSksXG4gICAgKTtcblxuICAgIHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC52YXVsdC5vbignY3JlYXRlJywgdGhpcy5vbkZpbGVDcmVhdGVkKSk7XG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLnZhdWx0Lm9uKCdkZWxldGUnLCB0aGlzLm9uRmlsZURlbGV0ZWQpKTtcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hcHAudmF1bHQub24oJ21vZGlmeScsIHRoaXMub25GaWxlTW9kaWZpZWQpKTtcblxuICAgIGRhaWx5Tm90ZXNTZXJ2aWNlLmdldEFwcCh0aGlzLmFwcCk7XG4gICAgSW5zZXJ0QWZ0ZXIgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5JbnNlcnRBZnRlcjtcbiAgICBVc2VyTmFtZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLlVzZXJOYW1lO1xuICAgIFByb2Nlc3NFbnRyaWVzQmVsb3cgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5Qcm9jZXNzRW50cmllc0JlbG93O1xuICAgIFNhdmVNZW1vQnV0dG9uTGFiZWwgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5TYXZlTWVtb0J1dHRvbkxhYmVsO1xuICAgIERlZmF1bHRQcmVmaXggPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5EZWZhdWx0UHJlZml4O1xuICAgIEluc2VydERhdGVGb3JtYXQgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5JbnNlcnREYXRlRm9ybWF0O1xuICAgIERlZmF1bHRFZGl0b3JMb2NhdGlvbiA9IHRoaXMucGx1Z2luLnNldHRpbmdzLkRlZmF1bHRFZGl0b3JMb2NhdGlvbjtcbiAgICBVc2VCdXR0b25Ub1Nob3dFZGl0b3IgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5Vc2VCdXR0b25Ub1Nob3dFZGl0b3I7XG4gICAgRm9jdXNPbkVkaXRvciA9IHRoaXMucGx1Z2luLnNldHRpbmdzLkZvY3VzT25FZGl0b3I7XG4gICAgT3BlbkRhaWx5TWVtb3NXaXRoTWVtb3MgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5PcGVuRGFpbHlNZW1vc1dpdGhNZW1vcztcbiAgICBIaWRlRG9uZVRhc2tzID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuSGlkZURvbmVUYXNrcztcbiAgICBTaGFyZUZvb3RlclN0YXJ0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MuU2hhcmVGb290ZXJTdGFydDtcbiAgICBTaGFyZUZvb3RlckVuZCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLlNoYXJlRm9vdGVyRW5kO1xuICAgIE9wZW5NZW1vc0F1dG9tYXRpY2FsbHkgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5PcGVuTWVtb3NBdXRvbWF0aWNhbGx5O1xuXG4gICAgdGhpcy5tZW1vc0NvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXBwKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgUmVhY3RET00ucmVuZGVyKHRoaXMubWVtb3NDb21wb25lbnQsICh0aGlzIGFzIGFueSkuY29udGVudEVsKTtcbiAgfVxuXG4gIGFzeW5jIG9uQ2xvc2UoKSB7XG4gICAgLy8gTm90aGluZyB0byBjbGVhbiB1cC5cbiAgfVxufVxuXG5leHBvcnQgbGV0IEluc2VydEFmdGVyOiBzdHJpbmc7XG5leHBvcnQgbGV0IFVzZXJOYW1lOiBzdHJpbmc7XG5leHBvcnQgbGV0IFByb2Nlc3NFbnRyaWVzQmVsb3c6IHN0cmluZztcbmV4cG9ydCBsZXQgU2F2ZU1lbW9CdXR0b25MYWJlbDogc3RyaW5nO1xuZXhwb3J0IGxldCBEZWZhdWx0UHJlZml4OiBzdHJpbmc7XG5leHBvcnQgbGV0IEluc2VydERhdGVGb3JtYXQ6IHN0cmluZztcbmV4cG9ydCBsZXQgRGVmYXVsdEVkaXRvckxvY2F0aW9uOiBzdHJpbmc7XG5leHBvcnQgbGV0IFVzZUJ1dHRvblRvU2hvd0VkaXRvcjogYm9vbGVhbjtcbmV4cG9ydCBsZXQgRm9jdXNPbkVkaXRvcjogYm9vbGVhbjtcbmV4cG9ydCBsZXQgT3BlbkRhaWx5TWVtb3NXaXRoTWVtb3M6IGJvb2xlYW47XG5leHBvcnQgbGV0IEhpZGVEb25lVGFza3M6IGJvb2xlYW47XG5leHBvcnQgbGV0IFNoYXJlRm9vdGVyU3RhcnQ6IHN0cmluZztcbmV4cG9ydCBsZXQgU2hhcmVGb290ZXJFbmQ6IHN0cmluZztcbmV4cG9ydCBsZXQgT3Blbk1lbW9zQXV0b21hdGljYWxseTogYm9vbGVhbjtcbiIsImltcG9ydCB7YWRkSWNvbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5jb25zdCBpY29uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgTWVtb3M6IGA8c3ZnIHQ9XCIxNjQxMzQ4NTA3MzM5XCIgY2xhc3M9XCJpY29uXCIgdmlld0JveD1cIjAgMCAxMDI0IDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHAtaWQ9XCIyMTIwXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMDBcIj48cGF0aCBkPVwiTTEyNi42OTI2NTMgNDc4LjA5OTYzOWwtOTAuNzU3MjgxIDBjLTE5LjAxOTQwOCAwLTM0LjQzNzMzNiAxNS40MjM5MjMtMzQuNDM3MzM2IDM0LjQxNzM1NiAwIDE4Ljk5MjQzNCAxNS40MTY5MjkgMzQuNDc3Mjk3IDM0LjQzNzMzNiAzNC40NzcyOTdsOTAuNzU3MjgxIDBjMTkuMDEzNDE0IDAgMzQuNDIzMzUtMTUuNDg0ODYzIDM0LjQyMzM1LTM0LjQ3NzI5N0MxNjEuMTE2MDAzIDQ5My41MjM1NjEgMTQ1LjcwNjA2NyA0NzguMDk5NjM5IDEyNi42OTI2NTMgNDc4LjA5OTYzOXpNMjQ0LjY2MjMzMyAyNDMuNTI2OTQzYzEzLjc0MjU2Ni0xMy4xMTAxODQgMTQuMzEwMDExLTM0Ljk0ODgzNiAxLjE4NTg0MS00OC43MDYzODhsLTYyLjY0NDc2Mi02NS42Njg4MDZjLTEzLjEyODE2Ny0xMy43NjI1NDctMzQuOTc0ODExLTE0LjIyOTA5MS00OC43MTczNzctMS4xMTg5MDZzLTE0LjI2MTA1OSAzNC45MTE4NzItMS4xMzI4OTMgNDguNjc0NDE5bDYyLjY0NDc2MiA2NS42Njg4MDZDMjA5LjEyMzA3NCAyNTYuMTMyNjIgMjMwLjkxOTc2NyAyNTYuNjM3MTI3IDI0NC42NjIzMzMgMjQzLjUyNjk0M3pNNTQzLjA2NjYzMSA5NTcuNDIyMDgzbC02MC42MDM3NTcgMGMtMTguNjU0NzY0IDAtMzMuNzk0OTY0IDE1LjE0NzE5My0zMy43OTQ5NjQgMzMuODYyODk4IDAgMTguNjYxNzU3IDE1LjE0MDIgMzIuNzE1MDIgMzMuNzk0OTY0IDMyLjcxNTAybDYwLjYwMzc1NyAwYzE4LjY1NDc2NCAwIDMzLjc5NDk2NC0xNC4wNTMyNjIgMzMuNzk0OTY0LTMyLjcxNTAyQzU3Ni44NjE1OTUgOTcyLjU2ODI3NyA1NjEuNzIxMzk1IDk1Ny40MjIwODMgNTQzLjA2NjYzMSA5NTcuNDIyMDgzek05ODguMDc2NjE3IDQ3OS4wNTA3MDlsLTkwLjc1NzI4MSAwYy0xOS4wMTk0MDggMC0zNC40MzczMzYgMTUuNDIzOTIzLTM0LjQzNzMzNiAzNC40MTczNTZzMTUuNDE2OTI5IDM0LjQ3NzI5NyAzNC40MzczMzYgMzQuNDc3Mjk3bDkwLjc1NzI4MSAwYzE5LjAxMzQxNCAwIDM0LjQyMzM1LTE1LjQ4NDg2MyAzNC40MjMzNS0zNC40NzcyOTdTMTAwNy4wOTAwMyA0NzkuMDUwNzA5IDk4OC4wNzY2MTcgNDc5LjA1MDcwOXpNNTEyLjI2ODczNyAxOTIuNzY1NTY0Yy0xNzIuNzM3MTQzIDAtMzEyLjc1NTI3IDE1MC4wNzkyOTItMzEyLjc1NTI3IDMyMi43NDY1MDMgMCAxMjUuNjMwMTkyIDc0LjA4MDU4MyAyMzMuOTU3Mjk4IDE4MC45MzYxMjggMjgzLjcwMzY2OWwwIDg0LjUxODM4YzAgMTYuNzYyNjE0IDE1LjQxMDkzNSAzMS4zNTQzNSAzNC40MjMzNSAzMS4zNTQzNSAwLjU5ODQxNSAwIDEuMTkzODMzLTAuMDE0OTg1IDEuNzg1MjU1LTAuMDQyOTU4IDAuNjE4Mzk1IDAuMDI2OTc0IDEuMjM5Nzg4IDAuMDQyOTU4IDEuODY3MTc1IDAuMDQyOTU4bDE4Ny40Nzk3MzEgMGM1LjkwNTIyNyAwIDExLjQ1NTgwMi0xLjIyMDgwNyAxNi4yODgwNzgtMy40Nzc2MDEgMTIuMjMxMDQ0LTQuNjU3NDQ3IDIwLjc5NTY3MS0xNS4zODM5NjIgMjAuNzk1NjcxLTI3Ljg3NTc1bDAtODQuMDUyODM1YzEwNy4zOTEwMjEtNDkuNTM0NTc4IDE4MS45MzUxNTEtMTU4LjE0NzQwNSAxODEuOTM1MTUxLTI4NC4xNjgyMTRDODI1LjAyNDAwNyAzNDIuODQzODU3IDY4NC45OTc4ODggMTkyLjc2NTU2NCA1MTIuMjY4NzM3IDE5Mi43NjU1NjR6TTU3NC44NjM1NDggNzQyLjcxMzk2OGwwIDgwLjE3MDYzYzAgMy4xNTk5MTEtMC4yMjE3ODMgNS45NzYxNTgtMC42NDIzNzIgOC40OTY2OTRsMCAxOS4wOTIzMzYtMTI0LjkxMDg5NSAwIDAtMTcuNzE3NjhjLTAuNDIzNTg2LTIuODU2MjA4LTAuNjQyMzcyLTYuMTIzMDE1LTAuNjQyMzcyLTkuODcwMzUxbDAtODAuNDQzMzYzYy05OS4yMDQwMjQtMjcuNzUzODctMTcxLjk3MDg5Mi0xMTguODIxODQ3LTE3MS45NzA4OTItMjI2LjkzMDE2NyAwLTEzMC4wOTQ4MjcgMTA1LjQ2ODktMjQ1LjUwNzAwNyAyMzUuNTcxNzE5LTI0NS41MDcwMDdzMjM1LjU2MzcyNyAxMTUuNDEyMTggMjM1LjU2MzcyNyAyNDUuNTA3MDA3Qzc0Ny44MzI0NjUgNjIzLjk4NDAzMSA2NzQuNTc4MDc0IDcxNS4yOTM3NzIgNTc0Ljg2MzU0OCA3NDIuNzEzOTY4ek04OTUuNDA3MjA0IDEyOS4zMjg1NzZjLTEzLjQyOTg3Mi0xMy40Mjk4NzItMzUuMjMzNTU4LTEzLjQzOTg2Mi00OC42Nzc0MTYgMC4wMDQ5OTVsLTY0LjE3NDI2NyA2NC4xNzUyNjZjLTEzLjQ0ODg1MyAxMy40NDg4NTMtMTMuNDQzODU4IDM1LjI1NzUzNC0wLjAxMzk4NiA0OC42ODc0MDYgMTMuNDI5ODcyIDEzLjQyOTg3MiAzNS4yODE1MTEgMTMuNDc3ODI1IDQ4LjczMDM2NCAwLjAyODk3Mmw2NC4xNzUyNjYtNjQuMTc1MjY2QzkwOC44ODkwMjUgMTY0LjYwNTA5MiA5MDguODM3MDc2IDE0Mi43NTg0NDggODk1LjQwNzIwNCAxMjkuMzI4NTc2ek01MTEuNzk2MTk5IDE1OS42MTc5NjdjMTguOTkyNDM0IDAgMzQuNDE3MzU2LTE1LjQxMDkzNSAzNC40MTczNTYtMzQuNDIzMzVsMC05MC43NTcyODFjMC0xOS4wMTk0MDgtMTUuNDIzOTIzLTM0LjQzNzMzNi0zNC40MTczNTYtMzQuNDM3MzM2LTE4Ljk5MjQzNCAwLTM0LjQ3NzI5NyAxNS40MTY5MjktMzQuNDc3Mjk3IDM0LjQzNzMzNmwwIDkwLjc1NzI4MUM0NzcuMzE3OTAzIDE0NC4yMDgwMzEgNDkyLjgwMjc2NiAxNTkuNjE3OTY3IDUxMS43OTYxOTkgMTU5LjYxNzk2N3pcIiBwLWlkPVwiMjEyMVwiPjwvcGF0aD48L3N2Zz5gLFxufTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZEljb25zKCkge1xuICBPYmplY3Qua2V5cyhpY29ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgYWRkSWNvbihrZXksIGljb25zW2tleV0pO1xuICB9KTtcbn1cbiIsImltcG9ydCB7QXBwLCBEcm9wZG93bkNvbXBvbmVudCwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZ30gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgTWVtb3NQbHVnaW4gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgbWVtb1NlcnZpY2UgZnJvbSAnLi9zZXJ2aWNlcy9tZW1vU2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3NTZXR0aW5ncyB7XG4gIFN0YXJ0RGF0ZTogc3RyaW5nO1xuICBJbnNlcnRBZnRlcjogc3RyaW5nO1xuICBVc2VyTmFtZTogc3RyaW5nO1xuICBQcm9jZXNzRW50cmllc0JlbG93OiBzdHJpbmc7XG4gIExhbmd1YWdlOiBzdHJpbmc7XG4gIFNhdmVNZW1vQnV0dG9uTGFiZWw6IHN0cmluZztcbiAgU2hhcmVGb290ZXJTdGFydDogc3RyaW5nO1xuICBTaGFyZUZvb3RlckVuZDogc3RyaW5nO1xuICBEZWZhdWx0UHJlZml4OiBzdHJpbmc7XG4gIEluc2VydERhdGVGb3JtYXQ6IHN0cmluZztcbiAgRGVmYXVsdEVkaXRvckxvY2F0aW9uOiBzdHJpbmc7XG4gIFVzZUJ1dHRvblRvU2hvd0VkaXRvcjogYm9vbGVhbjtcbiAgRm9jdXNPbkVkaXRvcjogYm9vbGVhbjtcbiAgT3BlbkRhaWx5TWVtb3NXaXRoTWVtb3M6IGJvb2xlYW47XG4gIEhpZGVEb25lVGFza3M6IGJvb2xlYW47XG4gIE9wZW5NZW1vc0F1dG9tYXRpY2FsbHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFVFRJTkdTOiBNZW1vc1NldHRpbmdzID0ge1xuICBTdGFydERhdGU6ICdTdW5kYXknLFxuICBJbnNlcnRBZnRlcjogJyMgSm91cm5hbCcsXG4gIFVzZXJOYW1lOiAnTUVNTyDwn5iJJyxcbiAgUHJvY2Vzc0VudHJpZXNCZWxvdzogJyMgSm91cm5hbCcsXG4gIExhbmd1YWdlOiAnZW4nLFxuICBTYXZlTWVtb0J1dHRvbkxhYmVsOiAnTk9URUlUJyxcbiAgU2hhcmVGb290ZXJTdGFydDogJ3tNZW1vc051bX0gTWVtb3Mge1VzZWREYXl9IERheScsXG4gIFNoYXJlRm9vdGVyRW5kOiAn4pyN77iPIGJ5IHtVc2VyTmFtZX0nLFxuICBEZWZhdWx0UHJlZml4OiAnTGlzdCcsXG4gIEluc2VydERhdGVGb3JtYXQ6ICdUYXNrcycsXG4gIERlZmF1bHRFZGl0b3JMb2NhdGlvbjogJ1RvcCcsXG4gIFVzZUJ1dHRvblRvU2hvd0VkaXRvcjogZmFsc2UsXG4gIEZvY3VzT25FZGl0b3I6IHRydWUsXG4gIE9wZW5EYWlseU1lbW9zV2l0aE1lbW9zOiB0cnVlLFxuICBIaWRlRG9uZVRhc2tzOiBmYWxzZSxcbiAgT3Blbk1lbW9zQXV0b21hdGljYWxseTogZmFsc2UsXG59O1xuXG5leHBvcnQgY2xhc3MgTWVtb3NTZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIHBsdWdpbjogTWVtb3NQbHVnaW47XG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIHByaXZhdGUgYXBwbHlEZWJvdW5jZVRpbWVyOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IE1lbW9zUGx1Z2luKSB7XG4gICAgc3VwZXIoYXBwLCBwbHVnaW4pO1xuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgYXBwbHlTZXR0aW5nc1VwZGF0ZSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5hcHBseURlYm91bmNlVGltZXIpO1xuICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMucGx1Z2luO1xuICAgIHRoaXMuYXBwbHlEZWJvdW5jZVRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xuICAgIH0sIDEwMCk7XG4gICAgbWVtb1NlcnZpY2UudXBkYXRlVGFnc1N0YXRlKCk7XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBhc3luYyBoaWRlKCkge31cblxuICBhc3luYyBkaXNwbGF5KCkge1xuICAgIGF3YWl0IHRoaXMucGx1Z2luLmxvYWRTZXR0aW5ncygpO1xuXG4gICAgY29uc3Qge2NvbnRhaW5lckVsfSA9IHRoaXM7XG4gICAgdGhpcy5jb250YWluZXJFbC5lbXB0eSgpO1xuXG4gICAgdGhpcy5jb250YWluZXJFbC5jcmVhdGVFbCgnaDEnLCB7dGV4dDogJ0Jhc2ljIE9wdGlvbnMnfSk7XG4gICAgLy8gY29udGFpbmVyRWwuY3JlYXRlRGl2KFwiXCIsIChlbCkgPT4ge1xuICAgIC8vICAgZWwuaW5uZXJIVE1MID0gXCJCYXNpYyBPcHRpb25zXCI7XG4gICAgLy8gfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdVc2VyIG5hbWUgaW4gTWVtb3MnKVxuICAgICAgLnNldERlc2MoXCJTZXQgeW91ciB1c2VyIG5hbWUgaGVyZS4gJ01lbW9zIPCfmI8nIEJ5IGRlZmF1bHRcIilcbiAgICAgIC5hZGRUZXh0KCh0ZXh0KSA9PlxuICAgICAgICB0ZXh0XG4gICAgICAgICAgLnNldFBsYWNlaG9sZGVyKERFRkFVTFRfU0VUVElOR1MuVXNlck5hbWUpXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLlVzZXJOYW1lKVxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLlVzZXJOYW1lID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdJbnNlcnQgYWZ0ZXIgaGVhZGluZycpXG4gICAgICAuc2V0RGVzYygnWW91IHNob3VsZCBzZXQgdGhlIHNhbWUgaGVhZGluZyBiZWxvdyBpZiB5b3Ugd2FudCB0byBpbnNlcnQgYW5kIHByb2Nlc3MgbWVtb3MgYmVsb3cgdGhlIHNhbWUgaGVhZGluZy4nKVxuICAgICAgLmFkZFRleHQoKHRleHQpID0+XG4gICAgICAgIHRleHRcbiAgICAgICAgICAuc2V0UGxhY2Vob2xkZXIoREVGQVVMVF9TRVRUSU5HUy5JbnNlcnRBZnRlcilcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuSW5zZXJ0QWZ0ZXIpXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuSW5zZXJ0QWZ0ZXIgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ1Byb2Nlc3MgTWVtb3MgYmVsb3cnKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgICdPbmx5IGVudHJpZXMgYmVsb3cgdGhpcyBzdHJpbmcvc2VjdGlvbiBpbiB5b3VyIG5vdGVzIHdpbGwgYmUgcHJvY2Vzc2VkLiBJZiBpdCBkb2VzIG5vdCBleGlzdCBubyBub3RlcyB3aWxsIGJlIHByb2Nlc3NlZCBmb3IgdGhhdCBmaWxlLicsXG4gICAgICApXG4gICAgICAuYWRkVGV4dCgodGV4dCkgPT5cbiAgICAgICAgdGV4dFxuICAgICAgICAgIC5zZXRQbGFjZWhvbGRlcihERUZBVUxUX1NFVFRJTkdTLlByb2Nlc3NFbnRyaWVzQmVsb3cpXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLlByb2Nlc3NFbnRyaWVzQmVsb3cpXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuUHJvY2Vzc0VudHJpZXNCZWxvdyA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5hcHBseVNldHRpbmdzVXBkYXRlKCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnU2F2ZSBNZW1vIGJ1dHRvbiBsYWJlbCcpXG4gICAgICAuc2V0RGVzYyhcIlRoZSB0ZXh0IHNob3duIG9uIHRoZSBzYXZlIE1lbW8gYnV0dG9uIGluIHRoZSBVSS4gJ05PVEVJVCcgYnkgZGVmYXVsdC5cIilcbiAgICAgIC5hZGRUZXh0KCh0ZXh0KSA9PlxuICAgICAgICB0ZXh0XG4gICAgICAgICAgLnNldFBsYWNlaG9sZGVyKERFRkFVTFRfU0VUVElOR1MuU2F2ZU1lbW9CdXR0b25MYWJlbClcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuU2F2ZU1lbW9CdXR0b25MYWJlbClcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5TYXZlTWVtb0J1dHRvbkxhYmVsID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdGb2N1cyBvbiBlZGl0b3Igd2hlbiBvcGVuIG1lbW9zJylcbiAgICAgIC5zZXREZXNjKCdGb2N1cyBvbiBlZGl0b3Igd2hlbiBvcGVuIG1lbW9zLiBGb2N1cyBieSBkZWZhdWx0LicpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5Gb2N1c09uRWRpdG9yKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5Gb2N1c09uRWRpdG9yID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5hcHBseVNldHRpbmdzVXBkYXRlKCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ09wZW4gZGFpbHkgbWVtb3Mgd2l0aCBvcGVuIG1lbW9zJylcbiAgICAgIC5zZXREZXNjKCdPcGVuIGRhaWx5IG1lbW9zIHdpdGggb3BlbiBtZW1vcy4gT3BlbiBieSBkZWZhdWx0LicpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5PcGVuRGFpbHlNZW1vc1dpdGhNZW1vcykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuT3BlbkRhaWx5TWVtb3NXaXRoTWVtb3MgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnT3BlbiBNZW1vcyB3aGVuIG9ic2lkaWFuIG9wZW5zJylcbiAgICAgIC5zZXREZXNjKCdXSGVuIGVuYWJsZSB0aGlzLCBNZW1vcyB3aWxsIG9wZW4gd2hlbiBPYnNpZGlhbiBvcGVucy4gRmFsc2UgYnkgZGVmYXVsdC4nKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuT3Blbk1lbW9zQXV0b21hdGljYWxseSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuT3Blbk1lbW9zQXV0b21hdGljYWxseSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICB0aGlzLmNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMScsIHt0ZXh0OiAnU2hhcmUgT3B0aW9ucyd9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ1NoYXJlIE1lbW9zIEltYWdlIEZvb3RlciBTdGFydCcpXG4gICAgICAuc2V0RGVzYyhcbiAgICAgICAgXCJTZXQgYW55dGhpbmcgeW91IHdhbnQgaGVyZSwgdXNlIHtNZW1vc051bX0gdG8gZGlzcGxheSBOdW1iZXIgb2YgbWVtb3MsIHtVc2VkRGF5fSBmb3IgZGF5cy4gJ3tNZW1vc051bX0gTWVtb3Mge1VzZWREYXl9IERheXMnIEJ5IGRlZmF1bHRcIixcbiAgICAgIClcbiAgICAgIC5hZGRUZXh0KCh0ZXh0KSA9PlxuICAgICAgICB0ZXh0XG4gICAgICAgICAgLnNldFBsYWNlaG9sZGVyKERFRkFVTFRfU0VUVElOR1MuU2hhcmVGb290ZXJTdGFydClcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuU2hhcmVGb290ZXJTdGFydClcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5TaGFyZUZvb3RlclN0YXJ0ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdTaGFyZSBNZW1vcyBJbWFnZSBGb290ZXIgRW5kJylcbiAgICAgIC5zZXREZXNjKFwiU2V0IGFueXRoaW5nIHlvdSB3YW50IGhlcmUsIHVzZSB7VXNlck5hbWV9IGFzIHlvdXIgdXNlcm5hbWUuICfinI3vuI8gQnkge1VzZXJOYW1lfScgQnkgZGVmYXVsdFwiKVxuICAgICAgLmFkZFRleHQoKHRleHQpID0+XG4gICAgICAgIHRleHRcbiAgICAgICAgICAuc2V0UGxhY2Vob2xkZXIoREVGQVVMVF9TRVRUSU5HUy5TaGFyZUZvb3RlckVuZClcbiAgICAgICAgICAuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuU2hhcmVGb290ZXJFbmQpXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuU2hhcmVGb290ZXJFbmQgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIHRoaXMuY29udGFpbmVyRWwuY3JlYXRlRWwoJ2gxJywge3RleHQ6ICdBZHZhbmNlZCBPcHRpb25zJ30pO1xuXG4gICAgbGV0IGRyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudDtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ1VJIGxhbmd1YWdlJylcbiAgICAgIC5zZXREZXNjKFwiVHJhbnNsYXRlcyB0aGUgVUkgbGFuZ3VhZ2UuIE9ubHkgJ2VuJyBhbmQgJ3poJyBhcmUgYXZhaWxhYmxlLlwiKVxuICAgICAgLmFkZERyb3Bkb3duKGFzeW5jIChkOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xuICAgICAgICBkcm9wZG93biA9IGQ7XG4gICAgICAgIGRyb3Bkb3duLmFkZE9wdGlvbignemgnLCAn5Lit5paHJyk7XG4gICAgICAgIGRyb3Bkb3duLmFkZE9wdGlvbignZW4nLCAnRW5nbGlzaCcpO1xuICAgICAgICBkcm9wZG93bi5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5MYW5ndWFnZSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuTGFuZ3VhZ2UgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ0RlZmF1bHQgcHJlZml4JylcbiAgICAgIC5zZXREZXNjKFwiU2V0IHRoZSBkZWZhdWx0IHByZWZpeCB3aGVuIGNyZWF0ZSBtZW1vLCAnTGlzdCcgYnkgZGVmYXVsdC5cIilcbiAgICAgIC5hZGREcm9wZG93bihhc3luYyAoZDogRHJvcGRvd25Db21wb25lbnQpID0+IHtcbiAgICAgICAgZHJvcGRvd24gPSBkO1xuICAgICAgICBkcm9wZG93bi5hZGRPcHRpb24oJ0xpc3QnLCAnTGlzdCcpO1xuICAgICAgICBkcm9wZG93bi5hZGRPcHRpb24oJ1Rhc2snLCAnVGFzaycpO1xuICAgICAgICBkcm9wZG93bi5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5EZWZhdWx0UHJlZml4KS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5EZWZhdWx0UHJlZml4ID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5hcHBseVNldHRpbmdzVXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdEZWZhdWx0IGluc2VydCBkYXRlIGZvcm1hdCcpXG4gICAgICAuc2V0RGVzYyhcIlNldCB0aGUgZGVmYXVsdCBkYXRlIGZvcm1hdCB3aGVuIGluc2VydCBkYXRlIGJ5IEAsICdUYXNrcycgYnkgZGVmYXVsdC5cIilcbiAgICAgIC5hZGREcm9wZG93bihhc3luYyAoZDogRHJvcGRvd25Db21wb25lbnQpID0+IHtcbiAgICAgICAgZHJvcGRvd24gPSBkO1xuICAgICAgICBkcm9wZG93bi5hZGRPcHRpb24oJ1Rhc2tzJywgJ1Rhc2tzJyk7XG4gICAgICAgIGRyb3Bkb3duLmFkZE9wdGlvbignRGF0YXZpZXcnLCAnRGF0YXZpZXcnKTtcbiAgICAgICAgZHJvcGRvd24uc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuSW5zZXJ0RGF0ZUZvcm1hdCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuSW5zZXJ0RGF0ZUZvcm1hdCA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnRGVmYXVsdCBlZGl0b3IgcG9zaXRpb24gb24gbW9iaWxlJylcbiAgICAgIC5zZXREZXNjKFwiU2V0IHRoZSBkZWZhdWx0IGVkaXRvciBwb3NpdGlvbiBvbiBNb2JpbGUsICdUb3AnIGJ5IGRlZmF1bHQuXCIpXG4gICAgICAuYWRkRHJvcGRvd24oYXN5bmMgKGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XG4gICAgICAgIGRyb3Bkb3duID0gZDtcbiAgICAgICAgZHJvcGRvd24uYWRkT3B0aW9uKCdUb3AnLCAnVG9wJyk7XG4gICAgICAgIGRyb3Bkb3duLmFkZE9wdGlvbignQm90dG9tJywgJ0JvdHRvbScpO1xuICAgICAgICBkcm9wZG93bi5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5EZWZhdWx0RWRpdG9yTG9jYXRpb24pLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLkRlZmF1bHRFZGl0b3JMb2NhdGlvbiA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnVXNlIGJ1dHRvbiB0byBzaG93IGVkaXRvciBvbiBtb2JpbGUnKVxuICAgICAgLnNldERlc2MoJ1NldCBhIGZsb2F0IGJ1dHRvbiB0byBjYWxsIGVkaXRvciBvbiBtb2JpbGUuIE9ubHkgd2hlbiBlZGl0b3IgbG9jYXRlZCBhdCB0aGUgYm90dG9tIHdvcmtzLicpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5Vc2VCdXR0b25Ub1Nob3dFZGl0b3IpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLlVzZUJ1dHRvblRvU2hvd0VkaXRvciA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuYXBwbHlTZXR0aW5nc1VwZGF0ZSgpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdIaWRlIGRvbmUgdGFza3MgaW4gTWVtbyBsaXN0JylcbiAgICAgIC5zZXREZXNjKCdIaWRlIGFsbCBkb25lIHRhc2tzIGluIE1lbW8gbGlzdC4gU2hvdyBkb25lIHRhc2tzIGJ5IGRlZmF1bHQuJylcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLkhpZGVEb25lVGFza3MpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLkhpZGVEb25lVGFza3MgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLmFwcGx5U2V0dGluZ3NVcGRhdGUoKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgdGhpcy5jb250YWluZXJFbC5jcmVhdGVFbCgnaDEnLCB7dGV4dDogJ1NheSBUaGFuayBZb3UnfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdEb25hdGUnKVxuICAgICAgLnNldERlc2MoJ0lmIHlvdSBsaWtlIHRoaXMgcGx1Z2luLCBjb25zaWRlciBkb25hdGluZyB0byBzdXBwb3J0IGNvbnRpbnVlZCBkZXZlbG9wbWVudDonKVxuICAgICAgLy8gLnNldENsYXNzKFwiQVQtZXh0cmFcIilcbiAgICAgIC5hZGRCdXR0b24oKGJ0KSA9PiB7XG4gICAgICAgIGJ0LmJ1dHRvbkVsLm91dGVySFRNTCA9IGA8YSBocmVmPVwiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9ib25pbmFsbFwiPjxpbWcgc3JjPVwiaHR0cHM6Ly9pbWcuYnV5bWVhY29mZmVlLmNvbS9idXR0b24tYXBpLz90ZXh0PUJ1eSBtZSBhIGNvZmZlZSZlbW9qaT0mc2x1Zz1ib25pbmFsbCZidXR0b25fY29sb3VyPTY0OTVFRCZmb250X2NvbG91cj1mZmZmZmYmZm9udF9mYW1pbHk9SW50ZXImb3V0bGluZV9jb2xvdXI9MDAwMDAwJmNvZmZlZV9jb2xvdXI9RkZERDAwXCI+PC9hPmA7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiZXhwb3J0IGNvbnN0IFRSQU5TTEFUSU9OU19aSCA9IHtcbiAgd2VsY29tZTogJ+asoui/juS9v+eUqCBNZW1vcyAnLFxuICByaWJib25JY29uVGl0bGU6ICdNZW1vcycsXG4gIG1vbnRoczogWyfkuIDmnIgnLCAn5LqM5pyIJywgJ+S4ieaciCcsICflm5vmnIgnLCAn5LqU5pyIJywgJ+WFreaciCcsICfkuIPmnIgnLCAn5YWr5pyIJywgJ+S5neaciCcsICfljYHmnIgnLCAn5Y2B5LiA5pyIJywgJ+WNgeS6jOaciCddLFxuICB3ZWVrRGF5czogWyflkajml6UnLCAn5ZGo5LiAJywgJ+WRqOS6jCcsICflkajkuIknLCAn5ZGo5ZubJywgJ+WRqOS6lCcsICflkajlha0nXSxcbiAgd2Vla0RheXNTaG9ydDogWyflkajml6UnLCAn5ZGo5LiAJywgJ+WRqOS6jCcsICflkajkuIknLCAn5ZGo5ZubJywgJ+WRqOS6lCcsICflkajlha0nXSxcbiAgdG86ICfoh7MnLFxufTtcbiIsImV4cG9ydCBjb25zdCBUUkFOU0xBVElPTlNfRU4gPSB7XG4gIHdlbGNvbWU6ICdXZWxjb21lIHRvIHRoZSBNZW1vcycsXG4gIHJpYmJvbkljb25UaXRsZTogJ01lbW9zJyxcbiAgbW9udGhzOiBbXG4gICAgJ0phbnVhcnknLFxuICAgICdGZWJydWFyeScsXG4gICAgJ01hcmNoJyxcbiAgICAnQXByaWwnLFxuICAgICdNYXknLFxuICAgICdKdW5lJyxcbiAgICAnSnVseScsXG4gICAgJ0F1Z3VzdCcsXG4gICAgJ1NlcHRlbWJlcicsXG4gICAgJ09jdG9iZXInLFxuICAgICdOb3ZlbWJlcicsXG4gICAgJ0RlY2VtYmVyJyxcbiAgXSxcbiAgd2Vla0RheXM6IFsnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheScsICdTdW5kYXknXSxcbiAgd2Vla0RheXNTaG9ydDogWydNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nXSxcbiAgdG86ICd0bycsXG59O1xuIiwiaW1wb3J0IHtQbHVnaW4sIE5vdGljZSwgRmlsZVZpZXcsIFBsYXRmb3JtfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge01lbW9zLCBGb2N1c09uRWRpdG9yLCBPcGVuRGFpbHlNZW1vc1dpdGhNZW1vc30gZnJvbSAnLi9tZW1vcyc7XG5pbXBvcnQge01FTU9TX1ZJRVdfVFlQRX0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IGFkZEljb25zIGZyb20gJy4vb2JDb21wb25lbnRzL2N1c3RvbUljb25zJztcbmltcG9ydCAnLi9oZWxwZXJzL3BvbHlmaWxsJztcbmltcG9ydCAnLi9sZXNzL2dsb2JhbC5sZXNzJztcbmltcG9ydCB7TWVtb3NTZXR0aW5nVGFiLCBERUZBVUxUX1NFVFRJTkdTLCBNZW1vc1NldHRpbmdzfSBmcm9tICcuL3NldHRpbmcnO1xuaW1wb3J0IHthcHBIYXNEYWlseU5vdGVzUGx1Z2luTG9hZGVkfSBmcm9tICdvYnNpZGlhbi1kYWlseS1ub3Rlcy1pbnRlcmZhY2UnO1xuLy8gaW1wb3J0IHsgZWRpdG9ySW5wdXQgfSBmcm9tIFwiLi9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JcIjtcbmltcG9ydCBzaG93RGFpbHlNZW1vRGlhcnlEaWFsb2cgZnJvbSAnLi9jb21wb25lbnRzL0RhaWx5TWVtb0RpYXJ5RGlhbG9nJztcbmltcG9ydCBpMThuZXh0IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHtUUkFOU0xBVElPTlNfWkh9IGZyb20gJy4vdHJhbnNsYXRpb25zL3poL3RyYW5zbGF0aW9ucyc7XG5pbXBvcnQge1RSQU5TTEFUSU9OU19FTn0gZnJvbSAnLi90cmFuc2xhdGlvbnMvZW4vdHJhbnNsYXRpb25zJztcbi8vIGltcG9ydCB7IGdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzXCI7XG5cbi8vIGRlY2xhcmUgbW9kdWxlIFwib2JzaWRpYW5cIiB7XG4vLyAgIGludGVyZmFjZSBBcHAge1xuLy8gICAgICAgaXNNb2JpbGU6IGJvb2xlYW47XG4vLyAgIH1cbi8vIH1cblxuLy8gY29uc3QgbW9ua2V5UGF0Y2hDb25zb2xlID0gKHBsdWdpbjogUGx1Z2luKSA9PiB7XG5cbi8vICAgaWYgKCFQbGF0Zm9ybS5pc01vYmlsZSkge1xuLy8gICAgICAgcmV0dXJuO1xuLy8gICB9XG5cbi8vICAgY29uc3QgbG9nRmlsZSA9IGAke3BsdWdpbi5tYW5pZmVzdC5kaXJ9L2xvZ3MudHh0YDtcbi8vICAgY29uc3QgbG9nczogc3RyaW5nW10gPSBbXTtcbi8vICAgY29uc3QgbG9nTWVzc2FnZXMgPSAocHJlZml4OiBzdHJpbmcpID0+ICguLi5tZXNzYWdlczogdW5rbm93bltdKSA9PiB7XG4vLyAgICAgICBsb2dzLnB1c2goYFxcblske3ByZWZpeH1dYCk7XG4vLyAgICAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgbWVzc2FnZXMpIHtcbi8vICAgICAgICAgICBsb2dzLnB1c2goU3RyaW5nKG1lc3NhZ2UpKTtcbi8vICAgICAgIH1cbi8vICAgICAgIHBsdWdpbi5hcHAudmF1bHQuYWRhcHRlci53cml0ZShsb2dGaWxlLCBsb2dzLmpvaW4oXCIgXCIpKTtcbi8vICAgfTtcblxuLy8gICBjb25zb2xlLmRlYnVnID0gbG9nTWVzc2FnZXMoXCJkZWJ1Z1wiKTtcbi8vICAgY29uc29sZS5lcnJvciA9IGxvZ01lc3NhZ2VzKFwiZXJyb3JcIik7XG4vLyAgIGNvbnNvbGUuaW5mbyA9IGxvZ01lc3NhZ2VzKFwiaW5mb1wiKTtcbi8vICAgY29uc29sZS5sb2cgPSBsb2dNZXNzYWdlcyhcImxvZ1wiKTtcbi8vICAgY29uc29sZS53YXJuID0gbG9nTWVzc2FnZXMoXCJ3YXJuXCIpO1xuLy8gfTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVtb3NQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBwdWJsaWMgc2V0dGluZ3M6IE1lbW9zU2V0dGluZ3M7XG4gIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZygnb2JzaWRpYW4tbWVtb3MgbG9hZGluZy4uLicpO1xuICAgIC8vIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX1NFVFRJTkdTLCBhd2FpdCB0aGlzLmxvYWREYXRhKCkpO1xuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gICAgYXdhaXQgdGhpcy5pbml0TG9jYWxpemF0aW9uKCk7XG5cbiAgICAvLyBtb25rZXlQYXRjaENvbnNvbGUodGhpcyk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyVmlldyhNRU1PU19WSUVXX1RZUEUsIChsZWFmKSA9PiBuZXcgTWVtb3MobGVhZiwgdGhpcykpO1xuXG4gICAgLy8gdGhpcy5yZWdpc3RlclZpZXcoXG4gICAgLy8gICBNRU1PU19WSUVXX1RZUEUsXG4gICAgLy8gICAobGVhZjogV29ya3NwYWNlTGVhZikgPT4gKHRoaXMudmlldyA9IG5ldyBNZW1vcyhsZWFmLCB0aGlzLmFwcC5wbHVnaW4pKVxuICAgIC8vICk7XG5cbiAgICB0aGlzLmFkZFNldHRpbmdUYWIobmV3IE1lbW9zU2V0dGluZ1RhYih0aGlzLmFwcCwgdGhpcykpO1xuXG4gICAgYWRkSWNvbnMoKTtcbiAgICB0aGlzLmFkZFJpYmJvbkljb24oJ01lbW9zJywgaTE4bmV4dC50KCdyaWJib25JY29uVGl0bGUnKSwgKCkgPT4ge1xuICAgICAgbmV3IE5vdGljZSgnT3BlbiBNZW1vcyBTdWNjZXNzZnVsbHknKTtcbiAgICAgIHRoaXMub3Blbk1lbW9zKCk7XG4gICAgfSk7XG5cbiAgICBpZiAoYXBwSGFzRGFpbHlOb3Rlc1BsdWdpbkxvYWRlZCgpKSB7XG4gICAgICBuZXcgTm90aWNlKCdDaGVjayBpZiB5b3Ugb3BlbmVkIERhaWx5IE5vdGVzIFBsdWdpbicpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ29wZW4tbWVtb3MnLFxuICAgICAgbmFtZTogJ09wZW4gTWVtb3MnLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMub3Blbk1lbW9zKCksXG4gICAgICBob3RrZXlzOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2ZvY3VzLW9uLW1lbW9zLWVkaXRvcicsXG4gICAgICBuYW1lOiAnRm9jdXMgT24gTWVtb3MgRWRpdG9yJyxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLmZvY3VzT25FZGl0b3IoKSxcbiAgICAgIGhvdGtleXM6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnc2hvdy1kYWlseS1tZW1vJyxcbiAgICAgIG5hbWU6ICdTaG93IERhaWx5IE1lbW8nLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMub3BlbkRhaWx5TWVtbygpLFxuICAgICAgaG90a2V5czogW10sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0aGlzLm9uTGF5b3V0UmVhZHkuYmluZCh0aGlzKSk7XG4gICAgY29uc29sZS5sb2coaTE4bmV4dC50KCd3ZWxjb21lJykpO1xuICAgIGNvbnNvbGUubG9nKCdvYnNpZGlhbi1tZW1vcyBsb2FkZWQnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XG4gIH1cblxuICBhc3luYyBzYXZlU2V0dGluZ3MoKSB7XG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcbiAgfVxuXG4gIG9udW5sb2FkKCkge1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5kZXRhY2hMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKTtcbiAgICBuZXcgTm90aWNlKCdDbG9zZSBNZW1vcyBTdWNjZXNzZnVsbHknKTtcbiAgfVxuXG4gIGFzeW5jIG9uTGF5b3V0UmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoTUVNT1NfVklFV19UWVBFKT8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNldHRpbmdzLk9wZW5NZW1vc0F1dG9tYXRpY2FsbHkgIT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcGVuTWVtb3MoKTtcbiAgfVxuXG4gIGFzeW5jIG9wZW5EYWlseU1lbW8oKSB7XG4gICAgY29uc3Qgd29ya3NwYWNlTGVhdmVzID0gdGhpcy5hcHAud29ya3NwYWNlLmdldExlYXZlc09mVHlwZShNRU1PU19WSUVXX1RZUEUpO1xuICAgIGlmIChPcGVuRGFpbHlNZW1vc1dpdGhNZW1vcyA9PT0gdHJ1ZSkge1xuICAgICAgaWYgKHdvcmtzcGFjZUxlYXZlcyAhPT0gdW5kZWZpbmVkICYmIHdvcmtzcGFjZUxlYXZlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5vcGVuTWVtb3MoKTtcbiAgICAgICAgc2hvd0RhaWx5TWVtb0RpYXJ5RGlhbG9nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaG93RGFpbHlNZW1vRGlhcnlEaWFsb2coKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2hvd0RhaWx5TWVtb0RpYXJ5RGlhbG9nKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb3Blbk1lbW9zKCkge1xuICAgIGNvbnN0IHdvcmtzcGFjZSA9IHRoaXMuYXBwLndvcmtzcGFjZTtcbiAgICB3b3Jrc3BhY2UuZGV0YWNoTGVhdmVzT2ZUeXBlKE1FTU9TX1ZJRVdfVFlQRSk7XG4gICAgY29uc3QgbGVhZiA9IHdvcmtzcGFjZS5nZXRMZWFmKFxuICAgICAgIVBsYXRmb3JtLmlzTW9iaWxlICYmIHdvcmtzcGFjZS5hY3RpdmVMZWFmICYmIHdvcmtzcGFjZS5hY3RpdmVMZWFmLnZpZXcgaW5zdGFuY2VvZiBGaWxlVmlldyxcbiAgICApO1xuICAgIGF3YWl0IGxlYWYuc2V0Vmlld1N0YXRlKHt0eXBlOiBNRU1PU19WSUVXX1RZUEV9KTtcbiAgICB3b3Jrc3BhY2UucmV2ZWFsTGVhZihsZWFmKTtcbiAgICBpZiAoRm9jdXNPbkVkaXRvciAhPT0gZmFsc2UpIHtcbiAgICAgIGxlYWYudmlldy5jb250YWluZXJFbC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNPbkVkaXRvcigpIHtcbiAgICBjb25zdCB3b3Jrc3BhY2UgPSB0aGlzLmFwcC53b3Jrc3BhY2U7XG4gICAgY29uc3QgbGVhdmVzID0gd29ya3NwYWNlLmdldExlYXZlc09mVHlwZShNRU1PU19WSUVXX1RZUEUpO1xuICAgIGlmIChsZWF2ZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbGVhZiA9IGxlYXZlc1swXTtcbiAgICAgIHdvcmtzcGFjZS5zZXRBY3RpdmVMZWFmKGxlYWYpO1xuICAgICAgbGVhZi52aWV3LmNvbnRhaW5lckVsLnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJykuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuTWVtb3MoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBpbml0TG9jYWxpemF0aW9uKCkge1xuICAgIGkxOG5leHQuaW5pdCh7XG4gICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgZW46IHtcbiAgICAgICAgICB0cmFuc2xhdGlvbjogVFJBTlNMQVRJT05TX0VOLFxuICAgICAgICB9LFxuICAgICAgICB6aDoge1xuICAgICAgICAgIHRyYW5zbGF0aW9uOiBUUkFOU0xBVElPTlNfWkgsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaTE4bmV4dC5jaGFuZ2VMYW5ndWFnZSh0aGlzLnNldHRpbmdzLkxhbmd1YWdlKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbInJlcXVpcmUkJDAiLCJuIiwicCIsInEiLCJyIiwiQiIsIkQiLCJGIiwiRSIsIkciLCJIIiwiSSIsIk0iLCJlc2NhcGUiLCJOIiwiTyIsInkiLCJSIiwiVCIsIlAiLCJTIiwiX3JlYWN0XzE3XzBfMl9yZWFjdE1vZHVsZSIsIl9zY2hlZHVsZXJfMF8yMF8yX3NjaGVkdWxlck1vZHVsZSIsIm0iLCJyZXF1aXJlJCQxIiwicmVxdWlyZSQkMiIsImlkIiwiX3JlYWN0RG9tXzE3XzBfMl9yZWFjdERvbU1vZHVsZSIsImRlZmF1bHRTdGF0ZSIsInV0aWxzIiwibWFpbiIsIkRhaWx5Tm90ZXNGb2xkZXJNaXNzaW5nRXJyb3IiLCJnZXRBbGxEYWlseU5vdGVzIiwiZ2xvYmFsU3RvcmUuZGVmYXVsdFN0YXRlIiwibG9jYXRpb25TdG9yZS5kZWZhdWx0U3RhdGUiLCJtZW1vU3RvcmUuZGVmYXVsdFN0YXRlIiwidXNlclN0b3JlLmRlZmF1bHRTdGF0ZSIsInF1ZXJ5U3RvcmUuZGVmYXVsdFN0YXRlIiwiZGFpbHlOb3Rlc1N0b3JlLmRlZmF1bHRTdGF0ZSIsImdsb2JhbFN0b3JlLnJlZHVjZXIiLCJsb2NhdGlvblN0b3JlLnJlZHVjZXIiLCJtZW1vU3RvcmUucmVkdWNlciIsInVzZXJTdG9yZS5yZWR1Y2VyIiwicXVlcnlTdG9yZS5yZWR1Y2VyIiwiZGFpbHlOb3Rlc1N0b3JlLnJlZHVjZXIiLCJjcmVhdGVDb250ZXh0IiwiZ2V0RGFpbHlOb3RlIiwibW9tZW50IiwiZ2V0QWxsTGluZXNGcm9tRmlsZSIsImdldERhaWx5Tm90ZVNldHRpbmdzIiwiVEZpbGUiLCJnZXRJREZyb21MaW5lIiwiZ2V0UGlubmVkRGF0ZUZyb21MaW5lIiwibm9ybWFsaXplUGF0aCIsIk5vdGljZSIsImdldERhdGVGcm9tRmlsZSIsImNyZWF0ZURhaWx5Tm90ZSIsImV4dHJhY3RDb250ZW50ZnJvbVRleHQiLCJhcGkiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwianN4UnVudGltZU1vZHVsZSIsImpzeFJ1bnRpbWUuanN4IiwianN4UnVudGltZS5qc3hzIiwianN4UnVudGltZS5GcmFnbWVudCIsIk9ubHlXaGVuIiwicHJvcHMiLCJjaGlsZHJlbiIsIndoZW4iLCJPbmx5IiwiZ2xvYmFsIiwiX2RlZmluZVByb3BlcnR5IiwiX2RlZmluZVByb3BlcnRpZXMiLCJfdHlwZW9mIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9nZXRQcm90b3R5cGVPZiIsIl9zZXRQcm90b3R5cGVPZiIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfY2xhc3NDYWxsQ2hlY2siLCJfaW5oZXJpdHMiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9jcmVhdGVDbGFzcyIsIlJlYWN0IiwiUmVhY3RET00iLCJfb2JqZWN0U3ByZWFkIiwiQ3VzdG9tRXZlbnQiLCJUSXRlbSIsImVudGl0eSIsIm5hbWUiLCJjaGFyIiwiZmlsZSIsIkxvYWRpbmciLCJkYXRhIiwiRWRpdG9yIiwiZm9yd2FyZFJlZiIsInJlZiIsImdsb2JhbFN0YXRlIiwidXNlVGlueVVuZG9IaXN0b3J5Q2FjaGUiLCJ1c2VDb250ZXh0IiwiYXBwQ29udGV4dCIsImNsYXNzTmFtZSIsImluaXRpYWxDb250ZW50IiwicGxhY2Vob2xkZXIiLCJzaG93Q29uZmlybUJ0biIsInNob3dDYW5jZWxCdG4iLCJvbkNvbmZpcm1CdG5DbGljayIsImhhbmRsZUNvbmZpcm1CdG5DbGlja0NhbGxiYWNrIiwib25DYW5jZWxCdG5DbGljayIsImhhbmRsZUNhbmNlbEJ0bkNsaWNrQ2FsbGJhY2siLCJvbkNvbnRlbnRDaGFuZ2UiLCJoYW5kbGVDb250ZW50Q2hhbmdlQ2FsbGJhY2siLCJlZGl0b3JSZWYiLCJ1c2VSZWYiLCJ0aW55VW5kb1JlZiIsInJlZnJlc2giLCJ1c2VSZWZyZXNoIiwiYWN0dWFsVG9rZW4iLCJjdXJyZW50IiwidmFsdWUiLCJ0aW55VW5kb0FjdGlvbnNDYWNoZSIsInRpbnlVbmRvSW5kZXhDYWNoZSIsInN0b3JhZ2UiLCJnZXQiLCJUaW55VW5kbyIsImludGVydmFsIiwiaW5pdGlhbEFjdGlvbnMiLCJpbml0aWFsSW5kZXgiLCJzdWJzY3JpYmUiLCJhY3Rpb25zIiwiaW5kZXgiLCJzZXQiLCJkZXN0cm95IiwicmVtb3ZlIiwic3R5bGUiLCJoZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJlbGVtZW50IiwiZm9jdXMiLCJpbnNlcnRUZXh0IiwicmF3VGV4dCIsInByZXZWYWx1ZSIsInNsaWNlIiwic2VsZWN0aW9uU3RhcnQiLCJzZXRDb250ZW50IiwidGV4dCIsImdldENvbnRlbnQiLCJoYW5kbGVJbnNlcnRUcmlnZ2VyIiwiZXZlbnQiLCJmaWxlTWFuYWdlciIsImFwcFN0b3JlIiwiZ2V0U3RhdGUiLCJkYWlseU5vdGVzU3RhdGUiLCJhcHAiLCJjdXJyZW50VHJpZ2dlciIsInJlbW92ZUNoYXJOdW0iLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJiZWhpbmRDaGFyTnVtIiwiaSIsIml0ZW0iLCJmaWxlUGF0aCIsImdlbmVyYXRlTWFya2Rvd25MaW5rIiwicGF0aCIsImNvbnRhaW5zIiwiZXh0ZW5zaW9uIiwiaGFuZGxlRWRpdG9ySW5wdXQiLCJoYW5kbGVFZGl0b3JLZXlEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiY29kZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwiaGFuZGxlQ29tbW9uQ29uZmlybUJ0bkNsaWNrIiwiZ2V0RWRpdG9yQ29udGVudENhY2hlIiwicmVzZXRTdGF0ZSIsImhhbmRsZUNvbW1vbkNhbmNlbEJ0bkNsaWNrIiwiZWRpdG9yQ29udGVudENhY2hlIiwiZ2V0RWRpdG9yQ29udGVudCIsInJ0YSIsInRleHRhcmVhIiwibWluSGVpZ2h0IiwibWluV2lkdGgiLCJtYXhIZWlnaHQiLCJvdmVyZmxvd1kiLCJkYXRhUHJvdmlkZXIiLCJ0b2tlbiIsInVzZWRUYWdzIiwibWFwIiwiY29tcG9uZW50IiwiYWZ0ZXJXaGl0ZXNwYWNlIiwib3V0cHV0IiwiZ2V0U3VnZ2VzdGlvbnMiLCJ0b29scyIsIlNhdmVNZW1vQnV0dG9uTGFiZWwiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlRWZmZWN0IiwiZmluZEluZGV4IiwiTUlMTElTRUNPTkRTX0lOX0RBWSIsIk1JTExJU0VDT05EU19JTl9XRUVLIiwiZm9ybWF0RGlzdGFuY2UiLCJmb3JtYXRMb25nIiwiZm9ybWF0UmVsYXRpdmUiLCJsb2NhbGl6ZSIsIm1hdGNoIiwiZm9ybWF0dGVycyIsImxpZ2h0Rm9ybWF0dGVycyIsImRlZmF1bHRMb2NhbGUiLCJsb25nRm9ybWF0dGVycyIsInNldERhdGVNb250aCIsImlzRm9jdXNhYmxlIiwiUmVhY3QudXNlTGF5b3V0RWZmZWN0IiwiUmVhY3QudXNlRWZmZWN0IiwiZWZmZWN0IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsIm1pbiIsIm1heCIsIm1hdGhNYXgiLCJtYXRoTWluIiwiaGFzaCIsImFsbFBsYWNlbWVudHMiLCJwbGFjZW1lbnRzIiwicG9wcGVyT2Zmc2V0cyIsImNvbXB1dGVTdHlsZXMiLCJhcHBseVN0eWxlcyIsIm9mZnNldCIsImZsaXAiLCJwcmV2ZW50T3ZlcmZsb3ciLCJhcnJvdyIsImhpZGUiLCJSZWFjdC51c2VSZWYiLCJSZWFjdC51c2VTdGF0ZSIsIlJlYWN0LnVzZU1lbW8iLCJpc0VxdWFsIiwiY3JlYXRlUG9wcGVyIiwiZGVmYXVsdENyZWF0ZVBvcHBlciIsIlJlYWN0UHJvcFR5cGVzU2VjcmV0IiwiX3Byb3BUeXBlc18xNV84XzFfcHJvcFR5cGVzTW9kdWxlIiwib3duS2V5cyIsImNyZWF0ZUZvY3VzVHJhcCIsIm9iaiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiVHlwZUVycm9yIiwidGFyZ2V0IiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY3JlYXRlIiwibyIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiU3VwZXIiLCJyZXN1bHQiLCJOZXdUYXJnZXQiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiYXJndW1lbnRzIiwiYXBwbHkiLCJzZWxmIiwiY2FsbCIsIlJlZmVyZW5jZUVycm9yIiwic2hhbSIsIlByb3h5IiwiQm9vbGVhbiIsInZhbHVlT2YiLCJlIiwiZ2V0UHJvdG90eXBlT2YiLCJyZXF1aXJlIiwiUHJvcFR5cGVzIiwiX3JlcXVpcmUiLCJGb2N1c1RyYXAiLCJfUmVhY3QkQ29tcG9uZW50IiwiX3N1cGVyIiwiX2NyZWF0ZVN1cGVyIiwiX3RoaXMiLCJ0YWlsb3JlZEZvY3VzVHJhcE9wdGlvbnMiLCJyZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZSIsImZvY3VzVHJhcE9wdGlvbnMiLCJvcHRpb25OYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvblBvc3REZWFjdGl2YXRlIiwiZm9jdXNUcmFwRWxlbWVudHMiLCJjb250YWluZXJFbGVtZW50cyIsInVwZGF0ZVByZXZpb3VzRWxlbWVudCIsImRvY3VtZW50Iiwib3B0aW9uVmFsdWUiLCJub2RlIiwiX3RoaXMkZ2V0RG9jdW1lbnQiLCJnZXREb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJFcnJvciIsImNvbmNhdCIsImdldE5vZGVGb3JPcHRpb24iLCJwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQiLCJjdXJyZW50RG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwiX3RoaXMyIiwiX3RoaXMkdGFpbG9yZWRGb2N1c1RyIiwiY2hlY2tDYW5SZXR1cm5Gb2N1cyIsIl90aGlzJHRhaWxvcmVkRm9jdXNUcjIiLCJwcmV2ZW50U2Nyb2xsIiwiZm9jdXNUcmFwIiwiZGVhY3RpdmF0ZSIsInJldHVybkZvY3VzIiwiZmluaXNoRGVhY3RpdmF0aW9uIiwicmV0dXJuRm9jdXNOb2RlIiwiZ2V0UmV0dXJuRm9jdXNOb2RlIiwiY2FuUmV0dXJuRm9jdXMiLCJ0aGVuIiwiZm9jdXNUcmFwRWxlbWVudERPTU5vZGVzIiwiZmluZERPTU5vZGUiLCJub2Rlc0V4aXN0Iiwic29tZSIsIl9jcmVhdGVGb2N1c1RyYXAiLCJhY3RpdmUiLCJhY3RpdmF0ZSIsInBhdXNlZCIsInBhdXNlIiwic2V0dXBGb2N1c1RyYXAiLCJwcmV2UHJvcHMiLCJ1cGRhdGVDb250YWluZXJFbGVtZW50cyIsImhhc0FjdGl2YXRlZCIsImhhc0RlYWN0aXZhdGVkIiwiaGFzUGF1c2VkIiwiaGFzVW5wYXVzZWQiLCJkZWFjdGl2YXRlVHJhcCIsInVucGF1c2UiLCJfdGhpczMiLCJjaGlsZCIsIkNoaWxkcmVuIiwib25seSIsInR5cGUiLCJGcmFnbWVudCIsImNvbXBvc2VkUmVmQ2FsbGJhY2siLCJjaGlsZFdpdGhSZWYiLCJjbG9uZUVsZW1lbnQiLCJDb21wb25lbnQiLCJFbGVtZW50VHlwZSIsIkVsZW1lbnQiLCJGdW5jdGlvbiIsInByb3BUeXBlcyIsImJvb2wiLCJzaGFwZSIsIm9iamVjdCIsIm9uQWN0aXZhdGUiLCJmdW5jIiwib25Qb3N0QWN0aXZhdGUiLCJjaGVja0NhbkZvY3VzVHJhcCIsIm9uRGVhY3RpdmF0ZSIsImluaXRpYWxGb2N1cyIsIm9uZU9mVHlwZSIsImluc3RhbmNlT2YiLCJzdHJpbmciLCJmYWxsYmFja0ZvY3VzIiwiZXNjYXBlRGVhY3RpdmF0ZXMiLCJjbGlja091dHNpZGVEZWFjdGl2YXRlcyIsInNldFJldHVybkZvY3VzIiwiYWxsb3dPdXRzaWRlQ2xpY2siLCJhcnJheU9mIiwiZGVmYXVsdFByb3BzIiwibW9kdWxlIiwiZ2V0Q3Vyc29yUG9zdGlvbiIsImlucHV0Iiwib2Zmc2V0TGVmdCIsImlucHV0WCIsIm9mZnNldFRvcCIsImlucHV0WSIsIm9mZnNldEhlaWdodCIsImlucHV0SCIsIm9mZnNldFdpZHRoIiwiaW5wdXRXIiwic2VsZWN0aW9uRW5kIiwic2VsZWN0aW9uUG9pbnQiLCJkaXYiLCJjcmVhdGVFbGVtZW50IiwiY29weVN0eWxlIiwid2luZG93Iiwic2V0UHJvcGVydHkiLCJnZXRQcm9wZXJ0eVZhbHVlIiwicG9zaXRpb24iLCJ2aXNpYmlsaXR5Iiwid2hpdGVTcGFjZSIsInN3YXAiLCJpbnB1dFZhbHVlIiwidGFnTmFtZSIsInJlcGxhY2UiLCJ0ZXh0Q29udGVudCIsInN1YnN0cmluZyIsInNwYW4iLCJhcHBlbmRDaGlsZCIsImJvZHkiLCJzcGFuWCIsInNwYW5ZIiwic3BhbkgiLCJzcGFuVyIsInJlbW92ZUNoaWxkIiwieCIsImgiLCJ3IiwiaXNMaXN0IiwiaXNFZGl0b3IiLCJpc0VkaXRvckdvIiwicG9zaXRpb25YIiwiTWVtb0VkaXRvciIsImlzTGlzdFNob3duIiwidG9nZ2xlTGlzdCIsInVzZVRvZ2dsZSIsImlzRWRpdG9yU2hvd24iLCJ0b2dnbGVFZGl0b3IiLCJwcmV2R2xvYmFsU3RhdGVSZWYiLCJzZWxlY3RlZCIsInNldFNlbGVjdGVkIiwiaXNQb3BwZXJPcGVuIiwic2V0SXNQb3BwZXJPcGVuIiwicG9wcGVyUmVmIiwicG9wcGVyRWxlbWVudCIsInNldFBvcHBlckVsZW1lbnQiLCJwb3BwZXIiLCJEZWZhdWx0UHJlZml4IiwiUGxhdGZvcm0iLCJpc01vYmlsZSIsImlubmVyV2lkdGgiLCJVc2VCdXR0b25Ub1Nob3dFZGl0b3IiLCJEZWZhdWx0RWRpdG9yTG9jYXRpb24iLCJkaXZUaGlzIiwibWVtb0VkaXRvckRpdiIsInNyYyIsInNob3dFZGl0b3JTdmciLCJidXR0b25Ub3AiLCJpbm5lckhlaWdodCIsImJ1dHRvbkxlZnQiLCJ0b3AiLCJsZWZ0Iiwib25jbGljayIsInNjYWxlRWxlbWVudEFuaSIsImFuaW1hdGUiLCJ0cmFuc2Zvcm0iLCJkdXJhdGlvbiIsIml0ZXJhdGlvbnMiLCJJbmZpbml0eSIsInJldmVyc2UiLCJwcmVwZW5kIiwibWVtb2xpc3RTY3JvbGwiLCJvbnNjcm9sbCIsInNjYWxlRWRpdG9yRWxlbWVudEFuaSIsIm9wYWNpdHkiLCJzY2FsZU9uZUVsZW1lbnRBbmkiLCJjYW5jZWwiLCJ1c2VQb3BwZXIiLCJwbGFjZW1lbnQiLCJtb2RpZmllcnMiLCJvcHRpb25zIiwiYWxsb3dlZEF1dG9QbGFjZW1lbnRzIiwicm9vdEJvdW5kYXJ5Iiwic2VsZXRvclBvcHVwV2lkdGgiLCJjbG9zZVBvcHBlciIsIm1hcmtNZW1vSWQiLCJlZGl0b3JDdXJyZW50VmFsdWUiLCJtZW1vTGlua1RleHQiLCJzZXRNYXJrTWVtb0lkIiwiZWRpdE1lbW9JZCIsImVkaXRNZW1vIiwibWVtb1NlcnZpY2UiLCJnZXRNZW1vQnlJZCIsImNvbnRlbnQiLCJoYW5kbGVQYXN0ZUV2ZW50IiwiY2xpcGJvYXJkRGF0YSIsImZpbGVzIiwicHJldmVudERlZmF1bHQiLCJ1cmwiLCJoYW5kbGVVcGxvYWRGaWxlIiwiaGFuZGxlRHJvcEV2ZW50IiwiZGF0YVRyYW5zZmVyIiwiaGFuZGxlQ2xpY2tFdmVudCIsImhhbmRsZUtleURvd25FdmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic3RhcnRzV2l0aCIsImltYWdlIiwicmVzb3VyY2VTZXJ2aWNlIiwidXBsb2FkIiwiZXJyb3IiLCJoYW5kbGVTYXZlQnRuQ2xpY2siLCJnbG9iYWxTdGF0ZVNlcnZpY2UiLCJyZXBsYWNlQWxsIiwicHJldk1lbW8iLCJlZGl0ZWRNZW1vIiwidXBkYXRlTWVtbyIsIm1lbW9UeXBlIiwidXBkYXRlZEF0IiwiZ2V0RGF0ZVRpbWVTdHJpbmciLCJEYXRlIiwibm93Iiwic2V0RWRpdE1lbW9JZCIsIm5ld01lbW8iLCJjcmVhdGVNZW1vIiwicHVzaE1lbW8iLCJjbGVhclF1ZXJ5IiwibWVzc2FnZSIsImhhbmRsZUNhbmNlbEJ0bkNsaWNrIiwiaGFuZGxlQ29udGVudENoYW5nZSIsInRlbXBEaXYiLCJpbm5lckhUTUwiLCJpbm5lclRleHQiLCJ0cmltIiwiY3VycmVudFZhbHVlIiwicHJldlN0cmluZyIsIm5leHRTdHJpbmciLCJlbmRzV2l0aCIsImhhbmRsZURhdGVJbnNlcnRUcmlnZ2VyIiwiZGF0ZSIsInRvZGF5TW9tZW50IiwiSW5zZXJ0RGF0ZUZvcm1hdCIsImZvcm1hdCIsInNldFNlbGVjdGlvblJhbmdlIiwiaGFuZGxlQ2hhbmdlU3RhdHVzIiwiaGFuZGxlU2hvd0VkaXRvciIsImZsYWciLCJoYW5kbGVUYWdUZXh0QnRuQ2xpY2siLCJuZXh0VmFsdWUiLCJjdXJzb3JJbmRleCIsInVwZGF0ZURhdGVTZWxlY3RvclBvcHVwUG9zaXRpb24iLCJlZGl0b3JXaWR0aCIsImNsaWVudFdpZHRoIiwiaGFuZGxlVXBsb2FkRmlsZUJ0bkNsaWNrIiwiaW5wdXRFbCIsIm11bHRpcGxlIiwiYWNjZXB0Iiwib25jaGFuZ2UiLCJjbGljayIsInNob3dFZGl0U3RhdHVzIiwiZWRpdG9yQ29uZmlnIiwidXNlTWVtbyIsInNob3dUb29scyIsInRhZyIsImltYWdlU3ZnIiwiam91cm5hbFN2ZyIsInRhc2tTdmciLCJzdHlsZXMiLCJhdHRyaWJ1dGVzIiwiU2VhcmNoQmFyIiwibG9jYXRpb25TdGF0ZSIsInF1ZXJ5IiwiaGFuZGxlTWVtb1R5cGVJdGVtQ2xpY2siLCJwcmV2VHlwZSIsImxvY2F0aW9uU2VydmljZSIsInNldE1lbW9UeXBlUXVlcnkiLCJoYW5kbGVUZXh0UXVlcnlJbnB1dCIsImN1cnJlbnRUYXJnZXQiLCJzZXRUZXh0UXVlcnkiLCJzZWFyY2giLCJtZW1vU3BlY2lhbFR5cGVzIiwidCIsImlkeCIsInByZXZSZXF1ZXN0VGltZXN0YW1wIiwiTWVtb3NIZWFkZXIiLCJmaWx0ZXIiLCJpc01vYmlsZVZpZXciLCJxdWVyeVN0YXRlIiwicXVlcmllcyIsInRpdGxlVGV4dCIsInNldFRpdGxlVGV4dCIsInF1ZXJ5U2VydmljZSIsImdldFF1ZXJ5QnlJZCIsInRpdGxlIiwiaGFuZGxlTWVtb1RleHRDbGljayIsImZldGNoQWxsTWVtb3MiLCJjYXRjaCIsImhhbmRsZVNob3dTaWRlYmFyQnRuQ2xpY2siLCJzZXRTaG93U2lkZXJiYXJJbk1vYmlsZVZpZXciLCJtZW51U3ZnIiwiYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiYXJyYXlMaWtlVG9BcnJheSIsImFycmF5V2l0aEhvbGVzIiwiaXRlcmFibGVUb0FycmF5IiwidW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJub25JdGVyYWJsZVJlc3QiLCJNZW1vRmlsdGVyIiwidGFnUXVlcnkiLCJ0ZXh0UXVlcnkiLCJxdWVyeUZpbHRlciIsInNob3dGaWx0ZXIiLCJmcm9tIiwidG8iLCJzZXRNZW1vRmlsdGVyIiwic2V0VGFnUXVlcnkiLCJnZXRUZXh0V2l0aE1lbW9UeXBlIiwic2V0RnJvbUFuZFRvUXVlcnkiLCJnZXREYXRlU3RyaW5nIiwiaTE4bmV4dCIsImFkZCIsIlByb3ZpZGVyIiwic3RvcmUiLCJjb250ZXh0IiwiQ29udGV4dCIsImFwcFN0YXRlIiwic2V0QXBwU3RhdGUiLCJ1bnN1YnNjcmliZSIsIm5zIiwiQmFzZURpYWxvZyIsImNsaWNrU3BhY2VEZXN0cm95IiwiaGFuZGxlU3BhY2VDbGlja2VkIiwiY29uZmlnIiwiRGlhbG9nQ29tcG9uZW50IiwiYXBwZW5kIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJjbGFzc0xpc3QiLCJjYnMiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiQU5JTUFUSU9OX0RVUkFUSU9OIiwiZGlhbG9nUHJvcHMiLCJ1c2VBcHBDb250ZXh0IiwicmVuZGVyIiwiUHJldmlld0ltYWdlRGlhbG9nIiwiaW1nVXJsIiwiZmlsZXBhdGgiLCJpbWdSZWYiLCJpbWdXaWR0aCIsInNldEltZ1dpZHRoIiwidmF1bHQiLCJnZXRJbWFnZVNpemUiLCJ3aWR0aCIsImhhbmRsZUNsb3NlQnRuQ2xpY2siLCJoYW5kbGVEZWNyZWFzZUltYWdlU2l6ZSIsImhhbmRsZUluY3JlYXNlSW1hZ2VTaXplIiwiY29udmVydEJhc2U2NFRvQmxvYiIsImJhc2U2NCIsImJ5dGVzIiwiYXRvYiIsImFiIiwiQXJyYXlCdWZmZXIiLCJpYSIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImNvcHlJbWFnZVRvQ2xpcGJvYXJkIiwibXlCYXNlNjQiLCJzcGxpdCIsImJsb2JJbnB1dCIsImNsaXBib2FyZEl0ZW1JbnB1dCIsIkNsaXBib2FyZEl0ZW0iLCJuYXZpZ2F0b3IiLCJ3cml0ZSIsImJ1ZmZlciIsImFkYXB0ZXIiLCJyZWFkQmluYXJ5IiwiYXJyIiwiYmxvYiIsImNsb3NlIiwiSW1hZ2UiLCJhbHQiLCJyZWZlcnJlclBvbGljeSIsImhhbmRsZUltYWdlQ2xpY2siLCJnZXRQYXRoT2ZJbWFnZSIsImdldFJlc291cmNlUGF0aCIsImRldGVjdFdpa2lJbnRlcm5hbExpbmsiLCJsaW5lVGV4dCIsIm1ldGFkYXRhQ2FjaGUiLCJpbnRlcm5hbEZpbGVOYW1lIiwiV0lLSV9JTUFHRV9VUkxfUkVHIiwiZXhlYyIsImludGVybmFsQWx0TmFtZSIsImdldEZpcnN0TGlua3BhdGhEZXN0IiwiZGVjb2RlVVJJQ29tcG9uZW50IiwibGlua1RleHQiLCJhbHRUZXh0IiwiaW1hZ2VQYXRoIiwiZGV0ZWN0TURJbnRlcm5hbExpbmsiLCJNQVJLRE9XTl9VUkxfUkVHIiwiTWVtb0NhcmREaWFsb2ciLCJtZW1vIiwic2V0TWVtbyIsImNyZWF0ZWRBdFN0ciIsImNyZWF0ZWRBdCIsImxpbmtNZW1vcyIsInNldExpbmtNZW1vcyIsImxpbmtlZE1lbW9zIiwic2V0TGlua2VkTWVtb3MiLCJleHRlcm5hbEltYWdlVXJscyIsImludGVybmFsSW1hZ2VVcmxzIiwiYWxsTWFya2Rvd25MaW5rIiwiYWxsSW50ZXJuYWxMaW5rIiwiSU1BR0VfVVJMX1JFRyIsInRlc3QiLCJhbGxFeHRlcm5hbEltYWdlVXJscyIsImFub3RoZXJFeHRlcm5hbEltYWdlVXJscyIsIkFycmF5IiwiTUFSS0RPV05fV0VCX1VSTF9SRUciLCJvbmUiLCJwdXNoIiwidHdvIiwiZmV0Y2hMaW5rZWRNZW1vcyIsIm1hdGNoZWRBcnIiLCJtYXRjaEFsbCIsIk1FTU9fTElOS19SRUciLCJtYXRjaFJlcyIsIm1lbW9UZW1wIiwiZGF0ZVN0ciIsImdldExpbmtlZE1lbW9zIiwic29ydCIsImEiLCJiIiwiZ2V0VGltZVN0YW1wQnlEYXRlIiwiaGFuZGxlTWVtb0NvbnRlbnRDbGljayIsInRhcmdldEVsIiwibmV4dE1lbW9JZCIsImRhdGFzZXQiLCJuZXh0TWVtbyIsImhhbmRsZUxpbmtlZE1lbW9DbGljayIsImhhbmRsZUVkaXRNZW1vQnRuQ2xpY2siLCJlZGl0IiwiX19odG1sIiwiZm9ybWF0TWVtb0NvbnRlbnQiLCJfIiwiYm90dG9tIiwiekluZGV4IiwicmF3dGV4dCIsInBhcnNlSHRtbFRvUmF3VGV4dCIsInJlcXVlc3QiLCJTaGFyZU1lbW9JbWFnZURpYWxvZyIsInByb3BzTWVtbyIsIm1lbW9zIiwibWVtb1N0YXRlIiwibWVtb3NMZW5ndGgiLCJjcmVhdGVkRGF5cyIsIk1hdGgiLCJjZWlsIiwiZm9vdGVyRW5kIiwiU2hhcmVGb290ZXJFbmQiLCJVc2VyTmFtZSIsImZvb3RlclN0YXJ0IiwiU2hhcmVGb290ZXJTdGFydCIsInRvU3RyaW5nIiwic2hvcnRjdXRJbWdVcmwiLCJzZXRTaG9ydGN1dEltZ1VybCIsImltZ0Ftb3VudCIsInNldEltZ0Ftb3VudCIsIm1lbW9FbFJlZiIsImJhY2tncm91bmRDb2xvciIsInBpeGVsUmF0aW8iLCJkZXZpY2VQaXhlbFJhdGlvIiwiaGFuZGxlQ29weXRvQ2xpcGJvYXJkQnRuQ2xpY2siLCJkaXZzIiwiZ2V0QXR0cmlidXRlIiwiaGFuZGxlSW1hZ2VPbkxvYWQiLCJldiIsInNoYXJlIiwiTWVtbyIsInNob3dDb25maXJtRGVsZXRlQnRuIiwidG9nZ2xlQ29uZmlybURlbGV0ZUJ0biIsImhhbmRsZVNob3dNZW1vU3RvcnlEaWFsb2ciLCJoYW5kbGVNYXJrTWVtb0NsaWNrIiwiZWxlbSIsImhhbmRsZUVkaXRNZW1vQ2xpY2siLCJoYW5kbGVTb3VyY2VNZW1vQ2xpY2siLCJoYW5kbGVEZWxldGVNZW1vQ2xpY2siLCJoaWRlTWVtb0J5SWQiLCJoYW5kbGVNb3VzZUxlYXZlTWVtb1dyYXBwZXIiLCJoYW5kbGVHZW5NZW1vSW1hZ2VCdG5DbGljayIsImhhbmRsZU1lbW9LZXlEb3duIiwiaGFuZGxlTWVtb0RvdWJsZUtleURvd24iLCJtZW1vSWQiLCJtb3JlIiwibWVtb2lkIiwiZW5jb2RlSHRtbCIsInBhcnNlUmF3VGV4dFRvSHRtbCIsImpvaW4iLCJzaG91bGRVc2VNYXJrZG93blBhcnNlciIsInNob3VsZEhpZGVJbWFnZVVybCIsInBhcnNlTWFya2VkVG9IdG1sIiwiVEFHX1JFRyIsIkZJUlNUX1RBR19SRUciLCJMSU5LX1JFRyIsIk1EX0xJTktfUkVHIiwidGVtcERpdkNvbnRhaW5lciIsImMiLCJNZW1vTGlzdCIsImlzRmV0Y2hpbmciLCJzZXRGZXRjaFN0YXR1cyIsIndyYXBwZXJFbGVtZW50IiwicXVlcnlJZCIsInNob3dNZW1vRmlsdGVyIiwic2hvd25NZW1vcyIsIkhpZGVEb25lVGFza3MiLCJzaG91bGRTaG93IiwiZmlsdGVycyIsIkpTT04iLCJwYXJzZSIsInF1ZXJ5c3RyaW5nIiwiaXNBcnJheSIsImNoZWNrU2hvdWxkU2hvd01lbW9XaXRoRmlsdGVycyIsInRhZ3NTZXQiLCJTZXQiLCJpdGVtcyIsInRlbXAiLCJOT1BfRklSU1RfVEFHX1JFRyIsImhhcyIsImluY2x1ZGVzIiwiZ2V0TXlBbGxEYWlseU5vdGVzIiwic2Nyb2xsVG8iLCJoYW5kbGVNZW1vTGlzdENsaWNrIiwid29ya3NwYWNlIiwiY3VyclRhZ1F1ZXJ5Iiwic291cmNlUGF0aCIsIm9wZW5MaW5rVGV4dCIsIkRlbGV0ZWRNZW1vIiwiaGFuZGxlRGVsZXRlZE1lbW9BY3Rpb24iLCJkZWxldGVkQXRTdHIiLCJkZWxldGVkQXQiLCJkZWxldGVNZW1vQnlJZCIsImhhbmRsZVJlc3RvcmVNZW1vQ2xpY2siLCJyZXN0b3JlTWVtb0J5SWQiLCJNZW1vVHJhc2giLCJsb2FkaW5nU3RhdGUiLCJ1c2VMb2FkaW5nIiwiZGVsZXRlZE1lbW9zIiwic2V0RGVsZXRlZE1lbW9zIiwiZmV0Y2hEZWxldGVkTWVtb3MiLCJmaW5hbGx5Iiwic2V0RmluaXNoIiwiaXNMb2FkaW5nIiwiUHJlZmVyZW5jZXNTZWN0aW9uIiwic2hvdWxkU3BsaXRNZW1vV29yZCIsImRlbW9NZW1vQ29udGVudCIsImhhbmRsZU9wZW5UaW55VW5kb0NoYW5nZWQiLCJzZXRBcHBTZXR0aW5nIiwiaGFuZGxlU3BsaXRXb3Jkc1ZhbHVlQ2hhbmdlZCIsImhhbmRsZUhpZGVJbWFnZVVybFZhbHVlQ2hhbmdlZCIsImhhbmRsZVVzZU1hcmtkb3duUGFyc2VyQ2hhbmdlZCIsImhhbmRsZUV4cG9ydEJ0bkNsaWNrIiwiZm9ybWF0ZWRNZW1vcyIsImpzb25TdHIiLCJzdHJpbmdpZnkiLCJzZXRBdHRyaWJ1dGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJkaXNwbGF5IiwiY2hlY2tib3hBY3RpdmUiLCJjaGVja2JveCIsIlNldHRpbmciLCJob21lUm91dGVyIiwiTWVtb3MiLCJBYm91dFNpdGVEaWFsb2ciLCJNZW51QnRuc1BvcHVwIiwic2hvd25TdGF0dXMiLCJzZXRTaG93blN0YXR1cyIsImRhaWx5Tm90ZXNTZXJ2aWNlIiwicG9wdXBFbFJlZiIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImNhcHR1cmUiLCJvbmNlIiwiaGFuZGxlTXlBY2NvdW50QnRuQ2xpY2siLCJzZXR0aW5nIiwib3BlbiIsIm9wZW5UYWJCeUlkIiwiaGFuZGxlTWVtb3NUcmFzaEJ0bkNsaWNrIiwicHVzaEhpc3RvcnkiLCJoYW5kbGVBYm91dEJ0bkNsaWNrIiwiRGFpbHlNZW1vIiwidGltZVN0ciIsImdldFRpbWVTdHJpbmciLCJEYXRlUGlja2VyIiwiZGF0ZXN0YW1wIiwiaGFuZGxlRGF0ZVN0YW1wQ2hhbmdlIiwiY3VycmVudERhdGVTdGFtcCIsInNldEN1cnJlbnREYXRlU3RhbXAiLCJnZXRNb250aEZpcnN0RGF5RGF0ZVN0YW1wIiwiZmlyc3REYXRlIiwiZmlyc3REYXRlRGF5IiwiZ2V0RGF5IiwiZGF5TGlzdCIsImdldFRpbWUiLCJEQUlMWV9USU1FU1RBTVAiLCJkYXlBbW91bnQiLCJnZXRNb250aERheUFtb3VudCIsImhhbmRsZURhdGVJdGVtQ2xpY2siLCJoYW5kbGVDaGFuZ2VNb250aEJ0bkNsaWNrIiwieWVhciIsImdldEZ1bGxZZWFyIiwibW9udGgiLCJnZXRNb250aCIsIm5leHREYXRlU3RhbXAiLCJhcnJvd0xlZnQiLCJhcnJvd1JpZ2h0IiwiZCIsImRhdGVUZW1wIiwiY3VycmVudERhdGUiLCJuZXh0TW9udGhEYXRlIiwidGltZXN0YW1wIiwiRGFpbHlNZW1vRGlhcnlEaWFsb2ciLCJzZXRNZW1vcyIsImdldERhdGVTdGFtcEJ5RGF0ZSIsInNob3dEYXRlUGlja2VyIiwidG9nZ2xlU2hvd0RhdGVQaWNrZXIiLCJtZW1vc0VsUmVmIiwic2V0RGFpbHlNZW1vcyIsImRhaWx5TWVtb3MiLCJoYW5kbGVTaGFyZUJ0bkNsaWNrIiwiaGFuZGxlRGF0YVBpY2tlckNoYW5nZSIsInJldHVybk9iamVjdHMiLCJnZXREYXRlIiwiVXNlckJhbm5lciIsInRhZ3MiLCJ1c2VyU3RhdGUiLCJ1c2VyIiwidXNlcm5hbWUiLCJzaG91bGRTaG93UG9wdXBCdG5zIiwic2V0U2hvdWxkU2hvd1BvcHVwQnRucyIsImhhbmRsZVVzZXJuYW1lQ2xpY2siLCJoYW5kbGVQb3B1cEJ0bkNsaWNrIiwic2lkZWJhckVsIiwicG9wdXBFbCIsInNjcm9sbFRvcCIsInNob3dEYWlseU1lbW9EaWFyeURpYWxvZyIsIm51bGxJdGVtIiwiU2VsZWN0b3IiLCJkYXRhU291cmNlIiwiaGFuZGxlVmFsdWVDaGFuZ2VkIiwic2hvd1NlbGVjdG9yIiwidG9nZ2xlU2VsZWN0b3JTdGF0dXMiLCJzZWxldG9yRWxSZWYiLCJjdXJyZW50SXRlbSIsImhhbmRsZUl0ZW1DbGljayIsImhhbmRsZUN1cnJlbnRWYWx1ZUNsaWNrIiwiQ3JlYXRlUXVlcnlEaWFsb2ciLCJzZXRUaXRsZSIsInNldEZpbHRlcnMiLCJyZXF1ZXN0U3RhdGUiLCJzaG93bk1lbW9MZW5ndGgiLCJxdWVyeVRlbXAiLCJoYW5kbGVUaXRsZUlucHV0Q2hhbmdlIiwiZWRpdGVkUXVlcnkiLCJ1cGRhdGVRdWVyeSIsImVkaXRRdWVyeSIsImdldE15QWxsUXVlcmllcyIsImNyZWF0ZVF1ZXJ5IiwicHVzaFF1ZXJ5IiwiaGFuZGxlQWRkRmlsdGVyQmVuQ2xpY2siLCJsYXN0RmlsdGVyIiwiZ2V0RGVmYXVsdEZpbHRlciIsImhhbmRsZUZpbHRlckNoYW5nZSIsImhhbmRsZUZpbHRlclJlbW92ZSIsImYiLCJGaWx0ZXJJbnB1dGVyIiwiaW5wdXRFbGVtZW50cyIsInNldElucHV0RWxlbWVudHMiLCJvcGVyYXRvckVsZW1lbnQiLCJrZXlzIiwiZmlsdGVyQ29uc3RzIiwidmFsdWVzIiwib3BlcmF0b3JzIiwib3BlcmF0b3IiLCJoYW5kbGVPcGVyYXRvckNoYW5nZSIsInZhbHVlRWxlbWVudCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiaGFuZGxlUmVsYXRpb25DaGFuZ2UiLCJyZWxhdGlvbiIsImhhbmRsZVR5cGVDaGFuZ2UiLCJvcHMiLCJoYW5kbGVSZW1vdmVCdG5DbGljayIsInJlbGF0aW9uQ29uc3RzIiwiTWVtb0ZpbHRlcklucHV0ZXIiLCJRdWVyeUxpc3QiLCJzb3J0ZWRRdWVyaWVzIiwicGlubmVkQXQiLCJzaG93Q3JlYXRlUXVlcnlEaWFsb2ciLCJpc1N1Y2NlZWQiLCJRdWVyeUl0ZW1Db250YWluZXIiLCJpc0FjdGl2ZSIsInNob3dBY3Rpb25CdG5zIiwidG9nZ2xlU2hvd0FjdGlvbkJ0bnMiLCJoYW5kbGVRdWVyeUNsaWNrIiwiaGFuZGxlU2hvd0FjdGlvbkJ0bkNsaWNrIiwiaGFuZGxlQWN0aW9uQnRuQ29udGFpbmVyTW91c2VMZWF2ZSIsImRlbGV0ZVF1ZXJ5IiwiaGFuZGxlRWRpdFF1ZXJ5QnRuQ2xpY2siLCJoYW5kbGVQaW5RdWVyeUJ0bkNsaWNrIiwidW5waW5RdWVyeSIsInBpblF1ZXJ5IiwiaGFuZGxlRGVsZXRlQnRuTW91c2VMZWF2ZSIsIm1vcmVXaGl0ZSIsIlRhZ0xpc3QiLCJ0YWdzVGV4dCIsInNldFRhZ3MiLCJ1cGRhdGVUYWdzU3RhdGUiLCJzb3J0ZWRUYWdzIiwicm9vdCIsInN1YlRhZ3MiLCJzdWJ0YWdzIiwidGVtcE9iaiIsInRhZ1RleHQiLCJpbml0aWFsaXplZCIsIlRhZ0l0ZW1Db250YWluZXIiLCJoYXNTdWJUYWdzIiwic2hvd1N1YlRhZ3MiLCJ0b2dnbGVTdWJUYWdzIiwiaGFuZGxlVGFnQ2xpY2siLCJjb3B5VGV4dFRvQ2xpcGJvYXJkIiwicGF0aG5hbWUiLCJzZXRQYXRobmFtZSIsImhhbmRsZVRvZ2dsZUJ0bkNsaWNrIiwic3QiLCJ0YWJsZUNvbmZpZyIsImdldEluaXRpYWxVc2FnZVN0YXQiLCJ1c2VkRGF5c0Ftb3VudCIsImJlZ2luRGF5VGltZXN0YW1wIiwiaW5pdGlhbFVzYWdlU3RhdCIsImNvdW50IiwiVXNhZ2VIZWF0TWFwIiwidG9kYXlUaW1lU3RhbXAiLCJ0b2RheURheSIsIm51bGxDZWxsIiwiZmlsbCIsInN0YXJ0RGF0ZSIsInN1YnRyYWN0IiwiZW5kT2YiLCJhbGxTdGF0Iiwic2V0QWxsU3RhdCIsInBvcHVwU3RhdCIsInNldFBvcHVwU3RhdCIsImN1cnJlbnRTdGF0Iiwic2V0Q3VycmVudFN0YXQiLCJjb250YWluZXJFbFJlZiIsInBvcHVwUmVmIiwibmV3U3RhdCIsImNyZWF0aW9uRGF0ZSIsImRpZmYiLCJoYW5kbGVVc2FnZVN0YXRJdGVtTW91c2VFbnRlciIsInRvcFZhbHVlIiwiaGFuZGxlVXNhZ2VTdGF0SXRlbU1vdXNlTGVhdmUiLCJoYW5kbGVVc2FnZVN0YXRJdGVtQ2xpY2siLCJ0b0RhdGVTdHJpbmciLCJ2IiwiY29sb3JMZXZlbCIsIlNpZGViYXIiLCJzaG93U2lkZXJiYXJJbk1vYmlsZVZpZXciLCJ3cmFwcGVyRWxSZWYiLCJoYW5kbGVDbGlja091dHNpZGVPZldyYXBwZXIiLCJzaWRlcmJhclNob3duIiwicGFyZW50Tm9kZSIsIlNIT1dfU0lERVJCQVJfTU9CSUxFX0NMQVNTTkFNRSIsImhvbWVSb3V0ZXJTd2l0Y2giLCJoYW5kbGVXaW5kb3dSZXNpemUiLCJzZXRJc01vYmlsZVZpZXciLCJJdGVtVmlldyIsIkFwcCIsIlBsdWdpblNldHRpbmdUYWIiLCJQbHVnaW4iLCJhcHBIYXNEYWlseU5vdGVzUGx1Z2luTG9hZGVkIiwiRmlsZVZpZXciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BQWEsa0JBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNRL0IsSUFBSSx3QkFBd0IsT0FBTztBQUNuQyxJQUFJLGlCQUFpQixPQUFPLFVBQVU7QUFDdEMsSUFBSSxtQkFBbUIsT0FBTyxVQUFVO0FBRXhDLGtCQUFrQixLQUFLO0FBQ3RCLE1BQUksUUFBUSxRQUFRLFFBQVEsUUFBVztBQUN0QyxVQUFNLElBQUksVUFBVTtBQUFBO0FBR3JCLFNBQU8sT0FBTztBQUFBO0FBR2YsMkJBQTJCO0FBQzFCLE1BQUk7QUFDSCxRQUFJLENBQUMsT0FBTyxRQUFRO0FBQ25CLGFBQU87QUFBQTtBQU1SLFFBQUksUUFBUSxJQUFJLE9BQU87QUFDdkIsVUFBTSxLQUFLO0FBQ1gsUUFBSSxPQUFPLG9CQUFvQixPQUFPLE9BQU8sS0FBSztBQUNq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U0FBRztBQUFBO0FBQUcsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRSxJQUFFLElBQUUsR0FBRTtBQUFDLE1BQUksS0FBRSxNQUFNLFVBQVUsTUFBTSxLQUFLLFdBQVU7QUFBRyxNQUFHO0FBQUMsTUFBRSxNQUFNLEdBQUU7QUFBQSxXQUFTLElBQU47QUFBUyxTQUFLLFFBQVE7QUFBQTtBQUFBO0FBQUksSUFBSSxLQUFHLE9BQUcsS0FBRyxNQUFLLEtBQUcsT0FBRyxLQUFHLE1BQUssS0FBRyxFQUFDLFNBQVEsU0FBUyxHQUFFO0FBQUMsT0FBRztBQUFHLE9BQUc7QUFBQTtBQUFJLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUUsSUFBRSxJQUFFLEdBQUU7QUFBQyxPQUFHO0FBQUcsT0FBRztBQUFLLEtBQUcsTUFBTSxJQUFHO0FBQUE7QUFDL2QsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRSxJQUFFLElBQUUsR0FBRTtBQUFDLEtBQUcsTUFBTSxNQUFLO0FBQVcsTUFBRyxJQUFHO0FBQUMsUUFBRyxJQUFHO0FBQUMsVUFBSSxLQUFFO0FBQUcsV0FBRztBQUFHLFdBQUc7QUFBQTtBQUFVLFlBQU0sTUFBTSxFQUFFO0FBQU0sVUFBSyxNQUFHLE1BQUcsS0FBRztBQUFBO0FBQUE7QUFBSSxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsR0FBRSxJQUFFO0FBQUUsTUFBRyxFQUFFO0FBQVUsV0FBSyxFQUFFO0FBQVEsVUFBRSxFQUFFO0FBQUEsT0FBVztBQUFDLFFBQUU7QUFBRTtBQUFHLFVBQUUsR0FBRSxBQUFLLEdBQUUsUUFBTSxVQUFiLEtBQXFCLEtBQUUsRUFBRSxTQUFRLElBQUUsRUFBRTtBQUFBLFdBQWE7QUFBQTtBQUFHLFNBQU8sQUFBSSxFQUFFLFFBQU4sSUFBVSxJQUFFO0FBQUE7QUFBSyxZQUFZLEdBQUU7QUFBQyxNQUFHLEFBQUssRUFBRSxRQUFQLElBQVc7QUFBQyxRQUFJLElBQUUsRUFBRTtBQUFjLElBQU8sTUFBUCxRQUFXLEtBQUUsRUFBRSxXQUFVLEFBQU8sTUFBUCxRQUFXLEtBQUUsRUFBRTtBQUFnQixRQUFHLEFBQU8sTUFBUDtBQUFTLGFBQU8sRUFBRTtBQUFBO0FBQVcsU0FBTztBQUFBO0FBQUssWUFBWSxHQUFFO0FBQUMsTUFBRyxHQUFHLE9BQUs7QUFBRSxVQUFNLE1BQU0sRUFBRTtBQUFBO0FBQzNlLFlBQVksR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFO0FBQVUsTUFBRyxDQUFDLEdBQUU7QUFBQyxRQUFFLEdBQUc7QUFBRyxRQUFHLEFBQU8sTUFBUDtBQUFTLFlBQU0sTUFBTSxFQUFFO0FBQU0sV0FBTyxNQUFJLElBQUUsT0FBSztBQUFBO0FBQUUsV0FBUSxJQUFFLEdBQUUsSUFBRSxPQUFJO0FBQUMsUUFBSSxJQUFFLEVBQUU7QUFBTyxRQUFHLEFBQU8sTUFBUDtBQUFTO0FBQU0sUUFBSSxLQUFFLEVBQUU7QUFBVSxRQUFHLEFBQU8sT0FBUCxNQUFTO0FBQUMsVUFBRSxFQUFFO0FBQU8sVUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFlBQUU7QUFBRTtBQUFBO0FBQVM7QUFBQTtBQUFNLFFBQUcsRUFBRSxVQUFRLEdBQUUsT0FBTTtBQUFDLFdBQUksS0FBRSxFQUFFLE9BQU0sTUFBRztBQUFDLFlBQUcsT0FBSTtBQUFFLGlCQUFPLEdBQUcsSUFBRztBQUFFLFlBQUcsT0FBSTtBQUFFLGlCQUFPLEdBQUcsSUFBRztBQUFFLGFBQUUsR0FBRTtBQUFBO0FBQVEsWUFBTSxNQUFNLEVBQUU7QUFBQTtBQUFPLFFBQUcsRUFBRSxXQUFTLEVBQUU7QUFBTyxVQUFFLEdBQUUsSUFBRTtBQUFBLFNBQU07QUFBQyxlQUFRLEtBQUUsT0FBRyxLQUFFLEVBQUUsT0FBTSxNQUFHO0FBQUMsWUFBRyxPQUFJLEdBQUU7QUFBQyxlQUFFO0FBQUcsY0FBRTtBQUFFLGNBQUU7QUFBRTtBQUFBO0FBQU0sWUFBRyxPQUFJLEdBQUU7QUFBQyxlQUFFO0FBQUcsY0FBRTtBQUFFLGNBQUU7QUFBRTtBQUFBO0FBQU0sYUFBRSxHQUFFO0FBQUE7QUFBUSxVQUFHLENBQUMsSUFBRTtBQUFDLGFBQUksS0FBRSxHQUFFLE9BQU0sTUFBRztBQUFDLGNBQUcsT0FDNWYsR0FBRTtBQUFDLGlCQUFFO0FBQUcsZ0JBQUU7QUFBRSxnQkFBRTtBQUFFO0FBQUE7QUFBTSxjQUFHLE9BQUksR0FBRTtBQUFDLGlCQUFFO0FBQUcsZ0JBQUU7QUFBRSxnQkFBRTtBQUFFO0FBQUE7QUFBTSxlQUFFLEdBQUU7QUFBQTtBQUFRLFlBQUcsQ0FBQztBQUFFLGdCQUFNLE1BQU0sRUFBRTtBQUFBO0FBQUE7QUFBUSxRQUFHLEVBQUUsY0FBWTtBQUFFLFlBQU0sTUFBTSxFQUFFO0FBQUE7QUFBTyxNQUFHLEFBQUksRUFBRSxRQUFOO0FBQVUsVUFBTSxNQUFNLEVBQUU7QUFBTSxTQUFPLEVBQUUsVUFBVSxZQUFVLElBQUUsSUFBRTtBQUFBO0FBQUUsWUFBWSxHQUFFO0FBQUMsTUFBRSxHQUFHO0FBQUcsTUFBRyxDQUFDO0FBQUUsV0FBTztBQUFLLFdBQVEsSUFBRSxPQUFJO0FBQUMsUUFBRyxBQUFJLEVBQUUsUUFBTixLQUFXLEFBQUksRUFBRSxRQUFOO0FBQVUsYUFBTztBQUFFLFFBQUcsRUFBRTtBQUFNLFFBQUUsTUFBTSxTQUFPLEdBQUUsSUFBRSxFQUFFO0FBQUEsU0FBVTtBQUFDLFVBQUcsTUFBSTtBQUFFO0FBQU0sYUFBSyxDQUFDLEVBQUUsV0FBUztBQUFDLFlBQUcsQ0FBQyxFQUFFLFVBQVEsRUFBRSxXQUFTO0FBQUUsaUJBQU87QUFBSyxZQUFFLEVBQUU7QUFBQTtBQUFPLFFBQUUsUUFBUSxTQUFPLEVBQUU7QUFBTyxVQUFFLEVBQUU7QUFBQTtBQUFBO0FBQVMsU0FBTztBQUFBO0FBQzVjLFlBQVksR0FBRSxHQUFFO0FBQUMsV0FBUSxJQUFFLEVBQUUsV0FBVSxBQUFPLE1BQVAsUUFBVTtBQUFDLFFBQUcsTUFBSSxLQUFHLE1BQUk7QUFBRSxhQUFNO0FBQUcsUUFBRSxFQUFFO0FBQUE7QUFBTyxTQUFNO0FBQUE7QUFBRyxJQUFJLElBQUcsSUFBRyxJQUFHLElBQUcsS0FBRyxPQUFHLEtBQUcsSUFBRyxLQUFHLE1BQUssS0FBRyxNQUFLLEtBQUcsTUFBSyxLQUFHLElBQUksT0FBSSxLQUFHLElBQUksT0FBSSxLQUFHLElBQUcsS0FBRyw2UEFBNlAsTUFBTTtBQUNyYixZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLFNBQU0sRUFBQyxXQUFVLEdBQUUsY0FBYSxHQUFFLGtCQUFpQixJQUFFLElBQUcsYUFBWSxHQUFFLGtCQUFpQixDQUFDO0FBQUE7QUFBSSxZQUFZLEdBQUUsR0FBRTtBQUFDLFVBQU87QUFBQSxTQUFRO0FBQUEsU0FBZTtBQUFXLFdBQUc7QUFBSztBQUFBLFNBQVc7QUFBQSxTQUFpQjtBQUFZLFdBQUc7QUFBSztBQUFBLFNBQVc7QUFBQSxTQUFpQjtBQUFXLFdBQUc7QUFBSztBQUFBLFNBQVc7QUFBQSxTQUFtQjtBQUFhLFNBQUcsT0FBTyxFQUFFO0FBQVc7QUFBQSxTQUFXO0FBQUEsU0FBeUI7QUFBcUIsU0FBRyxPQUFPLEVBQUU7QUFBQTtBQUFBO0FBQzNaLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUU7QUFBQyxNQUFHLEFBQU8sTUFBUCxRQUFVLEVBQUUsZ0JBQWM7QUFBRSxXQUFPLElBQUUsR0FBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUcsQUFBTyxNQUFQLFFBQVcsS0FBRSxHQUFHLElBQUcsQUFBTyxNQUFQLFFBQVUsR0FBRyxLQUFJO0FBQUUsSUFBRSxvQkFBa0I7QUFBRSxNQUFFLEVBQUU7QUFBaUIsRUFBTyxNQUFQLFFBQVUsQUFBSyxFQUFFLFFBQVEsT0FBZixNQUFtQixFQUFFLEtBQUs7QUFBRyxTQUFPO0FBQUE7QUFDOU0sWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxVQUFPO0FBQUEsU0FBUTtBQUFVLGFBQU8sS0FBRyxHQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHO0FBQUEsU0FBUTtBQUFZLGFBQU8sS0FBRyxHQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHO0FBQUEsU0FBUTtBQUFZLGFBQU8sS0FBRyxHQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHO0FBQUEsU0FBUTtBQUFjLFVBQUksS0FBRSxFQUFFO0FBQVUsU0FBRyxJQUFJLElBQUUsR0FBRyxHQUFHLElBQUksT0FBSSxNQUFLLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBSSxhQUFNO0FBQUEsU0FBUTtBQUFvQixhQUFPLEtBQUUsRUFBRSxXQUFVLEdBQUcsSUFBSSxJQUFFLEdBQUcsR0FBRyxJQUFJLE9BQUksTUFBSyxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUk7QUFBQTtBQUFHLFNBQU07QUFBQTtBQUNqVyxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsR0FBRyxFQUFFO0FBQVEsTUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFFBQUksSUFBRSxHQUFHO0FBQUcsUUFBRyxBQUFPLE1BQVA7QUFBUyxVQUFHLElBQUUsRUFBRSxLQUFJLEFBQUssTUFBTCxJQUFPO0FBQUMsWUFBRyxJQUFFLEdBQUcsSUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFlBQUUsWUFBVTtBQUFFLGFBQUcsRUFBRSxjQUFhLFdBQVU7QUFBQyxjQUFFLHlCQUF5QixFQUFFLFVBQVMsV0FBVTtBQUFDLGlCQUFHO0FBQUE7QUFBQTtBQUFPO0FBQUE7QUFBQSxpQkFBZ0IsQUFBSSxNQUFKLEtBQU8sRUFBRSxVQUFVLFNBQVE7QUFBQyxVQUFFLFlBQVUsQUFBSSxFQUFFLFFBQU4sSUFBVSxFQUFFLFVBQVUsZ0JBQWM7QUFBSztBQUFBO0FBQUE7QUFBQTtBQUFRLElBQUUsWUFBVTtBQUFBO0FBQzFVLFlBQVksR0FBRTtBQUFDLE1BQUcsQUFBTyxFQUFFLGNBQVQ7QUFBbUIsV0FBTTtBQUFHLFdBQVEsSUFBRSxFQUFFLGtCQUFpQixJQUFFLEVBQUUsVUFBUTtBQUFDLFFBQUksSUFBRSxHQUFHLEVBQUUsY0FBYSxFQUFFLGtCQUFpQixFQUFFLElBQUcsRUFBRTtBQUFhLFFBQUcsQUFBTyxNQUFQO0FBQVMsYUFBTyxJQUFFLEdBQUcsSUFBRyxBQUFPLE1BQVAsUUFBVSxHQUFHLElBQUcsRUFBRSxZQUFVLEdBQUU7QUFBRyxNQUFFO0FBQUE7QUFBUSxTQUFNO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsS0FBRyxNQUFJLEVBQUUsT0FBTztBQUFBO0FBQ3pRLGNBQWE7QUFBQyxPQUFJLEtBQUcsT0FBRyxJQUFFLEdBQUcsVUFBUTtBQUFDLFFBQUksSUFBRSxHQUFHO0FBQUcsUUFBRyxBQUFPLEVBQUUsY0FBVCxNQUFtQjtBQUFDLFVBQUUsR0FBRyxFQUFFO0FBQVcsTUFBTyxNQUFQLFFBQVUsR0FBRztBQUFHO0FBQUE7QUFBTSxhQUFRLElBQUUsRUFBRSxrQkFBaUIsSUFBRSxFQUFFLFVBQVE7QUFBQyxVQUFJLElBQUUsR0FBRyxFQUFFLGNBQWEsRUFBRSxrQkFBaUIsRUFBRSxJQUFHLEVBQUU7QUFBYSxVQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsVUFBRSxZQUFVO0FBQUU7QUFBQTtBQUFNLFFBQUU7QUFBQTtBQUFRLElBQU8sRUFBRSxjQUFULFFBQW9CLEdBQUc7QUFBQTtBQUFRLEVBQU8sT0FBUCxRQUFXLEdBQUcsT0FBTSxNQUFHO0FBQU0sRUFBTyxPQUFQLFFBQVcsR0FBRyxPQUFNLE1BQUc7QUFBTSxFQUFPLE9BQVAsUUFBVyxHQUFHLE9BQU0sTUFBRztBQUFNLEtBQUcsUUFBUTtBQUFJLEtBQUcsUUFBUTtBQUFBO0FBQ3JaLFlBQVksR0FBRSxHQUFFO0FBQUMsSUFBRSxjQUFZLEtBQUksR0FBRSxZQUFVLE1BQUssTUFBSyxNQUFHLE1BQUcsRUFBRSwwQkFBMEIsRUFBRSx5QkFBd0I7QUFBQTtBQUNySCxZQUFZLEdBQUU7QUFBQyxhQUFXLElBQUU7QUFBQyxXQUFPLEdBQUcsSUFBRTtBQUFBO0FBQUcsTUFBRyxJQUFFLEdBQUcsUUFBTztBQUFDLE9BQUcsR0FBRyxJQUFHO0FBQUcsYUFBUSxJQUFFLEdBQUUsSUFBRSxHQUFHLFFBQU8sS0FBSTtBQUFDLFVBQUksSUFBRSxHQUFHO0FBQUcsUUFBRSxjQUFZLEtBQUksR0FBRSxZQUFVO0FBQUE7QUFBQTtBQUFPLEVBQU8sT0FBUCxRQUFXLEdBQUcsSUFBRztBQUFHLEVBQU8sT0FBUCxRQUFXLEdBQUcsSUFBRztBQUFHLEVBQU8sT0FBUCxRQUFXLEdBQUcsSUFBRztBQUFHLEtBQUcsUUFBUTtBQUFHLEtBQUcsUUFBUTtBQUFHLE9BQUksSUFBRSxHQUFFLElBQUUsR0FBRyxRQUFPO0FBQUksUUFBRSxHQUFHLElBQUcsRUFBRSxjQUFZLEtBQUksR0FBRSxZQUFVO0FBQU0sU0FBSyxJQUFFLEdBQUcsVUFBUyxLQUFFLEdBQUcsSUFBRyxBQUFPLEVBQUUsY0FBVDtBQUFxQixPQUFHLElBQUcsQUFBTyxFQUFFLGNBQVQsUUFBb0IsR0FBRztBQUFBO0FBQy9YLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUcsSUFBRSxFQUFFLGlCQUFlLEVBQUU7QUFBYyxJQUFFLFdBQVMsS0FBRyxXQUFTO0FBQUUsSUFBRSxRQUFNLEtBQUcsUUFBTTtBQUFFLFNBQU87QUFBQTtBQUFFLElBQUksS0FBRyxFQUFDLGNBQWEsR0FBRyxhQUFZLGlCQUFnQixvQkFBbUIsR0FBRyxhQUFZLHVCQUFzQixnQkFBZSxHQUFHLGFBQVksbUJBQWtCLGVBQWMsR0FBRyxjQUFhLG9CQUFrQixLQUFHLElBQUcsS0FBRztBQUN2VSxNQUFLLE1BQUcsU0FBUyxjQUFjLE9BQU8sT0FBTSxvQkFBbUIsVUFBUyxRQUFPLEdBQUcsYUFBYSxXQUFVLE9BQU8sR0FBRyxtQkFBbUIsV0FBVSxPQUFPLEdBQUcsZUFBZSxZQUFXLHFCQUFvQixVQUFRLE9BQU8sR0FBRyxjQUFjO0FBQVksWUFBWSxHQUFFO0FBQUMsTUFBRyxHQUFHO0FBQUcsV0FBTyxHQUFHO0FBQUcsTUFBRyxDQUFDLEdBQUc7QUFBRyxXQUFPO0FBQUUsTUFBSSxJQUFFLEdBQUcsSUFBRztBQUFFLE9BQUksS0FBSztBQUFFLFFBQUcsRUFBRSxlQUFlLE1BQUksS0FBSztBQUFHLGFBQU8sR0FBRyxLQUFHLEVBQUU7QUFBRyxTQUFPO0FBQUE7QUFDOVgsSUFBSSxLQUFHLEdBQUcsaUJBQWdCLEtBQUcsR0FBRyx1QkFBc0IsS0FBRyxHQUFHLG1CQUFrQixLQUFHLEdBQUcsa0JBQWlCLEtBQUcsSUFBSSxPQUFJLEtBQUcsSUFBSSxPQUFJLEtBQUc7QUFBQSxFQUFDO0FBQUEsRUFBUTtBQUFBLEVBQVE7QUFBQSxFQUFHO0FBQUEsRUFBZTtBQUFBLEVBQUc7QUFBQSxFQUFxQjtBQUFBLEVBQUc7QUFBQSxFQUFpQjtBQUFBLEVBQVU7QUFBQSxFQUFVO0FBQUEsRUFBaUI7QUFBQSxFQUFpQjtBQUFBLEVBQWlCO0FBQUEsRUFBaUI7QUFBQSxFQUFVO0FBQUEsRUFBVTtBQUFBLEVBQVk7QUFBQSxFQUFZO0FBQUEsRUFBUTtBQUFBLEVBQVE7QUFBQSxFQUFRO0FBQUEsRUFBUTtBQUFBLEVBQW9CO0FBQUEsRUFBb0I7QUFBQSxFQUFPO0FBQUEsRUFBTztBQUFBLEVBQWE7QUFBQSxFQUFhO0FBQUEsRUFBaUI7QUFBQSxFQUFpQjtBQUFBLEVBQVk7QUFBQSxFQUMvZTtBQUFBLEVBQXFCO0FBQUEsRUFBcUI7QUFBQSxFQUFVO0FBQUEsRUFBVTtBQUFBLEVBQVc7QUFBQSxFQUFXO0FBQUEsRUFBVTtBQUFBLEVBQVU7QUFBQSxFQUFVO0FBQUEsRUFBVTtBQUFBLEVBQVU7QUFBQSxFQUFVO0FBQUEsRUFBYTtBQUFBLEVBQWE7QUFBQSxFQUFHO0FBQUEsRUFBZ0I7QUFBQSxFQUFVO0FBQUE7QUFBVyxZQUFZLEdBQUUsR0FBRTtBQUFDLFdBQVEsSUFBRSxHQUFFLElBQUUsRUFBRSxRQUFPLEtBQUcsR0FBRTtBQUFDLFFBQUksSUFBRSxFQUFFLElBQUcsSUFBRSxFQUFFLElBQUU7QUFBRyxRQUFFLE9BQU0sR0FBRSxHQUFHLGdCQUFjLEVBQUUsTUFBTTtBQUFJLE9BQUcsSUFBSSxHQUFFO0FBQUcsT0FBRyxJQUFJLEdBQUU7QUFBRyxPQUFHLEdBQUUsQ0FBQztBQUFBO0FBQUE7QUFBSyxJQUFJLEtBQUcsRUFBRTtBQUFhO0FBQUssSUFBSSxJQUFFO0FBQy9YLFlBQVksR0FBRTtBQUFDLE1BQUcsQUFBSyxLQUFFLE9BQVA7QUFBVSxXQUFPLElBQUUsSUFBRztBQUFFLE1BQUcsQUFBSyxLQUFFLE9BQVA7QUFBVSxXQUFPLElBQUUsSUFBRztBQUFFLE1BQUcsQUFBSyxLQUFFLE9BQVA7QUFBVSxXQUFPLElBQUUsSUFBRztBQUFFLE1BQUksSUFBRSxLQUFHO0FBQUUsTUFBRyxBQUFJLE1BQUo7QUFBTSxXQUFPLElBQUUsSUFBRztBQUFFLE1BQUcsQUFBSyxLQUFFLFFBQVA7QUFBVyxXQUFPLElBQUUsSUFBRztBQUFHLE1BQUUsTUFBSTtBQUFFLE1BQUcsQUFBSSxNQUFKO0FBQU0sV0FBTyxJQUFFLElBQUc7QUFBRSxNQUFHLEFBQUssS0FBRSxTQUFQO0FBQVksV0FBTyxJQUFFLEdBQUU7QUFBSSxNQUFFLE9BQUs7QUFBRSxNQUFHLEFBQUksTUFBSjtBQUFNLFdBQU8sSUFBRSxHQUFFO0FBQUUsTUFBRyxBQUFLLEtBQUUsVUFBUDtBQUFhLFdBQU8sSUFBRSxHQUFFO0FBQUssTUFBRSxVQUFRO0FBQUUsTUFBRyxBQUFJLE1BQUo7QUFBTSxXQUFPLElBQUUsR0FBRTtBQUFFLE1BQUUsV0FBUztBQUFFLE1BQUcsQUFBSSxNQUFKO0FBQU0sV0FBTyxJQUFFLEdBQUU7QUFBRSxNQUFHLElBQUU7QUFBUyxXQUFPLElBQUUsR0FBRTtBQUFTLE1BQUcsQUFBSyxLQUFFLGVBQVA7QUFBa0IsV0FBTyxJQUFFLEdBQUU7QUFBVSxNQUFFLFlBQVU7QUFBRSxNQUFHLEFBQUksTUFBSjtBQUFNLFdBQU8sSUFBRSxHQUFFO0FBQUUsTUFBRyxBQUFLLGNBQVcsT0FBaEI7QUFBbUIsV0FBTyxJQUFFLEdBQUU7QUFDamYsTUFBRTtBQUFFLFNBQU87QUFBQTtBQUFFLFlBQVksR0FBRTtBQUFDLFVBQU87QUFBQSxTQUFRO0FBQUcsYUFBTztBQUFBLFNBQVE7QUFBRyxhQUFPO0FBQUEsU0FBUTtBQUFBLFNBQVE7QUFBRyxhQUFPO0FBQUEsU0FBTztBQUFHLGFBQU87QUFBQTtBQUFVLGFBQU87QUFBQTtBQUFBO0FBQUcsWUFBWSxHQUFFO0FBQUMsVUFBTztBQUFBLFNBQVE7QUFBQSxTQUFRO0FBQUcsYUFBTztBQUFBLFNBQVE7QUFBQSxTQUFRO0FBQUEsU0FBUTtBQUFBLFNBQVE7QUFBRyxhQUFPO0FBQUEsU0FBUTtBQUFBLFNBQU87QUFBQSxTQUFPO0FBQUEsU0FBTztBQUFBLFNBQU87QUFBQSxTQUFPO0FBQUUsYUFBTztBQUFBLFNBQVE7QUFBQSxTQUFPO0FBQUEsU0FBTztBQUFFLGFBQU87QUFBQSxTQUFRO0FBQUUsYUFBTztBQUFBO0FBQVcsWUFBTSxNQUFNLEVBQUUsS0FBSTtBQUFBO0FBQUE7QUFDalcsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFhLE1BQUcsQUFBSSxNQUFKO0FBQU0sV0FBTyxJQUFFO0FBQUUsTUFBSSxJQUFFLEdBQUUsSUFBRSxHQUFFLEtBQUUsRUFBRSxjQUFhLEtBQUUsRUFBRSxnQkFBZSxLQUFFLEVBQUU7QUFBWSxNQUFHLEFBQUksT0FBSjtBQUFNLFFBQUUsSUFBRSxJQUFFLElBQUU7QUFBQSxXQUFXLEtBQUUsSUFBRSxXQUFVLEFBQUksT0FBSixHQUFNO0FBQUMsUUFBSSxJQUFFLEtBQUUsQ0FBQztBQUFFLElBQUksTUFBSixJQUFPLEtBQUUsR0FBRyxJQUFHLElBQUUsS0FBSSxPQUFHLElBQUUsQUFBSSxPQUFKLEtBQVEsS0FBRSxHQUFHLEtBQUcsSUFBRTtBQUFBO0FBQVMsU0FBRSxJQUFFLENBQUMsSUFBRSxBQUFJLE9BQUosSUFBTyxLQUFFLEdBQUcsS0FBRyxJQUFFLEtBQUcsQUFBSSxPQUFKLEtBQVEsS0FBRSxHQUFHLEtBQUcsSUFBRTtBQUFHLE1BQUcsQUFBSSxNQUFKO0FBQU0sV0FBTztBQUFFLE1BQUUsS0FBRyxHQUFHO0FBQUcsTUFBRSxJQUFJLE1BQUUsSUFBRSxJQUFFLEtBQUcsTUFBSSxLQUFHO0FBQUUsTUFBRyxBQUFJLE1BQUosS0FBTyxNQUFJLEtBQUcsQUFBSyxLQUFFLFFBQVAsR0FBVTtBQUFDLE9BQUc7QUFBRyxRQUFHLEtBQUc7QUFBRSxhQUFPO0FBQUUsUUFBRTtBQUFBO0FBQUUsTUFBRSxFQUFFO0FBQWUsTUFBRyxBQUFJLE1BQUo7QUFBTSxTQUFJLElBQUUsRUFBRSxlQUFjLEtBQUcsR0FBRSxJQUFFO0FBQUcsVUFBRSxLQUFHLEdBQUcsSUFBRyxJQUFFLEtBQUcsR0FBRSxLQUFHLEVBQUUsSUFBRyxLQUFHLENBQUM7QUFBRSxTQUFPO0FBQUE7QUFDMWUsWUFBWSxHQUFFO0FBQUMsTUFBRSxFQUFFLGVBQWE7QUFBWSxTQUFPLEFBQUksTUFBSixJQUFNLElBQUUsSUFBRSxhQUFXLGFBQVc7QUFBQTtBQUFFLFlBQVksR0FBRSxHQUFFO0FBQUMsVUFBTztBQUFBLFNBQVE7QUFBRyxhQUFPO0FBQUEsU0FBTztBQUFHLGFBQU87QUFBQSxTQUFPO0FBQUcsYUFBTyxJQUFFLEdBQUcsS0FBRyxDQUFDLElBQUcsQUFBSSxNQUFKLElBQU0sR0FBRyxJQUFHLEtBQUc7QUFBQSxTQUFPO0FBQUcsYUFBTyxJQUFFLEdBQUcsTUFBSSxDQUFDLElBQUcsQUFBSSxNQUFKLElBQU0sR0FBRyxHQUFFLEtBQUc7QUFBQSxTQUFPO0FBQUUsYUFBTyxJQUFFLEdBQUcsT0FBSyxDQUFDLElBQUcsQUFBSSxNQUFKLEtBQVEsS0FBRSxHQUFHLFVBQVEsQ0FBQyxJQUFHLEFBQUksTUFBSixLQUFRLEtBQUUsT0FBTTtBQUFBLFNBQU87QUFBRSxhQUFPLElBQUUsR0FBRyxZQUFVLENBQUMsSUFBRyxBQUFJLE1BQUosS0FBUSxLQUFFLFlBQVc7QUFBQTtBQUFFLFFBQU0sTUFBTSxFQUFFLEtBQUk7QUFBQTtBQUFLLFlBQVksR0FBRTtBQUFDLFNBQU8sSUFBRSxDQUFDO0FBQUE7QUFBRSxZQUFZLEdBQUU7QUFBQyxXQUFRLElBQUUsSUFBRyxJQUFFLEdBQUUsS0FBRyxHQUFFO0FBQUksTUFBRSxLQUFLO0FBQUcsU0FBTztBQUFBO0FBQ3JkLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxJQUFFLGdCQUFjO0FBQUUsTUFBSSxJQUFFLElBQUU7QUFBRSxJQUFFLGtCQUFnQjtBQUFFLElBQUUsZUFBYTtBQUFFLE1BQUUsRUFBRTtBQUFXLE1BQUUsS0FBRyxHQUFHO0FBQUcsSUFBRSxLQUFHO0FBQUE7QUFBRSxJQUFJLEtBQUcsS0FBSyxRQUFNLEtBQUssUUFBTSxJQUFHLEtBQUcsS0FBSyxLQUFJLEtBQUcsS0FBSztBQUFJLFlBQVksR0FBRTtBQUFDLFNBQU8sQUFBSSxNQUFKLElBQU0sS0FBRyxLQUFJLElBQUcsS0FBRyxLQUFHLEtBQUc7QUFBQTtBQUFFLElBQUksS0FBRyxFQUFFLCtCQUE4QixLQUFHLEVBQUUsMEJBQXlCLEtBQUc7QUFBRyxZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxRQUFJO0FBQUssTUFBSSxJQUFFLElBQUcsS0FBRTtBQUFHLE9BQUc7QUFBRyxNQUFHO0FBQUMsT0FBRyxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUEsWUFBRztBQUFRLElBQUMsTUFBRyxPQUFJO0FBQUE7QUFBQTtBQUFNLGNBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLEtBQUcsSUFBRyxHQUFHLEtBQUssTUFBSyxHQUFFLEdBQUUsR0FBRTtBQUFBO0FBQ2piLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUcsSUFBRztBQUFDLFFBQUk7QUFBRSxRQUFJLEtBQUUsQUFBSyxLQUFFLE9BQVAsTUFBWSxJQUFFLEdBQUcsVUFBUSxLQUFHLEdBQUcsUUFBUTtBQUFHLFVBQUUsR0FBRyxNQUFLLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRyxLQUFLO0FBQUEsU0FBTztBQUFDLFVBQUksS0FBRSxHQUFHLEdBQUUsR0FBRSxHQUFFO0FBQUcsVUFBRyxBQUFPLE9BQVA7QUFBUyxhQUFHLEdBQUcsR0FBRTtBQUFBLFdBQU87QUFBQyxZQUFHLEdBQUU7QUFBQyxjQUFHLEtBQUcsR0FBRyxRQUFRLElBQUc7QUFBQyxnQkFBRSxHQUFHLElBQUUsR0FBRSxHQUFFLEdBQUU7QUFBRyxlQUFHLEtBQUs7QUFBRztBQUFBO0FBQU8sY0FBRyxHQUFHLElBQUUsR0FBRSxHQUFFLEdBQUU7QUFBRztBQUFPLGFBQUcsR0FBRTtBQUFBO0FBQUcsV0FBRyxHQUFFLEdBQUUsR0FBRSxNQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDOVEsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEdBQUc7QUFBRyxNQUFFLEdBQUc7QUFBRyxNQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsUUFBSSxLQUFFLEdBQUc7QUFBRyxRQUFHLEFBQU8sT0FBUDtBQUFTLFVBQUU7QUFBQSxTQUFTO0FBQUMsVUFBSSxLQUFFLEdBQUU7QUFBSSxVQUFHLEFBQUssT0FBTCxJQUFPO0FBQUMsWUFBRSxHQUFHO0FBQUcsWUFBRyxBQUFPLE1BQVA7QUFBUyxpQkFBTztBQUFFLFlBQUU7QUFBQSxpQkFBYSxBQUFJLE9BQUosR0FBTTtBQUFDLFlBQUcsR0FBRSxVQUFVO0FBQVEsaUJBQU8sQUFBSSxHQUFFLFFBQU4sSUFBVSxHQUFFLFVBQVUsZ0JBQWM7QUFBSyxZQUFFO0FBQUE7QUFBVSxlQUFJLEtBQUksS0FBRTtBQUFBO0FBQUE7QUFBTyxLQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBRyxTQUFPO0FBQUE7QUFBSyxJQUFJLEtBQUcsTUFBSyxLQUFHLE1BQUssS0FBRztBQUN6VCxjQUFhO0FBQUMsTUFBRztBQUFHLFdBQU87QUFBRyxNQUFJLEdBQUUsSUFBRSxJQUFHLElBQUUsRUFBRSxRQUFPLEdBQUUsSUFBRSxXQUFVLEtBQUcsR0FBRyxRQUFNLEdBQUcsYUFBWSxLQUFFLEVBQUU7QUFBTyxPQUFJLElBQUUsR0FBRSxJQUFFLEtBQUcsRUFBRSxPQUFLLEVBQUUsSUFBRztBQUFJO0FBQUMsTUFBSSxLQUFFLElBQUU7QUFBRSxPQUFJLElBQUUsR0FBRSxLQUFHLE1BQUcsRUFBRSxJQUFFLE9BQUssRUFBRSxLQUFFLElBQUc7QUFBSTtBQUFDLFNBQU8sS0FBRyxFQUFFLE1BQU0sR0FBRSxJQUFFLElBQUUsSUFBRSxJQUFFO0FBQUE7QUFBUSxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFRLGdCQUFhLElBQUcsS0FBRSxFQUFFLFVBQVMsQUFBSSxNQUFKLEtBQU8sQUFBSyxNQUFMLE1BQVMsS0FBRSxPQUFLLElBQUU7QUFBRSxFQUFLLE1BQUwsTUFBUyxLQUFFO0FBQUksU0FBTyxNQUFJLEtBQUcsQUFBSyxNQUFMLEtBQU8sSUFBRTtBQUFBO0FBQUUsY0FBYTtBQUFDLFNBQU07QUFBQTtBQUFHLGNBQWE7QUFBQyxTQUFNO0FBQUE7QUFDalksWUFBWSxHQUFFO0FBQUMsYUFBVyxJQUFFLEdBQUUsR0FBRSxJQUFFLElBQUU7QUFBQyxTQUFLLGFBQVc7QUFBRSxTQUFLLGNBQVk7QUFBRSxTQUFLLE9BQUs7QUFBRSxTQUFLLGNBQVk7QUFBRSxTQUFLLFNBQU87QUFBRSxTQUFLLGdCQUFjO0FBQUssYUFBUSxLQUFLO0FBQUUsUUFBRSxlQUFlLE1BQUssTUFBRSxFQUFFLElBQUcsS0FBSyxLQUFHLEtBQUUsR0FBRSxNQUFHLEdBQUU7QUFBSSxTQUFLLHFCQUFvQixDQUFNLEdBQUUsb0JBQVIsT0FBeUIsR0FBRSxtQkFBaUIsQUFBSyxHQUFFLGdCQUFQLFNBQW9CLEtBQUc7QUFBRyxTQUFLLHVCQUFxQjtBQUFHLFdBQU87QUFBQTtBQUFLQSxNQUFFLEVBQUUsV0FBVSxFQUFDLGdCQUFlLFdBQVU7QUFBQyxTQUFLLG1CQUFpQjtBQUFHLFFBQUksS0FBRSxLQUFLO0FBQVksVUFBSSxJQUFFLGlCQUFlLEdBQUUsbUJBQWlCLEFBQVksT0FBTyxHQUFFLGdCQUFyQixhQUN4ZCxJQUFFLGNBQVksUUFBSSxLQUFLLHFCQUFtQjtBQUFBLEtBQUssaUJBQWdCLFdBQVU7QUFBQyxRQUFJLEtBQUUsS0FBSztBQUFZLFVBQUksSUFBRSxrQkFBZ0IsR0FBRSxvQkFBa0IsQUFBWSxPQUFPLEdBQUUsaUJBQXJCLGFBQW9DLElBQUUsZUFBYSxPQUFJLEtBQUssdUJBQXFCO0FBQUEsS0FBSyxTQUFRLFdBQVU7QUFBQSxLQUFHLGNBQWE7QUFBSyxTQUFPO0FBQUE7QUFDaFIsSUFBSSxLQUFHLEVBQUMsWUFBVyxHQUFFLFNBQVEsR0FBRSxZQUFXLEdBQUUsV0FBVSxTQUFTLEdBQUU7QUFBQyxTQUFPLEVBQUUsYUFBVyxLQUFLO0FBQUEsR0FBTyxrQkFBaUIsR0FBRSxXQUFVLEtBQUcsS0FBRyxHQUFHLEtBQUksS0FBR0EsSUFBRSxJQUFHLElBQUcsRUFBQyxNQUFLLEdBQUUsUUFBTyxNQUFJLEtBQUcsR0FBRyxLQUFJLElBQUcsSUFBRyxJQUFHLEtBQUdBLElBQUUsSUFBRyxJQUFHLEVBQUMsU0FBUSxHQUFFLFNBQVEsR0FBRSxTQUFRLEdBQUUsU0FBUSxHQUFFLE9BQU0sR0FBRSxPQUFNLEdBQUUsU0FBUSxHQUFFLFVBQVMsR0FBRSxRQUFPLEdBQUUsU0FBUSxHQUFFLGtCQUFpQixJQUFHLFFBQU8sR0FBRSxTQUFRLEdBQUUsZUFBYyxTQUFTLEdBQUU7QUFBQyxTQUFPLEFBQVMsRUFBRSxrQkFBWCxTQUF5QixFQUFFLGdCQUFjLEVBQUUsYUFBVyxFQUFFLFlBQVUsRUFBRSxjQUFZLEVBQUU7QUFBQSxHQUFlLFdBQVUsU0FBUyxHQUFFO0FBQUMsTUFBRyxlQUMzZTtBQUFFLFdBQU8sRUFBRTtBQUFVLFFBQUksTUFBSyxPQUFJLEFBQWMsRUFBRSxTQUFoQixjQUFzQixNQUFHLEVBQUUsVUFBUSxHQUFHLFNBQVEsS0FBRyxFQUFFLFVBQVEsR0FBRyxXQUFTLEtBQUcsS0FBRyxHQUFFLEtBQUc7QUFBRyxTQUFPO0FBQUEsR0FBSSxXQUFVLFNBQVMsR0FBRTtBQUFDLFNBQU0sZUFBYyxJQUFFLEVBQUUsWUFBVTtBQUFBLE1BQU0sS0FBRyxHQUFHLEtBQUksS0FBR0EsSUFBRSxJQUFHLElBQUcsRUFBQyxjQUFhLE1BQUksS0FBRyxHQUFHLEtBQUksS0FBR0EsSUFBRSxJQUFHLElBQUcsRUFBQyxlQUFjLE1BQUksS0FBRyxHQUFHLEtBQUksS0FBR0EsSUFBRSxJQUFHLElBQUcsRUFBQyxlQUFjLEdBQUUsYUFBWSxHQUFFLGVBQWMsTUFBSSxLQUFHLEdBQUcsS0FBSSxLQUFHQSxJQUFFLElBQUcsSUFBRyxFQUFDLGVBQWMsU0FBUyxHQUFFO0FBQUMsU0FBTSxtQkFBa0IsSUFBRSxFQUFFLGdCQUFjLE9BQU87QUFBQSxNQUFpQixLQUFHLEdBQUcsS0FBSSxLQUFHQSxJQUFFLElBQUcsSUFBRyxFQUFDLE1BQUssTUFBSSxLQUFHLEdBQUcsS0FBSSxLQUFHO0FBQUEsRUFBQyxLQUFJO0FBQUEsRUFDeGYsVUFBUztBQUFBLEVBQUksTUFBSztBQUFBLEVBQVksSUFBRztBQUFBLEVBQVUsT0FBTTtBQUFBLEVBQWEsTUFBSztBQUFBLEVBQVksS0FBSTtBQUFBLEVBQVMsS0FBSTtBQUFBLEVBQUssTUFBSztBQUFBLEVBQWMsTUFBSztBQUFBLEVBQWMsUUFBTztBQUFBLEVBQWEsaUJBQWdCO0FBQUEsR0FBZ0IsS0FBRztBQUFBLEVBQUMsR0FBRTtBQUFBLEVBQVksR0FBRTtBQUFBLEVBQU0sSUFBRztBQUFBLEVBQVEsSUFBRztBQUFBLEVBQVEsSUFBRztBQUFBLEVBQVEsSUFBRztBQUFBLEVBQVUsSUFBRztBQUFBLEVBQU0sSUFBRztBQUFBLEVBQVEsSUFBRztBQUFBLEVBQVcsSUFBRztBQUFBLEVBQVMsSUFBRztBQUFBLEVBQUksSUFBRztBQUFBLEVBQVMsSUFBRztBQUFBLEVBQVcsSUFBRztBQUFBLEVBQU0sSUFBRztBQUFBLEVBQU8sSUFBRztBQUFBLEVBQVksSUFBRztBQUFBLEVBQVUsSUFBRztBQUFBLEVBQWEsSUFBRztBQUFBLEVBQVksSUFBRztBQUFBLEVBQVMsSUFBRztBQUFBLEVBQVMsS0FBSTtBQUFBLEVBQUssS0FBSTtBQUFBLEVBQUssS0FBSTtBQUFBLEVBQUssS0FBSTtBQUFBLEVBQUssS0FBSTtBQUFBLEVBQUssS0FBSTtBQUFBLEVBQUssS0FBSTtBQUFBLEVBQ3RmLEtBQUk7QUFBQSxFQUFLLEtBQUk7QUFBQSxFQUFLLEtBQUk7QUFBQSxFQUFNLEtBQUk7QUFBQSxFQUFNLEtBQUk7QUFBQSxFQUFNLEtBQUk7QUFBQSxFQUFVLEtBQUk7QUFBQSxFQUFhLEtBQUk7QUFBQSxHQUFRLEtBQUcsRUFBQyxLQUFJLFVBQVMsU0FBUSxXQUFVLE1BQUssV0FBVSxPQUFNO0FBQVksWUFBWSxHQUFFO0FBQUMsTUFBSSxJQUFFLEtBQUs7QUFBWSxTQUFPLEVBQUUsbUJBQWlCLEVBQUUsaUJBQWlCLEtBQUksS0FBRSxHQUFHLE1BQUksQ0FBQyxDQUFDLEVBQUUsS0FBRztBQUFBO0FBQUcsY0FBYTtBQUFDLFNBQU87QUFBQTtBQUM5UixJQUFJLEtBQUdBLElBQUUsSUFBRyxJQUFHLEVBQUMsS0FBSSxTQUFTLEdBQUU7QUFBQyxNQUFHLEVBQUUsS0FBSTtBQUFDLFFBQUksSUFBRSxHQUFHLEVBQUUsUUFBTSxFQUFFO0FBQUksUUFBRyxBQUFpQixNQUFqQjtBQUFtQixhQUFPO0FBQUE7QUFBRSxTQUFNLEFBQWEsRUFBRSxTQUFmLGFBQXFCLEtBQUUsR0FBRyxJQUFHLEFBQUssTUFBTCxLQUFPLFVBQVEsT0FBTyxhQUFhLE1BQUksQUFBWSxFQUFFLFNBQWQsYUFBb0IsQUFBVSxFQUFFLFNBQVosVUFBaUIsR0FBRyxFQUFFLFlBQVUsaUJBQWU7QUFBQSxHQUFJLE1BQUssR0FBRSxVQUFTLEdBQUUsU0FBUSxHQUFFLFVBQVMsR0FBRSxRQUFPLEdBQUUsU0FBUSxHQUFFLFFBQU8sR0FBRSxRQUFPLEdBQUUsa0JBQWlCLElBQUcsVUFBUyxTQUFTLEdBQUU7QUFBQyxTQUFNLEFBQWEsRUFBRSxTQUFmLGFBQW9CLEdBQUcsS0FBRztBQUFBLEdBQUcsU0FBUSxTQUFTLEdBQUU7QUFBQyxTQUFNLEFBQVksRUFBRSxTQUFkLGFBQW9CLEFBQVUsRUFBRSxTQUFaLFVBQWlCLEVBQUUsVUFBUTtBQUFBLEdBQUcsT0FBTSxTQUFTLEdBQUU7QUFBQyxTQUFNLEFBQzdlLEVBQUUsU0FEMmUsYUFDdGUsR0FBRyxLQUFHLEFBQVksRUFBRSxTQUFkLGFBQW9CLEFBQVUsRUFBRSxTQUFaLFVBQWlCLEVBQUUsVUFBUTtBQUFBLE1BQUssS0FBRyxHQUFHLEtBQUksS0FBR0EsSUFBRSxJQUFHLElBQUcsRUFBQyxXQUFVLEdBQUUsT0FBTSxHQUFFLFFBQU8sR0FBRSxVQUFTLEdBQUUsb0JBQW1CLEdBQUUsT0FBTSxHQUFFLE9BQU0sR0FBRSxPQUFNLEdBQUUsYUFBWSxHQUFFLFdBQVUsTUFBSSxLQUFHLEdBQUcsS0FBSSxLQUFHQSxJQUFFLElBQUcsSUFBRyxFQUFDLFNBQVEsR0FBRSxlQUFjLEdBQUUsZ0JBQWUsR0FBRSxRQUFPLEdBQUUsU0FBUSxHQUFFLFNBQVEsR0FBRSxVQUFTLEdBQUUsa0JBQWlCLE9BQUssS0FBRyxHQUFHLEtBQUksS0FBR0EsSUFBRSxJQUFHLElBQUcsRUFBQyxjQUFhLEdBQUUsYUFBWSxHQUFFLGVBQWMsTUFBSSxLQUFHLEdBQUcsS0FBSSxLQUFHQSxJQUFFLElBQUcsSUFBRztBQUFBLEVBQUMsUUFBTyxTQUFTLEdBQUU7QUFBQyxXQUFNLFlBQVcsSUFBRSxFQUFFLFNBQU8saUJBQWdCLElBQUUsQ0FBQyxFQUFFLGNBQVk7QUFBQTtBQUFBLEVBQ2xmLFFBQU8sU0FBUyxHQUFFO0FBQUMsV0FBTSxZQUFXLElBQUUsRUFBRSxTQUFPLGlCQUFnQixJQUFFLENBQUMsRUFBRSxjQUFZLGdCQUFlLElBQUUsQ0FBQyxFQUFFLGFBQVc7QUFBQTtBQUFBLEVBQUcsUUFBTztBQUFBLEVBQUUsV0FBVTtBQUFBLElBQUksS0FBRyxHQUFHLEtBQUksS0FBRyxDQUFDLEdBQUUsSUFBRyxJQUFHLEtBQUksS0FBRyxNQUFJLHNCQUFxQixRQUFPLEtBQUc7QUFBSyxNQUFJLGtCQUFpQixZQUFXLE1BQUcsU0FBUztBQUFjLElBQUksS0FBRyxNQUFJLGVBQWMsVUFBUSxDQUFDLElBQUcsS0FBRyxNQUFLLEVBQUMsTUFBSSxNQUFJLElBQUUsTUFBSSxNQUFJLEtBQUksS0FBRyxPQUFPLGFBQWEsS0FBSSxLQUFHO0FBQzFXLFlBQVksR0FBRSxHQUFFO0FBQUMsVUFBTztBQUFBLFNBQVE7QUFBUSxhQUFNLEFBQUssR0FBRyxRQUFRLEVBQUUsYUFBbEI7QUFBQSxTQUFnQztBQUFVLGFBQU8sQUFBTSxFQUFFLFlBQVI7QUFBQSxTQUFxQjtBQUFBLFNBQWdCO0FBQUEsU0FBaUI7QUFBVyxhQUFNO0FBQUE7QUFBVyxhQUFNO0FBQUE7QUFBQTtBQUFJLFlBQVksR0FBRTtBQUFDLE1BQUUsRUFBRTtBQUFPLFNBQU0sQUFBVyxPQUFPLE1BQWxCLFlBQXFCLFVBQVMsSUFBRSxFQUFFLE9BQUs7QUFBQTtBQUFLLElBQUksS0FBRztBQUFHLFlBQVksR0FBRSxHQUFFO0FBQUMsVUFBTztBQUFBLFNBQVE7QUFBaUIsYUFBTyxHQUFHO0FBQUEsU0FBUTtBQUFXLFVBQUcsQUFBSyxFQUFFLFVBQVA7QUFBYSxlQUFPO0FBQUssV0FBRztBQUFHLGFBQU87QUFBQSxTQUFRO0FBQVksYUFBTyxJQUFFLEVBQUUsTUFBSyxNQUFJLE1BQUksS0FBRyxPQUFLO0FBQUE7QUFBVSxhQUFPO0FBQUE7QUFBQTtBQUM3YyxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUc7QUFBRyxXQUFNLEFBQW1CLE1BQW5CLG9CQUFzQixDQUFDLE1BQUksR0FBRyxHQUFFLEtBQUksS0FBRSxNQUFLLEtBQUcsS0FBRyxLQUFHLE1BQUssS0FBRyxPQUFHLEtBQUc7QUFBSyxVQUFPO0FBQUEsU0FBUTtBQUFRLGFBQU87QUFBQSxTQUFVO0FBQVcsVUFBRyxDQUFFLEdBQUUsV0FBUyxFQUFFLFVBQVEsRUFBRSxZQUFVLEVBQUUsV0FBUyxFQUFFLFFBQU87QUFBQyxZQUFHLEVBQUUsUUFBTSxJQUFFLEVBQUUsS0FBSztBQUFPLGlCQUFPLEVBQUU7QUFBSyxZQUFHLEVBQUU7QUFBTSxpQkFBTyxPQUFPLGFBQWEsRUFBRTtBQUFBO0FBQU8sYUFBTztBQUFBLFNBQVU7QUFBaUIsYUFBTyxNQUFJLEFBQU8sRUFBRSxXQUFULE9BQWdCLE9BQUssRUFBRTtBQUFBO0FBQWEsYUFBTztBQUFBO0FBQUE7QUFDbFksSUFBSSxLQUFHLEVBQUMsT0FBTSxNQUFHLE1BQUssTUFBRyxVQUFTLE1BQUcsa0JBQWlCLE1BQUcsT0FBTSxNQUFHLE9BQU0sTUFBRyxRQUFPLE1BQUcsVUFBUyxNQUFHLE9BQU0sTUFBRyxRQUFPLE1BQUcsS0FBSSxNQUFHLE1BQUssTUFBRyxNQUFLLE1BQUcsS0FBSSxNQUFHLE1BQUs7QUFBSSxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsS0FBRyxFQUFFLFlBQVUsRUFBRSxTQUFTO0FBQWMsU0FBTSxBQUFVLE1BQVYsVUFBWSxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQU0sQUFBYSxNQUFiLGFBQWUsT0FBRztBQUFBO0FBQUcsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsS0FBRztBQUFHLE1BQUUsR0FBRyxHQUFFO0FBQVksTUFBRSxFQUFFLFVBQVMsS0FBRSxJQUFJLEdBQUcsWUFBVyxVQUFTLE1BQUssR0FBRSxJQUFHLEVBQUUsS0FBSyxFQUFDLE9BQU0sR0FBRSxXQUFVO0FBQUE7QUFBSyxJQUFJLEtBQUcsTUFBSyxLQUFHO0FBQUssWUFBWSxHQUFFO0FBQUMsS0FBRyxHQUFFO0FBQUE7QUFBRyxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsR0FBRztBQUFHLE1BQUcsR0FBRztBQUFHLFdBQU87QUFBQTtBQUNuZSxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUcsQUFBVyxNQUFYO0FBQWEsV0FBTztBQUFBO0FBQUUsSUFBSSxLQUFHO0FBQUcsSUFBRyxJQUFHO0FBQUMsTUFBSTtBQUFHLE1BQUcsSUFBRztBQUFDLFFBQUksS0FBRyxhQUFZO0FBQVMsUUFBRyxDQUFDLElBQUc7QUFBQyxVQUFJLEtBQUcsU0FBUyxjQUFjO0FBQU8sU0FBRyxhQUFhLFdBQVU7QUFBVyxXQUFHLEFBQWEsT0FBTyxHQUFHLFlBQXZCO0FBQUE7QUFBK0IsU0FBRztBQUFBO0FBQVEsU0FBRztBQUFHLE9BQUcsTUFBSyxFQUFDLFNBQVMsZ0JBQWMsSUFBRSxTQUFTO0FBQUE7QUFBYyxjQUFhO0FBQUMsUUFBSyxJQUFHLFlBQVksb0JBQW1CLEtBQUksS0FBRyxLQUFHO0FBQUE7QUFBTSxZQUFZLEdBQUU7QUFBQyxNQUFHLEFBQVUsRUFBRSxpQkFBWixXQUEwQixHQUFHLEtBQUk7QUFBQyxRQUFJLElBQUU7QUFBRyxPQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUc7QUFBSSxRQUFFO0FBQUcsUUFBRztBQUFHLFFBQUU7QUFBQSxTQUFPO0FBQUMsV0FBRztBQUFHLFVBQUc7QUFBQyxXQUFHLEdBQUU7QUFBQSxnQkFBRztBQUFRLGFBQUcsT0FBRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQzNlLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxFQUFZLE1BQVosWUFBZSxPQUFLLEtBQUcsR0FBRSxLQUFHLEdBQUUsR0FBRyxZQUFZLG9CQUFtQixPQUFLLEFBQWEsTUFBYixjQUFnQjtBQUFBO0FBQUssWUFBWSxHQUFFO0FBQUMsTUFBRyxBQUFvQixNQUFwQixxQkFBdUIsQUFBVSxNQUFWLFdBQWEsQUFBWSxNQUFaO0FBQWMsV0FBTyxHQUFHO0FBQUE7QUFBSSxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUcsQUFBVSxNQUFWO0FBQVksV0FBTyxHQUFHO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUcsQUFBVSxNQUFWLFdBQWEsQUFBVyxNQUFYO0FBQWEsV0FBTyxHQUFHO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRTtBQUFDLFNBQU8sTUFBSSxLQUFJLENBQUksTUFBSixLQUFPLElBQUUsTUFBSSxJQUFFLE1BQUksTUFBSSxLQUFHLE1BQUk7QUFBQTtBQUFFLElBQUksS0FBRyxBQUFhLE9BQU8sT0FBTyxPQUEzQixhQUE4QixPQUFPLEtBQUcsSUFBRyxLQUFHLE9BQU8sVUFBVTtBQUM3YSxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUcsR0FBRyxHQUFFO0FBQUcsV0FBTTtBQUFHLE1BQUcsQUFBVyxPQUFPLE1BQWxCLFlBQXFCLEFBQU8sTUFBUCxRQUFVLEFBQVcsT0FBTyxNQUFsQixZQUFxQixBQUFPLE1BQVA7QUFBUyxXQUFNO0FBQUcsTUFBSSxJQUFFLE9BQU8sS0FBSyxJQUFHLElBQUUsT0FBTyxLQUFLO0FBQUcsTUFBRyxFQUFFLFdBQVMsRUFBRTtBQUFPLFdBQU07QUFBRyxPQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTztBQUFJLFFBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRSxFQUFFLE9BQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFJLEVBQUUsRUFBRTtBQUFLLGFBQU07QUFBRyxTQUFNO0FBQUE7QUFBRyxZQUFZLEdBQUU7QUFBQyxTQUFLLEtBQUcsRUFBRTtBQUFZLFFBQUUsRUFBRTtBQUFXLFNBQU87QUFBQTtBQUNsVSxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxHQUFHO0FBQUcsTUFBRTtBQUFFLFdBQVEsR0FBRSxLQUFHO0FBQUMsUUFBRyxBQUFJLEVBQUUsYUFBTixHQUFlO0FBQUMsVUFBRSxJQUFFLEVBQUUsWUFBWTtBQUFPLFVBQUcsS0FBRyxLQUFHLEtBQUc7QUFBRSxlQUFNLEVBQUMsTUFBSyxHQUFFLFFBQU8sSUFBRTtBQUFHLFVBQUU7QUFBQTtBQUFFLE9BQUU7QUFBQyxhQUFLLEtBQUc7QUFBQyxZQUFHLEVBQUUsYUFBWTtBQUFDLGNBQUUsRUFBRTtBQUFZO0FBQUE7QUFBUSxZQUFFLEVBQUU7QUFBQTtBQUFXLFVBQUU7QUFBQTtBQUFPLFFBQUUsR0FBRztBQUFBO0FBQUE7QUFBSSxZQUFZLEdBQUUsR0FBRTtBQUFDLFNBQU8sS0FBRyxJQUFFLE1BQUksSUFBRSxPQUFHLEtBQUcsQUFBSSxFQUFFLGFBQU4sSUFBZSxRQUFHLEtBQUcsQUFBSSxFQUFFLGFBQU4sSUFBZSxHQUFHLEdBQUUsRUFBRSxjQUFZLGNBQWEsSUFBRSxFQUFFLFNBQVMsS0FBRyxFQUFFLDBCQUF3QixDQUFDLENBQUUsR0FBRSx3QkFBd0IsS0FBRyxNQUFJLFFBQUc7QUFBQTtBQUM1WixjQUFhO0FBQUMsV0FBUSxJQUFFLFFBQU8sSUFBRSxNQUFLLGFBQWEsRUFBRSxxQkFBbUI7QUFBQyxRQUFHO0FBQUMsVUFBSSxJQUFFLEFBQVcsT0FBTyxFQUFFLGNBQWMsU0FBUyxTQUEzQztBQUFBLGFBQXNELEdBQU47QUFBUyxVQUFFO0FBQUE7QUFBRyxRQUFHO0FBQUUsVUFBRSxFQUFFO0FBQUE7QUFBbUI7QUFBTSxRQUFFLEdBQUcsRUFBRTtBQUFBO0FBQVUsU0FBTztBQUFBO0FBQUUsWUFBWSxHQUFFO0FBQUMsTUFBSSxJQUFFLEtBQUcsRUFBRSxZQUFVLEVBQUUsU0FBUztBQUFjLFNBQU8sS0FBSSxDQUFVLE1BQVYsV0FBYyxDQUFTLEVBQUUsU0FBWCxVQUFpQixBQUFXLEVBQUUsU0FBYixZQUFtQixBQUFRLEVBQUUsU0FBVixTQUFnQixBQUFRLEVBQUUsU0FBVixTQUFnQixBQUFhLEVBQUUsU0FBZixlQUFzQixBQUFhLE1BQWIsY0FBZ0IsQUFBUyxFQUFFLG9CQUFYO0FBQUE7QUFDN1ksSUFBSSxLQUFHLE1BQUksa0JBQWlCLFlBQVUsTUFBSSxTQUFTLGNBQWEsS0FBRyxNQUFLLEtBQUcsTUFBSyxLQUFHLE1BQUssS0FBRztBQUMzRixZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsV0FBUyxJQUFFLEVBQUUsV0FBUyxBQUFJLEVBQUUsYUFBTixJQUFlLElBQUUsRUFBRTtBQUFjLFFBQUksQUFBTSxNQUFOLFFBQVUsT0FBSyxHQUFHLE1BQUssS0FBRSxJQUFHLG9CQUFtQixLQUFHLEdBQUcsS0FBRyxJQUFFLEVBQUMsT0FBTSxFQUFFLGdCQUFlLEtBQUksRUFBRSxpQkFBZSxLQUFHLEdBQUUsaUJBQWUsRUFBRSxjQUFjLGVBQWEsUUFBUSxnQkFBZSxJQUFFLEVBQUMsWUFBVyxFQUFFLFlBQVcsY0FBYSxFQUFFLGNBQWEsV0FBVSxFQUFFLFdBQVUsYUFBWSxFQUFFLGdCQUFjLE1BQUksR0FBRyxJQUFHLE1BQUssTUFBRyxHQUFFLElBQUUsR0FBRyxJQUFHLGFBQVksSUFBRSxFQUFFLFVBQVMsS0FBRSxJQUFJLEdBQUcsWUFBVyxVQUFTLE1BQUssR0FBRSxJQUFHLEVBQUUsS0FBSyxFQUFDLE9BQU0sR0FBRSxXQUFVLE1BQUksRUFBRSxTQUFPO0FBQUE7QUFDamYsR0FBRyxtakJBQW1qQixNQUFNLE1BQzVqQjtBQUFHLEdBQUcsb1JBQW9SLE1BQU0sTUFBSztBQUFHLEdBQUcsSUFBRztBQUFHLFNBQVEsS0FBRyxxRkFBcUYsTUFBTSxNQUFLLEtBQUcsR0FBRSxLQUFHLEdBQUcsUUFBTztBQUFLLEtBQUcsSUFBSSxHQUFHLEtBQUk7QUFBRyxHQUFHLGdCQUFlLENBQUMsWUFBVztBQUNsZSxHQUFHLGdCQUFlLENBQUMsWUFBVztBQUFjLEdBQUcsa0JBQWlCLENBQUMsY0FBYTtBQUFnQixHQUFHLGtCQUFpQixDQUFDLGNBQWE7QUFBZ0IsR0FBRyxZQUFXLG9FQUFvRSxNQUFNO0FBQU0sR0FBRyxZQUFXLHVGQUF1RixNQUFNO0FBQU0sR0FBRyxpQkFBZ0IsQ0FBQyxrQkFBaUIsWUFBVyxhQUFZO0FBQVUsR0FBRyxvQkFBbUIsMkRBQTJELE1BQU07QUFDNWYsR0FBRyxzQkFBcUIsNkRBQTZELE1BQU07QUFBTSxHQUFHLHVCQUFzQiw4REFBOEQsTUFBTTtBQUFNLElBQUksS0FBRyxzTkFBc04sTUFBTSxNQUFLLEtBQUcsSUFBSSxJQUFJLDBDQUEwQyxNQUFNLEtBQUssT0FBTztBQUNuZixZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsUUFBTTtBQUFnQixJQUFFLGdCQUFjO0FBQUUsS0FBRyxHQUFFLEdBQUUsUUFBTztBQUFHLElBQUUsZ0JBQWM7QUFBQTtBQUNwRyxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUUsQUFBSyxLQUFFLE9BQVA7QUFBVSxXQUFRLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxLQUFJO0FBQUMsUUFBSSxJQUFFLEVBQUUsSUFBRyxJQUFFLEVBQUU7QUFBTSxRQUFFLEVBQUU7QUFBVSxPQUFFO0FBQUMsVUFBSSxLQUFFO0FBQU8sVUFBRztBQUFFLGlCQUFRLEtBQUUsRUFBRSxTQUFPLEdBQUUsS0FBRyxJQUFFLE1BQUk7QUFBQyxjQUFJLEtBQUUsRUFBRSxLQUFHLElBQUUsR0FBRSxVQUFTLEtBQUUsR0FBRTtBQUFjLGVBQUUsR0FBRTtBQUFTLGNBQUcsTUFBSSxNQUFHLEVBQUU7QUFBdUI7QUFBUSxhQUFHLEdBQUUsSUFBRTtBQUFHLGVBQUU7QUFBQTtBQUFBO0FBQU8sYUFBSSxLQUFFLEdBQUUsS0FBRSxFQUFFLFFBQU8sTUFBSTtBQUFDLGVBQUUsRUFBRTtBQUFHLGNBQUUsR0FBRTtBQUFTLGVBQUUsR0FBRTtBQUFjLGVBQUUsR0FBRTtBQUFTLGNBQUcsTUFBSSxNQUFHLEVBQUU7QUFBdUI7QUFBUSxhQUFHLEdBQUUsSUFBRTtBQUFHLGVBQUU7QUFBQTtBQUFBO0FBQUE7QUFBSSxNQUFHO0FBQUcsVUFBTSxJQUFFLElBQUcsS0FBRyxPQUFHLEtBQUcsTUFBSztBQUFBO0FBQzFhLFdBQVcsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEdBQUcsSUFBRyxJQUFFLElBQUU7QUFBVyxJQUFFLElBQUksTUFBSyxJQUFHLEdBQUUsR0FBRSxHQUFFLFFBQUksRUFBRSxJQUFJO0FBQUE7QUFBSSxJQUFJLEtBQUcsb0JBQWtCLEtBQUssU0FBUyxTQUFTLElBQUksTUFBTTtBQUFHLFlBQVksR0FBRTtBQUFDLElBQUUsT0FBTSxHQUFFLE1BQUksTUFBRyxHQUFHLFFBQVEsU0FBUyxHQUFFO0FBQUMsT0FBRyxJQUFJLE1BQUksR0FBRyxHQUFFLE9BQUcsR0FBRTtBQUFNLE9BQUcsR0FBRSxNQUFHLEdBQUU7QUFBQTtBQUFBO0FBQ3RPLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxJQUFFLFVBQVUsVUFBUSxBQUFTLFVBQVUsT0FBbkIsU0FBc0IsVUFBVSxLQUFHLEdBQUUsS0FBRTtBQUFFLEVBQW9CLE1BQXBCLHFCQUF1QixBQUFJLEVBQUUsYUFBTixLQUFpQixNQUFFLEVBQUU7QUFBZSxNQUFHLEFBQU8sTUFBUCxRQUFVLENBQUMsS0FBRyxHQUFHLElBQUksSUFBRztBQUFDLFFBQUcsQUFBVyxNQUFYO0FBQWE7QUFBTyxTQUFHO0FBQUUsU0FBRTtBQUFBO0FBQUUsTUFBSSxLQUFFLEdBQUcsS0FBRyxLQUFFLElBQUUsT0FBTSxLQUFFLFlBQVU7QUFBVSxLQUFFLElBQUksT0FBSyxNQUFJLE1BQUcsSUFBRyxHQUFHLElBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFJO0FBQUE7QUFDbFMsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEdBQUcsSUFBSTtBQUFHLFVBQU8sQUFBUyxNQUFULFNBQVcsSUFBRTtBQUFBLFNBQVE7QUFBRSxVQUFFO0FBQUc7QUFBQSxTQUFXO0FBQUUsVUFBRUc7QUFBRztBQUFBO0FBQWMsVUFBRTtBQUFBO0FBQUcsTUFBRSxFQUFFLEtBQUssTUFBSyxHQUFFLEdBQUU7QUFBRyxNQUFFO0FBQU8sR0FBQyxNQUFJLEFBQWUsTUFBZixnQkFBa0IsQUFBYyxNQUFkLGVBQWlCLEFBQVUsTUFBVixXQUFjLEtBQUU7QUFBSSxNQUFFLEFBQVMsTUFBVCxTQUFXLEVBQUUsaUJBQWlCLEdBQUUsR0FBRSxFQUFDLFNBQVEsTUFBRyxTQUFRLE9BQUksRUFBRSxpQkFBaUIsR0FBRSxHQUFFLFFBQUksQUFBUyxNQUFULFNBQVcsRUFBRSxpQkFBaUIsR0FBRSxHQUFFLEVBQUMsU0FBUSxPQUFJLEVBQUUsaUJBQWlCLEdBQUUsR0FBRTtBQUFBO0FBQ3BXLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxLQUFFO0FBQUUsTUFBRyxBQUFLLEtBQUUsT0FBUCxLQUFXLEFBQUssS0FBRSxPQUFQLEtBQVcsQUFBTyxNQUFQO0FBQVM7QUFBRSxpQkFBTztBQUFDLFlBQUcsQUFBTyxNQUFQO0FBQVM7QUFBTyxZQUFJLEtBQUUsRUFBRTtBQUFJLFlBQUcsQUFBSSxPQUFKLEtBQU8sQUFBSSxPQUFKLEdBQU07QUFBQyxjQUFJLEtBQUUsRUFBRSxVQUFVO0FBQWMsY0FBRyxPQUFJLEtBQUcsQUFBSSxHQUFFLGFBQU4sS0FBZ0IsR0FBRSxlQUFhO0FBQUU7QUFBTSxjQUFHLEFBQUksT0FBSjtBQUFNLGlCQUFJLEtBQUUsRUFBRSxRQUFPLEFBQU8sT0FBUCxRQUFVO0FBQUMsa0JBQUksSUFBRSxHQUFFO0FBQUksa0JBQUcsQUFBSSxNQUFKLEtBQU8sQUFBSSxNQUFKO0FBQU0sb0JBQUcsSUFBRSxHQUFFLFVBQVUsZUFBYyxNQUFJLEtBQUcsQUFBSSxFQUFFLGFBQU4sS0FBZ0IsRUFBRSxlQUFhO0FBQUU7QUFBQTtBQUFPLG1CQUFFLEdBQUU7QUFBQTtBQUFPLGlCQUFLLEFBQU8sT0FBUCxRQUFVO0FBQUMsaUJBQUUsR0FBRztBQUFHLGdCQUFHLEFBQU8sT0FBUDtBQUFTO0FBQU8sZ0JBQUUsR0FBRTtBQUFJLGdCQUFHLEFBQUksTUFBSixLQUFPLEFBQUksTUFBSixHQUFNO0FBQUMsa0JBQUUsS0FBRTtBQUFFO0FBQUE7QUFBVyxpQkFBRSxHQUFFO0FBQUE7QUFBQTtBQUFZLFlBQUUsRUFBRTtBQUFBO0FBQU8sS0FBRyxXQUFVO0FBQUMsUUFBSSxLQUFFLElBQUUsS0FBRSxHQUFHLElBQUcsS0FBRTtBQUNwZixPQUFFO0FBQUMsVUFBSSxLQUFFLEdBQUcsSUFBSTtBQUFHLFVBQUcsQUFBUyxPQUFULFFBQVc7QUFBQyxZQUFJLEtBQUUsSUFBRyxLQUFFO0FBQUUsZ0JBQU87QUFBQSxlQUFRO0FBQVcsZ0JBQUcsQUFBSSxHQUFHLE9BQVA7QUFBVTtBQUFBLGVBQWE7QUFBQSxlQUFlO0FBQVEsaUJBQUU7QUFBRztBQUFBLGVBQVc7QUFBVSxpQkFBRTtBQUFRLGlCQUFFO0FBQUc7QUFBQSxlQUFXO0FBQVcsaUJBQUU7QUFBTyxpQkFBRTtBQUFHO0FBQUEsZUFBVztBQUFBLGVBQWtCO0FBQVksaUJBQUU7QUFBRztBQUFBLGVBQVc7QUFBUSxnQkFBRyxBQUFJLEVBQUUsV0FBTjtBQUFhO0FBQUEsZUFBYTtBQUFBLGVBQWdCO0FBQUEsZUFBZ0I7QUFBQSxlQUFpQjtBQUFBLGVBQWlCO0FBQUEsZUFBZTtBQUFBLGVBQWdCO0FBQUEsZUFBaUI7QUFBYyxpQkFBRTtBQUFHO0FBQUEsZUFBVztBQUFBLGVBQVk7QUFBQSxlQUFlO0FBQUEsZUFBaUI7QUFBQSxlQUFnQjtBQUFBLGVBQWlCO0FBQUEsZUFBZ0I7QUFBQSxlQUFpQjtBQUFPLGlCQUMxaUI7QUFBRztBQUFBLGVBQVc7QUFBQSxlQUFtQjtBQUFBLGVBQWdCO0FBQUEsZUFBaUI7QUFBYSxpQkFBRTtBQUFHO0FBQUEsZUFBVztBQUFBLGVBQVE7QUFBQSxlQUFRO0FBQUcsaUJBQUU7QUFBRztBQUFBLGVBQVc7QUFBRyxpQkFBRTtBQUFHO0FBQUEsZUFBVztBQUFTLGlCQUFFO0FBQUc7QUFBQSxlQUFXO0FBQVEsaUJBQUU7QUFBRztBQUFBLGVBQVc7QUFBQSxlQUFZO0FBQUEsZUFBVztBQUFRLGlCQUFFO0FBQUc7QUFBQSxlQUFXO0FBQUEsZUFBeUI7QUFBQSxlQUEwQjtBQUFBLGVBQXFCO0FBQUEsZUFBbUI7QUFBQSxlQUFtQjtBQUFBLGVBQWtCO0FBQUEsZUFBbUI7QUFBWSxpQkFBRTtBQUFBO0FBQUcsWUFBSSxLQUFFLEFBQUssS0FBRSxPQUFQLEdBQVUsS0FBRSxDQUFDLE1BQUcsQUFBVyxNQUFYLFVBQWEsS0FBRSxLQUFFLEFBQU8sT0FBUCxPQUFTLEtBQUUsWUFBVSxPQUFLO0FBQUUsYUFBRTtBQUFHLGlCQUFRLEtBQUUsSUFBRSxJQUFFLEFBQy9lLE9BRCtlLFFBQzVlO0FBQUMsZUFBRTtBQUFFLGNBQUksS0FBRSxHQUFFO0FBQVUsVUFBSSxHQUFFLFFBQU4sS0FBVyxBQUFPLE9BQVAsUUFBVyxNQUFFLElBQUUsQUFBTyxPQUFQLFFBQVcsTUFBRSxHQUFHLElBQUUsS0FBRyxBQUFNLE1BQU4sUUFBUyxHQUFFLEtBQUssR0FBRyxJQUFFLElBQUU7QUFBTSxjQUFHO0FBQUU7QUFBTSxlQUFFLEdBQUU7QUFBQTtBQUFPLFlBQUUsR0FBRSxVQUFTLE1BQUUsSUFBSSxHQUFFLElBQUUsSUFBRSxNQUFLLEdBQUUsS0FBRyxHQUFFLEtBQUssRUFBQyxPQUFNLElBQUUsV0FBVTtBQUFBO0FBQUE7QUFBTSxRQUFHLEFBQUssS0FBRSxPQUFQLEdBQVU7QUFBQyxTQUFFO0FBQUMsYUFBRSxBQUFjLE1BQWQsZUFBaUIsQUFBZ0IsTUFBaEI7QUFBa0IsYUFBRSxBQUFhLE1BQWIsY0FBZ0IsQUFBZSxNQUFmO0FBQWlCLFlBQUcsTUFBRyxBQUFLLEtBQUUsUUFBUCxLQUFhLE1BQUUsRUFBRSxpQkFBZSxFQUFFLGdCQUFlLElBQUcsT0FBSSxHQUFFO0FBQUs7QUFBUSxZQUFHLE1BQUcsSUFBRTtBQUFDLGVBQUUsR0FBRSxXQUFTLEtBQUUsS0FBRyxNQUFFLEdBQUUsaUJBQWUsR0FBRSxlQUFhLEdBQUUsZUFBYTtBQUFPLGNBQUcsSUFBRTtBQUFDLGdCQUFHLEtBQUUsRUFBRSxpQkFBZSxFQUFFLFdBQVUsS0FBRSxJQUFFLEtBQUUsS0FBRSxHQUFHLE1BQUcsTUFBSyxBQUNuZixPQURtZixRQUMvZSxNQUFFLEdBQUcsS0FBRyxPQUFJLE1BQUcsQUFBSSxHQUFFLFFBQU4sS0FBVyxBQUFJLEdBQUUsUUFBTjtBQUFXLG1CQUFFO0FBQUE7QUFBVSxpQkFBRSxNQUFLLEtBQUU7QUFBRSxjQUFHLE9BQUksSUFBRTtBQUFDLGlCQUFFO0FBQUcsaUJBQUU7QUFBZSxpQkFBRTtBQUFlLGlCQUFFO0FBQVEsZ0JBQUcsQUFBZSxNQUFmLGdCQUFrQixBQUFnQixNQUFoQjtBQUFrQixtQkFBRSxJQUFHLEtBQUUsa0JBQWlCLEtBQUUsa0JBQWlCLEtBQUU7QUFBVSxpQkFBRSxBQUFNLE1BQU4sT0FBUSxLQUFFLEdBQUc7QUFBRyxpQkFBRSxBQUFNLE1BQU4sT0FBUSxLQUFFLEdBQUc7QUFBRyxpQkFBRSxJQUFJLEdBQUUsSUFBRSxLQUFFLFNBQVEsSUFBRSxHQUFFO0FBQUcsZUFBRSxTQUFPO0FBQUUsZUFBRSxnQkFBYztBQUFFLGlCQUFFO0FBQUssZUFBRyxRQUFLLE1BQUksTUFBRSxJQUFJLEdBQUUsSUFBRSxLQUFFLFNBQVEsSUFBRSxHQUFFLEtBQUcsR0FBRSxTQUFPLElBQUUsR0FBRSxnQkFBYyxJQUFFLEtBQUU7QUFBRyxpQkFBRTtBQUFFLGdCQUFHLE1BQUc7QUFBRSxpQkFBRTtBQUFDLHFCQUFFO0FBQUUscUJBQUU7QUFBRSxxQkFBRTtBQUFFLHFCQUFJLEtBQUUsSUFBRSxJQUFFLEtBQUUsR0FBRztBQUFHO0FBQUkscUJBQUU7QUFBRSxxQkFBSSxLQUFFLElBQUUsSUFBRSxLQUFFLEdBQUc7QUFBRztBQUFJLHVCQUFLLElBQUUsS0FBRTtBQUFHLHVCQUFFLEdBQUcsS0FBRztBQUFJLHVCQUFLLElBQUUsS0FBRTtBQUFHLHVCQUNwZixHQUFHLEtBQUc7QUFBSSx1QkFBSyxRQUFLO0FBQUMsc0JBQUcsT0FBSSxNQUFHLEFBQU8sT0FBUCxRQUFVLE9BQUksR0FBRTtBQUFVO0FBQVEsdUJBQUUsR0FBRztBQUFHLHVCQUFFLEdBQUc7QUFBQTtBQUFHLHFCQUFFO0FBQUE7QUFBQTtBQUFVLG1CQUFFO0FBQUssWUFBTyxPQUFQLFFBQVUsR0FBRyxJQUFFLElBQUUsSUFBRSxJQUFFO0FBQUksWUFBTyxPQUFQLFFBQVUsQUFBTyxPQUFQLFFBQVUsR0FBRyxJQUFFLElBQUUsSUFBRSxJQUFFO0FBQUE7QUFBQTtBQUFBO0FBQU0sU0FBRTtBQUFDLGFBQUUsS0FBRSxHQUFHLE1BQUc7QUFBTyxhQUFFLEdBQUUsWUFBVSxHQUFFLFNBQVM7QUFBYyxZQUFHLEFBQVcsT0FBWCxZQUFjLEFBQVUsT0FBVixXQUFhLEFBQVMsR0FBRSxTQUFYO0FBQWdCLGNBQUksS0FBRTtBQUFBLGlCQUFXLEdBQUc7QUFBRyxjQUFHO0FBQUcsaUJBQUU7QUFBQSxlQUFPO0FBQUMsaUJBQUU7QUFBRyxnQkFBSSxLQUFFO0FBQUE7QUFBQTtBQUFPLFVBQUMsTUFBRSxHQUFFLGFBQVcsQUFBVSxHQUFFLGtCQUFaLFdBQTRCLENBQWEsR0FBRSxTQUFmLGNBQXFCLEFBQVUsR0FBRSxTQUFaLFlBQW9CLE1BQUU7QUFBSSxZQUFHLE1BQUksTUFBRSxHQUFFLEdBQUUsTUFBSTtBQUFDLGFBQUcsSUFBRSxJQUFFLEdBQUU7QUFBRztBQUFBO0FBQVEsY0FBRyxHQUFFLEdBQUUsSUFBRTtBQUFHLFFBQWEsTUFBYixjQUFpQixNQUFFLEdBQUUsa0JBQ3RlLEdBQUUsY0FBWSxBQUFXLEdBQUUsU0FBYixZQUFtQixHQUFHLElBQUUsVUFBUyxHQUFFO0FBQUE7QUFBTyxXQUFFLEtBQUUsR0FBRyxNQUFHO0FBQU8sY0FBTztBQUFBLGFBQVE7QUFBVSxjQUFHLEdBQUcsT0FBSSxBQUFTLEdBQUUsb0JBQVg7QUFBMkIsaUJBQUcsSUFBRSxLQUFHLElBQUUsS0FBRztBQUFLO0FBQUEsYUFBVztBQUFXLGVBQUcsS0FBRyxLQUFHO0FBQUs7QUFBQSxhQUFXO0FBQVksZUFBRztBQUFHO0FBQUEsYUFBVztBQUFBLGFBQW1CO0FBQUEsYUFBZTtBQUFVLGVBQUc7QUFBRyxhQUFHLElBQUUsR0FBRTtBQUFHO0FBQUEsYUFBVztBQUFrQixjQUFHO0FBQUc7QUFBQSxhQUFXO0FBQUEsYUFBZTtBQUFRLGFBQUcsSUFBRSxHQUFFO0FBQUE7QUFBRyxVQUFJO0FBQUUsVUFBRztBQUFHLFdBQUU7QUFBQyxrQkFBTztBQUFBLGlCQUFRO0FBQW1CLGtCQUFJLEtBQUU7QUFBcUI7QUFBQSxpQkFBYTtBQUFpQixtQkFBRTtBQUFtQjtBQUFBLGlCQUMxZTtBQUFvQixtQkFBRTtBQUFzQjtBQUFBO0FBQVEsZUFBRTtBQUFBO0FBQUE7QUFBWSxhQUFHLEdBQUcsR0FBRSxNQUFLLE1BQUUsc0JBQW9CLEFBQVksTUFBWixhQUFlLEFBQU0sRUFBRSxZQUFSLE9BQWtCLE1BQUU7QUFBc0IsWUFBSSxPQUFJLEFBQU8sRUFBRSxXQUFULFFBQWtCLE9BQUksQUFBdUIsT0FBdkIsdUJBQXlCLEFBQXFCLE9BQXJCLHNCQUF3QixNQUFLLE1BQUUsUUFBTyxNQUFHLElBQUUsS0FBRyxXQUFVLEtBQUcsR0FBRyxRQUFNLEdBQUcsYUFBWSxLQUFHLFFBQUssS0FBRSxHQUFHLElBQUUsS0FBRyxJQUFFLEdBQUUsVUFBUyxNQUFFLElBQUksR0FBRyxJQUFFLEdBQUUsTUFBSyxHQUFFLEtBQUcsR0FBRSxLQUFLLEVBQUMsT0FBTSxJQUFFLFdBQVUsT0FBSSxLQUFFLEdBQUUsT0FBSyxLQUFHLE1BQUUsR0FBRyxJQUFHLEFBQU8sT0FBUCxRQUFXLElBQUUsT0FBSztBQUFNLFVBQUcsS0FBRSxLQUFHLEdBQUcsR0FBRSxLQUFHLEdBQUcsR0FBRTtBQUFHLGFBQUUsR0FBRyxJQUFFLGtCQUFpQixJQUFFLEdBQUUsVUFBUyxNQUFFLElBQUksR0FBRyxpQkFDbmYsZUFBYyxNQUFLLEdBQUUsS0FBRyxHQUFFLEtBQUssRUFBQyxPQUFNLElBQUUsV0FBVSxPQUFJLEdBQUUsT0FBSztBQUFBO0FBQUcsT0FBRyxJQUFFO0FBQUE7QUFBQTtBQUFLLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxTQUFNLEVBQUMsVUFBUyxHQUFFLFVBQVMsR0FBRSxlQUFjO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRTtBQUFDLFdBQVEsSUFBRSxJQUFFLFdBQVUsSUFBRSxJQUFHLEFBQU8sTUFBUCxRQUFVO0FBQUMsUUFBSSxJQUFFLEdBQUUsS0FBRSxFQUFFO0FBQVUsSUFBSSxFQUFFLFFBQU4sS0FBVyxBQUFPLE9BQVAsUUFBVyxLQUFFLElBQUUsS0FBRSxHQUFHLEdBQUUsSUFBRyxBQUFNLE1BQU4sUUFBUyxFQUFFLFFBQVEsR0FBRyxHQUFFLElBQUUsS0FBSSxLQUFFLEdBQUcsR0FBRSxJQUFHLEFBQU0sTUFBTixRQUFTLEVBQUUsS0FBSyxHQUFHLEdBQUUsSUFBRTtBQUFLLFFBQUUsRUFBRTtBQUFBO0FBQU8sU0FBTztBQUFBO0FBQUUsWUFBWSxHQUFFO0FBQUMsTUFBRyxBQUFPLE1BQVA7QUFBUyxXQUFPO0FBQUs7QUFBRyxRQUFFLEVBQUU7QUFBQSxTQUFhLEtBQUcsQUFBSSxFQUFFLFFBQU47QUFBVyxTQUFPLElBQUUsSUFBRTtBQUFBO0FBQ3hhLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsV0FBUSxLQUFFLEVBQUUsWUFBVyxLQUFFLElBQUcsQUFBTyxNQUFQLFFBQVUsTUFBSSxLQUFHO0FBQUMsUUFBSSxLQUFFLEdBQUUsSUFBRSxHQUFFLFdBQVUsS0FBRSxHQUFFO0FBQVUsUUFBRyxBQUFPLE1BQVAsUUFBVSxNQUFJO0FBQUU7QUFBTSxJQUFJLEdBQUUsUUFBTixLQUFXLEFBQU8sT0FBUCxRQUFXLE1BQUUsSUFBRSxJQUFHLEtBQUUsR0FBRyxHQUFFLEtBQUcsQUFBTSxLQUFOLFFBQVMsR0FBRSxRQUFRLEdBQUcsR0FBRSxHQUFFLFFBQUssS0FBSSxLQUFFLEdBQUcsR0FBRSxLQUFHLEFBQU0sS0FBTixRQUFTLEdBQUUsS0FBSyxHQUFHLEdBQUUsR0FBRTtBQUFNLFFBQUUsRUFBRTtBQUFBO0FBQU8sRUFBSSxHQUFFLFdBQU4sS0FBYyxFQUFFLEtBQUssRUFBQyxPQUFNLEdBQUUsV0FBVTtBQUFBO0FBQUksY0FBYTtBQUFBO0FBQUUsSUFBSSxLQUFHLE1BQUssS0FBRztBQUFLLFlBQVksR0FBRSxHQUFFO0FBQUMsVUFBTztBQUFBLFNBQVE7QUFBQSxTQUFjO0FBQUEsU0FBYTtBQUFBLFNBQWM7QUFBVyxhQUFNLENBQUMsQ0FBQyxFQUFFO0FBQUE7QUFBVSxTQUFNO0FBQUE7QUFDM2IsWUFBWSxHQUFFLEdBQUU7QUFBQyxTQUFNLEFBQWEsTUFBYixjQUFnQixBQUFXLE1BQVgsWUFBYyxBQUFhLE1BQWIsY0FBZ0IsQUFBVyxPQUFPLEVBQUUsYUFBcEIsWUFBOEIsQUFBVyxPQUFPLEVBQUUsYUFBcEIsWUFBOEIsQUFBVyxPQUFPLEVBQUUsNEJBQXBCLFlBQTZDLEFBQU8sRUFBRSw0QkFBVCxRQUFrQyxBQUFNLEVBQUUsd0JBQXdCLFVBQWhDO0FBQUE7QUFBdUMsSUFBSSxLQUFHLEFBQWEsT0FBTyxlQUFwQixhQUErQixhQUFXLFFBQU8sS0FBRyxBQUFhLE9BQU8saUJBQXBCLGFBQWlDLGVBQWE7QUFBTyxZQUFZLEdBQUU7QUFBQyxFQUFJLEVBQUUsYUFBTixJQUFlLEVBQUUsY0FBWSxLQUFHLEFBQUksRUFBRSxhQUFOLEtBQWlCLEtBQUUsRUFBRSxNQUFLLEFBQU0sS0FBTixRQUFVLEdBQUUsY0FBWTtBQUFBO0FBQ3hjLFlBQVksR0FBRTtBQUFDLFNBQUssQUFBTSxLQUFOLE1BQVEsSUFBRSxFQUFFLGFBQVk7QUFBQyxRQUFJLElBQUUsRUFBRTtBQUFTLFFBQUcsQUFBSSxNQUFKLEtBQU8sQUFBSSxNQUFKO0FBQU07QUFBQTtBQUFNLFNBQU87QUFBQTtBQUFFLFlBQVksR0FBRTtBQUFDLE1BQUUsRUFBRTtBQUFnQixXQUFRLElBQUUsR0FBRSxLQUFHO0FBQUMsUUFBRyxBQUFJLEVBQUUsYUFBTixHQUFlO0FBQUMsVUFBSSxJQUFFLEVBQUU7QUFBSyxVQUFHLEFBQU0sTUFBTixPQUFTLEFBQU8sTUFBUCxRQUFVLEFBQU8sTUFBUCxNQUFTO0FBQUMsWUFBRyxBQUFJLE1BQUo7QUFBTSxpQkFBTztBQUFFO0FBQUE7QUFBUSxRQUFPLE1BQVAsUUFBVTtBQUFBO0FBQUksUUFBRSxFQUFFO0FBQUE7QUFBZ0IsU0FBTztBQUFBO0FBQUssSUFBSSxLQUFHO0FBQUUsWUFBWSxHQUFFO0FBQUMsU0FBTSxFQUFDLFVBQVMsSUFBRyxVQUFTLEdBQUUsU0FBUTtBQUFBO0FBQUcsSUFBSSxLQUFHLEtBQUssU0FBUyxTQUFTLElBQUksTUFBTSxJQUFHLEtBQUcsa0JBQWdCLElBQUcsS0FBRyxrQkFBZ0IsSUFBRyxLQUFHLHNCQUFvQixJQUFHLEtBQUcsbUJBQWlCO0FBQzlkLFlBQVksR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFO0FBQUksTUFBRztBQUFFLFdBQU87QUFBRSxXQUFRLElBQUUsRUFBRSxZQUFXLEtBQUc7QUFBQyxRQUFHLElBQUUsRUFBRSxPQUFLLEVBQUUsS0FBSTtBQUFDLFVBQUUsRUFBRTtBQUFVLFVBQUcsQUFBTyxFQUFFLFVBQVQsUUFBZ0IsQUFBTyxNQUFQLFFBQVUsQUFBTyxFQUFFLFVBQVQ7QUFBZSxhQUFJLElBQUUsR0FBRyxJQUFHLEFBQU8sTUFBUCxRQUFVO0FBQUMsY0FBRyxJQUFFLEVBQUU7QUFBSSxtQkFBTztBQUFFLGNBQUUsR0FBRztBQUFBO0FBQUcsYUFBTztBQUFBO0FBQUUsUUFBRTtBQUFFLFFBQUUsRUFBRTtBQUFBO0FBQVcsU0FBTztBQUFBO0FBQUssWUFBWSxHQUFFO0FBQUMsTUFBRSxFQUFFLE9BQUssRUFBRTtBQUFJLFNBQU0sQ0FBQyxLQUFHLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBSSxFQUFFLFFBQU4sS0FBVyxBQUFLLEVBQUUsUUFBUCxNQUFZLEFBQUksRUFBRSxRQUFOLElBQVUsT0FBSztBQUFBO0FBQUUsWUFBWSxHQUFFO0FBQUMsTUFBRyxBQUFJLEVBQUUsUUFBTixLQUFXLEFBQUksRUFBRSxRQUFOO0FBQVUsV0FBTyxFQUFFO0FBQVUsUUFBTSxNQUFNLEVBQUU7QUFBQTtBQUFNLFlBQVksR0FBRTtBQUFDLFNBQU8sRUFBRSxPQUFLO0FBQUE7QUFDbGIsWUFBWSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUU7QUFBSSxFQUFTLE1BQVQsVUFBYSxLQUFFLEVBQUUsTUFBSSxJQUFJO0FBQUssU0FBTztBQUFBO0FBQUUsSUFBSSxLQUFHLElBQUcsS0FBRztBQUFHLFlBQVksR0FBRTtBQUFDLFNBQU0sRUFBQyxTQUFRO0FBQUE7QUFBRyxXQUFXLEdBQUU7QUFBQyxNQUFFLE1BQUssR0FBRSxVQUFRLEdBQUcsS0FBSSxHQUFHLE1BQUksTUFBSztBQUFBO0FBQU0sV0FBVyxHQUFFLEdBQUU7QUFBQztBQUFLLEtBQUcsTUFBSSxFQUFFO0FBQVEsSUFBRSxVQUFRO0FBQUE7QUFBRSxJQUFJLEtBQUcsSUFBRyxJQUFFLEdBQUcsS0FBSSxJQUFFLEdBQUcsUUFBSSxLQUFHO0FBQzVQLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsS0FBSztBQUFhLE1BQUcsQ0FBQztBQUFFLFdBQU87QUFBRyxNQUFJLElBQUUsRUFBRTtBQUFVLE1BQUcsS0FBRyxFQUFFLGdEQUE4QztBQUFFLFdBQU8sRUFBRTtBQUEwQyxNQUFJLElBQUUsSUFBRztBQUFFLE9BQUksTUFBSztBQUFFLE1BQUUsTUFBRyxFQUFFO0FBQUcsT0FBSSxLQUFFLEVBQUUsV0FBVSxFQUFFLDhDQUE0QyxHQUFFLEVBQUUsNENBQTBDO0FBQUcsU0FBTztBQUFBO0FBQUUsWUFBWSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQWtCLFNBQU8sQUFBTyxNQUFQLFFBQVUsQUFBUyxNQUFUO0FBQUE7QUFBVyxjQUFhO0FBQUMsSUFBRTtBQUFHLElBQUU7QUFBQTtBQUFHLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFHLEVBQUUsWUFBVTtBQUFHLFVBQU0sTUFBTSxFQUFFO0FBQU0sSUFBRSxHQUFFO0FBQUcsSUFBRSxHQUFFO0FBQUE7QUFDL2UsWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFO0FBQVUsTUFBRSxFQUFFO0FBQWtCLE1BQUcsQUFBYSxPQUFPLEVBQUUsb0JBQXRCO0FBQXNDLFdBQU87QUFBRSxNQUFFLEVBQUU7QUFBa0IsV0FBUSxLQUFLO0FBQUUsUUFBRyxDQUFFLE1BQUs7QUFBRyxZQUFNLE1BQU0sRUFBRSxLQUFJLEdBQUcsTUFBSSxXQUFVO0FBQUksU0FBT0gsSUFBRSxJQUFHLEdBQUU7QUFBQTtBQUFHLFlBQVksR0FBRTtBQUFDLE1BQUcsS0FBRSxFQUFFLGNBQVksRUFBRSw2Q0FBMkM7QUFBRyxPQUFHLEVBQUU7QUFBUSxJQUFFLEdBQUU7QUFBRyxJQUFFLEdBQUUsRUFBRTtBQUFTLFNBQU07QUFBQTtBQUFHLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFVLE1BQUcsQ0FBQztBQUFFLFVBQU0sTUFBTSxFQUFFO0FBQU0sTUFBRyxLQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUksRUFBRSw0Q0FBMEMsR0FBRSxFQUFFLElBQUcsRUFBRSxJQUFHLEVBQUUsR0FBRSxNQUFJLEVBQUU7QUFBRyxJQUFFLEdBQUU7QUFBQTtBQUM3ZSxJQUFJLEtBQUcsTUFBSyxLQUFHLE1BQUssS0FBRyxFQUFFLDBCQUF5QixLQUFHLEVBQUUsMkJBQTBCLEtBQUcsRUFBRSx5QkFBd0IsS0FBRyxFQUFFLHNCQUFxQixLQUFHLEVBQUUsdUJBQXNCLEtBQUcsRUFBRSxjQUFhLEtBQUcsRUFBRSxrQ0FBaUMsS0FBRyxFQUFFLDRCQUEyQixLQUFHLEVBQUUsK0JBQThCLEtBQUcsRUFBRSx5QkFBd0IsS0FBRyxFQUFFLHNCQUFxQixLQUFHLEVBQUUsdUJBQXNCLEtBQUcsSUFBRyxLQUFHLEFBQVMsT0FBVCxTQUFZLEtBQUcsV0FBVTtBQUFBLEdBQUcsS0FBRyxNQUFLLEtBQUcsTUFBSyxLQUFHLE9BQUcsS0FBRyxNQUFLLElBQUUsTUFBSSxLQUFHLEtBQUcsV0FBVTtBQUFDLFNBQU8sT0FBSztBQUFBO0FBQ3RkLGNBQWE7QUFBQyxVQUFPO0FBQUEsU0FBVztBQUFHLGFBQU87QUFBQSxTQUFRO0FBQUcsYUFBTztBQUFBLFNBQVE7QUFBRyxhQUFPO0FBQUEsU0FBUTtBQUFHLGFBQU87QUFBQSxTQUFRO0FBQUcsYUFBTztBQUFBO0FBQVcsWUFBTSxNQUFNLEVBQUU7QUFBQTtBQUFBO0FBQVEsWUFBWSxHQUFFO0FBQUMsVUFBTztBQUFBLFNBQVE7QUFBRyxhQUFPO0FBQUEsU0FBUTtBQUFHLGFBQU87QUFBQSxTQUFRO0FBQUcsYUFBTztBQUFBLFNBQVE7QUFBRyxhQUFPO0FBQUEsU0FBUTtBQUFHLGFBQU87QUFBQTtBQUFXLFlBQU0sTUFBTSxFQUFFO0FBQUE7QUFBQTtBQUFRLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBRSxHQUFHO0FBQUcsU0FBTyxHQUFHLEdBQUU7QUFBQTtBQUFHLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFFLEdBQUc7QUFBRyxTQUFPLEdBQUcsR0FBRSxHQUFFO0FBQUE7QUFBRyxjQUFhO0FBQUMsTUFBRyxBQUFPLE9BQVAsTUFBVTtBQUFDLFFBQUksSUFBRTtBQUFHLFNBQUc7QUFBSyxPQUFHO0FBQUE7QUFBRztBQUFBO0FBQzNhLGNBQWE7QUFBQyxNQUFHLENBQUMsTUFBSSxBQUFPLE9BQVAsTUFBVTtBQUFDLFNBQUc7QUFBRyxRQUFJLElBQUU7QUFBRSxRQUFHO0FBQUMsVUFBSSxJQUFFO0FBQUcsU0FBRyxJQUFHLFdBQVU7QUFBQyxlQUFLLElBQUUsRUFBRSxRQUFPLEtBQUk7QUFBQyxjQUFJLElBQUUsRUFBRTtBQUFHO0FBQUcsZ0JBQUUsRUFBRTtBQUFBLGlCQUFVLEFBQU8sTUFBUDtBQUFBO0FBQUE7QUFBYSxXQUFHO0FBQUEsYUFBVyxHQUFOO0FBQVMsWUFBTSxBQUFPLE9BQVAsUUFBWSxNQUFHLEdBQUcsTUFBTSxJQUFFLEtBQUksR0FBRyxJQUFHLEtBQUk7QUFBQSxjQUFHO0FBQVEsV0FBRztBQUFBO0FBQUE7QUFBQTtBQUFLLElBQUksS0FBRyxHQUFHO0FBQXdCLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBRyxLQUFHLEVBQUUsY0FBYTtBQUFDLFFBQUVBLElBQUUsSUFBRztBQUFHLFFBQUUsRUFBRTtBQUFhLGFBQVEsS0FBSztBQUFFLE1BQVMsRUFBRSxPQUFYLFVBQWdCLEdBQUUsS0FBRyxFQUFFO0FBQUksV0FBTztBQUFBO0FBQUUsU0FBTztBQUFBO0FBQUUsSUFBSSxLQUFHLEdBQUcsT0FBTSxLQUFHLE1BQUssS0FBRyxNQUFLLEtBQUc7QUFBSyxjQUFhO0FBQUMsT0FBRyxLQUFHLEtBQUc7QUFBQTtBQUM1YixZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsR0FBRztBQUFRLElBQUU7QUFBSSxJQUFFLEtBQUssU0FBUyxnQkFBYztBQUFBO0FBQUUsWUFBWSxHQUFFLEdBQUU7QUFBQyxTQUFLLEFBQU8sTUFBUCxRQUFVO0FBQUMsUUFBSSxJQUFFLEVBQUU7QUFBVSxRQUFJLEdBQUUsYUFBVyxPQUFLO0FBQUUsVUFBRyxBQUFPLE1BQVAsUUFBVyxHQUFFLGFBQVcsT0FBSztBQUFFO0FBQUE7QUFBVyxVQUFFLGNBQVk7QUFBQTtBQUFPLFFBQUUsY0FBWSxHQUFFLEFBQU8sTUFBUCxRQUFXLEdBQUUsY0FBWTtBQUFHLFFBQUUsRUFBRTtBQUFBO0FBQUE7QUFBUSxZQUFZLEdBQUUsR0FBRTtBQUFDLE9BQUc7QUFBRSxPQUFHLEtBQUc7QUFBSyxNQUFFLEVBQUU7QUFBYSxFQUFPLE1BQVAsUUFBVSxBQUFPLEVBQUUsaUJBQVQsUUFBd0IsQ0FBSyxHQUFFLFFBQU0sT0FBYixLQUFrQixNQUFHLE9BQUksRUFBRSxlQUFhO0FBQUE7QUFDdlksWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFHLE9BQUssS0FBRyxBQUFLLE1BQUwsU0FBUSxBQUFJLE1BQUosR0FBTTtBQUFDLFFBQUcsQUFBVyxPQUFPLE1BQWxCLFlBQXFCLEFBQWEsTUFBYjtBQUFlLFdBQUcsR0FBRSxJQUFFO0FBQVcsUUFBRSxFQUFDLFNBQVEsR0FBRSxjQUFhLEdBQUUsTUFBSztBQUFNLFFBQUcsQUFBTyxPQUFQLE1BQVU7QUFBQyxVQUFHLEFBQU8sT0FBUDtBQUFVLGNBQU0sTUFBTSxFQUFFO0FBQU0sV0FBRztBQUFFLFNBQUcsZUFBYSxFQUFDLE9BQU0sR0FBRSxjQUFhLEdBQUUsWUFBVztBQUFBO0FBQVcsV0FBRyxHQUFHLE9BQUs7QUFBQTtBQUFFLFNBQU8sRUFBRTtBQUFBO0FBQWMsSUFBSSxLQUFHO0FBQUcsWUFBWSxHQUFFO0FBQUMsSUFBRSxjQUFZLEVBQUMsV0FBVSxFQUFFLGVBQWMsaUJBQWdCLE1BQUssZ0JBQWUsTUFBSyxRQUFPLEVBQUMsU0FBUSxRQUFNLFNBQVE7QUFBQTtBQUMxYSxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUUsRUFBRTtBQUFZLElBQUUsZ0JBQWMsS0FBSSxHQUFFLGNBQVksRUFBQyxXQUFVLEVBQUUsV0FBVSxpQkFBZ0IsRUFBRSxpQkFBZ0IsZ0JBQWUsRUFBRSxnQkFBZSxRQUFPLEVBQUUsUUFBTyxTQUFRLEVBQUU7QUFBQTtBQUFVLFlBQVksR0FBRSxHQUFFO0FBQUMsU0FBTSxFQUFDLFdBQVUsR0FBRSxNQUFLLEdBQUUsS0FBSSxHQUFFLFNBQVEsTUFBSyxVQUFTLE1BQUssTUFBSztBQUFBO0FBQU0sWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFFLEVBQUU7QUFBWSxNQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsUUFBRSxFQUFFO0FBQU8sUUFBSSxJQUFFLEVBQUU7QUFBUSxJQUFPLE1BQVAsT0FBUyxFQUFFLE9BQUssSUFBRyxHQUFFLE9BQUssRUFBRSxNQUFLLEVBQUUsT0FBSztBQUFHLE1BQUUsVUFBUTtBQUFBO0FBQUE7QUFDclosWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRSxhQUFZLElBQUUsRUFBRTtBQUFVLE1BQUcsQUFBTyxNQUFQLFFBQVcsS0FBRSxFQUFFLGFBQVksTUFBSSxJQUFHO0FBQUMsUUFBSSxJQUFFLE1BQUssS0FBRTtBQUFLLFFBQUUsRUFBRTtBQUFnQixRQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsU0FBRTtBQUFDLFlBQUksS0FBRSxFQUFDLFdBQVUsRUFBRSxXQUFVLE1BQUssRUFBRSxNQUFLLEtBQUksRUFBRSxLQUFJLFNBQVEsRUFBRSxTQUFRLFVBQVMsRUFBRSxVQUFTLE1BQUs7QUFBTSxRQUFPLE9BQVAsT0FBUyxJQUFFLEtBQUUsS0FBRSxLQUFFLEdBQUUsT0FBSztBQUFFLFlBQUUsRUFBRTtBQUFBLGVBQVcsQUFBTyxNQUFQO0FBQVUsTUFBTyxPQUFQLE9BQVMsSUFBRSxLQUFFLElBQUUsS0FBRSxHQUFFLE9BQUs7QUFBQTtBQUFPLFVBQUUsS0FBRTtBQUFFLFFBQUUsRUFBQyxXQUFVLEVBQUUsV0FBVSxpQkFBZ0IsR0FBRSxnQkFBZSxJQUFFLFFBQU8sRUFBRSxRQUFPLFNBQVEsRUFBRTtBQUFTLE1BQUUsY0FBWTtBQUFFO0FBQUE7QUFBTyxNQUFFLEVBQUU7QUFBZSxFQUFPLE1BQVAsT0FBUyxFQUFFLGtCQUFnQixJQUFFLEVBQUUsT0FDbmY7QUFBRSxJQUFFLGlCQUFlO0FBQUE7QUFDbkIsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUU7QUFBWSxPQUFHO0FBQUcsTUFBSSxLQUFFLEVBQUUsaUJBQWdCLEtBQUUsRUFBRSxnQkFBZSxLQUFFLEVBQUUsT0FBTztBQUFRLE1BQUcsQUFBTyxPQUFQLE1BQVM7QUFBQyxNQUFFLE9BQU8sVUFBUTtBQUFLLFFBQUksSUFBRSxJQUFFLEtBQUUsRUFBRTtBQUFLLE1BQUUsT0FBSztBQUFLLElBQU8sT0FBUCxPQUFTLEtBQUUsS0FBRSxHQUFFLE9BQUs7QUFBRSxTQUFFO0FBQUUsUUFBSSxLQUFFLEVBQUU7QUFBVSxRQUFHLEFBQU8sT0FBUCxNQUFTO0FBQUMsV0FBRSxHQUFFO0FBQVksVUFBSSxLQUFFLEdBQUU7QUFBZSxhQUFJLE1BQUksQ0FBTyxPQUFQLE9BQVMsR0FBRSxrQkFBZ0IsS0FBRSxHQUFFLE9BQUssSUFBRSxHQUFFLGlCQUFlO0FBQUE7QUFBQTtBQUFJLE1BQUcsQUFBTyxPQUFQLE1BQVM7QUFBQyxTQUFFLEVBQUU7QUFBVSxTQUFFO0FBQUUsU0FBRSxLQUFFLElBQUU7QUFBSyxPQUFFO0FBQUMsV0FBRSxHQUFFO0FBQUssVUFBSSxLQUFFLEdBQUU7QUFBVSxVQUFJLEtBQUUsUUFBSyxJQUFFO0FBQUMsUUFBTyxPQUFQLFFBQVcsTUFBRSxHQUFFLE9BQUs7QUFBQSxVQUFDLFdBQVU7QUFBQSxVQUFFLE1BQUs7QUFBQSxVQUFFLEtBQUksR0FBRTtBQUFBLFVBQUksU0FBUSxHQUFFO0FBQUEsVUFBUSxVQUFTLEdBQUU7QUFBQSxVQUNyZixNQUFLO0FBQUE7QUFBTyxXQUFFO0FBQUMsY0FBSSxLQUFFLEdBQUUsS0FBRTtBQUFFLGVBQUU7QUFBRSxlQUFFO0FBQUUsa0JBQU8sR0FBRTtBQUFBLGlCQUFVO0FBQUUsbUJBQUUsR0FBRTtBQUFRLGtCQUFHLEFBQWEsT0FBTyxPQUFwQixZQUFzQjtBQUFDLHFCQUFFLEdBQUUsS0FBSyxJQUFFLElBQUU7QUFBRztBQUFBO0FBQVEsbUJBQUU7QUFBRTtBQUFBLGlCQUFhO0FBQUUsaUJBQUUsUUFBTSxHQUFFLFFBQU0sUUFBTTtBQUFBLGlCQUFRO0FBQUUsbUJBQUUsR0FBRTtBQUFRLG1CQUFFLEFBQWEsT0FBTyxPQUFwQixhQUFzQixHQUFFLEtBQUssSUFBRSxJQUFFLE1BQUc7QUFBRSxrQkFBRyxBQUFPLE9BQVAsUUFBVSxBQUFTLE9BQVQ7QUFBVztBQUFRLG1CQUFFQSxJQUFFLElBQUcsSUFBRTtBQUFHO0FBQUEsaUJBQWE7QUFBRSxtQkFBRztBQUFBO0FBQUE7QUFBSSxRQUFPLEdBQUUsYUFBVCxRQUFvQixHQUFFLFNBQU8sSUFBRyxLQUFFLEVBQUUsU0FBUSxBQUFPLE9BQVAsT0FBUyxFQUFFLFVBQVEsQ0FBQyxNQUFHLEdBQUUsS0FBSztBQUFBO0FBQVMsYUFBRSxFQUFDLFdBQVUsSUFBRSxNQUFLLElBQUUsS0FBSSxHQUFFLEtBQUksU0FBUSxHQUFFLFNBQVEsVUFBUyxHQUFFLFVBQVMsTUFBSyxRQUFNLEFBQU8sT0FBUCxPQUFVLE1BQUUsS0FBRSxJQUFFLElBQUUsTUFBRyxLQUFFLEdBQUUsT0FBSyxJQUFFLE1BQUc7QUFBRSxXQUFFLEdBQUU7QUFBSyxVQUFHLEFBQ3BmLE9BRG9mO0FBQ2xmLFlBQUcsS0FBRSxFQUFFLE9BQU8sU0FBUSxBQUFPLE9BQVA7QUFBUztBQUFBO0FBQVcsZUFBRSxHQUFFLE1BQUssR0FBRSxPQUFLLE1BQUssRUFBRSxpQkFBZSxJQUFFLEVBQUUsT0FBTyxVQUFRO0FBQUEsYUFBVztBQUFHLElBQU8sT0FBUCxRQUFXLEtBQUU7QUFBRyxNQUFFLFlBQVU7QUFBRSxNQUFFLGtCQUFnQjtBQUFFLE1BQUUsaUJBQWU7QUFBRSxVQUFJO0FBQUUsTUFBRSxRQUFNO0FBQUUsTUFBRSxnQkFBYztBQUFBO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQVEsSUFBRSxVQUFRO0FBQUssTUFBRyxBQUFPLE1BQVA7QUFBUyxTQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxLQUFJO0FBQUMsVUFBSSxJQUFFLEVBQUUsSUFBRyxJQUFFLEVBQUU7QUFBUyxVQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsVUFBRSxXQUFTO0FBQUssWUFBRTtBQUFFLFlBQUcsQUFBYSxPQUFPLE1BQXBCO0FBQXNCLGdCQUFNLE1BQU0sRUFBRSxLQUFJO0FBQUksVUFBRSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUssSUFBSSxLQUFJLElBQUksR0FBRyxZQUFXO0FBQzNiLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUUsRUFBRTtBQUFjLE1BQUUsRUFBRSxHQUFFO0FBQUcsTUFBRSxBQUFPLE1BQVAsUUFBVSxBQUFTLE1BQVQsU0FBVyxJQUFFQSxJQUFFLElBQUcsR0FBRTtBQUFHLElBQUUsZ0JBQWM7QUFBRSxFQUFJLEVBQUUsVUFBTixLQUFjLEdBQUUsWUFBWSxZQUFVO0FBQUE7QUFDM0ksSUFBSSxLQUFHLEVBQUMsV0FBVSxTQUFTLEdBQUU7QUFBQyxTQUFPLEtBQUUsRUFBRSxtQkFBaUIsR0FBRyxPQUFLLElBQUU7QUFBQSxHQUFJLGlCQUFnQixTQUFTLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQWdCLE1BQUksSUFBRSxNQUFLLElBQUUsR0FBRyxJQUFHLEtBQUUsR0FBRyxHQUFFO0FBQUcsS0FBRSxVQUFRO0FBQUUsRUFBUyxNQUFULFVBQVksQUFBTyxNQUFQLFFBQVcsSUFBRSxXQUFTO0FBQUcsS0FBRyxHQUFFO0FBQUcsS0FBRyxHQUFFLEdBQUU7QUFBQSxHQUFJLHFCQUFvQixTQUFTLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQWdCLE1BQUksSUFBRSxNQUFLLElBQUUsR0FBRyxJQUFHLEtBQUUsR0FBRyxHQUFFO0FBQUcsS0FBRSxNQUFJO0FBQUUsS0FBRSxVQUFRO0FBQUUsRUFBUyxNQUFULFVBQVksQUFBTyxNQUFQLFFBQVcsSUFBRSxXQUFTO0FBQUcsS0FBRyxHQUFFO0FBQUcsS0FBRyxHQUFFLEdBQUU7QUFBQSxHQUFJLG9CQUFtQixTQUFTLEdBQUUsR0FBRTtBQUFDLE1BQUUsRUFBRTtBQUFnQixNQUFJLElBQUUsTUFBSyxJQUFFLEdBQUcsSUFBRyxJQUFFLEdBQUcsR0FBRTtBQUFHLElBQUUsTUFBSTtBQUFFLEVBQVMsTUFBVCxVQUFZLEFBQU8sTUFBUCxRQUFXLEdBQUUsV0FDamY7QUFBRyxLQUFHLEdBQUU7QUFBRyxLQUFHLEdBQUUsR0FBRTtBQUFBO0FBQUssWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRSxJQUFFO0FBQUMsTUFBRSxFQUFFO0FBQVUsU0FBTSxBQUFhLE9BQU8sRUFBRSwwQkFBdEIsYUFBNEMsRUFBRSxzQkFBc0IsR0FBRSxJQUFFLE1BQUcsRUFBRSxhQUFXLEVBQUUsVUFBVSx1QkFBcUIsQ0FBQyxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUcsR0FBRSxNQUFHO0FBQUE7QUFDbE4sWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxPQUFHLElBQUU7QUFBRyxNQUFJLEtBQUUsRUFBRTtBQUFZLEVBQVcsT0FBTyxPQUFsQixZQUFxQixBQUFPLE9BQVAsT0FBUyxLQUFFLEdBQUcsTUFBSSxLQUFFLEdBQUcsS0FBRyxLQUFHLEVBQUUsU0FBUSxJQUFFLEVBQUUsY0FBYSxLQUFHLEtBQUUsQUFBTyxNQUFQLFFBQVUsQUFBUyxNQUFULFVBQVksR0FBRyxHQUFFLEtBQUc7QUFBSSxNQUFFLElBQUksRUFBRSxHQUFFO0FBQUcsSUFBRSxnQkFBYyxBQUFPLEVBQUUsVUFBVCxRQUFnQixBQUFTLEVBQUUsVUFBWCxTQUFpQixFQUFFLFFBQU07QUFBSyxJQUFFLFVBQVE7QUFBRyxJQUFFLFlBQVU7QUFBRSxJQUFFLGtCQUFnQjtBQUFFLE9BQUksS0FBRSxFQUFFLFdBQVUsRUFBRSw4Q0FBNEMsR0FBRSxFQUFFLDRDQUEwQztBQUFHLFNBQU87QUFBQTtBQUMzWixZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFFLEVBQUU7QUFBTSxFQUFhLE9BQU8sRUFBRSw4QkFBdEIsY0FBaUQsRUFBRSwwQkFBMEIsR0FBRTtBQUFHLEVBQWEsT0FBTyxFQUFFLHFDQUF0QixjQUF3RCxFQUFFLGlDQUFpQyxHQUFFO0FBQUcsSUFBRSxVQUFRLEtBQUcsR0FBRyxvQkFBb0IsR0FBRSxFQUFFLE9BQU07QUFBQTtBQUMvUCxZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFVLElBQUUsUUFBTTtBQUFFLElBQUUsUUFBTSxFQUFFO0FBQWMsSUFBRSxPQUFLO0FBQUcsS0FBRztBQUFHLE1BQUksS0FBRSxFQUFFO0FBQVksRUFBVyxPQUFPLE9BQWxCLFlBQXFCLEFBQU8sT0FBUCxPQUFTLEVBQUUsVUFBUSxHQUFHLE1BQUksTUFBRSxHQUFHLEtBQUcsS0FBRyxFQUFFLFNBQVEsRUFBRSxVQUFRLEdBQUcsR0FBRTtBQUFJLEtBQUcsR0FBRSxHQUFFLEdBQUU7QUFBRyxJQUFFLFFBQU0sRUFBRTtBQUFjLE9BQUUsRUFBRTtBQUF5QixFQUFhLE9BQU8sT0FBcEIsY0FBd0IsSUFBRyxHQUFFLEdBQUUsSUFBRSxJQUFHLEVBQUUsUUFBTSxFQUFFO0FBQWUsRUFBYSxPQUFPLEVBQUUsNkJBQXRCLGNBQWdELEFBQWEsT0FBTyxFQUFFLDRCQUF0QixjQUErQyxBQUFhLE9BQU8sRUFBRSw4QkFBdEIsY0FBaUQsQUFBYSxPQUFPLEVBQUUsdUJBQXRCLGNBQ2pkLEtBQUUsRUFBRSxPQUFNLEFBQWEsT0FBTyxFQUFFLHVCQUF0QixjQUEwQyxFQUFFLHNCQUFxQixBQUFhLE9BQU8sRUFBRSw4QkFBdEIsY0FBaUQsRUFBRSw2QkFBNEIsTUFBSSxFQUFFLFNBQU8sR0FBRyxvQkFBb0IsR0FBRSxFQUFFLE9BQU0sT0FBTSxHQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsRUFBRSxRQUFNLEVBQUU7QUFBZSxFQUFhLE9BQU8sRUFBRSxzQkFBdEIsY0FBMEMsR0FBRSxTQUFPO0FBQUE7QUFBRyxJQUFJLEtBQUcsTUFBTTtBQUN2VCxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQUksTUFBRyxBQUFPLE1BQVAsUUFBVSxBQUFhLE9BQU8sTUFBcEIsY0FBdUIsQUFBVyxPQUFPLE1BQWxCLFVBQW9CO0FBQUMsUUFBRyxFQUFFLFFBQU87QUFBQyxVQUFFLEVBQUU7QUFBTyxVQUFHLEdBQUU7QUFBQyxZQUFHLEFBQUksRUFBRSxRQUFOO0FBQVUsZ0JBQU0sTUFBTSxFQUFFO0FBQU0sWUFBSSxJQUFFLEVBQUU7QUFBQTtBQUFVLFVBQUcsQ0FBQztBQUFFLGNBQU0sTUFBTSxFQUFFLEtBQUk7QUFBSSxVQUFJLElBQUUsS0FBRztBQUFFLFVBQUcsQUFBTyxNQUFQLFFBQVUsQUFBTyxFQUFFLFFBQVQsUUFBYyxBQUFhLE9BQU8sRUFBRSxRQUF0QixjQUEyQixFQUFFLElBQUksZUFBYTtBQUFFLGVBQU8sRUFBRTtBQUFJLFVBQUUsU0FBUyxJQUFFO0FBQUMsWUFBSSxLQUFFLEVBQUU7QUFBSyxlQUFJLE1BQUssTUFBRSxFQUFFLE9BQUs7QUFBSSxRQUFPLE9BQVAsT0FBUyxPQUFPLEdBQUUsS0FBRyxHQUFFLEtBQUc7QUFBQTtBQUFHLFFBQUUsYUFBVztBQUFFLGFBQU87QUFBQTtBQUFFLFFBQUcsQUFBVyxPQUFPLE1BQWxCO0FBQW9CLFlBQU0sTUFBTSxFQUFFO0FBQU0sUUFBRyxDQUFDLEVBQUU7QUFBTyxZQUFNLE1BQU0sRUFBRSxLQUFJO0FBQUE7QUFBSyxTQUFPO0FBQUE7QUFDaGUsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFHLEFBQWEsRUFBRSxTQUFmO0FBQW9CLFVBQU0sTUFBTSxFQUFFLElBQUcsQUFBb0IsT0FBTyxVQUFVLFNBQVMsS0FBSyxPQUFuRCxvQkFBc0QsdUJBQXFCLE9BQU8sS0FBSyxHQUFHLEtBQUssUUFBTSxNQUFJO0FBQUE7QUFDbEssWUFBWSxHQUFFO0FBQUMsYUFBVyxJQUFFLElBQUU7QUFBQyxRQUFHLEdBQUU7QUFBQyxVQUFJLEtBQUUsR0FBRTtBQUFXLE1BQU8sT0FBUCxPQUFVLElBQUUsYUFBVyxJQUFFLEdBQUUsYUFBVyxNQUFHLEdBQUUsY0FBWSxHQUFFLGFBQVc7QUFBRSxTQUFFLGFBQVc7QUFBSyxTQUFFLFFBQU07QUFBQTtBQUFBO0FBQUcsYUFBVyxJQUFFLElBQUU7QUFBQyxRQUFHLENBQUM7QUFBRSxhQUFPO0FBQUssV0FBSyxBQUFPLE9BQVA7QUFBVSxRQUFFLElBQUUsS0FBRyxLQUFFLEdBQUU7QUFBUSxXQUFPO0FBQUE7QUFBSyxhQUFXLElBQUUsSUFBRTtBQUFDLFNBQUksS0FBRSxJQUFJLE9BQUksQUFBTyxPQUFQO0FBQVUsTUFBTyxHQUFFLFFBQVQsT0FBYSxHQUFFLElBQUksR0FBRSxLQUFJLE1BQUcsR0FBRSxJQUFJLEdBQUUsT0FBTSxLQUFHLEtBQUUsR0FBRTtBQUFRLFdBQU87QUFBQTtBQUFFLGFBQVcsSUFBRSxJQUFFO0FBQUMsU0FBRSxHQUFHLElBQUU7QUFBRyxPQUFFLFFBQU07QUFBRSxPQUFFLFVBQVE7QUFBSyxXQUFPO0FBQUE7QUFBRSxjQUFXLElBQUUsSUFBRSxJQUFFO0FBQUMsT0FBRSxRQUFNO0FBQUUsUUFBRyxDQUFDO0FBQUUsYUFBTztBQUFFLFNBQUUsR0FBRTtBQUFVLFFBQUcsQUFBTyxPQUFQO0FBQVMsYUFBTyxLQUFFLEdBQUUsT0FBTSxLQUFFLEtBQUcsSUFBRSxRQUFNLEdBQ3BmLE1BQUc7QUFBRSxPQUFFLFFBQU07QUFBRSxXQUFPO0FBQUE7QUFBRSxjQUFXLElBQUU7QUFBQyxTQUFHLEFBQU8sR0FBRSxjQUFULFFBQXFCLElBQUUsUUFBTTtBQUFHLFdBQU87QUFBQTtBQUFFLGNBQVcsSUFBRSxJQUFFLElBQUUsSUFBRTtBQUFDLFFBQUcsQUFBTyxPQUFQLFFBQVUsQUFBSSxHQUFFLFFBQU47QUFBVSxhQUFPLEtBQUUsR0FBRyxJQUFFLEdBQUUsTUFBSyxLQUFHLEdBQUUsU0FBTyxJQUFFO0FBQUUsU0FBRSxFQUFFLElBQUU7QUFBRyxPQUFFLFNBQU87QUFBRSxXQUFPO0FBQUE7QUFBRSxhQUFXLElBQUUsSUFBRSxJQUFFLElBQUU7QUFBQyxRQUFHLEFBQU8sT0FBUCxRQUFVLEdBQUUsZ0JBQWMsR0FBRTtBQUFLLGFBQU8sS0FBRSxFQUFFLElBQUUsR0FBRSxRQUFPLEdBQUUsTUFBSSxHQUFHLElBQUUsSUFBRSxLQUFHLEdBQUUsU0FBTyxJQUFFO0FBQUUsU0FBRSxHQUFHLEdBQUUsTUFBSyxHQUFFLEtBQUksR0FBRSxPQUFNLE1BQUssR0FBRSxNQUFLO0FBQUcsT0FBRSxNQUFJLEdBQUcsSUFBRSxJQUFFO0FBQUcsT0FBRSxTQUFPO0FBQUUsV0FBTztBQUFBO0FBQUUsY0FBVyxJQUFFLElBQUUsSUFBRSxJQUFFO0FBQUMsUUFBRyxBQUFPLE9BQVAsUUFBVSxBQUFJLEdBQUUsUUFBTixLQUFXLEdBQUUsVUFBVSxrQkFBZ0IsR0FBRSxpQkFBZSxHQUFFLFVBQVUsbUJBQWlCLEdBQUU7QUFBZSxhQUFPLEtBQ3JnQixHQUFHLElBQUUsR0FBRSxNQUFLLEtBQUcsR0FBRSxTQUFPLElBQUU7QUFBRSxTQUFFLEVBQUUsSUFBRSxHQUFFLFlBQVU7QUFBSSxPQUFFLFNBQU87QUFBRSxXQUFPO0FBQUE7QUFBRSxjQUFXLElBQUUsSUFBRSxJQUFFLElBQUUsSUFBRTtBQUFDLFFBQUcsQUFBTyxPQUFQLFFBQVUsQUFBSSxHQUFFLFFBQU47QUFBVSxhQUFPLEtBQUUsR0FBRyxJQUFFLEdBQUUsTUFBSyxJQUFFLEtBQUcsR0FBRSxTQUFPLElBQUU7QUFBRSxTQUFFLEVBQUUsSUFBRTtBQUFHLE9BQUUsU0FBTztBQUFFLFdBQU87QUFBQTtBQUFFLGNBQVcsSUFBRSxJQUFFLElBQUU7QUFBQyxRQUFHLEFBQVcsT0FBTyxPQUFsQixZQUFxQixBQUFXLE9BQU8sT0FBbEI7QUFBb0IsYUFBTyxLQUFFLEdBQUcsS0FBRyxJQUFFLEdBQUUsTUFBSyxLQUFHLEdBQUUsU0FBTyxJQUFFO0FBQUUsUUFBRyxBQUFXLE9BQU8sT0FBbEIsWUFBcUIsQUFBTyxPQUFQLE1BQVM7QUFBQyxjQUFPLEdBQUU7QUFBQSxhQUFlO0FBQUcsaUJBQU8sS0FBRSxHQUFHLEdBQUUsTUFBSyxHQUFFLEtBQUksR0FBRSxPQUFNLE1BQUssR0FBRSxNQUFLLEtBQUcsR0FBRSxNQUFJLEdBQUcsSUFBRSxNQUFLLEtBQUcsR0FBRSxTQUFPLElBQUU7QUFBQSxhQUFPO0FBQUcsaUJBQU8sS0FBRSxHQUFHLElBQUUsR0FBRSxNQUFLLEtBQUcsR0FBRSxTQUFPLElBQUU7QUFBQTtBQUFFLFVBQUcsR0FBRyxPQUFJLEdBQUc7QUFBRyxlQUFPLEtBQUUsR0FBRyxJQUNuZixHQUFFLE1BQUssSUFBRSxPQUFNLEdBQUUsU0FBTyxJQUFFO0FBQUUsU0FBRyxJQUFFO0FBQUE7QUFBRyxXQUFPO0FBQUE7QUFBSyxjQUFXLElBQUUsSUFBRSxJQUFFLElBQUU7QUFBQyxRQUFJLEtBQUUsQUFBTyxPQUFQLE9BQVMsR0FBRSxNQUFJO0FBQUssUUFBRyxBQUFXLE9BQU8sT0FBbEIsWUFBcUIsQUFBVyxPQUFPLE9BQWxCO0FBQW9CLGFBQU8sQUFBTyxPQUFQLE9BQVMsT0FBSyxHQUFFLElBQUUsSUFBRSxLQUFHLElBQUU7QUFBRyxRQUFHLEFBQVcsT0FBTyxPQUFsQixZQUFxQixBQUFPLE9BQVAsTUFBUztBQUFDLGNBQU8sR0FBRTtBQUFBLGFBQWU7QUFBRyxpQkFBTyxHQUFFLFFBQU0sS0FBRSxHQUFFLFNBQU8sS0FBRyxHQUFFLElBQUUsSUFBRSxHQUFFLE1BQU0sVUFBUyxJQUFFLE1BQUcsRUFBRSxJQUFFLElBQUUsSUFBRSxNQUFHO0FBQUEsYUFBVTtBQUFHLGlCQUFPLEdBQUUsUUFBTSxLQUFFLEdBQUUsSUFBRSxJQUFFLElBQUUsTUFBRztBQUFBO0FBQUssVUFBRyxHQUFHLE9BQUksR0FBRztBQUFHLGVBQU8sQUFBTyxPQUFQLE9BQVMsT0FBSyxHQUFFLElBQUUsSUFBRSxJQUFFLElBQUU7QUFBTSxTQUFHLElBQUU7QUFBQTtBQUFHLFdBQU87QUFBQTtBQUFLLGNBQVcsSUFBRSxJQUFFLElBQUUsSUFBRSxJQUFFO0FBQUMsUUFBRyxBQUFXLE9BQU8sT0FBbEIsWUFBcUIsQUFBVyxPQUFPLE9BQWxCO0FBQW9CLGFBQU8sS0FBRSxHQUFFLElBQUksT0FDdGYsTUFBSyxHQUFFLElBQUUsSUFBRSxLQUFHLElBQUU7QUFBRyxRQUFHLEFBQVcsT0FBTyxPQUFsQixZQUFxQixBQUFPLE9BQVAsTUFBUztBQUFDLGNBQU8sR0FBRTtBQUFBLGFBQWU7QUFBRyxpQkFBTyxLQUFFLEdBQUUsSUFBSSxBQUFPLEdBQUUsUUFBVCxPQUFhLEtBQUUsR0FBRSxRQUFNLE1BQUssR0FBRSxTQUFPLEtBQUcsR0FBRSxJQUFFLElBQUUsR0FBRSxNQUFNLFVBQVMsSUFBRSxHQUFFLE9BQUssRUFBRSxJQUFFLElBQUUsSUFBRTtBQUFBLGFBQVE7QUFBRyxpQkFBTyxLQUFFLEdBQUUsSUFBSSxBQUFPLEdBQUUsUUFBVCxPQUFhLEtBQUUsR0FBRSxRQUFNLE1BQUssR0FBRSxJQUFFLElBQUUsSUFBRTtBQUFBO0FBQUcsVUFBRyxHQUFHLE9BQUksR0FBRztBQUFHLGVBQU8sS0FBRSxHQUFFLElBQUksT0FBSSxNQUFLLEdBQUUsSUFBRSxJQUFFLElBQUUsSUFBRTtBQUFNLFNBQUcsSUFBRTtBQUFBO0FBQUcsV0FBTztBQUFBO0FBQUssY0FBVyxJQUFFLElBQUUsSUFBRSxJQUFFO0FBQUMsYUFBUSxLQUFFLE1BQUssS0FBRSxNQUFLLEtBQUUsSUFBRSxLQUFFLEtBQUUsR0FBRSxLQUFFLE1BQUssQUFBTyxPQUFQLFFBQVUsS0FBRSxHQUFFLFFBQU8sTUFBSTtBQUFDLFNBQUUsUUFBTSxLQUFHLE1BQUUsSUFBRSxLQUFFLFFBQU0sS0FBRSxHQUFFO0FBQVEsVUFBSSxLQUFFLEdBQUUsSUFBRSxJQUFFLEdBQUUsS0FBRztBQUFHLFVBQUcsQUFBTyxPQUFQLE1BQVM7QUFBQyxRQUFPLE9BQVAsUUFBVyxNQUFFO0FBQUc7QUFBQTtBQUFNLFdBQUcsTUFBRyxBQUNqZixHQUFFLGNBRCtlLFFBQ3BlLEVBQUUsSUFBRTtBQUFHLFdBQUUsR0FBRSxJQUFFLElBQUU7QUFBRyxNQUFPLE9BQVAsT0FBUyxLQUFFLEtBQUUsR0FBRSxVQUFRO0FBQUUsV0FBRTtBQUFFLFdBQUU7QUFBQTtBQUFFLFFBQUcsT0FBSSxHQUFFO0FBQU8sYUFBTyxFQUFFLElBQUUsS0FBRztBQUFFLFFBQUcsQUFBTyxPQUFQLE1BQVM7QUFBQyxhQUFLLEtBQUUsR0FBRSxRQUFPO0FBQUksYUFBRSxHQUFFLElBQUUsR0FBRSxLQUFHLEtBQUcsQUFBTyxPQUFQLFFBQVcsTUFBRSxHQUFFLElBQUUsSUFBRSxLQUFHLEFBQU8sT0FBUCxPQUFTLEtBQUUsS0FBRSxHQUFFLFVBQVEsSUFBRSxLQUFFO0FBQUcsYUFBTztBQUFBO0FBQUUsU0FBSSxLQUFFLEVBQUUsSUFBRSxLQUFHLEtBQUUsR0FBRSxRQUFPO0FBQUksV0FBRSxHQUFFLElBQUUsSUFBRSxJQUFFLEdBQUUsS0FBRyxLQUFHLEFBQU8sT0FBUCxRQUFXLE1BQUcsQUFBTyxHQUFFLGNBQVQsUUFBb0IsR0FBRSxPQUFPLEFBQU8sR0FBRSxRQUFULE9BQWEsS0FBRSxHQUFFLE1BQUssS0FBRSxHQUFFLElBQUUsSUFBRSxLQUFHLEFBQU8sT0FBUCxPQUFTLEtBQUUsS0FBRSxHQUFFLFVBQVEsSUFBRSxLQUFFO0FBQUcsU0FBRyxHQUFFLFFBQVEsU0FBUyxJQUFFO0FBQUMsYUFBTyxFQUFFLElBQUU7QUFBQTtBQUFLLFdBQU87QUFBQTtBQUFFLGNBQVcsSUFBRSxJQUFFLElBQUUsSUFBRTtBQUFDLFFBQUksS0FBRSxHQUFHO0FBQUcsUUFBRyxBQUFhLE9BQU8sT0FBcEI7QUFBc0IsWUFBTSxNQUFNLEVBQUU7QUFBTSxTQUFFLEdBQUUsS0FBSztBQUFHLFFBQUcsQUFDbGYsTUFEa2Y7QUFDaGYsWUFBTSxNQUFNLEVBQUU7QUFBTSxhQUFRLEtBQUUsS0FBRSxNQUFLLEtBQUUsSUFBRSxLQUFFLEtBQUUsR0FBRSxLQUFFLE1BQUssS0FBRSxHQUFFLFFBQU8sQUFBTyxPQUFQLFFBQVUsQ0FBQyxHQUFFLE1BQUssTUFBSSxLQUFFLEdBQUUsUUFBTztBQUFDLFNBQUUsUUFBTSxLQUFHLE1BQUUsSUFBRSxLQUFFLFFBQU0sS0FBRSxHQUFFO0FBQVEsVUFBSSxLQUFFLEdBQUUsSUFBRSxJQUFFLEdBQUUsT0FBTTtBQUFHLFVBQUcsQUFBTyxPQUFQLE1BQVM7QUFBQyxRQUFPLE9BQVAsUUFBVyxNQUFFO0FBQUc7QUFBQTtBQUFNLFdBQUcsTUFBRyxBQUFPLEdBQUUsY0FBVCxRQUFvQixFQUFFLElBQUU7QUFBRyxXQUFFLEdBQUUsSUFBRSxJQUFFO0FBQUcsTUFBTyxPQUFQLE9BQVMsS0FBRSxLQUFFLEdBQUUsVUFBUTtBQUFFLFdBQUU7QUFBRSxXQUFFO0FBQUE7QUFBRSxRQUFHLEdBQUU7QUFBSyxhQUFPLEVBQUUsSUFBRSxLQUFHO0FBQUUsUUFBRyxBQUFPLE9BQVAsTUFBUztBQUFDLGFBQUssQ0FBQyxHQUFFLE1BQUssTUFBSSxLQUFFLEdBQUU7QUFBTyxhQUFFLEdBQUUsSUFBRSxHQUFFLE9BQU0sS0FBRyxBQUFPLE9BQVAsUUFBVyxNQUFFLEdBQUUsSUFBRSxJQUFFLEtBQUcsQUFBTyxPQUFQLE9BQVMsS0FBRSxLQUFFLEdBQUUsVUFBUSxJQUFFLEtBQUU7QUFBRyxhQUFPO0FBQUE7QUFBRSxTQUFJLEtBQUUsRUFBRSxJQUFFLEtBQUcsQ0FBQyxHQUFFLE1BQUssTUFBSSxLQUFFLEdBQUU7QUFBTyxXQUFFLEdBQUUsSUFBRSxJQUFFLElBQUUsR0FBRSxPQUFNLEtBQUcsQUFBTyxPQUFQLFFBQVcsTUFBRyxBQUFPLEdBQUUsY0FBVCxRQUN2ZSxHQUFFLE9BQU8sQUFBTyxHQUFFLFFBQVQsT0FBYSxLQUFFLEdBQUUsTUFBSyxLQUFFLEdBQUUsSUFBRSxJQUFFLEtBQUcsQUFBTyxPQUFQLE9BQVMsS0FBRSxLQUFFLEdBQUUsVUFBUSxJQUFFLEtBQUU7QUFBRyxTQUFHLEdBQUUsUUFBUSxTQUFTLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBRTtBQUFBO0FBQUssV0FBTztBQUFBO0FBQUUsU0FBTyxTQUFTLElBQUUsSUFBRSxJQUFFLElBQUU7QUFBQyxRQUFJLEtBQUUsQUFBVyxPQUFPLE9BQWxCLFlBQXFCLEFBQU8sT0FBUCxRQUFVLEdBQUUsU0FBTyxNQUFJLEFBQU8sR0FBRSxRQUFUO0FBQWEsVUFBSSxNQUFFLEdBQUUsTUFBTTtBQUFVLFFBQUksS0FBRSxBQUFXLE9BQU8sT0FBbEIsWUFBcUIsQUFBTyxPQUFQO0FBQVMsUUFBRztBQUFFLGNBQU8sR0FBRTtBQUFBLGFBQWU7QUFBRyxhQUFFO0FBQUMsaUJBQUUsR0FBRTtBQUFJLGlCQUFJLEtBQUUsSUFBRSxBQUFPLE9BQVAsUUFBVTtBQUFDLGtCQUFHLEdBQUUsUUFBTSxJQUFFO0FBQUMsd0JBQU8sR0FBRTtBQUFBLHVCQUFVO0FBQUUsd0JBQUcsR0FBRSxTQUFPLElBQUc7QUFBQyx3QkFBRSxJQUFFLEdBQUU7QUFBUywyQkFBRSxFQUFFLElBQUUsR0FBRSxNQUFNO0FBQVUseUJBQUUsU0FBTztBQUFFLDJCQUFFO0FBQUU7QUFBQTtBQUFRO0FBQUE7QUFBYyx3QkFBRyxHQUFFLGdCQUFjLEdBQUUsTUFBSztBQUFDLHdCQUFFLElBQUUsR0FBRTtBQUM1ZSwyQkFBRSxFQUFFLElBQUUsR0FBRTtBQUFPLHlCQUFFLE1BQUksR0FBRyxJQUFFLElBQUU7QUFBRyx5QkFBRSxTQUFPO0FBQUUsMkJBQUU7QUFBRTtBQUFBO0FBQUE7QUFBUyxrQkFBRSxJQUFFO0FBQUc7QUFBQTtBQUFXLGtCQUFFLElBQUU7QUFBRyxtQkFBRSxHQUFFO0FBQUE7QUFBUSxlQUFFLFNBQU8sS0FBSSxNQUFFLEdBQUcsR0FBRSxNQUFNLFVBQVMsR0FBRSxNQUFLLElBQUUsR0FBRSxNQUFLLEdBQUUsU0FBTyxJQUFFLEtBQUUsTUFBSSxNQUFFLEdBQUcsR0FBRSxNQUFLLEdBQUUsS0FBSSxHQUFFLE9BQU0sTUFBSyxHQUFFLE1BQUssS0FBRyxHQUFFLE1BQUksR0FBRyxJQUFFLElBQUUsS0FBRyxHQUFFLFNBQU8sSUFBRSxLQUFFO0FBQUE7QUFBRyxpQkFBTyxHQUFFO0FBQUEsYUFBUTtBQUFHLGFBQUU7QUFBQyxpQkFBSSxLQUFFLEdBQUUsS0FBSSxBQUFPLE9BQVAsUUFBVTtBQUFDLGtCQUFHLEdBQUUsUUFBTTtBQUFFLG9CQUFHLEFBQUksR0FBRSxRQUFOLEtBQVcsR0FBRSxVQUFVLGtCQUFnQixHQUFFLGlCQUFlLEdBQUUsVUFBVSxtQkFBaUIsR0FBRSxnQkFBZTtBQUFDLG9CQUFFLElBQUUsR0FBRTtBQUFTLHVCQUFFLEVBQUUsSUFBRSxHQUFFLFlBQVU7QUFBSSxxQkFBRSxTQUFPO0FBQUUsdUJBQUU7QUFBRTtBQUFBLHVCQUFZO0FBQUMsb0JBQUUsSUFBRTtBQUFHO0FBQUE7QUFBQTtBQUFXLGtCQUFFLElBQUU7QUFBRyxtQkFBRSxHQUFFO0FBQUE7QUFBUSxpQkFDcGYsR0FBRyxJQUFFLEdBQUUsTUFBSztBQUFHLGVBQUUsU0FBTztBQUFFLGlCQUFFO0FBQUE7QUFBRSxpQkFBTyxHQUFFO0FBQUE7QUFBRyxRQUFHLEFBQVcsT0FBTyxPQUFsQixZQUFxQixBQUFXLE9BQU8sT0FBbEI7QUFBb0IsYUFBTyxLQUFFLEtBQUcsSUFBRSxBQUFPLE9BQVAsUUFBVSxBQUFJLEdBQUUsUUFBTixJQUFXLEdBQUUsSUFBRSxHQUFFLFVBQVMsS0FBRSxFQUFFLElBQUUsS0FBRyxHQUFFLFNBQU8sSUFBRSxLQUFFLE1BQUksR0FBRSxJQUFFLEtBQUcsS0FBRSxHQUFHLElBQUUsR0FBRSxNQUFLLEtBQUcsR0FBRSxTQUFPLElBQUUsS0FBRSxLQUFHLEdBQUU7QUFBRyxRQUFHLEdBQUc7QUFBRyxhQUFPLEdBQUUsSUFBRSxJQUFFLElBQUU7QUFBRyxRQUFHLEdBQUc7QUFBRyxhQUFPLEdBQUUsSUFBRSxJQUFFLElBQUU7QUFBRyxVQUFHLEdBQUcsSUFBRTtBQUFHLFFBQUcsQUFBYyxPQUFPLE9BQXJCLGVBQXdCLENBQUM7QUFBRSxjQUFPLEdBQUU7QUFBQSxhQUFVO0FBQUEsYUFBTztBQUFBLGFBQVE7QUFBQSxhQUFPO0FBQUEsYUFBUTtBQUFHLGdCQUFNLE1BQU0sRUFBRSxLQUFJLEdBQUcsR0FBRSxTQUFPO0FBQUE7QUFBZSxXQUFPLEVBQUUsSUFBRTtBQUFBO0FBQUE7QUFBSSxJQUFJLEtBQUcsR0FBRyxPQUFJLEtBQUcsR0FBRyxRQUFJLEtBQUcsSUFBRyxLQUFHLEdBQUcsS0FBSSxLQUFHLEdBQUcsS0FBSSxLQUFHLEdBQUc7QUFDdGQsWUFBWSxHQUFFO0FBQUMsTUFBRyxNQUFJO0FBQUcsVUFBTSxNQUFNLEVBQUU7QUFBTSxTQUFPO0FBQUE7QUFBRSxZQUFZLEdBQUUsR0FBRTtBQUFDLElBQUUsSUFBRztBQUFHLElBQUUsSUFBRztBQUFHLElBQUUsSUFBRztBQUFJLE1BQUUsRUFBRTtBQUFTLFVBQU87QUFBQSxTQUFRO0FBQUEsU0FBTztBQUFHLFVBQUcsS0FBRSxFQUFFLG1CQUFpQixFQUFFLGVBQWEsR0FBRyxNQUFLO0FBQUk7QUFBQTtBQUFjLFVBQUUsQUFBSSxNQUFKLElBQU0sRUFBRSxhQUFXLEdBQUUsSUFBRSxFQUFFLGdCQUFjLE1BQUssSUFBRSxFQUFFLFNBQVEsSUFBRSxHQUFHLEdBQUU7QUFBQTtBQUFHLElBQUU7QUFBSSxJQUFFLElBQUc7QUFBQTtBQUFHLGNBQWE7QUFBQyxJQUFFO0FBQUksSUFBRTtBQUFJLElBQUU7QUFBQTtBQUFJLFlBQVksR0FBRTtBQUFDLEtBQUcsR0FBRztBQUFTLE1BQUksSUFBRSxHQUFHLEdBQUc7QUFBUyxNQUFJLElBQUUsR0FBRyxHQUFFLEVBQUU7QUFBTSxRQUFJLEtBQUksR0FBRSxJQUFHLElBQUcsRUFBRSxJQUFHO0FBQUE7QUFBSSxZQUFZLEdBQUU7QUFBQyxLQUFHLFlBQVUsS0FBSSxHQUFFLEtBQUksRUFBRTtBQUFBO0FBQUssSUFBSSxJQUFFLEdBQUc7QUFDOWMsWUFBWSxHQUFFO0FBQUMsV0FBUSxJQUFFLEdBQUUsQUFBTyxNQUFQLFFBQVU7QUFBQyxRQUFHLEFBQUssRUFBRSxRQUFQLElBQVc7QUFBQyxVQUFJLElBQUUsRUFBRTtBQUFjLFVBQUcsQUFBTyxNQUFQLFFBQVcsS0FBRSxFQUFFLFlBQVcsQUFBTyxNQUFQLFFBQVUsQUFBTyxFQUFFLFNBQVQsUUFBZSxBQUFPLEVBQUUsU0FBVDtBQUFlLGVBQU87QUFBQSxlQUFVLEFBQUssRUFBRSxRQUFQLE1BQVksQUFBUyxFQUFFLGNBQWMsZ0JBQXpCLFFBQXFDO0FBQUMsVUFBRyxBQUFLLEdBQUUsUUFBTSxRQUFiO0FBQWlCLGVBQU87QUFBQSxlQUFVLEFBQU8sRUFBRSxVQUFULE1BQWU7QUFBQyxRQUFFLE1BQU0sU0FBTztBQUFFLFVBQUUsRUFBRTtBQUFNO0FBQUE7QUFBUyxRQUFHLE1BQUk7QUFBRTtBQUFNLFdBQUssQUFBTyxFQUFFLFlBQVQsUUFBa0I7QUFBQyxVQUFHLEFBQU8sRUFBRSxXQUFULFFBQWlCLEVBQUUsV0FBUztBQUFFLGVBQU87QUFBSyxVQUFFLEVBQUU7QUFBQTtBQUFPLE1BQUUsUUFBUSxTQUFPLEVBQUU7QUFBTyxRQUFFLEVBQUU7QUFBQTtBQUFRLFNBQU87QUFBQTtBQUFLLElBQUksS0FBRyxNQUFLLEtBQUcsTUFBSyxLQUFHO0FBQ3BkLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEdBQUcsR0FBRSxNQUFLLE1BQUs7QUFBRyxJQUFFLGNBQVk7QUFBVSxJQUFFLE9BQUs7QUFBVSxJQUFFLFlBQVU7QUFBRSxJQUFFLFNBQU87QUFBRSxJQUFFLFFBQU07QUFBRSxFQUFPLEVBQUUsZUFBVCxPQUFxQixHQUFFLFdBQVcsYUFBVyxHQUFFLEVBQUUsYUFBVyxLQUFHLEVBQUUsY0FBWSxFQUFFLGFBQVc7QUFBQTtBQUFFLFlBQVksR0FBRSxHQUFFO0FBQUMsVUFBTyxFQUFFO0FBQUEsU0FBVTtBQUFFLFVBQUksSUFBRSxFQUFFO0FBQUssVUFBRSxBQUFJLEVBQUUsYUFBTixLQUFnQixFQUFFLGtCQUFnQixFQUFFLFNBQVMsZ0JBQWMsT0FBSztBQUFFLGFBQU8sQUFBTyxNQUFQLE9BQVUsR0FBRSxZQUFVLEdBQUUsUUFBSTtBQUFBLFNBQVE7QUFBRSxhQUFPLElBQUUsQUFBSyxFQUFFLGlCQUFQLE1BQXFCLEFBQUksRUFBRSxhQUFOLElBQWUsT0FBSyxHQUFFLEFBQU8sTUFBUCxPQUFVLEdBQUUsWUFBVSxHQUFFLFFBQUk7QUFBQSxTQUFRO0FBQUcsYUFBTTtBQUFBO0FBQVcsYUFBTTtBQUFBO0FBQUE7QUFDdmUsWUFBWSxHQUFFO0FBQUMsTUFBRyxJQUFHO0FBQUMsUUFBSSxJQUFFO0FBQUcsUUFBRyxHQUFFO0FBQUMsVUFBSSxJQUFFO0FBQUUsVUFBRyxDQUFDLEdBQUcsR0FBRSxJQUFHO0FBQUMsWUFBRSxHQUFHLEVBQUU7QUFBYSxZQUFHLENBQUMsS0FBRyxDQUFDLEdBQUcsR0FBRSxJQUFHO0FBQUMsWUFBRSxRQUFNLEVBQUUsUUFBTSxRQUFNO0FBQUUsZUFBRztBQUFHLGVBQUc7QUFBRTtBQUFBO0FBQU8sV0FBRyxJQUFHO0FBQUE7QUFBRyxXQUFHO0FBQUUsV0FBRyxHQUFHLEVBQUU7QUFBQTtBQUFpQixRQUFFLFFBQU0sRUFBRSxRQUFNLFFBQU0sR0FBRSxLQUFHLE9BQUcsS0FBRztBQUFBO0FBQUE7QUFBRyxZQUFZLEdBQUU7QUFBQyxPQUFJLElBQUUsRUFBRSxRQUFPLEFBQU8sTUFBUCxRQUFVLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBSSxFQUFFLFFBQU4sS0FBVyxBQUFLLEVBQUUsUUFBUDtBQUFZLFFBQUUsRUFBRTtBQUFPLE9BQUc7QUFBQTtBQUM1UyxZQUFZLEdBQUU7QUFBQyxNQUFHLE1BQUk7QUFBRyxXQUFNO0FBQUcsTUFBRyxDQUFDO0FBQUcsV0FBTyxHQUFHLElBQUcsS0FBRyxNQUFHO0FBQUcsTUFBSSxJQUFFLEVBQUU7QUFBSyxNQUFHLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBUyxNQUFULFVBQVksQUFBUyxNQUFULFVBQVksQ0FBQyxHQUFHLEdBQUUsRUFBRTtBQUFlLFNBQUksSUFBRSxJQUFHO0FBQUcsU0FBRyxHQUFFLElBQUcsSUFBRSxHQUFHLEVBQUU7QUFBYSxLQUFHO0FBQUcsTUFBRyxBQUFLLEVBQUUsUUFBUCxJQUFXO0FBQUMsUUFBRSxFQUFFO0FBQWMsUUFBRSxBQUFPLE1BQVAsT0FBUyxFQUFFLGFBQVc7QUFBSyxRQUFHLENBQUM7QUFBRSxZQUFNLE1BQU0sRUFBRTtBQUFNLE9BQUU7QUFBQyxVQUFFLEVBQUU7QUFBWSxXQUFJLElBQUUsR0FBRSxLQUFHO0FBQUMsWUFBRyxBQUFJLEVBQUUsYUFBTixHQUFlO0FBQUMsY0FBSSxJQUFFLEVBQUU7QUFBSyxjQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsZ0JBQUcsQUFBSSxNQUFKLEdBQU07QUFBQyxtQkFBRyxHQUFHLEVBQUU7QUFBYTtBQUFBO0FBQVE7QUFBQTtBQUFRLFlBQU0sTUFBTixPQUFTLEFBQU8sTUFBUCxRQUFVLEFBQU8sTUFBUCxRQUFVO0FBQUE7QUFBSSxZQUFFLEVBQUU7QUFBQTtBQUFZLFdBQUc7QUFBQTtBQUFBO0FBQVcsU0FBRyxLQUFHLEdBQUcsRUFBRSxVQUFVLGVBQWE7QUFBSyxTQUFNO0FBQUE7QUFDdGYsY0FBYTtBQUFDLE9BQUcsS0FBRztBQUFLLE9BQUc7QUFBQTtBQUFHLElBQUksS0FBRztBQUFHLGNBQWE7QUFBQyxXQUFRLElBQUUsR0FBRSxJQUFFLEdBQUcsUUFBTztBQUFJLE9BQUcsR0FBRyxnQ0FBOEI7QUFBSyxLQUFHLFNBQU87QUFBQTtBQUFFLElBQUksS0FBRyxHQUFHLHdCQUF1QixLQUFHLEdBQUcseUJBQXdCLEtBQUcsR0FBRSxJQUFFLE1BQUssSUFBRSxNQUFLLElBQUUsTUFBSyxLQUFHLE9BQUcsS0FBRztBQUFHLGNBQWE7QUFBQyxRQUFNLE1BQU0sRUFBRTtBQUFBO0FBQU8sWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFHLEFBQU8sTUFBUDtBQUFTLFdBQU07QUFBRyxXQUFRLElBQUUsR0FBRSxJQUFFLEVBQUUsVUFBUSxJQUFFLEVBQUUsUUFBTztBQUFJLFFBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBRyxFQUFFO0FBQUksYUFBTTtBQUFHLFNBQU07QUFBQTtBQUM5WCxZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFFO0FBQUMsT0FBRztBQUFFLE1BQUU7QUFBRSxJQUFFLGdCQUFjO0FBQUssSUFBRSxjQUFZO0FBQUssSUFBRSxRQUFNO0FBQUUsS0FBRyxVQUFRLEFBQU8sTUFBUCxRQUFVLEFBQU8sRUFBRSxrQkFBVCxPQUF1QixLQUFHO0FBQUcsTUFBRSxFQUFFLEdBQUU7QUFBRyxNQUFHLElBQUc7QUFBQyxTQUFFO0FBQUUsT0FBRTtBQUFDLFdBQUc7QUFBRyxVQUFHLENBQUUsTUFBRztBQUFHLGNBQU0sTUFBTSxFQUFFO0FBQU0sWUFBRztBQUFFLFVBQUUsSUFBRTtBQUFLLFFBQUUsY0FBWTtBQUFLLFNBQUcsVUFBUTtBQUFHLFVBQUUsRUFBRSxHQUFFO0FBQUEsYUFBUztBQUFBO0FBQUksS0FBRyxVQUFRO0FBQUcsTUFBRSxBQUFPLE1BQVAsUUFBVSxBQUFPLEVBQUUsU0FBVDtBQUFjLE9BQUc7QUFBRSxNQUFFLElBQUUsSUFBRTtBQUFLLE9BQUc7QUFBRyxNQUFHO0FBQUUsVUFBTSxNQUFNLEVBQUU7QUFBTSxTQUFPO0FBQUE7QUFBRSxjQUFhO0FBQUMsTUFBSSxJQUFFLEVBQUMsZUFBYyxNQUFLLFdBQVUsTUFBSyxXQUFVLE1BQUssT0FBTSxNQUFLLE1BQUs7QUFBTSxFQUFPLE1BQVAsT0FBUyxFQUFFLGdCQUFjLElBQUUsSUFBRSxJQUFFLEVBQUUsT0FBSztBQUFFLFNBQU87QUFBQTtBQUMvZSxjQUFhO0FBQUMsTUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFFBQUksSUFBRSxFQUFFO0FBQVUsUUFBRSxBQUFPLE1BQVAsT0FBUyxFQUFFLGdCQUFjO0FBQUE7QUFBVSxRQUFFLEVBQUU7QUFBSyxNQUFJLElBQUUsQUFBTyxNQUFQLE9BQVMsRUFBRSxnQkFBYyxFQUFFO0FBQUssTUFBRyxBQUFPLE1BQVA7QUFBUyxRQUFFLEdBQUUsSUFBRTtBQUFBLE9BQU07QUFBQyxRQUFHLEFBQU8sTUFBUDtBQUFTLFlBQU0sTUFBTSxFQUFFO0FBQU0sUUFBRTtBQUFFLFFBQUUsRUFBQyxlQUFjLEVBQUUsZUFBYyxXQUFVLEVBQUUsV0FBVSxXQUFVLEVBQUUsV0FBVSxPQUFNLEVBQUUsT0FBTSxNQUFLO0FBQU0sSUFBTyxNQUFQLE9BQVMsRUFBRSxnQkFBYyxJQUFFLElBQUUsSUFBRSxFQUFFLE9BQUs7QUFBQTtBQUFFLFNBQU87QUFBQTtBQUFFLFlBQVksR0FBRSxHQUFFO0FBQUMsU0FBTSxBQUFhLE9BQU8sTUFBcEIsYUFBc0IsRUFBRSxLQUFHO0FBQUE7QUFDdlksWUFBWSxHQUFFO0FBQUMsTUFBSSxJQUFFLE1BQUssSUFBRSxFQUFFO0FBQU0sTUFBRyxBQUFPLE1BQVA7QUFBUyxVQUFNLE1BQU0sRUFBRTtBQUFNLElBQUUsc0JBQW9CO0FBQUUsTUFBSSxJQUFFLEdBQUUsSUFBRSxFQUFFLFdBQVUsS0FBRSxFQUFFO0FBQVEsTUFBRyxBQUFPLE9BQVAsTUFBUztBQUFDLFFBQUcsQUFBTyxNQUFQLE1BQVM7QUFBQyxVQUFJLEtBQUUsRUFBRTtBQUFLLFFBQUUsT0FBSyxHQUFFO0FBQUssU0FBRSxPQUFLO0FBQUE7QUFBRSxNQUFFLFlBQVUsSUFBRTtBQUFFLE1BQUUsVUFBUTtBQUFBO0FBQUssTUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFFBQUUsRUFBRTtBQUFLLFFBQUUsRUFBRTtBQUFVLFFBQUksS0FBRSxLQUFFLEtBQUUsTUFBSyxJQUFFO0FBQUUsT0FBRTtBQUFDLFVBQUksS0FBRSxFQUFFO0FBQUssVUFBSSxNQUFHLFFBQUs7QUFBRSxRQUFPLE9BQVAsUUFBVyxNQUFFLEdBQUUsT0FBSyxFQUFDLE1BQUssR0FBRSxRQUFPLEVBQUUsUUFBTyxjQUFhLEVBQUUsY0FBYSxZQUFXLEVBQUUsWUFBVyxNQUFLLFNBQU8sSUFBRSxFQUFFLGlCQUFlLElBQUUsRUFBRSxhQUFXLEVBQUUsR0FBRSxFQUFFO0FBQUEsV0FBWTtBQUFDLFlBQUksS0FBRTtBQUFBLFVBQUMsTUFBSztBQUFBLFVBQUUsUUFBTyxFQUFFO0FBQUEsVUFBTyxjQUFhLEVBQUU7QUFBQSxVQUM5ZixZQUFXLEVBQUU7QUFBQSxVQUFXLE1BQUs7QUFBQTtBQUFNLFFBQU8sT0FBUCxPQUFVLE1BQUUsS0FBRSxJQUFFLEtBQUUsS0FBRyxLQUFFLEdBQUUsT0FBSztBQUFFLFVBQUUsU0FBTztBQUFFLGNBQUk7QUFBQTtBQUFFLFVBQUUsRUFBRTtBQUFBLGFBQVcsQUFBTyxNQUFQLFFBQVUsTUFBSTtBQUFHLElBQU8sT0FBUCxPQUFTLEtBQUUsSUFBRSxHQUFFLE9BQUs7QUFBRSxPQUFHLEdBQUUsRUFBRSxrQkFBaUIsTUFBRztBQUFJLE1BQUUsZ0JBQWM7QUFBRSxNQUFFLFlBQVU7QUFBRSxNQUFFLFlBQVU7QUFBRSxNQUFFLG9CQUFrQjtBQUFBO0FBQUUsU0FBTSxDQUFDLEVBQUUsZUFBYyxFQUFFO0FBQUE7QUFDdFEsWUFBWSxHQUFFO0FBQUMsTUFBSSxJQUFFLE1BQUssSUFBRSxFQUFFO0FBQU0sTUFBRyxBQUFPLE1BQVA7QUFBUyxVQUFNLE1BQU0sRUFBRTtBQUFNLElBQUUsc0JBQW9CO0FBQUUsTUFBSSxJQUFFLEVBQUUsVUFBUyxJQUFFLEVBQUUsU0FBUSxLQUFFLEVBQUU7QUFBYyxNQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsTUFBRSxVQUFRO0FBQUssUUFBSSxLQUFFLElBQUUsRUFBRTtBQUFLO0FBQUcsV0FBRSxFQUFFLElBQUUsR0FBRSxTQUFRLEtBQUUsR0FBRTtBQUFBLFdBQVcsT0FBSTtBQUFHLE9BQUcsSUFBRSxFQUFFLGtCQUFpQixNQUFHO0FBQUksTUFBRSxnQkFBYztBQUFFLElBQU8sRUFBRSxjQUFULFFBQXFCLEdBQUUsWUFBVTtBQUFHLE1BQUUsb0JBQWtCO0FBQUE7QUFBRSxTQUFNLENBQUMsSUFBRTtBQUFBO0FBQ25WLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFZLE1BQUUsRUFBRSxFQUFFO0FBQVMsTUFBSSxJQUFFLEVBQUU7QUFBOEIsTUFBRyxBQUFPLE1BQVA7QUFBUyxRQUFFLE1BQUk7QUFBQSxXQUFVLElBQUUsRUFBRSxrQkFBaUIsSUFBRyxNQUFHLE9BQUs7QUFBRSxNQUFFLGdDQUE4QixHQUFFLEdBQUcsS0FBSztBQUFHLE1BQUc7QUFBRSxXQUFPLEVBQUUsRUFBRTtBQUFTLEtBQUcsS0FBSztBQUFHLFFBQU0sTUFBTSxFQUFFO0FBQUE7QUFDelAsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUUsTUFBRyxBQUFPLE1BQVA7QUFBUyxVQUFNLE1BQU0sRUFBRTtBQUFNLE1BQUksS0FBRSxFQUFFLGFBQVksS0FBRSxHQUFFLEVBQUUsVUFBUyxLQUFFLEdBQUcsU0FBUSxJQUFFLEdBQUUsU0FBUyxXQUFVO0FBQUMsV0FBTyxHQUFHLEdBQUUsR0FBRTtBQUFBLE1BQUssS0FBRSxFQUFFLElBQUcsS0FBRSxFQUFFO0FBQUcsTUFBRTtBQUFFLE1BQUksS0FBRSxFQUFFLGVBQWMsS0FBRSxHQUFFLE1BQUssS0FBRSxHQUFFLGFBQVksS0FBRSxHQUFFO0FBQU8sT0FBRSxHQUFFO0FBQVUsTUFBSSxLQUFFO0FBQUUsSUFBRSxnQkFBYyxFQUFDLE1BQUssSUFBRSxRQUFPLEdBQUUsV0FBVTtBQUFHLEtBQUUsVUFBVSxXQUFVO0FBQUMsT0FBRSxjQUFZO0FBQUUsT0FBRSxjQUFZO0FBQUUsUUFBSSxLQUFFLEdBQUUsRUFBRTtBQUFTLFFBQUcsQ0FBQyxHQUFHLElBQUUsS0FBRztBQUFDLFdBQUUsRUFBRSxFQUFFO0FBQVMsU0FBRyxJQUFFLE9BQUssSUFBRSxLQUFHLEtBQUUsR0FBRyxLQUFHLEVBQUUsb0JBQWtCLEtBQUUsRUFBRTtBQUFjLFdBQUUsRUFBRTtBQUFpQixRQUFFLGtCQUFnQjtBQUFFLGVBQVEsS0FDNWYsRUFBRSxlQUFjLEtBQUUsSUFBRSxJQUFFLE1BQUc7QUFBQyxZQUFJLEtBQUUsS0FBRyxHQUFHLEtBQUcsS0FBRSxLQUFHO0FBQUUsV0FBRSxPQUFJO0FBQUUsY0FBRyxDQUFDO0FBQUE7QUFBQTtBQUFBLEtBQUssQ0FBQyxHQUFFLEdBQUU7QUFBSSxLQUFFLFVBQVUsV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLFNBQVEsV0FBVTtBQUFDLFVBQUksS0FBRSxHQUFFLGFBQVksS0FBRSxHQUFFO0FBQVksVUFBRztBQUFDLFdBQUUsR0FBRSxFQUFFO0FBQVUsWUFBSSxLQUFFLEdBQUc7QUFBRyxVQUFFLG9CQUFrQixLQUFFLEVBQUU7QUFBQSxlQUFtQixJQUFOO0FBQVMsV0FBRSxXQUFVO0FBQUMsZ0JBQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxLQUFTLENBQUMsR0FBRTtBQUFJLEtBQUcsSUFBRSxNQUFJLEdBQUcsSUFBRSxNQUFJLEdBQUcsSUFBRSxNQUFLLEtBQUUsRUFBQyxTQUFRLE1BQUssVUFBUyxNQUFLLHFCQUFvQixJQUFHLG1CQUFrQixNQUFHLEVBQUUsV0FBUyxLQUFFLEdBQUcsS0FBSyxNQUFLLEdBQUUsSUFBRyxFQUFFLFFBQU0sR0FBRSxFQUFFLFlBQVUsTUFBSyxLQUFFLEdBQUcsR0FBRSxHQUFFLElBQUcsRUFBRSxnQkFBYyxFQUFFLFlBQVU7QUFBRyxTQUFPO0FBQUE7QUFDdGUsWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRTtBQUFLLFNBQU8sR0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFBO0FBQUcsWUFBWSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUssRUFBYSxPQUFPLE1BQXBCLGNBQXdCLEtBQUU7QUFBSyxJQUFFLGdCQUFjLEVBQUUsWUFBVTtBQUFFLE1BQUUsRUFBRSxRQUFNLEVBQUMsU0FBUSxNQUFLLFVBQVMsTUFBSyxxQkFBb0IsSUFBRyxtQkFBa0I7QUFBRyxNQUFFLEVBQUUsV0FBUyxHQUFHLEtBQUssTUFBSyxHQUFFO0FBQUcsU0FBTSxDQUFDLEVBQUUsZUFBYztBQUFBO0FBQ2hSLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUUsRUFBQyxLQUFJLEdBQUUsUUFBTyxHQUFFLFNBQVEsR0FBRSxNQUFLLEdBQUUsTUFBSztBQUFNLE1BQUUsRUFBRTtBQUFZLEVBQU8sTUFBUCxPQUFVLEtBQUUsRUFBQyxZQUFXLFFBQU0sRUFBRSxjQUFZLEdBQUUsRUFBRSxhQUFXLEVBQUUsT0FBSyxLQUFJLEtBQUUsRUFBRSxZQUFXLEFBQU8sTUFBUCxPQUFTLEVBQUUsYUFBVyxFQUFFLE9BQUssSUFBRyxLQUFFLEVBQUUsTUFBSyxFQUFFLE9BQUssR0FBRSxFQUFFLE9BQUssR0FBRSxFQUFFLGFBQVc7QUFBSSxTQUFPO0FBQUE7QUFBRSxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUU7QUFBSyxNQUFFLEVBQUMsU0FBUTtBQUFHLFNBQU8sRUFBRSxnQkFBYztBQUFBO0FBQUUsY0FBYTtBQUFDLFNBQU8sS0FBSztBQUFBO0FBQWMsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUssSUFBRSxTQUFPO0FBQUUsSUFBRSxnQkFBYyxHQUFHLElBQUUsR0FBRSxHQUFFLFFBQU8sQUFBUyxNQUFULFNBQVcsT0FBSztBQUFBO0FBQ2pjLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRTtBQUFLLE1BQUUsQUFBUyxNQUFULFNBQVcsT0FBSztBQUFFLE1BQUksS0FBRTtBQUFPLE1BQUcsQUFBTyxNQUFQLE1BQVM7QUFBQyxRQUFJLEtBQUUsRUFBRTtBQUFjLFNBQUUsR0FBRTtBQUFRLFFBQUcsQUFBTyxNQUFQLFFBQVUsR0FBRyxHQUFFLEdBQUUsT0FBTTtBQUFDLFNBQUcsR0FBRSxHQUFFLElBQUU7QUFBRztBQUFBO0FBQUE7QUFBUSxJQUFFLFNBQU87QUFBRSxJQUFFLGdCQUFjLEdBQUcsSUFBRSxHQUFFLEdBQUUsSUFBRTtBQUFBO0FBQUcsWUFBWSxHQUFFLEdBQUU7QUFBQyxTQUFPLEdBQUcsS0FBSSxHQUFFLEdBQUU7QUFBQTtBQUFHLFlBQVksR0FBRSxHQUFFO0FBQUMsU0FBTyxHQUFHLEtBQUksR0FBRSxHQUFFO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRTtBQUFDLFNBQU8sR0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFBO0FBQUcsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFHLEFBQWEsT0FBTyxNQUFwQjtBQUFzQixXQUFPLElBQUUsS0FBSSxFQUFFLElBQUcsV0FBVTtBQUFDLFFBQUU7QUFBQTtBQUFPLE1BQUcsQUFBTyxNQUFQLFFBQVUsQUFBUyxNQUFUO0FBQVcsV0FBTyxJQUFFLEtBQUksRUFBRSxVQUFRLEdBQUUsV0FBVTtBQUFDLFFBQUUsVUFBUTtBQUFBO0FBQUE7QUFDOWMsWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUUsQUFBTyxNQUFQLFFBQVUsQUFBUyxNQUFULFNBQVcsRUFBRSxPQUFPLENBQUMsTUFBSTtBQUFLLFNBQU8sR0FBRyxHQUFFLEdBQUUsR0FBRyxLQUFLLE1BQUssR0FBRSxJQUFHO0FBQUE7QUFBRyxjQUFhO0FBQUE7QUFBRSxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRTtBQUFLLE1BQUUsQUFBUyxNQUFULFNBQVcsT0FBSztBQUFFLE1BQUksSUFBRSxFQUFFO0FBQWMsTUFBRyxBQUFPLE1BQVAsUUFBVSxBQUFPLE1BQVAsUUFBVSxHQUFHLEdBQUUsRUFBRTtBQUFJLFdBQU8sRUFBRTtBQUFHLElBQUUsZ0JBQWMsQ0FBQyxHQUFFO0FBQUcsU0FBTztBQUFBO0FBQUUsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUU7QUFBSyxNQUFFLEFBQVMsTUFBVCxTQUFXLE9BQUs7QUFBRSxNQUFJLElBQUUsRUFBRTtBQUFjLE1BQUcsQUFBTyxNQUFQLFFBQVUsQUFBTyxNQUFQLFFBQVUsR0FBRyxHQUFFLEVBQUU7QUFBSSxXQUFPLEVBQUU7QUFBRyxNQUFFO0FBQUksSUFBRSxnQkFBYyxDQUFDLEdBQUU7QUFBRyxTQUFPO0FBQUE7QUFDelosWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUU7QUFBSyxLQUFHLEtBQUcsSUFBRSxLQUFHLEdBQUUsV0FBVTtBQUFDLE1BQUU7QUFBQTtBQUFNLEtBQUcsS0FBRyxJQUFFLEtBQUcsR0FBRSxXQUFVO0FBQUMsUUFBSSxLQUFFLEdBQUc7QUFBVyxPQUFHLGFBQVc7QUFBRSxRQUFHO0FBQUMsUUFBRSxRQUFJO0FBQUEsY0FBSTtBQUFRLFNBQUcsYUFBVztBQUFBO0FBQUE7QUFBQTtBQUM1SixZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLE1BQUssSUFBRSxHQUFHLElBQUcsS0FBRSxFQUFDLE1BQUssR0FBRSxRQUFPLEdBQUUsY0FBYSxNQUFLLFlBQVcsTUFBSyxNQUFLLFFBQU0sS0FBRSxFQUFFO0FBQVEsRUFBTyxPQUFQLE9BQVMsR0FBRSxPQUFLLEtBQUcsSUFBRSxPQUFLLEdBQUUsTUFBSyxHQUFFLE9BQUs7QUFBRyxJQUFFLFVBQVE7QUFBRSxPQUFFLEVBQUU7QUFBVSxNQUFHLE1BQUksS0FBRyxBQUFPLE9BQVAsUUFBVSxPQUFJO0FBQUUsU0FBRyxLQUFHO0FBQUEsT0FBTztBQUFDLFFBQUcsQUFBSSxFQUFFLFVBQU4sS0FBYyxDQUFPLE9BQVAsUUFBVSxBQUFJLEdBQUUsVUFBTixNQUFlLE1BQUUsRUFBRSxxQkFBb0IsQUFBTyxPQUFQO0FBQVUsVUFBRztBQUFDLFlBQUksS0FBRSxFQUFFLG1CQUFrQixJQUFFLEdBQUUsSUFBRTtBQUFHLFdBQUUsZUFBYTtBQUFFLFdBQUUsYUFBVztBQUFFLFlBQUcsR0FBRyxHQUFFO0FBQUc7QUFBQSxlQUFhLElBQU47QUFBQSxnQkFBVTtBQUFBO0FBQVMsT0FBRyxHQUFFLEdBQUU7QUFBQTtBQUFBO0FBQzlaLElBQUksS0FBRyxFQUFDLGFBQVksSUFBRyxhQUFZLElBQUcsWUFBVyxJQUFHLFdBQVUsSUFBRyxxQkFBb0IsSUFBRyxpQkFBZ0IsSUFBRyxTQUFRLElBQUcsWUFBVyxJQUFHLFFBQU8sSUFBRyxVQUFTLElBQUcsZUFBYyxJQUFHLGtCQUFpQixJQUFHLGVBQWMsSUFBRyxrQkFBaUIsSUFBRyxxQkFBb0IsSUFBRywwQkFBeUIsU0FBSSxLQUFHLEVBQUMsYUFBWSxJQUFHLGFBQVksU0FBUyxHQUFFLEdBQUU7QUFBQyxPQUFLLGdCQUFjLENBQUMsR0FBRSxBQUFTLE1BQVQsU0FBVyxPQUFLO0FBQUcsU0FBTztBQUFBLEdBQUcsWUFBVyxJQUFHLFdBQVUsSUFBRyxxQkFBb0IsU0FBUyxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUUsQUFBTyxNQUFQLFFBQVUsQUFBUyxNQUFULFNBQVcsRUFBRSxPQUFPLENBQUMsTUFBSTtBQUFLLFNBQU8sR0FBRyxHQUFFLEdBQUUsR0FBRyxLQUFLLE1BQ3ZmLEdBQUUsSUFBRztBQUFBLEdBQUksaUJBQWdCLFNBQVMsR0FBRSxHQUFFO0FBQUMsU0FBTyxHQUFHLEdBQUUsR0FBRSxHQUFFO0FBQUEsR0FBSSxTQUFRLFNBQVMsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUssTUFBRSxBQUFTLE1BQVQsU0FBVyxPQUFLO0FBQUUsTUFBRTtBQUFJLElBQUUsZ0JBQWMsQ0FBQyxHQUFFO0FBQUcsU0FBTztBQUFBLEdBQUcsWUFBVyxTQUFTLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUssTUFBRSxBQUFTLE1BQVQsU0FBVyxFQUFFLEtBQUc7QUFBRSxJQUFFLGdCQUFjLEVBQUUsWUFBVTtBQUFFLE1BQUUsRUFBRSxRQUFNLEVBQUMsU0FBUSxNQUFLLFVBQVMsTUFBSyxxQkFBb0IsR0FBRSxtQkFBa0I7QUFBRyxNQUFFLEVBQUUsV0FBUyxHQUFHLEtBQUssTUFBSyxHQUFFO0FBQUcsU0FBTSxDQUFDLEVBQUUsZUFBYztBQUFBLEdBQUksUUFBTyxJQUFHLFVBQVMsSUFBRyxlQUFjLElBQUcsa0JBQWlCLFNBQVMsR0FBRTtBQUFDLE1BQUksSUFBRSxHQUFHLElBQUcsSUFBRSxFQUFFLElBQUcsSUFBRSxFQUFFO0FBQUcsS0FBRyxXQUFVO0FBQUMsUUFBSSxLQUFFLEdBQUc7QUFDOWUsT0FBRyxhQUFXO0FBQUUsUUFBRztBQUFDLFFBQUU7QUFBQSxjQUFHO0FBQVEsU0FBRyxhQUFXO0FBQUE7QUFBQSxLQUFJLENBQUM7QUFBSSxTQUFPO0FBQUEsR0FBRyxlQUFjLFdBQVU7QUFBQyxNQUFJLElBQUUsR0FBRyxRQUFJLElBQUUsRUFBRTtBQUFHLE1BQUUsR0FBRyxLQUFLLE1BQUssRUFBRTtBQUFJLEtBQUc7QUFBRyxTQUFNLENBQUMsR0FBRTtBQUFBLEdBQUksa0JBQWlCLFNBQVMsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUU7QUFBSyxJQUFFLGdCQUFjLEVBQUMsTUFBSyxFQUFDLGFBQVksR0FBRSxhQUFZLFFBQU0sUUFBTyxHQUFFLFdBQVU7QUFBRyxTQUFPLEdBQUcsR0FBRSxHQUFFLEdBQUU7QUFBQSxHQUFJLHFCQUFvQixXQUFVO0FBQUMsTUFBRyxJQUFHO0FBQUMsUUFBSSxJQUFFLE9BQUcsSUFBRSxHQUFHLFdBQVU7QUFBQyxXQUFJLEtBQUUsTUFBRyxFQUFFLE9BQU0sT0FBTSxTQUFTO0FBQU0sWUFBTSxNQUFNLEVBQUU7QUFBQSxRQUFTLElBQUUsR0FBRyxHQUFHO0FBQUcsSUFBSyxHQUFFLE9BQUssT0FBWixLQUFpQixHQUFFLFNBQU8sS0FBSSxHQUFHLEdBQUUsV0FBVTtBQUFDLFFBQUUsT0FBTSxPQUFNLFNBQVM7QUFBQSxPQUNoZixRQUFPO0FBQU8sV0FBTztBQUFBO0FBQUUsTUFBRSxPQUFNLE9BQU0sU0FBUztBQUFJLEtBQUc7QUFBRyxTQUFPO0FBQUEsR0FBRywwQkFBeUIsU0FBSSxLQUFHLEVBQUMsYUFBWSxJQUFHLGFBQVksSUFBRyxZQUFXLElBQUcsV0FBVSxJQUFHLHFCQUFvQixJQUFHLGlCQUFnQixJQUFHLFNBQVEsSUFBRyxZQUFXLElBQUcsUUFBTyxJQUFHLFVBQVMsV0FBVTtBQUFDLFNBQU8sR0FBRztBQUFBLEdBQUssZUFBYyxJQUFHLGtCQUFpQixTQUFTLEdBQUU7QUFBQyxNQUFJLElBQUUsR0FBRyxLQUFJLElBQUUsRUFBRSxJQUFHLElBQUUsRUFBRTtBQUFHLEtBQUcsV0FBVTtBQUFDLFFBQUksS0FBRSxHQUFHO0FBQVcsT0FBRyxhQUFXO0FBQUUsUUFBRztBQUFDLFFBQUU7QUFBQSxjQUFHO0FBQVEsU0FBRyxhQUFXO0FBQUE7QUFBQSxLQUFJLENBQUM7QUFBSSxTQUFPO0FBQUEsR0FBRyxlQUFjLFdBQVU7QUFBQyxNQUFJLElBQUUsR0FBRyxJQUFJO0FBQUcsU0FBTTtBQUFBLElBQUMsS0FBSztBQUFBLElBQzllO0FBQUE7QUFBQSxHQUFJLGtCQUFpQixJQUFHLHFCQUFvQixXQUFVO0FBQUMsU0FBTyxHQUFHLElBQUk7QUFBQSxHQUFJLDBCQUF5QixTQUFJLEtBQUcsRUFBQyxhQUFZLElBQUcsYUFBWSxJQUFHLFlBQVcsSUFBRyxXQUFVLElBQUcscUJBQW9CLElBQUcsaUJBQWdCLElBQUcsU0FBUSxJQUFHLFlBQVcsSUFBRyxRQUFPLElBQUcsVUFBUyxXQUFVO0FBQUMsU0FBTyxHQUFHO0FBQUEsR0FBSyxlQUFjLElBQUcsa0JBQWlCLFNBQVMsR0FBRTtBQUFDLE1BQUksSUFBRSxHQUFHLEtBQUksSUFBRSxFQUFFLElBQUcsSUFBRSxFQUFFO0FBQUcsS0FBRyxXQUFVO0FBQUMsUUFBSSxLQUFFLEdBQUc7QUFBVyxPQUFHLGFBQVc7QUFBRSxRQUFHO0FBQUMsUUFBRTtBQUFBLGNBQUc7QUFBUSxTQUFHLGFBQVc7QUFBQTtBQUFBLEtBQUksQ0FBQztBQUFJLFNBQU87QUFBQSxHQUFHLGVBQWMsV0FBVTtBQUFDLE1BQUksSUFBRSxHQUFHLElBQUk7QUFBRyxTQUFNO0FBQUEsSUFBQyxLQUFLO0FBQUEsSUFDcmY7QUFBQTtBQUFBLEdBQUksa0JBQWlCLElBQUcscUJBQW9CLFdBQVU7QUFBQyxTQUFPLEdBQUcsSUFBSTtBQUFBLEdBQUksMEJBQXlCLFNBQUksS0FBRyxHQUFHLG1CQUFrQixLQUFHO0FBQUcsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsSUFBRSxRQUFNLEFBQU8sTUFBUCxPQUFTLEdBQUcsR0FBRSxNQUFLLEdBQUUsS0FBRyxHQUFHLEdBQUUsRUFBRSxPQUFNLEdBQUU7QUFBQTtBQUFHLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQU8sTUFBSSxLQUFFLEVBQUU7QUFBSSxLQUFHLEdBQUU7QUFBRyxNQUFFLEdBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFFO0FBQUcsTUFBRyxBQUFPLE1BQVAsUUFBVSxDQUFDO0FBQUcsV0FBTyxFQUFFLGNBQVksRUFBRSxhQUFZLEVBQUUsU0FBTyxNQUFLLEVBQUUsU0FBTyxDQUFDLEdBQUUsR0FBRyxHQUFFLEdBQUU7QUFBRyxJQUFFLFNBQU87QUFBRSxLQUFHLEdBQUUsR0FBRSxHQUFFO0FBQUcsU0FBTyxFQUFFO0FBQUE7QUFDM1ksWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRTtBQUFDLE1BQUcsQUFBTyxNQUFQLE1BQVM7QUFBQyxRQUFJLEtBQUUsRUFBRTtBQUFLLFFBQUcsQUFBYSxPQUFPLE9BQXBCLGNBQXVCLENBQUMsR0FBRyxPQUFJLEFBQVMsR0FBRSxpQkFBWCxVQUF5QixBQUFPLEVBQUUsWUFBVCxRQUFrQixBQUFTLEVBQUUsaUJBQVg7QUFBd0IsYUFBTyxFQUFFLE1BQUksSUFBRyxFQUFFLE9BQUssSUFBRSxHQUFHLEdBQUUsR0FBRSxJQUFFLEdBQUUsR0FBRTtBQUFHLFFBQUUsR0FBRyxFQUFFLE1BQUssTUFBSyxHQUFFLEdBQUUsRUFBRSxNQUFLO0FBQUcsTUFBRSxNQUFJLEVBQUU7QUFBSSxNQUFFLFNBQU87QUFBRSxXQUFPLEVBQUUsUUFBTTtBQUFBO0FBQUUsT0FBRSxFQUFFO0FBQU0sTUFBRyxBQUFLLEtBQUUsUUFBUCxLQUFZLEtBQUUsR0FBRSxlQUFjLElBQUUsRUFBRSxTQUFRLElBQUUsQUFBTyxNQUFQLE9BQVMsSUFBRSxJQUFHLEVBQUUsR0FBRSxNQUFJLEVBQUUsUUFBTSxFQUFFO0FBQUssV0FBTyxHQUFHLEdBQUUsR0FBRTtBQUFHLElBQUUsU0FBTztBQUFFLE1BQUUsR0FBRyxJQUFFO0FBQUcsSUFBRSxNQUFJLEVBQUU7QUFBSSxJQUFFLFNBQU87QUFBRSxTQUFPLEVBQUUsUUFBTTtBQUFBO0FBQ2xiLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUU7QUFBQyxNQUFHLEFBQU8sTUFBUCxRQUFVLEdBQUcsRUFBRSxlQUFjLE1BQUksRUFBRSxRQUFNLEVBQUU7QUFBSSxRQUFHLEtBQUcsT0FBRyxBQUFLLE1BQUUsT0FBUDtBQUFVLE1BQUssR0FBRSxRQUFNLFdBQWIsS0FBc0IsTUFBRztBQUFBO0FBQVMsYUFBTyxFQUFFLFFBQU0sRUFBRSxPQUFNLEdBQUcsR0FBRSxHQUFFO0FBQUcsU0FBTyxHQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQTtBQUNuTCxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsY0FBYSxJQUFFLEVBQUUsVUFBUyxLQUFFLEFBQU8sTUFBUCxPQUFTLEVBQUUsZ0JBQWM7QUFBSyxNQUFHLEFBQVcsRUFBRSxTQUFiLFlBQW1CLEFBQWtDLEVBQUUsU0FBcEM7QUFBeUMsUUFBRyxBQUFLLEdBQUUsT0FBSyxPQUFaO0FBQWUsUUFBRSxnQkFBYyxFQUFDLFdBQVUsS0FBRyxHQUFHLEdBQUU7QUFBQSxhQUFXLEFBQUssS0FBRSxnQkFBUDtBQUFtQixRQUFFLGdCQUFjLEVBQUMsV0FBVSxLQUFHLEdBQUcsR0FBRSxBQUFPLE9BQVAsT0FBUyxHQUFFLFlBQVU7QUFBQTtBQUFRLGFBQU8sSUFBRSxBQUFPLE9BQVAsT0FBUyxHQUFFLFlBQVUsSUFBRSxHQUFFLEVBQUUsUUFBTSxFQUFFLGFBQVcsWUFBVyxFQUFFLGdCQUFjLEVBQUMsV0FBVSxLQUFHLEdBQUcsR0FBRSxJQUFHO0FBQUE7QUFBVSxJQUFPLE9BQVAsT0FBVSxLQUFFLEdBQUUsWUFBVSxHQUFFLEVBQUUsZ0JBQWMsUUFBTSxJQUFFLEdBQUUsR0FBRyxHQUFFO0FBQUcsS0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFHLFNBQU8sRUFBRTtBQUFBO0FBQzFlLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUU7QUFBSSxNQUFHLEFBQU8sTUFBUCxRQUFVLEFBQU8sTUFBUCxRQUFVLEFBQU8sTUFBUCxRQUFVLEVBQUUsUUFBTTtBQUFFLE1BQUUsU0FBTztBQUFBO0FBQUksWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLEtBQUUsR0FBRyxLQUFHLEtBQUcsRUFBRTtBQUFRLE9BQUUsR0FBRyxHQUFFO0FBQUcsS0FBRyxHQUFFO0FBQUcsTUFBRSxHQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRTtBQUFHLE1BQUcsQUFBTyxNQUFQLFFBQVUsQ0FBQztBQUFHLFdBQU8sRUFBRSxjQUFZLEVBQUUsYUFBWSxFQUFFLFNBQU8sTUFBSyxFQUFFLFNBQU8sQ0FBQyxHQUFFLEdBQUcsR0FBRSxHQUFFO0FBQUcsSUFBRSxTQUFPO0FBQUUsS0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFHLFNBQU8sRUFBRTtBQUFBO0FBQ2pTLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBRyxHQUFHLElBQUc7QUFBQyxRQUFJLEtBQUU7QUFBRyxPQUFHO0FBQUE7QUFBUSxTQUFFO0FBQUcsS0FBRyxHQUFFO0FBQUcsTUFBRyxBQUFPLEVBQUUsY0FBVDtBQUFtQixJQUFPLE1BQVAsUUFBVyxHQUFFLFlBQVUsTUFBSyxFQUFFLFlBQVUsTUFBSyxFQUFFLFNBQU8sSUFBRyxHQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFFO0FBQUEsV0FBVyxBQUFPLE1BQVAsTUFBUztBQUFDLFFBQUksS0FBRSxFQUFFLFdBQVUsS0FBRSxFQUFFO0FBQWMsT0FBRSxRQUFNO0FBQUUsUUFBSSxJQUFFLEdBQUUsU0FBUSxLQUFFLEVBQUU7QUFBWSxJQUFXLE9BQU8sT0FBbEIsWUFBcUIsQUFBTyxPQUFQLE9BQVMsS0FBRSxHQUFHLE1BQUksTUFBRSxHQUFHLEtBQUcsS0FBRyxFQUFFLFNBQVEsS0FBRSxHQUFHLEdBQUU7QUFBSSxRQUFJLEtBQUUsRUFBRSwwQkFBeUIsS0FBRSxBQUFhLE9BQU8sT0FBcEIsY0FBdUIsQUFBYSxPQUFPLEdBQUUsNEJBQXRCO0FBQThDLFVBQUcsQUFBYSxPQUFPLEdBQUUscUNBQXRCLGNBQzliLEFBQWEsT0FBTyxHQUFFLDhCQUF0QixjQUFrRCxRQUFJLEtBQUcsTUFBSSxPQUFJLEdBQUcsR0FBRSxJQUFFLEdBQUU7QUFBRyxTQUFHO0FBQUcsUUFBSSxLQUFFLEVBQUU7QUFBYyxPQUFFLFFBQU07QUFBRSxPQUFHLEdBQUUsR0FBRSxJQUFFO0FBQUcsUUFBRSxFQUFFO0FBQWMsV0FBSSxLQUFHLE9BQUksS0FBRyxFQUFFLFdBQVMsS0FBSSxDQUFhLE9BQU8sT0FBcEIsY0FBd0IsSUFBRyxHQUFFLEdBQUUsSUFBRSxJQUFHLElBQUUsRUFBRSxnQkFBZ0IsTUFBRSxNQUFJLEdBQUcsR0FBRSxHQUFFLElBQUUsR0FBRSxJQUFFLEdBQUUsT0FBSyxPQUFHLEFBQWEsT0FBTyxHQUFFLDhCQUF0QixjQUFpRCxBQUFhLE9BQU8sR0FBRSx1QkFBdEIsY0FBMkMsQ0FBYSxPQUFPLEdBQUUsdUJBQXRCLGNBQTBDLEdBQUUsc0JBQXFCLEFBQWEsT0FBTyxHQUFFLDhCQUF0QixjQUFpRCxHQUFFLDhCQUE2QixBQUNoZixPQUFPLEdBQUUsc0JBRHVlLGNBQ25kLEdBQUUsU0FBTyxNQUFLLENBQWEsT0FBTyxHQUFFLHNCQUF0QixjQUEwQyxHQUFFLFNBQU8sSUFBRyxFQUFFLGdCQUFjLEdBQUUsRUFBRSxnQkFBYyxJQUFHLEdBQUUsUUFBTSxHQUFFLEdBQUUsUUFBTSxHQUFFLEdBQUUsVUFBUSxJQUFFLElBQUUsTUFBSSxDQUFhLE9BQU8sR0FBRSxzQkFBdEIsY0FBMEMsR0FBRSxTQUFPLElBQUcsSUFBRTtBQUFBLFNBQVE7QUFBQyxTQUFFLEVBQUU7QUFBVSxPQUFHLEdBQUU7QUFBRyxTQUFFLEVBQUU7QUFBYyxTQUFFLEVBQUUsU0FBTyxFQUFFLGNBQVksS0FBRSxHQUFHLEVBQUUsTUFBSztBQUFHLE9BQUUsUUFBTTtBQUFFLFNBQUUsRUFBRTtBQUFhLFNBQUUsR0FBRTtBQUFRLFFBQUUsRUFBRTtBQUFZLElBQVcsT0FBTyxNQUFsQixZQUFxQixBQUFPLE1BQVAsT0FBUyxJQUFFLEdBQUcsS0FBSSxLQUFFLEdBQUcsS0FBRyxLQUFHLEVBQUUsU0FBUSxJQUFFLEdBQUcsR0FBRTtBQUFJLFFBQUksS0FBRSxFQUFFO0FBQXlCLElBQUMsTUFBRSxBQUFhLE9BQU8sT0FBcEIsY0FDL2QsQUFBYSxPQUFPLEdBQUUsNEJBQXRCLGVBQWdELEFBQWEsT0FBTyxHQUFFLHFDQUF0QixjQUF3RCxBQUFhLE9BQU8sR0FBRSw4QkFBdEIsY0FBa0QsUUFBSSxNQUFHLE9BQUksTUFBSSxHQUFHLEdBQUUsSUFBRSxHQUFFO0FBQUcsU0FBRztBQUFHLFNBQUUsRUFBRTtBQUFjLE9BQUUsUUFBTTtBQUFFLE9BQUcsR0FBRSxHQUFFLElBQUU7QUFBRyxRQUFJLEtBQUUsRUFBRTtBQUFjLFdBQUksTUFBRyxPQUFJLE1BQUcsRUFBRSxXQUFTLEtBQUksQ0FBYSxPQUFPLE9BQXBCLGNBQXdCLElBQUcsR0FBRSxHQUFFLElBQUUsSUFBRyxLQUFFLEVBQUUsZ0JBQWdCLE1BQUUsTUFBSSxHQUFHLEdBQUUsR0FBRSxJQUFFLEdBQUUsSUFBRSxJQUFFLE1BQUssT0FBRyxBQUFhLE9BQU8sR0FBRSwrQkFBdEIsY0FBa0QsQUFBYSxPQUFPLEdBQUUsd0JBQXRCLGNBQTRDLENBQWEsT0FBTyxHQUFFLHdCQUF0QixjQUEyQyxHQUFFLG9CQUFvQixHQUMxZ0IsSUFBRSxJQUFHLEFBQWEsT0FBTyxHQUFFLCtCQUF0QixjQUFrRCxHQUFFLDJCQUEyQixHQUFFLElBQUUsS0FBSSxBQUFhLE9BQU8sR0FBRSx1QkFBdEIsY0FBMkMsR0FBRSxTQUFPLElBQUcsQUFBYSxPQUFPLEdBQUUsNEJBQXRCLGNBQWdELEdBQUUsU0FBTyxRQUFPLENBQWEsT0FBTyxHQUFFLHVCQUF0QixjQUEwQyxPQUFJLEVBQUUsaUJBQWUsT0FBSSxFQUFFLGlCQUFnQixHQUFFLFNBQU8sSUFBRyxBQUFhLE9BQU8sR0FBRSw0QkFBdEIsY0FBK0MsT0FBSSxFQUFFLGlCQUFlLE9BQUksRUFBRSxpQkFBZ0IsR0FBRSxTQUFPLE1BQUssRUFBRSxnQkFBYyxHQUFFLEVBQUUsZ0JBQWMsS0FBRyxHQUFFLFFBQU0sR0FBRSxHQUFFLFFBQU0sSUFBRSxHQUFFLFVBQVEsR0FBRSxJQUFFLE1BQUksQ0FBYSxPQUFPLEdBQUUsdUJBQXRCLGNBQ3ZlLE9BQUksRUFBRSxpQkFBZSxPQUFJLEVBQUUsaUJBQWdCLEdBQUUsU0FBTyxJQUFHLEFBQWEsT0FBTyxHQUFFLDRCQUF0QixjQUErQyxPQUFJLEVBQUUsaUJBQWUsT0FBSSxFQUFFLGlCQUFnQixHQUFFLFNBQU8sTUFBSyxJQUFFO0FBQUE7QUFBSSxTQUFPLEdBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFFO0FBQUE7QUFDekwsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRTtBQUFDLEtBQUcsR0FBRTtBQUFHLE1BQUksS0FBRSxBQUFLLEdBQUUsUUFBTSxRQUFiO0FBQWlCLE1BQUcsQ0FBQyxLQUFHLENBQUM7QUFBRSxXQUFPLEtBQUcsR0FBRyxHQUFFLEdBQUUsUUFBSSxHQUFHLEdBQUUsR0FBRTtBQUFHLE1BQUUsRUFBRTtBQUFVLEtBQUcsVUFBUTtBQUFFLE1BQUksS0FBRSxNQUFHLEFBQWEsT0FBTyxFQUFFLDZCQUF0QixhQUErQyxPQUFLLEVBQUU7QUFBUyxJQUFFLFNBQU87QUFBRSxFQUFPLE1BQVAsUUFBVSxLQUFHLEdBQUUsUUFBTSxHQUFHLEdBQUUsRUFBRSxPQUFNLE1BQUssS0FBRyxFQUFFLFFBQU0sR0FBRyxHQUFFLE1BQUssSUFBRSxPQUFJLEdBQUcsR0FBRSxHQUFFLElBQUU7QUFBRyxJQUFFLGdCQUFjLEVBQUU7QUFBTSxPQUFHLEdBQUcsR0FBRSxHQUFFO0FBQUksU0FBTyxFQUFFO0FBQUE7QUFBTSxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFVLElBQUUsaUJBQWUsR0FBRyxHQUFFLEVBQUUsZ0JBQWUsRUFBRSxtQkFBaUIsRUFBRSxXQUFTLEVBQUUsV0FBUyxHQUFHLEdBQUUsRUFBRSxTQUFRO0FBQUksS0FBRyxHQUFFLEVBQUU7QUFBQTtBQUM3ZCxJQUFJLEtBQUcsRUFBQyxZQUFXLE1BQUssV0FBVTtBQUNsQyxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsY0FBYSxJQUFFLEVBQUUsU0FBUSxLQUFFLE9BQUc7QUFBRSxFQUFDLE1BQUUsQUFBSyxHQUFFLFFBQU0sUUFBYixNQUFvQixNQUFFLEFBQU8sTUFBUCxRQUFVLEFBQU8sRUFBRSxrQkFBVCxPQUF1QixRQUFHLEFBQUssS0FBRSxPQUFQO0FBQVcsT0FBRyxNQUFFLE1BQUcsRUFBRSxTQUFPLE9BQUssQUFBTyxNQUFQLFFBQVUsQUFBTyxFQUFFLGtCQUFULFFBQXdCLEFBQVMsRUFBRSxhQUFYLFVBQXFCLEFBQUssRUFBRSwrQkFBUCxRQUFvQyxNQUFHO0FBQUcsSUFBRSxHQUFFLElBQUU7QUFBRyxNQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsSUFBUyxFQUFFLGFBQVgsVUFBcUIsR0FBRztBQUFHLFFBQUUsRUFBRTtBQUFTLFFBQUUsRUFBRTtBQUFTLFFBQUc7QUFBRSxhQUFPLElBQUUsR0FBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEVBQUUsTUFBTSxnQkFBYyxFQUFDLFdBQVUsS0FBRyxFQUFFLGdCQUFjLElBQUc7QUFBRSxRQUFHLEFBQVcsT0FBTyxFQUFFLDhCQUFwQjtBQUE4QyxhQUFPLElBQUUsR0FBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEVBQUUsTUFBTSxnQkFBYyxFQUFDLFdBQVUsS0FDL2YsRUFBRSxnQkFBYyxJQUFHLEVBQUUsUUFBTSxVQUFTO0FBQUUsUUFBRSxHQUFHLEVBQUMsTUFBSyxXQUFVLFVBQVMsS0FBRyxFQUFFLE1BQUssR0FBRTtBQUFNLE1BQUUsU0FBTztBQUFFLFdBQU8sRUFBRSxRQUFNO0FBQUE7QUFBRSxNQUFHLEFBQU8sRUFBRSxrQkFBVCxNQUF1QjtBQUFDLFFBQUc7QUFBRSxhQUFPLElBQUUsR0FBRyxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsVUFBUyxJQUFHLEtBQUUsRUFBRSxPQUFNLElBQUUsRUFBRSxNQUFNLGVBQWMsR0FBRSxnQkFBYyxBQUFPLE1BQVAsT0FBUyxFQUFDLFdBQVUsTUFBRyxFQUFDLFdBQVUsRUFBRSxZQUFVLEtBQUcsR0FBRSxhQUFXLEVBQUUsYUFBVyxDQUFDLEdBQUUsRUFBRSxnQkFBYyxJQUFHO0FBQUUsUUFBRSxHQUFHLEdBQUUsR0FBRSxFQUFFLFVBQVM7QUFBRyxNQUFFLGdCQUFjO0FBQUssV0FBTztBQUFBO0FBQUUsTUFBRztBQUFFLFdBQU8sSUFBRSxHQUFHLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxVQUFTLElBQUcsS0FBRSxFQUFFLE9BQU0sSUFBRSxFQUFFLE1BQU0sZUFBYyxHQUFFLGdCQUFjLEFBQU8sTUFBUCxPQUFTLEVBQUMsV0FBVSxNQUN6ZixFQUFDLFdBQVUsRUFBRSxZQUFVLEtBQUcsR0FBRSxhQUFXLEVBQUUsYUFBVyxDQUFDLEdBQUUsRUFBRSxnQkFBYyxJQUFHO0FBQUUsTUFBRSxHQUFHLEdBQUUsR0FBRSxFQUFFLFVBQVM7QUFBRyxJQUFFLGdCQUFjO0FBQUssU0FBTztBQUFBO0FBQUUsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsTUFBSyxLQUFFLEVBQUU7QUFBTSxNQUFFLEVBQUMsTUFBSyxVQUFTLFVBQVM7QUFBRyxFQUFLLEtBQUUsT0FBUCxLQUFXLEFBQU8sT0FBUCxPQUFVLElBQUUsYUFBVyxHQUFFLEdBQUUsZUFBYSxLQUFHLEtBQUUsR0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFNLE1BQUUsR0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFNLEtBQUUsU0FBTztBQUFFLElBQUUsU0FBTztBQUFFLEtBQUUsVUFBUTtBQUFFLElBQUUsUUFBTTtBQUFFLFNBQU87QUFBQTtBQUNyVixZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFNLE1BQUUsRUFBRTtBQUFRLE1BQUUsR0FBRyxHQUFFLEVBQUMsTUFBSyxXQUFVLFVBQVM7QUFBSSxFQUFLLEdBQUUsT0FBSyxPQUFaLEtBQWlCLEdBQUUsUUFBTTtBQUFHLElBQUUsU0FBTztBQUFFLElBQUUsVUFBUTtBQUFLLEVBQU8sTUFBUCxRQUFXLEdBQUUsYUFBVyxNQUFLLEVBQUUsUUFBTSxHQUFFLEVBQUUsY0FBWSxFQUFFLGFBQVc7QUFBRyxTQUFPLEVBQUUsUUFBTTtBQUFBO0FBQzdOLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxLQUFFLEVBQUUsTUFBSyxLQUFFLEVBQUU7QUFBTSxNQUFFLEdBQUU7QUFBUSxNQUFJLEtBQUUsRUFBQyxNQUFLLFVBQVMsVUFBUztBQUFHLEVBQUssTUFBRSxPQUFQLEtBQVcsRUFBRSxVQUFRLEtBQUcsS0FBRSxFQUFFLE9BQU0sRUFBRSxhQUFXLEdBQUUsRUFBRSxlQUFhLElBQUUsS0FBRSxFQUFFLFlBQVcsQUFBTyxPQUFQLE9BQVUsR0FBRSxjQUFZLEVBQUUsYUFBWSxFQUFFLGFBQVcsSUFBRSxHQUFFLGFBQVcsUUFBTSxFQUFFLGNBQVksRUFBRSxhQUFXLFFBQU0sSUFBRSxHQUFHLElBQUU7QUFBRyxFQUFPLE1BQVAsT0FBUyxJQUFFLEdBQUcsR0FBRSxLQUFJLEtBQUUsR0FBRyxHQUFFLElBQUUsR0FBRSxPQUFNLEVBQUUsU0FBTztBQUFHLElBQUUsU0FBTztBQUFFLElBQUUsU0FBTztBQUFFLElBQUUsVUFBUTtBQUFFLElBQUUsUUFBTTtBQUFFLFNBQU87QUFBQTtBQUFFLFlBQVksR0FBRSxHQUFFO0FBQUMsSUFBRSxTQUFPO0FBQUUsTUFBSSxJQUFFLEVBQUU7QUFBVSxFQUFPLE1BQVAsUUFBVyxHQUFFLFNBQU87QUFBRyxLQUFHLEVBQUUsUUFBTztBQUFBO0FBQ3RkLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUU7QUFBQyxNQUFJLEtBQUUsRUFBRTtBQUFjLEVBQU8sT0FBUCxPQUFTLEVBQUUsZ0JBQWMsRUFBQyxhQUFZLEdBQUUsV0FBVSxNQUFLLG9CQUFtQixHQUFFLE1BQUssR0FBRSxNQUFLLEdBQUUsVUFBUyxHQUFFLFlBQVcsT0FBSSxJQUFFLGNBQVksR0FBRSxHQUFFLFlBQVUsTUFBSyxHQUFFLHFCQUFtQixHQUFFLEdBQUUsT0FBSyxHQUFFLEdBQUUsT0FBSyxHQUFFLEdBQUUsV0FBUyxHQUFFLEdBQUUsYUFBVztBQUFBO0FBQ3ZRLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRSxjQUFhLElBQUUsRUFBRSxhQUFZLEtBQUUsRUFBRTtBQUFLLEtBQUcsR0FBRSxHQUFFLEVBQUUsVUFBUztBQUFHLE1BQUUsRUFBRTtBQUFRLE1BQUcsQUFBSyxLQUFFLE9BQVA7QUFBVSxRQUFFLElBQUUsSUFBRSxHQUFFLEVBQUUsU0FBTztBQUFBLE9BQU87QUFBQyxRQUFHLEFBQU8sTUFBUCxRQUFVLEFBQUssR0FBRSxRQUFNLFFBQWI7QUFBaUI7QUFBRSxhQUFJLElBQUUsRUFBRSxPQUFNLEFBQU8sTUFBUCxRQUFVO0FBQUMsY0FBRyxBQUFLLEVBQUUsUUFBUDtBQUFXLFlBQU8sRUFBRSxrQkFBVCxRQUF3QixHQUFHLEdBQUU7QUFBQSxtQkFBVyxBQUFLLEVBQUUsUUFBUDtBQUFXLGVBQUcsR0FBRTtBQUFBLG1CQUFXLEFBQU8sRUFBRSxVQUFULE1BQWU7QUFBQyxjQUFFLE1BQU0sU0FBTztBQUFFLGdCQUFFLEVBQUU7QUFBTTtBQUFBO0FBQVMsY0FBRyxNQUFJO0FBQUU7QUFBUSxpQkFBSyxBQUFPLEVBQUUsWUFBVCxRQUFrQjtBQUFDLGdCQUFHLEFBQU8sRUFBRSxXQUFULFFBQWlCLEVBQUUsV0FBUztBQUFFO0FBQVEsZ0JBQUUsRUFBRTtBQUFBO0FBQU8sWUFBRSxRQUFRLFNBQU8sRUFBRTtBQUFPLGNBQUUsRUFBRTtBQUFBO0FBQVEsU0FBRztBQUFBO0FBQUUsSUFBRSxHQUFFO0FBQUcsTUFBRyxBQUFLLEdBQUUsT0FBSyxPQUFaO0FBQWUsTUFBRSxnQkFDemU7QUFBQTtBQUFVLFlBQU87QUFBQSxXQUFRO0FBQVcsWUFBRSxFQUFFO0FBQU0sYUFBSSxJQUFFLE1BQUssQUFBTyxNQUFQO0FBQVUsY0FBRSxFQUFFLFdBQVUsQUFBTyxNQUFQLFFBQVUsQUFBTyxHQUFHLE9BQVYsUUFBZSxLQUFFLElBQUcsSUFBRSxFQUFFO0FBQVEsWUFBRTtBQUFFLFFBQU8sTUFBUCxPQUFVLEtBQUUsRUFBRSxPQUFNLEVBQUUsUUFBTSxRQUFPLEtBQUUsRUFBRSxTQUFRLEVBQUUsVUFBUTtBQUFNLFdBQUcsR0FBRSxPQUFHLEdBQUUsR0FBRSxJQUFFLEVBQUU7QUFBWTtBQUFBLFdBQVc7QUFBWSxZQUFFO0FBQUssWUFBRSxFQUFFO0FBQU0sYUFBSSxFQUFFLFFBQU0sTUFBSyxBQUFPLE1BQVAsUUFBVTtBQUFDLGNBQUUsRUFBRTtBQUFVLGNBQUcsQUFBTyxNQUFQLFFBQVUsQUFBTyxHQUFHLE9BQVYsTUFBYTtBQUFDLGNBQUUsUUFBTTtBQUFFO0FBQUE7QUFBTSxjQUFFLEVBQUU7QUFBUSxZQUFFLFVBQVE7QUFBRSxjQUFFO0FBQUUsY0FBRTtBQUFBO0FBQUUsV0FBRyxHQUFFLE1BQUcsR0FBRSxNQUFLLElBQUUsRUFBRTtBQUFZO0FBQUEsV0FBVztBQUFXLFdBQUcsR0FBRSxPQUFHLE1BQUssTUFBSyxRQUFPLEVBQUU7QUFBWTtBQUFBO0FBQWMsVUFBRSxnQkFBYztBQUFBO0FBQUssU0FBTyxFQUFFO0FBQUE7QUFDL2YsWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLEVBQU8sTUFBUCxRQUFXLEdBQUUsZUFBYSxFQUFFO0FBQWMsUUFBSSxFQUFFO0FBQU0sTUFBRyxBQUFLLEtBQUUsRUFBRSxnQkFBVCxHQUFxQjtBQUFDLFFBQUcsQUFBTyxNQUFQLFFBQVUsRUFBRSxVQUFRLEVBQUU7QUFBTSxZQUFNLE1BQU0sRUFBRTtBQUFNLFFBQUcsQUFBTyxFQUFFLFVBQVQsTUFBZTtBQUFDLFVBQUUsRUFBRTtBQUFNLFVBQUUsR0FBRyxHQUFFLEVBQUU7QUFBYyxRQUFFLFFBQU07QUFBRSxXQUFJLEVBQUUsU0FBTyxHQUFFLEFBQU8sRUFBRSxZQUFUO0FBQWtCLFlBQUUsRUFBRSxTQUFRLElBQUUsRUFBRSxVQUFRLEdBQUcsR0FBRSxFQUFFLGVBQWMsRUFBRSxTQUFPO0FBQUUsUUFBRSxVQUFRO0FBQUE7QUFBSyxXQUFPLEVBQUU7QUFBQTtBQUFNLFNBQU87QUFBQTtBQUFLLElBQUksSUFBRyxJQUFHLElBQUc7QUFDblcsS0FBRyxTQUFTLEdBQUUsR0FBRTtBQUFDLFdBQVEsSUFBRSxFQUFFLE9BQU0sQUFBTyxNQUFQLFFBQVU7QUFBQyxRQUFHLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBSSxFQUFFLFFBQU47QUFBVSxRQUFFLFlBQVksRUFBRTtBQUFBLGFBQW1CLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBTyxFQUFFLFVBQVQsTUFBZTtBQUFDLFFBQUUsTUFBTSxTQUFPO0FBQUUsVUFBRSxFQUFFO0FBQU07QUFBQTtBQUFTLFFBQUcsTUFBSTtBQUFFO0FBQU0sV0FBSyxBQUFPLEVBQUUsWUFBVCxRQUFrQjtBQUFDLFVBQUcsQUFBTyxFQUFFLFdBQVQsUUFBaUIsRUFBRSxXQUFTO0FBQUU7QUFBTyxVQUFFLEVBQUU7QUFBQTtBQUFPLE1BQUUsUUFBUSxTQUFPLEVBQUU7QUFBTyxRQUFFLEVBQUU7QUFBQTtBQUFBO0FBQVUsS0FBRyxXQUFVO0FBQUE7QUFDdlQsS0FBRyxTQUFTLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFjLE1BQUcsTUFBSSxHQUFFO0FBQUMsUUFBRSxFQUFFO0FBQVUsT0FBRyxHQUFHO0FBQVMsUUFBSSxLQUFFO0FBQUssWUFBTztBQUFBLFdBQVE7QUFBUSxZQUFFLEdBQUcsR0FBRTtBQUFHLFlBQUUsR0FBRyxHQUFFO0FBQUcsYUFBRTtBQUFHO0FBQUEsV0FBVztBQUFTLFlBQUUsR0FBRyxHQUFFO0FBQUcsWUFBRSxHQUFHLEdBQUU7QUFBRyxhQUFFO0FBQUc7QUFBQSxXQUFXO0FBQVMsWUFBRUEsSUFBRSxJQUFHLEdBQUUsRUFBQyxPQUFNO0FBQVMsWUFBRUEsSUFBRSxJQUFHLEdBQUUsRUFBQyxPQUFNO0FBQVMsYUFBRTtBQUFHO0FBQUEsV0FBVztBQUFXLFlBQUUsR0FBRyxHQUFFO0FBQUcsWUFBRSxHQUFHLEdBQUU7QUFBRyxhQUFFO0FBQUc7QUFBQTtBQUFjLFFBQWEsT0FBTyxFQUFFLFlBQXRCLGNBQStCLEFBQWEsT0FBTyxFQUFFLFlBQXRCLGNBQWdDLEdBQUUsVUFBUTtBQUFBO0FBQUksT0FBRyxHQUFFO0FBQUcsUUFBSTtBQUFFLFFBQUU7QUFBSyxTQUFJLE1BQUs7QUFBRSxVQUFHLENBQUMsRUFBRSxlQUFlLE9BQUksRUFBRSxlQUFlLE9BQUksQUFBTSxFQUFFLE9BQVI7QUFBVyxZQUFHLEFBQzNlLE9BRDJlLFNBQ3plO0FBQUMsY0FBSSxLQUFFLEVBQUU7QUFBRyxlQUFJLE1BQUs7QUFBRSxlQUFFLGVBQWUsT0FBSyxNQUFJLEtBQUUsS0FBSSxFQUFFLE1BQUc7QUFBQTtBQUFRLFVBQTRCLE9BQTVCLDZCQUErQixBQUFhLE9BQWIsY0FBZ0IsQUFBbUMsT0FBbkMsb0NBQXNDLEFBQTZCLE9BQTdCLDhCQUFnQyxBQUFjLE9BQWQsZUFBa0IsSUFBRyxlQUFlLE1BQUcsTUFBSSxNQUFFLE1BQUssTUFBRSxNQUFHLElBQUksS0FBSyxJQUFFO0FBQU8sU0FBSSxNQUFLLEdBQUU7QUFBQyxVQUFJLElBQUUsRUFBRTtBQUFHLFdBQUUsQUFBTSxLQUFOLE9BQVEsRUFBRSxNQUFHO0FBQU8sVUFBRyxFQUFFLGVBQWUsT0FBSSxNQUFJLE1BQUksQ0FBTSxLQUFOLFFBQVMsQUFBTSxNQUFOO0FBQVMsWUFBRyxBQUFVLE9BQVY7QUFBWSxjQUFHLElBQUU7QUFBQyxpQkFBSSxNQUFLO0FBQUUsZUFBQyxHQUFFLGVBQWUsT0FBSSxLQUFHLEVBQUUsZUFBZSxPQUFLLE1BQUksS0FBRSxLQUFJLEVBQUUsTUFBRztBQUFJLGlCQUFJLE1BQUs7QUFBRSxnQkFBRSxlQUFlLE9BQUksR0FBRSxRQUFLLEVBQUUsT0FBSyxNQUNsZixLQUFFLEtBQUksRUFBRSxNQUFHLEVBQUU7QUFBQTtBQUFTLGlCQUFJLE9BQUksTUFBRSxLQUFJLEdBQUUsS0FBSyxJQUFFLEtBQUksSUFBRTtBQUFBO0FBQU0sVUFBNEIsT0FBNUIsNEJBQStCLEtBQUUsSUFBRSxFQUFFLFNBQU8sUUFBTyxLQUFFLEtBQUUsR0FBRSxTQUFPLFFBQU8sQUFBTSxLQUFOLFFBQVMsT0FBSSxLQUFJLE1BQUUsTUFBRyxJQUFJLEtBQUssSUFBRSxNQUFJLEFBQWEsT0FBYixhQUFlLEFBQVcsT0FBTyxNQUFsQixZQUFxQixBQUFXLE9BQU8sTUFBbEIsWUFBc0IsTUFBRSxNQUFHLElBQUksS0FBSyxJQUFFLEtBQUcsS0FBRyxBQUFtQyxPQUFuQyxvQ0FBc0MsQUFBNkIsT0FBN0IsOEJBQWlDLElBQUcsZUFBZSxNQUFJLENBQU0sS0FBTixRQUFTLEFBQWEsT0FBYixjQUFnQixFQUFFLFVBQVMsSUFBRyxNQUFHLE9BQUksS0FBSSxNQUFFLE9BQUssQUFBVyxPQUFPLE1BQWxCLFlBQXFCLEFBQU8sTUFBUCxRQUFVLEVBQUUsYUFBVyxLQUFHLEVBQUUsYUFBWSxNQUFFLE1BQUcsSUFBSSxLQUFLLElBQUU7QUFBQTtBQUFJLFNBQUksTUFBRSxNQUFHLElBQUksS0FBSyxTQUMvZTtBQUFHLFFBQUksS0FBRTtBQUFFLFFBQUcsRUFBRSxjQUFZO0FBQUUsUUFBRSxTQUFPO0FBQUE7QUFBQTtBQUFJLEtBQUcsU0FBUyxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUMsUUFBSSxLQUFJLEdBQUUsU0FBTztBQUFBO0FBQUksWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFHLENBQUM7QUFBRyxZQUFPLEVBQUU7QUFBQSxXQUFlO0FBQVMsWUFBRSxFQUFFO0FBQUssaUJBQVEsSUFBRSxNQUFLLEFBQU8sTUFBUDtBQUFVLFVBQU8sRUFBRSxjQUFULFFBQXFCLEtBQUUsSUFBRyxJQUFFLEVBQUU7QUFBUSxRQUFPLE1BQVAsT0FBUyxFQUFFLE9BQUssT0FBSyxFQUFFLFVBQVE7QUFBSztBQUFBLFdBQVc7QUFBWSxZQUFFLEVBQUU7QUFBSyxpQkFBUSxJQUFFLE1BQUssQUFBTyxNQUFQO0FBQVUsVUFBTyxFQUFFLGNBQVQsUUFBcUIsS0FBRSxJQUFHLElBQUUsRUFBRTtBQUFRLFFBQU8sTUFBUCxPQUFTLEtBQUcsQUFBTyxFQUFFLFNBQVQsT0FBYyxFQUFFLE9BQUssT0FBSyxFQUFFLEtBQUssVUFBUSxPQUFLLEVBQUUsVUFBUTtBQUFBO0FBQUE7QUFDN1osWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFO0FBQWEsVUFBTyxFQUFFO0FBQUEsU0FBVTtBQUFBLFNBQU87QUFBQSxTQUFRO0FBQUEsU0FBUTtBQUFBLFNBQU87QUFBQSxTQUFRO0FBQUEsU0FBTztBQUFBLFNBQU87QUFBQSxTQUFRO0FBQUEsU0FBTztBQUFHLGFBQU87QUFBQSxTQUFVO0FBQUUsYUFBTyxHQUFHLEVBQUUsU0FBTyxNQUFLO0FBQUEsU0FBVTtBQUFFO0FBQUssUUFBRTtBQUFHLFFBQUU7QUFBRztBQUFLLFVBQUUsRUFBRTtBQUFVLFFBQUUsa0JBQWlCLEdBQUUsVUFBUSxFQUFFLGdCQUFlLEVBQUUsaUJBQWU7QUFBTSxVQUFHLEFBQU8sTUFBUCxRQUFVLEFBQU8sRUFBRSxVQUFUO0FBQWUsV0FBRyxLQUFHLEVBQUUsU0FBTyxJQUFFLEVBQUUsV0FBVSxHQUFFLFNBQU87QUFBSyxTQUFHO0FBQUcsYUFBTztBQUFBLFNBQVU7QUFBRSxTQUFHO0FBQUcsVUFBSSxJQUFFLEdBQUcsR0FBRztBQUFTLFVBQUUsRUFBRTtBQUFLLFVBQUcsQUFBTyxNQUFQLFFBQVUsQUFBTSxFQUFFLGFBQVI7QUFBa0IsV0FBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsRUFBRSxRQUFNLEVBQUUsT0FBTSxHQUFFLFNBQU87QUFBQSxXQUFTO0FBQUMsWUFBRyxDQUFDLEdBQUU7QUFBQyxjQUFHLEFBQzdmLEVBQUUsY0FEMmY7QUFDamYsa0JBQU0sTUFBTSxFQUFFO0FBQU0saUJBQU87QUFBQTtBQUFLLFlBQUUsR0FBRyxHQUFHO0FBQVMsWUFBRyxHQUFHLElBQUc7QUFBQyxjQUFFLEVBQUU7QUFBVSxjQUFFLEVBQUU7QUFBSyxjQUFJLEtBQUUsRUFBRTtBQUFjLFlBQUUsTUFBSTtBQUFFLFlBQUUsTUFBSTtBQUFFLGtCQUFPO0FBQUEsaUJBQVE7QUFBUyxnQkFBRSxVQUFTO0FBQUcsZ0JBQUUsU0FBUTtBQUFHO0FBQUEsaUJBQVc7QUFBQSxpQkFBYztBQUFBLGlCQUFjO0FBQVEsZ0JBQUUsUUFBTztBQUFHO0FBQUEsaUJBQVc7QUFBQSxpQkFBYTtBQUFRLG1CQUFJLElBQUUsR0FBRSxJQUFFLEdBQUcsUUFBTztBQUFJLGtCQUFFLEdBQUcsSUFBRztBQUFHO0FBQUEsaUJBQVc7QUFBUyxnQkFBRSxTQUFRO0FBQUc7QUFBQSxpQkFBVztBQUFBLGlCQUFXO0FBQUEsaUJBQWE7QUFBTyxnQkFBRSxTQUFRO0FBQUcsZ0JBQUUsUUFBTztBQUFHO0FBQUEsaUJBQVc7QUFBVSxnQkFBRSxVQUFTO0FBQUc7QUFBQSxpQkFBVztBQUFRLGlCQUFHLEdBQUU7QUFBRyxnQkFBRSxXQUFVO0FBQUc7QUFBQSxpQkFBVztBQUFTLGdCQUFFLGdCQUM1ZixFQUFDLGFBQVksQ0FBQyxDQUFDLEdBQUU7QUFBVSxnQkFBRSxXQUFVO0FBQUc7QUFBQSxpQkFBVztBQUFXLGlCQUFHLEdBQUUsS0FBRyxFQUFFLFdBQVU7QUFBQTtBQUFHLGFBQUcsR0FBRTtBQUFHLGNBQUU7QUFBSyxtQkFBUSxNQUFLO0FBQUUsZUFBRSxlQUFlLE9BQUssS0FBRSxHQUFFLEtBQUcsQUFBYSxPQUFiLGFBQWUsQUFBVyxPQUFPLE1BQWxCLFdBQW9CLEVBQUUsZ0JBQWMsS0FBSSxLQUFFLENBQUMsWUFBVyxNQUFJLEFBQVcsT0FBTyxNQUFsQixZQUFxQixFQUFFLGdCQUFjLEtBQUcsS0FBSSxLQUFFLENBQUMsWUFBVyxLQUFHLE1BQUksR0FBRyxlQUFlLE9BQUksQUFBTSxLQUFOLFFBQVMsQUFBYSxPQUFiLGNBQWdCLEVBQUUsVUFBUztBQUFJLGtCQUFPO0FBQUEsaUJBQVE7QUFBUSxpQkFBRztBQUFHLGlCQUFHLEdBQUUsSUFBRTtBQUFJO0FBQUEsaUJBQVc7QUFBVyxpQkFBRztBQUFHLGlCQUFHO0FBQUc7QUFBQSxpQkFBVztBQUFBLGlCQUFjO0FBQVM7QUFBQTtBQUFjLGNBQWEsT0FBTyxHQUFFLFlBQXRCLGNBQWdDLEdBQUUsVUFDdGY7QUFBQTtBQUFJLGNBQUU7QUFBRSxZQUFFLGNBQVk7QUFBRSxVQUFPLE1BQVAsUUFBVyxHQUFFLFNBQU87QUFBQSxlQUFPO0FBQUMsZUFBRSxBQUFJLEVBQUUsYUFBTixJQUFlLElBQUUsRUFBRTtBQUFjLGdCQUFJLEdBQUcsUUFBTyxLQUFFLEdBQUc7QUFBSSxnQkFBSSxHQUFHLE9BQUssQUFBVyxNQUFYLFdBQWMsS0FBRSxHQUFFLGNBQWMsUUFBTyxFQUFFLFlBQVUsc0JBQXVCLElBQUUsRUFBRSxZQUFZLEVBQUUsZUFBYSxBQUFXLE9BQU8sRUFBRSxPQUFwQixXQUF1QixJQUFFLEdBQUUsY0FBYyxHQUFFLEVBQUMsSUFBRyxFQUFFLFFBQU0sS0FBRSxHQUFFLGNBQWMsSUFBRyxBQUFXLE1BQVgsWUFBZSxNQUFFLEdBQUUsRUFBRSxXQUFTLEdBQUUsV0FBUyxPQUFHLEVBQUUsUUFBTyxJQUFFLE9BQUssRUFBRSxVQUFRLElBQUUsR0FBRSxnQkFBZ0IsR0FBRTtBQUFHLFlBQUUsTUFBSTtBQUFFLFlBQUUsTUFBSTtBQUFFLGFBQUcsR0FBRSxHQUFFLE9BQUc7QUFBSSxZQUFFLFlBQVU7QUFBRSxlQUFFLEdBQUcsR0FBRTtBQUFHLGtCQUFPO0FBQUEsaUJBQVE7QUFBUyxnQkFBRSxVQUFTO0FBQUcsZ0JBQUUsU0FBUTtBQUNwZixrQkFBRTtBQUFFO0FBQUEsaUJBQVc7QUFBQSxpQkFBYztBQUFBLGlCQUFjO0FBQVEsZ0JBQUUsUUFBTztBQUFHLGtCQUFFO0FBQUU7QUFBQSxpQkFBVztBQUFBLGlCQUFhO0FBQVEsbUJBQUksSUFBRSxHQUFFLElBQUUsR0FBRyxRQUFPO0FBQUksa0JBQUUsR0FBRyxJQUFHO0FBQUcsa0JBQUU7QUFBRTtBQUFBLGlCQUFXO0FBQVMsZ0JBQUUsU0FBUTtBQUFHLGtCQUFFO0FBQUU7QUFBQSxpQkFBVztBQUFBLGlCQUFXO0FBQUEsaUJBQWE7QUFBTyxnQkFBRSxTQUFRO0FBQUcsZ0JBQUUsUUFBTztBQUFHLGtCQUFFO0FBQUU7QUFBQSxpQkFBVztBQUFVLGdCQUFFLFVBQVM7QUFBRyxrQkFBRTtBQUFFO0FBQUEsaUJBQVc7QUFBUSxpQkFBRyxHQUFFO0FBQUcsa0JBQUUsR0FBRyxHQUFFO0FBQUcsZ0JBQUUsV0FBVTtBQUFHO0FBQUEsaUJBQVc7QUFBUyxrQkFBRSxHQUFHLEdBQUU7QUFBRztBQUFBLGlCQUFXO0FBQVMsZ0JBQUUsZ0JBQWMsRUFBQyxhQUFZLENBQUMsQ0FBQyxFQUFFO0FBQVUsa0JBQUVBLElBQUUsSUFBRyxHQUFFLEVBQUMsT0FBTTtBQUFTLGdCQUFFLFdBQVU7QUFBRztBQUFBLGlCQUFXO0FBQVcsaUJBQUcsR0FBRTtBQUFHLGtCQUNwZixHQUFHLEdBQUU7QUFBRyxnQkFBRSxXQUFVO0FBQUc7QUFBQTtBQUFjLGtCQUFFO0FBQUE7QUFBRSxhQUFHLEdBQUU7QUFBRyxjQUFJLEtBQUU7QUFBRSxlQUFJLE1BQUs7QUFBRSxnQkFBRyxHQUFFLGVBQWUsS0FBRztBQUFDLGtCQUFJLElBQUUsR0FBRTtBQUFHLGNBQVUsT0FBVixVQUFZLEdBQUcsR0FBRSxLQUFHLEFBQTRCLE9BQTVCLDRCQUErQixLQUFFLElBQUUsRUFBRSxTQUFPLFFBQU8sQUFBTSxLQUFOLFFBQVMsR0FBRyxHQUFFLE1BQUksQUFBYSxPQUFiLGFBQWUsQUFBVyxPQUFPLE1BQWxCLFdBQXFCLENBQWEsTUFBYixjQUFnQixBQUFLLE1BQUwsT0FBUyxHQUFHLEdBQUUsS0FBRyxBQUFXLE9BQU8sTUFBbEIsWUFBcUIsR0FBRyxHQUFFLEtBQUcsS0FBRyxBQUFtQyxPQUFuQyxvQ0FBc0MsQUFBNkIsT0FBN0IsOEJBQWdDLEFBQWMsT0FBZCxlQUFrQixJQUFHLGVBQWUsTUFBRyxBQUFNLEtBQU4sUUFBUyxBQUFhLE9BQWIsY0FBZ0IsRUFBRSxVQUFTLEtBQUcsQUFBTSxLQUFOLFFBQVMsR0FBRyxHQUFFLElBQUUsR0FBRTtBQUFBO0FBQUksa0JBQU87QUFBQSxpQkFBUTtBQUFRLGlCQUFHO0FBQUcsaUJBQUcsR0FBRSxHQUFFO0FBQ25mO0FBQUEsaUJBQVc7QUFBVyxpQkFBRztBQUFHLGlCQUFHO0FBQUc7QUFBQSxpQkFBVztBQUFTLGNBQU0sRUFBRSxTQUFSLFFBQWUsRUFBRSxhQUFhLFNBQVEsS0FBRyxHQUFHLEVBQUU7QUFBUTtBQUFBLGlCQUFXO0FBQVMsZ0JBQUUsV0FBUyxDQUFDLENBQUMsRUFBRTtBQUFTLG1CQUFFLEVBQUU7QUFBTSxjQUFNLE1BQU4sT0FBUSxHQUFHLEdBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBUyxJQUFFLFNBQUksQUFBTSxFQUFFLGdCQUFSLFFBQXNCLEdBQUcsR0FBRSxDQUFDLENBQUMsRUFBRSxVQUFTLEVBQUUsY0FBYTtBQUFJO0FBQUE7QUFBYyxjQUFhLE9BQU8sRUFBRSxZQUF0QixjQUFnQyxHQUFFLFVBQVE7QUFBQTtBQUFJLGFBQUcsR0FBRSxNQUFLLEdBQUUsU0FBTztBQUFBO0FBQUcsUUFBTyxFQUFFLFFBQVQsUUFBZSxHQUFFLFNBQU87QUFBQTtBQUFLLGFBQU87QUFBQSxTQUFVO0FBQUUsVUFBRyxLQUFHLEFBQU0sRUFBRSxhQUFSO0FBQWtCLFdBQUcsR0FBRSxHQUFFLEVBQUUsZUFBYztBQUFBLFdBQU87QUFBQyxZQUFHLEFBQVcsT0FBTyxNQUFsQixZQUFxQixBQUFPLEVBQUUsY0FBVDtBQUFtQixnQkFBTSxNQUFNLEVBQUU7QUFDL2UsWUFBRSxHQUFHLEdBQUc7QUFBUyxXQUFHLEdBQUc7QUFBUyxXQUFHLEtBQUksS0FBRSxFQUFFLFdBQVUsSUFBRSxFQUFFLGVBQWMsRUFBRSxNQUFJLEdBQUUsRUFBRSxjQUFZLEtBQUksR0FBRSxTQUFPLE1BQUssS0FBRyxDQUFJLEVBQUUsYUFBTixJQUFlLElBQUUsRUFBRSxlQUFlLGVBQWUsSUFBRyxFQUFFLE1BQUksR0FBRSxFQUFFLFlBQVU7QUFBQTtBQUFHLGFBQU87QUFBQSxTQUFVO0FBQUcsUUFBRTtBQUFHLFVBQUUsRUFBRTtBQUFjLFVBQUcsQUFBSyxHQUFFLFFBQU0sUUFBYjtBQUFpQixlQUFPLEVBQUUsUUFBTSxHQUFFO0FBQUUsVUFBRSxBQUFPLE1BQVA7QUFBUyxVQUFFO0FBQUcsTUFBTyxNQUFQLE9BQVMsQUFBUyxFQUFFLGNBQWMsYUFBekIsVUFBbUMsR0FBRyxLQUFHLElBQUUsQUFBTyxFQUFFLGtCQUFUO0FBQXVCLFVBQUcsS0FBRyxDQUFDLEtBQUcsQUFBSyxHQUFFLE9BQUssT0FBWjtBQUFlLFlBQUcsQUFBTyxNQUFQLFFBQVUsQUFBSyxFQUFFLGNBQWMsK0JBQXJCLFFBQWlELEFBQUssR0FBRSxVQUFRLE9BQWY7QUFBa0IsVUFBSSxNQUFKLEtBQVEsS0FBRTtBQUFBLGFBQU87QUFBQyxjQUFHLEFBQUksTUFBSixLQUFPLEFBQUksTUFBSjtBQUFNLGdCQUNyZjtBQUFFLFVBQU8sTUFBUCxRQUFVLEFBQUssTUFBRyxlQUFSLEtBQW9CLEFBQUssTUFBRyxlQUFSLEtBQW9CLEdBQUcsR0FBRTtBQUFBO0FBQUcsVUFBRyxLQUFHO0FBQUUsVUFBRSxTQUFPO0FBQUUsYUFBTztBQUFBLFNBQVU7QUFBRSxhQUFPLE1BQUssR0FBRyxJQUFHLEFBQU8sTUFBUCxRQUFVLEdBQUcsRUFBRSxVQUFVLGdCQUFlO0FBQUEsU0FBVTtBQUFHLGFBQU8sR0FBRyxJQUFHO0FBQUEsU0FBVTtBQUFHLGFBQU8sR0FBRyxFQUFFLFNBQU8sTUFBSztBQUFBLFNBQVU7QUFBRyxRQUFFO0FBQUcsVUFBRSxFQUFFO0FBQWMsVUFBRyxBQUFPLE1BQVA7QUFBUyxlQUFPO0FBQUssV0FBRSxBQUFLLEdBQUUsUUFBTSxRQUFiO0FBQWlCLFdBQUUsRUFBRTtBQUFVLFVBQUcsQUFBTyxPQUFQO0FBQVMsWUFBRztBQUFFLGFBQUcsR0FBRTtBQUFBLGFBQVE7QUFBQyxjQUFHLEFBQUksTUFBSixLQUFPLEFBQU8sTUFBUCxRQUFVLEFBQUssR0FBRSxRQUFNLFFBQWI7QUFBaUIsaUJBQUksSUFBRSxFQUFFLE9BQU0sQUFBTyxNQUFQLFFBQVU7QUFBQyxtQkFBRSxHQUFHO0FBQUcsa0JBQUcsQUFBTyxPQUFQLE1BQVM7QUFBQyxrQkFBRSxTQUFPO0FBQUcsbUJBQUcsR0FBRTtBQUFJLHFCQUFFLEdBQUU7QUFBWSxnQkFBTyxPQUFQLFFBQVcsR0FBRSxjQUFZLElBQUUsRUFBRSxTQUFPO0FBQ25mLGdCQUFPLEVBQUUsZUFBVCxRQUFzQixHQUFFLGNBQVk7QUFBTSxrQkFBRSxhQUFXLEVBQUU7QUFBVyxvQkFBRTtBQUFFLHFCQUFJLElBQUUsRUFBRSxPQUFNLEFBQU8sTUFBUDtBQUFVLHVCQUFFLEdBQUUsSUFBRSxHQUFFLEdBQUUsU0FBTyxHQUFFLEdBQUUsYUFBVyxNQUFLLEdBQUUsY0FBWSxNQUFLLEdBQUUsYUFBVyxNQUFLLEtBQUUsR0FBRSxXQUFVLEFBQU8sT0FBUCxPQUFVLElBQUUsYUFBVyxHQUFFLEdBQUUsUUFBTSxHQUFFLEdBQUUsUUFBTSxNQUFLLEdBQUUsZ0JBQWMsTUFBSyxHQUFFLGdCQUFjLE1BQUssR0FBRSxjQUFZLE1BQUssR0FBRSxlQUFhLE1BQUssR0FBRSxZQUFVLFFBQU8sSUFBRSxhQUFXLEdBQUUsWUFBVyxHQUFFLFFBQU0sR0FBRSxPQUFNLEdBQUUsUUFBTSxHQUFFLE9BQU0sR0FBRSxnQkFBYyxHQUFFLGVBQWMsR0FBRSxnQkFBYyxHQUFFLGVBQWMsR0FBRSxjQUFZLEdBQUUsYUFBWSxHQUFFLE9BQUssR0FBRSxNQUFLLElBQUUsR0FBRSxjQUNwZixHQUFFLGVBQWEsQUFBTyxNQUFQLE9BQVMsT0FBSyxFQUFDLE9BQU0sRUFBRSxPQUFNLGNBQWEsRUFBRSxpQkFBZSxJQUFFLEVBQUU7QUFBUSxrQkFBRSxHQUFFLEVBQUUsVUFBUSxJQUFFO0FBQUcsdUJBQU8sRUFBRTtBQUFBO0FBQU0sa0JBQUUsRUFBRTtBQUFBO0FBQVEsVUFBTyxFQUFFLFNBQVQsUUFBZSxNQUFJLE1BQUssR0FBRSxTQUFPLElBQUcsS0FBRSxNQUFHLEdBQUcsR0FBRSxRQUFJLEVBQUUsUUFBTTtBQUFBO0FBQUEsV0FBYztBQUFDLFlBQUcsQ0FBQztBQUFFLGNBQUcsSUFBRSxHQUFHLEtBQUcsQUFBTyxNQUFQLE1BQVM7QUFBQyxnQkFBRyxFQUFFLFNBQU8sSUFBRyxLQUFFLE1BQUcsSUFBRSxFQUFFLGFBQVksQUFBTyxNQUFQLFFBQVcsR0FBRSxjQUFZLEdBQUUsRUFBRSxTQUFPLElBQUcsR0FBRyxHQUFFLE9BQUksQUFBTyxFQUFFLFNBQVQsUUFBZSxBQUFXLEVBQUUsYUFBYixZQUF1QixDQUFDLEdBQUUsYUFBVyxDQUFDO0FBQUcscUJBQU8sSUFBRSxFQUFFLGFBQVcsRUFBRSxZQUFXLEFBQU8sTUFBUCxRQUFXLEdBQUUsYUFBVyxPQUFNO0FBQUE7QUFBVSxnQkFBRSxNQUFJLEVBQUUscUJBQW1CLE1BQUksQUFBYSxNQUFiLGNBQWlCLEdBQUUsU0FDamYsSUFBRyxLQUFFLE1BQUcsR0FBRyxHQUFFLFFBQUksRUFBRSxRQUFNO0FBQVUsVUFBRSxjQUFhLElBQUUsVUFBUSxFQUFFLE9BQU0sRUFBRSxRQUFNLE1BQUksS0FBRSxFQUFFLE1BQUssQUFBTyxNQUFQLE9BQVMsRUFBRSxVQUFRLEtBQUUsRUFBRSxRQUFNLElBQUUsRUFBRSxPQUFLO0FBQUE7QUFBRyxhQUFPLEFBQU8sRUFBRSxTQUFULE9BQWUsS0FBRSxFQUFFLE1BQUssRUFBRSxZQUFVLEdBQUUsRUFBRSxPQUFLLEVBQUUsU0FBUSxFQUFFLGFBQVcsRUFBRSxZQUFXLEVBQUUscUJBQW1CLEtBQUksRUFBRSxVQUFRLE1BQUssSUFBRSxFQUFFLFNBQVEsRUFBRSxHQUFFLEtBQUUsSUFBRSxJQUFFLElBQUUsSUFBRSxJQUFHLEtBQUc7QUFBQSxTQUFVO0FBQUEsU0FBUTtBQUFHLGFBQU8sTUFBSyxBQUFPLE1BQVAsUUFBVSxBQUFPLEVBQUUsa0JBQVQsU0FBMEIsQ0FBTyxFQUFFLGtCQUFULFNBQXlCLEFBQWtDLEVBQUUsU0FBcEMsbUNBQTJDLEdBQUUsU0FBTyxJQUFHO0FBQUE7QUFBSyxRQUFNLE1BQU0sRUFBRSxLQUFJLEVBQUU7QUFBQTtBQUNoZCxZQUFZLEdBQUU7QUFBQyxVQUFPLEVBQUU7QUFBQSxTQUFVO0FBQUUsU0FBRyxFQUFFLFNBQU87QUFBSyxVQUFJLElBQUUsRUFBRTtBQUFNLGFBQU8sSUFBRSxPQUFNLEdBQUUsUUFBTSxJQUFFLFFBQU0sSUFBRyxLQUFHO0FBQUEsU0FBVTtBQUFFO0FBQUssUUFBRTtBQUFHLFFBQUU7QUFBRztBQUFLLFVBQUUsRUFBRTtBQUFNLFVBQUcsQUFBSyxLQUFFLFFBQVA7QUFBVyxjQUFNLE1BQU0sRUFBRTtBQUFNLFFBQUUsUUFBTSxJQUFFLFFBQU07QUFBRyxhQUFPO0FBQUEsU0FBTztBQUFFLGFBQU8sR0FBRyxJQUFHO0FBQUEsU0FBVTtBQUFHLGFBQU8sRUFBRSxJQUFHLElBQUUsRUFBRSxPQUFNLElBQUUsT0FBTSxHQUFFLFFBQU0sSUFBRSxRQUFNLElBQUcsS0FBRztBQUFBLFNBQVU7QUFBRyxhQUFPLEVBQUUsSUFBRztBQUFBLFNBQVU7QUFBRSxhQUFPLE1BQUs7QUFBQSxTQUFVO0FBQUcsYUFBTyxHQUFHLElBQUc7QUFBQSxTQUFVO0FBQUEsU0FBUTtBQUFHLGFBQU8sTUFBSztBQUFBO0FBQWEsYUFBTztBQUFBO0FBQUE7QUFDcmEsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFHO0FBQUMsUUFBSSxJQUFFLElBQUcsSUFBRTtBQUFFO0FBQUcsV0FBRyxHQUFHLElBQUcsSUFBRSxFQUFFO0FBQUEsV0FBYTtBQUFHLFFBQUksSUFBRTtBQUFBLFdBQVEsSUFBTjtBQUFTLFFBQUUsK0JBQTZCLEdBQUUsVUFBUSxPQUFLLEdBQUU7QUFBQTtBQUFNLFNBQU0sRUFBQyxPQUFNLEdBQUUsUUFBTyxHQUFFLE9BQU07QUFBQTtBQUFHLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBRztBQUFDLFlBQVEsTUFBTSxFQUFFO0FBQUEsV0FBYSxHQUFOO0FBQVMsZUFBVyxXQUFVO0FBQUMsWUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFNLElBQUksS0FBRyxBQUFhLE9BQU8sWUFBcEIsYUFBNEIsVUFBUTtBQUFJLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFFLEdBQUcsSUFBRztBQUFHLElBQUUsTUFBSTtBQUFFLElBQUUsVUFBUSxFQUFDLFNBQVE7QUFBTSxNQUFJLElBQUUsRUFBRTtBQUFNLElBQUUsV0FBUyxXQUFVO0FBQUMsVUFBSyxNQUFHLE1BQUcsS0FBRztBQUFHLE9BQUcsR0FBRTtBQUFBO0FBQUksU0FBTztBQUFBO0FBQ3BiLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFFLEdBQUcsSUFBRztBQUFHLElBQUUsTUFBSTtBQUFFLE1BQUksSUFBRSxFQUFFLEtBQUs7QUFBeUIsTUFBRyxBQUFhLE9BQU8sTUFBcEIsWUFBc0I7QUFBQyxRQUFJLElBQUUsRUFBRTtBQUFNLE1BQUUsVUFBUSxXQUFVO0FBQUMsU0FBRyxHQUFFO0FBQUcsYUFBTyxFQUFFO0FBQUE7QUFBQTtBQUFJLE1BQUksS0FBRSxFQUFFO0FBQVUsRUFBTyxPQUFQLFFBQVUsQUFBYSxPQUFPLEdBQUUsc0JBQXRCLGNBQTBDLEdBQUUsV0FBUyxXQUFVO0FBQUMsSUFBYSxPQUFPLE1BQXBCLGNBQXdCLENBQU8sT0FBUCxPQUFVLEtBQUcsSUFBSSxJQUFJLENBQUMsU0FBTyxHQUFHLElBQUksT0FBTSxHQUFHLEdBQUU7QUFBSSxRQUFJLEtBQUUsRUFBRTtBQUFNLFNBQUssa0JBQWtCLEVBQUUsT0FBTSxFQUFDLGdCQUFlLEFBQU8sT0FBUCxPQUFTLEtBQUU7QUFBQTtBQUFPLFNBQU87QUFBQTtBQUFFLElBQUksS0FBRyxBQUFhLE9BQU8sWUFBcEIsYUFBNEIsVUFBUTtBQUN4YyxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFJLE1BQUcsQUFBTyxNQUFQO0FBQVMsUUFBRyxBQUFhLE9BQU8sTUFBcEI7QUFBc0IsVUFBRztBQUFDLFVBQUU7QUFBQSxlQUFZLEdBQU47QUFBUyxXQUFHLEdBQUU7QUFBQTtBQUFBO0FBQVEsUUFBRSxVQUFRO0FBQUE7QUFBSyxZQUFZLEdBQUUsR0FBRTtBQUFDLFVBQU8sRUFBRTtBQUFBLFNBQVU7QUFBQSxTQUFPO0FBQUEsU0FBUTtBQUFBLFNBQVE7QUFBRztBQUFBLFNBQVk7QUFBRSxVQUFHLEVBQUUsUUFBTSxPQUFLLEFBQU8sTUFBUCxNQUFTO0FBQUMsWUFBSSxJQUFFLEVBQUUsZUFBYyxJQUFFLEVBQUU7QUFBYyxZQUFFLEVBQUU7QUFBVSxZQUFFLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWMsRUFBRSxPQUFLLElBQUUsR0FBRyxFQUFFLE1BQUssSUFBRztBQUFHLFVBQUUsc0NBQW9DO0FBQUE7QUFBRTtBQUFBLFNBQVk7QUFBRSxRQUFFLFFBQU0sT0FBSyxHQUFHLEVBQUUsVUFBVTtBQUFlO0FBQUEsU0FBWTtBQUFBLFNBQU87QUFBQSxTQUFPO0FBQUEsU0FBTztBQUFHO0FBQUE7QUFBTyxRQUFNLE1BQU0sRUFBRTtBQUFBO0FBQzVlLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxVQUFPLEVBQUU7QUFBQSxTQUFVO0FBQUEsU0FBTztBQUFBLFNBQVE7QUFBQSxTQUFRO0FBQUcsVUFBRSxFQUFFO0FBQVksVUFBRSxBQUFPLE1BQVAsT0FBUyxFQUFFLGFBQVc7QUFBSyxVQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsWUFBRSxJQUFFLEVBQUU7QUFBSyxXQUFFO0FBQUMsY0FBRyxBQUFLLEdBQUUsTUFBSSxPQUFYLEdBQWM7QUFBQyxnQkFBSSxJQUFFLEVBQUU7QUFBTyxjQUFFLFVBQVE7QUFBQTtBQUFJLGNBQUUsRUFBRTtBQUFBLGlCQUFXLE1BQUk7QUFBQTtBQUFHLFVBQUUsRUFBRTtBQUFZLFVBQUUsQUFBTyxNQUFQLE9BQVMsRUFBRSxhQUFXO0FBQUssVUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFlBQUUsSUFBRSxFQUFFO0FBQUssV0FBRTtBQUFDLGNBQUksSUFBRTtBQUFFLGNBQUUsRUFBRTtBQUFLLGNBQUUsRUFBRTtBQUFJLFVBQUssS0FBRSxPQUFQLEtBQVcsQUFBSyxLQUFFLE9BQVAsS0FBWSxJQUFHLEdBQUUsSUFBRyxHQUFHLEdBQUU7QUFBSSxjQUFFO0FBQUEsaUJBQVEsTUFBSTtBQUFBO0FBQUc7QUFBQSxTQUFZO0FBQUUsVUFBRSxFQUFFO0FBQVUsUUFBRSxRQUFNLEtBQUksQ0FBTyxNQUFQLE9BQVMsRUFBRSxzQkFBcUIsS0FBRSxFQUFFLGdCQUFjLEVBQUUsT0FBSyxFQUFFLGdCQUFjLEdBQUcsRUFBRSxNQUFLLEVBQUUsZ0JBQWUsRUFBRSxtQkFBbUIsR0FDeGdCLEVBQUUsZUFBYyxFQUFFO0FBQXVDLFVBQUUsRUFBRTtBQUFZLE1BQU8sTUFBUCxRQUFVLEdBQUcsR0FBRSxHQUFFO0FBQUc7QUFBQSxTQUFZO0FBQUUsVUFBRSxFQUFFO0FBQVksVUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFlBQUU7QUFBSyxZQUFHLEFBQU8sRUFBRSxVQUFUO0FBQWUsa0JBQU8sRUFBRSxNQUFNO0FBQUEsaUJBQVU7QUFBRSxrQkFBRSxFQUFFLE1BQU07QUFBVTtBQUFBLGlCQUFXO0FBQUUsa0JBQUUsRUFBRSxNQUFNO0FBQUE7QUFBVSxXQUFHLEdBQUUsR0FBRTtBQUFBO0FBQUc7QUFBQSxTQUFZO0FBQUUsVUFBRSxFQUFFO0FBQVUsTUFBTyxNQUFQLFFBQVUsRUFBRSxRQUFNLEtBQUcsR0FBRyxFQUFFLE1BQUssRUFBRSxrQkFBZ0IsRUFBRTtBQUFRO0FBQUEsU0FBWTtBQUFFO0FBQUEsU0FBWTtBQUFFO0FBQUEsU0FBWTtBQUFHO0FBQUEsU0FBWTtBQUFHLE1BQU8sRUFBRSxrQkFBVCxRQUF5QixLQUFFLEVBQUUsV0FBVSxBQUFPLE1BQVAsUUFBVyxLQUFFLEVBQUUsZUFBYyxBQUFPLE1BQVAsUUFBVyxLQUFFLEVBQUUsWUFBVyxBQUFPLE1BQVAsUUFBVSxHQUFHO0FBQ3ZmO0FBQUEsU0FBWTtBQUFBLFNBQVE7QUFBQSxTQUFRO0FBQUEsU0FBUTtBQUFBLFNBQVE7QUFBQSxTQUFRO0FBQUc7QUFBQTtBQUFPLFFBQU0sTUFBTSxFQUFFO0FBQUE7QUFDNUUsWUFBWSxHQUFFLEdBQUU7QUFBQyxXQUFRLElBQUUsT0FBSTtBQUFDLFFBQUcsQUFBSSxFQUFFLFFBQU4sR0FBVTtBQUFDLFVBQUksSUFBRSxFQUFFO0FBQVUsVUFBRztBQUFFLFlBQUUsRUFBRSxPQUFNLEFBQWEsT0FBTyxFQUFFLGdCQUF0QixhQUFrQyxFQUFFLFlBQVksV0FBVSxRQUFPLGVBQWEsRUFBRSxVQUFRO0FBQUEsV0FBVztBQUFDLFlBQUUsRUFBRTtBQUFVLFlBQUksSUFBRSxFQUFFLGNBQWM7QUFBTSxZQUFFLEFBQVMsTUFBVCxVQUFZLEFBQU8sTUFBUCxRQUFVLEVBQUUsZUFBZSxhQUFXLEVBQUUsVUFBUTtBQUFLLFVBQUUsTUFBTSxVQUFRLEdBQUcsV0FBVTtBQUFBO0FBQUEsZUFBWSxBQUFJLEVBQUUsUUFBTjtBQUFVLFFBQUUsVUFBVSxZQUFVLElBQUUsS0FBRyxFQUFFO0FBQUEsYUFBdUIsQ0FBSyxFQUFFLFFBQVAsTUFBWSxBQUFLLEVBQUUsUUFBUCxNQUFZLEFBQU8sRUFBRSxrQkFBVCxRQUF3QixNQUFJLE1BQUksQUFBTyxFQUFFLFVBQVQsTUFBZTtBQUFDLFFBQUUsTUFBTSxTQUFPO0FBQUUsVUFBRSxFQUFFO0FBQU07QUFBQTtBQUFTLFFBQUcsTUFDdGY7QUFBRTtBQUFNLFdBQUssQUFBTyxFQUFFLFlBQVQsUUFBa0I7QUFBQyxVQUFHLEFBQU8sRUFBRSxXQUFULFFBQWlCLEVBQUUsV0FBUztBQUFFO0FBQU8sVUFBRSxFQUFFO0FBQUE7QUFBTyxNQUFFLFFBQVEsU0FBTyxFQUFFO0FBQU8sUUFBRSxFQUFFO0FBQUE7QUFBQTtBQUNqSCxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUcsTUFBSSxBQUFhLE9BQU8sR0FBRyx5QkFBdkI7QUFBNEMsUUFBRztBQUFDLFNBQUcscUJBQXFCLElBQUc7QUFBQSxhQUFTLElBQU47QUFBQTtBQUFVLFVBQU8sRUFBRTtBQUFBLFNBQVU7QUFBQSxTQUFPO0FBQUEsU0FBUTtBQUFBLFNBQVE7QUFBQSxTQUFRO0FBQUcsVUFBRSxFQUFFO0FBQVksVUFBRyxBQUFPLE1BQVAsUUFBVyxLQUFFLEVBQUUsWUFBVyxBQUFPLE1BQVAsT0FBVTtBQUFDLFlBQUksSUFBRSxJQUFFLEVBQUU7QUFBSyxXQUFFO0FBQUMsY0FBSSxJQUFFLEdBQUUsSUFBRSxFQUFFO0FBQVEsY0FBRSxFQUFFO0FBQUksY0FBRyxBQUFTLE1BQVQ7QUFBVyxnQkFBRyxBQUFLLEtBQUUsT0FBUDtBQUFVLGlCQUFHLEdBQUU7QUFBQSxpQkFBTztBQUFDLGtCQUFFO0FBQUUsa0JBQUc7QUFBQztBQUFBLHVCQUFVLElBQU47QUFBUyxtQkFBRyxHQUFFO0FBQUE7QUFBQTtBQUFJLGNBQUUsRUFBRTtBQUFBLGlCQUFXLE1BQUk7QUFBQTtBQUFHO0FBQUEsU0FBVztBQUFFLFNBQUc7QUFBRyxVQUFFLEVBQUU7QUFBVSxVQUFHLEFBQWEsT0FBTyxFQUFFLHlCQUF0QjtBQUEyQyxZQUFHO0FBQUMsWUFBRSxRQUFNLEVBQUUsZUFBYyxFQUFFLFFBQU0sRUFBRSxlQUFjLEVBQUU7QUFBQSxpQkFBNkIsSUFBTjtBQUFTLGFBQUcsR0FDL2dCO0FBQUE7QUFBRztBQUFBLFNBQVc7QUFBRSxTQUFHO0FBQUc7QUFBQSxTQUFXO0FBQUUsU0FBRyxHQUFFO0FBQUE7QUFBQTtBQUFJLFlBQVksR0FBRTtBQUFDLElBQUUsWUFBVTtBQUFLLElBQUUsUUFBTTtBQUFLLElBQUUsZUFBYTtBQUFLLElBQUUsY0FBWTtBQUFLLElBQUUsYUFBVztBQUFLLElBQUUsZ0JBQWM7QUFBSyxJQUFFLGdCQUFjO0FBQUssSUFBRSxlQUFhO0FBQUssSUFBRSxTQUFPO0FBQUssSUFBRSxjQUFZO0FBQUE7QUFBSyxZQUFZLEdBQUU7QUFBQyxTQUFPLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBSSxFQUFFLFFBQU4sS0FBVyxBQUFJLEVBQUUsUUFBTjtBQUFBO0FBQzdSLFlBQVksR0FBRTtBQUFDLEtBQUU7QUFBQyxhQUFRLElBQUUsRUFBRSxRQUFPLEFBQU8sTUFBUCxRQUFVO0FBQUMsVUFBRyxHQUFHO0FBQUc7QUFBUSxVQUFFLEVBQUU7QUFBQTtBQUFPLFVBQU0sTUFBTSxFQUFFO0FBQUE7QUFBTyxNQUFJLElBQUU7QUFBRSxNQUFFLEVBQUU7QUFBVSxVQUFPLEVBQUU7QUFBQSxTQUFVO0FBQUUsVUFBSSxJQUFFO0FBQUc7QUFBQSxTQUFXO0FBQUUsVUFBRSxFQUFFO0FBQWMsVUFBRTtBQUFHO0FBQUEsU0FBVztBQUFFLFVBQUUsRUFBRTtBQUFjLFVBQUU7QUFBRztBQUFBO0FBQWMsWUFBTSxNQUFNLEVBQUU7QUFBQTtBQUFPLElBQUUsUUFBTSxNQUFLLElBQUcsR0FBRSxLQUFJLEVBQUUsU0FBTztBQUFLO0FBQUU7QUFBRSxXQUFJLElBQUUsT0FBSTtBQUFDLGVBQUssQUFBTyxFQUFFLFlBQVQsUUFBa0I7QUFBQyxjQUFHLEFBQU8sRUFBRSxXQUFULFFBQWlCLEdBQUcsRUFBRSxTQUFRO0FBQUMsZ0JBQUU7QUFBSztBQUFBO0FBQVEsY0FBRSxFQUFFO0FBQUE7QUFBTyxVQUFFLFFBQVEsU0FBTyxFQUFFO0FBQU8sYUFBSSxJQUFFLEVBQUUsU0FBUSxBQUFJLEVBQUUsUUFBTixLQUFXLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBSyxFQUFFLFFBQVAsTUFBWTtBQUFDLGNBQUcsRUFBRSxRQUFNO0FBQUU7QUFBVyxjQUFHLEFBQy9lLEVBQUUsVUFENmUsUUFDdGUsQUFBSSxFQUFFLFFBQU47QUFBVTtBQUFBO0FBQWdCLGNBQUUsTUFBTSxTQUFPLEdBQUUsSUFBRSxFQUFFO0FBQUE7QUFBTSxZQUFHLENBQUUsR0FBRSxRQUFNLElBQUc7QUFBQyxjQUFFLEVBQUU7QUFBVTtBQUFBO0FBQUE7QUFBUyxNQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUcsR0FBRyxHQUFFLEdBQUU7QUFBQTtBQUN6SCxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsS0FBSSxJQUFFLEFBQUksTUFBSixLQUFPLEFBQUksTUFBSjtBQUFNLE1BQUc7QUFBRSxRQUFFLElBQUUsRUFBRSxZQUFVLEVBQUUsVUFBVSxVQUFTLElBQUUsQUFBSSxFQUFFLGFBQU4sSUFBZSxFQUFFLFdBQVcsYUFBYSxHQUFFLEtBQUcsRUFBRSxhQUFhLEdBQUUsS0FBSSxDQUFJLEVBQUUsYUFBTixJQUFnQixLQUFFLEVBQUUsWUFBVyxFQUFFLGFBQWEsR0FBRSxNQUFLLEtBQUUsR0FBRSxFQUFFLFlBQVksS0FBSSxJQUFFLEVBQUUscUJBQW9CLEFBQU8sTUFBUCxRQUFVLEFBQVMsTUFBVCxVQUFZLEFBQU8sRUFBRSxZQUFULFFBQW1CLEdBQUUsVUFBUTtBQUFBLFdBQWEsQUFBSSxNQUFKLEtBQVEsS0FBRSxFQUFFLE9BQU0sQUFBTyxNQUFQO0FBQVUsU0FBSSxHQUFHLEdBQUUsR0FBRSxJQUFHLElBQUUsRUFBRSxTQUFRLEFBQU8sTUFBUDtBQUFVLFNBQUcsR0FBRSxHQUFFLElBQUcsSUFBRSxFQUFFO0FBQUE7QUFDOVksWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFLEtBQUksSUFBRSxBQUFJLE1BQUosS0FBTyxBQUFJLE1BQUo7QUFBTSxNQUFHO0FBQUUsUUFBRSxJQUFFLEVBQUUsWUFBVSxFQUFFLFVBQVUsVUFBUyxJQUFFLEVBQUUsYUFBYSxHQUFFLEtBQUcsRUFBRSxZQUFZO0FBQUEsV0FBVyxBQUFJLE1BQUosS0FBUSxLQUFFLEVBQUUsT0FBTSxBQUFPLE1BQVA7QUFBVSxTQUFJLEdBQUcsR0FBRSxHQUFFLElBQUcsSUFBRSxFQUFFLFNBQVEsQUFBTyxNQUFQO0FBQVUsU0FBRyxHQUFFLEdBQUUsSUFBRyxJQUFFLEVBQUU7QUFBQTtBQUNyTixZQUFZLEdBQUUsR0FBRTtBQUFDLFdBQVEsSUFBRSxHQUFFLElBQUUsT0FBRyxHQUFFLFFBQUk7QUFBQyxRQUFHLENBQUMsR0FBRTtBQUFDLFVBQUUsRUFBRTtBQUFPO0FBQUUsbUJBQU87QUFBQyxjQUFHLEFBQU8sTUFBUDtBQUFTLGtCQUFNLE1BQU0sRUFBRTtBQUFNLGNBQUUsRUFBRTtBQUFVLGtCQUFPLEVBQUU7QUFBQSxpQkFBVTtBQUFFLG1CQUFFO0FBQUc7QUFBQSxpQkFBYTtBQUFFLGtCQUFFLEVBQUU7QUFBYyxtQkFBRTtBQUFHO0FBQUEsaUJBQWE7QUFBRSxrQkFBRSxFQUFFO0FBQWMsbUJBQUU7QUFBRztBQUFBO0FBQVEsY0FBRSxFQUFFO0FBQUE7QUFBTyxVQUFFO0FBQUE7QUFBRyxRQUFHLEFBQUksRUFBRSxRQUFOLEtBQVcsQUFBSSxFQUFFLFFBQU4sR0FBVTtBQUFDO0FBQUUsaUJBQVEsS0FBRSxHQUFFLEtBQUUsR0FBRSxJQUFFO0FBQUksY0FBRyxHQUFHLElBQUUsSUFBRyxBQUFPLEVBQUUsVUFBVCxRQUFnQixBQUFJLEVBQUUsUUFBTjtBQUFVLGNBQUUsTUFBTSxTQUFPLEdBQUUsSUFBRSxFQUFFO0FBQUEsZUFBVTtBQUFDLGdCQUFHLE1BQUk7QUFBRTtBQUFRLG1CQUFLLEFBQU8sRUFBRSxZQUFULFFBQWtCO0FBQUMsa0JBQUcsQUFBTyxFQUFFLFdBQVQsUUFBaUIsRUFBRSxXQUFTO0FBQUU7QUFBUSxrQkFBRSxFQUFFO0FBQUE7QUFBTyxjQUFFLFFBQVEsU0FBTyxFQUFFO0FBQU8sZ0JBQUUsRUFBRTtBQUFBO0FBQVEsV0FBRyxNQUFFLEdBQUUsS0FBRSxFQUFFLFdBQ3JmLEFBQUksR0FBRSxhQUFOLElBQWUsR0FBRSxXQUFXLFlBQVksTUFBRyxHQUFFLFlBQVksT0FBSSxFQUFFLFlBQVksRUFBRTtBQUFBLGVBQW1CLEFBQUksRUFBRSxRQUFOLEdBQVU7QUFBQyxVQUFHLEFBQU8sRUFBRSxVQUFULE1BQWU7QUFBQyxZQUFFLEVBQUUsVUFBVTtBQUFjLGFBQUU7QUFBRyxVQUFFLE1BQU0sU0FBTztBQUFFLFlBQUUsRUFBRTtBQUFNO0FBQUE7QUFBQSxlQUFrQixHQUFHLEdBQUUsSUFBRyxBQUFPLEVBQUUsVUFBVCxNQUFlO0FBQUMsUUFBRSxNQUFNLFNBQU87QUFBRSxVQUFFLEVBQUU7QUFBTTtBQUFBO0FBQVMsUUFBRyxNQUFJO0FBQUU7QUFBTSxXQUFLLEFBQU8sRUFBRSxZQUFULFFBQWtCO0FBQUMsVUFBRyxBQUFPLEVBQUUsV0FBVCxRQUFpQixFQUFFLFdBQVM7QUFBRTtBQUFPLFVBQUUsRUFBRTtBQUFPLE1BQUksRUFBRSxRQUFOLEtBQVksS0FBRTtBQUFBO0FBQUksTUFBRSxRQUFRLFNBQU8sRUFBRTtBQUFPLFFBQUUsRUFBRTtBQUFBO0FBQUE7QUFDbFosWUFBWSxHQUFFLEdBQUU7QUFBQyxVQUFPLEVBQUU7QUFBQSxTQUFVO0FBQUEsU0FBTztBQUFBLFNBQVE7QUFBQSxTQUFRO0FBQUEsU0FBUTtBQUFHLFVBQUksSUFBRSxFQUFFO0FBQVksVUFBRSxBQUFPLE1BQVAsT0FBUyxFQUFFLGFBQVc7QUFBSyxVQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsWUFBSSxJQUFFLElBQUUsRUFBRTtBQUFLO0FBQUcsVUFBSyxHQUFFLE1BQUksT0FBWCxLQUFnQixLQUFFLEVBQUUsU0FBUSxFQUFFLFVBQVEsUUFBTyxBQUFTLE1BQVQsVUFBWSxNQUFLLElBQUUsRUFBRTtBQUFBLGVBQVcsTUFBSTtBQUFBO0FBQUc7QUFBQSxTQUFZO0FBQUU7QUFBQSxTQUFZO0FBQUUsVUFBRSxFQUFFO0FBQVUsVUFBRyxBQUFNLEtBQU4sTUFBUTtBQUFDLFlBQUUsRUFBRTtBQUFjLFlBQUksSUFBRSxBQUFPLE1BQVAsT0FBUyxFQUFFLGdCQUFjO0FBQUUsWUFBRSxFQUFFO0FBQUssWUFBSSxLQUFFLEVBQUU7QUFBWSxVQUFFLGNBQVk7QUFBSyxZQUFHLEFBQU8sT0FBUCxNQUFTO0FBQUMsWUFBRSxNQUFJO0FBQUUsVUFBVSxNQUFWLFdBQWEsQUFBVSxFQUFFLFNBQVosV0FBa0IsQUFBTSxFQUFFLFFBQVIsUUFBYyxHQUFHLEdBQUU7QUFBRyxhQUFHLEdBQUU7QUFBRyxjQUFFLEdBQUcsR0FBRTtBQUFHLGVBQUksSUFBRSxHQUFFLElBQUUsR0FBRSxRQUFPLEtBQ2xmLEdBQUU7QUFBQyxnQkFBSSxLQUFFLEdBQUUsSUFBRyxLQUFFLEdBQUUsSUFBRTtBQUFHLFlBQVUsT0FBVixVQUFZLEdBQUcsR0FBRSxNQUFHLEFBQTRCLE9BQTVCLDRCQUE4QixHQUFHLEdBQUUsTUFBRyxBQUFhLE9BQWIsYUFBZSxHQUFHLEdBQUUsTUFBRyxHQUFHLEdBQUUsSUFBRSxJQUFFO0FBQUE7QUFBRyxrQkFBTztBQUFBLGlCQUFRO0FBQVEsaUJBQUcsR0FBRTtBQUFHO0FBQUEsaUJBQVc7QUFBVyxpQkFBRyxHQUFFO0FBQUc7QUFBQSxpQkFBVztBQUFTLGtCQUFFLEVBQUUsY0FBYyxhQUFZLEVBQUUsY0FBYyxjQUFZLENBQUMsQ0FBQyxFQUFFLFVBQVMsS0FBRSxFQUFFLE9BQU0sQUFBTSxNQUFOLE9BQVEsR0FBRyxHQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVMsSUFBRSxTQUFJLE1BQUksQ0FBQyxDQUFDLEVBQUUsWUFBVyxDQUFNLEVBQUUsZ0JBQVIsT0FBcUIsR0FBRyxHQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVMsRUFBRSxjQUFhLFFBQUksR0FBRyxHQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVMsRUFBRSxXQUFTLEtBQUcsSUFBRztBQUFBO0FBQUE7QUFBQTtBQUFPO0FBQUEsU0FBWTtBQUFFLFVBQUcsQUFBTyxFQUFFLGNBQVQ7QUFBbUIsY0FBTSxNQUFNLEVBQUU7QUFBTSxRQUFFLFVBQVUsWUFDamYsRUFBRTtBQUFjO0FBQUEsU0FBWTtBQUFFLFVBQUUsRUFBRTtBQUFVLFFBQUUsV0FBVSxHQUFFLFVBQVEsT0FBRyxHQUFHLEVBQUU7QUFBZ0I7QUFBQSxTQUFZO0FBQUc7QUFBQSxTQUFZO0FBQUcsTUFBTyxFQUFFLGtCQUFULFFBQXlCLE1BQUcsS0FBSSxHQUFHLEVBQUUsT0FBTTtBQUFLLFNBQUc7QUFBRztBQUFBLFNBQVk7QUFBRyxTQUFHO0FBQUc7QUFBQSxTQUFZO0FBQUc7QUFBQSxTQUFZO0FBQUEsU0FBUTtBQUFHLFNBQUcsR0FBRSxBQUFPLEVBQUUsa0JBQVQ7QUFBd0I7QUFBQTtBQUFPLFFBQU0sTUFBTSxFQUFFO0FBQUE7QUFBTyxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFZLE1BQUcsQUFBTyxNQUFQLE1BQVM7QUFBQyxNQUFFLGNBQVk7QUFBSyxRQUFJLElBQUUsRUFBRTtBQUFVLElBQU8sTUFBUCxRQUFXLEtBQUUsRUFBRSxZQUFVLElBQUk7QUFBSSxNQUFFLFFBQVEsU0FBUyxJQUFFO0FBQUMsVUFBSSxJQUFFLEdBQUcsS0FBSyxNQUFLLEdBQUU7QUFBRyxRQUFFLElBQUksT0FBSyxHQUFFLElBQUksS0FBRyxHQUFFLEtBQUssR0FBRTtBQUFBO0FBQUE7QUFBQTtBQUNuZSxZQUFZLEdBQUUsR0FBRTtBQUFDLFNBQU8sQUFBTyxNQUFQLFFBQVcsS0FBRSxFQUFFLGVBQWMsQUFBTyxNQUFQLFFBQVUsQUFBTyxFQUFFLGVBQVQsUUFBc0IsS0FBRSxFQUFFLGVBQWMsQUFBTyxNQUFQLFFBQVUsQUFBTyxFQUFFLGVBQVQsUUFBcUI7QUFBQTtBQUFHLElBQUksS0FBRyxLQUFLLE1BQUssS0FBRyxHQUFHLHdCQUF1QixLQUFHLEdBQUcsbUJBQWtCLElBQUUsR0FBRSxJQUFFLE1BQUssSUFBRSxNQUFLLElBQUUsR0FBRSxLQUFHLEdBQUUsS0FBRyxHQUFHLElBQUcsSUFBRSxHQUFFLEtBQUcsTUFBSyxLQUFHLEdBQUUsS0FBRyxHQUFFLEtBQUcsR0FBRSxLQUFHLEdBQUUsS0FBRyxNQUFLLEtBQUcsR0FBRSxLQUFHO0FBQVMsY0FBYTtBQUFDLE9BQUcsTUFBSTtBQUFBO0FBQUksSUFBSSxJQUFFLE1BQUssS0FBRyxPQUFHLEtBQUcsTUFBSyxLQUFHLE1BQUssS0FBRyxPQUFHLEtBQUcsTUFBSyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLE1BQUssS0FBRyxHQUFFLEtBQUcsTUFBSyxLQUFHLElBQUcsS0FBRyxHQUFFLEtBQUcsR0FBRSxLQUFHLE1BQUssS0FBRztBQUFHLGNBQWE7QUFBQyxTQUFPLEFBQUssS0FBRSxRQUFQLElBQVcsTUFBSSxBQUFLLE9BQUwsS0FBUSxLQUFHLEtBQUc7QUFBQTtBQUMzZSxZQUFZLEdBQUU7QUFBQyxNQUFFLEVBQUU7QUFBSyxNQUFHLEFBQUssS0FBRSxPQUFQO0FBQVUsV0FBTztBQUFFLE1BQUcsQUFBSyxLQUFFLE9BQVA7QUFBVSxXQUFPLEFBQUssU0FBTCxLQUFVLElBQUU7QUFBRSxFQUFJLE9BQUosS0FBUyxNQUFHO0FBQUksTUFBRyxBQUFJLEdBQUcsZUFBUCxHQUFrQjtBQUFDLElBQUksT0FBSixLQUFTLE1BQUcsQUFBTyxPQUFQLE9BQVUsR0FBRyxlQUFhO0FBQUcsUUFBRTtBQUFHLFFBQUksSUFBRSxVQUFRLENBQUM7QUFBRyxTQUFHLENBQUM7QUFBRSxJQUFJLE1BQUosS0FBUSxLQUFFLFVBQVEsQ0FBQyxHQUFFLElBQUUsSUFBRSxDQUFDLEdBQUUsQUFBSSxNQUFKLEtBQVEsS0FBRTtBQUFPLFdBQU87QUFBQTtBQUFFLE1BQUU7QUFBSyxFQUFLLEtBQUUsT0FBUCxLQUFXLEFBQUssTUFBTCxLQUFPLElBQUUsR0FBRyxJQUFHLE1BQUssS0FBRSxHQUFHLElBQUcsSUFBRSxHQUFHLEdBQUU7QUFBSyxTQUFPO0FBQUE7QUFDblQsWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUcsS0FBRztBQUFHLFVBQU0sS0FBRyxHQUFFLEtBQUcsTUFBSyxNQUFNLEVBQUU7QUFBTSxNQUFFLEdBQUcsR0FBRTtBQUFHLE1BQUcsQUFBTyxNQUFQO0FBQVMsV0FBTztBQUFLLEtBQUcsR0FBRSxHQUFFO0FBQUcsUUFBSSxLQUFJLE9BQUksR0FBRSxBQUFJLE1BQUosS0FBTyxHQUFHLEdBQUU7QUFBSSxNQUFJLElBQUU7QUFBSyxFQUFJLE1BQUosSUFBTSxBQUFLLEtBQUUsT0FBUCxLQUFXLEFBQUssS0FBRSxRQUFQLElBQVcsR0FBRyxLQUFJLElBQUcsR0FBRSxJQUFHLEFBQUksTUFBSixLQUFRLE9BQUssU0FBUSxDQUFLLEtBQUUsT0FBUCxLQUFXLEFBQUssTUFBTCxNQUFRLEFBQUssTUFBTCxNQUFTLENBQU8sT0FBUCxPQUFVLEtBQUcsSUFBSSxJQUFJLENBQUMsTUFBSSxHQUFHLElBQUksS0FBSSxHQUFHLEdBQUU7QUFBSSxPQUFHO0FBQUE7QUFBRSxZQUFZLEdBQUUsR0FBRTtBQUFDLElBQUUsU0FBTztBQUFFLE1BQUksSUFBRSxFQUFFO0FBQVUsRUFBTyxNQUFQLFFBQVcsR0FBRSxTQUFPO0FBQUcsTUFBRTtBQUFFLE9BQUksSUFBRSxFQUFFLFFBQU8sQUFBTyxNQUFQO0FBQVUsTUFBRSxjQUFZLEdBQUUsSUFBRSxFQUFFLFdBQVUsQUFBTyxNQUFQLFFBQVcsR0FBRSxjQUFZLElBQUcsSUFBRSxHQUFFLElBQUUsRUFBRTtBQUFPLFNBQU8sQUFBSSxFQUFFLFFBQU4sSUFBVSxFQUFFLFlBQVU7QUFBQTtBQUN6ZSxZQUFZLEdBQUUsR0FBRTtBQUFDLFdBQVEsSUFBRSxFQUFFLGNBQWEsSUFBRSxFQUFFLGdCQUFlLElBQUUsRUFBRSxhQUFZLEtBQUUsRUFBRSxpQkFBZ0IsS0FBRSxFQUFFLGNBQWEsSUFBRSxNQUFHO0FBQUMsUUFBSSxLQUFFLEtBQUcsR0FBRyxLQUFHLElBQUUsS0FBRyxJQUFFLEtBQUUsR0FBRTtBQUFHLFFBQUcsQUFBSyxPQUFMLElBQU87QUFBQyxVQUFHLEFBQUssS0FBRSxPQUFQLEtBQVcsQUFBSyxLQUFFLE9BQVAsR0FBVTtBQUFDLGFBQUU7QUFBRSxXQUFHO0FBQUcsWUFBSSxLQUFFO0FBQUUsV0FBRSxNQUFHLE1BQUksS0FBRSxLQUFFLE1BQUksS0FBRyxLQUFFLEtBQUUsTUFBSTtBQUFBO0FBQUE7QUFBUyxZQUFHLEtBQUksR0FBRSxnQkFBYztBQUFHLFVBQUcsQ0FBQztBQUFBO0FBQUUsTUFBRSxHQUFHLEdBQUUsTUFBSSxJQUFFLElBQUU7QUFBRyxNQUFFO0FBQUUsTUFBRyxBQUFJLE1BQUo7QUFBTSxJQUFPLE1BQVAsUUFBVyxPQUFJLE1BQUksR0FBRyxJQUFHLEVBQUUsZUFBYSxNQUFLLEVBQUUsbUJBQWlCO0FBQUEsT0FBTztBQUFDLFFBQUcsQUFBTyxNQUFQLE1BQVM7QUFBQyxVQUFHLEVBQUUscUJBQW1CO0FBQUU7QUFBTyxZQUFJLE1BQUksR0FBRztBQUFBO0FBQUcsSUFBSyxNQUFMLEtBQVEsS0FBRSxHQUFHLEtBQUssTUFBSyxJQUFHLEFBQU8sT0FBUCxPQUFXLE1BQUcsQ0FBQyxJQUFHLEtBQUcsR0FBRyxJQUFHLE9BQUssR0FBRyxLQUFLLElBQ3JmLElBQUUsTUFBSSxBQUFLLE1BQUwsS0FBTyxJQUFFLEdBQUcsSUFBRyxHQUFHLEtBQUssTUFBSyxNQUFLLEtBQUUsR0FBRyxJQUFHLElBQUUsR0FBRyxHQUFFLEdBQUcsS0FBSyxNQUFLO0FBQUssTUFBRSxtQkFBaUI7QUFBRSxNQUFFLGVBQWE7QUFBQTtBQUFBO0FBQzVHLFlBQVksR0FBRTtBQUFDLE9BQUc7QUFBRyxPQUFHLEtBQUc7QUFBRSxNQUFHLEFBQUssS0FBRSxRQUFQO0FBQVcsVUFBTSxNQUFNLEVBQUU7QUFBTSxNQUFJLElBQUUsRUFBRTtBQUFhLE1BQUcsUUFBTSxFQUFFLGlCQUFlO0FBQUUsV0FBTztBQUFLLE1BQUksSUFBRSxHQUFHLEdBQUUsTUFBSSxJQUFFLElBQUU7QUFBRyxNQUFHLEFBQUksTUFBSjtBQUFNLFdBQU87QUFBSyxNQUFJLElBQUU7QUFBRSxNQUFJLElBQUU7QUFBRSxPQUFHO0FBQUcsTUFBSSxLQUFFO0FBQUssTUFBRyxNQUFJLEtBQUcsTUFBSTtBQUFFLFVBQUssR0FBRyxHQUFFO0FBQUc7QUFBRyxRQUFHO0FBQUM7QUFBSztBQUFBLGFBQVksSUFBTjtBQUFTLFNBQUcsR0FBRTtBQUFBO0FBQUEsU0FBUztBQUFHO0FBQUssS0FBRyxVQUFRO0FBQUUsTUFBRTtBQUFFLEVBQU8sTUFBUCxPQUFTLElBQUUsSUFBRyxLQUFFLE1BQUssSUFBRSxHQUFFLElBQUU7QUFBRyxNQUFHLEFBQUssTUFBRyxRQUFSO0FBQVksT0FBRyxHQUFFO0FBQUEsV0FBVyxBQUFJLE1BQUosR0FBTTtBQUFDLElBQUksTUFBSixLQUFRLE1BQUcsSUFBRyxFQUFFLFdBQVUsR0FBRSxVQUFRLE9BQUcsR0FBRyxFQUFFLGlCQUFnQixJQUFFLEdBQUcsSUFBRyxBQUFJLE1BQUosS0FBUSxLQUFFLEdBQUcsR0FBRTtBQUFLLFFBQUcsQUFBSSxNQUFKO0FBQU0sWUFBTSxJQUFFLElBQUcsR0FBRyxHQUFFLElBQUcsR0FBRyxHQUFFLElBQUcsR0FBRyxHQUFFLE1BQUs7QUFBRSxNQUFFLGVBQ3JmLEVBQUUsUUFBUTtBQUFVLE1BQUUsZ0JBQWM7QUFBRSxZQUFPO0FBQUEsV0FBUTtBQUFBLFdBQU87QUFBRSxjQUFNLE1BQU0sRUFBRTtBQUFBLFdBQVc7QUFBRSxXQUFHO0FBQUc7QUFBQSxXQUFXO0FBQUUsV0FBRyxHQUFFO0FBQUcsWUFBSSxLQUFFLGNBQVksS0FBSSxLQUFFLEtBQUcsTUFBSSxLQUFJLEtBQUcsSUFBRztBQUFDLGNBQUcsQUFBSSxHQUFHLEdBQUUsT0FBVDtBQUFZO0FBQU0sY0FBRSxFQUFFO0FBQWUsY0FBSSxLQUFFLE9BQUssR0FBRTtBQUFDO0FBQUssY0FBRSxlQUFhLEVBQUUsaUJBQWU7QUFBRTtBQUFBO0FBQU0sWUFBRSxnQkFBYyxHQUFHLEdBQUcsS0FBSyxNQUFLLElBQUc7QUFBRztBQUFBO0FBQU0sV0FBRztBQUFHO0FBQUEsV0FBVztBQUFFLFdBQUcsR0FBRTtBQUFHLFlBQUksS0FBRSxhQUFXO0FBQUU7QUFBTSxZQUFFLEVBQUU7QUFBVyxhQUFJLElBQUUsSUFBRyxJQUFFLEtBQUc7QUFBQyxjQUFJLEtBQUUsS0FBRyxHQUFHO0FBQUcsZUFBRSxLQUFHO0FBQUUsZUFBRSxFQUFFO0FBQUcsZUFBRSxLQUFJLEtBQUU7QUFBRyxlQUFHLENBQUM7QUFBQTtBQUFFLFlBQUU7QUFBRSxZQUFFLE1BQUk7QUFBRSxZQUFHLE9BQUksSUFBRSxNQUFJLE1BQUksSUFBRSxNQUFJLE9BQUssSUFBRSxPQUFLLE9BQUssSUFBRSxPQUFLLE1BQUksSUFBRSxNQUFJLE9BQ2xmLElBQUUsT0FBSyxPQUFLLEdBQUcsSUFBRSxTQUFPO0FBQUUsWUFBRyxLQUFHLEdBQUU7QUFBQyxZQUFFLGdCQUFjLEdBQUcsR0FBRyxLQUFLLE1BQUssSUFBRztBQUFHO0FBQUE7QUFBTSxXQUFHO0FBQUc7QUFBQSxXQUFXO0FBQUUsV0FBRztBQUFHO0FBQUE7QUFBYyxjQUFNLE1BQU0sRUFBRTtBQUFBO0FBQUE7QUFBUSxLQUFHLEdBQUU7QUFBSyxTQUFPLEVBQUUsaUJBQWUsSUFBRSxHQUFHLEtBQUssTUFBSyxLQUFHO0FBQUE7QUFBSyxZQUFZLEdBQUUsR0FBRTtBQUFDLE9BQUcsQ0FBQztBQUFHLE9BQUcsQ0FBQztBQUFHLElBQUUsa0JBQWdCO0FBQUUsSUFBRSxlQUFhLENBQUM7QUFBRSxPQUFJLElBQUUsRUFBRSxpQkFBZ0IsSUFBRSxLQUFHO0FBQUMsUUFBSSxJQUFFLEtBQUcsR0FBRyxJQUFHLElBQUUsS0FBRztBQUFFLE1BQUUsS0FBRztBQUFHLFNBQUcsQ0FBQztBQUFBO0FBQUE7QUFDMVUsWUFBWSxHQUFFO0FBQUMsTUFBRyxBQUFLLEtBQUUsUUFBUDtBQUFXLFVBQU0sTUFBTSxFQUFFO0FBQU07QUFBSyxNQUFHLE1BQUksS0FBRyxBQUFLLEdBQUUsZUFBYSxPQUFwQixHQUF1QjtBQUFDLFFBQUksSUFBRTtBQUFFLFFBQUksSUFBRSxHQUFHLEdBQUU7QUFBRyxJQUFLLE1BQUcsUUFBUixLQUFjLEtBQUUsR0FBRyxHQUFFLElBQUcsSUFBRSxHQUFHLEdBQUU7QUFBQTtBQUFTLFFBQUUsR0FBRyxHQUFFLElBQUcsSUFBRSxHQUFHLEdBQUU7QUFBRyxFQUFJLEVBQUUsUUFBTixLQUFXLEFBQUksTUFBSixLQUFRLE1BQUcsSUFBRyxFQUFFLFdBQVUsR0FBRSxVQUFRLE9BQUcsR0FBRyxFQUFFLGlCQUFnQixJQUFFLEdBQUcsSUFBRyxBQUFJLE1BQUosS0FBUSxLQUFFLEdBQUcsR0FBRTtBQUFLLE1BQUcsQUFBSSxNQUFKO0FBQU0sVUFBTSxJQUFFLElBQUcsR0FBRyxHQUFFLElBQUcsR0FBRyxHQUFFLElBQUcsR0FBRyxHQUFFLE1BQUs7QUFBRSxJQUFFLGVBQWEsRUFBRSxRQUFRO0FBQVUsSUFBRSxnQkFBYztBQUFFLEtBQUc7QUFBRyxLQUFHLEdBQUU7QUFBSyxTQUFPO0FBQUE7QUFDelksY0FBYTtBQUFDLE1BQUcsQUFBTyxPQUFQLE1BQVU7QUFBQyxRQUFJLElBQUU7QUFBRyxTQUFHO0FBQUssTUFBRSxRQUFRLFNBQVMsSUFBRTtBQUFDLFNBQUUsZ0JBQWMsS0FBRyxHQUFFO0FBQWEsU0FBRyxJQUFFO0FBQUE7QUFBQTtBQUFPO0FBQUE7QUFBSyxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRTtBQUFFLE9BQUc7QUFBRSxNQUFHO0FBQUMsV0FBTyxFQUFFO0FBQUEsWUFBRztBQUFRLFFBQUUsR0FBRSxBQUFJLE1BQUosS0FBUSxPQUFLO0FBQUE7QUFBQTtBQUFPLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUUsT0FBRztBQUFHLE9BQUc7QUFBRSxNQUFHO0FBQUMsV0FBTyxFQUFFO0FBQUEsWUFBRztBQUFRLFFBQUUsR0FBRSxBQUFJLE1BQUosS0FBUSxPQUFLO0FBQUE7QUFBQTtBQUFPLFlBQVksR0FBRSxHQUFFO0FBQUMsSUFBRSxJQUFHO0FBQUksUUFBSTtBQUFFLFFBQUk7QUFBQTtBQUFFLGNBQWE7QUFBQyxPQUFHLEdBQUc7QUFBUSxJQUFFO0FBQUE7QUFDNVYsWUFBWSxHQUFFLEdBQUU7QUFBQyxJQUFFLGVBQWE7QUFBSyxJQUFFLGdCQUFjO0FBQUUsTUFBSSxJQUFFLEVBQUU7QUFBYyxFQUFLLE1BQUwsTUFBUyxHQUFFLGdCQUFjLElBQUcsR0FBRztBQUFJLE1BQUcsQUFBTyxNQUFQO0FBQVMsU0FBSSxJQUFFLEVBQUUsUUFBTyxBQUFPLE1BQVAsUUFBVTtBQUFDLFVBQUksSUFBRTtBQUFFLGNBQU8sRUFBRTtBQUFBLGFBQVU7QUFBRSxjQUFFLEVBQUUsS0FBSztBQUFrQixVQUFPLE1BQVAsUUFBVSxBQUFTLE1BQVQsVUFBWTtBQUFLO0FBQUEsYUFBVztBQUFFO0FBQUssWUFBRTtBQUFHLFlBQUU7QUFBRztBQUFLO0FBQUEsYUFBVztBQUFFLGFBQUc7QUFBRztBQUFBLGFBQVc7QUFBRTtBQUFLO0FBQUEsYUFBVztBQUFHLFlBQUU7QUFBRztBQUFBLGFBQVc7QUFBRyxZQUFFO0FBQUc7QUFBQSxhQUFXO0FBQUcsYUFBRztBQUFHO0FBQUEsYUFBVztBQUFBLGFBQVE7QUFBRztBQUFBO0FBQUssVUFBRSxFQUFFO0FBQUE7QUFBTyxNQUFFO0FBQUUsTUFBRSxHQUFHLEVBQUUsU0FBUTtBQUFNLE1BQUUsS0FBRyxLQUFHO0FBQUUsTUFBRTtBQUFFLE9BQUc7QUFBSyxPQUFHLEtBQUcsS0FBRztBQUFBO0FBQ3ZjLFlBQVksR0FBRSxHQUFFO0FBQUMsS0FBRTtBQUFDLFFBQUksSUFBRTtBQUFFLFFBQUc7QUFBQztBQUFLLFNBQUcsVUFBUTtBQUFHLFVBQUcsSUFBRztBQUFDLGlCQUFRLElBQUUsRUFBRSxlQUFjLEFBQU8sTUFBUCxRQUFVO0FBQUMsY0FBSSxJQUFFLEVBQUU7QUFBTSxVQUFPLE1BQVAsUUFBVyxHQUFFLFVBQVE7QUFBTSxjQUFFLEVBQUU7QUFBQTtBQUFLLGFBQUc7QUFBQTtBQUFHLFdBQUc7QUFBRSxVQUFFLElBQUUsSUFBRTtBQUFLLFdBQUc7QUFBRyxTQUFHLFVBQVE7QUFBSyxVQUFHLEFBQU8sTUFBUCxRQUFVLEFBQU8sRUFBRSxXQUFULE1BQWdCO0FBQUMsWUFBRTtBQUFFLGFBQUc7QUFBRSxZQUFFO0FBQUs7QUFBQTtBQUFNLFNBQUU7QUFBQyxZQUFJLEtBQUUsR0FBRSxLQUFFLEVBQUUsUUFBTyxLQUFFLEdBQUUsSUFBRTtBQUFFLFlBQUU7QUFBRSxXQUFFLFNBQU87QUFBSyxXQUFFLGNBQVksR0FBRSxhQUFXO0FBQUssWUFBRyxBQUFPLE1BQVAsUUFBVSxBQUFXLE9BQU8sTUFBbEIsWUFBcUIsQUFBYSxPQUFPLEVBQUUsU0FBdEIsWUFBMkI7QUFBQyxjQUFJLEtBQUU7QUFBRSxjQUFHLEFBQUssSUFBRSxPQUFLLE9BQVosR0FBZTtBQUFDLGdCQUFJLEtBQUUsR0FBRTtBQUFVLGlCQUFHLElBQUUsY0FBWSxHQUFFLGFBQVksR0FBRSxnQkFBYyxHQUFFLGVBQWMsR0FBRSxRQUFNLEdBQUUsU0FDcGYsSUFBRSxjQUFZLE1BQUssR0FBRSxnQkFBYztBQUFBO0FBQU0sY0FBSSxLQUFFLEFBQUssR0FBRSxVQUFRLE9BQWYsR0FBa0IsS0FBRTtBQUFFLGFBQUU7QUFBQyxnQkFBSTtBQUFFLGdCQUFHLEtBQUUsQUFBSyxHQUFFLFFBQVAsSUFBVztBQUFDLGtCQUFJLEtBQUUsR0FBRTtBQUFjLGtCQUFHLEFBQU8sT0FBUDtBQUFTLHFCQUFFLEFBQU8sR0FBRSxlQUFULE9BQW9CLE9BQUc7QUFBQSxtQkFBTztBQUFDLG9CQUFJLEtBQUUsR0FBRTtBQUFjLHFCQUFFLEFBQVMsR0FBRSxhQUFYLFNBQW9CLFFBQUcsQUFBSyxHQUFFLCtCQUFQLE9BQWtDLE9BQUcsS0FBRSxRQUFHO0FBQUE7QUFBQTtBQUFJLGdCQUFHLElBQUU7QUFBQyxrQkFBSSxLQUFFLEdBQUU7QUFBWSxrQkFBRyxBQUFPLE9BQVAsTUFBUztBQUFDLG9CQUFJLEtBQUUsSUFBSTtBQUFJLG1CQUFFLElBQUk7QUFBRyxtQkFBRSxjQUFZO0FBQUE7QUFBTyxtQkFBRSxJQUFJO0FBQUcsa0JBQUcsQUFBSyxJQUFFLE9BQUssT0FBWixHQUFlO0FBQUMsbUJBQUUsU0FBTztBQUFHLG1CQUFFLFNBQU87QUFBTSxtQkFBRSxTQUFPO0FBQU0sb0JBQUcsQUFBSSxHQUFFLFFBQU47QUFBVSxzQkFBRyxBQUFPLEdBQUUsY0FBVDtBQUFtQix1QkFBRSxNQUFJO0FBQUEsdUJBQU87QUFBQyx3QkFBSSxLQUFFLEdBQUcsSUFBRztBQUFHLHVCQUFFLE1BQUk7QUFBRSx1QkFBRyxJQUFFO0FBQUE7QUFBRyxtQkFBRSxTQUFPO0FBQUU7QUFBQTtBQUFRLGtCQUM1ZjtBQUFPLG1CQUFFO0FBQUUsa0JBQUksS0FBRSxHQUFFO0FBQVUsY0FBTyxPQUFQLE9BQVUsTUFBRSxHQUFFLFlBQVUsSUFBSSxNQUFHLElBQUUsSUFBSSxPQUFJLEdBQUUsSUFBSSxJQUFFLE1BQUssS0FBRSxHQUFFLElBQUksS0FBRyxBQUFTLE1BQVQsVUFBYSxLQUFFLElBQUksT0FBSSxHQUFFLElBQUksSUFBRTtBQUFLLGtCQUFHLENBQUMsRUFBRSxJQUFJLEtBQUc7QUFBQyxrQkFBRSxJQUFJO0FBQUcsb0JBQUksS0FBRSxHQUFHLEtBQUssTUFBSyxJQUFFLElBQUU7QUFBRyxtQkFBRSxLQUFLLElBQUU7QUFBQTtBQUFHLGlCQUFFLFNBQU87QUFBSyxpQkFBRSxRQUFNO0FBQUU7QUFBQTtBQUFRLGlCQUFFLEdBQUU7QUFBQSxtQkFBYSxBQUFPLE9BQVA7QUFBVSxjQUFFLE1BQU8sSUFBRyxHQUFFLFNBQU8sdUJBQXFCO0FBQUE7QUFBeUwsUUFBSSxNQUFKLEtBQVEsS0FBRTtBQUFHLFlBQUUsR0FBRyxHQUFFO0FBQUcsYUFDcGY7QUFBRSxXQUFFO0FBQUMsa0JBQU8sR0FBRTtBQUFBLGlCQUFVO0FBQUUsbUJBQUU7QUFBRSxpQkFBRSxTQUFPO0FBQUssbUJBQUcsQ0FBQztBQUFFLGlCQUFFLFNBQU87QUFBRSxrQkFBSSxLQUFFLEdBQUcsSUFBRSxJQUFFO0FBQUcsaUJBQUcsSUFBRTtBQUFHO0FBQUEsaUJBQWE7QUFBRSxtQkFBRTtBQUFFLGtCQUFJLEtBQUUsR0FBRSxNQUFLLEtBQUUsR0FBRTtBQUFVLGtCQUFHLEFBQUssSUFBRSxRQUFNLFFBQWIsS0FBbUIsQ0FBYSxPQUFPLEdBQUUsNkJBQXRCLGNBQWdELEFBQU8sT0FBUCxRQUFVLEFBQWEsT0FBTyxHQUFFLHNCQUF0QixjQUEwQyxDQUFPLE9BQVAsUUFBVyxDQUFDLEdBQUcsSUFBSSxPQUFLO0FBQUMsbUJBQUUsU0FBTztBQUFLLHFCQUFHLENBQUM7QUFBRSxtQkFBRSxTQUFPO0FBQUUsb0JBQUksS0FBRSxHQUFHLElBQUUsSUFBRTtBQUFHLG1CQUFHLElBQUU7QUFBRztBQUFBO0FBQUE7QUFBUyxlQUFFLEdBQUU7QUFBQSxpQkFBYSxBQUFPLE9BQVA7QUFBQTtBQUFVLFNBQUc7QUFBQSxhQUFTLElBQU47QUFBVSxVQUFFO0FBQUcsWUFBSSxLQUFHLEFBQU8sTUFBUCxRQUFXLEtBQUUsSUFBRSxFQUFFO0FBQVE7QUFBQTtBQUFTO0FBQUEsV0FBWTtBQUFBO0FBQzNiLGNBQWE7QUFBQyxNQUFJLElBQUUsR0FBRztBQUFRLEtBQUcsVUFBUTtBQUFHLFNBQU8sQUFBTyxNQUFQLE9BQVMsS0FBRztBQUFBO0FBQUUsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUU7QUFBRSxPQUFHO0FBQUcsTUFBSSxJQUFFO0FBQUssUUFBSSxLQUFHLE1BQUksS0FBRyxHQUFHLEdBQUU7QUFBRztBQUFHLFFBQUc7QUFBQztBQUFLO0FBQUEsYUFBWSxHQUFOO0FBQVMsU0FBRyxHQUFFO0FBQUE7QUFBQSxTQUFTO0FBQUc7QUFBSyxNQUFFO0FBQUUsS0FBRyxVQUFRO0FBQUUsTUFBRyxBQUFPLE1BQVA7QUFBUyxVQUFNLE1BQU0sRUFBRTtBQUFNLE1BQUU7QUFBSyxNQUFFO0FBQUUsU0FBTztBQUFBO0FBQUUsY0FBYTtBQUFDLFNBQUssQUFBTyxNQUFQO0FBQVUsT0FBRztBQUFBO0FBQUcsY0FBYTtBQUFDLFNBQUssQUFBTyxNQUFQLFFBQVUsQ0FBQztBQUFNLE9BQUc7QUFBQTtBQUFHLFlBQVksR0FBRTtBQUFDLE1BQUksSUFBRSxHQUFHLEVBQUUsV0FBVSxHQUFFO0FBQUksSUFBRSxnQkFBYyxFQUFFO0FBQWEsRUFBTyxNQUFQLE9BQVMsR0FBRyxLQUFHLElBQUU7QUFBRSxLQUFHLFVBQVE7QUFBQTtBQUM1YSxZQUFZLEdBQUU7QUFBQyxNQUFJLElBQUU7QUFBRSxLQUFFO0FBQUMsUUFBSSxJQUFFLEVBQUU7QUFBVSxRQUFFLEVBQUU7QUFBTyxRQUFHLEFBQUssR0FBRSxRQUFNLFVBQWIsR0FBbUI7QUFBQyxVQUFFLEdBQUcsR0FBRSxHQUFFO0FBQUksVUFBRyxBQUFPLE1BQVAsTUFBUztBQUFDLFlBQUU7QUFBRTtBQUFBO0FBQU8sVUFBRTtBQUFFLFVBQUcsQUFBSyxFQUFFLFFBQVAsTUFBWSxBQUFLLEVBQUUsUUFBUCxNQUFZLEFBQU8sRUFBRSxrQkFBVCxRQUF3QixBQUFLLE1BQUcsZ0JBQVIsS0FBcUIsQUFBSyxHQUFFLE9BQUssT0FBWixHQUFlO0FBQUMsaUJBQVEsSUFBRSxHQUFFLElBQUUsRUFBRSxPQUFNLEFBQU8sTUFBUDtBQUFVLGVBQUcsRUFBRSxRQUFNLEVBQUUsWUFBVyxJQUFFLEVBQUU7QUFBUSxVQUFFLGFBQVc7QUFBQTtBQUFFLE1BQU8sTUFBUCxRQUFVLEFBQUssR0FBRSxRQUFNLFVBQWIsS0FBcUIsQ0FBTyxFQUFFLGdCQUFULFFBQXVCLEdBQUUsY0FBWSxFQUFFLGNBQWEsQUFBTyxFQUFFLGVBQVQsUUFBc0IsQ0FBTyxFQUFFLGVBQVQsUUFBc0IsR0FBRSxXQUFXLGFBQVcsRUFBRSxjQUFhLEVBQUUsYUFBVyxFQUFFLGFBQVksSUFBRSxFQUFFLFNBQVEsQ0FDL2UsRUFBRSxlQUQ2ZSxPQUNsZSxFQUFFLFdBQVcsYUFBVyxJQUFFLEVBQUUsY0FBWSxHQUFFLEVBQUUsYUFBVztBQUFBLFdBQVE7QUFBQyxVQUFFLEdBQUc7QUFBRyxVQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsVUFBRSxTQUFPO0FBQUssWUFBRTtBQUFFO0FBQUE7QUFBTyxNQUFPLE1BQVAsUUFBVyxHQUFFLGNBQVksRUFBRSxhQUFXLE1BQUssRUFBRSxTQUFPO0FBQUE7QUFBTSxRQUFFLEVBQUU7QUFBUSxRQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsVUFBRTtBQUFFO0FBQUE7QUFBTyxRQUFFLElBQUU7QUFBQSxXQUFRLEFBQU8sTUFBUDtBQUFVLEVBQUksTUFBSixLQUFRLEtBQUU7QUFBQTtBQUFHLFlBQVksR0FBRTtBQUFDLE1BQUksSUFBRTtBQUFLLEtBQUcsSUFBRyxHQUFHLEtBQUssTUFBSyxHQUFFO0FBQUksU0FBTztBQUFBO0FBQ3RULFlBQVksR0FBRSxHQUFFO0FBQUM7QUFBRztBQUFBLFNBQVcsQUFBTyxPQUFQO0FBQVcsTUFBRyxBQUFLLEtBQUUsUUFBUDtBQUFXLFVBQU0sTUFBTSxFQUFFO0FBQU0sTUFBSSxJQUFFLEVBQUU7QUFBYSxNQUFHLEFBQU8sTUFBUDtBQUFTLFdBQU87QUFBSyxJQUFFLGVBQWE7QUFBSyxJQUFFLGdCQUFjO0FBQUUsTUFBRyxNQUFJLEVBQUU7QUFBUSxVQUFNLE1BQU0sRUFBRTtBQUFNLElBQUUsZUFBYTtBQUFLLE1BQUksSUFBRSxFQUFFLFFBQU0sRUFBRSxZQUFXLElBQUUsR0FBRSxLQUFFLEVBQUUsZUFBYSxDQUFDO0FBQUUsSUFBRSxlQUFhO0FBQUUsSUFBRSxpQkFBZTtBQUFFLElBQUUsY0FBWTtBQUFFLElBQUUsZ0JBQWM7QUFBRSxJQUFFLG9CQUFrQjtBQUFFLElBQUUsa0JBQWdCO0FBQUUsTUFBRSxFQUFFO0FBQWMsV0FBUSxLQUFFLEVBQUUsWUFBVyxLQUFFLEVBQUUsaUJBQWdCLElBQUUsTUFBRztBQUFDLFFBQUksSUFBRSxLQUFHLEdBQUcsS0FBRyxLQUFFLEtBQUc7QUFBRSxNQUFFLEtBQUc7QUFBRSxPQUFFLEtBQUc7QUFBRyxPQUFFLEtBQUc7QUFBRyxVQUFHLENBQUM7QUFBQTtBQUFFLEVBQ2pmLE9BRGlmLFFBQzdlLEFBQUssS0FBRSxRQUFQLEtBQVksR0FBRyxJQUFJLE1BQUksR0FBRyxPQUFPO0FBQUcsUUFBSSxLQUFJLEtBQUUsSUFBRSxNQUFLLElBQUU7QUFBRyxNQUFFLEVBQUUsUUFBTSxBQUFPLEVBQUUsZUFBVCxPQUFxQixHQUFFLFdBQVcsYUFBVyxHQUFFLElBQUUsRUFBRSxlQUFhLElBQUUsSUFBRSxJQUFFLEVBQUU7QUFBWSxNQUFHLEFBQU8sTUFBUCxNQUFTO0FBQUMsUUFBRTtBQUFFLFNBQUc7QUFBRyxPQUFHLFVBQVE7QUFBSyxTQUFHO0FBQUcsU0FBRTtBQUFLLFFBQUcsR0FBRyxLQUFHO0FBQUMsVUFBRyxvQkFBbUI7QUFBRSxhQUFFLEVBQUMsT0FBTSxHQUFFLGdCQUFlLEtBQUksR0FBRTtBQUFBO0FBQW1CO0FBQUUsY0FBRyxLQUFHLE1BQUUsR0FBRSxrQkFBZ0IsR0FBRSxlQUFhLFFBQVEsTUFBRSxHQUFFLGdCQUFjLEdBQUUsbUJBQWlCLEFBQUksR0FBRSxlQUFOLEdBQWlCO0FBQUMsaUJBQUUsR0FBRTtBQUFXLGlCQUFFLEdBQUU7QUFBYSxnQkFBRSxHQUFFO0FBQVUsaUJBQUUsR0FBRTtBQUFZLGdCQUFHO0FBQUMsaUJBQUUsVUFBUyxFQUFFO0FBQUEscUJBQWUsSUFBTjtBQUFVLG1CQUFFO0FBQ25mO0FBQUE7QUFBUSxnQkFBSSxLQUFFLEdBQUUsS0FBRSxJQUFHLEtBQUUsSUFBRyxLQUFFLEdBQUUsS0FBRSxHQUFFLEtBQUUsSUFBRSxLQUFFO0FBQUs7QUFBRSx5QkFBTztBQUFDLHlCQUFRLFFBQUk7QUFBQyx5QkFBSSxNQUFHLEFBQUksT0FBSixLQUFPLEFBQUksR0FBRSxhQUFOLEtBQWlCLE1BQUUsS0FBRTtBQUFHLHlCQUFJLEtBQUcsQUFBSSxPQUFKLEtBQU8sQUFBSSxHQUFFLGFBQU4sS0FBaUIsTUFBRSxLQUFFO0FBQUcsa0JBQUksR0FBRSxhQUFOLEtBQWlCLE9BQUcsR0FBRSxVQUFVO0FBQVEsc0JBQUcsQUFBUSxNQUFFLEdBQUUsZ0JBQVo7QUFBd0I7QUFBTSx1QkFBRTtBQUFFLHVCQUFFO0FBQUE7QUFBRSwyQkFBTztBQUFDLHNCQUFHLE9BQUk7QUFBRTtBQUFRLHlCQUFJLE1BQUcsRUFBRSxPQUFJLE1BQUksTUFBRTtBQUFHLHlCQUFJLEtBQUcsRUFBRSxPQUFJLE1BQUksTUFBRTtBQUFHLHNCQUFHLEFBQVEsTUFBRSxHQUFFLGlCQUFaO0FBQXlCO0FBQU0sdUJBQUU7QUFBRSx1QkFBRSxHQUFFO0FBQUE7QUFBVyxxQkFBRTtBQUFBO0FBQUUsaUJBQUUsQUFBSyxPQUFMLE1BQVEsQUFBSyxPQUFMLEtBQU8sT0FBSyxFQUFDLE9BQU0sSUFBRSxLQUFJO0FBQUE7QUFBUSxpQkFBRTtBQUFLLFdBQUUsTUFBRyxFQUFDLE9BQU0sR0FBRSxLQUFJO0FBQUE7QUFBUSxXQUFFO0FBQUssU0FBRyxFQUFDLGFBQVksSUFBRSxnQkFBZTtBQUFHLFNBQUc7QUFBRyxTQUFHO0FBQUssU0FBRztBQUFHLFFBQUU7QUFBRTtBQUFHLFVBQUc7QUFBQztBQUFBLGVBQVcsSUFBTjtBQUFVLFlBQUcsQUFDdmdCLE1BRHVnQjtBQUNyZ0IsZ0JBQU0sTUFBTSxFQUFFO0FBQU0sV0FBRyxHQUFFO0FBQUksWUFBRSxFQUFFO0FBQUE7QUFBQSxXQUFpQixBQUFPLE1BQVA7QUFBVSxTQUFHO0FBQUssUUFBRTtBQUFFO0FBQUcsVUFBRztBQUFDLGFBQUksS0FBRSxHQUFFLEFBQU8sTUFBUCxRQUFVO0FBQUMsY0FBSSxLQUFFLEVBQUU7QUFBTSxlQUFFLE1BQUksR0FBRyxFQUFFLFdBQVU7QUFBSSxjQUFHLEtBQUUsS0FBSTtBQUFDLGdCQUFJLEtBQUUsRUFBRTtBQUFVLGdCQUFHLEFBQU8sT0FBUCxNQUFTO0FBQUMsa0JBQUksS0FBRSxHQUFFO0FBQUksY0FBTyxPQUFQLFFBQVcsQ0FBYSxPQUFPLE9BQXBCLGFBQXNCLEdBQUUsUUFBTSxHQUFFLFVBQVE7QUFBQTtBQUFBO0FBQU8sa0JBQU8sS0FBRTtBQUFBLGlCQUFXO0FBQUUsaUJBQUc7QUFBRyxnQkFBRSxTQUFPO0FBQUc7QUFBQSxpQkFBVztBQUFFLGlCQUFHO0FBQUcsZ0JBQUUsU0FBTztBQUFHLGlCQUFHLEVBQUUsV0FBVTtBQUFHO0FBQUEsaUJBQVc7QUFBSyxnQkFBRSxTQUFPO0FBQU07QUFBQSxpQkFBVztBQUFLLGdCQUFFLFNBQU87QUFBTSxpQkFBRyxFQUFFLFdBQVU7QUFBRztBQUFBLGlCQUFXO0FBQUUsaUJBQUcsRUFBRSxXQUFVO0FBQUc7QUFBQSxpQkFBVztBQUFFLG1CQUFFO0FBQUUsaUJBQUcsSUFBRTtBQUFHLGtCQUFJLEtBQUUsR0FBRTtBQUFVLGlCQUFHO0FBQUcsY0FDbmYsT0FEbWYsUUFDaGYsR0FBRztBQUFBO0FBQUcsY0FBRSxFQUFFO0FBQUE7QUFBQSxlQUFrQixJQUFOO0FBQVUsWUFBRyxBQUFPLE1BQVA7QUFBUyxnQkFBTSxNQUFNLEVBQUU7QUFBTSxXQUFHLEdBQUU7QUFBSSxZQUFFLEVBQUU7QUFBQTtBQUFBLFdBQWlCLEFBQU8sTUFBUDtBQUFVLFNBQUU7QUFBRyxTQUFFO0FBQUssU0FBRSxHQUFFO0FBQVksU0FBRSxHQUFFO0FBQWUsUUFBRyxPQUFJLE1BQUcsTUFBRyxHQUFFLGlCQUFlLEdBQUcsR0FBRSxjQUFjLGlCQUFnQixLQUFHO0FBQUMsTUFBTyxPQUFQLFFBQVUsR0FBRyxPQUFLLE1BQUUsR0FBRSxPQUFNLEtBQUUsR0FBRSxLQUFJLEFBQVMsT0FBVCxVQUFhLE1BQUUsS0FBRyxvQkFBbUIsS0FBRyxJQUFFLGlCQUFlLElBQUUsR0FBRSxlQUFhLEtBQUssSUFBSSxJQUFFLEdBQUUsTUFBTSxXQUFVLE1BQUcsTUFBRSxHQUFFLGlCQUFlLGFBQVcsR0FBRSxlQUFhLFFBQU8sR0FBRSxnQkFBZSxNQUFFLEdBQUUsZ0JBQWUsS0FBRSxHQUFFLFlBQVksUUFBTyxLQUFFLEtBQUssSUFBSSxHQUFFLE9BQU0sS0FBRyxLQUFFLEFBQ3BmLEdBQUUsUUFEa2YsU0FDOWUsS0FBRSxLQUFLLElBQUksR0FBRSxLQUFJLEtBQUcsQ0FBQyxHQUFFLFVBQVEsS0FBRSxNQUFJLE1BQUUsSUFBRSxLQUFFLElBQUUsS0FBRSxLQUFHLEtBQUUsR0FBRyxJQUFFLEtBQUcsS0FBRSxHQUFHLElBQUUsS0FBRyxNQUFHLE1BQUksQ0FBSSxHQUFFLGVBQU4sS0FBa0IsR0FBRSxlQUFhLEdBQUUsUUFBTSxHQUFFLGlCQUFlLEdBQUUsVUFBUSxHQUFFLGNBQVksR0FBRSxRQUFNLEdBQUUsZ0JBQWMsR0FBRSxXQUFVLE1BQUUsR0FBRSxlQUFjLEdBQUUsU0FBUyxHQUFFLE1BQUssR0FBRSxTQUFRLEdBQUUsbUJBQWtCLEtBQUUsS0FBRyxJQUFFLFNBQVMsS0FBRyxHQUFFLE9BQU8sR0FBRSxNQUFLLEdBQUUsV0FBVSxJQUFFLE9BQU8sR0FBRSxNQUFLLEdBQUUsU0FBUSxHQUFFLFNBQVM7QUFBUSxXQUFFO0FBQUcsV0FBSSxLQUFFLElBQUUsS0FBRSxHQUFFO0FBQVksUUFBSSxHQUFFLGFBQU4sS0FBZ0IsR0FBRSxLQUFLLEVBQUMsU0FBUSxJQUFFLE1BQUssR0FBRSxZQUFXLEtBQUksR0FBRTtBQUFZLE1BQWEsT0FBTyxHQUFFLFVBQXRCLGNBQTZCLEdBQUU7QUFBUSxXQUFJLEtBQ3JmLEdBQUUsS0FBRSxHQUFFLFFBQU87QUFBSSxhQUFFLEdBQUUsS0FBRyxHQUFFLFFBQVEsYUFBVyxHQUFFLE1BQUssR0FBRSxRQUFRLFlBQVUsR0FBRTtBQUFBO0FBQUksU0FBRyxDQUFDLENBQUM7QUFBRyxTQUFHLEtBQUc7QUFBSyxNQUFFLFVBQVE7QUFBRSxRQUFFO0FBQUU7QUFBRyxVQUFHO0FBQUMsYUFBSSxLQUFFLEdBQUUsQUFBTyxNQUFQLFFBQVU7QUFBQyxjQUFJLEtBQUUsRUFBRTtBQUFNLGVBQUUsTUFBSSxHQUFHLElBQUUsRUFBRSxXQUFVO0FBQUcsY0FBRyxLQUFFLEtBQUk7QUFBQyxpQkFBRTtBQUFPLGdCQUFJLEtBQUUsRUFBRTtBQUFJLGdCQUFHLEFBQU8sT0FBUCxNQUFTO0FBQUMsa0JBQUksS0FBRSxFQUFFO0FBQVUsc0JBQU8sRUFBRTtBQUFBLHFCQUFVO0FBQUUsdUJBQUU7QUFBRTtBQUFBO0FBQWMsdUJBQUU7QUFBQTtBQUFFLGNBQWEsT0FBTyxPQUFwQixhQUFzQixHQUFFLE1BQUcsR0FBRSxVQUFRO0FBQUE7QUFBQTtBQUFHLGNBQUUsRUFBRTtBQUFBO0FBQUEsZUFBa0IsSUFBTjtBQUFVLFlBQUcsQUFBTyxNQUFQO0FBQVMsZ0JBQU0sTUFBTSxFQUFFO0FBQU0sV0FBRyxHQUFFO0FBQUksWUFBRSxFQUFFO0FBQUE7QUFBQSxXQUFpQixBQUFPLE1BQVA7QUFBVSxRQUFFO0FBQUs7QUFBSyxRQUFFO0FBQUE7QUFBTyxNQUFFLFVBQVE7QUFBRSxNQUFHO0FBQUcsU0FBRyxPQUFHLEtBQUcsR0FBRSxLQUFHO0FBQUE7QUFBTyxTQUFJLElBQUUsR0FBRSxBQUFPLE1BQVA7QUFBVSxVQUNwZixFQUFFLFlBQVcsRUFBRSxhQUFXLE1BQUssRUFBRSxRQUFNLEtBQUksTUFBRSxHQUFFLEdBQUUsVUFBUSxNQUFLLEdBQUUsWUFBVSxPQUFNLElBQUU7QUFBRSxNQUFFLEVBQUU7QUFBYSxFQUFJLE1BQUosS0FBUSxNQUFHO0FBQU0sRUFBSSxNQUFKLElBQU0sTUFBSSxLQUFHLE9BQU0sTUFBRyxHQUFFLEtBQUcsS0FBRyxLQUFHO0FBQUUsTUFBRSxFQUFFO0FBQVUsTUFBRyxNQUFJLEFBQWEsT0FBTyxHQUFHLHNCQUF2QjtBQUF5QyxRQUFHO0FBQUMsU0FBRyxrQkFBa0IsSUFBRyxHQUFFLFFBQU8sQUFBTSxHQUFFLFFBQVEsUUFBTSxRQUF0QjtBQUFBLGFBQWlDLElBQU47QUFBQTtBQUFXLEtBQUcsR0FBRTtBQUFLLE1BQUc7QUFBRyxVQUFNLEtBQUcsT0FBRyxJQUFFLElBQUcsS0FBRyxNQUFLO0FBQUUsTUFBRyxBQUFLLEtBQUUsT0FBUDtBQUFVLFdBQU87QUFBSztBQUFLLFNBQU87QUFBQTtBQUNsWCxjQUFhO0FBQUMsU0FBSyxBQUFPLE1BQVAsUUFBVTtBQUFDLFFBQUksSUFBRSxFQUFFO0FBQVUsVUFBSSxBQUFPLE9BQVAsUUFBWSxDQUFLLEdBQUUsUUFBTSxPQUFiLElBQWdCLEdBQUcsR0FBRSxPQUFNLE1BQUcsUUFBSSxBQUFLLEVBQUUsUUFBUCxNQUFZLEdBQUcsR0FBRSxNQUFJLEdBQUcsR0FBRSxPQUFNLE1BQUc7QUFBSyxRQUFJLElBQUUsRUFBRTtBQUFNLElBQUssS0FBRSxTQUFQLEtBQWEsR0FBRyxHQUFFO0FBQUcsSUFBSyxLQUFFLFNBQVAsS0FBYSxNQUFLLE1BQUcsTUFBRyxHQUFHLElBQUcsV0FBVTtBQUFDO0FBQUssYUFBTztBQUFBO0FBQVEsUUFBRSxFQUFFO0FBQUE7QUFBQTtBQUFZLGNBQWE7QUFBQyxNQUFHLEFBQUssT0FBTCxJQUFRO0FBQUMsUUFBSSxJQUFFLEtBQUcsS0FBRyxLQUFHO0FBQUcsU0FBRztBQUFHLFdBQU8sR0FBRyxHQUFFO0FBQUE7QUFBSSxTQUFNO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRTtBQUFDLEtBQUcsS0FBSyxHQUFFO0FBQUcsUUFBSyxNQUFHLE1BQUcsR0FBRyxJQUFHLFdBQVU7QUFBQztBQUFLLFdBQU87QUFBQTtBQUFBO0FBQVEsWUFBWSxHQUFFLEdBQUU7QUFBQyxLQUFHLEtBQUssR0FBRTtBQUFHLFFBQUssTUFBRyxNQUFHLEdBQUcsSUFBRyxXQUFVO0FBQUM7QUFBSyxXQUFPO0FBQUE7QUFBQTtBQUN6ZCxjQUFhO0FBQUMsTUFBRyxBQUFPLE9BQVA7QUFBVSxXQUFNO0FBQUcsTUFBSSxJQUFFO0FBQUcsT0FBRztBQUFLLE1BQUcsQUFBSyxLQUFFLFFBQVA7QUFBVyxVQUFNLE1BQU0sRUFBRTtBQUFNLE1BQUksSUFBRTtBQUFFLE9BQUc7QUFBRyxNQUFJLElBQUU7QUFBRyxPQUFHO0FBQUcsV0FBUSxJQUFFLEdBQUUsSUFBRSxFQUFFLFFBQU8sS0FBRyxHQUFFO0FBQUMsUUFBSSxJQUFFLEVBQUUsSUFBRyxLQUFFLEVBQUUsSUFBRSxJQUFHLEtBQUUsRUFBRTtBQUFRLE1BQUUsVUFBUTtBQUFPLFFBQUcsQUFBYSxPQUFPLE9BQXBCO0FBQXNCLFVBQUc7QUFBQztBQUFBLGVBQVUsR0FBTjtBQUFTLFlBQUcsQUFBTyxPQUFQO0FBQVMsZ0JBQU0sTUFBTSxFQUFFO0FBQU0sV0FBRyxJQUFFO0FBQUE7QUFBQTtBQUFJLE1BQUU7QUFBRyxPQUFHO0FBQUcsT0FBSSxJQUFFLEdBQUUsSUFBRSxFQUFFLFFBQU8sS0FBRyxHQUFFO0FBQUMsUUFBRSxFQUFFO0FBQUcsU0FBRSxFQUFFLElBQUU7QUFBRyxRQUFHO0FBQUMsVUFBSSxLQUFFLEVBQUU7QUFBTyxRQUFFLFVBQVE7QUFBQSxhQUFVLEdBQU47QUFBUyxVQUFHLEFBQU8sT0FBUDtBQUFTLGNBQU0sTUFBTSxFQUFFO0FBQU0sU0FBRyxJQUFFO0FBQUE7QUFBQTtBQUFJLE9BQUksS0FBRSxFQUFFLFFBQVEsYUFBWSxBQUFPLE9BQVA7QUFBVSxRQUFFLEdBQUUsWUFBVyxHQUFFLGFBQVcsTUFBSyxHQUFFLFFBQU0sS0FBSSxJQUFFLFVBQ2pmLE1BQUssR0FBRSxZQUFVLE9BQU0sS0FBRTtBQUFFLE1BQUU7QUFBRTtBQUFLLFNBQU07QUFBQTtBQUFHLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFFLEdBQUcsR0FBRTtBQUFHLE1BQUUsR0FBRyxHQUFFLEdBQUU7QUFBRyxLQUFHLEdBQUU7QUFBRyxNQUFFO0FBQUssTUFBRSxHQUFHLEdBQUU7QUFBRyxFQUFPLE1BQVAsUUFBVyxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRTtBQUFBO0FBQ3pJLFlBQVksR0FBRSxHQUFFO0FBQUMsTUFBRyxBQUFJLEVBQUUsUUFBTjtBQUFVLE9BQUcsR0FBRSxHQUFFO0FBQUE7QUFBUSxhQUFRLElBQUUsRUFBRSxRQUFPLEFBQU8sTUFBUCxRQUFVO0FBQUMsVUFBRyxBQUFJLEVBQUUsUUFBTixHQUFVO0FBQUMsV0FBRyxHQUFFLEdBQUU7QUFBRztBQUFBLGlCQUFjLEFBQUksRUFBRSxRQUFOLEdBQVU7QUFBQyxZQUFJLElBQUUsRUFBRTtBQUFVLFlBQUcsQUFBYSxPQUFPLEVBQUUsS0FBSyw2QkFBM0IsY0FBcUQsQUFBYSxPQUFPLEVBQUUsc0JBQXRCLGNBQTBDLENBQU8sT0FBUCxRQUFXLENBQUMsR0FBRyxJQUFJLEtBQUk7QUFBQyxjQUFFLEdBQUcsR0FBRTtBQUFHLGNBQUksSUFBRSxHQUFHLEdBQUUsR0FBRTtBQUFHLGFBQUcsR0FBRTtBQUFHLGNBQUU7QUFBSyxjQUFFLEdBQUcsR0FBRTtBQUFHLGNBQUcsQUFBTyxNQUFQO0FBQVMsZUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFHLEdBQUU7QUFBQSxtQkFBVyxBQUFhLE9BQU8sRUFBRSxzQkFBdEIsY0FBMEMsQ0FBTyxPQUFQLFFBQVcsQ0FBQyxHQUFHLElBQUk7QUFBSSxnQkFBRztBQUFDLGdCQUFFLGtCQUFrQixHQUFFO0FBQUEscUJBQVMsSUFBTjtBQUFBO0FBQVU7QUFBQTtBQUFBO0FBQU8sVUFBRSxFQUFFO0FBQUE7QUFBQTtBQUNwZCxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUU7QUFBVSxFQUFPLE1BQVAsUUFBVSxFQUFFLE9BQU87QUFBRyxNQUFFO0FBQUssSUFBRSxlQUFhLEVBQUUsaUJBQWU7QUFBRSxRQUFJLEtBQUksS0FBRSxPQUFLLEtBQUksQ0FBSSxNQUFKLEtBQU8sQUFBSSxNQUFKLEtBQVEsS0FBRSxjQUFZLEtBQUcsTUFBSSxNQUFJLEtBQUcsR0FBRyxHQUFFLEtBQUcsTUFBSTtBQUFHLEtBQUcsR0FBRTtBQUFBO0FBQUcsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFVLEVBQU8sTUFBUCxRQUFVLEVBQUUsT0FBTztBQUFHLE1BQUU7QUFBRSxFQUFJLE1BQUosS0FBUSxLQUFFLEVBQUUsTUFBSyxBQUFLLEtBQUUsT0FBUCxJQUFVLElBQUUsSUFBRSxBQUFLLEtBQUUsT0FBUCxJQUFVLElBQUUsQUFBSyxTQUFMLEtBQVUsSUFBRSxJQUFHLENBQUksT0FBSixLQUFTLE1BQUcsS0FBSSxJQUFFLEdBQUcsV0FBUyxDQUFDLEtBQUksQUFBSSxNQUFKLEtBQVEsS0FBRTtBQUFXLE1BQUU7QUFBSyxNQUFFLEdBQUcsR0FBRTtBQUFHLEVBQU8sTUFBUCxRQUFXLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRyxHQUFFO0FBQUE7QUFBSSxJQUFJO0FBQzNaLEtBQUcsU0FBUyxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFO0FBQU0sTUFBRyxBQUFPLE1BQVA7QUFBUyxRQUFHLEVBQUUsa0JBQWdCLEVBQUUsZ0JBQWMsRUFBRTtBQUFRLFdBQUc7QUFBQSxhQUFXLEFBQUssS0FBRSxPQUFQO0FBQVUsV0FBRyxBQUFLLEdBQUUsUUFBTSxXQUFiLElBQW9CLE9BQUc7QUFBQSxTQUFPO0FBQUMsV0FBRztBQUFHLGNBQU8sRUFBRTtBQUFBLGFBQVU7QUFBRSxhQUFHO0FBQUc7QUFBSztBQUFBLGFBQVc7QUFBRSxhQUFHO0FBQUc7QUFBQSxhQUFXO0FBQUUsYUFBRyxFQUFFLFNBQU8sR0FBRztBQUFHO0FBQUEsYUFBVztBQUFFLGFBQUcsR0FBRSxFQUFFLFVBQVU7QUFBZTtBQUFBLGFBQVc7QUFBRyxjQUFFLEVBQUUsY0FBYztBQUFNLGNBQUksSUFBRSxFQUFFLEtBQUs7QUFBUyxZQUFFLElBQUcsRUFBRTtBQUFlLFlBQUUsZ0JBQWM7QUFBRTtBQUFBLGFBQVc7QUFBRyxjQUFHLEFBQU8sRUFBRSxrQkFBVCxNQUF1QjtBQUFDLGdCQUFHLEFBQUssS0FBRSxFQUFFLE1BQU0sZ0JBQWY7QUFBMkIscUJBQU8sR0FBRyxHQUFFLEdBQUU7QUFBRyxjQUFFLEdBQUUsRUFBRSxVQUFRO0FBQUcsZ0JBQUUsR0FBRyxHQUFFLEdBQUU7QUFBRyxtQkFBTyxBQUMzZixNQUQyZixPQUN6ZixFQUFFLFVBQVE7QUFBQTtBQUFLLFlBQUUsR0FBRSxFQUFFLFVBQVE7QUFBRztBQUFBLGFBQVc7QUFBRyxjQUFFLEFBQUssS0FBRSxFQUFFLGdCQUFUO0FBQXFCLGNBQUcsQUFBSyxHQUFFLFFBQU0sUUFBYixHQUFpQjtBQUFDLGdCQUFHO0FBQUUscUJBQU8sR0FBRyxHQUFFLEdBQUU7QUFBRyxjQUFFLFNBQU87QUFBQTtBQUFHLGNBQUUsRUFBRTtBQUFjLFVBQU8sTUFBUCxRQUFXLEdBQUUsWUFBVSxNQUFLLEVBQUUsT0FBSyxNQUFLLEVBQUUsYUFBVztBQUFNLFlBQUUsR0FBRSxFQUFFO0FBQVMsY0FBRztBQUFFO0FBQUE7QUFBVyxtQkFBTztBQUFBLGFBQVU7QUFBQSxhQUFRO0FBQUcsaUJBQU8sRUFBRSxRQUFNLEdBQUUsR0FBRyxHQUFFLEdBQUU7QUFBQTtBQUFHLGFBQU8sR0FBRyxHQUFFLEdBQUU7QUFBQTtBQUFBO0FBQVEsU0FBRztBQUFHLElBQUUsUUFBTTtBQUFFLFVBQU8sRUFBRTtBQUFBLFNBQVU7QUFBRSxVQUFFLEVBQUU7QUFBSyxNQUFPLE1BQVAsUUFBVyxHQUFFLFlBQVUsTUFBSyxFQUFFLFlBQVUsTUFBSyxFQUFFLFNBQU87QUFBRyxVQUFFLEVBQUU7QUFBYSxVQUFFLEdBQUcsR0FBRSxFQUFFO0FBQVMsU0FBRyxHQUFFO0FBQUcsVUFBRSxHQUFHLE1BQUssR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFHLFFBQUUsU0FBTztBQUFFLFVBQUcsQUFDNWUsT0FBTyxNQURxZSxZQUNsZSxBQUFPLE1BQVAsUUFBVSxBQUFhLE9BQU8sRUFBRSxXQUF0QixjQUE4QixBQUFTLEVBQUUsYUFBWCxRQUFvQjtBQUFDLFVBQUUsTUFBSTtBQUFFLFVBQUUsZ0JBQWM7QUFBSyxVQUFFLGNBQVk7QUFBSyxZQUFHLEdBQUcsSUFBRztBQUFDLGNBQUksS0FBRTtBQUFHLGFBQUc7QUFBQTtBQUFRLGVBQUU7QUFBRyxVQUFFLGdCQUFjLEFBQU8sRUFBRSxVQUFULFFBQWdCLEFBQVMsRUFBRSxVQUFYLFNBQWlCLEVBQUUsUUFBTTtBQUFLLFdBQUc7QUFBRyxZQUFJLEtBQUUsRUFBRTtBQUF5QixRQUFhLE9BQU8sT0FBcEIsY0FBdUIsR0FBRyxHQUFFLEdBQUUsSUFBRTtBQUFHLFVBQUUsVUFBUTtBQUFHLFVBQUUsWUFBVTtBQUFFLFVBQUUsa0JBQWdCO0FBQUUsV0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFHLFlBQUUsR0FBRyxNQUFLLEdBQUUsR0FBRSxNQUFHLElBQUU7QUFBQTtBQUFRLFVBQUUsTUFBSSxHQUFFLEdBQUcsTUFBSyxHQUFFLEdBQUUsSUFBRyxJQUFFLEVBQUU7QUFBTSxhQUFPO0FBQUEsU0FBTztBQUFHLFVBQUUsRUFBRTtBQUFZLFNBQUU7QUFBQyxRQUFPLE1BQVAsUUFBVyxHQUFFLFlBQVUsTUFBSyxFQUFFLFlBQVUsTUFBSyxFQUFFLFNBQU87QUFDbmYsWUFBRSxFQUFFO0FBQWEsYUFBRSxFQUFFO0FBQU0sWUFBRSxHQUFFLEVBQUU7QUFBVSxVQUFFLE9BQUs7QUFBRSxhQUFFLEVBQUUsTUFBSSxHQUFHO0FBQUcsWUFBRSxHQUFHLEdBQUU7QUFBRyxnQkFBTztBQUFBLGVBQVE7QUFBRSxnQkFBRSxHQUFHLE1BQUssR0FBRSxHQUFFLEdBQUU7QUFBRztBQUFBLGVBQWE7QUFBRSxnQkFBRSxHQUFHLE1BQUssR0FBRSxHQUFFLEdBQUU7QUFBRztBQUFBLGVBQWE7QUFBRyxnQkFBRSxHQUFHLE1BQUssR0FBRSxHQUFFLEdBQUU7QUFBRztBQUFBLGVBQWE7QUFBRyxnQkFBRSxHQUFHLE1BQUssR0FBRSxHQUFFLEdBQUcsRUFBRSxNQUFLLElBQUcsR0FBRTtBQUFHO0FBQUE7QUFBUSxjQUFNLE1BQU0sRUFBRSxLQUFJLEdBQUU7QUFBQTtBQUFNLGFBQU87QUFBQSxTQUFPO0FBQUUsYUFBTyxJQUFFLEVBQUUsTUFBSyxJQUFFLEVBQUUsY0FBYSxJQUFFLEVBQUUsZ0JBQWMsSUFBRSxJQUFFLEdBQUcsR0FBRSxJQUFHLEdBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFBLFNBQVE7QUFBRSxhQUFPLElBQUUsRUFBRSxNQUFLLElBQUUsRUFBRSxjQUFhLElBQUUsRUFBRSxnQkFBYyxJQUFFLElBQUUsR0FBRyxHQUFFLElBQUcsR0FBRyxHQUFFLEdBQUUsR0FBRSxHQUFFO0FBQUEsU0FBUTtBQUFFLFNBQUc7QUFBRyxVQUFFLEVBQUU7QUFBWSxVQUFHLEFBQU8sTUFBUCxRQUFVLEFBQU8sTUFBUDtBQUFTLGNBQU0sTUFBTSxFQUFFO0FBQ3pmLFVBQUUsRUFBRTtBQUFhLFVBQUUsRUFBRTtBQUFjLFVBQUUsQUFBTyxNQUFQLE9BQVMsRUFBRSxVQUFRO0FBQUssU0FBRyxHQUFFO0FBQUcsU0FBRyxHQUFFLEdBQUUsTUFBSztBQUFHLFVBQUUsRUFBRSxjQUFjO0FBQVEsVUFBRyxNQUFJO0FBQUUsY0FBSyxJQUFFLEdBQUcsR0FBRSxHQUFFO0FBQUEsV0FBTztBQUFDLFlBQUUsRUFBRTtBQUFVLFlBQUcsS0FBRSxFQUFFO0FBQVEsZUFBRyxHQUFHLEVBQUUsVUFBVSxjQUFjLGFBQVksS0FBRyxHQUFFLEtBQUUsS0FBRztBQUFHLFlBQUcsSUFBRTtBQUFDLGNBQUUsRUFBRTtBQUFnQyxjQUFHLEFBQU0sS0FBTjtBQUFRLGlCQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxLQUFHO0FBQUUsbUJBQUUsRUFBRSxJQUFHLEdBQUUsZ0NBQThCLEVBQUUsSUFBRSxJQUFHLEdBQUcsS0FBSztBQUFHLGNBQUUsR0FBRyxHQUFFLE1BQUssR0FBRTtBQUFHLGVBQUksRUFBRSxRQUFNLEdBQUU7QUFBRyxjQUFFLFFBQU0sRUFBRSxRQUFNLEtBQUcsTUFBSyxJQUFFLEVBQUU7QUFBQTtBQUFhLGFBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRztBQUFLLFlBQUUsRUFBRTtBQUFBO0FBQU0sYUFBTztBQUFBLFNBQU87QUFBRSxhQUFPLEdBQUcsSUFBRyxBQUFPLE1BQVAsUUFDNWUsR0FBRyxJQUFHLElBQUUsRUFBRSxNQUFLLElBQUUsRUFBRSxjQUFhLEtBQUUsQUFBTyxNQUFQLE9BQVMsRUFBRSxnQkFBYyxNQUFLLEtBQUUsRUFBRSxVQUFTLEdBQUcsR0FBRSxLQUFHLEtBQUUsT0FBSyxBQUFPLE9BQVAsUUFBVSxHQUFHLEdBQUUsT0FBSyxHQUFFLFNBQU8sS0FBSSxHQUFHLEdBQUUsSUFBRyxHQUFHLEdBQUUsR0FBRSxJQUFFLElBQUcsRUFBRTtBQUFBLFNBQVc7QUFBRSxhQUFPLEFBQU8sTUFBUCxRQUFVLEdBQUcsSUFBRztBQUFBLFNBQVU7QUFBRyxhQUFPLEdBQUcsR0FBRSxHQUFFO0FBQUEsU0FBUTtBQUFFLGFBQU8sR0FBRyxHQUFFLEVBQUUsVUFBVSxnQkFBZSxJQUFFLEVBQUUsY0FBYSxBQUFPLE1BQVAsT0FBUyxFQUFFLFFBQU0sR0FBRyxHQUFFLE1BQUssR0FBRSxLQUFHLEdBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxFQUFFO0FBQUEsU0FBVztBQUFHLGFBQU8sSUFBRSxFQUFFLE1BQUssSUFBRSxFQUFFLGNBQWEsSUFBRSxFQUFFLGdCQUFjLElBQUUsSUFBRSxHQUFHLEdBQUUsSUFBRyxHQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQSxTQUFRO0FBQUUsYUFBTyxHQUFHLEdBQUUsR0FBRSxFQUFFLGNBQWEsSUFBRyxFQUFFO0FBQUEsU0FBVztBQUFFLGFBQU8sR0FBRyxHQUFFLEdBQUUsRUFBRSxhQUFhLFVBQ2hmLElBQUcsRUFBRTtBQUFBLFNBQVc7QUFBRyxhQUFPLEdBQUcsR0FBRSxHQUFFLEVBQUUsYUFBYSxVQUFTLElBQUcsRUFBRTtBQUFBLFNBQVc7QUFBRyxTQUFFO0FBQUMsWUFBRSxFQUFFLEtBQUs7QUFBUyxZQUFFLEVBQUU7QUFBYSxhQUFFLEVBQUU7QUFBYyxhQUFFLEVBQUU7QUFBTSxZQUFJLEtBQUUsRUFBRSxLQUFLO0FBQVMsVUFBRSxJQUFHLEdBQUU7QUFBZSxXQUFFLGdCQUFjO0FBQUUsWUFBRyxBQUFPLE9BQVA7QUFBUyxjQUFHLEtBQUUsR0FBRSxPQUFNLEtBQUUsR0FBRyxJQUFFLE1BQUcsSUFBRyxDQUFhLE9BQU8sRUFBRSwwQkFBdEIsYUFBNEMsRUFBRSxzQkFBc0IsSUFBRSxNQUFHLGNBQVksR0FBRSxBQUFJLE9BQUosR0FBTTtBQUFDLGdCQUFHLEdBQUUsYUFBVyxFQUFFLFlBQVUsQ0FBQyxFQUFFLFNBQVE7QUFBQyxrQkFBRSxHQUFHLEdBQUUsR0FBRTtBQUFHO0FBQUE7QUFBQTtBQUFjLGlCQUFJLEtBQUUsRUFBRSxPQUFNLEFBQU8sT0FBUCxRQUFXLElBQUUsU0FBTyxJQUFHLEFBQU8sT0FBUCxRQUFVO0FBQUMsa0JBQUksSUFBRSxHQUFFO0FBQWEsa0JBQUcsQUFBTyxNQUFQLE1BQVM7QUFBQyxxQkFBRSxHQUFFO0FBQU0seUJBQVEsS0FDdGYsRUFBRSxjQUFhLEFBQU8sT0FBUCxRQUFVO0FBQUMsc0JBQUcsR0FBRSxZQUFVLEtBQUcsQUFBSyxJQUFFLGVBQWEsUUFBcEIsR0FBdUI7QUFBQyxvQkFBSSxHQUFFLFFBQU4sS0FBWSxNQUFFLEdBQUcsSUFBRyxJQUFFLENBQUMsSUFBRyxHQUFFLE1BQUksR0FBRSxHQUFHLElBQUU7QUFBSSx1QkFBRSxTQUFPO0FBQUUseUJBQUUsR0FBRTtBQUFVLG9CQUFPLE9BQVAsUUFBVyxJQUFFLFNBQU87QUFBRyx1QkFBRyxHQUFFLFFBQU87QUFBRyxzQkFBRSxTQUFPO0FBQUU7QUFBQTtBQUFNLHVCQUFFLEdBQUU7QUFBQTtBQUFBO0FBQVcscUJBQUUsQUFBSyxHQUFFLFFBQVAsS0FBVyxHQUFFLFNBQU8sRUFBRSxPQUFLLE9BQUssR0FBRSxRQUFNLEdBQUU7QUFBTSxrQkFBRyxBQUFPLE9BQVA7QUFBUyxtQkFBRSxTQUFPO0FBQUE7QUFBTyxxQkFBSSxLQUFFLElBQUUsQUFBTyxPQUFQLFFBQVU7QUFBQyxzQkFBRyxPQUFJLEdBQUU7QUFBQyx5QkFBRTtBQUFLO0FBQUE7QUFBTSx1QkFBRSxHQUFFO0FBQVEsc0JBQUcsQUFBTyxPQUFQLE1BQVM7QUFBQyx1QkFBRSxTQUFPLEdBQUU7QUFBTyx5QkFBRTtBQUFFO0FBQUE7QUFBTSx1QkFBRSxHQUFFO0FBQUE7QUFBTyxtQkFBRTtBQUFBO0FBQUUsV0FBRyxHQUFFLEdBQUUsRUFBRSxVQUFTO0FBQUcsWUFBRSxFQUFFO0FBQUE7QUFBTSxhQUFPO0FBQUEsU0FBTztBQUFFLGFBQU8sSUFBRSxFQUFFLE1BQUssS0FBRSxFQUFFLGNBQWEsSUFBRSxHQUFFLFVBQVMsR0FBRyxHQUFFLElBQUcsSUFBRSxHQUFHLEdBQ3BmLEdBQUUsd0JBQXVCLElBQUUsRUFBRSxJQUFHLEVBQUUsU0FBTyxHQUFFLEdBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxFQUFFO0FBQUEsU0FBVztBQUFHLGFBQU8sSUFBRSxFQUFFLE1BQUssS0FBRSxHQUFHLEdBQUUsRUFBRSxlQUFjLEtBQUUsR0FBRyxFQUFFLE1BQUssS0FBRyxHQUFHLEdBQUUsR0FBRSxHQUFFLElBQUUsR0FBRTtBQUFBLFNBQVE7QUFBRyxhQUFPLEdBQUcsR0FBRSxHQUFFLEVBQUUsTUFBSyxFQUFFLGNBQWEsR0FBRTtBQUFBLFNBQVE7QUFBRyxhQUFPLElBQUUsRUFBRSxNQUFLLElBQUUsRUFBRSxjQUFhLElBQUUsRUFBRSxnQkFBYyxJQUFFLElBQUUsR0FBRyxHQUFFLElBQUcsQUFBTyxNQUFQLFFBQVcsR0FBRSxZQUFVLE1BQUssRUFBRSxZQUFVLE1BQUssRUFBRSxTQUFPLElBQUcsRUFBRSxNQUFJLEdBQUUsR0FBRyxLQUFJLEtBQUUsTUFBRyxHQUFHLE1BQUksSUFBRSxPQUFHLEdBQUcsR0FBRSxJQUFHLEdBQUcsR0FBRSxHQUFFLElBQUcsR0FBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUcsTUFBSyxHQUFFLEdBQUUsTUFBRyxHQUFFO0FBQUEsU0FBUTtBQUFHLGFBQU8sR0FBRyxHQUFFLEdBQUU7QUFBQSxTQUFRO0FBQUcsYUFBTyxHQUFHLEdBQUUsR0FBRTtBQUFBLFNBQVE7QUFBRyxhQUFPLEdBQUcsR0FBRSxHQUFFO0FBQUE7QUFBRyxRQUFNLE1BQU0sRUFBRSxLQUFJLEVBQUU7QUFBQTtBQUM3ZSxZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxPQUFLLE1BQUk7QUFBRSxPQUFLLE1BQUk7QUFBRSxPQUFLLFVBQVEsS0FBSyxRQUFNLEtBQUssU0FBTyxLQUFLLFlBQVUsS0FBSyxPQUFLLEtBQUssY0FBWTtBQUFLLE9BQUssUUFBTTtBQUFFLE9BQUssTUFBSTtBQUFLLE9BQUssZUFBYTtBQUFFLE9BQUssZUFBYSxLQUFLLGdCQUFjLEtBQUssY0FBWSxLQUFLLGdCQUFjO0FBQUssT0FBSyxPQUFLO0FBQUUsT0FBSyxRQUFNO0FBQUUsT0FBSyxhQUFXLEtBQUssY0FBWSxLQUFLLGFBQVc7QUFBSyxPQUFLLGFBQVcsS0FBSyxRQUFNO0FBQUUsT0FBSyxZQUFVO0FBQUE7QUFBSyxZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxTQUFPLElBQUksR0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFBO0FBQUcsWUFBWSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQVUsU0FBTSxDQUFFLEVBQUMsS0FBRyxDQUFDLEVBQUU7QUFBQTtBQUNyZCxZQUFZLEdBQUU7QUFBQyxNQUFHLEFBQWEsT0FBTyxNQUFwQjtBQUFzQixXQUFPLEdBQUcsS0FBRyxJQUFFO0FBQUUsTUFBRyxBQUFTLE1BQVQsVUFBWSxBQUFPLE1BQVAsTUFBUztBQUFDLFFBQUUsRUFBRTtBQUFTLFFBQUcsTUFBSTtBQUFHLGFBQU87QUFBRyxRQUFHLE1BQUk7QUFBRyxhQUFPO0FBQUE7QUFBRyxTQUFPO0FBQUE7QUFDOUksWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRTtBQUFVLEVBQU8sTUFBUCxPQUFVLEtBQUUsR0FBRyxFQUFFLEtBQUksR0FBRSxFQUFFLEtBQUksRUFBRSxPQUFNLEVBQUUsY0FBWSxFQUFFLGFBQVksRUFBRSxPQUFLLEVBQUUsTUFBSyxFQUFFLFlBQVUsRUFBRSxXQUFVLEVBQUUsWUFBVSxHQUFFLEVBQUUsWUFBVSxLQUFJLEdBQUUsZUFBYSxHQUFFLEVBQUUsT0FBSyxFQUFFLE1BQUssRUFBRSxRQUFNLEdBQUUsRUFBRSxhQUFXLE1BQUssRUFBRSxjQUFZLE1BQUssRUFBRSxhQUFXO0FBQU0sSUFBRSxhQUFXLEVBQUU7QUFBVyxJQUFFLFFBQU0sRUFBRTtBQUFNLElBQUUsUUFBTSxFQUFFO0FBQU0sSUFBRSxnQkFBYyxFQUFFO0FBQWMsSUFBRSxnQkFBYyxFQUFFO0FBQWMsSUFBRSxjQUFZLEVBQUU7QUFBWSxNQUFFLEVBQUU7QUFBYSxJQUFFLGVBQWEsQUFBTyxNQUFQLE9BQVMsT0FBSyxFQUFDLE9BQU0sRUFBRSxPQUFNLGNBQWEsRUFBRTtBQUMzZSxJQUFFLFVBQVEsRUFBRTtBQUFRLElBQUUsUUFBTSxFQUFFO0FBQU0sSUFBRSxNQUFJLEVBQUU7QUFBSSxTQUFPO0FBQUE7QUFDdkQsWUFBWSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRTtBQUFDLE1BQUksS0FBRTtBQUFFLE1BQUU7QUFBRSxNQUFHLEFBQWEsT0FBTyxNQUFwQjtBQUFzQixPQUFHLE1BQUssTUFBRTtBQUFBLFdBQVcsQUFBVyxPQUFPLE1BQWxCO0FBQW9CLFNBQUU7QUFBQTtBQUFPO0FBQUUsY0FBTztBQUFBLGFBQVE7QUFBRyxpQkFBTyxHQUFHLEVBQUUsVUFBUyxHQUFFLElBQUU7QUFBQSxhQUFRO0FBQUcsZUFBRTtBQUFFLGVBQUc7QUFBRztBQUFBLGFBQVc7QUFBRyxlQUFFO0FBQUUsZUFBRztBQUFFO0FBQUEsYUFBVztBQUFHLGlCQUFPLElBQUUsR0FBRyxJQUFHLEdBQUUsR0FBRSxJQUFFLElBQUcsRUFBRSxjQUFZLElBQUcsRUFBRSxPQUFLLElBQUcsRUFBRSxRQUFNLElBQUU7QUFBQSxhQUFPO0FBQUcsaUJBQU8sSUFBRSxHQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsRUFBRSxPQUFLLElBQUcsRUFBRSxjQUFZLElBQUcsRUFBRSxRQUFNLElBQUU7QUFBQSxhQUFPO0FBQUcsaUJBQU8sSUFBRSxHQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsRUFBRSxjQUFZLElBQUcsRUFBRSxRQUFNLElBQUU7QUFBQSxhQUFPO0FBQUcsaUJBQU8sR0FBRyxHQUFFLEdBQUUsSUFBRTtBQUFBLGFBQVE7QUFBRyxpQkFBTyxJQUFFLEdBQUcsSUFBRyxHQUFFLEdBQUUsSUFBRyxFQUFFLGNBQVksSUFBRyxFQUFFLFFBQU0sSUFBRTtBQUFBO0FBQVUsY0FBRyxBQUN2ZixPQUFPLE1BRGdmLFlBQzdlLEFBQU8sTUFBUDtBQUFTLG9CQUFPLEVBQUU7QUFBQSxtQkFBZTtBQUFHLHFCQUFFO0FBQUc7QUFBQSxtQkFBYTtBQUFHLHFCQUFFO0FBQUU7QUFBQSxtQkFBYTtBQUFHLHFCQUFFO0FBQUc7QUFBQSxtQkFBYTtBQUFHLHFCQUFFO0FBQUc7QUFBQSxtQkFBYTtBQUFHLHFCQUFFO0FBQUcsb0JBQUU7QUFBSztBQUFBLG1CQUFhO0FBQUcscUJBQUU7QUFBRztBQUFBO0FBQVEsZ0JBQU0sTUFBTSxFQUFFLEtBQUksQUFBTSxLQUFOLE9BQVEsSUFBRSxPQUFPLEdBQUU7QUFBQTtBQUFNLE1BQUUsR0FBRyxJQUFFLEdBQUUsR0FBRTtBQUFHLElBQUUsY0FBWTtBQUFFLElBQUUsT0FBSztBQUFFLElBQUUsUUFBTTtBQUFFLFNBQU87QUFBQTtBQUFFLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUUsR0FBRyxHQUFFLEdBQUUsR0FBRTtBQUFHLElBQUUsUUFBTTtBQUFFLFNBQU87QUFBQTtBQUFFLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUUsR0FBRyxJQUFHLEdBQUUsR0FBRTtBQUFHLElBQUUsY0FBWTtBQUFHLElBQUUsUUFBTTtBQUFFLFNBQU87QUFBQTtBQUFFLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFFLEdBQUcsR0FBRSxHQUFFLE1BQUs7QUFBRyxJQUFFLFFBQU07QUFBRSxTQUFPO0FBQUE7QUFDbGMsWUFBWSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUUsR0FBRyxHQUFFLEFBQU8sRUFBRSxhQUFULE9BQWtCLEVBQUUsV0FBUyxJQUFHLEVBQUUsS0FBSTtBQUFHLElBQUUsUUFBTTtBQUFFLElBQUUsWUFBVSxFQUFDLGVBQWMsRUFBRSxlQUFjLGlCQUFnQixNQUFLLGdCQUFlLEVBQUU7QUFBZ0IsU0FBTztBQUFBO0FBQ3JMLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxPQUFLLE1BQUk7QUFBRSxPQUFLLGdCQUFjO0FBQUUsT0FBSyxlQUFhLEtBQUssWUFBVSxLQUFLLFVBQVEsS0FBSyxrQkFBZ0I7QUFBSyxPQUFLLGdCQUFjO0FBQUcsT0FBSyxpQkFBZSxLQUFLLFVBQVE7QUFBSyxPQUFLLFVBQVE7QUFBRSxPQUFLLGVBQWE7QUFBSyxPQUFLLG1CQUFpQjtBQUFFLE9BQUssYUFBVyxHQUFHO0FBQUcsT0FBSyxrQkFBZ0IsR0FBRztBQUFJLE9BQUssaUJBQWUsS0FBSyxnQkFBYyxLQUFLLG1CQUFpQixLQUFLLGVBQWEsS0FBSyxjQUFZLEtBQUssaUJBQWUsS0FBSyxlQUFhO0FBQUUsT0FBSyxnQkFBYyxHQUFHO0FBQUcsT0FBSyxrQ0FBZ0M7QUFBQTtBQUM3ZSxZQUFZLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFLElBQUUsVUFBVSxVQUFRLEFBQVMsVUFBVSxPQUFuQixTQUFzQixVQUFVLEtBQUc7QUFBSyxTQUFNLEVBQUMsVUFBUyxJQUFHLEtBQUksQUFBTSxLQUFOLE9BQVEsT0FBSyxLQUFHLEdBQUUsVUFBUyxHQUFFLGVBQWMsR0FBRSxnQkFBZTtBQUFBO0FBQ3hLLFlBQVksR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFLFNBQVEsS0FBRSxNQUFLLEtBQUUsR0FBRztBQUFHO0FBQUUsUUFBRyxHQUFFO0FBQUMsVUFBRSxFQUFFO0FBQWdCLFNBQUU7QUFBQyxZQUFHLEdBQUcsT0FBSyxLQUFHLEFBQUksRUFBRSxRQUFOO0FBQVUsZ0JBQU0sTUFBTSxFQUFFO0FBQU0sWUFBSSxLQUFFO0FBQUUsV0FBRTtBQUFDLGtCQUFPLEdBQUU7QUFBQSxpQkFBVTtBQUFFLG1CQUFFLEdBQUUsVUFBVTtBQUFRO0FBQUEsaUJBQWE7QUFBRSxrQkFBRyxHQUFHLEdBQUUsT0FBTTtBQUFDLHFCQUFFLEdBQUUsVUFBVTtBQUEwQztBQUFBO0FBQUE7QUFBUyxlQUFFLEdBQUU7QUFBQSxpQkFBYSxBQUFPLE9BQVA7QUFBVSxjQUFNLE1BQU0sRUFBRTtBQUFBO0FBQU8sVUFBRyxBQUFJLEVBQUUsUUFBTixHQUFVO0FBQUMsWUFBSSxJQUFFLEVBQUU7QUFBSyxZQUFHLEdBQUcsSUFBRztBQUFDLGNBQUUsR0FBRyxHQUFFLEdBQUU7QUFBRztBQUFBO0FBQUE7QUFBUyxVQUFFO0FBQUE7QUFBTyxVQUFFO0FBQUcsRUFBTyxFQUFFLFlBQVQsT0FBaUIsRUFBRSxVQUFRLElBQUUsRUFBRSxpQkFBZTtBQUFFLE1BQUUsR0FBRyxJQUFFO0FBQUcsSUFBRSxVQUFRLEVBQUMsU0FBUTtBQUFHLE1BQUUsQUFBUyxNQUFULFNBQVcsT0FBSztBQUFFLEVBQ2hmLE1BRGdmLFFBQzVlLEdBQUUsV0FBUztBQUFHLEtBQUcsR0FBRTtBQUFHLEtBQUcsR0FBRSxJQUFFO0FBQUcsU0FBTztBQUFBO0FBQUUsWUFBWSxHQUFFO0FBQUMsTUFBRSxFQUFFO0FBQVEsTUFBRyxDQUFDLEVBQUU7QUFBTSxXQUFPO0FBQUssVUFBTyxFQUFFLE1BQU07QUFBQSxTQUFVO0FBQUUsYUFBTyxFQUFFLE1BQU07QUFBQTtBQUFrQixhQUFPLEVBQUUsTUFBTTtBQUFBO0FBQUE7QUFBVyxZQUFZLEdBQUUsR0FBRTtBQUFDLE1BQUUsRUFBRTtBQUFjLE1BQUcsQUFBTyxNQUFQLFFBQVUsQUFBTyxFQUFFLGVBQVQsTUFBb0I7QUFBQyxRQUFJLElBQUUsRUFBRTtBQUFVLE1BQUUsWUFBVSxBQUFJLE1BQUosS0FBTyxJQUFFLElBQUUsSUFBRTtBQUFBO0FBQUE7QUFBRyxZQUFZLEdBQUUsR0FBRTtBQUFDLEtBQUcsR0FBRTtBQUFHLEVBQUMsS0FBRSxFQUFFLGNBQVksR0FBRyxHQUFFO0FBQUE7QUFBRyxjQUFhO0FBQUMsU0FBTztBQUFBO0FBQ2hYLFlBQVksR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsQUFBTSxLQUFOLFFBQVMsQUFBTSxFQUFFLG9CQUFSLFFBQTBCLEVBQUUsaUJBQWlCLGtCQUFnQjtBQUFLLE1BQUUsSUFBSSxHQUFHLEdBQUUsR0FBRSxBQUFNLEtBQU4sUUFBUyxBQUFLLEVBQUUsWUFBUDtBQUFnQixNQUFFLEdBQUcsR0FBRSxNQUFLLE1BQUssQUFBSSxNQUFKLElBQU0sSUFBRSxBQUFJLE1BQUosSUFBTSxJQUFFO0FBQUcsSUFBRSxVQUFRO0FBQUUsSUFBRSxZQUFVO0FBQUUsS0FBRztBQUFHLElBQUUsTUFBSSxFQUFFO0FBQVEsS0FBRyxBQUFJLEVBQUUsYUFBTixJQUFlLEVBQUUsYUFBVztBQUFHLE1BQUc7QUFBRSxTQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxLQUFJO0FBQUMsVUFBRSxFQUFFO0FBQUcsVUFBSSxJQUFFLEVBQUU7QUFBWSxVQUFFLEVBQUUsRUFBRTtBQUFTLE1BQU0sRUFBRSxtQ0FBUixPQUF3QyxFQUFFLGtDQUFnQyxDQUFDLEdBQUUsS0FBRyxFQUFFLGdDQUFnQyxLQUFLLEdBQUU7QUFBQTtBQUFHLE9BQUssZ0JBQWM7QUFBQTtBQUN0ZCxHQUFHLFVBQVUsU0FBTyxTQUFTLEdBQUU7QUFBQyxLQUFHLEdBQUUsS0FBSyxlQUFjLE1BQUs7QUFBQTtBQUFPLEdBQUcsVUFBVSxVQUFRLFdBQVU7QUFBQyxNQUFJLElBQUUsS0FBSyxlQUFjLElBQUUsRUFBRTtBQUFjLEtBQUcsTUFBSyxHQUFFLE1BQUssV0FBVTtBQUFDLE1BQUUsTUFBSTtBQUFBO0FBQUE7QUFBUSxZQUFZLEdBQUU7QUFBQyxTQUFNLENBQUUsRUFBQyxLQUFHLEFBQUksRUFBRSxhQUFOLEtBQWdCLEFBQUksRUFBRSxhQUFOLEtBQWdCLEFBQUssRUFBRSxhQUFQLE1BQWtCLENBQUksRUFBRSxhQUFOLEtBQWdCLEFBQWlDLEVBQUUsY0FBbkM7QUFBQTtBQUNwUixZQUFZLEdBQUUsR0FBRTtBQUFDLE9BQUksS0FBRSxJQUFFLEFBQUksRUFBRSxhQUFOLElBQWUsRUFBRSxrQkFBZ0IsRUFBRSxhQUFXLE1BQUssSUFBRSxDQUFFLEVBQUMsS0FBRyxBQUFJLEVBQUUsYUFBTixLQUFnQixDQUFDLEVBQUUsYUFBYTtBQUFvQixNQUFHLENBQUM7QUFBRSxhQUFRLEdBQUUsSUFBRSxFQUFFO0FBQVcsUUFBRSxZQUFZO0FBQUcsU0FBTyxJQUFJLEdBQUcsR0FBRSxHQUFFLElBQUUsRUFBQyxTQUFRLFNBQUk7QUFBQTtBQUN6TixZQUFZLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksS0FBRSxFQUFFO0FBQW9CLE1BQUcsSUFBRTtBQUFDLFFBQUksS0FBRSxHQUFFO0FBQWMsUUFBRyxBQUFhLE9BQU8sTUFBcEIsWUFBc0I7QUFBQyxVQUFJLEtBQUU7QUFBRSxVQUFFLFdBQVU7QUFBQyxZQUFJLEtBQUUsR0FBRztBQUFHLFdBQUUsS0FBSztBQUFBO0FBQUE7QUFBSSxPQUFHLEdBQUUsSUFBRSxHQUFFO0FBQUEsU0FBTztBQUFDLFNBQUUsRUFBRSxzQkFBb0IsR0FBRyxHQUFFO0FBQUcsU0FBRSxHQUFFO0FBQWMsUUFBRyxBQUFhLE9BQU8sTUFBcEIsWUFBc0I7QUFBQyxVQUFJLElBQUU7QUFBRSxVQUFFLFdBQVU7QUFBQyxZQUFJLEtBQUUsR0FBRztBQUFHLFVBQUUsS0FBSztBQUFBO0FBQUE7QUFBSSxPQUFHLFdBQVU7QUFBQyxTQUFHLEdBQUUsSUFBRSxHQUFFO0FBQUE7QUFBQTtBQUFLLFNBQU8sR0FBRztBQUFBO0FBQUcsS0FBRyxTQUFTLEdBQUU7QUFBQyxNQUFHLEFBQUssRUFBRSxRQUFQLElBQVc7QUFBQyxRQUFJLElBQUU7QUFBSyxPQUFHLEdBQUUsR0FBRTtBQUFHLE9BQUcsR0FBRTtBQUFBO0FBQUE7QUFBSyxLQUFHLFNBQVMsR0FBRTtBQUFDLE1BQUcsQUFBSyxFQUFFLFFBQVAsSUFBVztBQUFDLFFBQUksSUFBRTtBQUFLLE9BQUcsR0FBRSxVQUFTO0FBQUcsT0FBRyxHQUFFO0FBQUE7QUFBQTtBQUNuYyxLQUFHLFNBQVMsR0FBRTtBQUFDLE1BQUcsQUFBSyxFQUFFLFFBQVAsSUFBVztBQUFDLFFBQUksSUFBRSxNQUFLLElBQUUsR0FBRztBQUFHLE9BQUcsR0FBRSxHQUFFO0FBQUcsT0FBRyxHQUFFO0FBQUE7QUFBQTtBQUFLLEtBQUcsU0FBUyxHQUFFLEdBQUU7QUFBQyxTQUFPO0FBQUE7QUFDN0YsS0FBRyxTQUFTLEdBQUUsR0FBRSxHQUFFO0FBQUMsVUFBTztBQUFBLFNBQVE7QUFBUSxTQUFHLEdBQUU7QUFBRyxVQUFFLEVBQUU7QUFBSyxVQUFHLEFBQVUsRUFBRSxTQUFaLFdBQWtCLEFBQU0sS0FBTixNQUFRO0FBQUMsYUFBSSxJQUFFLEdBQUUsRUFBRTtBQUFZLGNBQUUsRUFBRTtBQUFXLFlBQUUsRUFBRSxpQkFBaUIsZ0JBQWMsS0FBSyxVQUFVLEtBQUcsS0FBRztBQUFtQixhQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxLQUFJO0FBQUMsY0FBSSxJQUFFLEVBQUU7QUFBRyxjQUFHLE1BQUksS0FBRyxFQUFFLFNBQU8sRUFBRSxNQUFLO0FBQUMsZ0JBQUksSUFBRSxHQUFHO0FBQUcsZ0JBQUcsQ0FBQztBQUFFLG9CQUFNLE1BQU0sRUFBRTtBQUFLLGVBQUc7QUFBRyxlQUFHLEdBQUU7QUFBQTtBQUFBO0FBQUE7QUFBSztBQUFBLFNBQVc7QUFBVyxTQUFHLEdBQUU7QUFBRztBQUFBLFNBQVc7QUFBUyxVQUFFLEVBQUUsT0FBTSxBQUFNLEtBQU4sUUFBUyxHQUFHLEdBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBUyxHQUFFO0FBQUE7QUFBQTtBQUFNLEtBQUc7QUFDOVosS0FBRyxTQUFTLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRTtBQUFDLE1BQUksS0FBRTtBQUFFLE9BQUc7QUFBRSxNQUFHO0FBQUMsV0FBTyxHQUFHLElBQUcsRUFBRSxLQUFLLE1BQUssR0FBRSxHQUFFLEdBQUU7QUFBQSxZQUFJO0FBQVEsUUFBRSxJQUFFLEFBQUksTUFBSixLQUFRLE9BQUs7QUFBQTtBQUFBO0FBQVEsS0FBRyxXQUFVO0FBQUMsRUFBSyxLQUFFLFFBQVAsS0FBYSxPQUFLO0FBQUE7QUFBTyxLQUFHLFNBQVMsR0FBRSxHQUFFO0FBQUMsTUFBSSxJQUFFO0FBQUUsT0FBRztBQUFFLE1BQUc7QUFBQyxXQUFPLEVBQUU7QUFBQSxZQUFHO0FBQVEsUUFBRSxHQUFFLEFBQUksTUFBSixLQUFRLE9BQUs7QUFBQTtBQUFBO0FBQVEsWUFBWSxHQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsSUFBRSxVQUFVLFVBQVEsQUFBUyxVQUFVLE9BQW5CLFNBQXNCLFVBQVUsS0FBRztBQUFLLE1BQUcsQ0FBQyxHQUFHO0FBQUcsVUFBTSxNQUFNLEVBQUU7QUFBTSxTQUFPLEdBQUcsR0FBRSxHQUFFLE1BQUs7QUFBQTtBQUFHLElBQUksS0FBRyxFQUFDLFFBQU8sQ0FBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxFQUFDLFNBQVEsWUFBTSxLQUFHLEVBQUMseUJBQXdCLElBQUcsWUFBVyxHQUFFLFNBQVEsVUFBUyxxQkFBb0I7QUFDM2UsSUFBSSxLQUFHLEVBQUMsWUFBVyxHQUFHLFlBQVcsU0FBUSxHQUFHLFNBQVEscUJBQW9CLEdBQUcscUJBQW9CLGdCQUFlLEdBQUcsZ0JBQWUsbUJBQWtCLE1BQUssNkJBQTRCLE1BQUssNkJBQTRCLE1BQUssZUFBYyxNQUFLLHlCQUF3QixNQUFLLHlCQUF3QixNQUFLLG9CQUFtQixNQUFLLGdCQUFlLE1BQUssc0JBQXFCLEdBQUcsd0JBQXVCLHlCQUF3QixTQUFTLEdBQUU7QUFBQyxNQUFFLEdBQUc7QUFBRyxTQUFPLEFBQU8sTUFBUCxPQUFTLE9BQUssRUFBRTtBQUFBLEdBQVcseUJBQXdCLEdBQUcsMkJBQzFlLElBQUcsNkJBQTRCLE1BQUssaUJBQWdCLE1BQUssY0FBYSxNQUFLLG1CQUFrQixNQUFLLGlCQUFnQjtBQUFNLElBQUcsQUFBYyxPQUFPLG1DQUFyQixhQUFvRDtBQUFDLE1BQUksS0FBRztBQUErQixNQUFHLENBQUMsR0FBRyxjQUFZLEdBQUc7QUFBYyxRQUFHO0FBQUMsV0FBRyxHQUFHLE9BQU8sS0FBSSxLQUFHO0FBQUEsYUFBUyxHQUFOO0FBQUE7QUFBQTs2RUFBc0U7dUNBQXdCO3NDQUMvVixTQUFTLEdBQUU7QUFBQyxNQUFHLEFBQU0sS0FBTjtBQUFRLFdBQU87QUFBSyxNQUFHLEFBQUksRUFBRSxhQUFOO0FBQWUsV0FBTztBQUFFLE1BQUksSUFBRSxFQUFFO0FBQWdCLE1BQUcsQUFBUyxNQUFULFFBQVc7QUFBQyxRQUFHLEFBQWEsT0FBTyxFQUFFLFdBQXRCO0FBQTZCLFlBQU0sTUFBTSxFQUFFO0FBQU0sVUFBTSxNQUFNLEVBQUUsS0FBSSxPQUFPLEtBQUs7QUFBQTtBQUFNLE1BQUUsR0FBRztBQUFHLE1BQUUsQUFBTyxNQUFQLE9BQVMsT0FBSyxFQUFFO0FBQVUsU0FBTztBQUFBO29DQUFxQixTQUFTLEdBQUUsR0FBRTtBQUFDLE1BQUksSUFBRTtBQUFFLE1BQUcsQUFBSyxLQUFFLFFBQVA7QUFBVyxXQUFPLEVBQUU7QUFBRyxPQUFHO0FBQUUsTUFBRztBQUFDLFFBQUc7QUFBRSxhQUFPLEdBQUcsSUFBRyxFQUFFLEtBQUssTUFBSztBQUFBLFlBQUk7QUFBUSxRQUFFLEdBQUU7QUFBQTtBQUFBO2tDQUF1QixTQUFTLEdBQUUsR0FBRSxHQUFFO0FBQUMsTUFBRyxDQUFDLEdBQUc7QUFBRyxVQUFNLE1BQU0sRUFBRTtBQUFNLFNBQU8sR0FBRyxNQUFLLEdBQUUsR0FBRSxNQUFHO0FBQUE7aUNBQ3BjLFNBQVMsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFHLENBQUMsR0FBRztBQUFHLFVBQU0sTUFBTSxFQUFFO0FBQU0sU0FBTyxHQUFHLE1BQUssR0FBRSxHQUFFLE9BQUc7QUFBQTtpREFBbUMsU0FBUyxHQUFFO0FBQUMsTUFBRyxDQUFDLEdBQUc7QUFBRyxVQUFNLE1BQU0sRUFBRTtBQUFLLFNBQU8sRUFBRSxzQkFBcUIsSUFBRyxXQUFVO0FBQUMsT0FBRyxNQUFLLE1BQUssR0FBRSxPQUFHLFdBQVU7QUFBQyxRQUFFLHNCQUFvQjtBQUFLLFFBQUUsTUFBSTtBQUFBO0FBQUEsTUFBUyxRQUFJO0FBQUE7a0RBQW9DO2dEQUFpQyxTQUFTLEdBQUUsR0FBRTtBQUFDLFNBQU8sR0FBRyxHQUFFLEdBQUUsSUFBRSxVQUFVLFVBQVEsQUFBUyxVQUFVLE9BQW5CLFNBQXNCLFVBQVUsS0FBRztBQUFBOzhEQUNsWSxTQUFTLEdBQUUsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFHLENBQUMsR0FBRztBQUFHLFVBQU0sTUFBTSxFQUFFO0FBQU0sTUFBRyxBQUFNLEtBQU4sUUFBUyxBQUFTLEVBQUUsb0JBQVg7QUFBMkIsVUFBTSxNQUFNLEVBQUU7QUFBSyxTQUFPLEdBQUcsR0FBRSxHQUFFLEdBQUUsT0FBRztBQUFBO2tDQUFvQjtBQ3RTN0wsb0JBQW9CO0FBRWxCLE1BQ0UsT0FBTyxtQ0FBbUMsZUFDMUMsT0FBTywrQkFBK0IsYUFBYSxZQUNuRDtBQUNBO0FBQUE7QUFZRixNQUFJO0FBRUYsbUNBQStCLFNBQVM7QUFBQSxXQUNqQyxLQUFQO0FBR0EsWUFBUSxNQUFNO0FBQUE7QUFBQTtBQUl5QjtBQUd6QztBQUNBSSxzQ0FBaUIzQjtBQUFBQTs7QUN4Qm5CLHlCQUE0RCxVQUE0QztRQUNoRyxjQUFjLE9BQU8sS0FBSztRQUMxQixtQkFBc0M7YUFFakMsT0FBTyxhQUFhO1FBQ3pCLE9BQU8sU0FBUyxTQUFTLFlBQVk7dUJBQ3RCLE9BQU8sU0FBUztBQUFBO0FBQUE7U0FJN0IsQ0FBQyxRQUFxRCxJQUFJLFdBQWM7UUFDMUUsYUFBYTtVQUNYLFlBQXlEO2VBRXBELE9BQU8sYUFBYTtZQUN2QixrQkFBa0IsTUFBTTtZQUN4QixrQkFBa0IsaUJBQWlCLEtBQUssaUJBQWlCO2dCQUNyRCxPQUFPO21CQUNKLGNBQWMsb0JBQW9CO0FBQUE7V0FHMUMsYUFBYSxZQUFZO0FBQUE7QUFBQTtBQ1RwQyxxQkFDRSxnQkFDQSxVQUN1QjtRQUNqQixZQUEyQjtNQUM3QixlQUFlO1FBRWIsV0FBVyxDQUFDLFdBQWM7VUFDeEIsWUFBWSxTQUFRLGNBQWM7VUFDbEMsWUFBWTttQkFDSDtlQUVKLE9BQU0sV0FBVztVQUN2QixjQUFjO0FBQUE7QUFBQTtRQUlmLFlBQVksQ0FBQyxhQUEwQjtRQUN2QyxlQUFlO2NBQ1QsS0FBSztXQUVSLE1BQU07VUFDUCxDQUFDLGNBQWM7OztZQUliLFFBQVEsVUFBVSxRQUFRO2dCQUN0QixPQUFPLE9BQU87cUJBQ1Q7QUFBQTtBQUFBO1FBSWIsV0FBVyxNQUFNO1dBQ2Q7QUFBQTtTQUdGO0FBQUEsSUFDTDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUE7QUFBQTttQkNQb0IsT0FBYyxRQUFpQjtVQUM3QyxPQUFPO0FBQUEsU0FDUixvQkFBb0I7VUFDbkIsT0FBTyxRQUFRLGVBQWUsTUFBTSxZQUFZO2VBQzNDO0FBQUE7YUFHRixpQ0FDRixRQURFO0FBQUEsUUFFTCxZQUFZLE9BQU8sUUFBUTtBQUFBO0FBQUE7QUFBQSxTQUcxQixvQkFBb0I7VUFDbkIsT0FBTyxRQUFRLGVBQWUsTUFBTSxZQUFZO2VBQzNDO0FBQUE7YUFHRixpQ0FDRixRQURFO0FBQUEsUUFFTCxZQUFZLE9BQU8sUUFBUTtBQUFBO0FBQUE7QUFBQSxTQUcxQixtQkFBbUI7VUFDbEIsT0FBTyxRQUFRLGlCQUFpQixNQUFNLGNBQWM7ZUFDL0M7QUFBQTthQUdGLGlDQUNGLFFBREU7QUFBQSxRQUVMLGNBQWMsT0FBTyxRQUFRO0FBQUE7QUFBQTtBQUFBLFNBRzVCLG1DQUFtQztVQUNsQyxPQUFPLFFBQVEsNkJBQTZCLE1BQU0sMEJBQTBCO2VBQ3ZFO0FBQUE7YUFHRixpQ0FDRixRQURFO0FBQUEsUUFFTCwwQkFBMEIsT0FBTyxRQUFRO0FBQUE7QUFBQTtBQUFBLFNBR3hDLG1CQUFtQjthQUNmLGtDQUNGLFFBQ0EsT0FBTztBQUFBO0FBQUEsYUFHTDthQUNBO0FBQUE7QUFBQTtBQUFBO01BS0E0QixpQkFBc0I7QUFBQSxFQUNqQyxZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixxQkFBcUI7QUFBQSxFQUNyQixvQkFBb0I7QUFBQSxFQUNwQix5QkFBeUI7QUFBQSxFQUN6Qix5QkFBeUI7QUFBQSxFQUN6QixjQUFjO0FBQUEsRUFDZCwwQkFBMEI7QUFBQTttQkM5Q0osT0FBYyxRQUFpQjtVQUM3QyxPQUFPO0FBQUEsU0FDUixnQkFBZ0I7YUFDWixPQUFPO0FBQUE7QUFBQSxTQUVYLGdCQUFnQjtVQUNmLE9BQU8sUUFBUSxhQUFhLE1BQU0sVUFBVTtlQUN2QztBQUFBO2FBR0YsaUNBQ0YsUUFERTtBQUFBLFFBRUwsVUFBVSxPQUFPLFFBQVE7QUFBQTtBQUFBO0FBQUEsU0FHeEIsWUFBWTtVQUNYLE9BQU8sUUFBUSxTQUFTLE1BQU0sTUFBTTtlQUMvQjtBQUFBO2FBR0YsaUNBQ0YsUUFERTtBQUFBLFFBRUwsTUFBTSxPQUFPLFFBQVE7QUFBQTtBQUFBO0FBQUEsU0FHcEIsYUFBYTthQUNULGlDQUNGLFFBREU7QUFBQSxRQUVMLE9BQU8sbUJBQ0YsT0FBTztBQUFBO0FBQUE7QUFBQSxTQUlYLGlCQUFpQjtVQUNoQixPQUFPLFFBQVEsUUFBUSxNQUFNLE1BQU0sS0FBSztlQUNuQztBQUFBO2FBR0YsaUNBQ0YsUUFERTtBQUFBLFFBRUwsT0FBTyxpQ0FDRixNQUFNLFFBREo7QUFBQSxVQUVMLEtBQUssT0FBTyxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FJckIsc0JBQXNCO1VBQ3JCLE9BQU8sUUFBUSxhQUFhLE1BQU0sTUFBTSxVQUFVO2VBQzdDO0FBQUE7YUFHRixpQ0FDRixRQURFO0FBQUEsUUFFTCxPQUFPLGlDQUNGLE1BQU0sUUFESjtBQUFBLFVBRUwsVUFBVSxrQ0FDTCxNQUFNLE1BQU0sV0FDWixPQUFPLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQUtyQixZQUFZO1VBQ1gsT0FBTyxRQUFRLFNBQVMsTUFBTSxNQUFNLE1BQU07ZUFDckM7QUFBQTthQUdGLGlDQUNGLFFBREU7QUFBQSxRQUVMLE9BQU8saUNBQ0YsTUFBTSxRQURKO0FBQUEsVUFFTCxNQUFNLE9BQU8sUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSXRCLFlBQVk7VUFDWCxPQUFPLFFBQVEsU0FBUyxNQUFNLE1BQU0sTUFBTTtlQUNyQztBQUFBO2FBR0YsaUNBQ0YsUUFERTtBQUFBLFFBRUwsT0FBTyxpQ0FDRixNQUFNLFFBREo7QUFBQSxVQUVMLE1BQU0sT0FBTyxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FJdEIsb0JBQW9CO1VBQ25CLE9BQU8sWUFBWSxNQUFNLE1BQU0sUUFBUTtlQUNsQztBQUFBO2FBR0YsaUNBQ0YsUUFERTtBQUFBLFFBRUwsT0FBTyxpQ0FDRixNQUFNLFFBREo7QUFBQSxVQUVMLFFBQVEsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSVo7YUFDQTtBQUFBO0FBQUE7QUFBQTtNQUtBQSxpQkFBc0I7QUFBQSxFQUNqQyxVQUFVO0FBQUEsRUFDVixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixRQUFRO0FBQUE7QUFBQTtBQ3pMWixJQUFVO0FBQVYsVUFBVSxRQUFWOzZCQUM0QztXQUNqQyxLQUFLO0FBQUE7U0FERTswQkFJMEQ7VUFDbEUsYUFBYSxVQUFVO1FBQ3pCLGFBQXdEO1FBRXhELFdBQVcsUUFBUSxVQUFVLElBQUk7bUJBQ3RCO0FBQUEsZUFDSixXQUFXLFFBQVEsVUFBVSxJQUFJO21CQUM3QjtBQUFBLGVBQ0osV0FBVyxRQUFRLFlBQVksSUFBSTttQkFDL0I7QUFBQTtXQUdSO0FBQUE7U0FaTzs4QkFlbUIsSUFBbUM7UUFDaEUsT0FBTyxPQUFNLFVBQVU7V0FDckIsR0FBRSxXQUFXLEtBQUs7QUFBQTtXQUVqQixJQUFJLEtBQUssSUFBRztBQUFBO1NBSkw7OEJBT21CLElBQW1DO1VBQzlELElBQUksSUFBSSxLQUFLLG1CQUFtQjtXQUMvQixJQUFJLEtBQUssRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVc7QUFBQTtTQUY5Qzt5QkFLYyxJQUFtQztVQUN6RCxJQUFJLElBQUksS0FBSyxtQkFBbUI7VUFFaEMsT0FBTyxFQUFFO1VBQ1QsUUFBUSxFQUFFLGFBQWE7VUFDdkIsT0FBTyxFQUFFO1dBRVIsR0FBRyxRQUFRLFNBQVM7QUFBQTtTQVBiO3lCQVVjLElBQW1DO1VBQ3pELElBQUksSUFBSSxLQUFLLG1CQUFtQjtVQUVoQyxRQUFRLEVBQUU7VUFDVixPQUFPLEVBQUU7VUFFVCxXQUFXLFFBQVEsS0FBSyxNQUFNLFFBQVE7VUFDdEMsVUFBVSxPQUFPLEtBQUssTUFBTSxPQUFPO1dBRWxDLEdBQUcsWUFBWTtBQUFBO1NBVFI7NkJBYWtCLElBQW1DO1VBQzdELElBQUksSUFBSSxLQUFLLG1CQUFtQjtVQUVoQyxPQUFPLEVBQUU7VUFDVCxRQUFRLEVBQUUsYUFBYTtVQUN2QixPQUFPLEVBQUU7VUFDVCxRQUFRLEVBQUU7VUFDVixPQUFPLEVBQUU7VUFHVCxXQUFXLFFBQVEsS0FBSyxNQUFNLFFBQVE7VUFDdEMsVUFBVSxPQUFPLEtBQUssTUFBTSxPQUFPO1VBQ25DLFdBQVcsUUFBUSxLQUFLLE1BQU0sUUFBUTtVQUN0QyxVQUFVLE9BQU8sS0FBSyxNQUFNLE9BQU87VUFFbkMsVUFBVTtXQUVULEdBQUcsUUFBUSxZQUFZLFdBQVcsWUFBWSxXQUFXO0FBQUE7U0FqQmxEO2tCQW9CVSxNQUFnQjtXQUNqQyxNQUFNLEtBQUssSUFBSSxJQUFJO0FBQUE7U0FEWjs4QkFJMkMsTUFBZ0I7VUFDbkUsUUFBUSxJQUFJO1VBQ1osU0FBUztlQUVKLEtBQUssTUFBTTtVQUNoQixDQUFDLE1BQU0sSUFBSSxFQUFFLEtBQUs7Y0FDZCxJQUFJLEVBQUU7ZUFDTCxLQUFLO0FBQUE7QUFBQTtXQUlUO0FBQUE7U0FYTztxQkFjUyxLQUFrQixRQUFlO1FBQ3BELFFBQXVCO1dBRXBCLE1BQU07VUFDUCxPQUFPO3FCQUNJO2dCQUNMLFdBQVcsS0FBSTtBQUFBLGFBQ2xCO2dCQUNHLFdBQVcsS0FBSTtBQUFBO0FBQUE7QUFBQTtTQVJiO29CQWFTLEtBQWtCLFFBQWU7UUFDcEQsUUFBUTtXQUVMLE1BQU07VUFDUCxDQUFDLE9BQU87ZUFDSDtBQUFBO2NBRUQ7aUJBQ0csTUFBTTs7Z0JBRVA7QUFBQSxTQUNQO0FBQUE7QUFBQTtTQVhTO3lDQWU4QixRQUEwQjtVQUNoRSxTQUFTO1VBQ1QsT0FBTyxPQUFPLEtBQUssUUFBUTtlQUV0QixPQUFPLE1BQU07WUFDaEIsTUFBTSxPQUFPO1VBQ2YsS0FBSztZQUNILE9BQU8sUUFBUSxVQUFVO2lCQUNwQixLQUFLLEdBQUcsOEJBQThCLEtBQUssTUFBTTtBQUFBLGVBQ25EO2lCQUNFLEtBQUssR0FBRyxPQUFPO0FBQUE7QUFBQTtBQUFBO1dBS3JCLE9BQU8sS0FBSztBQUFBO1NBZkw7eUNBa0I4QixjQUFnQztVQUN0RSxTQUFtQjtVQUNuQixTQUFTLGFBQWEsTUFBTTtlQUV2QixNQUFLLFFBQVE7WUFDaEIsQ0FBQyxLQUFLLE9BQU8sR0FBRSxNQUFNO1VBQ3ZCLE9BQU8sS0FBSztlQUNQLE9BQU87QUFBQTtBQUFBO1dBSVg7QUFBQTtTQVhPO2dDQWNxQixRQUE0QjtRQUMzRCxDQUFDLFFBQVE7YUFDSjtBQUFBO1VBR0gsY0FBd0I7VUFDeEIsT0FBTyxPQUFPLEtBQUssUUFBUTtlQUV0QixPQUFPLE1BQU07WUFDaEIsTUFBTSxPQUFPO1VBQ2YsT0FBTyxRQUFRLFVBQVU7Y0FDckIsT0FBTyxxQkFBcUIsS0FBSyxNQUFNLEtBQUssVUFBVTtZQUN4RCxRQUFRLE9BQU8sS0FBSyxNQUFNLFNBQVMsR0FBRztzQkFDNUIsT0FBTztBQUFBO0FBQUEsYUFFaEI7WUFDRCxLQUFLO3NCQUNLLE9BQU87QUFBQTtBQUFBO0FBQUE7V0FLbEI7QUFBQTtTQXRCTztxQ0F5QjBCLE1BQWM7UUFDbEQsVUFBVSxhQUFhLFVBQVUsVUFBVSxXQUFXO1VBQ3BEO2NBQ0ksVUFBVSxVQUFVLFVBQVU7QUFBQSxlQUM3QjtnQkFDQyxLQUFLLDZCQUE2QjtBQUFBO0FBQUEsV0FFdkM7Y0FDRyxLQUFLO0FBQUE7QUFBQTtTQVJLO3dCQVlPLEtBQXVEO1dBQzNFLElBQUksUUFBUSxDQUFDLFlBQVk7WUFDeEIsUUFBUSxJQUFJO1lBRVosU0FBUyxNQUFNO2NBQ2IsRUFBQyxPQUFPLFdBQVU7WUFFcEIsUUFBUSxLQUFLLFNBQVMsR0FBRztrQkFDbkIsRUFBQyxPQUFPO0FBQUEsZUFDWDtrQkFDRyxFQUFDLE9BQU8sR0FBRyxRQUFRO0FBQUE7QUFBQTtZQUl6QixVQUFVLE1BQU07Z0JBQ1osRUFBQyxPQUFPLEdBQUcsUUFBUTtBQUFBO1lBR3ZCLFlBQVk7WUFDWixNQUFNO2VBQ0gsS0FBSyxZQUFZO1lBQ3BCO0FBQUE7QUFBQTtTQXJCTTtHQTlMUjtBQXdOVixjQUFlO21CQzlLUyxPQUFjLFFBQXdCO1VBQ3BELE9BQU87QUFBQSxTQUNSLGFBQWE7WUFDVixRQUFRQyxRQUFNLG1CQUNsQixPQUFPLFFBQVEsTUFBTSxLQUNuQixDQUFDLEdBQUcsTUFBTUEsUUFBTSxtQkFBbUIsRUFBRSxhQUFhQSxRQUFNLG1CQUFtQixFQUFFO2FBTTFFLGlDQUNGLFFBREU7QUFBQSxRQUVMLE9BQU8sQ0FBQyxHQUFHO0FBQUE7QUFBQTtBQUFBLFNBR1YsWUFBWTthQUNSLGlDQUNGLFFBREU7QUFBQSxRQUVMLE1BQU0sT0FBTyxRQUFRO0FBQUE7QUFBQTtBQUFBLFNBR3BCLGVBQWU7WUFDWixRQUFRQSxRQUFNLG1CQUNsQixDQUFDLE9BQU8sUUFBUSxNQUFNLEdBQUcsTUFBTSxPQUFPLEtBQ3BDLENBQUMsR0FBRyxNQUFNQSxRQUFNLG1CQUFtQixFQUFFLGFBQWFBLFFBQU0sbUJBQW1CLEVBQUU7YUFJMUUsaUNBQ0YsUUFERTtBQUFBLFFBRUw7QUFBQTtBQUFBO0FBQUEsU0FHQyxxQkFBcUI7YUFDakIsaUNBQ0YsUUFERTtBQUFBLFFBRUwsT0FBTyxDQUFDLEdBQUcsTUFBTSxPQUFPLE9BQU8sQ0FBQyxVQUFTLE1BQUssT0FBTyxPQUFPLFFBQVE7QUFBQTtBQUFBO0FBQUEsU0FHbkUsYUFBYTtZQUNWLFFBQVEsTUFBTSxNQUFNLElBQUksQ0FBQyxPQUFNO1lBQy9CLEdBQUUsT0FBTyxPQUFPLFFBQVEsSUFBSTtpQkFDdkIsa0NBQ0YsS0FDQSxPQUFPO0FBQUEsZUFFUDtpQkFDRTtBQUFBO0FBQUE7YUFJSixpQ0FDRixRQURFO0FBQUEsUUFFTDtBQUFBO0FBQUE7QUFBQSxhQUdLO2FBQ0E7QUFBQTtBQUFBO0FBQUE7TUFLQUQsaUJBQXNCO0FBQUEsRUFDakMsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBO21CQzNGZ0IsT0FBYyxRQUF3QjtVQUNwRCxPQUFPO0FBQUEsU0FDUixXQUFXO2FBQ1A7QUFBQSxRQUNMLE1BQU0sT0FBTyxRQUFRO0FBQUE7QUFBQTtBQUFBLFNBR3BCLFlBQVk7YUFDUjtBQUFBLFFBQ0wsTUFBTTtBQUFBO0FBQUE7QUFBQSxhQUdEO2FBQ0E7QUFBQTtBQUFBO0FBQUE7TUFLQUEsaUJBQXNCLEVBQUMsTUFBTTttQkNBbEIsT0FBYyxRQUF3QjtVQUNwRCxPQUFPO0FBQUEsU0FDUixlQUFlO1lBQ1osVUFBVUMsUUFBTSxtQkFDcEIsT0FBTyxRQUFRLFFBQ1osS0FBSyxDQUFDLEdBQUcsTUFBTUEsUUFBTSxtQkFBbUIsRUFBRSxhQUFhQSxRQUFNLG1CQUFtQixFQUFFLFlBQ2xGLEtBQUssQ0FBQyxHQUFHOztBQUFNQSx1QkFBTSxtQkFBbUIsUUFBRSxhQUFGLFlBQWMsS0FBS0EsUUFBTSxtQkFBbUIsUUFBRSxhQUFGLFlBQWM7QUFBQTthQUdoRyxpQ0FDRixRQURFO0FBQUEsUUFFTDtBQUFBO0FBQUE7QUFBQSxTQUdDLGdCQUFnQjtZQUNiLFVBQVVBLFFBQU0sbUJBQ3BCLENBQUMsT0FBTyxRQUFRLE9BQU8sR0FBRyxNQUFNLFNBQVMsS0FDdkMsQ0FBQyxHQUFHLE1BQU1BLFFBQU0sbUJBQW1CLEVBQUUsYUFBYUEsUUFBTSxtQkFBbUIsRUFBRTthQUkxRSxpQ0FDRixRQURFO0FBQUEsUUFFTDtBQUFBO0FBQUE7QUFBQSxTQUdDLHNCQUFzQjthQUNsQixpQ0FDRixRQURFO0FBQUEsUUFFTCxTQUFTLENBQUMsR0FBRyxNQUFNLFNBQVMsT0FBTyxDQUFDLFVBQVUsTUFBTSxPQUFPLE9BQU8sUUFBUTtBQUFBO0FBQUE7QUFBQSxTQUd6RSxnQkFBZ0I7WUFDYixVQUFVLE1BQU0sUUFBUSxJQUFJLENBQUMsT0FBTTtZQUNuQyxHQUFFLE9BQU8sT0FBTyxRQUFRLElBQUk7aUJBQ3ZCLGtDQUNGLEtBQ0EsT0FBTztBQUFBLGVBRVA7aUJBQ0U7QUFBQTtBQUFBO2FBSUosaUNBQ0YsUUFERTtBQUFBLFFBRUw7QUFBQTtBQUFBO0FBQUEsYUFHSzthQUNBO0FBQUE7QUFBQTtBQUFBO01BS0FELGlCQUFzQjtBQUFBLEVBQ2pDLFNBQVM7QUFBQTs7QUN4RlgsT0FBTyxlQUFlRSxRQUFTLGNBQWMsRUFBRSxPQUFPO0FBRXRELElBQUksV0FBVzlCO0FBRWYsTUFBTSw0QkFBNEI7QUFDbEMsTUFBTSw2QkFBNkI7QUFDbkMsTUFBTSw4QkFBOEI7QUFDcEMsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSw2QkFBNkI7QUFFbkMsd0NBQXdDLGFBQWE7O0FBRWpELFFBQU0sZ0JBQWdCLE9BQU8sSUFBSSxRQUFRLFVBQVU7QUFDbkQsU0FBTyxpQkFBaUIsMkJBQWMsYUFBZCxtQkFBeUIsaUJBQXpCLG1CQUF1QztBQUFBO0FBTW5FLGdDQUFnQzs7QUFDNUIsTUFBSTtBQUVBLFVBQU0sRUFBRSxpQkFBaUIsWUFBWSxPQUFPO0FBQzVDLFFBQUksK0JBQStCLFVBQVU7QUFDekMsWUFBTSxFQUFFLGlCQUFRLGlCQUFRLHdCQUFhLHFCQUFRLFVBQVUsc0JBQWxCLG1CQUFxQyxhQUFyQyxtQkFBK0MsVUFBUztBQUM3RixhQUFPO0FBQUEsUUFDSCxRQUFRLFdBQVU7QUFBQSxRQUNsQixRQUFRLG9DQUFRLFdBQVU7QUFBQSxRQUMxQixVQUFVLHdDQUFVLFdBQVU7QUFBQTtBQUFBO0FBR3RDLFVBQU0sRUFBRSxRQUFRLGlCQUFRLGFBQWEsNkJBQWdCLGNBQWMsbUJBQTlCLG1CQUE4QyxhQUE5QyxtQkFBd0QsWUFBVztBQUN4RyxXQUFPO0FBQUEsTUFDSCxRQUFRLFdBQVU7QUFBQSxNQUNsQixRQUFRLGtDQUFRLFdBQVU7QUFBQSxNQUMxQixVQUFVLHNDQUFVLFdBQVU7QUFBQTtBQUFBLFdBRy9CLEtBQVA7QUFDSSxZQUFRLEtBQUssd0NBQXdDO0FBQUE7QUFBQTtBQU83RCxpQ0FBaUM7O0FBQzdCLE1BQUk7QUFFQSxVQUFNLGdCQUFnQixPQUFPLElBQUk7QUFDakMsVUFBTSxtQkFBbUIsb0JBQWMsVUFBVSxnQkFBeEIsbUJBQXFDO0FBQzlELFVBQU0sd0JBQXdCLDBCQUFjLFVBQVUsc0JBQXhCLG1CQUEyQyxhQUEzQyxtQkFBcUQ7QUFDbkYsUUFBSSwrQkFBK0IsV0FBVztBQUMxQyxhQUFPO0FBQUEsUUFDSCxRQUFRLHNCQUFzQixVQUFVO0FBQUEsUUFDeEMsUUFBUSw2QkFBc0IsV0FBdEIsbUJBQThCLFdBQVU7QUFBQSxRQUNoRCxVQUFVLDZCQUFzQixhQUF0QixtQkFBZ0MsV0FBVTtBQUFBO0FBQUE7QUFHNUQsVUFBTSxXQUFXLG9CQUFvQjtBQUNyQyxXQUFPO0FBQUEsTUFDSCxRQUFRLFNBQVMsb0JBQW9CO0FBQUEsTUFDckMsUUFBUSxnQkFBUyxxQkFBVCxtQkFBMkIsV0FBVTtBQUFBLE1BQzdDLFVBQVUsZ0JBQVMsdUJBQVQsbUJBQTZCLFdBQVU7QUFBQTtBQUFBLFdBR2xELEtBQVA7QUFDSSxZQUFRLEtBQUsseUNBQXlDO0FBQUE7QUFBQTtBQU85RCxrQ0FBa0M7O0FBRTlCLFFBQU0sZ0JBQWdCLE9BQU8sSUFBSTtBQUNqQyxNQUFJO0FBQ0EsVUFBTSxXQUFZLCtCQUErQixjQUM3QywyQkFBYyxVQUFVLHNCQUF4QixtQkFBMkMsYUFBM0MsbUJBQXFELFlBQ3JEO0FBQ0osV0FBTztBQUFBLE1BQ0gsUUFBUSxTQUFTLFVBQVU7QUFBQSxNQUMzQixRQUFRLGdCQUFTLFdBQVQsbUJBQWlCLFdBQVU7QUFBQSxNQUNuQyxVQUFVLGdCQUFTLGFBQVQsbUJBQW1CLFdBQVU7QUFBQTtBQUFBLFdBR3hDLEtBQVA7QUFDSSxZQUFRLEtBQUssMENBQTBDO0FBQUE7QUFBQTtBQU8vRCxvQ0FBb0M7O0FBRWhDLFFBQU0sZ0JBQWdCLE9BQU8sSUFBSTtBQUNqQyxNQUFJO0FBQ0EsVUFBTSxXQUFZLCtCQUErQixnQkFDN0MsMkJBQWMsVUFBVSxzQkFBeEIsbUJBQTJDLGFBQTNDLG1CQUFxRCxjQUNyRDtBQUNKLFdBQU87QUFBQSxNQUNILFFBQVEsU0FBUyxVQUFVO0FBQUEsTUFDM0IsUUFBUSxnQkFBUyxXQUFULG1CQUFpQixXQUFVO0FBQUEsTUFDbkMsVUFBVSxnQkFBUyxhQUFULG1CQUFtQixXQUFVO0FBQUE7QUFBQSxXQUd4QyxLQUFQO0FBQ0ksWUFBUSxLQUFLLDRDQUE0QztBQUFBO0FBQUE7QUFPakUsaUNBQWlDOztBQUU3QixRQUFNLGdCQUFnQixPQUFPLElBQUk7QUFDakMsTUFBSTtBQUNBLFVBQU0sV0FBWSwrQkFBK0IsYUFDN0MsMkJBQWMsVUFBVSxzQkFBeEIsbUJBQTJDLGFBQTNDLG1CQUFxRCxXQUNyRDtBQUNKLFdBQU87QUFBQSxNQUNILFFBQVEsU0FBUyxVQUFVO0FBQUEsTUFDM0IsUUFBUSxnQkFBUyxXQUFULG1CQUFpQixXQUFVO0FBQUEsTUFDbkMsVUFBVSxnQkFBUyxhQUFULG1CQUFtQixXQUFVO0FBQUE7QUFBQSxXQUd4QyxLQUFQO0FBQ0ksWUFBUSxLQUFLLHlDQUF5QztBQUFBO0FBQUE7QUFLOUQsaUJBQWlCLGNBQWM7QUFFM0IsTUFBSSxRQUFRO0FBQ1osV0FBUyxJQUFJLEdBQUcsS0FBSSxhQUFhLFFBQVEsSUFBSSxJQUFHLEtBQUs7QUFDakQsWUFBUSxNQUFNLE9BQU8sYUFBYSxHQUFHLE1BQU07QUFBQTtBQUcvQyxRQUFNLFdBQVc7QUFDakIsV0FBUyxJQUFJLEdBQUcsS0FBSSxNQUFNLFFBQVEsSUFBSSxJQUFHLEtBQUs7QUFDMUMsVUFBTSxPQUFPLE1BQU07QUFHbkIsUUFBSSxDQUFDLFFBQVEsU0FBUztBQUNsQjtBQUFBO0FBR0EsZUFBUyxLQUFLO0FBQUE7QUFHdEIsTUFBSSxNQUFNLE9BQU87QUFDYixhQUFTLFFBQVE7QUFFckIsU0FBTyxTQUFTLEtBQUs7QUFBQTtBQUV6QixrQkFBa0IsVUFBVTtBQUN4QixNQUFJLE9BQU8sU0FBUyxVQUFVLFNBQVMsWUFBWSxPQUFPO0FBQzFELE1BQUksS0FBSyxZQUFZLFFBQVE7QUFDekIsV0FBTyxLQUFLLFVBQVUsR0FBRyxLQUFLLFlBQVk7QUFDOUMsU0FBTztBQUFBO0FBRVgsa0NBQWtDLE1BQU07QUFDcEMsUUFBTSxPQUFPLEtBQUssUUFBUSxPQUFPLEtBQUssTUFBTTtBQUM1QyxPQUFLO0FBQ0wsTUFBSSxLQUFLLFFBQVE7QUFDYixVQUFNLE1BQU0sS0FBSyxHQUFHO0FBQ3BCLFFBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxzQkFBc0IsTUFBTTtBQUM5QyxZQUFNLE9BQU8sSUFBSSxNQUFNLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFJaEQsMkJBQTJCLFdBQVcsVUFBVTtBQUM1QyxNQUFJLENBQUMsU0FBUyxTQUFTLFFBQVE7QUFDM0IsZ0JBQVk7QUFBQTtBQUVoQixRQUFNLE9BQU8sU0FBUyxjQUFjLEtBQUssV0FBVztBQUNwRCxRQUFNLG1CQUFtQjtBQUN6QixTQUFPO0FBQUE7QUFFWCwrQkFBK0IsVUFBVTtBQUNyQyxRQUFNLEVBQUUsZUFBZSxVQUFVLE9BQU87QUFDeEMsUUFBTSxlQUFlLFNBQVMsY0FBYztBQUM1QyxNQUFJLGlCQUFpQixLQUFLO0FBQ3RCLFdBQU8sUUFBUSxRQUFRLENBQUMsSUFBSTtBQUFBO0FBRWhDLE1BQUk7QUFDQSxVQUFNLGVBQWUsY0FBYyxxQkFBcUIsY0FBYztBQUN0RSxVQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVc7QUFFeEMsVUFBTSxZQUFZLE9BQU8sSUFBSSxZQUFZLEtBQUs7QUFDOUMsV0FBTyxDQUFDLFVBQVU7QUFBQSxXQUVmLEtBQVA7QUFDSSxZQUFRLE1BQU0sMkNBQTJDLGlCQUFpQjtBQUMxRSxRQUFJLFNBQVMsT0FBTztBQUNwQixXQUFPLENBQUMsSUFBSTtBQUFBO0FBQUE7QUFRcEIsb0JBQW9CLE1BQU0sY0FBYyxPQUFPO0FBQzNDLFFBQU0sS0FBSyxLQUFLLFFBQVEsUUFBUSxhQUFhO0FBQzdDLFNBQU8sR0FBRyxlQUFlO0FBQUE7QUFFN0IsaUNBQWlDLFNBQVE7QUFDckMsU0FBTyxRQUFPLFFBQVEsZUFBZTtBQUFBO0FBT3pDLDJCQUEyQixTQUFRLGFBQWE7QUFDNUMsTUFBSSxnQkFBZ0IsUUFBUTtBQUN4QixVQUFNLGNBQWMsd0JBQXdCO0FBQzVDLFdBQVEsVUFBVSxLQUFLLGdCQUNsQixVQUFTLEtBQUssZ0JBQWdCLFNBQVMsS0FBSztBQUFBO0FBRXJELFNBQU87QUFBQTtBQUVYLHlCQUF5QixNQUFNLGFBQWE7QUFDeEMsU0FBTyxvQkFBb0IsS0FBSyxVQUFVO0FBQUE7QUFFOUMseUJBQXlCLE1BQU0sYUFBYTtBQUN4QyxTQUFPLG9CQUFvQixTQUFTLE9BQU87QUFBQTtBQUUvQyw2QkFBNkIsVUFBVSxhQUFhO0FBQ2hELFFBQU0sY0FBYztBQUFBLElBQ2hCLEtBQUs7QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQTtBQUVWLFFBQU0sVUFBUyxZQUFZLGVBQWUsT0FBTyxNQUFNLEtBQUs7QUFDNUQsUUFBTSxXQUFXLE9BQU8sT0FBTyxVQUFVLFNBQVE7QUFDakQsTUFBSSxDQUFDLFNBQVMsV0FBVztBQUNyQixXQUFPO0FBQUE7QUFFWCxNQUFJLGtCQUFrQixTQUFRLGNBQWM7QUFDeEMsUUFBSSxnQkFBZ0IsUUFBUTtBQUN4QixZQUFNLGNBQWMsd0JBQXdCO0FBQzVDLFVBQUksVUFBVSxLQUFLLGNBQWM7QUFDN0IsZUFBTyxPQUFPLE9BQU8sVUFFckIsUUFBTyxRQUFRLFdBQVcsSUFBSSxRQUFRLFdBQVcsS0FBSztBQUFBO0FBQUE7QUFBQTtBQUlsRSxTQUFPO0FBQUE7QUFHWCw2Q0FBMkMsTUFBTTtBQUFBO0FBU2pELCtCQUErQixNQUFNO0FBQ2pDLFFBQU0sT0FBTSxPQUFPO0FBQ25CLFFBQU0sRUFBRSxVQUFVO0FBQ2xCLFFBQU0sU0FBUyxPQUFPO0FBQ3RCLFFBQU0sRUFBRSxVQUFVLGlCQUFRLFdBQVc7QUFDckMsUUFBTSxDQUFDLGtCQUFrQixhQUFhLE1BQU0sZ0JBQWdCO0FBQzVELFFBQU0sV0FBVyxLQUFLLE9BQU87QUFDN0IsUUFBTSxpQkFBaUIsTUFBTSxZQUFZLFFBQVE7QUFDakQsTUFBSTtBQUNBLFVBQU0sY0FBYyxNQUFNLE1BQU0sT0FBTyxnQkFBZ0IsaUJBQ2xELFFBQVEsb0JBQW9CLFVBQzVCLFFBQVEsb0JBQW9CLFNBQVMsT0FBTyxVQUM1QyxRQUFRLHFCQUFxQixVQUM3QixRQUFRLDREQUE0RCxDQUFDLEtBQUcsYUFBYSxNQUFNLFdBQVcsTUFBTSxpQkFBaUI7QUFDOUgsWUFBTSxNQUFNO0FBQ1osWUFBTSxjQUFjLEtBQUssUUFBUSxJQUFJO0FBQUEsUUFDakMsTUFBTSxJQUFJLElBQUk7QUFBQSxRQUNkLFFBQVEsSUFBSSxJQUFJO0FBQUEsUUFDaEIsUUFBUSxJQUFJLElBQUk7QUFBQTtBQUVwQixVQUFJLE1BQU07QUFDTixvQkFBWSxJQUFJLFNBQVMsV0FBVyxLQUFLO0FBQUE7QUFFN0MsVUFBSSxjQUFjO0FBQ2QsZUFBTyxZQUFZLE9BQU8sYUFBYSxVQUFVLEdBQUc7QUFBQTtBQUV4RCxhQUFPLFlBQVksT0FBTztBQUFBLE9BRXpCLFFBQVEseUJBQXlCLEtBQUssUUFBUSxTQUFTLEdBQUcsT0FBTyxPQUFPLFVBQ3hFLFFBQVEsd0JBQXdCLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxPQUFPO0FBRXJFLFNBQUksWUFBWSxLQUFLLGFBQWE7QUFDbEMsV0FBTztBQUFBLFdBRUosS0FBUDtBQUNJLFlBQVEsTUFBTSwyQkFBMkIsbUJBQW1CO0FBQzVELFFBQUksU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUc1QixzQkFBc0IsTUFBTSxZQUFZOztBQUNwQyxTQUFPLGlCQUFXLFdBQVcsTUFBTSxZQUE1QixZQUF1QztBQUFBO0FBRWxELDRCQUE0QjtBQUl4QixRQUFNLEVBQUUsVUFBVSxPQUFPO0FBQ3pCLFFBQU0sRUFBRSxXQUFXO0FBQ25CLFFBQU0sbUJBQW1CLE1BQU0sc0JBQXNCLFNBQVMsY0FBYztBQUM1RSxNQUFJLENBQUMsa0JBQWtCO0FBQ25CLFVBQU0sSUFBSStCLCtCQUE2QjtBQUFBO0FBRTNDLFFBQU0sYUFBYTtBQUNuQixXQUFTLE1BQU0sZ0JBQWdCLGtCQUFrQixDQUFDLFNBQVM7QUFDdkQsUUFBSSxnQkFBZ0IsU0FBUyxPQUFPO0FBQ2hDLFlBQU0sT0FBTyxnQkFBZ0IsTUFBTTtBQUNuQyxVQUFJLE1BQU07QUFDTixjQUFNLGFBQWEsV0FBVyxNQUFNO0FBQ3BDLG1CQUFXLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFJckMsU0FBTztBQUFBO0FBR1gsNENBQTRDLE1BQU07QUFBQTtBQUVsRCx5QkFBeUI7QUFDckIsUUFBTSxFQUFFLFdBQVc7QUFFbkIsTUFBSSxZQUFZLE9BQU8sYUFBYSxNQUFNO0FBQzFDLFFBQU0sYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQTtBQUVKLFNBQU8sV0FBVztBQUNkLGVBQVcsS0FBSyxXQUFXO0FBQzNCO0FBQUE7QUFFSixTQUFPO0FBQUE7QUFFWCxvQ0FBb0MsZUFBZTtBQUMvQyxTQUFPLGdCQUFnQixRQUFRLGNBQWM7QUFBQTtBQUVqRCxnQ0FBZ0MsTUFBTTtBQUNsQyxRQUFNLEVBQUUsVUFBVSxPQUFPO0FBQ3pCLFFBQU0sRUFBRSxVQUFVLGlCQUFRLFdBQVc7QUFDckMsUUFBTSxDQUFDLGtCQUFrQixhQUFhLE1BQU0sZ0JBQWdCO0FBQzVELFFBQU0sV0FBVyxLQUFLLE9BQU87QUFDN0IsUUFBTSxpQkFBaUIsTUFBTSxZQUFZLFFBQVE7QUFDakQsTUFBSTtBQUNBLFVBQU0sY0FBYyxNQUFNLE1BQU0sT0FBTyxnQkFBZ0IsaUJBQ2xELFFBQVEsNERBQTRELENBQUMsS0FBRyxhQUFhLE1BQU0sV0FBVyxNQUFNLGlCQUFpQjtBQUM5SCxZQUFNLE1BQU0sT0FBTztBQUNuQixZQUFNLGNBQWMsS0FBSyxRQUFRLElBQUk7QUFBQSxRQUNqQyxNQUFNLElBQUksSUFBSTtBQUFBLFFBQ2QsUUFBUSxJQUFJLElBQUk7QUFBQSxRQUNoQixRQUFRLElBQUksSUFBSTtBQUFBO0FBRXBCLFVBQUksTUFBTTtBQUNOLG9CQUFZLElBQUksU0FBUyxXQUFXLEtBQUs7QUFBQTtBQUU3QyxVQUFJLGNBQWM7QUFDZCxlQUFPLFlBQVksT0FBTyxhQUFhLFVBQVUsR0FBRztBQUFBO0FBRXhELGFBQU8sWUFBWSxPQUFPO0FBQUEsT0FFekIsUUFBUSxxQkFBcUIsVUFDN0IsUUFBUSxvQkFBb0IsT0FBTyxTQUFTLE9BQU8sVUFDbkQsUUFBUSxnRkFBZ0YsQ0FBQyxLQUFHLFdBQVcsaUJBQWlCO0FBQ3pILFlBQU0sTUFBTSwyQkFBMkI7QUFDdkMsYUFBTyxLQUFLLFFBQVEsS0FBSyxPQUFPLGFBQWE7QUFBQTtBQUdqRCxXQUFPLElBQUksWUFBWSxLQUFLLGFBQWE7QUFDekMsV0FBTztBQUFBLFdBRUosS0FBUDtBQUNJLFlBQVEsTUFBTSwyQkFBMkIsbUJBQW1CO0FBQzVELFFBQUksU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUc1Qix1QkFBdUIsTUFBTSxhQUFhOztBQUN0QyxTQUFPLGtCQUFZLFdBQVcsTUFBTSxhQUE3QixZQUF5QztBQUFBO0FBRXBELDZCQUE2QjtBQUN6QixRQUFNLGNBQWM7QUFDcEIsTUFBSSxDQUFDLGlDQUFpQztBQUNsQyxXQUFPO0FBQUE7QUFFWCxRQUFNLEVBQUUsVUFBVSxPQUFPO0FBQ3pCLFFBQU0sRUFBRSxXQUFXO0FBQ25CLFFBQU0sb0JBQW9CLE1BQU0sc0JBQXNCLFNBQVMsY0FBYztBQUM3RSxNQUFJLENBQUMsbUJBQW1CO0FBQ3BCLFVBQU0sSUFBSSw4QkFBOEI7QUFBQTtBQUU1QyxXQUFTLE1BQU0sZ0JBQWdCLG1CQUFtQixDQUFDLFNBQVM7QUFDeEQsUUFBSSxnQkFBZ0IsU0FBUyxPQUFPO0FBQ2hDLFlBQU0sT0FBTyxnQkFBZ0IsTUFBTTtBQUNuQyxVQUFJLE1BQU07QUFDTixjQUFNLGFBQWEsV0FBVyxNQUFNO0FBQ3BDLG9CQUFZLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFJdEMsU0FBTztBQUFBO0FBR1gsNkNBQTZDLE1BQU07QUFBQTtBQVNuRCxpQ0FBaUMsTUFBTTtBQUNuQyxRQUFNLEVBQUUsVUFBVSxPQUFPO0FBQ3pCLFFBQU0sRUFBRSxVQUFVLGlCQUFRLFdBQVc7QUFDckMsUUFBTSxDQUFDLGtCQUFrQixhQUFhLE1BQU0sZ0JBQWdCO0FBQzVELFFBQU0sV0FBVyxLQUFLLE9BQU87QUFDN0IsUUFBTSxpQkFBaUIsTUFBTSxZQUFZLFFBQVE7QUFDakQsTUFBSTtBQUNBLFVBQU0sY0FBYyxNQUFNLE1BQU0sT0FBTyxnQkFBZ0IsaUJBQ2xELFFBQVEsNERBQTRELENBQUMsS0FBRyxhQUFhLE1BQU0sV0FBVyxNQUFNLGlCQUFpQjtBQUM5SCxZQUFNLE1BQU0sT0FBTztBQUNuQixZQUFNLGNBQWMsS0FBSyxRQUFRLElBQUk7QUFBQSxRQUNqQyxNQUFNLElBQUksSUFBSTtBQUFBLFFBQ2QsUUFBUSxJQUFJLElBQUk7QUFBQSxRQUNoQixRQUFRLElBQUksSUFBSTtBQUFBO0FBRXBCLFVBQUksTUFBTTtBQUNOLG9CQUFZLElBQUksU0FBUyxXQUFXLEtBQUs7QUFBQTtBQUU3QyxVQUFJLGNBQWM7QUFDZCxlQUFPLFlBQVksT0FBTyxhQUFhLFVBQVUsR0FBRztBQUFBO0FBRXhELGFBQU8sWUFBWSxPQUFPO0FBQUEsT0FFekIsUUFBUSxvQkFBb0IsVUFDNUIsUUFBUSxvQkFBb0IsT0FBTyxTQUFTLE9BQU8sVUFDbkQsUUFBUSxxQkFBcUI7QUFFbEMsV0FBTyxJQUFJLFlBQVksS0FBSyxhQUFhO0FBQ3pDLFdBQU87QUFBQSxXQUVKLEtBQVA7QUFDSSxZQUFRLE1BQU0sMkJBQTJCLG1CQUFtQjtBQUM1RCxRQUFJLFNBQVMsT0FBTztBQUFBO0FBQUE7QUFHNUIsd0JBQXdCLE1BQU0sY0FBYzs7QUFDeEMsU0FBTyxtQkFBYSxXQUFXLE1BQU0sY0FBOUIsWUFBMkM7QUFBQTtBQUV0RCw4QkFBOEI7QUFDMUIsUUFBTSxlQUFlO0FBQ3JCLE1BQUksQ0FBQyxrQ0FBa0M7QUFDbkMsV0FBTztBQUFBO0FBRVgsUUFBTSxFQUFFLFVBQVUsT0FBTztBQUN6QixRQUFNLEVBQUUsV0FBVztBQUNuQixRQUFNLHFCQUFxQixNQUFNLHNCQUFzQixTQUFTLGNBQWM7QUFDOUUsTUFBSSxDQUFDLG9CQUFvQjtBQUNyQixVQUFNLElBQUksK0JBQStCO0FBQUE7QUFFN0MsV0FBUyxNQUFNLGdCQUFnQixvQkFBb0IsQ0FBQyxTQUFTO0FBQ3pELFFBQUksZ0JBQWdCLFNBQVMsT0FBTztBQUNoQyxZQUFNLE9BQU8sZ0JBQWdCLE1BQU07QUFDbkMsVUFBSSxNQUFNO0FBQ04sY0FBTSxhQUFhLFdBQVcsTUFBTTtBQUNwQyxxQkFBYSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBSXZDLFNBQU87QUFBQTtBQUdYLCtDQUErQyxNQUFNO0FBQUE7QUFTckQsbUNBQW1DLE1BQU07QUFDckMsUUFBTSxFQUFFLFVBQVUsT0FBTztBQUN6QixRQUFNLEVBQUUsVUFBVSxpQkFBUSxXQUFXO0FBQ3JDLFFBQU0sQ0FBQyxrQkFBa0IsYUFBYSxNQUFNLGdCQUFnQjtBQUM1RCxRQUFNLFdBQVcsS0FBSyxPQUFPO0FBQzdCLFFBQU0saUJBQWlCLE1BQU0sWUFBWSxRQUFRO0FBQ2pELE1BQUk7QUFDQSxVQUFNLGNBQWMsTUFBTSxNQUFNLE9BQU8sZ0JBQWdCLGlCQUNsRCxRQUFRLDREQUE0RCxDQUFDLEtBQUcsYUFBYSxNQUFNLFdBQVcsTUFBTSxpQkFBaUI7QUFDOUgsWUFBTSxNQUFNLE9BQU87QUFDbkIsWUFBTSxjQUFjLEtBQUssUUFBUSxJQUFJO0FBQUEsUUFDakMsTUFBTSxJQUFJLElBQUk7QUFBQSxRQUNkLFFBQVEsSUFBSSxJQUFJO0FBQUEsUUFDaEIsUUFBUSxJQUFJLElBQUk7QUFBQTtBQUVwQixVQUFJLE1BQU07QUFDTixvQkFBWSxJQUFJLFNBQVMsV0FBVyxLQUFLO0FBQUE7QUFFN0MsVUFBSSxjQUFjO0FBQ2QsZUFBTyxZQUFZLE9BQU8sYUFBYSxVQUFVLEdBQUc7QUFBQTtBQUV4RCxhQUFPLFlBQVksT0FBTztBQUFBLE9BRXpCLFFBQVEsb0JBQW9CLFVBQzVCLFFBQVEsb0JBQW9CLE9BQU8sU0FBUyxPQUFPLFVBQ25ELFFBQVEscUJBQXFCO0FBRWxDLFdBQU8sSUFBSSxZQUFZLEtBQUssYUFBYTtBQUN6QyxXQUFPO0FBQUEsV0FFSixLQUFQO0FBQ0ksWUFBUSxNQUFNLDJCQUEyQixtQkFBbUI7QUFDNUQsUUFBSSxTQUFTLE9BQU87QUFBQTtBQUFBO0FBRzVCLDBCQUEwQixNQUFNLFdBQVc7O0FBQ3ZDLFNBQU8sZ0JBQVUsV0FBVyxNQUFNLGdCQUEzQixZQUEwQztBQUFBO0FBRXJELGdDQUFnQztBQUM1QixRQUFNLFlBQVk7QUFDbEIsTUFBSSxDQUFDLG9DQUFvQztBQUNyQyxXQUFPO0FBQUE7QUFFWCxRQUFNLEVBQUUsVUFBVSxPQUFPO0FBQ3pCLFFBQU0sRUFBRSxXQUFXO0FBQ25CLFFBQU0sa0JBQWtCLE1BQU0sc0JBQXNCLFNBQVMsY0FBYztBQUMzRSxNQUFJLENBQUMsaUJBQWlCO0FBQ2xCLFVBQU0sSUFBSSxpQ0FBaUM7QUFBQTtBQUUvQyxXQUFTLE1BQU0sZ0JBQWdCLGlCQUFpQixDQUFDLFNBQVM7QUFDdEQsUUFBSSxnQkFBZ0IsU0FBUyxPQUFPO0FBQ2hDLFlBQU0sT0FBTyxnQkFBZ0IsTUFBTTtBQUNuQyxVQUFJLE1BQU07QUFDTixjQUFNLGFBQWEsV0FBVyxNQUFNO0FBQ3BDLGtCQUFVLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFJcEMsU0FBTztBQUFBO0FBR1gsNENBQTRDLE1BQU07QUFBQTtBQVNsRCxnQ0FBZ0MsTUFBTTtBQUNsQyxRQUFNLEVBQUUsVUFBVSxPQUFPO0FBQ3pCLFFBQU0sRUFBRSxVQUFVLGlCQUFRLFdBQVc7QUFDckMsUUFBTSxDQUFDLGtCQUFrQixhQUFhLE1BQU0sZ0JBQWdCO0FBQzVELFFBQU0sV0FBVyxLQUFLLE9BQU87QUFDN0IsUUFBTSxpQkFBaUIsTUFBTSxZQUFZLFFBQVE7QUFDakQsTUFBSTtBQUNBLFVBQU0sY0FBYyxNQUFNLE1BQU0sT0FBTyxnQkFBZ0IsaUJBQ2xELFFBQVEsNERBQTRELENBQUMsS0FBRyxhQUFhLE1BQU0sV0FBVyxNQUFNLGlCQUFpQjtBQUM5SCxZQUFNLE1BQU0sT0FBTztBQUNuQixZQUFNLGNBQWMsS0FBSyxRQUFRLElBQUk7QUFBQSxRQUNqQyxNQUFNLElBQUksSUFBSTtBQUFBLFFBQ2QsUUFBUSxJQUFJLElBQUk7QUFBQSxRQUNoQixRQUFRLElBQUksSUFBSTtBQUFBO0FBRXBCLFVBQUksTUFBTTtBQUNOLG9CQUFZLElBQUksU0FBUyxXQUFXLEtBQUs7QUFBQTtBQUU3QyxVQUFJLGNBQWM7QUFDZCxlQUFPLFlBQVksT0FBTyxhQUFhLFVBQVUsR0FBRztBQUFBO0FBRXhELGFBQU8sWUFBWSxPQUFPO0FBQUEsT0FFekIsUUFBUSxvQkFBb0IsVUFDNUIsUUFBUSxvQkFBb0IsT0FBTyxTQUFTLE9BQU8sVUFDbkQsUUFBUSxxQkFBcUI7QUFFbEMsV0FBTyxJQUFJLFlBQVksS0FBSyxhQUFhO0FBQ3pDLFdBQU87QUFBQSxXQUVKLEtBQVA7QUFDSSxZQUFRLE1BQU0sMkJBQTJCLG1CQUFtQjtBQUM1RCxRQUFJLFNBQVMsT0FBTztBQUFBO0FBQUE7QUFHNUIsdUJBQXVCLE1BQU0sYUFBYTs7QUFDdEMsU0FBTyxrQkFBWSxXQUFXLE1BQU0sYUFBN0IsWUFBeUM7QUFBQTtBQUVwRCw2QkFBNkI7QUFDekIsUUFBTSxjQUFjO0FBQ3BCLE1BQUksQ0FBQyxpQ0FBaUM7QUFDbEMsV0FBTztBQUFBO0FBRVgsUUFBTSxFQUFFLFVBQVUsT0FBTztBQUN6QixRQUFNLEVBQUUsV0FBVztBQUNuQixRQUFNLG9CQUFvQixNQUFNLHNCQUFzQixTQUFTLGNBQWM7QUFDN0UsTUFBSSxDQUFDLG1CQUFtQjtBQUNwQixVQUFNLElBQUksOEJBQThCO0FBQUE7QUFFNUMsV0FBUyxNQUFNLGdCQUFnQixtQkFBbUIsQ0FBQyxTQUFTO0FBQ3hELFFBQUksZ0JBQWdCLFNBQVMsT0FBTztBQUNoQyxZQUFNLE9BQU8sZ0JBQWdCLE1BQU07QUFDbkMsVUFBSSxNQUFNO0FBQ04sY0FBTSxhQUFhLFdBQVcsTUFBTTtBQUNwQyxvQkFBWSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBSXRDLFNBQU87QUFBQTtBQUdYLHdDQUF3Qzs7QUFDcEMsUUFBTSxFQUFFLGNBQVE7QUFFaEIsUUFBTSxtQkFBbUIsS0FBSSxnQkFBZ0IsUUFBUTtBQUNyRCxNQUFJLG9CQUFvQixpQkFBaUIsU0FBUztBQUM5QyxXQUFPO0FBQUE7QUFHWCxRQUFNLGdCQUFnQixLQUFJLFFBQVEsVUFBVTtBQUM1QyxTQUFPLGlCQUFpQiwyQkFBYyxhQUFkLG1CQUF3QixVQUF4QixtQkFBK0I7QUFBQTtBQU0zRCx5Q0FBeUM7O0FBQ3JDLFFBQU0sRUFBRSxjQUFRO0FBRWhCLE1BQUksS0FBSSxRQUFRLFVBQVUsYUFBYTtBQUNuQyxXQUFPO0FBQUE7QUFHWCxRQUFNLGdCQUFnQixLQUFJLFFBQVEsVUFBVTtBQUM1QyxTQUFPLGlCQUFpQiwyQkFBYyxhQUFkLG1CQUF3QixXQUF4QixtQkFBZ0M7QUFBQTtBQUU1RCwwQ0FBMEM7O0FBQ3RDLFFBQU0sRUFBRSxjQUFRO0FBRWhCLFFBQU0sZ0JBQWdCLEtBQUksUUFBUSxVQUFVO0FBQzVDLFNBQU8saUJBQWlCLDJCQUFjLGFBQWQsbUJBQXdCLFlBQXhCLG1CQUFpQztBQUFBO0FBRTdELDRDQUE0Qzs7QUFDeEMsUUFBTSxFQUFFLGNBQVE7QUFFaEIsUUFBTSxnQkFBZ0IsS0FBSSxRQUFRLFVBQVU7QUFDNUMsU0FBTyxpQkFBaUIsMkJBQWMsYUFBZCxtQkFBd0IsY0FBeEIsbUJBQW1DO0FBQUE7QUFFL0QseUNBQXlDOztBQUNyQyxRQUFNLEVBQUUsY0FBUTtBQUVoQixRQUFNLGdCQUFnQixLQUFJLFFBQVEsVUFBVTtBQUM1QyxTQUFPLGlCQUFpQiwyQkFBYyxhQUFkLG1CQUF3QixXQUF4QixtQkFBZ0M7QUFBQTtBQUU1RCxpQ0FBaUMsYUFBYTtBQUMxQyxRQUFNLGNBQWM7QUFBQSxJQUNoQixLQUFLO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDUjtBQUNGLFNBQU87QUFBQTtBQUVYLDRCQUE0QixhQUFhLE1BQU07QUFDM0MsUUFBTSxXQUFXO0FBQUEsSUFDYixLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUE7QUFFVixTQUFPLFNBQVMsYUFBYTtBQUFBO21DQUdHO3FDQUNFO3VDQUNFO29DQUNIO29DQUNBO0FBQ3JDLDJFQUF1Qzt3Q0FDRTswQ0FDRTt1Q0FDSDt1Q0FDQTtBQUN4QyxpREFBMEI7MkJBQ0U7NEJBQ0M7NkJBQ0M7MEJBQ0g7MEJBQ0E7QUFDM0IsbURBQTJCOzRCQUNFOzhCQUNFOzJCQUNIOzJCQUNBO0FBQzVCLDJDQUF1QjtBQUN2QiwyREFBK0I7QUFDL0IsaURBQTBCO3lCQUNBO29CQUNMO3dCQUNJO2dDQUNRO2lDQUNDOzBCQUNQO2tDQUNRO3lCQUNUO3VCQUNGOytCQUNRO3VCQUNSOytCQUNRO2lCQzNyQlIsT0FBYyxRQUF3QjtVQUNwRCxPQUFPO0FBQUEsU0FDUixrQkFBa0I7WUFDZixhQUFhQzthQUVaLGlDQUNGLFFBREU7QUFBQSxRQUVMO0FBQUE7QUFBQTtBQUFBLFNBR0MsV0FBVzthQUNQLGlDQUNGLFFBREU7QUFBQSxRQUVMLEtBQUssT0FBTyxRQUFRO0FBQUE7QUFBQTtBQUFBLGFBR2Y7YUFDQTtBQUFBO0FBQUE7QUFBQTtNQUtBLGVBQXNCO0FBQUEsRUFDakMsWUFBWTtBQUFBLEVBQ1osS0FBSztBQUFBO0FDN0JQLE1BQU0sV0FBVyxZQUNmO0FBQUEsRUFDRSxhQUFhQztBQUFBQSxFQUNiLGVBQWVDO0FBQUFBLEVBQ2YsV0FBV0M7QUFBQUEsRUFDWCxXQUFXQztBQUFBQSxFQUNYLFlBQVlDO0FBQUFBLEVBQ1osaUJBQWlCQztBQUFBQSxHQUVuQixnQkFBMkM7QUFBQSxFQUN6QyxhQUFhQztBQUFBQSxFQUNiLGVBQWVDO0FBQUFBLEVBQ2YsV0FBV0M7QUFBQUEsRUFDWCxXQUFXQztBQUFBQSxFQUNYLFlBQVlDO0FBQUFBLEVBQ1osaUJBQWlCQztBQUFBQTtBQ3RDckIsTUFBTSxhQUFhQywwQ0FBYyxTQUFTO0FDTTFDLHdCQUF3QjtBQUFBLEVBQ2YsV0FBVztXQUNULFNBQVMsV0FBVztBQUFBO0FBQUEsRUFHdEIsT0FBTyxNQUFVO2FBQ2IsU0FBUztBQUFBLE1BQ2hCLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxRQUNQO0FBQUE7QUFBQTtXQUdHO0FBQUE7QUFBQSxRQUdJLHFCQUFxQjtVQUMxQixhQUFhYjthQUVWLFNBQVM7QUFBQSxNQUNoQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsUUFDUDtBQUFBO0FBQUE7V0FHRztBQUFBO0FBQUEsUUFjSSxtQkFBbUIsTUFBOEI7VUFDdEQsRUFBQyxlQUFjLEtBQUs7VUFDcEIsWUFBWWMsZUFBYSxNQUFNO1dBQzlCO0FBQUE7QUFBQTtBQUlYLE1BQU0sb0JBQW9CLElBQUk7SUN6QmI7QUFBVixVQUFVLFVBQVY7Z0JBQ2UsTUFBMEM7VUFDdEQsT0FBNkI7ZUFFeEIsT0FBTyxNQUFNO1VBQ2xCO2NBQ0ksaUJBQWlCLGFBQWEsUUFBUTtZQUN4QyxtQkFBbUIsTUFBTTtnQkFDckIsTUFBTSxLQUFLLE1BQU07ZUFDbEIsT0FBTztBQUFBO0FBQUEsZUFFUDtnQkFDQyxNQUFNLDBCQUEwQixLQUFLO0FBQUE7QUFBQTtXQUkxQztBQUFBO1dBZk87ZUFrQkksTUFBNEI7ZUFDbkMsT0FBTyxNQUFNO1VBQ2xCO2NBQ0ksaUJBQWlCLEtBQUssVUFBVSxLQUFLO3FCQUM5QixRQUFRLEtBQUs7QUFBQSxlQUNuQjtnQkFDQyxNQUFNLDJCQUEyQixLQUFLO0FBQUE7QUFBQTtBQUFBO1dBTnBDO21CQVdPLE1BQW9CO2VBQzlCLE9BQU8sTUFBTTtVQUNsQjtxQkFDVyxXQUFXO0FBQUEsZUFDakI7Z0JBQ0MsTUFBTSw2QkFBNkIsS0FBSztBQUFBO0FBQUE7QUFBQTtXQUx0QztxQ0FVMEI7O1VBQ2xDLFdBQVcsU0FBUyxjQUFjO2FBQy9CLE1BQU0sVUFBVTthQUNoQixLQUFLLFlBQVk7bUJBRWpCLHFDQUFlLGFBQWEsUUFBUSxLQUFLLEtBQUssTUFBTTthQUNwRDtBQUFBO1dBTks7R0F4Q0Q7QUN6QmpCLHlCQUF5QjtBQUFBLEVBQ3ZCLGNBQWM7QUFpQlAsb0NBQVcsTUFBTTthQUNmLFNBQVMsV0FBVztBQUFBO0FBR3RCLHlDQUFnQixDQUFDLGVBQXVCO2VBQ3BDLFNBQVM7QUFBQSxRQUNoQixNQUFNO0FBQUEsUUFDTixTQUFTO0FBQUEsVUFDUDtBQUFBO0FBQUE7QUFBQTtBQUtDLHlDQUFnQixDQUFDLGVBQXVCO2VBQ3BDLFNBQVM7QUFBQSxRQUNoQixNQUFNO0FBQUEsUUFDTixTQUFTO0FBQUEsVUFDUDtBQUFBO0FBQUE7QUFBQTtBQUtDLDJDQUFrQixDQUFDLGlCQUEwQjtlQUN6QyxTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBLFVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFLQyx1REFBOEIsQ0FBQyw2QkFBc0M7ZUFDakUsU0FBUztBQUFBLFFBQ2hCLE1BQU07QUFBQSxRQUNOLFNBQVM7QUFBQSxVQUNQO0FBQUE7QUFBQTtBQUFBO0FBS0MseUNBQWdCLENBQUMsZUFBb0M7ZUFDakQsU0FBUztBQUFBLFFBQ2hCLE1BQU07QUFBQSxRQUNOLFNBQVM7QUFBQTtjQUVILElBQUk7QUFBQTs7VUE3RE4sZ0JBQWdCLFFBQVEsSUFBSTtBQUFBLE1BQ2hDO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUE7VUFFSSxvQkFBb0I7QUFBQSxNQUN4QixxQkFBcUIsb0JBQWMsd0JBQWQsWUFBcUM7QUFBQSxNQUMxRCxvQkFBb0Isb0JBQWMsdUJBQWQsWUFBb0M7QUFBQSxNQUN4RCx5QkFBeUIsb0JBQWMsNEJBQWQsWUFBeUM7QUFBQSxNQUNsRSx5QkFBeUIsb0JBQWMsNEJBQWQsWUFBeUM7QUFBQTtTQUcvRCxjQUFjO0FBQUE7QUFBQTtBQW9EdkIsTUFBTSxxQkFBcUIsSUFBSTtBQ3BEL0Isc0JBQXNCO0FBQUEsRUFDcEIsY0FBYztBQU9QLG1EQUEwQixNQUFNOztZQUMvQixFQUFDLFVBQVUsaUJBQVEsZ0JBQVEsT0FBTztZQUNsQyxZQUFZLElBQUksZ0JBQWdCO1lBQ2hDLFFBQXFCO0FBQUEsUUFDekIsVUFBVTtBQUFBLFFBQ1YsTUFBTTtBQUFBLFFBQ04sT0FBTztBQUFBLFVBQ0wsS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFVBQ1YsTUFBTTtBQUFBLFVBQ04sTUFBTTtBQUFBLFVBQ04sUUFBUTtBQUFBO0FBQUE7WUFHTixNQUFNLE1BQU0sZ0JBQVUsSUFBSSxXQUFkLFlBQXdCO1lBQ3BDLE1BQU0sT0FBUSxnQkFBVSxJQUFJLFlBQWQsWUFBeUI7WUFDdkMsTUFBTSxPQUFPLGdCQUFVLElBQUksWUFBZCxZQUF5QjtZQUN0QyxNQUFNLFNBQVMsZ0JBQVUsSUFBSSxjQUFkLFlBQTJCO1lBQzFDLE9BQU8sU0FBUyxnQkFBVSxJQUFJLFlBQWQsWUFBeUI7WUFDekMsS0FBSyxTQUFTLGdCQUFVLElBQUksVUFBZCxZQUF1QjtVQUN2QyxLQUFLLFFBQVEsT0FBTyxHQUFHO2NBQ25CLE1BQU0sV0FBVztBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBO0FBQUE7WUFHRSxPQUFPO1lBQ1AsV0FBVyxLQUFLLGlCQUFpQjtlQUM5QixTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBO0FBQUE7QUFJTixvQ0FBVyxNQUFNO2FBQ2YsU0FBUyxXQUFXO0FBQUE7QUFHdEIsc0NBQWEsTUFBTTtlQUNmLFNBQVM7QUFBQSxRQUNoQixNQUFNO0FBQUEsUUFDTixTQUFTO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsVUFDVixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixRQUFRO0FBQUE7QUFBQTtBQUFBO0FBT1Asb0NBQVcsQ0FBQyxVQUFpQjtlQUN6QixTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBO0FBQUE7QUFNTixtQ0FBVSxDQUFDLFVBQWlCO2VBQ3hCLFNBQVM7QUFBQSxRQUNoQixNQUFNO0FBQUEsUUFDTixTQUFTO0FBQUEsVUFDUDtBQUFBO0FBQUE7QUFBQTtBQU9DLHVDQUFjLENBQUMsYUFBcUI7ZUFDaEMsU0FBUztBQUFBLFFBQ2hCLE1BQU07QUFBQSxRQUNOLFNBQVM7QUFBQSxVQUNQO0FBQUE7QUFBQTtBQUFBO0FBT0MsdUNBQWMsQ0FBQyxhQUFxQjtlQUNoQyxTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBLFVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFPQywwQ0FBaUIsQ0FBQyxhQUFxQjtlQUNuQyxTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBLFVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFPQyw0Q0FBbUIsQ0FBQyxPQUEwQixPQUFPO2VBQ2pELFNBQVM7QUFBQSxRQUNoQixNQUFNO0FBQUEsUUFDTixTQUFTO0FBQUEsVUFDUDtBQUFBO0FBQUE7QUFBQTtBQU9DLHlDQUFnQixDQUFDLGFBQXFCO2VBQ2xDLFNBQVM7QUFBQSxRQUNoQixNQUFNO0FBQUEsUUFDTixTQUFTO0FBQUE7QUFBQTtBQU1OLHdDQUFlLENBQUMsU0FBaUI7ZUFDN0IsU0FBUztBQUFBLFFBQ2hCLE1BQU07QUFBQSxRQUNOLFNBQVM7QUFBQSxVQUNQO0FBQUE7QUFBQTtBQUFBO0FBT0MsdUNBQWMsQ0FBQyxTQUFnQjtlQUMzQixTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBLFVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFPQyw2Q0FBb0IsQ0FBQyxNQUFjLE9BQWU7ZUFDOUMsU0FBUztBQUFBLFFBQ2hCLE1BQU07QUFBQSxRQUNOLFNBQVM7QUFBQSxVQUNQLFVBQVUsRUFBQyxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBT2hCLDRDQUFtQixDQUFDLGFBQWdDO1VBQ3JELENBQUMsS0FBSyxZQUFZLFlBQVksU0FBUyxXQUFXO2VBQzdDO0FBQUEsYUFDRjtlQUNFO0FBQUE7QUFBQTtTQXpLSjtXQUNFLGFBQWEsTUFBTTtXQUNuQjtBQUFBO0FBQUE7QUFBQTtBQTRLWCxNQUFNLGtCQUFrQixJQUFJOzBCQzNMMUIsUUFDQSxpQkFDQSxTQUNBLFVBQ3FCO1FBQ2YsRUFBQyxlQUFjLGtCQUFrQjtRQUNqQyxFQUFDLFVBQVMsU0FBUyxXQUFXLGdCQUFnQjtRQUM5QyxhQUFhLE9BQU8sTUFBTSxHQUFHLE1BQU07UUFDbkMsV0FBVyxTQUFTLE9BQU8sTUFBTTtRQUNqQyxhQUFhQyxrQkFBTyxZQUFZO1FBQ2hDLFlBQVlELGVBQWEsWUFBWTtRQUNyQyxjQUFjLE1BQU0sTUFBTSxLQUFLO1FBQy9CLFlBQVlFLHNCQUFvQjtRQUNoQyxjQUFjLFFBQVEsUUFBUSxPQUFPO1FBQ3JDLGVBQWUsVUFBVTtRQUN6QixVQUFVLFVBQVUsVUFBVSxRQUFRLGlCQUFpQjtRQUN2RCxpQkFBaUIsWUFBWSxRQUFRLGNBQWM7UUFDbkQsTUFBTSxPQUFPLFdBQVc7U0FDdkI7QUFBQSxJQUNMLElBQUk7QUFBQSxJQUNKLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVcsV0FBVyxPQUFPO0FBQUEsSUFDN0IsV0FBVyxXQUFXLE9BQU87QUFBQSxJQUM3QjtBQUFBO0FBQUE7NEJBWXVDO1FBQ25DLG9CQUFvQkM7UUFDcEIsZ0JBQWdCLGtCQUFrQjtTQUNqQztBQUFBO0FBR1QsTUFBTUQsd0JBQXNCLENBQUMsVUFBa0IsTUFBTSxNQUFNO01DN0M5QyxZQUFZLFlBQTRCO1FBQzdDLEVBQUMsZUFBZSxVQUFTLFNBQVMsV0FBVyxnQkFBZ0I7UUFFN0QsYUFBWTtRQUVaLFdBQVc7UUFDWCxlQUFlLFdBQVc7UUFFMUIsWUFBWSxjQUFjLHFCQUFxQixJQUFJO01BQ3JELHFCQUFxQkUsa0JBQU87VUFDeEIsZUFBZSxNQUFNLE1BQU0sS0FBSztVQUNoQyxZQUFZRixzQkFBb0I7UUFDbEMsYUFBYSxVQUFVLFVBQVUsR0FBRztlQUM3QixJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztZQUNyQyxVQUFVLE9BQU87O2NBQ2Ysb0JBQW9CLHVCQUF1QixVQUFVO2NBQ3JELGNBQWNELGtCQUFPLG1CQUFtQixrQkFBa0IsT0FBTztjQUNqRSxjQUFjO2NBQ2QsTUFBSyxvQkFBb0JJLGdCQUFjLFVBQVU7Y0FDakQsY0FBYyxrQkFBa0IsVUFBVTtjQUMxQyxRQUFRLGlCQUFpQixVQUFVO1lBQ3JDO1lBRUEscUJBQXFCLEtBQUssVUFBVSxLQUFLO3VCQUM5Qkosa0JBQU9LLHdCQUFzQixVQUFVLEtBQUs7cUJBQy9DLEtBQUs7QUFBQSxZQUNiLFdBQVc7QUFBQSxZQUNYO0FBQUEsWUFDQSxVQUFVLFdBQVcsT0FBTztBQUFBLFlBQzVCO0FBQUEsWUFDQTtBQUFBLFlBQ0EsV0FBVztBQUFBLFlBQ1gsUUFBUTtBQUFBO0FBQUEsbUJBRUQsa0JBQWtCLEtBQUssVUFBVSxLQUFLO3FCQUNyQyxLQUFLO0FBQUEsWUFDYixXQUFXO0FBQUEsWUFDWDtBQUFBLFlBQ0EsVUFBVTtBQUFBLFlBQ1YsYUFBYTtBQUFBLFlBQ2I7QUFBQSxZQUNBLFdBQVc7QUFBQSxZQUNYLFFBQVE7QUFBQTtBQUFBLGVBRUw7cUJBQ0ssS0FBSztBQUFBLFlBQ2IsV0FBVztBQUFBLFlBQ1g7QUFBQSxZQUNBLFVBQVU7QUFBQSxZQUNWO0FBQUEsWUFDQTtBQUFBLFlBQ0EsV0FBVztBQUFBLFlBQ1gsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7U0FPWDtBQUFBO0FBR1QsTUFBTUosd0JBQXNCLENBQUMsVUFBa0IsTUFBTSxNQUFNO0FBRTNELE1BQU0seUJBQXlCLENBQUM7O0FBQWlCLDJCQUFZLEtBQUssVUFBakIsbUJBQXlCO0FBQUE7QUFFMUUsTUFBTUcsa0JBQWdCLENBQUM7O0FBQWlCLHFDQUFzQixLQUFLLFVBQTNCLG1CQUFtQztBQUFBO0FBRTNFLE1BQU0sb0JBQW9CLENBQUM7O0FBQWlCLHNEQUF1QyxLQUFLLFVBQTVDLG1CQUFvRDtBQUFBO0FBRWhHLE1BQU0sbUJBQW1CLENBQUM7O0FBQWlCLHFEQUFzQyxLQUFLLFVBQTNDLG1CQUFtRDtBQUFBO0FBRTlGLE1BQU1DLDBCQUF3QixDQUFDOztBQUFnQiw0RUFBNkQsS0FBSyxVQUFsRSxtQkFBMEU7QUFBQTtNQ3hFNUcsc0JBQXNCLE9BQU8sT0FBZSxnQkFBc0M7UUFDdkYsRUFBQyxlQUFlLFVBQVMsU0FBUyxXQUFXLGdCQUFnQjtRQUU3RCxXQUFXO1FBQ1gsZUFBZSxXQUFXO1FBRTFCLFlBQVksY0FBYyxxQkFBcUIsSUFBSTtNQUVyRCxxQkFBcUJGLGtCQUFPO1VBQ3hCLGVBQWUsTUFBTSxNQUFNLEtBQUs7VUFDaEMsWUFBWUYsc0JBQW9CO1VBQ2hDLE9BQU9EO1VBQ1AsY0FBYyxLQUFLLE9BQU87VUFDMUIsY0FBYztRQUdoQjtRQUNBLFVBQVUsV0FBVyxLQUFLLFVBQVUsT0FBTyxJQUFJO2dCQUN2QztBQUFBLFdBQ0w7Z0JBQ0ssVUFBVSxTQUFTO0FBQUE7VUFFekIsTUFBSyxLQUFLLE9BQU8sb0JBQW9CO1VBRXJDLGtCQUFrQixXQUFXLGNBQWMsS0FBSSxPQUFPO1dBRXJEO0FBQUEsTUFDTDtBQUFBLFFBQ0UsV0FBVztBQUFBLFFBQ1g7QUFBQSxRQUNBLFVBQVU7QUFBQSxRQUNWO0FBQUEsUUFDQTtBQUFBLFFBQ0EsV0FBVztBQUFBLFFBQ1gsUUFBUTtBQUFBO0FBQUE7QUFBQSxTQUdQO1VBQ0MsZ0JBQWdCTSx5QkFBYztVQUM5QixPQUFPLE1BQU0sZ0JBQWdCO1VBQzdCLGVBQWUsTUFBTSxNQUFNLEtBQUs7VUFDaEMsT0FBT047VUFDUCxjQUFjLEtBQUssT0FBTztVQUMxQixjQUFjO1VBQ2QsTUFBSyxLQUFLLE9BQU8sb0JBQW9CO1VBRXJDLGtCQUFrQixNQUFNLGNBQWMsS0FBSSxPQUFPO1dBRWhEO0FBQUEsTUFDTDtBQUFBLFFBQ0UsV0FBVztBQUFBLFFBQ1g7QUFBQSxRQUNBLFVBQVU7QUFBQSxRQUNWO0FBQUEsUUFDQTtBQUFBLFFBQ0EsV0FBVztBQUFBLFFBQ1gsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO01BTUgsb0JBQW9CLE9BQy9CLE1BQ0EsYUFDQSxLQUNBLE9BQ0EsZ0JBQ2lCO1FBQ1gsRUFBQyxVQUFTLFNBQVMsV0FBVyxnQkFBZ0I7TUFDaEQ7TUFDQSxnQkFBZ0IsSUFBSTtpQkFDVCxNQUFLLE1BQU0sUUFBUSxNQUFNO0FBQUEsU0FDakM7aUJBQ1EsY0FBYyxPQUFPLE1BQUssTUFBTSxRQUFRLE1BQU07QUFBQTtRQUd2RCxNQUFNLE9BQU8sTUFBTTtTQUVsQjtBQUFBO01BR0ksa0JBQWtCLE9BQU8sU0FBaUM7UUFDL0QsRUFBQyxVQUFTLFNBQVMsV0FBVyxnQkFBZ0I7TUFFaEQ7VUFDSSxjQUFjLE1BQU0sTUFBTSxPQUFPLE1BQU07V0FDdEM7QUFBQSxXQUNBO1lBQ0MsTUFBTSwyQkFBMkIsU0FBUztRQUM5Q08sa0JBQU87QUFBQTtBQUFBO0FBSWYsTUFBTU4sd0JBQXNCLENBQUMsVUFBa0IsTUFBTSxNQUFNOzJDQzlGVCxNQUFNO0FBQUE7aUNBRWhCLE1BQThCO01BQ2hFLENBQUMsTUFBTTtXQUNGO0FBQUE7UUFFSCxFQUFDLFVBQVMsU0FBUyxXQUFXLGdCQUFnQjtNQUNoRCxlQUFlLE1BQU0sTUFBTSxLQUFLO1FBRTlCLDRCQUE0QixNQUFNLHFEQUFxRCxJQUFJO1FBQzNGLE1BQUssSUFBSSxPQUFPLG9CQUFvQixRQUFRLDBCQUEwQixTQUFTO1FBQy9FLHFDQUFxQyxNQUFNLFFBQU8sSUFBSTtpQkFDN0M7TUFDWCxzQkFBc0I7V0FDakI7QUFBQTtTQUVGO0FBQUE7cUNBR21DLFdBQXlCLGFBQW9DO01BQ25HLENBQUMsV0FBVztXQUNQO0FBQUE7UUFFSCxFQUFDLFVBQVMsU0FBUyxXQUFXLGdCQUFnQjtRQUM5QyxRQUFRLE1BQU0sa0JBQWtCO01BRWxDLE9BQU87UUFDTCxlQUFlLE1BQU0sTUFBTSxLQUFLO1FBQ2hDLFlBQVlBLHNCQUFvQjtVQUM5QixZQUFZTyxrQkFBZ0IsV0FBVztVQUN2QyxVQUFVQSxrQkFBZ0IsV0FBVztRQUN2QyxxQkFBcUI7UUFDckI7YUFDSyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztZQUNuQyxPQUFPLFVBQVU7VUFDbkIsS0FBSyxXQUFXOztVQUNoQixzQkFBc0IsU0FBUyw0QkFBNEIsT0FBTzs2QkFDL0M7QUFBQTtVQUVuQixzQkFBc0IsUUFBUSxDQUFDLDRCQUE0QixTQUFTLFdBQVcsS0FBSyxPQUFPOzZCQUN4RTtBQUFBO1VBR25CLGlCQUFpQixTQUFTLG9CQUFvQjtrQkFDdEMsTUFBTSxTQUFTLDBCQUEwQjtrQkFDekMsUUFBUSxTQUFTLHlCQUF5QjtnQkFDNUMsTUFBTSxTQUFTLDBCQUEwQjtZQUM3QyxTQUFTLDBCQUEwQixTQUFTLElBQUk7a0JBQzFDLFFBQVEsU0FBUyx5QkFBeUI7QUFBQSxlQUM3QztrQkFDRyxRQUFRLFNBQVMseUJBQXlCO0FBQUE7WUFFaEQsNEJBQTRCLEtBQUssT0FBTztnQkFDcEMsZUFBZSw0QkFBNEI7Y0FDN0MsaUJBQWlCLEtBQUs7dUJBQ2I7QUFBQSxxQkFDRixpQkFBaUIsT0FBTyxpQkFBaUIsS0FBSzt1QkFDNUM7QUFBQSxpQkFDTjt1QkFDTSxVQUFVO0FBQUE7QUFBQSxlQUVsQjtxQkFDTTtBQUFBO2NBRVAsVUFBVSx3QkFBd0I7b0JBQzVCLEtBQUs7QUFBQSxVQUNmLElBQUksVUFBVSxPQUFPLG9CQUFvQjtBQUFBLFVBQ3pDLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULFdBQVcsVUFBVSxPQUFPO0FBQUEsVUFDNUIsV0FBVyxRQUFRLE9BQU87QUFBQSxVQUMxQjtBQUFBO0FBQUE7QUFBQTtnQkFJTTttQkFDRztBQUFBO0FBQUE7MEJBSThCO1FBQ3pDLFNBQXFDO1FBQ3JDLEVBQUMsVUFBUyxTQUFTLFdBQVcsZ0JBQWdCO1FBQzlDLEVBQUMsV0FBVU47UUFFWCxtQkFBbUIsTUFBTSxzQkFBc0JJLHlCQUFjO01BRS9ELENBQUMsa0JBQWtCO1VBQ2YsSUFBSSw2QkFBNkI7QUFBQTtRQUduQyxhQUFhckI7YUFFUixVQUFVLFlBQVk7UUFDM0IsV0FBVyxtQkFBbUJrQixrQkFBTztZQUNqQyxzQkFBc0IsV0FBVyxTQUFTO0FBQUE7QUFBQTtTQUk3QztBQUFBO0FBR1QsTUFBTUYsd0JBQXNCLENBQUMsVUFBa0IsTUFBTSxNQUFNO0FBSzNELE1BQU0sbUJBQW1CLENBQUMsU0FBaUI7U0FFbEMsNERBQTRELEtBQUs7QUFBQTtBQU0xRSxNQUFNLDhCQUE4QixDQUFDLFNBQWlCO01BQ2hELHdCQUF3QixJQUFJO1dBQ3ZCO0FBQUE7UUFFSCxNQUFLLElBQUksT0FBTyxvQkFBb0IsUUFBUSwwQkFBMEIsU0FBUztTQUM5RSxJQUFHLEtBQUs7QUFBQTtBQUdqQixNQUFNLDBCQUEwQixDQUFDOztBQUUvQixtR0FBb0YsS0FBSyxVQUF6RixtQkFBaUc7QUFBQTtBQUVuRyxNQUFNLDRCQUE0QixDQUFDOztBQUVqQyxnRkFBaUUsS0FBSyxVQUF0RSxtQkFBOEU7QUFBQTtBQUVoRixNQUFNLDJCQUEyQixDQUFDOztBQUVoQyxnRkFBaUUsS0FBSyxVQUF0RSxtQkFBOEU7QUFBQTtBQUVoRixNQUFNLDhCQUE4QixDQUFDOztBQUVuQyxpREFBa0MsS0FBSyxVQUF2QyxtQkFBK0M7QUFBQTtNQ3pJcEMsc0JBQXNCLE9BQU8sU0FBaUIsT0FBZSxnQkFBc0M7UUFDeEcsRUFBQyxlQUFlLFVBQVMsU0FBUyxXQUFXLGdCQUFnQjtRQUU3RCxXQUFXO1FBQ1gsZUFBZSxXQUFXO1FBRTFCLFlBQVksY0FBYyxxQkFBcUIsSUFBSTtNQUVyRCxxQkFBcUJFLGtCQUFPO1VBQ3hCLGVBQWUsTUFBTSxNQUFNLEtBQUs7VUFDaEMsWUFBWUYsc0JBQW9CO1FBRWxDO1FBRUEsWUFBWSxLQUFLLFVBQVU7ZUFDcEI7QUFBQSxXQUNKO2VBQ0ksY0FBYztBQUFBO1VBR25CLFVBQVUsU0FBUyxVQUFVO1FBRS9CLGFBQWEsVUFBVSxVQUFVLEdBQUc7WUFDaEMsYUFBYSxVQUFVO1lBRXZCLE9BQU9EO1lBQ1Asb0JBQW9CLEtBQUssT0FBTztZQUNoQyxjQUFjLEtBQUssT0FBTztZQUMxQixhQUFhLFVBQVU7WUFDdkIsTUFBSyxvQkFBb0I7VUFDM0IscUJBQXFCLEtBQUssYUFBYTtjQUNuQyxlQUFlLHdCQUF3QjtjQUN2QyxtQkFBbUIsc0JBQXNCO2NBQ3pDLGFBQWEsTUFBSyxNQUFNLFFBQVEsTUFBTSxjQUFjLE1BQU07Y0FDMUQsZUFBZUEsa0JBQU8sa0JBQWtCLGtCQUFrQixPQUFPO2NBQ2pFLGtCQUFrQixhQUFhLFFBQVEsWUFBWTtjQUVuRCxNQUFNLE9BQU8sV0FBVztlQUV2QjtBQUFBLFVBQ0w7QUFBQSxZQUNFLFdBQVc7QUFBQSxZQUNYO0FBQUEsWUFDQSxVQUFVO0FBQUEsWUFDVixhQUFhO0FBQUEsWUFDYjtBQUFBLFlBQ0EsV0FBVztBQUFBLFlBQ1gsUUFBUTtBQUFBO0FBQUE7QUFBQSxhQUdQO2NBQ0MsYUFBYSxNQUFLLE1BQU0sUUFBUSxNQUFNO2NBRXRDLGtCQUFrQixhQUFhLFFBQVEsWUFBWTtjQUVuRCxNQUFNLE9BQU8sV0FBVztlQUV2QjtBQUFBLFVBQ0w7QUFBQSxZQUNFLFdBQVc7QUFBQSxZQUNYO0FBQUEsWUFDQSxVQUFVO0FBQUEsWUFDVixhQUFhO0FBQUEsWUFDYjtBQUFBLFlBQ0EsV0FBVztBQUFBLFlBQ1gsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFwQixNQUFNQyx3QkFBc0IsQ0FBQyxVQUFrQixNQUFNLE1BQU07QUFFM0QsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFBaUIsbUNBQW9CLEtBQUssVUFBekIsbUJBQWlDO0FBQUE7QUFFekUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFBZ0IsK0VBQWdFLEtBQUssVUFBckUsbUJBQTZFO0FBQUE7QUFFOUgsTUFBTSx3QkFBd0IsQ0FBQzs7QUFBZ0IsK0VBQWdFLEtBQUssVUFBckUsbUJBQTZFO0FBQUE7NEJDeEV6RixNQUFXO1NBQ3JDLE1BQU0sS0FBSyxRQUFRLDRCQUE0QjtBQUFBOzBCQUl2QixPQUFlO1FBQ3hDLFFBQWtCO01BQ3BCLGFBQWE7U0FFVixXQUFXLFNBQVMsT0FBTztVQUMxQixlQUFlLFdBQVcsUUFBUTtVQUNsQyxLQUFLLFdBQVcsTUFBTSxHQUFHO2lCQUNsQixXQUFXLE1BQU0sZUFBZTtBQUFBO1FBR3pDLEtBQUs7U0FFSjtBQUFBOzZCQUcyQixhQUFxQixTQUFzQztRQUV2RixFQUFDLFVBQVMsU0FBUyxXQUFXLGdCQUFnQjtRQUM5QyxjQUFjLFlBQVksUUFBUSxPQUFPO1FBQ3pDLE9BQU9EO1FBQ1AsV0FBVyxLQUFLLE9BQU87UUFDdkIsYUFBYSxLQUFLLE9BQU87TUFDM0I7TUFDQTtNQUVBLFNBQVE7ZUFDQyxXQUFXLE9BQU8sWUFBWSxNQUFNLE9BQU8sY0FBYyxNQUFNO0FBQUEsU0FDckU7ZUFDTSxPQUFPLE9BQU8sWUFBWSxNQUFNLE9BQU8sY0FBYyxNQUFNO0FBQUE7UUFHbEUsYUFBYSxNQUFNZjtRQUNuQixlQUFlYyxlQUFhLE1BQU07TUFDcEMsQ0FBQyxjQUFjO1VBQ1gsT0FBTyxNQUFNVSxrQkFBZ0I7VUFDN0Isa0JBQWtCO1VBQ2xCLGVBQWUsTUFBTSxNQUFNLEtBQUs7VUFDaEMsaUJBQWlCLE1BQU0sbUJBQW1CLGFBQWEsVUFBVTtVQUNqRSxNQUFNLE9BQU8sTUFBTSxlQUFlO1FBQ3BDLGVBQWUsV0FBVyxJQUFJO1lBQzFCLFdBQVdSLHNCQUFvQixlQUFlO2dCQUMxQyxTQUFTLFNBQVM7QUFBQSxXQUN2QjtnQkFDSyxlQUFlLFNBQVM7QUFBQTtRQUVoQyxTQUFRO2FBQ0g7QUFBQSxRQUNMLElBQUksS0FBSyxPQUFPLGtCQUFrQixPQUFPO0FBQUEsUUFDekMsU0FBUztBQUFBLFFBQ1QsV0FBVztBQUFBLFFBQ1gsV0FBVyxLQUFLLE9BQU87QUFBQSxRQUN2QixXQUFXLEtBQUssT0FBTztBQUFBLFFBQ3ZCLFVBQVU7QUFBQTtBQUFBLFdBRVA7YUFDRTtBQUFBLFFBQ0wsSUFBSSxLQUFLLE9BQU8sa0JBQWtCLE9BQU87QUFBQSxRQUN6QyxTQUFTO0FBQUEsUUFDVCxXQUFXO0FBQUEsUUFDWCxXQUFXLEtBQUssT0FBTztBQUFBLFFBQ3ZCLFdBQVcsS0FBSyxPQUFPO0FBQUEsUUFDdkIsVUFBVTtBQUFBO0FBQUE7QUFBQSxTQUdUO1VBQ0MsZUFBZSxNQUFNLE1BQU0sS0FBSztVQUNoQyxpQkFBaUIsTUFBTSxtQkFBbUIsYUFBYSxVQUFVO1VBQ2pFLE1BQU0sT0FBTyxjQUFjLGVBQWU7UUFDNUMsZUFBZSxXQUFXLElBQUk7WUFDMUIsV0FBV0Esc0JBQW9CLGVBQWU7Z0JBQzFDLFNBQVMsU0FBUztBQUFBLFdBQ3ZCO2dCQUNLLGVBQWUsU0FBUztBQUFBO1FBRWhDLFNBQVE7YUFDSDtBQUFBLFFBQ0wsSUFBSSxLQUFLLE9BQU8sa0JBQWtCLE9BQU87QUFBQSxRQUN6QyxTQUFTO0FBQUEsUUFDVCxXQUFXO0FBQUEsUUFDWCxXQUFXLEtBQUssT0FBTztBQUFBLFFBQ3ZCLFdBQVcsS0FBSyxPQUFPO0FBQUEsUUFDdkIsVUFBVTtBQUFBO0FBQUEsV0FFUDthQUNFO0FBQUEsUUFDTCxJQUFJLEtBQUssT0FBTyxrQkFBa0IsT0FBTztBQUFBLFFBQ3pDLFNBQVM7QUFBQSxRQUNULFdBQVc7QUFBQSxRQUNYLFdBQVcsS0FBSyxPQUFPO0FBQUEsUUFDdkIsV0FBVyxLQUFLLE9BQU87QUFBQSxRQUN2QixVQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUE7a0NBT3VCLGNBQXNCLFdBQW1CLGFBQXFCO1FBRy9GLGNBQWMsSUFBSSxPQUFPLEtBQU0sTUFBTSxhQUFhO1FBQ2xELG1CQUE2QixpQkFBaUI7UUFFOUMsaUJBQWlCLGlCQUFpQixVQUFVLENBQUMsU0FBUyxZQUFZLEtBQUs7UUFDdkUsaUJBQWlCLG1CQUFtQjtNQUN0QyxnQkFBZ0I7WUFLVixJQUFJO0FBQUE7UUFHUix3Q0FBd0MsaUJBQzNDLE1BQU0saUJBQWlCLEdBQ3ZCLFVBQVUsQ0FBQyxTQUFTLFdBQVcsS0FBSztRQUNqQyxrQkFBa0IsMENBQTBDO01BRTlELGlCQUFpQjtRQUNmO2FBRUssSUFBSSx3Q0FBd0MsZ0JBQWdCLElBQUksZ0JBQWdCLEtBQUs7WUFDdEYsZ0JBQXlCLGFBQWEsS0FBSyxpQkFBaUI7VUFDOUQsQ0FBQyxlQUFlOzRCQUNFOzs7O1FBS3BCLENBQUM7MEJBQXVDO1dBRXJDLE1BQU0sOEJBQThCLFdBQVcsYUFBYSxtQkFBbUI7QUFBQSxTQUNqRjtXQUNFLE1BQU0sOEJBQThCLFdBQVcsYUFBYSxpQkFBaUIsU0FBUyxHQUFHO0FBQUE7QUFBQTs2Q0FNbEcsTUFDQSxNQUNBLEtBQ0EsT0FDbUI7TUFDZixRQUFRLElBQUk7V0FDUDtBQUFBLE1BQ0wsU0FBUyxHQUFHO0FBQUEsRUFBUztBQUFBLE1BQ3JCLFFBQVE7QUFBQTtBQUFBO1FBSU4sZUFBZSxLQUFLLE1BQU07TUFFNUIsT0FBTztVQUNILE1BQU0sYUFBYSxNQUFNLEdBQUcsTUFBTSxHQUFHLEtBQUs7VUFDMUMsT0FBTyxhQUFhLE1BQU0sTUFBTSxHQUFHLEtBQUs7V0FFdkM7QUFBQSxNQUNMLFNBQVMsR0FBRztBQUFBLEVBQVE7QUFBQSxFQUFTO0FBQUEsTUFDN0IsUUFBUTtBQUFBO0FBQUEsU0FFTDtVQUNDLE1BQU0sYUFBYSxNQUFNLEdBQUcsTUFBTSxHQUFHLEtBQUs7VUFDMUMsT0FBTyxhQUFhLE1BQU0sTUFBTSxHQUFHLEtBQUs7V0FFdkM7QUFBQSxNQUNMLFNBQVMsR0FBRyxNQUFNO0FBQUEsRUFBUztBQUFBLE1BQzNCLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFLZCxNQUFNQSx3QkFBc0IsQ0FBQyxVQUFrQixNQUFNLE1BQU07a0NDckxsQixlQUF1QztRQUN4RSxFQUFDLE9BQU8sa0JBQWlCLFNBQVMsV0FBVyxnQkFBZ0I7TUFDL0QsVUFBVSxLQUFLLGdCQUFnQjtVQUMzQixXQUFXO1VBQ1gsZUFBZSxXQUFXO1VBQzFCLGFBQWEsY0FBYyxxQkFBcUIsSUFBSTtRQUV0RCxzQkFBc0JFLGtCQUFPO1VBQzNCLGVBQWUsTUFBTSxNQUFNLEtBQUs7VUFDaEMsWUFBWUYsc0JBQW9CO1VBQ2hDLFVBQVUsV0FBVyxHQUFHOzthQUVyQjtjQUNDLFVBQVUsU0FBUyxjQUFjLE1BQU07Y0FDdkMsT0FBTyxVQUFVLFVBQVU7Y0FDM0Isd0JBQXdCLGFBQWEsUUFBUSxNQUFNO2NBQ25ELE1BQU0sT0FBTyxZQUFZO1lBQzNCLFdBQVcsS0FBSyxPQUFPO2dCQUNuQixNQUFLLGtCQUFrQjtnQkFDdkIsT0FBT0Qsa0JBQU8sS0FBSTtnQkFDbEIsV0FBVyxLQUFLLE9BQU87Z0JBQ3ZCLGFBQWEsS0FBSyxPQUFPO2dCQUV6QixXQUFXLE9BQU8sT0FBTyxZQUFZLE1BQU0sT0FBTyxjQUFjLE1BQU1VLHlCQUF1QjtnQkFDN0YsYUFBYSxNQUFNekI7Z0JBQ25CLGVBQWVjLGVBQWEsTUFBTTtjQUNwQyxDQUFDLGNBQWM7a0JBQ1gsT0FBTyxNQUFNVSxrQkFBZ0I7a0JBQzdCLGdCQUFlLE1BQU0sTUFBTSxLQUFLO2tCQUNoQyxpQkFBaUIsTUFBTSxtQkFBbUIsYUFBYSxVQUFVO2tCQUNqRSxNQUFNLE9BQU8sTUFBTSxlQUFlO21CQUNqQztBQUFBLGNBQ0w7QUFBQSxnQkFDRSxXQUFXO0FBQUE7QUFBQTtBQUFBLGlCQUdWO2tCQUNDLGdCQUFlLE1BQU0sTUFBTSxLQUFLO2tCQUNoQyxpQkFBaUIsTUFBTSxtQkFBbUIsYUFBYSxVQUFVO2tCQUNqRSxNQUFNLE9BQU8sY0FBYyxlQUFlO21CQUN6QztBQUFBLGNBQ0w7QUFBQSxnQkFDRSxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUE7b0JBS1A7dUJBQ0c7QUFBQTtBQUFBO0FBQUE7QUFBQTs2QkFNYSxlQUFzQztRQUNsRSxFQUFDLE9BQU8sa0JBQWlCLFNBQVMsV0FBVyxnQkFBZ0I7TUFDL0QsVUFBVSxLQUFLLGdCQUFnQjtVQUMzQixXQUFXO1VBQ1gsZUFBZSxXQUFXO1VBQzFCLGFBQWEsY0FBYyxxQkFBcUIsSUFBSTtRQUV0RCxzQkFBc0JOLGtCQUFPO1VBQzNCLGVBQWUsTUFBTSxNQUFNLEtBQUs7VUFDaEMsWUFBWUYsc0JBQW9CO1VBQ2hDLFVBQVUsV0FBVyxHQUFHOzthQUVyQjtjQUNDLFVBQVUsU0FBUyxjQUFjLE1BQU07Y0FDdkMsT0FBTyxVQUFVLFVBQVU7WUFDN0IsV0FBVyxLQUFLLE9BQU87Z0JBRW5CLGlCQUFpQixhQUFhLFFBQVEsTUFBTTtnQkFDNUMsTUFBTSxPQUFPLFlBQVk7QUFBQTtBQUFBO2tCQUd2QjtxQkFDRztBQUFBO0FBQUE7QUFBQTtpQ0FNbUM7UUFDaEQsRUFBQyxPQUFPLGtCQUFpQixTQUFTLFdBQVcsZ0JBQWdCO1FBRTdELFdBQVc7UUFDWCxlQUFlLFdBQVc7UUFDMUIsZUFBMkM7UUFDM0MsYUFBYSxjQUFjLHFCQUFxQixJQUFJO01BQ3RELHNCQUFzQkUsa0JBQU87UUFDM0IsZUFBZSxNQUFNLE1BQU0sS0FBSztRQUNoQyxZQUFZRixzQkFBb0I7UUFDaEMsVUFBVSxXQUFXLEdBQUc7YUFDbkI7QUFBQSxXQUNGO2VBQ0ksSUFBSSxHQUFHLElBQUksVUFBVSxRQUFRLEtBQUs7Y0FDbkMsT0FBTyxVQUFVO1lBQ25CLENBQUMsS0FBSyxLQUFLLE9BQU87O2VBRWY7Z0JBQ0MsTUFBSyxrQkFBa0I7Z0JBQ3ZCLGFBQWEsSUFBRyxNQUFNLEdBQUc7Z0JBRXpCLGNBQWNELGtCQUFPLFlBQVk7Z0JBQ2pDLGdCQUFnQiwwQkFBMEIsVUFBVTtnQkFDcEQsY0FBY0Esa0JBQU8sY0FBYyxNQUFNLEdBQUcsS0FBSztnQkFDakQsVUFBVVUseUJBQXVCLFVBQVU7dUJBQ3BDLEtBQUs7QUFBQSxZQUNoQixJQUFJO0FBQUEsWUFDSjtBQUFBLFlBQ0EsU0FBUztBQUFBLFlBQ1QsV0FBVyxZQUFZLE9BQU87QUFBQSxZQUM5QixXQUFXLFlBQVksT0FBTztBQUFBLFlBQzlCLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtnQkFNUDttQkFDRztBQUFBO1NBRVY7QUFBQTtNQUdJLG1CQUFtQixPQUFPLGdCQUFzQztRQUNyRSxFQUFDLGVBQWUsVUFBUyxTQUFTLFdBQVcsZ0JBQWdCO1FBRTdELFdBQVc7UUFDWCxlQUFlLFdBQVc7UUFFMUIsYUFBYSxjQUFjLHFCQUFxQixJQUFJO01BRXRELHNCQUFzQlAsa0JBQU87VUFDekIsZUFBZSxNQUFNLE1BQU0sS0FBSztVQUNoQyxZQUFZRixzQkFBb0I7VUFDaEMsT0FBT0Q7VUFDUCxhQUFhLEtBQUssT0FBTztRQUMzQjtRQUNBLFVBQVUsV0FBVyxLQUFLLFVBQVUsT0FBTyxJQUFJO2dCQUN2QztBQUFBLFdBQ0w7Z0JBQ0ssVUFBVSxTQUFTO0FBQUE7VUFFekIsZUFBZSxLQUFLLE9BQU8sb0JBQW9CO1VBRS9DLHVCQUF1QixZQUFZLGNBQWMsYUFBYTtXQUU3RDtBQUFBLFNBQ0Y7VUFDQyxpQkFBaUJNLHlCQUFjO1VBQy9CLE9BQU8sTUFBTSxpQkFBaUI7VUFHOUIsT0FBT047VUFDUCxhQUFhLEtBQUssT0FBTztVQUN6QixVQUFVO1VBQ1YsZUFBZSxLQUFLLE9BQU8sb0JBQW9CO1VBRS9DLHVCQUF1QixNQUFNLElBQUksYUFBYTtXQUU3QztBQUFBO0FBQUE7TUFJRSx5QkFBeUIsT0FDcEMsTUFDQSxhQUNBLGFBQ0EsZUFDaUI7UUFDWCxFQUFDLFVBQVMsU0FBUyxXQUFXLGdCQUFnQjtNQUNoRDtNQUNBLGdCQUFnQixJQUFJO2lCQUNULGNBQWMsaUJBQWlCO0FBQUEsU0FDdkM7aUJBQ1EsY0FBYyxPQUFPLGNBQWMsaUJBQWlCO0FBQUE7UUFHN0QsTUFBTSxPQUFPLE1BQU07U0FFbEI7QUFBQTtNQUdJLG1CQUFtQixPQUFPLFNBQWlDO1FBQ2hFLEVBQUMsVUFBUyxTQUFTLFdBQVcsZ0JBQWdCO01BRWhEO1VBQ0ksY0FBYyxNQUFNLE1BQU0sT0FBTyxNQUFNO1dBQ3RDO0FBQUEsV0FDQTtZQUNDLE1BQU0sMkJBQTJCLFNBQVM7UUFDOUNPLGtCQUFPO0FBQUE7QUFBQTtBQUlmLE1BQU1OLHdCQUFzQixDQUFDLFVBQWtCLE1BQU0sTUFBTTtBQUUzRCxNQUFNLG9CQUFvQixDQUFDOztBQUFpQiw0REFBNkMsS0FBSyxVQUFsRCxtQkFBMEQ7QUFBQTtBQUV0RyxNQUFNUywyQkFBeUIsQ0FBQzs7QUFBaUIsb0RBQXFDLEtBQUssVUFBMUMsbUJBQWtEO0FBQUE7QUFFbkcsTUFBTSw0QkFBNEIsQ0FBQzs7QUFBaUIsb0RBQXFDLEtBQUssVUFBMUMsbUJBQWtEO0FBQUE7MEJDMU1yRSxRQUFxQztRQUM5RCxFQUFDLGVBQWMsa0JBQWtCO01BQ25DLFVBQVUsS0FBSyxTQUFTO1VBQ3BCLEVBQUMsVUFBUyxTQUFTLFdBQVcsZ0JBQWdCO1VBQzlDLGFBQWEsT0FBTyxNQUFNLEdBQUc7VUFDN0IsV0FBVyxTQUFTLE9BQU8sTUFBTTtVQUNqQyxhQUFhVixrQkFBTyxZQUFZO1VBQ2hDLFlBQVlELGVBQWEsWUFBWTtVQUNyQyxjQUFjLE1BQU0sTUFBTSxLQUFLO1VBQy9CLFlBQVlFLHNCQUFvQjtVQUNoQyxVQUFVLHVCQUF1QixVQUFVO1VBQzNDLGVBQWUsT0FBTyxTQUFTLE1BQU07VUFDckMsVUFBVSxVQUFVO1VBQ3BCLGlCQUFpQixZQUFZLFFBQVEsU0FBUztVQUM5QyxNQUFNLE9BQU8sV0FBVztVQUN4QixhQUFhLE1BQU0saUJBQWlCO1dBQ25DO0FBQUE7QUFBQTtBQUlYLE1BQU1BLHdCQUFzQixDQUFDLFVBQWtCLE1BQU0sTUFBTTtBQUUzRCxNQUFNLHlCQUF5QixDQUFDOztBQUFnQixzSUFBdUgsS0FDbkssVUFENEMsbUJBRTFDO0FBQUE7a0NDNUJtQyxTQUFnQztRQUNqRSxFQUFDLE9BQU8sa0JBQWlCLFNBQVMsV0FBVyxnQkFBZ0I7TUFDL0QsVUFBVSxLQUFLLFVBQVU7VUFDckIsV0FBVztVQUNYLGVBQWUsV0FBVztVQUMxQixZQUFZLGNBQWMscUJBQXFCLElBQUk7UUFFckQscUJBQXFCRSxrQkFBTztVQUMxQixlQUFlLE1BQU0sTUFBTSxLQUFLO1VBQ2hDLFlBQVlGLHNCQUFvQjtVQUNoQyxVQUFVLFdBQVcsR0FBRzs7YUFFckI7Y0FDQyxVQUFVLFNBQVMsUUFBUSxNQUFNO2NBQ2pDLE9BQU8sVUFBVSxVQUFVO1lBQzdCLGdCQUFnQixLQUFLLE9BQU87Z0JBRXhCLGlCQUFpQixhQUFhLFFBQVEsTUFBTTtnQkFDNUMsTUFBTSxPQUFPLFdBQVc7QUFBQTtBQUFBO2tCQUd0QjtxQkFDRztBQUFBO0FBQUE7QUFBQTtBQU1yQixNQUFNQSx3QkFBc0IsQ0FBQyxVQUFrQixNQUFNLE1BQU07TUMzQjlDLGlCQUFpQixPQUFPLFlBQWtDO1FBQy9ELEVBQUMsZUFBZSxVQUFTLFNBQVMsV0FBVyxnQkFBZ0I7TUFDL0QsVUFBVSxLQUFLLFVBQVU7VUFDckIsV0FBVztVQUNYLGVBQWUsV0FBVztVQUUxQixZQUFZLGNBQWMscUJBQXFCLElBQUk7UUFFckQscUJBQXFCRSxrQkFBTztZQUN4QixlQUFlLE1BQU0sTUFBTSxLQUFLO1lBQ2hDLFlBQVksb0JBQW9CO1lBQ2hDLE9BQU9IO1lBQ1Asa0JBQWtCLFNBQVMsUUFBUSxNQUFNO1lBQ3pDLGtCQUFrQixVQUFVLGtCQUFrQjtZQUM5QyxlQUFlLEtBQUssT0FBTztVQUM3QjtVQUNBLFVBQVUsV0FBVyxLQUFLLFVBQVUsT0FBTyxJQUFJO2tCQUN2QztBQUFBLGFBQ0w7a0JBQ0ssVUFBVSxTQUFTO0FBQUE7WUFFekIsaUJBQWlCLEtBQUssT0FBTyxvQkFBb0I7WUFDakQsV0FBVyxrQkFBa0IsZ0JBQWdCO1lBQzdDLGFBQWEsYUFBYSxRQUFRLGlCQUFpQjtZQUNuRCxNQUFNLE9BQU8sV0FBVzthQUV2QjtBQUFBO0FBQUE7QUFBQTtNQUtBLG1CQUFtQixPQUFPLFlBQWtDO1FBQ2pFLEVBQUMsZUFBZSxVQUFTLFNBQVMsV0FBVyxnQkFBZ0I7UUFFN0QsV0FBVztRQUNYLGVBQWUsV0FBVztRQUUxQixZQUFZLGNBQWMscUJBQXFCLElBQUk7TUFFckQscUJBQXFCRyxrQkFBTztVQUN4QixlQUFlLE1BQU0sTUFBTSxLQUFLO1VBQ2hDLFlBQVksb0JBQW9CO1VBQ2hDLGtCQUFrQixTQUFTLFFBQVEsTUFBTTtVQUN6QyxrQkFBa0IsVUFBVSxrQkFBa0I7VUFDOUMsaUJBQWlCLHdCQUF3QjtVQUN6QyxrQkFBa0IsYUFBYSxRQUFRLGdCQUFnQjtVQUN2RCxNQUFNLE9BQU8sV0FBVztBQUFBOzs7QUFvQ2xDLE1BQU0sc0JBQXNCLENBQUMsVUFBa0IsTUFBTSxNQUFNO0FBRTNELE1BQU0sMEJBQTBCLENBQUM7O0FBQWdCLDhFQUErRCxLQUFLLFVBQXBFLG1CQUE0RTtBQUFBO0FDdEM3SCxJQUFVO0FBQVYsVUFBVSxNQUFWO3lCQUNnQztBQUFBO09BQWQ7K0JBK0JvQixVQUFrQjtBQUFBO09BQXRDOzhCQVNtQixVQUFrQjtBQUFBO09BQXJDOzBCQVNlLFVBQTZFO0FBQUE7T0FBNUY7OEJBUW1CO1dBQzFCLE1BQU07QUFBQTtPQURPOytCQVNjO1dBQzNCO0FBQUE7T0FETztvQkEyQlMsUUFBZ0I7V0FDaEMsV0FBVztBQUFBO09BREo7dUJBWVksUUFBZ0I7V0FDbkMsbUJBQW1CO0FBQUE7T0FEWjtzQkFZVyxRQUFnQjtXQUNsQyxjQUFjO0FBQUE7T0FEUDswQkFRZTtXQUN0QjtBQUFBO09BRE87dUJBU1ksT0FBZSxhQUFxQjtXQUN2RCxvQkFBb0IsT0FBTztBQUFBO09BRHBCO3VCQVVZLFNBQWlCLE9BQWUsYUFBcUI7V0FDeEUsb0JBQW9CLFNBQVMsT0FBTztBQUFBO09BRDdCOzJCQVVnQixTQUFpQjtXQUN4QyxtQkFBbUI7QUFBQTtPQURaO29CQVNTLFNBQWlCO1dBQ2pDLGVBQWU7QUFBQTtPQURSO3NCQVVXLFNBQWlCO1dBQ25DLGlCQUFpQjtBQUFBO09BRFY7R0E5S1I7QUFrTVYsWUFBZTtNQ3BQRixpQ0FBaUM7TUFHakMscUJBQXFCO01BTXJCLGtCQUFrQixPQUFPLEtBQUs7TUFJOUIsVUFBVTtNQUVWLGdCQUFnQjtNQUVoQixvQkFBb0I7TUFNcEIsV0FBVztNQU9YLGNBQWM7TUFHZCxnQkFBZ0I7TUFLaEIsbUJBQW1CO01BSW5CLHVCQUF1QjtNQUt2QixxQkFBcUI7TUFHckIsZ0JBQWdCO0FDM0M3QixrQkFBa0I7QUFBQSxFQUFsQjtBQUNTLHVDQUFjO0FBQUE7QUFBQSxFQUVkLFdBQVc7V0FDVCxTQUFTLFdBQVc7QUFBQTtBQUFBLFFBR2hCLGdCQUFnQjtVQU1yQixPQUFPLE1BQU1RLE1BQUk7VUFDakIsUUFBUTtlQUNILE1BQUssTUFBTTtZQUNkLEtBQUs7QUFBQTthQUVKLFNBQVM7QUFBQSxNQUNoQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsUUFDUDtBQUFBO0FBQUE7UUFJQSxDQUFDLEtBQUssYUFBYTtXQUNoQixjQUFjO0FBQUE7V0FHZDtBQUFBO0FBQUEsUUFHSSxvQkFBb0I7VUFLekIsT0FBTyxNQUFNQSxNQUFJO1NBQ2xCLEtBQ0gsQ0FBQyxHQUF3QyxNQUN2QzdCLFFBQU0sbUJBQW1CLEVBQUUsYUFBYUEsUUFBTSxtQkFBbUIsRUFBRTtXQUVoRTtBQUFBO0FBQUEsRUFHRixTQUFTLE9BQWtCO2FBQ3ZCLFNBQVM7QUFBQSxNQUNoQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsUUFDUCxNQUFNLG1CQUNEO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNSixZQUFZLEtBQVk7ZUFDbEIsTUFBSyxLQUFLLFdBQVcsT0FBTztVQUNqQyxHQUFFLE9BQU8sS0FBSTtlQUNSO0FBQUE7QUFBQTtXQUlKO0FBQUE7QUFBQSxRQUdJLGFBQWEsS0FBWTtVQUM5QjZCLE1BQUksU0FBUzthQUNWLFNBQVM7QUFBQSxNQUNoQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsUUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBS08sZ0JBQWdCLEtBQVk7VUFDakNBLE1BQUksWUFBWTtBQUFBO0FBQUEsUUFLWCxlQUFlLEtBQVk7VUFDaENBLE1BQUksV0FBVztBQUFBO0FBQUEsRUFHaEIsU0FBUyxPQUFrQjthQUN2QixTQUFTO0FBQUEsTUFDaEIsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBO0FBQUE7QUFBQSxFQUlOLGtCQUFrQjs7VUFDakIsRUFBQyxVQUFTLEtBQUs7VUFDZixVQUFVLElBQUk7ZUFDVCxNQUFLLE9BQU87aUJBQ1YsTUFBSyxNQUFNLEtBQUssU0FBRSxRQUFRLE1BQU0sYUFBaEIsWUFBNEIsS0FBSztnQkFDbEQsSUFBSSxHQUFFLFFBQVEsU0FBUyxNQUFNO0FBQUE7aUJBRTVCLE1BQUssTUFBTSxLQUFLLFNBQUUsUUFBUSxNQUFNLHVCQUFoQixZQUFzQyxLQUFLO2dCQUM1RCxJQUFJLEdBQUUsUUFBUSxtQkFBbUIsTUFBTTtBQUFBO0FBQUE7YUFJMUMsU0FBUztBQUFBLE1BQ2hCLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxRQUNQLE1BQU0sTUFBTSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLaEIsYUFBYTthQUNULFNBQVM7QUFBQSxNQUNoQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsUUFDUCxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLQSxlQUFlLFFBQXVDO1VBQzNELEVBQUMsVUFBUyxLQUFLO1dBQ2QsTUFBTSxPQUFPLENBQUMsT0FBTSxHQUFFLFFBQVEsU0FBUztBQUFBO0FBQUEsUUFHbkMsV0FBVyxNQUFjLFNBQXNDO1VBQ3BFLFFBQU8sTUFBTSxjQUFjLE1BQU07V0FDaEM7QUFBQTtBQUFBLFFBR0ksV0FBVyxRQUFnQixjQUFzQixNQUFjLE1BQW1DO1VBQ3ZHLFFBQU8sTUFBTSxXQUFXLFFBQVEsY0FBYyxNQUFNO1dBQ25EO0FBQUE7QUFBQTtBQUlYLE1BQU0sY0FBYyxJQUFJO0FDOUl4QixtQkFBbUI7QUFBQSxFQUNWLFdBQVc7V0FDVCxTQUFTLFdBQVc7QUFBQTtBQUFBLFFBR2hCLGtCQUFrQjtVQVl2QixPQUFPLE1BQU1BLE1BQUk7YUFDZCxTQUFTO0FBQUEsTUFDaEIsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLFFBQ1AsU0FBUztBQUFBO0FBQUE7V0FHTjtBQUFBO0FBQUEsRUFHRixhQUFhLEtBQVk7ZUFDbkIsTUFBSyxLQUFLLFdBQVcsU0FBUztVQUNuQyxHQUFFLE9BQU8sS0FBSTtlQUNSO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTixVQUFVLE9BQW9CO2FBQzFCLFNBQVM7QUFBQSxNQUNoQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsUUFDUCxPQUFPLG1CQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNSixVQUFVLE9BQW9CO2FBQzFCLFNBQVM7QUFBQSxNQUNoQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUE7QUFBQTtBQUFBLFFBSUEsWUFBWSxTQUFpQjtVQUNsQ0EsTUFBSSxnQkFBZ0I7YUFDakIsU0FBUztBQUFBLE1BQ2hCLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxRQUNQLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUtHLFlBQVksT0FBZSxhQUFxQjtVQUNyRCxPQUFPLE1BQU1BLE1BQUksWUFBWSxPQUFPO1dBQ25DO0FBQUE7QUFBQSxRQUdJLFlBQVksU0FBaUIsT0FBZSxhQUFxQjtVQUN0RSxPQUFPLE1BQU1BLE1BQUksWUFBWSxTQUFTLE9BQU87V0FDNUM7QUFBQTtBQUFBLFFBR0ksU0FBUyxTQUFpQjtVQUMvQkEsTUFBSSxTQUFTO0FBQUE7QUFBQSxRQUdSLFdBQVcsU0FBaUI7VUFDakNBLE1BQUksV0FBVztBQUFBO0FBQUE7QUFJekIsTUFBTSxlQUFlLElBQUk7QUN6RXpCLHNCQUFzQjtBQUFBLFFBTVAsT0FBTyxNQUFZO1VBR3hCLEVBQUMsT0FBTyxnQkFBZSxTQUFTLFdBQVcsZ0JBQWdCO1VBRTNELFlBQVksTUFBTSxLQUFLO1VBQ3ZCLE1BQU0sT0FBTyxLQUFLO1VBS2xCLGFBQWExQjtVQUNiLE9BQU9lO1VBQ1AsZUFBZUQsZUFBYSxNQUFNO1FBQ3BDO1FBQ0EsQ0FBQyxjQUFjO1lBQ1gsWUFBWSxNQUFNVSxrQkFBZ0I7Z0JBQzlCLE1BQU0sTUFBTSxhQUVwQixNQUFNLE1BQU0sK0JBQStCLGdCQUFnQlQsb0JBQVMsT0FBTyxxQkFBcUIsS0FBSyxZQUNyRztBQUFBLGVBRU8sd0JBQXdCRyxrQkFBTztnQkFDOUIsTUFBTSxNQUFNLGFBRXBCLE1BQU0sTUFBTSwrQkFDVixnQkFBZ0JILG9CQUFTLE9BQU8scUJBQ2hDLEtBQ0EsZUFFRjtBQUFBO1VBR0UsY0FBYyxZQUFZLHFCQUFxQixTQUFTLFFBQVEsTUFBTSxJQUFJO1dBRXpFO0FBQUE7QUFBQTtBQXlCWCxNQUFNLFNBQVMsQ0FBQzs7QUFBaUIsK0JBQWdCLEtBQUssVUFBckIsbUJBQTZCO0FBQUE7QUFFOUQsTUFBTSxrQkFBa0IsSUFBSTtBQ2pGNUIsTUFBTSxtQkFBbUIsTUFBTTtBQUMzQixTQUFPO0FBQUEsSUFDSCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxXQUFXLEtBQUs7QUFBQSxJQUNoQixnQkFBZ0I7QUFBQSxJQUNoQixjQUFjO0FBQUE7QUFBQTtBQUd0QixNQUFNLGdCQUFnQjtBQUFBLEVBQ2xCLGNBQWM7QUFBQSxFQUNkLFVBQVU7QUFBQTtBQUVDLGVBQWU7QUFBQSxFQUMxQixZQUFZLFNBQVMsU0FBUyxlQUFlO0FBQ3pDLFNBQUssWUFBWTtBQUNqQixTQUFLLFVBQVUsTUFBTTtBQUNqQixZQUFNLGlCQUFpQixLQUFLLFFBQVEsS0FBSyxjQUFjO0FBQ3ZELFVBQUksS0FBSyxlQUFlLEdBQUc7QUFDdkIsYUFBSztBQUFBO0FBRVQsV0FBSyxRQUFRLFFBQVEsS0FBSyxRQUFRLEtBQUssY0FBYztBQUNyRCxXQUFLLFFBQVEsa0JBQWtCLGdCQUFnQjtBQUMvQyxXQUFLO0FBQUE7QUFFVCxTQUFLLFVBQVUsTUFBTTtBQUNqQixVQUFJLEtBQUssZUFBZSxLQUFLLFFBQVEsU0FBUyxHQUFHO0FBQzdDLGFBQUs7QUFBQTtBQUVULFlBQU0saUJBQWlCLEtBQUssUUFBUSxLQUFLLGNBQWM7QUFDdkQsV0FBSyxRQUFRLFFBQVEsS0FBSyxRQUFRLEtBQUssY0FBYztBQUNyRCxXQUFLLFFBQVEsa0JBQWtCLGdCQUFnQjtBQUMvQyxXQUFLO0FBQUE7QUFFVCxTQUFLLGFBQWEsTUFBTTtBQUNwQixhQUFPLEtBQUs7QUFBQTtBQUVoQixTQUFLLFdBQVcsQ0FBQyxTQUFTLFVBQVU7QUFDaEMsV0FBSyxVQUFVLENBQUMsR0FBRztBQUNuQixXQUFLLGVBQWUsUUFBUSxLQUFLLFFBQVEsU0FBUyxRQUFRLEtBQUssUUFBUSxTQUFTO0FBQ2hGLFdBQUs7QUFBQTtBQUVULFNBQUssYUFBYSxNQUFNO0FBQ3BCLFdBQUssVUFBVSxDQUFDO0FBQ2hCLFdBQUssZUFBZTtBQUNwQixXQUFLO0FBQUE7QUFFVCxTQUFLLFVBQVUsTUFBTTtBQUNqQixXQUFLO0FBQUE7QUFFVCxTQUFLLFlBQVksQ0FBQyxhQUFhO0FBQzNCLFdBQUssVUFBVSxLQUFLO0FBQUE7QUFFeEIsU0FBSyx1QkFBdUIsQ0FBQyxVQUFVO0FBQ25DLFlBQU0sZ0JBQWdCO0FBQ3RCLFVBQUksY0FBYyxRQUFRLE9BQU8sQ0FBQyxjQUFjLFlBQWEsZUFBYyxXQUFXLGNBQWMsVUFBVTtBQUMxRyxjQUFNO0FBQ04sYUFBSztBQUFBLGlCQUVDLGNBQWMsUUFBUSxPQUFPLGNBQWMsWUFBYSxlQUFjLFdBQVcsY0FBYyxZQUNwRyxjQUFjLFFBQVEsT0FBUSxlQUFjLFdBQVcsY0FBYyxVQUFXO0FBQ2pGLGNBQU07QUFDTixhQUFLO0FBQUE7QUFBQTtBQUdiLFNBQUsscUJBQXFCLENBQUMsVUFBVTtBQUNqQyxZQUFNLGFBQWE7QUFDbkIsWUFBTSxhQUFhLEtBQUssUUFBUSxLQUFLO0FBQ3JDLFdBQUssY0FBYztBQUFBLFFBQ2YsTUFBTSxXQUFXO0FBQUEsUUFDakIsT0FBTyxLQUFLLFFBQVE7QUFBQSxRQUNwQixXQUFXLEtBQUs7QUFBQSxRQUNoQixnQkFBZ0IsS0FBSyxRQUFRLGVBQWdCLE1BQUssUUFBUSxNQUFNLFNBQVMsV0FBVyxNQUFNO0FBQUEsUUFDMUYsY0FBYyxLQUFLLFFBQVE7QUFBQTtBQUFBO0FBR25DLFNBQUssb0JBQW9CLE1BQU07QUFDM0IsV0FBSyxRQUFRLGlCQUFpQixXQUFXLEtBQUs7QUFDOUMsV0FBSyxRQUFRLGlCQUFpQixTQUFTLEtBQUs7QUFBQTtBQUVoRCxTQUFLLG1CQUFtQixNQUFNO0FBQzFCLFdBQUssUUFBUSxvQkFBb0IsV0FBVyxLQUFLO0FBQ2pELFdBQUssUUFBUSxvQkFBb0IsU0FBUyxLQUFLO0FBQUE7QUFFbkQsU0FBSyxnQkFBZ0IsQ0FBQyxXQUFXO0FBQzdCLFlBQU0sYUFBYSxLQUFLLFFBQVEsS0FBSztBQUNyQyxVQUFJLGNBQWMsV0FBVyxTQUFTLE9BQU8sUUFBUSxPQUFPLFlBQVksV0FBVyxZQUFZLEtBQUssT0FBTyxVQUFVO0FBQ2pILGFBQUssUUFBUSxLQUFLLGdCQUFnQixPQUFPLE9BQU8sT0FBTyxPQUFPLElBQUksYUFBYSxFQUFFLE9BQU8sT0FBTyxPQUFPLGNBQWMsT0FBTyxjQUFjLFdBQVcsT0FBTztBQUFBLGFBRTFKO0FBQ0QsWUFBSSxLQUFLLE9BQU8sV0FBVyxLQUFLLGdCQUFnQixLQUFLLE9BQU8sU0FBUztBQUNqRSxlQUFLLFFBQVE7QUFDYixlQUFLLFFBQVEsS0FBSztBQUFBLGVBRWpCO0FBQ0QsZUFBSztBQUFBO0FBRVQsYUFBSyxRQUFRLEtBQUssZ0JBQWdCO0FBQ2xDLGFBQUssVUFBVSxLQUFLLFFBQVEsTUFBTSxHQUFHLEtBQUssZUFBZTtBQUFBO0FBRTdELFdBQUs7QUFBQTtBQUVULFNBQUssaUJBQWlCLE1BQU07QUFDeEIsaUJBQVcsT0FBTSxLQUFLLFdBQVc7QUFDN0IsWUFBRyxDQUFDLEdBQUcsS0FBSyxVQUFVLEtBQUs7QUFBQTtBQUFBO0FBR25DLFNBQUssVUFBVTtBQUNmLFNBQUssU0FBUyxPQUFPLE9BQU8sT0FBTyxPQUFPLElBQUksZ0JBQWdCO0FBQzlELFFBQUksS0FBSyxPQUFPLGtCQUFrQixLQUFLLE9BQU8sZUFBZSxTQUFTLEdBQUc7QUFDckUsV0FBSyxVQUFVLEtBQUssT0FBTztBQUMzQixVQUFJLEtBQUssT0FBTyxpQkFBaUIsVUFBYSxLQUFLLE9BQU8sZUFBZSxLQUFLLFFBQVEsUUFBUTtBQUMxRixhQUFLLGVBQWUsS0FBSyxPQUFPO0FBQUEsYUFFL0I7QUFDRCxhQUFLLGVBQWUsS0FBSyxRQUFRLFNBQVM7QUFBQTtBQUFBLFdBRzdDO0FBQ0QsV0FBSyxVQUFVLENBQUM7QUFDaEIsV0FBSyxlQUFlO0FBQ3BCLFVBQUksS0FBSyxPQUFPLGlCQUFpQixJQUFJO0FBQ2pDLGFBQUssUUFBUSxLQUFLO0FBQUEsVUFDZCxNQUFNO0FBQUEsVUFDTixPQUFPLEtBQUssT0FBTztBQUFBLFVBQ25CLFdBQVcsS0FBSztBQUFBLFVBQ2hCLGdCQUFnQjtBQUFBLFVBQ2hCLGNBQWMsS0FBSyxPQUFPLGFBQWE7QUFBQTtBQUUzQyxhQUFLO0FBQUE7QUFBQTtBQUdiLFNBQUssUUFBUSxRQUFRLEtBQUssUUFBUSxLQUFLLGNBQWM7QUFDckQsU0FBSztBQUFBO0FBQUE7QUNuSWIsc0JBQXNCO1FBQ2QsR0FBRyxjQUFjWSxxQ0FBa0I7UUFFbkMsVUFBVUMsd0NBQVksTUFBTTtlQUNyQixDQUFDLE9BQU87YUFDVixDQUFDO0FBQUE7QUFBQSxLQUVUO1NBRUk7QUFBQTs7Ozs7Ozs7Ozs7QUNINkIsSUFBSSxJQUFFNUQsNkJBQWlCLElBQUU7MENBQXVCO0FBQU0sSUFBRyxBQUFhLE9BQU8sV0FBcEIsY0FBNEIsT0FBTyxLQUFJO0FBQUMsTUFBSSxJQUFFLE9BQU87QUFBSSxNQUFFLEVBQUU7NENBQWtDLEVBQUU7QUFBQTtBQUFrQixJQUFJLElBQUUsRUFBRSxtREFBbUQsbUJBQWtCLElBQUUsT0FBTyxVQUFVLGdCQUFlLElBQUUsRUFBQyxLQUFJLE1BQUcsS0FBSSxNQUFHLFFBQU8sTUFBRyxVQUFTO0FBQ3JXLFdBQVcsR0FBRSxHQUFFLEdBQUU7QUFBQyxNQUFJLEdBQUUsSUFBRSxJQUFHLElBQUUsTUFBSyxLQUFFO0FBQUssRUFBUyxNQUFULFVBQWEsS0FBRSxLQUFHO0FBQUcsRUFBUyxFQUFFLFFBQVgsVUFBaUIsS0FBRSxLQUFHLEVBQUU7QUFBSyxFQUFTLEVBQUUsUUFBWCxVQUFpQixNQUFFLEVBQUU7QUFBSyxPQUFJLEtBQUs7QUFBRSxNQUFFLEtBQUssR0FBRSxNQUFJLENBQUMsRUFBRSxlQUFlLE1BQUssR0FBRSxLQUFHLEVBQUU7QUFBSSxNQUFHLEtBQUcsRUFBRTtBQUFhLFNBQUksS0FBSyxJQUFFLEVBQUUsY0FBYTtBQUFFLE1BQVMsRUFBRSxPQUFYLFVBQWdCLEdBQUUsS0FBRyxFQUFFO0FBQUksU0FBTSxFQUFDLFVBQVMsR0FBRSxNQUFLLEdBQUUsS0FBSSxHQUFFLEtBQUksSUFBRSxPQUFNLEdBQUUsUUFBTyxFQUFFO0FBQUE7cUNBQXFCO3NDQUFlO0FDUDVTO0FBQ3pDNkQsdUJBQWlCN0Q7QUFBQUE7QUNGWixNQUFNLE1BQU04RDtBQUNaLE1BQU0sT0FBT0M7QUFDYixNQUFNLFdBQVdDO0FDS3hCLE1BQU1DLFdBQW9DLENBQUNDLFVBQXlCO1FBQzVEO0FBQUEsSUFBQ0M7QUFBQUEsSUFBVUM7QUFBQUEsTUFBUUY7U0FDbEJFOztPQUF5QjtBQUFBO0FBR2xDLE1BQU1DLE9BQU9KOzs7O0FDWGIsRUFBQyxZQUFZO0FBTWIsUUFBSSxhQUFhO0FBQUEsTUFDZjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFFQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUVBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFHQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUVBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFFQTtBQUFBLE1BQ0E7QUFBQSxNQUVBO0FBQUEsTUFDQTtBQUFBO0FBSUYsUUFBSSxZQUFhLE9BQU8sV0FBVztBQUNuQyxRQUFJLFlBQWEsYUFBYSxPQUFPLG1CQUFtQjtBQUV4RCxrQ0FBNkIsU0FBUyxVQUFVLFNBQVM7QUFDdkQsVUFBRyxDQUFDLFdBQVc7QUFDYixjQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLFVBQUksUUFBUSxXQUFXLFFBQVEsU0FBUztBQUN4QyxVQUFJLE9BQU87QUFDVCxZQUFJLEtBQUssU0FBUyxjQUFjO0FBQ2hDLFlBQUssSUFBSztBQUFFLGFBQUcsV0FBVyxZQUFZO0FBQUE7QUFBQTtBQUl4QyxVQUFJLE1BQU0sU0FBUyxjQUFjO0FBQ2pDLFVBQUksS0FBSztBQUNULGVBQVMsS0FBSyxZQUFZO0FBRTFCLFVBQUksUUFBUSxJQUFJO0FBQ2hCLFVBQUksV0FBVyxPQUFPLG1CQUFrQixpQkFBaUIsV0FBVyxRQUFRO0FBRzVFLFlBQU0sYUFBYTtBQUNuQixVQUFJLFFBQVEsYUFBYTtBQUN2QixjQUFNLFdBQVc7QUFHbkIsWUFBTSxXQUFXO0FBQ2pCLFVBQUksQ0FBQztBQUNILGNBQU0sYUFBYTtBQUdyQixpQkFBVyxRQUFRLFNBQVUsTUFBTTtBQUNqQyxjQUFNLFFBQVEsU0FBUztBQUFBO0FBR3pCLFVBQUksV0FBVztBQUViLFlBQUksUUFBUSxlQUFlLFNBQVMsU0FBUztBQUMzQyxnQkFBTSxZQUFZO0FBQUEsYUFDZjtBQUNMLGNBQU0sV0FBVztBQUFBO0FBR25CLFVBQUksY0FBYyxRQUFRLE1BQU0sVUFBVSxHQUFHO0FBRTdDLFVBQUksUUFBUSxhQUFhO0FBQ3ZCLFlBQUksY0FBYyxJQUFJLFlBQVksUUFBUSxPQUFPO0FBRW5ELFVBQUksT0FBTyxTQUFTLGNBQWM7QUFNbEMsV0FBSyxjQUFjLFFBQVEsTUFBTSxVQUFVLGFBQWE7QUFDeEQsVUFBSSxZQUFZO0FBRWhCLFVBQUksY0FBYztBQUFBLFFBQ2hCLEtBQUssS0FBSyxZQUFZLFNBQVMsU0FBUztBQUFBLFFBQ3hDLE1BQU0sS0FBSyxhQUFhLFNBQVMsU0FBUztBQUFBO0FBRzVDLFVBQUksT0FBTztBQUNULGFBQUssTUFBTSxrQkFBa0I7QUFBQSxhQUN4QjtBQUNMLGlCQUFTLEtBQUssWUFBWTtBQUFBO0FBRzVCLGFBQU87QUFBQTtBQUdpRTtBQUN4RSx3QkFBaUI7QUFBQTtBQUFBO0FBQUE7O0FDM0huQixJQUFJLG9CQUFvQkssZUFBTztBQUUvQixxQkFBc0I7QUFDcEIsTUFBSTtBQUNGLFFBQUksS0FBSSxJQUFJLGtCQUFrQixPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUs7QUFDdEQsV0FBUSxBQUFVLEdBQUUsU0FBWixTQUFvQixBQUFVLEdBQUUsT0FBTyxRQUFuQjtBQUFBLFdBQ3JCLEdBQVA7QUFBQTtBQUVGLFNBQU87QUFBQTtJQVdULGlDQUFpQixjQUFjLG9CQUcvQixBQUFnQixPQUFPLGFBQXZCLGVBQW1DLEFBQWUsT0FBTyxTQUFTLGdCQUEvQixhQUE2QyxxQkFBc0IsTUFBTSxRQUFRO0FBQ2xILE1BQUksSUFBSSxTQUFTLFlBQVk7QUFDN0IsTUFBSSxRQUFRO0FBQ1YsTUFBRSxnQkFBZ0IsTUFBTSxPQUFPLFNBQVMsT0FBTyxZQUFZLE9BQU87QUFBQSxTQUM3RDtBQUNMLE1BQUUsZ0JBQWdCLE1BQU0sT0FBTyxPQUFPO0FBQUE7QUFFeEMsU0FBTztBQUFBLElBSVQsc0JBQXNCLE1BQU0sUUFBUTtBQUNsQyxNQUFJLElBQUksU0FBUztBQUNqQixJQUFFLE9BQU87QUFDVCxNQUFJLFFBQVE7QUFDVixNQUFFLFVBQVUsUUFBUSxPQUFPO0FBQzNCLE1BQUUsYUFBYSxRQUFRLE9BQU87QUFDOUIsTUFBRSxTQUFTLE9BQU87QUFBQSxTQUNiO0FBQ0wsTUFBRSxVQUFVO0FBQ1osTUFBRSxhQUFhO0FBQ2YsTUFBRSxTQUFTO0FBQUE7QUFFYixTQUFPO0FBQUE7QUNqQlQsMkJBQXlCLEtBQUssS0FBSyxPQUFPO0FBQ3hDLE1BQUksT0FBTyxLQUFLO0FBQ2QsV0FBTyxlQUFlLEtBQUssS0FBSztBQUFBLE1BQzlCO0FBQUEsTUFDQSxZQUFZO0FBQUEsTUFDWixjQUFjO0FBQUEsTUFDZCxVQUFVO0FBQUE7QUFBQSxTQUVQO0FBQ0wsUUFBSSxPQUFPO0FBQUE7QUFHYixTQUFPO0FBQUE7QUFHVCx5QkFBdUIsUUFBUTtBQUM3QixXQUFTLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFLO0FBQ3pDLFFBQUksU0FBUyxVQUFVLE1BQU0sT0FBTyxVQUFVLEtBQUs7QUFDbkQsUUFBSSxXQUFVLE9BQU8sS0FBSztBQUUxQixRQUFJLE9BQU8sT0FBTywwQkFBMEIsWUFBWTtBQUN0RCxpQkFBVSxTQUFRLE9BQU8sT0FBTyxzQkFBc0IsUUFBUSxPQUFPLFNBQVUsS0FBSztBQUNsRixlQUFPLE9BQU8seUJBQXlCLFFBQVEsS0FBSztBQUFBO0FBQUE7QUFJeEQsYUFBUSxRQUFRLFNBQVUsS0FBSztBQUM3QkMsd0JBQWdCLFFBQVEsS0FBSyxPQUFPO0FBQUE7QUFBQTtBQUl4QyxTQUFPO0FBQUE7QUFHVCwyQkFBeUIsV0FBVSxhQUFhO0FBQzlDLE1BQUksQ0FBRSxzQkFBb0IsY0FBYztBQUN0QyxVQUFNLElBQUksVUFBVTtBQUFBO0FBQUE7QUFJeEIsNkJBQTJCLFFBQVEsT0FBTztBQUN4QyxXQUFTLElBQUksR0FBRyxJQUFJLE1BQU0sUUFBUSxLQUFLO0FBQ3JDLFFBQUksYUFBYSxNQUFNO0FBQ3ZCLGVBQVcsYUFBYSxXQUFXLGNBQWM7QUFDakQsZUFBVyxlQUFlO0FBQzFCLFFBQUksV0FBVztBQUFZLGlCQUFXLFdBQVc7QUFDakQsV0FBTyxlQUFlLFFBQVEsV0FBVyxLQUFLO0FBQUE7QUFBQTtBQUlsRCx3QkFBc0IsYUFBYSxZQUFZLGFBQWE7QUFDMUQsTUFBSTtBQUFZQyx3QkFBa0IsWUFBWSxXQUFXO0FBQ3pELE1BQUk7QUFBYUEsd0JBQWtCLGFBQWE7QUFDaEQsU0FBTztBQUFBO0FBR1Qsa0JBQWtCLEtBQUs7QUFDckIsTUFBSSxPQUFPLFdBQVcsY0FBYyxPQUFPLE9BQU8sYUFBYSxVQUFVO0FBQ3ZFLGVBQVcsbUJBQWtCLE1BQUs7QUFDaEMsYUFBTyxPQUFPO0FBQUE7QUFBQSxTQUVYO0FBQ0wsZUFBVyxtQkFBa0IsTUFBSztBQUNoQyxhQUFPLFFBQU8sT0FBTyxXQUFXLGNBQWMsS0FBSSxnQkFBZ0IsVUFBVSxTQUFRLE9BQU8sWUFBWSxXQUFXLE9BQU87QUFBQTtBQUFBO0FBSTdILFNBQU8sU0FBUztBQUFBO0FBR2xCLG1CQUFpQixLQUFLO0FBQ3BCLE1BQUksT0FBTyxXQUFXLGNBQWMsU0FBUyxPQUFPLGNBQWMsVUFBVTtBQUMxRUMsZ0JBQVUsa0JBQWlCLE1BQUs7QUFDOUIsYUFBTyxTQUFTO0FBQUE7QUFBQSxTQUViO0FBQ0xBLGdCQUFVLGtCQUFpQixNQUFLO0FBQzlCLGFBQU8sUUFBTyxPQUFPLFdBQVcsY0FBYyxLQUFJLGdCQUFnQixVQUFVLFNBQVEsT0FBTyxZQUFZLFdBQVcsU0FBUztBQUFBO0FBQUE7QUFJL0gsU0FBT0EsVUFBUTtBQUFBO0FBR2pCLGtDQUFnQyxPQUFNO0FBQ3BDLE1BQUksVUFBUyxRQUFRO0FBQ25CLFVBQU0sSUFBSSxlQUFlO0FBQUE7QUFHM0IsU0FBTztBQUFBO0FBR1Qsc0NBQW9DLE9BQU0sTUFBTTtBQUM5QyxNQUFJLFFBQVNBLFdBQVEsVUFBVSxZQUFZLE9BQU8sU0FBUyxhQUFhO0FBQ3RFLFdBQU87QUFBQTtBQUdULFNBQU9DLHlCQUF1QjtBQUFBO0FBR2hDLDJCQUF5QixHQUFHO0FBQzFCQyxzQkFBa0IsT0FBTyxpQkFBaUIsT0FBTyxpQkFBaUIsMEJBQXlCLElBQUc7QUFDNUYsV0FBTyxHQUFFLGFBQWEsT0FBTyxlQUFlO0FBQUE7QUFFOUMsU0FBT0Esa0JBQWdCO0FBQUE7QUFHekIsMkJBQXlCLEdBQUcsSUFBRztBQUM3QkMsc0JBQWtCLE9BQU8sa0JBQWtCLDBCQUF5QixJQUFHLElBQUc7QUFDeEUsT0FBRSxZQUFZO0FBQ2QsV0FBTztBQUFBO0FBR1QsU0FBT0Esa0JBQWdCLEdBQUc7QUFBQTtBQUc1QixxQkFBbUIsVUFBVSxZQUFZO0FBQ3ZDLE1BQUksT0FBTyxlQUFlLGNBQWMsZUFBZSxNQUFNO0FBQzNELFVBQU0sSUFBSSxVQUFVO0FBQUE7QUFHdEIsV0FBUyxZQUFZLE9BQU8sT0FBTyxjQUFjLFdBQVcsV0FBVztBQUFBLElBQ3JFLGFBQWE7QUFBQSxNQUNYLE9BQU87QUFBQSxNQUNQLFVBQVU7QUFBQSxNQUNWLGNBQWM7QUFBQTtBQUFBO0FBR2xCLE1BQUk7QUFBWUEsc0JBQWdCLFVBQVU7QUFBQTtBQUc1Qyw0QkFBNEIsS0FBSztBQUMvQixNQUFJLE1BQU0sUUFBUSxNQUFNO0FBQ3RCLGFBQVMsSUFBSSxHQUFHLE9BQU8sSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLElBQUksUUFBUSxLQUFLO0FBQ2pFLFdBQUssS0FBSyxJQUFJO0FBQUE7QUFHaEIsV0FBTztBQUFBO0FBQUE7QUFJWCw0QkFBMEIsTUFBTTtBQUM5QixNQUFJLE9BQU8sWUFBWSxPQUFPLFNBQVMsT0FBTyxVQUFVLFNBQVMsS0FBSyxVQUFVO0FBQXNCLFdBQU8sTUFBTSxLQUFLO0FBQUE7QUFHMUgsOEJBQThCO0FBQzVCLFFBQU0sSUFBSSxVQUFVO0FBQUE7QUFHdEIsNEJBQTRCLEtBQUs7QUFDL0IsU0FBTyxtQkFBbUIsUUFBUUMsbUJBQWlCLFFBQVE7QUFBQTtBQUc3RCxJQUFJLFlBQVk7QUFBQSxFQUNkLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQTtBQUdQLElBQUksV0FBVyxxQkFBb0I7QUFDakMsTUFBSSxRQUFRO0FBRVpDLG9CQUFnQixNQUFNO0FBRXRCLE9BQUssY0FBYyxTQUFVLEtBQUs7QUFDaEMsUUFBSSxDQUFDO0FBQUs7QUFDVixRQUFJLGlCQUFpQixXQUFXLE1BQU07QUFBQTtBQUd4QyxPQUFLLGFBQWEsU0FBVSxLQUFLO0FBQy9CLFFBQUksQ0FBQztBQUFLO0FBQ1YsUUFBSSxvQkFBb0IsV0FBVyxNQUFNO0FBQUE7QUFHM0MsT0FBSyxNQUFNLFNBQVUsVUFBVSxLQUFJO0FBQ2pDLFFBQUksVUFBVTtBQUNkLFFBQUksT0FBTyxZQUFZO0FBQVUsZ0JBQVUsQ0FBQztBQUM1QyxVQUFNLFVBQVUsTUFBTSxTQUFTO0FBQUEsTUFDN0I7QUFBQSxNQUNBLElBQUk7QUFBQTtBQUVOLFdBQU8sTUFBTTtBQUFBO0FBR2YsT0FBSyxTQUFTLFNBQVUsS0FBSTtBQUMxQixXQUFPLE1BQU0sVUFBVTtBQUFBO0FBR3pCLE9BQUssWUFBWSxXQUFZO0FBQzNCLFVBQU0sWUFBWTtBQUNsQixVQUFNLFFBQVE7QUFBQTtBQUdoQixPQUFLLFFBQVE7QUFDYixPQUFLLFlBQVk7QUFFakIsT0FBSyxJQUFJLFNBQVUsR0FBRztBQUNwQixRQUFJLENBQUM7QUFBRztBQUNSLFFBQUksT0FBTyxFQUFFLFdBQVcsRUFBRTtBQUMxQixXQUFPLE9BQU8sTUFBTSxXQUFXLFFBQVEsU0FBVSxNQUFNO0FBQ3JELFVBQUksVUFBVSxLQUFLLFNBQ2YsTUFBSyxLQUFLO0FBRWQsVUFBSSxRQUFRLFNBQVMsT0FBTztBQUMxQixVQUFFO0FBQ0YsVUFBRTtBQUNGLFlBQUc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1YLElBQUksWUFBWSxJQUFJO0FBRXBCLElBQUksT0FFSix5QkFBVSxrQkFBa0I7QUFDMUJDLGNBQVUsT0FBTTtBQUVoQixtQkFBZ0I7QUFDZCxRQUFJO0FBRUosUUFBSTtBQUVKRCxzQkFBZ0IsTUFBTTtBQUV0QixhQUFTLE9BQU8sVUFBVSxRQUFRLE9BQU8sSUFBSSxNQUFNLE9BQU8sT0FBTyxHQUFHLE9BQU8sTUFBTSxRQUFRO0FBQ3ZGLFdBQUssUUFBUSxVQUFVO0FBQUE7QUFHekIsWUFBUUUsNkJBQTJCLE1BQU8sb0JBQW1CTCxrQkFBZ0IsUUFBTyxLQUFLLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxPQUFPO0FBRS9ILFVBQU0sYUFBYSxXQUFZO0FBQzdCLFVBQUksY0FBYyxNQUFNLE9BQ3BCLE9BQU8sWUFBWSxNQUNuQixrQkFBa0IsWUFBWTtBQUNsQyxzQkFBZ0I7QUFBQTtBQUdsQixXQUFPO0FBQUE7QUFHVE0saUJBQWEsT0FBTSxDQUFDO0FBQUEsSUFDbEIsS0FBSztBQUFBLElBQ0wsT0FBTywrQkFBK0IsV0FBVztBQUMvQyxVQUFJLEtBQUssTUFBTSxTQUFTLFVBQVUsUUFBUSxLQUFLLE1BQU0sYUFBYSxVQUFVLFlBQVksS0FBSyxNQUFNLFVBQVUsVUFBVSxTQUFTLEtBQUssTUFBTSxjQUFjLFVBQVUsV0FBVztBQUM1SyxlQUFPO0FBQUE7QUFHVCxhQUFPO0FBQUE7QUFBQSxLQUVSO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGtCQUFrQjtBQUN2QixVQUFJLFNBQVM7QUFFYixVQUFJLGVBQWUsS0FBSyxPQUNwQixZQUFZLGFBQWEsV0FDekIsUUFBUSxhQUFhLE9BQ3JCLGlCQUFpQixhQUFhLGdCQUM5QixPQUFPLGFBQWEsTUFDcEIsV0FBVyxhQUFhLFVBQ3hCLFlBQVksYUFBYSxXQUN6QixXQUFXLGFBQWE7QUFDNUIsYUFBT0MsUUFBTSxjQUFjLE1BQU07QUFBQSxRQUMvQixXQUFXLGNBQWMsT0FBTyxhQUFhLE9BQU8sd0JBQXdCLElBQUksS0FBSyxPQUFPLGFBQWE7QUFBQSxRQUN6RztBQUFBLFNBQ0NBLFFBQU0sY0FBYyxPQUFPO0FBQUEsUUFDNUIsV0FBVyxlQUFlLE9BQU8sYUFBYSxPQUFPLDBCQUEwQjtBQUFBLFFBQy9FLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLFNBQVM7QUFBQSxRQUNULFNBQVMsS0FBSztBQUFBLFFBQ2QsY0FBYyxLQUFLO0FBQUEsUUFDbkIsY0FBYyx3QkFBd0I7QUFDcEMsaUJBQU8sVUFBVTtBQUVqQixpQkFBTztBQUFBO0FBQUEsUUFFVCxZQUFZLG9CQUFvQixHQUFHO0FBQ2pDLFlBQUU7QUFFRixjQUFJLE9BQU8sU0FBUztBQUNsQiwyQkFBZTtBQUFBO0FBQUE7QUFBQSxRQUduQixhQUFhLHVCQUF1QjtBQUNsQyxpQkFBTyxVQUFVO0FBQUE7QUFBQSxRQUVuQixlQUFlLHlCQUF5QjtBQUN0QyxpQkFBTyxVQUFVO0FBQUE7QUFBQSxRQUluQixLQUFLO0FBQUEsU0FDSkEsUUFBTSxjQUFjLFdBQVc7QUFBQSxRQUNoQztBQUFBLFFBQ0EsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUtkLFNBQU87QUFBQSxFQUNQQSxRQUFNO0FBRVIsSUFBSSxPQUVKLHlCQUFVLGtCQUFrQjtBQUMxQkgsY0FBVSxPQUFNO0FBRWhCLG1CQUFnQjtBQUNkLFFBQUk7QUFFSixRQUFJO0FBRUpELHNCQUFnQixNQUFNO0FBRXRCLGFBQVMsT0FBTyxVQUFVLFFBQVEsT0FBTyxJQUFJLE1BQU0sT0FBTyxPQUFPLEdBQUcsT0FBTyxNQUFNLFFBQVE7QUFDdkYsV0FBSyxRQUFRLFVBQVU7QUFBQTtBQUd6QixZQUFRRSw2QkFBMkIsTUFBTyxvQkFBbUJMLGtCQUFnQixRQUFPLEtBQUssTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLE9BQU87QUFDL0gsVUFBTSxRQUFRO0FBQUEsTUFDWixjQUFjO0FBQUE7QUFFaEIsVUFBTSxrQkFBa0IsSUFBSTtBQUU1QixVQUFNLGVBQWUsU0FBVSxHQUFHO0FBQ2hDLFVBQUksT0FBTyxNQUFNLGFBQWE7QUFDNUIsVUFBRTtBQUFBO0FBR0osVUFBSSxTQUFTLE1BQU0sTUFBTTtBQUV6QixZQUFNLFdBQVcsT0FBTyxNQUFNO0FBQUE7QUFHaEMsVUFBTSxvQkFBb0IsV0FBWTtBQUNwQyxVQUFJLFNBQVMsTUFBTSxNQUFNO0FBQ3pCLFVBQUksZUFBZSxNQUFNLE1BQU07QUFDL0IsVUFBSSxDQUFDO0FBQWMsZUFBTztBQUMxQixhQUFPLE9BQU8sVUFBVSxTQUFVLEdBQUc7QUFDbkMsZUFBTyxNQUFNLE1BQU0sT0FBTyxNQUFNLE1BQU07QUFBQTtBQUFBO0FBSTFDLFVBQU0sUUFBUSxTQUFVLE1BQU07QUFDNUIsVUFBSSxNQUFNLGdCQUFnQixJQUFJLE9BQU87QUFFbkMsZUFBTyxNQUFNLGdCQUFnQixJQUFJO0FBQUE7QUFHbkMsVUFBSSxnQkFBZ0IsTUFBTSxNQUFNLGlCQUFpQjtBQUVqRCxVQUFJLFlBQVksc0JBQXFCO0FBQ25DLFlBQUksZUFBZTtBQUNqQixjQUFJLGNBQWMsS0FBSztBQUNyQixtQkFBTyxjQUFjO0FBQUE7QUFHdkIsY0FBSSxPQUFPLFNBQVMsWUFBWSxDQUFDLEtBQUssS0FBSztBQUN6QyxtQkFBTyxjQUFjO0FBQUE7QUFBQTtBQUl6QixZQUFJLENBQUMsS0FBSyxLQUFLO0FBQ2IsZ0JBQU0sSUFBSSxNQUFNLFFBQVEsT0FBTyxLQUFLLFVBQVUsT0FBTztBQUFBO0FBSXZELGVBQU8sS0FBSztBQUFBO0FBR2QsVUFBSSxNQUFLO0FBRVQsWUFBTSxnQkFBZ0IsSUFBSSxNQUFNO0FBRWhDLGFBQU87QUFBQTtBQUdULFVBQU0sWUFBWTtBQUNsQixVQUFNLFdBQVc7QUFFakIsVUFBTSxhQUFhLFNBQVUsT0FBTztBQUNsQyxVQUFJLENBQUM7QUFBTztBQUNaLFVBQUksV0FBVyxNQUFNLE1BQU07QUFDM0IsZUFBUztBQUFBO0FBR1gsVUFBTSxhQUFhLFNBQVUsTUFBTTtBQUNqQyxVQUFJLFdBQVcsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQ25GLFVBQUksb0JBQW9CLE1BQU0sTUFBTTtBQUNwQyxVQUFJLE1BQU0sTUFBTSxpQkFBaUI7QUFBTTtBQUV2QyxZQUFNLFNBQVM7QUFBQSxRQUNiLGNBQWM7QUFBQSxTQUNiLFdBQVk7QUFDYiwwQkFBa0I7QUFFbEIsWUFBSSxVQUFVO0FBQ1osZ0JBQU0sTUFBTSxlQUFlLE1BQU0sU0FBUyxNQUFNLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFLNUQsVUFBTSxTQUFTLFNBQVUsR0FBRztBQUMxQixRQUFFO0FBQ0YsVUFBSSxTQUFTLE1BQU0sTUFBTTtBQUN6QixVQUFJLE9BQU8sRUFBRSxXQUFXLEVBQUU7QUFFMUIsVUFBSSxjQUFjLE1BQU07QUFFeEIsVUFBSTtBQUVKLGNBQVE7QUFBQSxhQUNELFVBQVU7QUFDYix3QkFBYyxjQUFjO0FBQzVCO0FBQUEsYUFFRyxVQUFVO0FBQ2Isd0JBQWMsY0FBYztBQUM1QjtBQUFBO0FBR0Esd0JBQWM7QUFDZDtBQUFBO0FBR0osb0JBQWUsZUFBYyxPQUFPLFNBQVMsT0FBTyxVQUFVLE9BQU87QUFFckUsWUFBTSxXQUFXLE9BQU8sY0FBYyxDQUFDLFVBQVUsTUFBTSxVQUFVLElBQUksU0FBUztBQUFBO0FBR2hGLFVBQU0sYUFBYSxTQUFVLE1BQU07QUFDakMsVUFBSSxlQUFlLE1BQU0sTUFBTTtBQUMvQixVQUFJLENBQUM7QUFBYyxlQUFPO0FBQzFCLGFBQU8sTUFBTSxNQUFNLGtCQUFrQixNQUFNLE1BQU07QUFBQTtBQUduRCxXQUFPO0FBQUE7QUFHVE0saUJBQWEsT0FBTSxDQUFDO0FBQUEsSUFDbEIsS0FBSztBQUFBLElBQ0wsT0FBTyw2QkFBNkI7QUFDbEMsV0FBSyxVQUFVLEtBQUssVUFBVSxJQUFJLENBQUMsVUFBVSxNQUFNLFVBQVUsS0FBSyxLQUFLLFNBQVMsVUFBVSxJQUFJLENBQUMsVUFBVSxPQUFPLFVBQVUsTUFBTSxLQUFLO0FBQ3JJLFVBQUksU0FBUyxLQUFLLE1BQU07QUFDeEIsVUFBSSxVQUFVLE9BQU87QUFBSSxhQUFLLFdBQVcsT0FBTztBQUFBO0FBQUEsS0FFakQ7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sNEJBQTRCLE1BQU07QUFDdkMsVUFBSSxTQUFTO0FBRWIsVUFBSSxZQUFZLEtBQUs7QUFDckIsVUFBSSxTQUFTLEtBQUssTUFBTTtBQUN4QixVQUFJLHNCQUFzQixVQUFVLElBQUksU0FBVSxLQUFLO0FBQ3JELGVBQU8sT0FBTyxNQUFNO0FBQUEsU0FDbkIsS0FBSztBQUNSLFVBQUksc0JBQXNCLE9BQU8sSUFBSSxTQUFVLEtBQUs7QUFDbEQsZUFBTyxPQUFPLE1BQU07QUFBQSxTQUNuQixLQUFLO0FBRVIsVUFBSSx3QkFBd0IsdUJBQXVCLFVBQVUsT0FBTyxJQUFJO0FBQ3RFLGFBQUssV0FBVyxPQUFPO0FBQUE7QUFBQTtBQUFBLEtBRzFCO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGdDQUFnQztBQUNyQyxVQUFJO0FBRUosYUFBTyxLQUFLLFVBQVUsUUFBUTtBQUM1QixtQkFBVyxLQUFLLFVBQVU7QUFDMUIsa0JBQVUsT0FBTztBQUFBO0FBQUE7QUFBQSxLQUdwQjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxrQkFBa0I7QUFDdkIsVUFBSSxTQUFTO0FBRWIsVUFBSSxjQUFjLEtBQUssT0FDbkIsU0FBUyxZQUFZLFFBQ3JCLFlBQVksWUFBWSxXQUN4QixRQUFRLFlBQVksT0FDcEIsZ0JBQWdCLFlBQVksZUFDNUIsWUFBWSxZQUFZLFdBQ3hCLFlBQVksWUFBWTtBQUM1QixhQUFPQyxRQUFNLGNBQWMsTUFBTTtBQUFBLFFBQy9CLFdBQVcsYUFBYSxPQUFPLGFBQWE7QUFBQSxRQUM1QztBQUFBLFNBQ0MsT0FBTyxJQUFJLFNBQVUsTUFBTTtBQUM1QixlQUFPQSxRQUFNLGNBQWMsTUFBTTtBQUFBLFVBQy9CLEtBQUssT0FBTyxNQUFNO0FBQUEsVUFDbEIsVUFBVSxrQkFBa0IsS0FBSztBQUMvQixtQkFBTyxTQUFTLE9BQU8sTUFBTSxTQUFTO0FBQUE7QUFBQSxVQUV4QyxVQUFVLE9BQU8sV0FBVztBQUFBLFVBQzVCO0FBQUEsVUFDQSxXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxnQkFBZ0IsT0FBTztBQUFBLFVBQ3ZCLGlCQUFpQixPQUFPO0FBQUEsVUFDeEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1SLFNBQU87QUFBQSxFQUNQQSxRQUFNO0FBRVIsNkJBQTZCLFdBQVcsTUFBTTtBQUM1QyxNQUFJLGFBQWEsU0FBUyxpQkFBaUIsTUFBTSxpQkFBaUIsV0FBVztBQUM3RSxNQUFJLGlCQUFpQixTQUFTLGlCQUFpQixXQUFXLGlCQUFpQixXQUFXLE1BQU07QUFDNUYsTUFBSSxnQkFBZ0IsS0FBSztBQUN6QixNQUFJLGtCQUFrQixVQUFVO0FBRWhDLE1BQUksZ0JBQWdCLGtCQUFrQixrQkFBa0Isa0JBQWtCLGVBQWU7QUFDdkY7QUFBQTtBQUlGLFlBQVUsWUFBWTtBQUFBO0FBR3hCLElBQUkseUJBQXlCO0FBQzdCLElBQUkseUJBQXlCO0FBQUEsRUFDM0IsR0FBRztBQUFBLElBQ0QsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBO0FBQUEsRUFFVCxHQUFHO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxRQUFRO0FBQUE7QUFBQTtBQUlaLElBQUksZUFBZSx1QkFBc0IsU0FBUztBQUNoRCxTQUFPLFFBQVEsTUFBTSw0QkFBNEIsT0FBTyxTQUFTO0FBQUE7QUFHbkUsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLE1BQU07QUFFakcsSUFBSSxjQUFjLHNCQUFxQixNQUFNO0FBQzNDLFNBQU8sbUJBQW1CLE1BQU0sSUFBSSxTQUFVLFdBQVc7QUFDdkQsV0FBTyxtQkFBbUIsU0FBUyxhQUFhLEtBQUssT0FBTyxhQUFhO0FBQUEsS0FDeEUsS0FBSztBQUFBO0FBSVYsSUFBSSxlQUVKLHlCQUFVLGtCQUFrQjtBQUMxQkgsY0FBVSxlQUFjO0FBRXhCLDJCQUF3QjtBQUN0QkQsc0JBQWdCLE1BQU07QUFFdEIsV0FBT0UsNkJBQTJCLE1BQU1MLGtCQUFnQixlQUFjLE1BQU0sTUFBTTtBQUFBO0FBR3BGTSxpQkFBYSxlQUFjLENBQUM7QUFBQSxJQUMxQixLQUFLO0FBQUEsSUFDTCxPQUFPLDZCQUE2QjtBQUNsQyxVQUFJLG9CQUFvQixLQUFLLE1BQU07QUFFbkMsVUFBSSxPQUFPLHNCQUFzQixVQUFVO0FBQ3pDLFlBQUksT0FBTyxTQUFTLGNBQWM7QUFFbEMsWUFBSSxDQUFDLE1BQU07QUFDVCxnQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixhQUFLLGdCQUFnQjtBQUFBLGlCQUNaLDZCQUE2QixhQUFhO0FBQ25ELGFBQUssZ0JBQWdCO0FBQUEsYUFDaEI7QUFDTCxjQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLFVBQUksQ0FBQyxLQUFLLGlCQUFpQixDQUFDLEtBQUssY0FBYyxTQUFTLEtBQUssTUFBTTtBQUM1QjtBQUNuQyxnQkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxLQUlyQjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyw4QkFBOEI7QUFDbkMsVUFBSSxxQkFBcUI7QUFFekIsVUFBSSxPQUFNLEtBQUssTUFBTSxPQUFPO0FBQzVCLFVBQUksUUFBTyxLQUFLLE1BQU0sUUFBUTtBQUM5QixVQUFJLGNBQWM7QUFDbEIsVUFBSSxnQkFBZ0I7QUFDcEIsVUFBSSxjQUFjO0FBQ2xCLFVBQUksZUFBZTtBQUNuQixVQUFJLGtCQUFrQixLQUFLLGNBQWM7QUFDekMsVUFBSSxpQkFBaUIsS0FBSyxJQUFJO0FBQzlCLFVBQUksaUJBQWlCLEtBQUssTUFBTSxZQUFZO0FBQzVDLFVBQUksZ0JBQWdCLE9BQU8saUJBQWlCLEtBQUs7QUFDakQsVUFBSSxZQUFZLFNBQVMsY0FBYyxpQkFBaUIsZUFBZTtBQUN2RSxVQUFJLGVBQWUsU0FBUyxjQUFjLGlCQUFpQixrQkFBa0I7QUFDN0UsVUFBSSxhQUFhLFNBQVMsY0FBYyxpQkFBaUIsZ0JBQWdCO0FBQ3pFLFVBQUksY0FBYyxTQUFTLGNBQWMsaUJBQWlCLGlCQUFpQjtBQUMzRSxVQUFJLGlCQUFpQixZQUFZLGVBQWUsZUFBZSxNQUFNLE9BQU0sZUFBZTtBQUMxRixVQUFJLGdCQUFnQixhQUFhLGNBQWMsZUFBZSxPQUFPLFFBQU8sZUFBZTtBQUUzRixVQUFJLGdCQUFnQixnQkFBZ0IsU0FBUyxlQUFlLE9BQU8sUUFBTyxlQUFlLE9BQU87QUFDOUYsdUJBQWUsUUFBTyxlQUFlO0FBQ3JDLG9CQUFZLEtBQUssdUJBQXVCLEVBQUU7QUFDMUMsc0JBQWMsS0FBSyx1QkFBdUIsRUFBRTtBQUFBLGFBQ3ZDO0FBQ0wsdUJBQWU7QUFDZixvQkFBWSxLQUFLLHVCQUF1QixFQUFFO0FBQzFDLHNCQUFjLEtBQUssdUJBQXVCLEVBQUU7QUFBQTtBQUc5QyxVQUFJLGlCQUFpQixnQkFBZ0IsVUFBVSxlQUFlLE1BQU0sT0FBTSxlQUFlLFFBQVE7QUFDL0Ysc0JBQWMsT0FBTSxlQUFlO0FBQ25DLG9CQUFZLEtBQUssdUJBQXVCLEVBQUU7QUFDMUMsc0JBQWMsS0FBSyx1QkFBdUIsRUFBRTtBQUFBLGFBQ3ZDO0FBQ0wsc0JBQWM7QUFDZCxvQkFBWSxLQUFLLHVCQUF1QixFQUFFO0FBQzFDLHNCQUFjLEtBQUssdUJBQXVCLEVBQUU7QUFBQTtBQUc5QyxVQUFJLEtBQUssTUFBTSxjQUFjO0FBQzNCLHVCQUFlLGVBQWU7QUFDOUIsd0JBQWdCLGVBQWU7QUFBQTtBQUdqQyxXQUFLLElBQUksTUFBTSxNQUFNLEdBQUcsT0FBTyxhQUFhO0FBQzVDLFdBQUssSUFBSSxNQUFNLE9BQU8sR0FBRyxPQUFPLGNBQWM7QUFFOUMsTUFBQyx1QkFBc0IsS0FBSyxJQUFJLFdBQVcsT0FBTyxNQUFNLHFCQUFxQjtBQUU3RSxNQUFDLHdCQUF1QixLQUFLLElBQUksV0FBVyxJQUFJLE1BQU0sc0JBQXNCO0FBQUE7QUFBQSxLQUU3RTtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxrQkFBa0I7QUFDdkIsVUFBSSxRQUFRO0FBRVosVUFBSSxjQUFjLEtBQUssT0FDbkIsUUFBUSxZQUFZLE9BQ3BCLFlBQVksWUFBWSxXQUN4QixXQUFXLFlBQVksVUFDdkIsV0FBVyxZQUFZLFVBQ3ZCLGVBQWUsWUFBWTtBQUMvQixVQUFJLE9BQU8sU0FBUztBQUNwQixVQUFJLHdCQUF3QkMsUUFBTSxjQUFjLE9BQU87QUFBQSxRQUNyRCxLQUFLLGFBQWEsTUFBTTtBQUV0QixnQkFBTSxNQUFNO0FBRVosbUJBQVM7QUFBQTtBQUFBLFFBRVgsV0FBVyxxQkFBcUIsT0FBTyxhQUFhO0FBQUEsUUFDcEQ7QUFBQSxTQUNDO0FBQ0gsYUFBTyxnQkFBZ0IsU0FBUyxPQUFPQyxXQUFTLGFBQWEsdUJBQXVCLFFBQVE7QUFBQTtBQUFBO0FBSWhHLFNBQU87QUFBQSxFQUNQRCxRQUFNO0FBRVIsSUFBSSw0QkFFSix5QkFBVSxtQkFBbUI7QUFDM0JILGNBQVUsNEJBQTJCO0FBRXJDLHNDQUFtQyxRQUFRO0FBQ3pDLFFBQUk7QUFFSkQsc0JBQWdCLE1BQU07QUFFdEIsYUFBU0UsNkJBQTJCLE1BQU1MLGtCQUFnQiw0QkFBMkIsS0FBSyxNQUFNO0FBQ2hHLFdBQU8sUUFBUTtBQUFBLE1BQ2IsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sZ0JBQWdCO0FBQUEsTUFDaEIsYUFBYTtBQUFBLE1BQ2IsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLE1BQ1AsYUFBYTtBQUFBLE1BQ2IsY0FBYztBQUFBLE1BQ2QsV0FBVztBQUFBLE1BQ1gsZUFBZTtBQUFBO0FBR2pCLFdBQU8sa0JBQWtCLFdBQVk7QUFDbkMsVUFBSSxDQUFDLE9BQU8sYUFBYTtBQUN2QixlQUFPLGNBQWMsVUFBVSxJQUFJLFVBQVUsS0FBSyxPQUFPO0FBQUE7QUFBQTtBQUk3RCxXQUFPLHFCQUFxQixXQUFZO0FBQ3RDLFVBQUksT0FBTyxhQUFhO0FBQ3RCLGtCQUFVLE9BQU8sT0FBTztBQUN4QixlQUFPLGNBQWM7QUFBQTtBQUFBO0FBSXpCLFdBQU8sdUJBQXVCLFdBQVk7QUFDeEMsVUFBSSxDQUFDLE9BQU87QUFBYSxlQUFPO0FBQ2hDLGFBQU87QUFBQSxRQUNMLGdCQUFnQixPQUFPLFlBQVk7QUFBQSxRQUNuQyxjQUFjLE9BQU8sWUFBWTtBQUFBO0FBQUE7QUFJckMsV0FBTyxrQkFBa0IsV0FBWTtBQUNuQyxVQUFJLENBQUMsT0FBTztBQUFhLGVBQU87QUFDaEMsVUFBSSxxQkFBcUIsT0FBTyxhQUM1QixpQkFBaUIsbUJBQW1CLGdCQUNwQyxlQUFlLG1CQUFtQjtBQUN0QyxVQUFJLG1CQUFtQjtBQUFjLGVBQU87QUFDNUMsYUFBTyxPQUFPLE1BQU0sTUFBTSxPQUFPLGdCQUFnQixlQUFlO0FBQUE7QUFHbEUsV0FBTyxtQkFBbUIsV0FBWTtBQUNwQyxVQUFJLFdBQVcsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQ25GLFVBQUksQ0FBQyxPQUFPO0FBQWE7QUFFekIsYUFBTyxZQUFZO0FBRW5CLGFBQU8sWUFBWSxrQkFBa0IsVUFBVTtBQUFBO0FBR2pELFdBQU8sbUJBQW1CLFdBQVk7QUFDcEMsVUFBSSxDQUFDLE9BQU8sYUFBYTtBQUN2QixlQUFPO0FBQUE7QUFHVCxVQUFJLFdBQVcsT0FBTyxZQUFZO0FBQ2xDLGFBQU87QUFBQTtBQUdULFdBQU8scUJBQXFCLFNBQVUsR0FBRztBQUN2QyxVQUFJLG1CQUFtQiw2QkFBNEI7QUFDakQsWUFBSSxlQUFlLE9BQU8scUJBQXFCO0FBQy9DLGVBQU8sY0FBYyxPQUFPLGNBQWMsZUFBZTtBQUFBO0FBRzNELFVBQUksRUFBRSxTQUFTLFdBQVc7QUFFeEIsWUFBSSxPQUFPLEVBQUUsV0FBVyxFQUFFO0FBRTFCLGdCQUFRO0FBQUEsZUFDRCxVQUFVO0FBQUEsZUFDVixVQUFVO0FBQ2IsZ0JBQUksQ0FBQyxPQUFPLHVCQUF1QjtBQUNqQztBQUFBO0FBR0Y7QUFBQSxlQUVHLFVBQVU7QUFBQSxlQUNWLFVBQVU7QUFDYjtBQUNBO0FBQUE7QUFLSjtBQUFBO0FBR0Y7QUFBQTtBQUdGLFdBQU8sWUFBWSxTQUFVLE1BQU07QUFDakMsVUFBSSxlQUFlLE9BQU8sT0FDdEIsZUFBZSxhQUFhLGNBQzVCLGlCQUFpQixhQUFhLGdCQUM5QixnQkFBZ0IsYUFBYTtBQUNqQyxVQUFJLGlCQUFpQixPQUFPLE1BQU07QUFDbEMsVUFBSSxDQUFDO0FBQWdCO0FBRXJCLFVBQUksb0NBQW9DLE9BQU8sa0JBQWtCO0FBRWpFLFVBQUksQ0FBQyxtQ0FBbUM7QUFDdEMsZUFBTztBQUVQO0FBQUE7QUFHRixVQUFJLFdBQVcsa0NBQWtDO0FBRWpELFVBQUksQ0FBQyxVQUFVO0FBQ2IsZUFBTztBQUVQO0FBQUE7QUFHRixVQUFJLGdCQUFnQjtBQUNsQix1QkFBZTtBQUFBLFVBQ2I7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUlKLFVBQUksdUJBQXVCLCtCQUE4QixVQUFVLE9BQU8sWUFBWTtBQUNwRixnQkFBUTtBQUFBLGVBQ0Q7QUFDSCxtQkFBTztBQUFBLGVBRUo7QUFBQSxlQUNBO0FBQ0gsbUJBQU8sYUFBYSxNQUFNO0FBQUE7QUFHMUIsZ0JBQUksQ0FBQyxPQUFPLFVBQVUsV0FBVztBQUMvQixvQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixtQkFBTztBQUFBO0FBQUE7QUFJYixVQUFJLGVBQWUsY0FBYyxNQUFNLEdBQUc7QUFNMUMsVUFBSSx3QkFBd0IsWUFBWTtBQUN4QyxVQUFJLGdCQUFnQixhQUFhLFNBQVMsYUFBYSxZQUFZO0FBQ25FLFVBQUksdUJBQXVCLGFBQWEsT0FBTyxJQUFJLE9BQU8sTUFBTSxPQUFPLHVCQUF1QixVQUFVO0FBRXhHLFVBQUksaUJBQWlCLFNBQVMsa0JBQWtCLFNBQVMsR0FBRyxPQUFPLFNBQVMsTUFBTSxPQUFPLFNBQVM7QUFDbEcsVUFBSSxtQkFBbUIscUJBQXFCLFNBQVMsZUFBZSxnQkFBZ0I7QUFDcEYsVUFBSSxlQUFlLGFBQWEsVUFBVSxHQUFHLHdCQUF3QjtBQUNyRSxVQUFJLFdBQVcsY0FBYyxRQUFRLGNBQWM7QUFFbkQsYUFBTyxTQUFTO0FBQUEsUUFDZCxPQUFPO0FBQUEsUUFDUCxhQUFhO0FBQUEsU0FDWixXQUFZO0FBQ2IsWUFBSSxrQkFBa0IsT0FBTyxrQkFBa0IsS0FBSztBQUVwRCxZQUFJLDBCQUEwQixrQkFBa0IsZ0JBQWdCLEdBQUcsU0FBUztBQUM1RSxlQUFPLGNBQWMsbUJBQW1CLG1CQUFtQiwwQkFBMEI7QUFDckYsZUFBTyxZQUFZLFFBQVE7QUFDM0IsZUFBTyxZQUFZLGVBQWU7QUFFbEMsZUFBTztBQUVQLFlBQUksWUFBWSxPQUFPLFlBQVk7QUFFbkMsZUFBTyxpQkFBaUI7QUFPeEIsWUFBSSxPQUFPLFFBQVE7QUFDakIsaUJBQU8sWUFBWSxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBS3JDLFdBQU8sb0JBQW9CLFNBQVUsZ0JBQWdCO0FBQ25ELFVBQUksa0JBQWtCLE9BQU8sTUFBTSxRQUFRO0FBQzNDLFVBQUksQ0FBQyxrQkFBa0IsQ0FBQztBQUFpQixlQUFPO0FBQ2hELFVBQUksVUFBUyxnQkFBZ0I7QUFDN0IsYUFBTyxTQUFVLE1BQU07QUFDckIsWUFBSSxPQUFPLFNBQVMsWUFBYSxFQUFDLFdBQVUsT0FBTyxZQUFXLGFBQWE7QUFDekUsZ0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsWUFBSSxTQUFRO0FBQ1YsY0FBSSxnQkFBZ0IsUUFBTyxNQUFNO0FBRWpDLGNBQUksa0JBQWtCLFVBQWEsT0FBTyxrQkFBa0IsVUFBVTtBQUNwRSxrQkFBTSxJQUFJLE1BQU0sZ0hBQWlILE9BQU8sT0FBTyxnQkFBZ0IsNkNBQStDLE9BQU8sZ0JBQWdCO0FBQUE7QUFHdk8sY0FBSSxrQkFBa0I7QUFBTSxtQkFBTztBQUVuQyxjQUFJLE9BQU8sa0JBQWtCLFVBQVU7QUFDckMsbUJBQU87QUFBQSxjQUNMLE1BQU07QUFBQSxjQUNOLGVBQWU7QUFBQTtBQUFBO0FBSW5CLGNBQUksQ0FBQyxjQUFjLFFBQVEsT0FBTyxjQUFjLFNBQVMsVUFBVTtBQUNqRSxrQkFBTSxJQUFJLE1BQU0sK0lBQWtKLE9BQU8sZ0JBQWdCO0FBQUE7QUFHM0wsY0FBSSxDQUFDLGNBQWMsZUFBZTtBQUNoQyxrQkFBTSxJQUFJLE1BQU0sd0pBQTJKLE9BQU8sZ0JBQWdCO0FBQUE7QUFHcE0saUJBQU87QUFBQTtBQUdULFlBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsZ0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsZUFBTztBQUFBLFVBQ0wsTUFBTSxHQUFHLE9BQU8sZ0JBQWdCLE9BQU8sTUFBTSxPQUFPO0FBQUEsVUFDcEQsZUFBZTtBQUFBO0FBQUE7QUFBQTtBQUtyQixXQUFPLDZCQUE2QixXQUFZO0FBQzlDLFVBQUksaUJBQWlCLE9BQU8sTUFBTTtBQUNsQyxVQUFJLENBQUM7QUFBZ0IsZUFBTztBQUM1QixhQUFPLE9BQU8sTUFBTSxRQUFRO0FBQUE7QUFHOUIsV0FBTyx5QkFBeUIsV0FBWTtBQUMxQyxVQUFJLGdCQUFnQixPQUFPLE9BQ3ZCLGlCQUFpQixjQUFjLGdCQUMvQixjQUFjLGNBQWM7QUFFaEMsVUFBSSxrQkFBa0IsT0FBTztBQUU3QixVQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCO0FBQ3ZDO0FBQUE7QUFHRixVQUFJLGVBQWUsZ0JBQWdCLGNBQy9CLFlBQVksZ0JBQWdCO0FBRWhDLFVBQUksT0FBTyxpQkFBaUIsWUFBWTtBQUN0QyxjQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLGFBQU8sU0FBUztBQUFBLFFBQ2QsYUFBYTtBQUFBO0FBR2YsVUFBSSxlQUFlLGFBQWE7QUFFaEMsVUFBSSxDQUFFLHlCQUF3QixVQUFVO0FBQ3RDLHVCQUFlLFFBQVEsUUFBUTtBQUFBO0FBR2pDLG1CQUFhLEtBQUssU0FBVSxNQUFNO0FBQ2hDLFlBQUksQ0FBQyxNQUFNLFFBQVEsT0FBTztBQUN4QixnQkFBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixZQUFJLE9BQU8sY0FBYyxZQUFZO0FBQ25DLGdCQUFNLElBQUksTUFBTTtBQUFBO0FBSWxCLFlBQUksbUJBQW1CLE9BQU8sTUFBTTtBQUFnQjtBQUVwRCxZQUFJLENBQUMsS0FBSyxRQUFRO0FBQ2hCLGlCQUFPO0FBRVA7QUFBQTtBQUdGLGVBQU8sU0FBUztBQUFBLFVBQ2QsYUFBYTtBQUFBLFVBQ2I7QUFBQSxVQUNBO0FBQUE7QUFBQSxTQUVELE1BQU0sU0FBVSxHQUFHO0FBQ3BCLGVBQU8sYUFBYSxFQUFFO0FBQUE7QUFBQTtBQUkxQixXQUFPLGtCQUFrQixXQUFZO0FBQ25DLFVBQUksZ0JBQWdCLE9BQU8sT0FDdkIsaUJBQWlCLGNBQWMsZ0JBQy9CLE9BQU8sY0FBYztBQUN6QixVQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxRQUFRLENBQUMsS0FBSztBQUFRLGVBQU87QUFDN0QsYUFBTztBQUFBO0FBR1QsV0FBTyxnQkFBZ0IsV0FBWTtBQUNqQyxVQUFJLFVBQVUsT0FBTyxNQUFNO0FBRzNCLGFBQU8sY0FBYyxJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sS0FBSyxTQUN0RCxLQUFLLFNBQVUsR0FBRyxHQUFHO0FBQ3BCLFlBQUksSUFBSSxHQUFHO0FBQ1QsaUJBQU87QUFBQTtBQUdULFlBQUksSUFBSSxHQUFHO0FBQ1QsaUJBQU87QUFBQTtBQUdULGVBQU87QUFBQSxTQUNOLElBQUksU0FBVSxHQUFHO0FBQ2xCLGVBQU8sWUFBWTtBQUFBLFNBQ2xCLEtBQUssTUFBTTtBQUNkLGFBQU8sb0JBQW9CLElBQUksT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFNBQzVELEtBQUssU0FBVSxHQUFHLEdBQUc7QUFDcEIsWUFBSSxJQUFJLEdBQUc7QUFDVCxpQkFBTztBQUFBO0FBR1QsWUFBSSxJQUFJLEdBQUc7QUFDVCxpQkFBTztBQUFBO0FBR1QsZUFBTztBQUFBLFNBQ04sSUFBSSxTQUFVLEdBQUc7QUFDbEIsZUFBTyxZQUFZO0FBQUEsU0FDbEIsS0FBSyxNQUFNO0FBQUE7QUFHaEIsV0FBTyxxQkFBcUIsV0FBWTtBQUN0QyxVQUFJLGlCQUFpQixPQUFPLE1BQU07QUFFbEMsYUFBTztBQUVQLGFBQU8sU0FBUztBQUFBLFFBQ2QsTUFBTTtBQUFBLFFBQ04sYUFBYTtBQUFBLFFBQ2IsZ0JBQWdCO0FBQUEsU0FDZixXQUFZO0FBQ2IsWUFBSTtBQUFnQixpQkFBTywwQkFBMEI7QUFBQTtBQUFBO0FBSXpELFdBQU8sZ0JBQWdCLFdBQVk7QUFDakMsVUFBSSxRQUFRUyxnQkFBYyxJQUFJLE9BQU87QUFFckMsVUFBSSxVQUFVLENBQUMsb0JBQW9CLHFCQUFxQixrQkFBa0IsV0FBVyxnQkFBZ0IsT0FBTyxZQUFZLFlBQVkseUJBQXlCLGFBQWEsU0FBUyxXQUFXLGFBQWEsYUFBYSxrQkFBa0IsZUFBZSxhQUFhLHNCQUFzQixpQkFBaUIsaUJBQWlCLG1CQUFtQixpQkFBaUIscUJBQXFCLHNCQUFzQixxQkFBcUIsZ0JBQWdCLGtCQUFrQjtBQUVwYyxlQUFTLFFBQVEsT0FBTztBQUN0QixZQUFJLFFBQVEsU0FBUztBQUFPLGlCQUFPLE1BQU07QUFBQTtBQUczQyxhQUFPO0FBQUE7QUFHVCxXQUFPLGlCQUFpQixTQUFVLEdBQUc7QUFDbkMsVUFBSSxlQUFlLE9BQU8sT0FDdEIsVUFBVSxhQUFhLFNBQ3ZCLFdBQVcsYUFBYSxVQUN4QixVQUFVLGFBQWEsU0FDdkIsd0JBQXdCLGFBQWEsdUJBQ3JDLHFCQUFxQixhQUFhO0FBQ3RDLFVBQUksZ0JBQWdCLE9BQU8sT0FDdkIsT0FBTSxjQUFjLEtBQ3BCLFFBQU8sY0FBYztBQUN6QixVQUFJLFFBQVE7QUFFWixVQUFJLENBQUMsT0FBTztBQUVWLGdCQUFRLElBQUlDLCtCQUFZLFVBQVU7QUFBQSxVQUNoQyxTQUFTO0FBQUE7QUFHWCxlQUFPLFlBQVksY0FBYztBQUFBO0FBR25DLFVBQUksV0FBVyxNQUFNLFVBQVUsT0FBTztBQUV0QyxVQUFJLGVBQWUsU0FBUztBQUM1QixVQUFJLFFBQVEsU0FBUztBQUNyQixhQUFPLHdCQUF3QjtBQUUvQixVQUFJLFlBQVksT0FBTztBQUNyQixjQUFNLFdBQVcsTUFBTTtBQUN2QixpQkFBUyxJQUFJLE1BQU0sT0FBTztBQUFBLFVBQ3hCLEtBQUssY0FBYSxVQUFVLE1BQU0sVUFBVTtBQUMxQyxnQkFBSSxTQUFTLFVBQVU7QUFDckIscUJBQU87QUFBQTtBQUdULG1CQUFPLFFBQVEsSUFBSSxVQUFVLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFLekMsVUFBSSx1QkFBdUI7QUFDekIsWUFBSSxnQkFBZ0IsT0FBTztBQUUzQiw4QkFBc0I7QUFBQTtBQUd4QixhQUFPLFNBQVM7QUFBQSxRQUNkO0FBQUE7QUFHRixVQUFJLGFBQWEsdUJBQXNCO0FBQ3JDLFlBQUksdUJBQXVCLG9CQUFvQixVQUFVLGVBQ3JELFNBQVMscUJBQXFCLEtBQzlCLFVBQVUscUJBQXFCO0FBRW5DLGVBQU8sU0FBUztBQUFBLFVBRWQsS0FBSyxTQUFTLE9BQU8sWUFBWSxhQUFhO0FBQUEsVUFDOUMsTUFBTTtBQUFBO0FBQUE7QUFJVixVQUFJLG1CQUFtQiwyQkFBMEIsZUFBZTtBQUM5RCxlQUFPLGNBQWMsZUFBZTtBQUVwQyxlQUFPO0FBRVA7QUFBQTtBQUdGLFVBQUksZ0JBQWdCLE9BQU8sYUFBYTtBQUN0QyxZQUFJLHlCQUF5QixNQUFNLE1BQU0sR0FBRztBQUU1QyxZQUFJLGNBQWMsT0FBTyxZQUFZLEtBQUs7QUFFMUMseUJBQWlCLGNBQWMsWUFBWSxHQUFHLFNBQVM7QUFBQTtBQUd6RCxVQUFJLHdCQUF3QixNQUFNLE1BQU0sT0FBTyxhQUFhO0FBRTVELFVBQUksYUFBYSxPQUFPLFlBQVksS0FBSztBQUV6QyxVQUFJLFlBQVksY0FBYyxXQUFXO0FBQ3pDLFVBQUksaUJBQWlCLGNBQWMsV0FBVyxNQUFNO0FBQ3BELFVBQUksdUJBQXVCLGlCQUFpQixlQUFlLFNBQVMsSUFBSTtBQUV4RSxVQUFJLGFBQWEsT0FBTyxrQkFBa0IsS0FBSztBQUUvQyxVQUFJLFlBQVk7QUFDZCx5QkFBaUIsV0FBVyxHQUFHO0FBQUEsaUJBQ3RCLENBQUMsT0FBTyx1QkFBdUI7QUFDeEMsZUFBTztBQUFBO0FBUVQsVUFBSyxFQUFDLGFBQWEsVUFBVSxVQUFVLFVBQVUseUJBQ2pELFFBQU8sTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLE9BQU8sTUFBTSxnQkFBZ0IsbUJBQW1CLENBQUMsT0FBTyxNQUFNLGlCQUFpQjtBQUNySCxlQUFPO0FBRVA7QUFBQTtBQVlGLFVBQUksa0JBQWtCLFFBQVEsZ0JBQWdCLG1CQUFtQixDQUFDLEtBQUssS0FBSyxNQUFNLGVBQWUsVUFBVSxTQUFTLE9BQU8sTUFBTSxlQUFlLFVBQVUsU0FBUyxPQUFPLFFBQVc7QUFDbkwsZUFBTztBQUVQO0FBQUE7QUFRRixVQUFJLE9BQU8sTUFBTSxrQkFBa0IsUUFBUSxPQUFPLE1BQU0sZ0JBQWdCLGlCQUFpQjtBQUN2RixxQkFBYSxJQUFJLE9BQU8sR0FBRyxPQUFPLFlBQVksT0FBTyxNQUFNLGlCQUFpQixRQUFRLEtBQUssTUFBTSxNQUFNLEdBQUc7QUFDeEcsb0JBQVksY0FBYyxXQUFXO0FBRXJDLFlBQUksQ0FBQyxXQUFXO0FBQ2QsaUJBQU87QUFFUDtBQUFBO0FBR0YseUJBQWlCLE9BQU8sS0FBSyxTQUFTLEtBQUssU0FBVSxHQUFHO0FBQ3RELGlCQUFPLEVBQUUsTUFBTSxHQUFHLHVCQUF1QixPQUFPLFVBQVUsTUFBTSxHQUFHLHVCQUF1QjtBQUFBLGNBQ3RGO0FBQUE7QUFHUixVQUFJLGNBQWMsVUFBVSxNQUFNO0FBRWxDLFVBQUksQ0FBQyxnQkFBZ0I7QUFDbkI7QUFBQTtBQUdGLFVBQUksc0JBQXNCLFNBQVEsUUFBUSxVQUFTLFFBQ25ELE9BQU8sTUFBTSxtQkFBbUIsZ0JBQWdCO0FBQzlDO0FBQUE7QUFHRixhQUFPO0FBRVAsVUFBSSxnQkFBZ0IsT0FBTyxrQkFBa0I7QUFFN0MsYUFBTyxTQUFTO0FBQUEsUUFDZDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFNBQ0MsV0FBWTtBQUNiLFlBQUk7QUFDRixpQkFBTztBQUFBLGlCQUNBLEtBQVA7QUFDQSx1QkFBYSxJQUFJO0FBQUE7QUFBQTtBQUFBO0FBS3ZCLFdBQU8saUJBQWlCLFNBQVUsR0FBRztBQUNuQyxVQUFJLGdCQUFnQixPQUFPLE9BQ3ZCLHdCQUF3QixjQUFjLHVCQUN0QyxXQUFXLGNBQWM7QUFFN0IsVUFBSSx1QkFBdUI7QUFDekIsWUFBSSxnQkFBZ0IsT0FBTztBQUUzQiw4QkFBc0I7QUFBQTtBQUd4QixVQUFJLFVBQVU7QUFDWixVQUFFO0FBQ0YsaUJBQVM7QUFBQTtBQUFBO0FBSWIsV0FBTyxrQkFBa0IsU0FBVSxHQUFHO0FBQ3BDLFVBQUksS0FBSyxFQUFFO0FBRVgsVUFBSSxPQUFPLE1BQU07QUFDZixhQUFLLFNBQVM7QUFBQTtBQUdoQixVQUFJLE9BQU8sZUFBZSxjQUFjLFFBQVEsT0FBTyxZQUFZLFNBQVMsS0FBSztBQUMvRSxlQUFPO0FBQUE7QUFHVCxhQUFPO0FBQUE7QUFHVCxXQUFPLFdBQVcsU0FBVSxHQUFHO0FBQzdCLFVBQUksVUFBVSxPQUFPLE1BQU07QUFFM0IsVUFBSSxTQUFTO0FBQ1gsVUFBRTtBQUNGLGdCQUFRO0FBQUE7QUFHVixVQUFJLE9BQU8sZ0JBQWdCLElBQUk7QUFDN0I7QUFBQTtBQUdGLGFBQU87QUFBQTtBQUdULFdBQU8sVUFBVSxTQUFVLEdBQUc7QUFDNUIsVUFBSSxTQUFTLE9BQU8sTUFBTTtBQUUxQixVQUFJLFFBQVE7QUFDVixVQUFFO0FBQ0YsZUFBTztBQUFBO0FBR1QsVUFBSSxPQUFPLGdCQUFnQixJQUFJO0FBQzdCO0FBQUE7QUFHRixhQUFPO0FBQUE7QUFHVCxXQUFPLG1CQUFtQixXQUFZO0FBQ3BDLGFBQU87QUFBQTtBQUdULFdBQU8sNEJBQTRCLFNBQVUsTUFBTTtBQUNqRCxVQUFJLG9CQUFvQixPQUFPLE1BQU07QUFDckMsVUFBSSxpQkFBaUIsT0FBTyxNQUFNO0FBRWxDLFVBQUksbUJBQW1CO0FBQ3JCLFlBQUksT0FBTyxzQkFBc0IsWUFBWTtBQUMzQyw0QkFBa0I7QUFBQSxZQUNoQjtBQUFBLFlBQ0E7QUFBQTtBQUFBLGVBRUc7QUFDTCxnQkFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFLdEIsV0FBTyxrQkFBa0IsU0FBVSxNQUFNO0FBQ3ZDLFVBQUksZUFBZSxPQUFPLE1BQU07QUFDaEMsVUFBSSxDQUFDO0FBQWM7QUFFbkIsVUFBSSxpQkFBaUIsTUFBTTtBQUN6Qiw0QkFBb0IsT0FBTyxhQUFhO0FBQ3hDO0FBQUE7QUFHRixVQUFJLE9BQU8saUJBQWlCLGNBQWMsYUFBYSxXQUFXLEdBQUc7QUFDbkUsY0FBTSxJQUFJLE1BQU07QUFBQTtBQUdsQixtQkFBYSxPQUFPLGFBQWE7QUFBQTtBQUduQyxXQUFPLHNCQUFzQixXQUFZO0FBQ3ZDLFVBQUksZ0JBQWdCLE9BQU8sT0FDdkIsY0FBYyxjQUFjLGFBQzVCLGlCQUFpQixjQUFjO0FBRW5DLFVBQUksaUJBQWlCLE9BQU87QUFFNUIsYUFBTyxDQUFDLENBQUcsaUJBQWUsbUJBQW1CO0FBQUE7QUFHL0MsV0FBTyxlQUFlLFNBQVUsS0FBSztBQUVuQyxhQUFPLE1BQU0sWUFBWSxPQUFPLE1BQU0sU0FBUztBQUMvQyxhQUFPLGNBQWM7QUFBQTtBQUd2QixXQUFPLGNBQWM7QUFDckIsV0FBTyxjQUFjO0FBQ3JCLFFBQUksZ0JBQWdCLE9BQU8sT0FDdkIsbUJBQW1CLGNBQWMsa0JBQ2pDLFdBQVcsY0FBYyxTQUN6QixTQUFTLGNBQWM7QUFDM0IsUUFBSTtBQUFRLGFBQU8sTUFBTSxRQUFRO0FBRWpDLFdBQU87QUFFUCxRQUFJLENBQUMsa0JBQWtCO0FBQ3JCLFlBQU0sSUFBSSxNQUFNO0FBQUE7QUFHbEIsUUFBSSxDQUFDLFVBQVU7QUFDYixZQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLFdBQU87QUFBQTtBQUdUSixpQkFBYSw0QkFBMkIsQ0FBQztBQUFBLElBQ3ZDLEtBQUs7QUFBQSxJQUNMLE9BQU8sNkJBQTZCO0FBQ2xDLGdCQUFVLFlBQVksS0FBSztBQUUzQixXQUFLLGVBQWUsS0FBSyxZQUFZLGlCQUFpQixTQUFTLEtBQUs7QUFDcEUsV0FBSyxlQUFlLEtBQUssWUFBWSxpQkFBaUIsU0FBUyxLQUFLO0FBQ3BFLFdBQUssZUFBZSxLQUFLLFlBQVksaUJBQWlCLFdBQVcsS0FBSztBQUFBO0FBQUEsS0FFdkU7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sNEJBQTRCLE9BQU87QUFDeEMsVUFBSSxhQUFhLE1BQU0sU0FDbkIsV0FBVyxNQUFNO0FBQ3JCLFVBQUksZUFBZSxLQUFLLE9BQ3BCLFVBQVUsYUFBYSxTQUN2QixRQUFRLGFBQWE7QUFFekIsVUFBSSxPQUFPLEtBQUssU0FBUyxLQUFLLFFBQVEsT0FBTyxLQUFLLFlBQVksS0FBSyxLQUFLO0FBQ3RFLGFBQUs7QUFBQTtBQUdQLFVBQUksYUFBYSxTQUFTLEtBQUssMEJBQTBCLE9BQU87QUFDOUQsYUFBSyxjQUFjO0FBRW5CLGFBQUs7QUFBQTtBQUFBO0FBQUEsS0FHUjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxnQ0FBZ0M7QUFDckMsV0FBSztBQUNMLGdCQUFVLFdBQVcsS0FBSztBQUUxQixXQUFLLGVBQWUsS0FBSyxZQUFZLG9CQUFvQixTQUFTLEtBQUs7QUFDdkUsV0FBSyxlQUFlLEtBQUssWUFBWSxvQkFBb0IsU0FBUyxLQUFLO0FBQ3ZFLFdBQUssZUFBZSxLQUFLLFlBQVksb0JBQW9CLFdBQVcsS0FBSztBQUFBO0FBQUEsS0FFMUU7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sa0JBQWtCO0FBQ3ZCLFVBQUksU0FBUztBQUViLFVBQUksZUFBZSxLQUFLLE9BQ3BCLFNBQVMsYUFBYSxrQkFDdEIsUUFBUSxhQUFhLE9BQ3JCLFlBQVksYUFBYSxXQUN6QixZQUFZLGFBQWEsV0FDekIsWUFBWSxhQUFhLFdBQ3pCLG9CQUFvQixhQUFhLG1CQUNqQyxxQkFBcUIsYUFBYSxvQkFDbEMsZ0JBQWdCLGFBQWEsZUFDN0IsZ0JBQWdCLGFBQWEsZUFDN0Isb0JBQW9CLGFBQWEsbUJBQ2pDLGdCQUFnQixhQUFhLGVBQzdCLGlCQUFpQixhQUFhLGdCQUM5QixxQkFBcUIsYUFBYSxvQkFDbEMsY0FBYyxhQUFhLGFBQzNCLGtCQUFrQixhQUFhLGlCQUMvQixvQkFBb0IsYUFBYSxtQkFDakMsZUFBZSxhQUFhO0FBQ2hDLFVBQUksY0FBYyxLQUFLLE9BQ25CLFFBQU8sWUFBWSxNQUNuQixPQUFNLFlBQVksS0FDbEIsY0FBYyxZQUFZLGFBQzFCLFlBQVksWUFBWSxXQUN4QixRQUFRLFlBQVksT0FDcEIsZ0JBQWdCLFlBQVk7QUFFaEMsVUFBSSxxQkFBcUIsS0FBSztBQUU5QixVQUFJLGlCQUFpQixLQUFLO0FBRTFCLFVBQUksYUFBYTtBQUNqQixVQUFJO0FBRUosVUFBSSxrQkFBa0IsV0FBVztBQUMvQiw0QkFBb0Isa0JBQWtCO0FBQ3RDLG1CQUFXLGtCQUFrQixPQUFPLEtBQUs7QUFBQSxhQUNwQztBQUNMLDRCQUFvQjtBQUNwQixtQkFBVyxNQUFNLEtBQUs7QUFBQTtBQUd4QixhQUFPQyxRQUFNLGNBQWMsT0FBTztBQUFBLFFBQ2hDLFdBQVcsT0FBTyxPQUFPLGdCQUFnQixPQUFPLGlCQUFpQixJQUFJLEtBQUssT0FBTyxzQkFBc0I7QUFBQSxRQUN2RyxPQUFPO0FBQUEsU0FDTkEsUUFBTSxjQUFjLG1CQUFtQixPQUFPLE9BQU8sSUFBSSxLQUFLLGlCQUFpQjtBQUFBLFFBQ2hGLFdBQVcsaUJBQWlCLE9BQU8sYUFBYTtBQUFBLFFBQ2hELFVBQVUsS0FBSztBQUFBLFFBQ2YsVUFBVSxLQUFLO0FBQUEsUUFDZixVQUFVLEtBQUs7QUFBQSxRQUNmLFNBQ0EsS0FBSztBQUFBLFFBQ0wsUUFBUSxLQUFLO0FBQUEsUUFDYjtBQUFBLFFBQ0E7QUFBQSxTQUNDLGNBQWMsc0JBQXNCQSxRQUFNLGNBQWMsY0FBYztBQUFBLFFBQ3ZFLFVBQVUsa0JBQWtCLEtBQUs7QUFFL0IsaUJBQU8sY0FBYztBQUFBO0FBQUEsUUFFdkIsS0FBSztBQUFBLFFBQ0wsTUFBTTtBQUFBLFFBQ04sT0FBTztBQUFBLFFBQ1AsV0FBVztBQUFBLFFBQ1g7QUFBQSxRQUNBO0FBQUEsUUFDQSxhQUFhLEtBQUs7QUFBQSxRQUNsQjtBQUFBLFNBQ0Msa0JBQWtCLGFBQWEsaUJBQWlCQSxRQUFNLGNBQWMsTUFBTTtBQUFBLFFBQzNFLFFBQVE7QUFBQSxRQUNSO0FBQUEsUUFDQSxPQUFPO0FBQUEsUUFDUCxXQUFXO0FBQUEsUUFDWDtBQUFBLFFBQ0E7QUFBQSxRQUNBLGtCQUFrQjtBQUFBLFFBQ2xCLG1CQUFtQixLQUFLO0FBQUEsUUFDeEIsVUFBVSxLQUFLO0FBQUEsUUFDZixnQkFBZ0IsS0FBSztBQUFBLFVBQ25CLGVBQWVBLFFBQU0sY0FBYyxPQUFPO0FBQUEsUUFDNUMsV0FBVyxlQUFlLE9BQU8sbUJBQW1CLE9BQU8saUNBQWlDLHNDQUFzQyxLQUFLLE9BQU8sbUJBQW1CO0FBQUEsUUFDakssT0FBTztBQUFBLFNBQ05BLFFBQU0sY0FBYyxRQUFRO0FBQUEsUUFDN0IsTUFBTTtBQUFBO0FBQUE7QUFBQSxNQUdSLENBQUM7QUFBQSxJQUNILEtBQUs7QUFBQSxJQUNMLE9BQU8sa0NBQWtDLE9BQU87QUFDOUMsVUFBSSxRQUFRLE1BQU07QUFDbEIsVUFBSSxVQUFVLFFBQVEsVUFBVTtBQUFXLGVBQU87QUFDbEQsYUFBTztBQUFBLFFBQ0w7QUFBQTtBQUFBO0FBQUE7QUFLTixTQUFPO0FBQUEsRUFDUEEsUUFBTTtBQUVSLDBCQUEwQixlQUFlO0FBQUEsRUFDdkMsb0JBQW9CO0FBQUEsRUFDcEIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsbUJBQW1CO0FBQUEsRUFDbkIsY0FBYztBQUFBLEVBQ2QsbUJBQW1CO0FBQUEsRUFDbkIsY0FBYztBQUFBO01Ddi9DSCxXQUFXLENBQUMsZ0JBQXdCO1FBQ3pDLEVBQUMsU0FBUSxZQUFZO1FBQ3JCLG9CQUFvQixZQUFZO1FBQ2hDLFlBQVc7T0FFWixRQUFRLENBQUMsU0FBZ0I7UUFDeEIsUUFBTyxLQUFJLGNBQWMsU0FBUyxvQkFBb0I7Z0JBQy9DLEtBQUs7QUFBQSxRQUNaLE1BQU07QUFBQSxRQUNOLE1BQU07QUFBQTtBQUFBO0FBQUE7U0FLTDtBQUFBOztNQ2RJLGlCQUFpQixDQUFDLGFBQXFCO1FBQzVDLEVBQUMsY0FBTyxrQkFBa0I7UUFFMUIsZ0JBQWdCLEtBQUksTUFBTTtRQUUxQixRQUFRO01BRVY7Z0JBRVUsUUFBUSxDQUFDLFNBQXdCO1FBQ3pDLGFBQWEsS0FBSztvQkFDTjtZQUNSLG9CQUFvQixZQUFZO1VBRXBDLGdCQUFnQmhDLDBCQUNWLGNBQWMsUUFDbEIsS0FBSyxjQUFjLFNBQ25CLEtBQUssY0FBYyxTQUNuQixLQUFLLGNBQWMsVUFDbkIsS0FBSyxjQUFjLFVBQ3JCLEtBQUssS0FBSyxjQUFjLFNBQVMsb0JBQ2pDO2NBQ00sS0FBSztBQUFBLFVBQ1QsTUFBTSxLQUFLO0FBQUEsVUFDWCxNQUFNLEtBQUs7QUFBQSxVQUNYO0FBQUE7QUFBQTtBQUFBLGVBR0ssU0FBUyxTQUFTLE1BQU07b0JBQ25CLFNBQVMsTUFBTTtZQUN2QixvQkFBb0IsWUFBWTtVQUVwQyxnQkFBZ0JBLDBCQUNWLGNBQWMsUUFDbEIsS0FBSyxjQUFjLFNBQ25CLEtBQUssY0FBYyxTQUNuQixLQUFLLGNBQWMsVUFDbkIsS0FBSyxjQUFjLFVBQ3JCLEtBQUssS0FBSyxjQUFjLFNBQVMsb0JBQ2pDO2NBQ00sS0FBSztBQUFBLFVBQ1QsTUFBTSxLQUFLO0FBQUEsVUFDWCxNQUFNLEtBQUs7QUFBQSxVQUNYO0FBQUE7QUFBQTtBQUFBO0FBQUE7U0FNRDtBQUFBO0FDSlQsTUFBTW9DLFFBQVEsQ0FBQztBQUFBLEVBQUNDLFFBQVE7QUFBQSxJQUFDQztBQUFBQSxJQUFNQztBQUFBQSxJQUFNQztBQUFBQTtBQUFBQSxNQUFzQjs7Y0FDM0MsR0FBRUQ7QUFBQUE7QUFBQUE7QUFHbEIsTUFBTUUsVUFBVSxDQUFDO0FBQUEsRUFBQ0M7QUFBQUEsTUFBd0I7Ozs7O0FBTzFDLE1BQU1DLFNBQVNDLHVDQUFXLENBQUM1QixPQUFvQjZCLFFBQThDOztRQUNyRjtBQUFBLElBQ0pDLGFBQWE7QUFBQSxNQUFDQztBQUFBQTtBQUFBQSxNQUNaQyx1Q0FBV0M7UUFDVDtBQUFBLElBQ0pDO0FBQUFBLElBQ0FDO0FBQUFBLElBQ0FDO0FBQUFBLElBQ0FDO0FBQUFBLElBQ0FDO0FBQUFBLElBQ0FDLG1CQUFtQkM7QUFBQUEsSUFDbkJDLGtCQUFrQkM7QUFBQUEsSUFDbEJDLGlCQUFpQkM7QUFBQUEsTUFDZjVDO1FBQ0U2QyxZQUFZQyxtQ0FBNEI7UUFDeENDLGNBQWNELG1DQUF3QjtRQUN0Q0UsVUFBVUM7TUFHWkM7d0NBRU0sTUFBTTtRQUNWLENBQUNMLFVBQVVNLFNBQVM7OztRQUlwQmhCLGdCQUFnQjtnQkFDUmdCLFFBQVFDLFFBQVFqQjs7O0tBRzNCO3dDQUVPLE1BQU07O1FBQ1ZKLHlCQUF5QjtVQUN2QixDQUFDYyxVQUFVTSxTQUFTOzs7WUFJbEI7QUFBQSxRQUFDRTtBQUFBQSxRQUFzQkM7QUFBQUEsVUFBc0JDLFFBQVFDLElBQUksQ0FBQyx3QkFBd0I7a0JBRTVFTCxVQUFVLElBQUlNLFNBQVNaLFVBQVVNLFNBQVM7QUFBQSxRQUNwRE8sVUFBVTtBQUFBLFFBQ1ZDLGdCQUFnQk47QUFBQUEsUUFDaEJPLGNBQWNOO0FBQUFBO2tCQUdKSCxRQUFRVSxVQUFVLENBQUNDLFNBQVNDLFVBQVU7Z0JBQ3hDQyxJQUFJO0FBQUEsVUFDVlgsc0JBQXNCUztBQUFBQSxVQUN0QlIsb0JBQW9CUztBQUFBQTtBQUFBQTthQUlqQixNQUFNOzsyQkFDQ1osZ0NBQVNjO0FBQUFBO0FBQUFBLFdBRWxCO3lCQUNPZCxnQ0FBU2M7a0JBQ1RkLFVBQVU7Y0FDZGUsT0FBTyxDQUFDLHdCQUF3QjtBQUFBO0FBQUEsS0FFekMsQ0FBQ25DO3dDQUVNLE1BQU07O1FBQ1ZjLFVBQVVNLFNBQVM7Z0JBQ1hBLFFBQVFnQixNQUFNQyxTQUFTO2dCQUN2QmpCLFFBQVFnQixNQUFNQywyQkFBb0JqQixRQUFRa0IsOEJBQWdCLEtBQUs7QUFBQTtBQUFBLEtBRTFFLENBQUN4QixnQkFBVU0sWUFBVk4sbUJBQW1CTztrREFHckJ2QixLQUNBO0lBQ0V5QyxTQUFTekIsVUFBVU07QUFBQUEsSUFDbkJvQixPQUFPLE1BQU07O3VCQUNEcEIsZ0NBQVNvQjtBQUFBQTtBQUFBQSxJQUVyQkMsWUFBWSxDQUFDQyxZQUFvQjtVQUMzQixDQUFDNUIsVUFBVU0sU0FBUzs7O1lBSWxCdUIsWUFBWTdCLFVBQVVNLFFBQVFDO2dCQUMxQkQsUUFBUUMsUUFDaEJzQixVQUFVQyxNQUFNLEdBQUc5QixVQUFVTSxRQUFReUIsa0JBQ3JDSCxVQUNBQyxVQUFVQyxNQUFNOUIsVUFBVU0sUUFBUXlCO2tDQUNSL0IsVUFBVU0sUUFBUUM7OztJQUdoRHlCLFlBQVksQ0FBQ0MsU0FBaUI7VUFDeEJqQyxVQUFVTSxTQUFTO2tCQUNYQSxRQUFRQyxRQUFRMEI7b0NBQ0VqQyxVQUFVTSxRQUFRQzs7OztJQUlsRDJCLFlBQVksTUFBYzs7YUFDakJsQyx3QkFBVU0sWUFBVk4sb0JBQW1CTyxVQUFuQlAsYUFBNEI7QUFBQTtBQUFBLE1BR3ZDO1FBR0ltQyxzQkFBc0IsQ0FBQ0MsVUFBK0M7UUFDdEUsQ0FBQ3BDLFVBQVVNLFNBQVM7OztVQUlsQjtBQUFBLE1BQUMrQjtBQUFBQSxRQUFlQyxTQUFTQyxXQUFXQyxnQkFBZ0JDO1FBRXRETCxNQUFNTSxtQkFBbUIsS0FBSztZQUMxQmIsWUFBWTdCLFVBQVVNLFFBQVFDO1VBQ2hDb0M7VUFDQXRDLGdCQUFnQixRQUFRQSxnQkFBZ0J1QyxRQUFXO3dCQUNyQ3ZDLFlBQVl3QztBQUFBQSxhQUN2Qjt3QkFDVztBQUFBO1VBRWRDLGdCQUFnQjlDLFVBQVVNLFFBQVF5QjtlQUM3QmdCLElBQUksR0FBR0EsSUFBSWxCLFVBQVVnQixRQUFRRSxLQUFLO1lBQ3JDbEIsVUFBVWlCLG1CQUFtQixLQUFLOzs7O2dCQUs5QnhDLFFBQVFDLFFBRWhCc0IsVUFBVUMsTUFBTSxHQUFHOUIsVUFBVU0sUUFBUXlCLGlCQUFpQlksaUJBQ3REUCxNQUFNWSxLQUFLdEUsT0FDWG1ELFVBQVVDLE1BQU1nQjtrQ0FDVTlDLFVBQVVNLFFBQVFDOztlQUVyQzZCLE1BQU1NLG1CQUFtQixNQUFNO1lBQ2xDTyxXQUFXWixZQUFZYSxxQkFBcUJkLE1BQU1ZLEtBQUtyRSxNQUFNeUQsTUFBTVksS0FBS3JFLEtBQUt3RSxNQUFNLElBQUk7WUFFdkZ0QixZQUFZN0IsVUFBVU0sUUFBUUM7VUFDaENvQztVQUNBdEMsZ0JBQWdCLFFBQVFBLGdCQUFnQnVDLFFBQVc7WUFDakRLLFNBQVNHLFNBQVMsT0FBTzswQkFDWC9DLFlBQVl3QyxTQUFTO0FBQUEsbUJBQzVCVCxNQUFNWSxLQUFLckUsS0FBSzBFLGNBQWMsTUFBTTswQkFDN0JoRCxZQUFZd0MsU0FBUztBQUFBLGVBQ2hDOzBCQUNXeEMsWUFBWXdDLFNBQVM7QUFBQTtBQUFBLGFBRWxDO3dCQUNXO0FBQUE7VUFFZEMsZ0JBQWdCOUMsVUFBVU0sUUFBUXlCO2VBQzdCZ0IsSUFBSSxHQUFHQSxJQUFJbEIsVUFBVWdCLFFBQVFFLEtBQUs7WUFDckNsQixVQUFVaUIsbUJBQW1CLEtBQUs7Ozs7Z0JBSzlCeEMsUUFBUUMsUUFFaEJzQixVQUFVQyxNQUFNLEdBQUc5QixVQUFVTSxRQUFReUIsaUJBQWlCWSxpQkFDdERNLFdBQ0FwQixVQUFVQyxNQUFNZ0I7a0NBQ1U5QyxVQUFVTSxRQUFRQzs7OztRQUs1QytDLG9CQUFvQnpHLHdDQUFZLE1BQU07O2dDQUNkbUQsd0JBQVVNLFlBQVZOLG9CQUFtQk8sVUFBbkJQLGFBQTRCOztLQUV2RDtRQUVHdUQsc0JBQXNCMUcsd0NBQVksQ0FBQ3VGLFVBQW9EO1VBQ3JGb0I7UUFFRnBCLE1BQU1xQixTQUFTLFNBQVM7VUFDdEJyQixNQUFNc0IsV0FBV3RCLE1BQU11QixTQUFTOzs7OztLQUtyQztRQUVHQyw4QkFBOEIvRyx3Q0FBWSxNQUFNOztRQUNoRCxDQUFDbUQsVUFBVU0sU0FBUzs7O2NBSWRBLFFBQVFDLFFBQVFzRDtrQ0FFSTdELFVBQVVNLFFBQVFDO2NBQ3RDRCxRQUFRQyxRQUFROzt1QkFJZEQsZ0NBQVN3RDtBQUFBQSxLQUNwQjtRQUVHQyw2QkFBNkJsSCx3Q0FBWSxNQUFNOztLQUVsRDtRQUVHZ0gseUJBQXdCLE1BQWM7O1dBQ25DbkQsZUFBUUMsSUFBSSxDQUFDLHVCQUF1QnFELHVCQUFwQ3RELGFBQTBEO0FBQUE7UUFHN0R1RCxtQkFBbUIsTUFBYztRQUNqQyxDQUFDakUsVUFBVU0sU0FBUzs7O2NBSWRBLFFBQVFDLFFBQVFzRDtXQUtuQjdELFVBQVVNLFFBQVFDO0FBQUFBOztJQUlwQixXQUFXLDJCQUEyQmxCO0FBQUFBLG1DQUN4QztNQUNDO01BQ0EsV0FBVTtBQUFBLE1BQ1Ysa0JBQWtCVDtBQUFBQSxNQUNsQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsTUFHcEIsS0FBTXNGLFNBQVE7QUFBQTtBQUFBLE1BR2QsT0FBT0Q7QUFBQUEsTUFDUCxVQUFXRSxjQUFhO2tCQUNaN0QsVUFBVTZEO0FBQUFBO0FBQUFBLE1BRXRCLFNBQVNiO0FBQUFBLE1BQ1QsV0FBV0M7QUFBQUEsTUFDWCxPQUFPO0FBQUEsUUFDTGEsV0FBVztBQUFBO0FBQUEsTUFFYixlQUFlO0FBQUEsUUFDYkMsVUFBVTtBQUFBLFFBQ1ZDLFdBQVc7QUFBQSxRQUNYQyxXQUFXO0FBQUE7QUFBQSxNQUViLFNBQVM7QUFBQSxNQUNULGdCQUFnQnBDO0FBQUFBLE1BQ2hCLGNBQWM7QUFBQSxNQUNkLFNBQVM7QUFBQSxhQUNGO0FBQUEsVUFDSHFDLGNBQWVDLFdBQVU7MEJBQ1RBO21CQUNQQyxTQUFTRCxPQUFPRSxJQUFJLENBQUM7QUFBQSxjQUFDbEc7QUFBQUEsY0FBTUM7QUFBQUE7Y0FBWUQ7QUFBQUEsY0FBTUM7QUFBQUE7QUFBQUE7QUFBQUEsVUFHdkRrRyxXQUFXckc7QUFBQUEsVUFDWHNHLGlCQUFpQjtBQUFBLFVBQ2pCQyxRQUFTOUIsVUFBU0EsS0FBS3RFO0FBQUFBO0FBQUFBLGNBRW5CO0FBQUEsVUFDSjhGLGNBQWVDLFdBQVU7MEJBQ1RBO21CQUNQTSxlQUFlTixPQUNuQjNDLE1BQU0sR0FBRyxJQUNUNkMsSUFBSSxDQUFDO0FBQUEsY0FBQ2xHO0FBQUFBLGNBQU1DO0FBQUFBLGNBQU1DO0FBQUFBO2NBQVlGO0FBQUFBLGNBQU1DO0FBQUFBLGNBQU1DO0FBQUFBO0FBQUFBO0FBQUFBLFVBRy9DaUcsV0FBV3JHO0FBQUFBLFVBQ1hzRyxpQkFBaUI7QUFBQSxVQUNqQkMsUUFBUzlCLFVBQVNBLEtBQUt0RTtBQUFBQTtBQUFBQTtBQUFBQTtNQWdCeEIsV0FBVTtBQUFBO1FBQ1IsV0FBVTtBQUFBLHNDQUNaO1VBQUssTUFBTXZCLE1BQU02SCxVQUFVcEM7QUFBQUEsb0JBQVl6RixNQUFNNkg7QUFBQUE7QUFBQUE7UUFFM0MsV0FBVTtBQUFBLHVDQUNaO1VBQUssTUFBTXZGO0FBQUFBO1lBQ0YsV0FBVTtBQUFBLFlBQXdCLFNBQVNzRTtBQUFBQTs7Z0NBSXBEO1VBQUssTUFBTXZFO0FBQUFBO1lBRVIsV0FBVTtBQUFBLFlBQ1YsVUFBVSxDQUFDUSxpQkFBVU0sWUFBVk4sbUJBQW1CTztBQUFBQSxZQUM5QixTQUFTcUQ7QUFBQUEsdUJBQ1JxQjtjQUNLLFdBQVU7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0FDelc5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBK0JPLElBQUksV0FBVyxXQUFXO0FBQzdCLGFBQVcsT0FBTyxVQUFVLG1CQUFrQixJQUFHO0FBQzdDLGFBQVMsR0FBRyxJQUFJLEdBQUcsS0FBSSxVQUFVLFFBQVEsSUFBSSxJQUFHLEtBQUs7QUFDakQsVUFBSSxVQUFVO0FBQ2QsZUFBUyxNQUFLO0FBQUcsWUFBSSxPQUFPLFVBQVUsZUFBZSxLQUFLLEdBQUc7QUFBSSxhQUFFLE1BQUssRUFBRTtBQUFBO0FBRTlFLFdBQU87QUFBQTtBQUVYLFNBQU8sU0FBUyxNQUFNLE1BQU07QUFBQTtBQUd6QixnQkFBZ0IsR0FBRyxHQUFHO0FBQ3pCLE1BQUksS0FBSTtBQUNSLFdBQVMsTUFBSztBQUFHLFFBQUksT0FBTyxVQUFVLGVBQWUsS0FBSyxHQUFHLE9BQU0sRUFBRSxRQUFRLE1BQUs7QUFDOUUsU0FBRSxNQUFLLEVBQUU7QUFDYixNQUFJLEtBQUssUUFBUSxPQUFPLE9BQU8sMEJBQTBCO0FBQ3JELGFBQVMsSUFBSSxHQUFHLEtBQUksT0FBTyxzQkFBc0IsSUFBSSxJQUFJLEdBQUUsUUFBUSxLQUFLO0FBQ3BFLFVBQUksRUFBRSxRQUFRLEdBQUUsTUFBTSxLQUFLLE9BQU8sVUFBVSxxQkFBcUIsS0FBSyxHQUFHLEdBQUU7QUFDdkUsV0FBRSxHQUFFLE1BQU0sRUFBRSxHQUFFO0FBQUE7QUFFMUIsU0FBTztBQUFBO0FBaUhKLHVCQUF1QixJQUFJLE1BQU0sTUFBTTtBQUMxQyxNQUFJLFFBQVEsVUFBVSxXQUFXO0FBQUcsYUFBUyxJQUFJLEdBQUcsS0FBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLElBQUcsS0FBSztBQUNqRixVQUFJLE1BQU0sQ0FBRSxNQUFLLE9BQU87QUFDcEIsWUFBSSxDQUFDO0FBQUksZUFBSyxNQUFNLFVBQVUsTUFBTSxLQUFLLE1BQU0sR0FBRztBQUNsRCxXQUFHLEtBQUssS0FBSztBQUFBO0FBQUE7QUFHckIsU0FBTyxHQUFHLE9BQU8sTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLO0FBQUE7QUMzS3RELHFCQUFxQjtBQUNuQixTQUFPLENBQUMsQ0FBRSxRQUFPLFdBQVcsZUFBZSxPQUFPLFlBQVksT0FBTyxTQUFTO0FBQUE7QUMyQmhGLElBQUlDLDhCQUF5Qyw4QkFBY0MsOENBQWtCQztBQzhCN0UsSUFBSSx3QkFBd0I7QUFDNUIsSUFBSSxLQUFLO0FBRVQsSUFBSSxRQUFRLGtCQUFpQjtBQUMzQixTQUFPLEVBQUU7QUFBQTtBQWVYLGVBQWUsYUFBYTtBQUsxQixNQUFJLFlBQVksZUFBZ0IseUJBQXdCLFVBQVU7QUFFbEUsTUFBSSxrQkFBa0J4SSxxQ0FBUyxZQUMzQixNQUFLLGdCQUFnQixJQUNyQixRQUFRLGdCQUFnQjtBQUU1QnNJLDhCQUEwQixXQUFZO0FBQ3BDLFFBQUksUUFBTyxNQUFNO0FBT2YsWUFBTTtBQUFBO0FBQUEsS0FHUDtBQUNIRSx3Q0FBVSxXQUFZO0FBQ3BCLFFBQUksMEJBQTBCLE9BQU87QUFNbkMsOEJBQXdCO0FBQUE7QUFBQSxLQUV6QjtBQUNILFNBQU8sT0FBTSxPQUFPLE9BQU8sT0FBTTtBQUFBO0FDOUdwQiwyQkFBMkIsTUFBTTtBQUM5QyxTQUFPLFdBQVk7QUFDakIsUUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUVsRixRQUFJLFFBQVEsUUFBUSxRQUFRLE9BQU8sUUFBUSxTQUFTLEtBQUs7QUFDekQsUUFBSSxVQUFTLEtBQUssUUFBUSxVQUFVLEtBQUssUUFBUSxLQUFLO0FBQ3RELFdBQU87QUFBQTtBQUFBO0FDTkkseUJBQXlCLE1BQU07QUFDNUMsU0FBTyxTQUFVLFlBQVksY0FBYztBQUN6QyxRQUFJLFVBQVUsZ0JBQWdCO0FBQzlCLFFBQUksVUFBVSxRQUFRLFVBQVUsT0FBTyxRQUFRLFdBQVc7QUFDMUQsUUFBSTtBQUVKLFFBQUksWUFBWSxnQkFBZ0IsS0FBSyxrQkFBa0I7QUFDckQsVUFBSSxlQUFlLEtBQUssMEJBQTBCLEtBQUs7QUFDdkQsVUFBSSxRQUFRLFFBQVEsUUFBUSxPQUFPLFFBQVEsU0FBUztBQUNwRCxvQkFBYyxLQUFLLGlCQUFpQixVQUFVLEtBQUssaUJBQWlCO0FBQUEsV0FDL0Q7QUFDTCxVQUFJLGdCQUFnQixLQUFLO0FBRXpCLFVBQUksU0FBUyxRQUFRLFFBQVEsT0FBTyxRQUFRLFNBQVMsS0FBSztBQUUxRCxvQkFBYyxLQUFLLE9BQU8sV0FBVyxLQUFLLE9BQU87QUFBQTtBQUduRCxRQUFJLFFBQVEsS0FBSyxtQkFBbUIsS0FBSyxpQkFBaUIsY0FBYztBQUV4RSxXQUFPLFlBQVk7QUFBQTtBQUFBO0FDcEJSLDZCQUE2QixNQUFNO0FBQ2hELFNBQU8sU0FBVSxRQUFRO0FBQ3ZCLFFBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsUUFBSSxjQUFjLE9BQU8sTUFBTSxLQUFLO0FBQ3BDLFFBQUksQ0FBQztBQUFhLGFBQU87QUFDekIsUUFBSSxnQkFBZ0IsWUFBWTtBQUNoQyxRQUFJLGNBQWMsT0FBTyxNQUFNLEtBQUs7QUFDcEMsUUFBSSxDQUFDO0FBQWEsYUFBTztBQUN6QixRQUFJLFFBQVEsS0FBSyxnQkFBZ0IsS0FBSyxjQUFjLFlBQVksTUFBTSxZQUFZO0FBQ2xGLFlBQVEsUUFBUSxnQkFBZ0IsUUFBUSxjQUFjLFNBQVM7QUFDL0QsUUFBSSxPQUFPLE9BQU8sTUFBTSxjQUFjO0FBQ3RDLFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBO0FBQUE7QUFBQTtBQ2JTLHNCQUFzQixNQUFNO0FBQ3pDLFNBQU8sU0FBVSxRQUFRO0FBQ3ZCLFFBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsUUFBSSxRQUFRLFFBQVE7QUFDcEIsUUFBSSxlQUFlLFNBQVMsS0FBSyxjQUFjLFVBQVUsS0FBSyxjQUFjLEtBQUs7QUFDakYsUUFBSSxjQUFjLE9BQU8sTUFBTTtBQUUvQixRQUFJLENBQUMsYUFBYTtBQUNoQixhQUFPO0FBQUE7QUFHVCxRQUFJLGdCQUFnQixZQUFZO0FBQ2hDLFFBQUksZ0JBQWdCLFNBQVMsS0FBSyxjQUFjLFVBQVUsS0FBSyxjQUFjLEtBQUs7QUFDbEYsUUFBSSxNQUFNLE1BQU0sUUFBUSxpQkFBaUJDLFlBQVUsZUFBZSxTQUFVLFNBQVM7QUFDbkYsYUFBTyxRQUFRLEtBQUs7QUFBQSxTQUNqQixRQUFRLGVBQWUsU0FBVSxTQUFTO0FBQzdDLGFBQU8sUUFBUSxLQUFLO0FBQUE7QUFFdEIsUUFBSTtBQUNKLFlBQVEsS0FBSyxnQkFBZ0IsS0FBSyxjQUFjLE9BQU87QUFDdkQsWUFBUSxRQUFRLGdCQUFnQixRQUFRLGNBQWMsU0FBUztBQUMvRCxRQUFJLE9BQU8sT0FBTyxNQUFNLGNBQWM7QUFDdEMsV0FBTztBQUFBLE1BQ0w7QUFBQSxNQUNBO0FBQUE7QUFBQTtBQUFBO0FBS04saUJBQWlCLFFBQVEsV0FBVztBQUNsQyxXQUFTLE9BQU8sUUFBUTtBQUN0QixRQUFJLE9BQU8sZUFBZSxRQUFRLFVBQVUsT0FBTyxPQUFPO0FBQ3hELGFBQU87QUFBQTtBQUFBO0FBSVgsU0FBTztBQUFBO0FBR1QscUJBQW1CLE9BQU8sV0FBVztBQUNuQyxXQUFTLE1BQU0sR0FBRyxNQUFNLE1BQU0sUUFBUSxPQUFPO0FBQzNDLFFBQUksVUFBVSxNQUFNLE9BQU87QUFDekIsYUFBTztBQUFBO0FBQUE7QUFJWCxTQUFPO0FBQUE7QUM5Q00sc0JBQXNCLFVBQVUsTUFBTTtBQUNuRCxNQUFJLEtBQUssU0FBUyxVQUFVO0FBQzFCLFVBQU0sSUFBSSxVQUFVLFdBQVcsY0FBZSxZQUFXLElBQUksTUFBTSxNQUFNLHlCQUF5QixLQUFLLFNBQVM7QUFBQTtBQUFBO0FDOEJyRyxnQkFBZ0IsVUFBVTtBQUN2QyxlQUFhLEdBQUc7QUFDaEIsTUFBSSxTQUFTLE9BQU8sVUFBVSxTQUFTLEtBQUs7QUFFNUMsTUFBSSxvQkFBb0IsUUFBUSxPQUFPLGFBQWEsWUFBWSxXQUFXLGlCQUFpQjtBQUUxRixXQUFPLElBQUksS0FBSyxTQUFTO0FBQUEsYUFDaEIsT0FBTyxhQUFhLFlBQVksV0FBVyxtQkFBbUI7QUFDdkUsV0FBTyxJQUFJLEtBQUs7QUFBQSxTQUNYO0FBQ0wsUUFBSyxRQUFPLGFBQWEsWUFBWSxXQUFXLHNCQUFzQixPQUFPLFlBQVksYUFBYTtBQUVwRyxjQUFRLEtBQUs7QUFFYixjQUFRLEtBQUssSUFBSSxRQUFRO0FBQUE7QUFHM0IsV0FBTyxJQUFJLEtBQUs7QUFBQTtBQUFBO0FDakRMLG1CQUFtQixhQUFhO0FBQzdDLE1BQUksZ0JBQWdCLFFBQVEsZ0JBQWdCLFFBQVEsZ0JBQWdCLE9BQU87QUFDekUsV0FBTztBQUFBO0FBR1QsTUFBSSxTQUFTLE9BQU87QUFFcEIsTUFBSSxNQUFNLFNBQVM7QUFDakIsV0FBTztBQUFBO0FBR1QsU0FBTyxTQUFTLElBQUksS0FBSyxLQUFLLFVBQVUsS0FBSyxNQUFNO0FBQUE7QUNOdEMsd0JBQXdCLFdBQVcsY0FBYztBQUM5RCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxVQUFVLGdCQUFnQjtBQUM5QixNQUFJLFVBQVMsUUFBUTtBQUNyQixNQUFJLHFCQUFxQixXQUFVLFFBQU8sV0FBVyxRQUFPLFFBQVE7QUFDcEUsTUFBSSxzQkFBc0Isc0JBQXNCLE9BQU8sSUFBSSxVQUFVO0FBQ3JFLE1BQUksZUFBZSxRQUFRLGdCQUFnQixPQUFPLHNCQUFzQixVQUFVLFFBQVE7QUFFMUYsTUFBSSxDQUFFLGlCQUFnQixLQUFLLGdCQUFnQixJQUFJO0FBQzdDLFVBQU0sSUFBSSxXQUFXO0FBQUE7QUFHdkIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxNQUFNLEtBQUs7QUFDZixNQUFJLE9BQVEsT0FBTSxlQUFlLElBQUksS0FBSyxNQUFNO0FBQ2hELE9BQUssV0FBVyxLQUFLLGVBQWU7QUFDcEMsT0FBSyxZQUFZLEdBQUcsR0FBRyxHQUFHO0FBQzFCLFNBQU87QUFBQTtBQ0lNLGlCQUFpQixXQUFXLGFBQWE7QUFDdEQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksU0FBUyxVQUFVO0FBRXZCLE1BQUksTUFBTSxTQUFTO0FBQ2pCLFdBQU8sSUFBSSxLQUFLO0FBQUE7QUFHbEIsTUFBSSxDQUFDLFFBQVE7QUFFWCxXQUFPO0FBQUE7QUFHVCxPQUFLLFFBQVEsS0FBSyxZQUFZO0FBQzlCLFNBQU87QUFBQTtBQ2ZNLG1CQUFtQixXQUFXLGFBQWE7QUFDeEQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksU0FBUyxVQUFVO0FBRXZCLE1BQUksTUFBTSxTQUFTO0FBQ2pCLFdBQU8sSUFBSSxLQUFLO0FBQUE7QUFHbEIsTUFBSSxDQUFDLFFBQVE7QUFFWCxXQUFPO0FBQUE7QUFHVCxNQUFJLGFBQWEsS0FBSztBQVN0QixNQUFJLG9CQUFvQixJQUFJLEtBQUssS0FBSztBQUN0QyxvQkFBa0IsU0FBUyxLQUFLLGFBQWEsU0FBUyxHQUFHO0FBQ3pELE1BQUksY0FBYyxrQkFBa0I7QUFFcEMsTUFBSSxjQUFjLGFBQWE7QUFHN0IsV0FBTztBQUFBLFNBQ0Y7QUFRTCxTQUFLLFlBQVksa0JBQWtCLGVBQWUsa0JBQWtCLFlBQVk7QUFDaEYsV0FBTztBQUFBO0FBQUE7QUN4Q0kseUJBQXlCLFdBQVcsYUFBYTtBQUM5RCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxZQUFZLE9BQU8sV0FBVztBQUNsQyxNQUFJLFNBQVMsVUFBVTtBQUN2QixTQUFPLElBQUksS0FBSyxZQUFZO0FBQUE7QUNLZixxQkFBcUIsV0FBVyxjQUFjO0FBQzNELGVBQWEsR0FBRztBQUNoQixNQUFJLFVBQVUsZ0JBQWdCO0FBQzlCLE1BQUksVUFBUyxRQUFRO0FBQ3JCLE1BQUkscUJBQXFCLFdBQVUsUUFBTyxXQUFXLFFBQU8sUUFBUTtBQUNwRSxNQUFJLHNCQUFzQixzQkFBc0IsT0FBTyxJQUFJLFVBQVU7QUFDckUsTUFBSSxlQUFlLFFBQVEsZ0JBQWdCLE9BQU8sc0JBQXNCLFVBQVUsUUFBUTtBQUUxRixNQUFJLENBQUUsaUJBQWdCLEtBQUssZ0JBQWdCLElBQUk7QUFDN0MsVUFBTSxJQUFJLFdBQVc7QUFBQTtBQUd2QixNQUFJLE9BQU8sT0FBTztBQUNsQixNQUFJLE1BQU0sS0FBSztBQUNmLE1BQUksT0FBUSxPQUFNLGVBQWUsSUFBSSxLQUFLLE1BQU07QUFDaEQsT0FBSyxRQUFRLEtBQUssWUFBWTtBQUM5QixPQUFLLFNBQVMsR0FBRyxHQUFHLEdBQUc7QUFDdkIsU0FBTztBQUFBO0FDekNNLHlDQUF5QyxNQUFNO0FBQzVELE1BQUksVUFBVSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssZUFBZSxLQUFLLFlBQVksS0FBSyxXQUFXLEtBQUssWUFBWSxLQUFLLGNBQWMsS0FBSyxjQUFjLEtBQUs7QUFDakosVUFBUSxlQUFlLEtBQUs7QUFDNUIsU0FBTyxLQUFLLFlBQVksUUFBUTtBQUFBO0FDV25CLG9CQUFvQixXQUFXO0FBQzVDLGVBQWEsR0FBRztBQUNoQixNQUFJLE9BQU8sT0FBTztBQUNsQixPQUFLLFNBQVMsR0FBRyxHQUFHLEdBQUc7QUFDdkIsU0FBTztBQUFBO0FDMUJULElBQUlDLHdCQUFzQjtBQW9DWCxrQ0FBa0MsZUFBZSxnQkFBZ0I7QUFDOUUsZUFBYSxHQUFHO0FBQ2hCLE1BQUksaUJBQWlCLFdBQVc7QUFDaEMsTUFBSSxrQkFBa0IsV0FBVztBQUNqQyxNQUFJLGdCQUFnQixlQUFlLFlBQVksZ0NBQWdDO0FBQy9FLE1BQUksaUJBQWlCLGdCQUFnQixZQUFZLGdDQUFnQztBQUlqRixTQUFPLEtBQUssTUFBTyxpQkFBZ0Isa0JBQWtCQTtBQUFBQTtBQ3RCeEMsa0JBQWtCLFdBQVcsYUFBYTtBQUN2RCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxTQUFTLFVBQVU7QUFDdkIsTUFBSSxPQUFPLFNBQVM7QUFDcEIsU0FBTyxRQUFRLFdBQVc7QUFBQTtBQ0piLGtCQUFrQixXQUFXLGFBQWE7QUFDdkQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksU0FBUyxVQUFVO0FBQ3ZCLFNBQU8sVUFBVSxXQUFXLFNBQVM7QUFBQTtBQ014QixtQkFBbUIsZUFBZSxnQkFBZ0I7QUFDL0QsZUFBYSxHQUFHO0FBQ2hCLE1BQUkscUJBQXFCLFdBQVc7QUFDcEMsTUFBSSxzQkFBc0IsV0FBVztBQUNyQyxTQUFPLG1CQUFtQixjQUFjLG9CQUFvQjtBQUFBO0FDRC9DLGdCQUFnQixPQUFPO0FBQ3BDLGVBQWEsR0FBRztBQUNoQixTQUFPLGlCQUFpQixRQUFRLE9BQU8sVUFBVSxZQUFZLE9BQU8sVUFBVSxTQUFTLEtBQUssV0FBVztBQUFBO0FDcUIxRixpQkFBaUIsV0FBVztBQUN6QyxlQUFhLEdBQUc7QUFFaEIsTUFBSSxDQUFDLE9BQU8sY0FBYyxPQUFPLGNBQWMsVUFBVTtBQUN2RCxXQUFPO0FBQUE7QUFHVCxNQUFJLE9BQU8sT0FBTztBQUNsQixTQUFPLENBQUMsTUFBTSxPQUFPO0FBQUE7QUN6Q1Isb0NBQW9DLGVBQWUsZ0JBQWdCO0FBQ2hGLGVBQWEsR0FBRztBQUNoQixNQUFJLFdBQVcsT0FBTztBQUN0QixNQUFJLFlBQVksT0FBTztBQUN2QixNQUFJLFdBQVcsU0FBUyxnQkFBZ0IsVUFBVTtBQUNsRCxNQUFJLFlBQVksU0FBUyxhQUFhLFVBQVU7QUFDaEQsU0FBTyxXQUFXLEtBQUs7QUFBQTtBQy9CekIsSUFBSUMseUJBQXVCO0FBeUNaLG1DQUFtQyxlQUFlLGdCQUFnQixjQUFjO0FBQzdGLGVBQWEsR0FBRztBQUNoQixNQUFJLGtCQUFrQixZQUFZLGVBQWU7QUFDakQsTUFBSSxtQkFBbUIsWUFBWSxnQkFBZ0I7QUFDbkQsTUFBSSxnQkFBZ0IsZ0JBQWdCLFlBQVksZ0NBQWdDO0FBQ2hGLE1BQUksaUJBQWlCLGlCQUFpQixZQUFZLGdDQUFnQztBQUlsRixTQUFPLEtBQUssTUFBTyxpQkFBZ0Isa0JBQWtCQTtBQUFBQTtBQzVCeEMsb0JBQW9CLFdBQVc7QUFDNUMsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksUUFBUSxLQUFLO0FBQ2pCLE9BQUssWUFBWSxLQUFLLGVBQWUsUUFBUSxHQUFHO0FBQ2hELE9BQUssU0FBUyxJQUFJLElBQUksSUFBSTtBQUMxQixTQUFPO0FBQUE7QUNOTSxzQkFBc0IsV0FBVztBQUM5QyxlQUFhLEdBQUc7QUFDaEIsTUFBSSxPQUFPLE9BQU87QUFDbEIsT0FBSyxRQUFRO0FBQ2IsT0FBSyxTQUFTLEdBQUcsR0FBRyxHQUFHO0FBQ3ZCLFNBQU87QUFBQTtBQ0xNLHFCQUFxQixXQUFXO0FBQzdDLGVBQWEsR0FBRztBQUNoQixNQUFJLFlBQVksT0FBTztBQUN2QixNQUFJLE9BQU8sSUFBSSxLQUFLO0FBQ3BCLE9BQUssWUFBWSxVQUFVLGVBQWUsR0FBRztBQUM3QyxPQUFLLFNBQVMsR0FBRyxHQUFHLEdBQUc7QUFDdkIsU0FBTztBQUFBO0FDSU0sbUJBQW1CLFdBQVcsY0FBYztBQUN6RCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxVQUFVLGdCQUFnQjtBQUM5QixNQUFJLFVBQVMsUUFBUTtBQUNyQixNQUFJLHFCQUFxQixXQUFVLFFBQU8sV0FBVyxRQUFPLFFBQVE7QUFDcEUsTUFBSSxzQkFBc0Isc0JBQXNCLE9BQU8sSUFBSSxVQUFVO0FBQ3JFLE1BQUksZUFBZSxRQUFRLGdCQUFnQixPQUFPLHNCQUFzQixVQUFVLFFBQVE7QUFFMUYsTUFBSSxDQUFFLGlCQUFnQixLQUFLLGdCQUFnQixJQUFJO0FBQzdDLFVBQU0sSUFBSSxXQUFXO0FBQUE7QUFHdkIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxNQUFNLEtBQUs7QUFDZixNQUFJLE9BQVEsT0FBTSxlQUFlLEtBQUssS0FBSyxJQUFLLE9BQU07QUFDdEQsT0FBSyxRQUFRLEtBQUssWUFBWTtBQUM5QixPQUFLLFNBQVMsSUFBSSxJQUFJLElBQUk7QUFDMUIsU0FBTztBQUFBO0FDcERULElBQUksdUJBQXVCO0FBQUEsRUFDekIsa0JBQWtCO0FBQUEsSUFDaEIsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBO0FBQUEsRUFFVCxVQUFVO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUE7QUFBQSxFQUVULGFBQWE7QUFBQSxFQUNiLGtCQUFrQjtBQUFBLElBQ2hCLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQTtBQUFBLEVBRVQsVUFBVTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBO0FBQUEsRUFFVCxhQUFhO0FBQUEsSUFDWCxLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUE7QUFBQSxFQUVULFFBQVE7QUFBQSxJQUNOLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQTtBQUFBLEVBRVQsT0FBTztBQUFBLElBQ0wsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBO0FBQUEsRUFFVCxhQUFhO0FBQUEsSUFDWCxLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUE7QUFBQSxFQUVULFFBQVE7QUFBQSxJQUNOLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQTtBQUFBLEVBRVQsY0FBYztBQUFBLElBQ1osS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBO0FBQUEsRUFFVCxTQUFTO0FBQUEsSUFDUCxLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUE7QUFBQSxFQUVULGFBQWE7QUFBQSxJQUNYLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQTtBQUFBLEVBRVQsUUFBUTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBO0FBQUEsRUFFVCxZQUFZO0FBQUEsSUFDVixLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUE7QUFBQSxFQUVULGNBQWM7QUFBQSxJQUNaLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQTtBQUFBO0FBSVgsSUFBSSxpQkFBaUIsU0FBVSxPQUFPLE9BQU8sU0FBUztBQUNwRCxNQUFJO0FBQ0osTUFBSSxhQUFhLHFCQUFxQjtBQUV0QyxNQUFJLE9BQU8sZUFBZSxVQUFVO0FBQ2xDLGFBQVM7QUFBQSxhQUNBLFVBQVUsR0FBRztBQUN0QixhQUFTLFdBQVc7QUFBQSxTQUNmO0FBQ0wsYUFBUyxXQUFXLE1BQU0sUUFBUSxhQUFhLE1BQU07QUFBQTtBQUd2RCxNQUFJLFlBQVksUUFBUSxZQUFZLFVBQVUsUUFBUSxXQUFXO0FBQy9ELFFBQUksUUFBUSxjQUFjLFFBQVEsYUFBYSxHQUFHO0FBQ2hELGFBQU8sUUFBUTtBQUFBLFdBQ1Y7QUFDTCxhQUFPLFNBQVM7QUFBQTtBQUFBO0FBSXBCLFNBQU87QUFBQTtBQUdULHVCQUFlO0FDdEZmLElBQUksY0FBYztBQUFBLEVBQ2hCLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQTtBQUVULElBQUksY0FBYztBQUFBLEVBQ2hCLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQTtBQUVULElBQUksa0JBQWtCO0FBQUEsRUFDcEIsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBO0FBRVQsSUFBSSxhQUFhO0FBQUEsRUFDZixNQUFNLGtCQUFrQjtBQUFBLElBQ3RCLFNBQVM7QUFBQSxJQUNULGNBQWM7QUFBQTtBQUFBLEVBRWhCLE1BQU0sa0JBQWtCO0FBQUEsSUFDdEIsU0FBUztBQUFBLElBQ1QsY0FBYztBQUFBO0FBQUEsRUFFaEIsVUFBVSxrQkFBa0I7QUFBQSxJQUMxQixTQUFTO0FBQUEsSUFDVCxjQUFjO0FBQUE7QUFBQTtBQUdsQixtQkFBZTtBQ2pDZixJQUFJLHVCQUF1QjtBQUFBLEVBQ3pCLFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQTtBQUdULElBQUksaUJBQWlCLFNBQVUsT0FBTyxPQUFPLFdBQVcsVUFBVTtBQUNoRSxTQUFPLHFCQUFxQjtBQUFBO0FBRzlCLHVCQUFlO0FDWmYsSUFBSSxZQUFZO0FBQUEsRUFDZCxRQUFRLENBQUMsS0FBSztBQUFBLEVBQ2QsYUFBYSxDQUFDLE1BQU07QUFBQSxFQUNwQixNQUFNLENBQUMsaUJBQWlCO0FBQUE7QUFFMUIsSUFBSSxnQkFBZ0I7QUFBQSxFQUNsQixRQUFRLENBQUMsS0FBSyxLQUFLLEtBQUs7QUFBQSxFQUN4QixhQUFhLENBQUMsTUFBTSxNQUFNLE1BQU07QUFBQSxFQUNoQyxNQUFNLENBQUMsZUFBZSxlQUFlLGVBQWU7QUFBQTtBQU10RCxJQUFJLGNBQWM7QUFBQSxFQUNoQixRQUFRLENBQUMsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLO0FBQUEsRUFDaEUsYUFBYSxDQUFDLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTztBQUFBLEVBQzNGLE1BQU0sQ0FBQyxXQUFXLFlBQVksU0FBUyxTQUFTLE9BQU8sUUFBUSxRQUFRLFVBQVUsYUFBYSxXQUFXLFlBQVk7QUFBQTtBQUV2SCxJQUFJLFlBQVk7QUFBQSxFQUNkLFFBQVEsQ0FBQyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSztBQUFBLEVBQ3ZDLE9BQU8sQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTTtBQUFBLEVBQzVDLGFBQWEsQ0FBQyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTztBQUFBLEVBQ3hELE1BQU0sQ0FBQyxVQUFVLFVBQVUsV0FBVyxhQUFhLFlBQVksVUFBVTtBQUFBO0FBRTNFLElBQUksa0JBQWtCO0FBQUEsRUFDcEIsUUFBUTtBQUFBLElBQ04sSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osVUFBVTtBQUFBLElBQ1YsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsT0FBTztBQUFBO0FBQUEsRUFFVCxhQUFhO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUE7QUFBQSxFQUVULE1BQU07QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQTtBQUFBO0FBR1gsSUFBSSw0QkFBNEI7QUFBQSxFQUM5QixRQUFRO0FBQUEsSUFDTixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUE7QUFBQSxFQUVULGFBQWE7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQTtBQUFBLEVBRVQsTUFBTTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osVUFBVTtBQUFBLElBQ1YsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsT0FBTztBQUFBO0FBQUE7QUFJWCxJQUFJLGdCQUFnQixTQUFVLGFBQWEsVUFBVTtBQUNuRCxNQUFJLFNBQVMsT0FBTztBQU9wQixNQUFJLFNBQVMsU0FBUztBQUV0QixNQUFJLFNBQVMsTUFBTSxTQUFTLElBQUk7QUFDOUIsWUFBUSxTQUFTO0FBQUEsV0FDVjtBQUNILGVBQU8sU0FBUztBQUFBLFdBRWI7QUFDSCxlQUFPLFNBQVM7QUFBQSxXQUViO0FBQ0gsZUFBTyxTQUFTO0FBQUE7QUFBQTtBQUl0QixTQUFPLFNBQVM7QUFBQTtBQUdsQixJQUFJLFdBQVc7QUFBQSxFQUNiO0FBQUEsRUFDQSxLQUFLLGdCQUFnQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQTtBQUFBLEVBRWhCLFNBQVMsZ0JBQWdCO0FBQUEsSUFDdkIsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCLFNBQVUsU0FBUztBQUNuQyxhQUFPLFVBQVU7QUFBQTtBQUFBO0FBQUEsRUFHckIsT0FBTyxnQkFBZ0I7QUFBQSxJQUNyQixRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUE7QUFBQSxFQUVoQixLQUFLLGdCQUFnQjtBQUFBLElBQ25CLFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQTtBQUFBLEVBRWhCLFdBQVcsZ0JBQWdCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsd0JBQXdCO0FBQUE7QUFBQTtBQUc1QixpQkFBZTtBQy9JZixJQUFJLDRCQUE0QjtBQUNoQyxJQUFJLDRCQUE0QjtBQUNoQyxJQUFJLG1CQUFtQjtBQUFBLEVBQ3JCLFFBQVE7QUFBQSxFQUNSLGFBQWE7QUFBQSxFQUNiLE1BQU07QUFBQTtBQUVSLElBQUksbUJBQW1CO0FBQUEsRUFDckIsS0FBSyxDQUFDLE9BQU87QUFBQTtBQUVmLElBQUksdUJBQXVCO0FBQUEsRUFDekIsUUFBUTtBQUFBLEVBQ1IsYUFBYTtBQUFBLEVBQ2IsTUFBTTtBQUFBO0FBRVIsSUFBSSx1QkFBdUI7QUFBQSxFQUN6QixLQUFLLENBQUMsTUFBTSxNQUFNLE1BQU07QUFBQTtBQUUxQixJQUFJLHFCQUFxQjtBQUFBLEVBQ3ZCLFFBQVE7QUFBQSxFQUNSLGFBQWE7QUFBQSxFQUNiLE1BQU07QUFBQTtBQUVSLElBQUkscUJBQXFCO0FBQUEsRUFDdkIsUUFBUSxDQUFDLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTztBQUFBLEVBQ3RGLEtBQUssQ0FBQyxRQUFRLE9BQU8sU0FBUyxRQUFRLFNBQVMsU0FBUyxTQUFTLFFBQVEsT0FBTyxPQUFPLE9BQU87QUFBQTtBQUVoRyxJQUFJLG1CQUFtQjtBQUFBLEVBQ3JCLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLGFBQWE7QUFBQSxFQUNiLE1BQU07QUFBQTtBQUVSLElBQUksbUJBQW1CO0FBQUEsRUFDckIsUUFBUSxDQUFDLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPO0FBQUEsRUFDbkQsS0FBSyxDQUFDLFFBQVEsT0FBTyxRQUFRLE9BQU8sUUFBUSxPQUFPO0FBQUE7QUFFckQsSUFBSSx5QkFBeUI7QUFBQSxFQUMzQixRQUFRO0FBQUEsRUFDUixLQUFLO0FBQUE7QUFFUCxJQUFJLHlCQUF5QjtBQUFBLEVBQzNCLEtBQUs7QUFBQSxJQUNILElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQTtBQUFBO0FBR1gsSUFBSSxRQUFRO0FBQUEsRUFDVixlQUFlLG9CQUFvQjtBQUFBLElBQ2pDLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGVBQWUsU0FBVSxPQUFPO0FBQzlCLGFBQU8sU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUFBLEVBRzNCLEtBQUssYUFBYTtBQUFBLElBQ2hCLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQ25CLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBO0FBQUEsRUFFckIsU0FBUyxhQUFhO0FBQUEsSUFDcEIsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUEsSUFDbkIsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUEsSUFDbkIsZUFBZSxTQUFVLE9BQU87QUFDOUIsYUFBTyxRQUFRO0FBQUE7QUFBQTtBQUFBLEVBR25CLE9BQU8sYUFBYTtBQUFBLElBQ2xCLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQ25CLGVBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBO0FBQUEsRUFFckIsS0FBSyxhQUFhO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUEsSUFDbkIsZUFBZTtBQUFBLElBQ2YsbUJBQW1CO0FBQUE7QUFBQSxFQUVyQixXQUFXLGFBQWE7QUFBQSxJQUN0QixlQUFlO0FBQUEsSUFDZixtQkFBbUI7QUFBQSxJQUNuQixlQUFlO0FBQUEsSUFDZixtQkFBbUI7QUFBQTtBQUFBO0FBR3ZCLGNBQWU7QUNsRmYsSUFBSSxTQUFTO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixnQkFBZ0JDO0FBQUFBLEVBQ2hCLFlBQVlDO0FBQUFBLEVBQ1osZ0JBQWdCQztBQUFBQSxFQUNoQixVQUFVQztBQUFBQSxFQUNWLE9BQU9DO0FBQUFBLEVBQ1AsU0FBUztBQUFBLElBQ1AsY0FBYztBQUFBLElBR2QsdUJBQXVCO0FBQUE7QUFBQTtBQUczQixXQUFlO0FDSEEseUJBQXlCLFdBQVcsYUFBYTtBQUM5RCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxTQUFTLFVBQVU7QUFDdkIsU0FBTyxnQkFBZ0IsV0FBVyxDQUFDO0FBQUE7QUMzQnJDLElBQUksc0JBQXNCO0FBR1gseUJBQXlCLFdBQVc7QUFDakQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksWUFBWSxLQUFLO0FBQ3JCLE9BQUssWUFBWSxHQUFHO0FBQ3BCLE9BQUssWUFBWSxHQUFHLEdBQUcsR0FBRztBQUMxQixNQUFJLHVCQUF1QixLQUFLO0FBQ2hDLE1BQUksYUFBYSxZQUFZO0FBQzdCLFNBQU8sS0FBSyxNQUFNLGFBQWEsdUJBQXVCO0FBQUE7QUNUekMsMkJBQTJCLFdBQVc7QUFDbkQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksZUFBZTtBQUNuQixNQUFJLE9BQU8sT0FBTztBQUNsQixNQUFJLE1BQU0sS0FBSztBQUNmLE1BQUksT0FBUSxPQUFNLGVBQWUsSUFBSSxLQUFLLE1BQU07QUFDaEQsT0FBSyxXQUFXLEtBQUssZUFBZTtBQUNwQyxPQUFLLFlBQVksR0FBRyxHQUFHLEdBQUc7QUFDMUIsU0FBTztBQUFBO0FDUE0sMkJBQTJCLFdBQVc7QUFDbkQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksT0FBTyxLQUFLO0FBQ2hCLE1BQUksNEJBQTRCLElBQUksS0FBSztBQUN6Qyw0QkFBMEIsZUFBZSxPQUFPLEdBQUcsR0FBRztBQUN0RCw0QkFBMEIsWUFBWSxHQUFHLEdBQUcsR0FBRztBQUMvQyxNQUFJLGtCQUFrQixrQkFBa0I7QUFDeEMsTUFBSSw0QkFBNEIsSUFBSSxLQUFLO0FBQ3pDLDRCQUEwQixlQUFlLE1BQU0sR0FBRztBQUNsRCw0QkFBMEIsWUFBWSxHQUFHLEdBQUcsR0FBRztBQUMvQyxNQUFJLGtCQUFrQixrQkFBa0I7QUFFeEMsTUFBSSxLQUFLLGFBQWEsZ0JBQWdCLFdBQVc7QUFDL0MsV0FBTyxPQUFPO0FBQUEsYUFDTCxLQUFLLGFBQWEsZ0JBQWdCLFdBQVc7QUFDdEQsV0FBTztBQUFBLFNBQ0Y7QUFDTCxXQUFPLE9BQU87QUFBQTtBQUFBO0FDbEJILCtCQUErQixXQUFXO0FBQ3ZELGVBQWEsR0FBRztBQUNoQixNQUFJLE9BQU8sa0JBQWtCO0FBQzdCLE1BQUksa0JBQWtCLElBQUksS0FBSztBQUMvQixrQkFBZ0IsZUFBZSxNQUFNLEdBQUc7QUFDeEMsa0JBQWdCLFlBQVksR0FBRyxHQUFHLEdBQUc7QUFDckMsTUFBSSxPQUFPLGtCQUFrQjtBQUM3QixTQUFPO0FBQUE7QUNSVCxJQUFJTCx5QkFBdUI7QUFHWix1QkFBdUIsV0FBVztBQUMvQyxlQUFhLEdBQUc7QUFDaEIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxPQUFPLGtCQUFrQixNQUFNLFlBQVksc0JBQXNCLE1BQU07QUFJM0UsU0FBTyxLQUFLLE1BQU0sT0FBT0EsMEJBQXdCO0FBQUE7QUNScEMsd0JBQXdCLFdBQVcsY0FBYztBQUM5RCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxPQUFPLEtBQUs7QUFDaEIsTUFBSSxVQUFVLGdCQUFnQjtBQUM5QixNQUFJLFVBQVMsUUFBUTtBQUNyQixNQUFJLDhCQUE4QixXQUFVLFFBQU8sV0FBVyxRQUFPLFFBQVE7QUFDN0UsTUFBSSwrQkFBK0IsK0JBQStCLE9BQU8sSUFBSSxVQUFVO0FBQ3ZGLE1BQUksd0JBQXdCLFFBQVEseUJBQXlCLE9BQU8sK0JBQStCLFVBQVUsUUFBUTtBQUVySCxNQUFJLENBQUUsMEJBQXlCLEtBQUsseUJBQXlCLElBQUk7QUFDL0QsVUFBTSxJQUFJLFdBQVc7QUFBQTtBQUd2QixNQUFJLHNCQUFzQixJQUFJLEtBQUs7QUFDbkMsc0JBQW9CLGVBQWUsT0FBTyxHQUFHLEdBQUc7QUFDaEQsc0JBQW9CLFlBQVksR0FBRyxHQUFHLEdBQUc7QUFDekMsTUFBSSxrQkFBa0IsZUFBZSxxQkFBcUI7QUFDMUQsTUFBSSxzQkFBc0IsSUFBSSxLQUFLO0FBQ25DLHNCQUFvQixlQUFlLE1BQU0sR0FBRztBQUM1QyxzQkFBb0IsWUFBWSxHQUFHLEdBQUcsR0FBRztBQUN6QyxNQUFJLGtCQUFrQixlQUFlLHFCQUFxQjtBQUUxRCxNQUFJLEtBQUssYUFBYSxnQkFBZ0IsV0FBVztBQUMvQyxXQUFPLE9BQU87QUFBQSxhQUNMLEtBQUssYUFBYSxnQkFBZ0IsV0FBVztBQUN0RCxXQUFPO0FBQUEsU0FDRjtBQUNMLFdBQU8sT0FBTztBQUFBO0FBQUE7QUM1QkgsNEJBQTRCLFdBQVcsY0FBYztBQUNsRSxlQUFhLEdBQUc7QUFDaEIsTUFBSSxVQUFVLGdCQUFnQjtBQUM5QixNQUFJLFVBQVMsUUFBUTtBQUNyQixNQUFJLDhCQUE4QixXQUFVLFFBQU8sV0FBVyxRQUFPLFFBQVE7QUFDN0UsTUFBSSwrQkFBK0IsK0JBQStCLE9BQU8sSUFBSSxVQUFVO0FBQ3ZGLE1BQUksd0JBQXdCLFFBQVEseUJBQXlCLE9BQU8sK0JBQStCLFVBQVUsUUFBUTtBQUNySCxNQUFJLE9BQU8sZUFBZSxXQUFXO0FBQ3JDLE1BQUksWUFBWSxJQUFJLEtBQUs7QUFDekIsWUFBVSxlQUFlLE1BQU0sR0FBRztBQUNsQyxZQUFVLFlBQVksR0FBRyxHQUFHLEdBQUc7QUFDL0IsTUFBSSxPQUFPLGVBQWUsV0FBVztBQUNyQyxTQUFPO0FBQUE7QUNkVCxJQUFJQSx5QkFBdUI7QUFHWixvQkFBb0IsV0FBVyxTQUFTO0FBQ3JELGVBQWEsR0FBRztBQUNoQixNQUFJLE9BQU8sT0FBTztBQUNsQixNQUFJLE9BQU8sZUFBZSxNQUFNLFNBQVMsWUFBWSxtQkFBbUIsTUFBTSxTQUFTO0FBSXZGLFNBQU8sS0FBSyxNQUFNLE9BQU9BLDBCQUF3QjtBQUFBO0FDZHBDLHlCQUF5QixRQUFRLGNBQWM7QUFDNUQsTUFBSSxPQUFPLFNBQVMsSUFBSSxNQUFNO0FBQzlCLE1BQUksVUFBUyxLQUFLLElBQUksUUFBUTtBQUU5QixTQUFPLFFBQU8sU0FBUyxjQUFjO0FBQ25DLGNBQVMsTUFBTTtBQUFBO0FBR2pCLFNBQU8sT0FBTztBQUFBO0FDTWhCLElBQUlNLGVBQWE7QUFBQSxFQUVmLEdBQUcsU0FBVSxNQUFNLE9BQU87QUFTeEIsUUFBSSxhQUFhLEtBQUs7QUFFdEIsUUFBSSxPQUFPLGFBQWEsSUFBSSxhQUFhLElBQUk7QUFDN0MsV0FBTyxnQkFBZ0IsVUFBVSxPQUFPLE9BQU8sTUFBTSxNQUFNLE1BQU07QUFBQTtBQUFBLEVBR25FLEdBQUcsU0FBVSxNQUFNLE9BQU87QUFDeEIsUUFBSSxRQUFRLEtBQUs7QUFDakIsV0FBTyxVQUFVLE1BQU0sT0FBTyxRQUFRLEtBQUssZ0JBQWdCLFFBQVEsR0FBRztBQUFBO0FBQUEsRUFHeEUsR0FBRyxTQUFVLE1BQU0sT0FBTztBQUN4QixXQUFPLGdCQUFnQixLQUFLLGNBQWMsTUFBTTtBQUFBO0FBQUEsRUFHbEQsR0FBRyxTQUFVLE1BQU0sT0FBTztBQUN4QixRQUFJLHFCQUFxQixLQUFLLGdCQUFnQixNQUFNLElBQUksT0FBTztBQUUvRCxZQUFRO0FBQUEsV0FDRDtBQUFBLFdBQ0E7QUFDSCxlQUFPLG1CQUFtQjtBQUFBLFdBRXZCO0FBQ0gsZUFBTztBQUFBLFdBRUo7QUFDSCxlQUFPLG1CQUFtQjtBQUFBLFdBRXZCO0FBQUE7QUFFSCxlQUFPLHVCQUF1QixPQUFPLFNBQVM7QUFBQTtBQUFBO0FBQUEsRUFJcEQsR0FBRyxTQUFVLE1BQU0sT0FBTztBQUN4QixXQUFPLGdCQUFnQixLQUFLLGdCQUFnQixNQUFNLElBQUksTUFBTTtBQUFBO0FBQUEsRUFHOUQsR0FBRyxTQUFVLE1BQU0sT0FBTztBQUN4QixXQUFPLGdCQUFnQixLQUFLLGVBQWUsTUFBTTtBQUFBO0FBQUEsRUFHbkQsR0FBRyxTQUFVLE1BQU0sT0FBTztBQUN4QixXQUFPLGdCQUFnQixLQUFLLGlCQUFpQixNQUFNO0FBQUE7QUFBQSxFQUdyRCxHQUFHLFNBQVUsTUFBTSxPQUFPO0FBQ3hCLFdBQU8sZ0JBQWdCLEtBQUssaUJBQWlCLE1BQU07QUFBQTtBQUFBLEVBR3JELEdBQUcsU0FBVSxNQUFNLE9BQU87QUFDeEIsUUFBSSxpQkFBaUIsTUFBTTtBQUMzQixRQUFJLGVBQWUsS0FBSztBQUN4QixRQUFJLG9CQUFvQixLQUFLLE1BQU0sZUFBZSxLQUFLLElBQUksSUFBSSxpQkFBaUI7QUFDaEYsV0FBTyxnQkFBZ0IsbUJBQW1CLE1BQU07QUFBQTtBQUFBO0FBR3BELG1CQUFlQTtBQzVFZixJQUFJLGdCQUFnQjtBQUFBLEVBQ2xCLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULFdBQVc7QUFBQSxFQUNYLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQTtBQWdEVCxJQUFJQSxlQUFhO0FBQUEsRUFFZixHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVU7QUFDbEMsUUFBSSxNQUFNLEtBQUssbUJBQW1CLElBQUksSUFBSTtBQUUxQyxZQUFRO0FBQUEsV0FFRDtBQUFBLFdBQ0E7QUFBQSxXQUNBO0FBQ0gsZUFBTyxVQUFTLElBQUksS0FBSztBQUFBLFVBQ3ZCLE9BQU87QUFBQTtBQUFBLFdBSU47QUFDSCxlQUFPLFVBQVMsSUFBSSxLQUFLO0FBQUEsVUFDdkIsT0FBTztBQUFBO0FBQUEsV0FJTjtBQUFBO0FBRUgsZUFBTyxVQUFTLElBQUksS0FBSztBQUFBLFVBQ3ZCLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtmLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUVsQyxRQUFJLFVBQVUsTUFBTTtBQUNsQixVQUFJLGFBQWEsS0FBSztBQUV0QixVQUFJLE9BQU8sYUFBYSxJQUFJLGFBQWEsSUFBSTtBQUM3QyxhQUFPLFVBQVMsY0FBYyxNQUFNO0FBQUEsUUFDbEMsTUFBTTtBQUFBO0FBQUE7QUFJVixXQUFPQyxhQUFnQixFQUFFLE1BQU07QUFBQTtBQUFBLEVBR2pDLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVSxTQUFTO0FBQzNDLFFBQUksaUJBQWlCLGVBQWUsTUFBTTtBQUUxQyxRQUFJLFdBQVcsaUJBQWlCLElBQUksaUJBQWlCLElBQUk7QUFFekQsUUFBSSxVQUFVLE1BQU07QUFDbEIsVUFBSSxlQUFlLFdBQVc7QUFDOUIsYUFBTyxnQkFBZ0IsY0FBYztBQUFBO0FBSXZDLFFBQUksVUFBVSxNQUFNO0FBQ2xCLGFBQU8sVUFBUyxjQUFjLFVBQVU7QUFBQSxRQUN0QyxNQUFNO0FBQUE7QUFBQTtBQUtWLFdBQU8sZ0JBQWdCLFVBQVUsTUFBTTtBQUFBO0FBQUEsRUFHekMsR0FBRyxTQUFVLE1BQU0sT0FBTztBQUN4QixRQUFJLGNBQWMsa0JBQWtCO0FBRXBDLFdBQU8sZ0JBQWdCLGFBQWEsTUFBTTtBQUFBO0FBQUEsRUFXNUMsR0FBRyxTQUFVLE1BQU0sT0FBTztBQUN4QixRQUFJLE9BQU8sS0FBSztBQUNoQixXQUFPLGdCQUFnQixNQUFNLE1BQU07QUFBQTtBQUFBLEVBR3JDLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUNsQyxRQUFJLFVBQVUsS0FBSyxLQUFNLE1BQUssZ0JBQWdCLEtBQUs7QUFFbkQsWUFBUTtBQUFBLFdBRUQ7QUFDSCxlQUFPLE9BQU87QUFBQSxXQUdYO0FBQ0gsZUFBTyxnQkFBZ0IsU0FBUztBQUFBLFdBRzdCO0FBQ0gsZUFBTyxVQUFTLGNBQWMsU0FBUztBQUFBLFVBQ3JDLE1BQU07QUFBQTtBQUFBLFdBSUw7QUFDSCxlQUFPLFVBQVMsUUFBUSxTQUFTO0FBQUEsVUFDL0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUNILGVBQU8sVUFBUyxRQUFRLFNBQVM7QUFBQSxVQUMvQixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQUE7QUFFSCxlQUFPLFVBQVMsUUFBUSxTQUFTO0FBQUEsVUFDL0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2pCLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUNsQyxRQUFJLFVBQVUsS0FBSyxLQUFNLE1BQUssZ0JBQWdCLEtBQUs7QUFFbkQsWUFBUTtBQUFBLFdBRUQ7QUFDSCxlQUFPLE9BQU87QUFBQSxXQUdYO0FBQ0gsZUFBTyxnQkFBZ0IsU0FBUztBQUFBLFdBRzdCO0FBQ0gsZUFBTyxVQUFTLGNBQWMsU0FBUztBQUFBLFVBQ3JDLE1BQU07QUFBQTtBQUFBLFdBSUw7QUFDSCxlQUFPLFVBQVMsUUFBUSxTQUFTO0FBQUEsVUFDL0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUNILGVBQU8sVUFBUyxRQUFRLFNBQVM7QUFBQSxVQUMvQixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQUE7QUFFSCxlQUFPLFVBQVMsUUFBUSxTQUFTO0FBQUEsVUFDL0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2pCLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUNsQyxRQUFJLFFBQVEsS0FBSztBQUVqQixZQUFRO0FBQUEsV0FDRDtBQUFBLFdBQ0E7QUFDSCxlQUFPQSxhQUFnQixFQUFFLE1BQU07QUFBQSxXQUc1QjtBQUNILGVBQU8sVUFBUyxjQUFjLFFBQVEsR0FBRztBQUFBLFVBQ3ZDLE1BQU07QUFBQTtBQUFBLFdBSUw7QUFDSCxlQUFPLFVBQVMsTUFBTSxPQUFPO0FBQUEsVUFDM0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUNILGVBQU8sVUFBUyxNQUFNLE9BQU87QUFBQSxVQUMzQixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQUE7QUFFSCxlQUFPLFVBQVMsTUFBTSxPQUFPO0FBQUEsVUFDM0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2pCLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUNsQyxRQUFJLFFBQVEsS0FBSztBQUVqQixZQUFRO0FBQUEsV0FFRDtBQUNILGVBQU8sT0FBTyxRQUFRO0FBQUEsV0FHbkI7QUFDSCxlQUFPLGdCQUFnQixRQUFRLEdBQUc7QUFBQSxXQUcvQjtBQUNILGVBQU8sVUFBUyxjQUFjLFFBQVEsR0FBRztBQUFBLFVBQ3ZDLE1BQU07QUFBQTtBQUFBLFdBSUw7QUFDSCxlQUFPLFVBQVMsTUFBTSxPQUFPO0FBQUEsVUFDM0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUNILGVBQU8sVUFBUyxNQUFNLE9BQU87QUFBQSxVQUMzQixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQUE7QUFFSCxlQUFPLFVBQVMsTUFBTSxPQUFPO0FBQUEsVUFDM0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2pCLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVSxTQUFTO0FBQzNDLFFBQUksT0FBTyxXQUFXLE1BQU07QUFFNUIsUUFBSSxVQUFVLE1BQU07QUFDbEIsYUFBTyxVQUFTLGNBQWMsTUFBTTtBQUFBLFFBQ2xDLE1BQU07QUFBQTtBQUFBO0FBSVYsV0FBTyxnQkFBZ0IsTUFBTSxNQUFNO0FBQUE7QUFBQSxFQUdyQyxHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVU7QUFDbEMsUUFBSSxVQUFVLGNBQWM7QUFFNUIsUUFBSSxVQUFVLE1BQU07QUFDbEIsYUFBTyxVQUFTLGNBQWMsU0FBUztBQUFBLFFBQ3JDLE1BQU07QUFBQTtBQUFBO0FBSVYsV0FBTyxnQkFBZ0IsU0FBUyxNQUFNO0FBQUE7QUFBQSxFQUd4QyxHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVU7QUFDbEMsUUFBSSxVQUFVLE1BQU07QUFDbEIsYUFBTyxVQUFTLGNBQWMsS0FBSyxjQUFjO0FBQUEsUUFDL0MsTUFBTTtBQUFBO0FBQUE7QUFJVixXQUFPQSxhQUFnQixFQUFFLE1BQU07QUFBQTtBQUFBLEVBR2pDLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUNsQyxRQUFJLFlBQVksZ0JBQWdCO0FBRWhDLFFBQUksVUFBVSxNQUFNO0FBQ2xCLGFBQU8sVUFBUyxjQUFjLFdBQVc7QUFBQSxRQUN2QyxNQUFNO0FBQUE7QUFBQTtBQUlWLFdBQU8sZ0JBQWdCLFdBQVcsTUFBTTtBQUFBO0FBQUEsRUFHMUMsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFVO0FBQ2xDLFFBQUksWUFBWSxLQUFLO0FBRXJCLFlBQVE7QUFBQSxXQUVEO0FBQUEsV0FDQTtBQUFBLFdBQ0E7QUFDSCxlQUFPLFVBQVMsSUFBSSxXQUFXO0FBQUEsVUFDN0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUNILGVBQU8sVUFBUyxJQUFJLFdBQVc7QUFBQSxVQUM3QixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQ0gsZUFBTyxVQUFTLElBQUksV0FBVztBQUFBLFVBQzdCLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBLFdBSVI7QUFBQTtBQUVILGVBQU8sVUFBUyxJQUFJLFdBQVc7QUFBQSxVQUM3QixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLakIsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFVLFNBQVM7QUFDM0MsUUFBSSxZQUFZLEtBQUs7QUFDckIsUUFBSSxpQkFBa0IsYUFBWSxRQUFRLGVBQWUsS0FBSyxLQUFLO0FBRW5FLFlBQVE7QUFBQSxXQUVEO0FBQ0gsZUFBTyxPQUFPO0FBQUEsV0FHWDtBQUNILGVBQU8sZ0JBQWdCLGdCQUFnQjtBQUFBLFdBR3BDO0FBQ0gsZUFBTyxVQUFTLGNBQWMsZ0JBQWdCO0FBQUEsVUFDNUMsTUFBTTtBQUFBO0FBQUEsV0FHTDtBQUNILGVBQU8sVUFBUyxJQUFJLFdBQVc7QUFBQSxVQUM3QixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQ0gsZUFBTyxVQUFTLElBQUksV0FBVztBQUFBLFVBQzdCLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBLFdBSVI7QUFDSCxlQUFPLFVBQVMsSUFBSSxXQUFXO0FBQUEsVUFDN0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUFBO0FBRUgsZUFBTyxVQUFTLElBQUksV0FBVztBQUFBLFVBQzdCLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtqQixHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVUsU0FBUztBQUMzQyxRQUFJLFlBQVksS0FBSztBQUNyQixRQUFJLGlCQUFrQixhQUFZLFFBQVEsZUFBZSxLQUFLLEtBQUs7QUFFbkUsWUFBUTtBQUFBLFdBRUQ7QUFDSCxlQUFPLE9BQU87QUFBQSxXQUdYO0FBQ0gsZUFBTyxnQkFBZ0IsZ0JBQWdCLE1BQU07QUFBQSxXQUcxQztBQUNILGVBQU8sVUFBUyxjQUFjLGdCQUFnQjtBQUFBLFVBQzVDLE1BQU07QUFBQTtBQUFBLFdBR0w7QUFDSCxlQUFPLFVBQVMsSUFBSSxXQUFXO0FBQUEsVUFDN0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUNILGVBQU8sVUFBUyxJQUFJLFdBQVc7QUFBQSxVQUM3QixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQ0gsZUFBTyxVQUFTLElBQUksV0FBVztBQUFBLFVBQzdCLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBLFdBSVI7QUFBQTtBQUVILGVBQU8sVUFBUyxJQUFJLFdBQVc7QUFBQSxVQUM3QixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLakIsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFVO0FBQ2xDLFFBQUksWUFBWSxLQUFLO0FBQ3JCLFFBQUksZUFBZSxjQUFjLElBQUksSUFBSTtBQUV6QyxZQUFRO0FBQUEsV0FFRDtBQUNILGVBQU8sT0FBTztBQUFBLFdBR1g7QUFDSCxlQUFPLGdCQUFnQixjQUFjLE1BQU07QUFBQSxXQUd4QztBQUNILGVBQU8sVUFBUyxjQUFjLGNBQWM7QUFBQSxVQUMxQyxNQUFNO0FBQUE7QUFBQSxXQUlMO0FBQ0gsZUFBTyxVQUFTLElBQUksV0FBVztBQUFBLFVBQzdCLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBLFdBSVI7QUFDSCxlQUFPLFVBQVMsSUFBSSxXQUFXO0FBQUEsVUFDN0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FJUjtBQUNILGVBQU8sVUFBUyxJQUFJLFdBQVc7QUFBQSxVQUM3QixPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUlSO0FBQUE7QUFFSCxlQUFPLFVBQVMsSUFBSSxXQUFXO0FBQUEsVUFDN0IsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2pCLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUNsQyxRQUFJLFFBQVEsS0FBSztBQUNqQixRQUFJLHFCQUFxQixRQUFRLE1BQU0sSUFBSSxPQUFPO0FBRWxELFlBQVE7QUFBQSxXQUNEO0FBQUEsV0FDQTtBQUNILGVBQU8sVUFBUyxVQUFVLG9CQUFvQjtBQUFBLFVBQzVDLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBLFdBR1I7QUFDSCxlQUFPLFVBQVMsVUFBVSxvQkFBb0I7QUFBQSxVQUM1QyxPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUEsV0FDUjtBQUFBLFdBRUE7QUFDSCxlQUFPLFVBQVMsVUFBVSxvQkFBb0I7QUFBQSxVQUM1QyxPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUdSO0FBQUE7QUFFSCxlQUFPLFVBQVMsVUFBVSxvQkFBb0I7QUFBQSxVQUM1QyxPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLakIsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFVO0FBQ2xDLFFBQUksUUFBUSxLQUFLO0FBQ2pCLFFBQUk7QUFFSixRQUFJLFVBQVUsSUFBSTtBQUNoQiwyQkFBcUIsY0FBYztBQUFBLGVBQzFCLFVBQVUsR0FBRztBQUN0QiwyQkFBcUIsY0FBYztBQUFBLFdBQzlCO0FBQ0wsMkJBQXFCLFFBQVEsTUFBTSxJQUFJLE9BQU87QUFBQTtBQUdoRCxZQUFRO0FBQUEsV0FDRDtBQUFBLFdBQ0E7QUFDSCxlQUFPLFVBQVMsVUFBVSxvQkFBb0I7QUFBQSxVQUM1QyxPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUE7QUFBQSxXQUdSO0FBQ0gsZUFBTyxVQUFTLFVBQVUsb0JBQW9CO0FBQUEsVUFDNUMsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBLFdBQ1I7QUFBQSxXQUVBO0FBQ0gsZUFBTyxVQUFTLFVBQVUsb0JBQW9CO0FBQUEsVUFDNUMsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FHUjtBQUFBO0FBRUgsZUFBTyxVQUFTLFVBQVUsb0JBQW9CO0FBQUEsVUFDNUMsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2pCLEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVTtBQUNsQyxRQUFJLFFBQVEsS0FBSztBQUNqQixRQUFJO0FBRUosUUFBSSxTQUFTLElBQUk7QUFDZiwyQkFBcUIsY0FBYztBQUFBLGVBQzFCLFNBQVMsSUFBSTtBQUN0QiwyQkFBcUIsY0FBYztBQUFBLGVBQzFCLFNBQVMsR0FBRztBQUNyQiwyQkFBcUIsY0FBYztBQUFBLFdBQzlCO0FBQ0wsMkJBQXFCLGNBQWM7QUFBQTtBQUdyQyxZQUFRO0FBQUEsV0FDRDtBQUFBLFdBQ0E7QUFBQSxXQUNBO0FBQ0gsZUFBTyxVQUFTLFVBQVUsb0JBQW9CO0FBQUEsVUFDNUMsT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBO0FBQUEsV0FHUjtBQUNILGVBQU8sVUFBUyxVQUFVLG9CQUFvQjtBQUFBLFVBQzVDLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBLFdBR1I7QUFBQTtBQUVILGVBQU8sVUFBUyxVQUFVLG9CQUFvQjtBQUFBLFVBQzVDLE9BQU87QUFBQSxVQUNQLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtqQixHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVU7QUFDbEMsUUFBSSxVQUFVLE1BQU07QUFDbEIsVUFBSSxRQUFRLEtBQUssZ0JBQWdCO0FBQ2pDLFVBQUksVUFBVTtBQUFHLGdCQUFRO0FBQ3pCLGFBQU8sVUFBUyxjQUFjLE9BQU87QUFBQSxRQUNuQyxNQUFNO0FBQUE7QUFBQTtBQUlWLFdBQU9BLGFBQWdCLEVBQUUsTUFBTTtBQUFBO0FBQUEsRUFHakMsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFVO0FBQ2xDLFFBQUksVUFBVSxNQUFNO0FBQ2xCLGFBQU8sVUFBUyxjQUFjLEtBQUssZUFBZTtBQUFBLFFBQ2hELE1BQU07QUFBQTtBQUFBO0FBSVYsV0FBT0EsYUFBZ0IsRUFBRSxNQUFNO0FBQUE7QUFBQSxFQUdqQyxHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVU7QUFDbEMsUUFBSSxRQUFRLEtBQUssZ0JBQWdCO0FBRWpDLFFBQUksVUFBVSxNQUFNO0FBQ2xCLGFBQU8sVUFBUyxjQUFjLE9BQU87QUFBQSxRQUNuQyxNQUFNO0FBQUE7QUFBQTtBQUlWLFdBQU8sZ0JBQWdCLE9BQU8sTUFBTTtBQUFBO0FBQUEsRUFHdEMsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFVO0FBQ2xDLFFBQUksUUFBUSxLQUFLO0FBQ2pCLFFBQUksVUFBVTtBQUFHLGNBQVE7QUFFekIsUUFBSSxVQUFVLE1BQU07QUFDbEIsYUFBTyxVQUFTLGNBQWMsT0FBTztBQUFBLFFBQ25DLE1BQU07QUFBQTtBQUFBO0FBSVYsV0FBTyxnQkFBZ0IsT0FBTyxNQUFNO0FBQUE7QUFBQSxFQUd0QyxHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVU7QUFDbEMsUUFBSSxVQUFVLE1BQU07QUFDbEIsYUFBTyxVQUFTLGNBQWMsS0FBSyxpQkFBaUI7QUFBQSxRQUNsRCxNQUFNO0FBQUE7QUFBQTtBQUlWLFdBQU9BLGFBQWdCLEVBQUUsTUFBTTtBQUFBO0FBQUEsRUFHakMsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFVO0FBQ2xDLFFBQUksVUFBVSxNQUFNO0FBQ2xCLGFBQU8sVUFBUyxjQUFjLEtBQUssaUJBQWlCO0FBQUEsUUFDbEQsTUFBTTtBQUFBO0FBQUE7QUFJVixXQUFPQSxhQUFnQixFQUFFLE1BQU07QUFBQTtBQUFBLEVBR2pDLEdBQUcsU0FBVSxNQUFNLE9BQU87QUFDeEIsV0FBT0EsYUFBZ0IsRUFBRSxNQUFNO0FBQUE7QUFBQSxFQUdqQyxHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVcsU0FBUztBQUM1QyxRQUFJLGVBQWUsUUFBUSxpQkFBaUI7QUFDNUMsUUFBSSxpQkFBaUIsYUFBYTtBQUVsQyxRQUFJLG1CQUFtQixHQUFHO0FBQ3hCLGFBQU87QUFBQTtBQUdULFlBQVE7QUFBQSxXQUVEO0FBQ0gsZUFBTyxrQ0FBa0M7QUFBQSxXQUt0QztBQUFBLFdBQ0E7QUFFSCxlQUFPLGVBQWU7QUFBQSxXQUtuQjtBQUFBLFdBQ0E7QUFBQTtBQUdILGVBQU8sZUFBZSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUEsRUFJNUMsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFXLFNBQVM7QUFDNUMsUUFBSSxlQUFlLFFBQVEsaUJBQWlCO0FBQzVDLFFBQUksaUJBQWlCLGFBQWE7QUFFbEMsWUFBUTtBQUFBLFdBRUQ7QUFDSCxlQUFPLGtDQUFrQztBQUFBLFdBS3RDO0FBQUEsV0FDQTtBQUVILGVBQU8sZUFBZTtBQUFBLFdBS25CO0FBQUEsV0FDQTtBQUFBO0FBR0gsZUFBTyxlQUFlLGdCQUFnQjtBQUFBO0FBQUE7QUFBQSxFQUk1QyxHQUFHLFNBQVUsTUFBTSxPQUFPLFdBQVcsU0FBUztBQUM1QyxRQUFJLGVBQWUsUUFBUSxpQkFBaUI7QUFDNUMsUUFBSSxpQkFBaUIsYUFBYTtBQUVsQyxZQUFRO0FBQUEsV0FFRDtBQUFBLFdBQ0E7QUFBQSxXQUNBO0FBQ0gsZUFBTyxRQUFRLG9CQUFvQixnQkFBZ0I7QUFBQSxXQUdoRDtBQUFBO0FBRUgsZUFBTyxRQUFRLGVBQWUsZ0JBQWdCO0FBQUE7QUFBQTtBQUFBLEVBSXBELEdBQUcsU0FBVSxNQUFNLE9BQU8sV0FBVyxTQUFTO0FBQzVDLFFBQUksZUFBZSxRQUFRLGlCQUFpQjtBQUM1QyxRQUFJLGlCQUFpQixhQUFhO0FBRWxDLFlBQVE7QUFBQSxXQUVEO0FBQUEsV0FDQTtBQUFBLFdBQ0E7QUFDSCxlQUFPLFFBQVEsb0JBQW9CLGdCQUFnQjtBQUFBLFdBR2hEO0FBQUE7QUFFSCxlQUFPLFFBQVEsZUFBZSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUEsRUFJcEQsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFXLFNBQVM7QUFDNUMsUUFBSSxlQUFlLFFBQVEsaUJBQWlCO0FBQzVDLFFBQUksWUFBWSxLQUFLLE1BQU0sYUFBYSxZQUFZO0FBQ3BELFdBQU8sZ0JBQWdCLFdBQVcsTUFBTTtBQUFBO0FBQUEsRUFHMUMsR0FBRyxTQUFVLE1BQU0sT0FBTyxXQUFXLFNBQVM7QUFDNUMsUUFBSSxlQUFlLFFBQVEsaUJBQWlCO0FBQzVDLFFBQUksWUFBWSxhQUFhO0FBQzdCLFdBQU8sZ0JBQWdCLFdBQVcsTUFBTTtBQUFBO0FBQUE7QUFJNUMsNkJBQTZCLFNBQVEsZ0JBQWdCO0FBQ25ELE1BQUksT0FBTyxVQUFTLElBQUksTUFBTTtBQUM5QixNQUFJLFlBQVksS0FBSyxJQUFJO0FBQ3pCLE1BQUksUUFBUSxLQUFLLE1BQU0sWUFBWTtBQUNuQyxNQUFJLFVBQVUsWUFBWTtBQUUxQixNQUFJLFlBQVksR0FBRztBQUNqQixXQUFPLE9BQU8sT0FBTztBQUFBO0FBR3ZCLE1BQUksWUFBWSxrQkFBa0I7QUFDbEMsU0FBTyxPQUFPLE9BQU8sU0FBUyxZQUFZLGdCQUFnQixTQUFTO0FBQUE7QUFHckUsMkNBQTJDLFNBQVEsZ0JBQWdCO0FBQ2pFLE1BQUksVUFBUyxPQUFPLEdBQUc7QUFDckIsUUFBSSxPQUFPLFVBQVMsSUFBSSxNQUFNO0FBQzlCLFdBQU8sT0FBTyxnQkFBZ0IsS0FBSyxJQUFJLFdBQVUsSUFBSTtBQUFBO0FBR3ZELFNBQU8sZUFBZSxTQUFRO0FBQUE7QUFHaEMsd0JBQXdCLFNBQVEsZ0JBQWdCO0FBQzlDLE1BQUksWUFBWSxrQkFBa0I7QUFDbEMsTUFBSSxPQUFPLFVBQVMsSUFBSSxNQUFNO0FBQzlCLE1BQUksWUFBWSxLQUFLLElBQUk7QUFDekIsTUFBSSxRQUFRLGdCQUFnQixLQUFLLE1BQU0sWUFBWSxLQUFLO0FBQ3hELE1BQUksVUFBVSxnQkFBZ0IsWUFBWSxJQUFJO0FBQzlDLFNBQU8sT0FBTyxRQUFRLFlBQVk7QUFBQTtBQUdwQyxtQkFBZUQ7QUNqMkJmLDJCQUEyQixTQUFTLGFBQVk7QUFDOUMsVUFBUTtBQUFBLFNBQ0Q7QUFDSCxhQUFPLFlBQVcsS0FBSztBQUFBLFFBQ3JCLE9BQU87QUFBQTtBQUFBLFNBR047QUFDSCxhQUFPLFlBQVcsS0FBSztBQUFBLFFBQ3JCLE9BQU87QUFBQTtBQUFBLFNBR047QUFDSCxhQUFPLFlBQVcsS0FBSztBQUFBLFFBQ3JCLE9BQU87QUFBQTtBQUFBLFNBR047QUFBQTtBQUVILGFBQU8sWUFBVyxLQUFLO0FBQUEsUUFDckIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUtmLDJCQUEyQixTQUFTLGFBQVk7QUFDOUMsVUFBUTtBQUFBLFNBQ0Q7QUFDSCxhQUFPLFlBQVcsS0FBSztBQUFBLFFBQ3JCLE9BQU87QUFBQTtBQUFBLFNBR047QUFDSCxhQUFPLFlBQVcsS0FBSztBQUFBLFFBQ3JCLE9BQU87QUFBQTtBQUFBLFNBR047QUFDSCxhQUFPLFlBQVcsS0FBSztBQUFBLFFBQ3JCLE9BQU87QUFBQTtBQUFBLFNBR047QUFBQTtBQUVILGFBQU8sWUFBVyxLQUFLO0FBQUEsUUFDckIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUtmLCtCQUErQixTQUFTLGFBQVk7QUFDbEQsTUFBSSxjQUFjLFFBQVEsTUFBTSxnQkFBZ0I7QUFDaEQsTUFBSSxjQUFjLFlBQVk7QUFDOUIsTUFBSSxjQUFjLFlBQVk7QUFFOUIsTUFBSSxDQUFDLGFBQWE7QUFDaEIsV0FBTyxrQkFBa0IsU0FBUztBQUFBO0FBR3BDLE1BQUk7QUFFSixVQUFRO0FBQUEsU0FDRDtBQUNILHVCQUFpQixZQUFXLFNBQVM7QUFBQSxRQUNuQyxPQUFPO0FBQUE7QUFFVDtBQUFBLFNBRUc7QUFDSCx1QkFBaUIsWUFBVyxTQUFTO0FBQUEsUUFDbkMsT0FBTztBQUFBO0FBRVQ7QUFBQSxTQUVHO0FBQ0gsdUJBQWlCLFlBQVcsU0FBUztBQUFBLFFBQ25DLE9BQU87QUFBQTtBQUVUO0FBQUEsU0FFRztBQUFBO0FBRUgsdUJBQWlCLFlBQVcsU0FBUztBQUFBLFFBQ25DLE9BQU87QUFBQTtBQUVUO0FBQUE7QUFHSixTQUFPLGVBQWUsUUFBUSxZQUFZLGtCQUFrQixhQUFhLGNBQWEsUUFBUSxZQUFZLGtCQUFrQixhQUFhO0FBQUE7QUFHM0ksSUFBSSxpQkFBaUI7QUFBQSxFQUNuQixHQUFHO0FBQUEsRUFDSCxHQUFHO0FBQUE7QUFFTCx1QkFBZTtBQy9GZixJQUFJLDJCQUEyQixDQUFDLEtBQUs7QUFDckMsSUFBSSwwQkFBMEIsQ0FBQyxNQUFNO0FBQzlCLG1DQUFtQyxPQUFPO0FBQy9DLFNBQU8seUJBQXlCLFFBQVEsV0FBVztBQUFBO0FBRTlDLGtDQUFrQyxPQUFPO0FBQzlDLFNBQU8sd0JBQXdCLFFBQVEsV0FBVztBQUFBO0FBRTdDLDZCQUE2QixPQUFPLFNBQVEsT0FBTztBQUN4RCxNQUFJLFVBQVUsUUFBUTtBQUNwQixVQUFNLElBQUksV0FBVyxxQ0FBcUMsT0FBTyxTQUFRLDBDQUEwQyxPQUFPLE9BQU87QUFBQSxhQUN4SCxVQUFVLE1BQU07QUFDekIsVUFBTSxJQUFJLFdBQVcsaUNBQWlDLE9BQU8sU0FBUSwwQ0FBMEMsT0FBTyxPQUFPO0FBQUEsYUFDcEgsVUFBVSxLQUFLO0FBQ3hCLFVBQU0sSUFBSSxXQUFXLCtCQUErQixPQUFPLFNBQVEsc0RBQXNELE9BQU8sT0FBTztBQUFBLGFBQzlILFVBQVUsTUFBTTtBQUN6QixVQUFNLElBQUksV0FBVyxpQ0FBaUMsT0FBTyxTQUFRLHNEQUFzRCxPQUFPLE9BQU87QUFBQTtBQUFBO0FDSzdJLElBQUkseUJBQXlCO0FBRzdCLElBQUksNkJBQTZCO0FBQ2pDLElBQUksc0JBQXNCO0FBQzFCLElBQUksb0JBQW9CO0FBQ3hCLElBQUksZ0NBQWdDO0FBeVRyQixnQkFBZ0IsV0FBVyxnQkFBZ0IsY0FBYztBQUN0RSxlQUFhLEdBQUc7QUFDaEIsTUFBSSxZQUFZLE9BQU87QUFDdkIsTUFBSSxVQUFVLGdCQUFnQjtBQUM5QixNQUFJLFVBQVMsUUFBUSxVQUFVRTtBQUMvQixNQUFJLDhCQUE4QixRQUFPLFdBQVcsUUFBTyxRQUFRO0FBQ25FLE1BQUksK0JBQStCLCtCQUErQixPQUFPLElBQUksVUFBVTtBQUN2RixNQUFJLHdCQUF3QixRQUFRLHlCQUF5QixPQUFPLCtCQUErQixVQUFVLFFBQVE7QUFFckgsTUFBSSxDQUFFLDBCQUF5QixLQUFLLHlCQUF5QixJQUFJO0FBQy9ELFVBQU0sSUFBSSxXQUFXO0FBQUE7QUFHdkIsTUFBSSxxQkFBcUIsUUFBTyxXQUFXLFFBQU8sUUFBUTtBQUMxRCxNQUFJLHNCQUFzQixzQkFBc0IsT0FBTyxJQUFJLFVBQVU7QUFDckUsTUFBSSxlQUFlLFFBQVEsZ0JBQWdCLE9BQU8sc0JBQXNCLFVBQVUsUUFBUTtBQUUxRixNQUFJLENBQUUsaUJBQWdCLEtBQUssZ0JBQWdCLElBQUk7QUFDN0MsVUFBTSxJQUFJLFdBQVc7QUFBQTtBQUd2QixNQUFJLENBQUMsUUFBTyxVQUFVO0FBQ3BCLFVBQU0sSUFBSSxXQUFXO0FBQUE7QUFHdkIsTUFBSSxDQUFDLFFBQU8sWUFBWTtBQUN0QixVQUFNLElBQUksV0FBVztBQUFBO0FBR3ZCLE1BQUksZUFBZSxPQUFPO0FBRTFCLE1BQUksQ0FBQyxRQUFRLGVBQWU7QUFDMUIsVUFBTSxJQUFJLFdBQVc7QUFBQTtBQU12QixNQUFJLGlCQUFpQixnQ0FBZ0M7QUFDckQsTUFBSSxVQUFVLGdCQUFnQixjQUFjO0FBQzVDLE1BQUksbUJBQW1CO0FBQUEsSUFDckI7QUFBQSxJQUNBO0FBQUEsSUFDQSxRQUFRO0FBQUEsSUFDUixlQUFlO0FBQUE7QUFFakIsTUFBSSxTQUFTLFVBQVUsTUFBTSw0QkFBNEIsSUFBSSxTQUFVLFdBQVc7QUFDaEYsUUFBSSxpQkFBaUIsVUFBVTtBQUUvQixRQUFJLG1CQUFtQixPQUFPLG1CQUFtQixLQUFLO0FBQ3BELFVBQUksZ0JBQWdCQyxpQkFBZTtBQUNuQyxhQUFPLGNBQWMsV0FBVyxRQUFPLFlBQVk7QUFBQTtBQUdyRCxXQUFPO0FBQUEsS0FDTixLQUFLLElBQUksTUFBTSx3QkFBd0IsSUFBSSxTQUFVLFdBQVc7QUFFakUsUUFBSSxjQUFjLE1BQU07QUFDdEIsYUFBTztBQUFBO0FBR1QsUUFBSSxpQkFBaUIsVUFBVTtBQUUvQixRQUFJLG1CQUFtQixLQUFLO0FBQzFCLGFBQU8sbUJBQW1CO0FBQUE7QUFHNUIsUUFBSSxZQUFZSCxhQUFXO0FBRTNCLFFBQUksV0FBVztBQUNiLFVBQUksQ0FBQyxRQUFRLCtCQUErQix5QkFBeUIsWUFBWTtBQUMvRSw0QkFBb0IsV0FBVyxnQkFBZ0I7QUFBQTtBQUdqRCxVQUFJLENBQUMsUUFBUSxnQ0FBZ0MsMEJBQTBCLFlBQVk7QUFDakYsNEJBQW9CLFdBQVcsZ0JBQWdCO0FBQUE7QUFHakQsYUFBTyxVQUFVLFNBQVMsV0FBVyxRQUFPLFVBQVU7QUFBQTtBQUd4RCxRQUFJLGVBQWUsTUFBTSxnQ0FBZ0M7QUFDdkQsWUFBTSxJQUFJLFdBQVcsbUVBQW1FLGlCQUFpQjtBQUFBO0FBRzNHLFdBQU87QUFBQSxLQUNOLEtBQUs7QUFDUixTQUFPO0FBQUE7QUFHVCw0QkFBNEIsT0FBTztBQUNqQyxTQUFPLE1BQU0sTUFBTSxxQkFBcUIsR0FBRyxRQUFRLG1CQUFtQjtBQUFBO0FDdlp6RCx3QkFBd0IsV0FBVztBQUNoRCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxPQUFPLEtBQUs7QUFDaEIsTUFBSSxhQUFhLEtBQUs7QUFDdEIsTUFBSSxrQkFBaUIsSUFBSSxLQUFLO0FBQzlCLGtCQUFlLFlBQVksTUFBTSxhQUFhLEdBQUc7QUFDakQsa0JBQWUsU0FBUyxHQUFHLEdBQUcsR0FBRztBQUNqQyxTQUFPLGdCQUFlO0FBQUE7QUNSVCxpQkFBaUIsV0FBVztBQUN6QyxlQUFhLEdBQUc7QUFDaEIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxZQUFZLEtBQUs7QUFDckIsU0FBTztBQUFBO0FDSk0scUJBQXFCLFdBQVc7QUFDN0MsZUFBYSxHQUFHO0FBQ2hCLFNBQU8sS0FBSyxNQUFNLFFBQVEsYUFBYTtBQUFBO0FDc0IxQixxQkFBcUIsV0FBVyxTQUFTO0FBQ3RELE1BQUksaUJBQWlCO0FBRXJCLGVBQWEsR0FBRztBQUNoQixNQUFJLE9BQU8sT0FBTztBQUNsQixNQUFJLE9BQU8sS0FBSztBQUNoQixNQUFJLDhCQUE4QixZQUFZLFFBQVEsWUFBWSxTQUFTLFNBQVUsbUJBQWtCLFFBQVEsWUFBWSxRQUFRLG9CQUFvQixTQUFTLFNBQVUseUJBQXdCLGdCQUFnQixhQUFhLFFBQVEsMEJBQTBCLFNBQVMsU0FBUyxzQkFBc0I7QUFDelMsTUFBSSwrQkFBK0IsK0JBQStCLE9BQU8sSUFBSSxVQUFVO0FBQ3ZGLE1BQUksd0JBQXlCLGFBQVksUUFBUSxZQUFZLFNBQVMsU0FBUyxRQUFRLDBCQUEwQixPQUFPLCtCQUErQixVQUFVLFFBQVE7QUFFekssTUFBSSxDQUFFLDBCQUF5QixLQUFLLHlCQUF5QixJQUFJO0FBQy9ELFVBQU0sSUFBSSxXQUFXO0FBQUE7QUFHdkIsTUFBSSxzQkFBc0IsSUFBSSxLQUFLO0FBQ25DLHNCQUFvQixZQUFZLE9BQU8sR0FBRyxHQUFHO0FBQzdDLHNCQUFvQixTQUFTLEdBQUcsR0FBRyxHQUFHO0FBQ3RDLE1BQUksa0JBQWtCLFlBQVkscUJBQXFCO0FBQ3ZELE1BQUksc0JBQXNCLElBQUksS0FBSztBQUNuQyxzQkFBb0IsWUFBWSxNQUFNLEdBQUc7QUFDekMsc0JBQW9CLFNBQVMsR0FBRyxHQUFHLEdBQUc7QUFDdEMsTUFBSSxrQkFBa0IsWUFBWSxxQkFBcUI7QUFFdkQsTUFBSSxLQUFLLGFBQWEsZ0JBQWdCLFdBQVc7QUFDL0MsV0FBTyxPQUFPO0FBQUEsYUFDTCxLQUFLLGFBQWEsZ0JBQWdCLFdBQVc7QUFDdEQsV0FBTztBQUFBLFNBQ0Y7QUFDTCxXQUFPLE9BQU87QUFBQTtBQUFBO0FDNUJILHlCQUF5QixXQUFXLGNBQWM7QUFDL0QsZUFBYSxHQUFHO0FBQ2hCLE1BQUksVUFBVSxnQkFBZ0I7QUFDOUIsTUFBSSxVQUFTLFFBQVE7QUFDckIsTUFBSSw4QkFBOEIsV0FBVSxRQUFPLFdBQVcsUUFBTyxRQUFRO0FBQzdFLE1BQUksK0JBQStCLCtCQUErQixPQUFPLElBQUksVUFBVTtBQUN2RixNQUFJLHdCQUF3QixRQUFRLHlCQUF5QixPQUFPLCtCQUErQixVQUFVLFFBQVE7QUFDckgsTUFBSSxPQUFPLFlBQVksV0FBVztBQUNsQyxNQUFJLFlBQVksSUFBSSxLQUFLO0FBQ3pCLFlBQVUsWUFBWSxNQUFNLEdBQUc7QUFDL0IsWUFBVSxTQUFTLEdBQUcsR0FBRyxHQUFHO0FBQzVCLE1BQUksT0FBTyxZQUFZLFdBQVc7QUFDbEMsU0FBTztBQUFBO0FDeERULElBQUksdUJBQXVCO0FBNENaLGlCQUFpQixXQUFXLFNBQVM7QUFDbEQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksT0FBTyxZQUFZLE1BQU0sU0FBUyxZQUFZLGdCQUFnQixNQUFNLFNBQVM7QUFJakYsU0FBTyxLQUFLLE1BQU0sT0FBTyx3QkFBd0I7QUFBQTtBQzlCcEMsd0JBQXdCLFdBQVc7QUFDaEQsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksUUFBUSxLQUFLO0FBQ2pCLE9BQUssWUFBWSxLQUFLLGVBQWUsUUFBUSxHQUFHO0FBQ2hELE9BQUssU0FBUyxHQUFHLEdBQUcsR0FBRztBQUN2QixTQUFPO0FBQUE7QUNLTSx5QkFBeUIsTUFBTSxTQUFTO0FBQ3JELGVBQWEsR0FBRztBQUNoQixTQUFPLDBCQUEwQixlQUFlLE9BQU8sYUFBYSxPQUFPLFdBQVc7QUFBQTtBQ2J6RSxpQkFBaUIsV0FBVyxvQkFBb0I7QUFDN0QsZUFBYSxHQUFHO0FBQ2hCLE1BQUksT0FBTyxPQUFPO0FBQ2xCLE1BQUksZ0JBQWdCLE9BQU87QUFDM0IsU0FBTyxLQUFLLFlBQVksY0FBYztBQUFBO0FDSnpCLGtCQUFrQixXQUFXLG9CQUFvQjtBQUM5RCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxnQkFBZ0IsT0FBTztBQUMzQixTQUFPLEtBQUssWUFBWSxjQUFjO0FBQUE7QUNDekIscUJBQXFCLGVBQWUsZ0JBQWdCO0FBQ2pFLGVBQWEsR0FBRztBQUNoQixNQUFJLFdBQVcsT0FBTztBQUN0QixNQUFJLFlBQVksT0FBTztBQUN2QixTQUFPLFNBQVMsa0JBQWtCLFVBQVUsaUJBQWlCLFNBQVMsZUFBZSxVQUFVO0FBQUE7QUNUbEYsb0JBQW9CLGVBQWUsZ0JBQWdCO0FBQ2hFLGVBQWEsR0FBRztBQUNoQixNQUFJLFdBQVcsT0FBTztBQUN0QixNQUFJLFlBQVksT0FBTztBQUN2QixTQUFPLFNBQVMsa0JBQWtCLFVBQVU7QUFBQTtBQ0YvQixrQkFBa0IsV0FBVyxZQUFZO0FBQ3RELGVBQWEsR0FBRztBQUNoQixNQUFJLE9BQU8sT0FBTztBQUNsQixNQUFJLFFBQVEsVUFBVTtBQUN0QixNQUFJLE9BQU8sS0FBSztBQUNoQixNQUFJLE1BQU0sS0FBSztBQUNmLE1BQUksdUJBQXVCLElBQUksS0FBSztBQUNwQyx1QkFBcUIsWUFBWSxNQUFNLE9BQU87QUFDOUMsdUJBQXFCLFNBQVMsR0FBRyxHQUFHLEdBQUc7QUFDdkMsTUFBSSxjQUFjLGVBQWU7QUFHakMsT0FBSyxTQUFTLE9BQU8sS0FBSyxJQUFJLEtBQUs7QUFDbkMsU0FBTztBQUFBO0FDZE0saUJBQWlCLFdBQVcsV0FBVztBQUNwRCxlQUFhLEdBQUc7QUFDaEIsTUFBSSxPQUFPLE9BQU87QUFDbEIsTUFBSSxPQUFPLFVBQVU7QUFFckIsTUFBSSxNQUFNLEtBQUssWUFBWTtBQUN6QixXQUFPLElBQUksS0FBSztBQUFBO0FBR2xCLE9BQUssWUFBWTtBQUNqQixTQUFPO0FBQUE7QUM5QkYsd0JBQXdCLE9BQU87QUFDbEMsTUFBSSxlQUFlLE1BQU07QUFDekIsTUFBSSxLQUFLLGdCQUFnQixXQUFXLEdBQUcsVUFBVSxVQUFTLEdBQUcsUUFBUSxTQUFTLEdBQUcsUUFBUSxVQUFTLEdBQUcsUUFBUSxzQkFBcUIsR0FBRyxXQUFXLG9CQUFvQixhQUFhLEdBQUcsWUFBWSxZQUFXLEdBQUcsV0FBVyxVQUFVLHNCQUFxQixHQUFHLE9BQU87QUFDbFEsTUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFRO0FBRXRCLFdBQU8xSCxRQUFNLGNBQWNBLFFBQU0sVUFBVTtBQUFBO0FBRS9DLE1BQUksaUJBQWlCO0FBQ3JCLE1BQUksWUFBWSxTQUFRO0FBQ3BCLFFBQUksV0FBVyxVQUFVLFVBQVM7QUFFOUIsZUFBUyxRQUFRLFNBQVMsWUFBWSxTQUFTLFFBQU8sWUFBWSxTQUFTO0FBQ3ZFLHVCQUFlLEtBQUs4SCxTQUFhLGFBQWEsV0FBVztBQUFBO0FBQUEsV0FHNUQ7QUFFRCxlQUFTLFFBQVEsR0FBRyxTQUFTLElBQUksU0FBUztBQUN0QyxZQUFJLFVBQVUsSUFBSTtBQUNsQix1QkFBZSxLQUFLQSxTQUFhLGFBQWEsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUlwRSxNQUFJLGVBQWUsU0FBVSxHQUFHO0FBQzVCLFFBQUksV0FBV0EsU0FBYSxJQUFJLEtBQUssZUFBZSxPQUFPLEVBQUUsT0FBTztBQUNwRSxVQUFNLFNBQVM7QUFBQTtBQUVuQixTQUFROUgsUUFBTSxjQUFjLFdBQVUsRUFBRSxjQUFjLHVCQUFzQixXQUFXLFdBQVcsZ0JBQWdCLE9BQU8sT0FBTyxnQkFBZ0IsVUFBVSxjQUFjLE9BQU8sYUFBYSxZQUFZLFNBQVMsb0JBQW1CLGNBQWMsRUFBRSxRQUFRLGNBQWEsZUFBZSxJQUFJLFNBQVUsSUFBRztBQUFFLFdBQVFBLFFBQU0sY0FBYyxVQUFVLEVBQUUsS0FBSyxHQUFFLFlBQVksT0FBTyxHQUFFLGNBQWMsb0JBQW1CLElBQUcsRUFBRSxRQUFRO0FBQUE7QUFBQTtBQzNCMVosSUFBSSxTQUFTQSxRQUFNLFdBQVcsU0FBVSxPQUFPLEtBQUs7QUFDdkQsTUFBSSxLQUFLLGdCQUFnQixhQUFhLEdBQUcsWUFBWSxTQUFTLEdBQUc7QUFDakUsTUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLGNBQWMsV0FBVztBQUN6RCxNQUFJLE1BQU0sV0FBVztBQUNqQixrQkFBYyxLQUFLLE1BQU07QUFBQTtBQUU3QixNQUFJLFlBQVksY0FBYyxLQUFLO0FBQ25DLE1BQUksUUFBUSxTQUFTLFNBQVMsSUFBSSxPQUFPLGVBQWUsT0FBTztBQUMvRCxNQUFJLE1BQU0sT0FBTztBQUNiLFdBQU8sT0FBTyxPQUFPLE1BQU07QUFBQTtBQUUvQixTQUFRQSxRQUFNLGNBQWMsVUFBVSxTQUFTLElBQUksT0FBTyxFQUFFLEtBQVUsTUFBTSxVQUFVLFdBQXNCO0FBQUE7QUNiekcsb0JBQW9CLE9BQU87QUFDOUIsTUFBSTtBQUNKLE1BQUksS0FBSyxnQkFBZ0IsTUFBTSxHQUFHLEtBQUssVUFBUyxHQUFHLFFBQVEsYUFBYSxHQUFHLFlBQVksU0FBUyxHQUFHLFFBQVEsS0FBSyxHQUFHLFFBQVEsaUJBQWdCLEdBQUcsZUFBZSxhQUFZLEdBQUcsV0FBVyxLQUFLLEdBQUcsWUFBWSxhQUFZLEdBQUcsV0FBVyxZQUFXLEdBQUc7QUFDblAsTUFBSSxrQkFBa0IsTUFBTSxpQkFBaUIsY0FBYyxNQUFNO0FBQ2pFLE1BQUksUUFBUSxPQUFPO0FBQ2YsU0FBSyxDQUFDLGlCQUFpQixjQUFjLGNBQWMsR0FBRyxJQUFJLGtCQUFrQixHQUFHO0FBQUE7QUFFbkYsTUFBSSxnQkFBZ0IsTUFBTSxlQUFlLFlBQVksTUFBTTtBQUMzRCxNQUFJLGdCQUFnQixlQUFjLGVBQWUsRUFBRSxRQUFRO0FBQzNELE1BQUksb0JBQW9CO0FBQUEsSUFDcEIsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ2IsS0FBSztBQUNQLE1BQUksWUFBWSxXQUFVLFdBQVcsRUFBRSxRQUFRO0FBQy9DLE1BQUksZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ2IsS0FBSztBQUNQLE1BQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtBQUM5QixXQUFPQSxRQUFNLGNBQWNBLFFBQU0sVUFBVTtBQUFBO0FBRS9DLFNBQVFBLFFBQU0sY0FBYyxPQUFPLEVBQUUsV0FBVyxXQUFXLEtBQUssT0FBTyxPQUFPLE9BQzFFLENBQUMsTUFBTSxnQkFBaUJBLFFBQU0sY0FBYyxRQUFRLEVBQUUsY0FBYyxlQUFlLFdBQVcsbUJBQW1CLE9BQU8sT0FBTyxpQkFBaUIsVUFBVSxDQUFDLGVBQWUsU0FBUyxRQUFRLFFBQVEsY0FBYyxtQkFBbUIsUUFBUSxRQUFTQSxRQUFNLGNBQWMsWUFBVyxFQUFFLFdBQVcsV0FBVyxVQUFVLE9BQU8sT0FBTyxjQUFnQkEsUUFBTSxjQUFjLFdBQVUsRUFBRSxXQUFXLFdBQVcsVUFBVSxPQUFPLE9BQU8sY0FDbGEsQ0FBQyxNQUFNLFlBQWFBLFFBQU0sY0FBYyxRQUFRLEVBQUUsY0FBYyxXQUFXLFdBQVcsZUFBZSxPQUFPLE9BQU8saUJBQWlCLFVBQVUsQ0FBQyxXQUFXLFNBQVMsUUFBUSxRQUFRLGtCQUFrQixlQUFlLFFBQVEsUUFBU0EsUUFBTSxjQUFjLFdBQVUsRUFBRSxXQUFXLFdBQVcsVUFBVSxPQUFPLE9BQU8sY0FBZ0JBLFFBQU0sY0FBYyxZQUFXLEVBQUUsV0FBVyxXQUFXLFVBQVUsT0FBTyxPQUFPO0FBQUE7QUNwQm5aLHVCQUF1QixPQUFPO0FBQ2pDLE1BQUksZUFBZSxNQUFNO0FBQ3pCLE1BQUksS0FBSyxnQkFBZ0IsV0FBVyxHQUFHLFVBQVUsVUFBUyxHQUFHLFFBQVEsVUFBUyxHQUFHLFFBQVEsU0FBUyxHQUFHLFFBQVEsYUFBYSxHQUFHLFlBQVksWUFBVyxHQUFHLFdBQVcsVUFBVSxxQkFBb0IsR0FBRyxXQUFXLG1CQUFtQixxQkFBb0IsR0FBRyxPQUFPO0FBQy9QLE1BQUksUUFBUTtBQUNaLE1BQUksWUFBWSxTQUFRO0FBQ3BCLFFBQUksV0FBVyxTQUFTO0FBQ3hCLFFBQUksU0FBUyxRQUFPO0FBQ3BCLGFBQVMsT0FBTyxVQUFVLFFBQVEsUUFBUSxRQUFRO0FBQzlDLFlBQU0sS0FBSyxRQUFRLFlBQVksSUFBSSxTQUFTO0FBQUE7QUFBQTtBQUdwRCxNQUFJLGVBQWUsU0FBVSxHQUFHO0FBQzVCLFFBQUksV0FBVyxRQUFRLElBQUksS0FBSyxlQUFlLE9BQU8sRUFBRSxPQUFPO0FBQy9ELFVBQU0sU0FBUztBQUFBO0FBRW5CLFNBQVFBLFFBQU0sY0FBYyxXQUFVLEVBQUUsY0FBYyxzQkFBcUIsV0FBVyxXQUFXLGdCQUFnQixPQUFPLE9BQU8sZ0JBQWdCLFVBQVUsY0FBYyxPQUFPLGFBQWEsZUFBZSxTQUFTLG1CQUFrQixjQUFjLEVBQUUsUUFBUSxjQUFhLE1BQU0sSUFBSSxTQUFVLE9BQU07QUFBRSxXQUFRQSxRQUFNLGNBQWMsVUFBVSxFQUFFLEtBQUssTUFBSyxlQUFlLE9BQU8sTUFBSyxpQkFBaUIsbUJBQWtCLE9BQU0sRUFBRSxRQUFRO0FBQUE7QUFBQTtBQ1puYSw0QkFBNEIsY0FBYyxpQkFBaUI7QUFDOUQsTUFBSSxLQUFLQSxRQUFNLFNBQVMsZUFBZSxvQkFBb0IsR0FBRyxJQUFJLFdBQVcsR0FBRztBQUNoRixNQUFJLFFBQVEsb0JBQW9CLFNBQVksb0JBQW9CO0FBQ2hFLFNBQU8sQ0FBQyxPQUFPO0FBQUE7QUNYWix5QkFBeUIsU0FBUztBQUNyQyxNQUFJLFFBQVEsUUFBUSxPQUFPLGVBQWUsUUFBUSxjQUFjLFFBQVEsUUFBUTtBQUNoRixNQUFJLGVBQWUsU0FBUyxnQkFBZ0IsU0FBUyxJQUFJO0FBQ3pELE1BQUksVUFBUyxRQUFRLFFBQVEsV0FBVyxRQUFRLFVBQVUsS0FBSyxRQUFRLGdCQUFnQixpQkFBaUIsT0FBTyxTQUFTLElBQUk7QUFFNUgsTUFBSSxXQUFVLDJCQUEyQixTQUFRLGdCQUFnQixHQUFHO0FBQ2hFLFFBQUksVUFBUyxLQUFNLGtCQUFpQjtBQUNwQyxtQkFBZSxVQUFVLFNBQVE7QUFBQTtBQUdyQyxNQUFJLFlBQVksMkJBQTJCLGNBQWMsWUFBWSxHQUFHO0FBQ3BFLG1CQUFlO0FBQUE7QUFFbkIsU0FBTyxhQUFhO0FBQUE7QUNYakIsOEJBQThCO0FBQ2pDLE1BQUksVUFBVTtBQUNkLE1BQUksZUFBZSxnQkFBZ0I7QUFDbkMsTUFBSSxLQUFLLG1CQUFtQixjQUFjLFFBQVEsUUFBUSxRQUFRLEdBQUcsSUFBSSxZQUFXLEdBQUc7QUFDdkYsTUFBSSxZQUFZLFNBQVUsTUFBTTtBQUM1QixRQUFJLFFBQVE7QUFDUjtBQUNKLGNBQVM7QUFBQTtBQUViLFNBQU8sQ0FBQyxPQUFPO0FBQUE7QUNSWiwwQkFBMEIsT0FBTyxJQUFJO0FBQ3hDLE1BQUksZ0JBQWdCLEdBQUcsZUFBZSxpQkFBaUIsR0FBRztBQUMxRCxNQUFJLFNBQVEsYUFBYTtBQUN6QixNQUFJLE9BQU0sYUFBYSxVQUFVLFFBQU87QUFDeEMsTUFBSSxhQUFhLDJCQUEyQixNQUFLO0FBQ2pELE1BQUksU0FBUztBQUNiLFdBQVMsSUFBSSxHQUFHLElBQUksWUFBWSxLQUFLO0FBQ2pDLFFBQUksWUFBWSxVQUFVLFFBQU87QUFDakMsV0FBTyxLQUFLO0FBQUE7QUFFaEIsTUFBSTtBQUNBLGFBQVMsT0FBTztBQUNwQixTQUFPO0FBQUE7QUNOSixzQkFBc0IsZUFBZSxTQUFTO0FBQ2pELE1BQUksUUFBUSxtQkFBbUI7QUFDM0IsV0FBTztBQUFBO0FBRVgsTUFBSSxVQUFTLFFBQVEsUUFBUSxrQkFBa0IsUUFBUSxpQkFBaUIsS0FBSyxRQUFRLGdCQUFnQixpQkFBaUIsT0FBTyxTQUFTLElBQUk7QUFDMUksTUFBSSxVQUFTLGtCQUFrQixpQkFBaUI7QUFDaEQsTUFBSSxRQUFRLGFBQWE7QUFDekIsTUFBSSxDQUFDLFNBQVE7QUFDVCxXQUFPLFVBQVUsT0FBTztBQUFBO0FBRTVCLE1BQUksYUFBYSwyQkFBMkIsU0FBUTtBQUNwRCxNQUFJLGFBQWEsZ0JBQWdCO0FBQzdCLFdBQU87QUFBQTtBQUdYLFNBQU8sVUFBVSxPQUFPO0FBQUE7QUNkckIsMEJBQTBCLGVBQWUsU0FBUztBQUNyRCxNQUFJLFFBQVEsbUJBQW1CO0FBQzNCLFdBQU87QUFBQTtBQUVYLE1BQUksV0FBVyxRQUFRLFVBQVUsa0JBQWtCLFFBQVEsaUJBQWlCLEtBQUssUUFBUSxnQkFBZ0IsaUJBQWlCLE9BQU8sU0FBUyxJQUFJO0FBQzlJLE1BQUksVUFBUyxrQkFBa0IsaUJBQWlCO0FBQ2hELE1BQUksUUFBUSxhQUFhO0FBQ3pCLE1BQUksQ0FBQyxVQUFVO0FBQ1gsV0FBTyxVQUFVLE9BQU8sQ0FBQztBQUFBO0FBRTdCLE1BQUksYUFBYSwyQkFBMkIsT0FBTztBQUNuRCxNQUFJLGNBQWMsR0FBRztBQUNqQixXQUFPO0FBQUE7QUFHWCxTQUFPLFVBQVUsT0FBTyxDQUFDO0FBQUE7QUNoQnRCLElBQUksb0JBQW9CQSxRQUFNLGNBQWM7QUFFNUMsNEJBQTRCLE9BQU87QUFDdEMsTUFBSSxVQUFVO0FBQ2QsTUFBSSxLQUFLLHNCQUFzQixRQUFRLEdBQUcsSUFBSSxZQUFZLEdBQUc7QUFDN0QsTUFBSSxnQkFBZ0IsaUJBQWlCLE9BQU87QUFDNUMsTUFBSSxZQUFZLGFBQWEsT0FBTztBQUNwQyxNQUFJLGdCQUFnQixpQkFBaUIsT0FBTztBQUM1QyxTQUFRQSxRQUFNLGNBQWMsa0JBQWtCLFVBQVUsRUFBRSxPQUFPO0FBQUEsSUFDekQ7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsT0FDQyxNQUFNO0FBQUE7QUN0QloseUJBQXlCO0FBQzVCLE1BQUksVUFBVUEsUUFBTSxXQUFXO0FBQy9CLE1BQUksQ0FBQyxTQUFTO0FBQ1YsVUFBTSxJQUFJLE1BQU07QUFBQTtBQUVwQixTQUFPO0FBQUE7QUNHSixpQkFBaUIsT0FBTztBQUMzQixNQUFJO0FBQ0osTUFBSSxlQUFlLE1BQU07QUFDekIsTUFBSSxVQUFVO0FBQ2QsTUFBSSxhQUFhLFFBQVEsWUFBWSxpQkFBaUIsUUFBUSxnQkFBZ0Isb0JBQW9CLFFBQVEsbUJBQW1CLFNBQVMsUUFBUSxRQUFRLGdCQUFnQixRQUFRLGVBQWUsZ0JBQWdCLFFBQVEsZUFBZSxNQUFNLFFBQVEsS0FBSyxnQkFBZSxRQUFRLFdBQVc7QUFDelIsTUFBSSxLQUFLLGlCQUFpQixnQkFBZ0IsR0FBRyxlQUFlLFlBQVksR0FBRyxXQUFXLFlBQVksR0FBRyxXQUFXLGdCQUFnQixHQUFHO0FBQ25JLE1BQUksc0JBQXNCLFdBQVk7QUFDbEMsUUFBSSxDQUFDO0FBQ0Q7QUFDSixjQUFVO0FBQ1Ysc0JBQWtCLFFBQVEsa0JBQWtCLFNBQVMsU0FBUyxjQUFjO0FBQUE7QUFFaEYsTUFBSSxrQkFBa0IsV0FBWTtBQUM5QixRQUFJLENBQUM7QUFDRDtBQUNKLGNBQVU7QUFDVixzQkFBa0IsUUFBUSxrQkFBa0IsU0FBUyxTQUFTLGNBQWM7QUFBQTtBQUVoRixNQUFJLG9CQUFvQixTQUFVLFVBQVU7QUFDeEMsY0FBVTtBQUNWLHNCQUFrQixRQUFRLGtCQUFrQixTQUFTLFNBQVMsY0FBYztBQUFBO0FBRWhGLE1BQUksZUFBZSxjQUFjLFVBQVUsU0FBVSxPQUFPO0FBQ3hELFdBQU8sWUFBWSxjQUFjO0FBQUE7QUFFckMsTUFBSSxVQUFVLGlCQUFpQjtBQUMvQixNQUFJLFNBQVMsaUJBQWlCLGNBQWMsU0FBUztBQUNyRCxNQUFJLFFBQVEsT0FBTztBQUNmLFNBQUssQ0FBQyxTQUFTLFNBQVMsU0FBUyxHQUFHLElBQUksVUFBVSxHQUFHO0FBQUE7QUFFekQsTUFBSSxXQUFXLGlCQUFpQixLQUFNLFlBQVcsQ0FBQztBQUNsRCxNQUFJLGVBQWUsaUJBQWlCLEtBQU0sV0FBVSxDQUFDO0FBQ3JELE1BQUksZUFBZ0JBLFFBQU0sY0FBYyxlQUFjLEVBQUUsSUFBSSxNQUFNLElBQUk7QUFDdEUsTUFBSTtBQUNKLE1BQUksbUJBQW1CO0FBQ25CLHFCQUFpQjtBQUFBLGFBRVosa0JBQWtCLFlBQVk7QUFDbkMscUJBQWtCQSxRQUFNLGNBQWMsT0FBTyxFQUFFLFdBQVcsV0FBVyxtQkFBbUIsT0FBTyxPQUFPLHFCQUNsR0EsUUFBTSxjQUFjLE9BQU8sRUFBRSxXQUFXLFdBQVcsV0FBVyxlQUM5REEsUUFBTSxjQUFjLGdCQUFnQixFQUFFLFVBQVUsbUJBQW1CLGlCQUNuRUEsUUFBTSxjQUFjLGVBQWUsRUFBRSxVQUFVLG1CQUFtQjtBQUFBLFNBRXJFO0FBQ0QscUJBQWtCQSxRQUFNLGNBQWNBLFFBQU0sVUFBVSxNQUNsRCxjQUNBQSxRQUFNLGNBQWMsWUFBWSxFQUFFLGNBQTRCLFVBQW9CLGNBQTRCLFdBQXNCLGVBQThCLGlCQUFpQixxQkFBcUIsYUFBYTtBQUFBO0FBRTdOLFNBQVFBLFFBQU0sY0FBYyxPQUFPLEVBQUUsV0FBVyxXQUFXLFNBQVMsT0FBTyxPQUFPLFdBQVc7QUFBQTtBQ3hEMUYsc0JBQXNCLE9BQU87QUFDaEMsTUFBSSxLQUFLLGdCQUFnQixVQUFTLEdBQUcsUUFBUSxhQUFhLEdBQUcsWUFBWSxTQUFTLEdBQUcsUUFBUSxpQkFBZ0IsR0FBRyxXQUFXO0FBQzNILFNBQVFBLFFBQU0sY0FBYyxNQUFNLEVBQUUsV0FBVyxXQUFXLGVBQWUsT0FBTyxPQUFPLGVBQWUsYUFBYSxVQUFVLGVBQWUsUUFBUSxJQUFJLE1BQU0sTUFBTSxlQUFjLE1BQU0sY0FBYyxFQUFFLFFBQVE7QUFBQTtBQ0o3TSw2QkFBNkIsT0FBTztBQUN2QyxTQUFPLE1BQU0sU0FBUztBQUFBO0FDUW5CLElBQUksd0JBQXdCQSxRQUFNLGNBQWM7QUFFaEQsZ0NBQWdDLE9BQU87QUFDMUMsTUFBSSxDQUFDLG9CQUFvQixNQUFNLGVBQWU7QUFDMUMsUUFBSSxvQkFBb0I7QUFBQSxNQUNwQixVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsUUFDUCxVQUFVO0FBQUE7QUFBQTtBQUdsQixXQUFRQSxRQUFNLGNBQWMsc0JBQXNCLFVBQVUsRUFBRSxPQUFPLHFCQUFxQixNQUFNO0FBQUE7QUFFcEcsU0FBUUEsUUFBTSxjQUFjLGdDQUFnQyxFQUFFLGNBQWMsTUFBTSxjQUFjLFVBQVUsTUFBTTtBQUFBO0FBRTdHLHdDQUF3QyxJQUFJO0FBQy9DLE1BQUksZUFBZSxHQUFHLGNBQWMsV0FBVyxHQUFHO0FBQ2xELE1BQUksV0FBVyxhQUFhO0FBQzVCLE1BQUksYUFBYSxTQUFVLEtBQUssWUFBVyxHQUFHO0FBQzFDLFFBQUksS0FBSTtBQUNSLElBQUMsT0FBSyxhQUFhLGdCQUFnQixRQUFRLFFBQU8sU0FBUyxTQUFTLElBQUcsS0FBSyxjQUFjLEtBQUssWUFBVztBQUMxRyxRQUFJLGdCQUFnQixRQUFRLGFBQWEsT0FDckMsV0FBVSxZQUNWLFlBQ0EsU0FBUyxXQUFXLGFBQWE7QUFDckMsUUFBSSxlQUFlO0FBQ2Y7QUFBQTtBQUVKLFFBQUksZ0JBQWdCLFFBQVEsYUFBYSxPQUNyQyxDQUFDLFdBQVUsWUFDWCxZQUNBLFNBQVMsV0FBVyxhQUFhO0FBQ3JDLFFBQUksZUFBZTtBQUNmO0FBQUE7QUFFSixRQUFJLE9BQU8sV0FBVyxjQUFjLElBQUksVUFBVSxRQUFRO0FBQzFELFFBQUksV0FBVSxVQUFVO0FBQ3BCLFVBQUksUUFBUSxLQUFLLFVBQVUsU0FBVSxhQUFhO0FBQzlDLGVBQU8sVUFBVSxLQUFLO0FBQUE7QUFFMUIsV0FBSyxPQUFPLE9BQU87QUFBQSxXQUVsQjtBQUNELFdBQUssS0FBSztBQUFBO0FBRWQsSUFBQyxNQUFLLGFBQWEsY0FBYyxRQUFRLE9BQU8sU0FBUyxTQUFTLEdBQUcsS0FBSyxjQUFjLE1BQU0sS0FBSyxZQUFXO0FBQUE7QUFFbEgsTUFBSSxZQUFZO0FBQUEsSUFDWixVQUFVO0FBQUE7QUFFZCxNQUFJLFVBQVU7QUFDVixjQUFVLFdBQVc7QUFBQSxNQUNqQixvQkFBb0IsS0FBSztBQUNyQixZQUFJLGdCQUFnQixhQUFhLE9BQzdCLFlBQ0EsU0FBUyxTQUFTLGFBQWEsTUFBTTtBQUN6QyxZQUFJLGFBQWEsYUFBYSxRQUFRLGFBQWEsU0FBUyxTQUFTLFNBQVMsS0FBSyxTQUFVLGFBQWE7QUFDdEcsaUJBQU8sVUFBVSxhQUFhO0FBQUE7QUFFbEMsZUFBTyxRQUFRLGlCQUFpQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBSTdDLE1BQUksZUFBZSxFQUFFLFVBQW9CLFlBQXdCO0FBQ2pFLFNBQVFBLFFBQU0sY0FBYyxzQkFBc0IsVUFBVSxFQUFFLE9BQU8sZ0JBQWdCO0FBQUE7QUN0RWxGLDZCQUE2QjtBQUNoQyxNQUFJLFVBQVVBLFFBQU0sV0FBVztBQUMvQixNQUFJLENBQUMsU0FBUztBQUNWLFVBQU0sSUFBSSxNQUFNO0FBQUE7QUFFcEIsU0FBTztBQUFBO0FDUEosMEJBQTBCLE9BQU87QUFDcEMsU0FBTyxNQUFNLFNBQVM7QUFBQTtBQ0tuQixvQkFBb0IsS0FBSyxPQUFPO0FBQ25DLE1BQUksS0FBSyxTQUFTLElBQUksT0FBTyxHQUFHLE1BQU0sS0FBSyxHQUFHO0FBQzlDLE1BQUksQ0FBQyxNQUFNO0FBQ1AsV0FBTyxFQUFFLE1BQU0sS0FBSyxJQUFJO0FBQUE7QUFFNUIsTUFBSSxDQUFDLE1BQU0sVUFBVSxNQUFNLE1BQU07QUFDN0IsV0FBTztBQUFBO0FBRVgsTUFBSSxDQUFDLE1BQU0sU0FBUyxLQUFLLE9BQU87QUFDNUIsV0FBTyxFQUFFLE1BQU0sS0FBSyxJQUFJO0FBQUE7QUFFNUIsTUFBSSxDQUFDLElBQUk7QUFDTCxXQUFPLEVBQUUsTUFBWSxJQUFJO0FBQUE7QUFFN0IsTUFBSSxVQUFVLElBQUksUUFBUSxVQUFVLE1BQU0sTUFBTTtBQUM1QyxXQUFPO0FBQUE7QUFFWCxNQUFJLFVBQVUsSUFBSSxNQUFNO0FBQ3BCLFdBQU8sRUFBRSxNQUFNLElBQUk7QUFBQTtBQUV2QixNQUFJLFVBQVUsTUFBTSxNQUFNO0FBQ3RCLFdBQU87QUFBQTtBQUVYLE1BQUksUUFBUSxNQUFNLE1BQU07QUFDcEIsV0FBTyxFQUFFLE1BQU0sS0FBSztBQUFBO0FBRXhCLFNBQU8sRUFBRSxNQUFZLElBQUk7QUFBQTtBQ3ZCdEIsSUFBSSxxQkFBcUJBLFFBQU0sY0FBYztBQUU3Qyw2QkFBNkIsT0FBTztBQUN2QyxNQUFJLENBQUMsaUJBQWlCLE1BQU0sZUFBZTtBQUN2QyxRQUFJLG9CQUFvQjtBQUFBLE1BQ3BCLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxRQUNQLGFBQWE7QUFBQSxRQUNiLFdBQVc7QUFBQSxRQUNYLGNBQWM7QUFBQSxRQUNkLFVBQVU7QUFBQTtBQUFBO0FBR2xCLFdBQVFBLFFBQU0sY0FBYyxtQkFBbUIsVUFBVSxFQUFFLE9BQU8scUJBQXFCLE1BQU07QUFBQTtBQUVqRyxTQUFRQSxRQUFNLGNBQWMsNkJBQTZCLEVBQUUsY0FBYyxNQUFNLGNBQWMsVUFBVSxNQUFNO0FBQUE7QUFFMUcscUNBQXFDLElBQUk7QUFDNUMsTUFBSSxlQUFlLEdBQUcsY0FBYyxXQUFXLEdBQUc7QUFDbEQsTUFBSSxXQUFXLGFBQWE7QUFDNUIsTUFBSSxPQUFNLGFBQWE7QUFDdkIsTUFBSSxPQUFNLGFBQWE7QUFDdkIsTUFBSSxhQUFhLFNBQVUsS0FBSyxZQUFXLEdBQUc7QUFDMUMsUUFBSSxLQUFJO0FBQ1IsSUFBQyxPQUFLLGFBQWEsZ0JBQWdCLFFBQVEsUUFBTyxTQUFTLFNBQVMsSUFBRyxLQUFLLGNBQWMsS0FBSyxZQUFXO0FBQzFHLFFBQUksV0FBVyxXQUFXLEtBQUs7QUFDL0IsUUFBSyxTQUFPLFNBQ1IsWUFDQyxjQUFhLFFBQVEsYUFBYSxTQUFTLFNBQVMsU0FBUyxPQUM5RCxTQUFTLFFBQ1QsU0FBUyxTQUFTLFNBQVMsSUFBSTtBQUMvQixVQUFJLE9BQU8sS0FBSyxJQUFJLHlCQUF5QixhQUFhLFFBQVEsYUFBYSxTQUFTLFNBQVMsU0FBUyxJQUFJLGFBQWEsUUFBUSxhQUFhLFNBQVMsU0FBUyxTQUFTO0FBQzNLLFVBQUksUUFBTyxPQUFPLE1BQUs7QUFDbkI7QUFBQTtBQUVKLFVBQUksUUFBTyxRQUFRLE1BQUs7QUFDcEI7QUFBQTtBQUFBO0FBR1IsSUFBQyxNQUFLLGFBQWEsY0FBYyxRQUFRLE9BQU8sU0FBUyxTQUFTLEdBQUcsS0FBSyxjQUFjLFVBQVUsS0FBSyxZQUFXO0FBQUE7QUFFdEgsTUFBSSxZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUE7QUFFZCxNQUFJLFVBQVU7QUFDVixRQUFJLFNBQVMsTUFBTTtBQUNmLGdCQUFVLGNBQWMsQ0FBQyxTQUFTO0FBQ2xDLFVBQUksU0FBUyxJQUFJO0FBQ2Isa0JBQVUsZUFBZTtBQUFBLFVBQ3JCO0FBQUEsWUFDSSxPQUFPLFNBQVM7QUFBQSxZQUNoQixRQUFRLFNBQVM7QUFBQTtBQUFBO0FBR3pCLFlBQUksUUFBTyxNQUFLO0FBQ1osb0JBQVUsV0FBVztBQUFBLFlBQ2pCLFNBQVUsTUFBTTtBQUNaLGtCQUFJLFFBQ0EsU0FBUyxNQUNULFNBQVMsUUFDVCxTQUFTLE1BQU0sU0FBUyxPQUFPO0FBQy9CLG9CQUFJLE9BQU8seUJBQXlCLFNBQVMsSUFBSTtBQUNqRCxvQkFBSSxRQUFRLE1BQUs7QUFDYix5QkFBTztBQUFBO0FBQUE7QUFHZixrQkFBSSxRQUNBLFNBQVMsTUFDVCxTQUFTLFFBQ1QsUUFBUSxNQUFNLFNBQVMsS0FBSztBQUM1QixvQkFBSSxPQUFPLHlCQUF5QixNQUFNLFNBQVM7QUFDbkQsb0JBQUksUUFBUSxNQUFLO0FBQ2IseUJBQU87QUFBQTtBQUFBO0FBR2Ysa0JBQUksUUFBTyxTQUFTLFFBQVEsU0FBUyxNQUFNLFNBQVMsT0FBTztBQUN2RCxvQkFBSSxPQUFPLHlCQUF5QixTQUFTLE1BQU07QUFDbkQsb0JBQUksT0FBTyxNQUFLO0FBQ1oseUJBQU87QUFBQTtBQUFBO0FBR2Ysa0JBQUksUUFDQSxTQUFTLE1BQ1QsU0FBUyxRQUNULFFBQVEsTUFBTSxTQUFTLEtBQUs7QUFDNUIsb0JBQUksT0FBTyx5QkFBeUIsTUFBTSxTQUFTO0FBQ25ELG9CQUFJLE9BQU8sTUFBSztBQUNaLHlCQUFPO0FBQUE7QUFBQTtBQUdmLHFCQUFPO0FBQUE7QUFBQTtBQUFBO0FBSW5CLGtCQUFVLFlBQVksQ0FBQyxTQUFTO0FBQUEsYUFFL0I7QUFDRCxrQkFBVSxZQUFZLENBQUMsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUk1QyxTQUFRQSxRQUFNLGNBQWMsbUJBQW1CLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBb0IsWUFBd0IsZUFBMEI7QUFBQTtBQy9HdkksMEJBQTBCO0FBQzdCLE1BQUksVUFBVUEsUUFBTSxXQUFXO0FBQy9CLE1BQUksQ0FBQyxTQUFTO0FBQ1YsVUFBTSxJQUFJLE1BQU07QUFBQTtBQUVwQixTQUFPO0FBQUE7QUNQSiwyQkFBMkIsT0FBTztBQUNyQyxTQUFPLE1BQU0sU0FBUztBQUFBO0FDTW5CLElBQUksc0JBQXNCQSxRQUFNLGNBQWM7QUFFOUMsOEJBQThCLE9BQU87QUFDeEMsTUFBSSxDQUFDLGtCQUFrQixNQUFNLGVBQWU7QUFDeEMsUUFBSSxvQkFBb0I7QUFBQSxNQUNwQixVQUFVO0FBQUE7QUFFZCxXQUFRQSxRQUFNLGNBQWMsb0JBQW9CLFVBQVUsRUFBRSxPQUFPLHFCQUFxQixNQUFNO0FBQUE7QUFFbEcsU0FBUUEsUUFBTSxjQUFjLDhCQUE4QixFQUFFLGNBQWMsTUFBTSxjQUFjLFVBQVUsTUFBTTtBQUFBO0FBRTNHLHNDQUFzQyxJQUFJO0FBQzdDLE1BQUksZUFBZSxHQUFHLGNBQWMsV0FBVyxHQUFHO0FBQ2xELE1BQUksYUFBYSxTQUFVLEtBQUssY0FBYyxHQUFHO0FBQzdDLFFBQUksS0FBSTtBQUNSLFFBQUksYUFBYSxZQUFZLENBQUMsYUFBYSxVQUFVO0FBQ2pELE1BQUMsT0FBSyxhQUFhLGNBQWMsUUFBUSxRQUFPLFNBQVMsU0FBUyxJQUFHLEtBQUssY0FBYyxRQUFXLEtBQUssY0FBYztBQUN0SDtBQUFBO0FBRUosSUFBQyxNQUFLLGFBQWEsY0FBYyxRQUFRLE9BQU8sU0FBUyxTQUFTLEdBQUcsS0FBSyxjQUFjLEtBQUssS0FBSyxjQUFjO0FBQUE7QUFFcEgsTUFBSSxlQUFlO0FBQUEsSUFDZixVQUFVLGFBQWE7QUFBQSxJQUN2QjtBQUFBO0FBRUosU0FBUUEsUUFBTSxjQUFjLG9CQUFvQixVQUFVLEVBQUUsT0FBTyxnQkFBZ0I7QUFBQTtBQzlCaEYsMkJBQTJCO0FBQzlCLE1BQUksVUFBVUEsUUFBTSxXQUFXO0FBQy9CLE1BQUksQ0FBQyxTQUFTO0FBQ1YsVUFBTSxJQUFJLE1BQU07QUFBQTtBQUVwQixTQUFPO0FBQUE7QUNSSix3QkFBd0Isa0JBQWtCO0FBQzdDLE1BQUksTUFBTSxRQUFRLG1CQUFtQjtBQUNqQyxXQUFPO0FBQUEsYUFFRixxQkFBcUIsUUFBVztBQUNyQyxXQUFPLENBQUM7QUFBQSxTQUVQO0FBQ0QsV0FBTztBQUFBO0FBQUE7QUNOUiw0QkFBNEIsV0FBVztBQUMxQyxNQUFJLGtCQUFrQjtBQUN0QixTQUFPLFFBQVEsVUFBVSxXQUFXLFFBQVEsU0FBVSxJQUFJO0FBQ3RELFFBQUksV0FBVyxHQUFHLElBQUksVUFBVSxHQUFHO0FBQ25DLG9CQUFnQixZQUFZLGVBQWU7QUFBQTtBQUUvQyxTQUFPO0FBQUE7QUNQSixJQUFJO0FBQ1gsQUFBQyxVQUFVLG1CQUFrQjtBQUV6QixvQkFBaUIsY0FBYztBQUUvQixvQkFBaUIsY0FBYztBQUUvQixvQkFBaUIsWUFBWTtBQUU3QixvQkFBaUIsV0FBVztBQUU1QixvQkFBaUIsZ0JBQWdCO0FBRWpDLG9CQUFpQixjQUFjO0FBRS9CLG9CQUFpQixpQkFBaUI7QUFBQSxHQUNuQyxvQkFBcUIsb0JBQW1CO0FDWnBDLDhCQUE4QixXQUFXLGdCQUFnQixhQUFhO0FBQ3pFLE1BQUk7QUFDSixNQUFJLG9CQUFxQixNQUFLLElBQzFCLEdBQUcsaUJBQWlCLFlBQVksZUFBZSxVQUFVLFdBQ3pELEdBQUcsaUJBQWlCLFlBQVksZUFBZSxVQUFVLFdBQ3pELEdBQUcsaUJBQWlCLFVBQVUsZUFBZSxVQUFVLFNBQ3ZELEdBQUcsaUJBQWlCLFNBQVMsQ0FBQyxVQUFVLFFBQ3hDLEdBQUcsaUJBQWlCLFlBQVksSUFDaEMsR0FBRyxpQkFBaUIsZUFBZSxJQUNuQyxHQUFHLGlCQUFpQixjQUFjLElBQ2xDO0FBQ0osTUFBSSxVQUFVLFVBQVU7QUFDcEIsc0JBQWtCLFNBQVMsS0FBSyxFQUFFLFFBQVEsVUFBVTtBQUFBO0FBRXhELE1BQUksVUFBVSxRQUFRO0FBQ2xCLHNCQUFrQixTQUFTLEtBQUssRUFBRSxPQUFPLFVBQVU7QUFBQTtBQUV2RCxNQUFJLG9CQUFvQixZQUFZO0FBQ2hDLHNCQUFrQixXQUFXLGtCQUFrQixTQUFTLE9BQU8sZUFBZSxVQUFVO0FBQUEsYUFFbkYsaUJBQWlCLFlBQVk7QUFDbEMsc0JBQWtCLFdBQVcsa0JBQWtCLFNBQVMsT0FBTyxZQUFZLFVBQVU7QUFDckYsc0JBQWtCLGNBQWMsWUFBWSxVQUFVO0FBQ3RELHNCQUFrQixlQUFlLFlBQVksVUFBVTtBQUN2RCxzQkFBa0IsWUFBWSxZQUFZLFVBQVU7QUFBQTtBQUV4RCxTQUFPO0FBQUE7QUN2QkosSUFBSSxtQkFBbUJBLFFBQU0sY0FBYztBQUUzQywyQkFBMkIsT0FBTztBQUNyQyxNQUFJLFlBQVk7QUFDaEIsTUFBSSxpQkFBaUI7QUFDckIsTUFBSSxjQUFjO0FBQ2xCLE1BQUksb0JBQW9CLHFCQUFxQixXQUFXLGdCQUFnQjtBQUN4RSxNQUFJLGtCQUFrQixtQkFBbUI7QUFDekMsTUFBSSxZQUFZLFNBQVMsU0FBUyxJQUFJLG9CQUFvQjtBQUMxRCxTQUFRQSxRQUFNLGNBQWMsaUJBQWlCLFVBQVUsRUFBRSxPQUFPLGFBQWEsTUFBTTtBQUFBO0FDZGhGLHdCQUF3QjtBQUMzQixNQUFJLFVBQVVBLFFBQU0sV0FBVztBQUMvQixNQUFJLENBQUMsU0FBUztBQUNWLFVBQU0sSUFBSSxNQUFNO0FBQUE7QUFFcEIsU0FBTztBQUFBO0FDUEosd0JBQXdCLFNBQVM7QUFDcEMsU0FBTyxRQUFRLFdBQ1gsT0FBTyxZQUFZLFlBQ25CLFlBQVksV0FDWixXQUFXO0FBQUE7QUFHWixxQkFBcUIsT0FBTztBQUUvQixTQUFPLFFBQVEsU0FBUyxPQUFPLFVBQVUsWUFBWSxVQUFVO0FBQUE7QUFHNUQseUJBQXlCLE9BQU87QUFDbkMsU0FBTyxRQUFRLFNBQVMsT0FBTyxVQUFVLFlBQVksV0FBVztBQUFBO0FBRzdELDBCQUEwQixPQUFPO0FBQ3BDLFNBQU8sUUFBUSxTQUFTLE9BQU8sVUFBVSxZQUFZLFlBQVk7QUFBQTtBQUc5RCx5QkFBeUIsT0FBTztBQUNuQyxTQUFPLFFBQVEsU0FBUyxPQUFPLFVBQVUsWUFBWSxlQUFlO0FBQUE7QUNwQmpFLHVCQUF1QixNQUFNLE9BQU87QUFDdkMsTUFBSTtBQUNKLE1BQUksT0FBTyxNQUFNLE1BQU0sS0FBSyxNQUFNO0FBQ2xDLE1BQUksQ0FBQyxNQUFNO0FBQ1AsV0FBTztBQUFBO0FBRVgsTUFBSSxDQUFDLE1BQU0sVUFBVSxNQUFNLE9BQU87QUFDOUIsV0FBTztBQUFBO0FBRVgsTUFBSSxDQUFDLElBQUk7QUFDTCxXQUFPO0FBQUE7QUFFWCxNQUFJLGlCQUFpQix5QkFBeUIsSUFBSSxRQUFRO0FBQzFELE1BQUksTUFBTSxnQkFBZ0I7QUFDdEIsU0FBSyxDQUFDLElBQUksT0FBTyxPQUFPLEdBQUcsSUFBSSxLQUFLLEdBQUc7QUFBQTtBQUUzQyxTQUFRLHlCQUF5QixNQUFNLFNBQVMsS0FDNUMseUJBQXlCLElBQUksU0FBUztBQUFBO0FDZjlDLG9CQUFvQixPQUFPO0FBQ3ZCLFNBQU8sT0FBTztBQUFBO0FBR2xCLHdCQUF3QixPQUFPO0FBQzNCLFNBQU8sTUFBTSxRQUFRLFVBQVUsTUFBTSxNQUFNO0FBQUE7QUFLeEMsaUJBQWlCLEtBQUssVUFBVTtBQUNuQyxTQUFPLFNBQVMsS0FBSyxTQUFVLFNBQVM7QUFDcEMsUUFBSSxPQUFPLFlBQVksV0FBVztBQUM5QixhQUFPO0FBQUE7QUFFWCxRQUFJLFdBQVcsVUFBVTtBQUNyQixhQUFPLFVBQVUsS0FBSztBQUFBO0FBRTFCLFFBQUksZUFBZSxVQUFVO0FBQ3pCLGFBQU8sUUFBUSxTQUFTO0FBQUE7QUFFNUIsUUFBSSxZQUFZLFVBQVU7QUFDdEIsYUFBTyxjQUFjLEtBQUs7QUFBQTtBQUU5QixRQUFJLGdCQUFnQixVQUFVO0FBQzFCLGFBQU8sUUFBUSxVQUFVLFNBQVMsSUFBSTtBQUFBO0FBRTFDLFFBQUksZUFBZSxVQUFVO0FBQ3pCLFVBQUksWUFBVyx5QkFBeUIsUUFBUSxRQUFRLE9BQU87QUFDL0QsVUFBSSxXQUFVLHlCQUF5QixLQUFLLFFBQVEsU0FBUztBQUM3RCxhQUFPLGFBQVk7QUFBQTtBQUV2QixRQUFJLGdCQUFnQixVQUFVO0FBQzFCLGFBQU8seUJBQXlCLEtBQUssUUFBUSxTQUFTO0FBQUE7QUFFMUQsUUFBSSxpQkFBaUIsVUFBVTtBQUMzQixhQUFPLHlCQUF5QixRQUFRLFFBQVEsT0FBTztBQUFBO0FBRTNELFFBQUksT0FBTyxZQUFZLFlBQVk7QUFDL0IsYUFBTyxRQUFRO0FBQUE7QUFFbkIsV0FBTztBQUFBO0FBQUE7QUN6Q1IsMkJBQTJCLE1BRWxDLFdBQVc7QUFDUCxNQUFJLGdCQUFnQixPQUFPLEtBQUssV0FBVyxPQUFPLFNBQVUsZUFBZSxLQUFLO0FBQzVFLFFBQUksV0FBVyxVQUFVO0FBQ3pCLFFBQUksUUFBUSxNQUFNLFdBQVc7QUFDekIsb0JBQWMsS0FBSztBQUFBO0FBRXZCLFdBQU87QUFBQSxLQUNSO0FBQ0gsTUFBSSxrQkFBa0I7QUFDdEIsZ0JBQWMsUUFBUSxTQUFVLFVBQVU7QUFBRSxXQUFRLGdCQUFnQixZQUFZO0FBQUE7QUFDaEYsU0FBTztBQUFBO0FDWEoseUJBQXlCLE1BQU07QUFDbEMsTUFBSSxVQUFVO0FBQ2QsTUFBSSxtQkFBbUI7QUFFdkIsTUFBSSxZQUFZLGtCQUFrQixNQUFNO0FBQ3hDLE1BQUkscUJBQXFCO0FBQ3pCLFNBQU8sS0FBSyxXQUFXLFFBQVEsU0FBVSxVQUFVO0FBQy9DLFFBQUksa0JBQWtCLFFBQVEsbUJBQW1CO0FBQ2pELFFBQUksaUJBQWlCO0FBQ2pCLHlCQUFtQixLQUFLO0FBQUEsV0FFdkI7QUFDRCx5QkFBbUIsS0FBSyxLQUFLLFFBQVEsaUJBQWlCO0FBQUE7QUFBQTtBQUc5RCxNQUFJLGdCQUFnQjtBQUNwQixNQUFJLFFBQVEsZ0JBQWdCO0FBQ3hCLFdBQU8sS0FBSyxXQUFXLFFBQVEsU0FBVSxVQUFVO0FBQy9DLFVBQUk7QUFDSixzQkFBZ0IsU0FBUyxTQUFTLElBQUksZ0JBQWlCLE1BQUssUUFBUSxvQkFBb0IsUUFBUSxPQUFPLFNBQVMsU0FBUyxHQUFHO0FBQUE7QUFBQTtBQUdwSSxTQUFPO0FBQUEsSUFDSDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUE7QUFBQTtBQzVCUixJQUFJK0gsZ0JBQWMsU0FBVSxXQUFXO0FBQ25DLFNBQU8sQ0FBQyxVQUFVLFlBQVksQ0FBQyxVQUFVO0FBQUE7QUFVdEMsK0JBQStCLGVBQWUsa0JBQWtCO0FBQ25FLE1BQUksa0JBQWtCLGFBQWEsY0FBYztBQUNqRCxNQUFJLGlCQUFpQixXQUFXLGNBQWMsY0FBYyxTQUFTO0FBQ3JFLE1BQUk7QUFDSixNQUFJO0FBQ0osTUFBSSxPQUFPO0FBQ1gsU0FBTyxRQUFRLGdCQUFnQjtBQUMzQixRQUFJLFlBQVksa0JBQWtCLE1BQU07QUFDeEMsUUFBSSxDQUFDQSxjQUFZLFlBQVk7QUFDekIsYUFBTyxRQUFRLE1BQU07QUFDckI7QUFBQTtBQUVKLFFBQUksVUFBVSxVQUFVO0FBQ3BCLGFBQU87QUFBQTtBQUVYLFFBQUksVUFBVSxTQUFTLENBQUMsT0FBTztBQUMzQixjQUFRO0FBQUE7QUFFWixRQUFJLENBQUMsbUJBQW1CO0FBQ3BCLDBCQUFvQjtBQUFBO0FBRXhCLFdBQU8sUUFBUSxNQUFNO0FBQUE7QUFFekIsTUFBSSxPQUFPO0FBQ1AsV0FBTztBQUFBLFNBRU47QUFDRCxXQUFPO0FBQUE7QUFBQTtBQzdCUixJQUFJLGVBQWUvSCxRQUFNLGNBQWM7QUFFdkMsdUJBQXVCLElBQUk7QUFDOUIsTUFBSSxXQUFXLEdBQUc7QUFDbEIsTUFBSSxLQUFLQSxRQUFNLFlBQVksYUFBYSxHQUFHLElBQUksU0FBUyxHQUFHO0FBQzNELE1BQUksS0FBSyxpQkFBaUIsWUFBWSxHQUFHLFdBQVcsZ0JBQWdCLEdBQUc7QUFDdkUsTUFBSSxpQkFBaUIsZUFBZTtBQUNwQyxNQUFJLG1CQUFtQjtBQUN2QixNQUFJLHFCQUFxQixzQkFBc0IsZUFBZTtBQUM5RCxNQUFJLEtBQUtBLFFBQU0sWUFBWSxpQkFBaUIsR0FBRyxJQUFJLG9CQUFvQixHQUFHO0FBQzFFLE1BQUksd0JBQXdCLFNBQVUsTUFBTTtBQUN4QyxXQUFPLGNBQWMsS0FBSyxTQUFVLGNBQWM7QUFBRSxhQUFPLFlBQVksTUFBTTtBQUFBO0FBQUE7QUFFakYsTUFBSSxjQUFlLGdCQUFlLFFBQVEsZUFBZSxTQUFTLGFBQWMsa0JBQWtCLHNCQUFzQixtQkFDbEgsaUJBQ0E7QUFDTixNQUFJLE9BQU8sV0FBWTtBQUNuQixzQkFBa0I7QUFDbEIsV0FBTztBQUFBO0FBRVgsTUFBSSxRQUFRLFNBQVUsTUFBTTtBQUFFLFdBQU8sT0FBTztBQUFBO0FBQzVDLE1BQUksY0FBYyxTQUFVLE1BQU0sU0FBUTtBQUN0QyxRQUFJLGNBQWMsS0FBSyxTQUFVLElBQUc7QUFBRSxhQUFPLFlBQVksTUFBTTtBQUFBO0FBQzNEO0FBQ0osUUFBSSxVQUFTLEdBQUc7QUFDWixnQkFBVSxVQUFVLE1BQU0sSUFBSTtBQUFBLFdBRTdCO0FBQ0QsZ0JBQVU7QUFBQTtBQUFBO0FBR2xCLE1BQUksaUJBQWlCLFdBQVk7QUFDN0IsUUFBSSxDQUFDO0FBQ0Q7QUFDSixRQUFJLFNBQVMsUUFBUSxZQUFZO0FBQ2pDLFVBQU07QUFDTixnQkFBWSxRQUFRLGlCQUFpQjtBQUFBO0FBRXpDLE1BQUksZ0JBQWdCLFdBQVk7QUFDNUIsUUFBSSxDQUFDO0FBQ0Q7QUFDSixRQUFJLFFBQVEsUUFBUSxZQUFZO0FBQ2hDLFVBQU07QUFDTixnQkFBWSxPQUFPO0FBQUE7QUFFdkIsTUFBSSxxQkFBcUIsV0FBWTtBQUNqQyxRQUFJLENBQUM7QUFDRDtBQUNKLFFBQUksS0FBSyxTQUFTLFlBQVk7QUFDOUIsVUFBTTtBQUNOLGdCQUFZLElBQUksaUJBQWlCO0FBQUE7QUFFckMsTUFBSSxvQkFBb0IsV0FBWTtBQUNoQyxRQUFJLENBQUM7QUFDRDtBQUNKLFFBQUksT0FBTyxTQUFTLFlBQVk7QUFDaEMsVUFBTTtBQUNOLGdCQUFZLE1BQU07QUFBQTtBQUV0QixNQUFJLG1CQUFtQixXQUFZO0FBQy9CLFFBQUksQ0FBQztBQUNEO0FBQ0osUUFBSSxhQUFhLFlBQVk7QUFDN0IsZ0JBQVksWUFBWTtBQUN4QixVQUFNO0FBQUE7QUFFVixNQUFJLGlCQUFpQixXQUFZO0FBQzdCLFFBQUksQ0FBQztBQUNEO0FBQ0osUUFBSSxhQUFhLFVBQVU7QUFDM0IsZ0JBQVksWUFBWTtBQUN4QixVQUFNO0FBQUE7QUFFVixNQUFJLG1CQUFtQixXQUFZO0FBQy9CLFFBQUksQ0FBQztBQUNEO0FBQ0osUUFBSSxjQUFjLFVBQVUsWUFBWTtBQUN4QyxnQkFBWSxhQUFhO0FBQ3pCLFVBQU07QUFBQTtBQUVWLE1BQUksa0JBQWtCLFdBQVk7QUFDOUIsUUFBSSxDQUFDO0FBQ0Q7QUFDSixRQUFJLGFBQWEsVUFBVSxZQUFZO0FBQ3ZDLGdCQUFZLFlBQVk7QUFDeEIsVUFBTTtBQUFBO0FBRVYsTUFBSSxrQkFBa0IsV0FBWTtBQUM5QixRQUFJLENBQUM7QUFDRDtBQUNKLFFBQUksYUFBYSxTQUFTLFlBQVk7QUFDdEMsZ0JBQVksWUFBWTtBQUN4QixVQUFNO0FBQUE7QUFFVixNQUFJLGlCQUFpQixXQUFZO0FBQzdCLFFBQUksQ0FBQztBQUNEO0FBQ0osUUFBSSxZQUFZLFNBQVMsWUFBWTtBQUNyQyxnQkFBWSxXQUFXO0FBQ3ZCLFVBQU07QUFBQTtBQUVWLE1BQUksUUFBUTtBQUFBLElBQ1I7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUE7QUFFSixTQUFRQSxRQUFNLGNBQWMsYUFBYSxVQUFVLEVBQUUsU0FBZ0I7QUFBQTtBQzdIbEUsb0JBQW9CO0FBQ3ZCLE1BQUksVUFBVUEsUUFBTSxXQUFXO0FBQy9CLE1BQUksQ0FBQyxTQUFTO0FBQ1YsVUFBTSxJQUFJLE1BQU07QUFBQTtBQUVwQixTQUFPO0FBQUE7QUNISixxQkFBcUIsTUFBTSxXQUFXO0FBQ3pDLE1BQUksS0FBSyxZQUFZLGFBQWEsR0FBRyxZQUFZLGNBQWMsR0FBRyxhQUFhLGdCQUFnQixHQUFHLGVBQWUsaUJBQWlCLEdBQUcsZ0JBQWdCLG9CQUFvQixHQUFHLG1CQUFtQixxQkFBcUIsR0FBRyxvQkFBb0IsT0FBTyxHQUFHLE1BQU0sUUFBUSxHQUFHLE9BQU8sbUJBQW1CLEdBQUcsa0JBQWtCLGtCQUFrQixHQUFHLGlCQUFpQixrQkFBa0IsR0FBRyxpQkFBaUIsaUJBQWlCLEdBQUcsZ0JBQWdCLG1CQUFtQixHQUFHLGtCQUFrQixpQkFBaUIsR0FBRztBQUNqZSxNQUFJLE1BQU0sZUFBZTtBQUV6QkEsVUFBTSxVQUFVLFdBQVk7QUFDeEIsUUFBSTtBQUNKLFFBQUksQ0FBQztBQUNEO0FBQ0osUUFBSSxVQUFVLFlBQVksT0FBTztBQUM3QixNQUFDLE9BQUssVUFBVSxhQUFhLFFBQVEsUUFBTyxTQUFTLFNBQVMsSUFBRztBQUFBO0FBQUEsS0FFdEUsQ0FBQyxZQUFZLE1BQU07QUFDdEIsTUFBSSxpQkFBaUIsU0FBVSxHQUFHO0FBQzlCLFlBQVEsRUFBRTtBQUFBLFdBQ0Q7QUFDRCxVQUFFO0FBQ0YsVUFBRTtBQUNGLGdCQUFRLFFBQVEsa0JBQWtCO0FBQ2xDO0FBQUEsV0FDQztBQUNELFVBQUU7QUFDRixVQUFFO0FBQ0YsZ0JBQVEsUUFBUSxtQkFBbUI7QUFDbkM7QUFBQSxXQUNDO0FBQ0QsVUFBRTtBQUNGLFVBQUU7QUFDRjtBQUNBO0FBQUEsV0FDQztBQUNELFVBQUU7QUFDRixVQUFFO0FBQ0Y7QUFDQTtBQUFBLFdBQ0M7QUFDRCxVQUFFO0FBQ0YsVUFBRTtBQUNGLFVBQUUsV0FBVyxvQkFBb0I7QUFDakM7QUFBQSxXQUNDO0FBQ0QsVUFBRTtBQUNGLFVBQUU7QUFDRixVQUFFLFdBQVcsbUJBQW1CO0FBQ2hDO0FBQUEsV0FDQztBQUNELFVBQUU7QUFDRixVQUFFO0FBQ0Y7QUFDQTtBQUFBLFdBQ0M7QUFDRCxVQUFFO0FBQ0YsVUFBRTtBQUNGO0FBQ0E7QUFBQTtBQUFBO0FBR1osTUFBSSxnQkFBZ0IsUUFBUSxlQUFlLFVBQVUsYUFBYTtBQUNsRSxTQUFPLEVBQUUsT0FBYyxNQUFZLGdCQUFnQztBQUFBO0FDNUJoRSxnQkFFUCxNQUVBLGNBRUEsV0FBVztBQUNQLE1BQUksVUFBVTtBQUNkLE1BQUksU0FBUztBQUNiLE1BQUksV0FBVztBQUNmLE1BQUksUUFBUTtBQUNaLE1BQUksS0FBSyxZQUFZLE1BQU0sWUFBWSxRQUFRLEdBQUcsT0FBTyxPQUFPLEdBQUcsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsZ0JBQWdCLEdBQUc7QUFDaEksTUFBSSxLQUFLLGdCQUFnQixPQUFPLFlBQVksR0FBRyxXQUFXLHFCQUFxQixHQUFHLG9CQUFvQixnQkFBZ0IsR0FBRztBQUN6SCxNQUFJLFlBQVksQ0FBQyxZQUFZLE1BQU07QUFDbkMsTUFBSSxjQUFjO0FBQUEsSUFDZDtBQUFBLElBQ0E7QUFBQSxJQUNBLFVBQVUsa0JBQWtCLFdBQ3RCLE9BQU8sV0FDUCxvQkFBb0IsV0FDaEIsU0FBUyxXQUNULGlCQUFpQixXQUNiLE1BQU0sV0FDTjtBQUFBLElBQ2Q7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBO0FBRUosTUFBSSxhQUFhLENBQUMsUUFBUSxpQkFBaUI7QUFDdkMsV0FBTztBQUFBO0FBRVgsTUFBSSxVQUFVLFFBQVE7QUFDbEIsV0FBTztBQUFBO0FBRVgsTUFBSSxhQUFhLENBQUMsUUFBUSxXQUFXLEtBQUssT0FBTztBQUNqRCxNQUFJLFFBQVEsU0FBUyxTQUFTLElBQUksUUFBUSxPQUFPLE1BQU07QUFDdkQsTUFBSSxXQUFXO0FBQ1gsZUFBVyxLQUFLLFFBQVEsV0FBVztBQUNuQyxZQUFRLFNBQVMsU0FBUyxJQUFJLFFBQVEsU0FBUyxRQUFRLE9BQU87QUFBQTtBQUVsRSxNQUFJLGNBQWEsUUFBUSxXQUFXO0FBQ3BDLE1BQUksV0FBWUEsUUFBTSxjQUFjLGFBQVksRUFBRSxNQUFZLGNBQTRCO0FBQzFGLE1BQUksWUFBWSxXQUFXLEtBQUs7QUFDaEMsTUFBSSxDQUFDLFFBQVEsUUFBUSxDQUFDLFFBQVEsWUFBWTtBQUN0QyxXQUFPLFNBQVMsU0FBUyxJQUFJLGNBQWMsRUFBRSxxQkFBcUI7QUFBQSxNQUMxRDtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUE7QUFBQTtBQUlaLE1BQUksY0FBYyxTQUFVLEdBQUc7QUFDM0IsUUFBSSxLQUFJLEtBQUksSUFBSTtBQUNoQixRQUFJLGtCQUFrQixVQUFVO0FBQzVCLE1BQUMsT0FBSyxPQUFPLGdCQUFnQixRQUFRLFFBQU8sU0FBUyxTQUFTLElBQUcsS0FBSyxRQUFRLE1BQU0sV0FBVztBQUFBLGVBRTFGLG9CQUFvQixVQUFVO0FBQ25DLE1BQUMsT0FBSyxTQUFTLGdCQUFnQixRQUFRLFFBQU8sU0FBUyxTQUFTLElBQUcsS0FBSyxVQUFVLE1BQU0sV0FBVztBQUFBLGVBRTlGLGlCQUFpQixVQUFVO0FBQ2hDLE1BQUMsTUFBSyxNQUFNLGdCQUFnQixRQUFRLE9BQU8sU0FBUyxTQUFTLEdBQUcsS0FBSyxPQUFPLE1BQU0sV0FBVztBQUFBO0FBRWpHLElBQUMsTUFBSyxRQUFRLGdCQUFnQixRQUFRLE9BQU8sU0FBUyxTQUFTLEdBQUcsS0FBSyxTQUFTLE1BQU0sV0FBVztBQUFBO0FBRXJHLE1BQUksY0FBYyxTQUFVLEdBQUc7QUFDM0IsUUFBSTtBQUNKLFVBQU07QUFDTixJQUFDLE9BQUssUUFBUSxnQkFBZ0IsUUFBUSxRQUFPLFNBQVMsU0FBUyxJQUFHLEtBQUssU0FBUyxNQUFNLFdBQVc7QUFBQTtBQUVyRyxNQUFJLGFBQWEsU0FBVSxHQUFHO0FBQzFCLFFBQUk7QUFDSjtBQUNBLElBQUMsT0FBSyxRQUFRLGVBQWUsUUFBUSxRQUFPLFNBQVMsU0FBUyxJQUFHLEtBQUssU0FBUyxNQUFNLFdBQVc7QUFBQTtBQUVwRyxNQUFJLGdCQUFnQixTQUFVLEdBQUc7QUFDN0IsUUFBSTtBQUNKLG1CQUFlO0FBQ2YsSUFBQyxPQUFLLFFBQVEsa0JBQWtCLFFBQVEsUUFBTyxTQUFTLFNBQVMsSUFBRyxLQUFLLFNBQVMsTUFBTSxXQUFXO0FBQUE7QUFFdkcsTUFBSSxjQUFjLFNBQVUsR0FBRztBQUMzQixRQUFJO0FBQ0osSUFBQyxPQUFLLFFBQVEsZ0JBQWdCLFFBQVEsUUFBTyxTQUFTLFNBQVMsSUFBRyxLQUFLLFNBQVMsTUFBTSxXQUFXO0FBQUE7QUFFckcsTUFBSSxtQkFBbUIsU0FBVSxHQUFHO0FBQ2hDLFFBQUk7QUFDSixJQUFDLE9BQUssUUFBUSxxQkFBcUIsUUFBUSxRQUFPLFNBQVMsU0FBUyxJQUFHLEtBQUssU0FBUyxNQUFNLFdBQVc7QUFBQTtBQUUxRyxNQUFJLG1CQUFtQixTQUFVLEdBQUc7QUFDaEMsUUFBSTtBQUNKLElBQUMsT0FBSyxRQUFRLHFCQUFxQixRQUFRLFFBQU8sU0FBUyxTQUFTLElBQUcsS0FBSyxTQUFTLE1BQU0sV0FBVztBQUFBO0FBRTFHLE1BQUksb0JBQW9CLFNBQVUsR0FBRztBQUNqQyxRQUFJO0FBQ0osSUFBQyxPQUFLLFFBQVEsc0JBQXNCLFFBQVEsUUFBTyxTQUFTLFNBQVMsSUFBRyxLQUFLLFNBQVMsTUFBTSxXQUFXO0FBQUE7QUFFM0csTUFBSSxpQkFBaUIsU0FBVSxHQUFHO0FBQzlCLFFBQUk7QUFDSixJQUFDLE9BQUssUUFBUSxtQkFBbUIsUUFBUSxRQUFPLFNBQVMsU0FBUyxJQUFHLEtBQUssU0FBUyxNQUFNLFdBQVc7QUFBQTtBQUV4RyxNQUFJLGtCQUFrQixTQUFVLEdBQUc7QUFDL0IsUUFBSTtBQUNKLElBQUMsT0FBSyxRQUFRLG9CQUFvQixRQUFRLFFBQU8sU0FBUyxTQUFTLElBQUcsS0FBSyxTQUFTLE1BQU0sV0FBVztBQUFBO0FBRXpHLE1BQUksbUJBQW1CLFNBQVUsR0FBRztBQUNoQyxRQUFJO0FBQ0osSUFBQyxPQUFLLFFBQVEscUJBQXFCLFFBQVEsUUFBTyxTQUFTLFNBQVMsSUFBRyxLQUFLLFNBQVMsTUFBTSxXQUFXO0FBQUE7QUFFMUcsTUFBSSxXQUFXO0FBQ1gsZUFBVyxLQUFLLFFBQVEsV0FBVztBQUNuQyxZQUFRLFNBQVMsU0FBUyxJQUFJLFFBQVEsU0FBUyxRQUFRLE9BQU87QUFBQTtBQUVsRSxjQUFZLFdBQVcsS0FBSztBQUM1QixNQUFJLFdBQVcsVUFBVSxVQUFVLFdBQVcsVUFBVTtBQUN4RCxNQUFJLFdBQVcsZ0JBQWdCLElBQUk7QUFDbkMsU0FBTyxTQUFTLFNBQVMsSUFBSSxjQUFjLEVBQUUsYUFBYTtBQUFBLElBQ2xEO0FBQUEsSUFDQSxnQkFBZ0I7QUFBQSxJQUNoQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBO0FBQUE7QUM3Sm5CLGFBQWEsT0FBTztBQUN2QixNQUFJLFlBQVlBLFFBQU0sT0FBTztBQUM3QixNQUFJLE1BQU0sT0FBTyxNQUFNLE1BQU0sTUFBTSxjQUFjO0FBQ2pELE1BQUksY0FBYyxJQUFJLGFBQWEsc0JBQXNCLElBQUk7QUFDN0QsTUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUI7QUFDdEMsV0FBT0EsUUFBTSxjQUFjQSxRQUFNLFVBQVU7QUFBQTtBQUUvQyxNQUFJLHFCQUFxQjtBQUNyQixXQUFPQSxRQUFNLGNBQWMsT0FBTyxTQUFTLElBQUk7QUFBQTtBQUVuRCxTQUFPQSxRQUFNLGNBQWMsUUFBUSxTQUFTLEVBQUUsS0FBSyxhQUFhO0FBQUE7QUNiN0Qsb0JBQW9CLE9BQU87QUFDOUIsTUFBSSxLQUFLLGdCQUFnQixVQUFTLEdBQUcsUUFBUSxhQUFhLEdBQUcsWUFBWSxTQUFTLEdBQUcsUUFBUSxZQUFXLEdBQUcsT0FBTyxVQUFVLGFBQVksR0FBRyxXQUFXO0FBQ3RKLFNBQVFBLFFBQU0sY0FBY0EsUUFBTSxVQUFVLE1BQ3hDQSxRQUFNLGNBQWMsUUFBUSxFQUFFLGVBQWUsVUFBVSxXQUFVLE1BQU0sTUFBTSxFQUFFLFFBQVEsYUFDdkZBLFFBQU0sY0FBYyxRQUFRLEVBQUUsV0FBVyxXQUFXLFNBQVMsT0FBTyxPQUFPLFdBQVcsVUFBUyxNQUFNLE1BQU0sTUFBTSxXQUFXLEVBQUUsUUFBUTtBQUFBO0FDSHZJLGtCQUFrQixPQUFPO0FBQzVCLE1BQUksV0FBVyxNQUFNLFVBQVUsUUFBUSxNQUFNLE9BQU8sV0FBVyxNQUFNLFVBQVUsVUFBVSxNQUFNLFNBQVMsWUFBWSxNQUFNLFdBQVcsUUFBUSxNQUFNO0FBQ25KLE1BQUksS0FBSyxnQkFBZ0IsYUFBYSxHQUFHLFlBQVksU0FBUyxHQUFHLFFBQVEsZ0JBQWUsR0FBRyxXQUFXO0FBQ3RHLFNBQVFBLFFBQU0sY0FBYyxPQUFPLEVBQUUsV0FBc0IsU0FDdkRBLFFBQU0sY0FBYyxRQUFRLEVBQUUsV0FBVyxXQUFXLFdBQVcsTUFBTSxnQkFDckVBLFFBQU0sY0FBYyxVQUFVLEVBQUUsY0FBYyxNQUFNLGVBQWUsV0FBVyxXQUFXLFVBQVUsT0FBTyxPQUFPLFVBQVUsT0FBYyxZQUFzQixXQUMvSkEsUUFBTSxjQUFjLE9BQU8sRUFBRSxXQUFXLFdBQVcsZUFBZSxPQUFPLE9BQU8sZUFBZSxlQUFlLFVBQzFHLFNBQ0FBLFFBQU0sY0FBYyxlQUFjLEVBQUUsV0FBVyxXQUFXLGVBQWUsT0FBTyxPQUFPO0FBQUE7QUNYNUYsa0JBQWtCO0FBQ3JCLE1BQUksS0FBSyxnQkFBZ0IsU0FBUyxHQUFHLFFBQVEsU0FBUyxHQUFHLFFBQVEsUUFBUSxHQUFHLFdBQVc7QUFDdkYsTUFBSSxDQUFDO0FBQ0QsV0FBT0EsUUFBTSxjQUFjQSxRQUFNLFVBQVU7QUFDL0MsU0FBUUEsUUFBTSxjQUFjLFNBQVMsRUFBRSxXQUFXLE9BQU8sT0FBTyxPQUFPLFNBQ25FQSxRQUFNLGNBQWMsTUFBTSxNQUN0QkEsUUFBTSxjQUFjLE1BQU0sRUFBRSxTQUFTLEtBQUs7QUFBQTtBQ0ovQyxxQkFBcUIsU0FBUTtBQUNoQyxNQUFJLFNBQVEsWUFBWSxJQUFJLFFBQVEsRUFBRSxRQUFRO0FBQzlDLE1BQUksT0FBTztBQUNYLFdBQVMsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLO0FBQ3hCLFFBQUksTUFBTSxRQUFRLFFBQU87QUFDekIsU0FBSyxLQUFLO0FBQUE7QUFFZCxTQUFPO0FBQUE7QUNOSixnQkFBZ0I7QUFDbkIsTUFBSSxLQUFLLGdCQUFnQixhQUFhLEdBQUcsWUFBWSxTQUFTLEdBQUcsUUFBUSxpQkFBaUIsR0FBRyxnQkFBZ0IsVUFBUyxHQUFHLFFBQVEscUJBQW9CLEdBQUcsV0FBVyxtQkFBbUIsZ0JBQWUsR0FBRyxPQUFPO0FBQy9NLE1BQUksV0FBVyxZQUFZO0FBQzNCLFNBQVFBLFFBQU0sY0FBYyxTQUFTLEVBQUUsT0FBTyxPQUFPLE1BQU0sV0FBVyxXQUFXLFFBQzdFQSxRQUFNLGNBQWMsTUFBTSxFQUFFLE9BQU8sT0FBTyxVQUFVLFdBQVcsV0FBVyxZQUN0RSxrQkFBbUJBLFFBQU0sY0FBYyxNQUFNLEVBQUUsT0FBTyxPQUFPLE9BQU8sT0FBTyxXQUFXLFdBQVcsV0FBVyxjQUM1RyxTQUFTLElBQUksU0FBVSxTQUFTLEdBQUc7QUFBRSxXQUFRQSxRQUFNLGNBQWMsTUFBTSxFQUFFLEtBQUssR0FBRyxPQUFPLE9BQU8sV0FBVyxXQUFXLFdBQVcsT0FBTyxPQUFPLGFBQzFJQSxRQUFNLGNBQWMsUUFBUSxFQUFFLGVBQWUsUUFBUSxtQkFBa0IsU0FBUyxFQUFFLFFBQVEsYUFDMUZBLFFBQU0sY0FBYyxRQUFRLEVBQUUsV0FBVyxXQUFXLFdBQVcsY0FBYSxTQUFTLEVBQUUsUUFBUTtBQUFBO0FBQUE7QUNUeEcsc0JBQXNCLE9BQU87QUFDaEMsU0FBUUEsUUFBTSxjQUFjLE9BQU8sU0FBUyxFQUFFLE9BQU8sT0FBTyxRQUFRLE9BQU8sU0FBUyxlQUFlLGVBQWUsa0JBQWtCLFFBQ2hJQSxRQUFNLGNBQWMsUUFBUSxFQUFFLEdBQUcsMmhCQUEyaEIsTUFBTSxnQkFBZ0IsVUFBVTtBQUFBO0FDRjdsQixrQkFBa0IsT0FBTztBQUM1QixTQUFRQSxRQUFNLGNBQWMsT0FBTyxTQUFTLEVBQUUsT0FBTyxRQUFRLFFBQVEsUUFBUSxTQUFTLGVBQWUsZUFBZSxjQUFjLFFBQzlIQSxRQUFNLGNBQWMsUUFBUSxFQUFFLEdBQUcsbWhCQUFtaEIsTUFBTSxnQkFBZ0IsVUFBVTtBQUFBO0FDRnJsQixtQkFBbUIsT0FBTztBQUM3QixTQUFRQSxRQUFNLGNBQWMsT0FBTyxTQUFTLEVBQUUsT0FBTyxRQUFRLFFBQVEsUUFBUSxTQUFTLGlCQUFpQixPQUFPLEVBQUUsZUFBZSxnQkFDM0hBLFFBQU0sY0FBYyxRQUFRLEVBQUUsR0FBRyxzaEJBQXNoQixNQUFNO0FBQUE7QUNEOWpCLGFBQWEsT0FBTztBQUN2QixNQUFJLEtBQUssZ0JBQWdCLFNBQVMsR0FBRyxRQUFRLGFBQWEsR0FBRyxZQUFZLGlCQUFpQixHQUFHLGdCQUFnQixLQUFLLEdBQUcsWUFBWSxPQUFNLEdBQUcsS0FBSyxjQUFhLEdBQUc7QUFDL0osTUFBSTtBQUNKLE1BQUksZ0JBQWdCO0FBQ2hCLHFCQUFrQkEsUUFBTSxjQUFjLE1BQU0sRUFBRSxXQUFXLFdBQVcsTUFBTSxPQUFPLE9BQU8sUUFDcEZBLFFBQU0sY0FBYyxhQUFZLEVBQUUsUUFBUSxNQUFNLFlBQVksT0FBTyxNQUFNO0FBQUE7QUFFakYsU0FBUUEsUUFBTSxjQUFjLE1BQU0sRUFBRSxXQUFXLFdBQVcsS0FBSyxPQUFPLE9BQU8sT0FDekUsZ0JBQ0EsTUFBTSxNQUFNLElBQUksU0FBVSxNQUFNO0FBQUUsV0FBUUEsUUFBTSxjQUFjLE1BQU0sRUFBRSxXQUFXLFdBQVcsTUFBTSxPQUFPLE9BQU8sTUFBTSxLQUFLLFlBQVksU0FDbklBLFFBQU0sY0FBYyxNQUFLLEVBQUUsY0FBYyxNQUFNLGNBQWM7QUFBQTtBQUFBO0FDVGxFLG9CQUFvQixPQUFPO0FBQzlCLE1BQUksYUFBYSxNQUFNLFFBQVEsUUFBUSxNQUFNO0FBQzdDLE1BQUksS0FBSyxnQkFBZ0Isb0JBQW9CLEdBQUcsbUJBQW1CLFNBQVMsR0FBRyxRQUFRLGFBQWEsR0FBRyxZQUFZLFVBQVMsR0FBRyxRQUFRLG1CQUFrQixHQUFHLE9BQU8saUJBQWlCLG9CQUFtQixHQUFHLFdBQVc7QUFDck4sTUFBSSxjQUFjLFNBQVUsR0FBRztBQUMzQiwwQkFBc0IsUUFBUSxzQkFBc0IsU0FBUyxTQUFTLGtCQUFrQixZQUFZLE9BQU87QUFBQTtBQUUvRyxNQUFJLFVBQVUsa0JBQWlCLE9BQU8sYUFBYSxFQUFFLFFBQVE7QUFDN0QsTUFBSSxDQUFDLG1CQUFtQjtBQUNwQixXQUFRQSxRQUFNLGNBQWMsUUFBUSxFQUFFLFdBQVcsV0FBVyxZQUFZLE9BQU8sT0FBTyxjQUFjO0FBQUE7QUFFeEcsTUFBSSxRQUFRLGlCQUFnQixPQUFPLGFBQWEsRUFBRSxRQUFRO0FBQzFELFNBQVFBLFFBQU0sY0FBYyxRQUFRLEVBQUUsY0FBYyxPQUFPLFdBQVcsV0FBVyxZQUFZLE9BQU8sT0FBTyxZQUFZLFNBQVMsZUFBZTtBQUFBO0FDZjVJLElBQUksb0JBQW9CO0FBQUEsRUFDM0IsTUFBTTtBQUFBLEVBQ04saUJBQWlCO0FBQUEsRUFDakIsaUJBQWlCO0FBQUEsRUFDakIsU0FBUztBQUFBLEVBQ1QsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsZUFBZTtBQUFBLEVBQ2YsYUFBYTtBQUFBLEVBQ2IsaUJBQWlCO0FBQUEsRUFDakIsZUFBZTtBQUFBLEVBQ2YsbUJBQW1CO0FBQUEsRUFDbkIsVUFBVTtBQUFBLEVBQ1YsZ0JBQWdCO0FBQUEsRUFDaEIsZUFBZTtBQUFBLEVBQ2YsZUFBZTtBQUFBLEVBQ2YsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsS0FBSztBQUFBLEVBQ0wsWUFBWTtBQUFBLEVBQ1oscUJBQXFCO0FBQUEsRUFDckIsaUJBQWlCO0FBQUEsRUFDakIsVUFBVTtBQUFBLEVBQ1YsS0FBSztBQUFBLEVBQ0wsWUFBWTtBQUFBLEVBQ1osTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsYUFBYTtBQUFBO0FDakNWLHVCQUF1QixPQUFPLFNBQVM7QUFDMUMsU0FBTyxPQUFPLE9BQU8sVUFBVTtBQUFBO0FDRDVCLG1CQUFtQixLQUFLLFNBQVM7QUFDcEMsU0FBTyxPQUFPLEtBQUssS0FBSztBQUFBO0FDRHJCLDRCQUE0QixPQUFPLFNBQVM7QUFDL0MsU0FBTyxPQUFPLE9BQU8sUUFBUTtBQUFBO0FDRjFCLDBCQUEwQixZQUFZO0FBQ3pDLFNBQU8sS0FBSztBQUFBO0FDQVQsMkJBQTJCLFNBQVMsU0FBUztBQUNoRCxTQUFPLE9BQU8sU0FBUyxVQUFVO0FBQUE7QUNEOUIsMkJBQTJCLE1BQU0sU0FBUztBQUM3QyxTQUFPLE9BQU8sTUFBTSxRQUFRO0FBQUE7Ozs7Ozs7Ozs7O0FDRHpCLElBQUksV0FBVyxTQUFVLEtBQUssVUFBVSxTQUFTO0FBQ3BELFNBQU8sT0FBTyxLQUFLLGtCQUFrQjtBQUFBO0FDRmxDLElBQUkscUJBQXFCLFdBQVk7QUFDeEMsU0FBTztBQUFBO0FDREosSUFBSSxZQUFZLFdBQVk7QUFDL0IsU0FBTztBQUFBO0FDREosSUFBSSxnQkFBZ0IsV0FBWTtBQUNuQyxTQUFPO0FBQUE7QUNBSixJQUFJLGVBQWUsU0FBVSxLQUFLLFNBQVM7QUFDOUMsU0FBTyxPQUFPLEtBQUssUUFBUTtBQUFBO0FDRnhCLElBQUksa0JBQWtCLFNBQVUsSUFBRztBQUN0QyxTQUFPLGFBQWE7QUFBQTtBQ0RqQixJQUFJLG9CQUFvQixXQUFZO0FBQ3ZDLFNBQU87QUFBQTs7Ozs7Ozs7Ozs7O0FDQ0osMEJBQTBCLE9BQU87QUFDcEMsTUFBSSxXQUFXLE1BQU0sVUFBVSxTQUFTLE1BQU0sUUFBUSxZQUFZLE1BQU0sV0FBVyxVQUFVLE1BQU07QUFDbkcsTUFBSSxXQUFXLE1BQU0sVUFBVSxVQUFTLE1BQU07QUFDOUMsTUFBSSxXQUFXO0FBQ1gsZUFBVyxhQUFhO0FBQUEsYUFFbkIsVUFBVTtBQUNmLGVBQVcsSUFBSSxLQUFLLFVBQVUsR0FBRztBQUFBO0FBRXJDLE1BQUksU0FBUztBQUNULGNBQVMsYUFBYTtBQUFBLGFBRWpCLFFBQVE7QUFDYixjQUFTLElBQUksS0FBSyxRQUFRLElBQUk7QUFBQTtBQUVsQyxTQUFPO0FBQUEsSUFDSCxVQUFVLFdBQVcsV0FBVyxZQUFZO0FBQUEsSUFDNUMsUUFBUSxVQUFTLFdBQVcsV0FBVTtBQUFBO0FBQUE7QUNLdkMsSUFBSSxtQkFBbUJBLFFBQU0sY0FBYztBQU8zQywyQkFBMkIsT0FBTztBQUNyQyxNQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJO0FBQzVCLE1BQUksV0FBVyxNQUFNLFVBQVUsZUFBZSxNQUFNO0FBQ3BELE1BQUksVUFBVSxNQUFLLGFBQWEsWUFBWSxRQUFRLE9BQU8sU0FBUyxLQUFLO0FBQ3pFLE1BQUksaUJBQWtCLE1BQUssYUFBYSxvQkFBb0IsUUFBUSxPQUFPLFNBQVMsS0FBSztBQUN6RixNQUFJLFFBQVMsTUFBSyxhQUFhLFdBQVcsUUFBUSxPQUFPLFNBQVMsS0FBSyxJQUFJO0FBRTNFLE1BQUksS0FBSyxpQkFBaUIsZUFBZSxXQUFXLEdBQUcsVUFBVSxVQUFTLEdBQUc7QUFHN0UsTUFBSSxnQkFBaUIsTUFBSyxhQUFhLG1CQUFtQixRQUFRLE9BQU8sU0FBUyxLQUFLO0FBQ3ZGLE1BQUksQ0FBQyxZQUFZLENBQUM7QUFDZCxvQkFBZ0I7QUFFUCxlQUFhO0FBQW1CLGVBQWE7QUFBb0IsZUFBYTtBQUFxQixlQUFhO01BQVcsZUFBZSxPQUFPLGNBQWMsQ0FBQyxVQUFVLFlBQVksV0FBVztBQUM5TSxNQUFJLFVBQVUsU0FBUyxTQUFTLElBQUksZUFBZTtBQUFBLElBQUU7QUFBQSxJQUE4QjtBQUFBLElBQW9CLFFBQVE7QUFBQSxJQUFRO0FBQUEsSUFBYyxRQUFRO0FBQUEsSUFBUSxvQkFBcUIsTUFBSyxhQUFhLHdCQUF3QixRQUFRLE9BQU8sU0FBUyxLQUFLO0FBQUEsSUFFN08sZ0JBQWdCO0FBQUEsSUFBWSxXQUFZLE1BQUssYUFBYSxlQUFlLFFBQVEsT0FBTyxTQUFTLEtBQUs7QUFBQSxJQUFJO0FBQUEsSUFBZ0MsUUFBUyxNQUFLLGFBQWEsWUFBWSxRQUFRLE9BQU8sU0FBUyxLQUFLO0FBQUEsSUFBSSxZQUFZLFNBQVMsU0FBUyxJQUFJLG9CQUFvQixhQUFhO0FBQUEsSUFBYSxZQUFZLFNBQVMsU0FBUyxJQUFJLGFBQWEsYUFBYTtBQUFBLElBQWEsUUFBUSxTQUFTLFNBQVMsSUFBSSxTQUFTLGFBQWE7QUFBQSxJQUFTLFlBQVksU0FBUyxFQUFFLFNBQWtCLGNBQTRCLEtBQVUsWUFBd0IsVUFBb0IsUUFBZ0IsTUFBWSxjQUE0QixXQUFzQixVQUFvQixLQUFVLGNBQTBCLGFBQWE7QUFBQTtBQUMxckIsU0FBUUEsUUFBTSxjQUFjLGlCQUFpQixVQUFVLEVBQUUsT0FBTyxXQUFXO0FBQUE7QUM1Q3hFLHdCQUF3QjtBQUMzQixNQUFJLFVBQVVBLFFBQU0sV0FBVztBQUMvQixNQUFJLENBQUMsU0FBUztBQUNWLFVBQU0sSUFBSSxNQUFNO0FBQUE7QUFFcEIsU0FBTztBQUFBO0FDWkosMkJBQTJCLE9BQU8sU0FBUztBQUM5QyxNQUFJLE9BQU87QUFDWCxNQUFJLGdCQUFnQixVQUFVLE9BQU87QUFDckMsTUFBSSxVQUFVLHlCQUF5QixlQUFlO0FBQ3RELFdBQVMsSUFBSSxHQUFHLEtBQUssU0FBUyxLQUFLO0FBQy9CLFFBQUksVUFBVSxRQUFRLE9BQU87QUFDN0IsU0FBSyxLQUFLO0FBQUE7QUFFZCxTQUFPO0FBQUE7QUNSSiw2QkFBNkIsT0FBTyxTQUFTO0FBQ2hELE1BQUksT0FBTztBQUNYLE1BQUksaUJBQWlCLFlBQVksT0FBTztBQUN4QyxNQUFJLFlBQVkseUJBQXlCLE9BQU87QUFDaEQsV0FBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLEtBQUs7QUFDaEMsUUFBSSxTQUFTLFFBQVEsZ0JBQWdCO0FBQ3JDLFNBQUssS0FBSztBQUFBO0FBRWQsU0FBTztBQUFBO0FDSEosa0JBQWtCLE9BQU8sSUFBSTtBQUNoQyxNQUFJLFVBQVMsR0FBRyxRQUFRLGFBQWEsR0FBRztBQUN4QyxNQUFJLGFBQWEsYUFBYTtBQUM5QixNQUFJLFdBQVcsV0FBVztBQUMxQixNQUFJLE9BQU8seUJBQXlCLFVBQVU7QUFDOUMsTUFBSSxRQUFRO0FBQ1osTUFBSSxXQUFXLEVBQUUsWUFBWSxHQUFHLE9BQU87QUFDdkMsV0FBUyxJQUFJLEdBQUcsS0FBSyxNQUFNLEtBQUs7QUFDNUIsUUFBSSxPQUFPLFFBQVEsWUFBWTtBQUMvQixRQUFJLE9BQU8sUUFBUSxNQUFNLEVBQUUsUUFBUTtBQUNuQyxRQUFJLFNBQVMsZUFBZSxNQUFNO0FBRTlCLFVBQUksWUFBWSxvQkFBb0IsTUFBTSxFQUFFLFFBQVE7QUFDcEQsaUJBQVcsRUFBRSxZQUFZLE1BQU0sT0FBTztBQUN0QyxZQUFNLEtBQUs7QUFBQTtBQUVmLGFBQVMsTUFBTSxLQUFLO0FBQUE7QUFFeEIsTUFBSSxVQUFVLFNBQVMsTUFBTSxTQUFTLE1BQU0sU0FBUztBQUNyRCxNQUFJLFVBQVUsa0JBQWtCLFNBQVMsRUFBRSxRQUFRO0FBQ25ELFdBQVMsUUFBUSxTQUFTLE1BQU0sT0FBTztBQUV2QyxNQUFJLFlBQVk7QUFDWixRQUFJLGVBQWUsU0FBUyxNQUFNLFNBQVMsTUFBTSxTQUFTO0FBQzFELFFBQUksZUFBZSxnQkFBZ0IsT0FBTyxFQUFFLFFBQVE7QUFDcEQsUUFBSSxlQUFlLEdBQUc7QUFDbEIsVUFBSSxXQUFXLHlCQUF5QixTQUFTLGNBQWMsSUFBSSxlQUFlO0FBQ2xGLGVBQVMsSUFBSSxHQUFHLElBQUksVUFBVSxLQUFLO0FBQy9CLFlBQUksT0FBTyxRQUFRLGNBQWMsSUFBSTtBQUNyQyxZQUFJLE9BQU8sUUFBUSxNQUFNLEVBQUUsUUFBUTtBQUNuQyxZQUFJLFNBQVMsZUFBZSxNQUFNO0FBQzlCLHFCQUFXLEVBQUUsWUFBWSxNQUFNLE9BQU87QUFDdEMsZ0JBQU0sS0FBSztBQUFBO0FBRWYsaUJBQVMsTUFBTSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBSWhDLFNBQU87QUFBQTtBQ3RDSixlQUFlLE9BQU87QUFDekIsTUFBSSxLQUFLLGdCQUFnQixVQUFTLEdBQUcsUUFBUSxhQUFhLEdBQUcsWUFBWSxTQUFTLEdBQUcsUUFBUSxXQUFXLEdBQUcsVUFBVSxhQUFhLEdBQUcsWUFBWSxLQUFLLEdBQUcsWUFBWSxRQUFPLEdBQUcsTUFBTSxPQUFNLEdBQUcsS0FBSyxVQUFTLEdBQUc7QUFDL00sTUFBSSxRQUFRLFNBQVMsTUFBTSxjQUFjLEVBQUUsUUFBUSxTQUFRO0FBQzNELFNBQVFBLFFBQU0sY0FBYyxTQUFTLEVBQUUsV0FBVyxXQUFXLE9BQU8sT0FBTyxPQUFPLE9BQU8sTUFBTSxRQUFRLG1CQUFtQixNQUFNLHNCQUM1SCxDQUFDLFlBQVlBLFFBQU0sY0FBYyxPQUFNLE9BQ3ZDQSxRQUFNLGNBQWMsU0FBUyxFQUFFLFdBQVcsV0FBVyxPQUFPLE9BQU8sT0FBTyxTQUFTLE1BQU0sSUFBSSxTQUFVLE1BQU07QUFBRSxXQUFRQSxRQUFNLGNBQWMsTUFBSyxFQUFFLGNBQWMsTUFBTSxjQUFjLEtBQUssS0FBSyxZQUFZLE9BQU8sS0FBSyxPQUFPLFlBQVksS0FBSztBQUFBLE9BQzlPQSxRQUFNLGNBQWMsU0FBUTtBQUFBO0FDTDdCLGVBQWUsT0FBTztBQUN6QixNQUFJO0FBQ0osTUFBSSxLQUFLLGdCQUFnQixNQUFNLEdBQUcsS0FBSyxhQUFhLEdBQUcsWUFBWSxTQUFTLEdBQUcsUUFBUSxXQUFVLEdBQUcsV0FBVztBQUMvRyxNQUFJLGdCQUFnQixnQkFBZ0I7QUFDcEMsTUFBSSxZQUFZO0FBQ2hCLE1BQUksWUFBWSxDQUFDLFdBQVc7QUFDNUIsTUFBSSxRQUFRLE9BQU87QUFDbkIsTUFBSSxVQUFVLE1BQU0saUJBQWlCO0FBQ3JDLE1BQUksUUFBUSxNQUFNLGlCQUFpQixjQUFjLFNBQVM7QUFDMUQsTUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDO0FBQzVCLE1BQUksUUFBUSxPQUFPO0FBQ2YsU0FBSyxDQUFDLFNBQVMsUUFBUSxRQUFRLEdBQUcsSUFBSSxVQUFVLEdBQUc7QUFBQTtBQUV2RCxNQUFJLFNBQVM7QUFDVCxjQUFVLEtBQUssV0FBVztBQUMxQixZQUFRLFNBQVMsU0FBUyxJQUFJLFFBQVEsT0FBTztBQUFBO0FBRWpELE1BQUksT0FBTztBQUNQLGNBQVUsS0FBSyxXQUFXO0FBQzFCLFlBQVEsU0FBUyxTQUFTLElBQUksUUFBUSxPQUFPO0FBQUE7QUFFakQsTUFBSSxVQUFVO0FBQ1YsY0FBVSxLQUFLLFdBQVc7QUFDMUIsWUFBUSxTQUFTLFNBQVMsSUFBSSxRQUFRLE9BQU87QUFBQTtBQUVqRCxTQUFRQSxRQUFNLGNBQWMsT0FBTyxFQUFFLEtBQUssTUFBTSxjQUFjLFdBQVcsVUFBVSxLQUFLLE1BQU0sU0FDMUZBLFFBQU0sY0FBYyxVQUFTLEVBQUUsSUFBSSxXQUFXLGNBQWMsTUFBTSxpQkFDbEVBLFFBQU0sY0FBYyxPQUFPLEVBQUUsbUJBQW1CLFdBQVcsY0FBYyxNQUFNO0FBQUE7QUN4QmhGLGdCQUFnQjtBQUNuQixNQUFJLEtBQUssZ0JBQWdCLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxXQUFXLGFBQWEsR0FBRyxZQUFZLFFBQVEsR0FBRyxPQUFPLFNBQVMsR0FBRyxRQUFRLGlCQUFpQixHQUFHLGdCQUFnQixpQkFBaUIsR0FBRyxnQkFBZ0IsZUFBZSxHQUFHO0FBQzdOLE1BQUksS0FBSyxZQUFZLGNBQWMsR0FBRyxhQUFhLFFBQVEsR0FBRztBQUM5RCxNQUFJLEtBQUtBLFFBQU0sU0FBUyxRQUFRLGtCQUFrQixHQUFHLElBQUkscUJBQXFCLEdBQUc7QUFDakYsTUFBSSxnQkFBZ0IsZ0JBQWdCO0FBQ3BDLE1BQUksaUJBQWlCLENBQUMsY0FBYyxRQUFRLGNBQWMsU0FBUyxZQUFZLFdBQVc7QUFDMUYsTUFBSSxpQkFBaUIsR0FBRztBQUNwQixtQkFBZSxLQUFLLFdBQVc7QUFBQTtBQUVuQyxNQUFJLGdCQUFnQjtBQUNoQixtQkFBZSxLQUFLLFdBQVc7QUFBQTtBQUVuQ0EsVUFBTSxVQUFVLFdBQVk7QUFDeEIsUUFBSSxnQkFBZ0IsQ0FBQyxtQkFBbUIsYUFBYTtBQUNqRCxZQUFNO0FBQ04seUJBQW1CO0FBQUE7QUFBQSxLQUV4QixDQUFDLGNBQWMsaUJBQWlCLE9BQU87QUFDMUMsU0FBUUEsUUFBTSxjQUFjLE9BQU8sRUFBRSxXQUFXLGVBQWUsS0FBSyxNQUFNLE9BQU8sU0FBUyxTQUFTLElBQUksT0FBTyxPQUFPLFFBQVEsT0FDekhBLFFBQU0sY0FBYyxPQUFPLEVBQUUsV0FBVyxXQUFXLFFBQVEsT0FBTyxPQUFPLFVBQVUsY0FBYyxJQUFJLFNBQVUsT0FBTyxHQUFHO0FBQUUsV0FBUUEsUUFBTSxjQUFjLE9BQU8sRUFBRSxLQUFLLEdBQUcsY0FBYyxHQUFHLGNBQWM7QUFBQTtBQUFBO0FDbkJ4TSxzQkFBc0IsT0FBTztBQUNoQyxNQUFJLFdBQVcsTUFBTSxVQUFVLGVBQWUsT0FBTyxPQUFPLENBQUM7QUFDN0QsU0FBUUEsUUFBTSxjQUFjLG1CQUFtQixFQUFFLGdCQUM3Q0EsUUFBTSxjQUFjLG9CQUFvQixNQUNwQ0EsUUFBTSxjQUFjLHNCQUFzQixFQUFFLGdCQUN4Q0EsUUFBTSxjQUFjLHdCQUF3QixFQUFFLGdCQUMxQ0EsUUFBTSxjQUFjLHFCQUFxQixFQUFFLGdCQUN2Q0EsUUFBTSxjQUFjLG1CQUFtQixNQUNuQ0EsUUFBTSxjQUFjLGVBQWUsTUFBTTtBQUFBO0FDd0U5RCxtQkFBbUIsT0FBTztBQUM3QixTQUFRQSxRQUFNLGNBQWMsY0FBYyxTQUFTLElBQUksUUFDbkRBLFFBQU0sY0FBYyxNQUFNO0FBQUE7QUNwRDNCLElBQUksY0FBYyxzQkFBcUIsU0FBUztBQUNyRCxTQUFPLFFBQVEsT0FBTyxTQUFVLEtBQUssTUFBTTtBQUN6QyxRQUFJLE1BQU0sS0FBSyxJQUNYLFFBQVEsS0FBSztBQUNqQixRQUFJLE9BQU87QUFDWCxXQUFPO0FBQUEsS0FDTjtBQUFBO0FBTUUsSUFBSSw0QkFBNEIsT0FBTyxXQUFXLGVBQWUsT0FBTyxZQUFZLE9BQU8sU0FBUyxnQkFBZ0JnSSw4Q0FBd0JDO0FDcEQ1SSxJQUFJLE1BQU07QUFDVixJQUFJLFNBQVM7QUFDYixJQUFJLFFBQVE7QUFDWixJQUFJLE9BQU87QUFDWCxJQUFJLE9BQU87QUFDWCxJQUFJLGlCQUFpQixDQUFDLEtBQUssUUFBUSxPQUFPO0FBQzFDLElBQUksUUFBUTtBQUNaLElBQUksTUFBTTtBQUNWLElBQUksa0JBQWtCO0FBQ3RCLElBQUksV0FBVztBQUNmLElBQUksU0FBUztBQUNiLElBQUksWUFBWTtBQUNoQixJQUFJLHNCQUFtQywrQkFBZSxPQUFPLFNBQVUsS0FBSyxXQUFXO0FBQzVGLFNBQU8sSUFBSSxPQUFPLENBQUMsWUFBWSxNQUFNLE9BQU8sWUFBWSxNQUFNO0FBQUEsR0FDN0Q7QUFDSSxJQUFJLGFBQTBCLG1CQUFHLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxPQUFPLFNBQVUsS0FBSyxXQUFXO0FBQ3RHLFNBQU8sSUFBSSxPQUFPLENBQUMsV0FBVyxZQUFZLE1BQU0sT0FBTyxZQUFZLE1BQU07QUFBQSxHQUN4RTtBQUVJLElBQUksYUFBYTtBQUNqQixJQUFJLE9BQU87QUFDWCxJQUFJLFlBQVk7QUFFaEIsSUFBSSxhQUFhO0FBQ2pCLElBQUksT0FBTztBQUNYLElBQUksWUFBWTtBQUVoQixJQUFJLGNBQWM7QUFDbEIsSUFBSSxRQUFRO0FBQ1osSUFBSSxhQUFhO0FBQ2pCLElBQUksaUJBQWlCLENBQUMsWUFBWSxNQUFNLFdBQVcsWUFBWSxNQUFNLFdBQVcsYUFBYSxPQUFPO0FDOUI1RixxQkFBcUIsU0FBUztBQUMzQyxTQUFPLFVBQVcsU0FBUSxZQUFZLElBQUksZ0JBQWdCO0FBQUE7QUNEN0MsbUJBQW1CLE1BQU07QUFDdEMsTUFBSSxRQUFRLE1BQU07QUFDaEIsV0FBTztBQUFBO0FBR1QsTUFBSSxLQUFLLGVBQWUsbUJBQW1CO0FBQ3pDLFFBQUksZ0JBQWdCLEtBQUs7QUFDekIsV0FBTyxnQkFBZ0IsY0FBYyxlQUFlLFNBQVM7QUFBQTtBQUcvRCxTQUFPO0FBQUE7QUNSVCxtQkFBbUIsTUFBTTtBQUN2QixNQUFJLGFBQWEsVUFBVSxNQUFNO0FBQ2pDLFNBQU8sZ0JBQWdCLGNBQWMsZ0JBQWdCO0FBQUE7QUFHdkQsdUJBQXVCLE1BQU07QUFDM0IsTUFBSSxhQUFhLFVBQVUsTUFBTTtBQUNqQyxTQUFPLGdCQUFnQixjQUFjLGdCQUFnQjtBQUFBO0FBR3ZELHNCQUFzQixNQUFNO0FBRTFCLE1BQUksT0FBTyxlQUFlLGFBQWE7QUFDckMsV0FBTztBQUFBO0FBR1QsTUFBSSxhQUFhLFVBQVUsTUFBTTtBQUNqQyxTQUFPLGdCQUFnQixjQUFjLGdCQUFnQjtBQUFBO0FDZnZELHFCQUFxQixNQUFNO0FBQ3pCLE1BQUksUUFBUSxLQUFLO0FBQ2pCLFNBQU8sS0FBSyxNQUFNLFVBQVUsUUFBUSxTQUFVLE1BQU07QUFDbEQsUUFBSSxRQUFRLE1BQU0sT0FBTyxTQUFTO0FBQ2xDLFFBQUksYUFBYSxNQUFNLFdBQVcsU0FBUztBQUMzQyxRQUFJLFVBQVUsTUFBTSxTQUFTO0FBRTdCLFFBQUksQ0FBQyxjQUFjLFlBQVksQ0FBQyxZQUFZLFVBQVU7QUFDcEQ7QUFBQTtBQU1GLFdBQU8sT0FBTyxRQUFRLE9BQU87QUFDN0IsV0FBTyxLQUFLLFlBQVksUUFBUSxTQUFVLE9BQU07QUFDOUMsVUFBSSxRQUFRLFdBQVc7QUFFdkIsVUFBSSxVQUFVLE9BQU87QUFDbkIsZ0JBQVEsZ0JBQWdCO0FBQUEsYUFDbkI7QUFDTCxnQkFBUSxhQUFhLE9BQU0sVUFBVSxPQUFPLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU16RCxrQkFBZ0IsT0FBTztBQUNyQixNQUFJLFFBQVEsTUFBTTtBQUNsQixNQUFJLGdCQUFnQjtBQUFBLElBQ2xCLFFBQVE7QUFBQSxNQUNOLFVBQVUsTUFBTSxRQUFRO0FBQUEsTUFDeEIsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsUUFBUTtBQUFBO0FBQUEsSUFFVixPQUFPO0FBQUEsTUFDTCxVQUFVO0FBQUE7QUFBQSxJQUVaLFdBQVc7QUFBQTtBQUViLFNBQU8sT0FBTyxNQUFNLFNBQVMsT0FBTyxPQUFPLGNBQWM7QUFDekQsUUFBTSxTQUFTO0FBRWYsTUFBSSxNQUFNLFNBQVMsT0FBTztBQUN4QixXQUFPLE9BQU8sTUFBTSxTQUFTLE1BQU0sT0FBTyxjQUFjO0FBQUE7QUFHMUQsU0FBTyxXQUFZO0FBQ2pCLFdBQU8sS0FBSyxNQUFNLFVBQVUsUUFBUSxTQUFVLE1BQU07QUFDbEQsVUFBSSxVQUFVLE1BQU0sU0FBUztBQUM3QixVQUFJLGFBQWEsTUFBTSxXQUFXLFNBQVM7QUFDM0MsVUFBSSxrQkFBa0IsT0FBTyxLQUFLLE1BQU0sT0FBTyxlQUFlLFFBQVEsTUFBTSxPQUFPLFFBQVEsY0FBYztBQUV6RyxVQUFJLFFBQVEsZ0JBQWdCLE9BQU8sU0FBVSxRQUFPLFVBQVU7QUFDNUQsZUFBTSxZQUFZO0FBQ2xCLGVBQU87QUFBQSxTQUNOO0FBRUgsVUFBSSxDQUFDLGNBQWMsWUFBWSxDQUFDLFlBQVksVUFBVTtBQUNwRDtBQUFBO0FBR0YsYUFBTyxPQUFPLFFBQVEsT0FBTztBQUM3QixhQUFPLEtBQUssWUFBWSxRQUFRLFNBQVUsV0FBVztBQUNuRCxnQkFBUSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9oQyxvQkFBZTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osUUFBUUM7QUFBQUEsRUFDUixVQUFVLENBQUM7QUFBQTtBQ2pGRSwwQkFBMEIsV0FBVztBQUNsRCxTQUFPLFVBQVUsTUFBTSxLQUFLO0FBQUE7QUNGdkIsSUFBSSxNQUFNLEtBQUs7QUFDZixJQUFJLE1BQU0sS0FBSztBQUNmLElBQUksUUFBUSxLQUFLO0FDQVQsK0JBQStCLFNBQVMsY0FBYztBQUNuRSxNQUFJLGlCQUFpQixRQUFRO0FBQzNCLG1CQUFlO0FBQUE7QUFHakIsTUFBSSxPQUFPLFFBQVE7QUFDbkIsTUFBSSxTQUFTO0FBQ2IsTUFBSSxTQUFTO0FBRWIsTUFBSSxjQUFjLFlBQVksY0FBYztBQUMxQyxRQUFJLGVBQWUsUUFBUTtBQUMzQixRQUFJLGNBQWMsUUFBUTtBQUcxQixRQUFJLGNBQWMsR0FBRztBQUNuQixlQUFTLE1BQU0sS0FBSyxTQUFTLGVBQWU7QUFBQTtBQUc5QyxRQUFJLGVBQWUsR0FBRztBQUNwQixlQUFTLE1BQU0sS0FBSyxVQUFVLGdCQUFnQjtBQUFBO0FBQUE7QUFJbEQsU0FBTztBQUFBLElBQ0wsT0FBTyxLQUFLLFFBQVE7QUFBQSxJQUNwQixRQUFRLEtBQUssU0FBUztBQUFBLElBQ3RCLEtBQUssS0FBSyxNQUFNO0FBQUEsSUFDaEIsT0FBTyxLQUFLLFFBQVE7QUFBQSxJQUNwQixRQUFRLEtBQUssU0FBUztBQUFBLElBQ3RCLE1BQU0sS0FBSyxPQUFPO0FBQUEsSUFDbEIsR0FBRyxLQUFLLE9BQU87QUFBQSxJQUNmLEdBQUcsS0FBSyxNQUFNO0FBQUE7QUFBQTtBQzlCSCx1QkFBdUIsU0FBUztBQUM3QyxNQUFJLGFBQWEsc0JBQXNCO0FBR3ZDLE1BQUksUUFBUSxRQUFRO0FBQ3BCLE1BQUksU0FBUyxRQUFRO0FBRXJCLE1BQUksS0FBSyxJQUFJLFdBQVcsUUFBUSxVQUFVLEdBQUc7QUFDM0MsWUFBUSxXQUFXO0FBQUE7QUFHckIsTUFBSSxLQUFLLElBQUksV0FBVyxTQUFTLFdBQVcsR0FBRztBQUM3QyxhQUFTLFdBQVc7QUFBQTtBQUd0QixTQUFPO0FBQUEsSUFDTCxHQUFHLFFBQVE7QUFBQSxJQUNYLEdBQUcsUUFBUTtBQUFBLElBQ1g7QUFBQSxJQUNBO0FBQUE7QUFBQTtBQ3JCVyxrQkFBa0IsUUFBUSxPQUFPO0FBQzlDLE1BQUksV0FBVyxNQUFNLGVBQWUsTUFBTTtBQUUxQyxNQUFJLE9BQU8sU0FBUyxRQUFRO0FBQzFCLFdBQU87QUFBQSxhQUVBLFlBQVksYUFBYSxXQUFXO0FBQ3pDLFFBQUksT0FBTztBQUVYLE9BQUc7QUFDRCxVQUFJLFFBQVEsT0FBTyxXQUFXLE9BQU87QUFDbkMsZUFBTztBQUFBO0FBSVQsYUFBTyxLQUFLLGNBQWMsS0FBSztBQUFBLGFBQ3hCO0FBQUE7QUFJYixTQUFPO0FBQUE7QUNwQk0sNEJBQTBCLFNBQVM7QUFDaEQsU0FBTyxVQUFVLFNBQVMsaUJBQWlCO0FBQUE7QUNEOUIsd0JBQXdCLFNBQVM7QUFDOUMsU0FBTyxDQUFDLFNBQVMsTUFBTSxNQUFNLFFBQVEsWUFBWSxhQUFhO0FBQUE7QUNEakQsNEJBQTRCLFNBQVM7QUFFbEQsU0FBUyxZQUFVLFdBQVcsUUFBUSxnQkFDdEMsUUFBUSxhQUFhLE9BQU8sVUFBVTtBQUFBO0FDRHpCLHVCQUF1QixTQUFTO0FBQzdDLE1BQUksWUFBWSxhQUFhLFFBQVE7QUFDbkMsV0FBTztBQUFBO0FBR1QsU0FHRSxRQUFRLGdCQUNSLFFBQVEsY0FDUixjQUFhLFdBQVcsUUFBUSxPQUFPLFNBRXZDLG1CQUFtQjtBQUFBO0FDUnZCLDZCQUE2QixTQUFTO0FBQ3BDLE1BQUksQ0FBQyxjQUFjLFlBQ25CQyxtQkFBaUIsU0FBUyxhQUFhLFNBQVM7QUFDOUMsV0FBTztBQUFBO0FBR1QsU0FBTyxRQUFRO0FBQUE7QUFLakIsNEJBQTRCLFNBQVM7QUFDbkMsTUFBSSxZQUFZLFVBQVUsVUFBVSxjQUFjLFFBQVEsZUFBZTtBQUN6RSxNQUFJLE9BQU8sVUFBVSxVQUFVLFFBQVEsZUFBZTtBQUV0RCxNQUFJLFFBQVEsY0FBYyxVQUFVO0FBRWxDLFFBQUksYUFBYUEsbUJBQWlCO0FBRWxDLFFBQUksV0FBVyxhQUFhLFNBQVM7QUFDbkMsYUFBTztBQUFBO0FBQUE7QUFJWCxNQUFJLGNBQWMsY0FBYztBQUVoQyxTQUFPLGNBQWMsZ0JBQWdCLENBQUMsUUFBUSxRQUFRLFFBQVEsWUFBWSxnQkFBZ0IsR0FBRztBQUMzRixRQUFJLE1BQU1BLG1CQUFpQjtBQUkzQixRQUFJLElBQUksY0FBYyxVQUFVLElBQUksZ0JBQWdCLFVBQVUsSUFBSSxZQUFZLFdBQVcsQ0FBQyxhQUFhLGVBQWUsUUFBUSxJQUFJLGdCQUFnQixNQUFNLGFBQWEsSUFBSSxlQUFlLFlBQVksYUFBYSxJQUFJLFVBQVUsSUFBSSxXQUFXLFFBQVE7QUFDcFAsYUFBTztBQUFBLFdBQ0Y7QUFDTCxvQkFBYyxZQUFZO0FBQUE7QUFBQTtBQUk5QixTQUFPO0FBQUE7QUFLTSx5QkFBeUIsU0FBUztBQUMvQyxNQUFJLFVBQVMsVUFBVTtBQUN2QixNQUFJLGVBQWUsb0JBQW9CO0FBRXZDLFNBQU8sZ0JBQWdCLGVBQWUsaUJBQWlCQSxtQkFBaUIsY0FBYyxhQUFhLFVBQVU7QUFDM0csbUJBQWUsb0JBQW9CO0FBQUE7QUFHckMsTUFBSSxnQkFBaUIsYUFBWSxrQkFBa0IsVUFBVSxZQUFZLGtCQUFrQixVQUFVQSxtQkFBaUIsY0FBYyxhQUFhLFdBQVc7QUFDMUosV0FBTztBQUFBO0FBR1QsU0FBTyxnQkFBZ0IsbUJBQW1CLFlBQVk7QUFBQTtBQzlEekMsa0NBQWtDLFdBQVc7QUFDMUQsU0FBTyxDQUFDLE9BQU8sVUFBVSxRQUFRLGNBQWMsSUFBSSxNQUFNO0FBQUE7QUNBcEQsZ0JBQWdCQyxPQUFLLE9BQU9DLE9BQUs7QUFDdEMsU0FBT0MsSUFBUUYsT0FBS0csSUFBUSxPQUFPRjtBQUFBQTtBQUU5Qix3QkFBd0IsTUFBSyxPQUFPLE1BQUs7QUFDOUMsTUFBSSxLQUFJLE9BQU8sTUFBSyxPQUFPO0FBQzNCLFNBQU8sS0FBSSxPQUFNLE9BQU07QUFBQTtBQ05WLDhCQUE4QjtBQUMzQyxTQUFPO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUE7QUFBQTtBQ0pLLDRCQUE0QixlQUFlO0FBQ3hELFNBQU8sT0FBTyxPQUFPLElBQUksc0JBQXNCO0FBQUE7QUNGbEMseUJBQXlCLE9BQU8sTUFBTTtBQUNuRCxTQUFPLEtBQUssT0FBTyxTQUFVLFNBQVMsS0FBSztBQUN6QyxZQUFRLE9BQU87QUFDZixXQUFPO0FBQUEsS0FDTjtBQUFBO0FDT0wsSUFBSSxrQkFBa0IsMEJBQXlCLFNBQVMsT0FBTztBQUM3RCxZQUFVLE9BQU8sWUFBWSxhQUFhLFFBQVEsT0FBTyxPQUFPLElBQUksTUFBTSxPQUFPO0FBQUEsSUFDL0UsV0FBVyxNQUFNO0FBQUEsUUFDYjtBQUNOLFNBQU8sbUJBQW1CLE9BQU8sWUFBWSxXQUFXLFVBQVUsZ0JBQWdCLFNBQVM7QUFBQTtBQUc3RixlQUFlLE1BQU07QUFDbkIsTUFBSTtBQUVKLE1BQUksUUFBUSxLQUFLLE9BQ2IsT0FBTyxLQUFLLE1BQ1osVUFBVSxLQUFLO0FBQ25CLE1BQUksZUFBZSxNQUFNLFNBQVM7QUFDbEMsTUFBSSxpQkFBZ0IsTUFBTSxjQUFjO0FBQ3hDLE1BQUksZ0JBQWdCLGlCQUFpQixNQUFNO0FBQzNDLE1BQUksT0FBTyx5QkFBeUI7QUFDcEMsTUFBSSxhQUFhLENBQUMsTUFBTSxPQUFPLFFBQVEsa0JBQWtCO0FBQ3pELE1BQUksTUFBTSxhQUFhLFdBQVc7QUFFbEMsTUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFlO0FBQ25DO0FBQUE7QUFHRixNQUFJLGdCQUFnQixnQkFBZ0IsUUFBUSxTQUFTO0FBQ3JELE1BQUksWUFBWSxjQUFjO0FBQzlCLE1BQUksVUFBVSxTQUFTLE1BQU0sTUFBTTtBQUNuQyxNQUFJLFVBQVUsU0FBUyxNQUFNLFNBQVM7QUFDdEMsTUFBSSxVQUFVLE1BQU0sTUFBTSxVQUFVLE9BQU8sTUFBTSxNQUFNLFVBQVUsUUFBUSxlQUFjLFFBQVEsTUFBTSxNQUFNLE9BQU87QUFDbEgsTUFBSSxZQUFZLGVBQWMsUUFBUSxNQUFNLE1BQU0sVUFBVTtBQUM1RCxNQUFJLG9CQUFvQixnQkFBZ0I7QUFDeEMsTUFBSSxhQUFhLG9CQUFvQixTQUFTLE1BQU0sa0JBQWtCLGdCQUFnQixJQUFJLGtCQUFrQixlQUFlLElBQUk7QUFDL0gsTUFBSSxvQkFBb0IsVUFBVSxJQUFJLFlBQVk7QUFHbEQsTUFBSSxPQUFNLGNBQWM7QUFDeEIsTUFBSSxPQUFNLGFBQWEsVUFBVSxPQUFPLGNBQWM7QUFDdEQsTUFBSSxTQUFTLGFBQWEsSUFBSSxVQUFVLE9BQU8sSUFBSTtBQUNuRCxNQUFJLFVBQVMsT0FBTyxNQUFLLFFBQVE7QUFFakMsTUFBSSxXQUFXO0FBQ2YsUUFBTSxjQUFjLFFBQVMseUJBQXdCLElBQUksc0JBQXNCLFlBQVksU0FBUSxzQkFBc0IsZUFBZSxVQUFTLFFBQVE7QUFBQTtBQUczSixrQkFBZ0IsT0FBTztBQUNyQixNQUFJLFFBQVEsTUFBTSxPQUNkLFVBQVUsTUFBTTtBQUNwQixNQUFJLG1CQUFtQixRQUFRLFNBQzNCLGVBQWUscUJBQXFCLFNBQVMsd0JBQXdCO0FBRXpFLE1BQUksZ0JBQWdCLE1BQU07QUFDeEI7QUFBQTtBQUlGLE1BQUksT0FBTyxpQkFBaUIsVUFBVTtBQUNwQyxtQkFBZSxNQUFNLFNBQVMsT0FBTyxjQUFjO0FBRW5ELFFBQUksQ0FBQyxjQUFjO0FBQ2pCO0FBQUE7QUFBQTtBQVVKLE1BQUksQ0FBQyxTQUFTLE1BQU0sU0FBUyxRQUFRLGVBQWU7QUFLbEQ7QUFBQTtBQUdGLFFBQU0sU0FBUyxRQUFRO0FBQUE7QUFJekIsY0FBZTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osUUFBUUg7QUFBQUEsRUFDUixVQUFVLENBQUM7QUFBQSxFQUNYLGtCQUFrQixDQUFDO0FBQUE7QUNuR04sc0JBQXNCLFdBQVc7QUFDOUMsU0FBTyxVQUFVLE1BQU0sS0FBSztBQUFBO0FDUTlCLElBQUksYUFBYTtBQUFBLEVBQ2YsS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBO0FBS1IsMkJBQTJCLE1BQU07QUFDL0IsTUFBSSxLQUFJLEtBQUssR0FDVCxLQUFJLEtBQUs7QUFDYixNQUFJLE1BQU07QUFDVixNQUFJLE1BQU0sSUFBSSxvQkFBb0I7QUFDbEMsU0FBTztBQUFBLElBQ0wsR0FBRyxNQUFNLEtBQUksT0FBTyxPQUFPO0FBQUEsSUFDM0IsR0FBRyxNQUFNLEtBQUksT0FBTyxPQUFPO0FBQUE7QUFBQTtBQUl4QixxQkFBcUIsT0FBTztBQUNqQyxNQUFJO0FBRUosTUFBSSxVQUFTLE1BQU0sUUFDZixhQUFhLE1BQU0sWUFDbkIsWUFBWSxNQUFNLFdBQ2xCLFlBQVksTUFBTSxXQUNsQixVQUFVLE1BQU0sU0FDaEIsV0FBVyxNQUFNLFVBQ2pCLGtCQUFrQixNQUFNLGlCQUN4QixXQUFXLE1BQU0sVUFDakIsZUFBZSxNQUFNLGNBQ3JCLFVBQVUsTUFBTTtBQUNwQixNQUFJLGFBQWEsUUFBUSxHQUNyQixLQUFJLGVBQWUsU0FBUyxJQUFJLFlBQ2hDLGFBQWEsUUFBUSxHQUNyQixLQUFJLGVBQWUsU0FBUyxJQUFJO0FBRXBDLE1BQUksUUFBUSxPQUFPLGlCQUFpQixhQUFhLGFBQWE7QUFBQSxJQUM1RCxHQUFHO0FBQUEsSUFDSCxHQUFHO0FBQUEsT0FDQTtBQUFBLElBQ0gsR0FBRztBQUFBLElBQ0gsR0FBRztBQUFBO0FBR0wsT0FBSSxNQUFNO0FBQ1YsT0FBSSxNQUFNO0FBQ1YsTUFBSSxPQUFPLFFBQVEsZUFBZTtBQUNsQyxNQUFJLE9BQU8sUUFBUSxlQUFlO0FBQ2xDLE1BQUksUUFBUTtBQUNaLE1BQUksUUFBUTtBQUNaLE1BQUksTUFBTTtBQUVWLE1BQUksVUFBVTtBQUNaLFFBQUksZUFBZSxnQkFBZ0I7QUFDbkMsUUFBSSxhQUFhO0FBQ2pCLFFBQUksWUFBWTtBQUVoQixRQUFJLGlCQUFpQixVQUFVLFVBQVM7QUFDdEMscUJBQWUsbUJBQW1CO0FBRWxDLFVBQUlDLG1CQUFpQixjQUFjLGFBQWEsWUFBWSxhQUFhLFlBQVk7QUFDbkYscUJBQWE7QUFDYixvQkFBWTtBQUFBO0FBQUE7QUFLaEIsbUJBQWU7QUFFZixRQUFJLGNBQWMsT0FBUSxlQUFjLFFBQVEsY0FBYyxVQUFVLGNBQWMsS0FBSztBQUN6RixjQUFRO0FBQ1IsVUFBSSxVQUFVLFdBQVcsSUFBSSxpQkFBaUIsSUFBSSxlQUFlLFNBQ2pFLGFBQWE7QUFDYixZQUFLLFVBQVUsV0FBVztBQUMxQixZQUFLLGtCQUFrQixJQUFJO0FBQUE7QUFHN0IsUUFBSSxjQUFjLFFBQVMsZUFBYyxPQUFPLGNBQWMsV0FBVyxjQUFjLEtBQUs7QUFDMUYsY0FBUTtBQUNSLFVBQUksVUFBVSxXQUFXLElBQUksaUJBQWlCLElBQUksZUFBZSxRQUNqRSxhQUFhO0FBQ2IsWUFBSyxVQUFVLFdBQVc7QUFDMUIsWUFBSyxrQkFBa0IsSUFBSTtBQUFBO0FBQUE7QUFJL0IsTUFBSSxlQUFlLE9BQU8sT0FBTztBQUFBLElBQy9CO0FBQUEsS0FDQyxZQUFZO0FBRWYsTUFBSSxRQUFRLGlCQUFpQixPQUFPLGtCQUFrQjtBQUFBLElBQ3BELEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQSxPQUNBO0FBQUEsSUFDSCxHQUFHO0FBQUEsSUFDSCxHQUFHO0FBQUE7QUFHTCxPQUFJLE1BQU07QUFDVixPQUFJLE1BQU07QUFFVixNQUFJLGlCQUFpQjtBQUNuQixRQUFJO0FBRUosV0FBTyxPQUFPLE9BQU8sSUFBSSxjQUFlLGtCQUFpQixJQUFJLGVBQWUsU0FBUyxPQUFPLE1BQU0sSUFBSSxlQUFlLFNBQVMsT0FBTyxNQUFNLElBQUksZUFBZSxZQUFhLEtBQUksb0JBQW9CLE1BQU0sSUFBSSxlQUFlLEtBQUksU0FBUyxLQUFJLFFBQVEsaUJBQWlCLEtBQUksU0FBUyxLQUFJLFVBQVU7QUFBQTtBQUduUyxTQUFPLE9BQU8sT0FBTyxJQUFJLGNBQWUsbUJBQWtCLElBQUksZ0JBQWdCLFNBQVMsT0FBTyxLQUFJLE9BQU8sSUFBSSxnQkFBZ0IsU0FBUyxPQUFPLEtBQUksT0FBTyxJQUFJLGdCQUFnQixZQUFZLElBQUk7QUFBQTtBQUc5TCx1QkFBdUIsT0FBTztBQUM1QixNQUFJLFFBQVEsTUFBTSxPQUNkLFVBQVUsTUFBTTtBQUNwQixNQUFJLHdCQUF3QixRQUFRLGlCQUNoQyxrQkFBa0IsMEJBQTBCLFNBQVMsT0FBTyx1QkFDNUQsb0JBQW9CLFFBQVEsVUFDNUIsV0FBVyxzQkFBc0IsU0FBUyxPQUFPLG1CQUNqRCx3QkFBd0IsUUFBUSxjQUNoQyxlQUFlLDBCQUEwQixTQUFTLE9BQU87QUFZN0QsTUFBSSxlQUFlO0FBQUEsSUFDakIsV0FBVyxpQkFBaUIsTUFBTTtBQUFBLElBQ2xDLFdBQVcsYUFBYSxNQUFNO0FBQUEsSUFDOUIsUUFBUSxNQUFNLFNBQVM7QUFBQSxJQUN2QixZQUFZLE1BQU0sTUFBTTtBQUFBLElBQ3hCO0FBQUEsSUFDQSxTQUFTLE1BQU0sUUFBUSxhQUFhO0FBQUE7QUFHdEMsTUFBSSxNQUFNLGNBQWMsaUJBQWlCLE1BQU07QUFDN0MsVUFBTSxPQUFPLFNBQVMsT0FBTyxPQUFPLElBQUksTUFBTSxPQUFPLFFBQVEsWUFBWSxPQUFPLE9BQU8sSUFBSSxjQUFjO0FBQUEsTUFDdkcsU0FBUyxNQUFNLGNBQWM7QUFBQSxNQUM3QixVQUFVLE1BQU0sUUFBUTtBQUFBLE1BQ3hCO0FBQUEsTUFDQTtBQUFBO0FBQUE7QUFJSixNQUFJLE1BQU0sY0FBYyxTQUFTLE1BQU07QUFDckMsVUFBTSxPQUFPLFFBQVEsT0FBTyxPQUFPLElBQUksTUFBTSxPQUFPLE9BQU8sWUFBWSxPQUFPLE9BQU8sSUFBSSxjQUFjO0FBQUEsTUFDckcsU0FBUyxNQUFNLGNBQWM7QUFBQSxNQUM3QixVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVjtBQUFBO0FBQUE7QUFJSixRQUFNLFdBQVcsU0FBUyxPQUFPLE9BQU8sSUFBSSxNQUFNLFdBQVcsUUFBUTtBQUFBLElBQ25FLHlCQUF5QixNQUFNO0FBQUE7QUFBQTtBQUtuQyxzQkFBZTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osTUFBTTtBQUFBO0FDakxSLElBQUksVUFBVTtBQUFBLEVBQ1osU0FBUztBQUFBO0FBR1gsZ0JBQWdCLE1BQU07QUFDcEIsTUFBSSxRQUFRLEtBQUssT0FDYixZQUFXLEtBQUssVUFDaEIsVUFBVSxLQUFLO0FBQ25CLE1BQUksa0JBQWtCLFFBQVEsUUFDMUIsU0FBUyxvQkFBb0IsU0FBUyxPQUFPLGlCQUM3QyxrQkFBa0IsUUFBUSxRQUMxQixTQUFTLG9CQUFvQixTQUFTLE9BQU87QUFDakQsTUFBSSxVQUFTLFVBQVUsTUFBTSxTQUFTO0FBQ3RDLE1BQUksZ0JBQWdCLEdBQUcsT0FBTyxNQUFNLGNBQWMsV0FBVyxNQUFNLGNBQWM7QUFFakYsTUFBSSxRQUFRO0FBQ1Ysa0JBQWMsUUFBUSxTQUFVLGNBQWM7QUFDNUMsbUJBQWEsaUJBQWlCLFVBQVUsVUFBUyxRQUFRO0FBQUE7QUFBQTtBQUk3RCxNQUFJLFFBQVE7QUFDVixZQUFPLGlCQUFpQixVQUFVLFVBQVMsUUFBUTtBQUFBO0FBR3JELFNBQU8sV0FBWTtBQUNqQixRQUFJLFFBQVE7QUFDVixvQkFBYyxRQUFRLFNBQVUsY0FBYztBQUM1QyxxQkFBYSxvQkFBb0IsVUFBVSxVQUFTLFFBQVE7QUFBQTtBQUFBO0FBSWhFLFFBQUksUUFBUTtBQUNWLGNBQU8sb0JBQW9CLFVBQVUsVUFBUyxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBTTVELHFCQUFlO0FBQUEsRUFDYixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxJQUFJLGNBQWM7QUFBQTtBQUFBLEVBQ2xCO0FBQUEsRUFDQSxNQUFNO0FBQUE7QUMvQ1IsSUFBSUssU0FBTztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBO0FBRVEsOEJBQThCLFdBQVc7QUFDdEQsU0FBTyxVQUFVLFFBQVEsMEJBQTBCLFNBQVUsU0FBUztBQUNwRSxXQUFPQSxPQUFLO0FBQUE7QUFBQTtBQ1JoQixJQUFJLE9BQU87QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQTtBQUVRLHVDQUF1QyxXQUFXO0FBQy9ELFNBQU8sVUFBVSxRQUFRLGNBQWMsU0FBVSxTQUFTO0FBQ3hELFdBQU8sS0FBSztBQUFBO0FBQUE7QUNMRCx5QkFBeUIsTUFBTTtBQUM1QyxNQUFJLE1BQU0sVUFBVTtBQUNwQixNQUFJLGFBQWEsSUFBSTtBQUNyQixNQUFJLFlBQVksSUFBSTtBQUNwQixTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0E7QUFBQTtBQUFBO0FDSlcsNkJBQTZCLFNBQVM7QUFRbkQsU0FBTyxzQkFBc0IsbUJBQW1CLFVBQVUsT0FBTyxnQkFBZ0IsU0FBUztBQUFBO0FDUjdFLHlCQUF5QixTQUFTO0FBQy9DLE1BQUksTUFBTSxVQUFVO0FBQ3BCLE1BQUksT0FBTyxtQkFBbUI7QUFDOUIsTUFBSSxpQkFBaUIsSUFBSTtBQUN6QixNQUFJLFFBQVEsS0FBSztBQUNqQixNQUFJLFNBQVMsS0FBSztBQUNsQixNQUFJLEtBQUk7QUFDUixNQUFJLEtBQUk7QUFNUixNQUFJLGdCQUFnQjtBQUNsQixZQUFRLGVBQWU7QUFDdkIsYUFBUyxlQUFlO0FBU3hCLFFBQUksQ0FBQyxpQ0FBaUMsS0FBSyxVQUFVLFlBQVk7QUFDL0QsV0FBSSxlQUFlO0FBQ25CLFdBQUksZUFBZTtBQUFBO0FBQUE7QUFJdkIsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHLEtBQUksb0JBQW9CO0FBQUEsSUFDM0IsR0FBRztBQUFBO0FBQUE7QUM5QlEseUJBQXlCLFNBQVM7QUFDL0MsTUFBSTtBQUVKLE1BQUksT0FBTyxtQkFBbUI7QUFDOUIsTUFBSSxZQUFZLGdCQUFnQjtBQUNoQyxNQUFJLE9BQVEseUJBQXdCLFFBQVEsa0JBQWtCLE9BQU8sU0FBUyxzQkFBc0I7QUFDcEcsTUFBSSxRQUFRLElBQUksS0FBSyxhQUFhLEtBQUssYUFBYSxPQUFPLEtBQUssY0FBYyxHQUFHLE9BQU8sS0FBSyxjQUFjO0FBQzNHLE1BQUksU0FBUyxJQUFJLEtBQUssY0FBYyxLQUFLLGNBQWMsT0FBTyxLQUFLLGVBQWUsR0FBRyxPQUFPLEtBQUssZUFBZTtBQUNoSCxNQUFJLEtBQUksQ0FBQyxVQUFVLGFBQWEsb0JBQW9CO0FBQ3BELE1BQUksS0FBSSxDQUFDLFVBQVU7QUFFbkIsTUFBSUwsbUJBQWlCLFFBQVEsTUFBTSxjQUFjLE9BQU87QUFDdEQsVUFBSyxJQUFJLEtBQUssYUFBYSxPQUFPLEtBQUssY0FBYyxLQUFLO0FBQUE7QUFHNUQsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHO0FBQUEsSUFDSCxHQUFHO0FBQUE7QUFBQTtBQ3pCUSx3QkFBd0IsU0FBUztBQUU5QyxNQUFJLG9CQUFvQkEsbUJBQWlCLFVBQ3JDLFdBQVcsa0JBQWtCLFVBQzdCLFlBQVksa0JBQWtCLFdBQzlCLFlBQVksa0JBQWtCO0FBRWxDLFNBQU8sNkJBQTZCLEtBQUssV0FBVyxZQUFZO0FBQUE7QUNKbkQseUJBQXlCLE1BQU07QUFDNUMsTUFBSSxDQUFDLFFBQVEsUUFBUSxhQUFhLFFBQVEsWUFBWSxVQUFVLEdBQUc7QUFFakUsV0FBTyxLQUFLLGNBQWM7QUFBQTtBQUc1QixNQUFJLGNBQWMsU0FBUyxlQUFlLE9BQU87QUFDL0MsV0FBTztBQUFBO0FBR1QsU0FBTyxnQkFBZ0IsY0FBYztBQUFBO0FDSHhCLDJCQUEyQixTQUFTLE1BQU07QUFDdkQsTUFBSTtBQUVKLE1BQUksU0FBUyxRQUFRO0FBQ25CLFdBQU87QUFBQTtBQUdULE1BQUksZUFBZSxnQkFBZ0I7QUFDbkMsTUFBSSxTQUFTLGlCQUFtQiwwQkFBd0IsUUFBUSxrQkFBa0IsT0FBTyxTQUFTLHNCQUFzQjtBQUN4SCxNQUFJLE1BQU0sVUFBVTtBQUNwQixNQUFJLFNBQVMsU0FBUyxDQUFDLEtBQUssT0FBTyxJQUFJLGtCQUFrQixJQUFJLGVBQWUsZ0JBQWdCLGVBQWUsTUFBTTtBQUNqSCxNQUFJLGNBQWMsS0FBSyxPQUFPO0FBQzlCLFNBQU8sU0FBUyxjQUNoQixZQUFZLE9BQU8sa0JBQWtCLGNBQWM7QUFBQTtBQ3hCdEMsMEJBQTBCLE1BQU07QUFDN0MsU0FBTyxPQUFPLE9BQU8sSUFBSSxNQUFNO0FBQUEsSUFDN0IsTUFBTSxLQUFLO0FBQUEsSUFDWCxLQUFLLEtBQUs7QUFBQSxJQUNWLE9BQU8sS0FBSyxJQUFJLEtBQUs7QUFBQSxJQUNyQixRQUFRLEtBQUssSUFBSSxLQUFLO0FBQUE7QUFBQTtBQ1UxQixvQ0FBb0MsU0FBUztBQUMzQyxNQUFJLE9BQU8sc0JBQXNCO0FBQ2pDLE9BQUssTUFBTSxLQUFLLE1BQU0sUUFBUTtBQUM5QixPQUFLLE9BQU8sS0FBSyxPQUFPLFFBQVE7QUFDaEMsT0FBSyxTQUFTLEtBQUssTUFBTSxRQUFRO0FBQ2pDLE9BQUssUUFBUSxLQUFLLE9BQU8sUUFBUTtBQUNqQyxPQUFLLFFBQVEsUUFBUTtBQUNyQixPQUFLLFNBQVMsUUFBUTtBQUN0QixPQUFLLElBQUksS0FBSztBQUNkLE9BQUssSUFBSSxLQUFLO0FBQ2QsU0FBTztBQUFBO0FBR1Qsb0NBQW9DLFNBQVMsZ0JBQWdCO0FBQzNELFNBQU8sbUJBQW1CLFdBQVcsaUJBQWlCLGdCQUFnQixZQUFZLFVBQVUsa0JBQWtCLDJCQUEyQixrQkFBa0IsaUJBQWlCLGdCQUFnQixtQkFBbUI7QUFBQTtBQU1qTiw0QkFBNEIsU0FBUztBQUNuQyxNQUFJLG1CQUFrQixrQkFBa0IsY0FBYztBQUN0RCxNQUFJLG9CQUFvQixDQUFDLFlBQVksU0FBUyxRQUFRQSxtQkFBaUIsU0FBUyxhQUFhO0FBQzdGLE1BQUksaUJBQWlCLHFCQUFxQixjQUFjLFdBQVcsZ0JBQWdCLFdBQVc7QUFFOUYsTUFBSSxDQUFDLFVBQVUsaUJBQWlCO0FBQzlCLFdBQU87QUFBQTtBQUlULFNBQU8saUJBQWdCLE9BQU8sU0FBVSxnQkFBZ0I7QUFDdEQsV0FBTyxVQUFVLG1CQUFtQixTQUFTLGdCQUFnQixtQkFBbUIsWUFBWSxvQkFBb0I7QUFBQTtBQUFBO0FBTXJHLHlCQUF5QixTQUFTLFVBQVUsY0FBYztBQUN2RSxNQUFJLHNCQUFzQixhQUFhLG9CQUFvQixtQkFBbUIsV0FBVyxHQUFHLE9BQU87QUFDbkcsTUFBSSxtQkFBa0IsR0FBRyxPQUFPLHFCQUFxQixDQUFDO0FBQ3RELE1BQUksc0JBQXNCLGlCQUFnQjtBQUMxQyxNQUFJLGVBQWUsaUJBQWdCLE9BQU8sU0FBVSxTQUFTLGdCQUFnQjtBQUMzRSxRQUFJLE9BQU8sMkJBQTJCLFNBQVM7QUFDL0MsWUFBUSxNQUFNLElBQUksS0FBSyxLQUFLLFFBQVE7QUFDcEMsWUFBUSxRQUFRLElBQUksS0FBSyxPQUFPLFFBQVE7QUFDeEMsWUFBUSxTQUFTLElBQUksS0FBSyxRQUFRLFFBQVE7QUFDMUMsWUFBUSxPQUFPLElBQUksS0FBSyxNQUFNLFFBQVE7QUFDdEMsV0FBTztBQUFBLEtBQ04sMkJBQTJCLFNBQVM7QUFDdkMsZUFBYSxRQUFRLGFBQWEsUUFBUSxhQUFhO0FBQ3ZELGVBQWEsU0FBUyxhQUFhLFNBQVMsYUFBYTtBQUN6RCxlQUFhLElBQUksYUFBYTtBQUM5QixlQUFhLElBQUksYUFBYTtBQUM5QixTQUFPO0FBQUE7QUNoRU0sd0JBQXdCLE1BQU07QUFDM0MsTUFBSSxhQUFZLEtBQUssV0FDakIsVUFBVSxLQUFLLFNBQ2YsWUFBWSxLQUFLO0FBQ3JCLE1BQUksZ0JBQWdCLFlBQVksaUJBQWlCLGFBQWE7QUFDOUQsTUFBSSxZQUFZLFlBQVksYUFBYSxhQUFhO0FBQ3RELE1BQUksVUFBVSxXQUFVLElBQUksV0FBVSxRQUFRLElBQUksUUFBUSxRQUFRO0FBQ2xFLE1BQUksVUFBVSxXQUFVLElBQUksV0FBVSxTQUFTLElBQUksUUFBUSxTQUFTO0FBQ3BFLE1BQUk7QUFFSixVQUFRO0FBQUEsU0FDRDtBQUNILGdCQUFVO0FBQUEsUUFDUixHQUFHO0FBQUEsUUFDSCxHQUFHLFdBQVUsSUFBSSxRQUFRO0FBQUE7QUFFM0I7QUFBQSxTQUVHO0FBQ0gsZ0JBQVU7QUFBQSxRQUNSLEdBQUc7QUFBQSxRQUNILEdBQUcsV0FBVSxJQUFJLFdBQVU7QUFBQTtBQUU3QjtBQUFBLFNBRUc7QUFDSCxnQkFBVTtBQUFBLFFBQ1IsR0FBRyxXQUFVLElBQUksV0FBVTtBQUFBLFFBQzNCLEdBQUc7QUFBQTtBQUVMO0FBQUEsU0FFRztBQUNILGdCQUFVO0FBQUEsUUFDUixHQUFHLFdBQVUsSUFBSSxRQUFRO0FBQUEsUUFDekIsR0FBRztBQUFBO0FBRUw7QUFBQTtBQUdBLGdCQUFVO0FBQUEsUUFDUixHQUFHLFdBQVU7QUFBQSxRQUNiLEdBQUcsV0FBVTtBQUFBO0FBQUE7QUFJbkIsTUFBSSxXQUFXLGdCQUFnQix5QkFBeUIsaUJBQWlCO0FBRXpFLE1BQUksWUFBWSxNQUFNO0FBQ3BCLFFBQUksTUFBTSxhQUFhLE1BQU0sV0FBVztBQUV4QyxZQUFRO0FBQUEsV0FDRDtBQUNILGdCQUFRLFlBQVksUUFBUSxZQUFhLFlBQVUsT0FBTyxJQUFJLFFBQVEsT0FBTztBQUM3RTtBQUFBLFdBRUc7QUFDSCxnQkFBUSxZQUFZLFFBQVEsWUFBYSxZQUFVLE9BQU8sSUFBSSxRQUFRLE9BQU87QUFDN0U7QUFBQTtBQUFBO0FBTU4sU0FBTztBQUFBO0FDMURNLHdCQUF3QixPQUFPLFNBQVM7QUFDckQsTUFBSSxZQUFZLFFBQVE7QUFDdEIsY0FBVTtBQUFBO0FBR1osTUFBSSxXQUFXLFNBQ1gscUJBQXFCLFNBQVMsV0FDOUIsWUFBWSx1QkFBdUIsU0FBUyxNQUFNLFlBQVksb0JBQzlELG9CQUFvQixTQUFTLFVBQzdCLFdBQVcsc0JBQXNCLFNBQVMsa0JBQWtCLG1CQUM1RCx3QkFBd0IsU0FBUyxjQUNqQyxlQUFlLDBCQUEwQixTQUFTLFdBQVcsdUJBQzdELHdCQUF3QixTQUFTLGdCQUNqQyxpQkFBaUIsMEJBQTBCLFNBQVMsU0FBUyx1QkFDN0QsdUJBQXVCLFNBQVMsYUFDaEMsY0FBYyx5QkFBeUIsU0FBUyxRQUFRLHNCQUN4RCxtQkFBbUIsU0FBUyxTQUM1QixVQUFVLHFCQUFxQixTQUFTLElBQUk7QUFDaEQsTUFBSSxnQkFBZ0IsbUJBQW1CLE9BQU8sWUFBWSxXQUFXLFVBQVUsZ0JBQWdCLFNBQVM7QUFDeEcsTUFBSSxhQUFhLG1CQUFtQixTQUFTLFlBQVk7QUFDekQsTUFBSSxhQUFhLE1BQU0sTUFBTTtBQUM3QixNQUFJLFVBQVUsTUFBTSxTQUFTLGNBQWMsYUFBYTtBQUN4RCxNQUFJLHFCQUFxQixnQkFBZ0IsVUFBVSxXQUFXLFVBQVUsUUFBUSxrQkFBa0IsbUJBQW1CLE1BQU0sU0FBUyxTQUFTLFVBQVU7QUFDdkosTUFBSSxzQkFBc0Isc0JBQXNCLE1BQU0sU0FBUztBQUMvRCxNQUFJLGlCQUFnQixlQUFlO0FBQUEsSUFDakMsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1Y7QUFBQTtBQUVGLE1BQUksbUJBQW1CLGlCQUFpQixPQUFPLE9BQU8sSUFBSSxZQUFZO0FBQ3RFLE1BQUksb0JBQW9CLG1CQUFtQixTQUFTLG1CQUFtQjtBQUd2RSxNQUFJLGtCQUFrQjtBQUFBLElBQ3BCLEtBQUssbUJBQW1CLE1BQU0sa0JBQWtCLE1BQU0sY0FBYztBQUFBLElBQ3BFLFFBQVEsa0JBQWtCLFNBQVMsbUJBQW1CLFNBQVMsY0FBYztBQUFBLElBQzdFLE1BQU0sbUJBQW1CLE9BQU8sa0JBQWtCLE9BQU8sY0FBYztBQUFBLElBQ3ZFLE9BQU8sa0JBQWtCLFFBQVEsbUJBQW1CLFFBQVEsY0FBYztBQUFBO0FBRTVFLE1BQUksYUFBYSxNQUFNLGNBQWM7QUFFckMsTUFBSSxtQkFBbUIsVUFBVSxZQUFZO0FBQzNDLFFBQUksVUFBUyxXQUFXO0FBQ3hCLFdBQU8sS0FBSyxpQkFBaUIsUUFBUSxTQUFVLEtBQUs7QUFDbEQsVUFBSSxXQUFXLENBQUMsT0FBTyxRQUFRLFFBQVEsUUFBUSxJQUFJLElBQUk7QUFDdkQsVUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLFFBQVEsUUFBUSxJQUFJLE1BQU07QUFDbkQsc0JBQWdCLFFBQVEsUUFBTyxRQUFRO0FBQUE7QUFBQTtBQUkzQyxTQUFPO0FBQUE7QUN6RE0sOEJBQThCLE9BQU8sU0FBUztBQUMzRCxNQUFJLFlBQVksUUFBUTtBQUN0QixjQUFVO0FBQUE7QUFHWixNQUFJLFdBQVcsU0FDWCxZQUFZLFNBQVMsV0FDckIsV0FBVyxTQUFTLFVBQ3BCLGVBQWUsU0FBUyxjQUN4QixVQUFVLFNBQVMsU0FDbkIsaUJBQWlCLFNBQVMsZ0JBQzFCLHdCQUF3QixTQUFTLHVCQUNqQyx3QkFBd0IsMEJBQTBCLFNBQVNNLGFBQWdCO0FBQy9FLE1BQUksWUFBWSxhQUFhO0FBQzdCLE1BQUlDLGVBQWEsWUFBWSxpQkFBaUIsc0JBQXNCLG9CQUFvQixPQUFPLFNBQVUsWUFBVztBQUNsSCxXQUFPLGFBQWEsZ0JBQWU7QUFBQSxPQUNoQztBQUNMLE1BQUksb0JBQW9CQSxhQUFXLE9BQU8sU0FBVSxZQUFXO0FBQzdELFdBQU8sc0JBQXNCLFFBQVEsZUFBYztBQUFBO0FBR3JELE1BQUksa0JBQWtCLFdBQVcsR0FBRztBQUNsQyx3QkFBb0JBO0FBQUFBO0FBUXRCLE1BQUksWUFBWSxrQkFBa0IsT0FBTyxTQUFVLEtBQUssWUFBVztBQUNqRSxRQUFJLGNBQWEsZUFBZSxPQUFPO0FBQUEsTUFDckMsV0FBVztBQUFBLE1BQ1g7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE9BQ0MsaUJBQWlCO0FBQ3BCLFdBQU87QUFBQSxLQUNOO0FBQ0gsU0FBTyxPQUFPLEtBQUssV0FBVyxLQUFLLFNBQVUsR0FBRyxHQUFHO0FBQ2pELFdBQU8sVUFBVSxLQUFLLFVBQVU7QUFBQTtBQUFBO0FDcENwQyx1Q0FBdUMsV0FBVztBQUNoRCxNQUFJLGlCQUFpQixlQUFlLE1BQU07QUFDeEMsV0FBTztBQUFBO0FBR1QsTUFBSSxvQkFBb0IscUJBQXFCO0FBQzdDLFNBQU8sQ0FBQyw4QkFBOEIsWUFBWSxtQkFBbUIsOEJBQThCO0FBQUE7QUFHckcsY0FBYyxNQUFNO0FBQ2xCLE1BQUksUUFBUSxLQUFLLE9BQ2IsVUFBVSxLQUFLLFNBQ2YsT0FBTyxLQUFLO0FBRWhCLE1BQUksTUFBTSxjQUFjLE1BQU0sT0FBTztBQUNuQztBQUFBO0FBR0YsTUFBSSxvQkFBb0IsUUFBUSxVQUM1QixnQkFBZ0Isc0JBQXNCLFNBQVMsT0FBTyxtQkFDdEQsbUJBQW1CLFFBQVEsU0FDM0IsZUFBZSxxQkFBcUIsU0FBUyxPQUFPLGtCQUNwRCw4QkFBOEIsUUFBUSxvQkFDdEMsVUFBVSxRQUFRLFNBQ2xCLFdBQVcsUUFBUSxVQUNuQixlQUFlLFFBQVEsY0FDdkIsY0FBYyxRQUFRLGFBQ3RCLHdCQUF3QixRQUFRLGdCQUNoQyxpQkFBaUIsMEJBQTBCLFNBQVMsT0FBTyx1QkFDM0Qsd0JBQXdCLFFBQVE7QUFDcEMsTUFBSSxxQkFBcUIsTUFBTSxRQUFRO0FBQ3ZDLE1BQUksZ0JBQWdCLGlCQUFpQjtBQUNyQyxNQUFJLGtCQUFrQixrQkFBa0I7QUFDeEMsTUFBSSxxQkFBcUIsK0JBQWdDLG9CQUFtQixDQUFDLGlCQUFpQixDQUFDLHFCQUFxQix1QkFBdUIsOEJBQThCO0FBQ3pLLE1BQUksY0FBYSxDQUFDLG9CQUFvQixPQUFPLG9CQUFvQixPQUFPLFNBQVUsS0FBSyxZQUFXO0FBQ2hHLFdBQU8sSUFBSSxPQUFPLGlCQUFpQixnQkFBZSxPQUFPLHFCQUFxQixPQUFPO0FBQUEsTUFDbkYsV0FBVztBQUFBLE1BQ1g7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsU0FDRztBQUFBLEtBQ0o7QUFDSCxNQUFJLGdCQUFnQixNQUFNLE1BQU07QUFDaEMsTUFBSSxhQUFhLE1BQU0sTUFBTTtBQUM3QixNQUFJLFlBQVksSUFBSTtBQUNwQixNQUFJLHFCQUFxQjtBQUN6QixNQUFJLHdCQUF3QixZQUFXO0FBRXZDLFdBQVMsSUFBSSxHQUFHLElBQUksWUFBVyxRQUFRLEtBQUs7QUFDMUMsUUFBSSxZQUFZLFlBQVc7QUFFM0IsUUFBSSxpQkFBaUIsaUJBQWlCO0FBRXRDLFFBQUksbUJBQW1CLGFBQWEsZUFBZTtBQUNuRCxRQUFJLGFBQWEsQ0FBQyxLQUFLLFFBQVEsUUFBUSxtQkFBbUI7QUFDMUQsUUFBSSxNQUFNLGFBQWEsVUFBVTtBQUNqQyxRQUFJLFdBQVcsZUFBZSxPQUFPO0FBQUEsTUFDbkM7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUE7QUFFRixRQUFJLG9CQUFvQixhQUFhLG1CQUFtQixRQUFRLE9BQU8sbUJBQW1CLFNBQVM7QUFFbkcsUUFBSSxjQUFjLE9BQU8sV0FBVyxNQUFNO0FBQ3hDLDBCQUFvQixxQkFBcUI7QUFBQTtBQUczQyxRQUFJLG1CQUFtQixxQkFBcUI7QUFDNUMsUUFBSSxTQUFTO0FBRWIsUUFBSSxlQUFlO0FBQ2pCLGFBQU8sS0FBSyxTQUFTLG1CQUFtQjtBQUFBO0FBRzFDLFFBQUksY0FBYztBQUNoQixhQUFPLEtBQUssU0FBUyxzQkFBc0IsR0FBRyxTQUFTLHFCQUFxQjtBQUFBO0FBRzlFLFFBQUksT0FBTyxNQUFNLFNBQVUsT0FBTztBQUNoQyxhQUFPO0FBQUEsUUFDTDtBQUNGLDhCQUF3QjtBQUN4QiwyQkFBcUI7QUFDckI7QUFBQTtBQUdGLGNBQVUsSUFBSSxXQUFXO0FBQUE7QUFHM0IsTUFBSSxvQkFBb0I7QUFFdEIsUUFBSSxpQkFBaUIsaUJBQWlCLElBQUk7QUFFMUMsUUFBSSxRQUFRLGdCQUFlLEtBQUk7QUFDN0IsVUFBSSxtQkFBbUIsWUFBVyxLQUFLLFNBQVUsWUFBVztBQUMxRCxZQUFJLFVBQVMsVUFBVSxJQUFJO0FBRTNCLFlBQUksU0FBUTtBQUNWLGlCQUFPLFFBQU8sTUFBTSxHQUFHLEtBQUksTUFBTSxTQUFVLE9BQU87QUFDaEQsbUJBQU87QUFBQTtBQUFBO0FBQUE7QUFLYixVQUFJLGtCQUFrQjtBQUNwQixnQ0FBd0I7QUFDeEIsZUFBTztBQUFBO0FBQUE7QUFJWCxhQUFTLEtBQUssZ0JBQWdCLEtBQUssR0FBRyxNQUFNO0FBQzFDLFVBQUksT0FBTyxNQUFNO0FBRWpCLFVBQUksU0FBUztBQUFTO0FBQUE7QUFBQTtBQUkxQixNQUFJLE1BQU0sY0FBYyx1QkFBdUI7QUFDN0MsVUFBTSxjQUFjLE1BQU0sUUFBUTtBQUNsQyxVQUFNLFlBQVk7QUFDbEIsVUFBTSxRQUFRO0FBQUE7QUFBQTtBQUtsQixhQUFlO0FBQUEsRUFDYixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxJQUFJO0FBQUEsRUFDSixrQkFBa0IsQ0FBQztBQUFBLEVBQ25CLE1BQU07QUFBQSxJQUNKLE9BQU87QUFBQTtBQUFBO0FDN0lYLHdCQUF3QixVQUFVLE1BQU0sa0JBQWtCO0FBQ3hELE1BQUkscUJBQXFCLFFBQVE7QUFDL0IsdUJBQW1CO0FBQUEsTUFDakIsR0FBRztBQUFBLE1BQ0gsR0FBRztBQUFBO0FBQUE7QUFJUCxTQUFPO0FBQUEsSUFDTCxLQUFLLFNBQVMsTUFBTSxLQUFLLFNBQVMsaUJBQWlCO0FBQUEsSUFDbkQsT0FBTyxTQUFTLFFBQVEsS0FBSyxRQUFRLGlCQUFpQjtBQUFBLElBQ3RELFFBQVEsU0FBUyxTQUFTLEtBQUssU0FBUyxpQkFBaUI7QUFBQSxJQUN6RCxNQUFNLFNBQVMsT0FBTyxLQUFLLFFBQVEsaUJBQWlCO0FBQUE7QUFBQTtBQUl4RCwrQkFBK0IsVUFBVTtBQUN2QyxTQUFPLENBQUMsS0FBSyxPQUFPLFFBQVEsTUFBTSxLQUFLLFNBQVUsTUFBTTtBQUNyRCxXQUFPLFNBQVMsU0FBUztBQUFBO0FBQUE7QUFJN0IsY0FBYyxNQUFNO0FBQ2xCLE1BQUksUUFBUSxLQUFLLE9BQ2IsT0FBTyxLQUFLO0FBQ2hCLE1BQUksZ0JBQWdCLE1BQU0sTUFBTTtBQUNoQyxNQUFJLGFBQWEsTUFBTSxNQUFNO0FBQzdCLE1BQUksbUJBQW1CLE1BQU0sY0FBYztBQUMzQyxNQUFJLG9CQUFvQixlQUFlLE9BQU87QUFBQSxJQUM1QyxnQkFBZ0I7QUFBQTtBQUVsQixNQUFJLG9CQUFvQixlQUFlLE9BQU87QUFBQSxJQUM1QyxhQUFhO0FBQUE7QUFFZixNQUFJLDJCQUEyQixlQUFlLG1CQUFtQjtBQUNqRSxNQUFJLHNCQUFzQixlQUFlLG1CQUFtQixZQUFZO0FBQ3hFLE1BQUksb0JBQW9CLHNCQUFzQjtBQUM5QyxNQUFJLG1CQUFtQixzQkFBc0I7QUFDN0MsUUFBTSxjQUFjLFFBQVE7QUFBQSxJQUMxQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBO0FBRUYsUUFBTSxXQUFXLFNBQVMsT0FBTyxPQUFPLElBQUksTUFBTSxXQUFXLFFBQVE7QUFBQSxJQUNuRSxnQ0FBZ0M7QUFBQSxJQUNoQyx1QkFBdUI7QUFBQTtBQUFBO0FBSzNCLGFBQWU7QUFBQSxFQUNiLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLGtCQUFrQixDQUFDO0FBQUEsRUFDbkIsSUFBSTtBQUFBO0FDeERDLGlDQUFpQyxXQUFXLE9BQU8sU0FBUTtBQUNoRSxNQUFJLGdCQUFnQixpQkFBaUI7QUFDckMsTUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssUUFBUSxrQkFBa0IsSUFBSSxLQUFLO0FBRXBFLE1BQUksT0FBTyxPQUFPLFlBQVcsYUFBYSxRQUFPLE9BQU8sT0FBTyxJQUFJLE9BQU87QUFBQSxJQUN4RTtBQUFBLFFBQ0ksU0FDRixXQUFXLEtBQUssSUFDaEIsV0FBVyxLQUFLO0FBRXBCLGFBQVcsWUFBWTtBQUN2QixhQUFZLGFBQVksS0FBSztBQUM3QixTQUFPLENBQUMsTUFBTSxPQUFPLFFBQVEsa0JBQWtCLElBQUk7QUFBQSxJQUNqRCxHQUFHO0FBQUEsSUFDSCxHQUFHO0FBQUEsTUFDRDtBQUFBLElBQ0YsR0FBRztBQUFBLElBQ0gsR0FBRztBQUFBO0FBQUE7QUFJUCxnQkFBZ0IsT0FBTztBQUNyQixNQUFJLFFBQVEsTUFBTSxPQUNkLFVBQVUsTUFBTSxTQUNoQixPQUFPLE1BQU07QUFDakIsTUFBSSxrQkFBa0IsUUFBUSxRQUMxQixVQUFTLG9CQUFvQixTQUFTLENBQUMsR0FBRyxLQUFLO0FBQ25ELE1BQUksT0FBTyxXQUFXLE9BQU8sU0FBVSxLQUFLLFdBQVc7QUFDckQsUUFBSSxhQUFhLHdCQUF3QixXQUFXLE1BQU0sT0FBTztBQUNqRSxXQUFPO0FBQUEsS0FDTjtBQUNILE1BQUksd0JBQXdCLEtBQUssTUFBTSxZQUNuQyxLQUFJLHNCQUFzQixHQUMxQixLQUFJLHNCQUFzQjtBQUU5QixNQUFJLE1BQU0sY0FBYyxpQkFBaUIsTUFBTTtBQUM3QyxVQUFNLGNBQWMsY0FBYyxLQUFLO0FBQ3ZDLFVBQU0sY0FBYyxjQUFjLEtBQUs7QUFBQTtBQUd6QyxRQUFNLGNBQWMsUUFBUTtBQUFBO0FBSTlCLGVBQWU7QUFBQSxFQUNiLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLFVBQVUsQ0FBQztBQUFBLEVBQ1gsSUFBSTtBQUFBO0FDbEROLHVCQUF1QixNQUFNO0FBQzNCLE1BQUksUUFBUSxLQUFLLE9BQ2IsT0FBTyxLQUFLO0FBS2hCLFFBQU0sY0FBYyxRQUFRLGVBQWU7QUFBQSxJQUN6QyxXQUFXLE1BQU0sTUFBTTtBQUFBLElBQ3ZCLFNBQVMsTUFBTSxNQUFNO0FBQUEsSUFDckIsVUFBVTtBQUFBLElBQ1YsV0FBVyxNQUFNO0FBQUE7QUFBQTtBQUtyQixzQkFBZTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osTUFBTTtBQUFBO0FDdkJPLG9CQUFvQixNQUFNO0FBQ3ZDLFNBQU8sU0FBUyxNQUFNLE1BQU07QUFBQTtBQ1c5Qix5QkFBeUIsTUFBTTtBQUM3QixNQUFJLFFBQVEsS0FBSyxPQUNiLFVBQVUsS0FBSyxTQUNmLE9BQU8sS0FBSztBQUNoQixNQUFJLG9CQUFvQixRQUFRLFVBQzVCLGdCQUFnQixzQkFBc0IsU0FBUyxPQUFPLG1CQUN0RCxtQkFBbUIsUUFBUSxTQUMzQixlQUFlLHFCQUFxQixTQUFTLFFBQVEsa0JBQ3JELFdBQVcsUUFBUSxVQUNuQixlQUFlLFFBQVEsY0FDdkIsY0FBYyxRQUFRLGFBQ3RCLFVBQVUsUUFBUSxTQUNsQixrQkFBa0IsUUFBUSxRQUMxQixTQUFTLG9CQUFvQixTQUFTLE9BQU8saUJBQzdDLHdCQUF3QixRQUFRLGNBQ2hDLGVBQWUsMEJBQTBCLFNBQVMsSUFBSTtBQUMxRCxNQUFJLFdBQVcsZUFBZSxPQUFPO0FBQUEsSUFDbkM7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQTtBQUVGLE1BQUksZ0JBQWdCLGlCQUFpQixNQUFNO0FBQzNDLE1BQUksWUFBWSxhQUFhLE1BQU07QUFDbkMsTUFBSSxrQkFBa0IsQ0FBQztBQUN2QixNQUFJLFdBQVcseUJBQXlCO0FBQ3hDLE1BQUksVUFBVSxXQUFXO0FBQ3pCLE1BQUksaUJBQWdCLE1BQU0sY0FBYztBQUN4QyxNQUFJLGdCQUFnQixNQUFNLE1BQU07QUFDaEMsTUFBSSxhQUFhLE1BQU0sTUFBTTtBQUM3QixNQUFJLG9CQUFvQixPQUFPLGlCQUFpQixhQUFhLGFBQWEsT0FBTyxPQUFPLElBQUksTUFBTSxPQUFPO0FBQUEsSUFDdkcsV0FBVyxNQUFNO0FBQUEsUUFDYjtBQUNOLE1BQUksOEJBQThCLE9BQU8sc0JBQXNCLFdBQVc7QUFBQSxJQUN4RSxVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsTUFDUCxPQUFPLE9BQU87QUFBQSxJQUNoQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsS0FDUjtBQUNILE1BQUksc0JBQXNCLE1BQU0sY0FBYyxTQUFTLE1BQU0sY0FBYyxPQUFPLE1BQU0sYUFBYTtBQUNyRyxNQUFJLE9BQU87QUFBQSxJQUNULEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQTtBQUdMLE1BQUksQ0FBQyxnQkFBZTtBQUNsQjtBQUFBO0FBR0YsTUFBSSxlQUFlO0FBQ2pCLFFBQUk7QUFFSixRQUFJLFdBQVcsYUFBYSxNQUFNLE1BQU07QUFDeEMsUUFBSSxVQUFVLGFBQWEsTUFBTSxTQUFTO0FBQzFDLFFBQUksTUFBTSxhQUFhLE1BQU0sV0FBVztBQUN4QyxRQUFJLFVBQVMsZUFBYztBQUMzQixRQUFJTixRQUFNLFVBQVMsU0FBUztBQUM1QixRQUFJQyxRQUFNLFVBQVMsU0FBUztBQUM1QixRQUFJLFdBQVcsU0FBUyxDQUFDLFdBQVcsT0FBTyxJQUFJO0FBQy9DLFFBQUksU0FBUyxjQUFjLFFBQVEsY0FBYyxPQUFPLFdBQVc7QUFDbkUsUUFBSSxTQUFTLGNBQWMsUUFBUSxDQUFDLFdBQVcsT0FBTyxDQUFDLGNBQWM7QUFHckUsUUFBSSxlQUFlLE1BQU0sU0FBUztBQUNsQyxRQUFJLFlBQVksVUFBVSxlQUFlLGNBQWMsZ0JBQWdCO0FBQUEsTUFDckUsT0FBTztBQUFBLE1BQ1AsUUFBUTtBQUFBO0FBRVYsUUFBSSxxQkFBcUIsTUFBTSxjQUFjLHNCQUFzQixNQUFNLGNBQWMsb0JBQW9CLFVBQVU7QUFDckgsUUFBSSxrQkFBa0IsbUJBQW1CO0FBQ3pDLFFBQUksa0JBQWtCLG1CQUFtQjtBQU16QyxRQUFJLFdBQVcsT0FBTyxHQUFHLGNBQWMsTUFBTSxVQUFVO0FBQ3ZELFFBQUksWUFBWSxrQkFBa0IsY0FBYyxPQUFPLElBQUksV0FBVyxXQUFXLGtCQUFrQiw0QkFBNEIsV0FBVyxTQUFTLFdBQVcsa0JBQWtCLDRCQUE0QjtBQUM1TSxRQUFJLFlBQVksa0JBQWtCLENBQUMsY0FBYyxPQUFPLElBQUksV0FBVyxXQUFXLGtCQUFrQiw0QkFBNEIsV0FBVyxTQUFTLFdBQVcsa0JBQWtCLDRCQUE0QjtBQUM3TSxRQUFJLG9CQUFvQixNQUFNLFNBQVMsU0FBUyxnQkFBZ0IsTUFBTSxTQUFTO0FBQy9FLFFBQUksZUFBZSxvQkFBb0IsYUFBYSxNQUFNLGtCQUFrQixhQUFhLElBQUksa0JBQWtCLGNBQWMsSUFBSTtBQUNqSSxRQUFJLHNCQUF1Qix5QkFBd0IsdUJBQXVCLE9BQU8sU0FBUyxvQkFBb0IsY0FBYyxPQUFPLHdCQUF3QjtBQUMzSixRQUFJLFlBQVksVUFBUyxZQUFZLHNCQUFzQjtBQUMzRCxRQUFJLFlBQVksVUFBUyxZQUFZO0FBQ3JDLFFBQUksa0JBQWtCLE9BQU8sU0FBU0UsSUFBUUgsT0FBSyxhQUFhQSxPQUFLLFNBQVEsU0FBU0UsSUFBUUQsT0FBSyxhQUFhQTtBQUNoSCxtQkFBYyxZQUFZO0FBQzFCLFNBQUssWUFBWSxrQkFBa0I7QUFBQTtBQUdyQyxNQUFJLGNBQWM7QUFDaEIsUUFBSTtBQUVKLFFBQUksWUFBWSxhQUFhLE1BQU0sTUFBTTtBQUV6QyxRQUFJLFdBQVcsYUFBYSxNQUFNLFNBQVM7QUFFM0MsUUFBSSxVQUFVLGVBQWM7QUFFNUIsUUFBSSxPQUFPLFlBQVksTUFBTSxXQUFXO0FBRXhDLFFBQUksT0FBTyxVQUFVLFNBQVM7QUFFOUIsUUFBSSxPQUFPLFVBQVUsU0FBUztBQUU5QixRQUFJLGVBQWUsQ0FBQyxLQUFLLE1BQU0sUUFBUSxtQkFBbUI7QUFFMUQsUUFBSSx1QkFBd0IsMEJBQXlCLHVCQUF1QixPQUFPLFNBQVMsb0JBQW9CLGFBQWEsT0FBTyx5QkFBeUI7QUFFN0osUUFBSSxhQUFhLGVBQWUsT0FBTyxVQUFVLGNBQWMsUUFBUSxXQUFXLFFBQVEsdUJBQXVCLDRCQUE0QjtBQUU3SSxRQUFJLGFBQWEsZUFBZSxVQUFVLGNBQWMsUUFBUSxXQUFXLFFBQVEsdUJBQXVCLDRCQUE0QixVQUFVO0FBRWhKLFFBQUksbUJBQW1CLFVBQVUsZUFBZSxlQUFlLFlBQVksU0FBUyxjQUFjLE9BQU8sU0FBUyxhQUFhLE1BQU0sU0FBUyxTQUFTLGFBQWE7QUFFcEssbUJBQWMsV0FBVztBQUN6QixTQUFLLFdBQVcsbUJBQW1CO0FBQUE7QUFHckMsUUFBTSxjQUFjLFFBQVE7QUFBQTtBQUk5Qix3QkFBZTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUFBLEVBQ0osa0JBQWtCLENBQUM7QUFBQTtBQzVJTiw4QkFBOEIsU0FBUztBQUNwRCxTQUFPO0FBQUEsSUFDTCxZQUFZLFFBQVE7QUFBQSxJQUNwQixXQUFXLFFBQVE7QUFBQTtBQUFBO0FDQ1IsdUJBQXVCLE1BQU07QUFDMUMsTUFBSSxTQUFTLFVBQVUsU0FBUyxDQUFDLGNBQWMsT0FBTztBQUNwRCxXQUFPLGdCQUFnQjtBQUFBLFNBQ2xCO0FBQ0wsV0FBTyxxQkFBcUI7QUFBQTtBQUFBO0FDQ2hDLHlCQUF5QixTQUFTO0FBQ2hDLE1BQUksT0FBTyxRQUFRO0FBQ25CLE1BQUksU0FBUyxNQUFNLEtBQUssU0FBUyxRQUFRLGVBQWU7QUFDeEQsTUFBSSxTQUFTLE1BQU0sS0FBSyxVQUFVLFFBQVEsZ0JBQWdCO0FBQzFELFNBQU8sV0FBVyxLQUFLLFdBQVc7QUFBQTtBQUtyQiwwQkFBMEIseUJBQXlCLGNBQWMsU0FBUztBQUN2RixNQUFJLFlBQVksUUFBUTtBQUN0QixjQUFVO0FBQUE7QUFHWixNQUFJLDBCQUEwQixjQUFjO0FBQzVDLE1BQUksdUJBQXVCLGNBQWMsaUJBQWlCLGdCQUFnQjtBQUMxRSxNQUFJLGtCQUFrQixtQkFBbUI7QUFDekMsTUFBSSxPQUFPLHNCQUFzQix5QkFBeUI7QUFDMUQsTUFBSSxTQUFTO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixXQUFXO0FBQUE7QUFFYixNQUFJLFVBQVU7QUFBQSxJQUNaLEdBQUc7QUFBQSxJQUNILEdBQUc7QUFBQTtBQUdMLE1BQUksMkJBQTJCLENBQUMsMkJBQTJCLENBQUMsU0FBUztBQUNuRSxRQUFJLFlBQVksa0JBQWtCLFVBQ2xDLGVBQWUsa0JBQWtCO0FBQy9CLGVBQVMsY0FBYztBQUFBO0FBR3pCLFFBQUksY0FBYyxlQUFlO0FBQy9CLGdCQUFVLHNCQUFzQixjQUFjO0FBQzlDLGNBQVEsS0FBSyxhQUFhO0FBQzFCLGNBQVEsS0FBSyxhQUFhO0FBQUEsZUFDakIsaUJBQWlCO0FBQzFCLGNBQVEsSUFBSSxvQkFBb0I7QUFBQTtBQUFBO0FBSXBDLFNBQU87QUFBQSxJQUNMLEdBQUcsS0FBSyxPQUFPLE9BQU8sYUFBYSxRQUFRO0FBQUEsSUFDM0MsR0FBRyxLQUFLLE1BQU0sT0FBTyxZQUFZLFFBQVE7QUFBQSxJQUN6QyxPQUFPLEtBQUs7QUFBQSxJQUNaLFFBQVEsS0FBSztBQUFBO0FBQUE7QUNyRGpCLGVBQWUsV0FBVztBQUN4QixNQUFJLE1BQU0sSUFBSTtBQUNkLE1BQUksVUFBVSxJQUFJO0FBQ2xCLE1BQUksU0FBUztBQUNiLFlBQVUsUUFBUSxTQUFVLFVBQVU7QUFDcEMsUUFBSSxJQUFJLFNBQVMsTUFBTTtBQUFBO0FBR3pCLGdCQUFjLFVBQVU7QUFDdEIsWUFBUSxJQUFJLFNBQVM7QUFDckIsUUFBSSxXQUFXLEdBQUcsT0FBTyxTQUFTLFlBQVksSUFBSSxTQUFTLG9CQUFvQjtBQUMvRSxhQUFTLFFBQVEsU0FBVSxLQUFLO0FBQzlCLFVBQUksQ0FBQyxRQUFRLElBQUksTUFBTTtBQUNyQixZQUFJLGNBQWMsSUFBSSxJQUFJO0FBRTFCLFlBQUksYUFBYTtBQUNmLGVBQUs7QUFBQTtBQUFBO0FBQUE7QUFJWCxXQUFPLEtBQUs7QUFBQTtBQUdkLFlBQVUsUUFBUSxTQUFVLFVBQVU7QUFDcEMsUUFBSSxDQUFDLFFBQVEsSUFBSSxTQUFTLE9BQU87QUFFL0IsV0FBSztBQUFBO0FBQUE7QUFHVCxTQUFPO0FBQUE7QUFHTSx3QkFBd0IsV0FBVztBQUVoRCxNQUFJLG1CQUFtQixNQUFNO0FBRTdCLFNBQU8sZUFBZSxPQUFPLFNBQVUsS0FBSyxPQUFPO0FBQ2pELFdBQU8sSUFBSSxPQUFPLGlCQUFpQixPQUFPLFNBQVUsVUFBVTtBQUM1RCxhQUFPLFNBQVMsVUFBVTtBQUFBO0FBQUEsS0FFM0I7QUFBQTtBQzFDVSxrQkFBa0IsS0FBSTtBQUNuQyxNQUFJO0FBQ0osU0FBTyxXQUFZO0FBQ2pCLFFBQUksQ0FBQyxTQUFTO0FBQ1osZ0JBQVUsSUFBSSxRQUFRLFNBQVUsU0FBUztBQUN2QyxnQkFBUSxVQUFVLEtBQUssV0FBWTtBQUNqQyxvQkFBVTtBQUNWLGtCQUFRO0FBQUE7QUFBQTtBQUFBO0FBS2QsV0FBTztBQUFBO0FBQUE7QUNaSSxxQkFBcUIsV0FBVztBQUM3QyxNQUFJLFNBQVMsVUFBVSxPQUFPLFNBQVUsU0FBUSxTQUFTO0FBQ3ZELFFBQUksV0FBVyxRQUFPLFFBQVE7QUFDOUIsWUFBTyxRQUFRLFFBQVEsV0FBVyxPQUFPLE9BQU8sSUFBSSxVQUFVLFNBQVM7QUFBQSxNQUNyRSxTQUFTLE9BQU8sT0FBTyxJQUFJLFNBQVMsU0FBUyxRQUFRO0FBQUEsTUFDckQsTUFBTSxPQUFPLE9BQU8sSUFBSSxTQUFTLE1BQU0sUUFBUTtBQUFBLFNBQzVDO0FBQ0wsV0FBTztBQUFBLEtBQ047QUFFSCxTQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksU0FBVSxLQUFLO0FBQzVDLFdBQU8sT0FBTztBQUFBO0FBQUE7QUNLbEIsSUFBSSxrQkFBa0I7QUFBQSxFQUNwQixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUE7QUFHWiw0QkFBNEI7QUFDMUIsV0FBUyxPQUFPLFVBQVUsUUFBUSxPQUFPLElBQUksTUFBTSxPQUFPLE9BQU8sR0FBRyxPQUFPLE1BQU0sUUFBUTtBQUN2RixTQUFLLFFBQVEsVUFBVTtBQUFBO0FBR3pCLFNBQU8sQ0FBQyxLQUFLLEtBQUssU0FBVSxTQUFTO0FBQ25DLFdBQU8sQ0FBRSxZQUFXLE9BQU8sUUFBUSwwQkFBMEI7QUFBQTtBQUFBO0FBSTFELHlCQUF5QixrQkFBa0I7QUFDaEQsTUFBSSxxQkFBcUIsUUFBUTtBQUMvQix1QkFBbUI7QUFBQTtBQUdyQixNQUFJLG9CQUFvQixrQkFDcEIsd0JBQXdCLGtCQUFrQixrQkFDMUMsb0JBQW1CLDBCQUEwQixTQUFTLEtBQUssdUJBQzNELHlCQUF5QixrQkFBa0IsZ0JBQzNDLGlCQUFpQiwyQkFBMkIsU0FBUyxrQkFBa0I7QUFDM0UsU0FBTyx1QkFBc0IsWUFBVyxTQUFRLFNBQVM7QUFDdkQsUUFBSSxZQUFZLFFBQVE7QUFDdEIsZ0JBQVU7QUFBQTtBQUdaLFFBQUksUUFBUTtBQUFBLE1BQ1YsV0FBVztBQUFBLE1BQ1gsa0JBQWtCO0FBQUEsTUFDbEIsU0FBUyxPQUFPLE9BQU8sSUFBSSxpQkFBaUI7QUFBQSxNQUM1QyxlQUFlO0FBQUEsTUFDZixVQUFVO0FBQUEsUUFDUixXQUFXO0FBQUEsUUFDWCxRQUFRO0FBQUE7QUFBQSxNQUVWLFlBQVk7QUFBQSxNQUNaLFFBQVE7QUFBQTtBQUVWLFFBQUksbUJBQW1CO0FBQ3ZCLFFBQUksY0FBYztBQUNsQixRQUFJLFlBQVc7QUFBQSxNQUNiO0FBQUEsTUFDQSxZQUFZLG9CQUFvQixrQkFBa0I7QUFDaEQsWUFBSSxXQUFVLE9BQU8scUJBQXFCLGFBQWEsaUJBQWlCLE1BQU0sV0FBVztBQUN6RjtBQUNBLGNBQU0sVUFBVSxPQUFPLE9BQU8sSUFBSSxnQkFBZ0IsTUFBTSxTQUFTO0FBQ2pFLGNBQU0sZ0JBQWdCO0FBQUEsVUFDcEIsV0FBVyxVQUFVLGNBQWEsa0JBQWtCLGNBQWEsV0FBVSxpQkFBaUIsa0JBQWtCLFdBQVUsa0JBQWtCO0FBQUEsVUFDMUksUUFBUSxrQkFBa0I7QUFBQTtBQUk1QixZQUFJLG1CQUFtQixlQUFlLFlBQVksR0FBRyxPQUFPLG1CQUFrQixNQUFNLFFBQVE7QUFFNUYsY0FBTSxtQkFBbUIsaUJBQWlCLE9BQU8sU0FBVSxJQUFHO0FBQzVELGlCQUFPLEdBQUU7QUFBQTtBQXFDWDtBQUNBLGVBQU8sVUFBUztBQUFBO0FBQUEsTUFPbEIsYUFBYSx1QkFBdUI7QUFDbEMsWUFBSSxhQUFhO0FBQ2Y7QUFBQTtBQUdGLFlBQUksa0JBQWtCLE1BQU0sVUFDeEIsYUFBWSxnQkFBZ0IsV0FDNUIsVUFBUyxnQkFBZ0I7QUFHN0IsWUFBSSxDQUFDLGlCQUFpQixZQUFXLFVBQVM7QUFLeEM7QUFBQTtBQUlGLGNBQU0sUUFBUTtBQUFBLFVBQ1osV0FBVyxpQkFBaUIsWUFBVyxnQkFBZ0IsVUFBUyxNQUFNLFFBQVEsYUFBYTtBQUFBLFVBQzNGLFFBQVEsY0FBYztBQUFBO0FBT3hCLGNBQU0sUUFBUTtBQUNkLGNBQU0sWUFBWSxNQUFNLFFBQVE7QUFLaEMsY0FBTSxpQkFBaUIsUUFBUSxTQUFVLFVBQVU7QUFDakQsaUJBQU8sTUFBTSxjQUFjLFNBQVMsUUFBUSxPQUFPLE9BQU8sSUFBSSxTQUFTO0FBQUE7QUFJekUsaUJBQVMsUUFBUSxHQUFHLFFBQVEsTUFBTSxpQkFBaUIsUUFBUSxTQUFTO0FBVWxFLGNBQUksTUFBTSxVQUFVLE1BQU07QUFDeEIsa0JBQU0sUUFBUTtBQUNkLG9CQUFRO0FBQ1I7QUFBQTtBQUdGLGNBQUksd0JBQXdCLE1BQU0saUJBQWlCLFFBQy9DLE1BQUssc0JBQXNCLElBQzNCLHlCQUF5QixzQkFBc0IsU0FDL0MsV0FBVywyQkFBMkIsU0FBUyxLQUFLLHdCQUNwRCxPQUFPLHNCQUFzQjtBQUVqQyxjQUFJLE9BQU8sUUFBTyxZQUFZO0FBQzVCLG9CQUFRLElBQUc7QUFBQSxjQUNUO0FBQUEsY0FDQSxTQUFTO0FBQUEsY0FDVDtBQUFBLGNBQ0EsVUFBVTtBQUFBLGtCQUNOO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFNWixRQUFRLFNBQVMsV0FBWTtBQUMzQixlQUFPLElBQUksUUFBUSxTQUFVLFNBQVM7QUFDcEMsb0JBQVM7QUFDVCxrQkFBUTtBQUFBO0FBQUE7QUFBQSxNQUdaLFNBQVMsbUJBQW1CO0FBQzFCO0FBQ0Esc0JBQWM7QUFBQTtBQUFBO0FBSWxCLFFBQUksQ0FBQyxpQkFBaUIsWUFBVyxVQUFTO0FBS3hDLGFBQU87QUFBQTtBQUdULGNBQVMsV0FBVyxTQUFTLEtBQUssU0FBVSxRQUFPO0FBQ2pELFVBQUksQ0FBQyxlQUFlLFFBQVEsZUFBZTtBQUN6QyxnQkFBUSxjQUFjO0FBQUE7QUFBQTtBQVExQixrQ0FBOEI7QUFDNUIsWUFBTSxpQkFBaUIsUUFBUSxTQUFVLE9BQU87QUFDOUMsWUFBSSxPQUFPLE1BQU0sTUFDYixnQkFBZ0IsTUFBTSxTQUN0QixXQUFVLGtCQUFrQixTQUFTLEtBQUssZUFDMUMsVUFBUyxNQUFNO0FBRW5CLFlBQUksT0FBTyxZQUFXLFlBQVk7QUFDaEMsY0FBSSxZQUFZLFFBQU87QUFBQSxZQUNyQjtBQUFBLFlBQ0E7QUFBQSxZQUNBLFVBQVU7QUFBQSxZQUNWLFNBQVM7QUFBQTtBQUdYLGNBQUksU0FBUyxtQkFBa0I7QUFBQTtBQUUvQiwyQkFBaUIsS0FBSyxhQUFhO0FBQUE7QUFBQTtBQUFBO0FBS3pDLHNDQUFrQztBQUNoQyx1QkFBaUIsUUFBUSxTQUFVLEtBQUk7QUFDckMsZUFBTztBQUFBO0FBRVQseUJBQW1CO0FBQUE7QUFHckIsV0FBTztBQUFBO0FBQUE7QUNuUFgsSUFBSSxtQkFBbUIsQ0FBQyxnQkFBZ0JNLGlCQUFlQyxpQkFBZUMsZUFBYUMsVUFBUUMsUUFBTUMsbUJBQWlCQyxTQUFPQztBQUN6SCxJQUFJLGVBQTRCLGdDQUFnQjtBQUFBLEVBQzlDO0FBQUE7QUNWRixJQUFJLGlCQUFpQixPQUFPLFlBQVk7QUFDeEMsSUFBSSxTQUFTLE9BQU8sUUFBUTtBQUM1QixJQUFJLFNBQVMsT0FBTyxRQUFRO0FBQzVCLElBQUksaUJBQWlCLE9BQU8sZ0JBQWdCLGNBQWMsQ0FBQyxDQUFDLFlBQVk7QUFJeEUsZUFBZSxHQUFHLEdBQUc7QUFFbkIsTUFBSSxNQUFNO0FBQUcsV0FBTztBQUVwQixNQUFJLEtBQUssS0FBSyxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssVUFBVTtBQUMxRCxRQUFJLEVBQUUsZ0JBQWdCLEVBQUU7QUFBYSxhQUFPO0FBRTVDLFFBQUksUUFBUSxHQUFHO0FBQ2YsUUFBSSxNQUFNLFFBQVEsSUFBSTtBQUNwQixlQUFTLEVBQUU7QUFDWCxVQUFJLFVBQVUsRUFBRTtBQUFRLGVBQU87QUFDL0IsV0FBSyxJQUFJLFFBQVEsUUFBUTtBQUN2QixZQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRTtBQUFLLGlCQUFPO0FBQ2pDLGFBQU87QUFBQTtBQXVCVCxRQUFJO0FBQ0osUUFBSSxVQUFXLGFBQWEsT0FBUyxhQUFhLEtBQU07QUFDdEQsVUFBSSxFQUFFLFNBQVMsRUFBRTtBQUFNLGVBQU87QUFDOUIsV0FBSyxFQUFFO0FBQ1AsYUFBTyxDQUFFLEtBQUksR0FBRyxRQUFRO0FBQ3RCLFlBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNO0FBQUssaUJBQU87QUFDakMsV0FBSyxFQUFFO0FBQ1AsYUFBTyxDQUFFLEtBQUksR0FBRyxRQUFRO0FBQ3RCLFlBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU07QUFBTSxpQkFBTztBQUNwRCxhQUFPO0FBQUE7QUFHVCxRQUFJLFVBQVcsYUFBYSxPQUFTLGFBQWEsS0FBTTtBQUN0RCxVQUFJLEVBQUUsU0FBUyxFQUFFO0FBQU0sZUFBTztBQUM5QixXQUFLLEVBQUU7QUFDUCxhQUFPLENBQUUsS0FBSSxHQUFHLFFBQVE7QUFDdEIsWUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU07QUFBSyxpQkFBTztBQUNqQyxhQUFPO0FBQUE7QUFJVCxRQUFJLGtCQUFrQixZQUFZLE9BQU8sTUFBTSxZQUFZLE9BQU8sSUFBSTtBQUNwRSxlQUFTLEVBQUU7QUFDWCxVQUFJLFVBQVUsRUFBRTtBQUFRLGVBQU87QUFDL0IsV0FBSyxJQUFJLFFBQVEsUUFBUTtBQUN2QixZQUFJLEVBQUUsT0FBTyxFQUFFO0FBQUksaUJBQU87QUFDNUIsYUFBTztBQUFBO0FBR1QsUUFBSSxFQUFFLGdCQUFnQjtBQUFRLGFBQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRTtBQUM1RSxRQUFJLEVBQUUsWUFBWSxPQUFPLFVBQVU7QUFBUyxhQUFPLEVBQUUsY0FBYyxFQUFFO0FBQ3JFLFFBQUksRUFBRSxhQUFhLE9BQU8sVUFBVTtBQUFVLGFBQU8sRUFBRSxlQUFlLEVBQUU7QUFFeEUsV0FBTyxPQUFPLEtBQUs7QUFDbkIsYUFBUyxLQUFLO0FBQ2QsUUFBSSxXQUFXLE9BQU8sS0FBSyxHQUFHO0FBQVEsYUFBTztBQUU3QyxTQUFLLElBQUksUUFBUSxRQUFRO0FBQ3ZCLFVBQUksQ0FBQyxPQUFPLFVBQVUsZUFBZSxLQUFLLEdBQUcsS0FBSztBQUFLLGVBQU87QUFLaEUsUUFBSSxrQkFBa0IsYUFBYTtBQUFTLGFBQU87QUFHbkQsU0FBSyxJQUFJLFFBQVEsUUFBUSxLQUFJO0FBQzNCLFVBQUssTUFBSyxPQUFPLFlBQVksS0FBSyxPQUFPLFNBQVMsS0FBSyxPQUFPLFVBQVUsRUFBRSxVQUFVO0FBU2xGO0FBQUE7QUFJRixVQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUs7QUFBTSxlQUFPO0FBQUE7QUFLN0MsV0FBTztBQUFBO0FBR1QsU0FBTyxNQUFNLEtBQUssTUFBTTtBQUFBO0lBSTFCLDJDQUFpQixpQkFBaUIsR0FBRyxHQUFHO0FBQ3RDLE1BQUk7QUFDRixXQUFPLE1BQU0sR0FBRztBQUFBLFdBQ1QsUUFBUDtBQUNBLFFBQU0sUUFBTSxXQUFXLElBQUksTUFBTSxxQkFBc0I7QUFNckQsY0FBUSxLQUFLO0FBQ2IsYUFBTztBQUFBO0FBR1QsVUFBTTtBQUFBO0FBQUE7QUMvSFYsSUFBSSxrQkFBa0I7QUFDZixJQUFJLFlBQVksb0JBQW1CLGtCQUFrQixlQUFlLFNBQVM7QUFDbEYsTUFBSSxZQUFZLFFBQVE7QUFDdEIsY0FBVTtBQUFBO0FBR1osTUFBSSxjQUFjQyxtQ0FBYTtBQUMvQixNQUFJLHNCQUFzQjtBQUFBLElBQ3hCLGVBQWUsUUFBUTtBQUFBLElBQ3ZCLFdBQVcsUUFBUSxhQUFhO0FBQUEsSUFDaEMsVUFBVSxRQUFRLFlBQVk7QUFBQSxJQUM5QixXQUFXLFFBQVEsYUFBYTtBQUFBO0FBR2xDLE1BQUksa0JBQWtCQyxxQ0FBZTtBQUFBLElBQ25DLFFBQVE7QUFBQSxNQUNOLFFBQVE7QUFBQSxRQUNOLFVBQVUsb0JBQW9CO0FBQUEsUUFDOUIsTUFBTTtBQUFBLFFBQ04sS0FBSztBQUFBO0FBQUEsTUFFUCxPQUFPO0FBQUEsUUFDTCxVQUFVO0FBQUE7QUFBQTtBQUFBLElBR2QsWUFBWTtBQUFBLE1BRVYsUUFBUSxnQkFBZ0IsSUFDeEIsV0FBVyxnQkFBZ0I7QUFFL0IsTUFBSSxzQkFBc0JDLG9DQUFjLFdBQVk7QUFDbEQsV0FBTztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsT0FBTztBQUFBLE1BQ1AsSUFBSSxhQUFZLE1BQU07QUFDcEIsWUFBSSxTQUFRLEtBQUs7QUFDakIsWUFBSSxXQUFXLE9BQU8sS0FBSyxPQUFNO0FBQ2pDLGlCQUFTO0FBQUEsVUFDUCxRQUFRLFlBQVksU0FBUyxJQUFJLFNBQVUsU0FBUztBQUNsRCxtQkFBTyxDQUFDLFNBQVMsT0FBTSxPQUFPLFlBQVk7QUFBQTtBQUFBLFVBRTVDLFlBQVksWUFBWSxTQUFTLElBQUksU0FBVSxTQUFTO0FBQ3RELG1CQUFPLENBQUMsU0FBUyxPQUFNLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUl4QyxVQUFVLENBQUM7QUFBQTtBQUFBLEtBRVo7QUFDSCxNQUFJLGdCQUFnQkEsb0NBQWMsV0FBWTtBQUM1QyxRQUFJLGFBQWE7QUFBQSxNQUNmLGVBQWUsb0JBQW9CO0FBQUEsTUFDbkMsV0FBVyxvQkFBb0I7QUFBQSxNQUMvQixVQUFVLG9CQUFvQjtBQUFBLE1BQzlCLFdBQVcsR0FBRyxPQUFPLG9CQUFvQixXQUFXLENBQUMscUJBQXFCO0FBQUEsUUFDeEUsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBO0FBQUE7QUFJYixRQUFJQyx5Q0FBUSxZQUFZLFNBQVMsYUFBYTtBQUM1QyxhQUFPLFlBQVksV0FBVztBQUFBLFdBQ3pCO0FBQ0wsa0JBQVksVUFBVTtBQUN0QixhQUFPO0FBQUE7QUFBQSxLQUVSLENBQUMsb0JBQW9CLGVBQWUsb0JBQW9CLFdBQVcsb0JBQW9CLFVBQVUsb0JBQW9CLFdBQVc7QUFDbkksTUFBSSxvQkFBb0JIO0FBQ3hCLDRCQUEwQixXQUFZO0FBQ3BDLFFBQUksa0JBQWtCLFNBQVM7QUFDN0Isd0JBQWtCLFFBQVEsV0FBVztBQUFBO0FBQUEsS0FFdEMsQ0FBQztBQUNKLDRCQUEwQixXQUFZO0FBQ3BDLFFBQUksb0JBQW9CLFFBQVEsaUJBQWlCLE1BQU07QUFDckQ7QUFBQTtBQUdGLFFBQUlJLGlCQUFlLFFBQVEsZ0JBQWdCQztBQUMzQyxRQUFJLGlCQUFpQkQsZUFBYSxrQkFBa0IsZUFBZTtBQUNuRSxzQkFBa0IsVUFBVTtBQUM1QixXQUFPLFdBQVk7QUFDakIscUJBQWU7QUFDZix3QkFBa0IsVUFBVTtBQUFBO0FBQUEsS0FFN0IsQ0FBQyxrQkFBa0IsZUFBZSxRQUFRO0FBQzdDLFNBQU87QUFBQSxJQUNMLE9BQU8sa0JBQWtCLFVBQVUsa0JBQWtCLFFBQVEsUUFBUTtBQUFBLElBQ3JFLFFBQVEsTUFBTTtBQUFBLElBQ2QsWUFBWSxNQUFNO0FBQUEsSUFDbEIsUUFBUSxrQkFBa0IsVUFBVSxrQkFBa0IsUUFBUSxTQUFTO0FBQUEsSUFDdkUsYUFBYSxrQkFBa0IsVUFBVSxrQkFBa0IsUUFBUSxjQUFjO0FBQUE7QUFBQTs7QUN2RnJGLElBQUlFLHlCQUF1QjtJQUUzQix5QkFBaUJBO0FDRmpCLElBQUksdUJBQXVCM087QUFFM0IseUJBQXlCO0FBQUE7QUFDekIsa0NBQWtDO0FBQUE7QUFDbEMsdUJBQXVCLG9CQUFvQjtJQUUzQywyQkFBaUIsV0FBVztBQUMxQixnQkFBYyxPQUFPLFVBQVUsZUFBZSxVQUFVLGNBQWMsUUFBUTtBQUM1RSxRQUFJLFdBQVcsc0JBQXNCO0FBRW5DO0FBQUE7QUFFRixRQUFJLE1BQU0sSUFBSSxNQUNaO0FBSUYsUUFBSSxPQUFPO0FBQ1gsVUFBTTtBQUFBO0FBRVIsT0FBSyxhQUFhO0FBQ2xCLHFCQUFtQjtBQUNqQixXQUFPO0FBQUE7QUFJVCxNQUFJLGlCQUFpQjtBQUFBLElBQ25CLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUVSLEtBQUs7QUFBQSxJQUNMLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLE1BQU07QUFBQSxJQUNOLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLE9BQU87QUFBQSxJQUVQLGdCQUFnQjtBQUFBLElBQ2hCLG1CQUFtQjtBQUFBO0FBR3JCLGlCQUFlLFlBQVk7QUFFM0IsU0FBTztBQUFBO0FDakRGO0FBR0w0Tyx3Q0FBaUI1TztBQUFBQTtBQ2pCbkI7QUFBQTtBQUFBO0FBQUE7QUFJQSxJQUFJLHFCQUFxQixDQUFDLFNBQVMsVUFBVSxZQUFZLFdBQVcsVUFBVSxjQUFjLG1CQUFtQixtQkFBbUIsb0RBQW9ELGlDQUFpQztBQUN2TixJQUFJLG9CQUFtQyxtQ0FBbUIsS0FBSztBQUMvRCxJQUFJLFVBQVUsT0FBTyxZQUFZLGNBQWMsV0FBWTtBQUFBLElBQUssUUFBUSxVQUFVLFdBQVcsUUFBUSxVQUFVLHFCQUFxQixRQUFRLFVBQVU7QUFFdEosSUFBSSxnQkFBZ0Isd0JBQXVCLElBQUksa0JBQWtCLFFBQVE7QUFDdkUsTUFBSSxhQUFhLE1BQU0sVUFBVSxNQUFNLE1BQU0sR0FBRyxpQkFBaUI7QUFFakUsTUFBSSxvQkFBb0IsUUFBUSxLQUFLLElBQUksb0JBQW9CO0FBQzNELGVBQVcsUUFBUTtBQUFBO0FBR3JCLGVBQWEsV0FBVyxPQUFPO0FBQy9CLFNBQU87QUFBQTtBQUdULElBQUksb0JBQW9CLDRCQUEyQixNQUFNO0FBQ3ZELFNBQU8sS0FBSyxvQkFBb0I7QUFBQTtBQUdsQyxJQUFJLGNBQWMsc0JBQXFCLE1BQU07QUFDM0MsTUFBSSxlQUFlLFNBQVMsS0FBSyxhQUFhLGFBQWE7QUFFM0QsTUFBSSxDQUFDLE1BQU0sZUFBZTtBQUN4QixXQUFPO0FBQUE7QUFLVCxNQUFJLGtCQUFrQixPQUFPO0FBQzNCLFdBQU87QUFBQTtBQVFULE1BQUssTUFBSyxhQUFhLFdBQVcsS0FBSyxhQUFhLFdBQVcsS0FBSyxhQUFhLGNBQWMsS0FBSyxhQUFhLGdCQUFnQixNQUFNO0FBQ3JJLFdBQU87QUFBQTtBQUdULFNBQU8sS0FBSztBQUFBO0FBR2QsSUFBSSx1QkFBdUIsK0JBQThCLEdBQUcsR0FBRztBQUM3RCxTQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUU7QUFBQTtBQUd4RixJQUFJLFVBQVUsa0JBQWlCLE1BQU07QUFDbkMsU0FBTyxLQUFLLFlBQVk7QUFBQTtBQUcxQixJQUFJLGdCQUFnQix3QkFBdUIsTUFBTTtBQUMvQyxTQUFPLFFBQVEsU0FBUyxLQUFLLFNBQVM7QUFBQTtBQUd4QyxJQUFJLHVCQUF1QiwrQkFBOEIsTUFBTTtBQUM3RCxNQUFJLEtBQUksS0FBSyxZQUFZLGFBQWEsTUFBTSxVQUFVLE1BQU0sTUFBTSxLQUFLLFVBQVUsS0FBSyxTQUFVLE9BQU87QUFDckcsV0FBTyxNQUFNLFlBQVk7QUFBQTtBQUUzQixTQUFPO0FBQUE7QUFHVCxJQUFJLGtCQUFrQiwwQkFBeUIsT0FBTyxNQUFNO0FBQzFELFdBQVMsSUFBSSxHQUFHLElBQUksTUFBTSxRQUFRLEtBQUs7QUFDckMsUUFBSSxNQUFNLEdBQUcsV0FBVyxNQUFNLEdBQUcsU0FBUyxNQUFNO0FBQzlDLGFBQU8sTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUtuQixJQUFJLGtCQUFrQiwwQkFBeUIsTUFBTTtBQUNuRCxNQUFJLENBQUMsS0FBSyxNQUFNO0FBQ2QsV0FBTztBQUFBO0FBR1QsTUFBSSxhQUFhLEtBQUssUUFBUSxLQUFLO0FBRW5DLE1BQUksY0FBYyxzQkFBcUIsTUFBTTtBQUMzQyxXQUFPLFdBQVcsaUJBQWlCLCtCQUErQixPQUFPO0FBQUE7QUFHM0UsTUFBSTtBQUVKLE1BQUksT0FBTyxXQUFXLGVBQWUsT0FBTyxPQUFPLFFBQVEsZUFBZSxPQUFPLE9BQU8sSUFBSSxXQUFXLFlBQVk7QUFDakgsZUFBVyxZQUFZLE9BQU8sSUFBSSxPQUFPLEtBQUs7QUFBQSxTQUN6QztBQUNMLFFBQUk7QUFDRixpQkFBVyxZQUFZLEtBQUs7QUFBQSxhQUNyQixLQUFQO0FBRUEsY0FBUSxNQUFNLDRJQUE0SSxJQUFJO0FBQzlKLGFBQU87QUFBQTtBQUFBO0FBSVgsTUFBSSxVQUFVLGdCQUFnQixVQUFVLEtBQUs7QUFDN0MsU0FBTyxDQUFDLFdBQVcsWUFBWTtBQUFBO0FBR2pDLElBQUksVUFBVSxrQkFBaUIsTUFBTTtBQUNuQyxTQUFPLFFBQVEsU0FBUyxLQUFLLFNBQVM7QUFBQTtBQUd4QyxJQUFJLHFCQUFxQiw2QkFBNEIsTUFBTTtBQUN6RCxTQUFPLFFBQVEsU0FBUyxDQUFDLGdCQUFnQjtBQUFBO0FBRzNDLElBQUksV0FBVyxtQkFBa0IsTUFBTSxjQUFjO0FBQ25ELE1BQUksaUJBQWlCLE1BQU0sZUFBZSxVQUFVO0FBQ2xELFdBQU87QUFBQTtBQUdULE1BQUksa0JBQWtCLFFBQVEsS0FBSyxNQUFNO0FBQ3pDLE1BQUksbUJBQW1CLGtCQUFrQixLQUFLLGdCQUFnQjtBQUU5RCxNQUFJLFFBQVEsS0FBSyxrQkFBa0IsMEJBQTBCO0FBQzNELFdBQU87QUFBQTtBQUdULE1BQUksQ0FBQyxnQkFBZ0IsaUJBQWlCLFFBQVE7QUFDNUMsV0FBTyxNQUFNO0FBQ1gsVUFBSSxpQkFBaUIsTUFBTSxZQUFZLFFBQVE7QUFDN0MsZUFBTztBQUFBO0FBR1QsYUFBTyxLQUFLO0FBQUE7QUFBQSxhQUVMLGlCQUFpQixpQkFBaUI7QUFDM0MsUUFBSSx3QkFBd0IsS0FBSyx5QkFDN0IsUUFBUSxzQkFBc0IsT0FDOUIsU0FBUyxzQkFBc0I7QUFFbkMsV0FBTyxVQUFVLEtBQUssV0FBVztBQUFBO0FBR25DLFNBQU87QUFBQTtBQU1ULElBQUkseUJBQXlCLGlDQUFnQyxNQUFNO0FBQ2pFLE1BQUksUUFBUSxTQUFTLEtBQUssWUFBWSxZQUFZLEtBQUssWUFBWSxjQUFjLEtBQUssWUFBWSxVQUFVO0FBQzFHLFFBQUksYUFBYSxLQUFLO0FBRXRCLFdBQU8sWUFBWTtBQUNqQixVQUFJLFdBQVcsWUFBWSxjQUFjLFdBQVcsVUFBVTtBQU01RCxpQkFBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLFNBQVMsUUFBUSxLQUFLO0FBQ25ELGNBQUksUUFBUSxXQUFXLFNBQVMsS0FBSztBQUVyQyxjQUFJLE1BQU0sWUFBWSxVQUFVO0FBQzlCLGdCQUFJLE1BQU0sU0FBUyxPQUFPO0FBQ3hCLHFCQUFPO0FBQUE7QUFLVCxtQkFBTztBQUFBO0FBQUE7QUFLWCxlQUFPO0FBQUE7QUFHVCxtQkFBYSxXQUFXO0FBQUE7QUFBQTtBQU01QixTQUFPO0FBQUE7QUFHVCxJQUFJLGtDQUFrQywwQ0FBeUMsU0FBUyxNQUFNO0FBQzVGLE1BQUksS0FBSyxZQUFZLGNBQWMsU0FBUyxTQUFTLE1BQU0sUUFBUSxpQkFDbkUscUJBQXFCLFNBQVMsdUJBQXVCLE9BQU87QUFDMUQsV0FBTztBQUFBO0FBR1QsU0FBTztBQUFBO0FBR1QsSUFBSSxpQ0FBaUMseUNBQXdDLFNBQVMsTUFBTTtBQUMxRixNQUFJLENBQUMsZ0NBQWdDLFNBQVMsU0FBUyxtQkFBbUIsU0FBUyxZQUFZLFFBQVEsR0FBRztBQUN4RyxXQUFPO0FBQUE7QUFHVCxTQUFPO0FBQUE7QUFHVCxJQUFJLFdBQVcsbUJBQWtCLElBQUksU0FBUztBQUM1QyxZQUFVLFdBQVc7QUFDckIsTUFBSSxtQkFBbUI7QUFDdkIsTUFBSSxtQkFBbUI7QUFDdkIsTUFBSSxhQUFhLGNBQWMsSUFBSSxRQUFRLGtCQUFrQiwrQkFBK0IsS0FBSyxNQUFNO0FBQ3ZHLGFBQVcsUUFBUSxTQUFVLFdBQVcsR0FBRztBQUN6QyxRQUFJLG9CQUFvQixZQUFZO0FBRXBDLFFBQUksc0JBQXNCLEdBQUc7QUFDM0IsdUJBQWlCLEtBQUs7QUFBQSxXQUNqQjtBQUNMLHVCQUFpQixLQUFLO0FBQUEsUUFDcEIsZUFBZTtBQUFBLFFBQ2YsVUFBVTtBQUFBLFFBQ1YsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUlaLE1BQUksZ0JBQWdCLGlCQUFpQixLQUFLLHNCQUFzQixJQUFJLFNBQVUsR0FBRztBQUMvRSxXQUFPLEVBQUU7QUFBQSxLQUNSLE9BQU87QUFDVixTQUFPO0FBQUE7QUFTVCxJQUFJLGFBQWEscUJBQW9CLE1BQU0sU0FBUztBQUNsRCxZQUFVLFdBQVc7QUFFckIsTUFBSSxDQUFDLE1BQU07QUFDVCxVQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLE1BQUksUUFBUSxLQUFLLE1BQU0sdUJBQXVCLE9BQU87QUFDbkQsV0FBTztBQUFBO0FBR1QsU0FBTywrQkFBK0IsU0FBUztBQUFBO0FBR2pELElBQUksNkJBQTRDLG1DQUFtQixPQUFPLFVBQVUsS0FBSztBQUV6RixJQUFJLGNBQWMsc0JBQXFCLE1BQU0sU0FBUztBQUNwRCxZQUFVLFdBQVc7QUFFckIsTUFBSSxDQUFDLE1BQU07QUFDVCxVQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLE1BQUksUUFBUSxLQUFLLE1BQU0sZ0NBQWdDLE9BQU87QUFDNUQsV0FBTztBQUFBO0FBR1QsU0FBTyxnQ0FBZ0MsU0FBUztBQUFBO0FDbFFsRDtBQUFBO0FBQUE7QUFBQTtBQU1BLG1CQUFpQixRQUFRLGdCQUFnQjtBQUN2QyxNQUFJLE9BQU8sT0FBTyxLQUFLO0FBRXZCLE1BQUksT0FBTyx1QkFBdUI7QUFDaEMsUUFBSSxVQUFVLE9BQU8sc0JBQXNCO0FBQzNDLHNCQUFtQixXQUFVLFFBQVEsT0FBTyxTQUFVLEtBQUs7QUFDekQsYUFBTyxPQUFPLHlCQUF5QixRQUFRLEtBQUs7QUFBQSxTQUNqRCxLQUFLLEtBQUssTUFBTSxNQUFNO0FBQUE7QUFHN0IsU0FBTztBQUFBO0FBR1Qsd0JBQXdCLFFBQVE7QUFDOUIsV0FBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztBQUN6QyxRQUFJLFNBQVMsQUFBUSxVQUFVLE1BQWxCLE9BQXVCLFVBQVUsS0FBSztBQUNuRCxRQUFJLElBQUk2TyxVQUFRLE9BQU8sU0FBUyxNQUFJLFFBQVEsU0FBVSxLQUFLO0FBQ3pEdEssd0JBQWdCLFFBQVEsS0FBSyxPQUFPO0FBQUEsU0FDakMsT0FBTyw0QkFBNEIsT0FBTyxpQkFBaUIsUUFBUSxPQUFPLDBCQUEwQixXQUFXc0ssVUFBUSxPQUFPLFNBQVMsUUFBUSxTQUFVLEtBQUs7QUFDakssYUFBTyxlQUFlLFFBQVEsS0FBSyxPQUFPLHlCQUF5QixRQUFRO0FBQUE7QUFBQTtBQUkvRSxTQUFPO0FBQUE7QUFHVCwyQkFBeUIsS0FBSyxLQUFLLE9BQU87QUFDeEMsTUFBSSxPQUFPLEtBQUs7QUFDZCxXQUFPLGVBQWUsS0FBSyxLQUFLO0FBQUEsTUFDOUI7QUFBQSxNQUNBLFlBQVk7QUFBQSxNQUNaLGNBQWM7QUFBQSxNQUNkLFVBQVU7QUFBQTtBQUFBLFNBRVA7QUFDTCxRQUFJLE9BQU87QUFBQTtBQUdiLFNBQU87QUFBQTtBQUdULElBQUksbUJBQW1CLFdBQVk7QUFDakMsTUFBSSxZQUFZO0FBQ2hCLFNBQU87QUFBQSxJQUNMLGNBQWMsc0JBQXNCLE1BQU07QUFDeEMsVUFBSSxVQUFVLFNBQVMsR0FBRztBQUN4QixZQUFJLGFBQWEsVUFBVSxVQUFVLFNBQVM7QUFFOUMsWUFBSSxlQUFlLE1BQU07QUFDdkIscUJBQVc7QUFBQTtBQUFBO0FBSWYsVUFBSSxZQUFZLFVBQVUsUUFBUTtBQUVsQyxVQUFJLGNBQWMsSUFBSTtBQUNwQixrQkFBVSxLQUFLO0FBQUEsYUFDVjtBQUVMLGtCQUFVLE9BQU8sV0FBVztBQUM1QixrQkFBVSxLQUFLO0FBQUE7QUFBQTtBQUFBLElBR25CLGdCQUFnQix3QkFBd0IsTUFBTTtBQUM1QyxVQUFJLFlBQVksVUFBVSxRQUFRO0FBRWxDLFVBQUksY0FBYyxJQUFJO0FBQ3BCLGtCQUFVLE9BQU8sV0FBVztBQUFBO0FBRzlCLFVBQUksVUFBVSxTQUFTLEdBQUc7QUFDeEIsa0JBQVUsVUFBVSxTQUFTLEdBQUc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU14QyxJQUFJLG9CQUFvQiw0QkFBMkIsTUFBTTtBQUN2RCxTQUFPLEtBQUssV0FBVyxLQUFLLFFBQVEsa0JBQWtCLFdBQVcsT0FBTyxLQUFLLFdBQVc7QUFBQTtBQUcxRixJQUFJLGdCQUFnQix3QkFBdUIsR0FBRztBQUM1QyxTQUFPLEVBQUUsUUFBUSxZQUFZLEVBQUUsUUFBUSxTQUFTLEVBQUUsWUFBWTtBQUFBO0FBR2hFLElBQUksYUFBYSxxQkFBb0IsR0FBRztBQUN0QyxTQUFPLEVBQUUsUUFBUSxTQUFTLEVBQUUsWUFBWTtBQUFBO0FBRzFDLElBQUksUUFBUSxnQkFBZSxLQUFJO0FBQzdCLFNBQU8sV0FBVyxLQUFJO0FBQUE7QUFLeEIsSUFBSSxZQUFZLG9CQUFtQixLQUFLLEtBQUk7QUFDMUMsTUFBSSxNQUFNO0FBQ1YsTUFBSSxNQUFNLFNBQVUsT0FBTyxHQUFHO0FBQzVCLFFBQUksSUFBRyxRQUFRO0FBQ2IsWUFBTTtBQUNOLGFBQU87QUFBQTtBQUdULFdBQU87QUFBQTtBQUVULFNBQU87QUFBQTtBQVdULElBQUksaUJBQWlCLHlCQUF3QixPQUFPO0FBQ2xELFdBQVMsT0FBTyxVQUFVLFFBQVEsU0FBUyxJQUFJLE1BQU0sT0FBTyxJQUFJLE9BQU8sSUFBSSxJQUFJLE9BQU8sR0FBRyxPQUFPLE1BQU0sUUFBUTtBQUM1RyxXQUFPLE9BQU8sS0FBSyxVQUFVO0FBQUE7QUFHL0IsU0FBTyxPQUFPLFVBQVUsYUFBYSxNQUFNLE1BQU0sUUFBUSxVQUFVO0FBQUE7QUFHckUsSUFBSSxrQkFBa0IsMEJBQXlCLE9BQU87QUFRcEQsU0FBTyxNQUFNLE9BQU8sY0FBYyxPQUFPLE1BQU0saUJBQWlCLGFBQWEsTUFBTSxlQUFlLEtBQUssTUFBTTtBQUFBO0FBRy9HLElBQUlDLG9CQUFrQiwwQkFBeUIsVUFBVSxhQUFhO0FBR3BFLE1BQUksTUFBTyxpQkFBZ0IsUUFBUSxnQkFBZ0IsU0FBUyxTQUFTLFlBQVksYUFBYTtBQUU5RixNQUFJLFNBQVMsZUFBZTtBQUFBLElBQzFCLHlCQUF5QjtBQUFBLElBQ3pCLG1CQUFtQjtBQUFBLElBQ25CLG1CQUFtQjtBQUFBLEtBQ2xCO0FBRUgsTUFBSSxRQUFRO0FBQUEsSUFFVixZQUFZO0FBQUEsSUFRWixnQkFBZ0I7QUFBQSxJQUNoQiw2QkFBNkI7QUFBQSxJQUM3Qix5QkFBeUI7QUFBQSxJQUN6QixRQUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFHUix3QkFBd0I7QUFBQTtBQUUxQixNQUFJO0FBRUosTUFBSSxZQUFZLG9CQUFtQix1QkFBdUIsWUFBWSxrQkFBa0I7QUFDdEYsV0FBTyx5QkFBeUIsc0JBQXNCLGdCQUFnQixTQUFZLHNCQUFzQixjQUFjLE9BQU8sb0JBQW9CO0FBQUE7QUFHbkosTUFBSSxvQkFBb0IsNEJBQTJCLFNBQVM7QUFDMUQsV0FBTyxDQUFDLENBQUUsWUFBVyxNQUFNLFdBQVcsS0FBSyxTQUFVLFdBQVc7QUFDOUQsYUFBTyxVQUFVLFNBQVM7QUFBQTtBQUFBO0FBa0I5QixNQUFJLG1CQUFtQiwyQkFBMEIsWUFBWTtBQUMzRCxRQUFJLGNBQWMsT0FBTztBQUV6QixRQUFJLE9BQU8sZ0JBQWdCLFlBQVk7QUFDckMsZUFBUyxRQUFRLFVBQVUsUUFBUSxTQUFTLElBQUksTUFBTSxRQUFRLElBQUksUUFBUSxJQUFJLElBQUksUUFBUSxHQUFHLFFBQVEsT0FBTyxTQUFTO0FBQ25ILGVBQU8sUUFBUSxLQUFLLFVBQVU7QUFBQTtBQUdoQyxvQkFBYyxZQUFZLE1BQU0sUUFBUTtBQUFBO0FBRzFDLFFBQUksQ0FBQyxhQUFhO0FBQ2hCLFVBQUksZ0JBQWdCLFVBQWEsZ0JBQWdCLE9BQU87QUFDdEQsZUFBTztBQUFBO0FBSVQsWUFBTSxJQUFJLE1BQU0sSUFBSSxPQUFPLFlBQVk7QUFBQTtBQUd6QyxRQUFJLE9BQU87QUFFWCxRQUFJLE9BQU8sZ0JBQWdCLFVBQVU7QUFDbkMsYUFBTyxJQUFJLGNBQWM7QUFFekIsVUFBSSxDQUFDLE1BQU07QUFDVCxjQUFNLElBQUksTUFBTSxJQUFJLE9BQU8sWUFBWTtBQUFBO0FBQUE7QUFJM0MsV0FBTztBQUFBO0FBR1QsTUFBSSxzQkFBc0IsZ0NBQStCO0FBQ3ZELFFBQUksT0FBTyxpQkFBaUI7QUFFNUIsUUFBSSxTQUFTLE9BQU87QUFDbEIsYUFBTztBQUFBO0FBR1QsUUFBSSxTQUFTLFFBQVc7QUFFdEIsVUFBSSxrQkFBa0IsSUFBSSxnQkFBZ0I7QUFDeEMsZUFBTyxJQUFJO0FBQUEsYUFDTjtBQUNMLFlBQUkscUJBQXFCLE1BQU0sZUFBZTtBQUM5QyxZQUFJLG9CQUFvQixzQkFBc0IsbUJBQW1CO0FBRWpFLGVBQU8scUJBQXFCLGlCQUFpQjtBQUFBO0FBQUE7QUFJakQsUUFBSSxDQUFDLE1BQU07QUFDVCxZQUFNLElBQUksTUFBTTtBQUFBO0FBR2xCLFdBQU87QUFBQTtBQUdULE1BQUksc0JBQXNCLGdDQUErQjtBQUN2RCxVQUFNLGlCQUFpQixNQUFNLFdBQVcsSUFBSSxTQUFVLFdBQVc7QUFDL0QsVUFBSSxnQkFBZ0IsU0FBUztBQUU3QixVQUFJLGNBQWMsU0FBUyxHQUFHO0FBQzVCLGVBQU87QUFBQSxVQUNMO0FBQUEsVUFDQSxtQkFBbUIsY0FBYztBQUFBLFVBQ2pDLGtCQUFrQixjQUFjLGNBQWMsU0FBUztBQUFBO0FBQUE7QUFJM0QsYUFBTztBQUFBLE9BQ04sT0FBTyxTQUFVLE9BQU87QUFDekIsYUFBTyxDQUFDLENBQUM7QUFBQTtBQUlYLFFBQUksTUFBTSxlQUFlLFVBQVUsS0FBSyxDQUFDLGlCQUFpQixrQkFDeEQ7QUFDQSxZQUFNLElBQUksTUFBTTtBQUFBO0FBQUE7QUFJcEIsTUFBSSxXQUFXLG1CQUFrQixNQUFNO0FBQ3JDLFFBQUksU0FBUyxPQUFPO0FBQ2xCO0FBQUE7QUFHRixRQUFJLFNBQVMsSUFBSSxlQUFlO0FBQzlCO0FBQUE7QUFHRixRQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssT0FBTztBQUN4QixnQkFBUztBQUNUO0FBQUE7QUFHRixTQUFLLE1BQU07QUFBQSxNQUNULGVBQWUsQ0FBQyxDQUFDLE9BQU87QUFBQTtBQUUxQixVQUFNLDBCQUEwQjtBQUVoQyxRQUFJLGtCQUFrQixPQUFPO0FBQzNCLFdBQUs7QUFBQTtBQUFBO0FBSVQsTUFBSSxxQkFBcUIsNkJBQTRCLHVCQUF1QjtBQUMxRSxRQUFJLE9BQU8saUJBQWlCLGtCQUFrQjtBQUM5QyxXQUFPLE9BQU8sT0FBTyxTQUFTLFFBQVEsUUFBUTtBQUFBO0FBS2hELE1BQUksbUJBQW1CLDJCQUEwQixHQUFHO0FBQ2xELFFBQUksU0FBUyxnQkFBZ0I7QUFFN0IsUUFBSSxrQkFBa0IsU0FBUztBQUU3QjtBQUFBO0FBR0YsUUFBSSxlQUFlLE9BQU8seUJBQXlCLElBQUk7QUFFckQsV0FBSyxXQUFXO0FBQUEsUUFZZCxhQUFhLE9BQU8sMkJBQTJCLENBQUMsWUFBWTtBQUFBO0FBRTlEO0FBQUE7QUFNRixRQUFJLGVBQWUsT0FBTyxtQkFBbUIsSUFBSTtBQUUvQztBQUFBO0FBSUYsTUFBRTtBQUFBO0FBSUosTUFBSSxlQUFlLHVCQUFzQixHQUFHO0FBQzFDLFFBQUksU0FBUyxnQkFBZ0I7QUFDN0IsUUFBSSxrQkFBa0Isa0JBQWtCO0FBRXhDLFFBQUksbUJBQW1CLGtCQUFrQixVQUFVO0FBQ2pELFVBQUksaUJBQWlCO0FBQ25CLGNBQU0sMEJBQTBCO0FBQUE7QUFBQSxXQUU3QjtBQUVMLFFBQUU7QUFDRixlQUFTLE1BQU0sMkJBQTJCO0FBQUE7QUFBQTtBQVE5QyxNQUFJLFdBQVcsbUJBQWtCLEdBQUc7QUFDbEMsUUFBSSxTQUFTLGdCQUFnQjtBQUM3QjtBQUNBLFFBQUksa0JBQWtCO0FBRXRCLFFBQUksTUFBTSxlQUFlLFNBQVMsR0FBRztBQUluQyxVQUFJLGlCQUFpQixVQUFVLE1BQU0sZ0JBQWdCLFNBQVUsTUFBTTtBQUNuRSxZQUFJLFlBQVksS0FBSztBQUNyQixlQUFPLFVBQVUsU0FBUztBQUFBO0FBRzVCLFVBQUksaUJBQWlCLEdBQUc7QUFHdEIsWUFBSSxFQUFFLFVBQVU7QUFFZCw0QkFBa0IsTUFBTSxlQUFlLE1BQU0sZUFBZSxTQUFTLEdBQUc7QUFBQSxlQUNuRTtBQUVMLDRCQUFrQixNQUFNLGVBQWUsR0FBRztBQUFBO0FBQUEsaUJBRW5DLEVBQUUsVUFBVTtBQUdyQixZQUFJLG9CQUFvQixVQUFVLE1BQU0sZ0JBQWdCLFNBQVUsT0FBTztBQUN2RSxjQUFJLG9CQUFvQixNQUFNO0FBQzlCLGlCQUFPLFdBQVc7QUFBQTtBQUdwQixZQUFJLG9CQUFvQixLQUFNLE9BQU0sZUFBZSxnQkFBZ0IsY0FBYyxVQUFVLFlBQVksV0FBVyxDQUFDLFdBQVcsVUFBVTtBQU10SSw4QkFBb0I7QUFBQTtBQUd0QixZQUFJLHFCQUFxQixHQUFHO0FBSTFCLGNBQUksd0JBQXdCLHNCQUFzQixJQUFJLE1BQU0sZUFBZSxTQUFTLElBQUksb0JBQW9CO0FBQzVHLGNBQUksbUJBQW1CLE1BQU0sZUFBZTtBQUM1Qyw0QkFBa0IsaUJBQWlCO0FBQUE7QUFBQSxhQUVoQztBQUdMLFlBQUksbUJBQW1CLFVBQVUsTUFBTSxnQkFBZ0IsU0FBVSxPQUFPO0FBQ3RFLGNBQUksbUJBQW1CLE1BQU07QUFDN0IsaUJBQU8sV0FBVztBQUFBO0FBR3BCLFlBQUksbUJBQW1CLEtBQU0sT0FBTSxlQUFlLGdCQUFnQixjQUFjLFVBQVUsWUFBWSxXQUFXLENBQUMsV0FBVyxVQUFVO0FBTXJJLDZCQUFtQjtBQUFBO0FBR3JCLFlBQUksb0JBQW9CLEdBQUc7QUFJekIsY0FBSSx5QkFBeUIscUJBQXFCLE1BQU0sZUFBZSxTQUFTLElBQUksSUFBSSxtQkFBbUI7QUFFM0csY0FBSSxvQkFBb0IsTUFBTSxlQUFlO0FBQzdDLDRCQUFrQixrQkFBa0I7QUFBQTtBQUFBO0FBQUEsV0FHbkM7QUFFTCx3QkFBa0IsaUJBQWlCO0FBQUE7QUFHckMsUUFBSSxpQkFBaUI7QUFDbkIsUUFBRTtBQUNGLGVBQVM7QUFBQTtBQUFBO0FBS2IsTUFBSSxXQUFXLG1CQUFrQixHQUFHO0FBQ2xDLFFBQUksY0FBYyxNQUFNLGVBQWUsT0FBTyxtQkFBbUIsT0FBTyxPQUFPO0FBQzdFLFFBQUU7QUFDRixXQUFLO0FBQ0w7QUFBQTtBQUdGLFFBQUksV0FBVyxJQUFJO0FBQ2pCLGVBQVM7QUFDVDtBQUFBO0FBQUE7QUFJSixNQUFJLGFBQWEscUJBQW9CLEdBQUc7QUFDdEMsUUFBSSxlQUFlLE9BQU8seUJBQXlCLElBQUk7QUFDckQ7QUFBQTtBQUdGLFFBQUksU0FBUyxnQkFBZ0I7QUFFN0IsUUFBSSxrQkFBa0IsU0FBUztBQUM3QjtBQUFBO0FBR0YsUUFBSSxlQUFlLE9BQU8sbUJBQW1CLElBQUk7QUFDL0M7QUFBQTtBQUdGLE1BQUU7QUFDRixNQUFFO0FBQUE7QUFNSixNQUFJLGVBQWUseUJBQXdCO0FBQ3pDLFFBQUksQ0FBQyxNQUFNLFFBQVE7QUFDakI7QUFBQTtBQUlGLHFCQUFpQixhQUFhO0FBRzlCLFVBQU0seUJBQXlCLE9BQU8sb0JBQW9CLE1BQU0sV0FBWTtBQUMxRSxlQUFTO0FBQUEsU0FDTixTQUFTO0FBQ2QsUUFBSSxpQkFBaUIsV0FBVyxjQUFjO0FBQzlDLFFBQUksaUJBQWlCLGFBQWEsa0JBQWtCO0FBQUEsTUFDbEQsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBO0FBRVgsUUFBSSxpQkFBaUIsY0FBYyxrQkFBa0I7QUFBQSxNQUNuRCxTQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUE7QUFFWCxRQUFJLGlCQUFpQixTQUFTLFlBQVk7QUFBQSxNQUN4QyxTQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUE7QUFFWCxRQUFJLGlCQUFpQixXQUFXLFVBQVU7QUFBQSxNQUN4QyxTQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUE7QUFFWCxXQUFPO0FBQUE7QUFHVCxNQUFJLGtCQUFrQiw0QkFBMkI7QUFDL0MsUUFBSSxDQUFDLE1BQU0sUUFBUTtBQUNqQjtBQUFBO0FBR0YsUUFBSSxvQkFBb0IsV0FBVyxjQUFjO0FBQ2pELFFBQUksb0JBQW9CLGFBQWEsa0JBQWtCO0FBQ3ZELFFBQUksb0JBQW9CLGNBQWMsa0JBQWtCO0FBQ3hELFFBQUksb0JBQW9CLFNBQVMsWUFBWTtBQUM3QyxRQUFJLG9CQUFvQixXQUFXLFVBQVU7QUFDN0MsV0FBTztBQUFBO0FBTVQsU0FBTztBQUFBLElBQ0wsVUFBVSxrQkFBa0IsaUJBQWlCO0FBQzNDLFVBQUksTUFBTSxRQUFRO0FBQ2hCLGVBQU87QUFBQTtBQUdULFVBQUksYUFBYSxVQUFVLGlCQUFpQjtBQUM1QyxVQUFJLGlCQUFpQixVQUFVLGlCQUFpQjtBQUNoRCxVQUFJLG9CQUFvQixVQUFVLGlCQUFpQjtBQUVuRCxVQUFJLENBQUMsbUJBQW1CO0FBQ3RCO0FBQUE7QUFHRixZQUFNLFNBQVM7QUFDZixZQUFNLFNBQVM7QUFDZixZQUFNLDhCQUE4QixJQUFJO0FBRXhDLFVBQUksWUFBWTtBQUNkO0FBQUE7QUFHRixVQUFJLG1CQUFtQiw2QkFBNEI7QUFDakQsWUFBSSxtQkFBbUI7QUFDckI7QUFBQTtBQUdGO0FBRUEsWUFBSSxnQkFBZ0I7QUFDbEI7QUFBQTtBQUFBO0FBSUosVUFBSSxtQkFBbUI7QUFDckIsMEJBQWtCLE1BQU0sV0FBVyxVQUFVLEtBQUssa0JBQWtCO0FBQ3BFLGVBQU87QUFBQTtBQUdUO0FBQ0EsYUFBTztBQUFBO0FBQUEsSUFFVCxZQUFZLG9CQUFvQixtQkFBbUI7QUFDakQsVUFBSSxDQUFDLE1BQU0sUUFBUTtBQUNqQixlQUFPO0FBQUE7QUFHVCxtQkFBYSxNQUFNO0FBRW5CLFlBQU0seUJBQXlCO0FBQy9CO0FBQ0EsWUFBTSxTQUFTO0FBQ2YsWUFBTSxTQUFTO0FBQ2YsdUJBQWlCLGVBQWU7QUFDaEMsVUFBSSxlQUFlLFVBQVUsbUJBQW1CO0FBQ2hELFVBQUksbUJBQW1CLFVBQVUsbUJBQW1CO0FBQ3BELFVBQUksc0JBQXNCLFVBQVUsbUJBQW1CO0FBRXZELFVBQUksY0FBYztBQUNoQjtBQUFBO0FBR0YsVUFBSSxjQUFjLFVBQVUsbUJBQW1CLGVBQWU7QUFFOUQsVUFBSSxxQkFBcUIsK0JBQThCO0FBQ3JELGNBQU0sV0FBWTtBQUNoQixjQUFJLGFBQWE7QUFDZixxQkFBUyxtQkFBbUIsTUFBTTtBQUFBO0FBR3BDLGNBQUksa0JBQWtCO0FBQ3BCO0FBQUE7QUFBQTtBQUFBO0FBS04sVUFBSSxlQUFlLHFCQUFxQjtBQUN0Qyw0QkFBb0IsbUJBQW1CLE1BQU0sOEJBQThCLEtBQUssb0JBQW9CO0FBQ3BHLGVBQU87QUFBQTtBQUdUO0FBQ0EsYUFBTztBQUFBO0FBQUEsSUFFVCxPQUFPLGlCQUFpQjtBQUN0QixVQUFJLE1BQU0sVUFBVSxDQUFDLE1BQU0sUUFBUTtBQUNqQyxlQUFPO0FBQUE7QUFHVCxZQUFNLFNBQVM7QUFDZjtBQUNBLGFBQU87QUFBQTtBQUFBLElBRVQsU0FBUyxtQkFBbUI7QUFDMUIsVUFBSSxDQUFDLE1BQU0sVUFBVSxDQUFDLE1BQU0sUUFBUTtBQUNsQyxlQUFPO0FBQUE7QUFHVCxZQUFNLFNBQVM7QUFDZjtBQUNBO0FBQ0EsYUFBTztBQUFBO0FBQUEsSUFFVCx5QkFBeUIsaUNBQWlDLG1CQUFtQjtBQUMzRSxVQUFJLGtCQUFrQixHQUFHLE9BQU8sbUJBQW1CLE9BQU87QUFDMUQsWUFBTSxhQUFhLGdCQUFnQixJQUFJLFNBQVUsU0FBUztBQUN4RCxlQUFPLE9BQU8sWUFBWSxXQUFXLElBQUksY0FBYyxXQUFXO0FBQUE7QUFHcEUsVUFBSSxNQUFNLFFBQVE7QUFDaEI7QUFBQTtBQUdGLGFBQU87QUFBQTtBQUFBO0FBSVgsT0FBSyx3QkFBd0I7QUFDN0IsU0FBTztBQUFBOzs7Ozs7O0FDanBCVCxtQkFBaUJDLEtBQUs7O1NBQW9DdEssWUFBVSxBQUFjLE9BQU91SyxVQUFyQixjQUErQixBQUFZLE9BQU9BLE9BQU9DLFlBQTFCLFdBQXFDLFNBQVVGLE1BQUs7V0FBUyxPQUFPQTtBQUFBQSxNQUFTLFNBQVVBLE1BQUs7V0FBU0EsUUFBTyxBQUFjLE9BQU9DLFVBQXJCLGNBQStCRCxLQUFJRyxnQkFBZ0JGLFVBQVVELFNBQVFDLE9BQU9HLFlBQVksV0FBVyxPQUFPSjtBQUFBQSxLQUFRdEssVUFBUXNLO0FBQUFBO0FBRXpVLDJCQUF5QkssV0FBVUMsYUFBYTtNQUFNLENBQUVELHNCQUFvQkMsY0FBYztVQUFRLElBQUlDLFVBQVU7QUFBQTtBQUFBO0FBRWhILDZCQUEyQkMsUUFBUXJMLE9BQU87V0FBVzRGLElBQUksR0FBR0EsSUFBSTVGLE1BQU0wRixRQUFRRSxLQUFLO1FBQU0wRixhQUFhdEwsTUFBTTRGO0FBQUkwRixlQUFXQyxhQUFhRCxXQUFXQyxjQUFjO0FBQU9ELGVBQVdFLGVBQWU7UUFBVSxXQUFXRjtBQUFZQSxpQkFBV0csV0FBVztBQUFNQyxXQUFPQyxlQUFlTixRQUFRQyxXQUFXTSxLQUFLTjtBQUFBQTtBQUFBQTtBQUU3Uyx3QkFBc0JILGFBQWFVLFlBQVlDLGFBQWE7TUFBTUQ7QUFBWXZMLHdCQUFrQjZLLFlBQVlGLFdBQVdZO01BQWlCQztBQUFheEwsd0JBQWtCNkssYUFBYVc7QUFBY0osU0FBT0MsZUFBZVIsYUFBYSxhQUFhO0FBQUEsSUFBRU0sVUFBVTtBQUFBO1NBQWlCTjtBQUFBQTtBQUUvUSxxQkFBbUJZLFVBQVVDLFlBQVk7TUFBTSxPQUFPQSxlQUFlLGNBQWNBLGVBQWUsTUFBTTtVQUFRLElBQUlaLFVBQVU7QUFBQTtBQUF5RFcsV0FBU2QsWUFBWVMsT0FBT08sT0FBT0QsY0FBY0EsV0FBV2YsV0FBVztBQUFBLElBQUVELGFBQWE7QUFBQSxNQUFFNUgsT0FBTzJJO0FBQUFBLE1BQVVOLFVBQVU7QUFBQSxNQUFNRCxjQUFjO0FBQUE7QUFBQTtBQUFXRSxTQUFPQyxlQUFlSSxVQUFVLGFBQWE7QUFBQSxJQUFFTixVQUFVO0FBQUE7TUFBY087QUFBWXRMLHNCQUFnQnFMLFVBQVVDO0FBQUFBO0FBRXRiLDJCQUF5QkUsR0FBR2xRLElBQUc7QUFBRTBFLHNCQUFrQmdMLE9BQU9TLGtCQUFrQiwwQkFBeUJELElBQUdsUSxJQUFHO0FBQUVrUSxPQUFFRSxZQUFZcFE7V0FBVWtRO0FBQUFBO1NBQWF4TCxrQkFBZ0J3TCxHQUFHbFE7QUFBQUE7QUFFckssd0JBQXNCcVEsU0FBUztNQUFNQyw0QkFBNEJDO1NBQW9DLGdDQUFnQztRQUFNQyxRQUFRL0wsa0JBQWdCNEwsVUFBVUk7UUFBWUgsMkJBQTJCO1VBQU1JLFlBQVlqTSxrQkFBZ0IsTUFBTXVLO0FBQWF5QixlQUFTRSxRQUFRQyxVQUFVSixPQUFPSyxXQUFXSDtBQUFBQSxXQUFtQjtBQUFFRCxlQUFTRCxNQUFNTSxNQUFNLE1BQU1EO0FBQUFBO1dBQXFCL0wsNkJBQTJCLE1BQU0yTDtBQUFBQTtBQUFBQTtBQUU1WixzQ0FBb0NNLE9BQU1DLE1BQU07TUFBTUEsUUFBU3pNLFdBQVF5TSxVQUFVLFlBQVksT0FBT0EsU0FBUyxhQUFhO1dBQVNBO0FBQUFBLGFBQWlCQSxTQUFTLFFBQVE7VUFBUSxJQUFJNUIsVUFBVTtBQUFBO1NBQXNFNUsseUJBQXVCdU07QUFBQUE7QUFFeFIsa0NBQWdDQSxPQUFNO01BQU1BLFVBQVMsUUFBUTtVQUFRLElBQUlFLGVBQWU7QUFBQTtTQUF1RUY7QUFBQUE7QUFFL0osdUNBQXFDO01BQU0sT0FBT0osWUFBWSxlQUFlLENBQUNBLFFBQVFDO0FBQVcsV0FBTztNQUFXRCxRQUFRQyxVQUFVTTtBQUFNLFdBQU87TUFBVyxPQUFPQyxVQUFVO0FBQVksV0FBTztNQUFVO0FBQUVDLFlBQVFuQyxVQUFVb0MsUUFBUUwsS0FBS0wsUUFBUUMsVUFBVVEsU0FBUyxJQUFJLFdBQVk7QUFBQTtXQUFhO0FBQUEsV0FBZUUsR0FBUDtXQUFtQjtBQUFBO0FBQUE7QUFFL1QsMkJBQXlCcEIsR0FBRztBQUFFekwsc0JBQWtCaUwsT0FBT1MsaUJBQWlCVCxPQUFPNkIsaUJBQWlCLDBCQUF5QnJCLElBQUc7V0FBU0EsR0FBRUUsYUFBYVYsT0FBTzZCLGVBQWVyQjtBQUFBQTtTQUFjekwsa0JBQWdCeUw7QUFBQUE7QUFFeE0sSUFBSWxMLFFBQVF3TTtBQUVaLElBQUl2TSxXQUFXdU07QUFFZixJQUFJQyxZQUFZRDtBQUVoQixJQUFJRSxXQUFXRixZQUNYNUMsa0JBQWtCOEMsU0FBUzlDO0FBTy9CLElBQUkrQyxZQUF5Qix5QkFBVUMsa0JBQWtCO0FBQ3ZEL00sY0FBVThNLFlBQVdDO01BRWpCQyxTQUFTQyxlQUFhSDtzQkFFUDNOLE9BQU87UUFDcEIrTjtBQUVKbk4sc0JBQWdCLE1BQU0rTTtBQUV0QkksWUFBUUYsT0FBT2IsS0FBSyxNQUFNaE47QUFNMUIrTixVQUFNQywyQkFBMkI7QUFBQSxNQUMvQkMseUJBQXlCO0FBQUE7QUFJM0JGLFVBQU1FLDBCQUEwQjtRQUM1QkMsbUJBQW1CbE8sTUFBTWtPO2FBRXBCQyxjQUFjRCxrQkFBa0I7VUFDbkMsQ0FBQ3hDLE9BQU9ULFVBQVVtRCxlQUFlcEIsS0FBS2tCLGtCQUFrQkMsYUFBYTs7O1VBSXJFQSxlQUFlLDJCQUEyQjtBQUM1Q0osY0FBTUUsMEJBQTBCLENBQUMsQ0FBQ0MsaUJBQWlCQzs7O1VBSWpEQSxlQUFlLG9CQUFvQjtBQUNyQ0osY0FBTU0sbUJBQW1CSCxpQkFBaUJDOzs7QUFJNUNKLFlBQU1DLHlCQUF5QkcsY0FBY0QsaUJBQWlCQztBQUFBQTtBQU1oRUosVUFBTU8sb0JBQW9CdE8sTUFBTXVPLHFCQUFxQjtBQUVyRFIsVUFBTVM7V0FFQ1Q7QUFBQUE7QUFVVGhOLGlCQUFhNE0sWUFBVyxDQUFDO0FBQUEsSUFDdkIvQixLQUFLO0FBQUEsSUFDTHhJLE9BQU8sdUJBQXVCO2FBRXJCLEtBQUtwRCxNQUFNa08saUJBQWlCTyxZQUFhLFFBQU9BLGFBQWEsY0FBY0EsV0FBV2hKO0FBQUFBO0FBQUFBLEtBRzlGO0FBQUEsSUFDRG1HLEtBQUs7QUFBQSxJQUNMeEksT0FBTywwQkFBMEIrSyxZQUFZO1VBQ3ZDTyxjQUFjLEtBQUtWLHlCQUF5Qkc7VUFFNUMsQ0FBQ08sYUFBYTtlQUNUO0FBQUE7VUFHTEMsT0FBT0Q7VUFFUCxPQUFPQSxnQkFBZ0IsVUFBVTtZQUMvQkU7QUFFSkQsZUFBUUMscUJBQW9CLEtBQUtDLG1CQUFtQixRQUFRRCxzQkFBc0IsU0FBUyxTQUFTQSxrQkFBa0JFLGNBQWNKO1lBRWhJLENBQUNDLE1BQU07Z0JBQ0gsSUFBSUksTUFBTSxJQUFJQyxPQUFPYixZQUFZO0FBQUE7QUFBQTtVQUl2QyxPQUFPTyxnQkFBZ0IsWUFBWTtBQUNyQ0MsZUFBT0Q7WUFFSCxDQUFDQyxNQUFNO2dCQUNILElBQUlJLE1BQU0sSUFBSUMsT0FBT2IsWUFBWTtBQUFBO0FBQUE7YUFJcENRO0FBQUFBO0FBQUFBLEtBRVI7QUFBQSxJQUNEL0MsS0FBSztBQUFBLElBQ0x4SSxPQUFPLDhCQUE4QjtVQUMvQnVMLE9BQU8sS0FBS00saUJBQWlCO2FBQzFCTixPQUFPQSxPQUFPLEtBQUtPO0FBQUFBO0FBQUFBLEtBSTNCO0FBQUEsSUFDRHRELEtBQUs7QUFBQSxJQUNMeEksT0FBTyxpQ0FBaUM7VUFDbEMrTCxrQkFBa0IsS0FBS047VUFFdkJNLGlCQUFpQjthQUNkRCwyQkFBMkJDLGdCQUFnQkM7QUFBQUE7QUFBQUE7QUFBQUEsS0FHbkQ7QUFBQSxJQUNEeEQsS0FBSztBQUFBLElBQ0x4SSxPQUFPLDBCQUEwQjtVQUMzQmlNLFNBQVM7VUFFVEMsd0JBQXdCLEtBQUt0QiwwQkFDN0J1QixzQkFBc0JELHNCQUFzQkMscUJBQzVDQyx5QkFBeUJGLHNCQUFzQkcsZUFDL0NBLGdCQUFnQkQsMkJBQTJCLFNBQVMsUUFBUUE7VUFFNUQsS0FBS0UsV0FBVzthQUViQSxVQUFVQyxXQUFXO0FBQUEsVUFDeEJDLGFBQWE7QUFBQTtBQUFBO1VBSWJDLHFCQUFxQiwrQkFBOEI7WUFDakRDLGtCQUFrQlQsT0FBT1U7WUFFekJDLGlCQUFrQkYscUJBQW9CLFFBQVFBLG9CQUFvQixTQUFTLFNBQVNBLGdCQUFnQnZMLFVBQVU4SyxPQUFPcEI7WUFFckgrQixnQkFBZ0I7QUFFbEJGLDBCQUFnQnZMLE1BQU07QUFBQSxZQUNwQmtMO0FBQUFBO0FBQUFBO1lBSUFKLE9BQU9oQixrQkFBa0I7QUFDM0JnQixpQkFBT2hCLGlCQUFpQnJCLEtBQUs7QUFBQTtBQUFBO1VBSzdCdUMscUJBQXFCO0FBQ3ZCQSw0QkFBb0IsS0FBS1Esc0JBQXNCRSxLQUFLSixvQkFBb0JBO0FBQUFBLGFBQ25FO0FBQ0xBO0FBQUFBO0FBQUFBO0FBQUFBLEtBR0g7QUFBQSxJQUNEakUsS0FBSztBQUFBLElBQ0x4SSxPQUFPLDBCQUEwQjtVQUMzQixDQUFDLEtBQUtzTSxXQUFXO1lBQ2ZRLDJCQUEyQixLQUFLNUIsa0JBQWtCOUcsSUFHdER2RyxTQUFTa1A7WUFDTEMsYUFBYUYseUJBQXlCRyxLQUFLakQ7WUFFM0NnRCxZQUFZO2VBRVRWLFlBQVksS0FBSzFQLE1BQU1zUSxpQkFBaUJKLDBCQUEwQixLQUFLbEM7Y0FFeEUsS0FBS2hPLE1BQU11USxRQUFRO2lCQUNoQmIsVUFBVWM7QUFBQUE7Y0FHYixLQUFLeFEsTUFBTXlRLFFBQVE7aUJBQ2hCZixVQUFVZ0I7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUEsS0FLdEI7QUFBQSxJQUNEOUUsS0FBSztBQUFBLElBQ0x4SSxPQUFPLDZCQUE2QjtVQUM5QixLQUFLcEQsTUFBTXVRLFFBQVE7YUFDaEJJO0FBQUFBO0FBQUFBO0FBQUFBLEtBUVI7QUFBQSxJQUNEL0UsS0FBSztBQUFBLElBQ0x4SSxPQUFPLDRCQUE0QndOLFdBQVc7VUFDeEMsS0FBS2xCLFdBQVc7WUFDZGtCLFVBQVVyQyxzQkFBc0IsS0FBS3ZPLE1BQU11TyxtQkFBbUI7ZUFDM0RtQixVQUFVbUIsd0JBQXdCLEtBQUs3USxNQUFNdU87QUFBQUE7WUFHaER1QyxlQUFlLENBQUNGLFVBQVVMLFVBQVUsS0FBS3ZRLE1BQU11UTtZQUMvQ1EsaUJBQWlCSCxVQUFVTCxVQUFVLENBQUMsS0FBS3ZRLE1BQU11UTtZQUNqRFMsWUFBWSxDQUFDSixVQUFVSCxVQUFVLEtBQUt6USxNQUFNeVE7WUFDNUNRLGNBQWNMLFVBQVVILFVBQVUsQ0FBQyxLQUFLelEsTUFBTXlRO1lBRTlDSyxjQUFjO2VBQ1h0QztlQUNBa0IsVUFBVWM7QUFBQUE7WUFHYk8sZ0JBQWdCO2VBQ2JHOzs7WUFJSEYsV0FBVztlQUNSdEIsVUFBVWdCO0FBQUFBO1lBR2JPLGFBQWE7ZUFDVnZCLFVBQVV5QjtBQUFBQTtBQUFBQSxhQUVaO1lBS0RQLFVBQVVyQyxzQkFBc0IsS0FBS3ZPLE1BQU11TyxtQkFBbUI7ZUFDM0RELG9CQUFvQixLQUFLdE8sTUFBTXVPO0FBQUFBO1lBTWxDLEtBQUt2TyxNQUFNdVEsUUFBUTtlQUNoQi9CO2VBQ0FtQztBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQSxLQUlWO0FBQUEsSUFDRC9FLEtBQUs7QUFBQSxJQUNMeEksT0FBTyxnQ0FBZ0M7V0FDaEM4TjtBQUFBQTtBQUFBQSxLQUVOO0FBQUEsSUFDRHRGLEtBQUs7QUFBQSxJQUNMeEksT0FBTyxrQkFBa0I7VUFDbkJnTyxTQUFTO1VBRVRDLFFBQVEsS0FBS3JSLE1BQU1DLFdBQVdlLE1BQU1zUSxTQUFTQyxLQUFLLEtBQUt2UixNQUFNQyxZQUFZd0Y7VUFFekU0TCxPQUFPO1lBQ0xBLE1BQU1HLFFBQVFILE1BQU1HLFNBQVN4USxNQUFNeVEsVUFBVTtnQkFDekMsSUFBSTFDLE1BQU07QUFBQTtZQUdkMkMsc0JBQXNCLDhCQUE2QnBOLFNBQVM7Y0FDMURpSyxvQkFBb0I2QyxPQUFPcFIsTUFBTXVPO2NBRWpDOEMsT0FBTztnQkFDTCxPQUFPQSxNQUFNeFAsUUFBUSxZQUFZO0FBQ25Dd1Asb0JBQU14UCxJQUFJeUM7QUFBQUEsdUJBQ0QrTSxNQUFNeFAsS0FBSztBQUNwQndQLG9CQUFNeFAsSUFBSXNCLFVBQVVtQjtBQUFBQTtBQUFBQTtBQUl4QjhNLGlCQUFPOUMsb0JBQW9CQyxvQkFBb0JBLG9CQUFvQixDQUFDaks7QUFBQUE7WUFHbEVxTixlQUFlM1EsTUFBTTRRLGFBQWFQLE9BQU87QUFBQSxVQUMzQ3hQLEtBQUs2UDtBQUFBQTtlQUVBQztBQUFBQTthQUdGO0FBQUE7QUFBQTtTQUlKaEU7QUFBQUEsRUFDUDNNLE1BQU02UTtBQUdSLElBQUlDLGNBQWMsT0FBT0MsWUFBWSxjQUFjQyxXQUFXRDtBQUM5RHBFLFVBQVVzRSxZQUFZO0FBQUEsRUFDcEIxQixRQUFROUMsVUFBVXlFO0FBQUFBLEVBQ2xCekIsUUFBUWhELFVBQVV5RTtBQUFBQSxFQUNsQmhFLGtCQUFrQlQsVUFBVTBFLE1BQU07QUFBQSxJQUNoQzFELFVBQVVoQixVQUFVMkU7QUFBQUEsSUFDcEJDLFlBQVk1RSxVQUFVNkU7QUFBQUEsSUFDdEJDLGdCQUFnQjlFLFVBQVU2RTtBQUFBQSxJQUMxQkUsbUJBQW1CL0UsVUFBVTZFO0FBQUFBLElBQzdCRyxjQUFjaEYsVUFBVTZFO0FBQUFBLElBQ3hCakUsa0JBQWtCWixVQUFVNkU7QUFBQUEsSUFDNUIvQyxxQkFBcUI5QixVQUFVNkU7QUFBQUEsSUFDL0JJLGNBQWNqRixVQUFVa0YsVUFBVSxDQUFDbEYsVUFBVW1GLFdBQVdkLGNBQWNyRSxVQUFVb0YsUUFBUXBGLFVBQVU2RSxNQUFNN0UsVUFBVXlFO0FBQUFBLElBQ2xIWSxlQUFlckYsVUFBVWtGLFVBQVUsQ0FBQ2xGLFVBQVVtRixXQUFXZCxjQUFjckUsVUFBVW9GLFFBQVFwRixVQUFVNkU7QUFBQUEsSUFDbkdTLG1CQUFtQnRGLFVBQVVrRixVQUFVLENBQUNsRixVQUFVeUUsTUFBTXpFLFVBQVU2RTtBQUFBQSxJQUNsRVUseUJBQXlCdkYsVUFBVWtGLFVBQVUsQ0FBQ2xGLFVBQVV5RSxNQUFNekUsVUFBVTZFO0FBQUFBLElBQ3hFckUseUJBQXlCUixVQUFVeUU7QUFBQUEsSUFDbkNlLGdCQUFnQnhGLFVBQVVrRixVQUFVLENBQUNsRixVQUFVbUYsV0FBV2QsY0FBY3JFLFVBQVVvRixRQUFRcEYsVUFBVTZFO0FBQUFBLElBQ3BHWSxtQkFBbUJ6RixVQUFVa0YsVUFBVSxDQUFDbEYsVUFBVXlFLE1BQU16RSxVQUFVNkU7QUFBQUEsSUFDbEU3QyxlQUFlaEMsVUFBVXlFO0FBQUFBO0FBQUFBLEVBRTNCM0QsbUJBQW1CZCxVQUFVMEYsUUFBUTFGLFVBQVVtRixXQUFXZDtBQUFBQSxFQUMxRDdSLFVBQVV3TixVQUFVa0YsVUFBVTtBQUFBLElBQUNsRixVQUFVbko7QUFBQUEsSUFDekNtSixVQUFVbUYsV0FBV2Q7QUFBQUE7QUFBQUE7QUFNdkJuRSxVQUFVeUYsZUFBZTtBQUFBLEVBQ3ZCN0MsUUFBUTtBQUFBLEVBQ1JFLFFBQVE7QUFBQSxFQUNSdkMsa0JBQWtCO0FBQUEsRUFDbEJvQyxrQkFBa0IxRjtBQUFBQTtJQUVwQnlJLGlCQUFpQjFGO21CQ2xXaUIsZUFBZSxPQUFpRDtRQUUxRixDQUFDLE9BQU8sWUFBWWxPLHFDQUFTO1FBSTdCLFNBQVNDLHdDQUFZLENBQUMsY0FBd0I7UUFDOUMsY0FBYyxRQUFXO2VBQ2xCO0FBQUEsV0FDSjtlQUNJLENBQUMsV0FBVSxDQUFDO0FBQUE7QUFBQSxLQUV0QjtTQUVJLENBQUMsT0FBTztBQUFBO0FDUWpCLE1BQU00VCxtQkFBbUIsQ0FBQ0MsVUFBK0I7UUFDakQ7QUFBQSxJQUNKQyxZQUFZQztBQUFBQSxJQUNaQyxXQUFXQztBQUFBQSxJQUNYQyxjQUFjQztBQUFBQSxJQUNkQyxhQUFhQztBQUFBQSxJQUNiQyxjQUFjQztBQUFBQSxNQUNaVjtRQUNFVyxNQUFNekYsU0FBUzBGLGNBQWM7UUFFN0JDLFlBQVlDLE9BQU9sTCxpQkFBaUJvSzthQUMvQjFOLFFBQVF1TyxXQUFXO1FBQ3hCalEsTUFBTW1RLFlBQVl6TyxNQUFNdU8sVUFBVUcsaUJBQWlCMU87QUFBQUE7TUFFckQxQixNQUFNcVEsV0FBVztNQUNqQnJRLE1BQU1zUSxhQUFhO01BQ25CdFEsTUFBTXVRLGFBQWE7UUFHakJDLE9BQU87UUFDUEMsYUFBYXJCLE1BQU1zQixZQUFZLFVBQVV0QixNQUFNblEsTUFBTTBSLFFBQVEsTUFBTUgsUUFBUXBCLE1BQU1uUTtRQUNqRjJSLGNBQWNILFdBQVdJLFVBQVUsR0FBR2Ysa0JBQWtCO01BQzFEYyxjQUFjQTtNQUNkeEIsTUFBTXNCLFlBQVksWUFBWTtRQUM1QjFRLE1BQU1DLFNBQVM7QUFBQTtRQUdmNlEsT0FBT3hHLFNBQVMwRixjQUFjO09BQy9CWSxjQUFjSCxXQUFXSSxVQUFVZixrQkFBa0IsTUFBTTtNQUM1RGlCLFlBQVlEO1dBQ1BFLEtBQUtELFlBQVloQjtRQUNwQjtBQUFBLElBQUNWLFlBQVk0QjtBQUFBQSxJQUFPMUIsV0FBVzJCO0FBQUFBLElBQU96QixjQUFjMEI7QUFBQUEsSUFBT3hCLGFBQWF5QjtBQUFBQSxNQUFTTjtXQUM5RUUsS0FBS0ssWUFBWXRCO1NBQ25CO0FBQUEsSUFDTHVCLEdBQUdoQyxTQUFTMkI7QUFBQUEsSUFDWnRZLEdBQUc2VyxTQUFTMEI7QUFBQUEsSUFDWkssR0FBRzdCLFNBQVN5QjtBQUFBQSxJQUNaSyxHQUFHNUIsU0FBU3dCO0FBQUFBO0FBQUFBO0FBTWhCLElBQUlLO0FBQ0osSUFBSUMsV0FBVztBQUNmLElBQUlDLGFBQWE7QUFDakIsSUFBSUM7QUFFSixNQUFNQyxhQUE4QixNQUFNO1FBQ2xDO0FBQUEsSUFBQ2xVO0FBQUFBLE1BQWVFLHVDQUFXQztRQUMzQixDQUFDZ1UsYUFBYUMsY0FBY0MsVUFBVTtRQUN0QyxDQUFDQyxlQUFlQyxnQkFBZ0JGLFVBQVU7UUFDMUN0VCxZQUFZQyxtQ0FBeUI7UUFDckN3VCxxQkFBcUJ4VCxtQ0FBT2hCO1FBQzVCLENBQUN5VSxVQUFVQyxlQUFlL1c7UUFDMUIsQ0FBQ2dYLGNBQWNDLG1CQUFtQmpYLHFDQUFTO1FBRTNDa1gsWUFBWTdULG1DQUF1QjtRQUNuQyxDQUFDOFQsZUFBZUMsb0JBQW9CcFgscUNBQVM7TUFDL0NxWDt3Q0FFTSxNQUFNO1FBQ1YsQ0FBQ2pVLFVBQVVNLFNBQVM7OztRQUlwQjRULGtCQUFrQixRQUFRO2VBQ25CO2lCQUNFO0FBQUEsV0FDTjtlQUNJO2lCQUNFO0FBQUE7QUFBQSxLQUlaO3dDQUVPLE1BQU07O1FBQ1YsQ0FBQ2xVLFVBQVVNLFNBQVM7OztRQUlwQjZULG9CQUFTQyxhQUFhLFFBQVE1QyxPQUFPNkMsYUFBYSxLQUFLOzs7b0JBR2pEL1QsK0JBQVNvQjtBQUFBQSxLQUNsQjt3Q0FFTyxNQUFNOztRQUNWLENBQUMxQixVQUFVTSxTQUFTOzs7UUFLdEJnVSwwQkFBMEIsUUFDMUJDLDBCQUEwQixZQUMxQkosb0JBQVNDLGFBQWEsUUFDdEI1QyxPQUFPNkMsYUFBYSxLQUNwQjtZQUNNRyxVQUFVNUksU0FBUzBGLGNBQWM7WUFDakNtRCxnQkFBZ0I3SSxTQUFTSyxjQUM3QjtjQUVNeUksTUFBTyxHQUFFQztVQUNicEIsZUFBZTtnQkFDVGxVLFlBQVk7QUFBQSxhQUNmO2dCQUNHQSxZQUFZO0FBQUE7WUFFaEJ1VixZQUFZcEQsT0FBT3FELGNBQWM7WUFDakNDLGFBQWF0RCxPQUFPNkMsYUFBYSxJQUFJO2NBQ25DL1MsTUFBTXlULE1BQU1ILFlBQVk7Y0FDeEJ0VCxNQUFNMFQsT0FBT0YsYUFBYTtjQUUxQkcsVUFBVSxXQUFZO1lBQ3hCQyxrQkFBa0JWLFFBQVFXLFFBQzVCO0FBQUE7WUFFR0MsV0FBVztBQUFBO0FBQUEsVUFDWjtBQUFBLFlBQUNBLFdBQVc7QUFBQTtBQUFBLFdBRWQ7QUFBQSxVQUVFQyxVQUFVO0FBQUEsVUFDVkMsWUFBWUM7QUFBQUE7bUJBSUwsTUFBTTs7a0JBQ1BsVyxZQUFZOzJCQUNIOzJCQUNQaUIsZ0NBQVNvQjswQkFDSDhUO0FBQUFBLFdBRWY7QUFBQTtlQUVJdkosY0FBYyw4REFBOER3SixRQUFRakI7WUFFdkZrQixpQkFBaUI5SixTQUFTSyxjQUM5QjtxQkFFYTBKLFdBQVcsV0FBWTtZQUNoQzNDLFlBQVlDLFlBQVk7dUJBQ2I7Y0FDVDJDLHdCQUF3Qm5CLGNBQWNVLFFBQ3hDO0FBQUE7Y0FFR0MsV0FBVztBQUFBLGNBQVlTLFNBQVM7QUFBQTtBQUFBLFlBQ2pDO0FBQUEsY0FBQ1QsV0FBVztBQUFBLGNBQWNTLFNBQVM7QUFBQTtBQUFBLGFBRXJDO0FBQUEsWUFFRVIsVUFBVTtBQUFBLFlBQ1ZDLFlBQVk7QUFBQTtjQUdaUTtxQkFDTyxNQUFNO2lDQUNNdEIsUUFBUVcsUUFDM0I7QUFBQTtnQkFFR0MsV0FBVztBQUFBO0FBQUEsY0FDWjtBQUFBLGdCQUFDQSxXQUFXO0FBQUE7QUFBQSxlQUVkO0FBQUEsY0FFRUMsVUFBVTtBQUFBLGNBQ1ZDLFlBQVk7QUFBQTtBQUFBLGFBR2Y7cUJBQ1EsTUFBTTs2QkFDRTtvQkFDVGpXLFlBQVk7QUFBQSxhQUNuQjtxQkFDUSxNQUFNOytCQUNJMFc7a0NBQ0dQO0FBQUFBLGFBQ3JCO0FBQUE7QUFBQTtBQUFBLGVBSVBsQiwwQkFBMEIsU0FDMUJDLDBCQUEwQixZQUMxQkosb0JBQVNDLGFBQWEsUUFDdEI1QyxPQUFPNkMsYUFBYSxLQUNwQjt1QkFDaUI7c0JBQ1AvVCwrQkFBU29CO0FBQUFBLFdBQ2Q7dUJBQ1k7c0JBQ1BwQiwrQkFBU29CO0FBQUFBO0FBQUFBLEtBRXBCO01BRUMsQ0FBQ3lTLG9CQUFTQyxVQUFVO2NBQ2I0QixVQUFVbEMsVUFBVXhULFNBQVN5VCxlQUFlO0FBQUEsTUFDbkRrQyxXQUFXO0FBQUEsTUFDWEMsV0FBVyxDQUNUO0FBQUEsUUFDRXpYLE1BQU07QUFBQSxRQUNOMFgsU0FBUztBQUFBLFVBQ1BDLHVCQUF1QixDQUFDO0FBQUEsVUFDeEJDLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQUtibEMsb0JBQVNDLFlBQVlHLDBCQUEwQixVQUFVO1VBQzVEK0Isb0JBQW9CO1FBQ3RCOUUsT0FBTzZDLGFBQWFuQixZQUFZb0Qsb0JBQW9CLEtBQUs7Z0JBQ2xETixVQUFVbEMsVUFBVXhULFNBQVN5VCxlQUFlO0FBQUEsUUFDbkRrQyxXQUFXO0FBQUEsUUFDWEMsV0FBVyxDQUNUO0FBQUEsVUFDRXpYLE1BQU07QUFBQSxVQUNOMFgsU0FBUztBQUFBLFlBQ1BDLHVCQUF1QixDQUFDO0FBQUEsWUFDeEJDLGNBQWM7QUFBQTtBQUFBLFdBR2xCO0FBQUEsVUFDRTVYLE1BQU07QUFBQSxVQUNOMFgsU0FBUztBQUFBLFlBQ1BFLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQUtiN0UsT0FBTzZDLGFBQWFuQixZQUFZb0QsbUJBQW1CO2dCQUNuRE4sVUFBVWxDLFVBQVV4VCxTQUFTeVQsZUFBZTtBQUFBLFFBQ25Ea0MsV0FBVztBQUFBLFFBQ1hDLFdBQVcsQ0FDVDtBQUFBLFVBQ0V6WCxNQUFNO0FBQUEsVUFDTjBYLFNBQVM7QUFBQSxZQUNQQyx1QkFBdUIsQ0FBQztBQUFBLFlBQ3hCQyxjQUFjO0FBQUE7QUFBQSxXQUdsQjtBQUFBLFVBQ0U1WCxNQUFNO0FBQUEsVUFDTjBYLFNBQVM7QUFBQSxZQUNQRSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FLakI7Z0JBQ0lMLFVBQVVsQyxVQUFVeFQsU0FBU3lULGVBQWU7QUFBQSxRQUNuRGtDLFdBQVc7QUFBQSxRQUNYQyxXQUFXLENBQ1Q7QUFBQSxVQUNFelgsTUFBTTtBQUFBLFVBQ04wWCxTQUFTO0FBQUEsWUFDUEMsdUJBQXVCLENBQUM7QUFBQSxZQUN4QkMsY0FBYztBQUFBO0FBQUEsV0FHbEI7QUFBQSxVQUNFNVgsTUFBTTtBQUFBLFVBQ04wWCxTQUFTO0FBQUEsWUFDUEUsY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFNZmxDLG9CQUFTQyxZQUFZRywwQkFBMEIsVUFBVTtVQUM1RCtCLG9CQUFvQjtRQUN0QjlFLE9BQU82QyxhQUFhbkIsWUFBWW9ELG9CQUFvQixLQUFLO2dCQUNsRE4sVUFBVWxDLFVBQVV4VCxTQUFTeVQsZUFBZTtBQUFBLFFBQ25Ea0MsV0FBVztBQUFBLFFBQ1hDLFdBQVcsQ0FDVDtBQUFBLFVBQ0V6WCxNQUFNO0FBQUEsVUFDTjBYLFNBQVM7QUFBQSxZQUNQQyx1QkFBdUIsQ0FBQztBQUFBLFlBQ3hCQyxjQUFjO0FBQUE7QUFBQSxXQUdsQjtBQUFBLFVBQ0U1WCxNQUFNO0FBQUEsVUFDTjBYLFNBQVM7QUFBQSxZQUNQRSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFLYjdFLE9BQU82QyxhQUFhbkIsWUFBWW9ELHFCQUFxQnBELFlBQVlvRCxtQkFBbUI7Z0JBQ3BGTixVQUFVbEMsVUFBVXhULFNBQVN5VCxlQUFlO0FBQUEsUUFDbkRrQyxXQUFXO0FBQUEsUUFDWEMsV0FBVyxDQUNUO0FBQUEsVUFDRXpYLE1BQU07QUFBQSxVQUNOMFgsU0FBUztBQUFBLFlBQ1BDLHVCQUF1QixDQUFDO0FBQUEsWUFDeEJDLGNBQWM7QUFBQTtBQUFBLFdBR2xCO0FBQUEsVUFDRTVYLE1BQU07QUFBQSxVQUNOMFgsU0FBUztBQUFBLFlBQ1BFLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQUtqQjtnQkFDSUwsVUFBVWxDLFVBQVV4VCxTQUFTeVQsZUFBZTtBQUFBLFFBQ25Ea0MsV0FBVztBQUFBLFFBQ1hDLFdBQVcsQ0FDVDtBQUFBLFVBQ0V6WCxNQUFNO0FBQUEsVUFDTjBYLFNBQVM7QUFBQSxZQUNQQyx1QkFBdUIsQ0FBQztBQUFBLFlBQ3hCQyxjQUFjO0FBQUE7QUFBQSxXQUdsQjtBQUFBLFVBQ0U1WCxNQUFNO0FBQUEsVUFDTjBYLFNBQVM7QUFBQSxZQUNQRSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtRQTBCcEJFLGNBQWMsTUFBTTtvQkFDUjtBQUFBO3dDQUlSLE1BQU07O1FBQ1Z0WCxZQUFZdVgsWUFBWTtZQUNwQkMscUJBQXFCelcsZ0JBQVVNLFlBQVZOLG1CQUFtQmtDO1lBQ3hDd1UsZUFBZ0IsR0FBRUQscUJBQXFCLE9BQU8sbUJBQW1CeFgsWUFBWXVYO3NCQUN6RWxXLCtCQUFTcUIsV0FBVytVO3lCQUNYQyxjQUFjO0FBQUE7UUFHL0IxWCxZQUFZMlgsY0FBYzNYLFlBQVkyWCxlQUFlbkQsbUJBQW1CblQsUUFBUXNXLFlBQVk7WUFDeEZDLFdBQVdDLFlBQVlDLFlBQVk5WCxZQUFZMlg7VUFDakRDLFVBQVU7d0JBQ0Z2VywrQkFBUzBCLFdBQVc2VSxlQUFTRyxRQUFRL0UsUUFBUSxXQUFXLFVBQXBDNEUsWUFBNkM7d0JBQ2pFdlcsK0JBQVNvQjtBQUFBQTtBQUFBQTt1QkFJSnBCLFVBQVVyQjtBQUFBQSxLQUM1QixDQUFDQSxZQUFZdVgsWUFBWXZYLFlBQVkyWDt3Q0FFOUIsTUFBTTtRQUNWLENBQUM1VyxVQUFVTSxTQUFTOzs7VUFNbEIyVyxtQkFBbUIsT0FBTzdVLFVBQTBCOztVQUNwREEsTUFBTThVLGlCQUFpQjlVLE1BQU04VSxjQUFjQyxNQUFNdFUsU0FBUyxHQUFHO2NBQ3pEdVU7Y0FDQXpZLE9BQU95RCxNQUFNOFUsY0FBY0MsTUFBTTtjQUNqQ0UsTUFBTSxNQUFNQyxpQkFBaUIzWTtZQUMvQjBZLEtBQUs7MEJBQ0cvVywrQkFBU3FCLFdBQVcwVjtBQUFBQTtBQUFBQTtBQUFBQTtVQUs5QkUsa0JBQWtCLE9BQU9uVixVQUFxQjs7VUFDOUNBLE1BQU1vVixnQkFBZ0JwVixNQUFNb1YsYUFBYUwsTUFBTXRVLFNBQVMsR0FBRztjQUN2RHVVO2NBQ0F6WSxPQUFPeUQsTUFBTW9WLGFBQWFMLE1BQU07Y0FDaENFLE1BQU0sTUFBTUMsaUJBQWlCM1k7WUFDL0IwWSxLQUFLOzBCQUNHL1csK0JBQVNxQixXQUFXMFY7QUFBQUE7QUFBQUE7QUFBQUE7VUFLOUJJLG1CQUFtQixNQUFNOzswQkFDVHpYLHNCQUFVTSxZQUFWTixtQkFBbUJ5QixRQUFRbEIsVUFBM0JQLFlBQW9DO0FBQUE7VUFHcEQwWCxxQkFBcUIsTUFBTTtpQkFDcEIsTUFBTTs7NEJBQ0sxWCxzQkFBVU0sWUFBVk4sbUJBQW1CeUIsUUFBUWxCLFVBQTNCUCxZQUFvQztBQUFBO0FBQUE7Y0FJbERNLFFBQVFtQixRQUFRa1csaUJBQWlCLFNBQVNWO2NBQzFDM1csUUFBUW1CLFFBQVFrVyxpQkFBaUIsUUFBUUo7Y0FDekNqWCxRQUFRbUIsUUFBUWtXLGlCQUFpQixTQUFTRjtjQUMxQ25YLFFBQVFtQixRQUFRa1csaUJBQWlCLFdBQVdEO1dBRS9DLE1BQU07O3NCQUNEcFgsK0JBQVNtQixRQUFRbVcsb0JBQW9CLFNBQVNYO3NCQUM5QzNXLCtCQUFTbUIsUUFBUW1XLG9CQUFvQixRQUFRTDtBQUFBQTtBQUFBQSxLQUV4RDtRQUVHRCxtQkFBbUJ6YSx3Q0FBWSxPQUFPOEIsU0FBZTtVQUNuRDtBQUFBLE1BQUNnUTtBQUFBQSxRQUFRaFE7UUFFWCxDQUFDZ1EsS0FBS2tKLFdBQVcsVUFBVTs7O1FBSTNCO1lBQ0lDLFNBQVEsTUFBTUMsZ0JBQWdCQyxPQUFPclo7WUFDckMwWSxNQUFPLEdBQUVTO2FBRVJUO0FBQUFBLGFBQ0FZO1VBQ0gxYixrQkFBTzBiO0FBQUFBO0FBQUFBLEtBRVo7UUFFR0MscUJBQXFCcmIsd0NBQVksT0FBT21hLFlBQW9CO1FBQzVEQSxZQUFZLElBQUk7VUFDZHphLGtCQUFPOzs7VUFJUDtBQUFBLE1BQUNxYTtBQUFBQSxRQUFjdUIsbUJBQW1CNVY7Y0FDOUJ5VSxRQUFRb0IsV0FBVyxVQUFVOzBCQUVqQjtRQUNsQjtVQUNFeEIsWUFBWTtjQUNSeUIsV0FBV3ZCLFlBQVlDLFlBQVlIO1lBQ3JDeUIsWUFBWUEsU0FBU3JCLFlBQVlBLFNBQVM7Z0JBQ3RDc0IsYUFBYSxNQUFNeEIsWUFBWXlCLFdBQVdGLFNBQVMxZCxJQUFJMGQsU0FBU3JCLFNBQVNBLFNBQVNxQixTQUFTRztxQkFDdEZDLFlBQVkzZCxRQUFNNGQsa0JBQWtCQyxLQUFLQztzQkFDeEMvQixTQUFTeUI7QUFBQUE7MkJBRUpPLGNBQWM7QUFBQSxhQUM1QjtjQUNDQyxVQUFVLE1BQU1oQyxZQUFZaUMsV0FBVy9CLFNBQVNqRTtvQkFDMUNpRyxTQUFTRjt3QkFFTEc7QUFBQUE7QUFBQUEsYUFFWGhCO1VBQ0gxYixrQkFBTzBiLE9BQU1pQjtBQUFBQTswQkFHRztBQUFBLEtBQ3JCO1FBRUdDLHVCQUF1QnRjLHdDQUFZLE1BQU07O3VCQUMxQmdjLGNBQWM7b0JBQ3ZCdlksK0JBQVMwQixXQUFXOzBCQUNSO0FBQUEsS0FDckI7UUFFR29YLHNCQUFzQnZjLHdDQUFZLENBQUNtYSxZQUFvQjtVQUNyRHFDLFVBQVV6TixTQUFTMEYsY0FBYztZQUMvQmdJLFlBQVl0QztRQUNoQnFDLFFBQVFFLFVBQVVDLFdBQVcsSUFBSTtnQkFDekI7QUFBQTswQkFFVXhDO1FBRWxCaFgsVUFBVU0sU0FBUztZQUNmbVosZUFBZXpaLFVBQVVNLFFBQVE0QjtZQUNqQ0gsaUJBQWlCL0IsVUFBVU0sUUFBUW1CLFFBQVFNO1lBQzNDMlgsYUFBYUQsYUFBYTNYLE1BQU0sR0FBR0M7WUFDbkM0WCxhQUFhRixhQUFhM1gsTUFBTUM7c0JBRXRCNlgsU0FBUyxRQUFRRixXQUFXRSxTQUFTLGlCQUFVRCxXQUFXOUIsV0FBVyxNQUFNOzt3QkFFekU7QUFBQSw2QkFDSytCLFNBQVMsUUFBUUYsV0FBV0UsU0FBUyxpQkFBVUQsZUFBZSxJQUFJOzt3QkFFdkU7QUFBQSxhQUNYO3dCQUNXO0FBQUE7aUJBR1AsTUFBTTs7d0JBQ0xyWiwrQkFBU29CO0FBQUFBO0FBQUFBO0FBQUFBLEtBR3RCO1FBRUdtWSwwQkFBMEIsQ0FBQ0MsU0FBZTtRQUMxQyxDQUFDOVosVUFBVU0sU0FBUzs7O1FBSXBCd1osTUFBTTs7ZUFFQztpQkFDRTtBQUFBO1VBSVBMLGVBQWV6WixVQUFVTSxRQUFRNEI7VUFDakNILGlCQUFpQi9CLFVBQVVNLFFBQVFtQixRQUFRTTtVQUMzQzJYLGFBQWFELGFBQWEzWCxNQUFNLEdBQUdDO1VBQ25DNFgsYUFBYUYsYUFBYTNYLE1BQU1DO1VBQ2hDZ1ksY0FBYy9kLGtCQUFPOGQ7UUFFdkIsQ0FBQzlaLFVBQVVNLFNBQVM7OztRQUlwQm9aLFdBQVdFLFNBQVMsTUFBTTtVQUN4QkkscUJBQXFCLFlBQVk7a0JBQ3pCMVosUUFBUW1CLFFBQVFsQixRQUV4QmtaLGFBQWEzWCxNQUFNLEdBQUc5QixVQUFVTSxRQUFRbUIsUUFBUU0saUJBQWlCLEtBQ2pFLFdBQ0FnWSxZQUFZRSxPQUFPLGdCQUNuQixNQUNBTjtrQkFDUXJaLFFBQVFtQixRQUFReVksa0JBQWtCblksaUJBQWlCLElBQUlBLGlCQUFpQjtrQkFDeEV6QixRQUFRb0I7NEJBQ0UxQixVQUFVTSxRQUFRbUIsUUFBUWxCO0FBQUFBLGlCQUNyQ3laLHFCQUFxQixTQUFTO2tCQUM3QjFaLFFBQVFtQixRQUFRbEIsUUFFeEJrWixhQUFhM1gsTUFBTSxHQUFHOUIsVUFBVU0sUUFBUW1CLFFBQVFNLGlCQUFpQixLQUNqRSxjQUNBZ1ksWUFBWUUsT0FBTyxnQkFDbkJOO2tCQUNRclosUUFBUW1CLFFBQVF5WSxrQkFBa0JuWSxpQkFBaUIsSUFBSUEsaUJBQWlCO2tCQUN4RXpCLFFBQVFvQjs0QkFDRTFCLFVBQVVNLFFBQVFtQixRQUFRbEI7QUFBQUE7QUFBQUEsV0FFM0M7Z0JBQ0tELFFBQVFtQixRQUFRbEIsUUFFeEJtWixhQUFhSyxZQUFZRSxPQUFPLGdCQUFnQk47Z0JBQ3hDclosUUFBUW1CLFFBQVF5WSxrQkFBa0JuWSxpQkFBaUIsSUFBSUEsaUJBQWlCO2dCQUN4RXpCLFFBQVFvQjswQkFDRTFCLFVBQVVNLFFBQVFtQixRQUFRbEI7QUFBQUE7QUFBQUE7UUFJNUM0WixxQkFBcUIsTUFBTTtRQUMzQixDQUFDbmEsVUFBVU0sU0FBUzs7O1FBSXBCeVMsUUFBUTtlQUNEO2lCQUNFO0FBQUEsV0FDTjtlQUNJO2lCQUNFO0FBQUE7QUFBQTtRQUlUcUgsbUJBQW1CLENBQUNDLFNBQW1CO1FBQ3ZDLENBQUNyYSxVQUFVTSxTQUFTOzs7UUFJcEIsQ0FBQzBTLFlBQVlxSCxTQUFTLE1BQU07aUJBQ25CO21CQUNFO0FBQUEsV0FDUjtpQkFDTTttQkFDRTttQkFDQTtBQUFBO0FBQUE7UUFJWEMsd0JBQXdCemQsd0NBQVksTUFBTTtRQUMxQyxDQUFDbUQsVUFBVU0sU0FBUzs7O1VBSWxCbVosZUFBZXpaLFVBQVVNLFFBQVE0QjtVQUNqQ0gsaUJBQWlCL0IsVUFBVU0sUUFBUW1CLFFBQVFNO1VBQzNDMlgsYUFBYUQsYUFBYTNYLE1BQU0sR0FBR0M7VUFDbkM0WCxhQUFhRixhQUFhM1gsTUFBTUM7UUFFbEN3WSxZQUFZYixhQUFhLE9BQU9DO1FBQ2hDYSxjQUFjZCxXQUFXN1csU0FBUztRQUVsQzZXLFdBQVdFLFNBQVMsUUFBUUQsV0FBVzlCLFdBQVcsTUFBTTtrQkFDOUM2QixXQUFXNVgsTUFBTSxHQUFHNFgsV0FBVzdXLFNBQVMsS0FBSzhXLFdBQVc3WCxNQUFNO29CQUM1RDRYLFdBQVc3VyxTQUFTO0FBQUE7Y0FHMUJ2QyxRQUFRbUIsUUFBUWxCLFFBQVFnYTtjQUN4QmphLFFBQVFtQixRQUFReVksa0JBQWtCTSxhQUFhQTtjQUMvQ2xhLFFBQVFvQjt3QkFDRTFCLFVBQVVNLFFBQVFtQixRQUFRbEI7QUFBQUEsS0FDN0M7UUFFR2thLGtDQUFrQzVkLHdDQUFZLE1BQU07UUFDcEQsQ0FBQ21ELFVBQVVNLFdBQVcsQ0FBQ3dULFVBQVV4VCxTQUFTOzs7VUFJeENnVyxvQkFBb0I7VUFDcEJvRSxjQUFjMWEsVUFBVU0sUUFBUW1CLFFBQVFrWjtVQUl4QztBQUFBLE1BQUMvSDtBQUFBQSxNQUFHM1k7QUFBQUEsUUFBS3dXLGlCQUFpQnpRLFVBQVVNLFFBQVFtQjtRQUU5Q3VUO1FBQ0FEO1FBQ0EsQ0FBQ1osb0JBQVNDLFVBQVU7Y0FDZnhCLEtBQUkwRCxvQkFBb0IsS0FBS29FLGNBQWM5SCxLQUFJLElBQUlBLEtBQUk7YUFDeEQzWSxLQUFJO0FBQUEsV0FDTDtVQUNEdVgsT0FBTzZDLGFBQWF6QixLQUFJMEQsbUJBQW1CO2dCQUN0QzFELEtBQUkwRCxvQkFBb0IsS0FBS29FLGNBQWM5SCxLQUFJLElBQUlBLEtBQUk7QUFBQSxpQkFDckRwQixPQUFPNkMsYUFBYXpCLEtBQUkwRCxtQkFBbUI7Z0JBQzdDMUQsS0FBSTBELG9CQUFvQixLQUFLb0UsY0FBYzlILEtBQUksS0FBS0EsS0FBSTtBQUFBLGFBQzFEO2dCQUNFNVMsVUFBVU0sUUFBUW1CLFFBQVFrWixjQUFjO0FBQUE7VUFFN0NwRywwQkFBMEIsWUFBWS9DLE9BQU82QyxhQUFhLEtBQUs7ZUFDM0RwYSxLQUFJO0FBQUEsaUJBQ0RzYSwwQkFBMEIsWUFBWS9DLE9BQU82QyxjQUFjLEtBQUs7ZUFDbkVwYSxLQUFJO0FBQUE7QUFBQTtnQkFJRjJZO2NBRUZ0UyxRQUFRZ0IsTUFBTTBULE9BQVEsR0FBRUE7Y0FDeEIxVSxRQUFRZ0IsTUFBTXlULE1BQU8sR0FBRUE7QUFBQUEsS0FDaEM7UUFFRzZGLDJCQUEyQi9kLHdDQUFZLE1BQU07VUFDM0NnZSxVQUFValAsU0FBUzBGLGNBQWM7YUFDOUJnQixLQUFLRCxZQUFZd0k7WUFDbEJsTSxPQUFPO1lBQ1BtTSxXQUFXO1lBQ1hDLFNBQVM7WUFDVEMsV0FBVyxZQUFZOztVQUN6QixDQUFDSCxRQUFRMUQsU0FBUzBELFFBQVExRCxNQUFNdFUsV0FBVyxHQUFHOzs7WUFJNUNsRSxPQUFPa2MsUUFBUTFELE1BQU07WUFDckJFLE1BQU0sTUFBTUMsaUJBQWlCM1k7VUFDL0IwWSxLQUFLO3dCQUNHL1csK0JBQVNxQixXQUFXMFY7QUFBQUE7QUFBQUE7WUFHMUI0RDtBQUFBQSxLQUNQO1FBRUdDLGlCQUFpQjNRLFFBQVF0TCxZQUFZMlg7UUFFckN1RSxlQUFlQyxvQ0FDbkI7SUFDRS9iLFdBQVc7QUFBQSxJQUNYQyxnQkFBZ0J1RTtBQUFBQSxJQUNoQnRFLGFBQWE7QUFBQSxJQUNiQyxnQkFBZ0I7QUFBQSxJQUNoQkMsZUFBZXliO0FBQUFBLElBQ2ZHLFdBQVc7QUFBQSxJQUNYM2IsbUJBQW1Cd1k7QUFBQUEsSUFDbkJ0WSxrQkFBa0J1WjtBQUFBQSxJQUNsQnJaLGlCQUFpQnNaO0FBQUFBLE1BRW5CLENBQUM4Qjs7SUFJSSxXQUFZLHVCQUFzQkEsaUJBQWlCLGFBQWEsTUFBTTNILGdCQUFnQixLQUFLO0FBQUE7TUFDM0YsV0FBWSxZQUFXMkgsaUJBQWlCLEtBQUs7QUFBQTs0QkFDL0M7TUFDQyxLQUFLbGI7QUFBQUEsT0FDRG1iO01BQ0o7O1VBRVMsV0FBVTtBQUFBLFVBQXFCLEtBQUtHO0FBQUFBLFVBQUssU0FBU2hCO0FBQUFBO1VBQ2xELFdBQVU7QUFBQSxVQUF5QixLQUFLaUI7QUFBQUEsVUFBVSxTQUFTWDtBQUFBQTtVQUU5RCxXQUFVO0FBQUEsVUFDVixLQUFNLEdBQUUsQ0FBQ3hILGNBQWNvSSxhQUFhQztBQUFBQSxVQUNwQyxTQUFTdEI7QUFBQUE7QUFBQUE7QUFBQUE7TUFNWixLQUFLckc7QUFBQUEsTUFBVyxXQUFVO0FBQUEsZ0JBQzVCRixvQ0FDRTlJO1FBQ0M7UUFDQSxrQkFBa0I7QUFBQSxVQUNoQitFLGNBQWM7QUFBQSxVQUNkUSxtQkFBbUI7QUFBQSxVQUNuQkYseUJBQXlCO0FBQUEsVUFDekJQLGNBQWMyRztBQUFBQTtBQUFBQTtVQUdkLFVBQVU7QUFBQSxVQUNWLE9BQU90QyxRQUFPeUgsT0FBT3pIO0FBQUFBLFdBQ2pCQSxRQUFPMEgsV0FBVzFIO1VBQ3RCLEtBQUtEO0FBQUFBLFVBQ0wsTUFBSztBQUFBLHdDQUNKO1lBQ0MsY0FBY0o7QUFBQUEsWUFDZCxNQUFLO0FBQUEsWUFDTCxjQUFjRjtBQUFBQSxZQUNkO0FBQUEsWUFDQSxVQUFVbUc7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFVMUIsaUNBQXlDOztTQUNoQ25aLGNBQVFDLElBQUksQ0FBQyx1QkFBdUJxRCx1QkFBcEN0RCxZQUEwRDtBQUFBO0FBR25FLCtCQUErQnNXLFNBQWlCO1VBQ3RDN1YsSUFBSTtBQUFBLElBQ1Y2QyxvQkFBb0JnVDtBQUFBQTtBQUFBQTtNQ2p3QlgsaUJBQWlCO0FBQUEsRUFDNUIsRUFBQyxNQUFNLE9BQU8sT0FBTztBQUFBLEVBQ3JCLEVBQUMsTUFBTSxNQUFNLE9BQU87QUFBQTtNQUdULGVBQWU7QUFBQSxFQUMxQixLQUFLO0FBQUEsSUFDSCxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsTUFDVDtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sT0FBTztBQUFBO0FBQUEsTUFFVDtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWIsTUFBTTtBQUFBLElBQ0osT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLE1BQ1Q7QUFBQSxRQUNFLE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQTtBQUFBLE1BRVI7QUFBQSxRQUNFLE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixRQUFRO0FBQUEsTUFDTjtBQUFBLFFBQ0UsT0FBTztBQUFBLFFBQ1AsTUFBTTtBQUFBO0FBQUEsTUFFUjtBQUFBLFFBQ0UsT0FBTztBQUFBLFFBQ1AsTUFBTTtBQUFBO0FBQUEsTUFFUjtBQUFBLFFBQ0UsT0FBTztBQUFBLFFBQ1AsTUFBTTtBQUFBO0FBQUEsTUFFUjtBQUFBLFFBQ0UsT0FBTztBQUFBLFFBQ1AsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVosTUFBTTtBQUFBLElBQ0osT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLE1BQ1Q7QUFBQSxRQUNFLE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQTtBQUFBLE1BRVI7QUFBQSxRQUNFLE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtNQU1ELG1CQUFtQixhQUFhLFFBQVE7TUFFeEMsc0JBQXNCLENBQUMsU0FBeUI7YUFDaEQsTUFBSyxrQkFBa0I7UUFDNUIsR0FBRSxVQUFVLE1BQU07YUFDYixHQUFFO0FBQUE7QUFBQTtTQUdOO0FBQUE7TUFHSSxtQkFBbUIsTUFBa0I7U0FDekM7QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxNQUNMLFVBQVU7QUFBQSxNQUNWLE9BQU87QUFBQTtBQUFBLElBRVQsVUFBVTtBQUFBO0FBQUE7TUFJRCxpQ0FBaUMsQ0FBQyxPQUFrQixZQUFzQjtNQUNqRixhQUFhO2FBRU4sTUFBSyxTQUFTO1VBQ2pCLEVBQUMsYUFBWTtVQUNiLEtBQUksb0JBQW9CLE9BQU07UUFDaEMsYUFBYSxNQUFNO21CQUNSLGNBQWM7QUFBQSxXQUN0QjttQkFDUSxjQUFjO0FBQUE7QUFBQTtTQUl4QjtBQUFBO01BR0ksc0JBQXNCLENBQUMsT0FBa0IsV0FBbUI7O1FBQ2pFO0FBQUEsSUFDSjtBQUFBLElBQ0EsT0FBTyxFQUFDLFVBQVU7QUFBQSxNQUNoQjtNQUVBLFVBQVUsSUFBSTtXQUNUO0FBQUE7TUFHTCxhQUFhO01BRWIsU0FBUyxPQUFPO1FBQ2QsWUFBWTtVQUNWLFVBQVUsSUFBSTtlQUNULE1BQUssTUFBTSxLQUFLLFlBQUssUUFBUSxNQUFNLGFBQW5CLFlBQStCLEtBQUs7WUFDdkQsT0FBTSxHQUFFLFFBQVEsU0FBUyxNQUFNO1lBQy9CLFFBQVEsS0FBSSxNQUFNO1VBQ3BCLE9BQU87aUJBQ0EsS0FBSyxPQUFPO2dCQUNiO2dCQUNBLElBQUk7Z0JBQ0o7QUFBQTtBQUFBO2VBR0QsTUFBSyxNQUFNLEtBQUssWUFBSyxRQUFRLE1BQU0sdUJBQW5CLFlBQXlDLEtBQUs7WUFDakUsT0FBTSxHQUFFLFFBQVEsbUJBQW1CLE1BQU07WUFDekMsUUFBUSxLQUFJLE1BQU07VUFDcEIsT0FBTztpQkFDQSxLQUFLLE9BQU87Z0JBQ2I7Z0JBQ0EsSUFBSTtnQkFDSjtBQUFBO0FBQUE7UUFHUixDQUFDLFFBQVEsSUFBSSxRQUFRO2tCQUNYO0FBQUE7UUFFVixhQUFhLGVBQWU7a0JBQ2xCLENBQUM7QUFBQTtpQkFFRjtBQUFBLGFBQ0osU0FBUyxRQUFRO1FBQ3RCLFVBQVU7UUFDVixVQUFVLGdCQUFnQixNQUFLLFFBQVEsTUFBTSxhQUFhLE1BQU07Z0JBQ3hEO0FBQUEsZUFDRCxVQUFVLFlBQVksTUFBSyxRQUFRLE1BQU0sY0FBYyxNQUFNO2dCQUM1RDtBQUFBLGVBQ0QsVUFBVSxZQUFZLE1BQUssUUFBUSxNQUFNLG1CQUFtQixNQUFNO2dCQUNqRTtBQUFBLGVBQ0QsVUFBVSxlQUFlLE1BQUssUUFBUSxNQUFNLG1CQUFtQixNQUFNO2dCQUNwRTtBQUFBO1FBRVIsYUFBYSxVQUFVO2dCQUNmLENBQUM7QUFBQTtpQkFFQTtBQUFBLGFBQ0osU0FBUyxRQUFRO1FBQ3RCLFlBQVksTUFBSyxRQUFRLFNBQVM7UUFDbEMsYUFBYSxlQUFlO2tCQUNsQixDQUFDO0FBQUE7aUJBRUY7QUFBQTtTQUdSO0FBQUE7OztBQy9KVCxNQUFNNEUsWUFBNkIsTUFBTTtRQUNqQztBQUFBLElBQ0pDLGVBQWU7QUFBQSxNQUNiQyxPQUFPO0FBQUEsUUFBQ25OLE1BQU02SjtBQUFBQTtBQUFBQTtBQUFBQSxNQUVkclosdUNBQVdDO1FBR1QyYywwQkFBMEIsQ0FBQ3BOLFNBQTRCO1VBQ3JEO0FBQUEsTUFBQ0EsTUFBTXFOO0FBQUFBLFFBQVlDLGdCQUFnQjFaLFdBQVd1WjtRQUNoRG5OLFNBQVNxTixVQUFVO2FBQ2Q7QUFBQTtvQkFFT0UsaUJBQWlCdk47QUFBQUE7UUFHN0J3Tix1QkFBdUIsQ0FBQy9aLFVBQTZDO1VBQ25FSCxPQUFPRyxNQUFNZ2EsY0FBYzdiO29CQUNqQjhiLGFBQWFwYTtBQUFBQTs7SUFnQnhCLFdBQVU7QUFBQTtNQUNSLFdBQVU7QUFBQTtRQUNSLFdBQVU7QUFBQSxRQUFXLEtBQUtxYTtBQUFBQTtRQUN4QixXQUFVO0FBQUEsUUFBYSxNQUFLO0FBQUEsUUFBTyxhQUFZO0FBQUEsUUFBRyxVQUFVSDtBQUFBQTtBQUFBQTtNQUVoRSxXQUFVO0FBQUE7UUFDUixXQUFVO0FBQUE7VUFDVixXQUFVO0FBQUE7O1VBQ1IsV0FBVTtBQUFBO1lBQ1AsV0FBVTtBQUFBOztZQUNYLFdBQVU7QUFBQSxzQkFDWkksaUJBQWlCNVgsSUFBSSxDQUFDNlgsSUFBR0MsUUFBUTs7O2tCQUkxQixXQUFZLGFBQVlqRSxhQUFhZ0UsR0FBRWpjLFFBQVEsYUFBYTtBQUFBLGtCQUM1RCxTQUFTLE1BQU07NENBQ1dpYyxHQUFFamM7QUFBQUE7QUFBQUEsNEJBRTNCaWMsR0FBRXZhO0FBQUFBLG9CQUVKd2EsTUFBTSxJQUFJRixpQkFBaUIxWjtrQkFBZSxXQUFVO0FBQUE7cUJBQXdCO0FBQUEsaUJBUnJFMlosR0FBRWpjO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBOzs7QUNwRDlCLElBQUltYyx1QkFBdUIvRCxLQUFLQztBQUloQyxNQUFNK0QsY0FBK0IsTUFBTTtRQUNuQztBQUFBLElBQ0pkLGVBQWU7QUFBQSxNQUNiQyxPQUFPO0FBQUEsUUFBQ2M7QUFBQUE7QUFBQUE7QUFBQUEsSUFFVjNkLGFBQWE7QUFBQSxNQUFDNGQ7QUFBQUE7QUFBQUEsSUFDZEMsWUFBWTtBQUFBLE1BQUNDO0FBQUFBO0FBQUFBLE1BQ1g1ZCx1Q0FBV0M7UUFFVCxDQUFDNGQsV0FBV0MsZ0JBQWdCcmdCLHFDQUFTO3dDQUVqQyxNQUFNO1VBQ1JrZixRQUFRb0IsYUFBYUMsYUFBYVA7UUFDcENkLE9BQU87bUJBQ0lBLE1BQU1zQjtBQUFBQSxXQUNkO21CQUNRO0FBQUE7QUFBQSxLQUVkLENBQUNSLFFBQVFHO1FBRU5NLHNCQUFzQnhnQix3Q0FBWSxNQUFNO1VBQ3RDK2IsTUFBTUQsS0FBS0M7UUFDYkEsTUFBTThELHVCQUF1QixLQUFLLEtBQU07NkJBQ25COUQ7a0JBQ1gwRSxnQkFBZ0JDLE1BQU0sTUFBTTtBQUFBO0FBQUE7QUFBQSxLQUl6QztRQUVHQyw0QkFBNEIzZ0Isd0NBQVksTUFBTTt1QkFDL0I0Z0IsNEJBQTRCO0FBQUEsS0FDOUM7O0lBR0ksV0FBVTtBQUFBO01BQ1IsV0FBVTtBQUFBLE1BQWEsU0FBU0o7QUFBQUEscUNBQ2xDO1FBQUssTUFBTVI7QUFBQUE7VUFDRixXQUFVO0FBQUEsVUFBYSxTQUFTVztBQUFBQTtZQUNqQyxXQUFVO0FBQUEsWUFBVyxLQUFLRTtBQUFBQSxZQUFTLEtBQUk7QUFBQTtBQUFBO0FBQUE7UUFHMUMsV0FBVTtBQUFBLGtCQUFlVjtBQUFBQTtBQUFBQSw0QkFFaEM7Ozs7QUN6RFEsaUJBQWlCLEtBQUs7QUFDbkM7QUFFQSxTQUFPLFVBQVUsQUFBYyxPQUFPLFVBQXJCLGNBQStCLEFBQVksT0FBTyxPQUFPLFlBQTFCLFdBQXFDLFNBQVUsTUFBSztBQUNsRyxXQUFPLE9BQU87QUFBQSxNQUNaLFNBQVUsTUFBSztBQUNqQixXQUFPLFFBQU8sQUFBYyxPQUFPLFVBQXJCLGNBQStCLEtBQUksZ0JBQWdCLFVBQVUsU0FBUSxPQUFPLFlBQVksV0FBVyxPQUFPO0FBQUEsS0FDdkgsUUFBUTtBQUFBO0FDUEUseUJBQXlCLFdBQVUsYUFBYTtBQUM3RCxNQUFJLENBQUUsc0JBQW9CLGNBQWM7QUFDdEMsVUFBTSxJQUFJLFVBQVU7QUFBQTtBQUFBO0FDRnhCLDJCQUEyQixRQUFRLE9BQU87QUFDeEMsV0FBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLFFBQVEsS0FBSztBQUNyQyxRQUFJLGFBQWEsTUFBTTtBQUN2QixlQUFXLGFBQWEsV0FBVyxjQUFjO0FBQ2pELGVBQVcsZUFBZTtBQUMxQixRQUFJLFdBQVc7QUFBWSxpQkFBVyxXQUFXO0FBQ2pELFdBQU8sZUFBZSxRQUFRLFdBQVcsS0FBSztBQUFBO0FBQUE7QUFJbkMsc0JBQXNCLGFBQWEsWUFBWSxhQUFhO0FBQ3pFLE1BQUk7QUFBWSxzQkFBa0IsWUFBWSxXQUFXO0FBQ3pELE1BQUk7QUFBYSxzQkFBa0IsYUFBYTtBQUNoRCxTQUFPLGVBQWUsYUFBYSxhQUFhO0FBQUEsSUFDOUMsVUFBVTtBQUFBO0FBRVosU0FBTztBQUFBO0FDaEJNLGdDQUFnQyxPQUFNO0FBQ25ELE1BQUksVUFBUyxRQUFRO0FBQ25CLFVBQU0sSUFBSSxlQUFlO0FBQUE7QUFHM0IsU0FBTztBQUFBO0FDTE0seUJBQXlCLEdBQUcsSUFBRztBQUM1QyxvQkFBa0IsT0FBTyxrQkFBa0IsMEJBQXlCLElBQUcsSUFBRztBQUN4RSxPQUFFLFlBQVk7QUFDZCxXQUFPO0FBQUE7QUFHVCxTQUFPLGdCQUFnQixHQUFHO0FBQUE7QUNMYixtQkFBbUIsVUFBVSxZQUFZO0FBQ3RELE1BQUksT0FBTyxlQUFlLGNBQWMsZUFBZSxNQUFNO0FBQzNELFVBQU0sSUFBSSxVQUFVO0FBQUE7QUFHdEIsV0FBUyxZQUFZLE9BQU8sT0FBTyxjQUFjLFdBQVcsV0FBVztBQUFBLElBQ3JFLGFBQWE7QUFBQSxNQUNYLE9BQU87QUFBQSxNQUNQLFVBQVU7QUFBQSxNQUNWLGNBQWM7QUFBQTtBQUFBO0FBR2xCLFNBQU8sZUFBZSxVQUFVLGFBQWE7QUFBQSxJQUMzQyxVQUFVO0FBQUE7QUFFWixNQUFJO0FBQVkxVCxvQkFBZSxVQUFVO0FBQUE7QUNkNUIsb0NBQW9DLE9BQU0sTUFBTTtBQUM3RCxNQUFJLFFBQVMsU0FBUSxVQUFVLFlBQVksT0FBTyxTQUFTLGFBQWE7QUFDdEUsV0FBTztBQUFBLGFBQ0UsU0FBUyxRQUFRO0FBQzFCLFVBQU0sSUFBSSxVQUFVO0FBQUE7QUFHdEIsU0FBT3FVLHVCQUFzQjtBQUFBO0FDVGhCLHlCQUF5QixHQUFHO0FBQ3pDLG9CQUFrQixPQUFPLGlCQUFpQixPQUFPLGlCQUFpQiwwQkFBeUIsSUFBRztBQUM1RixXQUFPLEdBQUUsYUFBYSxPQUFPLGVBQWU7QUFBQTtBQUU5QyxTQUFPLGdCQUFnQjtBQUFBO0FDSlYseUJBQXlCLEtBQUssS0FBSyxPQUFPO0FBQ3ZELE1BQUksT0FBTyxLQUFLO0FBQ2QsV0FBTyxlQUFlLEtBQUssS0FBSztBQUFBLE1BQzlCO0FBQUEsTUFDQSxZQUFZO0FBQUEsTUFDWixjQUFjO0FBQUEsTUFDZCxVQUFVO0FBQUE7QUFBQSxTQUVQO0FBQ0wsUUFBSSxPQUFPO0FBQUE7QUFHYixTQUFPO0FBQUE7QUNaTSx5QkFBeUIsS0FBSztBQUMzQyxNQUFJLE1BQU0sUUFBUTtBQUFNLFdBQU87QUFBQTtBQ0RsQiwwQkFBMEIsTUFBTTtBQUM3QyxNQUFJLE9BQU8sV0FBVyxlQUFlLEtBQUssT0FBTyxhQUFhLFFBQVEsS0FBSyxpQkFBaUI7QUFBTSxXQUFPLE1BQU0sS0FBSztBQUFBO0FDRHZHLDJCQUEyQixLQUFLLEtBQUs7QUFDbEQsTUFBSSxPQUFPLFFBQVEsTUFBTSxJQUFJO0FBQVEsVUFBTSxJQUFJO0FBRS9DLFdBQVMsSUFBSSxHQUFHLE9BQU8sSUFBSSxNQUFNLE1BQU0sSUFBSSxLQUFLLEtBQUs7QUFDbkQsU0FBSyxLQUFLLElBQUk7QUFBQTtBQUdoQixTQUFPO0FBQUE7QUNOTSxxQ0FBcUMsR0FBRyxRQUFRO0FBQzdELE1BQUksQ0FBQztBQUFHO0FBQ1IsTUFBSSxPQUFPLE1BQU07QUFBVSxXQUFPQyxrQkFBaUIsR0FBRztBQUN0RCxNQUFJLEtBQUksT0FBTyxVQUFVLFNBQVMsS0FBSyxHQUFHLE1BQU0sR0FBRztBQUNuRCxNQUFJLE9BQU0sWUFBWSxFQUFFO0FBQWEsU0FBSSxFQUFFLFlBQVk7QUFDdkQsTUFBSSxPQUFNLFNBQVMsT0FBTTtBQUFPLFdBQU8sTUFBTSxLQUFLO0FBQ2xELE1BQUksT0FBTSxlQUFlLDJDQUEyQyxLQUFLO0FBQUksV0FBT0Esa0JBQWlCLEdBQUc7QUFBQTtBQ1AzRiw0QkFBNEI7QUFDekMsUUFBTSxJQUFJLFVBQVU7QUFBQTtBQ0dQLGtCQUFrQixLQUFLO0FBQ3BDLFNBQU9DLGdCQUFlLFFBQVFDLGlCQUFnQixRQUFRQyw0QkFBMkIsUUFBUUM7QUFBQUE7QUNLM0YsaUJBQWlCLFFBQVEsZ0JBQWdCO0FBQUUsTUFBSSxPQUFPLE9BQU8sS0FBSztBQUFTLE1BQUksT0FBTyx1QkFBdUI7QUFBRSxRQUFJLFVBQVUsT0FBTyxzQkFBc0I7QUFBUyxRQUFJLGdCQUFnQjtBQUFFLGdCQUFVLFFBQVEsT0FBTyxTQUFVLEtBQUs7QUFBRSxlQUFPLE9BQU8seUJBQXlCLFFBQVEsS0FBSztBQUFBO0FBQUE7QUFBa0IsU0FBSyxLQUFLLE1BQU0sTUFBTTtBQUFBO0FBQVksU0FBTztBQUFBO0FBRWxWLHVCQUF1QixRQUFRO0FBQUUsV0FBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztBQUFFLFFBQUksU0FBUyxVQUFVLE1BQU0sT0FBTyxVQUFVLEtBQUs7QUFBSSxRQUFJLElBQUksR0FBRztBQUFFLGNBQVEsT0FBTyxTQUFTLE1BQU0sUUFBUSxTQUFVLEtBQUs7QUFBRSx3QkFBZ0IsUUFBUSxLQUFLLE9BQU87QUFBQTtBQUFBLGVBQXNCLE9BQU8sMkJBQTJCO0FBQUUsYUFBTyxpQkFBaUIsUUFBUSxPQUFPLDBCQUEwQjtBQUFBLFdBQWlCO0FBQUUsY0FBUSxPQUFPLFNBQVMsUUFBUSxTQUFVLEtBQUs7QUFBRSxlQUFPLGVBQWUsUUFBUSxLQUFLLE9BQU8seUJBQXlCLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBZSxTQUFPO0FBQUE7QUFFN2dCLElBQUksZ0JBQWdCO0FBQUEsRUFDbEIsTUFBTTtBQUFBLEVBQ04sS0FBSyxhQUFhLE1BQU07QUFDdEIsU0FBSyxPQUFPLE9BQU87QUFBQTtBQUFBLEVBRXJCLE1BQU0sY0FBYyxNQUFNO0FBQ3hCLFNBQUssT0FBTyxRQUFRO0FBQUE7QUFBQSxFQUV0QixPQUFPLGVBQWUsTUFBTTtBQUMxQixTQUFLLE9BQU8sU0FBUztBQUFBO0FBQUEsRUFFdkIsUUFBUSxnQkFBZ0IsTUFBTSxNQUFNO0FBQ2xDLFFBQUksV0FBVyxRQUFRO0FBQU8sY0FBUSxNQUFNLE1BQU0sU0FBUztBQUFBO0FBQUE7QUFJL0QsSUFBSSxTQUFTLFdBQVk7QUFDdkIsbUJBQWdCLGdCQUFnQjtBQUM5QixRQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBRWxGLG9CQUFnQixNQUFNO0FBRXRCLFNBQUssS0FBSyxnQkFBZ0I7QUFBQTtBQUc1QixlQUFhLFNBQVEsQ0FBQztBQUFBLElBQ3BCLEtBQUs7QUFBQSxJQUNMLE9BQU8sY0FBYyxnQkFBZ0I7QUFDbkMsVUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUNsRixXQUFLLFNBQVMsUUFBUSxVQUFVO0FBQ2hDLFdBQUssU0FBUyxrQkFBa0I7QUFDaEMsV0FBSyxVQUFVO0FBQ2YsV0FBSyxRQUFRLFFBQVE7QUFBQTtBQUFBLEtBRXRCO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGtCQUFrQixNQUFNO0FBQzdCLFdBQUssUUFBUTtBQUFBO0FBQUEsS0FFZDtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxnQkFBZTtBQUNwQixlQUFTLE9BQU8sVUFBVSxRQUFRLE9BQU8sSUFBSSxNQUFNLE9BQU8sT0FBTyxHQUFHLE9BQU8sTUFBTSxRQUFRO0FBQ3ZGLGFBQUssUUFBUSxVQUFVO0FBQUE7QUFHekIsYUFBTyxLQUFLLFFBQVEsTUFBTSxPQUFPLElBQUk7QUFBQTtBQUFBLEtBRXRDO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGlCQUFnQjtBQUNyQixlQUFTLFFBQVEsVUFBVSxRQUFRLE9BQU8sSUFBSSxNQUFNLFFBQVEsUUFBUSxHQUFHLFFBQVEsT0FBTyxTQUFTO0FBQzdGLGFBQUssU0FBUyxVQUFVO0FBQUE7QUFHMUIsYUFBTyxLQUFLLFFBQVEsTUFBTSxRQUFRLElBQUk7QUFBQTtBQUFBLEtBRXZDO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGtCQUFpQjtBQUN0QixlQUFTLFFBQVEsVUFBVSxRQUFRLE9BQU8sSUFBSSxNQUFNLFFBQVEsUUFBUSxHQUFHLFFBQVEsT0FBTyxTQUFTO0FBQzdGLGFBQUssU0FBUyxVQUFVO0FBQUE7QUFHMUIsYUFBTyxLQUFLLFFBQVEsTUFBTSxTQUFTO0FBQUE7QUFBQSxLQUVwQztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxxQkFBcUI7QUFDMUIsZUFBUyxRQUFRLFVBQVUsUUFBUSxPQUFPLElBQUksTUFBTSxRQUFRLFFBQVEsR0FBRyxRQUFRLE9BQU8sU0FBUztBQUM3RixhQUFLLFNBQVMsVUFBVTtBQUFBO0FBRzFCLGFBQU8sS0FBSyxRQUFRLE1BQU0sUUFBUSx3QkFBd0I7QUFBQTtBQUFBLEtBRTNEO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGlCQUFpQixNQUFNLEtBQUssUUFBUSxXQUFXO0FBQ3BELFVBQUksYUFBYSxDQUFDLEtBQUs7QUFBTyxlQUFPO0FBQ3JDLFVBQUksT0FBTyxLQUFLLE9BQU87QUFBVSxhQUFLLEtBQUssR0FBRyxPQUFPLFFBQVEsT0FBTyxLQUFLLFFBQVEsS0FBSyxPQUFPLEtBQUs7QUFDbEcsYUFBTyxLQUFLLE9BQU8sS0FBSztBQUFBO0FBQUEsS0FFekI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sZ0JBQWdCLFlBQVk7QUFDakMsYUFBTyxJQUFJLFFBQU8sS0FBSyxRQUFRLGNBQWMsY0FBYyxJQUFJO0FBQUEsUUFDN0QsUUFBUSxHQUFHLE9BQU8sS0FBSyxRQUFRLEtBQUssT0FBTyxZQUFZO0FBQUEsVUFDckQsS0FBSztBQUFBO0FBQUE7QUFJYixTQUFPO0FBQUE7QUFHVCxJQUFJLGFBQWEsSUFBSTtBQUVyQixJQUFJLGVBQWUsV0FBWTtBQUM3QiwyQkFBd0I7QUFDdEIsb0JBQWdCLE1BQU07QUFFdEIsU0FBSyxZQUFZO0FBQUE7QUFHbkIsZUFBYSxlQUFjLENBQUM7QUFBQSxJQUMxQixLQUFLO0FBQUEsSUFDTCxPQUFPLFlBQVksUUFBUSxVQUFVO0FBQ25DLFVBQUksUUFBUTtBQUVaLGFBQU8sTUFBTSxLQUFLLFFBQVEsU0FBVSxPQUFPO0FBQ3pDLGNBQU0sVUFBVSxTQUFTLE1BQU0sVUFBVSxVQUFVO0FBRW5ELGNBQU0sVUFBVSxPQUFPLEtBQUs7QUFBQTtBQUU5QixhQUFPO0FBQUE7QUFBQSxLQUVSO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGFBQWEsT0FBTyxVQUFVO0FBQ25DLFVBQUksQ0FBQyxLQUFLLFVBQVU7QUFBUTtBQUU1QixVQUFJLENBQUMsVUFBVTtBQUNiLGVBQU8sS0FBSyxVQUFVO0FBQ3RCO0FBQUE7QUFHRixXQUFLLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxPQUFPLFNBQVUsSUFBRztBQUNoRSxlQUFPLE9BQU07QUFBQTtBQUFBO0FBQUEsS0FHaEI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sY0FBYyxPQUFPO0FBQzFCLGVBQVMsT0FBTyxVQUFVLFFBQVEsT0FBTyxJQUFJLE1BQU0sT0FBTyxJQUFJLE9BQU8sSUFBSSxJQUFJLE9BQU8sR0FBRyxPQUFPLE1BQU0sUUFBUTtBQUMxRyxhQUFLLE9BQU8sS0FBSyxVQUFVO0FBQUE7QUFHN0IsVUFBSSxLQUFLLFVBQVUsUUFBUTtBQUN6QixZQUFJLFNBQVMsR0FBRyxPQUFPLEtBQUssVUFBVTtBQUN0QyxlQUFPLFFBQVEsU0FBVSxVQUFVO0FBQ2pDLG1CQUFTLE1BQU0sUUFBUTtBQUFBO0FBQUE7QUFJM0IsVUFBSSxLQUFLLFVBQVUsTUFBTTtBQUN2QixZQUFJLFVBQVUsR0FBRyxPQUFPLEtBQUssVUFBVTtBQUV2QyxnQkFBUSxRQUFRLFNBQVUsVUFBVTtBQUNsQyxtQkFBUyxNQUFNLFVBQVUsQ0FBQyxPQUFPLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1oRCxTQUFPO0FBQUE7QUFHVCxpQkFBaUI7QUFDZixNQUFJO0FBQ0osTUFBSTtBQUNKLE1BQUksVUFBVSxJQUFJLFFBQVEsU0FBVSxTQUFTLFFBQVE7QUFDbkQsVUFBTTtBQUNOLFVBQU07QUFBQTtBQUVSLFVBQVEsVUFBVTtBQUNsQixVQUFRLFNBQVM7QUFDakIsU0FBTztBQUFBO0FBRVQsb0JBQW9CLFFBQVE7QUFDMUIsTUFBSSxVQUFVO0FBQU0sV0FBTztBQUMzQixTQUFPLEtBQUs7QUFBQTtBQUVkLGNBQWMsR0FBRyxHQUFHLElBQUc7QUFDckIsSUFBRSxRQUFRLFNBQVUsSUFBRztBQUNyQixRQUFJLEVBQUU7QUFBSSxTQUFFLE1BQUssRUFBRTtBQUFBO0FBQUE7QUFJdkIsdUJBQXVCLFFBQVEsTUFBTSxPQUFPO0FBQzFDLG9CQUFrQixNQUFLO0FBQ3JCLFdBQU8sUUFBTyxLQUFJLFFBQVEsU0FBUyxLQUFLLEtBQUksUUFBUSxRQUFRLE9BQU87QUFBQTtBQUdyRSxrQ0FBZ0M7QUFDOUIsV0FBTyxDQUFDLFVBQVUsT0FBTyxXQUFXO0FBQUE7QUFHdEMsTUFBSSxRQUFRLE9BQU8sU0FBUyxXQUFXLEdBQUcsT0FBTyxRQUFRLEtBQUssTUFBTTtBQUVwRSxTQUFPLE1BQU0sU0FBUyxHQUFHO0FBQ3ZCLFFBQUk7QUFBd0IsYUFBTztBQUNuQyxRQUFJLE1BQU0sU0FBUyxNQUFNO0FBQ3pCLFFBQUksQ0FBQyxPQUFPLFFBQVE7QUFBTyxhQUFPLE9BQU8sSUFBSTtBQUU3QyxRQUFJLE9BQU8sVUFBVSxlQUFlLEtBQUssUUFBUSxNQUFNO0FBQ3JELGVBQVMsT0FBTztBQUFBLFdBQ1g7QUFDTCxlQUFTO0FBQUE7QUFBQTtBQUliLE1BQUk7QUFBd0IsV0FBTztBQUNuQyxTQUFPO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxHQUFHLFNBQVMsTUFBTTtBQUFBO0FBQUE7QUFJdEIsaUJBQWlCLFFBQVEsTUFBTSxVQUFVO0FBQ3ZDLE1BQUksaUJBQWlCLGNBQWMsUUFBUSxNQUFNLFNBQzdDLE1BQU0sZUFBZSxLQUNyQixJQUFJLGVBQWU7QUFFdkIsTUFBSSxLQUFLO0FBQUE7QUFFWCxrQkFBa0IsUUFBUSxNQUFNLFVBQVUsUUFBUTtBQUNoRCxNQUFJLGtCQUFrQixjQUFjLFFBQVEsTUFBTSxTQUM5QyxNQUFNLGdCQUFnQixLQUN0QixJQUFJLGdCQUFnQjtBQUV4QixNQUFJLEtBQUssSUFBSSxNQUFNO0FBQ25CLE1BQUk7QUFBUSxRQUFJLEtBQUssSUFBSSxHQUFHLE9BQU87QUFDbkMsTUFBSSxDQUFDO0FBQVEsUUFBSSxHQUFHLEtBQUs7QUFBQTtBQUUzQixpQkFBaUIsUUFBUSxNQUFNO0FBQzdCLE1BQUksa0JBQWtCLGNBQWMsUUFBUSxPQUN4QyxNQUFNLGdCQUFnQixLQUN0QixJQUFJLGdCQUFnQjtBQUV4QixNQUFJLENBQUM7QUFBSyxXQUFPO0FBQ2pCLFNBQU8sSUFBSTtBQUFBO0FBRWIsNkJBQTZCLE1BQU0sYUFBYSxLQUFLO0FBQ25ELE1BQUksUUFBUSxRQUFRLE1BQU07QUFFMUIsTUFBSSxVQUFVLFFBQVc7QUFDdkIsV0FBTztBQUFBO0FBR1QsU0FBTyxRQUFRLGFBQWE7QUFBQTtBQUU5QixvQkFBb0IsUUFBUSxRQUFRLFdBQVc7QUFDN0MsV0FBUyxRQUFRLFFBQVE7QUFDdkIsUUFBSSxTQUFTLGVBQWUsU0FBUyxlQUFlO0FBQ2xELFVBQUksUUFBUSxRQUFRO0FBQ2xCLFlBQUksT0FBTyxPQUFPLFVBQVUsWUFBWSxPQUFPLGlCQUFpQixVQUFVLE9BQU8sT0FBTyxVQUFVLFlBQVksT0FBTyxpQkFBaUIsUUFBUTtBQUM1SSxjQUFJO0FBQVcsbUJBQU8sUUFBUSxPQUFPO0FBQUEsZUFDaEM7QUFDTCxxQkFBVyxPQUFPLE9BQU8sT0FBTyxPQUFPO0FBQUE7QUFBQSxhQUVwQztBQUNMLGVBQU8sUUFBUSxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBSzVCLFNBQU87QUFBQTtBQUVULHFCQUFxQixLQUFLO0FBQ3hCLFNBQU8sSUFBSSxRQUFRLHVDQUF1QztBQUFBO0FBRTVELElBQUksYUFBYTtBQUFBLEVBQ2YsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBO0FBRVAsZ0JBQWdCLE1BQU07QUFDcEIsTUFBSSxPQUFPLFNBQVMsVUFBVTtBQUM1QixXQUFPLEtBQUssUUFBUSxjQUFjLFNBQVUsR0FBRztBQUM3QyxhQUFPLFdBQVc7QUFBQTtBQUFBO0FBSXRCLFNBQU87QUFBQTtBQUVULElBQUksU0FBUyxPQUFPLFdBQVcsZUFBZSxPQUFPLGFBQWEsT0FBTyxVQUFVLGFBQWEsT0FBTyxVQUFVLFVBQVUsUUFBUSxVQUFVO0FBQzdJLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxLQUFLLEtBQUs7QUFDakMsNkJBQTZCLEtBQUssYUFBYSxjQUFjO0FBQzNELGdCQUFjLGVBQWU7QUFDN0IsaUJBQWUsZ0JBQWdCO0FBQy9CLE1BQUksZ0JBQWdCLE1BQU0sT0FBTyxTQUFVLEdBQUc7QUFDNUMsV0FBTyxZQUFZLFFBQVEsS0FBSyxLQUFLLGFBQWEsUUFBUSxLQUFLO0FBQUE7QUFFakUsTUFBSSxjQUFjLFdBQVc7QUFBRyxXQUFPO0FBQ3ZDLE1BQUksS0FBSSxJQUFJLE9BQU8sSUFBSSxPQUFPLGNBQWMsSUFBSSxTQUFVLEdBQUc7QUFDM0QsV0FBTyxNQUFNLE1BQU0sUUFBUTtBQUFBLEtBQzFCLEtBQUssTUFBTTtBQUNkLE1BQUksVUFBVSxDQUFDLEdBQUUsS0FBSztBQUV0QixNQUFJLENBQUMsU0FBUztBQUNaLFFBQUksTUFBSyxJQUFJLFFBQVE7QUFFckIsUUFBSSxNQUFLLEtBQUssQ0FBQyxHQUFFLEtBQUssSUFBSSxVQUFVLEdBQUcsT0FBTTtBQUMzQyxnQkFBVTtBQUFBO0FBQUE7QUFJZCxTQUFPO0FBQUE7QUFHVCxtQkFBbUIsUUFBUSxnQkFBZ0I7QUFBRSxNQUFJLE9BQU8sT0FBTyxLQUFLO0FBQVMsTUFBSSxPQUFPLHVCQUF1QjtBQUFFLFFBQUksVUFBVSxPQUFPLHNCQUFzQjtBQUFTLFFBQUksZ0JBQWdCO0FBQUUsZ0JBQVUsUUFBUSxPQUFPLFNBQVUsS0FBSztBQUFFLGVBQU8sT0FBTyx5QkFBeUIsUUFBUSxLQUFLO0FBQUE7QUFBQTtBQUFrQixTQUFLLEtBQUssTUFBTSxNQUFNO0FBQUE7QUFBWSxTQUFPO0FBQUE7QUFFcFYseUJBQXlCLFFBQVE7QUFBRSxXQUFTLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFLO0FBQUUsUUFBSSxTQUFTLFVBQVUsTUFBTSxPQUFPLFVBQVUsS0FBSztBQUFJLFFBQUksSUFBSSxHQUFHO0FBQUUsZ0JBQVUsT0FBTyxTQUFTLE1BQU0sUUFBUSxTQUFVLEtBQUs7QUFBRSx3QkFBZ0IsUUFBUSxLQUFLLE9BQU87QUFBQTtBQUFBLGVBQXNCLE9BQU8sMkJBQTJCO0FBQUUsYUFBTyxpQkFBaUIsUUFBUSxPQUFPLDBCQUEwQjtBQUFBLFdBQWlCO0FBQUUsZ0JBQVUsT0FBTyxTQUFTLFFBQVEsU0FBVSxLQUFLO0FBQUUsZUFBTyxlQUFlLFFBQVEsS0FBSyxPQUFPLHlCQUF5QixRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQWUsU0FBTztBQUFBO0FBRW5oQixzQkFBc0IsU0FBUztBQUFFLE1BQUksNEJBQTRCO0FBQTZCLFNBQU8sZ0NBQWdDO0FBQUUsUUFBSSxRQUFRLGdCQUFnQixVQUFVO0FBQVEsUUFBSSwyQkFBMkI7QUFBRSxVQUFJLFlBQVksZ0JBQWdCLE1BQU07QUFBYSxlQUFTLFFBQVEsVUFBVSxPQUFPLFdBQVc7QUFBQSxXQUFtQjtBQUFFLGVBQVMsTUFBTSxNQUFNLE1BQU07QUFBQTtBQUFjLFdBQU8sMkJBQTJCLE1BQU07QUFBQTtBQUFBO0FBRTVaLHFDQUFxQztBQUFFLE1BQUksT0FBTyxZQUFZLGVBQWUsQ0FBQyxRQUFRO0FBQVcsV0FBTztBQUFPLE1BQUksUUFBUSxVQUFVO0FBQU0sV0FBTztBQUFPLE1BQUksT0FBTyxVQUFVO0FBQVksV0FBTztBQUFNLE1BQUk7QUFBRSxZQUFRLFVBQVUsUUFBUSxLQUFLLFFBQVEsVUFBVSxTQUFTLElBQUksV0FBWTtBQUFBO0FBQU0sV0FBTztBQUFBLFdBQWUsR0FBUDtBQUFZLFdBQU87QUFBQTtBQUFBO0FBRS9ULGtCQUFrQixLQUFLLE1BQU07QUFDM0IsTUFBSSxlQUFlLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUN2RixNQUFJLENBQUM7QUFBSyxXQUFPO0FBQ2pCLE1BQUksSUFBSTtBQUFPLFdBQU8sSUFBSTtBQUMxQixNQUFJLFFBQVEsS0FBSyxNQUFNO0FBQ3ZCLE1BQUksVUFBVTtBQUVkLFdBQVMsSUFBSSxHQUFHLElBQUksTUFBTSxRQUFRLEVBQUUsR0FBRztBQUNyQyxRQUFJLENBQUM7QUFBUyxhQUFPO0FBRXJCLFFBQUksT0FBTyxRQUFRLE1BQU0sUUFBUSxZQUFZLElBQUksSUFBSSxNQUFNLFFBQVE7QUFDakUsYUFBTztBQUFBO0FBR1QsUUFBSSxRQUFRLE1BQU0sUUFBUSxRQUFXO0FBQ25DLFVBQUksSUFBSTtBQUNSLFVBQUksS0FBSSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsS0FBSztBQUNuQyxVQUFJLE1BQU0sUUFBUTtBQUVsQixhQUFPLFFBQVEsVUFBYSxNQUFNLFNBQVMsSUFBSSxHQUFHO0FBQ2hEO0FBQ0EsYUFBSSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsS0FBSztBQUMvQixjQUFNLFFBQVE7QUFBQTtBQUdoQixVQUFJLFFBQVE7QUFBVyxlQUFPO0FBRTlCLFVBQUksS0FBSyxTQUFTLEtBQUk7QUFDcEIsWUFBSSxPQUFPLFFBQVE7QUFBVSxpQkFBTztBQUNwQyxZQUFJLE1BQUssT0FBTyxJQUFJLFFBQU87QUFBVSxpQkFBTyxJQUFJO0FBQUE7QUFHbEQsVUFBSSxhQUFhLE1BQU0sTUFBTSxJQUFJLEdBQUcsS0FBSztBQUN6QyxVQUFJO0FBQVksZUFBTyxTQUFTLEtBQUssWUFBWTtBQUNqRCxhQUFPO0FBQUE7QUFHVCxjQUFVLFFBQVEsTUFBTTtBQUFBO0FBRzFCLFNBQU87QUFBQTtBQUdULElBQUksZ0JBQWdCLFNBQVUsZUFBZTtBQUMzQyxZQUFVLGdCQUFlO0FBRXpCLE1BQUksU0FBUyxhQUFhO0FBRTFCLDBCQUF1QixNQUFNO0FBQzNCLFFBQUk7QUFFSixRQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQUEsTUFDaEYsSUFBSSxDQUFDO0FBQUEsTUFDTCxXQUFXO0FBQUE7QUFHYixvQkFBZ0IsTUFBTTtBQUV0QixZQUFRLE9BQU8sS0FBSztBQUVwQixRQUFJLFFBQVE7QUFDVixtQkFBYSxLQUFLLHVCQUF1QjtBQUFBO0FBRzNDLFVBQU0sT0FBTyxRQUFRO0FBQ3JCLFVBQU0sVUFBVTtBQUVoQixRQUFJLE1BQU0sUUFBUSxpQkFBaUIsUUFBVztBQUM1QyxZQUFNLFFBQVEsZUFBZTtBQUFBO0FBRy9CLFFBQUksTUFBTSxRQUFRLHdCQUF3QixRQUFXO0FBQ25ELFlBQU0sUUFBUSxzQkFBc0I7QUFBQTtBQUd0QyxXQUFPO0FBQUE7QUFHVCxlQUFhLGdCQUFlLENBQUM7QUFBQSxJQUMzQixLQUFLO0FBQUEsSUFDTCxPQUFPLHVCQUF1QixJQUFJO0FBQ2hDLFVBQUksS0FBSyxRQUFRLEdBQUcsUUFBUSxNQUFNLEdBQUc7QUFDbkMsYUFBSyxRQUFRLEdBQUcsS0FBSztBQUFBO0FBQUE7QUFBQSxLQUd4QjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTywwQkFBMEIsSUFBSTtBQUNuQyxVQUFJLFFBQVEsS0FBSyxRQUFRLEdBQUcsUUFBUTtBQUVwQyxVQUFJLFFBQVEsSUFBSTtBQUNkLGFBQUssUUFBUSxHQUFHLE9BQU8sT0FBTztBQUFBO0FBQUE7QUFBQSxLQUdqQztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxxQkFBcUIsS0FBSyxJQUFJLEtBQUs7QUFDeEMsVUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUNsRixVQUFJLGVBQWUsUUFBUSxpQkFBaUIsU0FBWSxRQUFRLGVBQWUsS0FBSyxRQUFRO0FBQzVGLFVBQUksc0JBQXNCLFFBQVEsd0JBQXdCLFNBQVksUUFBUSxzQkFBc0IsS0FBSyxRQUFRO0FBQ2pILFVBQUksT0FBTyxDQUFDLEtBQUs7QUFDakIsVUFBSSxPQUFPLE9BQU8sUUFBUTtBQUFVLGVBQU8sS0FBSyxPQUFPO0FBQ3ZELFVBQUksT0FBTyxPQUFPLFFBQVE7QUFBVSxlQUFPLEtBQUssT0FBTyxlQUFlLElBQUksTUFBTSxnQkFBZ0I7QUFFaEcsVUFBSSxJQUFJLFFBQVEsT0FBTyxJQUFJO0FBQ3pCLGVBQU8sSUFBSSxNQUFNO0FBQUE7QUFHbkIsVUFBSSxTQUFTLFFBQVEsS0FBSyxNQUFNO0FBQ2hDLFVBQUksVUFBVSxDQUFDLHVCQUF1QixPQUFPLFFBQVE7QUFBVSxlQUFPO0FBQ3RFLGFBQU8sU0FBUyxLQUFLLFFBQVEsS0FBSyxLQUFLLFFBQVEsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLO0FBQUE7QUFBQSxLQUV6RTtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxxQkFBcUIsS0FBSyxJQUFJLEtBQUssT0FBTztBQUMvQyxVQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQUEsUUFDaEYsUUFBUTtBQUFBO0FBRVYsVUFBSSxlQUFlLEtBQUssUUFBUTtBQUNoQyxVQUFJLGlCQUFpQjtBQUFXLHVCQUFlO0FBQy9DLFVBQUksT0FBTyxDQUFDLEtBQUs7QUFDakIsVUFBSTtBQUFLLGVBQU8sS0FBSyxPQUFPLGVBQWUsSUFBSSxNQUFNLGdCQUFnQjtBQUVyRSxVQUFJLElBQUksUUFBUSxPQUFPLElBQUk7QUFDekIsZUFBTyxJQUFJLE1BQU07QUFDakIsZ0JBQVE7QUFDUixhQUFLLEtBQUs7QUFBQTtBQUdaLFdBQUssY0FBYztBQUNuQixjQUFRLEtBQUssTUFBTSxNQUFNO0FBQ3pCLFVBQUksQ0FBQyxRQUFRO0FBQVEsYUFBSyxLQUFLLFNBQVMsS0FBSyxJQUFJLEtBQUs7QUFBQTtBQUFBLEtBRXZEO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLHNCQUFzQixLQUFLLElBQUksV0FBVztBQUMvQyxVQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQUEsUUFDaEYsUUFBUTtBQUFBO0FBR1YsZUFBUyxNQUFLLFdBQVc7QUFDdkIsWUFBSSxPQUFPLFVBQVUsUUFBTyxZQUFZLE9BQU8sVUFBVSxTQUFTLE1BQU0sVUFBVSxTQUFRO0FBQWtCLGVBQUssWUFBWSxLQUFLLElBQUksSUFBRyxVQUFVLEtBQUk7QUFBQSxZQUNySixRQUFRO0FBQUE7QUFBQTtBQUlaLFVBQUksQ0FBQyxRQUFRO0FBQVEsYUFBSyxLQUFLLFNBQVMsS0FBSyxJQUFJO0FBQUE7QUFBQSxLQUVsRDtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTywyQkFBMkIsS0FBSyxJQUFJLFdBQVcsTUFBTSxXQUFXO0FBQ3JFLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFBQSxRQUNoRixRQUFRO0FBQUE7QUFFVixVQUFJLE9BQU8sQ0FBQyxLQUFLO0FBRWpCLFVBQUksSUFBSSxRQUFRLE9BQU8sSUFBSTtBQUN6QixlQUFPLElBQUksTUFBTTtBQUNqQixlQUFPO0FBQ1Asb0JBQVk7QUFDWixhQUFLLEtBQUs7QUFBQTtBQUdaLFdBQUssY0FBYztBQUNuQixVQUFJLE9BQU8sUUFBUSxLQUFLLE1BQU0sU0FBUztBQUV2QyxVQUFJLE1BQU07QUFDUixtQkFBVyxNQUFNLFdBQVc7QUFBQSxhQUN2QjtBQUNMLGVBQU8sZ0JBQWdCLGdCQUFnQixJQUFJLE9BQU87QUFBQTtBQUdwRCxjQUFRLEtBQUssTUFBTSxNQUFNO0FBQ3pCLFVBQUksQ0FBQyxRQUFRO0FBQVEsYUFBSyxLQUFLLFNBQVMsS0FBSyxJQUFJO0FBQUE7QUFBQSxLQUVsRDtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyw4QkFBOEIsS0FBSyxJQUFJO0FBQzVDLFVBQUksS0FBSyxrQkFBa0IsS0FBSyxLQUFLO0FBQ25DLGVBQU8sS0FBSyxLQUFLLEtBQUs7QUFBQTtBQUd4QixXQUFLLGlCQUFpQjtBQUN0QixXQUFLLEtBQUssV0FBVyxLQUFLO0FBQUE7QUFBQSxLQUUzQjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTywyQkFBMkIsS0FBSyxJQUFJO0FBQ3pDLGFBQU8sS0FBSyxZQUFZLEtBQUssUUFBUTtBQUFBO0FBQUEsS0FFdEM7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sMkJBQTJCLEtBQUssSUFBSTtBQUN6QyxVQUFJLENBQUM7QUFBSSxhQUFLLEtBQUssUUFBUTtBQUMzQixVQUFJLEtBQUssUUFBUSxxQkFBcUI7QUFBTSxlQUFPLGdCQUFnQixnQkFBZ0IsSUFBSSxLQUFLLEtBQUssWUFBWSxLQUFLO0FBQ2xILGFBQU8sS0FBSyxZQUFZLEtBQUs7QUFBQTtBQUFBLEtBRTlCO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLDJCQUEyQixLQUFLO0FBQ3JDLGFBQU8sS0FBSyxLQUFLO0FBQUE7QUFBQSxLQUVsQjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxxQ0FBcUMsS0FBSztBQUMvQyxVQUFJLE9BQU8sS0FBSyxrQkFBa0I7QUFDbEMsVUFBSSxLQUFJLFFBQVEsT0FBTyxLQUFLLFNBQVM7QUFDckMsYUFBTyxDQUFDLENBQUMsR0FBRSxLQUFLLFNBQVUsSUFBRztBQUMzQixlQUFPLEtBQUssT0FBTSxPQUFPLEtBQUssS0FBSyxLQUFJLFNBQVM7QUFBQTtBQUFBO0FBQUEsS0FHbkQ7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sa0JBQWtCO0FBQ3ZCLGFBQU8sS0FBSztBQUFBO0FBQUE7QUFJaEIsU0FBTztBQUFBLEVBQ1A7QUFFRixJQUFJLGdCQUFnQjtBQUFBLEVBQ2xCLFlBQVk7QUFBQSxFQUNaLGtCQUFrQiwwQkFBMEIsU0FBUTtBQUNsRCxTQUFLLFdBQVcsUUFBTyxRQUFRO0FBQUE7QUFBQSxFQUVqQyxRQUFRLGdCQUFnQixZQUFZLE9BQU8sS0FBSyxTQUFTLFlBQVk7QUFDbkUsUUFBSSxRQUFRO0FBRVosZUFBVyxRQUFRLFNBQVUsV0FBVztBQUN0QyxVQUFJLE1BQU0sV0FBVztBQUFZLGdCQUFRLE1BQU0sV0FBVyxXQUFXLFFBQVEsT0FBTyxLQUFLLFNBQVM7QUFBQTtBQUVwRyxXQUFPO0FBQUE7QUFBQTtBQUlYLG1CQUFtQixRQUFRLGdCQUFnQjtBQUFFLE1BQUksT0FBTyxPQUFPLEtBQUs7QUFBUyxNQUFJLE9BQU8sdUJBQXVCO0FBQUUsUUFBSSxVQUFVLE9BQU8sc0JBQXNCO0FBQVMsUUFBSSxnQkFBZ0I7QUFBRSxnQkFBVSxRQUFRLE9BQU8sU0FBVSxLQUFLO0FBQUUsZUFBTyxPQUFPLHlCQUF5QixRQUFRLEtBQUs7QUFBQTtBQUFBO0FBQWtCLFNBQUssS0FBSyxNQUFNLE1BQU07QUFBQTtBQUFZLFNBQU87QUFBQTtBQUVwVix5QkFBeUIsUUFBUTtBQUFFLFdBQVMsSUFBSSxHQUFHLElBQUksVUFBVSxRQUFRLEtBQUs7QUFBRSxRQUFJLFNBQVMsVUFBVSxNQUFNLE9BQU8sVUFBVSxLQUFLO0FBQUksUUFBSSxJQUFJLEdBQUc7QUFBRSxnQkFBVSxPQUFPLFNBQVMsTUFBTSxRQUFRLFNBQVUsS0FBSztBQUFFLHdCQUFnQixRQUFRLEtBQUssT0FBTztBQUFBO0FBQUEsZUFBc0IsT0FBTywyQkFBMkI7QUFBRSxhQUFPLGlCQUFpQixRQUFRLE9BQU8sMEJBQTBCO0FBQUEsV0FBaUI7QUFBRSxnQkFBVSxPQUFPLFNBQVMsUUFBUSxTQUFVLEtBQUs7QUFBRSxlQUFPLGVBQWUsUUFBUSxLQUFLLE9BQU8seUJBQXlCLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBZSxTQUFPO0FBQUE7QUFFbmhCLHdCQUF3QixTQUFTO0FBQUUsTUFBSSw0QkFBNEI7QUFBK0IsU0FBTyxnQ0FBZ0M7QUFBRSxRQUFJLFFBQVEsZ0JBQWdCLFVBQVU7QUFBUSxRQUFJLDJCQUEyQjtBQUFFLFVBQUksWUFBWSxnQkFBZ0IsTUFBTTtBQUFhLGVBQVMsUUFBUSxVQUFVLE9BQU8sV0FBVztBQUFBLFdBQW1CO0FBQUUsZUFBUyxNQUFNLE1BQU0sTUFBTTtBQUFBO0FBQWMsV0FBTywyQkFBMkIsTUFBTTtBQUFBO0FBQUE7QUFFaGEsdUNBQXVDO0FBQUUsTUFBSSxPQUFPLFlBQVksZUFBZSxDQUFDLFFBQVE7QUFBVyxXQUFPO0FBQU8sTUFBSSxRQUFRLFVBQVU7QUFBTSxXQUFPO0FBQU8sTUFBSSxPQUFPLFVBQVU7QUFBWSxXQUFPO0FBQU0sTUFBSTtBQUFFLFlBQVEsVUFBVSxRQUFRLEtBQUssUUFBUSxVQUFVLFNBQVMsSUFBSSxXQUFZO0FBQUE7QUFBTSxXQUFPO0FBQUEsV0FBZSxHQUFQO0FBQVksV0FBTztBQUFBO0FBQUE7QUFDalUsSUFBSSxtQkFBbUI7QUFFdkIsSUFBSSxhQUFhLFNBQVUsZUFBZTtBQUN4QyxZQUFVLGFBQVk7QUFFdEIsTUFBSSxTQUFTLGVBQWU7QUFFNUIsdUJBQW9CLFVBQVU7QUFDNUIsUUFBSTtBQUVKLFFBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFFbEYsb0JBQWdCLE1BQU07QUFFdEIsWUFBUSxPQUFPLEtBQUs7QUFFcEIsUUFBSSxRQUFRO0FBQ1YsbUJBQWEsS0FBSyx1QkFBdUI7QUFBQTtBQUczQyxTQUFLLENBQUMsaUJBQWlCLGlCQUFpQixrQkFBa0IsZ0JBQWdCLG9CQUFvQixjQUFjLFVBQVUsVUFBVSx1QkFBdUI7QUFDdkosVUFBTSxVQUFVO0FBRWhCLFFBQUksTUFBTSxRQUFRLGlCQUFpQixRQUFXO0FBQzVDLFlBQU0sUUFBUSxlQUFlO0FBQUE7QUFHL0IsVUFBTSxTQUFTLFdBQVcsT0FBTztBQUNqQyxXQUFPO0FBQUE7QUFHVCxlQUFhLGFBQVksQ0FBQztBQUFBLElBQ3hCLEtBQUs7QUFBQSxJQUNMLE9BQU8sd0JBQXdCLEtBQUs7QUFDbEMsVUFBSTtBQUFLLGFBQUssV0FBVztBQUFBO0FBQUEsS0FFMUI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sZ0JBQWdCLEtBQUs7QUFDMUIsVUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUFBLFFBQ2hGLGVBQWU7QUFBQTtBQUdqQixVQUFJLFFBQVEsVUFBYSxRQUFRLE1BQU07QUFDckMsZUFBTztBQUFBO0FBR1QsVUFBSSxXQUFXLEtBQUssUUFBUSxLQUFLO0FBQ2pDLGFBQU8sWUFBWSxTQUFTLFFBQVE7QUFBQTtBQUFBLEtBRXJDO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLHdCQUF3QixLQUFLLFNBQVM7QUFDM0MsVUFBSSxjQUFjLFFBQVEsZ0JBQWdCLFNBQVksUUFBUSxjQUFjLEtBQUssUUFBUTtBQUN6RixVQUFJLGdCQUFnQjtBQUFXLHNCQUFjO0FBQzdDLFVBQUksZUFBZSxRQUFRLGlCQUFpQixTQUFZLFFBQVEsZUFBZSxLQUFLLFFBQVE7QUFDNUYsVUFBSSxhQUFhLFFBQVEsTUFBTSxLQUFLLFFBQVEsYUFBYTtBQUN6RCxVQUFJLHVCQUF1QixlQUFlLElBQUksUUFBUSxlQUFlO0FBQ3JFLFVBQUksdUJBQXVCLENBQUMsS0FBSyxRQUFRLDJCQUEyQixDQUFDLFFBQVEsZ0JBQWdCLENBQUMsS0FBSyxRQUFRLDBCQUEwQixDQUFDLFFBQVEsZUFBZSxDQUFDLG9CQUFvQixLQUFLLGFBQWE7QUFFcE0sVUFBSSx3QkFBd0IsQ0FBQyxzQkFBc0I7QUFDakQsWUFBSSxLQUFJLElBQUksTUFBTSxLQUFLLGFBQWE7QUFFcEMsWUFBSSxNQUFLLEdBQUUsU0FBUyxHQUFHO0FBQ3JCLGlCQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQTtBQUFBO0FBSUosWUFBSSxRQUFRLElBQUksTUFBTTtBQUN0QixZQUFJLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLGdCQUFnQixLQUFLLFFBQVEsR0FBRyxRQUFRLE1BQU0sTUFBTTtBQUFJLHVCQUFhLE1BQU07QUFDL0gsY0FBTSxNQUFNLEtBQUs7QUFBQTtBQUduQixVQUFJLE9BQU8sZUFBZTtBQUFVLHFCQUFhLENBQUM7QUFDbEQsYUFBTztBQUFBLFFBQ0w7QUFBQSxRQUNBO0FBQUE7QUFBQTtBQUFBLEtBR0g7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sbUJBQW1CLE1BQU0sU0FBUyxTQUFTO0FBQ2hELFVBQUksU0FBUztBQUViLFVBQUksUUFBUSxhQUFhLFlBQVksS0FBSyxRQUFRLGtDQUFrQztBQUNsRixrQkFBVSxLQUFLLFFBQVEsaUNBQWlDO0FBQUE7QUFHMUQsVUFBSSxDQUFDO0FBQVMsa0JBQVU7QUFDeEIsVUFBSSxTQUFTLFVBQWEsU0FBUztBQUFNLGVBQU87QUFDaEQsVUFBSSxDQUFDLE1BQU0sUUFBUTtBQUFPLGVBQU8sQ0FBQyxPQUFPO0FBQ3pDLFVBQUksZUFBZSxRQUFRLGlCQUFpQixTQUFZLFFBQVEsZUFBZSxLQUFLLFFBQVE7QUFFNUYsVUFBSSx1QkFBdUIsS0FBSyxlQUFlLEtBQUssS0FBSyxTQUFTLElBQUksVUFDbEUsTUFBTSxxQkFBcUIsS0FDM0IsYUFBYSxxQkFBcUI7QUFFdEMsVUFBSSxZQUFZLFdBQVcsV0FBVyxTQUFTO0FBQy9DLFVBQUksTUFBTSxRQUFRLE9BQU8sS0FBSztBQUM5QixVQUFJLDBCQUEwQixRQUFRLDJCQUEyQixLQUFLLFFBQVE7QUFFOUUsVUFBSSxPQUFPLElBQUksa0JBQWtCLFVBQVU7QUFDekMsWUFBSSx5QkFBeUI7QUFDM0IsY0FBSSxjQUFjLFFBQVEsZUFBZSxLQUFLLFFBQVE7QUFDdEQsaUJBQU8sWUFBWSxjQUFjO0FBQUE7QUFHbkMsZUFBTztBQUFBO0FBR1QsVUFBSSxXQUFXLEtBQUssUUFBUSxNQUFNO0FBQ2xDLFVBQUksTUFBTSxZQUFZLFNBQVM7QUFDL0IsVUFBSSxhQUFhLFlBQVksU0FBUyxXQUFXO0FBQ2pELFVBQUksa0JBQWtCLFlBQVksU0FBUyxnQkFBZ0I7QUFDM0QsVUFBSSxVQUFVLE9BQU8sVUFBVSxTQUFTLE1BQU07QUFDOUMsVUFBSSxXQUFXLENBQUMsbUJBQW1CLHFCQUFxQjtBQUN4RCxVQUFJLGFBQWEsUUFBUSxlQUFlLFNBQVksUUFBUSxhQUFhLEtBQUssUUFBUTtBQUN0RixVQUFJLDZCQUE2QixDQUFDLEtBQUssY0FBYyxLQUFLLFdBQVc7QUFDckUsVUFBSSxpQkFBaUIsT0FBTyxRQUFRLFlBQVksT0FBTyxRQUFRLGFBQWEsT0FBTyxRQUFRO0FBRTNGLFVBQUksOEJBQThCLE9BQU8sa0JBQWtCLFNBQVMsUUFBUSxXQUFXLEtBQUssQ0FBRSxRQUFPLGVBQWUsWUFBWSxZQUFZLG1CQUFtQjtBQUM3SixZQUFJLENBQUMsUUFBUSxpQkFBaUIsQ0FBQyxLQUFLLFFBQVEsZUFBZTtBQUN6RCxjQUFJLENBQUMsS0FBSyxRQUFRLHVCQUF1QjtBQUN2QyxpQkFBSyxPQUFPLEtBQUs7QUFBQTtBQUduQixpQkFBTyxLQUFLLFFBQVEsd0JBQXdCLEtBQUssUUFBUSxzQkFBc0IsWUFBWSxLQUFLLGdCQUFnQixnQkFBZ0IsSUFBSSxVQUFVLElBQUk7QUFBQSxZQUNoSixJQUFJO0FBQUEsZ0JBQ0EsUUFBUSxPQUFPLEtBQUssTUFBTSxPQUFPLEtBQUssVUFBVTtBQUFBO0FBR3hELFlBQUksY0FBYztBQUNoQixjQUFJLGlCQUFpQixZQUFZO0FBQ2pDLGNBQUksUUFBTyxpQkFBaUIsS0FBSztBQUNqQyxjQUFJLGNBQWMsaUJBQWlCLGtCQUFrQjtBQUVyRCxtQkFBUyxNQUFLLEtBQUs7QUFDakIsZ0JBQUksT0FBTyxVQUFVLGVBQWUsS0FBSyxLQUFLLEtBQUk7QUFDaEQsa0JBQUksVUFBVSxHQUFHLE9BQU8sYUFBYSxPQUFPLGNBQWMsT0FBTztBQUNqRSxvQkFBSyxNQUFLLEtBQUssVUFBVSxTQUFTLGdCQUFnQixnQkFBZ0IsSUFBSSxVQUFVO0FBQUEsZ0JBQzlFLFlBQVk7QUFBQSxnQkFDWixJQUFJO0FBQUE7QUFFTixrQkFBSSxNQUFLLFFBQU87QUFBUyxzQkFBSyxNQUFLLElBQUk7QUFBQTtBQUFBO0FBSTNDLGdCQUFNO0FBQUE7QUFBQSxpQkFFQyw4QkFBOEIsT0FBTyxlQUFlLFlBQVksWUFBWSxrQkFBa0I7QUFDdkcsY0FBTSxJQUFJLEtBQUs7QUFDZixZQUFJO0FBQUssZ0JBQU0sS0FBSyxrQkFBa0IsS0FBSyxNQUFNLFNBQVM7QUFBQSxhQUNyRDtBQUNMLFlBQUksY0FBYztBQUNsQixZQUFJLFVBQVU7QUFDZCxZQUFJLHNCQUFzQixRQUFRLFVBQVUsVUFBYSxPQUFPLFFBQVEsVUFBVTtBQUNsRixZQUFJLGtCQUFrQixZQUFXLGdCQUFnQjtBQUNqRCxZQUFJLHFCQUFxQixzQkFBc0IsS0FBSyxlQUFlLFVBQVUsS0FBSyxRQUFRLE9BQU8sV0FBVztBQUM1RyxZQUFJLGVBQWUsUUFBUSxlQUFlLE9BQU8sd0JBQXdCLFFBQVE7QUFFakYsWUFBSSxDQUFDLEtBQUssY0FBYyxRQUFRLGlCQUFpQjtBQUMvQyx3QkFBYztBQUNkLGdCQUFNO0FBQUE7QUFHUixZQUFJLENBQUMsS0FBSyxjQUFjLE1BQU07QUFDNUIsb0JBQVU7QUFDVixnQkFBTTtBQUFBO0FBR1IsWUFBSSxpQ0FBaUMsUUFBUSxrQ0FBa0MsS0FBSyxRQUFRO0FBQzVGLFlBQUksZ0JBQWdCLGtDQUFrQyxVQUFVLFNBQVk7QUFDNUUsWUFBSSxnQkFBZ0IsbUJBQW1CLGlCQUFpQixPQUFPLEtBQUssUUFBUTtBQUU1RSxZQUFJLFdBQVcsZUFBZSxlQUFlO0FBQzNDLGVBQUssT0FBTyxJQUFJLGdCQUFnQixjQUFjLGNBQWMsS0FBSyxXQUFXLEtBQUssZ0JBQWdCLGVBQWU7QUFFaEgsY0FBSSxjQUFjO0FBQ2hCLGdCQUFJLE1BQUssS0FBSyxRQUFRLEtBQUssZ0JBQWdCLGdCQUFnQixJQUFJLFVBQVUsSUFBSTtBQUFBLGNBQzNFLGNBQWM7QUFBQTtBQUVoQixnQkFBSSxPQUFNLElBQUc7QUFBSyxtQkFBSyxPQUFPLEtBQUs7QUFBQTtBQUdyQyxjQUFJLE9BQU87QUFDWCxjQUFJLGVBQWUsS0FBSyxjQUFjLGlCQUFpQixLQUFLLFFBQVEsYUFBYSxRQUFRLE9BQU8sS0FBSztBQUVyRyxjQUFJLEtBQUssUUFBUSxrQkFBa0IsY0FBYyxnQkFBZ0IsYUFBYSxJQUFJO0FBQ2hGLHFCQUFTLElBQUksR0FBRyxJQUFJLGFBQWEsUUFBUSxLQUFLO0FBQzVDLG1CQUFLLEtBQUssYUFBYTtBQUFBO0FBQUEscUJBRWhCLEtBQUssUUFBUSxrQkFBa0IsT0FBTztBQUMvQyxtQkFBTyxLQUFLLGNBQWMsbUJBQW1CLFFBQVEsT0FBTyxLQUFLO0FBQUEsaUJBQzVEO0FBQ0wsaUJBQUssS0FBSyxRQUFRLE9BQU8sS0FBSztBQUFBO0FBR2hDLGNBQUksT0FBTyxlQUFjLElBQUcsR0FBRyxzQkFBc0I7QUFDbkQsZ0JBQUksb0JBQW9CLG1CQUFtQix5QkFBeUIsTUFBTSx1QkFBdUI7QUFFakcsZ0JBQUksT0FBTyxRQUFRLG1CQUFtQjtBQUNwQyxxQkFBTyxRQUFRLGtCQUFrQixJQUFHLFdBQVcsR0FBRyxtQkFBbUIsZUFBZTtBQUFBLHVCQUMzRSxPQUFPLG9CQUFvQixPQUFPLGlCQUFpQixhQUFhO0FBQ3pFLHFCQUFPLGlCQUFpQixZQUFZLElBQUcsV0FBVyxHQUFHLG1CQUFtQixlQUFlO0FBQUE7QUFHekYsbUJBQU8sS0FBSyxjQUFjLElBQUcsV0FBVyxHQUFHO0FBQUE7QUFHN0MsY0FBSSxLQUFLLFFBQVEsYUFBYTtBQUM1QixnQkFBSSxLQUFLLFFBQVEsc0JBQXNCLHFCQUFxQjtBQUMxRCxtQkFBSyxRQUFRLFNBQVUsVUFBVTtBQUMvQix1QkFBTyxlQUFlLFlBQVksVUFBVSxRQUFRLFNBQVUsUUFBUTtBQUNwRSx1QkFBSyxDQUFDLFdBQVcsTUFBTSxRQUFRLFFBQVEsZUFBZSxPQUFPLFlBQVk7QUFBQTtBQUFBO0FBQUEsbUJBR3hFO0FBQ0wsbUJBQUssTUFBTSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBS3RCLGNBQU0sS0FBSyxrQkFBa0IsS0FBSyxNQUFNLFNBQVMsVUFBVTtBQUMzRCxZQUFJLFdBQVcsUUFBUSxPQUFPLEtBQUssUUFBUTtBQUE2QixnQkFBTSxHQUFHLE9BQU8sV0FBVyxLQUFLLE9BQU87QUFDL0csWUFBSyxZQUFXLGdCQUFnQixLQUFLLFFBQVE7QUFBd0IsZ0JBQU0sS0FBSyxRQUFRLHVCQUF1QjtBQUFBO0FBR2pILGFBQU87QUFBQTtBQUFBLEtBRVI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sMkJBQTJCLEtBQUssS0FBSyxTQUFTLFVBQVUsU0FBUztBQUN0RSxVQUFJLFNBQVM7QUFFYixVQUFJLEtBQUssY0FBYyxLQUFLLFdBQVcsT0FBTztBQUM1QyxjQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssU0FBUyxTQUFTLFNBQVMsU0FBUyxRQUFRLFNBQVMsU0FBUztBQUFBLFVBQzdGO0FBQUE7QUFBQSxpQkFFTyxDQUFDLFFBQVEsbUJBQW1CO0FBQ3JDLFlBQUksUUFBUTtBQUFlLGVBQUssYUFBYSxLQUFLLGdCQUFnQixnQkFBZ0IsSUFBSSxVQUFVO0FBQUEsWUFDOUYsZUFBZSxnQkFBZ0IsZ0JBQWdCLElBQUksS0FBSyxRQUFRLGdCQUFnQixRQUFRO0FBQUE7QUFFMUYsWUFBSSxrQkFBa0IsT0FBTyxRQUFRLFlBQWEsU0FBUSxpQkFBaUIsUUFBUSxjQUFjLG1CQUFtQixLQUFLLFFBQVEsY0FBYztBQUMvSSxZQUFJO0FBRUosWUFBSSxpQkFBaUI7QUFDbkIsY0FBSSxNQUFLLElBQUksTUFBTSxLQUFLLGFBQWE7QUFDckMsb0JBQVUsT0FBTSxJQUFHO0FBQUE7QUFHckIsWUFBSSxPQUFPLFFBQVEsV0FBVyxPQUFPLFFBQVEsWUFBWSxXQUFXLFFBQVEsVUFBVTtBQUN0RixZQUFJLEtBQUssUUFBUSxjQUFjO0FBQWtCLGlCQUFPLGdCQUFnQixnQkFBZ0IsSUFBSSxLQUFLLFFBQVEsY0FBYyxtQkFBbUI7QUFDMUksY0FBTSxLQUFLLGFBQWEsWUFBWSxLQUFLLE1BQU0sUUFBUSxPQUFPLEtBQUssVUFBVTtBQUU3RSxZQUFJLGlCQUFpQjtBQUNuQixjQUFJLE1BQUssSUFBSSxNQUFNLEtBQUssYUFBYTtBQUNyQyxjQUFJLFVBQVUsT0FBTSxJQUFHO0FBQ3ZCLGNBQUksVUFBVTtBQUFTLG9CQUFRLE9BQU87QUFBQTtBQUd4QyxZQUFJLFFBQVEsU0FBUztBQUFPLGdCQUFNLEtBQUssYUFBYSxLQUFLLEtBQUssV0FBWTtBQUN4RSxxQkFBUyxPQUFPLFVBQVUsUUFBUSxPQUFPLElBQUksTUFBTSxPQUFPLE9BQU8sR0FBRyxPQUFPLE1BQU0sUUFBUTtBQUN2RixtQkFBSyxRQUFRLFVBQVU7QUFBQTtBQUd6QixnQkFBSSxXQUFXLFFBQVEsT0FBTyxLQUFLLE1BQU0sQ0FBQyxRQUFRLFNBQVM7QUFDekQscUJBQU8sT0FBTyxLQUFLLDZDQUE2QyxPQUFPLEtBQUssSUFBSSxhQUFhLE9BQU8sSUFBSTtBQUV4RyxxQkFBTztBQUFBO0FBR1QsbUJBQU8sT0FBTyxVQUFVLE1BQU0sUUFBUSxLQUFLLE9BQU8sQ0FBQztBQUFBLGFBQ2xEO0FBQ0gsWUFBSSxRQUFRO0FBQWUsZUFBSyxhQUFhO0FBQUE7QUFHL0MsVUFBSSxjQUFjLFFBQVEsZUFBZSxLQUFLLFFBQVE7QUFDdEQsVUFBSSxxQkFBcUIsT0FBTyxnQkFBZ0IsV0FBVyxDQUFDLGVBQWU7QUFFM0UsVUFBSSxRQUFRLFVBQWEsUUFBUSxRQUFRLHNCQUFzQixtQkFBbUIsVUFBVSxRQUFRLHVCQUF1QixPQUFPO0FBQ2hJLGNBQU0sY0FBYyxPQUFPLG9CQUFvQixLQUFLLEtBQUssS0FBSyxXQUFXLEtBQUssUUFBUSwwQkFBMEIsZ0JBQWdCO0FBQUEsVUFDOUgsY0FBYztBQUFBLFdBQ2IsV0FBVyxTQUFTO0FBQUE7QUFHekIsYUFBTztBQUFBO0FBQUEsS0FFUjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxpQkFBaUIsTUFBTTtBQUM1QixVQUFJLFNBQVM7QUFFYixVQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQ2xGLFVBQUk7QUFDSixVQUFJO0FBQ0osVUFBSTtBQUNKLFVBQUk7QUFDSixVQUFJO0FBQ0osVUFBSSxPQUFPLFNBQVM7QUFBVSxlQUFPLENBQUM7QUFDdEMsV0FBSyxRQUFRLFNBQVUsR0FBRztBQUN4QixZQUFJLE9BQU8sY0FBYztBQUFRO0FBRWpDLFlBQUksWUFBWSxPQUFPLGVBQWUsR0FBRztBQUV6QyxZQUFJLE1BQU0sVUFBVTtBQUNwQixrQkFBVTtBQUNWLFlBQUksYUFBYSxVQUFVO0FBQzNCLFlBQUksT0FBTyxRQUFRO0FBQVksdUJBQWEsV0FBVyxPQUFPLE9BQU8sUUFBUTtBQUM3RSxZQUFJLHNCQUFzQixRQUFRLFVBQVUsVUFBYSxPQUFPLFFBQVEsVUFBVTtBQUVsRixZQUFJLHdCQUF3Qix1QkFBdUIsQ0FBQyxRQUFRLFdBQVcsUUFBUSxVQUFVLEtBQUssT0FBTyxlQUFlO0FBRXBILFlBQUksdUJBQXVCLFFBQVEsWUFBWSxVQUFjLFFBQU8sUUFBUSxZQUFZLFlBQVksT0FBTyxRQUFRLFlBQVksYUFBYSxRQUFRLFlBQVk7QUFDaEssWUFBSSxRQUFRLFFBQVEsT0FBTyxRQUFRLE9BQU8sT0FBTyxjQUFjLG1CQUFtQixRQUFRLE9BQU8sT0FBTyxVQUFVLFFBQVE7QUFDMUgsbUJBQVcsUUFBUSxTQUFVLElBQUk7QUFDL0IsY0FBSSxPQUFPLGNBQWM7QUFBUTtBQUNqQyxtQkFBUztBQUVULGNBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLE1BQU0sSUFBSSxLQUFLLE9BQU8sUUFBUSxPQUFPLFNBQVMsT0FBTyxNQUFNLHNCQUFzQixDQUFDLE9BQU8sTUFBTSxtQkFBbUIsU0FBUztBQUN6Siw2QkFBaUIsR0FBRyxPQUFPLE1BQU0sSUFBSSxLQUFLLE9BQU8sT0FBTztBQUV4RCxtQkFBTyxPQUFPLEtBQUssUUFBUyxPQUFPLFNBQVMscUJBQXVCLE9BQU8sTUFBTSxLQUFLLE9BQU8sdUNBQXlDLE9BQU8sUUFBUSx5QkFBMEI7QUFBQTtBQUdoTCxnQkFBTSxRQUFRLFNBQVUsTUFBTTtBQUM1QixnQkFBSSxPQUFPLGNBQWM7QUFBUTtBQUNqQyxzQkFBVTtBQUNWLGdCQUFJLFlBQVksQ0FBQztBQUVqQixnQkFBSSxPQUFPLGNBQWMsT0FBTyxXQUFXLGVBQWU7QUFDeEQscUJBQU8sV0FBVyxjQUFjLFdBQVcsS0FBSyxNQUFNLElBQUk7QUFBQSxtQkFDckQ7QUFDTCxrQkFBSTtBQUNKLGtCQUFJO0FBQXFCLCtCQUFlLE9BQU8sZUFBZSxVQUFVLE1BQU0sUUFBUSxPQUFPO0FBQzdGLGtCQUFJLGFBQWE7QUFFakIsa0JBQUkscUJBQXFCO0FBQ3ZCLDBCQUFVLEtBQUssTUFBTTtBQUVyQixvQkFBSSx1QkFBdUI7QUFDekIsNEJBQVUsS0FBSyxNQUFNO0FBQUE7QUFBQTtBQUl6QixrQkFBSSxzQkFBc0I7QUFDeEIsb0JBQUksYUFBYSxHQUFHLE9BQU8sS0FBSyxPQUFPLE9BQU8sUUFBUSxrQkFBa0IsT0FBTyxRQUFRO0FBQ3ZGLDBCQUFVLEtBQUs7QUFFZixvQkFBSSxxQkFBcUI7QUFDdkIsNEJBQVUsS0FBSyxhQUFhO0FBRTVCLHNCQUFJLHVCQUF1QjtBQUN6Qiw4QkFBVSxLQUFLLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1wQyxnQkFBSTtBQUVKLG1CQUFPLGNBQWMsVUFBVSxPQUFPO0FBQ3BDLGtCQUFJLENBQUMsT0FBTyxjQUFjLFFBQVE7QUFDaEMsK0JBQWU7QUFDZix3QkFBUSxPQUFPLFlBQVksTUFBTSxJQUFJLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTTVELGFBQU87QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQTtBQUFBLEtBR0g7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sdUJBQXVCLEtBQUs7QUFDakMsYUFBTyxRQUFRLFVBQWEsQ0FBRSxFQUFDLEtBQUssUUFBUSxjQUFjLFFBQVEsU0FBUyxDQUFFLEVBQUMsS0FBSyxRQUFRLHFCQUFxQixRQUFRO0FBQUE7QUFBQSxLQUV6SDtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxxQkFBcUIsTUFBTSxJQUFJLEtBQUs7QUFDekMsVUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUNsRixVQUFJLEtBQUssY0FBYyxLQUFLLFdBQVc7QUFBYSxlQUFPLEtBQUssV0FBVyxZQUFZLE1BQU0sSUFBSSxLQUFLO0FBQ3RHLGFBQU8sS0FBSyxjQUFjLFlBQVksTUFBTSxJQUFJLEtBQUs7QUFBQTtBQUFBLE1BRXJELENBQUM7QUFBQSxJQUNILEtBQUs7QUFBQSxJQUNMLE9BQU8seUJBQXlCLFNBQVM7QUFDdkMsVUFBSSxTQUFTO0FBRWIsZUFBUyxVQUFVLFNBQVM7QUFDMUIsWUFBSSxPQUFPLFVBQVUsZUFBZSxLQUFLLFNBQVMsV0FBVyxXQUFXLE9BQU8sVUFBVSxHQUFHLE9BQU8sV0FBVyxBQUFjLFFBQVEsWUFBdEIsUUFBK0I7QUFDM0ksaUJBQU87QUFBQTtBQUFBO0FBSVgsYUFBTztBQUFBO0FBQUE7QUFJWCxTQUFPO0FBQUEsRUFDUDtBQUVGLG9CQUFvQixRQUFRO0FBQzFCLFNBQU8sT0FBTyxPQUFPLEdBQUcsZ0JBQWdCLE9BQU8sTUFBTTtBQUFBO0FBR3ZELElBQUksZUFBZSxXQUFZO0FBQzdCLHlCQUFzQixTQUFTO0FBQzdCLG9CQUFnQixNQUFNO0FBRXRCLFNBQUssVUFBVTtBQUNmLFNBQUssZ0JBQWdCLEtBQUssUUFBUSxpQkFBaUI7QUFDbkQsU0FBSyxTQUFTLFdBQVcsT0FBTztBQUFBO0FBR2xDLGVBQWEsZUFBYyxDQUFDO0FBQUEsSUFDMUIsS0FBSztBQUFBLElBQ0wsT0FBTywrQkFBK0IsTUFBTTtBQUMxQyxVQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsT0FBTztBQUFHLGVBQU87QUFDM0MsVUFBSSxLQUFJLEtBQUssTUFBTTtBQUNuQixVQUFJLEdBQUUsV0FBVztBQUFHLGVBQU87QUFDM0IsU0FBRTtBQUNGLFVBQUksR0FBRSxHQUFFLFNBQVMsR0FBRyxrQkFBa0I7QUFBSyxlQUFPO0FBQ2xELGFBQU8sS0FBSyxtQkFBbUIsR0FBRSxLQUFLO0FBQUE7QUFBQSxLQUV2QztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxpQ0FBaUMsTUFBTTtBQUM1QyxVQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsT0FBTztBQUFHLGVBQU87QUFDM0MsVUFBSSxLQUFJLEtBQUssTUFBTTtBQUNuQixhQUFPLEtBQUssbUJBQW1CLEdBQUU7QUFBQTtBQUFBLEtBRWxDO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLDRCQUE0QixNQUFNO0FBQ3ZDLFVBQUksT0FBTyxTQUFTLFlBQVksS0FBSyxRQUFRLE9BQU8sSUFBSTtBQUN0RCxZQUFJLGVBQWUsQ0FBQyxRQUFRLFFBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUTtBQUNwRSxZQUFJLEtBQUksS0FBSyxNQUFNO0FBRW5CLFlBQUksS0FBSyxRQUFRLGNBQWM7QUFDN0IsZUFBSSxHQUFFLElBQUksU0FBVSxNQUFNO0FBQ3hCLG1CQUFPLEtBQUs7QUFBQTtBQUFBLG1CQUVMLEdBQUUsV0FBVyxHQUFHO0FBQ3pCLGFBQUUsS0FBSyxHQUFFLEdBQUc7QUFDWixhQUFFLEtBQUssR0FBRSxHQUFHO0FBQ1osY0FBSSxhQUFhLFFBQVEsR0FBRSxHQUFHLGlCQUFpQjtBQUFJLGVBQUUsS0FBSyxXQUFXLEdBQUUsR0FBRztBQUFBLG1CQUNqRSxHQUFFLFdBQVcsR0FBRztBQUN6QixhQUFFLEtBQUssR0FBRSxHQUFHO0FBQ1osY0FBSSxHQUFFLEdBQUcsV0FBVztBQUFHLGVBQUUsS0FBSyxHQUFFLEdBQUc7QUFDbkMsY0FBSSxHQUFFLE9BQU8sU0FBUyxHQUFFLEdBQUcsV0FBVztBQUFHLGVBQUUsS0FBSyxHQUFFLEdBQUc7QUFDckQsY0FBSSxhQUFhLFFBQVEsR0FBRSxHQUFHLGlCQUFpQjtBQUFJLGVBQUUsS0FBSyxXQUFXLEdBQUUsR0FBRztBQUMxRSxjQUFJLGFBQWEsUUFBUSxHQUFFLEdBQUcsaUJBQWlCO0FBQUksZUFBRSxLQUFLLFdBQVcsR0FBRSxHQUFHO0FBQUE7QUFHNUUsZUFBTyxHQUFFLEtBQUs7QUFBQTtBQUdoQixhQUFPLEtBQUssUUFBUSxhQUFhLEtBQUssUUFBUSxlQUFlLEtBQUssZ0JBQWdCO0FBQUE7QUFBQSxLQUVuRjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyx5QkFBeUIsTUFBTTtBQUNwQyxVQUFJLEtBQUssUUFBUSxTQUFTLGtCQUFrQixLQUFLLFFBQVEsMEJBQTBCO0FBQ2pGLGVBQU8sS0FBSyx3QkFBd0I7QUFBQTtBQUd0QyxhQUFPLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxLQUFLLGNBQWMsVUFBVSxLQUFLLGNBQWMsUUFBUSxRQUFRO0FBQUE7QUFBQSxLQUVoRztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTywrQkFBK0IsT0FBTztBQUMzQyxVQUFJLFFBQVE7QUFFWixVQUFJLENBQUM7QUFBTyxlQUFPO0FBQ25CLFVBQUk7QUFDSixZQUFNLFFBQVEsU0FBVSxNQUFNO0FBQzVCLFlBQUk7QUFBTztBQUVYLFlBQUksYUFBYSxNQUFNLG1CQUFtQjtBQUUxQyxZQUFJLENBQUMsTUFBTSxRQUFRLGlCQUFpQixNQUFNLGdCQUFnQjtBQUFhLGtCQUFRO0FBQUE7QUFHakYsVUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLGVBQWU7QUFDeEMsY0FBTSxRQUFRLFNBQVUsTUFBTTtBQUM1QixjQUFJO0FBQU87QUFFWCxjQUFJLFVBQVUsTUFBTSx3QkFBd0I7QUFFNUMsY0FBSSxNQUFNLGdCQUFnQjtBQUFVLG1CQUFPLFFBQVE7QUFDbkQsa0JBQVEsTUFBTSxRQUFRLGNBQWMsS0FBSyxTQUFVLGNBQWM7QUFDL0QsZ0JBQUksYUFBYSxRQUFRLGFBQWE7QUFBRyxxQkFBTztBQUFBO0FBQUE7QUFBQTtBQUt0RCxVQUFJLENBQUM7QUFBTyxnQkFBUSxLQUFLLGlCQUFpQixLQUFLLFFBQVEsYUFBYTtBQUNwRSxhQUFPO0FBQUE7QUFBQSxLQUVSO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLDBCQUEwQixXQUFXLE1BQU07QUFDaEQsVUFBSSxDQUFDO0FBQVcsZUFBTztBQUN2QixVQUFJLE9BQU8sY0FBYztBQUFZLG9CQUFZLFVBQVU7QUFDM0QsVUFBSSxPQUFPLGNBQWM7QUFBVSxvQkFBWSxDQUFDO0FBQ2hELFVBQUksT0FBTyxVQUFVLFNBQVMsTUFBTSxlQUFlO0FBQWtCLGVBQU87QUFDNUUsVUFBSSxDQUFDO0FBQU0sZUFBTyxVQUFVLGNBQWM7QUFDMUMsVUFBSSxRQUFRLFVBQVU7QUFDdEIsVUFBSSxDQUFDO0FBQU8sZ0JBQVEsVUFBVSxLQUFLLHNCQUFzQjtBQUN6RCxVQUFJLENBQUM7QUFBTyxnQkFBUSxVQUFVLEtBQUssbUJBQW1CO0FBQ3RELFVBQUksQ0FBQztBQUFPLGdCQUFRLFVBQVUsS0FBSyx3QkFBd0I7QUFDM0QsVUFBSSxDQUFDO0FBQU8sZ0JBQVEsVUFBVTtBQUM5QixhQUFPLFNBQVM7QUFBQTtBQUFBLEtBRWpCO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLDRCQUE0QixNQUFNLGNBQWM7QUFDckQsVUFBSSxTQUFTO0FBRWIsVUFBSSxnQkFBZ0IsS0FBSyxpQkFBaUIsZ0JBQWdCLEtBQUssUUFBUSxlQUFlLElBQUk7QUFDMUYsVUFBSSxRQUFRO0FBRVosVUFBSSxVQUFVLGtCQUFpQixHQUFHO0FBQ2hDLFlBQUksQ0FBQztBQUFHO0FBRVIsWUFBSSxPQUFPLGdCQUFnQixJQUFJO0FBQzdCLGdCQUFNLEtBQUs7QUFBQSxlQUNOO0FBQ0wsaUJBQU8sT0FBTyxLQUFLLHVEQUF1RCxPQUFPO0FBQUE7QUFBQTtBQUlyRixVQUFJLE9BQU8sU0FBUyxZQUFZLEtBQUssUUFBUSxPQUFPLElBQUk7QUFDdEQsWUFBSSxLQUFLLFFBQVEsU0FBUztBQUFnQixrQkFBUSxLQUFLLG1CQUFtQjtBQUMxRSxZQUFJLEtBQUssUUFBUSxTQUFTLGtCQUFrQixLQUFLLFFBQVEsU0FBUztBQUFlLGtCQUFRLEtBQUssc0JBQXNCO0FBQ3BILFlBQUksS0FBSyxRQUFRLFNBQVM7QUFBZSxrQkFBUSxLQUFLLHdCQUF3QjtBQUFBLGlCQUNyRSxPQUFPLFNBQVMsVUFBVTtBQUNuQyxnQkFBUSxLQUFLLG1CQUFtQjtBQUFBO0FBR2xDLG9CQUFjLFFBQVEsU0FBVSxLQUFJO0FBQ2xDLFlBQUksTUFBTSxRQUFRLE9BQU07QUFBRyxrQkFBUSxPQUFPLG1CQUFtQjtBQUFBO0FBRS9ELGFBQU87QUFBQTtBQUFBO0FBSVgsU0FBTztBQUFBO0FBR1QsSUFBSSxPQUFPLENBQUM7QUFBQSxFQUNWLE1BQU0sQ0FBQyxPQUFPLE1BQU0sTUFBTSxPQUFPLE1BQU0sT0FBTyxPQUFPLE1BQU0sT0FBTyxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNO0FBQUEsRUFDakksSUFBSSxDQUFDLEdBQUc7QUFBQSxFQUNSLElBQUk7QUFBQSxHQUNIO0FBQUEsRUFDRCxNQUFNLENBQUMsTUFBTSxNQUFNLE9BQU8sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sT0FBTyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sT0FBTyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE9BQU8sTUFBTSxNQUFNLE1BQU0sT0FBTyxPQUFPLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxPQUFPLE1BQU0sT0FBTyxPQUFPLE1BQU0sU0FBUyxNQUFNLE9BQU8sTUFBTSxNQUFNLE1BQU0sT0FBTyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNO0FBQUEsRUFDelksSUFBSSxDQUFDLEdBQUc7QUFBQSxFQUNSLElBQUk7QUFBQSxHQUNIO0FBQUEsRUFDRCxNQUFNLENBQUMsTUFBTSxNQUFNLE9BQU8sTUFBTSxNQUFNLE1BQU0sTUFBTSxPQUFPLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE9BQU8sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU07QUFBQSxFQUN4SSxJQUFJLENBQUM7QUFBQSxFQUNMLElBQUk7QUFBQSxHQUNIO0FBQUEsRUFDRCxNQUFNLENBQUMsTUFBTSxNQUFNLE9BQU8sTUFBTSxNQUFNLE1BQU0sTUFBTTtBQUFBLEVBQ2xELElBQUksQ0FBQyxHQUFHLEdBQUc7QUFBQSxFQUNYLElBQUk7QUFBQSxHQUNIO0FBQUEsRUFDRCxNQUFNLENBQUM7QUFBQSxFQUNQLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUk7QUFBQSxFQUNyQixJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDLE1BQU07QUFBQSxFQUNiLElBQUksQ0FBQyxHQUFHLEdBQUc7QUFBQSxFQUNYLElBQUk7QUFBQSxHQUNIO0FBQUEsRUFDRCxNQUFNLENBQUMsT0FBTztBQUFBLEVBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRztBQUFBLEVBQ1gsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHO0FBQUEsRUFDZCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRztBQUFBLEVBQ1IsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFBQSxFQUNqQixJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUc7QUFBQSxFQUNkLElBQUk7QUFBQSxHQUNIO0FBQUEsRUFDRCxNQUFNLENBQUM7QUFBQSxFQUNQLElBQUksQ0FBQyxHQUFHO0FBQUEsRUFDUixJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRztBQUFBLEVBQ1IsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHO0FBQUEsRUFDZCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHO0FBQUEsRUFDWCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHO0FBQUEsRUFDWCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRztBQUFBLEVBQ1IsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRztBQUFBLEVBQ1gsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJO0FBQUEsRUFDZixJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDO0FBQUEsRUFDUCxJQUFJLENBQUMsR0FBRztBQUFBLEVBQ1IsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRztBQUFBLEVBQ1gsSUFBSTtBQUFBLEdBQ0g7QUFBQSxFQUNELE1BQU0sQ0FBQztBQUFBLEVBQ1AsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHO0FBQUEsRUFDZCxJQUFJO0FBQUEsR0FDSDtBQUFBLEVBQ0QsTUFBTSxDQUFDLE1BQU07QUFBQSxFQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSTtBQUFBLEVBQ2YsSUFBSTtBQUFBO0FBRU4sSUFBSSxxQkFBcUI7QUFBQSxFQUN2QixHQUFHLFdBQVcsSUFBRztBQUNmLFdBQU8sT0FBTyxLQUFJO0FBQUE7QUFBQSxFQUVwQixHQUFHLFlBQVcsSUFBRztBQUNmLFdBQU8sT0FBTyxNQUFLO0FBQUE7QUFBQSxFQUVyQixHQUFHLFlBQVcsSUFBRztBQUNmLFdBQU87QUFBQTtBQUFBLEVBRVQsR0FBRyxZQUFXLElBQUc7QUFDZixXQUFPLE9BQU8sS0FBSSxNQUFNLEtBQUssS0FBSSxPQUFPLEtBQUssSUFBSSxLQUFJLE1BQU0sS0FBSyxLQUFJLE1BQU0sS0FBTSxNQUFJLE1BQU0sTUFBTSxLQUFJLE9BQU8sTUFBTSxJQUFJO0FBQUE7QUFBQSxFQUV2SCxHQUFHLFlBQVcsSUFBRztBQUNmLFdBQU8sT0FBTyxNQUFLLElBQUksSUFBSSxNQUFLLElBQUksSUFBSSxNQUFLLElBQUksSUFBSSxLQUFJLE9BQU8sS0FBSyxLQUFJLE9BQU8sS0FBSyxJQUFJLEtBQUksT0FBTyxLQUFLLElBQUk7QUFBQTtBQUFBLEVBRS9HLEdBQUcsWUFBVyxJQUFHO0FBQ2YsV0FBTyxPQUFPLE1BQUssSUFBSSxJQUFJLE1BQUssS0FBSyxNQUFLLElBQUksSUFBSTtBQUFBO0FBQUEsRUFFcEQsR0FBRyxZQUFXLElBQUc7QUFDZixXQUFPLE9BQU8sTUFBSyxJQUFJLElBQUksS0FBSSxNQUFNLEtBQUssS0FBSSxNQUFNLEtBQU0sTUFBSSxNQUFNLE1BQU0sS0FBSSxPQUFPLE1BQU0sSUFBSTtBQUFBO0FBQUEsRUFFakcsR0FBRyxZQUFXLElBQUc7QUFDZixXQUFPLE9BQU8sTUFBSyxJQUFJLElBQUksTUFBSyxJQUFJLElBQUksTUFBSyxLQUFLLE1BQUssS0FBSyxJQUFJO0FBQUE7QUFBQSxFQUVsRSxHQUFHLFlBQVcsSUFBRztBQUNmLFdBQU8sT0FBTyxNQUFLO0FBQUE7QUFBQSxFQUVyQixJQUFJLGFBQVcsSUFBRztBQUNoQixXQUFPLE9BQU8sTUFBSyxJQUFJLElBQUksTUFBSyxJQUFJLElBQUksS0FBSSxJQUFJLElBQUksS0FBSSxLQUFLLElBQUk7QUFBQTtBQUFBLEVBRW5FLElBQUksYUFBVyxJQUFHO0FBQ2hCLFdBQU8sT0FBTyxNQUFLLEtBQUssTUFBSyxLQUFLLElBQUksTUFBSyxLQUFLLE1BQUssS0FBSyxJQUFJLEtBQUksS0FBSyxLQUFJLEtBQUssSUFBSTtBQUFBO0FBQUEsRUFFdEYsSUFBSSxhQUFXLElBQUc7QUFDaEIsV0FBTyxPQUFPLEtBQUksTUFBTSxLQUFLLEtBQUksT0FBTztBQUFBO0FBQUEsRUFFMUMsSUFBSSxhQUFXLElBQUc7QUFDaEIsV0FBTyxPQUFPLE9BQU07QUFBQTtBQUFBLEVBRXRCLElBQUksYUFBVyxJQUFHO0FBQ2hCLFdBQU8sT0FBTyxNQUFLLElBQUksSUFBSSxNQUFLLElBQUksSUFBSSxNQUFLLElBQUksSUFBSTtBQUFBO0FBQUEsRUFFdkQsSUFBSSxhQUFXLElBQUc7QUFDaEIsV0FBTyxPQUFPLEtBQUksTUFBTSxLQUFLLEtBQUksT0FBTyxLQUFLLElBQUksS0FBSSxNQUFNLEtBQU0sTUFBSSxNQUFNLE1BQU0sS0FBSSxPQUFPLE1BQU0sSUFBSTtBQUFBO0FBQUEsRUFFeEcsSUFBSSxhQUFXLElBQUc7QUFDaEIsV0FBTyxPQUFPLEtBQUksTUFBTSxLQUFLLEtBQUksT0FBTyxLQUFLLElBQUksT0FBTSxJQUFJLElBQUk7QUFBQTtBQUFBLEVBRWpFLElBQUksYUFBVyxJQUFHO0FBQ2hCLFdBQU8sT0FBTyxNQUFLLEtBQUssS0FBSSxNQUFNLEtBQUssS0FBSSxPQUFPLEtBQUssSUFBSTtBQUFBO0FBQUEsRUFFN0QsSUFBSSxhQUFXLElBQUc7QUFDaEIsV0FBTyxPQUFPLE1BQUssSUFBSSxJQUFJLE1BQUssSUFBSSxJQUFJO0FBQUE7QUFBQSxFQUUxQyxJQUFJLGFBQVcsSUFBRztBQUNoQixXQUFPLE9BQU8sTUFBSyxJQUFJLElBQUksTUFBSyxLQUFLLEtBQUksTUFBTSxLQUFLLEtBQUksTUFBTSxLQUFLLElBQUksS0FBSSxNQUFNLE1BQU0sS0FBSSxNQUFNLEtBQUssSUFBSTtBQUFBO0FBQUEsRUFFNUcsSUFBSSxhQUFXLElBQUc7QUFDaEIsV0FBTyxPQUFPLE1BQUssSUFBSSxJQUFJLE1BQUssS0FBSyxLQUFJLE1BQU0sS0FBSyxLQUFJLE1BQU0sS0FBSyxJQUFJO0FBQUE7QUFBQSxFQUV6RSxJQUFJLGFBQVcsSUFBRztBQUNoQixXQUFPLE9BQU8sS0FBSSxPQUFPLElBQUksSUFBSSxLQUFJLE9BQU8sSUFBSSxJQUFJLEtBQUksT0FBTyxLQUFLLEtBQUksT0FBTyxJQUFJLElBQUk7QUFBQTtBQUFBLEVBRXpGLElBQUksYUFBVyxJQUFHO0FBQ2hCLFdBQU8sT0FBTyxNQUFLLElBQUksSUFBSSxNQUFLLElBQUksSUFBSyxNQUFJLEtBQUssS0FBSSxPQUFPLEtBQUksTUFBTSxJQUFJLElBQUk7QUFBQTtBQUFBO0FBR25GLElBQUkseUJBQXlCLENBQUMsTUFBTSxNQUFNO0FBQzFDLElBQUksZ0JBQWdCO0FBQUEsRUFDbEIsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBO0FBR1QsdUJBQXVCO0FBQ3JCLE1BQUksUUFBUTtBQUNaLE9BQUssUUFBUSxTQUFVLEtBQUs7QUFDMUIsUUFBSSxLQUFLLFFBQVEsU0FBVSxJQUFHO0FBQzVCLFlBQU0sTUFBSztBQUFBLFFBQ1QsU0FBUyxJQUFJO0FBQUEsUUFDYixTQUFTLG1CQUFtQixJQUFJO0FBQUE7QUFBQTtBQUFBO0FBSXRDLFNBQU87QUFBQTtBQUdULElBQUksaUJBQWlCLFdBQVk7QUFDL0IsMkJBQXdCLGVBQWU7QUFDckMsUUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUVsRixvQkFBZ0IsTUFBTTtBQUV0QixTQUFLLGdCQUFnQjtBQUNyQixTQUFLLFVBQVU7QUFDZixTQUFLLFNBQVMsV0FBVyxPQUFPO0FBRWhDLFFBQUssRUFBQyxLQUFLLFFBQVEscUJBQXFCLEtBQUssUUFBUSxzQkFBc0IsU0FBVSxRQUFPLFNBQVMsZUFBZSxDQUFDLEtBQUssY0FBYztBQUN0SSxXQUFLLFFBQVEsb0JBQW9CO0FBQ2pDLFdBQUssT0FBTyxNQUFNO0FBQUE7QUFHcEIsU0FBSyxRQUFRO0FBQUE7QUFHZixlQUFhLGlCQUFnQixDQUFDO0FBQUEsSUFDNUIsS0FBSztBQUFBLElBQ0wsT0FBTyxpQkFBaUIsS0FBSyxLQUFLO0FBQ2hDLFdBQUssTUFBTSxPQUFPO0FBQUE7QUFBQSxLQUVuQjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxpQkFBaUIsTUFBTTtBQUM1QixVQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBRWxGLFVBQUksS0FBSyxvQkFBb0I7QUFDM0IsWUFBSTtBQUNGLGlCQUFPLElBQUksS0FBSyxZQUFZLE1BQU07QUFBQSxZQUNoQyxNQUFNLFFBQVEsVUFBVSxZQUFZO0FBQUE7QUFBQSxpQkFFL0IsU0FBUDtBQUNBO0FBQUE7QUFBQTtBQUlKLGFBQU8sS0FBSyxNQUFNLFNBQVMsS0FBSyxNQUFNLEtBQUssY0FBYyx3QkFBd0I7QUFBQTtBQUFBLEtBRWxGO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLHFCQUFxQixNQUFNO0FBQ2hDLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsVUFBSSxPQUFPLEtBQUssUUFBUSxNQUFNO0FBRTlCLFVBQUksS0FBSyxvQkFBb0I7QUFDM0IsZUFBTyxRQUFRLEtBQUssa0JBQWtCLGlCQUFpQixTQUFTO0FBQUE7QUFHbEUsYUFBTyxRQUFRLEtBQUssUUFBUSxTQUFTO0FBQUE7QUFBQSxLQUV0QztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyw2QkFBNkIsTUFBTSxLQUFLO0FBQzdDLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsYUFBTyxLQUFLLFlBQVksTUFBTSxTQUFTLElBQUksU0FBVSxRQUFRO0FBQzNELGVBQU8sR0FBRyxPQUFPLEtBQUssT0FBTztBQUFBO0FBQUE7QUFBQSxLQUdoQztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxxQkFBcUIsTUFBTTtBQUNoQyxVQUFJLFFBQVE7QUFFWixVQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQ2xGLFVBQUksT0FBTyxLQUFLLFFBQVEsTUFBTTtBQUU5QixVQUFJLENBQUMsTUFBTTtBQUNULGVBQU87QUFBQTtBQUdULFVBQUksS0FBSyxvQkFBb0I7QUFDM0IsZUFBTyxLQUFLLGtCQUFrQixpQkFBaUIsS0FBSyxTQUFVLGlCQUFpQixpQkFBaUI7QUFDOUYsaUJBQU8sY0FBYyxtQkFBbUIsY0FBYztBQUFBLFdBQ3JELElBQUksU0FBVSxnQkFBZ0I7QUFDL0IsaUJBQU8sR0FBRyxPQUFPLE1BQU0sUUFBUSxTQUFTLE9BQU87QUFBQTtBQUFBO0FBSW5ELGFBQU8sS0FBSyxRQUFRLElBQUksU0FBVSxRQUFRO0FBQ3hDLGVBQU8sTUFBTSxVQUFVLE1BQU0sUUFBUTtBQUFBO0FBQUE7QUFBQSxLQUd4QztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxtQkFBbUIsTUFBTSxPQUFPO0FBQ3JDLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsVUFBSSxPQUFPLEtBQUssUUFBUSxNQUFNO0FBRTlCLFVBQUksTUFBTTtBQUNSLFlBQUksS0FBSyxvQkFBb0I7QUFDM0IsaUJBQU8sR0FBRyxPQUFPLEtBQUssUUFBUSxTQUFTLE9BQU8sS0FBSyxPQUFPO0FBQUE7QUFHNUQsZUFBTyxLQUFLLHlCQUF5QixNQUFNO0FBQUE7QUFHN0MsV0FBSyxPQUFPLEtBQUssNkJBQTZCLE9BQU87QUFDckQsYUFBTztBQUFBO0FBQUEsS0FFUjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxrQ0FBa0MsTUFBTSxPQUFPO0FBQ3BELFVBQUksU0FBUztBQUViLFVBQUksTUFBTSxLQUFLLFFBQVEsS0FBSyxRQUFRLFNBQVMsS0FBSyxRQUFRLEtBQUssSUFBSTtBQUNuRSxVQUFJLFNBQVMsS0FBSyxRQUFRO0FBRTFCLFVBQUksS0FBSyxRQUFRLHdCQUF3QixLQUFLLFFBQVEsV0FBVyxLQUFLLEtBQUssUUFBUSxPQUFPLEdBQUc7QUFDM0YsWUFBSSxXQUFXLEdBQUc7QUFDaEIsbUJBQVM7QUFBQSxtQkFDQSxXQUFXLEdBQUc7QUFDdkIsbUJBQVM7QUFBQTtBQUFBO0FBSWIsVUFBSSxlQUFlLHlCQUF3QjtBQUN6QyxlQUFPLE9BQU8sUUFBUSxXQUFXLE9BQU8sYUFBYSxPQUFPLFFBQVEsVUFBVSxPQUFPLGFBQWEsT0FBTztBQUFBO0FBRzNHLFVBQUksS0FBSyxRQUFRLHNCQUFzQixNQUFNO0FBQzNDLFlBQUksV0FBVztBQUFHLGlCQUFPO0FBQ3pCLFlBQUksT0FBTyxXQUFXO0FBQVUsaUJBQU8sV0FBVyxPQUFPLE9BQU87QUFDaEUsZUFBTztBQUFBLGlCQUNFLEtBQUssUUFBUSxzQkFBc0IsTUFBTTtBQUNsRCxlQUFPO0FBQUEsaUJBQ0UsS0FBSyxRQUFRLHdCQUF3QixLQUFLLFFBQVEsV0FBVyxLQUFLLEtBQUssUUFBUSxPQUFPLEdBQUc7QUFDbEcsZUFBTztBQUFBO0FBR1QsYUFBTyxLQUFLLFFBQVEsV0FBVyxJQUFJLGFBQWEsS0FBSyxRQUFRLFVBQVUsSUFBSSxhQUFhLElBQUk7QUFBQTtBQUFBLEtBRTdGO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLDRCQUE0QjtBQUNqQyxhQUFPLENBQUMsdUJBQXVCLFNBQVMsS0FBSyxRQUFRO0FBQUE7QUFBQTtBQUl6RCxTQUFPO0FBQUE7QUFHVCxtQkFBbUIsUUFBUSxnQkFBZ0I7QUFBRSxNQUFJLE9BQU8sT0FBTyxLQUFLO0FBQVMsTUFBSSxPQUFPLHVCQUF1QjtBQUFFLFFBQUksVUFBVSxPQUFPLHNCQUFzQjtBQUFTLFFBQUksZ0JBQWdCO0FBQUUsZ0JBQVUsUUFBUSxPQUFPLFNBQVUsS0FBSztBQUFFLGVBQU8sT0FBTyx5QkFBeUIsUUFBUSxLQUFLO0FBQUE7QUFBQTtBQUFrQixTQUFLLEtBQUssTUFBTSxNQUFNO0FBQUE7QUFBWSxTQUFPO0FBQUE7QUFFcFYseUJBQXlCLFFBQVE7QUFBRSxXQUFTLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFLO0FBQUUsUUFBSSxTQUFTLFVBQVUsTUFBTSxPQUFPLFVBQVUsS0FBSztBQUFJLFFBQUksSUFBSSxHQUFHO0FBQUUsZ0JBQVUsT0FBTyxTQUFTLE1BQU0sUUFBUSxTQUFVLEtBQUs7QUFBRSx3QkFBZ0IsUUFBUSxLQUFLLE9BQU87QUFBQTtBQUFBLGVBQXNCLE9BQU8sMkJBQTJCO0FBQUUsYUFBTyxpQkFBaUIsUUFBUSxPQUFPLDBCQUEwQjtBQUFBLFdBQWlCO0FBQUUsZ0JBQVUsT0FBTyxTQUFTLFFBQVEsU0FBVSxLQUFLO0FBQUUsZUFBTyxlQUFlLFFBQVEsS0FBSyxPQUFPLHlCQUF5QixRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQWUsU0FBTztBQUFBO0FBRW5oQixJQUFJLGVBQWUsV0FBWTtBQUM3QiwyQkFBd0I7QUFDdEIsUUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUVsRixvQkFBZ0IsTUFBTTtBQUV0QixTQUFLLFNBQVMsV0FBVyxPQUFPO0FBQ2hDLFNBQUssVUFBVTtBQUVmLFNBQUssU0FBUyxRQUFRLGlCQUFpQixRQUFRLGNBQWMsVUFBVSxTQUFVLE9BQU87QUFDdEYsYUFBTztBQUFBO0FBR1QsU0FBSyxLQUFLO0FBQUE7QUFHWixlQUFhLGVBQWMsQ0FBQztBQUFBLElBQzFCLEtBQUs7QUFBQSxJQUNMLE9BQU8sZ0JBQWdCO0FBQ3JCLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsVUFBSSxDQUFDLFFBQVE7QUFBZSxnQkFBUSxnQkFBZ0I7QUFBQSxVQUNsRCxhQUFhO0FBQUE7QUFFZixVQUFJLFFBQVEsUUFBUTtBQUNwQixXQUFLLFNBQVMsTUFBTSxXQUFXLFNBQVksTUFBTSxTQUFTO0FBQzFELFdBQUssY0FBYyxNQUFNLGdCQUFnQixTQUFZLE1BQU0sY0FBYztBQUN6RSxXQUFLLHNCQUFzQixNQUFNLHdCQUF3QixTQUFZLE1BQU0sc0JBQXNCO0FBQ2pHLFdBQUssU0FBUyxNQUFNLFNBQVMsWUFBWSxNQUFNLFVBQVUsTUFBTSxpQkFBaUI7QUFDaEYsV0FBSyxTQUFTLE1BQU0sU0FBUyxZQUFZLE1BQU0sVUFBVSxNQUFNLGlCQUFpQjtBQUNoRixXQUFLLGtCQUFrQixNQUFNLGtCQUFrQixNQUFNLGtCQUFrQixNQUFNLG1CQUFtQjtBQUNoRyxXQUFLLGlCQUFpQixNQUFNLGlCQUFpQixLQUFLLE1BQU0sa0JBQWtCO0FBQzFFLFdBQUssaUJBQWlCLEtBQUssaUJBQWlCLEtBQUssTUFBTSxrQkFBa0I7QUFDekUsV0FBSyxnQkFBZ0IsTUFBTSxnQkFBZ0IsWUFBWSxNQUFNLGlCQUFpQixNQUFNLHdCQUF3QixZQUFZO0FBQ3hILFdBQUssZ0JBQWdCLE1BQU0sZ0JBQWdCLFlBQVksTUFBTSxpQkFBaUIsTUFBTSx3QkFBd0IsWUFBWTtBQUN4SCxXQUFLLDBCQUEwQixNQUFNLDBCQUEwQixNQUFNLDBCQUEwQixNQUFNLDJCQUEyQjtBQUNoSSxXQUFLLGNBQWMsTUFBTSxjQUFjLE1BQU0sY0FBYztBQUMzRCxXQUFLLGVBQWUsTUFBTSxpQkFBaUIsU0FBWSxNQUFNLGVBQWU7QUFDNUUsV0FBSztBQUFBO0FBQUEsS0FFTjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxpQkFBaUI7QUFDdEIsVUFBSSxLQUFLO0FBQVMsYUFBSyxLQUFLLEtBQUs7QUFBQTtBQUFBLEtBRWxDO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLHVCQUF1QjtBQUM1QixVQUFJLFlBQVksR0FBRyxPQUFPLEtBQUssUUFBUSxTQUFTLE9BQU8sS0FBSztBQUM1RCxXQUFLLFNBQVMsSUFBSSxPQUFPLFdBQVc7QUFDcEMsVUFBSSxvQkFBb0IsR0FBRyxPQUFPLEtBQUssUUFBUSxPQUFPLEtBQUssZ0JBQWdCLFNBQVMsT0FBTyxLQUFLLGdCQUFnQixPQUFPLEtBQUs7QUFDNUgsV0FBSyxpQkFBaUIsSUFBSSxPQUFPLG1CQUFtQjtBQUNwRCxVQUFJLG1CQUFtQixHQUFHLE9BQU8sS0FBSyxlQUFlLFNBQVMsT0FBTyxLQUFLO0FBQzFFLFdBQUssZ0JBQWdCLElBQUksT0FBTyxrQkFBa0I7QUFBQTtBQUFBLEtBRW5EO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLHFCQUFxQixLQUFLLE1BQU0sS0FBSyxTQUFTO0FBQ25ELFVBQUksUUFBUTtBQUVaLFVBQUk7QUFDSixVQUFJO0FBQ0osVUFBSTtBQUNKLFVBQUksY0FBYyxLQUFLLFdBQVcsS0FBSyxRQUFRLGlCQUFpQixLQUFLLFFBQVEsY0FBYyxvQkFBb0I7QUFFL0cseUJBQW1CLEtBQUs7QUFDdEIsZUFBTyxJQUFJLFFBQVEsT0FBTztBQUFBO0FBRzVCLFVBQUksZUFBZSx1QkFBc0IsS0FBSztBQUM1QyxZQUFJLElBQUksUUFBUSxNQUFNLG1CQUFtQixHQUFHO0FBQzFDLGNBQUksT0FBTyxvQkFBb0IsTUFBTSxhQUFhO0FBQ2xELGlCQUFPLE1BQU0sZUFBZSxNQUFNLE9BQU8sTUFBTSxRQUFXLEtBQUssZ0JBQWdCLGdCQUFnQixnQkFBZ0IsSUFBSSxVQUFVLE9BQU8sSUFBSTtBQUFBLFlBQ3RJLGtCQUFrQjtBQUFBLGdCQUNkO0FBQUE7QUFHUixZQUFJLEtBQUksSUFBSSxNQUFNLE1BQU07QUFDeEIsWUFBSSxJQUFJLEdBQUUsUUFBUTtBQUNsQixZQUFJLEtBQUksR0FBRSxLQUFLLE1BQU0saUJBQWlCO0FBQ3RDLGVBQU8sTUFBTSxPQUFPLG9CQUFvQixNQUFNLGFBQWEsSUFBSSxJQUFHLEtBQUssZ0JBQWdCLGdCQUFnQixnQkFBZ0IsSUFBSSxVQUFVLE9BQU8sSUFBSTtBQUFBLFVBQzlJLGtCQUFrQjtBQUFBO0FBQUE7QUFJdEIsV0FBSztBQUNMLFVBQUksOEJBQThCLFdBQVcsUUFBUSwrQkFBK0IsS0FBSyxRQUFRO0FBQ2pHLFVBQUksa0JBQWtCLFdBQVcsUUFBUSxpQkFBaUIsUUFBUSxjQUFjLG1CQUFtQixLQUFLLFFBQVEsY0FBYztBQUM5SCxVQUFJLFFBQVEsQ0FBQztBQUFBLFFBQ1gsT0FBTyxLQUFLO0FBQUEsUUFDWixXQUFXLG1CQUFtQixLQUFLO0FBQ2pDLGlCQUFPLFVBQVU7QUFBQTtBQUFBLFNBRWxCO0FBQUEsUUFDRCxPQUFPLEtBQUs7QUFBQSxRQUNaLFdBQVcsbUJBQW1CLEtBQUs7QUFDakMsaUJBQU8sTUFBTSxjQUFjLFVBQVUsTUFBTSxPQUFPLFFBQVEsVUFBVTtBQUFBO0FBQUE7QUFHeEUsWUFBTSxRQUFRLFNBQVUsTUFBTTtBQUM1QixtQkFBVztBQUVYLGVBQU8sU0FBUSxLQUFLLE1BQU0sS0FBSyxNQUFNO0FBQ25DLGtCQUFRLGFBQWEsT0FBTSxHQUFHO0FBRTlCLGNBQUksVUFBVSxRQUFXO0FBQ3ZCLGdCQUFJLE9BQU8sZ0NBQWdDLFlBQVk7QUFDckQsa0JBQUksT0FBTyw0QkFBNEIsS0FBSyxRQUFPO0FBQ25ELHNCQUFRLE9BQU8sU0FBUyxXQUFXLE9BQU87QUFBQSx1QkFDakMsaUJBQWlCO0FBQzFCLHNCQUFRLE9BQU07QUFDZDtBQUFBLG1CQUNLO0FBQ0wsb0JBQU0sT0FBTyxLQUFLLDhCQUE4QixPQUFPLE9BQU0sSUFBSSx1QkFBdUIsT0FBTztBQUUvRixzQkFBUTtBQUFBO0FBQUEscUJBRUQsT0FBTyxVQUFVLFlBQVksQ0FBQyxNQUFNLHFCQUFxQjtBQUNsRSxvQkFBUSxXQUFXO0FBQUE7QUFHckIsY0FBSSxZQUFZLEtBQUssVUFBVTtBQUMvQixnQkFBTSxJQUFJLFFBQVEsT0FBTSxJQUFJO0FBRTVCLGNBQUksaUJBQWlCO0FBQ25CLGlCQUFLLE1BQU0sYUFBYSxVQUFVO0FBQ2xDLGlCQUFLLE1BQU0sYUFBYSxPQUFNLEdBQUc7QUFBQSxpQkFDNUI7QUFDTCxpQkFBSyxNQUFNLFlBQVk7QUFBQTtBQUd6QjtBQUVBLGNBQUksWUFBWSxNQUFNLGFBQWE7QUFDakM7QUFBQTtBQUFBO0FBQUE7QUFJTixhQUFPO0FBQUE7QUFBQSxLQUVSO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGNBQWMsS0FBSyxLQUFJO0FBQzVCLFVBQUksU0FBUztBQUViLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsVUFBSTtBQUNKLFVBQUk7QUFFSixVQUFJLGdCQUFnQixnQkFBZ0IsSUFBSTtBQUV4QyxvQkFBYyxxQkFBcUI7QUFDbkMsYUFBTyxjQUFjO0FBRXJCLGdDQUEwQixLQUFLLGtCQUFrQjtBQUMvQyxZQUFJLE1BQU0sS0FBSztBQUNmLFlBQUksSUFBSSxRQUFRLE9BQU87QUFBRyxpQkFBTztBQUNqQyxZQUFJLElBQUksSUFBSSxNQUFNLElBQUksT0FBTyxHQUFHLE9BQU8sS0FBSztBQUM1QyxZQUFJLGdCQUFnQixJQUFJLE9BQU8sRUFBRTtBQUNqQyxjQUFNLEVBQUU7QUFDUix3QkFBZ0IsS0FBSyxZQUFZLGVBQWU7QUFDaEQsd0JBQWdCLGNBQWMsUUFBUSxNQUFNO0FBRTVDLFlBQUk7QUFDRiwwQkFBZ0IsS0FBSyxNQUFNO0FBQzNCLGNBQUk7QUFBa0IsNEJBQWdCLGdCQUFnQixnQkFBZ0IsSUFBSSxtQkFBbUI7QUFBQSxpQkFDdEYsR0FBUDtBQUNBLGVBQUssT0FBTyxLQUFLLG9EQUFvRCxPQUFPLE1BQU07QUFDbEYsaUJBQU8sR0FBRyxPQUFPLEtBQUssT0FBTyxLQUFLLE9BQU87QUFBQTtBQUczQyxlQUFPLGNBQWM7QUFDckIsZUFBTztBQUFBO0FBR1QsYUFBTyxTQUFRLEtBQUssY0FBYyxLQUFLLE1BQU07QUFDM0MsWUFBSSxjQUFhO0FBQ2pCLFlBQUksV0FBVztBQUVmLFlBQUksT0FBTSxHQUFHLFFBQVEsS0FBSyxxQkFBcUIsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFNLEtBQUs7QUFDM0UsY0FBSSxLQUFJLE9BQU0sR0FBRyxNQUFNLEtBQUssaUJBQWlCLElBQUksU0FBVSxNQUFNO0FBQy9ELG1CQUFPLEtBQUs7QUFBQTtBQUVkLGlCQUFNLEtBQUssR0FBRTtBQUNiLHdCQUFhO0FBQ2IscUJBQVc7QUFBQTtBQUdiLGdCQUFRLElBQUcsaUJBQWlCLEtBQUssTUFBTSxPQUFNLEdBQUcsUUFBUSxnQkFBZ0I7QUFDeEUsWUFBSSxTQUFTLE9BQU0sT0FBTyxPQUFPLE9BQU8sVUFBVTtBQUFVLGlCQUFPO0FBQ25FLFlBQUksT0FBTyxVQUFVO0FBQVUsa0JBQVEsV0FBVztBQUVsRCxZQUFJLENBQUMsT0FBTztBQUNWLGVBQUssT0FBTyxLQUFLLHFCQUFxQixPQUFPLE9BQU0sSUFBSSxpQkFBaUIsT0FBTztBQUMvRSxrQkFBUTtBQUFBO0FBR1YsWUFBSSxVQUFVO0FBQ1osa0JBQVEsWUFBVyxPQUFPLFNBQVUsSUFBRyxJQUFHO0FBQ3hDLG1CQUFPLE9BQU8sT0FBTyxJQUFHLElBQUcsUUFBUSxLQUFLLGdCQUFnQixnQkFBZ0IsSUFBSSxVQUFVLElBQUk7QUFBQSxjQUN4RixrQkFBa0IsT0FBTSxHQUFHO0FBQUE7QUFBQSxhQUU1QixNQUFNO0FBQUE7QUFHWCxjQUFNLElBQUksUUFBUSxPQUFNLElBQUk7QUFDNUIsYUFBSyxPQUFPLFlBQVk7QUFBQTtBQUcxQixhQUFPO0FBQUE7QUFBQTtBQUlYLFNBQU87QUFBQTtBQUdULG1CQUFtQixRQUFRLGdCQUFnQjtBQUFFLE1BQUksT0FBTyxPQUFPLEtBQUs7QUFBUyxNQUFJLE9BQU8sdUJBQXVCO0FBQUUsUUFBSSxVQUFVLE9BQU8sc0JBQXNCO0FBQVMsUUFBSSxnQkFBZ0I7QUFBRSxnQkFBVSxRQUFRLE9BQU8sU0FBVSxLQUFLO0FBQUUsZUFBTyxPQUFPLHlCQUF5QixRQUFRLEtBQUs7QUFBQTtBQUFBO0FBQWtCLFNBQUssS0FBSyxNQUFNLE1BQU07QUFBQTtBQUFZLFNBQU87QUFBQTtBQUVwVix5QkFBeUIsUUFBUTtBQUFFLFdBQVMsSUFBSSxHQUFHLElBQUksVUFBVSxRQUFRLEtBQUs7QUFBRSxRQUFJLFNBQVMsVUFBVSxNQUFNLE9BQU8sVUFBVSxLQUFLO0FBQUksUUFBSSxJQUFJLEdBQUc7QUFBRSxnQkFBVSxPQUFPLFNBQVMsTUFBTSxRQUFRLFNBQVUsS0FBSztBQUFFLHdCQUFnQixRQUFRLEtBQUssT0FBTztBQUFBO0FBQUEsZUFBc0IsT0FBTywyQkFBMkI7QUFBRSxhQUFPLGlCQUFpQixRQUFRLE9BQU8sMEJBQTBCO0FBQUEsV0FBaUI7QUFBRSxnQkFBVSxPQUFPLFNBQVMsUUFBUSxTQUFVLEtBQUs7QUFBRSxlQUFPLGVBQWUsUUFBUSxLQUFLLE9BQU8seUJBQXlCLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBZSxTQUFPO0FBQUE7QUFFbmhCLHdCQUF3QixXQUFXO0FBQ2pDLE1BQUksYUFBYSxVQUFVLGNBQWM7QUFDekMsTUFBSSxnQkFBZ0I7QUFFcEIsTUFBSSxVQUFVLFFBQVEsT0FBTyxJQUFJO0FBQy9CLFFBQUksS0FBSSxVQUFVLE1BQU07QUFDeEIsaUJBQWEsR0FBRSxHQUFHLGNBQWM7QUFDaEMsUUFBSSxTQUFTLEdBQUUsR0FBRyxVQUFVLEdBQUcsR0FBRSxHQUFHLFNBQVM7QUFFN0MsUUFBSSxlQUFlLGNBQWMsT0FBTyxRQUFRLE9BQU8sR0FBRztBQUN4RCxVQUFJLENBQUMsY0FBYztBQUFVLHNCQUFjLFdBQVcsT0FBTztBQUFBLGVBQ3BELGVBQWUsa0JBQWtCLE9BQU8sUUFBUSxPQUFPLEdBQUc7QUFDbkUsVUFBSSxDQUFDLGNBQWM7QUFBTyxzQkFBYyxRQUFRLE9BQU87QUFBQSxXQUNsRDtBQUNMLFVBQUksT0FBTyxPQUFPLE1BQU07QUFDeEIsV0FBSyxRQUFRLFNBQVUsS0FBSztBQUMxQixZQUFJLENBQUM7QUFBSztBQUVWLFlBQUksYUFBYSxJQUFJLE1BQU0sTUFDdkIsY0FBYyxTQUFTLGFBQ3ZCLE1BQU0sWUFBWSxJQUNsQixPQUFPLFlBQVksTUFBTTtBQUU3QixZQUFJLE1BQU0sS0FBSyxLQUFLO0FBQ3BCLFlBQUksSUFBSSxXQUFXO0FBQVMsd0JBQWMsSUFBSSxVQUFVO0FBQ3hELFlBQUksSUFBSSxXQUFXO0FBQVEsd0JBQWMsSUFBSSxVQUFVO0FBQ3ZELFlBQUksQ0FBQyxNQUFNLElBQUk7QUFBUyx3QkFBYyxJQUFJLFVBQVUsU0FBUyxJQUFJLFFBQVE7QUFDekUsWUFBSSxDQUFDLGNBQWMsSUFBSTtBQUFTLHdCQUFjLElBQUksVUFBVSxJQUFJO0FBQUE7QUFBQTtBQUFBO0FBS3RFLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQTtBQUFBO0FBQUE7QUFJSixJQUFJLFlBQVksV0FBWTtBQUMxQix3QkFBcUI7QUFDbkIsUUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUVsRixvQkFBZ0IsTUFBTTtBQUV0QixTQUFLLFNBQVMsV0FBVyxPQUFPO0FBQ2hDLFNBQUssVUFBVTtBQUNmLFNBQUssVUFBVTtBQUFBLE1BQ2IsUUFBUSxnQkFBZ0IsS0FBSyxLQUFLLFVBQVM7QUFDekMsZUFBTyxJQUFJLEtBQUssYUFBYSxLQUFLLFVBQVMsT0FBTztBQUFBO0FBQUEsTUFFcEQsVUFBVSxrQkFBa0IsS0FBSyxLQUFLLFVBQVM7QUFDN0MsZUFBTyxJQUFJLEtBQUssYUFBYSxLQUFLLGdCQUFnQixnQkFBZ0IsSUFBSSxXQUFVLElBQUk7QUFBQSxVQUNsRixPQUFPO0FBQUEsWUFDTCxPQUFPO0FBQUE7QUFBQSxNQUViLFVBQVUsa0JBQWtCLEtBQUssS0FBSyxVQUFTO0FBQzdDLGVBQU8sSUFBSSxLQUFLLGVBQWUsS0FBSyxnQkFBZ0IsSUFBSSxXQUFVLE9BQU87QUFBQTtBQUFBLE1BRTNFLGNBQWMsc0JBQXNCLEtBQUssS0FBSyxVQUFTO0FBQ3JELGVBQU8sSUFBSSxLQUFLLG1CQUFtQixLQUFLLGdCQUFnQixJQUFJLFdBQVUsT0FBTyxLQUFLLFNBQVEsU0FBUztBQUFBO0FBQUEsTUFFckcsTUFBTSxjQUFjLEtBQUssS0FBSyxVQUFTO0FBQ3JDLGVBQU8sSUFBSSxLQUFLLFdBQVcsS0FBSyxnQkFBZ0IsSUFBSSxXQUFVLE9BQU87QUFBQTtBQUFBO0FBR3pFLFNBQUssS0FBSztBQUFBO0FBR1osZUFBYSxZQUFXLENBQUM7QUFBQSxJQUN2QixLQUFLO0FBQUEsSUFDTCxPQUFPLGNBQWMsVUFBVTtBQUM3QixVQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQUEsUUFDaEYsZUFBZTtBQUFBO0FBRWpCLFVBQUksUUFBUSxRQUFRO0FBQ3BCLFdBQUssa0JBQWtCLE1BQU0sa0JBQWtCLE1BQU0sa0JBQWtCLE1BQU0sbUJBQW1CO0FBQUE7QUFBQSxLQUVqRztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxhQUFhLE1BQU0sS0FBSTtBQUM1QixXQUFLLFFBQVEsUUFBUTtBQUFBO0FBQUEsS0FFdEI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8saUJBQWdCLE9BQU8sU0FBUyxLQUFLLFNBQVM7QUFDbkQsVUFBSSxRQUFRO0FBRVosVUFBSSxVQUFVLFFBQVEsTUFBTSxLQUFLO0FBRWpDLFVBQUksU0FBUyxRQUFRLE9BQU8sU0FBVSxLQUFLLElBQUc7QUFDNUMsWUFBSSxrQkFBa0IsZUFBZSxLQUNqQyxhQUFhLGdCQUFnQixZQUM3QixnQkFBZ0IsZ0JBQWdCO0FBRXBDLFlBQUksTUFBTSxRQUFRLGFBQWE7QUFDN0IsY0FBSSxZQUFZO0FBRWhCLGNBQUk7QUFDRixnQkFBSSxhQUFhLFdBQVcsUUFBUSxnQkFBZ0IsUUFBUSxhQUFhLFFBQVEscUJBQXFCO0FBQ3RHLGdCQUFJLEtBQUksV0FBVyxVQUFVLFdBQVcsT0FBTyxRQUFRLFVBQVUsUUFBUSxPQUFPO0FBQ2hGLHdCQUFZLE1BQU0sUUFBUSxZQUFZLEtBQUssSUFBRyxnQkFBZ0IsZ0JBQWdCLGdCQUFnQixJQUFJLGdCQUFnQixVQUFVO0FBQUEsbUJBQ3JILFFBQVA7QUFDQSxrQkFBTSxPQUFPLEtBQUs7QUFBQTtBQUdwQixpQkFBTztBQUFBLGVBQ0Y7QUFDTCxnQkFBTSxPQUFPLEtBQUssb0NBQW9DLE9BQU87QUFBQTtBQUcvRCxlQUFPO0FBQUEsU0FDTjtBQUNILGFBQU87QUFBQTtBQUFBO0FBSVgsU0FBTztBQUFBO0FBR1QsbUJBQW1CLFFBQVEsZ0JBQWdCO0FBQUUsTUFBSSxPQUFPLE9BQU8sS0FBSztBQUFTLE1BQUksT0FBTyx1QkFBdUI7QUFBRSxRQUFJLFVBQVUsT0FBTyxzQkFBc0I7QUFBUyxRQUFJLGdCQUFnQjtBQUFFLGdCQUFVLFFBQVEsT0FBTyxTQUFVLEtBQUs7QUFBRSxlQUFPLE9BQU8seUJBQXlCLFFBQVEsS0FBSztBQUFBO0FBQUE7QUFBa0IsU0FBSyxLQUFLLE1BQU0sTUFBTTtBQUFBO0FBQVksU0FBTztBQUFBO0FBRXBWLHlCQUF5QixRQUFRO0FBQUUsV0FBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztBQUFFLFFBQUksU0FBUyxVQUFVLE1BQU0sT0FBTyxVQUFVLEtBQUs7QUFBSSxRQUFJLElBQUksR0FBRztBQUFFLGdCQUFVLE9BQU8sU0FBUyxNQUFNLFFBQVEsU0FBVSxLQUFLO0FBQUUsd0JBQWdCLFFBQVEsS0FBSyxPQUFPO0FBQUE7QUFBQSxlQUFzQixPQUFPLDJCQUEyQjtBQUFFLGFBQU8saUJBQWlCLFFBQVEsT0FBTywwQkFBMEI7QUFBQSxXQUFpQjtBQUFFLGdCQUFVLE9BQU8sU0FBUyxRQUFRLFNBQVUsS0FBSztBQUFFLGVBQU8sZUFBZSxRQUFRLEtBQUssT0FBTyx5QkFBeUIsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFlLFNBQU87QUFBQTtBQUVuaEIsd0JBQXdCLFNBQVM7QUFBRSxNQUFJLDRCQUE0QjtBQUErQixTQUFPLGdDQUFnQztBQUFFLFFBQUksUUFBUSxnQkFBZ0IsVUFBVTtBQUFRLFFBQUksMkJBQTJCO0FBQUUsVUFBSSxZQUFZLGdCQUFnQixNQUFNO0FBQWEsZUFBUyxRQUFRLFVBQVUsT0FBTyxXQUFXO0FBQUEsV0FBbUI7QUFBRSxlQUFTLE1BQU0sTUFBTSxNQUFNO0FBQUE7QUFBYyxXQUFPLDJCQUEyQixNQUFNO0FBQUE7QUFBQTtBQUVoYSx1Q0FBdUM7QUFBRSxNQUFJLE9BQU8sWUFBWSxlQUFlLENBQUMsUUFBUTtBQUFXLFdBQU87QUFBTyxNQUFJLFFBQVEsVUFBVTtBQUFNLFdBQU87QUFBTyxNQUFJLE9BQU8sVUFBVTtBQUFZLFdBQU87QUFBTSxNQUFJO0FBQUUsWUFBUSxVQUFVLFFBQVEsS0FBSyxRQUFRLFVBQVUsU0FBUyxJQUFJLFdBQVk7QUFBQTtBQUFNLFdBQU87QUFBQSxXQUFlLEdBQVA7QUFBWSxXQUFPO0FBQUE7QUFBQTtBQUVqVSxnQkFBZ0IsS0FBSyxNQUFNO0FBQ3pCLE1BQUksUUFBUSxJQUFJLFFBQVE7QUFFeEIsU0FBTyxVQUFVLElBQUk7QUFDbkIsUUFBSSxPQUFPLE9BQU87QUFDbEIsWUFBUSxJQUFJLFFBQVE7QUFBQTtBQUFBO0FBSXhCLElBQUksWUFBWSxTQUFVLGVBQWU7QUFDdkMsWUFBVSxZQUFXO0FBRXJCLE1BQUksU0FBUyxlQUFlO0FBRTVCLHNCQUFtQixTQUFTLE9BQU8sVUFBVTtBQUMzQyxRQUFJO0FBRUosUUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUVsRixvQkFBZ0IsTUFBTTtBQUV0QixZQUFRLE9BQU8sS0FBSztBQUVwQixRQUFJLFFBQVE7QUFDVixtQkFBYSxLQUFLLHVCQUF1QjtBQUFBO0FBRzNDLFVBQU0sVUFBVTtBQUNoQixVQUFNLFFBQVE7QUFDZCxVQUFNLFdBQVc7QUFDakIsVUFBTSxnQkFBZ0IsU0FBUztBQUMvQixVQUFNLFVBQVU7QUFDaEIsVUFBTSxTQUFTLFdBQVcsT0FBTztBQUNqQyxVQUFNLFFBQVE7QUFDZCxVQUFNLFFBQVE7QUFFZCxRQUFJLE1BQU0sV0FBVyxNQUFNLFFBQVEsTUFBTTtBQUN2QyxZQUFNLFFBQVEsS0FBSyxVQUFVLFFBQVEsU0FBUztBQUFBO0FBR2hELFdBQU87QUFBQTtBQUdULGVBQWEsWUFBVyxDQUFDO0FBQUEsSUFDdkIsS0FBSztBQUFBLElBQ0wsT0FBTyxtQkFBbUIsV0FBVyxZQUFZLFNBQVMsVUFBVTtBQUNsRSxVQUFJLFNBQVM7QUFFYixVQUFJLFNBQVM7QUFDYixVQUFJLFVBQVU7QUFDZCxVQUFJLGtCQUFrQjtBQUN0QixVQUFJLG1CQUFtQjtBQUN2QixnQkFBVSxRQUFRLFNBQVUsS0FBSztBQUMvQixZQUFJLG1CQUFtQjtBQUN2QixtQkFBVyxRQUFRLFNBQVUsSUFBSTtBQUMvQixjQUFJLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxPQUFPO0FBRXRDLGNBQUksQ0FBQyxRQUFRLFVBQVUsT0FBTyxNQUFNLGtCQUFrQixLQUFLLEtBQUs7QUFDOUQsbUJBQU8sTUFBTSxRQUFRO0FBQUEscUJBQ1osT0FBTyxNQUFNLFFBQVE7QUFBRztBQUFBLG1CQUFXLE9BQU8sTUFBTSxVQUFVLEdBQUc7QUFDdEUsZ0JBQUksUUFBUSxRQUFRLFFBQVE7QUFBRyxzQkFBUSxLQUFLO0FBQUEsaUJBQ3ZDO0FBQ0wsbUJBQU8sTUFBTSxRQUFRO0FBQ3JCLCtCQUFtQjtBQUNuQixnQkFBSSxRQUFRLFFBQVEsUUFBUTtBQUFHLHNCQUFRLEtBQUs7QUFDNUMsZ0JBQUksT0FBTyxRQUFRLFFBQVE7QUFBRyxxQkFBTyxLQUFLO0FBQzFDLGdCQUFJLGlCQUFpQixRQUFRLE1BQU07QUFBRywrQkFBaUIsS0FBSztBQUFBO0FBQUE7QUFHaEUsWUFBSSxDQUFDO0FBQWtCLDBCQUFnQixLQUFLO0FBQUE7QUFHOUMsVUFBSSxPQUFPLFVBQVUsUUFBUSxRQUFRO0FBQ25DLGFBQUssTUFBTSxLQUFLO0FBQUEsVUFDZDtBQUFBLFVBQ0EsUUFBUTtBQUFBLFVBQ1IsUUFBUTtBQUFBLFVBQ1I7QUFBQTtBQUFBO0FBSUosYUFBTztBQUFBLFFBQ0w7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBO0FBQUEsS0FHSDtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxnQkFBZ0IsTUFBTSxLQUFLLE1BQU07QUFDdEMsVUFBSSxJQUFJLEtBQUssTUFBTTtBQUNuQixVQUFJLE1BQU0sRUFBRTtBQUNaLFVBQUksS0FBSyxFQUFFO0FBQ1gsVUFBSTtBQUFLLGFBQUssS0FBSyxpQkFBaUIsS0FBSyxJQUFJO0FBRTdDLFVBQUksTUFBTTtBQUNSLGFBQUssTUFBTSxrQkFBa0IsS0FBSyxJQUFJO0FBQUE7QUFHeEMsV0FBSyxNQUFNLFFBQVEsTUFBTSxLQUFLO0FBQzlCLFVBQUksVUFBUztBQUNiLFdBQUssTUFBTSxRQUFRLFNBQVUsSUFBRztBQUM5QixpQkFBUyxHQUFFLFFBQVEsQ0FBQyxNQUFNO0FBQzFCLGVBQU8sR0FBRSxTQUFTO0FBQ2xCLFlBQUk7QUFBSyxhQUFFLE9BQU8sS0FBSztBQUV2QixZQUFJLEdBQUUsUUFBUSxXQUFXLEtBQUssQ0FBQyxHQUFFLE1BQU07QUFDckMsaUJBQU8sS0FBSyxHQUFFLFFBQVEsUUFBUSxTQUFVLElBQUc7QUFDekMsZ0JBQUksQ0FBQyxRQUFPO0FBQUksc0JBQU8sTUFBSztBQUU1QixnQkFBSSxHQUFFLE9BQU8sSUFBRyxRQUFRO0FBQ3RCLGlCQUFFLE9BQU8sSUFBRyxRQUFRLFNBQVUsS0FBSTtBQUNoQyxvQkFBSSxRQUFPLElBQUcsUUFBUSxPQUFNO0FBQUcsMEJBQU8sSUFBRyxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBSXBELGFBQUUsT0FBTztBQUVULGNBQUksR0FBRSxPQUFPLFFBQVE7QUFDbkIsZUFBRSxTQUFTLEdBQUU7QUFBQSxpQkFDUjtBQUNMLGVBQUU7QUFBQTtBQUFBO0FBQUE7QUFJUixXQUFLLEtBQUssVUFBVTtBQUNwQixXQUFLLFFBQVEsS0FBSyxNQUFNLE9BQU8sU0FBVSxJQUFHO0FBQzFDLGVBQU8sQ0FBQyxHQUFFO0FBQUE7QUFBQTtBQUFBLEtBR2I7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sZUFBYyxLQUFLLElBQUksUUFBUTtBQUNwQyxVQUFJLFNBQVM7QUFFYixVQUFJLFFBQVEsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQ2hGLFVBQUksT0FBTyxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDL0UsVUFBSSxXQUFXLFVBQVUsU0FBUyxJQUFJLFVBQVUsS0FBSztBQUNyRCxVQUFJLENBQUMsSUFBSTtBQUFRLGVBQU8sU0FBUyxNQUFNO0FBQ3ZDLGFBQU8sS0FBSyxRQUFRLFFBQVEsS0FBSyxJQUFJLFNBQVUsS0FBSyxNQUFNO0FBQ3hELFlBQUksT0FBTyxRQUFRLFFBQVEsR0FBRztBQUM1QixxQkFBVyxXQUFZO0FBQ3JCLG1CQUFPLEtBQUssS0FBSyxRQUFRLEtBQUssSUFBSSxRQUFRLFFBQVEsR0FBRyxPQUFPLEdBQUc7QUFBQSxhQUM5RDtBQUNIO0FBQUE7QUFHRixpQkFBUyxLQUFLO0FBQUE7QUFBQTtBQUFBLEtBR2pCO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLHdCQUF3QixXQUFXLFlBQVk7QUFDcEQsVUFBSSxTQUFTO0FBRWIsVUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUNsRixVQUFJLFdBQVcsVUFBVSxTQUFTLElBQUksVUFBVSxLQUFLO0FBRXJELFVBQUksQ0FBQyxLQUFLLFNBQVM7QUFDakIsYUFBSyxPQUFPLEtBQUs7QUFDakIsZUFBTyxZQUFZO0FBQUE7QUFHckIsVUFBSSxPQUFPLGNBQWM7QUFBVSxvQkFBWSxLQUFLLGNBQWMsbUJBQW1CO0FBQ3JGLFVBQUksT0FBTyxlQUFlO0FBQVUscUJBQWEsQ0FBQztBQUNsRCxVQUFJLFNBQVMsS0FBSyxVQUFVLFdBQVcsWUFBWSxTQUFTO0FBRTVELFVBQUksQ0FBQyxPQUFPLE9BQU8sUUFBUTtBQUN6QixZQUFJLENBQUMsT0FBTyxRQUFRO0FBQVE7QUFDNUIsZUFBTztBQUFBO0FBR1QsYUFBTyxPQUFPLFFBQVEsU0FBVSxNQUFNO0FBQ3BDLGVBQU8sUUFBUTtBQUFBO0FBQUE7QUFBQSxLQUdsQjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxjQUFjLFdBQVcsWUFBWSxVQUFVO0FBQ3BELFdBQUssZUFBZSxXQUFXLFlBQVksSUFBSTtBQUFBO0FBQUEsS0FFaEQ7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sZ0JBQWdCLFdBQVcsWUFBWSxVQUFVO0FBQ3RELFdBQUssZUFBZSxXQUFXLFlBQVk7QUFBQSxRQUN6QyxRQUFRO0FBQUEsU0FDUDtBQUFBO0FBQUEsS0FFSjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxpQkFBaUIsTUFBTTtBQUM1QixVQUFJLFNBQVM7QUFFYixVQUFJLFNBQVMsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQ2pGLFVBQUksSUFBSSxLQUFLLE1BQU07QUFDbkIsVUFBSSxNQUFNLEVBQUU7QUFDWixVQUFJLEtBQUssRUFBRTtBQUNYLFdBQUssS0FBSyxLQUFLLElBQUksUUFBUSxRQUFXLFFBQVcsU0FBVSxLQUFLLE1BQU07QUFDcEUsWUFBSTtBQUFLLGlCQUFPLE9BQU8sS0FBSyxHQUFHLE9BQU8sUUFBUSxzQkFBc0IsT0FBTyxJQUFJLGtCQUFrQixPQUFPLEtBQUssWUFBWTtBQUN6SCxZQUFJLENBQUMsT0FBTztBQUFNLGlCQUFPLE9BQU8sSUFBSSxHQUFHLE9BQU8sUUFBUSxxQkFBcUIsT0FBTyxJQUFJLGtCQUFrQixPQUFPLE1BQU07QUFFckgsZUFBTyxPQUFPLE1BQU0sS0FBSztBQUFBO0FBQUE7QUFBQSxLQUc1QjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxxQkFBcUIsV0FBVyxXQUFXLEtBQUssZUFBZSxVQUFVO0FBQzlFLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFFbEYsVUFBSSxLQUFLLFNBQVMsU0FBUyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQyxLQUFLLFNBQVMsTUFBTSxtQkFBbUIsWUFBWTtBQUN2SCxhQUFLLE9BQU8sS0FBSyxxQkFBc0IsT0FBTyxLQUFLLHdCQUEwQixPQUFPLFdBQVcseUJBQTBCO0FBQ3pIO0FBQUE7QUFHRixVQUFJLFFBQVEsVUFBYSxRQUFRLFFBQVEsUUFBUTtBQUFJO0FBRXJELFVBQUksS0FBSyxXQUFXLEtBQUssUUFBUSxRQUFRO0FBQ3ZDLGFBQUssUUFBUSxPQUFPLFdBQVcsV0FBVyxLQUFLLGVBQWUsTUFBTSxnQkFBZ0IsZ0JBQWdCLElBQUksVUFBVSxJQUFJO0FBQUEsVUFDcEg7QUFBQTtBQUFBO0FBSUosVUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVO0FBQUk7QUFDakMsV0FBSyxNQUFNLFlBQVksVUFBVSxJQUFJLFdBQVcsS0FBSztBQUFBO0FBQUE7QUFJekQsU0FBTztBQUFBLEVBQ1A7QUFFRixlQUFlO0FBQ2IsU0FBTztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1AsZUFBZTtBQUFBLElBQ2YsSUFBSSxDQUFDO0FBQUEsSUFDTCxXQUFXLENBQUM7QUFBQSxJQUNaLGFBQWEsQ0FBQztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osZUFBZTtBQUFBLElBQ2YsMEJBQTBCO0FBQUEsSUFDMUIsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1Qsc0JBQXNCO0FBQUEsSUFDdEIsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsaUJBQWlCO0FBQUEsSUFDakIsa0JBQWtCO0FBQUEsSUFDbEIseUJBQXlCO0FBQUEsSUFDekIsYUFBYTtBQUFBLElBQ2IsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2Ysb0JBQW9CO0FBQUEsSUFDcEIsbUJBQW1CO0FBQUEsSUFDbkIsNkJBQTZCO0FBQUEsSUFDN0IsYUFBYTtBQUFBLElBQ2IseUJBQXlCO0FBQUEsSUFDekIsWUFBWTtBQUFBLElBQ1osbUJBQW1CO0FBQUEsSUFDbkIsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osdUJBQXVCO0FBQUEsSUFDdkIsd0JBQXdCO0FBQUEsSUFDeEIsNkJBQTZCO0FBQUEsSUFDN0IseUJBQXlCO0FBQUEsSUFDekIsa0NBQWtDLGlCQUFnQixNQUFNO0FBQ3RELFVBQUksTUFBTTtBQUNWLFVBQUksUUFBUSxLQUFLLFFBQVE7QUFBVSxjQUFNLEtBQUs7QUFDOUMsVUFBSSxPQUFPLEtBQUssT0FBTztBQUFVLFlBQUksZUFBZSxLQUFLO0FBQ3pELFVBQUksT0FBTyxLQUFLLE9BQU87QUFBVSxZQUFJLGVBQWUsS0FBSztBQUV6RCxVQUFJLFFBQVEsS0FBSyxRQUFRLFlBQVksUUFBUSxLQUFLLFFBQVEsVUFBVTtBQUNsRSxZQUFJLFVBQVUsS0FBSyxNQUFNLEtBQUs7QUFDOUIsZUFBTyxLQUFLLFNBQVMsUUFBUSxTQUFVLEtBQUs7QUFDMUMsY0FBSSxPQUFPLFFBQVE7QUFBQTtBQUFBO0FBSXZCLGFBQU87QUFBQTtBQUFBLElBRVQsZUFBZTtBQUFBLE1BQ2IsYUFBYTtBQUFBLE1BQ2IsUUFBUSxpQkFBZ0IsT0FBTyxTQUFTLEtBQUssU0FBUztBQUNwRCxlQUFPO0FBQUE7QUFBQSxNQUVULFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLGlCQUFpQjtBQUFBLE1BQ2pCLGdCQUFnQjtBQUFBLE1BQ2hCLGVBQWU7QUFBQSxNQUNmLGVBQWU7QUFBQSxNQUNmLHlCQUF5QjtBQUFBLE1BQ3pCLGFBQWE7QUFBQSxNQUNiLGlCQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUl2QiwwQkFBMEIsU0FBUztBQUNqQyxNQUFJLE9BQU8sUUFBUSxPQUFPO0FBQVUsWUFBUSxLQUFLLENBQUMsUUFBUTtBQUMxRCxNQUFJLE9BQU8sUUFBUSxnQkFBZ0I7QUFBVSxZQUFRLGNBQWMsQ0FBQyxRQUFRO0FBQzVFLE1BQUksT0FBTyxRQUFRLGVBQWU7QUFBVSxZQUFRLGFBQWEsQ0FBQyxRQUFRO0FBRTFFLE1BQUksUUFBUSxpQkFBaUIsUUFBUSxjQUFjLFFBQVEsWUFBWSxHQUFHO0FBQ3hFLFlBQVEsZ0JBQWdCLFFBQVEsY0FBYyxPQUFPLENBQUM7QUFBQTtBQUd4RCxTQUFPO0FBQUE7QUFHVCxtQkFBbUIsUUFBUSxnQkFBZ0I7QUFBRSxNQUFJLE9BQU8sT0FBTyxLQUFLO0FBQVMsTUFBSSxPQUFPLHVCQUF1QjtBQUFFLFFBQUksVUFBVSxPQUFPLHNCQUFzQjtBQUFTLFFBQUksZ0JBQWdCO0FBQUUsZ0JBQVUsUUFBUSxPQUFPLFNBQVUsS0FBSztBQUFFLGVBQU8sT0FBTyx5QkFBeUIsUUFBUSxLQUFLO0FBQUE7QUFBQTtBQUFrQixTQUFLLEtBQUssTUFBTSxNQUFNO0FBQUE7QUFBWSxTQUFPO0FBQUE7QUFFcFYseUJBQXlCLFFBQVE7QUFBRSxXQUFTLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFLO0FBQUUsUUFBSSxTQUFTLFVBQVUsTUFBTSxPQUFPLFVBQVUsS0FBSztBQUFJLFFBQUksSUFBSSxHQUFHO0FBQUUsZ0JBQVUsT0FBTyxTQUFTLE1BQU0sUUFBUSxTQUFVLEtBQUs7QUFBRSx3QkFBZ0IsUUFBUSxLQUFLLE9BQU87QUFBQTtBQUFBLGVBQXNCLE9BQU8sMkJBQTJCO0FBQUUsYUFBTyxpQkFBaUIsUUFBUSxPQUFPLDBCQUEwQjtBQUFBLFdBQWlCO0FBQUUsZ0JBQVUsT0FBTyxTQUFTLFFBQVEsU0FBVSxLQUFLO0FBQUUsZUFBTyxlQUFlLFFBQVEsS0FBSyxPQUFPLHlCQUF5QixRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQWUsU0FBTztBQUFBO0FBRW5oQix3QkFBd0IsU0FBUztBQUFFLE1BQUksNEJBQTRCO0FBQStCLFNBQU8sZ0NBQWdDO0FBQUUsUUFBSSxRQUFRLGdCQUFnQixVQUFVO0FBQVEsUUFBSSwyQkFBMkI7QUFBRSxVQUFJLFlBQVksZ0JBQWdCLE1BQU07QUFBYSxlQUFTLFFBQVEsVUFBVSxPQUFPLFdBQVc7QUFBQSxXQUFtQjtBQUFFLGVBQVMsTUFBTSxNQUFNLE1BQU07QUFBQTtBQUFjLFdBQU8sMkJBQTJCLE1BQU07QUFBQTtBQUFBO0FBRWhhLHVDQUF1QztBQUFFLE1BQUksT0FBTyxZQUFZLGVBQWUsQ0FBQyxRQUFRO0FBQVcsV0FBTztBQUFPLE1BQUksUUFBUSxVQUFVO0FBQU0sV0FBTztBQUFPLE1BQUksT0FBTyxVQUFVO0FBQVksV0FBTztBQUFNLE1BQUk7QUFBRSxZQUFRLFVBQVUsUUFBUSxLQUFLLFFBQVEsVUFBVSxTQUFTLElBQUksV0FBWTtBQUFBO0FBQU0sV0FBTztBQUFBLFdBQWUsR0FBUDtBQUFZLFdBQU87QUFBQTtBQUFBO0FBRWpVLGdCQUFnQjtBQUFBO0FBRWhCLDZCQUE2QixNQUFNO0FBQ2pDLE1BQUksT0FBTyxPQUFPLG9CQUFvQixPQUFPLGVBQWU7QUFDNUQsT0FBSyxRQUFRLFNBQVUsS0FBSztBQUMxQixRQUFJLE9BQU8sS0FBSyxTQUFTLFlBQVk7QUFDbkMsV0FBSyxPQUFPLEtBQUssS0FBSyxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBS2pDLElBQUksT0FBTyxTQUFVLGVBQWU7QUFDbEMsWUFBVSxPQUFNO0FBRWhCLE1BQUksU0FBUyxlQUFlO0FBRTVCLG1CQUFnQjtBQUNkLFFBQUk7QUFFSixRQUFJLFVBQVUsVUFBVSxTQUFTLEtBQUssVUFBVSxPQUFPLFNBQVksVUFBVSxLQUFLO0FBQ2xGLFFBQUksV0FBVyxVQUFVLFNBQVMsSUFBSSxVQUFVLEtBQUs7QUFFckQsb0JBQWdCLE1BQU07QUFFdEIsWUFBUSxPQUFPLEtBQUs7QUFFcEIsUUFBSSxRQUFRO0FBQ1YsbUJBQWEsS0FBSyx1QkFBdUI7QUFBQTtBQUczQyxVQUFNLFVBQVUsaUJBQWlCO0FBQ2pDLFVBQU0sV0FBVztBQUNqQixVQUFNLFNBQVM7QUFDZixVQUFNLFVBQVU7QUFBQSxNQUNkLFVBQVU7QUFBQTtBQUVaLHdCQUFvQix1QkFBdUI7QUFFM0MsUUFBSSxZQUFZLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxRQUFRLFNBQVM7QUFDeEQsVUFBSSxDQUFDLE1BQU0sUUFBUSxlQUFlO0FBQ2hDLGNBQU0sS0FBSyxTQUFTO0FBRXBCLGVBQU8sMkJBQTJCLE9BQU8sdUJBQXVCO0FBQUE7QUFHbEUsaUJBQVcsV0FBWTtBQUNyQixjQUFNLEtBQUssU0FBUztBQUFBLFNBQ25CO0FBQUE7QUFHTCxXQUFPO0FBQUE7QUFHVCxlQUFhLE9BQU0sQ0FBQztBQUFBLElBQ2xCLEtBQUs7QUFBQSxJQUNMLE9BQU8sZ0JBQWdCO0FBQ3JCLFVBQUksU0FBUztBQUViLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsVUFBSSxXQUFXLFVBQVUsU0FBUyxJQUFJLFVBQVUsS0FBSztBQUVyRCxVQUFJLE9BQU8sWUFBWSxZQUFZO0FBQ2pDLG1CQUFXO0FBQ1gsa0JBQVU7QUFBQTtBQUdaLFVBQUksQ0FBQyxRQUFRLGFBQWEsUUFBUSxJQUFJO0FBQ3BDLFlBQUksT0FBTyxRQUFRLE9BQU8sVUFBVTtBQUNsQyxrQkFBUSxZQUFZLFFBQVE7QUFBQSxtQkFDbkIsUUFBUSxHQUFHLFFBQVEsaUJBQWlCLEdBQUc7QUFDaEQsa0JBQVEsWUFBWSxRQUFRLEdBQUc7QUFBQTtBQUFBO0FBSW5DLFVBQUksVUFBVTtBQUNkLFdBQUssVUFBVSxnQkFBZ0IsZ0JBQWdCLGdCQUFnQixJQUFJLFVBQVUsS0FBSyxVQUFVLGlCQUFpQjtBQUU3RyxVQUFJLEtBQUssUUFBUSxxQkFBcUIsTUFBTTtBQUMxQyxhQUFLLFFBQVEsZ0JBQWdCLGdCQUFnQixnQkFBZ0IsSUFBSSxRQUFRLGdCQUFnQixLQUFLLFFBQVE7QUFBQTtBQUd4RyxVQUFJLFFBQVEsaUJBQWlCLFFBQVc7QUFDdEMsYUFBSyxRQUFRLDBCQUEwQixRQUFRO0FBQUE7QUFHakQsVUFBSSxRQUFRLGdCQUFnQixRQUFXO0FBQ3JDLGFBQUssUUFBUSx5QkFBeUIsUUFBUTtBQUFBO0FBR2hELG1DQUE2QixlQUFlO0FBQzFDLFlBQUksQ0FBQztBQUFlLGlCQUFPO0FBQzNCLFlBQUksT0FBTyxrQkFBa0I7QUFBWSxpQkFBTyxJQUFJO0FBQ3BELGVBQU87QUFBQTtBQUdULFVBQUksQ0FBQyxLQUFLLFFBQVEsU0FBUztBQUN6QixZQUFJLEtBQUssUUFBUSxRQUFRO0FBQ3ZCLHFCQUFXLEtBQUssb0JBQW9CLEtBQUssUUFBUSxTQUFTLEtBQUs7QUFBQSxlQUMxRDtBQUNMLHFCQUFXLEtBQUssTUFBTSxLQUFLO0FBQUE7QUFHN0IsWUFBSTtBQUVKLFlBQUksS0FBSyxRQUFRLFdBQVc7QUFDMUIsc0JBQVksS0FBSyxRQUFRO0FBQUEsbUJBQ2hCLE9BQU8sU0FBUyxhQUFhO0FBQ3RDLHNCQUFZO0FBQUE7QUFHZCxZQUFJLEtBQUssSUFBSSxhQUFhLEtBQUs7QUFDL0IsYUFBSyxRQUFRLElBQUksY0FBYyxLQUFLLFFBQVEsV0FBVyxLQUFLO0FBQzVELFlBQUksSUFBSSxLQUFLO0FBQ2IsVUFBRSxTQUFTO0FBQ1gsVUFBRSxnQkFBZ0IsS0FBSztBQUN2QixVQUFFLGdCQUFnQjtBQUNsQixVQUFFLGlCQUFpQixJQUFJLGVBQWUsSUFBSTtBQUFBLFVBQ3hDLFNBQVMsS0FBSyxRQUFRO0FBQUEsVUFDdEIsbUJBQW1CLEtBQUssUUFBUTtBQUFBLFVBQ2hDLHNCQUFzQixLQUFLLFFBQVE7QUFBQTtBQUdyQyxZQUFJLGFBQWMsRUFBQyxLQUFLLFFBQVEsY0FBYyxVQUFVLEtBQUssUUFBUSxjQUFjLFdBQVcsUUFBUSxjQUFjLFNBQVM7QUFDM0gsWUFBRSxZQUFZLG9CQUFvQjtBQUNsQyxZQUFFLFVBQVUsS0FBSyxHQUFHLEtBQUs7QUFDekIsZUFBSyxRQUFRLGNBQWMsU0FBUyxFQUFFLFVBQVUsT0FBTyxLQUFLLEVBQUU7QUFBQTtBQUdoRSxVQUFFLGVBQWUsSUFBSSxhQUFhLEtBQUs7QUFDdkMsVUFBRSxRQUFRO0FBQUEsVUFDUixvQkFBb0IsS0FBSyxtQkFBbUIsS0FBSztBQUFBO0FBRW5ELFVBQUUsbUJBQW1CLElBQUksVUFBVSxvQkFBb0IsS0FBSyxRQUFRLFVBQVUsRUFBRSxlQUFlLEdBQUcsS0FBSztBQUN2RyxVQUFFLGlCQUFpQixHQUFHLEtBQUssU0FBVSxPQUFPO0FBQzFDLG1CQUFTLE9BQU8sVUFBVSxRQUFRLE9BQU8sSUFBSSxNQUFNLE9BQU8sSUFBSSxPQUFPLElBQUksSUFBSSxPQUFPLEdBQUcsT0FBTyxNQUFNLFFBQVE7QUFDMUcsaUJBQUssT0FBTyxLQUFLLFVBQVU7QUFBQTtBQUc3QixpQkFBTyxLQUFLLE1BQU0sUUFBUSxDQUFDLE9BQU8sT0FBTztBQUFBO0FBRzNDLFlBQUksS0FBSyxRQUFRLGtCQUFrQjtBQUNqQyxZQUFFLG1CQUFtQixvQkFBb0IsS0FBSyxRQUFRO0FBQ3RELFlBQUUsaUJBQWlCLEtBQUssR0FBRyxLQUFLLFFBQVEsV0FBVyxLQUFLO0FBQUE7QUFHMUQsWUFBSSxLQUFLLFFBQVEsWUFBWTtBQUMzQixZQUFFLGFBQWEsb0JBQW9CLEtBQUssUUFBUTtBQUNoRCxjQUFJLEVBQUUsV0FBVztBQUFNLGNBQUUsV0FBVyxLQUFLO0FBQUE7QUFHM0MsYUFBSyxhQUFhLElBQUksV0FBVyxLQUFLLFVBQVUsS0FBSztBQUNyRCxhQUFLLFdBQVcsR0FBRyxLQUFLLFNBQVUsT0FBTztBQUN2QyxtQkFBUyxRQUFRLFVBQVUsUUFBUSxPQUFPLElBQUksTUFBTSxRQUFRLElBQUksUUFBUSxJQUFJLElBQUksUUFBUSxHQUFHLFFBQVEsT0FBTyxTQUFTO0FBQ2pILGlCQUFLLFFBQVEsS0FBSyxVQUFVO0FBQUE7QUFHOUIsaUJBQU8sS0FBSyxNQUFNLFFBQVEsQ0FBQyxPQUFPLE9BQU87QUFBQTtBQUUzQyxhQUFLLFFBQVEsU0FBUyxRQUFRLFNBQVUsSUFBRztBQUN6QyxjQUFJLEdBQUU7QUFBTSxlQUFFLEtBQUs7QUFBQTtBQUFBO0FBSXZCLFdBQUssU0FBUyxLQUFLLFFBQVEsY0FBYztBQUN6QyxVQUFJLENBQUM7QUFBVSxtQkFBVztBQUUxQixVQUFJLEtBQUssUUFBUSxlQUFlLENBQUMsS0FBSyxTQUFTLG9CQUFvQixDQUFDLEtBQUssUUFBUSxLQUFLO0FBQ3BGLFlBQUksUUFBUSxLQUFLLFNBQVMsY0FBYyxpQkFBaUIsS0FBSyxRQUFRO0FBQ3RFLFlBQUksTUFBTSxTQUFTLEtBQUssTUFBTSxPQUFPO0FBQU8sZUFBSyxRQUFRLE1BQU0sTUFBTTtBQUFBO0FBR3ZFLFVBQUksQ0FBQyxLQUFLLFNBQVMsb0JBQW9CLENBQUMsS0FBSyxRQUFRLEtBQUs7QUFDeEQsYUFBSyxPQUFPLEtBQUs7QUFBQTtBQUduQixVQUFJLFdBQVcsQ0FBQyxlQUFlLHFCQUFxQixxQkFBcUI7QUFDekUsZUFBUyxRQUFRLFNBQVUsUUFBUTtBQUNqQyxlQUFPLFVBQVUsV0FBWTtBQUMzQixjQUFJO0FBRUosaUJBQVEsZ0JBQWUsT0FBTyxPQUFPLFFBQVEsTUFBTSxjQUFjO0FBQUE7QUFBQTtBQUdyRSxVQUFJLGtCQUFrQixDQUFDLGVBQWUsZ0JBQWdCLHFCQUFxQjtBQUMzRSxzQkFBZ0IsUUFBUSxTQUFVLFFBQVE7QUFDeEMsZUFBTyxVQUFVLFdBQVk7QUFDM0IsY0FBSTtBQUVKLFVBQUMsaUJBQWdCLE9BQU8sT0FBTyxRQUFRLE1BQU0sZUFBZTtBQUU1RCxpQkFBTztBQUFBO0FBQUE7QUFHWCxVQUFJLFdBQVc7QUFFZixVQUFJLE9BQU8saUJBQWdCO0FBQ3pCLFlBQUksU0FBUyxpQkFBZ0IsS0FBSyxJQUFHO0FBQ25DLGNBQUksT0FBTyxpQkFBaUIsQ0FBQyxPQUFPO0FBQXNCLG1CQUFPLE9BQU8sS0FBSztBQUM3RSxpQkFBTyxnQkFBZ0I7QUFDdkIsY0FBSSxDQUFDLE9BQU8sUUFBUTtBQUFTLG1CQUFPLE9BQU8sSUFBSSxlQUFlLE9BQU87QUFFckUsaUJBQU8sS0FBSyxlQUFlLE9BQU87QUFFbEMsbUJBQVMsUUFBUTtBQUNqQixtQkFBUyxLQUFLO0FBQUE7QUFHaEIsWUFBSSxPQUFPLGFBQWEsT0FBTyxRQUFRLHFCQUFxQixRQUFRLENBQUMsT0FBTztBQUFlLGlCQUFPLE9BQU8sTUFBTSxPQUFPLEVBQUUsS0FBSztBQUU3SCxlQUFPLGVBQWUsT0FBTyxRQUFRLEtBQUs7QUFBQTtBQUc1QyxVQUFJLEtBQUssUUFBUSxhQUFhLENBQUMsS0FBSyxRQUFRLGVBQWU7QUFDekQ7QUFBQSxhQUNLO0FBQ0wsbUJBQVcsTUFBTTtBQUFBO0FBR25CLGFBQU87QUFBQTtBQUFBLEtBRVI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sdUJBQXVCLFVBQVU7QUFDdEMsVUFBSSxTQUFTO0FBRWIsVUFBSSxXQUFXLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUNuRixVQUFJLGVBQWU7QUFDbkIsVUFBSSxVQUFVLE9BQU8sYUFBYSxXQUFXLFdBQVcsS0FBSztBQUM3RCxVQUFJLE9BQU8sYUFBYTtBQUFZLHVCQUFlO0FBRW5ELFVBQUksQ0FBQyxLQUFLLFFBQVEsYUFBYSxLQUFLLFFBQVEseUJBQXlCO0FBQ25FLFlBQUksV0FBVyxRQUFRLGtCQUFrQjtBQUFVLGlCQUFPO0FBQzFELFlBQUksU0FBUztBQUViLFlBQUksU0FBUyxpQkFBZ0IsS0FBSztBQUNoQyxjQUFJLENBQUM7QUFBSztBQUVWLGNBQUksT0FBTyxPQUFPLFNBQVMsY0FBYyxtQkFBbUI7QUFFNUQsZUFBSyxRQUFRLFNBQVUsSUFBRztBQUN4QixnQkFBSSxPQUFPLFFBQVEsTUFBSztBQUFHLHFCQUFPLEtBQUs7QUFBQTtBQUFBO0FBSTNDLFlBQUksQ0FBQyxTQUFTO0FBQ1osY0FBSSxZQUFZLEtBQUssU0FBUyxjQUFjLGlCQUFpQixLQUFLLFFBQVE7QUFDMUUsb0JBQVUsUUFBUSxTQUFVLElBQUc7QUFDN0IsbUJBQU8sT0FBTztBQUFBO0FBQUEsZUFFWDtBQUNMLGlCQUFPO0FBQUE7QUFHVCxZQUFJLEtBQUssUUFBUSxTQUFTO0FBQ3hCLGVBQUssUUFBUSxRQUFRLFFBQVEsU0FBVSxJQUFHO0FBQ3hDLG1CQUFPLE9BQU87QUFBQTtBQUFBO0FBSWxCLGFBQUssU0FBUyxpQkFBaUIsS0FBSyxRQUFRLEtBQUssUUFBUSxJQUFJO0FBQUEsYUFDeEQ7QUFDTCxxQkFBYTtBQUFBO0FBQUE7QUFBQSxLQUdoQjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyx5QkFBeUIsTUFBTSxJQUFJLFVBQVU7QUFDbEQsVUFBSSxXQUFXO0FBQ2YsVUFBSSxDQUFDO0FBQU0sZUFBTyxLQUFLO0FBQ3ZCLFVBQUksQ0FBQztBQUFJLGFBQUssS0FBSyxRQUFRO0FBQzNCLFVBQUksQ0FBQztBQUFVLG1CQUFXO0FBQzFCLFdBQUssU0FBUyxpQkFBaUIsT0FBTyxNQUFNLElBQUksU0FBVSxLQUFLO0FBQzdELGlCQUFTO0FBQ1QsaUJBQVM7QUFBQTtBQUVYLGFBQU87QUFBQTtBQUFBLEtBRVI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sYUFBYSxTQUFRO0FBQzFCLFVBQUksQ0FBQztBQUFRLGNBQU0sSUFBSSxNQUFNO0FBQzdCLFVBQUksQ0FBQyxRQUFPO0FBQU0sY0FBTSxJQUFJLE1BQU07QUFFbEMsVUFBSSxRQUFPLFNBQVMsV0FBVztBQUM3QixhQUFLLFFBQVEsVUFBVTtBQUFBO0FBR3pCLFVBQUksUUFBTyxTQUFTLFlBQVksUUFBTyxPQUFPLFFBQU8sUUFBUSxRQUFPLE9BQU87QUFDekUsYUFBSyxRQUFRLFNBQVM7QUFBQTtBQUd4QixVQUFJLFFBQU8sU0FBUyxvQkFBb0I7QUFDdEMsYUFBSyxRQUFRLG1CQUFtQjtBQUFBO0FBR2xDLFVBQUksUUFBTyxTQUFTLGNBQWM7QUFDaEMsYUFBSyxRQUFRLGFBQWE7QUFBQTtBQUc1QixVQUFJLFFBQU8sU0FBUyxpQkFBaUI7QUFDbkMsc0JBQWMsaUJBQWlCO0FBQUE7QUFHakMsVUFBSSxRQUFPLFNBQVMsYUFBYTtBQUMvQixhQUFLLFFBQVEsWUFBWTtBQUFBO0FBRzNCLFVBQUksUUFBTyxTQUFTLFlBQVk7QUFDOUIsYUFBSyxRQUFRLFNBQVMsS0FBSztBQUFBO0FBRzdCLGFBQU87QUFBQTtBQUFBLEtBRVI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sd0JBQXdCLEtBQUssVUFBVTtBQUM1QyxVQUFJLFNBQVM7QUFFYixXQUFLLHVCQUF1QjtBQUM1QixVQUFJLFdBQVc7QUFDZixXQUFLLEtBQUssb0JBQW9CO0FBRTlCLFVBQUksY0FBYyxzQkFBcUIsSUFBRztBQUN4QyxlQUFPLFdBQVc7QUFDbEIsZUFBTyxZQUFZLE9BQU8sU0FBUyxjQUFjLG1CQUFtQjtBQUNwRSxlQUFPLG1CQUFtQjtBQUMxQixZQUFJLENBQUMsVUFBVSxPQUFPLFFBQVEsTUFBSztBQUFJO0FBRXZDLGlCQUFTLE1BQUssR0FBRyxNQUFLLE9BQU8sVUFBVSxRQUFRLE9BQU07QUFDbkQsY0FBSSxZQUFZLE9BQU8sVUFBVTtBQUNqQyxjQUFJLENBQUMsVUFBVSxPQUFPLFFBQVEsYUFBYTtBQUFJO0FBRS9DLGNBQUksT0FBTyxNQUFNLDRCQUE0QixZQUFZO0FBQ3ZELG1CQUFPLG1CQUFtQjtBQUMxQjtBQUFBO0FBQUE7QUFBQTtBQUtOLFVBQUksT0FBTyxlQUFjLEtBQUssSUFBRztBQUMvQixZQUFJLElBQUc7QUFDTCxzQkFBWTtBQUVaLGlCQUFPLFdBQVcsZUFBZTtBQUVqQyxpQkFBTyx1QkFBdUI7QUFFOUIsaUJBQU8sS0FBSyxtQkFBbUI7QUFFL0IsaUJBQU8sT0FBTyxJQUFJLG1CQUFtQjtBQUFBLGVBQ2hDO0FBQ0wsaUJBQU8sdUJBQXVCO0FBQUE7QUFHaEMsaUJBQVMsUUFBUSxXQUFZO0FBQzNCLGlCQUFPLE9BQU8sRUFBRSxNQUFNLFFBQVE7QUFBQTtBQUVoQyxZQUFJO0FBQVUsbUJBQVMsS0FBSyxXQUFZO0FBQ3RDLG1CQUFPLE9BQU8sRUFBRSxNQUFNLFFBQVE7QUFBQTtBQUFBO0FBSWxDLFVBQUksU0FBUyxpQkFBZ0IsTUFBTTtBQUNqQyxZQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsT0FBTyxTQUFTO0FBQWtCLGlCQUFPO0FBQzlELFlBQUksS0FBSSxPQUFPLFNBQVMsV0FBVyxPQUFPLE9BQU8sU0FBUyxjQUFjLHNCQUFzQjtBQUU5RixZQUFJLElBQUc7QUFDTCxjQUFJLENBQUMsT0FBTyxVQUFVO0FBQ3BCLHdCQUFZO0FBQUE7QUFHZCxjQUFJLENBQUMsT0FBTyxXQUFXO0FBQVUsbUJBQU8sV0FBVyxlQUFlO0FBQ2xFLGNBQUksT0FBTyxTQUFTO0FBQWtCLG1CQUFPLFNBQVMsaUJBQWlCLGtCQUFrQjtBQUFBO0FBRzNGLGVBQU8sY0FBYyxJQUFHLFNBQVUsS0FBSztBQUNyQyxlQUFLLEtBQUs7QUFBQTtBQUFBO0FBSWQsVUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLG9CQUFvQixDQUFDLEtBQUssU0FBUyxpQkFBaUIsT0FBTztBQUNuRixlQUFPLEtBQUssU0FBUyxpQkFBaUI7QUFBQSxpQkFDN0IsQ0FBQyxPQUFPLEtBQUssU0FBUyxvQkFBb0IsS0FBSyxTQUFTLGlCQUFpQixPQUFPO0FBQ3pGLGFBQUssU0FBUyxpQkFBaUIsT0FBTztBQUFBLGFBQ2pDO0FBQ0wsZUFBTztBQUFBO0FBR1QsYUFBTztBQUFBO0FBQUEsS0FFUjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxtQkFBbUIsS0FBSyxJQUFJLFdBQVc7QUFDNUMsVUFBSSxTQUFTO0FBRWIsVUFBSSxTQUFTLGlCQUFnQixLQUFLLE1BQU07QUFDdEMsWUFBSTtBQUVKLFlBQUksUUFBUSxVQUFVLFVBQVU7QUFDOUIsbUJBQVMsUUFBUSxVQUFVLFFBQVEsT0FBTyxJQUFJLE1BQU0sUUFBUSxJQUFJLFFBQVEsSUFBSSxJQUFJLFFBQVEsR0FBRyxRQUFRLE9BQU8sU0FBUztBQUNqSCxpQkFBSyxRQUFRLEtBQUssVUFBVTtBQUFBO0FBRzlCLG9CQUFVLE9BQU8sUUFBUSxpQ0FBaUMsQ0FBQyxLQUFLLE1BQU0sT0FBTztBQUFBLGVBQ3hFO0FBQ0wsb0JBQVUsZ0JBQWdCLElBQUk7QUFBQTtBQUdoQyxnQkFBUSxNQUFNLFFBQVEsT0FBTyxRQUFPO0FBQ3BDLGdCQUFRLE9BQU8sUUFBUSxRQUFRLFFBQU87QUFDdEMsZ0JBQVEsS0FBSyxRQUFRLE1BQU0sUUFBTztBQUNsQyxZQUFJLGVBQWUsT0FBTyxRQUFRLGdCQUFnQjtBQUNsRCxZQUFJLFlBQVksWUFBWSxHQUFHLE9BQU8sV0FBVyxPQUFPLGNBQWMsT0FBTyxPQUFPO0FBQ3BGLGVBQU8sT0FBTyxFQUFFLFdBQVc7QUFBQTtBQUc3QixVQUFJLE9BQU8sUUFBUSxVQUFVO0FBQzNCLGVBQU8sTUFBTTtBQUFBLGFBQ1I7QUFDTCxlQUFPLE9BQU87QUFBQTtBQUdoQixhQUFPLEtBQUs7QUFDWixhQUFPLFlBQVk7QUFDbkIsYUFBTztBQUFBO0FBQUEsS0FFUjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyxjQUFhO0FBQ2xCLFVBQUk7QUFFSixhQUFPLEtBQUssY0FBZSxvQkFBbUIsS0FBSyxZQUFZLFVBQVUsTUFBTSxrQkFBa0I7QUFBQTtBQUFBLEtBRWxHO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGtCQUFrQjtBQUN2QixVQUFJO0FBRUosYUFBTyxLQUFLLGNBQWUscUJBQW9CLEtBQUssWUFBWSxPQUFPLE1BQU0sbUJBQW1CO0FBQUE7QUFBQSxLQUVqRztBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyw2QkFBNkIsSUFBSTtBQUN0QyxXQUFLLFFBQVEsWUFBWTtBQUFBO0FBQUEsS0FFMUI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sNEJBQTRCLElBQUk7QUFDckMsVUFBSSxTQUFTO0FBRWIsVUFBSSxVQUFVLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUVsRixVQUFJLENBQUMsS0FBSyxlQUFlO0FBQ3ZCLGFBQUssT0FBTyxLQUFLLG1EQUFtRCxLQUFLO0FBQ3pFLGVBQU87QUFBQTtBQUdULFVBQUksQ0FBQyxLQUFLLGFBQWEsQ0FBQyxLQUFLLFVBQVUsUUFBUTtBQUM3QyxhQUFLLE9BQU8sS0FBSyw4REFBOEQsS0FBSztBQUNwRixlQUFPO0FBQUE7QUFHVCxVQUFJLE1BQU0sS0FBSyxvQkFBb0IsS0FBSyxVQUFVO0FBQ2xELFVBQUksY0FBYyxLQUFLLFVBQVUsS0FBSyxRQUFRLGNBQWM7QUFDNUQsVUFBSSxVQUFVLEtBQUssVUFBVSxLQUFLLFVBQVUsU0FBUztBQUNyRCxVQUFJLElBQUksa0JBQWtCO0FBQVUsZUFBTztBQUUzQyxVQUFJLGlCQUFpQix5QkFBd0IsSUFBRyxJQUFHO0FBQ2pELFlBQUksWUFBWSxPQUFPLFNBQVMsaUJBQWlCLE1BQU0sR0FBRyxPQUFPLElBQUcsS0FBSyxPQUFPO0FBRWhGLGVBQU8sY0FBYyxNQUFNLGNBQWM7QUFBQTtBQUczQyxVQUFJLFFBQVEsVUFBVTtBQUNwQixZQUFJLFlBQVksUUFBUSxTQUFTLE1BQU07QUFDdkMsWUFBSSxjQUFjO0FBQVcsaUJBQU87QUFBQTtBQUd0QyxVQUFJLEtBQUssa0JBQWtCLEtBQUs7QUFBSyxlQUFPO0FBQzVDLFVBQUksQ0FBQyxLQUFLLFNBQVMsaUJBQWlCO0FBQVMsZUFBTztBQUNwRCxVQUFJLGVBQWUsS0FBSyxPQUFRLEVBQUMsZUFBZSxlQUFlLFNBQVM7QUFBTSxlQUFPO0FBQ3JGLGFBQU87QUFBQTtBQUFBLEtBRVI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sd0JBQXdCLElBQUksVUFBVTtBQUMzQyxVQUFJLFNBQVM7QUFFYixVQUFJLFdBQVc7QUFFZixVQUFJLENBQUMsS0FBSyxRQUFRLElBQUk7QUFDcEIsb0JBQVk7QUFDWixlQUFPLFFBQVE7QUFBQTtBQUdqQixVQUFJLE9BQU8sT0FBTztBQUFVLGFBQUssQ0FBQztBQUNsQyxTQUFHLFFBQVEsU0FBVSxJQUFHO0FBQ3RCLFlBQUksT0FBTyxRQUFRLEdBQUcsUUFBUSxNQUFLO0FBQUcsaUJBQU8sUUFBUSxHQUFHLEtBQUs7QUFBQTtBQUUvRCxXQUFLLGNBQWMsU0FBVSxLQUFLO0FBQ2hDLGlCQUFTO0FBQ1QsWUFBSTtBQUFVLG1CQUFTO0FBQUE7QUFFekIsYUFBTztBQUFBO0FBQUEsS0FFUjtBQUFBLElBQ0QsS0FBSztBQUFBLElBQ0wsT0FBTyx1QkFBdUIsTUFBTSxVQUFVO0FBQzVDLFVBQUksV0FBVztBQUNmLFVBQUksT0FBTyxTQUFTO0FBQVUsZUFBTyxDQUFDO0FBQ3RDLFVBQUksWUFBWSxLQUFLLFFBQVEsV0FBVztBQUN4QyxVQUFJLFVBQVUsS0FBSyxPQUFPLFNBQVUsS0FBSztBQUN2QyxlQUFPLFVBQVUsUUFBUSxPQUFPO0FBQUE7QUFHbEMsVUFBSSxDQUFDLFFBQVEsUUFBUTtBQUNuQixZQUFJO0FBQVU7QUFDZCxlQUFPLFFBQVE7QUFBQTtBQUdqQixXQUFLLFFBQVEsVUFBVSxVQUFVLE9BQU87QUFDeEMsV0FBSyxjQUFjLFNBQVUsS0FBSztBQUNoQyxpQkFBUztBQUNULFlBQUk7QUFBVSxtQkFBUztBQUFBO0FBRXpCLGFBQU87QUFBQTtBQUFBLEtBRVI7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8sYUFBYSxLQUFLO0FBQ3ZCLFVBQUksQ0FBQztBQUFLLGNBQU0sS0FBSyxvQkFBcUIsTUFBSyxhQUFhLEtBQUssVUFBVSxTQUFTLElBQUksS0FBSyxVQUFVLEtBQUssS0FBSztBQUNqSCxVQUFJLENBQUM7QUFBSyxlQUFPO0FBQ2pCLFVBQUksVUFBVSxDQUFDLE1BQU0sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE1BQU0sTUFBTSxNQUFNLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxNQUFNLE1BQU0sT0FBTyxPQUFPLE9BQU8sTUFBTSxNQUFNLE9BQU8sT0FBTyxPQUFPLE1BQU0sT0FBTyxPQUFPLE9BQU8sT0FBTyxNQUFNLE9BQU87QUFDaGIsYUFBTyxRQUFRLFFBQVEsS0FBSyxTQUFTLGNBQWMsd0JBQXdCLFFBQVEsTUFBTSxJQUFJLGNBQWMsUUFBUSxXQUFXLElBQUksUUFBUTtBQUFBO0FBQUEsS0FFM0k7QUFBQSxJQUNELEtBQUs7QUFBQSxJQUNMLE9BQU8seUJBQXlCO0FBQzlCLFVBQUksU0FBUztBQUViLFVBQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsVUFBSSxXQUFXLFVBQVUsU0FBUyxLQUFLLFVBQVUsT0FBTyxTQUFZLFVBQVUsS0FBSztBQUVuRixVQUFJLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLGdCQUFnQixJQUFJLEtBQUssVUFBVSxVQUFVO0FBQUEsUUFDL0YsU0FBUztBQUFBO0FBR1gsVUFBSSxRQUFRLElBQUksTUFBSztBQUNyQixVQUFJLGdCQUFnQixDQUFDLFNBQVMsWUFBWTtBQUMxQyxvQkFBYyxRQUFRLFNBQVUsSUFBRztBQUNqQyxjQUFNLE1BQUssT0FBTztBQUFBO0FBRXBCLFlBQU0sV0FBVyxnQkFBZ0IsSUFBSSxLQUFLO0FBQzFDLFlBQU0sU0FBUyxRQUFRO0FBQUEsUUFDckIsb0JBQW9CLE1BQU0sbUJBQW1CLEtBQUs7QUFBQTtBQUVwRCxZQUFNLGFBQWEsSUFBSSxXQUFXLE1BQU0sVUFBVSxNQUFNO0FBQ3hELFlBQU0sV0FBVyxHQUFHLEtBQUssU0FBVSxPQUFPO0FBQ3hDLGlCQUFTLFFBQVEsVUFBVSxRQUFRLE9BQU8sSUFBSSxNQUFNLFFBQVEsSUFBSSxRQUFRLElBQUksSUFBSSxRQUFRLEdBQUcsUUFBUSxPQUFPLFNBQVM7QUFDakgsZUFBSyxRQUFRLEtBQUssVUFBVTtBQUFBO0FBRzlCLGNBQU0sS0FBSyxNQUFNLE9BQU8sQ0FBQyxPQUFPLE9BQU87QUFBQTtBQUV6QyxZQUFNLEtBQUssZUFBZTtBQUMxQixZQUFNLFdBQVcsVUFBVSxNQUFNO0FBQ2pDLFlBQU0sV0FBVyxpQkFBaUIsU0FBUyxRQUFRO0FBQUEsUUFDakQsb0JBQW9CLE1BQU0sbUJBQW1CLEtBQUs7QUFBQTtBQUVwRCxhQUFPO0FBQUE7QUFBQSxLQUVSO0FBQUEsSUFDRCxLQUFLO0FBQUEsSUFDTCxPQUFPLGtCQUFrQjtBQUN2QixhQUFPO0FBQUEsUUFDTCxTQUFTLEtBQUs7QUFBQSxRQUNkLE9BQU8sS0FBSztBQUFBLFFBQ1osVUFBVSxLQUFLO0FBQUEsUUFDZixXQUFXLEtBQUs7QUFBQSxRQUNoQixrQkFBa0IsS0FBSztBQUFBO0FBQUE7QUFBQTtBQUs3QixTQUFPO0FBQUEsRUFDUDtBQUVGLGdCQUFnQixNQUFNLGtCQUFrQixXQUFZO0FBQ2xELE1BQUksVUFBVSxVQUFVLFNBQVMsS0FBSyxVQUFVLE9BQU8sU0FBWSxVQUFVLEtBQUs7QUFDbEYsTUFBSSxXQUFXLFVBQVUsU0FBUyxJQUFJLFVBQVUsS0FBSztBQUNyRCxTQUFPLElBQUksS0FBSyxTQUFTO0FBQUE7QUFHM0IsSUFBSSxXQUFXLEtBQUs7QUFDcEIsU0FBUyxpQkFBaUIsS0FBSztBQUVWLFNBQVM7QUFDbkIsU0FBUztBQUNBLFNBQVM7QUFDUCxTQUFTO0FBQ3JCLFNBQVM7QUFDRSxTQUFTO0FBQ2QsU0FBUztBQUNqQixTQUFTO0FBQ0osU0FBUztBQUNJLFNBQVM7QUFDVixTQUFTO0FBQ2IsU0FBUztBQUNWLFNBQVM7QUM1cEY3QixNQUFNQyxhQUFvQyxNQUFNO1FBQ3hDO0FBQUEsSUFDSnBDLGVBQWU7QUFBQSxNQUFDQztBQUFBQTtBQUFBQSxNQUNkM2MsdUNBQVdDO1FBRVQ7QUFBQSxJQUFDa2MsS0FBSzRDO0FBQUFBLElBQVU3STtBQUFBQSxJQUFVMUcsTUFBTTZKO0FBQUFBLElBQVV2VyxNQUFNa2M7QUFBQUEsSUFBV3ZCO0FBQUFBLE1BQVVkO1FBRXJFc0MsY0FBY2xCLGFBQWFDLGFBQWFQO1FBQ3hDeUIsYUFBYTlULFFBQ2pCMlQsWUFBYTdJLFlBQVlBLFNBQVNpSixPQUFPakosU0FBU2tKLE1BQU8vRixZQUFZMkYsYUFBYUM7O0lBSTdFLFdBQVksMEJBQXlCQyxhQUFhLEtBQUs7QUFBQTtNQUNwRCxXQUFVO0FBQUE7O01BRWQsV0FBVywwQ0FBMEMsS0FBSztBQUFBLE1BQzFELFNBQVMsTUFBTTt3QkFDR0csY0FBYztBQUFBO0FBQUE7UUFFMUIsV0FBVTtBQUFBO2VBQXVCSiwyQ0FBYWhCO0FBQUFBO01BR3BELFdBQVcsdUNBQXVDLEtBQUs7QUFBQSxNQUN2RCxTQUFTLE1BQU07d0JBQ0dxQixZQUFZO0FBQUE7QUFBQTtRQUV4QixXQUFVO0FBQUE7ZUFBd0JQO0FBQUFBO01BR3hDLFdBQVcsdUNBQXVDLEtBQUs7QUFBQSxNQUN2RCxTQUFTLE1BQU07d0JBQ0doQyxpQkFBaUI7QUFBQTtBQUFBO1FBRTdCLFdBQVU7QUFBQTtlQUF1QndDLG9CQUFvQmxHO0FBQUFBLFFBRTVEbkQsWUFBWUEsU0FBU2lKLE9BQU9qSixTQUFTa0o7TUFFbEMsV0FBVTtBQUFBLE1BQ1YsU0FBUyxNQUFNO3dCQUNHSSxrQkFBa0IsR0FBRztBQUFBO0FBQUE7UUFFakMsV0FBVTtBQUFBO2VBQXdCN2pCLFFBQU04akIsY0FBY3ZKLFNBQVNpSixZQUFRTyxTQUFRckMsRUFBRSxPQUFPLEtBQzdGeGdCLGtCQUFPcVosU0FBU2tKLElBQUksS0FBS08sSUFBSSxHQUFHLFFBQVE3RSxPQUFPO0FBQUEsU0FFaEQ7TUFFRixXQUFXLHdDQUF3QyxLQUFLO0FBQUEsTUFDeEQsU0FBUyxNQUFNO3dCQUNHb0MsYUFBYTtBQUFBO0FBQUE7UUFFekIsV0FBVTtBQUFBO2VBQXVCOEI7QUFBQUE7QUFBQUE7QUFBQUE7QUNwRC9DLE1BQU0saUJBQWlCO0FBQ3ZCLE1BQU0sZ0JBQWdCO0FBQ3RCLE1BQU0sY0FBYztBQUNwQixNQUFNLGlCQUFpQjtBQUN2QixNQUFNLGlCQUFpQjtBQUN2QixNQUFNLGFBQWE7QUFDbkIsTUFBTSxhQUFhO0FBR25CLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0sa0JBQWtCO0FBRXhCLE1BQU0sb0JBQW9CLENBQUMsV0FBbUIsV0FBNEI7UUFDbEUsV0FBVyxVQUNkLFFBQVEsZ0JBQWdCLHlCQUN4QixRQUFRLFlBQVksNkNBQ3BCLFFBQVEsWUFBWSwwQ0FDcEIsUUFBUSxnQkFBZ0IsMkRBQ3hCLFFBQVEsZ0JBQWdCLDJEQUN4QixRQUFRLGVBQWUsdUJBQ3ZCLFFBQVEsYUFBYSxlQUNyQixRQUFRLGVBQWUsV0FDdkIsUUFBUSxVQUFVO01BRWpCLGNBQWM7TUFFZCxRQUFRO1FBQ04sZ0JBQWdCLEtBQUssV0FBVztZQUM1QixhQUFhLFNBQVMsTUFBTTtlQUV6QixJQUFJLEdBQUcsSUFBSSxXQUFXLFFBQVEsS0FBSztZQUN0QyxDQUFDLG1DQUFtQyxLQUFLLFdBQVcsS0FBSztnQkFDckQsa0JBQWtCLDJCQUEyQixXQUFXO2NBQzFELE1BQU0sS0FBSyxrQkFBa0I7a0JBQ3pCLENBQUMsTUFBTSxTQUFTLGdCQUFnQixNQUFNO2tCQUN0QyxjQUFjLFVBQVUsTUFBTTswQkFDdEIsU0FBUyxRQUFRLFdBQVcsSUFBSTtBQUFBLGlCQUN6QztrQkFDQyxPQUFPO2tCQUNQLFFBQVE7a0JBQ1IsY0FBYyxVQUFVLE1BQU07MEJBQ3RCLFlBQVksUUFBUSxXQUFXLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQTtRQUtyRCxnQkFBZ0IsS0FBSyxXQUFXO1lBQzVCLGFBQWEsU0FBUyxNQUFNO2VBRXpCLElBQUksR0FBRyxJQUFJLFdBQVcsUUFBUSxLQUFLO1lBQ3RDLENBQUMsbUNBQW1DLEtBQUssV0FBVyxLQUFLO2dCQUNyRCxPQUFPLDJCQUEyQixXQUFXO2dCQUM3QyxRQUFRLHlCQUF5QixXQUFXO2dCQUM1QyxjQUFjLFVBQVUsTUFBTTt3QkFDdEIsU0FBUyxRQUFRLFdBQVcsSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUFBO1NBUS9DO0FBQUE7QUFHVCxNQUFNLFlBQVksQ0FBQyxjQUFzQixVQUEwQjtRQUMzRCxFQUFDLGtCQUFpQixTQUFTLFdBQVcsZ0JBQWdCO1FBRXRELE9BQU8sY0FBYyxxQkFBcUIsbUJBQW1CLGVBQWU7TUFJOUUsZ0JBQWdCaGlCLGtCQUFPO1FBRXJCLE9BQU87YUFFRixpQkFBaUIsaURBQWlELHVDQUF1QztBQUFBLFdBQzNHO2FBQ0UsaUJBQWlCLGlEQUFpRCx1Q0FBdUM7QUFBQTtBQUFBLGFBRXpHLE9BQU87V0FDVCxpQkFBaUIsaURBQWlELHFEQUFxRDtBQUFBLFNBQ3pIO1dBQ0UsaUJBQWlCLGlEQUFpRCxxREFBcUQ7QUFBQTtBQUFBO0FBSWxJLE1BQU0sNkJBQTZCLENBQUM7O0FBQWlCLG1DQUFvQixLQUFLLFVBQXpCLG1CQUFpQztBQUFBO0FBRXRGLE1BQU0sMkJBQTJCLENBQUM7O0FBQWlCLCtCQUFnQixLQUFLLFVBQXJCLG1CQUE2QjtBQUFBO0FBRWhGLE1BQU0sNkJBQTZCLENBQUM7O0FBQWlCLGdEQUFpQyxLQUFLLFVBQXRDLG1CQUE4QztBQUFBO0FBRW5HLE1BQU0scUJBQXFCLENBQUMsWUFBNEI7UUFDaEQsU0FBUyxTQUFTLGNBQWM7U0FDL0IsWUFBWTtTQUNaLFlBQVk7UUFDYixPQUFPLE9BQU87U0FDYjtBQUFBO0FBR1QsTUFBTSxxQkFBcUIsQ0FBQyxlQUErQjtRQUNuRCxXQUFXLFdBQVcsUUFBUSxPQUFPO1NBQ3BDO0FBQUE7QUFHVCxNQUFNLGFBQWEsQ0FBQyxZQUE0QjtRQUN4QyxLQUFJLFNBQVMsY0FBYztLQUMvQixjQUFjO1NBQ1QsR0FBRTtBQUFBO0FDM0dYLE1BQU00aUIsV0FBNEIsQ0FBQzVoQixVQUFpQjtRQUM1QztBQUFBLElBQUNDO0FBQUFBLElBQVU0aEI7QUFBQUEsSUFBT0MsU0FBU0M7QUFBQUEsTUFBVy9oQjtRQUN0QyxDQUFDZ2lCLFVBQVVDLGVBQWV4aUIscUNBQVNvaUIsTUFBTXpjO3dDQUVyQyxNQUFNO1VBQ1I4YyxjQUFjTCxNQUFNaGUsVUFBV3NlLFFBQU87a0JBQzlCQTtBQUFBQTtXQUdQLE1BQU07OztLQUdaOzZCQUVLLFFBQVE7SUFBUyxPQUFPSDtBQUFBQTs7OztBQ1RsQyxNQUFNSSxhQUE4QixDQUFDcGlCLFVBQWlCO1FBQzlDO0FBQUEsSUFBQ0M7QUFBQUEsSUFBVWlDO0FBQUFBLElBQVdtZ0I7QUFBQUEsSUFBbUJwZTtBQUFBQSxNQUFXakU7UUFFcERzaUIscUJBQXFCLE1BQU07UUFDM0JELG1CQUFtQjs7Ozs7SUFNbEIsV0FBWSxrQkFBaUJuZ0I7QUFBQUEsSUFBYSxTQUFTb2dCO0FBQUFBO01BQ2pELFdBQVU7QUFBQSxNQUFtQixTQUFVaFYsT0FBTUEsRUFBRWpIO0FBQUFBOzs7O29CQVF4RGtjLFFBQ0FDLGlCQUNBeGlCLE9BQ2dCO1FBQ1ZrYyxVQUFVek4sU0FBUzBGLGNBQWM7V0FDOUJnQixLQUFLc04sT0FBT3ZHO2FBRVYsTUFBTTs7a0JBQ1B3Ryx5Q0FBbUJDLFVBQVVoQixJQUFJO0FBQUEsS0FDeEM7UUFFR2lCLE1BQXNCO0FBQUEsSUFDMUIzZSxTQUFTLE1BQU07O29CQUNMeWUseUNBQW1CQyxVQUFVemUsT0FBTztvQkFDcEN3ZSx5Q0FBbUJDLFVBQVVoQixJQUFJO2lCQUM5QixNQUFNO2dCQUNQemQ7bUJBQ0MyZSx1QkFBdUIzRztBQUFBQSxTQUMvQjRHO0FBQUFBO0FBQUFBO1FBSURDLGNBQWMsaUNBQ2YvaUIsUUFEZTtBQUFBLElBRWxCaUUsU0FBUzJlLElBQUkzZTtBQUFBQTtNQUdYd04sZ0NBQ0Q7SUFBVyxTQUFTbVIsSUFBSTNlO0FBQUFBLElBQVMsbUJBQW1CO0FBQUEsS0FBVXNlO2tDQUM1RCxvQ0FBb0JRO0FBQUFBO01BSXJCUixPQUFPUyxlQUFlO29DQUVyQjtNQUFTLE9BQU83ZDtBQUFBQSxNQUFVLFNBQVNsRDtBQUFBQSxnQkFDakN3UDtBQUFBQTtBQUFBQTthQUtFd1IsT0FBT3hSLFdBQVV5SztTQUVuQjBHO0FBQUFBOzs7QUNsRVQsTUFBTU0scUJBQXNDLENBQUM7QUFBQSxFQUFDamY7QUFBQUEsRUFBU2tmO0FBQUFBLEVBQVFDO0FBQUFBLE1BQXFCO1FBQzVFQyxTQUFTdmdCLG1DQUF5QjtRQUNsQyxDQUFDd2dCLFVBQVVDLGVBQWU5akIscUNBQWlCO1FBQzNDO0FBQUEsSUFBQytqQjtBQUFBQSxNQUFTcmUsU0FBU0MsV0FBV0MsZ0JBQWdCQzt3Q0FFMUMsTUFBTTtZQUNSbWUsYUFBYU4sUUFBUWxULEtBQUssQ0FBQztBQUFBLE1BQUN5VDtBQUFBQSxVQUFXO1VBQ3ZDQSxVQUFVLEdBQUc7b0JBQ0g7QUFBQSxhQUNQO29CQUNPO0FBQUE7QUFBQTtBQUFBLEtBR2Y7UUFFR0Msc0JBQXNCLE1BQU07OztRQUk1QkMsMEJBQTBCLE1BQU07UUFDaENOLFdBQVcsSUFBSTtrQkFDTEEsV0FBVztBQUFBO0FBQUE7UUFJckJPLDBCQUEwQixNQUFNO2dCQUN4QlAsV0FBVztBQUFBO1FBR25CUSxzQkFBc0IsQ0FBQ0MsUUFBZ0J2UyxTQUFpQjtRQUN4RHdTLFFBQVEzUCxPQUFPNFAsS0FBS0Y7UUFDcEJHLE1BQUssSUFBSUMsWUFBWUgsTUFBTXRlO1FBQzNCMGUsTUFBSyxJQUFJQyxXQUFXSDthQUNmdGUsSUFBSSxHQUFHQSxJQUFJb2UsTUFBTXRlLFFBQVFFLEtBQUs7VUFDbENBLEtBQUtvZSxNQUFNTSxXQUFXMWU7QUFBQUE7V0FFcEIsSUFBSTJlLEtBQUssQ0FBQ0wsTUFBSztBQUFBLE1BQUMxUztBQUFBQTtBQUFBQTtRQUduQmdULHVCQUF1QixZQUFZO3NCQUNyQixRQUFRcEIsYUFBYTNkLFdBQWMwZCxXQUFXLE1BQU07WUFDOURzQixXQUFXdEIsT0FBT3VCLE1BQU0sV0FBVztZQUNuQ0MsWUFBWWIsb0JBQW9CVyxVQUFVO1lBQzFDRyxxQkFBcUIsSUFBSUMsY0FBYztBQUFBLHFCQUFjRjtBQUFBQTthQUVwREcsVUFBVSxhQUFhQyxNQUFNLENBQUNIO1VBQ2pDeGxCLGtCQUFPO0FBQUEsV0FDTjtVQUNENGxCLFNBQVMsTUFBTXhCLE1BQU15QixRQUFRQyxXQUFXOUI7VUFDeEMrQixNQUFNLElBQUlkLFdBQVdXO1VBRXJCSSxPQUFPLElBQUliLEtBQUssQ0FBQ1ksTUFBTTtBQUFBLFFBQUMzVCxNQUFNO0FBQUE7WUFFNUIzTCxPQUFPLElBQUlnZixjQUFjO0FBQUEscUJBQWNPO0FBQUFBO2FBRXRDTixVQUFVLGFBQWFDLE1BQU0sQ0FBQ2xmO0FBQUFBO0FBQUFBOzs7TUFNN0IsV0FBVTtBQUFBLE1BQWdCLFNBQVM4ZDtBQUFBQTtRQUNwQyxXQUFVO0FBQUEsUUFBVyxLQUFLMEI7QUFBQUE7QUFBQUE7TUFHNUIsV0FBVTtBQUFBO1FBQ1IsV0FBVy9CLFlBQVksSUFBSSxXQUFXO0FBQUEsUUFBSSxLQUFLRDtBQUFBQSxRQUFRLE9BQU9DLFdBQVc7QUFBQSxRQUFLLEtBQUtIO0FBQUFBO1FBQ2xGLFdBQVcsZ0NBQWdDLEtBQUssS0FBSztBQUFBOztRQUNyRCxXQUFXLGdDQUFnQyxJQUFJLEtBQUs7QUFBQTs7O01BR3ZELFdBQVU7QUFBQTtRQUNMLFdBQVU7QUFBQSxRQUFNLFNBQVNTO0FBQUFBOztRQUd6QixXQUFVO0FBQUEsUUFBTSxTQUFTQztBQUFBQTs7UUFHekIsV0FBVTtBQUFBLFFBQU0sU0FBUyxNQUFNTixZQUFZO0FBQUE7O1FBRzNDLFdBQVU7QUFBQSxRQUFNLFNBQVNpQjtBQUFBQTs7Ozs7Z0NBUU1yQixRQUFnQkMsVUFBeUI7TUFDbEZBLFVBQVU7ZUFFVjtBQUFBLE1BQ0VsaEIsV0FBVztBQUFBLE9BRWJnaEIsb0JBQ0E7QUFBQSxNQUFDQztBQUFBQSxNQUFRQztBQUFBQTtBQUFBQSxTQUVOO2VBRUg7QUFBQSxNQUNFbGhCLFdBQVc7QUFBQSxPQUViZ2hCLG9CQUNBO0FBQUEsTUFBQ0M7QUFBQUE7QUFBQUE7QUFBQUE7O0FDMUdQLE1BQU1tQyxVQUF5QixDQUFDdGxCLFVBQWlCO1FBQ3pDO0FBQUEsSUFBQ2tDO0FBQUFBLElBQVdpaEI7QUFBQUEsSUFBUW9DO0FBQUFBLElBQUtDO0FBQUFBLElBQWdCcEM7QUFBQUEsTUFBWXBqQjtRQUVyRHlsQixtQkFBbUIsTUFBTTtRQUN6QnJDLFVBQVU7NkJBQ1dELFFBQVFDO0FBQUFBLFdBQzFCOzZCQUNrQkQ7QUFBQUE7QUFBQUE7O0lBS3BCLFdBQVcscUJBQXFCamhCO0FBQUFBLElBQVcsU0FBU3VqQjtBQUFBQSxJQUFrQjtBQUFBO01BQ3BFLEtBQUt0QztBQUFBQSxNQUFRO0FBQUEsTUFBVSxVQUFTO0FBQUEsTUFBUSxTQUFRO0FBQUE7QUFBQTtBQUFBOzs7TUNZOUN1QyxtQkFBaUIsQ0FBQ2xDLE9BQWM3SSxXQUFpQjtTQUNyRDZJLE1BQU1tQyxnQkFBZ0JoTDtBQUFBQTtBQUcvQixNQUFNaUwsMkJBQXlCLENBQUNDLGFBQXVDOztRQUMvRDtBQUFBLElBQUNDO0FBQUFBLElBQWV0QztBQUFBQSxNQUFTcmUsU0FBU0MsV0FBV0MsZ0JBQWdCQztRQUM3RHlnQixtQkFBbUJDLHlCQUFtQkMsS0FBS0osY0FBeEJHLG1CQUFvQztRQUN2REUsa0JBQWtCRix5QkFBbUJDLEtBQUtKLGNBQXhCRyxtQkFBb0M7UUFDdER4a0IsT0FBT3NrQixjQUFjSyxxQkFBcUJDLG1CQUFtQkwsbUJBQW1CO01BQ2xGdmtCLFNBQVMsTUFBTTtXQUNWO0FBQUEsTUFDTDZrQixVQUFVTjtBQUFBQSxNQUNWTyxTQUFTSjtBQUFBQSxNQUNUbGdCLE1BQU07QUFBQSxNQUNOb2QsVUFBVTtBQUFBO0FBQUEsU0FFUDtVQUNDbUQsWUFBWWIsaUJBQWVsQyxPQUFPaGlCO1VBQ2xDc0UsV0FBV3RFLEtBQUt3RTtRQUNsQmtnQixpQkFBaUI7YUFDWjtBQUFBLFFBQ0xHLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVNKO0FBQUFBLFFBQ1RsZ0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBLFdBRVA7YUFDRTtBQUFBLFFBQ0x1Z0IsVUFBVU47QUFBQUEsUUFDVk8sU0FBUztBQUFBLFFBQ1R0Z0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBTWxCLE1BQU0wZ0IseUJBQXVCLENBQUNYLGFBQXVDOztRQUM3RDtBQUFBLElBQUNDO0FBQUFBLElBQWV0QztBQUFBQSxNQUFTcmUsU0FBU0MsV0FBV0MsZ0JBQWdCQztRQUM3RHlnQixtQkFBbUJVLHVCQUFpQlIsS0FBS0osY0FBdEJZLG1CQUFrQztRQUNyRFAsa0JBQWtCTyx1QkFBaUJSLEtBQUtKLGNBQXRCWSxtQkFBa0M7UUFDcERqbEIsT0FBT3NrQixjQUFjSyxxQkFBcUJDLG1CQUFtQkwsbUJBQW1CO01BQ2xGdmtCLFNBQVMsTUFBTTtXQUNWO0FBQUEsTUFDTDZrQixVQUFVTjtBQUFBQSxNQUNWTyxTQUFTSjtBQUFBQSxNQUNUbGdCLE1BQU07QUFBQSxNQUNOb2QsVUFBVTtBQUFBO0FBQUEsU0FFUDtVQUNDbUQsWUFBWWIsaUJBQWVsQyxPQUFPaGlCO1VBQ2xDc0UsV0FBV3RFLEtBQUt3RTtRQUNsQmtnQixpQkFBaUI7YUFDWjtBQUFBLFFBQ0xHLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVNKO0FBQUFBLFFBQ1RsZ0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBLFdBRVA7YUFDRTtBQUFBLFFBQ0x1Z0IsVUFBVU47QUFBQUEsUUFDVk8sU0FBUztBQUFBLFFBQ1R0Z0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBTWxCLE1BQU00Z0IsaUJBQWtDLENBQUMxbUIsVUFBaUI7O1FBQ2xELENBQUMybUIsT0FBTUMsV0FBV25uQixxQ0FBd0IsaUNBQzNDTyxNQUFNMm1CLE9BRHFDO0FBQUEsSUFFOUNFLGNBQWNscEIsUUFBTTRkLGtCQUFrQnZiLE1BQU0ybUIsS0FBS0c7QUFBQUE7UUFFN0MsQ0FBQ0MsV0FBV0MsZ0JBQWdCdm5CLHFDQUF1QjtRQUNuRCxDQUFDd25CLGFBQWFDLGtCQUFrQnpuQixxQ0FBdUI7TUFFekQwbkIsb0JBQW9CO01BQ3BCQyxvQkFBb0I7TUFDcEJDLGtCQUFrQztNQUNsQ0Msa0JBQWtCO01BQ2xCQyxjQUFjQyxLQUFLYixNQUFLOU0sVUFBVTtRQUNoQzROLHVCQUF1QjtRQUN2QkMsMkJBQTJCO1FBQzNCakIsaUJBQWlCZSxLQUFLYixNQUFLOU0sVUFBVTt3QkFDckI4TixNQUFNeEcsS0FBS3dGLE1BQUs5TSxRQUFRcFIsTUFBTWdlO0FBQUFBO1FBRTlDVCxtQkFBbUJ3QixLQUFLYixNQUFLOU0sVUFBVTt3QkFDdkI4TixNQUFNeEcsS0FBS3dGLE1BQUs5TSxRQUFRcFIsTUFBTXVkO0FBQUFBO1FBRzlDNEIscUJBQXFCSixLQUFLYixNQUFLOU0sVUFBVTs2QkFDcEI4TixNQUFNeEcsS0FBS3dGLE1BQUs5TSxRQUFRcFIsTUFBTW1mO0FBQUFBO1FBRW5ETixnQkFBZ0I1aEIsUUFBUTtlQUNqQkUsSUFBSSxHQUFHQSxJQUFJMGhCLGdCQUFnQjVoQixRQUFRRSxLQUFLO1lBQzNDaWlCLE1BQU1QLGdCQUFnQjFoQjswQkFDUmtpQixLQUFLbEMseUJBQXVCaUM7QUFBQUE7QUFBQUE7UUFHOUNSLGdCQUFnQjNoQixRQUFRO2VBQ2pCRSxJQUFJLEdBQUdBLElBQUl5aEIsZ0JBQWdCM2hCLFFBQVFFLEtBQUs7WUFDM0NtaUIsTUFBTVYsZ0JBQWdCemhCO1lBQ3RCLG1CQUFtQjRoQixLQUFLTyxNQUFNO21DQUNQRCxLQUFLckIsdUJBQWlCUixLQUFLOEIsU0FBdEJ0QixtQkFBNkI7QUFBQSxlQUN0RDs0QkFDYXFCLEtBQUt0Qix1QkFBcUJ1QjtBQUFBQTtBQUFBQTtBQUFBQTt3QkFJOUJOLHFCQUFxQnpZLE9BQU8wWTtBQUFBQTt3Q0FJeEMsTUFBTTtVQUNSTSxtQkFBbUIsWUFBWTtVQUMvQjtjQUNJakIsYUFBMEI7Y0FDMUJrQixhQUFhLENBQUMsR0FBR3RCLE1BQUs5TSxRQUFRcU8sU0FBU0M7bUJBQ2xDQyxZQUFZSCxZQUFZO2NBQzdCRyxZQUFZQSxTQUFTMWlCLFdBQVcsR0FBRztrQkFDL0JsSSxNQUFLNHFCLFNBQVM7a0JBQ2RDLFdBQVcxTyxZQUFZQyxZQUFZcGM7Z0JBQ3JDNnFCLFVBQVU7eUJBQ0ZQLEtBQUssaUNBQ1ZPLFdBRFU7QUFBQSxnQkFFYnhCLGNBQWNscEIsUUFBTTRkLGtCQUFrQjhNLFNBQVN2QjtBQUFBQSxnQkFDL0N3QixTQUFTM3FCLFFBQU04akIsY0FBYzRHLFNBQVN2QjtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtxQkFLakMsQ0FBQyxHQUFHQztjQUVYRSxlQUFjLE1BQU10TixZQUFZNE8sZUFBZTVCLE1BQUtucEI7dUJBRXhEeXBCLGFBQ0d1QixLQUFLLENBQUNDLEdBQUdDLE1BQU0vcUIsUUFBTWdyQixtQkFBbUJELEVBQUU1QixhQUFhbnBCLFFBQU1nckIsbUJBQW1CRixFQUFFM0IsWUFDbEZ0ZixJQUFLbksseUNBQ0RBO1VBQ0h3cEIsY0FBY2xwQixRQUFNNGQsa0JBQWtCbGUsR0FBRXlwQjtBQUFBQSxVQUN4Q3dCLFNBQVMzcUIsUUFBTThqQixjQUFjcGtCLEdBQUV5cEI7QUFBQUE7QUFBQUEsZUFHOUJoTTs7OztLQU1WLENBQUM2TCxNQUFLbnBCO1FBRUhvckIseUJBQXlCbHBCLHdDQUFZLE9BQU80TixNQUF3Qjs7VUFDbEV1YixXQUFXdmIsRUFBRWpDO1FBRWZ3ZCxTQUFTM21CLGNBQWMsa0JBQWtCO1lBQ3JDNG1CLGFBQWFELGdCQUFTRSxZQUFURixvQkFBa0J6bEI7WUFDL0JpbEIsV0FBVzFPLFlBQVlDLFlBQVlrUCxrQ0FBYztVQUVuRFQsVUFBVTtjQUNOVyxXQUFXLGlDQUNaWCxXQURZO0FBQUEsVUFFZnhCLGNBQWNscEIsUUFBTTRkLGtCQUFrQjhNLFNBQVN2QjtBQUFBQTtxQkFFcEM7dUJBQ0U7Z0JBQ1BrQztBQUFBQSxhQUNIO1lBQ0Q1cEIsa0JBQU87aUJBQ0Z1akIsVUFBVXplLE9BQU87QUFBQTtBQUFBO0FBQUEsS0FHN0I7UUFFRytrQix3QkFBd0J2cEIsd0NBQVksQ0FBQ2luQixXQUF3QjtpQkFDcEQ7bUJBQ0U7WUFDUEE7QUFBQUEsS0FDUDtRQUVHdUMseUJBQXlCeHBCLHdDQUFZLE1BQU07VUFDekN1RTt1QkFDYXlYLGNBQWNpTCxNQUFLbnBCO0FBQUFBLEtBQ3JDLENBQUNtcEIsTUFBS25wQjs7O01BSUEsV0FBVTtBQUFBO1FBQ1IsV0FBVTtBQUFBO1VBQ1YsV0FBVTtBQUFBLG9CQUFhbXBCLE1BQUtFO0FBQUFBO1VBQzFCLFdBQVU7QUFBQTtZQUNMLFdBQVU7QUFBQSxZQUFlLFNBQVNxQztBQUFBQTtjQUNuQyxXQUFVO0FBQUEsY0FBVyxLQUFLQztBQUFBQTtBQUFBQTtZQUV6QixXQUFVO0FBQUEsWUFBZ0IsU0FBU25wQixNQUFNaUU7QUFBQUE7Y0FDMUMsV0FBVTtBQUFBLGNBQVcsS0FBS29oQjtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtRQUloQyxXQUFVO0FBQUE7VUFFWCxXQUFVO0FBQUEsVUFDVixTQUFTdUQ7QUFBQUEsVUFDVCx5QkFBeUI7QUFBQSxZQUFDUSxRQUFRQyxrQkFBa0IxQyxNQUFLOU07QUFBQUE7QUFBQUEsZ0NBQzFEO1VBQUssTUFBTXNOLGtCQUFrQnpoQixTQUFTO0FBQUE7WUFDaEMsV0FBVTtBQUFBLHNCQUNaeWhCLGtCQUFrQjNmLElBQUksQ0FBQzJiLFFBQVE3RCw0QkFDN0JnRztjQUFnQixXQUFVO0FBQUEsY0FBVztBQUFBLGNBQWdCLEtBQUk7QUFBQSxjQUFHLGdCQUFlO0FBQUEsZUFBaEVoRztBQUFBQTtBQUFBQSxnQ0FJakI7VUFBSyxNQUFNOEgsa0JBQWtCMWhCLFNBQVM7QUFBQTtZQUNoQyxXQUFVO0FBQUEsc0JBQ1owaEIsa0JBQWtCNWYsSUFBSSxDQUFDMmIsUUFBUTdELDRCQUM3QmdHO2NBRUMsV0FBVTtBQUFBLGNBQ1YsUUFBUW5DLE9BQU9uZDtBQUFBQSxjQUNmLEtBQUttZCxPQUFPbUQ7QUFBQUEsY0FDWixVQUFVbkQsT0FBT0M7QUFBQUEsZUFKWjlEO0FBQUFBO0FBQUFBO0FBQUFBO1FBaUJWLFdBQVU7QUFBQSxVQUNkeUgsVUFBVXZmLElBQUksQ0FBQzhoQixLQUFHaEssUUFBUTtZQUNyQkEsTUFBTSxHQUFHOztZQUdQLFdBQVU7QUFBQSxZQUVWLE9BQU87QUFBQSxjQUNMaUssZUFBZSxLQUFLLEtBQUs7QUFBQSxjQUN6QjFSLGFBQWEsS0FBSyxJQUFJO0FBQUEsY0FDdEI2TCxPQUFRLHNCQUFxQixLQUFLO0FBQUEsY0FDbEM4RixRQUFRLENBQUNsSyxNQUFNO0FBQUE7QUFBQSxhQUxaQTtBQUFBQSxlQVFKO2lCQUNFO0FBQUE7QUFBQTtBQUFBLFFBSVp5SCxVQUFVcmhCLFNBQVM7TUFDYixXQUFVO0FBQUE7UUFDVixXQUFVO0FBQUEsOEJBQXNCcWhCLFVBQVVyaEI7VUFDNUNxaEIsVUFBVXZmLElBQUtuSyxRQUFNO2NBQ2Rvc0IsVUFBVUMsbUJBQW1CTCxrQkFBa0Joc0IsR0FBRXdjLFVBQVVvQixXQUFXLE1BQU07O1VBRTNFLFdBQVU7QUFBQSxVQUFtQyxTQUFTLE1BQU1nTyxzQkFBc0I1ckI7QUFBQUE7WUFDL0UsV0FBVTtBQUFBLHVCQUFhQSxHQUFFaXJCO2NBQzlCbUI7QUFBQUEsV0FGeUNwc0IsR0FBRUc7QUFBQUE7QUFBQUEsU0FPbEQsTUFDSHlwQixZQUFZdmhCLFNBQVM7TUFDZixXQUFVO0FBQUE7UUFDVixXQUFVO0FBQUEsbUJBQWV1aEIsWUFBWXZoQjtVQUN2Q3VoQixZQUFZemYsSUFBS25LLFFBQU07Y0FDaEJvc0IsVUFBVUMsbUJBQW1CTCxrQkFBa0Joc0IsR0FBRXdjLFVBQVVvQixXQUFXLE1BQU07O1VBRTNFLFdBQVU7QUFBQSxVQUFtQyxTQUFTLE1BQU1nTyxzQkFBc0I1ckI7QUFBQUE7WUFDL0UsV0FBVTtBQUFBLHVCQUFhQSxHQUFFaXJCO2NBQzlCbUI7QUFBQUEsV0FGeUNwc0IsR0FBRUc7QUFBQUE7QUFBQUEsU0FPbEQ7QUFBQTtBQUFBOzRCQUtpQ21wQixPQUF3QjthQUUvRDtBQUFBLElBQ0V6a0IsV0FBVztBQUFBLEtBRWJ3a0IsZ0JBQ0E7QUFBQSxJQUFDQztBQUFBQTtBQUFBQTtBQ3BVTCxNQUFNLG9CQUFvQixJQUFJO0FBRTlCLE1BQU0sMkJBQTJCLE9BQU8sS0FBYSxXQUFXLFNBQTBCO1FBQ2xGLEVBQUMsVUFBUyxrQkFBa0IsV0FBVztNQUV6QyxZQUFZLGtCQUFrQixJQUFJLE1BQU07V0FDbkMsUUFBUSxRQUFRLGtCQUFrQixJQUFJO0FBQUE7TUFLM0MsQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNO1FBQzFCLE1BQU0sTUFBTSxRQUFRLE9BQU8sTUFBTTtZQUM3QixTQUFTLE1BQU0sTUFBTSxRQUFRLFdBQVc7WUFDeEMsTUFBTSxJQUFJLFdBQVc7WUFFckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUMsTUFBTTthQU83QixJQUFJLFFBQVEsQ0FBQyxZQUFZO2NBQ3hCLFNBQVMsSUFBSTtlQUNaLFlBQVksTUFBTTtnQkFDakIsWUFBWSxPQUFPOzRCQUNQLElBQUksS0FBSztrQkFDbkI7QUFBQTtlQUVILGNBQWM7QUFBQTtBQUFBO0FBQUEsU0FHcEI7UUFDRDtZQUVJLFdBQVcsTUFBTWdELG1CQUFRO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1I7QUFBQSxRQUNBLGFBQWE7QUFBQTtZQVdULE1BQU0sSUFBSSxjQUFjLE9BQU87WUFDL0IsTUFBSztjQUNILElBQUk7WUFDTixPQUFPLElBQUksS0FBSyxDQUFDLE1BQUssRUFBQyxNQUFNO2FBQzVCLElBQUksUUFBUSxDQUFDLFlBQVk7Y0FDeEIsU0FBUyxJQUFJO2VBQ1osWUFBWSxNQUFNO2dCQUNqQixZQUFZLE9BQU87NEJBQ1AsSUFBSSxLQUFLO2tCQUNuQjtBQUFBO2VBRUgsY0FBYztBQUFBO0FBQUEsYUFHaEI7Y0FDQyxJQUFJLDBDQUEwQyxLQUFLO0FBQUE7QUFBQTtBQUFBO0FDL0RqRSxNQUFNLHdCQUF3QixPQUFPLFlBQXlCO1FBQ3RELHlCQUF5QixTQUFTLGNBQWMsUUFBUTt5QkFFdkMsWUFBWSxRQUFRO1FBRXJDLGVBQWMsT0FBTyxlQUE0QixrQkFBK0I7O1FBQ2hGLENBQUMsaUJBQWlCLENBQUMsZUFBZTs7O1VBSWhDLGVBQWUsT0FBTyxpQkFBaUI7UUFFekMsY0FBYyxZQUFZLE9BQU87VUFDL0I7Y0FDSSxNQUFNLE1BQU0seUJBQ2hCLG9CQUFjLGFBQWEsWUFBM0IsWUFBc0MsY0FBYyxhQUFhO0FBRWxFLHNCQUFtQyxNQUFNO0FBQUEsZUFDbkM7OztlQUtBLFFBQVEsY0FBYztvQkFDakIsTUFBTSxZQUNsQixNQUNBLGFBQWEsaUJBQWlCLE9BQzlCLGFBQWEsb0JBQW9CO0FBQUE7YUFJNUIsSUFBSSxHQUFHLElBQUksY0FBYyxtQkFBbUIsS0FBSztZQUNsRCxhQUFZLGNBQWMsU0FBUyxJQUFtQixjQUFjLFNBQVM7QUFBQTtBQUFBO1FBSWpGLGFBQVksU0FBUztTQUVwQjtBQUFBO0FDekNULE1BQU0sdUJBQXVCLE9BQU8sWUFBeUI7UUFDckQsY0FBYyxRQUFRLGNBQWM7UUFDcEMsbUJBQTBDO2FBRXJDLFNBQVMsYUFBYTtlQUNwQixRQUFRLE1BQU0sVUFBVTtVQUM3QixLQUFLLFlBQVksU0FBUyxtQkFBbUI7eUJBQzlCLEtBQU0sS0FBeUI7QUFBQTtBQUFBO0FBQUE7UUFLaEQsZUFBZSxTQUFTLGNBQWM7U0E0QnJDO0FBQUE7QUMzQlQsTUFBTSxpQkFBaUIsQ0FBQyxZQUF5QjtRQUN6QyxFQUFDLE9BQU8sV0FBVSxPQUFPLGlCQUFpQjtTQUV6QztBQUFBLElBQ0wsT0FBTyxTQUFTLE1BQU0sUUFBUSxNQUFNO0FBQUEsSUFDcEMsUUFBUSxTQUFTLE9BQU8sUUFBUSxNQUFNO0FBQUE7QUFBQTtBQUkxQyxNQUFNLHNCQUFzQixDQUFDLFFBQTRCO1FBQ2pELE1BQU0sSUFBSSxnQkFBZ0Isa0JBQWtCO1FBQzVDLE1BQU0sbUJBQW1CO1NBQ3hCLG9DQUFvQztBQUFBO0FBRzdDLE1BQU0scUJBQXFCLENBQUMsT0FBZSxRQUFnQixZQUF3QztRQUMzRixRQUFRO1FBQ1IsYUFBYSxTQUFTLGdCQUFnQixPQUFPO2FBRXhDLGFBQWEsU0FBUyxHQUFHO2FBQ3pCLGFBQWEsVUFBVSxHQUFHO2FBQzFCLGFBQWEsV0FBVyxPQUFPLFNBQVM7UUFFN0MsZ0JBQWdCLFNBQVMsZ0JBQWdCLE9BQU87Z0JBRXhDLGFBQWEsU0FBUztnQkFDdEIsYUFBYSxVQUFVO2dCQUN2QixhQUFhLEtBQUs7Z0JBQ2xCLGFBQWEsS0FBSztnQkFDbEIsYUFBYSw2QkFBNkI7Z0JBRTFDLFlBQVk7YUFDZixZQUFZO1NBRWhCO0FBQUE7TUFHSSxRQUFRLE9BQU8sU0FBc0IsWUFBc0I7UUFDaEUsRUFBQyxPQUFPLFdBQVUsZUFBZTtRQUVqQyxnQkFBZ0IsTUFBTSxzQkFBc0I7TUFFOUMsbUNBQVMsaUJBQWlCO2tCQUNkLE1BQU0sa0JBQWtCLFFBQVE7QUFBQTtRQUcxQyxNQUFNLG1CQUFtQixPQUFPLFFBQVE7TUFDMUMsUUFBUSxNQUFNLHFCQUFxQjtRQUVqQyxNQUFNLG9CQUFvQjtTQUV6QjtBQUFBO01BR0ksV0FBVyxPQUFPLFNBQXNCLFlBQWtEO1FBQy9GLE1BQU0sTUFBTSxNQUFNLFNBQVM7UUFFM0IsVUFBVSxJQUFJO1VBQ1osTUFBTTtRQUVSLFFBQVEsb0NBQVMsZUFBYztRQUMvQixFQUFDLE9BQU8sV0FBVSxlQUFlO1FBRWpDLFNBQVMsU0FBUyxjQUFjO1FBQ2hDLFVBQVUsT0FBTyxXQUFXO01BRTlCLENBQUMsU0FBUztXQUNMLFFBQVEsT0FBTztBQUFBO1NBR2pCLFFBQVEsUUFBUTtTQUNoQixTQUFTLFNBQVM7U0FFbEIsTUFBTSxRQUFRLEdBQUc7U0FDakIsTUFBTSxTQUFTLEdBQUc7TUFFckIsbUNBQVMsaUJBQWlCO1lBQ3BCLFlBQVksUUFBUTtZQUNwQixTQUFTLEdBQUcsR0FBRyxPQUFPLE9BQU8sT0FBTztBQUFBO1NBR3ZDLElBQUksUUFBUSxDQUFDLFlBQVk7WUFDdEIsU0FBUyxNQUFNO2NBQ2IsVUFBVSxTQUFTLEdBQUcsR0FBRyxPQUFPLE9BQU8sT0FBTztjQUU5QztBQUFBO0FBQUE7QUFBQTtBQUtkLE1BQU0sVUFBVSxPQUFPLFNBQXNCLFlBQXNCO1FBQzNELFNBQVMsTUFBTSxTQUFTLFNBQVM7U0FVaEMsT0FBTztBQUFBOzs7TUNuRkhqRSxtQkFBaUIsQ0FBQ2xDLE9BQWM3SSxXQUFpQjtTQUNyRDZJLE1BQU1tQyxnQkFBZ0JoTDtBQUFBQTtBQUcvQixNQUFNaUwsMkJBQXlCLENBQUNDLGFBQXVDOztRQUMvRDtBQUFBLElBQUNDO0FBQUFBLElBQWV0QztBQUFBQSxNQUFTcmUsU0FBU0MsV0FBV0MsZ0JBQWdCQztRQUM3RHlnQixtQkFBbUJDLHlCQUFtQkMsS0FBS0osY0FBeEJHLG1CQUFvQztRQUN2REUsa0JBQWtCRix5QkFBbUJDLEtBQUtKLGNBQXhCRyxtQkFBb0M7UUFDdER4a0IsT0FBT3NrQixjQUFjSyxxQkFBcUJDLG1CQUFtQkwsbUJBQW1CO01BRWxGdmtCLFNBQVMsTUFBTTtXQUNWO0FBQUEsTUFDTDZrQixVQUFVTjtBQUFBQSxNQUNWTyxTQUFTSjtBQUFBQSxNQUNUbGdCLE1BQU07QUFBQSxNQUNORixVQUFVO0FBQUE7QUFBQSxTQUVQO1VBQ0N5Z0IsWUFBWWIsaUJBQWVsQyxPQUFPaGlCO1FBQ3BDMGtCLGlCQUFpQjthQUNaO0FBQUEsUUFDTEcsVUFBVU47QUFBQUEsUUFDVk8sU0FBU0o7QUFBQUEsUUFDVGxnQixNQUFNdWdCO0FBQUFBLFFBQ056Z0IsVUFBVXRFLEtBQUt3RTtBQUFBQTtBQUFBQSxXQUVaO2FBQ0U7QUFBQSxRQUNMcWdCLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVM7QUFBQSxRQUNUdGdCLE1BQU11Z0I7QUFBQUEsUUFDTnpnQixVQUFVdEUsS0FBS3dFO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBTXZCLE1BQU13Z0IseUJBQXVCLENBQUNYLGFBQXVDOztRQUM3RDtBQUFBLElBQUNDO0FBQUFBLElBQWV0QztBQUFBQSxNQUFTcmUsU0FBU0MsV0FBV0MsZ0JBQWdCQztRQUM3RHlnQixtQkFBbUJVLHVCQUFpQlIsS0FBS0osY0FBdEJZLG1CQUFrQztRQUNyRFAsa0JBQWtCTyx1QkFBaUJSLEtBQUtKLGNBQXRCWSxtQkFBa0M7UUFDcERqbEIsT0FBT3NrQixjQUFjSyxxQkFBcUJDLG1CQUFtQkwsbUJBQW1CO01BRWxGdmtCLFNBQVMsTUFBTTtXQUNWO0FBQUEsTUFDTDZrQixVQUFVTjtBQUFBQSxNQUNWTyxTQUFTSjtBQUFBQSxNQUNUbGdCLE1BQU07QUFBQSxNQUNORixVQUFVO0FBQUE7QUFBQSxTQUVQO1VBQ0N5Z0IsWUFBWWIsaUJBQWVsQyxPQUFPaGlCO1FBQ3BDMGtCLGlCQUFpQjthQUNaO0FBQUEsUUFDTEcsVUFBVU47QUFBQUEsUUFDVk8sU0FBU0o7QUFBQUEsUUFDVGxnQixNQUFNdWdCO0FBQUFBLFFBQ056Z0IsVUFBVXRFLEtBQUt3RTtBQUFBQTtBQUFBQSxXQUVaO2FBQ0U7QUFBQSxRQUNMcWdCLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVM7QUFBQSxRQUNUdGdCLE1BQU11Z0I7QUFBQUEsUUFDTnpnQixVQUFVdEUsS0FBS3dFO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBTXZCLE1BQU00akIsdUJBQXdDLENBQUM1cEIsVUFBaUI7O1FBQ3hEO0FBQUEsSUFBQzJtQixNQUFNa0Q7QUFBQUEsSUFBVzVsQjtBQUFBQSxNQUFXakU7UUFDN0I7QUFBQSxJQUFDOHBCO0FBQUFBLE1BQVMza0IsU0FBU0MsV0FBVzJrQjtNQUNoQ0M7TUFDQUM7TUFDQUgsTUFBTXBrQixRQUFRO2tCQUNGb2tCLE1BQU1wa0IsU0FBUztrQkFDZm9rQixRQUNWSSxLQUFLQyxXQUFXMU8sUUFBUTlkLFFBQU1nckIsbUJBQW1CbUIsTUFBTUUsYUFBYWxELGNBQWMsTUFBTyxPQUFPLE1BQ2hHO0FBQUE7UUFHQUgsUUFBc0IsaUNBQ3ZCa0QsWUFEdUI7QUFBQSxJQUUxQmhELGNBQWNscEIsUUFBTTRkLGtCQUFrQnNPLFVBQVUvQztBQUFBQTtRQUs1Q3NELFlBQVlDLGVBQWV2VixRQUFRLGNBQWN3VjtRQUNqREMsY0FBY0MsaUJBQWlCMVYsUUFBUSxjQUFjZ1YsTUFBTXBrQixPQUFPK2tCLFlBQVkzVixRQUNsRixhQUNBbVYsWUFBWVE7TUFHVnRELG9CQUFvQjtNQUNwQkMsb0JBQW9CO01BQ3BCQyxrQkFBa0M7TUFDbENDLGtCQUFrQjtNQUNsQkMsY0FBY0MsS0FBS2IsTUFBSzlNLFVBQVU7UUFDaEM0Tix1QkFBdUI7UUFDdkJDLDJCQUEyQjtRQUMzQmpCLGlCQUFpQmUsS0FBS2IsTUFBSzlNLFVBQVU7d0JBQ3JCOE4sTUFBTXhHLEtBQUt3RixNQUFLOU0sUUFBUXBSLE1BQU1nZTtBQUFBQTtRQUU5Q1QsbUJBQW1Cd0IsS0FBS2IsTUFBSzlNLFVBQVU7d0JBQ3ZCOE4sTUFBTXhHLEtBQUt3RixNQUFLOU0sUUFBUXBSLE1BQU11ZDtBQUFBQTtRQUc5QzRCLHFCQUFxQkosS0FBS2IsTUFBSzlNLFVBQVU7NkJBQ3BCOE4sTUFBTXhHLEtBQUt3RixNQUFLOU0sUUFBUXBSLE1BQU1tZjtBQUFBQTtRQUVuRE4sZ0JBQWdCNWhCLFFBQVE7ZUFDakJFLElBQUksR0FBR0EsSUFBSTBoQixnQkFBZ0I1aEIsUUFBUUUsS0FBSztZQUMzQ2lpQixNQUFNUCxnQkFBZ0IxaEI7MEJBQ1JraUIsS0FBS2xDLHlCQUF1QmlDO0FBQUFBO0FBQUFBO1FBRzlDUixnQkFBZ0IzaEIsUUFBUTtlQUNqQkUsSUFBSSxHQUFHQSxJQUFJeWhCLGdCQUFnQjNoQixRQUFRRSxLQUFLO1lBQzNDbWlCLE1BQU1WLGdCQUFnQnpoQjtZQUN0QixtQkFBbUI0aEIsS0FBS08sTUFBTTttQ0FDUEQsS0FBS3JCLHVCQUFpQlIsS0FBSzhCLFNBQXRCdEIsbUJBQTZCO0FBQUEsZUFDdEQ7NEJBQ2FxQixLQUFLdEIsdUJBQXFCdUI7QUFBQUE7QUFBQUE7QUFBQUE7d0JBSTlCTixxQkFBcUJ6WSxPQUFPMFk7QUFBQUE7UUFJNUMsQ0FBQ2dELGdCQUFnQkMscUJBQXFCbHJCLHFDQUFTO1FBQy9DLENBQUNtckIsV0FBV0MsZ0JBQWdCcHJCLHFDQUFTMG5CLGtCQUFrQnpoQjtRQUN2RG9sQixZQUFZaG9CLG1DQUF1Qjt3Q0FFL0IsTUFBTTtRQUNWOG5CLFlBQVksR0FBRzs7O2VBSVIsTUFBTTtVQUNYLENBQUNFLFVBQVUzbkIsU0FBUzs7O2NBSWhCMm5CLFVBQVUzbkIsU0FBUztBQUFBLFFBQ3pCNG5CLGlCQUFpQjtBQUFBLFFBQ2pCQyxZQUFZM1csT0FBTzRXLG1CQUFtQjtBQUFBLFNBRXJDaGIsS0FBTWlLLFNBQVE7MEJBQ0tBO0FBQUFBLFNBRW5Ca0csTUFBTSxNQUFNO0FBQUE7QUFBQSxPQUdkMEM7QUFBQUEsS0FDRixDQUFDOEg7UUFFRWpILHNCQUFzQixNQUFNOzs7UUFJNUJHLHNCQUFzQixDQUFDQyxRQUFnQnZTLFNBQWlCO1FBQ3hEd1MsUUFBUTNQLE9BQU80UCxLQUFLRjtRQUNwQkcsTUFBSyxJQUFJQyxZQUFZSCxNQUFNdGU7UUFDM0IwZSxNQUFLLElBQUlDLFdBQVdIO2FBQ2Z0ZSxJQUFJLEdBQUdBLElBQUlvZSxNQUFNdGUsUUFBUUUsS0FBSztVQUNsQ0EsS0FBS29lLE1BQU1NLFdBQVcxZTtBQUFBQTtXQUVwQixJQUFJMmUsS0FBSyxDQUFDTCxNQUFLO0FBQUEsTUFBQzFTO0FBQUFBO0FBQUFBO1FBR25CMFosZ0NBQWdDLE1BQU07VUFDcENDLE9BQU8xYyxTQUFTSyxjQUFjO1VBQzlCMlYsV0FBVzBHLEtBQUtDLGFBQWEsT0FBTzFHLE1BQU0sV0FBVztVQUNyREMsWUFBWWIsb0JBQW9CVyxVQUFVO1VBQzFDRyxxQkFBcUIsSUFBSUMsY0FBYztBQUFBLG1CQUFjRjtBQUFBQTtXQUVwREcsVUFBVSxhQUFhQyxNQUFNLENBQUNIO1FBQ2pDeGxCLGtCQUFPO0FBQUE7UUFHUGlzQixvQkFBb0IsQ0FBQ0MsT0FBK0M7UUFDcEVBLEdBQUc5WixTQUFTLFNBQVM7VUFDbkJwUyxrQkFBTztBQUNWa3NCLFNBQUdqZ0IsT0FBNEJuSDtBQUFBQTtpQkFFckIwbUIsWUFBWTtBQUFBOzs7TUFLbEIsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBO1VBQ0wsV0FBVTtBQUFBOzs7UUFFYixXQUFVO0FBQUE7VUFDTCxXQUFVO0FBQUEsVUFBZSxTQUFTTTtBQUFBQTtZQUNuQyxXQUFVO0FBQUEsWUFBVyxLQUFLSztBQUFBQTtBQUFBQTtVQUV6QixXQUFVO0FBQUEsVUFBZ0IsU0FBUzVIO0FBQUFBO1lBQ3BDLFdBQVU7QUFBQSxZQUFXLEtBQUswQjtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtNQUloQyxXQUFVO0FBQUE7UUFDUixXQUFZLHVCQUFzQnFGLGlCQUFpQixXQUFXO0FBQUE7VUFDOUQsV0FBVTtBQUFBLG9CQUFZQSxpQkFBaUIsbUNBQThCO0FBQUE7QUFBQTtRQUVyRSxXQUFVO0FBQUEsUUFBaUIsS0FBS0k7QUFBQUEsdUNBQ2xDO1VBQUssTUFBTUosbUJBQW1CO0FBQUE7WUFDeEIsV0FBVTtBQUFBLFlBQW9CLEtBQUtBO0FBQUFBO0FBQUFBO1VBRXBDLFdBQVU7QUFBQSxvQkFBYS9ELE1BQUtFO0FBQUFBO1VBQzdCLFdBQVU7QUFBQSxVQUFvQix5QkFBeUI7QUFBQSxZQUFDdUMsUUFBUUMsa0JBQWtCMUMsTUFBSzlNO0FBQUFBO0FBQUFBLGdDQUMzRjtVQUFLLE1BQU1zTixrQkFBa0J6aEIsU0FBUztBQUFBO1lBQ2hDLFdBQVU7QUFBQSxzQkFDWnloQixrQkFBa0IzZixJQUFJLENBQUMyYixRQUFRN0Q7Y0FFNUIsYUFBWTtBQUFBLGNBQ1osVUFBUztBQUFBLGNBRVQsS0FBSzZEO0FBQUFBLGNBQ0wsS0FBSTtBQUFBLGNBQ0osZ0JBQWU7QUFBQSxjQUNmLFFBQVFrSTtBQUFBQSxjQUNSLFNBQVNBO0FBQUFBLGVBTEovTDtBQUFBQTtBQUFBQSxnQ0FVWjtVQUFLLE1BQU04SCxrQkFBa0IxaEIsU0FBUztBQUFBO1lBQ2hDLFdBQVU7QUFBQSxzQkFDWjBoQixrQkFBa0I1ZixJQUFJLENBQUMyYixRQUFRN0Q7Y0FDZixXQUFVO0FBQUEsY0FBVyxLQUFLNkQsT0FBT25kO0FBQUFBLGNBQU0sS0FBS21kLE9BQU9tRDtBQUFBQSxjQUFTLE1BQU1uRCxPQUFPcmQ7QUFBQUEsZUFBOUV3WjtBQUFBQTtBQUFBQTtVQUlYLFdBQVU7QUFBQTtZQUNQLFdBQVU7QUFBQTtjQUNSLFdBQVU7QUFBQSx3QkFBYWlMO0FBQUFBO0FBQUFBO1lBRXpCLFdBQVU7QUFBQTtjQUNSLFdBQVU7QUFBQSx3QkFBYUg7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7a0NBU016RCxPQUF3QjthQUVyRTtBQUFBLElBQ0V6a0IsV0FBVztBQUFBLEtBRWIwbkIsc0JBQ0E7QUFBQSxJQUFDakQ7QUFBQUE7QUFBQUE7O01DL1JRLHVCQUF1QixPQUFPLFdBQWlDO1FBQ3BFLEVBQUMsV0FBSyxlQUFjLGtCQUFrQjtRQUV0QyxVQUFVLFNBQVMsT0FBTyxNQUFNO1FBQ2hDLGlCQUFpQixPQUFPLE1BQU0sR0FBRztRQUNqQyxPQUFPOW5CLGtCQUFPLGdCQUFnQjtRQUM5QixPQUFPRCxlQUFhLE1BQU07TUFDNUIsQ0FBQ29ZLG9CQUFTLFVBQVU7VUFDaEIsT0FBTyxLQUFJLFVBQVU7U0FDdEIsU0FBUyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU07QUFBQSxTQUMvQjtRQUNELE9BQU8sS0FBSSxVQUFVO1FBQ3JCLFNBQVMsTUFBTTthQUNWLEtBQUksVUFBVSxRQUFRO0FBQUE7U0FFMUIsU0FBUyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU07QUFBQTs7OztNQ21CM0IwTyxtQkFBaUIsQ0FBQ2xDLE9BQWM3SSxXQUFpQjtTQUNyRDZJLE1BQU1tQyxnQkFBZ0JoTDtBQUFBQTtBQUcvQixNQUFNaUwsMkJBQXlCLENBQUNDLGFBQXVDOztRQUMvRDtBQUFBLElBQUNDO0FBQUFBLElBQWV0QztBQUFBQSxNQUFTcmUsU0FBU0MsV0FBV0MsZ0JBQWdCQztRQUM3RHlnQixtQkFBbUJDLHlCQUFtQkMsS0FBS0osY0FBeEJHLG1CQUFvQztRQUN2REUsa0JBQWtCRix5QkFBbUJDLEtBQUtKLGNBQXhCRyxtQkFBb0M7UUFDdER4a0IsT0FBT3NrQixjQUFjSyxxQkFBcUJDLG1CQUFtQkwsbUJBQW1CO01BRWxGdmtCLFNBQVMsTUFBTTtXQUNWO0FBQUEsTUFDTDZrQixVQUFVTjtBQUFBQSxNQUNWTyxTQUFTSjtBQUFBQSxNQUNUbGdCLE1BQU07QUFBQSxNQUNOb2QsVUFBVTtBQUFBO0FBQUEsU0FFUDtVQUNDbUQsWUFBWWIsaUJBQWVsQyxPQUFPaGlCO1VBQ2xDc0UsV0FBV3RFLEtBQUt3RTtRQUNsQmtnQixpQkFBaUI7YUFDWjtBQUFBLFFBQ0xHLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVNKO0FBQUFBLFFBQ1RsZ0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBLFdBRVA7YUFDRTtBQUFBLFFBQ0x1Z0IsVUFBVU47QUFBQUEsUUFDVk8sU0FBUztBQUFBLFFBQ1R0Z0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBTWxCLE1BQU0wZ0IseUJBQXVCLENBQUNYLGFBQXVDOztRQUM3RDtBQUFBLElBQUNDO0FBQUFBLElBQWV0QztBQUFBQSxNQUFTcmUsU0FBU0MsV0FBV0MsZ0JBQWdCQztRQUM3RHlnQixtQkFBbUJVLHVCQUFpQlIsS0FBS0osY0FBdEJZLG1CQUFrQztRQUNyRFAsa0JBQWtCTyx1QkFBaUJSLEtBQUtKLGNBQXRCWSxtQkFBa0M7UUFDcERqbEIsT0FBT3NrQixjQUFjSyxxQkFBcUJDLG1CQUFtQkwsbUJBQW1CO01BQ2xGdmtCLFNBQVMsTUFBTTtXQUNWO0FBQUEsTUFDTDZrQixVQUFVTjtBQUFBQSxNQUNWTyxTQUFTSjtBQUFBQSxNQUNUbGdCLE1BQU07QUFBQSxNQUNOb2QsVUFBVTtBQUFBO0FBQUEsU0FFUDtVQUNDbUQsWUFBWWIsaUJBQWVsQyxPQUFPaGlCO1VBQ2xDc0UsV0FBV3RFLEtBQUt3RTtRQUNsQmtnQixpQkFBaUI7YUFDWjtBQUFBLFFBQ0xHLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVNKO0FBQUFBLFFBQ1RsZ0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBLFdBRVA7YUFDRTtBQUFBLFFBQ0x1Z0IsVUFBVU47QUFBQUEsUUFDVk8sU0FBUztBQUFBLFFBQ1R0Z0IsTUFBTXVnQjtBQUFBQSxRQUNObkQsVUFBVXRkO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBTWxCLE1BQU0wbEIsT0FBd0IsQ0FBQ3hyQixVQUFpQjs7UUFDeEM7QUFBQSxJQUFDMm1CLE1BQU1rRDtBQUFBQSxNQUFhN3BCO1FBQ3BCMm1CLFFBQXNCLGlDQUN2QmtELFlBRHVCO0FBQUEsSUFFMUJoRCxjQUFjbHBCLFFBQU00ZCxrQkFBa0JzTyxVQUFVL0M7QUFBQUE7UUFFNUMsQ0FBQzJFLHNCQUFzQkMsMEJBQTBCdlYsVUFBVTtNQUk3RGdSLG9CQUFvQjtNQUNwQkMsb0JBQW9CO01BQ3BCQyxrQkFBa0M7TUFDbENDLGtCQUFrQjtNQUNsQkMsY0FBY0MsS0FBS2IsTUFBSzlNLFVBQVU7UUFDaEM0Tix1QkFBdUI7UUFDdkJDLDJCQUEyQjtRQUMzQmpCLGlCQUFpQmUsS0FBS2IsTUFBSzlNLFVBQVU7d0JBQ3JCOE4sTUFBTXhHLEtBQUt3RixNQUFLOU0sUUFBUXBSLE1BQU1nZTtBQUFBQTtRQUU5Q1QsbUJBQW1Cd0IsS0FBS2IsTUFBSzlNLFVBQVU7d0JBQ3ZCOE4sTUFBTXhHLEtBQUt3RixNQUFLOU0sUUFBUXBSLE1BQU11ZDtBQUFBQTtRQUc5QzRCLHFCQUFxQkosS0FBS2IsTUFBSzlNLFVBQVU7NkJBQ3BCOE4sTUFBTXhHLEtBQUt3RixNQUFLOU0sUUFBUXBSLE1BQU1tZjtBQUFBQTtRQUVuRE4sZ0JBQWdCNWhCLFFBQVE7ZUFDakJFLElBQUksR0FBR0EsSUFBSTBoQixnQkFBZ0I1aEIsUUFBUUUsS0FBSztZQUMzQ2lpQixNQUFNUCxnQkFBZ0IxaEI7MEJBQ1JraUIsS0FBS2xDLHlCQUF1QmlDO0FBQUFBO0FBQUFBO1FBRzlDUixnQkFBZ0IzaEIsUUFBUTtlQUNqQkUsSUFBSSxHQUFHQSxJQUFJeWhCLGdCQUFnQjNoQixRQUFRRSxLQUFLO1lBQzNDbWlCLE1BQU1WLGdCQUFnQnpoQjtZQUN0QixtQkFBbUI0aEIsS0FBS08sTUFBTTttQ0FDUEQsS0FBS3JCLHVCQUFpQlIsS0FBSzhCLFNBQXRCdEIsbUJBQTZCO0FBQUEsZUFDdEQ7NEJBQ2FxQixLQUFLdEIsdUJBQXFCdUI7QUFBQUE7QUFBQUE7QUFBQUE7d0JBSTlCTixxQkFBcUJ6WSxPQUFPMFk7QUFBQUE7UUFJNUNpRSw0QkFBNEIsTUFBTTt1QkFDbkJoRjtBQUFBQTtRQUdmaUYsc0JBQXNCLE1BQU07UUFDNUJ6VSx5QkFBeUJDLDBCQUEwQixVQUFVO1VBQzNEeVUsT0FBT3BkLFNBQVNLLGNBQ2xCO1VBRUUsT0FBTytjLEtBQUsvVCxXQUFXLGNBQWMrVCxTQUFTcG1CLFFBQVc7YUFDdERxUyxRQUFRaEwsTUFBTStlO0FBQUFBO0FBQUFBO3VCQUlKclMsY0FBY21OLE1BQUtucEI7QUFBQUE7UUFHbENzdUIsc0JBQXNCLE1BQU07UUFDNUIzVSx5QkFBeUJDLDBCQUEwQixVQUFVO1VBQzNEeVUsT0FBT3BkLFNBQVNLLGNBQ2xCO1VBRUUsT0FBTytjLEtBQUsvVCxXQUFXLGNBQWMrVCxTQUFTcG1CLFFBQVc7YUFDdERxUyxRQUFRaEwsTUFBTStlO0FBQUFBO0FBQUFBO3VCQUlKblEsY0FBY2lMLE1BQUtucEI7QUFBQUE7UUFHbEN1dUIsd0JBQXdCLE1BQU07eUJBQ2JwRixNQUFLbnBCO0FBQUFBO1FBR3RCd3VCLHdCQUF3QixZQUFZO1FBQ3BDUCxzQkFBc0I7VUFDcEI7Y0FDSTlSLFlBQVlzUyxhQUFhdEYsTUFBS25wQjtBQUFBQSxlQUM3QnNkO1lBQ0gxYixrQkFBTzBiLE9BQU1pQjtBQUFBQTtVQUdmZixtQkFBbUI1VixXQUFXcVUsZUFBZWtOLE1BQUtucEIsSUFBSTsyQkFDckNrZSxjQUFjO0FBQUE7QUFBQSxXQUU5Qjs7OztRQUtId1EsOEJBQThCLE1BQU07UUFDcENULHNCQUFzQjs2QkFDRDtBQUFBO0FBQUE7UUFJckJVLDZCQUE2QixNQUFNOzZCQUNkeEY7QUFBQUE7UUFHckJ5RixvQkFBb0Ixc0Isd0NBQVksQ0FBQ3VGLFVBQTRCO1FBQzdEQSxNQUFNdUIsV0FBV3ZCLE1BQU1zQixTQUFTOzs7S0FHbkM7UUFFRzhsQiwwQkFBMEIzc0Isd0NBQVksQ0FBQ3VGLFVBQTRCO1FBQ25FQSxPQUFPOzs7S0FHVjtRQUVHMmpCLHlCQUF5QixPQUFPdGIsTUFBd0I7O1VBQ3REdWIsV0FBV3ZiLEVBQUVqQztRQUVmd2QsU0FBUzNtQixjQUFjLGtCQUFrQjtZQUNyQ29xQixTQUFTekQsZ0JBQVNFLFlBQVRGLG9CQUFrQnpsQjtZQUMzQmlsQixXQUFXMU8sWUFBWUMsWUFBWTBTLDBCQUFVO1VBRS9DakUsVUFBVTsyQkFDT0E7QUFBQUEsYUFDZDtZQUNEanBCLGtCQUFPO2lCQUNGdWpCLFVBQVV6ZSxPQUFPO0FBQUE7QUFBQSxlQUVuQjJrQixTQUFTM21CLGNBQWM7QUFBYztBQUFBOztJQU85QyxXQUFZLGdCQUFlLFdBQVd5a0IsTUFBS25wQixNQUFNbXBCLE1BQUt0TDtBQUFBQSxJQUN0RCxjQUFjNlE7QUFBQUEsSUFDZCxhQUFhRTtBQUFBQSxJQUNiLGVBQWVDO0FBQUFBO01BQ1YsV0FBVTtBQUFBO1FBQ1AsV0FBVTtBQUFBLFFBQVksU0FBU1Y7QUFBQUEsa0JBQ2xDaEYsTUFBS0U7QUFBQUE7UUFFSCxXQUFVO0FBQUE7VUFDUCxXQUFVO0FBQUE7WUFDVCxXQUFVO0FBQUEsWUFBVyxLQUFLMEY7QUFBQUE7QUFBQUE7VUFFNUIsV0FBVTtBQUFBO1lBQ1IsV0FBVTtBQUFBO2NBQ1AsV0FBVTtBQUFBLGNBQU0sU0FBU1o7QUFBQUE7O2NBR3pCLFdBQVU7QUFBQSxjQUFNLFNBQVNDO0FBQUFBOztjQUd6QixXQUFVO0FBQUEsY0FBTSxTQUFTTztBQUFBQTs7Y0FHekIsV0FBVTtBQUFBLGNBQU0sU0FBU0w7QUFBQUE7O2NBR3pCLFdBQVU7QUFBQSxjQUFNLFNBQVNDO0FBQUFBOztjQUk3QixXQUFZLGtCQUFpQk4sdUJBQXVCLGtCQUFrQjtBQUFBLGNBQ3RFLFNBQVNPO0FBQUFBLHdCQUNSUCx1QkFBdUIsa0JBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO01BTzdDLFdBQVU7QUFBQSxNQUNWLFNBQVM3QztBQUFBQSxNQUNULHlCQUF5QjtBQUFBLFFBQUNRLFFBQVFDLGtCQUFrQjFDLE1BQUs5TSxTQUFTOE0sTUFBS25wQjtBQUFBQTtBQUFBQSw0QkFDeEU7TUFBSyxNQUFNMnBCLGtCQUFrQnpoQixTQUFTO0FBQUE7UUFDaEMsV0FBVTtBQUFBLGtCQUNaeWhCLGtCQUFrQjNmLElBQUksQ0FBQzJiLFFBQVE3RCw0QkFDN0JnRztVQUFNLEtBQUk7QUFBQSxVQUFhLFdBQVU7QUFBQSxVQUFXO0FBQUEsVUFBZ0IsZ0JBQWU7QUFBQSxXQUF6RGhHO0FBQUFBO0FBQUFBLDRCQUl4QjtNQUFLLE1BQU04SCxrQkFBa0IxaEIsU0FBUztBQUFBO1FBQ2hDLFdBQVU7QUFBQSxrQkFDWjBoQixrQkFBa0I1ZixJQUFJLENBQUMyYixRQUFRN0QsNEJBQzdCZ0c7VUFFQyxXQUFVO0FBQUEsVUFDVixRQUFRbkMsT0FBT25kO0FBQUFBLFVBQ2YsS0FBS21kLE9BQU9tRDtBQUFBQSxVQUNaLFVBQVVuRCxPQUFPQztBQUFBQSxXQUpaOUQ7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7MkJBb0JlekYsU0FBaUIyUyxRQUFpQjs7WUFDeERDLFdBQVc1UztZQUNYNlMsbUJBQW1CN1MsU0FDMUI2SyxNQUFNLFFBQ05sZCxJQUFLNlgsUUFBTTtXQUNGLE1BQUtBLE9BQU0sS0FBS0EsS0FBSTtBQUFBLEtBRTdCc04sS0FBSztRQUVGO0FBQUEsSUFBQ0M7QUFBQUEsSUFBeUJDO0FBQUFBLE1BQXNCN1IsbUJBQW1CNVY7TUFFckV3bkIseUJBQXlCO2NBQ2pCRSxrQkFBa0JqVCxTQUFTMlM7QUFBQUE7TUFHbkNLLG9CQUFvQjtjQUNaaFQsUUFBUS9FLFFBQVFrUixvQkFBb0IsSUFBSWxSLFFBQVEyUixrQkFBa0IsSUFBSTNSLFFBQVF5UyxlQUFlO0FBQUE7WUFZL0YxTixRQUNQL0UsUUFBUWlZLFNBQVMscUNBQ2pCalksUUFBUWtZLGVBQWUsd0NBQ3ZCbFksUUFBUW1ZLFVBQVUsdUVBQ2xCblksUUFBUW9ZLGFBQWEscUVBQ3JCcFksUUFBUXFULGVBQWU7UUFhcEJnRixtQkFBbUIxZSxTQUFTMEYsY0FBYzttQkFDL0JnSSxZQUFZdEM7V0FDcEJqVSxJQUFJLEdBQUdBLElBQUl1bkIsaUJBQWlCbHRCLFNBQVN5RixRQUFRRSxLQUFLO1VBQ25Ed25CLElBQUlELGlCQUFpQmx0QixTQUFTMkY7UUFFaEN3bkIsRUFBRXZZLFlBQVksT0FBT3VZLEVBQUVyWSxnQkFBZ0IsTUFBTXFZLFNBQUUxSyxzQkFBRjBLLG1CQUFxQnZZLGFBQVksTUFBTTtRQUNwRjNROzs7OztTQU1DaXBCLGlCQUFpQmhSO0FBQUFBO0FBRzFCLGFBQWV3SyxpQ0FBSzZFOztBQzVXcEIsTUFBTTZCLFdBQTRCLE1BQU07UUFDaEM7QUFBQSxJQUNKM08sZUFBZTtBQUFBLE1BQUNDO0FBQUFBO0FBQUFBLElBQ2hCb0wsV0FBVztBQUFBLE1BQUNEO0FBQUFBO0FBQUFBLE1BQ1Y5bkIsdUNBQVdDO1FBS1QsQ0FBQ3FyQixZQUFZQyxrQkFBa0I5dEIscUNBQVM7UUFDeEMrdEIsaUJBQWlCMXFCLG1DQUF1QjtRQUN4QztBQUFBLElBQUNxYixLQUFLNEM7QUFBQUEsSUFBVTdJO0FBQUFBLElBQVUxRyxNQUFNNko7QUFBQUEsSUFBVXZXLE1BQU1rYztBQUFBQSxJQUFXdkIsUUFBUWdPO0FBQUFBLE1BQVc5TztRQUU5RXNDLGNBQWNsQixhQUFhQyxhQUFheU47UUFDeENDLGlCQUFpQnRnQixRQUNyQjJULFlBQWE3SSxZQUFZQSxTQUFTaUosT0FBT2pKLFNBQVNrSixNQUFPL0YsWUFBWTJGLGFBQWFDO1FBRzlFME0sYUFDSkQsa0JBQWtCek0sZUFBZTJNLGdCQUM3QjlELE1BQU1ySyxPQUFRa0gsV0FBUzs7UUFDakJrSCxhQUFhO1FBRWJsSCxNQUFLdEwsYUFBYTVWLFFBQVc7VUFDM0Jtb0IsaUJBQWlCakgsTUFBS3RMLGFBQWEsYUFBYTtxQkFDckM7QUFBQTtBQUFBO1FBSWI0RixhQUFhO1lBQ1Q2TSxVQUFVQyxLQUFLQyxNQUFNL00sWUFBWWdOO1VBQ25DdEcsTUFBTXVHLFFBQVFKLFVBQVU7cUJBQ2JLLCtCQUErQnhILE9BQU1tSDtBQUFBQTtBQUFBQTtRQUlsRC9NLFVBQVU7WUFDTnFOLFVBQVUsSUFBSUM7aUJBQ1RoUCxNQUFLc0ksTUFBTXhHLEtBQUt3RixZQUFLOU0sUUFBUXBSLE1BQU1za0IsYUFBbkJwRyxZQUErQixLQUFLO2NBQ3ZEeEksT0FBTWtCLEdBQUV2SyxRQUFRaVksU0FBUyxNQUFNMVE7Y0FDL0JpUyxRQUFRblEsS0FBSXVHLE1BQU07WUFDcEI2SixPQUFPO21CQUNBM29CLEtBQUswb0IsT0FBTztrQkFDYjFvQjtrQkFDQStiLElBQUk0TTtrQkFDSjtBQUFBO0FBQUE7aUJBR0RsUCxNQUFLc0ksTUFBTXhHLEtBQUt3RixZQUFLOU0sUUFBUXBSLE1BQU0rbEIsdUJBQW5CN0gsWUFBeUMsS0FBSztjQUNqRXhJLE9BQU1rQixHQUFFdkssUUFBUTBaLG1CQUFtQixNQUFNblM7Y0FDekNpUyxRQUFRblEsS0FBSXVHLE1BQU07WUFDcEI2SixPQUFPO21CQUNBM29CLEtBQUswb0IsT0FBTztrQkFDYjFvQjtrQkFDQStiLElBQUk0TTtrQkFDSjtBQUFBO0FBQUE7VUFHUixDQUFDSCxRQUFRSyxJQUFJMU4sV0FBVztxQkFDYjtBQUFBO0FBQUE7UUFJZjdJLFlBQ0FBLFNBQVNpSixPQUFPakosU0FBU2tKLGVBQ2xCdUgsbUJBQW1CaEMsTUFBS0csYUFBYTVPLFNBQVNpSixRQUNuRHhqQixRQUFNZ3JCLG1CQUFtQmhDLE1BQUtHLGFBQWE1TyxTQUFTa0osS0FDdEQ7bUJBQ2E7QUFBQTtRQUVYL0YsVUFBVTtVQUVWQSxhQUFhLHVCQUNQeEIsUUFBUXBSLE1BQU1za0IsYUFBYSxRQUFRcEcsTUFBSzlNLFFBQVFwUixNQUFNK2xCLHVCQUF1QixPQUNuRjtxQkFDYTtBQUFBLGlCQUNKblQsYUFBYSxZQUFZc0wsTUFBSzlNLFFBQVFwUixNQUFNd2tCLGNBQWMsTUFBTTtxQkFDNUQ7QUFBQSxpQkFDSjVSLGFBQWEsWUFBWXNMLE1BQUs5TSxRQUFRcFIsTUFBTThlLG1CQUFtQixNQUFNO3FCQUNqRTtBQUFBLGlCQUNKbE0sYUFBYSxlQUFlc0wsTUFBSzlNLFFBQVFwUixNQUFNMGYsbUJBQW1CLE1BQU07cUJBQ3BFO0FBQUE7QUFBQTtRQUdibkgsYUFBYSxDQUFDMkYsTUFBSzlNLFFBQVE2VSxTQUFTMU4sWUFBWTttQkFDckM7QUFBQTtXQUdSNk07QUFBQUEsT0FFVC9EO3dDQUVJLE1BQU07Z0JBRVgzSixnQkFDQWxRLEtBQUssTUFBTTtxQkFDSztBQUFBLE9BRWhCbVEsTUFBTSxNQUFNO1VBQ1BoaEIsa0JBQU87QUFBQTtzQkFHWnV2QixxQkFDQTFlLEtBQUssTUFBTTtxQkFDSztBQUFBLE9BRWhCbVEsTUFBTSxNQUFNO1VBQ1BoaEIsa0JBQU87QUFBQTtzQkFFR2dHO0FBQUFBLEtBQ2pCO3dDQUVPLE1BQU07O3lCQUNDakMsK0JBQVN5ckIsU0FBUztBQUFBLE1BQUNoWCxLQUFLO0FBQUE7QUFBQSxLQUN0QyxDQUFDK0c7UUFFRWtRLHNCQUFzQm52Qix3Q0FBWSxDQUFDdUYsVUFBNEI7VUFDN0Q7QUFBQSxNQUFDNnBCO0FBQUFBLFFBQWEzcEIsU0FBU0MsV0FBV0MsZ0JBQWdCQztVQUVsRHVqQixXQUFXNWpCLE1BQU1vRztRQUNuQndkLFNBQVNoVSxZQUFZLFVBQVVnVSxTQUFTM21CLGNBQWMsWUFBWTtZQUM5RDJTLFVBQVVnVSxTQUFTek0sVUFBVXpYLE1BQU07WUFDbkNvcUIsZUFBZWpRLGdCQUFnQjFaLFdBQVd1WixNQUFNUjtVQUNsRDRRLGlCQUFpQmxhLFNBQVM7d0JBQ1p5TSxZQUFZO0FBQUEsYUFDdkI7d0JBQ1dBLFlBQVl6TTtBQUFBQTtBQUFBQSxlQUVyQmdVLFNBQVNoVSxZQUFZLE9BQU9nVSxTQUFTM21CLGNBQWMsaUJBQWlCO1lBQ3ZFOHNCLGFBQWFuRyxTQUFTdUMsYUFBYTtVQUNyQ3BVLG9CQUFTQyxVQUFVO2tCQUNYZ1ksYUFBYUQsWUFBWUEsWUFBWTtBQUFBLGFBQzFDO2tCQUNLQyxhQUFhRCxZQUFZQSxZQUFZO0FBQUE7QUFBQTtBQUFBLEtBR2xEOztJQUlDLFdBQVksb0JBQW1CMUIsYUFBYSxLQUFLO0FBQUEsSUFDakQsU0FBU3VCO0FBQUFBLElBQ1QsS0FBS3JCO0FBQUFBLGVBQ0pHLFdBQVdubUIsSUFBS21mLCtCQUNkNkU7TUFBMEM7QUFBQSxPQUEvQixHQUFFN0UsTUFBS25wQixNQUFNbXBCLE1BQUtyTDtNQUUzQixXQUFVO0FBQUE7UUFDVixXQUFVO0FBQUEsa0JBQ1ZnUyxhQUNHLHFCQUNBSyxXQUFXam9CLFdBQVcsSUFDdEIsWUFDQWdvQixpQkFDQSxLQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNyS2QsbUJBQWlCO01BQ1gxVyxvQkFBU0MsWUFBWUcsMEJBQTBCLFVBQVU7O3FDQUd0RCxzQ0FDQSxxQ0FDQSxtQ0FDQTs7U0FHQTs7cUNBR0Esc0NBQ0EscUNBQ0EscUNBQ0E7Ozs7QUN0QlQsb0JBQW9CLGVBQWUsTUFBTTtRQUNqQyxDQUFDLE9BQU8sWUFBWTNYLHFDQUFTLEVBQUMsV0FBVyxjQUFjLFVBQVUsT0FBTyxXQUFXO1NBRWxGLGlDQUNGLFFBREU7QUFBQSxJQUVMLFlBQVksTUFBTTtlQUNQLGlDQUNKLFFBREk7QUFBQSxRQUVQLFdBQVc7QUFBQSxRQUNYLFVBQVU7QUFBQSxRQUNWLFdBQVc7QUFBQTtBQUFBO0FBQUEsSUFHZixXQUFXLE1BQU07ZUFDTixpQ0FDSixRQURJO0FBQUEsUUFFUCxXQUFXO0FBQUEsUUFDWCxVQUFVO0FBQUEsUUFDVixXQUFXO0FBQUE7QUFBQTtBQUFBLElBR2YsVUFBVSxNQUFNO2VBQ0wsaUNBQ0osUUFESTtBQUFBLFFBRVAsV0FBVztBQUFBLFFBQ1gsVUFBVTtBQUFBLFFBQ1YsV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBO01DSE5pbUIsbUJBQWlCLENBQUNsQyxPQUFjN0ksV0FBaUI7U0FDckQ2SSxNQUFNbUMsZ0JBQWdCaEw7QUFBQUE7QUFHL0IsTUFBTWlMLDJCQUF5QixDQUFDQyxhQUF1Qzs7UUFDL0Q7QUFBQSxJQUFDQztBQUFBQSxJQUFldEM7QUFBQUEsTUFBU3JlLFNBQVNDLFdBQVdDLGdCQUFnQkM7UUFDN0R5Z0IsbUJBQW1CQyx5QkFBbUJDLEtBQUtKLGNBQXhCRyxtQkFBb0M7UUFDdkRFLGtCQUFrQkYseUJBQW1CQyxLQUFLSixjQUF4QkcsbUJBQW9DO1FBQ3REeGtCLE9BQU9za0IsY0FBY0sscUJBQXFCQyxtQkFBbUJMLG1CQUFtQjtNQUNsRnZrQixTQUFTLE1BQU07V0FDVjtBQUFBLE1BQ0w2a0IsVUFBVU47QUFBQUEsTUFDVk8sU0FBU0o7QUFBQUEsTUFDVGxnQixNQUFNO0FBQUEsTUFDTm9kLFVBQVU7QUFBQTtBQUFBLFNBRVA7VUFDQ21ELFlBQVliLGlCQUFlbEMsT0FBT2hpQjtVQUNsQ3NFLFdBQVd0RSxLQUFLd0U7UUFDbEJrZ0IsaUJBQWlCO2FBQ1o7QUFBQSxRQUNMRyxVQUFVTjtBQUFBQSxRQUNWTyxTQUFTSjtBQUFBQSxRQUNUbGdCLE1BQU11Z0I7QUFBQUEsUUFDTm5ELFVBQVV0ZDtBQUFBQTtBQUFBQSxXQUVQO2FBQ0U7QUFBQSxRQUNMdWdCLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVM7QUFBQSxRQUNUdGdCLE1BQU11Z0I7QUFBQUEsUUFDTm5ELFVBQVV0ZDtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQU1sQixNQUFNMGdCLHlCQUF1QixDQUFDWCxhQUF1Qzs7UUFDN0Q7QUFBQSxJQUFDQztBQUFBQSxJQUFldEM7QUFBQUEsTUFBU3JlLFNBQVNDLFdBQVdDLGdCQUFnQkM7UUFDN0R5Z0IsbUJBQW1CVSx1QkFBaUJSLEtBQUtKLGNBQXRCWSxtQkFBa0M7UUFDckRQLGtCQUFrQk8sdUJBQWlCUixLQUFLSixjQUF0QlksbUJBQWtDO1FBQ3BEamxCLE9BQU9za0IsY0FBY0sscUJBQXFCQyxtQkFBbUJMLG1CQUFtQjtNQUNsRnZrQixTQUFTLE1BQU07V0FDVjtBQUFBLE1BQ0w2a0IsVUFBVU47QUFBQUEsTUFDVk8sU0FBU0o7QUFBQUEsTUFDVGxnQixNQUFNO0FBQUEsTUFDTm9kLFVBQVU7QUFBQTtBQUFBLFNBRVA7VUFDQ21ELFlBQVliLGlCQUFlbEMsT0FBT2hpQjtVQUNsQ3NFLFdBQVd0RSxLQUFLd0U7UUFDbEJrZ0IsaUJBQWlCO2FBQ1o7QUFBQSxRQUNMRyxVQUFVTjtBQUFBQSxRQUNWTyxTQUFTSjtBQUFBQSxRQUNUbGdCLE1BQU11Z0I7QUFBQUEsUUFDTm5ELFVBQVV0ZDtBQUFBQTtBQUFBQSxXQUVQO2FBQ0U7QUFBQSxRQUNMdWdCLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVM7QUFBQSxRQUNUdGdCLE1BQU11Z0I7QUFBQUEsUUFDTm5ELFVBQVV0ZDtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQU1sQixNQUFNb3BCLGNBQStCLENBQUNsdkIsVUFBaUI7O1FBRy9DO0FBQUEsSUFBQzJtQixNQUFNa0Q7QUFBQUEsSUFBV3NGO0FBQUFBLE1BQTJCbnZCO1FBQzdDMm1CLFFBQXNCLGlDQUN2QmtELFlBRHVCO0FBQUEsSUFFMUJoRCxjQUFjbHBCLFFBQU00ZCxrQkFBa0JzTyxVQUFVL0M7QUFBQUEsSUFDaERzSSxjQUFjenhCLFFBQU00ZCxrQkFBa0JzTyxnQkFBVXdGLGNBQVZ4RixZQUF1QnJPLEtBQUtDO0FBQUFBO1FBRTlELENBQUNnUSxzQkFBc0JDLDBCQUEwQnZWLFVBQVU7TUFFN0RnUixvQkFBb0I7TUFDcEJDLG9CQUFvQjtNQUNwQkMsa0JBQWtDO01BQ2xDQyxrQkFBa0I7TUFDbEJDLGNBQWNDLEtBQUtiLE1BQUs5TSxVQUFVO1FBQ2hDNE4sdUJBQXVCO1FBQ3ZCQywyQkFBMkI7UUFDM0JqQixpQkFBaUJlLEtBQUtiLE1BQUs5TSxVQUFVO3dCQUNyQjhOLE1BQU14RyxLQUFLd0YsTUFBSzlNLFFBQVFwUixNQUFNZ2U7QUFBQUE7UUFFOUNULG1CQUFtQndCLEtBQUtiLE1BQUs5TSxVQUFVO3dCQUN2QjhOLE1BQU14RyxLQUFLd0YsTUFBSzlNLFFBQVFwUixNQUFNdWQ7QUFBQUE7UUFHOUM0QixxQkFBcUJKLEtBQUtiLE1BQUs5TSxVQUFVOzZCQUNwQjhOLE1BQU14RyxLQUFLd0YsTUFBSzlNLFFBQVFwUixNQUFNbWY7QUFBQUE7UUFFbkROLGdCQUFnQjVoQixRQUFRO2VBQ2pCRSxJQUFJLEdBQUdBLElBQUkwaEIsZ0JBQWdCNWhCLFFBQVFFLEtBQUs7WUFDM0NpaUIsTUFBTVAsZ0JBQWdCMWhCOzBCQUNSa2lCLEtBQUtsQyx5QkFBdUJpQztBQUFBQTtBQUFBQTtRQUc5Q1IsZ0JBQWdCM2hCLFFBQVE7ZUFDakJFLElBQUksR0FBR0EsSUFBSXloQixnQkFBZ0IzaEIsUUFBUUUsS0FBSztZQUMzQ21pQixNQUFNVixnQkFBZ0J6aEI7WUFDdEIsbUJBQW1CNGhCLEtBQUtPLE1BQU07bUNBQ1BELEtBQUtyQix1QkFBaUJSLEtBQUs4QixTQUF0QnRCLG1CQUE2QjtBQUFBLGVBQ3REOzRCQUNhcUIsS0FBS3RCLHVCQUFxQnVCO0FBQUFBO0FBQUFBO0FBQUFBO3dCQUk5Qk4scUJBQXFCelksT0FBTzBZO0FBQUFBO1FBSTVDc0Usd0JBQXdCLFlBQVk7UUFDcENQLHNCQUFzQjtVQUNwQjtjQUNJOVIsWUFBWTJWLGVBQWUzSSxNQUFLbnBCO2dDQUNkbXBCLE1BQUtucEI7QUFBQUEsZUFDdEJzZDtZQUNIMWIsa0JBQU8wYixPQUFNaUI7QUFBQUE7QUFBQUEsV0FFZDs7OztRQUtId1QseUJBQXlCLFlBQVk7UUFDckM7WUFDSTVWLFlBQVk2VixnQkFBZ0I3SSxNQUFLbnBCOzhCQUNmbXBCLE1BQUtucEI7VUFDekI0QixrQkFBTztBQUFBLGFBQ0owYjtVQUNIMWIsa0JBQU8wYixPQUFNaUI7QUFBQUE7QUFBQUE7UUFJZm1RLDhCQUE4QixNQUFNO1FBQ3BDVCxzQkFBc0I7NkJBQ0Q7QUFBQTtBQUFBOztJQUtwQixXQUFZLGdCQUFlLFdBQVc5RSxNQUFLbnBCO0FBQUFBLElBQU0sY0FBYzB1QjtBQUFBQTtNQUM3RCxXQUFVO0FBQUE7UUFDUCxXQUFVO0FBQUEsaUNBQXVCdkYsTUFBS3lJO0FBQUFBO1FBQ3ZDLFdBQVU7QUFBQTtVQUNQLFdBQVU7QUFBQTtZQUNULFdBQVU7QUFBQSxZQUFXLEtBQUs3QztBQUFBQTtBQUFBQTtVQUU1QixXQUFVO0FBQUE7WUFDUixXQUFVO0FBQUE7Y0FDUCxXQUFVO0FBQUEsY0FBa0IsU0FBU2dEO0FBQUFBOztjQUl6QyxXQUFZLGtCQUFpQjlELHVCQUF1QixrQkFBa0I7QUFBQSxjQUN0RSxTQUFTTztBQUFBQSx3QkFDUlAsdUJBQXVCLGtCQUFhO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtNQU0xQyxXQUFVO0FBQUEsTUFBb0IseUJBQXlCO0FBQUEsUUFBQ3JDLFFBQVFDLGtCQUFrQjFDLE1BQUs5TTtBQUFBQTtBQUFBQSw0QkFDM0Y7TUFBSyxNQUFNc04sa0JBQWtCemhCLFNBQVM7QUFBQTtRQUNoQyxXQUFVO0FBQUEsa0JBQ1p5aEIsa0JBQWtCM2YsSUFBSSxDQUFDMmIsUUFBUTdELDRCQUM3QmdHO1VBQU0sS0FBSTtBQUFBLFVBQWEsV0FBVTtBQUFBLFVBQVc7QUFBQSxVQUFnQixnQkFBZTtBQUFBLFdBQXpEaEc7QUFBQUE7QUFBQUEsNEJBSXhCO01BQUssTUFBTThILGtCQUFrQjFoQixTQUFTO0FBQUE7UUFDaEMsV0FBVTtBQUFBLGtCQUNaMGhCLGtCQUFrQjVmLElBQUksQ0FBQzJiLFFBQVE3RCw0QkFDN0JnRztVQUVDLFdBQVU7QUFBQSxVQUNWLFFBQVFuQyxPQUFPbmQ7QUFBQUEsVUFDZixLQUFLbWQsT0FBT21EO0FBQUFBLFVBQ1osVUFBVW5ELE9BQU9DO0FBQUFBLFdBSlo5RDtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTs7QUM3TG5CLE1BQU1tUSxZQUE2QixNQUFNO1FBQ2pDO0FBQUEsSUFDSi9RLGVBQWU7QUFBQSxNQUFDQztBQUFBQTtBQUFBQSxJQUNoQjdjLGFBQWE7QUFBQSxNQUFDNGQ7QUFBQUE7QUFBQUEsTUFDWjFkLHVDQUFXQztRQUNUeXRCLGVBQWVDO1FBQ2YsQ0FBQ0MsY0FBY0MsbUJBQW1CcHdCLHFDQUF1QjtRQUV6RDtBQUFBLElBQUMwZSxLQUFLNEM7QUFBQUEsSUFBVTdJO0FBQUFBLElBQVUxRyxNQUFNNko7QUFBQUEsSUFBVXZXLE1BQU1rYztBQUFBQSxJQUFXdkIsUUFBUWdPO0FBQUFBLE1BQVc5TztRQUM5RXNDLGNBQWNsQixhQUFhQyxhQUFheU47UUFDeENDLGlCQUFpQnRnQixRQUNyQjJULFlBQWE3SSxZQUFZQSxTQUFTaUosT0FBT2pKLFNBQVNrSixNQUFPL0YsWUFBWTJGLGFBQWFDO1FBRzlFME0sYUFDSkQsa0JBQWtCek0sY0FDZDJPLGFBQWFuUSxPQUFRa0gsV0FBUzs7UUFDeEJrSCxhQUFhO1FBRWI1TSxhQUFhO1lBQ1Q2TSxVQUFVQyxLQUFLQyxNQUFNL00sWUFBWWdOO1VBQ25DdEcsTUFBTXVHLFFBQVFKLFVBQVU7cUJBQ2JLLCtCQUErQnhILE9BQU1tSDtBQUFBQTtBQUFBQTtRQUlsRC9NLFVBQVU7WUFDTnFOLFVBQVUsSUFBSUM7aUJBQ1RoUCxNQUFLc0ksTUFBTXhHLEtBQUt3RixZQUFLOU0sUUFBUXBSLE1BQU1za0IsYUFBbkJwRyxZQUErQixLQUFLO2NBQ3ZEeEksT0FBTWtCLEdBQUV2SyxRQUFRaVksU0FBUyxNQUFNMVE7Y0FDL0JpUyxRQUFRblEsS0FBSXVHLE1BQU07WUFDcEI2SixPQUFPO21CQUNBM29CLEtBQUswb0IsT0FBTztrQkFDYjFvQjtrQkFDQStiLElBQUk0TTtrQkFDSjtBQUFBO0FBQUE7aUJBR0RsUCxNQUFLc0ksTUFBTXhHLEtBQUt3RixZQUFLOU0sUUFBUXBSLE1BQU0rbEIsdUJBQW5CN0gsWUFBeUMsS0FBSztjQUNqRXhJLE9BQU1rQixHQUFFdkssUUFBUTBaLG1CQUFtQixNQUFNblM7Y0FDekNpUyxRQUFRblEsS0FBSXVHLE1BQU07WUFDcEI2SixPQUFPO21CQUNBM29CLEtBQUswb0IsT0FBTztrQkFDYjFvQjtrQkFDQStiLElBQUk0TTtrQkFDSjtBQUFBO0FBQUE7VUFHUixDQUFDSCxRQUFRSyxJQUFJMU4sV0FBVztxQkFDYjtBQUFBO0FBQUE7UUFJZjdJLFlBQ0FBLFNBQVNpSixPQUFPakosU0FBU2tKLGVBQ2xCdUgsbUJBQW1CaEMsTUFBS0csYUFBYTVPLFNBQVNpSixRQUNuRHhqQixRQUFNZ3JCLG1CQUFtQmhDLE1BQUtHLGFBQWE1TyxTQUFTa0osS0FDdEQ7bUJBQ2E7QUFBQTtRQUVYL0YsVUFBVTtVQUNSQSxhQUFhLGdCQUFnQnNMLE1BQUs5TSxRQUFRcFIsTUFBTXNrQixhQUFhLE1BQU07cUJBQ3hEO0FBQUEsaUJBQ0oxUixhQUFhLFlBQVlzTCxNQUFLOU0sUUFBUXBSLE1BQU13a0IsY0FBYyxNQUFNO3FCQUM1RDtBQUFBLGlCQUNKNVIsYUFBYSxZQUFZc0wsTUFBSzlNLFFBQVFwUixNQUFNOGUsbUJBQW1CLE1BQU07cUJBQ2pFO0FBQUEsaUJBQ0psTSxhQUFhLGVBQWVzTCxNQUFLOU0sUUFBUXBSLE1BQU0wZixtQkFBbUIsTUFBTTtxQkFDcEU7QUFBQTtBQUFBO1FBR2JuSCxhQUFhLENBQUMyRixNQUFLOU0sUUFBUTZVLFNBQVMxTixZQUFZO21CQUNyQztBQUFBO1dBR1I2TTtBQUFBQSxPQUVUK0I7d0NBRUksTUFBTTtnQkFDRnpQO2dCQUVUMlAsb0JBQ0E3ZixLQUFNeEQsWUFBVztVQUNaQSxPQUFPL0csV0FBVyxHQUFHO3dCQUNQK0c7QUFBQUE7QUFBQUEsT0FHbkIyVCxNQUFPdEYsWUFBVTtVQUNaMWIsa0JBQU8sbUNBQW1DMGI7QUFBQUEsT0FFL0NpVixRQUFRLE1BQU07bUJBQ0FDO0FBQUFBO29CQUVEbFU7QUFBQUEsS0FDZjtRQUVHcVQsMEJBQTBCenZCLHdDQUFZLENBQUM0c0IsV0FBbUI7b0JBQzdDc0QsbUJBQWlCQSxjQUFhblEsT0FBUWtILFdBQVNBLE1BQUtucEIsT0FBTzh1QjtBQUFBQSxLQUMzRTtRQUVHak0sNEJBQTRCM2dCLHdDQUFZLE1BQU07dUJBQy9CNGdCLDRCQUE0QjtBQUFBLEtBQzlDOztJQUdJLFdBQVU7QUFBQTtNQUNSLFdBQVU7QUFBQTtRQUNSLFdBQVU7QUFBQSx1Q0FDWjtVQUFLLE1BQU1aO0FBQUFBO1lBQ0YsV0FBVTtBQUFBLFlBQWEsU0FBU1c7QUFBQUE7Y0FDakMsV0FBVTtBQUFBLGNBQVcsS0FBS0U7QUFBQUEsY0FBUyxLQUFJO0FBQUE7QUFBQTtBQUFBO1VBRzFDLFdBQVU7QUFBQTs7OzRCQUduQixpQkFDQW1QLGFBQWFPO01BQ1AsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBOztTQUViTCxhQUFhbHFCLFdBQVc7TUFDckIsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBOzs7TUFHVixXQUFVO0FBQUEsZ0JBQ1ppb0IsV0FBV25tQixJQUFLbWYsK0JBQ2Q7UUFFQztBQUFBLFFBQ0E7QUFBQSxTQUZNLEdBQUVBLE1BQUtucEIsTUFBTW1wQixNQUFLckw7QUFBQUE7QUFBQUE7QUFBQUE7Ozs7QUN2SXRDLE1BQU00VSxxQkFBc0MsTUFBTTtRQUMxQztBQUFBLElBQUNwdUI7QUFBQUEsTUFBZUUsdUNBQVdDO1FBQzNCO0FBQUEsSUFBQ0Y7QUFBQUEsSUFBeUI4cUI7QUFBQUEsSUFBb0JzRDtBQUFBQSxJQUFxQnZEO0FBQUFBLE1BQTJCOXFCO1FBRTlGc3VCLGtCQUNKO1FBRUlDLDRCQUE0QixNQUFNO3VCQUNuQkMsY0FBYztBQUFBLE1BQy9CdnVCLHlCQUF5QixDQUFDQTtBQUFBQTtBQUFBQTtRQUl4Qnd1QiwrQkFBK0IsTUFBTTt1QkFDdEJELGNBQWM7QUFBQSxNQUMvQkgscUJBQXFCLENBQUNBO0FBQUFBO0FBQUFBO1FBSXBCSyxpQ0FBaUMsTUFBTTt1QkFDeEJGLGNBQWM7QUFBQSxNQUMvQnpELG9CQUFvQixDQUFDQTtBQUFBQTtBQUFBQTtRQUluQjRELGlDQUFpQyxNQUFNO3VCQUN4QkgsY0FBYztBQUFBLE1BQy9CMUQseUJBQXlCLENBQUNBO0FBQUFBO0FBQUFBO1FBSXhCOEQsdUJBQXVCLFlBQVk7VUFDakNDLGdCQUFnQmhYLFlBQVl2VSxXQUFXMGtCLE1BQU10aUIsSUFBS25LLFFBQU07YUFDckQsbUJBQ0ZBO0FBQUFBO1VBSUR1ekIsVUFBVTdDLEtBQUs4QyxVQUFVRjtVQUN6QnJzQixVQUFVbUssU0FBUzBGLGNBQWM7WUFDL0IyYyxhQUFhLFFBQVEsbUNBQW1DQyxtQkFBbUJIO1lBQzNFRSxhQUFhLFlBQVk7WUFDekIzc0IsTUFBTTZzQixVQUFVO2FBQ2Y3YixLQUFLRCxZQUFZNVE7WUFDbEJ3WjthQUNDM0ksS0FBS0ssWUFBWWxSO0FBQUFBOzs7TUFZbkIsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBOztRQUVYLFdBQVU7QUFBQSxRQUNWLHlCQUF5QjtBQUFBLFVBQUM4a0IsUUFBUUMsa0JBQWtCK0c7QUFBQUE7QUFBQUE7UUFDL0MsV0FBVTtBQUFBLFFBQWlDLFNBQVNHO0FBQUFBO1VBQ25ELFdBQVU7QUFBQTs7VUFDWCxXQUFVO0FBQUEsVUFBVyxLQUFLSixzQkFBc0JjLGlCQUFpQkM7QUFBQUE7QUFBQUE7UUFFakUsV0FBVTtBQUFBLFFBQWlDLFNBQVNUO0FBQUFBO1VBQ25ELFdBQVU7QUFBQTs7VUFDWCxXQUFVO0FBQUEsVUFBVyxLQUFLN0QsMEJBQTBCcUUsaUJBQWlCQztBQUFBQTtBQUFBQTtRQUVyRSxXQUFVO0FBQUEsUUFBaUMsU0FBU1Y7QUFBQUE7VUFDbkQsV0FBVTtBQUFBOztVQUNYLFdBQVU7QUFBQSxVQUFXLEtBQUszRCxxQkFBcUJvRSxpQkFBaUJDO0FBQUFBO0FBQUFBO0FBQUFBO01BR3BFLFdBQVU7QUFBQTtRQUNWLFdBQVU7QUFBQTs7UUFDTixXQUFVO0FBQUEsUUFBaUMsU0FBU2I7QUFBQUE7VUFDbkQsV0FBVTtBQUFBLHFDQUNYO1lBRUQsUUFBTztBQUFBLFlBQ1AsTUFBSztBQUFBLFlBQ0wsU0FBVS9pQixPQUFNQSxFQUFFakg7QUFBQUEsWUFDbEIsS0FBSTtBQUFBOzs7VUFJSCxXQUFVO0FBQUEsVUFBVyxLQUFLdEUsMEJBQTBCa3ZCLGlCQUFpQkM7QUFBQUE7QUFBQUE7QUFBQUE7TUFHekUsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBOztRQUNSLFdBQVU7QUFBQTtVQUNMLFdBQVU7QUFBQSxVQUFpQixTQUFTUjtBQUFBQTs7Ozs7OztBQy9GdEQsTUFBTVMsVUFBMkIsTUFBTTtRQUMvQjtBQUFBLElBQ0pydkIsYUFBYTtBQUFBLE1BQUM0ZDtBQUFBQTtBQUFBQSxNQUNaMWQsdUNBQVdDO3dDQUVMLE1BQU07Z0JBQ0ZrZTtBQUFBQSxLQUNYO1FBRUdFLDRCQUE0QjNnQix3Q0FBWSxNQUFNO3VCQUMvQjRnQiw0QkFBNEI7QUFBQSxLQUM5Qzs7SUFHSSxXQUFVO0FBQUE7TUFDUixXQUFVO0FBQUE7UUFDUixXQUFVO0FBQUEsdUNBQ1o7VUFBSyxNQUFNWjtBQUFBQTtZQUNGLFdBQVU7QUFBQSxZQUFhLFNBQVNXO0FBQUFBO2NBQ2pDLFdBQVU7QUFBQSxjQUFXLEtBQUtFO0FBQUFBLGNBQVMsS0FBSTtBQUFBO0FBQUE7QUFBQTtVQUcxQyxXQUFVO0FBQUE7Ozs7TUFJZixXQUFVO0FBQUEsb0NBQ1o7Ozs7QUNqQ1QsTUFBTTZRLGFBQWE7QUFBQSxrQ0FDSjtrQ0FDQTsyQkFDUEM7O0FDQ1IsTUFBTSxlQUFlLENBQUMsV0FBbUI7U0FDaEMsQ0FBQyxhQUFxQjtlQUNoQixPQUFPLE9BQU8sS0FBSyxTQUFTO1VBQ2pDLFFBQVEsVUFBVTtlQUNiLE9BQU87QUFBQTtBQUFBO1dBR1gsT0FBTztBQUFBO0FBQUE7TUFLTCxtQkFBbUIsYUFBYTs7QUNkN0MsTUFBTUMsa0JBQW1DLENBQUM7QUFBQSxFQUFDcnRCO0FBQUFBLE1BQW9CO1FBQ3ZEMGYsc0JBQXNCLE1BQU07Ozs7O01BTXpCLFdBQVU7QUFBQTtRQUNWLFdBQVU7QUFBQTtVQUNMLFdBQVU7QUFBQTs7Ozs7UUFFVixXQUFVO0FBQUEsUUFBZ0IsU0FBU0E7QUFBQUE7VUFDcEMsV0FBVTtBQUFBLFVBQVcsS0FBSzBCO0FBQUFBO0FBQUFBO0FBQUFBO01BRzlCLFdBQVU7QUFBQTtRQUVZLE1BQUs7QUFBQTs7UUFDM0IsTUFBSztBQUFBO1VBRUosS0FBTTtBQUFBO0FBQUE7O1VBS0YsTUFBSztBQUFBO2tHQUEwRTtVQUNsRixNQUFLO0FBQUE7OzsySUFJeUU7VUFDOUUsTUFBSztBQUFBO29CQUFvRTtVQUN6RSxNQUFLO0FBQUE7OztRQUdQLFdBQVU7QUFBQTtVQUNXLFdBQVU7QUFBQTs7Ozs7OytCQU9VO2FBRWhEO0FBQUEsSUFDRW5qQixXQUFXO0FBQUEsS0FFYm92QjtBQUFBQTs7QUMzQ0osTUFBTUMsZ0JBQWlDLENBQUN2eEIsVUFBaUI7UUFDakQ7QUFBQSxJQUFDd3hCO0FBQUFBLElBQWFDO0FBQUFBLE1BQWtCenhCO1FBQ2hDO0FBQUEsSUFBQ3NGO0FBQUFBLE1BQU9vc0Isa0JBQWtCdHNCO1FBRTFCdXNCLGFBQWE3dUIsbUNBQXVCO3dDQUVoQyxNQUFNO1FBQ1YwdUIsYUFBYTtZQUNUSSxxQkFBcUIsQ0FBQzNzQixVQUFzQjs7WUFDNUMsQ0FBQzBzQixrQkFBV3h1QixZQUFYd3VCLG1CQUFvQjFyQixTQUFTaEIsTUFBTW9HLFVBQWlCO2dCQUNqRGhGO0FBQUFBO3VCQUVPO0FBQUE7YUFFVm1VLGlCQUFpQixTQUFTb1gsb0JBQW9CO0FBQUEsUUFDbkRDLFNBQVM7QUFBQSxRQUNUQyxNQUFNO0FBQUE7QUFBQTtBQUFBLEtBR1QsQ0FBQ047UUFFRU8sMEJBQTBCLE1BQU07U0FDaENDLFFBQVFDO1NBQ1JELFFBQVFFLFlBQVk7QUFBQTtRQUdwQkMsMkJBQTJCLE1BQU07b0JBQ3JCQyxZQUFZO0FBQUE7UUFHeEJDLHNCQUFzQixNQUFNOzs7O0lBUzNCLFdBQVksbUJBQWtCYixjQUFjLEtBQUs7QUFBQSxJQUFZLEtBQUtHO0FBQUFBO01BQzdELFdBQVU7QUFBQSxNQUFpQixTQUFTSTtBQUFBQTtRQUNwQyxXQUFVO0FBQUE7OztNQUVWLFdBQVU7QUFBQSxNQUFpQixTQUFTSTtBQUFBQTtRQUNwQyxXQUFVO0FBQUE7OztNQUVWLFdBQVU7QUFBQSxNQUFpQixTQUFTRTtBQUFBQTtRQUNwQyxXQUFVO0FBQUE7Ozs7OztNQ2hDWDNNLGlCQUFpQixDQUFDbEMsT0FBYzdJLFdBQWlCO1NBQ3JENkksTUFBTW1DLGdCQUFnQmhMO0FBQUFBO0FBRy9CLE1BQU1pTCx5QkFBeUIsQ0FBQ0MsVUFBa0J2Z0IsU0FBK0I7O1FBQ3pFeWdCLG1CQUFtQkMseUJBQW1CQyxLQUFLSixjQUF4QkcsbUJBQW9DO1FBQ3ZERSxrQkFBa0JGLHlCQUFtQkMsS0FBS0osY0FBeEJHLG1CQUFvQztRQUN0RHhrQixPQUFPOEQsS0FBSXdnQixjQUFjSyxxQkFBcUJDLG1CQUFtQkwsbUJBQW1CO01BQ3RGdmtCLFNBQVMsTUFBTTtXQUNWO0FBQUEsTUFDTDZrQixVQUFVTjtBQUFBQSxNQUNWTyxTQUFTSjtBQUFBQSxNQUNUbGdCLE1BQU07QUFBQSxNQUNORixVQUFVO0FBQUE7QUFBQSxTQUVQO1VBQ0N5Z0IsWUFBWWIsZUFBZXBnQixLQUFJa2UsT0FBT2hpQjtRQUN4QzBrQixpQkFBaUI7YUFDWjtBQUFBLFFBQ0xHLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVNKO0FBQUFBLFFBQ1RsZ0IsTUFBTXVnQjtBQUFBQSxRQUNOemdCLFVBQVV0RSxLQUFLd0U7QUFBQUE7QUFBQUEsV0FFWjthQUNFO0FBQUEsUUFDTHFnQixVQUFVTjtBQUFBQSxRQUNWTyxTQUFTO0FBQUEsUUFDVHRnQixNQUFNdWdCO0FBQUFBLFFBQ056Z0IsVUFBVXRFLEtBQUt3RTtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQU12QixNQUFNd2dCLHVCQUF1QixDQUFDWCxVQUFrQnZnQixTQUErQjs7UUFFdkV5Z0IsbUJBQW1CVSx1QkFBaUJSLEtBQUtKLGNBQXRCWSxtQkFBa0M7UUFDckRQLGtCQUFrQk8sdUJBQWlCUixLQUFLSixjQUF0QlksbUJBQWtDO1FBQ3BEamxCLE9BQU84RCxLQUFJd2dCLGNBQWNLLHFCQUFxQkMsbUJBQW1CTCxtQkFBbUI7TUFDdEZ2a0IsU0FBUyxNQUFNO1dBQ1Y7QUFBQSxNQUNMNmtCLFVBQVVOO0FBQUFBLE1BQ1ZPLFNBQVNKO0FBQUFBLE1BQ1RsZ0IsTUFBTTtBQUFBLE1BQ05GLFVBQVU7QUFBQTtBQUFBLFNBRVA7VUFDQ3lnQixZQUFZYixlQUFlcGdCLEtBQUlrZSxPQUFPaGlCO1FBQ3hDMGtCLGlCQUFpQjthQUNaO0FBQUEsUUFDTEcsVUFBVU47QUFBQUEsUUFDVk8sU0FBU0o7QUFBQUEsUUFDVGxnQixNQUFNdWdCO0FBQUFBLFFBQ056Z0IsVUFBVXRFLEtBQUt3RTtBQUFBQTtBQUFBQSxXQUVaO2FBQ0U7QUFBQSxRQUNMcWdCLFVBQVVOO0FBQUFBLFFBQ1ZPLFNBQVM7QUFBQSxRQUNUdGdCLE1BQU11Z0I7QUFBQUEsUUFDTnpnQixVQUFVdEUsS0FBS3dFO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBTXZCLE1BQU1zc0IsWUFBNkIsQ0FBQ3R5QixVQUFpQjs7UUFFN0M7QUFBQSxJQUFDc0Y7QUFBQUEsTUFBT0gsU0FBU0MsV0FBV0M7UUFDNUI7QUFBQSxJQUFDc2hCLE1BQU1rRDtBQUFBQSxNQUFhN3BCO1FBQ3BCMm1CLFFBQWtCLGlDQUNuQmtELFlBRG1CO0FBQUEsSUFFdEJoRCxjQUFjbHBCLFFBQU00ZCxrQkFBa0JzTyxVQUFVL0M7QUFBQUEsSUFDaER5TCxTQUFTNTBCLFFBQU02MEIsY0FBYzNJLFVBQVUvQztBQUFBQTtNQUVyQ0ssb0JBQW9CO01BQ3BCQyxvQkFBb0I7TUFDcEJDLGtCQUFrQztNQUNsQ0Msa0JBQWtCO01BQ2xCQyxjQUFjQyxLQUFLYixNQUFLOU0sVUFBVTtRQUNoQzROLHVCQUF1QjtRQUN2QkMsMkJBQTJCO1FBQzNCakIsaUJBQWlCZSxLQUFLYixNQUFLOU0sVUFBVTt3QkFDckI4TixNQUFNeEcsS0FBS3dGLE1BQUs5TSxRQUFRcFIsTUFBTWdlO0FBQUFBO1FBRTlDVCxtQkFBbUJ3QixLQUFLYixNQUFLOU0sVUFBVTt3QkFDdkI4TixNQUFNeEcsS0FBS3dGLE1BQUs5TSxRQUFRcFIsTUFBTXVkO0FBQUFBO1FBRzlDNEIscUJBQXFCSixLQUFLYixNQUFLOU0sVUFBVTs2QkFDcEI4TixNQUFNeEcsS0FBS3dGLE1BQUs5TSxRQUFRcFIsTUFBTW1mO0FBQUFBO1FBRW5ETixnQkFBZ0I1aEIsUUFBUTtlQUNqQkUsSUFBSSxHQUFHQSxJQUFJMGhCLGdCQUFnQjVoQixRQUFRRSxLQUFLO1lBQzNDaWlCLE1BQU1QLGdCQUFnQjFoQjswQkFDUmtpQixLQUFLbEMsdUJBQXVCaUMsS0FBS3ZpQjtBQUFBQTtBQUFBQTtRQUduRCtoQixnQkFBZ0IzaEIsUUFBUTtlQUNqQkUsSUFBSSxHQUFHQSxJQUFJeWhCLGdCQUFnQjNoQixRQUFRRSxLQUFLO1lBQzNDbWlCLE1BQU1WLGdCQUFnQnpoQjtZQUN0QixtQkFBbUI0aEIsS0FBS08sTUFBTTttQ0FDUEQsS0FBS3JCLHVCQUFpQlIsS0FBSzhCLFNBQXRCdEIsbUJBQTZCO0FBQUEsZUFDdEQ7NEJBQ2FxQixLQUFLdEIscUJBQXFCdUIsS0FBS3ppQjtBQUFBQTtBQUFBQTtBQUFBQTt3QkFJbkNtaUIscUJBQXFCelksT0FBTzBZO0FBQUFBOztJQUszQyxXQUFVO0FBQUE7TUFDUixXQUFVO0FBQUE7UUFDUCxXQUFVO0FBQUEsa0JBQWVmLE1BQUs0TDtBQUFBQTtBQUFBQTtNQUVqQyxXQUFVO0FBQUE7UUFDUixXQUFVO0FBQUEsUUFBb0IseUJBQXlCO0FBQUEsVUFBQ25KLFFBQVFDLGtCQUFrQjFDLE1BQUs5TTtBQUFBQTtBQUFBQSw4QkFDM0Y7UUFBSyxNQUFNc04sa0JBQWtCemhCLFNBQVM7QUFBQTtVQUNoQyxXQUFVO0FBQUEsb0JBQ1p5aEIsa0JBQWtCM2YsSUFBSSxDQUFDMmIsUUFBUTdEO1lBQ2YsS0FBSzZEO0FBQUFBLFlBQVEsZ0JBQWU7QUFBQSxhQUFqQzdEO0FBQUFBO0FBQUFBLDhCQUlmO1FBQUssTUFBTThILGtCQUFrQjFoQixTQUFTO0FBQUE7VUFDaEMsV0FBVTtBQUFBLG9CQUNaMGhCLGtCQUFrQjVmLElBQUksQ0FBQzJiLFFBQVE3RDtZQUNmLEtBQUs2RCxPQUFPbmQ7QUFBQUEsWUFBTSxLQUFLbWQsT0FBT21EO0FBQUFBLFlBQVMsTUFBTW5ELE9BQU9yZDtBQUFBQSxhQUF6RHdaO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBOzs7O0FDaEp4QixNQUFNbVQsYUFBd0MsQ0FBQ3p5QixVQUEyQjtRQUNsRTtBQUFBLElBQUNrQztBQUFBQSxJQUFXd3dCO0FBQUFBLElBQVdDO0FBQUFBLE1BQXlCM3lCO1FBQ2hELENBQUM0eUIsa0JBQWtCQyx1QkFBdUJwekIscUNBQW9CcXpCLDBCQUEwQko7d0NBRXBGLE1BQU07d0JBQ01JLDBCQUEwQko7QUFBQUEsS0FDN0MsQ0FBQ0E7UUFFRUssWUFBWSxJQUFJdlgsS0FBS29YO1FBQ3JCSSxlQUFlRCxVQUFVRSxhQUFhLElBQUksSUFBSUYsVUFBVUU7UUFDeERDLFVBQVU7V0FDUHR0QixJQUFJLEdBQUdBLElBQUlvdEIsY0FBY3B0QixLQUFLO1lBQzdCa2lCLEtBQUs7QUFBQSxNQUNYbkwsTUFBTTtBQUFBLE1BQ04rVixXQUFXSyxVQUFVSSxZQUFZQyx1QkFBdUJ4dEI7QUFBQUE7QUFBQUE7UUFHdER5dEIsWUFBWUMsa0JBQWtCVjtXQUMzQmh0QixJQUFJLEdBQUdBLEtBQUt5dEIsV0FBV3p0QixLQUFLO1lBQzNCa2lCLEtBQUs7QUFBQSxNQUNYbkwsTUFBTS9XO0FBQUFBLE1BQ044c0IsV0FBV0ssVUFBVUksWUFBWUMsdUJBQXVCO0FBQUE7QUFBQTtRQUl0REcsc0JBQXNCLENBQUNiLGVBQXlCOzBCQUM5QkE7QUFBQUE7UUFHbEJjLDRCQUE0QixDQUFDNXRCLE1BQWM7VUFDekM2dEIsT0FBT1YsVUFBVVc7VUFDakJDLFFBQVFaLFVBQVVhLGFBQWE7UUFDakNDLGdCQUFnQjtRQUNoQkYsVUFBVSxLQUFLL3RCLE1BQU0sSUFBSTtzQkFDWCxJQUFJNFYsS0FBTSxHQUFFaVksT0FBTyxVQUFVTjtBQUFBQSxlQUNwQ1EsVUFBVSxNQUFNL3RCLE1BQU0sR0FBRztzQkFDbEIsSUFBSTRWLEtBQU0sR0FBRWlZLE9BQU8sU0FBU047QUFBQUEsV0FDdkM7c0JBQ1csSUFBSTNYLEtBQU0sR0FBRWlZLFFBQVFFLFFBQVEvdEIsT0FBT3V0QjtBQUFBQTt3QkFFakNMLDBCQUEwQmU7QUFBQUE7O0lBSXpDLFdBQVksdUJBQXNCM3hCO0FBQUFBO01BQ2hDLFdBQVU7QUFBQTtRQUNQLFdBQVU7QUFBQSxRQUFXLFNBQVMsTUFBTXN4QiwwQkFBMEI7QUFBQTtVQUM3RCxXQUFVO0FBQUEsVUFBVyxLQUFLTTtBQUFBQTtBQUFBQTtRQUUzQixXQUFVO0FBQUEsbUJBQ2JmLFVBQVVXLDJCQUFrQlgsVUFBVWEsYUFBYTs7UUFFaEQsV0FBVTtBQUFBLFFBQVcsU0FBUyxNQUFNSiwwQkFBMEI7QUFBQTtVQUM3RCxXQUFVO0FBQUEsVUFBVyxLQUFLTztBQUFBQTtBQUFBQTtBQUFBQTtNQUc5QixXQUFVO0FBQUE7UUFDUixXQUFVO0FBQUE7VUFDUCxXQUFVO0FBQUE7O1VBQ1YsV0FBVTtBQUFBOztVQUNWLFdBQVU7QUFBQTs7VUFDVixXQUFVO0FBQUE7O1VBQ1YsV0FBVTtBQUFBOztVQUNWLFdBQVU7QUFBQTs7VUFDVixXQUFVO0FBQUE7O1VBR2pCYixRQUFRMXJCLElBQUt3c0IsT0FBTTtZQUNkQSxFQUFFclgsU0FBUyxHQUFHOztZQUVVLFdBQVU7QUFBQSxzQkFDL0I7QUFBQSxhQURRcVgsRUFBRXRCO0FBQUFBLGVBSVY7O1lBSUQsV0FBWSxZQUFXc0IsRUFBRXRCLGNBQWNBLFlBQVksWUFBWTtBQUFBLFlBQy9ELFNBQVMsTUFBTWEsb0JBQW9CUyxFQUFFdEI7QUFBQUEsc0JBQ3BDc0IsRUFBRXJYO0FBQUFBLGFBSEVxWCxFQUFFdEI7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7QUFhdkIsMkJBQTJCQSxXQUE4QjtRQUNqRHVCLFdBQVcsSUFBSXpZLEtBQUtrWDtRQUNwQndCLGNBQWMsSUFBSTFZLEtBQU0sR0FBRXlZLFNBQVNQLGlCQUFpQk8sU0FBU0wsYUFBYTtRQUMxRU8sZ0JBQ0pELFlBQVlOLGVBQWUsS0FDdkIsSUFBSXBZLEtBQU0sR0FBRTBZLFlBQVlSLGdCQUFnQixXQUN4QyxJQUFJbFksS0FBTSxHQUFFMFksWUFBWVIsaUJBQWlCUSxZQUFZTixhQUFhO3dCQUVsRFQsWUFBWWUsWUFBWWYsYUFBYUM7QUFBQUE7QUFHN0QsbUNBQW1DZ0IsV0FBaUM7UUFDNURILFdBQVcsSUFBSXpZLEtBQUs0WTtRQUNwQkYsY0FBYyxJQUFJMVksS0FBTSxHQUFFeVksU0FBU1AsaUJBQWlCTyxTQUFTTCxhQUFhO1NBQ3pFTSxZQUFZZjtBQUFBQTs7QUM5RnJCLE1BQU1rQix1QkFBd0MsQ0FBQ3IwQixVQUFpQjtRQUN4RDB2QixlQUFlQztRQUNmLENBQUM3RixPQUFPd0ssWUFBWTcwQixxQ0FBdUI7UUFDM0MsQ0FBQ216QixrQkFBa0JDLHVCQUF1QnB6QixxQ0FDOUM5QixRQUFNNDJCLG1CQUFtQjUyQixRQUFNOGpCLGNBQWN6aEIsTUFBTTR5QjtRQUUvQyxDQUFDNEIsZ0JBQWdCQyx3QkFBd0J0ZSxVQUFVO1FBQ25EdWUsYUFBYTV4QixtQ0FBdUI7UUFDcENveEIsY0FBYyxJQUFJMVksS0FBS29YO3dDQUVuQixNQUFNO1VBQ1IrQixnQkFBZ0IsTUFBTTtZQUNwQkMsYUFBYWpiLFlBQ2hCdlUsV0FDQTBrQixNQUFNckssT0FDSmdKLE9BQ0M5cUIsUUFBTWdyQixtQkFBbUJGLEVBQUUzQixjQUFjOEwsb0JBQ3pDajFCLFFBQU1nckIsbUJBQW1CRixFQUFFM0IsYUFBYThMLG1CQUFtQlEsaUJBRTlENUssS0FBSyxDQUFDQyxHQUFHQyxNQUFNL3FCLFFBQU1nckIsbUJBQW1CRixFQUFFM0IsYUFBYW5wQixRQUFNZ3JCLG1CQUFtQkQsRUFBRTVCO2VBQzVFOE47bUJBQ0k1RTtBQUFBQTs7S0FJZCxDQUFDNEM7UUFFRWlDLHNCQUFzQixNQUFNO3lCQUNYO2VBRVYsTUFBTTtVQUNYLENBQUNILFdBQVd2eEIsU0FBUzs7O2NBSWpCdXhCLFdBQVd2eEIsU0FBUztBQUFBLFFBQzFCNG5CLGlCQUFpQjtBQUFBLFFBQ2pCQyxZQUFZM1csT0FBTzRXLG1CQUFtQjtBQUFBLFNBRXJDaGIsS0FBTWlLLFNBQVE7K0JBQ1VBO0FBQUFBLFNBRXhCa0csTUFBTSxNQUFNO0FBQUE7QUFBQSxPQUdkO0FBQUE7UUFHQzBVLHlCQUF5QixDQUFDcEMsY0FBK0I7d0JBQ3pDQTt5QkFDQztBQUFBOzs7TUFLZCxXQUFVO0FBQUE7UUFDUixXQUFVO0FBQUE7VUFDVixXQUFVO0FBQUE7O1VBQ1IsV0FBVTtBQUFBO1lBQ1AsV0FBVTtBQUFBLFlBQVcsU0FBUyxNQUFNRyxvQkFBb0JELG1CQUFtQlE7QUFBQUE7Y0FDMUUsV0FBVTtBQUFBLGNBQVcsS0FBS1U7QUFBQUE7QUFBQUE7WUFFM0IsV0FBVTtBQUFBLFlBQVcsU0FBUyxNQUFNakIsb0JBQW9CRCxtQkFBbUJRO0FBQUFBO2NBQzFFLFdBQVU7QUFBQSxjQUFXLEtBQUtXO0FBQUFBO0FBQUFBO1lBRTNCLFdBQVU7QUFBQSxZQUFxQixTQUFTYztBQUFBQTtjQUN2QyxXQUFVO0FBQUEsY0FBVyxLQUFLdEo7QUFBQUE7QUFBQUE7WUFFM0IsV0FBVTtBQUFBLFlBQVcsU0FBUyxNQUFNdnJCLE1BQU1pRTtBQUFBQTtjQUN6QyxXQUFVO0FBQUEsY0FBVyxLQUFLb2hCO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO01BS2xDLFdBQVU7QUFBQSxNQUEyQixLQUFLcVA7QUFBQUE7UUFDeEMsV0FBVTtBQUFBLFFBQXNCLFNBQVMsTUFBTUQ7QUFBQUE7VUFDN0MsV0FBVTtBQUFBLG9CQUFhUCxZQUFZUjtBQUFBQTtVQUNuQyxXQUFVO0FBQUE7WUFDUixXQUFVO0FBQUEsc0JBQWNoUyxTQUFRckMsRUFBRSxVQUFVO0FBQUEsY0FBQzBWLGVBQWU7QUFBQSxlQUFPYixZQUFZTjtBQUFBQTtZQUMvRSxXQUFVO0FBQUEsc0JBQWFNLFlBQVljO0FBQUFBO1lBQ25DLFdBQVU7QUFBQSxzQkFBWXRULFNBQVFyQyxFQUFFLFlBQVk7QUFBQSxjQUFDMFYsZUFBZTtBQUFBLGVBQU9iLFlBQVlqQjtBQUFBQTtBQUFBQTtBQUFBQSw4QkFHdkY7UUFDQyxXQUFZLGVBQWN1QixpQkFBaUIsS0FBSztBQUFBLFFBQ2hELFdBQVc1QjtBQUFBQSxRQUNYLHVCQUF1QmtDO0FBQUFBLFVBRXhCcEYsYUFBYU87UUFDUCxXQUFVO0FBQUE7VUFDVixXQUFVO0FBQUE7O1dBRWJuRyxNQUFNcGtCLFdBQVc7UUFDZCxXQUFVO0FBQUE7VUFDVixXQUFVO0FBQUE7OztRQUdWLFdBQVU7QUFBQSxrQkFDWm9rQixNQUFNdGlCLElBQUttZiwrQkFDVDtVQUErQztBQUFBLFdBQS9CLEdBQUVBLE1BQUtucEIsTUFBTW1wQixNQUFLckw7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7a0NBU0FvWCxZQUF1QmxYLEtBQUtDLE9BQWE7YUFFdEY7QUFBQSxJQUNFdlosV0FBVztBQUFBLEtBRWJteUIsc0JBQ0E7QUFBQSxJQUFDekIsa0JBQWtCRjtBQUFBQTtBQUFBQTs7QUM1SHZCLE1BQU11QyxhQUE4QixNQUFNO1FBQ2xDO0FBQUEsSUFDSmxMLFdBQVc7QUFBQSxNQUFDRDtBQUFBQSxNQUFPb0w7QUFBQUE7QUFBQUEsSUFDbkJDLFdBQVc7QUFBQSxNQUFDQztBQUFBQTtBQUFBQSxNQUNWcHpCLHVDQUFXQztRQUNUb3pCLFdBQVdELE9BQU9BLEtBQUtDLFdBQVcvSztNQUNwQ047TUFDQUM7TUFDQUgsTUFBTXBrQixRQUFRO2tCQUNGb2tCLE1BQU1wa0IsU0FBUztrQkFDZm9rQixRQUNWSSxLQUFLQyxXQUFXMU8sUUFBUTlkLFFBQU1nckIsbUJBQW1CbUIsTUFBTUUsYUFBYWxELGNBQWMsTUFBTyxPQUFPLE1BQ2hHO0FBQUE7UUFJQSxDQUFDd08scUJBQXFCQywwQkFBMEI5MUIscUNBQVM7UUFFekQrMUIsc0JBQXNCOTFCLHdDQUFZLE1BQU07b0JBQzVCMHlCLFlBQVk7b0JBQ1p0VztBQUFBQSxLQUNmO1FBRUcyWixzQkFBc0IsTUFBTTtVQUMxQkMsWUFBWWpuQixTQUFTSyxjQUFjO1VBQ25DNm1CLFVBQVVsbkIsU0FBU0ssY0FBYztZQUMvQjNLLE1BQU15VCxNQUFNLEtBQUs4ZCxVQUFVRSxZQUFZOzJCQUN4QjtBQUFBOztJQUlsQixXQUFVO0FBQUE7TUFDUixXQUFVO0FBQUE7UUFDVixXQUFVO0FBQUEsUUFBZ0IsU0FBU0o7QUFBQUEsa0JBQ25DSDtBQUFBQTtRQUVHLFdBQVU7QUFBQSxRQUE0QixTQUFTSTtBQUFBQTtVQUM5QyxLQUFLbEo7QUFBQUEsVUFBTSxXQUFVO0FBQUE7QUFBQSw4QkFFM0I7UUFBYyxhQUFhK0k7QUFBQUEsUUFBcUIsZ0JBQWdCQztBQUFBQTtBQUFBQTtNQUU5RCxXQUFVO0FBQUE7UUFDUixXQUFVO0FBQUE7VUFDUCxXQUFVO0FBQUEsb0JBQWV6TCxNQUFNcGtCO0FBQUFBO1VBQy9CLFdBQVU7QUFBQTs7O1FBRWIsV0FBVTtBQUFBO1VBQ1AsV0FBVTtBQUFBLG9CQUFld3ZCLEtBQUt4dkI7QUFBQUE7VUFDOUIsV0FBVTtBQUFBOzs7UUFFYixXQUFVO0FBQUEsUUFBNEIsU0FBUyxNQUFNbXdCO0FBQUFBO1VBQ2xELFdBQVU7QUFBQSxvQkFBZTVMO0FBQUFBO1VBQ3pCLFdBQVU7QUFBQTs7Ozs7OztBQzlDMUIsTUFBTTZMLFdBQVc7QUFBQSxFQUNmaHhCLE1BQU07QUFBQSxFQUNOMUIsT0FBTztBQUFBO0FBR1QsTUFBTTJ5QixXQUE0QixDQUFDLzFCLFVBQWlCO1FBQzVDO0FBQUEsSUFBQ2tDO0FBQUFBLElBQVc4ekI7QUFBQUEsSUFBWUM7QUFBQUEsSUFBb0I3eUI7QUFBQUEsTUFBU3BEO1FBQ3JELENBQUNrMkIsY0FBY0Msd0JBQXdCaGdCLFVBQVU7UUFFakRpZ0IsZUFBZXR6QixtQ0FBdUI7TUFFeEN1ekIsY0FBY1A7YUFDUDlCLEtBQUtnQyxZQUFZO1FBQ3RCaEMsRUFBRTV3QixVQUFVQSxPQUFPO29CQUNQNHdCOzs7O3dDQUtSLE1BQU07UUFDVmtDLGNBQWM7WUFDVnRFLHFCQUFxQixDQUFDM3NCLFVBQXNCOztZQUM1QyxDQUFDbXhCLG9CQUFhanpCLFlBQWJpekIsbUJBQXNCbndCLFNBQVNoQixNQUFNb0csVUFBaUI7K0JBQ3BDO0FBQUE7QUFBQTthQUdsQm1QLGlCQUFpQixTQUFTb1gsb0JBQW9CO0FBQUEsUUFDbkRDLFNBQVM7QUFBQSxRQUNUQyxNQUFNO0FBQUE7QUFBQTtBQUFBLEtBR1QsQ0FBQ29FO1FBRUVJLGtCQUFrQixDQUFDendCLFNBQW1CO1FBQ3RDb3dCLG9CQUFvQjt5QkFDSHB3QixLQUFLekM7QUFBQUE7eUJBRUw7QUFBQTtRQUdqQm16QiwwQkFBMEIsQ0FBQ3R4QixVQUE0QjtVQUNyRG9COzs7O0lBS0QsV0FBWSxvQkFBbUJuRSxnQ0FBYTtBQUFBLElBQU0sS0FBS2swQjtBQUFBQTtNQUNyRCxXQUFZLDJCQUEwQkYsZUFBZSxXQUFXO0FBQUEsTUFBTSxTQUFTSztBQUFBQTtRQUM1RSxXQUFVO0FBQUEsa0JBQWNGLFlBQVl2eEI7QUFBQUE7UUFDcEMsV0FBVTtBQUFBO1VBQ1QsV0FBVTtBQUFBLFVBQVcsS0FBS2l2QjtBQUFBQTtBQUFBQTtBQUFBQTtNQUk5QixXQUFZLGlCQUFnQm1DLGVBQWUsS0FBSztBQUFBLGdCQUNsREYsV0FBV3h1QixJQUFLd3NCLE9BQU07O1VBR2pCLFdBQVksa0JBQWlCQSxFQUFFNXdCLFVBQVVBLFFBQVEsYUFBYTtBQUFBLFVBRTlELFNBQVMsTUFBTTs0QkFDRzR3QjtBQUFBQTtBQUFBQSxvQkFFakJBLEVBQUVsdkI7QUFBQUEsV0FKRWt2QixFQUFFNXdCO0FBQUFBO0FBQUFBO0FBQUFBO0FBQUFBO0FBYXJCLGlCQUFldWpCLGlDQUFLb1A7O0FDNUVwQixNQUFNUyxvQkFBcUMsQ0FBQ3gyQixVQUFpQjtRQUNyRDtBQUFBLElBQUNpRTtBQUFBQSxJQUFTd3BCO0FBQUFBLE1BQVd6dEI7UUFFckIsQ0FBQ2lnQixPQUFPd1csWUFBWWgzQixxQ0FBaUI7UUFDckMsQ0FBQ3F1QixTQUFTNEksY0FBY2ozQixxQ0FBbUI7UUFDM0NrM0IsZUFBZWhILFdBQVc7UUFFMUJpSCxrQkFBa0JqZCxZQUFZdlUsV0FBVzBrQixNQUFNckssT0FBUWtILFdBQVM7V0FDN0R3SCwrQkFBK0J4SCxPQUFNbUg7QUFBQUEsS0FDM0Nwb0I7d0NBRU8sTUFBTTtVQUNSbXhCLFlBQVk5VyxhQUFhQyxhQUFheU4sNEJBQVc7UUFDbkRvSixXQUFXO2VBQ0pBLFVBQVU1VztZQUNic08sT0FBT1IsS0FBS0MsTUFBTTZJLFVBQVU1STtVQUM5QnRHLE1BQU11RyxRQUFRSyxPQUFPO21CQUNaQTtBQUFBQTtBQUFBQTtBQUFBQSxLQUdkLENBQUNkO1FBRUVxSix5QkFBeUIsQ0FBQ3hwQixNQUEyQztVQUNuRXhJLE9BQU93SSxFQUFFakMsT0FBT2pJO2FBQ2IwQjtBQUFBQTtRQUdMaVcscUJBQXFCLFlBQVk7UUFDakMsQ0FBQ2tGLE9BQU87VUFDTjdnQixrQkFBTzs7ZUFFRjB1QixRQUFRcG9CLFdBQVcsR0FBRztVQUMzQnRHLGtCQUFPOzs7UUFJVDtVQUNFcXVCLFNBQVM7Y0FDTHNKLGNBQWMsTUFBTWhYLGFBQWFpWCxZQUFZdkosU0FBU3hOLE9BQU84TixLQUFLOEMsVUFBVS9DO3FCQUNyRW1KLFVBQVVGO3FCQUNWRztBQUFBQSxhQUNSO2NBQ0N2WSxRQUFRLE1BQU1vQixhQUFhb1gsWUFBWWxYLE9BQU84TixLQUFLOEMsVUFBVS9DO3FCQUN0RHNKLFVBQVV6WTtxQkFDVnVZO0FBQUFBO0FBQUFBLGFBRVJwYztVQUNIMWIsa0JBQU8wYixPQUFNaUI7QUFBQUE7OztRQUtmc2IsMEJBQTBCLE1BQU07UUFDaEN2SixRQUFRcG9CLFNBQVMsR0FBRztZQUNoQjR4QixhQUFheEosUUFBUUEsUUFBUXBvQixTQUFTO1VBQ3hDNHhCLFdBQVdsMEIsTUFBTUEsVUFBVSxJQUFJO1lBQzdCaEUsa0JBQU87Ozs7ZUFLSixDQUFDLEdBQUcwdUIsU0FBU3lKO0FBQUFBO1FBR3BCQyxxQkFBcUI5M0Isd0NBQVksQ0FBQ3FFLE9BQWUwYixXQUFtQjtlQUM1RHFPLGNBQVk7WUFDaEJTLE9BQU8sQ0FBQyxHQUFHVDtXQUNaL3BCLFNBQVMwYjthQUNQOE87QUFBQUE7QUFBQUEsS0FFUjtRQUVHa0oscUJBQXFCLzNCLHdDQUFZLENBQUNxRSxVQUFrQjtlQUM1QytwQixjQUFZO1lBQ2hCUyxPQUFPVCxTQUFRck8sT0FBTyxDQUFDNkosS0FBRzFqQixNQUFNQSxNQUFNN0I7YUFDckN3cUI7QUFBQUE7QUFBQUEsS0FFUjs7O01BSU0sV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBO1VBQ0wsV0FBVTtBQUFBO1lBQ2ZkLFVBQVUsZUFBZTtBQUFBO1FBRXBCLFdBQVU7QUFBQSxRQUFnQixTQUFTeHBCO0FBQUFBO1VBQ3BDLFdBQVU7QUFBQSxVQUFXLEtBQUtvaEI7QUFBQUE7QUFBQUE7QUFBQUE7TUFHOUIsV0FBVTtBQUFBO1FBQ1IsV0FBVTtBQUFBO1VBQ1AsV0FBVTtBQUFBOztVQUNULFdBQVU7QUFBQSxVQUFjLE1BQUs7QUFBQSxVQUFPLE9BQU9wRjtBQUFBQSxVQUFPLFVBQVU2VztBQUFBQTtBQUFBQTtRQUVoRSxXQUFVO0FBQUE7VUFDUCxXQUFVO0FBQUE7O1VBQ1gsV0FBVTtBQUFBLHFCQUNaaEosUUFBUXRtQixJQUFJLENBQUNrd0IsSUFBRzN6QixVQUFVO3VDQUV0QjtjQUVDO0FBQUEsY0FDQSxRQUFRMnpCO0FBQUFBLGNBQ1I7QUFBQSxjQUNBO0FBQUEsZUFKSzN6QjtBQUFBQTtZQVFOLFdBQVU7QUFBQSxZQUFvQixTQUFTc3pCO0FBQUFBOzs7OztNQU03QyxXQUFVO0FBQUE7UUFFUixXQUFVO0FBQUE7VUFDUCxXQUFZLFlBQVd2SixRQUFRcG9CLFdBQVcsS0FBSztBQUFBO3NCQUMvQmt4QjtBQUFBQTs7VUFFZCxXQUFZLGdCQUFlRCxhQUFhMUcsWUFBWSxlQUFlO0FBQUEsVUFBTSxTQUFTbFY7QUFBQUE7Ozs7OztBQWdCcEcsTUFBTTRjLGdCQUFrRCxDQUFDMzNCLFVBQWtDO1FBQ25GO0FBQUEsSUFBQytEO0FBQUFBLElBQU8wYjtBQUFBQSxJQUFRK1g7QUFBQUEsSUFBb0JDO0FBQUFBLE1BQXNCejNCO1FBQzFEO0FBQUEsSUFBQ3dSO0FBQUFBLE1BQVFpTztRQUNULENBQUNtWSxlQUFlQyxvQkFBb0JwNEI7d0NBRWhDLE1BQU07UUFDVnE0QjtRQUNBcHNCLE9BQU9xc0IsS0FBS0MsY0FBY3RKLFNBQVNsZCxPQUFPOzRDQUV6Q3VrQjtRQUNDLFdBQVU7QUFBQSxRQUNWLFlBQVlycUIsT0FBT3VzQixPQUFPRCxhQUFheG1CLE1BQW9CMG1CO0FBQUFBLFFBQzNELE9BQU96WSxPQUFPcmMsTUFBTSswQjtBQUFBQSxRQUNwQixvQkFBb0JDO0FBQUFBO0FBQUFBO1FBS3RCQztZQUNJN21CO0FBQUFBLFdBQ0Q7MkNBRUF1a0I7VUFDQyxXQUFVO0FBQUEsVUFDVixZQUFZaUMsYUFBYSxRQUFRQztBQUFBQSxVQUNqQyxPQUFPeFksT0FBT3JjLE1BQU1BO0FBQUFBLFVBQ3BCLG9CQUFvQmsxQjtBQUFBQTs7O1dBS3JCOzJDQUVBdkM7VUFDQyxXQUFVO0FBQUEsVUFDVixZQUFZcGMsWUFDVHZVLFdBQ0E4dkIsS0FBSzFNLE9BQ0xoaEIsSUFBSzZYLFFBQU07bUJBQ0g7QUFBQSxjQUFDdmEsTUFBTXVhO0FBQUFBLGNBQUdqYyxPQUFPaWM7QUFBQUE7QUFBQUE7QUFBQUEsVUFFNUIsT0FBT0ksT0FBT3JjLE1BQU1BO0FBQUFBLFVBQ3BCLG9CQUFvQmsxQjtBQUFBQTs7O1dBS3JCOztVQUdDLE1BQUs7QUFBQSxVQUNMLFdBQVU7QUFBQSxVQUNWLE9BQU83WSxPQUFPcmMsTUFBTUE7QUFBQUEsVUFDcEIsVUFBVzZCLFdBQVU7OEJBQ0RBLE1BQU1vRyxPQUFPakk7a0JBQ3pCaUksT0FBTzlHO0FBQUFBO0FBQUFBOzs7OztpQkFVbEJ1ekIsaUJBQ0FPO0FBQUFBO0FBQUFBLEtBR0osQ0FBQzdtQixNQUFNaU87UUFFSjhZLHVCQUF1Qjc0Qix3Q0FDM0IsQ0FBQzBELFVBQWtCO1FBQ2IsQ0FBQyxPQUFPLE1BQU1zckIsU0FBU3RyQixRQUFRO3lCQUNkVyxPQUFPLGlDQUNyQjBiLFNBRHFCO0FBQUEsUUFFeEIrWSxVQUFVcDFCO0FBQUFBO0FBQUFBO0FBQUFBLEtBSWhCLENBQUNxYztRQUdHZ1osbUJBQW1CLzRCLHdDQUN2QixDQUFDMEQsVUFBa0I7UUFDYnFjLE9BQU9qTyxTQUFTcE8sT0FBTztZQUNuQnMxQixNQUFNaHRCLE9BQU91c0IsT0FBT0QsYUFBYTUwQixPQUFxQjgwQjt5QkFDekNuMEIsT0FBTyxpQ0FDckIwYixTQURxQjtBQUFBLFFBRXhCak8sTUFBTXBPO0FBQUFBLFFBQ05BLE9BQU87QUFBQSxVQUNMKzBCLFVBQVVPLElBQUksR0FBR3QxQjtBQUFBQSxVQUNqQkEsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBLEtBS2YsQ0FBQ3FjO1FBR0cyWSx1QkFBdUIxNEIsd0NBQzNCLENBQUMwRCxVQUFrQjt1QkFDRVcsT0FBTyxpQ0FDckIwYixTQURxQjtBQUFBLE1BRXhCcmMsT0FBTyxpQ0FDRnFjLE9BQU9yYyxRQURMO0FBQUEsUUFFTCswQixVQUFVLzBCO0FBQUFBO0FBQUFBO0FBQUFBLEtBSWhCLENBQUNxYztRQUdHNlksb0JBQW9CNTRCLHdDQUN4QixDQUFDMEQsVUFBa0I7dUJBQ0VXLE9BQU8saUNBQ3JCMGIsU0FEcUI7QUFBQSxNQUV4QnJjLE9BQU8saUNBQ0ZxYyxPQUFPcmMsUUFETDtBQUFBLFFBRUxBO0FBQUFBO0FBQUFBO0FBQUFBLEtBSU4sQ0FBQ3FjO1FBR0drWix1QkFBdUIsTUFBTTt1QkFDZDUwQjtBQUFBQTs7SUFJZCxXQUFVO0FBQUEsZUFDWkEsUUFBUSx3QkFDTmd5QjtNQUNDLFdBQVU7QUFBQSxNQUNWLFlBQVk2QztBQUFBQSxNQUNaLE9BQU9uWixPQUFPK1k7QUFBQUEsTUFDZCxvQkFBb0JEO0FBQUFBLFNBRXBCLDBCQUNIeEM7TUFDQyxXQUFVO0FBQUEsTUFDVixZQUFZcnFCLE9BQU91c0IsT0FBT0Q7QUFBQUEsTUFDMUIsT0FBT3ZZLE9BQU9qTztBQUFBQSxNQUNkLG9CQUFvQmluQjtBQUFBQSxRQUdyQmI7TUFDSSxXQUFVO0FBQUEsTUFBYSxLQUFLdlM7QUFBQUEsTUFBTyxTQUFTc1Q7QUFBQUE7QUFBQUE7QUFBQUE7QUFLdkQsTUFBTUUsb0JBQXNEbFMsaUNBQUtnUjsrQkFFbkJsSyxTQUF3QjthQUVsRTtBQUFBLElBQ0V2ckIsV0FBVztBQUFBLEtBRWJzMEIsbUJBQ0E7QUFBQSxJQUFDL0k7QUFBQUE7QUFBQUE7OztBQ3pTTCxNQUFNcUwsWUFBNkIsTUFBTTtRQUNqQztBQUFBLElBQ0puWixZQUFZO0FBQUEsTUFBQ0M7QUFBQUE7QUFBQUEsSUFDYmxCLGVBQWU7QUFBQSxNQUNiQyxPQUFPO0FBQUEsUUFBQ2M7QUFBQUE7QUFBQUE7QUFBQUEsTUFFUnpkLHVDQUFXQztRQUNUeXRCLGVBQWVDO1FBQ2ZvSixnQkFBZ0JuWixRQUNuQjRJLEtBQUssQ0FBQ0MsR0FBR0MsTUFBTS9xQixRQUFNZ3JCLG1CQUFtQkQsRUFBRTVCLGFBQWFucEIsUUFBTWdyQixtQkFBbUJGLEVBQUUzQixZQUNsRjBCLEtBQUssQ0FBQ0MsR0FBR0M7O0FBQU0vcUIsbUJBQU1nckIsbUJBQW1CRCxRQUFFc1EsYUFBRnRRLFlBQWMsS0FBSy9xQixRQUFNZ3JCLG1CQUFtQkYsUUFBRXVRLGFBQUZ2USxZQUFjO0FBQUE7d0NBRTNGLE1BQU07aUJBRVh5TyxrQkFDQTlXLE1BQU0sTUFBTTtBQUFBLE9BR1oyUCxRQUFRLE1BQU07bUJBQ0FDO0FBQUFBO0FBQUFBLEtBRWhCOztJQUdJLFdBQVU7QUFBQTtNQUNWLFdBQVU7QUFBQTtRQUNMLFdBQVU7QUFBQTs7UUFDVixXQUFVO0FBQUEsUUFBTSxTQUFTLE1BQU1pSjtBQUFBQTs7NEJBSXRDO01BQUssTUFBTXZKLGFBQWF3SixhQUFhSCxjQUFjcnpCLFdBQVc7QUFBQTtRQUN4RCxXQUFVO0FBQUE7VUFDUCxXQUFVO0FBQUEsVUFBTSxTQUFTLE1BQU11ekI7QUFBQUE7Ozs7TUFLcEMsV0FBVTtBQUFBLGdCQUNaRixjQUFjdnhCLElBQUt2TCxRQUFNO21DQUNoQjtVQUE4QixPQUFPQTtBQUFBQSxVQUFHLFVBQVVBLEdBQUV1QixPQUFPaWlCO0FBQUFBLFdBQW5DeGpCLEdBQUV1QjtBQUFBQTtBQUFBQTtBQUFBQTtBQUFBQTtBQVk1QyxNQUFNMjdCLHFCQUF3RCxDQUFDbjVCLFVBQW1DO1FBQzFGO0FBQUEsSUFBQzJlO0FBQUFBLElBQU95YTtBQUFBQSxNQUFZcDVCO1FBQ3BCLENBQUNxNUIsZ0JBQWdCQyx3QkFBd0JuakIsVUFBVTtRQUNuRCxDQUFDc1Ysc0JBQXNCQywwQkFBMEJ2VixVQUFVO1FBRTNEb2pCLG1CQUFtQixNQUFNO1FBQ3pCSCxVQUFVO3NCQUNJL1gsY0FBYztBQUFBLFdBQ3pCO3NCQUlXQSxjQUFjMUMsTUFBTW5oQjtBQUFBQTtBQUFBQTtRQUlsQ2c4QiwyQkFBMkIsQ0FBQ3YwQixVQUE0QjtVQUN0RG9COzs7UUFJRm96QixxQ0FBcUMsTUFBTTt5QkFDMUI7QUFBQTtRQUdqQnpOLHdCQUF3QixPQUFPL21CLFVBQTRCO1VBQ3pEb0I7UUFFRm9sQixzQkFBc0I7VUFDcEI7Y0FDSTFMLGFBQWEyWixZQUFZL2EsTUFBTW5oQjtBQUFBQSxlQUM5QnNkO1lBQ0gxYixrQkFBTzBiLE9BQU1pQjtBQUFBQTtBQUFBQSxXQUVkOzs7O1FBS0g0ZCwwQkFBMEIsQ0FBQzEwQixVQUE0QjtVQUNyRG9COzBCQUNnQnNZLE1BQU1uaEI7QUFBQUE7UUFHeEJvOEIseUJBQXlCLE9BQU8zMEIsVUFBNEI7VUFDMURvQjtRQUVGO1VBQ0VzWSxNQUFNcWEsVUFBVTtjQUNaalosYUFBYThaLFdBQVdsYixNQUFNbmhCO3FCQUN2Qnk1QixVQUFVLGlDQUNsQnRZLFFBRGtCO0FBQUEsVUFFckJxYSxVQUFVO0FBQUE7QUFBQSxhQUVQO2NBQ0NqWixhQUFhK1osU0FBU25iLE1BQU1uaEI7cUJBQ3JCeTVCLFVBQVUsaUNBQ2xCdFksUUFEa0I7QUFBQSxVQUVyQnFhLFVBQVVyN0IsUUFBTTRkLGtCQUFrQkMsS0FBS0M7QUFBQUE7QUFBQUE7QUFBQUEsYUFHcENYOzs7UUFLTGlmLDRCQUE0QixNQUFNOzJCQUNmO0FBQUE7OztNQUtoQixXQUFZLHdCQUF1QlgsV0FBVyxXQUFXO0FBQUEsTUFBTSxTQUFTRztBQUFBQTtRQUN0RSxXQUFVO0FBQUE7VUFDUCxXQUFVO0FBQUE7O1VBQ1YsV0FBVTtBQUFBLG9CQUFjNWEsTUFBTXNCO0FBQUFBO0FBQUFBO1FBRWpDLFdBQVU7QUFBQTtVQUNQLFdBQVU7QUFBQSxVQUF3QixTQUFTdVo7QUFBQUE7WUFDMUMsV0FBVTtBQUFBLFlBQVcsS0FBS0osV0FBV1ksWUFBWXpOO0FBQUFBO0FBQUFBO1VBR3RELFdBQVksdUJBQXNCOE0saUJBQWlCLEtBQUs7QUFBQSxVQUN4RCxjQUFjSTtBQUFBQTtZQUNULFdBQVU7QUFBQTtjQUNQLFdBQVU7QUFBQSxjQUFNLFNBQVNHO0FBQUFBLHdCQUM1QmpiLE1BQU1xYSxXQUFXLFVBQVU7QUFBQTtjQUV4QixXQUFVO0FBQUEsY0FBTSxTQUFTVztBQUFBQTs7Y0FJN0IsV0FBWSxrQkFBaUJsTyx1QkFBdUIsa0JBQWtCO0FBQUEsY0FDdEUsU0FBU087QUFBQUEsY0FDVCxjQUFjK047QUFBQUEsd0JBQ2J0Tyx1QkFBdUIsa0JBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNqSnJELE1BQU13TyxVQUEyQixNQUFNO1FBQy9CO0FBQUEsSUFDSnZiLGVBQWU7QUFBQSxNQUNiQyxPQUFPO0FBQUEsUUFBQ1IsS0FBSzRDO0FBQUFBO0FBQUFBO0FBQUFBLElBRWZnSixXQUFXO0FBQUEsTUFBQ21MLE1BQU1nRjtBQUFBQSxNQUFVcFE7QUFBQUE7QUFBQUEsTUFDMUI5bkIsdUNBQVdDO1FBQ1QsQ0FBQ2l6QixNQUFNaUYsV0FBVzE2QixxQ0FBZ0I7d0NBRTlCLE1BQU07Z0JBQ0YyNkI7QUFBQUEsS0FDWCxDQUFDdFE7d0NBRU0sTUFBTTtVQUNSdVEsYUFBYTFTLE1BQU14RyxLQUFLK1ksVUFBVTFSO1VBQ2xDOFIsT0FBc0I7QUFBQSxNQUMxQkMsU0FBUztBQUFBO2VBRUFwYyxRQUFPa2MsWUFBWTtZQUN0QkcsVUFBVXJjLEtBQUl1RyxNQUFNO1VBQ3RCK1YsVUFBVUg7VUFDVkksVUFBVTtlQUNMOTBCLElBQUksR0FBR0EsSUFBSTQwQixRQUFROTBCLFFBQVFFLEtBQUs7Y0FDakNnRyxNQUFNNHVCLFFBQVE1MEI7WUFDaEJBLE1BQU0sR0FBRztxQkFDQWdHO0FBQUFBLGVBQ047cUJBQ00sTUFBTUE7QUFBQUE7WUFHZmYsTUFBTTttQkFFQ3dVLE1BQUtvYixRQUFRRixTQUFTO2NBQzNCbGIsR0FBRXZhLFNBQVM0MUIsU0FBUztrQkFDaEJyYjs7OztZQUtOLENBQUN4VSxLQUFLO2dCQUNGO0FBQUEsWUFDSmU7QUFBQUEsWUFDQTlHLE1BQU00MUI7QUFBQUEsWUFDTkgsU0FBUztBQUFBO2tCQUVIQSxRQUFRelMsS0FBS2pkO0FBQUFBO2tCQUdiQTtBQUFBQTtBQUFBQTtZQUdOeXZCLEtBQUtDO0FBQUFBLEtBQ1osQ0FBQ0w7O0lBR0csV0FBVTtBQUFBO01BQ1YsV0FBVTtBQUFBOztNQUNSLFdBQVU7QUFBQSxpQkFDWmhGLEtBQUsxdEIsSUFBSSxDQUFDNlgsSUFBR0MsNEJBQ1g7UUFBMEMsS0FBS0Q7QUFBQUEsUUFBRztBQUFBLFNBQTVCQSxHQUFFdmEsT0FBTyxNQUFNd2EsMkJBRXZDO1FBQUssTUFBTTRWLEtBQUt4dkIsU0FBUyxLQUFLaVUsWUFBWWdoQjtBQUFBQTtVQUN0QyxXQUFVO0FBQUE7WUFDQSxXQUFVO0FBQUE7Ozs7Ozs7QUFhakMsTUFBTUMsbUJBQW9ELENBQUM1NkIsVUFBaUM7UUFDcEY7QUFBQSxJQUFDbWU7QUFBQUEsSUFBSzRDO0FBQUFBLE1BQVkvZ0I7UUFDbEJvNUIsV0FBV3JZLGFBQWE1QyxLQUFJclo7UUFDNUIrMUIsYUFBYTFjLEtBQUlvYyxRQUFRNzBCLFNBQVM7UUFDbEMsQ0FBQ28xQixhQUFhQyxpQkFBaUI1a0IsVUFBVTtRQUV6QzZrQixpQkFBaUIsTUFBTTtRQUN2QjVCLFVBQVU7c0JBQ0k5WCxZQUFZO0FBQUEsV0FDdkI7Y0FDQzJaLG9CQUFxQixJQUFHOWMsS0FBSXJaO1VBQzlCLENBQUMsQ0FBQyxLQUFLLFlBQVk0cEIsU0FBUzVQLGdCQUFnQjFaLFdBQVc4MUIsV0FBVzt3QkFDcERDLFlBQVk7QUFBQTtzQkFFZDdaLFlBQVluRCxLQUFJclo7QUFBQUE7QUFBQUE7UUFJOUJzMkIsdUJBQXVCLENBQUNuMkIsVUFBNEI7VUFDbERvQjs7Ozs7TUFNQyxXQUFZLHNCQUFxQit5QixXQUFXLFdBQVc7QUFBQSxNQUFNLFNBQVM0QjtBQUFBQTtRQUNwRSxXQUFVO0FBQUE7VUFDUCxXQUFVO0FBQUE7O1VBQ1YsV0FBVTtBQUFBLG9CQUFZN2MsS0FBSXZTO0FBQUFBO0FBQUFBO1FBRTdCLFdBQVU7QUFBQSxrQkFDWml2QjtVQUNPLFdBQVkseUJBQXdCQyxjQUFjLFVBQVU7QUFBQSxVQUFNLFNBQVNNO0FBQUFBO1lBQzFFLFdBQVU7QUFBQSxZQUFXLEtBQUtySDtBQUFBQTtBQUFBQSxhQUUvQjtBQUFBO0FBQUEsUUFJUDhHO01BQ00sV0FBWSxxQkFBb0JDLGNBQWMsS0FBSztBQUFBLGdCQUNyRDNjLEtBQUlvYyxRQUFRL3lCLElBQUksQ0FBQzZ6QixJQUFJL2IsNEJBQ25CO1FBQTJDLEtBQUsrYjtBQUFBQSxRQUFJO0FBQUEsU0FBOUJBLEdBQUd2MkIsT0FBTyxNQUFNd2E7QUFBQUEsU0FHekM7QUFBQTtBQUFBOztBQ2pJVixNQUFNZ2MsY0FBYztBQUFBLEVBQ2xCNVgsT0FBTztBQUFBLEVBQ1B0ZixRQUFRO0FBQUE7QUFHVixNQUFNbTNCLHNCQUFzQixDQUFDQyxnQkFBd0JDLHNCQUFnRDtRQUM3RkMsbUJBQXFDO1dBQ2xDOTFCLElBQUksR0FBR0EsS0FBSzQxQixnQkFBZ0I1MUIsS0FBSztxQkFDdkJraUIsS0FBSztBQUFBLE1BQ3BCc00sV0FBV3FILG9CQUFvQnJJLGtCQUFrQnh0QjtBQUFBQSxNQUNqRCsxQixPQUFPO0FBQUE7QUFBQTtTQUdKRDtBQUFBQTtBQVVULE1BQU1FLGVBQWdDLE1BQU07UUFDcENDLGlCQUFpQmwrQixRQUFNNDJCLG1CQUFtQi9ZLEtBQUtDO1FBQy9DcWdCLFdBQVcsSUFBSXRnQixLQUFLcWdCLGdCQUFnQjVJLFlBQVk7UUFDaEQ4SSxXQUFXLElBQUlwVSxNQUFNLElBQUltVSxVQUFVRSxLQUFLO1FBQ3hDUiw4QkFBOEI5WCxRQUFRLEtBQUs0WCxZQUFZbDNCLFNBQVMwM0I7UUFDaEVMLG9CQUFvQjk5QixRQUFNNDJCLG1CQUFtQnNILGlCQUFpQkwsaUJBQWlCcEk7UUFDL0U2SSxZQUFZcDlCLG9CQUFTcTlCLFNBQVNWLGdCQUFnQixRQUFRVyxNQUFNO1FBRTVEO0FBQUEsSUFDSnBTLFdBQVc7QUFBQSxNQUFDRDtBQUFBQTtBQUFBQSxNQUNWOW5CLHVDQUFXQztRQUNULENBQUNtNkIsU0FBU0MsY0FBYzU4QixxQ0FBMkI4N0Isb0JBQW9CQyxnQkFBZ0JDO1FBQ3ZGLENBQUNhLFdBQVdDLGdCQUFnQjk4QixxQ0FBZ0M7UUFDNUQsQ0FBQys4QixhQUFhQyxrQkFBa0JoOUIscUNBQWdDO1FBQ2hFaTlCLGlCQUFpQjU1QixtQ0FBdUI7UUFDeEM2NUIsV0FBVzc1QixtQ0FBdUI7d0NBRTlCLE1BQU07VUFDUjg1QixVQUE0QnJCLG9CQUFvQkMsZ0JBQWdCQztlQUMzRHArQixNQUFLeXNCLE9BQU87WUFDZitTLGVBQWVoK0Isa0JBQU94QixHQUFFeXBCLFVBQVU3TCxXQUFXLEtBQUs7WUFDbERsWCxRQUFRODRCLGFBQWFDLEtBQUtiLFdBQVc7VUFHdkNsNEIsU0FBUyxLQUFLQSxRQUFRNjRCLFFBQVFsM0IsUUFBUTtnQkFDaEMzQixPQUFPNDNCLFNBQVM7QUFBQTtBQUFBO2VBR2pCLENBQUMsR0FBR2lCO0FBQUFBLEtBQ2QsQ0FBQzlTO1FBRUVpVCxnQ0FBZ0NyOUIsd0NBQVksQ0FBQ3VGLE9BQXlCWSxTQUF5Qjs7aUJBQ3RGQTtRQUNULENBQUM4MkIsU0FBU3g1QixTQUFTOzs7VUFJakI7QUFBQSxNQUFDdWM7QUFBQUEsUUFBZ0IxRSxtQkFBbUI1VjtVQUNwQ3lqQixXQUFXNWpCLE1BQU1vRztVQUNqQnFxQixZQUFZam5CLFNBQVNLLGNBQWM7YUFDaEMzTCxRQUFRZ0IsTUFBTTBULE9BQU9nUixTQUFTclYseUNBQTZCclEsK0JBQVNxUSwyQkFBYyxLQUFLO1FBQzVGd3BCLFdBQVduVSxTQUFTblY7UUFDcEIsQ0FBQ2dNLGNBQWM7a0JBQ0xnVyxVQUFVRTtBQUFBQTthQUVmenlCLFFBQVFnQixNQUFNeVQsTUFBTW9sQixXQUFXO0FBQUEsS0FDdkM7UUFFR0MsZ0NBQWdDdjlCLHdDQUFZLE1BQU07aUJBQ3pDO0FBQUEsS0FDWjtRQUVHdzlCLDJCQUEyQng5Qix3Q0FBWSxDQUFDbUcsU0FBeUI7O1FBQ2pFaVosdUJBQWdCMVosV0FBV3VaLE1BQU16RyxhQUFqQzRHLG1CQUEyQ3FDLFVBQVN0YixLQUFLdXVCLFdBQVc7c0JBQ3RENVMsa0JBQWtCLEdBQUc7cUJBQ3RCO0FBQUEsZUFDTjNiLEtBQUs4MUIsUUFBUSxHQUFHO1VBQ3JCLENBQUMsQ0FBQyxLQUFLLFlBQVlqTixTQUFTNVAsZ0JBQWdCMVosV0FBVzgxQixXQUFXO3dCQUNwREMsWUFBWTtBQUFBO3NCQUVkM1osa0JBQ2QzYixLQUFLdXVCLFdBQ0x6MkIsUUFBTWdyQixtQkFDSjlwQixrQkFBT2dILEtBQUt1dUIsWUFBWWhCLGlCQUNyQjhJLFNBQVMsR0FBRyxRQUNaQyxNQUFNLE9BQ05yZixPQUFPO3FCQUdDalg7QUFBQUE7QUFBQUEsS0FFaEI7O0lBR0ksV0FBVTtBQUFBLElBQXlCLEtBQUs2MkI7QUFBQUE7TUFDdEMsV0FBVTtBQUFBO1FBQ1AsV0FBVTtBQUFBLGtCQUFZaGIsU0FBUXJDLEVBQUUsaUJBQWlCO0FBQUEsVUFBQzBWLGVBQWU7QUFBQSxXQUFPO0FBQUE7UUFDeEUsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBLGtCQUFZclQsU0FBUXJDLEVBQUUsaUJBQWlCO0FBQUEsVUFBQzBWLGVBQWU7QUFBQSxXQUFPO0FBQUE7UUFDeEUsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBLGtCQUFZclQsU0FBUXJDLEVBQUUsaUJBQWlCO0FBQUEsVUFBQzBWLGVBQWU7QUFBQSxXQUFPO0FBQUE7UUFDeEUsV0FBVTtBQUFBO1FBQ1YsV0FBVTtBQUFBLGtCQUFZclQsU0FBUXJDLEVBQUUsaUJBQWlCO0FBQUEsVUFBQzBWLGVBQWU7QUFBQSxXQUFPO0FBQUE7QUFBQTtNQUkzRSxLQUFLNEg7QUFBQUEsTUFBVSxXQUFXLGdEQUFnRCxLQUFLO0FBQUEsaUJBQ2pGTCx1Q0FBV1gsb0JBQWdCO1FBQ3RCLFdBQVU7QUFBQSxrQkFBYSxJQUFJbmdCLEtBQUs4Z0IsdUNBQVdsSSxXQUFxQitJO0FBQUFBO0FBQUFBO01BR25FLFdBQVU7QUFBQSxpQkFDWmYsUUFBUTUwQixJQUFJLENBQUM0MUIsSUFBR3gzQixNQUFNO2NBQ2YrMUIsUUFBUXlCLEdBQUV6QjtjQUNWMEIsYUFDSjFCLFNBQVMsSUFDTCxLQUNBQSxTQUFTLElBQ1QsbUJBQ0FBLFNBQVMsSUFDVCxtQkFDQUEsU0FBUyxJQUNULG1CQUNBOztVQUlGLFdBQVksa0JBQWlCMEIsY0FBY2IsZ0JBQWdCWSxLQUFJLFlBQVksTUFDekV2QixtQkFBbUJ1QixHQUFFaEosWUFBWSxVQUFVO0FBQUEsVUFHN0MsY0FBZTltQixPQUFNeXZCLDhCQUE4Qnp2QixHQUFHOHZCO0FBQUFBLFVBQ3RELGNBQWNIO0FBQUFBLFVBQ2QsU0FBUyxNQUFNQyx5QkFBeUJFO0FBQUFBLFdBSG5DeDNCO0FBQUFBLFVBTVZtMkIsU0FBU3YwQixJQUFJLENBQUM0MUIsSUFBR3gzQjtRQUNWLFdBQVU7QUFBQSxTQUEyQkE7QUFBQUE7QUFBQUE7QUFBQUE7O0FDeklyRCxNQUFNMDNCLFVBQTJCLE1BQU07UUFDL0I7QUFBQSxJQUNKNWU7QUFBQUEsSUFDQTVjLGFBQWE7QUFBQSxNQUFDNGQ7QUFBQUEsTUFBYzZkO0FBQUFBO0FBQUFBLE1BQzFCdjdCLHVDQUFXQztRQUNUdTdCLGVBQWUxNkIsbUNBQW9CO1FBRW5DMjZCLDhCQUE4QnhmLG9DQUFRLE1BQU07V0FDekMsQ0FBQ2haLFVBQXNCOztZQUN0Qnk0QixnQkFBZ0IxaUIsbUJBQW1CNVYsV0FBV200QjtVQUVoRCxDQUFDRyxlQUFlO2VBQ1hqakIsb0JBQW9CLFNBQVNnakIsNkJBQTZCO0FBQUEsVUFDL0Q1TCxTQUFTO0FBQUE7OztVQUtULENBQUMyTCxvQkFBYXI2QixZQUFicTZCLG1CQUFzQnYzQixTQUFTaEIsTUFBTW9HLFVBQWlCO1lBQ3JEbXlCLHlCQUFhcjZCLFlBQWJxNkIsbUJBQXNCRyxlQUF0QkgsbUJBQWtDdjNCLFNBQVNoQixNQUFNb0csU0FBaUI7Y0FDaEVxeUIsZUFBZTtrQkFDWHIzQjtBQUFBQTs2QkFFV2lhLDRCQUE0QjtpQkFDeEM3RixvQkFBb0IsU0FBU2dqQiw2QkFBNkI7QUFBQSxZQUMvRDVMLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEtBS2hCO3dDQUVPLE1BQU07dUJBQ0t2Uiw0QkFBNEI7QUFBQSxLQUM5QyxDQUFDNUI7d0NBRU0sTUFBTTtRQUNWNmUsMEJBQTBCO2VBQ25CcG9CLEtBQUt3TixVQUFVaEIsSUFBSWljO0FBQUFBLFdBQ3ZCO2VBQ0l6b0IsS0FBS3dOLFVBQVV6ZSxPQUFPMDVCO0FBQUFBO0FBQUFBLEtBRWhDLENBQUNMO3dDQUVNLE1BQU07UUFDVjdkLGdCQUFnQjZkLDBCQUEwQjthQUNyQy9pQixpQkFBaUIsU0FBU2lqQiw2QkFBNkI7QUFBQSxRQUM1RDVMLFNBQVM7QUFBQTtBQUFBO0FBQUEsS0FHWixDQUFDblMsY0FBYzZkOztJQUdULFdBQVU7QUFBQSxJQUF3QixLQUFLQztBQUFBQSxtQ0FDM0MscUNBQ0EsdUNBQ0Esb0NBQ0E7Ozs7QUM3RFAsZ0JBQWdCO1FBQ1I7QUFBQSxJQUNKOWUsZUFBZTtBQUFBLE1BQUN3YztBQUFBQTtBQUFBQSxNQUNkbDVCLHVDQUFXQztRQUVUeXRCLGVBQWVDO3dDQUdYLE1BQU07aUJBZ0JESztBQUFBQSxLQUdaOzs7TUFLVSxJQUFHO0FBQUEscUNBQ1Q7UUFDSyxXQUFVO0FBQUEsa0JBQW1CNk4saUJBQWlCM0M7QUFBQUE7QUFBQUE7QUFBQUE7QUFBQUE7O0FDM0MzRCxPQUFNO01BQ0QsQ0FBQyxPQUFPLFVBQVUsWUFBWTtXQUN6QixVQUFVLGFBQWEsU0FBVSxLQUFVLFFBQWE7VUFFekQsT0FBTyxVQUFVLFNBQVMsS0FBSyxLQUFLLGtCQUFrQixtQkFBbUI7ZUFDcEUsS0FBSyxRQUFRLEtBQUs7QUFBQTthQUlwQixLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssTUFBTTtBQUFBO0FBQUE7QUFBQTs7QUNFaEQscUJBQXFCOzZCQUVoQjtJQUFTLE9BQU8vMUI7QUFBQUEsSUFBVSxTQUFTbEQ7QUFBQUEsa0NBQ2pDOzs7QUFLUCxlQUFlO0FBR1RELHlDQUFXQzt3Q0FFTCxNQUFNO1VBQ1I2N0IscUJBQXFCLE1BQU07eUJBQ1pDLGdCQUFnQnR2QixTQUFTMEcsS0FBS3FJLGVBQWU7QUFBQTs7V0FLM0RoRCxpQkFBaUIsVUFBVXNqQjtXQUUzQixNQUFNO2FBQ0pyakIsb0JBQW9CLFVBQVVxakI7QUFBQUE7QUFBQUEsS0FFdEM7O2tDQUlFOzs7b0JDOUJvQkUsb0JBQVM7QUFBQSxFQUtsQyxZQUFZLE1BQXFCLFFBQXFCO1VBQzlDO0FBTFI7QUFDQTtBQUNRO1NBSUQsU0FBUztBQUFBO0FBQUEsRUFhaEIsaUJBQXlCO1dBRWhCO0FBQUE7QUFBQSxFQUdULFVBQWtCO1dBQ1Q7QUFBQTtBQUFBLEVBR1QsY0FBc0I7V0FDYjtBQUFBO0FBQUEsRUFHRCx3QkFBOEI7Z0JBQ3hCO2dCQUNBO0FBQUE7QUFBQSxRQUdBLGNBQWMsTUFBNEI7UUFDbEQzK0Isa0JBQWdCLE1BQU0sUUFBUTtZQUMxQixrQkFBa0I7a0JBQ1o7a0JBQ0E7QUFBQTtBQUFBO0FBQUEsUUFJRixlQUFlLE1BQTRCO1VBQ2pELE9BQU9BLGtCQUFnQixNQUFNO1FBRS9CLFFBQVEsS0FBSyxnQkFBZ0I7a0JBRW5CO0FBQUE7QUFBQTtBQUFBLEVBSVIsY0FBYyxNQUFtQjtRQUNuQyxLQUFLLElBQUksVUFBVSxlQUFlLEtBQUssZ0JBQWdCO1VBQ3JEQSxrQkFBZ0IsTUFBTSxRQUFROzBCQUNkO29CQUVOO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLWixTQUF3QjtTQUN2Qix3QkFBd0IsS0FBSyxzQkFBc0IsS0FBSztTQUN4RCxnQkFBZ0IsS0FBSyxjQUFjLEtBQUs7U0FDeEMsZ0JBQWdCLEtBQUssY0FBYyxLQUFLO1NBQ3hDLGlCQUFpQixLQUFLLGVBQWUsS0FBSztTQUUxQyxjQUNILEtBQUssT0FBTyxJQUFJLFVBQVUsR0FBRyxpQkFBaUIsTUFBTTtVQUM5QyxDQUFDLEtBQUs7O1VBQ04sQ0FBQyxLQUFLLElBQUksVUFBVSxnQkFBZ0IsaUJBQWlCLFFBQVE7OztZQUczRCxPQUFPLEtBQUssSUFBSSxVQUFVLGdCQUFnQixpQkFBaUIsR0FBRyxVQUFVO1lBQ3hFLFVBQVUsU0FBUyxjQUN2QjtZQUVJLE9BQU8sU0FBUyxjQUNwQjtVQUVFLFNBQVMsb0JBQXVCLFVBQVUsU0FBUyxVQUFVO1lBQzNELENBQUMsb0NBQVMsVUFBVSxTQUFTLHFDQUFvQyxTQUFTLFFBQVc7a0JBQy9FLFNBQVM7ZUFDWixZQUFZO0FBQUE7QUFBQSxhQUVkO1lBQ0Qsb0NBQVMsVUFBVSxTQUFTLHFDQUFvQyxTQUFTLFFBQVc7a0JBQzlFLFlBQVk7ZUFDZixZQUFZO0FBQUE7QUFBQTtBQUFBO1NBTXBCLGNBRUcsS0FBSyxJQUFJLFVBQVcsR0FBRyxtQ0FBbUMsS0FBSztTQUdsRSxjQUFjLEtBQUssSUFBSSxNQUFNLEdBQUcsVUFBVSxLQUFLO1NBQy9DLGNBQWMsS0FBSyxJQUFJLE1BQU0sR0FBRyxVQUFVLEtBQUs7U0FDL0MsY0FBYyxLQUFLLElBQUksTUFBTSxHQUFHLFVBQVUsS0FBSztzQkFFbEMsT0FBTyxLQUFLO2tCQUNoQixLQUFLLE9BQU8sU0FBUztlQUN4QixLQUFLLE9BQU8sU0FBUzswQkFDVixLQUFLLE9BQU8sU0FBUzswQkFDckIsS0FBSyxPQUFPLFNBQVM7b0JBQzNCLEtBQUssT0FBTyxTQUFTO3VCQUNsQixLQUFLLE9BQU8sU0FBUzs0QkFDaEIsS0FBSyxPQUFPLFNBQVM7NEJBQ3JCLEtBQUssT0FBTyxTQUFTO29CQUM3QixLQUFLLE9BQU8sU0FBUzs4QkFDWCxLQUFLLE9BQU8sU0FBUztvQkFDL0IsS0FBSyxPQUFPLFNBQVM7dUJBQ2xCLEtBQUssT0FBTyxTQUFTO3FCQUN2QixLQUFLLE9BQU8sU0FBUztBQUNiLFNBQUssT0FBTyxTQUFTO1NBRXpDLGlCQUFpQjJCLFFBQU0sY0FBY2k5QjtlQUdqQyxPQUFPLEtBQUssZ0JBQWlCLEtBQWE7QUFBQTtBQUFBLFFBRy9DLFVBQVU7QUFBQTtBQUFBO0lBS1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUMxSlgsTUFBTSxRQUFnQztBQUFBLEVBQ3BDLE9BQU87QUFBQTtvQkFFMEI7U0FDMUIsS0FBSyxPQUFPLFFBQVEsQ0FBQyxRQUFRO3VCQUMxQixLQUFLLE1BQU07QUFBQTtBQUFBO01DZ0JWLG1CQUFrQztBQUFBLEVBQzdDLFdBQVc7QUFBQSxFQUNYLGFBQWE7QUFBQSxFQUNiLFVBQVU7QUFBQSxFQUNWLHFCQUFxQjtBQUFBLEVBQ3JCLFVBQVU7QUFBQSxFQUNWLHFCQUFxQjtBQUFBLEVBQ3JCLGtCQUFrQjtBQUFBLEVBQ2xCLGdCQUFnQjtBQUFBLEVBQ2hCLGVBQWU7QUFBQSxFQUNmLGtCQUFrQjtBQUFBLEVBQ2xCLHVCQUF1QjtBQUFBLEVBQ3ZCLHVCQUF1QjtBQUFBLEVBQ3ZCLGVBQWU7QUFBQSxFQUNmLHlCQUF5QjtBQUFBLEVBQ3pCLGVBQWU7QUFBQSxFQUNmLHdCQUF3QjtBQUFBOzhCQUdXQyw0QkFBaUI7QUFBQSxFQUtwRCxZQUFZLE1BQVUsUUFBcUI7VUFDbkMsTUFBSztBQUxiO0FBRVEsOENBQTZCO1NBSTlCLFNBQVM7QUFBQTtBQUFBLEVBR2hCLHNCQUFzQjtpQkFDUCxLQUFLO1VBQ1osU0FBUyxLQUFLO1NBQ2YscUJBQXFCLE9BQU8sV0FBVyxNQUFNO2FBQ3pDO0FBQUEsT0FDTjtnQkFDUztBQUFBO0FBQUEsUUFJUixPQUFPO0FBQUE7QUFBQSxRQUVQLFVBQVU7VUFDUixLQUFLLE9BQU87VUFFWixFQUFDLGdCQUFlO1NBQ2pCLFlBQVk7U0FFWixZQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU07UUFLbkMvTSxtQkFBUSxhQUNULFFBQVEsc0JBQ1IsUUFBUSx5REFDUixRQUFRLENBQUMsU0FDUixLQUNHLGVBQWUsaUJBQWlCLFVBQ2hDLFNBQVMsS0FBSyxPQUFPLFNBQVMsVUFDOUIsU0FBUyxPQUFPLFVBQVU7V0FDcEIsT0FBTyxTQUFTLFdBQVc7V0FDM0I7QUFBQTtRQUlUQSxtQkFBUSxhQUNULFFBQVEsd0JBQ1IsUUFBUSx5R0FDUixRQUFRLENBQUMsU0FDUixLQUNHLGVBQWUsaUJBQWlCLGFBQ2hDLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFDOUIsU0FBUyxPQUFPLFVBQVU7V0FDcEIsT0FBTyxTQUFTLGNBQWM7V0FDOUI7QUFBQTtRQUlUQSxtQkFBUSxhQUNULFFBQVEsdUJBQ1IsUUFDQywwSUFFRCxRQUFRLENBQUMsU0FDUixLQUNHLGVBQWUsaUJBQWlCLHFCQUNoQyxTQUFTLEtBQUssT0FBTyxTQUFTLHFCQUM5QixTQUFTLE9BQU8sVUFBVTtXQUNwQixPQUFPLFNBQVMsc0JBQXNCO1dBQ3RDO0FBQUE7UUFJVEEsbUJBQVEsYUFDVCxRQUFRLDBCQUNSLFFBQVEsMEVBQ1IsUUFBUSxDQUFDLFNBQ1IsS0FDRyxlQUFlLGlCQUFpQixxQkFDaEMsU0FBUyxLQUFLLE9BQU8sU0FBUyxxQkFDOUIsU0FBUyxPQUFPLFVBQVU7V0FDcEIsT0FBTyxTQUFTLHNCQUFzQjtXQUN0QztBQUFBO1FBSVRBLG1CQUFRLGFBQ1QsUUFBUSxtQ0FDUixRQUFRLHNEQUNSLFVBQVUsQ0FBQyxXQUNWLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyxlQUFlLFNBQVMsT0FBTyxVQUFVO1dBQ3ZFLE9BQU8sU0FBUyxnQkFBZ0I7V0FDaEM7QUFBQTtRQUlQQSxtQkFBUSxhQUNULFFBQVEsb0NBQ1IsUUFBUSxzREFDUixVQUFVLENBQUMsV0FDVixPQUFPLFNBQVMsS0FBSyxPQUFPLFNBQVMseUJBQXlCLFNBQVMsT0FBTyxVQUFVO1dBQ2pGLE9BQU8sU0FBUywwQkFBMEI7V0FDMUM7QUFBQTtRQUlQQSxtQkFBUSxhQUNULFFBQVEsa0NBQ1IsUUFBUSw0RUFDUixVQUFVLENBQUMsV0FDVixPQUFPLFNBQVMsS0FBSyxPQUFPLFNBQVMsd0JBQXdCLFNBQVMsT0FBTyxVQUFVO1dBQ2hGLE9BQU8sU0FBUyx5QkFBeUI7V0FDekM7QUFBQTtTQUlOLFlBQVksU0FBUyxNQUFNLEVBQUMsTUFBTTtRQUVuQ0EsbUJBQVEsYUFDVCxRQUFRLGtDQUNSLFFBQ0MsMklBRUQsUUFBUSxDQUFDLFNBQ1IsS0FDRyxlQUFlLGlCQUFpQixrQkFDaEMsU0FBUyxLQUFLLE9BQU8sU0FBUyxrQkFDOUIsU0FBUyxPQUFPLFVBQVU7V0FDcEIsT0FBTyxTQUFTLG1CQUFtQjtXQUNuQztBQUFBO1FBSVRBLG1CQUFRLGFBQ1QsUUFBUSxnQ0FDUixRQUFRLHdHQUNSLFFBQVEsQ0FBQyxTQUNSLEtBQ0csZUFBZSxpQkFBaUIsZ0JBQ2hDLFNBQVMsS0FBSyxPQUFPLFNBQVMsZ0JBQzlCLFNBQVMsT0FBTyxVQUFVO1dBQ3BCLE9BQU8sU0FBUyxpQkFBaUI7V0FDakM7QUFBQTtTQUlSLFlBQVksU0FBUyxNQUFNLEVBQUMsTUFBTTtRQUVuQztRQUVBQSxtQkFBUSxhQUNULFFBQVEsZUFDUixRQUFRLGlFQUNSLFlBQVksT0FBTyxNQUF5QjtpQkFDaEM7ZUFDRixVQUFVLE1BQU07ZUFDaEIsVUFBVSxNQUFNO2VBQ2hCLFNBQVMsS0FBSyxPQUFPLFNBQVMsVUFBVSxTQUFTLE9BQU8sVUFBVTthQUNwRSxPQUFPLFNBQVMsV0FBVzthQUMzQjtBQUFBO0FBQUE7UUFJUEEsbUJBQVEsYUFDVCxRQUFRLGtCQUNSLFFBQVEsK0RBQ1IsWUFBWSxPQUFPLE1BQXlCO2lCQUNoQztlQUNGLFVBQVUsUUFBUTtlQUNsQixVQUFVLFFBQVE7ZUFDbEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxlQUFlLFNBQVMsT0FBTyxVQUFVO2FBQ3pFLE9BQU8sU0FBUyxnQkFBZ0I7YUFDaEM7QUFBQTtBQUFBO1FBSVBBLG1CQUFRLGFBQ1QsUUFBUSw4QkFDUixRQUFRLDBFQUNSLFlBQVksT0FBTyxNQUF5QjtpQkFDaEM7ZUFDRixVQUFVLFNBQVM7ZUFDbkIsVUFBVSxZQUFZO2VBQ3RCLFNBQVMsS0FBSyxPQUFPLFNBQVMsa0JBQWtCLFNBQVMsT0FBTyxVQUFVO2FBQzVFLE9BQU8sU0FBUyxtQkFBbUI7YUFDbkM7QUFBQTtBQUFBO1FBSVBBLG1CQUFRLGFBQ1QsUUFBUSxxQ0FDUixRQUFRLGdFQUNSLFlBQVksT0FBTyxNQUF5QjtpQkFDaEM7ZUFDRixVQUFVLE9BQU87ZUFDakIsVUFBVSxVQUFVO2VBQ3BCLFNBQVMsS0FBSyxPQUFPLFNBQVMsdUJBQXVCLFNBQVMsT0FBTyxVQUFVO2FBQ2pGLE9BQU8sU0FBUyx3QkFBd0I7YUFDeEM7QUFBQTtBQUFBO1FBSVBBLG1CQUFRLGFBQ1QsUUFBUSx1Q0FDUixRQUFRLDhGQUNSLFVBQVUsQ0FBQyxXQUNWLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyx1QkFBdUIsU0FBUyxPQUFPLFVBQVU7V0FDL0UsT0FBTyxTQUFTLHdCQUF3QjtXQUN4QztBQUFBO1FBSVBBLG1CQUFRLGFBQ1QsUUFBUSxnQ0FDUixRQUFRLGlFQUNSLFVBQVUsQ0FBQyxXQUNWLE9BQU8sU0FBUyxLQUFLLE9BQU8sU0FBUyxlQUFlLFNBQVMsT0FBTyxVQUFVO1dBQ3ZFLE9BQU8sU0FBUyxnQkFBZ0I7V0FDaEM7QUFBQTtTQUlOLFlBQVksU0FBUyxNQUFNLEVBQUMsTUFBTTtRQUVuQ0EsbUJBQVEsYUFDVCxRQUFRLFVBQ1IsUUFBUSxnRkFFUixVQUFVLENBQUMsT0FBTztTQUNkLFNBQVMsWUFBWTtBQUFBO0FBQUE7QUFBQTtNQ2hSbkIsa0JBQWtCO0FBQUEsRUFDN0IsU0FBUztBQUFBLEVBQ1QsaUJBQWlCO0FBQUEsRUFDakIsUUFBUSxDQUFDLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLHNCQUFPO0FBQUEsRUFDNUUsVUFBVSxDQUFDLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNO0FBQUEsRUFDL0MsZUFBZSxDQUFDLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNLGdCQUFNO0FBQUEsRUFDcEQsSUFBSTtBQUFBO01DTk8sa0JBQWtCO0FBQUEsRUFDN0IsU0FBUztBQUFBLEVBQ1QsaUJBQWlCO0FBQUEsRUFDakIsUUFBUTtBQUFBLElBQ047QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBO0FBQUEsRUFFRixVQUFVLENBQUMsVUFBVSxXQUFXLGFBQWEsWUFBWSxVQUFVLFlBQVk7QUFBQSxFQUMvRSxlQUFlLENBQUMsT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU87QUFBQSxFQUMxRCxJQUFJO0FBQUE7MEJDeUJtQ2dOLGtCQUFPO0FBQUE7O0FBQ3ZDO0FBQUE7QUFBQSxRQUNELFNBQXdCO1lBQ3BCLElBQUk7VUFFTixLQUFLO1VBQ0wsS0FBSztTQUlOLGFBQWEsaUJBQWlCLENBQUMsU0FBUyxJQUFJLE1BQU0sTUFBTTtTQU94RCxjQUFjLElBQUksZ0JBQWdCLEtBQUssS0FBSzs7U0FHNUMsY0FBYyxTQUFTemMsU0FBUSxFQUFFLG9CQUFvQixNQUFNO1VBQzFEdGlCLGtCQUFPO1dBQ047QUFBQTtRQUdIZy9CLGtDQUFnQztVQUM5QmgvQixrQkFBTztBQUFBO1NBR1IsV0FBVztBQUFBLE1BQ2QsSUFBSTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sVUFBVSxNQUFNLEtBQUs7QUFBQSxNQUNyQixTQUFTO0FBQUE7U0FHTixXQUFXO0FBQUEsTUFDZCxJQUFJO0FBQUEsTUFDSixNQUFNO0FBQUEsTUFDTixVQUFVLE1BQU0sS0FBSztBQUFBLE1BQ3JCLFNBQVM7QUFBQTtTQUdOLFdBQVc7QUFBQSxNQUNkLElBQUk7QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLFVBQVUsTUFBTSxLQUFLO0FBQUEsTUFDckIsU0FBUztBQUFBO1NBR04sSUFBSSxVQUFVLGNBQWMsS0FBSyxjQUFjLEtBQUs7WUFDakQsSUFBSXNpQixTQUFRLEVBQUU7WUFDZCxJQUFJO0FBQUE7QUFBQSxRQUdELGVBQWU7U0FDckIsV0FBVyxPQUFPLE9BQU8sSUFBSSxrQkFBa0IsTUFBTSxLQUFLO0FBQUE7QUFBQSxRQUczRCxlQUFlO1VBQ2IsS0FBSyxTQUFTLEtBQUs7QUFBQTtBQUFBLEVBRzNCLFdBQVc7U0FDSixJQUFJLFVBQVUsbUJBQW1CO1FBQ2xDdGlCLGtCQUFPO0FBQUE7QUFBQSxRQUdQLGdCQUErQjs7UUFDL0IsV0FBSyxJQUFJLFVBQVUsZ0JBQWdCLHFCQUFuQyxtQkFBcUQsUUFBUTs7O1FBRzdELEtBQUssU0FBUywyQkFBMkIsTUFBTTs7O1NBRzlDO0FBQUE7QUFBQSxRQUdELGdCQUFnQjtVQUNkLGtCQUFrQixLQUFLLElBQUksVUFBVSxnQkFBZ0I7UUFDdkQsNEJBQTRCLE1BQU07VUFDaEMsb0JBQW9CLFVBQWEsZ0JBQWdCLFdBQVcsR0FBRzthQUM1RDs7YUFFQTs7O1dBR0Y7Ozs7UUFLSCxZQUFZO1VBQ1YsWUFBWSxLQUFLLElBQUk7Y0FDakIsbUJBQW1CO1VBQ3ZCLE9BQU8sVUFBVSxRQUNyQixDQUFDNFgsb0JBQVMsWUFBWSxVQUFVLGNBQWMsVUFBVSxXQUFXLGdCQUFnQnFuQjtVQUUvRSxLQUFLLGFBQWEsRUFBQyxNQUFNO2NBQ3JCLFdBQVc7UUFDakIsa0JBQWtCLE9BQU87V0FDdEIsS0FBSyxZQUFZLGNBQWMsWUFBWTtBQUFBO0FBQUE7QUFBQSxFQUlwRCxnQkFBZ0I7VUFDUixZQUFZLEtBQUssSUFBSTtVQUNyQixTQUFTLFVBQVUsZ0JBQWdCO1FBQ3JDLE9BQU8sU0FBUyxHQUFHO1lBQ2YsT0FBTyxPQUFPO2dCQUNWLGNBQWM7V0FDbkIsS0FBSyxZQUFZLGNBQWMsWUFBWTtBQUFBLFdBQzNDO1dBQ0E7QUFBQTtBQUFBO0FBQUEsUUFJSCxtQkFBbUI7YUFDZixLQUFLO0FBQUEsTUFDWCxXQUFXO0FBQUEsUUFDVCxJQUFJO0FBQUEsVUFDRixhQUFhO0FBQUE7QUFBQSxRQUVmLElBQUk7QUFBQSxVQUNGLGFBQWE7QUFBQTtBQUFBO0FBQUE7YUFLWCxlQUFlLEtBQUssU0FBUztBQUFBO0FBQUE7OyJ9 diff --git a/.obsidian/plugins/obsidian-memos/manifest.json b/.obsidian/plugins/obsidian-memos/manifest.json index 603c4236..d7ae00b6 100644 --- a/.obsidian/plugins/obsidian-memos/manifest.json +++ b/.obsidian/plugins/obsidian-memos/manifest.json @@ -1 +1,10 @@ -{"id":"obsidian-memos","name":"Obsidian Memos","description":"A plugin for capturing ideas in Obsidian","version":"1.7.1","author":"Bonianll","authorUrl":"https://github.com/Quorafind/","isDesktopOnly":false,"minAppVersion":"0.13.14"} \ No newline at end of file +{ + "id": "obsidian-memos", + "name": "Obsidian Memos", + "description": "A plugin for capturing ideas in Obsidian", + "version": "1.7.3", + "author": "Bonianll", + "authorUrl": "https://github.com/Quorafind/", + "isDesktopOnly": false, + "minAppVersion": "0.13.14" +} diff --git a/.obsidian/plugins/obsidian-memos/styles.css b/.obsidian/plugins/obsidian-memos/styles.css index 431f4627..7c4c8926 100644 --- a/.obsidian/plugins/obsidian-memos/styles.css +++ b/.obsidian/plugins/obsidian-memos/styles.css @@ -1,5 +1,5 @@ .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -21,7 +21,7 @@ .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper { +.theme-light div[data-type='memos_view'] .common-editor-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -31,7 +31,7 @@ height: auto; background-color: white; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer { display: inline-block; width: 100%; min-height: 24px; @@ -46,43 +46,43 @@ white-space: pre-wrap; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::placeholder { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::placeholder { padding-left: 2px; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer:focus::placeholder { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer:focus::placeholder { color: lightgray; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper { display: flex; flex-direction: row; justify-content: space-between; align-items: center; width: 100%; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .common-tools-container { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .common-tools-container { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; @@ -90,7 +90,7 @@ flex-grow: 0; flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn { border: none; user-select: none; cursor: pointer; @@ -99,32 +99,32 @@ font-size: 13px; line-height: 32px; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn:hover { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn:hover { opacity: 0.8; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .cancel-btn { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .cancel-btn { color: gray; background-color: transparent; margin-right: 8px; line-height: 18px; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn { cursor: pointer; padding: 0 12px; background-color: #55bb8e; color: white; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn:disabled { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn:disabled { cursor: not-allowed; opacity: 0.6; } -.theme-light div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn > .icon-text { +.theme-light div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn > .icon-text { margin-left: 4px; } -.theme-light div[data-type="memos_view"] .scroll::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .scroll::-webkit-scrollbar { display: none; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -134,7 +134,7 @@ height: auto; background-color: #000000; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer { display: inline-block; width: 100%; min-height: 24px; @@ -149,47 +149,47 @@ white-space: pre-wrap; scrollbar-width: none; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb:hover { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::-webkit-scrollbar { display: none; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer::placeholder { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer::placeholder { padding-left: 2px; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-editor-inputer:focus::placeholder { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-editor-inputer:focus::placeholder { color: #363636; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper { display: flex; flex-direction: row; justify-content: space-between; align-items: center; width: 100%; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .common-tools-container { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .common-tools-container { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .common-tools-container > img { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .common-tools-container > img { filter: invert(0.8); color: yellowgreen; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; @@ -197,7 +197,7 @@ flex-grow: 0; flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn { border: none; user-select: none; cursor: pointer; @@ -206,36 +206,36 @@ font-size: 13px; line-height: 32px; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn > img { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn > img { filter: invert(0.8); } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn:hover { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .action-btn:hover { opacity: 0.8; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .cancel-btn { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .cancel-btn { color: gray; background-color: transparent; margin-right: 8px; line-height: 18px; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn { cursor: pointer; padding: 0 12px; - background-color: #940B01; + background-color: #940b01; color: white; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn:disabled { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn:disabled { cursor: not-allowed; opacity: 0.6; } -.theme-dark div[data-type="memos_view"] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn > .icon-text { +.theme-dark div[data-type='memos_view'] .common-editor-wrapper > .common-tools-wrapper > .btns-container > .confirm-btn > .icon-text { margin-left: 4px; } -.theme-dark div[data-type="memos_view"] .scroll::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .scroll::-webkit-scrollbar { display: none; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -267,10 +267,10 @@ .theme-light .rta > ::-webkit-scrollbar { width: 2px; height: 16px; - background-color: #F5F5F5; + background-color: #f5f5f5; } .theme-light .rta > ::-webkit-scrollbar-track { - background-color: #F5F5F5; + background-color: #f5f5f5; } .theme-light .rta ::-webkit-scrollbar-thumb { background-color: #555; @@ -331,7 +331,7 @@ cursor: pointer; } .theme-light .rta__item { - text-overflow: "ellipsis"; + text-overflow: 'ellipsis'; line-height: 30px; } .theme-light .rta__item:fisrt-child { @@ -426,7 +426,7 @@ cursor: pointer; } .theme-dark .rta__item { - text-overflow: "ellipsis"; + text-overflow: 'ellipsis'; line-height: 30px; } .theme-dark .rta__item:fisrt-child { @@ -448,7 +448,7 @@ background: #af487b; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -470,7 +470,7 @@ .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .memo-editor-wrapper { +.theme-light div[data-type='memos_view'] .memo-editor-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -483,15 +483,15 @@ border-radius: 8px; border: 2px solid #e4e4e4; } -.theme-light div[data-type="memos_view"] .memo-editor-wrapper.edit-ing { +.theme-light div[data-type='memos_view'] .memo-editor-wrapper.edit-ing { border-color: #5783f7; } -.theme-light div[data-type="memos_view"] .memo-editor-wrapper > .tip-text { +.theme-light div[data-type='memos_view'] .memo-editor-wrapper > .tip-text { font-size: 12px; line-height: 20px; color: #cac8c4; } -.theme-light div[data-type="memos_view"] .memo-editor-wrapper > .memo-editor { +.theme-light div[data-type='memos_view'] .memo-editor-wrapper > .memo-editor { display: flex; flex-direction: column; justify-content: flex-start; @@ -501,12 +501,12 @@ height: auto; background-color: white; } -.theme-light div[data-type="memos_view"] .memo-editor-wrapper > .date-picker { +.theme-light div[data-type='memos_view'] .memo-editor-wrapper > .date-picker { position: absolute; z-index: 20; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .memo-editor-wrapper { + .theme-light div[data-type='memos_view'] .memo-editor-wrapper { width: calc(100% - 24px); margin: auto; margin-right: 16px; @@ -518,7 +518,7 @@ filter: opacity(30%); } } -.theme-dark div[data-type="memos_view"] .memo-editor-wrapper { +.theme-dark div[data-type='memos_view'] .memo-editor-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -531,15 +531,15 @@ border-radius: 8px; border: 2px solid #353535; } -.theme-dark div[data-type="memos_view"] .memo-editor-wrapper.edit-ing { +.theme-dark div[data-type='memos_view'] .memo-editor-wrapper.edit-ing { border-color: #3c3c3c; } -.theme-dark div[data-type="memos_view"] .memo-editor-wrapper > .tip-text { +.theme-dark div[data-type='memos_view'] .memo-editor-wrapper > .tip-text { font-size: 12px; line-height: 20px; color: #5e5b56; } -.theme-dark div[data-type="memos_view"] .memo-editor-wrapper > .memo-editor { +.theme-dark div[data-type='memos_view'] .memo-editor-wrapper > .memo-editor { display: flex; flex-direction: column; justify-content: flex-start; @@ -549,12 +549,12 @@ height: auto; background-color: #383838; } -.theme-dark div[data-type="memos_view"] .memo-editor-wrapper > .date-picker { +.theme-dark div[data-type='memos_view'] .memo-editor-wrapper > .date-picker { position: absolute; z-index: 20; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .memo-editor-wrapper { + .theme-dark div[data-type='memos_view'] .memo-editor-wrapper { width: calc(100% - 24px); margin: auto; margin-right: 16px; @@ -1107,7 +1107,7 @@ border-radius: 0; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -1129,10 +1129,10 @@ .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .search-bar-container { +.theme-light div[data-type='memos_view'] .search-bar-container { width: 160px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .search-bar-inputer { +.theme-light div[data-type='memos_view'] .search-bar-container > .search-bar-inputer { display: flex; flex-direction: row; justify-content: flex-start; @@ -1143,20 +1143,20 @@ padding: 4px 16px; border-radius: 8px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .search-bar-inputer > .icon-img { +.theme-light div[data-type='memos_view'] .search-bar-container > .search-bar-inputer > .icon-img { margin-right: 8px; width: 14px; height: auto; opacity: 0.6; } -.theme-light div[data-type="memos_view"] .search-bar-container > .search-bar-inputer > .text-input { +.theme-light div[data-type='memos_view'] .search-bar-container > .search-bar-inputer > .text-input { width: 100%; font-size: 15px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .search-bar-inputer:hover + .quickly-action-wrapper { +.theme-light div[data-type='memos_view'] .search-bar-container > .search-bar-inputer:hover + .quickly-action-wrapper { display: flex; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper { display: none; position: absolute; top: 52px; @@ -1165,7 +1165,7 @@ padding: 8px; width: 320px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -1176,11 +1176,11 @@ border-radius: 8px; box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .title-text { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .title-text { color: gray; font-size: 12px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -1189,13 +1189,13 @@ font-size: 13px; margin-top: 8px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .section-text { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .section-text { color: gray; margin-right: 4px; flex-shrink: 0; line-height: 26px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -1203,37 +1203,37 @@ flex-wrap: wrap; user-select: none; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; line-height: 26px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item { cursor: pointer; padding: 0 4px; border-radius: 6px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item:hover { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item:hover { background-color: #f8f8f8; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item.selected { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item.selected { background-color: #55bb8e; color: white; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .split-text { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .split-text { color: lightgray; margin: 0 2px; } -.theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper:hover { +.theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper:hover { display: flex; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .search-bar-container { + .theme-light div[data-type='memos_view'] .search-bar-container { width: 120px; } - .theme-light div[data-type="memos_view"] .search-bar-container > .search-bar-inputer { + .theme-light div[data-type='memos_view'] .search-bar-container > .search-bar-inputer { display: flex; flex-direction: row; justify-content: flex-start; @@ -1245,7 +1245,7 @@ width: 120%; margin-left: -35px; } - .theme-light div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper { + .theme-light div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper { display: none; position: absolute; top: 42px; @@ -1258,10 +1258,10 @@ width: 320px; } } -.theme-dark div[data-type="memos_view"] .search-bar-container { +.theme-dark div[data-type='memos_view'] .search-bar-container { width: 160px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .search-bar-inputer { +.theme-dark div[data-type='memos_view'] .search-bar-container > .search-bar-inputer { display: flex; flex-direction: row; justify-content: flex-start; @@ -1272,22 +1272,22 @@ padding: 8px 16px; border-radius: 8px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .search-bar-inputer > .icon-img { +.theme-dark div[data-type='memos_view'] .search-bar-container > .search-bar-inputer > .icon-img { margin-right: 8px; width: 14px; height: auto; opacity: 0.8; filter: invert(1); } -.theme-dark div[data-type="memos_view"] .search-bar-container > .search-bar-inputer > .text-input { +.theme-dark div[data-type='memos_view'] .search-bar-container > .search-bar-inputer > .text-input { width: 100%; font-size: 15px; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .search-bar-inputer:hover + .quickly-action-wrapper { +.theme-dark div[data-type='memos_view'] .search-bar-container > .search-bar-inputer:hover + .quickly-action-wrapper { display: flex; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper { display: none; position: absolute; top: 52px; @@ -1296,7 +1296,7 @@ padding: 8px; width: 320px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -1307,11 +1307,11 @@ border-radius: 8px; margin-top: -8px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .title-text { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .title-text { color: #cccccc; font-size: 12px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -1320,13 +1320,13 @@ font-size: 13px; margin-top: 8px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .section-text { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .section-text { color: #dfdfdf; margin-right: 4px; flex-shrink: 0; line-height: 26px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -1334,38 +1334,38 @@ flex-wrap: wrap; user-select: none; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; line-height: 26px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item { cursor: pointer; padding: 0 4px; border-radius: 6px; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item:hover { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item:hover { background-color: #808080; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item.selected { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .type-item.selected { background-color: #457560; color: #000000; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .split-text { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper > .quickly-action-container > .types-container > .values-container > div .split-text { color: #686868; margin: 0 2px; } -.theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper:hover { +.theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper:hover { display: flex; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .search-bar-container { + .theme-dark div[data-type='memos_view'] .search-bar-container { width: 120px; } - .theme-dark div[data-type="memos_view"] .search-bar-container > .search-bar-inputer { + .theme-dark div[data-type='memos_view'] .search-bar-container > .search-bar-inputer { display: flex; flex-direction: row; justify-content: flex-start; @@ -1377,14 +1377,14 @@ width: 120%; margin-left: -35px; } - .theme-dark div[data-type="memos_view"] .search-bar-container > .search-bar-inputer > .icon-img { + .theme-dark div[data-type='memos_view'] .search-bar-container > .search-bar-inputer > .icon-img { margin-right: 8px; width: 14px; height: auto; opacity: 0.8; filter: invert(1); } - .theme-dark div[data-type="memos_view"] .search-bar-container > .quickly-action-wrapper { + .theme-dark div[data-type='memos_view'] .search-bar-container > .quickly-action-wrapper { display: none; position: absolute; top: 42px; @@ -1395,7 +1395,7 @@ } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -1417,8 +1417,8 @@ .hide-scroll-bar::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] .section-header-container, -div[data-type="memos_view"] .memos-header-container { +div[data-type='memos_view'] .section-header-container, +div[data-type='memos_view'] .memos-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -1430,8 +1430,8 @@ div[data-type="memos_view"] .memos-header-container { margin-bottom: 8px; flex-shrink: 0; } -div[data-type="memos_view"] .section-header-container > .title-text, -div[data-type="memos_view"] .memos-header-container > .title-text { +div[data-type='memos_view'] .section-header-container > .title-text, +div[data-type='memos_view'] .memos-header-container > .title-text { display: flex; flex-direction: row; justify-content: flex-start; @@ -1446,8 +1446,8 @@ div[data-type="memos_view"] .memos-header-container > .title-text { flex-shrink: 0; cursor: pointer; } -div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, -div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { +div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, +div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -1458,29 +1458,29 @@ div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn flex-shrink: 0; background-color: unset; } -div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, -div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { +div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, +div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; } -div[data-type="memos_view"] .section-header-container > .btns-container, -div[data-type="memos_view"] .memos-header-container > .btns-container { +div[data-type='memos_view'] .section-header-container > .btns-container, +div[data-type='memos_view'] .memos-header-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } @media only screen and (max-width: 875px) { - div[data-type="memos_view"] .section-header-container, - div[data-type="memos_view"] .memos-header-container { + div[data-type='memos_view'] .section-header-container, + div[data-type='memos_view'] .memos-header-container { height: auto; margin-top: 4px; margin-bottom: 0; padding: 0 12px; padding-bottom: 8px; } - div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, - div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { + div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, + div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -1492,14 +1492,14 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } - div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, - div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { + div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, + div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; } } -.theme-dark div[data-type="memos_view"] .section-header-container, -.theme-dark div[data-type="memos_view"] .memos-header-container { +.theme-dark div[data-type='memos_view'] .section-header-container, +.theme-dark div[data-type='memos_view'] .memos-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -1511,8 +1511,8 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { margin-bottom: 8px; flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text { display: flex; flex-direction: row; justify-content: flex-start; @@ -1527,8 +1527,8 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -1539,34 +1539,34 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; filter: invert(0.8); } -.theme-dark div[data-type="memos_view"] .section-header-container > .btns-container, -.theme-dark div[data-type="memos_view"] .memos-header-container > .btns-container { +.theme-dark div[data-type='memos_view'] .section-header-container > .btns-container, +.theme-dark div[data-type='memos_view'] .memos-header-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .section-header-container, - .theme-dark div[data-type="memos_view"] .memos-header-container { + .theme-dark div[data-type='memos_view'] .section-header-container, + .theme-dark div[data-type='memos_view'] .memos-header-container { height: auto; margin-top: 4px; margin-bottom: 0; padding: 0 12px; padding-bottom: 8px; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text { color: #d2d1cd; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -1578,15 +1578,15 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; filter: invert(0.8); } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -1608,7 +1608,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .filter-query-container { +.theme-light div[data-type='memos_view'] .filter-query-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -1620,12 +1620,12 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { font-size: 13px; line-height: 1.8; } -.theme-light div[data-type="memos_view"] .filter-query-container > .tip-text { +.theme-light div[data-type='memos_view'] .filter-query-container > .tip-text { padding: 2px 0; margin-left: -6px; margin-right: 3px; } -.theme-light div[data-type="memos_view"] .filter-query-container > .filter-item-container { +.theme-light div[data-type='memos_view'] .filter-query-container > .filter-item-container { padding: 2px 8px; padding-left: 4px; margin-right: 6px; @@ -1637,18 +1637,18 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { overflow: hidden; text-overflow: ellipsis; } -.theme-light div[data-type="memos_view"] .filter-query-container > .filter-item-container > .icon-text { +.theme-light div[data-type='memos_view'] .filter-query-container > .filter-item-container > .icon-text { letter-spacing: 2px; } -.theme-light div[data-type="memos_view"] .filter-query-container > .filter-item-container:hover { +.theme-light div[data-type='memos_view'] .filter-query-container > .filter-item-container:hover { text-decoration: line-through; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .filter-query-container { + .theme-light div[data-type='memos_view'] .filter-query-container { padding-left: 20px; } } -.theme-dark div[data-type="memos_view"] .filter-query-container { +.theme-dark div[data-type='memos_view'] .filter-query-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -1660,13 +1660,13 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { font-size: 13px; line-height: 1.8; } -.theme-dark div[data-type="memos_view"] .filter-query-container > .tip-text { +.theme-dark div[data-type='memos_view'] .filter-query-container > .tip-text { padding: 2px 0; margin-left: -6px; margin-right: 3px; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .filter-query-container > .filter-item-container { +.theme-dark div[data-type='memos_view'] .filter-query-container > .filter-item-container { padding: 2px 8px; padding-left: 4px; margin-right: 6px; @@ -1678,19 +1678,19 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { overflow: hidden; text-overflow: ellipsis; } -.theme-dark div[data-type="memos_view"] .filter-query-container > .filter-item-container > .icon-text { +.theme-dark div[data-type='memos_view'] .filter-query-container > .filter-item-container > .icon-text { letter-spacing: 2px; } -.theme-dark div[data-type="memos_view"] .filter-query-container > .filter-item-container:hover { +.theme-dark div[data-type='memos_view'] .filter-query-container > .filter-item-container:hover { text-decoration: line-through; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .filter-query-container { + .theme-dark div[data-type='memos_view'] .filter-query-container { padding-left: 20px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -1878,7 +1878,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { height: 24px; padding: 2px; border-radius: 4px; - background-color: black ; + background-color: black; } .theme-dark .dialog-wrapper > .dialog-container > .dialog-header-container .btn > .icon-img { width: 20px; @@ -1913,7 +1913,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -2155,7 +2155,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -2177,7 +2177,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { .hide-scroll-bar::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] .image-container { +div[data-type='memos_view'] .image-container { width: 200px; height: auto; overflow-y: scroll; @@ -2185,27 +2185,27 @@ div[data-type="memos_view"] .image-container { -webkit-tap-highlight-color: transparent; scrollbar-width: none; } -div[data-type="memos_view"] .image-container::-webkit-scrollbar { +div[data-type='memos_view'] .image-container::-webkit-scrollbar { width: 2px; height: 0; cursor: pointer; } -div[data-type="memos_view"] .image-container::-webkit-scrollbar-thumb { +div[data-type='memos_view'] .image-container::-webkit-scrollbar-thumb { width: 2px; height: 0; border-radius: 8px; background-color: #d5d5d5; } -div[data-type="memos_view"] .image-container::-webkit-scrollbar-thumb:hover { +div[data-type='memos_view'] .image-container::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -div[data-type="memos_view"] .image-container > img { +div[data-type='memos_view'] .image-container > img { margin: auto; width: 100%; height: auto; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -2265,7 +2265,7 @@ div[data-type="memos_view"] .image-container > img { .theme-light .dialog-wrapper.memo-card-dialog > .dialog-container > .memo-card-container > .header-container > .time-text { font-size: 14px; color: gray; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .theme-light .dialog-wrapper.memo-card-dialog > .dialog-container > .memo-card-container > .header-container > .btns-container { display: flex; @@ -2440,10 +2440,10 @@ div[data-type="memos_view"] .image-container > img { } .theme-light .dialog-wrapper.memo-card-dialog > .dialog-container > .linked-memos-wrapper > .linked-memo-container > .time-text { color: gray; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .dialog-wrapper.memo-card-dialog { + .theme-light div[data-type='memos_view'] .dialog-wrapper.memo-card-dialog { padding: 24px 16px; padding-top: 64px; } @@ -2486,7 +2486,7 @@ div[data-type="memos_view"] .image-container > img { .theme-dark .dialog-wrapper.memo-card-dialog > .dialog-container > .memo-card-container > .header-container > .time-text { font-size: 14px; color: #a8a8a8; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .theme-dark .dialog-wrapper.memo-card-dialog > .dialog-container > .memo-card-container > .header-container > .btns-container { display: flex; @@ -2660,16 +2660,16 @@ div[data-type="memos_view"] .image-container > img { } .theme-dark .dialog-wrapper.memo-card-dialog > .dialog-container > .linked-memos-wrapper > .linked-memo-container > .time-text { color: #a8a8a8; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .dialog-wrapper.memo-card-dialog { + .theme-dark div[data-type='memos_view'] .dialog-wrapper.memo-card-dialog { padding: 24px 16px; padding-top: 64px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -3063,7 +3063,7 @@ div[data-type="memos_view"] .image-container > img { } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -3085,7 +3085,7 @@ div[data-type="memos_view"] .image-container > img { .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text { display: flex; flex-direction: column; justify-content: flex-start; @@ -3095,7 +3095,7 @@ div[data-type="memos_view"] .image-container > img { word-break: break-word; white-space: pre-wrap; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text > p { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text > p { display: inline-block; width: 100%; height: auto; @@ -3105,13 +3105,13 @@ div[data-type="memos_view"] .image-container > img { min-height: 24px; white-space: pre-wrap; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text > p > a { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text > p > a { width: 400px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .tag-span { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .tag-span { display: inline-block; width: auto; padding-left: 4px; @@ -3126,11 +3126,11 @@ div[data-type="memos_view"] .image-container > img { cursor: pointer; vertical-align: bottom; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .tag-span:hover { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .tag-span:hover { background-color: #5783f7; color: white; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .memo-link-text { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .memo-link-text { display: inline-block; color: #5783f7; font-weight: bold; @@ -3138,17 +3138,17 @@ div[data-type="memos_view"] .image-container > img { text-decoration: none; cursor: pointer; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .memo-link-text:hover { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .memo-link-text:hover { opacity: 0.8; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .counter-block, -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .todo-block { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .counter-block, +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .todo-block { display: inline-block; text-align: center; width: 1.4rem; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-light div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text pre { +.theme-light div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text pre { width: 100%; margin: 4px 0; padding: 8px 12px; @@ -3158,7 +3158,7 @@ div[data-type="memos_view"] .image-container > img { background-color: #f6f5f4; white-space: pre-wrap; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text { display: flex; flex-direction: column; justify-content: flex-start; @@ -3168,7 +3168,7 @@ div[data-type="memos_view"] .image-container > img { word-break: break-word; white-space: pre-wrap; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text > p { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text > p { display: inline-block; width: 100%; height: auto; @@ -3179,7 +3179,7 @@ div[data-type="memos_view"] .image-container > img { min-height: 24px; white-space: pre-wrap; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text .tag-span { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text .tag-span { display: inline-block; width: auto; padding-left: 4px; @@ -3194,11 +3194,11 @@ div[data-type="memos_view"] .image-container > img { cursor: pointer; vertical-align: bottom; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text .tag-span:hover { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text .tag-span:hover { background-color: #5783f7; color: white; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text .memo-link-text { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text .memo-link-text { display: inline-block; color: #5783f7; font-weight: bold; @@ -3206,17 +3206,17 @@ div[data-type="memos_view"] .image-container > img { text-decoration: none; cursor: pointer; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text .memo-link-text:hover { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text .memo-link-text:hover { opacity: 0.8; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text .counter-block, -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text .todo-block { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text .counter-block, +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text .todo-block { display: inline-block; text-align: center; width: 1.4rem; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-light [data-type="memos_view"] .memolist-wrapper .memo-content-text pre { +.theme-light [data-type='memos_view'] .memolist-wrapper .memo-content-text pre { width: 100%; margin: 4px 0; padding: 8px 12px; @@ -3227,18 +3227,18 @@ div[data-type="memos_view"] .image-container > img { white-space: pre-wrap; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .memo-content-text > p { + .theme-dark div[data-type='memos_view'] .memo-content-text > p { font-size: 15px; line-height: 26px; min-height: 26px; white-space: pre-wrap; } - .theme-dark div[data-type="memos_view"] .memo-content-text .tag-span { + .theme-dark div[data-type='memos_view'] .memo-content-text .tag-span { line-height: 26px; font-size: 14px; } } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text { display: flex; flex-direction: column; justify-content: flex-start; @@ -3249,7 +3249,7 @@ div[data-type="memos_view"] .image-container > img { white-space: pre-wrap; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text > p { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text > p { display: inline-block; width: 100%; height: auto; @@ -3260,7 +3260,7 @@ div[data-type="memos_view"] .image-container > img { white-space: pre-wrap; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .tag-span { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .tag-span { display: inline-block; width: auto; padding-left: 4px; @@ -3275,11 +3275,11 @@ div[data-type="memos_view"] .image-container > img { cursor: pointer; vertical-align: bottom; } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .tag-span:hover { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .tag-span:hover { background-color: #bbbec7; color: #000000; } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .memo-link-text { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .memo-link-text { display: inline-block; color: #bbbec7; font-weight: bold; @@ -3287,17 +3287,17 @@ div[data-type="memos_view"] .image-container > img { text-decoration: none; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .memo-link-text:hover { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .memo-link-text:hover { opacity: 0.8; } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .counter-block, -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text .todo-block { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .counter-block, +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text .todo-block { display: inline-block; text-align: center; width: 1.4rem; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-dark div[data-type="memos_view"] .daily-memo-wrapper .memo-content-text pre { +.theme-dark div[data-type='memos_view'] .daily-memo-wrapper .memo-content-text pre { width: 100%; margin: 4px 0; padding: 8px 12px; @@ -3307,7 +3307,7 @@ div[data-type="memos_view"] .image-container > img { background-color: #0c0c0c; white-space: pre-wrap; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text { display: flex; flex-direction: column; justify-content: flex-start; @@ -3318,7 +3318,7 @@ div[data-type="memos_view"] .image-container > img { white-space: pre-wrap; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text > p { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text > p { display: inline-block; width: 100%; height: auto; @@ -3330,7 +3330,7 @@ div[data-type="memos_view"] .image-container > img { white-space: pre-wrap; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text .tag-span { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text .tag-span { display: inline-block; width: auto; padding-left: 4px; @@ -3345,11 +3345,11 @@ div[data-type="memos_view"] .image-container > img { cursor: pointer; vertical-align: bottom; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text .tag-span:hover { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text .tag-span:hover { background-color: #bbbec7; color: white; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text .memo-link-text { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text .memo-link-text { display: inline-block; color: #bbbec7; font-weight: bold; @@ -3357,17 +3357,17 @@ div[data-type="memos_view"] .image-container > img { text-decoration: none; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text .memo-link-text:hover { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text .memo-link-text:hover { opacity: 0.8; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text .counter-block, -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text .todo-block { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text .counter-block, +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text .todo-block { display: inline-block; text-align: center; width: 1.4rem; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text pre { +.theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text pre { width: 100%; margin: 4px 0; padding: 8px 12px; @@ -3378,22 +3378,22 @@ div[data-type="memos_view"] .image-container > img { white-space: pre-wrap; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text { + .theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text { color: #d2d1cd; } - .theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text > p { + .theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text > p { font-size: 15px; line-height: 26px; min-height: 26px; white-space: pre-wrap; color: #d2d1cd; } - .theme-dark div[data-type="memos_view"] .memolist-wrapper .memo-content-text .tag-span { + .theme-dark div[data-type='memos_view'] .memolist-wrapper .memo-content-text .tag-span { line-height: 26px; font-size: 14px; } } -.theme-light div[data-type="memos_view"] .memo-wrapper { +.theme-light div[data-type='memos_view'] .memo-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -3405,10 +3405,10 @@ div[data-type="memos_view"] .image-container > img { border-radius: 8px; border: 1px solid transparent; } -.theme-light div[data-type="memos_view"] .memo-wrapper:hover { +.theme-light div[data-type='memos_view'] .memo-wrapper:hover { border-color: #e4e4e4; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper { display: flex; flex-direction: row; justify-content: space-between; @@ -3417,14 +3417,14 @@ div[data-type="memos_view"] .image-container > img { height: 24px; margin-bottom: 14px; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .time-text { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .time-text { font-size: 12px; line-height: 24px; color: #a8a8a8; flex-shrink: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; @@ -3432,7 +3432,7 @@ div[data-type="memos_view"] .image-container > img { position: relative; flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -3447,10 +3447,10 @@ div[data-type="memos_view"] .image-container > img { z-index: 1; display: none; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper:hover { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper:hover { display: flex; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { width: 112px; height: auto; line-height: 18px; @@ -3461,7 +3461,7 @@ div[data-type="memos_view"] .image-container > img { box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); z-index: 1; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn { width: 100%; padding: 8px 0; padding-left: 24px; @@ -3470,13 +3470,13 @@ div[data-type="memos_view"] .image-container > img { line-height: unset; justify-content: flex-start; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn { color: #d28653; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn.final-confirm { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn.final-confirm { font-weight: bold; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn { display: flex; flex-direction: row; justify-content: center; @@ -3486,29 +3486,29 @@ div[data-type="memos_view"] .image-container > img { font-size: 13px; border-radius: 4px; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn:hover { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn:hover { background-color: #f8f8f8; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn { width: 28px; cursor: unset; margin-right: -6px; opacity: 0.8; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn > .icon-img { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn > .icon-img { width: 16px; height: 16px; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover { background-color: unset; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover + .more-action-btns-wrapper { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover + .more-action-btns-wrapper { display: flex; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .memo-content-text { +.theme-light div[data-type='memos_view'] .memo-wrapper > .memo-content-text { width: 100%; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper { display: flex; flex-direction: row; justify-content: flex-start; @@ -3520,21 +3520,21 @@ div[data-type="memos_view"] .image-container > img { padding-bottom: 4px; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper::-webkit-scrollbar { width: 0; height: 2px; cursor: pointer; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb { width: 0; height: 2px; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img { margin-right: 8px; width: auto; height: 128px; @@ -3543,40 +3543,40 @@ div[data-type="memos_view"] .image-container > img { overflow-y: hidden; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img:hover { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img:hover { border-color: lightgray; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img:last-child { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img:last-child { margin-right: 0; } -.theme-light div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img > img { +.theme-light div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img > img { width: auto; max-height: 128px; border-radius: 8px; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .memo-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { + .theme-light div[data-type='memos_view'] .memo-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { line-height: 0px; } } -.theme-dark div[data-type="memos_view"] .memo-wrapper { +.theme-dark div[data-type='memos_view'] .memo-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -3588,10 +3588,10 @@ div[data-type="memos_view"] .image-container > img { border-radius: 8px; border: 1px solid transparent; } -.theme-dark div[data-type="memos_view"] .memo-wrapper:hover { +.theme-dark div[data-type='memos_view'] .memo-wrapper:hover { border-color: #353535; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper { display: flex; flex-direction: row; justify-content: space-between; @@ -3600,14 +3600,14 @@ div[data-type="memos_view"] .image-container > img { height: 24px; margin-bottom: 14px; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .time-text { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .time-text { font-size: 12px; line-height: 24px; color: #d6d6d6; flex-shrink: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; @@ -3615,7 +3615,7 @@ div[data-type="memos_view"] .image-container > img { position: relative; flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -3630,10 +3630,10 @@ div[data-type="memos_view"] .image-container > img { z-index: 1; display: none; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper:hover { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper:hover { display: flex; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { width: 112px; height: auto; line-height: 18px; @@ -3643,7 +3643,7 @@ div[data-type="memos_view"] .image-container > img { background-color: #181818; z-index: 1; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn { width: 100%; padding: 8px 0; padding-left: 24px; @@ -3653,13 +3653,13 @@ div[data-type="memos_view"] .image-container > img { justify-content: flex-start; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn { - color: #940B01; +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn { + color: #940b01; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn.final-confirm { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container > .btn.delete-btn.final-confirm { font-weight: bold; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn { display: flex; flex-direction: row; justify-content: center; @@ -3669,30 +3669,30 @@ div[data-type="memos_view"] .image-container > img { font-size: 13px; border-radius: 4px; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn:hover { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn:hover { background-color: #808080; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn { width: 28px; cursor: unset; margin-right: -6px; opacity: 0.8; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn > .icon-img { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn > .icon-img { width: 16px; height: 16px; filter: invert(0.8); } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover { background-color: unset; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover + .more-action-btns-wrapper { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-top-wrapper > .btns-container .btn.more-action-btn:hover + .more-action-btns-wrapper { display: flex; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .memo-content-text { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .memo-content-text { width: 100%; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper { display: flex; flex-direction: row; justify-content: flex-start; @@ -3704,21 +3704,21 @@ div[data-type="memos_view"] .image-container > img { padding-bottom: 4px; scrollbar-width: none; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper::-webkit-scrollbar { width: 0; height: 2px; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb { width: 0; height: 2px; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb:hover { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img { margin-right: 8px; width: auto; height: 128px; @@ -3727,41 +3727,41 @@ div[data-type="memos_view"] .image-container > img { overflow-y: hidden; scrollbar-width: none; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb:hover { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img::-webkit-scrollbar { display: none; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img:hover { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img:hover { border-color: #444444; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img:last-child { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img:last-child { margin-right: 0; } -.theme-dark div[data-type="memos_view"] .memo-wrapper > .images-wrapper > .memo-img > img { +.theme-dark div[data-type='memos_view'] .memo-wrapper > .images-wrapper > .memo-img > img { width: auto; max-height: 128px; border-radius: 8px; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .memo-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { + .theme-dark div[data-type='memos_view'] .memo-wrapper > .btns-container > .more-action-btns-wrapper > .more-action-btns-container { line-height: 0px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -3783,7 +3783,7 @@ div[data-type="memos_view"] .image-container > img { .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .memolist-wrapper { +.theme-light div[data-type='memos_view'] .memolist-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -3793,24 +3793,24 @@ div[data-type="memos_view"] .image-container > img { overflow-y: scroll; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .memolist-wrapper > .status-text-container { +.theme-light div[data-type='memos_view'] .memolist-wrapper > .status-text-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -3819,25 +3819,25 @@ div[data-type="memos_view"] .image-container > img { margin-top: 16px; margin-bottom: 16px; } -.theme-light div[data-type="memos_view"] .memolist-wrapper > .status-text-container.completed { +.theme-light div[data-type='memos_view'] .memolist-wrapper > .status-text-container.completed { margin-bottom: 64px; } -.theme-light div[data-type="memos_view"] .memolist-wrapper > .status-text-container.invisible { +.theme-light div[data-type='memos_view'] .memolist-wrapper > .status-text-container.invisible { visibility: hidden; } -.theme-light div[data-type="memos_view"] .memolist-wrapper > .status-text-container > .status-text { +.theme-light div[data-type='memos_view'] .memolist-wrapper > .status-text-container > .status-text { font-size: 13px; color: gray; } -.theme-light div[data-type="memos_view"] .memolist-wrapper.completed { +.theme-light div[data-type='memos_view'] .memolist-wrapper.completed { padding-bottom: 80px; } @media only screen and (max-width: 875px) { - div[data-type="memos_view"] .memolist-wrapper { + div[data-type='memos_view'] .memolist-wrapper { padding: 0 12px; } } -.theme-dark div[data-type="memos_view"] .memolist-wrapper { +.theme-dark div[data-type='memos_view'] .memolist-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -3847,24 +3847,24 @@ div[data-type="memos_view"] .image-container > img { overflow-y: scroll; scrollbar-width: none; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar-thumb { +.theme-dark div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar-thumb:hover { +.theme-dark div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memolist-wrapper::-webkit-scrollbar { display: none; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper > .status-text-container { +.theme-dark div[data-type='memos_view'] .memolist-wrapper > .status-text-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -3873,26 +3873,26 @@ div[data-type="memos_view"] .image-container > img { margin-top: 16px; margin-bottom: 16px; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper > .status-text-container.completed { +.theme-dark div[data-type='memos_view'] .memolist-wrapper > .status-text-container.completed { margin-bottom: 64px; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper > .status-text-container.invisible { +.theme-dark div[data-type='memos_view'] .memolist-wrapper > .status-text-container.invisible { visibility: hidden; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper > .status-text-container > .status-text { +.theme-dark div[data-type='memos_view'] .memolist-wrapper > .status-text-container > .status-text { font-size: 13px; color: #ffffff; } -.theme-dark div[data-type="memos_view"] .memolist-wrapper.completed { +.theme-dark div[data-type='memos_view'] .memolist-wrapper.completed { padding-bottom: 80px; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .memolist-wrapper { + .theme-dark div[data-type='memos_view'] .memolist-wrapper { padding: 0 12px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -3914,8 +3914,8 @@ div[data-type="memos_view"] .image-container > img { .hide-scroll-bar::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] .section-header-container, -div[data-type="memos_view"] .memos-header-container { +div[data-type='memos_view'] .section-header-container, +div[data-type='memos_view'] .memos-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -3927,8 +3927,8 @@ div[data-type="memos_view"] .memos-header-container { margin-bottom: 8px; flex-shrink: 0; } -div[data-type="memos_view"] .section-header-container > .title-text, -div[data-type="memos_view"] .memos-header-container > .title-text { +div[data-type='memos_view'] .section-header-container > .title-text, +div[data-type='memos_view'] .memos-header-container > .title-text { display: flex; flex-direction: row; justify-content: flex-start; @@ -3943,8 +3943,8 @@ div[data-type="memos_view"] .memos-header-container > .title-text { flex-shrink: 0; cursor: pointer; } -div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, -div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { +div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, +div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -3955,29 +3955,29 @@ div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn flex-shrink: 0; background-color: unset; } -div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, -div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { +div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, +div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; } -div[data-type="memos_view"] .section-header-container > .btns-container, -div[data-type="memos_view"] .memos-header-container > .btns-container { +div[data-type='memos_view'] .section-header-container > .btns-container, +div[data-type='memos_view'] .memos-header-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } @media only screen and (max-width: 875px) { - div[data-type="memos_view"] .section-header-container, - div[data-type="memos_view"] .memos-header-container { + div[data-type='memos_view'] .section-header-container, + div[data-type='memos_view'] .memos-header-container { height: auto; margin-top: 4px; margin-bottom: 0; padding: 0 12px; padding-bottom: 8px; } - div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, - div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { + div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, + div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -3989,14 +3989,14 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } - div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, - div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { + div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, + div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; } } -.theme-dark div[data-type="memos_view"] .section-header-container, -.theme-dark div[data-type="memos_view"] .memos-header-container { +.theme-dark div[data-type='memos_view'] .section-header-container, +.theme-dark div[data-type='memos_view'] .memos-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -4008,8 +4008,8 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { margin-bottom: 8px; flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text { display: flex; flex-direction: row; justify-content: flex-start; @@ -4024,8 +4024,8 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -4036,34 +4036,34 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; filter: invert(0.8); } -.theme-dark div[data-type="memos_view"] .section-header-container > .btns-container, -.theme-dark div[data-type="memos_view"] .memos-header-container > .btns-container { +.theme-dark div[data-type='memos_view'] .section-header-container > .btns-container, +.theme-dark div[data-type='memos_view'] .memos-header-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .section-header-container, - .theme-dark div[data-type="memos_view"] .memos-header-container { + .theme-dark div[data-type='memos_view'] .section-header-container, + .theme-dark div[data-type='memos_view'] .memos-header-container { height: auto; margin-top: 4px; margin-bottom: 0; padding: 0 12px; padding-bottom: 8px; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text { color: #d2d1cd; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -4075,14 +4075,14 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; filter: invert(0.8); } } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -4093,34 +4093,34 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { overflow-y: scroll; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container { width: 100%; height: 40px; margin-bottom: 0; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container > .title-text { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container > .title-text { font-weight: bold; font-size: 15px; color: #37352f; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .tip-text-container { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .tip-text-container { width: 100%; height: 128px; display: flex; @@ -4128,7 +4128,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { justify-content: center; align-items: center; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -4139,31 +4139,31 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { padding-bottom: 64px; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container > .memo-wrapper > .memo-content-text { +.theme-light div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container > .memo-wrapper > .memo-content-text { line-height: 16px; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .deleted-memos-container { + .theme-light div[data-type='memos_view'] .deleted-memos-container { padding: 0 12px; } - .theme-light div[data-type="memos_view"] .memo-trash-wrapper { + .theme-light div[data-type='memos_view'] .memo-trash-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -4174,35 +4174,35 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { overflow-y: scroll; scrollbar-width: none; } - .theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { + .theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } - .theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb { + .theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } - .theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { + .theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } - .theme-light div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { + .theme-light div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { display: none; } - .theme-light div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container { + .theme-light div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container { width: 100%; height: 58px; margin-bottom: 0; } - .theme-light div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container > .title-text { + .theme-light div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container > .title-text { font-weight: bold; font-size: 15px; color: #37352f; } } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -4213,35 +4213,35 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { overflow-y: scroll; scrollbar-width: none; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { display: none; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container { width: 100%; height: 40px; margin-bottom: 0; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container > .title-text { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container > .title-text { font-weight: bold; font-size: 18px; color: #d2d1cd; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .tip-text-container { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .tip-text-container { width: 100%; height: 128px; display: flex; @@ -4249,7 +4249,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { justify-content: center; align-items: center; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -4262,31 +4262,31 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { color: #d2d1cd; scrollbar-width: none; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb:hover { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container::-webkit-scrollbar { display: none; } -.theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .deleted-memos-container > .memo-wrapper > .memo-content-text { +.theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .deleted-memos-container > .memo-wrapper > .memo-content-text { line-height: 16px; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .deleted-memos-container { + .theme-dark div[data-type='memos_view'] .deleted-memos-container { padding: 0 12px; } - .theme-dark div[data-type="memos_view"] .memo-trash-wrapper { + .theme-dark div[data-type='memos_view'] .memo-trash-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -4297,36 +4297,36 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { overflow-y: scroll; scrollbar-width: none; } - .theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { + .theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } - .theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb { + .theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } - .theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { + .theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } - .theme-dark div[data-type="memos_view"] .memo-trash-wrapper::-webkit-scrollbar { + .theme-dark div[data-type='memos_view'] .memo-trash-wrapper::-webkit-scrollbar { display: none; } - .theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container { + .theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container { width: 100%; height: 58px; margin-bottom: 0; } - .theme-dark div[data-type="memos_view"] .memo-trash-wrapper > .section-header-container > .title-text { + .theme-dark div[data-type='memos_view'] .memo-trash-wrapper > .section-header-container > .title-text { font-weight: bold; font-size: 15px; color: #d2d1cd; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -4386,7 +4386,7 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { opacity: 0.8; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -4408,8 +4408,8 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { .hide-scroll-bar::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] .section-header-container, -div[data-type="memos_view"] .memos-header-container { +div[data-type='memos_view'] .section-header-container, +div[data-type='memos_view'] .memos-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -4421,8 +4421,8 @@ div[data-type="memos_view"] .memos-header-container { margin-bottom: 8px; flex-shrink: 0; } -div[data-type="memos_view"] .section-header-container > .title-text, -div[data-type="memos_view"] .memos-header-container > .title-text { +div[data-type='memos_view'] .section-header-container > .title-text, +div[data-type='memos_view'] .memos-header-container > .title-text { display: flex; flex-direction: row; justify-content: flex-start; @@ -4437,8 +4437,8 @@ div[data-type="memos_view"] .memos-header-container > .title-text { flex-shrink: 0; cursor: pointer; } -div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, -div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { +div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, +div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -4449,29 +4449,29 @@ div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn flex-shrink: 0; background-color: unset; } -div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, -div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { +div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, +div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; } -div[data-type="memos_view"] .section-header-container > .btns-container, -div[data-type="memos_view"] .memos-header-container > .btns-container { +div[data-type='memos_view'] .section-header-container > .btns-container, +div[data-type='memos_view'] .memos-header-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } @media only screen and (max-width: 875px) { - div[data-type="memos_view"] .section-header-container, - div[data-type="memos_view"] .memos-header-container { + div[data-type='memos_view'] .section-header-container, + div[data-type='memos_view'] .memos-header-container { height: auto; margin-top: 4px; margin-bottom: 0; padding: 0 12px; padding-bottom: 8px; } - div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, - div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { + div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, + div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -4483,14 +4483,14 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } - div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, - div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { + div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, + div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; } } -.theme-dark div[data-type="memos_view"] .section-header-container, -.theme-dark div[data-type="memos_view"] .memos-header-container { +.theme-dark div[data-type='memos_view'] .section-header-container, +.theme-dark div[data-type='memos_view'] .memos-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -4502,8 +4502,8 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { margin-bottom: 8px; flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text { display: flex; flex-direction: row; justify-content: flex-start; @@ -4518,8 +4518,8 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -4530,34 +4530,34 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } -.theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, -.theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { +.theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, +.theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; filter: invert(0.8); } -.theme-dark div[data-type="memos_view"] .section-header-container > .btns-container, -.theme-dark div[data-type="memos_view"] .memos-header-container > .btns-container { +.theme-dark div[data-type='memos_view'] .section-header-container > .btns-container, +.theme-dark div[data-type='memos_view'] .memos-header-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .section-header-container, - .theme-dark div[data-type="memos_view"] .memos-header-container { + .theme-dark div[data-type='memos_view'] .section-header-container, + .theme-dark div[data-type='memos_view'] .memos-header-container { height: auto; margin-top: 4px; margin-bottom: 0; padding: 0 12px; padding-bottom: 8px; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text { color: #d2d1cd; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -4569,14 +4569,14 @@ div[data-type="memos_view"] .memos-header-container > .btns-container { flex-shrink: 0; background-color: unset; } - .theme-dark div[data-type="memos_view"] .section-header-container > .title-text > .action-btn > .icon-img, - .theme-dark div[data-type="memos_view"] .memos-header-container > .title-text > .action-btn > .icon-img { + .theme-dark div[data-type='memos_view'] .section-header-container > .title-text > .action-btn > .icon-img, + .theme-dark div[data-type='memos_view'] .memos-header-container > .title-text > .action-btn > .icon-img { width: 18px; height: 18px; filter: invert(0.8); } } -div[data-type="memos_view"] .preference-wrapper { +div[data-type='memos_view'] .preference-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -4587,34 +4587,34 @@ div[data-type="memos_view"] .preference-wrapper { overflow-y: scroll; scrollbar-width: none; } -div[data-type="memos_view"] .preference-wrapper::-webkit-scrollbar { +div[data-type='memos_view'] .preference-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -div[data-type="memos_view"] .preference-wrapper::-webkit-scrollbar-thumb { +div[data-type='memos_view'] .preference-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -div[data-type="memos_view"] .preference-wrapper::-webkit-scrollbar-thumb:hover { +div[data-type='memos_view'] .preference-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -div[data-type="memos_view"] .preference-wrapper::-webkit-scrollbar { +div[data-type='memos_view'] .preference-wrapper::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] .preference-wrapper > .section-header-container { +div[data-type='memos_view'] .preference-wrapper > .section-header-container { width: 100%; height: 40px; margin-bottom: 0; } -div[data-type="memos_view"] .preference-wrapper > .section-header-container > .title-text { +div[data-type='memos_view'] .preference-wrapper > .section-header-container > .title-text { font-weight: bold; font-size: 18px; color: #37352f; } -div[data-type="memos_view"] .preference-wrapper > .tip-text-container { +div[data-type='memos_view'] .preference-wrapper > .tip-text-container { width: 100%; height: 128px; display: flex; @@ -4622,7 +4622,7 @@ div[data-type="memos_view"] .preference-wrapper > .tip-text-container { justify-content: center; align-items: center; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -4633,24 +4633,24 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper { padding-bottom: 64px; scrollbar-width: none; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper::-webkit-scrollbar { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper::-webkit-scrollbar-thumb { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper::-webkit-scrollbar-thumb:hover { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper::-webkit-scrollbar { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-container { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper > .section-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -4662,13 +4662,13 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c padding-bottom: 8px; border-radius: 8px; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-container > .title-text { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper > .section-container > .title-text { font-size: 15px; color: #37352f; font-weight: bold; margin-bottom: 8px; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-container > .form-label { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper > .section-container > .form-label { display: flex; flex-direction: row; justify-content: flex-start; @@ -4678,16 +4678,16 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c line-height: 20px; margin-bottom: 8px; } -div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-container > .form-label > .normal-text { +div[data-type='memos_view'] .preference-wrapper > .sections-wrapper > .section-container > .form-label > .normal-text { flex-shrink: 0; } @media only screen and (max-width: 875px) { - div[data-type="memos_view"] .sections-wrapper { + div[data-type='memos_view'] .sections-wrapper { padding: 0 12px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -4733,10 +4733,10 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c font-size: 13px; color: gray; white-space: pre-wrap; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .about-site-dialog > .dialog-container > .dialog-content-container .pre-text { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } @media only screen and (max-width: 875px) { .dialog-wrapper.about-site-dialog { @@ -4745,7 +4745,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -4767,7 +4767,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .menu-btns-popup { +.theme-light div[data-type='memos_view'] .menu-btns-popup { display: flex; flex-direction: column; justify-content: flex-start; @@ -4782,10 +4782,10 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); background-color: white; } -.theme-light div[data-type="memos_view"] .menu-btns-popup:hover { +.theme-light div[data-type='memos_view'] .menu-btns-popup:hover { display: flex; } -.theme-light div[data-type="memos_view"] .menu-btns-popup > .btn { +.theme-light div[data-type='memos_view'] .menu-btns-popup > .btn { display: flex; flex-direction: row; justify-content: flex-start; @@ -4797,22 +4797,22 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-radius: 4px; text-align: left; } -.theme-light div[data-type="memos_view"] .menu-btns-popup > .btn > .icon { +.theme-light div[data-type='memos_view'] .menu-btns-popup > .btn > .icon { display: block; width: 28px; text-align: center; margin-right: 4px; font-size: 14px; } -.theme-light div[data-type="memos_view"] .menu-btns-popup > .btn:hover { +.theme-light div[data-type='memos_view'] .menu-btns-popup > .btn:hover { background-color: #f8f8f8; } @media only screen and (max-width: 875px) { - div[data-type="memos_view"] .menu-btns-popup { + div[data-type='memos_view'] .menu-btns-popup { margin-left: 64px; } } -.theme-dark div[data-type="memos_view"] .menu-btns-popup { +.theme-dark div[data-type='memos_view'] .menu-btns-popup { display: flex; flex-direction: column; justify-content: flex-start; @@ -4826,10 +4826,10 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c z-index: 20; background-color: #000000; } -.theme-dark div[data-type="memos_view"] .menu-btns-popup:hover { +.theme-dark div[data-type='memos_view'] .menu-btns-popup:hover { display: flex; } -.theme-dark div[data-type="memos_view"] .menu-btns-popup > .btn { +.theme-dark div[data-type='memos_view'] .menu-btns-popup > .btn { display: flex; flex-direction: row; justify-content: flex-start; @@ -4841,23 +4841,23 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-radius: 4px; text-align: left; } -.theme-dark div[data-type="memos_view"] .menu-btns-popup > .btn > .icon { +.theme-dark div[data-type='memos_view'] .menu-btns-popup > .btn > .icon { display: block; width: 28px; text-align: center; margin-right: 4px; font-size: 14px; } -.theme-dark div[data-type="memos_view"] .menu-btns-popup > .btn:hover { +.theme-dark div[data-type='memos_view'] .menu-btns-popup > .btn:hover { background-color: #808080; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .menu-btns-popup { + .theme-dark div[data-type='memos_view'] .menu-btns-popup { margin-left: 64px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -5065,7 +5065,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c margin-bottom: 0; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -5259,7 +5259,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c cursor: unset; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -5646,7 +5646,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -5668,7 +5668,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .user-banner-container { +.theme-light div[data-type='memos_view'] .user-banner-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -5676,7 +5676,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c width: 100%; height: 160px; } -.theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container { +.theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -5686,7 +5686,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; margin-bottom: 4px; } -.theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .username-text { +.theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .username-text { max-width: calc(100% - 32px); font-weight: bold; font-size: 18px; @@ -5698,13 +5698,13 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c margin-right: auto; flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn { +.theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn { flex-shrink: 0; user-select: none; border: none; background-color: unset; } -.theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn { +.theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn { display: flex; flex-direction: column; justify-content: center; @@ -5714,11 +5714,11 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c margin-right: -8px; cursor: pointer; } -.theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn > .icon-img { +.theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn > .icon-img { width: 20px; height: auto; } -.theme-light div[data-type="memos_view"] .user-banner-container > .status-text-container { +.theme-light div[data-type='memos_view'] .user-banner-container > .status-text-container { display: flex; flex-direction: row; justify-content: space-between; @@ -5727,50 +5727,50 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c width: 100%; user-select: none; } -.theme-light div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text { +.theme-light div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; } -.theme-light div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .amount-text { +.theme-light div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .amount-text { font-weight: bold; font-size: 28px; line-height: 1.8; color: #37352f; opacity: 0.8; } -.theme-light div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .type-text { +.theme-light div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .type-text { color: gray; font-size: 12px; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .user-banner-container { + .theme-light div[data-type='memos_view'] .user-banner-container { height: 170px; z-index: 1; padding-top: 16px !important; } - .theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container { + .theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container { padding: 0 16px; } - .theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn { + .theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn { width: 60px; } - .theme-light div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .username-text { + .theme-light div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .username-text { font-size: 22px; } - .theme-light div[data-type="memos_view"] .user-banner-container > .status-text-container { + .theme-light div[data-type='memos_view'] .user-banner-container > .status-text-container { padding: 0 16px; } - .theme-light div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .amount-text { + .theme-light div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .amount-text { font-size: 32px; } - .theme-light div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .type-text { + .theme-light div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .type-text { font-size: 14px; } } -.theme-dark div[data-type="memos_view"] .user-banner-container { +.theme-dark div[data-type='memos_view'] .user-banner-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -5778,7 +5778,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c width: 100%; height: 160px; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container { +.theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container { display: flex; flex-direction: row; justify-content: space-between; @@ -5788,7 +5788,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; margin-bottom: 4px; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .username-text { +.theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .username-text { max-width: calc(100% - 32px); font-weight: bold; font-size: 18px; @@ -5800,13 +5800,13 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c margin-right: auto; flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn { +.theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn { flex-shrink: 0; user-select: none; border: none; background-color: unset; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn { +.theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn { display: flex; flex-direction: column; justify-content: center; @@ -5816,12 +5816,12 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c margin-right: -8px; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn > .icon-img { +.theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn.menu-popup-btn > .icon-img { width: 20px; height: auto; filter: invert(1); } -.theme-dark div[data-type="memos_view"] .user-banner-container > .status-text-container { +.theme-dark div[data-type='memos_view'] .user-banner-container > .status-text-container { display: flex; flex-direction: row; justify-content: space-between; @@ -5830,51 +5830,51 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c width: 100%; user-select: none; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text { +.theme-dark div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .amount-text { +.theme-dark div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .amount-text { font-weight: bold; font-size: 28px; line-height: 1.8; color: #d2d1cd; opacity: 0.8; } -.theme-dark div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .type-text { +.theme-dark div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .type-text { color: #ececec; font-size: 12px; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .user-banner-container { + .theme-dark div[data-type='memos_view'] .user-banner-container { height: 170px; z-index: 1; padding-top: 16px !important; } - .theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container { + .theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container { padding: 0 16px; } - .theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .action-btn { + .theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .action-btn { width: 60px; } - .theme-dark div[data-type="memos_view"] .user-banner-container > .userinfo-header-container > .username-text { + .theme-dark div[data-type='memos_view'] .user-banner-container > .userinfo-header-container > .username-text { font-size: 22px; } - .theme-dark div[data-type="memos_view"] .user-banner-container > .status-text-container { + .theme-dark div[data-type='memos_view'] .user-banner-container > .status-text-container { padding: 0 16px; } - .theme-dark div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .amount-text { + .theme-dark div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .amount-text { font-size: 32px; } - .theme-dark div[data-type="memos_view"] .user-banner-container > .status-text-container > .status-text > .type-text { + .theme-dark div[data-type='memos_view'] .user-banner-container > .status-text-container > .status-text > .type-text { font-size: 14px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -6113,7 +6113,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c color: #d24c42; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -6374,7 +6374,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c cursor: not-allowed; } .theme-dark .create-query-dialog > .dialog-container > .dialog-footer-container > .btns-container > .btn.save-btn { - background-color: #940B01; + background-color: #940b01; color: #000000; } .theme-dark .create-query-dialog > .dialog-container > .dialog-footer-container > .btns-container > .btn.save-btn.requesting { @@ -6449,7 +6449,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -6471,7 +6471,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .queries-wrapper { +.theme-light div[data-type='memos_view'] .queries-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -6482,24 +6482,24 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .queries-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .queries-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .queries-wrapper::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .queries-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .queries-wrapper::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .queries-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .queries-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .queries-wrapper::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .title-text { +.theme-light div[data-type='memos_view'] .queries-wrapper > .title-text { display: flex; flex-direction: row; justify-content: space-between; @@ -6508,23 +6508,23 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c padding: 4px 16px; margin-bottom: 4px; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .title-text > * { +.theme-light div[data-type='memos_view'] .queries-wrapper > .title-text > * { font-size: 12px; line-height: 24px; color: #37352f; opacity: 0.5; font-weight: bold; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .title-text > .btn { +.theme-light div[data-type='memos_view'] .queries-wrapper > .title-text > .btn { display: none; padding: 0 4px; font-size: 18px; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .title-text:hover > .btn, -.theme-light div[data-type="memos_view"] .queries-wrapper > .title-text:active > .btn { +.theme-light div[data-type='memos_view'] .queries-wrapper > .title-text:hover > .btn, +.theme-light div[data-type='memos_view'] .queries-wrapper > .title-text:active > .btn { display: block; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .create-query-btn-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .create-query-btn-container { display: flex; flex-direction: row; justify-content: center; @@ -6533,18 +6533,18 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c margin-top: 8px; margin-bottom: 12px; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .create-query-btn-container > .btn { +.theme-light div[data-type='memos_view'] .queries-wrapper > .create-query-btn-container > .btn { display: flex; padding: 4px 8px; border: 1px dashed #1337a3; border-radius: 8px; font-size: 13px; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .create-query-btn-container > .btn:hover { +.theme-light div[data-type='memos_view'] .queries-wrapper > .create-query-btn-container > .btn:hover { background-color: #1337a3; color: white; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -6555,7 +6555,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; margin-bottom: 8px; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container { display: flex; flex-direction: row; justify-content: space-between; @@ -6570,22 +6570,22 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; user-select: none; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container:hover { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container:hover { background-color: #e4e4e4; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container:hover > .btns-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container:hover > .btns-container { display: flex; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container.active { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container.active { background-color: #55bb8e !important; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container { font-weight: bold; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container > * { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container > * { color: white; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .query-text-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .query-text-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -6597,22 +6597,22 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; line-height: 20px; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .icon-text { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .icon-text { display: block; width: 16px; flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .query-text { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .query-text { flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; display: none; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -6621,11 +6621,11 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c height: 24px; flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn > .icon-img { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn > .icon-img { width: 18px; height: auto; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -6638,7 +6638,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c transform: translateY(60px); z-index: 1; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -6651,7 +6651,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c background-color: white; box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn { width: 100%; padding: 6px 0; padding-left: 12px; @@ -6661,31 +6661,31 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c line-height: unset; text-align: left; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn:hover { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn:hover { background-color: #f8f8f8; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn { color: #d28653; } -.theme-light div[data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn.final-confirm { +.theme-light div[data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn.final-confirm { font-weight: bold; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .queries-container { + .theme-light div[data-type='memos_view'] .queries-container { height: auto; } - .theme-light div[data-type="memos_view"] .queries-container:last-child { + .theme-light div[data-type='memos_view'] .queries-container:last-child { flex-grow: 1; } - .theme-light div[data-type="memos_view"] .queries-container > .title-text { + .theme-light div[data-type='memos_view'] .queries-container > .title-text { font-size: 13px; margin-bottom: 4px; } - .theme-light div[data-type="memos_view"] .queries-container > .query-item-container { + .theme-light div[data-type='memos_view'] .queries-container > .query-item-container { font-size: 15px; } } -.theme-dark [data-type="memos_view"] .queries-wrapper { +.theme-dark [data-type='memos_view'] .queries-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -6696,24 +6696,24 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; scrollbar-width: none; } -.theme-dark [data-type="memos_view"] .queries-wrapper::-webkit-scrollbar { +.theme-dark [data-type='memos_view'] .queries-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-dark [data-type="memos_view"] .queries-wrapper::-webkit-scrollbar-thumb { +.theme-dark [data-type='memos_view'] .queries-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark [data-type="memos_view"] .queries-wrapper::-webkit-scrollbar-thumb:hover { +.theme-dark [data-type='memos_view'] .queries-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark [data-type="memos_view"] .queries-wrapper::-webkit-scrollbar { +.theme-dark [data-type='memos_view'] .queries-wrapper::-webkit-scrollbar { display: none; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .title-text { +.theme-dark [data-type='memos_view'] .queries-wrapper > .title-text { display: flex; flex-direction: row; justify-content: space-between; @@ -6722,23 +6722,23 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c padding: 4px 16px; margin-bottom: 4px; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .title-text > * { +.theme-dark [data-type='memos_view'] .queries-wrapper > .title-text > * { font-size: 12px; line-height: 24px; color: #d2d1cd; opacity: 0.5; font-weight: bold; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .title-text > .btn { +.theme-dark [data-type='memos_view'] .queries-wrapper > .title-text > .btn { display: none; padding: 0 4px; font-size: 18px; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .title-text:hover > .btn, -.theme-dark [data-type="memos_view"] .queries-wrapper > .title-text:active > .btn { +.theme-dark [data-type='memos_view'] .queries-wrapper > .title-text:hover > .btn, +.theme-dark [data-type='memos_view'] .queries-wrapper > .title-text:active > .btn { display: block; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .create-query-btn-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .create-query-btn-container { display: flex; flex-direction: row; justify-content: center; @@ -6747,18 +6747,18 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c margin-top: 8px; margin-bottom: 12px; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .create-query-btn-container > .btn { +.theme-dark [data-type='memos_view'] .queries-wrapper > .create-query-btn-container > .btn { display: flex; padding: 4px 8px; border: 1px dashed #2c395a; border-radius: 8px; font-size: 13px; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .create-query-btn-container > .btn:hover { +.theme-dark [data-type='memos_view'] .queries-wrapper > .create-query-btn-container > .btn:hover { background-color: #2c395a; color: white; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -6769,7 +6769,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; margin-bottom: 8px; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container { display: flex; flex-direction: row; justify-content: space-between; @@ -6784,22 +6784,22 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; user-select: none; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container:hover { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container:hover { background-color: #353535; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container:hover > .btns-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container:hover > .btns-container { display: flex; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container.active { - background-color: #940B01 !important; +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container.active { + background-color: #940b01 !important; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container { font-weight: bold; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container > * { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container.active > .query-text-container > * { color: #727272; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .query-text-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .query-text-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -6811,24 +6811,24 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; line-height: 20px; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .icon-text { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .icon-text { display: block; width: 16px; flex-shrink: 0; color: #d2d1cd; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .query-text { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .query-text-container > .query-text { flex-shrink: 0; color: #d2d1cd; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; display: none; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -6837,11 +6837,11 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c height: 24px; flex-shrink: 0; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn > .icon-img { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btn > .icon-img { width: 18px; height: auto; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -6854,7 +6854,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c transform: translateY(60px); z-index: 1; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -6867,7 +6867,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c background-color: #646464; box-shadow: 0 0 8px 0 rgba(187, 187, 187, 0.2); } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn { width: 100%; padding: 6px 0; padding-left: 12px; @@ -6877,32 +6877,32 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c line-height: unset; text-align: left; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn:hover { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn:hover { background-color: #808080; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn { - color: #940B01; +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn { + color: #940b01; } -.theme-dark [data-type="memos_view"] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn.final-confirm { +.theme-dark [data-type='memos_view'] .queries-wrapper > .queries-container > .query-item-container > .btns-container > .action-btns-wrapper > .action-btns-container > .btn.delete-btn.final-confirm { font-weight: bold; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .queries-container { + .theme-dark div[data-type='memos_view'] .queries-container { height: auto; } - .theme-dark div[data-type="memos_view"] .queries-container:last-child { + .theme-dark div[data-type='memos_view'] .queries-container:last-child { flex-grow: 1; } - .theme-dark div[data-type="memos_view"] .queries-container > .title-text { + .theme-dark div[data-type='memos_view'] .queries-container > .title-text { font-size: 13px; margin-bottom: 4px; } - .theme-dark div[data-type="memos_view"] .queries-container > .query-item-container { + .theme-dark div[data-type='memos_view'] .queries-container > .query-item-container { font-size: 15px; } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -6924,7 +6924,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .tags-wrapper { +.theme-light div[data-type='memos_view'] .tags-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -6937,24 +6937,24 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-grow: 1; scrollbar-width: none; } -.theme-light div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-light div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar-thumb { +.theme-light div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-light div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar-thumb:hover { +.theme-light div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-light div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar { +.theme-light div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .title-text { +.theme-light div[data-type='memos_view'] .tags-wrapper > .title-text { width: 100%; padding: 4px 16px; font-size: 12px; @@ -6963,7 +6963,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c opacity: 0.5; margin-bottom: 4px; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -6974,7 +6974,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; margin-bottom: 8px; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .subtags-container { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .subtags-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -6987,10 +6987,10 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-left: 2px solid #e4e4e4; padding-left: 6px; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .subtags-container > .tag-item-container:first-child { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .subtags-container > .tag-item-container:first-child { margin-top: 0; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container { display: flex; flex-direction: row; justify-content: space-between; @@ -7005,14 +7005,14 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; user-select: none; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container:hover { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container:hover { background-color: #e4e4e4; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container.active > .tag-text-container > * { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container.active > .tag-text-container > * { color: #55bb8e; font-weight: bold; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -7024,21 +7024,21 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; line-height: 20px; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .icon-text { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .icon-text { display: block; width: 16px; flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .tag-text { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .tag-text { flex-shrink: 0; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -7049,15 +7049,15 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c transition: all 0.1s linear; transform: rotate(0); } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn > .icon-img { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn > .icon-img { width: 18px; height: 18px; opacity: 0.8; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn.shown { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn.shown { transform: rotate(90deg); } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container > .tag-tip-container { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container > .tag-tip-container { width: 100%; margin-top: 8px; padding-left: 16px; @@ -7065,7 +7065,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c line-height: 1.6; color: gray; } -.theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container > .tag-tip-container > .code-text { +.theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container > .tag-tip-container > .code-text { color: #5783f7; padding: 4px; margin: 0 2px; @@ -7119,16 +7119,16 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-radius: 4px; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .tags-wrapper, - .theme-light div[data-type="memos_view"] .tags-wrapper-mobile-emulate { + .theme-light div[data-type='memos_view'] .tags-wrapper, + .theme-light div[data-type='memos_view'] .tags-wrapper-mobile-emulate { background-color: white; } - .theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container, - .theme-light div[data-type="memos_view"] .tags-wrapper-mobile-emulate > .tags-container { + .theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container, + .theme-light div[data-type='memos_view'] .tags-wrapper-mobile-emulate > .tags-container { height: auto; } - .theme-light div[data-type="memos_view"] .tags-wrapper > .tags-container:last-child, - .theme-light div[data-type="memos_view"] .tags-wrapper-mobile-emulate > .tags-container:last-child { + .theme-light div[data-type='memos_view'] .tags-wrapper > .tags-container:last-child, + .theme-light div[data-type='memos_view'] .tags-wrapper-mobile-emulate > .tags-container:last-child { flex-grow: 1; } .theme-light .rename-tag-dialog, @@ -7136,7 +7136,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c padding-top: 64px; } } -.theme-dark div[data-type="memos_view"] .tags-wrapper { +.theme-dark div[data-type='memos_view'] .tags-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -7149,24 +7149,24 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-grow: 1; scrollbar-width: none; } -.theme-dark div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar { width: 0; height: 0; cursor: pointer; } -.theme-dark div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar-thumb { +.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar-thumb { width: 0; height: 0; border-radius: 8px; background-color: #d5d5d5; } -.theme-dark div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar-thumb:hover { +.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar-thumb:hover { background-color: #ccc; } -.theme-dark div[data-type="memos_view"] .tags-wrapper::-webkit-scrollbar { +.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar { display: none; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .title-text { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .title-text { width: 100%; padding: 4px 16px; font-size: 12px; @@ -7175,7 +7175,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c opacity: 0.5; margin-bottom: 4px; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -7186,7 +7186,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: nowrap; margin-bottom: 8px; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .subtags-container { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .subtags-container { display: flex; flex-direction: column; justify-content: flex-start; @@ -7199,10 +7199,10 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-left: 2px solid #353535; padding-left: 6px; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .subtags-container > .tag-item-container:first-child { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .subtags-container > .tag-item-container:first-child { margin-top: 0; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container { display: flex; flex-direction: row; justify-content: space-between; @@ -7217,14 +7217,14 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; user-select: none; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container:hover { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container:hover { background-color: #353535; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container.active > .tag-text-container > * { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container.active > .tag-text-container > * { color: #457560; font-weight: bold; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container { display: flex; flex-direction: row; justify-content: flex-start; @@ -7236,21 +7236,21 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-shrink: 0; line-height: 20px; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .icon-text { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .icon-text { display: block; width: 16px; flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .tag-text { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .tag-text-container > .tag-text { flex-shrink: 0; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container { display: flex; flex-direction: row; justify-content: flex-end; align-items: center; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn { display: flex; flex-direction: row; justify-content: center; @@ -7261,17 +7261,17 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c transition: all 0.1s linear; transform: rotate(0); } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn > .icon-img { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn > .icon-img { width: 18px; height: 18px; opacity: 0.8; color: #d2d1cd; filter: invert(0.8); } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn.shown { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container > .btns-container > .action-btn.shown { transform: rotate(90deg); } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container > .tag-tip-container { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container > .tag-tip-container { width: 100%; margin-top: 8px; padding-left: 16px; @@ -7279,7 +7279,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c line-height: 1.6; color: #bbbbbb; } -.theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container > .tag-tip-container > .code-text { +.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container > .tag-tip-container > .code-text { color: #bbbec7; padding: 4px; margin: 0 2px; @@ -7333,16 +7333,16 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-radius: 4px; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .tags-wrapper, - .theme-dark div[data-type="memos_view"] .tags-wrapper-mobile-emulate { + .theme-dark div[data-type='memos_view'] .tags-wrapper, + .theme-dark div[data-type='memos_view'] .tags-wrapper-mobile-emulate { background-color: #000000; } - .theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container, - .theme-dark div[data-type="memos_view"] .tags-wrapper-mobile-emulate > .tags-container { + .theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container, + .theme-dark div[data-type='memos_view'] .tags-wrapper-mobile-emulate > .tags-container { height: auto; } - .theme-dark div[data-type="memos_view"] .tags-wrapper > .tags-container:last-child, - .theme-dark div[data-type="memos_view"] .tags-wrapper-mobile-emulate > .tags-container:last-child { + .theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container:last-child, + .theme-dark div[data-type='memos_view'] .tags-wrapper-mobile-emulate > .tags-container:last-child { flex-grow: 1; } .theme-dark .rename-tag-dialog, @@ -7351,7 +7351,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -7373,7 +7373,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c .hide-scroll-bar::-webkit-scrollbar { display: none; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper { display: flex; flex-direction: row; justify-content: flex-start; @@ -7384,10 +7384,10 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c padding-right: 24px; padding-bottom: 12px; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper:hover > .day-tip-text-container { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper:hover > .day-tip-text-container { visibility: visible; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container { display: flex; flex-direction: column; justify-content: space-between; @@ -7398,16 +7398,16 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: wrap; visibility: hidden; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { font-size: 10px; line-height: 16px; padding-right: 2px; width: 100%; text-align: right; color: gray; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map { width: 192px; height: 100%; flex-wrap: wrap; @@ -7416,7 +7416,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c grid-template-columns: repeat(12, 1fr); grid-auto-flow: column; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { display: block; width: 13px; height: 13px; @@ -7424,25 +7424,25 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-radius: 2px; margin-bottom: 2px; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.null { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.null { background-color: transparent; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L1-bg { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L1-bg { background-color: #9be9a8; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L2-bg { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L2-bg { background-color: #40c463; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L3-bg { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L3-bg { background-color: #30a14e; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L4-bg { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L4-bg { background-color: #216e39; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.today { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.today { border: 1px solid black; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container { position: absolute; left: 0; top: 0; @@ -7459,11 +7459,11 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c user-select: none; white-space: nowrap; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container > .date-text { +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container > .date-text { color: lightgray; } -.theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container::before { - content: ""; +.theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container::before { + content: ''; position: absolute; bottom: -4px; left: calc(50% - 6px); @@ -7472,39 +7472,39 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-top: 4px solid rgba(0, 0, 0, 0.8); } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] .usage-heat-map-wrapper { + .theme-light div[data-type='memos_view'] .usage-heat-map-wrapper { height: 160px; padding: 8px 0 !important; padding-top: 12px !important; } - .theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container { + .theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container { visibility: visible; width: 48px; padding-bottom: 4px; } - .theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { + .theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { padding-right: 6px; font-size: 12px; line-height: unset !important; } - .theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map { + .theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map { width: 240px; } - .theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { + .theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { width: 16px; height: 16px; margin-bottom: 4px; } - .theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container { + .theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container { margin-top: -32px; margin-left: 16px; font-size: 10px; } - .theme-light div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container::before { + .theme-light div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container::before { left: calc(50% - 4px); } } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper { display: flex; flex-direction: row; justify-content: flex-start; @@ -7515,10 +7515,10 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c padding-right: 24px; padding-bottom: 12px; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper:hover > .day-tip-text-container { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper:hover > .day-tip-text-container { visibility: visible; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container { display: flex; flex-direction: column; justify-content: space-between; @@ -7529,16 +7529,16 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c flex-wrap: wrap; visibility: hidden; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { font-size: 10px; line-height: 16px; padding-right: 2px; width: 100%; text-align: right; color: gray; - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map { width: 192px; height: 100%; flex-wrap: wrap; @@ -7547,7 +7547,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c grid-template-columns: repeat(12, 1fr); grid-auto-flow: column; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { display: block; width: 13px; height: 13px; @@ -7555,25 +7555,25 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-radius: 2px; margin-bottom: 2px; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.null { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.null { background-color: transparent; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L1-bg { - background-color: #F75205; +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L1-bg { + background-color: #f75205; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L2-bg { - background-color: #E03A07; +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L2-bg { + background-color: #e03a07; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L3-bg { - background-color: #BF2104; +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L3-bg { + background-color: #bf2104; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L4-bg { - background-color: #940B01; +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.stat-day-L4-bg { + background-color: #940b01; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.today { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container.today { border: 1px solid #ffffff; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container { position: absolute; left: 0; top: 0; @@ -7590,11 +7590,11 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c user-select: none; white-space: nowrap; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container > .date-text { +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container > .date-text { color: lightgray; } -.theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container::before { - content: ""; +.theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container::before { + content: ''; position: absolute; bottom: -4px; left: calc(50% - 6px); @@ -7603,40 +7603,40 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c border-top: 4px solid rgba(0, 0, 0, 0.8); } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper { + .theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper { height: 160px; padding: 8px 0 !important; padding-top: 12px !important; } - .theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container { + .theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container { visibility: visible; width: 48px; padding-bottom: 4px; } - .theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { + .theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .day-tip-text-container > .tip-text { padding-right: 6px; font-size: 12px; line-height: unset !important; } - .theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map { + .theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map { width: 240px; } - .theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { + .theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-heat-map > .stat-container { width: 16px; height: 16px; margin-bottom: 4px; } - .theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container { + .theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container { margin-top: -32px; margin-left: 16px; font-size: 10px; } - .theme-dark div[data-type="memos_view"] .usage-heat-map-wrapper > .usage-detail-container::before { + .theme-dark div[data-type='memos_view'] .usage-heat-map-wrapper > .usage-detail-container::before { left: calc(50% - 4px); } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -7780,7 +7780,7 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -7802,13 +7802,13 @@ div[data-type="memos_view"] .preference-wrapper > .sections-wrapper > .section-c .hide-scroll-bar::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] #root { +div[data-type='memos_view'] #root { background-color: #f6f5f4; } -div[data-type="memos_view"] .view-content { +div[data-type='memos_view'] .view-content { overflow-y: hidden; } -div[data-type="memos_view"] #page-wrapper { +div[data-type='memos_view'] #page-wrapper { display: flex; flex-direction: row; justify-content: flex-start; @@ -7820,7 +7820,7 @@ div[data-type="memos_view"] #page-wrapper { transform: translateX(-16px); margin-top: -15px; } -div[data-type="memos_view"] #page-wrapper > .content-wrapper { +div[data-type='memos_view'] #page-wrapper > .content-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -7831,7 +7831,7 @@ div[data-type="memos_view"] #page-wrapper > .content-wrapper { width: 600px; height: 100%; } -div[data-type="memos_view"] #page-wrapper > .content-wrapper-padding-fix { +div[data-type='memos_view'] #page-wrapper > .content-wrapper-padding-fix { display: flex; flex-direction: column; justify-content: flex-start; @@ -7844,10 +7844,10 @@ div[data-type="memos_view"] #page-wrapper > .content-wrapper-padding-fix { padding-left: 34px; } @media only screen and (max-width: 875px) { - div[data-type="memos_view"] body.mobile-show-sidebar #page-wrapper > .content-wrapper { + div[data-type='memos_view'] body.mobile-show-sidebar #page-wrapper > .content-wrapper { transform: translateX(320px); } - div[data-type="memos_view"] #page-wrapper { + div[data-type='memos_view'] #page-wrapper { display: flex; flex-direction: column; justify-content: flex-start; @@ -7858,7 +7858,7 @@ div[data-type="memos_view"] #page-wrapper > .content-wrapper-padding-fix { transform: translateX(0); margin-top: -10px; } - div[data-type="memos_view"] #page-wrapper > .content-wrapper { + div[data-type='memos_view'] #page-wrapper > .content-wrapper { width: 100%; height: 100%; margin-left: 0; @@ -7868,7 +7868,7 @@ div[data-type="memos_view"] #page-wrapper > .content-wrapper-padding-fix { } } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -7890,7 +7890,7 @@ div[data-type="memos_view"] #page-wrapper > .content-wrapper-padding-fix { .hide-scroll-bar::-webkit-scrollbar { display: none; } -div[data-type="memos_view"] #root { +div[data-type='memos_view'] #root { display: flex; flex-direction: row; justify-content: flex-start; @@ -7899,7 +7899,7 @@ div[data-type="memos_view"] #root { height: 100%; } .mono-font-family { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } .hide-scroll-bar { scrollbar-width: none; @@ -7922,93 +7922,93 @@ div[data-type="memos_view"] #root { display: none; } @font-face { - font-family: "DINPro"; - src: ""; + font-family: 'DINPro'; + src: ''; font-weight: normal; } @font-face { - font-family: "DINPro"; - src: ""; + font-family: 'DINPro'; + src: ''; font-weight: bold; } @font-face { - font-family: "ubuntu-mono"; - src: ""; + font-family: 'ubuntu-mono'; + src: ''; font-style: normal; } -div[data-type="memos_view"] .view-content:not(.images-wrapper) img { +div[data-type='memos_view'] .view-content:not(.images-wrapper) img { max-width: 100%; cursor: default; } -.theme-light div[data-type="memos_view"] { +.theme-light div[data-type='memos_view'] { margin: 0; padding: 0; box-sizing: border-box; color: #37352f; -webkit-tap-highlight-color: transparent; - font-family: "DINPro", ui-sans-serif, -apple-system, "system-ui", "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: 'DINPro', ui-sans-serif, -apple-system, 'system-ui', 'Segoe UI', Helvetica, 'Apple Color Emoji', Arial, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; } -.theme-light div[data-type="memos_view"] body, -.theme-light div[data-type="memos_view"] html { +.theme-light div[data-type='memos_view'] body, +.theme-light div[data-type='memos_view'] html { width: 100%; height: 100%; overflow: hidden; font-size: 15px; } -.theme-light div[data-type="memos_view"] code { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; +.theme-light div[data-type='memos_view'] code { + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; background-color: pink; padding: 2px 4px; border-radius: 4px; } -.theme-light div[data-type="memos_view"] pre { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; +.theme-light div[data-type='memos_view'] pre { + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-light div[data-type="memos_view"] pre * { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; +.theme-light div[data-type='memos_view'] pre * { + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-light div[data-type="memos_view"] label, -.theme-light div[data-type="memos_view"] input, -.theme-light div[data-type="memos_view"] button:not(.rdp), -.theme-light div[data-type="memos_view"] textarea, -.theme-light div[data-type="memos_view"] img { +.theme-light div[data-type='memos_view'] label, +.theme-light div[data-type='memos_view'] input, +.theme-light div[data-type='memos_view'] button:not(.rdp), +.theme-light div[data-type='memos_view'] textarea, +.theme-light div[data-type='memos_view'] img { background-color: transparent; user-select: none; -webkit-tap-highlight-color: transparent; border: none; outline: none; } -.theme-light div[data-type="memos_view"] input:-webkit-autofill, -.theme-light div[data-type="memos_view"] input:-webkit-autofill:hover, -.theme-light div[data-type="memos_view"] input:-webkit-autofill:focus, -.theme-light div[data-type="memos_view"] input:-webkit-autofill:active { +.theme-light div[data-type='memos_view'] input:-webkit-autofill, +.theme-light div[data-type='memos_view'] input:-webkit-autofill:hover, +.theme-light div[data-type='memos_view'] input:-webkit-autofill:focus, +.theme-light div[data-type='memos_view'] input:-webkit-autofill:active { box-shadow: 0 0 0 30px white inset !important; } -.theme-light div[data-type="memos_view"] li:not(.rta__item) { +.theme-light div[data-type='memos_view'] li:not(.rta__item) { list-style-type: none; } -.theme-light div[data-type="memos_view"] li:not(.rta__item)::before { - content: "•"; +.theme-light div[data-type='memos_view'] li:not(.rta__item)::before { + content: '•'; font-weight: bold; margin-right: 4px; } -.theme-light div[data-type="memos_view"] a { +.theme-light div[data-type='memos_view'] a { cursor: pointer; color: #5783f7; text-underline-offset: 2px; } -.theme-light div[data-type="memos_view"] a:hover { +.theme-light div[data-type='memos_view'] a:hover { background-color: #e4e4e4; } -.theme-light div[data-type="memos_view"] a.is-unresolved { +.theme-light div[data-type='memos_view'] a.is-unresolved { cursor: pointer; color: #8fa2d6; text-underline-offset: 2px; } -.theme-light div[data-type="memos_view"] a.is-unresolved:hover { +.theme-light div[data-type='memos_view'] a.is-unresolved:hover { background-color: #e4e4e4; } -.theme-light div[data-type="memos_view"] .btn { +.theme-light div[data-type='memos_view'] .btn { border: unset; background-color: unset; text-align: unset; @@ -8021,83 +8021,83 @@ div[data-type="memos_view"] .view-content:not(.images-wrapper) img { display: none !important; } @media only screen and (max-width: 875px) { - .theme-light div[data-type="memos_view"] body, - .theme-light div[data-type="memos_view"] html { + .theme-light div[data-type='memos_view'] body, + .theme-light div[data-type='memos_view'] html { -webkit-overflow-scrolling: touch; } } -.theme-dark div[data-type="memos_view"] { +.theme-dark div[data-type='memos_view'] { margin: 0; padding: 0; box-sizing: border-box; color: #37352f; -webkit-tap-highlight-color: transparent; - font-family: "DINPro", ui-sans-serif, -apple-system, "system-ui", "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: 'DINPro', ui-sans-serif, -apple-system, 'system-ui', 'Segoe UI', Helvetica, 'Apple Color Emoji', Arial, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; } -.theme-dark .side-dock-ribbon-action[aria-label="Memos"] { +.theme-dark .side-dock-ribbon-action[aria-label='Memos'] { filter: invert(1); } -.theme-dark div[data-type="memos_view"] body, -.theme-dark div[data-type="memos_view"] html { +.theme-dark div[data-type='memos_view'] body, +.theme-dark div[data-type='memos_view'] html { width: 100%; height: 100%; overflow: hidden; font-size: 15px; } -.theme-dark div[data-type="memos_view"] code { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; +.theme-dark div[data-type='memos_view'] code { + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; background-color: #a8a8a8; padding: 2px 4px; border-radius: 4px; } -.theme-dark div[data-type="memos_view"] pre { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; +.theme-dark div[data-type='memos_view'] pre { + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-dark div[data-type="memos_view"] pre * { - font-family: "ubuntu-mono", SFMono-Regular, Menlo, Consolas, "PT Mono", "Liberation Mono", Courier, monospace; +.theme-dark div[data-type='memos_view'] pre * { + font-family: 'ubuntu-mono', SFMono-Regular, Menlo, Consolas, 'PT Mono', 'Liberation Mono', Courier, monospace; } -.theme-dark div[data-type="memos_view"] label, -.theme-dark div[data-type="memos_view"] input, -.theme-dark div[data-type="memos_view"] button, -.theme-dark div[data-type="memos_view"] textarea, -.theme-dark div[data-type="memos_view"] img { +.theme-dark div[data-type='memos_view'] label, +.theme-dark div[data-type='memos_view'] input, +.theme-dark div[data-type='memos_view'] button, +.theme-dark div[data-type='memos_view'] textarea, +.theme-dark div[data-type='memos_view'] img { background-color: transparent; user-select: none; -webkit-tap-highlight-color: transparent; border: none; outline: none; } -.theme-dark div[data-type="memos_view"] input:-webkit-autofill, -.theme-dark div[data-type="memos_view"] input:-webkit-autofill:hover, -.theme-dark div[data-type="memos_view"] input:-webkit-autofill:focus, -.theme-dark div[data-type="memos_view"] input:-webkit-autofill:active { +.theme-dark div[data-type='memos_view'] input:-webkit-autofill, +.theme-dark div[data-type='memos_view'] input:-webkit-autofill:hover, +.theme-dark div[data-type='memos_view'] input:-webkit-autofill:focus, +.theme-dark div[data-type='memos_view'] input:-webkit-autofill:active { box-shadow: 0 0 0 30px #000000 inset !important; } -.theme-dark div[data-type="memos_view"] li:not(.rta__item) { +.theme-dark div[data-type='memos_view'] li:not(.rta__item) { list-style-type: none; } -.theme-dark div[data-type="memos_view"] li:not(.rta__item)::before { - content: "•"; +.theme-dark div[data-type='memos_view'] li:not(.rta__item)::before { + content: '•'; font-weight: bold; margin-right: 4px; } -.theme-dark div[data-type="memos_view"] a { +.theme-dark div[data-type='memos_view'] a { cursor: pointer; color: #5783f7; text-underline-offset: 2px; } -.theme-dark div[data-type="memos_view"] a:hover { +.theme-dark div[data-type='memos_view'] a:hover { background-color: #2c395a; } -.theme-dark div[data-type="memos_view"] a.is-unresolved { +.theme-dark div[data-type='memos_view'] a.is-unresolved { cursor: pointer; color: #8fa2d6; text-underline-offset: 2px; } -.theme-dark div[data-type="memos_view"] a.is-unresolved:hover { +.theme-dark div[data-type='memos_view'] a.is-unresolved:hover { background-color: #353535; } -.theme-dark div[data-type="memos_view"] .btn { +.theme-dark div[data-type='memos_view'] .btn { border: unset; background-color: unset; text-align: unset; @@ -8110,8 +8110,8 @@ div[data-type="memos_view"] .view-content:not(.images-wrapper) img { display: none !important; } @media only screen and (max-width: 875px) { - .theme-dark div[data-type="memos_view"] body, - .theme-dark div[data-type="memos_view"] html { + .theme-dark div[data-type='memos_view'] body, + .theme-dark div[data-type='memos_view'] html { -webkit-overflow-scrolling: touch; } } diff --git a/.obsidian/plugins/obsidian-react-components/main.js b/.obsidian/plugins/obsidian-react-components/main.js index f7cce9f2..885e023e 100644 --- a/.obsidian/plugins/obsidian-react-components/main.js +++ b/.obsidian/plugins/obsidian-react-components/main.js @@ -144955,7 +144955,7 @@ class ReactComponentsPlugin extends obsidian.Plugin { const React = this.React; return React.createElement(React.Fragment, null); }; - this.Markdown = ({ src }) => { + this.Markdown = ({ src, maxDepth = 10 }) => { const React = this.React; const { useContext, useRef, useEffect } = React; const ctx = useContext(this.ReactComponentContext); @@ -144963,6 +144963,36 @@ class ReactComponentsPlugin extends obsidian.Plugin { useEffect(() => { containerRef.current.innerHTML = ''; obsidian.MarkdownRenderer.renderMarkdown(src, containerRef.current, ctx.markdownPostProcessorContext.sourcePath, null); + const patchEmbeds = (el, filePath, depth) => { + if (depth > maxDepth) + return; + [...el.findAll('.internal-embed')].forEach((el) => __awaiter(this, void 0, void 0, function* () { + const src = el.getAttribute('src'); + const target = typeof src === 'string' && this.app.metadataCache.getFirstLinkpathDest(src, filePath); + if (target instanceof obsidian.TFile) { + el.innerText = ''; + switch (target.extension) { + case 'md': + el.innerHTML = `
    ${target.basename}
    `; + const previewEl = el.getElementsByClassName('markdown-preview-view')[0]; + obsidian.MarkdownRenderer.renderMarkdown(yield this.app.vault.cachedRead(target), previewEl, target.path, null); + yield patchEmbeds(previewEl, target.path, depth + 1); + el.addClasses(['is-loaded']); + break; + default: + el.createEl('img', { attr: { src: this.app.vault.getResourcePath(target) } }, img => { + if (el.hasAttribute('width')) + img.setAttribute('width', el.getAttribute('width')); + if (el.hasAttribute('alt')) + img.setAttribute('alt', el.getAttribute('alt')); + }); + el.addClasses(['image-embed', 'is-loaded']); + break; + } + } + })); + }; + patchEmbeds(containerRef.current, ctx.markdownPostProcessorContext.sourcePath, 1); }, [ctx, src]); return React.createElement("span", { ref: containerRef }); }; @@ -145387,6 +145417,16 @@ class ReactComponentsPlugin extends obsidian.Plugin { registerIfCodeBlockFile(args[1]); })); this.addSettingTab(new ReactComponentsSettingTab(this)); + this.registerMarkdownCodeBlockProcessor('jsx', (source, el, ctx) => __awaiter(this, void 0, void 0, function* () { + if (ctx.containerEl.closest('.workspace-leaf-content').dataset['mode'] === 'source' && + !el.closest('.cm-line')) { + el.innerHTML = ''; + } + else { + el.innerHTML = `
    `; + el.getElementsByTagName('code')[0].innerText = source; + } + })); try { const ext = this.getLivePostprocessor(); this.registerEditorExtension(ext); @@ -145452,14 +145492,13 @@ class ReactComponentsPlugin extends obsidian.Plugin { plugin.attachComponent(code, el, ctx); const deco = view.Decoration.widget({ widget: new JsxWidget(el, code), - block: isBlock, + block: false, from, to }); - builder.add(Math.max(0, from - 1), to + 1, view.Decoration.replace({ - from, - to - })); + if (!isBlock) { + builder.add(Math.max(0, from - 1), Math.max(0, to + 1), view.Decoration.replace({})); + } builder.add(to + 1, to + 1, deco); }; // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -145495,7 +145534,8 @@ class ReactComponentsPlugin extends obsidian.Plugin { if (!strippedCodeblockHeader) return; if (strippedCodeblockHeader.startsWith('jsx:') || - strippedCodeblockHeader.startsWith('jsx-')) { + strippedCodeblockHeader.startsWith('jsx-') || + strippedCodeblockHeader == 'jsx') { codeblockStart = { from, to, strippedCodeblockHeader }; } return; @@ -145506,6 +145546,10 @@ class ReactComponentsPlugin extends obsidian.Plugin { codeblockStart.strippedCodeblockHeader == 'jsx-') { createJsxDecoration(code, codeblockStart.from, to, true); } + else if (codeblockStart.strippedCodeblockHeader == 'jsx') { + const source = ``; + createJsxDecoration(source, codeblockStart.from, to, true); + } else if (codeblockStart.strippedCodeblockHeader.startsWith('jsx::')) { const componentName = codeblockStart.strippedCodeblockHeader .substr('jsx::'.length) @@ -145658,4 +145702,4 @@ class ReactComponentsPlugin extends obsidian.Plugin { } module.exports = ReactComponentsPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMiLCJub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzIiwibm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLXRyYWNpbmcucHJvZHVjdGlvbi5taW4uanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXItdHJhY2luZy5kZXZlbG9wbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9zY2hlZHVsZXIvdHJhY2luZy5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCJub2RlX21vZHVsZXMvQGJhYmVsL3N0YW5kYWxvbmUvYmFiZWwuanMiLCJub2RlX21vZHVsZXMvaXMtdmFyLW5hbWUvaW5kZXguanMiLCJzcmMvcmVhY3Qtd2ViY29tcG9uZW50LnRzeCIsInNyYy9zZXR0aW5ncy50c3giLCJzcmMvbWFpbi50c3giXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbImhhc093blByb3BlcnR5IiwibCIsInJlcXVpcmUkJDAiLCJyZXF1aXJlJCQxIiwiYWEiLCJtIiwiciIsInJlcXVpcmUkJDIiLCJ0cmFjaW5nIiwicmVxdWlyZSQkMyIsInRoaXMiLCJjb21tb25qc0dsb2JhbCIsImdsb2JhbCIsImNvbW1vbmpzUmVxdWlyZSIsInJlcXVpcmUiLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyIsIlBsdWdpbiIsIk1hcmtkb3duUmVuZGVyZXIiLCJvYnNpZGlhbiIsImlzVmFyTmFtZSIsIk5vdGljZSIsIm5vcm1hbGl6ZVBhdGgiLCJPZmZsaW5lUmVhY3QiLCJPZmZsaW5lUmVhY3RET00iLCJURmlsZSIsIldpZGdldFR5cGUiLCJ2aWV3IiwiUmFuZ2VTZXRCdWlsZGVyIiwiRGVjb3JhdGlvbiIsInN5bnRheFRyZWUiLCJ0b2tlbkNsYXNzTm9kZVByb3AiLCJWaWV3UGx1Z2luIiwiVEZvbGRlciIsIlZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdURBO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RSxLQUFLLENBQUMsQ0FBQztBQUNQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEVBO0FBQ0EsSUFBSSxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7QUFDekQsSUFBSUEsZ0JBQWMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztBQUNyRCxJQUFJLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7QUFDN0Q7QUFDQSxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUU7QUFDdkIsQ0FBQyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtBQUN4QyxFQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsdURBQXVELENBQUMsQ0FBQztBQUMvRSxFQUFFO0FBQ0Y7QUFDQSxDQUFDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFDRDtBQUNBLFNBQVMsZUFBZSxHQUFHO0FBQzNCLENBQUMsSUFBSTtBQUNMLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7QUFDdEIsR0FBRyxPQUFPLEtBQUssQ0FBQztBQUNoQixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNsQixFQUFFLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtBQUNwRCxHQUFHLE9BQU8sS0FBSyxDQUFDO0FBQ2hCLEdBQUc7QUFDSDtBQUNBO0FBQ0EsRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDakIsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQy9CLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNDLEdBQUc7QUFDSCxFQUFFLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDbEUsR0FBRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixHQUFHLENBQUMsQ0FBQztBQUNMLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksRUFBRTtBQUN4QyxHQUFHLE9BQU8sS0FBSyxDQUFDO0FBQ2hCLEdBQUc7QUFDSDtBQUNBO0FBQ0EsRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDakIsRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsTUFBTSxFQUFFO0FBQzdELEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUMxQixHQUFHLENBQUMsQ0FBQztBQUNMLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUNwRCxJQUFJLHNCQUFzQixFQUFFO0FBQzVCLEdBQUcsT0FBTyxLQUFLLENBQUM7QUFDaEIsR0FBRztBQUNIO0FBQ0EsRUFBRSxPQUFPLElBQUksQ0FBQztBQUNkLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRTtBQUNmO0FBQ0EsRUFBRSxPQUFPLEtBQUssQ0FBQztBQUNmLEVBQUU7QUFDRixDQUFDO0FBQ0Q7QUFDQSxnQkFBYyxHQUFHLGVBQWUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFO0FBQy9FLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDVixDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzQixDQUFDLElBQUksT0FBTyxDQUFDO0FBQ2I7QUFDQSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVDLEVBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QjtBQUNBLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7QUFDeEIsR0FBRyxJQUFJQSxnQkFBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDdkMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLElBQUk7QUFDSixHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUkscUJBQXFCLEVBQUU7QUFDN0IsR0FBRyxPQUFPLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QyxJQUFJLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNqRCxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMLElBQUk7QUFDSixHQUFHO0FBQ0gsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNYLENBQUM7Ozs7Ozs7Ozs7OztBQ2pGWSxJQUErQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLGlCQUFpQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzFNLEdBQUcsVUFBVSxHQUFHLE9BQU8sTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQztBQUN4WixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsd0RBQXdELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdIQUFnSCxDQUFDO0FBQ3JiLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBQyxDQUFDLENBQUM7QUFDamYsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsWUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwUyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDOWEsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDaFgsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzFmLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVaLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQ0EsWUFBQyxDQUFDLENBQUM7QUFDcGUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0FBQ2xYLHFCQUFxQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLFlBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsT0FBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO0FBQzVmLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxzQkFBc0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixVQUFVLENBQUMsT0FBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDN2UsYUFBYSxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMs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QkFBNkIsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLFlBQVksRUFBRTtBQUM5Z0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLGdDQUFnQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlIQUFpSCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZmLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2xQLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcGEsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQzFQLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUN4ZSxtQ0FBbUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQywyQkFBMkIsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsZ0NBQWdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsQ0FBQyxtQ0FBbUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMseUNBQXlDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHNDQUFzQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4YSxzQkFBc0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxVQUFVLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLGlDQUFpQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeFcsa0NBQWtDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFD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QUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDOWUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDN0QsSUFBSSxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsT0FBTyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sTUFBTSxDQUFDLFFBQVEsRUFBRSxXQUFXLEdBQUcsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyw2VkFBNlYsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjO0FBQ25nQixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3WCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDdGIsc0lBQXNJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN2UsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsNk9BQTZPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM2IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3paLHlqQ0FBeWpDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUMzbUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQywwRUFBMEUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztBQUNyZCxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9MLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUNsZSxJQUFJLEVBQUUsQ0FBQ0EsS0FBRSxDQUFDLGtEQUFrRCxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztBQUN0TixHQUFHLFVBQVUsR0FBRyxPQUFPLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUMsQ0FBQztBQUMvZCxJQUFJLEVBQUUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsT0FBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwVSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDeGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2hVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLE9BQU0sRUFBRSxDQUFDLENBQUM7QUFDbFUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxPQUFNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLGNBQWMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO0FBQ3RmLE9BQU8sQ0FBQyxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsT0FBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2piLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhO0FBQ3JnQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsR0FBRyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyYSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPQyxZQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDL2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsQ0FBQztBQUNuYSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUMxVixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUNELEtBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxZQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQ3pZLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBT0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ25aLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsb0NBQW9DLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDNVosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTSw0QkFBNEIsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxPQUFNLG9DQUFvQyxDQUFDLFFBQVEsT0FBTSw4QkFBOEIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsOEJBQThCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsR0FBRyxDQUFDLEVBQUUsZUFBZSxHQUFHLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7QUFDN1UsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxXQUFXLEdBQUcsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQztBQUN2SCxJQUFJLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDNWYsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ25hLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQ0EsWUFBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdlQsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuVyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLGdCQUFnQixDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssa0JBQWtCLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQzdiLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLENBQUM7QUFDbmEsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUN0RixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssc0JBQXNCLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxvQkFBb0IsQ0FBQyxLQUFLLGFBQWEsQ0FBQyxLQUFLLG9CQUFvQixDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssa0JBQWtCLENBQUMsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVO0FBQ25mLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUMsQ0FBQztBQUMxZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsS0FBSyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xmLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO0FBQzdmLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztBQUNqZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyw0UEFBNFAsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMWIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsS0FBSyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsS0FBSyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxLQUFLLG1CQUFtQixDQUFDLEtBQUssb0JBQW9CLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztBQUN2YSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaE4sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BXLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQ0MsU0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFJLENBQUM7QUFDL1UsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzVRLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsQ0FBQztBQUN6WixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsU0FBQyxDQUFDLHlCQUF5QixDQUFDQSxTQUFDLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzNILFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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QixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxXQUFXO0FBQzFmLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDQSxTQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqWSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQzVmLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2VyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNWUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDQSxTQUFDLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUNyYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BSLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDOVQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUM7QUFDcFksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQ0QsWUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsV0FBVztBQUN6ZixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNsUixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUNBLFlBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVc7QUFDdGYsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVE7QUFDaGdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO0FBQzFmLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pTLElBQUksRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxVQUFVO0FBQ3ZmLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUNBLFlBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDcGYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGNBQWMsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN1csU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsT0FBTyxJQUFJLENBQUMsQ0FBQztBQUNuZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxPQUFPLElBQUksQ0FBQyxDQUFDO0FBQ3hZLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUMsUUFBTyxDQUFDLEVBQUUsQ0FBQyxHQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuZixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztBQUM1YixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwVSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvWixTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3phLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxjQUFjLEdBQUcsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FB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QUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3YSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDL08sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUN0UyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ3hXLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3ZmLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssU0FBUyxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQzNpQixFQUFFLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLEtBQUssS0FBSyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLG1CQUFtQixDQUFDLEtBQUssb0JBQW9CLENBQUMsS0FBSyxlQUFlLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtBQUNuZixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO0FBQ3ZmLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxFQUFFLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcmYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFFLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUNwZixDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2ZixLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZTtBQUNsZ0IsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDN2EsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOWIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sVUFBVSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7QUFDN2MsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxLQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7QUFDamUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDdmIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUMvUCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQywyQ0FBMkMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMseUNBQXlDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ2xmLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLHlDQUF5QyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUNoZixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUNDLFNBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDMWQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQztBQUNoYixTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUNELFlBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUM7QUFDamMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFDLENBQUM7QUFDN1ksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsQ0FBQztBQUNoYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQ3haLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7QUFDdmYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDO0FBQ3JCLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVE7QUFDN2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJO0FBQ3hmLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUlELEtBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO0FBQ2hjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUNDLFlBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzlJLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUTtBQUN6ZixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyTixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxD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LGlCQUFpQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUMvVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNsZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZLLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JmLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7QUFDdGdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3BmLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hmLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUk7QUFDcmYsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJO0FBQ3RmLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTO0FBQ3pmLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcmYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLENBQUM7QUFDcmYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzFkLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pkLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM2UsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztBQUM5UyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsS0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3pmLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2pZLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2pmLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDelksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWTtBQUMxZ0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDaFIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdFYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaFEsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzdmLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3hlLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuUixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ3BjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsQ0FBQztBQUNwZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNaLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ2pLLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7QUFDbGEsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUk7QUFDM2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7QUFDemYsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztBQUNyZixLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPO0FBQ3JmLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTztBQUM1ZixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDalosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0TCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSwrQkFBK0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoZixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3ZTLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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Q0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQjtBQUMvZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVMLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFDLENBQUM7QUFDNWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsMEJBQTBCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNqZ0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzNmLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdlYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQy9OLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUN6ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzFRLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7QUFDdGYsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3JnQixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN0VyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDMVQsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sUUFBUSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU87QUFDbGYsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUkseUJBQXlCLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsZ0NBQWdDLEdBQUcsQ0FBQyxFQUFFLDBCQUEwQixHQUFHLENBQUMsRUFBRSxXQUFXLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3BmLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLHlCQUF5QixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxFQUFFLDBCQUEwQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU87QUFDdGYsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSSxDQUFDLENBQUM7QUFDbmEsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7QUFDamdCLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsS0FBSyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhO0FBQ3pnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsS0FBSyxRQUFRLENBQUMsTUFBTSxRQUFRLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU87QUFDN2YsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdmYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxLQUFLLE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcmYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxHQUFHLENBQUMsRUFBRSwwQkFBMEIsR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdmYsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcmYsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN0ZixDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RmLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVk7QUFDaGdCLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSztBQUN0ZixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLCtCQUErQixHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZkLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsT0FBTyxJQUFJLENBQUMsQ0FBQztBQUMzYSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQUssQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RiLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDNWMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbmYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3pnQixDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdmLE9BQU8sS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztBQUN2ZixDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQztBQUMxSCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hoQixDQUFDLEVBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3ZTLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUk7QUFDbmYsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzVILFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUM7QUFDdFosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUM7QUFDN04sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0FBQzlmLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQztBQUMzWixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuZixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVM7QUFDMWYsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQzFlLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDL2UsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDclQsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztBQUM5ZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2ZixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBQyxDQUFDLENBQUM7QUFDL0csU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZO0FBQ2pnQixDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7QUFDdGYsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQzdVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO0FBQzlZLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQztBQUNoVyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDO0FBQ3pjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDMWYsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzdmLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsdUxBQXVMLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JmLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHdCQUF3QixFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzliLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQztBQUNqYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJO0FBQ25mLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztBQUMzVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFJO0FBQ3JmLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4ZixNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUk7QUFDM2dCLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7QUFDdmYsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFVLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzFmLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDcmYsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDO0FBQ3ZYLFNBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDamUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPO0FBQ3hmLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzdJLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQztBQUM1ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlaLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUk7QUFDL2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVE7QUFDcGYsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQy9mLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNwZixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVE7QUFDeGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDdmYsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyZixDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcmYsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3ZlLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3pmLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pELFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRO0FBQy9mLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZMLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFJLENBQUM7QUFDbGYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNLLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyx5Q0FBeUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtBQUNwZixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUM7QUFDclgsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBQyxDQUFDO0FBQ3hkLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDblUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2pPLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL2MsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDamEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENB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RUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxXQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2ZCxVQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxD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UyxVQUFVLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxRQUFRLE1BQU07QUFDZCxTQUFTLFdBQVcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0FBQzdDLFFBQVE7QUFDUixNQUFNLE1BQU07QUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU07QUFDTixJQUFJLEVBQUVBLGdCQUFjLENBQUMsQ0FBQztBQUN0QixFQUFFLEVBQUUsMENBQTBDLENBQUMsQ0FBQztBQUNoRDtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwOEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDanBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMXVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMXdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwc0MsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLG9GQUFvRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNuSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDN0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BFLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxzRkFBc0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDckksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx5RkFBeUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDeEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pqQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4cEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwMkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM5akIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZGQUE2RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsOEZBQThGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzdJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvVCxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0bkIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLCtGQUErRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM5SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzl4QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4cEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMXVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1MUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbE0sQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQy9zQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4ekMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xuQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0dBQXdHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoZ0ksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6ekIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHdHQUF3RyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN2SixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcFAsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbnJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h5QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0dBQXdHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbi9ILENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0aUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZHQUE2RyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwbUosQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOW9DLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzl2QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMTFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNlLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3R0FBd0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3htSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoc0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdGlCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3R0FBd0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNtSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1ckMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8s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O0FBQ3pJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdm5CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hzQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0ekMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDelUsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxvR0FBb0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDbkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxTCxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JsQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsK0ZBQStGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzlJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsbUdBQW1HLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2xKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0UyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1MEMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNubEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeHhDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyMkIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNHQUFzRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbFQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4bUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHlGQUF5RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN4SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0TSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbFMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNycEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOXpDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZLLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxnR0FBZ0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDL0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDemdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0dUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeHlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZsQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMEZBQTBGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3pJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0ksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRGQUE0RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeDRCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9vQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3B1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoMkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMzVCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx5RkFBeUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDeEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdmtDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdHVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbHhDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRGQUE0RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8s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QUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ25sSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsc0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbHpDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcmIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHFGQUFxRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNwSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzF2QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoNEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHdHQUF3RyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN2SixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxD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LENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxrR0FBa0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDakosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeFMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNW9DLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw0RkFBNEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDM0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNKLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xaLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxxR0FBcUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDcEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVWLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxWixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsa0dBQWtHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2pKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN1QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDBGQUEwRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN6SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzbEksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2ekMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLG1HQUFtRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNsSixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsRixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNEZBQTRGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzNJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFFLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw2RkFBNkYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDNUksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3g3QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvb0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwdUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOTFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDdCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywwRkFBMEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyb0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDanBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNweEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakgsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNudEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNXpDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFaLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxtR0FBbUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDbEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxF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RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkosQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEYsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3h2QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxF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RSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVPLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3RkFBd0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9rQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNqcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3R1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h4QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqSCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsZ0dBQWdHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQy9JLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDO0FBQ0EsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGtHQUFrRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNqSixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvakksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdHNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzV6QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN04sQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h4QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3IyQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNkZBQTZGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzVJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM29CLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxpR0FBaUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDaEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlULENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFD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RSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbDZCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNXlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNXNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzkwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbnNCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxrR0FBa0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDakosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMW9CO0FBQ0EsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzkyQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbHFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNXlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbGlDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw4RkFBOEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDN0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h5QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxWixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsbUdBQW1HLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2xKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1c0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdHlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcmIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RYLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzF1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5eUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbGlDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx1RkFBdUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzM4RCxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNycEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcHJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbDFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3YyQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMscUdBQXFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3BKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDO0FBQ0EsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZGQUE2RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3RGLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw2RkFBNkYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDNUksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcGlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3BzQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5eEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2ppQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxpR0FBaUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDaEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw4RkFBOEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDN0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsbEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOXJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzl6QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2SyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdm5CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3hzQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5d0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RGLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxrR0FBa0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDakosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEYsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRGQUE0RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0OEQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzkxQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2x6QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsa0dBQWtHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2pKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNsSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoc0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUs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LFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvMkIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDJGQUEyRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMxSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbkcsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDBGQUEwRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN6SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3RkFBd0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekQsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRGQUE0RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywwRkFBMEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1B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Q0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbnVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3AyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxD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QUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywwRkFBMEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywyRkFBMkYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDMUksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDLzFCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7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UUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9nQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckgsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JvQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdlgsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUwsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDJGQUEyRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMxSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9DLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdlgsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xELENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNzJCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx5RkFBeUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDeEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaGUsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGtHQUFrRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNqSixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0QsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywwRkFBMEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx5RkFBeUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDeEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0RixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMseUZBQXlGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3hJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2TSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5VSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsbUdBQW1HLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2xKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw0RkFBNEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDM0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdjLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3R0FBd0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8s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QUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxF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QUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xMLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdi9CLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxnRkFBZ0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDL0gsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ25HLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywrRUFBK0UsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDOUgsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdGQUFnRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNkVBQTZFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzVILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxpRkFBaUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDaEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZFQUE2RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsK0VBQStFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzlILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN6UixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsaUZBQWlGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2hJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqSCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsZ0ZBQWdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQy9ILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhFQUE4RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLCtFQUErRSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM5SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdGQUFnRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNkVBQTZFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzVILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEYsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhFQUE4RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDBGQUEwRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN6SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw4RUFBOEUsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDN0gsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRFQUE0RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekcsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdGQUFnRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hGLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxrRkFBa0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDakksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw4RUFBOEUsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDN0gsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9RLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2p1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1MEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVB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LE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFD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QUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcFcsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZFQUE2RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDL0csQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1bUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdGQUFnRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2hULENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxxRkFBcUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDcEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2SyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsZ0ZBQWdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQy9ILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNoVCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkVBQTJFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6ZCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsOEVBQThFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzdILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVB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S0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2hULENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxnRkFBZ0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDL0gsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM1QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztB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QyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFB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QU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNkVBQTZFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzVILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsOEVBQThFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzdILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENB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QUFDLElBQUksdUJBQXVCLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxHQUFHLDRCQUE0QixHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsNEJBQTRCLEdBQUcsdUJBQXVCLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDekcsQ0FBQyw0QkFBNEIsR0FBRyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFDL0QsQ0FBQyxJQUFJLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsOEQsQ0FBQyxJQUFJLHFCQUFxQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFB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OEJBQThCO0FBQ2hFLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCO0FBQzVELEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CO0FBQzFDLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCO0FBQ3BELEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCO0FBQ3RDLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCO0FBQ3RDLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUseUJBQXlCLEVBQUUseUJBQXlCO0FBQ3RELEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCO0FBQzFELEVBQUUsa0NBQWtDLEVBQUUsa0NBQWtDO0FBQ3hFLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCO0FBQ2xFLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO0FBQzlDLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCO0FBQ3hDLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO0FBQzlDLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCO0FBQ2hELEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CO0FBQzFDLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCO0FBQ2hELEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO0FBQzlDLEVBQUUsOEJBQThCLEVBQUUsOEJBQThCO0FBQ2hFLEVBQUUsaUNBQWlDLEVBQUUsaUNBQWlDO0FBQ3RFLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCO0FBQzVELEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCO0FBQzFELEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCO0FBQ2hELEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsNkJBQTZCLEVBQUUsNkJBQTZCO0FBQzlELEVBQUUsZ0NBQWdDLEVBQUUsZ0NBQWdDO0FBQ3BFLEVBQUUseUJBQXlCLEVBQUUseUJBQXlCO0FBQ3RELEVBQUUseUJBQXlCLEVBQUUseUJBQXlCO0FBQ3RELEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCO0FBQzVELEVBQUUsaUNBQWlDLEVBQUUsaUNBQWlDO0FBQ3RFLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCO0FBQzVELEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCO0FBQzVELEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCO0FBQ3BELEVBQUUsOEJBQThCLEVBQUUsOEJBQThCO0FBQ2hFLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCO0FBQ3BDLEVBQUUsNkJBQTZCLEVBQUUsNkJBQTZCO0FBQzlELEVBQUUsaUNBQWlDLEVBQUUsaUNBQWlDO0FBQ3RFLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCO0FBQ3BELEVBQUUseUJBQXlCLEVBQUUseUJBQXlCO0FBQ3RELEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsZUFBZSxFQUFFLGVBQWU7QUFDbEMsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0I7QUFDNUMsRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0I7QUFDcEQsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUI7QUFDMUMsRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEI7QUFDaEUsRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0M7QUFDcEUsRUFBRSx5QkFBeUIsRUFBRSx5QkFBeUI7QUFDdEQsRUFBRSxjQUFjLEVBQUUsY0FBYztBQUNoQyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLCtCQUErQixFQUFFLCtCQUErQjtBQUNsRSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQjtBQUN4QyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtBQUNwQyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QjtBQUM1RCxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLGFBQWEsRUFBRSxhQUFhO0FBQzlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCO0FBQ3RDLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCO0FBQ3BELEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCO0FBQ3BELEVBQUUsVUFBVSxFQUFFLFVBQVU7QUFDeEIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUI7QUFDdEMsRUFBRSwyQkFBMkIsRUFBRSwyQkFBMkI7QUFDMUQsRUFBRSx5QkFBeUIsRUFBRSx5QkFBeUI7QUFDdEQsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0I7QUFDNUMsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7QUFDOUMsRUFBRSxlQUFlLEVBQUUsZUFBZTtBQUNsQyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQjtBQUN4QyxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QjtBQUM1RCxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLDZCQUE2QixFQUFFLDZCQUE2QjtBQUM5RCxFQUFFLDBCQUEwQixFQUFFLDBCQUEwQjtBQUN4RCxFQUFFLG1DQUFtQyxFQUFFLG1DQUFtQztBQUMxRSxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQztBQUNwRSxFQUFFLHFDQUFxQyxFQUFFLHFDQUFxQztBQUM5RSxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQjtBQUN4QyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtBQUNwQyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtBQUNwQyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQjtBQUN4QyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLG1DQUFtQyxFQUFFLG1DQUFtQztBQUMxRSxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QjtBQUM1RCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QjtBQUM1RCxFQUFFLG9C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R0FBRyxJQUFJLEdBQUcsQ0FBQztBQUNYLEdBQUcsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLEdBQUcsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLEdBQUcsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUNsRSxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUNuQixHQUFHLElBQUksR0FBRyxHQUFHLGVBQWUsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDM0QsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNUO0FBQ0EsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ2hDLEtBQUssR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEssS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztBQUN2QyxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxD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SSxFQUFFLE1BQU0sRUFBRTtBQUN2RSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDZixHQUFHLElBQUksSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNwQyxHQUFHLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7QUFDOUIsR0FBRyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ3pCLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xFLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6QixHQUFHLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0I7QUFDQSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxRQUFRLEVBQUU7QUFDM0MsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUIsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ2QsSUFBSSxNQUFNO0FBQ1YsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtB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Q0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUMzRSxLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEQsS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqRCxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUMzRSxLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEQsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0FBQzNHLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQzNFLEtBQUssTUFBTSxHQUFHLE1BQU0s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QU0sQ0FBQyxDQUFDO0FBQ3hELEtBQUssSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BELEtBQUssT0FBTyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2xELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ3pFLEtBQUssTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ25HLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ3pFLEtBQUssTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENB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QUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2pDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2pDLEtBQUssSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLEtBQUssSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwRSxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUNyQyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUNyQyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUNwQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2pDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFB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LE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNsRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzlFLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDakMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDcEMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7QUFDckMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7QUFDckMsS0FBSyxPQUFPLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDdkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ2xGLEtBQUssS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDO0FBQ3BCLEtBQUssTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUs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LENBQUM7QUFDbkYsUUFBUSxNQUFNLElBQUksYUFBYSxFQUFFO0FBQ2pDLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdELFFBQVE7QUFDUjtBQUNBLE9BQU8sYUFBYSxHQUFHLElBQUksQ0FBQztBQUM1QjtBQUNBLE9BQU8sSUFBSSxTQUFTLEdBQUcsSUFBSSxFQUFFO0FBQzdCLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07QUFDckMsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9CLFFBQVEsTUFBTSxJQUFJLFNBQVMsR0FBRyxLQUFLLEVBQUU7QUFDckMsU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTTtBQUNyQyxTQUFTLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsR0FBRyxJQUFJLEVBQUUsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN0RSxRQUFRLE1BQU0sSUFBSSxTQUFTLEdBQUcsT0FBTyxFQUFFO0FBQ3ZDLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07QUFDckMsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxTQUFTLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3RHLFFBQVEsTUFBTSxJQUFJLFNBQVMsR0FBRyxRQUFRLEVBQUU7QUFDeEMsU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTTtBQUNyQyxTQUFTLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJ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Q2hDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEI7QUFDQSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtBQUN4QixLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbEIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtBQUN4QixLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsQixLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckIsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbEIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2QyxJQUFJO0FBQ0osRUFBRTtBQUNGLENBQUMsU0FBUyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7QUFDcEMsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7QUFDM0IsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNuQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtBQUN0QixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbEIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxT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QUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzFCLEdBQUcsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDNUIsR0FBRyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM3QixHQUFHLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDO0FBQzlCLEdBQUcsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDL0IsR0FBRyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUMvQixHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQzFCLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDL0IsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM5QixHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDeEIsR0FBRyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM3QixHQUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzFCLEdBQUcsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDOUIsR0FBRyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM1QixHQUFHLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQzNCLEdBQUcs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QUFDLElBQUksTUFBTSxDQUFDO0FBQ2pCLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUNsQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDbEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUNsRSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0QixLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLEVBQUUsQ0FBQztBQUNaLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksRUFBRSxDQUFDO0FBQ1osS0FBSyxJQUFJLEdBQUcsQ0FBQztBQUNiLEtBQUssSUFBSSxHQUFHLENBQUM7QUFDYjtBQUNBLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ2xCLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDckIsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM5QixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRTtBQUNsQixPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLE1BQU0sTUFBTTtBQUNaLE9BQU8sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQixNQUFNO0FBQ047QUFDQSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNyQixLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckI7QUFDQSxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDakMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakM7QUFDQSxPQUFPLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtBQUNuQixTQUFTLEVBQUUsRUFBRSxDQUFDO0FBQ2QsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDbkIsU0FBUyxFQUFFLEVBQUUsQ0FBQztBQUNkLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtBQUN2QixTQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdkMsUUFBUSxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDOUIsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLFFBQVEsTUFBTSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQzlCLFNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakQsUUFBUSxNQUFNO0FBQ2QsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLFFBQVE7QUFDUjtBQUNBLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDMUIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLEdBQUcsQ0FBQztBQUNoQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xDLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QixLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMvRCxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDbkMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNkO0FBQ0EsS0FBSyxRQUFRLEVBQUU7QUFDZixPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUIsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEMsS0FBSyxJQUFJLElBQUksQ0FBQztBQUNkLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzNCLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDbkIsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUN2QyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNaLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNuQyxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzQixLQUFLLElBQUksRUFBRSxHQUFHLEdB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QUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLEtBQUssT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUNoRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQy9DLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQzVFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUM1RSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDNUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckMsS0FBSyxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUN4QyxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDO0FBQ2pCLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUNsQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDbEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUNsRSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0QixLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQztBQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNyQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNyQixLQUFLLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdCLEtBQUssSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0IsS0FBSyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQztBQUNyRCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQztBQUNyRCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQztBQUNyRCxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDakIsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO0FBQ2QsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDO0FBQ2xCLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxJQUFJLENBQUMsQ0FB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LENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsTUFBTSxNQUFNLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFO0FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0IsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZjtBQUNBLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxVQUFVLEtBQUssRUFBRTtBQUN4QyxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JGLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUN0QyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQy9FLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLElBQUksRUFBRTtBQUN0QyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzVFLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLElBQUksRUFBRTtBQUN6RCxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLElBQUksRUFBRTtBQUN0QyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLElBQUksRUFBRTtBQUN2QyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxJQUFJLEVBQUU7QUFDdEMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxJQUFJLEVBQUU7QUFDdEMsS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdB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SyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDNUIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDO0FBQy9CLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDNUIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7QUFDM0IsR0FBRyxLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUMzQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDMUIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzNCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxXQUFXLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRTtBQUNsQyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7QUFDeEIsR0FBRyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUM5QixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7QUFDakMsR0FBRyxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRTtBQUM1QixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUks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QUFPLEVBQUU7QUFDbEMsS0FBSyxNQUFNLEVBQUUsTUFBTTtBQUNuQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUU7QUFDaEQsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUU7QUFDOUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7QUFDNUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7QUFDNUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUU7QUFD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R0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3REO0FBQ0EsT0FBTyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQzFCLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM1RCxTQUFTLE9BQU87QUFDaEIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQzNFLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzdCLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM1RCxTQUFTLE9BQU87QUFDaEIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEIsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0QsU0FBUyxJQUFJLE9BQU8sR0FBRyxJQUFJLENB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QUUsTUFBTTtBQUNmLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLElBQUksRUFBRSxNQUFNO0FBQ2YsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxJQUFJLEVBQUUsTUFBTTtBQUNmLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLEdBQUcsRUFBRSxNQUFNO0FBQ2QsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxJQUFJLEVBQUUsTUFBTTtBQUNmLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxJQUFJLEVBQUUsTUFBTTtBQUNmLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLElBQUksRUFBRSxNQUFNO0FBQ2YsR0FBRyxHQUFHLEVBQUUsTUFBTTtBQUNkLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLElBQUksRUFBRSxNQUFNO0FBQ2YsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxJ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QUNsQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxLQUFLLEVBQUUsUUFBUTtBQUNsQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxLQUFLLEVBQUUsUUFBUTtBQUNsQixHQUFHLE1BQU0sRUFBRSxRQUFRO0FBQ25CLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE1BQU0sRUFBRSxRQUFRO0FBQ25CLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxLQUFLLEVBQUUsUUFBUTtBQUNsQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxNQUFNLEVBQUUsUUFBUTtBQUNuQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsTUFBTSxF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QUNBLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3JELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUU7QUFDckUsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDakIsS0FBSyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQ3RELEtBQUssSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDakMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkMsS0FBSyxJQUFJLEdBQUcsQ0FBQztBQUNiO0FBQ0EsS0FBSyxLQUFLLElBQUksVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRztBQUMzQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQzdDLFNBQVMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyQyxTQUFTLElBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3JELFNBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFDNUMsU0FBUyxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixTQUFT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cVQsQ0FBQztBQUM1VixHQUFHLFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLDYwQ0FBNjBDLENBQUM7QUFDLzJDLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLElBQUksaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJB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VSxDQUFDLEVBQUU7QUFDdEMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDdEUsS0FBSyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUMxQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO0FBQ25DLEtBQUssT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3pCLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEVBQUU7QUFDN0MsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDdEUsS0FBSyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUMxQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO0FBQ25DLEtBQUssT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3pCLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFO0FBQzlDLEdBQUcsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7QUFDekIsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQzNCO0FBQ0EsR0FBRyxLQUFLLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLElBQUks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Q0EsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RCO0FBQ0EsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDdkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFO0FBQ2xDLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xCLEtBQUssSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCO0FBQ0EsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDL0MsT0FBTyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEIsT0FBTyxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxPQUFPLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDeEQsU0FBUyxJQUFJLE1BQU0sR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RDO0FBQ0EsU0FBUyxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDekIsV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMx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SSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxLQUFLLElBQUksR0FBRztBQUMxRixPQUFPLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDOUI7QUFDQSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDckIsTUFBTTtBQUNOLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN0QyxHQUFHLElBQUksSUFBSSxFQUFFO0FBQ2IsS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQzFCLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFELEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUM7QUFDaEMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLFNBQVMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUU7QUFDL0QsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNsQixHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDeEIsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNsQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztBQUM3QixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxXQUFXLEdBQUcsU0FBUyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO0FBQy9ELEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztBQUN4QjtBQUNBLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQzNCLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0QjtBQUNBLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLEdBQUcsU0FBUyxDQUFDO0FBQzdDLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFDekI7QUFDQSxDQUFDLElBQUksS0FBSyxHQUFHLFlBQVk7QUFDekIsR0FBRyxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO0FBQ2xDLEtBQUssSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3RCO0FBQ0EsS0FBSyxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0EsS0FBSyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7QUFDakMsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7QUFDdkcsU0FBUyxPQUFPLEtBQUssQ0FBQztBQUN0QixRQUFRLE1BQU07QUFDZCxTQUFTLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5QyxRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7QUFDdEMsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3JCLE9BQU8sT0FBTyxJQUFJLENBQUM7QUFDbkIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUM1QixLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFDbEMsS0FBSyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUMxRCxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssRUFBRTtBQUMvRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM3QyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDNUIsT0FBTyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDdkIsTUFBTSxDQUFDLENBQUM7QUFDUjtBQUNBLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO0FBQzNCLE9BQU8sTUFBTSxJQUFJLFNBQVMsQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUM3RCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQzlCLE9BQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDL0MsU0FBUyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUNuRixTQUFTLEtBQUssSUFBSSxTQUFTLEdBQUcsK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxFQUFFLElBQUksR0FBRztBQUM5RyxXQUFXLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDL0I7QUFDQSxXQUFXLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzlDLGFBQWEsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLGFBQWEsTUFBTTtBQUNuQixZQUFZO0FBQ1osVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNuQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7QUFDaEM7QUFDQSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLEdBQUc7QUFDckMsS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxFQUFFO0FBQ2hELE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUMxQixLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztBQUN2QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsR0FBRztBQUN6QyxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztBQUN2QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxLQUFLLEVBQUU7QUFDbEQsS0FBSyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDdkI7QUFDQSxLQUFLLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDMUIsS0FBSyxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEQsS0FBSyxJQUFJLE9BQU8sR0FBRyxhQUFhLEdBQUcsUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDMUQsS0FBSyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLEtBQUssSUFBSSxNQUFNLEVBQUUsT0FBTyxNQUFNLENBQUM7QUFDL0IsS0FBSyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUNwQyxLQUFLLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN6RSxLQUFLLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7QUFDOUUsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEMsS0FBSyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDNUUsS0FBSyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUNuRSxLQUFLLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUNsRSxLQUFLLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUNsRSxLQUFLLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQyxLQUFLLElBQUksTUFBTSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDM0UsS0FBSyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRTtBQUMxRCxPQUFPLE9BQU8sZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEQsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDbkQsT0FBTyxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2hELE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxVQUFVLElBQUksRUFBRTtBQUNwRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsTUFBTSxHQUFHLFlBQVk7QUFDckIsT0FBTyxPQUFPLElBQUksQ0FBQztBQUNuQixNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDNUIsT0FBTyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLENBQUM7QUFDUixLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFDdEIsS0FBSyxJQUFJLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzlCO0FBQ0EsS0FBSyxLQUFLLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksR0FBRztBQUMvRyxPQUFPLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDL0IsT0FBTyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFO0FBQ0EsS0FBSyxJQUFJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUN4RDtBQUNBLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEMsS0FBSyxPQUFPLE1BQU0sQ0FBQztBQUNuQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO0FBQzNELEtBQUssSUFBSSxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsRUFBRTtBQUNwQyxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNsRCxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxlQUFlLEVBQUU7QUFDckQsT0FBTyxPQUFPLGFBQWEsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxnQkFBZ0IsRUFBRTtBQUNwRyxTQUFTLE9BQU8sYUFBYSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxjQUFjLEVBQUU7QUFDNUcsV0FBVyxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxVQUFVLGVBQWUsRUFBRTtBQUNwRSxhQUFhLE9BQU8sY0FBYyxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEUsWUFBWSxDQUFDLENBQUM7QUFDZCxVQUFVLENBQUMsQ0FBQztBQUNaLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsTUFBTSxDQUFDLENBQUM7QUFDUixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDeEMsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFO0FBQ25CLE9BQU8sT0FBTyxLQUFLLENBQUM7QUFDcEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtBQUN0QyxPQUFPLElBQUk7QUFDWCxTQUFTLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZELFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtBQUNwQixTQUFTLE9BQU8sS0FBSyxDQUFDO0FBQ3RCLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUMvQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUN4RCxTQUFTLE9BQU8sSUFBSSxDQUFDO0FBQ3JCLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sS0FBSyxDQUFDO0FBQ2xCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLEtBQUssQ0FBQztBQUNoQixFQUFFLEVBQUUsQ0FBQztBQUNMO0FBQ0EsQ0FBQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsQ0FBQyxJQUFJLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQztBQUM1QixHQUFHLEdBQUcsRUFBRSxJQUFJO0FBQ1osRUFBRSxDQUFDLENBQUM7QUFDSixDQUFDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxFQUFFO0FBQ3JCLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ25CLEtBQUsscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQjtBQUN6RCxLQUFLLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0I7QUFDL0MsS0FBSyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7QUFDaEQ7QUFDQSxDQUFDLElBQUksU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLENBQUMsRUFBRTtBQUN2QyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUM7QUFDakMsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUMvQixHQUFHLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7QUFDekIsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksYUFBYSxHQUFHLFNBQVMsYUFBYSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUU7QUFDbEUsR0FBRyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDckIsR0FBRyxJQUFJLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsRCxHQUFHLElBQUksY0FBYyxHQUFHLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ25EO0FBQ0EsR0FBRyxPQUFPLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEVBQUU7QUFDakQsS0FBSyxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFVBQVUsZUFBZSxFQUFFO0FBQ3BFLE9BQU8sT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsRSxNQUFNLENBQUMsQ0FBQztBQUNSLEtBQUssY0FBYyxHQUFHLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2pELElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxNQUFNLENBQUM7QUFDakIsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksZUFBZSxHQUFHLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDL0QsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwQyxHQUFHLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM1QixHQUFHLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QixHQUFHLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hDLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QixHQUFHLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RDLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM1QixHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQ2YsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRTtBQUM1QixHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDO0FBQ3hELEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQzNELEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRTtBQUN2RCxLQUFLLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4QyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEIsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDekQsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsRSxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0FBQ3BELEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLEtBQUssSUFBSSxHQUFHLENBQUM7QUFDYjtBQUNBLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDakIsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLE1BQU0sTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUN4QixPQUFPLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDdkQsTUFBTSxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3hCLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDdkUsTUFBTSxNQUFNLElBQUksRUFBRSxFQUFFO0FBQ3BCLE9BQU8sU0FBUyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQzFGLE1BQU0sTUFBTTtBQUNaLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUMvRSxNQUFNO0FBQ047QUFDQSxLQUFLLFNBQVMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDcEMsS0FBSyxPQUFPLEdBQUcsQ0FBQztBQUNoQixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQzNELEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRTtBQUN2RCxLQUFLLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4QyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEIsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDekQsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyQyxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xFLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDakQsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtBQUNwRCxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5QyxLQUFLLElBQUksR0FBRyxDQUFDO0FBQ2I7QUFDQSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ2pCLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNoQixNQUFNLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDeEIsT0FBTyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDaEUsTUFBTSxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQ3RCLFNBQVMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNsRixRQUFRLE1BQU07QUFDZCxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQzFFLFFBQVE7QUFDUixNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUU7QUFDcEIsT0FBTyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDeEM7QUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtBQUN0QixTQUFTLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtBQUN4QixXQUFXLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3RHLFVBQVUsTUFBTTtBQUNoQixXQUFXLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUM5RixVQUFVO0FBQ1YsUUFBUSxNQUFNO0FBQ2QsU0FBUyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQ3BGLFFBQVE7QUFDUixNQUFNLE1BQU07QUFDWixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQjtBQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQ3RCLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQ3hCLFdBQVcsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvRixVQUFVLE1BQU07QUFDaEIsV0FBVyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUN2RixVQUFVO0FBQ1YsUUFBUSxNQUFNO0FBQ2QsU0FBUyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztBQUN6RSxRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxTQUFTLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLEtBQUssT0FBTyxHQUFHLENBQUM7QUFDaEIsSUFBSSxDQUFDLENBQUM7QUFDTixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxjQUFjLEdBQUcsU0FBUyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUM3RCxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUMsR0FBRyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQ2hELEtBQUssT0FBTyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxhQUFhLEdBQUcsU0FBUyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUMzRCxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEIsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRSxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtBQUM1RCxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkQsS0FBSyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckIsS0FBSyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQixLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQjtBQUNBLEtBQUssSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRTtBQUMvQixPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7QUFDakIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEQ7QUFDQSxLQUFLLElBQUksRUFBRSxFQUFFO0FBQ2IsT0FBTyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtBQUN6QyxTQUFTLEdBQUcsR0FBRyxVQUFVLENBQUM7QUFDMUIsUUFBUSxNQUFNO0FBQ2QsU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ25CLFFBQVE7QUFDUixNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO0FBQzlCLE9BQU8sSUFBSSxFQUFFLEVBQUU7QUFDZixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixRQUFRO0FBQ1I7QUFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDYjtBQUNBLE9BQU8sSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO0FBQ3pCLFNBQVMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNyQjtBQUNBLFNBQVMsSUFBSSxFQUFFLEVBQUU7QUFDakIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQixXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsVUFBVSxNQUFNO0FBQ2hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsVUFBVTtBQUNWLFFBQVEsTUFBTSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7QUFDakMsU0FBUyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ3BCO0FBQ0EsU0FBUyxJQUFJLEVBQUUsRUFBRTtBQUNqQixXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEIsVUFBVSxNQUFNO0FBQ2hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixVQUFVO0FBQ1YsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQztBQUNuQyxPQUFPLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDL0MsTUFBTSxNQUFNLElBQUksRUFBRSxFQUFFO0FBQ3BCLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQ2pFLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRTtBQUNwQixPQUFPLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDakYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxTQUFTLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLEtBQUssT0FBTyxHQUFHLENBQUM7QUFDaEIsSUFBSSxDQUFDLENBQUM7QUFDTixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUN6RCxHQUFHLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVDLEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEQsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksV0FBVyxHQUFHLFNBQVMsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkQsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxHQUFHLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzVGLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUU7QUFDbkQsR0FBRyxPQUFPLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO0FBQzVFLEtBQUssSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDbEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2pCLE1BQU0sTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN6QixPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN6QixPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDaEUsTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFO0FBQ3JCLE9BQU8sSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDMUIsTUFBTSxNQUFNO0FBQ1osT0FBTyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ2hELE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ2YsTUFBTSxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3pCLE9BQU8sRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDdkMsTUFBTSxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3pCLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNoRCxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUU7QUFDckIsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN4RCxNQUFNLE1BQU0sSUFBSSxLQUFLLEVBQUU7QUFDdkIsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDekQsTUFBTSxNQUFNO0FBQ1osT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNyQyxJQUFJLENBQUM7QUFDTCxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxPQUFPLEdBQUcsU0FBUyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDdkQsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN4QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO0FBQ2hDLE9BQU8sT0FBTyxLQUFLLENBQUM7QUFDcEIsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtBQUNoRSxLQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQzdDLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQztBQUNBLE9BQU8sSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxHQUFHLEVBQUU7QUFDOUMsU0FBUyxTQUFTO0FBQ2xCLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ2pELFNBQVMsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUN0QztBQUNBLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEtBQUssRUFBRTtBQUNwSCxXQUFXLE9BQU8sSUFBSSxDQUFDO0FBQ3ZCLFVBQVU7QUFDVixRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLEtBQUssQ0FBQztBQUNsQixJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQ2YsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQztBQUNBLENBQUMsSUFBSSxVQUFVLEdBQUcsWUFBWTtBQUM5QixHQUFHLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdEMsS0FBSyxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0EsS0FBSyxJQUFJLElBQUksWUFBWSxVQUFVLEVBQUU7QUFDckMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDM0MsU0FBUyxPQUFPLElBQUksQ0FBQztBQUNyQixRQUFRLE1BQU07QUFDZCxTQUFTLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQzNCLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVDLEtBQUssSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDNUIsS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQ2xDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QjtBQUNBLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRTtBQUNoQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0sTUFBTTtBQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ3hELE1BQU07QUFDTjtBQUNBLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3QixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7QUFDckM7QUFDQSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ25GLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQjtBQUNBLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNiLE9BQU8sTUFBTSxJQUFJLFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMxRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BEO0FBQ0EsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxFQUFFO0FBQ2hDLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7QUFDM0IsTUFBTSxNQUFNO0FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVELE1BQU07QUFDTixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsR0FBRztBQUN6QyxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztBQUN2QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDeEMsS0FBSyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0Q7QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssRUFBRTtBQUNyRCxPQUFPLE9BQU8sSUFBSSxDQUFDO0FBQ25CLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7QUFDdEMsT0FBTyxJQUFJO0FBQ1gsU0FBUyxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2RCxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUU7QUFDcEIsU0FBUyxPQUFPLEtBQUssQ0FBQztBQUN0QixRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2RSxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQzFELEtBQUssSUFBSSxFQUFFLElBQUksWUFBWSxVQUFVLENBQUMsRUFBRTtBQUN4QyxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUN2RCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQ2xELE9BQU8sT0FBTyxHQUFHO0FBQ2pCLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPO0FBQ3pCLFNBQVMsaUJBQWlCLEVBQUUsS0FBSztBQUNqQyxRQUFRLENBQUM7QUFDVCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxFQUFFLEVBQUU7QUFDL0IsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO0FBQzlCLFNBQVMsT0FBTyxJQUFJLENBQUM7QUFDckIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5RCxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsRUFBRTtBQUN0QyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7QUFDOUIsU0FBUyxPQUFPLElBQUksQ0FBQztBQUNyQixRQUFRO0FBQ1I7QUFDQSxPQUFPLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSx1QkFBdUIsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDMUksS0FBSyxJQUFJLHVCQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUMxSSxLQUFLLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ2xFLEtBQUssSUFBSSw0QkFBNEIsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDakosS0FBSyxJQUFJLDBCQUEwQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNoTSxLQUFLLElBQUksNkJBQTZCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ25NLEtBQUssT0FBTyx1QkFBdUIsSUFBSSx1QkFBdUIsSUFBSSxVQUFVLElBQUksNEJBQTRCLElBQUksMEJBQTBCLElBQUksNkJBQTZCLENBQUM7QUFDNUssSUFBSSxD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QUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsUUFBUTtBQUNSO0FBQ0EsT0FBTyxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BELE1BQU07QUFDTixLQUFLLEtBQUssRUFBRSxTQUFTLEtBQUssR0FBRztBQUM3QixPQUFPLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUN4QjtBQUNBLE9BQU8sS0FBSyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEcsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLFFBQVE7QUFDUjtBQUNBLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDckQsU0FBUyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xFLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsTUFBTTtBQUNOLEtBQUssT0FBTyxFQUFFLFNBQVMsT0FBTyxHQUFHO0FBQ2pDLE9BQU8sS0FBSyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEcsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcs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QUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxR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S0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUs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RixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFD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SUFBSTtBQUNaLEdBQUcsR0FBRyxFQUFFLElBQUk7QUFDWixHQUFHLEdBQUcsRUFBRSxJQUFJO0FBQ1osR0FBRyxHQUFHLEVBQUUsSUFBSTtBQUNaLEdBQUcsR0FBRyxFQUFFLElBQUk7QUFDWixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsR0FBRztBQUNULEdBQUcsQ0FBQyxFQUFFLEdBQUc7QUFDVCxHQUFHLENBQUMsRUFBRSxHQUFHO0FBQ1QsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLEdBQUc7QUFDVCxHQUFHLENBQUMsRUFBRSxHQUFHO0FBQ1QsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsR0FBRztBQUNULEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsTUFBTTtBQUNiLEdBQUcsRUFBRSxFQUFFLE1BQU07QUFDYixHQUFHLEVBQUUsRUFBRSxHQUFHO0FBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxLQUFLO0FBQ1osR0FBRyxFQUFFLEVBQUUsTUFBTTtBQUNiLEdBQUcsRUFBRSxFQUFFLE1BQU07QUFDYixHQUFHLEVBQUUsRUFBRSxTQUFTO0FBQ2hCLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxHQUFHO0FBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxLQUFLO0FBQ1osR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsS0FBSztBQUNaLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxLQUFLO0FBQ1osR0FBRyxFQUFFLEVBQUUsS0FBSztBQUNaLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxNQUFNO0FBQ2IsR0FBRyxFQUFFLEVBQUUsTUFBTTtBQUNiLEdBQUcsRUFBRSxFQUFF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RUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDcFosS0FBSyxDQUFDLEVBQUUsSUFBSTtBQUNaLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsU0FBUztBQUNwQixPQUFPLENBQUMsRUFBRSxTQUFTO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDWCxPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ25hLEtBQUssQ0FBQyxFQUFFLE1BQU07QUFDZCxLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsT0FBTyxDQUFDLEVBQUUsSUFBSTtBQUNkLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDZCxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsT0FBTyxDQUFDLEVBQUUsSUFBSTtBQUNkLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDZCxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxPQUFPO0FBQ25CLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsTUFBTTtBQUNsQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDWCxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ1gsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPO0FBQ2xCLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxLQUFLO0FBQ2IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7QUFDOWdCLEtBQUssQ0FBQyxFQUFFLFNBQVM7QUFDakIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDZCxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLE1BQU07QUFDbEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxNQUFNO0FBQ2hCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxNQUFNO0FBQ2hCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxLQUFLO0FBQ2YsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsQ0FBQztBQUNaLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztBQUMxZ0IsS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsSUFBSTtBQUNmLE9BQU8sRUFBRSxFQUFFLElBQUk7QUFDZixPQUFPLEVBQUUsRUFBRSxJQUFJO0FBQ2YsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLEVBQUUsRUFBRSxDQUFDO0FBQ1osT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxDQUFDO0FBQ1osTUFBTTtBQUNOLEtBQUssQ0FBQyxFQUFFLFFBQVE7QUFDaEIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDaGIsS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxJQUFJO0FBQ2YsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLENBQUMsRUFBRSxNQUFNO0FBQ2hCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE9BQU8sSUFBSSxFQUFFLE9BQU87QUFDcEIsT0FBTyxJQUFJLEVBQUUsUUFBUTtBQUNyQixPQUFPLElBQUksRUFBRSxRQUFRO0FBQ3JCLE9BQU8sSUFBSSxFQUFFLFFBQVE7QUFDckIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sSUFBSSxFQUFFLFFBQVE7QUFDckIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUMxZixLQUFLLENBQUMsRUFBRSxPQUFPO0FBQ2YsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxJQUFJLEVBQUUsVUFBVTtBQUN2QixPQUFPLElBQUksRUFBRSxVQUFVO0FBQ3ZCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxJQUFJLEVBQUUsVUFBVTtBQUN2QixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLElBQUksRUFBRSxVQUFVO0FBQ3ZCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JC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RUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3hiLEtBQUssQ0FBQyxFQUFFLGVBQWU7QUFDdkIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLElBQUksRUFBRSxVQUFVO0FBQ3ZCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxJQUFJLEVBQUUsVUFBVTtBQUN2QixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsR0FBRztBQUNYLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzlZLEtBQUssQ0FBQyxFQUFFLFlBQVk7QUFDcEIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE1BQU07QUFDTixJQUFJO0FBQ0osR0FBRyxDQUFDLEVBQUU7QUFDTixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixPQUFPLENBQUMsRUFBRSxTQUFTO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDWCxPQUFPLEVBQUUsRUFBRSxDQUFDO0FBQ1osT0FBTyxFQUFFLEVBQUUsQ0FBQztBQUNaLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixPQUFPLEVBQUUsRUFBRSxTQUFTO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFNBQVM7QUFDcEIsT0FBTyxFQUFFLEVBQUUsQ0FBQztBQUNaLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsTUFBTTtBQUNOLEtBQUssQ0FBQyxFQUFFLFFBQVE7QUFDaEIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDOVosS0FBSyxDQUFDLEVBQUUsaUJBQWlCO0FBQ3pCLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ1gsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxF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QUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzdZLEtBQUssQ0FBQyxFQUFFLG9CQUFvQjtBQUM1QixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsS0FBSztBQUNiLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzdZLEtBQUssQ0FBQyxFQUFFLHFCQUFxQjtBQUM3QixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxDQUFDLEVBQUUsU0FBUztBQUNuQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxJQUFJO0FBQ1osS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDOVksS0FBSyxDQUFDLEVBQUUsV0FBVztBQUNuQixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxNQUFNO0FBQ2pCLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzlZLEtBQUssQ0FBQyxFQUFFLHdCQUF3QjtBQUNoQyxLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsTUFBTTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFNBQVM7QUFDcEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxTQUFTO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFNBQVM7QUFDcEIsT0FBTyxFQUFFLEVBQUUsU0FBUztBQUNwQixPQUFPLEVBQUUsRUFBRSxTQUFTO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsU0FBUztBQUNwQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNuYSxLQUFLLENBQUMsRUFBRSxrQkFBa0I7QUFDMUIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzlZLEtBQUssQ0FBQyxFQUFFLFlBQVk7QUFDcEIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE1BQU07QUFDTixJQUFJO0FBQ0osR0FBRyxDQUFDLEVBQUU7QUFDTixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUM5WSxLQUFLLENBQUMsRUFBRSxlQUFlO0FBQ3ZCLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxLQUFLO0FBQ2IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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QUFFLEdBQUc7QUFDVixFQUFFLEtBQUssRUFBRSxZQUFZO0FBQ3JCLEVBQUUsR0FBRyxFQUFFLFlBQVk7QUFDbkIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsUUFBUSxFQUFFLFFBQVE7QUFDcEIsRUFBRSxDQUFDO0FBQ0gsQ0FBQyxJQUFJLEVBQUUsR0FBRztBQUNWLEVBQUUsS0FBSyxFQUFFLFlBQVk7QUFDckIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsQ0FBQztBQUNILENBQUMsSUFBSSxHQUFHLEdBQUc7QUFDWCxFQUFFLEtBQUssRUFBRSxZQUFZO0FBQ3JCLEVBQUUsR0FBRyxFQUFFLFlBQVk7QUFDbkIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsUUFBUSxFQUFFLFNBQVM7QUFDckIsRUFBRSxDQUFDO0FBQ0gsQ0FBQyxJQUFJLEdBQUcsR0FBRztBQUNYLEVBQUUsS0FBSyxFQUFFLFlBQVk7QUFDckIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsQ0FBQztBQUNILENBQUMsSUFBSSxHQUFHLEdBQUc7QUFDWCxFQUFFLEtBQUssRUFBRSxZQUFZO0FBQ3JCLEVBQUUsR0FBRyxFQUFFLFlBQVk7QUFDbkIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsUUFBUSxFQUFFLFFBQVE7QUFDcEIsRUFBRSxDQUFDO0FBQ0gsQ0FBQyxJQUFJLEdBQUcsR0FBRztBQUNYLEVBQUUsS0FBSyxFQUFFLFlBQVk7QUFDckIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsQ0FBQztBQUNILENBQUMsSUFBSSxHQUFHLEdBQUc7QUFDWCxFQUFFLEtBQUssRUFBRSxZQUFZO0FB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LElBQUk7QUFDZixHQUFHLE1BQU0sRUFBRSxJQUFJO0FBQ2YsR0FBRyxNQUFNLEVBQUUsSUFBSTtBQUNmLEdBQUcsTUFBTSxFQUFFLElBQUk7QUFDZixHQUFHLE1BQU0sRUFBRSxJQUFJO0FBQ2YsR0FBRyxNQUFNLEVBQUUsSUFBSTtBQUNmLEdBQUcsTUFBTSxFQUFFLElBQUk7QUFDZixHQUFHLE1BQU0sRUFBRSxJQUFJO0FBQ2YsR0FBRyxNQUFNLEVBQUUsSUFBSTtBQUNmLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFF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QUUsSUFBSTtBQUNaLEVBQUUsT0FBTyxFQUFFLElBQUk7QUFDZixFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ2IsRUFBRSxJQUFJLEVBQUUsTUFBTTtBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLEdBQUcsRUFBRSxHQUFHO0FBQ1YsRUFBRSxPQUFPLEVBQUUsR0FBRztBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLFFBQVEsRUFBRSxNQUFNO0FBQ2xCLEVBQUU7QUFDRixFQUFFLHNCQUFzQixFQUFFO0FBQzFCLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDYixFQUFFLEtBQUssRUFBRSxJQUFJO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsT0FBTyxFQUFFLElBQUk7QUFDZixFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ2IsRUFBRSxJQUFJLEVBQUUsTUFBTTtBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLEdBQUcsRUFBRSxHQUFHO0FBQ1YsRUFBRSxPQUFPLEVBQUUsR0FBRztBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLFFBQVEsRUFBRSxNQUFNO0FBQ2xCLEVBQUU7QUFDRixFQUFFLHFCQUFxQixFQUFFO0FBQ3pCLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDYixFQUFFLEtBQUssRUFBRSxJQUFJO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsT0FBTyxFQUFFLElBQUk7QUFDZixFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ2IsRUFBRSxJQUFJLEVBQUUsTUFBTTtBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLEdBQUcsRUFBRSxHQUFHO0FBQ1YsRUFBRSxPQUFPLEVBQUUsR0FBRztBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLFFBQVEsRUFBRSxNQUFNO0FBQ2xCLEVBQUU7QUFDRixFQUFFLDRCQUE0QixFQUFFO0FBQ2hDLEVBQUUsTUFBTSxFQUFFLElBQUk7QUFDZCxFQUFFLEtBQUss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QyxDQUFDO0FBQ3pCLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUM3QixTQUFTLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDO0FBQzlCLFNBQVMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELFNBQVMsR0FBRyxJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUM7QUFDNUIsU0FBUyxPQUFPLEdBQUcsQ0FBQztBQUNwQixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRTtBQUM1QixTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDNUIsV0FBVyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRTtBQUM3QixTQUFTLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQzlDLFdBQVcsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsU0FBUyxHQUFHO0FBQzVCLFNBQVMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDL0IsU0FBUyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQztBQUNoRCxRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRTtBQUM1QixTQUFTLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxL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QUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3Jta0I7QUFDQSxDQUFDLElBQUksa0JBQWtCLEdBQUcsU0FBUyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO0FBQ3ZFLEdBQUcsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM3QztBQUNBLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTtBQUN0QixLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzdELElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRDtBQUNBLEdBQUcsSUFBSSxjQUFjLEVBQUU7QUFDdkIsS0FBSyxPQUFPLGNBQWMsQ0FBQztBQUMzQixJQUFJO0FBQ0o7QUFDQSxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLGtCQUFrQixHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNyRixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxtQ0FBbUMsR0FBRyxrQkFBa0IsQ0FBQztBQUM5RDtBQUNBLENBQUMsSUFBSSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6NFk7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzV1QixDQUFDLElBQUksT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2x2QixDQUFDLElBQUksbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN3pCLENBQUMsSUFBSSx3QkFBd0IsR0FBRztBQUNoQyxHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxtQkFB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QU0sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUMxSSxLQUFLLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ2xFLEtBQUssSUFBSSw0QkFBNEIsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDakosS0FBSyxJQUFJLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUM1TCxLQUFLLElBQUksNkJBQTZCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQy9MLEtBQUssT0FBTyx1QkFBdUIsSUFBSSx1QkFBdUIsSUFBSSxVQUFVLElBQUksNEJBQTRCLElBQUksMEJBQTBCLElBQUksNkJBQTZCLENBQUM7QUFDNUssSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8s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LElBQUk7QUFDZCxFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsUUFBUSxFQUFFLEtBQUs7QUFDakIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsR0FBRyxFQUFFLE1BQU07QUFDYixFQUFFLElBQUksRUFBRSxNQUFNO0FBQ2QsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUNkLEVBQUUsT0FBTyxFQUFFLE1BQU07QUFDakIsRUFBRTtBQUNGLEVBQUUsbUJBQW1CLEVBQUU7QUFDdkIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsTUFBTSxFQUFFLElBQUk7QUFDZCxFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsUUFBUSxFQUFFLEtBQUs7QUFDakIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsR0FBRyxFQUFFLE1BQU07QUFDYixFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUNqQixFQUFFLE1BQU0sRUFBRSxNQUFNO0FBQ2hCLEVBQUUsT0FBTyxFQUFFLEtBQUs7QUFDaEIsRUFBRTtBQUNGLEVBQUUsa0JBQWtCLEVBQUU7QUFDdEIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsTUFBTSxFQUFFLElBQUk7QUFDZCxFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsUUFBUSxFQUFFLEtBQUs7QUFDakIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsR0FBRyxFQUFFLE1BQU07QUFDYixFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFF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QUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsTUFBTTtBQUNsQixFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxHQUFHLEVBQUUsS0FBSztBQUNaLEVBQUUsSUFBSSxFQUFFLFNBQVM7QUFDakIsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUNqQixFQUFFLE1BQU0sRUFBRSxLQUFLO0FBQ2YsRUFBRSxPQUFPLEVBQUUsS0FBSztBQUNoQixFQUFFO0FBQ0YsRUFBRSw0QkFBNEIsRUFBRTtBQUNoQyxFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUNkLEVBQUUsSUFBSSxFQUFFLEtBQUs7QUFDYixFQUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsTUFBTTtBQUNsQixFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxHQUFHLEVBQUUsS0FBSztBQUNaLEVBQUUsSUFBSSxFQUFFLFNBQVM7QUFDakIsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUNqQixFQUFFLE1BQU0sRUFBRSxLQUFLO0FBQ2YsRUFBRSxPQUFPLEVBQUUsS0FBSztBQUNoQixFQUFFO0FBQ0YsRUFBRSw0QkFBNEIsRUFBRTtBQUNoQyxFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUNkLEVBQUUsSUFBSSxFQUFFLEtBQUs7QUFDYixFQUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsTUFBTTtBQUNsQixFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxHQUFHLEVBQUUsS0FBSztBQUNaLEVBQUUsSUFBSSxFQUFFLFNBQVM7QUFDakIsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFD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QUNoTyxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdkMsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4RSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFDcEMsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDM0UsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNyRixHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdkMsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4RSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFDcEMsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDM0UsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFD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QUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2pCO0FBQ0EsQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUNuQyxHQUFHLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDZjtBQUNBLENBQUMsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDckMsR0FBRyxPQUFPLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2pCO0FBQ0EsQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUNuQyxHQUFHLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDZjtBQUNBLENBQUMsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDckMsR0FBRyxPQUFPLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2pCO0FBQ0EsQ0FBQyxJQUFJLEdBQUcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxF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QUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSxnQkFBZ0I7QUFDbEIsRUFBRSxtQ0FBbUM7QUFDckMsRUFBRSx3Q0FBd0M7QUFDMUMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSxrQ0FBa0M7QUFDcEMsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSwrQkFBK0I7QUFDakMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw4QkFBOEI7QUFDaEMs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RUFBRSw4QkFBOEI7QUFDaEMsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxtQ0FBbUM7QUFDckMsRUFBRSx3Q0FBd0M7QUFDMUMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSxrQ0FBa0M7QUFDcEMsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxrQkFBa0I7QUFDcEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSxpQkFBaUI7QUFDbkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxpQkFBaUI7QUFDbkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSxxQkFBcUI7QUFDdkIs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cUJBQXFCO0FBQ3ZCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsMkJBQTJCO0FBQzdCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsOEJBQThCO0FBQ2hDLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsbUJBQW1CO0FBQ3JCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUsNkJBQTZCO0FBQy9CLEVBQUUsd0JBQXdCO0FBQzFCLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsc0JBQXNCO0FBQ3hCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUsaUNBQWlDO0FBQ25DLEVBQUUsMEJBQTBCO0FBQzVCLEVBQUU7QUFDRixFQUFFLDRDQUE0QyxFQUFFO0FBQ2hELEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsb0NBQW9DO0FBQ3RDLEVBQUUsbUJBQW1CO0FBQ3JCLEVBQUUsNEJBQTRCO0FBQzlCLEVBQUUsc0JBQXNCO0FBQ3hCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsMkJBQTJCO0FBQzdCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsOEJBQThCO0FBQ2hDLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsbUJBQW1CO0FBQ3JCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUsNkJBQTZCO0FBQy9CLEVBQUUsd0JBQXdCO0FBQzFCLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsc0JBQXNCO0FBQ3hCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUscUJB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bUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsaUNBQWlDLEVBQUU7QUFDckMsRUFBRSxpQkFBaUI7QUFDbkIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsNkNBQTZDLEVBQUU7QUFDakQsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUseUNBQXlDLEVBQUU7QUFDN0MsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRTtBQUNGLEVBQUUscUNBQXFDLEVBQUU7QUFDekMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRTtBQUNGLEVBQUUsb0NBQW9DLEVBQUU7QUFDeEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUseUNBQXlDLEVBQUU7QUFDN0MsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRTtBQUNGLEVBQUUscUNBQXFDLEVBQUU7QUFDekMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUseUNBQXlDLEVBQUU7QUFDN0MsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRTtBQUNGLEVBQUUscUNBQXFDLEVBQUU7QUFDekMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsMkNBQTJDLEVB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OUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRTtBQUNGLEVBQUUsd0NBQXdDLEVBQUU7QUFDNUMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFBc0I7QUFDeEIs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QkFBNEI7QUFDOUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRTtBQUNGLEVBQUUsd0NBQXdDLEVBQUU7QUFDNUMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFB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RUFBRSxvQkFBb0I7QUFDaEQsR0FBRyx3Q0FBd0MsRUFBRSxtQ0FBbUM7QUFDaEYsR0FBRyxzQkFBc0IsRUFBRSxtQkFBbUI7QUFDOUMsR0FBRyx5QkFBeUIsRUFBRSxxQkFBcUI7QUFDbkQsR0FBRyx3QkFBd0IsRUFBRSxxQkFBcUI7QUFDbEQsR0FBRyw2Q0FBNkMsRUFBRSxxQ0FBcUM7QUFDdkYsR0FBRyxzQkFBc0IsRUFBRSxvQkFBb0I7QUFDL0MsR0FBRyw2QkFBNkIsRUFBRSwwQkFBMEI7QUFDNUQsR0FBRyw2QkFBNkIsRUFBRSx5QkFBeUI7QUFDM0QsR0FBRywyQkFBMkIsRUFBRSxzQkFBc0I7QUFDdEQsR0FBRyxtQ0FBbUMsRUFBRSw4QkFBOEI7QUFDdEUsR0FBRyw4QkFBOEIsRUFBRSx5QkFBeUI7QUFDNUQsR0FBRyxpQ0FBaUMsRUFBRSw0QkFBNEI7QUFDbEUsR0FBRyxxQkFBcUIsRUFBRSxpQkFBaUI7QUFDM0MsR0FBRyw0QkFBNEIsRUFBRSx1QkFBdUI7QUFDeEQsR0FBRyxpQ0FBaUMsRUFBRSw0QkFBNEI7QUFDbEUsR0FBRywwQkFBMEIsRUFBRSxxQkFBcUI7QUFDcEQsR0FBRyw0QkFBNEIsRUFBRSx1QkFBdUI7QUFDeEQsR0FBRyx1QkFBdUIsRUFBRSxxQkFBcUI7QUFDakQsR0FBRywwQkFBMEIsRUFBRSx1QkFBdUI7QUFDdEQsR0FBRyxtQkFBbUIsRUFBRSxnQkFBZ0I7QUFDeEMsR0FBRyxnQ0FBZ0MsRUFBRSw2QkFBNkI7QUFDbEUsR0FBRyxrQkFBa0IsRUFBRSxnQkFBZ0I7QUFDdkMsR0FBRyx3QkFBd0IsRUFBRSxxQkFBcUI7QUFDbEQsR0FBRyx1QkFBdUIsRUFBRSxtQkFBbUI7QUFDL0MsR0FBRyw2QkFBNkIsRUFBRSwwQkFBMEI7QUFDNUQsR0FBRyx5QkFBeUIsRUFBRSxzQkFBc0I7QUFDcEQsR0FBRyxzQkFBc0IsRUFBRSxtQkFBbUI7QUFDOUMsR0FBRywyQkFBMkIsRUFBRSx3QkFBd0I7QUFDeEQsR0FBRyx5QkFBeUIsRUFBRSxzQkFBc0I7QUFDcEQsRUFBRSxDQUFDO0FB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMiLCJub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzIiwibm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLXRyYWNpbmcucHJvZHVjdGlvbi5taW4uanMiLCJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXItdHJhY2luZy5kZXZlbG9wbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9zY2hlZHVsZXIvdHJhY2luZy5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCJub2RlX21vZHVsZXMvQGJhYmVsL3N0YW5kYWxvbmUvYmFiZWwuanMiLCJub2RlX21vZHVsZXMvaXMtdmFyLW5hbWUvaW5kZXguanMiLCJzcmMvcmVhY3Qtd2ViY29tcG9uZW50LnRzeCIsInNyYy9zZXR0aW5ncy50c3giLCJzcmMvbWFpbi50c3giXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbImhhc093blByb3BlcnR5IiwibCIsInJlcXVpcmUkJDAiLCJyZXF1aXJlJCQxIiwiYWEiLCJtIiwiciIsInJlcXVpcmUkJDIiLCJ0cmFjaW5nIiwicmVxdWlyZSQkMyIsInRoaXMiLCJjb21tb25qc0dsb2JhbCIsImdsb2JhbCIsImNvbW1vbmpzUmVxdWlyZSIsInJlcXVpcmUiLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyIsIlBsdWdpbiIsIk1hcmtkb3duUmVuZGVyZXIiLCJURmlsZSIsIm9ic2lkaWFuIiwiaXNWYXJOYW1lIiwiTm90aWNlIiwibm9ybWFsaXplUGF0aCIsIk9mZmxpbmVSZWFjdCIsIk9mZmxpbmVSZWFjdERPTSIsIldpZGdldFR5cGUiLCJ2aWV3IiwiUmFuZ2VTZXRCdWlsZGVyIiwiRGVjb3JhdGlvbiIsInN5bnRheFRyZWUiLCJ0b2tlbkNsYXNzTm9kZVByb3AiLCJWaWV3UGx1Z2luIiwiVEZvbGRlciIsIlZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdURBO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RSxLQUFLLENBQUMsQ0FBQztBQUNQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEVBO0FBQ0EsSUFBSSxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7QUFDekQsSUFBSUEsZ0JBQWMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztB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RUFBQyxDQUFDLENBQUM7QUFDamYsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsWUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwUyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDOWEsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDaFgsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzFmLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVaLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQ0EsWUFBQyxDQUFDLENBQUM7QUFDcGUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0FBQ2xYLHFCQUFxQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUNBLFlBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsT0FBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO0FBQzVmLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxzQkFBc0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixVQUFVLENBQUMsT0FBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDN2UsYUFBYSxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMs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QkFBNkIsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLFlBQVksRUFBRTtBQUM5Z0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLGdDQUFnQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlIQUFpSCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZmLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2xQLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcGEsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQzFQLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUN4ZSxtQ0FBbUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQywyQkFBMkIsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsZ0NBQWdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsQ0FBQyxtQ0FBbUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMseUNBQXlDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHNDQUFzQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4YSxzQkFBc0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxVQUFVLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLGlDQUFpQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeFcsa0NBQWtDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDN2QsOEJBQThCLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQzs7OztBQ1RqSTtBQUNBLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFO0FBQzNDLEVBQUUsQ0FBQyxXQUFXO0FBRWQ7QUFDQSxJQUFJLHdCQUF3QixHQUFHLEtBQUssQ0FBQztBQUNyQyxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUM7QUFDNUI7QUFDQSxJQUFJLG1CQUFtQixDQUFDO0FBQ3hCLElBQUksa0JBQWtCLENBQUM7QUFDdkIsSUFBSSxpQkFBaUIsQ0FBQztBQUN0QixJQUFJLFlBQVksQ0FBQztBQUNqQixJQUFJLGlCQUFpQixHQUFHLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxPQUFPLFdBQVcsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDO0FBQ2pHO0FBQ0EsSUFBSSxpQkFBaUIsRUFBRTtBQUN2QixFQUFFLElBQUksZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO0FBQ3JDO0FBQ0EsRUFBRSx1QkFBdUIsWUFBWTtBQUNyQyxJQUFJLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDbEMsR0FBRyxDQUFDO0FBQ0osQ0FBQyxNQUFNO0FBQ1AsRUFBRSxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDdkIsRUFBRSxJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEM7QUFDQSxFQUFFLHVCQUF1QixZQUFZO0FBQ3JDLElBQUksT0FBTyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsV0FBVyxDQUFDO0FBQ3pDLEdBQUcsQ0FBQztBQUNKLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUFPLE1BQU0sS0FBSyxXQUFXO0FBQzdCLE9BQU8sY0FBYyxLQUFLLFVBQVUsRUFBRTtBQUN0QztBQUNBO0FBQ0EsRUFBRSxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDdkIsRUFBRSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDeEI7QUFDQSxFQUFFLElBQUksY0FBYyxHQUFHLFlBQVk7QUFDbkMsSUFBSSxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7QUFDNUIsTUFBTSxJQUFJO0FBQ1YsUUFBUSxJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7QUFDakQsUUFBUSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQztBQUNwQztBQUNBLFFBQVEsU0FBUyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2pEO0FBQ0EsUUFBUSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3pCLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUNsQixRQUFRLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEMsUUFBUSxNQUFNLENBQUMsQ0FBQztBQUNoQixPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxtQkFBbUIsR0FBRyxVQUFVLEVBQUUsRUFBRTtBQUN0QyxJQUFJLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtBQUM1QjtBQUNBLE1BQU0sVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM3QyxLQUFLLE1BQU07QUFDWCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDckIsTUFBTSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsa0JBQWtCLEdBQUcsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQ3pDLElBQUksVUFBVSxHQUFHLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEMsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLGlCQUFpQixHQUFHLFlBQVk7QUFDbEMsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0IsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLCtCQUErQixZQUFZO0FBQzdDLElBQUksT0FBTyxLQUFLLENBQUM7QUFDakIsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLFlBQVksR0FBRyxrQ0FBa0MsWUFBWSxFQUFFLENBQUM7QUFDbEUsQ0FBQyxNQUFNO0FBQ1A7QUFDQSxFQUFFLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUFDdEMsRUFBRSxJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQzFDO0FBQ0EsRUFBRSxJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUN0QztBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUkscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDO0FBQzdELElBQUksSUFBSSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUM7QUFDM0Q7QUFDQSxJQUFJLElBQUksT0FBTyxxQkFBcUIsS0FBSyxVQUFVLEVBQUU7QUFDckQ7QUFDQSxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxzREFBc0QsR0FBRyw0QkFBNEIsR0FBRyxzRUFBc0UsQ0FBQyxDQUFDO0FBQ3ZMLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRTtBQUNwRDtBQUNBLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLHFEQUFxRCxHQUFHLDRCQUE0QixHQUFHLHNFQUFzRSxDQUFDLENBQUM7QUFDdEwsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFDbkMsRUFBRSxJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUNuQyxFQUFFLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFDeEIsRUFBRSxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDbkI7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUksK0JBQStCLFlBQVk7QUFDL0MsTUFBTSxPQUFPLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxRQUFRLENBQUM7QUFDaEQsS0FBSyxDQUFDO0FBQ047QUFDQTtBQUNBLElBQUksWUFBWSxHQUFHLFlBQVksRUFBRSxDQUFDO0FBQ2xDLEdBQUc7QUFDSDtBQUNBLEVBQUUsa0NBQWtDLFVBQVUsR0FBRyxFQUFFO0FBQ25ELElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUU7QUFDOUI7QUFDQSxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyx5REFBeUQsR0FBRywwREFBMEQsQ0FBQyxDQUFDO0FBQy9JLE1BQU0sT0FBTztBQUNiLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO0FBQ2pCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzdDLEtBQUssTUFBTTtBQUNYO0FBQ0EsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsSUFBSSx3QkFBd0IsR0FBRyxZQUFZO0FBQzdDLElBQUksSUFBSSxxQkFBcUIsS0FBSyxJQUFJLEVBQUU7QUFDeEMsTUFBTSxJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0EsTUFBTSxRQUFRLEdBQUcsV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUM3QyxNQUFNLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQ2xDO0FBQ0EsTUFBTSxJQUFJO0FBQ1YsUUFBUSxJQUFJLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMvRTtBQUNBLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRTtBQUMxQixVQUFVLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUN2QyxVQUFVLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUN2QyxTQUFTLE1BQU07QUFDZjtBQUNBO0FBQ0EsVUFBVSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFNBQVM7QUFDVCxPQUFPLENBQUMsT0FBTyxLQUFLLEVBQUU7QUFDdEI7QUFDQTtBQUNBLFFBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixRQUFRLE1BQU0sS0FBSyxDQUFDO0FBQ3BCLE9BQU87QUFDUCxLQUFLLE1BQU07QUFDWCxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUNuQyxLQUFLO0FBQ0wsR0FBRyxDQUFDO0FBQ0o7QUFDQSxFQUFFLElBQUksT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7QUFDckMsRUFBRSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQzNCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsd0JBQXdCLENBQUM7QUFDckQ7QUFDQSxFQUFFLG1CQUFtQixHQUFHLFVBQVUsUUFBUSxFQUFFO0FBQzVDLElBQUkscUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBQ3JDO0FBQ0EsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7QUFDL0IsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUM7QUFDbEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLEtBQUs7QUFDTCxHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsa0JBQWtCLEdBQUcsVUFBVSxRQUFRLEVBQUUsRUFBRSxFQUFFO0FBQy9DLElBQUksYUFBYSxHQUFHLFdBQVcsQ0FBQyxZQUFZO0FBQzVDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNYLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxpQkFBaUIsR0FBRyxZQUFZO0FBQ2xDLElBQUksYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2pDO0FBQ0EsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsR0FBRyxDQUFDO0FBQ0osQ0FBQztBQUNEO0FBQ0EsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUMxQixFQUFFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDMUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xCLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUNELFNBQVMsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNwQixFQUFFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixFQUFFLE9BQU8sS0FBSyxLQUFLLFNBQVMsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDO0FBQzVDLENBQUM7QUFDRCxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUU7QUFDbkIsRUFBRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEI7QUFDQSxFQUFFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtBQUMzQixJQUFJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQjtBQUNBLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO0FBQ3hCLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNyQixNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzlCLEtBQUs7QUFDTDtBQUNBLElBQUksT0FBTyxLQUFLLENBQUM7QUFDakIsR0FBRyxNQUFNO0FBQ1QsSUFBSSxPQUFPLElBQUksQ0FBQztBQUNoQixHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsU0FBUyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7QUFDL0IsRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDaEI7QUFDQSxFQUFFLE9BQU8sSUFBSSxFQUFFO0FBQ2YsSUFBSSxJQUFJLFdBQVcsR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNuQztBQUNBLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQzNEO0FBQ0EsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQy9CLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUMzQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUM7QUFDMUIsS0FBSyxNQUFNO0FBQ1g7QUFDQSxNQUFNLE9BQU87QUFDYixLQUFLO0FBQ0wsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO0FBQ2pDLEVBQUUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLEVBQUUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUMzQjtBQUNBLEVBQUUsT0FBTyxLQUFLLEdBQUcsTUFBTSxFQUFFO0FBQ3pCLElBQUksSUFBSSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0IsSUFBSSxJQUFJLFVBQVUsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2pDO0FBQ0EsSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDdkQsTUFBTSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDM0QsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQzVCLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNoQyxRQUFRLEtBQUssR0FBRyxVQUFVLENBQUM7QUFDM0IsT0FBTyxNQUFNO0FBQ2IsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQzNCLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvQixRQUFRLEtBQUssR0FBRyxTQUFTLENBQUM7QUFDMUIsT0FBTztBQUNQLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDaEUsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQzFCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUM5QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUM7QUFDekIsS0FBSyxNQUFNO0FBQ1g7QUFDQSxNQUFNLE9BQU87QUFDYixLQUFLO0FBQ0wsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdkI7QUFDQSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN2QyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3pDLENBQUM7QUFDRDtBQUNBO0FBQ0EsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFDMUIsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7QUFDN0IsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNwQixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDckI7QUFDQSxTQUFTLGVBQWUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO0FBQ25DLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDbkM7QUFDQSxJQUFJLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BDO0FBQ0EsSUFBSSw4QkFBOEIsR0FBRyxHQUFHLENBQUM7QUFDekMsSUFBSSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFDbkMsSUFBSSxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFDakM7QUFDQSxJQUFJLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQzlDO0FBQ0EsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQ25CLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUNwQjtBQUNBLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN0QixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDdkIsSUFBSSxvQkFBb0IsR0FBRyxjQUFjLENBQUM7QUFDMUM7QUFDQSxJQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQztBQUM3QixJQUFJLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUNwQyxJQUFJLHNCQUFzQixHQUFHLEtBQUssQ0FBQztBQUNuQztBQUNBLFNBQVMsYUFBYSxDQUFDLFdBQVcsRUFBRTtBQUNwQztBQUNBLEVBQUUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQy9CO0FBQ0EsRUFBRSxPQUFPLEtBQUssS0FBSyxJQUFJLEVBQUU7QUFDekIsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO0FBQ2pDO0FBQ0EsTUFBTSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEIsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxXQUFXLEVBQUU7QUFDL0M7QUFDQSxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN0QixNQUFNLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztBQUM3QyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0IsS0FBSyxNQUFNO0FBQ1g7QUFDQSxNQUFNLE9BQU87QUFDYixLQUFLO0FBQ0w7QUFDQSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0IsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLFNBQVMsYUFBYSxDQUFDLFdBQVcsRUFBRTtBQUNwQyxFQUFFLHNCQUFzQixHQUFHLEtBQUssQ0FBQztBQUNqQyxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3QjtBQUNBLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFO0FBQ2hDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO0FBQ2xDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLE1BQU0sbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckMsS0FBSyxNQUFNO0FBQ1gsTUFBTSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEM7QUFDQSxNQUFNLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtBQUMvQixRQUFRLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBQzlFLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLFNBQVMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRTtBQUNsRDtBQUNBO0FBQ0EsRUFBRSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFDbEM7QUFDQSxFQUFFLElBQUksc0JBQXNCLEVBQUU7QUFDOUI7QUFDQSxJQUFJLHNCQUFzQixHQUFHLEtBQUssQ0FBQztBQUNuQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFDeEIsR0FBRztBQUNIO0FBQ0EsRUFBRSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDMUIsRUFBRSxJQUFJLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDO0FBQ25EO0FBQ0EsRUFBRSxJQUFJO0FBQ04scUJBQUksSUFBSSxlQUFlLEVBQUUsQ0FZcEIsTUFBTTtBQUNYO0FBQ0EsTUFBTSxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNyRCxLQUFLO0FBQ0wsR0FBRyxTQUFTO0FBQ1osSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLElBQUksb0JBQW9CLEdBQUcscUJBQXFCLENBQUM7QUFDakQsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFDN0IsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLFNBQVMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRTtBQUNqRCxFQUFFLElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUNoQyxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3QixFQUFFLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDaEM7QUFDQSxFQUFFLE9BQU8sV0FBVyxLQUFLLElBQUksSUFBSSxFQUFFLHdCQUF3QixFQUFFLEVBQUU7QUFDL0QsSUFBSSxJQUFJLFdBQVcsQ0FBQyxjQUFjLEdBQUcsV0FBVyxLQUFLLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRTtBQUMzRztBQUNBLE1BQU0sTUFBTTtBQUNaLEtBQUs7QUFDTDtBQUNBLElBQUksSUFBSSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztBQUN4QztBQUNBLElBQUksSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUU7QUFDeEMsTUFBTSxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztBQUNsQyxNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7QUFDdkQsTUFBTSxJQUFJLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyxjQUFjLElBQUksV0FBVyxDQUFDO0FBQzdFO0FBQ0EsTUFBTSxJQUFJLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2xFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUMzQztBQUNBLE1BQU0sSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRTtBQUN0RCxRQUFRLFdBQVcsQ0FBQyxRQUFRLEdBQUcsb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxNQUFNO0FBQ2I7QUFDQSxRQUFRLElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtBQUM3QyxVQUFVLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QixTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0EsTUFBTSxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsS0FBSyxNQUFNO0FBQ1gsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckIsS0FBSztBQUNMO0FBQ0EsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2xDLEdBQUc7QUFDSDtBQUNBO0FBQ0EsRUFBRSxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7QUFDNUIsSUFBSSxPQUFPLElBQUksQ0FBQztBQUNoQixHQUFHLE1BQU07QUFDVCxJQUFJLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN0QztBQUNBLElBQUksSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO0FBQzdCLE1BQU0sa0JBQWtCLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUM7QUFDNUUsS0FBSztBQUNMO0FBQ0EsSUFBSSxPQUFPLEtBQUssQ0FBQztBQUNqQixHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsU0FBUyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFO0FBQy9ELEVBQUUsUUFBUSxhQUFhO0FBQ3ZCLElBQUksS0FBSyxpQkFBaUIsQ0FBQztBQUMzQixJQUFJLEtBQUssb0JBQW9CLENBQUM7QUFDOUIsSUFBSSxLQUFLLGNBQWMsQ0FBQztBQUN4QixJQUFJLEtBQUssV0FBVyxDQUFDO0FBQ3JCLElBQUksS0FBSyxZQUFZO0FBQ3JCLE1BQU0sTUFBTTtBQUNaO0FBQ0EsSUFBSTtBQUNKLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUNyQyxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUkscUJBQXFCLEdBQUcsb0JBQW9CLENBQUM7QUFDbkQsRUFBRSxvQkFBb0IsR0FBRyxhQUFhLENBQUM7QUFDdkM7QUFDQSxFQUFFLElBQUk7QUFDTixJQUFJLE9BQU8sWUFBWSxFQUFFLENBQUM7QUFDMUIsR0FBRyxTQUFTO0FBQ1osSUFBSSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztBQUNqRCxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsU0FBUyxhQUFhLENBQUMsWUFBWSxFQUFFO0FBQ3JDLEVBQUUsSUFBSSxhQUFhLENBQUM7QUFDcEI7QUFDQSxFQUFFLFFBQVEsb0JBQW9CO0FBQzlCLElBQUksS0FBSyxpQkFBaUIsQ0FBQztBQUMzQixJQUFJLEtBQUssb0JBQW9CLENBQUM7QUFDOUIsSUFBSSxLQUFLLGNBQWM7QUFDdkI7QUFDQSxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUM7QUFDckMsTUFBTSxNQUFNO0FBQ1o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQztBQUMzQyxNQUFNLE1BQU07QUFDWixHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUkscUJBQXFCLEdBQUcsb0JBQW9CLENBQUM7QUFDbkQsRUFBRSxvQkFBb0IsR0FBRyxhQUFhLENBQUM7QUFDdkM7QUFDQSxFQUFFLElBQUk7QUFDTixJQUFJLE9BQU8sWUFBWSxFQUFFLENBQUM7QUFDMUIsR0FBRyxTQUFTO0FBQ1osSUFBSSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztBQUNqRCxHQUFHO0FBQ0gsQ0FBQztBQUNEO0FBQ0EsU0FBUyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUU7QUFDekMsRUFBRSxJQUFJLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDO0FBQ2pELEVBQUUsT0FBTyxZQUFZO0FBQ3JCO0FBQ0EsSUFBSSxJQUFJLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDO0FBQ3JELElBQUksb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7QUFDL0M7QUFDQSxJQUFJLElBQUk7QUFDUixNQUFNLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDN0MsS0FBSyxTQUFTO0FBQ2QsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztBQUNuRCxLQUFLO0FBQ0wsR0FBRyxDQUFDO0FBQ0osQ0FBQztBQUNEO0FBQ0EsU0FBUyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUNyRSxFQUFFLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUMzQyxFQUFFLElBQUksU0FBUyxDQUFDO0FBQ2hCO0FBQ0EsRUFBRSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO0FBQ3ZELElBQUksSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUM5QjtBQUNBLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtBQUNoRCxNQUFNLFNBQVMsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBQ3RDLEtBQUssTUFBTTtBQUNYLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQztBQUM5QixLQUFLO0FBQ0wsR0FBRyxNQUFNO0FBQ1QsSUFBSSxTQUFTLEdBQUcsV0FBVyxDQUFDO0FBQzVCLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxPQUFPLENBQUM7QUFDZDtBQUNBLEVBQUUsUUFBUSxhQUFhO0FBQ3ZCLElBQUksS0FBSyxpQkFBaUI7QUFDMUIsTUFBTSxPQUFPLEdBQUcsMEJBQTBCLENBQUM7QUFDM0MsTUFBTSxNQUFNO0FBQ1o7QUFDQSxJQUFJLEtBQUssb0JBQW9CO0FBQzdCLE1BQU0sT0FBTyxHQUFHLDhCQUE4QixDQUFDO0FBQy9DLE1BQU0sTUFBTTtBQUNaO0FBQ0EsSUFBSSxLQUFLLFlBQVk7QUFDckIsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUM7QUFDdEMsTUFBTSxNQUFNO0FBQ1o7QUFDQSxJQUFJLEtBQUssV0FBVztBQUNwQixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQztBQUNyQyxNQUFNLE1BQU07QUFDWjtBQUNBLElBQUksS0FBSyxjQUFjLENBQUM7QUFDeEIsSUFBSTtBQUNKLE1BQU0sT0FBTyxHQUFHLHVCQUF1QixDQUFDO0FBQ3hDLE1BQU0sTUFBTTtBQUNaLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxjQUFjLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUMzQyxFQUFFLElBQUksT0FBTyxHQUFHO0FBQ2hCLElBQUksRUFBRSxFQUFFLGFBQWEsRUFBRTtBQUN2QixJQUFJLFFBQVEsRUFBRSxRQUFRO0FBQ3RCLElBQUksYUFBYSxFQUFFLGFBQWE7QUFDaEMsSUFBSSxTQUFTLEVBQUUsU0FBUztBQUN4QixJQUFJLGNBQWMsRUFBRSxjQUFjO0FBQ2xDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNqQixHQUFHLENBQUM7QUFDSjtBQUNBLEVBQUUsSUFBSSxTQUFTLEdBQUcsV0FBVyxFQUFFO0FBQy9CO0FBQ0EsSUFBSSxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUNsQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUI7QUFDQSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2xFO0FBQ0EsTUFBTSxJQUFJLHNCQUFzQixFQUFFO0FBQ2xDO0FBQ0EsUUFBUSxpQkFBaUIsRUFBRSxDQUFDO0FBQzVCLE9BQU8sTUFBTTtBQUNiLFFBQVEsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLE9BQU87QUFDUDtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBQ2pFLEtBQUs7QUFDTCxHQUFHLE1BQU07QUFDVCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO0FBQ3ZDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM3QjtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFO0FBQ3ZELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLE1BQU0sbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckMsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLEVBQUUsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUNEO0FBQ0EsU0FBUyx1QkFBdUIsR0FBRztBQUNuQyxDQUFDO0FBQ0Q7QUFDQSxTQUFTLDBCQUEwQixHQUFHO0FBQ3RDO0FBQ0EsRUFBRSxJQUFJLENBQUMsdUJBQXVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtBQUNyRCxJQUFJLHVCQUF1QixHQUFHLElBQUksQ0FBQztBQUNuQyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ25DLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQSxTQUFTLDZCQUE2QixHQUFHO0FBQ3pDLEVBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUNEO0FBQ0EsU0FBUyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLENBQUM7QUFDRDtBQUNBLFNBQVMsZ0NBQWdDLEdBQUc7QUFDNUMsRUFBRSxPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUM7QUFDRDtBQUNBLElBQUkscUJBQXFCLEdBQUcsWUFBWSxDQUFDO0FBQ3pDLElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDO0FBQy9CO0FBQ0EsZ0NBQWdDLFlBQVksQ0FBQztBQUM3QyxxQ0FBcUMsaUJBQWlCLENBQUM7QUFDdkQsK0JBQStCLFdBQVcsQ0FBQztBQUMzQyxrQ0FBa0MsY0FBYyxDQUFDO0FBQ2pELDZCQUE2QixrQkFBa0IsQ0FBQztBQUNoRCx3Q0FBd0Msb0JBQW9CLENBQUM7QUFDN0Qsa0NBQWtDLHVCQUF1QixDQUFDO0FBQzFELHFDQUFxQywwQkFBMEIsQ0FBQztBQUNoRSwyQ0FBMkMsZ0NBQWdDLENBQUM7QUFDNUUsd0NBQXdDLDZCQUE2QixDQUFDO0FBQ3RFLHdCQUF3QixhQUFhLENBQUM7QUFDdEMsa0NBQWtDLHVCQUF1QixDQUFDO0FBQzFELGdDQUFnQyxxQkFBcUIsQ0FBQztBQUN0RCxtQ0FBbUMsd0JBQXdCLENBQUM7QUFDNUQsb0NBQW9DLHlCQUF5QixDQUFDO0FBQzlELGdDQUFnQyxxQkFBcUIsQ0FBQztBQUN0RCxHQUFHLEdBQUcsQ0FBQztBQUNQOzs7O0FDcG9CQTtBQUNBLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFO0FBQzNDLEVBQUUsaUJBQWlCRCx3QkFBNEMsQ0FBQztBQUNoRSxDQUFDLE1BQU07QUFDUCxFQUFFLGlCQUFpQkMscUJBQXlDLENBQUM7QUFDN0Q7Ozs7Ozs7Ozs7O0FDS3VGLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsd0RBQXdELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdIQUFnSCxDQUFDLEdBQUcsQ0FBQ0MsS0FBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDOWUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDN0QsSUFBSSxFQUFFLENBQUMsRUFBRSxXQUFXLEdBQUcsT0FBTyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sTUFBTSxDQUFDLFFBQVEsRUFBRSxXQUFXLEdBQUcsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyw2VkFBNlYsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjO0FBQ25nQixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3WCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDdGIsc0lBQXNJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN2UsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsNk9BQTZPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM2IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3paLHlqQ0FBeWpDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUMzbUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQywwRUFBMEUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztBQUNyZCxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9MLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUNsZSxJQUFJLEVBQUUsQ0FBQ0EsS0FBRSxDQUFDLGtEQUFrRCxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztBQUN0TixHQUFHLFVBQVUsR0FBRyxPQUFPLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUMsQ0FBQztBQUMvZCxJQUFJLEVBQUUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsT0FBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwVSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDeGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2hVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLE9BQU0sRUFBRSxDQUFDLENBQUM7QUFDbFUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxPQUFNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLGNBQWMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO0FBQ3RmLE9BQU8sQ0FBQyxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsT0FBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2piLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhO0FBQ3JnQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsR0FBRyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyYSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPQyxZQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDL2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUMsQ0FBQztBQUNuYSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUMxVixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUNELEtBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxZQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQ3pZLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBT0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ25aLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsb0NBQW9DLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDNVosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTSw0QkFBNEIsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxPQUFNLG9DQUFvQyxDQUFDLFFBQVEsT0FBTSw4QkFBOEIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsOEJBQThCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsR0FBRyxDQUFDLEVBQUUsZUFBZSxHQUFHLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7QUFDN1UsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxXQUFXLEdBQUcsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQztBQUN2SCxJQUFJLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDNWYsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ25hLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQ0EsWUFBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdlQsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuVyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLGdCQUFnQixDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssa0JBQWtCLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQzdiLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFFLENBQUM7QUFDbmEsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUN0RixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLEtBQUssZUFBZSxDQUFDLEtBQUssc0JBQXNCLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxvQkFBb0IsQ0FBQyxLQUFLLGFBQWEsQ0FBQyxLQUFLLG9CQUFvQixDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssa0JBQWtCLENBQUMsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVO0FBQ25mLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUMsQ0FBQztBQUMxZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsS0FBSyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xmLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO0FBQzdmLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztBQUNqZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyw0UEFBNFAsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMWIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsS0FBSyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUMsS0FBSyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxLQUFLLG1CQUFtQixDQUFDLEtBQUssb0JBQW9CLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztBQUN2YSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaE4sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BXLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQ0MsU0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFJLENBQUM7QUFDL1UsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzVRLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsQ0FBQztBQUN6WixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsU0FBQyxDQUFDLHlCQUF5QixDQUFDQSxTQUFDLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzNILFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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QixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxXQUFXO0FBQzFmLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDQSxTQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqWSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQzVmLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2VyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNWUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDQSxTQUFDLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUNyYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BSLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDOVQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUM7QUFDcFksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQ0QsWUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsV0FBVztBQUN6ZixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNsUixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUNBLFlBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVc7QUFDdGYsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVE7QUFDaGdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO0FBQzFmLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pTLElBQUksRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxVQUFVO0FBQ3ZmLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUNBLFlBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDQSxZQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDcGYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGNBQWMsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN1csU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsT0FBTyxJQUFJLENBQUMsQ0FBQztBQUNuZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxPQUFPLElBQUksQ0FBQyxDQUFDO0FBQ3hZLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUMsUUFBTyxDQUFDLEVBQUUsQ0FBQyxHQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuZixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztBQUM1YixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwVSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvWixTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3phLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxjQUFjLEdBQUcsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FB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QUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3YSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDL08sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUN0UyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ3hXLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3ZmLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssU0FBUyxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQUssV0FBVyxDQUFDLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQzNpQixFQUFFLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLEtBQUssS0FBSyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLG1CQUFtQixDQUFDLEtBQUssb0JBQW9CLENBQUMsS0FBSyxlQUFlLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtBQUNuZixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO0FBQ3ZmLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxFQUFFLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcmYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFFLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUNwZixDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2ZixLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZTtBQUNsZ0IsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDN2EsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOWIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sVUFBVSxHQUFHLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7QUFDN2MsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxLQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7QUFDamUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDdmIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUMvUCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQywyQ0FBMkMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMseUNBQXlDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ2xmLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBT0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLHlDQUF5QyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUNoZixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUNDLFNBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUNBLFNBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDQSxTQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDMWQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQztBQUNoYixTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUNELFlBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFJLENBQUM7QUFDamMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFDLENBQUM7QUFDN1ksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsQ0FBQztBQUNoYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQ3haLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7QUFDdmYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDO0FBQ3JCLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVE7QUFDN2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJO0FBQ3hmLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUlELEtBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO0FBQ2hjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUNDLFlBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzlJLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUTtBQUN6ZixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyTixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxD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LGlCQUFpQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUMvVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNsZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZLLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JmLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7QUFDdGdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3BmLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hmLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUk7QUFDcmYsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJO0FBQ3RmLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTO0FBQ3pmLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcmYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLENBQUM7QUFDcmYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzFkLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pkLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM2UsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztBQUM5UyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsS0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3pmLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2pZLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2pmLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDelksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWTtBQUMxZ0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDaFIsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdFYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaFEsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzdmLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3hlLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuUixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ3BjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsQ0FBQztBQUNwZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNaLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ2pLLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7QUFDbGEsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUk7QUFDM2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7QUFDemYsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztBQUNyZixLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPO0FBQ3JmLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTztBQUM1ZixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDalosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0TCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSwrQkFBK0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoZixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3ZTLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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Q0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQjtBQUMvZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVMLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFDLENBQUM7QUFDNWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsMEJBQTBCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNqZ0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzNmLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdlYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQy9OLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUN6ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzFRLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7QUFDdGYsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3JnQixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN0VyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDMVQsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sUUFBUSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU87QUFDbGYsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUkseUJBQXlCLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsZ0NBQWdDLEdBQUcsQ0FBQyxFQUFFLDBCQUEwQixHQUFHLENBQUMsRUFBRSxXQUFXLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3BmLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLHlCQUF5QixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxFQUFFLDBCQUEwQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU87QUFDdGYsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSSxDQUFDLENBQUM7QUFDbmEsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7QUFDamdCLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsS0FBSyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhO0FBQ3pnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsS0FBSyxRQUFRLENBQUMsTUFBTSxRQUFRLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU87QUFDN2YsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdmYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxLQUFLLE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ0EsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcmYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxHQUFHLENBQUMsRUFBRSwwQkFBMEIsR0FBRyxDQUFDLEVBQUUsV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdmYsTUFBTSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcmYsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN0ZixDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RmLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVk7QUFDaGdCLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSztBQUN0ZixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLCtCQUErQixHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZkLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsT0FBTyxJQUFJLENBQUMsQ0FBQztBQUMzYSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQUssQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RiLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDNWMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbmYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3pnQixDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdmLE9BQU8sS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztBQUN2ZixDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQztBQUMxSCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEdBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hoQixDQUFDLEVBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3ZTLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUk7QUFDbmYsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzVILFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUM7QUFDdFosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUM7QUFDN04sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0FBQzlmLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFPLENBQUMsQ0FBQztBQUMzWixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuZixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVM7QUFDMWYsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQzFlLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDL2UsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDclQsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztBQUM5ZSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2ZixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBQyxDQUFDLENBQUM7QUFDL0csU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZO0FBQ2pnQixDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7QUFDdGYsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQzdVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO0FBQzlZLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQztBQUNoVyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDO0FBQ3pjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDMWYsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksRUFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzdmLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsdUxBQXVMLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JmLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHdCQUF3QixFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzliLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQztBQUNqYixTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJO0FBQ25mLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztBQUMzVCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxJQUFJO0FBQ3JmLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4ZixNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUk7QUFDM2dCLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7QUFDdmYsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFVLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzFmLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDdGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDcmYsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDO0FBQ3ZYLFNBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUM7QUFDamUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPO0FBQ3hmLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQzdJLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQztBQUM1ZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlaLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUk7QUFDL2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVE7QUFDcGYsT0FBTyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQy9mLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNwZixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVE7QUFDeGYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDdmYsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyZixDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcmYsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3ZlLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEosU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3pmLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pELFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRO0FBQy9mLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BjLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZMLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFJLENBQUM7QUFDbGYsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNLLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyx5Q0FBeUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtBQUNwZixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUM7QUFDclgsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBQyxDQUFDO0FBQ3hkLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDblUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2pPLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL2MsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDamEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENB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RUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxXQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2ZCxVQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxD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UyxVQUFVLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxRQUFRLE1BQU07QUFDZCxTQUFTLFdBQVcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0FBQzdDLFFBQVE7QUFDUixNQUFNLE1BQU07QUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU07QUFDTixJQUFJLEVBQUVBLGdCQUFjLENBQUMsQ0FBQztBQUN0QixFQUFFLEVBQUUsMENBQTBDLENBQUMsQ0FBQztBQUNoRDtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwOEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDanBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMXVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMXdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwc0MsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLG9GQUFvRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNuSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDN0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BFLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxzRkFBc0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDckksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx5RkFBeUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDeEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pqQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4cEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwMkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM5akIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZGQUE2RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsOEZBQThGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzdJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvVCxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0bkIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLCtGQUErRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM5SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzl4QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4cEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMXVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1MUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbE0sQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQy9zQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4ekMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xuQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0dBQXdHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoZ0ksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6ekIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHdHQUF3RyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN2SixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcFAsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbnJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h5QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0dBQXdHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbi9ILENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0aUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZHQUE2RyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwbUosQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOW9DLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzl2QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMTFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNlLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3R0FBd0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3htSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoc0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdGlCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3R0FBd0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNtSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1ckMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8s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O0FBQ3pJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdm5CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hzQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0ekMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDelUsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxvR0FBb0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDbkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxTCxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JsQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsK0ZBQStGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzlJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsbUdBQW1HLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2xKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0UyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1MEMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNubEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeHhDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyMkIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNHQUFzRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbFQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4bUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHlGQUF5RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN4SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0TSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbFMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNycEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOXpDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZLLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxnR0FBZ0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDL0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDemdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0dUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeHlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZsQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMEZBQTBGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3pJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0ksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRGQUE0RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeDRCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9vQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3B1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoMkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMzVCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx5RkFBeUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDeEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdmtDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdHVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbHhDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRGQUE0RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8s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QUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ25sSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsc0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbHpDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcmIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHFGQUFxRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNwSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzF2QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoNEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHdHQUF3RyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN2SixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxD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LENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxrR0FBa0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDakosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeFMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNW9DLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw0RkFBNEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDM0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNKLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xaLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxxR0FBcUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDcEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVWLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxWixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsa0dBQWtHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2pKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN1QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDBGQUEwRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN6SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzbEksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2ekMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLG1HQUFtRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNsSixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsRixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNEZBQTRGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzNJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFFLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw2RkFBNkYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDNUksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3g3QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvb0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwdUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOTFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDdCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywwRkFBMEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyb0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDanBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNweEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakgsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNudEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNXpDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFaLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxtR0FBbUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDbEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxF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RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkosQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEYsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3h2QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxF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RSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVPLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3RkFBd0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9rQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNqcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3R1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h4QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqSCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsZ0dBQWdHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQy9JLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDO0FBQ0EsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGtHQUFrRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNqSixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvakksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdHNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzV6QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN04sQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h4QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3IyQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNkZBQTZGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzVJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM29CLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxpR0FBaUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDaEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlULENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFD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RSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbDZCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxdUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNXlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNXNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzkwQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbnNCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxrR0FBa0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDakosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMW9CO0FBQ0EsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzkyQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxcEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbHFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNXlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbGlDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw4RkFBOEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDN0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2h5QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxWixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsbUdBQW1HLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2xKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1c0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdHlDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcmIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhGQUE4RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RYLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzF1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5eUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbGlDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx1RkFBdUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzM4RCxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNycEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcHJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2h3QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbDFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3YyQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMscUdBQXFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3BKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDO0FBQ0EsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZGQUE2RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3RGLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw2RkFBNkYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDNUksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcGlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3BzQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5eEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2ppQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxpR0FBaUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDaEosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyw4RkFBOEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDN0ksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsbEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOXJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzl6QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2SyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdm5CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3hzQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5d0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RGLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxrR0FBa0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDakosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEYsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDRGQUE0RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMzSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0OEQsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMXBDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNod0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaHdDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzkxQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0MkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdDJDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3QyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2x6QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsa0dBQWtHLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2pKLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNsSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoc0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUs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LFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFP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UUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywwRkFBMEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1B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Q0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbnVDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3AyQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxD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QUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywwRkFBMEYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDekksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywyRkFBMkYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDMUksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDLzFCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7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UUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9nQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckgsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JvQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdlgsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdHQUFnRyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUwsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDJGQUEyRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMxSSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9DLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdlgsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHNGQUFzRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUNySSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xELENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNzJCLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx5RkFBeUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDeEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFR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LENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdjLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3R0FBd0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHlHQUF5RyxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN4SixHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEYsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLHlGQUF5RixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUN4SSxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMEZBQTBGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3pJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZYLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywyRkFBMkYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDMUksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4YixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkZBQTJGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNkZBQTZGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzVJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdOLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxzR0FBc0csRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDckosR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsd0ZBQXdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3ZJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN6RyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMseUZBQXlGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3hJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNEZBQTRGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzNJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsc0ZBQXNGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ3JJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzdMLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyx3RkFBd0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDdkksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxF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QUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xMLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdi9CLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxnRkFBZ0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDL0gsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxD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QUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2p1QyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1MEMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM3akMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDhFQUE4RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM3SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlFLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxpRkFBaUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDaEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pILENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywrRUFBK0UsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDOUgsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyRCxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0RixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsb0ZBQW9GLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ25JLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsZ0ZBQWdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQy9ILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2SixDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsK0VBQStFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzlILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsa0ZBQWtGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2pJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNuRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsbUZBQW1GLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQ2xJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbE0sQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZFQUE2RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdGQUFnRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO0FBQzVCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1SSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNEZBQTRGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzNJLEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywrRUFBK0UsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDOUgsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQywrRUFBK0UsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDOUgsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxnRkFBZ0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDL0gsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFD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QUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcFcsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLDZFQUE2RSxFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM1SCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDL0csQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1bUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUN0QjtBQUNBLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLGdCQUFnQixDQUFDLGdGQUFnRixFQUFFLFVBQVUsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUMvSCxHQUFHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2hULENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxxRkFBcUYsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDcEksR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztBQUM1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2SyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsZ0ZBQWdGLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQy9ILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNoVCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsMkVBQTJFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzFILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6ZCxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsOEVBQThFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzdILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVB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S0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2hULENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDdEI7QUFDQSxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxnQkFBZ0IsQ0FBQyxnRkFBZ0YsRUFBRSxVQUFVLE1BQU0sRUFBRSxPQUFPLEVBQUU7QUFDL0gsR0FBRyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM1QsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztB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QyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFB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QU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsNkVBQTZFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzVILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ3RCO0FBQ0EsRUFBRSxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsZ0JBQWdCLENBQUMsOEVBQThFLEVBQUUsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzdILEdBQUcsTUFBTSxHQUFHLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxHQUFHLENB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QUFDLElBQUksdUJBQXVCLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxHQUFHLDRCQUE0QixHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsNEJBQTRCLEdBQUcsdUJBQXVCLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDekcsQ0FBQyw0QkFBNEIsR0FBRyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFDL0QsQ0FBQyxJQUFJLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsOEQsQ0FBQyxJQUFJLHFCQUFxQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFB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OEJBQThCO0FBQ2hFLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCO0FBQzVELEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CO0FBQzFDLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCO0FBQ3BELEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCO0FBQ3RDLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCO0FBQ3RDLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUseUJBQXlCLEVBQUUseUJBQXlCO0FBQ3RELEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCO0FBQzFELEVBQUUsa0NBQWtDLEVBQUUsa0NBQWtDO0FBQ3hFLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCO0FBQ2xFLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO0FBQzlDLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCO0FBQ3hDLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO0FBQzlDLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCO0FBQ2hELEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CO0FBQzFDLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCO0FBQ2hELEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUscUJBQXFCLEVBQUUscUJBQXFCO0FBQzlDLEVBQUUsOEJBQThCLEVBQUUsOEJBQThCO0FBQ2hFLEVBQUUsaUNBQWlDLEVBQUUsaUNBQWlDO0FBQ3RFLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCO0FBQ3hELEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCO0FBQzVELEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCO0FBQzFELEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCO0FBQ2xELEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCO0FBQ2hELEVBQUUsMEJBQTBCLEVBQUUs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QUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQjtBQUNoRCxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtBQUNwQyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtBQUNwQyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QjtBQUNwRCxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QjtBQUNsRCxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQjtBQUN0QyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQjtBQUM1QyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QjtBQUN0RCxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQjtBQUN4QyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQjtBQUMxQyxFQUFFLG1DQUFtQyxFQUFFLG1DQUFtQztBQUMxRSxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QjtBQUM1RCxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQjtBQUM5QyxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QjtBQUM1RCxFQUFFLG9C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R0FBRyxJQUFJLEdBQUcsQ0FBQztBQUNYLEdBQUcsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLEdBQUcsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLEdBQUcsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUNsRSxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUNuQixHQUFHLElBQUksR0FBRyxHQUFHLGVBQWUsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDM0QsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNUO0FBQ0EsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ2hDLEtBQUssR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEssS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztBQUN2QyxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxD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SSxFQUFFLE1BQU0sRUFBRTtBQUN2RSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDZixHQUFHLElBQUksSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNwQyxHQUFHLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7QUFDOUIsR0FBRyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ3pCLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xFLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6QixHQUFHLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0I7QUFDQSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxRQUFRLEVBQUU7QUFDM0MsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUIsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ2QsSUFBSSxNQUFNO0FBQ1YsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtB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Q0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUMzRSxLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEQsS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqRCxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUMzRSxLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEQsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0FBQzNHLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQzNFLEtBQUssTUFBTSxHQUFHLE1BQU0s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QU0sQ0FBQyxDQUFDO0FBQ3hELEtBQUssSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BELEtBQUssT0FBTyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQ2xELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ3pFLEtBQUssTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ25HLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ3pFLEtBQUssTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENB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QUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2pDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2pDLEtBQUssSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLEtBQUssSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwRSxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUNyQyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUNyQyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUNwQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ2pDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNwRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFB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LE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLEtBQUssT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUNsRixLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNwQixLQUFLLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzlFLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDakMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDcEMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7QUFDckMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7QUFDckMsS0FBSyxPQUFPLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDdkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ2xGLEtBQUssS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDO0FBQ3BCLEtBQUssTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUs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LENBQUM7QUFDbkYsUUFBUSxNQUFNLElBQUksYUFBYSxFQUFFO0FBQ2pDLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdELFFBQVE7QUFDUjtBQUNBLE9BQU8sYUFBYSxHQUFHLElBQUksQ0FBQztBQUM1QjtBQUNBLE9BQU8sSUFBSSxTQUFTLEdBQUcsSUFBSSxFQUFFO0FBQzdCLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07QUFDckMsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9CLFFBQVEsTUFBTSxJQUFJLFNBQVMsR0FBRyxLQUFLLEVBQUU7QUFDckMsU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTTtBQUNyQyxTQUFTLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsR0FBRyxJQUFJLEVBQUUsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN0RSxRQUFRLE1BQU0sSUFBSSxTQUFTLEdBQUcsT0FBTyxFQUFFO0FBQ3ZDLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07QUFDckMsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxTQUFTLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3RHLFFBQVEsTUFBTSxJQUFJLFNBQVMsR0FBRyxRQUFRLEVBQUU7QUFDeEMsU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTTtBQUNyQyxTQUFTLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJ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Q2hDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEI7QUFDQSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtBQUN4QixLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbEIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtBQUN4QixLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsQixLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckIsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbEIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2QyxJQUFJO0FBQ0osRUFBRTtBQUNGLENBQUMsU0FBUyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7QUFDcEMsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7QUFDM0IsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNuQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtBQUN0QixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbEIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxT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QUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzFCLEdBQUcsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDNUIsR0FBRyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM3QixHQUFHLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDO0FBQzlCLEdBQUcsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDL0IsR0FBRyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUMvQixHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQzFCLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDL0IsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM5QixHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQ3pCLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDeEIsR0FBRyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM3QixHQUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzFCLEdBQUcsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDOUIsR0FBRyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUM1QixHQUFHLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQzNCLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDM0IsR0FBRyxZQUFZLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNoQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQzFCLEdBQUcsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7QUFDaEMsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksV0FBVyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsTUFBTSxFQUFFO0FBQzFELEdBQUcsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBQzVCO0FBQ0EsR0FBRyxLQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsRUFBRTtBQUM5QixLQUFLLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUN4QyxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDN0MsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRztBQUNsQyxLQUFLLEdBQUcsRUFBRTtBQUNWLE9BQU8sUUFBUSxFQUFFLENBQUM7QUFDbEIsT0FBTyxNQUFNLEVBQUUsS0FBSztBQUNwQixNQUFNO0FBQ04sS0FBSyxHQUFHLEVBQUU7QUFDVixPQUFPLFFBQVEsRUFBRSxDQUFDO0FBQ2xCLE9BQU8sTUFBTSxFQUFFLEtBQUs7QUFDcEIsTUFBTTtBQUNOLEtBQUssR0FBRyxFQUFFO0FBQ1YsT0FBTyxRQUFRLEVBQUUsQ0FBQztBQUNsQixPQUFPLE1BQU0sRUFBRSxLQUFLO0FBQ3BCLE1BQU07QUFDTixLQUFLLEdBQUcsRUFBRTtBQUNWLE9BQU8sUUFBUSxFQUFFLENBQUM7QUFDbEIsT0FBTyxNQUFNLEVBQUUsS0FBSztBQUNwQixNQUFNO0FBQ04sS0FBSyxJQUFJLEVBQUU7QUFDWCxPQUFPLFFBQVEsRUFBRSxDQUFDO0FBQ2xCLE9BQU8sTUFBTSxFQUFFLE1BQU07QUFDckIsTUFBTTtBQUNOLEtBQUssR0FBRyxFQUFFO0FBQ1YsT0FBTyxRQUFRLEVBQUUsQ0FBQztBQUNsQixPQUFPLE1BQU0sRUFBRSxLQUFLO0FBQ3BCLE1BQU07QUFDTixLQUFLLEdBQUcsRUFBRTtBQUNWLE9BQU8sUUFBUSxFQUFFLENBQUM7QUFDbEIsT0FBTyxNQUFNLEVBQUUsS0FBSztBQUNwQixNQUFNO0FBQ04sS0FBSyxHQUFHLEVBQUU7QUFDVixPQUFPLFFBQVEsRUFBRSxDQUFDO0FBQ2xCLE9BQU8sTUFBTSxFQUFFLEtBQUs7QUFDcEIsTUFBTTtBQUNOLEtBQUssR0FBRyxFQUFFO0FBQ1YsT0FBTyxRQUFRLEVBQUUsQ0FBQztBQUNsQixPQUFPLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztBQUN0QixNQUFNO0FBQ04sS0FBSyxPQUFPLEVBQUU7QUFDZCxPQUFPLFFBQVEsRUFBRSxDQUFDO0FBQ2xCLE9BQU8sTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO0FBQzFCLE1BQU07QUFDTixLQUFLLE1BQU0sRUFBRTtBQUNiLE9BQU8sUUFBUSxFQUFFLENBQUM7QUFDbEIsT0FBTyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7QUFDekIsTUFBTTtBQUNOLEtBQUssT0FBTyxFQUFFO0FBQ2QsT0FBTyxRQUFRLEVBQUUsQ0FBQztBQUNsQixPQUFPLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztBQUMxQixNQUFNO0FBQ04sS0FBSyxHQUFHLEVBQUU7QUFDVixPQUFPLFFBQVEsRUFBRSxDQUFDO0FBQ2xCLE9BQU8sTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDOUIsTUFBTTtBQUNOLEtBQUssS0FBSyxFQUFFO0FBQ1osT0FBTyxRQUFRLEVBQUUsQ0FBQztBQUNsQixPQUFPLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0FBQ3BDLE1BQU07QUFDTixLQUFLLElBQUksRUFBRTtBQUNYLE9BQU8sUUFBUSxFQUFFLENBQUM7QUFDbEIsT0FBTyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDdkIsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRTtBQUM5QixLQUFLLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUN4QyxPQUFPLElBQUksRUFBRSxVQUFVLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDNUMsU0FBUyxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxFQUFFLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUMxQyxTQUFTLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDdEUsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7QUFDckUsU0FBUyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3hFLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUM5QyxPQUFPLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDMUMsT0FBTyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDdEMsT0FBTyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDcEMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUU7QUFDekQsU0FBUyxLQUFLLEVBQUUsUUFBUTtBQUN4QixRQUFRLENBQUMsQ0FBQztBQUNWLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFO0FBQ3ZELFNBQVMsS0FBSyxFQUFFLE1BQU07QUFDdEIsUUFBUSxDQUFDLENBQUM7QUFDVixNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqQyxLQUFLLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqQyxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1g7QUFDQSxLQUFLLElBQUksR0FBRyxLQUFLLEdBQUcsRUFBRTtBQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDYixNQUFNLE1BQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUM7QUFDM0IsTUFBTSxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtBQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUMvQixNQUFNLE1BQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO0FBQy9CLE1BQU07QUFDTjtBQUNBLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQjtBQUNBLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ2hCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNoQixNQUFNO0FBQ047QUFDQSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3pCO0FBQ0EsS0FBSyxJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7QUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2IsTUFBTSxNQUFNLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRTtBQUMxQixPQUFPLENBQUMsR0FBRyxLQUFLLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLE1BQU0sTUFBTTtBQUNaLE9BQU8sQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNsQyxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLElBQUksQ0FBQztBQUNkLEtBQUssSUFBSSxJQUFJLENBQUM7QUFDZCxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ2QsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQixLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEM7QUFDQSxLQUFLLElBQUksS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUNuQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxNQUFNLENBQUM7QUFDUDtBQUNBLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFO0FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxNQUFNO0FBQ1osT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNwQixPQUFPLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsT0FBTyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLE9BQU8sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QjtBQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ3BCLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDekIsUUFBUSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDakMsUUFBUSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDakMsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDbEIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hCLFFBQVEsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDekIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hCLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25ELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkQsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BDLEtBQUssT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNqRCxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsU0FBUyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3RDLEtBQUssT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRixJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3hDLEtBQUssSUFBSSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsS0FBSyxJQUFJLFFBQVEsRUFBRTtBQUNuQixPQUFPLE9BQU8sUUFBUSxDQUFDO0FBQ3ZCLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUFDM0MsS0FBSyxJQUFJLHFCQUFxQixDQUFDO0FBQy9CO0FBQ0EsS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLFNBQVMsRUFBRTtBQUNwQyxPQUFPLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUM5QyxTQUFTLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN4QyxTQUFTLElBQUksUUFBUSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4RDtBQUNBLFNBQVMsSUFBSSxRQUFRLEdBQUcsc0JBQXNCLEVBQUU7QUFDaEQsV0FBVyxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUFDN0MsV0FBVyxxQkFBcUIsR0FBRyxPQUFPLENBQUM7QUFDM0MsVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8scUJBQXFCLENBQUM7QUFDbEMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLFVBQVUsT0FBTyxFQUFFO0FBQzVDLEtBQUssT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDdEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUN0RSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ3RFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDbEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNsRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ2xELEtBQUssT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDO0FBQ2pCLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUNsQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDbEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUNsRSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0QixLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLEVBQUUsQ0FBQztBQUNaLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksRUFBRSxDQUFDO0FBQ1osS0FBSyxJQUFJLEdBQUcsQ0FBQztBQUNiLEtBQUssSUFBSSxHQUFHLENBQUM7QUFDYjtBQUNBLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQ2xCLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDckIsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM5QixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRTtBQUNsQixPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLE1BQU0sTUFBTTtBQUNaLE9BQU8sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQixNQUFNO0FBQ047QUFDQSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNyQixLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckI7QUFDQSxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDakMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakM7QUFDQSxPQUFPLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtBQUNuQixTQUFTLEVBQUUsRUFBRSxDQUFDO0FBQ2QsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDbkIsU0FBUyxFQUFFLEVBQUUsQ0FBQztBQUNkLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtBQUN2QixTQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDdkMsUUFBUSxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDOUIsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLFFBQVEsTUFBTSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQzlCLFNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakQsUUFBUSxNQUFNO0FBQ2QsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLFFBQVE7QUFDUjtBQUNBLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDMUIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLEdBQUcsQ0FBQztBQUNoQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xDLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QixLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMvRCxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDbkMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNkO0FBQ0EsS0FBSyxRQUFRLEVBQUU7QUFDZixPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLEtBQUssQ0FBQztBQUNiLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUIsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEMsS0FBSyxJQUFJLElBQUksQ0FBQztBQUNkLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzNCLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDbkIsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUN2QyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNaLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNuQyxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzQixLQUFLLElBQUksRUFBRSxHQUFHLEdB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QUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLEtBQUssT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUNoRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQy9DLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQzVFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUM1RSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDNUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckMsS0FBSyxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUN4QyxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDO0FBQ2pCLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUNsQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDbEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUNsRSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUN0QixLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNYLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQztBQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNyQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNyQixLQUFLLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdCLEtBQUssSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0IsS0FBSyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQztBQUNyRCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQztBQUNyRCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQztBQUNyRCxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDakIsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO0FBQ2QsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDO0FBQ2xCLEtBQUssT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDWixLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ1gsS0FBSyxJQUFJLENBQUMsQ0FB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LENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkIsTUFBTSxNQUFNLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFO0FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0IsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZjtBQUNBLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxVQUFVLEtBQUssRUFBRTtBQUN4QyxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JGLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsRUFBRTtBQUN0QyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQy9FLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLElBQUksRUFBRTtBQUN0QyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzVFLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLElBQUksRUFBRTtBQUN6RCxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLElBQUksRUFBRTtBQUN0QyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLElBQUksRUFBRTtBQUN2QyxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxJQUFJLEVBQUU7QUFDdEMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxJQUFJLEVBQUU7QUFDdEMsS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdB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SyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDNUIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDO0FBQy9CLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDNUIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7QUFDM0IsR0FBRyxLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUMzQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDMUIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzNCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxXQUFXLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRTtBQUNsQyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7QUFDeEIsR0FBRyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUM5QixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7QUFDakMsR0FBRyxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRTtBQUM1QixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsUUFBUSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUM7QUFDcEMsR0FBRyxRQUFRLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRTtBQUNoQyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsU0FBUyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDL0IsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFlBQVksRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFO0FBQ25DLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFlBQVksRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ3JDLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxlQUFlLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtBQUN6QyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztBQUN2QixHQUFHLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzFCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDO0FBQzdDLEdBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDeEIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUU7QUFDN0IsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLElBQUksQ0FBQztBQUNMLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLElBQUksQ0FBQztBQUNMLEdBQUcsU0FBUyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLElBQUksQ0FBQztBQUNMLEdBQUcsWUFBWSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUU7QUFDbkMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUU7QUFDaEMsS0FBSyxNQUFNLEVBQUUsTUFBTTtBQUNuQixLQUFLLE9BQU8sRUFBRSxPQUFPO0FBQ3JCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxJQUFJLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUMxQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLEtBQUssTUFBTSxFQUFFLE1BQU07QUFDbkIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzNCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsS0FBSyxNQUFNLEVBQUUsTUFBTTtBQUNuQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ2pDLEdBQUcsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDMUMsR0FBRyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEMsR0FBRyxVQUFVLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbkMsR0FBRyxTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDakMsR0FBRyxVQUFVLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDbEMsR0FBRyxVQUFVLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDbEMsR0FBRyxRQUFRLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFDNUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDbEMsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDbEMsR0FBRyxVQUFVLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDMUMsR0FBRyxRQUFRLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDeEMsR0FBRyxPQUFPLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRTtBQUMvQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLEtBQUssS0FBSyxFQUFFLENBQUM7QUFDYixLQUFLLE1BQU0sRUFBRSxNQUFNO0FBQ25CLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxNQUFNLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUM1QixLQUFLLEtBQUssRUFBRSxFQUFFO0FBQ2QsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzFCLEtBQUssS0FBSyxFQUFFLEVBQUU7QUFDZCxJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztBQUM5QixHQUFHLFFBQVEsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFO0FBQy9CLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsS0FBSyxLQUFLLEVBQUUsRUFBRTtBQUNkLEtBQUssZ0JBQWdCLEVBQUUsSUFBSTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFO0FBQzVCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUNiLElBQUksQ0FBQztBQUNMLEdBQUcsV0FBVyxFQUFFLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDNUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLEtBQUssRUFBRSxDQUFDO0FBQ2IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQztBQUNqQyxHQUFHLEtBQUssRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFO0FBQ2hDLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQztBQUNqQyxHQUFHLFNBQVMsRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDO0FBQ3ZDLEdBQUcsU0FBUyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUM7QUFDdkMsR0FBRyxRQUFRLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRTtBQUN0QyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDO0FBQ3JDLEdBQUcsU0FBUyxFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDO0FBQzNCLEdBQUcsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDO0FBQ25DLEdBQUcsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLE1BQU0sRUFBRSxNQUFNO0FBQ25CLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxJQUFJLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQztBQUM3QixHQUFHLElBQUksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDO0FBQzdCLEdBQUcsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUM7QUFDakMsR0FBRyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQztBQUMvQixHQUFHLElBQUksRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFO0FBQzlCLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFO0FBQ2hDLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRTtBQUNsQyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxhQUFhLENBQUMsU0FBUyxFQUFFO0FBQ3RDLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQztBQUNuQyxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFO0FBQ3BDLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRTtBQUNoQyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFO0FBQ2xDLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtBQUNwQyxLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLEtBQUssTUFBTSxFQUFFLE1BQU07QUFDbkIsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFO0FBQ2hDLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsS0FBSyxNQUFNLEVBQUUsTUFBTTtBQUNuQixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLElBQUksQ0FBQztBQUNMLEdBQUcsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLE1BQU0sRUFBRSxNQUFNO0FBQ25CLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxHQUFHLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRTtBQUM1QixLQUFLLE1BQU0sRUFBRSxNQUFNO0FBQ25CLEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxJQUFJLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRTtBQUM5QixLQUFLLE1BQU0sRUFBRSxNQUFNO0FBQ25CLElBQUksQ0FBQztBQUNMLEdBQUcsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUU7QUFDbEMsS0FBSyxNQUFNLEVBQUUsTUFBTTtBQUNuQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUU7QUFDaEQsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUU7QUFDOUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7QUFDaEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDdEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7QUFDNUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7QUFDNUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7QUFDMUMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7QUFDcEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7QUFDeEMsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixJQUFJLENBQUM7QUFDTCxHQUFHLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUU7QUFD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R0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3REO0FBQ0EsT0FBTyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQzFCLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM1RCxTQUFTLE9BQU87QUFDaEIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQzNFLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzdCLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM1RCxTQUFTLE9BQU87QUFDaEIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEIsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0QsU0FBUyxJQUFJLE9BQU8sR0FBRyxJQUFJLENB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QUUsTUFBTTtBQUNmLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLElBQUksRUFBRSxNQUFNO0FBQ2YsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxJQUFJLEVBQUUsTUFBTTtBQUNmLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLEdBQUcsRUFBRSxNQUFNO0FBQ2QsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxJQUFJLEVBQUUsTUFBTTtBQUNmLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxJQUFJLEVBQUUsTUFBTTtBQUNmLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxLQUFLLEVBQUUsTUFBTTtBQUNoQixHQUFHLElBQUksRUFBRSxNQUFNO0FBQ2YsR0FBRyxHQUFHLEVBQUUsTUFBTTtBQUNkLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLElBQUksRUFBRSxNQUFNO0FBQ2YsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsTUFBTSxFQUFFLE1BQU07QUFDakIsR0FBRyxNQUFNLEVBQUUsTUFBTTtBQUNqQixHQUFHLEtBQUssRUFBRSxNQUFNO0FBQ2hCLEdBQUcsSUFBSSxFQUFFLE1BQU07QUFDZixHQUFHLE1BQU0sRUFBRSxNQUFNO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLE1BQU07QUFDaEIsR0FBRyxJ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QUNsQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxLQUFLLEVBQUUsUUFBUTtBQUNsQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxLQUFLLEVBQUUsUUFBUTtBQUNsQixHQUFHLE1BQU0sRUFBRSxRQUFRO0FBQ25CLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE1BQU0sRUFBRSxRQUFRO0FBQ25CLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxLQUFLLEVBQUUsUUFBUTtBQUNsQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxNQUFNLEVBQUUsUUFBUTtBQUNuQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsTUFBTSxFQUFFLFFBQVE7QUFDbkIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLEtBQUssRUFBRSxRQUFRO0FBQ2xCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsS0FBSyxFQUFFLFFBQVE7QUFDbEIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsTUFBTSxF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QUNBLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3JELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUU7QUFDckUsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDakIsS0FBSyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQ3RELEtBQUssSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDakMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkMsS0FBSyxJQUFJLEdBQUcsQ0FBQztBQUNiO0FBQ0EsS0FBSyxLQUFLLElBQUksVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRztBQUMzQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQzdDLFNBQVMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyQyxTQUFTLElBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3JELFNBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFDNUMsU0FBUyxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixTQUFT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cVQsQ0FBQztBQUM1VixHQUFHLFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLDYwQ0FBNjBDLENBQUM7QUFDLzJDLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLElBQUksaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7QUFDbG9ELENBQUMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMvQixHQUFHLFNBQVMsRUFBRSxJQUFJO0FBQ2xCLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNmO0FBQ0EsQ0FBQyxJQUFJLFFBQVEsR0FBRyxTQUFTLE1BQU0sQ0FBQyxVQUFVLEVBQUU7QUFDNUMsR0FBRyxPQUFPLFVBQVUsR0FBRyxFQUFFO0FBQ3pCLEtBQUssT0FBTztBQUNaLE9BQU8sVUFBVSxFQUFFLFVBQVU7QUFDN0IsT0FBTyxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFDM0IsU0FBUyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLFFBQVE7QUFDUixNQUFNLENBQUM7QUFDUCxJQUFJLENBQUM7QUFDTCxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxvRkFBb0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pOLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQywrc0VBQStzRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbDFFLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGlOQUFpTixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeFYsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLENBQUMsaUpBQWlKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6UixDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw4akNBQThqQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDenNDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLDQyQkFBNDJCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqL0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHNNQUFzTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDelUsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLG1zQkFBbXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuMEIsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLENBQUMsbzVCQUFvNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25pQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLG1CQUFtQixLQUFLLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDLENBQUMscVpBQXFaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwaEIsQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHVvQkFBdW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1d0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLG1CQUFtQixLQUFLLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDLENBQUMsMmJBQTJiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1akIsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHdwQkFBd3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzeEIsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGkxQkFBaTFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoOUIsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHlSQUF5UixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN1osQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLG1SQUFtUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeFosQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGlPQUFpTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdFcsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLG1CQUFtQixLQUFLLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDLENBQUMsKy9CQUErL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZvQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLG1CQUFtQixLQUFLLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDLENBQUMsdTNCQUF1M0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3YvQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQywwTUFBME0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdVLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyx5cENBQXlwQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM3hDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLG9RQUFvUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcFksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsOEhBQThILENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0USxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxvM0NBQW8zQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdi9DLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw0TEFBNEwsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVULENBQUMsU0FBUyxDQUFDLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGtKQUFrSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN1IsQ0FBQyxTQUFTLENBQUMsNEJBQTRCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsMllBQTJZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxaEIsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsa3JCQUFrckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzV6QixDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyx3TkFBd04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hXLENBQUMsU0FBUyxDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLG1hQUFtYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL2lCLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxxeUJBQXF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNTVCLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxxWEFBcVgsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JmLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw4cUJBQThxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcHlCLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw2ckRBQTZyRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbnpELENBQUMsU0FBUyxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHlPQUF5TyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDalgsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsd0tBQXdLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyVCxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsOEhBQThILENBQUMsRUFBRSxDQUFDLGtJQUFrSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcFksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGdJQUFnSSxDQUFDLEVBQUUsQ0FBQyxvSUFBb0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BZLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHVLQUF1SyxDQUFDLEVBQUUsQ0FBQywyS0FBMkssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFkLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGdNQUFnTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcFUsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHNJQUFzSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDclAsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHFMQUFxTCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDblQsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLDhjQUE4YyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOWtCLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGtlQUFrZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdm1CLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxnYkFBZ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFpQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyx5Y0FBeWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdrQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxpTEFBaUwsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JULENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxvR0FBb0csQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JPLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw2VUFBNlUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZjLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxpTUFBaU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25VLENBQUMsU0FBUyxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLDJqQ0FBMmpDLENBQUMsRUFBRSxDQUFDLCtqQ0FBK2pDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyd0UsQ0FBQyxTQUFTLENBQUMseUJBQXlCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsdVlBQXVZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuaEIsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsK2hCQUEraEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JxQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw0TkFBNE4sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hWLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLDhPQUE4TyxDQUFDLEVBQUUsQ0FBQyxnUEFBZ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RtQixDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsaVBBQWlQLENBQUMsRUFBRSxDQUFDLG1QQUFtUCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMW1CLENBQUMsU0FBUyxDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHNvREFBc29ELENBQUMsRUFBRSxDQUFDLHdvREFBd29ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2NUcsQ0FBQyxTQUFTLENBQUMsOEJBQThCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsdTJCQUF1MkIsQ0FBQyxFQUFFLENBQUMseTJCQUF5MkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzkxRCxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxrTEFBa0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNULENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw4Z0JBQThnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcm9CLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxnTkFBZ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pVLENBQUMsU0FBUyxDQUFDLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLDhSQUE4UixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDemEsQ0FBQyxTQUFTLENBQUMseUJBQXlCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsMmJBQTJiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2a0IsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsMjhCQUEyOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RsQyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxxSUFBcUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pSLENBQUMsU0FBUyxDQUFDLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHdRQUF3USxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDclosQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsK1dBQStXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0ZixDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyx5WUFBeVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hoQixDQUFDLFNBQVMsQ0FBQywrQkFBK0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQywyWkFBMlosQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RpQixDQUFDLFNBQVMsQ0FBQywyQkFBMkIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxpUkFBaVIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFaLENBQUMsU0FBUyxDQUFDLDhCQUE4QixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLGlpQkFBaWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzcUIsQ0FBQyxTQUFTLENBQUMsOEJBQThCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsMmpCQUEyakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JzQixDQUFDLFNBQVMsQ0FBQywyQkFBMkIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQywyUUFBMlEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xaLENBQUMsU0FBUyxDQUFDLDJCQUEyQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLG9KQUFvSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM1IsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsa01BQWtNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2VSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyx5ZkFBeWYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzluQixDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw0cUJBQTRxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNXpCLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHlrQkFBeWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1dEIsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsNk5BQTZOLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4VyxDQUFDLFNBQVMsQ0FBQyxzQ0FBc0MsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyx5UEFBeVAsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdZLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQywrcXBCQUErcXBCLENBQUMsRUFBRSxDQUFDLHFycEJBQXFycEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzU5eUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsb09BQW9PLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyVyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyx1T0FBdU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdXLENBQUMsU0FBUyxDQUFDLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHFQQUFxUCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM1gsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsd09BQXdPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvVyxDQUFDO0FBQ0QsR0FBRyxTQUFTLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsMklBQTJJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5USxFQUFFO0FBQ0Y7QUFDQSxDQUFDLElBQUksc0JBQXNCLEdBQUcsc0JBQXNCO0FBQ3BELEtBQUssV0FBVyxHQUFHLFdBQVc7QUFDOUIsS0FBSyxxQkFBcUIsR0FBRyxxQkFBcUI7QUFDbEQsS0FBSyxNQUFNLEdBQUcsTUFBTTtBQUNwQixLQUFLLFlBQVksR0FBRyxZQUFZO0FBQ2hDLEtBQUsscUJBQXFCLEdBQUcscUJBQXFCO0FBQ2xELEtBQUssb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDakQ7QUFDQSxDQUFDLFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRTtBQUN6QixHQUFHLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNsQjtBQUNBLEdBQUcsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO0FBQ25ELEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0MsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEMsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxJQUFJLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFDM0I7QUFDQSxDQUFDLFNBQVMsaUJBQWlCLENBQUMsSUFBSSxFQUFFO0FBQ2xDLEdBQUcsSUFBSSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUMzQixHQUFHLElBQUksaUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNyQyxHQUFHLElBQUksWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDaEMsR0FBRyxJQUFJLFVBQVUsQ0FBQztBQUNsQixHQUFHLElBQUksVUFBVSxDQUFDO0FBQ2xCLEdBQUcsSUFBSSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDckMsR0FBRyxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDeEIsR0FBRyxJQUFJLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUNyQyxHQUFHLElBQUksaUJBQWlCLEdBQUc7QUFDM0IsS0FBSyxpQkFBaUIsRUFBRSxTQUFTLGlCQUFpQixDQUFDLEtBQUssRUFBRTtBQUMxRCxPQUFPLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUMxQztBQUNBLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUM3QixTQUFTLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ25FLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLEVBQUU7QUFDMUcsU0FBUyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0FBQ3BGLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDOUQsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2pELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6QyxNQUFNO0FBQ04sS0FBSyx3QkFBd0IsRUFBRSxTQUFTLHdCQUF3QixDQUFDLEtBQUssRUFBRTtBQUN4RSxPQUFPLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDM0M7QUFDQSxPQUFPLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUU7QUFDekMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7QUFDNUIsV0FBVyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0FBQzFHLFVBQVU7QUFDVjtBQUNBLFNBQVMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztBQUN4QyxRQUFRO0FBQ1I7QUFDQSxPQUFPLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEMsTUFBTTtBQUNOLEtBQUssb0JBQW9CLEVBQUUsU0FBUyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7QUFDaEUsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQzFFLE1BQU07QUFDTixLQUFLLHNCQUFzQixFQUFFLFNBQVMsc0JBQXNCLENBQUMsS0FBSyxFQUFFO0FBQ3BFLE9BQU8sTUFBTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUMxRSxNQUFNO0FBQ04sS0FBSyxTQUFTLEVBQUUsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFO0FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPO0FBQy9DLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3BCLE1BQU07QUFDTixJQUFJLENBQUM7QUFDTCxHQUFHLElBQUksZ0JBQWdCLEdBQUc7QUFDMUIsS0FBSyxPQUFPLEVBQUUsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQ3JDLE9BQU8sSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQ3JELFNBQVMsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLE9BQU87QUFDekMsU0FBUyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU87QUFDakUsU0FBUyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsUUFBUSxDQUFDLENBQUM7QUFDVixNQUFNO0FBQ04sS0FBSyxvQkFBb0IsRUFBRSxTQUFTLG9CQUFvQixDQUFDLEtBQUssRUFBRTtBQUNoRSxPQUFPLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ2xDLE9BQU8sSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEQ7QUFDQSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDckIsU0FBUyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLFFBQVEsTUFBTSxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ3hELFNBQVMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3hELFFBQVE7QUFDUixNQUFNO0FBQ04sS0FBSyxvQkFBb0IsRUFBRSxTQUFTLG9CQUFvQixDQUFDLEtBQUssRUFBRTtBQUNoRSxPQUFPLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEMsT0FBTyxJQUFJLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsT0FBTztBQUNqRTtBQUNBLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtBQUNqQyxTQUFTLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLDJEQUEyRCxDQUFDLENBQUM7QUFDckcsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN4RDtBQUNBLE9BQU8sSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO0FBQzlELFNBQVMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3hELFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxDQUFDO0FBQ0wsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckQsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEQsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUM5RSxHQUFHLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ3RDLEdBQUcsT0FBTztBQUNWLEtBQUssT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ2pDLEtBQUssaUJBQWlCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUNyRCxLQUFLLFlBQVksRUFBRSxZQUFZO0FBQy9CLEtBQUssd0JBQXdCLEVBQUUsd0JBQXdCO0FBQ3ZELEtBQUssVUFBVSxFQUFFLFVBQVU7QUFDM0IsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLHdCQUF3QixFQUFFLHdCQUF3QjtBQUN2RCxLQUFLLFdBQVcsRUFBRSxXQUFXO0FBQzdCLElBQUksQ0FBQztBQUNMLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFO0FBQzdFLEdBQUcsSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFLEVBQUU7QUFDN0IsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7QUFDNUUsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUI7QUFDckQsT0FBTyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVk7QUFDM0MsT0FBTyx3QkFBd0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCO0FBQ25FLE9BQU8sVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVO0FBQ3ZDLE9BQU8sVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVO0FBQ3ZDLE9BQU8sd0JBQXdCLEdBQUcsUUFBUSxDQUFDLHdCQUF3QjtBQUNuRSxPQUFPLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO0FBQzFDLEdBQUcsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFDN0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUM1QyxLQUFLLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLGFBQWEsS0FBSyxVQUFVLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNsRyxJQUFJLENBQUMsQ0FBQztBQUNOLEdBQUcsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3JCLEdBQUcsSUFBSSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQy9DLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQzdDLEtBQUssSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ3hCO0FBQ0EsS0FBSyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDbkMsT0FBTyxPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQztBQUMvQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0FBQ3BELElBQUksQ0FBQyxDQUFDO0FBQ047QUFDQSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLElBQUksVUFBVSxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUU7QUFDM0QsS0FBSyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUNwQyxJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksT0FBTyxHQUFHO0FBQ2pCLEtBQUssT0FBTyxFQUFFLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRTtBQUNyQyxPQUFPLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEMsT0FBTyxJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQy9DLFNBQVMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsT0FBTyxJQUFJLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDdkUsU0FBUyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUIsUUFBUSxDQUFDLENBQUM7QUFDVixPQUFPLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekM7QUFDQSxPQUFPLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUU7QUFDckMsU0FBUyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFO0FBQzNDLFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxVQUFVLE1BQU07QUFDaEIsV0FBVyxHQUFHLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEcsVUFBVTtBQUNWLFFBQVEsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUU7QUFDbEQsU0FBUyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFO0FBQzNDLFdBQVcsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFVBQVUsVUFBVSxFQUFFO0FBQ2xFLGFBQWEsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMvQyxhQUFhLE1BQU0sQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RSxZQUFZLENBQUMsQ0FBQztBQUNkLFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hILFVBQVUsTUFBTTtBQUNoQixXQUFXLEdBQUcsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlGLFVBQVU7QUFDVixRQUFRLE1BQU07QUFDZCxTQUFTLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUN0RCxRQUFRO0FBQ1I7QUFDQSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQ3JELFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pELFFBQVEsQ0FBQyxDQUFDO0FBQ1Y7QUFDQSxPQUFPLEtBQUssSUFBSSxTQUFTLEdBQUcsK0JBQStCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQ3hHLFNBQVMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUNqQztBQUNBLFNBQVMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3hCLFFBQVE7QUFDUjtBQUNBLE9BQU8sS0FBSyxJQUFJLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDdkgsU0FBUyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ25DLFNBQVMsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNwRTtBQUNBLFNBQVMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxRQUFRO0FBQ1I7QUFDQSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNuQixNQUFNO0FBQ04sSUFBSSxDQUFDO0FBQ0wsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNDLEVBQUU7QUFDRjtBQUNBLENBQUMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QztBQUNBLENBQUMsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFO0FBQzNCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUMxQixLQUFLLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQztBQUNBLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNsQixPQUFPLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsRUFBRTtBQUN6RSxTQUFTLElBQUksRUFBRSxzQkFBc0I7QUFDckMsU0FBUyxNQUFNLEVBQUUsSUFBSTtBQUNyQixRQUFRLENBQUMsQ0FBQztBQUNWLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUc7QUFDNUIsT0FBTyxJQUFJLElBQUksR0FBRztBQUNsQixTQUFTLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLFFBQVEsQ0FBQztBQUNUO0FBQ0EsT0FBTyxJQUFJLFNBQVMsRUFBRTtBQUN0QixTQUFTLE9BQU8sSUFBSSxTQUFTLENBQUM7QUFDOUIsV0FBVyxRQUFRLEVBQUUsaUJBQWlCLEdBQUcsSUFBSTtBQUM3QyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxPQUFPLElBQUksQ0FBQztBQUNuQixNQUFNLENBQUM7QUFDUDtBQUNBLEtBQUssSUFBSSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM1QyxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRztBQUN4QixPQUFPLEtBQUssRUFBRSxTQUFTLEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRTtBQUMvRCxTQUFTLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO0FBQ3pCLFNBQVMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzVFLFNBQVMsT0FBTztBQUNoQixXQUFXLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJO0FBQ3ZDLFdBQVcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO0FBQ3BDLFVBQVUsQ0FBQztBQUNYLFFBQVE7QUFDUixPQUFPLFVBQVUsRUFBRSxTQUFTLFVBQVUsR0FBRztBQUN6QyxTQUFTLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQztBQUNsQyxRQUFRO0FBQ1IsT0FBTyxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7QUFDMUMsTUFBTSxDQUFDO0FBQ1AsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRTtBQUN4RCxHQUFHLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ25FLEVBQUU7QUFDRixDQUFDLFNBQVMsWUFBWSxDQUFDLElBQUksRUFBRTtBQUM3QixHQUFHLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3hDLEVBQUU7QUFDRixDQUFDLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRTtBQUNoQyxHQUFHLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDN0QsRUFBRTtBQUNGLENBQUMsU0FBUyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtBQUNyQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7QUFDbkIsS0FBSyxTQUFTLEdBQUcsWUFBWSxDQUFDO0FBQzlCLElBQUk7QUFDSjtBQUNBLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BCLEVBQUU7QUFDRixDQUFDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQ3ZELEdBQUcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqQyxFQUFFLENBQUMsQ0FBQztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxJQUFJLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztBQUMxRCxDQUFDLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7QUFDeEQsQ0FBQyxJQUFJLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7QUFDOUQ7QUFDQSxDQUFDLFNBQVMsUUFBUSxDQUFDLEdBQUcsRUFBRTtBQUN4QixHQUFHLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO0FBQzFDLEtBQUssTUFBTSxJQUFJLFNBQVMsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0FBQ2xGLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEIsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLGVBQWUsR0FBRztBQUM1QixHQUFHLElBQUk7QUFDUCxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQ3pCLE9BQU8sT0FBTyxLQUFLLENBQUM7QUFDcEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDckI7QUFDQSxLQUFLLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtBQUN2RCxPQUFPLE9BQU8sS0FBSyxDQUFDO0FBQ3BCLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3BCO0FBQ0EsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2xDLE9BQU8sS0FBSyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQy9DLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUNyRSxPQUFPLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxDQUFDO0FBQ1I7QUFDQSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLEVBQUU7QUFDM0MsT0FBTyxPQUFPLEtBQUssQ0FBQztBQUNwQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNwQixLQUFLLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxNQUFNLEVBQUU7QUFDaEUsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxDQUFDO0FBQ1I7QUFDQSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxzQkFBc0IsRUFBRTtBQUNwRixPQUFPLE9BQU8sS0FBSyxDQUFDO0FBQ3BCLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxJQUFJLENBQUM7QUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFO0FBQ2pCLEtBQUssT0FBTyxLQUFLLENBQUM7QUFDbEIsSUFBSTtBQUNKLEVBQUU7QUFDRjtBQUNBLENBQUMsSUFBSSxZQUFZLEdBQUcsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxVQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUU7QUFDbEYsR0FBRyxJQUFJLElBQUksQ0FBQztBQUNaLEdBQUcsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdCLEdBQUcsSUFBSSxPQUFPLENBQUM7QUFDZjtBQUNBLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDOUMsS0FBSyxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDO0FBQ0EsS0FBSyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtBQUMzQixPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtBQUM3QyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0IsUUFBUTtBQUNSLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxxQkFBcUIsRUFBRTtBQUNoQyxPQUFPLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QztBQUNBLE9BQU8sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDaEQsU0FBUyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDdEQsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLFVBQVU7QUFDVixRQUFRO0FBQ1IsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFDYixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxlQUFlLEdBQUcsU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFO0FBQzlDLEdBQUcsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDO0FBQ3BKLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsTUFBTSxFQUFFO0FBQy9ELEdBQUcsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO0FBQzVDLEtBQUssTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO0FBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtBQUMzRCxTQUFTLFdBQVcsRUFBRTtBQUN0QixXQUFXLEtBQUssRUFBRSxJQUFJO0FBQ3RCLFdBQVcsVUFBVSxFQUFFLEtBQUs7QUFDNUIsV0FBVyxRQUFRLEVBQUUsSUFBSTtBQUN6QixXQUFXLFlBQVksRUFBRSxJQUFJO0FBQzdCLFVBQVU7QUFDVixRQUFRLENBQUMsQ0FBQztBQUNWLE1BQU0sQ0FBQztBQUNQLElBQUksTUFBTTtBQUNWLEtBQUssTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO0FBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDL0I7QUFDQSxPQUFPLElBQUksUUFBUSxHQUFHLFNBQVMsUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUM3QztBQUNBLE9BQU8sUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ2hELE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO0FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sQ0FBQztBQUNQLElBQUk7QUFDSixFQUFFLEVBQUUsMERBQTBELENBQUMsQ0FBQztBQUNoRTtBQUNBLENBQUMsSUFBSSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzlELEdBQUcsSUFBSSxZQUFZLEdBQUcsVUFBVSxDQUFDO0FBQ2pDO0FBQ0EsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFO0FBQ2pDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUN2QixPQUFPLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUN4QjtBQUNBLE9BQU8sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDbEQsU0FBUyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLFFBQVE7QUFDUjtBQUNBLE9BQU8sT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsS0FBSyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUM7QUFDMUIsS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQzNCLEtBQUssSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUU7QUFDNUQsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUM7QUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUI7QUFDQSxPQUFPLFFBQVEsQ0FBQztBQUNoQixTQUFTLEtBQUssSUFBSTtBQUNsQixXQUFXLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEM7QUFDQSxTQUFTLEtBQUssSUFBSTtBQUNsQixXQUFXLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEM7QUFDQSxTQUFTLEtBQUssSUFBSTtBQUNsQixXQUFXLElBQUk7QUFDZixhQUFhLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzlDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUN2QixhQUFhLE9BQU8sWUFBWSxDQUFDO0FBQ2pDLFlBQVk7QUFDWjtBQUNBLFNBQVM7QUFDVCxXQUFXLE9BQU8sQ0FBQyxDQUFDO0FBQ3BCLFFBQVE7QUFDUixNQUFNLENBQUMsQ0FBQztBQUNSO0FBQ0EsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNuRCxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3RDLFNBQVMsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDeEIsUUFBUSxNQUFNO0FBQ2QsU0FBUyxHQUFHLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLEdBQUcsQ0FBQztBQUNoQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUU7QUFDMUMsS0FBSyxJQUFJLFdBQVcsQ0FBQ0QsZ0JBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUM5QyxPQUFPLE9BQU8sWUFBWTtBQUMxQixTQUFTLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNsRSxRQUFRLENBQUM7QUFDVCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7QUFDM0MsT0FBTyxPQUFPLEVBQUUsQ0FBQztBQUNqQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztBQUN4QjtBQUNBLEtBQUssU0FBUyxVQUFVLEdBQUc7QUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3BCLFNBQVMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7QUFDekMsV0FBVyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLFVBQVUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtBQUNoRCxXQUFXLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUIsVUFBVSxNQUFNO0FBQ2hCLFdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QixVQUFVO0FBQ1Y7QUFDQSxTQUFTLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDdkIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hDLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxVQUFVLENBQUM7QUFDdkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNuQixHQUFHLElBQUksWUFBWSxDQUFDO0FBQ3BCO0FBQ0EsR0FBRyxPQUFPLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxFQUFFO0FBQ3JDLEtBQUssSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsWUFBWSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztBQUNsRixLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDN0I7QUFDQSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDdkIsT0FBTyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtBQUNwRSxTQUFTLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUM7QUFDakM7QUFDQSxTQUFTLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZO0FBQ25DLFdBQVcsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzlELFdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRCxVQUFVLENBQUM7QUFDWCxRQUFRLE1BQU07QUFDZCxTQUFTLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsQ0FBQztBQUN0QyxRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsU0FBUyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRTtBQUMvQixLQUFLLElBQUksR0FBRyxHQUFHO0FBQ2YsT0FBTyxJQUFJLEVBQUUsRUFBRTtBQUNmLE9BQU8sT0FBTyxFQUFFLGNBQWM7QUFDOUIsTUFBTSxDQUFDO0FBQ1AsS0FBSyxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELEtBQUssSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRDtBQUNBLEtBQUssSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDMUIsT0FBTyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUU7QUFDdEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsQyxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztBQUM3RCxLQUFLLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUMvQyxLQUFLLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztBQUNyRCxLQUFLLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztBQUNsRSxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDO0FBQ3BELEtBQUssT0FBTyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0MsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUM3QixHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUc7QUFDcEIsS0FBSyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ3BCLEtBQUssUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUN0QixLQUFLLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7QUFDekIsS0FBSyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ3ZCLEtBQUssT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUN0QixLQUFLLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDckIsS0FBSyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3RCLEtBQUssTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNyQixLQUFLLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDckIsS0FBSyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3RCLEtBQUssU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUN4QixLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDcEIsS0FBSyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRztBQUNwQixLQUFLLFNBQVMsRUFBRSxNQUFNO0FBQ3RCLEtBQUssUUFBUSxFQUFFLFFBQVE7QUFDdkIsS0FBSyxTQUFTLEVBQUUsUUFBUTtBQUN4QixLQUFLLFdBQVcsRUFBRSxNQUFNO0FBQ3hCLEtBQUssTUFBTSxFQUFFLE1BQU07QUFDbkIsS0FBSyxRQUFRLEVBQUUsT0FBTztBQUN0QixLQUFLLE1BQU0sRUFBRSxTQUFTO0FBQ3RCLEtBQUssUUFBUSxFQUFFLEtBQUs7QUFDcEIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLFNBQVMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRTtBQUM3QyxLQUFLLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0M7QUFDQSxLQUFLLElBQUksS0FBSyxFQUFFO0FBQ2hCLE9BQU8sT0FBTyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN4RyxNQUFNLE1BQU07QUFDWixPQUFPLE9BQU8sR0FBRyxDQUFDO0FBQ2xCLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQSxHQUFHLFNBQVMsY0FBYyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUU7QUFDM0MsS0FBSyxPQUFPLEdBQUcsQ0FBQztBQUNoQixJQUFJO0FBQ0o7QUFDQSxHQUFHLFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRTtBQUMvQixLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQixLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUN4QixNQUFNLENBQUMsQ0FBQztBQUNSLEtBQUssT0FBTyxJQUFJLENBQUM7QUFDakIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtBQUNsRCxLQUFLLElBQUksR0FBRyxDQUFDLGFBQWEsSUFBSSxLQUFLLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3hLLE9BQU8sSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDbEQ7QUFDQSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDM0IsU0FBUyxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDbkQsUUFBUTtBQUNSO0FBQ0EsT0FBTyxPQUFPLEdBQUcsQ0FBQztBQUNsQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksU0FBUyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakQ7QUFDQSxLQUFLLElBQUksU0FBUyxFQUFFO0FBQ3BCLE9BQU8sT0FBTyxTQUFTLENBQUM7QUFDeEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLEtBQUssSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsS0FBSyxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUU7QUFDekIsT0FBTyxJQUFJLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtBQUMvRixPQUFPLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUM1QixPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzlCLFNBQVMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDeEQsU0FBUyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDakUsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM1QixTQUFTLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDN0UsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMxQixTQUFTLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekUsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMzQixTQUFTLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUU7QUFDbEIsU0FBUyxLQUFLLEdBQUcsS0FBSztBQUN0QixTQUFTLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM3QjtBQUNBLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDekIsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuRCxPQUFPLElBQUksR0FBRyxZQUFZLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzFCLE9BQU8sSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUQsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUN4QixPQUFPLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNELE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDekIsT0FBTyxJQUFJLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN2QyxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRTtBQUM3RCxPQUFPLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUU7QUFDM0IsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM1QixTQUFTLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDN0UsUUFBUSxNQUFNO0FBQ2QsU0FBUyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ25ELFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFCLEtBQUssSUFBSSxNQUFNLENBQUM7QUFDaEI7QUFDQSxLQUFLLElBQUksS0FBSyxFQUFFO0FBQ2hCLE9BQU8sTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekUsTUFBTSxNQUFNO0FBQ1osT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsRUFBRTtBQUN4QyxTQUFTLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEYsUUFBUSxDQUFDLENBQUM7QUFDVixNQUFNO0FBQ047QUFDQSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsS0FBSyxPQUFPLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkQsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLGVBQWUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3hDLEtBQUssSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMxRTtBQUNBLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDMUIsT0FBTyxJQUFJLE1BQU0sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDeEgsT0FBTyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzVDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDbkUsS0FBSyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNyRSxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLFdBQVcsQ0FBQyxLQUFLLEVBQUU7QUFDL0IsS0FBSyxPQUFPLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzdELElBQUk7QUFDSjtBQUNBLEdBQUcsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtBQUNyRSxLQUFLLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNyQjtBQUNBLEtBQUssS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtBQUNuRCxPQUFPLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM3QyxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3RixRQUFRLE1BQU07QUFDZCxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekIsUUFBUTtBQUNSLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsRUFBRTtBQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO0FBQ2hDLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLFFBQVE7QUFDUixNQUFNLENBQUMsQ0FBQztBQUNSLEtBQUssT0FBTyxNQUFNLENBQUM7QUFDbkIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRTtBQUM5RSxLQUFLLElBQUksSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFDekIsS0FBSyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSTtBQUMzRCxPQUFPLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQ3hCLE1BQU0sQ0FBQztBQUNQO0FBQ0EsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDbkIsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDckIsU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN6RCxRQUFRLE1BQU07QUFDZCxTQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNsRCxRQUFRO0FBQ1IsTUFBTSxNQUFNO0FBQ1osT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDckIsU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbEQsUUFBUTtBQUNSLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDNUMsT0FBTyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDOUIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ2YsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDN0MsU0FBUyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRTtBQUNuQyxXQUFXLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDcEQsVUFBVSxNQUFNO0FBQ2hCLFdBQVcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDaEUsVUFBVTtBQUNWO0FBQ0EsU0FBUyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDckMsV0FBVyxJQUFJLEtBQUssRUFBRTtBQUN0QixhQUFhLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRTtBQUN2RCxlQUFlLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQztBQUNsQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLFlBQVksTUFBTTtBQUNsQixhQUFhLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDOUQsZUFBZSxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDbkMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLFlBQVk7QUFDWixVQUFVO0FBQ1YsUUFBUSxNQUFNO0FBQ2QsU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEQsUUFBUTtBQUNSLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDNUIsT0FBTyxJQUFJLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO0FBQ3hDLFNBQVMsT0FBTyxHQUFHLENBQUM7QUFDcEIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDdkM7QUFDQSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFO0FBQ3ZELFNBQVMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDaEQsU0FBUyxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUMsUUFBUSxNQUFNO0FBQ2QsU0FBUyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3hGLFNBQVMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzVDLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7QUFDOUIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0FBQ3ZELEtBQUssSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxHQUFHLEVBQUU7QUFDckQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDcEMsT0FBTyxPQUFPLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDbkUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1g7QUFDQSxLQUFLLElBQUksTUFBTSxHQUFHLEVBQUUsRUFBRTtBQUN0QixPQUFPLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNHLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekUsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLE9BQU8sQ0FBQyxFQUFFLEVBQUU7QUFDeEIsS0FBSyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUM3QjtBQUNBLEdBQUcsU0FBUyxTQUFTLENBQUMsR0FBRyxFQUFFO0FBQzNCLEtBQUssT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDckMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUNqQztBQUNBLEdBQUcsU0FBUyxNQUFNLENBQUMsR0FBRyxFQUFFO0FBQ3hCLEtBQUssT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDO0FBQ3pCLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDM0I7QUFDQSxHQUFHLFNBQVMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO0FBQ25DLEtBQUssT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDO0FBQ3hCLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0FBQ2pEO0FBQ0EsR0FBRyxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUU7QUFDMUIsS0FBSyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNwQyxJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQy9CO0FBQ0EsR0FBRyxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUU7QUFDMUIsS0FBSyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNwQyxJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQy9CO0FBQ0EsR0FBRyxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUU7QUFDMUIsS0FBSyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNwQyxJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQy9CO0FBQ0EsR0FBRyxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDN0IsS0FBSyxPQUFPLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUMzQixJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQ3JDO0FBQ0EsR0FBRyxTQUFTLFFBQVEsQ0FBQyxFQUFFLEVBQUU7QUFDekIsS0FBSyxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUssaUJBQWlCLENBQUM7QUFDckUsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUMvQjtBQUNBLEdBQUcsU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFO0FBQzFCLEtBQUssT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUNwRCxJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQy9CO0FBQ0EsR0FBRyxTQUFTLE1BQU0sQ0FBQyxDQUFDLEVBQUU7QUFDdEIsS0FBSyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssZUFBZSxDQUFDO0FBQ2pFLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDM0I7QUFDQSxHQUFHLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRTtBQUN2QixLQUFLLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsSUFBSSxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUM7QUFDMUYsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUM3QjtBQUNBLEdBQUcsU0FBUyxVQUFVLENBQUMsR0FBRyxFQUFFO0FBQzVCLEtBQUssT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDdEMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUNuQztBQUNBLEdBQUcsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzdCLEtBQUssT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFNBQVMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDcEssSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUNyQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO0FBQ3RDO0FBQ0EsR0FBRyxTQUFTLGNBQWMsQ0FBQyxDQUFDLEVBQUU7QUFDOUIsS0FBSyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QyxJQUFJO0FBQ0o7QUFDQSxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUNuQixLQUFLLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNELElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JHO0FBQ0EsR0FBRyxTQUFTLFNBQVMsR0FBRztBQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFDeEIsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hGLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hFLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxZQUFZO0FBQzdCLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDbkYsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7QUFDdkM7QUFDQSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEdBQUcsVUFBVSxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLE1BQU0sQ0FBQztBQUMvQyxLQUFLLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3pCO0FBQ0EsS0FBSyxPQUFPLENBQUMsRUFBRSxFQUFFO0FBQ2pCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sTUFBTSxDQUFDO0FBQ25CLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxTQUFTLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQ3RDLEtBQUssT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVELElBQUk7QUFDSixFQUFFLEVBQUUsb0NBQW9DLENBQUMsQ0FBQztBQUMxQztBQUNBLENBQUMsSUFBSSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxNQUFNLEVBQUU7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDMUIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDbEIsT0FBTyxPQUFPLENBQUMsQ0FBQztBQUNoQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3RCO0FBQ0EsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRTtBQUN6RCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLFNBQVMsTUFBTTtBQUNmLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNoQixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDakIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDaEIsT0FBTyxPQUFPLENBQUMsQ0FBQztBQUNoQixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0FBQ2QsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDeEIsS0FBSyxJQUFJQSxnQkFBYyxDQUFDLE1BQU0sSUFBSSxPQUFPQSxnQkFBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFO0FBQ3hGLE9BQU8sT0FBT0EsZ0JBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztBQUNoRCxHQUFHLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBQ3RDO0FBQ0EsR0FBRyxJQUFJLGtCQUFrQixHQUFHLFlBQVk7QUFDeEMsS0FBSyxPQUFPLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0FBQzdDLElBQUksRUFBRSxDQUFDO0FBQ1A7QUFDQSxHQUFHLFNBQVMsU0FBUyxDQUFDLEdBQUcsRUFBRTtBQUMzQixLQUFLLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hELElBQUk7QUFDSjtBQUNBLEdBQUcsU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLEtBQUssSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDM0IsT0FBTyxPQUFPLEtBQUssQ0FBQztBQUNwQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksT0FBT0EsZ0JBQWMsQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFO0FBQzNELE9BQU8sT0FBTyxLQUFLLENBQUM7QUFDcEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE9BQU8sV0FBVyxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7QUFDbkQsT0FBTyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLE9BQU8sT0FBTyxLQUFLLENBQUM7QUFDcEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE1BQU0sWUFBWSxRQUFRLEVBQUU7QUFDckMsT0FBTyxPQUFPLElBQUksQ0FBQztBQUNuQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxZQUFZLFdBQVcsRUFBRTtBQUNoRSxPQUFPLE9BQU8sSUFBSSxDQUFDO0FBQ25CLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxLQUFLLENBQUM7QUFDbEIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNwQyxHQUFHLElBQUksS0FBSyxHQUFHLDZCQUE2QixDQUFDO0FBQzdDO0FBQ0EsR0FBRyxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDMUIsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNuQyxPQUFPLE9BQU87QUFDZCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksa0JBQWtCLEVBQUU7QUFDN0IsT0FBTyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDeEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDL0IsS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLEtBQUssT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLElBQUk7QUFDSjtBQUNBLEdBQUcsTUFBTSxDQUFDLGNBQWMsR0FBRyxTQUFTLGNBQWMsQ0FBQyxPQUFPLEVBQUU7QUFDNUQsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0FBQ2xDLEtBQUssSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQ2xDLEtBQUssSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ3RDLEtBQUssSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ3RDO0FBQ0EsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7QUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDdEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0FBQ3JDLE1BQU0sTUFBTTtBQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQ3BDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDO0FBQ2pFO0FBQ0EsS0FBSyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUNsQyxPQUFPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUN6RCxNQUFNLE1BQU07QUFDWixPQUFPLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFDN0I7QUFDQSxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtBQUN0QixTQUFTLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7QUFDN0IsU0FBUyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNuRCxTQUFTLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQy9DO0FBQ0EsU0FBUyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUU7QUFDdkIsV0FBVyxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEQsV0FBVyxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDOUMsVUFBVTtBQUNWO0FBQ0EsU0FBUyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUMxQixRQUFRO0FBQ1IsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakQ7QUFDQSxHQUFHLFNBQVMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDM0IsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtBQUNoQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9DLE1BQU0sTUFBTTtBQUNaLE9BQU8sT0FBTyxDQUFDLENBQUM7QUFDaEIsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBLEdBQUcsU0FBUyxPQUFPLENBQUMsU0FBUyxFQUFFO0FBQy9CLEtBQUssSUFBSSxrQkFBa0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7QUFDOUQsT0FBTyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDeEMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdEMsS0FBSyxJQUFJLElBQUksR0FBRyxPQUFPLEdBQUcsSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDOUMsS0FBSyxPQUFPLFdBQVcsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ3JDLElBQUk7QUFDSjtBQUNBLEdBQUcsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFO0FBQzdCLEtBQUssT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDcEgsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7QUFDMUUsS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQztBQUNyQyxPQUFPLE9BQU8sRUFBRSxPQUFPO0FBQ3ZCLE9BQU8sTUFBTSxFQUFFLE1BQU07QUFDckIsT0FBTyxRQUFRLEVBQUUsUUFBUTtBQUN6QixPQUFPLFFBQVEsRUFBRSxRQUFRO0FBQ3pCLE9BQU8sa0JBQWtCLEVBQUUsa0JBQWtCO0FBQzdDLE1BQU0sQ0FBQyxDQUFDO0FBQ1IsSUFBSTtBQUNKO0FBQ0EsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0QjtBQUNBLEdBQUcsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUMvQixLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0QsSUFBSTtBQUNKO0FBQ0EsR0FBRyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNsQjtBQUNBLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUM1RCxLQUFLLElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqRixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUNsRSxLQUFLLElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRTtBQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlELE1BQU07QUFDTixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUNwRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtBQUMvQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3RFLE1BQU07QUFDTixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLGVBQWUsR0FBRyxTQUFTLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUNoRixLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRTtBQUM5QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDbEYsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7QUFDeEQsS0FBSyxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUU7QUFDOUIsT0FBTyxPQUFPLElBQUksQ0FBQztBQUNuQixNQUFNLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO0FBQ3hELE9BQU8sT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QyxNQUFNLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDbEUsT0FBTyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDdEQsTUFBTSxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO0FBQ3RFLE9BQU8sT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsVUFBVSxDQUFDO0FBQ3hOLE1BQU0sTUFBTSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLE1BQU0sUUFBUSxLQUFLLElBQUksSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsRUFBRTtBQUN4SCxPQUFPLE9BQU8sTUFBTSxHQUFHLE1BQU0sS0FBSyxRQUFRLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQztBQUNoRSxNQUFNLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLFlBQVksWUFBWSxJQUFJLE1BQU0sWUFBWSxZQUFZLENBQUMsRUFBRTtBQUN4SyxPQUFPLE9BQU8sT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUYsTUFBTSxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUN6RCxPQUFPLE9BQU8sS0FBSyxDQUFDO0FBQ3BCLE1BQU0sTUFBTTtBQUNaLE9BQU8sS0FBSyxHQUFHLEtBQUssSUFBSTtBQUN4QixTQUFTLE1BQU0sRUFBRSxFQUFFO0FBQ25CLFNBQVMsUUFBUSxFQUFFLEVBQUU7QUFDckIsUUFBUSxDQUFDO0FBQ1QsT0FBTyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RDtBQUNBLE9BQU8sSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDL0IsU0FBUyxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUMvRCxXQUFXLE9BQU8sSUFBSSxDQUFDO0FBQ3ZCLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDckMsT0FBTyxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4RCxNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUU7QUFDaEMsS0FBSyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxvQkFBb0IsQ0FBQztBQUMzRSxJQUFJO0FBQ0o7QUFDQSxHQUFHLFNBQVMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFO0FBQ3pELEtBQUssSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3RGLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hFLEtBQUssSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3ZGLEtBQUssSUFBSSxPQUFPLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLEtBQUssSUFBSSxPQUFPLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLEtBQUssSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ2xFO0FBQ0EsS0FBSyxJQUFJLE9BQU8sRUFBRTtBQUNsQixPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsT0FBTyxPQUFPLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLEtBQUssSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ2hCLEtBQUssSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFDL0MsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDZixLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNmO0FBQ0EsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ3pDLE1BQU07QUFDTjtBQUNBLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUMxQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFDbkYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJO0FBQ0o7QUFDQSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEdBQUcsU0FBUyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7QUFDMUUsS0FBSyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFO0FBQzlDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDNUUsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7QUFDbEQ7QUFDQSxHQUFHLFNBQVMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7QUFDMUQsS0FBSyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFO0FBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDakYsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUN4RSxLQUFLLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtBQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xFLE1BQU07QUFDTixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLGNBQWMsR0FBRyxTQUFTLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUM5RSxLQUFLLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtBQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3JFLE1BQU07QUFDTixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsU0FBUyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ2hELEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRTtBQUMvQixPQUFPLE9BQU8sS0FBSyxDQUFDO0FBQ3BCLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksaUJBQWlCLEVBQUU7QUFDeEUsT0FBTyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJO0FBQ1QsT0FBTyxJQUFJLE1BQU0sWUFBWSxRQUFRLEVBQUU7QUFDdkMsU0FBUyxPQUFPLElBQUksQ0FBQztBQUNyQixRQUFRO0FBQ1IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7QUFDbkI7QUFDQSxLQUFLLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUN4QyxPQUFPLE9BQU8sS0FBSyxDQUFDO0FBQ3BCLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDL0MsSUFBSTtBQUNKO0FBQ0EsR0FBRyxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUU7QUFDN0IsS0FBSyxJQUFJLEtBQUssQ0FBQztBQUNmO0FBQ0EsS0FBSyxJQUFJO0FBQ1QsT0FBTyxLQUFLLEVBQUUsQ0FBQztBQUNmLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUNqQixPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLEtBQUssQ0FBQztBQUNsQixJQUFJO0FBQ0o7QUFDQSxHQUFHLFNBQVMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtBQUMzRCxLQUFLLElBQUksTUFBTSxDQUFDO0FBQ2hCO0FBQ0EsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMscUNBQXFDLENBQUMsQ0FBQztBQUNsRSxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO0FBQ3ZDLE9BQU8sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUMxQixPQUFPLFFBQVEsR0FBRyxJQUFJLENBQUM7QUFDdkIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxNQUFNLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLEtBQUssT0FBTyxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsS0FBSyxPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNqSDtBQUNBLEtBQUssSUFBSSxXQUFXLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSw0QkFBNEIsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUN0RSxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksbUJBQW1CLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDO0FBQzNELEtBQUssSUFBSSxtQkFBbUIsR0FBRyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RFLEtBQUssSUFBSSxxQkFBcUIsR0FBRyxDQUFDLFdBQVcsSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDckU7QUFDQSxLQUFLLElBQUksbUJBQW1CLElBQUksbUJBQW1CLElBQUksaUJBQWlCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLHFCQUFxQixFQUFFO0FBQ3JILE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDbEUsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLFdBQVcsSUFBSSxNQUFNLElBQUksUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sRUFBRTtBQUM5RyxPQUFPLE1BQU0sTUFBTSxDQUFDO0FBQ3BCLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxVQUFVLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0FBQ3ZELEtBQUssT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsWUFBWSxHQUFHLFVBQVUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7QUFDMUQsS0FBSyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0MsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBVSxHQUFHLEVBQUU7QUFDbkMsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQztBQUN4QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsU0FBUyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUNuQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxRCxJQUFJO0FBQ0o7QUFDQSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUU7QUFDaEQsS0FBSyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVc7QUFDOUIsS0FBSyxTQUFTLEVBQUUsTUFBTSxDQUFDLGVBQWU7QUFDdEMsS0FBSyxRQUFRLEVBQUUsTUFBTSxDQUFDLGNBQWM7QUFDcEMsS0FBSyxZQUFZLEVBQUUsTUFBTSxDQUFDLGtCQUFrQjtBQUM1QyxJQUFJLENBQUMsQ0FBQztBQUNOLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUN4QztBQUNBLEdBQUcsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLEdBQUcsRUFBRTtBQUNsRCxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQjtBQUNBLEtBQUssS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7QUFDMUIsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakQsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJLENBQUM7QUFDTCxFQUFFLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztBQUM1QztBQUNBLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxnQkFBZ0I7QUFDeEMsS0FBSyxXQUFXLEdBQUcsV0FBVztBQUM5QixLQUFLLHFCQUFxQixHQUFHLHFCQUFxQjtBQUNsRCxLQUFLLFlBQVksR0FBRyxZQUFZO0FBQ2hDLEtBQUssaUJBQWlCLEdBQUcsbUJBQW1CO0FBQzVDLEtBQUssc0JBQXNCLEdBQUcsd0JBQXdCO0FBQ3RELEtBQUssd0JBQXdCLEdBQUcsMEJBQTBCO0FBQzFELEtBQUssZUFBZSxHQUFHLGlCQUFpQjtBQUN4QyxLQUFLLGtCQUFrQixHQUFHLGtCQUFrQjtBQUM1QyxLQUFLLGVBQWUsR0FBRyxlQUFlO0FBQ3RDLEtBQUsscUJBQXFCLEdBQUcscUJBQXFCO0FBQ2xELEtBQUssb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDakQ7QUFDQSxDQUFDLElBQUksYUFBYSxHQUFHLFlBQVk7QUFDakMsR0FBRyxTQUFTLGFBQWEsQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUN0RCxLQUFLLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDN0IsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUN4QixLQUFLLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLEtBQUssSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNuQyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3pCLEtBQUssSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7QUFDckIsS0FBSyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztBQUMzQyxJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksTUFBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7QUFDeEM7QUFDQSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxJQUFJLEdBQUc7QUFDakMsS0FBSyxPQUFPO0FBQ1osT0FBTyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVc7QUFDbkMsT0FBTyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVc7QUFDbkMsTUFBTSxDQUFDO0FBQ1AsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLE9BQU8sR0FBRztBQUN6QyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RjtBQUNBLEtBQUssT0FBTyxJQUFJLENBQUM7QUFDakIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLEdBQUc7QUFDdkMsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEk7QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQ2pCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLElBQUksRUFBRTtBQUMvQyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzFCLE9BQU8sSUFBSSxHQUFHLFdBQVcsQ0FBQztBQUMxQixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekQ7QUFDQSxLQUFLLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkUsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3RELEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2pELEtBQUssU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDOUQsS0FBSyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMzQyxLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQ2pCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFO0FBQy9DLEtBQUssSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEQsS0FBSyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25FLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsQ0FBQztBQUN0RCxLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRCxLQUFLLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzNELEtBQUssSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO0FBQ25ELEtBQUssSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hFLEtBQUssSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEQsS0FBSyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25FLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsQ0FBQztBQUN0RCxLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRCxLQUFLLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUUsS0FBSyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQyxLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQ2pCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLEtBQUssSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEQsS0FBSyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25FO0FBQ0EsS0FBSyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLEVBQUU7QUFDbkQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xDLE9BQU8sU0FBUyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMzRDtBQUNBLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDeEMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RJLEtBQUssSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLGNBQWMsR0FBRyxTQUFTLGNBQWMsR0FBRztBQUNyRCxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7QUFDeEUsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEdBQUcsU0FBUyxlQUFlLEdBQUc7QUFDdkQsS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLFNBQVMsUUFBUSxDQUFDLE1BQU0sRUFBRTtBQUMvQyxLQUFLLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkU7QUFDQSxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFBRTtBQUNuRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDL0UsTUFBTSxNQUFNLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFBRTtBQUMxRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyRCxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNuRyxNQUFNLE1BQU07QUFDWixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUN6QyxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQ2pCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNyQyxLQUFLLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkU7QUFDQSxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFBRTtBQUNuRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMzRixNQUFNLE1BQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFO0FBQzFELE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3JELE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDL0csTUFBTSxNQUFNO0FBQ1osT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxRCxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQ2pCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNyQyxLQUFLLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNqRixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxhQUFhLENBQUM7QUFDeEIsRUFBRSxFQUFFLENBQUM7QUFDTDtBQUNBLENBQUMsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFO0FBQ3pCLEdBQUcsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7QUFDekM7QUFDQSxHQUFHLElBQUksVUFBVSxLQUFLLFFBQVEsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFO0FBQzNELEtBQUssTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEdBQUcsVUFBVSxHQUFHLHVCQUF1QixDQUFDLENBQUM7QUFDcEcsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQztBQUM1QyxFQUFFO0FBQ0Y7QUFDQSxDQUFDLElBQUksZ0JBQWdCLEdBQUcsZ0JBQWdCO0FBQ3hDLEtBQUssb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDakQ7QUFDQSxDQUFDLElBQUksY0FBYyxHQUFHLFlBQVk7QUFDbEMsR0FBRyxTQUFTLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRTtBQUN2RCxLQUFLLElBQUksQ0FBQyxZQUFZLEdBQUc7QUFDekIsT0FBTyxjQUFjLEVBQUUsSUFBSTtBQUMzQixPQUFPLFlBQVksRUFBRSxVQUFVO0FBQy9CLE9BQU8sZUFBZSxFQUFFLE9BQU87QUFDL0IsT0FBTyxnQkFBZ0IsRUFBRSxPQUFPO0FBQ2hDLE9BQU8sbUJBQW1CLEVBQUUsS0FBSztBQUNqQyxPQUFPLGVBQWUsRUFBRSxLQUFLO0FBQzdCLE9BQU8sY0FBYyxFQUFFLFFBQVE7QUFDL0IsTUFBTSxDQUFDO0FBQ1AsS0FBSyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQzlDLE9BQU8sT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDNUIsTUFBTSxDQUFDLENBQUM7QUFDUixLQUFLLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLEtBQUssSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO0FBQzVDLEtBQUssSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO0FBQ2pDLEtBQUssSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekUsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO0FBQ3pDO0FBQ0EsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRTtBQUNuRSxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0QsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRTtBQUMzRSxLQUFLLFFBQVEsQ0FBQyxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQztBQUM5QyxLQUFLLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzFGLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRTtBQUN2RSxLQUFLLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BGLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLFNBQVMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRTtBQUN6RSxLQUFLLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JGLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsY0FBYyxHQUFHLFNBQVMsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0FBQ2pGLEtBQUssSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDNUIsT0FBTyxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCO0FBQ0EsS0FBSyxJQUFJLE9BQU8sY0FBYyxLQUFLLFFBQVEsRUFBRTtBQUM3QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7QUFDckIsU0FBUyxjQUFjLEVBQUUsY0FBYztBQUN2QyxRQUFRLENBQUMsQ0FBQztBQUNWLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixNQUFNLE1BQU07QUFDWixPQUFPLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO0FBQzFELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNyQyxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4RDtBQUNBLEtBQUssSUFBSSxLQUFLLEdBQUcsU0FBUyxLQUFLLEdBQUc7QUFDbEMsT0FBTyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLEVBQUU7QUFDbkQsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvRCxRQUFRLENBQUMsQ0FBQztBQUNWO0FBQ0EsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3BCLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDM0UsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztBQUNqRixRQUFRO0FBQ1IsTUFBTSxDQUFDO0FBQ1A7QUFDQSxLQUFLLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxRQUFRLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDekUsT0FBTyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUMxQjtBQUNBLE9BQU8sSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLFNBQVM7QUFDekMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLE9BQU8sQ0FBQztBQUNwQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLGVBQWUsR0FBRyxTQUFTLGVBQWUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO0FBQ3ZFLEtBQUssSUFBSSxTQUFTLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQztBQUM5QyxLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUM7QUFDOUMsS0FBSyxJQUFJLFdBQVcsR0FBRyxVQUFVLEtBQUssSUFBSSxDQUFDO0FBQzNDLEtBQUssSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWM7QUFDN0MsU0FBUyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVk7QUFDekMsU0FBUyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWU7QUFDL0MsU0FBUyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO0FBQ2pELFNBQVMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQjtBQUN2RCxTQUFTLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZTtBQUMvQyxTQUFTLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUTtBQUNqQyxTQUFTLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYztBQUM3QyxTQUFTLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQ3RDLEtBQUssSUFBSSxJQUFJLEdBQUcsUUFBUSxJQUFJLFVBQVUsQ0FBQztBQUN2QyxLQUFLLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDN0MsS0FBSyxJQUFJLGVBQWUsR0FBRyxLQUFLLElBQUksZ0JBQWdCLEtBQUssTUFBTSxDQUFDO0FBQ2hFLEtBQUssSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLElBQUksZ0JBQWdCLEtBQUssT0FBTyxDQUFDO0FBQ2xFO0FBQ0EsS0FBSyxJQUFJLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUU7QUFDL0MsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7QUFDckYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE9BQU8sR0FBRyxJQUFJLGFBQWEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEY7QUFDQSxLQUFLLElBQUksWUFBWSxLQUFLLEtBQUssRUFBRTtBQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtBQUNsRCxTQUFTLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztBQUN0RSxRQUFRO0FBQ1I7QUFDQSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBQzNCO0FBQ0EsT0FBTyxJQUFJLFdBQVcsRUFBRTtBQUN4QixTQUFTLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLGNBQWMsQ0FBQyxDQUFDO0FBQ3ZELFFBQVEsTUFBTSxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUU7QUFDeEMsU0FBUyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN6QyxRQUFRO0FBQ1IsTUFBTSxNQUFNLElBQUksWUFBWSxLQUFLLFVBQVUsRUFBRTtBQUM3QyxPQUFPLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzFFLE1BQU0sTUFBTSxJQUFJLGVBQWUsS0FBSyxPQUFPLEVBQUU7QUFDN0MsT0FBTyxJQUFJLGVBQWUsRUFBRTtBQUM1QixTQUFTLElBQUksR0FBRyxJQUFJLEtBQUssU0FBUyxHQUFHLElBQUksR0FBRyxjQUFjLENBQUM7QUFDM0QsU0FBUyxJQUFJLFVBQVUsR0FBRyxjQUFjLEdBQUcsYUFBYSxDQUFDO0FBQ3pELFNBQVMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFDN0I7QUFDQSxTQUFTLElBQUksV0FBVyxFQUFFO0FBQzFCLFdBQVcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUMzRixVQUFVLE1BQU0sSUFBSSxTQUFTLEVBQUU7QUFDL0IsV0FBVyxJQUFJLG1CQUFtQixFQUFFO0FBQ3BDLGFBQWEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDNUcsWUFBWSxNQUFNO0FBQ2xCLGFBQWEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMzRixZQUFZO0FBQ1osVUFBVSxNQUFNLElBQUksT0FBTyxFQUFFO0FBQzdCLFdBQVcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMzRCxVQUFVO0FBQ1YsUUFBUSxNQUFNLElBQUksZ0JBQWdCLEVBQUU7QUFDcEMsU0FBUyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM3QjtBQUNBLFNBQVMsSUFBSSxXQUFXLEVBQUU7QUFDMUIsV0FBVyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQztBQUNyRCxVQUFVLE1BQU0sSUFBSSxTQUFTLElBQUksT0FBTyxFQUFFO0FBQzFDLFdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDM0MsVUFBVTtBQUNWLFFBQVEsTUFBTTtBQUNkLFNBQVMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzNCO0FBQ0EsU0FBUyxJQUFJLFdBQVcsRUFBRTtBQUMxQixXQUFXLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDcEUsVUFBVSxNQUFNLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxLQUFLLG1CQUFtQixFQUFFO0FBQ25FLFdBQVcsSUFBSSxTQUFTLEVBQUU7QUFDMUIsYUFBYSxJQUFJLEdBQUcsSUFBSSxLQUFLLFNBQVMsR0FBRyxJQUFJLEdBQUcsY0FBYyxDQUFDO0FBQy9ELGFBQWEsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuRCxhQUFhLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUN0QyxZQUFZLE1BQU07QUFDbEIsYUFBYSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELFlBQVk7QUFDWixVQUFVLE1BQU0sSUFBSSxTQUFTLEVBQUU7QUFDL0IsV0FBVyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2xFLFVBQVUsTUFBTSxJQUFJLE9BQU8sRUFBRTtBQUM3QixXQUFXLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDakQsVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNLE1BQU0sSUFBSSxlQUFlLEtBQUssVUFBVSxFQUFFO0FBQ2hELE9BQU8sSUFBSSxlQUFlLEVBQUU7QUFDNUIsU0FBUyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM3QjtBQUNBLFNBQVMsSUFBSSxXQUFXLEVBQUU7QUFDMUIsV0FBVyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxJQUFJLGNBQWMsQ0FBQyxDQUFDO0FBQ3RELFVBQVUsTUFBTSxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUU7QUFDMUMsV0FBVyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pELFVBQVU7QUFDVixRQUFRLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRTtBQUNwQyxTQUFTLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBQzdCO0FBQ0EsU0FBUyxJQUFJLFdBQVcsRUFBRTtBQUMxQixXQUFXLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLGNBQWMsQ0FBQyxDQUFDO0FBQ3JELFVBQVUsTUFBTSxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUU7QUFDMUMsV0FBVyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMzQyxVQUFVO0FBQ1YsUUFBUSxNQUFNO0FBQ2QsU0FBUyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDM0I7QUFDQSxTQUFTLElBQUksV0FBVyxFQUFFO0FBQzFCLFdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQztBQUNsRCxVQUFVLE1BQU0sSUFBSSxTQUFTLElBQUksT0FBTyxFQUFFO0FBQzFDLFdBQVcsSUFBSSxtQkFBbUIsRUFBRTtBQUNwQyxhQUFhLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkQsWUFBWSxNQUFNO0FBQ2xCLGFBQWEsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxZQUFZO0FBQ1osVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNLE1BQU0sSUFBSSxlQUFlLEtBQUssWUFBWSxFQUFFO0FBQ2xELE9BQU8sSUFBSSxTQUFTLElBQUksbUJBQW1CLEVBQUU7QUFDN0MsU0FBUyxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7QUFDbkUsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLGVBQWUsRUFBRTtBQUM1QixTQUFTLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBQzdCO0FBQ0EsU0FBUyxJQUFJLFdBQVcsRUFBRTtBQUMxQixXQUFXLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLENBQUM7QUFDdEQsVUFBVSxNQUFNLElBQUksU0FBUyxFQUFFO0FBQy9CLFdBQVcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BDLFVBQVUsTUFBTSxJQUFJLE9BQU8sRUFBRTtBQUM3QixXQUFXLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekQsVUFBVTtBQUNWLFFBQVEsTUFBTSxJQUFJLGdCQUFnQixFQUFFO0FBQ3BDLFNBQVMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFDN0I7QUFDQSxTQUFTLElBQUksV0FBVyxFQUFFO0FBQzFCLFdBQVcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQztBQUN0RCxVQUFVLE1BQU0sSUFBSSxTQUFTLEVBQUU7QUFDL0IsV0FBVyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsVUFBVSxNQUFNLElBQUksT0FBTyxFQUFFO0FBQzdCLFdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDM0MsVUFBVTtBQUNWLFFBQVEsTUFBTTtBQUNkLFNBQVMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzNCO0FBQ0EsU0FBUyxJQUFJLFdBQVcsRUFBRTtBQUMxQixXQUFXLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLENBQUM7QUFDbEQsVUFBVSxNQUFNLElBQUksU0FBUyxFQUFFO0FBQy9CLFdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hDLFVBQVUsTUFBTSxJQUFJLE9BQU8sRUFBRTtBQUM3QixXQUFXLElBQUksbUJBQW1CLEVBQUU7QUFDcEMsYUFBYSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZELFlBQVksTUFBTTtBQUNsQixhQUFhLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkQsWUFBWTtBQUNaLFVBQVU7QUFDVixRQUFRO0FBQ1IsTUFBTSxNQUFNO0FBQ1osT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUMvRSxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDdkMsU0FBUyxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVU7QUFDOUMsU0FBUyxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztBQUMvQztBQUNBLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDcEU7QUFDQSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxLQUFLLGVBQWUsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtBQUN4RixPQUFPLE9BQU8sb0JBQW9CLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxVQUFVLENBQUM7QUFDdkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFO0FBQ2pHLEtBQUssSUFBSSxjQUFjLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDcEMsT0FBTyxjQUFjLEdBQUcsUUFBUSxDQUFDO0FBQ2pDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDaEMsT0FBTyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUM7QUFDQSxLQUFLLElBQUksY0FBYyxLQUFLLE9BQU8sRUFBRTtBQUNyQyxPQUFPLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNsRCxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEVBQUU7QUFDNUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzNDLFdBQVcsT0FBTztBQUNsQixVQUFVO0FBQ1YsUUFBUTtBQUNSLE1BQU0sTUFBTTtBQUNaLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRTtBQUMxQyxTQUFTLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3ZDLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsT0FBTyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQy9DLFNBQVMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7QUFDdEMsU0FBUyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNoRCxRQUFRLENBQUMsQ0FBQztBQUNWO0FBQ0EsT0FBTyxJQUFJLFVBQVUsRUFBRTtBQUN2QixTQUFTLFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0MsU0FBUyxPQUFPO0FBQ2hCLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLGNBQWMsQ0FBQztBQUN6QixFQUFFLEVBQUUsQ0FBQztBQUNMO0FBQ0EsQ0FBQyxTQUFTLFVBQVUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRTtBQUNqRCxHQUFHLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNwRSxFQUFFO0FBQ0YsQ0FBQyxTQUFTLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUU7QUFDckQsR0FBRyxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hFLEVBQUU7QUFDRixDQUFDLFNBQVMsWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFO0FBQ25ELEdBQUcsT0FBTyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RFLEVBQUU7QUFDRjtBQUNBLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxnQkFBZ0I7QUFDeEMsS0FBSyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztBQUMzQyxDQUFDLFNBQVMsV0FBVyxDQUFDLFdBQVcsRUFBRTtBQUNuQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGtCQUFrQixFQUFFO0FBQ3BFLEtBQUssT0FBTyxFQUFFLElBQUk7QUFDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNQLEVBQUU7QUFDRixDQUFDLElBQUksa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtBQUN2RSxHQUFHLGNBQWMsRUFBRSxVQUFVLGVBQWUsRUFBRTtBQUM5QyxLQUFLLFNBQVMsY0FBYyxDQUFDLEVBQUUsRUFBRTtBQUNqQyxPQUFPLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDckQsTUFBTTtBQUNOO0FBQ0EsS0FBSyxjQUFjLENBQUMsUUFBUSxHQUFHLFlBQVk7QUFDM0MsT0FBTyxPQUFPLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN6QyxNQUFNLENBQUM7QUFDUDtBQUNBLEtBQUssT0FBTyxjQUFjLENBQUM7QUFDM0IsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQ3JCLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1RSxJQUFJLENBQUM7QUFDTCxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ0w7QUFDQSxDQUFDLElBQUksbUJBQW1CLEdBQUcsbUJBQW1CO0FBQzlDLEtBQUssc0JBQXNCLEdBQUcsc0JBQXNCO0FBQ3BELEtBQUssa0JBQWtCLEdBQUcsa0JBQWtCO0FBQzVDLEtBQUssV0FBVyxHQUFHLFdBQVc7QUFDOUIsS0FBSyxZQUFZLEdBQUcsWUFBWTtBQUNoQyxLQUFLLG1CQUFtQixHQUFHLG1CQUFtQjtBQUM5QyxLQUFLLGdCQUFnQixHQUFHLGdCQUFnQjtBQUN4QyxLQUFLLG9CQUFvQixHQUFHLG9CQUFvQjtBQUNoRCxLQUFLLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0FBQzNDLENBQUMsU0FBUyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtBQUM3QyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUU7QUFDMUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7QUFDdEIsS0FBSyxZQUFZLEVBQUUsWUFBWTtBQUMvQixLQUFLLElBQUksRUFBRSxJQUFJLE9BQU8sRUFBRTtBQUN4QixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUU7QUFDRixDQUFDLElBQUksdUJBQXVCLEdBQUc7QUFDL0IsR0FBRyxnQkFBZ0IsRUFBRTtBQUNyQixLQUFLLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDL0IsT0FBTyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSztBQUM3QixXQUFXLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQzVDLE9BQU8sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN0QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTztBQUN2QyxPQUFPLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3JDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTztBQUNoRDtBQUNBLE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO0FBQzdFLFNBQVMsT0FBTztBQUNoQixRQUFRO0FBQ1I7QUFDQSxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7QUFDbEYsU0FBUyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNqRSxTQUFTLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNGLFFBQVEsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3BDLFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEwsUUFBUSxNQUFNO0FBQ2QsU0FBUyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDaEYsU0FBUyxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ2hDLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDekIsV0FBVyxFQUFFLEVBQUUsR0FBRztBQUNsQixVQUFVLENBQUMsQ0FBQztBQUNaLFNBQVMsSUFBSSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUcsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNOLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsb0JBQW9CLEVBQUU7QUFDekIsS0FBSyxJQUFJLEVBQUUsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQy9CLE9BQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUs7QUFDN0IsV0FBVyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUk7QUFDM0IsV0FBVyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztBQUM1QyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxFQUFFLE9BQU87QUFDOUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU87QUFDdkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixPQUFPLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLE9BQU87QUFDeEMsT0FBTyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU87QUFDaEQ7QUFDQSxPQUFPLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtBQUM3RSxTQUFTLE9BQU87QUFDaEIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEQ7QUFDQSxPQUFPLElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO0FBQ25ELFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BKLFFBQVEsTUFBTTtBQUNkLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEcsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDbEMsUUFBUTtBQUNSLE1BQU07QUFDTixJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksaUJBQWlCLENBQUM7QUFDdkIsQ0FBQyxJQUFJLHNCQUFzQixHQUFHLHNCQUFzQjtBQUNwRCxLQUFLLGdCQUFnQixHQUFHLGdCQUFnQjtBQUN4QyxLQUFLLFdBQVcsR0FBRyxXQUFXO0FBQzlCLEtBQUsscUJBQXFCLEdBQUcscUJBQXFCO0FBQ2xELEtBQUssMEJBQTBCLEdBQUcsNEJBQTRCO0FBQzlELEtBQUssWUFBWSxHQUFHLFlBQVk7QUFDaEMsS0FBSyxvQkFBb0IsR0FBRyxvQkFBb0I7QUFDaEQsS0FBSyxxQkFBcUIsR0FBRyx1QkFBdUI7QUFDcEQsS0FBSyxhQUFhLEdBQUcsZUFBZTtBQUNwQyxLQUFLLG1CQUFtQixHQUFHLHFCQUFxQjtBQUNoRCxLQUFLLGtCQUFrQixHQUFHLGtCQUFrQjtBQUM1QyxLQUFLLGdCQUFnQixHQUFHLGdCQUFnQjtBQUN4QyxLQUFLLG9CQUFvQixHQUFHLG9CQUFvQjtBQUNoRCxLQUFLLGVBQWUsR0FBRyxlQUFlO0FBQ3RDLEtBQUsscUJBQXFCLEdBQUcscUJBQXFCO0FBQ2xELEtBQUssb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDakQ7QUFDQSxDQUFDLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRTtBQUMzQixHQUFHLEdBQUc7QUFDTixLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0FBQzdCLE9BQU8sS0FBSyxrQkFBa0IsQ0FBQztBQUMvQixPQUFPLEtBQUssd0JBQXdCLENBQUM7QUFDckMsT0FBTyxLQUFLLGlCQUFpQixDQUFDO0FBQzlCLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQztBQUM3QixPQUFPLEtBQUssV0FBVztBQUN2QixTQUFTLE9BQU8sSUFBSSxDQUFDO0FBQ3JCO0FBQ0EsT0FBTyxLQUFLLGlCQUFpQjtBQUM3QixTQUFTLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQztBQUM3RDtBQUNBLE9BQU87QUFDUCxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxFQUFFO0FBQzlFLFdBQVcsT0FBTyxLQUFLLENBQUM7QUFDeEIsVUFBVTtBQUNWO0FBQ0EsTUFBTTtBQUNOLElBQUksUUFBUSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtBQUNwQyxFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRTtBQUN2RCxHQUFHLElBQUksUUFBUSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDNUIsR0FBRyxJQUFJLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVCO0FBQ0EsR0FBRyxJQUFJLGVBQWUsR0FBRyxTQUFTLGVBQWUsQ0FBQyxJQUFJLEVBQUU7QUFDeEQsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxLQUFLLElBQUksU0FBUyxHQUFHLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDL0csS0FBSyxJQUFJLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUN2RCxTQUFTLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLFNBQVMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQjtBQUNBLEtBQUssS0FBSyxJQUFJLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQ2xILE9BQU8sSUFBSSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDM0QsV0FBVyxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN0QyxXQUFXLFVBQVUsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEM7QUFDQSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzNELE1BQU07QUFDTjtBQUNBLEtBQUssS0FBSyxJQUFJLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDM0gsT0FBTyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3JDLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDNUQsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBLEdBQUcsS0FBSyxJQUFJLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQ2xILEtBQUssSUFBSSxXQUFXLENBQUM7QUFDckI7QUFDQSxLQUFLLElBQUksWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELFNBQVMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDaEMsU0FBUyxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDO0FBQ0EsS0FBSyxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO0FBQ3RCLE9BQU8sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUN2QixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU07QUFDTjtBQUNBLEtBQUssQ0FBQyxXQUFXLEdBQUcsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pGLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSw4QkFBOEIsR0FBRztBQUN4QyxLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLEtBQUssZUFBZSxFQUFFLGVBQWU7QUFDckMsS0FBSyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7QUFDN0IsS0FBSyxRQUFRLEVBQUUsUUFBUTtBQUN2QixJQUFJLENBQUM7QUFDTCxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztBQUNuRixHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JKLEdBQUcsSUFBSSw2QkFBNkIsR0FBRztBQUN2QyxLQUFLLElBQUksRUFBRSxJQUFJLE9BQU8sRUFBRTtBQUN4QixLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLEtBQUssZUFBZSxFQUFFLGVBQWU7QUFDckMsS0FBSyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7QUFDN0IsS0FBSyxRQUFRLEVBQUUsUUFBUTtBQUN2QixLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3ZCLEtBQUssb0JBQW9CLEVBQUUsU0FBUyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO0FBQzFFLE9BQU8sSUFBSSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM1QyxXQUFXLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVCLFdBQVcsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDaEMsV0FBVyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDO0FBQ0EsT0FBTyxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QztBQUNBLE9BQU8sSUFBSSxTQUFTLEVBQUU7QUFDdEIsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNwRSxTQUFTLE9BQU8sU0FBUyxDQUFDO0FBQzFCLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFO0FBQ0EsT0FBTyxJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxjQUFjLEVBQUU7QUFDeEUsU0FBUyxPQUFPLFNBQVMsQ0FBQztBQUMxQixRQUFRO0FBQ1I7QUFDQSxPQUFPLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEUsT0FBTyxPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxRQUFRLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN6SCxNQUFNO0FBQ04sSUFBSSxDQUFDO0FBQ0wsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLDZCQUE2QixDQUFDLENBQUM7QUFDakYsRUFBRTtBQUNGLENBQUMsSUFBSSx5QkFBeUIsR0FBRztBQUNqQyxHQUFHLEtBQUssRUFBRSxTQUFTLEtBQUssQ0FBQyxJQUFJLEVBQUU7QUFDL0IsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDakIsSUFBSTtBQUNKLEdBQUcsZ0JBQWdCLEVBQUUsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7QUFDckQsS0FBSyxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZTtBQUMvQyxTQUFTLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUTtBQUNqQyxTQUFTLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0FBQ2xDLEtBQUssSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUMvRCxLQUFLLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDN0IsS0FBSyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNyRDtBQUNBLEtBQUssSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUNqQyxPQUFPLElBQUksU0FBUyxHQUFHLHFCQUFxQixDQUFDLHNDQUFzQyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNySSxPQUFPLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7QUFDckQsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELE1BQU07QUFDTixJQUFJO0FBQ0osR0FBRyxtQkFBbUIsRUFBRSxTQUFTLG1CQUFtQixDQUFDLElBQUksRUFBRTtBQUMzRCxLQUFLLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlO0FBQy9DLFNBQVMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRO0FBQ2pDLFNBQVMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDbEMsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsU0FBUyxFQUFFO0FBQ2pGLE9BQU8sSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdkQ7QUFDQSxPQUFPLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDbkMsU0FBUyxJQUFJLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxzQ0FBc0MsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkksU0FBUyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0FBQ3ZELFNBQVMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RCxRQUFRO0FBQ1IsTUFBTSxDQUFDLENBQUM7QUFDUixJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksc0NBQXNDLEdBQUcsU0FBUyxzQ0FBc0MsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtBQUNoSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDakUsS0FBSyxJQUFJLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztBQUN0RCxLQUFLLElBQUksUUFBUSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNyRCxLQUFLLE9BQU8sc0JBQXNCLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEwsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2pCLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLGdCQUFnQixHQUFHLFNBQVMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFO0FBQzdELEdBQUcsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHFEQUFxRCxFQUFFLHdDQUF3QyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFOLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLHdCQUF3QixHQUFHO0FBQ2hDLEdBQUcsb0JBQW9CLEVBQUUsU0FBUyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUU7QUFDN0QsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSTtBQUN6QixTQUFTLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0I7QUFDekQsU0FBUyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUs7QUFDM0IsU0FBUyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7QUFDakMsU0FBUyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztBQUNoRCxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTztBQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pCLEtBQUssSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDcEMsS0FBSyxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDO0FBQ0EsS0FBSyxJQUFJLFVBQVUsRUFBRTtBQUNyQixPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQzdCLFNBQVMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsMENBQTBDLEdBQUcsU0FBUyxHQUFHLGdEQUFnRCxHQUFHLHFGQUFxRixDQUFDLENBQUM7QUFDM08sUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMzRCxPQUFPLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckQsT0FBTyxJQUFJLFdBQVcsS0FBSyxZQUFZLEVBQUUsT0FBTztBQUNoRCxPQUFPLElBQUksR0FBRyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0QsT0FBTyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQy9CO0FBQ0EsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztBQUM3QyxTQUFTLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtBQUMxQixRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO0FBQ3RELFNBQVMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO0FBQzFCLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUM7QUFDeEQsU0FBUyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUk7QUFDdkIsUUFBUSxDQUFDLEtBQUssb0JBQW9CLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDekMsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVFLFFBQVEsTUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUN2RSxTQUFTLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNO0FBQ2hDLGFBQWEsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7QUFDckMsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekcsUUFBUSxNQUFNO0FBQ2QsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLFFBQVE7QUFDUjtBQUNBLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ25CLE1BQU07QUFDTixJQUFJO0FBQ0osR0FBRyxvQkFBb0IsRUFBRTtBQUN6QixLQUFLLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDL0IsT0FBTyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDeEI7QUFDQSxPQUFPLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLO0FBQzdCLFdBQVcsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJO0FBQzNCLFdBQVcsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRO0FBQ25DLFdBQVcsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRO0FBQ25DLFdBQVcsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlO0FBQ2pELFdBQVcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPO0FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsT0FBTyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxPQUFPO0FBQzdDO0FBQ0EsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtBQUNoQyxTQUFTLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3hDO0FBQ0EsU0FBUyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7QUFDL0UsV0FBVyxPQUFPO0FBQ2xCLFVBQVU7QUFDVjtBQUNBLFNBQVMsSUFBSSxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNyRCxTQUFTLElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEQ7QUFDQSxTQUFTLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFVBQVUsRUFBRTtBQUN4RixXQUFXLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQztBQUMzRSxXQUFXLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDdEM7QUFDQSxXQUFXLElBQUksVUFBVSxFQUFFO0FBQzNCLGFBQWEsVUFBVSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pGLGFBQWEsVUFBVSxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RHLFlBQVk7QUFDWjtBQUNBLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzlHLFdBQVcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFVBQVU7QUFDVixRQUFRLE1BQU07QUFDZCxTQUFTLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0FBQ3JELFNBQVMsSUFBSSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxTQUFTLEVBQUU7QUFDNUUsV0FBVyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkYsVUFBVSxDQUFDLENBQUM7QUFDWixTQUFTLElBQUksRUFBRSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxTQUFTLEVBQUU7QUFDNUQsV0FBVyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUMsVUFBVSxDQUFDLENBQUM7QUFDWjtBQUNBLFNBQVMsSUFBSSxFQUFFLEVBQUU7QUFDakIsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRixVQUFVO0FBQ1Y7QUFDQSxTQUFTLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUN4QixTQUFTLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBVSxTQUFTLEVBQUU7QUFDdEQsV0FBVyxJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3RDtBQUNBLFdBQVcsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUN6QyxhQUFhLEtBQUssQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4SCxZQUFZO0FBQ1osVUFBVSxDQUFDLENBQUM7QUFDWjtBQUNBLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUMvQixXQUFXLElBQUksSUFBSSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xEO0FBQ0EsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsRUFBRTtBQUN4RCxhQUFhLElBQUksR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoRCxhQUFhLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0FBQ2pFLFlBQVk7QUFDWjtBQUNBLFdBQVcsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRCxXQUFXLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN0QyxVQUFVO0FBQ1YsUUFBUTtBQUNSLE1BQU07QUFDTixJQUFJO0FBQ0osR0FBRywrQkFBK0IsRUFBRSxTQUFTLDRCQUE0QixDQUFDLElBQUksRUFBRTtBQUNoRixLQUFLLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLO0FBQzNCLFNBQVMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDMUIsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQzFCLEtBQUssSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7QUFDakMsU0FBUyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7QUFDakMsU0FBUyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztBQUNuQztBQUNBLEtBQUssSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ3ZDLE9BQU8sSUFBSSxrQkFBa0IsR0FBRyxLQUFLO0FBQ3JDLFdBQVcsd0JBQXdCLENBQUM7QUFDcEMsT0FBTyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRDtBQUNBLE9BQU8sS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUN0SCxTQUFTLElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyQztBQUNBLFNBQVMsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDdkUsV0FBVyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDbkMsYUFBYSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDdkM7QUFDQSxhQUFhLElBQUksYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNwRCxlQUFlLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsY0FBYztBQUNkLFlBQVk7QUFDWjtBQUNBLFdBQVcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7QUFDaEUsYUFBYSx3QkFBd0IsR0FBRyxJQUFJLENBQUM7QUFDN0MsWUFBWTtBQUNaLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLHdCQUF3QixFQUFFO0FBQzdELFNBQVMsT0FBTztBQUNoQixRQUFRO0FBQ1I7QUFDQSxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUMxQixPQUFPLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkMsT0FBTyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsSCxPQUFPLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDbkQ7QUFDQSxPQUFPLElBQUksa0JBQWtCLEVBQUU7QUFDL0IsU0FBUyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hILFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSx3QkFBd0IsRUFBRTtBQUNyQyxTQUFTLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUcsUUFBUTtBQUNSLE1BQU07QUFDTixJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLFNBQVMsY0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7QUFDaEQsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDZDtBQUNBLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQy9DLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCO0FBQ0EsS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7QUFDdkIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQixNQUFNLE1BQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO0FBQy9CLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUIsT0FBTyxFQUFFLEVBQUUsQ0FBQztBQUNaLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRTtBQUNwQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLGNBQWMsRUFBRTtBQUN2QixLQUFLLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQ3RCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLEtBQUssQ0FBQztBQUNoQixFQUFFO0FBQ0Y7QUFDQSxDQUFDLElBQUksV0FBVyxHQUFHLCtEQUErRCxDQUFDO0FBQ25GO0FBQ0EsQ0FBQyxJQUFJLFNBQVMsR0FBRyxTQUFTLFNBQVMsQ0FBQyxRQUFRLEVBQUU7QUFDOUMsR0FBRyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxTQUFTLFNBQVMsR0FBRztBQUN0QixHQUFHLElBQUksWUFBWSxHQUFHLEVBQUU7QUFDeEIsT0FBTyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFDaEM7QUFDQSxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDekUsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDNUM7QUFDQSxLQUFLLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO0FBQ25DLE9BQU8sTUFBTSxJQUFJLFNBQVMsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0sTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQ3ZCLE9BQU8sU0FBUztBQUNoQixNQUFNO0FBQ047QUFDQSxLQUFLLFlBQVksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLFlBQVksQ0FBQztBQUM5QyxLQUFLLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO0FBQy9DLElBQUk7QUFDSjtBQUNBLEdBQUcsWUFBWSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsRUFBRTtBQUM5RSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLEdBQUcsR0FBRyxFQUFFLElBQUksWUFBWSxJQUFJLEdBQUcsQ0FBQztBQUM5RCxFQUFFO0FBQ0YsQ0FBQyxTQUFTLFdBQVcsQ0FBQyxJQUFJLEVBQUU7QUFDNUIsR0FBRyxJQUFJLGNBQWMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0FBQ3hDLE9BQU8sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7QUFDaEQsR0FBRyxJQUFJLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFO0FBQzlELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDO0FBQ0EsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO0FBQ2pDLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQztBQUNoQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksSUFBSSxJQUFJLGFBQWEsRUFBRTtBQUM5QixLQUFLLElBQUksSUFBSSxHQUFHLENBQUM7QUFDakIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsY0FBYyxHQUFHLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQzdDLEVBQUU7QUFDRixDQUFDLFNBQVMsVUFBVSxDQUFDLElBQUksRUFBRTtBQUMzQixHQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7QUFDakMsRUFBRTtBQUNGLENBQUMsU0FBUyxJQUFJLEdBQUc7QUFDakIsR0FBRyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hELEdBQUcsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDeEQsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtBQUNoQyxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUNyRSxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0FBQ2QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakIsRUFBRTtBQUNGLENBQUMsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUM3QixHQUFHLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEM7QUFDQSxHQUFHLFNBQVMsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUN0QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNuQjtBQUNBLEtBQUssT0FBTyxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtBQUN6QyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNO0FBQ3BDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDOUI7QUFDQSxLQUFLLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUM3QixPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNO0FBQ2xDLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxLQUFLLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ2hDLEtBQUssT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlDLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6QyxHQUFHLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckMsR0FBRyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNELEdBQUcsSUFBSSxlQUFlLEdBQUcsTUFBTSxDQUFDO0FBQ2hDO0FBQ0EsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3BDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3RDLE9BQU8sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUMzQixPQUFPLE1BQU07QUFDYixNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDeEI7QUFDQSxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsZUFBZSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVELEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QixJQUFJO0FBQ0o7QUFDQSxHQUFHLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUNwRSxHQUFHLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQyxFQUFFO0FBQ0YsQ0FBQyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDakIsQ0FBQyxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDckIsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDeEIsR0FBRyxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO0FBQy9CLE9BQU8sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDdkIsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCO0FBQ0EsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ3RCLEtBQUssT0FBTyxHQUFHLENBQUM7QUFDaEIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLEdBQUcsRUFBRTtBQUNaLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDekMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLElBQUksR0FBRyxHQUFHLENBQUM7QUFDckIsRUFBRTtBQUNGLENBQUMsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtBQUM5QixHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QjtBQUNBLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQ2pELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDWixFQUFFO0FBQ0YsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDeEIsR0FBRyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixFQUFFO0FBQ0YsQ0FBQyxJQUFJLE1BQU0sR0FBRztBQUNkLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxRQUFRLEVBQUUsUUFBUTtBQUNyQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFNBQVMsRUFBRSxTQUFTO0FBQ3ZCLEdBQUcsUUFBUSxFQUFFLFFBQVE7QUFDckIsR0FBRyxJQUFJLEVBQUUsSUFBSTtBQUNiLEdBQUcsVUFBVSxFQUFFLFVBQVU7QUFDekIsR0FBRyxTQUFTLEVBQUUsV0FBVztBQUN6QixHQUFHLE9BQU8sRUFBRSxTQUFTO0FBQ3JCLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO0FBQ3hCLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNoQjtBQUNBLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDdkMsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLEdBQUcsQ0FBQztBQUNkLEVBQUU7QUFDRjtBQUNBLENBQUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxVQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ25FLEdBQUcsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNqQyxFQUFFLEdBQUcsVUFBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUNoQyxHQUFHLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7QUFDN0MsR0FBRyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE1BQU0sZ0JBQWdCLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDekMsRUFBRSxTQUFTLEVBQUUsSUFBSTtBQUNqQixFQUFFLE9BQU8sRUFBRSxTQUFTO0FBQ3BCLEVBQUUsU0FBUyxFQUFFLFdBQVc7QUFDeEIsRUFBRSxVQUFVLEVBQUUsVUFBVTtBQUN4QixFQUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsUUFBUTtBQUNwQixFQUFFLEdBQUcsRUFBRSxLQUFLO0FBQ1osRUFBRSxTQUFTLEVBQUUsU0FBUztBQUN0QixFQUFFLE9BQU8sRUFBRSxPQUFPO0FBQ2xCLEVBQUUsUUFBUSxFQUFFLFFBQVE7QUFDcEIsRUFBRSxPQUFPLEVBQUUsT0FBTztBQUNsQixFQUFFLFNBQVMsRUFBRSxNQUFNO0FBQ25CLEVBQUUsQ0FBQyxDQUFDO0FBQ0o7QUFDQSxDQUFDLFNBQVMsVUFBVSxDQUFDLFFBQVEsRUFBRTtBQUMvQixHQUFHLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztBQUM5QixFQUFFO0FBQ0YsQ0FBQyxTQUFTLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtBQUNyQyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7QUFDdkssRUFBRTtBQUNGLENBQUMsU0FBUywyQkFBMkIsQ0FBQyxhQUFhLEVBQUU7QUFDckQsR0FBRyxJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsSUFBSSxhQUFhLEtBQUssTUFBTSxJQUFJLGFBQWEsS0FBSyxPQUFPLElBQUksYUFBYSxLQUFLLE1BQU0sRUFBRTtBQUNqSSxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMscUhBQXFILEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ25LLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxhQUFhLENBQUM7QUFDeEIsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUU7QUFDdEQsR0FBRyxJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsRUFBRTtBQUM1QyxLQUFLLE9BQU8sMkJBQTJCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDL0QsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLGFBQWEsQ0FBQztBQUN4QixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsOEJBQThCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7QUFDeEUsR0FBRyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTtBQUN6QyxPQUFPLHFCQUFxQixHQUFHLElBQUksQ0FBQyxtQkFBbUI7QUFDdkQsT0FBTyxtQkFBbUIsR0FBRyxxQkFBcUIsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcscUJBQXFCO0FBQzdGLE9BQU8sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJO0FBQzVCLE9BQU8sSUFBSSxHQUFHLFNBQVMsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsU0FBUztBQUN0RCxPQUFPLG9CQUFvQixHQUFHLElBQUksQ0FBQyxlQUFlO0FBQ2xELE9BQU8sZUFBZSxHQUFHLG9CQUFvQixLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxvQkFBb0IsQ0FBQztBQUN4RjtBQUNBLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtBQUNwQixLQUFLLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMxRSxJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNwQyxHQUFHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3JDO0FBQ0EsR0FBRyxJQUFJLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDLFdBQVcsRUFBRTtBQUMzRCxLQUFLLG1CQUFtQixFQUFFLG1CQUFtQjtBQUM3QyxLQUFLLElBQUksRUFBRSxJQUFJO0FBQ2YsSUFBSSxFQUFFLGdCQUFnQixDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUs7QUFDdkMsT0FBTyxNQUFNLEdBQUcsa0JBQWtCLENBQUMsTUFBTTtBQUN6QyxPQUFPLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7QUFDbEQ7QUFDQSxHQUFHLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pDO0FBQ0EsR0FBRyxLQUFLLElBQUksU0FBUyxHQUFHLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxFQUFFLElBQUksR0FBRztBQUN0RyxLQUFLLElBQUksV0FBVyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZELFNBQVMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQztBQUNBLEtBQUssSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtBQUM3QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztBQUN2RSxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksZUFBZSxHQUFHLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEY7QUFDQSxLQUFLLElBQUksZUFBZSxLQUFLLE1BQU0sRUFBRTtBQUNyQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sTUFBTSxJQUFJLGVBQWUsS0FBSyxNQUFNLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7QUFDaEYsT0FBTyxRQUFRLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDO0FBQzNDLE1BQU0sTUFBTSxJQUFJLGVBQWUsS0FBSyxNQUFNLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7QUFDOUUsT0FBTyxRQUFRLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQztBQUN6QyxNQUFNLE1BQU0sSUFBSSxlQUFlLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7QUFDckUsT0FBTyxRQUFRLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztBQUNwQyxNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPO0FBQ1YsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLGtCQUFrQixFQUFFLElBQUk7QUFDN0IsS0FBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixLQUFLLEtBQUssRUFBRSxLQUFLO0FBQ2pCLEtBQUssTUFBTSxFQUFFLE1BQU07QUFDbkIsS0FBSyxnQkFBZ0IsRUFBRSxnQkFBZ0I7QUFDdkMsSUFBSSxDQUFDO0FBQ0wsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLHdCQUF3QixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtBQUMzRCxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO0FBQzVCLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUMzQixJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7QUFDdEMsS0FBSyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztBQUN2QztBQUNBLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFO0FBQ3pDLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pDLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxXQUFXLENBQUM7QUFDeEIsSUFBSSxNQUFNO0FBQ1YsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLDBFQUEwRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEgsSUFBSTtBQUNKLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUU7QUFDdEMsR0FBRyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO0FBQ2pDLEtBQUssT0FBTztBQUNaLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFFO0FBQ2pELEtBQUssTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUdBQWlHLENBQUMsQ0FBQztBQUN2SSxJQUFJLE1BQU07QUFDVixLQUFLLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFDeEUsSUFBSTtBQUNKLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO0FBQ2xFLEdBQUcsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUk7QUFDeEIsT0FBTyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7QUFDdkQsR0FBRyxJQUFJLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUM5RixHQUFHLElBQUksVUFBVSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDOUI7QUFDQSxHQUFHLElBQUksT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLFVBQVUsRUFBRTtBQUM5QyxLQUFLLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7QUFDbkMsS0FBSyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDO0FBQ0EsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQ2hCLE9BQU8sSUFBSSxHQUFHO0FBQ2QsU0FBUyxJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtBQUM5RixTQUFTLE9BQU8sRUFBRSxNQUFNO0FBQ3hCLFNBQVMsR0FBRyxFQUFFLElBQUk7QUFDbEIsU0FBUyxPQUFPLEVBQUUsSUFBSSxHQUFHLEVBQUU7QUFDM0IsU0FBUyxnQkFBZ0IsRUFBRSxJQUFJLEdBQUcsRUFBRTtBQUNwQyxTQUFTLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRTtBQUM3QixTQUFTLGlCQUFpQixFQUFFLElBQUksR0FBRyxFQUFFO0FBQ3JDLFNBQVMsV0FBVyxFQUFFLElBQUk7QUFDMUIsU0FBUyxJQUFJLEVBQUUsS0FBSztBQUNwQixTQUFTLE1BQU0sRUFBRSxNQUFNO0FBQ3ZCLFFBQVEsQ0FBQztBQUNULE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDcEMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBQzFCLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLEVBQUU7QUFDcEQsS0FBSyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO0FBQ3RDLE9BQU8sSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQ2hELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDdkQsU0FBUyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFO0FBQzlDLFdBQVcsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3ZELFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2xELFdBQVcsSUFBSSxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRDtBQUNBLFdBQVcsSUFBSSxRQUFRLEVBQUU7QUFDekIsYUFBYSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDNUMsYUFBYSxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRTtBQUNwRCxlQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNuRCxjQUFjLENBQUMsQ0FBQztBQUNoQixZQUFZO0FBQ1osVUFBVSxNQUFNLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLEVBQUU7QUFDdkQsV0FBVyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDeEQsV0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2pEO0FBQ0EsV0FBVyxJQUFJLFNBQVMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JEO0FBQ0EsV0FBVyxJQUFJLFNBQVMsRUFBRTtBQUMxQixhQUFhLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3QztBQUNBLGFBQWEsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDckQsZUFBZSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hELGNBQWMsQ0FBQyxDQUFDO0FBQ2hCLFlBQVk7QUFDWixVQUFVLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtBQUM5QyxXQUFXLElBQUksVUFBVSxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUM3RixXQUFXLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUN6RCxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNyRDtBQUNBLFdBQVcsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN2RDtBQUNBLFdBQVcsSUFBSSxVQUFVLEVBQUU7QUFDM0IsYUFBYSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUM7QUFDQSxhQUFhLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQ3RELGVBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3BELGNBQWMsQ0FBQyxDQUFDO0FBQ2hCLFlBQVk7QUFDWixVQUFVO0FBQ1YsUUFBUSxDQUFDLENBQUM7QUFDVixNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsRUFBRTtBQUNoRCxPQUFPLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDekI7QUFDQSxPQUFPLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlDO0FBQ0EsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQ2xELE9BQU8sS0FBSyxDQUFDLFdBQVcsR0FBRztBQUMzQixTQUFTLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7QUFDNUIsUUFBUSxDQUFDO0FBQ1QsTUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixFQUFFLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDdkUsT0FBTyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3pCO0FBQ0EsT0FBTyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQztBQUNBLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUNwRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQ3ZELFNBQVMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsU0FBUyxJQUFJLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDeEYsU0FBUyxJQUFJLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDM0Y7QUFDQSxTQUFTLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN0RDtBQUNBLFNBQVMsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFO0FBQzFDLFdBQVcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLDhCQUE4QixDQUFDLENBQUM7QUFDMUYsVUFBVTtBQUNWLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsTUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixFQUFFLElBQUksS0FBSyxDQUFDLDBCQUEwQixFQUFFLEVBQUU7QUFDeEYsT0FBTyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3pCLE1BQU07QUFDTixJQUFJLENBQUMsQ0FBQztBQUNOO0FBQ0EsR0FBRyxLQUFLLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksR0FBRztBQUN2SCxLQUFLLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDakMsS0FBSyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7QUFDOUIsS0FBSyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7QUFDNUI7QUFDQSxLQUFLLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7QUFDN0MsT0FBTyxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBQzNCLE9BQU8sVUFBVSxHQUFHLElBQUksQ0FBQztBQUN6QixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRTtBQUMvQixPQUFPLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDekIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxLQUFLLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDL0gsT0FBTyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3JDLE9BQU8sSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ2hGLE1BQU07QUFDTjtBQUNBLEtBQUssS0FBSyxJQUFJLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQ2pJLE9BQU8sSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUN0QyxPQUFPLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssVUFBVSxHQUFHLElBQUksQ0FBQztBQUNqRixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksWUFBWSxJQUFJLFVBQVUsRUFBRTtBQUNyQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sTUFBTSxJQUFJLFlBQVksRUFBRTtBQUM5QixPQUFPLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQSxHQUFHLEtBQUssSUFBSSxVQUFVLEdBQUcsK0JBQStCLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQzlHLEtBQUssSUFBSSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDekQsU0FBUyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUNqQyxTQUFTLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckM7QUFDQSxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtBQUN0RixPQUFPLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtBQUMxQixTQUFTLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdDLFFBQVEsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDdkMsU0FBUyxTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdEQsUUFBUSxNQUFNLElBQUksT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFO0FBQzlDLFNBQVMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkMsUUFBUSxNQUFNO0FBQ2QsU0FBUyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7QUFDL0UsUUFBUTtBQUNSLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU87QUFDVixLQUFLLFVBQVUsRUFBRSxVQUFVO0FBQzNCLEtBQUssS0FBSyxFQUFFLFNBQVM7QUFDckIsS0FBSyxNQUFNLEVBQUUsVUFBVTtBQUN2QixJQUFJLENBQUM7QUFDTCxFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFO0FBQ3JGLEdBQUcsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLEVBQUU7QUFDcEQsS0FBSyxJQUFJLElBQUksQ0FBQztBQUNkO0FBQ0EsS0FBSyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO0FBQ3RDLE9BQU8sSUFBSSxHQUFHLFFBQVEsQ0FBQztBQUN2QixNQUFNLE1BQU07QUFDWixPQUFPLElBQUksS0FBSyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDaEY7QUFDQSxPQUFPLElBQUksS0FBSyxDQUFDLHdCQUF3QixFQUFFLEVBQUU7QUFDN0MsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQ3JDLFdBQVcsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDNUMsVUFBVSxNQUFNLElBQUksbUJBQW1CLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtBQUN2RyxXQUFXLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO0FBQzNELGFBQWEscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsYUFBYSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pFLFlBQVksQ0FBQyxDQUFDO0FBQ2QsV0FBVyxPQUFPO0FBQ2xCLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLElBQUksS0FBSyxDQUFDLHFCQUFxQixFQUFFLEVBQUU7QUFDMUMsU0FBUyxJQUFJLEdBQUcsU0FBUyxDQUFDO0FBQzFCLFFBQVEsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO0FBQzlDLFNBQVMsSUFBSSxHQUFHLE9BQU8sQ0FBQztBQUN4QixRQUFRLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUM7QUFDOUMsU0FBUyxJQUFJLEVBQUUsS0FBSztBQUNwQixRQUFRLENBQUMsRUFBRTtBQUNYLFNBQVMsSUFBSSxHQUFHLEtBQUssQ0FBQztBQUN0QixRQUFRLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLEVBQUUsRUFBRTtBQUNqRCxTQUFTLElBQUksR0FBRyxPQUFPLENBQUM7QUFDeEIsUUFBUSxNQUFNO0FBQ2QsU0FBUyxPQUFPO0FBQ2hCLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDN0UsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pDLE1BQU0sQ0FBQyxDQUFDO0FBQ1IsSUFBSSxDQUFDLENBQUM7QUFDTixHQUFHLElBQUksYUFBYSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDakM7QUFDQSxHQUFHLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7QUFDNUQsS0FBSyxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUN0QyxLQUFLLElBQUksUUFBUSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakQ7QUFDQSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7QUFDcEIsT0FBTyxJQUFJLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkQ7QUFDQSxPQUFPLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtBQUMvQixTQUFTLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixHQUFHLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQyxDQUFDO0FBQzNHLFFBQVE7QUFDUjtBQUNBLE9BQU8sUUFBUSxHQUFHO0FBQ2xCLFNBQVMsS0FBSyxFQUFFLEVBQUU7QUFDbEIsU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNuQixRQUFRLENBQUM7QUFDVCxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxRQUFRLENBQUM7QUFDckIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFO0FBQ3BELEtBQUssSUFBSSxLQUFLLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxtQkFBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDMUYsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQ25DLFNBQVMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNwRCxTQUFTLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0FBQ2hFLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDbEQsV0FBVyxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUU7QUFDdEMsYUFBYSxNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBQ25GLFlBQVk7QUFDWjtBQUNBLFdBQVcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4RCxVQUFVLENBQUMsQ0FBQztBQUNaLFFBQVEsTUFBTTtBQUNkLFNBQVMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDekQsV0FBVyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLFdBQVcsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMvQyxXQUFXLElBQUksYUFBYSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZELFdBQVcsSUFBSSxVQUFVLEdBQUcsd0JBQXdCLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDakY7QUFDQSxXQUFXLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtBQUM1QyxhQUFhLE1BQU0sUUFBUSxDQUFDLG1CQUFtQixDQUFDLDhCQUE4QixDQUFDLENBQUM7QUFDaEYsWUFBWTtBQUNaO0FBQ0EsV0FBVyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNoRCxVQUFVLENBQUMsQ0FBQztBQUNaLFFBQVE7QUFDUixNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEVBQUUsRUFBRTtBQUNwRCxPQUFPLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbkQ7QUFDQSxPQUFPLElBQUksWUFBWSxDQUFDLHFCQUFxQixFQUFFLElBQUksWUFBWSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7QUFDdEYsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN4RSxRQUFRLE1BQU07QUFDZCxTQUFTLE1BQU0sWUFBWSxDQUFDLG1CQUFtQixDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFDekYsUUFBUTtBQUNSLE1BQU07QUFDTixJQUFJLENBQUMsQ0FBQztBQUNOLEdBQUcsT0FBTyxhQUFhLENBQUM7QUFDeEIsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLG9CQUFvQixDQUFDLFdBQVcsRUFBRTtBQUM1QyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFO0FBQ3BELEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxFQUFFLE9BQU87QUFDckQsS0FBSyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQyxJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUU7QUFDaEQsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssRUFBRTtBQUNwRCxLQUFLLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUU7QUFDdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdEIsTUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixFQUFFLEVBQUU7QUFDbEQsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQ25DLFNBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0FBQ3JFLFNBQVMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ25ELFFBQVEsTUFBTTtBQUNkLFNBQVMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3hCLFFBQVE7QUFDUixNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEVBQUUsRUFBRTtBQUNwRCxPQUFPLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbEQ7QUFDQSxPQUFPLElBQUksV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksV0FBVyxDQUFDLGtCQUFrQixFQUFFLEVBQUU7QUFDcEYsU0FBUyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0FBQzFELFNBQVMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4QyxRQUFRLE1BQU07QUFDZCxTQUFTLE1BQU0sV0FBVyxDQUFDLG1CQUFtQixDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFDeEYsUUFBUTtBQUNSLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxFQUFFO0FBQ2hELE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3RCLE1BQU07QUFDTixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUU7QUFDRjtBQUNBLENBQUM7QUFDRCxHQUFHLElBQUkscUJBQXFCLEdBQUcsYUFBYSxDQUFDO0FBQzdDO0FBQ0EsR0FBRyxhQUFhLEdBQUcsU0FBUyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNoRSxLQUFLLElBQUksb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7QUFDbkc7QUFDQSxLQUFLLE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFO0FBQzVDLE9BQU8sUUFBUSxFQUFFLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLFFBQVEsS0FBSyxJQUFJLEdBQUcsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLFFBQVE7QUFDaEgsT0FBTyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsU0FBUyxLQUFLLElBQUksR0FBRyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsU0FBUztBQUNySCxPQUFPLFdBQVcsRUFBRSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxXQUFXLEtBQUssSUFBSSxHQUFHLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxXQUFXO0FBQzNILE9BQU8sVUFBVSxFQUFFLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDLFVBQVUsS0FBSyxJQUFJLEdBQUcscUJBQXFCLEdBQUcsUUFBUSxDQUFDLFVBQVU7QUFDeEgsTUFBTSxDQUFDLENBQUM7QUFDUixJQUFJLENBQUM7QUFDTCxFQUFFO0FBQ0YsQ0FBQyxTQUFTLGFBQWEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFO0FBQzlDLEdBQUcsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVE7QUFDbkMsT0FBTyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsZ0JBQWdCO0FBQ3hELE9BQU8sZ0JBQWdCLEdBQUcscUJBQXFCLEtBQUssS0FBSyxDQUFDLEdBQUcsUUFBUSxHQUFHLHFCQUFxQjtBQUM3RixPQUFPLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxVQUFVO0FBQ2pELE9BQU8sVUFBVSxHQUFHLG9CQUFvQixLQUFLLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLENBQUM7QUFDbkcsR0FBRyxJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUTtBQUNyQyxPQUFPLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxTQUFTO0FBQ3BELE9BQU8sU0FBUyxHQUFHLHNCQUFzQixLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsc0JBQXNCO0FBQzFGLE9BQU8sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXO0FBQzNDLE9BQU8sc0JBQXNCLEdBQUcsVUFBVSxDQUFDLFVBQVU7QUFDckQsT0FBTyxVQUFVLEdBQUcsc0JBQXNCLEtBQUssS0FBSyxDQUFDLEdBQUcsVUFBVSxHQUFHLHNCQUFzQixDQUFDO0FBQzVGLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLElBQUksQ0FBQztBQUMvQjtBQUNBLEdBQUcsSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQ3pDLEtBQUssT0FBTyxRQUFRLENBQUM7QUFDckIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLFVBQVUsR0FBRyxVQUFVLElBQUksSUFBSSxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQy9EO0FBQ0EsR0FBRyxJQUFJLGdCQUFnQixFQUFFO0FBQ3pCLEtBQUssSUFBSSxrQkFBa0IsR0FBRyxVQUFVLElBQUksSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzVGLEtBQUssVUFBVSxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzdGLElBQUk7QUFDSjtBQUNBLEdBQUcsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQy9DO0FBQ0EsR0FBRyxJQUFJLFdBQVcsRUFBRTtBQUNwQixLQUFLLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQztBQUNsRCxJQUFJLE1BQU07QUFDVixLQUFLLE9BQU8sVUFBVSxDQUFDO0FBQ3ZCLElBQUk7QUFDSixFQUFFO0FBQ0Y7QUFDQSxDQUFDLElBQUksaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7QUFDM1EsQ0FBQyxJQUFJLGdCQUFnQixHQUFHLGdCQUFnQjtBQUN4QyxLQUFLLGdCQUFnQixHQUFHLGdCQUFnQjtBQUN4QyxLQUFLLFdBQVcsR0FBRyxXQUFXO0FBQzlCLEtBQUssU0FBUyxHQUFHLFdBQVc7QUFDNUIsS0FBSyxnQkFBZ0IsR0FBRyxrQkFBa0I7QUFDMUMsS0FBSyxxQkFBcUIsR0FBRyxxQkFBcUI7QUFDbEQsS0FBSyxZQUFZLEdBQUcsWUFBWTtBQUNoQyxLQUFLLGNBQWMsR0FBRyxjQUFjO0FBQ3BDLEtBQUssa0JBQWtCLEdBQUcsa0JBQWtCO0FBQzVDLEtBQUssZUFBZSxHQUFHLGVBQWU7QUFDdEMsS0FBSyxXQUFXLEdBQUcsYUFBYTtBQUNoQyxLQUFLLHFCQUFxQixHQUFHLHFCQUFxQjtBQUNsRCxLQUFLLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO0FBQ2pELENBQUMsU0FBUyx1Q0FBdUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQzlELEdBQUcsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUs7QUFDekIsT0FBTyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVU7QUFDbkMsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU07QUFDM0IsT0FBTyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCO0FBQ2pELE9BQU8sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVO0FBQ25DLE9BQU8sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTO0FBQ2pDLE9BQU8sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWE7QUFDOUMsT0FBTyxhQUFhLEdBQUcsa0JBQWtCLEtBQUssS0FBSyxDQUFDLEdBQUcsU0FBUyxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsa0JBQWtCO0FBQ3hHLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJO0FBQ3ZCLE9BQU8sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlO0FBQzdDLE9BQU8scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtBQUNyRCxPQUFPLGlCQUFpQixHQUFHLHFCQUFxQixLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxxQkFBcUI7QUFDM0YsT0FBTyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CO0FBQ3hELE9BQU8sb0JBQW9CLEdBQUcscUJBQXFCLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLHFCQUFxQjtBQUM5RixPQUFPLDZCQUE2QixHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztBQUMxRSxHQUFHLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzlDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO0FBQzVFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0FBQ25DLEdBQUcsSUFBSSxJQUFJLEdBQUcsOEJBQThCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtBQUMvRCxLQUFLLGFBQWEsRUFBRSxhQUFhO0FBQ2pDLEtBQUssbUJBQW1CLEVBQUUsaUJBQWlCO0FBQzNDLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDZixLQUFLLGVBQWUsRUFBRSxlQUFlO0FBQ3JDLElBQUksQ0FBQyxDQUFDO0FBQ047QUFDQSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QixJQUFJO0FBQ0o7QUFDQSxHQUFHLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyQztBQUNBLEdBQUcsSUFBSSxVQUFVLEtBQUssS0FBSyxFQUFFO0FBQzdCLEtBQUssSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsU0FBUyxFQUFFO0FBQ3BFLE9BQU8sT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUM7QUFDckQsTUFBTSxDQUFDLENBQUM7QUFDUjtBQUNBLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RixNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDcEI7QUFDQSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3BDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0FBQ25FLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxRQUFRLEdBQUcsOEJBQThCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdEO0FBQ0EsR0FBRyxJQUFJLFFBQVEsRUFBRTtBQUNqQixLQUFLLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0FBQzdDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdEMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsbUNBQW1DLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0SixHQUFHLE9BQU87QUFDVixLQUFLLElBQUksRUFBRSxJQUFJO0FBQ2YsS0FBSyxPQUFPLEVBQUUsT0FBTztBQUNyQixJQUFJLENBQUM7QUFDTCxFQUFFO0FBQ0YsQ0FBQyxTQUFTLHVCQUF1QixDQUFDLFVBQVUsRUFBRTtBQUM5QyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxNQUFNLEVBQUU7QUFDeEMsS0FBSyxNQUFNLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUM1QixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUU7QUFDRixDQUFDLFNBQVMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQy9DLEdBQUcsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO0FBQ3hCLEtBQUssT0FBTyxJQUFJLENBQUM7QUFDakIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtBQUNsQyxLQUFLLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEgsSUFBSSxNQUFNLElBQUksSUFBSSxLQUFLLGNBQWMsRUFBRTtBQUN2QyxLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQ2pCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxNQUFNLENBQUM7QUFDZDtBQUNBLEdBQUcsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO0FBQzNCLEtBQUssTUFBTSxHQUFHLHVCQUF1QixDQUFDO0FBQ3RDLElBQUksTUFBTSxJQUFJLElBQUksS0FBSyxXQUFXLEVBQUU7QUFDcEMsS0FBSyxNQUFNLEdBQUcsd0JBQXdCLENBQUM7QUFDdkMsSUFBSSxNQUFNO0FBQ1YsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ2pELElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdEUsRUFBRTtBQUNGLENBQUMsU0FBUyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFO0FBQ3BGLEdBQUcsSUFBSSxpQkFBaUIsS0FBSyxLQUFLLENBQUMsRUFBRTtBQUNyQyxLQUFLLGlCQUFpQixHQUFHLEtBQUssQ0FBQztBQUMvQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUN2QixHQUFHLElBQUksWUFBWSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEQsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxHQUFHLGdCQUFnQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5RTtBQUNBLEdBQUcsS0FBSyxJQUFJLFNBQVMsR0FBRywrQkFBK0IsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDL0gsS0FBSyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ2pDLEtBQUssSUFBSSxTQUFTLEtBQUssY0FBYyxDQUFDLElBQUksRUFBRSxTQUFTO0FBQ3JELEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixHQUFHLDJCQUEyQixDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxSSxPQUFPLElBQUksRUFBRSxTQUFTO0FBQ3RCLE9BQU8sTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUM7QUFDeEMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNULElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxpQkFBaUIsRUFBRTtBQUMxQixLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuSCxJQUFJO0FBQ0o7QUFDQSxHQUFHLEtBQUssSUFBSSxVQUFVLEdBQUcsK0JBQStCLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQ3BJLEtBQUssSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNuQyxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyw2TUFBNk0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzdkLE9BQU8sT0FBTyxFQUFFLFFBQVEsQ0FBQyxVQUFVO0FBQ25DLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxTQUFTLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQztBQUMzQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ1QsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUU7QUFDbkMsS0FBSyxJQUFJLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDcEcsS0FBSyxTQUFTLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO0FBQ3BELEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNoQyxJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sVUFBVSxDQUFDO0FBQ3JCLEVBQUU7QUFDRixDQUFDLElBQUksZ0JBQWdCLEdBQUc7QUFDeEIsR0FBRyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hKLEdBQUcsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLDhDQUE4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JLLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxzS0FBc0ssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqUixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxzQkFBc0IsR0FBRyxTQUFTLHNCQUFzQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7QUFDakcsR0FBRyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuSCxHQUFHLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0FBQ2hELEdBQUcsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxLQUFLLEVBQUU7QUFDMUQsS0FBSyxJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLFNBQVMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDOUIsU0FBUyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CO0FBQ0EsS0FBSyxJQUFJLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRDtBQUNBLEtBQUssSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUN2SCxPQUFPLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsRyxNQUFNLE1BQU07QUFDWixPQUFPLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ3pGLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxRQUFRLEdBQUc7QUFDcEIsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVU7QUFDL0IsT0FBTyxXQUFXLEVBQUUsVUFBVTtBQUM5QixPQUFPLGdCQUFnQixFQUFFLGdCQUFnQjtBQUN6QyxNQUFNLENBQUM7QUFDUDtBQUNBLEtBQUssSUFBSSxpQkFBaUIsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtBQUNoRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQzdDLFNBQVMsT0FBTyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM1RCxRQUFRLE1BQU07QUFDZCxTQUFTLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BELFFBQVE7QUFDUixNQUFNLE1BQU07QUFDWixPQUFPLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLE1BQU07QUFDTixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxTQUFTLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxvQkFBb0IsRUFBRTtBQUM5RCxHQUFHLElBQUksb0JBQW9CLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDeEMsS0FBSyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFDbEMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLDhDQUE4QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxDQUFDLHlHQUF5RyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDbFksS0FBSyxPQUFPLEVBQUUsUUFBUSxDQUFDLFVBQVU7QUFDakMsSUFBSSxDQUFDLENBQUM7QUFDTixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtBQUN6RSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLENBQUMsd1NBQXdTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLG1CQUFtQixLQUFLLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDLENBQUMsZ2JBQWdiLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNsOEIsS0FBSyxTQUFTLEVBQUUsU0FBUztBQUN6QixLQUFLLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVTtBQUNqQyxLQUFLLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUMsbUJBQW1CLEtBQUssbUJBQW1CLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxnR0FBZ0csQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hQLE9BQU8sWUFBWSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0I7QUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSTtBQUNkLElBQUksQ0FBQyxDQUFDO0FBQ04sRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLDhCQUE4QixDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUU7QUFDaEUsR0FBRyxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsR0FBRyxLQUFLLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDM0gsS0FBSyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQzdCO0FBQ0EsS0FBSyxLQUFLLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDaEgsT0FBTyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ2hDLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNsQyxNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFDM0I7QUFDQSxHQUFHLEtBQUssSUFBSSxVQUFVLEdBQUcsK0JBQStCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksR0FBRztBQUM1SCxLQUFLLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDOUI7QUFDQSxLQUFLLEtBQUssSUFBSSxVQUFVLEdBQUcsK0JBQStCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksR0FBRztBQUM1SCxPQUFPLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDckMsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLE1BQU07QUFDTjtBQUNBLEtBQUssS0FBSyxJQUFJLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDN0gsT0FBTyxJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3RDLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUN4QyxNQUFNO0FBQ047QUFDQSxLQUFLLFdBQVcsR0FBRyxXQUFXLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7QUFDdEQsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQztBQUMzRSxHQUFHLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDckUsR0FBRyxPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsQyxHQUFHLE9BQU87QUFDVixLQUFLLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtBQUNwQixLQUFLLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRyxJQUFJLENBQUM7QUFDTCxFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsbUNBQW1DLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSw2QkFBNkIsRUFBRTtBQUN2SCxHQUFHLElBQUksaUJBQWlCLEtBQUssS0FBSyxDQUFDLEVBQUU7QUFDckMsS0FBSyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFDL0IsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLDZCQUE2QixLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ2pELEtBQUssNkJBQTZCLEdBQUcsS0FBSyxDQUFDO0FBQzNDLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzNCO0FBQ0EsR0FBRyxLQUFLLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDbEgsS0FBSyxJQUFJLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUN6RCxTQUFTLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLFNBQVMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQztBQUNBLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtBQUNyRSxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRyxNQUFNLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixFQUFFO0FBQ2hELE9BQU8sS0FBSyxJQUFJLFdBQVcsR0FBRywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsV0FBVyxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQ3RILFNBQVMsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUMxQyxTQUFTLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNuRCxRQUFRO0FBQ1IsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBLEdBQUcsS0FBSyxJQUFJLFVBQVUsR0FBRywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0FBQzVILEtBQUssSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUMvQjtBQUNBLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFO0FBQzdCLE9BQU8sSUFBSSxtQkFBbUIsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pGO0FBQ0EsT0FBTyxJQUFJLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbkU7QUFDQSxPQUFPLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDL0QsU0FBUyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RSxRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsNkJBQTZCLEVBQUU7QUFDekMsT0FBTyxLQUFLLElBQUksV0FBVyxHQUFHLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLFdBQVcsRUFBRSxFQUFFLElBQUksR0FBRztBQUNwSSxTQUFTLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFDMUMsU0FBUyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbkQsUUFBUTtBQUNSLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3ZDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqQyxJQUFJLENBQUMsQ0FBQztBQUNOLEdBQUcsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ3BCO0FBQ0EsR0FBRyxJQUFJLDZCQUE2QixFQUFFO0FBQ3RDLEtBQUssS0FBSyxJQUFJLFdBQVcsR0FBRywrQkFBK0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxXQUFXLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDeEgsT0FBTyxJQUFJLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM3RCxXQUFXLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUM7QUFDQSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbkMsTUFBTTtBQUNOLElBQUksTUFBTTtBQUNWLEtBQUssSUFBSSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3pCO0FBQ0EsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSx3QkFBd0IsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRTtBQUMvRixPQUFPLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVFLFNBQVMsSUFBSSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekUsYUFBYSxVQUFVLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUM1QyxhQUFhLGNBQWMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQ7QUFDQSxTQUFTLElBQUksY0FBYyxLQUFLLElBQUksRUFBRTtBQUN0QyxXQUFXLElBQUksd0JBQXdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUNwRCxhQUFhLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUgsYUFBYSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDM0MsWUFBWTtBQUNaO0FBQ0EsV0FBVyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3hDLFVBQVUsTUFBTTtBQUNoQixXQUFXLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNyRCxVQUFVO0FBQ1YsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDaEQsU0FBUyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RILFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLE9BQU8sQ0FBQztBQUNsQixFQUFFO0FBQ0Y7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHO0FBQ3BCLEdBQUcsUUFBUSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEtBQUssbUJBQW1CLEdBQUcsMkJBQTJCLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3SSxHQUFHLFNBQVMsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLG1CQUFtQixLQUFLLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekksRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLFNBQVMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7QUFDOUQsR0FBRyxJQUFJLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0I7QUFDbkQsT0FBTyxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztBQUNyQyxHQUFHLE9BQU8scUJBQXFCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsRUFBRSxVQUFVLEVBQUU7QUFDOUUsS0FBSyxJQUFJLE1BQU0sR0FBRztBQUNsQixPQUFPLE9BQU8sRUFBRSxPQUFPO0FBQ3ZCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxLQUFLLEVBQUUsR0FBRztBQUNqQixNQUFNLENBQUM7QUFDUDtBQUNBLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDM0MsT0FBTyxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUMsTUFBTSxNQUFNO0FBQ1osT0FBTyxPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QyxNQUFNO0FBQ04sSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDakIsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxJQUFJLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUNyQyxDQUFDLElBQUksWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUN4QixDQUFDLElBQUksa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDO0FBQ3RFLENBQUMsSUFBSSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFDdEMsQ0FBQyxJQUFJLFdBQVcsR0FBRztBQUNuQixHQUFHLG1CQUFtQixFQUFFLHFCQUFxQjtBQUM3QyxHQUFHLFVBQVUsRUFBRSxZQUFZO0FBQzNCLEdBQUcsZ0JBQWdCLEVBQUUsa0JBQWtCO0FBQ3ZDLEdBQUcseUJBQXlCLEVBQUUsMkJBQTJCO0FBQ3pELEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE9BQU8sR0FBRyxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWTtBQUN4SixHQUFHLElBQUksUUFBUSxDQUFDO0FBQ2hCO0FBQ0EsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtBQUM1RixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlFLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQztBQUNwQixDQUFDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUN6QjtBQUNBLENBQUMsSUFBSSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFO0FBQzlELEdBQUcsSUFBSSx5QkFBeUIsR0FBRyxXQUFXLENBQUMseUJBQXlCLENBQUM7QUFDekUsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDakMsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUM1QixHQUFHLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQzlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDYjtBQUNBLEdBQUcsSUFBSSxXQUFXLEdBQUcsU0FBUyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7QUFDakUsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNyQixLQUFLLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0IsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ3JCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUN4QixLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQztBQUMvRCxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ25ELEdBQUcsV0FBVyxDQUFDLHdCQUF3QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ25ELEdBQUcsV0FBVyxDQUFDLHNCQUFzQixFQUFFLDRCQUE0QixDQUFDLENBQUM7QUFDckUsR0FBRyxXQUFXLENBQUMsYUFBYSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVKLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2hMLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNuSCxHQUFHLFdBQVcsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDN0gsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUN0SCxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFDdEksR0FBRyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDbkQsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ3pHLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3RHLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNyRCxHQUFHLFdBQVcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZILEdBQUcsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUN2RCxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDdkMsR0FBRyxXQUFXLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQ3BGLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztBQUMxRSxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQzFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixFQUFFLFdBQVcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsR0FBRyxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUNuUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDaEYsR0FBRyxXQUFXLENBQUMsYUFBYSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDMUYsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxZQUFZLEdBQUcsU0FBUyxDQUFDLEdBQUcseUJBQXlCLEdBQUcsSUFBSSxJQUFJLGVBQWUsR0FBRyx5QkFBeUIsR0FBRyxNQUFNLENBQUMsSUFBSSxlQUFlLEdBQUcseUJBQXlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7QUFDaE8sR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0FBQ3BDLEdBQUcsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzNFLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDckYsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0FBQ3BDLEdBQUcsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzNFLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDckYsR0FBRyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDN0YsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZGLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5SCxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUM7QUFDNUMsR0FBRyxXQUFXLENBQUMsYUFBYSxFQUFFLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxXQUFXLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDOUgsR0FBRyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLEdBQUcsV0FBVyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDN0ksR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDMUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFDbEQsR0FBRyxXQUFXLENBQUMsU0FBUyxFQUFFLDJCQUEyQixDQUFDLENBQUM7QUFDdkQsRUFBRSxFQUFFLHFFQUFxRSxDQUFDLENBQUM7QUFDM0U7QUFDQSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xEO0FBQ0EsQ0FBQyxJQUFJLFlBQVksR0FBRyxTQUFTLFlBQVksQ0FBQyxPQUFPLEVBQUU7QUFDbkQsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLEdBQUc7QUFDeEQsS0FBSyxLQUFLLEVBQUUsSUFBSTtBQUNoQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUNoQyxLQUFLLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLE9BQU8sRUFBRSxDQUFDLEVBQUU7QUFDbkMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLEtBQUssT0FBTyxPQUFPLENBQUM7QUFDcEIsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1YsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksY0FBYyxHQUFHLFlBQVksQ0FBQztBQUNuQztBQUNBLENBQUMsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBQzVCO0FBQ0EsQ0FBQyxJQUFJLG9CQUFvQixHQUFHLFNBQVMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUM5RCxHQUFHLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEMsR0FBRyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDO0FBQ0EsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7QUFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDWixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNaLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoRixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxxQkFBcUIsR0FBRyxTQUFTLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDaEUsR0FBRyxPQUFPLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyQyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxhQUFhLEdBQUc7QUFDckIsR0FBRyxrQkFBa0IsRUFBRSxvQkFBb0I7QUFDM0MsR0FBRyxtQkFBbUIsRUFBRSxxQkFBcUI7QUFDN0MsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxVQUFVO0FBQzFDLEtBQUssa0JBQWtCLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDO0FBQ3ZELENBQUMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUU7QUFDckIsS0FBSyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDLElBQUksb0JBQW9CLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDO0FBQzdEO0FBQ0EsQ0FBQyxJQUFJLFFBQVEsR0FBRyxZQUFZO0FBQzVCLEdBQUcsU0FBUyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUNyQyxLQUFLLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkM7QUFDQSxLQUFLLElBQUksT0FBTyxZQUFZLE1BQU0sRUFBRTtBQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtBQUMzRyxTQUFTLE9BQU8sT0FBTyxDQUFDO0FBQ3hCLFFBQVEsTUFBTTtBQUNkLFNBQVMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDbkMsUUFBUTtBQUNSLE1BQU0sTUFBTSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtBQUM3QyxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDMUQsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFO0FBQ3hDLE9BQU8sTUFBTSxJQUFJLFNBQVMsQ0FBQyx5QkFBeUIsR0FBRyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDckYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxLQUFLLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQzVCLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUNsQyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQzFELEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BGO0FBQ0EsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ2IsT0FBTyxNQUFNLElBQUksU0FBUyxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQzFELE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7QUFDeEIsS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QixLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEI7QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtBQUM1RCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNwRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtBQUM1RCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNwRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtBQUM1RCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNwRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM1QixNQUFNLE1BQU07QUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUU7QUFDM0QsU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDbEMsV0FBVyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN6QjtBQUNBLFdBQVcsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxrQkFBa0IsRUFBRTtBQUNyRCxhQUFhLE9BQU8sR0FBRyxDQUFDO0FBQ3hCLFlBQVk7QUFDWixVQUFVO0FBQ1Y7QUFDQSxTQUFTLE9BQU8sRUFBRSxDQUFDO0FBQ25CLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM5QyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNuQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDakM7QUFDQSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLEdBQUc7QUFDckMsS0FBSyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDckU7QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2RCxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN6QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsR0FBRztBQUN6QyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN6QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDNUMsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BFO0FBQ0EsS0FBSyxJQUFJLEVBQUUsS0FBSyxZQUFZLE1BQU0sQ0FBQyxFQUFFO0FBQ3JDLE9BQU8sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDaEUsU0FBUyxPQUFPLENBQUMsQ0FBQztBQUNsQixRQUFRO0FBQ1I7QUFDQSxPQUFPLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDekMsT0FBTyxPQUFPLENBQUMsQ0FBQztBQUNoQixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRTtBQUNwRCxLQUFLLElBQUksRUFBRSxLQUFLLFlBQVksTUFBTSxDQUFDLEVBQUU7QUFDckMsT0FBTyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQyxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUosSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FBUyxVQUFVLENBQUMsS0FBSyxFQUFFO0FBQ2xELEtBQUssSUFBSSxFQUFFLEtBQUssWUFBWSxNQUFNLENBQUMsRUFBRTtBQUNyQyxPQUFPLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO0FBQzdELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNqQixNQUFNLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO0FBQ3BFLE9BQU8sT0FBTyxDQUFDLENBQUM7QUFDaEIsTUFBTSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO0FBQ3JFLE9BQU8sT0FBTyxDQUFDLENBQUM7QUFDaEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZjtBQUNBLEtBQUssR0FBRztBQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQyxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsT0FBTyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRDtBQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDL0MsU0FBUyxPQUFPLENBQUMsQ0FBQztBQUNsQixRQUFRLE1BQU0sSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25DLFNBQVMsT0FBTyxDQUFDLENBQUM7QUFDbEIsUUFBUSxNQUFNLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtBQUNuQyxTQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbkIsUUFBUSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMzQixTQUFTLFNBQVM7QUFDbEIsUUFBUSxNQUFNO0FBQ2QsU0FBUyxPQUFPLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzQyxRQUFRO0FBQ1IsTUFBTSxRQUFRLEVBQUUsQ0FBQyxFQUFFO0FBQ25CLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRTtBQUN0RCxLQUFLLElBQUksRUFBRSxLQUFLLFlBQVksTUFBTSxDQUFDLEVBQUU7QUFDckMsT0FBTyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQyxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmO0FBQ0EsS0FBSyxHQUFHO0FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixPQUFPLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hEO0FBQ0EsT0FBTyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtBQUMvQyxTQUFTLE9BQU8sQ0FBQyxDQUFDO0FBQ2xCLFFBQVEsTUFBTSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDbkMsU0FBUyxPQUFPLENBQUMsQ0FBQztBQUNsQixRQUFRLE1BQU0sSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25DLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNuQixRQUFRLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzNCLFNBQVMsU0FBUztBQUNsQixRQUFRLE1BQU07QUFDZCxTQUFTLE9BQU8sb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNDLFFBQVE7QUFDUixNQUFNLFFBQVEsRUFBRSxDQUFDLEVBQUU7QUFDbkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRTtBQUNsRCxLQUFLLFFBQVEsT0FBTztBQUNwQixPQUFPLEtBQUssVUFBVTtBQUN0QixTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNwQyxTQUFTLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEIsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdEIsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNyQyxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxVQUFVO0FBQ3RCLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEIsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdEIsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNyQyxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxVQUFVO0FBQ3RCLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDdkMsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNyQyxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxZQUFZO0FBQ3hCLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDM0MsV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN6QyxVQUFVO0FBQ1Y7QUFDQSxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3JDLFNBQVMsTUFBTTtBQUNmO0FBQ0EsT0FBTyxLQUFLLE9BQU87QUFDbkIsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNuRixXQUFXLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4QixVQUFVO0FBQ1Y7QUFDQSxTQUFTLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEIsU0FBUyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM5QixTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxPQUFPO0FBQ25CLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDL0QsV0FBVyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDeEIsVUFBVTtBQUNWO0FBQ0EsU0FBUyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN4QixTQUFTLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzlCLFNBQVMsTUFBTTtBQUNmO0FBQ0EsT0FBTyxLQUFLLE9BQU87QUFDbkIsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMzQyxXQUFXLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4QixVQUFVO0FBQ1Y7QUFDQSxTQUFTLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzlCLFNBQVMsTUFBTTtBQUNmO0FBQ0EsT0FBTyxLQUFLLEtBQUs7QUFDakIsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMzQyxXQUFXLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxVQUFVLE1BQU07QUFDaEIsV0FBVyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztBQUMxQztBQUNBLFdBQVcsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDNUIsYUFBYSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7QUFDekQsZUFBZSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEIsY0FBYztBQUNkLFlBQVk7QUFDWjtBQUNBLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDekIsYUFBYSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxZQUFZO0FBQ1osVUFBVTtBQUNWO0FBQ0EsU0FBUyxJQUFJLFVBQVUsRUFBRTtBQUN6QixXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDbEQsYUFBYSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDNUMsZUFBZSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pELGNBQWM7QUFDZCxZQUFZLE1BQU07QUFDbEIsYUFBYSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9DLFlBQVk7QUFDWixVQUFVO0FBQ1Y7QUFDQSxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU87QUFDUCxTQUFTLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDbkUsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDN0IsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxNQUFNLENBQUM7QUFDakIsRUFBRSxFQUFFLENBQUM7QUFDTDtBQUNBLENBQUMsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCO0FBQ0EsQ0FBQyxJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO0FBQzNDLENBQUMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUU7QUFDckIsS0FBSyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNwQjtBQUNBLENBQUMsSUFBSSxPQUFPLEdBQUcsU0FBUyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUNoRCxHQUFHLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckM7QUFDQSxHQUFHLElBQUksT0FBTyxZQUFZLFFBQVEsRUFBRTtBQUNwQyxLQUFLLE9BQU8sT0FBTyxDQUFDO0FBQ3BCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7QUFDcEMsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxZQUFZLEVBQUU7QUFDdEMsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVEO0FBQ0EsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUN6QixLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQ2pCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSTtBQUNQLEtBQUssT0FBTyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO0FBQ2hCLEtBQUssT0FBTyxJQUFJLENBQUM7QUFDakIsSUFBSTtBQUNKLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUM7QUFDekI7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLFNBQVMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDaEQsR0FBRyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDL0IsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUN2QjtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUM5QyxHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQy9CLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7QUFDckI7QUFDQSxDQUFDLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtBQUMvRCxHQUFHLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQ3BDLEtBQUssVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUMxQixLQUFLLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFDekIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJO0FBQ1AsS0FBSyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUM1RSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7QUFDaEIsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNqQjtBQUNBLENBQUMsSUFBSSxTQUFTLEdBQUcsU0FBUyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDL0MsR0FBRyxPQUFPLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakUsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQztBQUM3QjtBQUNBLENBQUMsSUFBSSxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDckMsR0FBRyxPQUFPLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ25CO0FBQ0EsQ0FBQyxJQUFJLElBQUksR0FBRyxTQUFTLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFO0FBQzlDLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFO0FBQ25DLEtBQUssT0FBTyxJQUFJLENBQUM7QUFDakIsSUFBSSxNQUFNO0FBQ1YsS0FBSyxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEMsS0FBSyxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEMsS0FBSyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztBQUMvRCxLQUFLLElBQUksTUFBTSxHQUFHLE1BQU0sR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3RDLEtBQUssSUFBSSxhQUFhLEdBQUcsTUFBTSxHQUFHLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDcEQ7QUFDQSxLQUFLLEtBQUssSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO0FBQ3pCLE9BQU8sSUFBSSxHQUFHLEtBQUssT0FBTyxJQUFJLEdBQUcsS0FBSyxPQUFPLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTtBQUNsRSxTQUFTLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNsQyxXQUFXLE9BQU8sTUFBTSxHQUFHLEdBQUcsQ0FBQztBQUMvQixVQUFVO0FBQ1YsUUFBUTtBQUNSLE1BQU07QUFDTjtBQUNBLEtBQUssT0FBTyxhQUFhLENBQUM7QUFDMUIsSUFBSTtBQUNKLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDbkI7QUFDQSxDQUFDLElBQUksS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDdEMsR0FBRyxPQUFPLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDdkMsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztBQUNyQjtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUN0QyxHQUFHLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN2QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3JCO0FBQ0EsQ0FBQyxJQUFJLEtBQUssR0FBRyxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFO0FBQ3RDLEdBQUcsT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3ZDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7QUFDckI7QUFDQSxDQUFDLElBQUksVUFBVSxHQUFHLFNBQVMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDeEQsR0FBRyxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVDLEdBQUcsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDeEUsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHLFVBQVUsQ0FBQztBQUMvQjtBQUNBLENBQUMsSUFBSSxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDL0MsR0FBRyxPQUFPLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ25DLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFDM0I7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDaEQsR0FBRyxPQUFPLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFDbkM7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0FBQ3ZELEdBQUcsSUFBSSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLEdBQUcsSUFBSSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLEdBQUcsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEUsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksY0FBYyxHQUFHLFlBQVksQ0FBQztBQUNuQztBQUNBLENBQUMsSUFBSSxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUN2QyxHQUFHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDcEMsS0FBSyxPQUFPLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLElBQUksQ0FBQyxDQUFDO0FBQ04sRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztBQUNuQjtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsU0FBUyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUN6QyxHQUFHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDcEMsS0FBSyxPQUFPLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLElBQUksQ0FBQyxDQUFDO0FBQ04sRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztBQUNyQjtBQUNBLENBQUMsSUFBSSxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDckMsR0FBRyxPQUFPLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ25CO0FBQ0EsQ0FBQyxJQUFJLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUNyQyxHQUFHLE9BQU8sV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDbkI7QUFDQSxDQUFDLElBQUksS0FBSyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0FBQ3ZDLEdBQUcsT0FBTyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztBQUNyQjtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDdkMsR0FBRyxPQUFPLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3JCO0FBQ0EsQ0FBQyxJQUFJLEtBQUssR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUN2QyxHQUFHLE9BQU8sV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7QUFDckI7QUFDQSxDQUFDLElBQUksS0FBSyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUMzQyxHQUFHLFFBQVEsRUFBRTtBQUNiLEtBQUssS0FBSyxLQUFLO0FBQ2YsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUNoRCxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ2hELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RCO0FBQ0EsS0FBSyxLQUFLLEtBQUs7QUFDZixPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ2hELE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDaEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEI7QUFDQSxLQUFLLEtBQUssRUFBRSxDQUFDO0FBQ2IsS0FBSyxLQUFLLEdBQUcsQ0FBQztBQUNkLEtBQUssS0FBSyxJQUFJO0FBQ2QsT0FBTyxPQUFPLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xDO0FBQ0EsS0FBSyxLQUFLLElBQUk7QUFDZCxPQUFPLE9BQU8sT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbkM7QUFDQSxLQUFLLEtBQUssR0FBRztBQUNiLE9BQU8sT0FBTyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsQztBQUNBLEtBQUssS0FBSyxJQUFJO0FBQ2QsT0FBTyxPQUFPLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ25DO0FBQ0EsS0FBSyxLQUFLLEdBQUc7QUFDYixPQUFPLE9BQU8sTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEM7QUFDQSxLQUFLLEtBQUssSUFBSTtBQUNkLE9BQU8sT0FBTyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNuQztBQUNBLEtBQUs7QUFDTCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDdEQsSUFBSTtBQUNKLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7QUFDckI7QUFDQSxDQUFDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxFQUFFO0FBQ3JCLEtBQUssR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDcEI7QUFDQSxDQUFDLElBQUksUUFBUSxHQUFHLFNBQVMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDbEQsR0FBRyxJQUFJLE9BQU8sWUFBWSxRQUFRLEVBQUU7QUFDcEMsS0FBSyxPQUFPLE9BQU8sQ0FBQztBQUNwQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQ3BDLEtBQUssT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQ3BDLEtBQUssT0FBTyxJQUFJLENBQUM7QUFDakIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztBQUMzQixHQUFHLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUNwQjtBQUNBLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDckIsS0FBSyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDN0MsSUFBSSxNQUFNO0FBQ1YsS0FBSyxJQUFJLElBQUksQ0FBQztBQUNkO0FBQ0EsS0FBSyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDeEgsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7QUFDcEYsU0FBUyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDcEYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4QyxJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxPQUFPLElBQUksQ0FBQztBQUNuQyxHQUFHLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0YsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQztBQUMzQjtBQUNBLENBQUMsSUFBSSxRQUFRLEdBQUcsU0FBUyxRQUFRLENBQUMsT0FBTyxFQUFFO0FBQzNDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLE9BQU8sR0FBRztBQUM1RSxLQUFLLElBQUksTUFBTSxDQUFDO0FBQ2hCLEtBQUssT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsUUFBUSxDQUFDLFFBQVEsRUFBRTtBQUN6RCxPQUFPLE9BQU8sQ0FBQyxFQUFFO0FBQ2pCLFNBQVMsUUFBUSxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJO0FBQzlDLFdBQVcsS0FBSyxDQUFDO0FBQ2pCLGFBQWEsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDaEM7QUFDQSxXQUFXLEtBQUssQ0FBQztBQUNqQixhQUFhLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDMUIsZUFBZSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNqQyxlQUFlLE1BQU07QUFDckIsY0FBYztBQUNkO0FBQ0EsYUFBYSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUMvQixhQUFhLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNqQztBQUNBLFdBQVcsS0FBSyxDQUFDO0FBQ2pCLGFBQWEsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDbEMsYUFBYSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUMvQixhQUFhLE1BQU07QUFDbkI7QUFDQSxXQUFXLEtBQUssQ0FBQyxDQUFDO0FBQ2xCLFdBQVcsS0FBSyxLQUFLO0FBQ3JCLGFBQWEsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDcEMsVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxDQUFDO0FBQ04sRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUN2QixDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFDMUI7QUFDQSxDQUFDLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRTtBQUN4QixHQUFHLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztBQUNuQjtBQUNBLEdBQUcsSUFBSSxFQUFFLElBQUksWUFBWSxPQUFPLENBQUMsRUFBRTtBQUNuQyxLQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQzFCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDcEIsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNwQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ25CO0FBQ0EsR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO0FBQ25ELEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRTtBQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkIsTUFBTSxDQUFDLENBQUM7QUFDUixJQUFJLE1BQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUNwQyxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQ2YsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksRUFBRTtBQUNoRCxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7QUFDM0IsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFDekUsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3hCLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztBQUN4QjtBQUNBLEdBQUcsSUFBSSxJQUFJLEVBQUU7QUFDYixLQUFLLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxJQUFJLEVBQUU7QUFDYixLQUFLLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtBQUMzQixLQUFLLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtBQUMzQixLQUFLLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN0QixHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDcEIsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNwQixHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQ2YsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFVBQVUsSUFBSSxFQUFFO0FBQ2pELEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtBQUMzQixLQUFLLE9BQU87QUFDWixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtBQUNsQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hDLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztBQUN4QixHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDcEI7QUFDQSxHQUFHLElBQUksSUFBSSxFQUFFO0FBQ2IsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0QixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BCO0FBQ0EsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNuQixLQUFLLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ2pCLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFVLElBQUksRUFBRTtBQUM5QyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDM0IsS0FBSyxPQUFPO0FBQ1osSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDbEIsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQyxJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDeEIsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNwQixHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3BCO0FBQ0EsR0FBRyxJQUFJLElBQUksRUFBRTtBQUNiLEtBQUssSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDdEIsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNwQjtBQUNBLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDbkIsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0QixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNqQixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsWUFBWTtBQUN0QyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDckQsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3RCLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxZQUFZO0FBQ3pDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNyRCxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDdEIsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLFlBQVk7QUFDckMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNuQixLQUFLLE9BQU8sU0FBUyxDQUFDO0FBQ3RCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDN0IsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQzlCO0FBQ0EsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDbEIsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBSSxNQUFNO0FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0QixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNqQixHQUFHLE9BQU8sR0FBRyxDQUFDO0FBQ2QsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFlBQVk7QUFDdkMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNuQixLQUFLLE9BQU8sU0FBUyxDQUFDO0FBQ3RCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDN0IsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQzlCO0FBQ0EsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDbEIsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBSSxNQUFNO0FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0QixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNqQixHQUFHLE9BQU8sR0FBRyxDQUFDO0FBQ2QsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRTtBQUNsRCxHQUFHLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3pCO0FBQ0EsR0FBRyxLQUFLLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzdELEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0MsS0FBSyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUMxQixJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRTtBQUN6RCxHQUFHLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3pCO0FBQ0EsR0FBRyxLQUFLLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDM0UsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzQyxLQUFLLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQzFCLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEVBQUU7QUFDdEMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDdEUsS0FBSyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUMxQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO0FBQ25DLEtBQUssT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3pCLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEVBQUU7QUFDN0MsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDdEUsS0FBSyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUMxQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO0FBQ25DLEtBQUssT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3pCLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFO0FBQzlDLEdBQUcsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7QUFDekIsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQzNCO0FBQ0EsR0FBRyxLQUFLLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLElBQUks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Q0EsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RCO0FBQ0EsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDdkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFO0FBQ2xDLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xCLEtBQUssSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCO0FBQ0EsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDL0MsT0FBTyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEIsT0FBTyxJQUFJLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxPQUFPLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDeEQsU0FBUyxJQUFJLE1BQU0sR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RDO0FBQ0EsU0FBUyxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDekIsV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMx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SSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxLQUFLLElBQUksR0FBRztBQUMxRixPQUFPLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDOUI7QUFDQSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUI7QUFDQSxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDckIsTUFBTTtBQUNOLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxJQUFJLEdBQUcsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN0QyxHQUFHLElBQUksSUFBSSxFQUFFO0FBQ2IsS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQzFCLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFELEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUM7QUFDaEMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLFNBQVMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUU7QUFDL0QsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNsQixHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLEdBQUcs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SSxDQUFDLFFBQVEsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUMxSSxLQUFLLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ2xFLEtBQUssSUFBSSw0QkFBNEIsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDakosS0FBSyxJQUFJLDBCQUEwQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNoTSxLQUFLLElBQUksNkJBQTZCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ25NLEtBQUssT0FBTyx1QkFBdUIsSUFBSSx1QkFBdUIsSUFBSSxVQUFVLElBQUksNEJBQTRCLElBQUksMEJBQTBCLElBQUksNkJBQTZCLENBQUM7QUFDNUssSUFBSSxD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QUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsUUFBUTtBQUNSO0FBQ0EsT0FBTyxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BELE1BQU07QUFDTixLQUFLLEtBQUssRUFBRSxTQUFTLEtBQUssR0FBRztBQUM3QixPQUFPLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUN4QjtBQUNBLE9BQU8sS0FBSyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEcsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLFFBQVE7QUFDUjtBQUNBLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDckQsU0FBUyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xFLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsTUFBTTtBQUNOLEtBQUssT0FBTyxFQUFFLFNBQVMsT0FBTyxHQUFHO0FBQ2pDLE9BQU8sS0FBSyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDdEcsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLFFBQVE7QUFDUjtBQUNBLE9BQU8sSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzNCO0FBQ0EsT0FBTyxJQUFJLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRTtBQUNyQyxTQUFTLE1BQU0sU0FBUyxDQUFDLCtDQUErQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7QUFDdkcsUUFBUTtBQUNSO0FBQ0EsT0FBTyxJQUFJLEdBQUcsQ0FBQztBQUNmO0FBQ0EsT0FBTyxJQUFJO0FBQ1gsU0FBUyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFO0FBQ3JCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLFNBQVMsT0FBTztBQUNoQixRQUFRO0FBQ1I7QUFDQSxPQUFPLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLEVBQUU7QUFDekMsU0FBUyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDbkMsUUFBUSxFQUFFLFVBQVUsR0FBRyxFQUFFO0FBQ3pCLFNBQVMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsUUFBUSxDQUFDLENBQUM7QUFDVixNQUFNO0FBQ04sSUFBSSxDQUFDO0FBQ0wsR0FBRyxPQUFPLEdBQUcsQ0FBQztBQUNkLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFO0FBQzFELEdBQUcsSUFBSSxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksY0FBYyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtBQUNoRixLQUFLLE9BQU87QUFDWixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksR0FBRyxDQUFDO0FBQ1g7QUFDQSxHQUFHLElBQUksY0FBYyxFQUFFO0FBQ3ZCLEtBQUssR0FBRyxHQUFHLGdCQUFnQixHQUFHLElBQUksR0FBRyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7QUFDbkYsSUFBSSxNQUFNO0FBQ1YsS0FBSyxHQUFHLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLFdBQVcsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQzlELElBQUk7QUFDSjtBQUNBLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDL0MsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQy9CLEdBQUcsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO0FBQ3hDLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDZixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQzdCLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUk7QUFDdkIsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUs7QUFDekIsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUk7QUFDeEIsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUs7QUFDMUIsT0FBTyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUM5QixHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5QyxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNDLEdBQUcsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25ELEdBQUcsWUFBWSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3REO0FBQ0EsR0FBRyxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7QUFDMUIsS0FBSyxNQUFNLFNBQVMsQ0FBQyxvRUFBb0UsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2xILElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7QUFDakMsS0FBSyxJQUFJLE1BQU0sQ0FBQztBQUNoQjtBQUNBLEtBQUssSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtBQUNoRSxPQUFPLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQzdCLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtBQUMzRCxPQUFPLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEQsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO0FBQ3ZELE9BQU8sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNoRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO0FBQ3JDLE9BQU8sSUFBSSxHQUFHLE1BQU0sQ0FBQztBQUNyQixNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUNsQyxLQUFLLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQzFCLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxjQUFjLENBQUM7QUFDekIsS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUNmLEtBQUssS0FBSyxFQUFFLEtBQUs7QUFDakIsS0FBSyxJQUFJLEVBQUUsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQy9CLE9BQU8sT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0QyxNQUFNO0FBQ04sS0FBSyxLQUFLLEVBQUUsU0FBUyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDbEQsT0FBTyxJQUFJLE1BQU0sRUFBRTtBQUNuQixTQUFTLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEQsUUFBUSxNQUFNLElBQUksT0FBTyxFQUFFO0FBQzNCLFNBQVMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3BHLFdBQVcsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1RCxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDZCxRQUFRLE1BQU07QUFDZCxTQUFTLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzFDLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxDQUFDLENBQUM7QUFDTixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRTtBQUMvQixHQUFHLE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFlBQVk7QUFDcEUsS0FBSyxLQUFLLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtBQUNwRyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEMsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BDLElBQUksQ0FBQyxDQUFDO0FBQ04sRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLGNBQWMsQ0FBQyxLQUFLLEVBQUU7QUFDaEMsR0FBRyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSTtBQUN4QixPQUFPLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSztBQUMxQixPQUFPLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSTtBQUN4QixPQUFPLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQzNCLEdBQUcsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxPQUFPLEdBQUc7QUFDL0UsS0FBSyxJQUFJLE1BQU07QUFDZixTQUFTLEtBQUs7QUFDZCxTQUFTLElBQUk7QUFDYixTQUFTLEtBQUs7QUFDZCxTQUFTLEdBQUc7QUFDWixTQUFTLE1BQU07QUFDZixTQUFTLEtBQUssR0FBRyxTQUFTLENBQUM7QUFDM0I7QUFDQSxLQUFLLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQyxRQUFRLEVBQUU7QUFDekQsT0FBTyxPQUFPLENBQUMsRUFBRTtBQUNqQixTQUFTLFFBQVEsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSTtBQUM5QyxXQUFXLEtBQUssQ0FBQztBQUNqQixhQUFhLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLGFBQWEsT0FBTyxhQUFhLENBQUM7QUFDbEM7QUFDQSxXQUFXLEtBQUssQ0FBQztBQUNqQixhQUFhLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0FBQ3BDO0FBQ0EsYUFBYSxLQUFLLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7QUFDcEcsZUFBZSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFDLGNBQWM7QUFDZDtBQUNBLGFBQWEsSUFBSSxNQUFNLEVBQUU7QUFDekIsZUFBZSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNqQyxlQUFlLE1BQU07QUFDckIsY0FBYztBQUNkO0FBQ0EsYUFBYSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekMsYUFBYSxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ25EO0FBQ0EsV0FBVyxLQUFLLENBQUM7QUFDakIsYUFBYSxJQUFJO0FBQ2pCLGVBQWUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsS0FBSyxFQUFFO0FBQ3ZELGlCQUFpQixJQUFJLE1BQU0sRUFBRSxPQUFPO0FBQ3BDLGlCQUFpQixNQUFNLEdBQUc7QUFDMUIsbUJBQW1CLEtBQUssRUFBRSxLQUFLO0FBQy9CLGtCQUFrQixDQUFDO0FBQ25CLGlCQUFpQixNQUFNLEVBQUUsQ0FBQztBQUMxQixnQkFBZ0IsRUFBRSxVQUFVLEdBQUcsRUFBRTtBQUNqQyxpQkFBaUIsSUFBSSxNQUFNLEVBQUUsT0FBTztBQUNwQyxpQkFBaUIsTUFBTSxHQUFHO0FBQzFCLG1CQUFtQixHQUFHLEVBQUUsR0FBRztBQUMzQixrQkFBa0IsQ0FBQztBQUNuQixpQkFBaUIsTUFBTSxFQUFFLENBQUM7QUFDMUIsZ0JBQWdCLENBQUMsQ0FBQztBQUNsQixjQUFjLENBQUMsT0FBTyxHQUFHLEVBQUU7QUFDM0IsZUFBZSxNQUFNLEdBQUc7QUFDeEIsaUJBQWlCLEdBQUcsRUFBRSxHQUFHO0FBQ3pCLGdCQUFnQixDQUFDO0FBQ2pCLGVBQWUsTUFBTSxFQUFFLENBQUM7QUFDeEIsY0FBYztBQUNkO0FBQ0EsYUFBYSxRQUFRLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxhQUFhLE9BQU8sZUFBZSxDQUFDO0FBQ3BDO0FBQ0EsV0FBVyxLQUFLLEVBQUU7QUFDbEIsYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUNoRCxlQUFlLFFBQVEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLGVBQWUsTUFBTTtBQUNyQixjQUFjO0FBQ2Q7QUFDQSxhQUFhLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUM5QjtBQUNBLFdBQVcsS0FBSyxFQUFFO0FBQ2xCLGFBQWEsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUQ7QUFDQSxXQUFXLEtBQUssRUFBRSxDQUFDO0FBQ25CLFdBQVcsS0FBSyxLQUFLO0FBQ3JCLGFBQWEsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDcEMsVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDUCxFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsWUFBWSxDQUFDLEdBQUcsRUFBRTtBQUM1QixHQUFHLElBQUksS0FBSyxDQUFDO0FBQ2I7QUFDQSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtBQUM5RSxLQUFLLElBQUksU0FBUyxDQUFDO0FBQ25CO0FBQ0EsS0FBSyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxLQUFLLENBQUM7QUFDaEIsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUM5QyxHQUFHLENBQUMsU0FBUyxJQUFJLEdBQUc7QUFDcEIsS0FBSyxJQUFJO0FBQ1QsT0FBTyxJQUFJLEtBQUssQ0FBQztBQUNqQjtBQUNBLE9BQU8sSUFBSSxLQUFLLEdBQUcsU0FBUyxLQUFLLEdBQUc7QUFDcEMsU0FBUyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLFNBQVMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3pCLFNBQVMsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO0FBQ25DLFNBQVMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZO0FBQ3hDLFdBQVcsSUFBSSxJQUFJLEVBQUU7QUFDckIsYUFBYSxhQUFhLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLFlBQVksTUFBTTtBQUNsQixhQUFhLElBQUksRUFBRSxDQUFDO0FBQ3BCLFlBQVk7QUFDWixVQUFVLENBQUMsQ0FBQztBQUNaLFNBQVMsSUFBSSxHQUFHLEtBQUssQ0FBQztBQUN0QixTQUFTLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDakM7QUFDQSxTQUFTLElBQUksQ0FBQyxhQUFhLEVBQUU7QUFDN0IsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsQ0FBQyxFQUFFLEtBQUssQ0FBQztBQUN0QixZQUFZLENBQUM7QUFDYixVQUFVO0FBQ1YsUUFBUSxDQUFDO0FBQ1Q7QUFDQSxPQUFPLE9BQU8sQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtBQUNyRixTQUFTLElBQUksVUFBVSxDQUFDO0FBQ3hCO0FBQ0EsU0FBUyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUM1QjtBQUNBLFNBQVMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JELFFBQVE7QUFDUjtBQUNBLE9BQU8sT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFO0FBQ25CLE9BQU8sT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsTUFBTTtBQUNOLElBQUksR0FBRyxDQUFDO0FBQ1IsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ2xDLEdBQUcsSUFBSSxLQUFLLEtBQUssYUFBYSxFQUFFLE9BQU87QUFDdkMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxxREFBcUQsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLDREQUE0RCxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztBQUNwTSxFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDcEMsR0FBRyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSztBQUMxQixPQUFPLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQ3pCLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLEtBQUssZUFBZSxFQUFFLE9BQU87QUFDbEQsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLEdBQUcsaUZBQWlGLEdBQUcsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxrREFBa0QsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7QUFDbFEsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQy9CLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLEdBQUcsTUFBTSxHQUFHLENBQUM7QUFDYixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7QUFDL0MsR0FBRyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtBQUNqQyxLQUFLLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEU7QUFDQSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRTtBQUM3QyxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7QUFDdkUsU0FBUyxZQUFZLEVBQUUsSUFBSTtBQUMzQixTQUFTLEtBQUssRUFBRSxJQUFJO0FBQ3BCLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDWCxNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUNsQyxLQUFLLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDcEU7QUFDQSxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFlBQVksRUFBRTtBQUNqRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7QUFDM0UsU0FBUyxZQUFZLEVBQUUsSUFBSTtBQUMzQixTQUFTLEtBQUssRUFBRSxLQUFLO0FBQ3JCLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDWCxNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0EsR0FBRyxPQUFPLEVBQUUsQ0FBQztBQUNiLEVBQUU7QUFDRjtBQUNBLENBQUMsSUFBSSxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ3pCLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDWixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQ3BFLEdBQUcsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsUUFBUSxDQUFDLFFBQVEsRUFBRTtBQUN2RCxLQUFLLE9BQU8sQ0FBQyxFQUFFO0FBQ2YsT0FBTyxRQUFRLFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUk7QUFDNUMsU0FBUyxLQUFLLENBQUM7QUFDZixXQUFXLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hEO0FBQ0EsU0FBUyxLQUFLLENBQUM7QUFDZixXQUFXLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pEO0FBQ0EsU0FBUyxLQUFLLENBQUMsQ0FBQztBQUNoQixTQUFTLEtBQUssS0FBSztBQUNuQixXQUFXLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2xDLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQ3ZCLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHO0FBQ3pCLEtBQUssT0FBTyxLQUFLLENBQUM7QUFDbEIsSUFBSTtBQUNKLEdBQUcsT0FBTyxFQUFFLFNBQVMsT0FBTyxDQUFDLEVBQUUsRUFBRTtBQUNqQyxLQUFLLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzQixJQUFJO0FBQ0osRUFBRSxDQUFDLENBQUM7QUFDSixDQUFDLFNBQVMsVUFBVSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUU7QUFDbEMsR0FBRyxPQUFPLE9BQU8sQ0FBQztBQUNsQixLQUFLLElBQUksRUFBRSxTQUFTLElBQUksR0FBRztBQUMzQixPQUFPLEtBQUssSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO0FBQ2hHLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxRQUFRO0FBQ1I7QUFDQSxPQUFPLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pDLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxRCxPQUFPLE9BQU8sTUFBTSxDQUFDO0FBQ3JCLE1BQU07QUFDTixLQUFLLEtBQUssRUFBRSxTQUFTLEtBQUssR0FBRztBQUM3QixPQUFPLEtBQUssSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO0FBQ3RHLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QyxRQUFRO0FBQ1I7QUFDQSxPQUFPLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BELE1BQU07QUFDTixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUU7QUFDRixDQUFDLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQztBQUN4QixHQUFHLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUU7QUFDM0IsS0FBSyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixJQUFJO0FBQ0osR0FBRyxLQUFLLEVBQUUsU0FBUyxLQUFLLENBQUMsRUFBRSxFQUFFO0FBQzdCLEtBQUssT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEIsSUFBSTtBQUNKLEVBQUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxTQUFTLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFO0FBQ25DLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNCLEdBQUcsT0FBTyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUU7QUFDbkMsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsS0FBSyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN4QixJQUFJLENBQUMsQ0FBQztBQUNOLEVBQUU7QUFDRixDQUFDLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQztBQUM1QixHQUFHLElBQUksRUFBRSxjQUFjO0FBQ3ZCLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDWCxHQUFHLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUU7QUFDN0IsS0FBSyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEMsSUFBSTtBQUNKLEdBQUcsT0FBTyxFQUFFLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO0FBQ25ELEtBQUssSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQzNCLEtBQUssWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3RELE9BQU8sU0FBUyxHQUFHLElBQUksQ0FBQztBQUN4QixPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdEIsTUFBTSxDQUFDLENBQUM7QUFDUjtBQUNBLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtBQUNyQixPQUFPLFVBQVUsRUFBRSxDQUFDO0FBQ3BCLE1BQU07QUFDTixJQUFJO0FBQ0osRUFBRSxDQUFDLENBQUM7QUFDSixDQUFDLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUN2QixHQUFHLElBQUksRUFBRSxFQUFFO0FBQ1gsR0FBRyxLQUFLLEVBQUUsRUFBRTtBQUNaLEVBQUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxTQUFTLFlBQVksQ0FBQyxHQUFHLEVBQUU7QUFDNUIsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7QUFDMUgsRUFBRTtBQUNGO0FBQ0EsQ0FBQyxTQUFTLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFO0FBQ3ZDLEdBQUcsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDeEYsS0FBSyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUI7QUFDQSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUMsS0FBSyxlQUFlLElBQUksQ0FBQyxLQUFLLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDNUYsT0FBTyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEMsT0FBTyxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELE9BQU8sa0JBQWtCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2pELE1BQU0sTUFBTTtBQUNaLE9BQU8sSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLE9BQU8sSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDOUMsTUFBTTtBQUNOLElBQUk7QUFDSixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtBQUM3QyxHQUFHLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQzdGLEtBQUssSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLEtBQUssSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLEtBQUssSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDNUMsSUFBSTtBQUNKLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7QUFDcEMsR0FBRyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssVUFBVSxDQUFDO0FBQ3RHLEVBQUU7QUFDRjtBQUNBLENBQUMsSUFBSSxRQUFRLEdBQUcsU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUU7QUFDdEQsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3JCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ25DLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztBQUN0QixHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDckIsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNoQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNuQyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDekIsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDO0FBQ2pDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztBQUNyRCxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUMzQixHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUN6QixHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDdkMsR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7QUFDL0MsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0FBQ3JELEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDMUIsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQzFDLEtBQUssVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0FBQ2xELEtBQUssVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUN6RDtBQUNBLENBQUMsSUFBSSxXQUFXLEdBQUcsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFO0FBQzdDLEdBQUcsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzVCLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxTQUFTLE9BQU8sR0FBRztBQUNwQixHQUFHLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQyxRQUFRLEVBQUU7QUFDdkQsS0FBSyxPQUFPLENBQUMsRUFBRTtBQUNmLE9BQU8sUUFBUSxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJO0FBQzVDLFNBQVMsS0FBSyxDQUFDO0FBQ2YsV0FBVyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xEO0FBQ0EsU0FBUyxLQUFLLENBQUMsQ0FBQztBQUNoQixTQUFTLEtBQUssS0FBSztBQUNuQixXQUFXLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2xDLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2pCLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxhQUFhLENBQUMsT0FBTyxFQUFFO0FBQ2pDLEdBQUcsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDL0MsRUFBRTtBQUNGLENBQUMsU0FBUyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDckMsR0FBRyxPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM5QyxFQUFFO0FBQ0YsQ0FBQyxTQUFTLGVBQWUsQ0FBQyxPQUFPLEVBQUU7QUFDbkMsR0FBRyxPQUFPLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzQyxFQUFFO0FBQ0YsQ0FBQyxTQUFTLG1CQUFtQixDQUFDLE9BQU8sRUFBRTtBQUN2QyxHQUFHLE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ2hELEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQ2pELEdBQUcsSUFBSSxhQUFhLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztBQUN2QyxHQUFHLElBQUksY0FBYyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7QUFDeEMsR0FBRyxJQUFJLFdBQVcsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQ3JDLEdBQUcsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDOUQsS0FBSyxJQUFJLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7QUFDdkYsS0FBSyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxlQUFlLENBQUMsU0FBUyxFQUFFO0FBQ2pFLE9BQU8sT0FBTyxDQUFDLEVBQUU7QUFDakIsU0FBUyxRQUFRLFNBQVMsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUk7QUFDaEQsV0FBVyxLQUFLLENBQUM7QUFDakIsYUFBYSxPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hFO0FBQ0EsV0FBVyxLQUFLLENBQUM7QUFDakIsYUFBYSxZQUFZLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUN6QyxhQUFhLFNBQVMsR0FBRyxZQUFZLEdBQUcsY0FBYyxHQUFHLGFBQWEsQ0FBQztBQUN2RSxhQUFhLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVIO0FBQ0EsV0FBVyxLQUFLLENBQUM7QUFDakIsYUFBYSxNQUFNLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNuQztBQUNBLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7QUFDaEMsZUFBZSxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNsQyxlQUFlLE1BQU07QUFDckIsY0FBYztBQUNkO0FBQ0EsYUFBYSxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3RDtBQUNBLFdBQVcsS0FBSyxDQUFDO0FBQ2pCLGFBQWEsS0FBSyxHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakQsYUFBYSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNqRDtBQUNBLGFBQWEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxFQUFFO0FBQ3JELGVBQWUsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDbkMsZUFBZSxNQUFNO0FBQ3JCLGNBQWM7QUFDZDtBQUNBLGFBQWEsR0FBRyxHQUFHLGFBQWEsQ0FBQztBQUNqQyxhQUFhLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFlBQVk7QUFDMUUsZUFBZSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDckUsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNCO0FBQ0EsV0FBVyxLQUFLLEVBQUU7QUFDbEIsYUFBYSxLQUFLLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNsQyxhQUFhLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLGFBQWEsTUFBTTtBQUNuQjtBQUNBLFdBQVcsS0FBSyxFQUFFO0FBQ2xCLGFBQWEsS0FBSyxHQUFHLGFBQWEsQ0FBQztBQUNuQztBQUNBLFdBQVcsS0FBSyxFQUFFO0FBQ2xCLGFBQWEsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0Q7QUFDQSxhQUFhLElBQUksVUFBVSxFQUFFO0FBQzdCLGVBQWUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFDLGVBQWUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxjQUFjO0FBQ2Q7QUFDQSxhQUFhLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdEQ7QUFDQSxXQUFXLEtBQUssRUFBRSxDQUFDO0FBQ25CLFdBQVcsS0FBSyxLQUFLO0FBQ3JCLGFBQWEsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDckMsVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDeEIsSUFBSSxDQUFDLENBQUM7QUFDTixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsY0FBYyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQzNDLEdBQUcsSUFBSSxXQUFXLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztBQUNqRTtBQUNBLEdBQUcsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsZUFBZSxDQUFDLFNBQVMsRUFBRTtBQUMvRCxLQUFLLE9BQU8sQ0FBQyxFQUFFO0FBQ2YsT0FBTyxRQUFRLFNBQVMsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUk7QUFDOUMsU0FBUyxLQUFLLENBQUM7QUFDZixXQUFXLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDO0FBQ0EsV0FBVyxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQzdCLGFBQWEsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDakMsYUFBYSxNQUFNO0FBQ25CLFlBQVk7QUFDWjtBQUNBLFdBQVcsU0FBUyxHQUFHLCtCQUErQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3BFO0FBQ0EsU0FBUyxLQUFLLENBQUM7QUFDZixXQUFXLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFO0FBQzNDLGFBQWEsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDakMsYUFBYSxNQUFNO0FBQ25CLFlBQVk7QUFDWjtBQUNBLFdBQVcsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7QUFDNUYsV0FBVyxPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRTtBQUNBLFNBQVMsS0FBSyxDQUFDO0FBQ2YsV0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRTtBQUM5QixhQUFhLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLGFBQWEsTUFBTTtBQUNuQixZQUFZO0FBQ1o7QUFDQSxXQUFXLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7QUFDN0MsYUFBYSxLQUFLLEVBQUUsSUFBSTtBQUN4QixhQUFhLEtBQUssRUFBRSxNQUFNO0FBQzFCLFlBQVksQ0FBQyxDQUFDO0FBQ2Q7QUFDQSxTQUFTLEtBQUssQ0FBQztBQUNmLFdBQVcsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7QUFDOUIsV0FBVyxNQUFNO0FBQ2pCO0FBQ0EsU0FBUyxLQUFLLEVBQUU7QUFDaEIsV0FBVyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO0FBQzdDLGFBQWEsS0FBSyxFQUFFLEtBQUs7QUFDekIsYUFBYSxLQUFLLEVBQUUsSUFBSTtBQUN4QixZQUFZLENBQUMsQ0FBQztBQUNkO0FBQ0EsU0FBUyxLQUFLLEVBQUUsQ0FBQztBQUNqQixTQUFTLEtBQUssS0FBSztBQUNuQixXQUFXLE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ25DLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2xCLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQ2hGLEdBQUcsSUFBSSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztBQUNoQztBQUNBLEdBQUcsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMscUJBQXFCLENBQUMsU0FBUyxFQUFFO0FBQ3JFLEtBQUssT0FBTyxDQUFDLEVBQUU7QUFDZixPQUFPLFFBQVEsU0FBUyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSTtBQUM5QyxTQUFTLEtBQUssQ0FBQztBQUNmLFdBQVcsT0FBTyxTQUFTLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6RjtBQUNBLFNBQVMsS0FBSyxDQUFDO0FBQ2YsV0FBVyxNQUFNLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNqQztBQUNBLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7QUFDOUIsYUFBYSxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNoQyxhQUFhLE1BQU07QUFDbkIsWUFBWTtBQUNaO0FBQ0EsV0FBVyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3JEO0FBQ0EsU0FBUyxLQUFLLENBQUM7QUFDZixXQUFXLElBQUksQ0FBQyxZQUFZLEVBQUU7QUFDOUIsYUFBYSxTQUFTLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNqQyxhQUFhLE1BQU07QUFDbkIsWUFBWTtBQUNaO0FBQ0EsV0FBVyxPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNGO0FBQ0EsU0FBUyxLQUFLLENBQUM7QUFDZixXQUFXLE9BQU8sR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO0FBQ2xDO0FBQ0EsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtBQUMvQixhQUFhLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLGFBQWEsTUFBTTtBQUNuQixZQUFZO0FBQ1o7QUFDQSxXQUFXLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkY7QUFDQSxTQUFTLEtBQUssQ0FBQztBQUNmLFdBQVcsT0FBTyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUM7QUFDbEMsV0FBVyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO0FBQzdDLGFBQWEsS0FBSyxFQUFFLElBQUk7QUFDeEIsYUFBYSxLQUFLLEVBQUUsT0FBTztBQUMzQixZQUFZLENBQUMsQ0FBQztBQUNkO0FBQ0EsU0FBUyxLQUFLLEVBQUU7QUFDaEIsV0FBVyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO0FBQzdDLGFBQWEsS0FBSyxFQUFFLEtBQUs7QUFDekIsYUFBYSxLQUFLLEVBQUUsSUFBSTtBQUN4QixZQUFZLENBQUMsQ0FBQztBQUNkO0FBQ0EsU0FBUyxLQUFLLEVBQUUsQ0FBQztBQUNqQixTQUFTLEtBQUssS0FBSztBQUNuQixXQUFXLE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ25DLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2xCLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxlQUFlLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUU7QUFDcEQsR0FBRyxJQUFJLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQy9CLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDN0QsR0FBRyxPQUFPLFVBQVUsQ0FBQztBQUNyQixFQUFFO0FBQ0Y7QUFDQSxDQUFDLFNBQVMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3pELEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDOUMsR0FBRyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3ZCO0FBQ0EsR0FBRyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7QUFDeEIsS0FBSyxLQUFLLFNBQVM7QUFDbkIsT0FBTyxXQUFXLEdBQUcsQ0FBQztBQUN0QixTQUFTLEtBQUssRUFBRSxLQUFLO0FBQ3JCLFNBQVMsS0FBSyxFQUFFLE9BQU87QUFDdkIsUUFBUSxDQUFDLENBQUM7QUFDVixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ25DLE9BQU8sTUFBTTtBQUNiO0FBQ0EsS0FBSyxLQUFLLFlBQVk7QUFDdEIsT0FBTyxXQUFXLEdBQUcsQ0FBQztBQUN0QixTQUFTLEtBQUssRUFBRSxLQUFLO0FBQ3JCLFNBQVMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDbEMsUUFBUSxDQUFDLENBQUM7QUFDVixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ25DLE9BQU8sTUFBTTtBQUNiO0FBQ0EsS0FBSyxLQUFLLE9BQU87QUFDakIsT0FBTyxJQUFJLFdBQVcsRUFBRTtBQUN4QixTQUFTLFdBQVcsQ0FBQyxJQUFJLENBQUM7QUFDMUIsV0FBVyxLQUFLLEVBQUUsS0FBSztBQUN2QixXQUFXLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFO0FBQ3BDLFVBQVUsQ0FBQyxDQUFDO0FBQ1osUUFBUSxNQUFNO0FBQ2QsU0FBUyxXQUFXLEdBQUcsQ0FBQztBQUN4QixXQUFXLEtBQUssRUFBRSxLQUFLO0FBQ3ZCLFdBQVcsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUU7QUFDcEMsVUFBVSxDQUFDLENBQUM7QUFDWixTQUFTLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3JDLFFBQVE7QUFDUjtBQUNBLElBQUk7QUFDSixFQUFFO0FBQ0Y7QUFDQSxDQUFDLElBQUksaUJBQWlCLEdBQUcsWUFBWTtBQUNyQyxHQUFHLFNBQVMsaUJBQWlCLENBQUMsSUFBSSxFQUFFO0FBQ3BDLEtBQUssSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDekIsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztBQUN6QixLQUFLLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0FBQzNCLEtBQUssSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFDOUIsS0FBSyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztBQUM5QixLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztBQUN6QixLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDO0FBQzVDO0FBQ0EsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTSxHQUFHO0FBQ3JDLEtBQUssT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QyxJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLElBQUksR0FBRztBQUNqQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLE9BQU8sQ0FBQztBQUNyQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLFNBQVMsQ0FBQztBQUN6QyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLFlBQVksQ0FBQztBQUMvQyxLQUFLLE9BQU8sT0FBTyxDQUFDO0FBQ3BCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxHQUFHO0FBQ3ZDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDeEIsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDaEYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDdEIsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDNUUsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztBQUMxQixLQUFLLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQzdCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVMsS0FBSyxHQUFHO0FBQ25DLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDeEIsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDaEYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7QUFDeEIsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7QUFDOUUsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUN4QixLQUFLLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQzdCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVMsS0FBSyxDQUFDLE9BQU8sRUFBRTtBQUMxQyxLQUFLLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztBQUN0QjtBQUNBLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDeEIsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDaEYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtBQUN2QyxPQUFPLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztBQUN4RixNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQzdCLEtBQUssSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQyxLQUFLLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsd0ZBQXdGLENBQUMsQ0FBQztBQUM1SDtBQUNBLEtBQUssSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUU7QUFDNUIsT0FBTyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUU7QUFDdEMsU0FBUyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RDO0FBQ0EsU0FBUyxPQUFPLEdBQUcsQ0FBQztBQUNwQixRQUFRLENBQUMsQ0FBQztBQUNWLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqQztBQUNBLEtBQUssT0FBTyxHQUFHLENBQUM7QUFDaEIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FBUyxVQUFVLENBQUMsT0FBTyxFQUFFO0FBQ3BELEtBQUssSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDN0IsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEMsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxTQUFTLEdBQUc7QUFDM0MsS0FBSyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQzdCLEtBQUssT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRTtBQUNwRCxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztBQUNyRDtBQUNBLE9BQU8sT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsUUFBUSxDQUFDLFNBQVMsRUFBRTtBQUM1RCxTQUFTLE9BQU8sQ0FBQyxFQUFFO0FBQ25CLFdBQVcsUUFBUSxTQUFTLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJO0FBQ2xELGFBQWEsS0FBSyxDQUFDO0FBQ25CLGVBQWUsVUFBVSxHQUFHLCtCQUErQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25FO0FBQ0EsYUFBYSxLQUFLLENBQUM7QUFDbkIsZUFBZSxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRTtBQUNqRCxpQkFBaUIsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDckMsaUJBQWlCLE1BQU07QUFDdkIsZ0JBQWdCO0FBQ2hCO0FBQ0EsZUFBZSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0csZUFBZSxTQUFTLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUNsQyxlQUFlLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pFO0FBQ0EsYUFBYSxLQUFLLENBQUM7QUFDbkIsZUFBZSxTQUFTLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUM7QUFDM0M7QUFDQSxlQUFlLElBQUksRUFBRSxTQUFTLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNyRCxpQkFBaUIsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7QUFDcEMsaUJBQWlCLE1BQU07QUFDdkIsZ0JBQWdCO0FBQ2hCO0FBQ0EsZUFBZSxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hEO0FBQ0EsYUFBYSxLQUFLLENBQUM7QUFDbkIsZUFBZSxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNsQyxlQUFlLE1BQU07QUFDckI7QUFDQSxhQUFhLEtBQUssRUFBRTtBQUNwQixlQUFlLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkQ7QUFDQSxhQUFhLEtBQUssRUFBRSxDQUFDO0FBQ3JCLGFBQWEsS0FBSyxLQUFLO0FBQ3ZCLGVBQWUsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdkMsWUFBWTtBQUNaLFVBQVU7QUFDVixRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkIsTUFBTSxDQUFDLENBQUM7QUFDUixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxTQUFTLFVBQVUsR0FBRztBQUM3QyxLQUFLLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQzFCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFNBQVMsVUFBVSxHQUFHO0FBQzdDLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0FBQzdCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLGlCQUFpQixDQUFDO0FBQzVCLEVBQUUsRUFBRSxDQUFDO0FBQ0w7QUFDQSxDQUFDLFNBQVMsc0JBQXNCLENBQUMsS0FBSyxFQUFFO0FBQ3hDLEdBQUcsU0FBUyxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ3pCLEtBQUssSUFBSSxPQUFPLEdBQUcsS0FBSyxTQUFTLEVBQUU7QUFDbkMsT0FBTyxJQUFJLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbkQsT0FBTyxPQUFPO0FBQ2QsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWTtBQUNwQyxPQUFPLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN0QyxNQUFNLENBQUMsQ0FBQztBQUNSLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxZQUFZO0FBQ2pDLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDNUIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsWUFBWTtBQUMvQixLQUFLLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzFCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLFVBQVUsRUFBRSxFQUFFO0FBQ2pDLEtBQUssT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVk7QUFDcEMsT0FBTyxPQUFPLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckMsTUFBTSxDQUFDLENBQUM7QUFDUixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsRUFBRTtBQUN0QyxLQUFLLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZO0FBQ3pDLE9BQU8sT0FBTyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxDQUFDO0FBQ1IsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8sT0FBTyxDQUFDO0FBQ2xCLEVBQUU7QUFDRjtBQUNBLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM1QixLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELEdBQUcsd0RBQXdELEdBQUcsNkNBQTZDLEdBQUcsb0VBQW9FLEdBQUcsaUZBQWlGLENBQUMsQ0FBQztBQUM5VSxJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM5RyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQztBQUMvRixJQUFJO0FBQ0o7QUFDQSxHQUFHLE9BQU8sS0FBSyxDQUFDO0FBQ2hCLEVBQUU7QUFDRjtBQUNBLENBQUMsSUFBSSxJQUFJLEdBQUcsWUFBWTtBQUN4QixHQUFHLFNBQVMsSUFBSSxHQUFHO0FBQ25CLEtBQUssSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCO0FBQ0EsS0FBSyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztBQUMzQixLQUFLLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDM0IsS0FBSyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQzVCLEtBQUssSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLE9BQU8sRUFBRTtBQUNuRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxDQUFDO0FBQ1IsSUFBSTtBQUNKO0FBQ0EsR0FBRyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQ2hDO0FBQ0EsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRTtBQUM3QyxLQUFLLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzFCO0FBQ0EsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFCLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxPQUFPLElBQUksQ0FBQztBQUNmLEVBQUUsRUFBRSxDQUFDO0FBQ0w7QUFDQSxDQUFDLElBQUksVUFBVSxHQUFHO0FBQ2xCLEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxRQUFRO0FBQ3BCLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsUUFBUTtBQUNwQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLE9BQU87QUFDZixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsT0FBTztBQUNmLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxPQUFPO0FBQ2YsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLE9BQU87QUFDZixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsT0FBTztBQUNmLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxPQUFPO0FBQ2YsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLE9BQU87QUFDZixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsT0FBTztBQUNmLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsUUFBUTtBQUNwQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxRQUFRO0FBQ3BCLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLE9BQU87QUFDZixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxRQUFRO0FBQ3BCLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsT0FBTztBQUNmLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxPQUFPO0FBQ2YsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsUUFBUTtBQUNwQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLE9BQU87QUFDZixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxRQUFRO0FBQ3BCLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsT0FBTztBQUNmLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxPQUFPO0FBQ2YsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsUUFBUTtBQUNwQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLE9BQU87QUFDZixHQUFHLFFBQVEsRUFBRSxJQUFJO0FBQ2pCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxRQUFRO0FBQ3BCLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsT0FBTztBQUNmLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxPQUFPO0FBQ2YsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxRQUFRO0FBQ3BCLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxLQUFLO0FBQ2IsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsT0FBTztBQUNuQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLEtBQUs7QUFDYixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQ2xCLEdBQUc7QUFDSCxFQUFFO0FBQ0YsR0FBRyxJQUFJLEVBQUUsUUFBUTtBQUNqQixHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsSUFBSSxFQUFFLFlBQVk7QUFDckIsR0FBRyxHQUFHLEVBQUUsS0FBSztBQUNiLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFFBQVE7QUFDcEIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxR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S0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsSUFBSTtBQUNqQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUsS0FBSztBQUNsQixHQUFHO0FBQ0gsRUFBRTtBQUNGLEdBQUcsSUFBSSxFQUFFLFFBQVE7QUFDakIsR0FBRyxPQUFPLEVBQUUsU0FBUztBQUNyQixHQUFHLElBQUksRUFBRSxZQUFZO0FBQ3JCLEdBQUcsR0FBRyxFQUFFLFNBQVM7QUFDakIsR0FBRyxRQUFRLEVBQUUs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RixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLEtBQUs7QUFDbEIsR0FBRztBQUNILEVBQUU7QUFDRixHQUFHLElBQUksRUFBRSxRQUFRO0FBQ2pCLEdBQUcsT0FBTyxFQUFFLFNBQVM7QUFDckIsR0FBRyxJQUFJLEVBQUUsWUFBWTtBQUNyQixHQUFHLEdBQUcsRUFBRSxRQUFRO0FBQ2hCLEdBQUcsUUFBUSxFQUFFLElBQUk7QUFDakIsR0FBRztBQUNILEVBQUU7QUFD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SUFBSTtBQUNaLEdBQUcsR0FBRyxFQUFFLElBQUk7QUFDWixHQUFHLEdBQUcsRUFBRSxJQUFJO0FBQ1osR0FBRyxHQUFHLEVBQUUsSUFBSTtBQUNaLEdBQUcsR0FBRyxFQUFFLElBQUk7QUFDWixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsR0FBRztBQUNULEdBQUcsQ0FBQyxFQUFFLEdBQUc7QUFDVCxHQUFHLENBQUMsRUFBRSxHQUFHO0FBQ1QsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLEdBQUc7QUFDVCxHQUFHLENBQUMsRUFBRSxHQUFHO0FBQ1QsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsR0FBRztBQUNULEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxDQUFDLEVBQUUsSUFBSTtBQUNWLEdBQUcsQ0FBQyxFQUFFLElBQUk7QUFDVixHQUFHLENBQUMsRUFBRSxJQUFJO0FBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsTUFBTTtBQUNiLEdBQUcsRUFBRSxFQUFFLE1BQU07QUFDYixHQUFHLEVBQUUsRUFBRSxHQUFHO0FBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxLQUFLO0FBQ1osR0FBRyxFQUFFLEVBQUUsTUFBTTtBQUNiLEdBQUcsRUFBRSxFQUFFLE1BQU07QUFDYixHQUFHLEVBQUUsRUFBRSxTQUFTO0FBQ2hCLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxHQUFHO0FBQ1YsR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxLQUFLO0FBQ1osR0FBRyxFQUFFLEVBQUUsSUFBSTtBQUNYLEdBQUcsRUFBRSxFQUFFLElBQUk7QUFDWCxHQUFHLEVBQUUsRUFBRSxJQUFJO0FBQ1gsR0FBRyxFQUFFLEVBQUUsS0FBSztBQUNaLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxLQUFLO0FBQ1osR0FBRyxFQUFFLEVBQUUsS0FBSztBQUNaLEdBQUcsRUFBRSxFQUFFLEtBQUs7QUFDWixHQUFHLEVBQUUsRUFBRSxNQUFNO0FBQ2IsR0FBRyxFQUFFLEVBQUUsTUFBTTtBQUNiLEdBQUcsRUFBRSxFQUFF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RUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDcFosS0FBSyxDQUFDLEVBQUUsSUFBSTtBQUNaLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsU0FBUztBQUNwQixPQUFPLENBQUMsRUFBRSxTQUFTO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDWCxPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ25hLEtBQUssQ0FBQyxFQUFFLE1BQU07QUFDZCxLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsT0FBTyxDQUFDLEVBQUUsSUFBSTtBQUNkLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDZCxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsT0FBTyxDQUFDLEVBQUUsSUFBSTtBQUNkLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDZCxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxPQUFPO0FBQ25CLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsTUFBTTtBQUNsQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDWCxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ1gsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPO0FBQ2xCLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxLQUFLO0FBQ2IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7QUFDOWdCLEtBQUssQ0FBQyxFQUFFLFNBQVM7QUFDakIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDZCxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ2QsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLE1BQU07QUFDbEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxNQUFNO0FBQ2hCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxNQUFNO0FBQ2hCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxLQUFLO0FBQ2YsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsQ0FBQztBQUNaLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztBQUMxZ0IsS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsSUFBSTtBQUNmLE9BQU8sRUFBRSxFQUFFLElBQUk7QUFDZixPQUFPLEVBQUUsRUFBRSxJQUFJO0FBQ2YsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLEVBQUUsRUFBRSxDQUFDO0FBQ1osT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxDQUFDO0FBQ1osTUFBTTtBQUNOLEtBQUssQ0FBQyxFQUFFLFFBQVE7QUFDaEIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDaGIsS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxJQUFJO0FBQ2YsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLEdBQUcsRUFBRSxRQUFRO0FBQ3BCLE9BQU8sR0FBRyxFQUFFLFFBQVE7QUFDcEIsT0FBTyxHQUFHLEVBQUUsUUFBUTtBQUNwQixPQUFPLENBQUMsRUFBRSxNQUFNO0FBQ2hCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxPQUFPO0FBQ2pCLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsT0FBTztBQUNqQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sQ0FBQyxFQUFFLFFBQVE7QUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU87QUFDbEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxPQUFPO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLE9BQU87QUFDakIsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE9BQU8sSUFBSSxFQUFFLE9BQU87QUFDcEIsT0FBTyxJQUFJLEVBQUUsUUFBUTtBQUNyQixPQUFPLElBQUksRUFBRSxRQUFRO0FBQ3JCLE9BQU8sSUFBSSxFQUFFLFFBQVE7QUFDckIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sSUFBSSxFQUFFLFFBQVE7QUFDckIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUMxZixLQUFLLENBQUMsRUFBRSxPQUFPO0FBQ2YsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sR0FBRyxFQUFFLFVBQVU7QUFDdEIsT0FBTyxHQUFHLEVBQUUsVUFBVTtBQUN0QixPQUFPLEdBQUcsRUFBRSxVQUFVO0FBQ3RCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxJQUFJLEVBQUUsVUFBVTtBQUN2QixPQUFPLElBQUksRUFBRSxVQUFVO0FBQ3ZCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxJQUFJLEVBQUUsVUFBVTtBQUN2QixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLElBQUksRUFBRSxVQUFVO0FBQ3ZCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JC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RUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3hiLEtBQUssQ0FBQyxFQUFFLGVBQWU7QUFDdkIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLElBQUksRUFBRSxVQUFVO0FBQ3ZCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxJQUFJLEVBQUUsVUFBVTtBQUN2QixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sSUFBSSxFQUFFLFVBQVU7QUFDdkIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsR0FBRztBQUNYLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzlZLEtBQUssQ0FBQyxFQUFFLFlBQVk7QUFDcEIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE1BQU07QUFDTixJQUFJO0FBQ0osR0FBRyxDQUFDLEVBQUU7QUFDTixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixPQUFPLENBQUMsRUFBRSxTQUFTO0FBQ25CLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDWCxPQUFPLEVBQUUsRUFBRSxDQUFDO0FBQ1osT0FBTyxFQUFFLEVBQUUsQ0FBQztBQUNaLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixPQUFPLEVBQUUsRUFBRSxTQUFTO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFNBQVM7QUFDcEIsT0FBTyxFQUFFLEVBQUUsQ0FBQztBQUNaLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsTUFBTTtBQUNOLEtBQUssQ0FBQyxFQUFFLFFBQVE7QUFDaEIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDOVosS0FBSyxDQUFDLEVBQUUsaUJBQWlCO0FBQ3pCLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ1gsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNYLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxF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QUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzdZLEtBQUssQ0FBQyxFQUFFLG9CQUFvQjtBQUM1QixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsS0FBSztBQUNiLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzdZLEtBQUssQ0FBQyxFQUFFLHFCQUFxQjtBQUM3QixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsTUFBTTtBQUNOLElBQUk7QUFDSixHQUFHLENBQUMsRUFBRTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxDQUFDLEVBQUUsU0FBUztBQUNuQixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxJQUFJO0FBQ1osS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDOVksS0FBSyxDQUFDLEVBQUUsV0FBVztBQUNuQixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sQ0FBQyxFQUFFLFVBQVU7QUFDcEIsT0FBTyxDQUFDLEVBQUUsVUFBVTtBQUNwQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxNQUFNO0FBQ2pCLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzlZLEtBQUssQ0FBQyxFQUFFLHdCQUF3QjtBQUNoQyxLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsTUFBTTtBQUNOLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxRQUFRO0FBQ2xCLE9BQU8sRUFBRSxFQUFFLFNBQVM7QUFDcEIsT0FBTyxFQUFFLEVBQUUsUUFBUTtBQUNuQixPQUFPLEVBQUUsRUFBRSxTQUFTO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFNBQVM7QUFDcEIsT0FBTyxFQUFFLEVBQUUsU0FBUztBQUNwQixPQUFPLEVBQUUsRUFBRSxTQUFTO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsU0FBUztBQUNwQixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE9BQU8sRUFBRSxFQUFFLFFBQVE7QUFDbkIsT0FBTyxFQUFFLEVBQUUsT0FBTztBQUNsQixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNuYSxLQUFLLENBQUMsRUFBRSxrQkFBa0I7QUFDMUIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLENBQUMsRUFBRSxVQUFVO0FBQ3BCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE9BQU8sRUFBRSxFQUFFLFVBQVU7QUFDckIsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxRQUFRO0FBQ2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzlZLEtBQUssQ0FBQyxFQUFFLFlBQVk7QUFDcEIsS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxVQUFVO0FBQ3JCLE1BQU07QUFDTixJQUFJO0FBQ0osR0FBRyxDQUFDLEVBQUU7QUFDTixLQUFLLENBQUMsRUFBRTtBQUNSLE9BQU8sRUFBRSxFQUFFLENBQUM7QUFDWixNQUFNO0FBQ04sS0FBSyxDQUFDLEVBQUUsUUFBUTtBQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUM5WSxLQUFLLENBQUMsRUFBRSxlQUFlO0FBQ3ZCLEtBQUssQ0FBQyxFQUFFO0FBQ1IsT0FBTyxFQUFFLEVBQUUsVUFBVTtBQUNyQixNQUFNO0FBQ04sSUFBSTtBQUNKLEdBQUcsQ0FBQyxFQUFFO0FBQ04sS0FBSyxDQUFDLEVBQUU7QUFDUixPQUFPLEVBQUUsRUFBRSxRQUFRO0FBQ25CLE1BQU07QUFDTixLQUFLLENBQUMsRUFBRSxLQUFLO0FBQ2IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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QUFFLEdBQUc7QUFDVixFQUFFLEtBQUssRUFBRSxZQUFZO0FBQ3JCLEVBQUUsR0FBRyxFQUFFLFlBQVk7QUFDbkIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsUUFBUSxFQUFFLFFBQVE7QUFDcEIsRUFBRSxDQUFDO0FBQ0gsQ0FBQyxJQUFJLEVBQUUsR0FBRztBQUNWLEVBQUUsS0FBSyxFQUFFLFlBQVk7QUFDckIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsQ0FBQztBQUNILENBQUMsSUFBSSxHQUFHLEdBQUc7QUFDWCxFQUFFLEtBQUssRUFBRSxZQUFZO0FBQ3JCLEVBQUUsR0FBRyxFQUFFLFlBQVk7QUFDbkIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsUUFBUSxFQUFFLFNBQVM7QUFDckIsRUFBRSxDQUFDO0FBQ0gsQ0FBQyxJQUFJLEdBQUcsR0FBRztBQUNYLEVBQUUsS0FBSyxFQUFFLFlBQVk7QUFDckIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsQ0FBQztBQUNILENBQUMsSUFBSSxHQUFHLEdBQUc7QUFDWCxFQUFFLEtBQUssRUFBRSxZQUFZO0FBQ3JCLEVBQUUsR0FBRyxFQUFFLFlBQVk7QUFDbkIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsUUFBUSxFQUFFLFFBQVE7QUFDcEIsRUFBRSxDQUFDO0FBQ0gsQ0FBQyxJQUFJLEdBQUcsR0FBRztBQUNYLEVBQUUsS0FBSyxFQUFFLFlBQVk7QUFDckIsRUFBRSxXQUFXLEVBQUUsWUFBWTtBQUMzQixFQUFFLEdBQUcsRUFBRSxZQUFZO0FBQ25CLEVBQUUsQ0FBQztBQUNILENBQUMsSUFBSSxHQUFHLEdBQUc7QUFDWCxFQUFFLEtBQUssRUFBRSxZQUFZO0FB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LElBQUk7QUFDZixHQUFHLE1BQU0sRUFBRSxJQUFJO0FBQ2YsR0FBRyxNQUFNLEVBQUUsSUFBSTtBQUNmLEdBQUcsTUFBTSxFQUFFLElBQUk7QUFDZixHQUFHLE1BQU0sRUFBRSxJQUFJO0FBQ2YsR0FBRyxNQUFNLEVBQUUsSUFBSTtBQUNmLEdBQUcsTUFBTSxFQUFFLElBQUk7QUFDZixHQUFHLE1BQU0sRUFBRSxJQUFJO0FBQ2YsR0FBRyxNQUFNLEVBQUUsSUFBSTtBQUNmLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFFLElBQUk7QUFDZCxHQUFHLEtBQUssRUFBRSxJQUFJO0FBQ2QsR0FBRyxLQUFLLEVBQUUsSUFBSTtBQUNkLEdBQUcsS0FBSyxFQUFF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QUUsSUFBSTtBQUNaLEVBQUUsT0FBTyxFQUFFLElBQUk7QUFDZixFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ2IsRUFBRSxJQUFJLEVBQUUsTUFBTTtBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLEdBQUcsRUFBRSxHQUFHO0FBQ1YsRUFBRSxPQUFPLEVBQUUsR0FBRztBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLFFBQVEsRUFBRSxNQUFNO0FBQ2xCLEVBQUU7QUFDRixFQUFFLHNCQUFzQixFQUFFO0FBQzFCLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDYixFQUFFLEtBQUssRUFBRSxJQUFJO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsT0FBTyxFQUFFLElBQUk7QUFDZixFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ2IsRUFBRSxJQUFJLEVBQUUsTUFBTTtBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLEdBQUcsRUFBRSxHQUFHO0FBQ1YsRUFBRSxPQUFPLEVBQUUsR0FBRztBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLFFBQVEsRUFBRSxNQUFNO0FBQ2xCLEVBQUU7QUFDRixFQUFFLHFCQUFxQixFQUFFO0FBQ3pCLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDYixFQUFFLEtBQUssRUFBRSxJQUFJO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsT0FBTyxFQUFFLElBQUk7QUFDZixFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQ2IsRUFBRSxJQUFJLEVBQUUsTUFBTTtBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLEdBQUcsRUFBRSxHQUFHO0FBQ1YsRUFBRSxPQUFPLEVBQUUsR0FBRztBQUNkLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDZCxFQUFFLFFBQVEsRUFBRSxNQUFNO0FBQ2xCLEVBQUU7QUFDRixFQUFFLDRCQUE0QixFQUFFO0FBQ2hDLEVBQUUsTUFBTSxFQUFFLElBQUk7QUFDZCxFQUFFLEtBQUss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QyxDQUFDO0FBQ3pCLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUM3QixTQUFTLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDO0FBQzlCLFNBQVMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELFNBQVMsR0FBRyxJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUM7QUFDNUIsU0FBUyxPQUFPLEdBQUcsQ0FBQztBQUNwQixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRTtBQUM1QixTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDNUIsV0FBVyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRTtBQUM3QixTQUFTLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQzlDLFdBQVcsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsU0FBUyxHQUFHO0FBQzVCLFNBQVMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsUUFBUTtBQUNSO0FBQ0EsT0FBTyxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDL0IsU0FBUyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQztBQUNoRCxRQUFRO0FBQ1I7QUFDQSxPQUFPLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRTtBQUM1QixTQUFTLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxL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QUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3Jta0I7QUFDQSxDQUFDLElBQUksa0JBQWtCLEdBQUcsU0FBUyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO0FBQ3ZFLEdBQUcsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM3QztBQUNBLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTtBQUN0QixLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzdELElBQUk7QUFDSjtBQUNBLEdBQUcsSUFBSSxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRDtBQUNBLEdBQUcsSUFBSSxjQUFjLEVBQUU7QUFDdkIsS0FBSyxPQUFPLGNBQWMsQ0FBQztBQUMzQixJQUFJO0FBQ0o7QUFDQSxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLGtCQUFrQixHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNyRixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxtQ0FBbUMsR0FBRyxrQkFBa0IsQ0FBQztBQUM5RDtBQUNBLENBQUMsSUFBSSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6NFk7QUFDQSxDQUFDLElBQUksT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzV1QixDQUFDLElBQUksT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2x2QixDQUFDLElBQUksbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN3pCLENBQUMsSUFBSSx3QkFBd0IsR0FBRztBQUNoQyxHQUFHLE9BQU8sRUFBRSxPQUFPO0FBQ25CLEdBQUcsT0FBTyxFQUFFLE9BQU87QUFDbkIsR0FBRyxtQkFB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QU0sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUMxSSxLQUFLLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ2xFLEtBQUssSUFBSSw0QkFBNEIsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxNQUFNLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDakosS0FBSyxJQUFJLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUM1TCxLQUFLLElBQUksNkJBQTZCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQy9MLEtBQUssT0FBTyx1QkFBdUIsSUFBSSx1QkFBdUIsSUFBSSxVQUFVLElBQUksNEJBQTRCLElBQUksMEJBQTBCLElBQUksNkJBQTZCLENBQUM7QUFDNUssSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE9BQU8s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LElBQUk7QUFDZCxFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsUUFBUSxFQUFFLEtBQUs7QUFDakIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsR0FBRyxFQUFFLE1BQU07QUFDYixFQUFFLElBQUksRUFBRSxNQUFNO0FBQ2QsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUNkLEVBQUUsT0FBTyxFQUFFLE1BQU07QUFDakIsRUFBRTtBQUNGLEVBQUUsbUJBQW1CLEVBQUU7QUFDdkIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsTUFBTSxFQUFFLElBQUk7QUFDZCxFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsUUFBUSxFQUFFLEtBQUs7QUFDakIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsR0FBRyxFQUFFLE1BQU07QUFDYixFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUNqQixFQUFFLE1BQU0sRUFBRSxNQUFNO0FBQ2hCLEVBQUUsT0FBTyxFQUFFLEtBQUs7QUFDaEIsRUFBRTtBQUNGLEVBQUUsa0JBQWtCLEVBQUU7QUFDdEIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsTUFBTSxFQUFFLElBQUk7QUFDZCxFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSTtBQUNaLEVBQUUsUUFBUSxFQUFFLEtBQUs7QUFDakIsRUFBRSxPQUFPLEVBQUUsSUFBSTtBQUNmLEVBQUUsR0FBRyxFQUFFLE1BQU07QUFDYixFQUFFLElBQUksRUFBRSxLQUFLO0FBQ2IsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFF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QUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsTUFBTTtBQUNsQixFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxHQUFHLEVBQUUsS0FBSztBQUNaLEVBQUUsSUFBSSxFQUFFLFNBQVM7QUFDakIsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUNqQixFQUFFLE1BQU0sRUFBRSxLQUFLO0FBQ2YsRUFBRSxPQUFPLEVBQUUsS0FBSztBQUNoQixFQUFFO0FBQ0YsRUFBRSw0QkFBNEIsRUFBRTtBQUNoQyxFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUNkLEVBQUUsSUFBSSxFQUFFLEtBQUs7QUFDYixFQUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsTUFBTTtBQUNsQixFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxHQUFHLEVBQUUsS0FBSztBQUNaLEVBQUUsSUFBSSxFQUFFLFNBQVM7QUFDakIsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFDcEIsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUNqQixFQUFFLE1BQU0sRUFBRSxLQUFLO0FBQ2YsRUFBRSxPQUFPLEVBQUUsS0FBSztBQUNoQixFQUFFO0FBQ0YsRUFBRSw0QkFBNEIsRUFBRTtBQUNoQyxFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUNkLEVBQUUsSUFBSSxFQUFFLEtBQUs7QUFDYixFQUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsTUFBTTtBQUNsQixFQUFFLE9BQU8sRUFBRSxJQUFJO0FBQ2YsRUFBRSxHQUFHLEVBQUUsS0FBSztBQUNaLEVBQUUsSUFBSSxFQUFFLFNBQVM7QUFDakIsRUFBRSxLQUFLLEVBQUUsSUFBSTtBQUNiLEVBQUUsWUFBWSxFQUFFLElBQUk7QUFD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QUNoTyxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdkMsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4RSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFDcEMsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDM0UsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNyRixHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdkMsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4RSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFDcEMsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDM0UsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNyRixHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUM3RixHQUFHLFdBQVcsQ0FBQyxZQUFZLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDdkYsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzlILEdBQUcsT0FBTyxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztBQUM1QyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxHQUFHLFdBQVcsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUM5SCxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxXQUFXLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztBQUM3SSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUMxQyxFQUFFLEVBQUUsMkVBQTJFLENBQUMsQ0FBQztBQUNqRjtBQUNBLENBQUMsSUFBSSxPQUFPLEdBQUcsVUFBVSxDQUFDO0FBQzFCO0FBQ0EsQ0FBQyxJQUFJLG9CQUFvQixHQUFHLFNBQVMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUM5RCxHQUFHLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsR0FBRyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCO0FBQ0EsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7QUFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDWixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNaLElBQUk7QUFDSjtBQUNBLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoRixFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxtQkFBbUIsR0FBRyxTQUFTLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDOUQsR0FBRyxPQUFPLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyQyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxXQUFXLEdBQUc7QUFDbkIsR0FBRyxrQkFBa0IsRUFBRSxvQkFBb0I7QUFDM0MsR0FBRyxtQkFBbUIsRUFBRSxtQkFBbUI7QUFDM0MsRUFBRSxDQUFDO0FBQ0g7QUFDQSxDQUFDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxVQUFVO0FBQ3hDLEtBQUssZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDO0FBQ25ELENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUU7QUFDbkIsS0FBSyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLElBQUksa0JBQWtCLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDO0FBQ3pEO0FBQ0EsQ0FBQyxJQUFJLE1BQU0sR0FBRyxZQUFZO0FBQzFCLEdBQUcsU0FBUyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUNyQyxLQUFLLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQ2xELE9BQU8sT0FBTyxHQUFHO0FBQ2pCLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPO0FBQ3pCLFNBQVMsaUJBQWlCLEVBQUUsS0FBSztBQUNqQyxRQUFRLENBQUM7QUFDVCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksT0FBTyxZQUFZLE1BQU0sRUFBRTtBQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtBQUMzRyxTQUFTLE9BQU8sT0FBTyxDQUFDO0FBQ3hCLFFBQVEsTUFBTTtBQUNkLFNBQVMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDbkMsUUFBUTtBQUNSLE1BQU0sTUFBTSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtBQUM3QyxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDMUQsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFO0FBQ3hDLE9BQU8sTUFBTSxJQUFJLFNBQVMsQ0FBQyx5QkFBeUIsR0FBRyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDckYsTUFBTTtBQUNOO0FBQ0EsS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxLQUFLLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQzVCLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUNsQyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQzFELEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BGO0FBQ0EsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFO0FBQ2IsT0FBTyxNQUFNLElBQUksU0FBUyxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQzFELE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7QUFDeEIsS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QixLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEI7QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtBQUMxRCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNwRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtBQUMxRCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNwRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtBQUMxRCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNwRCxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM1QixNQUFNLE1BQU07QUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUU7QUFDM0QsU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDbEMsV0FBVyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN6QjtBQUNBLFdBQVcsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRTtBQUNuRCxhQUFhLE9BQU8sR0FBRyxDQUFDO0FBQ3hCLFlBQVk7QUFDWixVQUFVO0FBQ1Y7QUFDQSxTQUFTLE9BQU8sRUFBRSxDQUFDO0FBQ25CLFFBQVEsQ0FBQyxDQUFDO0FBQ1YsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM5QyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNuQixJQUFJO0FBQ0o7QUFDQSxHQUFHLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDakM7QUFDQSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxNQUFNLEdBQUc7QUFDckMsS0FBSyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDckU7QUFDQSxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2RCxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN6QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsR0FBRztBQUN6QyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN6QixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDNUMsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xFO0FBQ0EsS0FBSyxJQUFJLEVBQUUsS0FBSyxZQUFZLE1BQU0sQ0FBQyxFQUFFO0FBQ3JDLE9BQU8sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDaEUsU0FBUyxPQUFPLENBQUMsQ0FBQztBQUNsQixRQUFRO0FBQ1I7QUFDQSxPQUFPLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDekMsT0FBTyxPQUFPLENBQUMsQ0FBQztBQUNoQixNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRTtBQUNwRCxLQUFLLElBQUksRUFBRSxLQUFLLFlBQVksTUFBTSxDQUFDLEVBQUU7QUFDckMsT0FBTyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQyxNQUFNO0FBQ047QUFDQSxLQUFLLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEosSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FBUyxVQUFVLENBQUMsS0FBSyxFQUFFO0FBQ2xELEtBQUssSUFBSSxFQUFFLEtBQUssWUFBWSxNQUFNLENBQUMsRUFBRTtBQUNyQyxPQUFPLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLE1BQU07QUFDTjtBQUNBLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO0FBQzdELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNqQixNQUFNLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO0FBQ3BFLE9BQU8sT0FBTyxDQUFDLENBQUM7QUFDaEIsTUFBTSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO0FBQ3JFLE9BQU8sT0FBTyxDQUFDLENBQUM7QUFDaEIsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZjtBQUNBLEtBQUssR0FBRztBQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQyxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsT0FBTyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM5QztBQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDL0MsU0FBUyxPQUFPLENBQUMsQ0FBQztBQUNsQixRQUFRLE1BQU0sSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25DLFNBQVMsT0FBTyxDQUFDLENBQUM7QUFDbEIsUUFBUSxNQUFNLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtBQUNuQyxTQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDbkIsUUFBUSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUMzQixTQUFTLFNBQVM7QUFDbEIsUUFBUSxNQUFNO0FBQ2QsU0FBUyxPQUFPLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6QyxRQUFRO0FBQ1IsTUFBTSxRQUFRLEVBQUUsQ0FBQyxFQUFFO0FBQ25CLElBQUksQ0FBQztBQUNMO0FBQ0EsR0FBRyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsWUFBWSxDQUFDLEtBQUssRUFBRTtBQUN0RCxLQUFLLElBQUksRUFBRSxLQUFLLFlBQVksTUFBTSxDQUFDLEVBQUU7QUFDckMsT0FBTyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQyxNQUFNO0FBQ047QUFDQSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmO0FBQ0EsS0FBSyxHQUFHO0FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixPQUFPLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzlDO0FBQ0EsT0FBTyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtBQUMvQyxTQUFTLE9BQU8sQ0FBQyxDQUFDO0FBQ2xCLFFBQVEsTUFBTSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDbkMsU0FBUyxPQUFPLENBQUMsQ0FBQztBQUNsQixRQUFRLE1BQU0sSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25DLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNuQixRQUFRLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzNCLFNBQVMsU0FBUztBQUNsQixRQUFRLE1BQU07QUFDZCxTQUFTLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLFFBQVE7QUFDUixNQUFNLFFBQVEsRUFBRSxDQUFDLEVBQUU7QUFDbkIsSUFBSSxDQUFDO0FBQ0w7QUFDQSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRTtBQUNsRCxLQUFLLFFBQVEsT0FBTztBQUNwQixPQUFPLEtBQUssVUFBVTtBQUN0QixTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNwQyxTQUFTLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEIsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdEIsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNyQyxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxVQUFVO0FBQ3RCLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEIsU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdEIsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNyQyxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxVQUFVO0FBQ3RCLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDdkMsU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNyQyxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxZQUFZO0FBQ3hCLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDM0MsV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN6QyxVQUFVO0FBQ1Y7QUFDQSxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3JDLFNBQVMsTUFBTTtBQUNmO0FBQ0EsT0FBTyxLQUFLLE9BQU87QUFDbkIsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNuRixXQUFXLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4QixVQUFVO0FBQ1Y7QUFDQSxTQUFTLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLFNBQVMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEIsU0FBUyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM5QixTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU8sS0FBSyxPQUFPO0FBQ25CLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDL0QsV0FBVyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDeEIsVUFBVTtBQUNWO0FBQ0EsU0FBUyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN4QixTQUFTLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzlCLFNBQVMsTUFBTTtBQUNmO0FBQ0EsT0FBTyxLQUFLLE9BQU87QUFDbkIsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMzQyxXQUFXLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4QixVQUFVO0FBQ1Y7QUFDQSxTQUFTLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzlCLFNBQVMsTUFBTTtBQUNmO0FBQ0EsT0FBTyxLQUFLLEtBQUs7QUFDakIsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMzQyxXQUFXLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxVQUFVLE1BQU07QUFDaEIsV0FBVyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztBQUMxQztBQUNBLFdBQVcsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDNUIsYUFBYSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7QUFDekQsZUFBZSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEIsY0FBYztBQUNkLFlBQVk7QUFDWjtBQUNBLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDekIsYUFBYSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxZQUFZO0FBQ1osVUFBVTtBQUNWO0FBQ0EsU0FBUyxJQUFJLFVBQVUsRUFBRTtBQUN6QixXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDbEQsYUFBYSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDNUMsZUFBZSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pELGNBQWM7QUFDZCxZQUFZLE1BQU07QUFDbEIsYUFBYSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9DLFlBQVk7QUFDWixVQUFVO0FBQ1Y7QUFDQSxTQUFTLE1BQU07QUFDZjtBQUNBLE9BQU87QUFDUCxTQUFTLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDbkUsTUFBTTtBQUNOO0FBQ0EsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDN0IsS0FBSyxPQUFPLElBQUksQ0FBQztBQUNqQixJQUFJLENBQUM7QUFDTDtBQUNBLEdBQUcsT0FBTyxNQUFNLENBQUM7QUFDakIsRUFBRSxFQUFFLENBQUM7QUFDTDtBQUNBLENBQUMsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCO0FBQ0EsQ0FBQyxJQUFJLFNBQVMsR0FBRyxTQUFTLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUMvQyxHQUFHLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRSxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQzNCO0FBQ0EsQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUNuQyxHQUFHLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDZjtBQUNBLENBQUMsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDckMsR0FBRyxPQUFPLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN2QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2pCO0FBQ0EsQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUNuQyxHQUFHLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDZjtBQUNBLENBQUMsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDckMsR0FBRyxPQUFPLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2pCO0FBQ0EsQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUNuQyxHQUFHLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLEVBQUUsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7QUFDZjtBQUNBLENBQUMsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDckMsR0FBRyxPQUFPLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxFQUFFLENBQUM7QUFDSDtBQUNBLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2pCO0FBQ0EsQ0FBQyxJQUFJLEdBQUcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxF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QUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSxnQkFBZ0I7QUFDbEIsRUFBRSxtQ0FBbUM7QUFDckMsRUFBRSx3Q0FBd0M7QUFDMUMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSxrQ0FBa0M7QUFDcEMsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsS0FBSyxFQUFFO0FBQ1QsRUFBRSwrQkFBK0I7QUFDakMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw4QkFBOEI7QUFDaEMs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RUFBRSw4QkFBOEI7QUFDaEMsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxtQ0FBbUM7QUFDckMsRUFBRSx3Q0FBd0M7QUFDMUMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxnQ0FBZ0M7QUFDbEMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSxrQ0FBa0M7QUFDcEMsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxrQkFBa0I7QUFDcEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSxpQkFBaUI7QUFDbkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxpQkFBaUI7QUFDbkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSxxQkFBcUI7QUFDdkIs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cUJBQXFCO0FBQ3ZCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsMkJBQTJCO0FBQzdCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsOEJBQThCO0FBQ2hDLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsbUJBQW1CO0FBQ3JCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUsNkJBQTZCO0FBQy9CLEVBQUUsd0JBQXdCO0FBQzFCLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsc0JBQXNCO0FBQ3hCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUsaUNBQWlDO0FBQ25DLEVBQUUsMEJBQTBCO0FBQzVCLEVBQUU7QUFDRixFQUFFLDRDQUE0QyxFQUFFO0FBQ2hELEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsb0NBQW9DO0FBQ3RDLEVBQUUsbUJBQW1CO0FBQ3JCLEVBQUUsNEJBQTRCO0FBQzlCLEVBQUUsc0JBQXNCO0FBQ3hCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsMkJBQTJCO0FBQzdCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUseUJBQXlCO0FBQzNCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUsOEJBQThCO0FBQ2hDLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsbUJBQW1CO0FBQ3JCLEVBQUUsdUJBQXVCO0FBQ3pCLEVBQUUsNkJBQTZCO0FBQy9CLEVBQUUsd0JBQXdCO0FBQzFCLEVBQUUsb0JBQW9CO0FBQ3RCLEVBQUUsc0JBQXNCO0FBQ3hCLEVBQUUscUJBQXFCO0FBQ3ZCLEVBQUUscUJB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bUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsaUNBQWlDLEVBQUU7QUFDckMsRUFBRSxpQkFBaUI7QUFDbkIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsNkNBQTZDLEVBQUU7QUFDakQsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUseUNBQXlDLEVBQUU7QUFDN0MsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRTtBQUNGLEVBQUUscUNBQXFDLEVBQUU7QUFDekMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRTtBQUNGLEVBQUUsb0NBQW9DLEVBQUU7QUFDeEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUseUNBQXlDLEVBQUU7QUFDN0MsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRTtBQUNGLEVBQUUscUNBQXFDLEVBQUU7QUFDekMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUseUNBQXlDLEVBQUU7QUFDN0MsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRTtBQUNGLEVBQUUscUNBQXFDLEVBQUU7QUFDekMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRTtBQUNGLEVBQUUsbUNBQW1DLEVBQUU7QUFDdkMsRUFBRSxtQkFBbUI7QUFDckIsRUFBRTtBQUNGLEVBQUUsMkNBQTJDLEVB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OUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRTtBQUNGLEVBQUUsd0NBQXdDLEVBQUU7QUFDNUMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFBc0I7QUFDeEIs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QkFBNEI7QUFDOUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxpQ0FBaUM7QUFDbkMsRUFBRSwwQkFBMEI7QUFDNUIsRUFBRTtBQUNGLEVBQUUsd0NBQXdDLEVBQUU7QUFDNUMsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSw0QkFBNEI7QUFDOUIsRUFBRSxzQkFBc0I7QUFDeEIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSwyQkFBMkI7QUFDN0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSx5QkFBeUI7QUFDM0IsRUFBRSxxQkFBcUI7QUFDdkIsRUFBRSw4QkFBOEI7QUFDaEMsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSx1QkFBdUI7QUFDekIsRUFBRSw2QkFBNkI7QUFDL0IsRUFBRSx3QkFBd0I7QUFDMUIsRUFBRSxvQkFBb0I7QUFDdEIsRUFBRSxzQkFB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RUFBRSxvQkFBb0I7QUFDaEQsR0FBRyx3Q0FBd0MsRUFBRSxtQ0FBbUM7QUFDaEYsR0FBRyxzQkFBc0IsRUFBRSxtQkFBbUI7QUFDOUMsR0FBRyx5QkFBeUIsRUFBRSxxQkFBcUI7QUFDbkQsR0FBRyx3QkFBd0IsRUFBRSxxQkFBcUI7QUFDbEQsR0FBRyw2Q0FBNkMsRUFBRSxxQ0FBcUM7QUFDdkYsR0FBRyxzQkFBc0IsRUFBRSxvQkFBb0I7QUFDL0MsR0FBRyw2QkFBNkIsRUFBRSwwQkFBMEI7QUFDNUQsR0FBRyw2QkFBNkIsRUFBRSx5QkFBeUI7QUFDM0QsR0FBRywyQkFBMkIsRUFBRSxzQkFBc0I7QUFDdEQsR0FBRyxtQ0FBbUMsRUFBRSw4QkFBOEI7QUFDdEUsR0FBRyw4QkFBOEIsRUFBRSx5QkFBeUI7QUFDNUQsR0FBRyxpQ0FBaUMsRUFBRSw0QkFBNEI7QUFDbEUsR0FBRyxxQkFBcUIsRUFBRSxpQkFBaUI7QUFDM0MsR0FBRyw0QkFBNEIsRUFBRSx1QkFBdUI7QUFDeEQsR0FBRyxpQ0FBaUMsRUFBRSw0QkFBNEI7QUFDbEUsR0FBRywwQkFBMEIsRUFBRSxxQkFBcUI7QUFDcEQsR0FBRyw0QkFBNEIsRUFBRSx1QkFBdUI7QUFDeEQsR0FBRyx1QkFBdUIsRUFBRSxxQkFBcUI7QUFDakQsR0FBRywwQkFBMEIsRUFBRSx1QkFBdUI7QUFDdEQsR0FBRyxtQkFBbUIsRUFBRSxnQkFBZ0I7QUFDeEMsR0FBRyxnQ0FBZ0MsRUFBRSw2QkFBNkI7QUFDbEUsR0FBRyxrQkFBa0IsRUFBRSxnQkFBZ0I7QUFDdkMsR0FBRyx3QkFBd0IsRUFBRSxxQkFBcUI7QUFDbEQsR0FBRyx1QkFBdUIsRUFBRSxtQkFBbUI7QUFDL0MsR0FBRyw2QkFBNkIsRUFBRSwwQkFBMEI7QUFDNUQsR0FBRyx5QkFBeUIsRUFBRSxzQkFBc0I7QUFDcEQsR0FBRyxzQkFBc0IsRUFBRSxtQkFBbUI7QUFDOUMsR0FBRywyQkFBMkIsRUFBRSx3QkFBd0I7QUFDeEQsR0FBRyx5QkFBeUIsRUFBRSxzQkFBc0I7QUFDcEQsRUFBRSxDQUFDO0FB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 diff --git a/.obsidian/plugins/obsidian-react-components/manifest.json b/.obsidian/plugins/obsidian-react-components/manifest.json index 1f3164ad..60172885 100644 --- a/.obsidian/plugins/obsidian-react-components/manifest.json +++ b/.obsidian/plugins/obsidian-react-components/manifest.json @@ -1,8 +1,8 @@ { "id": "obsidian-react-components", "name": "React Components", - "version": "0.1.5", - "minAppVersion": "0.13.14", + "version": "0.1.6", + "minAppVersion": "0.13.19", "description": "This is a plugin for Obsidian. It allows you to write and use React components with Jsx inside your Obsidian notes.", "author": "Elias Sundqvist", "authorUrl": "https://github.com/elias-sundqvist", diff --git a/.obsidian/plugins/obsidian-reminder-plugin/data.json b/.obsidian/plugins/obsidian-reminder-plugin/data.json index f5f139ff..7e8e18d5 100644 --- a/.obsidian/plugins/obsidian-reminder-plugin/data.json +++ b/.obsidian/plugins/obsidian-reminder-plugin/data.json @@ -38,13 +38,6 @@ "rowNumber": 199 } ], - "04.01 lebv.org/lebv Email Tasks.md": [ - { - "title": "[[lebv Email Tasks|Email]]: Move away from Titan to Hostinger (free)", - "time": "2022-02-02", - "rowNumber": 71 - } - ], "06.01 Finances/hLedger.md": [ { "title": "[[hLedger]]: Update Price file", @@ -59,7 +52,7 @@ "rowNumber": 116 }, { - "title": "[[Finances]]: Transfer UK pension to CH 🔼", + "title": "[[Finances]]: Transfer UK pension to CH", "time": "2022-06-29", "rowNumber": 71 } @@ -465,7 +458,7 @@ { "title": "22:46 [[2022-01-22|Memo]], [[Finances]]: GBP account re moving to ZH", "time": "2022-03-31", - "rowNumber": 81 + "rowNumber": 82 } ] }, diff --git a/.obsidian/plugins/obsidian-tracker/main.js b/.obsidian/plugins/obsidian-tracker/main.js new file mode 100644 index 00000000..837ce5df --- /dev/null +++ b/.obsidian/plugins/obsidian-tracker/main.js @@ -0,0 +1,16 @@ +"use strict";var t=require("obsidian"); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */function e(t,e,n,r){return new(n||(n=Promise))((function(a,i){function l(t){try{u(r.next(t))}catch(t){i(t)}}function o(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(l,o)}u((r=r.apply(t,e||[])).next())}))}function n(t,e){return te?1:t>=e?0:NaN}function r(t){let e=t,r=t;function a(t,e,n,a){for(null==n&&(n=0),null==a&&(a=t.length);n>>1;r(t[i],e)<0?n=i+1:a=i}return n}return 1===t.length&&(e=(e,n)=>t(e)-n,r=function(t){return(e,r)=>n(t(e),r)}(t)),{left:a,center:function(t,n,r,i){null==r&&(r=0),null==i&&(i=t.length);const l=a(t,n,r,i-1);return l>r&&e(t[l-1],n)>-e(t[l],n)?l-1:l},right:function(t,e,n,a){for(null==n&&(n=0),null==a&&(a=t.length);n>>1;r(t[i],e)>0?a=i:n=i+1}return n}}}const a=r(n).right;function i(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&n.path)}},n.exports),n.exports}r((function(t){return null===t?NaN:+t})).center;var l=Math.sqrt(50),o=Math.sqrt(10),u=Math.sqrt(2);function s(t,e,n){var r=(e-t)/Math.max(0,n),a=Math.floor(Math.log(r)/Math.LN10),i=r/Math.pow(10,a);return a>=0?(i>=l?10:i>=o?5:i>=u?2:1)*Math.pow(10,a):-Math.pow(10,-a)/(i>=l?10:i>=o?5:i>=u?2:1)}function f(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),a=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/a;return i>=l?a*=10:i>=o?a*=5:i>=u&&(a*=2),e=e)&&(n=e);else{let r=-1;for(let a of t)null!=(a=e(a,++r,t))&&(n=a)&&(n=a)}return n}function h(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let a of t)null!=(a=e(a,++r,t))&&(n>a||void 0===n&&a>=a)&&(n=a)}return n}function d(t,e,r=0,a=t.length-1,i=n){for(;a>r;){if(a-r>600){const n=a-r+1,l=e-r+1,o=Math.log(n),u=.5*Math.exp(2*o/3),s=.5*Math.sqrt(o*u*(n-u)/n)*(l-n/2<0?-1:1);d(t,e,Math.max(r,Math.floor(e-l*u/n+s)),Math.min(a,Math.floor(e+(n-l)*u/n+s)),i)}const n=t[e];let l=r,o=a;for(g(t,r,e),i(t[a],n)>0&&g(t,r,a);l0;)--o}0===i(t[r],n)?g(t,r,o):(++o,g(t,o,a)),o<=e&&(r=o+1),e<=o&&(a=o-1)}return t}function g(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function p(t,e,n){if(r=(t=Float64Array.from(function*(t,e){if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(yield e);else{let n=-1;for(let r of t)null!=(r=e(r,++n,t))&&(r=+r)>=r&&(yield r)}}(t,n))).length){if((e=+e)<=0||r<2)return h(t);if(e>=1)return c(t);var r,a=(r-1)*e,i=Math.floor(a),l=c(d(t,i).subarray(0,i+1));return l+(h(t.subarray(i+1))-l)*(a-i)}}function y(t,e,n){t=+t,e=+e,n=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+n;for(var r=-1,a=0|Math.max(0,Math.ceil((e-t)/n)),i=new Array(a);++r+t(e)}function D(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function k(){return!this.__axis}function M(t,e){var n=[],r=null,a=null,i=6,l=6,o=3,u="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,s=1===t||4===t?-1:1,f=4===t||2===t?"x":"y",c=1===t||3===t?x:A;function h(h){var d=null==r?e.ticks?e.ticks.apply(e,n):e.domain():r,g=null==a?e.tickFormat?e.tickFormat.apply(e,n):w:a,p=Math.max(i,0)+o,y=e.range(),m=+y[0]+u,v=+y[y.length-1]+u,x=(e.bandwidth?D:b)(e.copy(),u),A=h.selection?h.selection():h,M=A.selectAll(".domain").data([null]),T=A.selectAll(".tick").data(d,e).order(),C=T.exit(),F=T.enter().append("g").attr("class","tick"),_=T.select("line"),S=T.select("text");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),T=T.merge(F),_=_.merge(F.append("line").attr("stroke","currentColor").attr(f+"2",s*i)),S=S.merge(F.append("text").attr("fill","currentColor").attr(f,s*p).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==A&&(M=M.transition(h),T=T.transition(h),_=_.transition(h),S=S.transition(h),C=C.transition(h).attr("opacity",1e-6).attr("transform",(function(t){return isFinite(t=x(t))?c(t+u):this.getAttribute("transform")})),F.attr("opacity",1e-6).attr("transform",(function(t){var e=this.parentNode.__axis;return c((e&&isFinite(e=e(t))?e:x(t))+u)}))),C.remove(),M.attr("d",4===t||2===t?l?"M"+s*l+","+m+"H"+u+"V"+v+"H"+s*l:"M"+u+","+m+"V"+v:l?"M"+m+","+s*l+"V"+u+"H"+v+"V"+s*l:"M"+m+","+u+"H"+v),T.attr("opacity",1).attr("transform",(function(t){return c(x(t)+u)})),_.attr(f+"2",s*i),S.attr(f,s*p).text(g),A.filter(k).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),A.each((function(){this.__axis=x}))}return h.scale=function(t){return arguments.length?(e=t,h):e},h.ticks=function(){return n=v.call(arguments),h},h.tickArguments=function(t){return arguments.length?(n=null==t?[]:v.call(t),h):n.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:v.call(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(a=t,h):a},h.tickSize=function(t){return arguments.length?(i=l=+t,h):i},h.tickSizeInner=function(t){return arguments.length?(i=+t,h):i},h.tickSizeOuter=function(t){return arguments.length?(l=+t,h):l},h.tickPadding=function(t){return arguments.length?(o=+t,h):o},h.offset=function(t){return arguments.length?(u=+t,h):u},h}function T(t){return M(3,t)}function C(t){return M(4,t)}var F={value:()=>{}};function _(){for(var t,e=0,n=arguments.length,r={};e=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function B(t,e){for(var n,r=0,a=t.length;r0)for(var n,r,a=new Array(n),i=0;i=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),V.hasOwnProperty(e)?{space:V[e],local:t}:t}function Y(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===L&&e.documentElement.namespaceURI===L?e.createElement(t):e.createElementNS(n,t)}}function P(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function z(t){var e=I(t);return(e.local?P:Y)(e)}function O(){}function U(t){return null==t?O:function(){return this.querySelector(t)}}function R(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function W(){return[]}function $(t){return null==t?W:function(){return this.querySelectorAll(t)}}function H(t){return function(){return this.matches(t)}}function X(t){return function(e){return e.matches(t)}}var j=Array.prototype.find;function q(){return this.firstElementChild}var G=Array.prototype.filter;function Q(){return this.children}function Z(t){return new Array(t.length)}function J(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function K(t){return function(){return t}}function tt(t,e,n,r,a,i){for(var l,o=0,u=e.length,s=i.length;oe?1:t>=e?0:NaN}function at(t){return function(){this.removeAttribute(t)}}function it(t){return function(){this.removeAttributeNS(t.space,t.local)}}function lt(t,e){return function(){this.setAttribute(t,e)}}function ot(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function ut(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function st(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function ft(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ct(t){return function(){this.style.removeProperty(t)}}function ht(t,e,n){return function(){this.style.setProperty(t,e,n)}}function dt(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function gt(t,e){return t.style.getPropertyValue(e)||ft(t).getComputedStyle(t,null).getPropertyValue(e)}function pt(t){return function(){delete this[t]}}function yt(t,e){return function(){this[t]=e}}function mt(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function vt(t){return t.trim().split(/^|\s+/)}function wt(t){return t.classList||new xt(t)}function xt(t){this._node=t,this._names=vt(t.getAttribute("class")||"")}function At(t,e){for(var n=wt(t),r=-1,a=e.length;++r=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function zt(t){return function(){var e=this.__on;if(e){for(var n,r=0,a=-1,i=e.length;r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var $t=[null];function Ht(t,e){this._groups=t,this._parents=e}function Xt(){return new Ht([[document.documentElement]],$t)}function jt(t){return"string"==typeof t?new Ht([[document.querySelector(t)]],[document.documentElement]):new Ht([[t]],$t)}function qt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Gt(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Qt(){}Ht.prototype=Xt.prototype={constructor:Ht,select:function(t){"function"!=typeof t&&(t=U(t));for(var e=this._groups,n=e.length,r=new Array(n),a=0;a=A&&(A=x+1);!(w=y[A])&&++A=0;)(r=a[i])&&(l&&4^r.compareDocumentPosition(l)&&l.parentNode.insertBefore(r,l),l=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=rt);for(var n=this._groups,r=n.length,a=new Array(r),i=0;i1?this.each((null==e?ct:"function"==typeof e?dt:ht)(t,e,null==n?"":n)):gt(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?pt:"function"==typeof e?mt:yt)(t,e)):this.node()[t]},classed:function(t,e){var n=vt(t+"");if(arguments.length<2){for(var r=wt(this.node()),a=-1,i=n.length;++a>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?de(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?de(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=ne.exec(t))?new ye(e[1],e[2],e[3],1):(e=re.exec(t))?new ye(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=ae.exec(t))?de(e[1],e[2],e[3],e[4]):(e=ie.exec(t))?de(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=le.exec(t))?xe(e[1],e[2]/100,e[3]/100,1):(e=oe.exec(t))?xe(e[1],e[2]/100,e[3]/100,e[4]):ue.hasOwnProperty(t)?he(ue[t]):"transparent"===t?new ye(NaN,NaN,NaN,0):null}function he(t){return new ye(t>>16&255,t>>8&255,255&t,1)}function de(t,e,n,r){return r<=0&&(t=e=n=NaN),new ye(t,e,n,r)}function ge(t){return t instanceof Qt||(t=ce(t)),t?new ye((t=t.rgb()).r,t.g,t.b,t.opacity):new ye}function pe(t,e,n,r){return 1===arguments.length?ge(t):new ye(t,e,n,null==r?1:r)}function ye(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function me(){return"#"+we(this.r)+we(this.g)+we(this.b)}function ve(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function we(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function xe(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new be(t,e,n,r)}function Ae(t){if(t instanceof be)return new be(t.h,t.s,t.l,t.opacity);if(t instanceof Qt||(t=ce(t)),!t)return new be;if(t instanceof be)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),i=Math.max(e,n,r),l=NaN,o=i-a,u=(i+a)/2;return o?(l=e===i?(n-r)/o+6*(n0&&u<1?0:l,new be(l,o,u,t.opacity)}function be(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function De(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}qt(Qt,ce,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:se,formatHex:se,formatHsl:function(){return Ae(this).formatHsl()},formatRgb:fe,toString:fe}),qt(ye,pe,Gt(Qt,{brighter:function(t){return t=null==t?Zt:Math.pow(Zt,t),new ye(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new ye(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:me,formatHex:me,formatRgb:ve,toString:ve})),qt(be,(function(t,e,n,r){return 1===arguments.length?Ae(t):new be(t,e,n,null==r?1:r)}),Gt(Qt,{brighter:function(t){return t=null==t?Zt:Math.pow(Zt,t),new be(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new be(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new ye(De(t>=240?t-240:t+120,a,r),De(t,a,r),De(t<120?t+240:t-120,a,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const ke=Math.PI/180,Me=180/Math.PI,Te=4/29,Ce=6/29,Fe=3*Ce*Ce;function _e(t){if(t instanceof Ee)return new Ee(t.l,t.a,t.b,t.opacity);if(t instanceof Ye)return Pe(t);t instanceof ye||(t=ge(t));var e,n,r=Ve(t.r),a=Ve(t.g),i=Ve(t.b),l=Be((.2225045*r+.7168786*a+.0606169*i)/1);return r===a&&a===i?e=n=l:(e=Be((.4360747*r+.3850649*a+.1430804*i)/.96422),n=Be((.0139322*r+.0971045*a+.7141733*i)/.82521)),new Ee(116*l-16,500*(e-l),200*(l-n),t.opacity)}function Se(t,e,n,r){return 1===arguments.length?_e(t):new Ee(t,e,n,null==r?1:r)}function Ee(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function Be(t){return t>.008856451679035631?Math.pow(t,1/3):t/Fe+Te}function Ne(t){return t>Ce?t*t*t:Fe*(t-Te)}function Le(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Ve(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ie(t){if(t instanceof Ye)return new Ye(t.h,t.c,t.l,t.opacity);if(t instanceof Ee||(t=_e(t)),0===t.a&&0===t.b)return new Ye(NaN,0=0&&e._call.call(null,t),e=e._next;--Ue}()}finally{Ue=0,function(){var t,e,n=ze,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:ze=e);Oe=t,en(r)}(),He=0}}function tn(){var t=je.now(),e=t-$e;e>1e3&&(Xe-=e,$e=t)}function en(t){Ue||(Re&&(Re=clearTimeout(Re)),t-He>24?(t<1/0&&(Re=setTimeout(Ke,t-je.now()-Xe)),We&&(We=clearInterval(We))):(We||($e=je.now(),We=setInterval(tn,1e3)),Ue=1,qe(Ke)))}function nn(t,e,n){var r=new Ze;return e=null==e?0:+e,r.restart((n=>{r.stop(),t(n+e)}),e,n),r}Ze.prototype=Je.prototype={constructor:Ze,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?Ge():+n)+(null==e?0:+e),this._next||Oe===this||(Oe?Oe._next=this:ze=this,Oe=this),this._call=t,this._time=n,en()},stop:function(){this._call&&(this._call=null,this._time=1/0,en())}};var rn=_("start","end","cancel","interrupt"),an=[];function ln(t,e,n,r,a,i){var l=t.__transition;if(l){if(n in l)return}else t.__transition={};!function(t,e,n){var r,a=t.__transition;function i(t){n.state=1,n.timer.restart(l,n.delay,n.time),n.delay<=t&&l(t-n.delay)}function l(i){var s,f,c,h;if(1!==n.state)return u();for(s in a)if((h=a[s]).name===n.name){if(3===h.state)return nn(l);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete a[s]):+s0)throw new Error("too late; already scheduled");return n}function un(t,e){var n=sn(t,e);if(n.state>3)throw new Error("too late; already running");return n}function sn(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}var fn=t=>()=>t;function cn(t){return 1==(t=+t)?hn:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):fn(isNaN(e)?n:e)}}function hn(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):fn(isNaN(t)?e:t)}var dn=function t(e){var n=cn(e);function r(t,e){var r=n((t=pe(t)).r,(e=pe(e)).r),a=n(t.g,e.g),i=n(t.b,e.b),l=hn(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=a(e),t.b=i(e),t.opacity=l(e),t+""}}return r.gamma=t,r}(1);function gn(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var pn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,yn=new RegExp(pn.source,"g");function mn(t,e){var n,r,a,i=pn.lastIndex=yn.lastIndex=0,l=-1,o=[],u=[];for(t+="",e+="";(n=pn.exec(t))&&(r=yn.exec(e));)(a=r.index)>i&&(a=e.slice(i,a),o[l]?o[l]+=a:o[++l]=a),(n=n[0])===(r=r[0])?o[l]?o[l]+=r:o[++l]=r:(o[++l]=null,u.push({i:l,x:gn(n,r)})),i=yn.lastIndex;return i180?e+=360:e-t>180&&(t+=360),i.push({i:n.push(a(n)+"rotate(",null,r)-2,x:gn(t,e)})):e&&n.push(a(n)+"rotate("+e+r)}(i.rotate,l.rotate,o,u),function(t,e,n,i){t!==e?i.push({i:n.push(a(n)+"skewX(",null,r)-2,x:gn(t,e)}):e&&n.push(a(n)+"skewX("+e+r)}(i.skewX,l.skewX,o,u),function(t,e,n,r,i,l){if(t!==n||e!==r){var o=i.push(a(i)+"scale(",null,",",null,")");l.push({i:o-4,x:gn(t,n)},{i:o-2,x:gn(e,r)})}else 1===n&&1===r||i.push(a(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,l.scaleX,l.scaleY,o,u),i=l=null,function(t){for(var e,n=-1,r=u.length;++n=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?on:un;return function(){var l=i(this,t),o=l.on;o!==r&&(a=(r=o).copy()).on(e,n),l.on=a}}var Hn=Xt.prototype.constructor;function Xn(t){return function(){this.style.removeProperty(t)}}function jn(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function qn(t,e,n){var r,a;function i(){var i=e.apply(this,arguments);return i!==a&&(r=(a=i)&&jn(t,i,n)),r}return i._value=e,i}function Gn(t){return function(e){this.textContent=t.call(this,e)}}function Qn(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&Gn(r)),e}return r._value=t,r}var Zn=0;function Jn(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function Kn(){return++Zn}var tr=Xt.prototype;Jn.prototype={constructor:Jn,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=U(t));for(var r=this._groups,a=r.length,i=new Array(a),l=0;l2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete i[a]):l=!1;l&&delete t.__transition}}(this,t)}))},Xt.prototype.transition=function(t){var e,n;t instanceof Jn?(e=t._id,t=t._name):(e=Kn(),(n=er).time=Ge(),t=null==t?null:t+"");for(var r=this._groups,a=r.length,i=0;i1?r[0]+r.slice(2):r,+t.slice(n+1)]}function sr(t){return(t=ur(Math.abs(t)))?t[1]:NaN}lr.prototype=or.prototype={constructor:lr,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,a,i){this._+="C"+ +t+","+ +e+","+ +n+","+ +r+","+(this._x1=+a)+","+(this._y1=+i)},arcTo:function(t,e,n,r,a){t=+t,e=+e,n=+n,r=+r,a=+a;var i=this._x1,l=this._y1,o=n-t,u=r-e,s=i-t,f=l-e,c=s*s+f*f;if(a<0)throw new Error("negative radius: "+a);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(c>1e-6)if(Math.abs(f*o-u*s)>1e-6&&a){var h=n-i,d=r-l,g=o*o+u*u,p=h*h+d*d,y=Math.sqrt(g),m=Math.sqrt(c),v=a*Math.tan((rr-Math.acos((g+c-p)/(2*y*m)))/2),w=v/m,x=v/y;Math.abs(w-1)>1e-6&&(this._+="L"+(t+w*s)+","+(e+w*f)),this._+="A"+a+","+a+",0,0,"+ +(f*h>s*d)+","+(this._x1=t+x*o)+","+(this._y1=e+x*u)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,n,r,a,i){t=+t,e=+e,i=!!i;var l=(n=+n)*Math.cos(r),o=n*Math.sin(r),u=t+l,s=e+o,f=1^i,c=i?r-a:a-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+u+","+s:(Math.abs(this._x1-u)>1e-6||Math.abs(this._y1-s)>1e-6)&&(this._+="L"+u+","+s),n&&(c<0&&(c=c%ar+ar),c>ir?this._+="A"+n+","+n+",0,1,"+f+","+(t-l)+","+(e-o)+"A"+n+","+n+",0,1,"+f+","+(this._x1=u)+","+(this._y1=s):c>1e-6&&(this._+="A"+n+","+n+",0,"+ +(c>=rr)+","+f+","+(this._x1=t+n*Math.cos(a))+","+(this._y1=e+n*Math.sin(a))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var fr,cr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function hr(t){if(!(e=cr.exec(t)))throw new Error("invalid format: "+t);var e;return new dr({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function dr(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function gr(t,e){var n=ur(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}hr.prototype=dr.prototype,dr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var pr={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>gr(100*t,e),r:gr,s:function(t,e){var n=ur(t,e);if(!n)return t+"";var r=n[0],a=n[1],i=a-(fr=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,l=r.length;return i===l?r:i>l?r+new Array(i-l+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+ur(t,Math.max(0,e+i-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function yr(t){return t}var mr,vr,wr,xr=Array.prototype.map,Ar=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function br(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?yr:(e=xr.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var a=t.length,i=[],l=0,o=e[0],u=0;a>0&&o>0&&(u+o+1>r&&(o=Math.max(1,r-u)),i.push(t.substring(a-=o,a+o)),!((u+=o+1)>r));)o=e[l=(l+1)%e.length];return i.reverse().join(n)}),a=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",l=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?yr:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(xr.call(t.numerals,String)),u=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"−":t.minus+"",f=void 0===t.nan?"NaN":t.nan+"";function c(t){var e=(t=hr(t)).fill,n=t.align,c=t.sign,h=t.symbol,d=t.zero,g=t.width,p=t.comma,y=t.precision,m=t.trim,v=t.type;"n"===v?(p=!0,v="g"):pr[v]||(void 0===y&&(y=12),m=!0,v="g"),(d||"0"===e&&"="===n)&&(d=!0,e="0",n="=");var w="$"===h?a:"#"===h&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",x="$"===h?i:/[%p]/.test(v)?u:"",A=pr[v],b=/[defgprs%]/.test(v);function D(t){var a,i,u,h=w,D=x;if("c"===v)D=A(t)+D,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?f:A(Math.abs(t),y),m&&(t=function(t){t:for(var e,n=t.length,r=1,a=-1;r0&&(a=0)}return a>0?t.slice(0,a)+t.slice(e+1):t}(t)),k&&0==+t&&"+"!==c&&(k=!1),h=(k?"("===c?c:s:"-"===c||"("===c?"":c)+h,D=("s"===v?Ar[8+fr/3]:"")+D+(k&&"("===c?")":""),b)for(a=-1,i=t.length;++a(u=t.charCodeAt(a))||u>57){D=(46===u?l+t.slice(a+1):t.slice(a))+D,t=t.slice(0,a);break}}p&&!d&&(t=r(t,1/0));var M=h.length+t.length+D.length,T=M>1)+h+t+D+T.slice(M);break;default:t=T+h+t+D}return o(t)}return y=void 0===y?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),D.toString=function(){return t+""},D}return{format:c,formatPrefix:function(t,e){var n=c(((t=hr(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(sr(e)/3))),a=Math.pow(10,-r),i=Ar[8+r/3];return function(t){return n(a*t)+i}}}}mr=br({thousands:",",grouping:[3],currency:["$",""]}),vr=mr.format,wr=mr.formatPrefix;function Dr(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):(t=>()=>t)(isNaN(t)?e:t)}function kr(t,e){var n=Dr((t=Se(t)).l,(e=Se(e)).l),r=Dr(t.a,e.a),a=Dr(t.b,e.b),i=Dr(t.opacity,e.opacity);return function(e){return t.l=n(e),t.a=r(e),t.b=a(e),t.opacity=i(e),t+""}}function Mr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}const Tr=Symbol("implicit");function Cr(){var t=new Map,e=[],n=[],r=Tr;function a(a){var i=a+"",l=t.get(i);if(!l){if(r!==Tr)return r;t.set(i,l=e.push(a))}return n[(l-1)%n.length]}return a.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new Map;for(const r of n){const n=r+"";t.has(n)||t.set(n,e.push(r))}return a},a.range=function(t){return arguments.length?(n=Array.from(t),a):n.slice()},a.unknown=function(t){return arguments.length?(r=t,a):r},a.copy=function(){return Cr(e,n).unknown(r)},Mr.apply(a,arguments),a}var Fr=t=>()=>t;function _r(t){return 1==(t=+t)?Sr:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):Fr(isNaN(e)?n:e)}}function Sr(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):Fr(isNaN(t)?e:t)}var Er=function t(e){var n=_r(e);function r(t,e){var r=n((t=pe(t)).r,(e=pe(e)).r),a=n(t.g,e.g),i=n(t.b,e.b),l=Sr(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=a(e),t.b=i(e),t.opacity=l(e),t+""}}return r.gamma=t,r}(1);function Br(t,e){e||(e=[]);var n,r=t?Math.min(e.length,t.length):0,a=e.slice();return function(i){for(n=0;ni&&(a=e.slice(i,a),o[l]?o[l]+=a:o[++l]=a),(n=n[0])===(r=r[0])?o[l]?o[l]+=r:o[++l]=r:(o[++l]=null,u.push({i:l,x:Vr(n,r)})),i=Pr.lastIndex;return ie&&(n=t,t=e,e=n),s=function(n){return Math.max(t,Math.min(e,n))}),r=u>2?jr:Xr,a=i=null,c}function c(e){return null==e||isNaN(e=+e)?n:(a||(a=r(l.map(t),o,u)))(t(s(e)))}return c.invert=function(n){return s(e((i||(i=r(o,l.map(t),Vr)))(n)))},c.domain=function(t){return arguments.length?(l=Array.from(t,Rr),f()):l.slice()},c.range=function(t){return arguments.length?(o=Array.from(t),f()):o.slice()},c.rangeRound=function(t){return o=Array.from(t),u=Ur,f()},c.clamp=function(t){return arguments.length?(s=!!t||$r,f()):s!==$r},c.interpolate=function(t){return arguments.length?(u=t,f()):u},c.unknown=function(t){return arguments.length?(n=t,c):n},function(n,r){return t=n,e=r,f()}}function Qr(){return Gr()($r,$r)}function Zr(t,e,n,r){var a,i=f(t,e,n);switch((r=hr(null==r?",f":r)).type){case"s":var l=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(sr(e)/3)))-sr(Math.abs(t)))}(i,l))||(r.precision=a),wr(r,l);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,sr(e)-sr(t))+1}(i,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=a-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(a=function(t){return Math.max(0,-sr(Math.abs(t)))}(i))||(r.precision=a-2*("%"===r.type))}return vr(r)}function Jr(t){var e=t.domain;return t.ticks=function(t){var n=e();return function(t,e,n){var r,a,i,l,o=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((r=e0){let n=Math.round(t/l),r=Math.round(e/l);for(n*le&&--r,i=new Array(a=r-n+1);++oe&&--r,i=new Array(a=r-n+1);++o0;){if((a=s(u,f,n))===r)return i[l]=u,i[o]=f,e(i);if(a>0)u=Math.floor(u/a)*a,f=Math.ceil(f/a)*a;else{if(!(a<0))break;u=Math.ceil(u*a)/a,f=Math.floor(f*a)/a}r=a}return t},t}function Kr(){var t=Qr();return t.copy=function(){return qr(t,Kr())},Mr.apply(t,arguments),Jr(t)}var ta=new Date,ea=new Date;function na(t,e,n,r){function a(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return a.floor=function(e){return t(e=new Date(+e)),e},a.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},a.round=function(t){var e=a(t),n=a.ceil(t);return t-e0))return o;do{o.push(l=new Date(+n)),e(n,i),t(n)}while(l=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(a.count=function(e,r){return ta.setTime(+e),ea.setTime(+r),t(ta),t(ea),Math.floor(n(ta,ea))},a.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?a.filter(r?function(e){return r(e)%t==0}:function(e){return a.count(0,e)%t==0}):a:null}),a}var ra=na((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));ra.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?na((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):ra:null};var aa=na((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),ia=na((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getMinutes()})),la=na((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),oa=na((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5),(t=>t.getDate()-1));function ua(t){return na((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5}))}var sa=ua(0),fa=ua(1);ua(2),ua(3);var ca=ua(4);ua(5),ua(6);var ha=na((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),da=na((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));da.every=function(t){return isFinite(t=Math.floor(t))&&t>0?na((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null},na((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getUTCMinutes()})),na((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getUTCHours()}));var ga=na((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1}));function pa(t){return na((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/6048e5}))}var ya=pa(0),ma=pa(1);pa(2),pa(3);var va=pa(4);pa(5),pa(6),na((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}));var wa=na((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));wa.every=function(t){return isFinite(t=Math.floor(t))&&t>0?na((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};const[xa,Aa]=function(t,e,n,a,i,l){const o=[[aa,1,1e3],[aa,5,5e3],[aa,15,15e3],[aa,30,3e4],[l,1,6e4],[l,5,3e5],[l,15,9e5],[l,30,18e5],[i,1,36e5],[i,3,108e5],[i,6,216e5],[i,12,432e5],[a,1,864e5],[a,2,1728e5],[n,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,31536e6]];function u(e,n,a){const i=Math.abs(n-e)/a,l=r((([,,t])=>t)).right(o,i);if(l===o.length)return t.every(f(e/31536e6,n/31536e6,a));if(0===l)return ra.every(Math.max(f(e,n,a),1));const[u,s]=o[i/o[l-1][2][t.toLowerCase(),e])))}function Va(t,e,n){var r=Fa.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Ia(t,e,n){var r=Fa.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Ya(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Pa(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function za(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Oa(t,e,n){var r=Fa.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ua(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Ra(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Wa(t,e,n){var r=Fa.exec(e.slice(n,n+1));return r?(t.q=3*r[0]-3,n+r[0].length):-1}function $a(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ha(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Xa(t,e,n){var r=Fa.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function ja(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function qa(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Ga(t,e,n){var r=Fa.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Qa(t,e,n){var r=Fa.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Za(t,e,n){var r=Fa.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Ja(t,e,n){var r=_a.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Ka(t,e,n){var r=Fa.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function ti(t,e,n){var r=Fa.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function ei(t,e){return Ea(t.getDate(),e,2)}function ni(t,e){return Ea(t.getHours(),e,2)}function ri(t,e){return Ea(t.getHours()%12||12,e,2)}function ai(t,e){return Ea(1+oa.count(da(t),t),e,3)}function ii(t,e){return Ea(t.getMilliseconds(),e,3)}function li(t,e){return ii(t,e)+"000"}function oi(t,e){return Ea(t.getMonth()+1,e,2)}function ui(t,e){return Ea(t.getMinutes(),e,2)}function si(t,e){return Ea(t.getSeconds(),e,2)}function fi(t){var e=t.getDay();return 0===e?7:e}function ci(t,e){return Ea(sa.count(da(t)-1,t),e,2)}function hi(t){var e=t.getDay();return e>=4||0===e?ca(t):ca.ceil(t)}function di(t,e){return t=hi(t),Ea(ca.count(da(t),t)+(4===da(t).getDay()),e,2)}function gi(t){return t.getDay()}function pi(t,e){return Ea(fa.count(da(t)-1,t),e,2)}function yi(t,e){return Ea(t.getFullYear()%100,e,2)}function mi(t,e){return Ea((t=hi(t)).getFullYear()%100,e,2)}function vi(t,e){return Ea(t.getFullYear()%1e4,e,4)}function wi(t,e){var n=t.getDay();return Ea((t=n>=4||0===n?ca(t):ca.ceil(t)).getFullYear()%1e4,e,4)}function xi(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Ea(e/60|0,"0",2)+Ea(e%60,"0",2)}function Ai(t,e){return Ea(t.getUTCDate(),e,2)}function bi(t,e){return Ea(t.getUTCHours(),e,2)}function Di(t,e){return Ea(t.getUTCHours()%12||12,e,2)}function ki(t,e){return Ea(1+ga.count(wa(t),t),e,3)}function Mi(t,e){return Ea(t.getUTCMilliseconds(),e,3)}function Ti(t,e){return Mi(t,e)+"000"}function Ci(t,e){return Ea(t.getUTCMonth()+1,e,2)}function Fi(t,e){return Ea(t.getUTCMinutes(),e,2)}function _i(t,e){return Ea(t.getUTCSeconds(),e,2)}function Si(t){var e=t.getUTCDay();return 0===e?7:e}function Ei(t,e){return Ea(ya.count(wa(t)-1,t),e,2)}function Bi(t){var e=t.getUTCDay();return e>=4||0===e?va(t):va.ceil(t)}function Ni(t,e){return t=Bi(t),Ea(va.count(wa(t),t)+(4===wa(t).getUTCDay()),e,2)}function Li(t){return t.getUTCDay()}function Vi(t,e){return Ea(ma.count(wa(t)-1,t),e,2)}function Ii(t,e){return Ea(t.getUTCFullYear()%100,e,2)}function Yi(t,e){return Ea((t=Bi(t)).getUTCFullYear()%100,e,2)}function Pi(t,e){return Ea(t.getUTCFullYear()%1e4,e,4)}function zi(t,e){var n=t.getUTCDay();return Ea((t=n>=4||0===n?va(t):va.ceil(t)).getUTCFullYear()%1e4,e,4)}function Oi(){return"+0000"}function Ui(){return"%"}function Ri(t){return+t}function Wi(t){return Math.floor(+t/1e3)}function $i(t){return new Date(t)}function Hi(t){return t instanceof Date?+t:+new Date(+t)}function Xi(t,e,n,r,a,i,l,o,u,s){var f=Qr(),c=f.invert,h=f.domain,d=s(".%L"),g=s(":%S"),p=s("%I:%M"),y=s("%I %p"),m=s("%a %d"),v=s("%b %d"),w=s("%B"),x=s("%Y");function A(t){return(u(t)=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:Ri,s:Wi,S:si,u:fi,U:ci,V:di,w:gi,W:pi,x:null,X:null,y:yi,Y:vi,Z:xi,"%":Ui},x={a:function(t){return l[t.getUTCDay()]},A:function(t){return i[t.getUTCDay()]},b:function(t){return u[t.getUTCMonth()]},B:function(t){return o[t.getUTCMonth()]},c:null,d:Ai,e:Ai,f:Ti,g:Yi,G:zi,H:bi,I:Di,j:ki,L:Mi,m:Ci,M:Fi,p:function(t){return a[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:Ri,s:Wi,S:_i,u:Si,U:Ei,V:Ni,w:Li,W:Vi,x:null,X:null,y:Ii,Y:Pi,Z:Oi,"%":Ui},A={a:function(t,e,n){var r=d.exec(e.slice(n));return r?(t.w=g.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(t,e,n){var r=c.exec(e.slice(n));return r?(t.w=h.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(t,e,n){var r=m.exec(e.slice(n));return r?(t.m=v.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(t,e,n){var r=p.exec(e.slice(n));return r?(t.m=y.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(t,n,r){return k(t,e,n,r)},d:Ha,e:Ha,f:Za,g:Ua,G:Oa,H:ja,I:ja,j:Xa,L:Qa,m:$a,M:qa,p:function(t,e,n){var r=s.exec(e.slice(n));return r?(t.p=f.get(r[0].toLowerCase()),n+r[0].length):-1},q:Wa,Q:Ka,s:ti,S:Ga,u:Ia,U:Ya,V:Pa,w:Va,W:za,x:function(t,e,r){return k(t,n,e,r)},X:function(t,e,n){return k(t,r,e,n)},y:Ua,Y:Oa,Z:Ra,"%":Ja};function b(t,e){return function(n){var r,a,i,l=[],o=-1,u=0,s=t.length;for(n instanceof Date||(n=new Date(+n));++o53)return null;"w"in i||(i.w=1),"Z"in i?(a=(r=Da(ka(i.y,0,1))).getUTCDay(),r=a>4||0===a?ma.ceil(r):ma(r),r=ga.offset(r,7*(i.V-1)),i.y=r.getUTCFullYear(),i.m=r.getUTCMonth(),i.d=r.getUTCDate()+(i.w+6)%7):(a=(r=ba(ka(i.y,0,1))).getDay(),r=a>4||0===a?fa.ceil(r):fa(r),r=oa.offset(r,7*(i.V-1)),i.y=r.getFullYear(),i.m=r.getMonth(),i.d=r.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),a="Z"in i?Da(ka(i.y,0,1)).getUTCDay():ba(ka(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(a+5)%7:i.w+7*i.U-(a+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Da(i)):ba(i)}}function k(t,e,n,r){for(var a,i,l=0,o=e.length,u=n.length;l=u)return-1;if(37===(a=e.charCodeAt(l++))){if(a=e.charAt(l++),!(i=A[a in Ca?e.charAt(l++):a])||(r=i(t,n,r))<0)return-1}else if(a!=n.charCodeAt(r++))return-1}return r}return w.x=b(n,w),w.X=b(r,w),w.c=b(e,w),x.x=b(n,x),x.X=b(r,x),x.c=b(e,x),{format:function(t){var e=b(t+="",w);return e.toString=function(){return t},e},parse:function(t){var e=D(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=b(t+="",x);return e.toString=function(){return t},e},utcParse:function(t){var e=D(t+="",!0);return e.toString=function(){return t},e}}}(t),Ta=Ma.format}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",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"]});var ji,qi=(ji=function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[r],i=t[r+1],l=r>0?t[r-1]:2*a-i,o=r{qi(t[t.length-1])})(Gi);var Zi,Ji,Ki,tl=Math.abs,el=Math.atan2,nl=Math.cos,rl=Math.max,al=Math.min,il=Math.sin,ll=Math.sqrt,ol=Math.PI,ul=ol/2,sl=2*ol;function fl(t){return t>1?0:t<-1?ol:Math.acos(t)}function cl(t){return t>=1?ul:t<=-1?-ul:Math.asin(t)}function hl(t){return t.innerRadius}function dl(t){return t.outerRadius}function gl(t){return t.startAngle}function pl(t){return t.endAngle}function yl(t){return t&&t.padAngle}function ml(t,e,n,r,a,i,l,o){var u=n-t,s=r-e,f=l-a,c=o-i,h=c*u-f*s;if(!(h*h<1e-12))return[t+(h=(f*(e-i)-c*(t-a))/h)*u,e+h*s]}function vl(t,e,n,r,a,i,l){var o=t-n,u=e-r,s=(l?i:-i)/ll(o*o+u*u),f=s*u,c=-s*o,h=t+f,d=e+c,g=n+f,p=r+c,y=(h+g)/2,m=(d+p)/2,v=g-h,w=p-d,x=v*v+w*w,A=a-i,b=h*p-g*d,D=(w<0?-1:1)*ll(rl(0,A*A*x-b*b)),k=(b*w-v*D)/x,M=(-b*v-w*D)/x,T=(b*w+v*D)/x,C=(-b*v+w*D)/x,F=k-y,_=M-m,S=T-y,E=C-m;return F*F+_*_>S*S+E*E&&(k=T,M=C),{cx:k,cy:M,x01:-f,y01:-c,x11:k*(a/A-1),y11:M*(a/A-1)}}function wl(){var t=hl,e=dl,n=Qi(0),r=null,a=gl,i=pl,l=yl,o=null;function u(){var u,s,f=+t.apply(this,arguments),c=+e.apply(this,arguments),h=a.apply(this,arguments)-ul,d=i.apply(this,arguments)-ul,g=tl(d-h),p=d>h;if(o||(o=u=or()),c1e-12)if(g>sl-1e-12)o.moveTo(c*nl(h),c*il(h)),o.arc(0,0,c,h,d,!p),f>1e-12&&(o.moveTo(f*nl(d),f*il(d)),o.arc(0,0,f,d,h,p));else{var y,m,v=h,w=d,x=h,A=d,b=g,D=g,k=l.apply(this,arguments)/2,M=k>1e-12&&(r?+r.apply(this,arguments):ll(f*f+c*c)),T=al(tl(c-f)/2,+n.apply(this,arguments)),C=T,F=T;if(M>1e-12){var _=cl(M/f*il(k)),S=cl(M/c*il(k));(b-=2*_)>1e-12?(x+=_*=p?1:-1,A-=_):(b=0,x=A=(h+d)/2),(D-=2*S)>1e-12?(v+=S*=p?1:-1,w-=S):(D=0,v=w=(h+d)/2)}var E=c*nl(v),B=c*il(v),N=f*nl(A),L=f*il(A);if(T>1e-12){var V,I=c*nl(w),Y=c*il(w),P=f*nl(x),z=f*il(x);if(g1e-12?F>1e-12?(y=vl(P,z,E,B,c,F,p),m=vl(I,Y,N,L,c,F,p),o.moveTo(y.cx+y.x01,y.cy+y.y01),F1e-12&&b>1e-12?C>1e-12?(y=vl(N,L,I,Y,f,-C,p),m=vl(E,B,P,z,f,-C,p),o.lineTo(y.cx+y.x01,y.cy+y.y01),Ct?1:e>=t?0:NaN}function Tl(t){return t}Al.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},function(t){t[t.Tag=0]="Tag",t[t.Frontmatter=1]="Frontmatter",t[t.Wiki=2]="Wiki",t[t.WikiLink=3]="WikiLink",t[t.WikiDisplay=4]="WikiDisplay",t[t.Text=5]="Text",t[t.dvField=6]="dvField",t[t.Table=7]="Table",t[t.FileMeta=8]="FileMeta",t[t.Task=9]="Task",t[t.TaskDone=10]="TaskDone",t[t.TaskNotDone=11]="TaskNotDone"}(Zi||(Zi={})),function(t){t[t.Line=0]="Line",t[t.Bar=1]="Bar",t[t.Pie=2]="Pie",t[t.Radar=3]="Radar",t[t.Summary=4]="Summary",t[t.Table=5]="Table",t[t.Month=6]="Month",t[t.Heatmap=7]="Heatmap",t[t.Bullet=8]="Bullet",t[t.Unknown=9]="Unknown"}(Ji||(Ji={})),function(t){t[t.Number=0]="Number",t[t.Int=1]="Int",t[t.Date=2]="Date",t[t.Time=3]="Time",t[t.DateTime=4]="DateTime",t[t.String=5]="String"}(Ki||(Ki={}));class Cl{constructor(t,e){this.date=t,this.value=e}}class Fl{constructor(t,e,n){if(this.type=e,this.target=n,this.separator="",this.id=t,this.accessor=-1,this.accessor1=-1,this.accessor2=-1,this.valueType=Ki.Number,this.usedAsXDataset=!1,this.numTargets=0,e===Zi.Table){let t,e=new RegExp("\\[(?[0-9]+)\\]\\[(?[0-9]+)\\](\\[(?[0-9]+)\\])?","gm");for(;t=e.exec(n);)if(void 0!==t.groups.accessor){let r=parseFloat(t.groups.accessor);if(Number.isNumber(r)&&void 0!==t.groups.accessor1){let a=parseFloat(t.groups.accessor1);if(Number.isNumber(a)){let i;void 0!==t.groups.accessor2&&(i=parseFloat(t.groups.accessor2)),this.accessor=r,this.accessor1=a,Number.isNumber(i)&&(this.accessor2=i),this.parentTarget=n.replace(e,"")}break}}}else{let t,e=new RegExp("\\[(?[0-9]+)\\]","gm");for(;t=e.exec(n);)if(void 0!==t.groups.accessor){let r=parseFloat(t.groups.accessor);Number.isNumber(r)&&(this.accessor=r,this.parentTarget=n.replace(e,""));break}}}equalTo(t){return this.type===t.type&&this.target===t.target}getType(){return this.type}getTarget(){return this.target}getParentTarget(){return this.parentTarget}getId(){return this.id}getAccessor(t=0){switch(t){case 0:return this.accessor;case 1:return this.accessor1;case 2:return this.accessor2}return null}setSeparator(t){this.separator=t}getSeparator(t=!1){return""===this.separator?t?",":"/":this.separator}addNumTargets(t=1){this.numTargets=this.numTargets+t}getNumTargets(){return this.numTargets}}class _l{constructor(t,e){this.currentIndex=0,this.name="untitled",this.query=e,this.values=[],this.parent=t,this.id=-1,this.yMin=null,this.yMax=null,this.startDate=null,this.endDate=null,this.numTargets=0,this.lineInfo=null,this.barInfo=null,this.isTmpDataset=!1,this.valueType=null==e?void 0:e.valueType;for(let e=0;e=0&&n=0&&nthis.yMax)&&(this.yMax=e),(null===this.startDate||tthis.endDate)&&(this.endDate=t.clone()))}recalculateMinMax(){this.yMin=Math.min(...this.values),this.yMax=Math.max(...this.values)}getYMin(){return this.yMin}getYMax(){return this.yMax}getStartDate(){return this.startDate}getEndDate(){return this.endDate}shift(t,e){let n=!1;for(let r=0;r=e)&&(this.values[r]=this.values[r]+t,n=!0);n&&(this.yMin=this.yMin+t,this.yMax=this.yMax+t)}setPenalty(t){for(let e=0;ethis.yMax&&(this.yMax=t))}getQuery(){return this.query}accumulateValues(){let t=0;for(let e=0;ethis.yMax&&(this.yMax=t)}getValues(){return this.values}getLength(){return this.values.length}getLengthNotNull(){let t=0;for(let e=0;e[\d\.\/-]+)\s*,\s*(?[\d\.\/-]+)\s*\)/).groups;e&&(this.translateX=parseFloat(e.x),this.translateY=parseFloat(e.y))}}}class $l{constructor(t,e){this.filePath=t,this.tableIndex=e,this.xDataset=null,this.yDatasets=[]}}class Hl{constructor(){this.fileTotal=0,this.fileAvailable=0,this.fileOutOfDateRange=0,this.fileNotInFormat=0,this.errorMessage="",this.minDate=window.moment(""),this.maxDate=window.moment(""),this.gotAnyValidXValue=!1,this.gotAnyValidYValue=!1}}const Xl=function(){const t=["HH","H","hh","h"],e=["mm","m"],n=["ss","s",""];let r=[];for(let a of t)for(let t of e)for(let e of n){let n=`${a}:${t}`;""!==e&&(n+=`:${e}`),a.contains("h")&&(n+=" a"),r.push(n)}return r}();function jl(t,e,n){if(!e&&!n)return t;let r=t;if(r.startsWith("^")&&(r=r.slice(1)),e){let t=new RegExp("^("+e+")","gm");t.test(r)&&(r=r.replace(t,""))}if(n){let t=new RegExp("("+n+")$","gm");t.test(r)&&(r=r.replace(t,""))}return r}function ql(t,e){let n=e;t.length>4&&t.startsWith("[[")&&t.endsWith("]]")&&(t=t.substring(2,t.length-2)),"iso-8601"===e.toLowerCase()&&(n=window.moment.ISO_8601);let r=window.moment(t,n,!0);return r=r.startOf("day"),r}function Gl(t,e,n=!0){if(!t||!e||0===e.length)return[null,t];let r=null;const a="^(?[0-9]+)("+e.join("|")+")$",i=new RegExp(a,"gm");let l=i.exec(t);return l&&void 0!==l.groups&&void 0!==l.groups.value&&(r=parseFloat(l.groups.value),Number.isNumber(r)&&!Number.isNaN(r))?(n&&(t=t.replace(i,"")),[r,t]):[null,t]}function Ql(t){if(!t)return null;let e=window.moment.duration(0),n=!1,r=!1;t.startsWith("+")&&(r=!1,t=t.substring(1)),t.startsWith("-")&&(r=!0,t=t.substring(1));let a=null;[a,t]=Gl(t,["year","years","Y","y"]),null!==a&&(r&&(a*=-1),e.add(a,"years"),n=!0);let i=null;[i,t]=Gl(t,["month","months","M"]),null!==i&&(r&&(i*=-1),e.add(i,"months"),n=!0);let l=null;[l,t]=Gl(t,["week","weeks","W","w"]),null!==l&&(r&&(l*=-1),e.add(l,"weeks"),n=!0);let o=null;[o,t]=Gl(t,["day","days","D","d"]),null!==o&&(r&&(o*=-1),e.add(o,"days"),n=!0);let u=null;[u,t]=Gl(t,["hour","hours","H","h"]),null!==u&&(r&&(u*=-1),e.add(u,"hours"),n=!0);let s=null;[s,t]=Gl(t,["minute","minutes","m"]),null!==s&&(r&&(s*=-1),e.add(s,"minutes"),n=!0);let f=null;return[f,t]=Gl(t,["second","seconds","S","s"]),null!==f&&(r&&(f*=-1),e.add(f,"seconds"),n=!0),n?e:null}function Zl(t,e){let n=null,r=Ql(t);return r&&window.moment.isDuration(r)&&(n=to(e),n=n.add(r),n&&n.isValid()),n}function Jl(t,e){return null==t?null:"iso-8601"===e.toLowerCase()?t.format():t.format(e)}function Kl(t,e){return ql(Jl(window.moment(t),e),e)}function to(t){return ql(Jl(window.moment(),t),t)}function eo(t,e){for(var n=(e=e.replace(/^\./,"")).split("."),r=0,a=n.length;rt!==e)),a=n.reverse().findIndex((t=>t!==e));return-1===r&&-1===a?t:t.substring(r,t.length-a)}function ro(t){if(null===t)return null;let e=new RegExp(']*?alt\\s*=\\s*[""\']?(?[^\'"" >]+?)[ \'""][^>]*?>',"g");return t.replace(e,((...t)=>{let e=t[t.length-1];return e&&e.emoji?e.emoji.trim():""}))}function ao(t,e=null){let n=null,r=Ki.Number;if("string"==typeof t)if(t.includes(":")){let e=!1;t.startsWith("-")&&(e=!0,t=t.substring(1));let a=window.moment(t,Xl,!0);a.isValid()&&(n=a.diff(window.moment("00:00","HH:mm",!0),"seconds"),e&&(n*=-1),r=Ki.Time)}else if(e){const r=Object.keys(e);for(let n of r)if("string"==typeof n){let r=new RegExp(n,"gm");if(r.test(t)&&Number.isNumber(e[n])){let a=e[n].toString();t=t.replace(r,a);break}}n=parseFloat(t),Number.isNaN(n)&&(n=null)}else n=parseFloat(t),Number.isNaN(n)&&(n=null);else"number"==typeof t&&(n=t);return{type:r,value:n}}function io(t,e="",n=""){var r=jt("body").append("svg");let a=r.append("text").text(t).attr("x",-99999).attr("y",-99999);e&&a.attr("class",e),n&&a.attr("transform","rotate("+n+")");var i=r.node().getBBox();return r.remove(),{width:i.width,height:i.height}}function lo(t,e,n){let r=(0|parseFloat(t.attr("width")))+e,a=(0|parseFloat(t.attr("height")))+n;t.attr("width",r),t.attr("height",a)}function oo(t,e,n){let r=new Wl(t.attr("transform"));t.attr("transform","translate("+(r.translateX+e)+","+(r.translateY+n)+")")}function uo(t){return t=(t=(t=t.replace(/(^\\s\*)|(\\s\*$)/gi,"")).replace(/\[ \]{2,}/gi," ")).replace(/\\n /,"\\n")}var so=i((function(t,e){!function(n){var r="Compound",a="MemberExpression",i="Literal",l=function(t,e){var n=new Error(t+" at character "+e);throw n.index=e,n.description=t,n},o=!0,u={"-":o,"!":o,"~":o,"+":o},s={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},f={$:o,_:o},c=function(t){var e,n=0;for(var r in t)(e=r.length)>n&&t.hasOwnProperty(r)&&(n=e);return n},h=c(u),d=c(s),g={true:!0,false:!1,null:null},p=function(t){return s[t]||0},y=function(t,e,n){return{type:"||"===t||"&&"===t?"LogicalExpression":"BinaryExpression",operator:t,left:e,right:n}},m=function(t){return t>=48&&t<=57},v=function(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!s[String.fromCharCode(t)]||f.hasOwnProperty(String.fromCharCode(t))},w=function(t){return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t>=128&&!s[String.fromCharCode(t)]||f.hasOwnProperty(String.fromCharCode(t))},x=function(t){for(var e,n,o=0,f=t.charAt,c=t.charCodeAt,x=function(e){return f.call(t,e)},A=function(e){return c.call(t,e)},b=t.length,D=function(){for(var t=A(o);32===t||9===t||10===t||13===t;)t=A(++o)},k=function(){var t,e,n=T();return D(),63!==A(o)?n:(o++,(t=k())||l("Expected expression",o),D(),58===A(o)?(o++,(e=k())||l("Expected expression",o),{type:"ConditionalExpression",test:n,consequent:t,alternate:e}):void l("Expected :",o))},M=function(){D();for(var e=t.substr(o,d),n=e.length;n>0;){if(s.hasOwnProperty(e)&&(!v(A(o))||o+e.length2&&n<=r[r.length-2].prec;)u=r.pop(),e=r.pop().value,i=r.pop(),t=y(e,i,u),r.push(t);(t=C())||l("Expected expression after "+f,o),r.push(a,t)}for(t=r[s=r.length-1];s>1;)t=y(r[s-1].value,r[s-2],t),s-=2;return t},C=function(){var e,n,r,i;if(D(),e=A(o),m(e)||46===e)return F();if(39===e||34===e)i=_();else if(91===e)i=N();else{for(r=(n=t.substr(o,h)).length;r>0;){if(u.hasOwnProperty(n)&&(!v(A(o))||o+n.length=a.length&&l("Unexpected token "+String.fromCharCode(t),o);break}if(44===e){if(o++,++u!==a.length)if(41===t)l("Unexpected token ,",o);else if(93===t)for(var s=a.length;s=0),o.type){case"b":a=parseInt(a,10).toString(2);break;case"c":a=String.fromCharCode(parseInt(a,10));break;case"d":case"i":a=parseInt(a,10);break;case"j":a=JSON.stringify(a,null,o.width?parseInt(o.width):0);break;case"e":a=o.precision?parseFloat(a).toExponential(o.precision):parseFloat(a).toExponential();break;case"f":a=o.precision?parseFloat(a).toFixed(o.precision):parseFloat(a);break;case"g":a=o.precision?String(Number(a.toPrecision(o.precision))):parseFloat(a);break;case"o":a=(parseInt(a,10)>>>0).toString(8);break;case"s":a=String(a),a=o.precision?a.substring(0,o.precision):a;break;case"t":a=String(!!a),a=o.precision?a.substring(0,o.precision):a;break;case"T":a=Object.prototype.toString.call(a).slice(8,-1).toLowerCase(),a=o.precision?a.substring(0,o.precision):a;break;case"u":a=parseInt(a,10)>>>0;break;case"v":a=a.valueOf(),a=o.precision?a.substring(0,o.precision):a;break;case"x":a=(parseInt(a,10)>>>0).toString(16);break;case"X":a=(parseInt(a,10)>>>0).toString(16).toUpperCase()}t.json.test(o.type)?p+=a:(!t.number.test(o.type)||c&&!o.sign?h="":(h=c?"+":"-",a=a.toString().replace(t.sign,"")),s=o.pad_char?"0"===o.pad_char?"0":o.pad_char.charAt(1):" ",f=o.width-(h+a).length,u=o.width&&f>0?s.repeat(f):"",p+=o.align?h+a+u:"0"===s?h+u+a:u+h+a)}return p}var i=Object.create(null);function l(e){if(i[e])return i[e];for(var n,r=e,a=[],l=0;r;){if(null!==(n=t.text.exec(r)))a.push(n[0]);else if(null!==(n=t.modulo.exec(r)))a.push("%");else{if(null===(n=t.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(n[2]){l|=1;var o=[],u=n[2],s=[];if(null===(s=t.key.exec(u)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(o.push(s[1]);""!==(u=u.substring(s[0].length));)if(null!==(s=t.key_access.exec(u)))o.push(s[1]);else{if(null===(s=t.index_access.exec(u)))throw new SyntaxError("[sprintf] failed to parse named argument key");o.push(s[1])}n[2]=o}else l|=2;if(3===l)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");a.push({placeholder:n[0],param_no:n[1],keys:n[2],sign:n[3],pad_char:n[4],align:n[5],width:n[6],precision:n[7],type:n[8]})}r=r.substring(n[0].length)}return i[e]=a}e.sprintf=n,e.vsprintf=r,"undefined"!=typeof window&&(window.sprintf=n,window.vsprintf=r)}()}));function co(t){if("number"==typeof t){if(0===t)return!1}else if(t instanceof _l&&t.getValues().some((function(t){return 0===t})))return!1;return!0}const ho={min:function(t,e){return h(t.getValues())},minDate:function(t,e){let n=h(t.getValues());if(Number.isNumber(n)){let e=Array.from(t);for(let t of e.reverse())if(null!==t.value&&t.value===n)return t.date}return"Error: min not found"},max:function(t,e){return c(t.getValues())},maxDate:function(t,e){let n=c(t.getValues());if(Number.isNumber(n)){let e=Array.from(t);for(let t of e.reverse())if(null!==t.value&&t.value===n)return t.date}return"Error: max not found"},startDate:function(t,e){if(t){let e=t.getStartDate();if(e&&e.isValid())return e}return e.startDate},endDate:function(t,e){if(t){let e=t.getEndDate();if(e&&e.isValid())return e}return e.endDate},sum:function(t,e){return m(t.getValues())},count:function(t,e){return"Error: deprecated function 'count'"},numTargets:function(t,e){return t.getNumTargets()},days:function(t,e){return"Error: deprecated function 'days'"},numDays:function(t,e){return t.getLength()},numDaysHavingData:function(t,e){return t.getLengthNotNull()},maxStreak:function(t,e){let n=0,r=0;for(let e of t)null!==e.value?n++:n=0,n>=r&&(r=n);return r},maxStreakStart:function(t,e){let n=0,r=0,a=null,i=null;if(t)for(let e of t)null!==e.value?(0===n&&(a=e.date),n++):n=0,n>=r&&(r=n,i=a);return i},maxStreakEnd:function(t,e){let n=0,r=0,a=null,i=null;if(t){let e=Array.from(t);for(let t=0;t=r&&(r=n,i=a)}}return i},maxBreaks:function(t,e){let n=0,r=0;for(let e of t)null===e.value?n++:n=0,n>r&&(r=n);return r},maxBreaksStart:function(t,e){let n=0,r=0,a=null,i=null;if(t)for(let e of t)null===e.value?(0===n&&(a=e.date),n++):n=0,n>=r&&(r=n,i=a);return i},maxBreaksEnd:function(t,e){let n=0,r=0,a=null,i=null;if(t){let e=Array.from(t);for(let t=0;t=r&&(r=n,i=a)}}return i},lastStreak:function(t,e){return"Error: deprecated function 'lastStreak'"},currentStreak:function(t,e){let n=0;if(t){let e=Array.from(t);for(let t=e.length-1;t>=0;t--){if(null===e[t].value)break;n++}}return n},currentStreakStart:function(t,e){let n=null;if(t){let e=Array.from(t);for(let t=e.length-1;t>=0;t--){let r=e[t];if(t=0;t--){let a=e[t];if(null===a.value)break;0===n&&(r=a.date),n++}}return null===r?"Error: absense":r},currentBreaks:function(t,e){let n=0;if(t){let e=Array.from(t);for(let t=e.length-1;t>=0;t--){if(null!==e[t].value)break;n++}}return n},currentBreaksStart:function(t,e){let n=null;if(t){let e=Array.from(t);for(let t=e.length-1;t>=0;t--){let r=e[t];if(t=0;t--){let a=e[t];if(null!==a.value)break;0===n&&(r=a.date),n++}}return null===r?"Error: absense":r},average:function(t,e){let n=t.getLengthNotNull();return co(n)?m(t.getValues())/n:"Error: divide by zero in expression"},median:function(t,e){return p(t.getValues(),.5,n);var n},variance:function(t,e){return function(t,e){let n,r=0,a=0,i=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(n=e-a,a+=n/++r,i+=n*(e-a));else{let l=-1;for(let o of t)null!=(o=e(o,++l,t))&&(o=+o)>=o&&(n=o-a,a+=n/++r,i+=n*(o-a))}if(r>1)return i/(r-1)}(t.getValues())}},go={"-":function(t){if("number"==typeof t)return-1*t;if(t instanceof _l){let e=t.cloneToTmpDataset();return e.getValues().forEach((function(t,e,n){null!==n[e]&&(n[e]=-1*t)})),e.recalculateMinMax(),e}return"Error: unknown operation for '-'"},"+":function(t){if("number"==typeof t)return t;if(t instanceof _l){return t.cloneToTmpDataset()}return"Error: unknown operation for '+'"}},po={"+":function(t,e){if("number"==typeof t&&"number"==typeof e)return t+e;if("number"==typeof t&&e instanceof _l){let n=e.cloneToTmpDataset();return n.getValues().forEach((function(e,n,r){null!==r[n]?r[n]=t+e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&"number"==typeof e){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t+e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&e instanceof _l){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t+e.getValues()[n]:r[n]=null})),n.recalculateMinMax(),n}return"Error: unknown operation for '+'"},"-":function(t,e){if("number"==typeof t&&"number"==typeof e)return t-e;if("number"==typeof t&&e instanceof _l){let n=e.cloneToTmpDataset();return n.getValues().forEach((function(e,n,r){null!==r[n]?r[n]=t-e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&"number"==typeof e){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t-e:r[n]=null})),n}if(t instanceof _l&&e instanceof _l){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t-e.getValues()[n]:r[n]=null})),n.recalculateMinMax(),n}return"Error: unknown operation for '-'"},"*":function(t,e){if("number"==typeof t&&"number"==typeof e)return t*e;if("number"==typeof t&&e instanceof _l){let n=e.cloneToTmpDataset();return n.getValues().forEach((function(e,n,r){null!==r[n]?r[n]=t*e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&"number"==typeof e){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t*e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&e instanceof _l){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t*e.getValues()[n]:r[n]=null})),n.recalculateMinMax(),n}return"Error: unknown operation for '*'"},"/":function(t,e){if(!co(e))return"Error: divide by zero in expression";if("number"==typeof t&&"number"==typeof e)return t/e;if("number"==typeof t&&e instanceof _l){let n=e.cloneToTmpDataset();return n.getValues().forEach((function(e,n,r){null!==r[n]?r[n]=t/e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&"number"==typeof e){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t/e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&e instanceof _l){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t/e.getValues()[n]:r[n]=null})),n.recalculateMinMax(),n}return"Error: unknown operation for '/'"},"%":function(t,e){if(!co(e))return"Error: divide by zero in expression";if("number"==typeof t&&"number"==typeof e)return t%e;if("number"==typeof t&&e instanceof _l){let n=e.cloneToTmpDataset();return n.getValues().forEach((function(e,n,r){null!==r[n]?r[n]=t%e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&"number"==typeof e){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t%e:r[n]=null})),n.recalculateMinMax(),n}if(t instanceof _l&&e instanceof _l){let n=t.cloneToTmpDataset();return n.getValues().forEach((function(t,n,r){null!==r[n]?r[n]=t%e.getValues()[n]:r[n]=null})),n.recalculateMinMax(),n}return"Error: unknown operation for '%'"}},yo={normalize:function(t,e,n){let r=t.getYMin(),a=t.getYMax();if(null!==r&&null!==a&&a>r){let e=t.cloneToTmpDataset();return e.getValues().forEach((function(t,e,n){n[e]=(t-r)/(a-r)})),e.recalculateMinMax(),e}return"Error: invalid data range for function 'normalize'"},setMissingValues:function(t,e,n){if(e&&e.length>0){let n=e[0],r=t.cloneToTmpDataset();return Number.isNumber(n)&&!Number.isNaN(n)?(r.getValues().forEach((function(t,e,r){null===t&&(r[e]=n)})),r.recalculateMinMax(),r):"Error: invalid arguments for function 'setMissingValues'"}return"Error: invalid arguments for function 'setMissingValues"}};function mo(t,e){switch(t.type){case"Literal":return t.value;case"Identifier":let n=t.name;return n in ho||n in yo?`Error: deprecated template variable '${n}', use '${n}()' instead`:`Error: unknown function name '${n}'`;case"UnaryExpression":let r=t,a=mo(r.argument,e);return"string"==typeof a?a:go[r.operator](a);case"BinaryExpression":let i=t,l=mo(i.left,e),o=mo(i.right,e),u=function(t,e){return"string"==typeof t?t:"string"==typeof e?e:"number"==typeof t||window.moment.isMoment(t)||t instanceof _l?"number"==typeof e||window.moment.isMoment(e)||e instanceof _l?"":"Error: invalide operant type":"Error: invalid operant type"}(l,o);return"string"==typeof u&&u.startsWith("Error:")?u:po[i.operator](l,o);case"CallExpression":let s=t,f=s.callee.name,c=function(t,e){return t.map((function(t){return mo(t,e)}))}(s.arguments,e);if("string"==typeof c)return c;if("dataset"===f){if(1===c.length){let t=c[0];if("string"==typeof t)return t;if("number"!=typeof t)return"Error: function 'dataset' only accepts id in number";let n=function(t,e){return e.datasets.getDatasetById(t)}(t,e);return n||`Error: no dataset found for id '${t}'`}}else{if(f in ho){if(0===c.length){let t=null;for(let n of e.datasets)t||n.getQuery().usedAsXDataset||(t=n);return t?ho[f](t,e):`No available dataset found for function ${f}`}if(1===c.length){let t=c[0];return"string"==typeof t?t:t instanceof _l?ho[f](t,e):`Error: function '${f}' only accepts Dataset`}return`Error: Too many arguments for function ${f}`}if(f in yo){if(1===c.length){if("string"==typeof c[0])return c[0];if(c[0]instanceof _l){let t=c[0];return yo[f](t,null,e)}return`Error: function ${f} only accept Dataset`}if(c.length>1){if("string"==typeof c[0])return c[0];if(c[0]instanceof _l){let t=c[0];return yo[f](t,c.filter((function(t,e,n){return e>0})),e)}return`Error: function ${f} only accept Dataset`}return`Error: Too many arguments for function ${f}`}}return`Error: unknown function name '${f}'`}return"Error: unknown expression"}function vo(t,e){let n,r=[],a=new RegExp("{{(?[\\w+\\-*\\/0-9\\s()\\[\\]%.,]+)(::(?[\\w+\\-*\\/0-9\\s()\\[\\]%.:]+))?}}","gm");for(;n=a.exec(t);){let t=n[0];if(!r.some((e=>e.source===t))&&(void 0!==n.groups&&void 0!==n.groups.expr)){let a=n.groups.expr,i=null;try{i=so(a)}catch(t){return"Error:"+t.message}if(!i)return"Error: failed to parse expression";const l=mo(i,e);if("string"==typeof l)return l;if("number"==typeof l||window.moment.isMoment(l)){let e=null;void 0!==n.groups.format&&(e=n.groups.format),r.push({source:t,value:l,format:e})}}}return r}function wo(t,e){let n=vo(t,e);if("string"==typeof n)return n;let r=n;for(let n of r){let r=n.source,a=n.value,i=n.format,l="";"number"==typeof a?l=i?fo.sprintf("%"+i,a):a.toFixed(1):window.moment.isMoment(a)&&(l=Jl(a,i||e.dateFormat)),l&&(t=t.split(r).join(l))}return t}function xo(t,e){if(t=t.trim(),/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)$/.test(t))return parseFloat(t);let n=vo(t,e);if("string"==typeof n)return n;let r=n;return r.length>0?r[0].value:"Error: failed to resolve values"}function Ao(t,e,n,r){let a="",i=.5*n.dataAreaSize.width,l=.7*i,o=l*r.ratioInnerRadius,u=[];for(let t of r.data){let e=xo(t,n);if("string"==typeof e){a=e;break}"number"==typeof e&&u.push(e)}if(""!==a)return a;let s=[];for(let t of r.label){let e=wo(t,n);if(e.startsWith("Error")){a=e;break}s.push(e)}if(""!==a)return a;let f=r.hideLabelLessThan,c=s.map((function(t){return io(t,"tracker-tick-label")})),h=[];for(let t of r.extLabel){let e=wo(t,n);if(e.startsWith("Error")){a=e;break}h.push(e)}if(""!==a)return a;let d=h.map((function(t){return io(t,"tracker-pie-label")})),g=r.showExtLabelOnlyIfNoLabel,p=Cr().range(r.dataColor),y=e.dataArea.append("g");y.attr("transform",(function(){return"translate("+.5*n.dataAreaSize.width+","+.5*n.dataAreaSize.height+")"}));let m=function(){var t=Tl,e=Ml,n=null,r=Qi(0),a=Qi(sl),i=Qi(0);function l(l){var o,u,s,f,c,h=(l=xl(l)).length,d=0,g=new Array(h),p=new Array(h),y=+r.apply(this,arguments),m=Math.min(sl,Math.max(-sl,a.apply(this,arguments)-y)),v=Math.min(Math.abs(m)/h,i.apply(this,arguments)),w=v*(m<0?-1:1);for(o=0;o0&&(d+=c);for(null!=e?g.sort((function(t,n){return e(p[t],p[n])})):null!=n&&g.sort((function(t,e){return n(l[t],l[e])})),o=0,s=d?(m-h*w)/d:0;o0?c*s:0)+w,p[u]={data:l[u],index:o,value:c,startAngle:y,endAngle:f,padAngle:v};return p}return l.value=function(e){return arguments.length?(t="function"==typeof e?e:Qi(+e),l):t},l.sortValues=function(t){return arguments.length?(e=t,n=null,l):e},l.sort=function(t){return arguments.length?(n=t,e=null,l):n},l.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:Qi(+t),l):r},l.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Qi(+t),l):a},l.padAngle=function(t){return arguments.length?(i="function"==typeof t?t:Qi(+t),l):i},l}(),v=m(u),w=y.selectAll("sector").data(v).enter().append("g").attr("class","sector"),x=wl().innerRadius(o).outerRadius(l);var A=wl().innerRadius(.9*i).outerRadius(.9*i);function b(t){return(t.endAngle-t.startAngle)/(2*Math.PI)Math.sqrt(Math.pow(u[0]-l[0],2)+Math.pow(u[1]-l[1],2))?[l,u]:[l,o,u]}w.append("path").attr("fill",(function(t,e){return p(e.toString())})).attr("d",x),y.selectAll("label").data(m(u)).enter().append("text").text((function(t,e){return b(t)?"":s[e]})).attr("transform",(function(t){return"translate("+x.centroid(t)[0]+","+x.centroid(t)[1]+")"})).style("text-anchor","middle").attr("class","tracker-pie-label"),y.selectAll("extLabel").data(v).enter().append("text").text((function(t,e){return g?""===s[e]||b(t)?h[e]:"":h[e]})).attr("transform",(function(t,e){let n=A.centroid(t),r=D(t);return n[0]=(.99*i-d[e].width)*(rc&&(c=s[t].width,f=t);let h=c/u[f].length,d=s[f].height,g=u.length,p=2*h,y=d,v=2*h,w=0,x=0;"vertical"===r.legendOrientation?(w=3*p+v+c,x=(g+1)*y):"horizontal"===r.legendOrientation&&(w=(2*p+v)*g+p+m(s,(function(t,e){return t.width})),x=y+d);let A=0,b=0;if("top"===r.legendPosition)A=n.dataAreaSize.width/2-w/2,b=o,lo(a,0,x+y),oo(i,0,x+y);else if("bottom"===r.legendPosition)A=n.dataAreaSize.width/2-w/2,b=o+n.dataAreaSize.height+y,lo(a,0,x+y);else if("left"===r.legendPosition)A=0,b=o+n.dataAreaSize.height/2-x/2,lo(a,w+p,0),oo(i,w+p,0);else{if("right"!==r.legendPosition)return;A=n.dataAreaSize.width+p,b=o+n.dataAreaSize.height/2-x/2,lo(a,w+p,0)}let D=e.graphArea.append("g").attr("id","legend").attr("transform","translate("+A+","+b+")"),k=D.append("rect").attr("class","tracker-legend").attr("width",w).attr("height",x);r.legendBgColor&&k.style("fill",r.legendBgColor),r.legendBorderColor&&k.style("stroke",r.legendBorderColor);let M=p,T=d,C=M+p+v,F=T;if("vertical"===r.legendOrientation)D.selectAll("markers").data(u).enter().append("circle").attr("cx",M+v/2).attr("cy",(function(t,e){return T+e*y})).attr("r",(function(t,e){return 5})).style("fill",(function(t,e){return r.dataColor[e]})),D.selectAll("labels").data(u).enter().append("text").attr("x",C).attr("y",(function(t,e){return F+e*y})).text((function(t,e){return t})).style("alignment-baseline","middle").attr("class","tracker-legend-label").style("fill",(function(t,e){return r.dataColor[e]}));else if("horizontal"===r.legendOrientation){let t=0;t=0,D.selectAll("markers").data(u).enter().append("circle").attr("cx",(function(e,n){return 0===n?t=M+v/2:t+=s[n].width+p+v+p,t})).attr("cy",T).attr("r",(function(t,e){return 5})).style("fill",(function(t,e){return r.dataColor[e]})),t=0,D.selectAll("labels").data(u).enter().append("text").attr("x",(function(e,n){return 0===n?t=C:t+=s[n].width+p+v+p,t})).attr("y",F).text((function(t,e){return t})).style("alignment-baseline","middle").attr("class","tracker-legend-label").style("fill",(function(t,e){return r.dataColor[e]}))}}(0,r,e,n),function(t,e,n){let r=jt(t),a=e.svg,i=parseFloat(a.attr("width")),l=parseFloat(a.attr("height"));a.attr("width",null).attr("height",null).attr("viewBox",`0 0 ${i} ${l}`).attr("preserveAspectRatio","xMidYMid meet"),n.fitPanelWidth?r.style("width","100%"):(r.style("width",(i*n.fixedScale).toString()+"px"),r.style("height",(l*n.fixedScale).toString()+"px"))}(t,r,e)}function Do(t,e,n){if(!e||!n)return;let r="";n.template,r=n.template;let a=wo(r,e);if(a.startsWith("Error:"))return a;if(r=a,""!==r){let e=jt(t).append("div");if(r.includes("\n")||r.includes("\\n")){let t=r.split(/(\n|\\n)/);for(let n of t)"\n"!==n&&"\\n"!==n&&e.append("div").text(n)}else e.text(r);""!==n.style&&e.attr("style",n.style)}}let ko=!1;function Mo(t,e){let n=e.dataset;if(0===n.length)return!1;let r=null;if(null===e.selectedDataset){for(let e of n)if(r=t.datasets.getDatasetById(e),r&&!r.getQuery().usedAsXDataset)break;if(r)return e.selectedDataset=r.getId(),!0}else{let a=e.selectedDataset,i=n.findIndex((t=>t===a));if(i>=0){if(i===e.dataset.length-1){for(let e of n)if(r=t.datasets.getDatasetById(e),r&&!r.getQuery().usedAsXDataset)break;return!!r&&(e.selectedDataset=r.getId(),!0)}{i++;let a=n[i];if(r=t.datasets.getDatasetById(a),e.selectedDataset=a,r&&!r.getQuery().usedAsXDataset)return!0;Mo(t,e)}}}return!1}function To(t,e,n,r){jt(e).select("#svg").remove();for(var a=Object.getOwnPropertyNames(t),i=0;i").attr("id","arrowLeft").attr("transform","translate("+6.5*s+","+(g/2+D.height/2)+")").attr("class","tracker-month-title-arrow").on("click",(function(i){Co(e,r);let l=a.clone().add(1,"month");So(t,e,n,r,l)})).style("cursor","pointer"),p.append("text").text("◦").attr("id","arrowToday").attr("transform","translate("+6*s+","+(g/2+D.height/2)+")").attr("class","tracker-month-title-arrow").on("click",(function(a){Co(e,r);let i=to(n.dateFormat);So(t,e,n,r,i)})).style("cursor","pointer"),g+=8;let k=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];"mon"===r.startWeekOn.toLowerCase()&&k.push(k.shift());let M=io(k[0],"tracker-month-weekday");e.graphArea.selectAll("weekDays").data(k).enter().append("text").text((function(t){return t})).attr("transform",(function(t,e){return"translate("+(e+.5)*s+","+(g+M.height)+")"})).attr("class","tracker-month-weekday").attr("text-anchor","middle").style("cursor","default").on("click",(function(t){Co(e,r)})),g+=M.height+8;let T=null;r.dividingLineColor?T=r.dividingLineColor:r.color&&(T=r.color);let C=e.graphArea.append("rect").attr("x",0).attr("y",g).attr("width",6.5*s+M.width).attr("height",1).attr("class","tracker-month-dividing-line");T&&C.style("fill",T),g+=1,p.attr("height",g),e.header=p,oo(e.dataArea,0,g)}function _o(t,e,n,r,a){if(!n||!r)return;let i=r.mode;if("circle"!==i&&"annotation"!==i)return"Unknown month view mode";let l=r.selectedDataset;if(null===l)return;let o=n.datasets.getDatasetById(l);if(!o)return;let u=r.dataset.findIndex((t=>t===l));l<0&&(u=0);let s=r.threshold[u];a.month(),a.daysInMonth();let f=io("30","tracker-month-label"),d=2.8*Math.max(f.width,f.height),g=d/2.8*1.8/2,p=(d-2*g)/2,y=h(o.getValues());null!==r.yMin[u]&&(y=r.yMin[u]);let m=c(o.getValues());null!==r.yMax[u]&&(m=r.yMax[u]);let v=!0;(null===m||null===y||m<=y)&&(v=!1);const w=a.clone().startOf("month");let x=w.clone().subtract(w.day(),"days");"mon"===r.startWeekOn.toLowerCase()&&(x=x.add(1,"days"));const A=a.clone().endOf("month");let b=A.clone().add(7-A.day()-1,"days");"mon"===r.startWeekOn.toLowerCase()&&(b=b.add(1,"days"));const D=o.getStartDate(),k=o.getEndDate();let M=r.showAnnotation,T=r.annotation,C=T[u],F=r.showAnnotationOfAllTargets,_=[],S=0,E=0,B=0;for(let t=x.clone();t<=b;t.add(1,"days")){t=ql(Jl(t,n.dateFormat),n.dateFormat),"2021-09-13"===t.format("YYYY-MM-DD")&&(ko=!1),"mon"===r.startWeekOn.toLowerCase()?(S=t.day()-1,S<0&&(S=6),E=Math.floor(B/7)):(S=t.day(),E=Math.floor(B/7));let e=!0;(t.diff(w)<0||t.diff(A)>0)&&(e=!1);let a=!0;D&&k&&t.diff(D)>=0&&t.diff(k)<=0&&(a=!1);const i=o.getValue(t);ko&&(console.log(o),console.log(Jl(t,n.dateFormat)),console.log(i));let l=!1;r.circleColorByValue?(v||null!==i&&i>s)&&(l=!0):null!==i&&i>s&&(l=!0);let u=null;r.circleColorByValue&&v&&null!==i&&(u=(i-y)/(m-y)),ko&&(console.log(y),console.log(m),console.log(u));let f=o.getValue(t,1),c=o.getValue(t,-1),h=!1;null!==i&&i>s&&null!==c&&c>s&&(h=!0);let d=!1;null!==i&&i>s&&null!==f&&f>s&&(d=!0),ko&&(console.log(`preValue: ${c}, curValue: ${i}, nextValue: ${f}`),console.log(r.threshold),console.log(`streakIn: ${h}, streakOut: ${d}`));let g="";if(M)if(F)for(let e of r.dataset){let a=r.dataset.findIndex((t=>t===e));if(a>=0){let i=n.datasets.getDatasetById(e).getValue(t),l=r.threshold[a];null!==i&&i>l&&(g+=T[a])}}else i>s&&(g=C);_.push({date:Jl(t,n.dateFormat),value:i,scaledValue:u,dayInMonth:t.date(),isInThisMonth:e,isOutOfDataRange:a,row:E,col:S,showCircle:l,streakIn:h,streakOut:d,annotation:g}),B++,ko&&(ko=!1)}let N=(S+1)*d,L=Kr().domain([-.5,6.5]).range([0,N]);if("circle"===i&&r.showCircle&&r.showStreak){let t="#69b3a2";r.circleColor?t=r.circleColor:r.color&&(t=r.color),e.dataArea.selectAll("streakIn").data(_.filter((function(t){return t.streakIn}))).enter().append("rect").attr("x",(function(t){return L(t.col)-g-p})).attr("y",(function(t){return L(t.row)-1.5})).attr("width",p).attr("height",3).style("fill",(function(e){return e.showCircle?r.circleColorByValue?null!==e.scaledValue?kr("white",t)(.8*e.scaledValue+.2):"none":t:"none"})).style("opacity",(function(t){return t.isOutOfDataRange||r.dimNotInMonth&&!t.isInThisMonth?.2:1})),e.dataArea.selectAll("streakOut").data(_.filter((function(t){return t.streakOut}))).enter().append("rect").attr("x",(function(t){return L(t.col)+g})).attr("y",(function(t){return L(t.row)-1.5})).attr("width",p).attr("height",3).style("fill",(function(e){return e.showCircle?r.circleColorByValue?null!==e.scaledValue?kr("white",t)(.8*e.scaledValue+.2):"none":t:"none"})).style("opacity",(function(t){return t.isOutOfDataRange||r.dimNotInMonth&&!t.isInThisMonth?.2:1}))}let V="#69b3a2";r.circleColor?V=r.circleColor:r.color&&(V=r.color),"circle"===i&&r.showCircle&&e.dataArea.selectAll("dot").data(_).enter().append("circle").attr("r",g).attr("cx",(function(t){return L(t.col)})).attr("cy",(function(t){return L(t.row)})).style("fill",(function(t){if(t.showCircle){if(!r.circleColorByValue)return V;if(null!==t.scaledValue){return kr("white",V)(.8*t.scaledValue+.2)}return"none"}return"none"})).style("opacity",(function(t){return t.isOutOfDataRange||r.dimNotInMonth&&!t.isInThisMonth?.2:1})).style("cursor","default");let I=Jl(window.moment(),n.dateFormat);if("circle"===i&&r.showTodayRing){let t=e.dataArea.selectAll("todayRing").data(_.filter((function(t){return t.date===I}))).enter().append("circle").attr("r",.9*g).attr("cx",(function(t){return L(t.col)})).attr("cy",(function(t){return L(t.row)})).attr("class","tracker-month-today-circle").style("cursor","default");""!==r.todayRingColor?t.style("stroke",r.todayRingColor):t.style("stroke","white")}"circle"===i&&r.showSelectedRing&&e.dataArea.selectAll("selectedRing").data(_).enter().append("circle").attr("r",g).attr("cx",(function(t){return L(t.col)})).attr("cy",(function(t){return L(t.row)})).attr("id",(function(t){return"tracker-selected-circle-"+t.date})).attr("class","tracker-month-selected-circle").style("cursor","default").style("stroke","none"),e.dataArea.selectAll("dayLabel").data(_).enter().append("text").text((function(t){return t.dayInMonth.toString()})).attr("transform",(function(t){return"translate("+L(t.col)+","+(L(t.row)+f.height/4)+")"})).style("fill-opacity",(function(t){return t.isOutOfDataRange||r.dimNotInMonth&&!t.isInThisMonth?.2:1})).attr("date",(function(t){return t.date})).attr("value",(function(t){return t.value})).attr("valueType",(function(t){return Ki[o.valueType]})).attr("class","tracker-month-label").on("click",(function(t){Co(e,r);let n=jt(this).attr("date");if(r.selectedDate=n,r.showSelectedRing&&e.dataArea.select("#tracker-selected-circle-"+n).style("stroke",r.selectedRingColor),r.showSelectedValue){let t=jt(this).attr("value"),n="";if("Time"===jt(this).attr("valueType")){n=window.moment("00:00","HH:mm",!0).add(parseFloat(t),"seconds").format("HH:mm")}else n=t;e.monitor.text(n)}})).style("cursor","pointer"),"annotation"===i&&M&&e.dataArea.selectAll("dayAnnotation").data(_).enter().append("text").text((function(t){return t.annotation})).attr("transform",(function(t){let e=L(t.col),n=L(t.row)+f.height/4;return t.annotation&&(n+=g),"translate("+e+","+n+")"})).attr("class","tracker-month-annotation");let Y=parseFloat(e.svg.attr("width")),P=parseFloat(e.svg.attr("height")),z=parseFloat(e.graphArea.attr("width")),O=parseFloat(e.graphArea.attr("height")),U=7*d+parseFloat(e.header.attr("height")),R=7*d;U>P&&lo(e.svg,0,U-P),R>Y&&lo(e.svg,R-Y,0),U>O&&lo(e.graphArea,0,U-O),R>z&&lo(e.svg,R-z,0)}function So(t,e,n,r,a){n&&Eo&&(Fo(t,e=To(e,t,n),n,r,a),_o(0,e,n,r,a))}function Eo(t,e,n){if(!e||!Eo)return;n.dataset;let r=0;for(let t of e.datasets)t.getQuery().usedAsXDataset||r++;if(0===r)return"No available dataset found";if(Mo(e,n),null===n.selectedDataset)return"No available dataset found";let a={};a=To(a,t,e);let i=null;if(n.initMonth){if(i=Zl(n.initMonth,e.dateFormat),!i){let t=window.moment(n.initMonth,"YYYY-MM",!0);if(!t.isValid())return"Invalid initMonth";i=t}}else i=e.datasets.getDates().last();i&&(Fo(t,a,e,n,i),_o(0,a,e,n,i),function(t,e,n){let r=jt(t),a=e.svg,i=parseFloat(a.attr("width")),l=parseFloat(a.attr("height"));a.attr("width",null).attr("height",null).attr("viewBox",`0 0 ${i} ${l}`).attr("preserveAspectRatio","xMidYMid meet"),n.fitPanelWidth?r.style("width","100%"):(r.style("width",(i*n.fixedScale).toString()+"px"),r.style("height",(l*n.fixedScale).toString()+"px"))}(t,a,e))}function Bo(t,e,n){if(e&&Bo)return"Under construction"}function No(t,e,n){if(!e||!n)return;let r=parseFloat(n.dataset);e.datasets.getDatasetById(r),"horizontal"===n.orientation?e.dataAreaSize={width:250,height:24}:"vertical"===n.orientation&&(e.dataAreaSize={width:24,height:250});let a=function(t,e,n){let r={};if(!e||!n)return;let a=jt(t).append("svg").attr("id","svg").attr("width",e.dataAreaSize.width+e.margin.left+e.margin.right).attr("height",e.dataAreaSize.height+e.margin.top+e.margin.bottom);r.svg=a;let i=a.append("g").attr("id","graphArea").attr("transform","translate("+e.margin.left+","+e.margin.top+")").attr("width",e.dataAreaSize.width+e.margin.right).attr("height",e.dataAreaSize.height+e.margin.bottom);r.graphArea=i;let l=i.append("g").attr("id","dataArea").attr("width",e.dataAreaSize.width).attr("height",e.dataAreaSize.height);return r.dataArea=l,r}(t,e,n),i=function(t,e,n,r){if(!e||!n)return;let a=n.range,i=a[a.length-1],l=[0,i],o=n.valueUnit,u=function(t){return o&&o.endsWith("%")?Zr(0,i,7)(t)+" %":Zr(0,i,7)(t)},s=io(u(i),"tracker-tick-label");if("horizontal"===n.orientation){let n=Kr();n.domain(l).range([0,e.dataAreaSize.width]),t.scale=n;let r=T(n);r.tickFormat(u);let a=t.dataArea.append("g").attr("id","axis").attr("transform","translate(0,"+e.dataAreaSize.height+")").call(r).attr("class","tracker-axis");t.axis=a,a.selectAll("path").style("stroke","none"),a.selectAll("line"),a.selectAll("text").attr("class","tracker-tick-label"),a.attr("width",e.dataAreaSize.width+s.width),a.attr("height",6+s.height),lo(t.svg,+s.width,6+s.height),lo(t.graphArea,+s.width,6+s.height)}else if("vertical"===n.orientation){let n=Kr();n.domain(l).range([e.dataAreaSize.height,0]),t.scale=n;let r=C(n);r.tickFormat(u);let a=t.dataArea.append("g").attr("id","axis").attr("x",0).attr("y",0).call(r).attr("class","tracker-axis");t.axis=a,a.selectAll("path").style("stroke","none"),a.selectAll("line"),a.selectAll("text").attr("class","tracker-tick-label"),a.attr("width",6+s.width),a.attr("height",e.dataAreaSize.width),lo(t.svg,6+s.width,0),lo(t.graphArea,6+s.width,0),oo(t.dataArea,6+s.width,0)}}(a,e,n);if("string"==typeof i)return i;!function(t,e,n){if(!e||!n)return;if(n.title){let r=io(n.title,"tracker-title-small");if("horizontal"===n.orientation){let a=t.graphArea.append("text").text(n.title).attr("id","title").attr("x",r.width/2).attr("y",e.dataAreaSize.height/2).attr("height",r.height).attr("class","tracker-title-small");t.title=a,lo(t.svg,r.width+6,0),lo(t.graphArea,r.width+6,0),oo(t.dataArea,r.width+6,0)}else if("vertical"===n.orientation){let a=e.dataAreaSize.width/2;r.width>e.dataAreaSize.width&&(lo(t.svg,r.width-e.dataAreaSize.width,0),lo(t.graphArea,r.width-e.dataAreaSize.width,0),oo(t.dataArea,r.width/2-e.dataAreaSize.width/2,0),a=r.width/2);let i=parseFloat(t.axis.attr("width")),l=t.graphArea.append("text").text(n.title).attr("id","title").attr("x",a+i).attr("y",r.height/2).attr("height",r.height).attr("class","tracker-title-small");t.title=l,lo(t.svg,0,r.height+6),lo(t.graphArea,0,r.height+6),oo(t.dataArea,0,r.height+6)}}if(n.valueUnit){let r=io(n.valueUnit,"tracker-tick-label");if("horizontal"===n.orientation){let a=t.dataArea.append("text").text(n.valueUnit).attr("id","unit").attr("x",-1*(r.width+6)).attr("y",e.dataAreaSize.height+6).attr("height",r.height).attr("class","tracker-tick-label");t.unit=a}else if("vertical"===n.orientation){let a=t.dataArea.append("text").text(n.valueUnit).attr("id","unit").attr("x",e.dataAreaSize.width/2-r.width/2).attr("y",-(r.height/2+6)).attr("height",r.height).attr("class","tracker-tick-label");t.unit=a,lo(t.svg,0,r.height+6),lo(t.graphArea,0,r.height+6),oo(t.dataArea,0,r.height+6)}}}(a,e,n),function(t,e,n,r){if(!e||!n)return;let a=t.scale,i=n.range,l=n.rangeColor,o=[],u=0;for(let t=0;t=e&&(n=r=e):(n>e&&(n=e),r=i&&(n=r=i):(n>i&&(n=i),ro)&&(o=e.getYMax()),s=e.valueType===Ki.Time,null===u)u=s;else if(s!==u)return"Not all values in time format"}let f=null;"left"===r?f=n.yMin[0]:"right"===r&&(f=n.yMin[1]);let c=!1;"number"!=typeof f?f=l:c=!0;let h=null;"left"===r?h=n.yMax[0]:"right"===r&&(h=n.yMax[1]);let d=!1;if("number"!=typeof h?h=o:d=!0,h0&&(g=0));let w=[g,p];("left"===r&&n.reverseYAxis[0]||"right"===r&&n.reverseYAxis[1])&&(w=[p,g]),v.domain(w).range([e.dataAreaSize.height,0]),"left"===r?t.leftYScale=v:"right"===r&&(t.rightYScale=v);let x="";"left"===r?x=n.yAxisColor[0]:"right"===r&&(x=n.yAxisColor[1]);let A="";"left"===r?A=n.yAxisLabelColor[0]:"right"===r&&(A=n.yAxisLabelColor[1]);let b="";"left"===r?b=n.yAxisLabel[0]:"right"===r&&(b=n.yAxisLabel[1]);let D="",k=null,T=null;"left"===r?(D=n.yAxisUnit[0],k=n.yAxisTickInterval[0],T=n.yAxisTickLabelFormat[0]):"right"===r&&(D=n.yAxisUnit[1],k=n.yAxisTickInterval[1],T=n.yAxisTickLabelFormat[1]);let F,_=null;if(s?_=Ql(k):(_=parseFloat(k),Number.isNumber(_)&&!Number.isNaN(_)||(_=null)),"left"===r?F=C(v):"right"===r&&(F=M(2,v)),F){let t=function(t,e,n,r=!1){if(r){if(n){function t(t){return window.moment("00:00","HH:mm",!0).add(t,"seconds").format(n)}return t}{function n(n){const r=Math.abs(e-t);let a=window.moment("00:00","HH:mm",!0).add(n,"seconds").format("HH:mm");if(r>43200){let r=(n-t)/3600%2;(ne||r<1)&&(a="")}return a}return n}}if(n){function t(t){return fo.sprintf("%"+n,t)}return t}return Zr(t,e,10)}(g,p,T,s);t&&F.tickFormat(t);let e=function(t,e,n,r=!1){const a=Math.abs(e-t);let i=[];r?i=n&&window.moment.isDuration(n)?y(t,e,Math.abs(n.asSeconds())):a>18e3?y(t=3600*Math.floor(t/3600),e=3600*Math.ceil(e/3600),3600):y(t=1800*Math.floor(t/1800),e=1800*Math.ceil(e/1800),1800):n&&"number"==typeof n&&(i=y(t,e,n));return 0===i.length?null:i}(g,p,_,s);e&&F.tickValues(e)}let S=t.dataArea.append("g").attr("id","yAxis").call(F).attr("class","tracker-axis");"right"==r&&S.attr("transform","translate("+e.dataAreaSize.width+" ,0)"),"left"===r?t.leftYAxis=S:"right"===r&&(t.rightYAxis=S);let E=S.selectAll("path");x&&E.style("stroke",x);let B=S.selectAll("line");x&&B.style("stroke",x);let N=S.selectAll("text").attr("class","tracker-tick-label");x&&N.style("fill",x);let L=0;for(let t of N)if(t.textContent){let e=io(t.textContent,"tracker-axis-label");e.width>L&&(L=e.width)}""!==D&&(b+=" ("+D+")");let V=io(b),I=S.append("text").text(b).attr("transform","rotate(-90)").attr("x",-1*e.dataAreaSize.height/2).attr("class","tracker-axis-label");"left"===r?I.attr("y",-6-L-V.height/2):I.attr("y",6+L+V.height),A&&I.style("fill",A);let Y=V.height+L+6;S.attr("width",Y),lo(t.svg,Y,0),lo(t.graphArea,Y,0),"left"===r&&(oo(t.dataArea,Y,0),t.title&&oo(t.title,Y,0))}function Io(t,e,n,r,a){if(!e||!n)return;let i=null;if("left"===a?i=t.leftYScale:"right"===a&&(i=t.rightYScale),n.showLine[r.getId()]){let e=function(t,e){var n=Qi(!0),r=null,a=bl,i=null;function l(l){var o,u,s,f=(l=xl(l)).length,c=!1;for(null==r&&(i=a(s=or())),o=0;o<=f;++o)!(o0&&(a.style("stroke",n.pointBorderColor[r.getId()]),a.style("stroke-width",n.pointBorderWidth[r.getId()]))),n.allowInspectData&&function(t,e,n){let r=e.dataArea.append("svg").style("opacity",0),a=r.append("rect").attr("x",0).attr("y",0),i=r.append("text"),l=i.append("tspan").attr("class","tracker-tooltip-label"),o=i.append("tspan").attr("class","tracker-tooltip-label"),u=3,s=3;t.on("mouseenter",(function(t){const[e,f]=function(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var a=e.getBoundingClientRect();return[t.clientX-a.left-e.clientLeft,t.clientY-a.top-e.clientTop]}}return[t.pageX,t.pageY]}(t);let c=0,h=0,d="date: "+jt(this).attr("date"),g=io(d,"tracker-tooltip-label");l.text(d),g.width>c&&(c=g.width),h+=g.height,l.attr("x",u).attr("y",h);let p="value: ",y=jt(this).attr("valueType"),m=jt(this).attr("value");if("Time"===y){p+=window.moment("00:00","HH:mm",!0).add(parseFloat(m),"seconds").format("HH:mm"),o.text(p)}else p+=m,o.text(p);let v=io(p,"tracker-tooltip-label");v.width>c&&(c=v.width),h+=s+v.height,o.attr("x",u).attr("y",h),c+=2*u,h+=2*s,i.attr("width",c).attr("height",h),a.attr("width",c).attr("height",h).attr("class","tracker-tooltip");let w=e,x=f,A=12,b=12;w=e+A+c>n.dataAreaSize.width?e-c-A:e+A,x=f-b-h<0?f+b:f-b-h,r.attr("x",w).attr("y",x),r.transition().duration(200).style("opacity",1)})).on("mouseleave",(function(){r.transition().duration(500).style("opacity",0)}))}(a,t,e)}}function Po(t,e,n,r,a,i,l){if(!e||!n)return;let o=e.dataAreaSize.width/r.getLength(),u=o;o-1>0&&(u=o-1),u/=l;let s=null;"left"===a?s=t.leftYScale:"right"===a&&(s=t.rightYScale);let f=t.dataArea.selectAll("bar").data(Array.from(r).filter((function(t){return null!==t.value}))).enter().append("rect").attr("x",(function(e,n){if(0===n){let n=i+1-l/2;if(n<1)return t.xScale(e.date)-o/2+i*u+n*u}return t.xScale(e.date)-o/2+i*u})).attr("y",(function(t){return s(Math.max(t.value,0))})).attr("width",(function(t,e){if(0===e){let t=i+1-l/2;return t<0?0:t<1?u*t:u}if(e===r.getLength()-1){let t=1-(i+1-l/2);return t<0?0:t<1?u*t:u}return u})).attr("height",(function(t){if(null!==t.value)return Math.abs(s(t.value)-s(0))})).attr("class","tracker-bar");n.barColor[r.getId()]&&f.style("fill",n.barColor[r.getId()])}function zo(t,e,n){let r=t.svg;t.graphArea;let a=t.dataArea,i=t.title,l=t.xAxis,o=t.leftYAxis,u=t.rightYAxis,s=0;i&&(s=parseFloat(i.attr("height")));let f=parseFloat(l.attr("height")),c=0;o&&(c=parseFloat(o.attr("width")));let h=0;u&&(h=parseFloat(u.attr("width")));let d=e.datasets,g=d.getXDatasetIds(),p=d.getNames(),y=p.map((function(t){return io(t,"tracker-legend-label")})),v=0,w=0;for(let t=0;tw&&(w=y[t].width,v=t);let x=w/p[v].length,A=y[v].height,b=p.length-g.length,D=2*x,k=A,M=2*x,T=0,C=0;"vertical"===n.legendOrientation?(T=3*D+M+w,C=(b+1)*k):"horizontal"===n.legendOrientation&&(T=(2*D+M)*b+D+m(y,(function(t,e){return g.includes(e)?0:t.width})),C=k+A);let F=0,_=0;if("top"===n.legendPosition)F=c+e.dataAreaSize.width/2-T/2,_=s,lo(r,0,C+k),oo(a,0,C+k);else if("bottom"===n.legendPosition)F=c+e.dataAreaSize.width/2-T/2,_=s+e.dataAreaSize.height+f+k,lo(r,0,C+k);else if("left"===n.legendPosition)F=0,_=s+e.dataAreaSize.height/2-C/2,lo(r,T+D,0),oo(a,T+D,0);else{if("right"!==n.legendPosition)return;F=e.dataAreaSize.width+c+h+D,_=s+e.dataAreaSize.height/2-C/2,lo(r,T+D,0)}let S=t.graphArea.append("g").attr("id","legend").attr("transform","translate("+F+","+_+")"),E=S.append("rect").attr("class","tracker-legend").attr("width",T).attr("height",C);n.legendBgColor&&E.style("fill",n.legendBgColor),n.legendBorderColor&&E.style("stroke",n.legendBorderColor);let B=D,N=A,L=B+D+M,V=N;if("vertical"===n.legendOrientation){n.GetGraphType()===Ji.Line?(S.selectAll("markers").data(p).enter().append("line").attr("x1",B).attr("x2",B+M).attr("y1",(function(t,e){let n=g.filter((t=>ttttt!g.includes(e)))).enter().append("rect").attr("x",(function(t,e){let n=D;for(let[t,r]of y.entries())if(!g.includes(t)){if(!(ti.length;)i.push(r);if(null==e);else if("object"==typeof e&&null!==e){if(Array.isArray(e)){if(e.length>n)return l="Too many inputs for parameter '"+t+"'",l;if(0===e.length)return l="Empty array not allowd for "+t,l;for(let n=0;n0&&(u=e[n-1].trim()),"string"==typeof a){if(a=a.trim(),""!==a){l="Invalid inputs for "+t;break}i[n]=null!==u?u:r}else{if("boolean"!=typeof a){l="Invalid inputs for "+t;break}i[n]=a,o++}}else{let t=e[e.length-1];i[n]=o>0?t:r}}}else if("string"==typeof e){let a=Go(e);if(a.length>1){if(a.length>n)return l="Too many inputs for parameter '"+t+"'",l;for(let e=0;e0&&(u=Ho(a[e-1].trim())),""===n)i[e]=null!==u?u:r;else{let r=Ho(n);if(null===r){l="Invalid inputs for "+t;break}i[e]=r,o++}}else{let t=Ho(a[a.length-1].trim());i[e]=o>0&&null!==t?t:r}}else if(""===e);else{let n=Ho(e);if(null!==n){i[0]=n,o++;for(let t=1;ti.length;)i.push(r);if(null==e);else if("object"==typeof e&&null!==e){if(Array.isArray(e)){if(e.length>n)return l="Too many inputs for parameter '"+t+"'",l;if(0===e.length)return l="Empty array not allowd for "+t,l;for(let n=0;n0&&(u=e[n-1].trim()),"string"==typeof a){if(a=a.trim(),""!==a){l="Invalid inputs for "+t;break}i[n]=null!==u?u:r}else{if("number"!=typeof a){l="Invalid inputs for "+t;break}i[n]=a,o++}}else{let t=e[e.length-1];i[n]=o>0?t:r}}}else if("string"==typeof e){let a=Go(e);if(a.length>1){if(a.length>n)return l="Too many inputs for parameter '"+t+"'",l;for(let n=0;n0&&(u=ao(a[n-1].trim()).value),""===e)null!==u&&Number.isNumber(u)?i[n]=u:i[n]=r;else{let r=ao(e).value;if(null===r){l="Invalid inputs for "+t;break}i[n]=r,o++}}else{let t=ao(a[e.length-1].trim()).value;i[n]=o>0&&null!==t?t:r}}else if(""===e);else{let n=ao(e).value;if(null!==n){i[0]=n,o++;for(let t=1;tl.length;)l.push(r);if(null==e);else if("object"==typeof e&&null!==e){if(Array.isArray(e)){if(e.length>n)return o="Too many inputs for parameter '"+t+"'",o;if(0===e.length)return o="Empty array not allowd for "+t,o;for(let n=0;n0&&(s=e[n-1].trim()),"string"!=typeof i){o="Invalid inputs for "+t;break}if(i=i.trim(),""===i)l[n]=null!==s?s:r;else if(a){if(!a(i)){o="Invalid inputs for "+t;break}l[n]=i,u++}else l[n]=i,u++}else{let t=e[e.length-1].trim();l[n]=u>0?t:r}}}else if("string"==typeof e){let i=Go(e);if(i.length>1){if(i.length>n)return o="Too many inputs for parameter '"+t+"'",o;for(let e=0;e0&&(s=i[e-1].trim()),""===n)l[e]=null!==s?s:r;else if(a){if(!a(n)){o="Invalid inputs for "+t;break}l[e]=n,u++}else l[e]=n,u++}else{let t=i[i.length-1].trim();l[e]=u>0?t:r}}else if(""===e);else if(a)if(a(e)){l[0]=e,u++;for(let t=1;t1)for(let e of r){let r=parseFloat(e.trim());if(Number.isNaN(r)){return`Parameter '${t}' accepts only numbers`}n.push(r)}else{if(""===e){return`Empty ${t} is not allowed.`}{let r=parseFloat(e);if(!Number.isNumber(r)){return`Parameter '${t}' accepts only numbers`}n.push(r)}}}else{if("number"!=typeof e){return`Invalid ${t}`}n.push(e)}return n}function eu(t,e){let n=[];if(null==e)return n;if("object"==typeof e){if(Array.isArray(e))for(let t of e)"string"==typeof t&&n.push(t.trim())}else{if("string"!=typeof e){return`Invalid ${t}`}{let r=Go(e);if(r.length>1)for(let t of r)n.push(t.trim());else{if(""===e){return`Empty ${t} is not allowed.`}n.push(e)}}}for(let t=0;t2)return"yAxisLabel accepts not more than two values for left and right y-axes";e.yAxisLabel=n;let r=Ko("yAxisColor",null==t?void 0:t.yAxisColor,2,"",qo,!0);if("string"==typeof r)return r;if(r.length>2)return"yAxisColor accepts not more than two values for left and right y-axes";e.yAxisColor=r;let a=Ko("yAxisLabelColor",null==t?void 0:t.yAxisLabelColor,2,"",qo,!0);if("string"==typeof a)return a;if(a.length>2)return"yAxisLabelColor accepts not more than two values for left and right y-axes";e.yAxisLabelColor=a;let i=Ko("yAxisUnit",null==t?void 0:t.yAxisUnit,2,"",null,!0);if("string"==typeof i)return i;if(i.length>2)return"yAxisUnit accepts not more than two values for left and right y-axes";e.yAxisUnit=i,e.xAxisTickInterval=Jo(null==t?void 0:t.xAxisTickInterval,e.xAxisTickInterval);let l=Ko("yAxisTickInterval",null==t?void 0:t.yAxisTickInterval,2,null,null,!0);if("string"==typeof l)return l;if(l.length>2)return"yAxisTickInterval accepts not more than two values for left and right y-axes";e.yAxisTickInterval=l,e.xAxisTickLabelFormat=Jo(null==t?void 0:t.xAxisTickLabelFormat,e.xAxisTickLabelFormat);let o=Ko("yAxisTickLabelFormat",null==t?void 0:t.yAxisTickLabelFormat,2,null,null,!0);if("string"==typeof o)return o;if(o.length>2)return"yAxisTickLabelFormat accepts not more than two values for left and right y-axes";e.yAxisTickLabelFormat=o;let u=Zo("yMin",null==t?void 0:t.yMin,2,null,!0);if("string"==typeof u)return u;if(u.length>2)return"yMin accepts not more than two values for left and right y-axes";e.yMin=u;let s=Zo("yMax",null==t?void 0:t.yMax,2,null,!0);if("string"==typeof s)return s;if(s.length>2)return"yMax accepts not more than two values for left and right y-axes";e.yMax=s;let f=Qo("reverseYAxis",null==t?void 0:t.reverseYAxis,2,!1,!0);return"string"==typeof f?f:f.length>2?"reverseYAxis accepts not more than two values for left and right y-axes":void(e.reverseYAxis=f)}function ru(t){let e=[];if(null!==t){const n=Object.keys(t);for(let t of n)e.push(t.toString())}return e}function au(t,e){return ql(jl(t.basename,e.dateFormatPrefix,e.dateFormatSuffix),e.dateFormat)}function iu(t,e,n){let r=window.moment(""),a=t.frontmatter;if(a&&eo(a,e.getTarget())){let t=eo(a,e.getTarget());"string"==typeof t&&(t=jl(t,n.dateFormatPrefix,n.dateFormatSuffix),r=ql(t,n.dateFormat))}return r}function lu(t,e,n){let r,a=window.moment(""),i=new RegExp(e,"gm");for(;r=i.exec(t);)if(void 0!==r.groups&&void 0!==r.groups.value){let t=r.groups.value.trim();if(t=jl(t,n.dateFormatPrefix,n.dateFormatSuffix),a=ql(t,n.dateFormat),a.isValid())return a}return a}function ou(t,e,n){window.moment("");let r=e.getTarget();return e.getParentTarget()&&(r=e.getParentTarget()),lu(t,"(^|\\s)#"+r+"(\\/[\\w-]+)*(:(?[\\d\\.\\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\\s|$)",n)}function uu(t,e,n){return window.moment(""),lu(t,e.getTarget(),n)}function su(t,e,n){window.moment("");let r=e.getTarget();return e.getParentTarget()&&(r=e.getParentTarget()),r=r.replace("-","[\\s\\-]"),lu(t,"(^| |\\t)\\*{0,2}"+r+"\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)",n)}function fu(e,n,r){let a=window.moment("");if(e&&e instanceof t.TFile){let t=n.getTarget();if("cDate"===t){a=Kl(e.stat.ctime,r.dateFormat)}else if("mDate"===t){a=Kl(e.stat.mtime,r.dateFormat)}else"name"===t&&(a=au(e,r))}return a}function cu(t,e,n){window.moment("");let r=e.getType(),a=e.getTarget();return a=r===Zi.Task?"\\[[\\sx]\\]\\s"+a:r===Zi.TaskDone?"\\[x\\]\\s"+a:r===Zi.TaskNotDone?"\\[\\s\\]\\s"+a:"\\[[\\sx]\\]\\s"+a,lu(t,a,n)}function hu(t,e,n,r){if(t.has(e)){t.get(e).push({query:n,value:r})}else{let a=new Array;a.push({query:n,value:r}),t.set(e,a)}}function du(t,e,n,r,a,i){let l,o=new RegExp(e,"gm"),u=0,s=!1;for(;l=o.exec(t);)if(i.ignoreAttachedValue[n.getId()])u+=i.constValue[n.getId()],s=!0,n.addNumTargets();else if(void 0!==l.groups&&void 0!==l.groups.value){let t=l.groups.value.trim().split(n.getSeparator());if(!t)continue;if(1===t.length){let e=ao(t[0].trim(),i.textValueMap);null!==e.value&&(e.type===Ki.Time?(u=e.value,s=!0,n.valueType=Ki.Time,n.addNumTargets()):i.ignoreZeroValue[n.getId()]&&0===e.value||(u+=e.value,s=!0,n.addNumTargets()))}else if(t.length>n.getAccessor()&&n.getAccessor()>=0){let e=ao(t[n.getAccessor()].trim(),i.textValueMap);null!==e.value&&(e.type===Ki.Time?(u=e.value,s=!0,n.valueType=Ki.Time,n.addNumTargets()):(u+=e.value,s=!0,n.addNumTargets()))}}else u+=i.constValue[n.getId()],s=!0,n.addNumTargets();if(s){return hu(r,a.get(i.xDataset[n.getId()]),n,u),!0}return!1}function gu(e,n,r,a,i,l){if(e&&e instanceof t.TFile){let t=r.getTarget(),o=l.get(a.xDataset[r.getId()]);if("cDate"===t){let t=e.stat.ctime;return r.valueType=Ki.Date,r.addNumTargets(),hu(i,o,r,t),!0}if("mDate"===t){let t=e.stat.mtime;return r.valueType=Ki.Date,r.addNumTargets(),hu(i,o,r,t),!0}if("size"===t){let t=e.stat.size;return r.addNumTargets(),hu(i,o,r,t),!0}if("numWords"===t){return hu(i,o,r,function(t){t=uo(t);var e=new RegExp(["(?:[0-9]+(?:(?:,|\\.)[0-9]+)*|[\\-"+/A-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source+"])+",/[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u4E00-\u9FD5]{1}/.source].join("|"),"g");return(t.match(e)||[]).length}(n)),!0}if("numChars"===t){let t=n.length;return r.addNumTargets(),hu(i,o,r,t),!0}if("numSentences"===t){let t=function(t){return(((t=uo(t))||"").match(/[^.。!!??\s][^.。!!??]*(?:[.!?](?!['‘’"“”「」『』]?\s|$)[^.。!!??]*)*[.。!!??]?['’"”」』]?(?=\s||$)/gm)||[]).length}(n);return r.addNumTargets(),hu(i,o,r,t),!0}if("name"===t){let t=0,n=!1,l=ao(e.basename,a.textValueMap);null!==l.value&&(l.type===Ki.Time?(t=l.value,n=!0,r.valueType=Ki.Time,r.addNumTargets()):a.ignoreZeroValue[r.getId()]&&0===l.value||(t+=l.value,n=!0,r.addNumTargets()));let u=null;if(n&&(u=t),null!==u)return hu(i,o,r,u),!0}}return!1}const pu={folder:"/",dateFormat:"YYYY-MM-DD"};class yu extends t.PluginSettingTab{constructor(t,e){super(t,e),this.plugin=e}display(){let{containerEl:n}=this;n.empty(),new t.Setting(n).setName("Default folder location").setDesc("Files in this folder will be parsed and used as input data of the tracker plugin.\nYou can also override it using 'folder' argument in the tracker codeblock.").addText((t=>t.setPlaceholder("Folder Path").setValue(this.plugin.settings.folder).onChange((t=>e(this,void 0,void 0,(function*(){this.plugin.settings.folder=t,yield this.plugin.saveSettings()})))))),new t.Setting(n).setName("Default date format").setDesc("This format is used to parse the date in your diary title.\nYou can also override it using 'date-format' argument in the tracker codeblock.").addText((t=>t.setPlaceholder("YYYY-MM-DD").setValue(this.plugin.settings.dateFormat).onChange((t=>e(this,void 0,void 0,(function*(){this.plugin.settings.dateFormat=t,yield this.plugin.saveSettings()}))))))}}class mu extends t.Plugin{onload(){return e(this,void 0,void 0,(function*(){console.log("loading obsidian-tracker plugin"),yield this.loadSettings(),this.addSettingTab(new yu(this.app,this)),this.registerMarkdownCodeBlockProcessor("tracker",this.postprocessor.bind(this)),this.addCommand({id:"add-line-chart-tracker",name:"Add Line Chart Tracker",callback:()=>this.addCodeBlock(Ji.Line)}),this.addCommand({id:"add-bar-chart-tracker",name:"Add Bar Chart Tracker",callback:()=>this.addCodeBlock(Ji.Bar)}),this.addCommand({id:"add-summary-tracker",name:"Add Summary Tracker",callback:()=>this.addCodeBlock(Ji.Summary)})}))}loadSettings(){return e(this,void 0,void 0,(function*(){this.settings=Object.assign({},pu,yield this.loadData())}))}saveSettings(){return e(this,void 0,void 0,(function*(){yield this.saveData(this.settings)}))}renderErrorMessage(t,e,n){!function(t,e){jt(t).select("#svg").remove(),jt(t).append("div").text(e).style("background-color","white").style("margin-bottom","20px").style("padding","10px").style("color","red")}(e,t),n.appendChild(e)}onunload(){console.log("unloading obsidian-tracker plugin")}getFilesInFolder(e,n=!0){let r=[];for(let a of e.children)a instanceof t.TFile?"md"===a.extension&&r.push(a):a instanceof t.TFolder&&n&&(r=r.concat(this.getFilesInFolder(a)));return r}getFiles(n,r,a=!0){return e(this,void 0,void 0,(function*(){if(!n)return;let e=r.folder,a=r.specifiedFilesOnly,i=r.file,l=r.fileContainsLinkedFiles,o=r.fileMultiplierAfterLink;if(!a){let r=this.app.vault.getAbstractFileByPath(t.normalizePath(e));if(r&&r instanceof t.TFolder){let t=this.getFilesInFolder(r);for(let e of t)n.push(e)}}for(let e of i){let r=e;r.endsWith(".md")||(r+=".md"),r=t.normalizePath(r);let a=this.app.vault.getAbstractFileByPath(r);a&&a instanceof t.TFile&&n.push(a)}let u=1,s=!0;""===o?s=!1:/^[0-9]+$/.test(o)?(u=parseFloat(o),s=!1):/\?/.test(o)||(s=!1);for(let e of l){e.endsWith(".md")||(e+=".md");let a=this.app.vault.getAbstractFileByPath(t.normalizePath(e));if(a&&a instanceof t.TFile){let i=this.app.metadataCache.getFileCache(a),l=(yield this.app.vault.adapter.read(a.path)).split(/\r\n|[\n\v\f\r\x85\u2028\u2029]/);if(!(null==i?void 0:i.links))continue;for(let a of i.links){if(!a)continue;let i=this.app.metadataCache.getFirstLinkpathDest(a.link,e);if(i&&i instanceof t.TFile){if(s){let t=a.position.end.line;if(t>=0&&t1)for(let e of t){if(e=e.trim(),""===e){i="Empty search target is not allowed.";break}l.push(e)}else""===r.searchTarget?i="Empty search target is not allowed.":l.push(r.searchTarget)}else i="Invalid search target (searchTarget)";for(let t=0;tt!==Zi.Table)).length>0)return"searchType 'table' doestn't work with other types for now";let f=[],c=Ko("separator",r.separator,o,"",null,!0);if("string"==typeof c)return c;f=c.map((t=>"comma"===t||"\\,"===t?",":t));let h=Zo("xDataset",r.xDataset,o,-1,!0);if("string"==typeof h)return h;let d=h.map((t=>t<0||t>=o?-1:t)),g=[];for(let t=0;tt.getId()===e)))return i="Duplicated dataset id for key '"+t+"'",i;M.push(t),m.push(t)}for(let t of a)if(!y.includes(t)&&!m.includes(t))return i="'"+t+"' is not an available key",i;if(0===v.length+w.length+x.length+A.length+k.length+b.length+D.length)return"No output parameter provided, please place line, bar, pie, month, bullet, or summary.";"string"==typeof r.folder?""===r.folder?p.folder=n.settings.folder:p.folder=r.folder:p.folder=n.settings.folder;let T=n.app.vault.getAbstractFileByPath(t.normalizePath(p.folder));if(!(T&&T instanceof t.TFolder))return"Folder '"+p.folder+"' doesn't exist";if("string"==typeof r.file){let t=eu("file",r.file);if("string"==typeof t)return t;p.file=t}if("boolean"==typeof r.specifiedFilesOnly&&(p.specifiedFilesOnly=r.specifiedFilesOnly),"string"==typeof r.fileContainsLinkedFiles){let t=eu("fileContainsLinkedFiles",r.fileContainsLinkedFiles);if("string"==typeof t)return t;p.fileContainsLinkedFiles=t}p.fileMultiplierAfterLink=Jo(null==r?void 0:r.fileMultiplierAfterLink,p.fileMultiplierAfterLink);const C=r.dateFormat;if("string"==typeof r.dateFormat?""===r.dateFormat?p.dateFormat=n.settings.dateFormat:p.dateFormat=C:p.dateFormat=n.settings.dateFormat,p.dateFormatPrefix=Jo(null==r?void 0:r.dateFormatPrefix,p.dateFormatPrefix),p.dateFormatSuffix=Jo(null==r?void 0:r.dateFormatSuffix,p.dateFormatSuffix),"string"==typeof r.startDate){if(/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(r.startDate))return"'m' for 'minute' is too small for parameter startDate, please use 'd' for 'day' or 'M' for month";let t=jl(r.startDate,p.dateFormatPrefix,p.dateFormatSuffix),e=null,n=!1;if(e=Zl(t,p.dateFormat),e?n=!0:(e=ql(t,p.dateFormat),e.isValid()&&(n=!0)),!n||null===e)return"Invalid startDate, the format of startDate may not match your dateFormat "+p.dateFormat;p.startDate=e}if("string"==typeof r.endDate){if(/^([\-]?[0-9]+[\.][0-9]+|[\-]?[0-9]+)m$/.test(r.endDate))return"'m' for 'minute' is too small for parameter endDate, please use 'd' for 'day' or 'M' for month";let t=jl(r.endDate,p.dateFormatPrefix,p.dateFormatSuffix),e=null,n=!1;if(e=Zl(t,p.dateFormat),e?n=!0:(e=ql(t,p.dateFormat),e.isValid()&&(n=!0)),!n||null===e)return"Invalid endDate, the format of endDate may not match your dateFormat "+p.dateFormat;p.endDate=e}if(null!==p.startDate&&p.startDate.isValid()&&null!==p.endDate&&p.endDate.isValid()&&p.endDate4)return"margin accepts not more than four values for top, right, bottom, and left margins.";p.margin=new Rl(Y[0],Y[1],Y[2],Y[3]);for(let t of M){let e=new Bl,n=r[t],a=ru(e),l=ru(n);for(let t of l)if(!a.includes(t))return i="'"+t+"' is not an available key",i;let o=-1,u=t.replace("dataset","");o=""===u?0:parseFloat(u),e.id=o,e.name=Jo(null==n?void 0:n.name,e.name);let s=eu("xData",null==n?void 0:n.xData);if("string"==typeof s)return s;e.xData=s;let f=e.xData.length,c=eu("yData",null==n?void 0:n.yData);if("string"==typeof c)return c;if(e.yData=c,e.yData.length!==f)return"Number of elements in xData and yData not matched";p.customDataset.push(e)}for(let t of v){let e=new Ll,n=r[t],a=ru(e),l=ru(n);for(let t of l)if(!a.includes(t))return i="'"+t+"' is not an available key",i;let u=nu(n,e);if("string"==typeof u)return u;let s=Ko("lineColor",null==n?void 0:n.lineColor,o,"",qo,!0);if("string"==typeof s)return s;e.lineColor=s;let f=Zo("lineWidth",null==n?void 0:n.lineWidth,o,1.5,!0);if("string"==typeof f)return f;e.lineWidth=f;let c=Qo("showLine",null==n?void 0:n.showLine,o,!0,!0);if("string"==typeof c)return c;e.showLine=c;let h=Qo("showPoint",null==n?void 0:n.showPoint,o,!0,!0);if("string"==typeof h)return h;e.showPoint=h;let d=Ko("pointColor",null==n?void 0:n.pointColor,o,"#69b3a2",qo,!0);if("string"==typeof d)return d;e.pointColor=d;let g=Ko("pointBorderColor",null==n?void 0:n.pointBorderColor,o,"#69b3a2",qo,!0);if("string"==typeof g)return g;e.pointBorderColor=g;let y=Zo("pointBorderWidth",null==n?void 0:n.pointBorderWidth,o,0,!0);if("string"==typeof y)return y;e.pointBorderWidth=y;let m=Zo("pointSize",null==n?void 0:n.pointSize,o,3,!0);if("string"==typeof m)return m;e.pointSize=m;let v=Qo("fillGap",null==n?void 0:n.fillGap,o,!1,!0);if("string"==typeof v)return v;e.fillGap=v;let w=Ko("yAxisLocation",null==n?void 0:n.yAxisLocation,o,"left",jo,!0);if("string"==typeof w)return w;e.yAxisLocation=w,p.line.push(e)}for(let t of w){let e=new Vl,n=r[t],a=ru(e),l=ru(n);for(let t of l)if(!a.includes(t))return i="'"+t+"' is not an available key",i;let u=nu(n,e);if("string"==typeof u)return u;let s=Ko("barColor",null==n?void 0:n.barColor,o,"",qo,!0);if("string"==typeof s)return s;e.barColor=s;let f=Ko("yAxisLocation",null==n?void 0:n.yAxisLocation,o,"left",jo,!0);if("string"==typeof f)return f;e.yAxisLocation=f,p.bar.push(e)}for(let t of x){let e=new Il,n=r[t],a=ru(e),l=ru(n);for(let t of l)if(!a.includes(t))return i="'"+t+"' is not an available key",i;e.title=Jo(null==n?void 0:n.title,e.title);let o=eu("data",null==n?void 0:n.data);if("string"==typeof o)return o;e.data=o;let u=e.data.length,s=Ko("dataColor",null==n?void 0:n.dataColor,u,null,qo,!0);if("string"==typeof s)return s;e.dataColor=s;let f=Ko("dataName",null==n?void 0:n.dataName,u,"",null,!0);if("string"==typeof f)return f;e.dataName=f;let c=Ko("label",null==n?void 0:n.label,u,"",null,!0);if("string"==typeof c)return c;e.label=c,"number"==typeof(null==n?void 0:n.hideLabelLessThan)&&(e.hideLabelLessThan=n.hideLabelLessThan);let h=Ko("extLabel",null==n?void 0:n.extLabel,u,"",null,!0);if("string"==typeof h)return h;e.extLabel=h,"boolean"==typeof(null==n?void 0:n.showExtLabelOnlyIfNoLabel)&&(e.showExtLabelOnlyIfNoLabel=n.showExtLabelOnlyIfNoLabel),"number"==typeof(null==n?void 0:n.ratioInnerRadius)&&(e.ratioInnerRadius=n.ratioInnerRadius),"boolean"==typeof(null==n?void 0:n.showLegend)&&(e.showLegend=n.showLegend),e.legendPosition=Jo(null==n?void 0:n.legendPosition,"right");let d="horizontal";d="top"===e.legendPosition||"bottom"===e.legendPosition?"horizontal":"left"===e.legendPosition||"right"===e.legendPosition?"vertical":"horizontal",e.legendOrientation=Jo(null==n?void 0:n.legendOrientation,d),e.legendBgColor=Jo(null==n?void 0:n.legendBgColor,e.legendBgColor),e.legendBorderColor=Jo(null==n?void 0:n.legendBorderColor,e.legendBorderColor),p.pie.push(e)}for(let t of A){let e=new Yl,n=r[t],a=ru(e),l=ru(n);for(let t of l)if(!a.includes(t))return i="'"+t+"' is not an available key",i;e.template=Jo(null==n?void 0:n.template,e.template),e.style=Jo(null==n?void 0:n.style,e.style),p.summary.push(e)}for(let t of b){let e=new Pl,n=r[t],a=ru(e),l=ru(n);for(let t of l)if(!a.includes(t))return i="'"+t+"' is not an available key",i;e.mode=Jo(null==n?void 0:n.mode,e.mode);let o=tu("dataset",null==n?void 0:n.dataset);if("string"==typeof o)return o;if(0===o.length)for(let t of g)o.push(t.getId());e.dataset=o;let u=e.dataset.length;e.startWeekOn=Jo(null==n?void 0:n.startWeekOn,e.startWeekOn),"boolean"==typeof(null==n?void 0:n.showCircle)&&(e.showCircle=n.showCircle);let s=tu("threshold",null==n?void 0:n.threshold);if("string"==typeof s)return s;if(e.threshold=s,0===e.threshold.length)for(let t=0;t1))return i="Empty range is not allowed",i;{let t=u[0];if(t<0)return i="Negative range value is not allowed",i;for(let e=1;ee(this,void 0,void 0,(function*(){let n=null;l.queries.some((t=>{let e=t.getType();return t.getTarget(),e===Zi.Frontmatter||e===Zi.Tag||e===Zi.Wiki||e===Zi.WikiLink||e===Zi.WikiDisplay}))&&(n=this.app.metadataCache.getFileCache(t));let r=null;l.queries.some((t=>{let e=t.getType(),n=t.getTarget();return e===Zi.Tag||e===Zi.Text||e===Zi.dvField||e===Zi.Task||e===Zi.TaskDone||e===Zi.TaskNotDone||e===Zi.FileMeta&&("numWords"===n||"numChars"===n||"numSentences"===n)}))&&(r=yield this.app.vault.adapter.read(t.path));let a=new Map,i=!1;for(let e of l.xDataset)if(!a.has(e)){let o=window.moment("");if(-1===e)o=au(t,l);else{let a=l.queries[e];switch(a.getType()){case Zi.Frontmatter:o=iu(n,a,l);break;case Zi.Tag:o=ou(r,a,l);break;case Zi.Text:o=uu(r,a,l);break;case Zi.dvField:o=su(r,a,l);break;case Zi.FileMeta:o=fu(t,a,l);break;case Zi.Task:case Zi.TaskDone:case Zi.TaskNotDone:o=cu(r,a,l)}}o.isValid()?(null!==l.startDate&&ol.endDate&&(i=!0,s.fileOutOfDateRange++)):(i=!0,s.fileNotInFormat++),i||(s.gotAnyValidXValue||(s.gotAnyValidXValue=!0),a.set(e,Jl(o,l.dateFormat)),s.fileAvailable++,1==s.fileAvailable?(s.minDate=o.clone(),s.maxDate=o.clone()):(os.maxDate&&(s.maxDate=o.clone())))}if(i)return;const o=l.queries.filter((t=>t.getType()!==Zi.Table&&!t.usedAsXDataset)).map((i=>e(this,void 0,void 0,(function*(){if(n&&i.getType()===Zi.Tag){let t=function(t,e,n,r,a){let i=t.frontmatter,l=[];if(i&&i.tags){let t=0,o=!1;if(Array.isArray(i.tags))l=l.concat(i.tags);else if("string"==typeof i.tags){let t=i.tags.split(e.getSeparator(!0));for(let e of t){let t=e.trim();""!==t&&l.push(t)}}for(let i of l){if(i===e.getTarget())t+=n.constValue[e.getId()],o=!0,e.addNumTargets();else{if(!i.startsWith(e.getTarget()+"/"))continue;t+=n.constValue[e.getId()],o=!0,e.addNumTargets()}let l=null;return o&&(l=t),hu(r,a.get(n.xDataset[e.getId()]),e,l),!0}}return!1}(n,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=t)}if(n&&i.getType()===Zi.Frontmatter&&"tags"!==i.getTarget()){let t=function(t,e,n,r,a){let i=t.frontmatter;if(i){let t=eo(i,e.getTarget());if(t){let i=ao(t,n.textValueMap);if(null!==i.value)return i.type===Ki.Time&&(e.valueType=Ki.Time),e.addNumTargets(),hu(r,a.get(n.xDataset[e.getId()]),e,i.value),!0}else if(e.getParentTarget()&&eo(i,e.getParentTarget())){let t=eo(i,e.getParentTarget()),l=null;if(Array.isArray(t)?l=t.map((t=>t.toString())):"string"==typeof t&&(l=t.split(e.getSeparator())),l&&l.length>e.getAccessor()&&e.getAccessor()>=0){let t=ao(l[e.getAccessor()].trim(),n.textValueMap);if(null!==t.value)return t.type===Ki.Time&&(e.valueType=Ki.Time),e.addNumTargets(),hu(r,a.get(n.xDataset[e.getId()]),e,t.value),!0}}}return!1}(n,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=t)}if(n&&(i.getType()===Zi.Wiki||i.getType()===Zi.WikiLink||i.getType()===Zi.WikiDisplay)){let t=function(t,e,n,r,a){let i=t.links;if(!i)return!1;let l=e.getTarget(),o=e.getType(),u="",s=l;for(let t of i){if(!t)continue;let e="";o===Zi.Wiki?e=t.displayText?t.displayText:t.link:o===Zi.WikiLink?e=t.link:o===Zi.WikiDisplay?t.displayText&&(e=t.displayText):e=t.displayText?t.displayText:t.link,e=e.trim(),u+=e+"\n"}return du(u,s,e,r,a,n)}(n,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=t)}if(r&&i.getType()===Zi.Tag){let t=function(t,e,n,r,a){let i=e.getTarget();return e.getParentTarget()&&(i=e.getParentTarget()),i.length>1&&i.startsWith("#")&&(i=i.substring(1)),du(t,"(^|\\s)#"+i+"(\\/[\\w-]+)*(:(?[\\d\\.\\/-]*)[a-zA-Z]*)?([\\.!,\\?;~-]*)?(\\s|$)",e,r,a,n)}(r,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=t)}if(r&&i.getType()===Zi.Text){let t=function(t,e,n,r,a){return du(t,e.getTarget(),e,r,a,n)}(r,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=t)}if(i.getType()===Zi.FileMeta){let e=gu(t,r,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=e)}if(r&&i.getType()===Zi.dvField){let t=function(t,e,n,r,a){let i=e.getTarget();return e.getParentTarget()&&(i=e.getParentTarget()),i=i.replace("-","[\\s\\-]"),du(t,"(^| |\\t)\\*{0,2}"+i+"\\*{0,2}(::[ |\\t]*(?[\\d\\.\\/\\-\\w,@; \\t:]*))(\\r\\?\\n|\\r|$)",e,r,a,n)}(r,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=t)}if(r&&(i.getType()===Zi.Task||i.getType()===Zi.TaskDone||i.getType()===Zi.TaskNotDone)){let t=function(t,e,n,r,a){let i=e.getType(),l=e.getTarget();return l=i===Zi.Task?"\\[[\\sx]\\]\\s"+l:i===Zi.TaskDone?"\\[x\\]\\s"+l:i===Zi.TaskNotDone?"\\[\\s\\]\\s"+l:"\\[[\\sx]\\]\\s"+l,du(t,l,e,r,a,n)}(r,i,l,u,a);s.gotAnyValidYValue||(s.gotAnyValidYValue=t)}}))));yield Promise.all(o)}))));if(yield Promise.all(f),yield this.collectDataFromTable(u,l,s),s.errorMessage)return this.renderErrorMessage(s.errorMessage,a,r);let c="";if(s.minDate.isValid()&&s.maxDate.isValid()&&0!==s.fileAvailable&&s.gotAnyValidXValue||(c="No valid date as X value found in notes",s.fileOutOfDateRange>0&&(c+=`\n${s.fileOutOfDateRange} files are out of the date range.`),s.fileNotInFormat&&(c+=`\n${s.fileNotInFormat} files are not in the right format.`)),null===l.startDate&&null===l.endDate?(l.startDate=s.minDate.clone(),l.endDate=s.maxDate.clone()):null!==l.startDate&&null===l.endDate?l.startDates.minDate?l.startDate=s.minDate.clone():c="Invalid date range":(l.startDates.maxDate&&l.endDate>s.maxDate)&&(c="Invalid date range"),c)return this.renderErrorMessage(c,a,r);if(!s.gotAnyValidYValue)return this.renderErrorMessage("No valid Y value found in notes",a,r);let h=new Sl(l.startDate,l.endDate);for(let t of l.queries){let e=h.createDataset(t,l);e.addNumTargets(t.getNumTargets());for(let n=l.startDate.clone();n<=l.endDate;n.add(1,"days"))if(u.has(Jl(n,l.dateFormat))){let r=u.get(Jl(n,l.dateFormat)).filter((function(e){return e.query.equalTo(t)}));if(r.length>0){let t=null;for(let e=0;et.getType()===Zi.Table)),i=[],l=!1;for(let n of e){let e=n.getParentTarget(),r=this.app.vault.getAbstractFileByPath(t.normalizePath(e+".md"));if(!(r&&r instanceof t.TFile)){l=!0;break}let a=n.getAccessor(),o=n.usedAsXDataset,u=i.find((t=>t.filePath===e&&t.tableIndex===a));if(u)o?u.xDataset=n:u.yDatasets.push(n);else{let t=new $l(e,a);o?t.xDataset=n:t.yDatasets.push(n),i.push(t)}}if(l)a.errorMessage="File containing tables not found";else for(let e of i){let i=e.xDataset;if(!i)continue;let l=e.yDatasets,o=i.getParentTarget(),u=i.getAccessor(),s="";o+=".md";let f=this.app.vault.getAbstractFileByPath(t.normalizePath(o));if(!(f&&f instanceof t.TFile))continue;{a.fileAvailable++;let t,e=yield this.app.vault.adapter.read(f.path),n=new RegExp("((\\r?\\n){2}|^)([^\\r\\n]*\\|[^\\r\\n]*(\\r?\\n)?)+(?=(\\r?\\n){2}|$)","gm"),r=0;for(;t=n.exec(e);){if(r===u){s=t[0];break}r++}}let c=s.split(/\r?\n/);c=c.filter((t=>""!==t));let h=0,d=0;if(c.length>=2){let t=c.shift().trim();t=no(t,"|"),h=t.split("|").length;let e=c.shift().trim();e=no(e,"|");let n=e.split("|");for(let t of n)if(!t.includes("-"))break;d=c.length}if(0==d)continue;let g=i.getAccessor(1);if(g>=h)continue;let p=[];for(let t of c){let e=no(t.trim(),"|").split("|");if(ga.maxDate&&(a.maxDate=t.clone())):(a.minDate=t.clone(),a.maxDate=t.clone())):p.push(null)}else p.push(null)}if(p.every((t=>null===t)))return void(a.errorMessage="No valid date as X value found in table");a.gotAnyValidXValue||(a.gotAnyValidXValue=!0);for(let t of l){let e=t.getAccessor(1);if(e>=h)continue;let i=0;for(let l of c){let o=no(l.trim(),"|").split("|");if(et.getAccessor(2)&&t.getAccessor(2)>=0){let e=null,o=ao(l[t.getAccessor(2)].trim(),r.textValueMap);null!==o.value&&(o.type===Ki.Time&&(t.valueType=Ki.Time),e=o.value,iSolberg, partnered with his fourth different co-driver of the season in Elliott Edmondson, finished six of the seven stages with a top-five time, and three of the tests with the fourth-quickest time.
    As a result, the 20-year-old ...Keep reading", "items": [ + { + "title": "Loeb: Monte Carlo win over Ogier \"one of my best memories\"", + "description": "The nine-time world champion came through an epic four-day head-to-head fight with eight-time champion Ogier to claim his 80th WRC win, arriving a decade after winning his last championship.
    Loeb, driving for M-Sport Ford in one-event deal, was fast from the outset in the new Rally1 hybrid Puma, pushing Toyota’s Ogier hard.
    The 47-year-old took the lead on Friday after winning four of the ...Keep reading", + "content": "The nine-time world champion came through an epic four-day head-to-head fight with eight-time champion Ogier to claim his 80th WRC win, arriving a decade after winning his last championship.
    Loeb, driving for M-Sport Ford in one-event deal, was fast from the outset in the new Rally1 hybrid Puma, pushing Toyota’s Ogier hard.
    The 47-year-old took the lead on Friday after winning four of the ...Keep reading", + "category": "WRC", + "link": "https://www.autosport.com/wrc/news/loeb-monte-carlo-win-over-ogier-one-of-my-best-memories/7538548/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:08:51 +0000", + "enclosure": "https://cdn-1.motorsport.com/images/amp/Y99AyZxY/s6/sebastien-ogier-toyota-gazoo-r.jpg", + "enclosureType": "image/jpeg", + "image": "https://cdn-1.motorsport.com/images/amp/Y99AyZxY/s6/sebastien-ogier-toyota-gazoo-r.jpg", + "id": "", + "language": "", + "folder": "00.03 News/Sport EN", + "feed": "Autosport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "426160c2c9bc3b2b77b5184178017287", + "highlights": [] + }, + { + "title": "How Jackson ended 2021 as the club racing king", + "description": "Cam Jackson could not have gone any closer to topping the Autosport National Driver Rankings in 2020. He headed into the final event of the club season with a two-win advantage over rival Gary Prebble. But Prebble triumphed in both Hot Hatch races at the 750 Motor Club finale, bringing the duo level on 15 victories and Prebble top spot because the average grid size for his wins was just 0.6 cars ...Keep reading", + "content": "Cam Jackson could not have gone any closer to topping the Autosport National Driver Rankings in 2020. He headed into the final event of the club season with a two-win advantage over rival Gary Prebble. But Prebble triumphed in both Hot Hatch races at the 750 Motor Club finale, bringing the duo level on 15 victories and Prebble top spot because the average grid size for his wins was just 0.6 cars ...Keep reading", + "category": "National", + "link": "https://www.autosport.com/national/news/how-jackson-ended-2021-as-the-club-racing-king/7472681/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:00:11 +0000", + "enclosure": "https://cdn-1.motorsport.com/images/amp/YMdnoaL2/s6/cam-jackson-wins-the-classic-f.jpg", + "enclosureType": "image/jpeg", + "image": "https://cdn-1.motorsport.com/images/amp/YMdnoaL2/s6/cam-jackson-wins-the-classic-f.jpg", + "id": "", + "language": "", + "folder": "00.03 News/Sport EN", + "feed": "Autosport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "97d71b59a08f108a920a2219af70c86d", + "highlights": [] + }, + { + "title": "Top 10 Mercedes grand prix drivers: Hamilton, Fangio, Moss and more", + "description": "That’s why, in the latest list of our ‘Top 10 drivers’ series, we’ve extended the remit beyond F1 to include all grand prix racing, which kicked off with the 1906 French GP near Le Mans. The importance of events, many of which were standalone or part of the European Championship, varied but the top ones were akin to today’s F1 championship races.
    Mercedes has been in and out of ...Keep reading", + "content": "That’s why, in the latest list of our ‘Top 10 drivers’ series, we’ve extended the remit beyond F1 to include all grand prix racing, which kicked off with the 1906 French GP near Le Mans. The importance of events, many of which were standalone or part of the European Championship, varied but the top ones were akin to today’s F1 championship races.
    Mercedes has been in and out of ...Keep reading", + "category": "Formula 1", + "link": "https://www.autosport.com/f1/news/top-10-mercedes-grand-prix-drivers-hamilton-fangio-moss-and-more/7536736/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:35:18 +0000", + "enclosure": "https://cdn-1.motorsport.com/images/amp/0JBkxGR0/s6/podium-race-winner-nico-rosber.jpg", + "enclosureType": "image/jpeg", + "image": "https://cdn-1.motorsport.com/images/amp/0JBkxGR0/s6/podium-race-winner-nico-rosber.jpg", + "id": "", + "language": "", + "folder": "00.03 News/Sport EN", + "feed": "Autosport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4f5943c991520a197bf5201f7d216821", + "highlights": [] + }, + { + "title": "Why Steiner let Haas F1 rookies \"learn the hard way\" in 2021", + "description": "Schumacher and Mazepin both graduated to F1 last year from Formula 2, joining Haas as part of an all-new line-up for the American team.
    Haas treated 2021 as a transition year, opting against any development of its car ahead of the campaign so it could divert all of its resources to the new regulations in 2022.
    It meant the team finished last in the constructors' championship, failing to ...Keep reading", + "content": "Schumacher and Mazepin both graduated to F1 last year from Formula 2, joining Haas as part of an all-new line-up for the American team.
    Haas treated 2021 as a transition year, opting against any development of its car ahead of the campaign so it could divert all of its resources to the new regulations in 2022.
    It meant the team finished last in the constructors' championship, failing to ...Keep reading", + "category": "Formula 1", + "link": "https://www.autosport.com/f1/news/why-steiner-let-haas-f1-rookies-learn-the-hard-way-in-2021/7529524/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:30:08 +0000", + "enclosure": "https://cdn-1.motorsport.com/images/amp/254A7ak0/s6/nikita-mazepin-haas-vf-21-mick.jpg", + "enclosureType": "image/jpeg", + "image": "https://cdn-1.motorsport.com/images/amp/254A7ak0/s6/nikita-mazepin-haas-vf-21-mick.jpg", + "id": "", + "language": "", + "folder": "00.03 News/Sport EN", + "feed": "Autosport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "c549b7465600c116986f2be8574a3a57", + "highlights": [] + }, { "title": "WRC Monte Carlo: Loeb beats Ogier to take eighth Monte win in epic battle", "description": "The two WRC legends waged a rally-long battle for victory with the lead changing hands across four brutal days of competition as the WRC ushered in its new Rally1 hybrid era.
    Ultimately the rally was decided in a final stage shootout, after Loeb was handed a 9.5s lead when Toyota’s Ogier suffered a front-left puncture on the penultimate test.
    Loeb and co-driver Isabelle Galmiche kept their ...Keep reading", @@ -1155,94 +1243,6 @@ "hash": "2253a8843ada1489c5c18a426122f45e", "highlights": [] }, - { - "title": "Gordon Shedden close to Dynamics stay for 2022 BTCC season", - "description": "The 42-year-old Scot returned to the BTCC last year following three years out of the series, which included a two-season stint in the World Touring Car Cup.
    Shedden, who had never previously raced the FK8-model Honda Civic Type R, took until October to score a victory on his return, but his brace of wins at Donington Park was key to a late surge that promoted him to sixth in the ...Keep reading", - "content": "The 42-year-old Scot returned to the BTCC last year following three years out of the series, which included a two-season stint in the World Touring Car Cup.
    Shedden, who had never previously raced the FK8-model Honda Civic Type R, took until October to score a victory on his return, but his brace of wins at Donington Park was key to a late surge that promoted him to sixth in the ...Keep reading", - "category": "BTCC", - "link": "https://www.autosport.com/btcc/news/gordon-shedden-close-to-dynamics-stay-for-2022-btcc-season/7450490/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", - "creator": "", - "pubDate": "Thu, 20 Jan 2022 15:43:03 +0000", - "enclosure": "https://cdn-1.motorsport.com/images/amp/6O1neRX2/s6/shedden-brands-hatch-btcc-jep-.jpg", - "enclosureType": "image/jpeg", - "image": "https://cdn-1.motorsport.com/images/amp/6O1neRX2/s6/shedden-brands-hatch-btcc-jep-.jpg", - "id": "", - "language": "", - "folder": "00.03 News/Sport EN", - "feed": "Autosport", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "7a28026848e59b5c5e978ab02310019a", - "highlights": [] - }, - { - "title": "Autosport journalist Luke Smith wins Motorsport UK award", - "description": "Luke is the seventh winner in a row to pick up the Young Journalist award while employed at Autosport, succeeding last year’s winner grand prix editor Alex Kalinauckas, with Matt Kew, James Newbold, Stephen Lickorish, Scott Mitchell and Jack Benyon completing that sequence.
    Luke scooped the award for his extensive and in-depth coverage of F1. The judging panel highlighted his handling of the ...Keep reading", - "content": "Luke is the seventh winner in a row to pick up the Young Journalist award while employed at Autosport, succeeding last year’s winner grand prix editor Alex Kalinauckas, with Matt Kew, James Newbold, Stephen Lickorish, Scott Mitchell and Jack Benyon completing that sequence.
    Luke scooped the award for his extensive and in-depth coverage of F1. The judging panel highlighted his handling of the ...Keep reading", - "category": "General", - "link": "https://www.autosport.com/general/news/autosport-journalist-luke-smith-wins-motorsport-uk-award/7450001/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", - "creator": "", - "pubDate": "Thu, 20 Jan 2022 15:12:58 +0000", - "enclosure": "https://cdn-1.motorsport.com/images/amp/6AEJjnv6/s6/luke-smith-pierre-gasly-toro-r.jpg", - "enclosureType": "image/jpeg", - "image": "https://cdn-1.motorsport.com/images/amp/6AEJjnv6/s6/luke-smith-pierre-gasly-toro-r.jpg", - "id": "", - "language": "", - "folder": "00.03 News/Sport EN", - "feed": "Autosport", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "805fbac1e02fe757ca80e40fb354e461", - "highlights": [] - }, - { - "title": "Kirkwood: Pressure reduced at Foyt for rookie IndyCar season", - "description": "Kirkwood arrives in IndyCar with a phenomenally strong reputation from Road to Indy’s junior open-wheel categories, the first driver to claim the championship in USF2000, Indy Pro 2000 and Indy Lights.
    However, Andretti Autosport, with whom he raced in Indy Lights, were unable to create a slot for him in IndyCar, after Michael Andretti’s Formula 1 plans with Alfa Romeo fell through. It ...Keep reading", - "content": "Kirkwood arrives in IndyCar with a phenomenally strong reputation from Road to Indy’s junior open-wheel categories, the first driver to claim the championship in USF2000, Indy Pro 2000 and Indy Lights.
    However, Andretti Autosport, with whom he raced in Indy Lights, were unable to create a slot for him in IndyCar, after Michael Andretti’s Formula 1 plans with Alfa Romeo fell through. It ...Keep reading", - "category": "IndyCar", - "link": "https://www.autosport.com/indycar/news/kirkwood-pressure-reduced-at-foyt-for-rookie-indycar-season/7448854/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", - "creator": "", - "pubDate": "Thu, 20 Jan 2022 14:22:24 +0000", - "enclosure": "https://cdn-1.motorsport.com/images/amp/2jXZVPE6/s6/indycar-indy-november-testing--2.jpg", - "enclosureType": "image/jpeg", - "image": "https://cdn-1.motorsport.com/images/amp/2jXZVPE6/s6/indycar-indy-november-testing--2.jpg", - "id": "", - "language": "", - "folder": "00.03 News/Sport EN", - "feed": "Autosport", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "60a1cac1330d41a394b519495c82ce4d", - "highlights": [] - }, - { - "title": "Mazepin aims to improve bonding with wider Haas F1 team in 2022", - "description": "The Russian had a challenging rookie campaign last year, as he battled with an uncompetitive car and endured his fair share of frustrating moments as team-mate to Mick Schumacher.
    But determined to work out how he can improve, Mazepin believes that working harder on his relationship with more team members could help pay dividends.
    Speaking exclusively to Autosport, Mazepin said: “There's ...Keep reading", - "content": "The Russian had a challenging rookie campaign last year, as he battled with an uncompetitive car and endured his fair share of frustrating moments as team-mate to Mick Schumacher.
    But determined to work out how he can improve, Mazepin believes that working harder on his relationship with more team members could help pay dividends.
    Speaking exclusively to Autosport, Mazepin said: “There's ...Keep reading", - "category": "Formula 1", - "link": "https://www.autosport.com/f1/news/mazepin-aims-to-improve-personal-bonding-in-2022/7448193/?utm_source=RSS&utm_medium=referral&utm_campaign=RSS-ALL&utm_term=News&utm_content=uk", - "creator": "", - "pubDate": "Thu, 20 Jan 2022 13:53:12 +0000", - "enclosure": "https://cdn-1.motorsport.com/images/amp/2GznNpr0/s6/formula-1-brazilian-gp-2021-ni-2.jpg", - "enclosureType": "image/jpeg", - "image": "https://cdn-1.motorsport.com/images/amp/2GznNpr0/s6/formula-1-brazilian-gp-2021-ni-2.jpg", - "id": "", - "language": "", - "folder": "00.03 News/Sport EN", - "feed": "Autosport", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "48af407d613780c28842ebbb137b6ef9", - "highlights": [] - }, { "title": "Solberg surprised to be fighting for WRC top five at Rally Monza", "description": "The son of 2003 WRC champion Petter Solberg delivered one of his best showings to date in a Hyundai i20 WRC car to end Friday sitting fifth of the nine WRC runners.
    Solberg, partnered with his fourth different co-driver of the season in Elliott Edmondson, finished six of the seven stages with a top-five time, and three of the tests with the fourth-quickest time.
    As a result, the 20-year-old ...Keep reading", @@ -2056,6 +2056,50 @@ "image": null, "description": "Kinja RSS", "items": [ + { + "title": "Did Tennis Star Novak Djokovic Hinder Europe's EV Battery Supply?", + "description": "

    Professional tennis has a strong commercial association with the automobile industry. Many famous players sign lucrative multi-year deals to promote and appear in advertisements for luxury car brands. Most notably, Roger Federer has a long-running relationship with Mercedes-Benz. The Swiss 20-time Grand Slam…

    Read more...

    ", + "content": "

    Professional tennis has a strong commercial association with the automobile industry. Many famous players sign lucrative multi-year deals to promote and appear in advertisements for luxury car brands. Most notably, Roger Federer has a long-running relationship with Mercedes-Benz. The Swiss 20-time Grand Slam…

    Read more...

    ", + "category": "novak djokovic", + "link": "https://jalopnik.com/did-tennis-star-novak-djokovic-hinder-europes-ev-batter-1848406957", + "creator": "Ryan Erik King", + "pubDate": "Sun, 23 Jan 2022 16:00:00 GMT", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/Sport EN", + "feed": "Jalopnik", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0f57243e819fc6879889e2a90e118319", + "highlights": [] + }, + { + "title": "Sébastien Loeb Wins Rallye Monte Carlo, His 80th WRC Win", + "description": "

    It would be more challenging to write a better story than what took place over the past four days in southeastern France. The 90th Rallye Monte Carlo, the opening round of the 50th FIA World Rally Championship season, featured two of rallying all-time greatest drivers in an epic duel that wasn’t decided until the…

    Read more...

    ", + "content": "

    It would be more challenging to write a better story than what took place over the past four days in southeastern France. The 90th Rallye Monte Carlo, the opening round of the 50th FIA World Rally Championship season, featured two of rallying all-time greatest drivers in an epic duel that wasn’t decided until the…

    Read more...

    ", + "category": "sebastien loeb", + "link": "https://jalopnik.com/sebastien-loeb-wins-rallye-monte-carlo-his-80th-wrc-wi-1848407039", + "creator": "Ryan Erik King", + "pubDate": "Sun, 23 Jan 2022 14:30:00 GMT", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/Sport EN", + "feed": "Jalopnik", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "58afed2cbf8ad35e5758502e67a85173", + "highlights": [] + }, { "title": "Formula 1 Bans Military Flyovers, But Not In Britain", "description": "

    This week, Formula One informed race promoters via email that military flyovers will no longer be allowed to take place during Grand Prix weekends. But, there seems to be an exception to still allow flyovers in some form.

    Read more...

    ", @@ -2562,50 +2606,6 @@ "hash": "ee01445a61eeac57b86e0463652142c3", "highlights": [] }, - { - "title": "Intel's Grand Solution For The Chip Shortage Is A Big Plant In Ohio", - "description": "

    Intel has big plans for Ohio, lawmakers want to know what Tesla’s plans are in one of China’s most embattled regions and Renault is ditching the old plan. All that and more in this Friday edition of The Morning Shift for January 21, 2022.

    Read more...

    ", - "content": "

    Intel has big plans for Ohio, lawmakers want to know what Tesla’s plans are in one of China’s most embattled regions and Renault is ditching the old plan. All that and more in this Friday edition of The Morning Shift for January 21, 2022.

    Read more...

    ", - "category": "intel", - "link": "https://jalopnik.com/intels-chip-shortage-solution-is-a-big-plant-in-ohio-1848395014", - "creator": "Adam Ismail", - "pubDate": "Fri, 21 Jan 2022 15:13:00 GMT", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/Sport EN", - "feed": "Jalopnik", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "8e80baa7cbede8d63531110eb91b769c", - "highlights": [] - }, - { - "title": "Jan. 6 Rioter Arrested On Suspected DWI With AR-15 In Car", - "description": "

    If you’re on pretrial release, suspected of assaulting two officers at the U.S. capitol on January 6, you should probably try to stay out of trouble altogether. One man decided to go big or go home with violating his pretrial requirements and now, instead of going home, he’s going back to jail.

    Read more...

    ", - "content": "

    If you’re on pretrial release, suspected of assaulting two officers at the U.S. capitol on January 6, you should probably try to stay out of trouble altogether. One man decided to go big or go home with violating his pretrial requirements and now, instead of going home, he’s going back to jail.

    Read more...

    ", - "category": "ar 15", - "link": "https://jalopnik.com/jan-6-rioter-arrested-on-suspected-dwi-with-ar-15-in-c-1848398178", - "creator": "Erin Marquis", - "pubDate": "Fri, 21 Jan 2022 15:00:00 GMT", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/Sport EN", - "feed": "Jalopnik", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "9736e9d9d54a78306350b736fc929e68", - "highlights": [] - }, { "title": "The Founder Of TruCar Wants To Make Getting A Tesla Quick And Easy Through New Subscription Service", "description": "

    Automakers have largely thrown in the towel on vehicle subscriptions. The all-in-one bundle of car payment, maintenance, and insurance wasn’t as appealing to consumers as automakers thought. That hasn’t stopped some independent companies from trying though. Now, the founder of TruCar is trying his hand in the car…

    Read more...

    ", @@ -3042,13 +3042,13 @@ "description": "Fantasy Sports from RotoWire.com", "items": [ { - "title": "Lauri Markkanen: Sprains right ankle", - "description": "Markkanen exited Saturday's game against the Thunder with a right ankle sprain and will not return, Serena Winters of Bally Sports Cleveland reports.\n\n Visit RotoWire.com for more analysis on this update.", - "content": "Markkanen exited Saturday's game against the Thunder with a right ankle sprain and will not return, Serena Winters of Bally Sports Cleveland reports.\n\n Visit RotoWire.com for more analysis on this update.", + "title": "Cam Reddish: Cleared for Knicks debut", + "description": "Reddish (ankle) is available for Sunday's game against the Clippers.\n\n Visit RotoWire.com for more analysis on this update.", + "content": "Reddish (ankle) is available for Sunday's game against the Clippers.\n\n Visit RotoWire.com for more analysis on this update.", "category": "", - "link": "https://rotowire.com/basketball/player.php?id=4119", + "link": "https://rotowire.com/basketball/player.php?id=4772", "creator": "", - "pubDate": "Sat, 22 Jan 2022 6:26:00 PM PST", + "pubDate": "Sun, 23 Jan 2022 8:27:00 AM PST", "enclosure": "", "enclosureType": "", "image": "", @@ -3060,17 +3060,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "6d0f0285f009fa8a78deb6ec3d68e48c", + "hash": "91afd4f8db1e9afc064623db36fafc14", "highlights": [] }, { - "title": "Rudy Gobert: Questionable vs. Warriors", - "description": "Gobert (ankle) is questionable for Sunday's matchup against the Warriors.\n\n Visit RotoWire.com for more analysis on this update.", - "content": "Gobert (ankle) is questionable for Sunday's matchup against the Warriors.\n\n Visit RotoWire.com for more analysis on this update.", + "title": "Kemba Walker: Won't play Sunday", + "description": "Walker (knee) is unavailable for Sunday's game against the Clippers.\n\n Visit RotoWire.com for more analysis on this update.", + "content": "Walker (knee) is unavailable for Sunday's game against the Clippers.\n\n Visit RotoWire.com for more analysis on this update.", "category": "", - "link": "https://rotowire.com/basketball/player.php?id=3440", + "link": "https://rotowire.com/basketball/player.php?id=3189", "creator": "", - "pubDate": "Sat, 22 Jan 2022 5:53:00 PM PST", + "pubDate": "Sun, 23 Jan 2022 8:24:00 AM PST", "enclosure": "", "enclosureType": "", "image": "", @@ -3082,17 +3082,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "6e1ecf92d4542e9b547733053b4876c0", + "hash": "1f1d92f10c7bf9a0e075d29d0aad1229", "highlights": [] }, { - "title": "Donovan Mitchell: Still out Sunday", - "description": "Mitchell (concussion) is out Sunday against the Warriors, Adrian Wojnarowski of ESPN reports.\n\n Visit RotoWire.com for more analysis on this update.", - "content": "Mitchell (concussion) is out Sunday against the Warriors, Adrian Wojnarowski of ESPN reports.\n\n Visit RotoWire.com for more analysis on this update.", + "title": "Marcus Smart: Good to go Sunday", + "description": "Smart (conditioning) is listed as available for Sunday's game against the Wizards.\n\n Visit RotoWire.com for more analysis on this update.", + "content": "Smart (conditioning) is listed as available for Sunday's game against the Wizards.\n\n Visit RotoWire.com for more analysis on this update.", "category": "", - "link": "https://rotowire.com/basketball/player.php?id=4166", + "link": "https://rotowire.com/basketball/player.php?id=3575", "creator": "", - "pubDate": "Sat, 22 Jan 2022 5:47:00 PM PST", + "pubDate": "Sun, 23 Jan 2022 8:22:00 AM PST", "enclosure": "", "enclosureType": "", "image": "", @@ -3104,17 +3104,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "f6de63488f23cc58c1382d868b7697b4", + "hash": "37bcfc673a140a42b7e86714ee37f87a", "highlights": [] }, { - "title": "Malcolm Brogdon: Shut down for 10 days", - "description": "Brogdon (Achilles) is being shut down for 10 days, Duane Rankin of The Arizona Republic reports.\n\n Visit RotoWire.com for more analysis on this update.", - "content": "Brogdon (Achilles) is being shut down for 10 days, Duane Rankin of The Arizona Republic reports.\n\n Visit RotoWire.com for more analysis on this update.", + "title": "Lauri Markkanen: X-rays return negative", + "description": "Markkanen had X-rays on his right ankle sprain come back negative after leaving Saturday's game against the Thunder, Chris Fedor of The Cleveland Plain Dealer reports.\n\n Visit RotoWire.com for more analysis on this update.", + "content": "Markkanen had X-rays on his right ankle sprain come back negative after leaving Saturday's game against the Thunder, Chris Fedor of The Cleveland Plain Dealer reports.\n\n Visit RotoWire.com for more analysis on this update.", "category": "", - "link": "https://rotowire.com/basketball/player.php?id=3898", + "link": "https://rotowire.com/basketball/player.php?id=4119", "creator": "", - "pubDate": "Sat, 22 Jan 2022 4:47:00 PM PST", + "pubDate": "Sun, 23 Jan 2022 7:44:00 AM PST", "enclosure": "", "enclosureType": "", "image": "", @@ -3126,17 +3126,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "cba296bd853e1c31d638037864d6e802", + "hash": "864c2641c45f049205e04b388e50fdde", "highlights": [] }, { - "title": "Caris LeVert: Out Saturday", - "description": "LeVert (calf) is out Saturday against the Suns, Duane Rankin of The Arizona Republic reports.\n\n Visit RotoWire.com for more analysis on this update.", - "content": "LeVert (calf) is out Saturday against the Suns, Duane Rankin of The Arizona Republic reports.\n\n Visit RotoWire.com for more analysis on this update.", + "title": "Lauri Markkanen: Sprains right ankle", + "description": "Markkanen exited Saturday's game against the Thunder with a right ankle sprain and will not return, Serena Winters of Bally Sports Cleveland reports.\n\n Visit RotoWire.com for more analysis on this update.", + "content": "Markkanen exited Saturday's game against the Thunder with a right ankle sprain and will not return, Serena Winters of Bally Sports Cleveland reports.\n\n Visit RotoWire.com for more analysis on this update.", "category": "", - "link": "https://rotowire.com/basketball/player.php?id=3914", + "link": "https://rotowire.com/basketball/player.php?id=4119", "creator": "", - "pubDate": "Sat, 22 Jan 2022 4:45:00 PM PST", + "pubDate": "Sat, 22 Jan 2022 6:26:00 PM PST", "enclosure": "", "enclosureType": "", "image": "", @@ -3148,17 +3148,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "2b43fd21c999784e3204f3e7c8c22ab3", + "hash": "6d0f0285f009fa8a78deb6ec3d68e48c", "highlights": [] }, { - "title": "LeBron James: Probable once again", - "description": "James (abdomen) is probable for Sunday's game against the Heat, Ryan Ward of LakersNation.com reports.\n\n Visit RotoWire.com for more analysis on this update.", - "content": "James (abdomen) is probable for Sunday's game against the Heat, Ryan Ward of LakersNation.com reports.\n\n Visit RotoWire.com for more analysis on this update.", + "title": "Donovan Mitchell: Still out Sunday", + "description": "Mitchell (concussion) is out Sunday against the Warriors, Adrian Wojnarowski of ESPN reports.\n\n Visit RotoWire.com for more analysis on this update.", + "content": "Mitchell (concussion) is out Sunday against the Warriors, Adrian Wojnarowski of ESPN reports.\n\n Visit RotoWire.com for more analysis on this update.", "category": "", - "link": "https://rotowire.com/basketball/player.php?id=2344", + "link": "https://rotowire.com/basketball/player.php?id=4166", "creator": "", - "pubDate": "Sat, 22 Jan 2022 1:57:00 PM PST", + "pubDate": "Sat, 22 Jan 2022 5:47:00 PM PST", "enclosure": "", "enclosureType": "", "image": "", @@ -3170,7 +3170,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "69b26457822a6ad205413505589904e2", + "hash": "f6de63488f23cc58c1382d868b7697b4", "highlights": [] }, { @@ -16262,6 +16262,72 @@ "image": "https://www.lerugbynistere.fr/imgs/design/logo-rugbynistere-default.png", "description": "Retrouvez ici nos derniers articles", "items": [ + { + "title": "Équipe de France. Neuf changements dans la liste du XV de France, Coly appelé !", + "description": "Selon la FFR, 10 joueurs seraient contaminés par le covid parmi les 42 appelés en sélection. Les changements ont été annoncés.", + "content": "Ce dimanche 23 janvier, le Covid continue sa course et contamine un sixième des appelés dans le XV de France. Dans un communiqué, la FFR annonce plusieurs roattions dans l’effectif. Ce sont Romain Ntamack, Antoine Dupont, François Cros, Gaëtan Barlot, Anthony Jelonch, Cyril Baille, et Bernard Le Roux qui ne pourront malheureusement pas se présenter au premier rassemblement des Bleus la semaine prochaine. Cameron Woki et Uini Atonio sont également absents, mais pour cause de blessure. L’incertitude a également plané à un moment sur la présence ou non de Sekou Macalou avec le groupe. Le troisième ligne parisien ayant été enlevé du groupe du Stade Français qui devait affronter le Connacht. Cependant, et selon Rugbyrama, son absence serait due à un écart de comportement et non à une blessure. Il sera donc bien présent avec les Bleus pour préparer le Tournoi.\n\nEn raison de blessures et de cas de #COVID19, le staff du #XVdeFrance a du procéder à 10 changements dans la liste des 42 joueurs, pour préparer le @SixNationsRugby à partir d'aujourd'hui à Aubagne.Voici donc la nouvelle liste des 42. pic.twitter.com/a5ysLw0yDZ\n— France Rugby (@FranceRugby) January 23, 2022\n\nPour l’occasion, neuf joueurs ont été appelés pour préparer au mieux le tournoi. Parmi les néo-convoqués, on retrouve : Paul Boudehent, Thomas Lavault, Jérôme Rey et Léo Coly. Le demi de mêlée de Mont-de-Marsan connaîtra donc les joies de porter la chasuble Bleu, à l’entraînement, pour la première fois. Celui qui n’a jamais joué en Top 14 avait déjà été appelé avec les Babaas à l’occasion du match face au Tonga. Des joueurs plus familiers avec le maillot frappé du coq ont été appelés. Ils sont cinq à être présent en ayant déjà connu la sélection. Il s’agit de Yacouba Camara, Swan Rebbadj, Pierre Bourgarit, Dorian Aldegheri et Anthony Bouthier.RUGBY. 6 NATIONS. La France est-elle la nation qui fait le plus confiance à ses joueurs ?", + "category": "", + "link": "https://www.lerugbynistere.fr/news/equipe-de-france-neuf-changements-dans-la-liste-du-xv-de-france-coly-appele-2301221701.php", + "creator": "Erwan Harzic", + "pubDate": "2022-01-23 17:02:00", + "enclosure": "https://www.lerugbynistere.fr/photos/coly-bouthier-23-01-22-6745.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.lerugbynistere.fr/photos/coly-bouthier-23-01-22-6745.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "Le Rugbynistere", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "66efa262fdafbb78825890e7b2bbb666", + "highlights": [] + }, + { + "title": "RUGBY. L'Angleterre fait venir un nouveau membre de son staff de… Norvège !", + "description": "Le manager du XV de la Rose a fait venir un nouveau spécialiste lié à la préparation mentale et à la communication au sein du staff.", + "content": "On le sait, Eddie Jones aime innover. Mais cette dernière nouvelle, on ne l’attendait pas. Dans un article paru le 22 janvier, le site anglophone RugbyPass nous apprend que le technicien a fait venir un nouveau spécialiste de Norvège. Tout droit venu du cercle polaire, il aidera la sélection de sa Majesté à bien avancer vers la première rencontre face à l’Écosse. Le Dr Nashater Deu Solheim est une spécialiste norvégienne de la persuasion et de l'influence. Elle aura pour but de préparer mentalement Marcus Smith et ses coéquipiers, mais pas seulement.Sélectionneur de la Géorgie, coach personnel, c'est quoi la suite pour Eddie Jones ?\nEddie Jones a expliqué selon Rugbypass les raisons précises de sa venue dans le groupe. Il dit : “Nashater Deu Solheim nous aide à améliorer nos capacités de communication, non seulement en tant qu'équipe d'entraîneurs, mais aussi en termes de communication avec les joueurs.” Il évoque également des soucis d’efficacité et les difficultés que peuvent amener un groupe peu soudé. Il complète : “La partie du rugby où vous pouvez en avoir le plus pour votre argent, je pense, consiste à créer le bon état d'esprit pour votre équipe.”6 Nations. Angleterre. Farrell de retour et capitaine, Tuilagi et Ford absents\nPlus spécifiquement, l’ancien coach du Japon en a profité pour mettre en avant l’intérêt du mental dans un rugby moderne où tout est de plus en plus calculé et contrôlé. Il décrit la préparation physique et mentale “presque comme deux extrémités différentes de la préparation au rugby, car il est très difficile d'obtenir des avantages directs dans le jeu aujourd'hui.” Il complète : “Vous cherchez à savoir où les données peuvent vous montrer pour être plus spécifique dans les domaines que vous cherchez à prioriser dans votre jeu et vous cherchez également à travailler sur l'état d'esprit des joueurs.”", + "category": "", + "link": "https://www.lerugbynistere.fr/news/rugby-langleterre-fait-venir-un-nouveau-membre-de-son-staff-de-norvege-2301221630.php", + "creator": "Erwan Harzic", + "pubDate": "2022-01-23 16:32:00", + "enclosure": "https://www.lerugbynistere.fr/photos/eddie-jones-23-01-22-3119.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.lerugbynistere.fr/photos/eddie-jones-23-01-22-3119.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "Le Rugbynistere", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "459f24ef587ed98f01dc05facb148f20", + "highlights": [] + }, + { + "title": "VIDÉO. Le magicien Quade Cooper régale (encore) avec une chistera et un essai", + "description": "L’ouvreur des Wallabies, Quade Cooper, a encore une fois fait étalage de son talent dans un match de seconde division japonaise.", + "content": "Il a 33 ans, mais il joue encore avec l’insouciance d’un espoir à peine arrivé sur les prairies du haut-niveau. Quade Cooper a offert une séquence de grande classe devant les presque 2 000 supporters de son club basé à Hanazono, au Japon. Une terre historique du rugby nippon qui accueille donc le club local des Liners. Une équipe bien fournie, car alignant une des charnières les plus marquantes de cette dernière décennie : la paire Genia - Cooper. L’ancien duo maître du jeu des Wallabies fait des ravages de l’autre côté du globe. À l’occasion du match largement gagné par son équipe (62 à 10), l’ouvreur a délivré une belle chistera et a conclu la séquence avec un essai.\n\n\n\n\n\n\n\n\n\n\n\n\nVoir cette publication sur Instagram\n\nUne publication partagée par Quade Cooper (@quadecooper)\n\n\n\nAlors que Will Genia marquait quelques minutes avant, l’équipe des Liners se retrouvent à l’entrée de sa moitié de terrain. À la sortie d’une mêlée, un joueur joue au pied. En quête du cuir, les joueurs fondent sur la balle sans réussir à la contrôler. C’est alors que l’ancien Toulonnais récupère le Graal. Entouré de quatre défenseurs adverses, il réalise une chistera de grande classe. À peine 15 secondes plus tard, le joueur efface 2 défenseurs à 3 mètres de la ligne d’en-but. Cooper est-il toujours aussi fort ? Ça, personne ne le sait. Mais quoi qu’il arrive, il semble que l’ancien joueur des Reds soit encore aussi agréable à voir jouer.\n", + "category": "", + "link": "https://www.lerugbynistere.fr/videos/video-le-magicien-quade-cooper-regale-encore-avec-une-chistera-et-un-essai-2301221516.php", + "creator": "Erwan Harzic", + "pubDate": "2022-01-23 15:17:00", + "enclosure": "https://www.lerugbynistere.fr/photos/cooper-23-01-22-693.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.lerugbynistere.fr/photos/cooper-23-01-22-693.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "Le Rugbynistere", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b9c223bf2875025ad91c78051e8b49f5", + "highlights": [] + }, { "title": "RUGBY. L’annulation de Toulouse Cardiff ? ‘‘Il n'y a pas scandale’’ pour Christophe Urios", "description": "Le manager de l’UBB s’est exprimé au sujet de la polémique qui entoure le club de la ville rose ce week-end.", @@ -29017,6 +29083,490 @@ "image": "https://rmcsport.bfmtv.com/assets/images/RMCSPORT_default_16x9.jpg", "description": "Retrouvez sur RMC Sport toute l'actualité sportive en continu et en direct: football, mercato, rugby, basket, tennis, formule 1…", "items": [ + { + "title": "Serie A : AC Milan-Juventus en direct", + "description": "La Serie A offre une belle affiche ce dimanche soir, à 20 h 45, avec un match de gala entre l'AC Milan et la Juventus Turin. Les Turinois sont en pleine remontée au classement pour aller chercher le top 4. Les Milanais, eux, ne voudront pas laisser l'Inter file seul en tête du classement.

    ", + "content": "La Serie A offre une belle affiche ce dimanche soir, à 20 h 45, avec un match de gala entre l'AC Milan et la Juventus Turin. Les Turinois sont en pleine remontée au classement pour aller chercher le top 4. Les Milanais, eux, ne voudront pas laisser l'Inter file seul en tête du classement.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/serie-a/serie-a-ac-milan-juventus-en-direct_LS-202201230206.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 17:14:11 GMT", + "enclosure": "https://images.bfmtv.com/ZRrkiJDtCZ4kCt_UXnM1YWyg7rI=/0x83:768x515/800x0/images/L-attaquant-suedois-de-l-AC-Milan-Zlatan-Ibrahimovic-et-ses-coequipiers-celebrent-leur-victoire-a-domicile-3-1-face-a-l-AS-Rome-lors-de-la-20e-journee-de-Serie-A-le-6-janvier-2022-au-Stade-San-Siro-1210066.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/ZRrkiJDtCZ4kCt_UXnM1YWyg7rI=/0x83:768x515/800x0/images/L-attaquant-suedois-de-l-AC-Milan-Zlatan-Ibrahimovic-et-ses-coequipiers-celebrent-leur-victoire-a-domicile-3-1-face-a-l-AS-Rome-lors-de-la-20e-journee-de-Serie-A-le-6-janvier-2022-au-Stade-San-Siro-1210066.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "fdfcca9e91cdf405e7b66abfe0b6b5f9", + "highlights": [] + }, + { + "title": "UFC en direct: Ngannou réclame déjà... un combat contre Fury", + "description": "Après un combat intense, Francis Ngannou a battu le Français Ciryl Gane dans le choc des lourds à l'UFC, samedi, à Anaheim (Californie)

    ", + "content": "Après un combat intense, Francis Ngannou a battu le Français Ciryl Gane dans le choc des lourds à l'UFC, samedi, à Anaheim (Californie)

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/sports-de-combat/mma/ufc-en-direct-suivez-le-combat-evenement-entre-ngannou-et-gane_LN-202201220284.html", + "creator": "", + "pubDate": "Sat, 22 Jan 2022 20:57:02 GMT", + "enclosure": "https://images.bfmtv.com/C5OYD2N2sPb1i-kGCykf5u81dFM=/0x0:1920x1080/800x0/images/Francis-Ngannou-et-Ciryl-Gane-1221029.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/C5OYD2N2sPb1i-kGCykf5u81dFM=/0x0:1920x1080/800x0/images/Francis-Ngannou-et-Ciryl-Gane-1221029.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4334eb3b3ac32b73115898809d36f1e7", + "highlights": [] + }, + { + "title": "Premier League: Liverpool consolide sa deuxième place, Arsenal bute sur Burnley", + "description": "Vainqueur (3-1) à Crystal Palace ce dimanche lors de la 23e journée de Premier League, Liverpool conforte sa place de dauphin de Manchester City, alors qu'Arsenal n'a pas profité de la visite de Burnley, pour se rapprocher du Top 4 (0-0).

    ", + "content": "Vainqueur (3-1) à Crystal Palace ce dimanche lors de la 23e journée de Premier League, Liverpool conforte sa place de dauphin de Manchester City, alors qu'Arsenal n'a pas profité de la visite de Burnley, pour se rapprocher du Top 4 (0-0).

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/premier-league/premier-league-liverpool-consolide-sa-deuxieme-place-arsenal-bute-sur-burnley_AD-202201230200.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:47:17 GMT", + "enclosure": "https://images.bfmtv.com/RZj46lnOejkJFtcyUvsreFEzeGU=/0x65:2000x1190/800x0/images/Fabinho-celebre-son-but-face-a-Crystal-Palace-le-23-janvier-2022-1221325.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/RZj46lnOejkJFtcyUvsreFEzeGU=/0x65:2000x1190/800x0/images/Fabinho-celebre-son-but-face-a-Crystal-Palace-le-23-janvier-2022-1221325.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "70a407ffba704fb5fe50508a2a8de2bf", + "highlights": [] + }, + { + "title": "PSG-Reims en direct: Mbappé et Ramos titulaires, pas Messi", + "description": "Le PSG accueille le Stade de Reims, ce dimanche au Parc des Princes, en clôture de la 22e journée de Ligue 1. Avec Kylian Mbappé et Lionel Messi, les Parisiens espèrent accroître leur avance en tête du classement. Suivez la rencontre sur RMC Sport à partir de 20h45.

    ", + "content": "Le PSG accueille le Stade de Reims, ce dimanche au Parc des Princes, en clôture de la 22e journée de Ligue 1. Avec Kylian Mbappé et Lionel Messi, les Parisiens espèrent accroître leur avance en tête du classement. Suivez la rencontre sur RMC Sport à partir de 20h45.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/psg-reims-suivez-le-match-en-direct_LS-202201230196.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:29:44 GMT", + "enclosure": "https://images.bfmtv.com/BS-hWN2RmIQoue45PGmjeF7fuTE=/3x25:2035x1168/800x0/images/Kylian-MBAPPE-1181388.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/BS-hWN2RmIQoue45PGmjeF7fuTE=/3x25:2035x1168/800x0/images/Kylian-MBAPPE-1181388.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "ba15686bf92f37c631335d444f321a6d", + "highlights": [] + }, + { + "title": "Ligue 1: Bordeaux se réveille contre Strasbourg, Rennes chute à Clermont", + "description": "Au terme d'un match fou ce dimanche, avec notamment un triplé de Hwang Ui-Jo, Bordeaux a décroché une victoire plus que précieuse face à Strasbourg (4-3) à l'occasion de la 22e journée de Ligue 1. Nantes a enfoncé Lorient (4-2), Rennes a chuté à Clermont (2-1), alors qu'Angers est venu à bout de Troyes (2-1).

    ", + "content": "Au terme d'un match fou ce dimanche, avec notamment un triplé de Hwang Ui-Jo, Bordeaux a décroché une victoire plus que précieuse face à Strasbourg (4-3) à l'occasion de la 22e journée de Ligue 1. Nantes a enfoncé Lorient (4-2), Rennes a chuté à Clermont (2-1), alors qu'Angers est venu à bout de Troyes (2-1).

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-bordeaux-se-reveille-contre-strasbourg-rennes-chute-a-clermont_AV-202201230193.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:24:30 GMT", + "enclosure": "https://images.bfmtv.com/r717XvBsg_uBkv7j2a1A5sCRHWg=/0x39:2048x1191/800x0/images/Bordeaux-Strasbourg-le-22-janvier-2022-1221309.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/r717XvBsg_uBkv7j2a1A5sCRHWg=/0x39:2048x1191/800x0/images/Bordeaux-Strasbourg-le-22-janvier-2022-1221309.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "6cae42bb2c44f477b59be285991d146d", + "highlights": [] + }, + { + "title": "XV de France: de nombreux forfaits pour préparer le Tournoi", + "description": "La Fédération française de rugby a annoncé les forfaits de neuf joueurs de l’équipe de France pour le début du stage de préparation au Tournoi des VI nations, qui débute ce dimanche à Aubagne (Bouches-du-Rhône).

    ", + "content": "La Fédération française de rugby a annoncé les forfaits de neuf joueurs de l’équipe de France pour le début du stage de préparation au Tournoi des VI nations, qui débute ce dimanche à Aubagne (Bouches-du-Rhône).

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/rugby/xv-de-france/xv-de-france-de-nombreux-forfaits-pour-preparer-le-tournoi_AV-202201230188.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:06:03 GMT", + "enclosure": "https://images.bfmtv.com/dZ1ZkSrlrsgFpCa76y4OtHH9HSU=/0x27:2048x1179/800x0/images/Romain-Ntamack-1169122.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/dZ1ZkSrlrsgFpCa76y4OtHH9HSU=/0x27:2048x1179/800x0/images/Romain-Ntamack-1169122.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b3f5de4ff5e78796fb40d458236b2417", + "highlights": [] + }, + { + "title": "Mercato: Eriksen sur le point de rejoindre Brentford", + "description": "Libre depuis août et la résiliation de son contrat avec l'Inter à la suite à son arrêt cardiaque avec le Danemark lors de l'Euro, Christian Eriksen pourrait rebondir à Brentford selon Sky Sports.

    ", + "content": "Libre depuis août et la résiliation de son contrat avec l'Inter à la suite à son arrêt cardiaque avec le Danemark lors de l'Euro, Christian Eriksen pourrait rebondir à Brentford selon Sky Sports.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/transferts/mercato-eriksen-sur-le-point-de-rejoindre-brentford_AN-202201230185.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:03:00 GMT", + "enclosure": "https://images.bfmtv.com/XvxhMrvDBSuSgIaFRVExKtZpIQQ=/0x0:2048x1152/800x0/images/Christian-Eriksen-1156840.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/XvxhMrvDBSuSgIaFRVExKtZpIQQ=/0x0:2048x1152/800x0/images/Christian-Eriksen-1156840.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "16f5aa2dbd4f4df4ccf664b55c4699be", + "highlights": [] + }, + { + "title": "Chelsea-Tottenham en direct: les Blues se font peur avant la pause", + "description": "Suivez en direct commenté sur notre site la rencontre Chelsea-Tottenham, comptant pour la 23e journée de Premier League. Le coup d'envoi est prévu à 17h30.

    ", + "content": "Suivez en direct commenté sur notre site la rencontre Chelsea-Tottenham, comptant pour la 23e journée de Premier League. Le coup d'envoi est prévu à 17h30.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/premier-league/chelsea-tottenham-en-direct-les-blues-pour-renouer-avec-la-victoire_LS-202201230179.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:34:19 GMT", + "enclosure": "https://images.bfmtv.com/mQ2W2hKpzpR7mONn84Xa3_MTKaI=/0x0:2048x1152/800x0/images/1208115.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/mQ2W2hKpzpR7mONn84Xa3_MTKaI=/0x0:2048x1152/800x0/images/1208115.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0ffe284a3e4ed2408382192a9bca6742", + "highlights": [] + }, + { + "title": "Le sport face au Covid en direct: le XV de France amoindri pour préparer le Tournoi", + "description": "La propagation du variant Omicron rend de plus en plus incertain le déroulement de nombreux événements sportifs, en France et dans le reste du monde. Et l'instauration du pass vaccinal pourrait également perturber les sportifs. Retrouvez toutes les infos liées au Covid-19 en direct sur RMC Sport.

    ", + "content": "La propagation du variant Omicron rend de plus en plus incertain le déroulement de nombreux événements sportifs, en France et dans le reste du monde. Et l'instauration du pass vaccinal pourrait également perturber les sportifs. Retrouvez toutes les infos liées au Covid-19 en direct sur RMC Sport.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/tennis/le-sport-face-au-covid-en-direct-pour-castaner-djokovic-n-a-pas-vocation-a-jouer-a-roland-garros_LN-202201170133.html", + "creator": "", + "pubDate": "Mon, 17 Jan 2022 07:57:53 GMT", + "enclosure": "https://images.bfmtv.com/dZ1ZkSrlrsgFpCa76y4OtHH9HSU=/0x27:2048x1179/800x0/images/Romain-Ntamack-1169122.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/dZ1ZkSrlrsgFpCa76y4OtHH9HSU=/0x27:2048x1179/800x0/images/Romain-Ntamack-1169122.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b94118c8a6a28cba79d93ac146f17699", + "highlights": [] + }, + { + "title": "Champions Cup: contrat rempli pour le Stade français, qui qualifie le Stade Toulousain", + "description": "Victorieux du Connacht à Jean-Bouin (37-31), le Stade Français garde un espoir pour se qualifier pour les huitièmes de finale de Champions Cup. Ce succès bonifié permet au Stade Toulousain de valider sa qualification, malgré la défaite sur tapis vert face à Cardiff.

    ", + "content": "Victorieux du Connacht à Jean-Bouin (37-31), le Stade Français garde un espoir pour se qualifier pour les huitièmes de finale de Champions Cup. Ce succès bonifié permet au Stade Toulousain de valider sa qualification, malgré la défaite sur tapis vert face à Cardiff.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/rugby/coupe-d-europe/champions-cup-contrat-rempli-pour-le-stade-francais-qui-qualifie-le-stade-toulousain_AD-202201230177.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:26:37 GMT", + "enclosure": "https://images.bfmtv.com/1JkjqtPPE2grcfFiuTx_pq6RXjc=/0x103:1984x1219/800x0/images/Le-Stade-Francais-s-impose-face-au-Connacht-en-Champions-Cup-le-23-janvier-1221291.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/1JkjqtPPE2grcfFiuTx_pq6RXjc=/0x103:1984x1219/800x0/images/Le-Stade-Francais-s-impose-face-au-Connacht-en-Champions-Cup-le-23-janvier-1221291.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "3ec8c2c45e4fa4a959ee48b7214a0de4", + "highlights": [] + }, + { + "title": "CAN 2022: touchés par le Covid, les Comores n'ont toujours pas choisi leur gardien face au Cameroun", + "description": "Les Comores, qualifiés pour la première fois de l'histoire en 8es de finale de la compétition, ont révélé samedi la présence de 12 cas de Covid au sein de leur effectif, dont les deux seuls gardiens aptes. Ce dimanche, le choix du portier pour le match face au Cameroun (lundi à 20 heures) n'a pas encore été révélé.

    ", + "content": "Les Comores, qualifiés pour la première fois de l'histoire en 8es de finale de la compétition, ont révélé samedi la présence de 12 cas de Covid au sein de leur effectif, dont les deux seuls gardiens aptes. Ce dimanche, le choix du portier pour le match face au Cameroun (lundi à 20 heures) n'a pas encore été révélé.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/coupe-d-afrique-des-nations/can-2022-touches-par-le-covid-les-comores-n-ont-toujours-pas-choisi-leur-gardien-face-au-cameroun_AN-202201230175.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:13:18 GMT", + "enclosure": "https://images.bfmtv.com/XkBxoVrDUwYt4DgFT4Ki8MeIPok=/0x39:768x471/800x0/images/L-equipe-des-Comores-pose-avant-son-match-du-groupe-C-de-la-Coupe-d-Afrique-des-nations-contre-le-Ghana-le-18-janvier-2022-a-Garoua-Cameroun-1220862.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/XkBxoVrDUwYt4DgFT4Ki8MeIPok=/0x39:768x471/800x0/images/L-equipe-des-Comores-pose-avant-son-match-du-groupe-C-de-la-Coupe-d-Afrique-des-nations-contre-le-Ghana-le-18-janvier-2022-a-Garoua-Cameroun-1220862.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0b2097045669ac4d556acc3d12758c35", + "highlights": [] + }, + { + "title": "Les pronos hippiques du lundi 24 janvier 2022", + "description": "Le Quinté+ du lundi 24 janvier est programmé sur l’hippodrome de Cagnes-sur-Mer dans la discipline du plat. Retrouvez ci-dessous nos pronostics pour cette course ainsi que notre pari du jour et notre pari de folie dans deux autres courses au menu de la journée.

    ", + "content": "Le Quinté+ du lundi 24 janvier est programmé sur l’hippodrome de Cagnes-sur-Mer dans la discipline du plat. Retrouvez ci-dessous nos pronostics pour cette course ainsi que notre pari du jour et notre pari de folie dans deux autres courses au menu de la journée.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/paris-hippique/les-pronos-hippiques-du-lundi-24-janvier-2022_AN-202201230174.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:12:46 GMT", + "enclosure": "https://images.bfmtv.com/nAGoOte3QmzQN8uR6QubnbwgAxU=/72x3:1128x597/800x0/images/Les-pronos-hippiques-du-24-janvier-2022-1221255.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/nAGoOte3QmzQN8uR6QubnbwgAxU=/72x3:1128x597/800x0/images/Les-pronos-hippiques-du-24-janvier-2022-1221255.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "6344bb7c71e527946eceb097e8ad5089", + "highlights": [] + }, + { + "title": "Mercato en direct: Eriksen tout proche de s'engager avec Brentford", + "description": "Encore une dizaine de jours avant la clôture du mercato hivernal et les clubs européens s'activent toujours pour se renforcer ou dégraisser leur effectif de joueurs indésirables. L'avenir de plusieurs stars du ballon rond interroge aussi alors que leurs contrats s'achèveront en fin de saison. Kylian Mbappé au PSG, Ousmane Dembélé au Barça ou encore Paul Pogba à Manchester United... autant de dossiers toujours loin d'être réglés. Découvrez toutes les infos et rumeurs du mercato dans le direct commenté sur RMC Sport.

    ", + "content": "Encore une dizaine de jours avant la clôture du mercato hivernal et les clubs européens s'activent toujours pour se renforcer ou dégraisser leur effectif de joueurs indésirables. L'avenir de plusieurs stars du ballon rond interroge aussi alors que leurs contrats s'achèveront en fin de saison. Kylian Mbappé au PSG, Ousmane Dembélé au Barça ou encore Paul Pogba à Manchester United... autant de dossiers toujours loin d'être réglés. Découvrez toutes les infos et rumeurs du mercato dans le direct commenté sur RMC Sport.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/transferts/le-mercato-en-direct-les-infos-et-rumeurs-du-20-janvier-2022_LN-202201200056.html", + "creator": "", + "pubDate": "Thu, 20 Jan 2022 06:29:18 GMT", + "enclosure": "https://images.bfmtv.com/yiiI_DBOTBgZ4ZQL5kSrrvggLq0=/352x297:2032x1242/800x0/images/Christian-ERIKSEN-1050718.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/yiiI_DBOTBgZ4ZQL5kSrrvggLq0=/352x297:2032x1242/800x0/images/Christian-ERIKSEN-1050718.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "e710153fbaf87fd99029fb9604a3c200", + "highlights": [] + }, + { + "title": "PSG-Real: comment Benzema aborde ses retrouvailles avec Mbappé en Ligue des champions", + "description": "A moins d'un mois du choc entre le PSG et le Real Madrid en Ligue des champions (le 15 février sur RMC Sport), Karim Benzema a abordé dans l'émission Téléfoot ses retrouvailles avec Kylian Mbappé, avec qui il entretient une bonne relation chez les Bleus.

    ", + "content": "A moins d'un mois du choc entre le PSG et le Real Madrid en Ligue des champions (le 15 février sur RMC Sport), Karim Benzema a abordé dans l'émission Téléfoot ses retrouvailles avec Kylian Mbappé, avec qui il entretient une bonne relation chez les Bleus.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-des-champions/psg-real-comment-benzema-aborde-ses-retrouvailles-avec-mbappe-en-ligue-des-champions_AV-202201230172.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:59:18 GMT", + "enclosure": "https://images.bfmtv.com/WKNvgl4Utm34D-zt2LBAUq-p5mU=/0x0:768x432/800x0/images/Les-attaquants-Karim-Benzema-auteur-d-un-double-et-Kylian-Mbappe-auteur-d-un-quadruple-contre-le-Kazakhstan-lors-des-eliminatoires-de-la-Coupe-du-monde-2022-au-Qatar-le-13-novembre-2021-au-Parc-des-Princes-a-Paris-1166030.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/WKNvgl4Utm34D-zt2LBAUq-p5mU=/0x0:768x432/800x0/images/Les-attaquants-Karim-Benzema-auteur-d-un-double-et-Kylian-Mbappe-auteur-d-un-quadruple-contre-le-Kazakhstan-lors-des-eliminatoires-de-la-Coupe-du-monde-2022-au-Qatar-le-13-novembre-2021-au-Parc-des-Princes-a-Paris-1166030.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4de3dc2c2a6446d8bb9d52b1830e72b0", + "highlights": [] + }, + { + "title": "Stade Français: Macalou écarté face au Connacht à cause d'un retard", + "description": "Le troisième ligne du Stade Français Sekou Macalou a été écarté du groupe de Champions Cup pour affronter l'équipe irlandaise du Connacht, en raison d'un retard au rendez-vous du staff.

    ", + "content": "Le troisième ligne du Stade Français Sekou Macalou a été écarté du groupe de Champions Cup pour affronter l'équipe irlandaise du Connacht, en raison d'un retard au rendez-vous du staff.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/rugby/coupe-d-europe/stade-francais-macalou-ecarte-face-au-connacht-a-cause-d-un-retard_AV-202201230170.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:49:42 GMT", + "enclosure": "https://images.bfmtv.com/H0DQUAhCA_c6YDYs4LoOMTb-cZU=/0x106:2048x1258/800x0/images/Sekou-Macalou-Stade-Francais-1179051.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/H0DQUAhCA_c6YDYs4LoOMTb-cZU=/0x106:2048x1258/800x0/images/Sekou-Macalou-Stade-Francais-1179051.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4e41e621a8d540b8cd6ab8174ba40b1c", + "highlights": [] + }, + { + "title": "Flamme de Goutier remporte le Prix de Cornulier", + "description": "Ce dimanche 23 janvier se disputait le Prix de Cornulier, la plus belle épreuve de trot monté au monde sur la distance des 2700 mètres de la grande piste de Vincennes.

    ", + "content": "Ce dimanche 23 janvier se disputait le Prix de Cornulier, la plus belle épreuve de trot monté au monde sur la distance des 2700 mètres de la grande piste de Vincennes.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/paris-hippique/flamme-de-goutier-remporte-le-prix-de-cornulier_AN-202201230168.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:42:57 GMT", + "enclosure": "https://images.bfmtv.com/nL814MkB1JrxEgT8h1119lWfVAs=/0x106:2048x1258/800x0/images/Flamme-du-Goutier-brille-a-Vincennes-dans-le-Prix-de-Cornulier-1221288.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/nL814MkB1JrxEgT8h1119lWfVAs=/0x106:2048x1258/800x0/images/Flamme-du-Goutier-brille-a-Vincennes-dans-le-Prix-de-Cornulier-1221288.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b99205fdd56db439508d69acc38e0b61", + "highlights": [] + }, + { + "title": "Ligue 1: suivez le multiplex de la 22e journée en direct", + "description": "Quatre rencontres sont au programme du multiplex Ligue 1 ce dimanche à partir de 15h: Clermont-Rennes, Nantes-Lorient, Angers-Troyes et Bordeaux-Strasbourg. Suivez ces matchs dans notre direct commenté.

    ", + "content": "Quatre rencontres sont au programme du multiplex Ligue 1 ce dimanche à partir de 15h: Clermont-Rennes, Nantes-Lorient, Angers-Troyes et Bordeaux-Strasbourg. Suivez ces matchs dans notre direct commenté.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-suivez-le-multiplex-de-la-22e-journee-en-direct_LS-202201230165.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:35:56 GMT", + "enclosure": "https://images.bfmtv.com/kXvqdYfZDeg86WZ_ZBtYqexRIzI=/0x65:2048x1217/800x0/images/Bordeaux-Strasbourg-1221287.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/kXvqdYfZDeg86WZ_ZBtYqexRIzI=/0x65:2048x1217/800x0/images/Bordeaux-Strasbourg-1221287.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0132503ace05553c96b7a81d456b2c38", + "highlights": [] + }, + { + "title": "PSG féminines: Hamraoui de retour à la compétition, trois mois après son agression", + "description": "Kheira Hamraoui a fait son retour sur les pelouses de D1 Arkéma ce dimanche. Titulaire face à Saint-Etienne, l'ancienne joueuse du Barça dispute son premier match depuis son agression subie en novembre dernier.

    ", + "content": "Kheira Hamraoui a fait son retour sur les pelouses de D1 Arkéma ce dimanche. Titulaire face à Saint-Etienne, l'ancienne joueuse du Barça dispute son premier match depuis son agression subie en novembre dernier.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/feminin/psg-feminines-hamraoui-de-retour-a-la-competition-trois-mois-apres-son-agression_AV-202201230160.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:26:31 GMT", + "enclosure": "https://images.bfmtv.com/vf4psVBxos2lWrPOkMLE2eyEKHU=/0x82:1984x1198/800x0/images/Kheira-Hamraoui-face-a-Saint-Etienne-le-17-octobre-2021-1221278.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/vf4psVBxos2lWrPOkMLE2eyEKHU=/0x82:1984x1198/800x0/images/Kheira-Hamraoui-face-a-Saint-Etienne-le-17-octobre-2021-1221278.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "12d36b7d8a1e342df4ebda9f07d6b157", + "highlights": [] + }, + { + "title": "Champions Cup: la réponse de Bouscatel à Urios sur la défaite de Toulouse sur tapis vert", + "description": "Le président de la LNR René Bouscatel répond à Christophe Urios, manager de l'UBB, qui avait dit ne pas voir de scandale dans la défaite sur tapis vert du Stade Toulousain en raison de cas de Covid.

    ", + "content": "Le président de la LNR René Bouscatel répond à Christophe Urios, manager de l'UBB, qui avait dit ne pas voir de scandale dans la défaite sur tapis vert du Stade Toulousain en raison de cas de Covid.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/rugby/coupe-d-europe/champions-cup-la-reponse-de-bouscatel-a-urios-sur-la-defaite-de-toulouse-sur-tapis-vert_AV-202201230158.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:15:21 GMT", + "enclosure": "https://images.bfmtv.com/jgDcIAWUjh8ccSFCIM5nKXSF3EU=/0x40:768x472/800x0/images/Le-president-de-la-Ligue-nationale-de-rugby-Rene-Bouscatel-le-23-mars-2021-au-siege-de-la-Ligue-a-Paris-1220860.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/jgDcIAWUjh8ccSFCIM5nKXSF3EU=/0x40:768x472/800x0/images/Le-president-de-la-Ligue-nationale-de-rugby-Rene-Bouscatel-le-23-mars-2021-au-siege-de-la-Ligue-a-Paris-1220860.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "48d9f847d30264b0b6c699a41e3e4616", + "highlights": [] + }, + { + "title": "Ligue 1: trop fort pour Metz, Nice reprend sa place de dauphin", + "description": "Sur une pelouse très difficile, Nice a enchaîné dimanche une sixième victoire consécutive toutes compétitions confondues à Metz (2-0) dans le cadre de la 22e journée de Ligue 1. Le Gym reprend sa place de dauphin du PSG, qui reçoit Reims ce dimanche soir (20h45).

    ", + "content": "Sur une pelouse très difficile, Nice a enchaîné dimanche une sixième victoire consécutive toutes compétitions confondues à Metz (2-0) dans le cadre de la 22e journée de Ligue 1. Le Gym reprend sa place de dauphin du PSG, qui reçoit Reims ce dimanche soir (20h45).

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-trop-fort-pour-metz-nice-reprend-sa-place-de-dauphin_AV-202201230154.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 13:58:06 GMT", + "enclosure": "https://images.bfmtv.com/IXnRsG4nJxDLr92FWgJHmZiboQw=/15x21:1999x1137/800x0/images/Kephren-Thuram-a-la-lutte-avec-Vincent-Pajot-lors-de-Metz-Nice-le-23-janvier-2022-1221253.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/IXnRsG4nJxDLr92FWgJHmZiboQw=/15x21:1999x1137/800x0/images/Kephren-Thuram-a-la-lutte-avec-Vincent-Pajot-lors-de-Metz-Nice-le-23-janvier-2022-1221253.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "e86475648cae00f204b7a4e728e98fd2", + "highlights": [] + }, + { + "title": "Bordeaux: la banderole cinglante des Ultras avant la réception de Strasbourg", + "description": "Les Ultras bordelais ont fait passer un message à leurs joueurs avant le match contre Strasbourg ce dimanche à 15h. Bordeaux est toujours 19e de Ligue 1, devant Saint-Etienne.

    ", + "content": "Les Ultras bordelais ont fait passer un message à leurs joueurs avant le match contre Strasbourg ce dimanche à 15h. Bordeaux est toujours 19e de Ligue 1, devant Saint-Etienne.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/bordeaux-la-banderole-cinglante-des-ultras-bordelais-avant-la-reception-de-strasbourg_AV-202201230145.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 13:46:03 GMT", + "enclosure": "https://images.bfmtv.com/6RFrQo2sUUDC_CiIfvU2zU7DgyQ=/4x66:676x444/800x0/images/Bordeaux-1221264.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/6RFrQo2sUUDC_CiIfvU2zU7DgyQ=/4x66:676x444/800x0/images/Bordeaux-1221264.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8824b4f561fc7eeca89f47a23633bb66", + "highlights": [] + }, + { + "title": "Open d'Australie: Berrettini rejoint Monfils en quarts", + "description": "Extrêmement solide au service, l'Italien Matteo Berrettini a dominé l'Espagnol Pablo Carreño Busta dimanche en huitièmes de finale de l'Open d'Australie (7-5, 7-6 [4], 6-4). Il affrontera Gaël Monfils en quarts.

    ", + "content": "Extrêmement solide au service, l'Italien Matteo Berrettini a dominé l'Espagnol Pablo Carreño Busta dimanche en huitièmes de finale de l'Open d'Australie (7-5, 7-6 [4], 6-4). Il affrontera Gaël Monfils en quarts.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/tennis/open-australie/open-d-australie-berrettini-rejoint-monfils-en-quarts_AV-202201230144.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 13:44:40 GMT", + "enclosure": "https://images.bfmtv.com/ZG-qGVc7sF5YXXpAPSxkUw-Gj8s=/0x0:2032x1143/800x0/images/Berrettini-1221243.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/ZG-qGVc7sF5YXXpAPSxkUw-Gj8s=/0x0:2032x1143/800x0/images/Berrettini-1221243.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "dc080fd12db1014ce8c77d3fbb4b706d", + "highlights": [] + }, { "title": "Barça: la tension monte encore avec Dembélé, absent de l'entraînement pour des \"maux de ventre\"", "description": "Ousmane Dembélé ne s'est pas présenté ce dimanche matin à la convocation de Xavi avant qu'il ne donne le groupe pour le match contre Alavés (21h). Le Français a dit au club qu'il avait des maux d'estomac.

    ", @@ -29040,16 +29590,16 @@ "highlights": [] }, { - "title": "Ligue 1: Montpellier-Monaco en direct", - "description": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", - "content": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "title": "Montpellier-Monaco en direct: l'ASM court après le score à la Mosson", + "description": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "content": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", "category": "", "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-montpellier-monaco-en-direct_LS-202201230135.html", "creator": "", "pubDate": "Sun, 23 Jan 2022 13:19:17 GMT", - "enclosure": "https://images.bfmtv.com/mEAQJ9NPnKDRqrXfPvytFYxU9zU=/0x47:2000x1172/800x0/images/W-Ben-Yedder-1220790.jpg", + "enclosure": "https://images.bfmtv.com/R4ka_J-8a90m7XHYApVoz40I2i8=/0x106:2048x1258/800x0/images/Montpellier-Monaco-1221319.jpg", "enclosureType": "image/jpg", - "image": "https://images.bfmtv.com/mEAQJ9NPnKDRqrXfPvytFYxU9zU=/0x47:2000x1172/800x0/images/W-Ben-Yedder-1220790.jpg", + "image": "https://images.bfmtv.com/R4ka_J-8a90m7XHYApVoz40I2i8=/0x106:2048x1258/800x0/images/Montpellier-Monaco-1221319.jpg", "id": "", "language": "fr", "folder": "00.03 News/Sport - FR", @@ -29058,29 +29608,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "1803662a745913e5407b5929a952fdd4", - "highlights": [] - }, - { - "title": "Mercato en direct: la tension monte avec Dembélé, absent à l'entraînement ce dimanche matin", - "description": "Encore une dizaine de jours avant la clôture du mercato hivernal et les clubs européens s'activent toujours pour se renforcer ou dégraisser leur effectif de joueurs indésirables. L'avenir de plusieurs stars du ballon rond interroge aussi alors que leurs contrats s'achèveront en fin de saison. Kylian Mbappé au PSG, Ousmane Dembélé au Barça ou encore Paul Pogba à Manchester United... autant de dossiers toujours loin d'être réglés. Découvrez toutes les infos et rumeurs du mercato dans le direct commenté sur RMC Sport.

    ", - "content": "Encore une dizaine de jours avant la clôture du mercato hivernal et les clubs européens s'activent toujours pour se renforcer ou dégraisser leur effectif de joueurs indésirables. L'avenir de plusieurs stars du ballon rond interroge aussi alors que leurs contrats s'achèveront en fin de saison. Kylian Mbappé au PSG, Ousmane Dembélé au Barça ou encore Paul Pogba à Manchester United... autant de dossiers toujours loin d'être réglés. Découvrez toutes les infos et rumeurs du mercato dans le direct commenté sur RMC Sport.

    ", - "category": "", - "link": "https://rmcsport.bfmtv.com/football/transferts/le-mercato-en-direct-les-infos-et-rumeurs-du-20-janvier-2022_LN-202201200056.html", - "creator": "", - "pubDate": "Thu, 20 Jan 2022 06:29:18 GMT", - "enclosure": "https://images.bfmtv.com/y9BeOBtQx6ILslxGKv26wkiB2fY=/0x42:2048x1194/800x0/images/Ousmane-Dembele-Barca-1202212.jpg", - "enclosureType": "image/jpg", - "image": "https://images.bfmtv.com/y9BeOBtQx6ILslxGKv26wkiB2fY=/0x42:2048x1194/800x0/images/Ousmane-Dembele-Barca-1202212.jpg", - "id": "", - "language": "fr", - "folder": "00.03 News/Sport - FR", - "feed": "RMC Sport", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "362da3d24eb510e1dabde861081c83f8", + "hash": "9d27d11cc0cdd6e6b371ea445edb085d", "highlights": [] }, { @@ -29216,16 +29744,104 @@ "highlights": [] }, { - "title": "Multiplex Ligue 1 en direct: Rennes et Strasbourg visent le top 4, Bordeaux en danger", - "description": "La 22e journée de Ligue 1 se poursuit ce dimanche avec quatre rencontres à suivre dans notre live à partir de 15 heures: Angers-Troyes, Bordeaux-Strasbourg, Clermont-Rennes et Nantes-Lorient.

    ", - "content": "La 22e journée de Ligue 1 se poursuit ce dimanche avec quatre rencontres à suivre dans notre live à partir de 15 heures: Angers-Troyes, Bordeaux-Strasbourg, Clermont-Rennes et Nantes-Lorient.

    ", + "title": "Montpellier-Monaco en direct: Ben Yedder relance l'ASM dans une rencontre animée", + "description": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "content": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-montpellier-monaco-en-direct_LS-202201230135.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 13:19:17 GMT", + "enclosure": "https://images.bfmtv.com/R4ka_J-8a90m7XHYApVoz40I2i8=/0x106:2048x1258/800x0/images/Montpellier-Monaco-1221319.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/R4ka_J-8a90m7XHYApVoz40I2i8=/0x106:2048x1258/800x0/images/Montpellier-Monaco-1221319.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "99bc7e99da15e424e28d979a4f205a42", + "highlights": [] + }, + { + "title": "PSG-Reims: les Parisiens veulent accroître leur avance en tête", + "description": "Le PSG accueille le Stade de Reims, ce dimanche au Parc des Princes, en clôture de la 22e journée de Ligue 1. Avec Kylian Mbappé et Lionel Messi, les Parisiens espèrent accroître leur avance en tête du classement.

    ", + "content": "Le PSG accueille le Stade de Reims, ce dimanche au Parc des Princes, en clôture de la 22e journée de Ligue 1. Avec Kylian Mbappé et Lionel Messi, les Parisiens espèrent accroître leur avance en tête du classement.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/psg-reims-suivez-le-match-en-direct_LS-202201230196.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:29:44 GMT", + "enclosure": "https://images.bfmtv.com/RsR3IOWrwNYZAo0TpoPQ930zsA4=/0x87:2048x1239/800x0/images/Lionel-Messi-1221318.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/RsR3IOWrwNYZAo0TpoPQ930zsA4=/0x87:2048x1239/800x0/images/Lionel-Messi-1221318.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "55df32ae2606a3b1bedc046b8641e995", + "highlights": [] + }, + { + "title": "Chelsea-Tottenham en direct: les Blues pour renouer avec la victoire", + "description": "Suivez en direct commenté sur notre site la rencontre Chelsea-Tottenham, comptant pour la 23e journée de Premier League. Le coup d'envoi est prévu à 17h30.

    ", + "content": "Suivez en direct commenté sur notre site la rencontre Chelsea-Tottenham, comptant pour la 23e journée de Premier League. Le coup d'envoi est prévu à 17h30.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/premier-league/chelsea-tottenham-en-direct-les-blues-pour-renouer-avec-la-victoire_LS-202201230179.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:34:19 GMT", + "enclosure": "https://images.bfmtv.com/mQ2W2hKpzpR7mONn84Xa3_MTKaI=/0x0:2048x1152/800x0/images/1208115.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/mQ2W2hKpzpR7mONn84Xa3_MTKaI=/0x0:2048x1152/800x0/images/1208115.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "ce8117669d06e295f36b7fc70239e3c4", + "highlights": [] + }, + { + "title": "Montpellier-Monaco en direct: les Héraultais font le break, l'ASM en grande difficulté", + "description": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "content": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-montpellier-monaco-en-direct_LS-202201230135.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 13:19:17 GMT", + "enclosure": "https://images.bfmtv.com/R4ka_J-8a90m7XHYApVoz40I2i8=/0x106:2048x1258/800x0/images/Montpellier-Monaco-1221319.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/R4ka_J-8a90m7XHYApVoz40I2i8=/0x106:2048x1258/800x0/images/Montpellier-Monaco-1221319.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "88dece3dfe6f5067afbc753d8727a228", + "highlights": [] + }, + { + "title": "Multiplex Ligue 1 en direct: Hwang sauve Bordeaux, Rennes et Strasbourg ratent le coche", + "description": "Malade avant cette 22e journée, les Girondins se sont rassurés en première période face à Strasbourg (3-1). Rennes et Nantes dominent largement Clermont et Lorient et mènent 1-0, tandis qu'Angers a renversé la situation contre Troyes (2-1). Suivez la seconde période du muliplex dans notre live commenté.

    ", + "content": "Malade avant cette 22e journée, les Girondins se sont rassurés en première période face à Strasbourg (3-1). Rennes et Nantes dominent largement Clermont et Lorient et mènent 1-0, tandis qu'Angers a renversé la situation contre Troyes (2-1). Suivez la seconde période du muliplex dans notre live commenté.

    ", "category": "", "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-le-multiplex-en-direct_LS-202201230121.html", "creator": "", "pubDate": "Sun, 23 Jan 2022 12:19:09 GMT", - "enclosure": "https://images.bfmtv.com/tgTKCkG427fC7RyGJQGAaXR5OkM=/0x0:2048x1152/800x0/images/Yacine-Adli-1161543.jpg", + "enclosure": "https://images.bfmtv.com/9XrY3CaZ7jBasTYYA8hITDap9mU=/0x106:2048x1258/800x0/images/1221300.jpg", "enclosureType": "image/jpg", - "image": "https://images.bfmtv.com/tgTKCkG427fC7RyGJQGAaXR5OkM=/0x0:2048x1152/800x0/images/Yacine-Adli-1161543.jpg", + "image": "https://images.bfmtv.com/9XrY3CaZ7jBasTYYA8hITDap9mU=/0x106:2048x1258/800x0/images/1221300.jpg", "id": "", "language": "fr", "folder": "00.03 News/Sport - FR", @@ -29234,7 +29850,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "d710cfed83b398703c9dd87679e05ae6", + "hash": "a417616c42b865eff60edd420dc80aa9", "highlights": [] }, { @@ -29281,6 +29897,28 @@ "hash": "701f5d592ef0d0cf13a01b2956176475", "highlights": [] }, + { + "title": "Montpellier-Monaco en direct: les Monégasques veulent enchaîner à la Mosson", + "description": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "content": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-montpellier-monaco-en-direct_LS-202201230135.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 13:19:17 GMT", + "enclosure": "https://images.bfmtv.com/mEAQJ9NPnKDRqrXfPvytFYxU9zU=/0x47:2000x1172/800x0/images/W-Ben-Yedder-1220790.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/mEAQJ9NPnKDRqrXfPvytFYxU9zU=/0x47:2000x1172/800x0/images/W-Ben-Yedder-1220790.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "77a76cba88b58884e9ff454c13dfc01f", + "highlights": [] + }, { "title": "Skeleton: recalée pour les JO par sa fédération, Agathe Bessard pense à changer de nationalité sportive", "description": "Alors qu'elle remplissait les critères de la fédération internationale pour les Jeux olympiques de Pékin, Agathe Bessard devait être la première française à disputer l'épreuve du skeleton aux Jeux olympiques, cet hiver à Pékin. Mais la Fédération française des sports de glace en a décidé autrement. L'athlète voit son rêve brisé et envisage même de \"changer de nationalité sportive\"

    ", @@ -29325,6 +29963,72 @@ "hash": "bf04c245fafeffe07657a1d4b4d7b64c", "highlights": [] }, + { + "title": "Ligue 1: Montpellier-Monaco en direct", + "description": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "content": "L'AS Monaco se déplace sur la pelouse du MHSC ce dimanche à 17h05 pour le compte de la 22e journée de Ligue 1. Une rencontre à suivre en intégralité dans notre live.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-montpellier-monaco-en-direct_LS-202201230135.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 13:19:17 GMT", + "enclosure": "https://images.bfmtv.com/mEAQJ9NPnKDRqrXfPvytFYxU9zU=/0x47:2000x1172/800x0/images/W-Ben-Yedder-1220790.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/mEAQJ9NPnKDRqrXfPvytFYxU9zU=/0x47:2000x1172/800x0/images/W-Ben-Yedder-1220790.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "1803662a745913e5407b5929a952fdd4", + "highlights": [] + }, + { + "title": "Mercato en direct: la tension monte avec Dembélé, absent à l'entraînement ce dimanche matin", + "description": "Encore une dizaine de jours avant la clôture du mercato hivernal et les clubs européens s'activent toujours pour se renforcer ou dégraisser leur effectif de joueurs indésirables. L'avenir de plusieurs stars du ballon rond interroge aussi alors que leurs contrats s'achèveront en fin de saison. Kylian Mbappé au PSG, Ousmane Dembélé au Barça ou encore Paul Pogba à Manchester United... autant de dossiers toujours loin d'être réglés. Découvrez toutes les infos et rumeurs du mercato dans le direct commenté sur RMC Sport.

    ", + "content": "Encore une dizaine de jours avant la clôture du mercato hivernal et les clubs européens s'activent toujours pour se renforcer ou dégraisser leur effectif de joueurs indésirables. L'avenir de plusieurs stars du ballon rond interroge aussi alors que leurs contrats s'achèveront en fin de saison. Kylian Mbappé au PSG, Ousmane Dembélé au Barça ou encore Paul Pogba à Manchester United... autant de dossiers toujours loin d'être réglés. Découvrez toutes les infos et rumeurs du mercato dans le direct commenté sur RMC Sport.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/transferts/le-mercato-en-direct-les-infos-et-rumeurs-du-20-janvier-2022_LN-202201200056.html", + "creator": "", + "pubDate": "Thu, 20 Jan 2022 06:29:18 GMT", + "enclosure": "https://images.bfmtv.com/y9BeOBtQx6ILslxGKv26wkiB2fY=/0x42:2048x1194/800x0/images/Ousmane-Dembele-Barca-1202212.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/y9BeOBtQx6ILslxGKv26wkiB2fY=/0x42:2048x1194/800x0/images/Ousmane-Dembele-Barca-1202212.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "362da3d24eb510e1dabde861081c83f8", + "highlights": [] + }, + { + "title": "Multiplex Ligue 1 en direct: Bordeaux va mieux, Rennes et Nantes en tête", + "description": "Malade avant cette 22e journée, les Girondins se sont rassurés en première période face à Strasbourg (3-1). Rennes et Nantes dominent largement Clermont et Lorient et mènent 1-0, tandis qu'Angers a renversé la situation contre Troyes (2-1). Suivez la seconde période du muliplex dans notre live commenté.

    ", + "content": "Malade avant cette 22e journée, les Girondins se sont rassurés en première période face à Strasbourg (3-1). Rennes et Nantes dominent largement Clermont et Lorient et mènent 1-0, tandis qu'Angers a renversé la situation contre Troyes (2-1). Suivez la seconde période du muliplex dans notre live commenté.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-le-multiplex-en-direct_LS-202201230121.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 12:19:09 GMT", + "enclosure": "https://images.bfmtv.com/iE0iQzavKDvhsd129tAd4TqtbEI=/13x191:2029x1325/800x0/images/1221286.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/iE0iQzavKDvhsd129tAd4TqtbEI=/13x191:2029x1325/800x0/images/1221286.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "f2895458dfc1a5cf091d6799ecb2d6be", + "highlights": [] + }, { "title": "UFC: aura-t-on droit à une revanche Gane-Ngannou?", "description": "Le premier combat entre Francis Ngannou et Ciryl Gane, qui a vu la victoire ce samedi du Camerounais, pourrait bien être également le dernier entre les deux combattants poids lourds, actuellement liés à l'UFC. Le \"Predator\" a calmé les ardeurs du Français, qui souhaite déjà une revanche.

    ", @@ -29370,9 +30074,9 @@ "highlights": [] }, { - "title": "Metz-Nice en direct: les Niçois font le break!", - "description": "Suivez en direct commenté sur notre site la rencontre Metz-Nice, comptant pour la 22e journée de Ligue 1. Le coup d'envoi est prévu à 13h.

    ", - "content": "Suivez en direct commenté sur notre site la rencontre Metz-Nice, comptant pour la 22e journée de Ligue 1. Le coup d'envoi est prévu à 13h.

    ", + "title": "Metz-Nice en direct: les Niçois s'imposent à Metz et reprennent la deuxième place", + "description": "Revivez dans les conditions du direct sur notre site la victoire de Nice sur la pelouse de Metz (0-2), pour le compte de la 22e journée de Ligue 1.

    ", + "content": "Revivez dans les conditions du direct sur notre site la victoire de Nice sur la pelouse de Metz (0-2), pour le compte de la 22e journée de Ligue 1.

    ", "category": "", "link": "https://rmcsport.bfmtv.com/football/ligue-1/metz-nice-en-direct-les-nicois-pour-reprendre-leur-place-de-dauphin_LS-202201230098.html", "creator": "", @@ -29388,7 +30092,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "1b09a3f67f84c586548bc89eb9c58674", + "hash": "8d2c6d20424f477d28d64daa0b32b208", "highlights": [] }, { @@ -29479,6 +30183,28 @@ "hash": "9138f96ef9505bc60390727a9d680d8b", "highlights": [] }, + { + "title": "Multiplex Ligue 1 en direct: Bordeaux se rassure, Rennes bien lancé", + "description": "La 22e journée de Ligue 1 se poursuit ce dimanche avec quatre rencontres à suivre dans notre live à partir de 15 heures: Angers-Troyes, Bordeaux-Strasbourg, Clermont-Rennes et Nantes-Lorient.

    ", + "content": "La 22e journée de Ligue 1 se poursuit ce dimanche avec quatre rencontres à suivre dans notre live à partir de 15 heures: Angers-Troyes, Bordeaux-Strasbourg, Clermont-Rennes et Nantes-Lorient.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-le-multiplex-en-direct_LS-202201230121.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 12:19:09 GMT", + "enclosure": "https://images.bfmtv.com/tgTKCkG427fC7RyGJQGAaXR5OkM=/0x0:2048x1152/800x0/images/Yacine-Adli-1161543.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/tgTKCkG427fC7RyGJQGAaXR5OkM=/0x0:2048x1152/800x0/images/Yacine-Adli-1161543.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8d06c0e8fbbfbd43ffbdede40498975b", + "highlights": [] + }, { "title": "Open d'Australie en direct: Monfils file en quarts de finale après sa belle victoire contre Kecmanovic", "description": "L'Open d'Australie débute ce lundi sans Novak Djokovic, numéro un mondial expulsé du pays en raison de son statut vaccinal. Le tableau est ouvert.

    ", @@ -29567,6 +30293,50 @@ "hash": "819037b81934a22f64ced45523ecd7ff", "highlights": [] }, + { + "title": "Multiplex Ligue 1 en direct: Rennes et Strasbourg visent le top 4, Bordeaux en danger", + "description": "La 22e journée de Ligue 1 se poursuit ce dimanche avec quatre rencontres à suivre dans notre live à partir de 15 heures: Angers-Troyes, Bordeaux-Strasbourg, Clermont-Rennes et Nantes-Lorient.

    ", + "content": "La 22e journée de Ligue 1 se poursuit ce dimanche avec quatre rencontres à suivre dans notre live à partir de 15 heures: Angers-Troyes, Bordeaux-Strasbourg, Clermont-Rennes et Nantes-Lorient.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/ligue-1-le-multiplex-en-direct_LS-202201230121.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 12:19:09 GMT", + "enclosure": "https://images.bfmtv.com/tgTKCkG427fC7RyGJQGAaXR5OkM=/0x0:2048x1152/800x0/images/Yacine-Adli-1161543.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/tgTKCkG427fC7RyGJQGAaXR5OkM=/0x0:2048x1152/800x0/images/Yacine-Adli-1161543.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "d710cfed83b398703c9dd87679e05ae6", + "highlights": [] + }, + { + "title": "Metz-Nice en direct: les Niçois font le break!", + "description": "Suivez en direct commenté sur notre site la rencontre Metz-Nice, comptant pour la 22e journée de Ligue 1. Le coup d'envoi est prévu à 13h.

    ", + "content": "Suivez en direct commenté sur notre site la rencontre Metz-Nice, comptant pour la 22e journée de Ligue 1. Le coup d'envoi est prévu à 13h.

    ", + "category": "", + "link": "https://rmcsport.bfmtv.com/football/ligue-1/metz-nice-en-direct-les-nicois-pour-reprendre-leur-place-de-dauphin_LS-202201230098.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 11:11:09 GMT", + "enclosure": "https://images.bfmtv.com/V2VepbNniP5iWLf7Xf8woIpA5h8=/0x0:2048x1152/800x0/images/Metz-Nice-Ndoram-face-a-Pajot-1221239.jpg", + "enclosureType": "image/jpg", + "image": "https://images.bfmtv.com/V2VepbNniP5iWLf7Xf8woIpA5h8=/0x0:2048x1152/800x0/images/Metz-Nice-Ndoram-face-a-Pajot-1221239.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "RMC Sport", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "1b09a3f67f84c586548bc89eb9c58674", + "highlights": [] + }, { "title": "L'Open d'Australie défend l'interdiction des tee-shirts \"Où est Peng Shuai?\"", "description": "Si les messages politiques ne sont pas autorisés au sein des stades de l'Open d'Australie, le premier tournoi du Grand Chelem de la saison assure néanmoins que la situation de Peng Shuai est leur \"principale préoccupation\". Le monde du tennis s'inquiète depuis plusieurs semaines pour la santé de la joueuse chinoise.

    ", @@ -111661,6 +112431,380 @@ "image": "", "description": "Le site de l'actualité football, vue autrement. Un contenu original et décalé, un suivi pas à pas de l'actu foot en France, en Europe, dans le monde entier et ailleurs.", "items": [ + { + "title": "Aucun but inscrit pour Arsenal depuis quatre matchs", + "description": "Le mutisme londonien.
    \n
    \nEn concédant un match nul face à Burnley ce dimanche (0-0), Arsenal a enchaîné une…

    ", + "content": "Le mutisme londonien.
    \n
    \nEn concédant un match nul face à Burnley ce dimanche (0-0), Arsenal a enchaîné une…

    ", + "category": "", + "link": "https://www.sofoot.com/aucun-but-inscrit-pour-arsenal-depuis-quatre-matchs-509922.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T17:11:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-aucun-but-inscrit-pour-arsenal-depuis-quatre-matchs-1642957849_x600_articles-509922.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-aucun-but-inscrit-pour-arsenal-depuis-quatre-matchs-1642957849_x600_articles-509922.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "f4ea892371fb36230af199e2ea0cda97", + "highlights": [] + }, + { + "title": "\"Nous devons prendre exemple sur la France pour le Covid\" affirme Oliver Glasner", + "description": "Jean Castex fait des émules en Deutschland.
    \n
    \nDans une interview pour Bild ce dimanche, Oliver Glasner, entraîneur de l'Eintracht Francfort, a exprimé son mécontentement quant…

    ", + "content": "Jean Castex fait des émules en Deutschland.
    \n
    \nDans une interview pour Bild ce dimanche, Oliver Glasner, entraîneur de l'Eintracht Francfort, a exprimé son mécontentement quant…

    ", + "category": "", + "link": "https://www.sofoot.com/nous-devons-prendre-exemple-sur-la-france-pour-le-covid-affirme-oliver-glasner-509921.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:31:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-nous-devons-prendre-exemple-sur-la-france-pour-le-covid-affirme-oliver-glasner-1642955476_x600_articles-509921.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-nous-devons-prendre-exemple-sur-la-france-pour-le-covid-affirme-oliver-glasner-1642955476_x600_articles-509921.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7d0bccd7ca0451ba5d9ad9275698a5fd", + "highlights": [] + }, + { + "title": "Leipzig enfonce Wolfsburg", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/leipzig-enfonce-wolfsburg-509917.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:30:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-leipzig-enfonce-wolfsburg-1642955642_x600_articles-509917.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-leipzig-enfonce-wolfsburg-1642955642_x600_articles-509917.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "69c9ca47b9eb65c83b35b0a2e677ecff", + "highlights": [] + }, + { + "title": "Naples enfonce la Salernitana et met la pression sur l'AC Milan", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/naples-enfonce-la-salernitana-et-met-la-pression-sur-l-ac-milan-509892.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:22:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-naples-enfonce-la-salernitana-et-met-la-pression-sur-l-ac-milan-1642954994_x600_articles-509892.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-naples-enfonce-la-salernitana-et-met-la-pression-sur-l-ac-milan-1642954994_x600_articles-509892.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "db98811d766dfab7cde33fc77716ba0d", + "highlights": [] + }, + { + "title": "Le FC Nantes punit le FC Lorient", + "description": "Le Kombouaré ball a encore frappé à la Beaujoire.

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/le-fc-nantes-punit-le-fc-lorient-509911.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:05:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-le-fc-nantes-punit-le-fc-lorient-1642953911_x600_articles-509911.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-le-fc-nantes-punit-le-fc-lorient-1642953911_x600_articles-509911.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "ce6403907e40cbf2898504e314dc9321", + "highlights": [] + }, + { + "title": "Bordeaux se réveille de manière spectaculaire contre Strasbourg", + "description": "Non, Bordeaux n'est pas mort.

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/bordeaux-se-reveille-de-maniere-spectaculaire-contre-strasbourg-509907.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:05:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-bordeaux-se-reveille-de-maniere-spectaculaire-contre-strasbourg-1642953964_x600_articles-509907.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-bordeaux-se-reveille-de-maniere-spectaculaire-contre-strasbourg-1642953964_x600_articles-509907.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "62923ed5272a86392414fa92aa7c6d4a", + "highlights": [] + }, + { + "title": "Leicester rattrapé par Brighton", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/leicester-rattrape-par-brighton-509915.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:00:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-leicester-rattrape-par-brighton-1642953158_x600_articles-509915.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-leicester-rattrape-par-brighton-1642953158_x600_articles-509915.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "daaa096fc947732514cf5c618be759d5", + "highlights": [] + }, + { + "title": "Arsenal frustré par Burnley", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/arsenal-frustre-par-burnley-509914.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:00:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-arsenal-frustre-par-burnley-1642954152_x600_articles-509914.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-arsenal-frustre-par-burnley-1642954152_x600_articles-509914.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "2b65d8bdb5708f92942f8cf70f9d3e9e", + "highlights": [] + }, + { + "title": "Angers renverse Troyes", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/angers-renverse-troyes-509910.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T16:00:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-angers-renverse-troyes-1642953575_x600_articles-509910.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-angers-renverse-troyes-1642953575_x600_articles-509910.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4b1eac20b567e1588690df0683b8a051", + "highlights": [] + }, + { + "title": "Rennes plombé par ses anciens à Clermont", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/rennes-plombe-par-ses-anciens-a-clermont-509906.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T15:57:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-rennes-plombe-par-ses-anciens-a-clermont-1642953502_x600_articles-509906.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-rennes-plombe-par-ses-anciens-a-clermont-1642953502_x600_articles-509906.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "01fb02853efeb4b657f509c00cd73549", + "highlights": [] + }, + { + "title": "Liverpool s'extirpe du piège Crystal Palace dans la souffrance", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/liverpool-s-extirpe-du-piege-crystal-palace-dans-la-souffrance-509899.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T15:55:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-liverpool-s-extirpe-du-piege-crystal-palace-dans-la-souffrance-1642952974_x600_articles-509899.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-liverpool-s-extirpe-du-piege-crystal-palace-dans-la-souffrance-1642952974_x600_articles-509899.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "cb346ede5ade04795c0a14bbafc43629", + "highlights": [] + }, + { + "title": "Virginia Torrecilla a rejoué après deux ans d'absence et une tumeur au cerveau", + "description": "Le succès, même dans la défaite.
    \n
    \nCe dimanche, se jouait la finale de la Supercoupe d'Espagne féminine entre le FC Barcelone et l'Atlético. Une victoire des Catalanes (7-0), surtout…

    ", + "content": "Le succès, même dans la défaite.
    \n
    \nCe dimanche, se jouait la finale de la Supercoupe d'Espagne féminine entre le FC Barcelone et l'Atlético. Une victoire des Catalanes (7-0), surtout…

    ", + "category": "", + "link": "https://www.sofoot.com/virginia-torrecilla-a-rejoue-apres-deux-ans-d-absence-et-une-tumeur-au-cerveau-509919.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T15:43:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-virginia-torrecilla-a-rejoue-apres-deux-ans-d-absence-et-une-tumeur-au-cerveau-1642952618_x600_articles-509919.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-virginia-torrecilla-a-rejoue-apres-deux-ans-d-absence-et-une-tumeur-au-cerveau-1642952618_x600_articles-509919.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "19a9fa046038eca47d69c739826daa7f", + "highlights": [] + }, + { + "title": "L'Ajax ravit la victoire et la place de leader au PSV", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/l-ajax-ravit-la-victoire-et-la-place-de-leader-au-psv-509902.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T15:35:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-l-ajax-ravit-la-victoire-et-la-place-de-leader-au-psv-1642947897_x600_articles-509902.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-l-ajax-ravit-la-victoire-et-la-place-de-leader-au-psv-1642947897_x600_articles-509902.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4c560ae179ed9af95304bac38eb03dab", + "highlights": [] + }, + { + "title": "Le Molineux Stadium de Wolverhampton partiellement touché par un incendie", + "description": "Le Molineux Stadium a été le théâtre d'un vaste incendie dans la soirée de samedi à dimanche. Comme l'annonce le club dans un communiqué, le feu se serait effectivement déclaré vers deux…", + "content": "Le Molineux Stadium a été le théâtre d'un vaste incendie dans la soirée de samedi à dimanche. Comme l'annonce le club dans un communiqué, le feu se serait effectivement déclaré vers deux…", + "category": "", + "link": "https://www.sofoot.com/le-molineux-stadium-de-wolverhampton-partiellement-touche-par-un-incendie-509916.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T15:27:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-le-molineux-stadium-de-wolverhampton-partiellement-touche-par-un-incendie-1642951566_x600_articles-509916.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-le-molineux-stadium-de-wolverhampton-partiellement-touche-par-un-incendie-1642951566_x600_articles-509916.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "c418102156ccfa492ba78020b8396795", + "highlights": [] + }, + { + "title": "Josip Iličić souffre d'une nouvelle dépression", + "description": "Le football en arrière plan.
    \n
    \nPrésent en conférence de presse ce samedi, Gian Piero Gasperini est revenu sur les absences de Josip Iličić dans le groupe de l'Atalanta pour les…

    ", + "content": "Le football en arrière plan.
    \n
    \nPrésent en conférence de presse ce samedi, Gian Piero Gasperini est revenu sur les absences de Josip Iličić dans le groupe de l'Atalanta pour les…

    ", + "category": "", + "link": "https://www.sofoot.com/josip-ilicic-souffre-d-une-nouvelle-depression-509912.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T14:22:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-josip-ilicic-souffre-d-une-nouvelle-depression-1642947649_x600_articles-509912.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-josip-ilicic-souffre-d-une-nouvelle-depression-1642947649_x600_articles-509912.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "d99ae4184efe74a3a7e47e1833560ba5", + "highlights": [] + }, + { + "title": "Nice écarte Metz et repasse dauphin", + "description": "

    ", + "content": "

    ", + "category": "", + "link": "https://www.sofoot.com/nice-ecarte-metz-et-repasse-dauphin-509904.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T13:59:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-nice-ecarte-metz-et-repasse-dauphin-1642946394_x600_articles-509904.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-nice-ecarte-metz-et-repasse-dauphin-1642946394_x600_articles-509904.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "86bde1e84308d34738ae776ba9ff67cd", + "highlights": [] + }, + { + "title": "Wilson Isidor rejoint le Lokomotiv Moscou", + "description": "Russian connection.
    \n
    \nAnnoncé depuis quelques jours, le transfert de Wilson Isidor au Lokomotiv Moscou est désormais officiel. L'AS Monaco a en effet trouvé un accord à hauteur de 3,5…

    ", + "content": "Russian connection.
    \n
    \nAnnoncé depuis quelques jours, le transfert de Wilson Isidor au Lokomotiv Moscou est désormais officiel. L'AS Monaco a en effet trouvé un accord à hauteur de 3,5…

    ", + "category": "", + "link": "https://www.sofoot.com/wilson-isidor-rejoint-le-lokomotiv-moscou-509908.html", + "creator": "SO FOOT", + "pubDate": "2022-01-23T13:34:00Z", + "enclosure": "https://www.sofoot.com/IMG/img-wilson-isidor-rejoint-le-lokomotiv-moscou-1642944857_x600_articles-509908.jpg", + "enclosureType": "image/jpeg", + "image": "https://www.sofoot.com/IMG/img-wilson-isidor-rejoint-le-lokomotiv-moscou-1642944857_x600_articles-509908.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/Sport - FR", + "feed": "SoFoot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4e1ab36545e1976095f12b95ec2ab4d0", + "highlights": [] + }, { "title": "Benzema sur le Ballon d'or : \"Je ne pouvais pas faire plus\"", "description": "Ce n'est que partie remise.
    \n
    \nDerrière Lionel Messi, Roberto Lewandowski et Jorginho, Karim Benzema a quand même fière allure en terminant quatrième du Ballon d'or en 2021. Mais…

    ", @@ -164550,6 +165694,28 @@ "hash": "325ed32a67144e9d2ac42a26fa0f8f57", "highlights": [] }, + { + "title": "Stowaway found in South Africa plane wheel at Amsterdam airport", + "description": "A man is discovered alive in the wheel section of a plane that landed in Amsterdam from South Africa.", + "content": "A man is discovered alive in the wheel section of a plane that landed in Amsterdam from South Africa.", + "category": "", + "link": "https://www.bbc.co.uk/news/world-europe-60104010?at_medium=RSS&at_campaign=KARANGA", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:24:21 GMT", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "BBC Worldwide", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "efcf780fbb48ef7b7dee641e4df989ac", + "highlights": [] + }, { "title": "Jean-Jacques Savin: French adventurer dies crossing Atlantic Ocean", "description": "Jean-Jacques Savin, who was 75, had previously made the voyage in a large barrel.", @@ -164573,13 +165739,13 @@ "highlights": [] }, { - "title": "Burkina Faso military bases hit by heavy gunfire", - "description": "The government denies reports of a coup attempt or that the president had been detained.", - "content": "The government denies reports of a coup attempt or that the president had been detained.", + "title": "Burkina Faso soldiers mutiny at bases in Ouagadougou", + "description": "The government denies reports of a coup attempt or that the president has been detained.", + "content": "The government denies reports of a coup attempt or that the president has been detained.", "category": "", "link": "https://www.bbc.co.uk/news/world-africa-60102087?at_medium=RSS&at_campaign=KARANGA", "creator": "", - "pubDate": "Sun, 23 Jan 2022 11:12:43 GMT", + "pubDate": "Sun, 23 Jan 2022 16:00:08 GMT", "enclosure": "", "enclosureType": "", "image": "", @@ -164591,17 +165757,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "17b5ab1f4f60498179b5dc29667634c0", + "hash": "fed99023fc589e79ef600e1a75c8d140", "highlights": [] }, { - "title": "Cameroon nightclub fire: Liv's Night Club in Yaoundé hit by deadly blaze", - "description": "At least 16 people have been killed and eight others seriously wounded in the blaze.", - "content": "At least 16 people have been killed and eight others seriously wounded in the blaze.", + "title": "Sedef Kabas: Turkish journalist jailed for reciting proverb", + "description": "Sedef Kabas denies using the proverb to insult President Recep Tayyip Erdogan.", + "content": "Sedef Kabas denies using the proverb to insult President Recep Tayyip Erdogan.", "category": "", - "link": "https://www.bbc.co.uk/news/world-africa-60102088?at_medium=RSS&at_campaign=KARANGA", + "link": "https://www.bbc.co.uk/news/world-europe-60099931?at_medium=RSS&at_campaign=KARANGA", "creator": "", - "pubDate": "Sun, 23 Jan 2022 12:40:01 GMT", + "pubDate": "Sun, 23 Jan 2022 01:00:43 GMT", "enclosure": "", "enclosureType": "", "image": "", @@ -164613,17 +165779,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "25b39bf31f668b4564c9062294a64bd8", + "hash": "d9e3fe565902b5ffb75065868186efa8", "highlights": [] }, { - "title": "Sedef Kabas: Turkish journalist jailed for reciting proverb", - "description": "Sedef Kabas denies using the proverb to insult President Recep Tayyip Erdogan.", - "content": "Sedef Kabas denies using the proverb to insult President Recep Tayyip Erdogan.", + "title": "Cameroon nightclub fire: Liv's Night Club in Yaoundé hit by deadly blaze", + "description": "At least 16 people have been killed and eight others seriously wounded in the blaze.", + "content": "At least 16 people have been killed and eight others seriously wounded in the blaze.", "category": "", - "link": "https://www.bbc.co.uk/news/world-europe-60099931?at_medium=RSS&at_campaign=KARANGA", + "link": "https://www.bbc.co.uk/news/world-africa-60102088?at_medium=RSS&at_campaign=KARANGA", "creator": "", - "pubDate": "Sun, 23 Jan 2022 01:00:43 GMT", + "pubDate": "Sun, 23 Jan 2022 12:40:01 GMT", "enclosure": "", "enclosureType": "", "image": "", @@ -164635,7 +165801,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "d9e3fe565902b5ffb75065868186efa8", + "hash": "25b39bf31f668b4564c9062294a64bd8", "highlights": [] }, { @@ -165012,6 +166178,50 @@ "hash": "83d8d206781c10353e29f86ad7a09095", "highlights": [] }, + { + "title": "Burkina Faso soldiers at bases in Ouagadougou", + "description": "The government denies reports of a coup attempt or that the president has been detained.", + "content": "The government denies reports of a coup attempt or that the president has been detained.", + "category": "", + "link": "https://www.bbc.co.uk/news/world-africa-60102087?at_medium=RSS&at_campaign=KARANGA", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:00:08 GMT", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "BBC Worldwide", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "5134052c7e2872a404f1263a9d1593d7", + "highlights": [] + }, + { + "title": "Burkina Faso military bases hit by heavy gunfire", + "description": "The government denies reports of a coup attempt or that the president had been detained.", + "content": "The government denies reports of a coup attempt or that the president had been detained.", + "category": "", + "link": "https://www.bbc.co.uk/news/world-africa-60102087?at_medium=RSS&at_campaign=KARANGA", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 11:12:43 GMT", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "BBC Worldwide", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "17b5ab1f4f60498179b5dc29667634c0", + "highlights": [] + }, { "title": "Ros Atkins On... China's zero-Covid dilemma", "description": "Ros Atkins examines China's Covid elimination strategy, while others are learning to live with the virus.", @@ -198032,6 +199242,50 @@ "image": null, "description": "Do everything better", "items": [ + { + "title": "Everything You Shouldn’t Do to Your Hair During the Winter", + "description": "

    Not only can cold, dry winter air be problematic for your skin, it can cause some unwanted changes to your hair and scalp as well. This means that we may have to shift our haircare routines in order to protect it more throughout the season. And part of that is avoiding certain treatments and styling techniques that…

    Read more...

    ", + "content": "

    Not only can cold, dry winter air be problematic for your skin, it can cause some unwanted changes to your hair and scalp as well. This means that we may have to shift our haircare routines in order to protect it more throughout the season. And part of that is avoiding certain treatments and styling techniques that…

    Read more...

    ", + "category": "hair", + "link": "https://lifehacker.com/everything-you-shouldn-t-do-to-your-hair-during-the-win-1848405329", + "creator": "Elizabeth Yuko", + "pubDate": "Sun, 23 Jan 2022 16:45:00 GMT", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "Lifehacker", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "a384d9eb8d1f98aefe9bf530602260b4", + "highlights": [] + }, + { + "title": "How to Prevent Carbon Monoxide Poisoning in Your Home During the Winter", + "description": "

    Each year, carbon monoxide poisoning brings more than 20,000 Americans to the emergency room—around 4,000 of whom are hospitalized, the Centers for Disease Control and Prevention (CDC) reports. Additionally, more than 400 Americans die from unintentional carbon monoxide poisoning (not linked to fires).

    Read more...

    ", + "content": "

    Each year, carbon monoxide poisoning brings more than 20,000 Americans to the emergency room—around 4,000 of whom are hospitalized, the Centers for Disease Control and Prevention (CDC) reports. Additionally, more than 400 Americans die from unintentional carbon monoxide poisoning (not linked to fires).

    Read more...

    ", + "category": "carbon monoxide", + "link": "https://lifehacker.com/how-to-prevent-carbon-monoxide-poisoning-in-your-home-d-1848405325", + "creator": "Elizabeth Yuko", + "pubDate": "Sun, 23 Jan 2022 14:00:00 GMT", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "Lifehacker", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "99ac122782bf040176d6e5227a9ee86e", + "highlights": [] + }, { "title": "Answer These Questions Before Buying a House With a Friend", "description": "

    Owning a home has long been one of the pillars of the “American Dream.” And even with increasing numbers of people choosing to rent a home rather than buying one, there are still plenty of folks out there who’d rather make payments on a mortgage, instead of to a landlord.

    Read more...

    ", @@ -226789,14 +228043,36 @@ "hash": "d15e47b1aa051168f206aca3e5db143f", "highlights": [] }, + { + "title": "Covid Live Updates: Some Homes Have Started Getting Virus Tests in Mail From U.S. Government", + "description": "In some small U.S. towns, there is little room for error when the mayor has to call in sick with a virus infection. And for Winter Olympians, the last hurdle before the competition is staying healthy.", + "content": "In some small U.S. towns, there is little room for error when the mayor has to call in sick with a virus infection. And for Winter Olympians, the last hurdle before the competition is staying healthy.", + "category": "", + "link": "https://www.nytimes.com/live/2022/01/23/world/omicron-covid-vaccine-tests", + "creator": "The New York Times", + "pubDate": "Sun, 23 Jan 2022 15:26:42 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "14a1cb9b28a27a717fdeb595ab3aa96c", + "highlights": [] + }, { "title": "Olympians Face a Daunting Final Qualifying Event: Staying Healthy", - "description": "Canada’s men’s curling team at the 2021 Olympic trials, with two honorees on the right. Team members are isolating away from their families ahead of the Olympics.", - "content": "Canada’s men’s curling team at the 2021 Olympic trials, with two honorees on the right. Team members are isolating away from their families ahead of the Olympics.", + "description": "Members of Canada’s men’s curling team, the four on the left, are isolating away from their families ahead of the Olympics.", + "content": "Members of Canada’s men’s curling team, the four on the left, are isolating away from their families ahead of the Olympics.", "category": "Coronavirus Risks and Safety Concerns", - "link": "https://www.nytimes.com/2022/01/23/sports/2022-beijing-covid-coronavirus.html", + "link": "https://www.nytimes.com/2022/01/23/sports/covid-olympics-athletes.html", "creator": "Andrew Keh", - "pubDate": "Sun, 23 Jan 2022 10:00:15 +0000", + "pubDate": "Sun, 23 Jan 2022 12:30:22 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -226808,7 +228084,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "76bfc50dd4f777f4519049e5232987d5", + "hash": "7f9d643edfb1d764ecfac98e1c0a3084", "highlights": [] }, { @@ -226859,10 +228135,10 @@ "title": "For Many Who Marched, Jan. 6 Was Only the Beginning", "description": "President Donald J. Trump at a rally on Jan. 6, 2021. Thousands who traveled to Washington to protest the election results didn’t set foot in the Capitol, but many of them see the date as the dawn of a new movement fueled by grievances against vaccines and President Biden.", "content": "President Donald J. Trump at a rally on Jan. 6, 2021. Thousands who traveled to Washington to protest the election results didn’t set foot in the Capitol, but many of them see the date as the dawn of a new movement fueled by grievances against vaccines and President Biden.", - "category": "United States Politics and Government", - "link": "https://www.nytimes.com/2022/01/23/us/for-many-who-marched-jan-6-was-only-the-beginning.html", + "category": "Storming of the US Capitol (Jan, 2021)", + "link": "https://www.nytimes.com/2022/01/23/us/jan-6-attendees.html", "creator": "Elizabeth Dias and Jack Healy", - "pubDate": "Sun, 23 Jan 2022 08:00:09 +0000", + "pubDate": "Sun, 23 Jan 2022 08:00:10 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -226874,17 +228150,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "b5aff867957d40b6035cb736733cd28d", + "hash": "17e18828068186e4255903e6a593885a", "highlights": [] }, { - "title": "How a Calm Call for Help Led 2 N.Y.P.D. Officers Into a Hail of Gunfire", - "description": "Two police officers were shot inside a Harlem apartment Friday night while responding to a call about a mother and son fighting, the police said.", - "content": "Two police officers were shot inside a Harlem apartment Friday night while responding to a call about a mother and son fighting, the police said.", - "category": "Attacks on Police", - "link": "https://www.nytimes.com/2022/01/22/nyregion/nypd-officers-shot-harlem.html", - "creator": "Michael Wilson", - "pubDate": "Sat, 22 Jan 2022 20:42:09 +0000", + "title": "The Uncertain Future for Aaron Rodgers in Green Bay", + "description": "Aaron Rodgers has played with the Green Bay Packers for 17 seasons. His future, he has said, is something of a “beautiful mystery.”", + "content": "Aaron Rodgers has played with the Green Bay Packers for 17 seasons. His future, he has said, is something of a “beautiful mystery.”", + "category": "Football", + "link": "https://www.nytimes.com/2022/01/23/sports/football/aaron-rodgers-green-bay-packers.html", + "creator": "Ben Shpigel", + "pubDate": "Sun, 23 Jan 2022 08:15:43 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -226896,7 +228172,51 @@ "favorite": false, "created": false, "tags": [], - "hash": "ddd358a3d62ee770fc1f5592d7e7e4b3", + "hash": "a3eb37aadc5dcf0c8163192cc70d8c30", + "highlights": [] + }, + { + "title": "N.F.L. Playoffs: 49ers Upset Packers in Divisional Round", + "description": "The return of Derrick Henry to the Tennessee Titans should be a significant factor in their game against the Cincinnati Bengals.", + "content": "The return of Derrick Henry to the Tennessee Titans should be a significant factor in their game against the Cincinnati Bengals.", + "category": "", + "link": "https://www.nytimes.com/live/2022/01/22/sports/nfl-playoffs-scores", + "creator": "The New York Times", + "pubDate": "Sun, 23 Jan 2022 05:41:56 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "fb83ac67f5477a18daed34bbc94cc1a7", + "highlights": [] + }, + { + "title": "What Time Are the Rams-Buccaneers and Chiefs-Bills Games Today?", + "description": "The Rams clinched the N.F.C.’s No. 3 seed and cruised past the Cardinals in the first round of the playoffs.", + "content": "The Rams clinched the N.F.C.’s No. 3 seed and cruised past the Cardinals in the first round of the playoffs.", + "category": "Football", + "link": "https://www.nytimes.com/2022/01/23/sports/nfl-playoffs-divisional-round.html", + "creator": "Alanis Thames and Emmanuel Morgan", + "pubDate": "Sun, 23 Jan 2022 11:00:06 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "be0b32ed6e8c76d0bc696c695d17208b", "highlights": [] }, { @@ -226965,6 +228285,28 @@ "hash": "5658007c10504db3d3a1ce626684f509", "highlights": [] }, + { + "title": "Can Works Like 'Don't Look Up' Get Us Out of Our Heads?", + "description": "In the doomsday smash and Bo Burnham’s pandemic musical “Inside,” themes of climate change, digital distraction and inequality merge and hit home.", + "content": "In the doomsday smash and Bo Burnham’s pandemic musical “Inside,” themes of climate change, digital distraction and inequality merge and hit home.", + "category": "Movies", + "link": "https://www.nytimes.com/2022/01/23/arts/television/dont-look-up-climate-change.html", + "creator": "Maya Salam", + "pubDate": "Sun, 23 Jan 2022 16:40:05 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b43df2be28b97f714280f8de73bdbe7d", + "highlights": [] + }, { "title": "‘The Gilded Age’ Finally Arrives on HBO", "description": "“The Gilded Age” is set in 1880s New York amid the class conflicts between old money and the nouveau riche (with, center from left, Christine Baranski, Cynthia Nixon and Louisa Jacobson).", @@ -227010,13 +228352,13 @@ "highlights": [] }, { - "title": "Brian Cox Takes Stock of His Eventful Life on Stage and Screen", - "description": "In “Putting the Rabbit in the Hat,” the actor currently thriving as Logan Roy in “Succession” recounts his Scottish upbringing, his years in the theater and his experiences in Hollywood.", - "content": "In “Putting the Rabbit in the Hat,” the actor currently thriving as Logan Roy in “Succession” recounts his Scottish upbringing, his years in the theater and his experiences in Hollywood.", - "category": "Cox, Brian", - "link": "https://www.nytimes.com/2022/01/21/books/review-brian-cox-memoir-putting-rabbit-in-hat.html", - "creator": "Alexandra Jacobs", - "pubDate": "Fri, 21 Jan 2022 19:45:00 +0000", + "title": "Ann Coulter Is Rooting for a Trump-DeSantis Throw-Down. She’s Not Alone.", + "description": "The former president and the governor of Florida are on a collision course for the future of the G.OP.", + "content": "The former president and the governor of Florida are on a collision course for the future of the G.OP.", + "category": "United States Politics and Government", + "link": "https://www.nytimes.com/2022/01/23/opinion/ann-coulter-trump-ron-desantis.html", + "creator": "Michelle Cottle", + "pubDate": "Sun, 23 Jan 2022 16:00:22 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227028,7 +228370,51 @@ "favorite": false, "created": false, "tags": [], - "hash": "d24ec44fc899a660685447aca64d4aee", + "hash": "4224de229f8a1b54d26e50287d22659c", + "highlights": [] + }, + { + "title": "Can We Turn a Desert Into a Forest?", + "description": "After years of planting trees, farmers in Niger have begun to see results.", + "content": "After years of planting trees, farmers in Niger have begun to see results.", + "category": "Trees and Shrubs", + "link": "https://www.nytimes.com/2022/01/23/opinion/great-green-wall-niger.html", + "creator": "Raul Roman, Lauren Kelly, Rafe H. Andrews and Nick Parisse", + "pubDate": "Sun, 23 Jan 2022 16:00:12 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "1289341b004219932da967500b7d99b9", + "highlights": [] + }, + { + "title": "President Biden’s Economy Is Failing the Big Mac Test", + "description": "The administration made a lot of the right economic moves in its first year, but high inflation is reason enough to postpone any celebrations.", + "content": "The administration made a lot of the right economic moves in its first year, but high inflation is reason enough to postpone any celebrations.", + "category": "United States Economy", + "link": "https://www.nytimes.com/2022/01/22/opinion/president-biden-inflation-economy.html", + "creator": "The Editorial Board", + "pubDate": "Sat, 22 Jan 2022 16:02:46 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "5ae8894aefab3ddb84595ec5775e5045", "highlights": [] }, { @@ -227053,6 +228439,28 @@ "hash": "6e78a59bf6127cf45b0b0a0c82bd1326", "highlights": [] }, + { + "title": "Pakistan’s Army Is Trying to Balance the U.S. and China", + "description": "As U.S.-China competition intensifies, Pakistan’s army fears getting trapped in a cul-de-sac with Beijing.", + "content": "As U.S.-China competition intensifies, Pakistan’s army fears getting trapped in a cul-de-sac with Beijing.", + "category": "United States International Relations", + "link": "https://www.nytimes.com/2022/01/23/opinion/pakistan-united-states-china.html", + "creator": "Arif Rafiq", + "pubDate": "Sun, 23 Jan 2022 16:00:06 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "d22b12d81d20a4ef5ed7ae8242882c66", + "highlights": [] + }, { "title": "The N.F.L.'s Race Problem", "description": "The league is down to just one Black head coach.", @@ -227076,13 +228484,13 @@ "highlights": [] }, { - "title": "President Biden’s Economy Is Failing the Big Mac Test", - "description": "The administration made a lot of the right economic moves in its first year, but high inflation is reason enough to postpone any celebrations.", - "content": "The administration made a lot of the right economic moves in its first year, but high inflation is reason enough to postpone any celebrations.", - "category": "United States Economy", - "link": "https://www.nytimes.com/2022/01/22/opinion/president-biden-inflation-economy.html", - "creator": "The Editorial Board", - "pubDate": "Sat, 22 Jan 2022 16:02:46 +0000", + "title": "Why Covid-19 Didn’t Create the Nursing Crisis", + "description": "Nurses would like to set the record straight on the hospital staffing crisis.", + "content": "Nurses would like to set the record straight on the hospital staffing crisis.", + "category": "Nursing and Nurses", + "link": "https://www.nytimes.com/2022/01/19/opinion/nurses-staffing-hospitals-covid-19.html", + "creator": "Lucy King and Jonah M. Kessel", + "pubDate": "Wed, 19 Jan 2022 10:00:12 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227090,11 +228498,11 @@ "language": "en", "folder": "00.03 News/News - EN", "feed": "NYTimes", - "read": true, + "read": false, "favorite": false, "created": false, "tags": [], - "hash": "5ae8894aefab3ddb84595ec5775e5045", + "hash": "369032a62e9de625c930648421730b15", "highlights": [] }, { @@ -227164,13 +228572,13 @@ "highlights": [] }, { - "title": "The Systemic Realities Created by Legal Abortion", - "description": "Thoughts on the 49th anniversary of Roe v. Wade.", - "content": "Thoughts on the 49th anniversary of Roe v. Wade.", + "title": "On the Filibuster, Joe Manchin Thinks James Madison Is on His Side. Nope.", + "description": "Arguments about the filibuster need the right context.", + "content": "Arguments about the filibuster need the right context.", "category": "internal-sub-only-nl", - "link": "https://www.nytimes.com/2022/01/22/opinion/roe-legal-abortion.html", - "creator": "Tish Harrison Warren", - "pubDate": "Sat, 22 Jan 2022 16:15:08 +0000", + "link": "https://www.nytimes.com/2022/01/22/opinion/joe-manchin-filibuster-james-madison.html", + "creator": "Jamelle Bouie", + "pubDate": "Sat, 22 Jan 2022 16:15:09 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227182,17 +228590,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "117198a36db81c1038b3c7451cacc3e6", + "hash": "7f764dc66d931adcd902b6d9148f06cf", "highlights": [] }, { - "title": "On the Filibuster, Joe Manchin Thinks James Madison Is on His Side. Nope.", - "description": "Arguments about the filibuster need the right context.", - "content": "Arguments about the filibuster need the right context.", - "category": "internal-sub-only-nl", - "link": "https://www.nytimes.com/2022/01/22/opinion/joe-manchin-filibuster-james-madison.html", - "creator": "Jamelle Bouie", - "pubDate": "Sat, 22 Jan 2022 16:15:09 +0000", + "title": "The One Regret From My Time Leading Planned Parenthood", + "description": "The erosion of reproductive rights is a result of raw, bare-knuckled politics, as a minority exercises its power over a majority.", + "content": "The erosion of reproductive rights is a result of raw, bare-knuckled politics, as a minority exercises its power over a majority.", + "category": "United States Politics and Government", + "link": "https://www.nytimes.com/2022/01/21/opinion/abortion-roe-anniversary.html", + "creator": "Cecile Richards", + "pubDate": "Fri, 21 Jan 2022 13:01:24 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227204,7 +228612,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "7f764dc66d931adcd902b6d9148f06cf", + "hash": "ac28ad7594e24ede4ba2b08be805de81", "highlights": [] }, { @@ -227252,123 +228660,13 @@ "highlights": [] }, { - "title": "Readers Have Questions About Stocks. An Economist Replies.", - "description": "The economist Laurence Kotlikoff responds to questions from Times readers.", - "content": "The economist Laurence Kotlikoff responds to questions from Times readers.", - "category": "internal-sub-only-nl", - "link": "https://www.nytimes.com/2022/01/21/opinion/investing-stocks-retirement.html", - "creator": "Peter Coy", - "pubDate": "Fri, 21 Jan 2022 23:18:48 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "349635b4d56b19181981c670f70861b7", - "highlights": [] - }, - { - "title": "The One Regret From My Time Leading Planned Parenthood", - "description": "The erosion of reproductive rights is a result of raw, bare-knuckled politics, as a minority exercises its power over a majority.", - "content": "The erosion of reproductive rights is a result of raw, bare-knuckled politics, as a minority exercises its power over a majority.", - "category": "United States Politics and Government", - "link": "https://www.nytimes.com/2022/01/21/opinion/abortion-roe-anniversary.html", - "creator": "Cecile Richards", - "pubDate": "Fri, 21 Jan 2022 13:01:24 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "ac28ad7594e24ede4ba2b08be805de81", - "highlights": [] - }, - { - "title": "Why the Medical Establishment Shied Away From Abortion", - "description": "Stigma and fear of harassment have kept physicians from incorporating abortion into their practice.", - "content": "Stigma and fear of harassment have kept physicians from incorporating abortion into their practice.", - "category": "Abortion", - "link": "https://www.nytimes.com/2022/01/21/opinion/roe-v-wade-abortion-doctors-violence.html", - "creator": "Eyal Press", - "pubDate": "Fri, 21 Jan 2022 10:06:02 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "3c63d20e1acf7651ce53f65b302c050b", - "highlights": [] - }, - { - "title": "Imani Perry: The Legacy of Slavery in New Orleans", - "description": "The city has been shaped by both suffering and celebration, and its strength lies in its dualities.", - "content": "The city has been shaped by both suffering and celebration, and its strength lies in its dualities.", - "category": "Slavery (Historical)", - "link": "https://www.nytimes.com/2022/01/21/opinion/new-orleans-slavery.html", - "creator": "Imani Perry", - "pubDate": "Fri, 21 Jan 2022 10:00:10 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "ab89dad8aca1ac3240e9e25390577f6c", - "highlights": [] - }, - { - "title": "Tough Decisions About End-of-Life Care", - "description": " ", - "content": " ", - "category": "Living Wills and Health Care Proxies", - "link": "https://www.nytimes.com/2022/01/22/opinion/letters/advance-directives-death.html", - "creator": "", - "pubDate": "Sat, 22 Jan 2022 16:30:05 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "08ad0887b3be1a58b0cee3ba8af33454", - "highlights": [] - }, - { - "title": "Thich Nhat Hanh, Monk, Zen Master and Activist, Dies at 95", - "description": "Thich Nhat Hanh during a ceremony in Ho Chi Minh City in 2007. He had lived in exile for decades. ", - "content": "Thich Nhat Hanh during a ceremony in Ho Chi Minh City in 2007. He had lived in exile for decades. ", - "category": "Buddhism", - "link": "https://www.nytimes.com/2022/01/21/world/asia/thich-nhat-hanh-dead.html", - "creator": "Seth Mydans", - "pubDate": "Sat, 22 Jan 2022 20:51:44 +0000", + "title": "What Designers Have Been Doing at Home During the Pandemic", + "description": "Here’s what it looks like when the professionals take on D.I.Y. projects. (Don’t feel bad if they put yours to shame.)", + "content": "Here’s what it looks like when the professionals take on D.I.Y. projects. (Don’t feel bad if they put yours to shame.)", + "category": "Real Estate and Housing (Residential)", + "link": "https://www.nytimes.com/2022/01/21/realestate/architect-designer-pandemic-diy.html", + "creator": "Julie Lasky", + "pubDate": "Fri, 21 Jan 2022 10:00:39 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227380,17 +228678,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "a2f82b4efe560feef65a77ab42a88052", + "hash": "3d4490345a24e40f1a5741ae1efde4fc", "highlights": [] }, { - "title": "Seeking Enlightenment, He Disappeared Into a Hiker’s Bermuda Triangle", - "description": "Justin Alexander Shetler is the subject of Harley Rustad’s new book, “Lost in the Valley of Death.”", - "content": "Justin Alexander Shetler is the subject of Harley Rustad’s new book, “Lost in the Valley of Death.”", - "category": "Books and Literature", - "link": "https://www.nytimes.com/2022/01/21/books/review/lost-in-the-valley-of-death-harley-rustad.html", - "creator": "Michael Paterniti", - "pubDate": "Fri, 21 Jan 2022 18:27:56 +0000", + "title": "How China's Xi Jinping Is Staging the Beijing Olympics on His Terms", + "description": "Xi Jinping, China’s leader. Mr. Xi put his personal prestige on the line when China bid to host the 2022 Winter Games, and the country has come through on its promises.", + "content": "Xi Jinping, China’s leader. Mr. Xi put his personal prestige on the line when China bid to host the 2022 Winter Games, and the country has come through on its promises.", + "category": "Olympic Games", + "link": "https://www.nytimes.com/2022/01/22/world/asia/winter-olympics-china-beijing-xi-jinping.html", + "creator": "Steven Lee Myers, Keith Bradsher and Tariq Panja", + "pubDate": "Sat, 22 Jan 2022 12:53:34 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227402,39 +228700,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "0281bcd38011189a3be3fbdc082c1837", - "highlights": [] - }, - { - "title": "You Quit. I Quit. We All Quit. And It’s Not a Coincidence.", - "description": "Cat Del Carmen, left, and Erika Cruz are not exactly mourning having left their jobs. ", - "content": "Cat Del Carmen, left, and Erika Cruz are not exactly mourning having left their jobs. ", - "category": "Labor and Jobs", - "link": "https://www.nytimes.com/2022/01/21/business/quitting-contagious.html", - "creator": "Emma Goldberg", - "pubDate": "Fri, 21 Jan 2022 19:02:46 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": true, - "favorite": false, - "created": false, - "tags": [], - "hash": "5298f36ae63fb709a8226449e51844df", + "hash": "6da17ae4653e5596738d397402afa27a", "highlights": [] }, { - "title": "I’m Getting Married, Mom. Please Cry.", - "description": "Entering marriage as your mother leaves it can create an emotional disconnect.", - "content": "Entering marriage as your mother leaves it can create an emotional disconnect.", - "category": "Love (Emotion)", - "link": "https://www.nytimes.com/2022/01/21/style/modern-love-married-divorced-mother-please-cry.html", - "creator": "Katy Gathright", - "pubDate": "Fri, 21 Jan 2022 05:00:07 +0000", + "title": "What a Potential Russian Invasion Means in Chernobyl ", + "description": "The abandoned town of Prypiat, Ukraine, near the Ukraine-Belarus border. The town was evacuated on April 27, 1986, the day after the Chernobyl disaster.", + "content": "The abandoned town of Prypiat, Ukraine, near the Ukraine-Belarus border. The town was evacuated on April 27, 1986, the day after the Chernobyl disaster.", + "category": "Chernobyl (Ukraine)", + "link": "https://www.nytimes.com/2022/01/22/world/europe/chernobyl-ukraine-invasion-russia.html", + "creator": "Andrew E. Kramer and Tyler Hicks", + "pubDate": "Sat, 22 Jan 2022 10:00:18 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227446,17 +228722,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "6cd14dc1c7c58b64cab6726071f1a7a0", + "hash": "a96e741a1b5ea4c65c806675f3c45da9", "highlights": [] }, { - "title": "West Virginia Reporter Is Hit by Car on Air, Striking Nerve With TV Journalists", - "description": "Tori Yorgey, right, a reporter for WSAZ-TV in Charleston, W.Va., moments before she was struck by an S.U.V. during a live broadcast on Wednesday night.", - "content": "Tori Yorgey, right, a reporter for WSAZ-TV in Charleston, W.Va., moments before she was struck by an S.U.V. during a live broadcast on Wednesday night.", - "category": "Traffic Accidents and Safety", - "link": "https://www.nytimes.com/2022/01/20/us/reporter-hit-by-car.html", - "creator": "Amanda Holpuch", - "pubDate": "Fri, 21 Jan 2022 00:01:25 +0000", + "title": "English Island Seeks a Landlord-King Who Likes Solitude, Seals and Beer", + "description": "The Ship Inn and Piel Castle are the primary landmarks on Piel Island, off the northwestern coast of England. The local council is searching for a landlord to maintain the island and run the pub.", + "content": "The Ship Inn and Piel Castle are the primary landmarks on Piel Island, off the northwestern coast of England. The local council is searching for a landlord to maintain the island and run the pub.", + "category": "Landlords", + "link": "https://www.nytimes.com/2022/01/22/world/europe/piel-island-uk.html", + "creator": "Alan Yuhas", + "pubDate": "Sat, 22 Jan 2022 17:52:18 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227468,7 +228744,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "818ff7ea89fe0c1f0dfcd37b174132d2", + "hash": "5e547c2634427eca858d6010042393dd", "highlights": [] }, { @@ -227560,13 +228836,13 @@ "highlights": [] }, { - "title": "The Uncertain Future for Aaron Rodgers in Green Bay", - "description": "Aaron Rodgers has played with the Green Bay Packers for 17 seasons. His future, he has said, is something of a “beautiful mystery.”", - "content": "Aaron Rodgers has played with the Green Bay Packers for 17 seasons. His future, he has said, is something of a “beautiful mystery.”", - "category": "Football", - "link": "https://www.nytimes.com/2022/01/23/sports/football/aaron-rodgers-green-bay-packers.html", - "creator": "Ben Shpigel", - "pubDate": "Sun, 23 Jan 2022 08:15:43 +0000", + "title": "How a Calm Call for Help Led 2 N.Y.P.D. Officers Into a Hail of Gunfire", + "description": "Two police officers were shot inside a Harlem apartment Friday night while responding to a call about a mother and son fighting, the police said.", + "content": "Two police officers were shot inside a Harlem apartment Friday night while responding to a call about a mother and son fighting, the police said.", + "category": "Attacks on Police", + "link": "https://www.nytimes.com/2022/01/22/nyregion/nypd-officers-shot-harlem.html", + "creator": "Michael Wilson", + "pubDate": "Sat, 22 Jan 2022 20:42:09 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227578,7 +228854,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "a3eb37aadc5dcf0c8163192cc70d8c30", + "hash": "ddd358a3d62ee770fc1f5592d7e7e4b3", "highlights": [] }, { @@ -227626,13 +228902,13 @@ "highlights": [] }, { - "title": "A Grand Slam Streak Without (Yet) a Quarterfinal", - "description": "Alizé Cornet hitting a return against Tamara Zidansek at the Australia Open on Saturday.", - "content": "Alizé Cornet hitting a return against Tamara Zidansek at the Australia Open on Saturday.", - "category": "Tennis", - "link": "https://www.nytimes.com/2022/01/23/sports/tennis/alize-cornet-australian-open.html", - "creator": "Ben Rothenberg", - "pubDate": "Sun, 23 Jan 2022 12:00:05 +0000", + "title": "Gunfire Rattles Burkina Faso’s Capital as Soldiers Revolt", + "description": "The police used tear gas to disperse crowds in central Ouagadougou, Burkina Faso, on Sunday.", + "content": "The police used tear gas to disperse crowds in central Ouagadougou, Burkina Faso, on Sunday.", + "category": "Burkina Faso", + "link": "https://www.nytimes.com/2022/01/23/world/africa/burkina-faso-mutiny-gunfire.html", + "creator": "Declan Walsh", + "pubDate": "Sun, 23 Jan 2022 15:55:06 +0000", "enclosure": "", "enclosureType": "", "image": "", @@ -227644,7 +228920,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "3f13fa6a235fa894b38551b7f8b2e503", + "hash": "d73b398ed5cc429ef621535250b6c61d", "highlights": [] }, { @@ -227977,6 +229253,314 @@ "hash": "66e3526de2334eb97c9628efcfbf1564", "highlights": [] }, + { + "title": "Brian Cox Takes Stock of His Eventful Life on Stage and Screen", + "description": "In “Putting the Rabbit in the Hat,” the actor currently thriving as Logan Roy in “Succession” recounts his Scottish upbringing, his years in the theater and his experiences in Hollywood.", + "content": "In “Putting the Rabbit in the Hat,” the actor currently thriving as Logan Roy in “Succession” recounts his Scottish upbringing, his years in the theater and his experiences in Hollywood.", + "category": "Cox, Brian", + "link": "https://www.nytimes.com/2022/01/21/books/review-brian-cox-memoir-putting-rabbit-in-hat.html", + "creator": "Alexandra Jacobs", + "pubDate": "Fri, 21 Jan 2022 19:45:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "d24ec44fc899a660685447aca64d4aee", + "highlights": [] + }, + { + "title": "A Grand Slam Streak Without (Yet) a Quarterfinal", + "description": "Alizé Cornet hitting a return against Tamara Zidansek at the Australia Open on Saturday.", + "content": "Alizé Cornet hitting a return against Tamara Zidansek at the Australia Open on Saturday.", + "category": "Tennis", + "link": "https://www.nytimes.com/2022/01/23/sports/tennis/alize-cornet-australian-open.html", + "creator": "Ben Rothenberg", + "pubDate": "Sun, 23 Jan 2022 12:00:05 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "3f13fa6a235fa894b38551b7f8b2e503", + "highlights": [] + }, + { + "title": "For Many Who Marched, Jan. 6 Was Only the Beginning", + "description": "President Donald J. Trump at a rally on Jan. 6, 2021. Thousands who traveled to Washington to protest the election results didn’t set foot in the Capitol, but many of them see the date as the dawn of a new movement fueled by grievances against vaccines and President Biden.", + "content": "President Donald J. Trump at a rally on Jan. 6, 2021. Thousands who traveled to Washington to protest the election results didn’t set foot in the Capitol, but many of them see the date as the dawn of a new movement fueled by grievances against vaccines and President Biden.", + "category": "United States Politics and Government", + "link": "https://www.nytimes.com/2022/01/23/us/for-many-who-marched-jan-6-was-only-the-beginning.html", + "creator": "Elizabeth Dias and Jack Healy", + "pubDate": "Sun, 23 Jan 2022 08:00:09 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b5aff867957d40b6035cb736733cd28d", + "highlights": [] + }, + { + "title": "The Systemic Realities Created by Legal Abortion", + "description": "Thoughts on the 49th anniversary of Roe v. Wade.", + "content": "Thoughts on the 49th anniversary of Roe v. Wade.", + "category": "internal-sub-only-nl", + "link": "https://www.nytimes.com/2022/01/22/opinion/roe-legal-abortion.html", + "creator": "Tish Harrison Warren", + "pubDate": "Sat, 22 Jan 2022 16:15:08 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "117198a36db81c1038b3c7451cacc3e6", + "highlights": [] + }, + { + "title": "Readers Have Questions About Stocks. An Economist Replies.", + "description": "The economist Laurence Kotlikoff responds to questions from Times readers.", + "content": "The economist Laurence Kotlikoff responds to questions from Times readers.", + "category": "internal-sub-only-nl", + "link": "https://www.nytimes.com/2022/01/21/opinion/investing-stocks-retirement.html", + "creator": "Peter Coy", + "pubDate": "Fri, 21 Jan 2022 23:18:48 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "349635b4d56b19181981c670f70861b7", + "highlights": [] + }, + { + "title": "Why the Medical Establishment Shied Away From Abortion", + "description": "Stigma and fear of harassment have kept physicians from incorporating abortion into their practice.", + "content": "Stigma and fear of harassment have kept physicians from incorporating abortion into their practice.", + "category": "Abortion", + "link": "https://www.nytimes.com/2022/01/21/opinion/roe-v-wade-abortion-doctors-violence.html", + "creator": "Eyal Press", + "pubDate": "Fri, 21 Jan 2022 10:06:02 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "3c63d20e1acf7651ce53f65b302c050b", + "highlights": [] + }, + { + "title": "Imani Perry: The Legacy of Slavery in New Orleans", + "description": "The city has been shaped by both suffering and celebration, and its strength lies in its dualities.", + "content": "The city has been shaped by both suffering and celebration, and its strength lies in its dualities.", + "category": "Slavery (Historical)", + "link": "https://www.nytimes.com/2022/01/21/opinion/new-orleans-slavery.html", + "creator": "Imani Perry", + "pubDate": "Fri, 21 Jan 2022 10:00:10 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "ab89dad8aca1ac3240e9e25390577f6c", + "highlights": [] + }, + { + "title": "Tough Decisions About End-of-Life Care", + "description": " ", + "content": " ", + "category": "Living Wills and Health Care Proxies", + "link": "https://www.nytimes.com/2022/01/22/opinion/letters/advance-directives-death.html", + "creator": "", + "pubDate": "Sat, 22 Jan 2022 16:30:05 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "08ad0887b3be1a58b0cee3ba8af33454", + "highlights": [] + }, + { + "title": "Thich Nhat Hanh, Monk, Zen Master and Activist, Dies at 95", + "description": "Thich Nhat Hanh during a ceremony in Ho Chi Minh City in 2007. He had lived in exile for decades. ", + "content": "Thich Nhat Hanh during a ceremony in Ho Chi Minh City in 2007. He had lived in exile for decades. ", + "category": "Buddhism", + "link": "https://www.nytimes.com/2022/01/21/world/asia/thich-nhat-hanh-dead.html", + "creator": "Seth Mydans", + "pubDate": "Sat, 22 Jan 2022 20:51:44 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "a2f82b4efe560feef65a77ab42a88052", + "highlights": [] + }, + { + "title": "Seeking Enlightenment, He Disappeared Into a Hiker’s Bermuda Triangle", + "description": "Justin Alexander Shetler is the subject of Harley Rustad’s new book, “Lost in the Valley of Death.”", + "content": "Justin Alexander Shetler is the subject of Harley Rustad’s new book, “Lost in the Valley of Death.”", + "category": "Books and Literature", + "link": "https://www.nytimes.com/2022/01/21/books/review/lost-in-the-valley-of-death-harley-rustad.html", + "creator": "Michael Paterniti", + "pubDate": "Fri, 21 Jan 2022 18:27:56 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0281bcd38011189a3be3fbdc082c1837", + "highlights": [] + }, + { + "title": "You Quit. I Quit. We All Quit. And It’s Not a Coincidence.", + "description": "Cat Del Carmen, left, and Erika Cruz are not exactly mourning having left their jobs. ", + "content": "Cat Del Carmen, left, and Erika Cruz are not exactly mourning having left their jobs. ", + "category": "Labor and Jobs", + "link": "https://www.nytimes.com/2022/01/21/business/quitting-contagious.html", + "creator": "Emma Goldberg", + "pubDate": "Fri, 21 Jan 2022 19:02:46 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "5298f36ae63fb709a8226449e51844df", + "highlights": [] + }, + { + "title": "I’m Getting Married, Mom. Please Cry.", + "description": "Entering marriage as your mother leaves it can create an emotional disconnect.", + "content": "Entering marriage as your mother leaves it can create an emotional disconnect.", + "category": "Love (Emotion)", + "link": "https://www.nytimes.com/2022/01/21/style/modern-love-married-divorced-mother-please-cry.html", + "creator": "Katy Gathright", + "pubDate": "Fri, 21 Jan 2022 05:00:07 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "6cd14dc1c7c58b64cab6726071f1a7a0", + "highlights": [] + }, + { + "title": "West Virginia Reporter Is Hit by Car on Air, Striking Nerve With TV Journalists", + "description": "Tori Yorgey, right, a reporter for WSAZ-TV in Charleston, W.Va., moments before she was struck by an S.U.V. during a live broadcast on Wednesday night.", + "content": "Tori Yorgey, right, a reporter for WSAZ-TV in Charleston, W.Va., moments before she was struck by an S.U.V. during a live broadcast on Wednesday night.", + "category": "Traffic Accidents and Safety", + "link": "https://www.nytimes.com/2022/01/20/us/reporter-hit-by-car.html", + "creator": "Amanda Holpuch", + "pubDate": "Fri, 21 Jan 2022 00:01:25 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "818ff7ea89fe0c1f0dfcd37b174132d2", + "highlights": [] + }, + { + "title": "Olympians Face a Daunting Final Qualifying Event: Staying Healthy", + "description": "Canada’s men’s curling team at the 2021 Olympic trials, with two honorees on the right. Team members are isolating away from their families ahead of the Olympics.", + "content": "Canada’s men’s curling team at the 2021 Olympic trials, with two honorees on the right. Team members are isolating away from their families ahead of the Olympics.", + "category": "Coronavirus Risks and Safety Concerns", + "link": "https://www.nytimes.com/2022/01/23/sports/2022-beijing-covid-coronavirus.html", + "creator": "Andrew Keh", + "pubDate": "Sun, 23 Jan 2022 10:00:15 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "NYTimes", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "76bfc50dd4f777f4519049e5232987d5", + "highlights": [] + }, { "title": "Elizabeth Warren Claps Back at Elon Musk", "description": "The Massachusetts senator defends her plan to tax billionaires and break up Big Tech.", @@ -228153,50 +229737,6 @@ "hash": "c4f9f63bcd2f17561e58f461984e8d89", "highlights": [] }, - { - "title": "What a Potential Russian Invasion Means in Chernobyl ", - "description": "The abandoned town of Prypiat, Ukraine, near the Ukraine-Belarus border. The town was evacuated on April 27, 1986, the day after the Chernobyl disaster.", - "content": "The abandoned town of Prypiat, Ukraine, near the Ukraine-Belarus border. The town was evacuated on April 27, 1986, the day after the Chernobyl disaster.", - "category": "Chernobyl (Ukraine)", - "link": "https://www.nytimes.com/2022/01/22/world/europe/chernobyl-ukraine-invasion-russia.html", - "creator": "Andrew E. Kramer and Tyler Hicks", - "pubDate": "Sat, 22 Jan 2022 10:00:18 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "a96e741a1b5ea4c65c806675f3c45da9", - "highlights": [] - }, - { - "title": "How China's Xi Jinping Is Staging the Beijing Olympics on His Terms", - "description": "Xi Jinping, China’s leader. Mr. Xi put his personal prestige on the line when China bid to host the 2022 Winter Games, and the country has come through on its promises.", - "content": "Xi Jinping, China’s leader. Mr. Xi put his personal prestige on the line when China bid to host the 2022 Winter Games, and the country has come through on its promises.", - "category": "Olympic Games", - "link": "https://www.nytimes.com/2022/01/22/world/asia/winter-olympics-china-beijing-xi-jinping.html", - "creator": "Steven Lee Myers, Keith Bradsher and Tariq Panja", - "pubDate": "Sat, 22 Jan 2022 12:53:34 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "6da17ae4653e5596738d397402afa27a", - "highlights": [] - }, { "title": "Covid Live Updates: Ireland Plans Biggest St. Patrick’s Day Since Pandemic", "description": "The Emerald Isle has eased restrictions ahead of the March holiday. The United States expanded the use of remdesivir, an antiviral medication that had previously only been used in hospitals.", @@ -228219,28 +229759,6 @@ "hash": "6562cb987066ff416b7749f2ec4ff9a7", "highlights": [] }, - { - "title": "N.F.L. Playoffs: 49ers Upset Packers in Divisional Round", - "description": "The return of Derrick Henry to the Tennessee Titans should be a significant factor in their game against the Cincinnati Bengals.", - "content": "The return of Derrick Henry to the Tennessee Titans should be a significant factor in their game against the Cincinnati Bengals.", - "category": "", - "link": "https://www.nytimes.com/live/2022/01/22/sports/nfl-playoffs-scores", - "creator": "The New York Times", - "pubDate": "Sun, 23 Jan 2022 05:41:56 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "fb83ac67f5477a18daed34bbc94cc1a7", - "highlights": [] - }, { "title": "Jessica Pegula Cheers on Buffalo Bills From the Australian Open", "description": "Jessica Pegula returned against Spain’s Nuria Parrizas Diaz.", @@ -228307,28 +229825,6 @@ "hash": "527a7303dfe6c9be9abc94bfc2732716", "highlights": [] }, - { - "title": "English Island Seeks a Landlord-King Who Likes Solitude, Seals and Beer", - "description": "The Ship Inn and Piel Castle are the primary landmarks on Piel Island, off the northwestern coast of England. The local council is searching for a landlord to maintain the island and run the pub.", - "content": "The Ship Inn and Piel Castle are the primary landmarks on Piel Island, off the northwestern coast of England. The local council is searching for a landlord to maintain the island and run the pub.", - "category": "Landlords", - "link": "https://www.nytimes.com/2022/01/22/world/europe/piel-island-uk.html", - "creator": "Alan Yuhas", - "pubDate": "Sat, 22 Jan 2022 17:52:18 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "5e547c2634427eca858d6010042393dd", - "highlights": [] - }, { "title": "Some Women Are Keeping Their Pregnancies Secret During Pandemic", "description": "The pandemic has offered some women a choice they never had before: to keep their pregnancies secret til the very end.", @@ -228923,28 +230419,6 @@ "hash": "bc5e38421b85e6e9b384c2b6f3480d75", "highlights": [] }, - { - "title": "What Designers Have Been Doing at Home During the Pandemic", - "description": "Here’s what it looks like when the professionals take on D.I.Y. projects. (Don’t feel bad if they put yours to shame.)", - "content": "Here’s what it looks like when the professionals take on D.I.Y. projects. (Don’t feel bad if they put yours to shame.)", - "category": "Real Estate and Housing (Residential)", - "link": "https://www.nytimes.com/2022/01/21/realestate/architect-designer-pandemic-diy.html", - "creator": "Julie Lasky", - "pubDate": "Fri, 21 Jan 2022 10:00:39 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "3d4490345a24e40f1a5741ae1efde4fc", - "highlights": [] - }, { "title": "Francis Ngannou is the U.F.C.'s Fearsome, Quiet Champion", "description": "Francis Ngannou at his gym, Xtreme Couture MMA, in Las Vegas.", @@ -232619,28 +234093,6 @@ "hash": "cf20e2d55a26f673992776f98d94d980", "highlights": [] }, - { - "title": "Why Covid-19 Didn’t Create the Nursing Crisis", - "description": "Nurses would like to set the record straight on the hospital staffing crisis.", - "content": "Nurses would like to set the record straight on the hospital staffing crisis.", - "category": "Nursing and Nurses", - "link": "https://www.nytimes.com/2022/01/19/opinion/nurses-staffing-hospitals-covid-19.html", - "creator": "Lucy King and Jonah M. Kessel", - "pubDate": "Wed, 19 Jan 2022 10:00:12 +0000", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "NYTimes", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "369032a62e9de625c930648421730b15", - "highlights": [] - }, { "title": "Intel to Invest at Least $20 Billion in New Chip Factories in Ohio", "description": "In September, Intel announced a manufacturing expansion at its site in Chandler, Ariz. Patrick Gelsinger, Intel’s chief executive, has vowed to increase the company’s U.S. chip production further.", @@ -324082,13 +325534,13 @@ "highlights": [] }, { - "title": "Nusrat Ghani needs to make formal Islamophobia complaint, says Raab", - "description": "

    Deputy PM says former minister’s claim she lost job because of her faith will not be investigated without the complaint

    A Conservative MP who says she was told by a government whip that she had lost her ministerial role because her Muslim faith was “making colleagues uncomfortable” should make a formal complaint about the incident, Dominic Raab has said.

    Calling the allegations by Nusrat Ghani “incredibly serious”, Raab, the justice secretary and deputy prime minister, declined to say whether he believed his former government colleague, saying he was “not going to get into impugning anyone’s integrity”.

    Continue reading...", - "content": "

    Deputy PM says former minister’s claim she lost job because of her faith will not be investigated without the complaint

    A Conservative MP who says she was told by a government whip that she had lost her ministerial role because her Muslim faith was “making colleagues uncomfortable” should make a formal complaint about the incident, Dominic Raab has said.

    Calling the allegations by Nusrat Ghani “incredibly serious”, Raab, the justice secretary and deputy prime minister, declined to say whether he believed his former government colleague, saying he was “not going to get into impugning anyone’s integrity”.

    Continue reading...", + "title": "Nusrat Ghani: PM said he ‘could not get involved’ over ‘Muslimness’ sacking claim", + "description": "

    Ex-minister says she was rebuffed after telling Boris Johnson she was told she lost job because of her faith

    The row over Islamophobia gripping the government deepened on Sunday as the former minister Nusrat Ghani claimed the prime minister told her he “could not get involved” after she told him party whips had blamed her sacking on her “Muslimness”.

    Ghani’s claims have rocked the Tory party at a critical time for Boris Johnson, as he awaits a make-or-break inquiry into lockdown-flouting parties in Downing Street.

    Continue reading...", + "content": "

    Ex-minister says she was rebuffed after telling Boris Johnson she was told she lost job because of her faith

    The row over Islamophobia gripping the government deepened on Sunday as the former minister Nusrat Ghani claimed the prime minister told her he “could not get involved” after she told him party whips had blamed her sacking on her “Muslimness”.

    Ghani’s claims have rocked the Tory party at a critical time for Boris Johnson, as he awaits a make-or-break inquiry into lockdown-flouting parties in Downing Street.

    Continue reading...", "category": "Conservatives", "link": "https://www.theguardian.com/politics/2022/jan/23/nusrat-ghani-needs-to-make-formal-islamophobia-complaint-says-raab", - "creator": "Peter Walker Political correspondent", - "pubDate": "2022-01-23T09:56:04Z", + "creator": "Heather Stewart and Peter Walker", + "pubDate": "2022-01-23T16:01:03Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324100,17 +325552,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "ebb5f496a7d752d81386954ec11a406d", + "hash": "893625308d781416070bcb2100f4bb22", "highlights": [] }, { - "title": "Tennis Australia defends banning ‘Where is Peng Shuai?’ T-shirts at Australian Open", - "description": "

    Australian Open officials call police on protesters supporting the tennis player who disappeared after accusing top Chinese official of sexual assault

    Tennis Australia maintains Peng Shuai’s safety is its “primary concern” despite asking fans at Melbourne Park to remove T-shirts and a banner bearing the words “Where is Peng Shuai?”

    Australian Open players have continued to express concern for the wellbeing of the Chinese tennis player who in early November accused a senior Chinese official of sexual assault.

    Continue reading...", - "content": "

    Australian Open officials call police on protesters supporting the tennis player who disappeared after accusing top Chinese official of sexual assault

    Tennis Australia maintains Peng Shuai’s safety is its “primary concern” despite asking fans at Melbourne Park to remove T-shirts and a banner bearing the words “Where is Peng Shuai?”

    Australian Open players have continued to express concern for the wellbeing of the Chinese tennis player who in early November accused a senior Chinese official of sexual assault.

    Continue reading...", - "category": "Peng Shuai", - "link": "https://www.theguardian.com/sport/2022/jan/23/tennis-australia-says-peng-shuais-safety-its-primary-concern-despite-banning-t-shirtssupporting-chinese-player", - "creator": "Emma Kemp at Melbourne Park", - "pubDate": "2022-01-23T06:57:29Z", + "title": "Secret ballot to elect president of Italy begins as Berlusconi drops out", + "description": "

    Lawmakers and regional delegates will vote for successor to Sergio Mattarella, who steps down on 3 February

    Italian parliamentarians will begin casting their votes for a new president on Monday after scandal-plagued Silvio Berlusconi abandoned his dream of becoming the next head of state.

    More than 1,000 lawmakers and regional delegates will participate in the complex secret ballot, described as being akin to the appointment of a new pope, that could go through several rounds before a successor to Sergio Mattarella, who is due to step down on 3 February, is elected.

    Continue reading...", + "content": "

    Lawmakers and regional delegates will vote for successor to Sergio Mattarella, who steps down on 3 February

    Italian parliamentarians will begin casting their votes for a new president on Monday after scandal-plagued Silvio Berlusconi abandoned his dream of becoming the next head of state.

    More than 1,000 lawmakers and regional delegates will participate in the complex secret ballot, described as being akin to the appointment of a new pope, that could go through several rounds before a successor to Sergio Mattarella, who is due to step down on 3 February, is elected.

    Continue reading...", + "category": "Italy", + "link": "https://www.theguardian.com/world/2022/jan/23/italy-secret-ballot-president-berlusconi-drops-out", + "creator": "Angela Giuffrida in Rome", + "pubDate": "2022-01-23T12:03:30Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324122,17 +325574,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "d394c2b42f99e954a799b955effb3614", + "hash": "ea4e77ff46f2d00965df4844065be4e1", "highlights": [] }, { - "title": "UK is over worst of Covid but beware of bumps on the road, says Prof Ferguson", - "description": "

    Epidemiologist optimistic that UK deaths and hospitalisations will fall thanks to high immunity levels

    The UK is past the worst of the Covid pandemic but should be braced for some “possible bumps on the road”, according to the scientist who helped shape Britain’s lockdown strategy.

    Prof Neil Ferguson, an epidemiologist at Imperial College London, said things were looking up as the country passed the peak of yet another wave of coronavirus infections.

    Continue reading...", - "content": "

    Epidemiologist optimistic that UK deaths and hospitalisations will fall thanks to high immunity levels

    The UK is past the worst of the Covid pandemic but should be braced for some “possible bumps on the road”, according to the scientist who helped shape Britain’s lockdown strategy.

    Prof Neil Ferguson, an epidemiologist at Imperial College London, said things were looking up as the country passed the peak of yet another wave of coronavirus infections.

    Continue reading...", - "category": "Coronavirus", - "link": "https://www.theguardian.com/world/2022/jan/23/covid-uk-over-worst-says-prof-neil-ferguson", - "creator": "Nicola Davis Science correspondent", - "pubDate": "2022-01-23T12:10:14Z", + "title": "Brexit leaves furious British citizens stranded in EU countries", + "description": "

    Thousands of people say their rights have been compromised despite government promises

    A 67-year-old British woman who planned to return to Britain with her 80-year-old French husband after 30 years in France has told how Home Office delays have left them waiting almost a year for the Brexit paperwork they need to set foot in the country.

    Artists Carmel and her husband Louis sold their house last year and packed up all their belongings last summer having read that it would take 15 days to get a family permit.

    Continue reading...", + "content": "

    Thousands of people say their rights have been compromised despite government promises

    A 67-year-old British woman who planned to return to Britain with her 80-year-old French husband after 30 years in France has told how Home Office delays have left them waiting almost a year for the Brexit paperwork they need to set foot in the country.

    Artists Carmel and her husband Louis sold their house last year and packed up all their belongings last summer having read that it would take 15 days to get a family permit.

    Continue reading...", + "category": "Brexit", + "link": "https://www.theguardian.com/politics/2022/jan/23/brexit-leaves-furious-british-citizens-stranded-in-eu-countries", + "creator": "Lisa O'Carroll", + "pubDate": "2022-01-23T16:18:29Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324144,17 +325596,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "bac0433c5a78aa1e52c28d7390138ded", + "hash": "46a0a8128b35007e09601e0279b803a4", "highlights": [] }, { - "title": "Secret ballot to elect president of Italy begins as Berlusconi drops out", - "description": "

    Lawmakers and regional delegates will vote for successor to Sergio Mattarella, who steps down on 3 February

    Italian parliamentarians will begin casting their votes for a new president on Monday after scandal-plagued Silvio Berlusconi abandoned his dream of becoming the next head of state.

    More than 1,000 lawmakers and regional delegates will participate in the complex secret ballot, described as being akin to the appointment of a new pope, that could go through several rounds before a successor to Sergio Mattarella, who is due to step down on 3 February, is elected.

    Continue reading...", - "content": "

    Lawmakers and regional delegates will vote for successor to Sergio Mattarella, who steps down on 3 February

    Italian parliamentarians will begin casting their votes for a new president on Monday after scandal-plagued Silvio Berlusconi abandoned his dream of becoming the next head of state.

    More than 1,000 lawmakers and regional delegates will participate in the complex secret ballot, described as being akin to the appointment of a new pope, that could go through several rounds before a successor to Sergio Mattarella, who is due to step down on 3 February, is elected.

    Continue reading...", - "category": "Italy", - "link": "https://www.theguardian.com/world/2022/jan/23/italy-secret-ballot-president-berlusconi-drops-out", - "creator": "Angela Giuffrida in Rome", - "pubDate": "2022-01-23T12:03:30Z", + "title": "Tennis Australia defends banning ‘Where is Peng Shuai?’ T-shirts at Australian Open", + "description": "

    Australian Open officials call police on protesters supporting the tennis player who disappeared after accusing top Chinese official of sexual assault

    Tennis Australia maintains Peng Shuai’s safety is its “primary concern” despite asking fans at Melbourne Park to remove T-shirts and a banner bearing the words “Where is Peng Shuai?”

    Australian Open players have continued to express concern for the wellbeing of the Chinese tennis player who in early November accused a senior Chinese official of sexual assault.

    Continue reading...", + "content": "

    Australian Open officials call police on protesters supporting the tennis player who disappeared after accusing top Chinese official of sexual assault

    Tennis Australia maintains Peng Shuai’s safety is its “primary concern” despite asking fans at Melbourne Park to remove T-shirts and a banner bearing the words “Where is Peng Shuai?”

    Australian Open players have continued to express concern for the wellbeing of the Chinese tennis player who in early November accused a senior Chinese official of sexual assault.

    Continue reading...", + "category": "Peng Shuai", + "link": "https://www.theguardian.com/sport/2022/jan/23/tennis-australia-says-peng-shuais-safety-its-primary-concern-despite-banning-t-shirtssupporting-chinese-player", + "creator": "Emma Kemp at Melbourne Park", + "pubDate": "2022-01-23T06:57:29Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324166,17 +325618,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "ea4e77ff46f2d00965df4844065be4e1", + "hash": "d394c2b42f99e954a799b955effb3614", "highlights": [] }, { - "title": "Eighty years late: groundbreaking work on slave economy is finally published in UK", - "description": "

    Seminal work by scholar and future politician Eric Williams, shunned for decades, is issued by mainstream imprint

    In 1938, a brilliant young Black scholar at Oxford University wrote a thesis on the economic history of British empire and challenged a claim about slavery that had been defining Britain’s role in the world for more than a century.

    But when Eric Williams – who would later become the first prime minister of Trinidad and Tobago – sought to publish his “mind-blowing” thesis on capitalism and slavery in Britain, he was shunned by publishers and accused of undermining the humanitarian motivation for Britain’s Slavery Abolition Act.

    Continue reading...", - "content": "

    Seminal work by scholar and future politician Eric Williams, shunned for decades, is issued by mainstream imprint

    In 1938, a brilliant young Black scholar at Oxford University wrote a thesis on the economic history of British empire and challenged a claim about slavery that had been defining Britain’s role in the world for more than a century.

    But when Eric Williams – who would later become the first prime minister of Trinidad and Tobago – sought to publish his “mind-blowing” thesis on capitalism and slavery in Britain, he was shunned by publishers and accused of undermining the humanitarian motivation for Britain’s Slavery Abolition Act.

    Continue reading...", - "category": "Race", - "link": "https://www.theguardian.com/world/2022/jan/23/eighty-years-late-groundbreaking-work-on-slave-economy-is-finally-published-in-uk", - "creator": "Donna Ferguson", - "pubDate": "2022-01-23T09:30:19Z", + "title": "Infected blood scandal: ex-pupils and relatives sue Hampshire school", + "description": "

    Group action alleges Treloar College failed in its duty of care for children who contracted hepatitis and HIV

    A group of survivors and relatives of those who died in the infected blood scandal are suing a school where they contracted hepatitis and HIV after being given experimental treatment without informed consent.

    A proposed group action, lodged by Collins solicitors in the high court on Friday, alleges that Treloar College, a boarding school in Hampshire that specialised in teaching haemophiliacs, failed in its duty of care to these pupils in the 1970s and 80s.

    Continue reading...", + "content": "

    Group action alleges Treloar College failed in its duty of care for children who contracted hepatitis and HIV

    A group of survivors and relatives of those who died in the infected blood scandal are suing a school where they contracted hepatitis and HIV after being given experimental treatment without informed consent.

    A proposed group action, lodged by Collins solicitors in the high court on Friday, alleges that Treloar College, a boarding school in Hampshire that specialised in teaching haemophiliacs, failed in its duty of care to these pupils in the 1970s and 80s.

    Continue reading...", + "category": "Contaminated blood scandal", + "link": "https://www.theguardian.com/uk-news/2022/jan/23/infected-blood-scandal-ex-pupils-and-relatives-sue-hampshire-school", + "creator": "Matthew Weaver", + "pubDate": "2022-01-23T14:29:22Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324188,17 +325640,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "257cd38bdd1478f21b5b5d109032ce44", + "hash": "b3c43ae0796e9e37f39a0094d7f8e7ee", "highlights": [] }, { - "title": "UK’s propaganda leaflets inspired 1960s massacre of Indonesian communists", - "description": "

    Pamphlets attacked the president and foreign minister

    Shocking new details have emerged of Britain’s role in one of the most brutal massacres of the postwar 20th century.

    Last year the Observer revealed how British officials secretly deployed black propaganda in the 1960s to incite prominent Indonesians to “cut out” the “communist cancer”.

    Continue reading...", - "content": "

    Pamphlets attacked the president and foreign minister

    Shocking new details have emerged of Britain’s role in one of the most brutal massacres of the postwar 20th century.

    Last year the Observer revealed how British officials secretly deployed black propaganda in the 1960s to incite prominent Indonesians to “cut out” the “communist cancer”.

    Continue reading...", - "category": "Indonesia", - "link": "https://www.theguardian.com/world/2022/jan/23/uks-propaganda-leaflets-inspired-1960s-massacre-of-indonesian-communists", - "creator": "Paul Lashmer, Nicholas Gilby, James Oliver", - "pubDate": "2022-01-23T09:15:18Z", + "title": "Turkey: prominent journalist detained for insulting president Erdoğan", + "description": "

    Sedef Kabaş faces imprisonment for saying a proverb, with colleagues condemning arrest as attempt to intimidate media

    A prominent Turkish TV journalist has been detained and could face imprisonment after being charged with insulting the country’s president, Recep Tayyip Erdoğan.

    Police detained Sedef Kabaş at her home at 2am on Saturday and took her to a police station, before she faced court and was jailed pending a trial.

    Continue reading...", + "content": "

    Sedef Kabaş faces imprisonment for saying a proverb, with colleagues condemning arrest as attempt to intimidate media

    A prominent Turkish TV journalist has been detained and could face imprisonment after being charged with insulting the country’s president, Recep Tayyip Erdoğan.

    Police detained Sedef Kabaş at her home at 2am on Saturday and took her to a police station, before she faced court and was jailed pending a trial.

    Continue reading...", + "category": "Turkey", + "link": "https://www.theguardian.com/world/2022/jan/23/turkey-prominent-journalist-detained-for-insulting-president-erdogan", + "creator": "Staff and agencies", + "pubDate": "2022-01-23T03:49:25Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324210,17 +325662,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "8826f7fa702d796c74225af7b976d8ae", + "hash": "4c3467233ad52368ad5cdabceb31a10a", "highlights": [] }, { - "title": "Calories on menus ‘may not be helpful’ in drive against obesity", - "description": "

    Campaigners say compulsory menu labelling could put too much emphasis on calorie counting

    A Big Mac has 508. Wagamama’s hot chicken katsu curry has 1,089. And a large mixed grill with chips at Wetherspoon’s has 2,052. But will knowing how many calories are in a restaurant meal help make a difference to the UK’s obesity epidemic?

    From April, all cafes and restaurants run by companies with more than 250 staff will be obliged to include calorie counts for each item on their menus. The government hopes this will encourage people to make healthier choices and nudge restaurants towards offering healthier options.

    Continue reading...", - "content": "

    Campaigners say compulsory menu labelling could put too much emphasis on calorie counting

    A Big Mac has 508. Wagamama’s hot chicken katsu curry has 1,089. And a large mixed grill with chips at Wetherspoon’s has 2,052. But will knowing how many calories are in a restaurant meal help make a difference to the UK’s obesity epidemic?

    From April, all cafes and restaurants run by companies with more than 250 staff will be obliged to include calorie counts for each item on their menus. The government hopes this will encourage people to make healthier choices and nudge restaurants towards offering healthier options.

    Continue reading...", - "category": "Health", - "link": "https://www.theguardian.com/society/2022/jan/23/calories-on-menus-may-not-be-helpful-in-drive-against-obesity", - "creator": "James Tapper", - "pubDate": "2022-01-23T07:30:15Z", + "title": "UK is over worst of Covid but beware of bumps on the road, says Prof Ferguson", + "description": "

    Epidemiologist optimistic that UK deaths and hospitalisations will fall thanks to high immunity levels

    The UK is past the worst of the Covid pandemic but should be braced for some “possible bumps on the road”, according to the scientist who helped shape Britain’s lockdown strategy.

    Prof Neil Ferguson, an epidemiologist at Imperial College London, said things were looking up as the country passed the peak of yet another wave of coronavirus infections.

    Continue reading...", + "content": "

    Epidemiologist optimistic that UK deaths and hospitalisations will fall thanks to high immunity levels

    The UK is past the worst of the Covid pandemic but should be braced for some “possible bumps on the road”, according to the scientist who helped shape Britain’s lockdown strategy.

    Prof Neil Ferguson, an epidemiologist at Imperial College London, said things were looking up as the country passed the peak of yet another wave of coronavirus infections.

    Continue reading...", + "category": "Coronavirus", + "link": "https://www.theguardian.com/world/2022/jan/23/covid-uk-over-worst-says-prof-neil-ferguson", + "creator": "Nicola Davis Science correspondent", + "pubDate": "2022-01-23T12:10:14Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324232,7 +325684,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "a73561bffa98d99e939f91834e5d75f4", + "hash": "bac0433c5a78aa1e52c28d7390138ded", "highlights": [] }, { @@ -324258,13 +325710,13 @@ "highlights": [] }, { - "title": "Covid live: Russia breaks daily case total; WHO official warns there will be more variants of note after Omicron", + "title": "Covid live: 74,799 more cases reported in UK; Russia breaks daily infection record", "description": "

    Latest updates: follow all the news and politics developments resulting from the coronavirus pandemic in the UK and around the world

    Sturgeon talks about the impact on business. She said she realises that hospitality has been badly affected by the pandemic.

    “It’s not about having protective measures and businesses are damaged, or having no measures and everything is fine. It’s having measures than stem transmission, or allowing things to be controlled.”

    Continue reading...", "content": "

    Latest updates: follow all the news and politics developments resulting from the coronavirus pandemic in the UK and around the world

    Sturgeon talks about the impact on business. She said she realises that hospitality has been badly affected by the pandemic.

    “It’s not about having protective measures and businesses are damaged, or having no measures and everything is fine. It’s having measures than stem transmission, or allowing things to be controlled.”

    Continue reading...", "category": "Coronavirus", "link": "https://www.theguardian.com/world/live/2022/jan/23/covid-news-boris-johnson-partygate-no-10-swipe-card-data", - "creator": "Harry Taylor", - "pubDate": "2022-01-23T10:34:03Z", + "creator": "Charlie Moloney (Now), Harry Taylor(Earlier)", + "pubDate": "2022-01-23T16:30:38Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324276,17 +325728,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "7e15b0b8f038298670761d131d12e44f", + "hash": "d8d69ff0beb231bceb89812600c8cb87", "highlights": [] }, { - "title": "Mandatory Covid jabs policy divides NHS leaders in England as deadline nears", - "description": "

    Trust chiefs hold conflicting views over compulsory vaccinations, which look set to put staffing of health service under even more pressure

    NHS trust leaders are divided about whether the government should press ahead with mandatory jabs for healthcare workers in England after the prime minister told MPs he was considering relaxing the policy.

    About 80,000 frontline NHS workers have still not had a Covid vaccination and have less than two weeks to have their first dose in time to be able to complete the course before the 1 April deadline.

    Continue reading...", - "content": "

    Trust chiefs hold conflicting views over compulsory vaccinations, which look set to put staffing of health service under even more pressure

    NHS trust leaders are divided about whether the government should press ahead with mandatory jabs for healthcare workers in England after the prime minister told MPs he was considering relaxing the policy.

    About 80,000 frontline NHS workers have still not had a Covid vaccination and have less than two weeks to have their first dose in time to be able to complete the course before the 1 April deadline.

    Continue reading...", - "category": "NHS", - "link": "https://www.theguardian.com/society/2022/jan/23/mandatory-covid-jabs-policy-divides-nhs-leaders-in-england-as-deadline-nears", - "creator": "James Tapper", - "pubDate": "2022-01-23T09:00:18Z", + "title": "Fauci: US ‘confident’ Omicron will soon peak even as hospitals struggle", + "description": "

    US authorities are confident most states will soon reach and pass a peak in coronavirus Omicron variant cases, even as hospitals struggle to cope with the current surge, Joe Biden’s chief medical adviser said on Sunday.

    “I think [we’re] as confident as you can be,” Anthony Fauci told ABC’s This Week. “You never want to be overconfident when you’re dealing with this virus, because it has certainly surprised us in the past.

    Continue reading...", + "content": "

    US authorities are confident most states will soon reach and pass a peak in coronavirus Omicron variant cases, even as hospitals struggle to cope with the current surge, Joe Biden’s chief medical adviser said on Sunday.

    “I think [we’re] as confident as you can be,” Anthony Fauci told ABC’s This Week. “You never want to be overconfident when you’re dealing with this virus, because it has certainly surprised us in the past.

    Continue reading...", + "category": "Anthony Fauci", + "link": "https://www.theguardian.com/us-news/2022/jan/23/fauci-omicron-us-peak", + "creator": "Martin Pengelly in New York", + "pubDate": "2022-01-23T16:55:31Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324298,17 +325750,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "4f6ae5b826715bf2e28ad14015607528", + "hash": "866a2e46619b69fb8f816f7bee6967ca", "highlights": [] }, { - "title": "Beijing authorities conduct mass Covid testing as cases rise before Olympics", - "description": "

    All residents of Fengtai district told to get nucleic acid tests as China’s capital rushes to contain Omicron outbreak

    Beijing’s local government has ordered more Covid-19 tests on Sunday as China’s capital continued to report new cases, less than two weeks before the start of the Winter Olympic Games.

    Nine locally transmitted cases with confirmed symptoms were found in Beijing on 22 January, down from 10 a day earlier, the National Health Commission (NHC) said on Sunday, adding that six out of the nine were in the city’s Fengtai district.

    Continue reading...", - "content": "

    All residents of Fengtai district told to get nucleic acid tests as China’s capital rushes to contain Omicron outbreak

    Beijing’s local government has ordered more Covid-19 tests on Sunday as China’s capital continued to report new cases, less than two weeks before the start of the Winter Olympic Games.

    Nine locally transmitted cases with confirmed symptoms were found in Beijing on 22 January, down from 10 a day earlier, the National Health Commission (NHC) said on Sunday, adding that six out of the nine were in the city’s Fengtai district.

    Continue reading...", - "category": "China", - "link": "https://www.theguardian.com/world/2022/jan/23/beijing-authorities-conduct-mass-covid-testing-as-cases-rise-before-olympics", - "creator": "Reuters", - "pubDate": "2022-01-23T07:29:47Z", + "title": "Mandatory Covid jabs policy divides NHS leaders in England as deadline nears", + "description": "

    Trust chiefs hold conflicting views over compulsory vaccinations, which look set to put staffing of health service under even more pressure

    NHS trust leaders are divided about whether the government should press ahead with mandatory jabs for healthcare workers in England after the prime minister told MPs he was considering relaxing the policy.

    About 80,000 frontline NHS workers have still not had a Covid vaccination and have less than two weeks to have their first dose in time to be able to complete the course before the 1 April deadline.

    Continue reading...", + "content": "

    Trust chiefs hold conflicting views over compulsory vaccinations, which look set to put staffing of health service under even more pressure

    NHS trust leaders are divided about whether the government should press ahead with mandatory jabs for healthcare workers in England after the prime minister told MPs he was considering relaxing the policy.

    About 80,000 frontline NHS workers have still not had a Covid vaccination and have less than two weeks to have their first dose in time to be able to complete the course before the 1 April deadline.

    Continue reading...", + "category": "NHS", + "link": "https://www.theguardian.com/society/2022/jan/23/mandatory-covid-jabs-policy-divides-nhs-leaders-in-england-as-deadline-nears", + "creator": "James Tapper", + "pubDate": "2022-01-23T09:00:18Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324320,7 +325772,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "982c8e028951585463d1a9534e910106", + "hash": "4f6ae5b826715bf2e28ad14015607528", "highlights": [] }, { @@ -324346,13 +325798,13 @@ "highlights": [] }, { - "title": "Christ and cocaine: Rio’s gangs of God blend faith and violence", - "description": "

    In the city’s favelas, a new generation of ‘narco-pentecostals’ are embracing Christian symbols

    “Pastor, do you think we could hold a service at my house next Thursday?” the peroxide-haired gangster wondered, cradling an AK-47 in his lap as he took a seat beside the man of God.

    A few months earlier, the 23-year-old had bought his first home with the fruits of his illegal work as a footsoldier for one of Rio de Janeiro’s drug factions. Now, he wanted to give thanks for the blessings he believed he had received from above.

    Continue reading...", - "content": "

    In the city’s favelas, a new generation of ‘narco-pentecostals’ are embracing Christian symbols

    “Pastor, do you think we could hold a service at my house next Thursday?” the peroxide-haired gangster wondered, cradling an AK-47 in his lap as he took a seat beside the man of God.

    A few months earlier, the 23-year-old had bought his first home with the fruits of his illegal work as a footsoldier for one of Rio de Janeiro’s drug factions. Now, he wanted to give thanks for the blessings he believed he had received from above.

    Continue reading...", - "category": "Brazil", - "link": "https://www.theguardian.com/world/2022/jan/23/christ-and-cocaine-rios-gangs-of-god-blend-faith-and-violence", - "creator": "Tom Phillips in Rio de Janeiro", - "pubDate": "2022-01-23T12:38:51Z", + "title": "‘I’ve already sold my daughters; now, my kidney’: winter in Afghanistan’s slums", + "description": "

    Crushing poverty is forcing starving displaced people to make desperate choices

    The temperature is dropping to below zero in western Afghanistan and Delaram Rahmati is struggling to find food for her eight children.

    Since leaving the family home in the country’s Badghis province four years ago, the Rahmatis have been living in a mud hut with a plastic roof in one of Herat city’s slums. Drought made their village unliveable and the land unworkable. Like an estimated 3.5 million Afghans who have been forced to leave their homes, the Rahmatis now live in a neighbourhood for internally displaced people (IDP).

    Continue reading...", + "content": "

    Crushing poverty is forcing starving displaced people to make desperate choices

    The temperature is dropping to below zero in western Afghanistan and Delaram Rahmati is struggling to find food for her eight children.

    Since leaving the family home in the country’s Badghis province four years ago, the Rahmatis have been living in a mud hut with a plastic roof in one of Herat city’s slums. Drought made their village unliveable and the land unworkable. Like an estimated 3.5 million Afghans who have been forced to leave their homes, the Rahmatis now live in a neighbourhood for internally displaced people (IDP).

    Continue reading...", + "category": "Global development", + "link": "https://www.theguardian.com/global-development/2022/jan/23/ive-already-sold-my-daughters-now-my-kidney-winter-in-afghanistans-slums", + "creator": "M Mursal and Zahra Nader", + "pubDate": "2022-01-23T14:00:23Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324364,7 +325816,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "13f0e0a0f6774643f8f0793c8d6c09ef", + "hash": "565587470e235fdfc2e693a440fc61da", "highlights": [] }, { @@ -324433,6 +325885,28 @@ "hash": "dacf9a5e188fc51d05b4b0642426575a", "highlights": [] }, + { + "title": "Christ and cocaine: Rio’s gangs of God blend faith and violence", + "description": "

    In the city’s favelas, a new generation of ‘narco-pentecostals’ are embracing Christian symbols

    “Pastor, do you think we could hold a service at my house next Thursday?” the peroxide-haired gangster wondered, cradling an AK-47 in his lap as he took a seat beside the man of God.

    A few months earlier, the 23-year-old had bought his first home with the fruits of his illegal work as a footsoldier for one of Rio de Janeiro’s drug factions. Now, he wanted to give thanks for the blessings he believed he had received from above.

    Continue reading...", + "content": "

    In the city’s favelas, a new generation of ‘narco-pentecostals’ are embracing Christian symbols

    “Pastor, do you think we could hold a service at my house next Thursday?” the peroxide-haired gangster wondered, cradling an AK-47 in his lap as he took a seat beside the man of God.

    A few months earlier, the 23-year-old had bought his first home with the fruits of his illegal work as a footsoldier for one of Rio de Janeiro’s drug factions. Now, he wanted to give thanks for the blessings he believed he had received from above.

    Continue reading...", + "category": "Brazil", + "link": "https://www.theguardian.com/world/2022/jan/23/christ-and-cocaine-rios-gangs-of-god-blend-faith-and-violence", + "creator": "Tom Phillips in Rio de Janeiro", + "pubDate": "2022-01-23T12:38:51Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "13f0e0a0f6774643f8f0793c8d6c09ef", + "highlights": [] + }, { "title": "Hedonism is overrated – to make the best of life there must be pain, says this Yale professor", "description": "

    The most satisfying lives are those which involve challenge, fear and struggle, says psychologist Paul Bloom

    The simplest theory of human nature is hedonism– – we pursue pleasure and comfort. Suffering and pain are, by their very nature, to be avoided. The spirit of this view is nicely captured in The Epic of Gilgamesh: “Let your belly be full, enjoy yourself always by day and by night! Make merry each day, dance and play day and night… For such is the destiny of men.” And also by the Canadian rock band Trooper: “We’re here for a good time / Not a long time / So have a good time / The sun can’t shine every day.”

    Hedonists wouldn’t deny that life is full of voluntary suffering – we wake up in the middle of the night to feed the baby, take the 8.15 into the city, undergo painful medical procedures. But for the hedonist, these unpleasant acts are seen as the costs that must be paid to obtain greater pleasures in the future. Challenging and difficult work is the ticket to survival and status; boring exercise and unpleasant diets are what you have to go through for abs of steel and a vibrant old age, and so on.

    Continue reading...", @@ -324478,13 +325952,13 @@ "highlights": [] }, { - "title": "How my husband finally cracked and got a mobile phone", - "description": "

    Until very recently my partner had never owned a mobile – blissful for him, inconvenient for me, infuriating to friends. Will our life ever be the same?

    In her new memoir, I Came All This Way to Meet You, the American novelist Jami Attenberg describes meeting a man who is not on any social media at all, and who therefore has no idea what it’s like to receive a like or retweet. Attenberg considers this state wildly unusual, not to say bizarre; she’s all over Instagram and the rest. But her amazement is tempered with what sounds like envy. “You goddam beautiful unicorn,” she writes of him. “What’s that like, being entirely self-validating? What’s it like to wake up every day and not worry what anyone else thinks?”

    As it happens, I’ve spent the past 18 years of my life with just such a unicorn, though the man I’m talking about is – or was – an even rarer beast than hers. So, a guy isn’t on social media. So what? Lots of people aren’t. Facebook is for dinosaurs. The more important fact by far when it comes to my mythical creature is that, until three weeks ago, he did not, in a Britain in which around 87% of adults own a smartphone, even have a mobile. Not only had he never used social media, he had never sent, let alone received, a text. The exquisite torture that comes of WhatsApp and its blue ticks was entirely unknown to him, a man whose body is very far indeed from being hard-wired to respond to alerts. Nothing pinged in his pocket as he strolled along. When he was lost, he had to ask a stranger, not Google Maps. When he was out late, he had to rely on his legs, not an Uber. Calls? You’d be surprised. The last time he needed urgently to contact me while out and about, he walked into a hotel bar and, drawing on all of his great David Niven-like urbanity, casually asked a waiter if he might “use your telephone for a moment”.

    Continue reading...", - "content": "

    Until very recently my partner had never owned a mobile – blissful for him, inconvenient for me, infuriating to friends. Will our life ever be the same?

    In her new memoir, I Came All This Way to Meet You, the American novelist Jami Attenberg describes meeting a man who is not on any social media at all, and who therefore has no idea what it’s like to receive a like or retweet. Attenberg considers this state wildly unusual, not to say bizarre; she’s all over Instagram and the rest. But her amazement is tempered with what sounds like envy. “You goddam beautiful unicorn,” she writes of him. “What’s that like, being entirely self-validating? What’s it like to wake up every day and not worry what anyone else thinks?”

    As it happens, I’ve spent the past 18 years of my life with just such a unicorn, though the man I’m talking about is – or was – an even rarer beast than hers. So, a guy isn’t on social media. So what? Lots of people aren’t. Facebook is for dinosaurs. The more important fact by far when it comes to my mythical creature is that, until three weeks ago, he did not, in a Britain in which around 87% of adults own a smartphone, even have a mobile. Not only had he never used social media, he had never sent, let alone received, a text. The exquisite torture that comes of WhatsApp and its blue ticks was entirely unknown to him, a man whose body is very far indeed from being hard-wired to respond to alerts. Nothing pinged in his pocket as he strolled along. When he was lost, he had to ask a stranger, not Google Maps. When he was out late, he had to rely on his legs, not an Uber. Calls? You’d be surprised. The last time he needed urgently to contact me while out and about, he walked into a hotel bar and, drawing on all of his great David Niven-like urbanity, casually asked a waiter if he might “use your telephone for a moment”.

    Continue reading...", - "category": "Smartphones", - "link": "https://www.theguardian.com/technology/2022/jan/23/how-my-husband-finally-cracked-and-got-a-mobile-phone", - "creator": "Rachel Cooke", - "pubDate": "2022-01-23T12:00:21Z", + "title": "Five teenagers arrested after boy, 16, fatally stabbed in Stretford", + "description": "

    Greater Manchester police name the victim as Kennie Carter as murder investigation continues

    Five teenagers have been arrested on suspicion of murder after a 16-year-old boy was fatally stabbed in Trafford.

    Greater Manchester police (GMP) named the victim as Kennie Carter and said officers were piecing together the circumstances leading to the “callous attack”.

    Continue reading...", + "content": "

    Greater Manchester police name the victim as Kennie Carter as murder investigation continues

    Five teenagers have been arrested on suspicion of murder after a 16-year-old boy was fatally stabbed in Trafford.

    Greater Manchester police (GMP) named the victim as Kennie Carter and said officers were piecing together the circumstances leading to the “callous attack”.

    Continue reading...", + "category": "UK news", + "link": "https://www.theguardian.com/uk-news/2022/jan/23/murder-investigation-stretford-trafford-boy-stabbed", + "creator": "Maya Wolfe-Robinson", + "pubDate": "2022-01-23T15:40:11Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324496,17 +325970,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "1f7a5c8e256860aae47b3b0e678552aa", + "hash": "a0485e262138de33ada54c46f6bd645e", "highlights": [] }, { - "title": "Murder investigation launched after boy, 16, fatally stabbed in Stretford", - "description": "

    Paramedics treated boy at the scene in the Trafford town on Saturday evening but he later died in hospital

    A murder investigation has been launched after a 16-year-old boy was fatally stabbed on Saturday night.

    Greater Manchester police (GMP) said officers attended reports of a teenager with stab wounds in Stretford, Trafford, at about 7pm. Paramedics treated the boy at the scene before he was taken to hospital where he died of his injuries.

    Continue reading...", - "content": "

    Paramedics treated boy at the scene in the Trafford town on Saturday evening but he later died in hospital

    A murder investigation has been launched after a 16-year-old boy was fatally stabbed on Saturday night.

    Greater Manchester police (GMP) said officers attended reports of a teenager with stab wounds in Stretford, Trafford, at about 7pm. Paramedics treated the boy at the scene before he was taken to hospital where he died of his injuries.

    Continue reading...", - "category": "UK news", - "link": "https://www.theguardian.com/uk-news/2022/jan/23/murder-investigation-stretford-trafford-boy-stabbed", - "creator": "Maya Wolfe-Robinson", - "pubDate": "2022-01-23T10:26:48Z", + "title": "The Biden doctrine: Ukraine gaffe sums up mixed year of foreign policy", + "description": "

    On Russia and Putin, the president said the quiet part loud. Re-engagement has been welcomed but the exit from Afghanistan was a disaster. Analysts see much to do to rebuild US credibility

    Joe Biden marked his first anniversary in office with a gaffe over Ukraine that undid weeks of disciplined messaging and diplomatic preparation.

    The president’s suggestion that a “minor incursion” by Russia might split Nato over how to respond sent the White House into frantic damage limitation mode.

    Continue reading...", + "content": "

    On Russia and Putin, the president said the quiet part loud. Re-engagement has been welcomed but the exit from Afghanistan was a disaster. Analysts see much to do to rebuild US credibility

    Joe Biden marked his first anniversary in office with a gaffe over Ukraine that undid weeks of disciplined messaging and diplomatic preparation.

    The president’s suggestion that a “minor incursion” by Russia might split Nato over how to respond sent the White House into frantic damage limitation mode.

    Continue reading...", + "category": "Joe Biden", + "link": "https://www.theguardian.com/us-news/2022/jan/23/biden-ukraine-russia-foreign-policy-afghanistan-china-nato", + "creator": "Julian Borger in Washington", + "pubDate": "2022-01-23T14:05:19Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324518,7 +325992,29 @@ "favorite": false, "created": false, "tags": [], - "hash": "ab6513585882da8aeaacb58d4ec2a4f4", + "hash": "a37dc48b1a04a911bca9448374f05b99", + "highlights": [] + }, + { + "title": "Anoosheh Ashoori to start hunger strike in protest against Iran hostage-taking", + "description": "

    The British-Iranian dual national is staging a strike in solidarity with Barry Rosen who is campaigning outside Vienna nuclear talks

    A British-Iranian man imprisoned in Iran is to start a hunger strike on Sunday in support of a 77-year-old American who is protesting outside nuclear talks in Vienna against Iranian hostage taking.

    Anoosheh Ashoori, who is being held in Evin prison in Tehran, is staging the strike in an act of solidarity with Barry Rosen, who started his own four days ago. He told the Guardian he was humbled by the support, as well as other messages being sent to him by Iranians in jail.

    Continue reading...", + "content": "

    The British-Iranian dual national is staging a strike in solidarity with Barry Rosen who is campaigning outside Vienna nuclear talks

    A British-Iranian man imprisoned in Iran is to start a hunger strike on Sunday in support of a 77-year-old American who is protesting outside nuclear talks in Vienna against Iranian hostage taking.

    Anoosheh Ashoori, who is being held in Evin prison in Tehran, is staging the strike in an act of solidarity with Barry Rosen, who started his own four days ago. He told the Guardian he was humbled by the support, as well as other messages being sent to him by Iranians in jail.

    Continue reading...", + "category": "Iran", + "link": "https://www.theguardian.com/world/2022/jan/22/anoosheh-ashoori-to-start-hunger-strike-in-protest-against-iran-hostage-taking", + "creator": "Patrick Wintour Diplomatic editor", + "pubDate": "2022-01-22T15:55:13Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "53463de4dc40202954863cd9f3bc3986", "highlights": [] }, { @@ -324544,13 +326040,13 @@ "highlights": [] }, { - "title": "Anoosheh Ashoori to start hunger strike in protest against Iran hostage-taking", - "description": "

    The British-Iranian dual national is staging a strike in solidarity with Barry Rosen who is campaigning outside Vienna nuclear talks

    A British-Iranian man imprisoned in Iran is to start a hunger strike on Sunday in support of a 77-year-old American who is protesting outside nuclear talks in Vienna against Iranian hostage taking.

    Anoosheh Ashoori, who is being held in Evin prison in Tehran, is staging the strike in an act of solidarity with Barry Rosen, who started his own four days ago. He told the Guardian he was humbled by the support, as well as other messages being sent to him by Iranians in jail.

    Continue reading...", - "content": "

    The British-Iranian dual national is staging a strike in solidarity with Barry Rosen who is campaigning outside Vienna nuclear talks

    A British-Iranian man imprisoned in Iran is to start a hunger strike on Sunday in support of a 77-year-old American who is protesting outside nuclear talks in Vienna against Iranian hostage taking.

    Anoosheh Ashoori, who is being held in Evin prison in Tehran, is staging the strike in an act of solidarity with Barry Rosen, who started his own four days ago. He told the Guardian he was humbled by the support, as well as other messages being sent to him by Iranians in jail.

    Continue reading...", - "category": "Iran", - "link": "https://www.theguardian.com/world/2022/jan/22/anoosheh-ashoori-to-start-hunger-strike-in-protest-against-iran-hostage-taking", - "creator": "Patrick Wintour Diplomatic editor", - "pubDate": "2022-01-22T15:55:13Z", + "title": "Big Sur wildfire burns near California highway – video", + "description": "

    Hundreds of people in California were told to evacuate because of a new blaze as authorities were forced to shut one of the state's main highways. Firefighters were battling the blaze that broke out in rugged mountains in Big Sur on Friday night and quickly spread toward the sea, fanned by strong winds of up to 50mph. The blaze burned at least 2.3 square miles of brush and redwood trees

    Continue reading...", + "content": "

    Hundreds of people in California were told to evacuate because of a new blaze as authorities were forced to shut one of the state's main highways. Firefighters were battling the blaze that broke out in rugged mountains in Big Sur on Friday night and quickly spread toward the sea, fanned by strong winds of up to 50mph. The blaze burned at least 2.3 square miles of brush and redwood trees

    Continue reading...", + "category": "California", + "link": "https://www.theguardian.com/us-news/video/2022/jan/23/big-sur-wildfire-burns-near-california-highway-video", + "creator": "", + "pubDate": "2022-01-23T17:03:35Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324562,17 +326058,413 @@ "favorite": false, "created": false, "tags": [], - "hash": "53463de4dc40202954863cd9f3bc3986", + "hash": "81fd3a9ba136d7cc26dfdde922ee1580", "highlights": [] }, { - "title": "Florida man pleads guilty to threatening to kill Ocasio-Cortez and Pelosi", - "description": "

    Paul Vernon Hoeffer, 60, also pleads guilty in federal court to threats against Kim Foxx, a prominent district attorney in Illinois

    A Florida man has pleaded guilty to threatening to kill Alexandria Ocasio-Cortez and Nancy Pelosi, two leading Democrats in Congress, and Kim Foxx, a prominent district attorney in Illinois.

    The US attorney’s office for the southern district of Florida said Paul Vernon Hoeffer, 60, entered his plea in federal court in Fort Pierce on Friday.

    Continue reading...", - "content": "

    Paul Vernon Hoeffer, 60, also pleads guilty in federal court to threats against Kim Foxx, a prominent district attorney in Illinois

    A Florida man has pleaded guilty to threatening to kill Alexandria Ocasio-Cortez and Nancy Pelosi, two leading Democrats in Congress, and Kim Foxx, a prominent district attorney in Illinois.

    The US attorney’s office for the southern district of Florida said Paul Vernon Hoeffer, 60, entered his plea in federal court in Fort Pierce on Friday.

    Continue reading...", - "category": "Democrats", - "link": "https://www.theguardian.com/us-news/2022/jan/23/florida-man-pleads-guilty-threats-kill-aoc-nancy-pelosi", + "title": "Women’s anger is not dissipating – and politics as usual won’t solve it | Amy Remeikis", + "description": "

    Women asked their leaders to listen. They were told, repeatedly, to listen to how much they were not being listened to

    One voice, your voice, and our collective voices can make a difference. We are on the precipice of a revolution whose call to action needs to be heard loud and clear. – Grace Tame

    Women have been angry since Eve. And the responses to that anger are just as old.

    Continue reading...", + "content": "

    Women asked their leaders to listen. They were told, repeatedly, to listen to how much they were not being listened to

    One voice, your voice, and our collective voices can make a difference. We are on the precipice of a revolution whose call to action needs to be heard loud and clear. – Grace Tame

    Women have been angry since Eve. And the responses to that anger are just as old.

    Continue reading...", + "category": "Australia news", + "link": "https://www.theguardian.com/australia-news/2022/jan/24/womens-anger-is-not-dissipating-and-politics-as-usual-wont-solve-it", + "creator": "Amy Remeikis", + "pubDate": "2022-01-23T16:30:27Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "9fc3a3bdd7ef585ae808a99dbf625744", + "highlights": [] + }, + { + "title": "‘I used to judge people’: the Polish woman who became her city’s lone voice for abortion rights", + "description": "

    Monika was too busy with her young family to join the early protests against Poland’s strict abortion laws. But when she became pregnant with her fourth child, she realised she had to act

    It is Saturday afternoon, and the centre of Chełm, a Polish city on the Ukrainian border, is empty except for one woman and her toddler. A monument to “the fallen sons” of the 1920 Polish-Soviet war marks the middle of the market square, surrounded by two churches, a few closed restaurants, and a boarded-up wooden booth with a sign reading, “cheap footwear”. The Catholic Basilica – a former Eastern Orthodox church – dominates the landscape and, locals say, the social life of the town.

    Chełm is in one of the poorest areas in Poland, a stronghold of the ruling nationalist Law and Justice party, where the birthrate is -6.1 and people in their 60s comprise the largest age group. The city – once among Poland’s most religiously and ethnically diverse, with a pre-2nd?second world war population split evenly between Poles, Ukrainians, and Jews – was the site of one of the first postwar anti-Jewish Pogroms and, more recently, among the first local councils to declare itself an “LGBT-free zone.”

    Continue reading...", + "content": "

    Monika was too busy with her young family to join the early protests against Poland’s strict abortion laws. But when she became pregnant with her fourth child, she realised she had to act

    It is Saturday afternoon, and the centre of Chełm, a Polish city on the Ukrainian border, is empty except for one woman and her toddler. A monument to “the fallen sons” of the 1920 Polish-Soviet war marks the middle of the market square, surrounded by two churches, a few closed restaurants, and a boarded-up wooden booth with a sign reading, “cheap footwear”. The Catholic Basilica – a former Eastern Orthodox church – dominates the landscape and, locals say, the social life of the town.

    Chełm is in one of the poorest areas in Poland, a stronghold of the ruling nationalist Law and Justice party, where the birthrate is -6.1 and people in their 60s comprise the largest age group. The city – once among Poland’s most religiously and ethnically diverse, with a pre-2nd?second world war population split evenly between Poles, Ukrainians, and Jews – was the site of one of the first postwar anti-Jewish Pogroms and, more recently, among the first local councils to declare itself an “LGBT-free zone.”

    Continue reading...", + "category": "Women's rights and gender equality", + "link": "https://www.theguardian.com/global-development/2022/jan/23/i-used-to-judge-people-the-polish-woman-who-became-her-citys-lone-voice-for-abortion-rights", + "creator": "Weronika Strzyżyńska", + "pubDate": "2022-01-23T08:00:17Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "deb1eff107cbd5577bb72f2486bd3f18", + "highlights": [] + }, + { + "title": "Kill the Bill and period protests: human rights this fortnight – in pictures", + "description": "

    A roundup of the coverage of the struggle for human rights and freedoms, from Cambodia to Costa Rica

    Continue reading...", + "content": "

    A roundup of the coverage of the struggle for human rights and freedoms, from Cambodia to Costa Rica

    Continue reading...", + "category": "Human rights", + "link": "https://www.theguardian.com/global-development/gallery/2022/jan/22/kill-the-bill-and-period-protests-human-rights-this-fortnight-in-pictures", + "creator": "Sarah Johnson, compiled by Eric Hilaire", + "pubDate": "2022-01-22T07:30:47Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "e4e587a57a6a8fbb12be6a6d19195fb3", + "highlights": [] + }, + { + "title": "Vulnerable Malians could ‘pay the price’ of heavy sanctions, warn aid groups", + "description": "

    NGOs call for aid exemption to EU-backed sanctions imposed after election postponement and arrival of Russian paramilitary

    More than a dozen aid organisations have called for humanitarian exemptions to heavy sanctions imposed on Mali after the military leadership postponed planned February elections.

    The EU has announced support for the sanctions imposed earlier this month by the Economic Community of West African States (Ecowas), which include closing borders and a trade embargo.

    Continue reading...", + "content": "

    NGOs call for aid exemption to EU-backed sanctions imposed after election postponement and arrival of Russian paramilitary

    More than a dozen aid organisations have called for humanitarian exemptions to heavy sanctions imposed on Mali after the military leadership postponed planned February elections.

    The EU has announced support for the sanctions imposed earlier this month by the Economic Community of West African States (Ecowas), which include closing borders and a trade embargo.

    Continue reading...", + "category": "Global development", + "link": "https://www.theguardian.com/global-development/2022/jan/21/vulnerable-malians-could-pay-the-price-of-heavy-sanctions-warn-aid-groups", + "creator": "Saeed Kamali Dehghan", + "pubDate": "2022-01-21T12:25:21Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "cbfbeeebd83e11773f70c86f421e6f36", + "highlights": [] + }, + { + "title": "From Afghanistan to Italy: a teenage ski champion flees the Taliban – in pictures", + "description": "

    Until August last year, 18-year-old Nazira Khairzad lived a carefree existence with her family in the foothills of the Bamyan mountains. She loves sport and was a champion skier, but when the Taliban took over she decided to flee, leaving her old life behind. Photojournalist Rick Findler documented her attempts to settle into a new life

    Continue reading...", + "content": "

    Until August last year, 18-year-old Nazira Khairzad lived a carefree existence with her family in the foothills of the Bamyan mountains. She loves sport and was a champion skier, but when the Taliban took over she decided to flee, leaving her old life behind. Photojournalist Rick Findler documented her attempts to settle into a new life

    Continue reading...", + "category": "Global development", + "link": "https://www.theguardian.com/global-development/gallery/2022/jan/21/from-afghanistan-to-italy-a-teenage-ski-champion-flees-the-taliban-nazira-khairzad-in-pictures", + "creator": "", + "pubDate": "2022-01-21T09:30:27Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7a78c6e5494b72dd6e4a80ba2d9e27f4", + "highlights": [] + }, + { + "title": "Female leadership is good for the world. Just look at Barbados", + "description": "

    Mia Mottley is just one of a raft of strong women across the Caribbean and South America tackling society’s most pressing issues. The world could learn a lot from them

    There is a common misconception that the developing world is full of archaic values and that women struggle to have their voices heard. The more countries I visit and the more female leaders I speak to, the more I am convinced the contrary is true.

    In fact, those in positions of power worldwide could learn important lessons from these strong women when it comes to tackling some of society’s most pressing issues, including pandemics, the climate crisis, education and infrastructure.

    Continue reading...", + "content": "

    Mia Mottley is just one of a raft of strong women across the Caribbean and South America tackling society’s most pressing issues. The world could learn a lot from them

    There is a common misconception that the developing world is full of archaic values and that women struggle to have their voices heard. The more countries I visit and the more female leaders I speak to, the more I am convinced the contrary is true.

    In fact, those in positions of power worldwide could learn important lessons from these strong women when it comes to tackling some of society’s most pressing issues, including pandemics, the climate crisis, education and infrastructure.

    Continue reading...", + "category": "Women's rights and gender equality", + "link": "https://www.theguardian.com/global-development/2022/jan/21/female-leadership-is-good-for-the-world-just-look-at-barbados", + "creator": "Mandeep Rai", + "pubDate": "2022-01-21T07:45:25Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "aa47b40646b314a3a20e9b11224097d4", + "highlights": [] + }, + { + "title": "Deal with Jacinda Ardern’s Labour party is proving toxic for New Zealand’s Greens | Morgan Godfery", + "description": "

    The inter-party agreement has left the Greens defending rising emissions – a stance that goes against all their principles

    Metiria Turei, the former Green party co-leader, left parliament more than four years ago, resigning from the co-leadership and the party list after right wing lobby groups, with an able assist in the form of the parliamentary press gallery, led a ruthless campaign against the former lawyer for admitting that she once had to commit benefit fraud to feed her young family.

    The admission came in a landmark speech condemning New Zealand’s miserly welfare system. Struggling families were paid far too little to survive, something policymakers had known for decades, with examples ranging from Turei’s own to anonymous sole parents who were coming forward to describe how they spent $380 of the $480 in assistance from the State on rent alone. Turei and the Greens were promising to lift the rate of sole parent support, remove sanctions, and make other necessary and progressive reforms to the welfare system in order for people to meet their basic needs.

    Continue reading...", + "content": "

    The inter-party agreement has left the Greens defending rising emissions – a stance that goes against all their principles

    Metiria Turei, the former Green party co-leader, left parliament more than four years ago, resigning from the co-leadership and the party list after right wing lobby groups, with an able assist in the form of the parliamentary press gallery, led a ruthless campaign against the former lawyer for admitting that she once had to commit benefit fraud to feed her young family.

    The admission came in a landmark speech condemning New Zealand’s miserly welfare system. Struggling families were paid far too little to survive, something policymakers had known for decades, with examples ranging from Turei’s own to anonymous sole parents who were coming forward to describe how they spent $380 of the $480 in assistance from the State on rent alone. Turei and the Greens were promising to lift the rate of sole parent support, remove sanctions, and make other necessary and progressive reforms to the welfare system in order for people to meet their basic needs.

    Continue reading...", + "category": "New Zealand", + "link": "https://www.theguardian.com/world/commentisfree/2022/jan/23/the-deal-with-jacinda-arderns-labour-party-is-proving-toxic-for-new-zealands-greens", + "creator": "Morgan Godfery", + "pubDate": "2022-01-22T19:00:02Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4b79415aa9e0d41419b24274226ae9aa", + "highlights": [] + }, + { + "title": "After Democrats’ historic defeat on voting rights, what happens next?", + "description": "

    In an extremely bruising loss for Biden, Republicans used the filibuster to block the sweeping bill from passing

    For a little over a year, America has faced a democratic crisis unlike any it has seen in recent history.

    As Republicans have spread lies about the 2020 presidential election, confidence in it remains staggeringly low and about 1 in 3 Americans now believe Joe Biden was not legitimately elected. Republicans who claim the election was stolen are trying to grab key election administration roles, prompting unprecedented alarm that a future election could be overturned.

    Continue reading...", + "content": "

    In an extremely bruising loss for Biden, Republicans used the filibuster to block the sweeping bill from passing

    For a little over a year, America has faced a democratic crisis unlike any it has seen in recent history.

    As Republicans have spread lies about the 2020 presidential election, confidence in it remains staggeringly low and about 1 in 3 Americans now believe Joe Biden was not legitimately elected. Republicans who claim the election was stolen are trying to grab key election administration roles, prompting unprecedented alarm that a future election could be overturned.

    Continue reading...", + "category": "US politics", + "link": "https://www.theguardian.com/us-news/2022/jan/20/after-democrats-historic-defeat-on-voting-rights-what-happens-next", + "creator": "Sam Levine in New York", + "pubDate": "2022-01-21T07:00:25Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "599f7688a6462c5dc2d9cdd3b09cf763", + "highlights": [] + }, + { + "title": "Mixed messages? How end of Covid plan B could change behaviour in England", + "description": "

    Analysis: Experts say when the rules are relaxed there tends to be a gradual erosion of protective behaviours

    All plan B measures in England will be lifted next week, meaning an end to compulsory mask-wearing in shops, vaccine certificates for entering venues, and guidance to work from home. But are the public ready to embrace these freedoms just weeks after Covid cases in the UK hit a record high and with daily deaths higher now than when the measures were introduced?

    Some are likely to feel more than ready to cast aside restrictions that have been financially and personally cumbersome, while others may fear things are moving too quickly. Regardless of the range of attitudes, changing the rules will shift behaviour.

    Continue reading...", + "content": "

    Analysis: Experts say when the rules are relaxed there tends to be a gradual erosion of protective behaviours

    All plan B measures in England will be lifted next week, meaning an end to compulsory mask-wearing in shops, vaccine certificates for entering venues, and guidance to work from home. But are the public ready to embrace these freedoms just weeks after Covid cases in the UK hit a record high and with daily deaths higher now than when the measures were introduced?

    Some are likely to feel more than ready to cast aside restrictions that have been financially and personally cumbersome, while others may fear things are moving too quickly. Regardless of the range of attitudes, changing the rules will shift behaviour.

    Continue reading...", + "category": "Coronavirus", + "link": "https://www.theguardian.com/world/2022/jan/21/mixed-messages-how-end-of-covid-plan-b-rules-could-change-behaviour", + "creator": "Hannah Devlin Science correspondent", + "pubDate": "2022-01-21T07:00:24Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "2db37cac17e6d6329b03ec90d6e5db19", + "highlights": [] + }, + { + "title": "Covid-19 map of the US: latest cases state by state", + "description": "

    The US emerged as an early hotspot for the coronavirus and it continues to have some of the highest case and death rates in the world. It leads the world in both confirmed Covid-19 cases and deaths, according to data from Johns Hopkins University.

    It’s important to point out that the actual death toll is believed to be far higher than the tally compiled from government figures.

    Continue reading...", + "content": "

    The US emerged as an early hotspot for the coronavirus and it continues to have some of the highest case and death rates in the world. It leads the world in both confirmed Covid-19 cases and deaths, according to data from Johns Hopkins University.

    It’s important to point out that the actual death toll is believed to be far higher than the tally compiled from government figures.

    Continue reading...", + "category": "Coronavirus", + "link": "https://www.theguardian.com/world/ng-interactive/2021/sep/02/covid-19-coronavirus-us-map-latest-cases-state-by-state", + "creator": "Guardian Visuals", + "pubDate": "2022-01-20T15:32:36Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "915fd6915acbd5cae89e6534d60da7d8", + "highlights": [] + }, + { + "title": "German navy chief resigns over comments on Putin and Ukraine – video", + "description": "

    The chief of Germany’s navy has resigned after arguing during a livestreamed event that Vladimir Putin 'deserves respect' and Kyiv will not win back annexed Crimea. Ukraine’s ambassador in Berlin said Kay-Achim Schönbach's comments 'massively' called into question Germany’s trustworthiness

    Continue reading...", + "content": "

    The chief of Germany’s navy has resigned after arguing during a livestreamed event that Vladimir Putin 'deserves respect' and Kyiv will not win back annexed Crimea. Ukraine’s ambassador in Berlin said Kay-Achim Schönbach's comments 'massively' called into question Germany’s trustworthiness

    Continue reading...", + "category": "Germany", + "link": "https://www.theguardian.com/world/video/2022/jan/23/german-navy-chief-resigns-over-comments-on-putin-and-ukraine-video", + "creator": "", + "pubDate": "2022-01-23T13:47:23Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0d784e88ae7c57eec25e7f601346e001", + "highlights": [] + }, + { + "title": "‘Such is life’: Jacinda Ardern cancels wedding amid Omicron wave – video", + "description": "

    The Omicron outbreak in New Zealand has forced Jacinda Ardern and partner Clarke Gayford to cancel their wedding, which was due to take place in the coming weeks at Gisborne on the North Island’s eastern coast. The prime minister said on Sunday the country would be placed on the highest level of restrictions to try to slow the spread of the variant

    Continue reading...", + "content": "

    The Omicron outbreak in New Zealand has forced Jacinda Ardern and partner Clarke Gayford to cancel their wedding, which was due to take place in the coming weeks at Gisborne on the North Island’s eastern coast. The prime minister said on Sunday the country would be placed on the highest level of restrictions to try to slow the spread of the variant

    Continue reading...", + "category": "Jacinda Ardern", + "link": "https://www.theguardian.com/world/video/2022/jan/23/such-is-life-jacinda-ardern-cancels-wedding-amid-omicron-wave-video", + "creator": "", + "pubDate": "2022-01-23T12:09:42Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "71afb61f3e105e59c94a5fa723620d21", + "highlights": [] + }, + { + "title": "Skier captures spectacular northern lights display in Finland – video", + "description": "

    A skier in northern Finland was treated to a stunning display as the vivid aurora borealis and a bright moon shone in the sky early on Saturday 15 January. Jari Romppainen filmed the footage in Ranua, a municipality in the Finnish province of Lapland. According to Finland's national tourist site, the northern lights are visible for about 200 nights a year from Lapland

    Continue reading...", + "content": "

    A skier in northern Finland was treated to a stunning display as the vivid aurora borealis and a bright moon shone in the sky early on Saturday 15 January. Jari Romppainen filmed the footage in Ranua, a municipality in the Finnish province of Lapland. According to Finland's national tourist site, the northern lights are visible for about 200 nights a year from Lapland

    Continue reading...", + "category": "Finland", + "link": "https://www.theguardian.com/world/video/2022/jan/22/skier-captures-spectacular-northern-lights-display-in-finland-video", + "creator": "", + "pubDate": "2022-01-22T13:28:18Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "bc6262200c7ae7767f369f674388efe3", + "highlights": [] + }, + { + "title": "Ukraine: Blinken says talks with Russia’s Lavrov were ‘frank and substantive’ – video", + "description": "

    The US secretary of state described talks in Geneva with his Russian counterpart Sergei Lavrov, intended to reduce tensions that have risen since Russia massed troops near Ukraine's border, as ‘frank and substantive’. But Antony Blinken repeated the US and Nato’s position that there could still be no compromise on the central issue of the right of Ukraine and other countries to join Nato in the future

    Continue reading...", + "content": "

    The US secretary of state described talks in Geneva with his Russian counterpart Sergei Lavrov, intended to reduce tensions that have risen since Russia massed troops near Ukraine's border, as ‘frank and substantive’. But Antony Blinken repeated the US and Nato’s position that there could still be no compromise on the central issue of the right of Ukraine and other countries to join Nato in the future

    Continue reading...", + "category": "Russia", + "link": "https://www.theguardian.com/world/video/2022/jan/21/ukraine-blinken-says-talks-with-russias-lavrov-were-frank-and-substantive-video", + "creator": "", + "pubDate": "2022-01-21T21:11:58Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "9be6a76dd555616f13d140718b454f99", + "highlights": [] + }, + { + "title": "Yemen: drone footage shows scale of destruction after airstrike on prison – video", + "description": "

    An airstrike on a prison in northern Yemen has killed at least 60 people and wounded 200 more. The violence marked an especially deadly day in the seven-year war, leaving bystanders searching through rubble with their bare hands to rescue those trapped in the detention centre in Sa’ada. Overwhelmed nearby hospitals said they had been forced to turn away some of the injured. The attack comes five days after the Houthis claimed a drone-and-missile attack on Abu Dhabi that killed three people

    Continue reading...", + "content": "

    An airstrike on a prison in northern Yemen has killed at least 60 people and wounded 200 more. The violence marked an especially deadly day in the seven-year war, leaving bystanders searching through rubble with their bare hands to rescue those trapped in the detention centre in Sa’ada. Overwhelmed nearby hospitals said they had been forced to turn away some of the injured. The attack comes five days after the Houthis claimed a drone-and-missile attack on Abu Dhabi that killed three people

    Continue reading...", + "category": "Yemen", + "link": "https://www.theguardian.com/world/video/2022/jan/21/yemen-drone-footage-shows-scale-of-destruction-after-airstrike-on-prison-video", + "creator": "", + "pubDate": "2022-01-21T18:39:26Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "46e3bc6afc3fb100e88cbd1aa4a19d8d", + "highlights": [] + }, + { + "title": "'I thought of God and my family': Tongan survivor on spending 24 hours at sea – video", + "description": "

    Lisala Folau, a survivor of the Tonga tsunami, spoke on Friday of being swept to sea from the island of Atata. 'The scariest part of the ordeal for me was when the waves took me from land into the sea,' he told Sky News. The 57-year-old was swept away by a tsunami generated by a volcanic eruption on 15 January. 

    Folau, a retired carpenter with a motion disability, managed to stay afloat for more than a day and make his way across the sea to the main island of Tongatapu. He said his faith in God and his family were the two things that occupied his thoughts while he was helpless at sea

    Continue reading...", + "content": "

    Lisala Folau, a survivor of the Tonga tsunami, spoke on Friday of being swept to sea from the island of Atata. 'The scariest part of the ordeal for me was when the waves took me from land into the sea,' he told Sky News. The 57-year-old was swept away by a tsunami generated by a volcanic eruption on 15 January. 

    Folau, a retired carpenter with a motion disability, managed to stay afloat for more than a day and make his way across the sea to the main island of Tongatapu. He said his faith in God and his family were the two things that occupied his thoughts while he was helpless at sea

    Continue reading...", + "category": "Tonga", + "link": "https://www.theguardian.com/world/video/2022/jan/21/tonga-survivor-on-spending-24-hours-at-sea-video", + "creator": "", + "pubDate": "2022-01-21T15:31:22Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "cf9049bfd5c63bb4cdd52e2e4ee1db1a", + "highlights": [] + }, + { + "title": "Mitch McConnell under fire after saying African Americans vote as much as 'Americans' – video", + "description": "

    Top Senate Republican Mitch McConnell has been criticised after saying that Black Americans vote 'in just as high a percentage as Americans'. The comment came after Senate Democrats failed to pass voting rights protections in the run-up to this November's midterm elections that will determine control of Congress in 2023. 

    A reporter asked McConnell if he had a message for voters of color who were concerned that, without the John R Lewis Voting Rights Act, they were not going to be able to vote in the midterm. 'Well, the concern is misplaced because, if you look at the statistics, African American voters are voting in just as high a percentage as Americans,' McConnell said

    Continue reading...", + "content": "

    Top Senate Republican Mitch McConnell has been criticised after saying that Black Americans vote 'in just as high a percentage as Americans'. The comment came after Senate Democrats failed to pass voting rights protections in the run-up to this November's midterm elections that will determine control of Congress in 2023. 

    A reporter asked McConnell if he had a message for voters of color who were concerned that, without the John R Lewis Voting Rights Act, they were not going to be able to vote in the midterm. 'Well, the concern is misplaced because, if you look at the statistics, African American voters are voting in just as high a percentage as Americans,' McConnell said

    Continue reading...", + "category": "US news", + "link": "https://www.theguardian.com/us-news/video/2022/jan/21/mitch-mcconnell-under-fire-after-saying-african-americans-vote-as-much-as-americans-video", + "creator": "", + "pubDate": "2022-01-21T07:40:39Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "86b1e3f33318f253b5aaf95ca63c4036", + "highlights": [] + }, + { + "title": "Beijing authorities conduct mass Covid testing as cases rise before Olympics", + "description": "

    All residents of Fengtai district told to get nucleic acid tests as China’s capital rushes to contain Omicron outbreak

    Beijing’s local government has ordered more Covid-19 tests on Sunday as China’s capital continued to report new cases, less than two weeks before the start of the Winter Olympic Games.

    Nine locally transmitted cases with confirmed symptoms were found in Beijing on 22 January, down from 10 a day earlier, the National Health Commission (NHC) said on Sunday, adding that six out of the nine were in the city’s Fengtai district.

    Continue reading...", + "content": "

    All residents of Fengtai district told to get nucleic acid tests as China’s capital rushes to contain Omicron outbreak

    Beijing’s local government has ordered more Covid-19 tests on Sunday as China’s capital continued to report new cases, less than two weeks before the start of the Winter Olympic Games.

    Nine locally transmitted cases with confirmed symptoms were found in Beijing on 22 January, down from 10 a day earlier, the National Health Commission (NHC) said on Sunday, adding that six out of the nine were in the city’s Fengtai district.

    Continue reading...", + "category": "China", + "link": "https://www.theguardian.com/world/2022/jan/23/beijing-authorities-conduct-mass-covid-testing-as-cases-rise-before-olympics", + "creator": "Reuters", + "pubDate": "2022-01-23T07:29:47Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "982c8e028951585463d1a9534e910106", + "highlights": [] + }, + { + "title": "Sanders: ‘anti-democratic’ Republicans to blame for Biden woes, not just Manchin and Sinema", + "description": "

    Senator confirms he will campaign against moderate Democrats if they face primary challenges

    Bernie Sanders on Sunday sought to turn fire aimed by Democrats at two of their own, Kyrsten Sinema and Joe Manchin, onto Republican senators he said were “pushing an anti-democratic agenda”.

    “Republicans are laughing all the way to election day,” the Vermont senator told CNN’s State of the Union. “They have not had to cast one bloody vote which shows us where they’re at.”

    Continue reading...", + "content": "

    Senator confirms he will campaign against moderate Democrats if they face primary challenges

    Bernie Sanders on Sunday sought to turn fire aimed by Democrats at two of their own, Kyrsten Sinema and Joe Manchin, onto Republican senators he said were “pushing an anti-democratic agenda”.

    “Republicans are laughing all the way to election day,” the Vermont senator told CNN’s State of the Union. “They have not had to cast one bloody vote which shows us where they’re at.”

    Continue reading...", + "category": "Bernie Sanders", + "link": "https://www.theguardian.com/us-news/2022/jan/23/bernie-sanders-criticizes-republicans-kyrsten-sinema-joe-manchin", "creator": "Martin Pengelly in New York", - "pubDate": "2022-01-23T13:17:37Z", + "pubDate": "2022-01-23T16:36:10Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324584,7 +326476,95 @@ "favorite": false, "created": false, "tags": [], - "hash": "40ba2751431b8db1d478da2e9adb4bc2", + "hash": "c378e63f84869b38d3fabdb89db0d977", + "highlights": [] + }, + { + "title": "A paramedic and an ICU nurse from the frontline of the Omicron surge", + "description": "

    All summer we’ve seen the highly contagious Omicron variant rip through most of Australia, as a record number of people continue to get sick and die from the virus.

    Laura Murphy-Oates speaks to a paramedic and a senior ICU nurse, who say the health system is being pushed to the limit

    Read more:

    Continue reading...", + "content": "

    All summer we’ve seen the highly contagious Omicron variant rip through most of Australia, as a record number of people continue to get sick and die from the virus.

    Laura Murphy-Oates speaks to a paramedic and a senior ICU nurse, who say the health system is being pushed to the limit

    Read more:

    Continue reading...", + "category": "Health", + "link": "https://www.theguardian.com/australia-news/audio/2022/jan/24/a-paramedic-and-an-icu-nurse-from-the-frontline-of-the-omicron-surge", + "creator": "Presented by Laura Murphy-Oates. Produced by Jane Lee Karishma LuthriaJake MorcomEllen Leabeater. Sound design and mix by Camilla Hannan . Executive ProducersGabrielle Jackson Miles Martignoniand Laura Murphy-Oates.", + "pubDate": "2022-01-23T16:30:27Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b9512544e7d7c6906b4a9c1232e442e3", + "highlights": [] + }, + { + "title": "Eighty years late: groundbreaking work on slave economy is finally published in UK", + "description": "

    Seminal work by scholar and future politician Eric Williams, shunned for decades, is issued by mainstream imprint

    In 1938, a brilliant young Black scholar at Oxford University wrote a thesis on the economic history of British empire and challenged a claim about slavery that had been defining Britain’s role in the world for more than a century.

    But when Eric Williams – who would later become the first prime minister of Trinidad and Tobago – sought to publish his “mind-blowing” thesis on capitalism and slavery in Britain, he was shunned by publishers and accused of undermining the humanitarian motivation for Britain’s Slavery Abolition Act.

    Continue reading...", + "content": "

    Seminal work by scholar and future politician Eric Williams, shunned for decades, is issued by mainstream imprint

    In 1938, a brilliant young Black scholar at Oxford University wrote a thesis on the economic history of British empire and challenged a claim about slavery that had been defining Britain’s role in the world for more than a century.

    But when Eric Williams – who would later become the first prime minister of Trinidad and Tobago – sought to publish his “mind-blowing” thesis on capitalism and slavery in Britain, he was shunned by publishers and accused of undermining the humanitarian motivation for Britain’s Slavery Abolition Act.

    Continue reading...", + "category": "Race", + "link": "https://www.theguardian.com/world/2022/jan/23/eighty-years-late-groundbreaking-work-on-slave-economy-is-finally-published-in-uk", + "creator": "Donna Ferguson", + "pubDate": "2022-01-23T09:30:19Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "257cd38bdd1478f21b5b5d109032ce44", + "highlights": [] + }, + { + "title": "Covid live: Russia breaks daily case total; WHO official warns there will be more variants of note after Omicron", + "description": "

    Latest updates: follow all the news and politics developments resulting from the coronavirus pandemic in the UK and around the world

    Sturgeon talks about the impact on business. She said she realises that hospitality has been badly affected by the pandemic.

    “It’s not about having protective measures and businesses are damaged, or having no measures and everything is fine. It’s having measures than stem transmission, or allowing things to be controlled.”

    Continue reading...", + "content": "

    Latest updates: follow all the news and politics developments resulting from the coronavirus pandemic in the UK and around the world

    Sturgeon talks about the impact on business. She said she realises that hospitality has been badly affected by the pandemic.

    “It’s not about having protective measures and businesses are damaged, or having no measures and everything is fine. It’s having measures than stem transmission, or allowing things to be controlled.”

    Continue reading...", + "category": "Coronavirus", + "link": "https://www.theguardian.com/world/live/2022/jan/23/covid-news-boris-johnson-partygate-no-10-swipe-card-data", + "creator": "Harry Taylor", + "pubDate": "2022-01-23T10:34:03Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7e15b0b8f038298670761d131d12e44f", + "highlights": [] + }, + { + "title": "Bernie Sanders accuses Republicans of ‘pushing anti-democratic agenda’", + "description": "

    Senator also criticizes Democrats Sinema and Manchin, confirms he will campaign against them if they face primary challenges

    Bernie Sanders on Sunday sought to turn fire aimed by Democrats at two of their own, Kyrsten Sinema and Joe Manchin, onto Republican senators he said were “pushing an anti-democratic agenda”.

    “Republicans are laughing all the way to election day,” the Vermont senator told CNN’s State of the Union. “They have not had to cast one bloody vote which shows us where they’re at.”

    Continue reading...", + "content": "

    Senator also criticizes Democrats Sinema and Manchin, confirms he will campaign against them if they face primary challenges

    Bernie Sanders on Sunday sought to turn fire aimed by Democrats at two of their own, Kyrsten Sinema and Joe Manchin, onto Republican senators he said were “pushing an anti-democratic agenda”.

    “Republicans are laughing all the way to election day,” the Vermont senator told CNN’s State of the Union. “They have not had to cast one bloody vote which shows us where they’re at.”

    Continue reading...", + "category": "Bernie Sanders", + "link": "https://www.theguardian.com/us-news/2022/jan/23/bernie-sanders-criticizes-republicans-kyrsten-sinema-joe-manchin", + "creator": "Martin Pengelly in New York", + "pubDate": "2022-01-23T15:48:25Z", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/News - EN", + "feed": "The Guardian", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "76720d742d37f422d83b53d674dbcbb6", "highlights": [] }, { @@ -324610,167 +326590,13 @@ "highlights": [] }, { - "title": "‘I used to judge people’: the Polish woman who became her city’s lone voice for abortion rights", - "description": "

    Monika was too busy with her young family to join the early protests against Poland’s strict abortion laws. But when she became pregnant with her fourth child, she realised she had to act

    It is Saturday afternoon, and the centre of Chełm, a Polish city on the Ukrainian border, is empty except for one woman and her toddler. A monument to “the fallen sons” of the 1920 Polish-Soviet war marks the middle of the market square, surrounded by two churches, a few closed restaurants, and a boarded-up wooden booth with a sign reading, “cheap footwear”. The Catholic Basilica – a former Eastern Orthodox church – dominates the landscape and, locals say, the social life of the town.

    Chełm is in one of the poorest areas in Poland, a stronghold of the ruling nationalist Law and Justice party, where the birthrate is -6.1 and people in their 60s comprise the largest age group. The city – once among Poland’s most religiously and ethnically diverse, with a pre-2nd?second world war population split evenly between Poles, Ukrainians, and Jews – was the site of one of the first postwar anti-Jewish Pogroms and, more recently, among the first local councils to declare itself an “LGBT-free zone.”

    Continue reading...", - "content": "

    Monika was too busy with her young family to join the early protests against Poland’s strict abortion laws. But when she became pregnant with her fourth child, she realised she had to act

    It is Saturday afternoon, and the centre of Chełm, a Polish city on the Ukrainian border, is empty except for one woman and her toddler. A monument to “the fallen sons” of the 1920 Polish-Soviet war marks the middle of the market square, surrounded by two churches, a few closed restaurants, and a boarded-up wooden booth with a sign reading, “cheap footwear”. The Catholic Basilica – a former Eastern Orthodox church – dominates the landscape and, locals say, the social life of the town.

    Chełm is in one of the poorest areas in Poland, a stronghold of the ruling nationalist Law and Justice party, where the birthrate is -6.1 and people in their 60s comprise the largest age group. The city – once among Poland’s most religiously and ethnically diverse, with a pre-2nd?second world war population split evenly between Poles, Ukrainians, and Jews – was the site of one of the first postwar anti-Jewish Pogroms and, more recently, among the first local councils to declare itself an “LGBT-free zone.”

    Continue reading...", - "category": "Women's rights and gender equality", - "link": "https://www.theguardian.com/global-development/2022/jan/23/i-used-to-judge-people-the-polish-woman-who-became-her-citys-lone-voice-for-abortion-rights", - "creator": "Weronika Strzyżyńska", - "pubDate": "2022-01-23T08:00:17Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "deb1eff107cbd5577bb72f2486bd3f18", - "highlights": [] - }, - { - "title": "Kill the Bill and period protests: human rights this fortnight – in pictures", - "description": "

    A roundup of the coverage of the struggle for human rights and freedoms, from Cambodia to Costa Rica

    Continue reading...", - "content": "

    A roundup of the coverage of the struggle for human rights and freedoms, from Cambodia to Costa Rica

    Continue reading...", - "category": "Human rights", - "link": "https://www.theguardian.com/global-development/gallery/2022/jan/22/kill-the-bill-and-period-protests-human-rights-this-fortnight-in-pictures", - "creator": "Sarah Johnson, compiled by Eric Hilaire", - "pubDate": "2022-01-22T07:30:47Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "e4e587a57a6a8fbb12be6a6d19195fb3", - "highlights": [] - }, - { - "title": "Vulnerable Malians could ‘pay the price’ of heavy sanctions, warn aid groups", - "description": "

    NGOs call for aid exemption to EU-backed sanctions imposed after election postponement and arrival of Russian paramilitary

    More than a dozen aid organisations have called for humanitarian exemptions to heavy sanctions imposed on Mali after the military leadership postponed planned February elections.

    The EU has announced support for the sanctions imposed earlier this month by the Economic Community of West African States (Ecowas), which include closing borders and a trade embargo.

    Continue reading...", - "content": "

    NGOs call for aid exemption to EU-backed sanctions imposed after election postponement and arrival of Russian paramilitary

    More than a dozen aid organisations have called for humanitarian exemptions to heavy sanctions imposed on Mali after the military leadership postponed planned February elections.

    The EU has announced support for the sanctions imposed earlier this month by the Economic Community of West African States (Ecowas), which include closing borders and a trade embargo.

    Continue reading...", - "category": "Global development", - "link": "https://www.theguardian.com/global-development/2022/jan/21/vulnerable-malians-could-pay-the-price-of-heavy-sanctions-warn-aid-groups", - "creator": "Saeed Kamali Dehghan", - "pubDate": "2022-01-21T12:25:21Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "cbfbeeebd83e11773f70c86f421e6f36", - "highlights": [] - }, - { - "title": "From Afghanistan to Italy: a teenage ski champion flees the Taliban – in pictures", - "description": "

    Until August last year, 18-year-old Nazira Khairzad lived a carefree existence with her family in the foothills of the Bamyan mountains. She loves sport and was a champion skier, but when the Taliban took over she decided to flee, leaving her old life behind. Photojournalist Rick Findler documented her attempts to settle into a new life

    Continue reading...", - "content": "

    Until August last year, 18-year-old Nazira Khairzad lived a carefree existence with her family in the foothills of the Bamyan mountains. She loves sport and was a champion skier, but when the Taliban took over she decided to flee, leaving her old life behind. Photojournalist Rick Findler documented her attempts to settle into a new life

    Continue reading...", - "category": "Global development", - "link": "https://www.theguardian.com/global-development/gallery/2022/jan/21/from-afghanistan-to-italy-a-teenage-ski-champion-flees-the-taliban-nazira-khairzad-in-pictures", - "creator": "", - "pubDate": "2022-01-21T09:30:27Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "7a78c6e5494b72dd6e4a80ba2d9e27f4", - "highlights": [] - }, - { - "title": "Female leadership is good for the world. Just look at Barbados", - "description": "

    Mia Mottley is just one of a raft of strong women across the Caribbean and South America tackling society’s most pressing issues. The world could learn a lot from them

    There is a common misconception that the developing world is full of archaic values and that women struggle to have their voices heard. The more countries I visit and the more female leaders I speak to, the more I am convinced the contrary is true.

    In fact, those in positions of power worldwide could learn important lessons from these strong women when it comes to tackling some of society’s most pressing issues, including pandemics, the climate crisis, education and infrastructure.

    Continue reading...", - "content": "

    Mia Mottley is just one of a raft of strong women across the Caribbean and South America tackling society’s most pressing issues. The world could learn a lot from them

    There is a common misconception that the developing world is full of archaic values and that women struggle to have their voices heard. The more countries I visit and the more female leaders I speak to, the more I am convinced the contrary is true.

    In fact, those in positions of power worldwide could learn important lessons from these strong women when it comes to tackling some of society’s most pressing issues, including pandemics, the climate crisis, education and infrastructure.

    Continue reading...", - "category": "Women's rights and gender equality", - "link": "https://www.theguardian.com/global-development/2022/jan/21/female-leadership-is-good-for-the-world-just-look-at-barbados", - "creator": "Mandeep Rai", - "pubDate": "2022-01-21T07:45:25Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "aa47b40646b314a3a20e9b11224097d4", - "highlights": [] - }, - { - "title": "Deal with Jacinda Ardern’s Labour party is proving toxic for New Zealand’s Greens | Morgan Godfery", - "description": "

    The inter-party agreement has left the Greens defending rising emissions – a stance that goes against all their principles

    Metiria Turei, the former Green party co-leader, left parliament more than four years ago, resigning from the co-leadership and the party list after right wing lobby groups, with an able assist in the form of the parliamentary press gallery, led a ruthless campaign against the former lawyer for admitting that she once had to commit benefit fraud to feed her young family.

    The admission came in a landmark speech condemning New Zealand’s miserly welfare system. Struggling families were paid far too little to survive, something policymakers had known for decades, with examples ranging from Turei’s own to anonymous sole parents who were coming forward to describe how they spent $380 of the $480 in assistance from the State on rent alone. Turei and the Greens were promising to lift the rate of sole parent support, remove sanctions, and make other necessary and progressive reforms to the welfare system in order for people to meet their basic needs.

    Continue reading...", - "content": "

    The inter-party agreement has left the Greens defending rising emissions – a stance that goes against all their principles

    Metiria Turei, the former Green party co-leader, left parliament more than four years ago, resigning from the co-leadership and the party list after right wing lobby groups, with an able assist in the form of the parliamentary press gallery, led a ruthless campaign against the former lawyer for admitting that she once had to commit benefit fraud to feed her young family.

    The admission came in a landmark speech condemning New Zealand’s miserly welfare system. Struggling families were paid far too little to survive, something policymakers had known for decades, with examples ranging from Turei’s own to anonymous sole parents who were coming forward to describe how they spent $380 of the $480 in assistance from the State on rent alone. Turei and the Greens were promising to lift the rate of sole parent support, remove sanctions, and make other necessary and progressive reforms to the welfare system in order for people to meet their basic needs.

    Continue reading...", - "category": "New Zealand", - "link": "https://www.theguardian.com/world/commentisfree/2022/jan/23/the-deal-with-jacinda-arderns-labour-party-is-proving-toxic-for-new-zealands-greens", - "creator": "Morgan Godfery", - "pubDate": "2022-01-22T19:00:02Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "4b79415aa9e0d41419b24274226ae9aa", - "highlights": [] - }, - { - "title": "After Democrats’ historic defeat on voting rights, what happens next?", - "description": "

    In an extremely bruising loss for Biden, Republicans used the filibuster to block the sweeping bill from passing

    For a little over a year, America has faced a democratic crisis unlike any it has seen in recent history.

    As Republicans have spread lies about the 2020 presidential election, confidence in it remains staggeringly low and about 1 in 3 Americans now believe Joe Biden was not legitimately elected. Republicans who claim the election was stolen are trying to grab key election administration roles, prompting unprecedented alarm that a future election could be overturned.

    Continue reading...", - "content": "

    In an extremely bruising loss for Biden, Republicans used the filibuster to block the sweeping bill from passing

    For a little over a year, America has faced a democratic crisis unlike any it has seen in recent history.

    As Republicans have spread lies about the 2020 presidential election, confidence in it remains staggeringly low and about 1 in 3 Americans now believe Joe Biden was not legitimately elected. Republicans who claim the election was stolen are trying to grab key election administration roles, prompting unprecedented alarm that a future election could be overturned.

    Continue reading...", - "category": "US politics", - "link": "https://www.theguardian.com/us-news/2022/jan/20/after-democrats-historic-defeat-on-voting-rights-what-happens-next", - "creator": "Sam Levine in New York", - "pubDate": "2022-01-21T07:00:25Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "599f7688a6462c5dc2d9cdd3b09cf763", - "highlights": [] - }, - { - "title": "Mixed messages? How end of Covid plan B could change behaviour in England", - "description": "

    Analysis: Experts say when the rules are relaxed there tends to be a gradual erosion of protective behaviours

    All plan B measures in England will be lifted next week, meaning an end to compulsory mask-wearing in shops, vaccine certificates for entering venues, and guidance to work from home. But are the public ready to embrace these freedoms just weeks after Covid cases in the UK hit a record high and with daily deaths higher now than when the measures were introduced?

    Some are likely to feel more than ready to cast aside restrictions that have been financially and personally cumbersome, while others may fear things are moving too quickly. Regardless of the range of attitudes, changing the rules will shift behaviour.

    Continue reading...", - "content": "

    Analysis: Experts say when the rules are relaxed there tends to be a gradual erosion of protective behaviours

    All plan B measures in England will be lifted next week, meaning an end to compulsory mask-wearing in shops, vaccine certificates for entering venues, and guidance to work from home. But are the public ready to embrace these freedoms just weeks after Covid cases in the UK hit a record high and with daily deaths higher now than when the measures were introduced?

    Some are likely to feel more than ready to cast aside restrictions that have been financially and personally cumbersome, while others may fear things are moving too quickly. Regardless of the range of attitudes, changing the rules will shift behaviour.

    Continue reading...", - "category": "Coronavirus", - "link": "https://www.theguardian.com/world/2022/jan/21/mixed-messages-how-end-of-covid-plan-b-rules-could-change-behaviour", - "creator": "Hannah Devlin Science correspondent", - "pubDate": "2022-01-21T07:00:24Z", + "title": "Love jihad: India's lethal religious conspiracy theory – video", + "description": "

    The mutilated body of a 24-year-old Muslim, Arbaaz Aftab Mullah, was discovered on a railway track near his home. His family believe he was murdered because of his interfaith relationship with a Hindu woman and that he is one of the latest victims of the 'love jihad' conspiracy theory, which has swept across groups of Hindu nationalists in India. The theory claims that Muslim men are seducing Hindu women and luring them into marriage in order to convert them to Islam. The claims are baseless, yet the consequences are real

    Continue reading...", + "content": "

    The mutilated body of a 24-year-old Muslim, Arbaaz Aftab Mullah, was discovered on a railway track near his home. His family believe he was murdered because of his interfaith relationship with a Hindu woman and that he is one of the latest victims of the 'love jihad' conspiracy theory, which has swept across groups of Hindu nationalists in India. The theory claims that Muslim men are seducing Hindu women and luring them into marriage in order to convert them to Islam. The claims are baseless, yet the consequences are real

    Continue reading...", + "category": "India", + "link": "https://www.theguardian.com/world/video/2022/jan/21/love-jihad-indias-lethal-religious-conspiracy-theory-video", + "creator": "Hannah Ellis-Petersen, Ahmer Khan, Kyri Evangelou, Sartaj Alam and Katie Lamborn", + "pubDate": "2022-01-21T05:00:21Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324782,17 +326608,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "2db37cac17e6d6329b03ec90d6e5db19", + "hash": "5888a8b74ba6a9c65b65420e55b8af1f", "highlights": [] }, { - "title": "Covid-19 map of the US: latest cases state by state", - "description": "

    The US emerged as an early hotspot for the coronavirus and it continues to have some of the highest case and death rates in the world. It leads the world in both confirmed Covid-19 cases and deaths, according to data from Johns Hopkins University.

    It’s important to point out that the actual death toll is believed to be far higher than the tally compiled from government figures.

    Continue reading...", - "content": "

    The US emerged as an early hotspot for the coronavirus and it continues to have some of the highest case and death rates in the world. It leads the world in both confirmed Covid-19 cases and deaths, according to data from Johns Hopkins University.

    It’s important to point out that the actual death toll is believed to be far higher than the tally compiled from government figures.

    Continue reading...", - "category": "Coronavirus", - "link": "https://www.theguardian.com/world/ng-interactive/2021/sep/02/covid-19-coronavirus-us-map-latest-cases-state-by-state", - "creator": "Guardian Visuals", - "pubDate": "2022-01-20T15:32:36Z", + "title": "Nusrat Ghani needs to make formal Islamophobia complaint, says Raab", + "description": "

    Deputy PM says former minister’s claim she lost job because of her faith will not be investigated without the complaint

    A Conservative MP who says she was told by a government whip that she had lost her ministerial role because her Muslim faith was “making colleagues uncomfortable” should make a formal complaint about the incident, Dominic Raab has said.

    Calling the allegations by Nusrat Ghani “incredibly serious”, Raab, the justice secretary and deputy prime minister, declined to say whether he believed his former government colleague, saying he was “not going to get into impugning anyone’s integrity”.

    Continue reading...", + "content": "

    Deputy PM says former minister’s claim she lost job because of her faith will not be investigated without the complaint

    A Conservative MP who says she was told by a government whip that she had lost her ministerial role because her Muslim faith was “making colleagues uncomfortable” should make a formal complaint about the incident, Dominic Raab has said.

    Calling the allegations by Nusrat Ghani “incredibly serious”, Raab, the justice secretary and deputy prime minister, declined to say whether he believed his former government colleague, saying he was “not going to get into impugning anyone’s integrity”.

    Continue reading...", + "category": "Conservatives", + "link": "https://www.theguardian.com/politics/2022/jan/23/nusrat-ghani-needs-to-make-formal-islamophobia-complaint-says-raab", + "creator": "Peter Walker Political correspondent", + "pubDate": "2022-01-23T09:56:04Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324804,17 +326630,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "915fd6915acbd5cae89e6534d60da7d8", + "hash": "ebb5f496a7d752d81386954ec11a406d", "highlights": [] }, { - "title": "Skier captures spectacular northern lights display in Finland – video", - "description": "

    A skier in northern Finland was treated to a stunning display as the vivid aurora borealis and a bright moon shone in the sky early on Saturday 15 January. Jari Romppainen filmed the footage in Ranua, a municipality in the Finnish province of Lapland. According to Finland's national tourist site, the northern lights are visible for about 200 nights a year from Lapland

    Continue reading...", - "content": "

    A skier in northern Finland was treated to a stunning display as the vivid aurora borealis and a bright moon shone in the sky early on Saturday 15 January. Jari Romppainen filmed the footage in Ranua, a municipality in the Finnish province of Lapland. According to Finland's national tourist site, the northern lights are visible for about 200 nights a year from Lapland

    Continue reading...", - "category": "Finland", - "link": "https://www.theguardian.com/world/video/2022/jan/22/skier-captures-spectacular-northern-lights-display-in-finland-video", - "creator": "", - "pubDate": "2022-01-22T13:28:18Z", + "title": "Queen to spend next few weeks at Sandringham after flight from Windsor", + "description": "

    Monarch stayed at Windsor Castle over Christmas as a precautionary measure as Covid cases rose

    The Queen has flown by helicopter from Windsor Castle to Sandringham where she will spend the next few weeks, it is understood.

    The monarch normally hosts her family at Sandringham over the holidays, and on Christmas Day the royals attend church nearby.

    Continue reading...", + "content": "

    Monarch stayed at Windsor Castle over Christmas as a precautionary measure as Covid cases rose

    The Queen has flown by helicopter from Windsor Castle to Sandringham where she will spend the next few weeks, it is understood.

    The monarch normally hosts her family at Sandringham over the holidays, and on Christmas Day the royals attend church nearby.

    Continue reading...", + "category": "The Queen", + "link": "https://www.theguardian.com/uk-news/2022/jan/23/queen-sandringham-flight-from-windsor", + "creator": "PA Media", + "pubDate": "2022-01-23T14:46:55Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324826,17 +326652,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "bc6262200c7ae7767f369f674388efe3", + "hash": "d09ea1fc29b612cd7e019e7a98db4293", "highlights": [] }, { - "title": "Ukraine: Blinken says talks with Russia’s Lavrov were ‘frank and substantive’ – video", - "description": "

    The US secretary of state described talks in Geneva with his Russian counterpart Sergei Lavrov, intended to reduce tensions that have risen since Russia massed troops near Ukraine's border, as ‘frank and substantive’. But Antony Blinken repeated the US and Nato’s position that there could still be no compromise on the central issue of the right of Ukraine and other countries to join Nato in the future

    Continue reading...", - "content": "

    The US secretary of state described talks in Geneva with his Russian counterpart Sergei Lavrov, intended to reduce tensions that have risen since Russia massed troops near Ukraine's border, as ‘frank and substantive’. But Antony Blinken repeated the US and Nato’s position that there could still be no compromise on the central issue of the right of Ukraine and other countries to join Nato in the future

    Continue reading...", - "category": "Russia", - "link": "https://www.theguardian.com/world/video/2022/jan/21/ukraine-blinken-says-talks-with-russias-lavrov-were-frank-and-substantive-video", - "creator": "", - "pubDate": "2022-01-21T21:11:58Z", + "title": "UK’s propaganda leaflets inspired 1960s massacre of Indonesian communists", + "description": "

    Pamphlets attacked the president and foreign minister

    Shocking new details have emerged of Britain’s role in one of the most brutal massacres of the postwar 20th century.

    Last year the Observer revealed how British officials secretly deployed black propaganda in the 1960s to incite prominent Indonesians to “cut out” the “communist cancer”.

    Continue reading...", + "content": "

    Pamphlets attacked the president and foreign minister

    Shocking new details have emerged of Britain’s role in one of the most brutal massacres of the postwar 20th century.

    Last year the Observer revealed how British officials secretly deployed black propaganda in the 1960s to incite prominent Indonesians to “cut out” the “communist cancer”.

    Continue reading...", + "category": "Indonesia", + "link": "https://www.theguardian.com/world/2022/jan/23/uks-propaganda-leaflets-inspired-1960s-massacre-of-indonesian-communists", + "creator": "Paul Lashmer, Nicholas Gilby, James Oliver", + "pubDate": "2022-01-23T09:15:18Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324848,17 +326674,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "9be6a76dd555616f13d140718b454f99", + "hash": "8826f7fa702d796c74225af7b976d8ae", "highlights": [] }, { - "title": "Yemen: drone footage shows scale of destruction after airstrike on prison – video", - "description": "

    An airstrike on a prison in northern Yemen has killed at least 60 people and wounded 200 more. The violence marked an especially deadly day in the seven-year war, leaving bystanders searching through rubble with their bare hands to rescue those trapped in the detention centre in Sa’ada. Overwhelmed nearby hospitals said they had been forced to turn away some of the injured. The attack comes five days after the Houthis claimed a drone-and-missile attack on Abu Dhabi that killed three people

    Continue reading...", - "content": "

    An airstrike on a prison in northern Yemen has killed at least 60 people and wounded 200 more. The violence marked an especially deadly day in the seven-year war, leaving bystanders searching through rubble with their bare hands to rescue those trapped in the detention centre in Sa’ada. Overwhelmed nearby hospitals said they had been forced to turn away some of the injured. The attack comes five days after the Houthis claimed a drone-and-missile attack on Abu Dhabi that killed three people

    Continue reading...", - "category": "Yemen", - "link": "https://www.theguardian.com/world/video/2022/jan/21/yemen-drone-footage-shows-scale-of-destruction-after-airstrike-on-prison-video", - "creator": "", - "pubDate": "2022-01-21T18:39:26Z", + "title": "Murder investigation launched after boy, 16, fatally stabbed in Stretford", + "description": "

    Paramedics treated boy at the scene in the Trafford town on Saturday evening but he later died in hospital

    A murder investigation has been launched after a 16-year-old boy was fatally stabbed on Saturday night.

    Greater Manchester police (GMP) said officers attended reports of a teenager with stab wounds in Stretford, Trafford, at about 7pm. Paramedics treated the boy at the scene before he was taken to hospital where he died of his injuries.

    Continue reading...", + "content": "

    Paramedics treated boy at the scene in the Trafford town on Saturday evening but he later died in hospital

    A murder investigation has been launched after a 16-year-old boy was fatally stabbed on Saturday night.

    Greater Manchester police (GMP) said officers attended reports of a teenager with stab wounds in Stretford, Trafford, at about 7pm. Paramedics treated the boy at the scene before he was taken to hospital where he died of his injuries.

    Continue reading...", + "category": "UK news", + "link": "https://www.theguardian.com/uk-news/2022/jan/23/murder-investigation-stretford-trafford-boy-stabbed", + "creator": "Maya Wolfe-Robinson", + "pubDate": "2022-01-23T10:26:48Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324870,17 +326696,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "46e3bc6afc3fb100e88cbd1aa4a19d8d", + "hash": "ab6513585882da8aeaacb58d4ec2a4f4", "highlights": [] }, { - "title": "'I thought of God and my family': Tongan survivor on spending 24 hours at sea – video", - "description": "

    Lisala Folau, a survivor of the Tonga tsunami, spoke on Friday of being swept to sea from the island of Atata. 'The scariest part of the ordeal for me was when the waves took me from land into the sea,' he told Sky News. The 57-year-old was swept away by a tsunami generated by a volcanic eruption on 15 January. 

    Folau, a retired carpenter with a motion disability, managed to stay afloat for more than a day and make his way across the sea to the main island of Tongatapu. He said his faith in God and his family were the two things that occupied his thoughts while he was helpless at sea

    Continue reading...", - "content": "

    Lisala Folau, a survivor of the Tonga tsunami, spoke on Friday of being swept to sea from the island of Atata. 'The scariest part of the ordeal for me was when the waves took me from land into the sea,' he told Sky News. The 57-year-old was swept away by a tsunami generated by a volcanic eruption on 15 January. 

    Folau, a retired carpenter with a motion disability, managed to stay afloat for more than a day and make his way across the sea to the main island of Tongatapu. He said his faith in God and his family were the two things that occupied his thoughts while he was helpless at sea

    Continue reading...", - "category": "Tonga", - "link": "https://www.theguardian.com/world/video/2022/jan/21/tonga-survivor-on-spending-24-hours-at-sea-video", - "creator": "", - "pubDate": "2022-01-21T15:31:22Z", + "title": "Calories on menus ‘may not be helpful’ in drive against obesity", + "description": "

    Campaigners say compulsory menu labelling could put too much emphasis on calorie counting

    A Big Mac has 508. Wagamama’s hot chicken katsu curry has 1,089. And a large mixed grill with chips at Wetherspoon’s has 2,052. But will knowing how many calories are in a restaurant meal help make a difference to the UK’s obesity epidemic?

    From April, all cafes and restaurants run by companies with more than 250 staff will be obliged to include calorie counts for each item on their menus. The government hopes this will encourage people to make healthier choices and nudge restaurants towards offering healthier options.

    Continue reading...", + "content": "

    Campaigners say compulsory menu labelling could put too much emphasis on calorie counting

    A Big Mac has 508. Wagamama’s hot chicken katsu curry has 1,089. And a large mixed grill with chips at Wetherspoon’s has 2,052. But will knowing how many calories are in a restaurant meal help make a difference to the UK’s obesity epidemic?

    From April, all cafes and restaurants run by companies with more than 250 staff will be obliged to include calorie counts for each item on their menus. The government hopes this will encourage people to make healthier choices and nudge restaurants towards offering healthier options.

    Continue reading...", + "category": "Health", + "link": "https://www.theguardian.com/society/2022/jan/23/calories-on-menus-may-not-be-helpful-in-drive-against-obesity", + "creator": "James Tapper", + "pubDate": "2022-01-23T07:30:15Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324892,17 +326718,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "cf9049bfd5c63bb4cdd52e2e4ee1db1a", + "hash": "a73561bffa98d99e939f91834e5d75f4", "highlights": [] }, { - "title": "Mitch McConnell under fire after saying African Americans vote as much as 'Americans' – video", - "description": "

    Top Senate Republican Mitch McConnell has been criticised after saying that Black Americans vote 'in just as high a percentage as Americans'. The comment came after Senate Democrats failed to pass voting rights protections in the run-up to this November's midterm elections that will determine control of Congress in 2023. 

    A reporter asked McConnell if he had a message for voters of color who were concerned that, without the John R Lewis Voting Rights Act, they were not going to be able to vote in the midterm. 'Well, the concern is misplaced because, if you look at the statistics, African American voters are voting in just as high a percentage as Americans,' McConnell said

    Continue reading...", - "content": "

    Top Senate Republican Mitch McConnell has been criticised after saying that Black Americans vote 'in just as high a percentage as Americans'. The comment came after Senate Democrats failed to pass voting rights protections in the run-up to this November's midterm elections that will determine control of Congress in 2023. 

    A reporter asked McConnell if he had a message for voters of color who were concerned that, without the John R Lewis Voting Rights Act, they were not going to be able to vote in the midterm. 'Well, the concern is misplaced because, if you look at the statistics, African American voters are voting in just as high a percentage as Americans,' McConnell said

    Continue reading...", - "category": "US news", - "link": "https://www.theguardian.com/us-news/video/2022/jan/21/mitch-mcconnell-under-fire-after-saying-african-americans-vote-as-much-as-americans-video", - "creator": "", - "pubDate": "2022-01-21T07:40:39Z", + "title": "How my husband finally cracked and got a mobile phone", + "description": "

    Until very recently my partner had never owned a mobile – blissful for him, inconvenient for me, infuriating to friends. Will our life ever be the same?

    In her new memoir, I Came All This Way to Meet You, the American novelist Jami Attenberg describes meeting a man who is not on any social media at all, and who therefore has no idea what it’s like to receive a like or retweet. Attenberg considers this state wildly unusual, not to say bizarre; she’s all over Instagram and the rest. But her amazement is tempered with what sounds like envy. “You goddam beautiful unicorn,” she writes of him. “What’s that like, being entirely self-validating? What’s it like to wake up every day and not worry what anyone else thinks?”

    As it happens, I’ve spent the past 18 years of my life with just such a unicorn, though the man I’m talking about is – or was – an even rarer beast than hers. So, a guy isn’t on social media. So what? Lots of people aren’t. Facebook is for dinosaurs. The more important fact by far when it comes to my mythical creature is that, until three weeks ago, he did not, in a Britain in which around 87% of adults own a smartphone, even have a mobile. Not only had he never used social media, he had never sent, let alone received, a text. The exquisite torture that comes of WhatsApp and its blue ticks was entirely unknown to him, a man whose body is very far indeed from being hard-wired to respond to alerts. Nothing pinged in his pocket as he strolled along. When he was lost, he had to ask a stranger, not Google Maps. When he was out late, he had to rely on his legs, not an Uber. Calls? You’d be surprised. The last time he needed urgently to contact me while out and about, he walked into a hotel bar and, drawing on all of his great David Niven-like urbanity, casually asked a waiter if he might “use your telephone for a moment”.

    Continue reading...", + "content": "

    Until very recently my partner had never owned a mobile – blissful for him, inconvenient for me, infuriating to friends. Will our life ever be the same?

    In her new memoir, I Came All This Way to Meet You, the American novelist Jami Attenberg describes meeting a man who is not on any social media at all, and who therefore has no idea what it’s like to receive a like or retweet. Attenberg considers this state wildly unusual, not to say bizarre; she’s all over Instagram and the rest. But her amazement is tempered with what sounds like envy. “You goddam beautiful unicorn,” she writes of him. “What’s that like, being entirely self-validating? What’s it like to wake up every day and not worry what anyone else thinks?”

    As it happens, I’ve spent the past 18 years of my life with just such a unicorn, though the man I’m talking about is – or was – an even rarer beast than hers. So, a guy isn’t on social media. So what? Lots of people aren’t. Facebook is for dinosaurs. The more important fact by far when it comes to my mythical creature is that, until three weeks ago, he did not, in a Britain in which around 87% of adults own a smartphone, even have a mobile. Not only had he never used social media, he had never sent, let alone received, a text. The exquisite torture that comes of WhatsApp and its blue ticks was entirely unknown to him, a man whose body is very far indeed from being hard-wired to respond to alerts. Nothing pinged in his pocket as he strolled along. When he was lost, he had to ask a stranger, not Google Maps. When he was out late, he had to rely on his legs, not an Uber. Calls? You’d be surprised. The last time he needed urgently to contact me while out and about, he walked into a hotel bar and, drawing on all of his great David Niven-like urbanity, casually asked a waiter if he might “use your telephone for a moment”.

    Continue reading...", + "category": "Smartphones", + "link": "https://www.theguardian.com/technology/2022/jan/23/how-my-husband-finally-cracked-and-got-a-mobile-phone", + "creator": "Rachel Cooke", + "pubDate": "2022-01-23T12:00:21Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324914,17 +326740,17 @@ "favorite": false, "created": false, "tags": [], - "hash": "86b1e3f33318f253b5aaf95ca63c4036", + "hash": "1f7a5c8e256860aae47b3b0e678552aa", "highlights": [] }, { - "title": "Love jihad: India's lethal religious conspiracy theory – video", - "description": "

    The mutilated body of a 24-year-old Muslim, Arbaaz Aftab Mullah, was discovered on a railway track near his home. His family believe he was murdered because of his interfaith relationship with a Hindu woman and that he is one of the latest victims of the 'love jihad' conspiracy theory, which has swept across groups of Hindu nationalists in India. The theory claims that Muslim men are seducing Hindu women and luring them into marriage in order to convert them to Islam. The claims are baseless, yet the consequences are real

    Continue reading...", - "content": "

    The mutilated body of a 24-year-old Muslim, Arbaaz Aftab Mullah, was discovered on a railway track near his home. His family believe he was murdered because of his interfaith relationship with a Hindu woman and that he is one of the latest victims of the 'love jihad' conspiracy theory, which has swept across groups of Hindu nationalists in India. The theory claims that Muslim men are seducing Hindu women and luring them into marriage in order to convert them to Islam. The claims are baseless, yet the consequences are real

    Continue reading...", - "category": "India", - "link": "https://www.theguardian.com/world/video/2022/jan/21/love-jihad-indias-lethal-religious-conspiracy-theory-video", - "creator": "Hannah Ellis-Petersen, Ahmer Khan, Kyri Evangelou, Sartaj Alam and Katie Lamborn", - "pubDate": "2022-01-21T05:00:21Z", + "title": "Florida man pleads guilty to threatening to kill Ocasio-Cortez and Pelosi", + "description": "

    Paul Vernon Hoeffer, 60, also pleads guilty in federal court to threats against Kim Foxx, a prominent district attorney in Illinois

    A Florida man has pleaded guilty to threatening to kill Alexandria Ocasio-Cortez and Nancy Pelosi, two leading Democrats in Congress, and Kim Foxx, a prominent district attorney in Illinois.

    The US attorney’s office for the southern district of Florida said Paul Vernon Hoeffer, 60, entered his plea in federal court in Fort Pierce on Friday.

    Continue reading...", + "content": "

    Paul Vernon Hoeffer, 60, also pleads guilty in federal court to threats against Kim Foxx, a prominent district attorney in Illinois

    A Florida man has pleaded guilty to threatening to kill Alexandria Ocasio-Cortez and Nancy Pelosi, two leading Democrats in Congress, and Kim Foxx, a prominent district attorney in Illinois.

    The US attorney’s office for the southern district of Florida said Paul Vernon Hoeffer, 60, entered his plea in federal court in Fort Pierce on Friday.

    Continue reading...", + "category": "Democrats", + "link": "https://www.theguardian.com/us-news/2022/jan/23/florida-man-pleads-guilty-threats-kill-aoc-nancy-pelosi", + "creator": "Martin Pengelly in New York", + "pubDate": "2022-01-23T13:17:37Z", "enclosure": "", "enclosureType": "", "image": "", @@ -324936,7 +326762,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "5888a8b74ba6a9c65b65420e55b8af1f", + "hash": "40ba2751431b8db1d478da2e9adb4bc2", "highlights": [] }, { @@ -325401,28 +327227,6 @@ "hash": "96b2600b8f85d61d66a9d522d662c487", "highlights": [] }, - { - "title": "Turkey: prominent journalist detained for insulting president Erdoğan", - "description": "

    Sedef Kabaş faces imprisonment for saying a proverb, with colleagues condemning arrest as attempt to intimidate media

    A prominent Turkish TV journalist has been detained and could face imprisonment after being charged with insulting the country’s president, Recep Tayyip Erdoğan.

    Police detained Sedef Kabaş at her home at 2am on Saturday and took her to a police station, before she faced court and was jailed pending a trial.

    Continue reading...", - "content": "

    Sedef Kabaş faces imprisonment for saying a proverb, with colleagues condemning arrest as attempt to intimidate media

    A prominent Turkish TV journalist has been detained and could face imprisonment after being charged with insulting the country’s president, Recep Tayyip Erdoğan.

    Police detained Sedef Kabaş at her home at 2am on Saturday and took her to a police station, before she faced court and was jailed pending a trial.

    Continue reading...", - "category": "Turkey", - "link": "https://www.theguardian.com/world/2022/jan/23/turkey-prominent-journalist-detained-for-insulting-president-erdogan", - "creator": "Staff and agencies", - "pubDate": "2022-01-23T03:49:25Z", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "en", - "folder": "00.03 News/News - EN", - "feed": "The Guardian", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "4c3467233ad52368ad5cdabceb31a10a", - "highlights": [] - }, { "title": "Chief whip comes forward as person behind ‘Muslimness’ sacking claim", "description": "

    Mark Spencer says accusations are ‘completely false’ after Nusrat Ghani says she was told her faith made colleagues ‘uncomfortable’

    Mark Spencer, the chief whip, has said a Conservative MP was referring to him when she accused a member of government of telling her she had been sacked from her ministerial post because her Muslim faith was “making colleagues uncomfortable”.

    Boris Johnson faces calls for an inquiry into Nusrat Ghani’s claim in an interview with the Sunday Times that, when she lost her job as a transport minister, she was told that “Muslimness” had been raised as an problem at a meeting in Downing Street.

    Continue reading...", @@ -417155,6 +418959,28 @@ "image": "https://www.courrierinternational.com/sites/ci_master/themes/ci/images/courrier-logo-default-rss.png", "description": "Derniers articles parus sur Courrier international", "items": [ + { + "title": "Au Brésil, Uber doit composer avec de nouveaux concurrents : les taxis", + "description": "De plus en plus d’usagers de VTC du pays tournent le dos à Uber et consorts pour revenir aux traditionnels taxis jaunes. Réglementés et favorisés par leur implantation locale, ces derniers restent abordables malgré l’inflation.", + "content": "De plus en plus d’usagers de VTC du pays tournent le dos à Uber et consorts pour revenir aux traditionnels taxis jaunes. Réglementés et favorisés par leur implantation locale, ces derniers restent abordables malgré l’inflation.", + "category": "", + "link": "https://www.courrierinternational.com/article/transports-au-bresil-uber-doit-composer-avec-de-nouveaux-concurrents-les-taxis", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 16:42:18 +0100", + "enclosure": "https://www.courrierinternational.com/sites/ci_master/files/styles/image_940/public/illustrations/thumbnails/000_r11tt.jpg?itok=rU_gIiNv", + "enclosureType": "image/jpeg", + "image": "https://www.courrierinternational.com/sites/ci_master/files/styles/image_940/public/illustrations/thumbnails/000_r11tt.jpg?itok=rU_gIiNv", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Courier International - Eco", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "63d9f77b4213b7820eec7cf132fe6ad1", + "highlights": [] + }, { "title": "La Serbie enterre le projet de mine de lithium face aux manifestations", "description": "Après des semaines de protestations dans la rue, le gouvernement serbe a retiré ses autorisations de prospection au géant minier anglo-australien Rio Tinto pour l’exploitation du lithium. Une décision “environnementale” prise quelques semaines avant les élections dans le pays.", @@ -421428,7 +423254,227 @@ "description": "Le Monde.fr - 1er site d’information. Les articles du journal et toute l’actualité en continu : International, France, Société, Economie, Culture, Environnement, Blogs ...", "items": [ { - "title": "Laurent Berger plaide pour que le pouvoir d’achat soit un sujet « central » de la campagne présidentielle", + "title": "Restrictions sanitaires : des heurts entre manifestants et forces de l’ordre à Bruxelles", + "description": "Lors de la manifestation contre les restrictions sanitaires, à Bruxelles, le 23 janvier 2022.", + "content": "Lors de la manifestation contre les restrictions sanitaires, à Bruxelles, le 23 janvier 2022.", + "category": "", + "link": "https://www.lemonde.fr/international/article/2022/01/23/restrictions-sanitaires-des-heurts-entre-manifestants-et-forces-de-l-ordre-a-bruxelles_6110658_3210.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 18:06:23 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "2ad58718437a5479656b438ca050391a", + "highlights": [] + }, + { + "title": "Orange va confier sa direction générale à Christel Heydemann", + "description": "Christel Heydemann, à Paris, en octobre 2017.", + "content": "Christel Heydemann, à Paris, en octobre 2017.", + "category": "", + "link": "https://www.lemonde.fr/economie/article/2022/01/23/orange-va-confier-sa-direction-generale-a-christel-heydemann_6110650_3234.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 17:15:41 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8f093884aa9f1019afa6af65ddf8456e", + "highlights": [] + }, + { + "title": "Quête de sens, de mobilité, d’autonomie et refus de la routine… La révolution silencieuse du rapport des jeunes au travail", + "description": "Anatole Verhaeghe, 29 ans, a quitté le secteur du cinéma où ne lui proposait que des stages, et s’est reconverti dans la restauration. Ici, à Paris, le 20 janvier 2022.", + "content": "Anatole Verhaeghe, 29 ans, a quitté le secteur du cinéma où ne lui proposait que des stages, et s’est reconverti dans la restauration. Ici, à Paris, le 20 janvier 2022.", + "category": "", + "link": "https://www.lemonde.fr/economie/article/2022/01/23/quete-de-sens-immediatete-mobilite-accrue-le-rapport-des-jeunes-au-travail-une-revolution-silencieuse_6110648_3234.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 17:03:01 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7eb7c1f57f7ac104fad6af9b9cee4f6b", + "highlights": [] + }, + { + "title": "Marine Le Pen fustige « la manière déplorable » choisie par Gilbert Collard pour se rallier à Eric Zemmour", + "description": "Marine Le Pen, la candidate du Rassemblement national à l’élection présientielle, lors d’une conférence de presse le 18 janvier 2022, à Paris.", + "content": "Marine Le Pen, la candidate du Rassemblement national à l’élection présientielle, lors d’une conférence de presse le 18 janvier 2022, à Paris.", + "category": "", + "link": "https://www.lemonde.fr/election-presidentielle-2022/article/2022/01/23/marine-le-pen-fustige-la-maniere-deplorable-choisie-par-gilbert-collard-pour-se-rallier-a-eric-zemmour_6110645_6059010.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:46:05 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "f81e752cb1526617aac9e0f870a319f9", + "highlights": [] + }, + { + "title": "Plus d’écologie et de social, moins d’immigration : comment la social-démocratie scandinave a regagné le pouvoir", + "description": "Boudés par leur électorat traditionnel, les sociaux-démocrates des pays nordiques ont parié sur un renouveau en misant sur l’écologie, le collectif, la défense de l’Etat-providence. Un nouveau positionnement qui a aussi impliqué quelques renoncements", + "content": "Boudés par leur électorat traditionnel, les sociaux-démocrates des pays nordiques ont parié sur un renouveau en misant sur l’écologie, le collectif, la défense de l’Etat-providence. Un nouveau positionnement qui a aussi impliqué quelques renoncements", + "category": "", + "link": "https://www.lemonde.fr/idees/article/2022/01/21/les-habits-neufs-de-la-social-democratie-scandinave_6110372_3232.html", + "creator": "", + "pubDate": "Fri, 21 Jan 2022 08:04:20 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "36c8c1c3c8aaf74646b2bc05c5ace6a2", + "highlights": [] + }, + { + "title": "Jean-Claude Mézières, dessinateur de « Valérian et Laureline », est mort", + "description": "Jean-Claude Mézières, dessinateur de la BD « Valérian et Laureline », est mort", + "content": "Jean-Claude Mézières, dessinateur de la BD « Valérian et Laureline », est mort", + "category": "", + "link": "https://www.lemonde.fr/culture/article/2022/01/23/bande-dessinee-mort-de-jean-claude-mezieres-dessinateur-de-valerian-et-laureline_6110642_3246.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:25:53 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8ed774170c4cd4b99b5416eb394ebf4a", + "highlights": [] + }, + { + "title": "Edouard Mathé, cavalier français, mis en examen pour viols", + "description": "A Baltimore, le 14 mai 2019.", + "content": "A Baltimore, le 14 mai 2019.", + "category": "", + "link": "https://www.lemonde.fr/societe/article/2022/01/23/le-cavalier-francais-edouard-mathe-mis-en-examen-pour-viols_6110640_3224.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:06:05 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0fbdc0c036d49e058ed29a7471bc3d17", + "highlights": [] + }, + { + "title": "Gaël Monfils retrouve les quarts de finale d’un tournoi du Grand Chelem à l’Open d’Australie", + "description": "La joie de Gaël Monfils après sa victoire en huitièmes de finale de l’Open d’Australie, dimanche.", + "content": "La joie de Gaël Monfils après sa victoire en huitièmes de finale de l’Open d’Australie, dimanche.", + "category": "", + "link": "https://www.lemonde.fr/sport/article/2022/01/23/open-d-australie-gael-monfils-retrouve-les-quarts-de-finale-d-un-tournoi-du-grand-chelem_6110638_3242.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:57:34 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b82329640f9832e9db82324b762d0c4a", + "highlights": [] + }, + { + "title": "Un grand récif corallien profond découvert près de Tahiti", + "description": "Doté d’une couverture corallienne exceptionnellement élevée, le site découvert en Polynésie française présente un important intérêt pour les scientifiques.", + "content": "Doté d’une couverture corallienne exceptionnellement élevée, le site découvert en Polynésie française présente un important intérêt pour les scientifiques.", + "category": "", + "link": "https://www.lemonde.fr/sciences/article/2022/01/23/un-grand-recif-corallien-profond-decouvert-pres-de-tahiti_6110637_1650684.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:49:11 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "55fa8c7ae6f43a4d34fad4b3821b7b69", + "highlights": [] + }, + { + "title": "Sébastien Loeb devient au rallye de Monte-Carlo le vainqueur le plus âgé en championnat du monde", + "description": "Sébastien Loeb lors du rallye de Monte-Carlo, jeudi 19 janvier.", + "content": "Sébastien Loeb lors du rallye de Monte-Carlo, jeudi 19 janvier.", + "category": "", + "link": "https://www.lemonde.fr/sport/article/2022/01/23/rallye-sebastien-loeb-devient-a-monte-carlo-le-vainqueur-le-plus-age-en-championnat-du-monde_6110636_3242.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:17:59 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "643e18ec00f66d8d45e837013a17f4b9", + "highlights": [] + }, + { + "title": "Laurent Berger plaide pour que le pouvoir d’achat soit un sujet de campagne « central »", "description": "Laurent Berger, le 1er septembre 2021 à Matignon.", "content": "Laurent Berger, le 1er septembre 2021 à Matignon.", "category": "", @@ -421446,7 +423492,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "eef4b430ed67039010d2a440016a6ee2", + "hash": "b3f39a61d5b38e1fb53b21dda7df134d", "highlights": [] }, { @@ -421560,7 +423606,7 @@ "highlights": [] }, { - "title": "Au Burkina Faso, « des tirs » entendus dans plusieurs casernes", + "title": "Au Burkina Faso, le siège du parti au pouvoir incendié et des coups de feu tirés dans plusieurs casernes", "description": "Des patrouilles de sécurité lors d’une manifestation à Ouagadougou, le 22 janvier 2022.", "content": "Des patrouilles de sécurité lors d’une manifestation à Ouagadougou, le 22 janvier 2022.", "category": "", @@ -421578,7 +423624,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "438973cb6f20ba725bf67e6a0d3c884f", + "hash": "11340d84ce4ac319820cb5c12ed2e6c2", "highlights": [] }, { @@ -421626,7 +423672,7 @@ "highlights": [] }, { - "title": "Marine Le Pen, « personne la plus dangereuse pour le pays » pour Gérald Darmanin, « pas dans le champ de l’humanisme » selon Richard Ferrand", + "title": "Gérald Darmanin et Richard Ferrand ciblent leurs attaques sur Marine Le Pen, jugée « dangereuse pour le pays »", "description": "Le ministre de l’intérieur Gérald Darmanin, à Lille le 23 avril 2021.", "content": "Le ministre de l’intérieur Gérald Darmanin, à Lille le 23 avril 2021.", "category": "", @@ -421644,7 +423690,7 @@ "favorite": false, "created": false, "tags": [], - "hash": "01f7ad4cfad5585eaf336c1c4e211428", + "hash": "e59e710b4d763a6d81c655e804bced6d", "highlights": [] }, { @@ -422593,6 +424639,72 @@ "hash": "622035780d6fcd235b02a6363a7b4e8d", "highlights": [] }, + { + "title": "Le cavalier français Edouard Mathé mis en examen pour viols", + "description": "A Baltimore, le 14 mai 2019.", + "content": "A Baltimore, le 14 mai 2019.", + "category": "", + "link": "https://www.lemonde.fr/societe/article/2022/01/23/le-cavalier-francais-edouard-mathe-mis-en-examen-pour-viols_6110640_3224.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 15:06:05 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "a3167b7220da800d0f2f1ef27c3e1f6d", + "highlights": [] + }, + { + "title": "Open d’Australie : Gaël Monfils retrouve les quarts de finale d’un tournoi du Grand Chelem", + "description": "La joie de Gaël Monfils après sa victoire en huitièmes de finale de l’Open d’Australie, dimanche.", + "content": "La joie de Gaël Monfils après sa victoire en huitièmes de finale de l’Open d’Australie, dimanche.", + "category": "", + "link": "https://www.lemonde.fr/sport/article/2022/01/23/open-d-australie-gael-monfils-retrouve-les-quarts-de-finale-d-un-tournoi-du-grand-chelem_6110638_3242.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:57:34 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "0473e840052f58aa642b34b5d0755192", + "highlights": [] + }, + { + "title": "Au Burkina Faso, « des tirs » entendus dans plusieurs casernes", + "description": "Des patrouilles de sécurité lors d’une manifestation à Ouagadougou, le 22 janvier 2022.", + "content": "Des patrouilles de sécurité lors d’une manifestation à Ouagadougou, le 22 janvier 2022.", + "category": "", + "link": "https://www.lemonde.fr/afrique/article/2022/01/23/au-burkina-faso-des-tirs-dans-plusieurs-casernes-le-gouvernement-dement-une-prise-de-pouvoir-par-l-armee_6110622_3212.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 10:10:45 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "438973cb6f20ba725bf67e6a0d3c884f", + "highlights": [] + }, { "title": "Biathlon : Justine Braisaz-Bouchet et Julia Simon s’offrent le doublé à Anterselva", "description": "De gauche à droite : les Françaises Julia Simon et Justine Braisaz-Bouchet avec la Suédoise Mona Brorsson, après l’individuel d’Antholz-Anterselva, en Italie, le 21 janvier.", @@ -422659,6 +424771,50 @@ "hash": "deac656bf3844eb636a9daa816dd0fca", "highlights": [] }, + { + "title": "Laurent Berger plaide pour que le pouvoir d’achat soit un sujet « central » de la campagne présidentielle", + "description": "Laurent Berger, le 1er septembre 2021 à Matignon.", + "content": "Laurent Berger, le 1er septembre 2021 à Matignon.", + "category": "", + "link": "https://www.lemonde.fr/politique/article/2022/01/23/presidentielle-2022-laurent-berger-plaide-pour-que-le-pouvoir-d-achat-soit-un-sujet-de-campagne-central_6110635_823448.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 14:09:14 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "eef4b430ed67039010d2a440016a6ee2", + "highlights": [] + }, + { + "title": "Marine Le Pen, « personne la plus dangereuse pour le pays » pour Gérald Darmanin, « pas dans le champ de l’humanisme » selon Richard Ferrand", + "description": "Le ministre de l’intérieur Gérald Darmanin, à Lille le 23 avril 2021.", + "content": "Le ministre de l’intérieur Gérald Darmanin, à Lille le 23 avril 2021.", + "category": "", + "link": "https://www.lemonde.fr/politique/article/2022/01/23/pour-gerald-darmanin-marine-le-pen-est-la-personne-la-plus-dangereuse-pour-le-pays_6110602_823448.html", + "creator": "", + "pubDate": "Sun, 23 Jan 2022 02:20:14 +0100", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Le Monde", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "01f7ad4cfad5585eaf336c1c4e211428", + "highlights": [] + }, { "title": "Passe vaccinal : le Conseil constitutionnel valide l’essentiel du projet de loi, mais interdit le passe sanitaire pour les réunions politiques", "description": "Le Conseil constitutionnel, à Paris, le 15 octobre 2018.", @@ -484149,6 +486305,28 @@ "hash": "0b02147f5ae8058b2fae0fcea6dab9a6", "highlights": [] }, + { + "title": "Covid : le passe vaccinal en vigueur ce lundi", + "description": "Pour le gouvernement, la mesure permettra de convaincre quelques milliers de récalcitrants à la vaccination. Un léger mieux se fait jour sur la situation sanitaire, même si toutes les incertitudes ne sont pas levées.", + "content": "Pour le gouvernement, la mesure permettra de convaincre quelques milliers de récalcitrants à la vaccination. Un léger mieux se fait jour sur la situation sanitaire, même si toutes les incertitudes ne sont pas levées.", + "category": "Économie France", + "link": "https://www.lesechos.fr/economie-france/social/0700801534846-covid-le-passe-vaccinal-en-vigueur-ce-lundi-2453180.php#xtor=RSS-71", + "creator": "Alain Ruello", + "pubDate": "Sun, 23 Jan 2022 16:21:03 +0200", + "enclosure": "https://externals.lesechos.fr/medias/2022/01/23/2453180_covid-le-passe-vaccinal-en-vigueur-ce-lundi-web-070801731766.jpg", + "enclosureType": "image/jpg", + "image": "https://externals.lesechos.fr/medias/2022/01/23/2453180_covid-le-passe-vaccinal-en-vigueur-ce-lundi-web-070801731766.jpg", + "id": "", + "language": "fr", + "folder": "00.03 News/News - FR", + "feed": "Les Echos", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "d3517ec286d6f531e0cf3030ff9be6a0", + "highlights": [] + }, { "title": "Près d'un million d'entreprises ont été créées en 2021, un record", "description": "En dépit de la crise sanitaire, la France affiche toujours plus de créations d'entreprises et même un nouveau record en la matière. Après des années 2019 et 2020 déjà records, 2021 a vu la création près de 996.000 sociétés, selon l'Insee. Soit une hausse de 17,4 % sur un an.", @@ -489099,6 +491277,50 @@ "image": null, "description": "Engadget is a web magazine with obsessive daily coverage of everything new in gadgets and consumer electronics", "items": [ + { + "title": "Workers at Activision Blizzard’s Raven Software end strike action following union push", + "description": "

    Having announced plans recently to form the first labor union within a North American AAA game developer, workers at Raven Software are ending their weeks-long strike action against publisher Activision Blizzard. "Pending the recognition of our union, the Raven QA strike has ended,” Activision Blizzard worker advocacy group ABetterABK said on Saturday in a tweet spotted by Eurogamer. “Unused strike funds are being stored for future organizing [and] strike efforts.”

    Pending the recognition of our union, the Raven QA strike has ended. Unused strike funds are being stored for future organizing/strike efforts.

    We'll post or retweet any GWU updates here. Appreciate all the community support throughout the strike!

    — ABetterABK 💙 ABK Workers Alliance (@ABetterABK) January 23, 2022

    The strike began in December when 60 employees and contractors with Raven Software’s quality assurance department walked off the job to protest the studio’s decision to lay off 12 of their co-workers. Raven is one of the developers that supports Activision’s Call of Duty franchise, and its QA team is specifically responsible for bugs and other technical issues in Warzone. When the action began, it had no planned end date, a first for the walkouts at Activision Blizzard. The publisher had reportedly declined to meet with the striking workers, despite mounting pressure from Warzone’s community over the game’s current state.

    On Friday, the 34 workers who said they plan to unionize with the Communication Workers of America (CWA) asked Activision Blizzard to recognize their group, the Game Workers Alliance, voluntarily. The company has until January 25th to respond to the workers. "Activision Blizzard is carefully reviewing the request for voluntary recognition from the CWA, which seeks to organize around three dozen of the company’s nearly 10,000 employees," the company said on Friday.

    If the company fails to respond to the group, it will file for a union election through the National Relations Broad. Since the collective has a supermajority of votes, with 78 percent of the 34-person unit supporting the action, they can form a union without voluntary recognition from Activision Blizzard.

    News of the union drive at Raven comes in the same week that Microsoft announced its intent to buy Activision Blizzard for $68.7 billion. Pending regulatory approval, the company expects the deal, which could have far-reaching ramifications for the gaming industry, to close in June 2023.

    ", + "content": "

    Having announced plans recently to form the first labor union within a North American AAA game developer, workers at Raven Software are ending their weeks-long strike action against publisher Activision Blizzard. "Pending the recognition of our union, the Raven QA strike has ended,” Activision Blizzard worker advocacy group ABetterABK said on Saturday in a tweet spotted by Eurogamer. “Unused strike funds are being stored for future organizing [and] strike efforts.”

    Pending the recognition of our union, the Raven QA strike has ended. Unused strike funds are being stored for future organizing/strike efforts.

    We'll post or retweet any GWU updates here. Appreciate all the community support throughout the strike!

    — ABetterABK 💙 ABK Workers Alliance (@ABetterABK) January 23, 2022

    The strike began in December when 60 employees and contractors with Raven Software’s quality assurance department walked off the job to protest the studio’s decision to lay off 12 of their co-workers. Raven is one of the developers that supports Activision’s Call of Duty franchise, and its QA team is specifically responsible for bugs and other technical issues in Warzone. When the action began, it had no planned end date, a first for the walkouts at Activision Blizzard. The publisher had reportedly declined to meet with the striking workers, despite mounting pressure from Warzone’s community over the game’s current state.

    On Friday, the 34 workers who said they plan to unionize with the Communication Workers of America (CWA) asked Activision Blizzard to recognize their group, the Game Workers Alliance, voluntarily. The company has until January 25th to respond to the workers. "Activision Blizzard is carefully reviewing the request for voluntary recognition from the CWA, which seeks to organize around three dozen of the company’s nearly 10,000 employees," the company said on Friday.

    If the company fails to respond to the group, it will file for a union election through the National Relations Broad. Since the collective has a supermajority of votes, with 78 percent of the 34-person unit supporting the action, they can form a union without voluntary recognition from Activision Blizzard.

    News of the union drive at Raven comes in the same week that Microsoft announced its intent to buy Activision Blizzard for $68.7 billion. Pending regulatory approval, the company expects the deal, which could have far-reaching ramifications for the gaming industry, to close in June 2023.

    ", + "category": "Information Technology", + "link": "https://www.engadget.com/raven-software-end-strike-action-161117591.html?src=rss", + "creator": "Igor Bonifacic", + "pubDate": "Sun, 23 Jan 2022 16:11:17 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/Tech", + "feed": "EndGadget", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8b6115c8a484e90447b01cad35f321c2", + "highlights": [] + }, + { + "title": "'Dark Souls 3' security hole lets attackers hijack your PC", + "description": "

    You might not want to play a Dark Souls game online for a while — not that you necessarily can. As Dexerto and The Verge report, attackers have discovered a security exploit in Dark Souls 3 (and potentially Elden Ring) for Windows that lets attackers remotely execute control and effectively hijack your PC. Streamers like The_Grim_Sleeper have learned about the potential damage first-hand — in his case, the intruder launched Microsoft PowerShell and ran a text-to-speech script blasting him for his gameplay.

    The exploiter might not have malicious intent. A post on the SpeedSouls Discord claimed the hacker was trying to warn developer FromSoftware about the Dark Souls 3 vulnerability, but turned to compromising streamers to highlight the problem. Few people beyond the perpetrator are aware of how to use it, but there's already a patch for the unofficial Blue Sentinel anti-cheat tool.

    FromSoftware and its publisher Bandai Namco have since responded to the exploit. They've temporarily shut down the player-versus-player servers for Dark Souls 3 and its predecessors while the security team investigates the flaws. It's not certain when the servers will go back online, but From and Bandai clearly won't restore service until they're reasonably confident players are safe. More sinister attackers could use the flaw to steal sensitive information, ruin gamers' systems and otherwise do serious damage.

    PvP servers for Dark Souls 3, Dark Souls 2, and Dark Souls: Remastered have been temporarily deactivated to allow the team to investigate recent reports of an issue with online services.
    Servers for Dark Souls: PtDE will join them shortly.

    We apologize for this inconvenience.

    — Dark Souls (@DarkSoulsGame) January 23, 2022

    ", + "content": "

    You might not want to play a Dark Souls game online for a while — not that you necessarily can. As Dexerto and The Verge report, attackers have discovered a security exploit in Dark Souls 3 (and potentially Elden Ring) for Windows that lets attackers remotely execute control and effectively hijack your PC. Streamers like The_Grim_Sleeper have learned about the potential damage first-hand — in his case, the intruder launched Microsoft PowerShell and ran a text-to-speech script blasting him for his gameplay.

    The exploiter might not have malicious intent. A post on the SpeedSouls Discord claimed the hacker was trying to warn developer FromSoftware about the Dark Souls 3 vulnerability, but turned to compromising streamers to highlight the problem. Few people beyond the perpetrator are aware of how to use it, but there's already a patch for the unofficial Blue Sentinel anti-cheat tool.

    FromSoftware and its publisher Bandai Namco have since responded to the exploit. They've temporarily shut down the player-versus-player servers for Dark Souls 3 and its predecessors while the security team investigates the flaws. It's not certain when the servers will go back online, but From and Bandai clearly won't restore service until they're reasonably confident players are safe. More sinister attackers could use the flaw to steal sensitive information, ruin gamers' systems and otherwise do serious damage.

    PvP servers for Dark Souls 3, Dark Souls 2, and Dark Souls: Remastered have been temporarily deactivated to allow the team to investigate recent reports of an issue with online services.
    Servers for Dark Souls: PtDE will join them shortly.

    We apologize for this inconvenience.

    — Dark Souls (@DarkSoulsGame) January 23, 2022

    ", + "category": "site|engadget", + "link": "https://www.engadget.com/dark-souls-3-security-exploit-hack-152505550.html?src=rss", + "creator": "Jon Fingas", + "pubDate": "Sun, 23 Jan 2022 15:25:05 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/Tech", + "feed": "EndGadget", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b4c30e5ea4b0d935aee298fe2ee47a2d", + "highlights": [] + }, { "title": "Steam Deck will support games with Epic's Easy Anti-Cheat software", "description": "

    Things are looking brighter for Valve’s Steam Deck and its potential game library. On Friday, the company announced titles that depend on Epic’s Easy Anti-Cheat (EAC) software can now run on the portable. Valve said adding Steam Deck support to titles that utilize EAC is “a simple process.” Developers won’t need to update their SDK version or make other time-consuming changes. With Valve adding BattlEye support through its Proton compatibility layer for Linux late last year, the company said, “this means the two largest anti-cheat services are now easily supported on Proton and Steam Deck.” In practice, that should mean more of your favorite games will work with Valve’s handheld when it launches next month.

    Of course, it’s one thing for Valve to make it easy for developers to ensure their games run without issue on Steam Deck and a completely separate thing for them to do the necessary work to ensure compatibility. To that point, when Valve announced BattlEye support in December, it said all developers had to do was contact the company to enable the software for their title. And yet it’s still unclear whether some of the most popular multiplayer games on Steam that utilize BattlEye and EAC, including titles like Rainbow Six Siege and PUBG, will work on day one of Steam Deck’s availability. Valve has tried to address some of that uncertainty with its recently announced Deck Verified program. This week, Valve added 67 titles to the database, 39 of which should run without issue on the device.

    ", @@ -516097,6 +518319,28 @@ "image": null, "description": "News for nerds, stuff that matters", "items": [ + { + "title": "A Conway 'Game of Life' Conjecture Settled After 29 years", + "description": "In 1992 John Conway raised a question about the patterns in his famous mathematical Game of Life: \"Is there a Godlike still-life, one that can only have existed for all time (apart from things that don't interfere with it)?\" \n\nConway closed his note by adding \"Well, I'm going out to get a hot dog now...\" And then, nearly 30 years later, a mathematical blog reports:\n\nIlkka Törmä and Ville Salo, a pair of researchers at the University of Turku in Finland, have found a finite configuration in Conway's Game of Life such that, if it occurs within a universe at time T, it must have existed in that same position at time T-1 (and therefore, by induction, at time 0)... \n\nThe configuration was discovered by experimenting with finite patches of repeating 'agar' and using a SAT solver to check whether any of them possess this property. \n\nThe blogger also shares some other Game of Life-related news:\n\n\nDavid Raucci discovered the first oscillator of period 38. The remaining unsolved periods are 19, 34, and 41.Darren Li has connected Charity Engine to Catagolue, providing approximately 2000 CPU cores of continuous effort and searching slightly more than 10^12 random initial configurations per day.Nathaniel Johnston and Dave Greene have published a book on Conway's Game of Life, featuring both the theoretical aspects and engineering that's been accomplished in the half-century since its conception. Unfortunately it was released slightly too early to include the Törmä-Salo result or Raucci's period-38 oscillator.\nThanks to Slashdot reader joshuark for sharing the story.

    \n\n\n\n\n\n

    Read more of this story at Slashdot.

    ", + "content": "In 1992 John Conway raised a question about the patterns in his famous mathematical Game of Life: \"Is there a Godlike still-life, one that can only have existed for all time (apart from things that don't interfere with it)?\" \n\nConway closed his note by adding \"Well, I'm going out to get a hot dog now...\" And then, nearly 30 years later, a mathematical blog reports:\n\nIlkka Törmä and Ville Salo, a pair of researchers at the University of Turku in Finland, have found a finite configuration in Conway's Game of Life such that, if it occurs within a universe at time T, it must have existed in that same position at time T-1 (and therefore, by induction, at time 0)... \n\nThe configuration was discovered by experimenting with finite patches of repeating 'agar' and using a SAT solver to check whether any of them possess this property. \n\nThe blogger also shares some other Game of Life-related news:\n\n\nDavid Raucci discovered the first oscillator of period 38. The remaining unsolved periods are 19, 34, and 41.Darren Li has connected Charity Engine to Catagolue, providing approximately 2000 CPU cores of continuous effort and searching slightly more than 10^12 random initial configurations per day.Nathaniel Johnston and Dave Greene have published a book on Conway's Game of Life, featuring both the theoretical aspects and engineering that's been accomplished in the half-century since its conception. Unfortunately it was released slightly too early to include the Törmä-Salo result or Raucci's period-38 oscillator.\nThanks to Slashdot reader joshuark for sharing the story.

    \n\n\n\n\n\n

    Read more of this story at Slashdot.

    ", + "category": "", + "link": "https://science.slashdot.org/story/22/01/22/199211/a-conway-game-of-life-conjecture-settled-after-29-years?utm_source=rss1.0mainlinkanon&utm_medium=feed", + "creator": "EditorDavid", + "pubDate": "2022-01-23T15:34:00+00:00", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "00.03 News/Tech", + "feed": "Slashdot", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b0d470232ab117fa4315bcde84bf45b3", + "highlights": [] + }, { "title": "Is the Five-Day Work Week Dying?", "description": "\"The traditional idea of going to the office five days a week or working 9 to 5 may be dying,\" reports the Washington Post:\n\nZoom, which many workplaces and workers relied on during the pandemic, is starting to allow its more than 6,000 workers to choose whether to work in the office, work remotely, or go hybrid, as in working remotely a certain number of days per week or month at their choosing. Bolt, a San Francisco-based e-commerce start-up boldly introduced a permanent four-day workweek for its nearly 600 employees. Workplace communications platform Slack is reimagining its office primarily as a gathering place for meetings and projects. And tech giants Amazon and Salesforce are allowing their employees to decide as a team when and where they should work, based on the projects at hand. \n\nThese approaches come as companies rethink workplace policies amid the fast spread of the omicron variant and the \"Great Resignation,\" during which employers are finding it more difficult to retain talent. U.S. office occupancy dipped to about 28 percent during the third week of January, compared to 40 percent in November before the massive spread of the omicron variant, according to building security company Kastle Systems. Still, some employers see this as an opportunity to rethink the way employees have traditionally worked, opting for even more flexible and creative arrangements that are more likely to lure and retain workers.... \n\n\n Jennifer Christie [Bolt's chief people officer] said after piloting the policy last year, 91 percent of managers and 94 percent of employees wanted to continue. They also reported increased productivity and better work-life balance. Meanwhile, the start-up has been inundated with resumes and emails from people interested in working for the company, Christie said. \"People want to be empowered and have autonomy to do work in a way that fits them,\" Christie said. \"That's going to be where talent is attracted....\" \n\nThe one thing the Kickstarter union workers agree on is the desire for the four-day workweek. \"I'd be lying if I said I hadn't listened to some recruiters from places that already implemented a four-day workweek,\" said Dannel Jurado [a member of Kickstarter United, which is part of the Office and Professional Employees International Union].\n

    \n\n\n\n\n\n

    Read more of this story at Slashdot.

    ", @@ -539655,6 +541899,28 @@ "image": null, "description": "Original and proudly opinionated perspectives for Generation T", "items": [ + { + "title": "How I scaled my freelance business to $10,000/month", + "description": "
    When I quit my full-time job and started freelancing five years ago, I figured it was just a stop-gap until I landed my next marketing job. I had never fancied myself a business owner and didn’t think I could command a freelance income that rivaled a full-time salary. But as time passed and I kept procrastinating my “real job” search, I started taking freelancing as a permanent career move more seriously. I’d always valued independence and had come away burnt out from my last job, so the flexibility and autonomy that freelance writing gave me was appealing. Coming from a…

    This story continues at The Next Web
    \n \n
    ", + "content": "
    When I quit my full-time job and started freelancing five years ago, I figured it was just a stop-gap until I landed my next marketing job. I had never fancied myself a business owner and didn’t think I could command a freelance income that rivaled a full-time salary. But as time passed and I kept procrastinating my “real job” search, I started taking freelancing as a permanent career move more seriously. I’d always valued independence and had come away burnt out from my last job, so the flexibility and autonomy that freelance writing gave me was appealing. Coming from a…

    This story continues at The Next Web
    \n \n
    ", + "category": "Growth Quarters", + "link": "https://thenextweb.com/news/how-i-scaled-freelance-business-10000-month", + "creator": "Zapier", + "pubDate": "Sun, 23 Jan 2022 14:00:15 +0000", + "enclosure": "https://img-cdn.tnwcdn.com/image?fit=796%2C417&url=https%3A%2F%2Fcdn0.tnwcdn.com%2Fwp-content%2Fblogs.dir%2F1%2Ffiles%2F2022%2F01%2Fmoney.jpeg&signature=b0edd7f4e559f5f6da6789cf19c302b5", + "enclosureType": "image/jpeg", + "image": "https://img-cdn.tnwcdn.com/image?fit=796%2C417&url=https%3A%2F%2Fcdn0.tnwcdn.com%2Fwp-content%2Fblogs.dir%2F1%2Ffiles%2F2022%2F01%2Fmoney.jpeg&signature=b0edd7f4e559f5f6da6789cf19c302b5", + "id": "", + "language": "en", + "folder": "00.03 News/Tech", + "feed": "The Next Web", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7ac6135f21b82352ba8bcd7cf34083f7", + "highlights": [] + }, { "title": "Here are 10 reasons why space exploration benefits Earth", "description": "
    Space exploration benefits Earth and everyone living on it in ways most people never expect — Here’s 10 reasons why investing in space is our best hope for humanity. Space exploration is the grandest endeavor the human race has ever undertaken. Reaching out beyond the planetary cradle on which we evolved represents the next logical step in the evolution of the human race. In the words of Gene Roddenberry, space truly is “the final frontier.” It is certainly tempting to think of exploration as coming at a tremendous financial cost. There are also many pressing needs right here at home,…

    This story continues at The Next Web
    \n \n
    ", @@ -549189,6 +551455,28 @@ "image": null, "description": "Channel Description", "items": [ + { + "title": "Hard-Core Home Bakers, This Is the Mixer of Your Dreams", + "description": "Committed bread aficionados will love the expert mixing and kneading skills of this Swedish countertop marvel.", + "content": "Committed bread aficionados will love the expert mixing and kneading skills of this Swedish countertop marvel.", + "category": "Gear", + "link": "https://www.wired.com/review/ankarsrum-assistent-original", + "creator": "Joe Ray", + "pubDate": "Sun, 23 Jan 2022 14:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "00.03 News/Tech", + "feed": "Wired", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "bc02c6370fb1a8b0da7ee2bfdcc6aaec", + "highlights": [] + }, { "title": "Euler’s 243-Year-Old ‘Impossible’ Puzzle Gets a Quantum Solution", "description": "A surprising new solution to the famous “36 officers puzzle” offers a novel way of encoding quantum information.", diff --git a/.obsidian/plugins/weather-fetcher/logs.txt b/.obsidian/plugins/weather-fetcher/logs.txt index 27fe36b6..d0f5e1d5 100644 --- a/.obsidian/plugins/weather-fetcher/logs.txt +++ b/.obsidian/plugins/weather-fetcher/logs.txt @@ -3,7 +3,7 @@ [log] obsidian-memos loading... [log] Welcome to the Memos [log] obsidian-memos loaded -[log] Dataview: Task & metadata parsing queued in %.3fs. 0.124 +[log] Dataview: Task & metadata parsing queued in %.3fs. 0.135 [debug] ledger: Updating the transaction cache [log] [Longform] Loaded and watching projects. [log] fetching top story from HackerNews @@ -48,73 +48,335 @@ [error] SyntaxError: Unexpected identifier 'tp'. Expected ';' after variable declaration. [error] CustomJS couldn't import 00.01 Admin/dv-views/working_file.js [error] SyntaxError: Unexpected keyword 'var' +[log] loading obsidian-tracker plugin [log] fetching top story from HackerNews -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true [log] fetching top story from HackerNews -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true [log] fetching top story from HackerNews -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] YAMLParseError: Tabs are not allowed as indentation at line 12, column 1: + + showPoint: false + xAxisColor: grey +^ + +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] updating feeds +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] Unloading Charts View plugin +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/delete.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/delete.md true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] updating feeds +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true [log] fetching top story from HackerNews [debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true [debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Templates/Template Daily.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true +[debug] Reload reminder list view +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true [log] fetching top story from HackerNews -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true +[debug] Save reminder plugin data: force=%s, changed=%s false true [debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true [debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true [debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true [debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true [log] fetching top story from HackerNews -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] updating feeds +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] YAMLParseError: Comments must be separated from other tokens by white space characters at line 8, column 17: + + yAxisLabel: ""# Espresso shots" + ^ + +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Remove file: path=%s 01.02 Home/@Shopping list.md [debug] Reload reminder list view -[debug] Save reminder plugin data: force=%s, changed=%s false true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.04 Done/@Shopping list.md false +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/React/Weather.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/React/Weather.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] updating feeds +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] updating feeds +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[log] Obsidian Admonition unloaded +[log] Obsidian Admonition loaded +[log] obsidian-react-components: Could not enable live preview. See error below. +[error] TypeError: undefined is not an object (evaluating 'view.WidgetType') +[log] [Longform] Starting Longform 1.1.0… +[log] [Longform] No workflows found; adding default workflow. +[log] [Longform] Loaded and watching projects. +[log] obsidian-memos loading... +[log] Welcome to the Memos +[log] obsidian-memos loaded +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.01 Life Orga/Finances.md true [debug] Reload reminder list view [debug] Save reminder plugin data: force=%s, changed=%s false true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.01 Life Orga/Finances.md true [debug] Reload reminder list view [debug] Save reminder plugin data: force=%s, changed=%s false true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true [log] fetching top story from HackerNews -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true [log] fetching top story from HackerNews -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true -[debug] Reload reminder list view -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-22.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 04.01 lebv.org/lebv Email Tasks.md true [debug] Reload reminder list view [debug] Save reminder plugin data: force=%s, changed=%s false true +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[log] fetching top story from HackerNews [debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true -[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true [log] fetching top story from HackerNews +[log] fetching top story from HackerNews +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true +[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true [log] fetching top story from HackerNews \ No newline at end of file diff --git a/.obsidian/workspace b/.obsidian/workspace index 14c06d55..ef27f738 100644 --- a/.obsidian/workspace +++ b/.obsidian/workspace @@ -56,7 +56,7 @@ } }, { - "id": "912b1b2637409e9b", + "id": "71d2a4931f926397", "type": "leaf", "state": { "type": "VIEW_TYPE_LONGFORM_EXPLORER", @@ -148,19 +148,19 @@ } } ], - "currentTab": 3 + "currentTab": 4 }, "active": "6f0b276839099c19", "lastOpenFiles": [ "01.02 Home/@Main Dashboard.md", "00.01 Admin/Memos/2022-01-23.md", "00.01 Admin/Memos/2022-01-22.md", - "00.01 Admin/Templates/Template Daily.md", - "00.01 Admin/Templates/Template Recipe.md", - "00.01 Admin/Templates/Template Place.md", - "01.01 Life Orga/IT & Computer.md", - "05.01 Computer setup/Git.md", - "06.01 Finances/hLedger.md", - "06.01 Finances/2022.ledger" + "02.03 Zürich/Razzia.md", + "02.03 Zürich/Gestuet Homberg.md", + "02.03 Zürich/Blaue Ente.md", + "02.02 Paris/@@Paris.md", + "01.02 Home/2021-12-04 MRCK - lil dialogue.md", + "00.01 Admin/Button gallery.md", + "00.01 Admin/React/Weather.md" ] } \ No newline at end of file diff --git a/00.01 Admin/Memos/2022-01-22.md b/00.01 Admin/Memos/2022-01-22.md index 1e4932e4..a3b4a69a 100644 --- a/00.01 Admin/Memos/2022-01-22.md +++ b/00.01 Admin/Memos/2022-01-22.md @@ -11,6 +11,7 @@ Stress: 50 FrontHeadBar: 0 EarHeadBar: 0 BackHeadBar: 0 +Water: 1 Coffee: 5 Steps: 8167 @@ -77,8 +78,8 @@ This section does serve for quick memos.   - 14:21 Megan Rose is about to leave to the airport -- 16:31 Do pictures work? -- 16:33 Can you link a [[Test sheet|note]]? + + - [ ] 22:46 [[2022-01-22|Memo]], [[Finances]]: GBP account re moving to ZH 📆2022-03-31 diff --git a/00.01 Admin/Memos/2022-01-23.md b/00.01 Admin/Memos/2022-01-23.md index a0e704aa..30505368 100644 --- a/00.01 Admin/Memos/2022-01-23.md +++ b/00.01 Admin/Memos/2022-01-23.md @@ -11,8 +11,9 @@ Stress: 50 FrontHeadBar: 0 EarHeadBar: 90 BackHeadBar: 75 -Coffee: 3 -Steps: +Water: 1.075 +Coffee: 4 +Steps: 4351 --- diff --git a/00.01 Admin/Memos/delete.md b/00.01 Admin/Memos/delete.md index 52327c07..fc1b7605 100644 --- a/00.01 Admin/Memos/delete.md +++ b/00.01 Admin/Memos/delete.md @@ -1,2 +1,4 @@ - 2022012214210063 This is a test memo deletedAt: 202201221425521 -- 2022012214210065 Mark: [@MEMO](2022012214210063) deletedAt: 202201221629502 \ No newline at end of file +- 2022012214210065 Mark: [@MEMO](2022012214210063) deletedAt: 202201221629502 +- 2022012216310079 Do pictures work? deletedAt: 202201231628183 +- 2022012216330080 Can you link a [[Test sheet|note]]? deletedAt: 202201231628204 \ No newline at end of file diff --git a/00.01 Admin/React/Weather.md b/00.01 Admin/React/Weather.md index efb5a209..b02aa7c7 100644 --- a/00.01 Admin/React/Weather.md +++ b/00.01 Admin/React/Weather.md @@ -98,4 +98,65 @@ return ( weather: VueWeatherWidget, }, }); -); \ No newline at end of file +); + +```jsx: +const C = props=>{ + const ref = useRef(); + useEffect(()=>{ + (async ()=>{ + let iframe = ref.current; + //replace outdated api keys + const response =await fetch("https://unpkg.com/vue-weather-widget@3.0.2/dist/js/vue-weather-widget.js"); + let js = await response.text(); + js = js.replaceAll("c3bb8aa0a56b21122dea6a2a8ada70c8", "7f9c71310f410847fceb9537a83f3882"); + const dataUri = 'data:text/javascript;charset=utf-8,' + + encodeURIComponent(js); + + var html = ` + + + + + + + + + +
    + + +
    + + + +`; + iframe.contentWindow.document.open(); + iframe.contentWindow.document.write(html); + iframe.contentWindow.document.close(); +})() + }) + return